diff --git a/.circleci/config.yml b/.circleci/config.yml index 4ebc37794c9229..86bea5d71509da 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -53,8 +53,8 @@ jobs: /tmp/julia/bin/julia --sysimage-native-code=no -e 'true' && /tmp/julia/bin/julia-debug --sysimage-native-code=no -e 'true' && pushd /tmp/julia/share/julia/test && - /tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip socket | bar -i 30 && - /tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg download && + /tmp/julia/bin/julia --check-bounds=yes runtests.jl all --skip Sockets | bar -i 30 && + /tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download && popd && mkdir /tmp/embedding-test && make check -C /tmp/julia/share/julia/test/embedding \ diff --git a/.freebsdci.sh b/.freebsdci.sh index 7322d01a705af3..e83c4aa6c1949f 100755 --- a/.freebsdci.sh +++ b/.freebsdci.sh @@ -37,7 +37,7 @@ runtests(){ export JULIA_CPU_CORES=$MAKE_JOBS_NUMBER ./usr/bin/julia test/runtests.jl all - ./usr/bin/julia test/runtests.jl LibGit2/online Pkg/pkg download + ./usr/bin/julia test/runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download } test-embedding(){ diff --git a/.travis.yml b/.travis.yml index 58940dfe8020ea..2ab61725ac7073 100644 --- a/.travis.yml +++ b/.travis.yml @@ -144,7 +144,7 @@ script: - /tmp/julia/bin/julia -e 'versioninfo()' - pushd /tmp/julia/share/julia/test - /tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN && - /tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg download + /tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download - popd # test that the embedding code works on our installation - mkdir /tmp/embedding-test && diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 411df7e49943b9..c29867b6c3540f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -235,7 +235,7 @@ Here is the standard procedure: 2. Start a Julia REPL session. Then issue the following commands: ```julia -using Revise # if you aren't launching it in your .juliarc.jl +using Revise # if you aren't launching it in your `.julia/config/startup.jl` Revise.track(Base) ``` diff --git a/DISTRIBUTING.md b/DISTRIBUTING.md index a159188e8f32c9..74dc01c0bf6448 100644 --- a/DISTRIBUTING.md +++ b/DISTRIBUTING.md @@ -81,7 +81,7 @@ and other environment variables you can pass when calling `make` and `make install`. See Make.inc for their list. `DESTDIR` can also be used to force the installation into a temporary directory. -By default, Julia loads `$prefix/etc/julia/juliarc.jl` as an +By default, Julia loads `$prefix/etc/julia/startup.jl` as an installation-wide initialization file. This file can be used by distribution managers to set up custom paths or initialization code. For Linux distribution packages, if `$prefix` is @@ -89,8 +89,8 @@ set to `/usr`, there is no `/usr/etc` to look into. This requires the path to Julia's private `etc` directory to be changed. This can be done via the `sysconfdir` make variable when building. Simply pass `sysconfdir=/etc` to `make` when building and Julia will first -check `/etc/julia/juliarc.jl` before trying -`$prefix/etc/julia/juliarc.jl`. +check `/etc/julia/startup.jl` before trying +`$prefix/etc/julia/startup.jl`. OS X ---- @@ -375,7 +375,7 @@ for result in eachrow(results) end ``` -This will write color-coded lines to STDOUT. +This will write color-coded lines to `stdout`. All lines in red must be investigated as they signify potential breakages caused by the backport version. Lines in yellow should be looked into since it means a package ran on one version but diff --git a/LICENSE.md b/LICENSE.md index 358defbe0f0ea6..674a9cc776239d 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -36,7 +36,6 @@ Julia includes code from the following projects, which have their own licenses: - [MINGW](https://sourceforge.net/p/mingw/mingw-org-wsl/ci/legacy/tree/mingwrt/mingwex/dirname.c) (for dirname implementation on Windows) [MIT] - [NetBSD](http://www.netbsd.org/about/redistribution.html) (for setjmp, longjmp, and strptime implementations on Windows) [BSD-3] - [Python](https://docs.python.org/2/license.html) (for strtod implementation on Windows) [BSD-3, effectively] -- [randmtzig.c](https://github.com/JuliaLang/julia/blob/master/test/perf/micro/randmtzig.c) for Gaussian random number generation (for C benchmarks only) [BSD-3] The Julia language links to the following external libraries, which have their own licenses: diff --git a/Make.inc b/Make.inc index 9b7f7bdaf7034e..d13527b19cb33b 100644 --- a/Make.inc +++ b/Make.inc @@ -189,7 +189,6 @@ build_depsbindir := $(build_prefix)/tools build_libdir := $(build_prefix)/lib build_libexecdir := $(build_prefix)/libexec build_datarootdir := $(build_prefix)/share -build_docdir := $(build_datarootdir)/doc/julia build_mandir := $(build_datarootdir)/man build_man1dir := $(build_mandir)/man1 build_includedir := $(build_prefix)/include diff --git a/Makefile b/Makefile index 5a0fa8dd622700..d9c8c5c29fa90b 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ all: debug release # sort is used to remove potential duplicates DIRS := $(sort $(build_bindir) $(build_depsbindir) $(build_libdir) $(build_private_libdir) $(build_libexecdir) $(build_includedir) $(build_includedir)/julia $(build_sysconfdir)/julia $(build_datarootdir)/julia $(build_datarootdir)/julia/site $(build_man1dir)) ifneq ($(BUILDROOT),$(JULIAHOME)) -BUILDDIRS := $(BUILDROOT) $(addprefix $(BUILDROOT)/,base src ui doc deps test test/embedding test/perf examples) +BUILDDIRS := $(BUILDROOT) $(addprefix $(BUILDROOT)/,base src ui doc deps test test/embedding) BUILDDIRMAKE := $(addsuffix /Makefile,$(BUILDDIRS)) DIRS := $(DIRS) $(BUILDDIRS) $(BUILDDIRMAKE): | $(BUILDDIRS) @@ -56,20 +56,6 @@ julia_flisp.boot.inc.phony: julia-deps $(BUILDROOT)/doc/_build/html/en/index.html: $(shell find $(BUILDROOT)/base $(BUILDROOT)/doc \( -path $(BUILDROOT)/doc/_build -o -path $(BUILDROOT)/doc/deps -o -name *_constants.jl -o -name *_h.jl -o -name version_git.jl \) -prune -o -type f -print) @$(MAKE) docs -# doc needs to live under $(build_docdir), not under $(build_datarootdir)/julia/ -CLEAN_TARGETS += clean-docdir -clean-docdir: - @-rm -fr $(abspath $(build_docdir)) - -$(build_prefix)/.examples: $(wildcard $(JULIAHOME)/examples/*.jl) \ - $(shell find $(JULIAHOME)/examples/clustermanager) - @echo Copying in usr/share/doc/julia/examples - @-rm -fr $(build_docdir)/examples - @mkdir -p $(build_docdir)/examples - @cp -R $(JULIAHOME)/examples/*.jl $(build_docdir)/examples/ - @cp -R $(JULIAHOME)/examples/clustermanager $(build_docdir)/examples/ - @echo 1 > $@ - julia-symlink: julia-ui-$(JULIA_BUILD_MODE) ifneq ($(OS),WINNT) ifndef JULIA_VAGRANT_BUILD @@ -80,7 +66,7 @@ endif julia-deps: | $(DIRS) $(build_datarootdir)/julia/base $(build_datarootdir)/julia/test $(build_defaultpkgdir) @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/deps -julia-base: julia-deps $(build_sysconfdir)/julia/juliarc.jl $(build_man1dir)/julia.1 $(build_datarootdir)/julia/julia-config.jl +julia-base: julia-deps $(build_sysconfdir)/julia/startup.jl $(build_man1dir)/julia.1 $(build_datarootdir)/julia/julia-config.jl @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/base julia-libccalltest: julia-deps @@ -92,7 +78,7 @@ julia-src-release julia-src-debug : julia-src-% : julia-deps julia_flisp.boot.in julia-ui-release julia-ui-debug : julia-ui-% : julia-src-% @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/ui julia-$* -julia-base-compiler : julia-base julia-ui-$(JULIA_BUILD_MODE) $(build_prefix)/.examples +julia-base-compiler : julia-base julia-ui-$(JULIA_BUILD_MODE) @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT) $(build_private_libdir)/basecompiler.ji JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) julia-sysimg-release : julia-base-compiler julia-ui-release @@ -129,8 +115,6 @@ release-candidate: release testall exit 1; \ fi - @#Check that benchmarks work - @$(MAKE) -C $(BUILDROOT)/test/perf @#Check that netload tests work @#for test in test/netload/*.jl; do julia $$test; if [ $$? -ne 0 ]; then exit 1; fi; done @echo @@ -157,15 +141,16 @@ $(build_man1dir)/julia.1: $(JULIAHOME)/doc/man/julia.1 | $(build_man1dir) @mkdir -p $(build_man1dir) @cp $< $@ -$(build_sysconfdir)/julia/juliarc.jl: $(JULIAHOME)/etc/juliarc.jl | $(build_sysconfdir)/julia - @echo Creating usr/etc/julia/juliarc.jl +$(build_sysconfdir)/julia/startup.jl: $(JULIAHOME)/etc/startup.jl | $(build_sysconfdir)/julia + @echo Creating usr/etc/julia/startup.jl @cp $< $@ $(build_datarootdir)/julia/julia-config.jl : $(JULIAHOME)/contrib/julia-config.jl | $(build_datarootdir)/julia $(INSTALL_M) $< $(dir $@) -$(build_private_libdir)/%.$(SHLIB_EXT): $(build_private_libdir)/%.o - @$(call PRINT_LINK, $(CXX) $(LDFLAGS) -shared $(fPIC) -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -o $@ $< \ +$(build_private_libdir)/%.$(SHLIB_EXT): $(build_private_libdir)/%-o.a + @$(call PRINT_LINK, $(CXX) $(LDFLAGS) -shared $(fPIC) -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -o $@ \ + $(WHOLE_ARCHIVE) $< $(NO_WHOLE_ARCHIVE) \ $(if $(findstring -debug,$(notdir $@)),-ljulia-debug,-ljulia) \ $$([ $(OS) = WINNT ] && echo '' -lssp)) @$(INSTALL_NAME_CMD)$(notdir $@) $@ @@ -200,6 +185,7 @@ CORE_SRCS := $(addprefix $(JULIAHOME)/, \ base/reduce.jl \ base/reflection.jl \ base/traits.jl \ + base/refvalue.jl \ base/tuple.jl) COMPILER_SRCS = $(sort $(shell find $(JULIAHOME)/base/compiler -name \*.jl)) BASE_SRCS := $(sort $(shell find $(JULIAHOME)/base -name \*.jl) $(shell find $(BUILDROOT)/base -name \*.jl)) @@ -213,15 +199,13 @@ $(build_private_libdir)/basecompiler.ji: $(CORE_SRCS) $(COMPILER_SRCS) | $(build RELBUILDROOT := $(shell $(JULIAHOME)/contrib/relative_path.sh "$(JULIAHOME)/base" "$(BUILDROOT)/base/") COMMA:=, define sysimg_builder -$$(build_private_libdir)/sys$1.o: $$(build_private_libdir)/basecompiler.ji $$(JULIAHOME)/VERSION $$(BASE_SRCS) $$(STDLIB_SRCS) +$$(build_private_libdir)/sys$1-o.a: $$(build_private_libdir)/basecompiler.ji $$(JULIAHOME)/VERSION $$(BASE_SRCS) $$(STDLIB_SRCS) @$$(call PRINT_JULIA, cd $$(JULIAHOME)/base && \ - if $$(call spawn,$3) $2 -C "$$(JULIA_CPU_TARGET)" --output-o $$(call cygpath_w,$$@).tmp $$(JULIA_SYSIMG_BUILD_FLAGS) \ + if ! $$(call spawn,$3) $2 -C "$$(JULIA_CPU_TARGET)" --output-o $$(call cygpath_w,$$@) $$(JULIA_SYSIMG_BUILD_FLAGS) \ --startup-file=no --warn-overwrite=yes --sysimage $$(call cygpath_w,$$<) sysimg.jl $$(RELBUILDROOT); then \ - mv $$@.tmp $$@; \ - else \ echo '*** This error is usually fixed by running `make clean`. If the error persists$$(COMMA) try `make cleanall`. ***' && false; \ fi ) -.SECONDARY: $(build_private_libdir)/sys$1.o +.SECONDARY: $(build_private_libdir)/sys$1-o.a endef $(eval $(call sysimg_builder,,-O3,$(JULIA_EXECUTABLE_release))) $(eval $(call sysimg_builder,-debug,-O0,$(JULIA_EXECUTABLE_debug))) @@ -353,10 +337,7 @@ endif # Copy in all .jl sources as well cp -R -L $(build_datarootdir)/julia $(DESTDIR)$(datarootdir)/ # Copy documentation - cp -R -L $(build_docdir)/* $(DESTDIR)$(docdir)/ cp -R -L $(BUILDROOT)/doc/_build/html $(DESTDIR)$(docdir)/ - # Remove perf suite - -rm -rf $(DESTDIR)$(datarootdir)/julia/test/perf/ # Remove various files which should not be installed -rm -f $(DESTDIR)$(datarootdir)/julia/base/version_git.sh -rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile @@ -426,11 +407,11 @@ ifeq ($(OS), Linux) # Copy over any bundled ca certs we picked up from the system during buildi -cp $(build_datarootdir)/julia/cert.pem $(DESTDIR)$(datarootdir)/julia/ endif - # Copy in juliarc.jl files per-platform for binary distributions as well + # Copy in startup.jl files per-platform for binary distributions as well # Note that we don't install to sysconfdir: we always install to $(DESTDIR)$(prefix)/etc. # If you want to make a distribution with a hardcoded path, you take care of installation ifeq ($(OS), Darwin) - -cat $(JULIAHOME)/contrib/mac/juliarc.jl >> $(DESTDIR)$(prefix)/etc/julia/juliarc.jl + -cat $(JULIAHOME)/contrib/mac/startup.jl >> $(DESTDIR)$(prefix)/etc/julia/startup.jl endif ifeq ($(OS), WINNT) @@ -470,7 +451,8 @@ endif # Create file light-source-dist.tmp to hold all the filenames that go into the tarball echo "base/version_git.jl" > light-source-dist.tmp - git ls-files | sed -e '/\.git/d' -e '/\.travis/d' >> light-source-dist.tmp + # Exclude git, github and CI config files + git ls-files | sed -E -e '/^\..+/d' -e '/\/\..+/d' -e '/appveyor.yml/d' >> light-source-dist.tmp find doc/_build/html >> light-source-dist.tmp # Make tarball with only Julia code @@ -503,7 +485,6 @@ clean: | $(CLEAN_TARGETS) @-$(MAKE) -C $(BUILDROOT)/src clean @-$(MAKE) -C $(BUILDROOT)/ui clean @-$(MAKE) -C $(BUILDROOT)/test clean - @-$(MAKE) -C $(BUILDROOT)/examples clean -rm -f $(BUILDROOT)/julia -rm -f $(BUILDROOT)/*.tar.gz -rm -f $(build_depsbindir)/stringreplace \ @@ -512,7 +493,6 @@ clean: | $(CLEAN_TARGETS) -rm -fr $(build_private_libdir) # Teporarily add this line to the Makefile to remove extras -rm -fr $(build_datarootdir)/julia/extras - -rm -f $(build_prefix)/.examples cleanall: clean @-$(MAKE) -C $(BUILDROOT)/src clean-flisp clean-support @@ -530,7 +510,7 @@ distcleanall: cleanall test testall testall1 test clean distcleanall cleanall clean-* \ run-julia run-julia-debug run-julia-release run \ install binary-dist light-source-dist.tmp light-source-dist \ - dist full-source-dist source-dist examples + dist full-source-dist source-dist test: check-whitespace $(JULIA_BUILD_MODE) @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/test default JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) @@ -550,12 +530,6 @@ testall1: check-whitespace $(JULIA_BUILD_MODE) test-%: check-whitespace $(JULIA_BUILD_MODE) @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/test $* JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) -perf: release - @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/test/perf JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) - -perf-%: release - @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/test/perf $* JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) - # download target for some hardcoded windows dependencies .PHONY: win-extras wine_path win-extras: diff --git a/NEWS.md b/NEWS.md index 7a368282cecaae..43429f84481402 100644 --- a/NEWS.md +++ b/NEWS.md @@ -165,7 +165,7 @@ Language changes expressions) ([#23885]). * The `+` and `-` methods for `Number` and `UniformScaling` are not ambiguous anymore since `+` - and `-` no longer do automatic broadcasting. Hence the methods for `UniformScaling` and `Number` are + and `-` no longer do automatic broadcasting. Hence, the methods for `UniformScaling` and `Number` are no longer deprecated ([#23923]). * The keyword `importall` is deprecated. Use `using` and/or individual `import` statements @@ -199,17 +199,27 @@ Language changes * `=>` now has its own precedence level, giving it strictly higher precedence than `=` and `,` ([#25391]). + * The conditions under which unary operators followed by `(` are parsed as prefix function + calls have changed ([#26154]). + * `begin` is disallowed inside indexing expressions, in order to enable the syntax `a[begin]` (for selecting the first element) in the future ([#23354]). * Underscores for `_italics_` and `__bold__` are now supported by the Base Markdown parser. ([#25564]) + * `…` (`\dots`) and `⁝` (`\tricolon`) are now parsed as binary operators ([#26262]). + Breaking changes ---------------- This section lists changes that do not have deprecation warnings. + * `replace(s::AbstractString, pat=>repl)` for function `repl` arguments formerly + passed a substring to `repl` in all cases. It now passes substrings for + string patterns `pat`, but a `Char` for character patterns (when `pat` is a + `Char`, collection of `Char`, or a character predicate) ([#25815]). + * `readuntil` now does *not* include the delimiter in its result, matching the behavior of `readline`. Pass `keep=true` to get the old behavior ([#25633]). @@ -222,11 +232,15 @@ This section lists changes that do not have deprecation warnings. * `ntuple(f, n::Integer)` throws `ArgumentError` if `n` is negative. Previously an empty tuple was returned ([#21697]). + * `⋮`, `⋱`, `⋰`, and `⋯` are now parsed as binary operators, not ordinary + identifiers. `≔`, `≕`, and `⩴` now parse with assignment rather than comparison + precedence ([#26262]). + * Juxtaposing string literals (e.g. `"x"y`) is now a syntax error ([#20575]). * `finalizer(function, object)` now returns `object` rather than `nothing` ([#24679]). - * The constructor of `SubString` now checks if the requsted view range + * The constructor of `SubString` now checks if the requested view range is defined by valid indices in the parent `AbstractString` ([#22511]). * Macro calls with `for` expressions are now parsed as generators inside @@ -258,8 +272,11 @@ This section lists changes that do not have deprecation warnings. of the socket. Previously the address of the remote endpoint was being returned ([#21825]). - * Using `ARGS` within the ~/.juliarc.jl or within a .jl file loaded with `--load` will no - longer contain the script name as the first argument. Instead the script name will be + * The `~/.juliarc.jl` file has been moved to `~/.julia/config/startup.jl` and + `/etc/julia/juliarc.jl` file has been renamed to `/etc/julia/startup.jl` ([#26161]). + + * Using `ARGS` within `startup.jl` files or within a .jl file loaded with `--load` will no + longer contain the script name as the first argument. Instead, the script name will be assigned to `PROGRAM_FILE`. ([#22092]) * The format for a `ClusterManager` specifying the cookie on the command line is now @@ -337,7 +354,7 @@ This section lists changes that do not have deprecation warnings. * The `openspecfun` library is no longer built and shipped with Julia, as it is no longer used internally ([#22390]). - * All loaded packges used to have bindings in `Main` (e.g. `Main.Package`). This is no + * All loaded packages used to have bindings in `Main` (e.g. `Main.Package`). This is no longer the case; now bindings will only exist for packages brought into scope by typing `using Package` or `import Package` ([#17997]). @@ -401,7 +418,7 @@ This section lists changes that do not have deprecation warnings. now take and/or return the same type of indices as `keys`/`pairs` for `AbstractArray`, `AbstractDict`, `AbstractString`, `Tuple` and `NamedTuple` objects ([#24774], [#25545]). In particular, this means that they use `CartesianIndex` objects for matrices - and higher-dimensional arrays insted of linear indices as was previously the case. + and higher-dimensional arrays instead of linear indices as was previously the case. Use `LinearIndices(a)[findall(f, a)]` and similar constructs to compute linear indices. * The `find*` functions, i.e. `findnext`, `findprev`, `findfirst`, @@ -570,6 +587,9 @@ Library improvements collection `A`. There are also two other methods with a different API, and a mutating variant, `replace!` ([#22324]). + * Adding integers to `CartesianIndex` objects is now deprecated. Instead of + `i::Int + x::CartesianIndex`, use `i*one(x) + x` ([#26284]). + * `CartesianRange` changes ([#24715]): - Inherits from `AbstractArray`, and linear indexing can be used to provide linear-to-cartesian conversion ([#24715]) @@ -590,7 +610,7 @@ Library improvements Use `unique` to get the old behavior. * The type `LinearIndices` has been added, providing conversion from - cartesian incices to linear indices using the normal indexing operation. ([#24715]) + cartesian indices to linear indices using the normal indexing operation. ([#24715]) * `IdDict{K,V}` replaces `ObjectIdDict`. It has type parameters like other `AbstractDict` subtypes and its constructors mirror the @@ -599,6 +619,9 @@ Library improvements * `IOBuffer` can take the `sizehint` keyword argument to suggest a capacity of the buffer ([#25944]). + * `trunc`, `floor`, `ceil`, `round`, and `signif` specify `base` using a + keyword argument. ([#26156]) + Compiler/Runtime improvements ----------------------------- @@ -793,7 +816,7 @@ Deprecated or removed * Calling `write` on non-isbits arrays is deprecated in favor of explicit loops or `serialize` ([#6466]). - * The default `juliarc.jl` file on Windows has been removed. Now must explicitly include the + * The default `startup.jl` file on Windows has been removed. Now must explicitly include the full path if you need access to executables or libraries in the `Sys.BINDIR` directory, e.g. `joinpath(Sys.BINDIR, "7z.exe")` for `7z.exe` ([#21540]). @@ -1001,6 +1024,8 @@ Deprecated or removed * `ismatch(regex, str)` has been deprecated in favor of `contains(str, regex)` ([#24673]). + * `matchall` has been deprecated in favor of `collect(m.match for m in eachmatch(r, s))` ([#26071]). + * `similar(::Associative)` has been deprecated in favor of `empty(::Associative)`, and `similar(::Associative, ::Pair{K, V})` has been deprecated in favour of `empty(::Associative, K, V)` ([#24390]). @@ -1062,6 +1087,9 @@ Deprecated or removed * The fallback method `^(x, p::Integer)` is deprecated. If your type relied on this definition, add a method such as `^(x::MyType, p::Integer) = Base.power_by_squaring(x, p)` ([#23332]). + * `DevNull`, `STDIN`, `STDOUT`, and `STDERR` have been renamed to `devnull`, `stdin`, `stdout`, + and `stderr`, respectively ([#25786]). + * `wait` and `fetch` on `Task` now resemble the interface of `Future` Command-line option changes @@ -1359,4 +1387,5 @@ Command-line option changes [#25990]: https://github.com/JuliaLang/julia/issues/25990 [#25998]: https://github.com/JuliaLang/julia/issues/25998 [#26009]: https://github.com/JuliaLang/julia/issues/26009 -[#26149]: https://github.com/JuliaLang/julia/issues/26149 \ No newline at end of file +[#26149]: https://github.com/JuliaLang/julia/issues/26149 +[#26071]: https://github.com/JuliaLang/julia/issues/26071 diff --git a/README.md b/README.md index 51076bab42faca..8cf6dbe80e54d0 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Code coverage: [travis-img]: https://img.shields.io/travis/JuliaLang/julia/master.svg?label=Linux+/+macOS [appveyor-img]: https://img.shields.io/appveyor/ci/JuliaLang/julia/master.svg?label=Windows -[coveralls-img]: https://img.shields.io/coveralls/c/github/JuliaLang/julia/master.svg?label=coveralls +[coveralls-img]: https://img.shields.io/coveralls/github/JuliaLang/julia/master.svg?label=coveralls [codecov-img]: https://img.shields.io/codecov/c/github/JuliaLang/julia/master.svg?label=codecov ## The Julia Language @@ -294,15 +294,15 @@ Building Julia requires that the following software be installed: Julia uses the following external libraries, which are automatically downloaded (or in a few cases, included in the Julia source repository) and then compiled from source the first time you run `make`: -- **[LLVM]** (3.9) — compiler infrastructure. +- **[LLVM]** (3.9 + patches) — compiler infrastructure (see [note below](#llvm)). - **[FemtoLisp]** — packaged with Julia source, and used to implement the compiler front-end. -- **[libuv]** — portable, high-performance event-based I/O library. +- **[libuv]** (custom fork) — portable, high-performance event-based I/O library. - **[OpenLibm]** — portable libm library containing elementary math functions. - **[DSFMT]** — fast Mersenne Twister pseudorandom number generator library. -- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2). +- **[OpenBLAS]** — fast, open, and maintained [basic linear algebra subprograms (BLAS)](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) library, based on [Kazushige Goto's](https://en.wikipedia.org/wiki/Kazushige_Goto) famous [GotoBLAS](https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2) (see [note below](#blas-and-lapack)). - **[LAPACK]** (>= 3.5) — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. - **[MKL]** (optional) – OpenBLAS and LAPACK may be replaced by Intel's MKL library. -- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices. +- **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse)). - **[ARPACK]** — collection of subroutines designed to solve large, sparse eigenvalue problems. - **[PCRE]** (>= 10.00) — Perl-compatible regular expressions library. - **[GMP]** (>= 5.0) — GNU multiple precision arithmetic library, needed for `BigInt` support. @@ -318,6 +318,7 @@ Julia uses the following external libraries, which are automatically downloaded [patch]: http://www.gnu.org/software/patch [wget]: http://www.gnu.org/software/wget [m4]: http://www.gnu.org/software/m4 +[awk]: http://www.gnu.org/software/gawk [gcc]: http://gcc.gnu.org [clang]: http://clang.llvm.org [python]: https://www.python.org/ @@ -347,12 +348,35 @@ Julia uses the following external libraries, which are automatically downloaded [mbedtls]: https://tls.mbed.org/ [pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/ +### Notes for distribution package maintainers + +Package maintainers will typically want to make use of system libraries where possible. Please refer to the above version requirements and additional notes below. A list of maintained Julia packages for various platforms is available at https://julialang.org/downloads/platform.html. + ### System Provided Libraries If you already have one or more of these packages installed on your system, you can prevent Julia from compiling duplicates of these libraries by passing `USE_SYSTEM_...=1` to `make` or adding the line to `Make.user`. The complete list of possible flags can be found in `Make.inc`. Please be aware that this procedure is not officially supported, as it introduces additional variability into the installation and versioning of the dependencies, and is recommended only for system package maintainers. Unexpected compile errors may result, as the build system will do no further checking to ensure the proper packages are installed. +### LLVM + +The most complicated dependency is LLVM, for which we require version 3.9 with some additional patches from upstream (LLVM is not backward compatible). For packaging Julia, we recommend either: + - bundling a Julia-only LLVM library inside the Julia package, or + - adding the patches to the LLVM 3.9 package of the distribution. + * A complete list of patches is available in `deps/llvm.mk`, and the patches themselves are in `deps/patches/`. + * The only Julia-specific patch is the lib renaming (`llvm-symver-jlprefix.patch`), which should _not_ be applied to a system LLVM. + * The remaining patches are all upstream bug fixes, and have been contributed into upstream LLVM. + +Using an unpatched or different version of LLVM will result in errors and/or poor performance. Though Julia can be built with newer LLVM versions, support for this should be regarded as experimental and not suitable for packaging. + +### libuv + +Julia uses a custom fork of libuv. It is a small dependency, and can be safely bundled in the same package as Julia, and will not conflict with the system library. Julia builds should _not_ try to use the system libuv. + +### BLAS and LAPACK + +As a high-performance numerical language, Julia should be linked to a multi-threaded BLAS and LAPACK, such as OpenBLAS or ATLAS, which will provide much better performance than the reference `libblas` implementations which may be default on some systems. + ### SuiteSparse SuiteSparse is a special case, since it is typically only installed as a static library, while `USE_SYSTEM_SUITESPARSE=1` requires that it is a shared library. Running the script `contrib/repackage_system_suitesparse4.make` will copy your static system SuiteSparse installation into the shared library format required by Julia. `make USE_SYSTEM_SUITESPARSE=1` will then use the SuiteSparse that has been copied into Julia's directory, but will not build a new SuiteSparse library from scratch. @@ -387,10 +411,8 @@ The Julia source code is organized as follows: deps/ external dependencies doc/src/manual source for the user manual doc/src/stdlib source for standard library function reference - examples/ example Julia programs src/ source for Julia language core test/ test suites - test/perf benchmark suites ui/ source for various front ends usr/ binaries and shared libraries loaded by Julia's standard libraries @@ -424,12 +446,10 @@ editors. While Julia modes for others such as Textmate, Notepad++, and Kate, are in `contrib/`. -Three major IDEs are supported for Julia: [Juno](http://junolab.org/) -which is based on [Atom](https://atom.io/), +Two major IDEs are supported for Julia: [Juno](http://junolab.org/) +which is based on [Atom](https://atom.io/) and [julia-vscode](https://github.com/JuliaEditorSupport/julia-vscode) -based on [VS Code](https://code.visualstudio.com/), and -[JuliaDT](https://github.com/JuliaComputing/JuliaDT), which is an -[Eclipse](http://eclipse.org) plugin. A [Jupyter](http://jupyter.org/) notebooks interface +based on [VS Code](https://code.visualstudio.com/). A [Jupyter](http://jupyter.org/) notebooks interface is available through [IJulia](https://github.com/JuliaLang/IJulia.jl). The [Sublime-IJulia](https://github.com/quinnj/Sublime-IJulia) plugin diff --git a/README.windows.md b/README.windows.md index 92c2443b839147..be6fe2d7a5e650 100644 --- a/README.windows.md +++ b/README.windows.md @@ -63,7 +63,7 @@ The 64-bit (x86_64) binary will only run on 64-bit Windows and will otherwise re 3. Julia's home directory is the location pointed to by the Windows environment variable `%HOME%`: this directory is for instance where the startup file - `.juliarc.jl` resides. `%HOMEDRIVE%\%HOMEPATH%` is used as a fallback if + `.julia/config/startup.jl` resides. `%HOMEDRIVE%\%HOMEPATH%` is used as a fallback if `%HOME%` is not defined. ## Source distribution diff --git a/appveyor.yml b/appveyor.yml index 514c1cb50e64b8..71efb3d7791f1f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -55,6 +55,6 @@ test_script: - usr\bin\julia -e "versioninfo()" - usr\bin\julia --sysimage-native-code=no -e "true" - cd julia-* && .\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl all && - .\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl LibGit2/online Pkg/pkg download + .\bin\julia.exe --check-bounds=yes share\julia\test\runtests.jl LibGit2/online Pkg/pkg Pkg3/pkg download - cd .. - usr\bin\julia usr\share\julia\test\embedding\embedding-test.jl test\embedding\embedding.exe diff --git a/base/Enums.jl b/base/Enums.jl index 3e20f055fe1755..bf356c9490315d 100644 --- a/base/Enums.jl +++ b/base/Enums.jl @@ -36,7 +36,7 @@ Create an `Enum{BaseType}` subtype with name `EnumName` and enum member values o `EnumName` can be used just like other types and enum member values as regular values, such as # Examples -```jldoctest +```jldoctest fruitenum julia> @enum Fruit apple=1 orange=2 kiwi=3 julia> f(x::Fruit) = "I'm a Fruit with value: \$(Int(x))" @@ -58,6 +58,13 @@ end `BaseType`, which defaults to [`Int32`](@ref), must be a primitive subtype of `Integer`. Member values can be converted between the enum type and `BaseType`. `read` and `write` perform these conversions automatically. + +To list all the instances of an enum use `instances`, e.g. + +```jldoctest fruitenum +julia> instances(Fruit) +(apple::Fruit = 1, orange::Fruit = 2, kiwi::Fruit = 3) +``` """ macro enum(T, syms...) if isempty(syms) diff --git a/base/abstractarray.jl b/base/abstractarray.jl index ff81756a8cc2f0..5721ec77bfe490 100644 --- a/base/abstractarray.jl +++ b/base/abstractarray.jl @@ -29,6 +29,9 @@ Return a tuple containing the dimensions of `A`. Optionally you can specify the dimension(s) you want the length of, and get the length of that dimension, or a tuple of the lengths of dimensions you asked for. +Note that `size` may not be defined for arrays with non-standard indices, in which case [`axes`](@ref) +may be useful. See the manual chapter on [arrays with custom indices](@ref man-custom-indices). + # Examples ```jldoctest julia> A = fill(1, (2,3,4)); @@ -49,6 +52,8 @@ size(x, d1::Integer, d2::Integer, dx::Vararg{Integer, N}) where {N} = Return the valid range of indices for array `A` along dimension `d`. +See also [`size`](@ref), and the manual chapter on [arrays with custom indices](@ref man-custom-indices). + # Examples ```jldoctest julia> A = fill(1, (5,6,7)); @@ -1047,6 +1052,110 @@ function _setindex!(::IndexCartesian, A::AbstractArray, v, I::Vararg{Int,M}) whe r end +""" + parent(A) + +Returns the "parent array" of an array view type (e.g., `SubArray`), or the array itself if +it is not a view. + +# Examples +```jldoctest +julia> A = [1 2; 3 4] +2×2 Array{Int64,2}: + 1 2 + 3 4 + +julia> V = view(A, 1:2, :) +2×2 view(::Array{Int64,2}, 1:2, :) with eltype Int64: + 1 2 + 3 4 + +julia> parent(V) +2×2 Array{Int64,2}: + 1 2 + 3 4 +``` +""" +parent(a::AbstractArray) = a + +## rudimentary aliasing detection ## +""" + Base.unalias(dest, A) + +Return either `A` or a copy of `A` in a rough effort to prevent modifications to `dest` from +affecting the returned object. No guarantees are provided. + +Custom arrays that wrap or use fields containing arrays that might alias against other +external objects should provide a [`Base.dataids`](@ref) implementation. + +This function must return an object of exactly the same type as `A` for performance and type +stability. Mutable custom arrays for which [`copy(A)`](@ref) is not `typeof(A)` should +provide a [`Base.unaliascopy`](@ref) implementation. + +See also [`Base.mightalias`](@ref). +""" +unalias(dest, A::AbstractArray) = mightalias(dest, A) ? unaliascopy(A) : A +unalias(dest, A::AbstractRange) = A +unalias(dest, A) = A + +""" + Base.unaliascopy(A) + +Make a preventative copy of `A` in an operation where `A` [`Base.mightalias`](@ref) against +another array in order to preserve consistent semantics as that other array is mutated. + +This must return an object of the same type as `A` to preserve optimal performance in the +much more common case where aliasing does not occur. By default, +`unaliascopy(A::AbstractArray)` will attempt to use [`copy(A)`](@ref), but in cases where +`copy(A)` is not a `typeof(A)`, then the array should provide a custom implementation of +`Base.unaliascopy(A)`. +""" +unaliascopy(A::Array) = copy(A) +unaliascopy(A::AbstractArray)::typeof(A) = (@_noinline_meta; _unaliascopy(A, copy(A))) +_unaliascopy(A::T, C::T) where {T} = C +_unaliascopy(A, C) = throw(ArgumentError(""" + an array of type `$(typeof(A).name)` shares memory with another argument and must + make a preventative copy of itself in order to maintain consistent semantics, + but `copy(A)` returns a new array of type `$(typeof(C))`. To fix, implement: + `Base.unaliascopy(A::$(typeof(A).name))::typeof(A)`""")) +unaliascopy(A) = A + +""" + Base.mightalias(A::AbstractArray, B::AbstractArray) + +Perform a conservative test to check if arrays `A` and `B` might share the same memory. + +By default, this simply checks if either of the arrays reference the same memory +regions, as identified by their [`Base.dataids`](@ref). +""" +mightalias(A::AbstractArray, B::AbstractArray) = !_isdisjoint(dataids(A), dataids(B)) +mightalias(x, y) = false + +_isdisjoint(as::Tuple{}, bs::Tuple{}) = true +_isdisjoint(as::Tuple{}, bs::Tuple{Any}) = true +_isdisjoint(as::Tuple{}, bs::Tuple) = true +_isdisjoint(as::Tuple{Any}, bs::Tuple{}) = true +_isdisjoint(as::Tuple{Any}, bs::Tuple{Any}) = as[1] != bs[1] +_isdisjoint(as::Tuple{Any}, bs::Tuple) = !(as[1] in bs) +_isdisjoint(as::Tuple, bs::Tuple{}) = true +_isdisjoint(as::Tuple, bs::Tuple{Any}) = !(bs[1] in as) +_isdisjoint(as::Tuple, bs::Tuple) = !(as[1] in bs) && _isdisjoint(tail(as), bs) + +""" + Base.dataids(A::AbstractArray) + +Return a tuple of `UInt`s that represent the mutable data segments of an array. + +Custom arrays that would like to opt-in to aliasing detection of their component +parts can specialize this method to return the concatenation of the `dataids` of +their component parts. A typical definition for an array that wraps a parent is +`Base.dataids(C::CustomArray) = dataids(C.parent)`. +""" +dataids(A::AbstractArray) = (UInt(objectid(A)),) +dataids(A::Array) = (UInt(pointer(A)),) +dataids(::AbstractRange) = () +dataids(x) = () + ## get (getindex with a default value) ## RangeVecIntList{A<:AbstractVector{Int}} = Union{Tuple{Vararg{Union{AbstractRange, AbstractVector{Int}}}}, diff --git a/base/abstractdict.jl b/base/abstractdict.jl index 8e2b8a42693676..d4233f95782d84 100644 --- a/base/abstractdict.jl +++ b/base/abstractdict.jl @@ -90,15 +90,15 @@ return the elements in the same order. # Examples ```jldoctest -julia> a = Dict('a'=>2, 'b'=>3) +julia> D = Dict('a'=>2, 'b'=>3) Dict{Char,Int64} with 2 entries: - 'b' => 3 'a' => 2 + 'b' => 3 -julia> collect(keys(a)) +julia> collect(keys(D)) 2-element Array{Char,1}: - 'b' 'a' + 'b' ``` """ keys(a::AbstractDict) = KeySet(a) @@ -115,15 +115,15 @@ return the elements in the same order. # Examples ```jldoctest -julia> a = Dict('a'=>2, 'b'=>3) +julia> D = Dict('a'=>2, 'b'=>3) Dict{Char,Int64} with 2 entries: - 'b' => 3 'a' => 2 + 'b' => 3 -julia> collect(values(a)) +julia> collect(values(D)) 2-element Array{Int64,1}: - 3 2 + 3 ``` """ values(a::AbstractDict) = ValueIterator(a) @@ -541,8 +541,9 @@ See [`Dict`](@ref) for further help. """ mutable struct IdDict{K,V} <: AbstractDict{K,V} ht::Vector{Any} + count::Int ndel::Int - IdDict{K,V}() where {K, V} = new{K,V}(Vector{Any}(uninitialized, 32), 0) + IdDict{K,V}() where {K, V} = new{K,V}(Vector{Any}(uninitialized, 32), 0, 0) function IdDict{K,V}(itr) where {K, V} d = IdDict{K,V}() @@ -557,7 +558,7 @@ mutable struct IdDict{K,V} <: AbstractDict{K,V} d end - IdDict{K,V}(d::IdDict{K,V}) where {K, V} = new{K,V}(copy(d.ht)) + IdDict{K,V}(d::IdDict{K,V}) where {K, V} = new{K,V}(copy(d.ht), d.count, d.ndel) end IdDict() = IdDict{Any,Any}() @@ -568,6 +569,21 @@ IdDict(ps::Pair{K}...) where {K} = IdDict{K,Any}(ps) IdDict(ps::(Pair{K,V} where K)...) where {V} = IdDict{Any,V}(ps) IdDict(ps::Pair...) = IdDict{Any,Any}(ps) +TP{K,V} = Union{Type{Tuple{K,V}},Type{Pair{K,V}}} + +dict_with_eltype(DT_apply, kv, ::TP{K,V}) where {K,V} = DT_apply(K, V)(kv) +dict_with_eltype(DT_apply, kv::Generator, ::TP{K,V}) where {K,V} = DT_apply(K, V)(kv) +dict_with_eltype(DT_apply, ::Type{Pair{K,V}}) where {K,V} = DT_apply(K, V)() +dict_with_eltype(DT_apply, ::Type) = DT_apply(Any, Any)() +dict_with_eltype(DT_apply::F, kv, t) where {F} = grow_to!(dict_with_eltype(DT_apply, @default_eltype(typeof(kv))), kv) +function dict_with_eltype(DT_apply::F, kv::Generator, t) where F + T = @default_eltype(kv) + if T <: Union{Pair, Tuple{Any, Any}} && isconcretetype(T) + return dict_with_eltype(DT_apply, kv, T) + end + return grow_to!(dict_with_eltype(DT_apply, T), kv) +end + function IdDict(kv) try dict_with_eltype((K, V) -> IdDict{K, V}, kv, eltype(kv)) @@ -605,7 +621,9 @@ function setindex!(d::IdDict{K,V}, @nospecialize(val), @nospecialize(key)) where rehash!(d, max(length(d.ht)>>1, 32)) d.ndel = 0 end - d.ht = ccall(:jl_eqtable_put, Array{Any,1}, (Any, Any, Any), d.ht, key, val) + inserted = RefValue{Cint}(0) + d.ht = ccall(:jl_eqtable_put, Array{Any,1}, (Any, Any, Any, Ptr{Cint}), d.ht, key, val, inserted) + d.count += inserted[] return d end @@ -620,12 +638,13 @@ function getindex(d::IdDict{K,V}, @nospecialize(key)) where {K, V} end function pop!(d::IdDict{K,V}, @nospecialize(key), @nospecialize(default)) where {K, V} - val = ccall(:jl_eqtable_pop, Any, (Any, Any, Any), d.ht, key, default) - # TODO: this can underestimate `ndel` - if val === default + found = RefValue{Cint}(0) + val = ccall(:jl_eqtable_pop, Any, (Any, Any, Any, Ptr{Cint}), d.ht, key, default, found) + if found[] === Cint(0) return default else - (d.ndel += 1) + d.count -= 1 + d.ndel += 1 return val::V end end @@ -645,6 +664,7 @@ function empty!(d::IdDict) resize!(d.ht, 32) ccall(:memset, Ptr{Cvoid}, (Ptr{Cvoid}, Cint, Csize_t), d.ht, 0, sizeof(d.ht)) d.ndel = 0 + d.count = 0 return d end @@ -654,13 +674,7 @@ start(d::IdDict) = _oidd_nextind(d.ht, 0) done(d::IdDict, i) = (i == -1) next(d::IdDict{K,V}, i) where {K, V} = (Pair{K,V}(d.ht[i+1], d.ht[i+2]), _oidd_nextind(d.ht, i+2)) -function length(d::IdDict) - n = 0 - for pair in d - n+=1 - end - n -end +length(d::IdDict) = d.count copy(d::IdDict) = IdDict(d) @@ -669,3 +683,37 @@ get!(d::IdDict{K,V}, @nospecialize(key), @nospecialize(default)) where {K, V} = # For some AbstractDict types, it is safe to implement filter! # by deleting keys during iteration. filter!(f, d::IdDict) = filter_in_one_pass!(f, d) + +# Like Set, but using IdDict +mutable struct IdSet{T} <: AbstractSet{T} + dict::IdDict{T,Nothing} + + IdSet{T}() where {T} = new(IdDict{T,Nothing}()) + IdSet{T}(s::IdSet{T}) where {T} = new(IdDict{T,Nothing}(s.dict)) +end + +IdSet{T}(itr) where {T} = union!(IdSet{T}(), itr) +IdSet() = IdSet{Any}() + +copy(s::IdSet{T}) where {T} = IdSet{T}(s) +copymutable(s::IdSet{T}) where {T} = IdSet{T}(s) + +isempty(s::IdSet) = isempty(s.dict) +length(s::IdSet) = length(s.dict) +in(x, s::IdSet) = haskey(s.dict, x) +push!(s::IdSet, x) = (s.dict[x] = nothing; s) +pop!(s::IdSet, x) = (pop!(s.dict, x); x) +pop!(s::IdSet, x, deflt) = x in s ? pop!(s, x) : deflt +delete!(s::IdSet, x) = (delete!(s.dict, x); s) + +sizehint!(s::IdSet, newsz) = (sizehint!(s.dict, newsz); s) +empty!(s::IdSet) = (empty!(s.dict); s) + +filter!(f, d::IdSet) = unsafe_filter!(f, d) + +start(s::IdSet) = start(s.dict) +done(s::IdSet, state) = done(s.dict, state) +function next(s::IdSet, state) + ((k, _), i) = next(s.dict, state) + return (k, i) +end diff --git a/base/abstractset.jl b/base/abstractset.jl new file mode 100644 index 00000000000000..8291adf517922c --- /dev/null +++ b/base/abstractset.jl @@ -0,0 +1,266 @@ +eltype(::Type{<:AbstractSet{T}}) where {T} = @isdefined(T) ? T : Any +sizehint!(s::AbstractSet, n) = nothing + +""" + union(s, itrs...) + ∪(s, itrs...) + +Construct the union of sets. Maintain order with arrays. + +# Examples +```jldoctest +julia> union([1, 2], [3, 4]) +4-element Array{Int64,1}: + 1 + 2 + 3 + 4 + +julia> union([1, 2], [2, 4]) +3-element Array{Int64,1}: + 1 + 2 + 4 + +julia> union([4, 2], 1:2) +3-element Array{Int64,1}: + 4 + 2 + 1 + +julia> union(Set([1, 2]), 2:3) +Set([2, 3, 1]) +``` +""" +function union end + +_in(itr) = x -> x in itr + +union(s, sets...) = union!(emptymutable(s, promote_eltype(s, sets...)), s, sets...) +union(s::AbstractSet) = copy(s) + +const ∪ = union + +""" + union!(s::Union{AbstractSet,AbstractVector}, itrs...) + +Construct the union of passed in sets and overwrite `s` with the result. +Maintain order with arrays. + +# Examples +```jldoctest +julia> a = Set([1, 3, 4, 5]); + +julia> union!(a, 1:2:8); + +julia> a +Set([7, 4, 3, 5, 1]) +``` +""" +union!(s::AbstractSet, sets...) = foldl(union!, s, sets) + +max_values(::Type) = typemax(Int) +max_values(T::Type{<:Union{Nothing,BitIntegerSmall}}) = 1 << (8*sizeof(T)) +max_values(T::Union) = max(max_values(T.a), max_values(T.b)) +max_values(::Type{Bool}) = 2 + +function union!(s::AbstractSet{T}, itr) where T + haslength(itr) && sizehint!(s, length(s) + length(itr)) + for x=itr + push!(s, x) + length(s) == max_values(T) && break + end + s +end + +""" + intersect(s, itrs...) + ∩(s, itrs...) + +Construct the intersection of sets. +Maintain order with arrays. + +# Examples +```jldoctest +julia> intersect([1, 2, 3], [3, 4, 5]) +1-element Array{Int64,1}: + 3 + +julia> intersect([1, 4, 4, 5, 6], [4, 6, 6, 7, 8]) +2-element Array{Int64,1}: + 4 + 6 + +julia> intersect(Set([1, 2]), BitSet([2, 3])) +Set([2]) +``` +""" +intersect(s::AbstractSet, itr, itrs...) = intersect!(intersect(s, itr), itrs...) +intersect(s) = union(s) +intersect(s::AbstractSet, itr) = mapfilter(_in(s), push!, itr, emptymutable(s)) + +const ∩ = intersect + +""" + intersect!(s::Union{AbstractSet,AbstractVector}, itrs...) + +Intersect all passed in sets and overwrite `s` with the result. +Maintain order with arrays. +""" +intersect!(s::AbstractSet, itrs...) = foldl(intersect!, s, itrs) +intersect!(s::AbstractSet, s2::AbstractSet) = filter!(_in(s2), s) +intersect!(s::AbstractSet, itr) = intersect!(s, union!(emptymutable(s), itr)) + +""" + setdiff(s, itrs...) + +Construct the set of elements in `s` but not in any of the iterables in `itrs`. +Maintain order with arrays. + +# Examples +```jldoctest +julia> setdiff([1,2,3], [3,4,5]) +2-element Array{Int64,1}: + 1 + 2 +``` +""" +setdiff(s::AbstractSet, itrs...) = setdiff!(copymutable(s), itrs...) +setdiff(s) = union(s) + +""" + setdiff!(s, itrs...) + +Remove from set `s` (in-place) each element of each iterable from `itrs`. +Maintain order with arrays. + +# Examples +```jldoctest +julia> a = Set([1, 3, 4, 5]); + +julia> setdiff!(a, 1:2:6); + +julia> a +Set([4]) +``` +""" +setdiff!(s::AbstractSet, itrs...) = foldl(setdiff!, s, itrs) +setdiff!(s::AbstractSet, itr) = foldl(delete!, s, itr) + + +""" + symdiff(s, itrs...) + +Construct the symmetric difference of elements in the passed in sets. +When `s` is not an `AbstractSet`, the order is maintained. +Note that in this case the multiplicity of elements matters. + +# Examples +```jldoctest +julia> symdiff([1,2,3], [3,4,5], [4,5,6]) +3-element Array{Int64,1}: + 1 + 2 + 6 + +julia> symdiff([1,2,1], [2, 1, 2]) +2-element Array{Int64,1}: + 1 + 2 + +julia> symdiff(unique([1,2,1]), unique([2, 1, 2])) +0-element Array{Int64,1} +``` +""" +symdiff(s, sets...) = symdiff!(emptymutable(s, promote_eltype(s, sets...)), s, sets...) +symdiff(s) = symdiff!(copy(s)) + +""" + symdiff!(s::Union{AbstractSet,AbstractVector}, itrs...) + +Construct the symmetric difference of the passed in sets, and overwrite `s` with the result. +When `s` is an array, the order is maintained. +Note that in this case the multiplicity of elements matters. +""" +symdiff!(s::AbstractSet, itrs...) = foldl(symdiff!, s, itrs) + +function symdiff!(s::AbstractSet, itr) + for x in itr + x in s ? delete!(s, x) : push!(s, x) + end + s +end + +==(l::AbstractSet, r::AbstractSet) = length(l) == length(r) && l ⊆ r +# convenience functions for AbstractSet +# (if needed, only their synonyms ⊊ and ⊆ must be specialized) +<( l::AbstractSet, r::AbstractSet) = l ⊊ r +<=(l::AbstractSet, r::AbstractSet) = l ⊆ r + +""" + issubset(a, b) + ⊆(a,b) -> Bool + ⊈(a,b) -> Bool + ⊊(a,b) -> Bool + +Determine whether every element of `a` is also in `b`, using [`in`](@ref). + +# Examples +```jldoctest +julia> issubset([1, 2], [1, 2, 3]) +true + +julia> issubset([1, 2, 3], [1, 2]) +false +``` +""" +function issubset(l, r) + for elt in l + if !in(elt, r) + return false + end + end + return true +end +# use the implementation below when it becoms as efficient +# issubset(l, r) = all(_in(r), l) + +const ⊆ = issubset + +""" + issetequal(a, b) + +Determine whether `a` and `b` have the same elements. Equivalent +to `a ⊆ b && b ⊆ a`. + +# Examples +```jldoctest +julia> issetequal([1, 2], [1, 2, 3]) +false + +julia> issetequal([1, 2], [2, 1]) +true +``` +""" +issetequal(l, r) = length(l) == length(r) && l ⊆ r +issetequal(l::AbstractSet, r::AbstractSet) = l == r + +⊊(l, r) = length(l) < length(r) && l ⊆ r +⊈(l, r) = !⊆(l, r) + +⊇(l, r) = r ⊆ l +⊉(l, r) = r ⊈ l +⊋(l, r) = r ⊊ l + +filter(pred, s::AbstractSet) = mapfilter(pred, push!, s, emptymutable(s)) + +# it must be safe to delete the current element while iterating over s: +unsafe_filter!(pred, s::AbstractSet) = mapfilter(!pred, delete!, s, s) + +# TODO: delete mapfilter in favor of comprehensions/foldl/filter when competitive +function mapfilter(pred, f, itr, res) + for x in itr + pred(x) && f(res, x) + end + res +end diff --git a/base/array.jl b/base/array.jl index 7435314caac50e..16c23f862ecfb4 100644 --- a/base/array.jl +++ b/base/array.jl @@ -214,6 +214,16 @@ end copyto!(dest::Array{T}, src::Array{T}) where {T} = copyto!(dest, 1, src, 1, length(src)) +# N.B: The generic definition in multidimensional.jl covers, this, this is just here +# for bootstrapping purposes. +function fill!(dest::Array{T}, x) where T + xT = convert(T, x) + for i in 1:length(dest) + @inbounds dest[i] = xT + end + dest +end + """ copy(x) @@ -692,8 +702,8 @@ function setindex! end # These are redundant with the abstract fallbacks but needed for bootstrap function setindex!(A::Array, x, I::AbstractVector{Int}) @_propagate_inbounds_meta - A === I && (I = copy(I)) - for i in I + I′ = unalias(A, I) + for i in I′ A[i] = x end return A @@ -701,15 +711,11 @@ end function setindex!(A::Array, X::AbstractArray, I::AbstractVector{Int}) @_propagate_inbounds_meta @boundscheck setindex_shape_check(X, length(I)) + X′ = unalias(A, X) + I′ = unalias(A, I) count = 1 - if X === A - X = copy(X) - I===A && (I = X::typeof(I)) - elseif I === A - I = copy(I) - end - for i in I - @inbounds x = X[count] + for i in I′ + @inbounds x = X′[count] A[i] = x count += 1 end @@ -1517,8 +1523,7 @@ julia> A = [false, false, true, false] julia> findnext(A, 1) 3 -julia> findnext(A, 4) == nothing -true +julia> findnext(A, 4) # returns nothing, but not printed in the REPL julia> A = [false false; true false] 2×2 Array{Bool,2}: @@ -1569,8 +1574,7 @@ julia> A = [false, false, true, false] julia> findfirst(A) 3 -julia> findfirst(falses(3)) == nothing -true +julia> findfirst(falses(3)) # returns nothing, but not printed in the REPL julia> A = [false false; true false] 2×2 Array{Bool,2}: @@ -1609,23 +1613,14 @@ and [`pairs(A)`](@ref). # Examples ```jldoctest -A = [1, 4, 2, 2] -4-element Array{Int64,1}: - 1 - 4 - 2 - 2 +julia> A = [1, 4, 2, 2]; julia> findnext(isodd, A, 1) 1 -julia> findnext(isodd, A, 2) == nothing -true +julia> findnext(isodd, A, 2) # returns nothing, but not printed in the REPL -julia> A = [1 4; 2 2] -2×2 Array{Int64,2}: - 1 4 - 2 2 +julia> A = [1 4; 2 2]; julia> findnext(isodd, A, CartesianIndex(1, 1)) CartesianIndex(1, 1) @@ -1664,8 +1659,7 @@ julia> A = [1, 4, 2, 2] julia> findfirst(iseven, A) 2 -julia> findfirst(x -> x>10, A) == nothing -true +julia> findfirst(x -> x>10, A) # returns nothing, but not printed in the REPL julia> findfirst(equalto(4), A) 2 @@ -1711,8 +1705,7 @@ julia> A = [false, false, true, true] julia> findprev(A, 3) 3 -julia> findprev(A, 1) == nothing -true +julia> findprev(A, 1) # returns nothing, but not printed in the REPL julia> A = [false false; true true] 2×2 Array{Bool,2}: @@ -1761,8 +1754,7 @@ julia> findlast(A) julia> A = falses(2,2); -julia> findlast(A) == nothing -true +julia> findlast(A) # returns nothing, but not printed in the REPL julia> A = [true false; true false] 2×2 Array{Bool,2}: @@ -1808,8 +1800,7 @@ julia> A = [4, 6, 1, 2] 1 2 -julia> findprev(isodd, A, 1) == nothing -true +julia> findprev(isodd, A, 1) # returns nothing, but not printed in the REPL julia> findprev(isodd, A, 3) 3 @@ -1853,8 +1844,7 @@ julia> A = [1, 2, 3, 4] julia> findlast(isodd, A) 3 -julia> findlast(x -> x > 5, A) == nothing -true +julia> findlast(x -> x > 5, A) # returns nothing, but not printed in the REPL julia> A = [1 2; 3 4] 2×2 Array{Int64,2}: @@ -1959,9 +1949,9 @@ julia> A = [true false; false true] false true julia> findall(A) -2-element Array{Int64,1}: - 1 - 4 +2-element Array{CartesianIndex{2},1}: + CartesianIndex(1, 1) + CartesianIndex(2, 2) julia> findall(falses(3)) 0-element Array{Int64,1} @@ -2013,7 +2003,9 @@ julia> findmax([1,7,7,NaN]) (NaN, 4) ``` """ -function findmax(a) +findmax(a) = _findmax(a, :) + +function _findmax(a, ::Colon) if isempty(a) throw(ArgumentError("collection must be non-empty")) end @@ -2054,7 +2046,9 @@ julia> findmin([7,1,1,NaN]) (NaN, 4) ``` """ -function findmin(a) +findmin(a) = _findmin(a, :) + +function _findmin(a, ::Colon) if isempty(a) throw(ArgumentError("collection must be non-empty")) end @@ -2127,9 +2121,9 @@ array contains `nothing` wherever `a` is not a member of `b`. # Examples ```jldoctest -julia> a = ['a', 'b', 'c', 'b', 'd', 'a'] +julia> a = ['a', 'b', 'c', 'b', 'd', 'a']; -julia> b = ['a', 'b', 'c'] +julia> b = ['a', 'b', 'c']; julia> indexin(a, b) 6-element Array{Union{Nothing, Int64},1}: diff --git a/base/bitarray.jl b/base/bitarray.jl index e8b2aaa3b00088..9e6d65b76f908e 100644 --- a/base/bitarray.jl +++ b/base/bitarray.jl @@ -1639,8 +1639,8 @@ findall(::typeof(!iszero), B::BitArray) = findall(B) ## Reductions ## -sum(A::BitArray, region) = reducedim(+, A, region) -sum(B::BitArray) = count(B) +_sum(A::BitArray, dims) = reduce(+, A, dims=dims) +_sum(B::BitArray, ::Colon) = count(B) function all(B::BitArray) isempty(B) && return true diff --git a/base/bitset.jl b/base/bitset.jl index 84e9ecaff5523a..330b11e77430f3 100644 --- a/base/bitset.jl +++ b/base/bitset.jl @@ -28,6 +28,9 @@ very large integers), use [`Set`](@ref) instead. """ BitSet(itr) = union!(BitSet(), itr) +# Special implementation for BitSet, which lacks a fast `length` method. +union!(s::BitSet, itr) = foldl(push!, s, itr) + @inline intoffset(s::BitSet) = s.offset << 6 eltype(::Type{BitSet}) = Int diff --git a/base/bool.jl b/base/bool.jl index 135390cdf9859d..950540a0395465 100644 --- a/base/bool.jl +++ b/base/bool.jl @@ -11,7 +11,8 @@ typemax(::Type{Bool}) = true """ !(x) -Boolean not. +Boolean not. Implements [three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic), +returning [`missing`](@ref) if `x` is `missing`. # Examples ```jldoctest @@ -21,6 +22,9 @@ false julia> !false true +julia> !missing +missing + julia> .![true false true] 1×3 BitArray{2}: false true false @@ -40,13 +44,27 @@ end xor(x, y) ⊻(x, y) -Bitwise exclusive or of `x` and `y`. The infix operation -`a ⊻ b` is a synonym for `xor(a,b)`, and -`⊻` can be typed by tab-completing `\\xor` -or `\\veebar` in the Julia REPL. +Bitwise exclusive or of `x` and `y`. Implements +[three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic), +returning [`missing`](@ref) if one of the arguments is `missing`. + +The infix operation `a ⊻ b` is a synonym for `xor(a,b)`, and +`⊻` can be typed by tab-completing `\\xor` or `\\veebar` in the Julia REPL. # Examples ```jldoctest +julia> xor(true, false) +true + +julia> xor(true, true) +false + +julia> xor(true, missing) +missing + +julia> false ⊻ false +false + julia> [true; true; false] .⊻ [true; false; false] 3-element BitArray{1}: false diff --git a/base/boot.jl b/base/boot.jl index bc336015ab1a08..996f21addf9ae6 100644 --- a/base/boot.jl +++ b/base/boot.jl @@ -98,6 +98,16 @@ # label::Int #end +#struct PiNode +# val +# typ +#end + +#struct PhiNode +# edges::Vector{Any} +# values::Vector{Any} +#end + #struct QuoteNode # value #end @@ -141,7 +151,7 @@ export TypeError, ArgumentError, MethodError, AssertionError, LoadError, InitError, UndefKeywordError, # AST representation - Expr, QuoteNode, LineNumberNode, GlobalRef, + Expr, QuoteNode, LineNumberNode, GlobalRef, PiNode, PhiNode, # object model functions fieldtype, getfield, setfield!, nfields, throw, tuple, ===, isdefined, eval, # sizeof # not exported, to avoid conflicting with Base.sizeof @@ -344,6 +354,8 @@ eval(Core, :(LineNumberNode(l::Int, @nospecialize(f)) = $(Expr(:new, :LineNumber eval(Core, :(GlobalRef(m::Module, s::Symbol) = $(Expr(:new, :GlobalRef, :m, :s)))) eval(Core, :(SlotNumber(n::Int) = $(Expr(:new, :SlotNumber, :n)))) eval(Core, :(TypedSlot(n::Int, @nospecialize(t)) = $(Expr(:new, :TypedSlot, :n, :t)))) +eval(Core, :(PhiNode(edges::Array{Any, 1}, values::Array{Any, 1}) = $(Expr(:new, :PhiNode, :edges, :values)))) +eval(Core, :(PiNode(val, typ) = $(Expr(:new, :PiNode, :val, :typ)))) Module(name::Symbol=:anonymous, std_imports::Bool=true) = ccall(:jl_f_new_module, Ref{Module}, (Any, Bool), name, std_imports) @@ -430,8 +442,8 @@ atdoc!(λ) = global atdoc = λ abstract type IO end struct CoreSTDOUT <: IO end struct CoreSTDERR <: IO end -const STDOUT = CoreSTDOUT() -const STDERR = CoreSTDERR() +const stdout = CoreSTDOUT() +const stderr = CoreSTDERR() io_pointer(::CoreSTDOUT) = Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout, Ptr{Cvoid}), 1, 1) io_pointer(::CoreSTDERR) = Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stderr, Ptr{Cvoid}), 1, 1) @@ -455,9 +467,9 @@ print(io::IO, @nospecialize(x), @nospecialize a...) = (print(io, x); print(io, a println(io::IO) = (write(io, 0x0a); nothing) # 0x0a = '\n' println(io::IO, @nospecialize x...) = (print(io, x...); println(io)) -show(@nospecialize a) = show(STDOUT, a) -print(@nospecialize a...) = print(STDOUT, a...) -println(@nospecialize a...) = println(STDOUT, a...) +show(@nospecialize a) = show(stdout, a) +print(@nospecialize a...) = print(stdout, a...) +println(@nospecialize a...) = println(stdout, a...) struct GeneratedFunctionStub gen diff --git a/base/broadcast.jl b/base/broadcast.jl index 7f00b655303277..f3210fca4ae8d1 100644 --- a/base/broadcast.jl +++ b/base/broadcast.jl @@ -5,7 +5,7 @@ module Broadcast using .Base.Cartesian using .Base: Indices, OneTo, linearindices, tail, to_shape, _msk_end, unsafe_bitgetindex, bitcache_chunks, bitcache_size, dumpbitcache, - isoperator, promote_typejoin + isoperator, promote_typejoin, unalias import .Base: broadcast, broadcast! export BroadcastStyle, broadcast_indices, broadcast_similar, broadcast_getindex, broadcast_setindex!, dotview, @__dot__ @@ -472,13 +472,23 @@ end return dest end +# For broadcasted assignments like `broadcast!(f, A, ..., A, ...)`, where `A` +# appears on both the LHS and the RHS of the `.=`, then we know we're only +# going to make one pass through the array, and even though `A` is aliasing +# against itself, the mutations won't affect the result as the indices on the +# LHS and RHS will always match. This is not true in general, but with the `.op=` +# syntax it's fairly common for an argument to be `===` a source. +broadcast_unalias(dest, src) = dest === src ? src : unalias(dest, src) + # This indirection allows size-dependent implementations. @inline function _broadcast!(f, C, A, Bs::Vararg{Any,N}) where N shape = broadcast_indices(C) @boundscheck check_broadcast_indices(shape, A, Bs...) - keeps, Idefaults = map_newindexer(shape, A, Bs) + A′ = broadcast_unalias(C, A) + Bs′ = map(B->broadcast_unalias(C, B), Bs) + keeps, Idefaults = map_newindexer(shape, A′, Bs′) iter = CartesianIndices(shape) - _broadcast!(f, C, keeps, Idefaults, A, Bs, Val(N), iter) + _broadcast!(f, C, keeps, Idefaults, A′, Bs′, Val(N), iter) return C end @@ -690,7 +700,7 @@ would be the broadcast `inds`). The shape of the output is equal to the shape of element of `indsb`. # Examples -```jldoctest +```jldoctest bc_getindex julia> A = [11 12; 21 22] 2×2 Array{Int64,2}: 11 12 @@ -715,11 +725,11 @@ julia> broadcast_getindex(A, 1:2, 2:-1:1) 2-element Array{Int64,1}: 12 21 - ``` +``` Because the indices are all vectors, these calls are like `[A[i[k], j[k]] for k = 1:2]` where `i` and `j` are the two index vectors. -```jldoctest +```jldoctest bc_getindex julia> broadcast_getindex(A, 1:2, (1:2)') 2×2 Array{Int64,2}: 11 12 diff --git a/base/char.jl b/base/char.jl index be185b4c55581b..4d994d690a726f 100644 --- a/base/char.jl +++ b/base/char.jl @@ -165,7 +165,7 @@ function show(io::IO, ::MIME"text/plain", c::Char) else u = UInt32(c) end - h = hex(u, u ≤ 0xffff ? 4 : 6) + h = string(u, base = 16, pad = u ≤ 0xffff ? 4 : 6) print(io, (isascii(c) ? "ASCII/" : ""), "Unicode U+", h) else print(io, ": Malformed UTF-8") diff --git a/base/checked.jl b/base/checked.jl index 61284a8620e544..794ce295e0c606 100644 --- a/base/checked.jl +++ b/base/checked.jl @@ -13,7 +13,7 @@ import Core.Intrinsics: checked_srem_int, checked_uadd_int, checked_usub_int, checked_umul_int, checked_udiv_int, checked_urem_int -import Base: no_op_err, @_inline_meta, @_noinline_meta +import ..no_op_err, ..@_inline_meta, ..@_noinline_meta # define promotion behavior for checked operations checked_add(x::Integer, y::Integer) = checked_add(promote(x,y)...) diff --git a/base/client.jl b/base/client.jl index e663d61b443327..ca76fed2ed24bf 100644 --- a/base/client.jl +++ b/base/client.jl @@ -165,7 +165,7 @@ function display_error(io::IO, er, bt) showerror(IOContext(io, :limit => true), er, bt) println(io) end -display_error(er, bt) = display_error(STDERR, er, bt) +display_error(er, bt) = display_error(stderr, er, bt) display_error(er) = display_error(er, []) function eval_user_input(@nospecialize(ast), show_value::Bool) @@ -189,7 +189,7 @@ function eval_user_input(@nospecialize(ast), show_value::Bool) try invokelatest(display, value) catch err - println(STDERR, "Evaluation succeeded, but an error occurred while showing value of type ", typeof(value), ":") + println(stderr, "Evaluation succeeded, but an error occurred while showing value of type ", typeof(value), ":") rethrow(err) end println() @@ -198,17 +198,17 @@ function eval_user_input(@nospecialize(ast), show_value::Bool) break catch err if errcount > 0 - println(STDERR, "SYSTEM: show(lasterr) caused an error") + println(stderr, "SYSTEM: show(lasterr) caused an error") end errcount, lasterr = errcount+1, err if errcount > 2 - println(STDERR, "WARNING: it is likely that something important is broken, and Julia will not be able to continue normally") + println(stderr, "WARNING: it is likely that something important is broken, and Julia will not be able to continue normally") break end bt = catch_backtrace() end end - isa(STDIN, TTY) && println() + isa(stdin, TTY) && println() nothing end @@ -295,13 +295,8 @@ function exec_options(opts) invokelatest(Main.Distributed.process_opts, opts) end - # load ~/.juliarc file - startup && load_juliarc() - - if repl || is_interactive - # load interactive-only libraries - eval(Main, :(using InteractiveUtils)) - end + # load ~/.julia/config/startup.jl file + startup && load_julia_startup() # process cmds list for (cmd, arg) in cmds @@ -333,7 +328,7 @@ function exec_options(opts) end repl |= is_interactive if repl - interactiveinput = isa(STDIN, TTY) + interactiveinput = isa(stdin, TTY) if interactiveinput global is_interactive = true banner = (opts.banner != 0) # --banner!=no @@ -345,16 +340,16 @@ function exec_options(opts) nothing end -function load_juliarc() - # If the user built us with a specific Base.SYSCONFDIR, check that location first for a juliarc.jl file +function load_julia_startup() + # If the user built us with a specific Base.SYSCONFDIR, check that location first for a startup.jl file # If it is not found, then continue on to the relative path based on Sys.BINDIR - if !isempty(Base.SYSCONFDIR) && isfile(joinpath(Sys.BINDIR, Base.SYSCONFDIR, "julia", "juliarc.jl")) - include(Main, abspath(Sys.BINDIR, Base.SYSCONFDIR, "julia", "juliarc.jl")) + if !isempty(Base.SYSCONFDIR) && isfile(joinpath(Sys.BINDIR, Base.SYSCONFDIR, "julia", "startup.jl")) + include(Main, abspath(Sys.BINDIR, Base.SYSCONFDIR, "julia", "startup.jl")) else - include_ifexists(Main, abspath(Sys.BINDIR, "..", "etc", "julia", "juliarc.jl")) + include_ifexists(Main, abspath(Sys.BINDIR, "..", "etc", "julia", "startup.jl")) end - include_ifexists(Main, abspath(homedir(), ".juliarc.jl")) - nothing + include_ifexists(Main, abspath(homedir(), ".julia", "config", "startup.jl")) + return nothing end const repl_hooks = [] @@ -364,8 +359,8 @@ const repl_hooks = [] Register a one-argument function to be called before the REPL interface is initialized in interactive sessions; this is useful to customize the interface. The argument of `f` is the -REPL object. This function should be called from within the `.juliarc.jl` initialization -file. +REPL object. This function should be called from within the `.julia/config/startup.jl` +initialization file. """ atreplinit(f::Function) = (pushfirst!(repl_hooks, f); nothing) @@ -374,8 +369,8 @@ function __atreplinit(repl) try f(repl) catch err - showerror(STDERR, err) - println(STDERR) + showerror(stderr, err) + println(stderr) end end end @@ -387,10 +382,22 @@ const REPL_MODULE_REF = Ref{Module}() # run the requested sort of evaluation loop on stdio function run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool) global active_repl + # load interactive-only libraries + if !isdefined(Main, :InteractiveUtils) + try + let InteractiveUtils = require(PkgId(UUID(0xb77e0a4c_d291_57a0_90e8_8db25a27a240), "InteractiveUtils")) + eval(Main, :(const InteractiveUtils = $InteractiveUtils)) + eval(Main, :(using .InteractiveUtils)) + end + catch ex + @warn "Failed to insert InteractiveUtils into module Main" exception=(ex, catch_backtrace()) + end + end + if interactive && isassigned(REPL_MODULE_REF) invokelatest(REPL_MODULE_REF[]) do REPL term_env = get(ENV, "TERM", @static Sys.iswindows() ? "" : "dumb") - term = REPL.Terminals.TTYTerminal(term_env, STDIN, STDOUT, STDERR) + term = REPL.Terminals.TTYTerminal(term_env, stdin, stdout, stderr) color_set || (global have_color = REPL.Terminals.hascolor(term)) banner && REPL.banner(term, term) if term.term_type == "dumb" @@ -400,7 +407,7 @@ function run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_fil active_repl = REPL.LineEditREPL(term, have_color, true) active_repl.history_file = history_file end - # Make sure any displays pushed in .juliarc.jl ends up above the + # Make sure any displays pushed in .julia/config/startup.jl ends up above the # REPLDisplay pushdisplay(REPL.REPLDisplay(active_repl)) _atreplinit(active_repl) @@ -412,7 +419,7 @@ function run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_fil @warn "REPL provider not available: using basic fallback" end banner && Base.banner() - let input = STDIN + let input = stdin if isa(input, File) || isa(input, IOStream) # for files, we can slurp in the whole thing at once ex = parse_input_line(read(input, String)) @@ -430,7 +437,7 @@ function run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_fil while isopen(input) || !eof(input) if interactive print("julia> ") - flush(STDOUT) + flush(stdout) end eval_user_input(parse_input_line(input), true) end diff --git a/base/clipboard.jl b/base/clipboard.jl index 42c753376baaf6..7aa6d71ef9ef66 100644 --- a/base/clipboard.jl +++ b/base/clipboard.jl @@ -4,7 +4,7 @@ if Sys.isapple() function clipboard(x) - open(pipeline(`pbcopy`, stderr=STDERR), "w") do io + open(pipeline(`pbcopy`, stderr=stderr), "w") do io print(io, x) end end @@ -28,7 +28,7 @@ elseif Sys.islinux() || Sys.KERNEL === :FreeBSD global _clipboardcmd _clipboardcmd !== nothing && return _clipboardcmd for cmd in (:xclip, :xsel) - success(pipeline(`which $cmd`, DevNull)) && return _clipboardcmd = cmd + success(pipeline(`which $cmd`, devnull)) && return _clipboardcmd = cmd end pkgs = @static if Sys.islinux() "xsel or xclip" @@ -43,7 +43,7 @@ elseif Sys.islinux() || Sys.KERNEL === :FreeBSD if cmd === nothing error("unexpected clipboard command: $c") end - open(pipeline(cmd, stderr=STDERR), "w") do io + open(pipeline(cmd, stderr=stderr), "w") do io print(io, x) end end @@ -53,7 +53,7 @@ elseif Sys.islinux() || Sys.KERNEL === :FreeBSD if cmd === nothing error("unexpected clipboard command: $c") end - read(pipeline(cmd, stderr=STDERR), String) + read(pipeline(cmd, stderr=stderr), String) end elseif Sys.iswindows() diff --git a/base/compiler/abstractinterpretation.jl b/base/compiler/abstractinterpretation.jl index e1e314be283c4a..3ab895fd79c823 100644 --- a/base/compiler/abstractinterpretation.jl +++ b/base/compiler/abstractinterpretation.jl @@ -386,7 +386,7 @@ function abstract_apply(@nospecialize(aft), fargs::Vector{Any}, aargtypes::Vecto end res = Union{} nargs = length(fargs) - assert(nargs == length(aargtypes)) + @assert nargs == length(aargtypes) splitunions = 1 < countunionsplit(aargtypes) <= sv.params.MAX_APPLY_UNION_ENUM ctypes = Any[Any[aft]] for i = 1:nargs diff --git a/base/compiler/bootstrap.jl b/base/compiler/bootstrap.jl index 04796b39c58cf7..66e2ea8c2ade86 100644 --- a/base/compiler/bootstrap.jl +++ b/base/compiler/bootstrap.jl @@ -15,7 +15,7 @@ let fs = Any[typeinf_ext, typeinf, typeinf_edge, pure_eval_call], x = T_IFUNC[i] push!(fs, x[3]) else - println(STDERR, "WARNING: tfunc missing for ", reinterpret(IntrinsicFunction, Int32(i))) + println(stderr, "WARNING: tfunc missing for ", reinterpret(IntrinsicFunction, Int32(i))) end end for f in fs @@ -31,5 +31,3 @@ let fs = Any[typeinf_ext, typeinf, typeinf_edge, pure_eval_call], end end end - -ccall(:jl_set_typeinf_func, Cvoid, (Any,), typeinf_ext) diff --git a/base/compiler/compiler.jl b/base/compiler/compiler.jl index d45181a2be186b..6ed61657292b09 100644 --- a/base/compiler/compiler.jl +++ b/base/compiler/compiler.jl @@ -4,7 +4,7 @@ getfield(getfield(Main, :Core), :eval)(getfield(Main, :Core), :(baremodule Compi using Core.Intrinsics, Core.IR -import Core: print, println, show, write, unsafe_write, STDOUT, STDERR, +import Core: print, println, show, write, unsafe_write, stdout, stderr, _apply, svec, apply_type, Builtin, IntrinsicFunction, MethodInstance const getproperty = getfield @@ -45,8 +45,19 @@ include("number.jl") include("int.jl") include("operators.jl") include("pointer.jl") +include("refvalue.jl") + +# checked arithmetic const checked_add = + const checked_sub = - +const SignedInt = Union{Int8,Int16,Int32,Int64,Int128} +const UnsignedInt = Union{UInt8,UInt16,UInt32,UInt64,UInt128} +sub_with_overflow(x::T, y::T) where {T<:SignedInt} = checked_ssub_int(x, y) +sub_with_overflow(x::T, y::T) where {T<:UnsignedInt} = checked_usub_int(x, y) +sub_with_overflow(x::Bool, y::Bool) = (x-y, false) +add_with_overflow(x::T, y::T) where {T<:SignedInt} = checked_sadd_int(x, y) +add_with_overflow(x::T, y::T) where {T<:UnsignedInt} = checked_uadd_int(x, y) +add_with_overflow(x::Bool, y::Bool) = (x+y, false) # core array operations include("indices.jl") @@ -63,12 +74,29 @@ include("reduce.jl") include("bitarray.jl") include("bitset.jl") include("abstractdict.jl") +include("abstractset.jl") include("iterators.jl") +using .Iterators: zip, enumerate +using .Iterators: Flatten, product # for generators include("namedtuple.jl") # core docsystem include("docs/core.jl") +# SubArray +include("subarray.jl") +macro views(x); esc(x); end + +# sorting +function sort end +function sort! end +function issorted end +function sortperm end +include("ordering.jl") +using .Order +include("sort.jl") +using .Sort + ############ # compiler # ############ @@ -93,6 +121,7 @@ include("compiler/typeinfer.jl") include("compiler/optimize.jl") # TODO: break this up further + extract utilities include("compiler/bootstrap.jl") +ccall(:jl_set_typeinf_func, Cvoid, (Any,), typeinf_ext) end # baremodule Compiler )) diff --git a/base/compiler/optimize.jl b/base/compiler/optimize.jl index fda39b098f6bdf..baaf46cb146d1e 100644 --- a/base/compiler/optimize.jl +++ b/base/compiler/optimize.jl @@ -1,5 +1,7 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license +include("compiler/ssair/driver.jl") + ##################### # OptimizationState # ##################### @@ -21,10 +23,11 @@ mutable struct OptimizationState s_edges = [] frame.stmt_edges[1] = s_edges end - next_label = label_counter(frame.src.code) + 1 + src = frame.src + next_label = max(label_counter(src.code), length(src.code)) + 10 return new(frame.linfo, frame.vararg_type_container, s_edges::Vector{Any}, - frame.src, frame.mod, frame.nargs, + src, frame.mod, frame.nargs, next_label, frame.min_valid, frame.max_valid, frame.params) end @@ -51,7 +54,7 @@ mutable struct OptimizationState inmodule = linfo.def::Module nargs = 0 end - next_label = label_counter(src.code) + 1 + next_label = max(label_counter(src.code), length(src.code)) + 10 vararg_type_container = nothing # if you want something more accurate, set it yourself :P return new(linfo, vararg_type_container, s_edges::Vector{Any}, @@ -260,6 +263,8 @@ function isinlineable(m::Method, src::CodeInfo, mod::Module, params::Params, bon return inlineable end +const enable_new_optimizer = RefValue(false) + # converge the optimization work function optimize(me::InferenceState) # annotate fulltree with type information @@ -267,6 +272,7 @@ function optimize(me::InferenceState) # run optimization passes on fulltree force_noinline = true + def = me.linfo.def if me.limited && me.cached && me.parent !== nothing # a top parent will be cached still, but not this intermediate work me.cached = false @@ -280,27 +286,49 @@ function optimize(me::InferenceState) # optimizing and use unoptimized IR in codegen. gotoifnot_elim_pass!(opt) inlining_pass!(opt, opt.src.propagate_inbounds) - # Clean up after inlining - gotoifnot_elim_pass!(opt) - basic_dce_pass!(opt) - void_use_elim_pass!(opt) - copy_duplicated_expr_pass!(opt) - split_undef_flag_pass!(opt) - fold_constant_getfield_pass!(opt) - # Compute escape information - # and elide unnecessary allocations - alloc_elim_pass!(opt) - # Clean up for `alloc_elim_pass!` - gotoifnot_elim_pass!(opt) - basic_dce_pass!(opt) - void_use_elim_pass!(opt) + any_enter = any_phi = false + if enable_new_optimizer[] + any_enter = any(x->isa(x, Expr) && x.head == :enter, opt.src.code) + any_phi = any(x->isa(x, PhiNode) || (isa(x, Expr) && x.head == :(=) && isa(x.args[2], PhiNode)), opt.src.code) + end + if enable_new_optimizer[] && !any_enter && isa(def, Method) + reindex_labels!(opt) + nargs = Int(opt.nargs) - 1 + if def isa Method + topline = LineInfoNode(opt.mod, def.name, def.file, def.line, 0) + else + topline = LineInfoNode(opt.mod, NullLineInfo.name, NullLineInfo.file, 0, 0) + end + linetable = [topline] + ir = run_passes(opt.src, nargs, linetable) + replace_code!(opt.src, ir, nargs, linetable) + push!(opt.src.code, LabelNode(length(opt.src.code) + 1)) + any_phi = true + elseif !any_phi + # Clean up after inlining + gotoifnot_elim_pass!(opt) + basic_dce_pass!(opt) + void_use_elim_pass!(opt) + if !enable_new_optimizer[] + copy_duplicated_expr_pass!(opt) + split_undef_flag_pass!(opt) + fold_constant_getfield_pass!(opt) + # Compute escape information + # and elide unnecessary allocations + alloc_elim_pass!(opt) + # Clean up for `alloc_elim_pass!` + gotoifnot_elim_pass!(opt) + basic_dce_pass!(opt) + void_use_elim_pass!(opt) + end + end # Pop metadata before label reindexing let code = opt.src.code::Array{Any,1} meta_elim_pass!(code, coverage_enabled()) filter!(x -> x !== nothing, code) force_noinline = peekmeta(code, :noinline)[1] + reindex_labels!(opt) end - reindex_labels!(opt) me.min_valid = opt.min_valid me.max_valid = opt.max_valid end @@ -368,7 +396,6 @@ function optimize(me::InferenceState) force_noinline = true end end - def = me.linfo.def if force_noinline me.src.inlineable = false elseif !me.src.inlineable && isa(def, Method) @@ -575,6 +602,7 @@ function type_annotate!(sv::InferenceState) undefs = fill(false, nslots) body = src.code::Array{Any,1} nexpr = length(body) + push!(body, LabelNode(nexpr + 1)) # add a terminal label for tracking phi i = 1 while i <= nexpr st_i = states[i] @@ -649,6 +677,8 @@ function _widen_all_consts!(e::Expr, untypedload::Vector{Bool}, slottypes::Vecto end e.args[i] = x end + elseif isa(x, PiNode) + e.args[i] = PiNode(x.val, widenconst(x.typ)) elseif isa(x, SlotNumber) && (i != 1 || e.head !== :(=)) untypedload[x.id] = true end @@ -722,6 +752,18 @@ function substitute!( if isa(e, NewvarNode) return NewvarNode(substitute!(e.slot, na, argexprs, spsig, spvals, offset, boundscheck)) end + if isa(e, PhiNode) + values = Vector{Any}(uninitialized, length(e.values)) + for i = 1:length(values) + isassigned(e.values, i) || continue + values[i] = substitute!(e.values[i], na, argexprs, spsig, + spvals, offset, boundscheck) + end + return PhiNode(e.edges, values) + end + if isa(e, PiNode) + return PiNode(substitute!(e.val, na, argexprs, spsig, spvals, offset, boundscheck), e.typ) + end if isa(e, Expr) e = e::Expr head = e.head @@ -797,7 +839,7 @@ function is_pure_builtin(@nospecialize(f)) end end -function statement_effect_free(@nospecialize(e), src::CodeInfo, mod::Module) +function statement_effect_free(@nospecialize(e), src, mod::Module) if isa(e, Expr) if e.head === :(=) return !isa(e.args[1], GlobalRef) && effect_free(e.args[2], src, mod, false) @@ -813,7 +855,7 @@ end # detect some important side-effect-free calls (allow_volatile=true) # and some affect-free calls (allow_volatile=false) -- affect_free means the call # cannot be affected by previous calls, except assignment nodes -function effect_free(@nospecialize(e), src::CodeInfo, mod::Module, allow_volatile::Bool) +function effect_free(@nospecialize(e), src, mod::Module, allow_volatile::Bool) if isa(e, GlobalRef) return (isdefined(e.mod, e.name) && (allow_volatile || isconst(e.mod, e.name))) elseif isa(e, Symbol) @@ -1422,16 +1464,20 @@ function inlineable(@nospecialize(f), @nospecialize(ft), e::Expr, atypes::Vector # make labels / goto statements unique # relocate inlining information - newlabels = zeros(Int, label_counter(body.args)) - for i = 1:length(body.args) + body_len = length(body.args) + newlabels = zeros(Int, body_len + 1) + for i = 1:body_len a = body.args[i] if isa(a, LabelNode) + @assert a.label == i newlabel = genlabel(sv) newlabels[a.label] = newlabel.label body.args[i] = newlabel end end - for i = 1:length(body.args) + local end_label # if it ends in a goto, we might need to add a come-from label + npops = 0 # we don't require them to balance, so find out how many need to be added + for i = 1:body_len a = body.args[i] if isa(a, GotoNode) body.args[i] = GotoNode(newlabels[a.label]) @@ -1440,6 +1486,40 @@ function inlineable(@nospecialize(f), @nospecialize(ft), e::Expr, atypes::Vector a.args[1] = newlabels[a.args[1]::Int] elseif a.head === :gotoifnot a.args[2] = newlabels[a.args[2]::Int] + elseif a.head === :(=) && isa(a.args[2], PhiNode) + edges = a.args[2].edges + if !@isdefined end_label + for edge in edges + if edge == body_len + end_label = genlabel(sv) + newlabels[body_len + 1] = end_label.label + break + end + end + end + edges = Any[newlabels[edge::Int + 1] - 1 for edge in edges] + a.args[2] = PhiNode(edges, a.args[2].values) + elseif a.head === :meta && length(a.args) > 0 + a1 = a.args[1] + if a1 === :push_loc + npops += 1 + elseif a1 === :pop_loc + if length(a.args) > 1 + npops_loc = a.args[2]::Int + if npops_loc > npops # corrupt IR - try to normalize it to limit the impact + a.args[2] = npops + npops = 0 + else + npops -= npops_loc + end + else + if npops == 0 # corrupt IR - try to normalize it to limit the impact + body.args[i] = nothing + else + npops -= 1 + end + end + end end end end @@ -1449,7 +1529,14 @@ function inlineable(@nospecialize(f), @nospecialize(ft), e::Expr, atypes::Vector local retval multiret = false lastexpr = pop!(body.args) - if isa(lastexpr, LabelNode) + if @isdefined end_label + # clearly lastexpr must have been a come-from node (specifically, goto), + # so just need to push an empty basic-block here for the label numbering + # (later, we'll also push retstmt as the next statement) + push!(body.args, lastexpr) + push!(body.args, end_label) + lastexpr = nothing + elseif isa(lastexpr, LabelNode) push!(body.args, lastexpr) error_call = Expr(:call, GlobalRef(topmod, :error), "fatal error in type inference (lowering)") error_call.typ = Union{} @@ -1512,27 +1599,23 @@ function inlineable(@nospecialize(f), @nospecialize(ft), e::Expr, atypes::Vector isa(linenode.file, Symbol) && (file = linenode.file) end end - if do_coverage + npops += 1 + if do_coverage || !isempty(stmts) + pop_loc = (npops == 1) ? Expr(:meta, :pop_loc) : Expr(:meta, :pop_loc, npops) # Check if we are switching module, which is necessary to catch user # code inlined into `Base` with `--code-coverage=user`. - # Assume we are inlining directly into `enclosing` instead of another - # function inlined in it mod = method.module - if mod === sv.mod + if !do_coverage || mod === sv.mod pushfirst!(stmts, Expr(:meta, :push_loc, file, method.name, line)) else pushfirst!(stmts, Expr(:meta, :push_loc, file, method.name, line, mod)) end - push!(stmts, Expr(:meta, :pop_loc)) - elseif !isempty(stmts) - pushfirst!(stmts, Expr(:meta, :push_loc, file, - method.name, line)) - if isa(stmts[end], LineNumberNode) - stmts[end] = Expr(:meta, :pop_loc) + if !do_coverage && !isempty(stmts) && isa(stmts[end], LineNumberNode) + stmts[end] = pop_loc else - push!(stmts, Expr(:meta, :pop_loc)) + push!(stmts, pop_loc) end end @@ -1681,6 +1764,15 @@ function ssavalue_increment(body::Expr, incr) end return body end +ssavalue_increment(body::PiNode, incr) = PiNode(ssavalue_increment(body.val, incr), body.typ) +function ssavalue_increment(body::PhiNode, incr) + values = Vector{Any}(uninitialized, length(body.values)) + for i = 1:length(values) + isassigned(body.values, i) || continue + values[i] = ssavalue_increment(body.values[i], incr) + end + return PhiNode(body.edges, values) +end function mk_getfield(texpr, i, T) e = Expr(:call, TOP_GETFIELD, texpr, i) @@ -1967,7 +2059,7 @@ function add_slot!(src::CodeInfo, @nospecialize(typ), is_sa::Bool, name::Symbol= return SlotNumber(id) end -function is_known_call(e::Expr, @nospecialize(func), src::CodeInfo, mod::Module) +function is_known_call(e::Expr, @nospecialize(func), src, mod::Module) if e.head !== :call return false end @@ -1975,7 +2067,7 @@ function is_known_call(e::Expr, @nospecialize(func), src::CodeInfo, mod::Module) return isa(f, Const) && f.val === func end -function is_known_call_p(e::Expr, @nospecialize(pred), src::CodeInfo, mod::Module) +function is_known_call_p(e::Expr, @nospecialize(pred), src, mod::Module) if e.head !== :call return false end @@ -3733,7 +3825,7 @@ macro check_ast(ctx, ex) println("Code:") println(ctx.sv.src) println("Value Info Map:") - show_info(STDOUT, ctx.infomap, ctx) + show_info(stdout, ctx.infomap, ctx) ccall(:abort, Union{}, ()) end end @@ -4102,8 +4194,7 @@ function copy_duplicated_expr_pass!(sv::OptimizationState) end # fix label numbers to always equal the statement index of the label -function reindex_labels!(sv::OptimizationState) - body = sv.src.code +function reindex_labels!(body::Vector{Any}) mapping = get_label_map(body) for i = 1:length(body) el = body[i] @@ -4126,9 +4217,26 @@ function reindex_labels!(sv::OptimizationState) labelnum = mapping[el.args[1]::Int] @assert labelnum !== 0 el.args[1] = labelnum + elseif el.head === :(=) + if isa(el.args[2], PhiNode) + edges = Any[mapping[edge::Int + 1] - 1 for edge in el.args[2].edges] + el.args[2] = PhiNode(convert(Vector{Any}, edges), el.args[2].values) + end end end end + if body[end] isa LabelNode + # we usually have a trailing label for the purposes of phi numbering + # this can now be deleted also if unused + if label_counter(body, false) < length(body) + pop!(body) + end + end +end + + +function reindex_labels!(sv::OptimizationState) + reindex_labels!(sv.src.code) end function return_type(@nospecialize(f), @nospecialize(t)) diff --git a/base/compiler/ssair/domtree.jl b/base/compiler/ssair/domtree.jl new file mode 100644 index 00000000000000..25a56019a8e803 --- /dev/null +++ b/base/compiler/ssair/domtree.jl @@ -0,0 +1,97 @@ +struct DomTreeNode + level::Int + children::Vector{Int} +end +DomTreeNode() = DomTreeNode(1, Vector{Int}()) + +struct DomTree + idoms::Vector{Int} + nodes::Vector{DomTreeNode} +end + +""" + Checks if bb1 dominates bb2 +""" +function dominates(domtree, bb1, bb2) + bb1 == bb2 && return true + target_level = domtree.nodes[bb1].level + source_level = domtree.nodes[bb2].level + source_level < target_level && return false + for _ in (source_level-1):-1:target_level + bb2 = domtree.idoms[bb2] + end + return bb1 == bb2 +end + +function update_level!(domtree, node, level) + domtree[node] = DomTreeNode(level, domtree[node].children) + foreach(domtree[node].children) do child + update_level!(domtree, child, level+1) + end +end + +struct DominatedBlocks + domtree::DomTree + worklist::Vector{Int} +end + +function dominated(domtree::DomTree, root::Int) + doms = DominatedBlocks(domtree, Vector{Int}()) + push!(doms.worklist, root) + doms +end + +function start(doms::DominatedBlocks) + nothing +end + +function next(doms::DominatedBlocks, state::Nothing) + bb = pop!(doms.worklist) + for dominated in doms.domtree.nodes[bb].children + push!(doms.worklist, dominated) + end + (bb, nothing) +end + +function done(doms::DominatedBlocks, state::Nothing) + isempty(doms.worklist) +end + +# Construct Dom Tree +# Simple algorithm - TODO: Switch to the fast version (e.g. https://tanujkhattar.wordpress.com/2016/01/11/dominator-tree-of-a-directed-graph/) +function construct_domtree(cfg) + dominators = IdSet{Int}[n == 1 ? IdSet{Int}(n) : IdSet{Int}(1:length(cfg.blocks)) for n = 1:length(cfg.blocks)] + changed = true + while changed + changed = false + for n = 2:length(cfg.blocks) + isempty(cfg.blocks[n].preds) && continue + firstp, rest = Iterators.peel(cfg.blocks[n].preds) + new_doms = copy(dominators[firstp]) + for p in rest + intersect!(new_doms, dominators[p]) + end + push!(new_doms, n) + changed |= (new_doms != dominators[n]) + dominators[n] = new_doms + end + end + # Compute idoms + idoms = fill(0, length(cfg.blocks)) + for i = 2:length(cfg.blocks) + for dom in dominators[i] + i == dom && continue + any(p->p !== i && p !== dom && dom in dominators[p], dominators[i]) && continue + idoms[i] = dom + end + end + # Compute children + domtree = DomTreeNode[DomTreeNode() for _ = 1:length(cfg.blocks)] + for (idx, idom) in Iterators.enumerate(idoms) + (idx == 1 || idom == 0) && continue + push!(domtree[idom].children, idx) + end + # Recursively set level + update_level!(domtree, 1, 1) + DomTree(idoms, domtree) +end \ No newline at end of file diff --git a/base/compiler/ssair/driver.jl b/base/compiler/ssair/driver.jl new file mode 100644 index 00000000000000..503244ddd7d768 --- /dev/null +++ b/base/compiler/ssair/driver.jl @@ -0,0 +1,139 @@ +struct LineInfoNode + mod::Module + method::Symbol + file::Symbol + line::Int + inlined_at::Int +end +const NullLineInfo = LineInfoNode(@__MODULE__, Symbol(""), Symbol(""), 0, 0) + +include("compiler/ssair/ir.jl") +include("compiler/ssair/domtree.jl") +include("compiler/ssair/slot2ssa.jl") +include("compiler/ssair/queries.jl") +include("compiler/ssair/passes.jl") +include("compiler/ssair/verify.jl") +include("compiler/ssair/legacy.jl") + +macro show(s) + # return :(println($(QuoteNode(s)), " = ", $(esc(s)))) +end + +function normalize(@nospecialize(stmt), meta::Vector{Any}, table::Vector{LineInfoNode}, loc::RefValue{Int}) + if isa(stmt, Expr) + if stmt.head == :meta + args = stmt.args + if length(args) > 0 + a1 = args[1] + if a1 === :push_loc + let + current = loc[] + filename = args[2]::Symbol + methodname = NullLineInfo.method + mod = table[current].mod + line = 0 + for i = 3:length(args) + ai = args[i] + if ai isa Symbol + methodname = ai + elseif ai isa Int32 + line = Int(ai) + elseif ai isa Int64 + line = Int(ai) + elseif ai isa Module + mod = ai + end + end + push!(table, LineInfoNode(mod, methodname, filename, line, current)) + loc[] = length(table) + end + elseif a1 === :pop_loc + n = (length(args) > 1) ? args[2]::Int : 1 + for i in 1:n + current = loc[] + current = table[current].inlined_at + current == 0 && break + loc[] = current + end + else + push!(meta, stmt) + end + end + return nothing + elseif stmt.head === :line + return nothing # deprecated - we shouldn't encounter this + elseif stmt.head === :gotoifnot + return GotoIfNot(stmt.args...) + elseif stmt.head === :return + return ReturnNode((length(stmt.args) == 0 ? (nothing,) : stmt.args)...) + elseif stmt.head === :unreachable + return ReturnNode() + end + elseif isa(stmt, LabelNode) + return nothing + elseif isa(stmt, LineNumberNode) + let # need to expand this node so that it is source-location independent + current = loc[] + info = table[current] + methodname = info.method + mod = info.mod + file = stmt.file + file isa Symbol || (file = info.file) + line = stmt.line + push!(table, LineInfoNode(mod, methodname, file, line, info.inlined_at)) + loc[] = length(table) + end + return nothing + end + return stmt +end + +function run_passes(ci::CodeInfo, nargs::Int, linetable::Vector{LineInfoNode}) + mod = linetable[1].mod + ci.code = copy(ci.code) + # Go through and add an unreachable node after every + # Union{} call. Then reindex labels. + idx = 1 + while idx <= length(ci.code) + stmt = ci.code[idx] + if isexpr(stmt, :(=)) + stmt = stmt.args[2] + end + if isa(stmt, Expr) && stmt.typ === Union{} + if !(idx < length(ci.code) && isexpr(ci.code[idx+1], :unreachable)) + insert!(ci.code, idx + 1, ReturnNode()) + idx += 1 + end + end + idx += 1 + end + reindex_labels!(ci.code) + meta = Any[] + lines = fill(0, length(ci.code)) + let loc = RefValue(1) + for i = 1:length(ci.code) + stmt = ci.code[i] + stmt = normalize(stmt, meta, linetable, loc) + ci.code[i] = stmt + if !(stmt === nothing) + lines[i] = loc[] + end + end + end + ci.code = strip_trailing_junk!(ci.code, lines) + cfg = compute_basic_blocks(ci.code) + defuse_insts = scan_slot_def_use(nargs, ci) + domtree = construct_domtree(cfg) + ir = let code = Any[nothing for _ = 1:length(ci.code)] + argtypes = ci.slottypes[1:(nargs+1)] + IRCode(code, lines, cfg, argtypes, mod, meta) + end + ir = construct_ssa!(ci, ir, domtree, defuse_insts, nargs) + domtree = construct_domtree(ir.cfg) + ir = compact!(ir) + verify_ir(ir) + ir = type_lift_pass!(ir) + ir = compact!(ir) + verify_ir(ir) + return ir +end diff --git a/base/compiler/ssair/ir.jl b/base/compiler/ssair/ir.jl new file mode 100644 index 00000000000000..f8b20c0cc6c689 --- /dev/null +++ b/base/compiler/ssair/ir.jl @@ -0,0 +1,583 @@ +Core.PhiNode() = PhiNode(Any[], Any[]) +@inline isexpr(@nospecialize(stmt), head::Symbol) = isa(stmt, Expr) && stmt.head === head + +struct Argument + n::Int +end + +struct GotoIfNot + cond + dest::Int + GotoIfNot(@nospecialize(cond), dest::Int) = new(cond, dest) +end + +struct ReturnNode + val + ReturnNode(@nospecialize(val)) = new(val) + # unassigned val indicates unreachable + ReturnNode() = new() +end + +""" +Like UnitRange{Int}, but can handle the `last` field, being temporarily +< first (this can happen during compacting) +""" +struct StmtRange <: AbstractUnitRange{Int} + first::Int + last::Int +end +first(r::StmtRange) = r.first +last(r::StmtRange) = r.last +start(r::StmtRange) = 0 +done(r::StmtRange, state) = r.last - r.first < state +next(r::StmtRange, state) = (r.first + state, state + 1) + +StmtRange(range::UnitRange{Int}) = StmtRange(first(range), last(range)) + +struct BasicBlock + stmts::StmtRange + preds::Vector{Int} + succs::Vector{Int} +end +function BasicBlock(stmts::StmtRange) + BasicBlock(stmts, Int[], Int[]) +end +function BasicBlock(old_bb, stmts) + BasicBlock(stmts, old_bb.preds, old_bb.succs) +end + +struct CFG + blocks::Vector{BasicBlock} + index::Vector{Int} +end + +function block_for_inst(index, inst) + searchsortedfirst(index, inst, lt=(<=)) +end +block_for_inst(cfg::CFG, inst) = block_for_inst(cfg.index, inst) + +function compute_basic_blocks(stmts::Vector{Any}) + jump_dests = IdSet{Int}(1) + # First go through and compute jump destinations + for (idx, stmt) in pairs(stmts) + # Terminators + if isa(stmt, Union{GotoIfNot, GotoNode, ReturnNode}) + if isa(stmt, GotoIfNot) + push!(jump_dests, idx+1) + push!(jump_dests, stmt.dest) + else + # This is a fake dest to force the next stmt to start a bb + idx < length(stmts) && push!(jump_dests, idx+1) + if isa(stmt, GotoNode) + push!(jump_dests, stmt.label) + end + end + end + end + bb_starts = sort(collect(jump_dests)) + for i = length(stmts):-1:1 + if stmts[i] != nothing + push!(bb_starts, i+1) + break + end + end + # Compute ranges + basic_block_index = Int[] + blocks = BasicBlock[] + sizehint!(blocks, length(bb_starts)-1) + for (first, last) in Iterators.zip(bb_starts, Iterators.drop(bb_starts, 1)) + push!(basic_block_index, first) + push!(blocks, BasicBlock(StmtRange(first, last-1))) + end + popfirst!(basic_block_index) + # Compute successors/predecessors + for (num, b) in pairs(blocks) + terminator = stmts[last(b.stmts)] + # Conditional Branch + if isa(terminator, GotoIfNot) + block′ = block_for_inst(basic_block_index, terminator.dest) + push!(blocks[block′].preds, num) + push!(b.succs, block′) + end + if isa(terminator, GotoNode) + block′ = block_for_inst(basic_block_index, terminator.label) + push!(blocks[block′].preds, num) + push!(b.succs, block′) + elseif !isa(terminator, ReturnNode) + if num + 1 <= length(blocks) + push!(blocks[num+1].preds, num) + push!(b.succs, num+1) + end + end + end + CFG(blocks, basic_block_index) +end + +function first_insert_for_bb(code, cfg, block) + for idx in cfg.blocks[block].stmts + stmt = code[idx] + if !isa(stmt, LabelNode) && !isa(stmt, PhiNode) + return idx + end + end +end + + +const NewNode = Tuple{Int, Any, Any, #=LineNumber=#Int} + +struct IRCode + stmts::Vector{Any} + types::Vector{Any} + lines::Vector{Int} + argtypes::Vector{Any} + cfg::CFG + new_nodes::Vector{NewNode} + mod::Module + meta::Vector{Any} + + function IRCode(stmts::Vector{Any}, lines::Vector{Int}, cfg::CFG, argtypes::Vector{Any}, mod::Module, meta::Vector{Any}) + return new(stmts, Any[], lines, argtypes, cfg, NewNode[], mod, meta) + end + function IRCode(ir::IRCode, stmts::Vector{Any}, types::Vector{Any}, lines::Vector{Int}, cfg::CFG, new_nodes::Vector{NewNode}) + return new(stmts, types, lines, ir.argtypes, cfg, new_nodes, ir.mod, ir.meta) + end +end + +function getindex(x::IRCode, s::SSAValue) + if s.id <= length(x.stmts) + return x.stmts[s.id] + else + return x.new_nodes[s.id - length(x.stmts)][3] + end +end + +struct OldSSAValue + id::Int +end + +struct NewSSAValue + id::Int +end + +mutable struct UseRefIterator + stmt::Any +end +getindex(it::UseRefIterator) = it.stmt + +struct UseRef + urs::UseRefIterator + use::Int +end + +struct OOBToken +end + +struct UndefToken +end + +function getindex(x::UseRef) + stmt = x.urs.stmt + if isa(stmt, Expr) && stmt.head === :(=) + rhs = stmt.args[2] + if isa(rhs, Expr) && is_relevant_expr(rhs) + x.use > length(rhs.args) && return OOBToken() + return rhs.args[x.use] + end + x.use == 1 || return OOBToken() + return rhs + elseif isa(stmt, Expr) && is_relevant_expr(stmt) + x.use > length(stmt.args) && return OOBToken() + return stmt.args[x.use] + elseif isa(stmt, GotoIfNot) + x.use == 1 || return OOBToken() + return stmt.cond + elseif isa(stmt, ReturnNode) || isa(stmt, PiNode) + isdefined(stmt, :val) || return OOBToken() + x.use == 1 || return OOBToken() + return stmt.val + elseif isa(stmt, PhiNode) + x.use > length(stmt.values) && return OOBToken() + isassigned(stmt.values, x.use) || return UndefToken() + return stmt.values[x.use] + else + return OOBToken() + end +end + +function is_relevant_expr(e::Expr) + return e.head in (:call, :invoke, :new, :(=), :(&), + :gc_preserve_begin, :gc_preserve_end, + :foreigncall, :isdefined, :copyast, + :undefcheck, :throw_undef_if_not) +end + +function setindex!(x::UseRef, @nospecialize(v)) + stmt = x.urs.stmt + if isa(stmt, Expr) && stmt.head === :(=) + rhs = stmt.args[2] + if isa(rhs, Expr) && is_relevant_expr(rhs) + x.use > length(rhs.args) && throw(BoundsError()) + rhs.args[x.use] = v + else + x.use == 1 || throw(BoundsError()) + stmt.args[2] = v + end + elseif isa(stmt, Expr) && is_relevant_expr(stmt) + x.use > length(stmt.args) && throw(BoundsError()) + stmt.args[x.use] = v + elseif isa(stmt, GotoIfNot) + x.use == 1 || throw(BoundsError()) + x.urs.stmt = GotoIfNot(v, stmt.dest) + elseif isa(stmt, ReturnNode) + x.use == 1 || throw(BoundsError()) + x.urs.stmt = typeof(stmt)(v) + elseif isa(stmt, PiNode) + x.use == 1 || throw(BoundsError()) + x.urs.stmt = typeof(stmt)(v, stmt.typ) + elseif isa(stmt, PhiNode) + x.use > length(stmt.values) && throw(BoundsError()) + isassigned(stmt.values, x.use) || throw(BoundsError()) + stmt.values[x.use] = v + else + throw(BoundsError()) + end + return x +end + +function userefs(@nospecialize(x)) + if (isa(x, Expr) && is_relevant_expr(x)) || + isa(x, Union{GotoIfNot, ReturnNode, PiNode, PhiNode}) + UseRefIterator(x) + else + () + end +end + +start(it::UseRefIterator) = 1 +function next(it::UseRefIterator, use) + x = UseRef(it, use) + v = x[] + v === UndefToken() && return next(it, use + 1) + x, use + 1 +end +function done(it::UseRefIterator, use) + x, _ = next(it, use) + v = x[] + v === OOBToken() && return true + false +end + +function scan_ssa_use!(used, @nospecialize(stmt)) + if isa(stmt, SSAValue) + push!(used, stmt.id) + end + for useref in userefs(stmt) + val = useref[] + if isa(val, SSAValue) + push!(used, val.id) + end + end +end + +function ssamap(f, @nospecialize(stmt)) + urs = userefs(stmt) + urs === () && return stmt + for op in urs + val = op[] + if isa(val, SSAValue) + op[] = f(val) + end + end + urs[] +end + +function foreachssa(f, @nospecialize(stmt)) + for op in userefs(stmt) + val = op[] + if isa(val, SSAValue) + f(val) + end + end +end + +function insert_node!(ir::IRCode, pos::Int, @nospecialize(typ), @nospecialize(val)) + line = ir.lines[pos] + push!(ir.new_nodes, (pos, typ, val, line)) + return SSAValue(length(ir.stmts) + length(ir.new_nodes)) +end + +# For bootstrapping +function my_sortperm(v) + p = Vector{Int}(uninitialized, length(v)) + for i = 1:length(v) + p[i] = i + end + sort!(p, Sort.DEFAULT_UNSTABLE, Order.Perm(Sort.Forward,v)) + p +end + +mutable struct IncrementalCompact + ir::IRCode + result::Vector{Any} + result_types::Vector{Any} + result_lines::Vector{Int} + ssa_rename::Vector{Any} + used_ssas::Vector{Int} + late_fixup::Vector{Int} + # This could be Stateful, but bootstrapping doesn't like that + perm::Vector{Int} + new_nodes_idx::Int + idx::Int + result_idx::Int + function IncrementalCompact(code::IRCode) + perm = my_sortperm(Int[code.new_nodes[i][1] for i in 1:length(code.new_nodes)]) + new_len = length(code.stmts) + length(code.new_nodes) + result = Array{Any}(uninitialized, new_len) + result_types = Array{Any}(uninitialized, new_len) + result_lines = Array{Int}(uninitialized, new_len) + ssa_rename = Any[SSAValue(i) for i = 1:new_len] + used_ssas = fill(0, new_len) + late_fixup = Vector{Int}() + return new(code, result, result_types, result_lines, ssa_rename, used_ssas, late_fixup, perm, 1, 1, 1) + end +end + +struct TypesView + ir::Union{IRCode, IncrementalCompact} +end +types(ir::Union{IRCode, IncrementalCompact}) = TypesView(ir) + +function getindex(compact::IncrementalCompact, idx) + if idx < compact.result_idx + return compact.result[idx] + else + return compact.ir.stmts[idx] + end +end + +function setindex!(compact::IncrementalCompact, v, idx) + if idx < compact.result_idx + # Kill count for current uses + for ops in userefs(compact.result[idx]) + val = ops[] + isa(val, SSAValue) && (compact.used_ssas[val.id] -= 1) + end + # Add count for new use + isa(v, SSAValue) && (compact.used_ssas[v.id] += 1) + return compact.result[idx] = v + else + return compact.ir.stmts[idx] = v + end +end + +function getindex(view::TypesView, idx) + isa(idx, SSAValue) && (idx = idx.id) + if isa(view.ir, IncrementalCompact) && idx < view.compact.result_idx + return view.compact.result_types[idx] + else + ir = isa(view.ir, IncrementalCompact) ? view.ir.ir : view.ir + if idx <= length(ir.types) + return ir.types[idx] + else + return ir.new_nodes[idx - length(ir.types)][2] + end + end +end + +# maybe use expr_type? +function value_typ(ir::IRCode, value) + isa(value, SSAValue) && return ir.types[value.id] + isa(value, GlobalRef) && return abstract_eval_global(value.mod, value.name) + isa(value, Argument) && return ir.argtypes[value.n] + # TODO: isa QuoteNode, etc. + return typeof(value) +end + +function value_typ(ir::IncrementalCompact, value) + isa(value, SSAValue) && return types(ir)[value.id] + isa(value, GlobalRef) && return abstract_eval_global(value.mod, value.name) + isa(value, Argument) && return ir.ir.argtypes[value.n] + # TODO: isa QuoteNode, etc. + return typeof(value) +end + + +start(compact::IncrementalCompact) = (1,1,1) +function done(compact::IncrementalCompact, (idx, _a, _b)::Tuple{Int, Int, Int}) + return idx > length(compact.ir.stmts) && (compact.new_nodes_idx > length(compact.perm)) +end + +function process_node!(result::Vector{Any}, result_idx::Int, ssa_rename::Vector{Any}, + late_fixup::Vector{Int}, used_ssas::Vector{Int}, @nospecialize(stmt), + idx::Int, processed_idx::Int) + ssa_rename[idx] = SSAValue(result_idx) + if stmt === nothing + ssa_rename[idx] = stmt + elseif isa(stmt, GotoNode) || isa(stmt, GlobalRef) + result[result_idx] = stmt + result_idx += 1 + elseif isa(stmt, Expr) || isa(stmt, PiNode) || isa(stmt, GotoIfNot) || isa(stmt, ReturnNode) + result[result_idx] = renumber_ssa!(stmt, ssa_rename, true, used_ssas) + result_idx += 1 + elseif isa(stmt, PhiNode) + values = Vector{Any}(uninitialized, length(stmt.values)) + for i = 1:length(stmt.values) + isassigned(stmt.values, i) || continue + val = stmt.values[i] + if isa(val, SSAValue) + if val.id > processed_idx + push!(late_fixup, result_idx) + val = OldSSAValue(val.id) + else + val = renumber_ssa!(val, ssa_rename, true, used_ssas) + end + end + values[i] = val + end + result[result_idx] = PhiNode(stmt.edges, values) + result_idx += 1 + elseif isa(stmt, SSAValue) + # identity assign, replace uses of this ssa value with its result + stmt = ssa_rename[stmt.id] + ssa_rename[idx] = stmt + else + # Constant assign, replace uses of this ssa value with its result + ssa_rename[idx] = stmt + end + return result_idx +end +function process_node!(compact::IncrementalCompact, result_idx::Int, @nospecialize(stmt), idx::Int, processed_idx::Int) + return process_node!(compact.result, result_idx, compact.ssa_rename, + compact.late_fixup, compact.used_ssas, stmt, idx, processed_idx) +end + +function next(compact::IncrementalCompact, (idx, active_bb, old_result_idx)::Tuple{Int, Int, Int}) + if length(compact.result) < old_result_idx + resize!(compact.result, old_result_idx) + resize!(compact.result_types, old_result_idx) + resize!(compact.result_lines, old_result_idx) + end + bb = compact.ir.cfg.blocks[active_bb] + if compact.new_nodes_idx <= length(compact.perm) && compact.ir.new_nodes[compact.perm[compact.new_nodes_idx]][1] == idx + new_idx = compact.perm[compact.new_nodes_idx] + compact.new_nodes_idx += 1 + _, typ, new_node, new_line = compact.ir.new_nodes[new_idx] + new_idx += length(compact.ir.stmts) + compact.result_types[old_result_idx] = typ + compact.result_lines[old_result_idx] = new_line + result_idx = process_node!(compact, old_result_idx, new_node, new_idx, idx) + (old_result_idx == result_idx) && return next(compact, (idx, active_bb, result_idx)) + compact.result_idx = result_idx + return (old_result_idx, compact.result[old_result_idx]), (compact.idx, active_bb, compact.result_idx) + end + # This will get overwritten in future iterations if + # result_idx is not, incremented, but that's ok and expected + compact.result_types[old_result_idx] = compact.ir.types[idx] + compact.result_lines[old_result_idx] = compact.ir.lines[idx] + result_idx = process_node!(compact, old_result_idx, compact.ir.stmts[idx], idx, idx) + if idx == last(bb.stmts) + # If this was the last statement in the BB and we decided to skip it, insert a + # dummy `nothing` node, to prevent changing the structure of the CFG + if result_idx == first(bb.stmts) + compact.result[old_result_idx] = nothing + result_idx = old_result_idx + 1 + end + compact.ir.cfg.blocks[active_bb] = BasicBlock(bb, StmtRange(first(bb.stmts), result_idx-1)) + active_bb += 1 + if active_bb <= length(compact.ir.cfg.blocks) + new_bb = compact.ir.cfg.blocks[active_bb] + compact.ir.cfg.blocks[active_bb] = BasicBlock(new_bb, + StmtRange(result_idx, last(new_bb.stmts))) + end + end + (old_result_idx == result_idx) && return next(compact, (idx + 1, active_bb, result_idx)) + compact.idx = idx + 1 + compact.result_idx = result_idx + if !isassigned(compact.result, old_result_idx) + @assert false + end + return (old_result_idx, compact.result[old_result_idx]), (compact.idx, active_bb, compact.result_idx) +end + +function maybe_erase_unused!(extra_worklist, compact, idx) + if stmt_effect_free(compact.result[idx], compact.ir, compact.ir.mod) + for ops in userefs(compact.result[idx]) + val = ops[] + if isa(val, SSAValue) + if compact.used_ssas[val.id] == 1 + if val.id < idx + push!(extra_worklist, val.id) + end + end + compact.used_ssas[val.id] -= 1 + end + end + compact.result[idx] = nothing + end +end + +function finish(compact::IncrementalCompact) + for idx in compact.late_fixup + stmt = compact.result[idx]::PhiNode + values = Vector{Any}(uninitialized, length(stmt.values)) + for i = 1:length(stmt.values) + isassigned(stmt.values, i) || continue + val = stmt.values[i] + if isa(val, OldSSAValue) + val = compact.ssa_rename[val.id] + if isa(val, SSAValue) + compact.used_ssas[val.id] += 1 + end + end + values[i] = val + end + compact.result[idx] = PhiNode(stmt.edges, values) + end + # Record this somewhere? + result_idx = compact.result_idx + resize!(compact.result, result_idx-1) + resize!(compact.result_types, result_idx-1) + resize!(compact.result_lines, result_idx-1) + bb = compact.ir.cfg.blocks[end] + compact.ir.cfg.blocks[end] = BasicBlock(bb, + StmtRange(first(bb.stmts), result_idx-1)) + # Perform simple DCE for unused values + extra_worklist = Int[] + for (idx, nused) in Iterators.enumerate(compact.used_ssas) + idx >= result_idx && break + nused == 0 || continue + maybe_erase_unused!(extra_worklist, compact, idx) + end + while !isempty(extra_worklist) + maybe_erase_unused!(extra_worklist, compact, pop!(extra_worklist)) + end + cfg = CFG(compact.ir.cfg.blocks, Int[first(bb.stmts) for bb in compact.ir.cfg.blocks[2:end]]) + return IRCode(compact.ir, compact.result, compact.result_types, compact.result_lines, cfg, NewNode[]) +end + +function compact!(code::IRCode) + compact = IncrementalCompact(code) + # Just run through the iterator without any processing + state = start(compact) + while !done(compact, state) + _, state = next(compact, state) + end + return finish(compact) +end + +struct BBIdxStmt + ir::IRCode +end + +bbidxstmt(ir) = BBIdxStmt(ir) + +start(x::BBIdxStmt) = (1,1) +done(x::BBIdxStmt, (idx, bb)) = idx > length(x.ir.stmts) +function next(x::BBIdxStmt, (idx, bb)) + active_bb = x.ir.cfg.blocks[bb] + next_bb = bb + if idx == last(active_bb.stmts) + next_bb += 1 + end + return (bb, idx, x.ir.stmts[idx]), (idx + 1, next_bb) +end diff --git a/base/compiler/ssair/legacy.jl b/base/compiler/ssair/legacy.jl new file mode 100644 index 00000000000000..893eb61ab7ae15 --- /dev/null +++ b/base/compiler/ssair/legacy.jl @@ -0,0 +1,211 @@ +function ssaargmap(f, @nospecialize(stmt)) + urs = userefs(stmt) + urs === () && return stmt + for op in urs + val = op[] + if isa(val, Union{SSAValue, Argument}) + op[] = f(val) + end + end + urs[] +end + +function line_to_vector(line::Int, linetable::Vector{LineInfoNode}) + lines = Int[] + while line != 0 + push!(lines, line) + line = linetable[line].inlined_at + end + return lines +end + +function push_new_lineinfo!(new_code::Vector{Any}, topline::Int, line::Int, linetable::Vector{LineInfoNode}) + # separate the info into three sets: pops, line-change, pushes + do_coverage = coverage_enabled() + topmod = linetable[line].mod + toplines = line_to_vector(topline, linetable) + lines = line_to_vector(line, linetable) + while !isempty(lines) && !isempty(toplines) && lines[end] == toplines[end] + # remove common frames, recording changes to topmod + topmod = linetable[pop!(lines)].mod + pop!(toplines) + end + # check whether the outermost frame changed, or just the line number + newframe = true + topfile = NullLineInfo.file + if !isempty(lines) && !isempty(toplines) + let topline = linetable[toplines[end]] + line = linetable[lines[end]] + if topline.inlined_at == 0 || (topline.mod === line.mod && topline.method === line.method) + # we could track frame_id precisely, but llvm / dwarf has no support for that, + # and it wouldn't really be that meaningful after statements moved around, + # so we just do fuzzy matching here in the legacy-format writer + newframe = false + topfile = topline.file + end + end + end + # first pop the old frame(s) + npops = length(toplines) + newframe - 1 + if npops > 0 + push!(new_code, (npops == 1) ? Expr(:meta, :pop_loc) : Expr(:meta, :pop_loc, npops)) + end + # then change the line number + if !newframe + let line = linetable[pop!(lines)] + if line.file === topfile + loc = LineNumberNode(line.line) + else + loc = LineNumberNode(line.line, line.file) + end + push!(new_code, loc) + topmod = line.mod + end + end + # then push the new frames + while !isempty(lines) + let line = linetable[pop!(lines)] + if !do_coverage || line.mod == topmod + loc = Expr(:meta, :push_loc, line.file, line.method, line.line) + else + loc = Expr(:meta, :push_loc, line.file, line.method, line.line, line.mod) + end + push!(new_code, loc) + topmod = line.mod + end + end + nothing +end + +function replace_code!(ci::CodeInfo, code::IRCode, nargs::Int, linetable::Vector{LineInfoNode}) + if !isempty(code.new_nodes) + code = compact!(code) + end + # All but the first `nargs` slots will now be unused + resize!(ci.slottypes, nargs+1) + resize!(ci.slotnames, nargs+1) + resize!(ci.slotflags, nargs+1) + # For every used SSAValues, we register one base format ssa value + used = IdSet{Int}() + foreach(stmt->scan_ssa_use!(used, stmt), code.stmts) + mapping = IdDict{Int, Int}() + n = 0 + resize!(ci.ssavaluetypes, length(used)) + for ssa in sort(Int[x for x in used]) + mapping[ssa] = n + n += 1 + ci.ssavaluetypes[n] = code.types[ssa] + end + # Find all jump targets (we need to insert LabelNodes for them) and + # jump origins (we insert a label node on the statement after, to + # make sure we can track them) + dest_blocks = IdSet{Int}() + jump_origins = IdSet{Int}() + for stmt in code.stmts + if isa(stmt, GotoNode) + push!(dest_blocks, stmt.label) + elseif isa(stmt, GotoIfNot) + push!(dest_blocks, stmt.dest) + elseif isa(stmt, PhiNode) + for edge in stmt.edges + push!(jump_origins, edge) + end + end + end + cfg = code.cfg + block_start = IdDict{Int, Int}(first(cfg.blocks[x].stmts)=>x for x in dest_blocks) + comefrom_labels = IdSet{Int}(last(cfg.blocks[x].stmts)+1 for x in jump_origins) + block_terminators = IdDict{Int, Int}(last(block.stmts)=>i for (i,block) in pairs(cfg.blocks)) + local rename + let mapping = mapping + function rename(@nospecialize(val)) + if isa(val, SSAValue) + if haskey(mapping, val.id) + return SSAValue(mapping[val.id]) + end + elseif isa(val, Argument) + return SlotNumber(val.n) + end + return val + end + end + # Now translate the code + new_code = Vector{Any}() + append!(new_code, code.meta) + label_mapping = IdDict{Int, Int}() + terminator_mapping = IdDict{Int, Int}() + fixup = Int[] + topline = 1 + for (idx, stmt) in pairs(code.stmts) + line = code.lines[idx] + # push labels first + if haskey(block_start, idx) + push!(new_code, LabelNode(length(new_code) + 1)) + label_mapping[block_start[idx]] = length(new_code) + elseif idx in comefrom_labels + push!(new_code, LabelNode(length(new_code) + 1)) + end + # then metadata + if line != 0 && line != topline + push_new_lineinfo!(new_code, topline, line, linetable) + topline = line + end + # record if this'll need a fixup after stmt number + if isa(stmt, GotoIfNot) + new_stmt = Expr(:gotoifnot, rename(stmt.cond), stmt.dest) + push!(fixup, length(new_code)+1) + elseif isa(stmt, ReturnNode) + if isdefined(stmt, :val) + new_stmt = Expr(:return, rename(stmt.val)) + else + # Unreachable, so no issue with this + new_stmt = Expr(:unreachable) + end + elseif isa(stmt, SSAValue) + new_stmt = rename(stmt) + elseif isa(stmt, PhiNode) + new_stmt = ssaargmap(rename, stmt) + push!(fixup, length(new_code)+1) + elseif isa(stmt, GotoNode) + push!(fixup, length(new_code)+1) + new_stmt = stmt + else + new_stmt = ssaargmap(rename, stmt) + end + if haskey(mapping, idx) + new_stmt = Expr(:(=), SSAValue(mapping[idx]), new_stmt) + end + # record fixup targets + if haskey(block_terminators, idx) + terminator_mapping[block_terminators[idx]] = length(new_code)+1 + end + # and finally, record the new new statement + push!(new_code, new_stmt) + end + for i in fixup + val = new_code[i] + isassign = isexpr(val, :(=)) + if isassign + val = val.args[2] + end + if isa(val, PhiNode) + # Translate from BB edges to statement edges + edges = Any[terminator_mapping[edge] for edge in val.edges] + val = PhiNode(convert(Vector{Any}, edges), val.values) + elseif isa(val, GotoNode) + val = GotoNode(label_mapping[val.label]) + elseif isexpr(val, :gotoifnot) + val = Expr(:gotoifnot, val.args[1], label_mapping[val.args[2]]) + else + #@show val + error() + end + if isassign + new_code[i].args[2] = val + else + new_code[i] = val + end + end + ci.code = new_code + return ci +end diff --git a/base/compiler/ssair/passes.jl b/base/compiler/ssair/passes.jl new file mode 100644 index 00000000000000..5e7f81b5b1b855 --- /dev/null +++ b/base/compiler/ssair/passes.jl @@ -0,0 +1,84 @@ +function type_lift_pass!(ir::IRCode) + type_ctx_uses = Vector{Vector{Int}}[] + has_non_type_ctx_uses = IdSet{Int}() + lifted_undef = IdDict{Int, SSAValue}() + for (idx, stmt) in pairs(ir.stmts) + if stmt isa Expr && (stmt.head === :isdefined || stmt.head === :undefcheck) + val = (stmt.head === :isdefined) ? stmt.args[1] : stmt.args[2] + # undef can only show up by being introduced in a phi + # node, so lift all phi nodes that have maybe undef values + processed = IdDict{Int, SSAValue}() + if !isa(val, SSAValue) + if stmt.head === :undefcheck + ir.stmts[idx] = nothing + end + continue + end + worklist = Tuple{Int, SSAValue, Int}[(val.id, SSAValue(0), 0)] + stmt_id = val.id + while isa(ir.stmts[stmt_id], PiNode) + stmt_id = ir.stmts[stmt_id].val.id + end + def = ir.stmts[stmt_id] + if !isa(def, PhiNode) + if stmt.head === :isdefined + ir.stmts[idx] = true + else + ir.stmts[idx] = nothing + end + continue + end + if !haskey(lifted_undef, stmt_id) + first = true + while !isempty(worklist) + item, which, use = pop!(worklist) + def = ir.stmts[item] + edges = copy(def.edges) + values = Vector{Any}(uninitialized, length(edges)) + new_phi = length(values) == 0 ? false : insert_node!(ir, item, Bool, PhiNode(edges, values)) + processed[item] = new_phi + if first + lifted_undef[stmt_id] = new_phi + first = false + end + for i = 1:length(edges) + if !isassigned(def.values, i) + val = false + elseif !isa(def.values[i], SSAValue) + val = true + else + id = def.values[i].id + if !isa(ir.types[id], MaybeUndef) + val = true + else + while isa(ir.stmts[id], PiNode) + id = ir.stmts[id].val.id + end + if isa(ir.stmts[id], PhiNode) + if haskey(processed, id) + val = processed[id] + else + push!(worklist, (id, new_phi, i)) + continue + end + else + val = true + end + end + end + values[i] = val + end + if which !== SSAValue(0) + ir[which].values[use] = new_phi + end + end + end + if stmt.head === :isdefined + ir.stmts[idx] = lifted_undef[stmt_id] + else + ir.stmts[idx] = Expr(:throw_undef_if_not, stmt.args[1], lifted_undef[stmt_id]) + end + end + end + ir +end diff --git a/base/compiler/ssair/queries.jl b/base/compiler/ssair/queries.jl new file mode 100644 index 00000000000000..70a7757f8ad940 --- /dev/null +++ b/base/compiler/ssair/queries.jl @@ -0,0 +1,9 @@ +function stmt_effect_free(@nospecialize(stmt), src::IRCode, mod::Module) + isa(stmt, Union{PiNode, PhiNode}) && return true + isa(stmt, Union{ReturnNode, GotoNode, GotoIfNot}) && return false + return statement_effect_free(stmt, src, mod) +end + +function abstract_eval_ssavalue(s::SSAValue, src::IRCode) + return src.types[s.id] +end diff --git a/base/compiler/ssair/show.jl b/base/compiler/ssair/show.jl new file mode 100644 index 00000000000000..d5ae43473ea438 --- /dev/null +++ b/base/compiler/ssair/show.jl @@ -0,0 +1,139 @@ +function Base.show(io::IO, cfg::CFG) + foreach(pairs(cfg.blocks)) do (idx, block) + println("$idx\t=>\t", join(block.succs, ", ")) + end +end + +print_ssa(io::IO, val) = isa(val, SSAValue) ? print(io, "%$(val.id)") : print(io, val) +function print_node(io::IO, idx, stmt, used, maxsize; color = true, print_typ=true) + if idx in used + pad = " "^(maxsize-length(string(idx))) + print(io, "%$idx $pad= ") + else + print(io, " "^(maxsize+4)) + end + if isa(stmt, PhiNode) + args = map(1:length(stmt.edges)) do i + e = stmt.edges[i] + v = !isassigned(stmt.values, i) ? "#undef" : + sprint() do io′ + print_ssa(io′, stmt.values[i]) + end + "$e => $v" + end + print(io, "φ ", '(', join(args, ", "), ')') + elseif isa(stmt, PiNode) + print(io, "π (") + print_ssa(io, stmt.val) + print(io, ", ") + if color + printstyled(io, stmt.typ, color=:red) + else + print(io, stmt.typ) + end + print(io, ")") + elseif isa(stmt, ReturnNode) + if !isdefined(stmt, :val) + print(io, "unreachable") + else + print(io, "return ") + print_ssa(io, stmt.val) + end + elseif isa(stmt, GotoIfNot) + print(io, "goto ", stmt.dest, " if not ") + print_ssa(io, stmt.cond) + elseif isexpr(stmt, :call) + print_ssa(io, stmt.args[1]) + print(io, "(") + print(io, join(map(arg->sprint(io->print_ssa(io, arg)), stmt.args[2:end]), ", ")) + print(io, ")") + if print_typ && stmt.typ !== Any + print(io, "::$(stmt.typ)") + end + elseif isexpr(stmt, :new) + print(io, "new(") + print(io, join(map(arg->sprint(io->print_ssa(io, arg)), stmt.args), ", ")) + print(io, ")") + else + print(io, stmt) + end +end + +function Base.show(io::IO, code::IRCode) + io = IOContext(io, :color=>true) + used = Set{Int}() + println(io, "Code") + foreach(stmt->scan_ssa_use!(used, stmt), code.stmts) + foreach(((_a, _b, node, _d),) -> scan_ssa_use!(used, node), code.new_nodes) + if isempty(used) + maxsize = 0 + else + maxused = maximum(used) + maxsize = length(string(maxused)) + end + cfg = code.cfg + max_bb_idx_size = length(string(length(cfg.blocks))) + bb_idx = 1 + perm = sortperm(code.new_nodes, by = x->x[1]) + new_nodes_perm = Iterators.Stateful(perm) + for (idx, stmt) in Iterators.enumerate(code.stmts) + bbrange = cfg.blocks[bb_idx].stmts + bbrange = bbrange.first:bbrange.last + bb_pad = max_bb_idx_size - length(string(bb_idx)) + bb_start_str = string("$(bb_idx) ",length(cfg.blocks[bb_idx].preds) <= 1 ? "─" : "┄", "─"^(bb_pad)," ") + if idx != last(bbrange) + if idx == first(bbrange) + print(io, bb_start_str) + else + print(io, "│ "," "^max_bb_idx_size) + end + end + print_sep = false + if idx == last(bbrange) + print_sep = true + end + floop = true + while !isempty(new_nodes_perm) && code.new_nodes[Base.peek(new_nodes_perm)][1] == idx + node_idx = popfirst!(new_nodes_perm) + _, typ, node, line = code.new_nodes[node_idx] + node_idx += length(code.stmts) + if print_sep + if floop + print(io, bb_start_str) + else + print(io, "│ "," "^max_bb_idx_size) + end + end + print_sep = true + floop = false + print_ssa_typ = !isa(node, PiNode) && node_idx in used + Base.with_output_color(:yellow, io) do io′ + print_node(io′, node_idx, node, used, maxsize; color = false, + print_typ=!print_ssa_typ || (isa(node, Expr) && typ != node.typ)) + end + if print_ssa_typ + printstyled(io, "::$(typ)", color=:red) + end + println(io) + end + if print_sep + if idx == first(bbrange) && floop + print(io, bb_start_str) + else + print(io, idx == last(bbrange) ? string("└", "─"^(1+max_bb_idx_size), " ") : + string("│ ", " "^max_bb_idx_size)) + end + end + if idx == last(bbrange) + bb_idx += 1 + end + typ = code.types[idx] + print_ssa_typ = !isa(stmt, PiNode) && idx in used + print_node(io, idx, stmt, used, maxsize, + print_typ=!print_ssa_typ || (isa(stmt, Expr) && typ != stmt.typ)) + if print_ssa_typ + printstyled(io, "::$(typ)", color=:red) + end + println(io) + end +end diff --git a/base/compiler/ssair/slot2ssa.jl b/base/compiler/ssair/slot2ssa.jl new file mode 100644 index 00000000000000..478c87380c3aa6 --- /dev/null +++ b/base/compiler/ssair/slot2ssa.jl @@ -0,0 +1,628 @@ +mutable struct SlotInfo + defs::Vector{Int} + uses::Vector{Int} + any_newvar::Bool +end +SlotInfo() = SlotInfo(Int[], Int[], false) + +function scan_entry!(result::Vector{SlotInfo}, idx::Int, @nospecialize(stmt)) + # NewVarNodes count as defs for the purpose + # of liveness analysis (i.e. they kill use chains) + if isa(stmt, NewvarNode) + result[slot_id(stmt.slot)].any_newvar = true + push!(result[slot_id(stmt.slot)].defs, idx) + return + elseif isexpr(stmt, :(=)) + if isa(stmt.args[1], SlotNumber) + push!(result[slot_id(stmt.args[1])].defs, idx) + end + stmt = stmt.args[2] + end + if isa(stmt, Union{SlotNumber, TypedSlot}) + push!(result[slot_id(stmt)].uses, idx) + return + end + for op in userefs(stmt) + val = op[] + if isa(val, Union{SlotNumber, TypedSlot}) + push!(result[slot_id(val)].uses, idx) + end + end +end + + +function lift_defuse(cfg::CFG, defuse) + map(defuse) do slot + SlotInfo( + Int[block_for_inst(cfg, x) for x in slot.defs], + Int[block_for_inst(cfg, x) for x in slot.uses], + slot.any_newvar + ) + end +end + +@inline slot_id(s) = isa(s, SlotNumber) ? (s::SlotNumber).id : (s::TypedSlot).id +function scan_slot_def_use(nargs, ci::CodeInfo) + nslots = length(ci.slotnames) + result = SlotInfo[SlotInfo() for i = 1:nslots] + # Set defs for arguments + for var in result[1:(1+nargs)] + push!(var.defs, 0) + end + for (idx, stmt) in Iterators.enumerate(ci.code) + scan_entry!(result, idx, stmt) + end + result +end + +function renumber_ssa(stmt::SSAValue, ssanums::Vector{Any}, new_ssa::Bool=false, used_ssa::Union{Nothing, Vector{Int}}=nothing) + id = stmt.id + (new_ssa ? 0 : 1) + if id > length(ssanums) + return stmt + end + val = ssanums[id] + if isa(val, SSAValue) && used_ssa !== nothing + used_ssa[val.id] += 1 + end + return val +end + +function renumber_ssa!(@nospecialize(stmt), ssanums::Vector{Any}, new_ssa::Bool=false, used_ssa::Union{Nothing, Vector{Int}}=nothing) + isa(stmt, SSAValue) && return renumber_ssa(stmt, ssanums, new_ssa, used_ssa) + return ssamap(val->renumber_ssa(val, ssanums, new_ssa, used_ssa), stmt) +end + +function make_ssa!(ci::CodeInfo, idx, slot, @nospecialize(typ)) + (idx == 0) && return Argument(slot) + stmt = ci.code[idx] + @assert isexpr(stmt, :(=)) + push!(ci.ssavaluetypes, typ) + ssa = length(ci.ssavaluetypes)-1 + stmt.args[1] = SSAValue(ssa) + ssa +end + +struct UndefToken +end +const undef_token = UndefToken() + +function new_to_regular(@nospecialize(stmt)) + if isa(stmt, NewSSAValue) + return SSAValue(stmt.id) + end + urs = userefs(stmt) + urs === () && return stmt + for op in urs + val = op[] + if isa(val, NewSSAValue) + op[] = SSAValue(val.id) + end + end + urs[] +end + +function fixup_slot!(ir::IRCode, ci::CodeInfo, idx::Int, slot::Int, @nospecialize(stmt::Union{SlotNumber, TypedSlot}), @nospecialize(ssa)) + # We don't really have the information here to get rid of these. + # We'll do so later + if ssa === undef_token + insert_node!(ir, idx, Any, Expr(:throw_undef_if_not, ci.slotnames[slot], false)) + return undef_token + end + if !isa(ssa, Argument) && !(ssa === nothing) && ((ci.slotflags[slot] & SLOT_USEDUNDEF) != 0) + insert_node!(ir, idx, Any, Expr(:undefcheck, ci.slotnames[slot], ssa)) + end + if isa(stmt, SlotNumber) + return ssa + elseif isa(stmt, TypedSlot) + return NewSSAValue(insert_node!(ir, idx, stmt.typ, PiNode(ssa, stmt.typ)).id) + end +end + +function fixemup!(cond, rename, ir::IRCode, ci::CodeInfo, idx::Int, @nospecialize(stmt)) + if isa(stmt, Union{SlotNumber, TypedSlot}) && cond(stmt) + return fixup_slot!(ir, ci, idx, slot_id(stmt), stmt, rename(stmt)) + end + if isexpr(stmt, :(=)) + stmt.args[2] = fixemup!(cond, rename, ir, ci, idx, stmt.args[2]) + return stmt + end + if isa(stmt, PhiNode) + for i = 1:length(stmt.edges) + isassigned(stmt.values, i) || continue + val = stmt.values[i] + isa(val, Union{SlotNumber, TypedSlot}) || continue + cond(val) || continue + bb_idx = block_for_inst(ir.cfg, stmt.edges[i]) + from_bb_terminator = last(ir.cfg.blocks[bb_idx].stmts) + stmt.values[i] = fixup_slot!(ir, ci, from_bb_terminator, slot_id(val), val, rename(val)) + end + return stmt + end + if isexpr(stmt, :isdefined) + val = stmt.args[1] + if isa(val, Union{SlotNumber, TypedSlot}) + slot = slot_id(val) + if (ci.slotflags[slot] & SLOT_USEDUNDEF) == 0 + return true + else + ssa = rename(val) + if ssa === undef_token + return false + elseif !isa(ssa, SSAValue) && !isa(ssa, NewSSAValue) + return true + end + end + stmt.args[1] = ssa + end + return stmt + end + urs = userefs(stmt) + urs === () && return stmt + for op in urs + val = op[] + if isa(val, Union{SlotNumber, TypedSlot}) && cond(val) + x = fixup_slot!(ir, ci, idx, slot_id(val), val, rename(val)) + # We inserted an undef error node. Delete subsequent statement + # to avoid confusing the optimizer + if x === undef_token + return nothing + end + op[] = x + end + end + urs[] +end + +function fixup_uses!(ir::IRCode, ci::CodeInfo, uses::Vector{Int}, slot, @nospecialize(ssa)) + for use in uses + ci.code[use] = fixemup!(stmt->slot_id(stmt)==slot, stmt->ssa, ir, ci, use, ci.code[use]) + end +end + +function rename_uses!(ir::IRCode, ci::CodeInfo, idx::Int, @nospecialize(stmt), renames::Vector{Any}) + return fixemup!(stmt->true, stmt->renames[slot_id(stmt)], ir, ci, idx, stmt) +end + +function strip_trailing_junk!(code::Vector{Any}, lines::Vector{Int}) + # Remove `nothing`s at the end, we don't handle them well + # (we expect the last instruction to be a terminator) + for i = length(code):-1:1 + if code[i] !== nothing + resize!(code, i) + resize!(lines, i) + break + end + end + # If the last instruction is not a terminator, add one. This can + # happen for implicit return on dead branches. + term = code[end] + if !isa(term, GotoIfNot) && !isa(term, GotoNode) && !isa(term, ReturnNode) + push!(code, ReturnNode()) + push!(lines, 0) + end + return code +end + +struct DelayedTyp + phi::NewSSAValue +end + +# maybe use expr_type? +function typ_for_val(@nospecialize(val), ci::CodeInfo) + isa(val, Expr) && return val.typ + isa(val, GlobalRef) && return abstract_eval_global(val.mod, val.name) + isa(val, SSAValue) && return ci.ssavaluetypes[val.id+1] + isa(val, Argument) && return ci.slottypes[val.n] + isa(val, NewSSAValue) && return DelayedTyp(val) + isa(val, QuoteNode) && return Const(val.value) + isa(val, Union{Symbol, PiNode, PhiNode, SlotNumber, TypedSlot}) && error("unexpected val type") + return Const(val) +end + +# Run iterated dominance frontier +function idf(cfg::CFG, defuse, domtree::DomTree, slot::Int) + # This should be a priority queue, but TODO - sorted array for now + defs = defuse[slot].defs + pq = Tuple{Int, Int}[(defs[i], domtree.nodes[defs[i]].level) for i in 1:length(defs)] + sort!(pq, by=x->x[2]) + phiblocks = Int[] + processed = IdSet{Int}() + while !isempty(pq) + node, level = pop!(pq) + worklist = Int[] + visited = IdSet{Int}() + push!(worklist, node) + while !isempty(worklist) + active = pop!(worklist) + for succ in cfg.blocks[active].succs + succ_level = domtree.nodes[succ].level + succ_level > level && continue + succ in processed && continue + push!(processed, succ) + # <- TODO: Use liveness here + push!(phiblocks, succ) + if !(succ in defuse[slot].defs) + push!(pq, (succ, succ_level)) + sort!(pq, by=x->x[2]) + end + end + + for child in domtree.nodes[active].children + child in visited && continue + push!(visited, child) + push!(worklist, child) + end + end + end + phiblocks +end + +function rename_incoming_edge(old_edge, old_to, result_order, bb_rename) + new_edge_from = bb_rename[old_edge] + if old_edge == old_to - 1 + # Could have been a crit edge break + if new_edge_from < length(result_order) && result_order[new_edge_from + 1] == 0 + new_edge_from += 1 + end + end + new_edge_from +end + +function rename_outgoing_edge(old_to, old_from, result_order, bb_rename) + new_edge_to = bb_rename[old_to] + if old_from == old_to - 1 + # Could have been a crit edge break + if bb_rename[old_from] < length(result_order) && result_order[bb_rename[old_from]+1] == 0 + new_edge_to = bb_rename[old_from] + 1 + end + end + new_edge_to +end + +function rename_phinode_edges(node, bb, result_order, bb_rename) + new_values = Any[] + new_edges = Any[] + for (idx, edge) in pairs(node.edges) + haskey(bb_rename, edge) || continue + new_edge_from = rename_incoming_edge(edge, bb, result_order, bb_rename) + push!(new_edges, new_edge_from) + if isassigned(node.values, idx) + push!(new_values, node.values[idx]) + else + resize!(new_values, length(new_values)+1) + end + end + if length(new_edges) == 1 + return isassigned(new_values, 1) ? new_values[1] : PhiNode(Any[], Any[]) + else + return PhiNode(new_edges, new_values) + end +end + +""" + Sort the basic blocks in `ir` into domtree order (i.e. if bb`` is higher in + the domtree than bb2, it will come first in the linear order). The resulting + ir has the property that a linear traversal of basic blocks will also be a + RPO traversal and in particular, any use of an SSA value must come after (by linear + order) its definition. +""" +function domsort_ssa!(ir, domtree) + # First compute the new order of basic blocks + result_order = Int[] + stack = Int[] + node = 1 + ncritbreaks = 0 + nnewfallthroughs = 0 + while node !== -1 + push!(result_order, node) + cs = domtree.nodes[node].children + terminator = ir.stmts[ir.cfg.blocks[node].stmts.last] + iscondbr = isa(terminator, GotoIfNot) + old_node = node + if length(cs) >= 1 + # Adding the nodes in reverse sorted order attempts to retain + # the original source order of the nodes as much as possible. + # This is not required for correctness, but is easier on the humans + if (old_node + 1) in cs + # Schedule the fall through node first, + # so we can retain the fall through + append!(stack, reverse(sort(filter(x->x != old_node + 1, cs)))) + node = node + 1 + else + append!(stack, reverse(sort(cs))) + node = pop!(stack) + end + else + if isempty(stack) + node = -1 + else + node = pop!(stack) + end + end + if node != old_node + 1 && !isa(terminator, Union{GotoNode, ReturnNode}) + if isa(terminator, GotoIfNot) + # Need to break the critical edge + ncritbreaks += 1 + push!(result_order, 0) + else + nnewfallthroughs += 1 + end + end + end + bb_rename = IdDict{Int,Int}(i=>x for (x, i) in pairs(result_order) if i !== 0) + new_bbs = Vector{BasicBlock}(uninitialized, length(result_order)) + nstmts = sum(length(ir.cfg.blocks[i].stmts) for i in result_order if i !== 0) + result_stmts = Vector{Any}(uninitialized, nstmts+ncritbreaks+nnewfallthroughs) + result_types = Any[Any for i = 1:length(result_stmts)] + result_ltable = Int[0 for i = 1:length(result_stmts)] + inst_rename = Vector{Any}(uninitialized, length(ir.stmts)) + for i = 1:length(ir.new_nodes) + push!(inst_rename, SSAValue(nstmts + i + ncritbreaks + nnewfallthroughs)) + end + bb_start_off = 0 + crit_edge_breaks_fixup = Tuple{Int, Int}[] + for (new_bb, bb) in pairs(result_order) + if bb == 0 + new_bbs[new_bb] = BasicBlock((1:1) .+ bb_start_off, [new_bb-1], [result_stmts[bb_start_off].dest]) + bb_start_off += 1 + continue + end + old_inst_range = ir.cfg.blocks[bb].stmts + inst_range = (1:length(old_inst_range)) .+ bb_start_off + inst_rename[old_inst_range] = Any[SSAValue(x) for x in inst_range] + for (nidx, idx) in zip(inst_range, old_inst_range) + stmt = ir.stmts[idx] + if isa(stmt, PhiNode) + result_stmts[nidx] = rename_phinode_edges(stmt, bb, result_order, bb_rename) + else + result_stmts[nidx] = stmt + end + result_types[nidx] = ir.types[idx] + result_ltable[nidx] = ir.lines[idx] + end + # Now fix up the terminator + terminator = result_stmts[inst_range[end]] + if isa(terminator, GotoNode) + # Convert to implicit fall through + if bb_rename[terminator.label] == new_bb + 1 + result_stmts[inst_range[end]] = nothing + else + result_stmts[inst_range[end]] = GotoNode(bb_rename[terminator.label]) + end + elseif isa(terminator, GotoIfNot) + # Check if we need to break the critical edge + if bb_rename[bb + 1] != new_bb + 1 + @assert result_order[new_bb + 1] == 0 + # Add an explicit goto node in the next basic block (we accounted for this above) + result_stmts[inst_range[end]+1] = GotoNode(bb_rename[bb+1]) + end + result_stmts[inst_range[end]] = GotoIfNot(terminator.cond, bb_rename[terminator.dest]) + elseif !isa(terminator, ReturnNode) + if bb_rename[bb + 1] != new_bb + 1 + # Add an explicit goto node + result_stmts[inst_range[end]+1] = GotoNode(bb_rename[bb+1]) + inst_range = first(inst_range):(last(inst_range)+1) + end + end + bb_start_off += length(inst_range) + new_preds = Int[rename_incoming_edge(i, bb, result_order, bb_rename) for i in ir.cfg.blocks[bb].preds if haskey(bb_rename, i)] + new_succs = Int[rename_outgoing_edge(i, bb, result_order, bb_rename) for i in ir.cfg.blocks[bb].succs if haskey(bb_rename, i)] + new_bbs[new_bb] = BasicBlock(inst_range, new_preds, new_succs) + end + result_stmts = Any[renumber_ssa!(result_stmts[i], inst_rename, true) for i in 1:length(result_stmts)] + cfg = CFG(new_bbs, Int[first(bb.stmts) for bb in new_bbs[2:end]]) + new_new_nodes = NewNode[(inst_rename[pos].id, typ, + renumber_ssa!(isa(node, PhiNode) ? + rename_phinode_edges(node, 0, result_order, bb_rename) : node, + inst_rename, true), lno) for (pos, typ, node, lno) in ir.new_nodes] + new_ir = IRCode(ir, result_stmts, result_types, result_ltable, cfg, new_new_nodes) + new_ir +end + +function construct_ssa!(ci::CodeInfo, ir::IRCode, domtree::DomTree, defuse, nargs::Int) + cfg = ir.cfg + left = Int[] + defuse_blocks = lift_defuse(ir.cfg, defuse) + phi_slots = Vector{Int}[Vector{Int}() for _ = 1:length(ir.cfg.blocks)] + phi_nodes = Vector{Pair{Int,PhiNode}}[Vector{Pair{Int,PhiNode}}() for _ = 1:length(cfg.blocks)] + phi_ssas = SSAValue[] + for (idx, slot) in Iterators.enumerate(defuse) + # No uses => no need for phi nodes + isempty(slot.uses) && continue + # TODO: Restore this optimization + if false # length(slot.defs) == 1 && slot.any_newvar + if slot.defs[] == 0 + typ = ci.slottypes[idx] + ssaval = Argument(idx) + fixup_uses!(ir, ci, slot.uses, idx, ssaval) + elseif isa(ci.code[slot.defs[]], NewvarNode) + typ = MaybeUndef(Union{}) + ssaval = nothing + for use in slot.uses[] + insert_node!(ir, use, Union{}, Expr(:throw_undef_if_not, ci.slotnames[idx], false)) + end + fixup_uses!(ir, ci, slot.uses, idx, nothing) + else + val = ci.code[slot.defs[]].args[2] + typ = typ_for_val(val, ci) + ssaval = SSAValue(make_ssa!(ci, slot.defs[], idx, typ)) + fixup_uses!(ir, ci, slot.uses, idx, ssaval) + end + continue + end + # TODO: Perform liveness here to eliminate dead phi nodes + phiblocks = idf(cfg, defuse_blocks, domtree, idx) + for block in phiblocks + push!(phi_slots[block], idx) + node = PhiNode() + ssa = insert_node!(ir, first_insert_for_bb(ci.code, cfg, block), Union{}, node) + push!(phi_nodes[block], ssa.id=>node) + end + push!(left, idx) + end + # Perform SSA renaming + initial_incoming_vals = Any[ + if 0 in defuse[x].defs + Argument(x) + elseif !defuse[x].any_newvar + undef_token + else + SSAValue(-1) + end for x in 1:length(ci.slotnames) + ] + worklist = Any[(1, 0, initial_incoming_vals)] + visited = IdSet{Int}() + type_refine_phi = IdSet{Int}() + while !isempty(worklist) + (item, pred, incoming_vals) = pop!(worklist) + # Rename existing phi nodes first, because their uses occur on the edge + # TODO: This isn't necessary if inlining stops replacing arguments by slots. + for idx in cfg.blocks[item].stmts + stmt = ci.code[idx] + if isexpr(stmt, :(=)) + stmt = stmt.args[2] + end + isa(stmt, PhiNode) || continue + for (edgeidx, edge) in pairs(stmt.edges) + block_for_inst(cfg, edge) == pred || continue + isassigned(stmt.values, edgeidx) || break + stmt.values[edgeidx] = rename_uses!(ir, ci, edge, stmt.values[edgeidx], incoming_vals) + break + end + end + # Insert phi nodes if necessary + for (idx, slot) in Iterators.enumerate(phi_slots[item]) + ssaval, node = phi_nodes[item][idx] + incoming_val = incoming_vals[slot] + if incoming_val == SSAValue(-1) + # Optimistically omit this path. + # Liveness analysis would probably have prevented us from inserting this phi node + continue + end + push!(node.edges, pred) + if incoming_val == undef_token + resize!(node.values, length(node.values)+1) + else + push!(node.values, incoming_val) + end + # TODO: Remove the next line, it shouldn't be necessary + push!(type_refine_phi, ssaval) + if isa(incoming_val, NewSSAValue) + push!(type_refine_phi, ssaval) + end + typ = incoming_val == undef_token ? MaybeUndef(Union{}) : typ_for_val(incoming_val, ci) + new_node_id = ssaval - length(ir.stmts) + old_insert, old_typ, _, old_line = ir.new_nodes[new_node_id] + if isa(typ, DelayedTyp) + push!(type_refine_phi, ssaval) + end + new_typ = isa(typ, DelayedTyp) ? Union{} : tmerge(old_typ, typ) + ir.new_nodes[new_node_id] = (old_insert, new_typ, node, old_line) + incoming_vals[slot] = NewSSAValue(ssaval) + end + (item in visited) && continue + push!(visited, item) + for idx in cfg.blocks[item].stmts + stmt = ci.code[idx] + (isa(stmt, PhiNode) || (isexpr(stmt, :(=)) && isa(stmt.args[2], PhiNode))) && continue + if isa(stmt, NewvarNode) + incoming_vals[slot_id(stmt.slot)] = undef_token + ci.code[idx] = nothing + else + stmt = rename_uses!(ir, ci, idx, stmt, incoming_vals) + if stmt === nothing && isa(ci.code[idx], Union{ReturnNode, GotoIfNot}) && idx == last(cfg.blocks[item].stmts) + # preserve the CFG + stmt = ReturnNode() + end + ci.code[idx] = stmt + # Record a store + if isexpr(stmt, :(=)) && isa(stmt.args[1], SlotNumber) + id = slot_id(stmt.args[1]) + val = stmt.args[2] + typ = typ_for_val(val, ci) + incoming_vals[id] = SSAValue(make_ssa!(ci, idx, id, typ)) + end + end + end + for succ in cfg.blocks[item].succs + push!(worklist, (succ, item, copy(incoming_vals))) + end + end + # Delete any instruction in unreachable blocks (except for terminators) + for bb in setdiff(IdSet{Int}(1:length(cfg.blocks)), visited) + for idx in cfg.blocks[bb].stmts + if isa(ci.code[idx], Union{GotoNode, GotoIfNot, ReturnNode}) + ci.code[idx] = ReturnNode() + else + ci.code[idx] = nothing + end + end + end + # Convert into IRCode form + code = ir.stmts + ssavalmap = Any[SSAValue(-1) for _ in 1:(length(ci.ssavaluetypes)+1)] + types = Any[Any for _ in 1:length(code)] + # Detect statement positions for assignments and construct array + for (idx, stmt) in Iterators.enumerate(ci.code) + if isexpr(stmt, :(=)) && isa(stmt.args[1], SSAValue) + ssavalmap[stmt.args[1].id + 1] = SSAValue(idx) + types[idx] = ci.ssavaluetypes[stmt.args[1].id + 1] + stmt = stmt.args[2] + if isa(stmt, PhiNode) + edges = Any[block_for_inst(cfg, edge) for edge in stmt.edges] + code[idx] = PhiNode(edges, stmt.values) + else + code[idx] = stmt + end + # Convert GotoNode/GotoIfNot/PhiNode to BB addressing + elseif isa(stmt, GotoNode) + code[idx] = GotoNode(block_for_inst(cfg, stmt.label)) + elseif isa(stmt, GotoIfNot) + code[idx] = GotoIfNot(stmt.cond, block_for_inst(cfg, stmt.dest)) + else + code[idx] = stmt + end + end + # This is a bit awkward, because it basically duplicates what type + # inference does. Ideally, we'd just use this representation earlier + # to make sure phi nodes have accurate types + changed = true + while changed + changed = false + for phi in type_refine_phi + new_idx = phi - length(ir.stmts) + old_insert, old_typ, node, old_line = ir.new_nodes[new_idx] + new_typ = Union{} + for i = 1:length(node.values) + if !isassigned(node.values, i) + if !isa(new_typ, MaybeUndef) + new_typ = MaybeUndef(new_typ) + end + continue + end + typ = typ_for_val(node.values[i], ci) + if isa(typ, DelayedTyp) + typ = ir.new_nodes[typ.phi.id - length(ir.stmts)][2] + end + new_typ = tmerge(new_typ, typ) + end + if !(old_typ ⊑ new_typ) || !(new_typ ⊑ old_typ) + ir.new_nodes[new_idx] = (old_insert, new_typ, node, old_line) + changed = true + end + end + end + types = Any[isa(types[i], DelayedTyp) ? ir.new_nodes[types[i].phi.id - length(ir.stmts)][2] : types[i] for i in 1:length(types)] + new_nodes = NewNode[let (pos, typ, node, line) = ir.new_nodes[i] + typ = isa(typ, DelayedTyp) ? ir.new_nodes[typ.phi.id - length(ir.stmts)][2] : typ + (pos, typ, node, line) + end for i in 1:length(ir.new_nodes)] + # Renumber SSA values + code = Any[new_to_regular(renumber_ssa!(code[i], ssavalmap)) for i in 1:length(code)] + new_nodes = NewNode[let (pt, typ, stmt, line) = new_nodes[i] + (pt, typ, new_to_regular(renumber_ssa!(stmt, ssavalmap)), line) + end for i in 1:length(new_nodes)] + ir = IRCode(ir, code, types, ir.lines, ir.cfg, new_nodes) + ir = domsort_ssa!(ir, domtree) + ir +end diff --git a/base/compiler/ssair/verify.jl b/base/compiler/ssair/verify.jl new file mode 100644 index 00000000000000..a83eab11e8e362 --- /dev/null +++ b/base/compiler/ssair/verify.jl @@ -0,0 +1,75 @@ +function check_op(ir::IRCode, domtree::DomTree, @nospecialize(op), use_bb::Int, use_idx::Int) + if isa(op, SSAValue) + if op.id > length(ir.stmts) + def_bb = block_for_inst(ir.cfg, ir.new_nodes[op.id - length(ir.stmts)][1]) + else + def_bb = block_for_inst(ir.cfg, op.id) + end + if (def_bb == use_bb) + if op.id > length(ir.stmts) + @assert ir.new_nodes[op.id - length(ir.stmts)][1] <= use_idx + else + @assert op.id < use_idx + end + else + if !dominates(domtree, def_bb, use_bb) + #@Base.show ir + #@Base.error "Basic Block $def_bb does not dominate block $use_bb (tried to use value $(op.id))" + error() + end + end + elseif isa(op, Union{SlotNumber, TypedSlot}) + #@error "Left over slot detected in converted IR" + error() + end +end + +function verify_ir(ir::IRCode) + # For now require compact IR + # @assert isempty(ir.new_nodes) + # Verify CFG + last_end = 0 + for block in ir.cfg.blocks + if first(block.stmts) != last_end + 1 + #ranges = [(idx,first(bb.stmts),last(bb.stmts)) for (idx, bb) in pairs(ir.cfg.blocks)] + #@Base.show ranges + #@Base.show (first(block.stmts), last_end) + error() + end + last_end = last(block.stmts) + end + # Verify statements + domtree = construct_domtree(ir.cfg) + for (bb, idx, stmt) in bbidxstmt(ir) + if isa(stmt, PhiNode) + @assert length(stmt.edges) == length(stmt.values) + for i = 1:length(stmt.edges) + edge = stmt.edges[i] + if !(edge in ir.cfg.blocks[bb].preds) + #@Base.show ir + #@Base.show (idx, edge, bb, ir.cfg.blocks[bb].preds) + error() + end + isassigned(stmt.values, i) || continue + val = stmt.values[i] + phiT = ir.types[idx] + if isa(val, SSAValue) + if !(types(ir)[val] ⊑ phiT) + #@error """ + # PhiNode $idx, has operand $(val.id), whose type is not a sub lattice element. + # PhiNode type was $phiT + # Value type was $(ir.types[val.id]) + #""" + #error() + end + end + check_op(ir, domtree, val, edge, last(ir.cfg.blocks[stmt.edges[i]].stmts)+1) + end + else + for op in userefs(stmt) + op = op[] + check_op(ir, domtree, op, bb, idx) + end + end + end +end diff --git a/base/compiler/tfuncs.jl b/base/compiler/tfuncs.jl index 54a22b0b11266d..658323b4449924 100644 --- a/base/compiler/tfuncs.jl +++ b/base/compiler/tfuncs.jl @@ -729,12 +729,15 @@ function apply_type_tfunc(@nospecialize(headtypetype), @nospecialize args...) end add_tfunc(apply_type, 1, INT_INF, apply_type_tfunc, 10) -function invoke_tfunc(@nospecialize(f), @nospecialize(types), @nospecialize(argtype), sv::InferenceState) +function invoke_tfunc(@nospecialize(ft), @nospecialize(types), @nospecialize(argtype), sv::InferenceState) + dt = ccall(:jl_argument_datatype, Any, (Any,), ft) + if dt === nothing || !isdefined(dt.name, :mt) + return Any + end argtype = typeintersect(types, limit_tuple_type(argtype, sv.params)) if argtype === Bottom return Bottom end - ft = Core.Typeof(f) types = rewrap_unionall(Tuple{ft, unwrap_unionall(types).parameters...}, types) argtype = Tuple{ft, argtype.parameters...} entry = ccall(:jl_gf_invoke_lookup, Any, (Any, UInt), types, sv.params.world) @@ -816,8 +819,12 @@ function builtin_tfunction(@nospecialize(f), argtypes::Array{Any,1}, end return Expr elseif f === invoke - if length(argtypes) > 1 && isa(argtypes[1], Const) && sv !== nothing - af = argtypes[1].val + if length(argtypes) > 1 && sv !== nothing && (isa(argtypes[1], Const) || isa(argtypes[1], Type)) + if isa(argtypes[1], Const) + ft = Core.Typeof(argtypes[1].val) + else + ft = argtypes[1] + end sig = argtypes[2] if isa(sig, Const) sigty = sig.val @@ -827,7 +834,7 @@ function builtin_tfunction(@nospecialize(f), argtypes::Array{Any,1}, sigty = nothing end if isa(sigty, Type) && !has_free_typevars(sigty) && sigty <: Tuple - return invoke_tfunc(af, sigty, argtypes_to_type(argtypes[3:end]), sv) + return invoke_tfunc(ft, sigty, argtypes_to_type(argtypes[3:end]), sv) end end return Any diff --git a/base/compiler/typelattice.jl b/base/compiler/typelattice.jl index ff8d272946a55a..3a2fb6a19e6341 100644 --- a/base/compiler/typelattice.jl +++ b/base/compiler/typelattice.jl @@ -48,6 +48,11 @@ struct PartialTypeVar PartialTypeVar(tv::TypeVar, lb_certain::Bool, ub_certain::Bool) = new(tv, lb_certain, ub_certain) end +# Wraps a type and represents that the value may also be undef at this point. +struct MaybeUndef + typ +end + # The type of a variable load is either a value or an UndefVarError struct VarState typ @@ -120,6 +125,11 @@ end maybe_extract_const_bool(c) = nothing function ⊑(@nospecialize(a), @nospecialize(b)) + if isa(a, MaybeUndef) && !isa(b, MaybeUndef) + return false + end + isa(a, MaybeUndef) && (a = a.typ) + isa(b, MaybeUndef) && (b = b.typ) (a === NOT_FOUND || b === Any) && return true (a === Any || b === NOT_FOUND) && return false a === Union{} && return true @@ -160,6 +170,7 @@ function widenconst(c::Const) return typeof(c.val) end end +widenconst(m::MaybeUndef) = widenconst(m.typ) widenconst(c::PartialTypeVar) = TypeVar widenconst(@nospecialize(t)) = t @@ -168,6 +179,11 @@ issubstate(a::VarState, b::VarState) = (a.typ ⊑ b.typ && a.undef <= b.undef) function tmerge(@nospecialize(typea), @nospecialize(typeb)) typea ⊑ typeb && return typeb typeb ⊑ typea && return typea + if isa(typea, MaybeUndef) || isa(typeb, MaybeUndef) + return MaybeUndef(tmerge( + isa(typea, MaybeUndef) ? typea.typ : typea, + isa(typeb, MaybeUndef) ? typeb.typ : typeb)) + end if isa(typea, Conditional) && isa(typeb, Conditional) if typea.var === typeb.var vtype = tmerge(typea.vtype, typeb.vtype) diff --git a/base/compiler/typelimits.jl b/base/compiler/typelimits.jl index d537299089a1c7..fb5c0a87d84fc0 100644 --- a/base/compiler/typelimits.jl +++ b/base/compiler/typelimits.jl @@ -256,7 +256,7 @@ function type_more_complex(@nospecialize(t), @nospecialize(c), sources::SimpleVe return type_more_complex(t, c.a, sources, depth, tupledepth, allowed_tuplelen) && type_more_complex(t, c.b, sources, depth, tupledepth, allowed_tuplelen) elseif isa(t, Int) && isa(c, Int) - return t !== 1 # alternatively, could use !(0 <= t < c) + return t !== 1 && !(0 <= t < c) # alternatively, could use !(abs(t) <= abs(c) || abs(t) < n) for some n end # base case for data types if isa(t, DataType) diff --git a/base/compiler/utilities.jl b/base/compiler/utilities.jl index b11651a5d6845d..34234d2b10048e 100644 --- a/base/compiler/utilities.jl +++ b/base/compiler/utilities.jl @@ -172,7 +172,7 @@ function method_for_inference_heuristics(method::Method, @nospecialize(sig), spa return method end -function exprtype(@nospecialize(x), src::CodeInfo, mod::Module) +function exprtype(@nospecialize(x), src, mod::Module) if isa(x, Expr) return (x::Expr).typ elseif isa(x, SlotNumber) @@ -187,6 +187,10 @@ function exprtype(@nospecialize(x), src::CodeInfo, mod::Module) return AbstractEvalConstant((x::QuoteNode).value) elseif isa(x, GlobalRef) return abstract_eval_global(x.mod, (x::GlobalRef).name) + elseif isa(x, PhiNode) + return Any + elseif isa(x, PiNode) + return x.typ else return AbstractEvalConstant(x) end @@ -242,18 +246,31 @@ end ############## # scan body for the value of the largest referenced label -function label_counter(body::Vector{Any}) +# so that we won't accidentally re-use it +function label_counter(body::Vector{Any}, comefrom=true) l = 0 for b in body label = 0 - if isa(b, GotoNode) + if isa(b, LabelNode) && comefrom label = b.label::Int - elseif isa(b, LabelNode) - label = b.label - elseif isa(b, Expr) && b.head == :gotoifnot - label = b.args[2]::Int - elseif isa(b, Expr) && b.head == :enter - label = b.args[1]::Int + elseif isa(b, GotoNode) + label = b.label::Int + elseif isa(b, Expr) + if b.head == :gotoifnot + label = b.args[2]::Int + elseif b.head == :enter + label = b.args[1]::Int + elseif b.head === :(=) && comefrom + rhs = b.args[2] + if isa(rhs, PhiNode) + for edge in rhs.edges + edge = edge::Int + 1 + if edge > l + l = edge + end + end + end + end end if label > l l = label @@ -268,6 +285,7 @@ function get_label_map(body::Vector{Any}) for i = 1:length(body) el = body[i] if isa(el, LabelNode) + # @assert labelmap[el.label] == 0 labelmap[el.label] = i end end diff --git a/base/compiler/validation.jl b/base/compiler/validation.jl index ed18ec973b4c91..5b2d0e5b71635e 100644 --- a/base/compiler/validation.jl +++ b/base/compiler/validation.jl @@ -12,6 +12,7 @@ const VALID_EXPR_HEADS = IdDict{Any,Any}( :const => 1:1, :new => 1:typemax(Int), :return => 1:1, + :unreachable => 0:0, :the_exception => 0:0, :enter => 1:1, :leave => 1:1, @@ -25,7 +26,8 @@ const VALID_EXPR_HEADS = IdDict{Any,Any}( :simdloop => 0:0, :gc_preserve_begin => 0:typemax(Int), :gc_preserve_end => 0:typemax(Int), - :thunk => 1:1 + :thunk => 1:1, + :throw_undef_if_not => 2:2 ) # @enum isn't defined yet, otherwise I'd use it for this @@ -59,10 +61,10 @@ function validate_code_in_debug_mode(linfo::MethodInstance, src::CodeInfo, kind: if !isempty(errors) for e in errors if linfo.def isa Method - println(STDERR, "WARNING: Encountered invalid ", kind, " code for method ", + println(stderr, "WARNING: Encountered invalid ", kind, " code for method ", linfo.def, ": ", e) else - println(STDERR, "WARNING: Encountered invalid ", kind, " code for top level expression in ", + println(stderr, "WARNING: Encountered invalid ", kind, " code for top level expression in ", linfo.def, ": ", e) end end @@ -139,7 +141,7 @@ function validate_code!(errors::Vector{>:InvalidCodeError}, c::CodeInfo, is_top_ elseif head === :call || head === :invoke || head == :gc_preserve_end || head === :meta || head === :inbounds || head === :foreigncall || head === :const || head === :enter || head === :leave || head === :method || head === :global || head === :static_parameter || - head === :new || head === :thunk || head === :simdloop + head === :new || head === :thunk || head === :simdloop || head === :throw_undef_if_not validate_val!(x) else push!(errors, InvalidCodeError("invalid statement", x)) diff --git a/base/complex.jl b/base/complex.jl index dbeb47bf55f90a..80ef9edf7e803d 100644 --- a/base/complex.jl +++ b/base/complex.jl @@ -960,9 +960,9 @@ function round(z::Complex{<:AbstractFloat}, ::RoundingMode{MR}, ::RoundingMode{M end round(z::Complex) = Complex(round(real(z)), round(imag(z))) -function round(z::Complex, digits::Integer, base::Integer=10) - Complex(round(real(z), digits, base), - round(imag(z), digits, base)) +function round(z::Complex, digits::Integer; base::Integer = 10) + Complex(round(real(z), digits, base = base), + round(imag(z), digits, base = base)) end float(z::Complex{<:AbstractFloat}) = z diff --git a/base/coreio.jl b/base/coreio.jl index fcc6bd519e355f..e901cdec10e398 100644 --- a/base/coreio.jl +++ b/base/coreio.jl @@ -1,11 +1,11 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -print(xs...) = print(STDOUT::IO, xs...) -println(xs...) = println(STDOUT::IO, xs...) +print(xs...) = print(stdout::IO, xs...) +println(xs...) = println(stdout::IO, xs...) println(io::IO) = print(io, '\n') struct DevNullStream <: IO end -const DevNull = DevNullStream() +const devnull = DevNullStream() isreadable(::DevNullStream) = false iswritable(::DevNullStream) = true isopen(::DevNullStream) = true @@ -26,6 +26,6 @@ let CoreIO = Union{Core.CoreSTDOUT, Core.CoreSTDERR} unsafe_write(io::CoreIO, x::Ptr{UInt8}, nb::UInt) = Core.unsafe_write(io, x, nb) end -STDIN = DevNull -STDOUT = Core.STDOUT -STDERR = Core.STDERR +stdin = devnull +stdout = Core.stdout +stderr = Core.stderr diff --git a/base/deepcopy.jl b/base/deepcopy.jl index 01c0d3bbd61e52..45a7755a77ae61 100644 --- a/base/deepcopy.jl +++ b/base/deepcopy.jl @@ -96,7 +96,7 @@ function _deepcopy_array_t(@nospecialize(x), T, stackdict::IdDict) return dest end -function deepcopy_internal(x::Dict, stackdict::IdDict) +function deepcopy_internal(x::Union{Dict,IdDict}, stackdict::IdDict) if haskey(stackdict, x) return stackdict[x]::typeof(x) end diff --git a/base/deprecated.jl b/base/deprecated.jl index 29129fa9001810..2703bf9e3b0be9 100644 --- a/base/deprecated.jl +++ b/base/deprecated.jl @@ -122,12 +122,12 @@ end deprecate(m::Module, s::Symbol, flag=1) = ccall(:jl_deprecate_binding, Cvoid, (Any, Any, Cint), m, s, flag) -macro deprecate_binding(old, new, export_old=true, dep_message=nothing) - dep_message == nothing && (dep_message = ", use $new instead.") +macro deprecate_binding(old, new, export_old=true, dep_message=:nothing, constant=true) + dep_message === :nothing && (dep_message = ", use $new instead.") return Expr(:toplevel, export_old ? Expr(:export, esc(old)) : nothing, Expr(:const, Expr(:(=), esc(Symbol(string("_dep_message_",old))), esc(dep_message))), - Expr(:const, Expr(:(=), esc(old), esc(new))), + constant ? Expr(:const, Expr(:(=), esc(old), esc(new))) : Expr(:(=), esc(old), esc(new)), Expr(:call, :deprecate, __module__, Expr(:quote, old))) end @@ -296,9 +296,9 @@ export conv, conv2, deconv, filt, filt!, xcorr # PR #21709 @deprecate cov(x::AbstractVector, corrected::Bool) cov(x, corrected=corrected) -@deprecate cov(x::AbstractMatrix, vardim::Int, corrected::Bool) cov(x, vardim, corrected=corrected) +@deprecate cov(x::AbstractMatrix, vardim::Int, corrected::Bool) cov(x, dims=vardim, corrected=corrected) @deprecate cov(X::AbstractVector, Y::AbstractVector, corrected::Bool) cov(X, Y, corrected=corrected) -@deprecate cov(X::AbstractVecOrMat, Y::AbstractVecOrMat, vardim::Int, corrected::Bool) cov(X, Y, vardim, corrected=corrected) +@deprecate cov(X::AbstractVecOrMat, Y::AbstractVecOrMat, vardim::Int, corrected::Bool) cov(X, Y, dims=vardim, corrected=corrected) # PR #22325 # TODO: when this replace is removed from deprecated.jl: @@ -419,8 +419,8 @@ function hex2num(s::AbstractString) end export hex2num -@deprecate num2hex(x::Union{Float16,Float32,Float64}) hex(reinterpret(Unsigned, x), sizeof(x)*2) -@deprecate num2hex(n::Integer) hex(n, sizeof(n)*2) +@deprecate num2hex(x::Union{Float16,Float32,Float64}) string(reinterpret(Unsigned, x), base = 16, pad = sizeof(x)*2) +@deprecate num2hex(n::Integer) string(n, base = 16, pad = sizeof(n)*2) # PR #22742: change in isapprox semantics @deprecate rtoldefault(x,y) rtoldefault(x,y,0) false @@ -457,8 +457,6 @@ end @deprecate (convert(::Type{Integer}, x::Enum{T}) where {T<:Integer}) Integer(x) @deprecate (convert(::Type{T}, x::Enum{T2}) where {T<:Integer,T2<:Integer}) T(x) -@deprecate convert(dt::Type{<:Integer}, ip::IPAddr) dt(ip) - function (::Type{T})(arg) where {T} if applicable(convert, T, arg) sig = which(convert, (Type{T}, typeof(arg))).sig @@ -680,15 +678,6 @@ end Broadcast.dotview(A::AbstractArray{<:AbstractArray}, args::Integer...) = getindex(A, args...) # Upon removing deprecations, also enable the @testset "scalar .=" in test/broadcast.jl -@noinline function getaddrinfo(callback::Function, host::AbstractString) - depwarn("`getaddrinfo` with a callback function is deprecated, wrap code in `@async` instead for deferred execution.", :getaddrinfo) - @async begin - r = getaddrinfo(host) - callback(r) - end - nothing -end - # indexing with A[true] will throw an argument error in the future function to_index(i::Bool) depwarn("indexing with Bool values is deprecated. Convert the index to an integer first with `Int(i)`.", (:getindex, :setindex!, :view)) @@ -781,8 +770,8 @@ findprev(pred::Function, A, i::Integer) = invoke(findprev, Tuple{Function, Any, # issue #20899 # TODO: delete JULIA_HOME deprecation in src/init.c -@deprecate cumsum(A::AbstractArray) cumsum(A, 1) -@deprecate cumprod(A::AbstractArray) cumprod(A, 1) +# cumsum and cumprod have deprecations in multidimensional.jl +# when the message is removed, the `dims` keyword argument should become required. # issue #16307 @deprecate finalizer(o, f::Function) finalizer(f, o) @@ -961,14 +950,14 @@ function info(io::IO, msg...; prefix="INFO: ") print(io, String(take!(buf))) return end -info(msg...; prefix="INFO: ") = info(STDERR, msg..., prefix=prefix) +info(msg...; prefix="INFO: ") = info(stderr, msg..., prefix=prefix) # print a warning only once const have_warned = Set() warn_once(io::IO, msg...) = warn(io, msg..., once=true) -warn_once(msg...) = warn(STDERR, msg..., once=true) +warn_once(msg...) = warn(stderr, msg..., once=true) """ warn([io, ] msg..., [prefix="WARNING: ", once=false, key=nothing, bt=nothing, filename=nothing, lineno::Int=0]) @@ -1018,19 +1007,19 @@ julia> warn("Beep Beep") WARNING: Beep Beep ``` """ -warn(msg...; kw...) = warn(STDERR, msg...; kw...) +warn(msg...; kw...) = warn(stderr, msg...; kw...) warn(io::IO, err::Exception; prefix="ERROR: ", kw...) = warn(io, sprint(showerror, err), prefix=prefix; kw...) warn(err::Exception; prefix="ERROR: ", kw...) = - warn(STDERR, err, prefix=prefix; kw...) + warn(stderr, err, prefix=prefix; kw...) info(io::IO, err::Exception; prefix="ERROR: ", kw...) = info(io, sprint(showerror, err), prefix=prefix; kw...) info(err::Exception; prefix="ERROR: ", kw...) = - info(STDERR, err, prefix=prefix; kw...) + info(stderr, err, prefix=prefix; kw...) # issue #25082 @deprecate_binding Void Nothing @@ -1243,6 +1232,10 @@ end @deprecate findin(a, b) findall(occursin(b), a) @deprecate find findall +@deprecate find(A::AbstractVector) findall(A) +@deprecate find(A::AbstractArray) LinearIndices(A)[findall(A)] +@deprecate find(f::Function, A::AbstractVector) findall(f, A) +@deprecate find(f::Function, A::AbstractArray) LinearIndices(A)[findall(f, A)] @deprecate findn(x::AbstractVector) (findall(!iszero, x),) @deprecate findn(x::AbstractMatrix) (I = findall(!iszero, x); (getindex.(I, 1), getindex.(I, 2))) @@ -1303,6 +1296,47 @@ export readandwrite @deprecate datatype_name(t::DataType) nameof(t) false @deprecate datatype_name(t::UnionAll) nameof(t) false +# issue #25501 +@deprecate sum(a::AbstractArray, dims) sum(a, dims=dims) +@deprecate sum(f, a::AbstractArray, dims) sum(f, a, dims=dims) +@deprecate prod(a::AbstractArray, dims) prod(a, dims=dims) +@deprecate prod(f, a::AbstractArray, dims) prod(f, a, dims=dims) +@deprecate maximum(a::AbstractArray, dims) maximum(a, dims=dims) +@deprecate maximum(f, a::AbstractArray, dims) maximum(f, a, dims=dims) +@deprecate minimum(a::AbstractArray, dims) minimum(a, dims=dims) +@deprecate minimum(f, a::AbstractArray, dims) minimum(f, a, dims=dims) +@deprecate all(a::AbstractArray, dims) all(a, dims=dims) +@deprecate all(f, a::AbstractArray, dims) all(f, a, dims=dims) +@deprecate any(a::AbstractArray, dims) any(a, dims=dims) +@deprecate any(f, a::AbstractArray, dims) any(f, a, dims=dims) +@deprecate findmax(A::AbstractArray, dims) findmax(A, dims=dims) +@deprecate findmin(A::AbstractArray, dims) findmin(A, dims=dims) + +@deprecate mean(A::AbstractArray, dims) mean(A, dims=dims) +@deprecate varm(A::AbstractArray, m::AbstractArray, dims; kwargs...) varm(A, m; kwargs..., dims=dims) +@deprecate var(A::AbstractArray, dims; kwargs...) var(A; kwargs..., dims=dims) +@deprecate std(A::AbstractArray, dims; kwargs...) std(A; kwargs..., dims=dims) +@deprecate cov(X::AbstractMatrix, dim::Int; kwargs...) cov(X; kwargs..., dims=dim) +@deprecate cov(x::AbstractVecOrMat, y::AbstractVecOrMat, dim::Int; kwargs...) cov(x, y; kwargs..., dims=dim) +@deprecate cor(X::AbstractMatrix, dim::Int) cor(X, dims=dim) +@deprecate cor(x::AbstractVecOrMat, y::AbstractVecOrMat, dim::Int) cor(x, y, dims=dim) +@deprecate median(A::AbstractArray, dims; kwargs...) median(A; kwargs..., dims=dims) + +@deprecate mapreducedim(f, op, A::AbstractArray, dims) mapreduce(f, op, A, dims=dims) +@deprecate mapreducedim(f, op, A::AbstractArray, dims, v0) mapreduce(f, op, v0, A, dims=dims) +@deprecate reducedim(op, A::AbstractArray, dims) reduce(op, A, dims=dims) +@deprecate reducedim(op, A::AbstractArray, dims, v0) reduce(op, v0, A, dims=dims) + +@deprecate sort(A::AbstractArray, dim::Integer; kwargs...) sort(A; kwargs..., dims=dim) + +@deprecate accumulate(op, A, dim::Integer) accumulate(op, A, dims=dim) +@deprecate accumulate!(op, B, A, dim::Integer) accumulate!(op, B, A, dims=dim) +@deprecate cumsum(A::AbstractArray, dim::Integer) cumsum(A, dims=dim) +@deprecate cumsum!(B, A, dim::Integer) cumsum!(B, A, dims=dim) +@deprecate cumsum!(out, A::AbstractVector, dim::Integer) cumsum!(out, A, dims=dim) +@deprecate cumprod(A::AbstractArray, dim::Integer) cumprod(A, dims=dim) +@deprecate cumprod!(B, A, dim::Integer) cumprod!(B, A, dims=dim) + # PR #25196 @deprecate_binding ObjectIdDict IdDict{Any,Any} @@ -1343,7 +1377,7 @@ end @deprecate names(m, all) names(m, all = all) @deprecate names(m, all, imported) names(m, all = all, imported = imported) @deprecate eachmatch(re, str, overlap) eachmatch(re, str, overlap = overlap) -@deprecate matchall(re, str, overlap) matchall(re, str, overlap = overlap) +@deprecate matchall(re, str, overlap) collect(m.match for m in eachmatch(re, str, overlap = overlap)) @deprecate chop(s, head) chop(s, head = head) @deprecate chop(s, head, tail) chop(s, head = head, tail = tail) @deprecate tryparse(T::Type{<:Integer}, s, base) tryparse(T, s, base = base) @@ -1358,6 +1392,25 @@ end @deprecate print_with_color(color, args...; kwargs...) printstyled(args...; kwargs..., color=color) +@deprecate base(b, n) string(n, base = b) +@deprecate base(b, n, pad) string(n, base = b, pad = pad) +@deprecate bin(n) string(n, base = 2) +@deprecate bin(n, pad) string(n, base = 2, pad = pad) +@deprecate oct(n) string(n, base = 8) +@deprecate oct(n, pad) string(n, base = 8, pad = pad) +@deprecate dec(n) string(n) +@deprecate dec(n, pad) string(n, pad = pad) +@deprecate hex(n) string(n, base = 16) +@deprecate hex(n, pad) string(n, base = 16, pad = pad) +@deprecate bin(n::Char) string(UInt32(n), base = 2) +@deprecate bin(n::Char, pad) string(UInt32(n), base = 2, pad = pad) +@deprecate oct(n::Char) string(UInt32(n), base = 8) +@deprecate oct(n::Char, pad) string(UInt32(n), base = 8, pad = pad) +@deprecate dec(n::Char) string(UInt32(n)) +@deprecate dec(n::Char, pad) string(UInt32(n), pad = pad) +@deprecate hex(n::Char) string(UInt32(n), base = 16) +@deprecate hex(n::Char, pad) string(UInt32(n), base = 16, pad = pad) + @deprecate which(s::Symbol) which(Main, s) @deprecate IOBuffer(data::AbstractVector{UInt8}, read::Bool, write::Bool=false, maxsize::Integer=typemax(Int)) IOBuffer(data, read=read, write=write, maxsize=maxsize) @@ -1365,6 +1418,13 @@ end @deprecate IOBuffer(maxsize::Integer) IOBuffer(read=true, write=true, maxsize=maxsize) @deprecate reprmime(mime, x) repr(mime, x) +@deprecate mimewritable(mime, x) showable(mime, x) + +# PR #26284 +@deprecate (+)(i::Integer, index::CartesianIndex) (i*one(index) + index) +@deprecate (+)(index::CartesianIndex, i::Integer) (index + i*one(index)) +@deprecate (-)(i::Integer, index::CartesianIndex) (i*one(index) - index) +@deprecate (-)(index::CartesianIndex, i::Integer) (index - i*one(index)) # PR #23332 @deprecate ^(x, p::Integer) Base.power_by_squaring(x,p) @@ -1392,16 +1452,49 @@ function slicedim(A::AbstractVector, d::Integer, i::Number) end end +# Issue #25786 +@deprecate_binding DevNull devnull +# TODO: When these are removed, also remove the uppercase variants in libuv.jl and stream.jl +@deprecate_binding STDIN stdin true nothing false +@deprecate_binding STDOUT stdout true nothing false +@deprecate_binding STDERR stderr true nothing false + # PR 25062 @deprecate(link_pipe(pipe; julia_only_read = true, julia_only_write = true), link_pipe!(pipe, reader_supports_async = julia_only_read, writer_supports_async = julia_only_write), false) +# PR 26156 +@deprecate trunc(x, digits, base) trunc(x, digits, base = base) +@deprecate floor(x, digits, base) floor(x, digits, base = base) +@deprecate ceil(x, digits, base) ceil(x, digits, base = base) +@deprecate round(x, digits, base) round(x, digits, base = base) +@deprecate signif(x, digits, base) signif(x, digits, base = base) + +# issue #25965 +@deprecate spawn(cmds::AbstractCmd) run(cmds, wait = false) + # Remember to delete the module when removing this @eval Base.Math module JuliaLibm Base.@deprecate log Base.log end +# PR 26071 +@deprecate(matchall(r::Regex, s::AbstractString; overlap::Bool = false), + collect(m.match for m in eachmatch(r, s, overlap = overlap))) + +@deprecate diff(A::AbstractMatrix) diff(A, 1) + +# PR 26194 +export assert +function assert(x) + depwarn("`assert` is deprecated, use `@assert` instead.", :assert) + @assert x "" +end + +# Issue #26248 +@deprecate conj(x) x + # END 0.7 deprecations # BEGIN 1.0 deprecations diff --git a/base/dict.jl b/base/dict.jl index e1d74f59c0a6c6..eacbbb2b0bf449 100644 --- a/base/dict.jl +++ b/base/dict.jl @@ -143,21 +143,6 @@ function Dict(kv) end end -TP{K,V} = Union{Type{Tuple{K,V}},Type{Pair{K,V}}} - -dict_with_eltype(DT_apply, kv, ::TP{K,V}) where {K,V} = DT_apply(K, V)(kv) -dict_with_eltype(DT_apply, kv::Generator, ::TP{K,V}) where {K,V} = DT_apply(K, V)(kv) -dict_with_eltype(DT_apply, ::Type{Pair{K,V}}) where {K,V} = DT_apply(K, V)() -dict_with_eltype(DT_apply, ::Type) = DT_apply(Any, Any)() -dict_with_eltype(DT_apply::F, kv, t) where {F} = grow_to!(dict_with_eltype(DT_apply, @default_eltype(typeof(kv))), kv) -function dict_with_eltype(DT_apply::F, kv::Generator, t) where F - T = @default_eltype(kv) - if T <: Union{Pair, Tuple{Any, Any}} && isconcretetype(T) - return dict_with_eltype(DT_apply, kv, T) - end - return grow_to!(dict_with_eltype(DT_apply, T), kv) -end - # this is a special case due to (1) allowing both Pairs and Tuples as elements, # and (2) Pair being invariant. a bit annoying. function grow_to!(dest::AbstractDict, itr) @@ -245,11 +230,6 @@ function rehash!(h::Dict{K,V}, newsz = length(h.keys)) where V where K return h end -max_values(::Type) = typemax(Int) -max_values(T::Type{<:Union{Nothing,BitIntegerSmall}}) = 1 << (8*sizeof(T)) -max_values(T::Union) = max(max_values(T.a), max_values(T.b)) -max_values(::Type{Bool}) = 2 - function sizehint!(d::Dict{T}, newsz) where T oldsz = length(d.slots) if newsz <= oldsz @@ -550,15 +530,15 @@ end Determine whether a collection has a mapping for a given key. ```jldoctest -julia> a = Dict('a'=>2, 'b'=>3) +julia> D = Dict('a'=>2, 'b'=>3) Dict{Char,Int64} with 2 entries: - 'b' => 3 'a' => 2 + 'b' => 3 -julia> haskey(a,'a') +julia> haskey(D, 'a') true -julia> haskey(a,'c') +julia> haskey(D, 'c') false ``` """ @@ -571,15 +551,15 @@ in(key, v::KeySet{<:Any, <:Dict}) = (ht_keyindex(v.dict, key) >= 0) Return the key matching argument `key` if one exists in `collection`, otherwise return `default`. ```jldoctest -julia> a = Dict('a'=>2, 'b'=>3) +julia> D = Dict('a'=>2, 'b'=>3) Dict{Char,Int64} with 2 entries: - 'b' => 3 'a' => 2 + 'b' => 3 -julia> getkey(a,'a',1) +julia> getkey(D, 'a', 1) 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) -julia> getkey(a,'d','a') +julia> getkey(D, 'd', 'a') 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) ``` """ diff --git a/base/docs/basedocs.jl b/base/docs/basedocs.jl index 9cb15d2e438045..454d8fd3dbf34c 100644 --- a/base/docs/basedocs.jl +++ b/base/docs/basedocs.jl @@ -28,7 +28,6 @@ kw"help", kw"?", kw"julia", kw"" available for direct use. Names can also be used via dot syntax (e.g. `Foo.foo` to access the name `foo`), whether they are `export`ed or not. See the [manual section about modules](@ref modules) for details. -``` """ kw"using" @@ -790,16 +789,16 @@ A variable referring to the last computed value, automatically set at the intera kw"ans" """ - DevNull + devnull Used in a stream redirect to discard all data written to it. Essentially equivalent to /dev/null on Unix or NUL on Windows. Usage: ```julia -run(pipeline(`cat test.txt`, DevNull)) +run(pipeline(`cat test.txt`, devnull)) ``` """ -DevNull +devnull # doc strings for code in boot.jl and built-ins @@ -925,25 +924,28 @@ OutOfMemoryError An indexing operation into an array, `a`, tried to access an out-of-bounds element at index `i`. # Examples -```jldoctest +```jldoctest; filter = r"Stacktrace:(\\n \\[[0-9]+\\].*)*" julia> A = fill(1.0, 7); julia> A[8] ERROR: BoundsError: attempt to access 7-element Array{Float64,1} at index [8] Stacktrace: - [1] getindex(::Array{Float64,1}, ::Int64) at ./array.jl:758 + [1] getindex(::Array{Float64,1}, ::Int64) at ./array.jl:660 + [2] top-level scope julia> B = fill(1.0, (2,3)); julia> B[2, 4] ERROR: BoundsError: attempt to access 2×3 Array{Float64,2} at index [2, 4] Stacktrace: - [1] getindex(::Array{Float64,2}, ::Int64, ::Int64) at ./array.jl:759 + [1] getindex(::Array{Float64,2}, ::Int64, ::Int64) at ./array.jl:661 + [2] top-level scope julia> B[9] ERROR: BoundsError: attempt to access 2×3 Array{Float64,2} at index [9] Stacktrace: - [1] getindex(::Array{Float64,2}, ::Int64) at ./array.jl:758 + [1] getindex(::Array{Float64,2}, ::Int64) at ./array.jl:660 + [2] top-level scope ``` """ BoundsError @@ -956,9 +958,9 @@ Cannot exactly convert `val` to type `T` in a method of function `name`. # Examples ```jldoctest julia> convert(Float64, 1+2im) -ERROR: InexactError: convert(Float64, 1 + 2im) +ERROR: InexactError: Float64(Float64, 1 + 2im) Stacktrace: - [1] convert(::Type{Float64}, ::Complex{Int64}) at ./complex.jl:37 +[...] ``` """ InexactError diff --git a/base/download.jl b/base/download.jl index be22a4aad19f36..f4d564d93f0f40 100644 --- a/base/download.jl +++ b/base/download.jl @@ -19,7 +19,7 @@ else global downloadcmd if downloadcmd === nothing for checkcmd in (:curl, :wget, :fetch) - if success(pipeline(`which $checkcmd`, DevNull)) + if success(pipeline(`which $checkcmd`, devnull)) downloadcmd = checkcmd break end diff --git a/base/error.jl b/base/error.jl index 04b7bee6eeb460..35cde7fc8afa90 100644 --- a/base/error.jl +++ b/base/error.jl @@ -105,24 +105,9 @@ Raises a `SystemError` for `errno` with the descriptive string `sysfunc` if `ift """ systemerror(p, b::Bool; extrainfo=nothing) = b ? throw(Main.Base.SystemError(string(p), Libc.errno(), extrainfo)) : nothing -## assertion functions and macros ## +## assertion macro ## -""" - assert(cond) - -Throw an [`AssertionError`](@ref) if `cond` is `false`. -Also available as the macro [`@assert`](@ref). - -!!! warning - An assert might be disabled at various optimization levels. - Assert should therefore only be used as a debugging tool - and not used for authentication verification (e.g. verifying passwords), - nor should side effects needed for the function to work correctly - be used inside of asserts. -""" -assert(x) = x ? nothing : throw(AssertionError()) - """ @assert cond [text] @@ -132,7 +117,7 @@ Message `text` is optionally displayed upon assertion failure. !!! warning An assert might be disabled at various optimization levels. Assert should therefore only be used as a debugging tool - and not used for authentication verification (e.g. verifying passwords), + and not used for authentication verification (e.g., verifying passwords), nor should side effects needed for the function to work correctly be used inside of asserts. @@ -218,7 +203,8 @@ function retry(f::Function; delays=ExponentialBackOff(), check=nothing) catch e done(delays, state) && rethrow(e) if check !== nothing - state, retry_or_not = check(state, e) + result = check(state, e) + state, retry_or_not = length(result) == 2 ? result : (state, result) retry_or_not || rethrow(e) end end diff --git a/base/errorshow.jl b/base/errorshow.jl index baec065806b11f..fb260ffb0e99c2 100644 --- a/base/errorshow.jl +++ b/base/errorshow.jl @@ -290,7 +290,7 @@ function showerror_ambiguous(io::IO, meth, f, args) end #Show an error by directly calling jl_printf. -#Useful in Base submodule __init__ functions where STDERR isn't defined yet. +#Useful in Base submodule __init__ functions where stderr isn't defined yet. function showerror_nostdio(err, msg::AbstractString) stderr_stream = ccall(:jl_stderr_stream, Ptr{Cvoid}, ()) ccall(:jl_printf, Cint, (Ptr{Cvoid},Cstring), stderr_stream, msg) diff --git a/base/essentials.jl b/base/essentials.jl index 6ead9541b318e0..b05fb0f5cb9d49 100644 --- a/base/essentials.jl +++ b/base/essentials.jl @@ -84,9 +84,9 @@ julia> convert(Int, 3.0) 3 julia> convert(Int, 3.5) -ERROR: InexactError: convert(Int64, 3.5) +ERROR: InexactError: Int64(Int64, 3.5) Stacktrace: - [1] convert(::Type{Int64}, ::Float64) at ./float.jl:703 +[...] ``` If `T` is a [`AbstractFloat`](@ref) or [`Rational`](@ref) type, @@ -414,22 +414,24 @@ Annotates the expression `blk` as a bounds checking block, allowing it to be eli its caller in order for `@inbounds` to have effect. # Examples -```jldoctest +```jldoctest; filter = r"Stacktrace:(\\n \\[[0-9]+\\].*)*" julia> @inline function g(A, i) @boundscheck checkbounds(A, i) return "accessing (\$A)[\$i]" - end - f1() = return g(1:2, -1) - f2() = @inbounds return g(1:2, -1) -f2 (generic function with 1 method) + end; + +julia> f1() = return g(1:2, -1); + +julia> f2() = @inbounds return g(1:2, -1); julia> f1() ERROR: BoundsError: attempt to access 2-element UnitRange{Int64} at index [-1] Stacktrace: - [1] throw_boundserror(::UnitRange{Int64}, ::Tuple{Int64}) at ./abstractarray.jl:435 - [2] checkbounds at ./abstractarray.jl:399 [inlined] + [1] throw_boundserror(::UnitRange{Int64}, ::Tuple{Int64}) at ./abstractarray.jl:455 + [2] checkbounds at ./abstractarray.jl:420 [inlined] [3] g at ./none:2 [inlined] [4] f1() at ./none:1 + [5] top-level scope julia> f2() "accessing (1:2)[-1]" diff --git a/base/exports.jl b/base/exports.jl index 8663b6e45d0a2d..b7d3241a7eeba1 100644 --- a/base/exports.jl +++ b/base/exports.jl @@ -40,7 +40,6 @@ export DenseMatrix, DenseVecOrMat, DenseVector, - DevNull, Dict, Dims, Enum, @@ -135,10 +134,11 @@ export ENV, LOAD_PATH, PROGRAM_FILE, - STDERR, - STDIN, - STDOUT, + stderr, + stdin, + stdout, VERSION, + devnull, # Mathematical constants Inf, @@ -370,6 +370,7 @@ export conj!, copy!, copyto!, + diff, cumprod, cumprod!, cumsum, @@ -417,7 +418,6 @@ export prod, promote_shape, range, - reducedim, reshape, reverse!, reverse, @@ -462,7 +462,6 @@ export findprev, occursin, match, - matchall, searchsorted, searchsortedfirst, searchsortedlast, @@ -527,7 +526,6 @@ export mapfoldl, mapfoldr, mapreduce, - mapreducedim, merge!, merge, pairs, @@ -561,19 +559,15 @@ export # strings ascii, - base, - bin, bitstring, bytes2hex, chomp, chop, codeunit, codeunits, - dec, digits, digits!, escape_string, - hex, hex2bytes, hex2bytes!, isalpha, @@ -596,7 +590,6 @@ export ncodeunits, ndigits, nextind, - oct, prevind, repeat, replace, @@ -618,6 +611,8 @@ export uppercase, # text output + IOContext, + displaysize, dump, print, println, @@ -706,6 +701,7 @@ export put!, isready, fetch, + bind, # missing values coalesce, @@ -719,7 +715,6 @@ export time_ns, # errors - assert, backtrace, catch_backtrace, error, @@ -796,39 +791,20 @@ export exit, ntuple, -# IP address stuff - @ip_str, - IPAddr, - IPv4, - IPv6, - # I/O and events - accept, - bind, close, - connect, countlines, eachline, eof, fd, fdio, flush, - getaddrinfo, - getalladdrinfo, - getnameinfo, gethostname, - getipaddr, - getpeername, - getsockname, htol, hton, - IOContext, - displaysize, ismarked, isopen, isreadonly, - listen, - listenany, ltoh, mark, bytesavailable, @@ -851,21 +827,18 @@ export redirect_stderr, redirect_stdin, redirect_stdout, - recv, - recvfrom, reset, seek, seekend, seekstart, - send, skip, skipchars, take!, truncate, unmark, + unsafe_read, + unsafe_write, write, - TCPSocket, - UDPSocket, # multimedia I/O AbstractDisplay, @@ -875,10 +848,10 @@ export istextmime, MIME, @MIME_str, - mimewritable, popdisplay, pushdisplay, redisplay, + showable, HTML, Text, @@ -950,7 +923,6 @@ export process_running, run, setenv, - spawn, success, withenv, @@ -966,9 +938,7 @@ export unsafe_copyto!, unsafe_load, unsafe_pointer_to_objref, - unsafe_read, unsafe_store!, - unsafe_write, # implemented in Random module rand, diff --git a/base/file.jl b/base/file.jl index b7e4d3b89c2827..7cd348e9432e9d 100644 --- a/base/file.jl +++ b/base/file.jl @@ -634,7 +634,7 @@ function readlink(path::AbstractString) if ret < 0 ccall(:uv_fs_req_cleanup, Cvoid, (Ptr{Cvoid},), req) uv_error("readlink", ret) - assert(false) + @assert false end tgt = unsafe_string(ccall(:jl_uv_fs_t_ptr, Ptr{Cchar}, (Ptr{Cvoid},), req)) ccall(:uv_fs_req_cleanup, Cvoid, (Ptr{Cvoid},), req) diff --git a/base/floatfuncs.jl b/base/floatfuncs.jl index a68d9d33abbbc0..249c4ee4204fd1 100644 --- a/base/floatfuncs.jl +++ b/base/floatfuncs.jl @@ -43,7 +43,8 @@ maxintfloat() = maxintfloat(Float64) isinteger(x::AbstractFloat) = (x - trunc(x) == 0) """ - round([T,] x, [digits, [base]], [r::RoundingMode]) + round([T,] x, [r::RoundingMode]) + round(x, [digits; base = 10]) Rounds `x` to an integer value according to the provided [`RoundingMode`](@ref), returning a value of the same type as `x`. When not @@ -71,14 +72,14 @@ rounded. [`InexactError`](@ref) if the value is not representable. `round(x, digits)` rounds to the specified number of digits after the decimal place (or -before if negative). `round(x, digits, base)` rounds using a base other than 10. +before if negative). `round(x, digits, base = base)` rounds using a base other than 10. # Examples ```jldoctest julia> round(pi, 2) 3.14 -julia> round(pi, 3, 2) +julia> round(pi, 3, base = 2) 3.125 ``` @@ -89,7 +90,7 @@ julia> round(pi, 3, 2) rounded to 1.2. # Examples - ```jldoctest + ```jldoctest; setup = :(using Printf) julia> x = 1.15 1.15 @@ -141,7 +142,7 @@ function _signif_og(x, digits, base) end """ - signif(x, digits, [base]) + signif(x, digits; base = 10) Rounds (in the sense of [`round`](@ref)) `x` so that there are `digits` significant digits, under a base `base` representation, default 10. @@ -151,11 +152,11 @@ base `base` representation, default 10. julia> signif(123.456, 2) 120.0 -julia> signif(357.913, 4, 2) +julia> signif(357.913, 4, base = 2) 352.0 ``` """ -function signif(x::Real, digits::Integer, base::Integer=10) +function signif(x::Real, digits::Integer; base::Integer = 10) digits < 1 && throw(DomainError(digits, "`digits` cannot be less than 1.")) x = float(x) @@ -171,7 +172,7 @@ end for f in (:round, :ceil, :floor, :trunc) @eval begin - function ($f)(x::Real, digits::Integer, base::Integer=10) + function ($f)(x::Real, digits::Integer; base::Integer = 10) x = float(x) og = convert(eltype(x),base)^digits r = ($f)(x * og) / og diff --git a/base/generator.jl b/base/generator.jl index e11ed1a3cfb796..39d2270c43d519 100644 --- a/base/generator.jl +++ b/base/generator.jl @@ -64,7 +64,7 @@ Given the type of an iterator, return one of the following values: * `SizeUnknown()` if the length (number of elements) cannot be determined in advance. * `HasLength()` if there is a fixed, finite length. * `HasShape{N}()` if there is a known length plus a notion of multidimensional shape (as for an array). - In this case `N` should give the number of dimensions, and the [`size`](@ref) function is valid + In this case `N` should give the number of dimensions, and the [`axes`](@ref) function is valid for the iterator. * `IsInfinite()` if the iterator yields values forever. diff --git a/base/gmp.jl b/base/gmp.jl index 62a4fe0dacb8cd..cd53081e6024b9 100644 --- a/base/gmp.jl +++ b/base/gmp.jl @@ -7,7 +7,7 @@ export BigInt import .Base: *, +, -, /, <, <<, >>, >>>, <=, ==, >, >=, ^, (~), (&), (|), xor, binomial, cmp, convert, div, divrem, factorial, fld, gcd, gcdx, lcm, mod, ndigits, promote_rule, rem, show, isqrt, string, powermod, - sum, trailing_zeros, trailing_ones, count_ones, base, tryparse_internal, + sum, trailing_zeros, trailing_ones, count_ones, tryparse_internal, bin, oct, dec, hex, isequal, invmod, prevpow2, nextpow2, ndigits0zpb, widen, signed, unsafe_trunc, trunc, iszero, isone, big, flipsign, signbit, hastypemax @@ -593,27 +593,16 @@ flipsign( x::BigInt, y::Integer) = signbit(y) ? -x : x flipsign( x::BigInt, y::BigInt) = signbit(y) ? -x : x # above method to resolving ambiguities with flipsign(::T, ::T) where T<:Signed -string(x::BigInt) = dec(x) show(io::IO, x::BigInt) = print(io, string(x)) -bin(n::BigInt) = base( 2, n) -oct(n::BigInt) = base( 8, n) -dec(n::BigInt) = base(10, n) -hex(n::BigInt) = base(16, n) - -bin(n::BigInt, pad::Int) = base( 2, n, pad) -oct(n::BigInt, pad::Int) = base( 8, n, pad) -dec(n::BigInt, pad::Int) = base(10, n, pad) -hex(n::BigInt, pad::Int) = base(16, n, pad) - -function base(b::Integer, n::BigInt, pad::Integer=1) - b < 0 && return base(Int(b), n, pad, (b>0) & (n.size<0)) - 2 <= b <= 62 || throw(ArgumentError("base must be 2 ≤ base ≤ 62, got $b")) +function string(n::BigInt; base::Integer = 10, pad::Integer = 1) + base < 0 && return Base._base(Int(base), n, pad, (base>0) & (n.size<0)) + 2 <= base <= 62 || throw(ArgumentError("base must be 2 ≤ base ≤ 62, got $base")) iszero(n) && pad < 1 && return "" - nd1 = ndigits(n, b) + nd1 = ndigits(n, base) nd = max(nd1, pad) sv = Base.StringVector(nd + isneg(n)) - GC.@preserve sv MPZ.get_str!(pointer(sv) + nd - nd1, b, n) + GC.@preserve sv MPZ.get_str!(pointer(sv) + nd - nd1, base, n) @inbounds for i = (1:nd-nd1) .+ isneg(n) sv[i] = '0' % UInt8 end diff --git a/base/grisu/grisu.jl b/base/grisu/grisu.jl index 953b3865141062..8c4ce7f52d586a 100644 --- a/base/grisu/grisu.jl +++ b/base/grisu/grisu.jl @@ -85,7 +85,7 @@ function _show(io::IO, x::AbstractFloat, mode, n::Int, typed, compact) write(io, '0') end write(io, (typed && isa(x,Float32)) ? 'f' : 'e') - write(io, dec(pt-1)) + write(io, string(pt - 1)) typed && isa(x,Float16) && write(io, ")") return elseif pt <= 0 @@ -160,7 +160,7 @@ function _print_shortest(io::IO, x::AbstractFloat, dot::Bool, mode, n::Int) # => ########e### unsafe_write(io, pdigits+0, len) write(io, 'e') - write(io, dec(e)) + write(io, string(e)) return elseif pt <= 0 # => 0.000######## diff --git a/base/initdefs.jl b/base/initdefs.jl index ea456907a17a84..b19eeaf2af3f78 100644 --- a/base/initdefs.jl +++ b/base/initdefs.jl @@ -46,7 +46,7 @@ const DEPOT_PATH = String[] function init_depot_path(BINDIR = Sys.BINDIR) if haskey(ENV, "JULIA_DEPOT_PATH") depots = split(ENV["JULIA_DEPOT_PATH"], Sys.iswindows() ? ';' : ':') - push!(empty!(DEPOT_PATH), map(expanduser, depots)) + append!(empty!(DEPOT_PATH), map(expanduser, depots)) else push!(DEPOT_PATH, joinpath(homedir(), ".julia")) end @@ -80,6 +80,7 @@ function show(io::IO, env::NamedEnv) end function parse_env(env::Union{String,SubString{String}}) + isempty(env) && return Any[] env == "@" && return CurrentEnv() env == "@!" && return CurrentEnv(create=true) if env[1] == '@' @@ -101,13 +102,12 @@ function and `using` and `import` statements to consider when loading code. """ const LOAD_PATH = Any[] -const LOAD_CACHE_PATH = String[] function parse_load_path(str::String) envs = Any[split(str, Sys.iswindows() ? ';' : ':');] for (i, env) in enumerate(envs) if '|' in env - envs[i] = [parse_env(e) for e in split(env, '|')] + envs[i] = Any[parse_env(e) for e in split(env, '|')] else envs[i] = parse_env(env) end @@ -123,17 +123,6 @@ function init_load_path(BINDIR = Sys.BINDIR) push!(LOAD_PATH, abspath(BINDIR, "..", "share", "julia", "site", vers)) end -function early_init() - Sys._early_init() - # make sure OpenBLAS does not set CPU affinity (#1070, #9639) - ENV["OPENBLAS_MAIN_FREE"] = get(ENV, "OPENBLAS_MAIN_FREE", - get(ENV, "GOTOBLAS_MAIN_FREE", "1")) - if Sys.CPU_CORES > 8 && !("OPENBLAS_NUM_THREADS" in keys(ENV)) && !("OMP_NUM_THREADS" in keys(ENV)) - # Prevent openblas from starting too many threads, unless/until specifically requested - ENV["OPENBLAS_NUM_THREADS"] = 8 - end -end - const atexit_hooks = [] """ @@ -149,8 +138,8 @@ function _atexit() try f() catch err - show(STDERR, err) - println(STDERR) + show(stderr, err) + println(stderr) end end end diff --git a/base/int.jl b/base/int.jl index 7acb3fef01ad86..51af020a7fc2ec 100644 --- a/base/int.jl +++ b/base/int.jl @@ -273,7 +273,8 @@ false """ &(x, y) -Bitwise and. +Bitwise and. Implements [three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic), +returning [`missing`](@ref) if one operand is `missing` and the other is `true`. # Examples ```jldoctest @@ -282,6 +283,12 @@ julia> 4 & 10 julia> 4 & 12 4 + +julia> true & missing +missing + +julia> false & missing +false ``` """ (&)(x::T, y::T) where {T<:BitInteger} = and_int(x, y) @@ -289,7 +296,8 @@ julia> 4 & 12 """ |(x, y) -Bitwise or. +Bitwise or. Implements [three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic), +returning [`missing`](@ref) if one operand is `missing` and the other is `false`. # Examples ```jldoctest @@ -298,6 +306,12 @@ julia> 4 | 10 julia> 4 | 1 5 + +julia> true | missing +true + +julia> false | missing +missing ``` """ (|)(x::T, y::T) where {T<:BitInteger} = or_int(x, y) @@ -316,10 +330,10 @@ julia> a = bswap(4) julia> bswap(a) 4 -julia> bin(1) +julia> string(1, base = 2) "1" -julia> bin(bswap(1)) +julia> string(bswap(1), base = 2) "100000000000000000000000000000000000000000000000000000000" ``` """ @@ -478,7 +492,7 @@ mod(x::Integer, ::Type{T}) where {T<:Integer} = rem(x, T) unsafe_trunc(::Type{T}, x::Integer) where {T<:Integer} = rem(x, T) """ - trunc([T,] x, [digits, [base]]) + trunc([T,] x, [digits; base = 10]) `trunc(x)` returns the nearest integral value of the same type as `x` whose absolute value is less than or equal to `x`. @@ -491,7 +505,7 @@ not representable. function trunc end """ - floor([T,] x, [digits, [base]]) + floor([T,] x, [digits; base = 10]) `floor(x)` returns the nearest integral value of the same type as `x` that is less than or equal to `x`. @@ -504,7 +518,7 @@ not representable. function floor end """ - ceil([T,] x, [digits, [base]]) + ceil([T,] x, [digits; base = 10]) `ceil(x)` returns the nearest integral value of the same type as `x` that is greater than or equal to `x`. @@ -703,7 +717,7 @@ if Core.sizeof(Int) == 4 return Int128(div(BigInt(x), BigInt(y))) end function div(x::UInt128, y::UInt128) - return UInt128(div(BigInt(x), BigInt(y))) + return UInt128(div(BigInt(x), BigInt(y)))::UInt128 end function rem(x::Int128, y::Int128) diff --git a/base/intfuncs.jl b/base/intfuncs.jl index 198e3417526b79..fd565cb7a9e0aa 100644 --- a/base/intfuncs.jl +++ b/base/intfuncs.jl @@ -558,7 +558,7 @@ julia> ndigits(12345) julia> ndigits(1022, 16) 3 -julia> base(16, 1022) +julia> string(1022, base = 16) "3fe" ``` """ @@ -566,8 +566,6 @@ ndigits(x::Integer, b::Integer, pad::Int=1) = max(pad, ndigits0z(x, b)) ## integer to string functions ## -string(x::Union{Int8,Int16,Int32,Int64,Int128}) = dec(x) - function bin(x::Unsigned, pad::Int, neg::Bool) i = neg + max(pad,sizeof(x)<<3-leading_zeros(x)) a = StringVector(i) @@ -620,8 +618,7 @@ end const base36digits = ['0':'9';'a':'z'] const base62digits = ['0':'9';'A':'Z';'a':'z'] - -function base(b::Int, x::Integer, pad::Int, neg::Bool) +function _base(b::Int, x::Integer, pad::Int, neg::Bool) (x >= 0) | (b < 0) || throw(DomainError(x, "For negative `x`, `b` must be negative.")) 2 <= abs(b) <= 62 || throw(ArgumentError("base must satisfy 2 ≤ abs(base) ≤ 62, got $b")) digits = abs(b) <= 36 ? base36digits : base62digits @@ -641,97 +638,42 @@ function base(b::Int, x::Integer, pad::Int, neg::Bool) String(a) end +split_sign(n::Integer) = unsigned(abs(n)), n < 0 +split_sign(n::Unsigned) = n, false + """ - base(base::Integer, n::Integer, pad::Integer=1) + string(n::Integer; base::Integer = 10, pad::Integer = 1) Convert an integer `n` to a string in the given `base`, optionally specifying a number of digits to pad to. ```jldoctest -julia> base(13,5,4) +julia> string(5, base = 13, pad = 4) "0005" -julia> base(5,13,4) +julia> string(13, base = 5, pad = 4) "0023" ``` """ -base(b::Integer, n::Integer, pad::Integer=1) = - base(Int(b), b > 0 ? unsigned(abs(n)) : convert(Signed, n), Int(pad), (b>0) & (n<0)) - -for sym in (:bin, :oct, :dec, :hex) - @eval begin - ($sym)(x::Unsigned, p::Int) = ($sym)(x,p,false) - ($sym)(x::Unsigned) = ($sym)(x,1,false) - ($sym)(x::Char, p::Int) = ($sym)(UInt32(x),p,false) - ($sym)(x::Char) = ($sym)(UInt32(x),1,false) - ($sym)(x::Integer, p::Int) = ($sym)(unsigned(abs(x)),p,x<0) - ($sym)(x::Integer) = ($sym)(unsigned(abs(x)),1,x<0) +function string(n::Integer; base::Integer = 10, pad::Integer = 1) + if base == 2 + (n_positive, neg) = split_sign(n) + bin(n_positive, pad, neg) + elseif base == 8 + (n_positive, neg) = split_sign(n) + oct(n_positive, pad, neg) + elseif base == 10 + (n_positive, neg) = split_sign(n) + dec(n_positive, pad, neg) + elseif base == 16 + (n_positive, neg) = split_sign(n) + hex(n_positive, pad, neg) + else + _base(Int(base), base > 0 ? unsigned(abs(n)) : convert(Signed, n), Int(pad), (base>0) & (n<0)) end end -""" - bin(n, pad::Int=1) - -Convert an integer to a binary string, optionally specifying a number of digits to pad to. - -```jldoctest -julia> bin(10,2) -"1010" - -julia> bin(10,8) -"00001010" -``` -""" -bin - -""" - hex(n, pad::Int=1) - -Convert an integer to a hexadecimal string, optionally specifying a number of -digits to pad to. - -```jldoctest -julia> hex(20) -"14" - -julia> hex(20, 3) -"014" -``` -""" -hex - -""" - oct(n, pad::Int=1) - -Convert an integer to an octal string, optionally specifying a number of digits -to pad to. - -```jldoctest -julia> oct(20) -"24" - -julia> oct(20, 3) -"024" -``` -""" -oct - -""" - dec(n, pad::Int=1) - -Convert an integer to a decimal string, optionally specifying a number of digits -to pad to. - -# Examples -```jldoctest -julia> dec(20) -"20" - -julia> dec(20, 3) -"020" -``` -""" -dec +string(b::Bool) = b ? "true" : "false" """ bitstring(n) @@ -749,11 +691,11 @@ julia> bitstring(2.2) """ function bitstring end -bitstring(x::Union{Bool,Int8,UInt8}) = bin(reinterpret(UInt8,x),8) -bitstring(x::Union{Int16,UInt16,Float16}) = bin(reinterpret(UInt16,x),16) -bitstring(x::Union{Char,Int32,UInt32,Float32}) = bin(reinterpret(UInt32,x),32) -bitstring(x::Union{Int64,UInt64,Float64}) = bin(reinterpret(UInt64,x),64) -bitstring(x::Union{Int128,UInt128}) = bin(reinterpret(UInt128,x),128) +bitstring(x::Union{Bool,Int8,UInt8}) = string(reinterpret(UInt8,x), pad = 8, base = 2) +bitstring(x::Union{Int16,UInt16,Float16}) = string(reinterpret(UInt16,x), pad = 16, base = 2) +bitstring(x::Union{Char,Int32,UInt32,Float32}) = string(reinterpret(UInt32,x), pad = 32, base = 2) +bitstring(x::Union{Int64,UInt64,Float64}) = string(reinterpret(UInt64,x), pad = 64, base = 2) +bitstring(x::Union{Int128,UInt128}) = string(reinterpret(UInt128,x), pad = 128, base = 2) """ digits([T<:Integer], n::Integer; base::T = 10, pad::Integer = 1) diff --git a/base/io.jl b/base/io.jl index 8e0f6e66bd3e34..6fc3dde5f0209d 100644 --- a/base/io.jl +++ b/base/io.jl @@ -315,9 +315,9 @@ julia> open("my_file.txt", "w") do io 57 julia> readuntil("my_file.txt", 'L') -"JuliaL" +"Julia" -julia> readuntil("my_file.txt", '.') +julia> readuntil("my_file.txt", '.', keep = true) "JuliaLang is a GitHub organization." julia> rm("my_file.txt") @@ -326,10 +326,10 @@ julia> rm("my_file.txt") readuntil(filename::AbstractString, args...; kw...) = open(io->readuntil(io, args...; kw...), filename) """ - readline(io::IO=STDIN; keep::Bool=false) + readline(io::IO=stdin; keep::Bool=false) readline(filename::AbstractString; keep::Bool=false) -Read a single line of text from the given I/O stream or file (defaults to `STDIN`). +Read a single line of text from the given I/O stream or file (defaults to `stdin`). When reading from a file, the text is assumed to be encoded in UTF-8. Lines in the input end with `'\\n'` or `"\\r\\n"` or the end of an input stream. When `keep` is false (as it is by default), these trailing newline characters are removed from the @@ -362,7 +362,7 @@ function readline(filename::AbstractString; chomp=nothing, keep::Bool=false) end end -function readline(s::IO=STDIN; chomp=nothing, keep::Bool=false) +function readline(s::IO=stdin; chomp=nothing, keep::Bool=false) if chomp !== nothing keep = !chomp depwarn("The `chomp=$chomp` argument to `readline` is deprecated in favor of `keep=$keep`.", :readline) @@ -379,7 +379,7 @@ function readline(s::IO=STDIN; chomp=nothing, keep::Bool=false) end """ - readlines(io::IO=STDIN; keep::Bool=false) + readlines(io::IO=stdin; keep::Bool=false) readlines(filename::AbstractString; keep::Bool=false) Read all lines of an I/O stream or a file as a vector of strings. Behavior is @@ -411,7 +411,7 @@ function readlines(filename::AbstractString; kw...) readlines(f; kw...) end end -readlines(s=STDIN; kw...) = collect(eachline(s; kw...)) +readlines(s=stdin; kw...) = collect(eachline(s; kw...)) ## byte-order mark, ntoh & hton ## @@ -839,12 +839,12 @@ struct EachLine ondone::Function keep::Bool - EachLine(stream::IO=STDIN; ondone::Function=()->nothing, keep::Bool=false) = + EachLine(stream::IO=stdin; ondone::Function=()->nothing, keep::Bool=false) = new(stream, ondone, keep) end """ - eachline(io::IO=STDIN; keep::Bool=false) + eachline(io::IO=stdin; keep::Bool=false) eachline(filename::AbstractString; keep::Bool=false) Create an iterable `EachLine` object that will yield each line from an I/O stream @@ -868,7 +868,7 @@ JuliaLang is a GitHub organization. It has many members. julia> rm("my_file.txt"); ``` """ -function eachline(stream::IO=STDIN; chomp=nothing, keep::Bool=false) +function eachline(stream::IO=stdin; chomp=nothing, keep::Bool=false) if chomp !== nothing keep = !chomp depwarn("The `chomp=$chomp` argument to `eachline` is deprecated in favor of `keep=$keep`.", :eachline) @@ -1003,7 +1003,7 @@ end with the EOL, matching the length returned by [`eachline`](@ref) and [`readl # Examples ```jldoctest -julia> io = IOBuffer("JuliaLang is a GitHub organization.\n"); +julia> io = IOBuffer("JuliaLang is a GitHub organization.\\n"); julia> countlines(io) 1 @@ -1014,7 +1014,7 @@ julia> countlines(io) 1 julia> countlines(io, eol = '.') -1 +0 ``` """ function countlines(io::IO; eol::Char='\n') diff --git a/base/iobuffer.jl b/base/iobuffer.jl index b19b9b3a782bd6..92ec5f386fa3c0 100644 --- a/base/iobuffer.jl +++ b/base/iobuffer.jl @@ -326,11 +326,11 @@ Obtain the contents of an `IOBuffer` as an array, without copying. Afterwards, t ```jldoctest julia> io = IOBuffer(); -julia> write(io, "JuliaLang is a GitHub organization.", "It has many members.") -55 +julia> write(io, "JuliaLang is a GitHub organization.", " It has many members.") +56 julia> String(take!(io)) -"JuliaLang is a GitHub organization.It has many members." +"JuliaLang is a GitHub organization. It has many members." ``` """ function take!(io::GenericIOBuffer) diff --git a/base/iostream.jl b/base/iostream.jl index 611a8bc303b560..b8de905c101c9d 100644 --- a/base/iostream.jl +++ b/base/iostream.jl @@ -48,7 +48,7 @@ iswritable(s::IOStream) = ccall(:ios_get_writable, Cint, (Ptr{Cvoid},), s.ios)!= isreadable(s::IOStream) = ccall(:ios_get_readable, Cint, (Ptr{Cvoid},), s.ios)!=0 """ - truncate(file,n) + truncate(file, n) Resize the file or buffer given by the first argument to exactly `n` bytes, filling previously unallocated space with '\\0' if the file or buffer is grown. @@ -73,7 +73,7 @@ julia> write(io, "JuliaLang is a GitHub organization."); julia> truncate(io, 40); julia> String(take!(io)) -"JuliaLang is a GitHub organization.\0\0\0\0\0" +"JuliaLang is a GitHub organization.\\0\\0\\0\\0\\0" ``` """ function truncate(s::IOStream, n::Integer) @@ -354,8 +354,8 @@ descriptor upon completion. # Examples ```jldoctest julia> open("myfile.txt", "w") do io - write(io, "Hello world!"); - end + write(io, "Hello world!") + end; julia> open(f->read(f, String), "myfile.txt") "Hello world!" diff --git a/base/irrationals.jl b/base/irrationals.jl index 2d9795b438b6bf..986bd9e5753447 100644 --- a/base/irrationals.jl +++ b/base/irrationals.jl @@ -22,7 +22,8 @@ show(io::IO, x::Irrational{sym}) where {sym} = print(io, "$sym = $(string(float( promote_rule(::Type{<:AbstractIrrational}, ::Type{Float16}) = Float16 promote_rule(::Type{<:AbstractIrrational}, ::Type{Float32}) = Float32 promote_rule(::Type{<:AbstractIrrational}, ::Type{<:AbstractIrrational}) = Float64 -promote_rule(::Type{<:AbstractIrrational}, ::Type{T}) where {T<:Number} = promote_type(Float64, T) +promote_rule(::Type{<:AbstractIrrational}, ::Type{T}) where {T<:Real} = promote_type(Float64, T) +promote_rule(::Type{S}, ::Type{T}) where {S<:AbstractIrrational,T<:Number} = promote_type(promote_type(S, real(T)), T) AbstractFloat(x::AbstractIrrational) = Float64(x) Float16(x::AbstractIrrational) = Float16(Float32(x)) diff --git a/base/iterators.jl b/base/iterators.jl index 2f69d743462080..9ddec3c59f5dbc 100644 --- a/base/iterators.jl +++ b/base/iterators.jl @@ -11,7 +11,8 @@ const Base = parentmodule(@__MODULE__) using .Base: @inline, Pair, AbstractDict, IndexLinear, IndexCartesian, IndexStyle, AbstractVector, Vector, tail, tuple_type_head, tuple_type_tail, tuple_type_cons, SizeUnknown, HasLength, HasShape, - IsInfinite, EltypeUnknown, HasEltype, OneTo, @propagate_inbounds, Generator, AbstractRange + IsInfinite, EltypeUnknown, HasEltype, OneTo, @propagate_inbounds, Generator, AbstractRange, + linearindices, (:), |, +, -, !==, ! import .Base: start, done, next, first, last, @@ -375,7 +376,7 @@ See [`Base.filter`](@ref) for an eager implementation of filtering for arrays. # Examples ```jldoctest julia> f = Iterators.filter(isodd, [1, 2, 3, 4, 5]) -Base.Iterators.Filter{Base.#isodd,Array{Int64,1}}(isodd, [1, 2, 3, 4, 5]) +Base.Iterators.Filter{typeof(isodd),Array{Int64,1}}(isodd, [1, 2, 3, 4, 5]) julia> foreach(println, f) 1 @@ -1064,19 +1065,23 @@ function reset!(s::Stateful{T,VS}, itr::T) where {T,VS} s end -# Try to find an appropriate type for the (value, state tuple), -# by doing a recursive unrolling of the iteration protocol up to -# fixpoint. -function fixpoint_iter_type(itrT::Type, valT::Type, stateT::Type) - nextvalstate = Base._return_type(next, Tuple{itrT, stateT}) - nextvalstate <: Tuple{Any, Any} || return Any - nextvalstate = Tuple{ - typejoin(valT, fieldtype(nextvalstate, 1)), - typejoin(stateT, fieldtype(nextvalstate, 2))} - return (Tuple{valT, stateT} == nextvalstate ? nextvalstate : - fixpoint_iter_type(itrT, - fieldtype(nextvalstate, 1), - fieldtype(nextvalstate, 2))) +if Base === Core.Compiler + fixpoint_iter_type(a, b, c) = Any +else + # Try to find an appropriate type for the (value, state tuple), + # by doing a recursive unrolling of the iteration protocol up to + # fixpoint. + function fixpoint_iter_type(itrT::Type, valT::Type, stateT::Type) + nextvalstate = Base._return_type(next, Tuple{itrT, stateT}) + nextvalstate <: Tuple{Any, Any} || return Any + nextvalstate = Tuple{ + typejoin(valT, fieldtype(nextvalstate, 1)), + typejoin(stateT, fieldtype(nextvalstate, 2))} + return (Tuple{valT, stateT} == nextvalstate ? nextvalstate : + fixpoint_iter_type(itrT, + fieldtype(nextvalstate, 1), + fieldtype(nextvalstate, 2))) + end end convert(::Type{Stateful}, itr) = Stateful(itr) diff --git a/base/libuv.jl b/base/libuv.jl index 2cdcb5c961348f..3012755e0982df 100644 --- a/base/libuv.jl +++ b/base/libuv.jl @@ -88,40 +88,37 @@ end function reinit_stdio() global uv_jl_alloc_buf = cfunction(uv_alloc_buf, Cvoid, Tuple{Ptr{Cvoid}, Csize_t, Ptr{Cvoid}}) global uv_jl_readcb = cfunction(uv_readcb, Cvoid, Tuple{Ptr{Cvoid}, Cssize_t, Ptr{Cvoid}}) - global uv_jl_connectioncb = cfunction(uv_connectioncb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) - global uv_jl_connectcb = cfunction(uv_connectcb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) global uv_jl_writecb_task = cfunction(uv_writecb_task, Cvoid, Tuple{Ptr{Cvoid}, Cint}) - global uv_jl_getaddrinfocb = cfunction(uv_getaddrinfocb, Cvoid, Tuple{Ptr{Cvoid}, Cint, Ptr{Cvoid}}) - global uv_jl_getnameinfocb = cfunction(uv_getnameinfocb, Cvoid, Tuple{Ptr{Cvoid}, Cint, Cstring, Cstring}) - global uv_jl_recvcb = cfunction(uv_recvcb, Cvoid, Tuple{Ptr{Cvoid}, Cssize_t, Ptr{Cvoid}, Ptr{Cvoid}, Cuint}) - global uv_jl_sendcb = cfunction(uv_sendcb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) global uv_jl_return_spawn = cfunction(uv_return_spawn, Cvoid, Tuple{Ptr{Cvoid}, Int64, Int32}) global uv_jl_asynccb = cfunction(uv_asynccb, Cvoid, Tuple{Ptr{Cvoid}}) global uv_jl_timercb = cfunction(uv_timercb, Cvoid, Tuple{Ptr{Cvoid}}) global uv_eventloop = ccall(:jl_global_event_loop, Ptr{Cvoid}, ()) - global STDIN = init_stdio(ccall(:jl_stdin_stream, Ptr{Cvoid}, ())) - global STDOUT = init_stdio(ccall(:jl_stdout_stream, Ptr{Cvoid}, ())) - global STDERR = init_stdio(ccall(:jl_stderr_stream, Ptr{Cvoid}, ())) + global stdin = init_stdio(ccall(:jl_stdin_stream, Ptr{Cvoid}, ())) + global stdout = init_stdio(ccall(:jl_stdout_stream, Ptr{Cvoid}, ())) + global stderr = init_stdio(ccall(:jl_stderr_stream, Ptr{Cvoid}, ())) + global STDIN = stdin + global STDOUT = stdout + global STDERR = stderr end """ - STDIN + stdin Global variable referring to the standard input stream. """ -:STDIN +:stdin """ - STDOUT + stdout Global variable referring to the standard out stream. """ -:STDOUT +:stdout """ - STDERR + stderr Global variable referring to the standard error stream. """ -:STDERR +:stderr diff --git a/base/loading.jl b/base/loading.jl index d1056ee208623d..0723313515a324 100644 --- a/base/loading.jl +++ b/base/loading.jl @@ -336,7 +336,7 @@ function manifest_deps_get(env::String, where::PkgId, name::String)::Union{Bool, @assert where.uuid !== nothing project_file = env_project_file(env) if project_file isa String - proj_name, proj_uuid = project_file_name_and_uuid(project_file, where.name) + proj_name, proj_uuid = project_file_name_uuid_path(project_file, where.name) if proj_name == where.name && proj_uuid == where.uuid # `where` matches the project, use deps as manifest found_or_uuid = explicit_project_deps_get(project_file, name) @@ -355,6 +355,8 @@ end function manifest_uuid_path(env::String, pkg::PkgId)::Union{Nothing,String} project_file = env_project_file(env) if project_file isa String + proj_name, proj_uuid, path = project_file_name_uuid_path(project_file, pkg.name) + proj_name == pkg.name && proj_uuid == pkg.uuid && return path manifest_file = project_file_manifest_path(project_file) if isfile_casesensitive(manifest_file) return explicit_manifest_uuid_path(manifest_file, pkg) @@ -380,19 +382,23 @@ const re_manifest_to_string = r"^\s*manifest\s*=\s*\"(.*)\"\s*(?:#|$)" const re_deps_to_any = r"^\s*deps\s*=\s*(.*?)\s*(?:#|$)" # find project file's top-level UUID entry (or nothing) -function project_file_name_and_uuid(project_file::String, - name::Union{Nothing,String}=nothing)::Tuple{Union{Nothing,String},UUID} +function project_file_name_uuid_path(project_file::String, + name::String)::Tuple{String,UUID,String} open(project_file) do io uuid = dummy_uuid(project_file) + path = joinpath("src", "$name.jl") for line in eachline(io) contains(line, re_section) && break if (m = match(re_name_to_string, line)) != nothing name = String(m.captures[1]) elseif (m = match(re_uuid_to_string, line)) != nothing uuid = UUID(m.captures[1]) + elseif (m = match(re_path_to_string, line)) != nothing + path = String(m.captures[1]) end end - return name, uuid + path = joinpath(dirname(project_file), path) + return name, uuid, path end end @@ -433,11 +439,11 @@ end # and project file if one exists (or nothing if not) function entry_point_and_project_file(dir::String, name::String)::Union{Tuple{Nothing,Nothing},Tuple{String,Nothing},Tuple{String,String}} for entry in ("", joinpath(name, "src"), joinpath("$name.jl", "src")) - path = joinpath(dir, entry, "$name.jl") + path = normpath(joinpath(dir, entry, "$name.jl")) isfile_casesensitive(path) || continue if !isempty(entry) for proj in project_names - project_file = joinpath(dir, dirname(entry), proj) + project_file = normpath(joinpath(dir, dirname(entry), proj)) isfile_casesensitive(project_file) || continue return path, project_file end @@ -449,8 +455,8 @@ end # given a path and a name, return the entry point function entry_path(path::String, name::String)::Union{Nothing,String} - isfile_casesensitive(path) && return path - path = joinpath(path, "src", "$name.jl") + isfile_casesensitive(path) && return normpath(path) + path = normpath(joinpath(path, "src", "$name.jl")) isfile_casesensitive(path) ? path : nothing end entry_path(::Nothing, name::String) = nothing @@ -515,8 +521,8 @@ end function explicit_manifest_deps_get(manifest_file::String, where::UUID, name::String)::Union{Bool,UUID} open(manifest_file) do io + uuid = deps = nothing state = :other - uuid = deps = path = nothing for line in eachline(io) if contains(line, re_array_of_tables) uuid == where && break @@ -525,8 +531,6 @@ function explicit_manifest_deps_get(manifest_file::String, where::UUID, name::St elseif state == :stanza if (m = match(re_uuid_to_string, line)) != nothing uuid = UUID(m.captures[1]) - elseif (m = match(re_path_to_string, line)) != nothing - path = String(m.captures[1]) elseif (m = match(re_deps_to_any, line)) != nothing deps = String(m.captures[1]) elseif contains(line, re_subsection_deps) @@ -541,15 +545,7 @@ function explicit_manifest_deps_get(manifest_file::String, where::UUID, name::St end end uuid == where || return false - if deps == nothing - (state == :deps || path == nothing) && return true - path = abspath(dirname(manifest_file), path) - project_file = env_project_file(path) - project_file isa String && - return explicit_project_deps_get(project_file, name) - pkg = identify_package(name) - return pkg == nothing || pkg.uuid - end + deps == nothing && return true # TODO: handle inline table syntax if deps[1] != '[' || deps[end] != ']' @warn "Unexpected TOML deps format:\n$deps" @@ -588,7 +584,7 @@ function explicit_manifest_uuid_path(manifest_file::String, pkg::PkgId)::Union{N slug = joinpath(name, version_slug(uuid, hash)) for depot in DEPOT_PATH path = abspath(depot, "packages", slug) - ispath(path) && return path + ispath(path) && return entry_path(path, name) end end end @@ -602,7 +598,7 @@ end function implicit_project_deps_get(dir::String, name::String)::Union{Bool,UUID} path, project_file = entry_point_and_project_file(dir, name) project_file == nothing && return path != nothing - proj_name, proj_uuid = project_file_name_and_uuid(project_file, name) + proj_name, proj_uuid = project_file_name_uuid_path(project_file, name) proj_name == name && proj_uuid end @@ -615,7 +611,7 @@ function implicit_manifest_deps_get(dir::String, where::PkgId, name::String)::Un @assert where.uuid !== nothing project_file = entry_point_and_project_file(dir, where.name)[2] project_file === nothing && return false - proj_name, proj_uuid = project_file_name_and_uuid(project_file, where.name) + proj_name, proj_uuid = project_file_name_uuid_path(project_file, where.name) proj_name == where.name && proj_uuid == where.uuid || return false found_or_uuid = explicit_project_deps_get(project_file, name) found_or_uuid isa UUID ? found_or_uuid : true @@ -626,7 +622,7 @@ function implicit_manifest_uuid_path(dir::String, pkg::PkgId)::Union{Nothing,Str path, project_file = entry_point_and_project_file(dir, pkg.name) pkg.uuid === nothing && project_file === nothing && return path pkg.uuid === nothing || project_file === nothing && return nothing - proj_name, proj_uuid = project_file_name_and_uuid(project_file, pkg.name) + proj_name, proj_uuid = project_file_name_uuid_path(project_file, pkg.name) proj_name == pkg.name && proj_uuid == pkg.uuid ? path : nothing end @@ -638,15 +634,17 @@ function find_source_file(path::AbstractString) return isfile(base_path) ? base_path : nothing end -cache_file_entry(pkg::PkgId) = - pkg.uuid === nothing ? "$(pkg.name).ji" : - joinpath(pkg.name, "$(package_slug(pkg.uuid)).ji") +cache_file_entry(pkg::PkgId) = joinpath( + "compiled", + "v$(VERSION.major).$(VERSION.minor)", + pkg.uuid === nothing ? "$(pkg.name).ji" : joinpath(pkg.name, "$(package_slug(pkg.uuid)).ji") +) function find_all_in_cache_path(pkg::PkgId) paths = String[] - suffix = cache_file_entry(pkg) - for prefix in LOAD_CACHE_PATH - path = joinpath(prefix, suffix) + entry = cache_file_entry(pkg) + for depot in DEPOT_PATH + path = joinpath(depot, entry) isfile_casesensitive(path) && push!(paths, path) end return paths @@ -1113,8 +1111,8 @@ evalfile(path::AbstractString, args::Vector) = evalfile(path, String[args...]) function create_expr_cache(input::String, output::String, concrete_deps::typeof(_concrete_dependencies), uuid::Union{Nothing,UUID}) rm(output, force=true) # Remove file if it exists code_object = """ - while !eof(STDIN) - code = readuntil(STDIN, '\\0') + while !eof(stdin) + code = readuntil(stdin, '\\0') eval(Main, Meta.parse(code)) end """ @@ -1122,8 +1120,8 @@ function create_expr_cache(input::String, output::String, concrete_deps::typeof( --output-ji $output --output-incremental=yes --startup-file=no --history-file=no --warn-overwrite=yes --color=$(have_color ? "yes" : "no") - --eval $code_object`), stderr=STDERR), - "w", STDOUT) + --eval $code_object`), stderr=stderr), + "w", stdout) in = io.in try write(in, """ @@ -1133,8 +1131,6 @@ function create_expr_cache(input::String, output::String, concrete_deps::typeof( append!(Base.LOAD_PATH, $(repr(LOAD_PATH, context=:module=>nothing))) empty!(Base.DEPOT_PATH) append!(Base.DEPOT_PATH, $(repr(DEPOT_PATH))) - empty!(Base.LOAD_CACHE_PATH) - append!(Base.LOAD_CACHE_PATH, $(repr(LOAD_CACHE_PATH))) empty!(Base.DL_LOAD_PATH) append!(Base.DL_LOAD_PATH, $(repr(DL_LOAD_PATH))) Base._track_dependencies[] = true @@ -1173,11 +1169,9 @@ end """ Base.compilecache(module::PkgId) -Creates a precompiled cache file for -a module and all of its dependencies. +Creates a precompiled cache file for a module and all of its dependencies. This can be used to reduce package load times. Cache files are stored in -`LOAD_CACHE_PATH[1]`, which defaults to `~/.julia/lib/VERSION`. See -[Module initialization and precompilation](@ref) +`DEPOT_PATH[1]/compiled`. See [Module initialization and precompilation](@ref) for important notes. """ function compilecache(pkg::PkgId) @@ -1186,7 +1180,7 @@ function compilecache(pkg::PkgId) path = locate_package(pkg) path === nothing && throw(ArgumentError("$name not found in path")) # decide where to put the resulting cache file - cachefile = abspath(LOAD_CACHE_PATH[1], cache_file_entry(pkg)) + cachefile = abspath(DEPOT_PATH[1], cache_file_entry(pkg)) cachepath = dirname(cachefile) isdir(cachepath) || mkpath(cachepath) # build up the list of modules that we want the precompile process to preserve diff --git a/base/logging.jl b/base/logging.jl index 83d1a3ed15f7ab..1538ea64f0b9a2 100644 --- a/base/logging.jl +++ b/base/logging.jl @@ -237,7 +237,7 @@ function log_record_id(_module, level, message_ex) # as we increment h to resolve any collisions. h = hash(string(modname, level, message_ex)) % (1<<31) while true - id = Symbol(modname, '_', hex(h, 8)) + id = Symbol(modname, '_', string(h, base = 16, pad = 8)) # _log_record_ids is a registry of log record ids for use during # compilation, to ensure uniqueness of ids. Note that this state will # only persist during module compilation so it will be empty when a @@ -297,7 +297,7 @@ function logmsg_code(_module, file, line, level, message, exs...) quote level = $level std_level = convert(LogLevel, level) - if std_level >= _min_enabled_level[] + if std_level >= getindex(_min_enabled_level) logstate = current_logstate() if std_level >= logstate.min_enabled_level logger = logstate.logger @@ -335,10 +335,10 @@ end try # Give up and write to STDERR, in three independent calls to # increase the odds of it getting through. - print(STDERR, "Exception handling log message: ") - println(STDERR, err) - println(STDERR, " module=$_module file=$filepath line=$line") - println(STDERR, " Second exception: ", err2) + print(stderr, "Exception handling log message: ") + println(stderr, err) + println(stderr, " module=$_module file=$filepath line=$line") + println(stderr, " Second exception: ", err2) catch end end @@ -367,8 +367,6 @@ end LogState(logger) = LogState(LogLevel(min_enabled_level(logger)), logger) -_global_logstate = LogState(NullLogger()) - function current_logstate() logstate = current_task().logstate (logstate != nothing ? logstate : _global_logstate)::LogState @@ -451,7 +449,7 @@ current_logger() = current_logstate().logger #------------------------------------------------------------------------------- # SimpleLogger """ - SimpleLogger(stream=STDERR, min_level=Info) + SimpleLogger(stream=stderr, min_level=Info) Simplistic logger for logging all messages with level greater than or equal to `min_level` to `stream`. @@ -461,7 +459,7 @@ struct SimpleLogger <: AbstractLogger min_level::LogLevel message_limits::Dict{Any,Int} end -SimpleLogger(stream::IO=STDERR, level=Info) = SimpleLogger(stream, level, Dict{Any,Int}()) +SimpleLogger(stream::IO=stderr, level=Info) = SimpleLogger(stream, level, Dict{Any,Int}()) shouldlog(logger::SimpleLogger, level, _module, group, id) = get(logger.message_limits, id, 1) > 0 @@ -493,4 +491,6 @@ function handle_message(logger::SimpleLogger, level, message, _module, group, id nothing end +_global_logstate = LogState(SimpleLogger(Core.stderr, CoreLogging.Info)) + end # CoreLogging diff --git a/base/math.jl b/base/math.jl index fda5b9bfe92a3b..9fe4c3427d9ddd 100644 --- a/base/math.jl +++ b/base/math.jl @@ -728,19 +728,6 @@ end @inline ^(x::Float16, y::Integer) = Float16(Float32(x) ^ y) @inline literal_pow(::typeof(^), x::Float16, ::Val{p}) where {p} = Float16(literal_pow(^,Float32(x),Val(p))) -function angle_restrict_symm(theta) - P1 = 4 * 7.8539812564849853515625e-01 - P2 = 4 * 3.7748947079307981766760e-08 - P3 = 4 * 2.6951514290790594840552e-15 - - y = 2*floor(theta/(2*pi)) - r = ((theta - y*P1) - y*P2) - y*P3 - if (r > pi) - r -= (2*pi) - end - return r -end - ## rem2pi-related calculations ## function add22condh(xh::Float64, xl::Float64, yh::Float64, yl::Float64) diff --git a/base/meta.jl b/base/meta.jl index 866ec0c2428f75..62b7b89a2dde94 100644 --- a/base/meta.jl +++ b/base/meta.jl @@ -23,7 +23,7 @@ isexpr(ex, head, n::Int) = isexpr(ex, head) && length(ex.args) == n # ---- show_sexpr: print an AST as an S-expression ---- -show_sexpr(ex) = show_sexpr(STDOUT, ex) +show_sexpr(ex) = show_sexpr(stdout, ex) show_sexpr(io::IO, ex) = show_sexpr(io, ex, 0) show_sexpr(io::IO, ex, indent::Int) = show(io, ex) @@ -152,7 +152,7 @@ julia> Meta.parse("x = ") :($(Expr(:incomplete, "incomplete: premature end of input"))) julia> Meta.parse("1.0.2") -ERROR: ParseError("invalid numeric constant \\\"1.0.\\\"") +ERROR: Base.Meta.ParseError("invalid numeric constant \\\"1.0.\\\"") Stacktrace: [...] diff --git a/base/missing.jl b/base/missing.jl index 3c4b3760d623b8..95d40f3eea3ec3 100644 --- a/base/missing.jl +++ b/base/missing.jl @@ -64,15 +64,15 @@ isless(::Any, ::Missing) = true # Unary operators/functions for f in (:(!), :(~), :(+), :(-), :(identity), :(zero), :(one), :(oneunit), - :(abs), :(abs2), :(sign), + :(abs), :(abs2), :(sign), :(real), :(imag), :(acos), :(acosh), :(asin), :(asinh), :(atan), :(atanh), :(sin), :(sinh), :(cos), :(cosh), :(tan), :(tanh), :(exp), :(exp2), :(expm1), :(log), :(log10), :(log1p), - :(log2), :(exponent), :(sqrt), :(gamma), :(lgamma), + :(log2), :(Math.exponent), :(sqrt), :(Math.gamma), :(Math.lgamma), :(iseven), :(ispow2), :(isfinite), :(isinf), :(isodd), :(isinteger), :(isreal), :(isnan), :(isempty), - :(iszero), :(transpose), :(float)) - @eval Math.$(f)(::Missing) = missing + :(iszero), :(transpose), :(adjoint), :(float), :(conj)) + @eval $(f)(::Missing) = missing end for f in (:(Base.zero), :(Base.one), :(Base.oneunit)) @@ -159,14 +159,13 @@ julia> sum(skipmissing([1, missing, 2])) julia> collect(skipmissing([1, missing, 2])) 2-element Array{Int64,1}: -1 -2 + 1 + 2 julia> collect(skipmissing([1 missing; 2 missing])) 2-element Array{Int64,1}: -1 -2 - + 1 + 2 ``` """ skipmissing(itr) = SkipMissing(itr) diff --git a/base/multidimensional.jl b/base/multidimensional.jl index 5517f449c0e5c4..130330f67bbe32 100644 --- a/base/multidimensional.jl +++ b/base/multidimensional.jl @@ -112,10 +112,6 @@ module IteratorsMD @inline max(index1::CartesianIndex{N}, index2::CartesianIndex{N}) where {N} = CartesianIndex{N}(map(max, index1.I, index2.I)) - @inline (+)(i::Integer, index::CartesianIndex) = index+i - @inline (+)(index::CartesianIndex{N}, i::Integer) where {N} = CartesianIndex{N}(map(x->x+i, index.I)) - @inline (-)(index::CartesianIndex{N}, i::Integer) where {N} = CartesianIndex{N}(map(x->x-i, index.I)) - @inline (-)(i::Integer, index::CartesianIndex{N}) where {N} = CartesianIndex{N}(map(x->i-x, index.I)) @inline (*)(a::Integer, index::CartesianIndex{N}) where {N} = CartesianIndex{N}(map(x->a*x, index.I)) @inline (*)(index::CartesianIndex, a::Integer) = *(a,index) @@ -195,8 +191,8 @@ module IteratorsMD julia> CartesianIndices(fill(1, (2,3))) 2×3 CartesianIndices{2,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}}: - CartesianIndex(1, 1) CartesianIndex(1, 2) CartesianIndex(1, 3) - CartesianIndex(2, 1) CartesianIndex(2, 2) CartesianIndex(2, 3) + CartesianIndex(1, 1) CartesianIndex(1, 2) CartesianIndex(1, 3) + CartesianIndex(2, 1) CartesianIndex(2, 2) CartesianIndex(2, 3) ``` ## Conversion between linear and cartesian indices @@ -279,7 +275,7 @@ module IteratorsMD @inline function start(iter::CartesianIndices) iterfirst, iterlast = first(iter), last(iter) if any(map(>, iterfirst.I, iterlast.I)) - return iterlast+1 + return iterlast+one(iterlast) end iterfirst end @@ -395,9 +391,9 @@ module IteratorsMD ```jldoctest subarray julia> linear = LinearIndices(1:3,1:2) LinearIndices{2,Tuple{UnitRange{Int64},UnitRange{Int64}}} with indices 1:3×1:2: - 1 4 - 2 5 - 3 6 + 1 4 + 2 5 + 3 6 julia> linear[1,2] 4 @@ -675,21 +671,19 @@ _iterable(v) = Iterators.repeated(v) @generated function _unsafe_setindex!(::IndexStyle, A::AbstractArray, x, I::Union{Real,AbstractArray}...) N = length(I) quote - X = _iterable(x) - @nexprs $N d->(I_d = I[d]) + x′ = _iterable(unalias(A, x)) + @nexprs $N d->(I_d = unalias(A, I[d])) idxlens = @ncall $N index_lengths I - @ncall $N setindex_shape_check X (d->idxlens[d]) - Xs = start(X) + @ncall $N setindex_shape_check x′ (d->idxlens[d]) + xs = start(x′) @inbounds @nloops $N i d->I_d begin - v, Xs = next(X, Xs) + v, xs = next(x′, xs) @ncall $N setindex! A v i end A end end -## - # see discussion in #18364 ... we try not to widen type of the resulting array # from cumsum or cumprod, but in some cases (+, Bool) we may not have a choice. rcum_promote_type(op, ::Type{T}, ::Type{S}) where {T,S<:Number} = promote_op(op, T, S) @@ -737,9 +731,9 @@ function accumulate_pairwise(op, v::AbstractVector{T}) where T return accumulate_pairwise!(op, out, v) end -function cumsum!(out, v::AbstractVector, dim::Integer) +function cumsum!(out, v::AbstractVector; dims::Integer=1) # we dispatch on the possibility of numerical stability issues - _cumsum!(out, v, dim, ArithmeticStyle(eltype(out))) + _cumsum!(out, v, dims, ArithmeticStyle(eltype(out))) end function _cumsum!(out, v, dim, ::ArithmeticRounds) @@ -753,9 +747,9 @@ function _cumsum!(out, v, dim, ::ArithmeticStyle) end """ - cumsum(A, dim::Integer) + cumsum(A; dims::Integer) -Cumulative sum along the dimension `dim`. See also [`cumsum!`](@ref) +Cumulative sum along the dimension `dims`. See also [`cumsum!`](@ref) to use a preallocated output array, both for performance and to control the precision of the output (e.g. to avoid overflow). @@ -766,20 +760,24 @@ julia> a = [1 2 3; 4 5 6] 1 2 3 4 5 6 -julia> cumsum(a,1) +julia> cumsum(a, dims=1) 2×3 Array{Int64,2}: 1 2 3 5 7 9 -julia> cumsum(a,2) +julia> cumsum(a, dims=2) 2×3 Array{Int64,2}: 1 3 6 4 9 15 ``` """ -function cumsum(A::AbstractArray{T}, dim::Integer) where T +function cumsum(A::AbstractArray{T}; dims::Union{Nothing,Integer}=nothing) where T + if dims === nothing + depwarn("`cumsum(A::AbstractArray)` is deprecated, use `cumsum(A, dims=1)` instead.", :cumsum) + dims = 1 + end out = similar(A, rcum_promote_type(+, T)) - cumsum!(out, A, dim) + cumsum!(out, A, dims=dims) end """ @@ -804,24 +802,17 @@ julia> cumsum([fill(1, 2) for i in 1:3]) [3, 3] ``` """ -cumsum(x::AbstractVector) = cumsum(x, 1) - -""" - cumsum!(B, A, dim::Integer) - -Cumulative sum of `A` along the dimension `dim`, storing the result in `B`. See also [`cumsum`](@ref). -""" -cumsum!(B, A, dim::Integer) = accumulate!(+, B, A, dim) +cumsum(x::AbstractVector) = cumsum(x, dims=1) """ - cumsum!(y::AbstractVector, x::AbstractVector) + cumsum!(B, A; dims::Integer) -Cumulative sum of a vector `x`, storing the result in `y`. See also [`cumsum`](@ref). +Cumulative sum of `A` along the dimension `dims`, storing the result in `B`. See also [`cumsum`](@ref). """ -cumsum!(y::AbstractVector, x::AbstractVector) = cumsum!(y, x, 1) +cumsum!(B, A; dims::Integer) = accumulate!(+, B, A, dims=dims) """ - cumprod(A, dim::Integer) + cumprod(A; dims::Integer) Cumulative product along the dimension `dim`. See also [`cumprod!`](@ref) to use a preallocated output array, both for performance and @@ -834,18 +825,24 @@ julia> a = [1 2 3; 4 5 6] 1 2 3 4 5 6 -julia> cumprod(a,1) +julia> cumprod(a, dims=1) 2×3 Array{Int64,2}: 1 2 3 4 10 18 -julia> cumprod(a,2) +julia> cumprod(a, dims=2) 2×3 Array{Int64,2}: 1 2 6 4 20 120 ``` """ -cumprod(A::AbstractArray, dim::Integer) = accumulate(*, A, dim) +function cumprod(A::AbstractArray; dims::Union{Nothing,Integer}=nothing) + if dims === nothing + depwarn("`cumprod(A::AbstractArray)` is deprecated, use `cumprod(A, dims=1)` instead.", :cumprod) + dims = 1 + end + return accumulate(*, A, dims=dims) +end """ cumprod(x::AbstractVector) @@ -864,20 +861,20 @@ julia> cumprod(fill(1//2, 3)) julia> cumprod([fill(1//3, 2, 2) for i in 1:3]) 3-element Array{Array{Rational{Int64},2},1}: - Rational{Int64}[1//3 1//3; 1//3 1//3] - Rational{Int64}[2//9 2//9; 2//9 2//9] - Rational{Int64}[4//27 4//27; 4//27 4//27] + [1//3 1//3; 1//3 1//3] + [2//9 2//9; 2//9 2//9] + [4//27 4//27; 4//27 4//27] ``` """ -cumprod(x::AbstractVector) = cumprod(x, 1) +cumprod(x::AbstractVector) = cumprod(x, dims=1) """ - cumprod!(B, A, dim::Integer) + cumprod!(B, A; dims::Integer) -Cumulative product of `A` along the dimension `dim`, storing the result in `B`. +Cumulative product of `A` along the dimension `dims`, storing the result in `B`. See also [`cumprod`](@ref). """ -cumprod!(B, A, dim::Integer) = accumulate!(*, B, A, dim) +cumprod!(B, A; dims::Integer) = accumulate!(*, B, A, dims=dims) """ cumprod!(y::AbstractVector, x::AbstractVector) @@ -885,12 +882,12 @@ cumprod!(B, A, dim::Integer) = accumulate!(*, B, A, dim) Cumulative product of a vector `x`, storing the result in `y`. See also [`cumprod`](@ref). """ -cumprod!(y::AbstractVector, x::AbstractVector) = cumprod!(y, x, 1) +cumprod!(y::AbstractVector, x::AbstractVector) = cumprod!(y, x, dims=1) """ - accumulate(op, A, dim::Integer) + accumulate(op, A; dims::Integer) -Cumulative operation `op` along the dimension `dim`. See also +Cumulative operation `op` along the dimension `dims`. See also [`accumulate!`](@ref) to use a preallocated output array, both for performance and to control the precision of the output (e.g. to avoid overflow). For common operations there are specialized variants of `accumulate`, see: @@ -898,22 +895,22 @@ there are specialized variants of `accumulate`, see: # Examples ```jldoctest -julia> accumulate(+, fill(1, 3, 3), 1) +julia> accumulate(+, fill(1, 3, 3), dims=1) 3×3 Array{Int64,2}: 1 1 1 2 2 2 3 3 3 -julia> accumulate(+, fill(1, 3, 3), 2) +julia> accumulate(+, fill(1, 3, 3), dims=2) 3×3 Array{Int64,2}: 1 2 3 1 2 3 1 2 3 ``` """ -function accumulate(op, A, dim::Integer) +function accumulate(op, A; dims::Integer) out = similar(A, rcum_promote_type(op, eltype(A))) - accumulate!(op, out, A, dim) + accumulate!(op, out, A, dims=dims) end """ @@ -940,12 +937,12 @@ julia> accumulate(*, [1,2,3]) 6 ``` """ -accumulate(op, x::AbstractVector) = accumulate(op, x, 1) +accumulate(op, x::AbstractVector) = accumulate(op, x, dims=1) """ - accumulate!(op, B, A, dim::Integer) + accumulate!(op, B, A; dims::Integer) -Cumulative operation `op` on `A` along the dimension `dim`, storing the result in `B`. +Cumulative operation `op` on `A` along the dimension `dims`, storing the result in `B`. See also [`accumulate`](@ref). # Examples @@ -954,14 +951,14 @@ julia> A = [1 2; 3 4]; julia> B = [0 0; 0 0]; -julia> accumulate!(-, B, A, 1); +julia> accumulate!(-, B, A, dims=1); julia> B 2×2 Array{Int64,2}: 1 2 -2 -2 -julia> accumulate!(-, B, A, 2); +julia> accumulate!(-, B, A, dims=2); julia> B 2×2 Array{Int64,2}: @@ -969,7 +966,8 @@ julia> B 3 -1 ``` """ -function accumulate!(op, B, A, dim::Integer) +function accumulate!(op, B, A; dims::Integer) + dim = dims dim > 0 || throw(ArgumentError("dim must be a positive integer")) inds_t = axes(A) axes(B) == inds_t || throw(DimensionMismatch("shape of B must match A")) @@ -1085,8 +1083,97 @@ function _accumulate1!(op, B, v1, A::AbstractVector, dim::Integer) return B end +diff(a::AbstractVector) = [ a[i+1] - a[i] for i=1:length(a)-1 ] + +""" + diff(A::AbstractVector) + diff(A::AbstractMatrix, dim::Integer) + +Finite difference operator of matrix or vector `A`. If `A` is a matrix, +specify the dimension over which to operate with the `dim` argument. + +# Examples +```jldoctest +julia> a = [2 4; 6 16] +2×2 Array{Int64,2}: + 2 4 + 6 16 + +julia> diff(a,2) +2×1 Array{Int64,2}: + 2 + 10 + +julia> diff(vec(a)) +3-element Array{Int64,1}: + 4 + -2 + 12 +``` +""" +function diff(A::AbstractMatrix, dim::Integer) + if dim == 1 + [A[i+1,j] - A[i,j] for i=1:size(A,1)-1, j=1:size(A,2)] + elseif dim == 2 + [A[i,j+1] - A[i,j] for i=1:size(A,1), j=1:size(A,2)-1] + else + throw(ArgumentError("dimension dim must be 1 or 2, got $dim")) + end +end + ### from abstractarray.jl +# In the common case where we have two views into the same parent, aliasing checks +# are _much_ easier and more important to get right +function mightalias(A::SubArray{T,<:Any,P}, B::SubArray{T,<:Any,P}) where {T,P} + if !_parentsmatch(A.parent, B.parent) + # We cannot do any better than the usual dataids check + return !_isdisjoint(dataids(A), dataids(B)) + end + # Now we know that A.parent === B.parent. This means that the indices of A + # and B are the same length and indexing into the same dimensions. We can + # just walk through them and check for overlaps: O(ndims(A)). We must finally + # ensure that the indices don't alias with either parent + return _indicesmightoverlap(A.indices, B.indices) || + !_isdisjoint(dataids(A.parent), _splatmap(dataids, B.indices)) || + !_isdisjoint(dataids(B.parent), _splatmap(dataids, A.indices)) +end +_parentsmatch(A::AbstractArray, B::AbstractArray) = A === B +# Two reshape(::Array)s of the same size aren't `===` because they have different headers +_parentsmatch(A::Array, B::Array) = pointer(A) == pointer(B) && size(A) == size(B) + +_indicesmightoverlap(A::Tuple{}, B::Tuple{}) = true +_indicesmightoverlap(A::Tuple{}, B::Tuple) = error("malformed subarray") +_indicesmightoverlap(A::Tuple, B::Tuple{}) = error("malformed subarray") +# For ranges, it's relatively cheap to construct the intersection +@inline function _indicesmightoverlap(A::Tuple{AbstractRange, Vararg{Any}}, B::Tuple{AbstractRange, Vararg{Any}}) + !isempty(intersect(A[1], B[1])) ? _indicesmightoverlap(tail(A), tail(B)) : false +end +# But in the common AbstractUnitRange case, there's an even faster shortcut +@inline function _indicesmightoverlap(A::Tuple{AbstractUnitRange, Vararg{Any}}, B::Tuple{AbstractUnitRange, Vararg{Any}}) + max(first(A[1]),first(B[1])) <= min(last(A[1]),last(B[1])) ? _indicesmightoverlap(tail(A), tail(B)) : false +end +# And we can check scalars against eachother and scalars against arrays quite easily +@inline _indicesmightoverlap(A::Tuple{Real, Vararg{Any}}, B::Tuple{Real, Vararg{Any}}) = + A[1] == B[1] ? _indicesmightoverlap(tail(A), tail(B)) : false +@inline _indicesmightoverlap(A::Tuple{Real, Vararg{Any}}, B::Tuple{AbstractArray, Vararg{Any}}) = + A[1] in B[1] ? _indicesmightoverlap(tail(A), tail(B)) : false +@inline _indicesmightoverlap(A::Tuple{AbstractArray, Vararg{Any}}, B::Tuple{Real, Vararg{Any}}) = + B[1] in A[1] ? _indicesmightoverlap(tail(A), tail(B)) : false +# And small arrays are quick, too +@inline function _indicesmightoverlap(A::Tuple{AbstractArray, Vararg{Any}}, B::Tuple{AbstractArray, Vararg{Any}}) + if length(A[1]) == 1 + return A[1][1] in B[1] ? _indicesmightoverlap(tail(A), tail(B)) : false + elseif length(B[1]) == 1 + return B[1][1] in A[1] ? _indicesmightoverlap(tail(A), tail(B)) : false + else + # But checking larger arrays requires O(m*n) and is too much work + return true + end +end +# And in general, checking the intersection is too much work +_indicesmightoverlap(A::Tuple{Any, Vararg{Any}}, B::Tuple{Any, Vararg{Any}}) = true + """ fill!(A, x) @@ -1157,33 +1244,35 @@ julia> y copyto!(dest, src) function copyto!(dest::AbstractArray{T,N}, src::AbstractArray{T,N}) where {T,N} - @boundscheck checkbounds(dest, axes(src)...) - for I in eachindex(IndexStyle(src,dest), src) - @inbounds dest[I] = src[I] + checkbounds(dest, axes(src)...) + src′ = unalias(dest, src) + for I in eachindex(IndexStyle(src′,dest), src′) + @inbounds dest[I] = src′[I] end dest end function copyto!(dest::AbstractArray{T1,N}, Rdest::CartesianIndices{N}, - src::AbstractArray{T2,N}, Rsrc::CartesianIndices{N}) where {T1,T2,N} + src::AbstractArray{T2,N}, Rsrc::CartesianIndices{N}) where {T1,T2,N} isempty(Rdest) && return dest if size(Rdest) != size(Rsrc) throw(ArgumentError("source and destination must have same size (got $(size(Rsrc)) and $(size(Rdest)))")) end - @boundscheck checkbounds(dest, first(Rdest)) - @boundscheck checkbounds(dest, last(Rdest)) - @boundscheck checkbounds(src, first(Rsrc)) - @boundscheck checkbounds(src, last(Rsrc)) + checkbounds(dest, first(Rdest)) + checkbounds(dest, last(Rdest)) + checkbounds(src, first(Rsrc)) + checkbounds(src, last(Rsrc)) + src′ = unalias(dest, src) ΔI = first(Rdest) - first(Rsrc) if @generated quote @nloops $N i (n->Rsrc.indices[n]) begin - @inbounds @nref($N,dest,n->i_n+ΔI[n]) = @nref($N,src,i) + @inbounds @nref($N,dest,n->i_n+ΔI[n]) = @nref($N,src′,i) end end else for I in Rsrc - @inbounds dest[I + ΔI] = src[I] + @inbounds dest[I + ΔI] = src′[I] end end dest diff --git a/base/multimedia.jl b/base/multimedia.jl index 287d2c347ab315..3ec70cc12b6639 100644 --- a/base/multimedia.jl +++ b/base/multimedia.jl @@ -4,7 +4,7 @@ module Multimedia export AbstractDisplay, display, pushdisplay, popdisplay, displayable, redisplay, MIME, @MIME_str, istextmime, - mimewritable, TextDisplay + showable, TextDisplay ########################################################################### # We define a singleton type MIME{mime symbol} for each MIME type, so @@ -25,23 +25,26 @@ print(io::IO, ::MIME{mime}) where {mime} = print(io, mime) # in order to provide a way to export T as a given mime type. """ - mimewritable(mime, x) + showable(mime, x) -Returns a boolean value indicating whether or not the object `x` can be written as the given -`mime` type. (By default, this is determined automatically by the existence of the -corresponding [`show`](@ref) method for `typeof(x)`.) +Returns a boolean value indicating whether or not the object `x` can be written +as the given `mime` type. + +(By default, this is determined automatically by the existence of the +corresponding [`show`](@ref) method for `typeof(x)`. Some types provide custom `showable` +methods; for example, if the available MIME formats depend on the *value* of `x`.) # Examples ```jldoctest -julia> mimewritable(MIME("text/plain"), rand(5)) +julia> showable(MIME("text/plain"), rand(5)) true -julia> mimewritable(MIME("img/png"), rand(5)) +julia> showable("img/png", rand(5)) false ``` """ -mimewritable(::MIME{mime}, x) where {mime} = - hasmethod(show, Tuple{IO, MIME{mime}, typeof(x)}) +showable(::MIME{mime}, x) where {mime} = hasmethod(show, Tuple{IO, MIME{mime}, typeof(x)}) +showable(m::AbstractString, x) = showable(MIME(m), x) """ show(io, mime, x) @@ -73,10 +76,7 @@ The first argument to `show` can be an [`IOContext`](@ref) specifying output for See [`IOContext`](@ref) for details. """ show(stream, mime, x) - -# it is convenient to accept strings instead of ::MIME show(io::IO, m::AbstractString, x) = show(io, MIME(m), x) -mimewritable(m::AbstractString, x) = mimewritable(MIME(m), x) """ repr(mime, x; context=nothing) @@ -251,7 +251,7 @@ function popdisplay(d::AbstractDisplay) end function reinit_displays() empty!(displays) - pushdisplay(TextDisplay(STDOUT)) + pushdisplay(TextDisplay(stdout)) end xdisplayable(D::AbstractDisplay, args...) = applicable(display, D, args...) @@ -263,15 +263,15 @@ xdisplayable(D::AbstractDisplay, args...) = applicable(display, D, args...) display(d::AbstractDisplay, mime, x) AbstractDisplay `x` using the topmost applicable display in the display stack, typically using the -richest supported multimedia output for `x`, with plain-text [`STDOUT`](@ref) output as a fallback. +richest supported multimedia output for `x`, with plain-text [`stdout`](@ref) output as a fallback. The `display(d, x)` variant attempts to display `x` on the given display `d` only, throwing a [`MethodError`](@ref) if `d` cannot display objects of this type. -In general, you cannot assume that `display` output goes to `STDOUT` (unlike [`print(x)`](@ref) or +In general, you cannot assume that `display` output goes to `stdout` (unlike [`print(x)`](@ref) or [`show(x)`](@ref)). For example, `display(x)` may open up a separate window with an image. `display(x)` means "show `x` in the best way you can for the current output device(s)." -If you want REPL-like text output that is guaranteed to go to `STDOUT`, use -[`show(STDOUT, "text/plain", x)`](@ref) instead. +If you want REPL-like text output that is guaranteed to go to `stdout`, use +[`show(stdout, "text/plain", x)`](@ref) instead. There are also two variants with a `mime` argument (a MIME type string, such as `"image/png"`), which attempt to display `x` using the requested MIME type *only*, throwing diff --git a/base/namedtuple.jl b/base/namedtuple.jl index 31146bd8e6d94b..791f174ad9bcb3 100644 --- a/base/namedtuple.jl +++ b/base/namedtuple.jl @@ -103,9 +103,6 @@ indexed_next(t::NamedTuple, i::Int, state) = (getfield(t, i), i+1) isempty(::NamedTuple{()}) = true isempty(::NamedTuple) = false -promote_typejoin(::Type{NamedTuple{n, S}}, ::Type{NamedTuple{n, T}}) where {n, S, T} = - NamedTuple{n, promote_typejoin(S, T)} - convert(::Type{NamedTuple{names,T}}, nt::NamedTuple{names,T}) where {names,T<:Tuple} = nt convert(::Type{NamedTuple{names}}, nt::NamedTuple{names}) where {names} = nt diff --git a/base/operators.jl b/base/operators.jl index 9da2988c5f2eed..e918dcec166273 100644 --- a/base/operators.jl +++ b/base/operators.jl @@ -53,15 +53,24 @@ end """ ==(x, y) -Generic equality operator, giving a single [`Bool`](@ref) result. Falls back to `===`. +Generic equality operator. Falls back to [`===`](@ref). Should be implemented for all types with a notion of equality, based on the abstract value that an instance represents. For example, all numeric types are compared by numeric value, ignoring type. Strings are compared as sequences of characters, ignoring encoding. +For collections, `==` is generally called recursively on all contents, +though other properties (like the shape for arrays) may also be taken into account. -Follows IEEE semantics for floating-point numbers. +This operator follows IEEE semantics for floating-point numbers: `0.0 == -0.0` and +`NaN != NaN`. -Collections should generally implement `==` by calling `==` recursively on all contents. +The result is of type `Bool`, except when one of the operands is [`missing`](@ref), +in which case `missing` is returned +([three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic)). +For collections, `missing` is returned if at least one of the operands contains +a `missing` value and all non-missing values are equal. +Use [`isequal`](@ref) or [`===`](@ref) to always get a `Bool` result. +# Implementation New numeric types should implement this function for two arguments of the new type, and handle comparison to other types via promotion rules where possible. """ @@ -70,17 +79,21 @@ handle comparison to other types via promotion rules where possible. """ isequal(x, y) -Similar to `==`, except treats all floating-point `NaN` values as equal to each other, and -treats `-0.0` as unequal to `0.0`. The default implementation of `isequal` calls `==`, so if -you have a type that doesn't have these floating-point subtleties then you probably only -need to define `==`. +Similar to [`==`](@ref), except for the treatment of floating point numbers +and of missing values. `isequal` treats all floating-point `NaN` values as equal +to each other, treats `-0.0` as unequal to `0.0`, and [`missing`](@ref) as equal +to `missing`. Always returns a `Bool` value. + +# Implementation +The default implementation of `isequal` calls `==`, so a type that does not involve +floating-point values generally only needs to define `==`. `isequal` is the comparison function used by hash tables (`Dict`). `isequal(x,y)` must imply that `hash(x) == hash(y)`. -This typically means that if you define your own `==` function then you must define a -corresponding `hash` (and vice versa). Collections typically implement `isequal` by calling -`isequal` recursively on all contents. +This typically means that types for which a custom `==` or `isequal` method exists must +implement a corresponding `hash` method (and vice versa). Collections typically implement +`isequal` by calling `isequal` recursively on all contents. Scalar types generally do not need to implement `isequal` separate from `==`, unless they represent floating-point numbers amenable to a more efficient implementation than that @@ -114,10 +127,15 @@ isequal(x::AbstractFloat, y::Real ) = (isnan(x) & isnan(y)) | signequal( isless(x, y) Test whether `x` is less than `y`, according to a canonical total order. Values that are -normally unordered, such as `NaN`, are ordered in an arbitrary but consistent fashion. This -is the default comparison used by [`sort`](@ref). Non-numeric types with a canonical total order -should implement this function. Numeric types only need to implement it if they have special -values such as `NaN`. +normally unordered, such as `NaN`, are ordered in an arbitrary but consistent fashion. +[`missing`](@ref) values are ordered last. + +This is the default comparison used by [`sort`](@ref). + +# Implementation +Non-numeric types with a canonical total order should implement this function. +Numeric types only need to implement it if they have special values such as `NaN`. +Types with a canonical partial order should implement [`<`](@ref). """ function isless end @@ -143,8 +161,11 @@ end !=(x, y) ≠(x,y) -Not-equals comparison operator. Always gives the opposite answer as `==`. New types should -generally not implement this, and rely on the fallback definition `!=(x,y) = !(x==y)` instead. +Not-equals comparison operator. Always gives the opposite answer as [`==`](@ref). + +# Implementation +New types should generally not implement this, and rely on the fallback definition +`!=(x,y) = !(x==y)` instead. # Examples ```jldoctest @@ -163,9 +184,10 @@ const ≠ = != ≡(x,y) -> Bool Determine whether `x` and `y` are identical, in the sense that no program could distinguish -them. First it compares the types of `x` and `y`. If those are identical, it compares mutable -objects by address in memory and immutable objects (such as numbers) by contents at the bit -level. This function is sometimes called "egal". +them. First the types of `x` and `y` are compared. If those are identical, mutable objects +are compared by address in memory and immutable objects (such as numbers) are compared by +contents at the bit level. This function is sometimes called "egal". +It always returns a `Bool` value. # Examples ```jldoctest @@ -188,7 +210,7 @@ const ≡ = === !==(x, y) ≢(x,y) -Equivalent to `!(x === y)`. +Always gives the opposite answer as [`===`](@ref). # Examples ```jldoctest @@ -207,11 +229,15 @@ const ≢ = !== """ <(x, y) -Less-than comparison operator. New numeric types should implement this function for two -arguments of the new type. Because of the behavior of floating-point NaN values, `<` -implements a partial order. Types with a canonical partial order should implement `<`, and -types with a canonical total order should implement `isless`. +Less-than comparison operator. Falls back to [`isless`](@ref). +Because of the behavior of floating-point NaN values, this operator implements +a partial order. +# Implementation +New numeric types with a canonical partial order should implement this function for +two arguments of the new type. +Types with a canonical total order should implement [`isless`](@ref) instead. +(x < y) | (x == y) # Examples ```jldoctest julia> 'a' < 'b' @@ -229,8 +255,11 @@ false """ >(x, y) -Greater-than comparison operator. Generally, new types should implement `<` instead of this -function, and rely on the fallback definition `>(x, y) = y < x`. +Greater-than comparison operator. Falls back to `y < x`. + +# Implementation +Generally, new types should implement [`<`](@ref) instead of this function, +and rely on the fallback definition `>(x, y) = y < x`. # Examples ```jldoctest @@ -253,7 +282,7 @@ true <=(x, y) ≤(x,y) -Less-than-or-equals comparison operator. +Less-than-or-equals comparison operator. Falls back to `(x < y) | (x == y)`. # Examples ```jldoctest @@ -277,7 +306,7 @@ const ≤ = <= >=(x, y) ≥(x,y) -Greater-than-or-equals comparison operator. +Greater-than-or-equals comparison operator. Falls back to `y <= x`. # Examples ```jldoctest @@ -333,7 +362,6 @@ julia> cmp(2, 1) julia> cmp(2+im, 3-im) ERROR: MethodError: no method matching isless(::Complex{Int64}, ::Complex{Int64}) -Stacktrace: [...] ``` """ @@ -654,6 +682,8 @@ const ÷ = div Modulus after flooring division, returning a value `r` such that `mod(r, y) == mod(x, y)` in the range ``(0, y]`` for positive `y` and in the range ``[y,0)`` for negative `y`. +See also: [`fld1`](@ref), [`fldmod1`](@ref). + # Examples ```jldoctest julia> mod1(4, 2) @@ -664,8 +694,6 @@ julia> mod1(4, 3) ``` """ mod1(x::T, y::T) where {T<:Real} = (m = mod(x, y); ifelse(m == 0, y, m)) -# efficient version for integers -mod1(x::T, y::T) where {T<:Integer} = (@_inline_meta; mod(x + y - T(1), y) + T(1)) """ @@ -673,7 +701,7 @@ mod1(x::T, y::T) where {T<:Integer} = (@_inline_meta; mod(x + y - T(1), y) + T(1 Flooring division, returning a value consistent with `mod1(x,y)` -See also: [`mod1`](@ref). +See also: [`mod1`](@ref), [`fldmod1`](@ref). # Examples ```jldoctest @@ -689,9 +717,11 @@ julia> x == (fld1(x, y) - 1) * y + mod1(x, y) true ``` """ -fld1(x::T, y::T) where {T<:Real} = (m=mod(x,y); fld(x-m,y)) -# efficient version for integers -fld1(x::T, y::T) where {T<:Integer} = fld(x+y-T(1),y) +fld1(x::T, y::T) where {T<:Real} = (m = mod1(x, y); fld(x + y - m, y)) +function fld1(x::T, y::T) where T<:Integer + d = div(x, y) + return d + (!signbit(x ⊻ y) & (d * y != x)) +end """ fldmod1(x, y) @@ -700,11 +730,7 @@ Return `(fld1(x,y), mod1(x,y))`. See also: [`fld1`](@ref), [`mod1`](@ref). """ -fldmod1(x::T, y::T) where {T<:Real} = (fld1(x,y), mod1(x,y)) -# efficient version for integers -fldmod1(x::T, y::T) where {T<:Integer} = (fld1(x,y), mod1(x,y)) - -conj(x) = x +fldmod1(x, y) = (fld1(x, y), mod1(x, y)) """ @@ -753,14 +779,11 @@ entered in the Julia REPL (and most editors, appropriately configured) by typing # Examples ```jldoctest -julia> map(uppercase∘hex, 250:255) -6-element Array{String,1}: - "FA" - "FB" - "FC" - "FD" - "FE" - "FF" +julia> map(uppercase∘first, ["apple", "banana", "carrot"]) +3-element Array{Char,1}: + 'A' + 'B' + 'C' ``` """ ∘(f, g) = (x...)->f(g(x...)) @@ -845,4 +868,4 @@ julia> map(splat(+), zip(1:3,4:6)) 9 ``` """ -splat(f) = args->f(args...) \ No newline at end of file +splat(f) = args->f(args...) diff --git a/base/ordering.jl b/base/ordering.jl index 8f7f581f577e14..52320ac83ae897 100644 --- a/base/ordering.jl +++ b/base/ordering.jl @@ -2,6 +2,13 @@ module Order + +import ..@__MODULE__, ..parentmodule +const Base = parentmodule(@__MODULE__) +import .Base: + AbstractVector, @propagate_inbounds, isless, identity, getindex, + +, -, !, &, <, | + ## notions of element ordering ## export # not exported by Base @@ -44,7 +51,7 @@ lt(o::ReverseOrdering, a, b) = lt(o.fwd,b,a) lt(o::By, a, b) = isless(o.by(a),o.by(b)) lt(o::Lt, a, b) = o.lt(a,b) -Base.@propagate_inbounds function lt(p::Perm, a::Integer, b::Integer) +@propagate_inbounds function lt(p::Perm, a::Integer, b::Integer) da = p.data[a] db = p.data[b] lt(p.order, da, db) | (!lt(p.order, db, da) & (a < b)) diff --git a/base/permuteddimsarray.jl b/base/permuteddimsarray.jl index 4a82f4670bf9d4..de9c8c1944d7b7 100644 --- a/base/permuteddimsarray.jl +++ b/base/permuteddimsarray.jl @@ -121,7 +121,7 @@ the matrix. Differs from `LinearAlgebra`'s [`transpose`](@ref) in that the operation is not recursive. # Examples -```jldoctest +```jldoctest; setup = :(using LinearAlgebra) julia> a = [1 2; 3 4]; julia> b = [5 6; 7 8]; @@ -141,7 +141,7 @@ julia> permutedims(X) [5 6; 7 8] [13 14; 15 16] julia> transpose(X) -2×2 LinearAlgebra.Transpose{LinearAlgebra.Transpose{Int64,Array{Int64,2}},Array{Array{Int64,2},2}}: +2×2 Transpose{Transpose{Int64,Array{Int64,2}},Array{Array{Int64,2},2}}: [1 3; 2 4] [9 11; 10 12] [5 7; 6 8] [13 15; 14 16] ``` @@ -156,7 +156,7 @@ Differs from `LinearAlgebra`'s [`transpose`](@ref) in that the operation is not recursive. # Examples -```jldoctest +```jldoctest; setup = :(using LinearAlgebra) julia> permutedims([1, 2, 3, 4]) 1×4 Array{Int64,2}: 1 2 3 4 @@ -171,7 +171,7 @@ julia> permutedims(V) [1 2; 3 4] [5 6; 7 8] julia> transpose(V) -1×2 LinearAlgebra.Transpose{LinearAlgebra.Transpose{Int64,Array{Int64,2}},Array{Array{Int64,2},1}}: +1×2 Transpose{Transpose{Int64,Array{Int64,2}},Array{Array{Int64,2},1}}: [1 3; 2 4] [5 7; 6 8] ``` """ diff --git a/base/precompile.jl b/base/precompile.jl index 55ee6fd0241635..a9b3d8e1775601 100644 --- a/base/precompile.jl +++ b/base/precompile.jl @@ -133,7 +133,6 @@ precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), REPL.Terminals.TTYTerminal, String}) precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:color,), Tuple{Symbol}}, typeof(Base.printstyled), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) precompile(Tuple{getfield(Base, Symbol("#kw##show_trace_entry")), NamedTuple{(:prefix,), Tuple{String}}, typeof(Base.show_trace_entry), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.StackTraces.StackFrame, Int64}) -precompile(Tuple{getfield(Base, Symbol("#kw##spawn")), NamedTuple{(:chain,), Tuple{Nothing}}, typeof(Base.spawn), Base.Cmd, Tuple{Base.Pipe, Base.TTY, Base.IOStream}}) precompile(Tuple{getfield(Base, Symbol("#kw##unindent")), NamedTuple{(:tabwidth,), Tuple{Int64}}, typeof(Base.unindent), String, Int64}) precompile(Tuple{getfield(Base, Symbol("#kw##with_output_color")), NamedTuple{(:bold,), Tuple{Bool}}, typeof(Base.with_output_color), typeof(Base.print), Symbol, Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) precompile(Tuple{getfield(Base, Symbol("#kw##with_output_color")), NamedTuple{(:bold,), Tuple{Bool}}, typeof(Base.with_output_color), typeof(Base.print), Symbol, REPL.Terminals.TTYTerminal, String}) @@ -579,7 +578,6 @@ precompile(Tuple{typeof(Base.similar), Array{Float64, 1}}) precompile(Tuple{typeof(Base.sort!), Array{Int64, 1}, Base.Sort.QuickSortAlg, Base.Order.Perm{Base.Order.ForwardOrdering, Array{Tuple{Float64, Int64}, 1}}}) precompile(Tuple{typeof(Base.sort!), Array{Int64, 1}, Base.Sort.QuickSortAlg, Base.Order.Perm{Base.Order.ForwardOrdering, Array{Tuple{Int64, Float64}, 1}}}) precompile(Tuple{typeof(Base.sort), Array{Float64, 1}}) -precompile(Tuple{typeof(Base.spawn), Base.CmdRedirect, Tuple{Base.Pipe, Base.TTY, Base.IOStream}}) precompile(Tuple{typeof(Base.start), Array{AbstractString, 1}}) precompile(Tuple{typeof(Base.start), Array{Expr, 1}}) precompile(Tuple{typeof(Base.start), Array{Function, 1}}) diff --git a/base/printf.jl b/base/printf.jl index 8bd35d6a9e64bb..9b62a635bdd4df 100644 --- a/base/printf.jl +++ b/base/printf.jl @@ -695,7 +695,7 @@ function gen_p(flags::String, width::Int, precision::Int, c::Char) end push!(blk.args, :(write(out, '0'))) push!(blk.args, :(write(out, 'x'))) - push!(blk.args, :(write(out, String(hex(unsigned($x), $ptrwidth))))) + push!(blk.args, :(write(out, String(string(unsigned($x), pad = $ptrwidth, base = 16))))) if width > 0 && '-' in flags push!(blk.args, pad(width, width, ' ')) end @@ -1198,7 +1198,7 @@ end macro printf(args...) isempty(args) && throw(ArgumentError("@printf: called with no arguments")) if isa(args[1], AbstractString) || is_str_expr(args[1]) - _printf("@printf", :STDOUT, args[1], args[2:end]) + _printf("@printf", :stdout, args[1], args[2:end]) else (length(args) >= 2 && (isa(args[2], AbstractString) || is_str_expr(args[2]))) || throw(ArgumentError("@printf: first or second argument must be a format string")) diff --git a/base/process.jl b/base/process.jl index ce6c4f717e8125..77a04997bcb071 100644 --- a/base/process.jl +++ b/base/process.jl @@ -139,7 +139,7 @@ struct FileRedirect append::Bool function FileRedirect(filename, append) if lowercase(filename) == (@static Sys.iswindows() ? "nul" : "/dev/null") - @warn "For portability use DevNull instead of a file redirect" maxlog=1 + @warn "For portability use devnull instead of a file redirect" maxlog=1 end return new(filename, append) end @@ -312,13 +312,13 @@ mutable struct Process <: AbstractPipe out::Union{Redirectable, Ptr{Cvoid}}, err::Union{Redirectable, Ptr{Cvoid}}) if !isa(in, IO) - in = DevNull + in = devnull end if !isa(out, IO) - out = DevNull + out = devnull end if !isa(err, IO) - err = DevNull + err = devnull end this = new(cmd, handle, in, out, err, typemin(fieldtype(Process, :exitcode)), @@ -397,22 +397,22 @@ function _uv_hook_close(proc::Process) notify(proc.closenotify) end -function spawn(redirect::CmdRedirect, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) - spawn(redirect.cmd, - (redirect.stream_no == STDIN_NO ? redirect.handle : stdios[1], - redirect.stream_no == STDOUT_NO ? redirect.handle : stdios[2], - redirect.stream_no == STDERR_NO ? redirect.handle : stdios[3]), +function _spawn(redirect::CmdRedirect, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) + _spawn(redirect.cmd, + (redirect.stream_no == STDIN_NO ? redirect.handle : stdios[1], + redirect.stream_no == STDOUT_NO ? redirect.handle : stdios[2], + redirect.stream_no == STDERR_NO ? redirect.handle : stdios[3]), chain=chain) end -function spawn(cmds::OrCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) +function _spawn(cmds::OrCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) if chain === nothing chain = ProcessChain(stdios) end in_pipe, out_pipe = link_pipe(false, false) try - spawn(cmds.a, (stdios[1], out_pipe, stdios[3]), chain=chain) - spawn(cmds.b, (in_pipe, stdios[2], stdios[3]), chain=chain) + _spawn(cmds.a, (stdios[1], out_pipe, stdios[3]), chain=chain) + _spawn(cmds.b, (in_pipe, stdios[2], stdios[3]), chain=chain) finally close_pipe_sync(out_pipe) close_pipe_sync(in_pipe) @@ -420,14 +420,14 @@ function spawn(cmds::OrCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothin return chain end -function spawn(cmds::ErrOrCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) +function _spawn(cmds::ErrOrCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) if chain === nothing chain = ProcessChain(stdios) end in_pipe, out_pipe = link_pipe(false, false) try - spawn(cmds.a, (stdios[1], stdios[2], out_pipe), chain=chain) - spawn(cmds.b, (in_pipe, stdios[2], stdios[3]), chain=chain) + _spawn(cmds.a, (stdios[1], stdios[2], out_pipe), chain=chain) + _spawn(cmds.b, (in_pipe, stdios[2], stdios[3]), chain=chain) finally close_pipe_sync(out_pipe) close_pipe_sync(in_pipe) @@ -503,7 +503,7 @@ function setup_stdio(anon::Function, stdio::StdIOSet) nothing end -function spawn(cmd::Cmd, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) +function _spawn(cmd::Cmd, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) if isempty(cmd.exec) throw(ArgumentError("cannot spawn empty command")) end @@ -519,13 +519,13 @@ function spawn(cmd::Cmd, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=n return pp end -function spawn(cmds::AndCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) +function _spawn(cmds::AndCmds, stdios::StdIOSet; chain::Union{ProcessChain, Nothing}=nothing) if chain === nothing chain = ProcessChain(stdios) end setup_stdio(stdios) do stdios - spawn(cmds.a, stdios, chain=chain) - spawn(cmds.b, stdios, chain=chain) + _spawn(cmds.a, stdios, chain=chain) + _spawn(cmds.b, stdios, chain=chain) end return chain end @@ -534,12 +534,12 @@ end # returns stdios: # A set of up to 256 stdio instructions, where each entry can be either: # | - An IO to be passed to the child -# | - DevNull to pass /dev/null +# | - devnull to pass /dev/null # | - An Filesystem.File object to redirect the output to # \ - A string specifying a filename to be opened spawn_opts_swallow(stdios::StdIOSet) = (stdios,) -spawn_opts_swallow(in::Redirectable=DevNull, out::Redirectable=DevNull, err::Redirectable=DevNull, args...) = +spawn_opts_swallow(in::Redirectable=devnull, out::Redirectable=devnull, err::Redirectable=devnull, args...) = ((in, out, err), args...) spawn_opts_inherit(stdios::StdIOSet) = (stdios,) # pass original descriptors to child processes by default, because we might @@ -548,60 +548,67 @@ spawn_opts_inherit(stdios::StdIOSet) = (stdios,) spawn_opts_inherit(in::Redirectable=RawFD(0), out::Redirectable=RawFD(1), err::Redirectable=RawFD(2), args...) = ((in, out, err), args...) -""" - spawn(command) - -Run a command object asynchronously, returning the resulting `Process` object. -""" -spawn(cmds::AbstractCmd, args...; chain::Union{ProcessChain, Nothing}=nothing) = - spawn(cmds, spawn_opts_swallow(args...)...; chain=chain) +_spawn(cmds::AbstractCmd, args...; chain::Union{ProcessChain, Nothing}=nothing) = + _spawn(cmds, spawn_opts_swallow(args...)...; chain=chain) function eachline(cmd::AbstractCmd; chomp=nothing, keep::Bool=false) if chomp !== nothing keep = !chomp depwarn("The `chomp=$chomp` argument to `eachline` is deprecated in favor of `keep=$keep`.", :eachline) end - stdout = Pipe() - processes = spawn(cmd, (DevNull,stdout,STDERR)) - close(stdout.in) - out = stdout.out + _stdout = Pipe() + processes = _spawn(cmd, (devnull, _stdout, stderr)) + close(_stdout.in) + out = _stdout.out # implicitly close after reading lines, since we opened return EachLine(out, keep=keep, ondone=()->(close(out); success(processes) || pipeline_error(processes)))::EachLine end +function open(cmds::AbstractCmd, mode::AbstractString, other::Redirectable=devnull) + if mode == "r+" || mode == "w+" + return open(cmds, other, read = true, write = true) + elseif mode == "r" + return open(cmds, other) + elseif mode == "w" + return open(cmds, other, write = true) + else + throw(ArgumentError("mode must be \"r\" or \"w\", not \"$mode\"")) + end +end + # return a Process object to read-to/write-from the pipeline """ - open(command, mode::AbstractString="r", stdio=DevNull) + open(command, stdio=devnull; write::Bool = false, read::Bool = !write) -Start running `command` asynchronously, and return a tuple `(stream,process)`. If `mode` is -`"r"`, then `stream` reads from the process's standard output and `stdio` optionally -specifies the process's standard input stream. If `mode` is `"w"`, then `stream` writes to +Start running `command` asynchronously, and return a tuple `(stream,process)`. If `read` is +true, then `stream` reads from the process's standard output and `stdio` optionally +specifies the process's standard input stream. If `write` is true, then `stream` writes to the process's standard input and `stdio` optionally specifies the process's standard output stream. """ -function open(cmds::AbstractCmd, mode::AbstractString="r", other::Redirectable=DevNull) - if mode == "r+" || mode == "w+" - other === DevNull || throw(ArgumentError("no other stream for mode rw+")) +function open(cmds::AbstractCmd, other::Redirectable=devnull; write::Bool = false, read::Bool = !write) + if read && write + other === devnull || throw(ArgumentError("no other stream can be specified in read-write mode")) in = Pipe() out = Pipe() - processes = spawn(cmds, (in,out,STDERR)) + processes = _spawn(cmds, (in,out,stderr)) close(in.out) close(out.in) - elseif mode == "r" + elseif read in = other out = Pipe() - processes = spawn(cmds, (in,out,STDERR)) + processes = _spawn(cmds, (in,out,stderr)) close(out.in) if isa(processes, ProcessChain) # for open(cmd) deprecation processes = ProcessChain(processes, :out) else processes.openstream = :out end - elseif mode == "w" + elseif write in = Pipe() out = other - processes = spawn(cmds, (in,out,STDERR)) + processes = _spawn(cmds, (in,out,stderr)) close(in.out) if isa(processes, ProcessChain) # for open(cmd) deprecation processes = ProcessChain(processes, :in) @@ -609,13 +616,13 @@ function open(cmds::AbstractCmd, mode::AbstractString="r", other::Redirectable=D processes.openstream = :in end else - throw(ArgumentError("mode must be \"r\" or \"w\", not \"$mode\"")) + processes = _spawn(cmds) end return processes end """ - open(f::Function, command, mode::AbstractString="r", stdio=DevNull) + open(f::Function, command, mode::AbstractString="r", stdio=devnull) Similar to `open(command, mode, stdio)`, but calls `f(stream)` on the resulting process stream, then closes the input stream and waits for the process to complete. @@ -636,7 +643,7 @@ function open(f::Function, cmds::AbstractCmd, args...) end function read(cmd::AbstractCmd) - procs = open(cmd, "r", DevNull) + procs = open(cmd, "r", devnull) bytes = read(procs.out) success(procs) || pipeline_error(procs) return bytes @@ -645,14 +652,26 @@ end read(cmd::AbstractCmd, ::Type{String}) = String(read(cmd)) """ - run(command, args...) + run(command, args...; wait::Bool = true) Run a command object, constructed with backticks. Throws an error if anything goes wrong, -including the process exiting with a non-zero status. +including the process exiting with a non-zero status (when `wait` is true). + +If `wait` is false, the process runs asynchronously. You can later wait for it and check +its exit status by calling `success` on the returned process object. + +When `wait` is false, the process' I/O streams are directed to `devnull`. +When `wait` is true, I/O streams are shared with the parent process. +Use [`pipeline`](@ref) to control I/O redirection. """ -function run(cmds::AbstractCmd, args...) - ps = spawn(cmds, spawn_opts_inherit(args...)...) - success(ps) ? nothing : pipeline_error(ps) +function run(cmds::AbstractCmd, args...; wait::Bool = true) + if wait + ps = _spawn(cmds, spawn_opts_inherit(args...)...) + success(ps) || pipeline_error(ps) + else + ps = _spawn(cmds, spawn_opts_swallow(args...)...) + end + return ps end # some common signal numbers that are usually available on all platforms @@ -686,7 +705,7 @@ success(procs::ProcessChain) = success(procs.processes) Run a command object, constructed with backticks, and tell whether it was successful (exited with a code of 0). An exception is raised if the process cannot be started. """ -success(cmd::AbstractCmd) = success(spawn(cmd)) +success(cmd::AbstractCmd) = success(_spawn(cmd)) function pipeline_error(proc::Process) if !proc.cmd.ignorestatus diff --git a/base/promotion.jl b/base/promotion.jl index 4b851fca93760b..9e927572c1c25c 100644 --- a/base/promotion.jl +++ b/base/promotion.jl @@ -12,27 +12,26 @@ they both inherit. typejoin() = (@_pure_meta; Bottom) typejoin(@nospecialize(t)) = (@_pure_meta; t) typejoin(@nospecialize(t), ts...) = (@_pure_meta; typejoin(t, typejoin(ts...))) -typejoin(@nospecialize(a), @nospecialize(b)) = (@_pure_meta; join_types(a, b, typejoin)) - -function join_types(@nospecialize(a), @nospecialize(b), f::Function) +function typejoin(@nospecialize(a), @nospecialize(b)) + @_pure_meta if a <: b return b elseif b <: a return a elseif isa(a,UnionAll) - return UnionAll(a.var, join_types(a.body, b, f)) + return UnionAll(a.var, typejoin(a.body, b)) elseif isa(b,UnionAll) - return UnionAll(b.var, join_types(a, b.body, f)) + return UnionAll(b.var, typejoin(a, b.body)) elseif isa(a,TypeVar) - return f(a.ub, b) + return typejoin(a.ub, b) elseif isa(b,TypeVar) - return f(a, b.ub) + return typejoin(a, b.ub) elseif isa(a,Union) - a′ = f(a.a,a.b) - return a′ === a ? typejoin(a, b) : f(a′, b) + a′ = typejoin(a.a, a.b) + return a′ === a ? typejoin(a, b) : typejoin(a′, b) elseif isa(b,Union) - b′ = f(b.a,b.b) - return b′ === b ? typejoin(a, b) : f(a, b′) + b′ = typejoin(b.a, b.b) + return b′ === b ? typejoin(a, b) : typejoin(a, b′) elseif a <: Tuple if !(b <: Tuple) return Any @@ -40,31 +39,31 @@ function join_types(@nospecialize(a), @nospecialize(b), f::Function) ap, bp = a.parameters, b.parameters lar = length(ap)::Int; lbr = length(bp)::Int if lar == 0 - return Tuple{Vararg{tailjoin(bp,1,f)}} + return Tuple{Vararg{tailjoin(bp, 1)}} end if lbr == 0 - return Tuple{Vararg{tailjoin(ap,1,f)}} + return Tuple{Vararg{tailjoin(ap, 1)}} end laf, afixed = full_va_len(ap) lbf, bfixed = full_va_len(bp) if laf < lbf if isvarargtype(ap[lar]) && !afixed c = Vector{Any}(uninitialized, laf) - c[laf] = Vararg{f(unwrapva(ap[lar]), tailjoin(bp,laf,f))} + c[laf] = Vararg{typejoin(unwrapva(ap[lar]), tailjoin(bp, laf))} n = laf-1 else c = Vector{Any}(uninitialized, laf+1) - c[laf+1] = Vararg{tailjoin(bp,laf+1,f)} + c[laf+1] = Vararg{tailjoin(bp, laf+1)} n = laf end elseif lbf < laf if isvarargtype(bp[lbr]) && !bfixed c = Vector{Any}(uninitialized, lbf) - c[lbf] = Vararg{f(unwrapva(bp[lbr]), tailjoin(ap,lbf,f))} + c[lbf] = Vararg{typejoin(unwrapva(bp[lbr]), tailjoin(ap, lbf))} n = lbf-1 else c = Vector{Any}(uninitialized, lbf+1) - c[lbf+1] = Vararg{tailjoin(ap,lbf+1,f)} + c[lbf+1] = Vararg{tailjoin(ap, lbf+1)} n = lbf end else @@ -73,7 +72,7 @@ function join_types(@nospecialize(a), @nospecialize(b), f::Function) end for i = 1:n ai = ap[min(i,lar)]; bi = bp[min(i,lbr)] - ci = f(unwrapva(ai),unwrapva(bi)) + ci = typejoin(unwrapva(ai), unwrapva(bi)) c[i] = i == length(c) && (isvarargtype(ai) || isvarargtype(bi)) ? Vararg{ci} : ci end return Tuple{c...} @@ -114,8 +113,7 @@ Compute a type that contains both `T` and `S`, which could be either a parent of both types, or a `Union` if appropriate. Falls back to [`typejoin`](@ref). """ -promote_typejoin(@nospecialize(a), @nospecialize(b)) = - (@_pure_meta; join_types(a, b, promote_typejoin)) +promote_typejoin(@nospecialize(a), @nospecialize(b)) = typejoin(a, b) promote_typejoin(::Type{Nothing}, ::Type{T}) where {T} = isconcretetype(T) || T === Union{} ? Union{T, Nothing} : Any promote_typejoin(::Type{T}, ::Type{Nothing}) where {T} = @@ -143,14 +141,14 @@ function full_va_len(p) return length(p)::Int, true end -# reduce join_types over A[i:end] -function tailjoin(A, i, f::Function) +# reduce typejoin over A[i:end] +function tailjoin(A, i) if i > length(A) return unwrapva(A[end]) end t = Bottom for j = i:length(A) - t = f(t, unwrapva(A[j])) + t = typejoin(t, unwrapva(A[j])) end return t end diff --git a/base/reduce.jl b/base/reduce.jl index b60f82d817ae8f..31ee4d79578bc4 100644 --- a/base/reduce.jl +++ b/base/reduce.jl @@ -353,11 +353,10 @@ function _mapreduce(f, op, ::IndexLinear, A::AbstractArray{T}) where T end end -_mapreduce(f, op, ::IndexCartesian, A::AbstractArray) = mapfoldl(f, op, A) - -mapreduce(f, op, A::AbstractArray) = _mapreduce(f, op, IndexStyle(A), A) mapreduce(f, op, a::Number) = mapreduce_first(f, op, a) +_mapreduce(f, op, ::IndexCartesian, A::AbstractArray) = mapfoldl(f, op, A) + """ reduce(op, v0, itr) @@ -574,6 +573,10 @@ end Test whether any elements of a boolean collection are `true`, returning `true` as soon as the first `true` value in `itr` is encountered (short-circuiting). +If the input contains [`missing`](@ref) values, return `missing` if all non-missing +values are `false` (or equivalently, if the input contains no `true` value), following +[three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic). + ```jldoctest julia> a = [true,false,false,true] 4-element Array{Bool,1}: @@ -588,6 +591,12 @@ true julia> any((println(i); v) for (i, v) in enumerate(a)) 1 true + +julia> any([missing, true]) +true + +julia> any([false, missing]) +missing ``` """ any(itr) = any(identity, itr) @@ -598,6 +607,10 @@ any(itr) = any(identity, itr) Test whether all elements of a boolean collection are `true`, returning `false` as soon as the first `false` value in `itr` is encountered (short-circuiting). +If the input contains [`missing`](@ref) values, return `missing` if all non-missing +values are `true` (or equivalently, if the input contains no `false` value), following +[three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic). + ```jldoctest julia> a = [true,false,false,true] 4-element Array{Bool,1}: @@ -613,6 +626,12 @@ julia> all((println(i); v) for (i, v) in enumerate(a)) 1 2 false + +julia> all([missing, false]) +false + +julia> all([true, missing]) +missing ``` """ all(itr) = all(identity, itr) @@ -625,7 +644,8 @@ Determine whether predicate `p` returns `true` for any elements of `itr`, return (short-circuiting). If the input contains [`missing`](@ref) values, return `missing` if all non-missing -values are `false` (or equivalently, if the input contains no `true` value). +values are `false` (or equivalently, if the input contains no `true` value), following +[three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic). ```jldoctest julia> any(i->(4<=i<=6), [3,5,7]) @@ -637,9 +657,20 @@ julia> any(i -> (println(i); i > 3), 1:10) 3 4 true + +julia> any(i -> i > 0, [1, missing]) +true + +julia> any(i -> i > 0, [-1, missing]) +missing + +julia> any(i -> i > 0, [-1, 0]) +false ``` """ -function any(f, itr) +any(f, itr) = _any(f, itr, :) + +function _any(f, itr, ::Colon) anymissing = false for x in itr v = f(x) @@ -660,7 +691,8 @@ Determine whether predicate `p` returns `true` for all elements of `itr`, return (short-circuiting). If the input contains [`missing`](@ref) values, return `missing` if all non-missing -values are `true` (or equivalently, if the input contains no `false` value). +values are `true` (or equivalently, if the input contains no `false` value), following +[three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic). ```jldoctest julia> all(i->(4<=i<=6), [4,5,6]) @@ -671,9 +703,20 @@ julia> all(i -> (println(i); i < 3), 1:10) 2 3 false + +julia> all(i -> i > 0, [1, missing]) +missing + +julia> all(i -> i > 0, [-1, missing]) +false + +julia> all(i -> i > 0, [1, 2]) +true ``` """ -function all(f, itr) +all(f, itr) = _all(f, itr, :) + +function _all(f, itr, ::Colon) anymissing = false for x in itr v = f(x) @@ -699,12 +742,19 @@ end ∉(item,collection) -> Bool ∌(collection,item) -> Bool -Determine whether an item is in the given collection, in the sense that it is `==` to one of -the values generated by iterating over the collection. Some collections need a slightly -different definition; for example, [`Set`](@ref)s check whether the item -[`isequal`](@ref) to one of the elements. [`Dict`](@ref)s look for -`(key,value)` pairs, and the key is compared using [`isequal`](@ref). To test for -the presence of a key in a dictionary, use [`haskey`](@ref) or `k in keys(dict)`. +Determine whether an item is in the given collection, in the sense that it is +[`==`](@ref) to one of the values generated by iterating over the collection. +Returns a `Bool` value, except if `item` is [`missing`](@ref) or `collection` +contains `missing` but not `item`, in which case `missing` is returned +([three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic), +matching the behavior of [`any`](@ref) and [`==`](@ref)). + +Some collections follow a slightly different definition. For example, +[`Set`](@ref)s check whether the item [`isequal`](@ref) to one of the elements. +[`Dict`](@ref)s look for `key=>value` pairs, and the key is compared using +[`isequal`](@ref). To test for the presence of a key in a dictionary, +use [`haskey`](@ref) or `k in keys(dict)`. For these collections, the result +is always a `Bool` and never `missing`. ```jldoctest julia> a = 1:3:20 @@ -715,6 +765,18 @@ true julia> 5 in a false + +julia> missing in [1, 2] +missing + +julia> 1 in [2, missing] +missing + +julia> 1 in [1, missing] +true + +julia> missing in Set([1, 2]) +false ``` """ in(x, itr) = any(y -> y == x, itr) diff --git a/base/reducedim.jl b/base/reducedim.jl index dda3057a8764f3..df3e249cee54a9 100644 --- a/base/reducedim.jl +++ b/base/reducedim.jl @@ -82,7 +82,7 @@ reducedim_initarray(A::AbstractArray, region, v0::T) where {T} = reducedim_inita function reducedim_initarray0(A::AbstractArray{T}, region, f, ops) where T ri = reduced_indices0(A, region) if isempty(A) - if prod(map(length, reduced_indices(A, region))) != 0 + if prod(length, reduced_indices(A, region)) != 0 reducedim_initarray0_empty(A, region, f, ops) # ops over empty slice of A else R = f == identity ? T : Core.Compiler.return_type(f, (T,)) @@ -155,10 +155,10 @@ function check_reducedims(R, A) # Check whether R has compatible dimensions w.r.t. A for reduction # # It returns an integer value (useful for choosing implementation) - # - If it reduces only along leading dimensions, e.g. sum(A, 1) or sum(A, (1, 2)), + # - If it reduces only along leading dimensions, e.g. sum(A, dims=1) or sum(A, dims=(1,2)), # it returns the length of the leading slice. For the two examples above, # it will be size(A, 1) or size(A, 1) * size(A, 2). - # - Otherwise, e.g. sum(A, 2) or sum(A, (1, 3)), it returns 0. + # - Otherwise, e.g. sum(A, dims=2) or sum(A, dims=(1,3)), it returns 0. # ndims(R) <= ndims(A) || throw(DimensionMismatch("cannot reduce $(ndims(A))-dimensional array to $(ndims(R)) dimensions")) lsiz = 1 @@ -244,9 +244,9 @@ reducedim!(op, R::AbstractArray{RT}, A::AbstractArray) where {RT} = mapreducedim!(identity, op, R, A) """ - mapreducedim(f, op, A, region[, v0]) + mapreduce(f, op[, v0], A::AbstractArray; dims) -Evaluates to the same as `reducedim(op, map(f, A), region, f(v0))`, but is generally +Evaluates to the same as `reduce(op, f(v0), map(f, A); dims)`, but is generally faster because the intermediate array is avoided. # Examples @@ -258,24 +258,33 @@ julia> a = reshape(Vector(1:16), (4,4)) 3 7 11 15 4 8 12 16 -julia> mapreducedim(isodd, *, a, 1) +julia> mapreduce(isodd, *, a, dims=1) 1×4 Array{Bool,2}: false false false false -julia> mapreducedim(isodd, |, a, 1, true) +julia> mapreduce(isodd, |, true, a, dims=1) 1×4 Array{Bool,2}: true true true true ``` """ -mapreducedim(f, op, A::AbstractArray, region, v0) = - mapreducedim!(f, op, reducedim_initarray(A, region, v0), A) -mapreducedim(f, op, A::AbstractArray, region) = - mapreducedim!(f, op, reducedim_init(f, op, A, region), A) +mapreduce(f, op, v0, A::AbstractArray; dims=:) = _mapreduce_dim(f, op, v0, A, dims) + +mapreduce(f, op, A::AbstractArray; dims=:) = _mapreduce_dim(f, op, A, dims) + +_mapreduce_dim(f, op, v0, A::AbstractArray, ::Colon) = mapfoldl(f, op, v0, A) + +_mapreduce_dim(f, op, A::AbstractArray, ::Colon) = _mapreduce(f, op, IndexStyle(A), A) + +_mapreduce_dim(f, op, v0, A::AbstractArray, dims) = + mapreducedim!(f, op, reducedim_initarray(A, dims, v0), A) + +_mapreduce_dim(f, op, A::AbstractArray, dims) = + mapreducedim!(f, op, reducedim_init(f, op, A, dims), A) """ - reducedim(f, A, region[, v0]) + reduce(f[, v0], A; dims) -Reduce 2-argument function `f` along dimensions of `A`. `region` is a vector specifying the +Reduce 2-argument function `f` along dimensions of `A`. `dims` is a vector specifying the dimensions to reduce, and `v0` is the initial value to use in the reductions. For `+`, `*`, `max` and `min` the `v0` argument is optional. @@ -292,24 +301,31 @@ julia> a = reshape(Vector(1:16), (4,4)) 3 7 11 15 4 8 12 16 -julia> reducedim(max, a, 2) +julia> reduce(max, a, dims=2) 4×1 Array{Int64,2}: 13 14 15 16 -julia> reducedim(max, a, 1) +julia> reduce(max, a, dims=1) 1×4 Array{Int64,2}: 4 8 12 16 ``` """ -reducedim(op, A::AbstractArray, region, v0) = mapreducedim(identity, op, A, region, v0) -reducedim(op, A::AbstractArray, region) = mapreducedim(identity, op, A, region) +reduce(op, v0, A::AbstractArray; dims=:) = _reduce_dim(op, v0, A, dims) + +_reduce_dim(op, v0, A, dims) = mapreduce(identity, op, v0, A, dims=dims) +_reduce_dim(op, v0, A, ::Colon) = mapreduce(identity, op, v0, A) + +reduce(op, A::AbstractArray; dims=:) = _reduce_dim(op, A, dims) + +_reduce_dim(op, A, dims) = mapreduce(identity, op, A, dims=dims) +_reduce_dim(op, A, ::Colon) = mapreduce(identity, op, A) ##### Specific reduction functions ##### """ - sum(A::AbstractArray, dims) + sum(A::AbstractArray; dims) Sum elements of an array over the given dimensions. @@ -320,17 +336,17 @@ julia> A = [1 2; 3 4] 1 2 3 4 -julia> sum(A, 1) +julia> sum(A, dims=1) 1×2 Array{Int64,2}: 4 6 -julia> sum(A, 2) +julia> sum(A, dims=2) 2×1 Array{Int64,2}: 3 7 ``` """ -sum(A::AbstractArray, dims) +sum(A::AbstractArray; dims) """ sum!(r, A) @@ -357,7 +373,7 @@ julia> sum!([1 1], A) sum!(r, A) """ - prod(A::AbstractArray, dims) + prod(A::AbstractArray; dims) Multiply elements of an array over the given dimensions. @@ -368,17 +384,17 @@ julia> A = [1 2; 3 4] 1 2 3 4 -julia> prod(A, 1) +julia> prod(A, dims=1) 1×2 Array{Int64,2}: 3 8 -julia> prod(A, 2) +julia> prod(A, dims=2) 2×1 Array{Int64,2}: 2 12 ``` """ -prod(A::AbstractArray, dims) +prod(A::AbstractArray; dims) """ prod!(r, A) @@ -405,7 +421,7 @@ julia> prod!([1 1], A) prod!(r, A) """ - maximum(A, dims) + maximum(A::AbstractArray; dims) Compute the maximum value of an array over the given dimensions. See also the [`max(a,b)`](@ref) function to take the maximum of two or more arguments, @@ -417,17 +433,17 @@ julia> A = [1 2; 3 4] 1 2 3 4 -julia> maximum(A, 1) +julia> maximum(A, dims=1) 1×2 Array{Int64,2}: 3 4 -julia> maximum(A, 2) +julia> maximum(A, dims=2) 2×1 Array{Int64,2}: 2 4 ``` """ -maximum(A, dims) +maximum(A::AbstractArray; dims) """ maximum!(r, A) @@ -454,7 +470,7 @@ julia> maximum!([1 1], A) maximum!(r, A) """ - minimum(A, dims) + minimum(A::AbstractArray; dims) Compute the minimum value of an array over the given dimensions. See also the [`min(a,b)`](@ref) function to take the minimum of two or more arguments, @@ -467,17 +483,17 @@ julia> A = [1 2; 3 4] 1 2 3 4 -julia> minimum(A, 1) +julia> minimum(A, dims=1) 1×2 Array{Int64,2}: 1 2 -julia> minimum(A, 2) +julia> minimum(A, dims=2) 2×1 Array{Int64,2}: 1 3 ``` """ -minimum(A, dims) +minimum(A::AbstractArray; dims) """ minimum!(r, A) @@ -504,7 +520,7 @@ julia> minimum!([1 1], A) minimum!(r, A) """ - all(A, dims) + all(A; dims) Test whether all values along the given dimensions of an array are `true`. @@ -515,17 +531,17 @@ julia> A = [true false; true true] true false true true -julia> all(A, 1) +julia> all(A, dims=1) 1×2 Array{Bool,2}: true false -julia> all(A, 2) +julia> all(A, dims=2) 2×1 Array{Bool,2}: false true ``` """ -all(A::AbstractArray, dims) +all(A::AbstractArray; dims) """ all!(r, A) @@ -552,7 +568,7 @@ julia> all!([1 1], A) all!(r, A) """ - any(A, dims) + any(A; dims) Test whether any values along the given dimensions of an array are `true`. @@ -563,17 +579,17 @@ julia> A = [true false; true false] true false true false -julia> any(A, 1) +julia> any(A, dims=1) 1×2 Array{Bool,2}: true false -julia> any(A, 2) +julia> any(A, dims=2) 2×1 Array{Bool,2}: true true ``` """ -any(::AbstractArray,dims) +any(::AbstractArray; dims) """ any!(r, A) @@ -600,18 +616,38 @@ julia> any!([1 1], A) """ any!(r, A) +for (fname, _fname, op) in [(:sum, :_sum, :add_sum), (:prod, :_prod, :mul_prod), + (:maximum, :_maximum, :max), (:minimum, :_minimum, :min)] + @eval begin + # User-facing methods with keyword arguments + @inline ($fname)(a::AbstractArray; dims=:) = ($_fname)(a, dims) + @inline ($fname)(f::Callable, a::AbstractArray; dims=:) = ($_fname)(f, a, dims) + + # Underlying implementations using dispatch + ($_fname)(a, ::Colon) = ($_fname)(identity, a, :) + ($_fname)(f, a, ::Colon) = mapreduce(f, $op, a) + end +end + +any(a::AbstractArray; dims=:) = _any(a, dims) +any(f::Function, a::AbstractArray; dims=:) = _any(f, a, dims) +_any(a, ::Colon) = _any(identity, a, :) +all(a::AbstractArray; dims=:) = _all(a, dims) +all(f::Function, a::AbstractArray; dims=:) = _all(f, a, dims) +_all(a, ::Colon) = _all(identity, a, :) + for (fname, op) in [(:sum, :add_sum), (:prod, :mul_prod), (:maximum, :max), (:minimum, :min), - (:all, :&), (:any, :|)] + (:all, :&), (:any, :|)] fname! = Symbol(fname, '!') + _fname = Symbol('_', fname) @eval begin $(fname!)(f::Function, r::AbstractArray, A::AbstractArray; init::Bool=true) = mapreducedim!(f, $(op), initarray!(r, $(op), init, A), A) $(fname!)(r::AbstractArray, A::AbstractArray; init::Bool=true) = $(fname!)(identity, r, A; init=init) - $(fname)(f::Function, A::AbstractArray, region) = - mapreducedim(f, $(op), A, region) - $(fname)(A::AbstractArray, region) = $(fname)(identity, A, region) + $(_fname)(A, dims) = $(_fname)(identity, A, dims) + $(_fname)(f, A, dims) = mapreduce(f, $(op), A, dims=dims) end end @@ -679,9 +715,9 @@ function findmin!(rval::AbstractArray, rind::AbstractArray, A::AbstractArray; end """ - findmin(A, region) -> (minval, index) + findmin(A; dims) -> (minval, index) -For an array input, returns the value and index of the minimum over the given region. +For an array input, returns the value and index of the minimum over the given dimensions. `NaN` is treated as less than all other values. # Examples @@ -691,14 +727,16 @@ julia> A = [1.0 2; 3 4] 1.0 2.0 3.0 4.0 -julia> findmin(A, 1) +julia> findmin(A, dims=1) ([1.0 2.0], CartesianIndex{2}[CartesianIndex(1, 1) CartesianIndex(1, 2)]) -julia> findmin(A, 2) +julia> findmin(A, dims=2) ([1.0; 3.0], CartesianIndex{2}[CartesianIndex(1, 1); CartesianIndex(2, 1)]) ``` """ -function findmin(A::AbstractArray{T}, region) where T +findmin(A::AbstractArray; dims=:) = _findmin(A, dims) + +function _findmin(A, region) ri = reduced_indices0(A, region) if isempty(A) if prod(map(length, reduced_indices(A, region))) != 0 @@ -726,9 +764,9 @@ function findmax!(rval::AbstractArray, rind::AbstractArray, A::AbstractArray; end """ - findmax(A, region) -> (maxval, index) + findmax(A; dims) -> (maxval, index) -For an array input, returns the value and index of the maximum over the given region. +For an array input, returns the value and index of the maximum over the given dimensions. `NaN` is treated as greater than all other values. # Examples @@ -738,14 +776,16 @@ julia> A = [1.0 2; 3 4] 1.0 2.0 3.0 4.0 -julia> findmax(A,1) +julia> findmax(A, dims=1) ([3.0 4.0], CartesianIndex{2}[CartesianIndex(2, 1) CartesianIndex(2, 2)]) -julia> findmax(A,2) +julia> findmax(A, dims=2) ([2.0; 4.0], CartesianIndex{2}[CartesianIndex(1, 2); CartesianIndex(2, 2)]) ``` """ -function findmax(A::AbstractArray{T}, region) where T +findmax(A::AbstractArray; dims=:) = _findmax(A, dims) + +function _findmax(A, region) ri = reduced_indices0(A, region) if isempty(A) if prod(map(length, reduced_indices(A, region))) != 0 diff --git a/base/refpointer.jl b/base/refpointer.jl index 68200db4061e47..bddaaaeb886a0c 100644 --- a/base/refpointer.jl +++ b/base/refpointer.jl @@ -40,37 +40,8 @@ convert(::Type{Ref{T}}, x::Ref{T}) where {T} = x unsafe_convert(::Type{Ref{T}}, x::Ref{T}) where {T} = unsafe_convert(Ptr{T}, x) unsafe_convert(::Type{Ref{T}}, x) where {T} = unsafe_convert(Ptr{T}, x) -### Methods for a Ref object that can store a single value of any type - -mutable struct RefValue{T} <: Ref{T} - x::T - RefValue{T}() where {T} = new() - RefValue{T}(x) where {T} = new(x) -end -RefValue(x::T) where {T} = RefValue{T}(x) -isassigned(x::RefValue) = isdefined(x, :x) - convert(::Type{Ref{T}}, x) where {T} = RefValue{T}(x) -function unsafe_convert(P::Type{Ptr{T}}, b::RefValue{T}) where T - if datatype_pointerfree(RefValue{T}) - p = pointer_from_objref(b) - elseif isconcretetype(T) && T.mutable - p = pointer_from_objref(b.x) - else - # If the slot is not leaf type, it could be either immutable or not. - # If it is actually an immutable, then we can't take it's pointer directly - # Instead, explicitly load the pointer from the `RefValue`, - # which also ensures this returns same pointer as the one rooted in the `RefValue` object. - p = pointerref(Ptr{Ptr{Cvoid}}(pointer_from_objref(b)), 1, Core.sizeof(Ptr{Cvoid})) - end - return convert(P, p) -end -function unsafe_convert(P::Type{Ptr{Any}}, b::RefValue{Any}) - return convert(P, pointer_from_objref(b)) -end -unsafe_convert(::Type{Ptr{Cvoid}}, b::RefValue{T}) where {T} = convert(Ptr{Cvoid}, unsafe_convert(Ptr{T}, b)) - ### Methods for a Ref object that is backed by an array at index i struct RefArray{T,A<:AbstractArray{T},R} <: Ref{T} x::A @@ -137,10 +108,7 @@ cconvert(::Type{Ref{P}}, a::Array) where {P<:Union{Ptr,Cwstring,Cstring}} = Ref{ ### -getindex(b::RefValue) = b.x getindex(b::RefArray) = b.x[b.i] - -setindex!(b::RefValue, x) = (b.x = x; b) setindex!(b::RefArray, x) = (b.x[b.i] = x; b) ### diff --git a/base/refvalue.jl b/base/refvalue.jl new file mode 100644 index 00000000000000..fd815e2b381936 --- /dev/null +++ b/base/refvalue.jl @@ -0,0 +1,31 @@ +### Methods for a Ref object that can store a single value of any type + +mutable struct RefValue{T} <: Ref{T} + x::T + RefValue{T}() where {T} = new() + RefValue{T}(x) where {T} = new(x) +end +RefValue(x::T) where {T} = RefValue{T}(x) +isassigned(x::RefValue) = isdefined(x, :x) + +function unsafe_convert(P::Type{Ptr{T}}, b::RefValue{T}) where T + if datatype_pointerfree(RefValue{T}) + p = pointer_from_objref(b) + elseif isconcretetype(T) && T.mutable + p = pointer_from_objref(b.x) + else + # If the slot is not leaf type, it could be either immutable or not. + # If it is actually an immutable, then we can't take it's pointer directly + # Instead, explicitly load the pointer from the `RefValue`, + # which also ensures this returns same pointer as the one rooted in the `RefValue` object. + p = pointerref(Ptr{Ptr{Cvoid}}(pointer_from_objref(b)), 1, Core.sizeof(Ptr{Cvoid})) + end + return convert(P, p) +end +function unsafe_convert(P::Type{Ptr{Any}}, b::RefValue{Any}) + return convert(P, pointer_from_objref(b)) +end +unsafe_convert(::Type{Ptr{Cvoid}}, b::RefValue{T}) where {T} = convert(Ptr{Cvoid}, unsafe_convert(Ptr{T}, b)) + +getindex(b::RefValue) = b.x +setindex!(b::RefValue, x) = (b.x = x; b) diff --git a/base/regex.jl b/base/regex.jl index 9056eee79c18e6..e2423529d3711c 100644 --- a/base/regex.jl +++ b/base/regex.jl @@ -205,66 +205,6 @@ match(r::Regex, s::AbstractString, i::Integer) = throw(ArgumentError( "regex matching is only available for the String type; use String(s) to convert" )) -""" - matchall(r::Regex, s::AbstractString; overlap::Bool = false]) -> Vector{AbstractString} - -Return a vector of the matching substrings from [`eachmatch`](@ref). - - -# Examples -```jldoctest -julia> rx = r"a.a" -r"a.a" - -julia> matchall(rx, "a1a2a3a") -2-element Array{SubString{String},1}: - "a1a" - "a3a" - -julia> matchall(rx, "a1a2a3a", overlap = true) -3-element Array{SubString{String},1}: - "a1a" - "a2a" - "a3a" -``` -""" -function matchall(re::Regex, str::String; overlap::Bool = false) - regex = compile(re).regex - n = sizeof(str) - matches = SubString{String}[] - offset = UInt32(0) - opts = re.match_options - opts_nonempty = opts | PCRE.ANCHORED | PCRE.NOTEMPTY_ATSTART - prevempty = false - ovec = re.ovec - while true - result = PCRE.exec(regex, str, offset, prevempty ? opts_nonempty : opts, re.match_data) - if !result - if prevempty && offset < n - offset = UInt32(nextind(str, offset + 1) - 1) - prevempty = false - continue - else - break - end - end - - push!(matches, SubString(str, ovec[1]+1, ovec[2])) - prevempty = offset == ovec[2] - if overlap - if !prevempty - offset = UInt32(ovec[1]+1) - end - else - offset = ovec[2] - end - end - matches -end - -matchall(re::Regex, str::SubString; overlap::Bool = false) = - matchall(re, String(str), overlap = overlap) - # TODO: return only start index and update deprecation function findnext(re::Regex, str::Union{String,SubString}, idx::Integer) if idx > nextind(str,lastindex(str)) diff --git a/base/reinterpretarray.jl b/base/reinterpretarray.jl index 81a45af7bc33f8..efbec54c1e7e23 100644 --- a/base/reinterpretarray.jl +++ b/base/reinterpretarray.jl @@ -36,6 +36,7 @@ struct ReinterpretArray{T,N,S,A<:AbstractArray{S, N}} <: AbstractArray{T, N} end parent(a::ReinterpretArray) = a.parent +dataids(a::ReinterpretArray) = dataids(a.parent) function size(a::ReinterpretArray{T,N,S} where {N}) where {T,S} psize = size(a.parent) diff --git a/base/reshapedarray.jl b/base/reshapedarray.jl index e7749b9a979602..2c94ea834c8a89 100644 --- a/base/reshapedarray.jl +++ b/base/reshapedarray.jl @@ -180,6 +180,9 @@ parent(A::ReshapedArray) = A.parent parentindices(A::ReshapedArray) = map(s->1:s, size(parent(A))) reinterpret(::Type{T}, A::ReshapedArray, dims::Dims) where {T} = reinterpret(T, parent(A), dims) +unaliascopy(A::ReshapedArray) = typeof(A)(unaliascopy(A.parent), A.dims, A.mi) +dataids(A::ReshapedArray) = dataids(A.parent) + @inline ind2sub_rs(::Tuple{}, i::Int) = i @inline ind2sub_rs(strds, i) = _ind2sub_rs(strds, i - 1) @inline _ind2sub_rs(::Tuple{}, ind) = (ind + 1,) diff --git a/base/set.jl b/base/set.jl index 5775af5f3fca41..41238f14dd4a4d 100644 --- a/base/set.jl +++ b/base/set.jl @@ -1,7 +1,5 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -eltype(::Type{<:AbstractSet{T}}) where {T} = @isdefined(T) ? T : Any - struct Set{T} <: AbstractSet{T} dict::Dict{T,Nothing} @@ -72,256 +70,6 @@ done(s::Set, state) = done(s.dict, state) # NOTE: manually optimized to take advantage of Dict representation next(s::Set, i) = (s.dict.keys[i], skip_deleted(s.dict, i+1)) -""" - union(s, itrs...) - ∪(s, itrs...) - -Construct the union of sets. Maintain order with arrays. - -# Examples -```jldoctest -julia> union([1, 2], [3, 4]) -4-element Array{Int64,1}: - 1 - 2 - 3 - 4 - -julia> union([1, 2], [2, 4]) -3-element Array{Int64,1}: - 1 - 2 - 4 - -julia> union([4, 2], 1:2) -3-element Array{Int64,1}: - 4 - 2 - 1 - -julia> union(Set([1, 2]), 2:3) -Set([2, 3, 1]) -``` -""" -function union end - -_in(itr) = x -> x in itr - -union(s, sets...) = union!(emptymutable(s, promote_eltype(s, sets...)), s, sets...) -union(s::AbstractSet) = copy(s) - -const ∪ = union - -""" - union!(s::Union{AbstractSet,AbstractVector}, itrs...) - -Construct the union of passed in sets and overwrite `s` with the result. -Maintain order with arrays. - -# Examples -```jldoctest -julia> a = Set([1, 3, 4, 5]); - -julia> union!(a, 1:2:8); - -julia> a -Set([7, 4, 3, 5, 1]) -``` -""" -union!(s::AbstractSet, sets...) = foldl(union!, s, sets) - -# default generic 2-args implementation with push! -union!(s::AbstractSet, itr) = foldl(push!, s, itr) - -function union!(s::Set{T}, itr) where T - haslength(itr) && sizehint!(s, length(itr)) - for x=itr - push!(s, x) - length(s) == max_values(T) && break - end - s -end - - -""" - intersect(s, itrs...) - ∩(s, itrs...) - -Construct the intersection of sets. -Maintain order with arrays. - -# Examples -```jldoctest -julia> intersect([1, 2, 3], [3, 4, 5]) -1-element Array{Int64,1}: - 3 - -julia> intersect([1, 4, 4, 5, 6], [4, 6, 6, 7, 8]) -2-element Array{Int64,1}: - 4 - 6 - -julia> intersect(Set([1, 2]), BitSet([2, 3])) -Set([2]) -``` -""" -intersect(s::AbstractSet, itr, itrs...) = intersect!(intersect(s, itr), itrs...) -intersect(s) = union(s) -intersect(s::AbstractSet, itr) = mapfilter(_in(s), push!, itr, emptymutable(s)) - -const ∩ = intersect - -""" - intersect!(s::Union{AbstractSet,AbstractVector}, itrs...) - -Intersect all passed in sets and overwrite `s` with the result. -Maintain order with arrays. -""" -intersect!(s::AbstractSet, itrs...) = foldl(intersect!, s, itrs) -intersect!(s::AbstractSet, s2::AbstractSet) = filter!(_in(s2), s) -intersect!(s::AbstractSet, itr) = intersect!(s, union!(emptymutable(s), itr)) - -""" - setdiff(s, itrs...) - -Construct the set of elements in `s` but not in any of the iterables in `itrs`. -Maintain order with arrays. - -# Examples -```jldoctest -julia> setdiff([1,2,3], [3,4,5]) -2-element Array{Int64,1}: - 1 - 2 -``` -""" -setdiff(s::AbstractSet, itrs...) = setdiff!(copymutable(s), itrs...) -setdiff(s) = union(s) - -""" - setdiff!(s, itrs...) - -Remove from set `s` (in-place) each element of each iterable from `itrs`. -Maintain order with arrays. - -# Examples -```jldoctest -julia> a = Set([1, 3, 4, 5]); - -julia> setdiff!(a, 1:2:6); - -julia> a -Set([4]) -``` -""" -setdiff!(s::AbstractSet, itrs...) = foldl(setdiff!, s, itrs) -setdiff!(s::AbstractSet, itr) = foldl(delete!, s, itr) - - -""" - symdiff(s, itrs...) - -Construct the symmetric difference of elements in the passed in sets. -When `s` is not an `AbstractSet`, the order is maintained. -Note that in this case the multiplicity of elements matters. - -# Examples -```jldoctest -julia> symdiff([1,2,3], [3,4,5], [4,5,6]) -3-element Array{Int64,1}: - 1 - 2 - 6 - -julia> symdiff([1,2,1], [2, 1, 2]) -2-element Array{Int64,1}: - 1 - 2 - -julia> symdiff(unique([1,2,1]), unique([2, 1, 2])) -0-element Array{Int64,1} -``` -""" -symdiff(s, sets...) = symdiff!(emptymutable(s, promote_eltype(s, sets...)), s, sets...) -symdiff(s) = symdiff!(copy(s)) - -""" - symdiff!(s::Union{AbstractSet,AbstractVector}, itrs...) - -Construct the symmetric difference of the passed in sets, and overwrite `s` with the result. -When `s` is an array, the order is maintained. -Note that in this case the multiplicity of elements matters. -""" -symdiff!(s::AbstractSet, itrs...) = foldl(symdiff!, s, itrs) - -function symdiff!(s::AbstractSet, itr) - for x in itr - x in s ? delete!(s, x) : push!(s, x) - end - s -end - -==(l::AbstractSet, r::AbstractSet) = length(l) == length(r) && l ⊆ r -# convenience functions for AbstractSet -# (if needed, only their synonyms ⊊ and ⊆ must be specialized) -<( l::AbstractSet, r::AbstractSet) = l ⊊ r -<=(l::AbstractSet, r::AbstractSet) = l ⊆ r - -""" - issubset(a, b) - ⊆(a,b) -> Bool - ⊈(a,b) -> Bool - ⊊(a,b) -> Bool - -Determine whether every element of `a` is also in `b`, using [`in`](@ref). - -# Examples -```jldoctest -julia> issubset([1, 2], [1, 2, 3]) -true - -julia> issubset([1, 2, 3], [1, 2]) -false -``` -""" -function issubset(l, r) - for elt in l - if !in(elt, r) - return false - end - end - return true -end -# use the implementation below when it becoms as efficient -# issubset(l, r) = all(_in(r), l) - -const ⊆ = issubset - -""" - issetequal(a, b) - -Determine whether `a` and `b` have the same elements. Equivalent -to `a ⊆ b && b ⊆ a`. - -# Examples -```jldoctest -julia> issetequal([1, 2], [1, 2, 3]) -false - -julia> issetequal([1, 2], [2, 1]) -true -``` -""" -issetequal(l, r) = length(l) == length(r) && l ⊆ r -issetequal(l::AbstractSet, r::AbstractSet) = l == r - -⊊(l, r) = length(l) < length(r) && l ⊆ r -⊈(l, r) = !⊆(l, r) - -⊇(l, r) = r ⊆ l -⊉(l, r) = r ⊈ l -⊋(l, r) = r ⊊ l - """ unique(itr) @@ -535,20 +283,8 @@ allunique(::Set) = true allunique(r::AbstractRange{T}) where {T} = (step(r) != zero(T)) || (length(r) <= 1) -filter(pred, s::AbstractSet) = mapfilter(pred, push!, s, emptymutable(s)) filter!(f, s::Set) = unsafe_filter!(f, s) -# it must be safe to delete the current element while iterating over s: -unsafe_filter!(pred, s::AbstractSet) = mapfilter(!pred, delete!, s, s) - -# TODO: delete mapfilter in favor of comprehensions/foldl/filter when competitive -function mapfilter(pred, f, itr, res) - for x in itr - pred(x) && f(res, x) - end - res -end - const hashs_seed = UInt === UInt64 ? 0x852ada37cfe8e0ce : 0xcfe8e0ce function hash(s::AbstractSet, h::UInt) hv = hashs_seed diff --git a/base/show.jl b/base/show.jl index c185fc0f727ea1..3ae04fe14b0fae 100644 --- a/base/show.jl +++ b/base/show.jl @@ -168,7 +168,7 @@ struct IOContext{IO_t <: IO} <: AbstractPipe dict::ImmutableDict{Symbol, Any} function IOContext{IO_t}(io::IO_t, dict::ImmutableDict{Symbol, Any}) where IO_t<:IO - assert(!(IO_t <: IOContext)) + @assert !(IO_t <: IOContext) "Cannot create `IOContext` from another `IOContext`." return new(io, dict) end end @@ -236,7 +236,7 @@ julia> io = IOBuffer(); julia> printstyled(IOContext(io, :color => true), "string", color=:red) julia> String(take!(io)) -"\e[31mstring\e[39m" +"\\e[31mstring\\e[39m" julia> printstyled(io, "string", color=:red) @@ -245,9 +245,9 @@ julia> String(take!(io)) ``` ```jldoctest -julia> print(IOContext(STDOUT, :compact => false), 1.12341234) +julia> print(IOContext(stdout, :compact => false), 1.12341234) 1.12341234 -julia> print(IOContext(STDOUT, :compact => true), 1.12341234) +julia> print(IOContext(stdout, :compact => true), 1.12341234) 1.12341 ``` @@ -261,9 +261,9 @@ julia> function f(io::IO) end f (generic function with 1 method) -julia> f(STDOUT) +julia> f(stdout) loooooong -julia> f(IOContext(STDOUT, :short => true)) +julia> f(IOContext(stdout, :short => true)) short ``` """ @@ -309,7 +309,7 @@ Write an informative text representation of a value to the current output stream should overload `show(io, x)` where the first argument is a stream. The representation used by `show` generally includes Julia-specific formatting and type information. """ -show(x) = show(STDOUT::IO, x) +show(x) = show(stdout::IO, x) show(io::IO, @nospecialize(x)) = show_default(io, x) @@ -341,7 +341,7 @@ function show_default(io::IO, @nospecialize(x)) GC.@preserve r begin p = unsafe_convert(Ptr{Cvoid}, r) for i in (nb - 1):-1:0 - print(io, hex(unsafe_load(convert(Ptr{UInt8}, p + i)), 2)) + print(io, string(unsafe_load(convert(Ptr{UInt8}, p + i)), base = 16, pad = 2)) end end end @@ -529,7 +529,7 @@ function show_supertypes(io::IO, typ::DataType) end end -show_supertypes(typ::DataType) = show_supertypes(STDOUT, typ) +show_supertypes(typ::DataType) = show_supertypes(stdout, typ) """ @show @@ -552,11 +552,11 @@ end show(io::IO, ::Nothing) = print(io, "nothing") show(io::IO, b::Bool) = print(io, b ? "true" : "false") -show(io::IO, n::Signed) = (write(io, dec(n)); nothing) -show(io::IO, n::Unsigned) = print(io, "0x", hex(n,sizeof(n)<<1)) -print(io::IO, n::Unsigned) = print(io, dec(n)) +show(io::IO, n::Signed) = (write(io, string(n)); nothing) +show(io::IO, n::Unsigned) = print(io, "0x", string(n, pad = sizeof(n)<<1, base = 16)) +print(io::IO, n::Unsigned) = print(io, string(n)) -show(io::IO, p::Ptr) = print(io, typeof(p), " @0x$(hex(UInt(p), Sys.WORD_SIZE>>2))") +show(io::IO, p::Ptr) = print(io, typeof(p), " @0x$(string(UInt(p), base = 16, pad = Sys.WORD_SIZE>>2))") has_tight_type(p::Pair) = typeof(p.first) == typeof(p).parameters[1] && @@ -685,7 +685,7 @@ function show_delim_array(io::IO, itr, op, delim, cl, delim_one, i1=1, n=typemax while true x, state = next(itr, state) show(IOContext(recur_io, :typeinfo => - typeinfo <: Tuple ? typeinfo.parameters[i1+i0] : typeinfo), + typeinfo <: Tuple ? fieldtype(typeinfo, i1+i0) : typeinfo), x) i1 += 1 if done(itr, state) || i1 > n @@ -823,7 +823,7 @@ operators. Return `0` if `s` is not a valid operator. # Examples ```jldoctest julia> Base.operator_precedence(:+), Base.operator_precedence(:*), Base.operator_precedence(:.) -(9, 11, 15) +(11, 13, 17) julia> Base.operator_precedence(:sin), Base.operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) (0, 1, 1) @@ -1756,7 +1756,7 @@ DeeplyNested 1: DeeplyNested ``` """ -dump(arg; maxdepth=DUMP_DEFAULT_MAXDEPTH) = dump(IOContext(STDOUT::IO, :limit => true), arg; maxdepth=maxdepth) +dump(arg; maxdepth=DUMP_DEFAULT_MAXDEPTH) = dump(IOContext(stdout::IO, :limit => true), arg; maxdepth=maxdepth) """ @@ -1946,7 +1946,7 @@ end showcompact(io::IO, x) Show a compact representation of a value to `io`. If `io` is not specified, the -default is to print to [`STDOUT`](@ref). +default is to print to [`stdout`](@ref). This is used for printing array elements without repeating type information (which would be redundant with that printed once for the whole array), and without line breaks inside @@ -1966,7 +1966,7 @@ julia> showcompact(A) [1.0 2.0; 3.0 4.0] ``` """ -showcompact(x) = showcompact(STDOUT, x) +showcompact(x) = showcompact(stdout, x) function showcompact(io::IO, x) if get(io, :compact, false) show(io, x) @@ -1990,8 +1990,8 @@ function print_bit_chunk(io::IO, c::UInt64, l::Integer = 64) end end -print_bit_chunk(c::UInt64, l::Integer) = print_bit_chunk(STDOUT, c, l) -print_bit_chunk(c::UInt64) = print_bit_chunk(STDOUT, c) +print_bit_chunk(c::UInt64, l::Integer) = print_bit_chunk(stdout, c, l) +print_bit_chunk(c::UInt64) = print_bit_chunk(stdout, c) function bitshow(io::IO, B::BitArray) isempty(B) && return @@ -2003,6 +2003,6 @@ function bitshow(io::IO, B::BitArray) l = _mod64(length(B)-1) + 1 print_bit_chunk(io, Bc[end], l) end -bitshow(B::BitArray) = bitshow(STDOUT, B) +bitshow(B::BitArray) = bitshow(stdout, B) bitstring(B::BitArray) = sprint(bitshow, B) diff --git a/base/some.jl b/base/some.jl index 1c066bc5f07687..f75a493d91703d 100644 --- a/base/some.jl +++ b/base/some.jl @@ -51,8 +51,7 @@ julia> coalesce(missing, 1) julia> coalesce(1, nothing) 1 -julia> coalesce(nothing, nothing) -nothing +julia> coalesce(nothing, nothing) # returns nothing, but not printed in the REPL julia> coalesce(Some(1)) 1 diff --git a/base/sort.jl b/base/sort.jl index f56081b9821790..8819f4c97da836 100644 --- a/base/sort.jl +++ b/base/sort.jl @@ -2,8 +2,17 @@ module Sort -using .Base.Order, .Base.Checked -using .Base: copymutable, linearindices, IndexStyle, viewindexing, IndexLinear, _length +import ..@__MODULE__, ..parentmodule +const Base = parentmodule(@__MODULE__) +using .Base.Order +using .Base: copymutable, linearindices, IndexStyle, viewindexing, IndexLinear, _length, (:), + eachindex, axes, first, last, similar, start, next, done, zip, @views, OrdinalRange, + AbstractVector, @inbounds, AbstractRange, @eval, @inline, Vector, @noinline, + AbstractMatrix, AbstractUnitRange, isless, identity, eltype, >, <, <=, >=, |, +, -, *, !, + extrema, sub_with_overflow, add_with_overflow, oneunit, div, getindex, setindex!, + length, resize!, fill + +using .Base: >>>, !== import .Base: sort, @@ -819,7 +828,11 @@ function sortperm_int_range(x::Vector{<:Integer}, rangelen, minval) @inbounds for i = 1:n where[x[i] + offs + 1] += 1 end - cumsum!(where, where) + + #cumsum!(where, where) + @inbounds for i = 2:length(where) + where[i] += where[i-1] + end P = Vector{Int}(uninitialized, n) @inbounds for i = 1:n @@ -858,13 +871,15 @@ julia> sort(A, 2) 1 2 ``` """ -function sort(A::AbstractArray, dim::Integer; +function sort(A::AbstractArray; + dims::Integer, alg::Algorithm=DEFAULT_UNSTABLE, lt=isless, by=identity, rev::Union{Bool,Nothing}=nothing, order::Ordering=Forward, initialized::Union{Bool,Nothing}=nothing) + dim = dims if initialized !== nothing Base.depwarn("`initialized` keyword argument is deprecated", :sort) end @@ -983,6 +998,7 @@ slice_dummy(::AbstractUnitRange{T}) where {T} = oneunit(T) module Float using ..Sort using ...Order +using ..Base: @inbounds, AbstractVector, Vector, last, axes import Core.Intrinsics: slt_int import ..Sort: sort! diff --git a/base/stacktraces.jl b/base/stacktraces.jl index 2dd366e91563f4..9db1a99931ec0e 100644 --- a/base/stacktraces.jl +++ b/base/stacktraces.jl @@ -133,7 +133,7 @@ function lookup(ip::Base.InterpreterIP) # interpreted top-level expression with no CodeInfo return [StackFrame(top_level_scope_sym, empty_sym, 0, nothing, false, false, 0)] else - assert(ip.code isa Core.CodeInfo) + @assert ip.code isa Core.CodeInfo codeinfo = ip.code func = top_level_scope_sym file = empty_sym diff --git a/base/stat.jl b/base/stat.jl index 0321cc64186a12..1f5aca79218648 100644 --- a/base/stat.jl +++ b/base/stat.jl @@ -57,7 +57,7 @@ StatStruct(buf::Union{Vector{UInt8},Ptr{UInt8}}) = StatStruct( ccall(:jl_stat_ctime, Float64, (Ptr{UInt8},), buf), ) -show(io::IO, st::StatStruct) = print(io, "StatStruct(mode=0o$(oct(filemode(st),6)), size=$(filesize(st)))") +show(io::IO, st::StatStruct) = print(io, "StatStruct(mode=0o$(string(filemode(st), base = 8, pad = 6)), size=$(filesize(st)))") # stat & lstat functions @@ -137,14 +137,14 @@ filesize(st::StatStruct) = st.size Equivalent to `stat(file).mtime`. """ - mtime(st::StatStruct) = st.mtime +mtime(st::StatStruct) = st.mtime """ ctime(file) Equivalent to `stat(file).ctime` """ - ctime(st::StatStruct) = st.ctime +ctime(st::StatStruct) = st.ctime # mode type predicates @@ -153,14 +153,14 @@ Equivalent to `stat(file).ctime` Returns `true` if `path` is a valid filesystem path, `false` otherwise. """ - ispath(st::StatStruct) = filemode(st) & 0xf000 != 0x0000 +ispath(st::StatStruct) = filemode(st) & 0xf000 != 0x0000 """ isfifo(path) -> Bool Returns `true` if `path` is a FIFO, `false` otherwise. """ - isfifo(st::StatStruct) = filemode(st) & 0xf000 == 0x1000 +isfifo(st::StatStruct) = filemode(st) & 0xf000 == 0x1000 """ ischardev(path) -> Bool @@ -179,16 +179,11 @@ Returns `true` if `path` is a directory, `false` otherwise. julia> isdir(homedir()) true -julia> f = open("test_file.txt", "w") -IOStream() - -julia> isdir(f) +julia> isdir("not/a/directory") false - -julia> close(f) ``` """ - isdir(st::StatStruct) = filemode(st) & 0xf000 == 0x4000 +isdir(st::StatStruct) = filemode(st) & 0xf000 == 0x4000 """ isblockdev(path) -> Bool @@ -212,24 +207,24 @@ julia> f = open("test_file.txt", "w"); julia> isfile(f) true -julia> close(f) +julia> close(f); rm("test_file.txt") ``` """ - isfile(st::StatStruct) = filemode(st) & 0xf000 == 0x8000 +isfile(st::StatStruct) = filemode(st) & 0xf000 == 0x8000 """ islink(path) -> Bool Returns `true` if `path` is a symbolic link, `false` otherwise. """ - islink(st::StatStruct) = filemode(st) & 0xf000 == 0xa000 +islink(st::StatStruct) = filemode(st) & 0xf000 == 0xa000 """ issocket(path) -> Bool Returns `true` if `path` is a socket, `false` otherwise. """ - issocket(st::StatStruct) = filemode(st) & 0xf000 == 0xc000 +issocket(st::StatStruct) = filemode(st) & 0xf000 == 0xc000 # mode permission predicates diff --git a/base/statistics.jl b/base/statistics.jl index 9a008191b9905a..cf681b6d45fc60 100644 --- a/base/statistics.jl +++ b/base/statistics.jl @@ -33,7 +33,6 @@ function mean(f::Callable, iterable) end mean(iterable) = mean(identity, iterable) mean(f::Callable, A::AbstractArray) = sum(f, A) / _length(A) -mean(A::AbstractArray) = sum(A) / _length(A) """ mean!(r, v) @@ -65,16 +64,18 @@ function mean!(R::AbstractArray, A::AbstractArray) end """ - mean(v[, region]) + mean(v; dims) -Compute the mean of whole array `v`, or optionally along the dimensions in `region`. +Compute the mean of whole array `v`, or optionally along the given dimensions. !!! note Julia does not ignore `NaN` values in the computation. Use the [`missing`](@ref) type to represent missing values, and the [`skipmissing`](@ref) function to omit them. """ -mean(A::AbstractArray{T}, region) where {T} = - mean!(reducedim_init(t -> t/2, +, A, region), A) +mean(A::AbstractArray; dims=:) = _mean(A, dims) + +_mean(A::AbstractArray{T}, region) where {T} = mean!(reducedim_init(t -> t/2, +, A, region), A) +_mean(A::AbstractArray, ::Colon) = sum(A) / _length(A) ##### variances ##### @@ -82,7 +83,9 @@ mean(A::AbstractArray{T}, region) where {T} = realXcY(x::Real, y::Real) = x*y realXcY(x::Complex, y::Complex) = real(x)*real(y) + imag(x)*imag(y) -function var(iterable; corrected::Bool=true, mean=nothing) +var(iterable; corrected::Bool=true, mean=nothing) = _var(iterable, corrected, mean) + +function _var(iterable, corrected::Bool, mean) state = start(iterable) if done(iterable, state) throw(ArgumentError("variance of empty collection undefined: $(repr(iterable))")) @@ -165,12 +168,6 @@ function centralize_sumabs2!(R::AbstractArray{S}, A::AbstractArray, means::Abstr return R end -function varm(A::AbstractArray{T}, m; corrected::Bool=true) where T - n = _length(A) - n == 0 && return typeof((abs2(zero(T)) + abs2(zero(T)))/2)(NaN) - return centralize_sumabs2(A, m) / (n - Int(corrected)) -end - function varm!(R::AbstractArray{S}, A::AbstractArray, m::AbstractArray; corrected::Bool=true) where S if isempty(A) fill!(R, convert(S, NaN)) @@ -183,10 +180,10 @@ function varm!(R::AbstractArray{S}, A::AbstractArray, m::AbstractArray; correcte end """ - varm(v, m[, region]; corrected::Bool=true) + varm(v, m; dims, corrected::Bool=true) Compute the sample variance of a collection `v` with known mean(s) `m`, -optionally over `region`. `m` may contain means for each dimension of +optionally over the given dimensions. `m` may contain means for each dimension of `v`. If `corrected` is `true`, then the sum is scaled with `n-1`, whereas the sum is scaled with `n` if `corrected` is `false` where `n = length(x)`. @@ -194,18 +191,25 @@ whereas the sum is scaled with `n` if `corrected` is `false` where `n = length(x Julia does not ignore `NaN` values in the computation. Use the [`missing`](@ref) type to represent missing values, and the [`skipmissing`](@ref) function to omit them. """ -varm(A::AbstractArray{T}, m::AbstractArray, region; corrected::Bool=true) where {T} = +varm(A::AbstractArray, m::AbstractArray; corrected::Bool=true, dims=:) = _varm(A, m, corrected, dims) + +_varm(A::AbstractArray{T}, m, corrected::Bool, region) where {T} = varm!(reducedim_init(t -> abs2(t)/2, +, A, region), A, m; corrected=corrected) +varm(A::AbstractArray, m; corrected::Bool=true) = _varm(A, m, corrected, :) + +function _varm(A::AbstractArray{T}, m, corrected::Bool, ::Colon) where T + n = _length(A) + n == 0 && return typeof((abs2(zero(T)) + abs2(zero(T)))/2)(NaN) + return centralize_sumabs2(A, m) / (n - Int(corrected)) +end -var(A::AbstractArray{T}; corrected::Bool=true, mean=nothing) where {T} = - real(varm(A, coalesce(mean, Base.mean(A)); corrected=corrected)) """ - var(v[, region]; corrected::Bool=true, mean=nothing) + var(v; dims, corrected::Bool=true, mean=nothing) -Compute the sample variance of a vector or array `v`, optionally along dimensions in -`region`. The algorithm will return an estimator of the generative distribution's variance +Compute the sample variance of a vector or array `v`, optionally along the given dimensions. +The algorithm will return an estimator of the generative distribution's variance under the assumption that each entry of `v` is an IID drawn from that generative distribution. This computation is equivalent to calculating `sum(abs2, v - mean(v)) / (length(v) - 1)`. If `corrected` is `true`, then the sum is scaled with `n-1`, @@ -216,15 +220,22 @@ The mean `mean` over the region may be provided. Julia does not ignore `NaN` values in the computation. Use the [`missing`](@ref) type to represent missing values, and the [`skipmissing`](@ref) function to omit them. """ -var(A::AbstractArray, region; corrected::Bool=true, mean=nothing) = - varm(A, coalesce(mean, Base.mean(A, region)), region; corrected=corrected) +var(A::AbstractArray; corrected::Bool=true, mean=nothing, dims=:) = _var(A, corrected, mean, dims) -varm(iterable, m; corrected::Bool=true) = - var(iterable, corrected=corrected, mean=m) +_var(A::AbstractArray, corrected::Bool, mean, dims) = + varm(A, coalesce(mean, Base.mean(A, dims=dims)); corrected=corrected, dims=dims) + +_var(A::AbstractArray, corrected::Bool, mean, ::Colon) = + real(varm(A, coalesce(mean, Base.mean(A)); corrected=corrected)) + +varm(iterable, m; corrected::Bool=true) = _var(iterable, corrected, m) ## variances over ranges -function varm(v::AbstractRange, m) +varm(v::AbstractRange, m::AbstractArray) = range_varm(v, m) +varm(v::AbstractRange, m) = range_varm(v, m) + +function range_varm(v::AbstractRange, m) f = first(v) - m s = step(v) l = length(v) @@ -258,14 +269,11 @@ end stdm(A::AbstractArray, m; corrected::Bool=true) = sqrt.(varm(A, m; corrected=corrected)) -std(A::AbstractArray; corrected::Bool=true, mean=nothing) = - sqrt.(var(A; corrected=corrected, mean=mean)) - """ - std(v[, region]; corrected::Bool=true, mean=nothing) + std(v; corrected::Bool=true, mean=nothing, dims) -Compute the sample standard deviation of a vector or array `v`, optionally along dimensions -in `region`. The algorithm returns an estimator of the generative distribution's standard +Compute the sample standard deviation of a vector or array `v`, optionally along the given +dimensions. The algorithm returns an estimator of the generative distribution's standard deviation under the assumption that each entry of `v` is an IID drawn from that generative distribution. This computation is equivalent to calculating `sqrt(sum((v - mean(v)).^2) / (length(v) - 1))`. A pre-computed `mean` may be provided. If `corrected` is `true`, @@ -276,11 +284,19 @@ then the sum is scaled with `n-1`, whereas the sum is scaled with `n` if `correc Julia does not ignore `NaN` values in the computation. Use the [`missing`](@ref) type to represent missing values, and the [`skipmissing`](@ref) function to omit them. """ -std(A::AbstractArray, region; corrected::Bool=true, mean=nothing) = - sqrt.(var(A, region; corrected=corrected, mean=mean)) +std(A::AbstractArray; corrected::Bool=true, mean=nothing, dims=:) = _std(A, corrected, mean, dims) -std(A::AbstractArray{<:AbstractFloat}, region; corrected::Bool=true, mean=nothing) = - sqrt!(var(A, region; corrected=corrected, mean=mean)) +_std(A::AbstractArray, corrected::Bool, mean, dims) = + sqrt.(var(A; corrected=corrected, mean=mean, dims=dims)) + +_std(A::AbstractArray, corrected::Bool, mean, ::Colon) = + sqrt.(var(A; corrected=corrected, mean=mean)) + +_std(A::AbstractArray{<:AbstractFloat}, corrected::Bool, mean, dims) = + sqrt!(var(A; corrected=corrected, mean=mean, dims=dims)) + +_std(A::AbstractArray{<:AbstractFloat}, corrected::Bool, mean, ::Colon) = + sqrt.(var(A; corrected=corrected, mean=mean)) std(iterable; corrected::Bool=true, mean=nothing) = sqrt(var(iterable, corrected=corrected, mean=mean)) @@ -318,7 +334,7 @@ function _getnobs(x::AbstractVecOrMat, y::AbstractVecOrMat, vardim::Int) end _vmean(x::AbstractVector, vardim::Int) = mean(x) -_vmean(x::AbstractMatrix, vardim::Int) = mean(x, vardim) +_vmean(x::AbstractMatrix, vardim::Int) = mean(x, dims=vardim) # core functions @@ -378,14 +394,14 @@ is scaled with `n-1`, whereas the sum is scaled with `n` if `corrected` is `fals cov(x::AbstractVector; corrected::Bool=true) = covm(x, Base.mean(x); corrected=corrected) """ - cov(X::AbstractMatrix[, vardim::Int=1]; corrected::Bool=true) + cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true) -Compute the covariance matrix of the matrix `X` along the dimension `vardim`. If `corrected` +Compute the covariance matrix of the matrix `X` along the dimension `dims`. If `corrected` is `true` (the default) then the sum is scaled with `n-1`, whereas the sum is scaled with `n` -if `corrected` is `false` where `n = size(X, vardim)`. +if `corrected` is `false` where `n = size(X, dims)`. """ -cov(X::AbstractMatrix, vardim::Int=1; corrected::Bool=true) = - covm(X, _vmean(X, vardim), vardim; corrected=corrected) +cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true) = + covm(X, _vmean(X, dims), dims; corrected=corrected) """ cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true) @@ -399,14 +415,14 @@ cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true) = covm(x, Base.mean(x), y, Base.mean(y); corrected=corrected) """ - cov(X::AbstractVecOrMat, Y::AbstractVecOrMat[, vardim::Int=1]; corrected::Bool=true) + cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true) Compute the covariance between the vectors or matrices `X` and `Y` along the dimension -`vardim`. If `corrected` is `true` (the default) then the sum is scaled with `n-1`, whereas -the sum is scaled with `n` if `corrected` is `false` where `n = size(X, vardim) = size(Y, vardim)`. +`dims`. If `corrected` is `true` (the default) then the sum is scaled with `n-1`, whereas +the sum is scaled with `n` if `corrected` is `false` where `n = size(X, dims) = size(Y, dims)`. """ -cov(X::AbstractVecOrMat, Y::AbstractVecOrMat, vardim::Int=1; corrected::Bool=true) = - covm(X, _vmean(X, vardim), Y, _vmean(Y, vardim), vardim; corrected=corrected) +cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true) = + covm(X, _vmean(X, dims), Y, _vmean(Y, dims), dims; corrected=corrected) ##### correlation ##### @@ -474,11 +490,11 @@ function corzm(x::AbstractMatrix, vardim::Int=1) return cov2cor!(c, collect(sqrt(c[i,i]) for i in 1:min(size(c)...))) end corzm(x::AbstractVector, y::AbstractMatrix, vardim::Int=1) = - cov2cor!(unscaled_covzm(x, y, vardim), sqrt(sum(abs2, x)), sqrt!(sum(abs2, y, vardim))) + cov2cor!(unscaled_covzm(x, y, vardim), sqrt(sum(abs2, x)), sqrt!(sum(abs2, y, dims=vardim))) corzm(x::AbstractMatrix, y::AbstractVector, vardim::Int=1) = - cov2cor!(unscaled_covzm(x, y, vardim), sqrt!(sum(abs2, x, vardim)), sqrt(sum(abs2, y))) + cov2cor!(unscaled_covzm(x, y, vardim), sqrt!(sum(abs2, x, dims=vardim)), sqrt(sum(abs2, y))) corzm(x::AbstractMatrix, y::AbstractMatrix, vardim::Int=1) = - cov2cor!(unscaled_covzm(x, y, vardim), sqrt!(sum(abs2, x, vardim)), sqrt!(sum(abs2, y, vardim))) + cov2cor!(unscaled_covzm(x, y, vardim), sqrt!(sum(abs2, x, dims=vardim)), sqrt!(sum(abs2, y, dims=vardim))) # corm @@ -518,11 +534,11 @@ Return the number one. cor(x::AbstractVector) = one(real(eltype(x))) """ - cor(X::AbstractMatrix[, vardim::Int=1]) + cor(X::AbstractMatrix; dims::Int=1) -Compute the Pearson correlation matrix of the matrix `X` along the dimension `vardim`. +Compute the Pearson correlation matrix of the matrix `X` along the dimension `dims`. """ -cor(X::AbstractMatrix, vardim::Int=1) = corm(X, _vmean(X, vardim), vardim) +cor(X::AbstractMatrix; dims::Int=1) = corm(X, _vmean(X, dims), dims) """ cor(x::AbstractVector, y::AbstractVector) @@ -532,12 +548,12 @@ Compute the Pearson correlation between the vectors `x` and `y`. cor(x::AbstractVector, y::AbstractVector) = corm(x, Base.mean(x), y, Base.mean(y)) """ - cor(X::AbstractVecOrMat, Y::AbstractVecOrMat[, vardim=1]) + cor(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims=1) -Compute the Pearson correlation between the vectors or matrices `X` and `Y` along the dimension `vardim`. +Compute the Pearson correlation between the vectors or matrices `X` and `Y` along the dimension `dims`. """ -cor(x::AbstractVecOrMat, y::AbstractVecOrMat, vardim::Int=1) = - corm(x, _vmean(x, vardim), y, _vmean(y, vardim), vardim) +cor(x::AbstractVecOrMat, y::AbstractVecOrMat; dims::Int=1) = + corm(x, _vmean(x, dims), y, _vmean(y, dims), dims) ##### median & quantiles ##### @@ -615,13 +631,12 @@ function median!(v::AbstractVector) end end median!(v::AbstractArray) = median!(vec(v)) -median(v::AbstractArray{T}) where {T} = median!(copyto!(Array{T,1}(uninitialized, _length(v)), v)) """ - median(v[, region]) + median(v; dims) Compute the median of an entire array `v`, or, optionally, -along the dimensions in `region`. For an even number of +along the given dimensions. For an even number of elements no exact median element exists, so the result is equivalent to calculating mean of two median elements. @@ -629,7 +644,11 @@ equivalent to calculating mean of two median elements. Julia does not ignore `NaN` values in the computation. Use the [`missing`](@ref) type to represent missing values, and the [`skipmissing`](@ref) function to omit them. """ -median(v::AbstractArray, region) = mapslices(median!, v, region) +median(v::AbstractArray; dims=:) = _median(v, dims) + +_median(v::AbstractArray, dims) = mapslices(median!, v, dims) + +_median(v::AbstractArray{T}, ::Colon) where {T} = median!(copyto!(Array{T,1}(uninitialized, _length(v)), v)) # for now, use the R/S definition of quantile; may want variants later # see ?quantile in R -- this is type 7 diff --git a/base/stream.jl b/base/stream.jl index 502bfcab8e79f1..84d36f9606e4a1 100644 --- a/base/stream.jl +++ b/base/stream.jl @@ -148,30 +148,6 @@ function PipeEndpoint() return pipe end -mutable struct PipeServer <: LibuvServer - handle::Ptr{Cvoid} - status::Int - connectnotify::Condition - closenotify::Condition - function PipeServer(handle::Ptr{Cvoid}, status) - p = new(handle, - status, - Condition(), - Condition()) - associate_julia_struct(p.handle, p) - finalizer(uvfinalize, p) - return p - end -end - -function PipeServer() - pipe = PipeServer(Libc.malloc(_sizeof_uv_named_pipe), StatusUninit) - err = ccall(:uv_pipe_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Cint), eventloop(), pipe.handle, 0) - uv_error("failed to create pipe server", err) - pipe.status = StatusInit - return pipe -end - mutable struct TTY <: LibuvStream handle::Ptr{Cvoid} status::Int @@ -240,6 +216,8 @@ unlock(s::LibuvStream) = unlock(s.lock) rawhandle(stream::LibuvStream) = stream.handle unsafe_convert(::Type{Ptr{Cvoid}}, s::Union{LibuvStream, LibuvServer}) = s.handle +const Sockets_mod = Ref{Module}() + function init_stdio(handle::Ptr{Cvoid}) t = ccall(:jl_uv_handle_type, Int32, (Ptr{Cvoid},), handle) if t == UV_FILE @@ -255,7 +233,10 @@ function init_stdio(handle::Ptr{Cvoid}) elseif t == UV_TTY return TTY(handle, StatusOpen) elseif t == UV_TCP - return TCPSocket(handle, StatusOpen) + if !isassigned(Sockets_mod) + Sockets_mod[] = Base.require(Base, :Sockets) + end + return Sockets_mod[].TCPSocket(handle, StatusOpen) elseif t == UV_NAMED_PIPE return PipeEndpoint(handle, StatusOpen) else @@ -391,7 +372,7 @@ julia> withenv("LINES" => 30, "COLUMNS" => 100) do To get your TTY size, ```julia -julia> displaysize(STDOUT) +julia> displaysize(stdout) (34, 147) ``` """ @@ -435,35 +416,6 @@ get(::TTY, key::Symbol, default) = key === :color ? have_color : default ### Libuv callbacks ### -#from `connect` -function uv_connectcb(conn::Ptr{Cvoid}, status::Cint) - hand = ccall(:jl_uv_connect_handle, Ptr{Cvoid}, (Ptr{Cvoid},), conn) - sock = @handle_as hand LibuvStream - @assert sock.status == StatusConnecting - if status >= 0 - sock.status = StatusOpen - notify(sock.connectnotify) - else - sock.status = StatusInit - err = UVError("connect", status) - notify_error(sock.connectnotify, err) - end - Libc.free(conn) - nothing -end - -# from `listen` -function uv_connectioncb(stream::Ptr{Cvoid}, status::Cint) - sock = @handle_as stream LibuvServer - if status >= 0 - notify(sock.connectnotify) - else - err = UVError("connection", status) - notify_error(sock.connectnotify, err) - end - nothing -end - ## BUFFER ## ## Allocate space in buffer (for immediate use) function alloc_request(buffer::IOBuffer, recommended_size::UInt) @@ -602,7 +554,7 @@ julia> err = Pipe() # After this `err` will be initialized and you may read `foo`'s # stderr from the `err` pipe. -julia> spawn(pipeline(pipeline(`foo`, stderr=err), `cat`)) +julia> run(pipeline(pipeline(`foo`, stderr=err), `cat`), wait=false) ``` """ Pipe() = Pipe(PipeEndpoint(), PipeEndpoint()) @@ -898,8 +850,8 @@ function unsafe_write(s::LibuvStream, p::Ptr{UInt8}, n::UInt) end function flush(s::LibuvStream) - if s.sendbuf !== nothing - buf = s.sendbuf + buf = s.sendbuf + if buf !== nothing if bytesavailable(buf) > 0 arr = take!(buf) # Array of UInt8s uv_write(s, arr) @@ -915,8 +867,8 @@ buffer_writes(s::LibuvStream, bufsize) = (s.sendbuf=PipeBuffer(bufsize); s) ## low-level calls to libuv ## function write(s::LibuvStream, b::UInt8) - if s.sendbuf !== nothing - buf = s.sendbuf + buf = s.sendbuf + if buf !== nothing if bytesavailable(buf) + 1 < buf.maxsize return write(buf, b) end @@ -942,108 +894,6 @@ function uv_writecb_task(req::Ptr{Cvoid}, status::Cint) nothing end -## server functions ## - -function accept_nonblock(server::PipeServer, client::PipeEndpoint) - if client.status != StatusInit - error("client is already in use or has been closed") - end - err = ccall(:uv_accept, Int32, (Ptr{Cvoid}, Ptr{Cvoid}), server.handle, client.handle) - if err == 0 - client.status = StatusOpen - end - return err -end - -function accept_nonblock(server::PipeServer) - client = PipeEndpoint() - uv_error("accept", accept_nonblock(server, client) != 0) - return client -end - -function accept(server::LibuvServer, client::LibuvStream) - if server.status != StatusActive - throw(ArgumentError("server not connected, make sure \"listen\" has been called")) - end - while isopen(server) - err = accept_nonblock(server, client) - if err == 0 - return client - elseif err != UV_EAGAIN - uv_error("accept", err) - end - stream_wait(server, server.connectnotify) - end - uv_error("accept", UV_ECONNABORTED) -end - -const BACKLOG_DEFAULT = 511 - -function listen(sock::LibuvServer; backlog::Integer=BACKLOG_DEFAULT) - uv_error("listen", trylisten(sock)) - return sock -end - -function trylisten(sock::LibuvServer; backlog::Integer=BACKLOG_DEFAULT) - check_open(sock) - err = ccall(:uv_listen, Cint, (Ptr{Cvoid}, Cint, Ptr{Cvoid}), - sock, backlog, uv_jl_connectioncb::Ptr{Cvoid}) - sock.status = StatusActive - return err -end - -function bind(server::PipeServer, name::AbstractString) - @assert server.status == StatusInit - err = ccall(:uv_pipe_bind, Int32, (Ptr{Cvoid}, Cstring), - server, name) - if err != 0 - if err != UV_EADDRINUSE && err != UV_EACCES - #TODO: this codepath is currently not tested - throw(UVError("bind",err)) - else - return false - end - end - server.status = StatusOpen - return true -end - -""" - listen(path::AbstractString) -> PipeServer - -Create and listen on a named pipe / UNIX domain socket. -""" -function listen(path::AbstractString) - sock = PipeServer() - bind(sock, path) || throw(ArgumentError("could not listen on path $path")) - return listen(sock) -end - -function connect!(sock::PipeEndpoint, path::AbstractString) - @assert sock.status == StatusInit - req = Libc.malloc(_sizeof_uv_connect) - uv_req_set_data(req, C_NULL) - ccall(:uv_pipe_connect, Cvoid, (Ptr{Cvoid}, Ptr{Cvoid}, Cstring, Ptr{Cvoid}), req, sock.handle, path, uv_jl_connectcb::Ptr{Cvoid}) - sock.status = StatusConnecting - return sock -end - -function connect(sock::LibuvStream, args...) - connect!(sock, args...) - wait_connected(sock) - return sock -end - -# Libuv will internally reset read/writability, which is uses to -# mark that this is an invalid pipe. - -""" - connect(path::AbstractString) -> PipeEndpoint - -Connect to the named pipe / UNIX domain socket at `path`. -""" -connect(path::AbstractString) = connect(PipeEndpoint(), path) - _fd(x::IOStream) = RawFD(fd(x)) function _fd(x::Union{LibuvStream, LibuvServer}) @@ -1056,21 +906,22 @@ function _fd(x::Union{LibuvStream, LibuvServer}) end for (x, writable, unix_fd, c_symbol) in - ((:STDIN, false, 0, :jl_uv_stdin), - (:STDOUT, true, 1, :jl_uv_stdout), - (:STDERR, true, 2, :jl_uv_stderr)) + ((:stdin, false, 0, :jl_uv_stdin), + (:stdout, true, 1, :jl_uv_stdout), + (:stderr, true, 2, :jl_uv_stderr)) f = Symbol("redirect_", lowercase(string(x))) _f = Symbol("_", f) + Ux = Symbol(uppercase(string(x))) @eval begin function ($_f)(stream) - global $x + global $x, $Ux posix_fd = _fd(stream) @static if Sys.iswindows() ccall(:SetStdHandle, stdcall, Int32, (Int32, OS_HANDLE), $(-10 - unix_fd), Libc._get_osfhandle(posix_fd)) end dup(posix_fd, RawFD($unix_fd)) - $x = stream + $Ux = $x = stream nothing end function ($f)(handle::Union{LibuvStream, IOStream}) @@ -1091,42 +942,42 @@ end """ redirect_stdout([stream]) -> (rd, wr) -Create a pipe to which all C and Julia level [`STDOUT`](@ref) output +Create a pipe to which all C and Julia level [`stdout`](@ref) output will be redirected. Returns a tuple `(rd, wr)` representing the pipe ends. -Data written to [`STDOUT`](@ref) may now be read from the `rd` end of +Data written to [`stdout`](@ref) may now be read from the `rd` end of the pipe. The `wr` end is given for convenience in case the old -[`STDOUT`](@ref) object was cached by the user and needs to be replaced +[`stdout`](@ref) object was cached by the user and needs to be replaced elsewhere. !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stdout """ redirect_stderr([stream]) -> (rd, wr) -Like [`redirect_stdout`](@ref), but for [`STDERR`](@ref). +Like [`redirect_stdout`](@ref), but for [`stderr`](@ref). !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stderr """ redirect_stdin([stream]) -> (rd, wr) -Like [`redirect_stdout`](@ref), but for [`STDIN`](@ref). +Like [`redirect_stdout`](@ref), but for [`stdin`](@ref). Note that the order of the return tuple is still `(rd, wr)`, -i.e. data to be read from [`STDIN`](@ref) may be written to `wr`. +i.e. data to be read from [`stdin`](@ref) may be written to `wr`. !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stdin -for (F,S) in ((:redirect_stdin, :STDIN), (:redirect_stdout, :STDOUT), (:redirect_stderr, :STDERR)) +for (F,S) in ((:redirect_stdin, :stdin), (:redirect_stdout, :stdout), (:redirect_stderr, :stderr)) @eval function $F(f::Function, stream) STDOLD = $S local ret @@ -1143,33 +994,33 @@ end """ redirect_stdout(f::Function, stream) -Run the function `f` while redirecting [`STDOUT`](@ref) to `stream`. -Upon completion, [`STDOUT`](@ref) is restored to its prior setting. +Run the function `f` while redirecting [`stdout`](@ref) to `stream`. +Upon completion, [`stdout`](@ref) is restored to its prior setting. !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stdout(f::Function, stream) """ redirect_stderr(f::Function, stream) -Run the function `f` while redirecting [`STDERR`](@ref) to `stream`. -Upon completion, [`STDERR`](@ref) is restored to its prior setting. +Run the function `f` while redirecting [`stderr`](@ref) to `stream`. +Upon completion, [`stderr`](@ref) is restored to its prior setting. !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stderr(f::Function, stream) """ redirect_stdin(f::Function, stream) -Run the function `f` while redirecting [`STDIN`](@ref) to `stream`. -Upon completion, [`STDIN`](@ref) is restored to its prior setting. +Run the function `f` while redirecting [`stdin`](@ref) to `stream`. +Upon completion, [`stdin`](@ref) is restored to its prior setting. !!! note - `stream` must be a `TTY`, a `Pipe`, or a [`TCPSocket`](@ref). + `stream` must be a `TTY`, a `Pipe`, or a socket. """ redirect_stdin(f::Function, stream) diff --git a/base/strings/basic.jl b/base/strings/basic.jl index 50091f5f110491..8b41bbff31be50 100644 --- a/base/strings/basic.jl +++ b/base/strings/basic.jl @@ -113,7 +113,7 @@ julia> isvalid(str, 2) false julia> str[2] -ERROR: StringIndexError: invalid character index +ERROR: StringIndexError("αβγdef", 2) Stacktrace: [...] ``` @@ -410,7 +410,10 @@ julia> prevind("αβγdef", 1) 0 julia> prevind("αβγdef", 0) --1 +ERROR: BoundsError: attempt to access "αβγdef" + at index [0] +Stacktrace: +[...] julia> prevind("αβγdef", 3, 2) 0 diff --git a/base/strings/io.jl b/base/strings/io.jl index 84af9cab211be2..5601fd49c03d0f 100644 --- a/base/strings/io.jl +++ b/base/strings/io.jl @@ -5,7 +5,7 @@ """ print([io::IO], xs...) -Write to `io` (or to the default output stream [`STDOUT`](@ref) +Write to `io` (or to the default output stream [`stdout`](@ref) if `io` is not given) a canonical (un-decorated) text representation of values `xs` if there is one, otherwise call [`show`](@ref). The representation used by `print` includes minimal formatting and tries to @@ -49,7 +49,7 @@ end println([io::IO], xs...) Print (using [`print`](@ref)) `xs` followed by a newline. -If `io` is not supplied, prints to [`STDOUT`](@ref). +If `io` is not supplied, prints to [`stdout`](@ref). # Examples ```jldoctest @@ -271,16 +271,16 @@ function escape_string(io, s::AbstractString, esc::AbstractString="") c in esc ? print(io, '\\', c) : '\a' <= c <= '\r' ? print(io, '\\', "abtnvfr"[Int(c)-6]) : isprint(c) ? print(io, c) : - print(io, "\\x", hex(c, 2)) + print(io, "\\x", string(UInt32(c), base = 16, pad = 2)) elseif !isoverlong(c) && !ismalformed(c) isprint(c) ? print(io, c) : - c <= '\x7f' ? print(io, "\\x", hex(c, 2)) : - c <= '\uffff' ? print(io, "\\u", hex(c, need_full_hex(peek(a)) ? 4 : 2)) : - print(io, "\\U", hex(c, need_full_hex(peek(a)) ? 8 : 4)) + c <= '\x7f' ? print(io, "\\x", string(UInt32(c), base = 16, pad = 2)) : + c <= '\uffff' ? print(io, "\\u", string(UInt32(c), base = 16, pad = need_full_hex(peek(a)) ? 4 : 2)) : + print(io, "\\U", string(UInt32(c), base = 16, pad = need_full_hex(peek(a)) ? 8 : 4)) else # malformed or overlong u = bswap(reinterpret(UInt32, c)) while true - print(io, "\\x", hex(u % UInt8, 2)) + print(io, "\\x", string(u % UInt8, base = 16, pad = 2)) (u >>= 8) == 0 && break end end diff --git a/base/strings/search.jl b/base/strings/search.jl index ebc09096e0b462..2b711d7c188821 100644 --- a/base/strings/search.jl +++ b/base/strings/search.jl @@ -246,8 +246,8 @@ true julia> findnext("o", "Hello to the world", 6) 8:8 -julia> findnext("Julia", "JuliaLang", 2) -1:5 +julia> findnext("Lang", "JuliaLang", 2) +6:9 ``` """ findnext(t::AbstractString, s::AbstractString, i::Integer) = _search(s, t, i) diff --git a/base/strings/substring.jl b/base/strings/substring.jl index 879955daeba488..631d191dd678b0 100644 --- a/base/strings/substring.jl +++ b/base/strings/substring.jl @@ -130,7 +130,7 @@ julia> join(reverse(collect(graphemes("ax̂e")))) # reverses graphemes ``` """ function reverse(s::Union{String,SubString{String}})::String - sprint() do io + sprint(sizehint=sizeof(s)) do io i, j = firstindex(s), lastindex(s) while i ≤ j c, j = s[j], prevind(s, j) diff --git a/base/strings/util.jl b/base/strings/util.jl index 9d6839665d053e..eff5dc9f362479 100644 --- a/base/strings/util.jl +++ b/base/strings/util.jl @@ -275,9 +275,9 @@ split(str::T, splitter::Char; _split(str, equalto(splitter), limit, keep, T <: SubString ? T[] : SubString{T}[]) function _split(str::AbstractString, splitter, limit::Integer, keep_empty::Bool, strs::Array) - i = start(str) + i = 1 # firstindex(str) n = lastindex(str) - r = coalesce(findfirst(splitter,str), i - 1) + r = coalesce(findfirst(splitter,str), 0) if r != 0:-1 j, k = first(r), nextind(str,last(r)) while 0 < j <= n && length(strs) != limit-1 @@ -342,22 +342,16 @@ rsplit(str::T, splitter::Char; _rsplit(str, equalto(splitter), limit, keep, T <: SubString ? T[] : SubString{T}[]) function _rsplit(str::AbstractString, splitter, limit::Integer, keep_empty::Bool, strs::Array) - i = start(str) n = lastindex(str) - r = coalesce(findlast(splitter, str), i - 1) - j = first(r)-1 - k = last(r) - while((0 <= j < n) && (length(strs) != limit-1)) - if i <= k - (keep_empty || (k < n)) && pushfirst!(strs, SubString(str,k+1,n)) - n = j - end - (k <= j) && (j = prevind(str,j)) - r = coalesce(findprev(splitter,str,j), 0) - j = first(r)-1 - k = last(r) + r = coalesce(findlast(splitter, str), 0) + j, k = first(r), last(r) + while j > 0 && k > 0 && length(strs) != limit-1 + (keep_empty || k < n) && pushfirst!(strs, SubString(str,nextind(str,k),n)) + n = prevind(str, j) + r = coalesce(findprev(splitter,str,n), 0) + j, k = first(r), last(r) end - (keep_empty || (n > 0)) && pushfirst!(strs, SubString(str,1,n)) + (keep_empty || n > 0) && pushfirst!(strs, SubString(str,1,n)) return strs end #rsplit(str::AbstractString) = rsplit(str, _default_delims, 0, false) @@ -365,6 +359,8 @@ end _replace(io, repl, str, r, pattern) = print(io, repl) _replace(io, repl::Function, str, r, pattern) = print(io, repl(SubString(str, first(r), last(r)))) +_replace(io, repl::Function, str, r, pattern::Function) = + print(io, repl(str[first(r)])) replace(str::String, pat_repl::Pair{Char}; count::Integer=typemax(Int)) = replace(str, equalto(first(pat_repl)) => last(pat_repl); count=count) @@ -411,8 +407,10 @@ end Search for the given pattern `pat` in `s`, and replace each occurrence with `r`. If `count` is provided, replace at most `count` occurrences. `pat` may be a single character, a vector or a set of characters, a string, -or a regular expression. If `r` -is a function, each occurrence is replaced with `r(s)` where `s` is the matched substring. +or a regular expression. +If `r` is a function, each occurrence is replaced with `r(s)` +where `s` is the matched substring (when `pat`is a `Regex` or `AbstractString`) or +character (when `pat` is a `Char` or a collection of `Char`). If `pat` is a regular expression and `r` is a `SubstitutionString`, then capture group references in `r` are replaced with the corresponding matched text. To remove instances of `pat` from `string`, set `r` to the empty `String` (`""`). @@ -448,7 +446,7 @@ See also [`hex2bytes!`](@ref) for an in-place version, and [`bytes2hex`](@ref) f # Examples ```jldoctest -julia> s = hex(12345) +julia> s = string(12345, base = 16) "3039" julia> hex2bytes(s) @@ -457,7 +455,7 @@ julia> hex2bytes(s) 0x39 julia> a = b"01abEF" -6-element Array{UInt8,1}: +6-element Base.CodeUnits{UInt8,String}: 0x30 0x31 0x61 @@ -514,7 +512,7 @@ Convert an array of bytes to its hexadecimal representation. All characters are in lower-case. # Examples ```jldoctest -julia> a = hex(12345) +julia> a = string(12345, base = 16) "3039" julia> b = hex2bytes(a) diff --git a/base/subarray.jl b/base/subarray.jl index c4c3ae0c503a8a..e45c8024d1ee95 100644 --- a/base/subarray.jl +++ b/base/subarray.jl @@ -59,34 +59,9 @@ similar(V::SubArray, T::Type, dims::Dims) = similar(V.parent, T, dims) sizeof(V::SubArray) = length(V) * sizeof(eltype(V)) -""" - parent(A) - -Returns the "parent array" of an array view type (e.g., `SubArray`), or the array itself if -it is not a view. - -# Examples -```jldoctest -julia> A = [1 2; 3 4] -2×2 Array{Int64,2}: - 1 2 - 3 4 - -julia> V = view(A, 1:2, :) -2×2 view(::Array{Int64,2}, 1:2, :) with eltype Int64: - 1 2 - 3 4 - -julia> parent(V) -2×2 Array{Int64,2}: - 1 2 - 3 4 -``` -""" parent(V::SubArray) = V.parent parentindices(V::SubArray) = V.indices -parent(a::AbstractArray) = a """ parentindices(A) @@ -94,6 +69,24 @@ From an array view `A`, returns the corresponding indices in the parent. """ parentindices(a::AbstractArray) = ntuple(i->OneTo(size(a,i)), ndims(a)) +## Aliasing detection +dataids(A::SubArray) = (dataids(A.parent)..., _splatmap(dataids, A.indices)...) +_splatmap(f, ::Tuple{}) = () +_splatmap(f, t::Tuple) = (f(t[1])..., _splatmap(f, tail(t))...) +unaliascopy(A::SubArray) = typeof(A)(unaliascopy(A.parent), map(unaliascopy, A.indices), A.offset1, A.stride1) + +# When the parent is an Array we can trim the size down a bit. In the future this +# could possibly be extended to any mutable array. +function unaliascopy(V::SubArray{T,N,A,I,LD}) where {T,N,A<:Array,I<:Tuple{Vararg{Union{Real,AbstractRange,Array}}},LD} + dest = Array{T}(uninitialized, index_lengths(V.indices...)) + copyto!(dest, V) + SubArray{T,N,A,I,LD}(dest, map(_trimmedindex, V.indices), 0, Int(LD)) +end +# Transform indices to be "dense" +_trimmedindex(i::Real) = oftype(i, 1) +_trimmedindex(i::AbstractUnitRange) = oftype(i, OneTo(length(i))) +_trimmedindex(i::AbstractArray) = oftype(i, reshape(linearindices(i), axes(i))) + ## SubArray creation # We always assume that the dimensionality of the parent matches the number of # indices that end up getting passed to it, so we store the parent as a @@ -135,7 +128,7 @@ julia> A # Note A has changed even though we modified b """ function view(A::AbstractArray, I::Vararg{Any,N}) where {N} @_inline_meta - J = to_indices(A, I) + J = map(i->unalias(A,i), to_indices(A, I)) @boundscheck checkbounds(A, J...) unsafe_view(_maybe_reshape_parent(A, index_ndims(J...)), J...) end @@ -370,216 +363,3 @@ function parentdims(s::SubArray) end dimindex end - -""" - replace_ref_end!(ex) - -Recursively replace occurrences of the symbol :end in a "ref" expression (i.e. A[...]) `ex` -with the appropriate function calls (`lastindex` or `size`). Replacement uses -the closest enclosing ref, so - - A[B[end]] - -should transform to - - A[B[lastindex(B)]] - -""" -replace_ref_end!(ex) = replace_ref_end_!(ex, nothing)[1] -# replace_ref_end_!(ex,withex) returns (new ex, whether withex was used) -function replace_ref_end_!(ex, withex) - used_withex = false - if isa(ex,Symbol) && ex == :end - withex === nothing && error("Invalid use of end") - return withex, true - elseif isa(ex,Expr) - if ex.head == :ref - ex.args[1], used_withex = replace_ref_end_!(ex.args[1],withex) - S = isa(ex.args[1],Symbol) ? ex.args[1]::Symbol : gensym(:S) # temp var to cache ex.args[1] if needed - used_S = false # whether we actually need S - # new :ref, so redefine withex - nargs = length(ex.args)-1 - if nargs == 0 - return ex, used_withex - elseif nargs == 1 - # replace with lastindex(S) - ex.args[2], used_S = replace_ref_end_!(ex.args[2],:($lastindex($S))) - else - n = 1 - J = lastindex(ex.args) - for j = 2:J - exj, used = replace_ref_end_!(ex.args[j],:($lastindex($S,$n))) - used_S |= used - ex.args[j] = exj - if isa(exj,Expr) && exj.head == :... - # splatted object - exjs = exj.args[1] - n = :($n + length($exjs)) - elseif isa(n, Expr) - # previous expression splatted - n = :($n + 1) - else - # an integer - n += 1 - end - end - end - if used_S && S !== ex.args[1] - S0 = ex.args[1] - ex.args[1] = S - ex = Expr(:let, :($S = $S0), ex) - end - else - # recursive search - for i = eachindex(ex.args) - ex.args[i], used = replace_ref_end_!(ex.args[i],withex) - used_withex |= used - end - end - end - ex, used_withex -end - -""" - @view A[inds...] - -Creates a `SubArray` from an indexing expression. This can only be applied directly to a -reference expression (e.g. `@view A[1,2:end]`), and should *not* be used as the target of -an assignment (e.g. `@view(A[1,2:end]) = ...`). See also [`@views`](@ref) -to switch an entire block of code to use views for slicing. - -```jldoctest -julia> A = [1 2; 3 4] -2×2 Array{Int64,2}: - 1 2 - 3 4 - -julia> b = @view A[:, 1] -2-element view(::Array{Int64,2}, :, 1) with eltype Int64: - 1 - 3 - -julia> fill!(b, 0) -2-element view(::Array{Int64,2}, :, 1) with eltype Int64: - 0 - 0 - -julia> A -2×2 Array{Int64,2}: - 0 2 - 0 4 -``` -""" -macro view(ex) - if Meta.isexpr(ex, :ref) - ex = replace_ref_end!(ex) - if Meta.isexpr(ex, :ref) - ex = Expr(:call, view, ex.args...) - else # ex replaced by let ...; foo[...]; end - assert(Meta.isexpr(ex, :let) && Meta.isexpr(ex.args[2], :ref)) - ex.args[2] = Expr(:call, view, ex.args[2].args...) - end - Expr(:&&, true, esc(ex)) - else - throw(ArgumentError("Invalid use of @view macro: argument must be a reference expression A[...].")) - end -end - -############################################################################ -# @views macro code: - -# maybeview is like getindex, but returns a view for slicing operations -# (while remaining equivalent to getindex for scalar indices and non-array types) -@propagate_inbounds maybeview(A, args...) = getindex(A, args...) -@propagate_inbounds maybeview(A::AbstractArray, args...) = view(A, args...) -@propagate_inbounds maybeview(A::AbstractArray, args::Number...) = getindex(A, args...) -@propagate_inbounds maybeview(A) = getindex(A) -@propagate_inbounds maybeview(A::AbstractArray) = getindex(A) - -# _views implements the transformation for the @views macro. -# @views calls esc(_views(...)) to work around #20241, -# so any function calls we insert (to maybeview, or to -# lastindex in replace_ref_end!) must be interpolated -# as values rather than as symbols to ensure that they are called -# from Base rather than from the caller's scope. -_views(x) = x -function _views(ex::Expr) - if ex.head in (:(=), :(.=)) - # don't use view for ref on the lhs of an assignment, - # but still use views for the args of the ref: - lhs = ex.args[1] - Expr(ex.head, Meta.isexpr(lhs, :ref) ? - Expr(:ref, _views.(lhs.args)...) : _views(lhs), - _views(ex.args[2])) - elseif ex.head == :ref - Expr(:call, maybeview, _views.(ex.args)...) - else - h = string(ex.head) - # don't use view on the lhs of an op-assignment a[i...] += ... - if last(h) == '=' && Meta.isexpr(ex.args[1], :ref) - lhs = ex.args[1] - - # temp vars to avoid recomputing a and i, - # which will be assigned in a let block: - a = gensym(:a) - i = [gensym(:i) for k = 1:length(lhs.args)-1] - - # for splatted indices like a[i, j...], we need to - # splat the corresponding temp var. - I = similar(i, Any) - for k = 1:length(i) - if Meta.isexpr(lhs.args[k+1], :...) - I[k] = Expr(:..., i[k]) - lhs.args[k+1] = lhs.args[k+1].args[1] # unsplat - else - I[k] = i[k] - end - end - - Expr(:let, - Expr(:block, - :($a = $(_views(lhs.args[1]))), - [:($(i[k]) = $(_views(lhs.args[k+1]))) for k=1:length(i)]...), - Expr(first(h) == '.' ? :(.=) : :(=), :($a[$(I...)]), - Expr(:call, Symbol(h[1:end-1]), - :($maybeview($a, $(I...))), - _views.(ex.args[2:end])...))) - else - Expr(ex.head, _views.(ex.args)...) - end - end -end - -""" - @views expression - -Convert every array-slicing operation in the given expression -(which may be a `begin`/`end` block, loop, function, etc.) -to return a view. Scalar indices, non-array types, and -explicit `getindex` calls (as opposed to `array[...]`) are -unaffected. - -!!! note - The `@views` macro only affects `array[...]` expressions - that appear explicitly in the given `expression`, not array slicing that - occurs in functions called by that code. - -# Examples -```jldoctest -julia> A = zeros(3, 3); - -julia> @views for row in 1:3 - b = A[row, :] - b[:] = row - end - -julia> A -3×3 Array{Float64,2}: - 1.0 1.0 1.0 - 2.0 2.0 2.0 - 3.0 3.0 3.0 -``` -""" -macro views(x) - esc(_views(replace_ref_end!(x))) -end diff --git a/base/sysimg.jl b/base/sysimg.jl index f5431ba8e19dc3..766a2f707da5e4 100644 --- a/base/sysimg.jl +++ b/base/sysimg.jl @@ -127,6 +127,7 @@ include("number.jl") include("int.jl") include("operators.jl") include("pointer.jl") +include("refvalue.jl") include("refpointer.jl") include("checked.jl") using .Checked @@ -146,6 +147,7 @@ include("indices.jl") include("array.jl") include("abstractarray.jl") include("subarray.jl") +include("views.jl") include("reinterpretarray.jl") @@ -222,6 +224,7 @@ end include("some.jl") include("dict.jl") +include("abstractset.jl") include("set.jl") include("char.jl") @@ -321,7 +324,6 @@ include("weakkeydict.jl") # Logging include("logging.jl") using .CoreLogging -global_logger(SimpleLogger(Core.STDERR, CoreLogging.Info)) # To limit dependency on rand functionality (implemented in the Random # module), Crand is used in file.jl, and could be used in error.jl @@ -340,7 +342,7 @@ Crand(::Type{Float64}) = Crand(UInt32) / 2^32 """ Csrand([seed]) -Interface the the C `srand(seed)` function. +Interface with the C `srand(seed)` function. """ Csrand(seed=floor(time())) = ccall(:srand, Cvoid, (Cuint,), seed) @@ -350,7 +352,6 @@ function randn end # I/O include("stream.jl") -include("socket.jl") include("filesystem.jl") using .Filesystem include("process.jl") @@ -454,7 +455,7 @@ include("loading.jl") include("util.jl") # set up depot & load paths to be able to find stdlib packages -let BINDIR = ccall(:jl_get_julia_bindir, Any, ()) +let BINDIR = Sys.BINDIR init_depot_path(BINDIR) init_load_path(BINDIR) end @@ -481,17 +482,28 @@ end_base_include = time_ns() if is_primary_base_module function __init__() + # try to ensuremake sure OpenBLAS does not set CPU affinity (#1070, #9639) + if !haskey(ENV, "OPENBLAS_MAIN_FREE") && !haskey(ENV, "GOTOBLAS_MAIN_FREE") + ENV["OPENBLAS_MAIN_FREE"] = "1" + end + # And try to prevent openblas from starting too many threads, unless/until specifically requested + if !haskey(ENV, "OPENBLAS_NUM_THREADS") && !haskey(ENV, "OMP_NUM_THREADS") + cpu_cores = Sys.CPU_CORES::Int + if cpu_cores > 8 # always at most 8 + ENV["OPENBLAS_NUM_THREADS"] = "8" + elseif haskey(ENV, "JULIA_CPU_CORES") # or exactly as specified + ENV["OPENBLAS_NUM_THREADS"] = cpu_cores + end # otherwise, trust that openblas will pick CPU_CORES anyways, without any intervention + end # for the few uses of Crand in Base: Csrand() # Base library init reinit_stdio() - Logging = root_module(PkgId(UUID(0x56ddb016_857b_54e1_b83d_db4d58db5568), "Logging")) - global_logger(Logging.ConsoleLogger(STDERR)) - Multimedia.reinit_displays() # since Multimedia.displays uses STDOUT as fallback - early_init() + Multimedia.reinit_displays() # since Multimedia.displays uses stdout as fallback + # initialize loading init_depot_path() init_load_path() - init_threadcall() + nothing end INCLUDE_STATE = 3 # include = include_relative @@ -503,7 +515,6 @@ end # baremodule Base using .Base - # Ensure this file is also tracked pushfirst!(Base._included_files, (@__MODULE__, joinpath(@__DIR__, "sysimg.jl"))) @@ -524,6 +535,7 @@ let :Markdown, :LibGit2, :Logging, + :Sockets, :Printf, :Profile, @@ -541,6 +553,7 @@ let :Distributed, :Test, :REPL, + :Pkg3, ] maxlen = maximum(textwidth.(string.(stdlibs))) @@ -735,7 +748,6 @@ end @deprecate_stdlib diag LinearAlgebra true @deprecate_stdlib diagind LinearAlgebra true @deprecate_stdlib diagm LinearAlgebra true - @deprecate_stdlib diff LinearAlgebra true @deprecate_stdlib dot LinearAlgebra true @deprecate_stdlib eig LinearAlgebra true @deprecate_stdlib eigfact! LinearAlgebra true @@ -888,11 +900,36 @@ end @eval @deprecate_stdlib $(Symbol("@code_lowered")) InteractiveUtils true @eval @deprecate_stdlib $(Symbol("@code_llvm")) InteractiveUtils true @eval @deprecate_stdlib $(Symbol("@code_native")) InteractiveUtils true + + @eval @deprecate_stdlib $(Symbol("@ip_str")) Sockets true + @deprecate_stdlib IPAddr Sockets true + @deprecate_stdlib IPv4 Sockets true + @deprecate_stdlib IPv6 Sockets true + @deprecate_stdlib accept Sockets true + @deprecate_stdlib connect Sockets true + @deprecate_stdlib getaddrinfo Sockets true + @deprecate_stdlib getalladdrinfo Sockets true + @deprecate_stdlib getnameinfo Sockets true + @deprecate_stdlib getipaddr Sockets true + @deprecate_stdlib getpeername Sockets true + @deprecate_stdlib getsockname Sockets true + @deprecate_stdlib listen Sockets true + @deprecate_stdlib listenany Sockets true + @deprecate_stdlib recv Sockets true + @deprecate_stdlib recvfrom Sockets true + @deprecate_stdlib send Sockets true + @deprecate_stdlib TCPSocket Sockets true + @deprecate_stdlib UDPSocket Sockets true + end end +# Clear global state +empty!(Core.ARGS) +empty!(Base.ARGS) empty!(DEPOT_PATH) empty!(LOAD_PATH) +@eval Base.Sys BINDIR = "" let tot_time_userimg = @elapsed (Base.isfile("userimg.jl") && Base.include(Main, "userimg.jl")) diff --git a/base/sysinfo.jl b/base/sysinfo.jl index d6ca1c1aee38f4..0730dd9fe15087 100644 --- a/base/sysinfo.jl +++ b/base/sysinfo.jl @@ -27,14 +27,13 @@ export BINDIR, import ..Base: show +global BINDIR = ccall(:jl_get_julia_bindir, Any, ()) """ Sys.BINDIR A string containing the full path to the directory containing the `julia` executable. """ -BINDIR = ccall(:jl_get_julia_bindir, Any, ()) - -_early_init() = global BINDIR = ccall(:jl_get_julia_bindir, Any, ()) +:BINDIR # helper to avoid triggering precompile warnings @@ -78,12 +77,21 @@ Standard word size on the current machine, in bits. const WORD_SIZE = Core.sizeof(Int) * 8 function __init__() - global CPU_CORES = - haskey(ENV,"JULIA_CPU_CORES") ? parse(Int,ENV["JULIA_CPU_CORES"]) : - Int(ccall(:jl_cpu_cores, Int32, ())) + env_cores = get(ENV, "JULIA_CPU_CORES", "") + global CPU_CORES = if !isempty(env_cores) + env_cores = tryparse(Int, env_cores) + if !(env_cores isa Int && env_cores > 0) + Core.print(Core.stderr, "WARNING: couldn't parse `JULIA_CPU_CORES` environment variable. Defaulting Sys.CPU_CORES to 1.\n") + env_cores = 1 + end + env_cores + else + Int(ccall(:jl_cpu_cores, Int32, ())) + end global SC_CLK_TCK = ccall(:jl_SC_CLK_TCK, Clong, ()) global CPU_NAME = ccall(:jl_get_cpu_name, Ref{String}, ()) global JIT = ccall(:jl_get_JIT, Ref{String}, ()) + global BINDIR = ccall(:jl_get_julia_bindir, Any, ()) end mutable struct UV_cpu_info_t @@ -157,7 +165,7 @@ function _cpu_summary(io::IO, cpu::AbstractVector{CPUinfo}, i, j) println(io) end -function cpu_summary(io::IO=STDOUT, cpu::AbstractVector{CPUinfo} = cpu_info()) +function cpu_summary(io::IO=stdout, cpu::AbstractVector{CPUinfo} = cpu_info()) model = cpu[1].model first = 1 for i = 2:length(cpu) diff --git a/base/task.jl b/base/task.jl index 8f79632e80146f..9c89a78165c3a5 100644 --- a/base/task.jl +++ b/base/task.jl @@ -51,7 +51,7 @@ function showerror(io::IO, ex::CompositeException) end function show(io::IO, t::Task) - print(io, "Task ($(t.state)) @0x$(hex(convert(UInt, pointer_from_objref(t)), Sys.WORD_SIZE>>2))") + print(io, "Task ($(t.state)) @0x$(string(convert(UInt, pointer_from_objref(t)), base = 16, pad = Sys.WORD_SIZE>>2))") end """ @@ -238,7 +238,7 @@ function task_done_hook(t::Task) if !suppress_excp_printing(t) let bt = t.backtrace # run a new task to print the error for us - @schedule with_output_color(Base.error_color(), STDERR) do io + @schedule with_output_color(Base.error_color(), stderr) do io print(io, "ERROR (unhandled task failure): ") showerror(io, result, bt) println(io) diff --git a/base/threadcall.jl b/base/threadcall.jl index 357b9c881477ee..3f63a72a024bf9 100644 --- a/base/threadcall.jl +++ b/base/threadcall.jl @@ -10,10 +10,6 @@ function notify_fun(idx) return end -function init_threadcall() - global c_notify_fun = cfunction(notify_fun, Cvoid, Tuple{Cint}) -end - """ @threadcall((cfunc, clib), rettype, (argtypes...), argvals...) @@ -65,6 +61,7 @@ end function do_threadcall(wrapper::Function, rettype::Type, argtypes::Vector, argvals::Vector) # generate function pointer fun_ptr = cfunction(wrapper, Int, Tuple{Ptr{Cvoid}, Ptr{Cvoid}}) + c_notify_fun = cfunction(notify_fun, Cvoid, Tuple{Cint}) # cconvert, root and unsafe_convert arguments roots = Any[] diff --git a/base/tuple.jl b/base/tuple.jl index f0127bec1fb90c..f85c53d8a40f33 100644 --- a/base/tuple.jl +++ b/base/tuple.jl @@ -329,6 +329,12 @@ end isless(::Tuple{}, ::Tuple{}) = false isless(::Tuple{}, ::Tuple) = true isless(::Tuple, ::Tuple{}) = false + +""" + isless(t1::Tuple, t2::Tuple) + +Returns true when t1 is less than t2 in lexicographic order. +""" function isless(t1::Tuple, t2::Tuple) a, b = t1[1], t2[1] isless(a, b) || (isequal(a, b) && isless(tail(t1), tail(t2))) diff --git a/base/twiceprecision.jl b/base/twiceprecision.jl index 16bfd22fe68339..ddba86b809c1e7 100644 --- a/base/twiceprecision.jl +++ b/base/twiceprecision.jl @@ -537,8 +537,8 @@ function sum(r::StepRangeLen) np, nn = l - r.offset, r.offset - 1 # positive, negative # To prevent overflow in sum(1:n), multiply its factors by the step sp, sn = sumpair(np), sumpair(nn) - tp = _prod(r.step, sp[1], sp[2]) - tn = _prod(r.step, sn[1], sn[2]) + tp = _tp_prod(r.step, sp[1], sp[2]) + tn = _tp_prod(r.step, sn[1], sn[2]) s_hi, s_lo = add12(tp.hi, -tn.hi) s_lo += tp.lo - tn.lo # Add in contributions of ref @@ -692,11 +692,11 @@ narrow(::Type{Float64}) = Float32 narrow(::Type{Float32}) = Float16 narrow(::Type{Float16}) = Float16 -function _prod(t::TwicePrecision, x, y...) +function _tp_prod(t::TwicePrecision, x, y...) @_inline_meta - _prod(t * x, y...) + _tp_prod(t * x, y...) end -_prod(t::TwicePrecision) = t +_tp_prod(t::TwicePrecision) = t <(x::TwicePrecision{T}, y::TwicePrecision{T}) where {T} = x.hi < y.hi || ((x.hi == y.hi) & (x.lo < y.lo)) diff --git a/base/util.jl b/base/util.jl index d62d09c19c89bc..b8e4094cc9addb 100644 --- a/base/util.jl +++ b/base/util.jl @@ -334,7 +334,7 @@ If the keyword `bold` is given as `true`, the result will be printed in bold. printstyled(io::IO, msg...; bold::Bool=false, color::Union{Int,Symbol}=:normal) = with_output_color(print, color, io, msg...; bold=bold) printstyled(msg...; bold::Bool=false, color::Union{Int,Symbol}=:normal) = - printstyled(STDOUT, msg...; bold=bold, color=color) + printstyled(stdout, msg...; bold=bold, color=color) function julia_cmd(julia=joinpath(Sys.BINDIR, julia_exename())) opts = JLOptions() @@ -385,7 +385,7 @@ unsafe_securezero!(p::Ptr{Cvoid}, len::Integer=1) = Ptr{Cvoid}(unsafe_securezero if Sys.iswindows() function getpass(prompt::AbstractString) print(prompt) - flush(STDOUT) + flush(stdout) p = Vector{UInt8}(uninitialized, 128) # mimic Unix getpass in ignoring more than 128-char passwords # (also avoids any potential memory copies arising from push!) try @@ -675,7 +675,7 @@ function runtests(tests = ["all"]; ncores = ceil(Int, Sys.CPU_CORES / 2), tests = split(tests) end exit_on_error && push!(tests, "--exit-on-error") - seed != nothing && push!(tests, "--seed=0x$(hex(seed % UInt128))") # cast to UInt128 to avoid a minus sign + seed != nothing && push!(tests, "--seed=0x$(string(seed % UInt128, base=16))") # cast to UInt128 to avoid a minus sign ENV2 = copy(ENV) ENV2["JULIA_CPU_CORES"] = "$ncores" try diff --git a/base/version.jl b/base/version.jl index 7dc2fe27c3818f..37ba3c2297c890 100644 --- a/base/version.jl +++ b/base/version.jl @@ -231,7 +231,7 @@ end const libllvm_version = VersionNumber(libllvm_version_string) -function banner(io::IO = STDOUT) +function banner(io::IO = stdout) if GIT_VERSION_INFO.tagged_commit commit_string = TAGGED_RELEASE_BANNER elseif isempty(GIT_VERSION_INFO.commit) diff --git a/base/views.jl b/base/views.jl new file mode 100644 index 00000000000000..e49d149e940ec3 --- /dev/null +++ b/base/views.jl @@ -0,0 +1,212 @@ +""" + replace_ref_end!(ex) + +Recursively replace occurrences of the symbol :end in a "ref" expression (i.e. A[...]) `ex` +with the appropriate function calls (`lastindex` or `size`). Replacement uses +the closest enclosing ref, so + + A[B[end]] + +should transform to + + A[B[lastindex(B)]] + +""" +replace_ref_end!(ex) = replace_ref_end_!(ex, nothing)[1] +# replace_ref_end_!(ex,withex) returns (new ex, whether withex was used) +function replace_ref_end_!(ex, withex) + used_withex = false + if isa(ex,Symbol) && ex == :end + withex === nothing && error("Invalid use of end") + return withex, true + elseif isa(ex,Expr) + if ex.head == :ref + ex.args[1], used_withex = replace_ref_end_!(ex.args[1],withex) + S = isa(ex.args[1],Symbol) ? ex.args[1]::Symbol : gensym(:S) # temp var to cache ex.args[1] if needed + used_S = false # whether we actually need S + # new :ref, so redefine withex + nargs = length(ex.args)-1 + if nargs == 0 + return ex, used_withex + elseif nargs == 1 + # replace with lastindex(S) + ex.args[2], used_S = replace_ref_end_!(ex.args[2],:($lastindex($S))) + else + n = 1 + J = lastindex(ex.args) + for j = 2:J + exj, used = replace_ref_end_!(ex.args[j],:($lastindex($S,$n))) + used_S |= used + ex.args[j] = exj + if isa(exj,Expr) && exj.head == :... + # splatted object + exjs = exj.args[1] + n = :($n + length($exjs)) + elseif isa(n, Expr) + # previous expression splatted + n = :($n + 1) + else + # an integer + n += 1 + end + end + end + if used_S && S !== ex.args[1] + S0 = ex.args[1] + ex.args[1] = S + ex = Expr(:let, :($S = $S0), ex) + end + else + # recursive search + for i = eachindex(ex.args) + ex.args[i], used = replace_ref_end_!(ex.args[i],withex) + used_withex |= used + end + end + end + ex, used_withex +end + +""" + @view A[inds...] + +Creates a `SubArray` from an indexing expression. This can only be applied directly to a +reference expression (e.g. `@view A[1,2:end]`), and should *not* be used as the target of +an assignment (e.g. `@view(A[1,2:end]) = ...`). See also [`@views`](@ref) +to switch an entire block of code to use views for slicing. + +```jldoctest +julia> A = [1 2; 3 4] +2×2 Array{Int64,2}: + 1 2 + 3 4 + +julia> b = @view A[:, 1] +2-element view(::Array{Int64,2}, :, 1) with eltype Int64: + 1 + 3 + +julia> fill!(b, 0) +2-element view(::Array{Int64,2}, :, 1) with eltype Int64: + 0 + 0 + +julia> A +2×2 Array{Int64,2}: + 0 2 + 0 4 +``` +""" +macro view(ex) + if Meta.isexpr(ex, :ref) + ex = replace_ref_end!(ex) + if Meta.isexpr(ex, :ref) + ex = Expr(:call, view, ex.args...) + else # ex replaced by let ...; foo[...]; end + @assert Meta.isexpr(ex, :let) && Meta.isexpr(ex.args[2], :ref) + ex.args[2] = Expr(:call, view, ex.args[2].args...) + end + Expr(:&&, true, esc(ex)) + else + throw(ArgumentError("Invalid use of @view macro: argument must be a reference expression A[...].")) + end +end + +############################################################################ +# @views macro code: + +# maybeview is like getindex, but returns a view for slicing operations +# (while remaining equivalent to getindex for scalar indices and non-array types) +@propagate_inbounds maybeview(A, args...) = getindex(A, args...) +@propagate_inbounds maybeview(A::AbstractArray, args...) = view(A, args...) +@propagate_inbounds maybeview(A::AbstractArray, args::Number...) = getindex(A, args...) +@propagate_inbounds maybeview(A) = getindex(A) +@propagate_inbounds maybeview(A::AbstractArray) = getindex(A) + +# _views implements the transformation for the @views macro. +# @views calls esc(_views(...)) to work around #20241, +# so any function calls we insert (to maybeview, or to +# lastindex in replace_ref_end!) must be interpolated +# as values rather than as symbols to ensure that they are called +# from Base rather than from the caller's scope. +_views(x) = x +function _views(ex::Expr) + if ex.head in (:(=), :(.=)) + # don't use view for ref on the lhs of an assignment, + # but still use views for the args of the ref: + lhs = ex.args[1] + Expr(ex.head, Meta.isexpr(lhs, :ref) ? + Expr(:ref, _views.(lhs.args)...) : _views(lhs), + _views(ex.args[2])) + elseif ex.head == :ref + Expr(:call, maybeview, _views.(ex.args)...) + else + h = string(ex.head) + # don't use view on the lhs of an op-assignment a[i...] += ... + if last(h) == '=' && Meta.isexpr(ex.args[1], :ref) + lhs = ex.args[1] + + # temp vars to avoid recomputing a and i, + # which will be assigned in a let block: + a = gensym(:a) + i = [gensym(:i) for k = 1:length(lhs.args)-1] + + # for splatted indices like a[i, j...], we need to + # splat the corresponding temp var. + I = similar(i, Any) + for k = 1:length(i) + if Meta.isexpr(lhs.args[k+1], :...) + I[k] = Expr(:..., i[k]) + lhs.args[k+1] = lhs.args[k+1].args[1] # unsplat + else + I[k] = i[k] + end + end + + Expr(:let, + Expr(:block, + :($a = $(_views(lhs.args[1]))), + [:($(i[k]) = $(_views(lhs.args[k+1]))) for k=1:length(i)]...), + Expr(first(h) == '.' ? :(.=) : :(=), :($a[$(I...)]), + Expr(:call, Symbol(h[1:end-1]), + :($maybeview($a, $(I...))), + _views.(ex.args[2:end])...))) + else + Expr(ex.head, _views.(ex.args)...) + end + end +end + +""" + @views expression + +Convert every array-slicing operation in the given expression +(which may be a `begin`/`end` block, loop, function, etc.) +to return a view. Scalar indices, non-array types, and +explicit `getindex` calls (as opposed to `array[...]`) are +unaffected. + +!!! note + The `@views` macro only affects `array[...]` expressions + that appear explicitly in the given `expression`, not array slicing that + occurs in functions called by that code. + +# Examples +```jldoctest +julia> A = zeros(3, 3); + +julia> @views for row in 1:3 + b = A[row, :] + b[:] = row + end + +julia> A +3×3 Array{Float64,2}: + 1.0 1.0 1.0 + 2.0 2.0 2.0 + 3.0 3.0 3.0 +``` +""" +macro views(x) + esc(_views(replace_ref_end!(x))) +end diff --git a/contrib/add_license_to_files.jl b/contrib/add_license_to_files.jl index b74fa66587f3fa..827680ae95f197 100644 --- a/contrib/add_license_to_files.jl +++ b/contrib/add_license_to_files.jl @@ -16,7 +16,6 @@ const print_result = true # prints files which where not processed. const rootdirs = [ "../base", "../contrib", - "../examples", "../src", "../stdlib", "../test", @@ -57,9 +56,7 @@ const skipfiles = [ "../src/support/strtod.c", "../src/support/tzfile.h", "../src/support/utf8.c", - "../test/perf/micro/randmtzig.c", "../src/crc32c.c", - "../examples/quine.jl", # has license text in code ] const ext_prefix = Dict([ diff --git a/contrib/build_sysimg.jl b/contrib/build_sysimg.jl index e57a5a27c8f0f5..9ca9bdb1332303 100644 --- a/contrib/build_sysimg.jl +++ b/contrib/build_sysimg.jl @@ -168,7 +168,7 @@ function link_sysimg(sysimg_path=nothing, cc=find_system_compiler(), debug=false info("$cc $(join(FLAGS, ' ')) -o $sysimg_file $sysimg_path.o") # Windows has difficulties overwriting a file in use so we first link to a temp file if Sys.iswindows() && isfile(sysimg_file) - if success(pipeline(`$cc $FLAGS -o $sysimg_path.tmp $sysimg_path.o`; stdout=STDOUT, stderr=STDERR)) + if success(pipeline(`$cc $FLAGS -o $sysimg_path.tmp $sysimg_path.o`; stdout=stdout, stderr=stderr)) mv(sysimg_file, "$sysimg_file.old"; force=true) mv("$sysimg_path.tmp", sysimg_file; force=true) end diff --git a/contrib/julia-config.jl b/contrib/julia-config.jl index 1ccdd3b2fa7206..8ac742fade6c11 100755 --- a/contrib/julia-config.jl +++ b/contrib/julia-config.jl @@ -75,7 +75,7 @@ end function check_args(args) checked = intersect(args, options) if length(checked) == 0 || length(checked) != length(args) - println(STDERR, "Usage: julia-config [", join(options, " | "), "]") + println(stderr, "Usage: julia-config [", join(options, " | "), "]") exit(1) end end diff --git a/contrib/windows/appveyor_build.sh b/contrib/windows/appveyor_build.sh index 33f101cf18eb68..ebadc57c77bdb1 100755 --- a/contrib/windows/appveyor_build.sh +++ b/contrib/windows/appveyor_build.sh @@ -207,6 +207,6 @@ echo 'FORCE_ASSERTIONS = 1' >> Make.user cat Make.user make -j3 VERBOSE=1 all make -j3 VERBOSE=1 install -make VERBOSE=1 -C examples +make VERBOSE=1 JULIA=../../usr/bin/julia.exe BIN=. "$(make print-CC)" -C test/embedding release cp usr/bin/busybox.exe julia-*/bin make build-stats diff --git a/contrib/windows/winrpm.sh b/contrib/windows/winrpm.sh index ef5ae6e227b201..f1768b2761ff7b 100755 --- a/contrib/windows/winrpm.sh +++ b/contrib/windows/winrpm.sh @@ -3,25 +3,24 @@ # build-time mini version of WinRPM, usage: # ./winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.2/ mingw64-zlib1 -# depends on curl, xmllint, gunzip, sort -V, sha256sum, and p7zip +# depends on wget/curl, xmllint, gunzip, sort -V, sha256sum, and p7zip set -e url=$1 toinstall=$2 -for i in curl xmllint gunzip sort sha256sum 7z; do +for i in xmllint gunzip sort sha256sum 7z; do if [ -z "$(which $i 2>/dev/null)" ]; then echo "error: this script requires having $i installed" >&2 exit 1 fi done -# there is a curl --retry flag but it wasn't working here for some reason +jldownload=$(dirname "$0")/../../deps/tools/jldownload + retry_curl() { - for i in $(seq 10); do - curl -fLsS $1 && return - #sleep 2 - done + echo "fetching \"$1\"" >&2 + "$jldownload" - "$1" && return echo "error: failed to download $1" >&2 exit 1 } @@ -141,7 +140,7 @@ for i in $toinstall; do checksum=$(echo $pkgi | $xp "/package/checksum/text()" -) eval $(echo $pkgi | $xp "/package/location/@href" -) echo "downloading $href" - $(dirname "$0")/../../deps/tools/jldownload $href $url/$href + $jldownload $href $url/$href echo "$checksum *$href" | sha256sum -c 7z x -y $href cpiofile=$(basename $href | sed 's/.rpm$/.cpio/') diff --git a/deps/libgit2.mk b/deps/libgit2.mk index 367200cdb33651..3be41029ed9ae3 100644 --- a/deps/libgit2.mk +++ b/deps/libgit2.mk @@ -120,7 +120,7 @@ clean-libgit2: -rm $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-compiled -$(MAKE) -C $(BUILDDIR)/$(LIBGIT2_SRC_DIR) clean -get-libgit2: $(LIBGIT2_SRC_FILE) +get-libgit2: $(LIBGIT2_SRC_FILE) $(build_datarootdir)/julia/cert.pem extract-libgit2: $(SRCCACHE)/$(LIBGIT2_SRC_DIR)/source-extracted configure-libgit2: $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured compile-libgit2: $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-compiled diff --git a/deps/llvm.mk b/deps/llvm.mk index ce6254a39535fa..dc342210ab1390 100644 --- a/deps/llvm.mk +++ b/deps/llvm.mk @@ -461,9 +461,12 @@ $(eval $(call LLVM_PATCH,llvm-D33179)) $(eval $(call LLVM_PATCH,llvm-PR29010-i386-xmm)) # Remove for 4.0 $(eval $(call LLVM_PATCH,llvm-3.9.0-D37576-NVPTX-sm_70)) # NVPTX, Remove for 6.0 $(eval $(call LLVM_PATCH,llvm-D37939-Mem2Reg-Also-handle-memcpy)) -$(eval $(call LLVM_PATCH,llvm-D31524-sovers_4.0)) # Remove for 4.0 +$(eval $(call LLVM_PATCH,llvm-D31524-sovers_4.0)) # Remove for 5.0 $(eval $(call LLVM_PATCH,llvm-D42262-jumpthreading-not-i1)) $(eval $(call LLVM_PATCH,llvm-3.9-c_api_nullptr)) +$(eval $(call LLVM_PATCH,llvm-PPC-addrspaces)) # PPC +$(eval $(call LLVM_PATCH,llvm-D30114)) # PPC remove for 5.0 +$(eval $(call LLVM_PATCH,llvm-PR36292)) # PPC fixes #26249, remove for 6.0 ifeq ($(BUILD_LLVM_CLANG),1) $(eval $(call LLVM_PATCH,compiler_rt-3.9-glibc_2.25.90)) # Remove for 5.0 endif @@ -490,7 +493,11 @@ $(eval $(call LLVM_PATCH,llvm-Yet-another-fix)) $(eval $(call LLVM_PATCH,llvm-NVPTX-addrspaces)) # NVPTX $(eval $(call LLVM_PATCH,llvm-4.0.0-D37576-NVPTX-sm_70)) # NVPTX, Remove for 6.0 $(eval $(call LLVM_PATCH,llvm-loadcse-addrspace_4.0)) +$(eval $(call LLVM_PATCH,llvm-D31524-sovers_4.0)) # Remove for 5.0 $(eval $(call LLVM_PATCH,llvm-D42262-jumpthreading-not-i1)) +$(eval $(call LLVM_PATCH,llvm-PPC-addrspaces)) # PPC +$(eval $(call LLVM_PATCH,llvm-D30114)) # PPC remove for 5.0 +$(eval $(call LLVM_PATCH,llvm-PR36292)) # PPC fixes #26249, remove for 6.0 ifeq ($(BUILD_LLVM_CLANG),1) $(eval $(call LLVM_PATCH,compiler_rt-3.9-glibc_2.25.90)) # Remove for 5.0 endif @@ -505,6 +512,8 @@ $(eval $(call LLVM_PATCH,llvm-5.0-NVPTX-addrspaces)) # NVPTX $(eval $(call LLVM_PATCH,llvm-4.0.0-D37576-NVPTX-sm_70)) # NVPTX, Remove for 6.0 $(eval $(call LLVM_PATCH,llvm-D38765-gvn_5.0)) # Remove for 6.0 $(eval $(call LLVM_PATCH,llvm-D42262-jumpthreading-not-i1)) +$(eval $(call LLVM_PATCH,llvm-PPC-addrspaces)) # PPC +$(eval $(call LLVM_PATCH,llvm-PR36292-5.0)) # PPC fixes #26249, remove for 6.0 endif # LLVM_VER # Remove hardcoded OS X requirements in compilter-rt cmake build diff --git a/deps/patches/llvm-D30114.patch b/deps/patches/llvm-D30114.patch new file mode 100644 index 00000000000000..6d2cde9370d326 --- /dev/null +++ b/deps/patches/llvm-D30114.patch @@ -0,0 +1,92 @@ +From 0ee8e563c9b4c77183c4a3b5fbbbb0ed71d3d5bb Mon Sep 17 00:00:00 2001 +From: Eli Friedman +Date: Fri, 24 Feb 2017 20:51:36 +0000 +Subject: [PATCH] [CodeGenPrepare] Make -addr-sink-using-gep work with address + spaces. + +When we construct addressing modes, we use isNoopAddrSpaceCast to ignore +addrspacecast instructions. Make sure we insert the correct addrspacecast +when we reconstruct the addressing mode. + +Differential Revision: https://reviews.llvm.org/D30114 + + + +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296167 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/CodeGen/CodeGenPrepare.cpp | 8 ++++---- + test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll | 11 ++++++++--- + 2 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/lib/CodeGen/CodeGenPrepare.cpp b/lib/CodeGen/CodeGenPrepare.cpp +index 09d8b0274e5..2c9395ca4b2 100644 +--- a/lib/CodeGen/CodeGenPrepare.cpp ++++ b/lib/CodeGen/CodeGenPrepare.cpp +@@ -4167,7 +4167,7 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr, + DEBUG(dbgs() << "CGP: Reusing nonlocal addrmode: " << AddrMode << " for " + << *MemoryInst << "\n"); + if (SunkAddr->getType() != Addr->getType()) +- SunkAddr = Builder.CreateBitCast(SunkAddr, Addr->getType()); ++ SunkAddr = Builder.CreatePointerCast(SunkAddr, Addr->getType()); + } else if (AddrSinkUsingGEPs || + (!AddrSinkUsingGEPs.getNumOccurrences() && TM && + SubtargetInfo->useAA())) { +@@ -4273,7 +4273,7 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr, + // We need to add this separately from the scale above to help with + // SDAG consecutive load/store merging. + if (ResultPtr->getType() != I8PtrTy) +- ResultPtr = Builder.CreateBitCast(ResultPtr, I8PtrTy); ++ ResultPtr = Builder.CreatePointerCast(ResultPtr, I8PtrTy); + ResultPtr = Builder.CreateGEP(I8Ty, ResultPtr, ResultIndex, "sunkaddr"); + } + +@@ -4284,12 +4284,12 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr, + SunkAddr = ResultPtr; + } else { + if (ResultPtr->getType() != I8PtrTy) +- ResultPtr = Builder.CreateBitCast(ResultPtr, I8PtrTy); ++ ResultPtr = Builder.CreatePointerCast(ResultPtr, I8PtrTy); + SunkAddr = Builder.CreateGEP(I8Ty, ResultPtr, ResultIndex, "sunkaddr"); + } + + if (SunkAddr->getType() != Addr->getType()) +- SunkAddr = Builder.CreateBitCast(SunkAddr, Addr->getType()); ++ SunkAddr = Builder.CreatePointerCast(SunkAddr, Addr->getType()); + } + } else { + DEBUG(dbgs() << "CGP: SINKING nonlocal addrmode: " << AddrMode << " for " +diff --git a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll +index c9f49b5d4f8..eb2c985c70e 100644 +--- a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll ++++ b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll +@@ -1,11 +1,14 @@ +-; RUN: opt -S -codegenprepare < %s | FileCheck %s ++; RUN: opt -S -codegenprepare < %s | FileCheck %s -check-prefix=CHECK -check-prefix=INT ++; RUN: opt -S -codegenprepare -addr-sink-using-gep=true < %s | FileCheck %s -check-prefix=CHECK -check-prefix=GEP + + target datalayout = + "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" + target triple = "x86_64-unknown-linux-gnu" + + ; CHECK-LABEL: @load_cast_gep +-; CHECK: add i64 %sunkaddr, 40 ++; INT: add i64 %sunkaddr, 40 ++; GEP: [[CAST:%[0-9]+]] = addrspacecast i64* %base to i8 addrspace(1)* ++; GEP: getelementptr i8, i8 addrspace(1)* [[CAST]], i64 40 + define void @load_cast_gep(i1 %cond, i64* %base) { + entry: + %addr = getelementptr inbounds i64, i64* %base, i64 5 +@@ -21,7 +24,9 @@ fallthrough: + } + + ; CHECK-LABEL: @store_gep_cast +-; CHECK: add i64 %sunkaddr, 20 ++; INT: add i64 %sunkaddr, 20 ++; GEP: [[CAST:%[0-9]+]] = addrspacecast i64* %base to i8 addrspace(1)* ++; GEP: getelementptr i8, i8 addrspace(1)* [[CAST]], i64 20 + define void @store_gep_cast(i1 %cond, i64* %base) { + entry: + %casted = addrspacecast i64* %base to i32 addrspace(1)* +-- +2.16.2 + diff --git a/deps/patches/llvm-PPC-addrspaces.patch b/deps/patches/llvm-PPC-addrspaces.patch new file mode 100644 index 00000000000000..7f51b3bb17436b --- /dev/null +++ b/deps/patches/llvm-PPC-addrspaces.patch @@ -0,0 +1,29 @@ +From 15899eaab58e96bb7bbe7a14099674e255656a50 Mon Sep 17 00:00:00 2001 +From: Valentin Churavy +Date: Fri, 23 Feb 2018 14:41:20 -0500 +Subject: [PATCH] Make AddrSpaceCast noops on PPC + +PPC as AArch64 doesn't have address-spaces so we can drop them in the backend +--- + lib/Target/PowerPC/PPCISelLowering.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h +index e60504507d3..c9b89773968 100644 +--- a/lib/Target/PowerPC/PPCISelLowering.h ++++ b/lib/Target/PowerPC/PPCISelLowering.h +@@ -761,6 +761,11 @@ namespace llvm { + ReuseLoadInfo() : IsInvariant(false), Alignment(0), Ranges(nullptr) {} + }; + ++ bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override { ++ // Addrspacecasts are always noops. ++ return true; ++ } ++ + bool canReuseLoadAddress(SDValue Op, EVT MemVT, ReuseLoadInfo &RLI, + SelectionDAG &DAG, + ISD::LoadExtType ET = ISD::NON_EXTLOAD) const; +-- +2.16.2 + diff --git a/deps/patches/llvm-PR36292-5.0.patch b/deps/patches/llvm-PR36292-5.0.patch new file mode 100644 index 00000000000000..7d5d8d167f533d --- /dev/null +++ b/deps/patches/llvm-PR36292-5.0.patch @@ -0,0 +1,97 @@ +From 94f96f87fa44f2fa2cf86ecb644d3cdc3fc609ad Mon Sep 17 00:00:00 2001 +From: Nemanja Ivanovic +Date: Thu, 22 Feb 2018 03:02:41 +0000 +Subject: [PATCH] [PowerPC] Do not produce invalid CTR loop with an FRem + +An FRem instruction inside a loop should prevent the loop from being converted +into a CTR loop since this is not an operation that is legal on any PPC +subtarget. This will always be a call to a library function which means the +loop will be invalid if this instruction is in the body. + +Fixes PR36292. + + +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325739 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/Target/PowerPC/PPCCTRLoops.cpp | 5 ++++- + test/CodeGen/PowerPC/pr36292.ll | 46 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 50 insertions(+), 1 deletion(-) + create mode 100644 test/CodeGen/PowerPC/pr36292.ll + +diff --git a/lib/Target/PowerPC/PPCCTRLoops.cpp b/lib/Target/PowerPC/PPCCTRLoops.cpp +index 53f33ac1fc0..97917a1d096 100644 +--- a/lib/Target/PowerPC/PPCCTRLoops.cpp ++++ b/lib/Target/PowerPC/PPCCTRLoops.cpp +@@ -437,13 +437,16 @@ bool PPCCTRLoops::mightUseCTR(BasicBlock *BB) { + return true; + } + ++ // FREM is always a call. ++ if (J->getOpcode() == Instruction::FRem) ++ return true; ++ + if (STI->useSoftFloat()) { + switch(J->getOpcode()) { + case Instruction::FAdd: + case Instruction::FSub: + case Instruction::FMul: + case Instruction::FDiv: +- case Instruction::FRem: + case Instruction::FPTrunc: + case Instruction::FPExt: + case Instruction::FPToUI: +diff --git a/test/CodeGen/PowerPC/pr36292.ll b/test/CodeGen/PowerPC/pr36292.ll +new file mode 100644 +index 00000000000..a171918b9e0 +--- /dev/null ++++ b/test/CodeGen/PowerPC/pr36292.ll +@@ -0,0 +1,46 @@ ++; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown < %s | \ ++; RUN: FileCheck %s --implicit-check-not=mtctr --implicit-check-not=bdnz ++$test = comdat any ++ ++; No CTR loop due to frem (since it is always a call). ++define void @test() #0 comdat { ++; CHECK-LABEL: test: ++; CHECK: ld 29, 0(3) ++; CHECK: ld 30, 40(1) ++; CHECK: xxlxor 31, 31, 31 ++; CHECK: cmpld 30, 29 ++; CHECK-NEXT: bge- 0, .LBB0_2 ++; CHECK-NEXT: .p2align 5 ++; CHECK-NEXT: .LBB0_1: # %bounds.ok ++; CHECK: fmr 1, 31 ++; CHECK-NEXT: lfsx 2, 0, 3 ++; CHECK-NEXT: bl fmodf ++; CHECK-NEXT: nop ++; CHECK-NEXT: addi 30, 30, 1 ++; CHECK-NEXT: stfsx 1, 0, 3 ++; CHECK-NEXT: cmpld 30, 29 ++; CHECK-NEXT: blt+ 0, .LBB0_1 ++; CHECK-NEXT: .LBB0_2: # %bounds.fail ++; CHECK-NEXT: std 30, 40(1) ++ %pos = alloca i64, align 8 ++ br label %forcond ++ ++forcond: ; preds = %bounds.ok, %0 ++ %1 = load i64, i64* %pos ++ %.len1 = load i64, i64* undef ++ %bounds.cmp = icmp ult i64 %1, %.len1 ++ br i1 %bounds.cmp, label %bounds.ok, label %bounds.fail ++ ++bounds.ok: ; preds = %forcond ++ %2 = load float, float* undef ++ %3 = frem float 0.000000e+00, %2 ++ store float %3, float* undef ++ %4 = load i64, i64* %pos ++ %5 = add i64 %4, 1 ++ store i64 %5, i64* %pos ++ br label %forcond ++ ++bounds.fail: ; preds = %forcond ++ unreachable ++} ++ +-- +2.16.2 + diff --git a/deps/patches/llvm-PR36292.patch b/deps/patches/llvm-PR36292.patch new file mode 100644 index 00000000000000..8d5f72b146ac34 --- /dev/null +++ b/deps/patches/llvm-PR36292.patch @@ -0,0 +1,96 @@ +From bf6e0a9a6dacce55de9f72de06318e7b97b44e3d Mon Sep 17 00:00:00 2001 +From: Nemanja Ivanovic +Date: Thu, 22 Feb 2018 03:02:41 +0000 +Subject: [PATCH] [PowerPC] Do not produce invalid CTR loop with an FRem + +An FRem instruction inside a loop should prevent the loop from being converted +into a CTR loop since this is not an operation that is legal on any PPC +subtarget. This will always be a call to a library function which means the +loop will be invalid if this instruction is in the body. + +Fixes PR36292. + +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325739 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/Target/PowerPC/PPCCTRLoops.cpp | 5 ++++- + test/CodeGen/PowerPC/pr36292.ll | 46 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 50 insertions(+), 1 deletion(-) + create mode 100644 test/CodeGen/PowerPC/pr36292.ll + +diff --git a/lib/Target/PowerPC/PPCCTRLoops.cpp b/lib/Target/PowerPC/PPCCTRLoops.cpp +index 87522663591..6a327781ca2 100644 +--- a/lib/Target/PowerPC/PPCCTRLoops.cpp ++++ b/lib/Target/PowerPC/PPCCTRLoops.cpp +@@ -435,13 +435,16 @@ bool PPCCTRLoops::mightUseCTR(const Triple &TT, BasicBlock *BB) { + return true; + } + ++ // FREM is always a call. ++ if (J->getOpcode() == Instruction::FRem) ++ return true; ++ + if (TM->getSubtargetImpl(*BB->getParent())->getTargetLowering()->useSoftFloat()) { + switch(J->getOpcode()) { + case Instruction::FAdd: + case Instruction::FSub: + case Instruction::FMul: + case Instruction::FDiv: +- case Instruction::FRem: + case Instruction::FPTrunc: + case Instruction::FPExt: + case Instruction::FPToUI: +diff --git a/test/CodeGen/PowerPC/pr36292.ll b/test/CodeGen/PowerPC/pr36292.ll +new file mode 100644 +index 00000000000..a171918b9e0 +--- /dev/null ++++ b/test/CodeGen/PowerPC/pr36292.ll +@@ -0,0 +1,46 @@ ++; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown < %s | \ ++; RUN: FileCheck %s --implicit-check-not=mtctr --implicit-check-not=bdnz ++$test = comdat any ++ ++; No CTR loop due to frem (since it is always a call). ++define void @test() #0 comdat { ++; CHECK-LABEL: test: ++; CHECK: ld 29, 0(3) ++; CHECK: ld 30, 40(1) ++; CHECK: xxlxor 31, 31, 31 ++; CHECK: cmpld 30, 29 ++; CHECK-NEXT: bge- 0, .LBB0_2 ++; CHECK-NEXT: .p2align 5 ++; CHECK-NEXT: .LBB0_1: # %bounds.ok ++; CHECK: fmr 1, 31 ++; CHECK-NEXT: lfsx 2, 0, 3 ++; CHECK-NEXT: bl fmodf ++; CHECK-NEXT: nop ++; CHECK-NEXT: addi 30, 30, 1 ++; CHECK-NEXT: stfsx 1, 0, 3 ++; CHECK-NEXT: cmpld 30, 29 ++; CHECK-NEXT: blt+ 0, .LBB0_1 ++; CHECK-NEXT: .LBB0_2: # %bounds.fail ++; CHECK-NEXT: std 30, 40(1) ++ %pos = alloca i64, align 8 ++ br label %forcond ++ ++forcond: ; preds = %bounds.ok, %0 ++ %1 = load i64, i64* %pos ++ %.len1 = load i64, i64* undef ++ %bounds.cmp = icmp ult i64 %1, %.len1 ++ br i1 %bounds.cmp, label %bounds.ok, label %bounds.fail ++ ++bounds.ok: ; preds = %forcond ++ %2 = load float, float* undef ++ %3 = frem float 0.000000e+00, %2 ++ store float %3, float* undef ++ %4 = load i64, i64* %pos ++ %5 = add i64 %4, 1 ++ store i64 %5, i64* %pos ++ br label %forcond ++ ++bounds.fail: ; preds = %forcond ++ unreachable ++} ++ +-- +2.16.2 + diff --git a/doc/REQUIRE b/doc/REQUIRE index 144d91adbe0445..8b6fd177b73f1e 100644 --- a/doc/REQUIRE +++ b/doc/REQUIRE @@ -1,3 +1,3 @@ -Compat 0.54.0 0.54.0+ +Compat 0.56.0 0.56.0+ DocStringExtensions 0.4.3 0.4.3+ -Documenter 0.13.2 0.13.2+ +Documenter 0.14.0 0.14.0+ diff --git a/doc/make.jl b/doc/make.jl index 2d7d3c993188c8..bbaa33ed6d25ce 100644 --- a/doc/make.jl +++ b/doc/make.jl @@ -73,7 +73,6 @@ const PAGES = [ "manual/missing.md", "manual/networking-and-streams.md", "manual/parallel-computing.md", - "manual/dates.md", "manual/running-external-programs.md", "manual/calling-c-and-fortran-code.md", "manual/handling-operating-system-variation.md", diff --git a/doc/man/julia.1 b/doc/man/julia.1 index 39e9c70573120a..8c68a5a9405484 100644 --- a/doc/man/julia.1 +++ b/doc/man/julia.1 @@ -77,7 +77,7 @@ Set location of julia executable .TP --startup-file={yes|no} -Load ~/.juliarc.jl +Load ~/.julia/config/startup.jl .TP --handle-signals={yes|no} @@ -189,12 +189,12 @@ Count executions of source lines (omitting setting is equivalent to 'user') Count bytes allocated by each source line .SH FILES -.I ~/.juliarc.jl +.I ~/.julia/config/startup.jl .RS Per user startup file. .RE -.I /etc/julia/juliarc.jl +.I /etc/julia/startup.jl .RS System-wide startup file. .RE diff --git a/doc/src/base/arrays.md b/doc/src/base/arrays.md index 6ea60b55c4d197..11b3c6dbb7b2d0 100644 --- a/doc/src/base/arrays.md +++ b/doc/src/base/arrays.md @@ -138,19 +138,17 @@ Base.promote_shape ## Array functions ```@docs -Base.accumulate(::Any, ::Any, ::Integer) +Base.accumulate Base.accumulate! Base.cumprod Base.cumprod! Base.cumsum Base.cumsum! -LinearAlgebra.diff +Base.diff Base.repeat Base.rot180 Base.rotl90 Base.rotr90 -Base.reducedim -Base.mapreducedim Base.mapslices ``` diff --git a/doc/src/base/base.md b/doc/src/base/base.md index bdb3264ba7d7f5..2c1db70c5d2910 100644 --- a/doc/src/base/base.md +++ b/doc/src/base/base.md @@ -229,8 +229,7 @@ Base.skipmissing ```@docs Base.run -Base.spawn -Base.DevNull +Base.devnull Base.success Base.process_running Base.process_exited @@ -274,7 +273,6 @@ Core.throw Base.rethrow Base.backtrace Base.catch_backtrace -Base.assert Base.@assert Base.ArgumentError Base.AssertionError diff --git a/doc/src/base/collections.md b/doc/src/base/collections.md index 43ba36a803bf2f..cdc77c296de437 100644 --- a/doc/src/base/collections.md +++ b/doc/src/base/collections.md @@ -88,20 +88,16 @@ Base.foldl(::Any, ::Any, ::Any) Base.foldl(::Any, ::Any) Base.foldr(::Any, ::Any, ::Any) Base.foldr(::Any, ::Any) -Base.maximum(::Any) -Base.maximum(::Any, ::Any) +Base.maximum Base.maximum! -Base.minimum(::Any) -Base.minimum(::Any, ::Any) +Base.minimum Base.minimum! Base.extrema(::Any) Base.extrema(::AbstractArray, ::Any) Base.argmax Base.argmin -Base.findmax(::Any) -Base.findmax(::AbstractArray, ::Any) -Base.findmin(::Any) -Base.findmin(::AbstractArray, ::Any) +Base.findmax +Base.findmin Base.findmax! Base.findmin! Base.sum diff --git a/doc/src/base/constants.md b/doc/src/base/constants.md index 0f4c321d690679..b56659e77f3026 100644 --- a/doc/src/base/constants.md +++ b/doc/src/base/constants.md @@ -17,9 +17,9 @@ Base.Sys.MACHINE See also: - * [`STDIN`](@ref) - * [`STDOUT`](@ref) - * [`STDERR`](@ref) + * [`stdin`](@ref) + * [`stdout`](@ref) + * [`stderr`](@ref) * [`ENV`](@ref) * [`ENDIAN_BOM`](@ref) * `Libc.MS_ASYNC` diff --git a/doc/src/base/index.md b/doc/src/base/index.md deleted file mode 100644 index 637a62a1c4c0c7..00000000000000 --- a/doc/src/base/index.md +++ /dev/null @@ -1,36 +0,0 @@ -# The Julia Standard Library - - * [Essentials](@ref) - * [Collections and Data Structures](@ref) - * [Mathematics](@ref) - * [Numbers](@ref lib-numbers) - * [Strings](@ref lib-strings) - * [Arrays](@ref lib-arrays) - * [Tasks](@ref) - * [Distributed Computing](@ref) - * [Shared Arrays](@ref) - * [Multi-Threading](@ref) - * [Constants](@ref lib-constants) - * [Filesystem](@ref) - * [Delimited Files](@ref) - * [I/O and Network](@ref) - * [Punctuation](@ref) - * [Sorting and Related Functions](@ref) - * [Package Manager Functions](@ref) - * [Dates and Time](@ref stdlib-dates) - * [Iteration utilities](@ref) - * [Unit Testing](@ref) - * [C Interface](@ref) - * [LLVM Interface](@ref) - * [C Standard Library](@ref) - * [Dynamic Linker](@ref) - * [StackTraces](@ref) - * [SIMD Support](@ref) - * [Profiling](@ref lib-profiling) - * [Memory-mapped I/O](@ref) - * [Base64](@ref) - * [File Events](@ref lib-filewatching) - * [Sparse Arrays](@ref) - * [Iterative Eigensolvers](@ref lib-itereigen) - * [Printf](@ref) - * [Random Numbers](@ref) diff --git a/doc/src/base/io-network.md b/doc/src/base/io-network.md index ec69c67d3f4d83..9c0cf8161da239 100644 --- a/doc/src/base/io-network.md +++ b/doc/src/base/io-network.md @@ -3,9 +3,9 @@ ## General I/O ```@docs -Base.STDOUT -Base.STDERR -Base.STDIN +Base.stdout +Base.stderr +Base.stdin Base.open Base.IOBuffer Base.take!(::Base.GenericIOBuffer) @@ -93,8 +93,8 @@ Base.Multimedia.display Base.Multimedia.redisplay Base.Multimedia.displayable Base.show(::Any, ::Any, ::Any) -Base.Multimedia.mimewritable -Base.repr(::Any, ::Any) +Base.Multimedia.showable +Base.repr(::MIME, ::Any) ``` As mentioned above, one can also define new display backends. For example, a module that can display @@ -107,7 +107,7 @@ define a function `display(d::D, ::MIME"mime", x) = ...` that displays `x` as th usually by calling [`show(io, mime, x)`](@ref) or [`repr(io, mime, x)`](@ref). A `MethodError` should be thrown if `x` cannot be displayed as that MIME type; this is automatic if one calls `show` or `repr`. Finally, one should define a function -`display(d::D, x)` that queries [`mimewritable(mime, x)`](@ref) for the `mime` types supported by `D` +`display(d::D, x)` that queries [`showable(mime, x)`](@ref) for the `mime` types supported by `D` and displays the "best" one; a `MethodError` should be thrown if no supported MIME types are found for `x`. Similarly, some subtypes may wish to override [`redisplay(d::D, ...)`](@ref Base.Multimedia.redisplay). (Again, one should `import Base.display` to add new methods to `display`.) The return values of these functions are @@ -126,27 +126,7 @@ Base.Multimedia.istextmime ## Network I/O ```@docs -Base.connect(::TCPSocket, ::Integer) -Base.connect(::AbstractString) -Base.listen(::Any) -Base.listen(::AbstractString) -Base.getaddrinfo -Base.getalladdrinfo -Base.getnameinfo -Base.getsockname -Base.getpeername -Base.IPv4 -Base.IPv6 -Base.TCPSocket -Base.UDPSocket Base.bytesavailable -Base.accept -Base.listenany -Base.bind -Base.send -Base.recv -Base.recvfrom -Base.setopt Base.ntoh Base.hton Base.ltoh diff --git a/doc/src/base/numbers.md b/doc/src/base/numbers.md index 033590a69c0f6b..deea1c2746ea15 100644 --- a/doc/src/base/numbers.md +++ b/doc/src/base/numbers.md @@ -41,11 +41,6 @@ Base.Irrational ## Data Formats ```@docs -Base.bin -Base.hex -Base.dec -Base.oct -Base.base Base.digits Base.digits! Base.bitstring diff --git a/doc/src/base/strings.md b/doc/src/base/strings.md index f173e13667b10f..d71e7ef5b237fd 100644 --- a/doc/src/base/strings.md +++ b/doc/src/base/strings.md @@ -26,7 +26,6 @@ Base.isvalid(::Any, ::Any) Base.isvalid(::AbstractString, ::Integer) Base.match Base.eachmatch -Base.matchall Base.isless(::AbstractString, ::AbstractString) Base.:(==)(::AbstractString, ::AbstractString) Base.cmp(::AbstractString, ::AbstractString) diff --git a/doc/src/devdocs/offset-arrays.md b/doc/src/devdocs/offset-arrays.md index c26ac5870372e4..5288f30a6d383f 100644 --- a/doc/src/devdocs/offset-arrays.md +++ b/doc/src/devdocs/offset-arrays.md @@ -1,4 +1,4 @@ -# Arrays with custom indices +# [Arrays with custom indices](@id man-custom-indices) Julia 0.5 adds experimental support for arrays with arbitrary indices. Conventionally, Julia's arrays are indexed starting at 1, whereas some other languages start numbering at 0, and yet others diff --git a/doc/src/devdocs/reflection.md b/doc/src/devdocs/reflection.md index d664ef0aeb92d9..23ff13b919b1de 100644 --- a/doc/src/devdocs/reflection.md +++ b/doc/src/devdocs/reflection.md @@ -11,7 +11,7 @@ returns symbols for all bindings in `m`, regardless of export status. ## DataType fields The names of `DataType` fields may be interrogated using [`fieldnames`](@ref). For example, -given the following type, `fieldnames(Point)` returns an arrays of [`Symbol`](@ref) elements representing +given the following type, `fieldnames(Point)` returns a tuple of [`Symbol`](@ref)s representing the field names: ```jldoctest struct_point @@ -21,9 +21,7 @@ julia> struct Point end julia> fieldnames(Point) -2-element Array{Symbol,1}: - :x - :y +(:x, :y) ``` The type of each field in a `Point` object is stored in the `types` field of the `Point` variable @@ -52,9 +50,9 @@ of these fields is the `types` field observed in the example above. The *direct* subtypes of any `DataType` may be listed using [`subtypes`](@ref). For example, the abstract `DataType` [`AbstractFloat`](@ref) has four (concrete) subtypes: -```jldoctest +```jldoctest; setup = :(using InteractiveUtils) julia> subtypes(AbstractFloat) -4-element Array{Union{DataType, UnionAll},1}: +4-element Array{Any,1}: BigFloat Float16 Float32 @@ -83,9 +81,9 @@ the unquoted and interpolated expression (`Expr`) form for a given macro. To use `quote` the expression block itself (otherwise, the macro will be evaluated and the result will be passed instead!). For example: -```jldoctest +```jldoctest; setup = :(using InteractiveUtils) julia> macroexpand(@__MODULE__, :(@edit println("")) ) -:((Base.edit)(println, (Base.typesof)(""))) +:((InteractiveUtils.edit)(println, (Base.typesof)(""))) ``` The functions `Base.Meta.show_sexpr` and [`dump`](@ref) are used to display S-expr style views @@ -97,14 +95,18 @@ and variable assignments: ```jldoctest julia> Meta.lower(@__MODULE__, :(f() = 1) ) -:(begin - $(Expr(:method, :f)) - $(Expr(:method, :f, :((Core.svec)((Core.svec)((Core.Typeof)(f)), (Core.svec)())), CodeInfo(:(begin - #= none:1 =# - return 1 - end)), false)) - return f - end) +:($(Expr(:thunk, CodeInfo(:(begin + $(Expr(:method, :f)) + Core.SSAValue(0) = (Core.Typeof)(f) + Core.SSAValue(1) = (Core.svec)(Core.SSAValue(0)) + Core.SSAValue(2) = (Core.svec)() + Core.SSAValue(3) = (Core.svec)(Core.SSAValue(1), Core.SSAValue(2)) + $(Expr(:method, :f, Core.SSAValue(3), CodeInfo(:(begin + #= none:1 =# + return 1 + end)))) + return f + end))))) ``` ## Intermediate and compiled representations diff --git a/doc/src/devdocs/ssair.md b/doc/src/devdocs/ssair.md new file mode 100644 index 00000000000000..5ef925eb2a9950 --- /dev/null +++ b/doc/src/devdocs/ssair.md @@ -0,0 +1,103 @@ +# Julia SSA-form IR + +## Background + +Beginning in Julia 0.7, parts of the compiler use a new [SSA-form](https://en.wikipedia.org/wiki/Static_single_assignment_form) +intermediate representation. Historically, the compiler used to directly generate LLVM IR, from a lowered form of the Julia +AST. This form had most syntactic abstractions removed, but still looked a lot like an abstract syntax tree. +Over time, in order to facilitate optimizations, SSA values were introduced to this IR and the IR was +linearized (i.e. a form where function arguments may only be SSA values or constants). However, non-ssa values +(slots) remained in the IR due to the lack of Phi nodes in the IR (necessary for back-edges and re-merging of +conditional control flow), negating much of the usefulfulness of the SSA form representation to perform +middle end optimizations. Some heroic effort was put into making these optimizations work without a complete SSA +form representation, but the lack of such a representation ultimately proved prohibitive. + +## New IR nodes + +With the new IR representation, the compiler learned to handle two new IR nodes, Phi nodes and Pi +nodes. Phi nodes are part of generic SSA abstraction (see the link above if you're not familar with +the concept). In the Julia IR, these nodes are represented as: +``` +struct PhiNode + edges::Vector{Int} + values::Vector{Any} +end +``` +where we ensure that both vectors always have the same length. In the canonical representation (the one +handles by codegen and the interpreter), the edge values indicate come-from statement numbers (i.e. +if edge has an entry of `15`, there must be a `goto`, `gotoifnot` or implicit fall through from +statement `15` that targets this phi node). Values are either SSA values or constants. It is also +possible for a value to be unassigned if the variable was not defined on this path. However, undefinedness +checks get explicitly inserted and represented as booleans after middle end optimizations, so code generators +may assume that any use of a phi node will have an assigned value in the corresponding slot. It is also legal +for the mapping to be incomplete, i.e. for a phi node to have missing incoming edges. In that case, it must +be dynamically guaranteed that the corresponding value will not be used. + +PiNodes encode statically proven information that may be implicitly assumed in basic blocks dominated by a given +phi node. They are conceptually equivalent to the technique introduced in the paper +"ABCD: Eliminating Array Bounds Checks on Demand" or the predicate info nodes in LLVM. To see how they work, consider, +e.g. + +```julia +%x::Union{Int, Float64} # %x is some Union{Int, Float64} typed ssa value +if isa(x, Int) + # use x +else + # use x +end +``` + +we can perform predicate insertion and turn this into: + +```julia +%x::Union{Int, Float64} # %x is some Union{Int, Float64} typed ssa value +if isa(x, Int) + %x_int = PiNode(x, Int) + # use %x_int +else + %x_float = PiNode(x, Float64) + # use %x_float +end +``` + +Pi nodes are generally ignored in the interpreter, since they don't have any effect on the values, +but they may sometimes lead to code generation in the compiler (e.g. to change from an implicitly +union split representation to a plain unboxed representation). The main usefulness of PiNodes stems +from the fact that path conditions of the values can be accumulated simply by def-use chain walking +that is generally done for most optimizations that care about these conditions anyway. + +# Main SSA data structure + +The main `SSAIR` data structure is worthy of discussion. It draws inspiration from LLVM and Webkit's B3 IR. +The core of the data structure is a flat vector of statements. Each statement is implicitly assigned +an SSA values based on its position in the vector (i.e. the result of the statement at idx 1 can be +accessed using `SSAValue(1)` etc). For each SSA value, we additionally maintain its type. Since, SSA values +are definitionally assigned only once, this type is also the result type of the expression at the corresponding +index. However, while this representation is rather efficient (since the assignments don't need to be explicitly) +encoded, if of course carries the drawback that order is semantically significant, so reorderings and insertions +change statement numbers. Additionally, we do not keep use lists (i.e. it is impossible to walk from a def to +all its uses without explicitly computing this map - def lists however are trivial since you can lookup the +corresponding statement from the index), so the LLVM-style RAUW (replace-all-uses-with) operation is unavailable. + +Instead, we do the following: + +- We keep a separate buffer of nodes to insert (including the position to insert them at, the type of the + corresponding value and the node itself). These nodes are numbered by their occurrence in the insertion + buffer, allowing their values to be immediately used elesewhere in the IR (i.e. if there is 12 statements in + the original statement list, the first new statement will be accessible as `SSAValue(13)`) +- RAUW style operations are performed by setting the corresponding statement index to the replacement + value. +- Statements are erased by setting the corresponding statement to `nothing` (this is essentially just a special-case + convention of the above +- if there are any uses of the statement being erased they will be set to `nothing`) + +There is a `compact!` function that compacts the above data structure by performing the insertion of nodes in the appropriate place, trivial copy propagation and renaming of uses to any changed SSA values. However, the clever part +of this scheme is that this compaction can be done lazily as part of the subsequent pass. Most optimization passes +need to walk over the entire list of statements, performing analysis or modifications along the way. We provide an +`IncrementalCompact` iterator that can be used to iterate over the statement list. It will perform any necessary compaction, +and return the new index of the node, as well as the node itself. It is legal at this point to walk def-use chains, +as well as make any modifications or deletions to the IR (insertions are disallowed however). + +The idea behind this arrangement is that, since the optimization passes need to touch the corresponding memory anyway, +and incur the corresponding memory access penalty, performing the extra housekeeping should have comparitively little +overhead (and save the overhead of maintaining these data structures during IR modification). diff --git a/doc/src/devdocs/stdio.md b/doc/src/devdocs/stdio.md index 2adc259e036403..d17f7abc06bb9f 100644 --- a/doc/src/devdocs/stdio.md +++ b/doc/src/devdocs/stdio.md @@ -29,24 +29,24 @@ void jl_safe_printf(const char *str, ...); ## Interface between JL_STD* and Julia code -[`Base.STDIN`](@ref), [`Base.STDOUT`](@ref) and [`Base.STDERR`](@ref) are bound to the `JL_STD*` libuv +[`Base.stdin`](@ref), [`Base.stdout`](@ref) and [`Base.stderr`](@ref) are bound to the `JL_STD*` libuv streams defined in the runtime. Julia's `__init__()` function (in `base/sysimg.jl`) calls `reinit_stdio()` (in `base/stream.jl`) -to create Julia objects for [`Base.STDIN`](@ref), [`Base.STDOUT`](@ref) and [`Base.STDERR`](@ref). +to create Julia objects for [`Base.stdin`](@ref), [`Base.stdout`](@ref) and [`Base.stderr`](@ref). `reinit_stdio()` uses [`ccall`](@ref) to retrieve pointers to `JL_STD*` and calls `jl_uv_handle_type()` to inspect the type of each stream. It then creates a Julia `Base.IOStream`, `Base.TTY` or `Base.PipeEndpoint` object to represent each stream, e.g.: ``` -$ julia -e 'println(typeof((STDIN, STDOUT, STDERR)))' +$ julia -e 'println(typeof((stdin, stdout, stderr)))' Tuple{Base.TTY,Base.TTY,Base.TTY} -$ julia -e 'println(typeof((STDIN, STDOUT, STDERR)))' < /dev/null 2>/dev/null +$ julia -e 'println(typeof((stdin, stdout, stderr)))' < /dev/null 2>/dev/null Tuple{IOStream,Base.TTY,IOStream} -$ echo hello | julia -e 'println(typeof((STDIN, STDOUT, STDERR)))' | cat +$ echo hello | julia -e 'println(typeof((stdin, stdout, stderr)))' | cat Tuple{Base.PipeEndpoint,Base.PipeEndpoint,Base.TTY} ``` diff --git a/doc/src/index.md b/doc/src/index.md index 7faecc12ba9c48..dba35ba7a1b565 100644 --- a/doc/src/index.md +++ b/doc/src/index.md @@ -33,7 +33,6 @@ Please read the [release notes](NEWS.md) to see what has changed since the last * [Missing Values](@ref missing) * [Networking and Streams](@ref) * [Parallel Computing](@ref) - * [Date and DateTime](@ref) * [Running External Programs](@ref) * [Calling C and Fortran Code](@ref) * [Handling Operating System Variation](@ref) @@ -80,7 +79,7 @@ Please read the [release notes](NEWS.md) to see what has changed since the last * [Base64](@ref) * [CRC32c](@ref) * [SHA](@ref) - * [Dates and Time](@ref stdlib-dates) + * [Dates](@ref) * [Delimited Files](@ref) * [Distributed Computing](@ref) * [File Events](@ref lib-filewatching) @@ -115,7 +114,7 @@ Please read the [release notes](NEWS.md) to see what has changed since the last * [printf() and stdio in the Julia runtime](@ref) * [Bounds checking](@ref) * [Proper maintenance and care of multi-threading locks](@ref) - * [Arrays with custom indices](@ref) + * [Arrays with custom indices](@ref man-custom-indices) * [Module loading](@ref) * [Inference](@ref) * Developing/debugging Julia's C code diff --git a/doc/src/manual/arrays.md b/doc/src/manual/arrays.md index 09ca6a3af90b15..28f2c51f17a458 100644 --- a/doc/src/manual/arrays.md +++ b/doc/src/manual/arrays.md @@ -661,8 +661,8 @@ it also handles tuples and treats any argument that is not an array, tuple or [` ```jldoctest julia> convert.(Float32, [1, 2]) 2-element Array{Float32,1}: - 1.0f0 - 2.0f0 + 1.0 + 2.0 julia> ceil.((UInt8,), [1.2 3.4; 5.6 6.7]) 2×2 Array{UInt8,2}: diff --git a/doc/src/manual/complex-and-rational-numbers.md b/doc/src/manual/complex-and-rational-numbers.md index ebb7a0617f429d..9f49aa09011396 100644 --- a/doc/src/manual/complex-and-rational-numbers.md +++ b/doc/src/manual/complex-and-rational-numbers.md @@ -37,7 +37,7 @@ julia> (-1 + 2im)^2 -3 - 4im julia> (-1 + 2im)^2.5 -2.7296244647840084 - 6.960664459571898im +2.729624464784009 - 6.9606644595719im julia> (-1 + 2im)^(1 + 1im) -0.27910381075826657 + 0.08708053414102428im diff --git a/doc/src/manual/constructors.md b/doc/src/manual/constructors.md index 153d6e35f8938b..8ee79ea5ceaa9f 100644 --- a/doc/src/manual/constructors.md +++ b/doc/src/manual/constructors.md @@ -97,14 +97,16 @@ julia> struct OrderedPair Now `OrderedPair` objects can only be constructed such that `x <= y`: -```jldoctest pairtype +```jldoctest pairtype; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> OrderedPair(1, 2) OrderedPair(1, 2) julia> OrderedPair(2,1) ERROR: out of order Stacktrace: - [1] OrderedPair(::Int64, ::Int64) at ./none:4 + [1] error at ./error.jl:33 [inlined] + [2] OrderedPair(::Int64, ::Int64) at ./none:4 + [3] top-level scope ``` If the type were declared `mutable`, you could reach in and directly change the field values to @@ -277,7 +279,7 @@ that, by default, instances of parametric composite types can be constructed eit given type parameters or with type parameters implied by the types of the arguments given to the constructor. Here are some examples: -```jldoctest parametric +```jldoctest parametric; filter = r"Closest candidates.*\n .*" julia> struct Point{T<:Real} x::T y::T @@ -292,16 +294,15 @@ Point{Float64}(1.0, 2.5) julia> Point(1,2.5) ## implicit T ## ERROR: MethodError: no method matching Point(::Int64, ::Float64) Closest candidates are: - Point(::T<:Real, !Matched::T<:Real) where T<:Real at none:2 + Point(::T<:Real, ::T<:Real) where T<:Real at none:2 julia> Point{Int64}(1, 2) ## explicit T ## Point{Int64}(1, 2) julia> Point{Int64}(1.0,2.5) ## explicit T ## -ERROR: InexactError: convert(Int64, 2.5) +ERROR: InexactError: Int64(Int64, 2.5) Stacktrace: - [1] convert at ./float.jl:703 [inlined] - [2] Point{Int64}(::Float64, ::Float64) at ./none:2 +[...] julia> Point{Float64}(1.0, 2.5) ## explicit T ## Point{Float64}(1.0, 2.5) @@ -502,7 +503,7 @@ julia> typeof(z) <: Complex{OurRational} false ``` -Thus, although the [`⊘`](@ref) operator usually returns an instance of `OurRational`, if either +Thus, although the `⊘` operator usually returns an instance of `OurRational`, if either of its arguments are complex integers, it will return an instance of `Complex{OurRational}` instead. The interested reader should consider perusing the rest of [`rational.jl`](https://github.com/JuliaLang/julia/blob/master/base/rational.jl): it is short, self-contained, and implements an entire basic Julia type. diff --git a/doc/src/manual/control-flow.md b/doc/src/manual/control-flow.md index 18dd9828087cb0..5d38a7f4fdfa17 100644 --- a/doc/src/manual/control-flow.md +++ b/doc/src/manual/control-flow.md @@ -124,7 +124,7 @@ The variable `relation` is declared inside the `if` block, but used outside. How on this behavior, make sure all possible code paths define a value for the variable. The following change to the above function results in a runtime error -```jldoctest +```jldoctest; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> function test(x,y) if x < y relation = "less than" @@ -315,7 +315,7 @@ one can write ` || ` (which could be read as: *or else* For example, a recursive factorial routine could be defined like this: -```jldoctest +```jldoctest; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> function fact(n::Int) n >= 0 || error("n must be non-negative") n == 0 && return 1 @@ -332,7 +332,9 @@ julia> fact(0) julia> fact(-1) ERROR: n must be non-negative Stacktrace: - [1] fact(::Int64) at ./none:2 + [1] error at ./error.jl:33 [inlined] + [2] fact(::Int64) at ./none:2 + [3] top-level scope ``` Boolean operations *without* short-circuit evaluation can be done with the bitwise boolean operators @@ -589,7 +591,7 @@ Exceptions can be created explicitly with [`throw`](@ref). For example, a functi for nonnegative numbers could be written to [`throw`](@ref) a [`DomainError`](@ref) if the argument is negative: -```jldoctest +```jldoctest; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> f(x) = x>=0 ? exp(-x) : throw(DomainError(x, "argument must be nonnegative")) f (generic function with 1 method) @@ -652,7 +654,7 @@ Suppose we want to stop execution immediately if the square root of a negative n To do this, we can define a fussy version of the [`sqrt`](@ref) function that raises an error if its argument is negative: -```jldoctest fussy_sqrt +```jldoctest fussy_sqrt; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> fussy_sqrt(x) = x >= 0 ? sqrt(x) : error("negative x not allowed") fussy_sqrt (generic function with 1 method) @@ -662,14 +664,16 @@ julia> fussy_sqrt(2) julia> fussy_sqrt(-1) ERROR: negative x not allowed Stacktrace: - [1] fussy_sqrt(::Int64) at ./none:1 + [1] error at ./error.jl:33 [inlined] + [2] fussy_sqrt(::Int64) at ./none:1 + [3] top-level scope ``` If `fussy_sqrt` is called with a negative value from another function, instead of trying to continue execution of the calling function, it returns immediately, displaying the error message in the interactive session: -```jldoctest fussy_sqrt +```jldoctest fussy_sqrt; filter = r"Stacktrace:(\n \[[0-9]+\].*)*" julia> function verbose_fussy_sqrt(x) println("before fussy_sqrt") r = fussy_sqrt(x) @@ -687,8 +691,10 @@ julia> verbose_fussy_sqrt(-1) before fussy_sqrt ERROR: negative x not allowed Stacktrace: - [1] fussy_sqrt at ./none:1 [inlined] - [2] verbose_fussy_sqrt(::Int64) at ./none:3 + [1] error at ./error.jl:33 [inlined] + [2] fussy_sqrt at ./none:1 [inlined] + [3] verbose_fussy_sqrt(::Int64) at ./none:3 + [4] top-level scope ``` ### The `try/catch` statement diff --git a/doc/src/manual/conversion-and-promotion.md b/doc/src/manual/conversion-and-promotion.md index b824c97b6b015f..7345334714953e 100644 --- a/doc/src/manual/conversion-and-promotion.md +++ b/doc/src/manual/conversion-and-promotion.md @@ -88,7 +88,8 @@ doesn't know how to perform the requested conversion: ```jldoctest julia> convert(AbstractFloat, "foo") -ERROR: MethodError: Cannot `convert` an object of type String to an object of type AbstractFloat. +ERROR: MethodError: Cannot `convert` an object of type String to an object of type AbstractFloat +[...] ``` Some languages consider parsing strings as numbers or formatting numbers as strings to be conversions diff --git a/doc/src/manual/dates.md b/doc/src/manual/dates.md deleted file mode 100644 index 5496eb765468a0..00000000000000 --- a/doc/src/manual/dates.md +++ /dev/null @@ -1,628 +0,0 @@ -# Date and DateTime - -```@meta -CurrentModule = Dates -``` - -The `Dates` module provides two types for working with dates: [`Date`](@ref) and [`DateTime`](@ref), -representing day and millisecond precision, respectively; both are subtypes of the abstract [`TimeType`](@ref). -The motivation for distinct types is simple: some operations are much simpler, both in terms of -code and mental reasoning, when the complexities of greater precision don't have to be dealt with. -For example, since the [`Date`](@ref) type only resolves to the precision of a single date (i.e. -no hours, minutes, or seconds), normal considerations for time zones, daylight savings/summer -time, and leap seconds are unnecessary and avoided. - -Both [`Date`](@ref) and [`DateTime`](@ref) are basically immutable [`Int64`](@ref) wrappers. -The single `instant` field of either type is actually a `UTInstant{P}` type, which -represents a continuously increasing machine timeline based on the UT second [^1]. The -[`DateTime`](@ref) type is not aware of time zones (*naive*, in Python parlance), -analogous to a *LocalDateTime* in Java 8. Additional time zone functionality -can be added through the [TimeZones.jl package](https://github.com/JuliaTime/TimeZones.jl/), which -compiles the [IANA time zone database](http://www.iana.org/time-zones). Both [`Date`](@ref) and -[`DateTime`](@ref) are based on the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard, which follows the proleptic Gregorian calendar. -One note is that the ISO 8601 standard is particular about BC/BCE dates. In general, the last -day of the BC/BCE era, 1-12-31 BC/BCE, was followed by 1-1-1 AD/CE, thus no year zero exists. -The ISO standard, however, states that 1 BC/BCE is year zero, so `0000-12-31` is the day before -`0001-01-01`, and year `-0001` (yes, negative one for the year) is 2 BC/BCE, year `-0002` is 3 -BC/BCE, etc. - -[^1]: - The notion of the UT second is actually quite fundamental. There are basically two different notions - of time generally accepted, one based on the physical rotation of the earth (one full rotation - = 1 day), the other based on the SI second (a fixed, constant value). These are radically different! - Think about it, a "UT second", as defined relative to the rotation of the earth, may have a different - absolute length depending on the day! Anyway, the fact that [`Date`](@ref) and [`DateTime`](@ref) - are based on UT seconds is a simplifying, yet honest assumption so that things like leap seconds - and all their complexity can be avoided. This basis of time is formally called [UT](https://en.wikipedia.org/wiki/Universal_Time) - or UT1. Basing types on the UT second basically means that every minute has 60 seconds and every - day has 24 hours and leads to more natural calculations when working with calendar dates. - -## Constructors - -[`Date`](@ref) and [`DateTime`](@ref) types can be constructed by integer or [`Period`](@ref) -types, by parsing, or through adjusters (more on those later): - -```jldoctest -julia> DateTime(2013) -2013-01-01T00:00:00 - -julia> DateTime(2013,7) -2013-07-01T00:00:00 - -julia> DateTime(2013,7,1) -2013-07-01T00:00:00 - -julia> DateTime(2013,7,1,12) -2013-07-01T12:00:00 - -julia> DateTime(2013,7,1,12,30) -2013-07-01T12:30:00 - -julia> DateTime(2013,7,1,12,30,59) -2013-07-01T12:30:59 - -julia> DateTime(2013,7,1,12,30,59,1) -2013-07-01T12:30:59.001 - -julia> Date(2013) -2013-01-01 - -julia> Date(2013,7) -2013-07-01 - -julia> Date(2013,7,1) -2013-07-01 - -julia> Date(Dates.Year(2013),Dates.Month(7),Dates.Day(1)) -2013-07-01 - -julia> Date(Dates.Month(7),Dates.Year(2013)) -2013-07-01 -``` - -[`Date`](@ref) or [`DateTime`](@ref) parsing is accomplished by the use of format strings. Format -strings work by the notion of defining *delimited* or *fixed-width* "slots" that contain a period -to parse and passing the text to parse and format string to a [`Date`](@ref) or [`DateTime`](@ref) -constructor, of the form `Date("2015-01-01","y-m-d")` or `DateTime("20150101","yyyymmdd")`. - -Delimited slots are marked by specifying the delimiter the parser should expect between two subsequent -periods; so `"y-m-d"` lets the parser know that between the first and second slots in a date string -like `"2014-07-16"`, it should find the `-` character. The `y`, `m`, and `d` characters let the -parser know which periods to parse in each slot. - -Fixed-width slots are specified by repeating the period character the number of times corresponding -to the width with no delimiter between characters. So `"yyyymmdd"` would correspond to a date -string like `"20140716"`. The parser distinguishes a fixed-width slot by the absence of a delimiter, -noting the transition `"yyyymm"` from one period character to the next. - -Support for text-form month parsing is also supported through the `u` and `U` characters, for -abbreviated and full-length month names, respectively. By default, only English month names are -supported, so `u` corresponds to "Jan", "Feb", "Mar", etc. And `U` corresponds to "January", "February", -"March", etc. Similar to other name=>value mapping functions [`dayname`](@ref) and [`monthname`](@ref), -custom locales can be loaded by passing in the `locale=>Dict{String,Int}` mapping to the `MONTHTOVALUEABBR` -and `MONTHTOVALUE` dicts for abbreviated and full-name month names, respectively. - -One note on parsing performance: using the `Date(date_string,format_string)` function is fine -if only called a few times. If there are many similarly formatted date strings to parse however, -it is much more efficient to first create a [`Dates.DateFormat`](@ref), and pass it instead of -a raw format string. - -```jldoctest -julia> df = DateFormat("y-m-d"); - -julia> dt = Date("2015-01-01",df) -2015-01-01 - -julia> dt2 = Date("2015-01-02",df) -2015-01-02 -``` - -You can also use the `dateformat""` string macro. This macro creates the `DateFormat` object once when the macro is expanded and uses the same `DateFormat` object even if a code snippet is run multiple times. - -```jldoctest -julia> for i = 1:10^5 - Date("2015-01-01", dateformat"y-m-d") - end -``` - -A full suite of parsing and formatting tests and examples is available in [`stdlib/Dates/test/io.jl`](https://github.com/JuliaLang/julia/blob/master/stdlib/Dates/test/io.jl). - -## Durations/Comparisons - -Finding the length of time between two [`Date`](@ref) or [`DateTime`](@ref) is straightforward -given their underlying representation as `UTInstant{Day}` and `UTInstant{Millisecond}`, respectively. -The difference between [`Date`](@ref) is returned in the number of [`Day`](@ref), and [`DateTime`](@ref) -in the number of [`Millisecond`](@ref). Similarly, comparing [`TimeType`](@ref) is a simple matter -of comparing the underlying machine instants (which in turn compares the internal [`Int64`](@ref) values). - -```jldoctest -julia> dt = Date(2012,2,29) -2012-02-29 - -julia> dt2 = Date(2000,2,1) -2000-02-01 - -julia> dump(dt) -Date - instant: Dates.UTInstant{Dates.Day} - periods: Dates.Day - value: Int64 734562 - -julia> dump(dt2) -Date - instant: Dates.UTInstant{Dates.Day} - periods: Dates.Day - value: Int64 730151 - -julia> dt > dt2 -true - -julia> dt != dt2 -true - -julia> dt + dt2 -ERROR: MethodError: no method matching +(::Date, ::Date) -[...] - -julia> dt * dt2 -ERROR: MethodError: no method matching *(::Date, ::Date) -[...] - -julia> dt / dt2 -ERROR: MethodError: no method matching /(::Date, ::Date) -[...] - -julia> dt - dt2 -4411 days - -julia> dt2 - dt --4411 days - -julia> dt = DateTime(2012,2,29) -2012-02-29T00:00:00 - -julia> dt2 = DateTime(2000,2,1) -2000-02-01T00:00:00 - -julia> dt - dt2 -381110400000 milliseconds -``` - -## Accessor Functions - -Because the [`Date`](@ref) and [`DateTime`](@ref) types are stored as single [`Int64`](@ref) values, date -parts or fields can be retrieved through accessor functions. The lowercase accessors return the -field as an integer: - -```jldoctest tdate -julia> t = Date(2014, 1, 31) -2014-01-31 - -julia> Dates.year(t) -2014 - -julia> Dates.month(t) -1 - -julia> Dates.week(t) -5 - -julia> Dates.day(t) -31 -``` - -While propercase return the same value in the corresponding [`Period`](@ref) type: - -```jldoctest tdate -julia> Dates.Year(t) -2014 years - -julia> Dates.Day(t) -31 days -``` - -Compound methods are provided, as they provide a measure of efficiency if multiple fields are -needed at the same time: - -```jldoctest tdate -julia> Dates.yearmonth(t) -(2014, 1) - -julia> Dates.monthday(t) -(1, 31) - -julia> Dates.yearmonthday(t) -(2014, 1, 31) -``` - -One may also access the underlying `UTInstant` or integer value: - -```jldoctest tdate -julia> dump(t) -Date - instant: Dates.UTInstant{Dates.Day} - periods: Dates.Day - value: Int64 735264 - -julia> t.instant -Dates.UTInstant{Dates.Day}(735264 days) - -julia> Dates.value(t) -735264 -``` - -## Query Functions - -Query functions provide calendrical information about a [`TimeType`](@ref). They include information -about the day of the week: - -```jldoctest tdate2 -julia> t = Date(2014, 1, 31) -2014-01-31 - -julia> Dates.dayofweek(t) -5 - -julia> Dates.dayname(t) -"Friday" - -julia> Dates.dayofweekofmonth(t) # 5th Friday of January -5 -``` - -Month of the year: - -```jldoctest tdate2 -julia> Dates.monthname(t) -"January" - -julia> Dates.daysinmonth(t) -31 -``` - -As well as information about the [`TimeType`](@ref)'s year and quarter: - -```jldoctest tdate2 -julia> Dates.isleapyear(t) -false - -julia> Dates.dayofyear(t) -31 - -julia> Dates.quarterofyear(t) -1 - -julia> Dates.dayofquarter(t) -31 -``` - -The [`dayname`](@ref) and [`monthname`](@ref) methods can also take an optional `locale` keyword -that can be used to return the name of the day or month of the year for other languages/locales. -There are also versions of these functions returning the abbreviated names, namely -[`dayabbr`](@ref) and [`monthabbr`](@ref). -First the mapping is loaded into the `LOCALES` variable: - -```jldoctest tdate2 -julia> french_months = ["janvier", "février", "mars", "avril", "mai", "juin", - "juillet", "août", "septembre", "octobre", "novembre", "décembre"]; - -julia> french_monts_abbrev = ["janv","févr","mars","avril","mai","juin", - "juil","août","sept","oct","nov","déc"]; - -julia> french_days = ["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"]; - -julia> Dates.LOCALES["french"] = Dates.DateLocale(french_months, french_monts_abbrev, french_days, [""]); -``` - - The above mentioned functions can then be used to perform the queries: - -```jldoctest tdate2 -julia> Dates.dayname(t;locale="french") -"vendredi" - -julia> Dates.monthname(t;locale="french") -"janvier" - -julia> Dates.monthabbr(t;locale="french") -"janv" -``` - -Since the abbreviated versions of the days are not loaded, trying to use the -function `dayabbr` will error. - -```jldoctest tdate2 -julia> Dates.dayabbr(t;locale="french") -ERROR: BoundsError: attempt to access 1-element Array{String,1} at index [5] -Stacktrace: -[...] -``` - - -## TimeType-Period Arithmetic - -It's good practice when using any language/date framework to be familiar with how date-period -arithmetic is handled as there are some [tricky issues](https://codeblog.jonskeet.uk/2010/12/01/the-joys-of-date-time-arithmetic/) -to deal with (though much less so for day-precision types). - -The `Dates` module approach tries to follow the simple principle of trying to change as -little as possible when doing [`Period`](@ref) arithmetic. This approach is also often known as -*calendrical* arithmetic or what you would probably guess if someone were to ask you the same -calculation in a conversation. Why all the fuss about this? Let's take a classic example: add -1 month to January 31st, 2014. What's the answer? Javascript will say [March 3](http://www.markhneedham.com/blog/2009/01/07/javascript-add-a-month-to-a-date/) -(assumes 31 days). PHP says [March 2](https://stackoverflow.com/questions/5760262/php-adding-months-to-a-date-while-not-exceeding-the-last-day-of-the-month) -(assumes 30 days). The fact is, there is no right answer. In the `Dates` module, it gives -the result of February 28th. How does it figure that out? I like to think of the classic 7-7-7 -gambling game in casinos. - -Now just imagine that instead of 7-7-7, the slots are Year-Month-Day, or in our example, 2014-01-31. -When you ask to add 1 month to this date, the month slot is incremented, so now we have 2014-02-31. -Then the day number is checked if it is greater than the last valid day of the new month; if it -is (as in the case above), the day number is adjusted down to the last valid day (28). What are -the ramifications with this approach? Go ahead and add another month to our date, `2014-02-28 + Month(1) == 2014-03-28`. -What? Were you expecting the last day of March? Nope, sorry, remember the 7-7-7 slots. As few -slots as possible are going to change, so we first increment the month slot by 1, 2014-03-28, -and boom, we're done because that's a valid date. On the other hand, if we were to add 2 months -to our original date, 2014-01-31, then we end up with 2014-03-31, as expected. The other ramification -of this approach is a loss in associativity when a specific ordering is forced (i.e. adding things -in different orders results in different outcomes). For example: - -```jldoctest -julia> (Date(2014,1,29)+Dates.Day(1)) + Dates.Month(1) -2014-02-28 - -julia> (Date(2014,1,29)+Dates.Month(1)) + Dates.Day(1) -2014-03-01 -``` - -What's going on there? In the first line, we're adding 1 day to January 29th, which results in -2014-01-30; then we add 1 month, so we get 2014-02-30, which then adjusts down to 2014-02-28. -In the second example, we add 1 month *first*, where we get 2014-02-29, which adjusts down to -2014-02-28, and *then* add 1 day, which results in 2014-03-01. One design principle that helps -in this case is that, in the presence of multiple Periods, the operations will be ordered by the -Periods' *types*, not their value or positional order; this means `Year` will always be added -first, then `Month`, then `Week`, etc. Hence the following *does* result in associativity and -Just Works: - -```jldoctest -julia> Date(2014,1,29) + Dates.Day(1) + Dates.Month(1) -2014-03-01 - -julia> Date(2014,1,29) + Dates.Month(1) + Dates.Day(1) -2014-03-01 -``` - -Tricky? Perhaps. What is an innocent `Dates` user to do? The bottom line is to be aware -that explicitly forcing a certain associativity, when dealing with months, may lead to some unexpected -results, but otherwise, everything should work as expected. Thankfully, that's pretty much the -extent of the odd cases in date-period arithmetic when dealing with time in UT (avoiding the "joys" -of dealing with daylight savings, leap seconds, etc.). - -As a bonus, all period arithmetic objects work directly with ranges: - -```jldoctest -julia> dr = Date(2014,1,29):Date(2014,2,3) -2014-01-29:1 day:2014-02-03 - -julia> collect(dr) -6-element Array{Date,1}: - 2014-01-29 - 2014-01-30 - 2014-01-31 - 2014-02-01 - 2014-02-02 - 2014-02-03 - -julia> dr = Date(2014,1,29):Dates.Month(1):Date(2014,07,29) -2014-01-29:1 month:2014-07-29 - -julia> collect(dr) -7-element Array{Date,1}: - 2014-01-29 - 2014-02-28 - 2014-03-29 - 2014-04-29 - 2014-05-29 - 2014-06-29 - 2014-07-29 -``` - -## Adjuster Functions - -As convenient as date-period arithmetics are, often the kinds of calculations needed on dates -take on a *calendrical* or *temporal* nature rather than a fixed number of periods. Holidays are -a perfect example; most follow rules such as "Memorial Day = Last Monday of May", or "Thanksgiving -= 4th Thursday of November". These kinds of temporal expressions deal with rules relative to the -calendar, like first or last of the month, next Tuesday, or the first and third Wednesdays, etc. - -The `Dates` module provides the *adjuster* API through several convenient methods that -aid in simply and succinctly expressing temporal rules. The first group of adjuster methods deal -with the first and last of weeks, months, quarters, and years. They each take a single [`TimeType`](@ref) -as input and return or *adjust to* the first or last of the desired period relative to the input. - -```jldoctest -julia> Dates.firstdayofweek(Date(2014,7,16)) # Adjusts the input to the Monday of the input's week -2014-07-14 - -julia> Dates.lastdayofmonth(Date(2014,7,16)) # Adjusts to the last day of the input's month -2014-07-31 - -julia> Dates.lastdayofquarter(Date(2014,7,16)) # Adjusts to the last day of the input's quarter -2014-09-30 -``` - -The next two higher-order methods, [`tonext`](@ref), and [`toprev`](@ref), generalize working -with temporal expressions by taking a `DateFunction` as first argument, along with a starting -[`TimeType`](@ref). A `DateFunction` is just a function, usually anonymous, that takes a single -[`TimeType`](@ref) as input and returns a [`Bool`](@ref), `true` indicating a satisfied -adjustment criterion. -For example: - -```jldoctest -julia> istuesday = x->Dates.dayofweek(x) == Dates.Tuesday; # Returns true if the day of the week of x is Tuesday - -julia> Dates.tonext(istuesday, Date(2014,7,13)) # 2014-07-13 is a Sunday -2014-07-15 - -julia> Dates.tonext(Date(2014,7,13), Dates.Tuesday) # Convenience method provided for day of the week adjustments -2014-07-15 -``` - -This is useful with the do-block syntax for more complex temporal expressions: - -```jldoctest -julia> Dates.tonext(Date(2014,7,13)) do x - # Return true on the 4th Thursday of November (Thanksgiving) - Dates.dayofweek(x) == Dates.Thursday && - Dates.dayofweekofmonth(x) == 4 && - Dates.month(x) == Dates.November - end -2014-11-27 -``` - -The [`Base.filter`](@ref) method can be used to obtain all valid dates/moments in a specified -range: - -```jldoctest -# Pittsburgh street cleaning; Every 2nd Tuesday from April to November -# Date range from January 1st, 2014 to January 1st, 2015 -julia> dr = Dates.Date(2014):Dates.Date(2015); - -julia> filter(dr) do x - Dates.dayofweek(x) == Dates.Tue && - Dates.April <= Dates.month(x) <= Dates.Nov && - Dates.dayofweekofmonth(x) == 2 - end -8-element Array{Date,1}: - 2014-04-08 - 2014-05-13 - 2014-06-10 - 2014-07-08 - 2014-08-12 - 2014-09-09 - 2014-10-14 - 2014-11-11 -``` - -Additional examples and tests are available in [`stdlib/Dates/test/adjusters.jl`](https://github.com/JuliaLang/julia/blob/master/stdlib/Dates/test/adjusters.jl). - -## Period Types - -Periods are a human view of discrete, sometimes irregular durations of time. Consider 1 month; -it could represent, in days, a value of 28, 29, 30, or 31 depending on the year and month context. -Or a year could represent 365 or 366 days in the case of a leap year. [`Period`](@ref) types are -simple [`Int64`](@ref) wrappers and are constructed by wrapping any `Int64` convertible type, i.e. `Year(1)` -or `Month(3.0)`. Arithmetic between [`Period`](@ref) of the same type behave like integers, and -limited `Period-Real` arithmetic is available. - -```jldoctest -julia> y1 = Dates.Year(1) -1 year - -julia> y2 = Dates.Year(2) -2 years - -julia> y3 = Dates.Year(10) -10 years - -julia> y1 + y2 -3 years - -julia> div(y3,y2) -5 - -julia> y3 - y2 -8 years - -julia> y3 % y2 -0 years - -julia> div(y3,3) # mirrors integer division -3 years -``` - -## Rounding - -[`Date`](@ref) and [`DateTime`](@ref) values can be rounded to a specified resolution (e.g., 1 -month or 15 minutes) with [`floor`](@ref), [`ceil`](@ref), or [`round`](@ref): - -```jldoctest -julia> floor(Date(1985, 8, 16), Dates.Month) -1985-08-01 - -julia> ceil(DateTime(2013, 2, 13, 0, 31, 20), Dates.Minute(15)) -2013-02-13T00:45:00 - -julia> round(DateTime(2016, 8, 6, 20, 15), Dates.Day) -2016-08-07T00:00:00 -``` - -Unlike the numeric [`round`](@ref) method, which breaks ties toward the even number by default, -the [`TimeType`](@ref)[`round`](@ref) method uses the `RoundNearestTiesUp` rounding mode. (It's -difficult to guess what breaking ties to nearest "even" [`TimeType`](@ref) would entail.) Further -details on the available `RoundingMode` s can be found in the [API reference](@ref stdlib-dates). - -Rounding should generally behave as expected, but there are a few cases in which the expected -behaviour is not obvious. - -### Rounding Epoch - -In many cases, the resolution specified for rounding (e.g., `Dates.Second(30)`) divides evenly -into the next largest period (in this case, `Dates.Minute(1)`). But rounding behaviour in cases -in which this is not true may lead to confusion. What is the expected result of rounding a [`DateTime`](@ref) -to the nearest 10 hours? - -```jldoctest -julia> round(DateTime(2016, 7, 17, 11, 55), Dates.Hour(10)) -2016-07-17T12:00:00 -``` - -That may seem confusing, given that the hour (12) is not divisible by 10. The reason that `2016-07-17T12:00:00` -was chosen is that it is 17,676,660 hours after `0000-01-01T00:00:00`, and 17,676,660 is divisible -by 10. - -As Julia [`Date`](@ref) and [`DateTime`](@ref) values are represented according to the ISO 8601 -standard, `0000-01-01T00:00:00` was chosen as base (or "rounding epoch") from which to begin the -count of days (and milliseconds) used in rounding calculations. (Note that this differs slightly -from Julia's internal representation of [`Date`](@ref) s using Rata Die notation; but since the -ISO 8601 standard is most visible to the end user, `0000-01-01T00:00:00` was chosen as the rounding -epoch instead of the `0000-12-31T00:00:00` used internally to minimize confusion.) - -The only exception to the use of `0000-01-01T00:00:00` as the rounding epoch is when rounding -to weeks. Rounding to the nearest week will always return a Monday (the first day of the week -as specified by ISO 8601). For this reason, we use `0000-01-03T00:00:00` (the first day of the -first week of year 0000, as defined by ISO 8601) as the base when rounding to a number of weeks. - -Here is a related case in which the expected behaviour is not necessarily obvious: What happens -when we round to the nearest `P(2)`, where `P` is a [`Period`](@ref) type? In some cases (specifically, -when `P <: Dates.TimePeriod`) the answer is clear: - -```jldoctest -julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Hour(2)) -2016-07-17T08:00:00 - -julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Minute(2)) -2016-07-17T08:56:00 -``` - -This seems obvious, because two of each of these periods still divides evenly into the next larger -order period. But in the case of two months (which still divides evenly into one year), the answer -may be surprising: - -```jldoctest -julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Month(2)) -2016-07-01T00:00:00 -``` - -Why round to the first day in July, even though it is month 7 (an odd number)? The key is that -months are 1-indexed (the first month is assigned 1), unlike hours, minutes, seconds, and milliseconds -(the first of which are assigned 0). - -This means that rounding a [`DateTime`](@ref) to an even multiple of seconds, minutes, hours, -or years (because the ISO 8601 specification includes a year zero) will result in a [`DateTime`](@ref) -with an even value in that field, while rounding a [`DateTime`](@ref) to an even multiple of months -will result in the months field having an odd value. Because both months and years may contain -an irregular number of days, whether rounding to an even number of days will result in an even -value in the days field is uncertain. - -See the [API reference](@ref stdlib-dates) for additional information -on methods exported from the `Dates` module. diff --git a/doc/src/manual/documentation.md b/doc/src/manual/documentation.md index dbc068c10b7b7c..bfb24a4867d23e 100644 --- a/doc/src/manual/documentation.md +++ b/doc/src/manual/documentation.md @@ -182,6 +182,11 @@ As in the example above, we recommend following some simple conventions when wri Docstrings are edited using the same tools as code. Therefore, the same conventions should apply. It it advised to add line breaks after 92 characters. +6. Provide information allowing custom types to implement the function in an + `# Implementation` section. These implementation details intended for developers + rather than users, explaining e.g. which functions should be overridden and which functions + automatically use appropriate fallbacks, are better kept separate from the main description of + the function's behavior. ## Accessing Documentation @@ -338,7 +343,7 @@ function f end f ``` -Adds docstring `"..."` to function `f`. The first version is the preferred syntax, however both +Adds docstring `"..."` to the function `f`. The first version is the preferred syntax, however both are equivalent. ```julia @@ -354,7 +359,7 @@ end f(x) ``` -Adds docstring `"..."` to the `Method` `f(::Any)`. +Adds docstring `"..."` to the method `f(::Any)`. ```julia "..." diff --git a/doc/src/manual/embedding.md b/doc/src/manual/embedding.md index 54cabebd07c6f7..496d0f1b425fd8 100644 --- a/doc/src/manual/embedding.md +++ b/doc/src/manual/embedding.md @@ -44,7 +44,7 @@ gcc -o test -fPIC -I$JULIA_DIR/include/julia -L$JULIA_DIR/lib test.c -ljulia $JU Then if the environment variable `JULIA_BINDIR` is set to `$JULIA_DIR/bin`, the output `test` program can be executed. -Alternatively, look at the `embedding.c` program in the Julia source tree in the `examples/` folder. +Alternatively, look at the `embedding.c` program in the Julia source tree in the `test/embedding/` folder. The file `ui/repl.c` program is another simple example of how to set `jl_options` options while linking against `libjulia`. diff --git a/doc/src/manual/environment-variables.md b/doc/src/manual/environment-variables.md index ebc4617eff8c1d..28dbf152d5c221 100644 --- a/doc/src/manual/environment-variables.md +++ b/doc/src/manual/environment-variables.md @@ -5,7 +5,7 @@ usual way of the operating system, or in a portable way from within Julia. Suppose you want to set the environment variable `JULIA_EDITOR` to `vim`, then either type `ENV["JULIA_EDITOR"] = "vim"` for instance in the REPL to make this change on a case by case basis, or add the same to the user -configuration file `.juliarc.jl` in the user's home directory to have +configuration file `~/.julia/config/startup.jl` in the user's home directory to have a permanent effect. The current value of the same environment variable is determined by evaluating `ENV["JULIA_EDITOR"]`. @@ -42,14 +42,14 @@ determines the directory in which Julia initially searches for source files (via `Base.find_source_file()`). Likewise, the global variable `Base.SYSCONFDIR` determines a relative path to the -configuration file directory. Then Julia searches for a `juliarc.jl` file at +configuration file directory. Then Julia searches for a `startup.jl` file at ``` -$JULIA_BINDIR/$SYSCONFDIR/julia/juliarc.jl -$JULIA_BINDIR/../etc/julia/juliarc.jl +$JULIA_BINDIR/$SYSCONFDIR/julia/startup.jl +$JULIA_BINDIR/../etc/julia/startup.jl ``` -by default (via `Base.load_juliarc()`). +by default (via `Base.load_julia_startup()`). For example, a Linux installation with a Julia executable located at `/bin/julia`, a `DATAROOTDIR` of `../share`, and a `SYSCONFDIR` of `../etc` will @@ -62,7 +62,7 @@ have `JULIA_BINDIR` set to `/bin`, a source-file search path of and a global configuration search path of ``` -/etc/julia/juliarc.jl +/etc/julia/startup.jl ``` ### `JULIA_LOAD_PATH` diff --git a/doc/src/manual/faq.md b/doc/src/manual/faq.md index d367791dad20f5..da681180598be0 100644 --- a/doc/src/manual/faq.md +++ b/doc/src/manual/faq.md @@ -147,18 +147,18 @@ argument is called slurping: ```jldoctest julia> function printargs(args...) - @printf("%s\n", typeof(args)) + println(typeof(args)) for (i, arg) in enumerate(args) - @printf("Arg %d = %s\n", i, arg) + println("Arg #$i = $arg") end end printargs (generic function with 1 method) julia> printargs(1, 2, 3) Tuple{Int64,Int64,Int64} -Arg 1 = 1 -Arg 2 = 2 -Arg 3 = 3 +Arg #1 = 1 +Arg #2 = 2 +Arg #3 = 3 ``` If Julia were a language that made more liberal use of ASCII characters, the slurping operator @@ -173,19 +173,19 @@ call. This use of `...` is called splatting: ```jldoctest julia> function threeargs(a, b, c) - @printf("a = %s::%s\n", a, typeof(a)) - @printf("b = %s::%s\n", b, typeof(b)) - @printf("c = %s::%s\n", c, typeof(c)) + println("a = $a::$(typeof(a))") + println("b = $b::$(typeof(b))") + println("c = $c::$(typeof(c))") end threeargs (generic function with 1 method) -julia> vec = [1, 2, 3] +julia> x = [1, 2, 3] 3-element Array{Int64,1}: 1 2 3 -julia> threeargs(vec...) +julia> threeargs(x...) a = 1::Int64 b = 2::Int64 c = 3::Int64 @@ -693,7 +693,7 @@ Consider the printed output from the following: ```jldoctest julia> @sync for i in 1:3 - @async write(STDOUT, string(i), " Foo ", " Bar ") + @async write(stdout, string(i), " Foo ", " Bar ") end 123 Foo Foo Foo Bar Bar Bar ``` @@ -706,7 +706,7 @@ in the above example results in: ```jldoctest julia> @sync for i in 1:3 - @async println(STDOUT, string(i), " Foo ", " Bar ") + @async println(stdout, string(i), " Foo ", " Bar ") end 1 Foo Bar 2 Foo Bar @@ -723,7 +723,7 @@ julia> @sync for i in 1:3 @async begin lock(l) try - write(STDOUT, string(i), " Foo ", " Bar ") + write(stdout, string(i), " Foo ", " Bar ") finally unlock(l) end diff --git a/doc/src/manual/functions.md b/doc/src/manual/functions.md index fc79f56401dac6..5779954cb60505 100644 --- a/doc/src/manual/functions.md +++ b/doc/src/manual/functions.md @@ -125,6 +125,21 @@ There are three possible points of return from this function, returning the valu expressions, depending on the values of `x` and `y`. The `return` on the last line could be omitted since it is the last expression. +A return type can also be specified in the function declaration using the `::` operator. This converts +the return value to the specified type. + +```jldoctest +julia> function g(x, y)::Int8 + return x * y + end; + +julia> typeof(g(1, 2)) +Int8 +``` + +This function will always return an `Int8` regardless of the types of `x` and `y`. +See [Type Declarations](@ref) for more on return types. + ## Operators Are Functions In Julia, most operators are just functions with support for special syntax. (The exceptions are diff --git a/doc/src/manual/getting-started.md b/doc/src/manual/getting-started.md index 842cff0df38f19..6de2c96f669af2 100644 --- a/doc/src/manual/getting-started.md +++ b/doc/src/manual/getting-started.md @@ -80,10 +80,11 @@ takes the form `[count*][user@]host[:port] [bind_addr[:port]]` . `user` defaults to 1. The optional `bind-to bind_addr[:port]` specifies the ip-address and port that other workers should use to connect to this worker. -If you have code that you want executed whenever Julia is run, you can put it in `~/.juliarc.jl`: +If you have code that you want executed whenever Julia is run, you can put it in +`~/.julia/config/startup.jl`: ``` -$ echo 'println("Greetings! 你好! 안녕하세요?")' > ~/.juliarc.jl +$ echo 'println("Greetings! 你好! 안녕하세요?")' > ~/.julia/config/startup.jl $ julia Greetings! 你好! 안녕하세요? @@ -100,7 +101,7 @@ julia [switches] -- [programfile] [args...] -J, --sysimage Start up with the given system image file -H, --home Set location of `julia` executable - --startup-file={yes|no} Load ~/.juliarc.jl + --startup-file={yes|no} Load `~/.julia/config/startup.jl` --handle-signals={yes|no} Enable or disable Julia's default signal handlers --sysimage-native-code={yes|no} Use native code from system image if available diff --git a/doc/src/manual/index.md b/doc/src/manual/index.md index 5d776d5dbf22e1..148d5e021ea543 100644 --- a/doc/src/manual/index.md +++ b/doc/src/manual/index.md @@ -22,7 +22,7 @@ * [Missing Values](@ref missing) * [Networking and Streams](@ref) * [Parallel Computing](@ref) - * [Date and DateTime](@ref) + * [Dates](@ref) * [Running External Programs](@ref) * [Calling C and Fortran Code](@ref) * [Handling Operating System Variation](@ref) diff --git a/doc/src/manual/interfaces.md b/doc/src/manual/interfaces.md index 236641c254821f..2349da948f2536 100644 --- a/doc/src/manual/interfaces.md +++ b/doc/src/manual/interfaces.md @@ -39,7 +39,7 @@ tests if there are any elements remaining, and `next(iter, state)`, which return the current element and an updated `state`. The `state` object can be anything, and is generally considered to be an implementation detail private to the iterable object. -Any object defines these three methods is iterable and can be used in the [many functions that rely upon iteration](@ref lib-collections-iteration). +Any object that defines these three methods is iterable and can be used in the [many functions that rely upon iteration](@ref lib-collections-iteration). It can also be used directly in a `for` loop since the syntax: ```julia @@ -189,6 +189,7 @@ valid index. It is recommended to also define [`firstindex`](@ref) to specify th ```jldoctest squaretype julia> Base.firstindex(S::Squares) = 1 + julia> Base.lastindex(S::Squares) = length(S) julia> Squares(23)[end] @@ -400,7 +401,8 @@ julia> mean(A) If you are defining an array type that allows non-traditional indexing (indices that start at something other than 1), you should specialize `indices`. You should also specialize [`similar`](@ref) so that the `dims` argument (ordinarily a `Dims` size-tuple) can accept `AbstractUnitRange` objects, -perhaps range-types `Ind` of your own design. For more information, see [Arrays with custom indices](@ref). +perhaps range-types `Ind` of your own design. For more information, see +[Arrays with custom indices](@ref man-custom-indices). ## [Strided Arrays](@id man-interface-strided-arrays) @@ -505,7 +507,7 @@ However, if needed you can specialize on any or all of these arguments. For a complete example, let's say you have created a type, `ArrayAndChar`, that stores an array and a single character: -```jldoctest +```jldoctest ArrayAndChar struct ArrayAndChar{T,N} <: AbstractArray{T,N} data::Array{T,N} char::Char @@ -514,16 +516,20 @@ Base.size(A::ArrayAndChar) = size(A.data) Base.getindex(A::ArrayAndChar{T,N}, inds::Vararg{Int,N}) where {T,N} = A.data[inds...] Base.setindex!(A::ArrayAndChar{T,N}, val, inds::Vararg{Int,N}) where {T,N} = A.data[inds...] = val Base.showarg(io::IO, A::ArrayAndChar, toplevel) = print(io, typeof(A), " with char '", A.char, "'") +# output + ``` You might want broadcasting to preserve the `char` "metadata." First we define -```jldoctest +```jldoctest ArrayAndChar Base.BroadcastStyle(::Type{<:ArrayAndChar}) = Broadcast.ArrayStyle{ArrayAndChar}() +# output + ``` This forces us to also define a `broadcast_similar` method: -```jldoctest +```jldoctest ArrayAndChar; filter = r"(^find_aac \(generic function with 2 methods\)$|^$)" function Base.broadcast_similar(f, ::Broadcast.ArrayStyle{ArrayAndChar}, ::Type{ElType}, inds, As...) where ElType # Scan the inputs for the ArrayAndChar: A = find_aac(As...) @@ -533,11 +539,13 @@ end "`A = find_aac(As...)` returns the first ArrayAndChar among the arguments." find_aac(A::ArrayAndChar, B...) = A -find_aac(A, B...) = find_aac(B...) +find_aac(A, B...) = find_aac(B...); +# output + ``` From these definitions, one obtains the following behavior: -```jldoctest +```jldoctest ArrayAndChar julia> a = ArrayAndChar([1 2; 3 4], 'x') 2×2 ArrayAndChar{Int64,2} with char 'x': 1 2 diff --git a/doc/src/manual/mathematical-operations.md b/doc/src/manual/mathematical-operations.md index b539efbe3d0e59..f33449c9678dba 100644 --- a/doc/src/manual/mathematical-operations.md +++ b/doc/src/manual/mathematical-operations.md @@ -380,7 +380,7 @@ You can also find the numerical precedence for any given operator via the built- ```jldoctest julia> Base.operator_precedence(:+), Base.operator_precedence(:*), Base.operator_precedence(:.) -(9, 11, 15) +(11, 13, 17) julia> Base.operator_precedence(:sin), Base.operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) (0, 1, 1) @@ -424,25 +424,20 @@ julia> Int8(127) julia> Int8(128) ERROR: InexactError: trunc(Int8, 128) Stacktrace: - [1] throw_inexacterror(::Symbol, ::Type{Int8}, ::Int64) at ./int.jl:34 - [2] checked_trunc_sint at ./int.jl:438 [inlined] - [3] convert at ./int.jl:458 [inlined] - [4] Int8(::Int64) at ./sysimg.jl:114 +[...] julia> Int8(127.0) 127 julia> Int8(3.14) -ERROR: InexactError: convert(Int8, 3.14) +ERROR: InexactError: Int8(Int8, 3.14) Stacktrace: - [1] convert at ./float.jl:682 [inlined] - [2] Int8(::Float64) at ./sysimg.jl:114 +[...] julia> Int8(128.0) -ERROR: InexactError: convert(Int8, 128.0) +ERROR: InexactError: Int8(Int8, 128.0) Stacktrace: - [1] convert at ./float.jl:682 [inlined] - [2] Int8(::Float64) at ./sysimg.jl:114 +[...] julia> 127 % Int8 127 @@ -456,8 +451,7 @@ julia> round(Int8,127.4) julia> round(Int8,127.6) ERROR: InexactError: trunc(Int8, 128.0) Stacktrace: - [1] trunc at ./float.jl:675 [inlined] - [2] round(::Type{Int8}, ::Float64) at ./float.jl:353 +[...] ``` See [Conversion and Promotion](@ref conversion-and-promotion) for how to define your own conversions and promotions. diff --git a/doc/src/manual/metaprogramming.md b/doc/src/manual/metaprogramming.md index 2ac0c0c829e8e8..14fa9c5b73e4fc 100644 --- a/doc/src/manual/metaprogramming.md +++ b/doc/src/manual/metaprogramming.md @@ -216,7 +216,7 @@ Interpolating into an unquoted expression is not supported and will cause a comp ```jldoctest interp1 julia> $a + b -ERROR: unsupported or misplaced expression $ +ERROR: syntax: "$" expression outside quote ``` In this example, the tuple `(1,2,3)` is interpolated as an expression into a conditional test: @@ -407,10 +407,10 @@ julia> eval(ex) The value of `a` is used to construct the expression `ex` which applies the `+` function to the value 1 and the variable `b`. Note the important distinction between the way `a` and `b` are used: - * The value of the *variable*`a` at expression construction time is used as an immediate value in + * The value of the *variable* `a` at expression construction time is used as an immediate value in the expression. Thus, the value of `a` when the expression is evaluated no longer matters: the value in the expression is already `1`, independent of whatever the value of `a` might be. - * On the other hand, the *symbol*`:b` is used in the expression construction, so the value of the + * On the other hand, the *symbol* `:b` is used in the expression construction, so the value of the variable `b` at that time is irrelevant -- `:b` is just a symbol and the variable `b` need not even be defined. At expression evaluation time, however, the value of the symbol `:b` is resolved by looking up the value of the variable `b`. diff --git a/doc/src/manual/missing.md b/doc/src/manual/missing.md index 89ccb7fd0fa252..4467f587da162f 100644 --- a/doc/src/manual/missing.md +++ b/doc/src/manual/missing.md @@ -276,10 +276,6 @@ julia> y = Union{Missing, String}[missing, "b"] julia> convert(Array{String}, y) ERROR: MethodError: Cannot `convert` an object of type Missing to an object of type String -This may have arisen from a call to the constructor String(...), -since type constructors fall back to convert methods. -Stacktrace: -[... ``` ## Skipping Missing Values diff --git a/doc/src/manual/modules.md b/doc/src/manual/modules.md index bb7c0f28e2b4f3..20930e2a3210b5 100644 --- a/doc/src/manual/modules.md +++ b/doc/src/manual/modules.md @@ -191,8 +191,9 @@ The global variable [`LOAD_PATH`](@ref) contains the directories Julia searches push!(LOAD_PATH, "/Path/To/My/Module/") ``` -Putting this statement in the file `~/.juliarc.jl` will extend [`LOAD_PATH`](@ref) on every Julia startup. -Alternatively, the module load path can be extended by defining the environment variable `JULIA_LOAD_PATH`. +Putting this statement in the file `~/.julia/config/startup.jl` will extend [`LOAD_PATH`](@ref) on +every Julia startup. Alternatively, the module load path can be extended by defining the environment +variable `JULIA_LOAD_PATH`. ### Namespace miscellanea @@ -221,7 +222,7 @@ versions of modules to reduce this time. To create an incremental precompiled module file, add `__precompile__()` at the top of your module file (before the `module` starts). This will cause it to be automatically compiled the first time it is imported. Alternatively, you can manually call `Base.compilecache(modulename)`. The resulting -cache files will be stored in `Base.LOAD_CACHE_PATH[1]`. Subsequently, the module is automatically +cache files will be stored in `DEPOT_PATH[1]/compiled/`. Subsequently, the module is automatically recompiled upon `import` whenever any of its dependencies change; dependencies are modules it imports, the Julia build, files it includes, or explicit dependencies declared by `include_dependency(path)` in the module file(s). @@ -342,11 +343,11 @@ Other known potential failure scenarios include: of via its lookup path. For example, (in global scope): ```julia - #mystdout = Base.STDOUT #= will not work correctly, since this will copy Base.STDOUT into this module =# + #mystdout = Base.stdout #= will not work correctly, since this will copy Base.stdout into this module =# # instead use accessor functions: - getstdout() = Base.STDOUT #= best option =# + getstdout() = Base.stdout #= best option =# # or move the assignment into the runtime: - __init__() = global mystdout = Base.STDOUT #= also works =# + __init__() = global mystdout = Base.stdout #= also works =# ``` Several additional restrictions are placed on the operations that can be done while precompiling diff --git a/doc/src/manual/networking-and-streams.md b/doc/src/manual/networking-and-streams.md index d43c0d1cbc7c2a..4d75c597292013 100644 --- a/doc/src/manual/networking-and-streams.md +++ b/doc/src/manual/networking-and-streams.md @@ -12,14 +12,14 @@ All Julia streams expose at least a [`read`](@ref) and a [`write`](@ref) method, stream as their first argument, e.g.: ```julia-repl -julia> write(STDOUT, "Hello World"); # suppress return value 11 with ; +julia> write(stdout, "Hello World"); # suppress return value 11 with ; Hello World -julia> read(STDIN, Char) +julia> read(stdin, Char) '\n': ASCII/Unicode U+000a (category Cc: Other, control) ``` -Note that [`write`](@ref) returns 11, the number of bytes (in `"Hello World"`) written to [`STDOUT`](@ref), +Note that [`write`](@ref) returns 11, the number of bytes (in `"Hello World"`) written to [`stdout`](@ref), but this return value is suppressed with the `;`. Here Enter was pressed again so that Julia would read the newline. Now, as you can see from this @@ -36,7 +36,7 @@ julia> x = zeros(UInt8, 4) 0x00 0x00 -julia> read!(STDIN, x) +julia> read!(stdin, x) abcd 4-element Array{UInt8,1}: 0x61 @@ -49,7 +49,7 @@ However, since this is slightly cumbersome, there are several convenience method example, we could have written the above as: ```julia-repl -julia> read(STDIN, 4) +julia> read(stdin, 4) abcd 4-element Array{UInt8,1}: 0x61 @@ -61,7 +61,7 @@ abcd or if we had wanted to read the entire line instead: ```julia-repl -julia> readline(STDIN) +julia> readline(stdin) abcd "abcd" ``` @@ -69,10 +69,10 @@ abcd Note that depending on your terminal settings, your TTY may be line buffered and might thus require an additional enter before the data is sent to Julia. -To read every line from [`STDIN`](@ref) you can use [`eachline`](@ref): +To read every line from [`stdin`](@ref) you can use [`eachline`](@ref): ```julia -for line in eachline(STDIN) +for line in eachline(stdin) print("Found $line") end ``` @@ -80,8 +80,8 @@ end or [`read`](@ref) if you wanted to read by character instead: ```julia -while !eof(STDIN) - x = read(STDIN, Char) +while !eof(stdin) + x = read(stdin, Char) println("Found: $x") end ``` @@ -92,18 +92,18 @@ Note that the [`write`](@ref) method mentioned above operates on binary streams. values do not get converted to any canonical text representation but are written out as is: ```jldoctest -julia> write(STDOUT, 0x61); # suppress return value 1 with ; +julia> write(stdout, 0x61); # suppress return value 1 with ; a ``` -Note that `a` is written to [`STDOUT`](@ref) by the [`write`](@ref) function and that the returned +Note that `a` is written to [`stdout`](@ref) by the [`write`](@ref) function and that the returned value is `1` (since `0x61` is one byte). For text I/O, use the [`print`](@ref) or [`show`](@ref) methods, depending on your needs (see the Julia Base reference for a detailed discussion of the difference between the two): ```jldoctest -julia> print(STDOUT, 0x61) +julia> print(stdout, 0x61) 97 ``` @@ -272,7 +272,7 @@ julia> clientside = connect(2001) TCPSocket(RawFD(28) open, 0 bytes waiting) julia> @async while true - write(STDOUT,readline(clientside)) + write(stdout,readline(clientside)) end Task (runnable) @0x00007fd31dc11870 diff --git a/doc/src/manual/parallel-computing.md b/doc/src/manual/parallel-computing.md index 195d039f152f25..58bdaf9f72de03 100644 --- a/doc/src/manual/parallel-computing.md +++ b/doc/src/manual/parallel-computing.md @@ -221,9 +221,9 @@ julia> addprocs(2) Module `Distributed` must be explicitly loaded on the master process before invoking [`addprocs`](@ref). It is automatically made available on the worker processes. -Note that workers do not run a `.juliarc.jl` startup script, nor do they synchronize their global -state (such as global variables, new method definitions, and loaded modules) with any of the other -running processes. +Note that workers do not run a `~/.julia/config/startup.jl` startup script, nor do they synchronize +their global state (such as global variables, new method definitions, and loaded modules) with any +of the other running processes. Other types of clusters can be supported by writing your own custom `ClusterManager`, as described below in the [ClusterManagers](@ref) section. @@ -727,7 +727,8 @@ Methods [`put!`](@ref), [`take!`](@ref), [`fetch`](@ref), [`isready`](@ref) and on a [`RemoteChannel`](@ref) are proxied onto the backing store on the remote process. [`RemoteChannel`](@ref) can thus be used to refer to user implemented `AbstractChannel` objects. -A simple example of this is provided in `examples/dictchannel.jl` which uses a dictionary as its +A simple example of this is provided in `dictchannel.jl` in the +[Examples repository](https://github.com/JuliaArchive/Examples), which uses a dictionary as its remote store. ## Channels and RemoteChannels @@ -1071,8 +1072,8 @@ manner: * [`addprocs`](@ref) is called on the master process with a `ClusterManager` object. * [`addprocs`](@ref) calls the appropriate [`launch`](@ref) method which spawns required number of worker processes on appropriate machines. - * Each worker starts listening on a free port and writes out its host and port information to [`STDOUT`](@ref). - * The cluster manager captures the [`STDOUT`](@ref) of each worker and makes it available to the + * Each worker starts listening on a free port and writes out its host and port information to [`stdout`](@ref). + * The cluster manager captures the [`stdout`](@ref) of each worker and makes it available to the master process. * The master process parses this information and sets up TCP/IP connections to each worker. * Every worker is also notified of other workers in the cluster. @@ -1246,7 +1247,8 @@ transport and Julia's in-built parallel infrastructure. A `BufferStream` is an in-memory [`IOBuffer`](@ref) which behaves like an `IO`--it is a stream which can be handled asynchronously. -Folder `examples/clustermanager/0mq` contains an example of using ZeroMQ to connect Julia workers +The folder `clustermanager/0mq` in the [Examples repository](https://github.com/JuliaArchive/Examples) +contains an example of using ZeroMQ to connect Julia workers in a star topology with a 0MQ broker in the middle. Note: The Julia processes are still all *logically* connected to each other--any worker can message any other worker directly without any awareness of 0MQ being used as the transport layer. @@ -1268,7 +1270,7 @@ When using custom transports: the corresponding `IO` objects must be closed by the implementation to ensure proper cleanup. The default implementation simply executes an `exit()` call on the specified remote worker. -`examples/clustermanager/simple` is an example that shows a simple implementation using UNIX domain +The Examples folder `clustermanager/simple` is an example that shows a simple implementation using UNIX domain sockets for cluster setup. ## Network Requirements for LocalManager and SSHManager @@ -1315,7 +1317,7 @@ on the master process: are allowed to connect to each other. * The cookie may be passed to the workers at startup via argument `--worker=`. If argument `--worker` is specified without the cookie, the worker tries to read the cookie from its - standard input ([`STDIN`](@ref)). The `STDIN` is closed immediately after the cookie is retrieved. + standard input ([`stdin`](@ref)). The `stdin` is closed immediately after the cookie is retrieved. * `ClusterManager`s can retrieve the cookie on the master by calling [`cluster_cookie()`](@ref). Cluster managers not using the default TCP/IP transport (and hence not specifying `--worker`) must call `init_worker(cookie, manager)` with the same cookie as on the master. @@ -1346,8 +1348,8 @@ in future releases. ## Multi-Threading (Experimental) -In addition to tasks, remote calls, and remote references, Julia from `v0.5` forwards will natively -support multi-threading. Note that this section is experimental and the interfaces may change +In addition to tasks, remote calls, and remote references, Julia from `v0.5` forwards natively +supports multi-threading. Note that this section is experimental and the interfaces may change in the future. ### Setup @@ -1505,6 +1507,96 @@ julia> acc[] `UInt64`, `UInt128`, `Float16`, `Float32`, and `Float64`. Additionally, `Int128` and `UInt128` are not supported on AAarch32 and ppc64le. +When using multi-threading we have to be careful when using functions that are not +[pure](https://en.wikipedia.org/wiki/Pure_function) as we might get a wrong answer. +For instance functions that have their +[name ending with `!`](https://docs.julialang.org/en/latest/manual/style-guide/#Append-!-to-names-of-functions-that-modify-their-arguments-1) +by convention modify their arguments and thus are not pure. However, there are +functions that have side effects and their name does not end with `!`. For +instance [`findfirst(regex, str)`](@ref) mutates its `regex` argument or +[`rand()`](@ref) changes `Base.GLOBAL_RNG` : + +```julia-repl +julia> using Base.Threads + +julia> nthreads() +4 + +julia> function f() + s = repeat(["123", "213", "231"], outer=1000) + x = similar(s, Int) + rx = r"1" + @threads for i in 1:3000 + x[i] = findfirst(rx, s[i]).start + end + count(v -> v == 1, x) + end +f (generic function with 1 method) + +julia> f() # the correct result is 1000 +1017 + +julia> function g() + a = zeros(1000) + @threads for i in 1:1000 + a[i] = rand() + end + length(unique(a)) + end +g (generic function with 1 method) + +julia> srand(1); g() # the result for a single thread is 1000 +781 +``` + +In such cases one should redesign the code to avoid the possibility of a race condition or use +[synchronization primitives](https://docs.julialang.org/en/latest/base/multi-threading/#Synchronization-Primitives-1). + +For example in order to fix `findfirst` example above one needs to have a +separate copy of `rx` variable for each thread: + +```julia-repl +julia> function f_fix() + s = repeat(["123", "213", "231"], outer=1000) + x = similar(s, Int) + rx = [Regex("1") for i in 1:nthreads()] + @threads for i in 1:3000 + x[i] = findfirst(rx[threadid()], s[i]).start + end + count(v -> v == 1, x) + end +f_fix (generic function with 1 method) + +julia> f_fix() +1000 +``` + +We now use `Regex("1")` instead of `r"1"` to make sure that Julia +creates separate instances of `Regex` object for each entry of `rx` vector. + +The case of `rand` is a bit more complex as we have to ensure that each thread +uses non-overlapping pseudorandom number sequences. This can be simply ensured +by using [`randjump`](@ref) function: + + +```julia-repl +julia> function g_fix(r) + a = zeros(1000) + @threads for i in 1:1000 + a[i] = rand(r[threadid()]) + end + length(unique(a)) + end +g_fix (generic function with 1 method) + +julia> r = randjump(MersenneTwister(1), big(10)^20, nthreads()); +julia> g_fix(r) +1000 +``` + +We pass `r` vector to `g_fix` as generating several RGNs is an expensive +operation so we do not want to repeat it every time we run the function. + ## @threadcall (Experimental) All I/O tasks, timers, REPL commands, etc are multiplexed onto a single OS thread via an event diff --git a/doc/src/manual/performance-tips.md b/doc/src/manual/performance-tips.md index a832506733236b..84dd79caf4b697 100644 --- a/doc/src/manual/performance-tips.md +++ b/doc/src/manual/performance-tips.md @@ -453,10 +453,7 @@ MyBetterContainer{Float64,UnitRange{Float64}} julia> b = MyBetterContainer{Int64, UnitRange{Float64}}(UnitRange(1.3, 5.0)); ERROR: MethodError: Cannot `convert` an object of type UnitRange{Float64} to an object of type MyBetterContainer{Int64,UnitRange{Float64}} -This may have arisen from a call to the constructor MyBetterContainer{Int64,UnitRange{Float64}}(...), -since type constructors fall back to convert methods. -Stacktrace: - [1] MyBetterContainer{Int64,UnitRange{Float64}}(::UnitRange{Float64}) at ./sysimg.jl:114 +[...] ``` The inner constructor requires that the element type of `A` be `T`. @@ -621,7 +618,7 @@ end ```jldoctest julia> function strange_twos(n) - a = Vector{rand(Bool) ? Int64 : Float64}(n) + a = Vector{rand(Bool) ? Int64 : Float64}(uninitialized, n) for i = 1:n a[i] = 2 end @@ -640,7 +637,7 @@ This should be written as: ```jldoctest julia> function fill_twos!(a) - for i=eachindex(a) + for i = eachindex(a) a[i] = 2 end end diff --git a/doc/src/manual/profile.md b/doc/src/manual/profile.md index 29cda5c48782fd..00d91cf5f0d7cc 100644 --- a/doc/src/manual/profile.md +++ b/doc/src/manual/profile.md @@ -210,12 +210,12 @@ be very useful, but sometimes you want to start fresh; you can do so with [`Prof [`Profile.print`](@ref) has more options than we've described so far. Let's see the full declaration: ```julia -function print(io::IO = STDOUT, data = fetch(); kwargs...) +function print(io::IO = stdout, data = fetch(); kwargs...) ``` Let's first discuss the two positional arguments, and later the keyword arguments: - * `io` -- Allows you to save the results to a buffer, e.g. a file, but the default is to print to `STDOUT` + * `io` -- Allows you to save the results to a buffer, e.g. a file, but the default is to print to `stdout` (the console). * `data` -- Contains the data you want to analyze; by default that is obtained from [`Profile.fetch()`](@ref), which pulls out the backtraces from a pre-allocated buffer. For example, if you want to profile @@ -224,7 +224,7 @@ Let's first discuss the two positional arguments, and later the keyword argument ```julia data = copy(Profile.fetch()) Profile.clear() - @profile Profile.print(STDOUT, data) # Prints the previous results + @profile Profile.print(stdout, data) # Prints the previous results Profile.print() # Prints results from Profile.print() ``` diff --git a/doc/src/manual/running-external-programs.md b/doc/src/manual/running-external-programs.md index 065b4020d28024..749d88b75f2cfd 100644 --- a/doc/src/manual/running-external-programs.md +++ b/doc/src/manual/running-external-programs.md @@ -14,7 +14,7 @@ differs in several aspects from the behavior in various shells, Perl, or Ruby: You can use this object to connect the command to others via pipes, [`run`](@ref) it, and [`read`](@ref) or [`write`](@ref) to it. * When the command is run, Julia does not capture its output unless you specifically arrange for - it to. Instead, the output of the command by default goes to [`STDOUT`](@ref) as it would using + it to. Instead, the output of the command by default goes to [`stdout`](@ref) as it would using `libc`'s `system` call. * The command is never run with a shell. Instead, Julia parses the command syntax directly, appropriately interpolating variables and splitting on words as the shell would, respecting shell quoting syntax. @@ -29,11 +29,11 @@ julia> mycommand = `echo hello` julia> typeof(mycommand) Cmd -julia> run(mycommand) +julia> run(mycommand); hello ``` -The `hello` is the output of the `echo` command, sent to [`STDOUT`](@ref). The run method itself +The `hello` is the output of the `echo` command, sent to [`stdout`](@ref). The run method itself returns `nothing`, and throws an [`ErrorException`](@ref) if the external command fails to run successfully. @@ -50,7 +50,7 @@ true More generally, you can use [`open`](@ref) to read from or write to an external command. ```jldoctest -julia> open(`less`, "w", STDOUT) do io +julia> open(`less`, "w", stdout) do io for i = 1:3 println(io, i) end @@ -209,7 +209,7 @@ values. Let's try the above two examples in Julia: julia> A = `perl -le '$|=1; for (0..3) { print }'` `perl -le '$|=1; for (0..3) { print }'` -julia> run(A) +julia> run(A); 0 1 2 @@ -220,7 +220,7 @@ julia> first = "A"; second = "B"; julia> B = `perl -le 'print for @ARGV' "1: $first" "2: $second"` `perl -le 'print for @ARGV' '1: A' '2: B'` -julia> run(B) +julia> run(B); 1: A 2: B ``` @@ -236,10 +236,10 @@ easily and safely just examine its interpretation without doing any damage. Shell metacharacters, such as `|`, `&`, and `>`, need to be quoted (or escaped) inside of Julia's backticks: ```jldoctest -julia> run(`echo hello '|' sort`) +julia> run(`echo hello '|' sort`); hello | sort -julia> run(`echo hello \| sort`) +julia> run(`echo hello \| sort`); hello | sort ``` @@ -248,7 +248,7 @@ The result is that a single line is printed: `hello | sort`. How, then, does one pipeline? Instead of using `'|'` inside of backticks, one uses [`pipeline`](@ref): ```jldoctest -julia> run(pipeline(`echo hello`, `sort`)) +julia> run(pipeline(`echo hello`, `sort`)); hello ``` @@ -273,19 +273,19 @@ that shells cannot. Julia can run multiple commands in parallel: -```julia-repl -julia> run(`echo hello` & `echo world`) +```jldoctest; filter = r"(world\nhello|hello\nworld)" +julia> run(`echo hello` & `echo world`); world hello ``` The order of the output here is non-deterministic because the two `echo` processes are started -nearly simultaneously, and race to make the first write to the [`STDOUT`](@ref) descriptor they +nearly simultaneously, and race to make the first write to the [`stdout`](@ref) descriptor they share with each other and the `julia` parent process. Julia lets you pipe the output from both of these processes to another program: ```jldoctest -julia> run(pipeline(`echo world` & `echo hello`, `sort`)) +julia> run(pipeline(`echo world` & `echo hello`, `sort`)); hello world ``` @@ -326,46 +326,38 @@ setup of pipes between processes is a powerful one. To give some sense of the co that can be created easily, here are some more sophisticated examples, with apologies for the excessive use of Perl one-liners: -```julia-repl +```jldoctest prefixer; filter = r"([A-B] [0-5])" julia> prefixer(prefix, sleep) = `perl -nle '$|=1; print "'$prefix' ", $_; sleep '$sleep';'`; -julia> run(pipeline(`perl -le '$|=1; for(0..9){ print; sleep 1 }'`, prefixer("A",2) & prefixer("B",2))) -A 0 -B 1 -A 2 -B 3 -A 4 -B 5 -A 6 -B 7 -A 8 -B 9 +julia> run(pipeline(`perl -le '$|=1; for(0..5){ print; sleep 1 }'`, prefixer("A",2) & prefixer("B",2))); +B 0 +A 1 +B 2 +A 3 +B 4 +A 5 ``` This is a classic example of a single producer feeding two concurrent consumers: one `perl` process -generates lines with the numbers 0 through 9 on them, while two parallel processes consume that +generates lines with the numbers 0 through 5 on them, while two parallel processes consume that output, one prefixing lines with the letter "A", the other with the letter "B". Which consumer gets the first line is non-deterministic, but once that race has been won, the lines are consumed alternately by one process and then the other. (Setting `$|=1` in Perl causes each print statement -to flush the [`STDOUT`](@ref) handle, which is necessary for this example to work. Otherwise all +to flush the [`stdout`](@ref) handle, which is necessary for this example to work. Otherwise all the output is buffered and printed to the pipe at once, to be read by just one consumer process.) Here is an even more complex multi-stage producer-consumer example: -```julia-repl -julia> run(pipeline(`perl -le '$|=1; for(0..9){ print; sleep 1 }'`, +```jldoctest prefixer; filter = r"[A-B] [X-Z] [0-5]" +julia> run(pipeline(`perl -le '$|=1; for(0..5){ print; sleep 1 }'`, prefixer("X",3) & prefixer("Y",3) & prefixer("Z",3), - prefixer("A",2) & prefixer("B",2))) + prefixer("A",2) & prefixer("B",2))); A X 0 B Y 1 A Z 2 B X 3 A Y 4 B Z 5 -A X 6 -B Y 7 -A Z 8 -B X 9 ``` This example is similar to the previous one, except there are two stages of consumers, and the diff --git a/doc/src/manual/strings.md b/doc/src/manual/strings.md index 2f680f7b4b41fe..50020168e3ccde 100644 --- a/doc/src/manual/strings.md +++ b/doc/src/manual/strings.md @@ -78,7 +78,7 @@ is a valid code point, use the [`isvalid`](@ref) function: ```jldoctest julia> Char(0x110000) -'\U110000': Unicode U+110000 (category Cn: Other, not assigned) +'\U110000': Unicode U+110000 (category In: Invalid, too high) julia> isvalid(Char, 0x110000) false @@ -129,9 +129,6 @@ julia> Int('\x7f') julia> Int('\177') 127 - -julia> Int('\xff') -255 ``` You can do comparisons and a limited amount of arithmetic with `Char` values: @@ -180,7 +177,7 @@ julia> str[end] Many Julia objects, including strings, can be indexed with integers. The index of the first element is returned by [`firstindex(str)`](@ref), and the index of the last element -with [`lastindex(str)`](@ref). The keyword`end` can be used inside an indexing +with [`lastindex(str)`](@ref). The keyword `end` can be used inside an indexing operation as shorthand for the last index along the given dimension. Most indexing in Julia is 1-based: the first element of many integer-indexed objects is found at index 1. (As we will see below, this does not necessarily mean that the last element is found @@ -275,11 +272,12 @@ julia> s[1] '∀': Unicode U+2200 (category Sm: Symbol, math) julia> s[2] -ERROR: UnicodeError: invalid character index +ERROR: StringIndexError("∀ x ∃ y", 2) [...] julia> s[3] -ERROR: UnicodeError: invalid character index +ERROR: StringIndexError("∀ x ∃ y", 3) +Stacktrace: [...] julia> s[4] @@ -297,7 +295,8 @@ julia> s[1:1] "∀" julia> s[1:2] -ERROR: UnicodeError: invalid character index +ERROR: StringIndexError("∀ x ∃ y", 2) +Stacktrace: [...] julia> s[1:4] @@ -312,7 +311,7 @@ since each character in a string must have its own index. The following is an in verbose way to iterate through the characters of `s`: ```jldoctest unicodestring -julia> for i = begindex(s):lastindex(s) +julia> for i = firstindex(s):lastindex(s) try println(s[i]) catch @@ -824,7 +823,7 @@ produce arrays of bytes. Here is an example using all three: ```jldoctest julia> b"DATA\xff\u2200" -8-element Array{UInt8,1}: +8-element Base.CodeUnits{UInt8,String}: 0x44 0x41 0x54 @@ -851,11 +850,11 @@ is encoded as two bytes in UTF-8: ```jldoctest julia> b"\xff" -1-element Array{UInt8,1}: +1-element Base.CodeUnits{UInt8,String}: 0xff julia> b"\uff" -2-element Array{UInt8,1}: +2-element Base.CodeUnits{UInt8,String}: 0xc3 0xbf ``` diff --git a/doc/src/manual/types.md b/doc/src/manual/types.md index e30405b255998f..3260b396a27806 100644 --- a/doc/src/manual/types.md +++ b/doc/src/manual/types.md @@ -16,10 +16,11 @@ of function arguments to be deeply integrated with the language. Method dispatch detail in [Methods](@ref), but is rooted in the type system presented here. The default behavior in Julia when types are omitted is to allow values to be of any type. Thus, -one can write many useful Julia programs without ever explicitly using types. When additional +one can write many useful Julia functions without ever explicitly using types. When additional expressiveness is needed, however, it is easy to gradually introduce explicit type annotations -into previously "untyped" code. Doing so will typically increase both the performance and robustness -of these systems, and perhaps somewhat counterintuitively, often significantly simplify them. +into previously "untyped" code. Adding annotations serves three primary purposes: to take advantage +of Julia's powerful multiple-dispatch mechanism, to improve human readability, and to catch +programmer errors. Describing Julia in the lingo of [type systems](https://en.wikipedia.org/wiki/Type_system), it is: dynamic, nominative and parametric. Generic types can be parameterized, and the hierarchical @@ -343,20 +344,16 @@ must be convertible to `Int`: ```jldoctest footype julia> Foo((), 23.5, 1) -ERROR: InexactError: convert(Int64, 23.5) +ERROR: InexactError: Int64(Int64, 23.5) Stacktrace: - [1] convert at ./float.jl:703 [inlined] - [2] Foo(::Tuple{}, ::Float64, ::Int64) at ./none:2 +[...] ``` You may find a list of field names using the `fieldnames` function. ```jldoctest footype julia> fieldnames(Foo) -3-element Array{Symbol,1}: - :bar - :baz - :qux +(:bar, :baz, :qux) ``` You can access the field values of a composite object using the traditional `foo.bar` notation: @@ -648,13 +645,11 @@ For the default constructor, exactly one argument must be supplied for each fiel ```jldoctest pointtype julia> Point{Float64}(1.0) ERROR: MethodError: Cannot `convert` an object of type Float64 to an object of type Point{Float64} -This may have arisen from a call to the constructor Point{Float64}(...), -since type constructors fall back to convert methods. -Stacktrace: - [1] Point{Float64}(::Float64) at ./sysimg.jl:114 +[...] julia> Point{Float64}(1.0,2.0,3.0) ERROR: MethodError: no method matching Point{Float64}(::Float64, ::Float64, ::Float64) +[...] ``` Only one default constructor is generated for parametric types, since overriding it is not possible. @@ -1251,8 +1246,8 @@ julia> [Polar(3, 4.0), Polar(4.0,5.3)] ``` where the single-line `show(io, z)` form is still used for an array of `Polar` values. Technically, -the REPL calls `display(z)` to display the result of executing a line, which defaults to `show(STDOUT, MIME("text/plain"), z)`, -which in turn defaults to `show(STDOUT, z)`, but you should *not* define new [`display`](@ref) +the REPL calls `display(z)` to display the result of executing a line, which defaults to `show(stdout, MIME("text/plain"), z)`, +which in turn defaults to `show(stdout, z)`, but you should *not* define new [`display`](@ref) methods unless you are defining a new multimedia display handler (see [Multimedia I/O](@ref)). Moreover, you can also define `show` methods for other MIME types in order to enable richer display @@ -1269,7 +1264,7 @@ A `Polar` object will then display automatically using HTML in an environment th display, but you can call `show` manually to get HTML output if you want: ```jldoctest polartype -julia> show(STDOUT, "text/html", Polar(3.0,4.0)) +julia> show(stdout, "text/html", Polar(3.0,4.0)) Polar{Float64} complex number: 3.0 e4.0 i ``` diff --git a/doc/src/manual/unicode-input.md b/doc/src/manual/unicode-input.md index b95130160478c4..e7dd6532a3c94b 100644 --- a/doc/src/manual/unicode-input.md +++ b/doc/src/manual/unicode-input.md @@ -61,7 +61,7 @@ function table_entries(completions, unicode_dict) for (chars, inputs) in sort!(collect(completions), by = first) code_points, unicode_names, characters = String[], String[], String[] for char in chars - push!(code_points, "U+$(uppercase(hex(char, 5)))") + push!(code_points, "U+$(uppercase(string(UInt32(char), base = 16, pad = 5)))") push!(unicode_names, get(unicode_dict, UInt32(char), "(No Unicode name)")) push!(characters, isempty(characters) ? fix_combining_chars(char) : "$char") end diff --git a/doc/src/manual/variables-and-scoping.md b/doc/src/manual/variables-and-scoping.md index 4fc5ba1ee0b1fa..088aafdb19eb95 100644 --- a/doc/src/manual/variables-and-scoping.md +++ b/doc/src/manual/variables-and-scoping.md @@ -251,15 +251,15 @@ which have a private state, for instance the ``state`` variable in the following example: ```jldoctest - julia> let state = 0 - global counter() = (state += 1) - end; +julia> let state = 0 + global counter() = (state += 1) + end; - julia> counter() - 1 +julia> counter() +1 - julia> counter() - 2 +julia> counter() +2 ``` See also the closures in the examples in the next two sections. diff --git a/doc/src/manual/workflow-tips.md b/doc/src/manual/workflow-tips.md index bd00c03828b576..857822d8ded916 100644 --- a/doc/src/manual/workflow-tips.md +++ b/doc/src/manual/workflow-tips.md @@ -55,7 +55,7 @@ which you can run on startup by issuing the command: julia -L _init.jl ``` -If you further add the following to your `.juliarc.jl` file +If you further add the following to your `~/.julia/config/startup.jl` file ```julia isfile("_init.jl") && include(joinpath(pwd(), "_init.jl")) diff --git a/etc/juliarc.jl b/etc/juliarc.jl deleted file mode 100644 index 971f38b51807c5..00000000000000 --- a/etc/juliarc.jl +++ /dev/null @@ -1,2 +0,0 @@ -# This file should contain site-specific commands to be executed on Julia startup -# Users may store their own personal commands in the user home directory `homedir()`, in a file named `.juliarc.jl` diff --git a/etc/startup.jl b/etc/startup.jl new file mode 100644 index 00000000000000..e58753d634d736 --- /dev/null +++ b/etc/startup.jl @@ -0,0 +1,2 @@ +# This file should contain site-specific commands to be executed on Julia startup; +# Users may store their own personal commands in `~/.julia/config/startup.jl`. diff --git a/examples/Makefile b/examples/Makefile deleted file mode 100644 index 08e2ff962966e8..00000000000000 --- a/examples/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -## this is a simple wrapper just to forward on known commands to the -## embedding example with values pulled from Make.inc -SRCDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) -JULIAHOME := $(abspath $(SRCDIR)/..) -BUILDDIR := . -include $(JULIAHOME)/Make.inc - -release: # default target -# forward all variables expected by the embedding example -JULIA:=$(call spawn,$(JULIA_EXECUTABLE)) -BIN:=$(BUILDDIR)/embedding -CC:=$(CC) -include $(SRCDIR)/embedding/Makefile diff --git a/examples/ModInts.jl b/examples/ModInts.jl deleted file mode 100644 index 01fa574a4188ab..00000000000000 --- a/examples/ModInts.jl +++ /dev/null @@ -1,27 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -module ModInts -export ModInt - -import Base: +, -, *, /, inv - -struct ModInt{n} <: Integer - k::Int - ModInt{n}(k) where {n} = new(mod(k,n)) -end - -Base.show(io::IO, k::ModInt{n}) where {n} = - print(io, get(io, :typeinfo, Any) == typeof(k) ? k.k : "$(k.k) mod $n") - -(+)(a::ModInt{n}, b::ModInt{n}) where {n} = ModInt{n}(a.k+b.k) -(-)(a::ModInt{n}, b::ModInt{n}) where {n} = ModInt{n}(a.k-b.k) -(*)(a::ModInt{n}, b::ModInt{n}) where {n} = ModInt{n}(a.k*b.k) -(-)(a::ModInt{n}) where {n} = ModInt{n}(-a.k) - -inv(a::ModInt{n}) where {n} = ModInt{n}(invmod(a.k, n)) -(/)(a::ModInt{n}, b::ModInt{n}) where {n} = a*inv(b) # broaden for non-coprime? - -Base.promote_rule(::Type{ModInt{n}}, ::Type{Int}) where {n} = ModInt{n} -Base.convert(::Type{ModInt{n}}, i::Int) where {n} = ModInt{n}(i) - -end # module diff --git a/examples/bubblesort.jl b/examples/bubblesort.jl deleted file mode 100644 index 6b7c244da1fa96..00000000000000 --- a/examples/bubblesort.jl +++ /dev/null @@ -1,19 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -import Base.Sort -struct BubbleSortAlg <: Sort.Algorithm end -const BubbleSort = BubbleSortAlg() - -function Base.sort!(v::AbstractVector, lo::Int, hi::Int, ::BubbleSortAlg, o::Sort.Ordering) - while true - clean = true - for i = lo:hi-1 - if Sort.lt(o, v[i+1], v[i]) - v[i+1], v[i] = v[i], v[i+1] - clean = false - end - end - clean && break - end - return v -end diff --git a/examples/clustermanager/0mq/README b/examples/clustermanager/0mq/README deleted file mode 100644 index c6bb2cfcfb7fff..00000000000000 --- a/examples/clustermanager/0mq/README +++ /dev/null @@ -1,27 +0,0 @@ -This is a proof-of-concept that uses ZeroMQ as transport. -It uses a star topology as opposed to the native mesh network. - -Package ZMQ must be installed. All workers only run on localhost. - -All Julia nodes only connect to a "broker" process that listens on known ports -8100 and 8101 via ZMQ sockets. - - -All commands must be run from `examples/clustermanager/0mq` directory - -First, start the broker. In a new console type: - julia broker.jl - -This does not return. - -Next, start a Julia REPL and type: - include("ZMQCM.jl") - ZMQCM.start_master(4) # start with four workers - - -Alternatively, head.jl, a test script could be run. It just launches the requested number of workers, -executes a simple command on all of them and exits. - julia head.jl 4 - -NOTE: As stated this is a proof-of-concept. A real Julia cluster using ZMQ will probably use -different ZMQ socket types and optimize the transport. diff --git a/examples/clustermanager/0mq/ZMQCM.jl b/examples/clustermanager/0mq/ZMQCM.jl deleted file mode 100644 index 1a049161fec35e..00000000000000 --- a/examples/clustermanager/0mq/ZMQCM.jl +++ /dev/null @@ -1,282 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# the 0mq clustermanager depends on package ZMQ. For testing purposes, at least -# make sure the code loads without it. -try - using ZMQ -end - -using Distributed -import Distributed: launch, manage, connect, kill - -const BROKER_SUB_PORT = 8100 -const BROKER_PUB_PORT = 8101 - -const SELF_INITIATED = 0 -const REMOTE_INITIATED = 1 - -const PAYLOAD_MSG = "J" -const CONTROL_MSG = "Z" - -const REQUEST_ACK = "R" -const ACK_MSG = "A" -const KILL_MSG = "K" - -mutable struct ZMQCMan <: ClusterManager - map_zmq_julia::Dict{Int, Tuple} - c::Condition - isfree::Bool - ctx - pub - sub - zid_self - ZMQCMan() = new(Dict{Int, Tuple}(), Condition(), true) -end - -const manager = ZMQCMan() - -function lock_for_send() - if manager.isfree == true - manager.isfree = false - else - while manager.isfree == false - wait(manager.c) - if manager.isfree == true - manager.isfree = false - return - end - end - end -end - -function release_lock_for_send() - manager.isfree = true - notify(manager.c, all=true) -end - -function init_node(zid=0) - manager.ctx = Context(1) - pub=Socket(manager.ctx, PUB) # Outbound - connect(pub, "tcp://127.0.0.1:$BROKER_SUB_PORT") - - sub=Socket(manager.ctx, SUB) # In bound - connect(sub, "tcp://127.0.0.1:$BROKER_PUB_PORT") - ZMQ.set_subscribe(sub, string(zid)) - - manager.pub = pub - manager.sub = sub - manager.zid_self = zid - - (pub, sub) -end - -function send_data(zid, mtype, data) - lock_for_send() - ZMQ.send(manager.pub, Message(string(zid)), SNDMORE) - ZMQ.send(manager.pub, Message(string(manager.zid_self)), SNDMORE) - #println("Sending message of type $mtype to $zid") - ZMQ.send(manager.pub, Message(mtype), SNDMORE) - ZMQ.send(manager.pub, Message(data)) - release_lock_for_send() -end - -function setup_connection(zid, initiated_by) - try - read_stream=BufferStream() - write_stream=BufferStream() - - if initiated_by == REMOTE_INITIATED - test_remote = false - else - test_remote = true - end - - manager.map_zmq_julia[zid] = (read_stream, write_stream, test_remote) - - @schedule begin - while true - (r_s, w_s, do_test_remote) = manager.map_zmq_julia[zid] - if do_test_remote - send_data(zid, CONTROL_MSG, REQUEST_ACK) - sleep(0.5) - else - break - end - end - (r_s, w_s, do_test_remote) = manager.map_zmq_julia[zid] - - while true - data = readavailable(w_s) - send_data(zid, PAYLOAD_MSG, data) - end - end - (read_stream, write_stream) - catch e - Base.show_backtrace(STDOUT,catch_backtrace()) - println(e) - rethrow(e) - end -end - -# BROKER -function start_broker() - ctx=Context(1) - xpub=Socket(ctx, XPUB) - xsub=Socket(ctx, XSUB) - - ZMQ.bind(xsub, "tcp://127.0.0.1:$(BROKER_SUB_PORT)") - ZMQ.bind(xpub, "tcp://127.0.0.1:$(BROKER_PUB_PORT)") - - ccall((:zmq_proxy, :libzmq), Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), xsub.data, xpub.data, C_NULL) -# proxy(xsub, xpub) - - # control never comes here - ZMQ.close(xpub) - ZMQ.close(xsub) - ZMQ.close(ctx) -end - -function recv_data() - try - #println("On $(manager.zid_self) waiting to recv message") - zid = parse(Int,String(ZMQ.recv(manager.sub))) - assert(zid == manager.zid_self) - - from_zid = parse(Int,String(ZMQ.recv(manager.sub))) - mtype = String(ZMQ.recv(manager.sub)) - - #println("$zid received message of type $mtype from $from_zid") - - data = ZMQ.recv(manager.sub) - if mtype == CONTROL_MSG - cmsg = String(data) - if cmsg == REQUEST_ACK - #println("$from_zid REQUESTED_ACK from $zid") - # send back a control_msg - send_data(from_zid, CONTROL_MSG, ACK_MSG) - elseif cmsg == ACK_MSG - #println("$zid got ACK_MSG from $from_zid") - (r_s, w_s, test_remote) = manager.map_zmq_julia[from_zid] - manager.map_zmq_julia[from_zid] = (r_s, w_s, false) - elseif cmsg == KILL_MSG - exit(0) - else - error("Unknown control message : ", cmsg) - end - data = "" - end - - (from_zid, data) - catch e - Base.show_backtrace(STDOUT,catch_backtrace()) - println(e) - rethrow(e) - end - -end - -# MASTER -function start_master(np) - init_node() - @schedule begin - try - while true - (from_zid, data) = recv_data() - - #println("master recv data from $from_zid") - - (r_s, w_s, t_r) = manager.map_zmq_julia[from_zid] - unsafe_write(r_s, pointer(data), length(data)) - end - catch e - Base.show_backtrace(STDOUT,catch_backtrace()) - println(e) - rethrow(e) - end - end - - addprocs(manager; np=np) -end - - -function launch(manager::ZMQCMan, params::Dict, launched::Array, c::Condition) - #println("launch $(params[:np])") - for i in 1:params[:np] - io, pobj = open(`$(params[:exename]) worker.jl $i $(cluster_cookie())`, "r") - - wconfig = WorkerConfig() - wconfig.userdata = Dict(:zid=>i, :io=>io) - push!(launched, wconfig) - notify(c) - end -end - -function connect(manager::ZMQCMan, pid::Int, config::WorkerConfig) - #println("connect_m2w") - if myid() == 1 - zid = config.userdata[:zid] - config.connect_at = zid # This will be useful in the worker-to-worker connection setup. - - print_worker_stdout(config.userdata[:io], pid) - else - #println("connect_w2w") - zid = config.connect_at - config.userdata = Dict{Symbol, Any}(:zid=>zid) - end - - streams = setup_connection(zid, SELF_INITIATED) - - udata = config.userdata - udata[:streams] = streams - - streams -end - -# WORKER -function start_worker(zid, cookie) - #println("start_worker") - init_worker(cookie, ZMQCMan()) - init_node(zid) - - while true - (from_zid, data) = recv_data() - - #println("worker recv data from $from_zid") - - streams = get(manager.map_zmq_julia, from_zid, nothing) - if streams === nothing - # First time.. - (r_s, w_s) = setup_connection(from_zid, REMOTE_INITIATED) - process_messages(r_s, w_s) - else - (r_s, w_s, t_r) = streams - end - - unsafe_write(r_s, pointer(data), length(data)) - end -end - -function manage(manager::ZMQCMan, id::Int, config::WorkerConfig, op) - nothing -end - -function kill(manager::ZMQCMan, pid::Int, config::WorkerConfig) - send_data(config.userdata[:zid], CONTROL_MSG, KILL_MSG) - (r_s, w_s) = config.userdata[:streams] - close(r_s) - close(w_s) - - # remove from our map - delete!(manager.map_zmq_julia, config.userdata[:zid]) - - nothing -end - - -function print_worker_stdout(io, pid) - @schedule while !eof(io) - line = readline(io) - println(" From worker $(pid):\t$line") - end -end - diff --git a/examples/clustermanager/0mq/broker.jl b/examples/clustermanager/0mq/broker.jl deleted file mode 100644 index 87d28490463567..00000000000000 --- a/examples/clustermanager/0mq/broker.jl +++ /dev/null @@ -1,4 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("ZMQCM.jl") -start_broker() diff --git a/examples/clustermanager/0mq/head.jl b/examples/clustermanager/0mq/head.jl deleted file mode 100644 index ff0f718eb10b58..00000000000000 --- a/examples/clustermanager/0mq/head.jl +++ /dev/null @@ -1,11 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("ZMQCM.jl") - -# @spawn run(`julia broker.jl`) - -start_master(parse(Int,ARGS[1])) - -resp = pmap(x -> myid() *2, [1:nworkers()]) - -println(resp) diff --git a/examples/clustermanager/0mq/worker.jl b/examples/clustermanager/0mq/worker.jl deleted file mode 100644 index bbb2ebca60a852..00000000000000 --- a/examples/clustermanager/0mq/worker.jl +++ /dev/null @@ -1,5 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("ZMQCM.jl") - -start_worker(parse(Int,ARGS[1]), ARGS[2]) diff --git a/examples/clustermanager/simple/README b/examples/clustermanager/simple/README deleted file mode 100644 index b14d0699d4bc20..00000000000000 --- a/examples/clustermanager/simple/README +++ /dev/null @@ -1,12 +0,0 @@ -This is a simple proof-of-concept that uses UNIX domain sockets as transport. - -All commands must be run from `examples/clustermanager/simple` directory - -Start a Julia REPL and type: - include("UnixDomainCM.jl") - addprocs(UnixDomainCM(4)) # start with four workers - -Alternatively, head.jl, a test script could be run. It just launches the requested number of workers, -executes a simple command on all of them and exits. - julia head.jl 4 - diff --git a/examples/clustermanager/simple/UnixDomainCM.jl b/examples/clustermanager/simple/UnixDomainCM.jl deleted file mode 100644 index 29eb4f1975720c..00000000000000 --- a/examples/clustermanager/simple/UnixDomainCM.jl +++ /dev/null @@ -1,95 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using Distributed -import Distributed: launch, manage, connect, exit - -mutable struct UnixDomainCM <: ClusterManager - np::Integer -end - -function launch(manager::UnixDomainCM, params::Dict, launched::Array, c::Condition) -# println("launch $(manager.np)") - cookie = cluster_cookie() - for i in 1:manager.np - sockname = tempname() - try - __file__ = @__FILE__ - cmd = `$(params[:exename]) --startup-file=no $__file__ udwrkr $sockname $cookie` - pobj = open(cmd) - - wconfig = WorkerConfig() - wconfig.userdata = Dict(:sockname=>sockname, :io=>pobj.out, :process=>pobj) - push!(launched, wconfig) - notify(c) - catch e - println(e) - end - end -end - -function connect(manager::UnixDomainCM, pid::Int, config::WorkerConfig) - if myid() == 1 -# println("connect_m2w") - # This will be useful in the worker-to-worker connection setup. - config.connect_at = config.userdata[:sockname] - - print_worker_stdout(config.userdata[:io], pid) - else -# println("connect_w2w") - sockname = config.connect_at - config.userdata = Dict{Symbol, Any}(:sockname=>sockname) - end - - t = time() - while true - try - address = config.userdata[:sockname] - if isa(address, Tuple) - sock = connect(address...) - else - sock = connect(address) - end - return (sock, sock) - catch e - if (time() - t) > 30.0 - rethrow(e) - else - sleep(0.1) - end - end - end - -end - -# WORKER -function start_worker(sockname, cookie) - init_worker(cookie, UnixDomainCM(0)) - - srvr = listen(sockname) - while true - sock = accept(srvr) - process_messages(sock, sock) - end -end - -function manage(manager::UnixDomainCM, id::Int, config::WorkerConfig, op) - # Does not seem to be required, filesystem entry cleanup is happening automatically on process exit -# if op == :deregister -# try -# rm(config.userdata[:sockname]) -# end -# end - nothing -end - -function print_worker_stdout(io, pid) - @schedule while !eof(io) - line = readline(io) - println(" From worker $(pid):\t$line") - end -end - -if (length(ARGS) > 0) && (ARGS[1] == "udwrkr") - # script has been launched as a worker - start_worker(ARGS[2], ARGS[3]) -end diff --git a/examples/clustermanager/simple/head.jl b/examples/clustermanager/simple/head.jl deleted file mode 100644 index cb16b8eb4d7408..00000000000000 --- a/examples/clustermanager/simple/head.jl +++ /dev/null @@ -1,7 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("UnixDomainCM.jl") - -addprocs(UnixDomainCM(parse(Int,ARGS[1]))) -resp = pmap(x -> myid() *2, [1:nworkers()]) -println(resp) diff --git a/examples/clustermanager/simple/test_simple.jl b/examples/clustermanager/simple/test_simple.jl deleted file mode 100644 index 1f4adb60214f5d..00000000000000 --- a/examples/clustermanager/simple/test_simple.jl +++ /dev/null @@ -1,13 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using Distributed -cmanpath = joinpath(@__DIR__, "UnixDomainCM.jl") -include(cmanpath) - -npids = addprocs(UnixDomainCM(2)) -assert(length(npids) == 2) -test_pids = [remotecall_fetch(myid, x) for x in npids] -assert(npids == test_pids) -rmprocs(npids; waitfor=1.0) - -exit(0) diff --git a/examples/dictchannel.jl b/examples/dictchannel.jl deleted file mode 100644 index f1b9bfd68a6ca4..00000000000000 --- a/examples/dictchannel.jl +++ /dev/null @@ -1,34 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -import Base: put!, wait, isready, take!, fetch - -mutable struct DictChannel <: AbstractChannel - d::Dict - cond_take::Condition # waiting for data to become available - DictChannel() = new(Dict(), Condition()) -end - -function put!(D::DictChannel, k, v) - D.d[k] = v - notify(D.cond_take) - D -end - -function take!(D::DictChannel, k) - v=fetch(D,k) - delete!(D.d, k) - v -end - -isready(D::DictChannel) = length(D.d) > 1 -isready(D::DictChannel, k) = haskey(D.d,k) -function fetch(D::DictChannel, k) - wait(D,k) - D.d[k] -end - -function wait(D::DictChannel, k) - while !isready(D, k) - wait(D.cond_take) - end -end diff --git a/examples/lru.jl b/examples/lru.jl deleted file mode 100644 index 7703f078469a3f..00000000000000 --- a/examples/lru.jl +++ /dev/null @@ -1,130 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -module LRUExample -# An LRU (Least Recently Used) cache is an associative data structure which -# maintains its contents in an order such that the most recently used item -# is at the beginning of the structure, and the least recently used at the end. -# -# This file specifies two types of LRU caches, both with and without a size -# limit. BoundedLRU has a limit and evicts the LRU item if a new item is added -# after that bound is reached. UnboundedLRU does not have a maximum size, but -# can be used as a basis for more complex LRUs. -# -# LRUs should follow the interfaces for general collections, indexable -# collections, and associative collections. - -# The standard implementation of an LRU backs a hash table with a doubly-linked -# list for O(1) operations when reordering on access and eviction. The Julia -# implementation instead backs the table with a Vector. For moderately-sized -# collections, the difference in performance is small, and this implmentation -# is simpler and easier to understand. - -import Base.isempty, Base.length, Base.sizeof -import Base.start, Base.next, Base.done -import Base.haskey, Base.get -import Base.setindex!, Base.getindex, Base.delete!, Base.empty! -import Base.show - -abstract type LRU{K,V} <: AbstractDict{K,V} end - -# Default cache size -const __MAXCACHE = 1024 - -mutable struct CacheItem{K,V} - k::K - v::V -end - -mutable struct UnboundedLRU{K,V} <: LRU{K,V} - ht::Dict - q::Vector{CacheItem} - - UnboundedLRU{K,V}() where {K,V} = new(Dict(), similar(Vector{CacheItem}(uninitialized, 1), 0)) -end -UnboundedLRU() = UnboundedLRU{Any, Any}() - -mutable struct BoundedLRU{K,V} <: LRU{K,V} - ht::Dict - q::Vector{CacheItem} - maxsize::Int - - BoundedLRU{K,V}(m) where {K,V} = new(Dict(), similar(Vector{CacheItem}(uninitialized, 1), 0), m) - BoundedLRU{K,V}() where {K,V} = BoundedLRU(__MAXCACHE) -end -BoundedLRU(m) = BoundedLRU{Any, Any}(m) -BoundedLRU() = BoundedLRU{Any, Any}() - -## collections ## - -isempty(lru::LRU) = isempty(lru.q) -length(lru::LRU) = length(lru.q) - -## associative ## - -# Should this check count as an access? -haskey(lru::LRU, key) = haskey(lru.ht, key) - -get(lru::LRU, key, default) = haskey(lru, key) ? lru[key] : default - -function empty!(lru::LRU) - empty!(lru.ht) - empty!(lru.q) -end - - -show(io::IO, lru::UnboundedLRU) = print(io,"UnboundedLRU()") -show(io::IO, lru::BoundedLRU) = print(io,"BoundedLRU($(lru.maxsize))") - -## indexable ## - -# Method to do the second, slow lookup in the list with early return. -function locate(q, x) - for i = 1:length(q) - if q[i] == x - return i - end - end - error("Item not found.") -end - -function getindex(lru::LRU, key) - item = lru.ht[key] - idx = locate(lru.q, item) - splice!(lru.q, idx) - pushfirst!(lru.q, item) - item.v -end - -function setindex!(lru::LRU, v, key) - if haskey(lru, key) - item = lru.ht[key] - idx = locate(lru.q, item) - item.v = v - splice!(lru.q, idx) - else - item = CacheItem(key, v) - lru.ht[key] = item - end - pushfirst!(lru.q, item) -end - -# Eviction -function setindex!(lru::BoundedLRU, v::V, key::K) where {V,K} - invoke(setindex!, Tuple{LRU,V,K}, lru, v, key) - nrm = length(lru) - lru.maxsize - for i in 1:nrm - rm = pop!(lru.q) - delete!(lru.ht, rm.k) - end -end - -## associative ## - -function delete!(lru::LRU, key) - item = lru.ht[key] - idx = locate(lru.q, item) - delete!(lru.ht, key) - delete!(lru.q, idx) -end - -end # module diff --git a/examples/lru_test.jl b/examples/lru_test.jl deleted file mode 100644 index 5c797c2a579060..00000000000000 --- a/examples/lru_test.jl +++ /dev/null @@ -1,47 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using .LRUExample - -TestLRU = LRUExample.UnboundedLRU{String, String}() -TestBLRU = LRUExample.BoundedLRU{String, String}(1000) - -get_str(i) = String(vcat(map(x->[x>>4; x&0x0F], reinterpret(UInt8, [Int32(i)]))...)) - -isbounded(::Type{L}) where {L<:LRUExample.LRU} = any(map(n->n==:maxsize, fieldnames(L))) -isbounded(l::L) where {L<:LRUExample.LRU} = isbounded(L) - -nmax = map(x->round(Int, exp10(x)), range(2, stop=5, length=4)) - -function lrutest() - #println("LRU consistency tests") - for lru in (TestLRU,TestBLRU) - for n in nmax - empty!(lru) - #@printf(" %s, %d items\n", lru, n) - #print(" Simple eviction: ") - for i in 1:n - str = get_str(i) - lru[str] = str - @assert lru.q[1].v == str - if isbounded(lru) && length(lru) >= lru.maxsize - tailstr = get_str(i-lru.maxsize+1) - @assert lru.q[end].v == tailstr - end - end - #println("pass") - - #print(" Lookup, random access: ") - for i in 1:n - str = get_str(rand(1:n)) - if haskey(lru, str) # the bounded LRUs can have cache misses - blah = lru[str] - @assert lru.q[1].v == blah - end - end - #println("pass") - end - empty!(lru) - end -end - -lrutest() diff --git a/examples/ndgrid.jl b/examples/ndgrid.jl deleted file mode 100644 index f5fce291c46368..00000000000000 --- a/examples/ndgrid.jl +++ /dev/null @@ -1,52 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -ndgrid(v::AbstractVector) = copy(v) - -function ndgrid(v1::AbstractVector{T}, v2::AbstractVector{T}) where T - m, n = length(v1), length(v2) - v1 = reshape(v1, m, 1) - v2 = reshape(v2, 1, n) - (repeat(v1, 1, n), repeat(v2, m, 1)) -end - -function ndgrid_fill(a, v, s, snext) - for j = 1:length(a) - a[j] = v[div(rem(j-1, snext), s)+1] - end -end - -function ndgrid(vs::AbstractVector{T}...) where T - n = length(vs) - sz = map(length, vs) - out = ntuple(i->Array{T}(uninitialized, sz), n) - s = 1 - for i=1:n - a = out[i]::Array - v = vs[i] - snext = s*size(a,i) - ndgrid_fill(a, v, s, snext) - s = snext - end - out -end - -meshgrid(v::AbstractVector) = meshgrid(v, v) - -function meshgrid(vx::AbstractVector{T}, vy::AbstractVector{T}) where T - m, n = length(vy), length(vx) - vx = reshape(vx, 1, n) - vy = reshape(vy, m, 1) - (repeat(vx, m, 1), repeat(vy, 1, n)) -end - -function meshgrid(vx::AbstractVector{T}, vy::AbstractVector{T}, - vz::AbstractVector{T}) where T - m, n, o = length(vy), length(vx), length(vz) - vx = reshape(vx, 1, n, 1) - vy = reshape(vy, m, 1, 1) - vz = reshape(vz, 1, 1, o) - om = fill(1, m) - on = fill(1, n) - oo = fill(1, o) - (vx[om, :, oo], vy[:, on, oo], vz[om, on, :]) -end diff --git a/examples/queens.jl b/examples/queens.jl deleted file mode 100644 index e44e2fd2c083bd..00000000000000 --- a/examples/queens.jl +++ /dev/null @@ -1,28 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# n-queens (nqueens) solver, for nsquaresx-by-nsquaresy board - -struct Queen - x::Int - y::Int -end -hitshorz(queena, queenb) = queena.x == queenb.x -hitsvert(queena, queenb) = queena.y == queenb.y -hitsdiag(queena, queenb) = abs(queena.x - queenb.x) == abs(queena.y - queenb.y) -hitshvd(qa, qb) = hitshorz(qa, qb) || hitsvert(qa, qb) || hitsdiag(qa, qb) -hitsany(testqueen, queens) = any(q -> hitshvd(testqueen, q), queens) - -function trysolve(nsquaresx, nsquaresy, nqueens, presqueens = ()) - nqueens == 0 && return presqueens - for xsquare in 1:nsquaresx - for ysquare in 1:nsquaresy - testqueen = Queen(xsquare, ysquare) - if !hitsany(testqueen, presqueens) - tryqueens = (presqueens..., testqueen) - maybesol = trysolve(nsquaresx, nsquaresy, nqueens - 1, tryqueens) - maybesol !== nothing && return maybesol - end - end - end - return nothing -end diff --git a/examples/quine.jl b/examples/quine.jl deleted file mode 100644 index aae47e3dbfdbf2..00000000000000 --- a/examples/quine.jl +++ /dev/null @@ -1,4 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -x="println(\"# This file is a part of Julia. License is MIT: https://julialang.org/license\\n\\nx=\$(repr(x))\\n\$x\")" -println("# This file is a part of Julia. License is MIT: https://julialang.org/license\n\nx=$(repr(x))\n$x") diff --git a/examples/staged.jl b/examples/staged.jl deleted file mode 100644 index 96f3ebb6aa6c60..00000000000000 --- a/examples/staged.jl +++ /dev/null @@ -1,61 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function add_method(gf, an, at, body) - argexs = [Expr(Symbol("::"), an[i], at[i]) for i=1:length(an)] - def = quote - let __F__=($gf) - function __F__($(argexs...)) - $body - end - end - end - eval(def) -end - -macro staged(fdef) - if !isa(fdef,Expr) || fdef.head !== :function - error("@staged: expected method definition") - end - fname = fdef.args[1].args[1] - argspec = fdef.args[1].args[2:end] - argnames = map(x->(isa(x,Expr) ? x.args[1] : x), argspec) - qargnames = map(x->Expr(:quote,x), argnames) - fbody = fdef.args[2] - @gensym gengf argtypes expander genbody - quote - let ($gengf) - global ($fname) # should be "outer" - local ($expander) - function ($expander)($(argnames...)) - $fbody - end - ($gengf)() = 0 # should be initially empty GF - function ($fname)($(argspec...)) - ($argtypes) = typeof(tuple($(argnames...))) - if !hasmethod($gengf, $argtypes) - ($genbody) = apply(($expander), ($argtypes)) - add_method($gengf, Any[$(qargnames...)], - $argtypes, $genbody) - end - return ($gengf)($(argnames...)) - end - end - end -end - -# example - -@staged function nloops(dims::Tuple) - names = map(x->gensym(), dims) - ex = quote - println([$(names...)]) - end - for i = 1:length(dims) - ex = quote - for $(names[i]) in dims[$i] - $ex - end - end - end - ex -end diff --git a/examples/time.jl b/examples/time.jl deleted file mode 100644 index 2ffb69dcaabbdc..00000000000000 --- a/examples/time.jl +++ /dev/null @@ -1,45 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -module Time -export TimeDelta - -import Base.show, Base.+, Base.-, Base.convert, Base.promote_rule - -struct TimeDelta{p} - v::Int64 -end - -const PREFIXES = [ - "yocto", "zepto", "atto", "femto", "pico", "nano", "micro", "milli", - "", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta", -] -const ZERO_INDEX = 9 -const MAX_INDEX = 17 - -function show(io::IO, x::TimeDelta{p}) where p - k = max(1,min(MAX_INDEX,fld(p,3)+ZERO_INDEX)) - r = p-3(k-ZERO_INDEX) - prefix = PREFIXES[k] - if r == 0 - s = x.v == 1 ? "" : "s" - print(io, "$(x.v) $(prefix)second$s") - elseif r > 0 - print(io, "$(x.v*10^r) $(prefix)seconds") - else - print(io, "$(x.v/10^-r) $(prefix)seconds") - end -end - -convert(::Type{TimeDelta{p}}, x::TimeDelta{q}) where {p,q} = - TimeDelta{p}(p <= q ? x.v*10^(q-p) : div(x.v,10^(p-q))) - -promote_rule(::Type{TimeDelta{p}}, ::Type{TimeDelta{q}}) where {p,q} = TimeDelta{min(p,q)} - -(-)(x::TimeDelta{p}) where {p} = TimeDelta{p}(-x.v) -(+)(x::TimeDelta{p}, y::TimeDelta{p}) where {p} = TimeDelta{p}(x.v+y.v) -(-)(x::TimeDelta{p}, y::TimeDelta{p}) where {p} = TimeDelta{p}(x.v-y.v) - -(+)(x::TimeDelta, y::TimeDelta) = +(promote(x,y)...) -(-)(x::TimeDelta, y::TimeDelta) = -(promote(x,y)...) - -end # module diff --git a/examples/typetree.jl b/examples/typetree.jl deleted file mode 100644 index 1735f32a01c027..00000000000000 --- a/examples/typetree.jl +++ /dev/null @@ -1,154 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -module TypeTrees -## -# Generate a text graphic of Julia modules type tree -## - -struct Binding - mod::Module - sym::Symbol -end -Binding(tn::TypeName) = Binding(tn.module, tn.name) -Base.isless(a::Binding, b::Binding) = isless(a.sym, b.sym) - -# The node type holds the type of the current node and a dict of subtypes -struct TTNode - typ # ::Type - subtypes::Dict{Binding, TTNode} - - TTNode(@nospecialize t) = new(t, Dict{Binding, TTNode}()) -end - -# Add a node to a dict if not added -function add_ttnode(subtypes::Dict{Binding, TTNode}, sname::Binding, tnode::TTNode) - return get!(subtypes, sname, tnode) -end - -function add_ttnode(subtypes::Dict{Binding, TTNode}, sname::Binding, t::Type) - return get!(subtypes, sname, TTNode(t)) -end - -# Store a type and its type hierarchy chain -# Recurse till we reach the top level type -function store_type(sname::Binding, t::Union) - suptype = Union - tnode = TTNode(t) - - # store unions under Union type - subtypes = store_type(Binding(suptype.name), suptype) - add_ttnode(subtypes, sname, tnode) - store_union(sname, tnode, t) - - # unions are also in a sense related to the types of their components - - return tnode.subtypes -end -function store_union(sname::Binding, tnode::TTNode, @nospecialize t) - t = Base.unwrap_unionall(t) - if isa(t, Union) - store_union(sname, tnode, t.a) - store_union(sname, tnode, t.b) - elseif isa(t, DataType) - binding = Binding(t.name) - subtypes = store_type(binding, t) - add_ttnode(subtypes, sname, tnode) - end - nothing -end - -function store_type(sname::Binding, t::UnionAll) - suptype = Base.unwrap_unionall(t) - binding = isa(suptype, DataType) ? Binding(suptype.name) : Binding(Main, string(suptype::Union)) - subtypes = store_type(binding, suptype) - tnode = add_ttnode(subtypes, sname, t) - return tnode.subtypes -end - -function store_type(sname::Binding, t::DataType) - suptype = supertype(t) - subtypes = (suptype != t) ? store_type(Binding(suptype.name), suptype) : types_tree - tnode = add_ttnode(subtypes, sname, t) - return tnode.subtypes -end - -# examine all symbols in module and store those that are types -function store_all_from(m::Module) - for s in names(m, all = true) - if isdefined(m, s) && !Base.isdeprecated(m, s) - t = getfield(m, s) - if isa(t, Type) && t !== Union{} - store_type(Binding(m, s), t) - elseif isa(t, Module) && nameof(t) === s && parentmodule(t) === m && t !== m - store_all_from(t) - end - end - end -end - -type_props(typ) = "" -type_props(typ::DataType) = string("<<", - typ.abstract ? " abstract" : " concrete", - typ.mutable ? " mutable" : " immutable", - typ.layout != C_NULL ? string( - Base.datatype_pointerfree(typ) ? " pointerfree" : "", - Base.datatype_haspadding(typ) ? " haspadding" : "", - " nfields:", Core.nfields(typ), - " size:", typ.size, - ", align:", Base.datatype_alignment(typ)) : "", - " >>") - -function print_tree(subtypes::Dict{Binding, TTNode}, pfx::String="") - for b in sort!(collect(keys(subtypes))) - v = subtypes[b] - ishidden = unsafe_load(Base.unsafe_convert(Ptr{UInt8}, b.sym)) == UInt8('#') - if ishidden && supertype(v.typ) === Function - continue - end - if b.mod === Main - n = string(b.sym) - elseif !isa(v.typ, DataType) || v.typ.name.module != b.mod || v.typ.name.name != b.sym - n_io = IOBuffer() - print(n_io, b.mod, '.', b.sym) - ua = v.typ - if isa(ua, UnionAll) - print(n_io, "{") - while true - print(n_io, ua.var) - ua = ua.body - if isa(ua, UnionAll) - print(n_io, ", ") - else - break - end - end - print(n_io, "}") - end - n = String(take!(n_io)) - else - n = string(v.typ) - end - if n == string(v.typ) - println(pfx, "+- ", n, " ", type_props(v.typ)) - else - println(pfx, "+- ", n, " = ", v.typ, " ", type_props(v.typ)) - end - v.typ === Function && println(pfx, ". ## hiding implicit Function subtypes ##") - print_tree(v.subtypes, pfx * ". ") - end -end - - -# TODO: optionally take module names in command line -# TODO: option to list subtrees of type tree, or other symbol types -const types_tree = Dict{Binding, TTNode}() - -store_all_from(Main) - -# print_tree(types_tree) - -end # module - -if !isinteractive() - TypeTrees.print_tree(TypeTrees.types_tree) -end diff --git a/examples/wordcount.jl b/examples/wordcount.jl deleted file mode 100644 index f93dd84e2893db..00000000000000 --- a/examples/wordcount.jl +++ /dev/null @@ -1,86 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# wordcount.jl -# -# Implementation of parallelized "word-count" of a text, inspired by the -# Hadoop WordCount example. Uses @spawn and fetch() to parallelize -# the "map" task. Reduce is currently done single-threaded. -# -# To run in parallel on a string stored in variable `text`: -# julia -p -# julia> require("/examples/wordcount.jl") -# julia> ...(define text)... -# julia> counts=parallel_wordcount(text) -# -# Or to run on a group of files, writing results to an output file: -# julia -p -# julia> require("/examples/wordcount.jl") -# julia> wordcount_files("/tmp/output.txt", "/tmp/input1.txt","/tmp/input2.txt",...) - -# "Map" function. -# Takes a string. Returns a Dict with the number of times each word -# appears in that string. -function wordcount(text) - words=split(text,[' ','\n','\t','-','.',',',':',';'];keep=false) - counts=Dict() - for w = words - counts[w]=get(counts,w,0)+1 - end - return counts -end - -# "Reduce" function. -# Takes a collection of Dicts in the format returned by wordcount() -# Returns a Dict in which words that appear in multiple inputs -# have their totals added together. -function wcreduce(wcs) - counts=Dict() - for c in wcs, (k,v) in c - counts[k] = get(counts,k,0)+v - end - return counts -end - -# Splits input string into nprocs() equal-sized chunks (last one rounds up), -# and @spawns wordcount() for each chunk to run in parallel. Then fetch()s -# results and performs wcreduce(). -function parallel_wordcount(text) - lines=split(text,'\n';keep=false) - np=nprocs() - unitsize=ceil(length(lines)/np) - wcounts=[] - rrefs=[] - # spawn procs - for i=1:np - first=unitsize*(i-1)+1 - last=unitsize*i - if last>length(lines) - last=length(lines) - end - subtext=join(lines[Int(first):Int(last)],"\n") - push!(rrefs, @spawn wordcount( subtext ) ) - end - # fetch results - while length(rrefs)>0 - push!(wcounts,fetch(pop!(rrefs))) - end - # reduce - count=wcreduce(wcounts) - return count -end - -# Takes the name of a result file, and a list of input file names. -# Combines the contents of all files, then performs a parallel_wordcount -# on the resulting string. Writes the results to result_file. -function wordcount_files(result_file,inputs...) - text = "" - for file in inputs - text *= read(file, String) - end - wc = parallel_wordcount(text) - open(result_file,"w") do f - for (k,v) in wc - println(f, k,"=",v) - end - end -end diff --git a/src/ast.c b/src/ast.c index a44cc545b55ccd..ffb2a289f10874 100644 --- a/src/ast.c +++ b/src/ast.c @@ -36,6 +36,7 @@ jl_sym_t *top_sym; jl_sym_t *colons_sym; jl_sym_t *line_sym; jl_sym_t *jl_incomplete_sym; jl_sym_t *goto_sym; jl_sym_t *goto_ifnot_sym; jl_sym_t *label_sym; jl_sym_t *return_sym; +jl_sym_t *unreachable_sym; jl_sym_t *lambda_sym; jl_sym_t *assign_sym; jl_sym_t *body_sym; jl_sym_t *globalref_sym; jl_sym_t *method_sym; jl_sym_t *core_sym; @@ -63,6 +64,7 @@ jl_sym_t *macrocall_sym; jl_sym_t *colon_sym; jl_sym_t *hygienicscope_sym; jl_sym_t *escape_sym; jl_sym_t *gc_preserve_begin_sym; jl_sym_t *gc_preserve_end_sym; +jl_sym_t *throw_undef_if_not_sym; static uint8_t flisp_system_image[] = { #include @@ -331,6 +333,7 @@ void jl_init_frontend(void) goto_ifnot_sym = jl_symbol("gotoifnot"); label_sym = jl_symbol("label"); return_sym = jl_symbol("return"); + unreachable_sym = jl_symbol("unreachable"); lambda_sym = jl_symbol("lambda"); module_sym = jl_symbol("module"); export_sym = jl_symbol("export"); @@ -383,6 +386,7 @@ void jl_init_frontend(void) gc_preserve_end_sym = jl_symbol("gc_preserve_end"); generated_sym = jl_symbol("generated"); generated_only_sym = jl_symbol("generated_only"); + throw_undef_if_not_sym = jl_symbol("throw_undef_if_not"); } JL_DLLEXPORT void jl_lisp_prompt(void) @@ -827,7 +831,11 @@ jl_value_t *jl_parse_eval_all(const char *fname, form = jl_expand_macros(form, inmodule, NULL, 0); expression = julia_to_scm(fl_ctx, form); } - expression = fl_applyn(fl_ctx, 1, symbol_value(symbol(fl_ctx, "jl-expand-to-thunk")), expression); + // expand non-final expressions in statement position (value unused) + expression = + fl_applyn(fl_ctx, 1, + symbol_value(symbol(fl_ctx, iscons(cdr_(ast)) ? "jl-expand-to-thunk-stmt" : "jl-expand-to-thunk")), + expression); } jl_get_ptls_states()->world_age = jl_world_counter; form = scm_to_julia(fl_ctx, expression, inmodule); @@ -1113,6 +1121,18 @@ JL_DLLEXPORT jl_value_t *jl_expand(jl_value_t *expr, jl_module_t *inmodule) return expr; } +// expand in a context where the expression value is unused +JL_DLLEXPORT jl_value_t *jl_expand_stmt(jl_value_t *expr, jl_module_t *inmodule) +{ + JL_TIMING(LOWERING); + JL_GC_PUSH1(&expr); + expr = jl_copy_ast(expr); + expr = jl_expand_macros(expr, inmodule, NULL, 0); + expr = jl_call_scm_on_ast("jl-expand-to-thunk-stmt", expr, inmodule); + JL_GC_POP(); + return expr; +} + #ifdef __cplusplus } diff --git a/src/ast.scm b/src/ast.scm index d0167ac52f7af5..0430714f74ad30 100644 --- a/src/ast.scm +++ b/src/ast.scm @@ -6,8 +6,7 @@ (if (has-parameters? l) (string (string.join (map deparse (cdr l)) sep) (if (length= (cdr l) 1) "," "") - "; " - (string.join (map deparse (cdar l)) ", ")) + (deparse (car l))) (string.join (map deparse l) sep))) (define (deparse-prefix-call head args opn cls) @@ -95,6 +94,7 @@ (if (length= e 3) (deparse (caddr e)) (deparse (cons 'braces (cddr e)))))) + ((parameters) (string "; " (deparse-arglist (cdr e)))) ;; bracket forms ((tuple) (string #\( (deparse-arglist (cdr e)) @@ -406,6 +406,7 @@ (eq? (cadr (caddr x)) 'Vararg))))) (define (trans? x) (and (pair? x) (eq? (car x) '|.'|))) (define (ctrans? x) (and (pair? x) (eq? (car x) '|'|))) +(define (linenum? x) (and (pair? x) (eq? (car x) 'line))) (define (make-assignment l r) `(= ,l ,r)) (define (assignment? e) (and (pair? e) (eq? (car e) '=))) diff --git a/src/builtins.c b/src/builtins.c index 3f966bdd3fd66f..ccbcff38b953af 100644 --- a/src/builtins.c +++ b/src/builtins.c @@ -1275,6 +1275,8 @@ void jl_init_primitives(void) add_builtin("LineNumberNode", (jl_value_t*)jl_linenumbernode_type); add_builtin("LabelNode", (jl_value_t*)jl_labelnode_type); add_builtin("GotoNode", (jl_value_t*)jl_gotonode_type); + add_builtin("PiNode", (jl_value_t*)jl_pinode_type); + add_builtin("PhiNode", (jl_value_t*)jl_phinode_type); add_builtin("QuoteNode", (jl_value_t*)jl_quotenode_type); add_builtin("NewvarNode", (jl_value_t*)jl_newvarnode_type); add_builtin("GlobalRef", (jl_value_t*)jl_globalref_type); diff --git a/src/cgutils.cpp b/src/cgutils.cpp index 51eb820802343d..acc630914db82a 100644 --- a/src/cgutils.cpp +++ b/src/cgutils.cpp @@ -2060,7 +2060,7 @@ static Value *compute_box_tindex(jl_codectx_t &ctx, Value *datatype, jl_value_t return tindex; } -// get the runtime tindex value +// get the runtime tindex value, assuming val is already converted to type typ if it has a TIndex static Value *compute_tindex_unboxed(jl_codectx_t &ctx, const jl_cgval_t &val, jl_value_t *typ) { if (val.typ == jl_bottom_type) @@ -2069,8 +2069,50 @@ static Value *compute_tindex_unboxed(jl_codectx_t &ctx, const jl_cgval_t &val, j return ConstantInt::get(T_int8, get_box_tindex((jl_datatype_t*)jl_typeof(val.constant), typ)); if (val.isboxed) return compute_box_tindex(ctx, emit_typeof_boxed(ctx, val), val.typ, typ); - assert(val.TIndex); - return ctx.builder.CreateAnd(val.TIndex, ConstantInt::get(T_int8, 0x7f)); + if (val.TIndex) + return ctx.builder.CreateAnd(val.TIndex, ConstantInt::get(T_int8, 0x7f)); + return compute_box_tindex(ctx, emit_typeof_boxed(ctx, val), val.typ, typ); +} + +static void union_alloca_type(jl_uniontype_t *ut, + bool &allunbox, size_t &nbytes, size_t &align, size_t &min_align) +{ + nbytes = 0; + align = 0; + min_align = MAX_ALIGN; + // compute the size of the union alloca that could hold this type + unsigned counter = 0; + allunbox = for_each_uniontype_small( + [&](unsigned idx, jl_datatype_t *jt) { + if (!jl_is_datatype_singleton(jt)) { + size_t nb1 = jl_datatype_size(jt); + size_t align1 = jl_datatype_align(jt); + if (nb1 > nbytes) + nbytes = nb1; + if (align1 > align) + align = align1; + if (align1 < min_align) + min_align = align1; + } + }, + (jl_value_t*)ut, + counter); +} + +static Value *try_emit_union_alloca(jl_codectx_t &ctx, jl_uniontype_t *ut, bool &allunbox, size_t &min_align) +{ + size_t nbytes, align; + union_alloca_type(ut, allunbox, nbytes, align, min_align); + if (nbytes > 0) { + // at least some of the values can live on the stack + // try to pick an Integer type size such that SROA will emit reasonable code + Type *AT = ArrayType::get(IntegerType::get(jl_LLVMContext, 8 * min_align), (nbytes + min_align - 1) / min_align); + AllocaInst *lv = emit_static_alloca(ctx, AT); + if (align > 1) + lv->setAlignment(align); + return lv; + } + return NULL; } /* diff --git a/src/codegen.cpp b/src/codegen.cpp index 4a14fbec6a4a79..bcd91afce5d1bf 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -64,6 +64,7 @@ #include #include // for llvmcall #include // for llvmcall inlining +#include #include // for llvmcall validation #if JL_LLVM_VERSION >= 40000 # include @@ -387,7 +388,7 @@ struct jl_cgval_t { // For unions, we may need to keep a reference to the boxed part individually. // If this is non-NULL, then, at runtime, we satisfy the invariant that (for the corresponding // runtime values) if `(TIndex | 0x80) != 0`, then `Vboxed == V` (by value). - // For conenience, we also set this value of isboxed values, in which case + // For convenience, we also set this value of isboxed values, in which case // it is equal (at compile time) to V. Value *Vboxed; Value *TIndex; // if `V` is an unboxed (tagged) Union described by `typ`, this gives the DataType index (1-based, small int) as an i8 @@ -527,6 +528,7 @@ class jl_codectx_t { // local var info. globals are not in here. std::vector slots; std::vector SAvalues; + std::vector> PhiNodes; std::vector ssavalue_assigned; std::map *arrayvars = NULL; jl_module_t *module = NULL; @@ -1970,7 +1972,6 @@ static void simple_use_analysis(jl_codectx_t &ctx, jl_value_t *expr) } else if (jl_is_expr(expr)) { jl_expr_t *e = (jl_expr_t*)expr; - size_t i; if (e->head == method_sym) { simple_use_analysis(ctx, jl_exprarg(e, 0)); if (jl_expr_nargs(e) > 1) { @@ -1983,12 +1984,24 @@ static void simple_use_analysis(jl_codectx_t &ctx, jl_value_t *expr) simple_use_analysis(ctx, jl_exprarg(e, 1)); } else { - size_t elen = jl_array_dim0(e->args); + size_t i, elen = jl_array_dim0(e->args); for (i = 0; i < elen; i++) { simple_use_analysis(ctx, jl_exprarg(e, i)); } } } + else if (jl_is_pinode(expr)) { + simple_use_analysis(ctx, jl_fieldref_noalloc(expr, 0)); + } + else if (jl_is_phinode(expr)) { + jl_array_t *values = (jl_array_t*)jl_fieldref_noalloc(expr, 1); + size_t i, elen = jl_array_len(values); + for (i = 0; i < elen; i++) { + jl_value_t *v = jl_array_ptr_ref(values, i); + if (v) + simple_use_analysis(ctx, v); + } + } } // --- gc root utils --- @@ -2267,8 +2280,10 @@ static Value *emit_f_is(jl_codectx_t &ctx, const jl_cgval_t &arg1, const jl_cgva Value *varg2 = arg2.constant ? literal_pointer_val(ctx, arg2.constant) : arg2.V; assert(varg1 && varg2 && (arg1.isboxed || arg1.TIndex) && (arg2.isboxed || arg2.TIndex) && "Only boxed types are valid for pointer comparison."); - return ctx.builder.CreateICmpEQ(decay_derived(varg1), - decay_derived(varg2)); + varg1 = decay_derived(varg1); + varg2 = decay_derived(varg2); + return ctx.builder.CreateICmpEQ(emit_bitcast(ctx, varg1, T_pint8), + emit_bitcast(ctx, varg2, T_pint8)); } Value *varg1 = mark_callee_rooted(boxed(ctx, arg1)); @@ -2577,9 +2592,9 @@ static bool emit_builtin_call(jl_codectx_t &ctx, jl_cgval_t *ret, jl_value_t *f, !isboxed ? tbaa_arraybuf : tbaa_ptrarraybuf, data_owner, 0); } - *ret = ary; - return true; } + *ret = ary; + return true; } } } @@ -3371,48 +3386,6 @@ static jl_cgval_t emit_local(jl_codectx_t &ctx, jl_value_t *slotload) return v; } - -static void union_alloca_type(jl_uniontype_t *ut, - bool &allunbox, size_t &nbytes, size_t &align, size_t &min_align) -{ - nbytes = 0; - align = 0; - min_align = MAX_ALIGN; - // compute the size of the union alloca that could hold this type - unsigned counter = 0; - allunbox = for_each_uniontype_small( - [&](unsigned idx, jl_datatype_t *jt) { - if (!jl_is_datatype_singleton(jt)) { - size_t nb1 = jl_datatype_size(jt); - size_t align1 = jl_datatype_align(jt); - if (nb1 > nbytes) - nbytes = nb1; - if (align1 > align) - align = align1; - if (align1 < min_align) - min_align = align1; - } - }, - (jl_value_t*)ut, - counter); -} - -static Value *try_emit_union_alloca(jl_codectx_t &ctx, jl_uniontype_t *ut, bool &allunbox, size_t &min_align) -{ - size_t nbytes, align; - union_alloca_type(ut, allunbox, nbytes, align, min_align); - if (nbytes > 0) { - // at least some of the values can live on the stack - // try to pick an Integer type size such that SROA will emit reasonable code - Type *AT = ArrayType::get(IntegerType::get(jl_LLVMContext, 8 * min_align), (nbytes + min_align - 1) / min_align); - AllocaInst *lv = emit_static_alloca(ctx, AT); - if (align > 1) - lv->setAlignment(align); - return lv; - } - return NULL; -} - static void emit_vi_assignment_unboxed(jl_codectx_t &ctx, jl_varinfo_t &vi, Value *isboxed, jl_cgval_t rval_info) { if (vi.usedUndef) @@ -3478,9 +3451,94 @@ static void emit_vi_assignment_unboxed(jl_codectx_t &ctx, jl_varinfo_t &vi, Valu } } +static void emit_phinode_assign(jl_codectx_t &ctx, jl_value_t *l, jl_value_t *r) +{ + ssize_t idx = ((jl_ssavalue_t*)l)->id; + assert(idx >= 0); + assert(!ctx.ssavalue_assigned.at(idx)); + jl_value_t *ssavalue_types = (jl_value_t*)ctx.source->ssavaluetypes; + assert(jl_is_array(ssavalue_types)); + jl_array_t *edges = (jl_array_t*)jl_fieldref_noalloc(r, 0); + jl_value_t *phiType = jl_array_ptr_ref(ssavalue_types, idx); + BasicBlock *BB = ctx.builder.GetInsertBlock(); + auto InsertPt = BB->getFirstInsertionPt(); + if (phiType == jl_bottom_type) { + return; + } + if (jl_is_uniontype(phiType)) { + bool allunbox; + size_t min_align; + Value *dest = try_emit_union_alloca(ctx, ((jl_uniontype_t*)phiType), allunbox, min_align); + Value *ptr = NULL; + if (dest) { + PHINode *Tindex_phi = PHINode::Create(T_int8, jl_array_len(edges), "tindex_phi"); + BB->getInstList().insert(InsertPt, Tindex_phi); + PHINode *ptr_phi = PHINode::Create(T_prjlvalue, jl_array_len(edges), "ptr_phi"); + BB->getInstList().insert(InsertPt, ptr_phi); + Value *isboxed = ctx.builder.CreateICmpNE( + ctx.builder.CreateAnd(Tindex_phi, ConstantInt::get(T_int8, 0x80)), + ConstantInt::get(T_int8, 0)); + ptr = ctx.builder.CreateSelect(isboxed, + maybe_bitcast(ctx, decay_derived(ptr_phi), T_pint8), + maybe_bitcast(ctx, decay_derived(dest), T_pint8)); + jl_cgval_t val = mark_julia_slot(ptr, phiType, Tindex_phi, tbaa_stack); + val.Vboxed = ptr_phi; + ctx.PhiNodes.push_back(std::make_tuple(val, ptr_phi, r)); + ctx.SAvalues.at(idx) = val; + ctx.ssavalue_assigned.at(idx) = true; + return; + } + else if (allunbox) { + PHINode *Tindex_phi = PHINode::Create(T_int8, jl_array_len(edges), "tindex_phi"); + BB->getInstList().insert(InsertPt, Tindex_phi); + jl_cgval_t val = mark_julia_slot(NULL, phiType, Tindex_phi, tbaa_stack); + ctx.PhiNodes.push_back(std::make_tuple(val, (PHINode*)NULL, r)); + ctx.SAvalues.at(idx) = val; + ctx.ssavalue_assigned.at(idx) = true; + return; + } + } + bool isboxed; + Type *vtype = julia_type_to_llvm(phiType, &isboxed); + if (isboxed) + vtype = T_prjlvalue; + // The frontend should really not emit this, but we allow it + // for convenience. + if (type_is_ghost(vtype)) { + assert(jl_is_datatype(phiType) && ((jl_datatype_t*)phiType)->instance); + // Skip adding it to the PhiNodes list, since we didn't create one. + ctx.SAvalues.at(idx) = mark_julia_const(((jl_datatype_t*)phiType)->instance); + ctx.ssavalue_assigned.at(idx) = true; + return; + } + jl_cgval_t slot; + PHINode *value_phi = NULL; + if (vtype->isAggregateType()) { + value_phi = PHINode::Create(vtype->getPointerTo(AddressSpace::Derived), + jl_array_len(edges), "value_phi"); + BB->getInstList().insert(InsertPt, value_phi); + Value *alloc = emit_static_alloca(ctx, vtype); + ctx.builder.CreateMemCpy(alloc, value_phi, jl_datatype_size(phiType), + jl_datatype_align(phiType), false); + slot = mark_julia_slot(alloc, phiType, NULL, tbaa_stack); + } + else { + value_phi = PHINode::Create(vtype, jl_array_len(edges), "value_phi"); + BB->getInstList().insert(InsertPt, value_phi); + slot = mark_julia_type(ctx, value_phi, isboxed, phiType); + } + ctx.PhiNodes.push_back(std::make_tuple(slot, value_phi, r)); + ctx.SAvalues.at(idx) = slot; + ctx.ssavalue_assigned.at(idx) = true; + return; +} + static void emit_assignment(jl_codectx_t &ctx, jl_value_t *l, jl_value_t *r) { if (jl_is_ssavalue(l)) { + if (jl_is_phinode(r)) { + return emit_phinode_assign(ctx, l, r); + } ssize_t idx = ((jl_ssavalue_t*)l)->id; assert(idx >= 0); assert(!ctx.ssavalue_assigned.at(idx)); @@ -3600,7 +3658,7 @@ static void emit_assignment(jl_codectx_t &ctx, jl_value_t *l, jl_value_t *r) tindex = compute_tindex_unboxed(ctx, rval_info, vi.value.typ); if (vi.boxroot) tindex = ctx.builder.CreateOr(tindex, ConstantInt::get(T_int8, 0x80)); - if (!vi.boxroot) + else rval_info.TIndex = tindex; } ctx.builder.CreateStore(tindex, vi.pTIndex, vi.isVolatile); @@ -3747,6 +3805,9 @@ static jl_cgval_t emit_expr(jl_codectx_t &ctx, jl_value_t *expr) if (jl_is_gotonode(expr)) { jl_error("GotoNode in value position"); } + if (jl_is_pinode(expr)) { + return convert_julia_type(ctx, emit_expr(ctx, jl_fieldref_noalloc(expr, 0)), jl_fieldref_noalloc(expr, 1)); + } if (!jl_is_expr(expr)) { int needroot = true; if (jl_is_quotenode(expr)) { @@ -3784,6 +3845,11 @@ static jl_cgval_t emit_expr(jl_codectx_t &ctx, jl_value_t *expr) if (head == isdefined_sym) { return emit_isdefined(ctx, args[0]); } + else if (head == throw_undef_if_not_sym) { + Value *cond = emit_unbox(ctx, T_int8, emit_expr(ctx, args[1]), (jl_value_t*)jl_bool_type); + undef_var_error_ifnot(ctx, ctx.builder.CreateTrunc(cond, T_int1), (jl_sym_t*)args[0]); + return ghostValue(jl_void_type); + } else if (head == invoke_sym) { return emit_invoke(ctx, ex); } @@ -5622,25 +5688,16 @@ static std::unique_ptr emit_function( } return bb; } - // If this is a label node in an empty bb - if (lname == cursor + 1 && cur_bb->begin() == cur_bb->end()) { - assert(unconditional); - // Use this bb as the one for the new label. - bb = cur_bb; + // use the label name as the BB name. + bb = BasicBlock::Create(jl_LLVMContext, + "L" + std::to_string(lname), f); + if (unconditional) { + if (!cur_bb->getTerminator()) + ctx.builder.CreateBr(bb); + ctx.builder.SetInsertPoint(bb); } else { - // Otherwise, create a new BB - // use the label name as the BB name. - bb = BasicBlock::Create(jl_LLVMContext, - "L" + std::to_string(lname), f); - if (unconditional) { - if (!cur_bb->getTerminator()) - ctx.builder.CreateBr(bb); - ctx.builder.SetInsertPoint(bb); - } - else { - add_to_list(lname, bb); - } + add_to_list(lname, bb); } if (unconditional) find_next_stmt(lname); @@ -5658,6 +5715,9 @@ static std::unique_ptr emit_function( (malloc_log_mode == JL_LOG_USER && in_user_code)); }; + std::map come_from_bb; + come_from_bb[0] = ctx.builder.GetInsertBlock(); + // Handle the implicit first line number node. if (ctx.debug_enabled) ctx.builder.SetCurrentDebugLocation(topdebugloc); @@ -5680,6 +5740,11 @@ static std::unique_ptr emit_function( handle_label(lname, true); continue; } + if (expr && expr->head == unreachable_sym) { + ctx.builder.CreateUnreachable(); + find_next_stmt(-1); + continue; + } if (expr && expr->head == return_sym) { // this is basically a copy of emit_assignment, // but where the assignment slot is the retval @@ -5778,6 +5843,7 @@ static std::unique_ptr emit_function( } if (jl_is_gotonode(stmt)) { int lname = jl_gotonode_label(stmt); + come_from_bb[cursor+1] = ctx.builder.GetInsertBlock(); handle_label(lname, true); continue; } @@ -5786,17 +5852,23 @@ static std::unique_ptr emit_function( jl_value_t *cond = args[0]; int lname = jl_unbox_long(args[1]); Value *isfalse = emit_condition(ctx, cond, "if"); + come_from_bb[cursor+1] = ctx.builder.GetInsertBlock(); if (do_malloc_log(props.in_user_code) && props.line != -1) mallocVisitLine(ctx, props.file, props.line); - BasicBlock *ifso = BasicBlock::Create(jl_LLVMContext, "if", f); + bool next_is_label = jl_is_labelnode(jl_array_ptr_ref(stmts, cursor+1)); BasicBlock *ifnot = handle_label(lname, false); + BasicBlock *ifso = next_is_label ? handle_label(cursor+2, false) : BasicBlock::Create(jl_LLVMContext, "if", f); // Any branches treated as constant in type inference should be // eliminated before running ctx.builder.CreateCondBr(isfalse, ifnot, ifso); - ctx.builder.SetInsertPoint(ifso); + if (!next_is_label) + ctx.builder.SetInsertPoint(ifso); + find_next_stmt(next_is_label ? -1 : cursor+1); + continue; } else if (expr && expr->head == enter_sym) { jl_value_t **args = (jl_value_t**)jl_array_data(expr->args); + assert(jl_is_long(args[0])); int lname = jl_unbox_long(args[0]); CallInst *sj = ctx.builder.CreateCall(prepare_call(except_enter_func)); @@ -5828,11 +5900,216 @@ static std::unique_ptr emit_function( mallocVisitLine(ctx, props.file, props.line); } } + if ((size_t)cursor + 1 < jl_array_len(stmts) && jl_is_labelnode(jl_array_ptr_ref(stmts, cursor+1))) + come_from_bb[cursor+1] = ctx.builder.GetInsertBlock(); find_next_stmt(cursor + 1); } ctx.builder.SetCurrentDebugLocation(noDbg); ctx.builder.ClearInsertionPoint(); + // We don't visit empty labels, but they can still be implicit terminators, + // just add them to the list + for (auto &pair : labels) + come_from_bb[pair.first] = pair.second; + + // Codegen Phi nodes + std::map BB_rewrite_map; + for (auto &tup : ctx.PhiNodes) { + jl_cgval_t phi_result; + PHINode *VN; + jl_value_t *r; + std::tie(phi_result, VN, r) = tup; + jl_value_t *phiType = phi_result.typ; + jl_array_t *edges = (jl_array_t*)jl_fieldref_noalloc(r, 0); + jl_array_t *values = (jl_array_t*)jl_fieldref_noalloc(r, 1); + Value *PhiAlloca = NULL; + if (phi_result.V && isa(phi_result.V)) { + PhiAlloca = cast(phi_result.V)->getOperand(2)->stripPointerCasts(); + } + PHINode *TindexN = cast_or_null(phi_result.TIndex); + BasicBlock *PhiBB = VN ? VN->getParent() : TindexN->getParent(); + for (size_t i = 0; i < jl_array_len(edges); ++i) { + size_t edge = jl_unbox_long(jl_array_ptr_ref(edges, i)); + jl_value_t *value = jl_array_ptr_ref(values, i); + Value *V = NULL; + BasicBlock *IncomingBB = come_from_bb[edge]; + BasicBlock *FromBB = IncomingBB; + if (BB_rewrite_map.count(FromBB)) { + FromBB = BB_rewrite_map[IncomingBB]; + } +#ifndef JL_NDEBUG + bool found_pred = false; + for (BasicBlock *pred : predecessors(PhiBB)) { + found_pred = pred == FromBB; + if (found_pred) + break; + } + assert(found_pred); +#endif + ctx.builder.SetInsertPoint(FromBB->getTerminator()); + jl_cgval_t val; + if (!value || jl_is_ssavalue(value)) { + ssize_t idx = value ? ((jl_ssavalue_t*)value)->id : 0; + if (!value || !ctx.ssavalue_assigned.at(idx)) { + Value *RTindex = TindexN ? UndefValue::get(T_int8) : NULL; + if (VN) { // otherwise, it's all-unboxed + Value *undef; + if (isa(VN->getType())) { + bool isboxed; + Type *lphity = julia_type_to_llvm(phiType, &isboxed); + if (!isboxed) { + // the emit_phinode_assign emitted a memcpy in this case, + // so this needs to ensure the pointer is valid, while the contents are undef + undef = decay_derived(emit_static_alloca(ctx, lphity)); + } + else { + // but make sure gc pointers (including ptr_phi of union-split) are NULL + undef = ConstantPointerNull::get(cast(VN->getType())); + if (TindexN) // let the runtime / optimizer know this is unknown / boxed / null, so that it won't try to union_move / copy it later + RTindex = ConstantInt::get(T_int8, 0x80); + } + } + else { + undef = UndefValue::get(VN->getType()); + } + VN->addIncoming(undef, FromBB); + } + if (TindexN) + TindexN->addIncoming(RTindex, FromBB); + continue; + } + val = ctx.SAvalues.at(idx); + } + else { + val = emit_expr(ctx, value); + } + if (val.constant) + val = mark_julia_const(val.constant); // be over-conservative at making sure `.typ` is set concretely, not tindex + TerminatorInst *terminator = FromBB->getTerminator(); + if (!isa(terminator) || cast(terminator)->isConditional()) { + bool found = false; + for (size_t i = 0; i < terminator->getNumSuccessors(); ++i) { + if (terminator->getSuccessor(i) == PhiBB) { + // Can't use `llvm::SplitCriticalEdge` here because + // we may have invalid phi nodes in the destination. + BasicBlock *NewBB = BasicBlock::Create(terminator->getContext(), + FromBB->getName() + "." + PhiBB->getName() + "_crit_edge"); + terminator->setSuccessor(i, NewBB); + Function::iterator FBBI = FromBB->getIterator(); + ctx.f->getBasicBlockList().insert(++FBBI, NewBB); + ctx.builder.SetInsertPoint(NewBB); + found = true; + break; + } + } + assert(found); + } + else { + terminator->eraseFromParent(); + ctx.builder.SetInsertPoint(FromBB); + } + if (!jl_is_uniontype(phiType)) { + if (val.typ == (jl_value_t*)jl_bottom_type) { + V = UndefValue::get(VN->getType()); + } + else if (VN->getType() == T_prjlvalue) { + V = boxed(ctx, val); + } + else if (VN->getType()->isPointerTy()) { + V = maybe_bitcast(ctx, + decay_derived(data_pointer(ctx, val)), + VN->getType()); + } + else { + V = emit_unbox(ctx, VN->getType(), val, val.typ); + } + VN->addIncoming(V, ctx.builder.GetInsertBlock()); + assert(!TindexN); + } + else if (!TindexN) { + VN->addIncoming(boxed(ctx, val), ctx.builder.GetInsertBlock()); + } + else { + Value *RTindex = NULL; + if (val.typ == (jl_value_t*)jl_bottom_type) { + V = UndefValue::get(VN->getType()); + RTindex = UndefValue::get(T_int8); + } + else if (jl_is_concrete_type(val.typ) || val.constant) { + size_t tindex = get_box_tindex((jl_datatype_t*)val.typ, phiType); + if (tindex == 0) { + V = boxed(ctx, val); + RTindex = ConstantInt::get(T_int8, 0x80); + } + else { + V = ConstantPointerNull::get(cast(T_prjlvalue)); + Type *lty = julia_type_to_llvm(val.typ); + if (PhiAlloca && !type_is_ghost(lty)) // basically, if !ghost union + emit_unbox(ctx, lty, val, val.typ, PhiAlloca); + RTindex = ConstantInt::get(T_int8, tindex); + } + } + else { + jl_cgval_t new_union = convert_julia_type(ctx, val, phiType); + RTindex = new_union.TIndex; + if (!RTindex) { + assert(new_union.isboxed && new_union.Vboxed && "convert_julia_type failed"); + RTindex = compute_tindex_unboxed(ctx, new_union, phiType); + RTindex = ctx.builder.CreateOr(RTindex, ConstantInt::get(T_int8, 0x80)); + new_union.TIndex = RTindex; + } + V = new_union.Vboxed ? new_union.Vboxed : ConstantPointerNull::get(cast(T_prjlvalue)); + if (PhiAlloca) { // basically, if !ghost union + Value *skip = NULL; + if (new_union.Vboxed != nullptr) + skip = ctx.builder.CreateICmpNE( // if 0x80 is set, we won't select this slot anyways + ctx.builder.CreateAnd(RTindex, ConstantInt::get(T_int8, 0x80)), + ConstantInt::get(T_int8, 0)); + emit_unionmove(ctx, PhiAlloca, new_union, skip, false, NULL); + } + } + if (VN) + VN->addIncoming(V, ctx.builder.GetInsertBlock()); + if (TindexN) + TindexN->addIncoming(RTindex, ctx.builder.GetInsertBlock()); + } + ctx.builder.CreateBr(PhiBB); + // Check any phi nodes in the Phi block to see if by splitting the edges, + // we made things inconsistent + if (FromBB != ctx.builder.GetInsertBlock()) { + BB_rewrite_map[IncomingBB] = ctx.builder.GetInsertBlock(); + for (BasicBlock::iterator I = PhiBB->begin(); isa(I); ++I) { + PHINode *PN = cast(I); + ssize_t BBIdx = PN->getBasicBlockIndex(FromBB); + if (BBIdx == -1) + continue; + PN->setIncomingBlock(BBIdx, ctx.builder.GetInsertBlock()); + } + } + } + // Julia PHINodes may be incomplete with respect to predecessors, LLVM's may not + for (auto *pred : predecessors(PhiBB)) { + PHINode *PhiN = VN ? VN : TindexN; + bool found = false; + for (size_t i = 0; i < PhiN->getNumIncomingValues(); ++i) { + found = pred == PhiN->getIncomingBlock(i); + if (found) + break; + } + if (!found) { + if (VN) { + Value *undef = VN->getType() == T_prjlvalue ? + (llvm::Value*)ConstantPointerNull::get(cast(T_prjlvalue)) : + (llvm::Value*)UndefValue::get(VN->getType()); + VN->addIncoming(undef, pred); + } + if (TindexN) { + TindexN->addIncoming(UndefValue::get(TindexN->getType()), pred); + } + } + } + } + // step 13. Perform any delayed instantiations if (ctx.debug_enabled) { dbuilder.finalize(); diff --git a/src/dump.c b/src/dump.c index 71416cfb52de81..03e195e9fc0a43 100644 --- a/src/dump.c +++ b/src/dump.c @@ -2830,6 +2830,7 @@ void jl_init_serializer(void) jl_emptysvec, jl_emptytuple, jl_false, jl_true, jl_nothing, jl_any_type, call_sym, invoke_sym, goto_ifnot_sym, return_sym, body_sym, line_sym, lambda_sym, jl_symbol("tuple"), assign_sym, isdefined_sym, boundscheck_sym, + unreachable_sym, // empirical list of very common symbols #include "common_symbols1.inc" @@ -2844,10 +2845,7 @@ void jl_init_serializer(void) jl_box_int32(21), jl_box_int32(22), jl_box_int32(23), jl_box_int32(24), jl_box_int32(25), jl_box_int32(26), jl_box_int32(27), jl_box_int32(28), jl_box_int32(29), - jl_box_int32(30), jl_box_int32(31), jl_box_int32(32), -#ifndef _P64 - jl_box_int32(33), jl_box_int32(34), jl_box_int32(35), -#endif + jl_box_int32(30), jl_box_int64(0), jl_box_int64(1), jl_box_int64(2), jl_box_int64(3), jl_box_int64(4), jl_box_int64(5), jl_box_int64(6), jl_box_int64(7), jl_box_int64(8), @@ -2858,12 +2856,10 @@ void jl_init_serializer(void) jl_box_int64(21), jl_box_int64(22), jl_box_int64(23), jl_box_int64(24), jl_box_int64(25), jl_box_int64(26), jl_box_int64(27), jl_box_int64(28), jl_box_int64(29), - jl_box_int64(30), jl_box_int64(31), jl_box_int64(32), -#ifdef _P64 - jl_box_int64(33), jl_box_int64(34), jl_box_int64(35), -#endif + jl_box_int64(30), jl_labelnode_type, jl_linenumbernode_type, jl_gotonode_type, - jl_quotenode_type, jl_type_type, jl_bottom_type, jl_ref_type, + jl_quotenode_type, jl_pinode_type, jl_phinode_type, + jl_type_type, jl_bottom_type, jl_ref_type, jl_pointer_type, jl_vararg_type, jl_abstractarray_type, jl_void_type, jl_densearray_type, jl_function_type, jl_unionall_type, jl_typename_type, jl_builtin_type, jl_task_type, jl_uniontype_type, jl_typetype_type, diff --git a/src/flisp/julia_extensions.c b/src/flisp/julia_extensions.c index 7b9ac64a81dfce..409ba05cd7dfb5 100644 --- a/src/flisp/julia_extensions.c +++ b/src/flisp/julia_extensions.c @@ -70,7 +70,6 @@ static int is_wc_cat_id_start(uint32_t wc, utf8proc_category_t cat) ((wc >= 0x2140 && wc <= 0x2144) || // ⅀, ⅁, ⅂, ⅃, ⅄ wc == 0x223f || wc == 0x22be || wc == 0x22bf || // ∿, ⊾, ⊿ wc == 0x22a4 || wc == 0x22a5 || // ⊤ ⊥ - (wc >= 0x22ee && wc <= 0x22f1) || // ⋮, ⋯, ⋰, ⋱ (wc >= 0x2202 && wc <= 0x2233 && (wc == 0x2202 || wc == 0x2205 || wc == 0x2206 || // ∂, ∅, ∆ diff --git a/src/gf.c b/src/gf.c index 62806ce569820e..30ad7173ab7654 100644 --- a/src/gf.c +++ b/src/gf.c @@ -48,6 +48,10 @@ JL_DLLEXPORT jl_value_t *jl_invoke(jl_method_instance_t *meth, jl_value_t **args // since it can go through the unrolled caches for this world // and if inference is successful, this meth would get updated anyways, // and we'll get the fast path here next time + + // TODO: if `meth` came from an `invoke` call, we should make sure + // meth->def is called instead of doing normal dispatch. + return jl_apply(args, nargs); } } @@ -239,6 +243,9 @@ jl_code_info_t *jl_type_infer(jl_method_instance_t **pli, size_t world, int forc JL_TIMING(INFERENCE); if (jl_typeinf_func == NULL) return NULL; + static int in_inference; + if (in_inference > 2) + return NULL; #ifdef ENABLE_INFERENCE jl_method_instance_t *li = *pli; if (li->inInference && !force) @@ -260,8 +267,10 @@ jl_code_info_t *jl_type_infer(jl_method_instance_t **pli, size_t world, int forc size_t last_age = ptls->world_age; ptls->world_age = jl_typeinf_world; li->inInference = 1; + in_inference++; jl_svec_t *linfo_src_rettype = (jl_svec_t*)jl_apply_with_saved_exception_state(fargs, 3, 0); ptls->world_age = last_age; + in_inference--; li->inInference = 0; jl_code_info_t *src = NULL; @@ -443,7 +452,7 @@ static void foreach_mtable_in_module( { size_t i; void **table = m->bindings.table; - jl_eqtable_put(visited, m, jl_true); + jl_eqtable_put(visited, m, jl_true, NULL); for (i = 1; i < m->bindings.size; i += 2) { if (table[i] != HT_NOTFOUND) { jl_binding_t *b = (jl_binding_t*)table[i]; diff --git a/src/interpreter-stacktrace.c b/src/interpreter-stacktrace.c index ee37bfdc9acfc6..6cbe5d2be805bc 100644 --- a/src/interpreter-stacktrace.c +++ b/src/interpreter-stacktrace.c @@ -71,7 +71,7 @@ uintptr_t __stop_jl_interpreter_frame = (uintptr_t)&__stop_jl_interpreter_frame_ // sizeof(struct interpreter_state). Additionally, make sure that // MAX_INTERP_STATE_SIZE+STACK_PADDING+8 is a multiple of 16 to // ensure the proper stack alignment. -#define MAX_INTERP_STATE_SIZE 56 +#define MAX_INTERP_STATE_SIZE 72 #define STACK_PADDING 0 static_assert(sizeof(interpreter_state) <= MAX_INTERP_STATE_SIZE, "Stack layout invariants violated."); diff --git a/src/interpreter.c b/src/interpreter.c index c3da245e2d79de..e3718e14fe1489 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -20,6 +20,7 @@ typedef struct { jl_module_t *module; // context for globals jl_value_t **locals; // slots for holding local slots and ssavalues jl_svec_t *sparam_vals; // method static parameters, if eval-ing a method body + size_t last_branch; // Points at the last branch statement (for evaluating phi nodes) size_t ip; // Points to the currently-evaluating statement int preevaluation; // use special rules for pre-evaluating expressions int continue_at; // statement index to jump to after leaving exception handler (0 if none) @@ -429,6 +430,14 @@ SECT_INTERP static jl_value_t *eval_value(jl_value_t *e, interpreter_state *s) } return defined ? jl_true : jl_false; } + else if (head == throw_undef_if_not_sym) { + jl_value_t *cond = eval_value(args[1], s); + assert(jl_is_bool(cond)); + if (cond == jl_false) { + jl_undefined_var_error((jl_sym_t*)args[0]); + } + return jl_nothing; + } else if (head == new_sym) { jl_value_t *thetype = eval_value(args[0], s); jl_value_t *v=NULL, *fldv=NULL; @@ -496,17 +505,46 @@ SECT_INTERP static jl_value_t *eval_body(jl_array_t *stmts, interpreter_state *s jl_get_ptls_states()->world_age = jl_world_counter; jl_value_t *stmt = jl_array_ptr_ref(stmts, s->ip); if (jl_is_gotonode(stmt)) { + s->last_branch = s->ip; s->ip = jl_gotonode_label(stmt) - 1; continue; } + else if (jl_is_pinode(stmt)) { + jl_value_t *val = eval_value(jl_fieldref_noalloc(stmt, 0), s); +#ifndef JL_NDEBUG + jl_typeassert(val, jl_fieldref_noalloc(stmt, 1)); +#endif + return val; + } else if (jl_is_expr(stmt)) { + // Most exprs are allowed to end a BB by fall through + s->last_branch = s->ip; jl_sym_t *head = ((jl_expr_t*)stmt)->head; + assert(head != unreachable_sym); if (head == return_sym) { return eval_value(jl_exprarg(stmt, 0), s); } else if (head == assign_sym) { jl_value_t *sym = jl_exprarg(stmt, 0); - jl_value_t *rhs = eval_value(jl_exprarg(stmt, 1), s); + jl_value_t *rhs = NULL; + if (jl_is_phinode(jl_exprarg(stmt, 1))) { + jl_array_t *edges = (jl_array_t*)jl_fieldref_noalloc(jl_exprarg(stmt, 1), 0); + ssize_t edge = -1; + for (int i = 0; i < jl_array_len(edges); ++i) { + size_t from = jl_unbox_long(jl_arrayref(edges, i)); + if (from == s->last_branch) { + edge = i; + break; + } + } + if (edge == -1) { + jl_error("PhiNode edges do not contain last branch"); + } + jl_value_t *val = jl_arrayref((jl_array_t*)jl_fieldref_noalloc(jl_exprarg(stmt, 1), 1), edge); + rhs = eval_value(val, s); + } else { + rhs = eval_value(jl_exprarg(stmt, 1), s); + } if (jl_is_ssavalue(sym)) { ssize_t genid = ((jl_ssavalue_t*)sym)->id; if (genid >= jl_source_nssavalues(s->src) || genid < 0) @@ -609,6 +647,7 @@ SECT_INTERP static jl_value_t *eval_body(jl_array_t *stmts, interpreter_state *s } } else if (jl_is_newvarnode(stmt)) { + s->last_branch = s->ip; jl_value_t *var = jl_fieldref(stmt, 0); assert(jl_is_slot(var)); ssize_t n = jl_slot_number(var); diff --git a/src/intrinsics.cpp b/src/intrinsics.cpp index ecbf1fb53aa393..ca7e0f45db92bd 100644 --- a/src/intrinsics.cpp +++ b/src/intrinsics.cpp @@ -356,6 +356,9 @@ static Value *emit_unbox(jl_codectx_t &ctx, Type *to, const jl_cgval_t &x, jl_va if (unboxed) { if (!dest) return unboxed; + Type *dest_ty = unboxed->getType()->getPointerTo(); + if (dest->getType() != dest_ty) + dest = emit_bitcast(ctx, dest, dest_ty); ctx.builder.CreateStore(unboxed, dest); return NULL; } diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp index cc2f541bb80953..4b4b82869d3e94 100644 --- a/src/jitlayers.cpp +++ b/src/jitlayers.cpp @@ -46,6 +46,7 @@ namespace llvm { #include #include #include +#include "llvm/Object/ArchiveWriter.h" // target support #include @@ -1019,39 +1020,41 @@ static void emit_offset_table(Module *mod, const std::vector &vars name); } - -static void jl_gen_llvm_globaldata(Module *mod, const char *sysimg_data, size_t sysimg_len) +static void emit_result(std::vector &Archive, SmallVectorImpl &OS, + StringRef Name, std::vector &outputs) { - emit_offset_table(mod, jl_sysimg_gvars, "jl_sysimg_gvars"); - emit_offset_table(mod, jl_sysimg_fvars, "jl_sysimg_fvars"); - addComdat(new GlobalVariable(*mod, - T_size, - true, - GlobalVariable::ExternalLinkage, - ConstantInt::get(T_size, globalUnique+1), - "jl_globalUnique")); + outputs.push_back({ OS.data(), OS.size() }); + Archive.push_back(NewArchiveMember(MemoryBufferRef(outputs.back(), Name))); + OS.clear(); +} - // reflect the address of the jl_RTLD_DEFAULT_handle variable - // back to the caller, so that we can check for consistency issues - GlobalValue *jlRTLD_DEFAULT_var = mod->getNamedValue("jl_RTLD_DEFAULT_handle"); - addComdat(new GlobalVariable(*mod, - jlRTLD_DEFAULT_var->getType(), - true, - GlobalVariable::ExternalLinkage, - jlRTLD_DEFAULT_var, - "jl_RTLD_DEFAULT_handle_pointer")); +static object::Archive::Kind getDefaultForHost(Triple &triple) { + if (triple.isOSDarwin()) +#if JL_LLVM_VERSION >= 50000 + return object::Archive::K_DARWIN; +#else + return object::Archive::K_BSD; +#endif + return object::Archive::K_GNU; +} - if (sysimg_data) { - Constant *data = ConstantDataArray::get(jl_LLVMContext, - ArrayRef((const unsigned char*)sysimg_data, sysimg_len)); - addComdat(new GlobalVariable(*mod, data->getType(), false, - GlobalVariable::ExternalLinkage, - data, "jl_system_image_data"))->setAlignment(64); - Constant *len = ConstantInt::get(T_size, sysimg_len); - addComdat(new GlobalVariable(*mod, len->getType(), true, - GlobalVariable::ExternalLinkage, - len, "jl_system_image_size")); - } +#if JL_LLVM_VERSION >= 60000 +typedef Error ArchiveWriterError; +#else +typedef std::pair ArchiveWriterError; +template +static void handleAllErrors(ArchiveWriterError E, HandlerT Handler) { + if (E.second) + Handler(E); +} +#endif +static void reportWriterError(ArchiveWriterError E) { + std::string ContextStr = E.first.str(); + std::string err; + if (!ContextStr.empty()) + err += ContextStr + ": "; + err += E.second.message(); + jl_safe_printf("ERROR: failed to emit output file %s\n", err.c_str()); } // takes the running content that has collected in the shadow module and dump it to disk @@ -1082,8 +1085,13 @@ void jl_dump_native(const char *bc_fname, const char *unopt_bc_fname, const char #else Optional(), #endif +#if defined(_CPU_PPC_) || defined(_CPU_PPC64_) + // On PPC the small model is limited to 16bit offsets + CodeModel::Medium, +#else // Use small model so that we can use signed 32bits offset in the function and GV tables CodeModel::Small, +#endif CodeGenOpt::Aggressive // -O3 TODO: respect command -O0 flag? )); @@ -1091,59 +1099,26 @@ void jl_dump_native(const char *bc_fname, const char *unopt_bc_fname, const char addTargetPasses(&PM, TM.get()); // set up optimization passes - std::unique_ptr unopt_bc_OS; - std::unique_ptr bc_OS; - std::unique_ptr obj_OS; - - if (unopt_bc_fname) { - // call output handler directly to avoid special case handling of `-` filename - int FD; - std::error_code EC = sys::fs::openFileForWrite(unopt_bc_fname, FD, sys::fs::F_None); - unopt_bc_OS.reset(new raw_fd_ostream(FD, true)); - std::string err; - if (EC) - err = "ERROR: failed to open --output-unopt-bc file '" + std::string(unopt_bc_fname) + "': " + EC.message(); - if (!err.empty()) - jl_safe_printf("%s\n", err.c_str()); - else { - PM.add(createBitcodeWriterPass(*unopt_bc_OS.get())); - } - } - + SmallVector bc_Buffer; + SmallVector obj_Buffer; + SmallVector unopt_bc_Buffer; + raw_svector_ostream bc_OS(bc_Buffer); + raw_svector_ostream obj_OS(obj_Buffer); + raw_svector_ostream unopt_bc_OS(unopt_bc_Buffer); + std::vector bc_Archive; + std::vector obj_Archive; + std::vector unopt_bc_Archive; + std::vector outputs; + + if (unopt_bc_fname) + PM.add(createBitcodeWriterPass(unopt_bc_OS)); if (bc_fname || obj_fname) addOptimizationPasses(&PM, jl_options.opt_level, true); - - if (bc_fname) { - // call output handler directly to avoid special case handling of `-` filename - int FD; - std::error_code EC = sys::fs::openFileForWrite(bc_fname, FD, sys::fs::F_None); - bc_OS.reset(new raw_fd_ostream(FD, true)); - std::string err; - if (EC) - err = "ERROR: failed to open --output-bc file '" + std::string(bc_fname) + "': " + EC.message(); - if (!err.empty()) - jl_safe_printf("%s\n", err.c_str()); - else { - PM.add(createBitcodeWriterPass(*bc_OS.get())); - } - } - - if (obj_fname) { - // call output handler directly to avoid special case handling of `-` filename - int FD; - std::error_code EC = sys::fs::openFileForWrite(obj_fname, FD, sys::fs::F_None); - obj_OS.reset(new raw_fd_ostream(FD, true)); - std::string err; - if (EC) - err = "ERROR: failed to open --output-o file '" + std::string(obj_fname) + "': " + EC.message(); - if (!err.empty()) - jl_safe_printf("%s\n", err.c_str()); - else { - if (TM->addPassesToEmitFile(PM, *obj_OS.get(), TargetMachine::CGFT_ObjectFile, false)) { - jl_safe_printf("ERROR: target does not support generation of object files\n"); - } - } - } + if (bc_fname) + PM.add(createBitcodeWriterPass(bc_OS)); + if (obj_fname) + if (TM->addPassesToEmitFile(PM, obj_OS, TargetMachine::CGFT_ObjectFile, false)) + jl_safe_printf("ERROR: target does not support generation of object files\n"); // Reset the target triple to make sure it matches the new target machine shadow_output->setTargetTriple(TM->getTargetTriple().str()); @@ -1156,11 +1131,70 @@ void jl_dump_native(const char *bc_fname, const char *unopt_bc_fname, const char #endif // add metadata information - if (imaging_mode) - jl_gen_llvm_globaldata(shadow_output, sysimg_data, sysimg_len); + if (imaging_mode) { + emit_offset_table(shadow_output, jl_sysimg_gvars, "jl_sysimg_gvars"); + emit_offset_table(shadow_output, jl_sysimg_fvars, "jl_sysimg_fvars"); + + // reflect the address of the jl_RTLD_DEFAULT_handle variable + // back to the caller, so that we can check for consistency issues + GlobalValue *jlRTLD_DEFAULT_var = shadow_output->getNamedValue("jl_RTLD_DEFAULT_handle"); + addComdat(new GlobalVariable(*shadow_output, + jlRTLD_DEFAULT_var->getType(), + true, + GlobalVariable::ExternalLinkage, + jlRTLD_DEFAULT_var, + "jl_RTLD_DEFAULT_handle_pointer")); + } // do the actual work - PM.run(*shadow_output); + auto add_output = [&] (Module &M, StringRef unopt_bc_Name, StringRef bc_Name, StringRef obj_Name) { + PM.run(M); + if (unopt_bc_fname) + emit_result(unopt_bc_Archive, unopt_bc_Buffer, unopt_bc_Name, outputs); + if (bc_fname) + emit_result(bc_Archive, bc_Buffer, bc_Name, outputs); + if (obj_fname) + emit_result(obj_Archive, obj_Buffer, obj_Name, outputs); + }; + + add_output(*shadow_output, "unopt.bc", "text.bc", "text.o"); + + LLVMContext &Context = shadow_output->getContext(); + std::unique_ptr sysimage(new Module("sysimage", Context)); + sysimage->setTargetTriple(shadow_output->getTargetTriple()); + sysimage->setDataLayout(shadow_output->getDataLayout()); + + addComdat(new GlobalVariable(*sysimage, + T_size, + true, + GlobalVariable::ExternalLinkage, + ConstantInt::get(T_size, globalUnique + 1), + "jl_globalUnique")); + + if (sysimg_data) { + Constant *data = ConstantDataArray::get(Context, + ArrayRef((const unsigned char*)sysimg_data, sysimg_len)); + addComdat(new GlobalVariable(*sysimage, data->getType(), false, + GlobalVariable::ExternalLinkage, + data, "jl_system_image_data"))->setAlignment(64); + Constant *len = ConstantInt::get(T_size, sysimg_len); + addComdat(new GlobalVariable(*sysimage, len->getType(), true, + GlobalVariable::ExternalLinkage, + len, "jl_system_image_size")); + } + add_output(*sysimage, "data.bc", "data.bc", "data.o"); + + object::Archive::Kind Kind = getDefaultForHost(TheTriple); + if (unopt_bc_fname) + handleAllErrors(writeArchive(unopt_bc_fname, unopt_bc_Archive, true, + Kind, true, false), reportWriterError); + if (bc_fname) + handleAllErrors(writeArchive(bc_fname, bc_Archive, true, + Kind, true, false), reportWriterError); + if (obj_fname) + handleAllErrors(writeArchive(obj_fname, obj_Archive, true, + Kind, true, false), reportWriterError); + imaging_mode = false; } diff --git a/src/jlfrontend.scm b/src/jlfrontend.scm index 8dc9a853f50142..9572225af114b8 100644 --- a/src/jlfrontend.scm +++ b/src/jlfrontend.scm @@ -94,12 +94,14 @@ (define *in-expand* #f) +(define (toplevel-only-expr? e) + (and (pair? e) + (or (memq (car e) '(toplevel line module import importall using export + error incomplete)) + (and (eq? (car e) 'global) (every symbol? (cdr e)))))) + (define (expand-toplevel-expr e) - (cond ((or (atom? e) - (and (pair? e) - (or (memq (car e) '(toplevel line module import importall using export - error incomplete)) - (and (eq? (car e) 'global) (every symbol? (cdr e)))))) + (cond ((or (atom? e) (toplevel-only-expr? e)) (if (underscore-symbol? e) (syntax-deprecation "underscores as an rvalue" "" #f)) e) @@ -207,6 +209,11 @@ (parser-wrap (lambda () (expand-toplevel-expr expr)))) +(define (jl-expand-to-thunk-stmt expr) + (jl-expand-to-thunk (if (toplevel-only-expr? expr) + expr + `(block ,expr (null))))) + ; run whole frontend on a string. useful for testing. (define (fe str) (expand-toplevel-expr (julia-parse str))) diff --git a/src/jloptions.c b/src/jloptions.c index fba335551fb56a..6f8ad92df36d65 100644 --- a/src/jloptions.c +++ b/src/jloptions.c @@ -78,7 +78,7 @@ static const char opts[] = // startup options " -J, --sysimage Start up with the given system image file\n" " -H, --home Set location of `julia` executable\n" - " --startup-file={yes|no} Load ~/.juliarc.jl\n" + " --startup-file={yes|no} Load `~/.julia/config/startup.jl`\n" " --handle-signals={yes|no} Enable or disable Julia's default signal handlers\n" " --sysimage-native-code={yes|no}\n" " Use native code from system image if available\n" diff --git a/src/jltypes.c b/src/jltypes.c index 8d790c675b0e6b..98161740ffa21c 100644 --- a/src/jltypes.c +++ b/src/jltypes.c @@ -90,6 +90,8 @@ jl_datatype_t *jl_globalref_type; jl_datatype_t *jl_linenumbernode_type; jl_datatype_t *jl_labelnode_type; jl_datatype_t *jl_gotonode_type; +jl_datatype_t *jl_pinode_type; +jl_datatype_t *jl_phinode_type; jl_datatype_t *jl_quotenode_type; jl_datatype_t *jl_newvarnode_type; jl_datatype_t *jl_intrinsic_type; @@ -1976,6 +1978,16 @@ void jl_init_types(void) jl_perm_symsvec(1, "label"), jl_svec(1, jl_long_type), 0, 0, 1); + jl_pinode_type = + jl_new_datatype(jl_symbol("PiNode"), core, jl_any_type, jl_emptysvec, + jl_perm_symsvec(2, "val", "typ"), + jl_svec(2, jl_any_type, jl_any_type), 0, 0, 2); + + jl_phinode_type = + jl_new_datatype(jl_symbol("PhiNode"), core, jl_any_type, jl_emptysvec, + jl_perm_symsvec(2, "edges", "values"), + jl_svec(2, jl_array_any_type, jl_array_any_type), 0, 0, 2); + jl_quotenode_type = jl_new_datatype(jl_symbol("QuoteNode"), core, jl_any_type, jl_emptysvec, jl_perm_symsvec(1, "value"), @@ -2198,6 +2210,8 @@ void jl_init_types(void) jl_compute_field_offsets(jl_labelnode_type); jl_compute_field_offsets(jl_gotonode_type); jl_compute_field_offsets(jl_quotenode_type); + jl_compute_field_offsets(jl_pinode_type); + jl_compute_field_offsets(jl_phinode_type); jl_compute_field_offsets(jl_module_type); jl_compute_field_offsets(jl_method_instance_type); jl_compute_field_offsets(jl_unionall_type); diff --git a/src/julia-parser.scm b/src/julia-parser.scm index d4e877f1ef631b..891406ee62768e 100644 --- a/src/julia-parser.scm +++ b/src/julia-parser.scm @@ -7,7 +7,7 @@ ;; the way the lexer works, every prefix of an operator must also ;; be an operator. (define prec-assignment - (append! (add-dots '(= += -= *= /= //= |\\=| ^= ÷= %= <<= >>= >>>= |\|=| &= ⊻=)) + (append! (add-dots '(= += -= *= /= //= |\\=| ^= ÷= %= <<= >>= >>>= |\|=| &= ⊻= ≔ ⩴ ≕)) '(:= ~ $=))) ;; comma - higher than assignment outside parentheses, lower when inside (define prec-pair '(=>)) @@ -19,10 +19,10 @@ (define prec-lazy-and '(&&)) (define prec-comparison (append! '(|<:| |>:| in isa) - (add-dots '(> < >= ≥ <= ≤ == === ≡ != ≠ !== ≢ ∈ ∉ ∋ ∌ ⊆ ⊈ ⊂ ⊄ ⊊ ∝ ∊ ∍ ∥ ∦ ∷ ∺ ∻ ∽ ∾ ≁ ≃ ≄ ≅ ≆ ≇ ≈ ≉ ≊ ≋ ≌ ≍ ≎ ≐ ≑ ≒ ≓ ≔ ≕ ≖ ≗ ≘ ≙ ≚ ≛ ≜ ≝ ≞ ≟ ≣ ≦ ≧ ≨ ≩ ≪ ≫ ≬ ≭ ≮ ≯ ≰ ≱ ≲ ≳ ≴ ≵ ≶ ≷ ≸ ≹ ≺ ≻ ≼ ≽ ≾ ≿ ⊀ ⊁ ⊃ ⊅ ⊇ ⊉ ⊋ ⊏ ⊐ ⊑ ⊒ ⊜ ⊩ ⊬ ⊮ ⊰ ⊱ ⊲ ⊳ ⊴ ⊵ ⊶ ⊷ ⋍ ⋐ ⋑ ⋕ ⋖ ⋗ ⋘ ⋙ ⋚ ⋛ ⋜ ⋝ ⋞ ⋟ ⋠ ⋡ ⋢ ⋣ ⋤ ⋥ ⋦ ⋧ ⋨ ⋩ ⋪ ⋫ ⋬ ⋭ ⋲ ⋳ ⋴ ⋵ ⋶ ⋷ ⋸ ⋹ ⋺ ⋻ ⋼ ⋽ ⋾ ⋿ ⟈ ⟉ ⟒ ⦷ ⧀ ⧁ ⧡ ⧣ ⧤ ⧥ ⩦ ⩧ ⩪ ⩫ ⩬ ⩭ ⩮ ⩯ ⩰ ⩱ ⩲ ⩳ ⩴ ⩵ ⩶ ⩷ ⩸ ⩹ ⩺ ⩻ ⩼ ⩽ ⩾ ⩿ ⪀ ⪁ ⪂ ⪃ ⪄ ⪅ ⪆ ⪇ ⪈ ⪉ ⪊ ⪋ ⪌ ⪍ ⪎ ⪏ ⪐ ⪑ ⪒ ⪓ ⪔ ⪕ ⪖ ⪗ ⪘ ⪙ ⪚ ⪛ ⪜ ⪝ ⪞ ⪟ ⪠ ⪡ ⪢ ⪣ ⪤ ⪥ ⪦ ⪧ ⪨ ⪩ ⪪ ⪫ ⪬ ⪭ ⪮ ⪯ ⪰ ⪱ ⪲ ⪳ ⪴ ⪵ ⪶ ⪷ ⪸ ⪹ ⪺ ⪻ ⪼ ⪽ ⪾ ⪿ ⫀ ⫁ ⫂ ⫃ ⫄ ⫅ ⫆ ⫇ ⫈ ⫉ ⫊ ⫋ ⫌ ⫍ ⫎ ⫏ ⫐ ⫑ ⫒ ⫓ ⫔ ⫕ ⫖ ⫗ ⫘ ⫙ ⫷ ⫸ ⫹ ⫺ ⊢ ⊣ ⟂)))) + (add-dots '(> < >= ≥ <= ≤ == === ≡ != ≠ !== ≢ ∈ ∉ ∋ ∌ ⊆ ⊈ ⊂ ⊄ ⊊ ∝ ∊ ∍ ∥ ∦ ∷ ∺ ∻ ∽ ∾ ≁ ≃ ≄ ≅ ≆ ≇ ≈ ≉ ≊ ≋ ≌ ≍ ≎ ≐ ≑ ≒ ≓ ≖ ≗ ≘ ≙ ≚ ≛ ≜ ≝ ≞ ≟ ≣ ≦ ≧ ≨ ≩ ≪ ≫ ≬ ≭ ≮ ≯ ≰ ≱ ≲ ≳ ≴ ≵ ≶ ≷ ≸ ≹ ≺ ≻ ≼ ≽ ≾ ≿ ⊀ ⊁ ⊃ ⊅ ⊇ ⊉ ⊋ ⊏ ⊐ ⊑ ⊒ ⊜ ⊩ ⊬ ⊮ ⊰ ⊱ ⊲ ⊳ ⊴ ⊵ ⊶ ⊷ ⋍ ⋐ ⋑ ⋕ ⋖ ⋗ ⋘ ⋙ ⋚ ⋛ ⋜ ⋝ ⋞ ⋟ ⋠ ⋡ ⋢ ⋣ ⋤ ⋥ ⋦ ⋧ ⋨ ⋩ ⋪ ⋫ ⋬ ⋭ ⋲ ⋳ ⋴ ⋵ ⋶ ⋷ ⋸ ⋹ ⋺ ⋻ ⋼ ⋽ ⋾ ⋿ ⟈ ⟉ ⟒ ⦷ ⧀ ⧁ ⧡ ⧣ ⧤ ⧥ ⩦ ⩧ ⩪ ⩫ ⩬ ⩭ ⩮ ⩯ ⩰ ⩱ ⩲ ⩳ ⩵ ⩶ ⩷ ⩸ ⩹ ⩺ ⩻ ⩼ ⩽ ⩾ ⩿ ⪀ ⪁ ⪂ ⪃ ⪄ ⪅ ⪆ ⪇ ⪈ ⪉ ⪊ ⪋ ⪌ ⪍ ⪎ ⪏ ⪐ ⪑ ⪒ ⪓ ⪔ ⪕ ⪖ ⪗ ⪘ ⪙ ⪚ ⪛ ⪜ ⪝ ⪞ ⪟ ⪠ ⪡ ⪢ ⪣ ⪤ ⪥ ⪦ ⪧ ⪨ ⪩ ⪪ ⪫ ⪬ ⪭ ⪮ ⪯ ⪰ ⪱ ⪲ ⪳ ⪴ ⪵ ⪶ ⪷ ⪸ ⪹ ⪺ ⪻ ⪼ ⪽ ⪾ ⪿ ⫀ ⫁ ⫂ ⫃ ⫄ ⫅ ⫆ ⫇ ⫈ ⫉ ⫊ ⫋ ⫌ ⫍ ⫎ ⫏ ⫐ ⫑ ⫒ ⫓ ⫔ ⫕ ⫖ ⫗ ⫘ ⫙ ⫷ ⫸ ⫹ ⫺ ⊢ ⊣ ⟂)))) (define prec-pipe< '(|.<\|| |<\||)) (define prec-pipe> '(|.\|>| |\|>|)) -(define prec-colon '(: |..|)) +(define prec-colon (append! '(: |..|) (add-dots '(… ⁝ ⋮ ⋱ ⋰ ⋯)))) (define prec-plus (append! '($) (add-dots '(+ - |\|| ⊕ ⊖ ⊞ ⊟ |++| ∪ ∨ ⊔ ± ∓ ∔ ∸ ≂ ≏ ⊎ ⊻ ⊽ ⋎ ⋓ ⧺ ⧻ ⨈ ⨢ ⨣ ⨤ ⨥ ⨦ ⨧ ⨨ ⨩ ⨪ ⨫ ⨬ ⨭ ⨮ ⨹ ⨺ ⩁ ⩂ ⩅ ⩊ ⩌ ⩏ ⩐ ⩒ ⩔ ⩖ ⩗ ⩛ ⩝ ⩡ ⩢ ⩣)))) (define prec-bitshift (add-dots '(<< >> >>>))) @@ -675,8 +675,7 @@ (memv (peek-token s) ops)) (loop ex #f (peek-token s)) (if (and add-linenums - (not (and (pair? (car ex)) - (eq? (caar ex) 'line)))) + (not (linenum? (car ex)))) (let ((loc (line-number-node s))) (loop (list* (down s) loc ex) #f (peek-token s))) (loop (cons (down s) ex) #f (peek-token s)))))))))) @@ -1018,6 +1017,12 @@ (parse-unary-call s op (unary-op? op) spc))) (parse-juxtapose (parse-factor s) s)))) +(define (fix-syntactic-unary e) + (let ((ce (car e))) + (if (or (eq? ce '|<:|) (eq? ce '|>:|)) + e + (cons 'call e)))) + (define (parse-unary-call s op un spc) (let ((next (peek-token s))) (cond ((or (closing-token? next) (newline? next) (eq? next '=)) @@ -1026,17 +1031,27 @@ (and (not un) (eqv? next #\( ))) (ts:put-back! s op spc) (parse-factor s)) + ((eqv? next #\( ) + (take-token s) + (let* ((opspc (ts:space? s)) + (parens (with-bindings ((accept-dots-without-comma #t)) + (parse-paren- s #t)))) + (if (cdr parens) ;; found an argument list + (if opspc + (disallowed-space op #\( ) + (parse-juxtapose + (parse-factor-with-initial-ex + s + (fix-syntactic-unary (cons op (tuple-to-arglist (car parens))))) + s)) + (fix-syntactic-unary + (list op (parse-juxtapose (parse-factor-with-initial-ex s (car parens)) s)))))) ((not un) (error (string "\"" op "\" is not a unary operator"))) (else - (let* ((arg (with-bindings ((accept-dots-without-comma #t)) - (parse-unary s))) - (args (if (and (pair? arg) (eq? (car arg) 'tuple)) - (cons op (cdr arg)) - (list op arg)))) - (if (or (eq? op '|<:|) (eq? op '|>:|)) - args - (cons 'call args))))))) + (let ((arg (with-bindings ((accept-dots-without-comma #t)) + (parse-unary s)))) + (fix-syntactic-unary (list op arg))))))) (define block-form? (Set '(block quote if for while let function macro abstract primitive struct try module))) @@ -1084,11 +1099,24 @@ ;; handle ^ and .^ ;; -2^3 is parsed as -(2^3), so call parse-decl for the first argument, ;; and parse-unary from then on (to handle 2^-3) -(define (parse-factor s) (parse-RtoL s parse-decl is-prec-power? #f parse-factor-after)) +(define (parse-factor s) + (parse-factor-with-initial-ex s (parse-unary-prefix s))) + +(define (parse-factor-with-initial-ex s ex0) + (let* ((ex (parse-decl-with-initial-ex s (parse-call-with-initial-ex s ex0))) + (t (peek-token s))) + (if (is-prec-power? t) + (begin (take-token s) + (list 'call t ex (parse-factor-after s))) + ex))) + (define (parse-factor-after s) (parse-RtoL s parse-unary is-prec-power? #f parse-factor-after)) (define (parse-decl s) - (let loop ((ex (parse-call s))) + (parse-decl-with-initial-ex s (parse-call s))) + +(define (parse-decl-with-initial-ex s ex) + (let loop ((ex ex)) (let ((t (peek-token s))) (case t ((|::|) (take-token s) @@ -1104,10 +1132,12 @@ ;; parse function call, indexing, dot, and transpose expressions ;; also handles looking for syntactic reserved words (define (parse-call s) - (let ((ex (parse-unary-prefix s))) - (if (or (initial-reserved-word? ex) (eq? ex 'mutable) (eq? ex 'primitive) (eq? ex 'abstract)) - (parse-resword s ex) - (parse-call-chain s ex #f)))) + (parse-call-with-initial-ex s (parse-unary-prefix s))) + +(define (parse-call-with-initial-ex s ex) + (if (or (initial-reserved-word? ex) (eq? ex 'mutable) (eq? ex 'primitive) (eq? ex 'abstract)) + (parse-resword s ex) + (parse-call-chain s ex #f))) (define (parse-unary-prefix s) (let ((op (peek-token s))) @@ -1140,7 +1170,7 @@ (define (disallowed-space ex t) (error (string "space before \"" t "\" not allowed in \"" - (deparse ex) " " (deparse t) "\""))) + (deparse ex) " " t "\""))) ;; string macro suffix for given delimiter t (define (macsuffix t) @@ -1323,7 +1353,7 @@ (blk (parse-block s (lambda (s) (parse-docstring s parse-eq))))) (expect-end s word) (let ((blk (if (and (length> blk 1) - (pair? (cadr blk)) (eq? (caadr blk) 'line)) + (linenum? (cadr blk))) (list* 'block loc (cddr blk)) blk))) (if (eq? word 'quote) @@ -1347,7 +1377,7 @@ (error "let variables should end in \";\" or newline")) (let* ((ex (begin0 (parse-block s) (expect-end s word))) - (ex (if (and (length= ex 2) (pair? (cadr ex)) (eq? (caadr ex) 'line)) + (ex (if (and (length= ex 2) (linenum? (cadr ex))) `(block) ;; don't need line info in an empty let block ex))) `(let ,(if (and (length= binds 1) (or (assignment? (car binds)) (decl? (car binds)) @@ -1500,8 +1530,7 @@ catch-block `(block ,loc ,var ,@(if (and (length= catch-block 2) - (pair? (cadr catch-block)) - (eq? (caadr catch-block) 'line)) + (linenum? (cadr catch-block))) '() (cdr catch-block)))) (if var? var 'false) @@ -1698,7 +1727,7 @@ ;; . an extra comma at the end is allowed ;; . expressions after a ; are enclosed in (parameters ...) ;; . an expression followed by ... becomes (... x) -(define (parse-arglist s closer) +(define (parse-arglist s closer (add-linenums #f)) (with-bindings ((range-colon-enabled #t) (space-sensitive #f) (where-enabled #t) @@ -1712,16 +1741,18 @@ (to-kws (reverse! lst)) (reverse! lst))) (if (eqv? t #\;) - (begin (take-token s) - (if (eqv? (peek-token s) closer) - ;; allow f(a, b; ) - (loop lst) - (let ((params (loop '())) - (lst (if (eqv? closer #\) ) - (to-kws (reverse lst)) - (reverse lst)))) - (cons (cons 'parameters params) - lst)))) + (begin (take-token s) (require-token s) + (let ((loc (line-number-node s)) + (params (loop '())) + (lst (if (eqv? closer #\) ) + (to-kws (reverse lst)) + (reverse lst)))) + (cons `(parameters + ,@(if add-linenums + (list loc) + '()) + ,@params) + lst))) (let* ((nxt (parse-eq* s)) (c (require-token s))) (cond ((eqv? c #\,) @@ -1766,7 +1797,7 @@ (if (eqv? (require-token s) closer) (loop lst nxt) (let ((params (parse-call-arglist s closer))) - (if (null? params) + (if (or (null? params) (equal? params '((parameters)))) (begin (parser-depwarn s (deparse `(vect (parameters) ,@(reverse lst) ,nxt)) (deparse `(vcat ,@(reverse lst) ,nxt))) ;; TODO: post 0.7, remove deprecation and change parsing to 'vect @@ -1886,20 +1917,36 @@ ;; this allows us to first parse tuples using parse-arglist (define (parameters-to-block e) (if (and (pair? e) (eq? (car e) 'parameters)) - (cond ((length= e 1) '()) - ((length= e 2) (parameters-to-block (cadr e))) - ((length= e 3) - (let ((fst (cadr e)) - (snd (caddr e))) - (if (and (pair? fst) (eq? (car fst) 'parameters)) - (let ((rec (parameters-to-block fst)) - (snd (parameters-to-block snd))) - (and rec snd - (cons (car snd) rec))) - #f))) - (else #f)) + (let ((e2 (filter (lambda (x) (not (linenum? x))) e)) + (lnum (if (and (pair? (cdr e)) + (linenum? (cadr e))) + (cadr e) + #f))) + (cond ((length= e2 1) '()) + ((length= e2 2) + (let ((rec (parameters-to-block (cadr e2)))) + (if (null? rec) + rec + (cons lnum rec)))) + ((length= e2 3) + (let ((fst (cadr e2)) + (snd (caddr e2))) + (if (and (pair? fst) (eq? (car fst) 'parameters)) + (let ((rec (parameters-to-block fst)) + (snd (parameters-to-block snd))) + (and rec snd + (append (if lnum (list lnum) '()) (cons (car snd) rec)))) + #f))) + (else #f))) (list (kw-to-= e)))) +(define (rm-linenums e) + (if (atom? e) e + (map rm-linenums + (if (eq? (car e) 'parameters) + (filter (lambda (x) (not (linenum? x))) e) + e)))) + ;; convert an arglist to a tuple or block expr ;; leading-semi? means we saw (; ...) ;; comma? means there was a comma after the first expression @@ -1914,9 +1961,100 @@ `(block)))))) ;; all semicolons inside () (and (null? first) (null? args) (not comma?) `(block)) ;; this case is (;) - (if (and (pair? args) (pair? (car args)) (eq? (caar args) 'parameters)) - `(tuple ,(car args) ,@first ,@(map kw-to-= (cdr args))) - `(tuple ,@first ,@(map kw-to-= args)))))) + (rm-linenums + (if (and (pair? args) (pair? (car args)) (eq? (caar args) 'parameters)) + `(tuple ,(car args) ,@first ,@(map kw-to-= (cdr args))) + `(tuple ,@first ,@(map kw-to-= args))))))) + +(define (tuple-to-arglist e) + (cond ((eq? (car e) 'tuple) (map =-to-kw (cdr e))) + ((eq? (car e) 'block) + (cond ((length= e 1) '()) + ((length= e 2) (list (cadr e))) + ((length= e 3) + (if (assignment? (caddr e)) + `((parameters (kw ,@(cdr (caddr e)))) ,(cadr e)) + `((parameters ,(caddr e)) ,(cadr e)))) + (else + (error "more than one semicolon in argument list")))) + (else + (list (=-to-kw e))))) + +(define (parse-paren s (checked #t)) (car (parse-paren- s checked))) + +;; return (expr . arglist) where arglist is #t iff this isn't just a parenthesized expr +(define (parse-paren- s checked) + (with-bindings + ((range-colon-enabled #t) + (space-sensitive #f) + (where-enabled #t) + (whitespace-newline #t)) + (let ((nxt (require-token s))) + (cond + ((eqv? nxt #\) ) + ;; empty tuple () + (begin (take-token s) '((tuple) . #t))) + ((syntactic-op? nxt) + ;; allow (=) etc. + (let ((tok (take-token s))) + (if (not (eqv? (require-token s) #\) )) + (error (string "invalid identifier name \"" tok "\"")) + (take-token s)) + (if checked (check-identifier tok)) + (cons tok #f))) + ;; allow :(::) as a special case + ((and (not checked) (eq? nxt '|::|) + (let ((spc (ts:space? s))) + (or (and (take-token s) (eqv? (require-token s) #\) )) + (and (ts:put-back! s '|::| spc) #f)))) + (take-token s) ;; take #\) + '(|::| . #f)) + ((eqv? nxt #\;) + (let ((ex (arglist-to-tuple #t #f (parse-arglist s #\) )))) + (cons ex (eq? (car ex) 'tuple)))) + (else + ;; here we parse the first subexpression separately, so + ;; we can look for a comma to see if it's a tuple. + ;; this lets us distinguish (x) from (x,) + (let* ((ex (parse-eq* s)) + (t (require-token s))) + (cond ((eqv? t #\) ) + (take-token s) + ;; value in parentheses (x) + (if (vararg? ex) + (let ((lineno (input-port-line (ts:port s)))) + (if (or accept-dots-without-comma (eq? (with-bindings ((whitespace-newline #f)) + (peek-token s)) + '->)) + (cons ex #t) + (begin (parser-depwarn lineno + (string "(" (deparse (cadr ex)) "...)") + (string "(" (deparse (cadr ex)) "...,)")) + (cons `(tuple ,ex) #t)))) + (cons ex #f))) + ((eqv? t #\,) + ;; tuple (x,) (x,y) etc. + (take-token s) + (cons (arglist-to-tuple #f #t (parse-arglist s #\) ) ex) + #t)) + ((eqv? t #\;) + (cons (arglist-to-tuple + #f + ;; consider `(x...; ` the start of an arglist, since it's not useful as a block + (vararg? ex) + (parse-arglist s #\) #t) + ex) + (vararg? ex))) + ((eq? t 'for) + (expect-space-before s 'for) + (take-token s) + (let ((gen (parse-generator s ex))) + (if (eqv? (require-token s) #\) ) + (take-token s) + (error "expected \")\"")) + (cons gen #f))) + (else + (error "missing comma or ) in argument list"))))))))) (define (not-eof-for delim c) (if (eof-object? c) @@ -2202,67 +2340,7 @@ ;; parens or tuple ((eqv? t #\( ) (take-token s) - (with-bindings ((range-colon-enabled #t) - (space-sensitive #f) - (where-enabled #t) - (whitespace-newline #t)) - (let ((nxt (require-token s))) - (cond - ((eqv? nxt #\) ) - ;; empty tuple () - (begin (take-token s) '(tuple))) - ((syntactic-op? nxt) - ;; allow (=) etc. - (let ((tok (take-token s))) - (if (not (eqv? (require-token s) #\) )) - (error (string "invalid identifier name \"" tok "\"")) - (take-token s)) - (if checked (check-identifier tok)) - tok)) - ;; allow :(::) as a special case - ((and (not checked) (eq? nxt '|::|) - (let ((spc (ts:space? s))) - (or (and (take-token s) (eqv? (require-token s) #\) )) - (and (ts:put-back! s '|::| spc) #f)))) - (take-token s) ;; take #\) - '|::|) - ((eqv? nxt #\;) - (arglist-to-tuple #t #f (parse-arglist s #\) ))) - (else - ;; here we parse the first subexpression separately, so - ;; we can look for a comma to see if it's a tuple. - ;; this lets us distinguish (x) from (x,) - (let* ((ex (parse-eq* s)) - (t (require-token s))) - (cond ((eqv? t #\) ) - (take-token s) - ;; value in parentheses (x) - (if (and (pair? ex) (eq? (car ex) '...)) - (let ((lineno (input-port-line (ts:port s)))) - (if (or accept-dots-without-comma (eq? (with-bindings ((whitespace-newline #f)) - (peek-token s)) - '->)) - ex - (begin (parser-depwarn lineno - (string "(" (deparse (cadr ex)) "...)") - (string "(" (deparse (cadr ex)) "...,)")) - `(tuple ,ex)))) - ex)) - ((eq? t 'for) - (expect-space-before s 'for) - (take-token s) - (let ((gen (parse-generator s ex))) - (if (eqv? (require-token s) #\) ) - (take-token s) - (error "expected \")\"")) - gen)) - (else - ;; tuple (x,) (x,y) (x...) etc. - (if (eqv? t #\, ) - (take-token s) - (if (not (eqv? t #\;)) - (error "missing comma or ) in argument list"))) - (arglist-to-tuple #f (eqv? t #\,) (parse-arglist s #\) ) ex))))))))) + (parse-paren s checked)) ;; cat expression ((eqv? t #\[ ) diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 02bae99181038f..60f6fa80f5b3ea 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -766,7 +766,7 @@ (if (and (pair? body) (eq? (car body) 'block)) (cond ((atom? (cdr body)) `(block ,stmt (null))) - ((and (pair? (cadr body)) (eq? (caadr body) 'line)) + ((linenum? (cadr body)) `(block ,(cadr body) ,stmt ,@(cddr body))) (else `(block ,stmt ,@(cdr body)))) @@ -805,8 +805,7 @@ ,(ctor-body body curlyargs)))))) (define (function-body-lineno body) - (let ((lnos (filter (lambda (e) (and (pair? e) (eq? (car e) 'line))) - body))) + (let ((lnos (filter linenum? body))) (if (null? lnos) '() (car lnos)))) ;; rewrite calls to `new( ... )` to `new` expressions on the appropriate @@ -863,7 +862,7 @@ (fields defs) (separate (lambda (x) (or (symbol? x) (decl? x))) fields0) (let* ((defs (filter (lambda (x) (not (effect-free? x))) defs)) - (locs (if (and (pair? fields0) (pair? (car fields0)) (eq? (caar fields0) 'line)) + (locs (if (and (pair? fields0) (linenum? (car fields0))) (list (car fields0)) '())) (field-names (map decl-var fields)) @@ -1103,18 +1102,7 @@ (set! a (cadr w)))) #f)) (argl (if (pair? a) - (if (eq? (car a) 'tuple) - (map =-to-kw (cdr a)) - (if (eq? (car a) 'block) - (cond ((length= a 1) '()) - ((length= a 2) (list (cadr a))) - ((length= a 3) - (if (assignment? (caddr a)) - `((parameters (kw ,@(cdr (caddr a)))) ,(cadr a)) - `((parameters ,(caddr a)) ,(cadr a)))) - (else - (error "more than one semicolon in argument list"))) - (list (=-to-kw a)))) + (tuple-to-arglist (filter (lambda (x) (not (linenum? x))) a)) (list a))) ;; TODO: always use a specific special name like #anon# or _, then ignore ;; this as a local variable name. @@ -1249,7 +1237,7 @@ (if (null? f) '() (let ((x (car f))) - (cond ((or (symbol? x) (decl? x) (and (pair? x) (eq? (car x) 'line))) + (cond ((or (symbol? x) (decl? x) (linenum? x)) (loop (cdr f))) ((and (assignment? x) (or (symbol? (cadr x)) (decl? (cadr x)))) (error (string "\"" (deparse x) "\" inside type definition is reserved"))) @@ -1904,8 +1892,7 @@ (lambda (e) (cond ((null? (cdr e)) '(null)) ((and (null? (cddr e)) - (not (and (pair? (cadr e)) - (eq? (car (cadr e)) 'line)))) + (not (linenum? (cadr e)))) (expand-forms (cadr e))) (else (cons 'block @@ -1917,7 +1904,12 @@ '.= (lambda (e) - (expand-fuse-broadcast (cadr e) (caddr e))) + `(ifvalue + ,(let ((temp (make-ssavalue))) + `(block ,(expand-forms `(= ,temp ,(caddr e))) + ,(expand-fuse-broadcast (cadr e) temp) + ,temp)) + ,(expand-fuse-broadcast (cadr e) (caddr e)))) '|<:| (lambda (e) (expand-forms `(call |<:| ,@(cdr e)))) @@ -3619,7 +3611,7 @@ f(x) = yt(x) ((block body) (let* ((last-fname filename) (fnm (first-non-meta e)) - (fname (if (and (length> e 1) (pair? fnm) (eq? (car fnm) 'line) + (fname (if (and (length> e 1) (linenum? fnm) (length> fnm 2)) (caddr fnm) filename)) @@ -3664,6 +3656,10 @@ f(x) = yt(x) (if value (compile (cadr e) break-labels value tail) #f)) + ((ifvalue) + (if value + (syntax-deprecation "using the value of `.=`" "" current-loc)) + (compile (caddr e) break-labels value tail)) ((if elseif) (let ((test `(gotoifnot ,(compile-cond (cadr e) break-labels) _)) (end-jump `(goto _)) diff --git a/src/julia.h b/src/julia.h index 688f303818589e..9b11afdfffd80a 100644 --- a/src/julia.h +++ b/src/julia.h @@ -598,6 +598,8 @@ extern JL_DLLEXPORT jl_datatype_t *jl_globalref_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_linenumbernode_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_labelnode_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_gotonode_type JL_GLOBALLY_ROOTED; +extern JL_DLLEXPORT jl_datatype_t *jl_phinode_type JL_GLOBALLY_ROOTED; +extern JL_DLLEXPORT jl_datatype_t *jl_pinode_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_quotenode_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_newvarnode_type JL_GLOBALLY_ROOTED; extern JL_DLLEXPORT jl_datatype_t *jl_intrinsic_type JL_GLOBALLY_ROOTED; @@ -940,6 +942,8 @@ static inline int jl_is_layout_opaque(const jl_datatype_layout_t *l) JL_NOTSAFEP #define jl_is_globalref(v) jl_typeis(v,jl_globalref_type) #define jl_is_labelnode(v) jl_typeis(v,jl_labelnode_type) #define jl_is_gotonode(v) jl_typeis(v,jl_gotonode_type) +#define jl_is_pinode(v) jl_typeis(v,jl_pinode_type) +#define jl_is_phinode(v) jl_typeis(v,jl_phinode_type) #define jl_is_quotenode(v) jl_typeis(v,jl_quotenode_type) #define jl_is_newvarnode(v) jl_typeis(v,jl_newvarnode_type) #define jl_is_linenode(v) jl_typeis(v,jl_linenumbernode_type) @@ -1342,7 +1346,7 @@ STATIC_INLINE jl_function_t *jl_get_function(jl_module_t *m, const char *name) int jl_is_submodule(jl_module_t *child, jl_module_t *parent); // eq hash tables -JL_DLLEXPORT jl_array_t *jl_eqtable_put(jl_array_t *h, void *key, void *val); +JL_DLLEXPORT jl_array_t *jl_eqtable_put(jl_array_t *h, void *key, void *val, int *inserted); JL_DLLEXPORT jl_value_t *jl_eqtable_get(jl_array_t *h, void *key, jl_value_t *deflt); @@ -1446,6 +1450,7 @@ JL_DLLEXPORT jl_value_t *jl_parse_string(const char *str, size_t len, JL_DLLEXPORT jl_value_t *jl_load_file_string(const char *text, size_t len, char *filename, jl_module_t *inmodule); JL_DLLEXPORT jl_value_t *jl_expand(jl_value_t *expr, jl_module_t *inmodule); +JL_DLLEXPORT jl_value_t *jl_expand_stmt(jl_value_t *expr, jl_module_t *inmodule); JL_DLLEXPORT jl_value_t *jl_eval_string(const char *str); // external libraries diff --git a/src/julia_internal.h b/src/julia_internal.h index 283d87c80ce47c..ae46a1df43480e 100644 --- a/src/julia_internal.h +++ b/src/julia_internal.h @@ -1007,6 +1007,7 @@ extern jl_sym_t *export_sym; extern jl_sym_t *import_sym; extern jl_sym_t *importall_sym; extern jl_sym_t *using_sym; extern jl_sym_t *goto_sym; extern jl_sym_t *goto_ifnot_sym; extern jl_sym_t *label_sym; extern jl_sym_t *return_sym; +extern jl_sym_t *unreachable_sym; extern jl_sym_t *lambda_sym; extern jl_sym_t *assign_sym; extern jl_sym_t *method_sym; extern jl_sym_t *slot_sym; extern jl_sym_t *enter_sym; extern jl_sym_t *leave_sym; @@ -1031,6 +1032,7 @@ extern jl_sym_t *boundscheck_sym; extern jl_sym_t *gc_preserve_begin_sym; extern jl_sym_t *gc_preserve_end_sym; extern jl_sym_t *generated_sym; extern jl_sym_t *generated_only_sym; +extern jl_sym_t *throw_undef_if_not_sym; struct _jl_sysimg_fptrs_t; diff --git a/src/llvm-multiversioning.cpp b/src/llvm-multiversioning.cpp index 1121a05eb3d23f..a4457fbea5ec95 100644 --- a/src/llvm-multiversioning.cpp +++ b/src/llvm-multiversioning.cpp @@ -1025,6 +1025,9 @@ bool MultiVersioning::runOnModule(Module &M) // * Cloned function -> Original function (add as we clone functions) // * Original function -> Base function (target specific and updated by LLVM) // * ID -> relocation slots (const). + if (M.getName() == "sysimage") + return false; + CloneCtx clone(this, M); // Collect a list of original functions and clone base functions diff --git a/src/module.c b/src/module.c index 4f21408fa7626d..ea62a300ce56b5 100644 --- a/src/module.c +++ b/src/module.c @@ -648,7 +648,7 @@ JL_DLLEXPORT jl_value_t *jl_module_names(jl_module_t *m, int all, int imported) int hidden = jl_symbol_name(b->name)[0]=='#'; if ((b->exportp || (imported && b->imported) || - ((b->owner == m) && (all || m == jl_main_module))) && + (b->owner == m && !b->imported && (all || m == jl_main_module))) && (all || (!b->deprecated && !hidden))) { jl_array_grow_end(a, 1); //XXX: change to jl_arrayset if array storage allocation for Array{Symbols,1} changes: diff --git a/src/precompile.c b/src/precompile.c index 24293fb3ab97fa..74160639a637ed 100644 --- a/src/precompile.c +++ b/src/precompile.c @@ -311,7 +311,12 @@ static int precompile_enq_specialization_(jl_typemap_entry_t *l, void *closure) { if (jl_is_method_instance(l->func.value) && l->func.linfo->functionObjectsDecls.functionObject == NULL && - l->func.linfo->jlcall_api != JL_API_CONST) + l->func.linfo->jlcall_api != JL_API_CONST && + (l->func.linfo->fptr || + (l->func.linfo->inferred && + l->func.linfo->inferred != jl_nothing && + jl_ast_flag_inferred((jl_array_t*)l->func.linfo->inferred) && + !jl_ast_flag_inlineable((jl_array_t*)l->func.linfo->inferred)))) jl_array_ptr_1d_push((jl_array_t*)closure, (jl_value_t*)l->sig); return 1; } diff --git a/src/rtutils.c b/src/rtutils.c index 4bd3142cd9f852..22a1e8b1fa5ad6 100644 --- a/src/rtutils.c +++ b/src/rtutils.c @@ -471,14 +471,14 @@ JL_DLLEXPORT void jl_flush_cstdio(void) JL_DLLEXPORT jl_value_t *jl_stdout_obj(void) { if (jl_base_module == NULL) return NULL; - jl_value_t *stdout_obj = jl_get_global(jl_base_module, jl_symbol("STDOUT")); + jl_value_t *stdout_obj = jl_get_global(jl_base_module, jl_symbol("stdout")); return stdout_obj; } JL_DLLEXPORT jl_value_t *jl_stderr_obj(void) { if (jl_base_module == NULL) return NULL; - jl_value_t *stderr_obj = jl_get_global(jl_base_module, jl_symbol("STDERR")); + jl_value_t *stderr_obj = jl_get_global(jl_base_module, jl_symbol("stderr")); return stderr_obj; } @@ -821,8 +821,16 @@ static size_t jl_static_show_x_(JL_STREAM *out, jl_value_t *v, jl_datatype_t *vt } } else if (jl_is_array_type(vt)) { - n += jl_static_show_x(out, (jl_value_t*)vt, depth); - n += jl_printf(out, "["); + n += jl_printf(out, "Array{"); + n += jl_static_show_x(out, (jl_value_t*)jl_tparam0(vt), depth); + n += jl_printf(out, ", ("); + size_t i, ndims = jl_array_ndims(v); + if (ndims == 1) + n += jl_printf(out, "%" PRIdPTR ",", jl_array_dim0(v)); + else + for (i = 0; i < ndims; i++) + n += jl_printf(out, (i > 0 ? ", %" PRIdPTR : "%" PRIdPTR), jl_array_dim(v, i)); + n += jl_printf(out, ")}["); size_t j, tlen = jl_array_len(v); jl_array_t *av = (jl_array_t*)v; jl_datatype_t *el_type = (jl_datatype_t*)jl_tparam0(vt); diff --git a/src/signals-unix.c b/src/signals-unix.c index ac66bb6a58e8ed..c96b306985bbf4 100644 --- a/src/signals-unix.c +++ b/src/signals-unix.c @@ -22,12 +22,18 @@ // Figure out the best signals/timers to use for this platform #ifdef __APPLE__ // Darwin's mach ports allow signal-free thread management #define HAVE_MACH +#define HAVE_KEVENT #elif defined(__FreeBSD__) // generic bsd #define HAVE_ITIMER +#define HAVE_KEVENT #else // generic linux #define HAVE_TIMER #endif +#ifdef HAVE_KEVENT +#include +#endif + // 8M signal stack, same as default stack size and enough // for reasonable finalizers. // Should also be enough for parallel GC when we have it =) @@ -174,7 +180,7 @@ static int is_addr_on_stack(jl_ptls_t ptls, void *addr) #endif } -void sigdie_handler(int sig, siginfo_t *info, void *context) +static void sigdie_handler(int sig, siginfo_t *info, void *context) { jl_ptls_t ptls = jl_get_ptls_states(); sigset_t sset; @@ -511,7 +517,7 @@ void jl_install_thread_signal_handler(jl_ptls_t ptls) ptls->signal_stack = signal_stack; } -void jl_sigsetset(sigset_t *sset) +static void jl_sigsetset(sigset_t *sset) { sigemptyset(sset); sigaddset(sset, SIGINT); @@ -528,6 +534,23 @@ void jl_sigsetset(sigset_t *sset) #endif } +#ifdef HAVE_KEVENT +static void kqueue_signal(int *sigqueue, struct kevent *ev, int sig) +{ + if (*sigqueue == -1) + return; + EV_SET(ev, sig, EVFILT_SIGNAL, EV_ADD, 0, 0, 0); + if (kevent(*sigqueue, ev, 1, NULL, 0, NULL)) { + perror("signal kevent"); + close(*sigqueue); + *sigqueue = -1; + } + else { + signal(sig, SIG_IGN); + } +} +#endif + static void *signal_listener(void *arg) { static uintptr_t bt_data[JL_MAX_BT_SIZE + 1]; @@ -535,14 +558,52 @@ static void *signal_listener(void *arg) sigset_t sset; int sig, critical, profile; jl_sigsetset(&sset); +#ifdef HAVE_KEVENT + struct kevent ev; + int sigqueue = kqueue(); + if (sigqueue == -1) { + perror("signal kqueue"); + } + else { + kqueue_signal(&sigqueue, &ev, SIGINT); + kqueue_signal(&sigqueue, &ev, SIGTERM); + kqueue_signal(&sigqueue, &ev, SIGABRT); + kqueue_signal(&sigqueue, &ev, SIGQUIT); +#ifdef SIGINFO + kqueue_signal(&sigqueue, &ev, SIGINFO); +#else + kqueue_signal(&sigqueue, &ev, SIGUSR1); +#endif +#ifdef HAVE_ITIMER + kqueue_signal(&sigqueue, &ev, SIGPROF); +#endif + } +#endif while (1) { profile = 0; sig = 0; errno = 0; +#ifdef HAVE_KEVENT + if (sigqueue != -1) { + int nevents = kevent(sigqueue, NULL, 0, &ev, 1, NULL); + if (nevents == -1) { + if (errno == EINTR) + continue; + perror("signal kevent"); + } + if (nevents != 1) { + close(sigqueue); + sigqueue = -1; + continue; + } + sig = ev.ident; + } + else +#endif if (sigwait(&sset, &sig)) { sig = SIGABRT; // this branch can't occur, unless we had stack memory corruption of sset } - if (!sig || errno == EINTR) { + else if (!sig || errno == EINTR) { // This should never happen, but it has been observed to occur // when this thread gets used to handle run a signal handler (without SA_RESTART). // It would be nice to prohibit the kernel from doing that, by blocking signals on this thread, @@ -668,7 +729,7 @@ void restore_signals(void) } } -void fpe_handler(int sig, siginfo_t *info, void *context) +static void fpe_handler(int sig, siginfo_t *info, void *context) { (void)info; jl_ptls_t ptls = jl_get_ptls_states(); @@ -676,7 +737,7 @@ void fpe_handler(int sig, siginfo_t *info, void *context) jl_throw_in_ctx(ptls, jl_diverror_exception, context); } -void sigint_handler(int sig) +static void sigint_handler(int sig) { jl_sigint_passed = 1; } diff --git a/src/staticdata.c b/src/staticdata.c index 790d19cf50dc51..76c88b49912132 100644 --- a/src/staticdata.c +++ b/src/staticdata.c @@ -1569,9 +1569,11 @@ static void jl_init_serializer2(int for_serialize) jl_module_type, jl_tvar_type, jl_method_instance_type, jl_method_type, jl_emptysvec, jl_emptytuple, jl_false, jl_true, jl_nothing, jl_any_type, call_sym, invoke_sym, goto_ifnot_sym, return_sym, body_sym, line_sym, + unreachable_sym, lambda_sym, jl_symbol("tuple"), assign_sym, jl_labelnode_type, jl_linenumbernode_type, jl_gotonode_type, jl_quotenode_type, + jl_pinode_type, jl_phinode_type, jl_type_type, jl_bottom_type, jl_ref_type, jl_pointer_type, jl_vararg_type, jl_abstractarray_type, jl_densearray_type, jl_void_type, jl_function_type, jl_typeofbottom_type, @@ -1596,6 +1598,7 @@ static void jl_init_serializer2(int for_serialize) jl_unionall_type->name, jl_intrinsic_type->name, jl_task_type->name, jl_labelnode_type->name, jl_linenumbernode_type->name, jl_builtin_type->name, jl_gotonode_type->name, jl_quotenode_type->name, + jl_pinode_type->name, jl_phinode_type->name, jl_globalref_type->name, jl_typeofbottom_type->name, jl_string_type->name, jl_abstractstring_type->name, jl_namedtuple_type, jl_namedtuple_typename, diff --git a/src/table.c b/src/table.c index fc136403ad93f5..3cea45d6aea2ce 100644 --- a/src/table.c +++ b/src/table.c @@ -8,7 +8,7 @@ #define keyhash(k) jl_object_id(k) #define h2index(hv,sz) (size_t)(((hv) & ((sz)-1))*2) -static void **jl_table_lookup_bp(jl_array_t **pa, void *key); +static void **jl_table_lookup_bp(jl_array_t **pa, void *key, int *inserted); JL_DLLEXPORT jl_array_t *jl_idtable_rehash(jl_array_t *a, size_t newsz) { @@ -23,7 +23,7 @@ JL_DLLEXPORT jl_array_t *jl_idtable_rehash(jl_array_t *a, size_t newsz) JL_GC_PUSH1(&newa); for(i=0; i < sz; i+=2) { if (ol[i+1] != NULL) { - (*jl_table_lookup_bp(&newa, ol[i])) = ol[i+1]; + (*jl_table_lookup_bp(&newa, ol[i], NULL)) = ol[i+1]; jl_gc_wb(newa, ol[i+1]); // it is however necessary here because allocation // can (and will) occur in a recursive call inside table_lookup_bp @@ -37,7 +37,7 @@ JL_DLLEXPORT jl_array_t *jl_idtable_rehash(jl_array_t *a, size_t newsz) return newa; } -static void **jl_table_lookup_bp(jl_array_t **pa, void *key) +static void **jl_table_lookup_bp(jl_array_t **pa, void *key, int *inserted) { // pa points to a **rooted** gc frame slot uint_t hv; @@ -48,6 +48,9 @@ static void **jl_table_lookup_bp(jl_array_t **pa, void *key) size_t maxprobe = max_probe(sz); void **tab = (void**)a->data; + if (inserted) + *inserted = 0; + hv = keyhash((jl_value_t*)key); retry_bp: iter = 0; @@ -58,6 +61,8 @@ static void **jl_table_lookup_bp(jl_array_t **pa, void *key) do { if (tab[index+1] == NULL) { tab[index] = key; + if (inserted) + *inserted = 1; jl_gc_wb(a, key); return &tab[index+1]; } @@ -124,11 +129,11 @@ static void **jl_table_peek_bp(jl_array_t *a, void *key) } JL_DLLEXPORT -jl_array_t *jl_eqtable_put(jl_array_t *h, void *key, void *val) +jl_array_t *jl_eqtable_put(jl_array_t *h, void *key, void *val, int *inserted) { JL_GC_PUSH1(&h); // &h may be assigned to in jl_idtable_rehash so it need to be rooted - void **bp = jl_table_lookup_bp(&h, key); + void **bp = jl_table_lookup_bp(&h, key, inserted); *bp = val; jl_gc_wb(h, val); JL_GC_POP(); @@ -145,11 +150,16 @@ jl_value_t *jl_eqtable_get(jl_array_t *h, void *key, jl_value_t *deflt) } JL_DLLEXPORT -jl_value_t *jl_eqtable_pop(jl_array_t *h, void *key, jl_value_t *deflt) +jl_value_t *jl_eqtable_pop(jl_array_t *h, void *key, jl_value_t *deflt, int *found) { void **bp = jl_table_peek_bp(h, key); - if (bp == NULL || *bp == NULL) + if (bp == NULL || *bp == NULL) { + if (found) + *found = 0; return deflt; + } + if (found) + *found = 1; jl_value_t *val = (jl_value_t*)*bp; *(bp-1) = jl_nothing; // clear the key *bp = NULL; diff --git a/src/toplevel.c b/src/toplevel.c index f718d2df401fd2..c8f27868f3ed4b 100644 --- a/src/toplevel.c +++ b/src/toplevel.c @@ -228,7 +228,7 @@ jl_value_t *jl_eval_module_expr(jl_module_t *parent_module, jl_expr_t *ex) for (int i = 0; i < jl_array_len(exprs); i++) { // process toplevel form ptls->world_age = jl_world_counter; - form = jl_expand(jl_array_ptr_ref(exprs, i), newm); + form = jl_expand_stmt(jl_array_ptr_ref(exprs, i), newm); ptls->world_age = jl_world_counter; (void)jl_toplevel_eval_flex(newm, form, 1, 1); } @@ -516,14 +516,23 @@ static jl_method_instance_t *method_instance_for_thunk(jl_code_info_t *src, jl_m static void import_module(jl_module_t *m, jl_module_t *import) { jl_sym_t *name = import->name; + jl_binding_t *b; if (jl_binding_resolved_p(m, name)) { - jl_binding_t *b = jl_get_binding(m, name); + b = jl_get_binding(m, name); if (b->owner != m || (b->value && b->value != (jl_value_t*)import)) { jl_errorf("importing %s into %s conflicts with an existing identifier", jl_symbol_name(name), jl_symbol_name(m->name)); } } - jl_set_const(m, name, (jl_value_t*)import); + else { + b = jl_get_binding_wr(m, name, 1); + b->imported = 1; + } + if (!b->constp) { + b->value = (jl_value_t*)import; + b->constp = 1; + jl_gc_wb(m, (jl_value_t*)import); + } } // replace Base.X with top-level X diff --git a/stdlib/Base64/docs/src/index.md b/stdlib/Base64/docs/src/index.md index 02e7e6b08715d7..b179de0d54128e 100644 --- a/stdlib/Base64/docs/src/index.md +++ b/stdlib/Base64/docs/src/index.md @@ -1,5 +1,9 @@ # Base64 +```@meta +DocTestSetup = :(using Base64) +``` + ```@docs Base64.Base64EncodePipe Base64.base64encode @@ -7,3 +11,7 @@ Base64.Base64DecodePipe Base64.base64decode Base64.stringmime ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Dates/docs/src/index.md b/stdlib/Dates/docs/src/index.md index 40852affcdd696..3a434cc11b7319 100644 --- a/stdlib/Dates/docs/src/index.md +++ b/stdlib/Dates/docs/src/index.md @@ -1,10 +1,632 @@ -# [Dates and Time](@id stdlib-dates) +# Dates -Functionality to handle time and dates is defined in the standard library module `Dates`. -You'll need to import the module using `import Dates` and prefix each -function call with an explicit `Dates.`, e.g. `Dates.dayofweek(dt)`. Alternatively, you can write -`using Dates` to bring all exported functions into `Main` to be used without the `Dates.` -prefix. +```@meta +DocTestSetup = :(using Dates) +``` + +The `Dates` module provides two types for working with dates: [`Date`](@ref) and [`DateTime`](@ref), +representing day and millisecond precision, respectively; both are subtypes of the abstract [`TimeType`](@ref). +The motivation for distinct types is simple: some operations are much simpler, both in terms of +code and mental reasoning, when the complexities of greater precision don't have to be dealt with. +For example, since the [`Date`](@ref) type only resolves to the precision of a single date (i.e. +no hours, minutes, or seconds), normal considerations for time zones, daylight savings/summer +time, and leap seconds are unnecessary and avoided. + +Both [`Date`](@ref) and [`DateTime`](@ref) are basically immutable [`Int64`](@ref) wrappers. +The single `instant` field of either type is actually a `UTInstant{P}` type, which +represents a continuously increasing machine timeline based on the UT second [^1]. The +[`DateTime`](@ref) type is not aware of time zones (*naive*, in Python parlance), +analogous to a *LocalDateTime* in Java 8. Additional time zone functionality +can be added through the [TimeZones.jl package](https://github.com/JuliaTime/TimeZones.jl/), which +compiles the [IANA time zone database](http://www.iana.org/time-zones). Both [`Date`](@ref) and +[`DateTime`](@ref) are based on the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard, which follows the proleptic Gregorian calendar. +One note is that the ISO 8601 standard is particular about BC/BCE dates. In general, the last +day of the BC/BCE era, 1-12-31 BC/BCE, was followed by 1-1-1 AD/CE, thus no year zero exists. +The ISO standard, however, states that 1 BC/BCE is year zero, so `0000-12-31` is the day before +`0001-01-01`, and year `-0001` (yes, negative one for the year) is 2 BC/BCE, year `-0002` is 3 +BC/BCE, etc. + +[^1]: + The notion of the UT second is actually quite fundamental. There are basically two different notions + of time generally accepted, one based on the physical rotation of the earth (one full rotation + = 1 day), the other based on the SI second (a fixed, constant value). These are radically different! + Think about it, a "UT second", as defined relative to the rotation of the earth, may have a different + absolute length depending on the day! Anyway, the fact that [`Date`](@ref) and [`DateTime`](@ref) + are based on UT seconds is a simplifying, yet honest assumption so that things like leap seconds + and all their complexity can be avoided. This basis of time is formally called [UT](https://en.wikipedia.org/wiki/Universal_Time) + or UT1. Basing types on the UT second basically means that every minute has 60 seconds and every + day has 24 hours and leads to more natural calculations when working with calendar dates. + +## Constructors + +[`Date`](@ref) and [`DateTime`](@ref) types can be constructed by integer or [`Period`](@ref) +types, by parsing, or through adjusters (more on those later): + +```jldoctest +julia> DateTime(2013) +2013-01-01T00:00:00 + +julia> DateTime(2013,7) +2013-07-01T00:00:00 + +julia> DateTime(2013,7,1) +2013-07-01T00:00:00 + +julia> DateTime(2013,7,1,12) +2013-07-01T12:00:00 + +julia> DateTime(2013,7,1,12,30) +2013-07-01T12:30:00 + +julia> DateTime(2013,7,1,12,30,59) +2013-07-01T12:30:59 + +julia> DateTime(2013,7,1,12,30,59,1) +2013-07-01T12:30:59.001 + +julia> Date(2013) +2013-01-01 + +julia> Date(2013,7) +2013-07-01 + +julia> Date(2013,7,1) +2013-07-01 + +julia> Date(Dates.Year(2013),Dates.Month(7),Dates.Day(1)) +2013-07-01 + +julia> Date(Dates.Month(7),Dates.Year(2013)) +2013-07-01 +``` + +[`Date`](@ref) or [`DateTime`](@ref) parsing is accomplished by the use of format strings. Format +strings work by the notion of defining *delimited* or *fixed-width* "slots" that contain a period +to parse and passing the text to parse and format string to a [`Date`](@ref) or [`DateTime`](@ref) +constructor, of the form `Date("2015-01-01","y-m-d")` or `DateTime("20150101","yyyymmdd")`. + +Delimited slots are marked by specifying the delimiter the parser should expect between two subsequent +periods; so `"y-m-d"` lets the parser know that between the first and second slots in a date string +like `"2014-07-16"`, it should find the `-` character. The `y`, `m`, and `d` characters let the +parser know which periods to parse in each slot. + +Fixed-width slots are specified by repeating the period character the number of times corresponding +to the width with no delimiter between characters. So `"yyyymmdd"` would correspond to a date +string like `"20140716"`. The parser distinguishes a fixed-width slot by the absence of a delimiter, +noting the transition `"yyyymm"` from one period character to the next. + +Support for text-form month parsing is also supported through the `u` and `U` characters, for +abbreviated and full-length month names, respectively. By default, only English month names are +supported, so `u` corresponds to "Jan", "Feb", "Mar", etc. And `U` corresponds to "January", "February", +"March", etc. Similar to other name=>value mapping functions [`dayname`](@ref) and [`monthname`](@ref), +custom locales can be loaded by passing in the `locale=>Dict{String,Int}` mapping to the `MONTHTOVALUEABBR` +and `MONTHTOVALUE` dicts for abbreviated and full-name month names, respectively. + +One note on parsing performance: using the `Date(date_string,format_string)` function is fine +if only called a few times. If there are many similarly formatted date strings to parse however, +it is much more efficient to first create a [`Dates.DateFormat`](@ref), and pass it instead of +a raw format string. + +```jldoctest +julia> df = DateFormat("y-m-d"); + +julia> dt = Date("2015-01-01",df) +2015-01-01 + +julia> dt2 = Date("2015-01-02",df) +2015-01-02 +``` + +You can also use the `dateformat""` string macro. This macro creates the `DateFormat` object once when the macro is expanded and uses the same `DateFormat` object even if a code snippet is run multiple times. + +```jldoctest +julia> for i = 1:10^5 + Date("2015-01-01", dateformat"y-m-d") + end +``` + +A full suite of parsing and formatting tests and examples is available in [`stdlib/Dates/test/io.jl`](https://github.com/JuliaLang/julia/blob/master/stdlib/Dates/test/io.jl). + +## Durations/Comparisons + +Finding the length of time between two [`Date`](@ref) or [`DateTime`](@ref) is straightforward +given their underlying representation as `UTInstant{Day}` and `UTInstant{Millisecond}`, respectively. +The difference between [`Date`](@ref) is returned in the number of [`Day`](@ref), and [`DateTime`](@ref) +in the number of [`Millisecond`](@ref). Similarly, comparing [`TimeType`](@ref) is a simple matter +of comparing the underlying machine instants (which in turn compares the internal [`Int64`](@ref) values). + +```jldoctest +julia> dt = Date(2012,2,29) +2012-02-29 + +julia> dt2 = Date(2000,2,1) +2000-02-01 + +julia> dump(dt) +Date + instant: Dates.UTInstant{Day} + periods: Day + value: Int64 734562 + +julia> dump(dt2) +Date + instant: Dates.UTInstant{Day} + periods: Day + value: Int64 730151 + +julia> dt > dt2 +true + +julia> dt != dt2 +true + +julia> dt + dt2 +ERROR: MethodError: no method matching +(::Date, ::Date) +[...] + +julia> dt * dt2 +ERROR: MethodError: no method matching *(::Date, ::Date) +[...] + +julia> dt / dt2 +ERROR: MethodError: no method matching /(::Date, ::Date) + +julia> dt - dt2 +4411 days + +julia> dt2 - dt +-4411 days + +julia> dt = DateTime(2012,2,29) +2012-02-29T00:00:00 + +julia> dt2 = DateTime(2000,2,1) +2000-02-01T00:00:00 + +julia> dt - dt2 +381110400000 milliseconds +``` + +## Accessor Functions + +Because the [`Date`](@ref) and [`DateTime`](@ref) types are stored as single [`Int64`](@ref) values, date +parts or fields can be retrieved through accessor functions. The lowercase accessors return the +field as an integer: + +```jldoctest tdate +julia> t = Date(2014, 1, 31) +2014-01-31 + +julia> Dates.year(t) +2014 + +julia> Dates.month(t) +1 + +julia> Dates.week(t) +5 + +julia> Dates.day(t) +31 +``` + +While propercase return the same value in the corresponding [`Period`](@ref) type: + +```jldoctest tdate +julia> Dates.Year(t) +2014 years + +julia> Dates.Day(t) +31 days +``` + +Compound methods are provided, as they provide a measure of efficiency if multiple fields are +needed at the same time: + +```jldoctest tdate +julia> Dates.yearmonth(t) +(2014, 1) + +julia> Dates.monthday(t) +(1, 31) + +julia> Dates.yearmonthday(t) +(2014, 1, 31) +``` + +One may also access the underlying `UTInstant` or integer value: + +```jldoctest tdate +julia> dump(t) +Date + instant: Dates.UTInstant{Day} + periods: Day + value: Int64 735264 + +julia> t.instant +Dates.UTInstant{Day}(735264 days) + +julia> Dates.value(t) +735264 +``` + +## Query Functions + +Query functions provide calendrical information about a [`TimeType`](@ref). They include information +about the day of the week: + +```jldoctest tdate2 +julia> t = Date(2014, 1, 31) +2014-01-31 + +julia> Dates.dayofweek(t) +5 + +julia> Dates.dayname(t) +"Friday" + +julia> Dates.dayofweekofmonth(t) # 5th Friday of January +5 +``` + +Month of the year: + +```jldoctest tdate2 +julia> Dates.monthname(t) +"January" + +julia> Dates.daysinmonth(t) +31 +``` + +As well as information about the [`TimeType`](@ref)'s year and quarter: + +```jldoctest tdate2 +julia> Dates.isleapyear(t) +false + +julia> Dates.dayofyear(t) +31 + +julia> Dates.quarterofyear(t) +1 + +julia> Dates.dayofquarter(t) +31 +``` + +The [`dayname`](@ref) and [`monthname`](@ref) methods can also take an optional `locale` keyword +that can be used to return the name of the day or month of the year for other languages/locales. +There are also versions of these functions returning the abbreviated names, namely +[`dayabbr`](@ref) and [`monthabbr`](@ref). +First the mapping is loaded into the `LOCALES` variable: + +```jldoctest tdate2 +julia> french_months = ["janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre"]; + +julia> french_monts_abbrev = ["janv","févr","mars","avril","mai","juin", + "juil","août","sept","oct","nov","déc"]; + +julia> french_days = ["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"]; + +julia> Dates.LOCALES["french"] = Dates.DateLocale(french_months, french_monts_abbrev, french_days, [""]); +``` + + The above mentioned functions can then be used to perform the queries: + +```jldoctest tdate2 +julia> Dates.dayname(t;locale="french") +"vendredi" + +julia> Dates.monthname(t;locale="french") +"janvier" + +julia> Dates.monthabbr(t;locale="french") +"janv" +``` + +Since the abbreviated versions of the days are not loaded, trying to use the +function `dayabbr` will error. + +```jldoctest tdate2 +julia> Dates.dayabbr(t;locale="french") +ERROR: BoundsError: attempt to access 1-element Array{String,1} at index [5] +Stacktrace: +[...] +``` + + +## TimeType-Period Arithmetic + +It's good practice when using any language/date framework to be familiar with how date-period +arithmetic is handled as there are some [tricky issues](https://codeblog.jonskeet.uk/2010/12/01/the-joys-of-date-time-arithmetic/) +to deal with (though much less so for day-precision types). + +The `Dates` module approach tries to follow the simple principle of trying to change as +little as possible when doing [`Period`](@ref) arithmetic. This approach is also often known as +*calendrical* arithmetic or what you would probably guess if someone were to ask you the same +calculation in a conversation. Why all the fuss about this? Let's take a classic example: add +1 month to January 31st, 2014. What's the answer? Javascript will say [March 3](http://www.markhneedham.com/blog/2009/01/07/javascript-add-a-month-to-a-date/) +(assumes 31 days). PHP says [March 2](https://stackoverflow.com/questions/5760262/php-adding-months-to-a-date-while-not-exceeding-the-last-day-of-the-month) +(assumes 30 days). The fact is, there is no right answer. In the `Dates` module, it gives +the result of February 28th. How does it figure that out? I like to think of the classic 7-7-7 +gambling game in casinos. + +Now just imagine that instead of 7-7-7, the slots are Year-Month-Day, or in our example, 2014-01-31. +When you ask to add 1 month to this date, the month slot is incremented, so now we have 2014-02-31. +Then the day number is checked if it is greater than the last valid day of the new month; if it +is (as in the case above), the day number is adjusted down to the last valid day (28). What are +the ramifications with this approach? Go ahead and add another month to our date, `2014-02-28 + Month(1) == 2014-03-28`. +What? Were you expecting the last day of March? Nope, sorry, remember the 7-7-7 slots. As few +slots as possible are going to change, so we first increment the month slot by 1, 2014-03-28, +and boom, we're done because that's a valid date. On the other hand, if we were to add 2 months +to our original date, 2014-01-31, then we end up with 2014-03-31, as expected. The other ramification +of this approach is a loss in associativity when a specific ordering is forced (i.e. adding things +in different orders results in different outcomes). For example: + +```jldoctest +julia> (Date(2014,1,29)+Dates.Day(1)) + Dates.Month(1) +2014-02-28 + +julia> (Date(2014,1,29)+Dates.Month(1)) + Dates.Day(1) +2014-03-01 +``` + +What's going on there? In the first line, we're adding 1 day to January 29th, which results in +2014-01-30; then we add 1 month, so we get 2014-02-30, which then adjusts down to 2014-02-28. +In the second example, we add 1 month *first*, where we get 2014-02-29, which adjusts down to +2014-02-28, and *then* add 1 day, which results in 2014-03-01. One design principle that helps +in this case is that, in the presence of multiple Periods, the operations will be ordered by the +Periods' *types*, not their value or positional order; this means `Year` will always be added +first, then `Month`, then `Week`, etc. Hence the following *does* result in associativity and +Just Works: + +```jldoctest +julia> Date(2014,1,29) + Dates.Day(1) + Dates.Month(1) +2014-03-01 + +julia> Date(2014,1,29) + Dates.Month(1) + Dates.Day(1) +2014-03-01 +``` + +Tricky? Perhaps. What is an innocent `Dates` user to do? The bottom line is to be aware +that explicitly forcing a certain associativity, when dealing with months, may lead to some unexpected +results, but otherwise, everything should work as expected. Thankfully, that's pretty much the +extent of the odd cases in date-period arithmetic when dealing with time in UT (avoiding the "joys" +of dealing with daylight savings, leap seconds, etc.). + +As a bonus, all period arithmetic objects work directly with ranges: + +```jldoctest +julia> dr = Date(2014,1,29):Date(2014,2,3) +2014-01-29:1 day:2014-02-03 + +julia> collect(dr) +6-element Array{Date,1}: + 2014-01-29 + 2014-01-30 + 2014-01-31 + 2014-02-01 + 2014-02-02 + 2014-02-03 + +julia> dr = Date(2014,1,29):Dates.Month(1):Date(2014,07,29) +2014-01-29:1 month:2014-07-29 + +julia> collect(dr) +7-element Array{Date,1}: + 2014-01-29 + 2014-02-28 + 2014-03-29 + 2014-04-29 + 2014-05-29 + 2014-06-29 + 2014-07-29 +``` + +## Adjuster Functions + +As convenient as date-period arithmetics are, often the kinds of calculations needed on dates +take on a *calendrical* or *temporal* nature rather than a fixed number of periods. Holidays are +a perfect example; most follow rules such as "Memorial Day = Last Monday of May", or "Thanksgiving += 4th Thursday of November". These kinds of temporal expressions deal with rules relative to the +calendar, like first or last of the month, next Tuesday, or the first and third Wednesdays, etc. + +The `Dates` module provides the *adjuster* API through several convenient methods that +aid in simply and succinctly expressing temporal rules. The first group of adjuster methods deal +with the first and last of weeks, months, quarters, and years. They each take a single [`TimeType`](@ref) +as input and return or *adjust to* the first or last of the desired period relative to the input. + +```jldoctest +julia> Dates.firstdayofweek(Date(2014,7,16)) # Adjusts the input to the Monday of the input's week +2014-07-14 + +julia> Dates.lastdayofmonth(Date(2014,7,16)) # Adjusts to the last day of the input's month +2014-07-31 + +julia> Dates.lastdayofquarter(Date(2014,7,16)) # Adjusts to the last day of the input's quarter +2014-09-30 +``` + +The next two higher-order methods, [`tonext`](@ref), and [`toprev`](@ref), generalize working +with temporal expressions by taking a `DateFunction` as first argument, along with a starting +[`TimeType`](@ref). A `DateFunction` is just a function, usually anonymous, that takes a single +[`TimeType`](@ref) as input and returns a [`Bool`](@ref), `true` indicating a satisfied +adjustment criterion. +For example: + +```jldoctest +julia> istuesday = x->Dates.dayofweek(x) == Dates.Tuesday; # Returns true if the day of the week of x is Tuesday + +julia> Dates.tonext(istuesday, Date(2014,7,13)) # 2014-07-13 is a Sunday +2014-07-15 + +julia> Dates.tonext(Date(2014,7,13), Dates.Tuesday) # Convenience method provided for day of the week adjustments +2014-07-15 +``` + +This is useful with the do-block syntax for more complex temporal expressions: + +```jldoctest +julia> Dates.tonext(Date(2014,7,13)) do x + # Return true on the 4th Thursday of November (Thanksgiving) + Dates.dayofweek(x) == Dates.Thursday && + Dates.dayofweekofmonth(x) == 4 && + Dates.month(x) == Dates.November + end +2014-11-27 +``` + +The [`Base.filter`](@ref) method can be used to obtain all valid dates/moments in a specified +range: + +```jldoctest +# Pittsburgh street cleaning; Every 2nd Tuesday from April to November +# Date range from January 1st, 2014 to January 1st, 2015 +julia> dr = Dates.Date(2014):Dates.Date(2015); + +julia> filter(dr) do x + Dates.dayofweek(x) == Dates.Tue && + Dates.April <= Dates.month(x) <= Dates.Nov && + Dates.dayofweekofmonth(x) == 2 + end +8-element Array{Date,1}: + 2014-04-08 + 2014-05-13 + 2014-06-10 + 2014-07-08 + 2014-08-12 + 2014-09-09 + 2014-10-14 + 2014-11-11 +``` + +Additional examples and tests are available in [`stdlib/Dates/test/adjusters.jl`](https://github.com/JuliaLang/julia/blob/master/stdlib/Dates/test/adjusters.jl). + +## Period Types + +Periods are a human view of discrete, sometimes irregular durations of time. Consider 1 month; +it could represent, in days, a value of 28, 29, 30, or 31 depending on the year and month context. +Or a year could represent 365 or 366 days in the case of a leap year. [`Period`](@ref) types are +simple [`Int64`](@ref) wrappers and are constructed by wrapping any `Int64` convertible type, i.e. `Year(1)` +or `Month(3.0)`. Arithmetic between [`Period`](@ref) of the same type behave like integers, and +limited `Period-Real` arithmetic is available. + +```jldoctest +julia> y1 = Dates.Year(1) +1 year + +julia> y2 = Dates.Year(2) +2 years + +julia> y3 = Dates.Year(10) +10 years + +julia> y1 + y2 +3 years + +julia> div(y3,y2) +5 + +julia> y3 - y2 +8 years + +julia> y3 % y2 +0 years + +julia> div(y3,3) # mirrors integer division +3 years +``` + +## Rounding + +[`Date`](@ref) and [`DateTime`](@ref) values can be rounded to a specified resolution (e.g., 1 +month or 15 minutes) with [`floor`](@ref), [`ceil`](@ref), or [`round`](@ref): + +```jldoctest +julia> floor(Date(1985, 8, 16), Dates.Month) +1985-08-01 + +julia> ceil(DateTime(2013, 2, 13, 0, 31, 20), Dates.Minute(15)) +2013-02-13T00:45:00 + +julia> round(DateTime(2016, 8, 6, 20, 15), Dates.Day) +2016-08-07T00:00:00 +``` + +Unlike the numeric [`round`](@ref) method, which breaks ties toward the even number by default, +the [`TimeType`](@ref)[`round`](@ref) method uses the `RoundNearestTiesUp` rounding mode. (It's +difficult to guess what breaking ties to nearest "even" [`TimeType`](@ref) would entail.) Further +details on the available `RoundingMode` s can be found in the [API reference](@ref stdlib-dates-api). + +Rounding should generally behave as expected, but there are a few cases in which the expected +behaviour is not obvious. + +### Rounding Epoch + +In many cases, the resolution specified for rounding (e.g., `Dates.Second(30)`) divides evenly +into the next largest period (in this case, `Dates.Minute(1)`). But rounding behaviour in cases +in which this is not true may lead to confusion. What is the expected result of rounding a [`DateTime`](@ref) +to the nearest 10 hours? + +```jldoctest +julia> round(DateTime(2016, 7, 17, 11, 55), Dates.Hour(10)) +2016-07-17T12:00:00 +``` + +That may seem confusing, given that the hour (12) is not divisible by 10. The reason that `2016-07-17T12:00:00` +was chosen is that it is 17,676,660 hours after `0000-01-01T00:00:00`, and 17,676,660 is divisible +by 10. + +As Julia [`Date`](@ref) and [`DateTime`](@ref) values are represented according to the ISO 8601 +standard, `0000-01-01T00:00:00` was chosen as base (or "rounding epoch") from which to begin the +count of days (and milliseconds) used in rounding calculations. (Note that this differs slightly +from Julia's internal representation of [`Date`](@ref) s using Rata Die notation; but since the +ISO 8601 standard is most visible to the end user, `0000-01-01T00:00:00` was chosen as the rounding +epoch instead of the `0000-12-31T00:00:00` used internally to minimize confusion.) + +The only exception to the use of `0000-01-01T00:00:00` as the rounding epoch is when rounding +to weeks. Rounding to the nearest week will always return a Monday (the first day of the week +as specified by ISO 8601). For this reason, we use `0000-01-03T00:00:00` (the first day of the +first week of year 0000, as defined by ISO 8601) as the base when rounding to a number of weeks. + +Here is a related case in which the expected behaviour is not necessarily obvious: What happens +when we round to the nearest `P(2)`, where `P` is a [`Period`](@ref) type? In some cases (specifically, +when `P <: Dates.TimePeriod`) the answer is clear: + +```jldoctest +julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Hour(2)) +2016-07-17T08:00:00 + +julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Minute(2)) +2016-07-17T08:56:00 +``` + +This seems obvious, because two of each of these periods still divides evenly into the next larger +order period. But in the case of two months (which still divides evenly into one year), the answer +may be surprising: + +```jldoctest +julia> round(DateTime(2016, 7, 17, 8, 55, 30), Dates.Month(2)) +2016-07-01T00:00:00 +``` + +Why round to the first day in July, even though it is month 7 (an odd number)? The key is that +months are 1-indexed (the first month is assigned 1), unlike hours, minutes, seconds, and milliseconds +(the first of which are assigned 0). + +This means that rounding a [`DateTime`](@ref) to an even multiple of seconds, minutes, hours, +or years (because the ISO 8601 specification includes a year zero) will result in a [`DateTime`](@ref) +with an even value in that field, while rounding a [`DateTime`](@ref) to an even multiple of months +will result in the months field having an odd value. Because both months and years may contain +an irregular number of days, whether rounding to an even number of days will result in an even +value in the days field is uncertain. + +See the [API reference](@ref stdlib-dates-api) for additional information +on methods exported from the `Dates` module. + +# [API reference](@id stdlib-dates-api) ## Dates and Time Types @@ -192,3 +814,7 @@ Months of the Year: | `October` | `Oct` | 10 | | `November` | `Nov` | 11 | | `December` | `Dec` | 12 | + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Dates/src/io.jl b/stdlib/Dates/src/io.jl index 0efef534b75104..ffcde456ddf490 100644 --- a/stdlib/Dates/src/io.jl +++ b/stdlib/Dates/src/io.jl @@ -131,7 +131,7 @@ end for (c, fn) in zip("YmdHMS", [year, month, day, hour, minute, second]) @eval function format(io, d::DatePart{$c}, dt) - write(io, dec($fn(dt), d.width)) + write(io, string($fn(dt), base = 10, pad = d.width)) end end @@ -153,7 +153,7 @@ end # the last n digits of y # will be 0 padded if y has less than n digits - str = dec(y, n) + str = string(y, base = 10, pad = n) l = lastindex(str) if l == n # fast path @@ -166,11 +166,11 @@ end function format(io, d::DatePart{'s'}, dt) ms = millisecond(dt) if ms % 100 == 0 - str = dec(div(ms, 100), 1) + str = string(div(ms, 100)) elseif ms % 10 == 0 - str = dec(div(ms, 10), 2) + str = string(div(ms, 10), pad = 2) else - str = dec(ms, 3) + str = string(ms, pad = 3) end write(io, rpad(str, d.width, '0')) diff --git a/stdlib/Dates/src/rounding.jl b/stdlib/Dates/src/rounding.jl index f575f71e9760a1..fdd2f7658f555b 100644 --- a/stdlib/Dates/src/rounding.jl +++ b/stdlib/Dates/src/rounding.jl @@ -170,7 +170,7 @@ julia> ceil(Dates.Minute(44), Dates.Minute(15)) 45 minutes julia> ceil(Dates.Hour(36), Dates.Day) -3 days +2 days ``` Rounding to a `precision` of `Month`s or `Year`s is not supported, as these `Period`s are of @@ -250,7 +250,7 @@ julia> round(Dates.Minute(44), Dates.Minute(15)) 45 minutes julia> round(Dates.Hour(36), Dates.Day) -3 days +2 days ``` Valid rounding modes for `round(::Period, ::T, ::RoundingMode)` are `RoundNearestTiesUp` diff --git a/stdlib/DelimitedFiles/docs/src/index.md b/stdlib/DelimitedFiles/docs/src/index.md index 7cd38cb01b25d1..2a343d5269eaf4 100644 --- a/stdlib/DelimitedFiles/docs/src/index.md +++ b/stdlib/DelimitedFiles/docs/src/index.md @@ -1,5 +1,9 @@ # Delimited Files +```@meta +DocTestSetup = :(using DelimitedFiles) +``` + ```@docs DelimitedFiles.readdlm(::Any, ::Char, ::Type, ::Char) DelimitedFiles.readdlm(::Any, ::Char, ::Char) @@ -9,3 +13,7 @@ DelimitedFiles.readdlm(::Any, ::Type) DelimitedFiles.readdlm(::Any) DelimitedFiles.writedlm ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/DelimitedFiles/src/DelimitedFiles.jl b/stdlib/DelimitedFiles/src/DelimitedFiles.jl index 09ae2f856f228b..904ab945669b56 100644 --- a/stdlib/DelimitedFiles/src/DelimitedFiles.jl +++ b/stdlib/DelimitedFiles/src/DelimitedFiles.jl @@ -824,6 +824,8 @@ julia> readdlm("delim_file.txt", '\\t', Int, '\\n') 2 6 3 7 4 8 + +julia> rm("delim_file.txt") ``` """ writedlm(io, a; opts...) = writedlm(io, a, '\t'; opts...) diff --git a/stdlib/Distributed/Project.toml b/stdlib/Distributed/Project.toml index f4b1d7014bf496..f369cc1bf1e3a6 100644 --- a/stdlib/Distributed/Project.toml +++ b/stdlib/Distributed/Project.toml @@ -5,3 +5,4 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +Sockets = "6462fe0b-24de-5631-8697-dd941f90decc" diff --git a/stdlib/Distributed/docs/src/index.md b/stdlib/Distributed/docs/src/index.md index 47d4c23fa1e0d8..da0b822e1d0261 100644 --- a/stdlib/Distributed/docs/src/index.md +++ b/stdlib/Distributed/docs/src/index.md @@ -1,5 +1,9 @@ # Distributed Computing +```@meta +DocTestSetup = :(using Distributed) +``` + ```@docs Distributed.addprocs Distributed.nprocs @@ -67,3 +71,7 @@ Distributed.init_worker Distributed.start_worker Distributed.process_messages ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Distributed/src/Distributed.jl b/stdlib/Distributed/src/Distributed.jl index 02f1c86aae1e22..021d2203021070 100644 --- a/stdlib/Distributed/src/Distributed.jl +++ b/stdlib/Distributed/src/Distributed.jl @@ -9,7 +9,7 @@ module Distributed # imports for extension import Base: getindex, wait, put!, take!, fetch, isready, push!, length, - hash, ==, connect, kill, close, showerror + hash, ==, kill, close, showerror # imports for use using Base: Process, Semaphore, JLOptions, AnyDict, buffer_writes, wait_connected, @@ -18,8 +18,9 @@ using Base: Process, Semaphore, JLOptions, AnyDict, buffer_writes, wait_connecte AsyncGenerator, acquire, release, invokelatest, shell_escape_posixly, uv_error, coalesce, notnothing -using Serialization +using Serialization, Sockets import Serialization: serialize, deserialize +import Sockets: connect # NOTE: clusterserialize.jl imports additional symbols from Serialization for use diff --git a/stdlib/Distributed/src/cluster.jl b/stdlib/Distributed/src/cluster.jl index 65bed61acfda8e..6b7545bed4f2a8 100644 --- a/stdlib/Distributed/src/cluster.jl +++ b/stdlib/Distributed/src/cluster.jl @@ -173,24 +173,24 @@ worker_timeout() = parse(Float64, get(ENV, "JULIA_WORKER_TIMEOUT", "60.0")) ## worker creation and setup ## """ - start_worker([out::IO=STDOUT], cookie::AbstractString=readline(STDIN)) + start_worker([out::IO=stdout], cookie::AbstractString=readline(stdin)) `start_worker` is an internal function which is the default entry point for worker processes connecting via TCP/IP. It sets up the process as a Julia cluster worker. -host:port information is written to stream `out` (defaults to STDOUT). +host:port information is written to stream `out` (defaults to stdout). -The function closes STDIN (after reading the cookie if required), redirects STDERR to STDOUT, +The function closes stdin (after reading the cookie if required), redirects stderr to stdout, listens on a free port (or if specified, the port in the `--bind-to` command line option) and schedules tasks to process incoming TCP connections and requests. It does not return. """ -start_worker(cookie::AbstractString=readline(STDIN)) = start_worker(STDOUT, cookie) -function start_worker(out::IO, cookie::AbstractString=readline(STDIN)) - close(STDIN) # workers will not use it - redirect_stderr(STDOUT) +start_worker(cookie::AbstractString=readline(stdin)) = start_worker(stdout, cookie) +function start_worker(out::IO, cookie::AbstractString=readline(stdin)) + close(stdin) # workers will not use it + redirect_stderr(stdout) init_worker(cookie) interface = IPv4(LPROC.bind_addr) @@ -206,7 +206,7 @@ function start_worker(out::IO, cookie::AbstractString=readline(STDIN)) process_messages(client, client, true) end print(out, "julia_worker:") # print header - print(out, "$(dec(LPROC.bind_port))#") # print port + print(out, "$(string(LPROC.bind_port))#") # print port print(out, LPROC.bind_addr) print(out, '\n') flush(out) @@ -223,7 +223,7 @@ function start_worker(out::IO, cookie::AbstractString=readline(STDIN)) check_master_connect() while true; wait(); end catch err - print(STDERR, "unhandled exception on $(myid()): $(err)\nexiting.\n") + print(stderr, "unhandled exception on $(myid()): $(err)\nexiting.\n") end close(sock) @@ -235,8 +235,8 @@ function redirect_worker_output(ident, stream) @schedule while !eof(stream) line = readline(stream) if startswith(line, " From worker ") - # STDOUT's of "additional" workers started from an initial worker on a host are not available - # on the master directly - they are routed via the initial worker's STDOUT. + # stdout's of "additional" workers started from an initial worker on a host are not available + # on the master directly - they are routed via the initial worker's stdout. println(line) else println(" From worker $(ident):\t$line") @@ -324,9 +324,9 @@ function init_worker(cookie::AbstractString, manager::ClusterManager=DefaultClus cluster_manager = manager # Since our pid has yet to be set, ensure no RemoteChannel / Future have been created or addprocs() called. - assert(nprocs() <= 1) - assert(isempty(PGRP.refs)) - assert(isempty(client_refs)) + @assert nprocs() <= 1 + @assert isempty(PGRP.refs) + @assert isempty(client_refs) # System is started in head node mode, cleanup related entries empty!(PGRP.workers) @@ -493,7 +493,7 @@ end function create_worker(manager, wconfig) # only node 1 can add new nodes, since nobody else has the full list of address:port - assert(LPROC.id == 1) + @assert LPROC.id == 1 # initiate a connect. Does not wait for connection completion in case of TCP. w = Worker() @@ -629,7 +629,7 @@ function check_master_connect() end if !haskey(map_pid_wrkr, 1) - print(STDERR, "Master process (id 1) could not connect within $timeout seconds.\nexiting.\n") + print(stderr, "Master process (id 1) could not connect within $timeout seconds.\nexiting.\n") exit(1) end end @@ -650,8 +650,8 @@ Set the passed cookie as the cluster cookie, then returns it. """ function cluster_cookie(cookie) # The cookie must be an ASCII string with length <= HDR_COOKIE_LEN - assert(isascii(cookie)) - assert(length(cookie) <= HDR_COOKIE_LEN) + @assert isascii(cookie) + @assert length(cookie) <= HDR_COOKIE_LEN cookie = rpad(cookie, HDR_COOKIE_LEN) @@ -685,7 +685,7 @@ function topology(t) Base.depwarn("The topology :master_slave is deprecated, use :master_worker instead.", :topology) t = :master_worker end - assert(t in [:all_to_all, :master_worker, :custom]) + @assert t in [:all_to_all, :master_worker, :custom] if (PGRP.topology==t) || ((myid()==1) && (nprocs()==1)) || (myid() > 1) PGRP.topology = t else @@ -1004,7 +1004,7 @@ end function interrupt(pid::Integer) - assert(myid() == 1) + @assert myid() == 1 w = map_pid_wrkr[pid] if isa(w, Worker) manage(w.manager, w.id, w.config, :interrupt) @@ -1026,7 +1026,7 @@ Interrupt the current executing task on the specified workers. This is equivalen pressing Ctrl-C on the local machine. If no arguments are given, all workers are interrupted. """ function interrupt(pids::AbstractVector=workers()) - assert(myid() == 1) + @assert myid() == 1 @sync begin for pid in pids @async interrupt(pid) @@ -1120,7 +1120,7 @@ function init_parallel() global LPROC LPROC.id = 1 cluster_cookie(randstring(HDR_COOKIE_LEN)) - assert(isempty(PGRP.workers)) + @assert isempty(PGRP.workers) register_worker(LPROC) end diff --git a/stdlib/Distributed/src/managers.jl b/stdlib/Distributed/src/managers.jl index 97669bd4553086..8a08cfce9f4fd5 100644 --- a/stdlib/Distributed/src/managers.jl +++ b/stdlib/Distributed/src/managers.jl @@ -129,7 +129,7 @@ function launch(manager::SSHManager, params::Dict, launched::Array, launch_ntfy: launch_tasks[i] = @schedule try launch_on_machine(manager, machine, cnt, params, launched, launch_ntfy) catch e - print(STDERR, "exception launching on machine $(machine) : $(e)\n") + print(stderr, "exception launching on machine $(machine) : $(e)\n") end end end @@ -296,8 +296,8 @@ end Equivalent to `addprocs(Sys.CPU_CORES; kwargs...)` -Note that workers do not run a `.juliarc.jl` startup script, nor do they synchronize their -global state (such as global variables, new method definitions, and loaded modules) with any +Note that workers do not run a `.julia/config/startup.jl` startup script, nor do they synchronize +their global state (such as global variables, new method definitions, and loaded modules) with any of the other running processes. """ addprocs(; kwargs...) = addprocs(Sys.CPU_CORES; kwargs...) diff --git a/stdlib/Distributed/src/messages.jl b/stdlib/Distributed/src/messages.jl index c44ea38a660ef6..48dccebce55a02 100644 --- a/stdlib/Distributed/src/messages.jl +++ b/stdlib/Distributed/src/messages.jl @@ -92,7 +92,7 @@ for (idx, tname) in enumerate(msgtypes) end end -let msg_cases = :(assert(false)) +let msg_cases = :(@assert false) for i = length(msgtypes):-1:1 mti = msgtypes[i] msg_cases = :(if idx == $i @@ -201,7 +201,7 @@ function flush_gc_msgs() end catch e bt = catch_backtrace() - @schedule showerror(STDERR, e, bt) + @schedule showerror(stderr, e, bt) end end diff --git a/stdlib/Distributed/src/precompile.jl b/stdlib/Distributed/src/precompile.jl index 842d0403b35835..fe2b32653fa2f3 100644 --- a/stdlib/Distributed/src/precompile.jl +++ b/stdlib/Distributed/src/precompile.jl @@ -36,7 +36,7 @@ precompile(Tuple{typeof(Distributed.launch), Distributed.LocalManager, Base.Dict precompile(Tuple{typeof(Distributed.start_worker), Base.PipeEndpoint, String}) precompile(Tuple{typeof(Distributed.socket_reuse_port)}) precompile(Tuple{typeof(Distributed.flush_gc_msgs)}) -precompile(Tuple{typeof(Distributed.disable_nagle), Base.TCPServer}) +precompile(Tuple{typeof(Distributed.disable_nagle), Sockets.TCPServer}) precompile(Tuple{typeof(Distributed.next_tunnel_port)}) precompile(Tuple{typeof(Base._delete!), Base.Dict{Int64, Union{Distributed.Worker, Distributed.LocalProcess}}, Int64}) precompile(Tuple{typeof(Distributed.send_msg_), Distributed.Worker, Distributed.MsgHeader, Distributed.JoinPGRPMsg, Bool}) @@ -44,14 +44,14 @@ precompile(Tuple{typeof(Distributed.send_msg_now), Distributed.Worker, Distribut precompile(Tuple{typeof(Distributed.connect_w2w), Int64, Distributed.WorkerConfig}) precompile(Tuple{typeof(Distributed.create_worker), Distributed.LocalManager, Distributed.WorkerConfig}) precompile(Tuple{typeof(Distributed.setup_launched_worker), Distributed.LocalManager, Distributed.WorkerConfig, Array{Int64, 1}}) -precompile(Tuple{typeof(Base.connect), Distributed.LocalManager, Int64, Distributed.WorkerConfig}) +precompile(Tuple{typeof(Sockets.connect), Distributed.LocalManager, Int64, Distributed.WorkerConfig}) precompile(Tuple{typeof(Distributed.read_worker_host_port), Base.Pipe}) precompile(Tuple{typeof(Distributed.parse_connection_info), String}) precompile(Tuple{typeof(Distributed.connect_to_worker), Base.SubString{String}, Int16}) -precompile(Tuple{typeof(Distributed.process_messages), Base.TCPSocket, Base.TCPSocket, Bool}) -precompile(Tuple{getfield(Core, Symbol("#kw#Type")), Array{Any, 1}, Type{Distributed.Worker}, Int64, Base.TCPSocket, Base.TCPSocket, Distributed.LocalManager}) -precompile(Tuple{typeof(Distributed.worker_id_from_socket), Base.TCPSocket}) -precompile(Tuple{Type{Distributed.ClusterSerializer{Base.TCPSocket}}, Base.TCPSocket}) +precompile(Tuple{typeof(Distributed.process_messages), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), Array{Any, 1}, Type{Distributed.Worker}, Int64, Sockets.TCPSocket, Sockets.TCPSocket, Distributed.LocalManager}) +precompile(Tuple{typeof(Distributed.worker_id_from_socket), Sockets.TCPSocket}) +precompile(Tuple{Type{Distributed.ClusterSerializer{Sockets.TCPSocket}}, Sockets.TCPSocket}) precompile(Tuple{typeof(Distributed.send_msg_), Distributed.Worker, Distributed.MsgHeader, Distributed.ResultMsg, Bool}) precompile(Tuple{typeof(Distributed.send_msg_now), Distributed.Worker, Distributed.MsgHeader, Distributed.ResultMsg}) precompile(Tuple{Type{Core.Compiler.Generator{I, F} where F where I}, Type{Core.Compiler.Const}, Tuple{Int64, typeof(Distributed.rmprocs)}}) @@ -74,9 +74,9 @@ precompile(Tuple{typeof(Core.Compiler.indexed_next), Tuple{typeof(Distributed.rm precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Distributed.rmprocs), Int64}, Int64}) precompile(Tuple{typeof(Distributed.register_worker_streams), Distributed.Worker}) precompile(Tuple{typeof(Distributed.register_worker_streams), Distributed.LocalProcess}) -precompile(Tuple{Type{Distributed.ClusterSerializer{Base.TCPSocket}}, Base.TCPSocket}) -precompile(Tuple{typeof(Distributed.worker_id_from_socket), Base.TCPSocket}) -precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterSerializer{I} where I<:IO}, Distributed.ClusterSerializer{Base.TCPSocket}}) +precompile(Tuple{Type{Distributed.ClusterSerializer{Sockets.TCPSocket}}, Sockets.TCPSocket}) +precompile(Tuple{typeof(Distributed.worker_id_from_socket), Sockets.TCPSocket}) +precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterSerializer{I} where I<:IO}, Distributed.ClusterSerializer{Sockets.TCPSocket}}) precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterManager}, Distributed.LocalManager}) precompile(Tuple{typeof(Base.convert), Type{Distributed.WorkerConfig}, Distributed.WorkerConfig}) precompile(Tuple{typeof(Base.get), Base.Dict{Any, Any}, Distributed.RRID, Bool}) @@ -97,47 +97,47 @@ precompile(Tuple{getfield(Distributed, Symbol("#kw##remote_do")), Array{Any, 1}, precompile(Tuple{getfield(Distributed, Symbol("#kw##remote_do")), Array{Any, 1}, typeof(Distributed.remote_do), typeof(Distributed.rmprocs), Distributed.LocalProcess, Int64}) precompile(Tuple{Type{Distributed.ResultMsg}, Distributed.RemoteException}) precompile(Tuple{Type{Distributed.ResultMsg}, Symbol}) -precompile(Tuple{typeof(Distributed.send_msg_now), Base.TCPSocket, Distributed.MsgHeader, Distributed.ResultMsg}) +precompile(Tuple{typeof(Distributed.send_msg_now), Sockets.TCPSocket, Distributed.MsgHeader, Distributed.ResultMsg}) precompile(Tuple{typeof(Base._delete!), Base.Dict{Int64, Union{Distributed.Worker, Distributed.LocalProcess}}, Int64}) precompile(Tuple{typeof(Distributed.def_rv_channel)}) precompile(Tuple{typeof(Base.setindex!), Base.Dict{Any, Any}, Distributed.RemoteValue, Distributed.RRID}) precompile(Tuple{typeof(Base.ht_keyindex2!), Base.Dict{Any, Any}, Distributed.RRID}) precompile(Tuple{typeof(Base._setindex!), Base.Dict{Any, Any}, Distributed.RemoteValue, Distributed.RRID, Int64}) precompile(Tuple{typeof(Base.notify), Base.Condition, Distributed.ProcessExitedException, Bool, Bool}) -precompile(Tuple{typeof(Distributed.process_messages), Base.TCPSocket, Base.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.process_messages), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) precompile(Tuple{typeof(Base.pop!), Base.Dict{Int64, Union{Distributed.Worker, Distributed.LocalProcess}}, Int64, Nothing}) precompile(Tuple{typeof(Distributed.send_connection_hdr), Distributed.Worker, Bool}) precompile(Tuple{typeof(Distributed.deregister_worker), Distributed.ProcessGroup, Int64}) -precompile(Tuple{typeof(Distributed.process_hdr), Base.TCPSocket, Bool}) -precompile(Tuple{typeof(Distributed.deserialize_msg), Distributed.ClusterSerializer{Base.TCPSocket}}) +precompile(Tuple{typeof(Distributed.process_hdr), Sockets.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.deserialize_msg), Distributed.ClusterSerializer{Sockets.TCPSocket}}) precompile(Tuple{typeof(Distributed.null_id), Distributed.RRID}) -precompile(Tuple{typeof(Distributed.deliver_result), Base.TCPSocket, Symbol, Distributed.RRID, Distributed.RemoteException}) -precompile(Tuple{typeof(Distributed.disable_nagle), Base.TCPSocket}) -precompile(Tuple{typeof(Distributed.message_handler_loop), Base.TCPSocket, Base.TCPSocket, Bool}) -precompile(Tuple{typeof(Distributed.process_tcp_streams), Base.TCPSocket, Base.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.deliver_result), Sockets.TCPSocket, Symbol, Distributed.RRID, Distributed.RemoteException}) +precompile(Tuple{typeof(Distributed.disable_nagle), Sockets.TCPSocket}) +precompile(Tuple{typeof(Distributed.message_handler_loop), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.process_tcp_streams), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) precompile(Tuple{Type{Distributed.JoinPGRPMsg}, Int64, Array{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}, 1}, Symbol, Bool}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Distributed.JoinPGRPMsg}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Int64}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Array{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}, 1}}) -precompile(Tuple{typeof(Serialization.should_send_whole_type), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Any}}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Core.SimpleVector}) -precompile(Tuple{typeof(Serialization.serialize_type_data), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Any}, Bool}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Any}}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Tuple{Int64}}) -precompile(Tuple{typeof(Serialization.serialize_cycle), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) -precompile(Tuple{typeof(Serialization.serialize_type), Distributed.ClusterSerializer{Base.TCPSocket}, DataType}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Bool}) -precompile(Tuple{typeof(Distributed.serialize_global_from_main), Distributed.ClusterSerializer{Base.TCPSocket}, Symbol}) -precompile(Tuple{typeof(Serialization.serialize_mod_names), Distributed.ClusterSerializer{Base.TCPSocket}, Module}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Symbol}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Module}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Array{Any, 1}}) -precompile(Tuple{typeof(Serialization.serialize_cycle), Distributed.ClusterSerializer{Base.TCPSocket}, Core.TypeName}) -precompile(Tuple{typeof(Serialization.serialize_typename), Distributed.ClusterSerializer{Base.TCPSocket}, Core.TypeName}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Array{Symbol, 1}}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Core.TypeName}) -precompile(Tuple{typeof(Serialization.serialize_cycle_header), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) -precompile(Tuple{typeof(Serialization.serialize_any), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Distributed.JoinPGRPMsg}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int64}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Array{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}, 1}}) +precompile(Tuple{typeof(Serialization.should_send_whole_type), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Any}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Core.SimpleVector}) +precompile(Tuple{typeof(Serialization.serialize_type_data), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Any}, Bool}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Any}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Tuple{Int64}}) +precompile(Tuple{typeof(Serialization.serialize_cycle), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) +precompile(Tuple{typeof(Serialization.serialize_type), Distributed.ClusterSerializer{Sockets.TCPSocket}, DataType}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Bool}) +precompile(Tuple{typeof(Distributed.serialize_global_from_main), Distributed.ClusterSerializer{Sockets.TCPSocket}, Symbol}) +precompile(Tuple{typeof(Serialization.serialize_mod_names), Distributed.ClusterSerializer{Sockets.TCPSocket}, Module}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Symbol}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Module}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Array{Any, 1}}) +precompile(Tuple{typeof(Serialization.serialize_cycle), Distributed.ClusterSerializer{Sockets.TCPSocket}, Core.TypeName}) +precompile(Tuple{typeof(Serialization.serialize_typename), Distributed.ClusterSerializer{Sockets.TCPSocket}, Core.TypeName}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Array{Symbol, 1}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Core.TypeName}) +precompile(Tuple{typeof(Serialization.serialize_cycle_header), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) +precompile(Tuple{typeof(Serialization.serialize_any), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}}}) precompile(Tuple{typeof(Distributed.send_msg_), Distributed.Worker, Distributed.MsgHeader, Distributed.ResultMsg, Bool}) precompile(Tuple{typeof(Distributed.send_msg_now), Distributed.Worker, Distributed.MsgHeader, Distributed.ResultMsg}) precompile(Tuple{Type{Core.Compiler.Generator{I, F} where F where I}, Type{Core.Compiler.Const}, Tuple{Int64, typeof(Distributed.rmprocs)}}) @@ -158,12 +158,12 @@ precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Int64, typeof(Distributed precompile(Tuple{typeof(Core.Compiler.start), Tuple{typeof(Distributed.rmprocs), Int64}}) precompile(Tuple{typeof(Core.Compiler.indexed_next), Tuple{typeof(Distributed.rmprocs), Int64}, Int64, Int64}) precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Distributed.rmprocs), Int64}, Int64}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_cycle), Distributed.ClusterSerializer{Base.TCPSocket}, Expr}) -precompile(Tuple{typeof(Serialization.handle_deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Int32}) -precompile(Tuple{typeof(Serialization.deserialize_array), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_datatype), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_expr), Distributed.ClusterSerializer{Base.TCPSocket}, Int64}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_cycle), Distributed.ClusterSerializer{Sockets.TCPSocket}, Expr}) +precompile(Tuple{typeof(Serialization.handle_deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int32}) +precompile(Tuple{typeof(Serialization.deserialize_array), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_datatype), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_expr), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int64}) precompile(Tuple{typeof(Core.Compiler.isbits), Tuple{Int64, typeof(Distributed.rmprocs)}}) precompile(Tuple{Type{Core.Compiler.Generator{I, F} where F where I}, Type{QuoteNode}, Tuple{Int64, typeof(Distributed.rmprocs)}}) precompile(Tuple{Type{Core.Compiler.Generator{Tuple{Int64, typeof(Distributed.rmprocs)}, Type{QuoteNode}}}, Type{QuoteNode}, Tuple{Int64, typeof(Distributed.rmprocs)}}) @@ -180,43 +180,43 @@ precompile(Tuple{getfield(Distributed, Symbol("#kw##remote_do")), Array{Any, 1}, precompile(Tuple{getfield(Distributed, Symbol("#kw##remote_do")), Array{Any, 1}, typeof(Distributed.remote_do), typeof(Distributed.rmprocs), Distributed.LocalProcess, Int64}) precompile(Tuple{Type{Distributed.ResultMsg}, Distributed.RemoteException}) precompile(Tuple{Type{Distributed.ResultMsg}, Symbol}) -precompile(Tuple{typeof(Distributed.send_msg_now), Base.TCPSocket, Distributed.MsgHeader, Distributed.ResultMsg}) +precompile(Tuple{typeof(Distributed.send_msg_now), Sockets.TCPSocket, Distributed.MsgHeader, Distributed.ResultMsg}) precompile(Tuple{typeof(Base.notify), Base.Condition, Distributed.ProcessExitedException, Bool, Bool}) precompile(Tuple{typeof(Base.pop!), Base.Dict{Int64, Union{Distributed.Worker, Distributed.LocalProcess}}, Int64, Nothing}) precompile(Tuple{typeof(Distributed.deregister_worker), Distributed.ProcessGroup, Int64}) -precompile(Tuple{typeof(Distributed.process_hdr), Base.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.process_hdr), Sockets.TCPSocket, Bool}) precompile(Tuple{typeof(Distributed.null_id), Distributed.RRID}) -precompile(Tuple{typeof(Distributed.deliver_result), Base.TCPSocket, Symbol, Distributed.RRID, Distributed.RemoteException}) -precompile(Tuple{typeof(Distributed.disable_nagle), Base.TCPSocket}) -precompile(Tuple{typeof(Distributed.message_handler_loop), Base.TCPSocket, Base.TCPSocket, Bool}) -precompile(Tuple{typeof(Distributed.process_tcp_streams), Base.TCPSocket, Base.TCPSocket, Bool}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Union}}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Module}}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Core.SimpleVector}}) +precompile(Tuple{typeof(Distributed.deliver_result), Sockets.TCPSocket, Symbol, Distributed.RRID, Distributed.RemoteException}) +precompile(Tuple{typeof(Distributed.disable_nagle), Sockets.TCPSocket}) +precompile(Tuple{typeof(Distributed.message_handler_loop), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) +precompile(Tuple{typeof(Distributed.process_tcp_streams), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Union}}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Module}}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Core.SimpleVector}}) precompile(Tuple{Type{Distributed.JoinPGRPMsg}, Int64, Array{Union{Tuple{Any, Int64}, Tuple{Tuple{}, Any, Bool}}, 1}, Symbol, Bool}) -precompile(Tuple{typeof(Distributed.handle_msg), Distributed.JoinPGRPMsg, Distributed.MsgHeader, Base.TCPSocket, Base.TCPSocket, Base.VersionNumber}) +precompile(Tuple{typeof(Distributed.handle_msg), Distributed.JoinPGRPMsg, Distributed.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, Base.VersionNumber}) precompile(Tuple{Type{Distributed.WorkerConfig}}) precompile(Tuple{typeof(Distributed.send_msg_), Distributed.Worker, Distributed.MsgHeader, Distributed.JoinCompleteMsg, Bool}) precompile(Tuple{typeof(Distributed.send_msg_now), Distributed.Worker, Distributed.MsgHeader, Distributed.JoinCompleteMsg}) -precompile(Tuple{getfield(Core, Symbol("#kw#Type")), Array{Any, 1}, Type{Distributed.Worker}, Int64, Base.TCPSocket, Base.TCPSocket, Distributed.DefaultClusterManager}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), Array{Any, 1}, Type{Distributed.Worker}, Int64, Sockets.TCPSocket, Sockets.TCPSocket, Distributed.DefaultClusterManager}) precompile(Tuple{typeof(Distributed.register_worker_streams), Distributed.Worker}) precompile(Tuple{typeof(Distributed.register_worker_streams), Distributed.LocalProcess}) -precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterSerializer{I} where I<:IO}, Distributed.ClusterSerializer{Base.TCPSocket}}) +precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterSerializer{I} where I<:IO}, Distributed.ClusterSerializer{Sockets.TCPSocket}}) precompile(Tuple{typeof(Base.convert), Type{Distributed.ClusterManager}, Distributed.DefaultClusterManager}) precompile(Tuple{typeof(Base.convert), Type{Distributed.WorkerConfig}, Distributed.WorkerConfig}) precompile(Tuple{typeof(Distributed.send_connection_hdr), Distributed.Worker, Bool}) precompile(Tuple{typeof(Distributed.manage), Distributed.LocalManager, Int64, Distributed.WorkerConfig, Symbol}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Distributed.JoinCompleteMsg}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Int64}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_cycle), Distributed.ClusterSerializer{Base.TCPSocket}, Expr}) -precompile(Tuple{typeof(Serialization.handle_deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Int32}) -precompile(Tuple{typeof(Serialization.deserialize_array), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_datatype), Distributed.ClusterSerializer{Base.TCPSocket}}) -precompile(Tuple{typeof(Serialization.deserialize_expr), Distributed.ClusterSerializer{Base.TCPSocket}, Int64}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{Int64}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Distributed.JoinCompleteMsg}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int64}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_cycle), Distributed.ClusterSerializer{Sockets.TCPSocket}, Expr}) +precompile(Tuple{typeof(Serialization.handle_deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int32}) +precompile(Tuple{typeof(Serialization.deserialize_array), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_datatype), Distributed.ClusterSerializer{Sockets.TCPSocket}}) +precompile(Tuple{typeof(Serialization.deserialize_expr), Distributed.ClusterSerializer{Sockets.TCPSocket}, Int64}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{Int64}}) precompile(Tuple{Type{Distributed.JoinCompleteMsg}, Int64, Int64}) -precompile(Tuple{typeof(Distributed.handle_msg), Distributed.JoinCompleteMsg, Distributed.MsgHeader, Base.TCPSocket, Base.TCPSocket, Base.VersionNumber}) +precompile(Tuple{typeof(Distributed.handle_msg), Distributed.JoinCompleteMsg, Distributed.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, Base.VersionNumber}) precompile(Tuple{typeof(Base.hash), Distributed.RemoteChannel{Base.Channel{Any}}, UInt64}) precompile(Tuple{typeof(Base.ht_keyindex), Base.Dict{WeakRef, Nothing}, Distributed.RemoteChannel{Base.Channel{Any}}}) precompile(Tuple{typeof(Distributed.remotecall_fetch), typeof(Distributed.put_ref), Distributed.Worker, Distributed.RRID, Distributed.WorkerPool}) @@ -235,18 +235,18 @@ precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Distributed.WorkerPool}) precompile(Tuple{typeof(Base.put_buffered), Base.Channel{Any}, Distributed.WorkerPool}) precompile(Tuple{typeof(Base.put_unbuffered), Base.Channel{Any}, Distributed.WorkerPool}) precompile(Tuple{typeof(Base.push!), Distributed.WorkerPool, Int64}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Distributed.RemoteDoMsg}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, typeof(Distributed.set_valid_processes)}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Tuple{Array{Int64, 1}}}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Array{Int64, 1}}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{typeof(Distributed.set_valid_processes)}}) -precompile(Tuple{typeof(Distributed.handle_msg), Distributed.RemoteDoMsg, Distributed.MsgHeader, Base.TCPSocket, Base.TCPSocket, Base.VersionNumber}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Distributed.RemoteDoMsg}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, typeof(Distributed.set_valid_processes)}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Tuple{Array{Int64, 1}}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Array{Int64, 1}}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{typeof(Distributed.set_valid_processes)}}) +precompile(Tuple{typeof(Distributed.handle_msg), Distributed.RemoteDoMsg, Distributed.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, Base.VersionNumber}) precompile(Tuple{typeof(Distributed.set_valid_processes), Array{Int64, 1}}) precompile(Tuple{typeof(Distributed._rmprocs), Array{Int64, 1}, Float64}) precompile(Tuple{typeof(Base.kill), Distributed.LocalManager, Int64, Distributed.WorkerConfig}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, typeof(Base.exit)}) -precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Base.TCPSocket}, Tuple{}}) -precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Base.TCPSocket}, Type{typeof(Base.exit)}}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, typeof(Base.exit)}) +precompile(Tuple{typeof(Serialization.serialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Tuple{}}) +precompile(Tuple{typeof(Serialization.deserialize), Distributed.ClusterSerializer{Sockets.TCPSocket}, Type{typeof(Base.exit)}}) precompile(Tuple{typeof(Distributed.finalize_ref), Distributed.RemoteChannel{Base.Channel{Any}}}) precompile(Tuple{typeof(Distributed.send_del_client), Distributed.RemoteChannel{Base.Channel{Any}}}) precompile(Tuple{typeof(Base.:(==)), Distributed.RemoteChannel{Base.Channel{Any}}, Distributed.RemoteChannel{Base.Channel{Any}}}) diff --git a/stdlib/Distributed/src/process_messages.jl b/stdlib/Distributed/src/process_messages.jl index 6b5efdb1c6617c..079646d89ff8db 100644 --- a/stdlib/Distributed/src/process_messages.jl +++ b/stdlib/Distributed/src/process_messages.jl @@ -57,7 +57,7 @@ function run_work_thunk(thunk, print_error) catch err ce = CapturedException(err, catch_backtrace()) result = RemoteException(ce) - print_error && showerror(STDERR, ce) + print_error && showerror(stderr, ce) end return result end @@ -200,8 +200,8 @@ function message_handler_loop(r_stream::IO, w_stream::IO, incoming::Bool) end if wpid < 1 - println(STDERR, e, CapturedException(e, catch_backtrace())) - println(STDERR, "Process($(myid())) - Unknown remote, closing connection.") + println(stderr, e, CapturedException(e, catch_backtrace())) + println(stderr, "Process($(myid())) - Unknown remote, closing connection.") elseif !(wpid in map_del_wrkr) werr = worker_from_id(wpid) oldstate = werr.state @@ -226,7 +226,7 @@ function message_handler_loop(r_stream::IO, w_stream::IO, incoming::Bool) if (myid() == 1) && (wpid > 1) if oldstate != W_TERMINATING - println(STDERR, "Worker $wpid terminated.") + println(stderr, "Worker $wpid terminated.") rethrow(e) end end diff --git a/stdlib/Distributed/src/remotecall.jl b/stdlib/Distributed/src/remotecall.jl index 940bf7c7cef30d..bf162a180a5128 100644 --- a/stdlib/Distributed/src/remotecall.jl +++ b/stdlib/Distributed/src/remotecall.jl @@ -292,24 +292,29 @@ function serialize(s::ClusterSerializer, rr::AbstractRemoteRef, addclient) end function deserialize(s::ClusterSerializer, t::Type{<:Future}) - f = deserialize_rr(s,t) - Future(f.where, RRID(f.whence, f.id), f.v) # ctor adds to client_refs table + f = invoke(deserialize, Tuple{ClusterSerializer, DataType}, s, t) + f2 = Future(f.where, RRID(f.whence, f.id), f.v) # ctor adds to client_refs table + + # 1) send_add_client() is not executed when the ref is being serialized + # to where it exists, hence do it here. + # 2) If we have recieved a 'fetch'ed Future or if the Future ctor found an + # already 'fetch'ed instance in client_refs (Issue #25847), we should not + # track it in the backing RemoteValue store. + if f2.where == myid() && f2.v === nothing + add_client(remoteref_id(f2), myid()) + end + f2 end function deserialize(s::ClusterSerializer, t::Type{<:RemoteChannel}) - rr = deserialize_rr(s,t) - # call ctor to make sure this rr gets added to the client_refs table - RemoteChannel{channel_type(rr)}(rr.where, RRID(rr.whence, rr.id)) -end - -function deserialize_rr(s, t) rr = invoke(deserialize, Tuple{ClusterSerializer, DataType}, s, t) if rr.where == myid() # send_add_client() is not executed when the ref is being # serialized to where it exists add_client(remoteref_id(rr), myid()) end - rr + # call ctor to make sure this rr gets added to the client_refs table + RemoteChannel{channel_type(rr)}(rr.where, RRID(rr.whence, rr.id)) end # Future and RemoteChannel are serializable only in a running cluster. @@ -445,7 +450,7 @@ invoked, the order of executions on the remote worker is undetermined. For examp to `f1`, followed by `f2` and `f3` in that order. However, it is not guaranteed that `f1` is executed before `f3` on worker 2. -Any exceptions thrown by `f` are printed to [`STDERR`](@ref) on the remote worker. +Any exceptions thrown by `f` are printed to [`stderr`](@ref) on the remote worker. Keyword arguments, if any, are passed through to `f`. """ diff --git a/stdlib/Distributed/test/distributed_exec.jl b/stdlib/Distributed/test/distributed_exec.jl index 098e226c1c9485..190e26d36698bc 100644 --- a/stdlib/Distributed/test/distributed_exec.jl +++ b/stdlib/Distributed/test/distributed_exec.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using Test, Distributed, Random, Serialization +using Test, Distributed, Random, Serialization, Sockets import Distributed: launch, manage include(joinpath(Sys.BINDIR, "..", "share", "julia", "test", "testenv.jl")) @@ -180,6 +180,25 @@ testval = remotecall_fetch(wid2, fstore) do x end @test testval == 1 +# Issue number #25847 +@everywhere function f25847(ref) + fetch(ref) + return true +end + +f = remotecall_wait(identity, id_other, ones(10)) +rrid = Distributed.RRID(f.whence, f.id) +remotecall_fetch(f25847, id_other, f) +@test BitSet([id_me]) == remotecall_fetch(()->Distributed.PGRP.refs[rrid].clientset, id_other) + +remotecall_fetch(f25847, id_other, f) +@test BitSet([id_me]) == remotecall_fetch(()->Distributed.PGRP.refs[rrid].clientset, id_other) + +finalize(f) +yield() # flush gc msgs +@test false == remotecall_fetch(chk_rrid->haskey(Distributed.PGRP.refs, chk_rrid), id_other, rrid) + + # Distributed GC tests for RemoteChannels function test_remoteref_dgc(id) rr = RemoteChannel(id) @@ -929,7 +948,7 @@ const get_num_threads = function() # anonymous so it will be serialized when cal # OSX BLAS looks at an environment variable if Sys.isapple() - return ENV["VECLIB_MAXIMUM_THREADS"] + return tryparse(Cint, get(ENV, "VECLIB_MAXIMUM_THREADS", "1")) end end @@ -950,11 +969,12 @@ function test_blas_config(pid, expected) end function test_add_procs_threaded_blas() - if get_num_threads() === nothing + master_blas_thread_count = get_num_threads() + if master_blas_thread_count === nothing @warn "Skipping blas num threads tests due to unsupported blas version" return end - master_blas_thread_count = get_num_threads() + @test master_blas_thread_count <= 8 # check that Base set the environment variable in __init__ before LinearAlgebra dlopen'd it # Test with default enable_threaded_blas false processes_added = addprocs_with_testenv(2) @@ -1036,8 +1056,8 @@ end # Test the following addprocs error conditions # - invalid host name - github issue #20372 # - julia exe exiting with an error -# - timeout reading host:port from worker STDOUT -# - host:port not found in worker STDOUT in the first 1000 lines +# - timeout reading host:port from worker stdout +# - host:port not found in worker stdout in the first 1000 lines struct ErrorSimulator <: ClusterManager mode @@ -1079,7 +1099,7 @@ append!(testruns, [ ]) for (addp_testf, expected_errstr, env) in testruns - old_stdout = STDOUT + old_stdout = stdout stdout_out, stdout_in = redirect_stdout() stdout_txt = @schedule filter!(readlines(stdout_out)) do s return !startswith(s, "\tFrom failed worker startup:\t") @@ -1383,7 +1403,7 @@ let rm(tmp_file, force=true) rm(tmp_file2, force=true) rm(tmp_dir2, force=true) - rm(tmp_dir, force=true) + #rm(tmp_dir, force=true) end end # cookie and comand line option `--worker` tests. remove workers, set cookie and test @@ -1441,7 +1461,7 @@ function reuseport_tests() ports_higher = [] # ports of pids higher than myid() for w in Distributed.PGRP.workers w.id == myid() && continue - port = Base._sockname(w.r_stream, true)[2] + port = Sockets._sockname(w.r_stream, true)[2] if (w.id == 1) # master connects to workers push!(ports_higher, port) diff --git a/stdlib/Distributed/test/runtests.jl b/stdlib/Distributed/test/runtests.jl index 1683944a42a251..4ab1b69739840a 100644 --- a/stdlib/Distributed/test/runtests.jl +++ b/stdlib/Distributed/test/runtests.jl @@ -7,6 +7,6 @@ disttestfile = joinpath(@__DIR__, "distributed_exec.jl") cmd = `$test_exename $test_exeflags $disttestfile` -if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) && ccall(:jl_running_on_valgrind,Cint,()) == 0 +if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) && ccall(:jl_running_on_valgrind,Cint,()) == 0 error("Distributed test failed, cmd : $cmd") end diff --git a/stdlib/InteractiveUtils/docs/src/index.md b/stdlib/InteractiveUtils/docs/src/index.md index 39555d32201eeb..656780c7bb167a 100644 --- a/stdlib/InteractiveUtils/docs/src/index.md +++ b/stdlib/InteractiveUtils/docs/src/index.md @@ -1,5 +1,9 @@ # Interactive Utilities +```@meta +DocTestSetup = :(using InteractiveUtils) +``` + ```@docs InteractiveUtils.apropos InteractiveUtils.varinfo @@ -23,3 +27,7 @@ InteractiveUtils.@code_llvm InteractiveUtils.code_native InteractiveUtils.@code_native ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/InteractiveUtils/src/InteractiveUtils.jl b/stdlib/InteractiveUtils/src/InteractiveUtils.jl index 192d78df35dca0..0c397ba534c8fc 100644 --- a/stdlib/InteractiveUtils/src/InteractiveUtils.jl +++ b/stdlib/InteractiveUtils/src/InteractiveUtils.jl @@ -45,7 +45,7 @@ end varinfo(pat::Regex) = varinfo(Main, pat) """ - versioninfo(io::IO=STDOUT; verbose::Bool=false, packages::Bool=false) + versioninfo(io::IO=stdout; verbose::Bool=false, packages::Bool=false) Print information about the version of Julia in use. The output is controlled with boolean keyword arguments: @@ -53,7 +53,7 @@ controlled with boolean keyword arguments: - `packages`: print information about installed packages - `verbose`: print all additional information """ -function versioninfo(io::IO=STDOUT; verbose::Bool=false, packages::Bool=false) +function versioninfo(io::IO=stdout; verbose::Bool=false, packages::Bool=false) println(io, "Julia Version $VERSION") if !isempty(Base.GIT_VERSION_INFO.commit_short) println(io, "Commit $(Base.GIT_VERSION_INFO.commit_short) ($(Base.GIT_VERSION_INFO.date_string))") @@ -68,7 +68,7 @@ function versioninfo(io::IO=STDOUT; verbose::Bool=false, packages::Bool=false) if verbose lsb = "" if Sys.islinux() - try lsb = readchomp(pipeline(`lsb_release -ds`, stderr=DevNull)) end + try lsb = readchomp(pipeline(`lsb_release -ds`, stderr=devnull)) end end if Sys.iswindows() try lsb = strip(read(`$(ENV["COMSPEC"]) /c ver`, String)) end @@ -249,7 +249,7 @@ are included, including those not visible in the current module. # Examples ```jldoctest julia> subtypes(Integer) -3-element Array{Union{DataType, UnionAll},1}: +3-element Array{Any,1}: Bool Signed Unsigned @@ -258,7 +258,7 @@ julia> subtypes(Integer) subtypes(x::Type) = _subtypes_in(Base.loaded_modules_array(), x) # dumptype is for displaying abstract type hierarchies, -# based on Jameson Nash's examples/typetree.jl +# based on Jameson Nash's typetree.jl in https://github.com/JuliaArchive/Examples function dumptype(io::IO, @nospecialize(x), n::Int, indent) print(io, x) n == 0 && return # too deeply nested diff --git a/stdlib/InteractiveUtils/src/codeview.jl b/stdlib/InteractiveUtils/src/codeview.jl index 2b42d010161e7f..1983c95dc93666 100644 --- a/stdlib/InteractiveUtils/src/codeview.jl +++ b/stdlib/InteractiveUtils/src/codeview.jl @@ -6,7 +6,7 @@ code_warntype([io::IO], f, types) Prints lowered and type-inferred ASTs for the methods matching the given generic function -and type signature to `io` which defaults to `STDOUT`. The ASTs are annotated in such a way +and type signature to `io` which defaults to `stdout`. The ASTs are annotated in such a way as to cause "non-leaf" types to be emphasized (if color is available, displayed in red). This serves as a warning of potential type instability. Not all non-leaf types are particularly problematic for performance, so the results need to be used judiciously. @@ -58,7 +58,7 @@ function code_warntype(io::IO, f, @nospecialize(t)) end nothing end -code_warntype(f, @nospecialize(t)) = code_warntype(STDOUT, f, t) +code_warntype(f, @nospecialize(t)) = code_warntype(stdout, f, t) import Base.CodegenParams @@ -111,20 +111,20 @@ function _dump_function_linfo(linfo::Core.MethodInstance, world::UInt, native::B end """ - code_llvm([io=STDOUT,], f, types) + code_llvm([io=stdout,], f, types) Prints the LLVM bitcodes generated for running the method matching the given generic function and type signature to `io`. -All metadata and dbg.* calls are removed from the printed bitcode. Use code_llvm_raw for the full IR. +All metadata and dbg.* calls are removed from the printed bitcode. Use `code_llvm_raw` for the full IR. """ code_llvm(io::IO, @nospecialize(f), @nospecialize(types=Tuple), strip_ir_metadata=true, dump_module=false) = print(io, _dump_function(f, types, false, false, strip_ir_metadata, dump_module)) -code_llvm(@nospecialize(f), @nospecialize(types=Tuple)) = code_llvm(STDOUT, f, types) -code_llvm_raw(@nospecialize(f), @nospecialize(types=Tuple)) = code_llvm(STDOUT, f, types, false) +code_llvm(@nospecialize(f), @nospecialize(types=Tuple)) = code_llvm(stdout, f, types) +code_llvm_raw(@nospecialize(f), @nospecialize(types=Tuple)) = code_llvm(stdout, f, types, false) """ - code_native([io=STDOUT,], f, types; syntax = :att) + code_native([io=stdout,], f, types; syntax = :att) Prints the native assembly instructions generated for running the method matching the given generic function and type signature to `io`. @@ -132,5 +132,5 @@ Switch assembly syntax using `syntax` symbol parameter set to `:att` for AT&T sy """ code_native(io::IO, @nospecialize(f), @nospecialize(types=Tuple); syntax::Symbol = :att) = print(io, _dump_function(f, types, true, false, false, false, syntax)) -code_native(@nospecialize(f), @nospecialize(types=Tuple); syntax::Symbol = :att) = code_native(STDOUT, f, types, syntax = syntax) +code_native(@nospecialize(f), @nospecialize(types=Tuple); syntax::Symbol = :att) = code_native(stdout, f, types, syntax = syntax) code_native(::IO, ::Any, ::Symbol) = error("illegal code_native call") # resolve ambiguous call diff --git a/stdlib/InteractiveUtils/src/editless.jl b/stdlib/InteractiveUtils/src/editless.jl index 614393655c5c06..d3b4b70b197e79 100644 --- a/stdlib/InteractiveUtils/src/editless.jl +++ b/stdlib/InteractiveUtils/src/editless.jl @@ -73,7 +73,7 @@ function edit(path::AbstractString, line::Integer=0) (Ptr{Cvoid}, Cwstring, Cwstring, Ptr{Cvoid}, Ptr{Cvoid}, Cint), C_NULL, "open", path, C_NULL, C_NULL, 10) ≤ 32) elseif background - spawn(pipeline(cmd, stderr=STDERR)) + run(pipeline(cmd, stderr=stderr), wait=false) else run(cmd) end diff --git a/stdlib/InteractiveUtils/test/runtests.jl b/stdlib/InteractiveUtils/test/runtests.jl index d13cb94d370136..514ffa91eb64f5 100644 --- a/stdlib/InteractiveUtils/test/runtests.jl +++ b/stdlib/InteractiveUtils/test/runtests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using InteractiveUtils +using Test, InteractiveUtils # test methodswith # `methodswith` relies on exported symbols @@ -134,7 +134,7 @@ end # Issue #16326 mktemp() do f, io - OLDSTDOUT = STDOUT + OLDSTDOUT = stdout redirect_stdout(io) @test try @code_native map(abs, rand(3)); true; catch; false; end redirect_stdout(OLDSTDOUT) diff --git a/stdlib/IterativeEigensolvers/docs/src/index.md b/stdlib/IterativeEigensolvers/docs/src/index.md index 664f78289dab88..185d2dcc14a562 100644 --- a/stdlib/IterativeEigensolvers/docs/src/index.md +++ b/stdlib/IterativeEigensolvers/docs/src/index.md @@ -1,5 +1,9 @@ # [Iterative Eigensolvers](@id lib-itereigen) +```@meta +DocTestSetup = :(using IterativeEigensolvers, LinearAlgebra, SparseArrays) +``` + Julia provides bindings to [ARPACK](http://www.caam.rice.edu/software/ARPACK/), which can be used to perform iterative solutions for eigensystems (using [`eigs`](@ref)) or singular value decompositions (using [`svds`](@ref)). @@ -49,9 +53,7 @@ the following keyword arguments are supported: * `v0`: starting vector from which to start the iterations We can see the various keywords in action in the following examples: -```jldoctest -julia> using IterativeEigensolvers - +```jldoctest; filter = r"(1|2)-element Array{(Float64|Complex{Float64}),1}:\n (.|\s)*$" julia> A = Diagonal(1:4); julia> λ, ϕ = eigs(A, nev = 2, which=:SM); @@ -61,42 +63,37 @@ julia> λ 1.0000000000000002 2.0 -julia> B = Diagonal([1., 2., -3im, 4im]) -4×4 Diagonal{Complex{Float64},Array{Complex{Float64},1}}: - 1.0+0.0im ⋅ ⋅ ⋅ - ⋅ 2.0+0.0im ⋅ ⋅ - ⋅ ⋅ 0.0-3.0im ⋅ - ⋅ ⋅ ⋅ 0.0+4.0im +julia> B = Diagonal([1., 2., -3im, 4im]); julia> λ, ϕ = eigs(B, nev=1, which=:LI); julia> λ 1-element Array{Complex{Float64},1}: - -4.440892098500626e-16 + 3.999999999999998im + 1.3322676295501878e-15 + 4.0im julia> λ, ϕ = eigs(B, nev=1, which=:SI); julia> λ 1-element Array{Complex{Float64},1}: - 1.3877787807814457e-16 - 2.999999999999999im + -2.498001805406602e-16 - 3.0000000000000018im julia> λ, ϕ = eigs(B, nev=1, which=:LR); julia> λ 1-element Array{Complex{Float64},1}: - 2.0 + 4.242754940683747e-17im + 2.0000000000000004 + 4.0615212488780827e-17im julia> λ, ϕ = eigs(B, nev=1, which=:SR); julia> λ 1-element Array{Complex{Float64},1}: - 4.440892098500626e-16 + 4.0000000000000036im + -8.881784197001252e-16 + 3.999999999999997im julia> λ, ϕ = eigs(B, nev=1, sigma=1.5); julia> λ 1-element Array{Complex{Float64},1}: - 1.9999999999999996 + 2.4290457684137336e-17im + 1.0000000000000004 + 4.0417078924070745e-18im ``` !!! note @@ -164,31 +161,29 @@ iterations `niter` and the number of matrix vector multiplications `nmult`, as w final residual vector `resid`. We can see the various keywords in action in the following examples: -```jldoctest -julia> using IterativeEigensolvers - +```jldoctest; filter = r"(1|2)-element Array{(Float64|Complex{Float64}),1}:\n (.|\s)*$" julia> A = sparse(1.0I, 4, 4); B = Diagonal(1:4); julia> λ, ϕ = eigs(A, B, nev = 2); julia> λ 2-element Array{Float64,1}: - 1.0 - 0.4999999999999999 + 1.0000000000000002 + 0.5 -julia> A = sparse(1.0I, 4, 4); B = Diagonal([1, -2im, 3, 4im]); +julia> A = Diagonal([1, -2im, 3, 4im]); B = sparse(1.0I, 4, 4); julia> λ, ϕ = eigs(A, B, nev=1, which=:SI); julia> λ 1-element Array{Complex{Float64},1}: - 0.03291282838780993 - 2.0627621271174514im + -1.5720931501039814e-16 - 1.9999999999999984im julia> λ, ϕ = eigs(A, B, nev=1, which=:LI); julia> λ 1-element Array{Complex{Float64},1}: - -0.6428551411711136 + 2.1820633510068994im + 0.0 + 4.000000000000002im ``` !!! note @@ -207,3 +202,7 @@ IterativeEigensolvers.eigs(::Any) IterativeEigensolvers.eigs(::Any, ::Any) IterativeEigensolvers.svds ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/IterativeEigensolvers/src/IterativeEigensolvers.jl b/stdlib/IterativeEigensolvers/src/IterativeEigensolvers.jl index 3bad088d82d540..64f2c4393aaa3a 100644 --- a/stdlib/IterativeEigensolvers/src/IterativeEigensolvers.jl +++ b/stdlib/IterativeEigensolvers/src/IterativeEigensolvers.jl @@ -278,7 +278,7 @@ iterations derived from [`eigs`](@ref). * `resid`: Final residual vector. # Examples -```jldoctest +```jldoctest; filter = r"2-element Array{Float64,1}:\\n.*\\n.*" julia> A = Diagonal(1:4); julia> s = svds(A, nsv = 2)[1]; diff --git a/stdlib/LibGit2/docs/index.md b/stdlib/LibGit2/docs/index.md index 33d264e0998d29..20fd2b4568eac1 100644 --- a/stdlib/LibGit2/docs/index.md +++ b/stdlib/LibGit2/docs/index.md @@ -1,5 +1,9 @@ # LibGit2 +```@meta +DocTestSetup = :(using LibGit2) +``` + The LibGit2 module provides bindings to [libgit2](https://libgit2.github.com/), a portable C library that implements core functionality for the [Git](https://git-scm.com/) version control system. These bindings are currently used to power Julia's package manager. @@ -158,3 +162,7 @@ LibGit2.CredentialPayload LibGit2.approve LibGit2.reject ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/LibGit2/src/blob.jl b/stdlib/LibGit2/src/blob.jl index d306ab96924bf8..bbc69ef390bc90 100644 --- a/stdlib/LibGit2/src/blob.jl +++ b/stdlib/LibGit2/src/blob.jl @@ -56,7 +56,7 @@ Return the [`GitHash`](@ref) of the resulting blob. # Examples ```julia -hash_str = hex(commit_oid) +hash_str = string(commit_oid) blob_file = joinpath(repo_path, ".git", "objects", hash_str[1:2], hash_str[3:end]) id = LibGit2.addblob!(repo, blob_file) ``` diff --git a/stdlib/LibGit2/src/deprecated.jl b/stdlib/LibGit2/src/deprecated.jl index 5e92ffe7338657..d5e880ec5af3df 100644 --- a/stdlib/LibGit2/src/deprecated.jl +++ b/stdlib/LibGit2/src/deprecated.jl @@ -58,4 +58,7 @@ end # PR #24594 @deprecate AbstractCredentials AbstractCredential false @deprecate UserPasswordCredentials UserPasswordCredential false -@deprecate SSHCredentials SSHCredential false \ No newline at end of file +@deprecate SSHCredentials SSHCredential false + +@deprecate hex(id::LibGit2.GitHash) string(id) +@deprecate hex(id::LibGit2.GitShortHash) string(id) diff --git a/stdlib/LibGit2/src/oid.jl b/stdlib/LibGit2/src/oid.jl index e54600adb25c34..904f845d1434f1 100644 --- a/stdlib/LibGit2/src/oid.jl +++ b/stdlib/LibGit2/src/oid.jl @@ -157,9 +157,6 @@ function GitShortHash(obj::GitObject) return sid end -Base.hex(id::GitHash) = join([hex(i,2) for i in id.val]) -Base.hex(id::GitShortHash) = hex(id.hash)[1:id.len] - """ raw(id::GitHash) -> Vector{UInt8} @@ -167,7 +164,12 @@ Obtain the raw bytes of the [`GitHash`](@ref) as a vector of length $OID_RAWSZ. """ raw(id::GitHash) = collect(id.val) -Base.string(id::AbstractGitHash) = hex(id) +function Base.print(io::IO, id::GitHash) + for i in id.val + print(io, string(i, base = 16, pad = 2)) + end +end +Base.string(id::GitShortHash) = string(id.hash)[1:id.len] Base.show(io::IO, id::GitHash) = print(io, "GitHash(\"$(string(id))\")") Base.show(io::IO, id::GitShortHash) = print(io, "GitShortHash(\"$(string(id))\")") diff --git a/stdlib/LibGit2/src/types.jl b/stdlib/LibGit2/src/types.jl index 45981a7d5801d8..46e5812da95e94 100644 --- a/stdlib/LibGit2/src/types.jl +++ b/stdlib/LibGit2/src/types.jl @@ -469,7 +469,7 @@ The fields represent: flags. The `i`th bit of this integer sets the `i`th flag. * `mode`: the [`stat`](@ref) mode for the item. * `id_abbrev`: only present in LibGit2 versions newer than or equal to `0.25.0`. - The length of the `id` field when converted using [`hex`](@ref). Usually equal to `OID_HEXSZ` ($OID_HEXSZ). + The length of the `id` field when converted using [`string`](@ref). Usually equal to `OID_HEXSZ` ($OID_HEXSZ). """ struct DiffFile id::GitHash diff --git a/stdlib/LibGit2/test/libgit2.jl b/stdlib/LibGit2/test/libgit2.jl index 841986584ac0b6..f12cb8cc4d027e 100644 --- a/stdlib/LibGit2/test/libgit2.jl +++ b/stdlib/LibGit2/test/libgit2.jl @@ -43,7 +43,7 @@ function challenge_prompt(cmd::Cmd, challenges; timeout::Integer=10, debug::Bool end out = IOBuffer() with_fake_pty() do slave, master - p = spawn(detach(cmd), slave, slave, slave) + p = run(detach(cmd), slave, slave, slave, wait=false) # Kill the process if it takes too long. Typically occurs when process is waiting # for input. @@ -778,7 +778,7 @@ mktempdir() do dir @test LibGit2.Consts.OBJECT(typeof(cmt)) == LibGit2.Consts.OBJ_COMMIT @test commit_oid1 == LibGit2.GitHash(cmt) short_oid1 = LibGit2.GitShortHash(string(commit_oid1)) - @test hex(commit_oid1) == hex(short_oid1) + @test string(commit_oid1) == string(short_oid1) @test cmp(commit_oid1, short_oid1) == 0 @test cmp(short_oid1, commit_oid1) == 0 @test !(short_oid1 < commit_oid1) @@ -787,7 +787,7 @@ mktempdir() do dir short_str = sprint(show, short_oid1) @test short_str == "GitShortHash(\"$(string(short_oid1))\")" short_oid2 = LibGit2.GitShortHash(cmt) - @test startswith(hex(commit_oid1), hex(short_oid2)) + @test startswith(string(commit_oid1), string(short_oid2)) LibGit2.with(LibGit2.GitCommit(repo, short_oid2)) do cmt2 @test commit_oid1 == LibGit2.GitHash(cmt2) @@ -985,7 +985,7 @@ mktempdir() do dir LibGit2.with(LibGit2.GitRepo(cache_repo)) do repo # this is slightly dubious, as it assumes the object has not been packed # could be replaced by another binary format - hash_string = hex(commit_oid1) + hash_string = string(commit_oid1) blob_file = joinpath(cache_repo,".git/objects", hash_string[1:2], hash_string[3:end]) id = LibGit2.addblob!(repo, blob_file) @@ -1802,7 +1802,7 @@ mktempdir() do dir @test LibGit2.credential_helpers(cfg, GitCredential("https", "github.com")) == expected - println(STDERR, "The following 'Resetting the helper list...' warning is expected:") + println(stderr, "The following 'Resetting the helper list...' warning is expected:") @test_broken LibGit2.credential_helpers(cfg, GitCredential("https", "mygithost")) == expected[2] end end @@ -2692,7 +2692,7 @@ mktempdir() do dir pem = joinpath(root, common_name * ".pem") # Generated a certificate which has the CN set correctly but no subjectAltName - run(pipeline(`openssl req -new -x509 -newkey rsa:2048 -sha256 -nodes -keyout $key -out $cert -days 1 -subj "/CN=$common_name"`, stderr=DevNull)) + run(pipeline(`openssl req -new -x509 -newkey rsa:2048 -sha256 -nodes -keyout $key -out $cert -days 1 -subj "/CN=$common_name"`, stderr=devnull)) run(`openssl x509 -in $cert -out $pem -outform PEM`) # Find an available port by listening @@ -2703,7 +2703,7 @@ mktempdir() do dir # certificate. The minimal server can't actually serve a Git repository. mkdir(joinpath(root, "Example.jl")) pobj = cd(root) do - spawn(`openssl s_server -key $key -cert $cert -WWW -accept $port`) + run(`openssl s_server -key $key -cert $cert -WWW -accept $port`, wait=false) end errfile = joinpath(root, "error") @@ -2764,4 +2764,4 @@ let cache = LibGit2.CachedCredentials() @test cache["foo"].pass == "\0\0\0" end -end # module \ No newline at end of file +end # module diff --git a/stdlib/Libdl/test/runtests.jl b/stdlib/Libdl/test/runtests.jl index 8e1be88e2c86bd..8a7a7482449619 100644 --- a/stdlib/Libdl/test/runtests.jl +++ b/stdlib/Libdl/test/runtests.jl @@ -1,5 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license +using Test import Libdl # these could fail on an embedded installation diff --git a/stdlib/LinearAlgebra/docs/src/index.md b/stdlib/LinearAlgebra/docs/src/index.md index 00d677f2f4556b..e46e75ee0fb683 100644 --- a/stdlib/LinearAlgebra/docs/src/index.md +++ b/stdlib/LinearAlgebra/docs/src/index.md @@ -1,5 +1,9 @@ # Linear Algebra +```@meta +DocTestSetup = :(using LinearAlgebra) +``` + In addition to (and as part of) its support for multi-dimensional arrays, Julia provides native implementations of many common and useful linear algebra operations. Basic operations, such as [`trace`](@ref), [`det`](@ref), and [`inv`](@ref) are all supported: @@ -56,9 +60,17 @@ julia> A = [1.5 2 -4; 3 -1 -6; -10 2.3 4] -10.0 2.3 4.0 julia> factorize(A) -LinearAlgebra.LU{Float64,Array{Float64,2}} with factors L and U: -[1.0 0.0 0.0; -0.15 1.0 0.0; -0.3 -0.132196 1.0] -[-10.0 2.3 4.0; 0.0 2.345 -3.4; 0.0 0.0 -5.24947] +LU{Float64,Array{Float64,2}} +L factor: +3×3 Array{Float64,2}: + 1.0 0.0 0.0 + -0.15 1.0 0.0 + -0.3 -0.132196 1.0 +U factor: +3×3 Array{Float64,2}: + -10.0 2.3 4.0 + 0.0 2.345 -3.4 + 0.0 0.0 -5.24947 ``` Since `A` is not Hermitian, symmetric, triangular, tridiagonal, or bidiagonal, an LU factorization may be the @@ -72,17 +84,17 @@ julia> B = [1.5 2 -4; 2 -1 -3; -4 -3 5] -4.0 -3.0 5.0 julia> factorize(B) -LinearAlgebra.BunchKaufman{Float64,Array{Float64,2}} +BunchKaufman{Float64,Array{Float64,2}} D factor: 3×3 Tridiagonal{Float64,Array{Float64,1}}: -1.64286 0.0 ⋅ 0.0 -2.8 0.0 ⋅ 0.0 5.0 U factor: -3×3 LinearAlgebra.UnitUpperTriangular{Float64,Array{Float64,2}}: +3×3 UnitUpperTriangular{Float64,Array{Float64,2}}: 1.0 0.142857 -0.8 - 0.0 1.0 -0.6 - 0.0 0.0 1.0 + ⋅ 1.0 -0.6 + ⋅ ⋅ 1.0 permutation: 3-element Array{Int64,1}: 1 @@ -248,9 +260,7 @@ julia> b = [1 2 3; 4 5 6] julia> b - U ERROR: DimensionMismatch("matrix is not square: dimensions are (2, 3)") Stacktrace: - [1] checksquare at ./linalg/linalg.jl:220 [inlined] - [2] -(::Array{Int64,2}, ::UniformScaling{Int64}) at ./linalg/uniformscaling.jl:156 - [3] top-level scope +[...] ``` ## [Matrix factorizations](@id man-linalg-factorizations) @@ -368,7 +378,6 @@ LinearAlgebra.logabsdet Base.inv(::AbstractMatrix) LinearAlgebra.pinv LinearAlgebra.nullspace -Base.repmat Base.kron LinearAlgebra.linreg LinearAlgebra.exp(::StridedMatrix{<:LinearAlgebra.BlasFloat}) @@ -413,7 +422,7 @@ Base.transpose LinearAlgebra.transpose! Base.adjoint LinearAlgebra.adjoint! -LinearAlgebra.peakflops +Base.copy(::Union{Transpose,Adjoint}) LinearAlgebra.stride1 LinearAlgebra.checksquare ``` @@ -620,3 +629,7 @@ LinearAlgebra.LAPACK.trsen! LinearAlgebra.LAPACK.tgsen! LinearAlgebra.LAPACK.trsyl! ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/LinearAlgebra/src/LinearAlgebra.jl b/stdlib/LinearAlgebra/src/LinearAlgebra.jl index ece3db422714a5..678952f745e6bf 100644 --- a/stdlib/LinearAlgebra/src/LinearAlgebra.jl +++ b/stdlib/LinearAlgebra/src/LinearAlgebra.jl @@ -77,7 +77,6 @@ export diag, diagind, diagm, - diff, dot, eig, eigfact, @@ -335,7 +334,7 @@ const × = cross export ⋅, × -function versioninfo(io::IO=STDOUT) +function versioninfo(io::IO=stdout) if Base.libblas_name == "libopenblas" || BLAS.vendor() == :openblas || BLAS.vendor() == :openblas64 openblas_config = BLAS.openblas_get_config() println(io, "BLAS: libopenblas (", openblas_config, ")") diff --git a/stdlib/LinearAlgebra/src/adjtrans.jl b/stdlib/LinearAlgebra/src/adjtrans.jl index 45063f983268a7..7e9c4c4bfdaafc 100644 --- a/stdlib/LinearAlgebra/src/adjtrans.jl +++ b/stdlib/LinearAlgebra/src/adjtrans.jl @@ -47,6 +47,9 @@ end Adjoint(A) = Adjoint{Base.promote_op(adjoint,eltype(A)),typeof(A)}(A) Transpose(A) = Transpose{Base.promote_op(transpose,eltype(A)),typeof(A)}(A) +Base.dataids(A::Union{Adjoint, Transpose}) = Base.dataids(A.parent) +Base.unaliascopy(A::Union{Adjoint,Transpose}) = typeof(A)(Base.unaliascopy(A.parent)) + # wrapping lowercase quasi-constructors """ adjoint(A) diff --git a/stdlib/LinearAlgebra/src/blas.jl b/stdlib/LinearAlgebra/src/blas.jl index 5d6d5198b79d96..5733fa8ad528b3 100644 --- a/stdlib/LinearAlgebra/src/blas.jl +++ b/stdlib/LinearAlgebra/src/blas.jl @@ -246,7 +246,7 @@ conjugating the first vector. # Examples ```jldoctest -julia> Base.BLAS.dotc(10, fill(1.0im, 10), 1, fill(1.0+im, 20), 2) +julia> BLAS.dotc(10, fill(1.0im, 10), 1, fill(1.0+im, 20), 2) 10.0 - 10.0im ``` """ @@ -260,7 +260,7 @@ with stride `incx` and `n` elements of array `Y` with stride `incy`. # Examples ```jldoctest -julia> Base.BLAS.dotu(10, fill(1.0im, 10), 1, fill(1.0+im, 20), 2) +julia> BLAS.dotu(10, fill(1.0im, 10), 1, fill(1.0+im, 20), 2) -10.0 + 10.0im ``` """ @@ -350,10 +350,10 @@ end # Examples ```jldoctest -julia> Base.BLAS.nrm2(4, fill(1.0, 8), 2) +julia> BLAS.nrm2(4, fill(1.0, 8), 2) 2.0 -julia> Base.BLAS.nrm2(1, fill(1.0, 8), 2) +julia> BLAS.nrm2(1, fill(1.0, 8), 2) 1.0 ``` """ @@ -383,10 +383,10 @@ Sum of the absolute values of the first `n` elements of array `X` with stride `i # Examples ```jldoctest -julia> Base.BLAS.asum(5, fill(1.0im, 10), 2) +julia> BLAS.asum(5, fill(1.0im, 10), 2) 5.0 -julia> Base.BLAS.asum(2, fill(1.0im, 10), 5) +julia> BLAS.asum(2, fill(1.0im, 10), 5) 2.0 ``` """ @@ -420,7 +420,7 @@ julia> x = [1; 2; 3]; julia> y = [4; 5; 6]; -julia> Base.BLAS.axpy!(2, x, y) +julia> BLAS.axpy!(2, x, y) 3-element Array{Int64,1}: 6 9 @@ -483,7 +483,7 @@ julia> x = [1., 2, 3]; julia> y = [4., 5, 6]; -julia> Base.BLAS.axpby!(2., x, 3., y) +julia> BLAS.axpby!(2., x, 3., y) 3-element Array{Float64,1}: 14.0 19.0 diff --git a/stdlib/LinearAlgebra/src/bunchkaufman.jl b/stdlib/LinearAlgebra/src/bunchkaufman.jl index 80db51dcb802c2..70f31800670e08 100644 --- a/stdlib/LinearAlgebra/src/bunchkaufman.jl +++ b/stdlib/LinearAlgebra/src/bunchkaufman.jl @@ -59,15 +59,15 @@ julia> A = [1 2; 2 3] 2 3 julia> bkfact(A) -LinearAlgebra.BunchKaufman{Float64,Array{Float64,2}} +BunchKaufman{Float64,Array{Float64,2}} D factor: 2×2 Tridiagonal{Float64,Array{Float64,1}}: -0.333333 0.0 0.0 3.0 U factor: -2×2 LinearAlgebra.UnitUpperTriangular{Float64,Array{Float64,2}}: +2×2 UnitUpperTriangular{Float64,Array{Float64,2}}: 1.0 0.666667 - 0.0 1.0 + ⋅ 1.0 permutation: 2-element Array{Int64,1}: 1 @@ -135,16 +135,16 @@ julia> A = [1 2 3; 2 1 2; 3 2 1] 3 2 1 julia> F = bkfact(Symmetric(A, :L)) -LinearAlgebra.BunchKaufman{Float64,Array{Float64,2}} +BunchKaufman{Float64,Array{Float64,2}} D factor: 3×3 Tridiagonal{Float64,Array{Float64,1}}: 1.0 3.0 ⋅ 3.0 1.0 0.0 ⋅ 0.0 -1.0 L factor: -3×3 LinearAlgebra.UnitLowerTriangular{Float64,Array{Float64,2}}: - 1.0 0.0 0.0 - 0.0 1.0 0.0 +3×3 UnitLowerTriangular{Float64,Array{Float64,2}}: + 1.0 ⋅ ⋅ + 0.0 1.0 ⋅ 0.5 0.5 1.0 permutation: 3-element Array{Int64,1}: diff --git a/stdlib/LinearAlgebra/src/cholesky.jl b/stdlib/LinearAlgebra/src/cholesky.jl index 1f390615da0e6c..aba49d0676332c 100644 --- a/stdlib/LinearAlgebra/src/cholesky.jl +++ b/stdlib/LinearAlgebra/src/cholesky.jl @@ -231,7 +231,9 @@ julia> A = [1 2; 2 50] 2 50 julia> cholfact!(A) -ERROR: InexactError: convert(Int64, 6.782329983125268) +ERROR: InexactError: Int64(Int64, 6.782329983125268) +Stacktrace: +[...] ``` """ function cholfact!(A::StridedMatrix, ::Val{false}=Val(false)) @@ -298,7 +300,7 @@ julia> A = [4. 12. -16.; 12. 37. -43.; -16. -43. 98.] -16.0 -43.0 98.0 julia> C = cholfact(A) -LinearAlgebra.Cholesky{Float64,Array{Float64,2}} +Cholesky{Float64,Array{Float64,2}} U factor: 3×3 UpperTriangular{Float64,Array{Float64,2}}: 2.0 6.0 -8.0 diff --git a/stdlib/LinearAlgebra/src/dense.jl b/stdlib/LinearAlgebra/src/dense.jl index a1e8997d68659d..80ef0071081a1d 100644 --- a/stdlib/LinearAlgebra/src/dense.jl +++ b/stdlib/LinearAlgebra/src/dense.jl @@ -621,8 +621,8 @@ julia> A = Matrix(2.7182818*I, 2, 2) julia> log(A) 2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 1.0 + 1.0 0.0 + -0.0 1.0 ``` """ function log(A::StridedMatrix) @@ -935,8 +935,8 @@ this function, see [^AH16_1]. ```jldoctest julia> acos(cos([0.5 0.1; -0.2 0.3])) 2×2 Array{Complex{Float64},2}: - 0.5-8.32667e-17im 0.1-2.77556e-17im - -0.2+2.77556e-16im 0.3-3.46945e-16im + 0.5-5.55112e-17im 0.1-2.77556e-17im + -0.2+2.498e-16im 0.3-3.46945e-16im ``` """ function acos(A::AbstractMatrix) diff --git a/stdlib/LinearAlgebra/src/deprecated.jl b/stdlib/LinearAlgebra/src/deprecated.jl index d1b94d363eff24..c68016c29d8168 100644 --- a/stdlib/LinearAlgebra/src/deprecated.jl +++ b/stdlib/LinearAlgebra/src/deprecated.jl @@ -333,8 +333,6 @@ end @deprecate chol!(x::Number, uplo) chol(x) false -@deprecate diff(A::AbstractMatrix) diff(A, 1) - ### deprecations for lazier, less jazzy linalg transition in the next several blocks ### # deprecate ConjArray diff --git a/stdlib/LinearAlgebra/src/diagonal.jl b/stdlib/LinearAlgebra/src/diagonal.jl index 9f7fa754b01a04..98b8b93c6396cd 100644 --- a/stdlib/LinearAlgebra/src/diagonal.jl +++ b/stdlib/LinearAlgebra/src/diagonal.jl @@ -242,8 +242,8 @@ end *(D::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:Diagonal}) = Diagonal(transpose.(D.parent.diag) .* transpose.(B.parent.diag)) -rmul!(A::Diagonal, B::Diagonal) = Diagonal(A.diag .*= B.diag) -lmul!(A::Diagonal, B::Diagonal) = Diagonal(B.diag .= A.diag .* B.diag) +rmul!(A::Diagonal, B::Diagonal) = Diagonal((A.diag .*= B.diag; A.diag)) +lmul!(A::Diagonal, B::Diagonal) = Diagonal((B.diag .= A.diag .* B.diag; B.diag)) function lmul!(adjA::Adjoint{<:Any,<:Diagonal}, B::AbstractMatrix) A = adjA.parent @@ -264,13 +264,13 @@ function rmul!(A::AbstractMatrix, transB::Transpose{<:Any,<:Diagonal}) end # Get ambiguous method if try to unify AbstractVector/AbstractMatrix here using AbstractVecOrMat -mul!(out::AbstractVector, A::Diagonal, in::AbstractVector) = out .= A.diag .* in -mul!(out::AbstractVector, A::Adjoint{<:Any,<:Diagonal}, in::AbstractVector) = out .= adjoint.(A.parent.diag) .* in -mul!(out::AbstractVector, A::Transpose{<:Any,<:Diagonal}, in::AbstractVector) = out .= transpose.(A.parent.diag) .* in +mul!(out::AbstractVector, A::Diagonal, in::AbstractVector) = (out .= A.diag .* in; out) +mul!(out::AbstractVector, A::Adjoint{<:Any,<:Diagonal}, in::AbstractVector) = (out .= adjoint.(A.parent.diag) .* in; out) +mul!(out::AbstractVector, A::Transpose{<:Any,<:Diagonal}, in::AbstractVector) = (out .= transpose.(A.parent.diag) .* in; out) -mul!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = out .= A.diag .* in -mul!(out::AbstractMatrix, A::Adjoint{<:Any,<:Diagonal}, in::AbstractMatrix) = out .= adjoint.(A.parent.diag) .* in -mul!(out::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, in::AbstractMatrix) = out .= transpose.(A.parent.diag) .* in +mul!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = (out .= A.diag .* in; out) +mul!(out::AbstractMatrix, A::Adjoint{<:Any,<:Diagonal}, in::AbstractMatrix) = (out .= adjoint.(A.parent.diag) .* in; out) +mul!(out::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, in::AbstractMatrix) = (out .= transpose.(A.parent.diag) .* in; out) mul!(C::AbstractMatrix, A::Diagonal, B::Adjoint{<:Any,<:AbstractVecOrMat}) = mul!(C, A, copy(B)) mul!(C::AbstractMatrix, A::Diagonal, B::Transpose{<:Any,<:AbstractVecOrMat}) = mul!(C, A, copy(B)) @@ -292,8 +292,10 @@ mul!(C::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:Abs *(adjD::Adjoint{<:Any,<:Diagonal}, adjA::Adjoint{<:Any,<:RealHermSymComplexHerm}) = adjD * adjA.parent mul!(C::AbstractMatrix, A::Adjoint{<:Any,<:Diagonal}, B::Adjoint{<:Any,<:RealHermSymComplexHerm}) = mul!(C, A, B.parent) mul!(C::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:RealHermSymComplexSym}) = mul!(C, A, B.parent) -mul!(C::AbstractMatrix, A::Adjoint{<:Any,<:Diagonal}, B::Adjoint{<:Any,<:RealHermSymComplexSym}) = C .= adjoint.(A.parent.diag) .* B -mul!(C::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:RealHermSymComplexHerm}) = C .= transpose.(A.parent.diag) .* B +mul!(C::AbstractMatrix, A::Adjoint{<:Any,<:Diagonal}, B::Adjoint{<:Any,<:RealHermSymComplexSym}) = + (C .= adjoint.(A.parent.diag) .* B; C) +mul!(C::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:RealHermSymComplexHerm}) = + (C .= transpose.(A.parent.diag) .* B; C) (/)(Da::Diagonal, Db::Diagonal) = Diagonal(Da.diag ./ Db.diag) diff --git a/stdlib/LinearAlgebra/src/eigen.jl b/stdlib/LinearAlgebra/src/eigen.jl index 44b6721c604bad..56890060f13f2a 100644 --- a/stdlib/LinearAlgebra/src/eigen.jl +++ b/stdlib/LinearAlgebra/src/eigen.jl @@ -75,7 +75,17 @@ make rows and columns more equal in norm. The default is `true` for both options # Examples ```jldoctest julia> F = eigfact([1.0 0.0 0.0; 0.0 3.0 0.0; 0.0 0.0 18.0]) -LinearAlgebra.Eigen{Float64,Float64,Array{Float64,2},Array{Float64,1}}([1.0, 3.0, 18.0], [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]) +Eigen{Float64,Float64,Array{Float64,2},Array{Float64,1}} +eigenvalues: +3-element Array{Float64,1}: + 1.0 + 3.0 + 18.0 +eigenvectors: +3×3 Array{Float64,2}: + 1.0 0.0 0.0 + 0.0 1.0 0.0 + 0.0 0.0 1.0 julia> F.values 3-element Array{Float64,1}: diff --git a/stdlib/LinearAlgebra/src/generic.jl b/stdlib/LinearAlgebra/src/generic.jl index 71558c27d51d0f..77789197884c17 100644 --- a/stdlib/LinearAlgebra/src/generic.jl +++ b/stdlib/LinearAlgebra/src/generic.jl @@ -238,44 +238,6 @@ See also [`tril`](@ref). """ tril!(M::AbstractMatrix) = tril!(M,0) -diff(a::AbstractVector) = [ a[i+1] - a[i] for i=1:length(a)-1 ] - -""" - diff(A::AbstractVector) - diff(A::AbstractMatrix, dim::Integer) - -Finite difference operator of matrix or vector `A`. If `A` is a matrix, -specify the dimension over which to operate with the `dim` argument. - -# Examples -```jldoctest -julia> a = [2 4; 6 16] -2×2 Array{Int64,2}: - 2 4 - 6 16 - -julia> diff(a,2) -2×1 Array{Int64,2}: - 2 - 10 - -julia> diff(vec(a)) -3-element Array{Int64,1}: - 4 - -2 - 12 -``` -""" -function diff(A::AbstractMatrix, dim::Integer) - if dim == 1 - [A[i+1,j] - A[i,j] for i=1:size(A,1)-1, j=1:size(A,2)] - elseif dim == 2 - [A[i,j+1] - A[i,j] for i=1:size(A,1), j=1:size(A,2)-1] - else - throw(ArgumentError("dimension dim must be 1 or 2, got $dim")) - end -end - diag(A::AbstractVector) = throw(ArgumentError("use diagm instead of diag to construct a diagonal matrix")) ########################################################################################### diff --git a/stdlib/LinearAlgebra/src/lu.jl b/stdlib/LinearAlgebra/src/lu.jl index 17cab622dad5b1..3dc604869305af 100644 --- a/stdlib/LinearAlgebra/src/lu.jl +++ b/stdlib/LinearAlgebra/src/lu.jl @@ -39,11 +39,11 @@ element type of `A`, e.g. for integer types. ```jldoctest julia> A = [4. 3.; 6. 3.] 2×2 Array{Float64,2}: - 6.0 3.0 4.0 3.0 + 6.0 3.0 julia> F = lufact!(A) -LinearAlgebra.LU{Float64,Array{Float64,2}} +LU{Float64,Array{Float64,2}} L factor: 2×2 Array{Float64,2}: 1.0 0.0 @@ -59,7 +59,7 @@ julia> iA = [4 3; 6 3] 6 3 julia> lufact!(iA) -ERROR: InexactError: convert(Int64, 0.6666666666666666) +ERROR: InexactError: Int64(Int64, 0.6666666666666666) Stacktrace: [...] ``` @@ -162,7 +162,7 @@ julia> A = [4 3; 6 3] 6 3 julia> F = lufact(A) -LinearAlgebra.LU{Float64,Array{Float64,2}} +LU{Float64,Array{Float64,2}} L factor: 2×2 Array{Float64,2}: 1.0 0.0 diff --git a/stdlib/LinearAlgebra/src/matmul.jl b/stdlib/LinearAlgebra/src/matmul.jl index 13c5751a312d18..af88d00a051aee 100644 --- a/stdlib/LinearAlgebra/src/matmul.jl +++ b/stdlib/LinearAlgebra/src/matmul.jl @@ -108,9 +108,7 @@ mul!(y::AbstractVector, adjA::Adjoint{<:Any,<:AbstractVecOrMat}, x::AbstractVect # Matrix-matrix multiplication """ -``` -*(A::AbstractMatrix, B::AbstractMatrix) -``` + *(A::AbstractMatrix, B::AbstractMatrix) Matrix multiplication. diff --git a/stdlib/LinearAlgebra/src/qr.jl b/stdlib/LinearAlgebra/src/qr.jl index 25a1a69e2527de..543f6600e5ccd6 100644 --- a/stdlib/LinearAlgebra/src/qr.jl +++ b/stdlib/LinearAlgebra/src/qr.jl @@ -216,9 +216,15 @@ julia> a = [1. 2.; 3. 4.] 3.0 4.0 julia> qrfact!(a) -LinearAlgebra.QRCompactWY{Float64,Array{Float64,2}} with factors Q and R: -[-0.316228 -0.948683; -0.948683 0.316228] -[-3.16228 -4.42719; 0.0 -0.632456] +LinearAlgebra.QRCompactWY{Float64,Array{Float64,2}} +Q factor: +2×2 LinearAlgebra.QRCompactWYQ{Float64,Array{Float64,2}}: + -0.316228 -0.948683 + -0.948683 0.316228 +R factor: +2×2 Array{Float64,2}: + -3.16228 -4.42719 + 0.0 -0.632456 julia> a = [1 2; 3 4] 2×2 Array{Int64,2}: @@ -226,7 +232,7 @@ julia> a = [1 2; 3 4] 3 4 julia> qrfact!(a) -ERROR: InexactError: convert(Int64, -3.1622776601683795) +ERROR: InexactError: Int64(Int64, -3.1622776601683795) Stacktrace: [...] ``` @@ -280,9 +286,16 @@ julia> A = [3.0 -6.0; 4.0 -8.0; 0.0 1.0] 0.0 1.0 julia> F = qrfact(A) -LinearAlgebra.QRCompactWY{Float64,Array{Float64,2}} with factors Q and R: -[-0.6 0.0 0.8; -0.8 0.0 -0.6; 0.0 -1.0 0.0] -[-5.0 10.0; 0.0 -1.0] +LinearAlgebra.QRCompactWY{Float64,Array{Float64,2}} +Q factor: +3×3 LinearAlgebra.QRCompactWYQ{Float64,Array{Float64,2}}: + -0.6 0.0 0.8 + -0.8 0.0 -0.6 + 0.0 -1.0 0.0 +R factor: +2×2 Array{Float64,2}: + -5.0 10.0 + 0.0 -1.0 julia> F.Q * F.R == A true diff --git a/stdlib/LinearAlgebra/src/schur.jl b/stdlib/LinearAlgebra/src/schur.jl index 410cce702409ca..ec4595351bfe22 100644 --- a/stdlib/LinearAlgebra/src/schur.jl +++ b/stdlib/LinearAlgebra/src/schur.jl @@ -22,11 +22,19 @@ julia> A = [5. 7.; -2. -4.] -2.0 -4.0 julia> F = schurfact!(A) -LinearAlgebra.Schur{Float64,Array{Float64,2}} with factors T and Z: -[3.0 9.0; 0.0 -2.0] -[0.961524 0.274721; -0.274721 0.961524] -and values: -[3.0, -2.0] +Schur{Float64,Array{Float64,2}} +T factor: +2×2 Array{Float64,2}: + 3.0 9.0 + 0.0 -2.0 +Z factor: +2×2 Array{Float64,2}: + 0.961524 0.274721 + -0.274721 0.961524 +eigenvalues: +2-element Array{Float64,1}: + 3.0 + -2.0 julia> A 2×2 Array{Float64,2}: @@ -52,11 +60,19 @@ julia> A = [5. 7.; -2. -4.] -2.0 -4.0 julia> F = schurfact(A) -LinearAlgebra.Schur{Float64,Array{Float64,2}} with factors T and Z: -[3.0 9.0; 0.0 -2.0] -[0.961524 0.274721; -0.274721 0.961524] -and values: -[3.0, -2.0] +Schur{Float64,Array{Float64,2}} +T factor: +2×2 Array{Float64,2}: + 3.0 9.0 + 0.0 -2.0 +Z factor: +2×2 Array{Float64,2}: + 0.961524 0.274721 + -0.274721 0.961524 +eigenvalues: +2-element Array{Float64,1}: + 3.0 + -2.0 julia> F.vectors * F.Schur * F.vectors' 2×2 Array{Float64,2}: diff --git a/stdlib/LinearAlgebra/src/transpose.jl b/stdlib/LinearAlgebra/src/transpose.jl index 5b67703c57ee75..747be1c155efcc 100644 --- a/stdlib/LinearAlgebra/src/transpose.jl +++ b/stdlib/LinearAlgebra/src/transpose.jl @@ -146,29 +146,35 @@ function ccopy!(B, A) end """ - transpose(A::AbstractMatrix) + copy(A::Transpose) + copy(A::Adjoint) -Eager matrix transpose. Note that the transposition is applied recursively to -elements. +Eagerly evaluate the lazy matrix transpose/adjoint. +Note that the transposition is applied recursively to elements. This operation is intended for linear algebra usage - for general data manipulation see [`permutedims`](@ref), which is non-recursive. # Examples ```jldoctest -julia> A = [1 2 3; 4 5 6; 7 8 9] -3×3 Array{Int64,2}: - 1 2 3 - 4 5 6 - 7 8 9 - -julia> transpose(A) -3×3 Array{Int64,2}: - 1 4 7 - 2 5 8 - 3 6 9 +julia> A = [1 2im; -3im 4] +2×2 Array{Complex{Int64},2}: + 1+0im 0+2im + 0-3im 4+0im + +julia> T = transpose(A) +2×2 Transpose{Complex{Int64},Array{Complex{Int64},2}}: + 1+0im 0-3im + 0+2im 4+0im + +julia> copy(T) +2×2 Array{Complex{Int64},2}: + 1+0im 0-3im + 0+2im 4+0im ``` """ +copy(::Union{Transpose,Adjoint}) + Base.copy(A::Transpose{<:Any,<:AbstractMatrix}) = transpose!(similar(A.parent, reverse(axes(A.parent))), A.parent) Base.copy(A::Adjoint{<:Any,<:AbstractMatrix}) = adjoint!(similar(A.parent, reverse(axes(A.parent))), A.parent) diff --git a/stdlib/LinearAlgebra/src/tridiag.jl b/stdlib/LinearAlgebra/src/tridiag.jl index 1b9c4eaf0df5b4..74f2016b0c1c5e 100644 --- a/stdlib/LinearAlgebra/src/tridiag.jl +++ b/stdlib/LinearAlgebra/src/tridiag.jl @@ -305,14 +305,6 @@ end # Generic methods # ################### -#Needed for inv_usmani() -struct ZeroOffsetVector - data::Vector -end -getindex(a::ZeroOffsetVector, i) = a.data[i+1] -setindex!(a::ZeroOffsetVector, x, i) = a.data[i+1]=x - - ## structured matrix methods ## function Base.replace_in_print_matrix(A::SymTridiagonal, i::Integer, j::Integer, s::AbstractString) i==j-1||i==j||i==j+1 ? s : Base.replace_with_centered_mark(s) @@ -327,11 +319,11 @@ end # doi:10.1016/0024-3795(94)90414-6 function inv_usmani(a::V, b::V, c::V) where {T,V<:AbstractVector{T}} n = length(b) - θ = ZeroOffsetVector(zeros(T, n+1)) #principal minors of A - θ[0] = 1 - n>=1 && (θ[1] = b[1]) + θ = zeros(T, n+1) #principal minors of A + θ[1] = 1 + n>=1 && (θ[2] = b[1]) for i=2:n - θ[i] = b[i]*θ[i-1]-a[i-1]*c[i-1]*θ[i-2] + θ[i+1] = b[i]*θ[i]-a[i-1]*c[i-1]*θ[i-1] end φ = zeros(T, n+1) φ[n+1] = 1 @@ -343,11 +335,11 @@ function inv_usmani(a::V, b::V, c::V) where {T,V<:AbstractVector{T}} for i=1:n, j=1:n sign = (i+j)%2==0 ? (+) : (-) if ij - α[i,j]=(sign)(prod(a[j:i-1]))*θ[j-1]*φ[i+1]/θ[n] + α[i,j]=(sign)(prod(a[j:i-1]))*θ[j]*φ[i+1]/θ[n+1] end end α diff --git a/stdlib/LinearAlgebra/test/adjtrans.jl b/stdlib/LinearAlgebra/test/adjtrans.jl index 0d5f3362c4ee55..9dd5b068a5dcd6 100644 --- a/stdlib/LinearAlgebra/test/adjtrans.jl +++ b/stdlib/LinearAlgebra/test/adjtrans.jl @@ -447,4 +447,17 @@ end @test adjoint!(b, a) === b end +@testset "aliasing with adjoint and transpose" begin + A = collect(reshape(1:25, 5, 5)) .+ rand.().*im + B = copy(A) + B .= B' + @test B == A' + B = copy(A) + B .= transpose(B) + @test B == transpose(A) + B = copy(A) + B .= B .* B' + @test B == A .* A' +end + end # module TestAdjointTranspose diff --git a/stdlib/LinearAlgebra/test/dense.jl b/stdlib/LinearAlgebra/test/dense.jl index 561132982773cd..0a1dd9ab0ab9ec 100644 --- a/stdlib/LinearAlgebra/test/dense.jl +++ b/stdlib/LinearAlgebra/test/dense.jl @@ -796,13 +796,13 @@ end r = (elty <: Complex ? adjoint : transpose)(rand(elty, 5)) cm = rand(elty, 5, 1) rm = rand(elty, 1, 5) - @testset "inner prodcuts" begin + @testset "inner products" begin test_div_pinv_consistency(r, c) test_div_pinv_consistency(rm, c) test_div_pinv_consistency(r, cm) test_div_pinv_consistency(rm, cm) end - @testset "outer prodcuts" begin + @testset "outer products" begin test_div_pinv_consistency(c, r) test_div_pinv_consistency(cm, rm) end diff --git a/stdlib/LinearAlgebra/test/generic.jl b/stdlib/LinearAlgebra/test/generic.jl index 9f583cfe0df209..cd44f36a96ab40 100644 --- a/stdlib/LinearAlgebra/test/generic.jl +++ b/stdlib/LinearAlgebra/test/generic.jl @@ -89,21 +89,6 @@ n = 5 # should be odd end end -@testset "diff" begin - # test diff, throw ArgumentError for invalid dimension argument - X = [3 9 5; - 7 4 2; - 2 1 10] - @test diff(X,1) == [4 -5 -3; -5 -3 8] - @test diff(X,2) == [6 -4; -3 -2; -1 9] - @test diff(view(X, 1:2, 1:2),1) == [4 -5] - @test diff(view(X, 1:2, 1:2),2) == reshape([6; -3], (2,1)) - @test diff(view(X, 2:3, 2:3),1) == [-3 8] - @test diff(view(X, 2:3, 2:3),2) == reshape([-2; 9], (2,1)) - @test_throws ArgumentError diff(X,3) - @test_throws ArgumentError diff(X,-1) -end - @testset "linrange" begin # make sure unequal input arrays throw an error x = [2; 5; 6] @@ -350,6 +335,7 @@ Base.zero(::Type{ModInt{n}}) where {n} = ModInt{n}(0) Base.zero(::ModInt{n}) where {n} = ModInt{n}(0) Base.one(::Type{ModInt{n}}) where {n} = ModInt{n}(1) Base.one(::ModInt{n}) where {n} = ModInt{n}(1) +Base.conj(a::ModInt{n}) where {n} = a Base.adjoint(a::ModInt{n}) where {n} = ModInt{n}(conj(a)) Base.transpose(a::ModInt{n}) where {n} = a # see Issue 20978 LinearAlgebra.Adjoint(a::ModInt{n}) where {n} = adjoint(a) diff --git a/stdlib/Logging/src/ConsoleLogger.jl b/stdlib/Logging/src/ConsoleLogger.jl index 5030852bffbca9..4d518bf13e61c1 100644 --- a/stdlib/Logging/src/ConsoleLogger.jl +++ b/stdlib/Logging/src/ConsoleLogger.jl @@ -1,7 +1,7 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license """ - ConsoleLogger(stream=STDERR, min_level=Info; meta_formatter=default_metafmt, + ConsoleLogger(stream=stderr, min_level=Info; meta_formatter=default_metafmt, show_limited=true, right_justify=0) Logger with formatting optimized for readability in a text console, for example @@ -30,7 +30,7 @@ struct ConsoleLogger <: AbstractLogger right_justify::Int message_limits::Dict{Any,Int} end -function ConsoleLogger(stream::IO=STDERR, min_level=Info; +function ConsoleLogger(stream::IO=stderr, min_level=Info; meta_formatter=default_metafmt, show_limited=true, right_justify=0) ConsoleLogger(stream, min_level, meta_formatter, diff --git a/stdlib/Logging/src/Logging.jl b/stdlib/Logging/src/Logging.jl index 8e38277bd513c2..c9fda4fe88d557 100644 --- a/stdlib/Logging/src/Logging.jl +++ b/stdlib/Logging/src/Logging.jl @@ -52,4 +52,8 @@ include("ConsoleLogger.jl") # 2. AbstractLogger message related functions: # handle_message, shouldlog, min_enabled_level, catch_exceptions, +function __init__() + global_logger(ConsoleLogger(stderr)) +end + end diff --git a/stdlib/Logging/test/runtests.jl b/stdlib/Logging/test/runtests.jl index bc597f5fde7e14..9139d19f78297f 100644 --- a/stdlib/Logging/test/runtests.jl +++ b/stdlib/Logging/test/runtests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using Logging +using Test, Logging import Logging: min_enabled_level, shouldlog, handle_message @@ -10,11 +10,11 @@ import Logging: min_enabled_level, shouldlog, handle_message @testset "ConsoleLogger" begin # First pass log limiting - @test min_enabled_level(ConsoleLogger(DevNull, Logging.Debug)) == Logging.Debug - @test min_enabled_level(ConsoleLogger(DevNull, Logging.Error)) == Logging.Error + @test min_enabled_level(ConsoleLogger(devnull, Logging.Debug)) == Logging.Debug + @test min_enabled_level(ConsoleLogger(devnull, Logging.Error)) == Logging.Error # Second pass log limiting - logger = ConsoleLogger(DevNull) + logger = ConsoleLogger(devnull) @test shouldlog(logger, Logging.Info, Base, :group, :asdf) === true handle_message(logger, Logging.Info, "msg", Base, :group, :asdf, "somefile", 1, maxlog=2) @test shouldlog(logger, Logging.Info, Base, :group, :asdf) === true diff --git a/stdlib/Markdown/src/render/plain.jl b/stdlib/Markdown/src/render/plain.jl index 5d50b5c2080f1b..dbee4dcf33fa68 100644 --- a/stdlib/Markdown/src/render/plain.jl +++ b/stdlib/Markdown/src/render/plain.jl @@ -22,7 +22,7 @@ end function plain(io::IO, code::Code) # If the code includes a fenced block this will break parsing, # so it must be enclosed by a longer ````-sequence. - n = mapreduce(length, max, 2, matchall(r"^`+"m, code.code)) + 1 + n = mapreduce(m -> length(m.match), max, 2, eachmatch(r"^`+"m, code.code)) + 1 println(io, "`" ^ n, code.language) println(io, code.code) println(io, "`" ^ n) @@ -121,7 +121,7 @@ plaininline(io::IO, md::Italic) = plaininline(io, "*", md.text, "*") function plaininline(io::IO, md::Code) if contains(md.code, "`") - n = maximum(length(m) for m in matchall(r"(`+)", md.code)) + n = maximum(length(m.match) for m in eachmatch(r"(`+)", md.code)) s = "`"^((iseven(n) ? 1 : 2) + n) print(io, s, Base.startswith(md.code, "`") ? " " : "") print(io, md.code, endswith(md.code, "`") ? " " : "", s) diff --git a/stdlib/Markdown/src/render/rich.jl b/stdlib/Markdown/src/render/rich.jl index 9a3b45d97c2b50..0e6caa89797f09 100644 --- a/stdlib/Markdown/src/render/rich.jl +++ b/stdlib/Markdown/src/render/rich.jl @@ -22,7 +22,7 @@ end function bestmime(val) for mime in ("text/html", "image/svg+xml", "image/png", "text/plain") - mimewritable(mime, val) && return MIME(Symbol(mime)) + showable(mime, val) && return MIME(Symbol(mime)) end error("Cannot render $val to Markdown.") end diff --git a/stdlib/Markdown/test/runtests.jl b/stdlib/Markdown/test/runtests.jl index 6fb93adcd0eeca..8512b54324f773 100644 --- a/stdlib/Markdown/test/runtests.jl +++ b/stdlib/Markdown/test/runtests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using Markdown +using Test, Markdown import Markdown: MD, Paragraph, Header, Italic, Bold, LineBreak, plain, term, html, rst, Table, Code, LaTeX, Footnote import Base: show diff --git a/stdlib/Mmap/docs/src/index.md b/stdlib/Mmap/docs/src/index.md index ada88b153de645..9bd623daebdf5f 100644 --- a/stdlib/Mmap/docs/src/index.md +++ b/stdlib/Mmap/docs/src/index.md @@ -1,7 +1,15 @@ # Memory-mapped I/O +```@meta +DocTestSetup = :(using Mmap) +``` + ```@docs Mmap.Anonymous Mmap.mmap Mmap.sync! ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Mmap/src/Mmap.jl b/stdlib/Mmap/src/Mmap.jl index 50e54bcc24cabe..8994ea3d32ed46 100644 --- a/stdlib/Mmap/src/Mmap.jl +++ b/stdlib/Mmap/src/Mmap.jl @@ -26,8 +26,6 @@ for use in [`Mmap.mmap`](@ref Mmap.mmap). Used by `SharedArray` for creating sha # Examples ```jldoctest -julia> using Mmap - julia> anon = Mmap.Anonymous(); julia> isreadable(anon) @@ -263,8 +261,6 @@ the byte representation is different. # Examples ```jldoctest -julia> using Mmap - julia> io = open("mmap.bin", "w+"); julia> B = Mmap.mmap(io, BitArray, (25,30000)); diff --git a/stdlib/Pkg/docs/src/index.md b/stdlib/Pkg/docs/src/index.md index b7cd68686a81eb..47f3f9640f7cee 100644 --- a/stdlib/Pkg/docs/src/index.md +++ b/stdlib/Pkg/docs/src/index.md @@ -1,5 +1,9 @@ # Package Manager Functions +```@meta +DocTestSetup = :(using Pkg) +``` + All package manager functions are defined in the `Pkg` module. None of the `Pkg` module's functions are exported; to use them, you'll need to prefix each function call with an explicit `Pkg.`, e.g. [`Pkg.status()`](@ref) or [`Pkg.dir()`](@ref). @@ -28,3 +32,7 @@ Pkg.build Pkg.test Pkg.dependents ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Pkg/src/Pkg.jl b/stdlib/Pkg/src/Pkg.jl index 88cd02050ba989..d2e1e561df2c74 100644 --- a/stdlib/Pkg/src/Pkg.jl +++ b/stdlib/Pkg/src/Pkg.jl @@ -89,7 +89,6 @@ init(meta::AbstractString=DEFAULT_META, branch::AbstractString=META_BRANCH) = Di function __init__() vers = "v$(VERSION.major).$(VERSION.minor)" push!(Base.LOAD_PATH, dir) - pushfirst!(Base.LOAD_CACHE_PATH, abspath(Dir._pkgroot(), "lib", vers)) end """ @@ -152,14 +151,14 @@ installed(pkg::AbstractString) = cd(Entry.installed,splitjl(pkg)) Prints out a summary of what packages are installed and what version and state they're in. """ -status(io::IO=STDOUT) = cd(Entry.status,io) +status(io::IO=stdout) = cd(Entry.status,io) """ status(pkg) Prints out a summary of what version and state `pkg`, specifically, is in. """ -status(pkg::AbstractString, io::IO=STDOUT) = cd(Entry.status,io,splitjl(pkg)) +status(pkg::AbstractString, io::IO=stdout) = cd(Entry.status,io,splitjl(pkg)) """ clone(pkg) diff --git a/stdlib/Pkg/src/entry.jl b/stdlib/Pkg/src/entry.jl index 21a9cbd982fb9a..e545153f0155b2 100644 --- a/stdlib/Pkg/src/entry.jl +++ b/stdlib/Pkg/src/entry.jl @@ -588,8 +588,6 @@ function build(pkg::AbstractString, build_file::AbstractString, errfile::Abstrac append!(Base.LOAD_PATH, $(repr(LOAD_PATH, context=:module=>nothing))) empty!(Base.DEPOT_PATH) append!(Base.DEPOT_PATH, $(repr(DEPOT_PATH))) - empty!(Base.LOAD_CACHE_PATH) - append!(Base.LOAD_CACHE_PATH, $(repr(Base.LOAD_CACHE_PATH))) empty!(Base.DL_LOAD_PATH) append!(Base.DL_LOAD_PATH, $(repr(Base.DL_LOAD_PATH))) open("$(escape_string(errfile))", "a") do f @@ -618,7 +616,7 @@ function build(pkg::AbstractString, build_file::AbstractString, errfile::Abstrac --eval $code ``` - success(pipeline(cmd, stdout=STDOUT, stderr=STDERR)) + success(pipeline(cmd, stdout=stdout, stderr=stderr)) end function build!(pkgs::Vector, seen::Set, errfile::AbstractString) @@ -685,7 +683,7 @@ function updatehook(pkgs::Vector) errs = Dict() updatehook!(pkgs,errs) isempty(errs) && return - println(STDERR) + println(stderr) @warn """ ------------------------------------------------------------ # Update hook summary diff --git a/stdlib/Pkg/test/pkg.jl b/stdlib/Pkg/test/pkg.jl index fb37268ec549f1..c033d0fae4d6ff 100644 --- a/stdlib/Pkg/test/pkg.jl +++ b/stdlib/Pkg/test/pkg.jl @@ -414,13 +414,13 @@ temp_pkg_dir() do touch(depsbuild) # Pkg.build works without the src directory now # but it's probably fine to require it. - msg = read(`$(Base.julia_cmd()) --startup-file=no -e 'redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); import Pkg; Pkg.build("BuildFail")'`, String) + msg = read(`$(Base.julia_cmd()) --startup-file=no -e 'redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); import Pkg; Pkg.build("BuildFail")'`, String) @test contains(msg, "Building BuildFail") @test !contains(msg, "Build failed for BuildFail") open(depsbuild, "w") do fd println(fd, "error(\"Throw build error\")") end - msg = read(`$(Base.julia_cmd()) --startup-file=no -e 'redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); import Pkg; Pkg.build("BuildFail")'`, String) + msg = read(`$(Base.julia_cmd()) --startup-file=no -e 'redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); import Pkg; Pkg.build("BuildFail")'`, String) @test contains(msg, "Building BuildFail") @test contains(msg, "Build failed for BuildFail") @test contains(msg, "Pkg.build(\"BuildFail\")") @@ -431,7 +431,7 @@ temp_pkg_dir() do let package = "Example" Pkg.rm(package) # Remove package if installed @test Pkg.installed(package) === nothing # Registered with METADATA but not installed - msg = read(ignorestatus(`$(Base.julia_cmd()) --startup-file=no -e "redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); import Pkg; Pkg.build(\"$package\")"`), String) + msg = read(ignorestatus(`$(Base.julia_cmd()) --startup-file=no -e "redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); import Pkg; Pkg.build(\"$package\")"`), String) @test contains(msg, "$package is not an installed package") @test !contains(msg, "signal (15)") end @@ -546,7 +546,7 @@ temp_pkg_dir() do Pkg.add(package) msg = read(ignorestatus(`$(Base.julia_cmd()) --startup-file=no -e - "redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); using Example; import Pkg; Pkg.update(\"$package\")"`), String) + "redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); using Example; import Pkg; Pkg.update(\"$package\")"`), String) @test contains(msg, Regex("- $package.*Restart Julia to use the updated versions","s")) end @@ -563,13 +563,14 @@ temp_pkg_dir() do mkpath(dirname(test_filename)) write(test_filename, content) - # Make a .juliarc.jl + # Make a ~/.julia/config/startup.jl home = Pkg.dir(".home") - mkdir(home) - write(joinpath(home, ".juliarc.jl"), "const JULIA_RC_LOADED = true") + mkpath(joinpath(home, ".julia", "config")) + write(joinpath(home, ".julia", "config", "startup.jl"), + "const JULIA_RC_LOADED = true") withenv((Sys.iswindows() ? "USERPROFILE" : "HOME") => home) do - code = "redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); import Pkg; Pkg.build(\"$package\")" + code = "redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); import Pkg; Pkg.build(\"$package\")" msg = read(`$(Base.julia_cmd()) --startup-file=no -e $code`, String) @test contains(msg, "JULIA_RC_LOADED defined false") @test contains(msg, "Main.JULIA_RC_LOADED defined false") @@ -578,14 +579,14 @@ temp_pkg_dir() do @test contains(msg, "JULIA_RC_LOADED defined false") @test contains(msg, "Main.JULIA_RC_LOADED defined true") - code = "redirect_stderr(STDOUT); using Logging; global_logger(SimpleLogger(STDOUT)); import Pkg; Pkg.test(\"$package\")" + code = "redirect_stderr(stdout); using Logging; global_logger(SimpleLogger(stdout)); import Pkg; Pkg.test(\"$package\")" msg = read(`$(Base.julia_cmd()) --startup-file=no -e $code`, String) @test contains(msg, "JULIA_RC_LOADED defined false") @test contains(msg, "Main.JULIA_RC_LOADED defined false") # Note: Since both the startup-file and "runtests.jl" are run in the Main - # module any global variables created in the .juliarc.jl can be referenced. + # module any global variables created in the startup file can be referenced. msg = read(`$(Base.julia_cmd()) --startup-file=yes -e $code`, String) @test contains(msg, "JULIA_RC_LOADED defined true") @test contains(msg, "Main.JULIA_RC_LOADED defined true") @@ -596,8 +597,8 @@ temp_pkg_dir() do stdout_file = Pkg.dir(package, "stdout.txt") stderr_file = Pkg.dir(package, "stderr.txt") content = """ - println(STDOUT, "stdout") - println(STDERR, "stderr") + println(stdout, "stdout") + println(stderr, "stderr") """ write_build(package, content) diff --git a/stdlib/Pkg3/.codecov.yml b/stdlib/Pkg3/.codecov.yml new file mode 100644 index 00000000000000..69cb76019a4743 --- /dev/null +++ b/stdlib/Pkg3/.codecov.yml @@ -0,0 +1 @@ +comment: false diff --git a/stdlib/Pkg3/.gitignore b/stdlib/Pkg3/.gitignore new file mode 100644 index 00000000000000..6207492ec8f582 --- /dev/null +++ b/stdlib/Pkg3/.gitignore @@ -0,0 +1,4 @@ +/tmp +*.jl.mem +*.jl.cov +*.jl.*.cov diff --git a/stdlib/Pkg3/.travis.yml b/stdlib/Pkg3/.travis.yml new file mode 100644 index 00000000000000..31f144138b91d2 --- /dev/null +++ b/stdlib/Pkg3/.travis.yml @@ -0,0 +1,22 @@ +language: julia + +julia: + - nightly + +os: + - linux + - osx + +notifications: + email: false + +before_script: + - export PATH=$HOME/.local/bin:$PATH + +script: + - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi + - julia --check-bounds=yes -e 'Pkg.clone(pwd()); Pkg.build("Pkg3"); Pkg.test("Pkg3"; coverage=true)' + +after_success: + - julia -e 'cd(Pkg.dir("Pkg3")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' + diff --git a/stdlib/Pkg3/Compat.toml b/stdlib/Pkg3/Compat.toml new file mode 100644 index 00000000000000..e05d66169805c5 --- /dev/null +++ b/stdlib/Pkg3/Compat.toml @@ -0,0 +1,36 @@ +[123] # this name doesn't matter, just needs to be unique +url = "http://github.com/PkgA/issues/123" +desc = "PkgA accidentally changed its `foo` API and broke PkgB" + +# The name/uuid mapping of a package is recorded when a compatibility entry +# is created. This is only used to decode the package names below and does +# not need to match the name used in Config.toml or Manifest.toml, nor do +# they need to be updated later if those change for any reason. They may be +# updated, however, for clarity. + + [123.uuids] + PkgA = "uuid#1" + PkgB = "uuid#2" + +# A key-value pair in a broken/fixed stanza is satisfied if the named package +# on the LHS is checked out at a commit that is a descendant of the commit on +# the RHS. A broken/fixed stanza is satisfied if all of its key-value pairs +# are satisfied. If the value of "broken" or "fixed" is a single stanza (i.e. +# a dict) then it is satisfied if that stanza is. If a "broken" or "fixed" +# entry is an array, then it is satisfied if any of its stanzas are satisfied. +# A set of package versions is considered "broken" if the "broken" entry is +# satisfied but the "fixed" entry is not satisfied. + + [123.broken] + PkgA = "commit#1" + PkgB = "commit#2" + + [[123.fixed]] + PkgA = "commit#5" + PkgB = "commit#6" + + [[123.fixed]] + PkgA = "commit#3" + + [[123.fixed]] + PkgB = "commit#4" diff --git a/stdlib/Pkg3/LICENSE.md b/stdlib/Pkg3/LICENSE.md new file mode 100644 index 00000000000000..4912e242e7e412 --- /dev/null +++ b/stdlib/Pkg3/LICENSE.md @@ -0,0 +1,47 @@ +The Pkg3.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2017: Stefan Karpinski. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> + +The file PlatformEngines.jl is under the following license: + +The BinaryProvider.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2017: SimonDanisch. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/Project.toml b/stdlib/Pkg3/Project.toml new file mode 100644 index 00000000000000..9d69bef3e15290 --- /dev/null +++ b/stdlib/Pkg3/Project.toml @@ -0,0 +1,15 @@ +desc = "The next-generation Julia package manager." +keywords = ["package", "management"] +license = "MIT" +name = "Pkg3" +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[deps] +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" +Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce" +UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" diff --git a/stdlib/Pkg3/README.md b/stdlib/Pkg3/README.md new file mode 100644 index 00000000000000..27b68211b26f67 --- /dev/null +++ b/stdlib/Pkg3/README.md @@ -0,0 +1,67 @@ +# Pkg3 + +[![Build Status](https://travis-ci.org/JuliaLang/Pkg3.jl.svg?branch=master)](https://travis-ci.org/JuliaLang/Pkg3.jl) [![Build status](https://ci.appveyor.com/api/projects/status/ywiwk98gvye1ov6x/branch/master?svg=true)](https://ci.appveyor.com/project/KristofferC/pkg3-jl-li0m6/branch/master) [![codecov](https://codecov.io/gh/JuliaLang/Pkg3.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaLang/Pkg3.jl) + +Next-generation package manager for Julia. Still quite alpha. The last commit that works on 0.6 is [4bd137919](https://github.com/JuliaLang/Pkg3.jl/commit/4bd1379195ce10056c26fb689f732907dd4f09fa). + +To install, `Pkg.clone` the `Pkg3` repo itself: + +```jl +Pkg.clone("https://github.com/JuliaLang/Pkg3.jl.git") +``` + +Packages are installed under `joinpath(homedir(), ".julia", "packages")`, so they won't influence the packages that you already have installed. + +```jl +$ julia + +julia> using Pkg3 +``` + +This gives you a `pkg> ` REPL mode, activated by the `]` key. Currently, this supports thee operations: `add`, `rm` and `up`: + +```jl +pkg> add JSON +INFO: Resolving package versions +INFO: Cloning [682c06a0-de6a-54ab-a142-c8b1cf79cde6] JSON +INFO: Installing JSON v0.13.0 [9003b4622ec7e553] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] + Compat v0.31.0 +INFO: [682c06a0] + JSON v0.13.0 + +pkg> add Compat @0.28 +INFO: Resolving package versions +INFO: Installing Compat v0.28.0 [0427af7e2c8610c8] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] ↓ Compat v0.31.0 ⇒ v0.28.0 + +pkg> rm Compat +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [-] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" +INFO: [-] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] - Compat v0.28.0 +INFO: [682c06a0] - JSON v0.13.0 + +pkg> add JSON @0.10 +INFO: Resolving package versions +INFO: Installing JSON v0.10.0 [77699b5cc09b169c] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] + Compat v0.31.0 +INFO: [682c06a0] + JSON v0.10.0 + +pkg> up +INFO: Resolving package versions +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [no changes] +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [682c06a0] ↑ JSON v0.10.0 ⇒ v0.13.0 +``` + +Package operations create a `Project.toml` file that record what dependencies your project (or named global environment) has – i.e. what you've explicitly added. It also creates a `Manifest.toml` file that records the exact versions of each of those dependenices and their transitive dependencies – and the graph between them. You can load top-level dependencies via the usual `using JSON` or `import JSON` constructs in the REPL or in Julia scripts. diff --git a/stdlib/Pkg3/REQUIRE b/stdlib/Pkg3/REQUIRE new file mode 100644 index 00000000000000..4aa321c1e26fee --- /dev/null +++ b/stdlib/Pkg3/REQUIRE @@ -0,0 +1 @@ +julia 0.7- diff --git a/stdlib/Pkg3/appveyor.yml b/stdlib/Pkg3/appveyor.yml new file mode 100644 index 00000000000000..3a2777692c3f87 --- /dev/null +++ b/stdlib/Pkg3/appveyor.yml @@ -0,0 +1,39 @@ +environment: + matrix: + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" +# If there's a newer build queued for the same PR, cancel this one + - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` + throw "There are newer queued builds for this pull request, failing early." } +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"Pkg3\"); Pkg.build(\"Pkg3\")" + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"Pkg3\")" + diff --git a/stdlib/Pkg3/bin/.gitignore b/stdlib/Pkg3/bin/.gitignore new file mode 100644 index 00000000000000..71d9778175bc89 --- /dev/null +++ b/stdlib/Pkg3/bin/.gitignore @@ -0,0 +1 @@ +stdlib.toml.old diff --git a/stdlib/Pkg3/bin/generate.jl b/stdlib/Pkg3/bin/generate.jl new file mode 100644 index 00000000000000..01c51d71d91bb4 --- /dev/null +++ b/stdlib/Pkg3/bin/generate.jl @@ -0,0 +1,122 @@ +#!/usr/bin/env julia + +prefix = joinpath(homedir(), ".julia", "registries", "Uncurated") + +write_toml(prefix, "Registry") do io + repo = "https://github.com/JuliaRegistries/Uncurated.git" + uuid = string(uuid5(uuid_registry, repo)) + println(io, "name = ", repr("Uncurated")) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(repo)) + println(io, "\ndescription = \"\"\"") + print(io, """ + Official uncurated Julia package registry where people can + register any package they want without too much debate about + naming and without enforced standards on documentation or + testing. We nevertheless encourage documentation, testing and + some amount of consideration when choosing package names. + """) + println(io, "\"\"\"") + println(io, "\n[packages]") + for (pkg, p) in sort!(collect(pkgs), by=(p->p.uuid.value)∘last) + bucket = string(uppercase(first(pkg))) + path = joinpath(bucket, pkg) + println(io, p.uuid, " = { name = ", repr(pkg), ", path = ", repr(path), " }") + end +end + +buckets = Dict() +for (pkg, p) in pkgs + bucket = string(uppercase(first(pkg))) + push!(get!(buckets, bucket, []), (pkg, p)) +end + +const trees, stdlibs = gitmeta(pkgs) + +for pkg in STDLIBS + tree = stdlib_trees[pkg] + deps = Dict(dep => Require(VersionInterval()) for dep in stdlib_deps[pkg]) + pkgs[pkg] = Package( + UUID(stdlib_uuids[pkg]), + "https://github.com/JuliaLang/julia.git", + Dict(VersionNumber(0,7,0,("DEV",),("r"*tree[1:8],)) => Version(tree, deps)), + ) +end + +for (pkg, p) in pkgs + uuid = string(p.uuid) + haskey(stdlibs, uuid) || continue + for (ver, v) in p.versions + n = get(stdlibs[uuid], v.sha1, 0) + n == 0 && continue + for lib in STDLIBS + if n & 1 != 0 + v.requires[lib] = Require(VersionInterval()) + end + n >>>= 1 + end + end +end + +for (bucket, b_pkgs) in buckets, (pkg, p) in b_pkgs + haskey(stdlibs, pkg) && continue + url = p.url + uuid = string(p.uuid) + startswith(url, "git://github.com") && (url = "https"*url[4:end]) + + # Package.toml + write_toml(prefix, bucket, pkg, "Package") do io + println(io, "name = ", repr(pkg)) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(url)) + end + + # Versions.toml + write_toml(prefix, bucket, pkg, "Versions") do io + for (i, (ver, v)) in enumerate(sort!(collect(p.versions), by=first)) + i > 1 && println(io) + println(io, "[", toml_key(string(ver)), "]") + println(io, "git-tree-sha1 = ", repr(trees[uuid][v.sha1])) + end + end + versions = sort!(collect(keys(p.versions))) + + function write_versions_data(f::Function, name::String; lt::Function=isless) + data = Dict{VersionNumber,Dict{String,String}}() + for (ver, v) in p.versions, (dep, d) in v.requires + val = f(dep, d) + val == nothing && continue + haskey(data, ver) || (data[ver] = Dict{String,String}()) + data[ver][dep] = val + end + compressed = compress_versions_data(data, versions) + !isempty(compressed) && write_toml(prefix, bucket, pkg, name) do io + vers = unique(getindex.(compressed, 1)) + keys = sort!(unique(getindex.(compressed, 2)), lt=lt) + what = (vers, keys) + ord = (1, 2) + for (i, x) in enumerate(what[ord[1]]) + i > 1 && println(io) + println(io, "[", toml_key(x), "]") + for y in what[ord[2]] + for t in compressed + t[ord[1]] == x && t[ord[2]] == y || continue + println(io, toml_key(y), " = ", t[3]) + end + end + end + end + end + + # Deps.toml + write_versions_data("Deps") do dep, d + dep == "julia" ? nothing : repr(string(pkgs[dep].uuid)) + end + + # Compat.toml + write_versions_data("Compat", lt=packagelt) do dep, d + dep in STDLIBS ? nothing : versions_repr(compress_versions( + d.versions, collect(keys(pkgs[dep].versions)) + )) + end +end diff --git a/stdlib/Pkg3/bin/genstdlib.jl b/stdlib/Pkg3/bin/genstdlib.jl new file mode 100644 index 00000000000000..42d4dbea02689e --- /dev/null +++ b/stdlib/Pkg3/bin/genstdlib.jl @@ -0,0 +1,84 @@ +#!/usr/bin/env julia + +import Pkg3: TOML + +prefix = joinpath(homedir(), ".julia", "registries", "Stdlib") + +# TODO: use Sys.STDLIBDIR instead once implemented +let vers = "v$(VERSION.major).$(VERSION.minor)" +global stdlibdir = realpath(abspath(Sys.BINDIR, "..", "share", "julia", "site", vers)) +isdir(stdlibdir) || error("stdlib directory does not exist: $stdlibdir") +end +juliadir = dirname(stdlibdir) + +stdlib_uuids = Dict{String,String}() +stdlib_trees = Dict{String,String}() +stdlib_deps = Dict{String,Vector{String}}() + +for pkg in readdir(stdlibdir) + project_file = joinpath(stdlibdir, pkg, "Project.toml") + isfile(project_file) || continue + project = TOML.parsefile(project_file) + stdlib_uuids[pkg] = project["uuid"] + stdlib_trees[pkg] = split(readchomp(`git -C $juliadir ls-tree HEAD -- stdlib/$pkg`))[3] + stdlib_deps[pkg] = String[] + haskey(project, "deps") || continue + append!(stdlib_deps[pkg], sort!(collect(keys(project["deps"])))) +end + +#= +write_toml(prefix, "Registry") do io + repo = "https://github.com/JuliaRegistries/Stdlib.git" + uuid = string(uuid5(uuid_registry, repo)) + println(io, "name = ", repr("Stdlib")) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(repo)) + println(io, "\ndescription = \"\"\"") + print(io, """ + Official Julia Standard Library registry where versions + of packages that ship with Julia itself are registered. + """) + println(io, "\"\"\"") + println(io, "\n[packages]") + for pkg in sort!(collect(keys(stdlib_deps)), by=pkg->stdlib_uuids[pkg]) + println(io, stdlib_uuids[pkg], " = { name = ", repr(pkg), ", path = ", repr(pkg), " }") + end +end + +for (pkg, uuid) in stdlib_uuids + url = "https://github.com/JuliaLang/julia.git" + tree = stdlib_trees[pkg] + deps = stdlib_deps[pkg] + + # Package.toml + write_toml(prefix, pkg, "Package") do io + println(io, "name = ", repr(pkg)) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(url)) + end + + # Versions.toml + write_toml(prefix, pkg, "Versions") do io + println(io, "[", toml_key("0.7.0-DEV+r$(tree[1:8])"), "]") + println(io, "tree.git.sha1 = ", repr(tree)) + end + + # Deps.toml + if isempty(deps) + rm(joinpath(prefix, pkg, "Deps.toml"), force=true) + else + write_toml(prefix, pkg, "Deps") do io + println(io, "[", toml_key("0.7"), "]") + for dep in sort!(deps, by=lowercase) + println(io, "$dep = ", repr(stdlib_uuids[dep])) + end + end + end + + # Compat.toml + write_toml(prefix, pkg, "Compat") do io + println(io, "[", toml_key("0.7"), "]") + println(io, "julia = \"0.7\"") + end +end +=# diff --git a/stdlib/Pkg3/bin/gitmeta.jl b/stdlib/Pkg3/bin/gitmeta.jl new file mode 100644 index 00000000000000..3bf1062c4efd71 --- /dev/null +++ b/stdlib/Pkg3/bin/gitmeta.jl @@ -0,0 +1,121 @@ +#!/usr/bin/env julia + +import Pkg3.TOML +import LibGit2 + +const STDLIBS = [ + "Base64" + "CRC32c" + "Dates" + "DelimitedFiles" + "Distributed" + "FileWatching" + "Future" + "InteractiveUtils" + "IterativeEigensolvers" + "LibGit2" + "Libdl" + "LinearAlgebra" + "Logging" + "Markdown" + "Mmap" + "Pkg" + "Printf" + "Profile" + "REPL" + "Random" + "Serialization" + "SHA" + "SharedArrays" + "SparseArrays" + "SuiteSparse" + "Test" + "UUIDs" + "Unicode" +] + +function uses(repo::String, tree::String, lib::String) + pattern = string(raw"\b(import|using)\s+((\w|\.)+\s*,\s*)*", lib, raw"\b") + success(`git -C $repo grep -Eq $pattern $tree`) +end + +function gitmeta(pkgs::Dict{String,Package}) + @assert length(STDLIBS) ≤ 64 # use 64 bits to encode usage + fd = joinpath(@__DIR__, "sha1map.toml") + fs = joinpath(@__DIR__, "stdlib.toml") + d = ispath(fd) ? TOML.parsefile(fd) : Dict() + s = Dict() + if ispath(fs) + s = TOML.parsefile(fs) + get(s, "STDLIBS", nothing) == STDLIBS || empty!(s) + mv(fs, "$fs.old", force=true) + end + s["STDLIBS"] = STDLIBS + io = open(fs, "w") + println(io, "STDLIBS = [") + for lib in STDLIBS + println(io, " ", repr(lib), ",") + end + println(io, "]") + println(io) + for (pkg, p) in sort!(collect(pkgs), by=first) + (pkg == "julia" || isempty(p.versions)) && continue + uuid = string(p.uuid) + @info "Package [$uuid] $pkg" + haskey(d, uuid) || (d[uuid] = Dict()) + haskey(s, uuid) || (s[uuid] = Dict()) + updated = false + repo_path = joinpath(homedir(), ".julia", "clones", uuid) + repo = nothing + for (ver, v) in p.versions + haskey(d[uuid], v.sha1) && + (v"0.7" ∉ v.requires["julia"].versions || + haskey(s[uuid], v.sha1)) && continue + if repo == nothing + repo = ispath(repo_path) ? LibGit2.GitRepo(repo_path) : begin + updated = true + @info "Cloning [$uuid] $pkg" + LibGit2.clone(p.url, repo_path, isbare=true) + end + end + git_commit_hash = LibGit2.GitHash(v.sha1) + if !updated + try LibGit2.GitObject(repo, git_commit_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + @info "Updating $pkg from $(p.url)" + LibGit2.fetch(repo, remoteurl=p.url, refspecs=["+refs/*:refs/remotes/cache/*"]) + end + end + git_commit = try LibGit2.GitObject(repo, git_commit_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + error("$pkg: git object $(v.sha1) could not be found") + end + git_commit isa LibGit2.GitCommit || git_commit isa LibGit2.GitTag || + error("$pkg: git object $(v.sha1) not a commit – $(typeof(git_commit))") + git_tree = LibGit2.peel(LibGit2.GitTree, git_commit) + @assert git_tree isa LibGit2.GitTree + git_tree_hash = string(LibGit2.GitHash(git_tree)) + d[uuid][v.sha1] = git_tree_hash + # scan for stdlib dependencies + v"0.7" in v.requires["julia"].versions || continue + haskey(s[uuid], v.sha1) && continue + libs = [uses(repo_path, git_tree_hash, lib) for lib in STDLIBS] + s[uuid][v.sha1] = sum(d*2^(i-1) for (i,d) in enumerate(libs)) + end + isempty(s[uuid]) && continue + println(io, "[$uuid]") + for (sha1, n) in sort!(collect(s[uuid]), by=string∘first) + println(io, "$sha1 = $n") + end + println(io) + flush(io) + end + open(fd, "w") do io + TOML.print(io, d, sorted=true) + end + close(io) + rm("$fs.old", force=true) + return d, s +end diff --git a/stdlib/Pkg3/bin/loadmeta.jl b/stdlib/Pkg3/bin/loadmeta.jl new file mode 100644 index 00000000000000..032b274de634e9 --- /dev/null +++ b/stdlib/Pkg3/bin/loadmeta.jl @@ -0,0 +1,158 @@ +#!/usr/bin/env julia + +using Base: thispatch, thisminor, nextpatch, nextminor +import LinearAlgebra: checksquare +import UUIDs +import Pkg3 +using Pkg3.Types +using Pkg3.Types: uuid_package, uuid_registry, uuid5 +import Pkg3.Pkg2.Reqs: Reqs, Requirement +import Pkg3.Pkg2.Pkg2Types: VersionInterval + +## Loading data into various data structures ## + +struct Require + versions::VersionInterval + systems::Vector{Symbol} +end + +struct Version + sha1::String + requires::Dict{String,Require} +end + +struct Package + uuid::UUID + url::String + versions::Dict{VersionNumber,Version} +end + +Require(versions::VersionInterval) = Require(versions, Symbol[]) +Version(sha1::String) = Version(sha1, Dict{String,Require}()) + +function load_requires(path::String) + requires = Dict{String,Require}() + requires["julia"] = Require(VersionInterval()) + isfile(path) || return requires + for r in filter!(r->r isa Requirement, Reqs.read(path)) + # @assert length(r.versions.intervals) == 1 + new = haskey(requires, r.package) + versions, systems = r.versions.intervals[1], r.system + if haskey(requires, r.package) + versions = versions ∩ requires[r.package].versions + systems = systems ∪ requires[r.package].systems + end + requires[r.package] = Require(versions, Symbol.(systems)) + end + return requires +end + +function load_versions(dir::String) + versions = Dict{VersionNumber,Version}() + isdir(dir) || return versions + for ver in readdir(dir) + path = joinpath(dir, ver) + sha1 = joinpath(path, "sha1") + isfile(sha1) || continue + requires = load_requires(joinpath(path, "requires")) + versions[VersionNumber(ver)] = Version(readchomp(sha1), requires) + end + return versions +end + +function load_packages(dir::String) + pkgs = Dict{String,Package}() + for pkg in readdir(dir) + path = joinpath(dir, pkg) + url = joinpath(path, "url") + versions = joinpath(path, "versions") + isfile(url) || continue + pkgs[pkg] = Package( + uuid5(uuid_package, pkg), + readchomp(url), + load_versions(versions), + ) + end + pkgs["julia"] = Package( + uuid5(uuid_package, "julia"), + "https://github.com/JuliaLang/julia.git", + Dict( + v"0.1.1" => Version("bddb70374fdbb2256782398c13430fa4d8b55d0b"), + v"0.1.2" => Version("1187040d027210cc466f0b6a6d54118fd692cf2d"), + v"0.2.0" => Version("05c6461b55d9a66f05ead24926f5ee062b920d6b"), + v"0.2.1" => Version("e44b5939057d87c1e854077108a1a6d66203f4fa"), + v"0.3.0" => Version("768187890c2709bf2ff06818f40e1cdc79bd44b0"), + v"0.3.1" => Version("c03f413bbdb46c00033f4eaad402995cfe3b7be5"), + v"0.3.2" => Version("8227746b95146c2921f83d2ae5f37ecd146592d8"), + v"0.3.3" => Version("b24213b893ace6ca601722f6cdaac15f2b034b7b"), + v"0.3.4" => Version("33920266908e950936ef3f8503810a2d47333741"), + v"0.3.5" => Version("a05f87b79ad62beb033817fdfdefa270c9557aaf"), + v"0.3.6" => Version("0c24dca65c031820b91721139f0291068086955c"), + v"0.3.7" => Version("cb9bcae93a32b42cec02585c387396ff11836aed"), + v"0.3.8" => Version("79599ada444fcc63cb08aed64b4ff6a415bb4d29"), + v"0.3.9" => Version("31efe690bea1fd8f4e44692e205fb72d34f50ad3"), + v"0.3.10" => Version("c8ceeefcc1dc25953a644622a895a3adcbc80dad"), + v"0.3.11" => Version("483dbf5279efe29f94cf35d42de0ab0a673fb34e"), + v"0.3.12" => Version("80aa77986ec84067f4696439f10fc77c93703bc7"), + v"0.4.0" => Version("0ff703b40afddf9b705bd6a06d3a59cb4c089ea5"), + v"0.4.1" => Version("cbe1bee3a8f27ba4f349556857bf4615ee5fa68f"), + v"0.4.2" => Version("bb73f3489d837e3339fce2c1aab283d3b2e97a4c"), + v"0.4.3" => Version("a2f713dea5ac6320d8dcf2835ac4a37ea751af05"), + v"0.4.4" => Version("ae683afcc4cc824dcf68251569a6cf8760e4fb6f"), + v"0.4.5" => Version("2ac304dfba75fad148d4070ef4f8a2e400c305bb"), + v"0.4.6" => Version("2e358ce975029ec97aba5994c17d4a2169c3b085"), + v"0.4.7" => Version("ae26b25d43317d7dd3ca05f60b70677aab9c0e08"), + v"0.5.0" => Version("3c9d75391c72d7c32eea75ff187ce77b2d5effc8"), + v"0.5.1" => Version("6445c82d0060dbe82b88436f0f4371a4ee64d918"), + v"0.5.2" => Version("f4c6c9d4bbbd9587d84494e314f692c15ff1f9c0"), + v"0.6.0" => Version("903644385b91ed8d95e5e3a5716c089dd1f1b08a"), + v"0.6.1" => Version("0d7248e2ff65bd6886ba3f003bf5aeab929edab5"), + v"0.6.2" => Version("d386e40c17d43b79fc89d3e579fc04547241787c"), + v"0.7.0" => Version("e0ad15af54feecbc4e4b91281c2c15eeca7d6515"), # dummy commit, not actual 0.7! + ), + ) + return pkgs +end + +@eval julia_versions() = $([VersionNumber(0,m) for m=1:7]) +julia_versions(f::Function) = filter(f, julia_versions()) +julia_versions(vi::VersionInterval) = julia_versions(v->v in vi) + +macro clean(ex) :(x = $(esc(ex)); $(esc(:clean)) &= x; x) end + +function prune!(pkgs::AbstractDict{String,Package}) + # remove unsatisfiable versions + while true + clean = true + filter!(pkgs) do (pkg, p) + filter!(p.versions) do (ver, v) + @clean ver == thispatch(ver) > v"0.0.0" && + all(v.requires) do kv + req, r = kv + haskey(pkgs, req) && + any(w->w in r.versions, keys(pkgs[req].versions)) + end + end + @clean !isempty(p.versions) + end + clean && break + end + return pkgs +end + +## Load package data ## + +const pkgs = load_packages(Pkg3.Pkg2.dir("METADATA")) +# delete packages whose repos that no longer exist: +for pkg in [ + "CardinalDicts" + "CreateMacrosFrom" + "GSDicts" + "S3Dicts" + "BigArrays" + "ChainMap" + "PackageGenerator" +] + delete!(pkgs, pkg) +end +prune!(pkgs) diff --git a/stdlib/Pkg3/bin/sha1map.toml b/stdlib/Pkg3/bin/sha1map.toml new file mode 100644 index 00000000000000..a6f95cc5e0b681 --- /dev/null +++ b/stdlib/Pkg3/bin/sha1map.toml @@ -0,0 +1,17306 @@ +[00701ae9-d1dc-5365-b64a-a3a3ebf5695e] +b7f71910c25fbcdfcf18a78aebdadbc42586c4fb = "5952d675f5fc0368abd52c5dd969c8a01887a2d5" +f2c9ee4388849557f20bbd0e3524e3cdc82f9c56 = "4d21d1dff9ce6118bf7b4bf557d5469437e7bc16" + +[00718b61-6157-5045-8849-3d4c4093d022] +1f2bb48ea0d45f7112f9b1198106f8bcbb9ab6a5 = "3851e2058ff0e6df765f1f8c9ab98b325162549b" +5abf701dd6d0282dc38c2f17aed4485fde2d5e4d = "9aebbc8223404eeaa77f8e4757455d8d720ea996" +603e19d81407e6d9af6eb7424967c7ef3efb2ecb = "6ac48788509e71d01f824567d995f945fffe1ecb" +a4cc2849303f80cb95bf3ecfbc70c3956cbdf775 = "d754425ce0b3a77298da88ba9d7301fa461bff08" + +[009559a3-9522-5dbb-924b-0b6ed2b22bb9] +3c4630ff6b4e4ca13ccf0db33b6118446fba3222 = "ccb9d103450a66f0fe0f32d6ce8a383a4ed14d38" +7d0f5a4d5892f51ead88f425115c6c568df7e32f = "bb01746c756091214d6aff92f80f6ab57a388b64" +87ee4dfdb99a2ff80e5f498d71f959932475dfbf = "7aef8c1a1c7d250e6c4d2c7a54bb33ab2e62308c" + +[00bb91fb-75dd-5f5f-97ed-3cee78a05366] +2dc5d15eb97a3ad248f4c8c48df38600de40b643 = "4224a8f1bfc37ffc9ab31c764ea1b206a6346664" +30f94ca1208b782e7d3bb20d861c72818cbcdd74 = "c8a2eee635315dc9c61141011594fb2fd5e509de" +495fae6cf175b81bbf7b4bfd4c842d38d2dc5e1a = "53ec2de3306fd00953de9ac529b7f9c4a9f8d7c7" +84cc7f37896bbbf8688956fcbfc676773ea2931c = "03fdcc7bbc4b010e593731f61a3bbca93a1cf44a" +9a41384e77e9b41b59dc894a4d6f30cfe6cc355b = "d36a4455f35b394d0494e872a665f9e177d2d666" +a60c1ba135562e5ce63fb0af3213fce60dcee91b = "83cfa132f77ab32d832e377aaf851379fac87d0e" +dc1c0f8563ce7a7d48f4bba35cb0e797679c19bb = "57f3d21773897a641a79ba88305aefbbdcbcbd12" +e7348ade8545dc0106a914c0957ad296b2526eb1 = "03bc8f40975cb0aadc9f62ff20df0dec1efc8db5" + +[00bf1f32-23ad-54cc-bf6e-3216db8a43a2] +b2f0275e2ac03ad15d1cc4286588275b26a08f59 = "92cb4a5e26a45f045a60aca8be9b7d7d6547241b" +d2f33b803cadc534be4259319e76f8b7d77a2c5a = "579614c7259967ea54c21cc63bed73e66b3575b0" + +[00cbc572-0deb-5633-9df8-266c9fbbb95c] +4e971bad11a96bb9a14f2e6c65ce04dc5738ca14 = "8e5a6c7cad60e32ab4862b6ed84fed1866cd9703" + +[00d00faa-c8f6-542a-bba9-9987f051d897] +a2b5f77d46ebb84a78a8f0664023132c9625da94 = "fce09426d7b4cdf6fad17b19983bac41f65efdb2" + +[00ebfdb7-1f24-5e51-bd34-a7502290713f] +05196e66cb0df254dc22e2e8189b7c5ae545066f = "9fdbce80779343382e6dbda63af6a2a45f56fd4b" +1a7ad0214cec276ee73e81af0647927a1b470957 = "2223eee1f53a7c71ce3ac59f078faf52d6094108" +276263ebf1ca9c4cffae08c9749daa03b9a52ace = "16fa6ef27d6b72099a28985c4253ff808796675f" +395662bd87affd5d276b604ad4a7a66dd25d5846 = "9d569ed31547dada045609b8c1142ed66ee4cc65" +3eb416382f12e385d36ea7da8dc1417b7d09cb69 = "250402e64c8cda2ed6bedb0f58ce69dec2d4629f" +401690d2234b50047a6a6274564288db1ed1237a = "711308656b9a546c62cc0d58fe569f11b272710e" +4d6cae92c65aecdeaf22e35a323988e778909cf1 = "dee192d870fa52f6e87a3127f47be23420c895d3" +57a60fbb7cfe2dd049c914929d4dbc0d58c81d35 = "8e6c66a92042105563218a12d9c9bf87fcba4f7c" +729db0c46d814b85fcf349d4cf4a5586028a2c2d = "24055dfdc99e5b90d821d2583db84dfc75f2c3e1" +a21ad39ea79ac0127b2ea9fba5716eb2554675b3 = "bec81a0095289ac09304365e63e2646d9c922c97" +cf374919080908d0dada1c14a66b328b0ef17016 = "a2553be302b0581fbbde2b78bc9418a24eee06f9" +d10c504b30385e484fcabfd375d5018adf682d9f = "40e48816abf8f35ed97dfb5e2e1e6d7fa7a6184c" +daceb0cbfb3b06a135c8b324e041a7c214b1d11a = "774059ec56c12411807df4638afa8e7f47fca833" +eaecd7929130cb66b20c74229e653d20d110194a = "b89141fb6f4295e3b6700f2775a9ea66f94cdd36" +f0b850b226f0b75698f8c48a9fcf26b0b75b1356 = "d53be8495fa43f3d4ec7b7382e51fb9c733d00d4" +f7098037108f831af3d73075381a3e95132267e4 = "fa6173a04ed813a3127b83e4c489dc5885319324" + +[011e45e9-a2a7-589e-9d3d-92a8c4506549] +229f2b02618169e4fdd98fc10a1764a6ddd5f872 = "28b639610c503e78db73734a23076dfa91a53fec" +4f328d2b2fc8d7766a0d91104b8c84ecc7dea7a4 = "01e841c20f314d711e322081af1f33a7c54794f0" +62ab3ebdb57cc2167f43a551d363716eb1a11695 = "e79f8281eff5be7dcc88d5c98d530083259ce69c" +654636195f971ee9d79a502d1167f03551f96e4c = "71362e77c9f23cdafec01c6a77ef8631fda16e9b" +7b4e85c01f5be7986baf1a0efc7f217ab3a65b68 = "05852f94b5880d6ba61544197b740f1b4fe2e9ec" +7bc9e6dc77d92a8bb0a6bfda4d7a6b72d85a45bd = "4d5a34cd174763a56c621fa0fdaa9c205341ae3d" +a66a85c544d7bf8a1f25f0b4d58d12bc39e34293 = "12cc3b084abc6d9d1e3338d277f15d905a508af4" +b167e4b26937612e1ee9bf135420f077119bdccd = "0c692598655dd3a3a50c16ee6e6b4ef2fa99e498" +b9ab8cc01921d48240117a571199fc9c3854560c = "07f661b67e3eeef765944c4d33ba673d1b8f284d" +c01042fddd85117884df1220135ad59dffec79f3 = "df925ca4a1db5c61929b3580aab802bd54ccacf6" +c2807a502c93420fa08471d3c0bb698dfc2dcd02 = "80f59f09237df94e67378ef2680e26110c78362d" +c90590155a46b7c112aeebef2556598244127d8c = "925c862e4a113417002bb28907899d2c15bee1d3" +ce0f21d5a7e37e917717b5da872e5ff1c0de93da = "00846a7eb4dac0edf569e1d4440241f2d37b4df0" +f84e1fc4bd871949de9ce9c8890d4cb506c07798 = "29f6d98ebae2d2db9441bbbd1c89c16b82289360" + +[01453d9d-ee7c-5054-8395-0335cb756afa] +3c5769604ed2b4880aedb3a09307caee52de648e = "97fedec31ff4dd4a8b8161aa0e7fa452cceaf307" +3d07901855411c7a2e797ed12747844005f1a870 = "c2ebddbac2779bc69282be3ced5a5fb884b286be" +6d55a63b1a4fba0c5e5e7dab507317bbc3335c52 = "8d1cad282031948dba349d7a14b87085cd3f8dbd" +92266090e284d0c859be3c5ddceacd7b89df1d76 = "944309f8dd6820dc6c8eebdfeccceed2ea734d31" +a75114c882d7734cad560998eb9588bbe040ef1b = "46d8c9a25c1faf705b010eb4a003fad9e9d16803" +a9d8d016e403ad2059e0c4d618af3ba61b1e54c5 = "25fb73cb4993697ef3a887e161c64a4051f486e5" +c2bc2b16145d5694901dfbcc4f6bf42257d791f8 = "a96ab0bc204ac437f16af72d9c49c5a02f190c60" +d21022ea4364554ec4877a107df28c95cbb82f36 = "931beb5d53a6507b8668fddfa6ae18e06ba29ace" +ff050f49d2f1cc787847d48115ea571ffedd415f = "f2df5e6da069b0b393cd2597769743299084396c" + +[01605889-e1f3-5716-a155-5007402aa664] +0967bf14517d1f829de0e3563d5742a817199e93 = "353717578ca7e168f66f1738349d6eeaaac8d08a" +37e1f35418b2dbc99f8412478b205a03c98ad7d2 = "e07beb31ac68aa9c17eb69e05e69602a68c2d86e" +4244f1195e3e3ab5c5b3bde4f4a4200761a77387 = "d351fd397a38c171289ea52dedf33301c65616d8" +4a01a024f9924cb24e0b4a5a05f7f6363ea88f6d = "0ce2e7b202fc9bb0aa2c5ae541a6aec6563cefde" +63bb2001a7361af2542e2e61d2ce6bdb6eef3656 = "21954cabed6e51de8e4870e59155e29c8391622a" +66fc925bd99b50aacfa0f9cd2c324f80ec4947f3 = "993127b848b626eb9697506350f702a1efbcc73e" +78a2ecf6add3cfd20e6eaf455ccd144fde992442 = "d3d1c3c951acd100f1a5f4240337686c3419ee10" +7aa92673e7af4e2903566aa415641f3574480aae = "0d4026215af7f6a99461879fe370c18cf5701abe" +9f4440eb69cae92972ad34e30807d171bc0429df = "c30f6b98c5c0884e87319a0a8657e2d176673ea9" +a020ad428a4270c1ebd6d8cb024fb40ea24af76e = "4f60673d21e22dd90402ff17617f7caba33c63f3" +a0421f2ddadd2a5c059e11034b5f5653e660d1e1 = "878093baa855223a8d648f83c04cc12ae0c122ea" +c7f6b6391146288a7e783098409316f51405e4f1 = "cac0f0776b4131ad4ce401c1aadf4c044824b846" +d2255d7197b6514a3f7e033881f67c8cf5ea4e83 = "64c62a74e1441647b92035fcd53160c1c93ec6a0" +e17fdccfbdf3baf59025c03154dbf0b765034f30 = "46018d4ee6edf46a8b23a963cbb44dd64b996727" +e1e2cacd2922351f11e141e301e92421ce054894 = "c8223f47c056414be9aac16610f5bd87fb7a58e8" +e3739d5fdf0e54bc1e74957c060c693cd8ce9cd6 = "04dfd5c61488b64ec4222b3e552103be60599459" +e3caf3143b13d4ce9bc576579d5ed9cd4aaefb11 = "3a7a592f061efce8c32e8a017c37f2cd5604bd37" +ece6319b574d2d8961baa0e850ffefae16049dd4 = "c40f6b34a9422fec6d1c2b41077c53509807b6bf" +eeb190ce96c520632d79e15725da25290fa36b43 = "0509df90881714105a308352bb9e9f5e9f630508" +f729a7e95083f6b69872a794edfbd7f65f461739 = "38124f1cd4acbfdbd018836ccf33b0c8f70d69d8" +fadb498cba20600092290ff300d7f59e7a529d6b = "3017034b63d4700bd971304b0a3430668163b338" + +[01638602-6071-5c9b-be9d-28079212bf65] +1905924944436cef6f4c83fc984cf413fd40dee2 = "a0d9551b8970d7f2e248bbe57a7079f530df3240" +1aff50b928a78d7b4217fee5ade6151c1b8cd7f9 = "4f86f7d4eb5d08d53bade126f7ce417d3b59d0d6" +1fdc70ed54337781bbb345fd327b7774f03fa88e = "5f1e1194aa70768279ab0e1dd6b9958ff19a252a" +6c86aeccd9ab606025f2e06a7ada174ec6aa3675 = "b6d6c6774b1a9c7c19664e1ae9bf47be7cf89fc5" +8208990f01700081f0583bf39f017c80a31c312a = "570140433473d4a3098e493581a80f93f556ffb8" +baddc7c76f2d57b6384e5943ceb8d5385d46ace6 = "3cddfd2d510c6cf50b1538b9b799a7a60f295a58" +c1717cc80cf2f72ed9caf9a21bdb20e6c3d43fea = "b8dc87bfd46b6cf8519856dff95717053b68fa3f" + +[01680d73-4ee2-5a08-a1aa-533608c188bb] +433f7a1b3fb7dc3f1edbde9ed453c52e03b86f7f = "dfd1463665a6ff10d57becd69a335a4966bdf7d0" +7e31a5d8e5f4acd9cd2b30aa3bf78a748f7d13f1 = "2d2ad218ca9883a659a8cff3f138745170ca3387" +d8d48a0fca88ce92f5136ce7519fad277030f1f4 = "ee3a433eb2f396db9d22c834319e92094b5b8cdb" + +[01e79fc4-f247-5fa3-af0e-2bd1d4cc767f] +3194fa1ef83c88f350ddeafb1bcb289d75d69197 = "0341b08538ecac3c44c8079e10917e21e588f43a" +3bc63c9cf8097f2babbcff91a5f3d549e5d5fbe9 = "4a72fed4c3ee27651c4b22ba4e3c9c78ffc6c93a" +ad473396f0c8680d4147895dcb1848c55bcbc601 = "304f32478c0e83b9d1d9b02550e5d28293e5db01" +df29e469195ceb7abc3a6338c3abc05b56ccdb48 = "73d78b19d7564b50217bba648138f608c2bb5d73" + +[01fcc997-4f28-56b8-8a06-30002c134abb] +adcd17a554eec3bdfae4f8f72031b57165912985 = "564f3c1b97bfde362dec46479662ad14df07ff44" +d163e916a864e5f6d683e05f2795267c2987d087 = "eeef0efdc6897325f223de76a01a10378752e116" +d3601e2a6463c3b15bad1d0c9f7185d65df4d219 = "22a1b00f96cccab957e354cb0be2908a8264b29c" + +[02130f1c-4665-5b79-af82-ff1385104aa0] +2c6367ea2b5804bf74a427e87526f8fb36426449 = "1a7574d9d4dd52e5fa26e9d4384bfd7160f238e4" +6771e7ab89c997811f94884127196ef8836dc5d9 = "3891e678cf6d2eb848e7a307906ed6a825f3aea4" + +[029fbca0-4020-57ac-9646-11c6794697c1] +0505795fde051a08fb889c7295891785b1a220a9 = "d329952317fb799ae0bba25c118965f3010a1536" +2e973402df16a2dc78d9c2266ae6fcc7a35b8067 = "125dafebd67e438dc67163b4ac23183fcda96070" + +[02a96ca5-b822-518b-9654-c826a3622d91] +a637d089300141ce240cc1ad4658b713140a0a85 = "555885eb01d8d7f51f0d0ba4a22a5e5dc21cf92e" +d74f64f1942d7e0a661560518205b6c674d9033e = "b4bbf67c14932d1353cb248af69b364536b1c98f" +eab81676007d537c5d6a204962ec3bb804b8054e = "99284313cdb81bc9264ece710944056ba6fd4f4a" + +[02fcd773-0e25-5acc-982a-7f6622650795] +1e05355072714ea8691bdae669201111ff84668c = "a8b7954e67139f9612208c2cc12b88e05f7a71e7" +235c4e3110d9d31914209899d28024ab6ac0b38f = "df523f948207fc80752969ed963c29b868196f0d" +333f9469a94fcbcc224a901ca6ddab1530240e17 = "21372c809bb8aff81cdcf3085c01cc2a2dc9b2b3" +984146c3ccf2b4c57c0f85c4a481d5396ac1f1b9 = "6101920b6714756a6980059984de0d124a2aa3d2" +abb987453c03d17ed5ba1857a95b0add210ebf03 = "d70ee90c896c90e48d966cc453fcc22b6a26ff13" +d1388171ba37616d62240664fcd1f4a858defc26 = "a4311d63ef7350bb7c97b0bbbfa6b212a5331849" +d40d668d78f34176aebc107432dc096f444ae216 = "605a604bf68e157dc2c3016acd4cc80d70bfb7df" +e697f65da1870fed2cb98ae97eda5493c00199a6 = "3d26c6e378b55517e948718874314b08292d8477" +f78923428ae096ba12ffbc6cf6a9d86697bb0c27 = "14090ebb3e281883545d31b91342b876e06527aa" + +[033835bb-8acc-5ee8-8aae-3f567f8a3819] +190da18d0dc3295f83f9d33f49c5119e10a0e635 = "007c585ddaabcd11d099804921853b8194593e34" +6a415dd6b1d98baeb976babef8696ef243b709b5 = "fdad175ada8c37ca096e1efd4a7d44198608ce9c" +996f4c8744c58e8166d7c9da8cb4c57725521f30 = "5d829d36bfca6cfb1ca24ba3025a832e812ce9dd" +c19ffd1f61d1f8657eb1fae5a8b8e7fe6f8b3461 = "5c4ddc936c9242fa1fb7445b5253a9e26f6503a5" +c1df87ec20745a6f3e5d6ccdbf46313836aeb7f4 = "ab0ba1ba22e7d3f1d1d64508d92d0986c9d911b2" + +[03512f2c-8e8a-5728-b518-32bdd82c6646] +0370851ba7667bc442a4115eb36f988ee9a44b10 = "6e5667d92d5794c34d8757b6794df93881c105a3" +182c5acbe874e45514cdb0d6305bcf254399ca0c = "3a03cb07f8e9205281d27da9e3fe6aea1756bfa0" +1c4448ca3cef9b292afd8f66464e6cd8a23fa59d = "74b58e33c31fd25ab5edc4c898add0736a0b6753" +29dd48298ef1bf9f42e65ac02c5633f782f1dc63 = "846ba5fe7720ef1cbde3603b5422abef1f11bc7c" +2c7a96ce2563065748f2c5178cdb77e2182bf311 = "45e9d6def3e09a5b29ebc7f1271a6c0a30625514" +3baa323b14bbaf9f24869ead73b7addc3ef3cacc = "c72cfdc7de5a55b68dd5657aa287e25c032bb3bf" +3bdc20b8abafced048b5498bfbceea39918f13c6 = "6b5c83f2ede9f8edd01343d4fe59182d7feafb13" +4362af1aa255dfeffe9c1f5acce67bd72416ffe8 = "d3527bdf6b24923de28bd1cc482bedf67caaa3bb" +4ff495f858bc543c5351c3c3618a0e5c801365b0 = "0b51239d855d7c54cc4486271f0838ddf3964c52" +5052a763aff4d0cf608fcdb39a54cd61f92acd4c = "4320c08732e269febf89a1c623125c7c1712fb8e" +57b20511d0bd6fd6e9f9bfa431381bc3d50964ed = "667b63dd58edf226b9a8bbf57c9c016a747c6070" +5dc891ab7d3b65a4cac9b2dee6d8516045d13aff = "fc6e98db144823e96045e26eea7c6d691413a17f" +6e903501936824fac8d94430dcf0d6f6d74e6319 = "ef8a81b5ef390e3d7b8823deb7153accca4959b5" +741bb0973acec68835b3f588f58a303962a055a4 = "21afd58f227b709d2cac12108bd03a013c1729e6" +7d1fd44fdecd43b7e7714c939787c62dc67c5a37 = "33162dd2138872872074b2f6022be327646bd098" +8272ee0b32449965d98dafa0a8b0950feb15a13d = "bf5e7cb969e4bbf0c4ae398a0861cad089739479" +885683123633a4aef331b6a29c91a2dddbd0c482 = "0476f139b53c03f13bbc5d60bc8fbadff341cdd5" +9c85db45dfc7f2da016d3630939d0400bd95b9d3 = "40f88cb9cc24d1116b13e8347dc3af3dd63c0685" +a1e35c262349c9600ed69c0e573dc0a1f1b1ddbd = "c06e8152b6d65ab7c36ed45d43c96cc0d62b7fbd" +bcd494ccd2a5dac9aef95b7d157508ce5925d964 = "fc098369901287e6aaf1cff88301edd3d8284196" +cd4c99d61b70b1c7aaed6c75527cbcfa12dafabd = "1f6b9ab533375b4e7cbdc6d4846d2f9c22250f0a" +cdc6371ffd04ff0b416a646bebc17521d5d58f3d = "dc17d41912094664751a61c03a85013d9abd70ce" +d6d685f00854123d8fdbeb2f5d3772425305502a = "8f5908b88fae06d70305190eddaa2e0a70b46fa5" +de31cfd89517e5809b66c0085f17386ffbda66b4 = "11df30356fb0ddca28563da5e37df59d90b2c4e9" +e04c7ebcce613cee8b95d61ec253e075777a4f87 = "2e875cecec5bbbf89fe4abbc93a6d8999e0bdad5" +eb09710e13ca9fe83a08ddc5bc86c1d965b18419 = "66628f97506474a6dc636f752d194d62749ce1a6" +ece5399a2328f2722efd8df5cb9a635f49484471 = "0286f1a154be95cbcd106a9207a2a4e18d969f78" +f429b5b2b300679507cec1e7060a79104218c525 = "7075b5cbba425704b68688a6e8eae5e7fca4a1e7" +fbd7cfe5ace6ed9d341525a10999f40fd5172ea6 = "b55aafec1f6709dc5329eb4ebfa6f04401d926e0" + +[0376cc21-f8a9-5fcf-8891-fde1415a4fd3] +3f82b06cee3cf0f129fea3a6bdb014812c681647 = "da41b802b4a65fa0276799a010be5fe482a34ff2" + +[037cace4-c66a-5006-a6b7-c26ba1b2f83e] +12d358202a61ab1054114fabda431d28dd632c39 = "c775774cec39b6f8c0b6c1b2cf607cc56a52798c" +15c585d01d9b73479dc952b0fbdcd541962a6e28 = "ccabecf3f6820596b379b3740fe121d37c68687e" +5688783577fa82471cce02633326969d4ceaab1d = "6592f098b3f7874cae5773beb2c8bbab0bc8cfba" +e00858b11fc63537c014de8add8afa2a99b59ba0 = "aa262735337ab05652e3dde46f2aa3468f4c8fb8" +e6706c7617ef558d907098660cdeb371cc1a1007 = "6ed0cae3c8a5e3c28a63ad8c44aa23d27138ab21" + +[03a36d30-c4fd-5eb2-8349-29d148f4657d] +29df2690c2c3ee8c0ae726b72170240b5222dc94 = "e09861afddf89e85cad060c7c074a5c42e5dcf82" +2c03a8fcaf859d956d25139962debcbf117d7267 = "e6afce44f1fabdee6005607ba1349ec205407e9f" +32c9b9f9f6569ae95dd3273af0420f3c65c152d5 = "6c81591e6e98d7c450b6b1757836cf1eb2828a0b" +96e0c4cfa937e615d1bc35a167e88d86a3e7d92c = "79804da2301314e6000e448ec63157e0042a1df2" +be5cc850b9b7129a321f56752d027db5e221eb05 = "608f206a7e3e6058e172792047a1caae76050ecf" +f5362cadd3362cbcb6e0e592feb5bd00729ccd8c = "019c8d9ce8f69f59a66d69cb6fbbfd2a5e831f75" + +[03bc5d91-8e1a-555a-857b-eaff090ecb7c] +2fdd9dd1aff12a04c5df96c5297546f1d414931f = "1c2dbe5831d35977135580c6af3f8544a39ec6a0" +8308836e90bfcc067f1f6b076c350a11bfcd4b44 = "11de118a787e4b8aef6884e669d2ee3246454e12" +d3e97274f8706eca8d1ce3c0f343d0d7a913c68c = "abf246f2a437e47b352bf26f781bd32e4a9221e1" + +[03c08e68-d706-55a2-92d2-cbe0f9d07a98] +12df0ca8b76e6e6d3aecb824e2c1913f466eb393 = "7cf47a675a20256a9ebfa883dece00238f92e8de" +46bc6f8107eb09e3b9433a334d742b2fcdaeee13 = "8d1bda126f067e97cc254eb9b37011940f239b75" +754cc06c169a300df975ce3cf228263d84ea0ffa = "4098451bade11c714b365b64c7eacf1f0eb7012e" +9084f21b510df4fee19027a54c40c8072b79049d = "aa2fec9c24092fddd3cdb63cd674f1524838a95a" +ed4f7df2944fc51c4a2aab4aa49c396eb5277ac3 = "9990ea9dc3552cdf71fbfb9142fb376aa88cd2a2" +f970ff635016d0dfa367599a38ee89f3af5d8471 = "096a6fde7ba68a5c55ae1664078ff0b71b43471f" + +[03cd79ca-8c7a-5860-9d8a-6c8e1a175697] +58822e9ba8cd03ec47bb18ef7d94933912fdee3d = "5424dae375abb3acafe285136db9d9f1d9969bf2" + +[04294c92-b9b2-5258-861c-e23397c8ec5d] +10d26d9de535da7083ae4e8f437e621d7bbf79af = "54f6d2a3a4ad752d2af511a070d6b5d11927f512" + +[0448d7d9-159c-5637-8537-fd72090fea46] +2657676616470eb1762a8d2c01696d5097ada0f8 = "64beca203f4bcc914a6f1abea294cc6b634d70e2" + +[047b2e30-91f8-5da4-9177-44fa5827fde0] +5b9bc46a4f3e5328f5c25b5b9f4af30f5da4945e = "fb5a5c8d94d2aa4e880e6a4411193b203f07730d" +7333a9a854e09d430bfddd5a3cbb7b861411d041 = "7e40ee8c73ae96859d10476a91e9b1d74cdcfdb8" + +[04a3d532-ba69-5937-989a-472689bdb720] +1c031f37cd37dbd6d93c420756a08ce44871d4dd = "baeef499acd598f9c6d06c59773cc1bef8654741" +4d783e9802c54167ab9b8d747948743f7bdf0adb = "4bc5629174530caf6ee86eb90ab0f92f9036c34f" +6b9d28e01b487ac2ad04d61efe39e1bd12a60dd0 = "5dc69b2f092e0e0795432337a8ae22c502924c7e" +83c014c5211eacfda4f08a5c960cda31dcf7a84a = "2a84fa432b4b721a0c95b3da38ba57e01c259b95" +8c731e29ef5fc45be68b61bb07486e78d8fe05bd = "cec887b96f312cc83f6c3f7927e60556513ffd55" + +[05003743-e4a8-526e-8961-a30f3f368c99] +68c1880a0aa524692e12dcd9eaf333ca07362a3e = "ff80ed9c1c45879d8c2a0cb3d58ec2ef836c0fef" +9fd6bf423869054fc0008f09665efe769db54e24 = "c66cb49f43375bc4e45147d0b4df4447eabb6720" +f96bdfc4f8d438bfac9cc41da2533a5702c675a3 = "49c2c4e4f9ab7509ddccae2da47a8310071c3dca" + +[0514ce98-527e-5c83-a6f3-1386c478fe4b] +8d5ba82ba640582a57b25f36001f37b41724cbbd = "93c2d770a3ce87e10924ab25c4bcf1c888a6429b" + +[051d7522-44e4-540e-be03-d1c94a7ee7ea] +0225a5077146edd4a0b39e3a0e91bc6fe017bdda = "5f3410b20309130526a2e93df94a0c0949e9edf7" +14cc8ce4084a585c9f4ad6f3e14f444dd23d1c1e = "4fe0f6512e88caf808f3da0791304de8e46eaf1b" +18c9f7882e9ae5ebba99f747b48f9d2ac880721a = "9f78a914494173c79b085d32a04ed4f344df18cc" +1c476e15a749b6101e563938b9430b888e6735c1 = "fedb69ebb5b15d8813be0f733c2bd8798e6aa3c8" +287e79558e88857f59329935531a4e75ff0c1ba0 = "98954e9a8df23694fb7ff0f86ad2bdd63fc17eb1" +592e9703f4d61cbdce35c268e4edd5a77bb3196b = "dd5592c42f30c7b35570594f9802c6cfd3dda00a" +64581ee4431b78b218927d649756878c6df1b1e6 = "f3f2f07df9ef8aa0537742ada4690571e0f2dbb0" +6faaefe653ac6bb11c58335065b198946f254b3b = "83755bde75fa75fb65a6c4a9d368d2db06daef36" +719c904321693b9fb5de87647cbdb78f76224ddd = "29963d9b341e6e227caebaadeeaf5dcd2480ae9a" +79a986be80dd747568c9b27443b03aa3fdae3e7e = "a0c89853e8227ac99a082f5cd1e862d43fde4cc0" +7aa1efdd8de9640c398e7be5ecf1376535c11597 = "6f9f12bb9dba78c179750a75c9fe69ea2b38ce91" +82d1cc83dcc51406d2fad9d81dc103ae58a654f8 = "98548857060c99761bdae22390757e43226b9876" +8cde48775a27a086f03731b35f784d4f220b7a20 = "db0fa352c81b97eb12d9fc356e59a93b516af03d" +a1b55165b0cf85b0e22e2e88efdecebf209e3d42 = "ed3075a577aa8bd85c96a1eb41897dfe7fc8348c" +b26dca4e9d4d41612cb50e66d5652816447348e9 = "9482f3e3e5eea1eadc9bdb03c508d9c0171342bd" +b9fcbf290e582f9b48437ddfa95a64db20b6edb8 = "645645dd3d361692e77202d988097c59a1539421" +ba7e65f76bc330b62dbd6ea5d1a371621bf4d74f = "30f9f0f1184658a5d24a62402b8e0b10342e74a6" +bbfdd54110ea7ffe55b589a9f1ea42420aed9f6e = "08626bb683fa5bb80587be71f76562ec1673714a" +beb8c034ad17d075226323caf3570c9abaf1d771 = "e34dd32e10053d8d12ed68946b423e102c9e6bf4" +c2b407da6555ae1ad2fafbf064f1b256eb4ce138 = "c3b41e958e83305f1928f6e8225a5ec8b31a0019" +c61b599324691ce077d73fc6507108d7e1cd7c02 = "6dcc3c363023362b38b937c12451b63228420c84" +c84239ef91ba9d0b45703abce51daa3c8ed789ab = "150c321b6bc585938aad8081911c5b05b4d7082a" +d3d4439aa143ec51830d61d632c8e81981f67d86 = "e8899f413adbde2b3654daf0a984f3f4c95961a9" +d9adeee93625f4bbaa5882b501769e41465963a1 = "a55be08255dd40a48eb0f29b3b0eb78900df501b" +da5ea0886af56734b865b9c3db6e0b6c1110a8c7 = "fe14007500d3e6d4f5e06aa9db5d4c01732ad12c" +fefc2da54aa6bab92d8907e975015ce936dcbe65 = "f3ba8afe80e34ee2205f6d5c46438ff8e979dd7e" + +[052768ef-5323-5732-b1bb-66c8b64840ba] +1265ee03bc2f1fdfddf02d5d4fcc7de32789cc54 = "3aee0ddae4c5bc8bf0b4d1ab2b199871b75f0d67" +2caa0935a0c9cf61012a9ff26bd6e2260423c562 = "3656e3dcec8cd083cfceae69afaae7fd1bc3f8a3" +2cb229c193f2d9efb003ba585ddb20203f67268a = "08f555dc33b2705b9fb72a8f000013486d0acfae" +c126f7bd1fb864f98812f371315831009c2c3603 = "4ab238f196d88b075ada6f3dc7efc36cb9899dae" +ecbf020678ecfff7a1888429b0d3b0575d29c762 = "8168c87c5a955a9ecd2ae7c8998f3387207a7d68" + +[053f045d-5466-53fd-b400-a066f88fe02a] +660d125003405a49c20ebf27f9916949c7a55a3b = "73b2e44f5390cc3bb5653fe803504f32721b436b" +719e7aa2b187e7565326dfa6fa4032cf958e4c07 = "fbbb463fa488e1e0f1477de8d2b1f314f8d51f92" +e6bbe68143d753a0be7e61c50acabc02b413b0d1 = "203057d41cb53f8d334b4f7bb83307cda10dd9f9" + +[054b7d4e-9922-5ad3-8b46-7dbe695a681f] +2961c15a28034c09ea85150522e9a40f15c31896 = "8ffeeb7586743f54aa68110438f15d50421b3392" +37202acb62ac4c8be1b19b7fd2972ca70fc7a2b9 = "88f34fca409a7a631a68fec194c00be4983bfd76" +95c28662c5872e5a0392944895161edd5c052bf3 = "f9f7a682056b22b589846b3618ae72382828bfc3" +a6e0afc0fff149c8aff563aae9de0f80eed30632 = "bc84f4dd19c82207129a4929fd73deea114e88a5" + +[055956cb-9e8b-5191-98cc-73ae4a59e68a] +692c2fc00e5eff13a36eb442fde224f2083ba814 = "bc129a6b9f6a7d48496929af2f4ef81950bbf588" +73f3852c321579270ab1784c076c2ed41b40f585 = "24c90beaa7064ce411e1b4a13ebfbb2517cfe0cc" +bd10263509c5c56d04639bce9e5eb436bc3c6e7c = "3bb2d30876ce6bfc2e9ab16c4ba0236c940bb4e7" +ed95399f33e64218e71643ba748ed8ce55d769a0 = "90dfec4bfa1e8a7af03b55f8a2253a61480049fe" +fce08b7bb68ff5e3493ef6ee2b6aff3e00541a38 = "ff57b1d59537bf350e23f7a4006b10bab6cfff26" + +[057dd010-8810-581a-b7be-e3fc3b93f78c] +18710e9941804f9ff595dae4212b36cc6b2bc649 = "ab40dd72803104dc266cd47b5f05a97fff22da63" +3f6fae42d58de7256da668b3a43546b16252dc1d = "cc928faeb6a556dac47c7dd8ac20cb762bfdfbc7" +464753f3c62f0527c72b72cbeb7baf5cf38a48a1 = "6ff002d0438d1e848983da28f67a3b6f0d52c8f3" +64d662eb9a3a5a54bb8efd2da63ec837287178e4 = "ef28504946ecacaa984fbe2ed57cee7fa95e7996" +66d3b7a2c394ba55fe1668d1f720d0e18b860b26 = "b99882abdcb3e4edd47d00aaf98131347a50901f" +7cf560b7dc3baca66095b83614cde8ec21406c98 = "ff4974235fe9b20df8de391d89bb050203af4d67" +b6e4fdf35a2160f0d9948e6565fd69c2177f4d82 = "badbaf43e6e3871b2d24bf00623886da752022eb" +c8899f51e1ae7564ee7a46eefc843ce2780cfa83 = "b12e7b4431128ca523df77ced76070d315a448d2" +e2b7c5989d21860f419b3ef67a50ae268292ee11 = "1349a72bc08869e0a6b6d18275207e5875d968cc" +eb9f1612f174cc1f7c3bc349deee94aedde77825 = "158487cfe1eb7323bfac27adefe5eb113a2edd2f" +f48a21de9b2195b8b7dd76d6999d2d41a6e370c7 = "6cac569a5818ab4546ed366008a7c2d9e2db6fd9" + +[0589d01f-c3b6-5cc6-ab6a-4b6af70345b6] +019608b6e6bf8472e9ad0f38122857cbdb70654b = "eec041b4ca6fa7061e82b1eb0b409b64bc6adac5" +0cd4519732307a686919a8a298627b6076cb9eb1 = "11acb9e203c0b450a175208fb92cd63d6dd5a9cb" +1d01e4b94e08fa19ec0ce41f0d0a1bdc4516bd4f = "a578151235023620551e2008746585ef036b4ae4" +6d63b4ff4f2e409a3936452ad4fa5cee890d49c3 = "7117021d654630b0994d49621f69ab569afd59cb" +ff522d28c0bb4a203a7e2de741f31981e66d49ea = "cfb04aa9a6396a07c3615455aec53a42c6d2eae2" + +[059e8e86-8a00-5752-9d3d-adbce60f63dd] +f762ca6365ff5b8ba30500054412f45fda4a165c = "5b1d6e662298a876b23419dd19ba97c2036fd9ca" + +[05c142c7-bb2b-5e1a-8572-72adadc91edc] +16cff41a99010ce38b1380fec4c005ee717ba741 = "56275ada3d3ba5343281a78000166b7b0a34cbcf" +4b2a17213c483fe088092bc1b9f5fce793de0a3d = "93ca009f575c78a0a9a6a6e4b215cae14a740c83" +c2f9c7ccefaf4b119c5cbdc2b2722483135e52b1 = "a860667e9d1be66df9ce84a2e25b63fe04a78109" + +[0612f1b9-51e2-5127-9fc2-313c368ba66d] +1ae9e33ab9ce5bfd0d8a7ec8d3479fa7c204d235 = "3e9731afa86096b9e4145c06a6879734ce817596" +31886c1ee09b86176d40354bf478dea09d842910 = "1591eb6c801fe8ecc23718b8443739a9c0cdc135" +6905395d8ac7d39864617df0d4768ff7ef36bacf = "18b19de6631fc90e33b320cb792182b04fdd303e" +7b9db6cf3ade32c68fe70e4ea5769c13a78296fb = "a96a3b8f6ddd0f67c364acd8adcb27f67c2b0679" +9c0ec8065d3641ca20f0da50c7f6d723fb0d37a4 = "6ed5b4995529de1c59514ce65f142c1618ef0f17" +d8639510d6c08e0afac34fcb5212059793d49363 = "2b1e7e2eb7fa246b323695cc5da09c66a199af51" + +[069b7b12-0de2-55c6-9aab-29f3d0a68a2e] +08b07845179cbfebb9a7ec995c07815c7b4a9668 = "451a665446e4f8f90e685f82a2d9bb6c3b0a7cf9" +aa1318c83d1c4c80586700f7a43e54ac49b9c1d1 = "ccf05143aafe4ae0ad0d7d2ba8de86c1ba25b6f5" + +[06bb1623-fdd5-5ca2-a01c-88eae3ea319e] +c2e9c7c53728cdd090aee5d0b60c849490031387 = "998fb9e0cd0291e40f0423dcf044485511ad50f5" +c910a5a28016003ea4c6118d998e5b00ec911036 = "08f70918918fa38ea605eb6fcf2f951a612f9acb" + +[06e1c1a7-607b-532d-9fad-de7d9aa2abac] +28c5446f1766f1ea0635f8c5f48aeb705ad6c988 = "455cd1229d2328d202fb66eee461adc78191def1" +62d7ed488a67e64f3f20605bbba194862eac2525 = "268804bb7e82a41b8fb9142f3a26ac6da43530aa" +95234d1692d843e02502ff8e261872915312c6b7 = "d1e88d5c67b0a22f2df529e4443d53ba1da41a84" + +[06e20410-f094-55a1-8b95-30db52a31525] +29e6fc3a186aaf7eeb086a5be3b4929990374a5c = "73d3f6eebaf8767343850a47ad126e831a2ac983" + +[06eb3307-b2af-5a2a-abea-d33192699d32] +1f626ee818d81756e582aa9cd83e439bd0df40fa = "fd2dbfc1e6a0ede27b9e499a52b53f3927da4f80" + +[06f97529-6637-5087-ad05-841db92f8a3d] +2115ae6139d8eaa90a834b81a9fdaaad8e582d36 = "a1475cf184862f46b5165e0709ad4c39d96880a6" +3acbe7e2606b14df2232e20e8dc2355d40822447 = "9aeef63dceb50bb72f7a556b1494b9887f2e2ddc" +7388f3f44e8fbb0ef710fc45e27eb3ae6c24dbb8 = "48979613fa86091bfc47769d03d0620b8260a742" +769d7da40c5d8a05b03e4485bff065681091c48e = "ebc868e4485b8c1b1cf0e3d7a1515dbe8deb8864" +7ac4d640505a0e0f5b245cd3a92c8e86c257bcfb = "91060f89f25a1c34f66fca5a91e183ea494c2068" +8c4a01c03764e184f65468ab9fa3a486c09ce7f5 = "3bc6ddf9f291147255c59de3ccafe2c32a2ed74b" +b66f42df9cff71c7374b5ab37e9f81a52c27ff5b = "5444a3f83d6737db4a05c6746c450dac37081936" +cb03cca942d326489b4db413625d36b5503bcda2 = "8909a63c432679cc62ee1e47cee71612ea14cbce" +e8c2e22f34e21fbf2170180dd89b34bb311d4bb6 = "de766b5ca106f869edf50dbcf200ee03ad77ceb5" +e9fe735e4b7227bacf365913f22841dcfe82e7e1 = "9daf5be27d5de89a10e8184c1e8e9dbec1ab1e87" +f6b57ff4e43229a0f78d8ea4515570875188289b = "25c274c7c0a6f6f2c2a07d375e63a5f112f9ae68" +fd26ab86374abe85bb3cca19b3548ad572ce8e31 = "5deb1a3c7122ae148a923e5531aab144203b8645" + +[07022389-42e1-531f-a782-428ffad55639] +0a29d43e973b7d183b3010a30c65a64d63ea4381 = "41e0f9e636318b9221bc0450fac3c8e28e80da59" +3b27bc0d23a49877059c1a4746c3c26e74e34807 = "e5f85c6e4ee1155bf2810c62e3f5f325283aae98" +4548467d0202c73bd6f0272687fb5a6d2c6b64dd = "2a0a11439cd321f50c5d9e8a0464aaf3bd845b2d" +76ebf88d7b6744788a457a8fd9cc0414b8461cbe = "4538b0e92ed8fe52ec461224b28c4e83a93ea93a" +7f0428a21063160248d7dbb8d96ffdf18e6b7ce9 = "62fb1e5c66969b8653980d7a8767995c3d5cfc68" +94472c1fe8e49ba14be4105de3241ca5b5772a29 = "856eb236f036419beb76d8ad1b41332b2ad8b874" +a8275d6d7482d051033715812c0bff30f5634594 = "60ec8e5dd9ab901558555bf50ec7a4da38781545" +adaa5fb738f18a53d7e1ddc3e27618a4d020f512 = "78b23f69f140b03cd5d8ef7f8a68e1c717c8b413" +adaf1d0e4a441f0f8fefaa2f8cbbcab87750349f = "5f3b959354e727c7d87b473a299f55cd82cc871d" +f815dbc1bbaa0a479ad55eda4083ba4a2ca267e6 = "997b5d2c908c712ae801184f93e3b2bc152e913c" + +[070d9d8b-17a7-5814-83fa-42438ba5c6e0] +3568ccba29a1ab406db50eab42a43c2d3c2fdfc0 = "5539199b0a23239d559a36bac90c3d6e95a43dfe" +59c9f516ef249ed266b1a9f020fef07287f7cd9b = "7da277d8b5f5170999907da9ae6f2ca5d31c8b73" + +[0729bffe-8e6b-52fa-a3fa-893719b744f4] +052d3451d5a7dac291cac9e5010c83d0050aeba5 = "d3b4f97616a9c76c33f816fa26259235f05e99ba" +2a35eafbe4acaf9cacb63f6f739265ffdb69d5af = "fb4f5e8f85219b6042b84280e046c352b75b7004" +63c0cf1dcbb02157c66035218b38fa573d0ba42c = "6c294a77dbb537f815e534bc8352a3748d364e6c" +68d105d47f04f19daa0e96894273180f0b8bb7e6 = "24d46159eacd1137e79adc8dc2200485f5eae57a" +dbc925f5f466658c947afb3c18f4b6296fe851e5 = "b2604d6eb17df8106d748a02a5a24c1ab04988bd" +dc0c38d9a3a1c748d9190d32af6f2a4c1307c4d4 = "0da975644d19d065bbbeb9753a5ef8583a2872f0" +e2f710cdfc21245b9fa948570331ea9f9c43e886 = "693b31ee5c2c44a351e44111b574702d778f94c6" +e52a7544679997def46480cae709cc43c061189c = "e874131bb0d5bd06cf2465738425ed11185ce574" +e8a8fdf9ead914945740608a5c3c744d66b49457 = "a7ad2fe0f19ee411784f8bb50fcd95455974cf58" + +[072d6d2a-3012-5899-ad46-80d259e265c6] +5113ce6044fc554b350ea16f92502f8d6e077a62 = "c89b6fdea14d92febdf6dd466c05405c1c364d69" +8208e29af9f80ef633e50884ffb17cb25a9f5113 = "cbb9cd8cbe4abfa0bf1f2084be2407fae1597d28" + +[0796e94c-ce3b-5d07-9a54-7f471281c624] +0f9db4dbe7e86fcafabb30553520c2cb3561e0ff = "500896254c509e3038c44dd4fdca15438e58efab" +109f26d78d39796e852d9bc67cee14791453bceb = "39bca64a69fef7b9535c84d34506defcdb32a13f" +26eacc4a7af9b2ec499be87fac6fa5f92e4f76af = "828242f17dfe2ad6aa31f444b31ac469c589452a" +2f4cf283b81c2e494e03e843f75504096c607c1e = "d52ccc480e31091fbb9d72b5b4d0bd0b6219ea82" +4688efcce05fa4fff627bff02f094e28bb2998b8 = "31000a2b9465db685e8db16875d3abba8356e9fb" +65db7933c987c2337744799870efe638a8f2b1c9 = "1fc7f89ccd25def7f2c1601d437757fa5109be1c" +7a669a438a02c593daa65cd169ee4467e7dd43ed = "a6a0543e501885ed151f8a40ae301051eddd181a" +80fc211555905b1aaf89b17f6d2d5f13f613c797 = "68b439ef5f99957b044d8634e568a8a31b922e47" +a576699e78d2d078329849e398f288a25f35ea13 = "2367d7124a19dd236269e58f0e4688150152e955" +b3c8238597432ab12d0c6804a4a751b2e5232745 = "b70b893b26c2fdb022765bd5abb8b431c7c745e6" +d272c6ce2e6efbfe809c495c8aee2cb02b035c45 = "007b913d0772e74f3a25527d067d1db84cd15449" +e271aad83313337e83da996da83a8eefafa624e0 = "6da95fc33be256c19f3de62af1e12a6174b1d104" +f7359500afda80b355296587abdc9a55b736eb48 = "45f2bea66b00f2e74331487f4e16e3e2883ae057" +ff2e35882f71ef6f2fd447e63d81582fe6c9643d = "15e043a89381e924a2cb86c69e7b3a373590d884" + +[07e3d4f1-5dc2-5a3a-9c19-e1965b76eff9] +126ed40710badcc71d23bdf12ce9b25e1d915215 = "49c188fbe1781dc1c004f73f181a85c97929abf1" +46fbd7434482e1969c6abfbef674422d95e7c61d = "327bb18700ac8dff42ef30d3af16551d62f5c6fa" +48fa9acc07333d48a4a8848b2530a68d8612f3cd = "26a85db0dbe82d516ec43c46de5132723bf9218b" +8d3c3a0bcc981810a5e7f40901e736020f98892c = "f2950183ea3de6991125ef4833b7a8d87a289ff3" +fad0dde74af1295e4143fd02a9f5e67774e71b95 = "139a2b4da4167bde9c1a67b70b3161dee53c82d2" + +[07f61e4b-e00e-54c5-aa15-eb17a33f11b2] +29a2a0ff2c81dbeb2f63a2bb3fc23710566041c1 = "87fe402871e46b309b81b85bb0a127e001bfc2c0" + +[07f847a3-b39a-5451-bea0-0f0f0688aa14] +0ca592d5f388d7f3eabfa6aa049077a561092666 = "cfe7a748a2de44923b7522002ee81d08daeaa0d2" +56f549d96f4a202fcd22abb0c755ed02932e5575 = "d629dd54e052891ccbfc35aec0b6c53938ccb8f4" +cea3d8a6a77c38ed764d0d5429dbc55bf7568ae2 = "76721eec14bb582cad0eaac2e3e9069e6688cac9" + +[0810563c-c8a8-53be-b185-e51c33dc41ea] +12e50f94bc13aaf907692281db84e6eb3e189ede = "10de16541dee80187cfc675926bc8efa86083df4" +60ded6e068c50789c6f4238dc22e3ba57f38225a = "82d09ef77b83b02d90b1119a91e5d3d8c5a2af94" +7885534a034e5e0fb704ced7a50b5259fe8efbb7 = "1076e895244c5e12d2d0803ee2ac82f66318ffb4" +8e8bfa6e9bbefdac9bc7401dee0347f4c9929e36 = "e5af5099bcfa0808bff21bd4aff5cd2e529ff783" +dc05bca8df7de1e66de9a4a546a4856bbdfefe45 = "792af9a4c87ea87271842e74fc06867b8f935d80" +e415b87be73c774d1fa69be41446039acd48b52c = "716d874df989da9fa82fe265cb37d0a502fbd711" +ed645780db568e2b649c44d3f8930a2d97117189 = "8a20f767fd18997a721c4e0444b84a730202bc26" + +[08131aa3-fb12-5dee-8b74-c09406e224a2] +0a10e44fcf3f72060208ea519e6b3825d7b8a790 = "522f47b283a0d0d905c220dcbf29021251e5f32d" +0ba1ed5d30bd2e6cd557a284c2c8336ccd9b78ac = "d4dba5397fc566438dda239b77f98bd625c10be5" +161a9e5bf4817e7db4a72a677ddad76768ee6859 = "653003324997a653417dbef897ff280950e6bbe3" +2bb3bed65d74cd669c318a41f11610c48c92aa7c = "a7057b425b3bb0781d6229d011f61a81ab9c57f1" +409cb88e0921ffa5c12e79525fb16b2ab89025da = "b1deab1da78f92e811206e1041aca0dc686cdd40" +52a6e701183a0324a408db0ae7bb9be00d3037e8 = "b16379970926f4061d13b63f2b4a9c3886b858ea" +545f101a648c6a68fd025fd45ba018cf918d12c0 = "6c888e9736668b1b126fd351890a8d3bca81262f" +62a80275abe55f0725db45c7606a10b3a803d226 = "cd055f1ab62dbe6b522be78df7a4cc34088cd6a1" +65bfef129e04d3c9846bf014d9160d6352c1940d = "737739cc8d72b4841df5bfc911ad59c9a0540596" +68871d723f797a5ea876d57df1cc13c7d519f5f1 = "0795deec5e717cdcf89cfdf836d79606df4b0786" +6c76c162e94d2562da75b58114290d97e73c5f2d = "e664123afca13a0caf2f08f2b91714f724732293" +6fdcd965e7d331c6e93bea74ace71414a6e27ac4 = "1774564d824dd591b3ff394dd64bfb1907808702" +76ae49b6430b9a350d74af8fb8d36eb39ba74015 = "9af94e9598bf1d3d564559ca749b989a08fc343f" +783774e452b71a0eb6a4d26c3208dd2f0a564083 = "f9292930c8fbb4b3bab7e84975477d0df00efff4" +7c3fb4c3021eb2ccd9742b7823e0de6177a63312 = "1ce53d235640671a4aadc553f4a8b76b5fd9927d" +7c9568e46390ef20f8c0bd3666050375962c944a = "5f562f1dc5188e9f5b1e43346e00cf65c7612821" +9fd1b25b03372359d2c63557e2dc8a745d16bc88 = "d4ee98e6992770cd847ac92942da734aebaf1cff" +a5e1e744854f874772e29f6c3fedc27d405ec8a1 = "08b0f86211c06c47df2f6a1030e2999126dd42a1" +bb419cee07ad11b7d7f9c36e010b8ea8c7b46b84 = "0f4a2e8b4a1edc55aa6adc9dab78416fc78a50ed" +bed2604311f6164338b0ba4383dc33c06bfaf318 = "fa59179619806bdd96bbe4f7c27a72f17157a225" +c679119b33909f5745b0825694100b5a24fa9b33 = "999c1d7b64f6c38ec045a8a629c31a3f9305f1de" +c996017edba0d43e0e1120362fc3bc0613a04c88 = "49260b6867304308fc1e5d47fdca50f42cbdca3d" +caaba614aaf7dd7e6b2708e2a2fb53290f406349 = "81bf7d69b26943f050875b527312251a1c682343" +cf73574e58a1940edac603cb4cedd45e9a4fd107 = "db421705ad1aeb15d83ace81fc97c73cdc3ee6e4" +d813db49313e7eaa2b5e60730c9b062d79fc4877 = "5f1adc4c157c2048a8c1692ccb911936f1b23e5d" +def06f1e10e09107a84dbe138a6221b3d79e2b0e = "44c16938a2a9637e572da48667e2ca0762f88a67" +f488683b5f4f8f51d97fb715bb7473cc48c5d1ae = "9bfdc15517dda7153eac550f8b3e242aa894b1da" + +[0818e8b4-bd9c-59ff-a62a-597382e55725] +03933c3c6396bde5470cc119e00889630e5c43de = "5d34a8ebcb3daffcd12f00defdc359cfe9ea58e5" +59bd0b99e820b5ee367e825c4afc2363b96d669a = "692317eb79cf0644fa07a000ba10fb21280ff071" +5ba878ada339acc0e3c50bdc2b26fdbbaf1097b5 = "b6a7a425114f8412d244d3c4eebf09ca987d1fbc" +790438da3e056d0e00e72e6e5c136470fe645bbc = "c512313fed93ba0ca2ebc1419e1856cea5c5f375" +7b0ce44212170a4d222395b8fc1a04da16f6a8a3 = "605b085c64829895346c4e64b0cae3dc1153f9ce" +7b1b528edab76a0b4b4179a2a4fb453a054860f2 = "e0eb1c5358d00c26cfff4a6a12cc8c97c1be6071" +7b49e233c5d284d7d95fcd0c4de0a80475d0b852 = "bf6e08ae5f2c23e8f82d3c54adee963ec190cb9e" +7fa7340eb5896a5fa0845db6d92f2ce31451bb3e = "89f9a238a76c44f5d206389d7132b8ff27f5ca97" +830c086ec8a7d03050c4506733241f72851af08b = "6656cd383c0ec962c68585fd378075a4d1a23b58" +b0132a92ba76a95ffe54381d1245680d6d2120a3 = "68bb3d148fed522473855a3cfadb4f34dc3f56c4" +c62415b14b536dc2c83d50471477503a90755f22 = "ec30abcc1998f3a2d31a2097e27c5381b6805b09" +daa775971006578ed3fea6326f8bc9d34858979b = "c8a20913307c78ec250be24fc5409284c672685c" +f177043a424aefd5b113c0680269e5a11834e8c6 = "18af97b4269ac38ab6a0dd3b901eeaa791fb581a" +fd8327b0f49e2a1fc7b4667029be595bccadcd21 = "b7c6b36017099a60079e8075436d1a75cba149a5" + +[085fde7c-5f94-55e4-8448-8bbb5db6dde9] +86d320fa3f26c18b4aa815843e185a658ee722ea = "1b4a5a554ead9911a7ed5a75318540e8d3861338" + +[0862f596-cf2d-50af-8ef4-f2be67dfa83f] +06075bdad21f964044ea7f6780cd5e5e7f886c7d = "209ad3bf9b947b8f4d6da3f4c9c1914f4688227b" +0cf86c1d4beb6787cce7a2c5eb79dd2050af19fd = "161d5776ae8e585ac0b8c20fb81f17ab755b3671" +17f87c84dacd75bca9c873ea72998978f6c18c01 = "d62a5b93cab2302828d1f42fe4caa76033c83ce5" +70a34c3bddc3f74d177c9a19e983eb5a4ab4f560 = "f43e49ad1a1173940a5f2268d7fb2fed3c3f8dd4" +8f0445acd8dd50474c38e47b8b75524e2e3fd250 = "92209120899bfade10ef6041aa8b8c5fd63563c5" +9592f780c08fc24fad9e6db037d6387bca1561af = "3e7f9ca969f323cc12c1b26c7e2f244ae81f2955" +b92c3d632a2270e5baae9cdffae0a902084584ae = "34406ade9d82be903f0bf635852da4bb1b3daa06" +e5de2602479f17c628f854223c6ba7baea6ecab6 = "ad6f7e4de6aa757b85c02f00bab7fe61512d436d" + +[08854c51-b66b-5062-a90d-8e7ae4547a49] +33326fc195c5b3b14f6b5cb9d9062fe955752bae = "0e26bbd86c8653c5e7fc68a0b40df21c7fc50ad5" +7165e2230f98146b5f72520fea77dce25503be11 = "d9d4e7c6a0556fa396977cceb9e5e74b24805ca1" +8bdb25ec02c25407c581e0f98015e31523304a43 = "61a17bd6dd9cc0a457a4009d23ae5aa139d110e8" +aac0482861098bc9f7fc4910c469b790aa9f5f39 = "9a785678819b7b8beac2681cee0af1bd37e9bd4d" +dc4d9ca8887537e4cd24ea5e7259468f90932394 = "52a509359ba015308edbbe6401988f9f594e0315" +ede86ec60e8d18c9d05a7abbd2926f2acadc30e4 = "c558bfd86550c69ce45b0407d45baea7ed804dac" +fa9b868f03a611ea42caaee37de120e54787e41f = "81d84bbe85533660e386e10eea34cf218ad836a3" + +[08a2b407-ddc3-586a-afd6-c784ad1fffe2] +151d1e1e4c4ae1bebbee75375a85b8b2f9f49692 = "bcf5766d33e53eb25857a4229f69cff0eb35365b" +24ca7473cfdde2e12c1828197f1bb5dc71121b7e = "4fe967896ca59eb025b4d73811b499328f28defb" +3f4059f5000e32bf9008c0936e788799d1f4191c = "71de1b23ce459e772c7cb5f06fde66ea3961a34b" +6d91e6a84d8a3c6baa98bf50f5f18bf33023a4ac = "289813ecb9ef67b03cb63be2f9ae36a6c796d0d1" +7b324604af6d887fc74b66d2841a81b0b4f8cdd8 = "13f468141b444de5ae55573b5197bda0ff808be2" +8d570ce2ee0623580f881162199a75862f3c7646 = "f90107481b107ec764e5ad9cc49cb4c842750992" + +[08b6f058-0539-51ec-9920-f66949f89f7a] +1720755eb76708b4ef115d9b9a991246a2359f9d = "76a389b072907722241818eac85c5d863e94a59a" +2c0c53334d99d5ac6de9c6a8354431a516f3999c = "4f4d8d970f324b924c7dc03b383acc22e518575f" +35712b2ff0cd475b52cd41d71f15027b728cc174 = "2bbfa791cfa2e0ccfb202dc4208c7b2d0869ba50" +3cb70a302b74886c6a75d649c06d6033236d04e4 = "7eafd8d4e4f610ade4a5062faae7a2cdf4f4da34" +3f4d639ea290483c41f3450bc39e5d88a4ffc222 = "30402f625b038675d516af63a9d7abaecaa445cb" +6977b08f642adc261f78a4338919f5ba71e944fb = "3d8e302ef1e44d9643e93c7123127bf8472db08b" +7381d1fc75ede5ba6d18f7367bdd6c8d99cf615f = "2d6f35f2210a571bafe55eecb724e2771dd67f9c" +9bd35a5a64fd7fc3a23d808eceff3d394d325d1c = "7486b6e08e38e5d44bc6d13e204d0f8d1c8f040b" +bc3d611e124842cdb4300447089ca7cca8fa94be = "74e19105a2075a23283a188c42cb07852e5a5154" +c69cf60893e7505a361314a8367ce8f1183ebad4 = "d4209aa16a0e0cb3887bbe1a1ddfac24629a670d" +e7baad5e5b1d4a0e0103c0eb87014822ae1a93af = "1981f63001c99ceade772718adb22af2e146f569" + +[08cea906-7a73-5b72-9a90-5814a991aa32] +1e7e638f22598f46aaa0b16ee081c260d4d34356 = "68073d72b558a07a828a1b92e8d0ad6e796efb8c" +32aa2edf641258a2f4de1735e3327f046ac18709 = "bfb30984f898c370ba3dceb0c40e7c50350b5ceb" + +[08eae483-2844-53a4-a2b9-23549d80f877] +e53b59c189a2a10946ed6372a66d4d9ea9e8258d = "afdbf73056c399b7d372cb8b160499d0020ea441" + +[08f7bda6-d19a-5869-bd1c-a698fdb2a278] +deb90ca4040afbe141bf5d4482d6a95cbfed97f3 = "f7f0b9ffcf7e0c5f77b703cec0b9dd613183154b" + +[093fc24a-ae57-5d10-9952-331d41423f4d] +03a4197f5b6583395ee315a34d3af10797ec3efa = "825f8a929874a9398af3069e032ee74169edcf3b" +088e33b586ff849882abacf43b46721cc7f4e0f6 = "04b9a95d62d1a7e0b78d26fa651faaa127ed1816" +0bbc5f63ebf06a89dc4ab25e4b96e601167c12b9 = "5a7d5e88b2fe52265ca869c137c7b48f8dc060c1" +0c924e05f7c986b8153f43d63b71903289343602 = "5a1f0e2b07e2d95f32eabe214b59375c8c58b5f4" +0dc1e27f337fd0159e8cfa680dab55fde15163dd = "bba48e9f811c41919c8ad3ab5074bd3ee4dfc825" +0f221895b7190aa5ab3c12e0183d22fdbb1d390a = "f00ea89ff7e6d61bd11dced99c3c79900ff1eb80" +107c2eade4907a77ce9d9c602d58ed726c578465 = "e752f209fe232c92c1fcf405878bec687621f362" +1823b41a1e14fdb645d3cbe7f563367265caf940 = "b8a937872bbd333bf299110be23c455c437eefb9" +192149852d28d7dfd04c88fd530a39db6f3a3434 = "4995490f08eb04c82215bbf3c20a577f7bbe5dc9" +1cce7dcf78b81edb97e0efb7e95de59061c6e7be = "249a246fd9332ece91f5c6d35e3876fc6a51c7ff" +1d4c341fdad3cfb6954361c107c7a5ca32903ae2 = "88ba315f12a2b3b305bfb2852c131a35adf8702c" +1f559d453bc98b73b566720421d74ddde70a6db4 = "e9e49915dcab58f2abd4f79e548d2ba9eb519847" +26648c5db3e5a0294e26eae383b10edf48ecffa5 = "de3d66391cd0814e8569b58270ceba2c4ba414d5" +27baf044eff44e4e1ce9c2f9d3cff68faa440d2e = "52cf6a3f3c293a9c61dbeceafe26e4e46a93ab8e" +2c4b3b3b4b96fc4da7c28938764eb306b7be9b7d = "f1157649735b35248a467b4ee8864efc25b4505d" +2fbea52cfd58a278b9eebcfdc0d23f78742bcb66 = "30111cdac64791ab6d832ffe291f47285239a5d2" +32e021b216ee46bf173c3de2691a40c82262bb3e = "2e573d0934486ffacf9ca4e2059a3ca4436dc361" +3650afe98466cbeb62b2fcb47d10abe68db46bd5 = "1d9ad46f1aea840880acd6f8d085a5f294f63be8" +38b44302b741f8772985ce7c438a619da00cae2e = "70b5c450dca641b86efa09575767d565c437d17d" +3ae336a6824cd38dc157b4a341bfabb299087c55 = "fbf85ac0acad256235c6232d2aa1d1f9173b35cf" +3f58085a10d9324f1ed980ff3c0029b6f1c355c6 = "c25b867831575efb20f0a489231b869514712365" +414f14d896683bbac8ca60becfa3e811be0ba26c = "1975058a6f1f6f37f6edd5519d0fbdc4bdf85804" +44528ed35df7815cc36ff39c91cce20ad2cc1ff8 = "a0ce0b2850f6ad950b04c791de69e70d2e7f0428" +522392576745b7439cc5acb2b5c5a750ae10a800 = "64591c8e0e8af49ea5911a7fa0a3f1409533f2ad" +55d7b6b4831d7f18450ef1e6a468cc7545fc14b3 = "b27c7d51ab20824fd45bcee259e2a46cc571ff22" +60f7a40eee035043d2e1956fdf7bff8952095388 = "58d51febd77a8b1bd91148ed23d17078e38a16c3" +640e2de7c94a283a50f610050575be47d54581e4 = "b15968acaa3ae9d1b2078f67c27294d279beda8a" +6611c6b3e8f260cf8d176c997acf77e515d16dd5 = "5d19cd2f49844046f7bef81d727396a9dd818d3c" +6b5b5c341c0d7785675018821d8b210f8398394c = "4d9011c665c957e6a08aa79240bb6080d6a27c46" +71e0abc15c8bbabaa049eae0dcf386cad2d82225 = "ca0b08db4d3daff5577470a9eb248b08cafd32ef" +72fe35132959f41efb2a2b66b13886bb68681c27 = "afd6aedc1a38f97e4dceb5a4922efac9c78ec21d" +72ff259bd32eed646623d17905bb3d4851f19ea4 = "a2a7d19b4204f6bbbfada61761372fa9da97360c" +76775fe72f924f99bab048319e8c0e0da1b7831a = "97aaf672c92adce50f4333d260b2148cf55417d2" +821563cf704810dc5aff6b624d800b37ddb3b6d6 = "42173f5cb6d3d00eda019a5884b72f02c9d7f16e" +8562e420adfd63188afcfe28c91c6419719fd12d = "6fd26d71c42de27a9f5f69025f57de6802386402" +8ed203c10078107d63d7768710cb393a43faa29e = "e9c9ad9d43fd6675dc45c80be01c75c2e6d66c4b" +8f1c0be1b7c71439be2386ca6223875d2f8a710d = "c1758ba229a5cced14a10103404290e8ccd78c84" +907e6abdcef575f1128e9451809326a94bef30e7 = "a5b4b51fc60810195b949139346b92a1000b9593" +991de1a99893283637a9235908a50ea56a3b0bc1 = "caf04168a86fb7bb8ad1a9670b1dc63a8053e2c3" +9af5190cb14ff12785698c9716e9322a04179144 = "07fd6233f00c19237fb3591f9af506f767ed0f02" +9d47ee186a0c09c926d9975e67ecd8c1d38eb363 = "ddb6819f146d12038d63a4349b7874fdf7a9b06c" +9dd2b872a7d8bd5355fc85daca96fd7a63d6670c = "0b70f61a9e3ff1704fffe8806bf0ea238a894248" +9eb58904f58a93ce0e13134e0e8457801264e358 = "9b2d19de6b870cac1b8499ed0ec821ae62221e49" +a0a320f36e87dc231cf9baefc1faca4fb5ba1df7 = "8395aa3b8df5e8c44c97b1f7d4c4b1fb7a28780a" +a0d294b7e1061d11853576b9a40371f01dad4d61 = "d4f22139a4a2f4400119d253f3c1fb39c10b1860" +a7493c72fdb3fad6e317cb30a13d5ad717c63b40 = "2c78e0ad8dbf7d6c5daa36c01bd184a13aea9682" +bb49b42b1ef1760e6ea466e21ce13084a39742f2 = "4897a356ed887e2c4eb6ca679e227a45d8409094" +bc89cc145d269a54b835bdc36dd4d7c7f951e129 = "7f85c51537dd23aa5a1362c657c69a3fc2ef80d9" +ca79aabfc81fa16cb838ccf147369bbfd59d08e7 = "dd03865fd17f3f23763fee443733ead975925da9" +cb5d93b366dc6ac82367721ec367061035a2e805 = "0ac699d6ca07f77801b609a1a8ca8fa61f63f4e0" +d0348dc9af988f4d5954e743a3d2e99dbc43891d = "bc27256a6addabafe57807129da462d257c9887d" +dab281af840ef1be1767ef21e39612e70819b59d = "2d76d8fa78f2edda537710ecdbd413cc152eebd5" +dd06b61f56fe59921ea9a91372ca3c21fe39dca2 = "0cbf97573f06b51df9da8db9dc01291047e5df95" +dd952cfef9d7a359d9da87108337502737aaef60 = "ef6ddf547f082c071969a26e34c6bd074666b546" +e6c60016463314a4030a5d6d3403745bf7f19d4f = "fef0a3b2a1bbe16f958b3687d0ce47c5962d792d" +e8a40328149fcf008a499d1320a52fb2b37236d2 = "3006839b82516435f14f44e13d44ba9bc08c31cc" +e8d2eb0a8399a7408517131b0e2c819840e28034 = "4dddf0e7a155aa93c1ddb2202fd142e43f9d91cc" +eed0302226da08c5b3556d7357c2ccd96a4e614a = "2029de3bd12377a490865e60c90341fba5ef00d7" +ef6538fc0cde9cf2a1013e5e54a72e48487fc881 = "c1471149d4633bb8dd70abc8a8f9d0b925839e10" +f93840c4b019680ad7e0aa8e6257c9c4b7ef5b98 = "91f236ffc7b93b8e5f99237535507fefa75e6ec1" + +[09453d48-b9e1-5bf0-a018-8d5c65f8cb56] +01567e5725ef032da0f36c558c31b3bfffd11d7b = "9f712cdf0697b5c2d1229b2e269a80763966c57a" +073556a7c71c28133ec70fac4d6875cc9073f37b = "c08078e210dea1244f834df8714c4f55d66598fd" +18ade998bae00629d619e6c4d833d7a0057cd869 = "87bb150dfe1042ea4c941f3e35da2738f32ca274" +249f114c896644ebbd036a52b3230d180f4828f9 = "a2e7b7bf04cb08d7f1b9617743d91d49929d5ca9" +26aef3981ab47e517d5c0f1b78ff8a56189c7fc4 = "ae6879da878dad036acb20c75d5f5e23509f3b4c" +4e3c60d8ea0dfe9a286bf4c9cfce7f05ad606929 = "0661885dfa5ba8f27f8c494426ab079e5a33658f" +5ea65308d3e069e4c21fee3115faf6ab3cd89cec = "1cd55fcdac881cb9c6c2977b5b0600b4bea1d7b7" +82e3dfd89f9c69cf090e525af2b41f622c6ba3e9 = "4bc5045a821c30727207a87c7b8807399e37f886" +957e95d79c3d9cb2088ae6624511c112df397fea = "a41fea0755a9cb16d0956e79a6c50de088c2c656" +96472cbc1298dda6b222b2cb61e718ba05a1d206 = "7af65f656a26ddf8350838dad6a7c0e883667318" +9fb0d6ac16365dd4ddbe3e5bdd0d71d0aa6086fc = "cf23fd511d8742b312dcefa8684b453805b30639" +cd9e22ca4012dd215ce68da4b0a99d36b11dbc61 = "4d2ebb8b0532b6885d8c71f3e666eae672a52321" +fd53975643d4395f13d3219af7848264d9c4a116 = "96392d5b0d433dd6f6b98e936f454e706bb87ba8" + +[09519885-d2c1-5f68-9f99-0bf084a786ec] +c357c03ea6138a51f61584d846a3d758882e2911 = "5c1e5ef51e9dc6ed5fdf3fc3f41a76beeaba088b" + +[09606e27-ecf5-54fc-bb29-004bd9f985bf] +13abceabd4e12c6fca95e6ce7ef5834f47bfcf6d = "64154fa310e19bdbee0ed583d69aa51165407c2c" +6382b72cd48b70810e8878e222629c846f258e60 = "635e2035e18178b5ae988b43c3b1ffd8b80932ec" +8ee8152159c10cbafed8c30d463507f178b00afe = "2c1c2eab9c1026b1a5d3961eb733e86f110d4f66" +97be7ba29ebb981940f538d26d3d90435652132f = "48df59fcab9326d4d902abbfd6145718469df24b" +a8d5a35c0d9583855a4ced9ab117e9251b3b16fd = "4b5142321bd6fcf0ab2dba8f690bdfd899f752a3" +aa217f5a6eb9e0d96541d50b018c1d737655bba7 = "55d698ccc63cc3095d5cc9a5414ad78ad6d9774d" +c4d942e0a7ef5461024530da69dba2d74da30338 = "061bc10c2cfae33cf41774346e4ca5a617a1cff6" +e3b7a5a6a51ae5ddc4d185d08cd8a7c3899b75ad = "c846813f8d7d72a02804a6537f6a4f9897f13f6a" +e515e7d5f2d56ab21f7cde26f0cba84588131cb8 = "aab723f889169b913cd9874b7ff96216200c97dc" +edd7522975f7750c324b3274b3d5aff32dd3942c = "a936be69348d295b77db474cdf627c5a37753405" +f72d27ef69c7684d9aae38928144d56f503a188a = "f99f0164ebca93a73cd75ef9ec2379d0a516914d" + +[0999239e-cb9f-5507-94be-17f19fa7f34d] +2c70437161b108898d9b5b9bed8d230e0e4e2eb6 = "cc5337b660d455cf44436bed519144335af396f7" +2fb04be2d2b169290086eb81644d5762f8c0d6d1 = "dd9aae2dfd6e83038169320fdc36582d75df034f" +645e66a1dc1c55089c00cfdc5b72144551cd0f3f = "712c4394d3cd241bb1e2e520994477df42b6a043" +ea48d0321077ccab88bb1cf57d5da056e53d8bca = "f8afe976b24e097d3d4c33d39196a01c556ac3e1" + +[09f84164-cd44-5f33-b23f-e6b0d136a0d5] +075d20858739ad2daaa9f8e667ec5a80f421ab25 = "a33256a9475130cc96c4b301b01035a7a06c3fc5" +08b1f8044246a45d6f6ac86058f991aeb6120c08 = "3e1c7d07b062327d078d1633bdbb365188ec4741" +0bfc4ea1d3af88efcc0fc51b9262a649bb97cdcf = "494203ba2fa9af79fe994afce3ca6f7b436fa48f" +0ed73dc5ff9c474121949edba24e2ca2443f37de = "9d572b1ca5506bc2e6e753077a3a64c61e40b4a2" +1c6109aa46b6b25c67c3cf2b17904793c38f1551 = "8bb4c626123993e23b0868e842407b52c8031b8b" +533fc9349c5daa8b68b14f3368d968a0038af42e = "e18199924ada70fd137aed38acd1abab77c4bfb0" +56fbf2af0d5de18674034cde0b5b13f268184e9f = "a6c87ef42fe564f0da1f172848e9ec7c193e73df" +7e5c2a14c1ce69c8e20d363dcfaa9ed34a227f4f = "85887ee210dde666bc62b918eb4f92ec1f568238" +80c6eba1d0815bdc6ac0f8331bcd6a6babbf54b8 = "28a31185d691ae9ddb414ff976287a23b9c48f51" +841cf1e40ce4422ae0c713b60ee1b53e38fed35d = "4d44d5c65d994717b735c8ab4a3d1ed40530ec62" +86fec5d34a82d7cccf7a4409a23bec7dda868965 = "bebb9e3abdaadd7b66f9d548be932b3c375390bc" +a8c695529910d3931bd29b8e4e4dfc835b2c0689 = "a73716ef2212cf04c13b816ddf39f95de9610311" +bbe6143920944a75563ae23140288253d996347a = "fe2265b3e24657cc209b8475919f251a3698017f" +d6e1f958f5627297d8dbb2bd5e51cca3d10076e1 = "96af7e7b995fd73ff814991047fa484931a3ea26" +dfb41d4bf7a98d8c5bdf32d7cbf2f93aca9c4eb2 = "19471b067048b0619c18d52ed952e65f7b6df2f7" +e58291eb9edee9522842785bfc07414f1cf5a175 = "6dec2427031cfc0efed14c8ad5b807b3336d0003" +f3c63af3672888076332e0e452473ef709edabf0 = "6bc684e20d6ee2aee714df81610c9ebac8ceb535" + +[0a079aed-d6b3-5437-8291-8c1e09ce1327] +e5e0b3ae6585231c7c8e4a53dc9273cceba4185d = "db01b41f30455d94724ad124a6029b6730654cf3" + +[0a46da34-8e4b-519e-b418-48813639ff34] +2f31ac594e0f28892f57edd003660fc45b0e1084 = "5122bddab9c2e8ef43937cdd3e1c72ad21765ed1" +57392715628b9612aba7a1b81a1c3c6396a37475 = "b5aaaa9de317c776b16685c2e451e592717c49dd" +b7503725a2bb8d5d2c6b64a51419d64dfb860104 = "7e03dd6640fa27c7e6a308fdf42ad9bbe2ad98b8" + +[0a755509-c5b1-5d6f-9b24-59bcda3c37a3] +2d73fae36e53ebb5b6e02ef0c1dc2ad4af482c26 = "7e2217751a307d1ea067903ed5f11579934a53f9" +3c2488fa5ba14b16a167ee1d00c57860da8c6102 = "0ea3b70dddb2e7764e3b69f87eeb9269bf5ece93" +b55f900924e00c5c29a4153cf4152f790b3c3879 = "cf10b9ce981fc8aa8ff89f5c270e8afdf52d935c" + +[0aa23630-203b-5143-82b5-c6be0bbd4ea8] +44addb97be76874869648755c2fa987f2d72835c = "9cc637bb82ecbb7787d0e6c420d4d26e7263de18" +9f63ccfa6c498d061fa87bf9d671e652a755a285 = "f11e5e3c557191466081840127617ccab3097c4e" +c86bb565f096a10a476dd3e942e1de64d09b8e15 = "73ccc6a9ac0cc6c645dfe03c2745213b553bd9c4" +d90a709cc5b6a12c4de0ed400ceb851ea47394af = "c7645e05eb9182447a3945ba2603b7a46fb50f58" +e9aa77bb21e09d9ac0dbc810a05f0f5244e36dab = "4c2f265752a8e37022a8b8cf76708f68ed0cfbef" + +[0aa819cd-b072-5ff4-a722-6bc24af294d9] +08267a97c6608dc3bd6009fe5ccb709f3d492da1 = "1f543dad3ae18d96c424a4b6c46250ee5fc29e7a" +1123351beaba878eaf45cbc94a0ad1149273b1ef = "f1ec75b7b5daee52e679eef61b60301d3d576ca0" +1e39325312ec2e6938ef86bd6134fa19177c1391 = "5bd43f40005e6a035af7d1ed816d8e3590fc4112" +238ca4ff379a5da36a864c022c652c5189150a79 = "e5410fa24138b300eb035048c08654a181474b24" +2610faaaeea7cd92c38c29221101727445f7ab25 = "64af32cf1d47d4c4cd5c1f0c54eb323b537a4e51" +2e0307f9844b7a9d63372a683ead34d817a387d0 = "19eb65f96623a0ac263b378d3d6d7b5adce1eb3e" +3342a60eceada1cc2d3406ce7c258e4f2028fd85 = "d0168839494f9119d387aa89e4cd55cb455d894a" +3f15c075bdce52661f28b104d97dc493a0654ccd = "a0ffaa58cd026e3d1bb4270a5d856b1347cafc29" +470b5cf34318eba4265ef032a961f3533efde526 = "94770dc55edcf9aa30558eaa2800b861686b31cb" +5cdf8d9670c6a383146c7c54ceab2f23fad2ba70 = "1d48d7afd0696d35e6bbb233631c6b7e39af8461" +5d08685129e615592b284ebfb857252faed39317 = "25db428b019970f9347f5d605549cff94bf29550" +6a370c2f33aec8b4555f29e5166e0f7216e45778 = "24a41d82b11094a84fd69f7aac3b528783b36737" +6d7b15860aa1ee3725cdd2a9c1f113ea9a9504a2 = "8a68c5a2b2269e49fd7110af2e609bed01b5a4c8" +6eb988ae3b01641369ad0cd881e70926da4d8e92 = "dda1e82ad6e71d0ee2f7ae893dbc7d1af52d72c6" +73d26f5b3ce4f54066d87484190d1e42e3d23465 = "be98560baf004bd4b3b62635fe19b2cbf009f0a1" +8989864da53416f68515dd85eb4a14a3b46dea53 = "cb24b912ab6da58d46ba564df49b032083208bfd" +a227bc47d3a70bd533e4a8922df8c547a028aba4 = "3f8f6f5fed2845f041baa7d463a628883e76cbc4" +b417021503fb34c37ac3c8b31f608bcb96e19602 = "20a0bc9c87cd92379aba27ad885b653274ef53be" +ba8ee892bbfbcba8d8ccfec4072254c2d1c47b76 = "d17711442feabd4aca146a64bce6ffcfcb7f683c" +cd5970384f4a4a72c27d360d789132a41ab3b564 = "febe0c2e1bfb8a995589bb1dd8b388a539b7561d" +dc4bee41d039a93e9281c598232ff3c1cf43243e = "1d78871b9bc0acd77e2b211233ec3282f281df81" +ea203134508e7fb46f37538098330675c8785bf4 = "eb7882bd795584f8f8df3a18d7969a236b8347fa" + +[0b7cd5e2-b3f3-5fae-9080-a65912ed73e3] +069423d0ccae78d75310d04c25d1d6d6cb8e69b9 = "063631525226af1cd594fd7cd414f98f3efe530e" + +[0b8eec52-1728-55d1-8c35-0960165a0176] +c0ffa188ba92ab5663f04f8337e1b456fce08b5a = "346bcb26bfb5355594eb0dd72ca87140d48eb0a2" +edac727a50db1f500514667dc29456790b5f266a = "7a1755b5b8e50ea2e286e51c446aa392067ec169" + +[0bb624de-12df-571d-ad84-47aef8b93290] +1c121bdabb907b09a6a7911bc30dca2a1b03b8a0 = "0cb58e2ead9c37f4d7a0b3b615fb90c181b5f1a1" +2f4e66921193dd9f93b4e69bfa7de07116c2a588 = "14781a449399dbde7f64e7aa7a48d37d13cd388a" +795849c8a8d7af395052ec91ccf1f9fa9fa33204 = "424f8fd7013f791b55b3b715f506382ca53337cc" +af2e0008ef8d6e340b6879f380ebba74cf2ecffb = "8597afe389426713c3d67c6423db4c98770478da" +b2378701da6ccb7b8a688a1dec146e32ed22e782 = "89a82739aa11db0140639b4c115142db22f2cebb" +d1103f23a7688418b98997eaf483bc7f24d6c60d = "a87c4beaaa8cc27bb698d7a7cc35c64472920b26" +e0013c68bee3395f0307e7db50c977818a52a2b0 = "d1cc337b530d129f851c44de5e08b8cbc99ba482" +e0b4bd9eac9b32fa254f0646d10757aca3b549c5 = "c9ef1188e975d37bd443f30f7d72b3e6e17ef09e" +ef9cda6c655fc45d6ef4724476215f7bc12333b7 = "7bb2cf2c9af171f78e7a109c94ec6335f9380e21" +fe9a4b330712c4ca21fd6395d5259858330423b1 = "e33ac956c94b791e569c68d2b3a7ce9026fd60dc" + +[0bc01f2c-55c2-58f2-9882-94a900939fb1] +e4e8bb95c6e3b2fd9cb3619266adf433c15d14d7 = "d8a857b88ffa00b90aae6a713953a660cd8ce49b" + +[0bcc2ff6-69eb-520d-bede-0374fc5bd2fd] +4f7730bc3cdb9983fceefafc3162df33d31863a4 = "e230f2dffe222190e028709e635b6d840a12fbb9" +51e1a7958d9222fd3f2e80121c23eaa0e0173b13 = "3ff9a6bcf5f5045ad020155b0d61930f65802a61" +9a7fa29eed468d025a15365432cde811fd449207 = "2ace5dbb54a431876b8af96c43019e01fb5d349d" +b6c392f8498cffad3671635b4ad23bdb4e87fd6b = "97efc1434db45fec09781db5b9d804c249197819" +cbd1aa001f2148a7e5626b06fd976a1dbe90e79e = "211f661f8c6dcdfaa8ecdf319cd3644f19c95ad5" + +[0c46a032-eb83-5123-abaf-570d42b7fbaa] +05416d5d62c1186dbb01c509f90ce570eb14ed4c = "2225c55fd2786644b2c4c19d01713667a03f1979" +057c4922abd08b410ac4b8e0782684ffcc68eaa4 = "6b8b5a116e955238a2e6df2604dbc91d5eda4e7c" +0e86aabab5eb023a97e44cae2d996c5e4ca3a804 = "5e92c06bc21dec3139670abaeafe7197121af340" +113a9d87403e40ce56c5d017214c11e66f047f66 = "00008d684ca1a6ec9cb47e78ea3b66ba175a9418" +1c4001be9f6f5ce4e1c0b0a3da98f15121f00b91 = "4dbded9cd924a850d8a72e9ad6f054742b65da0c" +280a2a15411756011d9d39d9155ef6c133d99f33 = "ab02ffc49d13827d503d8db5edee8af07eaee95a" +2e30206001f7c729a8115bcb3b567ec94eedcf7f = "02ac6791998ad630c54df77481fd1ec06b6a0987" +2fea5c79be4c10565efadb641f0f9defa1abc9d5 = "97d4b42d30fd801f858678bececf5092e72d250a" +3db2976b60ebc59b7469b8998ef7ba16d9d9c9e3 = "f13a6368ee7eed4e7ee773517bf0f61563f973dc" +4391f554a5c3916513ec386a22e228cac7c50bcc = "5c8f844a0e186ca3bedc9dd8c1c31922ebd8b39a" +48c7554d40e08e75376b618025b33886c0e22534 = "49534aadc9e355f64a5ce163dbabdb30af29a8d1" +4cd4f310e095f655c10b33c4a6b99f56ed1c89f0 = "af88aa852a835f2812250c6aa7d1ee5c1e23855c" +52a2768fcb065c20153df64eb77bcb32568fe529 = "f93bf8a0e22449507d690b98e45b7c09ebae1c4d" +568ac3f72602e495d57c77f3bf258105e2a929c7 = "f4711396f81fd61922c32f4d07c32573f466cb6d" +58c0f0c9ac8be6ab24a3f79fca5436d305d6f232 = "3902b230245208fde579c1cf56d9b8d2bac08c2f" +664c809b3d29a71edef68cb1b05d258910a4518c = "7ee6419e0cc78dba8dc7c9dafe85db20f181a5a2" +6cb39b8515e51f0db44c1b57bf1918db33c163e2 = "5f19d72fda3a8ddad6a684de2c0fedba584c4744" +6ce0ba44ba844b5b4ec5ec5393297ed3ceb9a6cf = "8ad9d84ea66aa89d7d06517b927611b92afb861e" +7a85898cfb895fe0bed23b33b8e99219e7e107c1 = "8946e77dd3d2f4e42dcbb25c59b61bcc1b4cdfd6" +7cfe6232c5b500e265409e5496fe0f882b9ca99f = "a0264326d445e1d4379f8f30c9a341debd3358bd" +a1a128600411fae2c40b5ac5464d515dec32830c = "ac06c57216d32e7f3c33325c66fd322b54e51d83" +a271a1632a0e11f0007df10e8a1eab710e01faad = "9b5d4286d8dc561dd2b6f60a3844d9fb14571d45" +a43fc91d5189471c3cbec28d5fe9b07a7f3aa98f = "049ab3b40ac8f455417e4f9c092dbd69d1de5419" +acaf63da6690731f4e4b4fbfd10671d07e6c14d4 = "c71826b7e887771f97822ba9d913e89aa0bc8dd7" +c0629ae6e6d359e94206f826a235f2aa9ae18b53 = "e2f55d01684c10c12400d4887fb2ffc31d40022c" +c1793eb1a4ef9adbc6fb3d231bb380046da963ea = "2102cd6945495ba4429a5b127f36443414546c20" +c33c5e5b43839ac01c281a1f3b533e9fdf6a56f8 = "dfbe7cd75c39f22462ab77adc92489592f672232" +ca71be19e0cca11ef5df2b048e4c21dcfb47fdec = "dd20b7055d5737cbd41600f89201d9cb3b423cda" +caa315c16ad505d76a5c5901f81a9af1efbeddc0 = "68635c857844eb1a39842834550c40ef359c1b68" +d3f62dd47b291bdfb56c6d594006a3ff6bbed52c = "2efb7673683e53f860eda7fb6b69ed1e4a1c2fa2" +d4f35822bbc9882fbfc6951330acfbd26d99a7ed = "26f4ea046eb6b0b71ecd803be3dddc3ecc0c6f50" +d9d70449029689d814267c3e5ea253536970051d = "a1b9340bdb6b20ef0838c960495762edf91487bb" +db1a0294d1b75cec5973f4076a2fa0a797c1b417 = "da2de93d01c144eb696d687cb7fb7de8196cdc5b" +dbd13a2c8122d97b90d93bff7405dc7523631c75 = "f3a79532484ce0d40ef9adf2f97d9e8c7fb65fb9" +ddc15f76f36069cb5ea17c0dff68543c4414de36 = "19411eb748bb6913c13d1a8b39dc100e7a0e4e07" +e14fe4bee934cff9365545475fd04a51b9508cc2 = "2f0f8c76cb16ab6fc5b315822e1d0e9b6a3a6eb1" +eab10c60d3e81a0328c5fbbd4272d41df9ba57bb = "e46dfbccb03b8168fbbd72ae4540eb823add2cf0" +eed0efcbfece24331ba32d76bf38d5e33a861eb3 = "4bb91ce3443d1f46f3d75a36775cbe54c6413d8d" +facb5dcc830a5dd305aaa71316d32622c707a088 = "f5d2f36550472d3e3726866463db05d21bfb4442" + +[0c68f7d7-f131-5f86-a1c3-88cf8149b2d7] +26b32bffb826f46cb3c8357a0556ea0e2e945c91 = "2a73dd7b102644eb388489c29163064d3caa4730" +34c29122a5286f633bd55d9967ae05373101bf23 = "6d22199cbda6b56007fe58d6bdaa56a4bc27c9e7" +5598067ef2ba804af994f60847164835d19c1af3 = "6422485b094c5d79b8b0f0de4029700727503660" +65874b9fca1e14c86be7db890afe5072651b095e = "66057feeb053d0b13f06ac129d40ef445f5bdf9c" +ea9036ae68af60249bede743a00088c97951e2a9 = "ddade97e2f1c9dcca3afb7c78a7908102c8406e9" + +[0c723cd3-b8cd-5d40-b370-ba682dde9aae] +e3d31174278f084fc1142dcaabaaa043ad03cffe = "4ea9094fd107e2eb9f45b27dd6c7efcb0989adc6" + +[0cef87d0-566b-5ace-96b7-ad13d8157ade] +1664cf34f530d10fad32837aeb22d6d1679a8d6f = "546fb95b84e4f88ff1abf7e090932189c946819c" +cdf5907e713b84840e332b18c410b32f73fa17cc = "6f0f31dca9cba6c824c52b73951b8e5d8c038e53" + +[0cf705f9-a9e2-50d1-a699-2b372a39b750] +98e8e605e299fb5dfc548be86d1f162a390cda94 = "859e4171e57d869cd94ae9a7ac9c456c20c2aaba" +b58c5890a1abc57470fee396727f8a485d10db8b = "195e88ea75c6e48dcea76d321512f8f7c1ecb2dd" +b78cf3dc4f7677c224c8c837cc6ef3866008e3ed = "6445ce7d7b29982b3dcac6d6928b4f2051f2dadf" +e305e5029f2b9a7f20623b2d9889ddd91f4e12a8 = "a16ea8496f501fcf6f095aeee632a7c30e66b14b" + +[0d03fcb2-b6c8-5e3f-827d-1089daad1804] +09e5d7df5a0fb185897b1df73404574ccd681e93 = "aa2133edca8be85db6112a77bc40f26b18d1aab6" +2b65660d4f4074d023d49110e3a3a8c003556a2e = "11eeefc470a72cb8ff1eca21cc0013652130ef1e" +2bea8154329d4a8438c9e5139613cfff5a384b68 = "b09a14105a8eedaeee8441764ad01b56d603a115" +398c162d64f8460497b15605137606da8aae265c = "3bace11fc10fa32662a0fd2a1ef12beed671d685" +6360744e8842487049fffc03c564378bc884ca21 = "b21bcd92583a293b296e01f159ccc9482b72e62f" +b570ccd5704832a1905585350c7e8ab416f50a5d = "1d6c041c3749abafddf40e9a96a190fce7f8b064" +f57cef77f6909c551a7199790bd0c4593272ab69 = "a75ad567cab5ad3d17d926c70fb2550a55b3ec57" +ff7839f25db015125edf6880fb54c9b1ea64f3a5 = "b8f72fbadd8de0c8298bc4e4cfbff894327c313e" + +[0d499d91-6ae5-5d63-9313-12987b87d5ad] +19afbfc6161fe69443f3a20998e9024fd648f9ca = "e935ec4c501002cdcf3ee23c477e0d5fee0d6399" +28d8302e1a145ead37cef5578763de761b9a20c3 = "989eaa7761d2dab355d14d548eb4151579964790" +41da8d7fbfb791ce2758eb086fcb7a42cbb09f05 = "d133ce566e077edd9de7d479e721f4e0556c03c7" +af6e4f52f1c90ee70c85e957facffb658ff841ce = "367a684a1174a93d43409fcf8e5007603c038cc1" + +[0d51577d-51b9-51d5-9c9b-f56d3e616bfa] +6dc1dc528527a32f6ae5a4845ab3bd53e74d622b = "280d0e3e9bd2e9d6a240ab9148099783229bbed2" +7a7813fec55ff3eac4808bf73adeb425b53aad8e = "e83f9c2c2ac776d6974a239f46490555bb91f85d" +9aa781b4752fa270f707c89013f6fa7e5265f24d = "e89be81aba42ffa166d0d48be27cc2b4a7d58ae4" +e1917f044e754c36949d24503d4a9a1440021451 = "e66585dd910e58e2b47ddfa291079b97a153c9b5" +ebe0d3eb05cf71eade88a8ae343f73d9fc6e81fd = "f7575a0e07acae14290b7142ccfffce3a4e1a0ec" + +[0d6d677f-8475-5ebf-bbf8-769304748c2b] +46d6a423fc5c3fbbf76699cc2485532f18922c6f = "f7a6f11a259605ed948762a3b5a21e71a807a44e" +c2a8c6314c17fe2db3c968fcec7e97dbe1d474dd = "511278395572e52929ca38cb39b2f372eb437154" +cf2c3b982f3fe510f2e9803444ea5179d526e7dd = "a59c23c38609ad7b46a633fb37beb8eb30dca756" + +[0d84ce59-e78b-5c9a-b954-3a5400d7f6ed] +01437f68fe724172d4ef8038c44f8d88a39941f3 = "3da3d2a2eed7cb948ac92b76fd636848bb57a698" +3f91ac0de329ea6aff2365b26584924e3765db1b = "ccffa6b57a4513e538552f8b308561fd39764405" + +[0d8eea64-f1a1-5e4b-acfb-dd13f4d7386c] +058f98946525426e105d233b17d119a477dc592c = "a9f0b5bc05a9be0b114e88b669fa42c228877d8c" +3d7cdcb785ad68b723beff2b91b59441d7df9300 = "d0bc79bc6160b23b58942f9614ea965b882a676f" +a096eac20a72cf0a3c6ecd6e03eb1ddff68e6c63 = "a9f0b5bc05a9be0b114e88b669fa42c228877d8c" +a961259a0d67c44487d988bcbc359d48e2ad0593 = "67cb0e27fe4d497a485d049fe69bb7cf5f0cdc20" +d761c2d1405681ae31f5b1757635e038cdf75464 = "a7e96951b35bd894d8f15abbf4df11796ae992b7" + +[0db19996-df87-5ea3-a455-e3a50d440464] +9c45cb936d999dfe9bcd5bbff7ccd77021202478 = "ac27d1690b609ef792f39b07d086399ef57f040a" +ad765c302e540b8bae6bc8b3aa974a5b45056291 = "ebb63ba4fa9cf79df4d8bf92d15eb44aaff5f7e0" +f5acb3be6365539d0aa1cd910426192b3d5c18d5 = "f299f60ddb9f9e1423352c7ca4aa5347ace75d95" +fdca58950cb29b7a64d11ece541278808692e33f = "5f9c668dc2ab9927e8af5a8c2504e1542542df6b" + +[0dbe55a1-025c-5c9b-ab45-55492d058cfb] +8dfddfca661ef650e57b79093316417c17f3a604 = "25598254280c59b3f6feedb537e0537d68591351" +b4cdb4720dc3adc1d0d5a8b5a9738fd942a8dce1 = "907784f296382863c3201c79536d466019dda702" + +[0dca132f-5d13-5402-9020-a5b78506aeac] +29345216787ab151784c423b14a59c1bebdcd79f = "81101bfd98e8293e9624bfbfcb0969526de341a4" +4f0d633c02d57e54c9d162cf4cc33777d9327cab = "c5fd12d30e6a549ffa0aaab367f73a116726b71b" +7725fc2ebeae83e03748f416ca6cbe12c49e46e5 = "ed66342aac65635efe81d045867a5cc0289344a9" + +[0e44f1d2-4516-5e7d-9182-378ae59e766c] +033ae43aa20de4bf978de3c5931493a624456460 = "da27ced643e6db2c40c23f79b18df3b480d44889" +20b309d9b103d80b5295f820ee312c72fd115ef9 = "e3af5bce97bc6248219e0382eea4b1202ee50dd6" +2850fdff017d5e3bb1a3c7234e8f9ee4e6c7fb59 = "6a0b57c4ef8b1aab8ea02f83d45348f74fad26c1" +491ed65d967aa1aff6f5df1b79d6483906e7e626 = "3a9830b88df31442eb0391025bb2f294f7574dc0" +4cb752eb5a0994532b19140ebde453468ec2c49f = "ca2d07420f9d974aa309c8930dc93abe9e9671ba" +524d6c89f172d8002e1e09aa8ea9c6034b9d5d91 = "039e4e0d39a45a6f18fdd5e8dea8c8c807a65335" +81b7f376d2abcf5126cd9c6c4fa162eb999ed267 = "2540faa05ac3f77ae1af2940b63c6b2165975975" +85761252b737eb7cb3728e54ba181838bd948234 = "b85b989166029f2e926496bc0ef33a3190ef662b" +d276ac807305587a3fca61251528e0c33d6d0aa5 = "3d8335e4f81e74877330ff5c4a90f495c924b443" + +[0e44f5e4-bd66-52a0-8798-143a42290a1d] +2ee6bfa5d174bd3ddcf842da05baa4f06a1bb9f4 = "c3cb24382c304af17bd93010a6e5f7cebbcde95b" +353c25bae07c52567dde835265066737a8cd3041 = "6917cd94cd3b5ad2b647c71c392c6551f5225fe7" +452e9f3a062a118bf463fb744d5ad7cb669e509b = "229b3689cabc2aeb03b0b74b3fe4b25b3aba0fa9" +842e48290456a9f2099d2d86cc95cb38995b3edd = "23f0b6971b6a4dc87154dee6258208fbee2bf0a2" +852d1bc0c90e0e386f544e64992987a85ed9831a = "b44c45e611297dba3252a4619bbd21f59bb4e1ed" +9309db4764526cd1885db37f2a36354efb305eb7 = "32a802d033e03637ec7645b911e4b235b4a33ccc" +b40e76af0b9d04d88a974f1615f1bfbf4795a7af = "3fd8c3dc99137558839ca72e6d51d6b1122cb137" +c6ca4a8a693e4f9b94ab4cf5bf235e4e52b18614 = "af8b71c1416b7f6f4f82cff9a0bbfd9cb7a46170" +d31867ee697311c669a377fee13fa987c3611bd3 = "8555d7f08a7b4edf7daa0a47956c1dc6a8297e48" + +[0e486f62-d771-522d-b768-ec41bdde0066] +1caca821c402084ee8628c421d37ab212cff9b2f = "fd8514a1a6a155806746797d5a873bde7a760406" +a3600cfcd30430418c99955c7e2c4311f67e7a06 = "2987d5da1643da6b5fe5e631cd8e424cec6efa2a" + +[0e69188a-a5d4-5622-b4e4-a72373136fc5] +33955a3a3a2ce615ca682cadb2bfc4af0c9ad963 = "754246472421cdea6bfe37df1d6ec276835a9bdc" +66ee005806eb8e7410c7b84cb902771a8396dbe0 = "3fdeedbc9d462a3d597606ad8183cf5907e04896" + +[0ea44823-1ff1-5b9a-8293-5fd55a38e746] +5a48f1108ea3e115e46b46b596c61a5dc06d1a2d = "9b40fd1f81595c0b7c67ea8c51b2b755d46da6af" +78b4bd026765e2436e2365b020fb6f6a393d9f5d = "e1e0688c016aa6abdf87c99a3f17865ceacb8d50" +8339fd6ede2c0a830920b74db88b03136ad2efcd = "fda42b58e2bca31ebf78c70ccb6cb3955ef9ec04" +85a57d79c23f69db1cd6620b8d3e1c5cf6117538 = "b502f951721be8af780fb801e4a3b9bdd03b6ab2" +ace8e39274058134978298ffbd1b509ace467a32 = "5963505529aa2dc102a2cf2b9f0516f69052baee" + +[0ef565a4-170c-5f04-8de2-149903a85f3d] +0530d8e470f07b2c07df2f3a288ad98fc62d3c10 = "5b43d7e7aa84d5947c7017855a64cdf1bbd42f3f" +359013b96424d4dea133f3ce59e0e4b940ec0361 = "fe8f0f794fde59b84ebc8be93522cd65054cb00a" +4621b092648a330bc8033edfda56f46cba8169f3 = "3d07527c152266b0a839ad64c84d2896ec34c026" +5cdf8d01bda906dc9dff58abf6a4bb0930479ee3 = "639357cacf68c102008be0362ce6626940b83a2f" +be8bfe5ab45a13ace8f1b5fc413f824ccf4f4363 = "f8897f983f3855a804561bdabc10c0f3088910b0" +caa03dfe338b098e3cff77493046a49119ba1138 = "0ef0342d745149617ff6c2b7580a9481699a4baa" + +[0efc519c-db33-5916-ab87-703215c3906f] +30f92248393f76e4417e7c00595868820144dd98 = "e38dfe709a4fac5cf2018c43f44643cb4d765416" +a339867dde0d1c54a889a190658af75cda0e4abc = "38c02bd0918669d751270a99f36326399985f2c7" +ae858cf645bdf545ca0f3fb899d3fdc5fbb98062 = "72fc8e6c85d691d64a57647b3d0c4c44324de323" + +[0f160d28-7819-5803-9275-299e9913be39] +a2c57b5504eac8cf2bd68e0d047e5612dcbb2192 = "c575b7cf5e84187e339c4490ad3b3cbc466aaa26" + +[0f34fb1e-4541-5b4c-aef0-c26dfe4a41db] +28749b2c2e93d9de7535548e279921a5a329a5e9 = "f5b336f559874eeb2436963cd07918485481e15c" +c77855df271f1874439c4cccb3fe8c97ab9f234c = "e661d2f3cd4c66057a61c89e72ee24f35e4c6a26" +e695224f180a7bb9b4a31a711933c2f0eff6ca64 = "42c4588b4a00f59003e70e0b23cfd36b12aef54c" +fdf6ef0ab6236a3b277a5415c8b2eea1f5350cf6 = "f398745e114b8945b4a260d5fc9140f6f4d26783" + +[0f51c51e-adfa-5141-8a04-d40246b8977c] +2f7a7c8d6aa10bb8da1989722c2f82017bec7ed5 = "6bd1522808bb4ba056fcc92a9309043693a79347" +6dce01ba91fe34d08452ad09ed9dcd25bef9d923 = "492b95dbc1df86f55c45ec1ed0d1ec8b30c1ebc3" +bdf1af180ba4d661ae1aed650593812b5cb195df = "bf46bf36a697bdad40b7039b797ab08ef232afe6" + +[0f5c7595-fa0c-55c8-9031-265ea63f34cf] +0b342539a674b16dc34fd3e7f1c209f66f3e4f19 = "545011822ae1cf878d5557d3d7388078516057c0" +17b86b01a30deae3ae2f80dc2cdb246fd170ca2d = "69f39e071b698b6d45d102ca498af1deeb48e317" +4ee4e2fa6eda23a19d0a27b4a06c7388699043f6 = "7e51712ddafb5c96644c05fe65d9694664518469" +545ee34537a092cc4884ba29e1093635d899bb7b = "e2b95d4f7a83ff494be9a17c96c0cb921dcf0512" +5fe6a0b5e5a90bfc2d22cadf9dea288c122ce0b6 = "5ace997b4b7f32316c2f96621cd5b3924e4724e6" +6d340a676772da2aa6f44245808de1b297b9e2ee = "4c741ac7b0c1854876bad8cdaa298c22925fc6cd" +71d8cd90e9396ccb74ebee213306c9f4211c2140 = "5b05cd96364a62a33b595a085a3585bbea34b900" +7896d01dd55c8f1ad32f1decd5b4e1f165578672 = "99f05564a63b7ab6317ec613a57e653b6a7749fd" +7ee09437dc3100b10e3f1795f821973c2b9bfb80 = "e5e94c0eb794a8c70a113b823fe164bd14a65243" +af3bde3bdd619123f34d2529b58ff0d20d340357 = "cece93674b86fe3ae3549f00ce452dff904410bd" +d70e5e89f665d5f22170df88addaee1d41fa6cee = "0547f40b97ba1030793db87fa1a29a1531ac8cc8" +e432286807d29d597ed46a192575b633e89d54f6 = "36f472d374119d1e180dd748fb1c4a265aefbcde" +eb4ed28bf3bd2fdd8f8a6cfc0ba6323d66ee31e0 = "13e7650522ae8f1911769d48a92c25169183e4cf" +eb65b08a7ae0ac1163dbfa1a9c67a5c42b965b74 = "ed69ea49a017764c6216f0ccc21a5491232558d7" + +[0fc2ff8b-aaa3-5acd-a817-1944a5e08891] +08bf5a741aebe224478a588b7adcee344499065e = "f95e0422512d89523701b74e77fdf870b4516ee5" +1a9ec92d2bd725f168ddf11531cd9b4d0996edc5 = "712854023c7acfc3771fa7171ece6090fc5938df" +1e4f82146d174884f3fd4b0cea5aa7f6b96af2d2 = "55df630a20395aae522cfd0e8267c618ee5da8d6" +64903528e1d211d3f9ec5be1e2340fbe1a46076b = "affe9eb47cce030298fd1ca080e4e672ee907442" +71c085bc934723789fba4304afeec182582984af = "e00501a8c00d7690f7c61e7d76664a377932ef5b" +89ed22bd398b8e0f5119af981fa20abdfa9b9a33 = "cbe0f7d6576d8a641eab8be78234a392f7d913ad" +b61649302c7bb431036bd56554b7d740ec4abd67 = "92384487af0999d9ffa42c6925158dea5a2d3432" +bb362f41c9dd598bb6fd1c70444e64226ba72d21 = "3d4bb63cf12f512805b38dfe10ce363c66a1cad1" +d616a0aed0541c46a4bd59f36c4b49165a5e2a7b = "250974023c9b534ee39c93274b50134c5ad25d61" +e9b6bf1ee81d47ccdb4848afbaffb5ffe1bc0aea = "ad143fb6027686557c894c618ccab722a23b60c6" + +[0fd90b74-7c1f-579e-9252-02cd883047b9] +15ed54065d5405d73ff7002fff3c2089d6fb5876 = "0bde90689ac04cc6e4641f04dc5277a819336b22" +2a3976e242e061519b8b980bcb2d37e6653b46ba = "a85d117aaa28c85ea049decaf54d302ccba56412" +32610a66dd6d3809c38e323fc440e702e414aa95 = "d2f301b7f84e2e5156ff9265821a2dcdb02bbf90" +4a0c9fd030ac5257065305901a8083a5cfa07235 = "9fbcf48695f31790c16a8e2378ac488e6668977d" +5a8be1572cdccf2323274def1d630e10adaee7cf = "1a4d32487948577207e3706dbac128c473c7ee49" +6486f4d2dbc11b6bd4e8be9793081bf82a68376b = "1ad5e78b8b31cd9f72e66d5c0f34472841631e04" +6683e8238ac3f79c200c087446c6a57033298558 = "e3b269dda6f714a2af9447641f2fa45ddbad7c91" +a41d231d8d3db068e195df5d2cee71b4de9979b7 = "18bc3dd54dc30b2c95eaf89124bae3c626522a1b" +a5e72c85f4b1ed6b1d26156bb64c424aba13987e = "0339f124ec7d3658bd3107662dcea84a9b5d221f" +a9964dcfdd92186bbfd07a44696ee5423bcb3473 = "176a3e4585549af1a93dddaf987cd3741a656278" +ae9fb312d1506fd7ba888eac9ed699719e6e8f6a = "e1a826df5f81a7fe6ce0c0ab068146d9fb721d53" +c4181aa575dc8f194e5304ecbee011e075e0af6b = "761b9c20a92e9a345e991ee88b42a50619a3fe4e" +cd71b1586c3456c450efee00879664625fe28acd = "48a8a969ab671062b8c8b877d66a341a80a828a4" +e269f452c2e09fd91f06fb282ac5068ac4b681d2 = "8cfbcb366444af50222e36264675c05aab033a60" +fcfec143af37d059cf1677e7b44c108ebbf9d05b = "24407ab271549f5ea23db3bb7cb7a9a13f0034aa" + +[0fe7c1db-08c2-54a3-a222-6d1d3b7a471a] +0001fffd55f8f698bd1045bb5a7f4c48c9ed7cf5 = "1aa4d8976993e5ffb8d92de5f6d53d634af10346" +113550bb2807f89d58db2152b03563d0994b5514 = "ae3cf1f63332b5ffc355167b21cabf54f1513e33" +1cd77da90511e391426885287b254940203912e9 = "cd985a0cca0e20a63b4e42839e470e67cac22295" +245526ee3ff4688eb9aa7ac8df5ae65dfb5fce48 = "c9439c25c1326f542c409239c1a2c1ee6c2cb2b9" +2642f6c2bf326d6d932eff06ae2d4ed45fa43999 = "f7acc449a743a0ccd84af058bac7a633c563d8b8" +26cfa7b1ff84126cf52933453afec6528c2e5a9c = "b8cdb96fdb0d85d5ebd0ad69708606ab95f821c0" +2d3d6e0606e62a7e267c7974592fcd5e7da05e4d = "1632fdc63ef10e246447be339d242f7f70d4488b" +2f235b4de970490a75acb970c55cd4660143367a = "35a792de0cfd951c2eed83a6e7841b8d57585894" +30010f26e269eedfb35b0be35f726a847d570999 = "8dbf07617a6bfe5cbeb5baca955dc361d90fadb5" +359b9f32f6980689b742e99aded3c87c3dd04d77 = "a01d68f9669d8446f81857b50ed23c08db2a185d" +3a8cad5d068d95df33c4d5e33e01e865281b8b06 = "e38eac95d1a353861e561ab4a2a1b571d0463e6f" +3fe861c05c6ff2e3cec4c4f081f964a29b747eb8 = "a7dfcd2895af44654e8ad1fce114b1cec4bfcadf" +40dcd9e155a982a387dad58c5186fc4d5d57c855 = "a3b4dcbab280d5f77c8178ae6656529a138ed7f6" +440fb0a703153f6b2497540da6b1e6e10e8faa08 = "edd7a0d3c270c2ca9cfd16d4e0519043122d6e5d" +44192cf6261d6eed476018fb2770c5ca8dc4e9f2 = "77f7e1de7e463a970452768361cc31d1120a261d" +46b24ffd5349cecc6c582afcf1a7efbd03d6cf93 = "5faae2017121754bd11bd22de0714edc22d9789f" +4742f210c1deec5561edac51110788c5da5018af = "ed635f2d0c67b2b6cb6f0aa90bcc7ea98ed32efa" +4b917dfb512dcc22d4ba9fdcf658aba62e83c394 = "6bd5cd91e5b898a9fc52975d4748afd48fc479c0" +4be6c825261911df2877bf040bec5543b91533fe = "a5c00aa686f0d35a4bf5c3b70309b29b5200d88a" +511e2c7329f100ff9bd1abf5c2ec1052e99291ff = "2fd07d000f7b5171a7f4bc906980486c17fd7004" +52444eca857f81ced59285b5f8d088ee6cfec966 = "029efcec55bd1e0bb447cd6ec5ee60c2f80f0eb4" +57bea9fb43b8c78993508523bd3f35ac1a6c4f7a = "28de2abe37d6b44565dd47a656a3096d0d757032" +613ca12b69c59d8e47915312321158d7ffda6387 = "ad94da9a1d5eb5f8509079b9209dfb384f4b80ab" +62314731571c76a80f466b52cf16def9a135ee03 = "7296a678217242308496f9673d8d5d8ac83f20f5" +77c2592af8458de1b143262a42eb1559b4336c44 = "290f6a5f5334b557b35c2d37efa8b8a94db34a9e" +78327d1e6a8cd27c44d9afbaec419caf6a98893c = "c99802253fc25d6755a1841b9ade6056b8868038" +7a61d201d7fc4da00ed4964e1595242bccc6b071 = "38ef1c523112215c4bd2e95825886779b8107fee" +7aabfa07d8b00f6b44c71666513ea8ce8a459509 = "9f299d55f523cab01a0d8abcea082a1e35c8cb28" +833e531a2236b3e03451227f686b3a7c836f0e51 = "1d9086dc99fec26ddad32318001c41e56f694b82" +88094cfca36cc6ac2fb71863175dca1900950419 = "18f7b9839ee034b8ae9c7fe5d943de498ef53da2" +8f0a50287aa1418db17a52a886e5fdd54c0e9e2a = "7f5bccd6cc6062fe5c6d7f81df9f15d190c04ae2" +9c281b5646aaf779d18d7f36877a52dd12ca83f5 = "b0ab417012caf08743e17cf982d3ee7b6b795bc9" +a65398b60897628efe662e581fd83239fa2a44a0 = "3be3b3111f27e0728bd8b0b9ab8244d1fce908f4" +a7e216934d8f1953cdf7589c98f0fbd58add6e36 = "20256115cafaaf2bc12ff24bafb9709f00ed0ba8" +ae7d8203a1089b2cf05494c6cc209a6043f51b86 = "892203476b1212af21a3a4a146998758ae6259d1" +b8cf8ae816414a365c482803a8f61151dd677f2a = "60cbdf52be10377b9d4a6cfdf31057cb81bdd539" +c1cca79252dc47ed2f27723198a5cab03d145a25 = "a2fdd94a86bf0e877b6d1868fc52557e4ba942f1" +c3fe3a2a18ec5d44ed464a9f3c24354a30ed7aa4 = "4330652e3595d29679177dd3cd5e5ffbb94d84ec" +c588781cd06c21a49b27b246eb345a06e55f4dcd = "50c018ff4934310c044005352bbc6ce58112650c" +ca61510b1c3ee64ce9b2e426907e75b64d9442ac = "d17b63f826bc62a3709a7f1e6c45417b91d3216c" +cc699400e568786d4b01b2e0b397564f6c997a3f = "672ef8e94231449e30c40cd51d857462fd5b1945" +d0a0b3a2eb222182a039c70a1e8e9dab1b76ce1d = "c5100ec4b3f66607640665a300bce7d7979b7749" +d11cba1871c5b6ebebf825d7f4697e0295f524c7 = "889f7ba57c3c393823f3c2e8281f5068efe0ba4c" +d24f21eaaa85a6e99982bf0637ca96eba043feb4 = "7ffb730532baccf2bc54da88e48cb5c4bd90cf32" +d78a6d3141a7ab4c1365a52e9bafcdc74b8672c1 = "575702021cafa05ca10571620e445e1fe45dc337" +d8999c7c372720ea2078c9c75987c5695749cf5c = "b1783c462be488da1f530678f6db23752c1b7ec4" +d9ad9704555e6fe2e668d0f93b78e30b682b03a9 = "9a0f727c4fc9d2c7261430ea27a621f02aa044ba" +e0742478ba1154feedec80cf3563411814699c55 = "c25beb7f766ae70dc94b4c6d70c7abc2b3dc773f" +e0e4a700ebcae108c39c22b671edeae69c478a56 = "dbc3a778a0dc701d098ec099d2cbfca2a7e9c2e0" +e0f7a541c24e17b3604760d0fc33560df85b3cd6 = "d68250af79acbb566d8b24ef15f058a002fe94c5" +e50a0672b3e380addb0f0fda98aa48495e7d17de = "fa1c8e1dd62ad23cbb6677f2c403705344248b78" +e539194104adca6afac2b3282e728c326a5ed038 = "9d2550751b0d41e283178199463f155c917c8c75" +e8fe4f25727dad1f7155c784621bbc50737bb064 = "494cb14e8ca5912ded3652f11f9e67914c437a47" +ef0ee793fa7c20eeb5ba7a2d0ebbc3130ea1f3ff = "9252187dd070fad0fef276dfde784570abf77ffb" +f5d9be6c12240c91144ad28b42f4f35e7aeeee5d = "449cee9fb630ae25bccfa8648c4a761f3bea30fb" +f783cd191c95a976c5e0811d9b8f52e6c4f416bc = "d7f5293e663d2f6e7a0b3508cd05e4eb773e57b6" +fb8c0cd6e164a3f53ba6dc11b87d20cb414dcc50 = "0321cd10a3767a0723ee840788c57438d9fb4467" +fc8a8a1f7713c61c76a3562f17fba8c0d193c82b = "8c06c47f96095c00e0e9b578c5b9a63d466ffca5" +fe8ceadb773e0018c3c0a11df6663dde5e6971c5 = "7d9362f4e08ae2b321d1edca97e278370da15ea3" +ff723df686de2c3d5c80db71b8ff195a5d0aa76e = "f3ef573b7a4431f6316f43fac864e879a0fde017" + +[102930c3-cf33-599f-b3b1-9a29a5acab30] +694b36655fac65e6a02389fa8571dd644305d203 = "0e0fccd6263fe10a8fe4574180762a348a141976" +8ed1623b1a49ead6c388755bbed70004bbbc35e0 = "edadaf5c222d6f8e670e2ca4e5e1fdbcc779c646" +987b83a4d2cb612021de4cbf84290f5baf1112a1 = "6cdc57480330edf6101d94231e09eccc5ee3d13e" +e83f1621d95f854ac9d16a46bd9bbd85799322cc = "d0cccaca9820f1d915ae0540296ec335bbb6fdc2" + +[102ac46a-7ee4-5c85-9060-abc95bfdeaa3] +24beb920404512dbc05b1a3a59bb6ebf7d4a4b63 = "0cfa10cd56ce295395c6d8834256be07be2d20e7" +2f30dff3e774067666d4452a6441e13be6857e90 = "a29db58ffc602a0f32043f10b2bee5a99e039ba2" +6019e9cd14614ebd1997304b69dc5fe6d1ff2417 = "3a6913e6f66f8c61dc9a465f4de713f5df3de769" +b76f4bb9d7c49f110d3e3bf2690e9eb04669b2c4 = "a119829478aa4c4cae73b767e5a6f039c701033b" +e0f721c5d5d73ed3618b646ceff6ab462e4fcbf7 = "5fc5d1d84574a7455769da5ad1df6a95ab324520" + +[102ba61c-8d8f-5910-ae56-8563da4a761b] +0958bbd361fee95a7932e3dbd2fb587494e05023 = "8aa306e0d97a5518ac96ae1b64c65bfa78bded45" +9fa6878260d22942f4fe513d8d146f9cfb63c728 = "43fd0d144216b640e3409f52190ce39384f98f86" + +[104b5d7c-a370-577a-8038-80a2059c5097] +01f49dd9d6cd7f2ce0202584830aebd61e776523 = "30dfaf70d651f31ee201db2f09ea3f8fe950bd88" +0cf26031a5b1c270a91507691bcab7ca4c7429f4 = "9a988f809a9f297b45e545942d21da60b75181b8" +18a88a0300b27020acba04a0d50138ba710b0f95 = "8a10c1ed0adfc89164e6647975f57b385bb461dd" +59c56f988e783a9da67913ec26286831b4762da0 = "df3aaebf30b7869eb0e0f5b621f0f38719525755" +78987bdcc58950b2a314ffff9e93da9f041e1bc8 = "7a490a06045bbca806fdfc92f610dfb274352a57" +872977efc0d23c4aaa1e0f7be4efb87baa18cca9 = "8605639cfd7706e53f6088683a6293d0acea75b2" +94d52ad899de727a281e8e1b5c4c07482e3011a5 = "14b77b274981a8390268d7edebc5b63edc9842d5" +9570932ba379a8c0756ba98f7f5e777c6d581816 = "8b1a4424a9e5f0915f50aa2225e8164ffad6eece" +967d1c13028ba5e78313a0c17c24e4fbbfd8b861 = "b03c059b4bfa72745d31203badbbde88aeaf7543" +a90ec32863e047aacfc66b4d0193497df9e4f80c = "5c8e8fec639c5796a9d553e36368f3023b3b169c" +cb075879c7346dc70cfcb16e5147d236b1ca9e91 = "760477a73459feb626e45349697f6a87baf39bd7" +eb16f72607f8cc0dcfa191836cfa5ef3ba0b0421 = "e30ec53985931195ed2d7b46346c268f006fac74" +f175982e6469a20ed2133293f4ed4cfbdff39f0e = "1758a2239a93bf5b7052f9efff3417705899639e" +fa01c8ad7bea63bcc672bda2fbed9e34adc257ea = "014bf0383a028747cdd0e28577d722550baba7b0" +fe3b5d13845dd396a392f19626e8f626e33e0c42 = "68a21ef3d9fc76637c62024956396fbf8f003fe3" + +[1070d6b7-bf31-58fb-9220-e7913ad0860a] +0d246a1948ea8537395f58d51bd19a4c52df804e = "2b8feee8c38413b7c27915d652a6c99a9a17c700" +811829beea07f0d97c01f94b16b4139dd29ef7b6 = "fc9abce21de370817b5dfa77cca86e61caa6002c" + +[10d0aa13-cc34-5b6c-9bed-444edd59ae61] +235eea41ce1ccda0db41bc4d586e7d05e660c644 = "c052f642bdac5be2154e491b3bbf6f6bb3931f2a" +3d409f26953761605fbd770cd30735cd24214755 = "91327b150457a4ef9abae75def28d5179ff63853" +430f56dd6c2c5041537e73acd6a431a4e1db4410 = "66228d789a0f90dcc3673aa31c1fece98a47e0ba" +438082df85b042b6894a0cadf2562eea75cf0069 = "950a9f99888cbaab37167fa35c09744a64980403" +77cbb09c1987e1d02cbb13ca0e09cae3a6946720 = "c55fee5c7033dedd8eff42dc92a0d667cc2790c3" +9342d7eea4ddf0fa85f00c7c9e9e74e9b40413b8 = "9f593c67ccdc2f718a58353e2ec865a4b07e667e" +d49b05f058ae2c09cb2a9719829ec424590f39fe = "682c4cb13e85d0f9a5ef8ea62d7af89d09c8e752" + +[10e44e05-a98a-55b3-a45b-ba969058deb6] +06e22d971a1ff6fe12a51237fe825fe4ab253d6d = "7a9ea4ff9e5fbe390bd07dfb98adf659274a74c7" +17c1c9406e37eccaf98406db3d2c19092d43fcdb = "d6fc1675a93f158b9507f0681a483fef3f399225" +18f63b2cf99180fa5e3d1952bc387df1208a4a7f = "402f323809cf6351b9d656c9b4849855177f687d" +1cea259b210dd3317a8c87c3718063b5e1b204f2 = "ea1adc90122fb0dbc05f9952d0f90f27f92ae571" +3e1947f7d47afd01f527af7bb8915e2d38eb0954 = "ffcf6b5ef4fcf5a4d77b5ae3e0f1cf3fdd76d883" +44b8363c626b0929bbae1594fec1ef536241116b = "31f5b60953e55689745fc2f3302c4a363fdd887f" +5e563c56dccde7bd1d4e40001a85ef708c46baee = "aa05f75ceb5dee46be66408de39f76534740b9e1" +61f953b4f24805fc3330290f274dc2d1827badd8 = "2879eebfc81fcd8bf4228351fd4c41ca6497b3b9" +6e6c3f21f223c7c11b2e96d4263dafee79c09c4f = "06e97400a972b508673014629ef7b51fcfd7821c" +8fbc07142f62fad8d8565aa635a9745e2ab20d2b = "047e77284e8b6b23cc1980df68775b9bb9d3151d" +9275efb5e2f8695e77e275646adb2522a1155a48 = "544a03db59848531d32e12894124c617f7449629" +a1945a641281d5876f8e9c1c2193113c2e13dd37 = "27868365f02496858455d476acf1ca3a1b2b012f" +a35990f889ca30ffc64171d4c875586cc7bf4c8c = "358aca5de1c2778a2477a33933473b8cb085c297" +bd914b7195b0afda8fa307f8ca3f189b62555808 = "56c13f158ad8e3819bba5dce704c4d862d7739e5" +f1a1897c2dea8facd078b740f67b74938660837d = "1e58bfe7a01f2725a8f5d11df31b6ab9a14feae4" +f5bc892edb19faa8b77c0c803fa282e5d765aa61 = "b3bcebacfb85719b6bdb0f21cd2d18d04d618bfc" + +[112f6efa-9a02-5b7d-90c0-432ed331239a] +05e1f11eb4a01873f17d66baa9d3f3e20e66452d = "deac64da5e04a91274633fca4bbdbccef50aa3bb" +0606fb251ce5c9348ee8706d092233d8460ab5c9 = "19e4712e4b7370f6030f44a6858230c796943631" +a63916c506b1f70d13a96a43dd0455ab25d0df2c = "7f090cccb98c953dfc2a3b9974a6d8597d86a106" +ecb3172517e57b14ffe5d1d2c7fe42432d73b54f = "6766595584159794e8839ac41d6c25a38711a14f" + +[1130ab10-4a5a-5621-a13d-e4788d82bd4c] +0642a7103f28ced165250ff46e8ce405735a33ca = "e96dd16a4701765037ed371b424da75ec9d6299e" +138ee7638a0d7f592ff527162136787429175f9e = "c05d2e2469adc66432e2ce3fe3077475d282ef5d" +1a6783f34c75bec3bdb0cff0ccc1b9c32251ace4 = "6c37e14091be334b9ff730112f3bcf2a97dad275" +2b9c85d42790007fa14906b79a2a75dcf4a97a0c = "7f24a63aecd08b711e870135b9840908d0152be8" +6f3e9ab8b87536f475ec1f2a51b14b0373efa423 = "8cc093a806f0801d539b7c9989f059e6772a1c43" +9417bb21944d4fd7ff7f039eeb392e0998fa112e = "f9683cc5ed93838476e6b51b950e352e4f3ac23a" +b1cc279b9cc6b7112cb60999eadd998bd796ff6c = "ab625455e343ad6094764ead936380ac8281575d" +b47fc68e82763d04cc2859e18e4eec7b4540e4df = "e6f181974457c2a1947d3e6bd0127f6dda4683ba" +bb0c788286d396ea0fc807f6590252df092ea290 = "59ddb8136c445406b27506561934d2c8cd2c079a" +bf0199b153db0d4d457e0af6a8ab7ccb62254307 = "5110d6be71a455155aa9f99eaf734610ee18f781" +ca6e9bd5bc3fe7089db0690d4458f5522986a0e0 = "5253adfd4a1d0ca64aabe51b2e37c62d3099e3f1" +dc23e452849572ff2f23c016c6b8c797cee326ff = "45fc140b9d448360c066bd0854e8e38d00af092a" +de5e0643aefb917b144a8a0e9c184b3ce1fee287 = "7484c65d4387c8bc957320556e712ca36fa5896f" +e9d0efc0b3f6625dbbab1beeca53ab6bd4fb6df0 = "248a727de83faeccb41d994bc6abe4da22a89de3" +fea5b0ead86523b1577a67bfdbdf676d4fafa24c = "f742d83dc5129ae266006720689022ff39fc697c" + +[11d3f387-6b1b-5124-abbd-847758a5de3c] +12379a86096d2aa433fe40484f181529f17610b6 = "994c70f2cc2a5f60678af453d8baa84a07eebcd5" +752dcb1125bbd30b985eee9cf4df25947a9351de = "9f487571a7c0f0b4cd6927ebcf817d4a48cbd987" + +[11f193de-5e89-5f17-923a-7d207d56daf9] +57a2df614a3df45b3beb9bba5159f2f5642d2c3f = "ed0611a19e69b26ae9e57d3b796456141999e921" +6a7e6f352692a9d4dc0d3d78ef525d1fbfefba57 = "be2989c954c58e764fdf505709e7484b895f5a92" +77dcef4ffb602fcb22ded9f91ef00d054a6c2e71 = "e514e85df9b5624bbbc6c1dc2641ad3280342cb9" +9ff95e322e8ebbfee089f18e05d299f8a2072353 = "479d4edc470f0cf8052bc0cb23ebff6ff13fcf08" + +[1222c4b2-2114-5bfd-aeef-88e4692bbb3e] +05c6461b55d9a66f05ead24926f5ee062b920d6b = "311d0a6a17feb7d78617f458057aa9ccfd8a8c74" +0c24dca65c031820b91721139f0291068086955c = "723936e336b5730037d80ee1e11d014bd00c3dc1" +0d7248e2ff65bd6886ba3f003bf5aeab929edab5 = "ee8e72cdb2f09b7020d76215ac5a27f4041892f8" +0ff703b40afddf9b705bd6a06d3a59cb4c089ea5 = "2c4a1ae8ab77958b6229f49826d85a324801faf8" +1187040d027210cc466f0b6a6d54118fd692cf2d = "efe2c73a989c98a6b234ce2362a5fee44c0f9cd1" +2ac304dfba75fad148d4070ef4f8a2e400c305bb = "14c2871a2e50d084c5fbcd359520182fe5384869" +2e358ce975029ec97aba5994c17d4a2169c3b085 = "df196c24392c9fd29cda1301908b3db59510c23f" +31efe690bea1fd8f4e44692e205fb72d34f50ad3 = "f052e29e038b0f9049e77b7e1413564bcdd1b2df" +33920266908e950936ef3f8503810a2d47333741 = "f7d4ad08332bd05635435d5519528c00c4c6be09" +3c9d75391c72d7c32eea75ff187ce77b2d5effc8 = "fb187e13e6a459d879c3b1be879f8f699300cca6" +483dbf5279efe29f94cf35d42de0ab0a673fb34e = "bcefb95337d46b150717fe68d34d80f0e0024ad3" +6445c82d0060dbe82b88436f0f4371a4ee64d918 = "e33071ecc92c4f8a29ee3a7aefa7b94247e12fbc" +768187890c2709bf2ff06818f40e1cdc79bd44b0 = "12480857d6852be64452696cdde7b9bdb048c081" +79599ada444fcc63cb08aed64b4ff6a415bb4d29 = "2573a2c687ea64629534e78fdf7a9d75dfb27e4e" +80aa77986ec84067f4696439f10fc77c93703bc7 = "b15b2df56b7c50555207c834559af449f4f356a8" +8227746b95146c2921f83d2ae5f37ecd146592d8 = "4ea1bda7595a12d250ee813f32984788aa4c38ee" +903644385b91ed8d95e5e3a5716c089dd1f1b08a = "4a238dffa9ca2c49093951e23fe3f7d6e312d412" +a05f87b79ad62beb033817fdfdefa270c9557aaf = "663180565cc308269d9467d572ebcfe85a4b06fd" +a2f713dea5ac6320d8dcf2835ac4a37ea751af05 = "ba845b8e1cb72f76cc1e95bb2ba38c3ed849c45a" +ae26b25d43317d7dd3ca05f60b70677aab9c0e08 = "05f73b87a46e170864a6b09d2f3ff475b9737efc" +ae683afcc4cc824dcf68251569a6cf8760e4fb6f = "013cdf9d7901fc890039dc2538022a0430e26164" +b24213b893ace6ca601722f6cdaac15f2b034b7b = "ec537b264dd7da62f3ff7fb44deb444b06eac4f7" +bb73f3489d837e3339fce2c1aab283d3b2e97a4c = "840c9480b51eeba14e6ee69595aedf166273242f" +bddb70374fdbb2256782398c13430fa4d8b55d0b = "ef9dab73df8b626ccf8c882c57b39be5b381ede9" +c03f413bbdb46c00033f4eaad402995cfe3b7be5 = "936e336187794b7d3325db805fbf78d0061e6787" +c8ceeefcc1dc25953a644622a895a3adcbc80dad = "f673d35ac2190ddb29bbc86b6faaa7b2e7f4df1b" +cb9bcae93a32b42cec02585c387396ff11836aed = "518ef1c58630f81242c9ee56226a7fad86b21d7e" +cbe1bee3a8f27ba4f349556857bf4615ee5fa68f = "dab03ca4529608ef0c7fdc82cf7c0b2afcf0c53f" +d386e40c17d43b79fc89d3e579fc04547241787c = "f99623880b74ba75ee4b9913bd1d560bf3022036" +e0ad15af54feecbc4e4b91281c2c15eeca7d6515 = "7bc2569adcbbbf2f4ea4ddd6f120b2c08e2a7965" +e44b5939057d87c1e854077108a1a6d66203f4fa = "e9c9e57078d44dc7fbfc338b3e22c38c3c0163df" +f4c6c9d4bbbd9587d84494e314f692c15ff1f9c0 = "5ec2d66880c6372353cadca92d3447a224cccd54" + +[123dc426-2d89-5057-bbad-38513e3affd8] +093e5250f0ab392a5a0f8a18b6cd79fb32ac4266 = "04a7bfbc9e71d1e6cd8c0b800fcbfff82caf6775" +139f6133e2bbb05cbcaca2cd138eba27819dd01a = "f79fa01ec289d58ba6e22c91a04b438e2a898061" +438c4383ae33a363707ec83d0bb8a812912d0fa8 = "9ec797055e770c5aebfd366a53b69a44e2cead21" +7886714237f25fce816597c7bd9151c02355013e = "e071f6413d732bab16aa0688fb149279a65aef67" +8dea68f1d94fdcda0f273a525c705127de33548c = "3b00003c635b64bdcd9f94cec95f9196d585fce4" +8f4790ed11379ba37766b8bf22ba92843be049e6 = "bfb40e7d614c2231ec37d747f87ae5c01362e983" +c501d2191b267e44b2fc738c1a8c7f4ec5f0e2b3 = "4f50f1075b61576f882db6f6601b2e1571beffd3" +fb40ba1016b714371ce38b3535a109f7d4cccc1b = "9c1a194a98d43cf5a86b134c013b784d2ef46389" + +[124859b0-ceae-595e-8997-d05f6a7a8dfe] +ad36413e42939adc37f9b1d5dcd1a79ccf6fc97f = "1a9690efe82dfb40c56f8624fae1ccdccc8edd6f" +c914bfb2183d25c2a2a2eecdea193b21d38ce7d9 = "27fa0ff274a18d8a4aba2150ca5668de98c9f696" +d5eb4f869942fca48b2530d9ee9ba7882e029cce = "c25c88d39730897e939fe893f3a584a6a899cbbd" + +[124a6c59-8edb-56a9-bb1d-56f762e41daf] +c361fee6e13024372baa2ee9cabeffcc10109717 = "fa8d48ad92c64982cd27b668873e0e8b16e37cc0" + +[126761fe-f960-5dac-8eb4-3469629b6dc1] +5449dc1ec823af833199fbf9c7c61c16a69c547b = "2d9a7a48330c593f14156aea59d4a9932f601989" + +[1277b4bf-5013-50f5-be3d-901d8477a67a] +0b08011ee15d5cfb166327787b964e11404fdce7 = "96902a3c175402083d01746dee12d2b819fe2c6c" +8302ca5207287789d8347825d18de3885a91877d = "1c3ea60b6d69046689a8ee9bbb800f7ef6a65617" +a0c6558ea3df80626785d321794e0b7731466c70 = "508d33954a58f5e38d0b551b084ed563d26ef20a" + +[12a3da48-b57e-5905-8e12-c27bbf7a5065] +accd76d30d27ce3f48cf5890f51e7c2a14069258 = "55f96b791f51fc65f5fb3f140bedcf7544f1b5af" + +[12aac903-9f7c-5d81-afc2-d9565ea332ae] +43a532ea895a4894e25e780b2c63bcedab4d594b = "646e63797a3f98356209b3ba487d49ffc133a281" + +[12d937ae-5f68-53be-93c9-3a6f997a20a8] +0140e0ace18d9fca62982e85017e84664f8ffd35 = "156baafe27f3219d387c085e2636a868184f79bf" +014d6a1e9d611402fb2b4151db93be2f2564d829 = "2ab42b6c45661108aa716105e6498aa799b7032a" +441439eb5e2b108a0737d0e29f34708044be1305 = "ac6f0ee7037781e7b7cb3b36cacc988306f0f7c3" +795314d17a0fd742fca296643028385e906f9f1d = "d1af5d3694cc3f7c40c9f924646d2d784abf91ae" +9e3cc825b4ba19d250fdcf938237a37a5f6098b1 = "9802edf5b6dda13b0bd7920cac05c39fe4eda509" + +[13072b0f-2c55-5437-9ae7-d433b7a33950] +1cd88f4a25b98c292145de827de74e10a26c92b8 = "b8e2660a50da045bf187fccdae6db19745b719c1" +2c57a55be1ab717a7e120b4dc9b9226331d837f8 = "0266ed43aa2ffd0e0968499e66b063f8f9af86a5" +3800b725b01fc1bb6b69e84d181cd92378004528 = "722154d41bd2f3edbe44d0ae5250fd385398e27a" +50dbaecac498d85ab59e992da8c2a5d6ac56bd87 = "9c152cacad81316007963727ab843612b9f4faa4" +57e93ea12a2399f6e11602c258df54f97a9ed037 = "918636b847945d05f0bf5e7844a9d5fe8282f687" +6cbd6b9f5c5e06bac562e83dda291a769d1c8623 = "fcd4e6aee86d35aad3a138abda5e3f2f31a36166" +9f8e3f4ec6eb58e1178cf10c7d139ad19366e4af = "21d79f187b6f8f108b892fb40801354d8f315a35" +f1f3d0f9601a04bb098cada9c5a8f2b2844206d6 = "5d7f12d7f1a53ee5fd31d5b05b7f09033703fba8" + +[1313f7d8-7da2-5740-9ea0-a2ca25f37964] +024f498690e1e15181aec953c80dd8c0d5402968 = "fd9bd4a1facb9ad74531d4378f27adb4d4e04f97" +13f1ae0982a3305d4a9c2bad3ceabc887ca5aad6 = "e076198999ae75856ba8d778f0271333c44eea90" +386f22eec163b169ffed81157dc763615658eae0 = "5b3660b8dc306fad0481f2ecef5fa2be6a154691" +4f727e106f087efac9271b1c3650a54ba58d8ae8 = "27a4bd1f2d0601c56065be683b12eef0927ae7b3" +6f01dc7bba9cb8a6f6e4d2ecfe1fb3d0b5734a43 = "b37128790a3727016e622010f56c5b55ae87f83b" +9469fc563f603ef214b184bb5ff90e2657089896 = "11d645653df764dac69f31f6f914cbdc6524ed37" +fa1f50c343c99b4d79b917fe0eaddda8def3dfb5 = "83c79e0f6b656501f7793e17adb0056fbd73de6b" + +[133c4774-c510-5f25-b650-129312f89f69] +2334381bfdcff48ecd183e29ca92ffeb587c8d69 = "c458c826e20d8929fa31ceb6651a9b206eff08cc" +864fdce2c82c4f113bdf760da9e4dd19a6484589 = "2723d69cbb5a88cbbaac897fcaa58837ea14402a" +ef13817c52284adb704d122536769242a6eebfd1 = "37574de42e496d3fa97b6914a05229b50ea9ea65" + +[1375f997-1772-542d-b6fa-a8ee39124556] +20fa71a6378317c87691ce1b8147a7221a9f969c = "53bcbeec06a185bf19866233dfe440776a355dd6" +6e2e48ca3be2f405d519c2b26eb81c10a013e848 = "14c3a5839b7230da1be6d71b14758d61d75cbf9e" +7f4b52d56213175df1f613fcb8dad49b2071984c = "d23814cf982e0c5e6a4836420b0cf1fb5cd41d30" +b2fe0717127f11f3d2183a06c68f30786ebe4bac = "7bac3f1ddb70039892719835411f71121463e74d" +c2f91cfd4e43c6a9768d15b49d3e0b2da22e02ac = "d8000c4ef858cde1ec430d40141d77bf55c20db9" + +[138f1668-1576-5ad7-91b9-7425abbf3153] +09f2467f8258048c354258aac7c3e32169fa688d = "c436b11bf8bb18e1c689827e199418c5f408b608" +18ff6d9c2819d63201b7cd74e8e4207b42155189 = "3abb19f086f683a4cb54d71d000bc096cba0fb19" +1e7dc3769b413300debf0f32c2a03a75b25bf561 = "d5e3d9e45b1e1cfab294cb30da6d25644bb0e052" +20b6d501a4784ce9c54b2edf678275a6554a9ede = "5228b691576e530aa58fc6af58b2df09d84aae45" +809a79754a2580b4d17aed699c5f8a2be4fd34e0 = "c0bf1e00bba717ad116123f3839b3053cdfb34aa" +e0de41fd24f17806d3e654bc115d425fe8281748 = "d031a63a1206c45d1c763e350391273c38ecc8e0" +edc8e17404ee85704868e15ff2847c14c445763e = "c4dc822935df6a8a5ba2e0aa3c526928bc2e0d69" +ee14e1293a8b6242eb80b68e2a2d8c69ef8a2b66 = "64eb31d90d164c4e5aa0be3163023b95d8eade6f" + +[13c4ecad-ea00-5001-86f7-0fc03bbaafeb] +16f0ea771bbce98e7a4ed3027227bd1cab9ee085 = "7d34635274830cf0f1bfc34416decb47ac484d2b" +1dce8f39470f3c41efeea3301a367c965331e82e = "8791d7285623e679627548f57c83e6b02746516a" +2d9fcc6d2260197d5bb183a5f84e84bde7b8e39e = "0d4cfa2db715577a326a1009e837c73ed6ba6df1" +36536e506cbd9501c27d901c1b949858027a9603 = "e3c44bc06381a2befbb9228e543a6601a70927cc" +792f328e8a0128021a536594f14cf9933ce83ceb = "c1eec49d3913cc775ca09a8af464860fa8dc409b" +8b3e8ab758709df1a17bff065041379a32334926 = "0cb1805d0924ac687e79c2768d2ec35ac505da54" +a0f15518bb5afdc364a593298a088a84bbea150f = "b139cbc6de1f790c6d497736b98887f3245b77c9" +cfbc54562ad26a0a71bb4207e4da677a3952039d = "8c89c9eb94862982931808ce8a19c82d201d3dcb" + +[13d02911-3e28-5d8e-aec8-340b5d61074e] +64023260980138e0bff31b1b2090373f624b6837 = "5452f71f33c2a86c38380c5dd3f59733f7c0531e" +9def6a38aa5acd1a76c52053c549b72fa58d00dd = "c6039d71a29687b15c59cba762e8f64de5f2bb08" + +[13e0c4e3-fd7a-51bf-9e22-ec7679f18909] +4a083fcf53c4efe5050ff226d3888b93ca764742 = "86d111bb94779373b271cba8fd3632223bbc84ac" + +[13e28ba4-7ad8-5781-acae-3021b1ed3924] +6bfcebbce53ba29471956b2d0c755e491d22c014 = "f616666d40b655bb150bf29c62ecf6bb150cb0fc" +81f696784541249ac1e50d45d68aa0fea01698bf = "2adcd444098c9df106010bb49976b2663ffc08f0" +cf36f5bf39acda3ba00badc9250648cceffa7c1c = "ab5d78251328ed673cae4b5d263174b2f6dec712" +fdd91b6f891b33790c9af1737907bdc928b0f693 = "4e4586858733f1c2360fe70a0b7e6583bd4d3aa5" + +[1407db8f-3b7b-5b59-abc8-36200bfa8e15] +0d6a6efc32608e05bf0fb7ba6c4a9e44d99576f8 = "c49ef96470fdc68906963e753c42fd14b79b9d65" +9be1d10eed4e0ffd3d9b8c7d5157220bf50c34cf = "2a13b96dd158936be1088d1bf0fb974fb45e8baa" +d5fbe4e4c5ca5064fb7c32fd50373c9c230a957e = "9cd6b0acb21dddb656f9c7ad06a87ec26c68f728" +dd969865b25a3c38cf1b3fc7da0c6fb64f69b864 = "77bc0850d51e5e902b77758af35241223cde9499" + +[140ffc9f-1907-541a-a177-7475e0a401e9] +25a97fb5f15399b607e58c6ad2d54f8a8c3514e1 = "1fc14939ac83fca5e5f32035a7371d51515f9c7b" +d41c3b9e8e6e90448d1b1c062400702d61148214 = "55578229c58765669d63340b77e21344d1b63fd7" + +[14223e4e-d436-5d0e-89da-0790356f936a] +3b4e4d1fa1ff9272ad35e17360d290021221cce3 = "0baacea3bc0478e651dcfa13edda700b85fe212e" +5df4822dffa5abcb563eb6a8046c1d50863ee263 = "f7b8c6ca6f9746e11ac07961818408357b2edfb8" +d37cb92b7f8b7a198521d796b61bdcce407f2434 = "af8eec9b351852084e1432e4f606a3ef31b15d7b" + +[142c1900-a1c3-58ae-a66d-b187f9ca6423] +5988d3b8fb4c70d7cfa365b7eb984603eaefed46 = "655a8603226295c74c086fde4824a835f66a1a68" +60f90cc17b6279adda9c509202a040b778895eef = "09a23e2d57ab399bc0fa8733178cf782f8f00408" +891ccc7af186ea702ac865e33e552811856e4e76 = "5c6bdd1232f736c1051726d3bd515d2e28f20335" + +[1463e38c-9381-5320-bcd4-4134955f093a] +0b6f56656b9dc12bd298b929496e4e63ee979465 = "86d7b5bf3be2b2e455dbb6893621287102770d86" +2d7cd0f00fa1b8d672874c5cd4febd7444ed303e = "66249d2c1b60aa2cd656cc39d3d5abd5f84fa8f1" +4d6549db9cca9bf54388df1d19fdd2c83453cf7e = "306b3036420889febe5a453366d61c530865dc91" +556a73a59c949314160a097e16873bd33c4324b4 = "873f30c9b25971ce1446ef712ad059544da36148" +94fad8c025ec09643176563cee8f9e55e63e08f9 = "b8fc1835460a3aca87a3baef3e3ec26fd1418e6a" +a7d0cd6324abba2b20931fe45caf608db1c37beb = "3a958c7d29bc5b6f7293097b90e27b7848d2be29" + +[149e707d-584d-56d3-88ec-740c18e106ff] +06412a8d9a7d63f9fc4a35ebae7d483be01a9eda = "0841d3fc80ea67dc79b89972445137c99d8a03b6" +62b1beb4fb246fdcba8a000f270f555297551600 = "f128dbe5584d9a638bcd5306448706dd5dfda4f6" +707a172605667c46896cfee2291568976c0042ca = "653a874f98b8084a015b20d77580c421b902049a" +8303eb8d5cd7b7e0bbe673d9758f8db613b6b7f3 = "f1764cc78cbc25d3c639e12f0da83d392203c3d7" +a851618407ab213ab6685eeeeadd14bc531c8ccd = "a5a4e5d38d43a83fe2e371ff9d7c4089d48cf08a" +c21bca24e48cb0307287e961e6802ecccb0deabd = "7f3f5323db4e221617dc6006db24abea82b603c3" +e242d96556a9a9bd714b4a603f0715c5ae78eb21 = "0ab9b890499ce5a85b9c0e2f1f377bfc88fcd250" + +[14b8a8f1-9102-5b29-a752-f990bacb7fe1] +3ec33bc02c901ed58e42ee4c367ae7ec7552ab5d = "c274068b4b2e54051bdcb06cd12a8234c7980f91" +46066fd5635538102babe0c67ee85cfb9191ccd4 = "cb7babb7348f0fe2362ab489d200129d3297a1ca" +7e38c924132f70b12eceb2dc01dabafdc3a1fea5 = "8f8f4ac51be668cdf7e9fe7e1bfcd28dad3f4ef8" +c7f9eb5974f90ac3a4903a354abc50012df9dad3 = "baf274d2365c4a32ac134c8dceb91cae7b109701" +ca8788d2d41b2ddc27d26eba4cac02f9de09bf0d = "672454258793d879e79b24504f8dd8b18842ed53" +f4e75f3a574929b30dffeaf5f088cb0fffd55246 = "5f8db110b9431d606f3367b7e58c2b845a400b13" + +[14e1027c-497b-598e-bddc-6586fb90d6c5] +014f32e50e9581f41f804d2ae752e8ad0bb97c90 = "27b3e4015dbb3107683e6ae715d199f33c2b2359" +15c1a6b227c5c737509d02eef32d8c55d925cc78 = "1ad44022a5b25b4671f9734cc83e51bf54526965" +804ab3e7102e6e3aa4f67df3de7921a43f12a0f7 = "528562b388a33e8eed95fd1892092d677ba32f78" +d90ffce32d38252ded930d7df14114fd051c7353 = "6fd67a3c87af0d059f6d8c06ea76237f907467f9" + +[14f6b274-bf6f-559e-ad68-649875ca52dd] +0a68a52b357520af7b2990ffd184078448706b28 = "ef268dc36611d85c2715fe097e5752443368a0b0" + +[14f7f29c-3bd6-536c-9a0b-7339e30b5a3e] +ad72f7a8d0f987bb5f2199f2ee0054ce1d02e3dd = "a83bccac7b269a047b1ac18ef427cfc495ffb870" + +[150eb455-5306-5404-9cee-2592286d6298] +18fde145f8734f8020f6e6699146d7aabb697826 = "126560126eb950dd385ad4a764382edb02b45019" +1bf42489fb1fe82c126f766b88375a22f01972eb = "302a6c38b513380677a1e5c96e569056728a0440" +529d9501be719490f54a503d8130e0ed10822cac = "5082dec29d88f5e15db3c6921db3f4ad3c19fbef" +62ba22e0d9e34e0c1b3e2aae5c54cd98c7fa7576 = "2abe6afd4a89736fd69cb06342792b131bf5d4df" +8d88a6aad41e020615e199086c6f62a1d03b4feb = "1cb66dbf39f1de37776db26a0337360b5a51817f" +9f3aa6b6174c378503f612a44c0854e78c8c9a83 = "be449915fbc69d995851595960f3a63213050f0b" +aa16c5b7765c854cbcd3be391b8302538542e769 = "c4bae31f08775a523f74fa2cc26e8a6c89701957" + +[15111844-de3b-5229-b4ba-526f2f385dc9] +caa1b97ee6609559a91e5e3b1406c51dcd16ae3d = "83b207e6852279e9ccba342728aac8c9c1d60313" + +[1520ce14-60c1-5f80-bbc7-55ef81b5835c] +38c53b5b0332d859bb09a08cb217ac6eca6b5e7e = "1733898cf3b3fd395bab09e9e83460383257b778" +516c02ce0d46445151dffaf097e5f5b3d7265c43 = "b6070901fb9ba39855669e2f9ffd23a11c94326a" +73ae234df75b9e3b22c290233509c5ce2ef06888 = "657d6e69fbd4233a501f5a9f34b11768a93a0b1e" +74695d4634c2286e20c75accb2739d07344fe56a = "988a9597d99936407ca41e349be519e2fef1d63d" +9226a020bbc3f82ef8fe0028ad6c0a354a24cd7d = "a69171a478b9b0ded6564e206b206f12c04b70de" + +[1537fe66-4725-5aba-80f4-3a74792cecc1] +128d6112fc11a9e6cca266905b03809f525d538d = "bb4f3422ed5e18f62ded80c63a4e5c937712d36d" +37d14aab0fa7d79ca5762e206fc00e00c5f3187a = "6616428fe99adaf31463461a894cb4aa400deeb0" + +[159f3aea-2a34-519c-b102-8c37f9878175] +0448f94848b58af10b5eb87673d17d0a436d4fc9 = "ed83b468b4f50035d6eede13dea2e542510af676" +07a1193847af08ffb234b8d00188632fca571def = "bdcee8258f4fb10ebd3a07fc38b1236f394b79a9" +0fa5949fb347fbc0fdd39344ab0c67900b81a04c = "b055281452093bc74d7c7a6d3164ad7e18478af7" +10913a18895481fd49ec661ff6c7a5730814e962 = "91dea8d8eead3741bbd5a034f8fe1eb62888852a" +18c56380dd90b48123bcf1cb579c1882fd320707 = "3a30cb1d164abeb648dbcee72504cbd57ad5fe11" +1f40f46bc2b11a342d80611c4e3f42ff2300011d = "a310b69782d8e77c1e5efa8aea6bbc28ad2f542e" +2ad009c9369afa76383709097614e42e98a94272 = "c1d0d92a041f0f8c1d7e787e74111b26b59fcacd" +39500969af774f0a7b687be5c42a3b1fb3118165 = "7a3e60c095ccb23aa7dcc568b7ad190edb539126" +3b61438bc1ed36131a0f1548eeeebc00a5b6ecc9 = "bf04c3efc761a70f786e1445151c6a76888604c7" +3c84b0eeca4640d151f43691994c3dabaaccd82d = "a3bc6dade4482ffe8f389f3c50bcb267ae9994d7" +3ca577c4e3331afeee3770ec4ab1ea951cc450e5 = "d5dc7abd919bf249ab5ad1a2a2205b343ccfdf8f" +3d38413579ce4d0ab696d54321fc09c8a5b33ec6 = "e7a8fb911cd20cb3d35e3b50efce0abcf26e2455" +4cddb4fe0a0c715318dfeb607e04079dc9ffa5ff = "83ef0c5c954be2b40862ce1ecef02008ec673c85" +4eac5aa41eab304000551ccd5ee352bc98482811 = "45909619e839ffefe22794b67ef00fe0ff41b8c4" +4ebbc3a4ad8c23dbe5b81a5e239ec17e8b0b99f6 = "c06b022fc3b2315be9f40fdef428272f7f60a721" +51cc3050d30f36e56dbb179d57df9163f5d2d5b9 = "cfa66835dfab0d594d5f527d512da41d89fc1536" +5c1c751133cf1d00426dba6ca57e9f5869f7ef11 = "0fbb24393fac66b81f5d523dff62d3cca2376d5a" +63352a59ef5121442a0bf753d37251fd8f28849d = "7bace22031086230bda98e779bca43501e491a14" +65a8c771d47501cdcb4272b559244c78b0a36e7b = "956e3da4ed7f09e73c1bcfd9c7997285a5d254c2" +678935371b0b31383ea7e301f5a5662b40a1b70c = "7ee62ec571aa7988af9e602b9527954994b1153b" +79c34782e384637b4d1a159a6a0b7fdd3805b2eb = "d484684dc7e90d8b075701563772a752d6f18238" +7bbf453044ba4736da8e106601717c30d87f0398 = "ddf8ed711b20f2e37641369b72752aa3b9f26852" +82140cce77695fd5800626cb8012815baf6d0545 = "bb9b1f8c9803334576dec49957e1cd580eb46d33" +8c289524b1ac2a7f7ca58037a452647aeb7ed6ba = "69af7ff2ec12b762ede7b59a762dee04fe330c9a" +8c7fe716d9440d562485eb6bab42f8fc20967d1f = "a971c8e40c9c7fe42c6e70feaa5ddde003604c07" +8d340a7c3331a344c5d2dc419908a21fb79b7bb4 = "9e396f8aa50cdad35160c9ae3eb5a9247e61980e" +8d679af5205b42e9479e3a1e8836aa8f3cac280f = "32ab5420f440bacbd4124c4c5e9aa2b37051929b" +96d35ffda2b224c872ce0d60420a4ac144350c35 = "7b66019cda7d14ed1e8d13a65c894a6864679cbd" +98007fca91c49f911770cb08f1aa01346ae32c24 = "e48efeb953758cdb4a84770e72ca01af03bd02a5" +9a6a8ea7984861a41e34ebd29bef2fca631dd9f4 = "fe37fdd7aadee61db8c9f2452b7093b313b4d911" +9cda5dd33e9021a0db6f88a19dc8d60e8636d47f = "2520d2d9a8cdaab7038940ac1c94b54a9bcb4d50" +ae1c4258dc40f963a3715f251681cfb712b676b2 = "47976bbed64a1a6b384fb3bb5e609ffc322bccc7" +b343cc6572feb1871c001994bee65a6942154ea7 = "a1f24c910f666e3e784ec56713742a78a0e850d9" +b81bc6315aff9e1234dcc88b615696cac6603a5b = "d9b629e30e5057058fdc727d0589a864e6cd0ac8" +b980baf5151a21e9340d339f19da7e05b4596d2d = "a15a9f5b28627450109ad841c1aeb39bf3cde1ff" +c3aa6eaffb07399ca741229e07700ae234dc5d73 = "3a5b42497f9a34c7eceb1f878213b96f8faf9498" +cd923b1b7d90c16006b2c923f0c16277ec2392e6 = "a82e3b94e8b716497726f7d20c369de4f98a8c93" +d6c14465cef4759115ebbb42253cc818a8e74eb9 = "c3cc406b3f60d43cf93f0c867cc9ca2f9000d371" +dd939cf624f9a1b74ebc25c7996008d5ec42c9ee = "d241ededd63abf614eb48e1481b418db4a36a1ae" +e288184dfa59242ed0d440b5ff7739ae8ce6621d = "49187ef8cea192c4e1d6621bbbf96ed0e568831a" +f2f8203ff77b8459cc602e2a425f5133046879cf = "ed288bb7f9e597ea8b80e66d865faebced170d5c" + +[15a4fa57-098d-5a77-b233-4f9ba1cdf842] +3d8a9041087f0d14abee9ebea860b00bf8b059ef = "072947c8fe3cf0d763aecc0d7353b068319667cf" + +[15abb135-4bdc-5618-878f-10a5e80a0700] +519f5b2fda78d14c54cc764a127720ad8618a31b = "472cc29a3d389e554db9d6a2180f1bbd762d8b51" + +[15bad361-1dfa-5a14-8210-7c6791966b1c] +e9d0dda2a5ed19e7e4a87baee58bd85425822417 = "077ec07e43102cb873a7b2c363863b3dd4c8f848" + +[15d4e49f-4837-5ea3-a885-5b28bfa376dc] +2e2191092e4bb6737e29ca953e9bf4280d245f9a = "c9c86eea8d0da4335b76ceb6868380794fc83b31" +3ef14d97b65452e65bd82db1e11640670c611625 = "8a37f2e23510997bfad797d9af615b620f148abe" +499726aa4095dea61cb6cc2ed82d15351bf3ffd1 = "03e549d9a450df25a7107dfa9a67a111c3f5f730" +5e08e34287bd223e462901661dc41e3c699329db = "bdabf9b69ae721a16e0bffdb19f54edb3d0fb399" +ddc40abd2b292eb993d0cf29b820d25ca66b9248 = "08a3e84d9d67d6c78f686a973355ebee6904d176" +f6e92c116f694803823575694417fa6ff8fd8131 = "1b294be4f94b1a1aaa4219bbdc228a8881c19bda" + +[15e1cf62-19b3-5cfa-8e77-841668bca605] +60c4bc9e383c5488249f0d199d35f7467201a688 = "0b306cc7e06f4a245cd0a540f8de98b666a960a6" +693c4979cdaf9f2e44b407f1392ddb6d6f509089 = "bb23f232df71d7071b09fea5ed3cdce5f7bb9473" +9931a344268ddffd8416ff070799d21d819ece91 = "59b5dddfdefea26a387352691035aca118ffce96" + +[15e8f15b-3645-5025-a891-6b51f5bb17d6] +24cce9e6ae78f77e16ff25a7149b9482680adc23 = "9e956c7c2f895b0c9f6cf50b221af8c8eff03a9f" +987daebf4634ee3be19857ac677decb3eda2786a = "dce55b6dd94303eded318c6abbc7e073df7d926b" +de8699f635882ad1c3c3d915b4ae9aed8f1c3788 = "46b8ebb27a794b958ffe3b9696284fc02022ff07" + +[15f3aee2-9e10-537f-b834-a6fb8bdb944d] +23246fe5a9d6a293e000d72c0221483ea8c21035 = "d280b1fb4c114b728b99119f6de5e0cf589c681a" +3e6b36cad77a8810ad10b4933b78838dd2f11053 = "97d533212bccbbe02512c7e9cb2565f78d841a0d" +44eca22eeacfd784e83b34212d835bd5d5b35718 = "9eebdbb8ee74f9126cb50ed4c28d82355b124c06" +88bff825e6413674c15ca1a215c0c6192e92b98b = "793c9a00b84070a9ffd6b80dfe825f396d6074e7" +9c740fc35adc90937e0c88718d1119201d77302a = "56f53ced639b3e3fb94f73c7ff21256d21434241" + +[15f4f7f2-30c1-5605-9d31-71845cf9641f] +06f9de8e35a50b38234e75b9d687aa555c8bf298 = "21a7f2e11f0504b681093b86b171e21041f23055" +0c60fa2909d2f2eb42aaedc1bf92b30511bc1dac = "6e08e379d300e2846e6343225ad7f23bb6a8dd7f" +0fa5371699b6dfe60ded58b066d09a3030de0b38 = "4fcdced5c5acfd39f215540f919fea7ae038f9a0" +114b0081b0a65cf78b7e969c5b8abdef3a860e93 = "9cfabf0988e65b87be5cc7d00ee4d78d165a6ca5" +1936b4f1474c40848f1bc18aa9d14c8a5d2fe43d = "ace49bb737f0d55578f43c2f1b5e6802151d8c7a" +1b2880b59b07cc4ed0d5881d04b02ad5c06798f6 = "eea0fe61b8412adb9a214234e2b1a49efe07a93e" +3542065f889473ac22d0f58dc0ab57aa3c7ff32b = "9226df61e0a0d67c2c6d6e54b85d29e281c7bedc" +6f3b6dc0f759e34f5b5756b18adc9dcb5cf64702 = "e5ae37f3c2d5c2c254510e806d39eda02620db0c" +7498fd4c2860af0dd142d24e8990a06e8cab2b9b = "5c1d17d0847980bd2560f0aa528b0f8104c0df2a" +9e6d1706550c9c7c67f90b46cff1d1d07bd55418 = "daa70925f32c116e7b1ade8b953aa13f22331920" +a25b729977f21554d89f4ac902d7a6b5752cf4fb = "45bb6705d93be619b81451bb2006b7ee5d4e4453" +ccc0fdf3cfd63f76ad91715e67b1b5353dbe4755 = "1d7be221432be349272b5e97cc363cd5fa68d719" +e3e80dfb190a8f8932fcce1cbdc6e4bcf79ea520 = "f585d7653822ebe77b7484886092f86384da74bc" +fffc944119257f468f637405a17aa08358bf15ed = "bd186c59faa7973176b2fb5ba7f30816bb599af4" + +[160ba089-64bf-5ba7-9e14-98ab1d9bcb0a] +6765fbfb77aff24b96fda1f3453f60a8bb058105 = "98750813f45cd2e8b28175c12d5ef33444be314d" +ae1da325f9e9795a72550c11085d5e817c19bc7c = "d3b384d85248ba7510f742f42ccba6e1a3ffbc73" + +[16167f82-ea26-5cba-b1de-ed6fd5e30a11] +dabc9ef06749389f9f640faf9c00b4c8a25447e1 = "b6166d32fa5deaf9c037f76b769bc413ad524703" + +[161a31e8-61e0-548c-99b5-a49067c596c0] +1d53d083da021fed77d7d0d374ce9c9070574eea = "426768f5934dfdd03e01513b72a84b1f1fb7f1d2" +70d43169719de43b45726afff0b58db72b80f463 = "16ac6c5293f7190b0338eaf85c63207e84bcc3f2" +991201d9f433aeaf443d7bdea051fc95bdefc014 = "1a60611303847c2446c1f98e4664855a2034c23f" +c4b4fc90a83924e4c4c6fec44df3e9005de3e4d2 = "7d36b91eecda1674586a7976ea541e8cca826cd3" +d100fac87bf96c5ca3b03549a3162927ee26f4fd = "fc8c44c85f4f538aa88350db6a4777e207a1d8a4" +f37eb6d31a84a82a3e78ef57158633b2b2875bab = "ee096d6340e5072b8d585fa033ae9f399a069a73" +f5634617dd8812dd3c7cf77d340036c83ce98a8d = "a34854ec6561425ceb5e335dbcd7d8b5ce6e0ca9" + +[1624bea9-42b1-5fc1-afd3-e96f729c8d6c] +1606690b573b8f76e06879febbfec52da93bbfad = "6e63bd5d5bdeb669eb42dad55ba680266e261700" +36fe174c140b7cef7a58e0cf2fc3a5f2365be3d2 = "f77da1ba5d9e2a45017a2606de9b59fe3a67dbb3" +879226387c4bf7cfa250035e17223d1e4533a125 = "314b2a6aedfc9b2c27a00ac25407f3cfdfd2bb9a" +89ae7f2c35afb4b84c37a2cb4f5d16a18f69ce8e = "46084f71d72861e688bdbb4c434311d3730ad68b" +8e3a6a79c7f1c9d9efd5720506219929c089933a = "1f5fd8c201a9025d1d54495b58d728625e2c103a" +bf041a6004d98f905a3ec34e4a6fefa6660e8fcb = "5e1ae9ff2516fcc9acf5a06190bed4692991374b" + +[163ba53b-c6d8-5494-b064-1a9d43ac40c5] +02f7ebe4e35ca4eca4709e5375bd0cec2f53cbc1 = "c147de0de11aae847092c1e93888fe90a4272901" +0e698b217fb1d7244568a52e677610fb9928528c = "baf5a39663307221095d4c7903cd8c7015174231" +d49bd6d78c1f600bca237467b375941bb5a3caf8 = "db8acf46717b13d6c48deb7a12007c7f85a70cf7" + +[165a45c3-f624-5814-8e85-3bdf39a7becd] +1dc53cba1ac79e3022ce577fdd1bf21b1198c896 = "4fe190843176eb0c60cdff98fb8071f912ef3632" +3600e06ddb2bed768a3c71e36a37afde70136d13 = "f0f901daa0f7a504bffd87c73bba711502e29307" +396480ab30c4290feeb38ef2d942fd4beb131aec = "eecaed6e33741174f3f70ecc28b0026e8ac5c8b5" +63dbb2cf6829f8a5758b2094e496856a6fc936e8 = "489c9f560267c891101881f4ee5eaaf3ebf37047" +74c0c4e3d67fcdc09dda91a543c72b07093ff8f2 = "11c9b63bb44f02497ae1e235d69fc0c63394b47e" +95ca2f9ad0851f697faeafa434d65f45c2683954 = "22752a02fc30d1ccee180132e32600498189c303" +b684a11cfcba9cb16bf72e4be315809a8209a009 = "908af1b74a1d1c722dcca50d87c259e44f9bf9a3" +d0bb3c8afe811f742bca478bd3aadcea661e39fb = "683eb8e4396d3a2135ff95b539d9787f252d1512" +dc7b06f16fbe46877c8bd5d77e4300e18549ba97 = "c9c6fc685975609169e0128708ef58c0c3771bde" + +[169818f4-1a3d-53bf-95b3-11177825b1e3] +75d52ff725cdc8f0c2638192115487aa81e67c2c = "1ccae510ace1bb219e0350b733e44575ac9125e7" +e5ca9c745d394dda426971e0b0d5c1fd11126cca = "24643499058e0edb82fde50515a38354ab9f0e27" + +[16d363e1-28f1-5f2b-b949-57f6f2d5f8ba] +0bce6021a281e1fd98f3e2c0155d804a1836d19a = "7baa33328452ea5a78dc640b1e210e4b6860df48" +3a98bdfe862bbd11263d6bbd897dc6c21e03ef15 = "0a5a5f40553b0342541df1cdfac7061ea39a7ac0" +71bb0331eef4a21b1f39822047d52288f383935d = "7ca6f076bc5528e790eb34791b0f948572b6aedb" +868929ef25bdfa4f29cea7e9255c8946cb081700 = "ff9d1dcde46eab80c4dba0bce33671b1ce2be047" +e268c57bc4103b25585df2715b3008a3ce3cbbc4 = "93af3a62160a98b56940069cb395889e378b7803" +e5da541b5fac5ba50eeb36aea5a1122394b576da = "ea8102c5147761a09f12cfae2003b17596adf9cc" + +[16f501b2-0501-55e6-a1df-7f221b4b01c3] +4846e6a65f1f3af626a373c6d160ebc44ee663a0 = "ece434f4231493ea13ab127d96ede92dd0430dde" +788925256096d500873dddbbb599a1ebca577b2c = "5b0b56f43aa7d3fe81afba568eed01dead6a1f55" +8f301c0cc61cb6540b166a776f6cb900711176d0 = "51142b503c28ac90521a23859ca2729088a07535" +df1837e56a5f5f4efe5d78e7b638db5d7456005c = "265a21b818de312eac5b35fa2f68593752616a4a" +f1d269ac0e827667ade789160e6823840f0b1ed8 = "00e2c9074ffd18290177f72d6f2e0953f7b7e9fd" + +[16f6c422-f222-508b-b0da-15025777bca7] +0b0f9b3846d742e466baa45375ee2e8a0a64798f = "d19584b3cc950e7103581978cd4dc5a2439bc477" +2192f19e8d8f50747f2b178ebc23bb3105445a98 = "e010582d1ab51dc7e01231ef7d03b401c6902618" +43c5b34b48f9b1eea6b4624a465f0102b6a2e08e = "191592f4f19fa6d288bde4dc225776d92810bd47" +5254f02e25233eb79c7892fc27f0afcdb6827466 = "673066c793db4dcdff64c00b4881ea4ca4cf23b6" +613fb08a90804f6bf1d32913e476a6355895b081 = "673066c793db4dcdff64c00b4881ea4ca4cf23b6" +ac812e565f74f9f18ca63683e97308bbbcc95fe6 = "77f8542780104e68605b8403472d14ada65be867" +c5ea5c28d5a80f559cb81f32c88f00b0a4aeea66 = "c9ac578952e2104c90d54a6772da9ff43d4deb36" +e9df0969ccf26bab72f9df9bbaf214c638b3c099 = "44fdeb27ee8ac6fb8e8108f3ea301e871dd8ab24" + +[1724a1d5-ab78-548d-94b3-135c294f96cf] +f8b513c8cd0fc9c8b0943b62ab53c6fc0dd2fcd0 = "c096a208cd42b15f0bda66d6594405207443c777" + +[17511681-8477-586a-8d98-4cfd5a1f2ec3] +0d0f1e1e7b7a98082b39d843c33a4175e0d0a66e = "cf6130d83b0b1c5edda6aba9b1137edea5a57744" +0d44bce524329767159e637d4812e1f56301c44f = "cbc0e2d9dd234371857f858bc563c6c10b2c99c6" +105e36b052cbcc7386a560c386407d419ab2f70c = "0d1340ef7ec32aceef8c90006b8177b9a46eaf62" +23af69b5bcc3c0f8e3bb93cc77d47c8128cf5f2e = "f647073468b6736467e7d0b5dc39019a40df3dc4" +270a2df868b36cc4200ede206489eb29406e5165 = "a6375e40183ebb350474dce0ef9fa86203f34685" +40fec85c761f21d5372f9745cba18e5e09a6979a = "6215923b5b8dd5605d1b15a4aa1d72df1190b66f" +a9594998b524bf44dd9f0ebbb33c39c4588464d0 = "a4c01f64ad410c6aad3de73fcfced85691356f2b" +e364e98cf9b1ad09fcf72ec601c8fb95c3c6e561 = "d009dc955713f21453fcff4720006c484f1da659" + +[178780b6-09b2-5a6d-bf61-2be9dd85b544] +c36bb3d9598124f43f688963fd3ff41d5cb94cf7 = "402de3408daafaa4159ace063f64e681c0a1a00b" +dc90fb7d904a5982cda9cd3fd5286196e70b9341 = "62e478150d7d26fea11aaa005296bf5d0dab89b4" +e22c9ec5dbacc79ca9a81d47bbd59ceb72bb4918 = "cef85849bf1ecc6c4a1880f4a9a60e41bdb2b40c" + +[17a20078-44f0-5f21-b410-214499191408] +0c16156b77d1edde0c438e6804d220573701817d = "325756240df56b60d0bff80cdc6bbc3c61e219a6" + +[17b45ede-fd0d-54ef-b825-8cf9fc64da95] +0357eaa7f21a575ebb39b82a4a7647fb56946eb0 = "3377f477941d7d2d29bcf75133fb2fe045eb8327" +143344eb8736524ab0567adce1bc3e66027ac8d8 = "43f4ca2040ca22917ef7e34d97037584ecbcc078" +1d1c39eb1f8812442521a08a3cd98dccd5845a1b = "ffb231ca01aa7caa11fc6894fbcecd35a7d0db59" +4b33cab9d46e9a4621bf4611ba7074e961e78759 = "4e2b86c3fa721a68e7b8d3b911484373c9d63c8b" +55b54e45934414d22d15f61a91257d18582d7eb4 = "13839af14fd1fc6c613b0e69a4f0bb4138a52258" +6a4977b11675377c8609ea9e140e6a9dfa561be5 = "3c2bd2fbe6d1b43f888eacb5c2ce2611b9f537af" +7d3936a30b3977678b13bd56cbf1a2e85a976a40 = "161c93df66ba6de5b337edcd0d10d6698f5523e2" +87c61f5d2a57717ac7a4a24070571f992c5b4d4c = "08a05f2d99bdf20edaeb17a6796c26d0ad3e0954" +9e73993abf67b527d095c1ad6df372fee5133969 = "e9ad2c0908da9b13ee4d6951853e0494ecf50654" +a706173b81dfe4dbc255ec54910c114d41eba5fe = "b6dbcf2898cf776742086ca5c3006eb771012e97" +b249c05eba7676a385e99a59a8c2a229a14b5fe5 = "f4f4505905e1043b6358270ae1efa1550623f685" +b57bcbc575f40b4b30b32dc43a208e67e68eddc4 = "a87f789cd6310060ab8e4a269d2a09dc24c7fc45" +c5525ce9a1af7afa99a4557eeb3ab3ee14f22273 = "6ec6fe2916846765ced4f300bdc4855f30eefabe" +c62311b9aaf255aa5e8a8d4750124e950e0c4f8f = "d6e14c3017bcdcd00e17e876f594a1810c326742" +dd76f11e759c05638b900ab12eeb66c997dc78b1 = "199faf09e7599e49d23cdf708dd40eab54499945" +f617f9c699fe6527f4b605b0c49241fe709155bc = "0c8bf63d4fdd6b05d087b2c3d2a879a876351d45" +ff21ff3e4fa35487e82cce6d721f82199fc5f86d = "76e8135442a64d38bc3bcecb35365dbc169f6747" + +[17bba4b7-aaeb-52bc-bdfe-ff0c2fe83683] +0448fb7490a79b13455f246b4649f182d76f2acc = "1e3d58ab80196e2648599208eda4535178b311d4" +42a88daf86ad0251a7ee7fd15e0092c207f7b73f = "f0420025872c7e0fc80efe658c1136af73c9fa63" + +[17c455ec-5277-5eb9-8881-1d8f05fa5d2b] +55e98cd2445136e0993f5227e3af11727383b2f9 = "2f24fef65426a3cfe6610440088d62a840a8cba4" +f7885d4b2f7aef8d9d0ddb2d88c9efa604297422 = "3f9dde4ad88595a57cebe47b6a219fc6de6748b3" + +[183c5c77-57e6-5aef-838d-23cea72795fe] +22a1535442ab5e46864ed6a15d60765f6855a07b = "d3e32fdbe4024b16f147b63039bbecab1952f3d7" + +[186bb1d3-e1f7-5a2c-a377-96d770f13627] +974b9a7f6b1026a18cfdf391c24f2838bd5f8a84 = "5a2c783fec6022ac3a3378ed10160ef17f3ee91d" +b36b91c46f25e77d93fe5b94298e16e3de50ec48 = "70df972c7481f052bcea9193f58e4cc11467f935" +b7128c8cd3c64d8dc982b1b7b463bcd7ab8f809d = "f4605a147171ab6719a60503318debf25862c688" +ea508d796696032fdc0923abcb9cda0e22fe0d8d = "6b8616b7c5d5753440b55aa4b043ecac3d24b85e" + +[186d2b2d-8ad5-54a6-bcea-66047609c611] +1caf42ad0c29a0937f9f4c9996a9b50e07cab507 = "73115f56643deca14ea3f101fa0c72a4f3779864" +308855bfe2005c718d4a95b43e35fc27edbc4bae = "b5bfd3562c370d966e98fc4a90e115ff31d9fc13" +78a511e77457e46ea199bb9d28a4180b95d4a158 = "061e38094d7a94f18e677bd9205a3b12351b80eb" + +[186dfeec-b415-5c13-8e76-5fbf19f56f9b] +84e753925a06cbe9f752aa0e23af205a9c0e3a2d = "f0e1daa8a1bce5a4df66416501b5d3cbff64fe67" +d7ada1724814bcae0d564f9e1d0d2f4c0dd37181 = "3aaa51f0e62e7ca6eda2fe95b44ac636cf7ac1be" + +[189a3867-3050-52da-a836-e630ba90ab69] +1b73488232ca459c0008be54765fabc5add07092 = "caba582b2e9ef39b9cfff911aa13c5ca1b9a9896" +7c6c08409044ea53bef06393e97c038369212841 = "7e242a6a1f88ec84aa9bfb1c2ff3abcb04c41f43" +bc6a5f90067bf7aeaf482cfeb37029461271d5eb = "7ef7453f307c23ad36e8ba46db905a844c4ee6a2" +befb707d264cf62f44da58bbd65095c4671f7702 = "926535412d85383475bccdb1ac8ccfdc34bd182a" + +[18d3ab0b-97fc-5e2b-aa05-5bdf3eee57bb] +1147bb61ec4cee1777ce4ba5100f2155ccd20c65 = "d2e415da16c69e9cc309a478909a28369ae6fa3e" +401b43b91313364e6c248254068f8e6e8e9f8305 = "893f5fc4bd5f294eb21f43826a5bd643d1bd7f8c" +6cc4f07920b9b8256b55b551e77a11fcd84333c6 = "10aff834812f275aa42b1030beb1333439242b2a" +ff01601b579b5561a3062689ad0b94d68aa29e2a = "2382cd0abc4c8e95e11eed4b9dcdb29ca0b52e9b" + +[18d88a8f-8a75-5d15-b264-b01de3add918] +68bf8d01988ceacb83c8109d072c1a165d31f897 = "21597511820e634bb53de17c2b698b4d3360d32c" + +[1902f260-5fb4-5aff-8c31-6271790ab950] +038c46a4c016745a54123e34189aab642bf9356c = "6f08d063d09968adbf8c86a7196842d44e4eef47" +2a2cba3062fa6390de59d1b196579d27bfe8fad9 = "5a1a3edd415f4b6a83fd7219378bea57c0c4b70a" +48d49243ba196681e2bb956371c74f004adc4569 = "4a2cf2f7391ed89cdb32c2f5a95525ad769d9203" +8ea130e8403f2bed37101da2834442c4a4846a3d = "1ec23352bf5eb679d85d318d35229bff04058958" +8f77f85929726a53ec978d0a97740e39d789802c = "c5fe3e0e2739a6a442fb665d80ef78e855717142" +ab1ae23baef74f4feab6f455f90b1d36204674fb = "68096889da642ca7f3d990c030240059bdba8518" +c9556d487f8bb8f6051ede86495bd694b8276b49 = "34bf8ca3d6aeb3819ea5f360715379e60265ccb8" +dd76cb25557a618e974dedba8ec50dc63b7c2281 = "0565f96f86743ec51ecd9a273905c33cc5f827a3" + +[1914dd2f-81c6-5fcd-8719-6d5c9610ff09] +101a82d1cb44c0c534dc3009a17e40aace59c967 = "a9929c0284775cff7b843311dbcc645eaf2f039f" +19d36059b79ff27f79135cc89213842d4bdaa8bd = "c14aba2d32a0d8f31efe2b6a128c895a68bb063d" +23ca18070eee5d831abe04318ad666c2b3c651af = "5cc279746b66b77b8472f57962465dfd98136b76" +2acea4ff989e275aa6d4cc40a43d2bba7c006623 = "c07437a25c7948c8340133d50bbcb534f419d5e6" +486081c07bead7eea1ed7f8e5814323a47ac30b5 = "fc997d89e8bb1757dfb8a0f0cb44e784a4bbf71b" +536e02222a487119e6d20008d9250208f9a65b9c = "300e15ea1ab57844d22da716fb856180efd53d55" +732cf05dd34fffacd44c6f5d41fb43d84199381d = "6b89303a6f9dbdfbcaec5eb2d985582903a61474" +7e5dbcea0bdee43d0f4ebc2d0608557279c910da = "ebc497e134afa38dd7eb9479e94f0502110b30ba" +8ded92884b20d6c356868b5de5c379e63d1b9902 = "eaa53d49ad67219d208b51f8fff6b7a3aed995f4" +9d2a3e685994e74aebddc0ef608e8cee5af47c97 = "9fb08d683f7e1d38de00c7c808e6a8bc0b26a727" +e8b6d9219a13113a364e9e212fa0dc89cc6d6fd9 = "c45c81c8a973b2649fb04d0e5b30fd519d7aa33f" +ffce8f322b4779ae6c7bb79cca08fcc14c354284 = "d2eb997c4b1001cfab3c4f8f1ec4cc7855cde85b" + +[191d1da1-0f37-5779-b8ea-a655caa0c150] +9452835307deb191a8423cc2f4389e1e45179036 = "9f9684e4b192b562b1958d0f5136146d1cee1161" +996d3c22c08c49b55b475a26192e35c1e7b94759 = "ba0ea4cb28554d22cc05b88af0ce4906d757376e" +b32df31a1e141c7225522d4f2ebad6786cce5e92 = "21bd7a6b1d1382239a40659edd3e821fb3c4ec8d" + +[192bee09-7f27-5365-8a12-1b6f807ba546] +0a203245ac9521512e8cca7459b2a7f9f083792e = "298c38195baadc5619417117b8fd40d54ec6bfac" +26190bb49f68eb33735aac22807d06e060244231 = "48a57eb793ec8b0864092aca4486a07a8c64dbe6" +6ad5981410eb663c5fc1e45c85f65a53d7d4e469 = "8e3ee874ed87ee4b785bf0c1d32f6b901cb21bdf" + +[194296ae-ab2e-5f79-8cd4-7183a0a5a0d1] +2c32639cecd86496ea7f8eb0588de39267c2a7f5 = "423092420415edd4a85dd90c63489463e518c84a" +32e318fb6bdd42024fe45832209fe7d6dfe34b0c = "4bbd1aa7410d703ef06e5a726f37cb2b57011b9b" +6d2a1744ecc1a07c3ee815c58697613914af5325 = "dc6aec0c3aa4a27b4a2f5aac66a7031853d526b4" +982ead0b094e9873d56376cdab91dceb1ab541c9 = "87589502497b813ed0a578fd2ea14fc5511b36c3" +cd93fc5f05b58bf4326679fd7b5bbc99d1b0b5a6 = "a4fa005a7c7a6748dff34b186f8128564276bb5a" + +[1950589f-4d68-56f0-9b94-9d8646217309] +25b93e581bde4ab9428385ce68ff0c5a8c79c73a = "34841f62c6dae331cb3153e0715e02e1441504a8" +c8e92435ddc65fde715c6344dec2ec4c8b46495b = "e4a458d4db3884e064f0f4200733a8a00d1f29e9" + +[1986cc42-f94f-5a68-af5c-568840ba703d] +00fe4995b54b63a7d5b5e0ec7cb83b041156250c = "223aaafe0ca006dc4d311ba34427925dea63fea6" +2429f48fde4b9d4b3bfa61c0da955268feb8a99c = "30303cac99f5bf6fdb142bf5b381f7ff2d8087f4" +2460f06270e0ea0375778ffca4a8e1d6d0f73312 = "e42f4e76d4f54a3dec524d5f785b7451a3d7b26a" +264bfae39d42247458a78da888a0139a5765ef87 = "4bad57892f9be964d0f8035a7426dae71e35a668" +2a4b520aeed1c25277451c6f0d81f7675812a1d5 = "c2fb5f5d56aa1347b4905c638825b6d93d5f5f00" +35f51c2905bc91e8999319819268062c22c117c2 = "fec907736484c5713e13aeba04944b87e8fe2b4f" +3ff0f54dd4137ca444a42fa553446470187993f3 = "62c928a14fcf2f66a94bed3f866a31d1e1433af8" +630e45c528acd4a4c08407b3b6066f87c02fa70b = "946e14aa83d9af8e38ebd1d33d870975324323fb" +65bc3869ae0909f6cad0ea163bf9c5ffd4215607 = "4bc54484a49a019b2468e8ea953e89be91c6f1fa" +7cb4eefeb9e0c1b4761e432004ccf216cd2dbbec = "9b889290cc026d087c5cd7c2309d80362f0e85b4" +845a05785e893cee3866ebe6638247665bd4f432 = "ea62857f82a0ccc7137e1ae5f95af806b5c76f1c" +85c7dd47203cecc6e9a4cecaa6098bc2a29dc8e2 = "6e4e1356865906bef17876397af4a6e2e5df59f1" +86f193c0432898a5d6295678118d86cb568871ac = "db67de0fbd1c9c0fda11ae7f61dcf9ad4ef9a70a" +8b8807b2e15e7d2f0cc950ff8ee100b652a8d7f0 = "66318a9966f1f7c2254f14c1f1d378a83eeae6d0" +9bd63b4bd42855b8b44609e466daeee8f47762a6 = "df08a9e766f47ec86f776c251b74a2bc094f217d" +a429e565c76579d0dae29a97bf782c587ab8ade1 = "08ba95ea8a486b950d92097d59f5189171f834ed" +a742ba2c34c48a3f7d21607ffdd02c5dc87a2932 = "e98d376a935fe714e4c9df9961ea785478ad8fd6" +b1e491a39cf8b5feefed544223d7f2478704c5bd = "7ff48f79980885c8bb7dc87d095ed36eaff09d8e" +c54ddaf4aa22d7e06085b5c6496ef11cc8a6865a = "67649c42ad7aa2bef0ce6aab61c707e507cee609" +d491c10be6e7d2a6e9fb5c9f93b345fc35a80298 = "12956f49b30c08bca43b26e5d2a8cc07659c19ae" +dd7b31c70ff7d5f1544fadd4262044e0fd5972b8 = "fe1c49220d4b224183b624b678339ef00ffe0b3b" +e7188bdefda8d1abfc35efcca11480cab2bf6eb5 = "74d4fc868f46adc34836d4bd35cae4b5ad370e91" +ead2d961cc1ff3d4c48cd50f9fbb306ad4ffb830 = "3ed4956e2cd98934aa181c2b89fbc8cd98096aca" +ef27338a18c6b394344eecf9b3172f34d9fa1ec8 = "9ddcc2742d325c32a2c3ef4dbaa594480a5c2292" +f544bc68fad1679ec169afadc13f73fcee5f59db = "4f1c52eabaf905f7bcc096910fd8b25ea6a4885b" + +[19bc9d3f-2e19-511f-8328-e05a4e11f4db] +1dab1308dbddc4aeb6ab75f546407cc4368c4896 = "3134ced84f652374b907c23fe5430663125a2de0" +4ea0a77bc708b0f3df009437bdf21a3ded7c3d4f = "3a71d164b0c47b296eee345d0853d5c12e62f802" +5da46de9e51af2d0de1a4fc57ef57f76f3a37e39 = "4735dac224058e2f91d02d2230a98aa7e6ce56a6" +5dc60866adce5730841970f87e61d5abb1fe7885 = "21575f27e0c432ab84e51f85c6ffbc7d8fb6bdaf" +5e32edc83e0a0235815b5da32351b2866d2b8c97 = "0b1a93d3d797698e3d7fdf20b61fb07eaa400bfc" +77c1be8145968c8cb95e6e8e42376c9d7ae04298 = "4b0335db04efaf7e9a3fbd4af313ab8c0f3b41e7" +89709e945780ad2d55484e3b6efef1000379316c = "37e355fc525522956643290ed785f90721f9b8e3" +a267e9e44f7d38559f144b36fe2a231d8540d68e = "3fd53a022739f04272c05b1e8b6fa9dee88f502e" +a7dd31b42828e28bad5bba60f490bcbb416c200d = "ef376f8be01c2b22a45cc09b7a7450408fb31ae0" +ac8569897a07bff83ba21fe817b47dd50ea02f72 = "d05566b8a680be7a6178f240a8af49bce6fb7328" +b8c47958b57be5439ed474f1857a900ede455f19 = "8f8ebae3adad6fb83ba584f8463422977ed7434e" +f9734490a2cdac5607b2d931e8572abb82d73fb3 = "acfb7c218a59794c5ef7c79b7dabac5eb3ede385" + +[19dc6840-f33b-545b-b366-655c7e3ffd49] +7a1164af5f599f6490b7cf3e0d8984a9a7ee6432 = "8517fa5a58e1ca61448eaae8ea69da84e14ef7cc" +d5bef9c5bd6055985b1efcb2f1cbfa4d41baa777 = "6d8ee5131ee05ee83ce676d5daebfc06d171e5a7" + +[19e549d1-356f-5655-9f3d-c1d6136da705] +2dd756f4d85eefa335c20d4aad90496584d3b714 = "3903e3ab812d05f8bebe53400a8480f4316deebc" +40d0754ddda531b0255896f304cc58bd1610443e = "bf012062a64d179d8876f14b6e5c1a7d7f0e64c4" +57dabe976d5391bc47e296686db3b34cdd829e10 = "2681b03eacb90544c882e317c97389391663a207" +7263f355361c86dbf2fc64ee688ed3b11def9080 = "23db467fedc1aa35ff1124f610c19ce582fae34a" +9ba3f2e12b44a35382e81ebd022c216c545855a1 = "fbea81e0b485c5687a077beb87caeb1e71f69f69" +bac1b72610441e4dbc0d867ffffc7adf5cdda15c = "edd61360ded7b48c8ee00a5c0751fb04a2eba1d8" +c44834bb8cf598d246f1b4ccdea92e28cf9fb7b0 = "93ea1f00e9c702a8fca959d66542803d7c6952c3" +e555c7010106a827f5c6eb8a25895b90c3ff7cc7 = "f335700f1811d9b37dba468ccf4bd80473ecdc2a" + +[19eb6ba3-879d-56ad-ad62-d5c202156566] +65a2800675458f38470dc2a83c8fcd1ea3c53178 = "939b0f4fac57228dd098957dc6c53a56255ce900" +b7b42457b76f8d9074bd8300bc2a5d02a41982b8 = "87de974172879636f7afbb7874df3526712d2252" +cbda53efe9c44669101713582a7d3c26d554b4c1 = "a145c289fd0295a91ee9eadb774f46a159793285" +d12c665497656d029f4c1048e9c3d88ecfa2ff3f = "a6dfac03bf291c9a990034d942ecf061a0497455" + +[19ecbf4d-ef7c-5e4b-b54a-0a0ff23c5aed] +2de709784ed10c4ffab20ce2495b382e163f2c00 = "d33c8068da1f04794ef12258106614dfbafb8aea" +3413ecbd244dd34a04b67a95035762088588c137 = "6c89d85bc9fbd5baf5fbc12ff5efcd3717b7a42b" +40f53cf63d3686f57222af9b6d4bd7e598cd42b2 = "ac99dff8b1bcb752324e650cd3dbc5ab191d326f" +6d7659f47fbeba8345225afcf4c3e4ff3e6155f4 = "65b0ae46f1d37ae67c12e6c56739cbe2a115a0e8" +a8b6a8469e1d969966404ae8d771fbf573c39716 = "0338efa751659ce3d6235ff56676346413ec33d5" +dbc3b9327fd6e4c84a88a1d0c2c6fc43a6d66793 = "d91b67a4a24d54c500bb48be81bba08b238f2aee" +e490f4042a53354b88c5ad88190173f1eab3101e = "79dae7825aabaf5162598a475d9b14c70511a7c0" +e6dd7966fd1bc4a9bbffbd725f37da3a9a131a79 = "511ccd52570f94e45022ef9698146722d4f1f94d" +fd8881663fa2c12da4cf96b04bc487f402d32bf9 = "9368eb2df34a97ef622cdd843ffe59ef0cff8cbd" + +[1a029416-38b0-5245-b7ed-67249edcb994] +9e404ba190f4cbc22165d2bc3ef7d37114119529 = "e699a9d5a4029b6624249d18aff98ee990624c19" + +[1a0d837d-f7ba-5e72-a8f8-b8273492ab4e] +37ce8cf28b4bbcdfa3479e1f7170ced74012bd6a = "54d651438c3d74cb3993a1514a35877a19433935" +63ef260d6ce8f369b0b7ec6202e4776721481477 = "eae7af5bf6a265aa58fb96292e4004156e2be33e" + +[1a1bcaad-b889-5540-93fc-02c6735e0f5a] +073c2e1d3a732743fca1bee4def1fd211ee3387b = "70ff9df124c48c537df1445f177ec6b59befd155" +6a3e6ada0f0ca531fb04f26ee1e5e0d290040edb = "d2f9e092df785e22921e2f60f8e11d05f35a9eba" + +[1a297f60-69ca-5386-bcde-b61e274b549b] +b138617bd1fd9394132f3aa75015f9afb6fbc8cc = "9efbfffd0f94a5db97e4e7484dff1496da8eea30" + +[1a62e0fc-b85c-5ca0-b1e8-6e77e6a3b884] +d1e7832c0b39ce884fa6edb60bf7eaefbcde6c46 = "e88f5c20174f5a8785b2026b058a6167475a2b4b" +d2a2d9a77d2158b25a0c865289d64bf0c41fd013 = "9b6b74ccb6d491f9afa7e539a980b61ebaf1713b" + +[1a7fcfa4-7553-5727-a5d0-072824df3c21] +618c9a38e0c3b850de7b015d34194c47d0bc1d01 = "9bac297b8f1565a6b5ebfb411cfb7a09986f68d4" + +[1a8c2f83-1ff3-5112-b086-8aa67b057ba1] +02d635573a73a6bb72e3d5ecf1b1232a7e114561 = "43670de48552d6c9e71954d087cfb3bd98bc86ba" +1b8a14e02248fb5b5ed70406c4baef95b47dcefd = "f940adf7b8a4beda206dbeb774a95644fb4fe112" +21847baef7c40b0f0e5ab0fe8416aafde8e3b57c = "ff350a603a28f6656319b437e0ef07f3fee7b86f" +2ac8df81b94ff7cd6bcab0122ffd661ad5abbdbc = "e07b58b2add45200604e74291454763af96007f8" +5361ef26bf94d4005067de8327671a9d20d36287 = "f54f0beb42df1c842faf2f9794e4a17257920e72" +5d21aa6a8260a2222147ba2747628cdfafd70176 = "4d4f726a34c11c3cb1e09786c176e8943628753a" +63c7bc625bfb912bf912b5eff60f2782d043ea7c = "dc374a4493d57e385d3ad89016fff8ce18fdf3dc" +676816984f2dfe5a2effb1c409ea38ef68afeb9c = "1b64bdc43d6678fcf6f16f5853bc8af5c774cd8b" +68cc983dea9f9f39b56eaa2c27405d819293a64a = "3db92ccf00711af1cb5712c2abea0d3f1590494e" +7afd9c468de0833f1fe8ad67ec55ce9f75c4840b = "1971c6826d4207cdbfb2647fcec224701d8c7aa1" +85b5360ac3f017f4d21de4a2bffda9e4394cedc7 = "b826c4e237c353b05152b31e5cd610b54c144edf" +a0870e72947ea45b782185d188555023a0e332cd = "42b45aa1fdbe947b75104812501a27e8e275159e" +a86e728b83c2f5af6805c4f511b8619b0676e48e = "4d936422022c96a7be4b361095a135b2a7182c60" +b4d5c4e601d14365a0a95c81cb93c6f4339dd84d = "c3db0207a20e8106ed76aef3b252cb1068da7cca" +ca1b176326840c9e4c622fb3e068294fbdf88e27 = "4993c61e8276ddb7764dd9e07dc73409a5bb4ee6" +cfb09cd5c2916ca741999419f2de25d65d154731 = "d3bd03bf57409dcddb5c3d9206f2315c608c5821" +da18342e5047927bdadba3fb5df3ece9769371f9 = "c0f97759f12575dbc81d6becd5d8cab8cc46e71f" +dfce164d30b81b1735a0fca9eed962c486445b42 = "a1a79048456e7a5502bd882931cf782ddc42c14d" +e3ed8324f34eeee887621b7a563fa12c0679750d = "b1aec4e1eb4e47ee7b602de3c0e12fa260e8845c" +f31f05d79064cc0bbaf2d3a54a08041209db5760 = "4eaa5c52c03481770a3d2655682d99f00659c913" + +[1a8c6405-7c80-5152-b09a-939ccf02cadd] +329566393dde471897922eeb358674586fdc81cd = "ee29a9c0a608d657385502fdaafeaa9eb1f6e229" +39e48ac509132c11e310474364c5e5132680fffd = "a4a21e945ce836f4fea7eb0a7702f28519f82d74" +4280cb483530c95ad07d5f13e22f92cdc37bdad2 = "b8c71354de2e9f47a2b150e4b8458bc930923b8b" +48046a816a0f915ce6e25dac66682db2c875d5f4 = "dff31bf12a687d8aa14a5bd69c1e8a1020cb2837" +4afbfc1cbea42349e090daddc1a02463607e0f79 = "1f70212df8b8ccd705ec084db9135d02f8e069eb" +64ee416dbf929ff3f5e6cf2fe963eb1ddd5bf613 = "9240fa0861d900d4be4338ea19fcea87d95cec30" +66793f08bc17e1bf6436ca130ff8f107f5a247a2 = "8a9b61a7e83b85356ed7c801a7b7cabbbc130c28" +8ea6f4cd140f1f24b1473bc31a463c903c7f22bd = "754b49b3396902c6428c672c001ab4dd1699b842" +a51b3788bad1b9b7d97233e67aa79cc08b186e12 = "3d95e6b5bc45ef91b909a3441f9b3eb6e90c360c" +af6251c5d6bb353e73b4ff8c9e2204e11a75bb45 = "d8b22848519a2f2fdcd46102e14e047ae98ce4fb" +bbe8b28d70432c3c2dd9663029c66459f3aadb81 = "67c5499a787fbef42706c600d9f1a717c18f1419" +ccb5bea54e1bf5c34290835323ebafafe4a51710 = "c4aae6b06922f4f5f7864f6cb4f4314073289d08" +d1bfefe8c20881685425dca9796bc8859aa78973 = "8bdb4e6da878c39d649250aeffad5889337dfb60" +d3b9bd759ced7134af409ca0fb621a73acfb6cb1 = "84dd5c6f8d604d5eaf337bc03bccc9d266995217" + +[1ab33d94-6c6c-50cc-93f0-e3f623a46aa0] +5a7e836f4f1489cc8016aca49f4ff2d0f3bfd0e5 = "0fb2560ea5a92e33ccb5ae00a1fad00702bbb3b8" +700bccdd9b0bc0b58006b1477a1c307e38f1c27c = "d82432524cf4918f4d0c69c49f35607dd8c0ef75" +a0ba28212a54d93378bf95c580a344cc84b4a169 = "8d9013b9a61036019ed0156ae5dd333d89de2afc" + +[1ad140ea-4347-5a62-a6a1-01b178d7cc4e] +3cf30c1d0cd6be8db5f556bdf65a043130b4dfd8 = "418d4d6a72577bee7356a1d35ebf74b97e231c33" +bf0d4e4a7b82f6c66a0df022bde0d450402521d6 = "84539deeed148bf65eb561b355af14d4e21c5aff" + +[1b1ac587-b5be-5dfb-974d-c9dc89f4aca5] +1501160b3eec69fe07ecff31ed65e2a1624e6ce1 = "b41b14a913a55f15893d765c9fcd0041daec2ff1" +2234bbe8fbd37892084fd46be3e91644d15c13fc = "c2f814df13075c590218525e3290ec3c5ee71357" +4a2688fb9f0392b91fdeb91b9c0c9747d77d0cbb = "91ab6fd9fc6c10500091582b71908d9189099cd7" +531f751beb9c2a6850a007d876e171108b1b7ba0 = "26acec1d1a7f27f0385fc38b637bc04101d4b47c" +66905381730e47e890df764176897acf6ece40f6 = "6af94f8f5de6970d065e4e064ad9683a192e6115" + +[1b2943d0-825d-5907-9c5f-04e3ce562884] +c190a5cc1aebb6102ae7914d43ddaae6875a300f = "3734b5a1621856b05a851e4a854f8a15fb13dd70" +cdf44058cdba9eca3e923f04d1ea97d819882f29 = "c16a8e2de9db9c082505e807a76506ae3924b80f" + +[1b4a561d-cfcb-5daf-8433-43fcf8b4bea3] +111de114d99d052928ab980955717cccabe58a2e = "e60eff1b914248e86bc79d7908d68c11883d7718" +2725e479ecbbff5cfd482613909a0604ba1ea419 = "53bef85f65ac941b34823fe25b5112fde9b1663b" +652bab9c02942ad44598f5f4b361ce120c0632f9 = "c06e053a42518b5509c8db7d014a0fa3410b2f0d" +7cfcda4138f7e040338d15dbfb2c17397f48043c = "01963c384de9b179f7508d79e6dc3f557fd0b0b2" +96c851f2051f21991dcad9cc0b91820033914f93 = "43e496df09fec01216d607228094182e99fea877" +bd00f162cdef4fbe2a4376de50366db42d58d748 = "2469b80c6cebb5c78bfc754b5e3cb1457cc7996a" + +[1b53aba6-35b6-5f92-a507-53c67d53f819] +484f045156cea4ef4f1571297f10cec525e4e3d4 = "bc01d0a4f705731056f4ef6400d95be94cf783ae" +f9112991f933ecac6263277961be54977291ffc3 = "d00d8597be7424c4a9c0666b3a6f72a6026c2053" + +[1b8b39c6-5c46-50f5-9c36-ac18d7f28ae0] +6e72e1efaa6ac8f113d9c269fa2523a90720565f = "1612bb2d687de18134f6e028c00ec7976aa7add4" +7ba66554ac9049f2c38701ce4eaf31c22a25474e = "31645aea0fe2c6ad35fcbb3365497bccf978222c" +d3017c1d4bdd1fe194fde73d4e3534191d67a093 = "6f3469a108ef38d67c8762713f3ecb7a5b0c4b7e" +d7729f0433cc9b21519765c90bce9fe27e87092f = "1ffe0c7afbbdfba593694319196ee46568d55f11" +f7276bf633be494931aeb7d28622c032d0d4818b = "b25c67323ec3ad98ec5e53262342af24fb762b12" + +[1b915085-20d7-51cf-bf83-8f477d6f5128] +15067afcbe053ab241d979e53d125a6460d7a9c3 = "281591d5dfdb26c2143db8b6929ac4c86e5e300d" +674ffea0978ab8e694941ed0e5dbb0affae58142 = "ba44d2113398d8ca3b5f991524952e7fc6cad058" +c33155b28a95ca26d892341c74deab5060eebfed = "8398babffcd8fff98f83d5d624cb880a1cdb48fd" + +[1ba2fcf6-b438-57ac-94bf-052622d64a91] +13c5d49038afc6794c1fc73f9a25936bf22924a6 = "48f3e20fd7ad6937e317382922864557b76318ec" +1a235548634fc364f2af1802d282e8c03a98becf = "0773e797a7b39fadc7701e52ba97744930c6b071" +45dd5f24dbf8991d6d4fcca749a71cfd7c218d7e = "c58dc6e1c1ae100b26b47ce8db898755d64f70dc" + +[1ba61846-84f7-5936-906d-801d78ac1a4a] +11b2d50a90019f3a31555f71e61939a37e27b437 = "3c38cec6602717242dac54cdb529e1e8ab1ced36" +9ce1bd4a8ee169ea6072e4e46bf648210ad02f5d = "0cb7fcdde7de33689927988ef7ac1d6e0de31256" + +[1bab7a21-64e8-56bc-ba2e-ce7bd6692a08] +8fd1a78eed7dcc235b499eb65d61831e83f308c6 = "c69d662eddb4fe8f2ba4fd1b719c2a55f36801ad" + +[1becfd5a-13be-5cc0-ae8a-5353609a805d] +7fd0f512c5ca8a4bd23943ee7a72ac1ad6bda252 = "6879b9b31909a83535d5d488a5e9f54a325e5a56" + +[1c4bc1b3-3fa8-5944-a62c-081c1d8ea3be] +0727d762acf03b8d4dfbb8562006a6cf3930076f = "dea4638c98ffabd707fb122a214bd465cb593194" +3cf30b17a4c49f01f71786bbec1afb8bd55c2cfa = "7c208bd649f9ee117e69c64d7d18327a0deddea8" + +[1c724243-ef5b-51ab-93f4-b0a88ac62a95] +00cd066dcbb4e2ffe368de53a6d846d04e1d3d24 = "d200e65bf2d1bd054e5037ed2af4dd5d89f8ef3e" +11aa6aa5aa72e786a51723bc5894ae488d4120b3 = "23d5684f4e69eb8bda89e355954e7bf5dc011eb3" +17c838979a4e1c7b475960e982fea3614c6211fc = "d68be20143b3ce1b440675cf4208f4e98306043b" +18ee4693d1aca13b3485dafa2f069d74b9cfec1c = "6833c35de859041e145581e57e54c8b0a50fde37" +32bc0ec51de64238f36f7d7e29b063e8b0f78c1c = "3ae008b3cf34b8b44883930ed8797d830c1736f3" +40cc5fee921895e5d3381d98dcf6717d2528e288 = "390de56c97af524aeb54b87ac684ad9ff2398fd9" +43862e4ec490f6cfdab9d64e64c9305dea75e54e = "d9356fc7a577dba7e67f9caf6cd4080acfdf447e" +56d87a654d76e9c32b19df60d79aacd789d05c7f = "78a69dd24c98fc443601e277eb6a8cb6de719bab" +5b84f726137d2436484a4a0d637a31741921d5c2 = "f851b4a973a273b10dad2750a6d35809e7f866d5" +808df8bf43ad729e34886679c56bfea05f6da5e0 = "3800a641370de3ef26849386dc88920315eabb9f" +8096c29d71ce1ff0a3530226c355d9fb4bc225b7 = "3624df7dd03514cb2f6ad6f42e50d8c8a858e716" +876cf51ce749d2da0e9e48915d0795e22b6a6858 = "70c9305fc63fe11de7dd773389b94b4c8efb25b1" +98c8ddf2a1ddc1cc99ad78b8042421b25b62b2f9 = "05b004b269244bd0081b6d1428dc2f95a36d8bc2" +c48bd8d4c93aed27012f023f23ac9489340ce7fa = "4c609d2f59e0209b0604ea5196969665c828a746" +dd9f7c0a9cbe6416631f1f239d338ce9c13be927 = "90035b520eb6686630add21eb2631ede869a5043" +e7137389c95e91ae3878b9d8e7d9c78398914a21 = "78aee06c8651e5c4eca51bbf79ba750d3e7d86a4" + +[1c8ee90f-4401-5389-894e-7a04a3dc0f4d] +1064c2543da788b1b6a63e90c4ef2f281878f0ac = "3fd9abeecf34168a34c73580335920675c947422" +119d08cf7d2394e38bb44acda3bb8d5bf7d25e1e = "ae855db20b8e75c4b531ad357d04d2287c598e24" +14742ae2a2ba9da311c1a351dff2c45aa8c32e02 = "0854f24229ba4a2cc8f611b2a4ac603669d5db0d" +301dd32654993f707268bd5b8abf45403845883b = "73b6070302aa0a4d2d4531fde96e073f17c3955a" +3809e2b0d99358859a255ac0e21e3535e85583ea = "b98c3ef01c70990f043e9b23cd92d0ad717ecf4c" +422844ef0a234c470c45e708eff81e68bcc59ba8 = "dcd39f6c926678ce28e881e6ef0e7beb6f87f55e" +4c9ff466325b69498d5b9187708425add7b7dc5a = "ad0164815a150d4293b3f4d598b072b20f5d1997" +5dd87776d4f3629692579fe49e9fe76b9809d2ea = "7a9d8929ce6657db0f3378e15bc464fb559501ae" +92cd6f4f1d7099fc958597fda2157364e311c40d = "1ba8beef81acdf701e1757c06dd5726c60ec18af" +92f256801432f5d0ba08d3b92738e27f2307004a = "524deb27318a244a0883deef4a7d7fdb6070412a" +9caf2f17373cbd69d7fbb3f3e02434769f020f73 = "7392edc6c74f114b308b677efa50223397d24aed" +a1ac6c95a8bde35fafbab2466e6b1b5ad43d7eb0 = "005badcc92611666358f031baf0f7c9854af406b" +af6e26e4d7a434275d8d9c6cfc5790a52182ea8a = "f7404ac6147c643b3e44df3c8c7728d1156977eb" +e9b687c0e7b0fbf6d2e49341cb25c8be5da26775 = "d0fca367d272102ad4f51ac6783715a7581a781a" + +[1cb3b9ac-1ffd-5777-9e6b-a3d42300664d] +1ce6e0847ecdb3d63faf9b2b8330a392c75e7a1a = "a26a1f0e128eace134b6a469431d0ff74d96ccce" +6c22844596cd1063a596df7ea166382f1dbdd5c6 = "ce242f8a0167681483f54cd4c62541b5194c855c" +a119793a5b2302e38276c4506c0c2ccf9ecbadeb = "628571ccbe643c939e28eb4fe1af6e76547f2326" +d0d96b9695b0fd6faaf72c68244eb41fa8f5555c = "0c831fd6c0c769b2c058ec13e753442cab5ea5d7" +d5c179fa1de6554fa8c1f4ce7d4be609736a147b = "312177b9ab96f445f3252c4d377fcef5527ac225" + +[1cfade01-22cf-5700-b092-accc4b62d6e1] +0bc97d3c96c6500629bc3b814869e1688fac33f0 = "85063a148e94c0c038325961fbe56bcf3a12bee9" +0f3e79348bb2b73f8ae90a858055f439c83173ec = "f2a1deb56a7a7329a1ca462a9d9ff766ecbc3fe0" +64ce1a25fa12cea1cae08e02087663a9f77c1afa = "905e75be0cb31dbfbffdaa109ea62e035210c848" + +[1cfcecda-3531-5955-88e9-4d9a0801da84] +91af2e648bf4b46aaa914f4052abbeb7feb68eb5 = "655e848eeb33b893a48f582cbea777a468f08f71" + +[1d21c727-5350-5715-a0f1-d07632c10ec8] +15d70dda19d3d9a9a44b5430c51a8b2e3035dc9e = "ab3db93ef6942e5bacba94cea05c481d4261302f" +300009c3d8b8da6e12235629254403b726eceb59 = "d5f0a45fe462e1a533e3a0ec8fb7cb5801512d61" + +[1d2582b0-0a75-5730-abde-fb3f8b9ef95d] +5236f5af7571c43cd28c75bab4581b6152f9b499 = "3461b805746374bb730f69db8ced18a94faba8cc" + +[1d40253f-d7d5-5bc2-be73-07f0f24a3532] +0f14019e6da41d0e5f025ba479074fd3ca1092b8 = "233e70c33f68bb7f2dc156b6c3e3cc7bb92504b0" + +[1d978283-2c37-5f34-9a8e-e9c0ece82495] +04f79437d26a7f7ad401462a7e347cdb9c6933ca = "caf8547cce83bee6b512d86097ae2a958cdc1c39" +0c7fa9b48683036f751b1cdcb77551956d39485b = "b253f1a7c2ceec8767b33ddc59c888f7acd6f70f" +1127fb5864b6513924f8c44cacc46102189fabc5 = "98d0eed5473115a25f1b511cd78d1a14283860aa" +161e07d954b9c67435fd53702f9ff1d5d97033d3 = "b2348dac4946efbd44a994abe2acd56748a3a1cc" +1e6fdbf59cd25eb0fb66736f79bea2b0e2bfb5d4 = "afbf3a02bf34a2f3403afa81068508f7845cdef9" +2361e91745ee16084ef1fd040a3ccfc57cc37b3e = "edca9ce32f68a619d61680f5d3a87730a8069bc5" +24b1930c3a12ed9f0e63df1777b2d4e1816d609d = "11f34bcac5ea06a2c4b7819e6ee75829e7293e65" +2707f6c7513a7a0b29e0bf9add4f2b557c2ccf31 = "6ebead1ea9be0bda850298ee00782834314781ed" +3c187fca433cda6797d85ca0791b0abed9d9aebb = "25c52899ffd98139ace9ff3f22ccccb9232b9b53" +3d6d8b936f8bea8bef6e415c3d1d54023882a037 = "3adfab3a7cc51b2ce42b1acbdeea7799d7896711" +3ef60410f1a767dd7da2ebb2b6f7f9f1404f3760 = "3cf1ba200e9655f05b4cec42f0e3eb5c192baa25" +422673021a87646cd73651766792c791a932a000 = "4dcbe083137e072ec902837fba6d500ecd06ebdb" +441a56a7632b7c49f2233c1a24ce67c80730db93 = "3fe8f56b1fbcb8fa6dbcf8a4957f8069c6d25e6f" +4c729522d54bdbb87bc0fcc27ec870ffcc7f32a4 = "30b874e07dd47db3e92ed2bcf5364d924997c57c" +56f4f702104b62704278272463210fc43bd2732a = "7a13d3c3155fb83b67d135c065f261543662005b" +599ff6b64a7ad2628b9b31bb63e1261d8b0ce75e = "1eee2fd08d39841ab77827434ffd44894be9b287" +6f19e0d44d6dba106b2e9e3e2d5571aae37f30fd = "d302c5cb03160793fc4c0aa0c4a7ea2c4532f17f" +7f230b33ca05074d7be110148160c3ff6cdcd671 = "f466a2df79a0b83c0d820c1d2a46275cfb8bcae4" +819dd49773a9cd38a142e84b68f913fb4bb79c68 = "84d1dd571146102c59dfed677398a25cc2f838ab" +84a173ad2511c72d7cee3b67514be26ab5ef4835 = "e8e9fd735d1f674f5c72ce81bd4ed275447e965d" +8f6ef9df9caf29abbf84a1b0c627ac25adfa6034 = "3f3b1b639cb884b2999cb963c167e9fcc00af85b" +a8e1c22a939d902b2025b48711ef83e2af0ea1a2 = "f0ef8efc52008ad33e75ac5abffb8f8bc8266f8a" +b2fed762ea69317dd84f96bd46f35388cdb70f76 = "29de06e1c4c6269e1285bc4dc66232755d8d6b4e" +be6791cccce20d1f5532e7001fb5b606592538fa = "43bd01e7db744721d1753f498ec55b1c0b218d42" +d923347cda6b351330c8d08a22ff8e4289fc2d67 = "e3722163fdebd0edade491ce838ada3c9686c2f4" +db32d4b5169ef51be0f5de6b6a6a5434eecfe74b = "868f03421f5caf9b0118b15f5cb4fda06596d8ea" +e2476c09d8e8453445cb0639478e31fcfe085dd4 = "59cca2f0a0d25b526027eec2b3b06f7a6556d046" +f218ff55775e7743fd19f403fd21e338f5eb36f4 = "c930d3c4ea650c1a6f989a5aca804822f94f2ce4" +fdb66116b4dd84d9107b4ce6abbd598611638ad9 = "1b4479c48d6f8db324920b59989ad3e8bc54f07a" + +[1dc74772-2f84-582f-a327-420d6c648a9d] +0905ded159535069cd74ac10bfdfaacaa496da94 = "4531390c290f86345688cc67161c48e09846ddbc" +0c535e781acbd68da92a3456a1f8aac8b3fac5e9 = "019f01faf0edef32307d2aae4e5203e30be8c1b3" +12d00cc26398da13061e606de664c6e34f8369fc = "ff442d702fda3c71564dcf4407738eaef44c7e30" +9443fcd3cabdb27727c36e1eabacb3c15d852033 = "47016b86b32359b1aead108548e16cb7f8698212" +ed78a5fc21bb1daea8e6e43e1c95f1c44011e6b0 = "80191fe422933bd21fea48c2f62b47ebbaf15bb2" +ef125ecc781927f38ed26df568fc28dd66d75ef7 = "855c642dbfd264dae9957f1697e90171bd751f44" + +[1dd54a5c-ff30-55c3-9c22-2141a9b2792c] +3cdbb0fd66493b20865d04bc0403d11f56472526 = "890d9064c7621fdb30e73656935e116c9279554c" + +[1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] +08b8b855764c3d43cdebdc382c7e9c42b0c9d5af = "9c869e714713a6112baae5cbdba9f3e9d9885364" +095ecbfbf7746e6fb65ce2582d496d82226f10e6 = "a177bba8de5d5637879d84db72bc58c0e3839168" +0a36dd322f82ff4bc51683d2c2ad347fa760007e = "e53c364ead9b9201e75362f44a739988a1770d16" +1566721ae3011fe7573cf6b8bc02365c3ba7b831 = "9f201c7cb519feb46e3ba1285b5c5611c5e9c11a" +16639fbd0eff980f1e470b8a267ed36adfdb4891 = "df535a7feeebb05f1cf05ff47074228d4fb3e20c" +1c2eaaba25b0359aee9621de60d2527695a38b03 = "ed0948e9114279a7271cf73d6b704491fc699de4" +1e0e9f7999711c4795a21a4e49b37dbce1c4bfea = "a54701f93f1f0d9ec9ab9df569c299e1b28db209" +215fd89195a7cc5ad205dff4d1131c5ca9fea1b6 = "e631c5801c532ff56f69917de1f0dbda47df0434" +2274941ffe518d6b86cfcb551d5b1d869716e332 = "225dbc832131006f62f085de7aeadb62aed1d348" +22b52572ebc3d03d2d42685c9cdd340a0d704511 = "ab1e6396f2a59c16fbb25bbcfdb0d133e47a8a23" +2713e8f6c7a2feaba0bac6745c789291c71ce50e = "c480e6d05eae3290a46871fbd5b9e3e240ff61e4" +28fe64b9b7be106f4e618719dd18341e23259f11 = "7ed47347535bdcd95ffefe6aceb98be55f17a211" +2c68350dbbdbb38764abab40efb4cbb171c3e799 = "857ff6bf2e4373633c30270513574a2bd643423d" +31bad76d28c8d6841fb6c8f3943b7a71943be283 = "13451f13ed4db6dcd6cc67123bc5eaad7a0e944f" +3250748823ab5bee252aa48b5878a1d8a0c85221 = "38b36fe360aaad64f87a15bc975462cccfbf8fd2" +3437a6891688897cd81148889722a56afbabce38 = "fd1860a85654b91d3b5f75dac07a9ee7ae8dc602" +36864894405ca25b4f75ee16951139f6a993844c = "6b32e4ff6a9dd98eacd9a1f8efe6829db20283ee" +371331ae9d8ad9a8ed4b2535d7267dd98d894ad9 = "171ec79f5482708c294ff4ad45dbe2acf784f260" +39a50e83b64c5992a87efb3fb52fb73fd2ffd61e = "187f6c9fcb67e1c930c5251ff25d0cd0436086a8" +3b4510e51379f91d95d498b21765dfcd428390c2 = "f25463c3810be75e141b084d92b904b9dfce9de6" +3b8dd0dd341f65aa9654a92e636bc4436d25b198 = "0eb2f5921d8ffab93e6a070dd01fdba5aa7c96e3" +3ef4a73dfa61d3e0f6a556288429d0d5e7eacb5e = "09e29433baa651df071729120cb602592c8c2f54" +44c76bc2e472b459f09cffd4e191c53ee32a6ff3 = "8fc8ce0c9e84379fb0376fd3eee52e465728d4d7" +46cac789288f4b3c82537af88fd8ed4b33f38e32 = "10b01e6fa4c095fafeb535c1b8db79f78e7f28e9" +48a0f6886fda7da1051105544889e72a6222da60 = "c1704cc888dfdccc64d4a12547cabcd647ac85cf" +4bbca8e8a531023a50d12e23e23b195cc716821b = "a15d92a9efc33cd99d8bc2fdbe24b647015562f0" +4cd47304f140777614700db8209408cfd29dda91 = "14b5fa9fcc0ee59e40d50dd199ef3dc72afeee4c" +4f524bc6c90264f9700b5b91a29e6cdbba192f6f = "6c674c552f9ea7d3bec45fed26b26c0f7e4c58ca" +515dee4923b4b38fb042861ec96fc7fea7524fb5 = "2fa2d4968c17f978f4742ccd637feb917a5e3ff4" +5468e199d6c2d8a2845613f09429a26419ced2de = "9d7a060c35387041dd3a8ed500f3f43cd561afe7" +5750bb0013ff877ec51861fa5aa8bff6599b0b78 = "74c2cb036291c0aeeffc7224ce6744607a5b1be3" +5869cc601df085cca9ae27e538d019fa12fda8c7 = "4a9f62f30699d2aee423dcdb10dbedf95915957f" +599fde7f6dfdbc169c1fa24b14bd11f147a148b1 = "728c9a49fbdfb9a6aebf8822db884d095b8437df" +5e59c5d208c899029d798cb1f105637dd90b1377 = "7debe9b9312c1aa7850a4935616d71556c72d9db" +5f415aea370918a9d4dd41c7d574efcb596e9a94 = "95001a91e967dcbca1590856393069cbc8986809" +5fc4b2e90a245a7f52eb6bbd390dca85d5fbfddb = "60d390610074b03e3187a42b3a33ae1340091813" +639429453f4b9d10ed78f72e98ff0987a1a7da60 = "243cfef96724b06fc776dc640cbfa9aae5ef4cc9" +65205edddd02729338f2e66eb75aecf2e685e39b = "0c1b01b7a3db1a1913f5dd0dad7605601050b1b8" +6a718574d03d871358911853f179dcd16ac08563 = "b44e41ce57eda82579d5d94166777798d6df6178" +70454b00cd7e408343893b40b380023c3bde01c9 = "e06744bd0f4ed1e150efe0cc1ff464631a82bcb5" +71b5dc8fd3ce573f286bb8b715df8a0edb81264d = "e5ec9b89bc124ecb44d2fdad9e31babd5caeaf3f" +7475db8cb69dbbcb0bf28299dfbf224041b85fdf = "1607b5f02159e5d712a59f8cf315a763f2817087" +747e3b301551b4aaca23812fabbf7a97394d1ce5 = "cc7668228823338659666f7c1cf3b77f33428fa5" +74e06f378c5997b86548944d4ce1beacbcd0b400 = "31f368ca3304de94ed2f07698a5c60501edf81fc" +764191802c95b8e8559d9821edaafc983b7af81b = "2148c890bdc7832662b6b422e2c199640f8c183a" +78d8bcf3107e8404dbe0dc0e2dfd515e46aa5420 = "8abe8c21999094fb352554efd1574d4371918e04" +7ef45fcff4939e14e615b97fa58b231e540ad8ae = "51daa8ae68079673bf6059775c73cc4d8475b18b" +7fb8b1f0cfad42dad608e478a61484116f45b11a = "6feab38ff6c075abc304f0a0730f2f233ff220ca" +805468d7d385572f80beee42ef99693110f73a60 = "e43bac18562d68b792c91a8d493b4a237bd21f95" +822ae9075e5fc1bf4ad70a02271168c729d52a21 = "d8d31d1583be5a69fadd86bdae6041a74dc553e6" +872a570382f7a6a6d9d039dcc573581b6a20f276 = "4afbdcdafb66a6371915ce72eb645751e9882d0c" +8769c76330db23ebe73abfe77e14e94c6b0db2cb = "42c199402b61b506854dccaabb6a89ce1d6ffb4a" +8af219c5eb1335aa3912e5ace9ebf36e55628f10 = "bf850e5fc19aebb5ee3c5a86f80984d45b97ddbd" +8b43554a3f754f49b0f0c907e5fcad8ebaaf36ac = "ecf4a8666c7762007252adcde7f12bbf856f6ce6" +8c2148f1648af1fa3f8cb143eaab3c90915458ac = "c66967f22c533ab4ba002243b7e21aea3d811461" +9012f56c98f7d8f2bf3c1579633b33069f775e35 = "d3653e92f382c32cde29edd3ac0ff6959061c047" +9025565498f0b8259b50ce95c42e1e76518454ca = "880ee1df2bf850e45b0984c9527225bfa261dd9d" +91605cb76c77b74e550733990c852251014afb2f = "46e8f654496aa7a8c7f4cff59e84deaff416f5b2" +968537d2bd3b8c07de94ef622ee9cd607a4e3730 = "ba40b91c4beaf3921f78ec051e89e69091a1df19" +a0d6057fb155ac66b2303bdf36c7315d818e8d39 = "f63d4e22e95724c7493855a15b030f3483275df0" +a10a8fb841d3f404121bc4ae64419fa4c6b178ef = "94b72c620060b16f47369e022f431a31d9f28562" +a2a6c2673235b1b69135ed95ccd94ca85c8def42 = "d437a7343a23f76147e73519be8294ad097e4da6" +a2e129e0413e2fcfaaab806c9d8f5dc0f5170fb4 = "2acd13a0e53a908ee8b72a077cda74da51f4b934" +a4cc81e0c33e31c46ed218719599764cf7bb1b30 = "5a6b03f6d852a526279315d2d4a231162d5e7288" +a516bb90ffe4628a94424f6ceae5501c3dc3f6ed = "5d819f66c3109cbfcc9c4515187bc591e91384d5" +a8a0350f160b4f35e69ffca5cb542fc8cd278b25 = "a5027a5a4e0f4db54ddcff5810b01a6ef05fef58" +aab5abb4b58c6fc2685f9111caf10a41a81cad27 = "d9835e4e23553b52ad996ab82ee3702624f7178f" +aae9c7b477ebbf4c79812521b19e72aae950993d = "29e5ae584943a1cf5ff1d1a020ed21eaacc2426c" +ab34d32f072223332862fe76496b491e9e3f3e02 = "ee61b35dce7165e83c2bd9d83cf818a027e3cd7a" +ad1e14e1910f67d94beb02a9999f6498003db8c1 = "936bc24126520c2ba4248724be3c18d946b1bf4f" +afbf7c49bcd26c643926e6354029e2243ffffb26 = "faa44afb20649efec9cec6457761a0d21de1a261" +b035dacb92503bff20ab06560c36f758e076d288 = "1afb1e4463fe4abb745e4c737f66f7995583b72b" +b70c49ecbb55f7c2d7d35afdf69cde23ea3c16d7 = "234265a3c09112193c53d8379c12286aedc166af" +c4609003d8df5a193ef90face6fc94c19325072a = "dffed0f95de2991d7124d9f2e4b315a46f548c18" +c659a088699d2825a5337266c4afa53e183f6c5b = "bff52bff553010ff1580758f755542ce0aac61af" +c8f11f14a101bf10f713e10391e3f2ca50818193 = "cb6108964a90561491fd86b812c066c114dbe22d" +ca3f030a54639bffc33f323ad97fffb0c234a971 = "7634a6131cb80361fcc69b740b811b7ad8ea41ae" +cb3eb10eb926eb0220054b5622d044d4cd960b3d = "a21ba0b6da0f658e8866e26fae377721ace12a2e" +cc1f795d9a743ff6ddf3aa87fe409ea48a2942f0 = "b66b6a2dbc63f54c972113236104945bbcd82581" +d46d242936a88109f37a5866ec46845f27c16084 = "99c2e150be39f4746d79214447a388522d97af57" +d65fb4ddd374859d83b2584bff7efe8690e3ff8f = "ecd159d38d02f23fd261a402402c47fab1f8ef32" +d7787d5bea71f138bfda826777278b95cfee133b = "19fbedf2fdf93cf6be827fdbba51c5a26feab3ae" +d79eb2bf8637726887b16a4d8d520308b9816bb5 = "4ae4f3a7a5d26ff809e4eb8a43ff0187584bd6d4" +db9d6e63601f37af1175006fdf39d38bed4f0e2a = "0e9f0b9dfc7c94a5e65c7c86843cdf30d3fff570" +e812271e77aec426f689ff81c2a765dddf70c0a6 = "c81c25a156efc1dbf92b7655f4dede7f51015854" +e89d7e9cb78356a62b0ba29c163023b45b01d281 = "5c387886690a242e939bf7512ab38b5698a3d938" +ec2f97e07fa41e06ed00e2f247848dae43630786 = "e960b3e2cda343fd9fa301aa344c31dea9639038" +ee2596e07512cfd13db417658e46641bfed448a1 = "b61e20f08ce4149fb85c47c6a53f8d3d8c2617ee" +f00483508efe2546aaa54d88a9fc643980bd5f6b = "3228c382b4f8bf035759f609edb2dfef35cd0c24" +f1a265b042daa8bbd867b4ecbe54c7f12f59944e = "164329a5433095897c26f88c7033db3b80ab7819" +f2966ce4f44862989a8f7743bd3a27cc1bacedcb = "18a1f78bc2fee11acdef896d68c5e5991132b50d" +f467f61e7034733bf73d4fee3a81b49ecbf879a8 = "6a2177a2d5cab4344cc7b59fe14b95f16594527f" +f4a79a5fa314dbe8bbcae9deb39bc29448a5fa34 = "11983ed8aee251f6e98c51bd141f73bb4e90e47e" +f5143909979857158578c114ce1c4ea100dc2870 = "ec4b726dffea42db56ba51afdc7fc7e90a5eb0e3" +f6bf3ff18a6e1802165faa7c6774a6e5b189d26c = "92d4c71177e83a29d6bdbc2c1487c73f44174214" +ff7b7813da52e60d02686561a4e7bec4e8142795 = "bd934f006e0547f665b995a8bda600cc8850ae76" + +[1e53f5aa-a928-5bf7-8b39-c478a00d13b2] +5d9ca167fc29ea77a26b7aaa424d385fba8be7cb = "f05ed6886f896dc9969ab3aa0f05eb9da60209ab" +ac386b6eb24b2b6d028052d55478ca457a0b8c9f = "288e509927e983334d05233d011a3ed24932b8d6" + +[1e750ffe-536c-5017-b62c-84f0da8e1185] +5e5c69f76e022916d7fed5c3e0aaf05df7c8d5d3 = "a860df5c6b4eb8bd589689f00db6e2802f9d083b" +683c2884427f99eecb84253353803ea86aa38e08 = "dfe4c69f100ebe99e5b80cd91325493f65d4d8b1" +72fb7724f36ea9a11f66f535acdfe8fc12feb97b = "fcd21df874ba22fe1e3df69c77729f0ea7b64653" +75e9cbbca9bf4850b004f06a007692b8aa001c3b = "2eb5aa37bf1e40f5a9c2f1537fc52f9b10b0788e" +d366e02293d5ff5a32138ee6f95effa86f95a491 = "9cdd38679b0f2eaf9197ceb14464c9b7ae7d97b3" + +[1e9eda5a-45f8-5396-91c2-7e7b4c9834d4] +a95655c5260291ec8c730bee69048ce4793608e0 = "f0f5647b1ede2ca7081b053115eb0a6d37ef98ab" + +[1f15a43c-97ca-5a2a-ae31-89f07a497df4] +10e74f2b780960bd4ea10d1c351a671b6c89e375 = "d156dc429b1edc789ccc900415ed774102f80bf5" +1281cdfe8cca0fdc9c4b141fb1b1d963d9fe2b40 = "024a793b643dbcf8530dcb2fe4c38dfd74992e77" +16c4ff2a54bfd7135b3d71b37558019c317182d8 = "dc2caae1f00aa210af4005834d85886786f90346" +249a6f5e3f3f56c19e1dc42ebdfc1d9cd189222c = "1f231192156f7ba4b6c320835daadacef2ff0c56" +3dc95c42b003ff62229eeb445d11f289e2afa2f2 = "1957d5fb14945b80d0dfbc3280d690c37e1a10a5" +41bc238c58e8638dabb0696f0c3618bc3aa97227 = "85671182ff2a5c1bf2c280ec684f36b69e06310f" +45b5e6d75cef49a6cfa321611c187a8ea1221569 = "5740cd74a9966bc189c4afb5a00f8723261757a2" +54121ded0802e1a01db80fb7c89a5ae6773fe1f8 = "cb129111f4f58cbac2498a2338d11cb9547878d6" +61ae68a8d0ab6ecf63e779201bd25683ecf5049d = "60f6cf8bdf5527b547642d0ab3de2cf54ed6bfb2" +776c2294a14852f5d77603f3a1cdbf0c555f3d22 = "ab0ad28349659990264fb0d578b072c922048371" +7eb36262b559627e82983de004e5ba9cc4809a6c = "b489cf1bb1573216e2991e89a6083d15d5472a35" +86642f9314792a55141a30033dca43d2debf7e76 = "596ad74b6195208dac2c59904d7adf75bfc17f26" +9337ff1d5cec3b017bcb772486b8f3e3ee1ae09b = "a75e0521a95a76a1e4d4c4f771f70f2d30041ea3" +9b5be121ce09047add2309bdcfe1797e582b6322 = "e9c37c3a46baf062d6eb27be347ef81a0c298541" +daf011d5e0b0c1fa5abd5786d3c0630b6a6576bd = "2a08a3b78ed4a6b8d09a8bd51dd27119d9f87995" +ea74742685b58fb7a845c9f9f735a7f258c85fd5 = "a95ba10116cc8e461c212af47c8174bc1c131205" +ebb9b47013f515974f7ffb617f429e6b8cb00353 = "a0c2b0d5e7ed6de2d2cc749ebdbbf6c5fbb3079d" +ef510e1488450a31d2651dc5474bd70e4c4ca0d8 = "54b60667a64c3081ec4fbd282bf935fe7ed9da2e" + +[1fa08884-6cdb-542d-8938-eb45e6bbeb56] +1934760e8cfdf01c4b6a47289c443ecbdae007be = "c513ad12189e0dde0fab459a3f69a0790dfc0cd8" +2e203f7155ab16f1290c1eb230f38e91cf80f50e = "14a92e954199861b94da972079e70757be7a7d0c" +50215f1edeaed0b9505947cbab6019b363271ad1 = "4a3fb86026130f0d8851dc965aad3d0ce8e86db5" + +[1fb05d12-6c47-528b-bee1-deadc63ff0b4] +8ee60b23769ea857355675a4d24c3a7b3afdaaa5 = "6a3b5a8245b43db3076d4d3d9f3e767b96d41a35" + +[1fd47b50-473d-5c70-9696-f719f8f3bcdc] +064d2f01a0c3ab825c24a0a38b2b454c7b43ca5e = "34075e9743843c2e9ad1867a262536348de85a85" +10949107c255e4d0d836a2c121c18b1bffbe3602 = "29e05ff144f17d0c4b41299423df6bdaa0728060" +2421a3bee068b92e30eaf448503bd0ce1b0d3e6e = "60b510f14c7eba824cb8f87e43fd7cfbbfd16e3b" +ac7bcfa93efa0a5406f70fda9dab6b7e3702f979 = "70a3211817c6b6b48d2ab3ba20d8aca5e442b57d" +fc047a40918f9b5b8a4758da2b35fd819426b8ca = "ea16d373243f88d6aa6d94cddc591fa159ce7165" + +[202779bd-50eb-51bf-ba18-ab2f8c575de8] +2eeb96d22d37f302a6df4faa348b181f52f1afff = "8434e6787717e72b9c97cbb939402d346c8da7e5" + +[203fad6b-76d5-5f68-8b2e-e85904e86574] +997a6f58e5fcc0608c136a6e9aa2e7e31f384726 = "2aafb14cd13563069e62bb2b3c8855f7ec660339" +a894dbb31d5c095ce537131c3f1dc1c9dd70f9ef = "af94c2697a85086a7fd3e31e782696e4efdc6550" +a9814dd8b16282c44b5c370396c95924e85f7729 = "b6c213c54eb35690eace2dbdcb1322f368254add" +ba4b76fbe95891c21ef150c169453d7f9a463f63 = "e905f19ff307e2c88e8ecbd9f939d5e4585e234d" +c28299e56776d42fe474412d89488dd0f0c43f72 = "20bdf2ae3f3b8397b48f8dbb621d6771fc421881" +d3a29cdd4d7ac85f5842a8e60d3dd1b6d0c025b0 = "c51bb303e47d078f28ae7e767b08abdd2b3b0008" +fb094f3211337881761c73cf5867a0876cfb19e9 = "61e03d43488302ca09438124fc741648df1c3e77" +ff085ae80d2450b5a7f96693ff5b2168bc5acf26 = "ed2dd084cb5f3bac526f608a5b5509063ea722dc" + +[2091bfbe-2937-51d6-a893-7459a14235e5] +3aa456d66e4999dcb867d386e93f93f8996a6754 = "1b188d945fb74b53e89c63b694b61478786ad14f" +ac816d77149de3447048dd7720f1de6ca19c78e2 = "70f98be2a9be07bbfa6d049f6d22a4af0ee55ec9" + +[209c9289-0e93-5bc3-a9c6-3b517a31ee3c] +09a42083799e0088b4bc5e52a0539af485a2ca6f = "26e353104bde2e5c987636979b2625f428497d13" +0a182f6c42ca0b9363d526505123608afb00c2c7 = "6829badc79853adf9cee42ee21c3a2328fb4447d" +445de950b0da7b012621a55427a251e24b5e2083 = "cae8c3602825eb15d2db905920a131d6e1a84992" +63435b26bcda413b4a9e337ffc4ef8b15fef2e4d = "a0c49fc240af0531b16bf4576724bd89c37673ba" +75f477968e00bd77b97dd6db5374446f73556a9b = "8f9a44aa76b8bcc8a929f60c331581ba1280dc6b" + +[20febd7b-183b-5ae2-ac4a-720e7ce64774] +3816d584779733712f318e981f9fa172279e04af = "96ae4eef21d2e86ef3c4ffb8a0f1c5af0d3adac7" +45094675ab6086fe7a4715a945fd96688ee29731 = "431c151eba45a492ae86f9ec2777f31e1b037942" +5fc7c453bc0051034f3fcfe6b4992afbb0e37087 = "22833ccfa7f2b140069dd73e907b472633a64269" +6c565a34dd5b1b40684db2a31288ebff36c49915 = "8d53e8a389e7b2b1d9cf9d3a409e90884e822561" +6d5c8549d04b7e500a0f4efdc91df8afe0f17cdb = "1d31914626561e29b822809bee54a6caf582ef06" +91ce77dab19dd7d7d6be6f31c2a481d5c0492124 = "c1db5846c49e187099359f91ff6905a63130595a" +a98715e6a3e9ba87283e4d6336f819bcb834b9aa = "343190de60e32a0c2c719e9105ac07f21eaf034b" +befc26bb7ccc355faf80364df753b81badeeba29 = "5ba6fba0a2a242bddab76133b06a5a515cfc394a" +cc32b1d6931edde70b82511adb8e9acea49aafa6 = "267c97520bee10e8269ec35885a98a68a6d83302" +e5f86ab24a55916322723d71bae19313b5067429 = "5437f94d51c382f59af7d83a231aa0b4ad1335bd" + +[2152367d-059c-52e9-ae52-2d26002cb4a3] +bb3e67f41d29324fbc1200413fddaad33024f2ba = "03ac4fd3a5867114a03c42ef44b51843b701894f" + +[217a5fbf-7069-5d7e-8910-cffeb5401964] +abcfc807daa4671b0542767328af461cfc46588b = "2f3d92673e72a90fb50c642baed1ff39065ca36c" + +[2193fd1e-84d4-5b0b-a3be-f484d363cd43] +1e0323e792f2ed24922c628546273a2134cad494 = "8e26f59bd33745d4f592b3e89b919f4cc96cba6e" +dfdb82f07c49938b13ae87f6633557233e1204ec = "243438f25a7e9c6b0f920e932fd08b4af9b336da" + +[21f26bdd-93a7-5c22-aaad-c68df1035b25] +8c87545785ac377681f8ed89734f172d40235e10 = "89a1870a2111f35b242dfb6b65bfa5d5289ca465" +ac6204b5920170c87098a422860c8d922f2cd328 = "c3bab88c32fac189fd3d42e137f08c1e95a4b67b" +c013e4707119f71e2ca9504cfc70c3d40e7d27ad = "d188d73eaa3cd4b6686c7124d3794081895c5609" +c92a89b91791f61120bfc5a43cc3a57b28f706fb = "07227a41f3f01ca4f2ccb08f5f526038327237a3" +df4a96f7a7447d5f3b4569b54903dd9305c078fb = "a74b6ba218a4af5d99b45d16de0f82814b3b062e" + +[221dce02-7e96-5d1b-a637-f113167531ab] +5d4751e29024efb1c8aedfe75645dcc1595d2058 = "b02e3ca82f7674f62e25f3559317908ebb0b8c26" +6a6113f768ade321f4d5695bb6fe27ea086e1e91 = "8ddb2a67eee3fe96bd67b42609fab2764df0f830" +73057c36aa994c55687f359b550837ecb3361b72 = "d38d2c116b9014a786251994243110a7fa34faf6" + +[22286c92-06ac-501d-9306-4abd417d9753] +86a333a49bdb4878c8d277ceddf532601702da1b = "a118ef1424409bd0afac9dc3485de2bb27c4f154" + +[22415677-39a4-5241-a37a-00beabbbdae8] +1746336a6b471c986082be9aaa6aa8dacb2dea72 = "a655d22d1d7c6c42fda015be93c344d4c546abde" +1bacbe59802e47077789f9908a4f895ffd7645f0 = "4653f631c9f5af7b9c85cd68a0a71578fb156447" +3855cc762d8d4146791a3d2b48e74699b7abc045 = "906175a274fd774eb2f76e67eb665e66b5fef79c" +3c634d13018766285d0dd0af3838fcf7e21918ef = "7dc19241f70d272bdc46754aa899968d5a9c898e" +486a3706b4450f4f1450e60faac8cda1b6453b17 = "96f125aed3e15d5a5ebf969d8126ad164dbeede0" +4892be3b1720a9aed737fe31582b78bdc72cfcc0 = "3d61692a68979091a8e0b3fb480fe9a045241714" +582c94e7d1249691fe2a5987da4e622020643a55 = "e0561165ac2e56e448e284fef11cd040d05a7325" +7c0dece4b80b2305850d31081859d27ae91d1a55 = "2435401881596bfab8f3fc36721dc34265e5bc34" +86ef7fea816786662e8b21d912a300e5e50b9c48 = "33ddf80f5a2898b17435f8b8523f2a72338001be" +8943e7bcf8d57cba699b29d9e9862c7367654de4 = "dcf2240f1e75945c600472524615866c49f5c679" +91ca1643d30196d272571187ade9fd29fe5668b8 = "9f3829e048bf16682b56a1c19ea3a2b57bfd47da" +ae7728474c072e135946c0db755692114d8a39ae = "2b04847eac4c62a645aab5ec13c7306c93b279af" +d40d35283b6b41048c2c5565487461b4606c4848 = "656f91ce00cb0966191963aeb8749045fe8fe4be" +e14adf085f65a6b3cfcbe0405a530c96974defc2 = "773a722ad520a58cf705e524da469a6273555541" +f601da6a2cc0ebd28ba981d0c487628e2fa7fd86 = "0b92309c56bdcb33650934389de8f393d8133573" + +[226e0482-2e74-5b70-8460-0a87d2a092cc] +92c8aa8a9d86fac3c7563cb13ac91b3adb48ac75 = "58d750ccbbce4609d873bf73dbe83e4f716f3007" + +[228000da-037f-5747-90a9-8195ccbf91a5] +146af78e7c28e1cbbbd79c1a8794a6c0d4b7fd18 = "ec0a65a69d3429557fa2fdfab97e6da3cf849653" +1c577d36e30cb0b94aecad249687ac3798281670 = "82e3d73e94f1b4e6ecf5c715810ccc1151d94f54" +5d3f89da2796f75cd48a0482f83cd36808844991 = "a7022da119e6173eee80e2ca8f4b434f31eafe96" +7a7dee38282f94ed7e944dccb959480ba506bc54 = "9f01623cab1874ab23d593b50047eaf46965046a" +a879038980f3683722bee7491bcda78fbb241ef2 = "32989c3d03a29b832db4294af4517bc40d09471f" +ab815c854be88f1d7885e0bdd86bf5489dab75de = "bfb4a7cb76fedafd2c76907bb890a69cf4c75959" +d13f6d77678f8dd0504f56e9832e625a1646ea3e = "944b484837b69af6bcd5660e27164ede5c85adc0" +d17fbdebfaba1c3be519943fcf59698917cbea0c = "02b7b7b0ce5d1d514c5dc228288e807b63112628" +d7b63d09f7681919119e20d7032878a96cc83836 = "4505c30aedc11e7fb8f8c43ce67d2c77d7fe6714" +e2047c193905e247a6a2879f999fb396caaffe2c = "047cf55f766ca3109d0e8b8fb3ac64eefddb6dd8" +ef60cc7d48b9503de34e01cff99dae18c6d81778 = "8f01e83597d6f7622a4a8eb04cb86608634862e0" + +[22bb73d7-edb2-5785-ba1e-7d60d6824784] +03ed6924caee3499fa10726da1f635b05f73a3a7 = "a3d6f504fe399fea90c5d09f585e05830afa4352" +30553b0bb816fb46d11e6842047fe5b0bd62273c = "cece69381efc5ba96ae87789264b6f8d651731ca" +38a62a3fed28555793d34ee24069d62e919fb33d = "a12db7f5452b277393189de21794fe4ab54cba1a" +75733703f2af3d043a2bf199565cb5fddb7de55f = "4dd9b758499a443a074c207d1b3844cf60b2735f" +8d1407ac2c5e6047de2aed7a3fa53c8b165cae82 = "8e32bfc00c6717877ef8aad88dad7650aa6d1af3" +8f26601ae8802778e81f2d11b50d0d13c289f493 = "56b2d67fb6e6b49d73b699bdefae4fb6d7be460d" +922e0cdab08335ff0cbfa1ce85d02774aca8fc0b = "b3b4a7d1a979bc7c3305f6be6241230a019fa15e" +a72c3a48865194b09942305add64aa7fa2a92c8c = "5eea30a95cf05bea79ce97ba373e3e1b24a00683" +a85235e47e913d72a0a6c82fa2da8f4592bcb834 = "60f9106e5cf1ac550701e843e681235fcd30c017" +b87f141cb55bf70460519796b38927326ab4bf04 = "7fbccd8d279e5e19b8b7153f32a0464628c20366" +cc50cd3068d224ecff888e4afc9ab059655c3a67 = "4d5fb873a970171850b79fc804186294d6c20850" +e556259c38b77502ac65eba19db2be49a7bf0fb5 = "0f493e2692ea1fad7ad775c9cf1d93ee1c34ef50" +e679fa558eaf2d3ed22228f8481ccf2384061f8b = "58de2dcf18025c5490ac779f5156c0a2a43524c7" +f1ae7267bb27bf923ee027b45035c03b3ea176f3 = "8102c24d380f41f4f06d8005593e3d608c8fed71" +f234d037f8e1952ac82f39db940177c76f61e90e = "a4787bc889f59a4c7034108249eb4452b7725a43" +f819a1e735a69410223bf4ee4e819a9a42fa0c8f = "5ea66c566c03833f6649e721c7653a7a7c026a3e" + +[22d8b318-f366-56fb-a292-a93f7d76c017] +142fe5d7a25a7ca5ee09a03932dfc1ad89033c31 = "71a9070cd7634805fe8fe932ccc94fd527f4da43" +1deaf190a4169056c49fb2e8244382e826c63206 = "46035a891c69887ee17170fc9e691c067376c54b" +28db434c936ce142476d01a433a4debbfde69b98 = "47c0628c2818b38ecad746a68e6050abef5c2a7f" +31d7664230b01380e151f48ace8dbb0f03e3dcc5 = "4266381f600c6460a44675860bf4ffa22532d1ee" +32b3284890074e6d9dd489d8c237b89784d7e5f3 = "87e7695e76cdab3625c5043ac7566eee4f019db5" +6fdb7e58e9e5cbc57e4f27e83558a8005a413165 = "bf31a97436b98ce0be836d938afdd09936aebb28" +74232718c66b7bd0718946f81dd1f2026e26ea86 = "4f2465f028014932e59c8f7e00a3a47d0b7982a4" +92c2095369cbf8e7ddc4f2a313e5f589202f97a3 = "abb380ebc66509cae68b9bed56d355270b9972ab" +b03b5a2024a070f84aee5b1bcdf72c1d62c4533a = "c19b6e657a60976f5514aa9967dba221c04c5d01" +b73a6cf03101fe9378bcefb575be0db6a2e802c4 = "cc026281e22b7330061fcd078fbf43d321a266ae" +bdfe2c9d0bd14b1bb70a7691d2238523cae7de2e = "9804ceba78696099c82bceffd602714e615daa64" +d2846df9171cc17be50274df197c76cdafc8dbe3 = "606135137d504b1515f0d7717207f31ca0f158fd" + +[236a7b2a-d24f-53e9-bd69-8f3c16745bb2] +534f164288b4739313949398cdd292b762c4c713 = "597c892105d4a67d6e24e580eb989d19e7e792e1" +8ff911e53f3bab06a0b2d80f4cfcd84946512c0b = "77d4cf2f453a925c8ff8befa6d0ddb02468c2fcc" +cb50cdf218dc2b10a7c0b1fa81b16ccaaf52aa08 = "5ac83e4b37988b8918345587e836cb8e258997c8" + +[23877df9-4f3f-5b93-82a9-6fc988bf1876] +66dd7d5a1ff311078ff5aa798063a880efe12e3f = "61296418cbeb09a21e80e2e85f2934c6fb8ca147" +a34ab22c9f4545de98d3c03fcff8c211230445c9 = "da1a808a4e547f770006b513aaf51dfa615c6526" + +[238d586b-a4bf-555c-9891-eda6fc5e55a2] +c6e2e66c6bfd0d7997b33f3f9fe73c520e0ad303 = "b1108d3dc7301bf06fd4af291ef87a5af5091a03" + +[23992714-dd62-5051-b70f-ba57cb901cac] +13f042f0749068db3e36d0b9edf0ebb2749bf5fe = "8346283c42ecc99fbffede41d355eff1d3de86ca" +2d64b13757b8ef12e744770240124bac5be74097 = "6f40e47084b87863b0f948ca53c3508062e78f94" +32a35273d9444c4f9a25d50a38c722f59121c7ac = "a216bf53d2023992527e1e5c6212ac6a66e0d968" +334c8741b5e6063dd3b2009b8288da0acfaec725 = "7269ecbb460f045879e05ae207a79b203128c545" +67ea0cb71b091d2ee769cbcfd212b7499bc0a775 = "e712a42a3d5f9c3e57c3f5bfed3b85e707c759b9" +6a2ba2cfb05eaa3c9e31499707b0eb5f64d57a1e = "bcd7a93795f083c1e0f059e3252c29d2c0fc9a7a" +6c29c889df3bb726bed7bc745a89f595c5da8c84 = "94846c8f68f9f12f158210f2b9fef00d0b039071" +6e4701bf0378320132053fce9d717a92f636dfe1 = "38b7a9ea80ee69777d851ff30fe517798b5dd5b1" +73b74309b587180506a408af7f77e7f9506e1c14 = "c19ee41021de49951622901a108664ed3ea1973f" +79c0fb50719c50f1c28df93943ebfdff9d5cdb52 = "2e57464f6ea2463358b01dea30bfc5ea8e9b41e3" +82021f0f3c1de9224296ab703ffa3706adec965c = "2ed0aca38a8f30d79494822b08eb4cf325a92013" +825cdb2b3eeff42c4b47c2258ac1fda822a2b460 = "d3df021707353726b071b4cc96ddb18b8490de53" +9282d615c8ce2b68edb9b900cfff6e9a5e9b04f2 = "2867125226f7815ccebca4cd67c719af2f07fb13" +94140399d85bc074672ba7556bfe0857eb64f3df = "8676ad77021a235cbf2351a6adaf8a33ab777ba7" +9d32665a7c1a2848025f6fa9a0b93db4123ed822 = "92db60030142c745c6b800f8451e9de3bfad49ae" +aca9b261c1f73caf4f2ec9330148659a52f3a347 = "2b8acd90685ac6bd7f321f9169be4cda72139d15" +b39af462d8334e0cbba797f55d56a2795cc41b9a = "c44be7c50fe96ed6e2292356a7d12b3bf32228d6" +dc8e9841502f3cc9b1397c71c8480d575b6f2fa0 = "056485a1d97335a0b986dd4ef78ee9ac1be2fe40" +eed86c0b9476bbdcf6be0fe3441d09e554673748 = "0dd96cb8a462dd0c44cdd3bc5357708cc7ab3a7a" +fb6e5ae33c38117ffe5c213c88f114c6eb06ce3c = "945306cde35cdbf326e6554e8600e5675639f7f7" + +[23fbe1c1-3f47-55db-b15f-69d7ec21a316] +055912a4cf49fd24e5635a73984bafd127a7a557 = "67d6e5ad1ef18cc043f810418dddb4e97d0091a2" +639e1eb57d0414a53eac93edada726065e5b2aef = "1dccf5fd20be5f2ec670f05c757a591a244732f6" +6eaeffc84c8f344e66bb53e9cf6ecb310ae09cde = "79151410c22288580c6422fa8881c736a2da315d" +8080774c4518cfc6975d6a17bd176d3d8210a5a7 = "d1470386c3459fbfd5b1d0e4f683c49f353c88ff" +cf53951b89aed678aa20c0dc1bae69dc81986aa6 = "129e4c347d01bf22e4210f23d54a22e10181f3c1" + +[24249f21-da20-56a4-8eb1-6a02cf4ae2e6] +05a2e855e42d6dcd44425aa9d357868924c5a165 = "f20e6a5f8d8901f334d7b3850b712600e439dcaf" +089edf2fe4afc0122d1fb3b1247a3f46f784aee0 = "58947813bbfaad91cb700b51b274c06e214ea13f" +0fd8b9302efd0d45932dd3bf40d9b87526c21ea9 = "89cccb681446b6a16435a3e1f94ab55137781cb7" +11109e34baffe463ee79b168bc152f4997428b6b = "08b321a411deebb25bb069c2118746cc9124d975" +18109d7306be598b8f1ed887e06db578ca30ae87 = "a3e8b0d35435d92618a7371f17b5e0ed7970fb32" +22f7f0531c9a56be65655c3fcaa7d687f57cca9b = "6cbc63bd1c0efca26e1c0beb6d0d40be08e3a534" +24a5215b9fd78578feede7e812557634d08fc508 = "102792ebcfe8144477411f3dbc600ba2b3f5f181" +31df1fc83277ac181a1786121ee6b89c83e08025 = "8970808e0fcbb897600b0bef7a7acd1a569f8005" +37bae9645678556a28757e3282e85daa8dce0a25 = "5a7609e32ff1a7ddee56aa3b755bf83687d22935" +3908b0e18c283abc4b022a076787a96877cfd827 = "7e4db0defbd3adc01561f7518c0f85339c2235a9" +3f42e11b50cbc21953682b730cdaa0c0a76b14d1 = "8ede56a5c2393c40c9c0a62eb44e2ad99a08299f" +44ef174582746df1e7eb7e2763a3088c7eb9abaa = "9a511ecf931d11e0a99d43feacd1bbf64df7ea02" +4953df8e878b778d56ffed513d3b39d494d34d26 = "f9cee40d8bee914951c4277baa31da24bafa02bb" +58b0bdb8be1cde150cdd9374156d886a39645022 = "d5d161821640833e2b0693c421ca0540725582f2" +5baf86de868757b6c11c5609dc71206180b19df9 = "36b3e82dc47bfaaae8f83f18f0ff63e9cf7e2245" +629345756ad693f97eddfc7d84e679f32e4a2504 = "9fc4052c11c4360fec03d9d61690c718f81a928e" +636655aaea00b17f042d04256c24e69265203bae = "7ebcaf9db54f64d917bec2f92cd39bf9c2c2fb42" +6c18da58e4fe0c7c5c6d8d6f2a23ae072abaeec3 = "0e7874eea6b1fc378d0d3eb9cc8ff4f130c662ce" +726458472b781be7b4eed350afe816d3046c792f = "51cf58882951fc7f514b299a5ad0ec166c6f1c11" +73978df1adf10caf665763e7af41f7d2bc3a20d3 = "952990630a9adba8097b22336bb1e9efd2f4856b" +74b92d73dd99d47dad3f3ba771049ac6858407fe = "35cd62f649dcdc3f7e3882c9c99883f340b748d4" +7d679f114e4ca518bcb2ad39fd379003363f0cde = "d4b4f04c94d4716d51ae46e073d4ddaea0f528ea" +81263a0557bc30974ad5f7dabd612517ef740dcf = "c284a2356c3a94f9cbaf8375f107fca68a085ca9" +8131e194748aae4248d3a1e6f21766804e8acbd7 = "6f8505f66335ca8b022812be25ed145720291384" +8334191bbb0bd180c8ff9269e8fa7d37f1f21414 = "ce5748c36a4f62583b5df27ef1af5eb86a59620d" +8a1bea113344fdc7119547b863e1e0d3ee410919 = "34d8ce7022ba8650b8ec9f74f05e90a43b765b06" +8ca6627441ec491f62d2c5a5eac3f4d36227f5fd = "e3febba8e97d322e9b778574dcce8b48d70702db" +91047e0f63695f22d87dd7bb6c084a31f08fbf8d = "1b885ac140de6797994aca6852bf669e3fd4fa84" +915e4015d06d9f5ffcea32a6f88ad3ae32bd1e5e = "fc7764f4a5f2e0fdf91f47023dfca795568bc3b8" +9fcec5204035bec3baee71c04f8149c6acf24aed = "c9eb9ef468f83bfd0ee836d127e4accff3cb48ec" +a00046a9bd5d64a7c81874d71e603d830a3e38c0 = "408214614dbb1d055688669b5d82d79d0225e6ee" +a67c2b21af1c9ce5bd2ecd82a4dfe2c172f1e013 = "5c3877cbe1d704c681b9618608c6a52d7503383c" +a98c818a204a7542e720422c4e0bee0dd6e27ab5 = "a2ee2857a36046c77ba829a6e0bbc38186b226b0" +a99bac82866a35bf9d61bd2c7802998c4efb3418 = "7787de69ceaae4f20587a10bcb80a33327bc6e7d" +b181d7d0ee62d4ebbb519c83e5a3b3aea8b603ab = "20156635a253f156d4b80167c6478a7a49d89482" +b279c6fa15a9e62921e46e9d284cd29ec7f8c7ee = "c51a37e01dc5da79eec1908e4bec39a0661510b2" +b70722eb0eda4c53939d235c307ba13a1722e6e6 = "a7488f3f1d02cce0060ac8491d8f958fc96a50a5" +bda104e8a68a4ce52182017ec6ced7c0d0c61866 = "8211a2164639592fc54e37551d5f2804edb99c10" +c2d21b243e7da7c53a93c993e2e38011a9811cd3 = "f0bb9dfd3525f950262cd1b2c4f2512c7430098c" +c6d207a4354d6e4d9a27cb948f9b1fb8ab2ac551 = "4f675b7d5d294b071011f8cc4173a1fd703758e0" +d2f08e9d35f1fa84cfb5dc9427a31a4b19d51996 = "e272959ad54b34cdc5f6948fc7db76ff4a6cc8a2" +dd21733a8349592ddb289b44ab83e59409d59df7 = "454af6812660991d7b83d61161f7a188e7ef03a1" +dd3aaa69e44b920aa0bdd62ee751943921b2a79f = "ea62bba098ae8a258298acdec47ea3459e983e59" +de15bc181f16b83584c1d159239eeeea314634f3 = "ec081d5d447fe2cee8e9fac9b5238d3ea8d370b2" +e1886923101594fd4359e4e353887dfc20de44cc = "61672aa2035535830b38751de9f1e1b8ba6b25c2" +eff671d155f54a44fc993c1e34530575c7972f08 = "48f1650771cfa0dedcf3b33821ff7d1693010dd7" +f34e77460eb5334623b21e74f22e07a2d940c983 = "ce4f195e9af9483eb9e66a020470b6d16a3cbb9a" +f648bb9cd63ed36394be6743761873fa8d9c7c11 = "5353f293b5ce8cdfd9ee65725eeb17e57745f1fa" +fd5149aa4b1e8f30a0fb5f50f454b27d57edbbf3 = "b8b12f81265a7022acc9bf5b025ad465f6f59f8a" +fea5666973c3f64fc42a6f01618bd2234f4ccd62 = "6a9655dba2911f33b7e5f6afc669749010ec5e16" + +[242c1f41-6415-5004-acc6-bbcbfa0e5f47] +f1cbd4c4058284b583a3cdd4a8fa0ac82602f8cf = "3fe72b79324a2b4bfea81e6181f6dd99484683b8" +ff9a6fe85143b4ce8ce6af91386be6de2603a460 = "a0b869934a1fe106db12a8d790dfc511be0f0fbf" + +[2431c0de-905f-5065-a272-d48c42d73feb] +e5e69f584922559d46075730ba4f8679e11afc93 = "e729503bade3c775262d249ea5944acfdc120e30" + +[245c20d8-22eb-51ed-a154-2138e8ce21b5] +8e844869cb42156b015b56998b9bea8cfeefafc9 = "53056fa7efd6f66ceaa057b26cc8b1c17bae199e" + +[24678dba-d5e9-5843-a4c6-250288b04835] +a88ed686734a8acd9531fd3fd8d41127d7054233 = "c0583365b6a911bef3b356f5f99d0108c8272982" +ded85efa5d47cc8d9dbb5d58b773ed58f4e414df = "186952b5fbc6f14ccaf50e5ef95a958cf41f6033" + +[2472808a-b354-52ea-a80e-1658a3c6056d] +0131fb0cb53eb1e97092f1f0c23e98ecc381bfb6 = "56143d400df972f225669d254d6437115cf96e05" +0df89a16007553324a87e03702ea6503760fa252 = "d3c3e1777f1e6da4ea1da686cf2c47b1d6884f08" +11a28cf8fcfe3a8fa15d5f0ccbbe9f34092c5965 = "8d3f48ba3e7e6f3941fbdeb72b0606967397856c" +2deea3206f392b07a1e6b1b38fe9cc1baf770ec2 = "e6713d560614e7f02346972dd711d27362dfeee9" +4fab1d22dea7ecc08deb52a41005f08ddf858c81 = "3dabf72d21a7b966a1c0e80b1ed006dd513704e7" +5b8c261c6f3c0485661ac24c60ca0fbca333293a = "2e5ff2915bda7eb7d7329c30cac4f57f661cc31d" +6047a20137d1e87bfefa2f04abe0654195fcd56d = "4acda009ebc20da62bf6c3fab7eb4cf2f924ded7" +74f77dee7fb077b4531b08eab4ccf1647bed0c58 = "43be7bbbddadab8675683a65e18c7dd875912f17" +85fb606d2729ddb9db3d3dc11d21eedbd39326eb = "da711990480bd7ffc2b44f781273458982c8fd1e" +95823288805910a9e869c6c300d4688593ea1ec7 = "2f6a975aac16bc6429e4d0c3fa0d09b3ef9cfc47" +bf7e7bd7308dde115c9f7e03ddb8e6480e533cfe = "6e0500a28af83b9a146407eb66111a7c8dc9f859" +bf999459c928c4c9bb3089043c836b48fa1ad8df = "f38ab570bd1571fcaa0d179f2af9fa62b77bb5a7" +c9ede5d2d0b66a7a6661bc69b70b2ab2443b440f = "d1c93e3c8f904b0e6b67c1b683834c6a9b6a960a" + +[24875eb6-1ad1-5a2b-a058-ae0b6bfd31a9] +2a96c719be20898a580dfdfb1c87c223b7a47bcb = "4e69da4c2ce642cbed7065ea692c00fe6e8e6b2e" +6edbf9591a7857eeb5d2ceb63570e99fa28ab783 = "c1ab973bf60d4ac1d2f1f178c4dcd1d6e24fa1b0" + +[24f65c1e-0a10-5d3d-8a1f-a83399f3fced] +25d11da2c5532160ae014e9169f27c4fd4f1812a = "c3d375b77d812030f9693266ad5e8d453e4054b4" +be61306211737afc3a16a905f22e4d5ba8a589bc = "77d01a1fa07530c257f25f3cc1504ffc61cea903" + +[251f48c7-f5a4-5bc8-b6b6-ff4797c45649] +91254176c298844ace3ec39a454497531e21aa9a = "d7ed051e7539ce1388489c64e3fa14091277717c" + +[253502cb-d042-5725-98ed-f972bb437cdb] +8ae1cfdbbd0a309033798cb47a49707b97d6512e = "a2fcf55efa79bd0ddbd8d6344d57eea015afd3d4" +ae0520bd343c6d1d1cc872c23a6152c38ce06c27 = "89a17e6b21239677ef64b9082c05d08103d2abb3" +cf2d082a4bafa1b33198b0377cf5bc4550f32608 = "7218df15d050df198851aa78f092057a93c46ae1" + +[2535ab7d-5cd8-5a07-80ac-9b1792aadce3] +4d985ae078cc76db82806a531bef43921498f0e9 = "25a01d132ef4ac0fd45b64b9fea8873d6f6fcca3" + +[2542163d-3f63-581c-abc1-15efe995b982] +2df712fb01d451cb98c173c182a4ba806c02b213 = "58777c76cd0262ed1289abd2a16f0ea46ce1bd4e" +5cd84a5f4c26f9f668a2e9547e60ca2d462c6f35 = "614246ee1886f1f8f154f4993d24156e69d2189d" +6bf1fa8c22a8782b4c9e940a570afbf8152e92d2 = "bec682d5ef99c50ba97e6809f03fb765c457e49c" +6d8affe7bc56e9fb52a0f8c2695194061c6cbca4 = "7066279df619ea56f806ea14d01773896e41f592" +cdb7d5a1b59c1a1f234053ee06d4e06eadc0b097 = "109da292b34d3530960aecb02e5ae527b1baafa4" + +[2547b907-48b9-5396-a2af-edc57bff161c] +0a2975eb32f5ca56ea7b14445c83dba576a180d2 = "a6f8ebef87b88f086d060bc79a736b293e319fd2" +1846c6abb9e54a79064429fd3ec812da0de7cb7c = "388737adf0f693b913740c3fffa403d84adacef9" +8771d3ec5b50b713105663f4d65fdd98a76c0e34 = "8fbbd10cee1e89232961ae1dc1f17787a5a6b72d" + +[255f4518-d178-57ab-9c44-739df5d483c3] +49ee15a6527b430007710fbe07946e0a2ee24748 = "999fed5fa58c7e8c543a9eef5594a439779a41f0" +77c465a18eac5810463d46f597b075285ee61e61 = "dfc8c212cad07701de1bb16b53e62b3702565014" +828856d166e30cc1bf3ef8833f7263f2e747ede0 = "46cbc4a8c81c7aece658191795f2cb31bfae6b7e" +cd596962ec9b5e6a5236749b60aad55a683bc92a = "ab6619128774ad333ec5d2e999f8a2e72505885e" +f801f183dc5663544ab3fd9127fd0c50d3037f77 = "e7c538a04f81eb0a6922a8d95413a2e75a10ef56" + +[2576dda1-a324-5b11-aa66-c48ed7e3c618] +2fd68c51817ad1ac7b8c154c62e4010594f7c5a2 = "4785301da6e800e793ac66d0eaeaa6189d286185" +37c16a0528f215cd67a3fa1eaeaddd5d6c6ed233 = "f7024f0e9c4256e7f0fe1f3bd81f4dba6106e39f" +6b4bae61dd8ae209ad6431f82cbd12e7066dee9a = "6cee5a5bd443da3af29ea865e16d1c43ae706b40" +8b85be0f97827954b43442356a380c8a9f7d3556 = "10f123d9f54bfa458755bcef12d9dd399ce11d09" +aa23a70ae03e4e818e33473a00b0ce579c4d9b57 = "1d564d7e57dc396f68efabe531c3ccfd28d7e06d" +f0582642d55290357b61a0623a7c2a8954d83576 = "4e3ce80fb3f81b38ad23a7f0b1fb2a05c6f37dc2" + +[25c06242-cc58-593c-a204-a17bebfb33b5] +51258778a30ea064212a28eeda7bab86434264a2 = "7372934a1d175219dc0eca88236ac8bf71e59f62" + +[25f12f5a-a783-5f9a-af99-e55629686113] +9a0a7876422ea740f3af111f756676977c558bed = "4094d8c30bb0714c2665550c38bfbe74403c47a3" +b5697ddd44675b2b84d4155e296be21e8a456913 = "2d7b53e6b6392c6ca499b723671a50d8f81f96ff" + +[261fd431-d7e4-51f7-86ab-ce9e57fc1fff] +36894e28f8c717e446683b0d409f3e76c30fc06e = "16bb2f8e494153a758d4948e6cabdf8f317f2ad9" +e16c50a9482594b6eacbf7e2918065da3f9a64fc = "273fc6d12704474c4b8337d0b97d95c2a48fd9b4" + +[262c1cb6-76e2-5873-868b-19ece3183cc5] +2617deb25dfc737d986de50e2ca17477de7b703a = "93a5f6dae69209f5ca27fc8fdc58805fc1e5de4d" +3f0caf4b378b7951ee76d91d436ee958d1d4840a = "e9a22101027387d34df8c3ea0b35af7afa480aeb" +547753ffb7cbabe9eb6b7591d20d031c0d5e2b09 = "e29acf3a39cd9cb1ec2818a2649b387b10dd87fb" +810919af3bbd56ac7f92a631902bff14d6dd7fa3 = "dfaa59d02f80ca698a7555124cb22371f886b08b" +c1f6000f5c37d25a4956d9b48222b24242a7d153 = "d0a094d8bf82fc17f4385dc6759c57e1b21e631c" +d1b0a9cb485403435efe482693f18d2ea5821b77 = "03b8df3cbb9aa470cfb84b845524e5d79c58fba4" +e6ae11cdded2e690d84d0f2a41a8f6f77741db2d = "92c9c88ffb65be144f00b0719a93a7bdb3cae853" +ebf1d4f1a9fdf04c39635cabf3626c6f98f59abb = "7fb91f91ded680a65d9ee303140c39c0d579a7ef" +f45f799aa199d18361064c6086ffb0f4f1bcf229 = "264e877b22efd3c37955bed789fbb143c1eadc50" + +[2679e427-3c69-5b7f-982b-ece356f1e94b] +11cd9b339af5ee6a95da1152c96058cc37787f09 = "ae3ec66ba109e670913d9cb2007dfb7339c24e8a" +2f5d2a2b251c9973c337ce24cc86b0fde35a34d2 = "befc0d83fad88f705570bfb2ff3a8f6c7319807b" +3cfd24b2fa02801d748c8cb9fadc098b3bb906ad = "c435ffe60ac53eb61dd133ddd8f45523be1326b6" +6599bbc5cf86dfab2ab79afc1ed772dfc2647f3b = "d9d7e95f456b9a2cd327b71f2887a08b0a34ba88" +9609060e58d8010f2912c60bd21bd2fcc59eb146 = "3da77038403c17bd2ec5f95bfaccbd7bf507ea23" +a9fa90452f6493ac87d2f2796289d78b02d099f6 = "ad491b185249b30feaad1be3836480f48a2aa21c" +b9da91c4c4fe7ae938a25b7ed9eca919f089dc47 = "8c99c461bff9fc992d260b2922f5a84c56866133" +dbde18a1d67964df54933e95b7130e9dd946e974 = "c6aee95d36b7bce5d238c7df2ed6175164f9d56a" +e4a39afc7240706ed8180d0ccd5eca2f44c90445 = "fd34fc2635ec1a4dfaec9860e8976ff5be239166" + +[267bd6e8-c492-5d7c-9aed-5ac0f2f898a0] +13e4102895d26e82d3d7e2492ba9692a59e0acae = "38f10d7e8be9037478af01024226574eb727fcba" + +[26dcc766-85df-5edc-b560-6076d5dbac63] +3a2d546564db5d2e34c87cffa3a6b36f050dfc1e = "ce34f758ce96a832365c9709320a83b650be34f5" +c24830181d339bc347db1c75a6f571edb8791b5f = "13b537f3720cda0a4508935cfa705d80578dae25" + +[26e3df79-567a-58ea-9c5d-b0cd0a93ad6a] +1053ceb1cc8f3552759f56aa1ea007a9ddfb215e = "35068701ddd7ee11b2852d7d546e6d0c9e9e0fd6" +496b11d94a765b62604aad3f8e50a376951cff5d = "b12e2499f6da053d3438281dfec589b159cd0b48" + +[276b0191-6968-5de0-98fd-2a81b0f3910d] +1daefeeff1269af121c71651cbe5bc32942da95e = "0cb4ca2f7d245e255f81878ee25ed4ddf2e4dab3" +304550fa15fb2e8cd9ec0c4707c75194073036a1 = "55a19a57fef47e03be0bbd93a1a6c392cd83ceaf" +30c5ffd2d38dbf779d260e23c198a32edce2e8e7 = "de8ea2905afe8639d5ad65922099efeee1f23a13" +7a9df0a0b1aca12989ab8058bf66e08d1be832c0 = "93d9d12f3ec77aa585f49a8d27e8ff851ec4348e" +ae2b8957bd794770e1c124f93a079f5aac03be3b = "297de09a1de49880dfce2931c9f69c3520938d70" +b66db64954181f3d45715ee03f5ad0a0e8ad33b6 = "3464764bd118910879405bab136af11b819a2bc6" +e54c822a5858f93fba0c94695a728438655bf72c = "52526cd847b0623558555d6fef46ee4de16dc7fd" + +[276daf66-3868-5448-9aa4-cd146d93841b] +033a9ec0faf07b9aa68265ce906b2c0c0ec0c86b = "7a1f4803a75e5c0b114548fec27317d12cbc0538" +380b61737847e598291e6cc0b1702a3971a37a01 = "ab519559b18834944811f7551e3b412118c6f71b" +48429728a02828466b86feac267c88d85480ffbf = "06a14ded3a73e02f117815e8b7e19a7b592e7ca4" +6b686c0d6544a1e0ca59b627f22ea5559ba03e40 = "03e6a824d4f33a6bc856a5fcfd9d14729a9f18d4" +71812c3242ffb48eed00b52d607110bea36d5972 = "9932e6705d08aa70315df7ed81539cb671702a6a" +7fd9f334ed89509c7b6bf1467729e5010b6d571c = "887d2c26d0c6ae77585f9988c560f353f6262161" +8574f13f0f0f969fd66fdff49717ea391b2c8ba7 = "c33c7a8a9d0898141a7e7b2d59e610549c9356f1" +89ac6013b83e53c26c920f6725a4fb901e801885 = "8c74c9db3dc0bf0155664669e496300c15c24d7a" +9151a95d6ecd4a400e08eab83813e9b4058bb7ce = "a22571d3d9d88b8bf56816381c676d98e4903404" +9f204e763ef54ec1a66299256b52fd5735ace555 = "a052147e601e79260de0680f26335800b4f63dad" +b70b52b4f4685ca9859d6b3e4bd1a377406ad1cc = "7aec1f1c05ccf567bc6005fcc966392f756f815e" +c7e09930d3434f55a18d1af6dcea676bb44f292d = "676dab08e81b570fb6666e6e53e489a8d394293b" +dcbf013e44301a55df66a8a27abd630a12201020 = "757e8d3446309ae08e3922f78b68ae2f51782dba" + +[2774e3e8-f4cf-5e23-947b-6d7e65073b56] +014e9b74e3e8c8fe482b0ddfe200548237555c0a = "30c297d8f85ff130dcda5047fe455c3e136d1061" +0b1cdf8edf91f6d6eff6acfe3470e58ae977d031 = "ecc200f575b1eb0bd8293b83e8e2d3c72387e756" +1fe5454444498b129860cde6c1069ceda128e630 = "c5b5a9c37d230a84590c135b17d353f0ac809494" +21c079d994f32b0982367c9c6f54164cc7f19a43 = "223d2dbaf572993cda83641468a7cdc09ae011b6" +22e2f64ada4b112bb121ab529157a4c27e7f7fd3 = "89fa8e216fe121acf0fee9371bfeef84323602d4" +29ea6f1d9f3526620313ecc6f13de10297b8b648 = "0e6c46564bb1ee3cc4e39c7cc8f681d4d2e0ef0a" +38433892ba8eab583c3807749d0bd429dfdedb90 = "dbc8a8c9c18b8326e15ef21dab7b726c055a1805" +3e837b7d3f14cde60b12dffb28225231497172aa = "67b2a8e8a067da53947523fa6714fded35688f1c" +3fbd6057c01bad8d0cef46f0a9f1430749c19fb2 = "2b175eaaf851cc0b12d1c5a4acf6755961723a29" +40b8bdffb6728d152427519568727d53e0aa5ff3 = "15af2f1988880730456c7bf8ac0ead103558d8dd" +4a68f84a8fc8caf3022a02063f3f93616c08196d = "418ce7550e9b2e34f3814c7ee25f617dbd92bc45" +4cb7d75b975637a6f0fe23862225a2bcc4b1d5a0 = "5b1a19138e50de5fb13e61ec0c8036b9c94883c7" +535b7361c700b39b6f1f1148f805c6036491ef55 = "6d2d179cdcb908ba6c39aca5b0ac41bf4f8eb591" +5f0c944943e861eed9c31264c13dc898481fb952 = "b91a6dd5680fe9ba9f11dad8156688ad2db7fe47" +627c89c863f89ded5b354bc87e7badfe40d7e901 = "eb5cb8cba8ef113d89e248240bdd8bea0f883fc1" +6492f5e4e96199022e254b96fa24e47e80d8865b = "7532d958c932f42c6edf1cb0b431831d8338a440" +65d120594f39260a64f2daa7bf4df5b2ec1413ea = "06d92d9713461579061caf4968e584df461a0646" +796135225237dca6e3e7b4c294ea26773ce05321 = "980af06aa1570230ebfde2634074ca718513df96" +7cf6e27751281151c8815a322f1c0bf2df622c06 = "415a53a8ef74c31cac23123d87f2152dfd92bae6" +acf07d94269fa9c343cf195771dfb4ed01012033 = "1eb32aad9aec3c5a49de8ea92f6989cfd6564f24" +b472f3cec1310888484d8f07ab4d671a172bf3b8 = "cb23297aaa46674e99c44c7b2faf5c3385570b25" +bc5bbedf0d9ce67b39dc584221a2767452422f6a = "4211182e11d64e2e6f6d58405eba1e4b3e2a908c" +ced92f85612b4c62fda71e87c6e60eaa99a2acd3 = "10fea68ee918f35e81baebcf4a7735821aa70955" +d5761332fdbb65c01c5c6c054d1a27a24f18df05 = "0d37c8a4f5269d31f07e2655616e6826a4559728" +deed60a6bb655fb73e7b29a4c3759c696fa8827d = "711248685898fd53a514fb66543edfddaf26a036" +e093d67a5402dd48f7a5fa45282167f78f86bc71 = "5feb8534b345747410b9e4764c833be412e06c36" +e4d058335c91a87bbffe0c1c3e3c1f4f430a0915 = "994b887605fa54c70ddb910f2994c8902802f504" +eaba92d3ee857b90fe9a47f17d4d9a13b6c2f192 = "5103044f476e7874dfc9ebd9c84b526676db82ea" +ff78c8e1323c0038db8a95a20ce8250bf3b9f86b = "d3c6cd641ffae90ac8828bee7a10d69bd6f7bc2c" +fff21cf2f15cb0812e6a347d6f83f4710d67a454 = "78f8825a4a7d7696581341060a2eee30ee80ef20" + +[278398fc-db6b-536a-86ef-0b56cf867102] +0ba03c50ef3f0d942271b0bc0e9bbb8bf31f8bc4 = "2653a5891a617944dc411fa707504b1b93cc8bbf" +20e5a6e5c650f81b59d12213a2044b192666c1ac = "aa9afb1be5e57a8058b2d6ab208b77b5ae020fdd" +2712fe20088e7f4db0d9757a274ddd57e3b671b7 = "335d4fbc8401ed907ee98bee937238b1ac8914dc" +63c6191f7b8c923672d4a36a1afbf0ae3e3eee86 = "df161a480db900c378f204f916991f6d488f282e" +6e018b2d9fc1de4db1a79d93b80462e86d905580 = "d38aadcacaca76adaf9d142da76f7931cf1ae925" +905aedde1ff25cec5a41218fb80a1475f5ea0af0 = "38731466eecd1ec64b7cd6d3cc36c5f9914e865a" +ab9a5d287c897bf5e82f1c975eb212f53a05c269 = "1a6ff23e29e9df8db26bb0c09025398342872c69" +bad3d76c1bcf589bb3883ac9ee35bd9d45373eb7 = "a6d227fc2a1e12ab49a91174ef840c25abd3de09" +bb440082091c21e40d9860977fb591b4e89c7394 = "7236795a65e107bff013151c06aae7d88d004bb8" +c082f8a962178364a09879b4748bf8c1a0b973ea = "4215f7ef4f9cd6b3d42ac44089da11558d7fba2f" +c82e4413f4f4c3b1f5d427b63e868abee90e1627 = "7b6bd84fa0dec7e70760f4884f455a3065a5a853" +d6354f8fea7ecff2e3a6738a82d37d6d075830b0 = "57ff0392d9eac55887220d7d795288205e2b20c4" +e726732fae19f0ebaf86c4f3eda0335d47ee05ca = "8afe136483473512ffbf0ddfd0c6e48ee60f08e4" +e80bbf5245e7f74f28d3c9d828a2bf3596b0fc88 = "1daf8e2c5efc781e5cf9a29a0ac1817910b3eed7" +ea2dc49e4ba78dad720ab8ea13d02b3455ff86fb = "c07e07263c7dcdd8caaf467917fd966b846df505" +ed947107fdf1dc1e2168b2295ad109d867ed7333 = "c3c365136615d41d676aca935a2418300877ef93" + +[27996c0f-39cd-5cc1-a27a-05f136f946b6] +17edd42ca16a1984d331888a406c9405ef4d9175 = "591e3b66a69f3885448b099bf2ae84a5643ed0de" +21b01e689ee0cdc3ed5cbf2eb34454882b0f832b = "c2dfd4239c68510d7b231aa916ab5dbc28b6e42d" +3f913feff1883aeb72fd823dcfd096d95241cc53 = "ca0a6ee5db78fe28de2f4562e059ae1bb2dd1152" +4358c8a451a743d8641c3a06a76b11b2841036be = "9b369e1523d82237e5d6a69d53019d727eb11307" +50832ba62264f03fa86a453168f703452dc84117 = "71c12e901f36db7ec4aa7c285d2f693e6f6bbd58" +56a2941012974cd4f651f152a1d776d3f9f4ca16 = "f761f7293acf17650bb0d54093abd99cc43a148b" +576646719eda8c04de1d1a0eca913c5e074a70aa = "d9b6bab376c26bba9231e4d10763283a628c65c6" +75399efd314912f84aa77a0e24861e1825d13818 = "6a251427f9306fd53fc4f239ed31b739b4aaa50e" +7c3eff4eb1b017ce31232118a8969ff1b34ef07c = "f3d14b55771e29439f6960b51350bd8211b38b03" +7f122fec26afe0efaeefd4f4024e39b2c34ac20e = "d3e4cef183a88c6be8a63f5493fe5902d84546e1" +8179c208ff5fa16d6d4879c8dce578cc68eff59b = "322f02ea18d29b38eaeaad1bf003e051274c5529" +9cde561c2ebb222720f805efb42b52ef41fe01c5 = "022273db04a925192fafbf0059fb63e74694d7a5" +a5ca713d029c92e90d2c1ae48fa0d1fee54d9f6b = "5c3af0742eb0cc62c7bd06f9c4e5fae8cf35761d" +ae6d8d6b05a3960d937f6b433bf5250f4fd72039 = "8e03d5f1ff5941b8b7938cd85a95a39f74fd86b0" +ef10f00ab47df464269ba24db81713180aa2e3b5 = "57aba9987087ce688ba7578f4c510b9901ec3553" + +[27aeedcb-f738-516b-a0b8-3211cf1146e5] +06a05a03cafe5908c894d4903ab4fd681d45c774 = "50efdaceeff77e02d007800a063517534eb54bf2" +0f1103b4b3662b1375649eebbdebc58f4414da8d = "f910af82d916481d4e2ae0027f99a9e5807feb5a" +27dc55b10fb9efa99011e5bbea713633ed45cb48 = "1517c71e3146faf5b730f9dd13bcf3649cf6cba1" +27fe0cb4ecabbf0234b621bd5668a3a746e23089 = "507803378c87e41d21376c0072405585fa41c4b7" +2d350f47f7b622fe54b5d829abbf932e79576fd5 = "8de5a9d37a9441f6f6a8b33a3efff92440deb81f" +3751f3f2335217f8ba83893523a388d4477840e1 = "6e44b780272ba923cec299f7057bcd7081860b58" +44096e745c4aff47025bc86517a1c992fb147bb4 = "84288cb610e1bb35ed3543ec98885f8e16010b3c" +484f465a950f06289e981bfc7935a43e2d79a4ea = "85a9e9172de29643676b29d4df1cdfb470e57f3e" +6160b56094771a420b9a2af57f234ea18a1d062e = "ae88996605541e91392005047e90476304992791" +68e0549696c5058156ccb0a8e5e28579f3a31afd = "7ddd34b41c3ebced738193c2157992ccab0665d8" +6b0c39501e46e5fa9e831c5e6024aec5e1e9980a = "ba432aa0dc7a5fcf729c4992da81802f84b43c6c" +7692c05f665bb7ea09d7d5ddec04e6341974a1ab = "dc4007ae0c703a1b4838a1ce21eddc06e0b5a88e" +81157ce162d53b3f90a9c114d139efcba7a1014a = "7a50ef22511170477e8d7bade219b9ba7ab27391" +a10e4eb15d1344b8d2bb5be6699cd244ab21b39e = "341bcf32b7e2f00cdc22d6965e0114a2007f4d3c" +b14c5e2d613e51b1bc9f4997732d0701b9d809c8 = "45a254b937efde3457431b166b46f8b39bf6dd79" +bc0ad409d3e4d11a325aefb657f8e0dfdc2b3750 = "befba1e0b56d1efe4f9d6ac0694fed5cf77bf763" +bd9a331269cb4184e27136a8a9e1de59e0182e4d = "befba1e0b56d1efe4f9d6ac0694fed5cf77bf763" +c6995c082d86ca941be35324d56bf6c49e3593af = "9a9cb2c173048fb2843d94f4a66d4a3a7b7f833d" +d2d7933c5ab05a75081418d2afed61a2aa2a60c4 = "507803378c87e41d21376c0072405585fa41c4b7" +d3d6d9ea5cf2b073dbe93c3338c8d0e1ea9dc33e = "9545796b0f956350876310be28efa17880f38f42" +dc3d55be096be1f956c69a0c7b945ee336164e40 = "8bb1dd02b10db8bd35602cbf9d5f0c7187b78d29" +e83236fe4ac1ddf09447108ef456d7ebd2dd64bf = "69a3954a56bd87a0032092d2fb4eeff609af9a8b" +fe2917dad0b0b1a7f106f7d1db9f0b8f5f551f92 = "6ab10cfca9d55620fa6673869bbfaa3ab8661060" + +[27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae] +9906dcd12e3be92a5efd3023ec9580ce59a1ee53 = "4941192b3868309fa7542c39576653a7b4e949db" +acc31a43323612e752db2010546200e22eb0ae37 = "b6c98e91ccae7d193b60e858e71771d8fc666f53" +c78f3af0e9904129e7026c8d2e1592f3c5277512 = "a45bebe0e6d9f70b4f4c264df3b59cd58d895eef" +ceaefcdb4a5c032af6bc497d5cdd46e90895907c = "7e1f3d339a3b8c23375212e656080c27530d5fab" +d9da8d1e9ce256cab9a5f1951d2e6e763bfd939b = "0424e02f73b7ad6cd6b94a6ff4f3956a19cf2189" + +[27fc6e5e-f203-5799-a75e-6abe30976ce9] +011946be8d08114971ee9d939e63f137db9e604f = "a9f48a0e8097205b2d1960a9348a3b0f02b5b2e1" +2e04a6f098f386c931508c06a6b7f509c4fef44f = "40340168b90cecc26c5c8aa5be08073efef1c325" +578d4fcf294f22f3d0318739278a80b923703543 = "eb8f9d91abbd953013a331cb752e1842d8c78db9" +61edac839b41c38ac0b39a4518c4ac59ff8b75c7 = "a854b6d2449fde6da18d084f7d26674fc74f5933" +9046ce6c9106b607ef36b91a9d13a0e68543149f = "b13d7b90f586fe9d324ebb4229d0a63130509f8d" + +[2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac] +047c670e9602e5e52f3fc4f78d815d55250998df = "1853f5da41cd8b86ac2e2bb186411466e3a6a830" +3e9d83e7c5d15184616e9b6ae6129e5402a38385 = "79ae0700a5a302a6ba90138c60f799e155791a2b" +62ca49c91bde647334728f3d1e4b6bf663d5a05d = "e89383d63d136dc178f9682a6bd01dab4ac891ee" +718cc71204d898a9e2032ebe57d705183e2ea7dd = "270936fb3f8fea3af4a1dbcf3516406ec271317e" +8bd2356e4bbd8cc9de28a39878be2a7deef97a7c = "aa360457386a8e83d7ef7d913ef9de40ad754219" +bd40e82532bda8c0306fdccc507336a98b5c28dd = "b6f2792dce4cd1aa7e1015311f5f3f05c7b0ef16" +d58e96595fe5552259d022f890db0128b79a09ea = "97ffe4872db4c4c607fbbb7d3039471bae694999" +e725c52377950b233898a3077e4742ad00995ed4 = "4976431fa79330489fb7de9c01f366a447fbe971" +ff917a1a13d4a7138b414a60e0bd5e9955acb8e2 = "f54d63c201794166a886643882e147098092462e" + +[280722bd-5306-5089-bba0-9ea74ef75271] +a692a300de6e3657b2a0bf57d0df100a0119f2c9 = "195191d5d55fd6bea9836a8f36d8eaa4a7a28feb" + +[281102dc-23b7-58f9-8736-e3566ed2adc3] +28e9dbf696ed46aa54637ed5284b239a8ef44d56 = "1668e7a824500a37a97c203f55e004c67660539c" +33e6a2003530dfc0af4c8fa07a8156ec124894f9 = "332d70406b9fb0a360ff0dd541723cee69cec6ce" +98cb969fd3753061402d2aff49e27719a73ba961 = "24b4c369ff4d07ec77d39ad3f0d441e369c1af2e" +9cee3e9614f10ed472972c98bf0d59ae57084998 = "6aaca8421f2178c651c5e5c6d08ac8421abc6803" +c99c9fb9cd5a2032dd6957103acda73fe3af5c54 = "8bb7861144627a69be05fd82513ea06835c3134f" +fd162b6b95d9f00216b15c868696178fc09d1e6c = "059d272dc834ecc65b66ccbd8dbdedd85b514b1f" + +[2859d429-0a23-5e0c-862a-e399fa3ffec5] +010aa8817134291124f67c9bccf80e727aa2f5b1 = "5b1d05ea0df2edcf6bd2c87bea91989f66a2484c" +349d14e4ca441cbb95c818685e28d4f7a6f38910 = "4fd4dd5a64f1b8cc2462edae363d0b8ddfee46f8" +3ed127d2cf20f73f98a036ab5b06a8d888c914ee = "6cc6db737faa52fccc555b9fbd98c35061a03b04" +47b1a7f49c51f351e41913745f5eac536ce10d0c = "6cc6db737faa52fccc555b9fbd98c35061a03b04" +4c6dc816529407fd393a67d967a52a3bde402adc = "a343942141987b26b2bbde03bfd7810720fd3648" +c592c3d728178193f7d6d19ce63915e7d1483d1b = "68ed67c2b044abf62e0b6cd10aafefa272f1a7e0" + +[288772d2-b0e0-5baa-bf2a-dbc7085676d4] +9e34aa61785b8014f9869365795c193fd6f619a4 = "d731c2c0b173633b6cd1b5e76ecad367d90e79db" + +[28a8edfd-32bd-5648-83f9-9b597c29a4fc] +0698ba9653afe97a00d1af07f80494f430460fec = "0703e705d6db6c967ed2b114c1cd2a381405d6e1" +0cbcbe431182e920a4f67ae048946e82cec34df6 = "e029f14ccafcdc385803e9727788a695c3c95f59" +2476ad9d88e6aed688433b7aa6fc8223f20ef392 = "6123ac4e4c7014fc35cff60bee50119f533ed209" +2e1d098d0892e05748cecdd10a08f4ace165f352 = "816edd477ecfef6b001c2bfbd865e28cb5abbfe5" +852d3b7b7315697c16ae3ef2aa12e2965ac57541 = "60381a016d56ba4b7dd162936f07dbfd7210b3c6" +c4f3cbfd7207ed2fc7e6064b9a220b94d398f92e = "952fbf8cb0de4e1ee3050fb79381b9050830fb08" +c8db872dc22df9e55bc2923d4c1ea06bad38f6e6 = "383cdc4a98142f3e9a0bc4508addf2bc1b78f2b2" +ce7b61aabebbba2ad1c3dbce209634c5d8996014 = "9391e3aed09936350d9912ee8f53b94638d6c7e6" + +[28b42770-66ae-5747-b898-823420be94f6] +cd4e6f26d3b67cff1a2c8ee6088e59877d0e1b78 = "d93477f54ff281f61c03ef22209e03eb69245d15" + +[28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71] +06c57861ccf08aab5362353e94715792a9daea39 = "3da76eb3204c4928232a2415967f60c71aecdd96" +0c46f6e48a34b6c376d97539dbd262a4a651c0b1 = "bae6c63ee7dd17341454fe2bbf616df703c42713" +0ef48858ef931c68bc4cd9556558f0d6af1a6c8f = "67835e2eca6bda6f9f86606b687bd23e4b5c33fc" +1273a2507ffac0afe0ff8835672202583f1d3fb7 = "3b907d9b37cea40d7db04d8ee479d936bc87111d" +16621516cb2a031538f32a66873bf154993e79b9 = "0509699c44b6a481f0e1a09f717a2497fe741d38" +18c05885c5cd31e698d6a2b33508c0e0b17c0451 = "b696246e37a5c61fd7b5517b799896e1daca0fad" +1ed615398fdeffbe1bdb1cadf436d2ed055484fb = "691259b53ef82a40da9999111f6d380528b9e6cb" +291512428c143ccaadd66d653cfc3df5b8a1d796 = "531260a27a5f9034cafdb8c8885f801de2ca5885" +295f08eb7df6b5236a000928cb3f929661976afc = "283bb4199413cfdf8b8b89ab7574e95a4119b187" +2f970a5f32e38a3fc063e712ad3e8deca8685c61 = "80f851264c8ff4cbdc2961d82a9ebbb10ee9f69e" +30672d0ad8dc254d80e22dd130d8940182c4884c = "df34c0df309364cc4a41332c1ba1bc440551517d" +55b513f2c82e42b35e5696cb03212f8d9aaf6a8a = "83259813c4b6344b98cc2d92356b6014f33e7f6e" +5bd980cf58159be9d0e717ae9677595c011f453c = "7195eb6b21c113d2b26f25d2b044b6492cc82280" +5d36fba98931cedee491158412552636795fb181 = "d2c373b3b369e95dc0b4c94a5db69d5d2ed365d2" +5df0f1f69afa45827f90a4256c97e38564ff5457 = "f3ddd1adfa9b08be2de181145945f51e381296ab" +70f731c3de7fc58deb79f3192f766532f7649f9a = "d67d28a1a338a38f88d41fa6f94087db8afd0599" +75fd0208b771444f4ebe8e1cb88f5e54bc70ba2f = "e4593316ec0b21b3417e1a7d1aea8b9ce06771ca" +776047caccdfd7aad34cd58f9352c58bd189004c = "56eaff5fa565c18658d9eed1536a98ae4061b17b" +7abeb35eed59bebb20c3ff7631ae92d8efd96b51 = "f309120e338f55e784ea930b98e5dfd57f87575e" +8eb91b9e8de7c381bbf224a6dee81400030509ed = "1b72866e25e3a8781370bc7b536ee337032c1fff" +90f81e451d884061743c0d200680839418a44451 = "0a358a59baaa2b3419a4459492d2810e07ad5eed" +95d3600d761dc3c04d7432bc2c2265e0ce3eeb17 = "99bc93b360912dcaa17ecadf1ad0ebb0b1fd1dcd" +9ccf71801e48cae09ea2523e59f2b130e0143b54 = "20a37994572dbc353fd316cfab56be347fc6bb95" +a12b8c6fe53d99de1aa40d1f33e614da9358f604 = "902a839004df9da8d27959faec2bc891cbc6ad53" +a348ed682a3b5ba65c313161496042f796014915 = "e6aa5105e86736f80b295fab776b80c6ed995e64" +a8acf5ffcb5fb76dc8d0e567f67c9486dbea9101 = "4f6104bde63365cc025cf9ae58cd2eda12c6fe0f" +aa141735b526232bcfac8d044c00f28fd83366ac = "8b9dd5c1c54d43e86fedb4c0f30c95fe67204a3a" +ac0f5ba9783048c908d655c3279f60413c196d25 = "779ce5ade8e1ac435e27952e42954e8d470f80a7" +b498e299eb80c0ddc62e785501aede4f52108a04 = "e781db7d89b92e706caf2a1d63b68d1884276911" +bad36645ade6e4421a625fca917c2a2ef2dd3c22 = "13d770d1a5f5fbee90ae36cd9f11d5102ed00bd8" +bd1dad07e332386d7567b06925df50c4306db483 = "879b1bc77fadbaf98a2de4b3f2598dec70bf2082" +bdf536ee152561df3517435af307547f08ea514d = "17171bdb96e852934e55448c176309cd00fcf58c" +bef725ca75d87a331fdc68c84f4e36dbde02b09b = "349dd830cd5e5a11b21b1365959598e136e4a09d" +ca0112fa138bcd4bb1e5b1dfc44c9bc916db60a1 = "d77852ed4381ef118fcdbb18c8f962028d8f6d32" +cb7328b57331783daf5e01fa9ad0aa280a4de73b = "06956b2438f2fc6c54eb03aded7beb344994308d" +e0d5ff3637d49a59b78a8daa0af3d0c2c11b697e = "de0982d128a41e2dd8970b5c984b32155f88c70f" +e19c2521749b15f6a8a12f846d10565ead470a91 = "9ea4945b6d5a8e21e50fbde5402debc246a1219e" +e1b972ac79a1977feda0d8f4b4858ba0341e2bc5 = "cbb42708f28f16ad4fad6d6e723e2790b5dfb240" +e31746a96dd567ed0196042a32ec3b336518bf09 = "b16d5af6a9f297d2d5be07f34a587351d0f88bc3" +e662ec8265160d6e69039d6081346b1df6736361 = "99d62bb06874ec07b3093373a8ca313780076d35" +f8cf54180ce3eddf8d9d95c2d46498feb492e17c = "450fd4b23b5b90a89250dbebc30c1d94ff60c8e2" +faa5261bee6e9b2d2a9bb73e0c349e9cf7d62474 = "dcb6f5d295bbda568f70bd5521af2370504d0137" + +[28d598bf-9b8f-59f1-b38c-5a06b4a0f5e6] +7c65d67451485e48a076c1907eb996a169295ba1 = "46c5a7b3f4062e9ae9a306c37872e375de01803d" +8b02f2b06ccc9486a5262745eadfffa762382154 = "7f7d1d0e7db52cf18c74934ab1f9c9499ecb5aaa" +92f21180d0be80d382b13c6069e9841795a19284 = "c25a33e961476ea0d3bec73d2b00c16ab5531488" +a2167ba32d33f119dee25288e84dc38825ccc2a1 = "07643c43a5398a3dd5c17199619fd4f53c21670a" +ce7430e3bc2d57b2441f10cbb7f21fbe8bccba96 = "7f0779f074c9c06319a60d567a8b1661640ac47b" +fc5afdd080cc54d0e5f5cb3529a3c0de561e1357 = "fb11574f0bb9d51cd247e35f01a4e7108b26e8e8" + +[28df3e28-0a79-56be-9a03-a8ecf656ae93] +513cf227f57bed5d23dfd23f94f63f474dc0ace9 = "51fc948d8cd97baabba6c34a32fc0d3bf43cf427" +fb9d030c0a72495bf5ad0c5252ec8bceebff19d9 = "4e2f5fe97249b1f0cbffd35bdf08d7336e71c4bb" + +[28ea79d9-6354-52a7-8af1-38e01db141d4] +9d40eb0d7595db6f120a5e9c3d9a0dd4e2733ac4 = "09bf29ac8d6986baaabc2a57cb737ad99606319b" +b683a7df2a00669358c81abba9cf548bcaaa1a33 = "63ea7ea4863605f660c0c48aa58eb17784906e14" + +[28f2ccd6-bb30-5033-b560-165f7b14dc2f] +0c81979c51b15b86d0e889c9ea4ef94a338ee4a1 = "65838b652e74bc54b12fc24a58cf1ed8f8743708" +0ecddc23c2d4c3893e44fb3046e8d7290c68238b = "218b09fc65c9fddc1df93b3783513c2d53f257d4" +39ca43982c476d012aff412a87d319a7806fa56c = "e8e247e19f08e463ddb21b36b0a95a46c6306d14" +40f2ec87dc2212b628d602219ec108f097ba7df4 = "b1afe70ee5afc9b5ed0f62b307232c7534192942" +43c233a6d849803c6891b0060d70cb44ceaf13d5 = "f99242803ad18bc1fb1e23a6331674838fa468d9" +63cf4b453a6692655081dfd7df757e68b1e44158 = "2abd00da4e62d05a3f353423e20e3510228fb75a" +68f697c9a178d623d980407cb60188b0c40ec114 = "2ff6b611065f078d0ff66a11e7d7924c492b5217" +6a42a3c34aa99f0427b6c08f0f22aa46cb6b7fe9 = "c21b36274b6896c0543888b75a45639049ea79e5" +7a20a13d029560ad7dc95ec897fcf12ed1d0ca3a = "2138809b3f56d1de63cf1d5211606f4bcc250eef" +7c6dad842f227bab7fb5234d5c8c11d6467fbca1 = "85103ce811f52ee0a6bd51d2c9daaea49fa2d84e" +8cdb0582f5926ed4d78c6882a015e34dd9be097d = "0e6ce47c2b77491c7936b50b0371b648d8b846f4" +8dfd3d5d6c99ef29c01d041b7d837a2d2592820c = "a62f43cb40a3b9664cbe042ef390a6d634c89df2" +9d73744f053de22175f6504d8e59d1a2e1b5e56c = "b4874426a6dc28b8e7c38d36540e6a4ddcb6928e" +a11e4a9d6de415935f2f00489033383ac5dbf0a2 = "d7d2fb225931c781ca43cef256594478af56235f" +a4141f6562eec07ec85752af355e744bf1a3a5f7 = "5925fa4b78d7c9c3608c67bb4a0213575111d59e" +a92bcac6445dcb5a28f4900de776101e46a3e398 = "34c12ec833fc44643428404960f8f5cf9d7b83d5" +be539bd4af6d05021abf090d6b90a37aa086a22a = "a8499f9b7aec08ce88348b95bba7871fd8e0bc27" +bee2b7d45ff5f2623976e4c012cca4c7440379f7 = "0717e59580385ce0c95f710e53800bf4932f598c" +dac72318bf01a8ffbeaefb93541b504e22893c6d = "400157f679d1e5f4b6258fcf38d4ded870ecdfcf" +dfb745b498fad205bdc5eeb8aa98329b76095846 = "b363063d08adee1d07d33017e26b6708445c2b89" +f0b1cd8e9bb1dacc99c198ea2b895d656749613f = "7615e3a09a38065754f28e2b9c4716c4560376ee" +f73e9d168b0d139efa2953b1bad7fac808db2d8d = "3fe4f1a320705da231f801d90004c5064811ad16" + +[290757bd-39a7-5095-97bb-ca0f46959724] +28758bdea0a55cd05de3f01b3a42a37080d8c4c5 = "a2a528d39a6a5420d4a162e476cd0ce514bda218" +348e2a40ad27c82bb98a329b451dcf0479b86739 = "bf3ada02b55d97aece96b334a81b4e3bef2fd5be" +e130eafb87bd83ec7add0848df5320e5de3e9946 = "b513e2348a0468aa5537e8a772fa85b5e822a37e" +fcb6e8f3ea78c8b84d69edb3755d1d27d09f4701 = "ee14dc7c66bdc6bb1426f051442909e0766ffdb7" + +[2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91] +03700097a864588019abf743f3534c1d4e568e83 = "a381a86777a63783670b1303a501587c941ba25e" +075908cbb07b4a65aba4bb549f39367c02b16eb4 = "8da34a4c0725f2c18b4aa534dd8d1a093fc081a9" +0efba512a2bf8faa21e61c9568222ae1ae96acbb = "442e012a63a9126f0d06767ea80d821e1d40aed0" +1239eb0522827c640ab317aa967ba23bf04efc87 = "5d08e054fbf27aaacfaecadbfd6946d4b47ae407" +1c964a9f1f5e3211d66bb6796ec314b0dd8843e8 = "8f107978a32995d93babb9dd9911d02e1c11dd60" +1f529345823583ac85f5b5bfbe52de668071887d = "a4c3272a55d68b5376d61967a5700285ea03b3cc" +1f820915e96c9b5d784fe467f071c00236a60ee1 = "f0a73b00e3905145ff8c37006867a43533485d70" +1fd0983b0af4174a0fd42026ff68333015924089 = "20ee31f9cf8484bd86bc9cc604fd2130640d6974" +204195b17725056ceb6dd640560bc56ea7e59c68 = "fc459efcfa3e0f8631e72b79fa22c79cb485077f" +23b36af460cfd6c147efef9074a76a4e8cf13dae = "f5a8b465b5e000f14393ff3c5bb42267cdb73a4d" +2668b50a37ea968619a10e061b954a7240782d3b = "60fd79e5ff297e8e361b7a60cfc5a94b11aed594" +2a2653ebb64b569a3037400fac3a47b595c5c277 = "3ab7e6186fa089962770deee12ff3b5dd165a701" +30356e3001a12969b4b2d57029de294faa49c59f = "153b491ad7a7a305518fd04a8df6f462642acade" +340d32e1bfff30edf060cad08ee5612295cf7a4e = "4b7d28138899e2668548dc1eaafdb16a21b047c4" +36e5b0159efa59142310ab14ffdd30e07e91829d = "2dffdba5e44928c53328f95cb35b6563475227b2" +3885542a93d2de71a1102da030c798cd51749481 = "579807e48ba233031d3c914666e9fc051c22fee0" +38c62a15e2e3b24c732f9b90b7ded1abc83ce6ad = "4a8426d2108ed433f8009ac49daacb55abe22e56" +3ac64e65a26a44fbbfd82eaf37e9e084c40b2cc0 = "a6f2dd85abc85ab7a648eaf2be55122c14a0a105" +3fc1b86595e96b2c098e91bb2fe56a8c5bbec05e = "4dbfb4143270df431869c733645c69c0c0a23031" +42feefb84aa81d9f8918500ecf159dbee5bcb91f = "0d4f805ee251ffe119ffdbf8d97dc5f8d1ee6ef1" +46876036307915040844a27b5103a91ec9295812 = "c792646928ad9936d1a680f8ad70f26499a38494" +47c198b1dc0a1f9a6af822bb66ef6ce219e966eb = "11e2cfb8db1d26ae2a2494004c36b1d93ed7b13f" +4f34598291e9eb5a976479f15a0ae33bd298ed6c = "57e825c9391d070d25667ef57b844d4d7540a3c7" +506c8964de782d022689f625840a6704a46224bb = "5c57da94f8b38bfcd1e2d84b855a52786cddb5ad" +553a8ce28aec3ef4c49c4c1728ddd7d375e7fec9 = "878804280c0b90012cb1432f7b0596aa318ef6cc" +558d8cfb4be0ebea755ffd92ecdbfd46e4446d2c = "086fcc640d1bca9b1f2cabb68fceaadc5a9d58b2" +576b07bc0fc3a56b7d0018b4d87c77a4eb85d847 = "a0b56637637a9b8f1f99d222c219ebfafa6f2d62" +5e4fbd3c085231f304cb6704eb383aa49f57c6ca = "046e65eab2005c4fbd783879f7350e65e5e9c45b" +6353c322e60a54db8cdd296c6379ffec9473ea2a = "0fdb70bf08c2356e01805a11826208abfca85e2c" +6d588faf6fdf64f4fa48913589b9b13f66afbd96 = "52efc4a50bf4b10d738d3dc5918a46fecf2b78d1" +6df21f0699a189a70938eec809e96ea11e1771f4 = "4820d195cd378926a7a59e6e14727a394cc8f123" +6e1c6a9006964a1ed6e841eafa7d3d43e56e8778 = "bb622fe7480c43f5adce8473fefdb419a1fbabef" +7003962de11031e1df182045e9391f6120a85f3e = "8b9aa2398247421cb894945a34dfa79daba173c3" +716745a39b8bde8f8b48abe87a7ecb300022a0bb = "8183a3c46b660c7b3491a774cfba3b67593e1329" +727c5271f0774a2a98de1daa8e182fd9dbaa9e36 = "9764ad32f9536ed2f35ca3772574e962256ca1a0" +743727f04402e6004f21159a4ab9894e4a2e53ad = "ef1255b0f4f8ff8b4357421f5384251762e0c3fe" +74e8095dbdf55d6ed8322ae52d2910bfef52dc10 = "cfa5f1081288fc99804215a5d487dac978374b5c" +78f5810a78fa8bee684137d703d21eca3b1d8c78 = "4ade14f6e799f71fb6585a351c262a765eef7f70" +801f23f5fd1c36af011c91938a623187d1e8ddee = "3df8c7d3beef82d9ad43cdaaf185a3aa1457f5ad" +85b46d15d6ba14d1ef8703bb16223b0f5684abb4 = "37a2b42c60e63a79fa9787293e389a723e12e019" +87d1c8d890962dfcfd0b45b82907464787ac7c64 = "42fb0066a9c0132f1ed71ee811c55eb88a4e16d2" +8d5b84498e134de9e70bf4d47a0058086c241671 = "39653b48b93ebbc176bcf245dd2e403547834edc" +90c68e116258c36493618833bfbf7d5c46cd9c48 = "35f9748d84586c608a07e792b66c31877ab7eef7" +926f0a395a0c2ca3853d16af480b4e7e475b52d0 = "f62c76546037640b9f8f2ddc905730c1e885e232" +96cd82a5c8461d81ac4d14723abe7b9f075ac7a0 = "75d09d38b2444c08752b4f787b7bee5b6dbfa151" +99ee7c3d3638dfa18a104c89b9de00baa663abc2 = "5f7622208359d627268bb58997b1ceba1d6cf081" +9d851b704cc135ee4ca9bf68f9b0541d64d5814f = "883158cdaf371c92d2630da0ce0b9c73a84c431f" +9e5a83f7364ea9fb6201bd07e9c8b6bd926be4f0 = "63e1db03b40792a752f1912b5ad0716021ff67a3" +a06a39096901fe692a46e3b79c52f255c3fd0508 = "c8f0d68e23733f259cab883115ab6dc30d166ff3" +a1523b93fbe3ed5569a7e241a05bbccabc909be6 = "96df54fb649c28ee7e7078eafa24a6284cd20215" +a2ba466f0b1ba82ed45f35918a9c5804ccc11d6b = "5a0ddc8de18251100b59ab10e364d253f97708f7" +aa5851d83a5b1c5cb3969db0d3b1a6b0bc28b5c7 = "4784541992e77fd8a673912b4d1b411833e3c2a9" +aaa2476723b941a6e2d7c84debd94da98acc31aa = "689df477d4fa44bc0cfe4d75ed55db3a6949b4ba" +ae435d118a9fbd09f528c1b3c0d7a142890e8278 = "238e69cc3c0e1a46bf5521e7f3d48d590d84e22b" +af2c1279b55c179bc3130203d1bf3614ca23ccf4 = "1f503129b3c549b24901601e6988c8ef6edc1a33" +afa33d6fff1cb50e5aa54b0e90613d1b481133a0 = "dcf9fb4db43b5715601efbf57bd54f76347f09f2" +b0974403b8e00945345fea9a4b5943b824a59e21 = "cc4ed06a941d7e031e72d90ca6e8aef085531829" +b249317c3f2969fa5b8f7d1ff1347521309ad62a = "7d2a3ab19a02eb009e119b3c113abbe27e518800" +b2b5dee86eaef5745e05ecd0de9045bd92f703b3 = "8e866758b2457d7ad45c98ff6d0ba32539292a75" +b976eacf46c4e18d6f2fcce7cf77c897315027cc = "041ba5d583a7c5168b02458c8ea620c5af4e4e1c" +bf8e7752f8541e5f0f7ead514b0a3055ad0bce23 = "abae4c19ce940435c46d304d6fbe56f9125d58e6" +c5677e95c9f737eecac254041cab718596cee5cf = "0fc776a0ba91025930ba43ade73aadf86d78221d" +cb2668ba75d896c774762a323c1ffef0216c9b9f = "ec4c7a75021e8fa9497f7a7c7ff9c243eb0e8a67" +cd95f1807def6b03ccdf064c72f1be56f48c1f74 = "3ae8f34d7cdd3a42c2232f15e11d4da413db1d18" +cdadfc5ea72d6330a0f60f3cf46f51a4d775c98d = "3a13b417f7f6d826183615291312c7feda586ddf" +cf943919e9033b84ad1591307ddec5e5a6e451da = "ca77a5636098e5c94bacdbb752771b0b3461f28b" +cfe55fff535df4f70c71d23af0f304a637732d68 = "23bfbdbfb72f612e2bc871ebc4af9a04a4a7952d" +d241266328c17f4c588f6a66985d4e02f2741c01 = "8b86d978bfb8fee67a9ec23c33d90d13e6735dd3" +d2fb04edde3a8afa376d32b38381c86921f8c5f3 = "56c6889a4ec694f17bd226a5e58da2594004cf18" +d6b524c383b71024538fd68efa571f8f1ca9f944 = "b7c552653ba2b81e9d98b08d08d7dda20a80d5e1" +dbc39a54ee7b7174802c1f97fc7091c5c6d792f7 = "3e2d0a03ab363dddbea9740609890f6cbd693720" +dd16c108438a39fcb9d0968ea8d83171036df484 = "afe1b064dee0745c8d68e1d610faa38d787750b9" +dede3150b1fbb04fd0c53018685140c1d9d33c15 = "3de9b9267bc99685d225b294d6570ea988a020b1" +dffd8ae8a81612bc89fde1aaab93c7608aeb48c0 = "3c690d65a3bcecd69d85ed859c78097b9c85c626" +e200a7299a40e1f9d719179b98968542edc19f3c = "342c0fc5f8ed1ac41c65a96db526fd4b4efc72f1" +e21b766cad2440e60ce56144a0aa776bd5a7cdf3 = "dda0935d9734c080e7b61eb34f7bafa1f160b98f" +e6411b644c02d470036d44fe25a49cdf89a15fff = "ed31fbce010eeb967934a1b25f37afca62c28d74" +e906bcb386a70a13bdd95571ccace23ecfdfd0d1 = "c2d4da8c46e5d2041ab7a98d983cb3a11b562707" +fad9642ff8b7a39b0685db4304f137a518f82fa9 = "78da7dcc6ad3aa62e07e50cec4d869f838d0d155" +fca1ba5720da85e054801f9e5ca7fb06d029bd47 = "9f934608fa99ead96c426556784294720fbc2a8d" + +[294b8cca-700e-58d6-a0fc-7d74c0d9f51a] +4d9b2ca64127ed457a04d3d7768b151bdbc7cc8b = "24b1d0d718a574e3d08b3b98c4b325fe1e97c992" +a7a7582690ba5fad62ce784daaad945a71b6841c = "54d0e7b1ff9d776dc01fb9862954e5fea1d26773" +dc78ddc33aea1fc296766681954414345c2a3b35 = "142d30a3983d3084c51b762d15bfcec0c3584f2d" + +[295af30f-e4ad-537b-8983-00126c2a3abe] +0ab150ed5320b01851b3962e4f4c3a61b2e0b233 = "6e815903a237dfaf27c6a3e5b06402f12758061b" +147af43699e3e6c2a5bf69788b47c0f9378f91a0 = "458b898dd50325115ce43b84e50f77576da71108" +17bacf0da01abd04e79dccacbcb8f4f706064c4e = "61e80389c9f4e7729c1eb8bbc4e0c8d3a5380283" +30691f5c61062c172dfc13d40ccd01c34ab23235 = "3009298e8662dcf915a6ec7733f7ae9185b58797" +416ff37ea2080b0bb4c55b66f757d05ecb412d26 = "d30be50f9b192910490152702da9fdb39029616c" +454379abaa01dfdf43e74a4c5690e5ae6c6291bf = "f529d8cdcf49d214e04e1fdc60df0bdfe908f74d" +703912621fd59b21b738cd21cff34d35a797892a = "84c823c7c6ffb25231eefc9b8e8ee0f97522a091" +76e2ce5643e1a35bd4ea680ac5832d76abed7339 = "3b05a3a5f52f22521931cd67362d90c5c00a718a" +7b2266cdac3a6b1d8060140ce89cb09cdb5ac8fe = "884787b371abf0545a318d88c7a48c9ca1b137fd" +8bc57c1ec6909fb14b72fe34068320360f5a5aa2 = "9cc60a44341f57c923d021246a32a18c85c321b9" +8cb8b190ac3d66752db06e8ce39c70069e524980 = "fe2d8b511df29c1aa4cc7e09d7c1ea2c845483e4" +9f8e8620aade09d6d8cacc602d7d110915e86915 = "532f531789f8ec3ad39d5eee5c5425980b566106" +a8fe405d983228ba6f241c4689551560f4f0de14 = "569dd46d6c78fb59bc1744d11c32945db6789749" +bba3dd267b61dbb9ec8b578b305f410e9ef02f38 = "b302328cbbebc83e8615cef5d68585c4e4c40030" +ea5457d98c692f234200be6b8afed1444aab337e = "20c79d49d6d2448ff4ea73f6aecab31c285d14b3" +ed7dedc11b9a9cf8e7c8ab5a872e1406306cbf14 = "5fe4d1c59798b2e939d68af3f864a38a550a522e" + +[298d2fe5-ed61-55e0-b3ba-7e58c5ff2f7d] +b8ac7e70e95237478fa47957e808a110dd23d9cf = "0f0b1f8c2feea0ebdfd3d98144ad7998e40d9025" + +[29a5b9bd-5f4b-5ac4-b55d-354adcfa5575] +b8624e6585796956374087fd8277738e02f357d7 = "5c28f13e8b8399e0d3f7c575dff8ec22c17f3cdc" +c520867e746416be80e3441d413bf57c56b2d23d = "5b0fa0b4110538621827abe443e14628a6b9e5c4" + +[29a6e085-ba6d-5f35-a997-948ac2efa89a] +02c17b0c7b7c89a3cd44c942d3ecd6766c3e5b77 = "a59bf460665a2ff8d1e448f8b927d61ea316a1ed" +0e2ddea9d6ecb88d9065f324caaa5a81a87cf848 = "5c29140590cbdf2d57489a3290b3ed5756b8285d" +5b577f900f76e3329a95e51fd0ceab8f3240fa10 = "49b25279547198f466a396f2e3b7beeb2009c930" +64629321379cc9f4a3a398132a60cec7d06d4073 = "b79257445cd65b40113ea5b6b739425f3e11912b" +65379cd0115c120aed79b9e2ddff600d0fddca9a = "a3ab7a8ed0f1b1f5d97d471009e4b399da8c53f2" +6d3e43e0a000daf65d62f7fd9336e7226df8f4b9 = "f6b32f2b622fc72ce71341cfe266f90a54faf349" +8be4c1ca2ced1944354b3c0f7e45c312c9cdd0a8 = "4888e0e3407118e89c2cc7a751f599ede6524ad7" +b79b079e855b19644c344e8808f774c553433f7e = "51930213b059f835c90b4a2dc2bc2d6db9e5adab" +d0eb86de97ce86d220027966ebf956383ab06dc5 = "73a93477266e134f87c06ca69450ffc10b81a84d" +ee0ae2c63f7ae43fdb3b5f09bfd4a70b714a27b3 = "7c27a48840e8ddbaa64da55e8761bf61a6052471" +f68dc9c7c84c350b6ceb13bafc61e2fbdf0b826a = "2d57eb26e604db260827d4009f3b27e639a8bd2f" + +[29b9fc01-2d52-5901-8357-88823a8aad60] +67bc479e4a1c6c2d7121ac995a4018fffc844cae = "f30d0301bba75913c66ea508f49aea486144cb42" +6f89f64f8e2d809ec4dcd90e372fe9627f8a369a = "ca27f305199728092623bc2dc71ddf9c051e62ca" + +[29fbe528-8531-5c35-ac08-d2ebca7928d6] +01a3b85c4ba9d73fe93582e87e9674b9f3c77851 = "762522e4aeef351c8aa343cc548e79f09da7a8c2" +16ed2fc0232b77c23701c61a390784e69c87c478 = "3d47e0328d148867a1be237ffaa3325017e07e65" +28565c94adb55cca190082930aeb6dcf610a1f67 = "ad44c1d4359b379c4e4042627f6cf548b8ec9d86" +5ce69367d610435cf747718bb4a5ad762ded87c0 = "bbc40dbc951ad5bae4ee38002882d1fa74f1c6dd" +85bc1cbc70f6769c14de9017a20267366595957e = "dc78bc7d0eabbb62ff2ac38c5817101c0a16141b" +b195ac29ae55c5a6de69eb4278023b71b3b1876d = "5be322c1eaceecc3543f44d5ff33e3b9011800bd" + +[2a33fa5d-563c-51b9-8885-f62d16798090] +8511788315ddf17335c394691dc470e9e2a82a45 = "aeb471151aa7f2e46862e4c117120b7705307c49" +b118fe1207c47973d53b9628ec4baf5c6af3d735 = "ec75cef7e086323988a44eef7d2d7f7602500714" + +[2a4eff87-6e1e-5ceb-a32e-3bc6a5c2833f] +0aa92320286ac7f4d9cb5a021472a9910f35be49 = "6cc61b59480867447a3c169679de438495cec6f4" +166eccd5a3295fd2920706586e0bde4e00ae532a = "b5e7ecf51deae2c0a84633414f1d44d799b2d530" +1a684001fa87b690ba57fbe1d5b28f2407006dff = "031f1bfcc8d68d8086839ec71105985e22502542" +2f3aa049d09e58af44790d83e65752eddc121caf = "caafea8dc8eba1f2f2500d1db6af9b846eeb542f" +370526dcedcf0e4615f55b9e3ed77bc1670c7aee = "3a8fb5aa3e91aa3cf9f19a415ad29b0a9e5bd16a" +435c7d78df6c3f0b16f046de09455260dc3130c5 = "a4a5fc2e12da514f5149fb68552cadb5e25733b2" +4543b2a37702373d024171b5a6d37f26c7268531 = "b56bdad9c82e546c0ef7ddc09f3b6115aeb6023c" +519f02b90a6b89de1bc2b06d225f51cb972e02f4 = "219d3109827b494fefa44fb31ed63550acff8ca9" +bd2b12fc1a1bd163aa7aef962f25d89ea6b78623 = "825ea5164cebd766e2c341627b9d853fa23d171b" +c5637219405c914deaa3ad0eaee624293a671326 = "104159f4891fa205c2934603a52c8e7079158edb" +cae4c0ad789b767a2b81432428957f12be2a4340 = "4651e488fbbcbb5c6a2028d6ada1622993769043" +eb58d4892dfd417b3d615488e4a4cb4d34cc9354 = "056b0157cf7eaed8430a39485c610312c306fab9" +fd3b9b7f6c6a193eb91ef4cb70667d0f9924dc9e = "c88548e440830f5a1f5253357757af77d2f35af5" + +[2ae35dd2-176d-5d53-8349-f30d82d94d4f] +9596c7668840aa08297b0ebe1c75100ce00ffd96 = "0cd8b4012b55986ffc75fb44a60a4b94c30ee257" +f9297518d83949f2e0e38c8750873c5608494cf3 = "58cd55205e31a162c72ae3138b98a8ca4b20ac8b" +f937a0f9d2c90a6243e9ab69db877b066bfba55a = "72ba105e56e70a297faa59083dc42aff434a3b89" + +[2aec4490-903f-5c70-9b11-9bed06a700e1] +4e43e7f4822e423cc796c051802e419605894986 = "a25b58cf4e64ca6f0f87d9e3b7765750a1bc8b87" +4fd3a525bc19cdcd86d836af03eedcc6e45e96f1 = "3cff6ecf49aae9b7092f38cff941591ef6553333" + +[2aef5ad7-51ca-5a8f-8e88-e75cf067b44b] +1e4999f0bae86987630f39f64e0753d5412b2a94 = "e28c081071760f22ab4a93381cb6429c9620f862" +1eded27a27b4abc6cf29ccdaf65327c5d4a7a466 = "85d0362c3cc2e959cc71ece10e9cb45452f0453e" +3f99898151d433b1600e7486e9c2076b5a691183 = "0024c2fc8e39c45a6a66c0e47d615c3ade805635" +777ebeebb2715f52d2369b74a597c713b3f347e6 = "520a614ea0c2ae8a025658ae3630d18c510d60b5" +89bde5df1e52402b8355e46a3f8ae9866738de2b = "aa1fc28cd785f7ac4a74f0df900e6e6cf1ab5782" +c8a6c60281343ed7b9984949a5dfc976c8dddb18 = "cda3ee6777d825643efd553a16c37d57692fbd40" + +[2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7] +17f606b3a23e117cdf77b75c49f1c9731366e28f = "1f8e4f2dd17a76ae1300da098074c3aecfec9d7e" +1d17204b1b2cf15f2289d3c3190d419941ef4ce6 = "608665061c51b73e843edab3a7884c255d730e68" +21bc9e9dacba4d607ed686de49adcd3529fb9f12 = "05eff2219d8cbc2d3538a7c608bedec81bcd0242" +4ae5fdcdeb9413deb9a2a7787b22c03e4362d93e = "8bd25ec8e759950e670ef60ff2aa9efc2cc8e554" +82356e2f45005d63439fc3ae2338dd2fd1331fdc = "5e2354a41d198910aefa85911feb5d581dbfcaf1" +b2e5208b2488c3544de6b9aa4c1725f3b2ecdd35 = "89d3e13dc6a638ee380a3a5b6306fd3b1c7e59d9" +b373f99f52dacaa640eb519757a9fea01edd0f92 = "5cfec2e6cfc9dd0b1d86ed0fd03d3138ed90096a" +c37b7a7846e13cf20ea6ecc962c7d2c9d1562938 = "074561ef2cf492f1c32ae8d612f3843959337319" +d530c399b9bc68894e30f55199ba633872bab798 = "2576e12699275a1c13e32efc552ef287247016c9" +ddaf44350873ab86fe89018e383c2fbb6efabca6 = "64dff6e69de2e70a6488b12339226f22db6e2c2a" +f40bf8741fe0fbebdc6e1d1a2578a652b5d0088b = "9efdaeb33417ab35a6f7fdc3bf83742d7f771be1" + +[2b3899e7-9068-5c5c-a4f4-f7d195ee295c] +679101713ec88f3b8edbb6f5f9cedd0a6b0de124 = "d09a9d96d5bdca5da037819309bba251300e19f1" +7bedb7091e28ed821af4c2cf622861c73599d917 = "b8d1fd850f36fca83f9b09660b3db4f5d69e685b" +8dd082389968cffc221c967fe7e5347890a2d9de = "e77b116e40472139f6b773d2c7a515733f225ce8" +b39078af7dcbf6d01cf13d725a29901bea047c22 = "2198c72b329664fea9c988c27031571c42a9dd7d" + +[2b5bf9a6-f3f8-5352-af9c-82bb4af718d8] +24a627c9238e2edb75c85bf922d280d326a82a66 = "504e5e34d5c984a6e59e3593fd2eb119ea07de47" + +[2b5f629d-d688-5b77-993f-72d75c75574e] +0073d76753ec5f399d1cb05ac909e19e7f505194 = "5030a60e2eba2cea9307f8dc98a7a5fac2754ba9" +097119978b61710328f42606a78fd37fdc2a0d6f = "68b8fe6164f6bcbacb9d5cd567399402452a0493" +0ce78b85b600ad7f8f5a3514d88a253eca2a227d = "2505aef7ebc2098f56795697e94b80ed3cb5df85" +0fd1c7a6083510fd2eff04e686bb08234b9441d3 = "ff1f7ecccea893359782e7b9674671eec401238a" +107eaac9c6f261397fe36e9883bfa3f5738597a1 = "136ae1cb62b45a9bd32af1547751ddb2521a5ef8" +158eecc43c61b05e4062778d074e2c6f03074fc8 = "4063fa9252de5acd9645884a34ddbdc4bffa326e" +18b8a716b19a375792f09569218892881c7141db = "a4ca64f39e9c125bbfd78ab1c703005d96eb1e57" +18bae8d2ccc72583fce9be25b1e2e126fd9629fd = "d9cee22f4547fa374549138060ae06d074e40a0a" +1bbf95d3beabc290df34b4d3d067b48f073d0d11 = "5f29d6a4070a385b5e2b734c5d6507804ff62386" +1fb0e96dd16f5eec046053dd40984bde2ce9ce3d = "fdfd0c557291f4cc7213f0f279fdb478c01790a6" +224d132d688ab881d0e25a90fba15e947d5fb483 = "7f3a71857fe3fe3cbb2ebc895e600dc299859037" +22b8650f00ac44eae78584efbb99a94477b86c66 = "70952370e1d39697d3bb44bf270ae4631c5789b2" +249114216a1f0a5e470cdc0579761f3b19090642 = "899ec1df550f2af0199cbb40700ead762082a8c8" +263d46331a896f26cf1faefd2e09e64525863ad0 = "78fc972437a66d3dbaeeefc518efdb5062529e8e" +266412eb17414c649c72f8a837e1a9aa1ad1f639 = "5f09d953217c92837eae70f117881857ebcd1d91" +26692d95b816977d5500343b7116e696145a3428 = "ff08671a5d8852b442e72168235672e340a4a07a" +28200da52fefaceea58cb8c0b703e25af7de84db = "ea777440ef18dbe4a495cb49e0773e3de3fd0bf8" +31bea309a404b3afa125de520bc2660c250c71d3 = "95086186b0952361ea47a714b63fad181e5c50d2" +31d0f54f0627dec80b513e53dc8104ceb7d765e2 = "0d64db6d0dc602dc50de44de9b46ec5a7b9a0780" +3507fd897d9fbc81e16ef9394574c77c40bd1a5d = "c259b7ba2a4f8dd332512dd051283828bbd277f5" +373998562ac67b36e8e4ea150ba03b6af003b5d1 = "ad2cb9591b24929ebb37a1c16c941f7d6a1492b3" +3761deef8f6b20772d223db5fd3f624f07c985ec = "9cf46be3502c061b6972869636078b66cd65ef27" +38ef291e544715ffc98c906fd8ab1e27aa6941a8 = "021b3a4284b6d15193f9fa10e5f7914e9ed9840d" +416323fc3cb6721b7467b25d36bdfc4022b5d070 = "5fcbd4da4cdf6cbf8aa9fe1014ad2aa1f314b75b" +443352323f0bbde6000be88601e5000709239d30 = "6332967b47eab5fde8467c8abc94f34df9693437" +4843464fe92d951d65284d36270c6c1a7be73708 = "864c1fd8376b12314ea9acedd9b8e568a1e30295" +4a1307f62b069aa1fda4fc5f9319619573e2e66a = "60d140cbf0a7f085af90e78ea2fe8b6bd43c0942" +4b7713fbe2e4e2266fb3bd8b5f2e2af92ef6f1ba = "3cd6149da08856470ae3e97f5cf6c10dc7e42779" +563f709c7fac9cd851afd7c64db7a7e721ce0711 = "a75f1a80529f81a6bb36e2aeb4ee786e5ee9b1c8" +5a82b25f77f3004798d4bb0c4892b5e25b7f6561 = "93d63a10e4f852804627a83e5fe92c95947f343e" +5db7d05fa08ec40260a08ebc4a158b7a0219ff87 = "1357003c7d372bda5303002a4fc9765e4cf42d3a" +60718a2613d2cb6160bef2922e98ca4f70a86d50 = "701ceb2d17c7c9ac04c7c279d4c12ee7d3b88fcd" +6125789a0ecef877c33571c554d3dfaa9fb99879 = "64fc01a2fd6dc5465418c037bfbc2a07277fedfb" +6146d23c21fd44329fb405546317a24e7eba7ed5 = "1480266444cb8d255d357c7847505f986a0a2e10" +6859cb2d859eac341d0e3d3ff0b0438098c7d757 = "4ca82e01ed35f4d0f3ab1f677b44beeb54705c83" +6b2d436b5780a53dc7d661663014b01366ad6547 = "f7e007c15c267db6a092397fc6016431fb55480a" +6cc12def8af8e7e51b458d65f48e43d97aee4af1 = "cc7347c5e03a6b773bd43c3ac89939662eefbc83" +6de09407a74e30b6d8c24ca758b7d6d796ffa39e = "d94647fde48dc35752a16e3c179898c695a89d3a" +7131e45fbe6f9c0f585208c4ee049d6ac6774022 = "ebf7480d8461e2f36bfc252a0eb1cce5512d38ee" +7415e3b09ce23c05f6663c6ffa9bf4e9d3bb31ee = "0a1ec9470874fd64f11bb8317be8e885c024be82" +742048aff0532c69c082185f078f25ae5b1695bd = "c48b70581a6335798cbef5c8686fa1b336e8359a" +7515a9eca2f3b402e7758b46ee92df16f627842f = "f7654aa32d9c1f3170d98c4667e5e734ca06a98c" +77dcc498fe8f1268914b80a601e44ac91cb200bf = "d77ffa703af4b9ccec4022db993740c4cafae621" +79b57ce6888720b397adcb0e85d84b9b1e67fe97 = "e14184b03a046d5e5e79224e2ece6be03feb1ac3" +7d4bd056dfffb7f41c89b7e5de31d8e321195eb9 = "318f6ce1f4d217e22bd546c1a42074eecd180b61" +80df0f6fe831a819fa6f549d72a3f251ba96ac32 = "833d0037958a8f758c94ef5df0f2df08dffa779b" +81f1c22267aca811c5818b628ac3c6225897c673 = "9cab50bca9164c29c969a1d0ae9b90814f41557e" +876cd17228d6eff8f156ea8c191def45e0eac2b6 = "f716b33fd76f015c0956b4c0371ee25dfd96e707" +876d3b96b269c8d58941cf42719ba5e1c527911b = "b5e9e2caf0d8641c862eeb8442d07e28c7559d63" +87d57946bbb44fa2263536309a9cf5bfa5afad36 = "c11019255d960e547182ef6505ef56144a8128b2" +91209e3175758a118576152401ec324a18246312 = "aec41487f65af9685ed65f77e485e4220a6d3d62" +92b19c6276d22acdcc2770338b8f75cd69b61b1b = "356ad9d02ed2d5c5d97ef69505c6549afc4a33f0" +99e077dba8345f8490f09470da328dc567446f8b = "fccd4150ac8f6ab08810d7eb99c6c28a4dd86b42" +a6b0d49ed2272f04ccb43692f8e4adc4aad39cb8 = "794de4dc36b5ae62f8a5a6ef067f89ddbff020cb" +aacf5dce6646aac1843b0fcd5b22c550377312ed = "c1e9611cb06a350d23b8f443e7a5c1cd98083d4b" +ae82a17ca286ed1f262f3c574718d35808f5d9da = "11507eb11c010a798f050a3c4a9d283a5bf80544" +af084e64d4f954abc9098e6514528be3271ff89c = "71bf6014e9545c6c5fb95823afe7fee6630f0b89" +b0ad76b3c3b514408b0feda124a9049f7230d3f3 = "53755d2e1208626b266121694c7ac471b01c2940" +b0efbfdfdc7a713d48d1bed563795579fb90f3a1 = "c28bb03c4b845cc4c0cd82848b710ffbec1606a4" +b12cdfdf5d45ff6ec4b290d0294f50d3665238f3 = "fcd4d765ecb8c81416f2e2e8e7c407c76470058c" +b40ef2f290a137044ac9f13decdaa3e816cd6de7 = "70e3f2b79eaaec9474e7b683631af8a06b9f24db" +b5f313b8b6af06146c6a510609371927436b134e = "954a16bcc06ca1ba41b077583dd16afa5354408a" +b7fd36438e1413b31aff996045cdabbbad3ec4d3 = "2f9676e68ad5b971a6342fc8978aa8a8f10556ec" +b823b1fd42c979f211da514bf958ec6c0abaf536 = "8b00e3182c1b8eaf66adf206332b3f6ff1bc87b6" +ba96c2d3d87403c8c4dba43056a4a6ec8ebc902c = "00754ae54cc7b6b67c20c995f42511f3e155cb64" +bb95b694f3e8dd94c509131b9cf4b899880a71fa = "3193429648ed91a0212d1e4ae183083e7d3cb03a" +be480ecd3167104a6524e9222bf1b384622d7724 = "b032e3a4d073bf50ab0fdc564de118a8f073eb56" +bfd3315fe42930b16d5607b86720488983c253f2 = "0e2ce723bb4b72c7703260914dc8ab846dabd359" +c3a26e9248cb32232befb8f945921d1dbd1bd0c2 = "f3eba1aafe28b9506ee71d517841d10e828cd6ad" +c4949e4bcb2ddef7707a22d6c8b13c3f8170ed6b = "2e895dad53fe31a7055cd928786b360a4cfa0256" +c991324af55976c9287dd93762fac5fd45503c02 = "b2d88e0238823d8509fac2b2499f8b20c383ad4b" +cb539fae5bc9228efb7ff18398095d2821456b64 = "af069c5759122e00c0b25014f918b5ec125e4bdf" +cb89140e015df3630054871bf9aef4ed9ffe7d39 = "459287ce73855a042c3a964336b782bede17c1ce" +cfd4cf9f04f16ea392d8e32734eff5562094c5c7 = "7c7aaf3de015c470f4180145f085937c03d131eb" +d2f221bc300f2eff70edb8d31ef6debc1a55e2fe = "23d4655135d9c4fd5e23a5dbecd07c4236de48bb" +d2f77b2df365d31f4f8bb7c7a7d6538df0594127 = "e23207e1d5572ef0cdbaa9d311abccc6ec082ffe" +d3310cb7111452257a930dd872ddfc71870acdd6 = "37103ea0e77d9b3e3a5a225cb7afde57f98c6e8a" +d70aff4d77ffe95f11be4e067f5ab7f298001cc5 = "5fdc5559664b85a7dfbf7b1f5645f9b41e4a6c39" +d9626007728dca0580b361ab23f2d0f6d6409e03 = "c127f297db472f1332ec21c70a53a0f20b014d6c" +daf99aa25cdad6d304256b30bf9f2bcc84198f5c = "f82d5f2d7202eaca8d79ad029ac23f886d7a8893" +dcfc2a38b2eca7e75726ce8346ef21471c9c59d2 = "fa5c7d19d30b71dbbefc9c72f6a3c438f250da33" +ddfa11fec443097624214ee5eee454183d37fcd0 = "594afc90728b04a52658d52a00f6cb33c541a5c9" +df01c646a3f8e38fbf4d254d1091520c5a2b35bc = "e394ab45bd36214c3494c91619d33a6bc66634c0" +e0d9f4326a69cc38b885adc67eb8989fa81f32ec = "5b396b7677089fa0d51a71c263e7c788f12bc839" +e344bc17e7b5b7ea0fc25299686d73f175d5df12 = "19e67b8742b26c123e9721abbfd4091e9c0c3cfc" +e39e0c45f77aa04830a8c493754e873aeb4f3a42 = "55ba070e1e1efe7369cd6c150f905f9891aa3ca2" +e87054faf09e6d720f59ccf6b8bc11578b1bbf94 = "c0bc097f8ae4d433349c4d2adab53803562ee010" +ea347b8d887ea1fcfcef06c0b5a4fed44605cdb6 = "4be42ce092ee6bd763a25c4d5f888b949280ac02" +eb3c5186009e8d575f9855430197315ca3c5da0f = "45a184e92d693e846198e19cb75687b585be1d82" +eb6a836ef2d5e7ba94cbe7fbda9a59b81a2cbe97 = "21782415bd7d7b6a974a7d7621a146691c517f9a" +ee959d4f1133a42649a569fb4941d35244e28890 = "740416ddf95028b7c139b734357ef32ede324017" +f44ecb55cd669a9e2817e27e35be7a138e28e4b1 = "80544662d4f9ec7bc676e5e41367450ead4d79a3" +f497cb7672bfaec14badc0244ee3b698b2c44c8a = "3c283a7a8cb33218cc8c01ee67433a3b8dd0e0b7" +f5a8a8b23809c4eace6400919a0ddf4807cde2cf = "930e48a56621000692d7efca6d6b3e79c50e0c14" +f7603656bf59128b3a3146d04920c70e841cf726 = "20592b28b5fb9e65de096a79846643e0979cbe55" +f7fc25b5ac3a0851b4f6971e57069cf9c66ffc4d = "2631d6b44dba6c7f64eacd04d3d1be3dbb99800e" +f84c545d2cc739ae03a6b0df68c105d98ed680ef = "d252748bb4077b74e7df0fbfe2e4528ee6c83825" + +[2b727f88-579d-59bb-b93a-095bc3108f36] +b4d31cfa307252c50a64c1d04c9b4368df46870d = "aec8dcb552850845f0c09942542bbdc274881a65" + +[2b7a1792-8151-5239-925d-e2b8fdfa3201] +56324d68f84e34c100f2bc05789049f0114258f8 = "4bf337931a0192ecbe731d1b67baa62ae69753e6" +c7636ddc1a3227ad460f34ec06b5c1d4fb568152 = "4ae16beb48985ccc7af67c424588d9968b7721aa" + +[2bd173c7-0d6d-553b-b6af-13a54713934c] +5eb7d11a4a042607b7b83bbe859b8aa6206053b5 = "0f900265ea17ba5c4814c874aec0551d81dfa67c" +7d7f65bdc2f798b5f9aec6098c8559a824aee4c1 = "88fd14646a7c832bac6665205bc680e60b1f26fb" +a430c60a2115069889f56b2b1637ccb5907236c4 = "010b7fbc79420eced5c52a66181b58ca1fbf43a3" +e777aa7b4d71af843be1639bbc20d6198f3fdaee = "6cba1f6ca4cb3b70783a22085211b6d15cfc5859" + +[2c0eff9b-9a80-518e-bf77-efb53308e6ff] +546a91009d7e1e0deb7f4afbb6ab726fb67b151c = "369b807daab0f12dcc5fbaaeabf19abc8ff675cf" +9711fc747efcb1464fd96675eeede02304a17eb6 = "03ee00595b9360f3274b70beeead6843023a30a6" +9a0820f81eb220df53dbb2aaef5764169c20a210 = "9e0f0536a12ed06958d5c1177f4fabdb1bb68f4a" + +[2c79eb96-f1c8-5833-9e83-ed2fdcddfc0c] +dae4c209208ff566ec3b8b0f12d23e7e1a8b3719 = "fda1bf2792484116846eab609901108d213d0cf9" + +[2cce017d-b860-5b64-a7c6-b523e7e6e8b4] +5cb8cd41fc2966afbce12fcb1c9647c2cf36f594 = "fd7f554bd9e55868aaab71b95b4f9ee05afd32d5" + +[2d0ec36b-e807-5756-994b-45af29551fcf] +0b0190665b22c6af82a19c04527da706b28ffc98 = "5290506c9f6b521a9c9a7807225c66f07df9f95b" +b1b763752396dbaf076264c9df79d391301cbe9c = "d819ccb13a9f916b3e9376a3a64af43963e082e4" +e18efc7920aee767524569539e529a86da2ac703 = "8345d62a4cf295d85fc56aee81de4b9a4a770796" + +[2d3116d5-4b8f-5680-861c-71f149790274] +5ec71525b4f4878150b9e7ef2dd5b3a765eb7efa = "f178f6c34231fe2275aaa0955bda9970b2d6372b" +88b4871a877920f9c1379ea77e579ec675f5b8b3 = "00344b943f0a8a3403251a73e064f9ca1a43f2d4" +d12c8728206fd37d64e460d2631d16393f0f2cf0 = "2c2290454bf2043ab45a7c48c19d5a119867b364" +ed79aad8c8a54b1aaefe4ac925cf5fe3fb7259b5 = "7b4040c842046dabb8fb6362e8a65da298b6f7ce" + +[2d52b4ab-c3e3-5ee9-8cd7-16337136d172] +0c4d1518f09a7200068311dede1fa65aa4df7a2f = "b5eb98899963970ef53cd40d51ef2ff6096555d3" +4a46606490fd02cd14bcf54d4e02175fec1ced7e = "b465b5f7f9f38b7150945d1455584b1974a0db84" +59ffa795a2c732af6863a0181ef768b89bfc6962 = "b563196981dd563ed91ddef029d50897c91840e0" +7fe183e57da8045ec4317a54e8b3f887fab2c355 = "78a49f0b3ed725401b68d8c7946681a89df930cf" +9c37b3bebc177bb18430adf5c445508596c9fc76 = "9d9a52c28ed94d50e917a20083515cbeed11f92a" +ff396c611bfc17e836d14d667feefe2ad74a2554 = "7f643ecdfe9ab42ef3dd3d8289fd690493732d8c" + +[2d691ee1-e668-5016-a719-b2531b85e0f5] +1f3d5b3b252069a1627b6e3446edcb26bdccc5a2 = "3bb3f55546b8251598b157a9c03b1c31b773845b" +618b1609ed3bbd44ec685092bbc2032c09d1de98 = "589673418e6597ef3606cdd8e397d402fe7dea24" +6bf719464a50d7d80dd612969cfa6ff08ccf708f = "08437ec937fb8628beeffc2934c8353437f033ea" +aef30d3409478169c9965d3ead1da696f423800b = "d247a68139bacee7c2e40ef814cd3e9d4cda1249" +b4a63b37ce9b4048ca27d3de1d80b63485ae3a8d = "394541b21886813226b5d26ebe9039f5fe6c1b22" +d0c5ff1892d12587c0ca3aeccc6dc6372c3d0f32 = "847562d470ef5745b81d8c4e9f0c2c4a9b2792cd" +ea446282f1766208e4374942db88c72a05b835ce = "bba5bf2793d1245bd702f344122a96cc245a0598" + +[2d8a0fbb-4798-5e24-a1ee-cf44ecca4972] +f9fb1c0c0e47c4f96daaa65b1163f7a0807317e9 = "55aef286e947920c2904b96fe02ef87c4691407c" + +[2da68c74-98d7-5633-99d6-8493888d7b1e] +06932bc81ec450ec447c4ce3b2bb3cae406f3f86 = "c6dd260061bfd5224f89cdd30df551cbdb793033" +2d5c3ed3f080d12e7532ea8e13428230f55e44d8 = "c0531c743d34e0b4cee1e684d0ace6483494395a" +42945ef45c1777c09774cd720a8641f6e489e660 = "55c4ca4dfa17f4e80b90ee97e4baa9205a266650" +74e68ff3a5511f1090a33829fea4fbb46c0da978 = "732eadb24eddb950b004ae9e73b0977b9d1d3dea" +9d7e77294eb1e7ff259ced442c598fde39adab6b = "6c631635633e0546d32ec35871b1d62ef436eea3" +a279a6490e27cff374bb77cb358a2fc458213190 = "0df104e289c725efc537799d1c7c5df6f3751fa9" +a937e5d7e9138591e060cff8e4156ea9af1c83bb = "0669136e1cf7f2c88ded7a9ab28be21261b7eae0" +d8f5bf3df381dfff389492ab4a6cf57f4214d29f = "6cdebd5880bcb8d461efdda40ec56e2df8af3179" + +[2db162a6-7e43-52c3-8d84-290c1c42d82a] +487307f30024944ac1cb0d980f52971857a6303f = "6d0a2d8c3f74a55c468e5cbfdea46d210c9d3565" +82fede6851125287dd1a2443d50ee116036cbfc2 = "90e4fb5a885ce1f98126040a6d4b9e1820973b28" +9a2dcd45d048d45695b0da08a761cdb9381846d3 = "b7c1b8c02f01593182cd30712a3fd8ed97c6a2ac" +a76a1c6b81bab576be52df6d3c57b78331cf7028 = "acba3cb06e5c7b3326e1833e5d2ce1cf0260d3cc" +b2415178cd37f32dfb74d6402151dda3859e7076 = "19a343532adeb69174df8c91acafa58592abc300" +c6fa8d8a1ce548617d6da3cadf5b87abbb45f06d = "7e1e076ca3af38e76dfbcf531b8b3979c870f71b" +d661a430617111b365c5d7579b2ae0d9547ff310 = "b80af7f1de7073e29674efe7993b952791381c81" +e9dea64ca3e5868d4822d0b1ae09a1e08c8b7cde = "0fb39c913d068c7653a1f33b9b61bb09a042abc8" + +[2dcacdae-9679-587a-88bb-8b444fb7085b] +09f8838c3c391582825ee2299cf6304c9f49dd11 = "a4ff8edd2671b65fc72a6cdf24dafe401cdbabf1" +0d0fccbdc012264157f4eb7f15c6e9b1c228c9c6 = "f7309c24a5fe5f85b115005e76bfbed2dd5eb49b" +24faa0355a1c96790205f6c707d38b5917c0d835 = "d963edabee920b06146d818f18a6c6dabd0d3c37" +9f3c402f5223b4bf23acedf208953228701264ae = "853ef31c209cdba661b1538d6988885ee4bbfb73" +c3a4240be3cc330d405dd7725a41822101cd01da = "bd94eb2612d59546d80398bc07ba301adca7a9b2" +c654163d3ff5cfdff3bc6531f5c3391cc10b00aa = "58edd63407527def5446b77fec3111c17f59bd1d" + +[2ddba703-00a4-53a7-87a5-e8b9971dde84] +3632fff922519d6599c46a4a893a44e9c8b71a30 = "a0f48416a0d5dd1df4f4a898f4c05eb2fb7e745f" +d863e5680a855de11f0b028d1ab500e3fbfe4e4d = "34901a947c43711e2f7a0c87e2b7f20c66c33e0f" + +[2dfb63ee-cc39-5dd5-95bd-886bf059d720] +3c7d2760a36a3e03a8e3e12901b411a69cd97f86 = "79094be09feb62ae90e3a5f7c614ef03d0bf2912" +47e6b14e8ad9c3da995ce8c5627d03b357b65cdf = "ccf42f7e41297bf59cb1627552979b06f77bed09" +761cb054fedb01861759518fd13da4c5a0169f9d = "eaa5591417bfbb3888b5a2c86d4b18941e1aefcf" +feff9dc408f55f59cebe326c0a11766242c4a584 = "dcc18a0703f7b459e2c21f3e3341b87d92cc4a11" + +[2e2ca445-9e14-5b13-8677-4410f177f82b] +2c8319c512c1123a39ffcacf2bf14f2a9cc30670 = "59e6c2b6f12fc8563eadc18e22cf4678f2847346" +588110263af95316dceab3ddd36e0f29ed36610e = "3550a85842c88b236af6158572075b9a55907636" +776ba1047a43a9b646d5b1fcbebefbb26161ba7d = "e2f7aaed1d4892e41158e65aa631864d4f82fdce" +79d24ded57f46978cdd547fd5a00e7deea4c676e = "fbc374f90b5235c0c946795d4d1a438c222bb0d3" + +[2e475f56-4567-5c41-94ff-3f69a29378f9] +11766c15b00da3f9c1941a2d0144010b27d247c3 = "d68c7c47ce40b909cbae52d946244c50085bbef1" +2754aecc02bb3de77b95ff15f819d23c073b5669 = "a372c8b5798df8e814ee27d42d3375a15046c482" +d521139e586b1ff80e2f9aa333c79e62221f1995 = "8a1c4a994d24f59f64577b6000f7314a3ef61ab2" + +[2e7db186-766a-50e7-8928-5c30181fb135] +03fc369a8fc54cd4e60255dc7a674600e0281b6f = "91f8b83bc4713d42df2b32bb7588796a268d8089" + +[2e9cd046-0924-5485-92f1-d5272153d98b] +02fc617bb2efedc90f839a1832f1f8b3b3220cab = "c82b54e37710ab58610dca27a8ee4e892bb083c3" +083dcfdd0545ca85d7fa99686d883a51253e00bd = "6e7ab5d182da3d37e6954ae7d2971cbec68cd832" +0b206210e6a60df20dfe621a1cc87bff01fcc717 = "0356d5481b6e3368640f5141633752a11435d1b6" +0e3974581322db365bdec0dcddd361526fde0d0a = "cf0d6565830a18181ea0aca4a806d442a8ea407d" +19f6fa03ea469d54e05b53d36eb3c804c6bf99ae = "9d3de5295bb29905022556b14df63ed3b4b9b459" +1d1f4cf22e754c359c9e88e45a5f152668ca372d = "f331007710caa681a0fe70e91e161ce3555082e8" +34a1d5a957ef5fc15d611fdf3125de108bcaeeea = "3173132f59fae09aa57c9976078dcf0aab9b0739" +3658c1adce992138219102066dbf1bfe36306257 = "fc7988e779d2dc63ec859dd2d4bce6dcf33fc3ba" +4c3792d5328c7b025de7d76eadabc5ec47a1a703 = "1bb2572bcc5eca719082aeb73f9e5a1fb75b13d9" +4f83c1e9f7884f1ec23f5bc4225ca1979ad66126 = "c0032bb493041df56591652ecc5dee739a56e457" +6f9a2cc455dbe8be03964513614e51462e97f1d9 = "16acaf4cc188f61bd55f2970af330459e95f073e" +73a3d7b65b8b43a4bcdb56e092873e9e57f5e38e = "f6e71ce30ec8900e2e5ab736cb6064fc3dc69707" +75acc22732076014266324f60afef69383611f08 = "a09d810fbd20a7da3429da356bbe1ccc5366c60d" +75d9d1dc34e5d6d82cedb381fecae0d7c341a861 = "e210b407d1dcf8f578dc90f0319222e895decf27" +779a5ce0367dd8710248102b274e34a548c5464a = "c3805db6a999c8c3d2a936a6dfbab2ad2fc3404f" +796638934c8633baa06a0e48f6f2b7cc1590a8ec = "c5ae17feba08049c3a473cb4eb22606e763f0a02" +804e0822b8d3ebaefc9b3d49a4061e00597bd100 = "6d0b5a82e8c08a93fd20950c5e21b254a5ed4106" +81f9b4f02ee4f941a2a39bcb2d99c404c0fd8d39 = "c2346d0b396e6ec35d50075b454d1244866d79aa" +8498bed9a35d3b66723fe09e0101fee2d089dd0b = "0a5c23e506d0f41ba5affb5859646a7e42abf835" +85f8771162106e5d4b8522dbc01ceacd22a53d60 = "27d60d861cc2bf3fa222e81fdb2fd889d10dcfe2" +881d97e3a84d146ef430526dfcb294b0b152a621 = "b1e38f57520a778a7c3b016e95f459c3c3f96b41" +88d88800fb32295dcd5ad1f14718d001f942be05 = "ceebf60d9315c376e7d800b0cf0eba115080bdfd" +897466cb5819d367b81e6056406df64dad43d0d3 = "c7bbabe20ae571965dfe5d07539b65809323b9f1" +8ae65514dd49e5dfbd4e048fc5df3aabaed1d6c1 = "9c29927aa9295b1810c18d6c6bc55d1e219e023a" +923494be3d78bc53456d4399298919f368e8fe56 = "8273f13a15aaab25cf1f2d7680b72bbaf08a6251" +980e70f8550b6e700263c8242e585473e3cf71cb = "c480b41b0de4dbdd343020a25cf0eca49ff0de19" +9f31dd394d3a5c2a0af0789ecd6e64164fa8cfb5 = "cacb785b1c1259383b1bbdf2bb14c6525683472f" +b2988a8582d13ff1c7457db898a4e6d2763a5a18 = "12d37e1669c031fa20c7ad44611ba36b530c682a" +b664e423999b93d340456e6cbf1fc447d0e509d8 = "b3e45dd2bda534020ee6453129874aeb29deb19d" +c8b7f4ae47c6f61cd3e0546438d5baaba8d33a31 = "6cc3b26b0d394bb94f5491cea7cb1a08644d6d32" +cc605d89910b84601c10005b4758bb535291442e = "8cf69d78462fa343a713aa6da52850f1c69763cc" +d65c5b1beee09d6904678ebe1d32ed8dc91f23e6 = "b7a087e20fe67beea3cb9f1728107367e82fd693" +e0281a0e78e6c37e0882420ad692d08230bda37a = "9c7490264f720ce97494152b3bb8c29a9d1c6172" +e518b2d8a442746371510cf5d176fea6ce1f6cb1 = "1edc587ee5402ab7186e71125ea0e1ab14fc8068" +eb15908c640875c33fbb30186c9ba96fd3dc75d0 = "abce65fe0ae9ca440b2fed0ab69834dc9b324f73" +f870e3596cbbff8da1ff46968fa428f1f57d93b0 = "98dfb6c2590ea6a867307e00ff84c3861f9ec00a" +f8c22d0413462840f365d19fc9a8e8f82679665c = "755659e3adea1d32217f3851711b58a1c7a38f61" +f945f43d4859aaec11408e3dedf86f4ab69bca00 = "91a5dae14711b47b5223f286d54af6f4a6b3bad1" +fbdf34849fe91150ed1658bde57df29383dbc646 = "127c2d77a49f176e20b7af088e20d0d07d6922fc" +fd4a3b0ef93a3d762383a009ed23575298ccec5b = "071f158ecac5e5b4c3dc872d38096112f736a22c" +fed04fe57577ebd2f4eeae9c8e1282acb0c02b81 = "838a55fc30379e148f80d9e95bd572bdd72e5c60" + +[2eb9e3d9-fdc6-5d3b-abfa-b97b7f8e5896] +8cb10b52a6acdea418b42e82fe5acefe3e4e6ebd = "c3489bb8027a5e06513b98e112659ab46c5c5245" +9b21100e60ff4e28eb2e40e2ed4052500c6479a6 = "fdd013edc052291c6a3c73b2113068fcf9c38347" +a3ed60fee75ac3467f283ac63749628c70020b52 = "da43b7a8515ae4189b8f1d9c9dfadb5e3d6d0445" + +[2ec943e9-cfe8-584d-b93d-64dcb6d567b7] +0209f706f92f5a90d117bf0afc089fb018190661 = "321442a005b16993fd0e9a870a0d679fa2d977f0" +2911ad2a26ec711833afad04278f7ea219b98d58 = "501a8a5b0c500c3a04adb65a3468e3de5ad4e0d9" +2d78fd415dbb5c2731157701cd66c259ecbff4e6 = "82934a1fbdc650398a7c8143d129c97198254684" +77cb9bf2b9d1b2257637ad96973765a9bcb948aa = "3d66452d5606683e2d6ed87fb3b2cf9d96bc7443" +88899be3898c5b7681a3828f4e95de29b0c840a9 = "0132b16e97787bbb14f34ab7fdee4a46063afd3d" +ba9df4b7710344a13939f4548f0b92bacec23454 = "932d5cd699dc4bdc0afa0f5bd4770b103c031fe7" +d4903d2fbe602b2df1a7788df940f314bf0b3768 = "54ee8760be27d48905fa008672da748388094b4d" +e072678a7ed64ed8761d5e7b7b231bff4c24d127 = "af4ef5af1039949146da474e6842d670504c9bf3" +f0b408970942803420ba8881dbd7b12e7ad14cca = "450432b961b4029e545acbd7c57ea00f12a56a63" + +[2edaba10-b0f1-5616-af89-8c11ac63239a] +324f892a858442def7f22edbf6b3f3ee9e6db6ae = "3fe216c8816d0fddf2cdce224e447909da3a85cd" +331f82ab5c3c0a9028ff2c535cfb93b94c3cd1ff = "56a1c7144595c69fe7673610c3b28767ca5a0b44" +462149350dcf567b099f92c9de0c8bb740f691e5 = "6a2710b53b821bec48a662dc6ffab175bf922726" +46da26e02e45394b66d04b712150fca5a9b7b3f9 = "f230966a313c9b7f546b0a7402215ada3ee541ea" +4ed220062a13560db92ef3a19ac1895bf2bf86d4 = "9da198d372bd7609d20e037fb834030b91d9eb80" +58e80e13410c968f12caa8f0771d19da9e5ff645 = "350420ff291d3af84282350666e444774ed2c6d9" +67d7a754995dcec5a17dc3e2cc763c793a6eb68b = "e9c5f2b9d60a40e7d60695d2a0a0288ba4868794" +6bff8a98adffb07548735b769f501ce2ba55fcf9 = "c92245a81356aa35f0f6214ae28b84a7d407adbc" +a7e680756720736fbf3d66de5eb23a88117eb2fa = "4f5189665467cb881c57f9ae1e3b1227f0bbaf2d" +a97480aedf10ffa178ab9ca955d18a7d8e0d074d = "6609d63e796ec6dc98836b1616814a2290200064" +ab931118b3f259ea6045b7c4bc11f95a7c0feddc = "ec18dbe69540b5f6a34b3a9eea0be6faf85a7fc4" +b497032ee63fd46ada1ba2d38bedae1f4a94242f = "682476bed2f6961b9d12e54825cb1c9417e16269" +c501ab953d0541fe900ffcf800a8a1d712eee50f = "5e4d6d4414c4f35c0cb5f300c43979c538269164" +de569957c6c779c199d2a3f48c710fd6f88b7ed0 = "2704f3ec27642eeff53eaf3fed4ebc3d3301bc8b" + +[2edd74a5-e968-5e45-af77-76d29aa6a478] +547054749621bbd3a4fabccd0d6bbdfd10d00dfd = "94a0c572e683c3a8b45011cc37bd7ace81c18b53" +9fb071ebbe6dcf25bd921910d8ac11b27c44a731 = "cd55eda4fcceefc38ae4d336bfea4c77be39ed70" +ec585b35adcf7d91e84de6a4b45323eb529bb830 = "5856ca6f6c158db7a1a458e0ef9d822cbac50bc9" +fc66102e94af21b5a1bd41dbaee73ccd90b96e41 = "fbf9100b89dff71f60f88fe93f7d7774ca78e392" + +[2f1371dc-8782-550b-8f75-ab2bdac561bd] +6ac8da6a3c4ba9048343ef3d97932f692c22c3d1 = "0af5861080ae5f64106fe67fd01a7d255459cf34" +b75f084d12a12084c3e8afb43c00ede969d80a40 = "4669d1b4b341745f56304b66a0580aeffda91cb2" + +[2f22cdd6-88d8-5d3f-9c50-37b200e63d5a] +295941d4a8acef2d0017d1204be885569eed721f = "8a299f8999715ba8a535903f177f0b22a8a4e568" +8cfa59585d8190b2366e03c27697e8e7b702a37c = "b2c312f43c25caf569e0e034d97ac6884659625e" +cff5b153ff85f1d9246678f3766887e88bb905c1 = "0af9dddce87b574344292050334cca0db2f235f4" + +[2f354839-79df-5901-9f0a-cdb2aac6fe30] +0e4d69b21af19b3ef456d1ae73bf19d5c6612cde = "17ffae81b096fc7f5c0903c9ecb2e06ec266bf42" +157dbda1291f4a04301c83f65572c0e05ec05bf2 = "9c45d1a5293f3f362fcc8548fd53af08f3c5599d" +1e5181512f5fea77cd1db1c25f52cd41c59cb5f9 = "84d21df963ddd8d678f49da34595b763e54b4c1d" +29a5397280fbf3f8184ac50b4c5e309b8d03345c = "26e73d083fa0758397bc97d7040029ebea393869" +57fbdf7159d28a35226bb48d34b3875be974d883 = "0888920feefc8a2431c710dd193a04cd1dab4702" +82e53fc4de58b688f94210115d015f0c9018b9e5 = "e94aeae86cea18ffd6b8106b8579bafbfa4755c3" +8ea30e8682d56fe8be9662922846215a361f8e59 = "467281e860bdadacb62a39c059f95569fdbdbcf4" +940cb3df3667319eb2be399b5cfd90aaff19e9d1 = "d1439a39a99738dbb6cfbfcaddbbfa649c7606d3" +c3a6a26997d8e9e2a6d8054734fb1c9757d762aa = "f6f82bbb63461f8be399c8ef645de4cc84778093" +dc2afcb4eeccdfdc1a771663040e05b328823378 = "9f1c61e8f4bd32edd8888045b1f9d7d807d646e1" +fd0ba67306f4081ce15916bf3527c279ebfdf0ee = "fa88556e9f71817cf3082886859f8b70a14d9082" + +[2f5eb75a-258c-59e0-affc-f41c55f75335] +1856a5bd281b7f1eedc726ef0e1ac9bf4b90fdfc = "5770f3524fe8190c887d4ca0a08d580e4f9ca637" +2158d8166ce931ab8b18182eba680bc1d9c06852 = "1a423ca86296c2e291f871ac767f29eb259967cc" +6506631787781bed72bed3fc29907783a57745bd = "38a7d26e680e64c264d22949336347de86d85c39" +7fac8ca73ec587152f724c6b6fe50751f516fcae = "4374a37c9d8a6739a87a29ddd0d787b16e785537" +f22cee56bcb237c646074e66ecd45949bbe131cc = "746652e5bc4139d5146315a492d4eca36d27718e" + +[2f8fdf4e-e012-5916-ad7c-0e4644026d1e] +2f9b2b8b0ef80e9cb77fb232cbe7015f4f8503fa = "b781d386634449e61b35765806d37d8f3df225bb" +5649aa52e7e83f669f81deaf08a271676f4d6f3a = "9f97feebbe280f91242478973aef098c51229c46" +6ea92b235a15a8cc364360baa2c8857d99fc8e9e = "640a771c5d810142a0767e13f94c4c54287ce033" +9036f7d77fe72132a2d0da8fc37fe21db9cf79aa = "fd16781fbf1c6013679dc712b901be1fcefdec2b" +b8972cb37b93a77066bc7d0b3b9991d14f5809bc = "048d483f40443711529ce36739d1596dac597ef7" +cf50a23c292030f3c3126d11fd3e10cc47bf6091 = "b0df4b3090ad3a9124437228602e21d20577cfc1" +df97dea5a67e7c00df644398774b44e96963cb4b = "6d3a6ee423f38a7f970836a6ea60f12a26dc1984" + +[2fbcfb34-fd0c-5fbb-b5d7-e826d8f5b0a9] +a7b83e82bc49763d31612fcf6595a60230d35e25 = "6465e6183e536f236439c30a0d9a671adcd10a44" +bb2cee5a53dac023fdebb2e7f8a1f1b195f90e8a = "d62a31e352679e637be471dc0b75faf87f0e36cf" + +[2fda8390-95c7-5789-9bda-21331edee243] +28ac54e4f84638652df6cc89522f790624c3b9f0 = "3ce5f5db26714f134554c689649806ae429c1c9d" +308361c9f0e7eb7ef36732da3f24dbe2b3bcf4b7 = "664bb8119afdbe73df74bd356945d781f5bf1b17" +4ecb0ecfa6d02c751e6235ff48204e6f3d5f5262 = "51a816eb840bc507dd3d181a3690592e69bbe4fc" +9d8837606046f3bee5ed182dd7314c8b2a456a56 = "d979cd2e82832d1a73d4baf2b9df8246f943760e" +ea9d75e56b40eb093e9ebb67a6ae5754db9adba9 = "e763517bae7d14667ab97e59e0e2239119454d59" +fc03bbd6249c238d171b6bfc0f4cef23ae2a269a = "d7970b53882a66d2ba7e252b7e084c0d87a0cb2b" + +[2ff30676-a39f-58b2-ad74-5d1012d57b9b] +29772f8fdfb2a779ef1d5a2bda282d14405fe26e = "8bffd51cfcc7cf9000b814cfcd43be106e13b5b0" +55d319eaaf04a93039fd51e63a658792760569cd = "9e7a804deec45c35dc3b141660db2bb9cf5b098c" +6f7c4a1b6d3db0d9d95fc1a1e8974bf0752da43c = "97492d8192da5f7b7dd465310327c7214a78ba91" +8470694f750e71adb9567bb4f45df082638718b0 = "fddd5fadf2fd2c531a9a3432bcb649ee7228bfbd" +e6434363d10d6401ec78f7284a4f4649936decc5 = "faf065c5bb133740bdbbf36afbcabdcad26b733b" + +[30363a11-5582-574a-97bb-aa9a979735b9] +4317fb116c0d866eab85a554938ec7c3707ef6d7 = "31ce38f381e7c3e1ba388b6009832c4cccaf9374" +4690af9a7f0098d89c03904be4931cddd5a00fb1 = "bb17220e7ec9cb4ed5a68eeae6074cdc3479d69d" +62db8552b6ed3d39edbef79c15839c50d44a18d0 = "bd8b123c2160905493413664518a25ee55f646ef" +771e3c5cefc00270ec7d354033c95066a8b23ac4 = "59261c79bd1ca193ea5079b39a9c90f5d81a28bd" +7c11272364be32bb3fe0333aad699f00c502b80c = "a34a228636b945ea57741636e811f84eaa0d3aec" +7d793e8dbd30169d26591cf88aadddefa128981b = "0e96c14adab5c696fa8807143ab399abca0123cc" +ae9e333109a8b6434c12f6194b2c23cf2771f1c7 = "8a5ed0cd08aa08bf6fd22afdaf66e37d3b417f24" +bdfeda760fac522bcffc605615dfd0a8d9e91cf5 = "63724c08eafec381fadb534ddc60203f21bb288f" +da316ecc7cc5c40d513427342963920e2a95715d = "f8b336e43d71f05bf5785604fcf94a7c9c3d57b5" + +[304d3983-6cfc-5ebc-a572-0ee435b2341c] +400beabd65cd9088167756dfd4211b8100eeb287 = "f80d4088f7c6502707ab5cd9be9e12fda90b234c" + +[30578b45-9adc-5946-b283-645ec420af67] +09cb31ede431668889374f4945a0a6d983f8f20a = "350b23b024593877fc043aa125d0bf40e731e459" +0ee051738dab941a467f1d49bead09b1d100a1c0 = "3f29a4dd44e6efef861902d5a4c1cf1b0fc26cbb" +1c4c5f2af17e57617c018ad060f0ec3c9dc5946b = "f72f07fa7ddcabe8102875989c0adde24709863d" +3b75ccf85666419f805d041f26a41d1bbad29583 = "f1ed40b7fdfd19795d2d8380a25461cabd14baf3" +3c00f48119909eb105aff6f126611b39a7b16919 = "d88af47b612ddf377234d4d4194c7a2031fb01f4" +47963e5b25dc27bebc6d898f4926bf81e00718ad = "b0afdacfe40c16a8628d0ec563e88c5c99f6da65" +49f8cb057b5a50a3f6b28c330cda8dad8e2cb336 = "84e2523bc19a473c6c80850d823b7ce0dd8d0a83" +54a8dd106ee6e261bf9beed5affdbecf593a6cd8 = "eced4e5663747638c6082ec2c5b47d38fe1b6342" +5e3158a05e0c9082b8a7fe35b4f281d1adb6ca18 = "506e8a8bf7799cdb59a04fdfe2527c60310d3d9f" +6ae90da646ef8067ee523908cb9a5d90e934cb0e = "ee84cb71a364b8c6d1498641c9577574f4857d2a" +857fe3d1797c80347388087c6e96daa0571e54bc = "37c11283e941f8f4d5e323de0cd240759e946f97" +887d7df6495114895de9d5e5424a6ee76587d0f8 = "57ab0401278142060b7f6088a9afa615a4a041c1" +933fbcd20be0b31e457c7ab81a5766cd1b361c06 = "4d7f401aee6c91d257711da1edec182840775c5b" +a7d45ea317ef23f4face6d73e5434ad79cdc7ea3 = "11e787cbefdf9955d3a86ed942268fe465436421" +b03188efa3734871454d628642ffc7a9e98a4fa0 = "0f08549d5eef3364bf89b8a8d03057ca047f94cb" +df1c6a6344fcd8f81b1612a19d7f805bb52a5c85 = "496496c725d6daddd06b20caf62f73f311066477" +df52383c1e4fb9143b065f441f1f944e9ed3f0da = "2da9968d8f6afcb19be88a2feb017352cb521cc4" +f7d806092f859494a96c16813bfa298202f39957 = "4a131ecfa3f2557d0b7712228bfe25d1bc06b428" + +[307e1779-6603-555d-8172-ea684b6e5cfa] +c4f62ea9b656a9e1df445ad2adaed6a246b2559d = "84ab2bee66003fafd578599108adc25dfc2c9f73" + +[30a7bc16-7fba-505b-b600-cae92896a3fe] +0de12c06cb843e8e7f9641660cbd5dd06f8c226f = "0fb9e90c7cab3767f4e35d4c35c1be25b3ba12b4" +3686fcdecd9e04a444de546cd4e497d6efce8321 = "248bddb4e9d9be54fd7df7aa9c62db3208b9412d" +3855c912705f76eea1eb7a1d3daaffa5d3e156e6 = "c16b87641e7666deb7444fa203844acc8fc5e873" +3e16605d91502266a58985f7c934c003d0df4d50 = "17d9a4ef75cfe8ab91afc0d740aaa3d29916e23d" +9751b31f91a26696830a13935abcb124fb3de674 = "457b1ee9d816156813a96d36bb454b7624d9f6a5" +ba613af02eed6e91782709e4a54eb377a7ce3696 = "70627850087b37d46092a2540d05de5663476164" +ea68f777f414acc3d9a6fcd2fb46a94b49e49b39 = "df79c1c9daace2b817b56911d9ec3695ab822706" +ededfd60c9c500ba6c55b424ea1b5480c960a9a7 = "c4793d123af62ab1e4543d4a1d4a86759815f997" +f29e9c56fc3747487ec67c63550550363cbce380 = "ef2ef924e55d56a2e0c56d056edaaa112a76bbf0" + +[30d42797-9b21-5812-9dff-9e32203c7e18] +0fed9c0fd31898b3466ba73dd06286b6816280f3 = "753408eb609a921eb25fabbefdb75d0f5741cba5" +865953f718ccb241c6896413c18cfb160e7eb9a0 = "dc88a6a4f7b3949d6fa550da50813d62e4aec8d9" +c9e938f3603d9d856f0cd8e7482d3ae919ef7974 = "e8ee2e18b2538892ea2d88158623a9f99ac1a989" +e87d90699d13e8bd600600f48c5b380d1ace74cd = "96cfe6bd61ceb68afd2174ae1edd234ea48676d2" + +[30ee299c-4142-5be6-b36c-c88c17e1d32f] +491651e1774b2e061e71637c8236037a61cd736c = "33fde554cc01f463e3cef0bfdbf9226afb7afb3d" +a1d419dcc937678dbd5811c0602883b53011e558 = "cdf507f1974a251e123afc1cd1962b4acece23b6" + +[30fc2ffe-d236-52d8-8643-a9d8f7c094a7] +4e955a0ed1fc47e875de1009932d26f5f9fccc32 = "60610f75c2d499eafbf3a1fd65f04f5023bb6c87" +7334d544492ea074f36433e0fe08f2ab6d3db00c = "4c88c063fe9934b0c632aca4e53be2ecf1fd8a57" +9f45628c5d4ae5a2faa4b16ab8266107e60f483e = "49411b43c080d41a29119ce0b536b126eb59c9b0" +a2501327027fa4287b2837664ed14b01cf94a3c8 = "7e04d38a7d64df36df30fd5925e0e697fa84ac45" +c51e787f3bac23c8fdefbb4bfe116b9704755b24 = "a8093e45d1063e4f0679400faea9880d02935a36" + +[313cdc1a-70c2-5d6a-ae34-0150d3930a38] +2f048f754aa4a9c2efdd8c12b8f2f26a26e015ce = "68a1adfff3ab62e16fbee86ff88e51bb32fd3e93" + +[315b5843-54e0-5281-b073-3e322808fa17] +a7a430eb932b712338fdd4e45b6c024d991c2cc3 = "c5e6d0dd56f1cf35bef66ab8e592cbe42c746a4b" + +[31c24e10-a181-5473-b8eb-7969acd0382f] +013643b7334974a1d9c2ed9ad7d54f7af2bcb2b5 = "4ac5e0be261dd67c0c791ae99f8ea025fbea478f" +041315226c919c1a6c7dae8437bddd61907bc73b = "82227ccd772fd67ff03cad8ad3b86624db5f0ef0" +091cad865281c92746dc455cc50f4b2a311d3dd9 = "1041cc42cba5fdceafc53615bb6cc6d41b9ea327" +1056c4761cf4c871af9132c018161c7fe133c145 = "8b5807d29fce69dd4964b70f1b6c8a75fcd592fa" +1115ff2755eb18c356abd84f0aa119b7f5ee0aab = "aa0078a8702055aa54afeec054de264e4b7eb7c5" +13a5626906f53da34082c8509e2d8bdb8430a86f = "88cc5d05ca0ec7b9255bd55cf555a3076949446b" +164c8437034bead41829f4b2ebc6f010876505ed = "14e7d4a89fdd8406b34cee8f19871a25fc479965" +20f819333c83d19e849dd5e1c8cc5c58e96a9289 = "dc0fd6f448a62bf08cb93c4f5688488efce82a21" +2348a545765d3d9f78957987b3b2c7745316d7fb = "478db27a5356f6ed3aca11ab0a83250b33ebcef3" +2459733d3e9b3005645d3682aa6a9e8715892e23 = "22bd0a13b2aead955b2127ae9a1f053380558a30" +2540fe7f36996e474e05930bccd11d816566b3f7 = "982274f15a1e87c4e79d7c1f5500571e12c0af49" +29e996bad486ccf375a1ccf462c1d6a4153e208e = "1d485cd4342c4dc14f6330cb89707b1f76e41f0f" +2d0cc12f44672a3a646ae9258019a3e0fde20626 = "14ed35c54a84fd3a7e8950c7aafd6af004cb26f0" +2f8fd98ea64f873bb7cc3b1c396e0e8fb892c417 = "86577fd66286ccd025cf206572eb9cc4f1ea7953" +34cb37c1913eda0dbadbb087cfe4b6fdff9a344a = "fd4ab437b549da96a2108090739997ce9dc6886b" +367255408e1b506f038a2c8a4358c3ca2fd5f8f9 = "31fba7684eae086f55b1bbbf4f4a55068e53f75d" +3bf11d14fcc3953c90ccf59ea8f7f3839782a1db = "fc2fcd22f56532c388c0bb35065c2b5b7eb79fd9" +3e8d9f946b44a99a182ad176c5c365f43f1f83bd = "f50810191b7874595330bf09d31bbf1a910147c5" +4303d591f5c53a067a46c94298e78604a13754c2 = "19e6bab97e18b953f5c2299520719ecc619e9493" +673cabd469ee4605d3aa43a0484b55af3c10b811 = "533ebe1ec57bced725c7c33c9235355086c0b855" +6abf10ce4f2fa97d5e0240fcf0124206935c5e61 = "0485c8e9b381486b01d8710c836160f65c71465c" +6b428e65e4766e34ed622e23b020b44faeba4e45 = "fd7a08edc8f768e9417bb48d3de7eecdd4410c9c" +6d7c8e5352b8e19a04b44ff07728929fbdef1b17 = "93fd6a114596afafb58b666de4bd1d0924fc9c04" +712e054ff657f31bfa4bf432630cba84bebd9b53 = "d18f842175192c4423327f76114e0f308a36532a" +77eea93ca943a98ca7f0f66302a5385e34e35eef = "4647d9a96ceebc5258a4d7bd819c83c48006597f" +7c399b6fca70112298d712d23f717a507382c28b = "8b2612117d541fd741b3182a62f7ecdc1c03782d" +8355bc6da5fcf0a741aa929b25f2581e1006777a = "07d94fc8e0b6dcdc1f3a4460b3c0db553bb22442" +8740a30e0c5b04b61624453d54d8b4b601eafb4b = "ee57cc7b90de0fe356f73b44a2821752cf8106ff" +8c09df6651d251faa2d746b8d73181cd99d76662 = "ae628d647d7b2ce549551131fca404b236756b8a" +8e617b29ee7e16477c44a8dfa493da640c49ea9f = "cfdb24ff5da2592a7c627a542a2b3caf4f1531dc" +90519bcb9771a5d681ca0b726f5f90f49527d7b8 = "e2276ceac3e9b055e21e66436c2ca4efa1313dbc" +953aa820551a0c5bbffa51eb6150815448d7cf80 = "3ad5cdb7eadf48de7629deafcbb136f73d8e07ac" +9b7d0658219ab751e78489ceb5b7407fab7faf1f = "430237563ca042f5512b361304b847d7b8fc0dbe" +9c2eb72f9ff8e29df90379a07da95f8a9b3afac7 = "7fda72353c40042ee2f28496ed43645a39065a5b" +9e4a72fe98189773b46477b4177be3871789bec3 = "67b5bf704b2035d132e4b7a8e0655c3e3c7d18ee" +a4568d75baa797498983ded6a1e8f0442e326b7a = "fca3e7c46fab15c432554634852954316d01a7f2" +a6db77a60b3ffc41e70571f7d591227e439c0654 = "921579602487f23df94170bd731e4a8b934d867c" +a71f7b48d2feb554459491039d4ca7da3384252e = "e16d23fb87c184c7582ffba5ed37c4e029d18766" +a88451827ddb79a0a9765bae72bf521056e1e389 = "432225f3f48ada533ae5e2ac5115c89ab8cf15be" +a8d84af34b11ef517fb965a692a2aeba3ff7ae20 = "0d2ce2c5eb9c06195f5adfcb5026a98c69ec3b4e" +b4c303e4409380846f652a7a1cf1cb815985811e = "8f076ad0f4724bc9505fd6a3c32996ff22d911de" +b51725416725c18990f099abc9397e14d81e7fe9 = "dedada5bddf7e003278b58d45dbeb51fbfb310ab" +bc1255204e9871cf6d76d58be24660aa2a51b24a = "5f9c734c2d760db8319fde43e5ba4b2875fca482" +c29f5b202a6abf90dc240efd542a7ca27917df03 = "d46fb1e05b6d8af64d11ea8e79f9490320d79273" +c5035db48973bb8f2271ed5d2c25608fb3b51a30 = "05bbf05893e076bf6700e9720e4ec20221f42690" +c5b2af54a1465695fcac959549abeccd64884a27 = "3b7287a0adb45a8ce63f4920851bd2c0c76f9d52" +caa65cd977d5acd564c99662b61ac33ffdf676cd = "9a61b77fb86ec56a0dd044e6b02a432203866590" +cfcd8dc5432100d745187138c455898650cac425 = "11009431f2243bfcfd604c916cb0b45a88174a40" +d144c2ff50f9ffac088b068a653e978f9c47e5dc = "db3a3a96d1bbd8c5c9d808648ae2a278a3418412" +d1f0b34da0a7e7325c5325b579de42a118b918e5 = "44a187d87d85078464990dbfa3374dcd49a96a06" +dbc3b8131ead50c48e3f77491e00756de9879723 = "3a6bdef5eaa99a664a4a63a8c44c1694ec3702d4" +e4b7704eb9f78db3e5deebf68c7979c22c6313f8 = "3e3fc8148301c5ce8a8d96c73c8b2b0dc396f363" +e55560e7298fc1ee0e72cf239fdc1ece6708e0b5 = "099641f665e2a04c90c5f317a036022678d69c6b" +ebeab79ff28f144506f6aa51b284b67486283ba0 = "a4887f126de82d28268fcb9157bd1407a9d772d8" +ed60e8f47e2867adc4c134fe0f90e8b95e42f743 = "15337511b1be8b6a5f6e6c0cecf5ddca3bd382d3" +f0b12936bcd3d34f9de6659ab372af75e81ca273 = "e713116289589baeedb68d1ee222262ac0327b4a" +f4535a6f7d275a718c159452c86fa76aa9ac773b = "2ada46b97e976ed044b0251a565c0c34bae408fa" +f9cb2e6f5bcce2952b7b90fa51e434adb17654ae = "94400f4ccb2c88fc70c69cf333b34fe4b6589a8f" +fe4cba0efdf63c82f85e82fc8885d27d0d5dc24f = "6b8221dce468b72a03c10b1148c9c6271281e754" + +[32113eaa-f34f-5b0d-bd6c-c81e245fc73d] +15d12e6133ceded59f521dd9dffa1a0c467b2317 = "5062d6607223b54c5b1bb70b100a0b1f7389def1" +b27307c30becfb6f14205547889aa3c0450d0ce1 = "68880690d6b1efb6066fee7d7d17933d3d39558d" + +[323cb8eb-fbf6-51c0-afd0-f8fba70507b2] +1002e1f8b8b0a9e61debcc4dea0ab55a3a4a402f = "67003703446b851955694560c18e917322082b9a" +17afc675d5acb0885ea41f958458cab70458d9fe = "aa0e1c717fae58bbad73e3061f323def27b616fb" +32107ceaa8c68b922ae30d80868e0a4b42bd203f = "615b4eb5f2ecf9d490da381b2b52888c23c0d324" +3462bf7ec7d6835cbe03171690530a8cec354247 = "41ac403afb90d5215f885f47802678cfbfe50893" +7f744b6ab81f33276b46deda810c6755fea5ec2a = "e1d1086ac5760b1727b03382024cf2f70da466d1" +9d3829ac010a34a3ddd7c4526528244c53c53771 = "2e433b69703f48bfcfa349c8e7084a818b0e3996" +bb2d33b5206dc3f0e569b299ff3b020b615b8d8a = "a0e3355e9e5de819fe4afb5e4e62f18aa91ce21d" +fe233d6c015da0686c4833189e919cef35cbfe69 = "3c7625fac783501bf7576d266d6eeb2d8d4379b3" + +[324d217c-45ce-50fc-942e-d289b448e8cf] +4ecfa29a6f7b4c6b9f975008fb905713d07f5b05 = "808117f717a97e8414c53c5105bbb9d7f08796cb" +7719d33e35db06a634c9da6de648cbd529caef88 = "4bab0450a0eeffe999bc68288ef010ab6f57da68" +eed2f919a1382ba7dc9c6f231a1ca0b56d130cef = "904a3f2c7477178de566d6094141a178da92f821" + +[324d7699-5711-5eae-9e2f-1d82baa6b597] +02e3d3862eb26a70f21a362a81d7445aa01c52a8 = "1175ea41de084bf9fe849d0615c4389e2325a4d2" +15ab16f4a12894c2fb97d7c23bc14f0cb8f91c8c = "cc7e6c95f8c23bbe4b6e42e35c5fa50be9b5a103" +183110adea7daa572f71eeb8dc71f65fe9d2e2dc = "eff8a079a2abd64c6bb29278e72e5eb9c1da38d7" +267b1025e4dd737b9cf54343c3f2803a8317d9b6 = "772e84bac1bd8b81986d446c3fb477a50040bc5e" +3a401b9adb9b04c8645cb5e893ddd5f5702cece5 = "3bb52eea5ccd011027dec6c8709a1a1af666d16c" +49725550410eeb3b827f11ccbff4b35ff5da5fb1 = "1601951aa73a5b875a625f18805d1dca12b7bfa1" +4cf4e2185ee7e7f4a3339021ed01b335587ba45a = "c9e2fe2a25534a0d6c697f10b995f14e275dc96f" +52910fea3f87805a2755fd5e8e3b9ad04cd7c183 = "d2f8a711d54ccdd82b8dff8966ec8b91f6df0616" +76cf24739159e720533677c76290461b4292be91 = "a87c5e473c89cd5ba85f897dc0b828ab3929dd25" +8434ae6abd79a1e44744e93e58afb2d1234c9037 = "cfb115586d9311171a6c810682d492116da6fb73" +874c6eb1e2fe09282982fbe7977950d71bec76ce = "5f6cb294c215818a7ed9883bc181cc6139282d7b" +8e2da16f24fc47c324db16f0bbc851cc8f022268 = "df9bf8c2ae0add4918eb57c72f2bcde1686aafae" +a4b9929a54dabb8ef7ea4207fc5245bd12ed7095 = "aeb8ff933493287551e53d324ba6a1a5e37cb565" +aa30eea34e179afb2872cb3991c7b0060d9c99e8 = "e0d1a36c426043318b4152641961700527ba4b5d" +b176bb45f0f9017d8845d5d6bd7e850978ab6b3a = "8ae3918d6c8371bc5fc8054391c2bf2184309e42" +cdd5060d9d1e684ddbcd5d6888820eebc0f0b8f1 = "14d109cc29940b70db32922b450743a2dddd7220" +d091d0df68bce1606b1b613ad9942ab64c0953aa = "e8a42d7bc7dc6daeb6766dbcfec1412dc4b02aa3" +dabf07b409b477c84eaf6dba8ad17d90fd666c41 = "3e4be96cb54d952f0e39c3b08db111b93ec67990" +e1c57a24027666dc856598e952ecc2c9018f53c9 = "d0dce4a7739d67bb4283f9663e40709ee589e7a4" +ee6bffc639ddb58a758a792267110ba9e43a4836 = "a410621a83d40bb3e4cfaf7737edf2d15ccb8f1c" +f2164f86d6678910610e094d17c681b5a528af07 = "a60bb9e62a04f99ee63666979d73025a701e3dbe" +f3935b60a6c82a69f4f63073e924deea62cb05d4 = "902bf98ab09cd6a4ad744d6042fe9d8979927921" + +[328247a4-1e87-56eb-b3f2-bcec366639cb] +1acba6d2f636dbb7c12dae4a4c49772e36878a86 = "6addf30ae5431e54542782677f5f760d92c09cb7" + +[329a7628-3119-536a-a060-c6b2f8e35265] +3321c6fcd09cca7c484a21c6df4e20be0289da8f = "468d15370137e58d6d26ad0d826337e098140920" +a15eb83a2748ce1c1556a168882fd6900a162888 = "8c5f4aa2b0c2c5062de4f7e61ac564b97ae0dc2f" +b8fcc6c9e75d1e863812f9b6df9839c06185aac4 = "47758cd4ab63b2be778c1a879a32598005d58d0c" +bf6d67888aca8e8288a870b90aa75f86fac9989e = "44649615438f864ccd97c19ef5570f9025252eaf" + +[333b5096-10d4-5fe3-8aed-15ce8e90d50b] +1d46446b202dc8d976f57c687d249a0a117605ed = "d88cd83a5140848b0c4fd61bad62614c8551c268" +4e7f27be8d33a42c134f6da0816ac4acfc0db0a4 = "9caeeed80dd8544e08612323e82249f41d66b527" +a195e8e492fc98e93304ce55b396e9babc171293 = "06d64b739f503108b1661429ac3f31e87165ce51" + +[3349acd9-ac6a-5e09-bcdb-63829b23a429] +09782707d6b6d08bc094fd495384d462f7c9717d = "81f1c26baa20bc9ef048026fec9234263625da1a" +0b2579966e6eb276c26f67096808413a4c51d281 = "8c00eb9da7b591ac318b4639358a80108713332e" +0d46c5240ef8df2a5a3678af390059e26b8f3f40 = "7d12da9c8093e78c76266d06ccc9213f64523522" +1477fa6b460f3b5fc5c5eacdf0d3821dc4f0eeb6 = "f5e998524ebaf17af171e7eb82d8a0661ca71ac4" +2ce1f6688c0572eec2da9a0a65740a4fe641c85d = "1df1eab084f0ec6aa113c4162a7ae1b71d2dd2ed" +32c88d7a490710baa3bce2cb66db12e49849ded5 = "9c9c4c51a4fa771204daf894994474692061ee8f" +37b13a3d78daaf76167d91cd9a6f605ec55f867f = "cbc62da983428164ca7e174a0c058a9539edf6f6" +3d335bb6820e1b0a46517dcff52b2525f15ba14f = "5ad183f5e1bd867991360d72e17bb2b0f223d96e" +4046d1ef039ee3c8cc43b8f62bbd431930c8058b = "f7e52ccb21bd4b9c246646683d55c1023596eab9" +45fc695c61397304544286405eba9205a4667f67 = "9c6f780994c434c0e4ee38a95c651c2e38a2f91f" +51fbf7607b6ecb732e48d0b2317a5927335323c5 = "37352b7b332167dff8a3baecd804fdcfff90db98" +561012d8fe9474d65ba4269b3630077d5048c22c = "c84ad3abdae4a835cc0d36615b05ccd02d9a9265" +675fd6d91cc51091798280681746422b75c04d3d = "f391b6325111fa87c947ab4794d7435ed4335e47" +68d0bd3612c4d9b5c541e46f4e705aaf4615b361 = "d79320908e1a49ed6237d65895d3ac20fa4c25e3" +6f324dd6e40cba462d939ce5f85e8c2c6f21d2ad = "ce01102b143bb18873de4ddbecd1a1def389087f" +7743a67633cacf46908149f13c8bf53613cc35bc = "c4732112e69664a4f8bdf8f0843b7cb641cbff8e" +7ec551b92bcc97810aa0de55f85bfa7cdbb66a3a = "1c14deb8d120da8cfa48b346f7556ecf448b73e7" +80eda00cd36da94cfe48255bb184c19ec8d2a2a6 = "2d923149228d037f069ddf051920f643108cc9c2" +81ca05534d556e547834c891c56686bc1510ba51 = "257d1669f67fa830bde9af671d0ca6a8abbb4bf0" +8939e398a0e641adcae54f3b83ef15c5a2fd729c = "61927b1ed761847cc0ee52ef1252927c48c5b3d7" +9e042e7c0fe6e5147e9bcde29e9443ed513112ff = "574f85f4b8a6493e4833bfc54bb4a8455426095e" +a80c99f9ae340ffca793a6aed70865e5bf3365cf = "7113c6578e6b1f88b76e13ddbf66760f6d73e511" + +[336ed68f-0bac-5ca0-87d4-7b16caf5d00b] +042a38abaa1e1efdca8503a30a6735625d3fb7e7 = "b6a664ca8aed44b63adeb8967f487b5eb2186f9c" +2101155936396c348c85e33dbc331edf83ca0d08 = "a227d0d52defd13747ffb020552ac44c10466fd0" +2c58187270213455d15577e85689767f89cf8de8 = "0afc170e474ab4a6735896b97cefcd595c900fd8" +38a36939e086fd97f44912beea812d9fcfeaf33c = "a150c75b9e145c8d431d0463bdd32f1819afa54a" +40edb693796375841f1837ac3a7fec0db5f54760 = "0af2ba3c8a54f00a944f734cec45a8b96594c279" +49e914ad55c36e036cdcf51ade9ea87d81f34299 = "a588f46a72e6c0cd2b0302929a55fa139bc86a0c" +7e0c5fba80012f29d7365f2d85e7dd1d3ee08a20 = "4e44661aa2a57cb7d410d7cef52efe25f900d248" +80ad23bafbd625d0960708e366e0517185bfb895 = "56d19428e6ee739505dc01e4c950f9e36698a7f5" +8b43c4d01d18c891c0af90ebf8dfd889856b3a93 = "39e61b053b84bcb45dd5ff36f146967f39b9b46b" +8f65b720e761a5a33d38b3abd17e62e21b898842 = "1eb696b149cf5e58a5fd3fead2226540f57dc104" +982d5751d128172be43973552d1ce981060283fd = "31b8a99f9afe3ade4de81dbb2856f2eaec5ddf20" +9e0f1da839dccc001177c3dff83fa60413c4de43 = "d81bb9426ce11f826c9f761d3336be1d5e69c84d" +a7066df5ff21a431d43fb5a96c0659c5588b3007 = "cbb157b71328652a55881ed82e225a981f4145b7" +c8c4c3b6acc6a3c3ad86294dcad6532a5ba46bb6 = "84667096a79791262d75fac748a4b0a8577b3f82" +e08c50da9c28458f8341fb9e9bc749e4aee46255 = "8b016f7fb9dee7a8baf48792593d26abc93026de" +e4e772bb613c8eea6b76fd37e0e0754e11d27673 = "09c684044402827b6bb6e7b170976f794de32cbc" +e9f151b085d0ceb1ab157c8ae5d91d80446c6de4 = "01658505f306bb50408f6d0de5e3673b2a7cfed4" +f8826a278862d70f7d180b1fb31acd0d68dd1f77 = "5973b52b2dd50abab01d05d2886efda1853d9283" +f92ce72ff65b4277b5c594cf2b0dde8bd63493f1 = "ab2ceee5ce66df211d60442fc1fd1846f97ccbc4" + +[33729d6b-6e64-5c8d-a7fe-d444d17d628d] +1404ce96d15352c4287103a01b43d7a28906d04f = "c6d303b4860b037a023b752b25a1cdf4ea135587" +977f5d22661ae59da7582736ba6282661b542911 = "14c402d93d57d0f222674fa6f5bf92f44e7e65ef" +d9f228dc92d9bdfa3fd0cec61e087a9d577ab2ce = "2d684ad3bb8ae5c51ea04b53ace163f3519c31ea" + +[3391f64e-dcde-5f30-b752-e11513730f60] +28c858bc9d734bd5a880c0c9a641b303c07890e2 = "672be7ba8def063bc63dede5d7693511d9a311fe" +30612242aeeac7c23c236827a1f013c93c4ac5e4 = "d3bbe3983ec0333ec81f50a96508020637ce0b35" +31aa7ffe2d92bcc8010b32fe2962889550fcd75d = "8c2fd47c762646129345358881784c7b0703268b" +aaefd43a5f50ee9ce274c82ea120693228e9a72c = "3e57d971d883dceaa7d0a9407fb92f232277f1f5" +b5af78174ca5678a5c9ee0db946afcb5f1c71703 = "ac50594d0f5a8206a1ea9b5882464619f621ebe8" +bc04e601fd973f9e79dc5e7a357d766a84210ed0 = "e0f7fed1b80dfba8a7275021ff2c09bd64251846" +cc95315799684837ac2d523998b3fdbb8fa446ab = "a2e4415cd8a181984ebc31bae10facdf873f561d" +d4bd403fc08c030a58a89c54f974f406e9bc5c71 = "2e232e80f24aac9979e38a6df2a9e4f35a2afd56" +e5a1de39cc6ff95ce8be8d5e7487cf859d9d4a13 = "e71458a18f89c2536bc2929d913607250db59f8d" +fe45e13a9baa88ea5fa5193dc9cd3b366d639b40 = "eee2fb7ccf48bf4f5c3ae3ea0abc4d930edd1dc5" + +[33a4982b-2a1f-504f-9f57-5459487c996a] +6b1a3d7e4dab718fb4432a278180387fb84a73d6 = "3a0c55b2f934c1e79737600b09f6524f144dfe16" +b4e232cf66052c053038cfec6fa65bfd42f8b036 = "736a315a37a532b0ba615c9b9ceae72f6459abef" + +[33ad39ac-ed31-50eb-9b15-43d0656eaa72] +37ce1810bdc2d7381ec5445cf93c841b85742e67 = "86ebc34d3325a3f54e6b0095b84bea29f55cc86c" +4a1ba68cc276bbd60b17a04905420cd3df7e35ae = "0f4af37472ea2cc5854d383b4da10bf4c44ace8b" +76d2e5c6d48c94669c6de882afe09b41243f4fab = "2b6e9f68c3aa9d8ee141e85561291bde327d8df9" +7c3cff06e12a146b510eeee68c145254e5c7080a = "caf2fedf93394fa1ab7b7e34358ea417c2272d8d" +912cb6cf19e8abf1a6206106b5f053f8f5e3e176 = "75461e1e1413b821290c403e179b6db19671d66a" +9898feb7fb54edb5ce72067b750f5763648950b5 = "7badcd315e456ae20228ca5abe6b30da0b0a78dd" +a3d30ad857b6bbc5a51c734a133d6b3a811cbddb = "ff8e9c1662f043c59a2451d11ca711c3c3e6e99b" +a5d7349d531b6fcda9610cc8a5060f49cd63447e = "8629ed446c77a3c8f44d264f4d7ad980cb7c7b32" +ccd85899ea9d914f24337b76471a83422c6658b8 = "1cd969ad4d1d06518e3502ad1deb46022e2c3bd3" +d2c8b0ad22e978018a7d52b14bfbddb1fff4ede2 = "fd3b263ed8df4e400a85354b474d7342626b14b7" + +[33d173f1-3be9-53c5-a697-8225b67db89c] +43df1f8b70478275a50a992aeca3cba67a307da0 = "705e6c6523a1f8fd2928517ec33397e481d082ec" + +[34035eb4-37db-58ae-b003-a3202c898701] +034f6a4a9690c98fda47f4681012fef1e863b74e = "b9b29405cc1fcf1cd2b504a8b4515ba333d20705" +3fb845a091a0f253e61521d5ece684571f529765 = "4ae36f307e4f191cda3e12745485fc1059579d6f" +53a06071384117f43c869b830e9735d10ea1265c = "2b10bbaa16999ad828ff03e49723735eb2cd0971" +5749781cdd6029bcd67862266257ff8989245df8 = "72efd6ae98a6d24b9564f5294c8fcc2d0b1710a6" +5a98361ab4d3d119f96c145d5e15a860d8c81cb1 = "257dc4c1cc30745ff03b2a7029bc758c664afdc7" +7dd7a4e57f51fbc5c4168c6db46ce0a351b24a74 = "2a997aba53ecff1b19e6c78f1181352787bd9c54" +8f693531ef2d6d3287471d64c15f07bc955dc06f = "f7df494d21ca067a050f1bcb6416cfcca23df53c" +aae471166ccc7b8fa1d5a43c5723e6bc5098d4a7 = "95e906b8f5c9a44462562ecb4634c0a43cfb61eb" +c916331d948d2a219223716c79c8d5f5f4b94c0e = "086571c95b4d06e298a6e33224664c80cf4ddf11" +d2321a40b826f84204f90d6cbdd81cf3754957fe = "d9ef351268fe2e154aa22e34867491d7bbf3ccde" +dc352c9d4d60c533a50804bd6b6a5d4ce86eef42 = "57b6b9d23bf6554eb1a7ba716736ad5db178b39f" +e8c04b739b37d8d924c2019b0598c99102aebc10 = "9f98b6c880fe9135885893f2b0fdcdd828cf83d3" + +[340492b5-2a47-5f55-813d-aca7ddf97656] +156d1be6b3e0165fb70896b00ec959715ede03c8 = "1ee9444558edc5df1736538b0194e54bf78e5d47" +1a895fa3f48c84a8d7dd0424f8f84aa8d040570b = "55c095102b9ffbbd39694295abf855aff2ea0be1" +67fb74b9164c07f16068bdf7331f617a3c952c65 = "ee380f082e1b0db48fafe564146474b4fad14b3a" +c92f4229c9d0f24fc92b0d1fb5d1ed443c6613af = "04ccd3728fb926f74376d71171f9eebc3f59bfb0" + +[34107986-0299-5882-844e-fd949a1ee147] +459dc98b7a0f96fd8219717bdd73918ade9dc9ff = "2e5a7ef9e52624af8e5c005bbeacfe3dc49bb4d3" +80bc656d389d19701ca8297bedbcc84468c96b77 = "c16c3f837d075a90b64c84881ba5febcb2d25248" +834c5dbca4516c42d2435d6616021ba863509b8b = "4025eb48fe1573c386465a9b997bc2b086063cbb" +a83155f180b23c8041a54b2dfef51c544ab71542 = "19e86f0550a844aca480d564525c85abae2c26f7" +ad4e8c2643ab7d46cd082a83b17722712c0914d8 = "247afd71e3c3065eeebeffdf1902958e495d7ce3" + +[34431166-ec0b-5f3d-af82-e2d5065c44b8] +28f86848bd8e8bbaf744185e8f66d1210ddb33d1 = "8abd645f2237f060b87f6f4e08ca6f8d300f49ac" +401c48f7437b5b8959ba864f0fad1e83791b398d = "4987339c8e50c700366427336554b112c124422e" +4d691ae0803fcf83047ecc94fdf13d1c5cc5a349 = "1a35d0b9692b2a3e822e9b5f54b626847b355af4" +5a4e1fece59ae14ae194f5ea47ca15692add9617 = "56b2a98ffc546e87863c6d38a9bcd76a48a5e508" +c241041caff78a3fd0675c5164f43010defda0af = "dd92da7bdb46e15d3ce1cf012a30aee4c4e3312a" + +[345a2cc7-28d8-58b2-abdf-cff77ea7d7f1] +a89685255992f3696a55a4336b8014f51f02005b = "4ef0068d261a769ec42eb5e52642e9ce02be193d" + +[347217b8-be9f-584b-81aa-3fac8492ed31] +52cb9c915d299eae374493a9fd36269aba40ed50 = "ac1179678951cd8d437cf24464af04315b28b293" +5dd1100c24ef3ffd777144dd4d6cd14c69c44699 = "2f3b5301043c71d1a3debb8a7459dbd5f747d09b" +e882f75890e606c1f4916497f271e0c086e1250d = "03885e35014cc51745f4f652cfa48a553d80aff7" + +[348f2d5d-71a3-5ad4-b565-8af070f99681] +0298af1dad8e32de742e1ab44647dcb5263e1cfc = "5cf9be57a5c682a296bba9e4cc56e12d87406813" +3009f58fd9398e3f58402b77b25ac538e8c93f72 = "eec257fbd3194f53efe700eefe722a8efad89778" + +[34922c18-7c2a-561c-bac1-01e79b2c4c92] +40148ff4afd2f40d6921e2324e7a726ca48bd3b1 = "eae522f0bf2c0a99ae332a67deadea8122633534" +48c469903aca5de8721eee511ad327037320fc4a = "c053f171d2496e517932656fb60b03b6452d4ab6" +765f11ff7300979623832523e9496fd2cff12a46 = "9b4e8c50d51f7db532c73eae0c1adfb1b57476d2" +7c72a0e214005b9ae06baf98da5de06c67d5ee9e = "9de7eaaa03e5cd0f9d4b1d229af7a06a530754e4" +b09cae9b295921a204f6602136688752fc8be89e = "61753d91dead78b972800a91a7ffcfadcd00632a" +c86ca0104b0940616aa8f7a75a983265e07aeb72 = "f07ae5e6caeeb7c4a522c314e04193f0a66ea494" +e72c0a08955173b8586433243e2b392aea612958 = "7fa2962e97f49137af2338410d482a0ea54e319f" + +[34982d31-ea70-56fc-a7d3-dc148ae8a7f4] +a18a959158fb146ef1b731112fc27b3d5d3d1b35 = "ab631ff762c2fcdc825717dcf5c816c3e5ec66b6" + +[34c9ecfb-342e-5e3f-98cd-df711e743db1] +085f1bae3be096858b7dcdeed6bdba81947d0237 = "3cb9196de15c15dcdad91593cf2eeb05e8f84a3a" +50610d1252154e9cab93afbb42b8ef30c048519d = "7fa92257285f777bb7c80c506aa1c125e70f453e" +57da37796874fbd6a76aded2dea0eec910d96b1e = "a4b5ec0a07dbf5eee15a53f1e4590e14560a96ed" +6abef74e7332eebcdc4b7e475ca8ac097d714b13 = "b4ddb81a8dd53bbe9a04a166ae4f94603336f653" +8da17067484e2ec277d99d4f49e601201b91e2a4 = "f8c3239c0b8eabf43aec40bffe59d92ace84a2de" +a7295de641b7492ed803f93386783bc0e4e8c1e1 = "cb35e1bb1b190b9c3c57cea4caab9cbce9a55ddc" +c727f0eb02e81df3035112407bedb32e94014238 = "3e9f35ee4168722612b7c45b45850c60cf73c550" + +[34da2185-b29b-5c13-b0c7-acf172513d20] +053a696dcfb11b30095b54e0466fdc00079920b6 = "a9ee48cc169016a23e2fb94e78030171e72daffc" +07111174de2d3f4e35881e0704ea8f641badbaea = "e74e175d5b9c7411f17d7db90ccdfdf492bde9e9" +07cde024c3291652304bd509359d3e9fcb0861be = "15a65c3f5e1f076bbafcd87c1d96381defea2419" +0a37517349e08663f921b0bec96d8b34f1b09bd3 = "5c59f9e7d1e54b97feff97c834d08d13c565aa37" +0b398b8e49a09315af55a1d7d19ec29911c7bd89 = "9d6d610c42ae449a57312b4e26d1a3287f4a83d8" +0b4b92a2d9f868eef869c3dcb3e7df7e2a62eca4 = "82a5048486c009194853f4325da87701e3c5c67c" +0dda698907d21ee5389eb0c3857ffd5354b247c3 = "7ea37fba5864d63e9c14fffcc8f417e870b13dff" +0e013385d9df34b3fd33ea3311cee9115ef845e9 = "bb827cfe017d795a9a8eab8511a27bc142f71c60" +0efce72d06da55837eae2efbe08bcf52f1ea37fe = "cd57c6728bfa4d250ad8254eac84fb8341333bd9" +1699438e4e7c2c4c5ba23989e6f9602f1b8cf145 = "9093106e93fc03b1ed004822aa8ffd5b7afefde4" +188de7a47f874609be576ac69bf8ab9739b7f073 = "86bc9e7e35b259bcb71a74629c87cc571d51a0df" +195de1adb01aa484b52cee9669d82c51dc14a013 = "8832074dd95e8b2dbaa1d6c74f2905c6966a0125" +19e68663873813fe19788e5c1ba1496b6a46ffe5 = "d8d753df7ef7408111842fd1549d3a952ca9f1b6" +1a27ba9e388099ddf03cf202bb7498b0d0211357 = "51a2292fd678ae5900473f69c0c09e27fa2cd580" +1aa2b90b368251c6c05659ebb884581c998299dc = "3f4ea89d06d19cd5a2d8430aac835c038e3951eb" +1dfe1e191f09bd42f633e1537d4e47f4f4618992 = "d3a3a558c2d1e40e03905fea83e6846964705cea" +1edb00fda5d9c0b60f501bc6c530d95876f7227a = "329be17e1151d2056b2bdcc9d7dc03c5d84919e9" +1f302582dfe2c02945bd1f6d75b360a85ad617d2 = "83c7bc88495aa796598e8f3aa682065a1dec8083" +20ba7911c20cd70dea9f15ea265f435f3d028019 = "6d729c8261ce546ecdf546d02824f4c27a5630f6" +20e454dd62c1c36f9eb39164f9cad5da8ba421a9 = "47803cb15d33ae29240cba07c84ab23cd2a10028" +226bb437efc1f5927c77e2f7e0526da776264ab8 = "796ab395151ed47df970529c2eb24082aa6f66e8" +2436d35cfb4d390f397416ec20f43de5c8a61f22 = "6e9c90ac34a173c2a2c179735427078b989a3bdc" +2458d81963e14e44433f73bacdda50c5e3435f25 = "44d5a55d08bb9b3ea71cc728556a461bd0ff670a" +25344358800310ac9797401d32ffc8060a0a4e1d = "5046025b0d770b4f8c10a27db9c32845c263ab2d" +2583c3827f938e3943eaeb0bacf404c8b2e3d55f = "5729ae3c5c149f7f92ca197d0017508241aa2b3d" +2c91b7a12d1f206f06c902a2b687cc2587f7f614 = "a47e1ed9d9b44c887a03727be77eef652f7ec3ae" +2d0f59007ca318c76d1c9007774cfc13d7134ebc = "b7b027f4ba47f6caefa16ec8131d39c422d2b8d9" +304683587e73a42fdeaa696e8ff5cf857ce8cc3e = "defae9c3f7a9c7a2f5bd1fcaacc888e66d708656" +348c29b813b48d6934ca92f0937576d2f2180f3a = "02f71fd9cd5ddbf8ba908c3ab98dfc872a0936d8" +3541c2df0ccf918b97c5d8b5dadd5aa9b1e3f890 = "14dd36a6d0162487a7dff4cce37a69030ac94500" +3582cf14dc64798b8cca0dd8fcb55c01bef038b7 = "84d66dd2ece6d7ee0de2088d0c70848a889c38a3" +36d879c25cf9ad4d451e5f1e13c73f16a79443ec = "087e2aa3bd8d40ab9f79797573c3a913ece53f83" +3bbd9536360ac0925b4535036b79d8eb547db977 = "f940beb99dc8b9234336a5eee6d8d33d069b8699" +3cd0bc660ef1553855a66fe82a4999ad6ffbe4ab = "1a02277c48062aa59872f99c6f5abb62935ff431" +3f2391c34813b0aa930b4f08aafa92a9a1477b65 = "0427af7e2c8610c8d8612a104d48ccacd69a354b" +423a025603d81449878057f5f4e20c0177215950 = "e1e0d3166c2fa736bd2af8785da3df9e17043b25" +4496a6404ba4091f1c0a05e7163b5d952cb033a4 = "049ee1c50ea2fc7f08eb1d5719eeb4965b00d998" +45140ea4a9cdddf0c7f81ca6c6cf03cdd17bd925 = "7627a23d5624c565ed7b220416231740a3a00cec" +4aaff0777481d04470f5a7261d738a22e8ecf1c5 = "2891ed6e8472a7538241dc9e6dec4bbbc3a26f59" +50c6b364e3d4255c50e7eb66e7dbd9fceea07302 = "d934a2992bea726f38d4a2f07de8c3b02afcfa35" +53b706bcdb12ad49bbf7b68d77f4589aff0a8b80 = "9c64a49cdddfd4c393cb1ecfe798923ad6f40e3b" +546eccbeac2ffe3f80ac4854b7d02e853ead2565 = "50dbe2ed765ba5fc0505b8c6a8f7bad1938a8f03" +54ab44412261b7e1de9d0b47242790ac27b13d9e = "89c74cd15f697619c3f4242fcac1a12d883c9107" +55265a76a5773447293365395a1416a6a5cc155f = "b6690cfb12c5da8e79dd9bf5b766ded3fe5297bc" +55dac99f46ea8f0f411100ff1e36444c262ea1cb = "e2e8ea87e891c297c3bdb0c25ca1b31001c11a3f" +586d7843c3d5222728a1675d1174341469b94f97 = "78691465c184fa2fbec6981b9a65e0ec55f71169" +5883a74bcd743bbee356c335df3d4afff1532556 = "fe66544f7d727f17f8986895e8394ce9871bed94" +58c52dc613fbc9e6a9943765d029f308ad79bb6c = "97425d12071446d6eff76adbce43e96dec40bb38" +5a3950aa76119654289cdfd4959ab1c299dcd397 = "60b7d2f7a76d59e5ef9f348ab7ef3fccae3860ed" +5b03745a6a948781329c444f08ad67cff63f91f7 = "173f843eed911bee22740ed33420edc11889aff4" +5f534b055d6fcda4761078e47a00d60b14bc817f = "ecfbd898ce858ba14736d391f99a72b6edeb6297" +6473a35881c4698f7fd4b786974100d0b89ae492 = "eea6d6423c050eabe8d0fdbc42c336527c494569" +683ff26ecacb9251b4ee92b544497d4f56a97b5d = "b1cd185270da4fdd096421f05c52940353c754f9" +6af2f3826201184b4ee67882d95cc4112a0883ad = "e394b5063f625621bfaf6b31643c8b2cbe038a2f" +6de3fbaa99ee121153c97a12a93850aa01421903 = "be2331d61d28503faf8e774a7432ed21a2de7fe6" +717dd90f28f2992c94cee0d364e10e1bc23c649d = "ff972bdecdf60256b5837ef1d6004462c238a3cf" +73c4a03c82928bed5656103ccfede9a5c878656d = "890ff7d5d02a26d5eaed157e47af20146547d3b2" +778a9f85b01177b7f306c04d493dad0c86191cbf = "a9fe65a847c4bbec3abc4d187f740f55ecb5e6bf" +779a8a5da78039b2811d9c989d01028084dcaa06 = "a63512bd95bf4354b3f505955e3896452d55f1d1" +7985d34ad6b17275570861812fccad1c887e8df0 = "aeeb454752cfdf999538074122fa96bedd9824dc" +7ad5db7a6cd3227e726d7043d850f819bdfbf51b = "9af209b0f866a1852d58b161dce78c7919e90684" +7b874aa85e01549240f6eff385e403f70992336a = "1680bda6f248086f8c2fb0f880cde9b5eb8e7c97" +7d3cef6838f0ccd4f6b5b98494abcdfc4e34c998 = "349b3b103faa541f6a3683e4f77181a60ccb0573" +7d4dcd7f0bc08f987ffd78c2551680c75b11c787 = "6688babe27842692a5ed17e45be27c49bb214c41" +7e6383587cb56418e5e5ed758f35fa49b596ded5 = "bedb63930e9aa2c169367e4a540828a1aa5bf2c0" +8567fd919da21bf14ad695ab98f2e76efdd5e284 = "8ebd3ff62948913d948a4dd6a4eb11879ee24f2a" +86bd62b86a40bdf243e544a1933518c8c9aea02e = "bddcfc76027a8217eedf91a0d5b7e7bde1a06767" +8788cefafce9505c145f5d7531b76f37b3591565 = "4d0323bd8cc90238bd5551f1ea2dc52f9c74a7b1" +8c6b04c747279e1cd9479a14bad32af739f76d3f = "ab62d22e2f54618ff06126be09817c5ec0661048" +8cca897ff1bf251bc2fb6e806ec481cfc478de26 = "19a012092683fdcdfc89bf94f449f8d39c9f1384" +8e198e977db5cadd173d9111da2a1fa1013c898c = "bb5d6c740bc164e6510efcc203c099538662b084" +8e20366c3ab40fb9667c6940182d71e750bd09fb = "9e50559590e186c036fda1f8ace0e42fdf2239d6" +8ffe385575550eb358d6a117c2da5498b777654b = "b8f40b8b7b4b83e65c651f9c2a5e67f3ec3dd6ec" +91b200bee3886cc380e07d58f7dacd747ffadcef = "5cca084a79c98084e9ff337107844b91b465845e" +93ff2e1b1b77c11f7387a1997d6ba69b544a7dc9 = "55934ee23f557e9bc54e00587c0936377a9fef7d" +940149756ce61418858ecdb447641c08305b3337 = "11e1ca949f148c7db5d9601e3ac88ec744a05eb0" +94423b421201052f74ff9acc9bdf6cb8838f104c = "cef44d1646a9249c4481996d6f0b141c5e9fed6c" +956b34b719347e6ebaec9b920bfeca7b4d42d593 = "dd0702395158b10f95e751613d663b62df5edcd2" +95b25237b253057906f6c7bedb7ab464b535ea98 = "3bd44feef7c403b146dc6d0f1f5ea35b60713a95" +96218850a5f3f762f666684cfe9032dbb2ebcc00 = "f26a6c847673ebc16ab56fc8139c3400c7e0d885" +9803242605b6cfe659298965bc0f97d4e830479b = "9a80c13785cf4f5cbd51f86d2ac697cb6f9d7a56" +9a64b3754ef9ca9efc949181706b498ff4fdc112 = "06fd9408eb523df862d3bbb690e5c06b06730862" +9a8743f2477d4ac2fa1643da19d20a25c26199af = "30fec5eeeb931047d5254d5c1ac2bae4c0d2d65c" +9a955372b4bde66bd115b683772cbd57e1226bc9 = "2bb88ea8638d0bc560da8ba992287582397c622c" +a2b9b90d6542d36b48900e5b91272317fe65a2b2 = "f9f32f48f2137c4237a058a0d20ecdfd3f4b73e2" +a75cf4fe8129939062ff82ae79883a7c4dc012fb = "007775bafc08b4146c10e7f310fb74608e8f3549" +ab43b410b755317a1b0561a374464bdb3a44f20c = "2602aea1caaeb145f7beb688cc0d2bd1804784b9" +ad38b08fd15775d2068ffa1ee846f1ee97156d96 = "a47e1ed9d9b44c887a03727be77eef652f7ec3ae" +aec96b7952ec366c8d2e9f26abfe92621a9f4849 = "353f08eef272397810f27c3357bd9931bf12ecb6" +afee7526b4d9486465d838c7bcf89bd8618e0eab = "e85260001ea243eabed7e408c745cf78ff93128a" +b00c9a8a333e516088da80b0136cdcf439411d48 = "69e7dd087f6b0c0148e6c9285c6c3722bbcab0cc" +b1098f48f5de27412323eb75f60474370b654fec = "a15332cda6367b956d555190c1b8fecb0b3112b8" +b21ef68dd9cd769dc60cbba14222473d7743d663 = "8170e3d8d311910e698c0b6abd369b053230d268" +b2bb3abe8057793f44d48ebce9f05c23d3dbcd69 = "6ae653863c5d42e7eeb06cff7b190d250f12ad71" +b56640999f12d6d4a7f89e5deb72708f7c922fdf = "e0c0fa185bb245fa495bad54655ab21db07eff95" +bc9f16c6e582345df8517d4f0708fff8138c2baa = "b755a43729c5ad89f0216b97cff35d462d2eff6f" +bda761307c2d742d44defcaf2ef28ab0a9a8f953 = "94008408c0827f0cd27bd8671e68394abdde5ed6" +be6c6d01697432136d4090ae3515d8ed8170b84c = "5d2010b9bdd346aa4115ec2413e5ae8ba00f6095" +c30c53b9f5a17e6c663c9302b192e8262ef6e9ab = "dbf91af89ac28b1d17d0b6956271de24711e80a4" +c38d6cd91aa18a7f874d2b976a3271ccb81a148a = "8d1fa26f18ab1c9752517d51f1774a5b94118e91" +c4413a894ce85c01b988c43d1a350fc5fd2cca4b = "e46bb2d39f486171abe9e60ee78caac6944deeaf" +c6398639989995314c56a1ce69d0f2d2604427ce = "3abf352267f14a481ae2fb930e0db7638ef4900f" +cc89285a9391f029582827d07ec36fc9f1566ed2 = "81478bcebfff5496a2ec6436963c80f529dd9f8b" +d013435640c4098400868df3ac162006490f4129 = "b6f80fc34e4f9e84412c23728b2a7eecd439b185" +d12d6fb3951707c78abb0fb2391d6f4e28e3398f = "5cd85be2d038d8ad8e041b048d5aa544723cadf2" +d22506770d4b52bd2409fc70fa879e707b573949 = "566f99863dad3ceded8924137dced54f1009efd0" +d5bc9f9c5ece8a315091107383c235de1647786a = "5e173f35b9053f2c8ff527ed8f6cc02e5bfce796" +d742f67b77ef9065d5309c375def6045bcfeda7c = "e7e39ab53ba8390a0697ef822c7f233a6af7d3c7" +dde44ba380a9526c8687ce36c120ba1aac28768e = "c68ca6a6527cabdfc8c0359660bb48eabc4222da" +e324d638fc7b5f91afc842057a9aa6054831297b = "89d0672ca6f70b3cd1b88d0eb916ffe58e8aa462" +e3ba9152b3740aa033d1a0dafce054ecdb59049f = "79414087c49575c2b21bac361be05130b731e381" +e3f2fc94ea3420d19601f13012414c0c9a424629 = "64081d149f3414343df97568e7ef6c0ede6ae139" +e628eb0c8b4706100b8c5c66ebf112cd62a22b4e = "e069836fcab9713debaf5caae41cf787a1caaa1b" +e6e10def91c59e08a729330f2bdf7015c26208a9 = "7c3198dffd8e8b60657192031ff313319001f3b4" +e7a4884edda5d830f25cb646a2aebc376125a94d = "cc4aeb74a5bece14df4a53fd2c4dd8463a7418c3" +e8e69d197130a689e472e4d9c3f329a037996335 = "dd30524ddca2e009a63ca87f45986cae26b37628" +e96a5e8a1b200c12cf21835c8e57519bb8795c56 = "05a26029d97c30815c42b244edef24d1c6639f5f" +edec13da63a463b83bfd37551764af550f199fc0 = "9bfd137d86e787f5b4b15d861cce031e80ec49e8" +efc3488ec849d84693c6d288e2fe1c84e6e63f67 = "d9e5f759f9f57d9658377cc6cfe134505953f09b" +f008a07cd13f5861228d3aab35f0171236ca60cc = "2adbd82ae6694a2b54df0b000fcefb6bbacbeeb8" +f373714dbc1085943b6dac9f378521b21a9bc2d7 = "74976af53dadcb78166e2a83888c6cff51620c59" +fa0053b241fee05dcc8d1840f0015dfeb2450bf4 = "46e4768626967c01f0b4c5692e6f1bff8623a990" +fb88e6edf24ae287a05a65451b050ea8dbac0b2d = "4e2ba357963f7b733e6c28cd9b203e6e3a1756ed" +fbd9cb245a89af2c6d3eea0f1622729a14709163 = "7fcf4888fe8308c16ee528dfcd01b628d98db86d" +fc6af82e63e6e225631713491e58cc7128a358e7 = "b53977c8fd6b63d41853665fdbb1b9c4df35330e" + +[34f115b4-9156-5266-a33d-ca359e631fb8] +0959ad8d58211afb209584981c4237d29c33f4bb = "f7d35cf56e02b3b050316a56dde17a21d6cf1c5c" +0d73baff07f2a934c80e4382bbb851c3aedf353e = "303cbb2fcbf0ce5d2373e12943d6198c5b30a29a" +1e980903b45f382f3e3f585679db9192402ed2a0 = "a7d9383fbe224f1ae2f5297866d3a4de7db2198b" +5e3ebc5cf79fc094e27754ef71ab4f1b9cc708ee = "b082b50333b163922a651ee09da5e61bfebc79d4" +cee6708fc77ae9e67208af60be58c6ddfc429466 = "645e3c535fa2724f93cc5210034f92e26655ed32" + +[34f15cae-5318-50c9-93d3-9feadd34e321] +3a96b2fec830a6ffcbb63ed76f32b96c7c4f01df = "2b1152e97b04e8310663456b0df1920a6f1c057e" + +[34f1f09b-3a8b-5176-ab39-66d58a4d544e] +13b43fd7c403c87ddbb1a6c7f00b12c0dc90601f = "85b7ed337179deeb46f123334c3829cea5f368c3" +1b053e7f8d1947fd4b57649125ef025b6f46ca8a = "159a4ce759c9258574a4a078ad03873db2507983" +28935f65b9e5807535e6c3244b0bd3ce2febd47b = "6046c79b4902166428b3f41d78d896fb52f4a2cf" +4d7d805863305622f68a48223918e0ee0560db79 = "eb7f898a7b962740914c40d8a165601bc33fd85d" +588b53a3fbe0e8ff635e73f889c71aafc2e6ec54 = "65e22248e4a0921b9b0b253e9e9650b397af10b0" +652d516e633596b8fec29b0c2b1a8b69d4670b07 = "c2aeafc958ccae6bad6c1b11fb44d64b20ac8c5e" +87e8e9b07c0d2953689c633b2e3f4415314ab7e9 = "229229d6717bf15f7d1501025805fc9171b41a9e" +8a476dc8b999a73f8fefaa9c457b7455bd6adc81 = "086410bc46f0ed34d0c6ddb9bd1e077a7804c3d1" +beb5f444ea4c368d5191aa6e02447db97aaf8a55 = "faf7915c11f0d1f667bdb00c8d0975e0101583e7" +f47ba5bc1108f5c6457a2d9dfedad425a69ebddc = "d1aa8b4d8470c8db9d73eead0d7da62184cc878f" + +[34f3d4b8-9242-5bf8-8faf-4f21e918fce6] +048eb13912427304437e4658e383743dbb8d7afc = "21493efe1e623ba5917e735cf7db9750957c94a3" +d0992bc94798a465355c32b7c9ff950cb5f91380 = "66c2d628e0a025df0f98f2a77f93d669cea0e371" + +[353921e4-b2a0-5f7c-adb9-3f3137bad256] +03613362bddd8c1e69622dc46802b0e48a9480aa = "69a95a4be67e0a7688221bd3853d79954582ce74" +1a3fc3987c9ccf73c027fdb568c6c22f7b60e677 = "b889b5b3f4e7e357fd6dbc5d3590f3c550a30e47" +259710c5fee519d2495a9c226587eb472d6411e8 = "a97f6e0f48c49d0e6a0145371015cb303d4116e9" +326f6bedf4d371562dea0a531b52535bce88b65c = "204c989ec513d70e830327aab97bf08406f43235" +4e5d937fb5468aa776a9279c17d1bf1671d48a89 = "f5b7580277b804843304b3666ec82f38b7822994" +5790da39c7f2499b8bdc63a2d74634a04d0d20a0 = "5cbd56d6e775669f00e68d3e96c66011dd6aa140" +6036a9db7950f6545a1f85f950ba4aa10390e236 = "e01e5a95d844c5e7cbf3e8d66844beda65a070e0" +6b88d638132a18920828c2a7410f9edf75dc5a7a = "9b955e30d820735226087926e6c6c9773d334825" +727714ccb0ae8888a5fd6985a525fd052c3d45a9 = "a3cff522a2d99f6c596fdb399928eddec8d36acd" +7760c900b756866aa25eac32abc954cb5faa5a40 = "97d4bcb1e646c437ab6ac17e54a9c00db193825f" +796a468c404f951a3f783bea50f584bdec14b659 = "619fa891e2980d01ffabc60e4f6142a228211341" + +[353fb843-c566-51e6-ba49-78b3e3d5ebb5] +049ef8891a919ce973ffab7763374c2744aa7e85 = "fd05c82fcb30520763aab9633dfbac71198afad2" +206120409ce6a101aec86716c570c0828f8020d2 = "2dbc6862d3b88d300b0cb6cf28c3c63e614f0c91" +5f759848644a71f1763b5c470666e138e5a845fe = "117069b21d0b190e47515be35ba3f8b390fc4ec0" +99b2b0d07de33e09be364a3992e4be06132e726e = "16cd69e0f217e4300f447ee28026f3d740676769" +d54f5982323a073f2670c6e3bd8337d0a8368ba1 = "f02e3d4f664ca51d5c2db2d4006c1a7787570532" +e19eaefc3cc7c5c50111a24993881c3dbb55b71c = "eec06fab8d276ae44b1a8d5bbd34b6927359d344" +ee8f2d9b791b18143a36782892c5c80e1ed13184 = "c4de7820457f8bd9a23ec5bd6488443487ef34f6" + +[355abbd5-f08e-5560-ac9e-8b5f2592a0ca] +1888fb3f16bd54d2f1882b657f80ab367174a6d5 = "9f544b6c5eecd3cb3b3c2c39871c094650a72527" +3f102204aa1943e13d175c0752e5800b6894a39c = "b58d98cb1e03b5d209339c4e3334a3aaf98f1c7b" +56146f42f2a0080f7c514de299c6ca29b7370a72 = "11f6ced3b64f81605cc74944f50d571b4a747682" +81b3a9ff8e055316a4931bf2dd333c1582dc5b23 = "dc761a0a5f1a89e81c294d831ae6c0d0733c4560" +ada4798c16b501fbe0291f9296d7a7c0ddf6f0d6 = "0794a7789e35e7fe5bb02962eb90a3d14182040b" +eca50761d8cf1cecc67921d3d46476298e0907c4 = "4a1cc3a13458859d0ad6999ff1f7ece6201e7bc9" + +[35b54cfc-a451-5a54-a69a-9b99a7b670e9] +82cdda0aea5e7f5e107e7de0a57426747a02a34f = "c5ca9d9f1e698463351f0dd69a0491c28c31fdc4" +ed62a02f0d5b2fc8eaed23b93af9535bc6324ba9 = "e23aeb4e4c2c6b6143a9c4931e5246787ead1497" +f4a85f173ef45a87580a44c61d84b9369320a845 = "4e3f4f362a21b763016c731ef8cbf5e11f6a511b" + +[35d56a6d-6727-516e-9b7e-96cab7480cce] +056898d1a3f1a2f2d3f0a603e51d53243820947f = "71309bb012c8a3abdbb81d7884c5703bb7149f3c" +1b7074c2b78f46c1a47b6b9334aee9a70ebf5797 = "71cd31ee1e3f001bf7be0d0652ee5bf77c242668" +29028abbe7503ad456e4f9a059f1ccfa7f203669 = "5a0802dedd8e2d592b4a4f9662ada79a9b58fc96" +4714b648b6aa142df6af16a9cc0782f31b01bb85 = "71309bb012c8a3abdbb81d7884c5703bb7149f3c" +7f1ea6ec4dae352404b929582edf9909e1653fb6 = "23393f0cedd32a9b5edafbde93f8b6f85cb6ec62" +ffad5891682aaead26b676576e49c50acb4cd986 = "43ea8eff65ee028f4d7fc08bdfc48e02b4985980" + +[35d6a980-a343-548e-a6ea-1d62b119f2f4] +0a613728153178b7b6f7912f18b0d89164e6d564 = "acaf8c527a4d31e5a00956329fa776c7f931b483" +0c23fcc97ddb943fb48dd46ef7629a5f2f27d12a = "2a1bba2cb902fdf8df1a7a53aca1d098aeecc11e" +844bf3bfeb0a1d8ef6e964ecd0fb2953b83d0347 = "ee51d4556381a78bac213633b3ead06db53149bb" +9d1c7c72dec24612ba162cc6445705fc0588ead4 = "3a50e79a26c2d9cdc2f94f652ae1f1c6d2f23387" +d69b8254d6b39f4a63e7dc1e3c07cbf8505c7da2 = "1254df3c7e5ea9869f914bfd7f4aa563a90b6cde" +e883f597332224fcde2172a68d1a5c4b8d711b4f = "6027cde85b9cf97d6fbc840641dbd1ef4ebd3fda" +f0acf187b04f846e4508be3901b9fc58a035da7b = "f09acc46f41cf2bc55b1989ea5159592297b8370" +f5542f6165653267b71f3ae9ef28629e77c83e79 = "9dcc1006f26f49dc57dee29663b3af3fd881c455" + +[35dd6a29-728b-5d91-8fe9-8df4ea503c83] +7ab0c9addefa3c3528947c4f55ca83867683e31e = "99f71360079e9ae30b6d0115024d6c29a4381344" + +[3637df68-df41-5d16-b00c-95ac8c2142c5] +0e0664cce05e10efc1351898f41443c7360e65d4 = "a8586b9e9818f006b83449ff81651b5692a2d235" +2224a458fa54b0964c7a039a7dae7a6f67615036 = "37f766ffe2e2ff7c16089ed47cf87ad88d3e38ac" +2870dfc06abf87702a57408be3e25116de57e57a = "cc2b74df5a8c34e0df9d8013c2b128b5f3f20b65" +485691fabf06d3a7a0397e00ebfb830fe24a712d = "e9b3a6421642aa34422fc7d4e0c0cfc8d22c735d" +5510b3762998d433f539d9fb653617dcf198592f = "b9c425f352df7f45468e5fc3525ee230c638a1e4" +658d40f7d9c4dc39e427b4706db6e610aa3080d3 = "fe6bd8c357e3bc0ab10af6c71c29da03faef806b" +789a12fe4232fa0ac80aed75244b8f54699d06b4 = "3be5252c52d9acad8d46d0c539e903c32f0966e5" +7f5e7afd8ad7c2fab70b812f6596e9163b9eca70 = "caeff75a684dddf62c4d5f115c621d59489964c8" +8f87dadc7bae182e0b3adf7150a54be11dd2dab1 = "0b4711391d792220681a88153094fba3f7fdf5a4" +9bae2aac4542b05db0fdc000a020d8a713874fd5 = "33d137fb9688293ea03c89296d784ca9305abc70" +aa0ee593449bd3b7de74a1c15b5cfb327ab42473 = "125f18c090a126276a715fe716a9f3468244cf83" +c0ad84c4221eacb1b646220de1ecd1ad62647717 = "a380392899db77f24224fa0c2dc4ee5759f5f7fa" +ecba7c7681861d6a078b835c6fb350053e1b1e97 = "90221f7b41244297a2905fc57996730bd0b00019" + +[3646fa90-6ef7-5e7e-9f22-8aca16db6324] +36e79be0a95f05fe4cfee976ecef5d68fd42915e = "ce7396c762516b904ce77c549d3ba341c3208ac4" +4d29bb828f624e3a2c06d2a836edd8bdbfcda8fa = "05e0cb58b75e5fb2d162ad02f9746c8e668210b7" +536ae0e69636d348f71acca8908a66986d12108f = "c9ff6f27ad556609094ed7edb74eeb4f7d8b7d61" +575fb8b3231674cf464ac3781c4c4445aff78931 = "ee59970e74c04c11a8ec8a897088a8d0c8f39fd7" +6bfea3156cf3b8cf80f83e0f09fc059584ad7cc3 = "60c94dce3ae7a8640728bea06551815e9a3da85b" +95ee7137d368e59de51be5009d5bb4e1f043b077 = "04276948cc7f73ed19d64cc93429c7e0d3fb548e" +ac27ecbcb0d2a69ba34000de6959100ba75f2f90 = "7dd444ecd4131c6825f6eab99da44471183da0e2" +b62ad32ae96c83489a7880b25e6aa62c8fdfe571 = "ef2db324fcb84de0199ef165eda3624c36bd02d9" +ca924a85bc245a00d944e95093fe0d10b58e077d = "623a3a2c88581c30ef617cdb229990afa8851cf5" +ce048508b9513b69bb35f0bdde37ff62f8bdafc0 = "9daf715fa5adea958d29bca1bedd1b34c0c4cb58" +d182cf4870d0281502e35351f617121f02634ca3 = "8f8c0d4a6d28621bfab0b31bd20aaa9f6b4e2ba6" +ebf176a519fb0da6dfba61e3bfd398147ad7d7b2 = "2a50bf71d30b003ead491ccbd627e796db2d3cff" + +[366cf18f-59d5-5db9-a4de-86a9f6786172] +21b7742875104380aaf88b7eedfaab34065162c7 = "f2eef16a159827c54bd23f1882e13d59099443af" +30ba38f785256c50af279f49dc22c715bc6b60fa = "b75ff230ae5e1c93b9d37171b1982d865dec49e4" +40fc23fe31db29fdd7a7b5e046c81d2db09d74a2 = "ef1548eadec08a6d78d68074a278a4bb9e1d11fc" +505e85adeb16ed76d15b2279ee8753784ab9ee95 = "e4d79a08b67f6855e8af8e2686ccbd150d2e88d6" +72ed4ce112e9df818f39664317f397cc28256600 = "2f4c5f081a467ea41db74199099e06bf7889b4dd" +9943a0dacf37568969d11976a7a6d3d442341936 = "8e3f749eb6d66ebbdb2c05d832cabf34fa19ff24" +b782a82dffa4c0d89ca1f8697dbcc409dd478b2f = "a26a0f2b45bbc6876f8d4bc3e2a2292d47ec3ca2" +cd58a541cf085b31913e8a22c3206fff0003a751 = "de90774c2f3733c42f3692a4274df690f9658f55" +dfbf7aac31875c69ea8def33400baaa387822bbb = "c0a38fa508ec6a7797d6f994d31f6b21b0f20872" +e87788bc6560223851d863355ae2c96bae6f9f6a = "0e57aa1bc68ede53c42b7d5981c8519b6de7cec1" + +[3672c612-5e44-54e8-851a-917fd182bfd5] +4f40af249791f1a4135642a56fed61676e93e6b5 = "5f241de0df1c8cf669dd2cf7ac2fce90cb932fdc" + +[36cfb952-b4c3-5807-bb82-2c0fddb7e68e] +05a8b176cceae13f29976bc5a5b46395b2cdae4d = "004756832cf985a034e63356393fdc3e055d10a5" +46536ced7e8ab711d354a07fa195b77be9c80cb6 = "bed0d67b04755fd69216e0a0fee41e61f1990286" +90094ba40013c34f54598e0e511cc88b278640b2 = "60b1034bf143a6ee519bd6865cff7ac7eab27f70" +9cba805897399059131992aa49a49d285165f5c2 = "d17221fceaea6f1a90e37e7de3ec98c8fa94ce3c" +a57b7da36324fe14ef0c2f6e830f215225a53da0 = "4db07dcc28db73f6280d7db875814eef49f7a7f1" +bd9a35b1b529af1ae235c8822cb0fe5de2c55b07 = "cbd96473cbf95e60ca976404aeecf31d0f9ec2f9" +e40d0ee62758ec783f0e0b9d20bac315bf83e7e5 = "43ca2afcb4533f9e60f7be87d01005aa0ea2295b" + +[3725be50-bbbd-5592-92c3-2f0e82159c3e] +091b546e3eddbcf6b5a2a8eb8df5f0dd9c5db3f2 = "7e9a02680d2a954b76f626ff3e31811f7ac99ffa" +6a771ea06785b951678c70ac7b7dc16811b49914 = "782cb08c43baa1ccba6474f1818636e264999983" + +[37834d88-8936-577c-80c9-1066ecf66832] +596e4b33ab9946bbd69985a6b843089e0e676c9a = "09c7f7ed242d731cd7cb77893829485212a2e7aa" +6e47e31d97b14ff1b66207df7bee209fbed6d192 = "8f80085ca9dd107bc4b93914317b57049171f491" +867f09fc2c36f538c2205781ad25724bd66e235b = "dca4f8ea3fdabae6a9b03405a763e4b98a27fa64" +8ae444ba6f6edddb21dc2bfaa2b74dd9b19993f9 = "9fd8eae20d8b413d21fac2c6aaf2f3d4fc874295" +b700968e0ac9337d9f14bf9e4b8a2dace547351b = "8f8614b10a40a769b297b8a6442b78f4bed3c6ae" + +[3783bdb8-4a98-5b6b-af9a-565f29a5fe9c] +21a114eeb43283dc4a00f5ce73bd250c34bd3743 = "1d354ad41c9e28300e7b2e0b87b15deeca1b998d" +5da8015ff14bb037e586c559cca15755b0b1ba14 = "a0094860513c23e9861a7938fedae79b7bf42e4d" +8c78f81189f37f479a0f735cd0d1a3d7e2a1e668 = "0e117d8b5948feac63d240692bda6b50bcdc28ac" +a082932de207eb4071861e3f2d22aebad98b71c1 = "71f7f50409d7fd7d0ca663095841f45680264e09" + +[37933770-58e7-5599-b2a0-fdc2bbb99623] +b15d70952ad18de8dd8f5f48a5588a72ff820f12 = "41b678c1a685f587e46f48913b7790906d665f57" +df5351093c3d4dc7f7daddbbd2ef5d48525fb30c = "7d96cbd110fdb4f54c5d8dbea989b1959be7c805" + +[37cfa864-2cd6-5c12-ad9e-b6597d696c81] +194236f246f30d6d19cab91292dc1d530e3c9e97 = "a99a54ba52dca4e21afb89729fd0f61d86224075" +58c0db4e8c28aeb2b91e794c0ad2ba6951cb90a4 = "8d99adb1ed78e211731fe15c2b7847171e117417" +72d64744643ba817ef79e07418d8b9afe5620f67 = "b0692380f3171c41ef33c972a1d76e5b0c0e425e" +826fb0a8c7bf0743bdf1e6679be985a3615109d4 = "a5ae4da01e9334753162267a0a7c5d9e2b0b3242" +8eefa802b9be3cc8750bf5f8c4a1bdf8843f9e50 = "00b24ac4d5b34f4a5faaad0164e0f473ea9ff9e8" +ceb7c992ba1022011af637075a6bbf830afb9974 = "1c48f6cd0aa9d5d9211c36d11831304e01e61ff2" + +[37e2e3b7-166d-5795-8a7a-e32c996b4267] +09e74711b98ec8ccd06035cfdf6af61f50a530af = "2e550bc2af96752f04bd15a315c67f283f00fd74" +0b8806626a2739aae1ecd8dbfc04d4007ac8138a = "9926df319a173fd386ce79abb02c80b783996d5a" +296e37e6d9620f73b7823ecd2590b4684b10db7f = "9a215c4e54be533ca0abf7a4e2d42ef32aab09cc" +4f97151d4552c75a1a2eda35eed7e7128f064f4b = "e8628ce1f5a9898fdc0a9eb0861d3dd8c6a8f8b9" +b1496d0e09e711e5b7b651b53c48e1f98dee43f3 = "9fae5ea9ebd62fa4c81b2d7d2a1c29a1a35bb678" +beb031ff6ae669eebcedbb4f9e380e8b41adf7bd = "de10fa7359fd0919ab381dba34335f3960c8f612" +d2225df05a2045e814b9da8baf76b3268eee8336 = "cc1f15455e844ff6134a6063e87af1cbfa10a293" +d41a29f7d2bf8b1a5b6955f654f4fe5f34f61cca = "79d5a0e44cc55d63d43c547eb9af2a0b37b5832e" +eec3108a648e37e832db9c826c39b43003d28391 = "565875071cb41faecf71d153ba7537071c9d680b" +f20052051843d377a7a11abc6b6404a254333dc0 = "a69afb39b7db58c5f70acdd1757768904c96b4a7" + +[37f6aa50-8035-52d0-81c2-5a1d08754b2d] +00255b53e7af60de411a0ead9512e964d38ff3b7 = "25c04659780fc6d40cca5f29179f63ee6c52568c" +06e12bc3ed4be42da92763c819a56bcdda8c31c8 = "a54d2cb777413758c655caafbbb8e80b9162dba0" +0da220d372beec8ee74219de12aa78c729a5371b = "6a85b94717b43b1376e7011485d50eac24eb0f18" +12648cbccf58ae7c33e9fcaf7089deeb1190614e = "f26f083504b6b35f97696d26e137b2b3b2faf35c" +159264999a9190353d63fb4a139f898e4bc6f12a = "a71c389ee72b944cf9bc5a53f8fe6110577a155b" +37b9d71da359b241487107feb10f85404ed9e8d1 = "9473b49020ab3e82a1659cd9470ae5b9cff6b994" +3d7c404810b9f015f50331ae0dc61eefbf9bc31f = "7a2dde5d1d5bafce841f076afac13d39a8b258fc" +438013d9ebf5ea1a620da4f836658bc8ffe01138 = "52eec59c0bc24f86d70aff806bf3b3f5c61e8a82" +483025d0b04e3700b67a32a7a67449f8066db682 = "c244bfc38d66cb4e11a50813c70417c8f324c76c" +51f2a5ca1bdf1fb9eaaccb969f10b5a56c25dce0 = "ec3e8d06fb6301b28feb099590499fa8f0a2a428" +5301f560de05b892079852549be0790e95e617fd = "2bd5a38652d9511904fea37c7c5dc7899f253696" +5363bca4b64ceaf64d0f9989bcc2557571ac0544 = "f779441f09d9e7d13910f2f1a9e11bbb6159e06b" +5d2fa86d73381dbf9caf97d8c19fbe9eccbdb79a = "19953575f0619f8758bb5b5cd8a6edc571b86b20" +630ea40efc44ec723eaf8a189213bf901591e77b = "133141d39d03c67c57175384e48e592d6d2d2575" +768aa876269b20b03ce75d38acff6284dc29b5f0 = "e33866f64a747aca5e6596bd8e512aa5bb7795a0" +77431a96cbdda3af91b96947be28268b7ec315ec = "e38a69f5c5dada189b65b9670e686f0ef94f4eff" +7bb5c828a2b45f0d9f7eb94a6a8aad80847066a6 = "fa24c35c654ef9580a51b07fa59f8121ef82b839" +942bb803e843dc2d679e7cce59e3f09c6178b389 = "c8198d3693aac72a60a1adcf5b6ef3af50ebc64b" +baba140254ca5e1c8f3de50d938041a29f2ea6da = "09f4a7092f3e3f26e850f6de7c4a3116609c4cde" +cf0c8bb1007c2399ebfaaf3f394604a2d39c6b69 = "635916ed8025dc20ba0f54ced76391a1f7ac0539" +f78ae077506b2b3e0b2c69a1a13e65549cf75328 = "4f58867587e1d54a571975f81f981691f134f64f" +f78bef1a7f94b2a75fa6909a2c2dd704c81d3ef1 = "105dced10129d223a7e2d64ad050cbc01695973e" + +[382cd787-c1b6-5bf2-a167-d5b971a19bda] +0ee48cb1e0e0cc66ae17053191e9b5064a5e41e2 = "22933b62ddd41388c543ab37712a501b948b83aa" +1ee00f82119d1e7e69a1cd9c18751d92a902e608 = "674984653b808661a18818b115f1ebe7177f7489" +3f21e1490ac507e920bbd3fca29165ae838fdc26 = "292838b0725ac93cf3f85d8f72a25fac30986a6d" +4c6fd1ae9890f02fe8289be1a434c033b8435a2d = "70d8049e5a52a047ccd15423e8ac2aa14465edc9" +614cdac086d144b0eb3f04dd62b080f26e6616c3 = "a2f864aebe39eb32b8e79847d9cf371f40fad232" + +[3834c8fd-48e2-52a5-93ac-c34d1bd191f7] +4795fbd68fcf37a2db45fae676fe2e5cf631cdf8 = "da3eb1d396ab27ee81b75d30c6267fa61e41b0b2" +a339f8f0bb05ebac90786dda4488dbce69359d40 = "25cac1bf6101c9ba84969677d605347bece0c974" + +[3895d2a7-ec45-59b8-82bb-cfc6a382f9b3] +1e61c1e11b185a5514a6b591517d7fb674183ea5 = "50e973db3a303ca94b4c7e85c8dc49ba0de1085b" +29049524084d11335c82c6f13f25d06d962fd041 = "3a99a34612a4a2df2ea0e207eda2d66c231ceb2d" +31063fa208d11bad8b185c38372d660c60699a5d = "c74e51f3029c3aeb046d30add94f1311d375550d" +4421cd289bc0a3e1cae2fef31a07f06c53fbd275 = "508b8c95c1a25ccac137ee37197c8d41f0edc06e" +44f54e34314e53e4aa3197c15913f5271315ea24 = "28d14214eda249df5dcc23278b31314b9c539757" +4d0c0b46ae297c1128f89b123c9be4a3a47ba259 = "2be69ed4dec0ba89e7a4e05731c21ff6e1d0c5dc" +68d96bc4922fd7c9c0b860b84419df486b07bc9a = "1dc3b78adc24c01333853a05a0b1a22677db0b33" +8cb5c27cfd79841adbcec2e9fe0746b0e7945743 = "73a280b4a30fa1bd8a67ecce16ad0ef9fe524ecd" +a690375c99853d3c2126551d168229b67c81b414 = "68af8d97a80127ab26c2dc0fb02d771f34ea0d11" + +[38a4a31c-f17b-5f22-8721-d9b4a0175df2] +4b7131c9d5d378b65efb0deb5437a046fce27fdb = "9ec90ae0c2fb4d03f9676a91bd38ea3eba79cb9e" +945fdc068eb67de3e2a261483a0d4c00be1ae244 = "25975ca5f3fef3c66bcf56138769094c6c7c4451" +a825bfa5873480fdc3dfdb38502e275bb04b8fdd = "015d7bd10375b0b8d08ecf6309d66c8736591405" + +[38bc9a14-d65a-5c5a-8a51-c6e7361b5ffc] +0d70e06a26d8146194cd088f8ae5908c029cbdf7 = "1e333aa8ac6aa358d3fd91e8bf831b66b78e1fbb" +0dedebd57d07b5e0e70ce1ef874ea58da372b38f = "ba31acd46bfe30193e6e0909cad5af9ee62c2d1a" +0fe50dfebadf2d3835b7241ac165ad9187122b61 = "cd4e5a9f3416a0dba878a27eef69949dd609c077" +11f9874dcdc10523dcde789674e43006d439afdc = "6a6e37d8632d474ffe6a8187996c5c07c1ecfbbb" +21ac6f6c08791c9be0d68836f2488ae78828aeaf = "12650abdd8de3066ef919fa810aaca5627e0cf79" +21b25857e10481ce47b5fff75482d6e4b4b5e908 = "bcf4f25b3edb9cf4f9d8763c2ef829386ff51596" +3fa9dc641da202eae1029adeaab2e7e374427092 = "d95775f9798cda172e4f0cb949074d07a5638331" +62194f37c3e771c9779788a5633dd085f1ff356e = "e3dfe68a4e167fe21d097e48c08d8bf644573ff2" +67893fd043721ba553a3e63444ca5e49531970ce = "187125a0b40e11439213706c56e1fa289cc05514" +71164e445680b9c7b05489cfc968a1d113a3c4cd = "8f727f87d84c23a1a65f81161f5c8f39d19c477a" +7d8fcd59e5e9cce65cd23be13f507f28eade9ec9 = "0e489bfed771bbb7a0d4c8fb3a09d5cb79d6172b" +b14a877784a01111419b21a9ad14787301b027b2 = "725d36e975b26e26a28f1bd9112948479e69841b" +bf5ff2df0bdf3ba88de0bc2f80c59b39e58ffd94 = "6d66608d8a463c679dfde457957c71f7171277c4" +c394d51c6358000ae347ca95caf12a738885d668 = "1d7a4501807c8846c606d005cecc4995bc4a40ad" +d9e70711585c98371afe9371664d23c88fa09897 = "0c0638d7e5c00575d40ab74f036c77c2ddfbe8fe" +ef1bf1faec0b3b4b402fe185e6f32cca3d414f7d = "9b4b4183fb5e9d0e5b11d827a8ee4e0cd071d8e3" +fcc85783d1d55ab8591bdcb949392ed194d17bfd = "75781e9eb809a17010dfc00a873c6de7cda98c3b" + +[38cab1e9-85a4-5f0b-a884-40c18149b8cd] +6c12acf5208b829b612cbeb5878ed1f0a29b75a8 = "c7dbaa68b8508fa04e3cd4f4c51319fc0d6cc4c2" +f61f8db04c45c6a6e71ce0daf05f209e5a1d3e42 = "1fc90d906acb3eee25ee75a63aef7a8b5ec3e73d" + +[38e38edf-8417-5370-95a0-9cbb8c7f171a] +0258f520324f16a02f5578fa50eb9479faa11ee8 = "9315c7720f5cbbe81d739bb540ed4eea32ddcc5e" +0f86226c88cd13797ad7edfeb7537b70f0f24f09 = "85607bf660c61ca9cbb5cb9f0623ccb7eeee492f" +119530a92986204566fb17bc54ef2b2fc7a80af2 = "5086c2ca8d491b62dda994553e66e289eb96cc71" +27d0d7b19c9aa8f573648d75232e7a6f5b6343b7 = "038729728e25d5723dc72b35d52f6aabbabacd57" +28596177e25d01c03811b21ed197672c846822ef = "3f8f3dd0ff72f05b057bf3a303b3e9aba10aceb3" +287c668acd592c05ec90140dfa70a2887045b4f3 = "6768021fff8f442ffb69668e7bf39bfdec9a2cda" +2e421ce7e3a68ac8db09a27d408beb841504a208 = "cda1240851cee5c7e3175bba524721f37bb7da26" +33229ff87b86acb1cdaa39b5e228469b0c78a8fd = "be325f264475c81251e604cbca53b037265d0a0d" +3cdbfbe33aaa490bc92c5b709cd44f1994b89543 = "31f993bdbdbc09c910474e67d9b4af448067cf1f" +44131fbda5a6cfc87c962045f1d06d2d9887299e = "8c3c194c478df334fbf9d1a875f512e6d0980a85" +4f862cf11a93d2c91ce5e745f51233c49941f836 = "2e8d306266bfc9bfa085c6a9f73c362a630e7608" +5765bffd4c1afbbf6f99dd442634289a59329537 = "a2084489f799c6e2a729d882d7ce4dd764e4f6c6" +583e747419f5d5c49f1174ffb0c17bcffc536c1e = "5fba10b0e79a7a969b1a305b75bffdc22cec26ea" +5fc1cf1b5c45e9f4b2ce6fb1fc7619e443146ee2 = "7361a54d8aaf255320e9303df3420ad6a23309a4" +6052ba9e5dff8ad7ce2ee2bc4c547a3be69ae202 = "7d2b4e585f4d4658f5e28922c3e4f574cf65be64" +62d21a784a1a0227f976974e7941b8ecb4c7500c = "94ec50b8bbe21efbd6e3413707021a84aaa63878" +7419f5449fad90589783891111167bf2f9c3f4d4 = "a2b02a983f8cfe332e1d133bcf29031c9be27e5f" +753569ca95c7990f0ef8eaf704cfeda5ba0ef3b3 = "9e3166132a373cbb680c7f4bd4a6dfeb4afd9e6e" +831f5a5ea3613e342e5a63cd4051e1a437b7df2e = "c741cbacceb4355500ab3be85fb1054b63303681" +83f1e4c5540774109ee4f75008a6db3739028916 = "39100e6a60ba9b04efb7e195cd2bdbc0a7619626" +939bd42ee8257ef317d63d6448f44b4fc8c45b99 = "3caa7a113f8a3fefdb3f0949032db6f69bc6cf72" +9515d57e508b863636017a61f46e14c6b3c30d73 = "03bf7d17f3fb231b2ea6b536f6f856b7596f1d19" +9a734eb3842873962378b239f57b46106c48652a = "02f9e90b9915c1fa2f757389cc14f557a6ad015e" +a5ea101a214f08d8e3d108dcd4e64a5d38bd66a6 = "cbc7cd832071712a3420a7b36ac8e67fa63db5df" +a71c0b7754fb3e8a9e5a11c085cff331af0c091e = "b9afae918ea1759e6c4b83a1f3284fa05d7c3686" +a772ce48b0e1fed196d5d0a7dacd6e3776b95777 = "fa27f6d5acca7b94af9229cf13d5b228f508d6f4" +bd1a03a2bdf64aa306ac491a8492a7372178d9ac = "e8898f7c5a104b5a5333e407557298938c7696aa" +d4e951dbfce965fa4a8dca4897fd6eadbacf40ab = "f40f6a9865863e635974b606d9ffde2c6ec8f5db" +dbad91a9598659380853b042e231af63b86f38d5 = "2118bf00b66fa27365163b8337e82723babd305b" +dc0dcebc09ed2d5c700ea401544d4723ec8a8f91 = "527e1d8e2621133ec024c65b1dbec9c54c002964" +f21b397185db9e28b43fe8255b287e48f3a0b306 = "5687b18b3127319132cacba67b343f1f6d27838d" +f6d420b40749199df514c78985349c77f5a9aada = "2a431656bf85ada6393891143b9db511143b0925" + +[391af1a9-06f1-59d3-8d21-0be089654739] +05307409428ae643a1105850ebda3e6c5e9aaba5 = "24aa74e0215417d9bf077810ae35de3dee54b324" +06e43bb17e937ac394908077247918ca9751bc45 = "ceb4952ea01d641fa53f65ecec786db54e05cd2b" +0d63abcc19a6cda249961b9b4dcce47491b8764f = "d49586bd9a2f831122afafb5c6ff163504fd1e5a" +135e3955da199c5f7cb290c3afa0ed3d8e12c268 = "ba030e8bcdf5a8adc1d51404e0f41a0b2376094b" +25df9606ead174423bcd51519003df3394ad38a8 = "b3a1e1be113e587e9cf094a3fe4d33c2012c72ee" +2fa5956aecd04156fea681f722e0c0edbe04eb5f = "ce21a679529c5a189668e96444b5e32549596262" +30f8fddd279b5200ef07a1b0993367692a2927db = "24802ec37f133548716542fd081450328f5595a3" +4095405d3725f3dbbb6bcdbd836265241d353779 = "833b3330eeba3b75a15c2d1a8ab55f13593346d0" +4a7401cf0816f162e2f5053a0536dabae414f73d = "0779b4c98ed867724d4a6ed29b155180ab5b846c" +75f5999fa3b550b023a0c4c1e47c67db3e2789c3 = "bb857b240a93b35a76c7922342cb930c70fcb823" +789598289a2980d1a3c99de56d92ad38e55558ba = "4feaf71f5c5eb1846ef9c518ce5172f7f1cb58b5" +8194b1310093efd47502fed301c5b3e7a9410d7f = "965abeac8049e9db0d57c2dd33539fad10f903bc" +8b3ffeb8e123ff8fd367cd4f79cfd060fbdc909f = "0a24eaf0d24abb5a00a77b34a7a378dd5f79083b" +90ec96abb45ba81d782ddea4f11d78d53617c3c6 = "1846b5b3b2c79c1676de81a70f3e112b45a331fd" +9ac383a6cfe298d4b2d1d4111c37776e2ac5e47c = "266fbd7110cc52372c4fec2a5b8c829f8e109cdf" +af47a75e860ae42593752fd78ba2dc9dd6b93a31 = "f71cb2da7dd08fec98ff2d4b87ea25e03ff157c1" +c7efa20aa25d5db7af5b8a64e5ccbd0e2c13e890 = "c79f03fd157541ffaebd0d29f6a260545b7967fa" +ca67d93f982eddfa9a1043befc056dbc10c807b9 = "0af6dd53a5574996efbc0117edeab9db03828d9a" +d4742980fd6c895cd2a9547b8da87320660b882d = "948a236c6dd55da97510f927c3fca3ef559652b0" +d80b712b23fc20c7e8ff0cbf97de5d1b304ce6e1 = "ec78efddac73bc03ee2c7ce9564097c724022fac" +db1775e2a82717515eb56cfff7b492627e131b3a = "08d0d75dd992ae204bb0931bacfa8ff2a1d82b2f" +fb6018d19169a1d57c96ba36df4c9fc67ef3b67a = "4219d45aed7c51befc74e0923203276c44454e1f" + +[39424ebd-4cf3-5550-a685-96706a953f40] +1f40e0f45956372f9f602378306c4168da8a311b = "83c8378aaacedeb7012a67e23e65ae253573cb71" +72967a51c6ba2d71479d136d6f176affcfaa3e5a = "2aeb90bdc62902a62bdacdf1d4139067d0c2143a" + +[39abe10b-433b-5dbd-92d4-e302a9df00cd] +5fa2ad2d8653f53ed4293a1b612c99f300144231 = "22a373ec647a79403a35474ad92bf52f6eb0c6be" +5fc89185297915c2e97d850d61b947912ac3c447 = "264cf78e345b34d33b93f338bc5c3813417514c4" +90abdef9c497da238d8f98aa4cf7e68545018958 = "19547dc984eb9a9e44b47a77627d5234a443d349" +99da11396366c41fc48b364ca26ebe5457230d1f = "9230e82bbc5e51441de140f947e9436f63fa9210" +9df77e9aec4923340bcfa90f8048e03232967a72 = "32864c55f92eb5d7518560ed9ce30ff5b3dcf016" +c7024e7e406c16b47b5825a398e829fcdfd57421 = "3ddd3f63881e8cac9458e93fe5e8b8a3ea65e37b" + +[39d38320-a18c-5735-a4f5-135970cd79b8] +697e3b8ef9ef9e558387797c02787f9707ead0ee = "1b85d45ab32eccd0881a4c89d082cbb041c6e623" + +[39dd38d3-220a-591b-8e3c-4c3a8c710a94] +078eb6ebb949d2aa6df68bc610df5036edc70dc0 = "b32dde45ee46a964113955ba11c6cb01b5ac274f" +0e5d0da393048631f3f31f8d4576a0dcfe634f78 = "fcb335b6e09403a2ff8139f24fb616cfb72157b8" +10632b9190b7b5e635d1550dc8566b0b01e5b33b = "b836eb1866d1aea857ef74a704817cae1c6eb577" +67251d5e0e862ec20357be88a02c5e5917d272f5 = "50f75bf13443ecbd16e0cee8f775b1638f9438d2" +6aacac44a8a424cd0c678b9bd7ddb60b1203e8ae = "2b67f574989b5572cda1bc498efec4d52ab6ed15" +8ff4b5fb02734c58677d0c9f6bdcf49b1635ddd8 = "d6ca3ff862746cc1c0ccd663fba0d9d6745f361a" +9fb0e3e31b97f87686a150552488bbea3e8ae773 = "e4c2488a6c79a2d680182d7055ed63dbcba433c6" +a64de2322cc90ca588e29d385656ca7b5fb73004 = "de91fb94370422ed07107f48519a5c11240e91c3" +c11a48a900ab4e38852010d0ab5755fd89e4dd89 = "c9c7c2847bb6c9b12f33426c96d171e3b3b23184" +c59fe13bc460b504d2e786da63a0f17b22be1343 = "8cf3a6535a8cc0d2a5b93dae4231fe29d7bdd0ec" +d41c01ce4979541aebc9072c674c8dcb31b65b4e = "72a73ac5881f885a77f41da41a6a5d8763803034" +d5376783b86d2f4c74f04b3fca239574f58c45c1 = "e7edd9849421137b654a2a760aaa510a8d1da9b5" +ff63273b9452fec3bc9a396906d93fbdd7c271d6 = "87ad9578747c364c2e4f7433a93bd48c98bfc10d" + +[39de3d68-74b9-583c-8d2d-e117c070f3a9] +0c91a4c5a80b4051a1ba1d344e530fbb14b78d79 = "28f57d905509142b5e77ae4bc772938c1a596542" +65263db10d7ca11610179d5c808a92536158f819 = "17f9629fe803890f20241f0b0d7d985b16e02411" +68bb4e0a7b9be42d66e429894bed953b9a8ad1e0 = "4f5260aa90727e0484061e5476362711c417d00d" +6c8cd0ef2989c61c10a4b7b83828ce4e5776eff9 = "85c0540a422218306c6cb648364e4df602c9caad" +702623f94a96f4f6cb3f5e8e8393eb72c2c05276 = "7718ef9c2de099ace56256abf1b3b14012203590" +75a4394515650f87b64866452405a0aa1110cf04 = "95a467fdf498c5bc296dd3a4efc7e01da56f57a6" +a63fd44fb7e4dd5c6036a4d8a8892f5c515739df = "385dfdb08fed3886dd161538c45375ffcd59393e" +b334d9055283f00b59ca116ac8e0a783b2db4b31 = "96b52f0fe96444a5b8ff915f6661f93d82a6b1a7" +decc774acc126284b1cf3e88c04a3fcb0f3ec3d6 = "efb8a7ba95044ac47bd5c4c3495a530ee063fc44" +dee0c63b9f6b11bda4ab77bee8e6972499727ae8 = "1e0e291a71091f54b02323b99666a8a5ae3efba8" +edd8884b8bb7d4255d7303236d782a315daa853f = "9eab2c76358295a9615d3eff6a9314c8e37341c1" +f0fe6d309776d53bc882aa7576979cd6510a0464 = "463e939e2f6712434110e3b16554d12a0d9d842a" +ff82bc9d392bc5912648aae5ff871fb593ed4738 = "2ad2f546c3ef31000b0b6dbce73a23eb8387f313" + +[39ec1447-df44-5f4c-beaa-866f30b4d3b2] +2c3351a8a337af4431da4ed4039013e00cde5659 = "d29c5529173c6f7a9716740d2fa262c56c181159" +53607e7941a25bf19263c465bef9b7e0c60bb990 = "784818f67082b92a77786aa0691aea8bd4a50d1b" +5b26b255d273a95a4c1376ff284a62b0ca640757 = "0614be2e9114ec85cb34dd15322dcaa8b4865fb9" +63cb60167a426c2e77ec71980213f393f19decad = "c7a56abf1965f035f199637d4600f743740b085a" +ad7043a2f3d1a0a60bdbaf7a38f5b84cebb40a1d = "11cd0ba2bbf96eb22144e19e2e95785e5df95756" +bfc6b05c830dacc40a79681c6091e0cdd59c80e2 = "6a7e8d2a7170f2057aba108ce1583b10f1e4f095" + +[39f5be34-8529-5463-bac7-bf6867c840a3] +06cfb64fe350389acbcc8d355c035fee008ab4d2 = "cf6f199986d2086f342345410aa27a46a0274b0f" + +[3a141323-8675-5d76-9d11-e1df1406c778] +2ff987acfe1f023359ced71bd73b2aaa8dd19de3 = "53b4e44a02dfffa156981014e9f4c5102ad5e24d" +36c07f7d4a9e22c7f8e6a6209b7b68a943223724 = "639391ae37304fb4ffca2016e9ed7d6c2d80011f" +468dfced22e12d0aef6cda7eb3255c012ca23e3d = "bd09b2fbad5faf79bf67304d53871f9900d788df" +939628eb7510be8bf40ca44dfe2108bb2df46d5c = "24cb429ab776adef9dfc82fef15fe31f542685d0" +99d663706343111eb9dbdbba48e8c52b4a7a82e6 = "918af58b54687784b4f0b65c26771d97ec4d9583" + +[3a41ca7c-167c-5dd3-b068-80165705c037] +2c1754aa77bdfd9ce240a9781dfde1c79a86a847 = "dc347acc4a545c3d7667ab8c05107cfd47bbb2ee" +5c19e6afe055a91052f78112eaa1369bbfcb2d2a = "2ccac39165020e4cfdef8d5175e572f6c60e24f1" +8a9c00b44eeac6f24d540a55e312f0e5d4b6fd12 = "27fdf850492ccf60aa21b968a924999b2efb6409" +ad82f8e577f87d564ac3db6d417cf1ac7363de8c = "6bae9f81304d9ba319dc97b3a799babf93ddb173" +b28840489bec3dfbabbad46703509a94f4a48a22 = "230ba352604270ddf50412683542369c7a516c75" +b65a5b84205b305967408a5567aa0cceda22313d = "8dedbba84976a8588313f5fe0f522e65e0952253" +ecd254e01e4a653ad0fea3602146beded1706779 = "f4090f37077d7929b3ad071ab56b7d8f357029ff" + +[3a865a2d-5b23-5a0f-bc46-62713ec82fae] +03ec146e2f8c158bec2a5cedb630c9d44481a31d = "b094bdb88fbaca39989d968dc2b3be85d3ce5ea3" +114c1c82523d140060277ac5760e72408fde234d = "0d2aef21966eb4fd9da719d88c0a6e2e33edd163" +12269b828626bf519e442076caf36b5b9582d775 = "12d6e3f8b66f319f0d6fcdc4047ff27661655644" +3baa9ba4223e42b7a9f3280fc1efdd3f83ca966f = "e6088b5b0b828b2dcd37ce3148657b6179f5cf0a" +54e550b2d8c3fcfaf0009341532d179497a642ba = "6f67e7d41ca973e316cb37de75edf6477aa08d12" +f989092aa5585056828b189257ef73ed5276187f = "510379c3ad5a198f183c7b545a67026e4e9eb160" + +[3a9ba88e-79c2-56d1-8a6d-815ee8f38f0c] +5ef85e31986ba473d096fd4852b2cdabd5c3969d = "39fc5f3ba7f988bc41637a64fc2e9345921de3c2" +7eda5c7f5daf8ce64018b09ac1dee3ce5fdd1843 = "f9c77879291810ab6c2473ed844e5643e08c83b3" +e3f934121229263ec1043939afd54e62e562aa14 = "793417dcd6dcfb875a2d9c2d9ff16328632ee22b" + +[3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09] +ac6668210c3775f32fa17e70c69d14efdc95bbfc = "513c0c5447c9f5628bd4754eac5dd5c541a78907" +ff9a40bf31457e5f9b3155d15c3a354d283c1809 = "954856909f7929f5cc04a1833b3758cb20f37316" + +[3b4f27f2-be6f-57b4-96e9-989d478c99d6] +0ae9dbcfb73ae88fbdb58e90efb06e9646ba99dc = "b77a05a0e4c889d4e5ef8288eba5826c294a33ef" +9ff53fea4cf8a2fad2fc717074df137d89beaafa = "a53a641096def0fb2f8d45dd94db399b22a857a2" +ffd684af5ef9c283e7072df6e31612fdb3331db5 = "c5c8807f77e289fbb3344200631384d500d1e20a" + +[3b74c4c8-83ac-59e6-af00-836933a3a159] +e806d9e9ecb4ebce618ddc014d84cddd4dd600c2 = "f811723bc739bacb18da1dc6b256d52c5e4c4716" + +[3b7a836e-365b-5785-a47d-02c71176b4aa] +0f0672c05e7868136cad819bfec33de35605fb4d = "ee051440d40b24e6a5a92f470e9c51acb585c7b2" +14eb167dd8385457c6514bd2d18e7f3c31f0b73a = "6adf35bf46e25186953307cac5e87ce967e4747b" +150d5138455360947907304cf495b6f86d0710ad = "29cbe3c83b566dc943e3bcccb682ef2d5d5134ae" +194f4fb248f9bb92dd46ca11c3e7d0f353b95c74 = "97ab41fd5db706e902f7dbc1cb55e40616e09f80" +30cd8e51474046c9bb5d9d136e46a1560d74b126 = "c3eedd71ea15a25ecfec1d3f7fcb92dbf0b8ee97" +3ab2e8bf850723faedaa7e9fcdc7980699cec06f = "e4d68a0919172791598ed52611e0bfe70b5d2b8b" +429bbef8a352e1f169636e1b341eb5d19459f826 = "fc46419b231a77e3d1a51a86cc07ea36d49be394" +511f1d77ff5a331f16d3724c51e7f60054085399 = "3a2d1756083e65106bb9d9dce6018ce4bc1a82a3" +546a5f2775c88932c5fd2fbe9972466ab4ba4fcd = "ff9a6903d10bf1af9f11ca3f6bb8db826ee231d5" +5a612b621bb761ab01bb330f329020ca0cc7188b = "cee72521df9ad6d7bc754d15864b232d2e3f6da5" +5e603c07625118bdc7e808958e05190be019e3f7 = "897c1d9ef82ba47e43f43e3eff3f395e155a21df" +6b9755457caf87a8295c1d928286ec3891d45ace = "83759dc56cc6d7100433cf0f8bd03d832b7a7529" +706b957b376c1394ff2c76f4ce60efec2cdd9ac5 = "503eefff16aa148f8f9db01445a6bbbcab10fe67" +7276e711c1a8140f70ed6a2d191ab07ae0f3410c = "c9a9acddf2fe6c4273434af19172cd3554c9677c" +7292a550fca799a169730d077b37f8a42711a219 = "a58453395c1a4e2cb9272af40344b6ea04199652" +8cb3b5cb2cd80ddf22268483e96b0deb70aaab25 = "7c4d88474bc41240b4e94901a26ea8c87df07dd2" +8d87a682224fe04dba004567fe94a99af4908db4 = "67fee8f3fed1ae9cbbc3c56430b0a3e833fbe4c7" +90a35c1cb001df92844c6ce84a36916d53055909 = "c8c1a3eae4dff6f051f7ac9c766e4b712df2102a" +935843312e0a272ccdc154da5be4efa690775cdc = "d169e33ffd0712a71a96918087e26eea55ecd4b8" +a0707ee93b4a94804ebc1efc66c7c6bd17aa7f7a = "b4b165bcb2930bf0cb56484e0642de9ef89ca8ec" +a5846bc5000492a9430562dad886e859bda6c397 = "88bddf491e6a0acc679904da072bfa5e52024242" +a603567277d0aa86ccb7070391f1dfc0fbb0bdb8 = "ab7dad7f54de8ee77d08b743355232bc0f3a7839" +ab4e4853ef4f4e9fc4c00085e9c98aecf7ebb072 = "d18b33b2418ba3a4f32d780a0f5307922f3d07eb" +ad63bf581d3c99578371592ec48ab695a1608432 = "1429a5a72b2dfe7f9e631eca67054606281a7e44" +af0dcd9efe59cd0936c20b7dcae015d157d77d33 = "8a90553a61f64940f3f9914a9af82ebc351e9096" +b2bc6f39636b154ab9bc418f297028f129b17dda = "fb20392902428bff24145aa4224b03e93fa6f229" +b8498f860ca0ef5c7ddf857e8a65f5d44a5f0919 = "3f28914976ce6af2e747fbadd0250bbf6bf5d8f4" +be57c62990dafc657c08f2fe8c57048a5c7c4687 = "f529213cbfb87de689afb7d4d4cfbf6fe38941cc" +c27a8672d9377df7b467dbfae26228c5e0f36c1b = "1e98c3f1e64607a91aae699fc298386976de43bb" +d5489479f9442f44beed1cdec7f0b1f482279f26 = "2dde791e578589198c32e66cc329e5cad9a9a79d" +d9c8f13d8f353a9875fdf149dbbaeb49d4ce6563 = "771f776d652e318d03a47860344f082cb40c567d" +ee6557e23d04efaac0e1d138f84075e4a44a13c7 = "35e564c6e07c67c1579d257bbf079e5c8acac173" +fe8518ff62f9fd3c712896ad6d9a0fa49c33e5d4 = "4ab0989b0c8323f0fa00da44b03da2568c0785bb" + +[3b89720e-b86e-5936-9f69-824af742f89b] +dd4cece366650a4937d41e178264dcfe30187d1a = "eb5201c35e38f209d2a0dd337902655f9d07149a" + +[3bad70da-0c46-5862-8b75-4985ed19fec8] +d1d52f5c7983d90d24bd30bf4d2836d092d70265 = "f22b1afbfc78d11624da7a75403a6915cdd89604" + +[3bb67fe8-82b1-5028-8e26-92a6c54297fa] +2bc177c28e9d25853d3f912ec2e1dc94a62fa1ab = "b1e0b1825757512541fe256c7219f6261465b3dd" +3c869fac2e3cc2051340dfaccb6c07582f2b414a = "dae343a8d44168cfb565710fde6d331c03994739" +57a1f80c410ce2dcb7f17aa31b914e9515c39db1 = "63dd201aca28649840f2534951a567fd07b6a350" +6961cf07a49c73b9b1b5c0d7dea621aa7d63a948 = "11a7419316e62a8e62732b613b9d72d3f255039f" +8e01d239da09552bb44360d282e7b5320a2eb811 = "3938566e71b82caae20699fac486c2123d54e743" +f178df689b7d74e50450f3f8434c629eedcb41e8 = "ed427d391986359576593de266ed6aeb7eb64982" + +[3bd8f0ae-a0f2-5238-a5af-e1b399a4940c] +83640e191ce632a2542209bf1ad8a0fcbfe49b4e = "4cc32a68bc5cd9a2af3b1d9f9449a542f15a7b9e" +eb8947946cafeda7cad50a5d97295ba34c11ed3b = "978fb4e96e93ddefc0c5959741112b0c67f9bea4" + +[3bf275ae-c56e-51b1-910f-9ec630bf193d] +24ebccaee7b64201a3c6838b0650ca67346c7957 = "2817f0931f902edffe58f379c4a4dddbcc9c9476" +3aab5cb46d04dc524942df26bb898b260c52a310 = "bd8df76b1ab2ccf6c1932fefa4f401a7bbb92245" + +[3c28c6f8-a34d-59c4-9654-267d177fcfa9] +9680751fabdb26ddc7a841c2115c149ec78e7617 = "390d5e3851f14a1efabc56e251fd572e4955d327" +c614cffa8c20ac54584aa34822d771b3fa5ad3dc = "525acd81fd2af573428653f7944c72cf1c7a02e8" +c87580388b10088e044a899a98038b24e65717e5 = "4732bde0d112685c7424bc1db02bc1353341c054" +da0fb8f37acf6776e6b77a406dc46281b772797d = "275872617ad97ccb4e1f2d651640b96d6f6e4666" + +[3c64ce36-c3ed-51c2-a7aa-9c9aa94f3624] +10a42d782a06ed5518cb636bfa743b0255348cf9 = "74a40c72fc27b6d678cc4deec372dc975ca497df" + +[3c7084bd-78ad-589a-b5bb-dbd673274bea] +04fa677bafa2072016fa6d329d419c1153ffc251 = "6b0de796bba8305beec02c1e7281f05d3e6d8e41" +063f7b94d3f9f97d3fd3539e857a6e8b1eff0138 = "b06afd31280ddcd40d3c6470a6cd065c04c10086" +079d5d938d397b0363395c29d26ad62a632c895b = "172ee939e4df39fc7e066ad4d16028a811861889" +13677a1bd930e7c6c2c747de3d6b170c27f9a433 = "9421d41220a09853ed9e8263a6aea1e1e2763a25" +1c7485ba4fdeeb3c2ea9f5fdc45c2a955bf4034a = "38dd451cf109bb00fd89019edf7c44801df2cc56" +1f9db9313af48b6922c27f56af10c9fa2121cf28 = "ae81beabf5dbbc0ab6b9f414b3cf201677be1a0c" +225cd2e795ff377f4c7268b02007b187f28b8b08 = "5b911ceb33b76dc4d1b33eaa0d974ac6e2e949d9" +32948320b9ca3c0b9ee612450bd8119756f3e257 = "252316b4789fd8c1004b88eea8b612a887dc0301" +38e45b5ca54bba22592b4c0b3e8f8180a9eaf1c8 = "a16ac2f055a48ddc50a585df9e722550baa43f1f" +3c3b0729bd9809487ea7b04b5984df285b64671e = "1fe0ade33922cedbfd1a669e54fccba68bf87280" +3d262e692244a182f002963064013124374ea746 = "387e11f885e0550af751d103ff3c9243edd08eec" +42beef841ea3a001ddf43a91a75677fce2fd83e3 = "fdc94ee0727912a62087b7d783558c972ab079f5" +652fc5478d62effe37f5c601ed24f02c968ecceb = "00d66ef418c95639cab9b869c2ce45a13c5bebfb" +6a4c469fb559402bc19060fa0cf509a78a8fe791 = "11c1f7eb19b04241dc3f9bac8ce5b4ecc8a8e501" +6a57bdf4ac59a84b4b468623233329960397e23e = "296f845f2434b634e0d9de59f92aa6a8f12aef43" +890e72e379b8f19f625d1d55e519de8ec1c5be0e = "3a3b8375f012c4a3c656d285c4cca4a8bf7ff0c1" +a07e520389e2414dacc06f8978e761cc07197376 = "3046aa80297c9d10165ea746e7eca92242c86355" +a25268c5c1a57bad80461419b30bd9f914a495cd = "9c3dcbb81acfc5cf3db0f7fc141ad5315f03f2bd" +a70c14f2f10c25e458271f3964ec7ce4385c064e = "eec1e65cd418252a0b75376eb8f31a4a7903c699" +a85199f7c26e271b41d34feea71c99d9c2a9ebd1 = "3136d9171d44231bcd4ff7d755460c0edbee44da" +ab5988f633b1c3142a3b8b029544582597fc54c4 = "c4e9f45e4167e3b21c6826e6500196bc34f67ca7" +ae65225da7557eaa82bdc2e8ff44795df948da39 = "7bcdfeba0ca4b209f3d9bf120955e399893e3e75" +b6aceac28572b7ae433405af9facd9ac232772df = "19586011ff416d126cb4328c219f797e1208a565" +c79725929d1abf526373a1c595517874f940e54c = "12c06d3e6623784091d09c05befb4406c0799722" +c8a09bc13d2e0ebe68d5e1a4f52f4bff13ba0818 = "a2b3afc4f4722614aa67dbd43b1a1fe6cfd3d598" +e2c23adbc3ed81c9dd8096b22df27d3038c2bca2 = "305dca8ca5a5ca5e2e267b88758422cc5f075329" +e5fcb9697948408b09de08a3f2740ae4813a9362 = "f3e51ae99a947dd8f5133e4c87f216dcbfb2e924" + +[3c71623a-a715-5176-9801-629b201a4880] +00de09cfcaafad720ca628699d06e182141cb21e = "7aa9b7d27b6a6c54b3389337a18ca43034d70f5b" +9f74097e91faeb399b4a8eb3052ce9bf3b6bf866 = "0ad208617c69c0a84696492aaf7cfe7505357028" + +[3ca710bb-85d4-534c-9bae-b7b5d9e27e20] +e4a9e3daa4ddde5ddb59baee4ac3f9df61edb65a = "e9ea441697a38661c752ec2b02ac5dda33831ec5" + +[3cb15238-376d-56a3-8042-d33272777c9a] +4e1d1d3d299c1aabcbc774474bd19568aa8cb8e9 = "c665450620debaf99b419d7febc39af5ad061824" +4f48a3ccbb8ac723564a1ff65a0c03e729d822a9 = "9ce34c70763cea55084ecb59992bf2d3c87bb54a" +5a506586a6cf86b0de804212b177ad2a9ee09d53 = "854610850a674608f1c3bf3309c5f125314768d2" + +[3cdcf5f2-1ef4-517c-9805-6587b60abb01] +1558738ebe0945992a9ac1cfdd6e7bb1d8eb710d = "f83f9986a51141d951182a6501c7bd6dc3d2ff34" +2b8e47635b55f09d1987264babc29adad47f85b4 = "e0116c03a2aa48f2fef2af395e7e1773614dee7b" +3d2fc8969f9de2f8df1d36f1728dbeeb2e6d1800 = "392e0a6ef9a6ab91c0c7e0484bc8e8891cb410a1" +47606801541592ffde15d04edc38bbd487cac117 = "0b44a18917b7e21eff32241c1905b5b8d008a5ed" +51165884ca9e18bbcf05d556fbff6914c5f3a204 = "03aa16a8fd837b54ca15e3a2c0cea6e1faef7a27" +61c691478789e50245e2bff232f2ce3684763351 = "7914cf297f96ebef3d4e6531a7dd0694bada0959" +6d5b844d63c7bb854461b75a2ae599cb36776cc3 = "44284731162108b6ebd1d7b1f7c73907b76570d2" +700de20b7cddf3b8ed62664027f65cfd8c38810a = "290687ba45fda4d799252288034ca68319b9d00e" +7bced7d864627f889a1ded7f61a9970bde73ea26 = "5dbe9a14779975a09352f2bfcfe73d440e0ff2c3" +84f588162d9d29a48a42cb4de5e6e6a831072fdc = "15e6341e02dcd0bae851f8eac76353f5ea769b0f" +8dcceb37c0ed03fce527d3d3d6e98aa13642f519 = "a2a69a920726bacce47ac86b415feea8d8cddc80" +91bba81675b779a9e50e36fc094e24758548649a = "daee9855f7a600438ddaea103501ad6b1c291743" + +[3d39a06a-b57e-5769-b499-4d62b23c243f] +faac64a8510ca85878211387733355a85fd2147c = "aeca4ecb1ea41e766c2f2f39c875a1696eef0d55" + +[3d41126b-a46a-5bdb-b7a1-7ea6cc35a8ef] +45e913ec7fbca4a5e46151f9521f6534767df74c = "331631fe5dfe36e16f768ea0873cab9599751167" +89e197ec72e584601beff6c1ee09ec1e392cde28 = "445bfd39114ea26ced98956ef3be7a553da441d0" +94f4bb2fa966f9630a6e54621f492bfbef6771c7 = "8e70e3417ee6e4b32e65f1caee217b082d43d5f7" +d6fc6ad254cc277c6409c867b177c7088adaf901 = "100fc23fb85fd57fed8ce70e018c06d47ff2218e" + +[3da002f7-5984-5a60-b8a6-cbb66c0b333f] +17218b2f9f48e83b8d377603f1a96b1e91e6645e = "d63e3d6898d6c2c5a8a84386e9bb227444952473" +1a9563fa0f1c804527eabb4a9c5dc6c96412b7c2 = "19681bef65e2db4fd6b40c9b2f1792e843d05e2c" +1f6dec30fd1b40456cfc735af04d873da53cca4c = "9593243aa6eb6ada9ae9ceba73e6e6be2f7173b5" +204aa2aa2cf8885fb22b0f88b57cf696b5c34d4a = "84ffd768ebc7ecea3f521cc553266b8f1bd1c6eb" +2b0f939c11cafc1c0a266d780d45474d94c61380 = "439c65941d9669a7bf5eb1d7911316ad575607fd" +326822a6e3697edcbd281ea46d88da3bcb12da04 = "795c5a0bdb11d76821ec130c28b44484407778da" +367821e5f1860ce5d10419f2c3616824c0fe2b5f = "a763a2adcbb89c0d37d6d82603efef1fe14739d1" +3f61f04fb1f283c822811d6c3f49965a9e86f829 = "dbd950815942add08f2db57007ed8396e04b2fb2" +3f7820a5cce99febb3a44744a74fac67026f4d9b = "951a300bc3a86d0cee4e1bc5f174ccdbbde851b9" +3fedf2023a39ec92114868a48c740f9273a2ba08 = "cc290e63bf3344a02b1863dc788938d57281e548" +4816539024b4924135b16ee41e6503b1ba732307 = "c15d3ba9334bdc1539f8130a3de9fdbbfcf35556" +5153675428134a4d843b7ac351fa6165b1817b7d = "67a511631dffe820c46b1824edb53df4565f27b7" +5859091fe41d0be0ee07b1ef56acd3eb2948a6c7 = "200ec268a770e18a6fdcc9c5ac54a9ca6f076d9d" +5dcdaf1cc0796a87b515b8805188e0b56ab74794 = "da7b2ffbe841d98cbbf49dbfb43de9c1c5e6c2a4" +5e0bf49f374103caf712da9607c1eca5cb518c35 = "a98a1c0a7bd28b1331c0547405866a13dc019913" +618e10579799d76bc949632206f10ba4d2835f74 = "0fd597cd4f22007eae694f10c924be82e8afbacd" +620e5f6db64da04a3826d837ff2c6f453894312a = "59a8f20d1043fdd6b2b411ee6106661c4a84f003" +664068d97b4a7ce67a667653dd3d5071bca59e83 = "a303acc893885a9a9d1274a48559ccf006861aed" +67e4c73d1bca39ec6602c836dcdf9462beb2455d = "ae5e3ad28cccdc4703c83dd03eb5c83eaa6ce9aa" +6aed7879481393310596638c52589ca27de710b9 = "6d9527cb553ea73fedebeed4d654d0c7bf89fb85" +792dfee18016cdb77c56e0cbff4d0262e4e7779d = "bc816bbbcef575aa47712c09f1698094358d7869" +8238e6e9bad67df0bea3e577034ccac914311ca8 = "ef54a78fec262afe30aea6f144074444eb922053" +855875568a05e43221b3ba828348fa7b02fc60d4 = "2376c255699d2052f4980d39da8a0f4d21a3394d" +8f08fd3b4eab62a80217e857f443b6d4a91b98d6 = "e4b8f1a5849a48394fe6122f984b72e37979998b" +95afb932376b0b4cb70fb56863395451d0e6ab11 = "07e5365beda0a085e069dcd6ba23d9dc327a5ae4" +9831630232804667ca791b53cbc4180c0ce8665f = "fbc4df1ef3a391febae044a5df51f95a5c5a62c7" +9cb33872502518a17bb8719f639507fbef9910c7 = "c0811e280316dd79e8faadda0034c5a5513a68c0" +a0f98987261aa41bc188b5a7707e7acaa2f71da1 = "74854fe4d7fd9f241fc2b07db5fa5fa1087a0271" +a846a5327a683c1fadb0fa400155d2635eb21b8f = "aad78959885f93545bcc14e29090557970d4848d" +a8dd9a3834b76e48db138141ab586325cd4efaa6 = "32bd04290c893b29da3839af283f3174ad2d1833" +b6ff061fd5b95370a16be309ce8dc6c4db42a2e8 = "516c253e8f07a3b2810880a380464cb1d4e4d22d" +be848d6777c71ef36a619be7218083183d0f0d7e = "06b227032bd7a42156b2d33400872b50d06f9788" +bf47e5a90c2ca6123a834e0065d6a1d5ca27ae79 = "6939b455257e250a71f6f9bb8db8e0d76fc7863f" +c2800cb6a44a6b22cb9527bbb8509e010d194a94 = "ba010a6c2f8c47edce79ab3b9f66982605e3171e" +d1a315d006aac5bd2f8c3dafcd5ff791d5c5759b = "34290a8804e268376b776106a90bdcfa2facd705" +d23a8abc2c04cf9ec90bd38fff18bbf9b2e74ada = "8db725f74d4af2c1c51e438511e782703f64df9a" +e4a382107d7b5ce5b97c32e5134101af9c53cff1 = "248dca43244a75d410c1c93478e0670ac22584dd" +ed6d14099d9257708c85569f2e932e1b9efb0b3f = "bb02c42facd0b40223dde5b01a29b79d81135dbd" +edcef6837d92941ffb0d10cffde5ca82f1d0aa89 = "f4730889503ad4da09514f017e9ce2b3c1a46c4d" +f05cefc6df791ba860e0a7e8cc766ebb410bf09e = "1f04f5afbbf188b572514439e1c0fe101b9ddd43" +f4d43274e2b2361f7a44140fd8a8043cef9eb411 = "a78c927fb6c34da6a40e8f90aae659bd10525582" + +[3dd14ad9-0029-526e-86e9-8aa0bdd2ab0d] +337278f75eb232c53dd219bc58ef3f9f11335345 = "2ca342cac0b16a3e05adc856907aa94c580090c1" +52ef79fa3269207be568cf03740eb2815472ce1f = "e610bdb73696aacae442103f5921970c993cd39d" +718fb764ef72b3fdf739c80e721961b6c5025f25 = "2ee2b8684110baecb44f2b9285e2a41f9ba44950" +fbcd5d4536f06c8f70f5491ea01d862f8e93eafa = "c48ee2538b5cdcf3eebe73b689dc07f2c25902f6" +fd3074c8fac04bc802c537a4fac96ec17b6e8b11 = "a57fd080905d62620e1bbc8b0a95f2878b817205" + +[3df1733e-8da1-5e0d-9c60-b33daa64fdfa] +7983203e8c457826537d620f326506f0b893f08a = "063d622acae763c6e20c201dc9e10d5c10c4ff9b" +ece194681296be259fd5b8758c3227c41e9dce33 = "23419419f10e54a160b15cc5f227777414a07765" + +[3e1990a7-5d81-5526-99ce-9ba3ff248f21] +642cfe49a915a20ca43b0b213c20a3787300c459 = "a0f2eeeb653224acf20a29fc01d72915d02ac317" +674a2aef3deca9ccf7b45cc765c449f80d3bbe5c = "7b57ac435996bdd1ad9cecf3feb9b63abb5400b9" +885ea3c15017f32a11a42df78854f6c50f8b22d5 = "9400eb05dba973977af8691b7de7ddafbac5ee94" +8d49c0d6521f4960d9ea28ff4b440e35e09fb7cb = "2dc27b5779b0c4090f1de06dcee0cab021451a86" +a3ac0f678dd9826eadff59425d98df1a0580711b = "fc941f07858b415b6b45a5b05e5d776599838c98" +e88d103573675b87a072355a250bf6b6d00b4d02 = "3e02ad71ce58acfa246e933c4f1f01f077925032" +f107a8b15d01064f81a58b4d35aabfd6b1873a5f = "72bfa5d5f4b1e365082dc19b02fc98f38f735b33" +f5f5b5607ba7e8b028c721d65cc178a4093f2a89 = "5ee011334b78d53e1ba043b40fa154884e082ba5" +fab6125cf3490b90dc618e6e67d0717c80b5c9d7 = "b86b19cfac8145efdbba7698bafe61769b8c4119" + +[3e6341c9-01f6-5312-b33f-f8894a2e817a] +414f0abbcbb4f970ba8c01435dae08e1f90b3975 = "35d41e90789f72244e047df99785f99f6de9a68f" +6638284189c1646ac94217c4c4fc0c3ee8e49b12 = "97a0c47dffa11bb80e31503ab7c52e808551cd3e" +9a3bacf92ca1f22257141c386dced64afefe40f7 = "6456b331295e7162eb49dd4e2e9d6b8c620e83d1" +c9dcd2eb090d69ec40790f19798c5fef2aba2616 = "342c66e631748b8a72c848a347788c7833a36ac6" +d2436d8c368ab501d05353ab22cea923acc6fba6 = "b5f51d2535ec9fba1cfa74bb23af0916b90b8720" + +[3e66a162-7b8c-5da0-b8f8-124ecd2c3ae1] +5762c3423f65b2ed0d3d729846cc96829d8d8380 = "796b1eb256c9f21d30ba0772c1aef3a58cd5b319" +bf4176444aa07c43966cf7b5a9cf7e3078f84be9 = "a8fef33bdff1266cb3c67f142b5f842c30ad4a33" +e0be4e7b3075bb2693e2e0e0bb5657ea49ce1cde = "6660c947d9c3498879d1f256c3cbe93971fb73bb" + +[3e78a19a-cc83-51d8-955b-515f39fd7955] +010dd2229cf9d701fc49dc26769d96182ecb6438 = "9f8ac30d82d802ac2b1a80dfbd1015598a7957b7" +2698909ed1f12d927f978d80d2cdd6030272e528 = "c4345bdc3efb20e4ab860665582449dfe2aebb63" +65e2ac057d3fde0fe1081f12635392ce1deb1023 = "2e64837dc14bccb425e1c6618cc6d99712995dd2" +c21e991a43c55a713044ea2bc5ee05d525c37f0d = "a562934655c4b408de875ee82da2dc24e60bfe80" +f7a7780633553cd88fc19d472100ea799d150e10 = "bb2141ec25337a6ccb738ba7323a154e56a5fb50" + +[3e82249f-a303-547a-a2b6-0781e594f165] +0d9cf018fe55eb5a0927d344c3044f44faebc6f1 = "b5a3871035b4201e069d60fe8ec1083ed44855ac" +485c98d6516a1f9067d0031258ca661f3ad6baa6 = "b4e22fd6c64b536e9d6158c4a57802fff9cac847" +701cdb4e35c6018de2d94574f68477c5d6783a6c = "ffd19248585dc5a8dd7f08513e8a86051517a40a" +cfadb51609b9d853d76a942c603c585693c0fa1b = "42d05e4c8d3556803f520069e1776164df42dab4" +f0a00b0549ba46a34028cd727bea73da4620251c = "4dbe9f1b710b0689968c8e2ca2587ddea01fd78e" + +[3eaba693-59b7-5ba5-a881-562e759f1c8d] +00d476123a491ac4b94ca3e2d6f20ba378339251 = "f71e7fafc4225b1bbd6d6eb5e8b54eb633b032df" +5896a9f3bcdaa40ccc8a18e668bbd823e6cf63ee = "8b090e4d641c5053b132cf87c7a98f830d2f0b85" +85e3abde7aaf4cbe8cbed25616dd50739100be1e = "611ae5b8f7ba30cb3fea533b2e55595ad4984af8" +b94a807c9f6079d41347262681ff608668bd0060 = "c53140e4810da5a0cb51b0203957e3cc8220c145" +ec5ed7bc45596a3e692e4a25adf9020e1a947569 = "317fcaca2060e0423fc6e469932986008f17560f" +f919b9c93aa7f4eeb5c8f4b1b1931adc3e47f085 = "96ebe21fd60ad9d2c090ec03157ff26de3117c52" + +[3ee6bc94-e39f-5162-bd50-f9adad5d8866] +4e54e885f050e719d964d900f2d16fe9b466e35c = "8f592d8416d1dade3511a8835750ab19a35e82dd" +a4637f8dbfcc1f180ff2b623da84db970e3224ad = "ff90f63dde27d5f2206046399e4383da06d3cce3" +baef58b4ca5c90acc81dc33a17f39156b90170f7 = "ab95805a3c84cbd7bca34a0937a5b819cd06d6ce" +c19aaa925dd5c5df5b80a9ff07155a50ceffb44c = "18a414c693b3626ad1d3003ef0273ab15ebd75a9" + +[3f3442c8-4998-5f9a-b6f6-804928b92bc1] +c3b10825bb3ff65a95e2d4e09ec544f0f7b07909 = "c8dfd20ad7155fe1c4256fed0671ce8c56e54326" + +[3f7aa1fa-0fbc-58b7-89cd-01d1190b12a7] +e09457a2b2347d95a0e536fd80d7f60926d2bb5f = "7f9192436174abdbf6cd260a0c7520bd222ac950" + +[3fa0cd96-eef1-5676-8a61-b3b8758bbffb] +0a26277531b1a8b50bb407d96779b28746dde0f3 = "72d59d691043575235c7994fa71bf5715dc2daa5" +7afd79df5a2544e77b614d236d5706fa735d43a1 = "28440105265fcfb537426e32eb587f50da7b6613" + +[3fc713dc-8771-5a7b-b2d9-79d2995ff451] +766e5ae3a9f5a75cfa2e6c44587767a79db90200 = "09d122ed607bc6d9ef1500b3d9781745ce247bd3" +8290261ee6205e97fce8584df449f44f5e2be9f9 = "081766ec438cc4b8b7dda2202baeb241bf8d3cc7" + +[3ffbb5c2-dde1-5000-9600-8fb8e4218afa] +90c2319c821a8a5ed27baeaaadd4854d34343f13 = "e580fa380d636077180597cabd5b8b2e8eab8597" + +[402eba18-653d-57be-950a-da680ed1f2db] +10105a0336196d53bd2e7a4d3b0025254406ae76 = "7dddf32b8cc41942504e204b73a71bec097db089" +4de4071f2b12b548bd7cffee28192e34a4e5a641 = "f491dad722d30f1b848701f66d8fa98a6929e5d3" +ae74a50aaae3939f652f6b2500abcbacd05ea690 = "f150ffa73bc5118fd9561e31a5e47fc2bffa8d63" + +[4030f512-cedb-5907-ac7f-4ab05ad75ee7] +699e3217abdf409d377a8a8a44f845b0b8afb274 = "b846e76aa1142118ceec0a0acdb71ac16796c34b" + +[4076af6c-e467-56ae-b986-b466b2749572] +078a040114c76dd79ab21d62db3ed622d6a441b2 = "4a3747c0c31ca78fcabf2a5e5bb702f9977d5ff7" +0bed3704dde263cc3c010daf591e2e7f6702c3d0 = "8c18e1285782e56441f322112bbfc5dc14687956" +1337c90f9051e2841575ba8f470a0b89c1dcc612 = "fa5daf694f4af217dc2fa666b195951187593a66" +174fe2ee83a43fd02c38f854dfce4070ddb95e97 = "1a99155c77299edc0d2e38687d24bb525c219366" +1e0228abc6f9e968d5c03f21d914f713bd7d334a = "89c595632bfa4597aafd5b60668af4608cadde32" +1ea87816135d76a05d8cae09164eb150d0e61d52 = "388fe0a441bb2d30b7ba3eb5da9ccbdd1f302635" +1f7793a6f05858448ff57516a4085cc8d9248670 = "917f01a55a697272150d524f1136873689db2e00" +275953dd514740475518b7217263b800ad59c2e3 = "37df9f399354571e1b3ff4160e7840d0cf8b14b4" +2c9e9c11dc6d4b807ce3158ce5996af3de02035a = "74adc265d2b55c9d848eb33363381826ccdce662" +44682ab7335a46eedec87c6ee1aacbbdada07396 = "65531376ea78216288574f0f605ab57337807d65" +4588045dbfe47f3d7eb87b41bbcb34682b88d4ae = "ad5436578762feac86a9fc13b166c4992493183a" +45bf62e187852b8f707ad959e0586c075a9b377f = "cbfc3d13aae1ac9e3cff42b6aeac974168269158" +47175560a50cb19697d2f9c48dc83fbef90a00c5 = "4a4cd8653157dbc09e22c17997a4041b88188b2b" +4e1ce4523a9235a23fc1898a029e646bc1e7e3a9 = "30d34bce1312b4c0812f52cd832fb077301edbce" +508345e32a9382f6b1e95895536ca200da6855e0 = "91169b577964d90db5c20a0d1c9e53eaed666835" +5735b54e98cad041af3606b2b1dbccc0c573b440 = "27e4debff4c2a733b0e129e6ca69acd8b5285f0e" +6567b154b9de5c95953c41885f55faa9267a0775 = "7f524682ffdff86b65520ea184a4a41348c62584" +6a6f5a4e3a526b5f1eac46ca4796d69c5a0f065f = "cbeeaaf80105fc2a70bc77a5653d231e95e7b112" +7339ce0c4ee1eaa109ad9a5918a1f1fa8eeea4e3 = "1af5fbad25cb386ed4898c376a899ae539df8212" +74307cb45b3dd582bd457744b808a47027e5cb32 = "7f6d014659a8342813b15d893df7f2fb2eef35bc" +7718d91136af80ba4364cb3ce98e3f4b81e8cc7e = "c3f178bb64022b96de48f15757db04affe6d80f2" +79e9753692968034be0a1ca27331e5a1774611d6 = "ca7845e4650b23ba135d260998dd5ede294197f7" +79edba67c9f37d1a96c03721f7da2ddafaab02e2 = "dcc5fb783527a1f61fc175efe9e7b277130708ea" +83f689098cb0d9feb7e85d8b6356443975c329b2 = "9f07b8f0c6a3edfcc2e185f570c356a4e43f2923" +882feeac840a7736163b19c29628f6d2d1ff65c3 = "6041323946a5bcd478c274b2dc71b88e4db4fbe9" +89b86940ea3e72fb1543deba54a3318f2923e452 = "cbc79ba82b01e5bbbf717b88f187819b542f5edb" +8b3074af0c51cdb12c9411e9a71175614bfe2866 = "5fa3261f1db9a8e12070da38ea079acac04cdb85" +8f165fd72f46ac9438cd53d141379e3263a3efaf = "d41a9b306b006988fca0593f94e9deb9e9c7ad5f" +926cf81e7a638b9f20273df6d14aab1d99ce07f3 = "4e3ddf59002799a162526225074e1108f29e929f" +94e41c722064eb47c1e507ff8da8a9cd340ca817 = "10216b8f6b24090a0ff3d680c05fe934efa53032" +a0b5f0d18de6dec3d6d69a4daafd033ef0387cc2 = "cbfe3dd6c2329811f0cd30480563e39f1735b669" +a22bf7f208fe23fba79ce902d755d53f887b427c = "1e7a9f1584e92e893a9cd10a71632c4821267330" +a242e44d05f1b0baf27b6f6226778e03512bd146 = "45292b8c3b8459c865d60b9439c3273f537a5ef8" +a2cb72e125115b44a7157182d24234557227065e = "ebf52dcd48aad17de16fe534ae93b180f4f253f4" +a306e58b666b330f449b91a8e70e6077edc09c8d = "da603bf0f02503281310c1436dc8d514f1bf142e" +a5823e2f110d993004e640a74aa8a11e3fc1e185 = "9d429b0bd298b1f992c5d8d3e514a9a736811200" +ae7295c9f1fcab4edcf95bc9f9eb93a6909ca14a = "4eca33644f281402035cabe7dfe10c651c3da681" +b4c79f4ce63f422349ed6aef851d05f78c79c17d = "5c60923c8be066bf33ecb160b06b97117c1d3877" +b66346fb8a0270a59e70466bf0d5d6608293b266 = "763f7744b3d3e0bdf017633dc5c696fda9a80b4b" +b78e1ce0142296d918bf75cb8bdd0b195403ec77 = "7631f1583bdbcb40a57abed99b62142303d762cc" +b97da743992307ad12e86b7f7d377a8bc01ad8f0 = "a12a829ca4b1c9e93bcfbf086ffb293ec5d07e2c" +c17fa78e7bf870083afc38c5063c0daa04ee85cf = "9314f9e3f8e31d46b602eba64635c8470d621a7c" +c35353c0a16a906aa57ecfa26076a13d224d1a23 = "d72083421d188e54f31a10c3faf69245f5d7998e" +c89327dc85ef0e6989e4200bf1e475094542a088 = "a432951386a8f3ceb86bd56e92c66eb6917ca4c8" +c94fd708613230110f1177b551580914ebaf2163 = "9b809348992eeebea2e449be42e0e4302aac8b8a" +cb9f85a6f5d2f6e8de1a3ed656b10fcf50f81222 = "7c602597990b02347ff96a415b9bee8608195b4a" +cc3e0900cff48804f118721ac91184b38b2fa825 = "891168a381bcdb02600e6c8891bff46d2cf1e0a6" +d478da4d14ebb117a28a6eade3b659c9997a3ed9 = "19aee25303cfb213263c327742f4d0728442fe75" +daf8de0c2a1a4a8679e5fab9df63b8f8f327bb40 = "80625b2445bd34251fe6bb7c2c0ae8ea9459a0ec" +db1fda6c265fd30a3f5d4bd36d69979f3159d865 = "25f4b83ed2a05e1240142c6afb484f493378bae0" +db50d155418ba76d1322f16777a00d1396a989a6 = "47aa26b560926748e12cd6b6ead9765a14f5eb4e" +dc01be5a899b1ca6291b20f5f3f6a2466a7f29df = "448efce7a2eda963ec0da50926e652678b68667e" +e38332ab6b5f11b60f51decfa7aeb75e10a6d38d = "9dfcb73206b870272fc35f01a45192783cbfa2b5" +e90c0179cef843d8d5f81321b9e5a1a009a192b9 = "9cb374807304a94dd2e6a35fd535b6a0c3b82676" +ec30d38cc95b6f114ea136972920000f03834657 = "793e83cfc2b36a115b27633c179a579de31f8310" +feeaba3e037b4f6e4e075424ddf8b962bd60bfe9 = "f13da77a48ffd5d2f5197edad3c97252453b4331" + +[4086de5b-f4b6-55f3-abb0-b8c73827585f] +06e19252e147e49eaf55643ca6796859540c1242 = "70e8485bd2bab0cc3bb0dfe29030587e8b29815e" +0c97cd9675578d98da944f51adc4bb4d8e646bad = "a0bfa8f285788720a310a8fb7673db3be732ec94" +0ca82a206e96d43c295b0aeb72cf4a5972a2c5af = "58cf63d842d914796a37a8d822121b4ae54fa929" +128f4ff88fe9072a1fdd5f35598851f4475be914 = "5f8554f59bcc874e225c025a1dee5287dce015b9" +1da0c4b672250fcc38277676bb20cb19417c7fd6 = "74f8e8ea9b256202cfa5d5bab8296c4430aeb1ec" +26b34816b7762f12bc2f885fa37f1aa6d9717c04 = "861bca2dc6e400e17ae03338e9f1b7edcc55cb8d" +2f422f3be9cc4380b013df6cff2aed689124ed5b = "d8ff397b349991d87877c42de42a3e16e860cc5f" +36061ff3a5af711937a316e376d3f6487b44169a = "f59686155e02718edcd85f83c58631f02fbdf094" +3cf8dfc82c0c7b1aece5a633b3ba80b8c1bd7c12 = "70b6efce6309bbf266bb903efc805cdfbb090f50" +3edbec15979a4a9db72d6dfc05c22ed6daff388b = "112d49b5074d00be8697495e378d834fc51b08b4" +4f20f40c7dd351192daa15d1ad722eea9f6dd28e = "6473bb515dd3452978d0356a92a3e64c26c4f742" +631efccf6da8fef03f50be94442498c46f7997a8 = "972cdd242aa3ce60567a2d7859f283cab69168f9" +65b8d6682713d261d4268b9712c551df110e34ed = "3ee1cdfdbc9805ef8c4843915f45dcf58271ae3c" +73b12c5a33b8a87e1ad20b28388a2a6eaa4a54cc = "1012a01b20a134e794f54dc1a5387d279fd8f33d" +86c9576bf4c2c09ad4542478b56dff43a10fa8fc = "4c1a52665ef58be58527b1a1c9823d3a2bca4750" +bbdaf87c61f777f7438bc7244c24e5b3f647fe83 = "4b49f8c08d82cb4a8bf558264e5cc4c37ba31a0b" +c3e7a315887c513133266220bc3814188979ce90 = "d3a072d808716d8b0d2f689ec042ace8358dbc61" +e5d82d27c1a8f04c91aba08464d65747ce849ea1 = "c4ceefdd028f55fc35cd33d48705f2455f442677" +f79f72d4d57d38519acd36e8ce2eb4b19723790a = "86aba14e7d51d5ee97aea4c04234a7e4a7d31c47" +fd4fe050d8ead166dbcfaebf4fb8fcd34f94e807 = "ca69eb4c8154a5bc625b84a7b8144e22c2f1ce8c" +fd9e648d7c6d8ff9b1ae79e6b771d05bff480454 = "ce8d516b0dc17f05397c238fb76efdeb4e48459e" + +[40e3b903-d033-50b4-a0cc-940c62c95e31] +0b1be5deab6ae2014b20590fe48acbba4fc57cb4 = "c5fcba3822cb6e5c28f0f3e48c08e5ae350c48ea" +3921bdb0925068dbbf782c1f837f4d747f16529e = "5d17ae5f24ca2222c100707a84d384faba02c998" +4c8e748756f255a8b577ffb837e233cd01325774 = "bfc5b2c4fa5457a30c31420ea0307d4cf4737bfe" +4d636a3fd61e6e60b8659a873f3bd0a79b299d18 = "2ec979dbffe734a2b6feae482ddf9114f27d4919" +75f962316c5d56be3ba1491c80e1d97ea7d49576 = "a29375a86caa3cfb22d4f59e93bbf5a66d8430e3" +c4d18994e7b4f6a5d8de6f88eea681639528a74a = "67c19639c887ab9f9aea358a21d5c02b4a20bf0e" +ca3880c7c977a68193bcf2f570008a6a57eaf9e1 = "7fffe84fc40f21cbc2d276b868781dd85aad3a26" +e9c9597731750d3e2bfab58f20da39cb16561e31 = "5bd73645566da9bd001449f4bdfd6a1f9162c818" + +[41288a94-bad6-50fe-b760-28007bed6cea] +ad92d7ed26e24bba97035db3ffe3e43019deaf9d = "1066e107f20d2e757ecb697cc9734468553bd007" + +[41316d4b-5af7-5582-b67f-8b4865fbb384] +1b76603c49ee020d14c5a6cc6b287f414a845aff = "36cc92a43d1efb5145f237ce2e3384bb66d01981" +894008de47605305b1301e2c7a094b650beb3388 = "0c56df2f716acd48acd8b2d69a148cc600e75240" +b747e678fac1903ad0af91570a341013d61193de = "85a34a8c3031b6b690fb3bafcc7f0631a3a1dc72" +d937c4268dcd6bf0fa6ed88d7348f48c4493ac06 = "69cb65cb53b8bbaf9a376c24d8dbe8d60c9bb773" + +[4138dd39-2aa7-5051-a626-17a0bb65d9c8] +033ad195794b2cd5e42cc90229ce85303bdbe82c = "365b131ef1977e7ee11b9c4f80f386e30e7f810c" +084e1eaef84e0e4449c1fa09483bdc5eb5eea138 = "3a144c49989fdb44811619b320b9326f341f29d5" +0d8894380f5567f22e4cf0a545093a0502f8b7b4 = "f1077aa9607c58c5fa268bb3ec033d004fb9f8ba" +103b9a5b545783326d74f53615d46f2140492b3c = "ceef409e4930de45022d41cc3faf0f132a9ce172" +1adf77183ece207d0040eb0d95ee1996b45d1fc4 = "6e572523580834d41d11d3ecc6e6fa1c642b68a2" +36a2d1f43dcb3d7d980397e1389bf7e4bf06b836 = "b61e6ce21c05255cf5160956c67458e13c9c856b" +3d88c03e0bdd06db8208f419f85b4f37b2ac41cd = "ebb5a18633bad2a726d4a75344a1afc0a69fa16a" +41ac60f86dbc0f34abcfcabe46d1e0edd5be9e9b = "545eda3b73e6563295922de284cb1cf20e1d4188" +4f649f34371b0551c8f0362f8f3bd9217795fb3d = "45372f6c44014e211ce17074837b586463de71c8" +5022d9bbf16f7e379c2e5e86c13406b17cceb893 = "4108ca21de47816c55b850f907a6e0b6dee70cd5" +634694385c904bfbc728659ca3ae2035aacaeea9 = "99b1badf5ecee7d50ab51762f6cfebae67034b44" +689eadce722da44b1ad2e70564b14836fc7d67ee = "ca4651bc6bdaffdb0d6f42ef62869f24dfa8f525" +7b8f7a04c58d7c85a2f9b9bd5dfc2dba898c0107 = "5efd736420bfccb25ed6987b0464f8e210518600" +7ef6040ababe66a84210e6c3bf26fb5b26cffaf8 = "7ddfb5fb8a1ba3cacf41a7535799d90e302fecbd" +adc4692d0f7fc62d2e2824144176060d5cc9228f = "4be5564f411d6bfbbb019cc6f4d1be7dc561f80d" +ae6bacd3848d30f6f48920f51571eefc469acca0 = "edfb7aa7752e9c468639bcb245546e59a35cac2e" +b08d907b2b6815089ac95dfe3e0c5a2124d0e557 = "938baa73df61190b1208d7cc3e7d69dd283a9c97" +b273c5e468d68e2f8e78d2deff35e6df23b4b119 = "3786e38bd5ee0595abe68cb28ce874010bd0c85e" +b8ba932074746809b07aee08978943264c75d0ef = "14180c16bd412b92901f8b2c6514e11c17f70b10" +ba352b12d99cb5674f00f8459b525d777559ff07 = "9394206af1df04edecf23d384b3620e02b160cfa" +d09c95cbbf746406089fc86173ffe0f1cac3583b = "52d5b85ec917325ebf9599a9469ecdd74767e7d4" +d89aa72d362c9b9b5082e149281478ac7732d591 = "0a27604ff92c6368ad980014317e84f4c696c252" +dc55ab4d3bc534451d7af9d0df9475e1c5ee02f4 = "c8aac378815599ad9a83eef15092e89aaf2807bb" +efd7ae87ee1ce611a1b1f403cd680508654d6d3b = "52d3f9bf7d056a2a37c741d2b528432f2eb9de00" +f58eba8d8d132d98c45c16b7e4af0bbce9440466 = "b7b325d63a3e7114e3aedd7790f0f0f586b1d9e0" +fc89c045ef8ea8ba32e257df46ab699f885371ce = "75b3dc5ce0fb56a773092e6c7bf2c5cdf6657f5b" + +[41a43668-ff68-5e81-b2d7-6ef3c0dd3db1] +cfcb7fd45c01a6747844d3413ee6221465bdcbf2 = "8b85887ea84d9500d000cd7b52703f76cdf14f33" + +[41ba435c-a500-5816-a783-a9707c6f5f3a] +70ba65db90c1940f506541ebd415fa4d7c95b7a9 = "06619c2d0cb12b21a01f645099a29699f03634d3" + +[41bf760c-e81c-5289-8e54-58b1f1f8abe2] +32a1f1058e21db8b0935ce72cf5a5ffc42a84636 = "46185ea1efd0f541fe1d25db393f8ce9210ef2d7" +36ce77aee33335b3344623edb9c28f4327ab247a = "8e3b232072c675d1a8098e11f6cce6c4fa2d0061" +3c6fcf760f381888d65f70dec235ba139871a3e8 = "c8d659ab5a8604ed00a00448c0c097ea04360376" +44476b99c3f7641875c82c92762287fadbdb4250 = "5622be2735341b2b4f545b466b8a989d05e305e6" +5209a8d5bd5ad24f52fd4cd628e6472861f3ddce = "73aa531315fa1ae0bf224fb84a2a4c137f89f957" +52deafa384b46dccf07b475bc41cd4ec0227be67 = "7c16b1d2e37a49d3fd0727b15997294704beffda" +565c0194e207be0ba087131206ac2af1c5f366b4 = "93703c87cf938dfd69c570277b188d155fdee49d" +6633d6c72cc775ac1dabeecee2cfcaf94d6791b1 = "c9397e6608087d8a837b01f240beb0cc099aaf09" +89a4d10352336d50fed55fec61ef39fca1c21696 = "ce21c379406b80cd7e80dbf55a4b02cc2fc11efb" +900f3b9403cc3bec9a3ec2bd97a94989e364f0e7 = "8f73bc5ca6d60a4343fc7aaa8a12634eb3ce992e" +92372ee853cc0e47ce5dbd760a4bfdcdb80e2806 = "ea7045dcaee8dc58a67a54afd06921ea0dacc49c" +aa027253b9c233f2e2d11267e6be3e34b37767e0 = "c1f1a0cad25cbbeb3e72ca6bcc27645abe1708d9" +edcfdb253fb11376926d66c89706a5902fdce7f8 = "0bc45ace16b48601ec3d0f4152cba580d6e9dfb0" + +[4210c81c-ea79-58ed-b1f5-cefccb200c31] +67a653e2758bba155b7b77a15e1190472ce4dde8 = "26034b9c8788546338d12dd6d21a1c77c052fb20" +6ff713a6fe4271bbc1d217802129226c1c1b87a8 = "c424cb3d8b9fb4c508fca252cfa2fe5627fefc1b" +e7896df475c7a966d5244fd8a5d047cc62bb72fe = "1a76184380f6dca64cfade7c3ec48e8af01bd6a9" + +[42171d58-473b-503a-8d5f-782019eb09ec] +2736ba47334a3d27d96ee92c2cbe421d29714eaa = "601f501a89d25d739889ffb0b8155d0459b260fc" +9e5bee7034adb59463954caab2ccc35444463b6f = "112f0ecdb73888c3f017c961e188c4f82f0e8d4c" +f099cef620156ac9f72be9e84f4a72ec747dac61 = "a31a8f7f6b52472592195cee46808798c434eb59" + +[4225ea8a-3324-57e7-9ddc-5798a2cb9eab] +070380b7b5497813159467a9152a743d21d4599c = "cde1db967a371d5f439f7a23f8de6a810d5f7df6" +083a215431159f5ae26345a7c8b2e460ebc6ed1c = "ad2d85a038ed44611e5b9f7d4ccbce87a97e9189" +0bbb7895a5fa9d80929215e51dc56091b03811f3 = "c9e4615c7c4b1ffb1ea58c4d5e7ae1fb32708ced" +0ee0cf592222d581382224eddff9a1356512dbfb = "a193ed6e3e25214e1d7d2fafcfc9fe68da958047" +1cdaf0ad32170c8385710ff717c0cfd4c1f69096 = "3c6e4366d6ceb2e6dbf488b06cd35902130219f6" +221e26b6ce62c2bf643584d9814b6e78ee2cfcd9 = "7c40ff3d54e0b1d69eb60ca9dab2d705ee830f6e" +2268f5a3368c3a189a9e9fa675e8fd458fbdb52e = "c3a74f83847c2c4a839f9a7f00c99eec7741d837" +36414d6b0699668324fe36cfc98c3af6590682dc = "7cd423441cbf58a17fb734979570b964fed92dd9" +3d1238ae106c6e0b9a391c1ef6a916bb7129aab3 = "9f11039227e1c0053a263cb0290c8c1daecf8bb5" +52218844bc4ab8fdd3da41608d8a2bf7294c23de = "521e8218607e25010cd7b183309d1a55e896eaac" +53d9b557643763e6c82887ba3c23358d3fda80f6 = "a0b3d20c5c6cc8bfba9cdb3131cfd89976f9d8a4" +603b5368e0f12f92ea706b93fd76af2080eb853c = "65f1843222601c85c57a1d764c25a5d269207dd2" +64a0cb78fe8a267f285cb5693ca214f577a7a0aa = "1c726b6a638b6078e936bfda6539b04baecc3ab4" +6a4be57efe0f39b9c963055253e03243ccb59980 = "561a1560d09633092c2014fd6a70b8fe19a66252" +72a60375a79b43c6bdb6806d6da3024407eefb03 = "ede3387fba65288a0fe89ac96e946f6413782211" +73ec700af7e830eb90feb9eba5485b2463fb5d2c = "881f4a5963b8dd88080f5fa7b127750011d40bf5" +7ce41ea77f281e29e42b4decb33fe7b79bdf3380 = "bf0e0fdc6e3b628fe9a33417e6db8bb1ea42fc22" +861074feadc3a53558f436d7d2454fb537a02cca = "1c61c1f1d173d119b15d9e41076cda53056eccfe" +b2e9baf72e8faa8f9b2b6e7c4c5b574ec198d076 = "56ab7ab8127936a4fb60c692734ac8027675471c" +b65a4db0273a957c39b7acb46f739ec2ffae579e = "5faa845f4309c590ef53a292578388bb027d99ad" +b7c643aaa6ed16f02a4d0760a9a8469f7907869c = "fbcf24368317e7f2c07f9db76716b559fa289984" +ba52b7223db16fa19beec5a98ffcf97462f06afe = "47e2484de16d3223df228124c11dfc5fb4d8515e" +c29edfd411638827ccd03ea802ea6e2acb7e7f3f = "7606350b0ee0b52672d93923599626c5e3621d04" +c44f11b46fe057f7401fba71239e91bc9fb1a7ba = "41cf96fa192363747a8243fb0964f31292bde416" +ca82bf6d24460b10a686ecacccb24ade98892ec8 = "0b5b3333d12e7c7e8bb386a150e038b4e6deac04" +cb196e71bf7d9e62d82483d94ad344af7c74b162 = "296164f84bc2a5129ccef143a2f72698e9a79297" +db9e19aef5d2496214e53a716e2af66a0557478a = "ff54fbaa38bdb9178cd3215e529308683080d18e" +de1d4256afa56f7d171798efb3e350da4627244d = "020b19bcdf9429d698df9ff7a872df9ba60341de" +e4d5d995f577442f40ccc7dd61011104d6866657 = "804165f2574e0ace2e9bb25b90498e8b0828e93c" +e8c8aac1914cf7572814be5a8d50537c5ea48017 = "a546fac40f8e0044cd574eb2d1019612ad22b2a7" +f7217062c4922c9650a061ea2c42c4a6d2ea699c = "39c481824c49777de08716f110a9777fbe7a4707" +fbfcdc238c11df96871bc340981fd1dc047793a5 = "766b185998388b4693525b15fef2c92413d9a1e4" + +[422c787a-46d8-5bcd-977a-e425588d3a91] +115ef12d31ee996a04db9ea0cac941d27a1fb8b2 = "3ed4fa6281b7aaf1d8db09225dd2f2b21daaccdd" +355907d8abf38f46b0d55b31d71552ec991f0f3b = "4b7dbc2b78c1e1f9f2256560b41f6f0014373001" +3cb5c49932c82d262256d47207635f2d7a5e0f1b = "d480058053faec67e4248800b75fc4bd1c31733c" +54320f3c541b0ae5614e3860821b197aa7c1ecca = "bb9274664b6a618ff79f3e74b1385578519c0502" +8b11378bf298ae82c77d449dafd4eb2914509a67 = "159a7053b16a23f4560ea7083559265f965ad506" +d9543ea428afc79c38aa30bbb4d664ec00c0fb98 = "4057a1304b90890df60c1dcc1eda88123141694a" + +[423ec4af-fed9-5355-ada1-918c9f4b4566] +918afc2a1272c125c960abe1743bfc3a9de4a027 = "7f40bf0b37494b470fd6b3b7d6f52ad0cce9a617" +b8d68e4f38f85556ab912f6ba331b8bbc05c4cad = "add580ed10e98b65b0aacb9011a5db54dfe72d7a" +fd0e393f4f3b5c78f4174ccc2d62b239a8370ad4 = "2d270aa671fa9e4fcbb6402387bc4dbd83328e8f" + +[4263706f-63e6-5d2d-b5cd-cd6834b0c510] +384c1461eef2627ea75343f56a842bb63757e666 = "b930a19550b6d095ba988c79bfb43c673df519e0" +a0f3c8829f23127be82e3539c13a51f995420fda = "f66692d8528a119d69123c54e96f2f11bf1f28e4" + +[4278c8f4-0a4f-53d1-b67c-7986f76c9f21] +9faa9033c8972fb3a6b1035a2d1c75947a07e404 = "270a148942f0691dfeea74944e8775bcb5ef8c16" +e95fca0247d37fc9d6d10a3465d610fbf69e05ce = "f3e59fc24101d10764726019cbd003222dedffa1" + +[428bdadb-6287-5aa5-874b-9969638295fd] +0ac40a8004b7a295d240f4af276c1ae176370323 = "7e2b3e7d77a39f154796ba9ea8206ed3b458069a" +125333d1693de41c1dd8f3911a52529e8435bf4f = "55ffc24b91c7393ca34e60ca38deada5ef7b723d" +155814371666e2c030654b4974e15195cdf1f2c7 = "5769f0602cd927d8c8e1767ba439fba5e628e1e5" +1f3cf80245f0a692193eea3c850dab07c32abe9c = "cdaf3bdb2c954279f7a55e6cce0510321472b61d" +2153535b95dffb43c424923d471572a34e88bda1 = "2a27e11c87279b461bae559612d785a7d80e0c92" +2bfc0bfc82fc5413023e45ae1de1cb9ab762583f = "f324a5ba7991aff238abf347fbfb2829e66aafb0" +320778928dfa0afbbc096759a5b3e9c6f727d165 = "6c14044057900abf04204ea7116450d96f8ad18f" +65283644adf66caa94450fb3ad9928994d776176 = "42912b491789ed49a7868fa2d1d98311a04bb22a" +6eb67fcbfe0add3e641e55f8d7057fdb68768f73 = "284a8a242d99162c8c946791bb8c1fae8e8adeab" +749a07c38d4947814dfa3d0843b890c8b606144d = "b10f83e74f8a352fdcef8eb7584f2748967e764b" +7e688575206f212eecd0e7f2673f9124a0725442 = "0f37a32d937a1a9c511a5f63348ace56e3022371" +9eee82a7515922beb13c5efb0a060ca5cbf59027 = "dd3e4e41ac1403ce4eed4f7a752a015376623302" +af25eaf5c8f1fbc02dd1a3fabc2c89447b0fa079 = "c755c97635e6337c3aa0e76da344d026af8a6063" +b1bad08b8a1e0af92a4ad4077a1a0851ca342160 = "0ea95cfc021a767ac79ed4258f9cd3353d9d995f" +c8d9567bd5a92f091a11abaac458c7505635dcce = "c4f402094d00d26f0ef9da58ce8a3ce9f061d35d" +cbd775e35a445e497d3b9157977b971fbfc5d846 = "0cafbfccb7e7f89667acd9c49438e03089df6e82" +d0e2abe932d0adfb96fdaddb4ff7cf82301ec02b = "10ca53d498d8dfcc8d3aba65e889b1fb56e0130d" +d1cfd1d2891d389bd683346334bb14981b5c5cad = "ffa592903e35fe5296793036ca4ef10519fb7dbe" +e545bfb42f1320403c559b2d762d6e3592f3d5d9 = "8dbf9ac16175aafbfe62b9300391fdb58139bb86" +ee859c7efb148e1c90c43e3bd6a7f1fe7ab5075a = "f90b0d8555e6d0bb9fd20e5b4eaa6031972b3dd2" +f4dfae54fc14c19cda3f0d99e9ab6800af997cbd = "fb06ea694cbff7f1167c9667e8c6f3c1d8644775" + +[429524aa-4258-5aef-a3af-852621145aeb] +00f671199ea1046a43b87d2743f846e9c2afc0a3 = "3120bf28495975141bd601570f850d89a385262f" +0e6d99284396281f7c3b220a76fdba97669c2958 = "505f5e77092f23f9924afbf6aa2e5ad5fdf00070" +1ef7694c2837af1b30f2b8b58bfb6401ca8ad166 = "0881da0053251e9e03188a52399c544f4a89bf38" +250b50ab5f9bb87576c623fa20fdafb981ce40a1 = "ce5bfa3fe925f614b98d45e060cc581114dc3491" +276c98d3a61432a14fad388debce91d056653b88 = "6633391b87849d9bc00a1ad51d1cb16b6c0084b8" +28cb0952b5c0934a3375f94979ce2a58a194a85f = "aecbe4a0298cb57e2a15089dd53f8c10a5653e0a" +2d1b8226160b8dd8f4aeffd40590539dcad10875 = "4afc412fbb43986a311b542a19b43b3c24bf78cd" +32cc7b73c8beb12fb5c912b137e60dfd984d7f5f = "ebf05954c0d0ac052756a3d1e1afb99dc7e6af62" +420f01ecd832e48e37ac613ba2365a6f6e7f48cc = "9deb0cf87621aff979296b1503562597165dd788" +43332df03ca75751d42460982a94af41c54b2c81 = "b0d819da2add758cf83f6af65d6f973ee453a340" +5308593e5750e2aa51c0f901303c6b62f985ee5b = "d41c9ff4e39783f42b9146837ace5d4a22ffc4ea" +5d31facb01f19f78ff60f47b459a89f3af7ea014 = "d7d6bd0f11be6b90d97b666fa8609ef54d147d6f" +69e9d09453a6e6552b490c6fb4c6ce79a74078c3 = "b489f89a0777086cca6a41a52592f9a5a1f544bb" +6b75aaeaed1526f2f0a00f10e7639b6ac2a2c911 = "492dc14987d6b902690db2645120d1f0e2534819" +6f0be0643d2795c5e9169e63283c2cc5ab7cd309 = "270e51cc2161d5c7f6eae1ac0f73183c9eececff" +77858908144b3b852f2ad8e84d52921eea5e69a5 = "5dc31453d2cf38d4406c8577de82990add623b39" +88657f977cb4da51360b439653eb1ce8dfe65fe1 = "29c55d234cb2205c5fa2b15e1e90247bd37a84f1" +89675ad2a34ca75839a39ca1581cd9617ca3e8d8 = "d706ae5b016110b06d061af49f4802b554d8329a" +8ad3d9b830a3a3246ea056a26366e471d89c51d1 = "1ceccbde3c6784b16f7551350ceda265a133431d" +8bc2dcfb0c4e23e56fbe3dcdca8ed16452b92297 = "8e66946165bd0a8acaf6f95c8c30c956b87ae036" +8e98e0b76f28728e460cb499e7df47ad3eef9892 = "aa80d1d7af8e61effe848396795d470cfdefe924" +90f084767077f83e8cba41869cd73afa9d8c6e35 = "bba561c375ca747c3dd3658c0f5713972bbdd71c" +9b75e9058173edbf0f625600afc1c97f05374d73 = "d8c628a2ae1bc10d480599a2b0330a87c63ff7f3" +a97e6d44720607a671da27f6d81900fac27548d3 = "f966e19923c2e61d96389f63ee4a6c8a2de1fc55" +b01425755c653ff8fe11cc1e3aa41b648331f6dd = "915d34a6b5aa94b6d44a4b227dfc486033bad80e" +b364970e27754f67b47e4f3a8e24852965cefb9d = "c7469c4057ffa8e353251d71f6de913dc3cb5243" +b73ace5fd6729f8e7e10013c81942cb94150c46a = "b0ef8f45a758ebe7a6acee328563d7723ac7a1ec" +c4e0116a5a1df651c5df16afe6c4b80e7411d148 = "9d1dec98f4695d343ac3ed365212277ebc44ebba" +c667a35d96ac5ff8615c57411e04bf9385e5d061 = "a8f14ea0a85ae2a456f5df89d4205ea22c97420b" +d0cbb5a11204dfa6409536a397c5c489f15dcc78 = "ce7e79d8d88dc29aada5e767bda43b1fd88e0ea6" +e24bdeba5de8589d2ede8b50e720524b921532d3 = "d9045b4ebdf0b76f5b3f18e8e0ca592a4331e7d7" +e9056b1b6bd45c72019b4baf0d4f9efe2119a739 = "29a05aca1db0c86377fdb46862a634fac2c92a6c" +e95033d432d4ac9815cb51c365b3fa7894df88e8 = "7819f4bde8891c51465df4c522dfd0bcd0036e3e" +ede177ec7668936db53e6badd7b8b43bf6b05e5d = "f718a51affeaa6de3b6006d0889b88294dea0214" +f29374a69b59c470a4b23d99f6db541efec4a233 = "a4ab8cb95eb1416f5a821b4c7db56b3df7a51368" +f98897c27ca9bb4e1c7858dbfa6568ba7cce7652 = "665be87fbdd890426b1351a948f9a683749c41c4" + +[42dc638b-f25b-5678-89be-0040dfb9a435] +17ef4c8132a98ddfeb7cd4b385b45f3c80d8afd1 = "c7a56d0910c4a6a8c35bd282626ccf6788c8122b" +58df7444719775c363c535a265dbf46e3ffa9317 = "7f32f0b6e33db4137c35e39ddef54ca7ae32d11f" +65b994ec735c5f43099b763a535a20bcf0a1fcee = "0b0e55564907bccf7668dffe8968bc425d0eb384" +6dbe9f70a6b51f662701a326ed5e448b7772ff57 = "10bac6566114c255a3ffab4dcadd648827ee3b4e" +73f02e7c18b6d044739b3fe99ee3c376e1c9361a = "a93e4415cf5118d3e18501229dbca546dfe0a43c" +9daa97f09c9bb7fa1c6cff8c5a6af67d3a9b0468 = "c71acb2a303fbbfe06b71dffaa3d2668ef6969a0" +a3d4db7231cfe88b01d24f7ae509152456709054 = "a27292239e351b647d6f220652ae9e5a08be7b99" +be5b10d591e9b32a98d7ba8aa2850d124d1337b8 = "833708f5f57848e2818054ed3e9a4e7933ba8738" +c7c80534e8fb31bec475bc4f4a0dad19984efa26 = "0844e03c2f2a8289b30cd9db72af263aca74b08f" +e4aa600643fd2288b6114f42beae8f2e0eac5804 = "2f0490992bbb2f712fe4fdfd88bf2a1280f9a365" +fe0c52940debe1a29a7bc4225bebc303154dd6dd = "eaa786111fdaf78c507728628d4a9bbc9026eb23" + +[42fd0dbc-a981-5370-80f2-aaf504508153] +0aa0760d73812d9de504068ee48e131f666cc142 = "49bcf92eea5a6350c0c3c2504059dc5aad69641a" +2772d765e505a7ecce9fdc62cc59ec64b58f1cc2 = "6b917188f0a5c38debde8c59d083fbc524acd329" +2b1834126cdea58de22a420bf59f7b43da190689 = "61f4f582e210180c6113076e47b9b9895770b320" +4558f41f71fa03fa0a331f58b6aa0e4658fc232d = "a285f204cdf02d6adc30f77c6c0cf60f6bd71dbc" +4584403fd7dd2367dd3044262a4f417642517be3 = "7827246b7a991171550e5f8fd3bdd1bb7a30c005" +46b05250aa1c7dd1d399d64b8a323d7db37f26ea = "6ff549d223a6a33adcba0d7ce0a6b5f5680ceb43" +756edef2b6a58a65b41f87127fbec1f8c62150c7 = "e649a8bf5e3c547d5bb34fe564e423f8efc184a0" +a215666bf709c2e66f3801edf6eea5449c42d2f8 = "f382598d4459bc767e2c3321f7d83ea06c4e2508" +d41f60dec1d148ac69e3dc78b0f2e585effcb251 = "b29a3ed94066cc3d7d603f45f643b78b3ce10586" +e0bd5e1c91010836657579e3b72b71bc337129ae = "677b2ad11de9ac518912112814cf370a91259ae9" +fbc8eabec826f7325db19a0a6bb8496ecb9645d2 = "d34162927996bc2d6e6c5b8b54a67d75f97f7699" + +[4345ca2d-374a-55d4-8d30-97f9976e7612] +19a68e0ecf35d4a19b379ed70de93a33ed61fcd0 = "3d65a226c4588c51c558bdfa578d9b813238856d" +3eab55acf9d367c0c53ed9aa804170b6b4467fc7 = "947196ef99fb341d8fe53a8b6bb4b0535c6522f2" +55e3a3fd32668323174ceda35b1cbb53f35588ac = "b281ae14444ebd2a837a67e3a9cd05ace21ecf70" +702800a031d157db90c5686809bcfee50ef69432 = "9e60182a3e8f1bbe365c8bdd87b3e37a785eda2f" +96c1ba356808ffd1ddc68e1c4e79fe891cb2c638 = "a97979902632096f47013becfbbd3fc9af44df6f" +ad2e613e3049bc41e4817b3f09b99c512d093a1f = "b684e162fcc88be88e0d453bc64e98e3639d2e44" +bcc8f1a2488c0ebbbc97f6f9f6eda1eaba0705c6 = "62d775089e1814544ecce8fbb667442c5c35b36c" +d59cb4ad534f9a258ee18b401412a2631684acc1 = "98ee33c8d0b474105d56b754d6a7cba6db602a68" +e61cc8a169aed6162b393cc6a9b9f14c4964ba5a = "4754a66ce6db1026023b41cc751b0e178cecdfb9" +f53def33e29c565df0747d8aa06cee71ee53fe47 = "0830060e7a9ecca9329d475fec1a80137f145a6a" + +[43497bb0-e9f8-5dff-b622-a6beb2ad517b] +22104ce82cdd9ba8e1bef7310e52e3dc18f5beb5 = "06f33013c3e7bac1b456841ee795e50bc3603444" +39f8dc6d3d4d0dda97603e35b6bf38a36baf5deb = "7084bc406f8b1bd34073577ed096e5f7f17078aa" +5711c331b02640ad6e9c7219eda108570eda0ca6 = "7ae92b05ac74c72eccde76f284af8a68c2b33797" +df2ddc41ba6b598ee7f296b856d74f759fa1c4e2 = "c779940bea9c8aa35ac147665fafdbf13acb5824" +edac048b32a4ac1795c49b5daf0ed19dce9e3f65 = "84410f807b3990eee20510d41fa59c055ed51d70" +f29e45becfd8be3c125c9a19e0244c6836939168 = "79689d55da42fa34525ea781cc19dab503867169" + +[434fa67a-6ada-5e8f-9662-b52a532874d7] +920688b9aab8783374d9c7e60bfefa45bcf599ed = "4429126b54623ce15e50701c3a0203b424049de9" + +[435c3d8c-e5f4-5f7f-83ee-d96dcc9b5a11] +0ffcee0aa36146fc0589f876c87df4fdc1df96ed = "87ff2cdca61bf34f8d16ee18b95de94700358875" +26e11e95f3b6302e2abc762fdf79e9e3a6a0531e = "f6b424190f662fe14275d1075088f097603f27a9" +49527f63454771e7de0d0b91a34f60cbc530742c = "3c41b373045a1d85821da62868718e472712e1b6" +9b0106df5d2120cf311d3f29d999daa0acd67b08 = "33e45af700f590a76bb175e9b3ca19c9c126542d" + +[435f3bbf-55e0-5b39-8871-97c6cb0d7309] +51305c92d3e87379861881b6d56de38bc4a4770a = "b4ec41aa1e48c288c4c6160295a830c6901c63cf" +d95969f86d3e726e6f5a372dafcbc917a93e385a = "9df73a41a30640e43d9bea164544e963631c8229" + +[43612063-7f17-5691-a524-c0463e87d2c7] +0c19b6bf7b9cbb45902fbb3fe0b1ba1430393b5d = "74acc58ce05ee714e21c84cfc3682d91656679ce" +264f33906ded6e447b1c62139ee9be5dc463d066 = "20b38f3838f33eb7ffd857065cac7002a8e474e0" +eb4292772ea0df44b33862b8c5fe4a707ecd4c77 = "b8db2f32cb7850d39346faf4ad3cff545a19b775" + +[4381153b-2b60-58ae-a1ba-fd683676385f] +2c38a2bb773204109ec1fa2c047ccc21314aa11c = "a78c45ae70ee4c59bd45cfb0776df458d1b5f73d" + +[438e738f-606a-5dbb-bf0a-cddfbfd45ab0] +0254dc393e3133640cbac53c05367d209754d432 = "abb1a98cbed7cb756166da530a27c672300ad362" +0550f890c86878375f74821a459da41e7cc943f6 = "2ba54612238a85ee6c187a863faf6443eb645dcb" +0c8e5165d61fccd7a2666d94d68ca5507abe1624 = "67349ee5e6715a782678ae3fe3c51e4aad6efb62" +188ceff436d87d864b4d8e3202b0d4c533fe4f89 = "4e21e413cbcc1203664a8cfc22296cef4c707b10" +22c74041c1913d531598ed562817e5910099b144 = "6e5a3659350231dee9c699b62c23033b42b465bd" +2350afc56f2d4e9999ea5d67e25692accbaf0b8a = "9306e31d99d4398832715f7eb53cb1e3bfcd37f9" +23b9c0174b098fafef0db01e5541165d87c6491b = "ae28529da68750fe993e3b1534c1e9bcde5713ed" +2900a87ff8618f3c6162e5b32652be0cdb8c12a2 = "cf2810e667838fa6d3edea9994439abab7dfb6bd" +2b653b8c57c8bd465a0dee05f48068512a0a14e6 = "dce88f172319962fd1a120ae33cc8476fe345479" +2e56f01c722176e19a3fe233423dd3b146e47cb2 = "b2ca3c554006ff73aae367de9375126cf902fdd8" +2ece946d049201359b3868c931473d477913e3f0 = "e6a930f9a31754219aeff25302ecc205fe97a1d6" +2fcffd57c147c6d845bc4028939c79b999382124 = "138e7b5ec4f9de76b5236f3e62ab76da114f116e" +2ff91cff447fb99b0359ec7f32af96925f9bab61 = "8c94615cc0d93397a0ecbc114f3d9bd265173671" +318bf89bcec6a286666ccb6b4c602d6e7ba63308 = "e5d2bc1154b1373f547494e47dac06d0b56f7dd8" +32b10a59cc688106b78f4bad8d93992a379937c5 = "5b41485dcca2291f9ef9dffc2ca84628c90aa91f" +33906a7c985b787583bbad3560799c3c65bd4553 = "ba28962641b82c98cf973e24bbf44c555f53c3d4" +480cf86dff42cb8da0b5dcff922a17b75b47b1a0 = "599fe0f9729f33c475d43cf805578ab3320f462e" +494f8316a868a24bbc09aa2626f0685ec939cf8e = "a76d1e4cc73b546e9dacb8155416d13f513ce559" +4b2732d5f35176e2bc84ce7db1e325e6ae949666 = "76adbb8828f06cc592edec3f49d1954b487a1d4b" +4d7d476440e9094c2fad548b9165ce9bde01688a = "cdb2a82481db7b4cc7ffca835875a2ef92f10ad3" +4ff3ebd39614aacac26a0bba1827dfb6abbcc7be = "c375cef261c6398dde51018a1d7ca4da3ad955dd" +54a3d57d7dd1bf2271df41470049b9bfb191ebc0 = "e225a0f2d4df67be5774d179df45a5675c1cf534" +5da18e2b137d6e442fa6844a1f4fd999944b379e = "19e5b47057c3052bc946902abccd6fa23360257a" +6b2d3e50c70995d5ea4f88e66f2947d072d08935 = "4c950eecc28a1f619b2715c45dfbb2a392c302f6" +710afd454bdc0512457e5161e0177db45e00b63a = "bbd8c05ec8dbe2c8bac3147385bac2c6423781ec" +73c3db71e8e1eca4ef1e950e5aaabe65f544b159 = "6948a178094e1b77bd2999a5dbbe989aaba9a744" +7798d4e44493415c07e9ed2ef7b708f6936bf1c4 = "bfd9c026fb48ed7542c237da7b939f4091bce367" +7a930c92b66c9b4cb6588a873db5fd3f9826687a = "73d7f4f094a2e511832c35ced2fa6f0c0d289258" +7ffa9ae8cada3e458cfae7ec49c176cea6f53a0f = "9d6af6659e956c36be900f6b8a821c1384782732" +802a18dcf9ee24cb517fffc95853f30014906423 = "d34751224e9d27d3a47cf03c36aac3d6c16d2def" +804e065479362f0f3f8a413f8d9ddeb201fccfbc = "ec4d65e34b22920da310b8a9f85fe01db1bbb06f" +806630c90d5cd29b2afbc788c7d0ae026475bbd1 = "384b20d2c5b85b872e3a54016de3f04ac16d91c0" +811ac7271dabda4af737bba55ca3238b996f8fb6 = "d3284c933e0dda292a817b2c30593c36cd8db729" +827ac9893301f7ced621c32f13e5f2bd79350030 = "1ffbc144b52e4a5fd27282b4f60f6401f12db812" +83eef6b19dadff3598f8f07b4579251c433204fb = "73cec8569b7cf56b47ed2c6def8b7d1ba56c0426" +874b044ab4239aa20993cf67e41749abf8dd9668 = "b3bc4acf2b149cf06770fd9cfcfe6d094e55b2ce" +8eda38df092e7176beff369b02727862123fb5ef = "0e063b93c04fb87436c11b68b71aa70d8c4ef399" +93560fb06affbc02acc237023e1b6a85580b3416 = "9ac88a73c5cad73c87e317849fd80c86e5092041" +93fad5cb429339bc67c43ade02790f1b84bf9f1b = "ef7293583d447354fdb7512c1d84a7c0c15acc8c" +945737a0085f933f86762ae40b3695e29e0bea2a = "f0d4abbb43d3c2bf9f0c58b6a4d1a77922d54453" +99221c0e5e1056d83c6f5344baa2fab769484d7f = "2133a0c0bb45d931813cfbecd0cde6435046bd80" +9966bb206d75d7be559e35f0455ca94e1d3ce7c0 = "43e9d768c232be7e0b284cd1514ed8d37e58a5ae" +9a439cd07fb4380392a0221f462d58f20a019c20 = "d03915f27f0c7ea1153c454784693c6c65bc59a4" +b94c2af031622d0b5c4e7be61e0a645ec8ff6bdd = "6c3d08e5191626c780fe2aa9744f4078829eecee" +ba46cf1089f84ab509d6c8277361764e258c0efe = "aabf14c544e852ee6874b47cca2c6d9316281ca2" +be354e07d0ae5b70f819bd93f7f10b914bbf170c = "4a8344494520694f7fc10072a9c085e1034d387d" +ca1eb9db310d73dcf56d012fc0f1cc4cba5d2d44 = "56d401d8cae136a56bd696e09e9684c6f6427c52" +cd6e9b5c08deaa249af1eb91f67b9b2c42eba3c4 = "0fd5ccca64d829ab7b7a794b3a370bd3033d26be" +d086561fbbd39c48f1c214f642103a9b87b39a0e = "277d401ba335a47cb41a3f601da153e0c3d790ea" +db6fca652ebd45e6b68d77db2b3f2a5d9eef2877 = "75090ee0d8b8096b3ea19e0b0ff9adfaa333adfb" +db82657a03db54afbffbc8c676036316a09baab8 = "2e0d399a238f0be739d2ab37c508f499093a8246" +e35224ad380fd35db9c0e64db7d677bb40ac7757 = "b0c0e3607b655e6d079a240789638d2eeaec61db" +e397bc9ebe7a87b08d056cb22f18bf662872ce22 = "6d2a77d457be81bd6915660c237a72077a41fcfd" +e649e89b66f11e35bb23864e23b0d9bc72ffa5f2 = "a313bca5acc909c7a5bcd19e86a0ad20e70112d0" +eb654cb667ab4d6ed0684c31334742806cecac78 = "e30918f519f0fd9697f46efa862efc6d838ab2e7" +ef7dc775060614b0c4ebea3555ed9cd4f1c65c92 = "d774f3ec62b99efdaf84ddd55d2bae18409405de" +f863d82b34969017432be784954029575b2e3e61 = "22d85fea8f6ae56edde0dbd07a5f271aff0b527a" +fcbe0be562d347843d107617ce178cfa70ed1a54 = "4abf3de29c8cbecc85c5cbc6018b479d71350de9" +fef614152839357e9ca27e55c97fc33f33f301d3 = "8f6a748d0338458a9946cba975e1168295ccfc35" + +[44063525-382a-5b84-b7ca-976d099b8647] +7062f73a22f2949f5ee1c7c330046dd06bf1af69 = "30aaf6c8820758109caad46738f859f9cbb4310a" + +[44135caf-e1e6-5817-8029-ae977229455d] +c1794d6e992e632f21d593d1175a61a44b8fbcdc = "a6404160c991be31bb9d34e27dac5f2dca74069e" + +[441973f2-b9df-5c96-8592-43ab4ae4df82] +8bee6927afd8bf15864d02ca3bbdfc68c8ef4fa7 = "2f81f1e2b9ec7a0c7ebfb74bf5c7c678f5a21b28" +c2b7602f9125710831a7f75b5d3e6580e7b587ac = "b22e791da0263fa975f341bdd732c8de8ab58b43" + +[442a2c76-b920-505d-bb47-c5924d526838] +1363c0813b3446bb7a79d95afa21544512d8743e = "e2a2e9c548de4cceccaebe218fb3b11564b324ea" +347a91e675a8a5f37fb8bc32212d18cdfc72e029 = "1cd63929d605456affe2cc34b478f7e7e81045f4" +437bd18191cdf84040c8b397c1801fb0dffe6a15 = "2239b7e2a01d7f46929a524e08257b4576064f69" +b00443465c542b7bfb2deff8e156b15f37345ff9 = "206b95db674edd0f3792f11c3f313b01c3717bda" +b4787178533115a08da42491ce8c5c65f09c532c = "b51560bad1689ceaff59c9663da01ac8a1dba45c" +b6c0971b8579a8da6a98da8fc2fe020f5f1ab9a6 = "1452ac1d6931ad5fb1d058bf6f94c83c965f4ef7" +f6b50605f6bb6e27167f37f7211fb089d4aa9e47 = "06b7156aab646dfba0e51ab6288b77f75246e901" + +[442fdcdd-2543-5da2-b0f3-8c86c306513e] +82a6c6c7e5caf8ec5d7fa15baf10527bb79f133b = "a853d1f6b5ee6207c892f44a764c1b1590f0723a" +82bde724e6937c7f8f9d2c3c281f140bf8ff2772 = "1e71b269dffe3215dd8a63f5b2be2902a6ca0c6f" +8abb515c407d6ce82566ac3f0776f6763dfac0f6 = "e61d74db9a8e41ecafabc764a20cb9ef4d819541" +db6e95584e7b957e1cc175a800c49c1b24949f25 = "9e634d099660090c84f05480daa47944ef945fc7" + +[446ba1aa-1196-5145-b9bf-af2f15fe4dda] +ab68cab28938b8ae3d4ee39aded22aa1f6f281aa = "fcfb4e7bae9189f1f3a871f46afa29a59039449b" + +[44b605c4-b955-5f2b-9b6d-d2bd01d3d205] +480751f18c287490f39b076ad920afab1ce82a10 = "32e30dc9c7a419e00708e2d381c9e39c4da3f4f2" +50231571e2ea97a717b88ed47791d92c663f1a2a = "edf6f6b2164a81868ac26202f93c157aa3bd050d" +51d1afc206b39e14362858f3375c49e1c05f9847 = "6682f0d5df26ef9d6fd0d2a5128e6fea453020f7" +738135f4c7a859807efa6650b57e324fab172729 = "b8f33329d162ff41a4dfb859511d6b5f68de1a43" +a7b42744cc7f7024446a29b09a17e1b04aed94b4 = "aa044f679def150354628f35fad855a85e6f83ac" +ac1efa49bd5e4979237294a7c24ab7245fbc0b6e = "89dcbc191dad1ca59130ec9c3cc5cddc6eb4202c" +f06cd4cc96f42c626f19d777dfa255b1250db0a9 = "b8de5788bdcad9c76d1d65047b386784d79027ac" +fcabd1f679cc5d21302e521fd3d86b54a139a592 = "af21e7efc2f0929b01f910da999a36c2efd842c5" +fdc316d4b0e534efc1ce1e7cbb69a526aeb6e912 = "eea597547afeb3ed234829e146c59ba6f3ca3a8e" + +[44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9] +06c5933cd1430d3879cf11056a348c89708f67f2 = "79d21ea62e95adb4a4428e611e94732c0d927a8c" +0c36d034365017c045bc2aed2ca2c91918025193 = "10b309611e8c909cfa9a9f1f2dd153dd8393c5fd" +13670b1620f19e36f7cf9ec80b4c048340ea1ac0 = "f3f32f489342a9021acd52eacb2aa20e11ad4c53" +3c1e0e87a9b117c52e46568fb9b4ab60c8a1bf98 = "1b37e34ba3f9d48e9f2bae000adf1153e18ae6f7" +562968f9be234779ebcff20f160d7235b286bbd1 = "8e0411d81dcba88bc9ac891739a36beb952b777e" +6b65075f0d9a3f24a7f5f2a5d21f26edc2f978d3 = "4d009fcb3d6c21679cd42d389ce0edb15bab7705" +6c2f0a7bb5c0c1e3265a632ef90c56450d09f3a3 = "81ac60610383876398fc9a386e44ad51d5f0ab9d" +6dc482d997507860ebfb1195d396576c5d92819c = "9c7673dd3f8f39f973c75b372161c559be484972" +784a524d86f60f6f8a6ee7bfb37b03af285aa12d = "e2841e3910021650280748426ff06030b3080ef6" +87e7965627c526c61c3671bc2a50c91fa26aa512 = "bbdbabf19aea2e2afad2f1f27ff1f26c03671294" +96bc072619d27022b4118e99b891172ccf6274e0 = "5a94cce6395c414822014dfa110c05b0c87234dd" +97f309af1928202ac3540dd977fa209bbbfe0d24 = "7383a6acafb9e431534a8c88824193a4591b853d" +985b3b1972971edfca9fcbcd41c6d1b87f6c3c38 = "6a214a231ab40409dd6f4de986b640ac88ce42cb" +a4891b01a8f20557270f827a9c5a5e5e7c25ec6a = "f76dad6159da2685b0dd27ab6978ac602292dee9" +bdedf37e5b256429364f8370a11ab1fe05f0e22e = "e41d8ee393869c18b8223e4f9ab22848401744a7" +bfd163e50fdc2b55af7e88a7bfdb7e9a0610fa0f = "d4d7f146ad2f19f5e772048250809984bd700712" +c61adf1230dce157821ef535143d2f5bdbfaf7bf = "ecd1fb694f48b6b6a8e48070b35ed740b06fb9f2" +eead8f24a85fbe7354bc704e1f9ed71701470fc0 = "32863901147cc692f4548a352b5e3d596d628ef8" + +[45408861-6e75-55ae-b01d-c0d3f903bc50] +ee301b8085aa2a208610c7d8921cac06c2ed1aff = "c87bf57bc7c0aa857e44894ce26a7015df5c5714" + +[4552ee2b-11da-5aef-8e78-0d48532001f1] +88111bffb7ee46cf6dc51cdc9354fdff13843b2b = "48298393ce215286ffceffde624653d61f2fcd09" + +[459566f4-90b8-5000-8ac3-15dfb0a30def] +1df5505c60d4efa239756cc3d96b5ab8950cac2f = "ac9db489608a44e2395aa5f8f7cd791c4029fb5e" +2d37c748f2da22378a0e90256bfe456edc2a27e8 = "69b460e4fb29ff0c9788edf3bbb395d0e52921e2" +3d6d9377f817d3c2bb53bafa78bfe7407697f4c3 = "601dfc5a0f176d0aca29c2c6ba9c651fed5d01d7" +4427686559d34971626f87b7ca8d3ff35c8ab2c2 = "196672febca34c2cb2b33f9def51ef0259a18b58" +4f3f682b1c5c0f35d1b477007f02d57b11fd21bf = "c728ddabbce0dbac433f5405da6f83427fd74556" +5041379c8a9fafcb1dcf97931261c5a2657de0d0 = "623bd3223ef9a253e1e22df6447422a6c6baa44f" +6ea4a0a0d4588ca714ffc1a01adb0e54a986373e = "d0803201f26b1d5b9953da3cabe7fcaab1eca4b3" +71bb6a686c530c81770da9349a8a108a1b9b46c9 = "4e8a385be9df7f0abf3dbccad94a75649ccc119e" +9133bcf637b36ec111a8aad6297a222fe3acd81e = "2867b72bdf3fa5fbd6efe8314b50ff4dea694233" +94144deae64620446baf4b2bdbf19dda61e617b1 = "85906a5799caeb325a967a0509332e9f0c31c689" +bdffa9f8d882471b3be4f82d4abd2099ada5a4e2 = "b01c7f7d145ef1f20c40ae664b43fca21e09986c" +c019bc1c57a7c35d84de0e94446888f2b0983cb0 = "7012b589cd03dcd6d1629e5dba36c99408a601a3" +c4afd54d9ec4e914f8606cc7f957f62d454992f7 = "022df403fde603eab5c7024f69231a54a8e58e92" +cc2cfea02d9270ac7755edcaed5e2400c9c06044 = "f466815c599d9c625a6a99c2ce7b801b55e5cc80" +d773cedb190e555c4495f1bc6295ea7f690011d0 = "865fe453eb91c1c0e44eef89eaaa64920beee789" + +[45d23951-e9a5-545c-8049-e4c4887f5525] +31274cf0121086be43d9f80f4f00fd7b0b7bfbdd = "34b663ce22718afe2a9822e2b5ecdb3a8542628d" +fcb22009cd1616ca2ad532968bf51e7e6b40cea4 = "f1b0d9ac08357fd3f9bd347d9af4865538242769" + +[45d946b0-08fb-586b-921f-9097f984cf64] +0d865948ced62b9867de514c253317cd13243073 = "85f72ed03e5a818464bcb1b0d20bac9a043e8574" +332667a90323c5dd78c63efb888908de3c6060ed = "4022b041087a2785ce6f8787b0b1ba21661cb274" +3dafbc7930580faaa73b8d420c679ba89f62bd99 = "5c3502cb1a661c6f05b621add664f6adc6c11e89" +75e4a2aa64c0049ff5798fe52b26474b1e61bc53 = "a0ae0484369b7815d4aae2eac67559560bebd1dd" +d1e3fce2e25477314908d6de4c7b26e06d723f5d = "4de1f972aac6b0fa6220917c7243511a109ef756" + +[4607b0f0-06f3-5cda-b6b1-a6196a1729e9] +adf01f841248db1212d5f84635f68e1f0f570dfa = "f8dc06de847055e5a1ea635595956f92e81af82d" + +[460dee8a-b2b3-5fdf-897c-8d28408122d5] +0f7d16d698c4bbb78d9b5681f008c8725a40c1ab = "65847e499b22300dd409a5848d8e1969aaddbe30" +2198eda418c04b50f98d9ddd3aa49bdf890f7af8 = "a3fc15ebf18a39ca9a8191ef4ece0cc202958229" +5265a6d37fe252d5948cc92088d64935ba6a7d63 = "10addc9e006bef4f59562092837e2e38f1826027" +54bbe3e8bedc2c0dfc685b43b6af52adee09f330 = "75716bfe12db5943f33c2c50c6cedf565faae8b9" +8d7e2495d948fd8623a6a6c3d6d17ac9069a9a2e = "f3a7d470b3df55f374ce001fe6e4a143a2e81d22" +93b57ccdc31539622051c36ff941ea8e1fd474e9 = "4a790300ca5eb537d31f565af1c8c54ed6d692dd" +a5d158faefd640af5054575641925552483c8cdf = "6a6b135bd83188c9887b27a7add2ddfef57678af" +b61bcbb6ab33ff89f961fd5338ca0946c73e7a5f = "f935db1b4c292f1adbe17259001b442ac9612add" +c967becad426bf053ba45d7e3665754661f37669 = "ef8fb5190e143d156e8418a0466d5d017447fbad" +e1c37ffb093b3f201f024497b645a6d2a20287ee = "e5d6448226b0e40e462148bb8f192da6992fa385" +ed968248bb7c59444211fecd80f235f10fff0d45 = "f37396bfce3e7938ef7efae6b69cba9d1bbd97be" +edd66258f789699a26bbaf4abfec33670c9f7f3e = "086899f739c3050c24e1661518e5191118205fd3" +f7bc9186d4617546e0ab742cacf4ebae968f7b71 = "4976a8e240164083ec91fffc3b328259608ab003" + +[4610876b-9b01-57c8-9ad9-06315f1a66a5] +1028c48de8bd7f6c2e9d0c4fc324ff944d1b2138 = "e5302be978ecffcd632e3812582104eecf671610" +aa3f8ca9cfc48c62b0d31438fe6651b698506d80 = "72493943b7b9e9fac1187bcc82fb49a6d68e8412" +b89ad8b53b5e73ac2f1b7408b6bcca4ccf354b54 = "5d5f331af53318c9951c8b2fcd6bea6128a7df4e" +d5b43757f595be696ece0eb0ddb4c486f1afa9a8 = "8025a524a4940860bea5f8b20321d2f31745bdc8" + +[46757867-2c16-5918-afeb-47bfcb05e46a] +07f39604f27f7b2fb6d3b09bffcbe5b617d27c1b = "0464dcb2d73f5291fe444c8d6e469feff5be60fe" +094e4b5e0bceaa1fbef623174c656a8c8658fb11 = "003235e518964a2d4e796f2013658cf7f33b4ba2" +b2cf7f313c42a3147c16a6ed41b4ac9645e8fe4b = "4e0f24143dbc1c218d1c2a585b9b1c86af05dd16" + +[46823bd8-5fb3-5f92-9aa0-96921f3dd015] +4c7e430d16bdb672518e6572abfba5188cc6bf63 = "c770fdc8b9964b3c692da8e64529349106fb6a19" +5ebd4db513915dd52c6f87dc5630603f26afd719 = "3286b4c91fa00c7a5ff8c54a2742269778183d9b" +980d92c5f67ea6ccf2c745ee49ce5fd30edb86be = "c3ba6fb3ca12272745043ac5db88283176b6dd91" +bb541bceb2b670f553f487de046b82644add52ce = "d291baf72db97ac7b1c9dfbb6bd0193bcfc57a89" + +[46a55296-af5a-53b0-aaa0-97023b66127f] +effbcb1379f34a7d4d1f4332de443e18750d0373 = "d36714fc3f3fd48d8166f12371475bf407b85d32" + +[46b6dc52-43c1-5dc0-9d43-b3fa04378dc4] +0452230cf7474092af87e6b3a11d090ccf995461 = "d2f2f3b8f9162d55f00f5c32df95f3d055d507b3" +06b2adb28f2eabe4ec00891ab83e0b48b2b99254 = "7c97b8e75d8e8f642bc34e96b611977b121f41aa" +1c05e5eea70119af648cbd10c66a54fe6b5cd246 = "c0e2daca8f179ce02ab8092ca6b93b780bcb799f" +25c942e15d2d8f30e6814c4d66695f87eadea054 = "11960e99608f450c3f053417d116e4d6b0dac5c0" +2d54864a2824c252d05c276638ca3fc8ab5c26e4 = "bfa0bdbb6b5d164232a8d21a120b15161c212a21" +2f104c7e693199de4d1f6636b6b9931ef75bf7d3 = "82c76cdd155701bcec85e30567bf2966a14a2425" +39dcaef147541716ca65c633b5fc7e8f7587ed4c = "75e8b1e1e56c6f0abca2ba7719714d8d8224978a" +3c730fcd987a845cbd364b201682434482dc64b9 = "c3f5e974857b1021b23e2ae320f92f7d290db87f" +3ca10e759a19946a63e448dd5aee5cadea06726c = "4a6e73ebe0a4a531299c72c4aa0ab57006be5c3d" +47d688601ef723fcb5532fce65b1dd2775fb08c1 = "db7c0b3f991078b5153abb7761cd381334d17e2e" +505308f7c51f6ba2b12e1bf94d0f0862cc3bdba0 = "1d6829d5cc879075ac573f468a8e2248d45d545c" +5c6bda26d740e306a48f01b16254af323f4e9d01 = "5ae29d511dd8c0e1bdc806a02208631cc448cf1f" +617ededa3b4f2c360ce61bbc4c662f63d78a7ddf = "0128c3202d1be756c978c0b5a6405efdfb25e2ac" +6a3e9cfb3324af4ac1a32e57f8014fa8412a520d = "67de3b28324fc53dcaa4432ce6d549ce0552d9c0" +794a1ac0107c7c709559de372aa5b7c2fbb7036c = "c26db2e16f48f35e7910d574ec5e1d68239ae0d0" +7b5762fb2d81018e6696d4dce4b0bcd2218e9d4f = "f3318374c1db23d0cbc55f2f13d4a7b0f3e6ce84" +7d535e233fd384f4bbdb455d290f8acfe244de9b = "7c90e1fd596d24af0a68521b38a7a9200496504a" +813c1bdfae9f34e807232214fb9b712fbe0796a6 = "d794b17b2b5824ce664d9cefac038ee8af8a48f9" +95d2912500ab4aa96442f805f8dbb0691b3d2243 = "be888d68e49cdd5396d6f4053edc58e97df08592" +9ab8cf6563f45517166ce1b2fdc3a21ee0e2ad57 = "73d91a28b9a5aa3765564948eddb1e2fa40f7a55" +a1a329e305a5c2d2593b95caf7a25ca8f64aa0ec = "c0b0517e923628fdce3d9804b55678b3fbe7e2b3" +a7353d2e6e0732eed102b771a34188fa6fd04013 = "3d2e10903a3b2778ee695939b7d923a34343f109" +bafd72ff5a283a5f494d921b23599c45894f9d9c = "5bef2801641aadef49b71e2ae8a234abab3d1811" +dcefe7a8821081adcb30378041e141f14e8475c2 = "642ae3ee956a3a03961369e0c87ad8a6fc580531" +f0f4943933390379b43dc46b95d24c847c9b2eae = "f90e9b5eab7c29096803249c948c36b3cdfbc456" +fd040edb6a566c32268ec82c57520ea577e825cd = "2704d8fe7975865cbd425d6739d908b7732547a9" + +[46d2c3a1-f734-5fdb-9937-b9b9aeba4221] +95f8584f69a58cb9d2b4bc1247a82eb0d2f67321 = "c9facd8870144bb37e71e16895fd65a9d6e7ccfd" +bd28abac776ea2417bd2250ae4f5b9bbba882400 = "5a52ba3c89aac682e92c773b18b2a381514bfd6c" + +[46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2] +08ce1324bf06e315420e8ddbbfb6f952dc60dffd = "4841a7929582c08f9fd392addd60885c8e09b792" +28039f3be0887357794c45724daee1ac0accdc85 = "d13b2482efb3ee2acee4c61ac141e80f9ed85032" +3cd55e101088d86b09017d6dbb8623acd3be5956 = "fc91ba8d7df72403b9af443c42738f5e970491fc" +46d14ff80dbf3a1624e702641ff20eb100f9b1fb = "b597104986345477f972d1af23db9d4426c36910" +4f6407d576f3bc8643750c3836d1cbd24137a775 = "24e48eaa6b6fc7c0c295e3b7f3321d8cd80e70ac" +6fd283da2322a4360f4bc5681cefdda40cb1ba52 = "dc52ceb89d569e7626e21a91fe4ff3cf99ccb505" +7d9a7a3538d31337ad4e8453c92b4f1514769890 = "bf18ec17895ee2c4805715218d6c552536a3ac33" +944436225834c76e45e75acd6d4b14dca06ee170 = "516c61128589702a33cac0ab736fb76e4890a3e9" +c249e46838743b7e110c8b0e24c6072eb10d433d = "b24f236776fb4dafbeb9a7ced85a30aaa0f50766" +f29ec67798a423af87a52517d8cde5d66cf81816 = "6e07327ff170ac0a30d59c8fa2a6a4157b7a3a35" + +[4777d015-ed27-555f-9f85-cd11107278d6] +1825dc89fd7d4c82bec4fb7023f8ad67a10df35b = "6437a9e842f6859ae2847cd38edaefa1a1126372" +e486ae849ad15285a08755fefb1a984889f57a1c = "6a94be76e3f57dc41ea51b6b963ba1b6d0bd5e81" +e6292f97241444fa8e30a0362fa082fdd208a86c = "83f5cb7f2702ce731c5e9f986998b5e83cefad85" + +[47aef6b3-ad0c-573a-a1e2-d07658019622] +37b219bd8c2a794dae931a7877b40adeb600286d = "882c821fd8cd835f6c76bf6ab8aa47943bd76742" +5591c3415831fa02d0fad9e2b9f2b989cb717db4 = "926234a5fce9b86e3245767e9ec9733e4df991fb" +97a056ae26656f848aa4f7cde754c3338e90d9e8 = "06e2a6de0d1e22f947fca35de5333338d6400381" +b8036815b5a5e0ee310430a309d870c272cdb506 = "21b36e04c2f7a24ada33a3a302779e10323f76c5" + +[47bf582d-267e-5eba-99a4-ad788df502a8] +0e19e9332515b255ba6ed4bead944a2ecd47f585 = "d4d0808831f208df679b7b6c1d366b873d8f59c8" + +[47d2ed2b-36de-50cf-bf87-49c2cf4b8b91] +f112d08b3b48ce91a880e485b59d322102aa44ea = "6552d02fff9f1c4d76e24e507cce800ca349a002" + +[480116ec-64ea-5dec-baca-db6b11e96e37] +0dfb0914c10bbd8d54fe87c6665289b34efaed5c = "222a0e9e9dae71cba42df4c817a0aac7f5f03292" +12fad944dd723f45f11942d325fbdf996f8e8561 = "9211c4d96d762612bad1b4e6ed9f3e2f8a3b0b5d" +1dc4032b25bc79aeb0111362b15fbf5d6a61c813 = "520e6b43cf3a69d24256f8a6548c707c6e24c4f7" +41cd5c1f2ecb6a038035749960518e5098be83bc = "d6a52503ed3e7a0cbb5410c48f19a69ffb8edc26" +457dcd1cfcbef4b834a3f19eaa1560e74871e124 = "06f5951cb670cb4f25deac190479c017470d1352" +47e9b3729c04b05a3b3c63d99634422925107cda = "29b9944ea865608e3a53c294ce06da9c17f31e8d" +57ffdf647afa0eddb5ae1aaf516fae5f505d5d46 = "44d2f5fe432dee98fc3a219e93e272e71fddbe84" +9df6ad8fe3d9b05382db68d3af375bdfd8edd0b0 = "d3e25d35c80096528c5ac6169a641d1deec0ee15" +b128b8ff503bc12585432f25b76c5a2d11c0a812 = "e542b415f3746e49278d9ef72dda883d9649659b" +bd94a992d40d2e535abe751f9566e28b0cdad07a = "95d2835c59bb73acb7f96de310f2977188029b93" +c1c03553b3c28e48549a7a337128fb2261989b1c = "ff4953ff944e3f3116965d1b8ff842802eb53ea7" +c62deef9e8725f8d73d093f366e574cdc38e499c = "ad5161c3fd8bd437a1e40a5fa467e4c322f1d99b" +d29a46d30ffc13825ebe16f7ffb545fccf345675 = "d2554a2a375edb120f610891bab73b21beb13997" +d2bffcd2877b9337e2656eeaba747624f41e9a96 = "dae2e983a61c86db35de3d29b11b90c7acb8aeaa" +d9a5d49da577ab0f1d1a33c4a8162f90a35f7799 = "f5c19eba743d9bc3a67e48b405578ad2f4727d2a" +e5dc0addfcb33539d72fc1a904b6e5df5188de5b = "f9ecb29e20a21b7f904936cc34d9cf64faf0046a" +ec63f7ab23b1573c921e5569e52f3ed01276e31a = "eba5c02c335542ef3347fac865f6b14436fd3774" +f9d31c313bb399ae422fcf2727f42d4a15f9956f = "8ae2a3e16a3799ba593a4c51e301fc85aa94696c" + +[480c51c8-11cd-5857-ba64-2c3c1abd9c7c] +da7bdba10cc5a5a7d33974dabdf3d5f3cf6a5f10 = "61a38156e106a11b2a1a3040d39bcf78c8160bf1" +db90ea064cc0516d41d798b729564b0764b577ec = "fcd0ab0e264ff20906b4a95afbd128fdb158ddd1" +e278467a0e03aae7daf376042e9486e03a5b326e = "6af64f0ac3532aace5ffc54161576b93615d6e57" +fadbd5583058d11a434deb7f91a0a140f3fbb054 = "ac6015d4f70b7f296ad1fab56dcc43cdfef432d4" + +[48487f09-f8e4-5c49-9452-2a9c2dd48540] +bd110c3b36f5c619de5be7843c31aa657f5ba025 = "834a8803fb7848f01c8099078f7a78fa242db295" + +[484db1fa-5b09-57e4-b4aa-3b3c8d692513] +291a8ecce9533d6eeff3346aeb8af8375928d96d = "6627d3659de18a9a048641cf655a6bee152a9642" + +[4854310b-de5a-5eb6-a2a5-c1dee2bd17f9] +64bc1eed336f9420771d6eabe89c8a75ed90c9b8 = "cdb0244cb4ebe84cb8958284995f80d3ab35730b" + +[48a634ad-e948-5137-8d70-aa71f2a747f4] +1f86e74f321147261f85398e844e1d91640370a7 = "e44e8701978a285e36807d7c9cd4ea842f70a837" +560bc99e40507b1ec9da9c4ae2c5ae682ccc93cd = "face3b62ec8cb6f395b62efa8b8cbc4ec1958183" +96f10fe8a13a52b6bb8f4718dbf91d3ec979acd2 = "589672a70dfd5a5ff9d952f51f82c84b1707c6c8" +b72cad701c5007a417a882f939dfe6bb2616f864 = "4f4ab1de9a8e915ce9c3b6bc0a2f55ce15837b5e" +d4a07e29d37f1f1be3d7ece0cde115178cad588a = "6ec6f00d55e5c1fb18e96146de5cd200705c29cd" +fad696c1f75ba2f9c815a335d71f110815da827a = "55c3b9ab8acf468028983c22f9b8e5df2d407ca1" +fef648e224b04ed4ebe6c47710dcd883fc41ddeb = "4ca8fc4bcab6241a0530ae021144e5e8a292e010" + +[491a7021-2a71-5fe9-8857-4768b8bc34b9] +2d116f3782046c59824bd6d26f1d7acdc4ad758a = "fecb8388b02ae430512a98ac7d61228f3473892b" +4de8f7d71484a7c168fcc2293285bdb2e5aa96ac = "e28d62d89e513f9994017f77c168bef7a624a163" +537522ae9bdb5c47495ec054a9f52e528e7314a6 = "b98e490e55df2dd9b3c551dc0564bd4f2f315dea" +6fe373c613eccec5f939f0a031480fce43b6d58a = "19fb133135f490962ce046b3a04657ddf7ce5fc9" + +[494afd89-becb-516b-aafa-70d2670c0337] +022fe13e4f17184e84da00770e57a2c064d7848c = "0a02497589057ea5cf835241b2e8ed8e73188e1c" +06e211b38cd85cb368aefc299771f377ef36f8e2 = "fb21ac31b1cc89922f9e2c373d325ea94224faf4" +39e2ff935848f95c85817bfd17585563ec344a28 = "67580c0d5c1afe59ba188ac7da47c2538ca1701a" +4d5245b48f72ca0decbc94cbdd98dd3bd41cc672 = "37b210c208f9e67a36f64693bc5c9c357c7e8511" +50c4146314e3b956ff7319f33418f3f2340e66df = "43897076220be33ebd00d9ff4004838f01726381" +50fed5f2668140569cfb1ba02ea3a2bbcfbe83d1 = "d83915b8869ba11b087a06669fe9b9f4f38f9633" +5b3dcecd0c14ad29ef2c22789057a71d115d48c4 = "3c86e04aff163e53a8ff3014f3f48c011dd675aa" +69313b342ea40c8ccf6bfb00809b13caca72101b = "0861bbee3ddca7a296269588329779c07a940209" +7a5a7539d6a2f48b36ad0abacbd1dcc589526d62 = "a8520fa2e41f7482a92f230f440a7944cda06dcb" +9717ab38f263ffc12eeba04d6cc1958559487e5c = "5892d04da5f14c54a7a3011b9654e9525f311946" +a185470b73c0f0ff7ae4fa2d56a74fc58f61dc7e = "fc315657063e133015397f66f68f71e96f5d1b51" +a2661c72eef6a687c54ac4fa1bb93f59616885c3 = "2e64291aac4024c8d81b848420da6a73f847a5d1" +bcf31bba466af91d3394240fb49ca1f7b302803f = "2e3a665d6befad6f56229a5cf399055426c4b5ba" +bd40cf5b0e77132b5e2ad561d901079533d3dc0e = "e737f64744f046c65ad6cd62524182cec042eaf7" +c014e51b84bf1c17fa36000a8cc3564836139642 = "2c8b62ab608a8df90fd0efb7aad0c8f6ad461ede" +c22a74c8be296704b87eda53bbbcd72e5b69d55e = "8e1545a2da41ac0e5d8f5e263110f12d0e8714f3" +c51dc07dd9c6ff89492ca718372bd41f9cf94c38 = "50e820c38483132a4192b041ef3121314c97e7de" +cd8815b28a922d7d89701ea4fdd00ca666be4337 = "3079a16de836a0095d5e01fa5413d50a696cc9c6" +e2618325d1183a2c15d2a365f043e7c680f215d9 = "24c8bc3e453573fb58feb7223f9725e0901d12d3" +f609ee045ad8f47f5da995dc0ebfab24d1da2386 = "c04eefc5b017ab57cfe5265c24c39137255296c3" +f8e31f7afaae5a1dd77948b2c0787116ddd1d4ef = "c49b6cf1466533536064e7f36158c73024cebbd2" + +[496038af-b016-571c-b31e-8262695ac102] +256d697fd31054e797523852f183cbeec3834733 = "ceee2023c392f492f6f7bb4f6f66857a56675ec2" +c6c75ec4d5f24abd3f546c040428e3f9aca7a9df = "77737ff8219022948ea9f90c3c4f7dc853d6695b" +f5531ae4892a55a423ceb29fef3e76877746f1a9 = "ef27b0c87cb6c23dcb45f185a79e66ccf2bbb852" + +[4986ee89-4ee5-5cef-b6b8-e49ba721d7a5] +0e602437de741fc670e638f1693d071569485ccb = "c427c8070c2e87e0804e9349b58f26379702cf27" +1c9bf1c69ae61a3e9b3271a994d749052a3dbc8f = "29c6d6416a2bf48d1a6f0517845b4464cabf4ec1" +444cdf1afc921f78325513396dc794beb1600010 = "346bf5eb81aadf42b8629fa0fe76937f59552714" +4a0aee413109007c984658aa210744e424b0b867 = "02a8f4153bad2bd8082ad9cba9d7cd700f32976e" +4e994b33b35ffcdc52fa703d8e6c51a5b45a87e3 = "3dbf4b6ee9b40606695a74e65f8c394dfde7e221" +5e6a230fe855906967f86b0221e74994904cbf20 = "c1ee7ff9a090c5e80fdc46796d3f7f8436f9288e" +672037455e605854323976a40e57eefbee6cf3d9 = "cec3935c1f577032480cc87072ad584c8867d312" +84b1149152a51e75b2d41474741d927cd606b44d = "769283ec07ee072c5fc8a6f689827b921fa42cc5" +9a0c5d8c8a60405899eef92aa19e1c83807d5b16 = "31957ffc305603a1ef4b9d9d880142235219ab10" +9cab426267b78ae27e5a5ef786b92ffca211b3ef = "848e4b8d75b89af3ba0f17a25d47b58d3e34bf87" +b7f2715f172c27e3b0f531d7886bab779ecf465d = "9d43f9382e80c12137725143cd35e4ef41a53875" +ccf07faf5cdb4990bbf01622ec06648a6b46f99b = "e4a5d3cdf94d058386b82d277314866b6260e83a" +ea1e80e6e07eb3fc801e6afc26cba0d0fde21fb1 = "8177b7b53a8f00994f84c609050825ac49222c42" +f2e1b987220e8bc79ce4500ca872ce732983eaa9 = "bc3c632515ec794a5e4aef68078e03d08fa6181f" + +[49c7015b-b8db-5bc5-841b-fcb31c578176] +465ef50f74506ff457fe0959d1e106a9613b94f7 = "35f9bac8b4b78eee66053f66c622a5bd10dc9555" +4cec409f83478878476834cc5114cc3135c91247 = "0b16dac2ed0a6c51435ab6151bccb4dd04e1c1c4" +4f056e6890f115c1993e4d1067e957ffddb5254c = "a6a9b6f3d552ab35fd9678b7c84c837cb2670e6c" +516c69e5f2e0c8cc2fd5baf12aa2bbb733740454 = "410e673600946382400053b2ac2f970e6ee2a536" +856bdbfa418cfc43035b83b7016975ff0829cddf = "fe8ee1f60d64db22707e6c490d40a4b9fb8ed827" +a91c8bf159d4feec52e3eeb0a60f25de6c3d320e = "dfeb2566248d60597dab7eeed6a7de5ab45c48e1" +ae57d0efd15c0a349092c6cd0195ef67de7ad6d4 = "3ff24f8e7f553050b73b6a55c25da36909bc2b19" +ba69369a64629e594da998a71271932a67f1c459 = "63654b4a76acc7b4cd378d3ffec93badca4f74d7" + +[49dc2e85-a5d0-5ad3-a950-438e2897f1b9] +10056bbfee2a01b814408f5a7e6b1b1234e67c1a = "c377e8842d3e4a4a27151b5b70130a349bccc11d" +2a8a8c6b21d7c2718e00777145388914fa8cfe69 = "913d3bb6dea4078de9d78b29208effc51968c67e" +2ec7168c02fcf37eadef838651372e6e9a197fb1 = "495815f8525e41b0eb9ae2adccc13986a2a284e2" +35eb6eb3e37839581317c0c89bc48b76fb2ad5d7 = "adef0a5e94fcbd5196573422d8853cf450087026" +4548c2204988c0d6551b0a7605ad3f4dee17b702 = "8487ff91052c097184b0981008f49b8d8e5ceda9" +5b18dead931afee5d11a64713f18b94b8f68a1ed = "e893e62b098bb741bdb800ae56aea731f3af9a14" +772313093a9524fcbf9577835d0cff02874ea8ed = "a667bc3ea22efc2da3ce0c65aba27c0134cf1fd2" +8e213b8f0beb9189503e0c6d1ac18fb7218f9059 = "b11525767463554b4a0c38af072e7232eb91fc42" +9ad4294abef6820e9842262af2146291c1a361d5 = "d17ab8687cd2f27045515425911841e292a75d5f" +9dfc02abfab4b74a138cfdc7b6669f58eb885673 = "9f9087ef04f64607f0400a07feea9c32f8e79f1c" +a1a4a8df1415d0a5ef928568ced51e7b62482d52 = "8440d315f040701fdc7f9c6fd16c146c56d9b4b5" +a28ed36957610d6b5db8599345661caf79ac75ac = "ff0ef613fb4525499dcf0d159d45d9e2a6755875" +ae9ab47c48af0b872f16f8c3a2b7f2824401346f = "a4f471ad36c0b58e9926fd05b7fee5f99cc57541" +b71a43ffc9fd58277baca01ccfae1ef7bd768825 = "ba85af20a95e8faabd30b3b9f66eedda927521d3" +d338f4aaa36f7a0c6b4c40933d47f38ec3a47c75 = "fc851049f62887f58f98ec8d32f26cb6206b9bd4" +de7ae8b46594ebc24b65ea075a67ae25d1324925 = "4d3a48af668e52d248d8f7f8a9b6abb1f83462d0" +f42f543794be62f11cdff3a1732f6f69f3e9396c = "9b0d95fa5aa0df1d9dfee428b372ea8ab4f91161" +f7b5556a9ebd0cdde45f15d1b2cde331fe5efdd4 = "2055b8e905cb7d844bda1174e6cf2c361e3d4356" + +[49dea1ee-f6fa-5aa6-9a11-8816cee7d4b9] +099d101dd1577902c4e55f499a857b8cdf23ade0 = "afbd14ed1e072f6c544ffe9ce0c1d001b3c25ce0" +1eb727b1e18e8e4c5d42b7572972a245f1e270e5 = "f0e27591dfd28af9a0a6477b8a98c267311fcd4a" +34306b6a2a421f9f4276f28380a6b66369f0dcb5 = "e61bdb4b88a35e9811961a8c80d4ac3c03297f5a" +37e1c9a59741d791d1678e6767ca5a6a11a284de = "9e7df21f1b3295bc2901af8146241757b8d7df01" +5fa0729cc682d4c8a29ddfc9f45f08eef36e3243 = "cd640bf5fc9e865c52df8e2b0726b7440c34dbad" +724bd8aaffddb3c6e22d4e3a90618207f6a05b47 = "e5837452d5bc2568e56a830e5063780d520e146e" +97268c4764cf4a84b16208628224e36d49a469ec = "664139a906777d77eed4bb038f547ebb05d4868b" +9879d943954398ac4c340b2fff67059e822cf49f = "65156e5baad2f89b04ad76d80d58575f03a98b56" +b88a0748cdbe11a7a53e0645b27f17f68eabaf3a = "77e89762d1b57b7b7cefd109a5a8d7c10c3ebe2e" +bcd4f273316886db498aedce052145ad848c00bb = "ac00211204cbb34ae67625ed427476edc9eaf785" +bfec54cfb314818c87c58d19cf6e85b49b981661 = "d5a0c9c001f1b4d28eb892a9682877bd3aed6eff" +cb6013036365e74c98b70d1e32e8efacc0257c1a = "fc1f147094508702d32fecce5080840f732e0f4a" +d06cc37b8a9e1af2936ff83af7bef4c3321e9e86 = "40a0821b42db541c016fd7bb36988c62aa43a14d" +ed4d932486b2bb5490b15f2fa894eb964459fc48 = "67231410bca6ff812da053e2e8bb209f7937da34" +f20cbb3dfc7c31eb0cce3c3f4b05c53f92c58c32 = "f56bb27b334b7886d091acbd945ed35fdddc0042" +f2f417d069e3f767eb0d66c0f85a965fcb731a45 = "5b8b9fbc08d602f238d099162f61fc6156ae7161" + +[4a05ff16-5f95-55f4-bb53-bb3f467c689a] +0014201d45ffaa6b66ee842a08e57d701be89a8b = "f962040f1478d2e917b46f9033f24184b9f70bc1" +62245fad1b3cfc78fd83e14b5ccc89250d0c2028 = "885a8e052057f1ffb06db2173cf0e578c015c19b" +79fc27c7d4ce88cb4e5ccbe04fa454961a888fe0 = "9d9dee003c2d572577f73e95c0d5ecdf4c02fad9" +8f5268191ecf2d396c9746e507ba49e0a5dc716f = "3d727a7e54de464e783e7b53c7f84279186f8e2a" +cc9fb67a5d0dc1d69b05d5b2b73312c1fa0469d7 = "1342cf31c291f781b925e67b5c87fc0e3d17d346" +dddc094e1ec054f478b065b64d6180aa34182301 = "d77458467733d875400e9ff833fa204d9e5479c4" +e9a455e8bac5f75bddf9f275d2ba817de13f527a = "90725ca95af2c918292b21c95a64f78136f40501" + +[4a446bee-a8a1-53bd-a908-d1601923a297] +ddc7b2714ebe7c02315f406029c75a706517880d = "57af3fb7c17aaf677bd36dd68dc5048f33ef09db" + +[4aceb6fc-b794-5e89-b0ac-b6eba507a4bd] +16d2ffb629fada7be8cf6a589ddfdbc114a919f7 = "f62159bbf3cf579e389b58894ae5e0ff8b7294f3" +2e34ac23fa8dee48892324793e7c514ae53a1361 = "82c0aff31736eb857b2d681c847060a976403c2c" +5e538c212006cddc620a7a0e66c947d404aa9211 = "5edfa8834b662a56e4953362f07b435abec26635" +d75bc10925b7ac1d0a3e2a7bed05f1ea0094d505 = "6b81914b069eb5f52b2bb9d55df178b3291f7192" +f7d17f436dc0b4663c90bf97a0f2128bd27f82c0 = "39fb000ecb68774f0fc5867884b2a83a005f4b31" + +[4ad6d227-cdcc-5a24-88a2-850b583613d7] +365879fa2b63a94a09d42c693604215d87f34f8e = "b41aaa089ceb4a7d25009c2e665905c4afbcf60f" + +[4afe4657-7149-58ef-9a68-bf97da7d889b] +7a4c2ee3bbe099821883beb1b27a38c15b4069f5 = "7bae2519006ef72816e2f8bdec9b77c0051de82d" +a377fda5cc7a638ef70fa0f6d92d6656882c08ec = "d142cf7eb9d96009f7f2d8bdc01d5d1ae1d9da81" + +[4b0a1bd3-4a5d-5152-a79b-f00e95e62c14] +2d511c01d8d2351f963677ed1ed221ffa0857426 = "307b2f44c6903eeaed3b6da7f384f7d182682f4e" + +[4b11ee91-296f-5714-9832-002c20994614] +19bb3cabf99ea12fb311f358a354e5f2db4e4d9f = "b024d00713279c164c931eb1e7f5e005408a2315" +48fc465620f8862d3d4c5cda1e393374388ebf04 = "a09ceeba1d91847390680c0fcd4d6932ae114350" +5a6e690ad753a9943e2481adf0b3f960ca073d59 = "b5cad2a01e69bc44fe34c6b93968f659f64ad803" +9cf2e4c870fc56349a3393d0cf1d3a97a685f4d9 = "d5964e3a45fe9dc4cdbd351cb5b2e8f7b429f50c" +aa231a83baf53dccf69f181327612b80f8ed4282 = "3a5af009707924ed02e86f539e7ebf4a3ba8ba25" +b617ef61b247cf8c3b659ab24237e4da25a14e6d = "8555295e352f956e4cd23e302972b7aa95a509c8" +f0ccb1213b6cbec35421084d6f6867a42b8d743c = "a7d27dbd6b746acbd229d70e6659dc6c6a464d4a" + +[4b9e565b-77fc-50a5-a571-1244f986bda1] +768ea9c4066c8aaa8539f96756bc5ea9e6673f3b = "f3ec68a3c89bac34a30b205ae2c84332d3ad7df6" +a088d2fc63f99b6a9d324749a980d87243777bcf = "b3f5707718423a6230774e2c138422142773fad3" + +[4bab44a2-5ff2-5a6b-8e10-825fb9ac126a] +1b0daf52e1ffff8186a426105c575c519535e608 = "176b3ca8171621ba1793e92f591c8416e4c80a2e" +2657497adf7038279f92761e232e0553213d77ff = "14773a628ef13ed9b90acc9a5c05ba889a320f39" +2e953efc3340235e755809a9508d48cf3c3e2a06 = "922e0f886411585c81963d0857788fe649939423" +46d55093c26bb00de0d69cc91e3d8537323af972 = "f0e16240da61df6becd5ab23793452594003114b" +6ecc90676fd29c9b6f4656a89aa429705bc11849 = "44efd0cb4a62d901dc9cc06994a7ca3d39c7b54c" +a3f81af5d137d38b6e72893783c68412de95ed49 = "f3f1a79beec66dfb690caf5ffd3b502e032e5e33" +a8e32c6055a0f1b7ff0e378a01f73b4ceb5c7d29 = "87fc8e83a9b45e5b1b32ae0df0dce74ddb72332f" +b9e17be3c97b5b93cabee54a757cf0c8ad24b80f = "09214ff4b6707639242657e697cf36bf1cdd7c06" +c657a7cf45a05eb0945c0dc1d4b80e737793f908 = "98c4bb497190186a6c9f3d52fb07ea168bf979cb" +cd240a9edfb9aabb913a9461015c14b21f710a3e = "98387b55be980a21698ef40154024944d8d824da" +db2ca07bbe5a58c33853057e871a4c9f571ef4c2 = "230b1a91f24bee477ba5becc3a26ef83682a1d75" +dc4f5d7679f85eade12b8d8ca08beb9383024499 = "4640dfdb3e93f82f5c381565e2007d76b61f06ec" + +[4c0c90bd-38f7-5fa4-a4e7-860b1bef477d] +3e642a54e332fe38c36e06cd163bc0b1625d1c00 = "3b7a18fc313fa7f72d3ee4cd489db563d64cbf9b" +6afeee9c23c5be2b41d909476869c55e6221a3f0 = "65095365529ba3257d091b3c6beb8049085fff05" + +[4c0ca9eb-093a-5379-98c5-f87ac0bbbf44] +0e2c7cccb2afabafa4670290b01b779e0e5f4d08 = "b79e0e912c02c695955c49bf69ebb711e07d0162" +1b08531d694b42e55daa68c340ce1f509f2e4ccb = "c0874633b09f2adf6cc5560301fadf88c31e6263" +212591fafb8b52a44169ba2d87eec44aea29f570 = "be8093009b4164e863adf26aeb239dbdaf1de075" +26ec976a55a7de6764abce43800b593bdd9ba16c = "433cac6dddabfac6a547b28b851716babb0018cf" +2b38cdf7e6ce92a5bf3e0baa2bf5e97bf1017091 = "f677fd85efc6c790153cb673e9b4983aad6b526a" +36746a4a7e76771f33781e6452ce1a803d982e0a = "6c5d4570991e25a51b43428e42ebba5125d66ca5" +3f1cffd816759faf5937671b0bea2ef6eb2622ad = "a9bfc14ef4ab454a7fbf32f464fac2a568aff427" +40f7442dea20919c5a7b137594fb6d7636fa2329 = "e6b96fa29675e73a524044f8f64f3a25a39c317d" +4641e33ea02982f5709c739bc38e71955cac8079 = "7410ab9a71ad520b5b939e360fae1df0040cefeb" +49f0cc2fb2225d91f96abe0467cfba1ec87dfc6a = "3fbd882898a49f4ca39e8b6569ad3311c1efff3a" +4d2ac57c3c85bf91a04a27967987fc987c5971b4 = "575e66964894b64f6b0bdfded8ba3ec6b1d5361b" +4f6fd22f2d8f87b53edddc683b489bca60f06760 = "c7a1d597739801d50b2ab0823d804b0edaa2422a" +51d0a52ab6c865f53b0dc0196b11e39450df3ef8 = "bf992eb156c63ea8b5ddedee3bafe43b3c8feb14" +5d12682c9ffa75f7ff5e24d352643e61d9ce10ba = "58d766e5a804b6276f283366ca9f5a99c53bb550" +5e3338caaf01b2746291a29b46057bca30e6b39d = "6b9e0211a2e81e36a62a30c7064d86b588c24d1a" +6298bd465922289ab3f3586143b47e58eedd44c7 = "4f4a1c54733d8166f497b977bdd59d2c5114519c" +64caf82d735a69b8f54da8ad24ed4d0cd9b4e69c = "d6ab6b753e95ddf2755bf8614326eed96c6bf07c" +6930794982eda7d7d6794410741af7ac6bcbf867 = "4ebef4b7279ddfe296e0884a0d21067d6d8686cd" +6b596cc9291525456ec3b599cb208c6270f47d80 = "2fe42a85431b8dedd6425de995325bc2456b402c" +6d4d4bb15f6fead3f152604b112f7047e192b5e3 = "c94ffd62a6f91c604e9d8c222b31fe04b5be84cb" +7d7ff7459b427b9ebc867be911e5332360e2cb57 = "42dd85d4af435192770e5745932da15f9c1c3ce3" +86c391eed8bf0591ee636c2f77e6465be1b9b995 = "352093ffaed893ebf69654549dcb014d98650e90" +86cd5a028234a059801e0c5c4be4f2520d466b04 = "c66623c57cafc3d83c84108e9be8d0df5da91a89" +8c5f3eb2253b9f006a81caacd94bb452d2e27695 = "baee8307b088a3cd95962b27400e304c40f16990" +9692314cd8fcab4aea9c03292ff23103f3da0f39 = "1cf0c04c992f548a55954a93c94f47b64acf9063" +99a53d598c6c405e1b9420992e442f5fb79ff50b = "ba1830d333cc16f63130f543a414d5382fd27cf3" +a087f0b339852c56fd3083050db54a646d688e2b = "eb9fc61332bcd1b45971282179abba913a326874" +ab11a215cbb2381c3387f93bf07e47e7f89c9eb4 = "b66cc7edfdc8ea52dfce3f46cf0ebda98b71e981" +ac7782caaa9f9193edc8b45e25f653476f0ff9cb = "a9d0438ab09a92b6be691d64c0e9e0eb4197cd4f" +ad19bcf59b7ee81ac003538a402708c78acaf3ec = "b87498db1feca0c7e8e0c09896e97e0e488954f5" +b270ee9b21f7540f4187c9ac95e4f07b0306d409 = "3b7ecbc36d0ba1c30311a3e4ee9dc18fb61914f7" +b9bbe78b5c60935d7182095184a3fb16591fc114 = "47e656d2ea2d3b36b99e616c1845d16667bb6eb8" +c8cb239718855ea0f4f881cc3f17f7f43ed111f7 = "cfdb173d5be5e11f6dd2ddb3a12e8755642a7dcf" +ce46612a9a3328a2b8e35d8d25f06bc70b4b12bf = "0c1bad880fae34fa88ffb3843a5dfdbc587619be" +ceb861c5912701fcd571bae9bec17aa9792e4c59 = "a0ffe4fa4304f20c83ad3d8fc2038decfea29321" +d5b0cd744383d476ea2e5e6a17ddf9cff8ec953d = "7b86b3923c67799765a429e6d144b188567b1685" +d9e45a00831289dac9b8a7049f7f506bbc166dbf = "1c9195d3926bed2fbf807765fd335ee8451aef27" +ec02bede8cbc74a89363041ed352894b81306973 = "5308d968ea450f97d52082504e640babe95a6118" +f3747c04d7a3503bd9e70d5f7ef230fd1d56b865 = "affe1b545ef36648f4f704c443750749585eec2a" +f76e2327d6251f3e5570c84e887d0f0cecef2947 = "25a09a5a135de7805bc855305eb10b2742fff6a1" +fd68c156d79523899b5ef00d1d6a666634d7504c = "f05458187782aedfb6b499bc8b256f5fbb084b10" + +[4c47b132-0681-5a5d-b498-3afcf53fd314] +0e97e4664f1f49c13c04a404dbf6f5911311d254 = "04a19812010db1f9bf87084c2e7cc6e4e4635a75" +2aed689cf86bdcef2eabe1402c8b5937f8264281 = "d759f09f891ff7537681473b4d891499ef94d626" +2b38d78ec24e1adda6599c84fb4df1730443450b = "e96e4ad917ff85349509dc916a7fcca2d30df0be" +71e45a4a8fd3c8bf1867ba9afb5cfce71fe9b046 = "a74a958f6895e65865423ca603dcc9bd6c1842dc" +85eb331bec3d349ff4e147f3c1e649475b79bd80 = "0404b48bd87a305201281eae5965417034ad5856" +92e56083efbe2789199a863f05a1f5fa3fece1fd = "7a47c0a6598dc9c01d7507e8e9c0ce070611576f" +94b20ed71931418ac7edad12019d30c3c8c43d4b = "c4343d8cc3352ba2fe4f4e7bdcd7f7d744ece290" +bb98191a2b24794f8de417a6b40022a9eb265ea8 = "38c2b34070d94c83fdebbb86aae439b4d6aca5ba" +de8ec3772ce39d28fe2fe11dcc6e4ca6ea573947 = "df0ae2aae6d34fab39d0fac47ba37dad64759013" +e508085a2339cb272652d3cf35e693d7db9d0666 = "c318f84f7c4fb5d3e2ef589aa26fec0c322e8d73" +f622c416daf285f12e0aa16ae0cf54af5a885c0d = "21d7855cffdb57ac7a266ad522badd7629645884" + +[4c63d2b9-4356-54db-8cca-17b64c39e42c] +03bcdf39d241c05a1165efc892a507dacf2276d0 = "84b7bf5ef0b6dab38cc1169ff5d99ec87e05aa5c" +3db430d439e72f3e2580a0c818b4aaeff803eae2 = "98730730887497491c2e62eb20fd21856226ff74" +4b83f9e88e5a6bd4c8a251ab7f15d8a01fe56e5e = "92ab8aea9a6926136e27afd38fa5bfe594db9686" +5de325f64b4528273310cdcf5532d994c1aa5067 = "c30ca040a01b0d5b3ac8a8c252be68016ae61efb" +69e3522c6f3901750754ad0dc5e7837d02253f0a = "bad3e96345c7d11ee77f5ef7f347fd37ce230a95" +723edaa163c95fc78c8d0b520150a91139acf434 = "3a1c81399670dd69d621a0e5b8cd45c716fc3dc9" +7aa5b33088bed36eed311f9f40ff60c1e15f5352 = "fdf621112d58adf8a050c6febfeea839084f6137" +85b769cef7d0e3ba829be84d42e0d78ad6a10282 = "2b0a7681f8a33ba301b2b51f84d0ff68873928fb" +977722fb29361842ab668f75bc874104e37d1608 = "b9e37ca4da83eed8ac75afe1beae46dc1f8cd062" +b8e379c6a67744b9fbcbbb11fecb2c1116767241 = "fe99fe7c8bf2ab8e1cc55b263a0ae1534634dcc3" +cb17da6260af5f6948a504d8c650c8ed3c7f71ce = "9c1da059055b8a93cc592c6fb4038f760959d2a7" +ccd5e2692e79728da1124b3641b4f143f92db491 = "9dd620eaea59c664f2371a5f898272c523573d01" +d64d64ace747caecffbcc5fe0920db5ce90e7ecd = "a0e6194945b80776a7efd3eb28bd82b99785c54f" +d6b3e8c9aadbbc96014e29abec2ac0909369c30c = "117f544b49f14115701baa7fb1d9ccedb549d90b" +d6edd545c7c57b4ae149ba5c814f153d795ec108 = "45e4355229c938fcbf8b5d4c35203d7b16bc94a0" + +[4c8104a3-dd10-56ac-8d5f-2af7ade365f0] +01af6a930dec2518256dc051df51a23d7fa36efc = "17e293fbbdcf5a994c15a001254a23af37f97ca9" +acdb375d5b5d2e13ed5e01de490ac9360a112371 = "9a03689f33351de6a880a25abf62eb62bd9014ec" +cd0c0399ceb11c3e6ab905852556856b4a724489 = "1f7da4a6e2fc73b808f31bcab5bf604aa982f382" + +[4ccfa06b-4be2-56f5-9ddb-d0d9d9a8678c] +050d8a975954211691ef35b097a0b91fdca72b33 = "0d9cd772b93cbbb1acf5b5e38240d73dc751917e" +687f8b6ffe3245c00d96dd96b21e4fb9186a76dc = "0f7326cca5213422654df6d567a9ff99ce43f279" +7193aee50a888d8d728f3bc3f15ab7b37328a309 = "e48566aef2a44a38f84b29666e32ccaca92e77c4" +99db79a66de8aad83f5ff31c7615071692b05649 = "3d77878735a9bb711509b61a94abd0c9d68efd55" +a2f02948619688c69b64bc07bafe1d97a269dd0d = "e5762791cbeed2943a9e84de696f14760096af6a" +b84a00fcae9a4482bde6ff912de1c94d44c2d886 = "ff3b7627806ae78fc0ef106be61ddfd92ea0ae43" +c55da9ea0171e52d1582fdffda8107f338033c72 = "5bb8a0da0e654a2936c4e0896fb28c2221ad50b8" +cdee4806ab9bdb86870aab3a51a14e7d9ba83292 = "9e8b6357682e0b1e25f59aad83d6e7652775b956" + +[4cd9e25d-7d31-56af-a12e-9449bc3c16f8] +5b994939e1bde4a8fa77b3bcd4d54dc55d5c8495 = "84f3dce993834509b42ae222548f09433f8bd6d0" +b62a064582862f9479d1bd6fd60b8f40cd618967 = "a2f37b5dcf3785a4138d464bb33270dfb9d664ba" +dcbf6f8653f4daf536dd14fcce931e4ea643b730 = "be4f130d98e505fedb7f98197e514e268e40cbd4" + +[4cefb923-2b6f-58c4-9e65-6821f26b7b51] +240d584662196e397f7ded92e782e6ae931a4842 = "29ee22f924eacf5f8652dc97c0f7336058aac319" +37449a9135f5047534865ac57010005c76d6ef26 = "87b05b6a827021743b3565aaa36488a8fbef188f" + +[4d00f742-c7ba-57c2-abde-4428a4b178cb] +0e168911638335a06d8e876fc75eb89ff58a0d90 = "028c9033bc666f85210d1029b90a18e3f4b72cc3" +1075b6047cca8132253d6a36bb10dca26e90b525 = "cb933031c1e4b3e283264b57208c420c5c2d4c54" +26e3ad6fb710a46746c04eefe82ee28d677d2c64 = "3fa55e09b14b6f6b46bbddc0e89be5de33032055" +2df57243de3c8b702d97ec8ee6c062a3a2a76b8c = "f7c7185f076e1514ae8701a01c1da2859cd5dea3" +40486bfd04e824a2509c99a3a1ed52c42f641b06 = "c2b860008693150319ba7878e8f9110699ee7073" +423d1cbffbca4b516dda70490ae3569405a0677c = "12cd7bcf0882cc8f9bef2015e2d0114a74811564" +5e359abd18da947606233cbb0e36257ce4f854e9 = "816ad0c2d8e47a3710ba112d1caf4bf700c48432" +63a4a604fe982ddd503602e1b4386c9f9b97312a = "00fd86de05e20e28fadca00e2afdbf3d53b4aba5" +672a3736e2ae31f79d0b2a584f7a3ec16d3d9f30 = "72944b90e2aba505411e415a49cac858138b6801" +7b7bc81d8ad8fb28d1fa29200e9441ead88b7c8d = "8d3b7563bf3b865b61da608b0d79c3dd1aaf4f52" +81dbd66f0ab8935a99ee2c82bfc885610b310cf6 = "82d09c9babdd5820cb7e7357ff003b89560d3221" +932bbb7c643dc7e008e924fc7b27902a85718804 = "f0a7ad10c63c010804b25796f1032d196e763fc9" +96daf9e2e8ead2f8aa85237b7e4e3083a5429908 = "65116a8c95ca97d20a04bf6ae5cc12214392286e" +b2825cadefb5ec761e99122543123319678c9cb7 = "8991ebb62fb3abb1a84310e2600591cb7995596e" +be100d49933a6d343b1165db0afed2d99273b4e3 = "5fd128436a1991f68b907e8ad702e681108466ef" +bfa87907652efe791d8be2449d4379e6f4b68e3b = "e3aa6936baf7b7240c77105a8640261dcb464e66" +cf1cca1b5f3f726d0c6780e820a0666e9fb0108e = "2a05a2457e32e70fda3fd8629a30c53455eddf93" +e978cfaa8f4c6aab4110d4510db572958268be81 = "e6962b05d1c0a322103c15e43f627b289fafe173" +f058f27922b6ce633dd0eaafa5e96e4e136198ee = "bbc458dbfb18a5b7e2d471ad01fc553545161d5a" + +[4d0d745f-9d9a-592e-8d18-1ad8a0f42b92] +3c4c01a2967ad7bbd5d42213c9f425c603e4d329 = "1e3597950ced86a712af2dfda6af4ed803807176" +475fcb08a5b8fc9e0ee8f6d465fa2c970d67ba60 = "71bf55d4ec364c173a8ff6e3eb7171350ab6cd38" +76e3dbe7dfc05f19c1cb16fb64046c6ee9720d54 = "9c16ead3c0a32e06c8c26aa1755e2f51411745f8" +a2c84be2042dc1c95d3f76b348dda972e79c014e = "3b84953d13665334ea610829bcab831ff23b59e9" +b8d3dfb803628a63ed4e22440300ee4aaeb52d19 = "4651732ee8c5ec1edf3dfc39d6e7c949f2d93427" +c3901214f3108426e345ccbf73777311cc992ece = "8c0f59f44ef930fcccc54cb153ae38ba13f8311c" +fecd63141d328f607763f90d7fc9308a29eac803 = "da23022daf0af1169c448e44c853949eecd01ad9" + +[4d1e1d77-625e-5b40-9113-a560ec7a8ecd] +3ff61d47aa3355f0f64d1a027631160e422da903 = "05176cebbb49ab979006b0bd12008c3f9a54f60c" +7f96abcb886355d10b462d489eb8aefe839620ff = "801e59011bd9e5246c04c390f58433b901023c8f" +df85b1fca3c5e96f6f43bd7751d85f6fcf0eb562 = "6c3e1715840215a0bf6b6765b5bcf40c50baf1c3" + +[4d2f22df-77d7-5622-8d7f-1db4ec2bcc3a] +278d15c1e8dd1f4ff95de9e8c2c4967bd16a98ef = "d6f7206f8e9f4704c42c80873f4faf13620a054b" +28859be0e57b8dbd8626f3fc66d2e84eef3ee9bd = "1b32758cf44939535661093b0e603dcded7c371f" +28e7a89504dce5a635eb9bcf7166607ca91f6e98 = "328ba0e2899b90e5c7095deee7ab47583ac13758" +b12805cb15db2b61951b67b9128bab3d7fde400b = "0e6a522e1bd380535669bda475a6bc82931fbafd" +ff6b381e4a2542555286ea41460f0633745b8c9e = "361e1bff5d9b710c7ce892f7778ce7bc154071bd" + +[4d4711f2-db25-561a-b6b3-d35e7d4047d3] +21dc549844598f6d71c5eed4e4b7ca6f379df678 = "44e764d2029eee1a31e0e6813a6b90a7707a050c" +44ec58951ff22f7b3861849c701ad605e5796666 = "03a0bd1750648b28b37502c1a3be6ea61706d318" +79dd601afbd2717a92e37524a57e8ea2050bb64c = "94b20cba8a03920b992359ab4f0ef4aa0e661e79" + +[4d4a7207-8c2e-595d-b6a1-0355eeb1e38c] +514de3a0edb41245ddc4ceda3e3aef47a3156cf3 = "456d4de88a662a9f71c74e03e7fc36478badb007" +5d1a449e42618aada195f8482d32cf1978651944 = "8b875935b3688dc772b2c32a14163acd9897134d" +93e4042c8aa2e3f2ddbf7b78c939fc51989d0d6e = "5842db924287ff3afde81ac4b1e2f3fbe4d93585" +b10ca95f13c109538abe52486353651d08819b2e = "2581a3e21bb1e01a23abdab2e3d54d751eb284ce" +e228e09a444f87308ef308e19c48caf6df0d22ae = "3bb4bf3f54f0d7f8fac3536df6430967f087f382" + +[4e197955-816a-5ef8-9ecd-699b0ea6e4bb] +0b69783d33e28591e9207975ecf4b05f2a72f165 = "460d794c1af9b1465db34c4cded42156bcfe0b02" +12eea72b414fc36558674f7c08783b189620420f = "1a0b5b295cdef607509e440c2c84952bd0da46ba" +42400b262bd0ea23f878ba2a930a51d4fa82abdd = "bf706317ee997ccb41bc6693ec794b7b404258de" +597c494dfc2acae7851a0b57ae4a169e6225191f = "fa8bd8a7cdf44bc5d4a3e70d18bfdcaada835779" +612d0f8574e52c2a2f0caab7bf5ecd4c848ef79e = "d3a81cbe21d206fa05a7e25d28fdd37a263d7800" +7a1775cd096763508b001a2bae02e58e9372f694 = "8ae794b803fe7e2c484ad0917641de8cc23fdc90" +8d222535eb00ab56a0432edc0b478aac35f5b915 = "8f0a0cf2f40815444d3fc8613fe08559d2490f18" +9a191d3275b24b041b8e53de97cd40b65b82b9cc = "2f1ea06c8cdfaad3001d64f7f969d0ccda5a57a9" +b3c37ee75f5ff043ff5eb36128ad57cdfeb500f7 = "f83bc7018b311d4cfdc63d1d7f4bc9b618472c1b" +c333ef8fac71b0f732d3d0a4d06f76ed2eae9f44 = "8f0dbd722f6f54d08aa38f13cae20c26b9a6ba87" +c83c9f63faa406f2d6b5d90793fa836a89c3a682 = "c86b0eb42835844d5777add4aef520960a1d24b4" +d150ee427a949f216a0c58c33de620d3bc8f18b0 = "5134b1a4a30e9560bbd197b2f1753ef1f2cd0c83" +ed922a2dc22c6242c846061b4a3338422e893ab4 = "5209c28c02b4cdcd09ad6e861a1ef5de9ad36ea8" + +[4e8a8231-0ba9-591b-8620-81c6740d7791] +519ec60796c011508faabda4c7fbb5aaf9f4b302 = "05ec94e8174285dc32a9a9f4e892ba647e617374" +89681a6481e9d0acea87d4e323b0781eb7b790c8 = "7bc05fcc04bda58c106fab95939e1982a08b0374" +c12ff7cd83f99bdaffc589773899ea72f56e50f5 = "43d04a16d6b7a149daf72e8480b42f27b13910b4" + +[4ef67f76-e0de-5105-ac01-03b6482fb4f8] +1c3176503a3cc8f4801cb802be5534f08f5ca5db = "e36669034d5b86fa5831695e999e2c8634359f50" +69f0b40d2bc2e9af27254bfbeb758fbd6ff45cd8 = "3ba1b7b26219776fc0b1325ba055e3c5c111ab67" +77f9d2ad4b7ed0523082bbbc1432157f65f10238 = "75433685cc3b3f8f7dff5fb70ee84c7300fa30ed" +81aabf2f35f894e900aae13eeb176b33d530d77a = "484cb217e0d693cad55799f20dc09155239c9e7e" + +[4f18b42c-503e-5345-9536-bb0f25fc7038] +01da669ad06bec09a1b40b2863ced40a4d60f3c4 = "84cd5eb38653b340cb5ac008ae83d9978d6bca8f" +0b317e971570a7c50eeac61d0d618a121af661ee = "f9e80b1801b67e743f5e38a8bfa4deb0e757abda" +270522af681f7e13fbe87f2809f79bb089ad01a7 = "2032e2121faa676c0f4d2edf877383e0a3dcd91e" +5704fc057743a9a6ad3a7131281d49271d0eaf64 = "e23b8d5ac6a167e7607c6b460ddd73ebd58fa56b" +58f9720e7e2e6fdb472e235b6a8bfd2329c58dd1 = "53d77f7fdb23e6ac7ccfdd91b100ee7e864e8eff" +61ebc4f2c98e2590f902082bff7f54502601da0d = "f1def51134434cab68c0726d6c9a63a034972991" +63a7aefb703245c8f655389585ada85ab63da052 = "26ed4c7c29353bcb7c570c84a4d8421cb18de5b2" +6ad95a41b6bb6988e9e470244d5d57fa80226ced = "9aa1620707c0076b6c7ded5a4ba500248c82369e" +724889daf0e84aac34748795a22b15c7714cda9c = "78623f3a2879b8abaa0a041d0ef743d8e1ed13b0" +86f2d3a22c94767ec9b1a61017e358403c6404cd = "7878aaa18b35abb7dd89419aab2f72be5b30484d" +918759d10f5431446246c13e7b36cdb6247c74fd = "045da2237138beac8447b6e278c9c6e40f683a94" +937b7d5062be44cabb24ed85a87bde7436793230 = "7ffabb34e5c8539338a59111f38986fd419d618d" +943bd542c18444f3ed0bb9476a09604e397b2dca = "898f1c1eb9b4407886fca99b5d7aad81cef9e6c8" +9e4360d489844a48832ece54c053c08b13cc68cd = "48b134dffde6f54d2576b4587bc5ce19efbe1acf" +a96e5d711044d3c70956a063db59607b040cc741 = "8c53d352576900007a830edc6adf2759d2c0a3bf" +c2bc14c7bf8091307d3c2ab63d110880cafba2fc = "fa51fc5607be8ccc364fce37c394895ef2190b89" +c6703ab8ca3bb82c6a7f34cd6f262d49ac525b2b = "2313cde6b1edbc205bd1b5f508b42cddf6f827ec" +cccf4679e0c667f52b61fcdbee2c8d450e5895c0 = "380193c2789504eb03e7ff3b507a49fdeff593bd" +cd26c89eb8fe90523894eb2f5ce5e9d4cdd88760 = "a9ef6837f3e6a28611523f9285183237ac17b9cb" +d3bf8c405d7c114791c03182bcfbbc8ba68b7f98 = "d031cc138cb54bb56cf5b5e4295846438821ae55" +d6070e3678ed649970377250c11f4c6f1e736dca = "66cfbb2d828ae718718e055edd28f2bedbc4073a" +e7490ea865f2e97d9665fb052ceb721a31249e47 = "4a3b6e87fc28f73f2bdcfcc95a7c7b65cb3ada0f" +f8f85181dc96ab414efc8b97f9d73831d555f9fb = "71dcbb58e97005071c9767b9326324ada2487a36" + +[4f1ea46c-232b-54a6-9b17-cc2d0f3e6598] +0302c87c850e83fbea9e4d8fa8490d3c46701d9a = "4e0b7d0ad5bf2197d7f5d77d5c69453802e38ec5" +0bf97c66fd78270fa431337b45f03c70bac7d1f5 = "5492229a8dd1604deb22a301fd4950f191fb73a4" +0e3486694c67631136abab9a9001f85771fe546c = "da9c9fb2f61130f28a8ced9df25e9bd065efa7fd" +10c7bbb53cf7babcdebb35a78385effcfc5c280c = "c72ca07110cee14cb1a4db2a6374baa469be126b" +1ab6d6dcefd6a66a62ec16221f25cb5946cb05d0 = "2928136b4fae863b030e681c14340bd2aba3fd9f" +37e038615531670fc23c3dd4ca7047c87025c9aa = "c9b837df0f092934ded03c0dfc1a013b23474bb2" +471dff4c4b495c9d7e126254401f55f9f9b7f6e8 = "c04b97c3762cb2afee72ecc103e1dcf7138bc34a" +58cc2a156b93e562f86ced300982adc14a0ebfc3 = "ac160531507638440dde8f9a03a74f6748ad78a4" +5938252aa70cbe39e338346899389efac326c536 = "28cc98e75036ed55067302dd91bd6749c7b304d5" +604c2290c25d71c1d5c5d3a522ab66579c85a9ad = "42a03c08a89861338d63c498a5e562b8d9259050" +68ffd8a211d35d7fc0dea676cd05a2952bd414e4 = "bf6c00f2dbcdaabad39680270e37b5c8f4873cf1" +6ccbadcd6bc6b2ce84c2ca06c387d3489f324876 = "af6ff7ac6ce9146486e9de87ac4163eec25da193" +78d8052a9d511cdbe5948bb6e1ca1cd573cf31b8 = "25cb79ef5f5d56086977c6ac8b1acea1496cd01c" +7ddf9559e30b355c0d85fc51cacf4a0326e59384 = "b6f5ece60b7a2cb36a3b8a8937842eb5ac391f38" +84ad66140ca6ca34e38fbb8dc23669169793d830 = "cce553166aa03d79f340a5bec802cab4b869bd90" +8b00f411ff26689ada6ee32af69d90abdac7bcc9 = "861e16b2a2f598096c6e3f1a70ac0d35c8439640" +8f74d6fb6a202a60e09b35ee223ff07754aa5602 = "a7ccf98483b1dafeb281bb5c18089123ce555b12" +9330a7b5131dde536ff6645f25822dd552c2c398 = "99e623ee63a128669ed2a98871e288d926e2aa4f" +9466ee0ef4b6c73c782eee26942c8aff8017c5e4 = "b9d77fbc93115afb99dc867e032a5eaacdc66c36" +9caaa4f0d7144824e67d7bb340657ba9faa44031 = "67d1d16004fa40021bff9e242758ddb15d5688d9" +ab2a737ba2bac343fc5c5c04f708200a6168110b = "6d8d6fb652b7316fb55476fdc9fa7c57ab05921d" +afcd9807717d667850730affba215f73edc0f159 = "c91c71cfdeee26d71078dcbbcc7dfb9246020f92" +b1e88217dbdbae0f9ba68ef17c0b514a5d15c1a1 = "1bba8656dc77df438d36cc5a3956619d2c63858b" +b7438b8ae62a6b2329cc1ad0093d959618fe849d = "261c136afaae501aeb72e96ccbb77137b1bc5df1" +be6551cdf6af85799143958aab9e227a4e33f5c3 = "91df286387ec4a0fd4f1dd81489e761060ec4413" +cbe91fdd4433eafd8f2fb052e5b07ce8e9e9dd0d = "dec0b539f4eb51445f2f7a18dca9d4deb59c8003" +df1216674082eeecd2a511599820c924f5c7ca3d = "9ec8c68037dc0b2a829bdd7169c235c56f206bda" +f1c400b847a2c507611d441eacaa50a31bd13bbb = "edeba93f2c87d1eb580b3d5df1e60fb25acea268" + +[4f449596-a032-5618-b826-5a251cb6dc11] +090ebcceb9a2ea0ecb0063497cd7f65328a6083f = "1be7988a22cac02adc0bfeb6fd5cb23af05b26af" +5716410758b731acb3b79ab9b53173a7d838f1db = "5a5bb0218410b5203139eb63e18334aa3fc0077d" + +[4f4ee721-4970-5af2-8560-6c1d960e3231] +08603ab624007950b3458c490474b3300d8dd261 = "97704e449aef7e423743e214774faee8997c7bb9" +1464e29ba7713872a15f93c0ea5b0fff2ebf34cb = "0d1ac7ee5284ab17bffd8be0804bd2003d68c0c5" +499bc5a3d0f66cad82976d14235498252aef5b14 = "295c7c255b12f62974b5eb5d445183a473990d76" +7cd3c9b9ab7be4a959ebb99db63ca47968c938a0 = "cee5840d4fc9e5cda1412a014b795095346ff7e0" +89c2133ae68ebf6153bbe4dbfb5c686fc36ef302 = "13133c974e06ef6ec876809d9e060574c1465813" +9d5b4299dd1a016a3ce1b82e6bac00acb351a510 = "dd8917611a66f3cf4cb11e038be9faad3a32812d" +d5bd03dd58e19b28b28f6bbdd7b8bc0decf92a00 = "cbc79ce435e2e0d6a1ff6cf703e0d79545bd46a8" +e6e33e67535528c25e54f791e5638d155e17043a = "4727340ad005d1ab6c7703dd04f78ae2606c09c7" +f4a5df9e4b7aed00ef99296a03ab5ba82f1724bf = "35c3e2af6c8a1711902f920278fec006fb40ef97" + +[4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd] +7fd168b6f1690df986f7fff180fc82d9769ab8c1 = "ffb46a540b0ba11be4a9bd0c94552f53c3355480" +e43d7c7c59d7fe03020dfae036d886ead44694d0 = "808d260bb3295052b344f90bc44a70efc249b251" +f12b9d8665de640c859df3141ee59cad2773f0be = "70b140bd042b0f1b01df2f73c9513d75b2f8c297" + +[4f6c22ed-8407-5d7c-965b-da23e1d23af6] +fbe85e38fbd351ef6999746bfdf37868e8ed8309 = "d012bc7420723494c74a15deb2fe0d1724980830" + +[4f8c86c6-9e40-5506-9807-98571cb48bc8] +0ae1fe1869afcb6db01c98b7829f1cfdbba7232a = "cc0c31d5925fa1b4457e1fef0f637091cef9ff62" +0f27277c71bdf02e451193aab0bf2e76ffeed431 = "0e011fc9fc522815e182443346e050d5541570e8" +11186425c15b95711303463da48184578d99e8a8 = "ddba1e795549ceb4f295dd254c43bccfdd98f454" +2756d6f24483814912d689feb986a66b51837ac1 = "7acfc3ca4e33577c6277bad5919e8760ca15940d" +3fd3ce089b113e6dda09c96a64699d43d544afde = "e79bdd2f70208b4d41a25119b776f399d231da94" +4c301509fa73620e006ed34c82b16ce12b55f2b5 = "bcc2057784568301a3cf6e6bee4c65cf42affbbc" +4c80ac26b9a24fb3c4992f6ff1795abdd689dad3 = "9dc0ea30b7913022dfcfcebab70d1428bc29b439" +5aa7ef57050a6eed8bd1cbf71213b7417251534c = "787a1eca728874d8701ac573f843d9fdaf18bccc" +6780a0c0007df6ff7271c54eb441697d2a985da6 = "f6da20249252cdcceddb17b99267f48f9608117d" +723ff233ea9fab69d09f8fa41c123b08455a4848 = "cacb1bc9749552dff624d373fed9d3a8fab7586e" +99e725058123913a1ad86a8a7d4ef23193492da5 = "4014bf42085efdd342e9d99b742a6bf98e5ed637" +a9f6cfdd15367eb074e81881e8117ab7feb1e3bc = "e0a0f8de2ed437cde13332202101ae5c4e312151" +baea8cee53e8cba378d580bb1d8c94d895dfef05 = "699b2d1db2bfb6d72e4b1de7340765c4b47b527a" +bf0a9511688647354fd10848c10abcc3c8fc72b3 = "eb369cfb27f7064b867f7a689b8af01344c9a9d6" +e4ceb82b9ae3434d78182fddaff0559a6850e6dd = "e8b6bf603512d23ab3f4a21780251f05841d88ca" +e4e89089ad98c3c7161cf2e029aa68db5f89e911 = "a311523839dbee54cf0b7c795a0ca37ccddd2cc5" +ee14965a84d8f4442ad3e57ac478a6f27dbeefea = "ae8c6bd6ac07fc4301d72412aff11b53dc5e69f0" +fcdb4cef4d5da3fa0d17fd236f0f93ccf7ba72b2 = "151df5bffcd3f2d4d45fac2a41c3139357b6caed" + +[505f98c9-085e-5b2c-8e89-488be7bf1f34] +23f2478a16e9eadb719b321c64d400ece27082d0 = "da294f16aa16ead07ff16efb3eb9b19ca44ae5a3" +6dff2de5a0d8af0970361c12349b408d49967be6 = "7e71159a75b2c1afa9e88fda737391778a7ad414" +7a56d46fee2f874ad7cf3ac4b91d556266215eda = "36150d402ad25d0d9bbeea94f12631b4ef29c808" +a2861bbd8d5731b15853becce55a419ad91e890d = "b1f8f325063879f1419b31f12dd0b1a7530db3fd" +a4cc6158f3fb7161e43988f793d871c9746258df = "4604611bc4973627363285b4c6f4b9a91d144268" +a4f5a76f81a4dbc6c6d9f2c6b487e6ad18e4f28f = "ae449784fd07aab8ea34ee9717c940ab85ec1a2e" + +[5087d2c0-5ad2-51de-b1ef-eaf82f0743fd] +ec4f6f046f95f6a9c2afb66ab2c0a313bbf9fc5f = "a28540ce1ecf647663b54ae85897115453a81b3c" + +[509eaf56-8f8f-530b-95ce-37fd3147b88c] +2b833179891869138ca2abfb4be50c9e3d102fcf = "83d87e09856ba512d469c3e8f81ff798086489df" +8eb9c4573b8e322f55e558de786dd4fb6665caa2 = "78e568a867e3bc92053a0d86f3a57133cfe2b3e5" +a6cd4afd5fbd18cddfadf772814746ebafd7470c = "982c3ae1fdf0db5b7cf97f0c3cc7b1facfee72f5" + +[50ad52dc-2428-5a14-b1be-4c0d2fa9448f] +f69216cd029f7ce4f7fccde8667df3150bca5caf = "b82c759d2f6a6b339002b11944fdef42a2804701" + +[50ceba7f-c3ee-5a84-a6e8-3ad40456ec97] +2bb5b4518c25dc5152c3b0ff5b1654148a9b4af1 = "3804aa77dfba0f5b8010be987be499819ef06f8b" +2ed701fa3b1bf24897c9b309a59d774208b5a98b = "ada348d8c97e513f0a4d5725550f7663fedf4c6c" +3e8ad106c509ee04fa1cde6bf47cb7685c9e1a0e = "87c948db41cb9f0a2817745a95cda96a8ebbed40" +4e9077952a6dec218e7a44f640a2795e882f446f = "cc919ecd7ca8620b2a6869167295c5b81534807a" +78b86749b7129d7034d7b2044cde78ded40e1b3c = "132bba46c65f34c67037294b46e0cf69dd271074" +8cf17fbf2ff0421c2bb5b4d6cf186444791f92f9 = "31766360d49116cde9a8246a7f5144a26f866644" +8f9bf3f276ae1da0d2e56b8e2dbd4db857118e37 = "d353f74555c113896f637130aca89b5cfc319798" +9027ba70149f0bde622a5c2a7ac883f4d8014181 = "2610fb62cf032fb8ec58eb41bc4e608aa20cc16a" +a6bb3c44db58882a422998722de4e79f71188957 = "7ee823f896939c014852d6143ada52e0dde4b2ca" +d405891a0188a0a3e4cd59156775405b71e63aed = "ca3a8d77a6b93a6f0d309b9f0821119e0ecbb88e" +f4468acd303c020a8ee68a6d2a4fad07ace0ae53 = "8cbe81ca85cfbc2ebec49012ba0eb8d9339a23b3" +f6f75ce6062e2e2eea6dd0465d77a83e35f14c6e = "cc63db280961625fa3fc66f81f0f0deff4aa58ef" + +[50d2b5c4-7a5e-59d5-8109-a42b560f39c0] +03cdf7cf6fee139e835400a94a6ceeac945cccc6 = "67c7ec702e2274725e03c7126f9869ea971210c0" +0411506ad88002a7d2dbd580e10882cfbcee6458 = "950d0c013d603838240d462d24d64fb1639a4968" +0e07c8634db260001caa33d601c4afb6e83b9fbf = "70750d3bcd8cb80c5f57eb0c83031e385d1a0bd5" +18b5c064a44599d9aa05f4b89fa8321225499bec = "508c775e7b50209904fa2db0c2ca096418bbb81c" +279084787b769e6c32492069dc83270e1da3697d = "0eb5661566e9d5e9d4dbd7c0a61949e76b944f5d" +2b7faf2f7a8b1d403873494fa2f294b944bca4f6 = "a559b65c6aefb2d46b6f5363fd3622666483bb95" +42b81abaf56c29e2f42de3ef574d864b822749de = "bff735b87fe068f5409001b7c46ff24e86707c38" +4852f92ad62cf9df92315490bca027a3a072bdbc = "7da874dc47eefc15a738f3230c77dcce8673aa55" +5080c4b63bac6fd75d84f2a202e99292d501ef57 = "1920898681577c9c045b68a5abe048c4bdf4bc89" +5252f875e11c47190ffadc317846723b061d7be6 = "d0863be6f027c9b752b54b4b57cc1ae1a532284f" +5261aa7cf9ceeda693ffec583643ed3e65eab1f1 = "9cdd309ea1b306f04662c79ec38123e7cc837c48" +64124ae960a0249ddaa4a51f821699bfedb0232a = "1ab1e7afa2f93d713abbe79254776eb1b21640c7" +64acced51b9229bdd5cd7d4c7aa4a7291bf80287 = "0b6da04f4eaaeed833609bc77899c49d432b3913" +670b89a895fd56601784c74117a4139238a9df97 = "aa60ab192c9f8b8eff8a9c83965301c6ab0da78a" +80370602151e7d3b8bb64e9b111d6981a1e25409 = "9b3c2f411f1c338fe881b507c552416ab5552a2f" +854e1fc3c489827f8177ba742220f27aaac13fdf = "99ab44f50f3ef89e343e5726f0f5292f1f194de3" +8709dc3148d41f3bdc835408fc316b3db1f6e5cd = "1e610edb0ea5cb3e2f96d82ebdc5662b75fc1aa1" +895e497d8bf7761097713173cc6686f53c72cecb = "d2aa685919ff6fef06a9534d34cfa844ffac6425" +8ac867851c9bc80fdf740e9763823dc993e91659 = "5f24ce439c9501d4103ecb974f1b9cb21ec17738" +ad69f5acbc5833484206bab223bcc5dd24d52bd0 = "35751aa8826dbb6bc4d99b4cc44b722277bb1963" +b9e8c2dbba4e836071f0d2f5bfe0e823b6736bd7 = "f8d1c2d86e2f769b3be790790849fe5badc73bba" +bb9944d9530b7da52f2a7aa8b1e72176220c1d5c = "630de56dc99e5b811284ec77969bc9511c6c66a4" +bd5f94503090ef441efbd1a9ccab7028d8f99282 = "0bd78f46f7d94864bca2106570211e075d4eeadc" +c68e319a61b3e0e91817f81cff3ca4caf1a067ce = "bcfb3dadcd9abdd7fc1fcc109c26277dad66ba16" +c7969de6829591f5a4359b0a1d03a19f626d0103 = "0fe10a24b06634d643ce20baecd589a73af50938" +cb19a5555df2522338fc90afe57e74babcad7bce = "061fa7968ccc1716d4aed580f0c9bc55dde98ff5" +cfe789b141752e26babec2474a02bc0ed7ffc2fe = "07d6839a5b2496f8ed343a14970b770ca7b0d914" +d3a1de94ee27ebb05e4207b2d2f7e3db19cfc538 = "709382736feb22586bab710a94ec90fb8dff4f6c" +dc642b449269864a4a13b84a5b2668d60cd6b6ef = "f13ac62de427841bbd0ce7698dac6cbf52f0cd04" + +[510215fc-4207-5dde-b226-833fc4488ee2] +2cf7ebef3a40855d54712d816e617737d2ea9592 = "c55580107bd3f818ab685d1bf211accd46074aaf" +6c52b39fb8bfe483e5f2e13bbb0e775213ceab22 = "3a7b049aac7c2c82a21425fae39a5cdd3e7ab049" + +[510c283e-d355-5058-8c7d-fdd18bab9dd3] +8e5afb76e2fb97044fc7ff67aeaf178fc67e116e = "dcce62a710e5164d6c2d59a8107e9a2d031c3170" + +[511708b7-8d90-5a63-9f8b-8993ab87fa77] +464031ad146050e30f028eb2c06a225f6572ff26 = "6e4a38a2a727bcdc75463bb3048e10f63c6b93b9" +5150cb65d234c4231fa5628c5d38bacf884848c1 = "843e37191e24aa14217faecc459239385ab2ac2c" + +[512c2d17-f861-5de4-b642-bc357ef61061] +c5eb58b85b1d7d210de9d82c32a1cddf27aa756b = "d1465609a88804cb383099b3540d3847c8189ce2" +ddbc47d1272ca6f5b9e3381bac9fe4683644499d = "bbb856d92394a70f934e2ab4826e3960afa132aa" + +[51556ac3-7006-55f5-8cb3-34580c88182d] +945c79009a5901b30dd1fc968f8076f3af9b2364 = "43fedcf63e094e87d0c56f53fa98316bd04902a3" +9922295d876b83fea6a89cd65d3bdcd8ff9de12e = "5ceec34bec9f8e4f26e674b483eaaaacc918c969" + +[5160dea5-cc57-53b0-be5f-ac191989508a] +0af110e698c450998f26b6ec809283b932fcf73f = "823dbeabb9ce2414ffa193bb44033f522552832b" + +[5169e8c5-36db-5963-a2c8-6f78e2062fe5] +25b25cf0c1badf86636f0b831dc7cefac34a0fe9 = "bab57fbcd3e33c3b9614d4cb9fc50ed1c6887744" +9cdfcf8430edcaa4004776de89ea0cd59c044231 = "f5f2a73343e55dc67bc66810ae5d2136303f514d" +b38f9363d7960d069975ed8f1e35c16b5dc6a150 = "abd68aca157075554157ed9981c921a8ff6051c1" + +[517a45fd-765d-5fd8-b3d2-92ebc25828d3] +22f087ccd86d142c579fbe110c4ce798434fffdb = "2989d35cf75fe87d9e315dcbfd86af0375e58f40" +481f9b1e5e81ece85aa461e18c618618407a6daf = "71f733cabcf67ae0d430b919954df3b5028f833d" +a100d537aacfa7f873a5bce20c054b3e92216550 = "daafe87e7d0700c6142585ccb3b9780f603352ce" + +[51861067-9906-5706-8bbd-ed9205bf4d56] +3a499bb0294e30c57cf05f51535bf3bf0ef783e3 = "abb318d87e20238aaffdc758e8ad8b3981412be6" +431065fd2d162450bb1076e3f4a26746bd1b9844 = "0ceefc13e4f96c82a7bc0f37e21aeb18bf95306e" +6b5eb0f5a19cb0d0453ae5b6d7981773120057d5 = "550b4dca548b70e87ab69886a2051bf3391e6674" +7943ea62d91a6b57feedc30d7d4c42f0497fb5e4 = "0dd1bb35ab54b31077781ddc6a9b3331fed317cf" +8ef1a03705b47f8ef0a130e75ceadeca0d19b1ac = "9f6ca8e832d08df4181c0d3a8958885e9db0bfb1" +9dc2f0307925c749b3d9d26a2845c118e60494e0 = "3ad55e76dd928fda98c2838a68b97df1942ad645" +a2a6b1503fad7e5dd0a3dbc8e9dda89801ab40d6 = "97235a5ff5cea7dbdb5b682b8e1ae013b8b92b8f" +bd82fa931495ba62ea7bdd3ab5d7199712b5ff89 = "346a3c0d949d627fb6d5e3c323c25d3c5a5dbdeb" +c1431adbbf68bcf5de1abd077464dd77639d8df0 = "5dea93fc08a719c79a483c720143ad7f28ae96bf" +dad62eb10c45aee03475d49865779673b1da6b92 = "69928a2315d8561e0025345d775448d47c5f0e72" +fce3e4460d60153f8ed45438672dce6a0c5a2491 = "e43067769bcf9f3916d5d3315d466e26d87c294b" + +[51948d2b-02eb-5b28-9840-c902cc6821c9] +1b503bccabd9f54917d61a4d6cbe365e13f6a64f = "b2d3cd3bdd01a453155a0f8c73af7c51267e7184" +30e4897c79c04ec5fb8fa1c99eff237fda85fff6 = "569e3dce398b3258c803d660514c4274992a732e" +8a0d1909d61388117b167d5a2d160c4c987473a1 = "5a0262f7523751a81c0d85103cc2226a7a100162" +914a36f25f89c2896c27e07090ac162827e5b14d = "7b12ef606804eed6cf2ea2fdd8f1491217ddf866" +a825687c0b1b563d8dad7069fec86aed59356231 = "b6aff9e803981f020b89c4dcba0c76af72d58b13" +d265268a661395a621375af4d645a30aad9b7468 = "3258dd61a06ee3e389b5a752d2b2a6a6155867c4" +e388ea66e3d30fd6aa142d8d09725982b33e96c6 = "3a0909459fc95bd7c3c81f3deb150fb12b9938bb" +ff7bc0c5c253d13775ff302b8e5ceae1e1070d74 = "c889e1847e06d74c06ec71b39ef09457681afd8b" + +[51bafb47-8a16-5ded-8b04-24ef4eede0b5] +129978c5759a8872e7e487784483c46cf07d1431 = "03bf3475937ea3bf1a2269cb00932f431524f07e" +38006ace494efe5ac669976487f775da00af3f31 = "77225817a020667788e3b30e783bb1fdfa30fb71" +4ae2db5216ebfccacba96379bd0922176ddd41f2 = "99b7b5782a567caa09c5004304d895900ff0fcd3" +50e1eed419b95423a0786384d246bc9d08c870d7 = "b64f5ad868e8b76e0c9e895a6d2262f0fd4928eb" +53f713ddc948fe36ce335f61a0b66c0b2a45ef84 = "003c9d8ef684b0feeeda65351813689a6a4faf6a" +66e8c36b13fd3095d98e43a4916b4d8b586de018 = "88b58579d30e1555eaf0db47b5a06b1160e66149" +7291f36819ea0a37b8013a99da09e78c62996143 = "a9dbebc905ffe3cb9430a5a2c2c9d3ce0525a1f5" +79c9c2417c538a371d895bfc90e3d613a3581a7b = "7a0c36c69cc8ebb99f460aefd2f1a25c565e6c51" +964bb6bfde0ec4f6563df7820159cdb24f492987 = "fef244f8b3481a51923fecfbbe00db60bc788b95" +ba72d73ddbf0292bcd0f3fbd7d8cdab5298216e1 = "9db5cd323fedca898cdec25fc4fd07b3b50e1c85" +e3bedd8ec526a100bc9fa8a2931a59d4885cf0c9 = "b12d2d8c6edb3f0d104cbc6ee5507c1505ad05bf" + +[51c06dcf-91d3-5c9e-a52e-02df4e7cbcf5] +15fed385ea8c41ec4d0197622b3fd337f6346a21 = "6990151786f831d40aaf208676188a7878e0c172" +206078dcf84092b44174f8bb1d98c2eac4c767c6 = "5e9d53aa8bb8a368c0026dbe8790e3de86e188ff" +425fdfe47d249088ab0e68d304f1b7c48cdfc822 = "f618ba42f5434b10ee8cf0324f78cbbfe297a740" +5bc71c000fb7b412ddcf6baeea23f5f116bfe844 = "53c47680e6f2fc1e181c01def53901a2b7bfabde" +c612851e0b53a4160e23a5fc8dac58bbd6988fb5 = "17fdbd578e9d6b756e0b2fbe285579f9f5e6642d" +fb178edc00842854fdee81bc1e9aca91f6203f87 = "fee231f8f66861849e2a1cb82e0445274705034f" + +[51c5b0a9-f0d9-5f18-9346-75c2d7aca4db] +6cee4db669de9372bdc1baa21e6d6492e86dbb41 = "6efc51dc89002c43784c840899e0c63f48b1bcfa" +83823744d461cd27a9b90a10255d76c677e7fd6e = "608fb21d99c3a4314e801e89c211352d3a1b46f1" + +[51fcb6bd-ecd8-522c-95bc-4099d1d03463] +b95d554069c450e2e7de771a2e795c367e6df5ef = "941c71b8b2ab4386a17db82c1763423e6159ec32" + +[522f3ed2-3f36-55e3-b6df-e94fee9b0c07] +10c84a114393f6d863ff3bbdabdd96c0b411ad59 = "5024e35b5aa8dfbd2f5200bcf65c47ba1a564cd2" +12aad899cfcdb86baa22dd5857cd66c60f0fb80c = "85cf42507b00135f23b5df9066342035b13e1641" +1b2f3a2774a2202f7d40ee1e3d9a0d542d934f15 = "9e20b900efcba6577f1e7559c7691843f3c7c6de" +271c82087a5c3977c3487f99fbb9b6879010649d = "4034295140d5682c90c943f035548696aa513c3f" +2fd1837cbd04a46b51da3ce802cec2c6eef6fc60 = "ab6c7b243a78ff264053d63e3821cf11f76a4fc9" +3ee8e669b055c595e1d2d9273b66d73106422c13 = "6d2fb69488d6ba932645833f0da11321b2e15e9b" +40df7b78d72a785f03ad3fc54d6b58ff1ff23166 = "360d307b920b5595ed1bc42aa52ba9be57126ce5" +4d95949bb89f340a89f907d831c6628803732aa2 = "7eef00277617c8637416374e5d3591bf54f36c4f" +54ae5d9f209381b1324a296e0843c17ba4232c05 = "84ebda61c467b19976b9a1d57e5aa2cd5e065b7e" +55316ad5296e51ca14064da0ccbdbde7d103957c = "676e6c7d94b6b4a4868d08ac2950528d4dda7e7b" +7f121a0f861871dd5df9c782d5d8195a438600d0 = "10c91f5bd6ad25187722dd1b6da53f2ed1a7d8e1" +813266d7e0395bb8adadfc9135f72a13679ace40 = "24790b3553f1099bf74684fb80de76036598c420" +85e2aea808743ec2142cb0d96bb93522366f2ac6 = "38b4e0a4f6001b6d7c82ff4e691baab908add800" +882d8fc8e8ac899aaffa85b8022a849651c6fd77 = "4864f6a53a0ca66e05cf2456549709c70646bfec" +9210aa37eb19ed1d4b994eb0418f115a1edc76bc = "ec5f5b36e75b76fe7c2da321fefda3ae95e18484" +94065b435b16f048bd6f9163f96907f3a9215a9b = "abbccf52203ab7d60859406d2fa021b01747b330" +9fc5d94af1cf94888a7c0f3d2e0e015d08b334fe = "f3266fcdfa2c71dfc301ea84db3544a96706f882" +a0228aebbc9365bf6a2fdb4646f0b6f615d8db2b = "614437f2fe3792da2979b474d8c3002092e462c3" +a0a991c2abd426081c15353fed5b88b4b4a1d0bb = "b56074811e6e99239c300ebe7564497403b4eef8" +a58191109e4c28a9c9c692c2077e52bcd6fb6218 = "c7c28f53d183a551506058782888d2ed61a04f5b" +b56994181a56fbb80131845830cddd7c66e14e35 = "548037fbf211e1aa8f0be7bcb132384eb644fabc" +cd84e769ff82a34290edcc984629cc9fedd96395 = "7c8155d8eacbe8d9eb1b60aef7a6c29a605d7585" +de53ac688d8c0f4b06c9d4b25ff149e116c6b10c = "d7ed0c0493738bf24a9ae45fcb00e7a8d4ace0b6" +edec8148acfdcabedff954728f4c901ddbb6b27d = "789dbddc61e9c8cc4192398f3e3820891e1f2867" +fd56c41f88fb6a60259d8adb9f922f77664c6eff = "3adf381a443b46a44f859659976ae6e9f2a30637" + +[523d8e89-b243-5607-941c-87d699ea6713] +39fb53516cc1d736c18ba7ac62d51e81287f9246 = "d11cee2bc3522625a60bd8020ebe371fd1b9a635" +dc8e829603a62c953033d796b2b74709a25ade0d = "f40c556bf78b64da1e2b4d657384ba443ba6cdc0" + +[523fee87-0ab8-5b00-afb7-3ecf72e48cfd] +10f6b24a8614b3e03ea7e9ff115f56f1bb57fe04 = "dfe5b3d4fdeef83e71161aa696c170f09eb1422c" +2794d4f55ac9ab5887239c9e28f48a761f78810c = "794e9a9b03e5c9d316e81993818a123a849e13a5" +2e87ac35cd8a67627419a58bc1aa01dbf1a5200b = "0960082ca07825642d40a2f6587083570ea9785a" +48ecb6c455cc78f5040ceaf0317bc1dcb7f78bb9 = "8760f2b1e38b5999404b7fda5c649d917af9b522" +a4637097ab191b5f1ccf5f665c3bae70e8394865 = "e8686de9dbc5bac1165d55b366af8a2d223f1bd1" +cf1076d08799a6c4c6733418052ce7d1bef3ef52 = "0940f01447aa5e0a912e78d84e44e1fcf6ca721e" +dc697b1deb68286ea9869103dc6e8379e58dde74 = "9157b440d63e7722c086b069ca71c4810abd4757" + +[524e6230-43b7-53ae-be76-1e9e4d08d11b] +1f1bb8b510e508a1f8969f7e0ebde5968ecdbfd6 = "dda54f7af6e34eec760b033e8a00d36a81d4dc10" +1f5b320d5a5260b28c88e4d57c21db8c787a80af = "0ffc03e2cf98d532245ee859a528aafa299b2059" +3c21c732cab042462e8ba01e22c2f0334e21d220 = "cb7a779f11da4d019427c0aaa31a864b2004315d" +4e609d30911a0658ae743d0e6753b168b9aee805 = "44802bbdf6bbe3937490f59b3d378adab97bd750" +804413e772b0cadf86cd5782ac72f54d65283cbd = "ad90bd091e3bc214f00ee4773d981a2593d770c5" +9137e7d78c309594f49d158e33eeb2a2cdcac820 = "7c3507b09d87de012e919a486ac1e40105e7a39c" +92e7e28e50de9ad1a4683b9b438a36a3b90c00e6 = "33fd5b55108a9a5a383b673beb73aafd29004733" +9bcb231b70bd961839c773f8fcdfc9213f020b4b = "127e91d228ef51b1d4cf65aa4526248391049fe3" +af6ff52706d70273abc3345352cd5828fac68c45 = "fc77097b917b5ec32d2ca4d6f18052d545597781" +ddaa8cd512e5eed969d3e7c467aa42f1de403011 = "9c62caf2dd2a4e6de9f7d13174f1e62e9aafa8ae" +f4884e0f9428035791584552f803abdc3b55dc68 = "8b457c262599b65677bdef6ece96010b5de0dbce" +f4b0e3023f66213f68df210ba81f2cd2f7a43cbe = "06434975cfac4959de547fcee318277deac40552" + +[52542b9a-e7c0-50cd-8ae4-855872f87c14] +e0559852e578a025f62db4d2cef9a2c6f10f082a = "536b36b53bd0e555ad4ebbe8f556a1b612ecfb19" + +[525bcba6-941b-5504-bd06-fd0dc1a4d2eb] +1bd337ce570f4827b1852eb419a3c478bedceb84 = "91c9c1072b9eaa93eb7e375cbab18602edd4573a" +231378e980fb0cf0d0eca99d79d517f7582bd6a8 = "4088e84967c790e9ba38ef92c38ceac17fbe3c6a" +3001911efef010c799eee125f484082ba8d3e5a2 = "0b61cbec079b3682d53bc9105eae2ca991618d48" +48714351325a2d8f2eb9b3c0da79bf20ee2a2652 = "684533ad0c59a128cb287ccd4e90b0ad2bda616a" +718e4ed171caae99fd9f299eb99e1eda48913235 = "4f92847ad7850ad95176b9cda8d4aac87aef656e" +7316d4ba541cc967925714e669589e6204bf58d9 = "9e0539b7ee37df190be14220c132a1ebc08efce0" +793cda8429685538274791eeb365f254f13fc04c = "a22cf20e4ddaa5b67d21940909c5b0b29f9c4f74" +87484f6b1c81f889f0d1ebdeeb203da3e066bf5e = "bca1d72a059f5504234e9a030db8c196f0c3d948" +87d7f3b30c27c134800bb2288c018e6c6094b311 = "db03bab849a62c231b8c46523a6f53a79aab1dc8" +8c51c739b70cf751cad50c689ce0913cf1be589a = "35d440985cc6e5faead2c344cbdc275f6ebfecae" +920b0a402f6eaba7ea7b60334087bdbdce582eb6 = "3d6eb2ba2294a1d8dae0175a496d76f64f940ccf" +990aacb09c87c78159aeee12faf47934189a7d4b = "3d3cbba8c652aa377e1ad8d24b88ddda582609e3" +b21e27290b4be3901b8c996a2c6496962547056c = "2f139619fced58c930288983ff8ac29989fe1773" +c2420ce928255b432e322a2e88cb2a4b849ed2f9 = "a5f7ff32e89a2114426df74edd99d3086b3dc2a7" +c8d75dcf86125dbdd623a1b07f246971c5fde08c = "2d60b918b601be1fc5be2141c3452174d3f844e4" +d0f2fd2f4dfa3cd9e42d8c9ff73046649c829617 = "b73cc44d6e98bb5b65bb2d6d346fce07bd7f369a" +eaa7ceac0a7a6ebf6c2d9e2262322c7d398d07e7 = "2d964b0fa6b310e88fcdb1fd88ea66ce9943a069" + +[52807dc8-fdcb-5551-b45d-e3a576bdb870] +b8a63ca82788f1dc8a7b33ac4c40810438fb0464 = "10cb9a0f25e2fdd4ac6f7e3436a53ee1df997b0a" +c49a3327d45dd430cd50c6f76a26290f9dff25cd = "65eefb7fc4f20b396e941ba4215eead4f6c27650" +d83e4a7b7543df3aba9a567b4c1eb7cc96728184 = "343ae2e0f3d3ddbe3fc91c3d9ef0a3cda7b0333a" + +[532beb67-69e3-58fb-9a2f-cf496e4acd67] +b59e4d9fc8ce525971ee7917adf383f5ed71659e = "fce34852729f9a68328cefc8b9656c006f2a4dcb" +e5fd0ccfe2de261ecd60503c5437fc57313ef304 = "f8af01e9bc2dd7e882912304dffc6ddf43945e18" + +[534900ff-0018-54ee-8ba0-7a6b38ad4ca3] +0f19aac8e811b446539992ac66e505a86856a735 = "c5c6b996d2f71f9e60dda7454692a29e38544b0d" +31453b8c873925f8dda4549c5c35b8d4a8ebb01f = "cce04236f7774add9af80c1302c765f10d196bc0" +746505a74d6b716fef71d593d58de138dc756ee0 = "31c5ddda687841bd6b36277b2a1c7d69937312d2" +b72c32a784731e3b586bbb8285d0900026eca64d = "249750e349414188db60f9aeefc8b01a3b55d26d" +c053b1d81e2e57330d6e5b7a7e6cd744678f73d1 = "a740dbbd3e305791dfb52ee04e96e85ef3b64389" +d63ddeeddc0054d5d4790a0abfdee20e8b0b11ec = "5ae9630cacff27c71ed63edd2451daa645e694d4" + +[535c7bfe-2023-5c1d-b712-654ef9d93a38] +4172e07c70ec59023425dc8361016dbc69f0bd42 = "9d679a71cd571ef14d7973da978bd25ddd30c13f" +98207060bad4835b8dadc3e3b958e4f7a68548ba = "e6743f263172244db71e99718233c3f041a795ca" +d0e27bce0a6b240cb3335f74d912ab3abe3134b0 = "0f86b0c127e654bed156f8f0f7f7edaaea8acb3d" + +[535d4fb6-d431-5a58-8b37-282db8e447d6] +283491016ae89efded6f74084590d283fe080211 = "fd560ce5ee76a35e7b2a26ed2f14286ecf10461d" +4db3d34e85735b5a71a493d759a40f60a8ca0464 = "c453bd7a2bcc2c2538adcf0968fe88c31e950cd7" +5fa0e593adab1e1b1087970a1ccbcb9688e83a79 = "6e140580f3a9c1f334d11cb8e4c2b87af4823a9d" +a29e7f006c1ad65a594f654f7f9b10688d25134b = "373b483729ffd1ebb6adb960f4f13d1ac8609d39" + +[53a63b46-67e4-5edd-8c66-0af0544a99b9] +2212b48daf4c961182d57b437f88cc483448cb53 = "91b4615583eb0047446b1c1f8f8034e4d8007ae5" +63e0f3fad620d97f07d85dfd4b9d491923b5091a = "66665b8a01768faeb4afc87a293e806ddaed4a8d" +64a4e66772ca9d929bf4b545eb3bd79dd82a2441 = "cbf462ddc05a4c77c1bd3ad08da73295753512a3" +65f84c20825f05b9e1f665ee771e15d0eb8d3913 = "9da36925d15777ecc3f991b4a5038011956d690a" +818c95c6b8bf807b652875e39e38d6c95abb6096 = "bf2a6aeb6b7f7d1dc99965f4a3015569e131b192" +9c9a611bf869af93268eddb501f57d549972c7b4 = "dfcb960e2c2461f69dc7e95e7cbc5d5ec89d96cf" +b62f269e1fa13457f17c35a1d71bc77fc83483c5 = "b4363a3d7ed83142c0adb605307c24450fd4a532" +bd2c187767ecd419dcb9e0b6365243d7f37317a5 = "d4b064e8385068c53570d6ff573ea99c08c8d918" +c9e2b14e31eeeb406fd55ebc7407b47faf56cbc4 = "2b15481e9ffa7e6af0c6b6e8eb746197a7281dcd" +e1a0630bd65df13851270d9b5c2ae281bf60d177 = "eabda3701f6bbc4178f53631941b8a8e8235c310" +e7fe89087407fc77ce87a9502de471eeb4fcc5ba = "48c574224ce524e99d83755e7ce545e8c91fb607" + +[53afe959-3a16-52fa-a8da-cf864710bae9] +0f61258dfc4eea23c01655cffba92e88bfb8f82f = "4c07ad03580b162fcd5a99c44ded3029105839d1" +16b65a4f6a144aa6240cd7e989e4b575fd2b6761 = "a353219fc03a724acb556dd44929756f01abd5cf" +1e3f017be741a4511fd79bddd88eaa2de44f5429 = "da49f88a35e1d1b2e0fd7d9df2f27ea58660cdad" +49206676bcb58bb3bba2003c834c19f30041f9a7 = "c570805a0f2dd6f952ab55febe73e3318b5d2ed2" +788cc65488f0449f49e438163ecc83e55e7e4cdc = "ff5341591fd1982bc30204015043d7c7d16c80fa" +940bc4e2401bc02259fdd641dc0cf78cc4042fbb = "1c8235fdde003fc27f945984bf21f9e6f16f7213" +c272135600b727d448e2d222a1622fe8b971de2c = "34c6f00e9336b2ec6fae9a68d86ad1e7290b4476" +c9c2c2287373622d4990fcbda4e9d8f4053e9676 = "72cb2637da2d1de5cb18bd7696db0852e342539d" +ebd6e21130c7d9103fafdd9bf6630b449c186519 = "ad3bae29346c70fed9d817ac6ae9f9df17ead92b" + +[53c48c17-4a7d-5ca2-90c5-79b7896eea93] +0033458b4cb5e516f13e8ab63ac38a948ce9e951 = "f6a5cd0cbe5c1bc7a3b17e0ea5bc6f912d55e249" +00a99897c6cd0ef8c5044ee734ecb12774e357c4 = "e5a9a3c3404bb7eb45bb9ae3481b77ccc371e3a0" +048a560fe9bd6a301246353af2017ef2969bae62 = "5baa2d4a91e1e7aeac4af841cfbfb19dd8c16cbc" +07acd3fda99275dabbcfce7f980763b7446cc662 = "451ba1270a3e3fe3d95f3a77c21ce7f742639c48" +0c55728f70e6f32a612bf81c42085017608942ec = "2f0658579693caffc31cfb58aea570f4d5404ad8" +14b1f33f7d623833d9975ee2ec41b1fdea74dbbe = "eebf31e500ac014ad6cb173e61e66cea7fcaf1a1" +1f7d94d4831df61f05f4c66448e2ab5fc01e0e5a = "1ee0c2e2d3715edd1a3cd3ecf01b7f82e56fc6b1" +252c202b1731ba5451febdf37cf72d2c4181037a = "c599f3837d5d8bca089a67e8c616d64d4d1d5e2f" +25affc6cff653a8e569e1f337ab1e62f6980948b = "7083886abeade426248737665579ce9b0061dfea" +34d7fecd42631a9d7aed0f4ba4941400930f683f = "e33bbb2de7adc0df29b760639ca101a57eebe400" +396489524915969ff5a839d5f5a2a65367aba065 = "e1ed3d4c671d190e4b096d82f44eaebc74159679" +3d86ace04a987ac84b90a03e18d936303e4fc88f = "278ea5d59c0659e4f122e003462869130a77c2a6" +404d4bef6eb278b9a83aea5beeaa88a2f8333827 = "800859cf7969273325d7e2132717f685bc647f1a" +4f81c474c7c8d2c1a20be16eb790a50638285971 = "885704e25b425540665b5e25d46e7d47d4914212" +575ed54fca0dc83c91d984c00c954b27b8cf0ae7 = "f15c685a6e2f345610a78729994b0690ecf2bc3e" +65b5c316b37475a388fecd00c66a343ac1280f4e = "473d2fe4b4a211609e16f88003874042f383ebb7" +65d1b00e02d2a1211ee8ffca2232db77e7c696fe = "18d12b2c58df27ecc0f301fdac1c9a85607f7cbc" +67c9e1a810d174160bd1c6c7dafd23d7b2b454a4 = "50dbea0e7177e4da0ad479f09a98523fc2b50001" +6a8aee86406e1b928ebbcd5fd51a570bb8a6609d = "a684434d8d986fe30fce8fca0513113cf35620a8" +852909e21601c9e64e4f2f1cac0b85c3251595ab = "f6a5cd0cbe5c1bc7a3b17e0ea5bc6f912d55e249" +861b0368b10f5c47224892ed1b3f288aa55012b2 = "3b4437afb1c2c1ba5f33f736997d51a5675fe6c9" +9a1b40acb854cc307dbf827adc287b5dbb9c2480 = "ec2d82031aa8a1df08e0e2161084d8d05d58ba7c" +a00d54cb2a06e2bbafc8a1dad27bdfec0390635d = "33e47d7c83645de07fce5c24703ac089efbcc3bd" +a1b6fca0067b0c08cd62add678e4548f0cafe45a = "28abeec2bb8a2bf68b0b872b52e76c5d3644ea2d" +aec1b8fbcf259487663d7983522e206a02c2b2ce = "cd85f1da4267f1c7580ec4111b58cb1a4138b60f" +b58c7f0c817d459745dbc57f19e3287842419d66 = "c3d30c6005175b7a80ee0dc1ca91a099aeb19c25" +bb3dee7d07e8b94c9e7b193fe23949f50135306e = "f6af8de0f1fe43adc7145b068dbaf797db4e38c8" +bdbd2faff80b13d92372c9866a0dd9a1a5f07834 = "66826cb8b5fc0a18d2b07bd583f7e9b283573293" +becc788ca7ce1d4bff31bd8f685919f41632b676 = "439ecfe747f044b46a470fbdc7316130365593a6" +c19b6a0cf0e6d25091e379875a34cbbe6d9b43a1 = "ca82d53d306cfbb0f1a96f8dec1ec1d078c9fe1e" +c238d4205ee5abea6d596e71a3e1967e4b1c7080 = "5633e66bfad4e6085b2181963c5699f11897237a" +ccb4267a45687abbb1dc2a543cb3587f58bdaf2a = "ced832579c70233032b9f1ee15d7e81c2a74dcc4" +cf9ebc49d5eaef7e1d8a348762e9a820b6885f3c = "471d1141a2e247164c0b2feb6f4ad5dbb8f62031" +d2e015cc1660b7db982737f41ff728980f416f41 = "a7d276440f7b91302f49d3ae292887e8d51727ea" +d7ff5131551300892b5dadc9c694f6f48bf14ed2 = "9a82e1bc230cba1d9b7a9af9de16cf9a4972b789" +e57195da0bb8c8e5080c32c19f64557806b7ffd4 = "dcf303a23d3d1e2836a0fe16bc32f5b39e632501" +ecd12759ba78b1180e206e9940ca2100c583a4fd = "164c1973bef1fe6ce2df2a82d217dc7d19189dda" +f1bafe33e7da24e58edf5c10d49151a0bf4cde96 = "3099b7833c70e75a0d25d2c7730afa87b5aa3693" +f3935899fa1507580bb4564d1f0f27eecc7961c2 = "1cbdc3b3e1e7f28fa3035555d380045301ebe3fb" +f4512651de92e50565205765b1bd996b987a3c81 = "a919f07e5d3727bb0d56fb1bfe4008f0f46bdca9" + +[53d494c1-5632-5724-8f4c-31dff12d585f] +2486cfe52e17ec6b5c6aa9710599a3ad0379021f = "67f8eec0afc14f8a9fb8eead00a1b713d7ea2661" +56866046379ab51ffaa3a31cbd06060b4aef112c = "5ca27b2a883afe2ee8b823706f88e7e43eac8b43" +6ef71660b168091b88777188670b2d2ff748f883 = "b637dfb5f8e6a7bfad2e349e50019a9c40a9145c" +98eed1e536452d5fc922bf13ac5ca9e7cbbfa8fe = "e241efde1890611023a7061dfe5c93f33c862399" +e36dc8268c9f6ed03ea8698a5343d18e60907d7d = "309a3880fdec672c24031f0486eeacb0058a4dc0" + +[53d836a6-c591-58fe-bdc5-4726ce2b5b22] +015d4053830f7d07c304db7642356161afff538c = "d37279f94f828009fa00f88a619252e403d6087f" +1821f32c9d76fd858fdd831f7e43dc004369858a = "5881365aaa8bc2fbc7887da80c869b46f1e1b987" +20676c2cbd675a837f18d5e204c870811592d1bf = "f0418b7a408ecaa10fd2c33921077b866da354e5" +e86a73af156ee68929615824e6d78f9c95b35a5c = "1892f47e4c15591fb36acc3787abc6f93892d36e" + +[53eb397e-dec1-5dcf-8dc9-2db916067267] +04d77587d320797c999f9d11b27c83d882bdd117 = "6c3f5c76f22378b3d64d2270d267aa78d219434d" +2c4e74d7665d091cef5d14a824b84be615cc4024 = "196ac49ee9c5bc8b575c3740c69d055cc95273c8" +45193a008004b4129db1f5745c7f9396240f5f0a = "9d543fb7aa2d6abdceef3029bbae37f81adc776d" +b9b42f9d1035ba7cbbb9a670e3718aae751a5ee7 = "5da2936d6bee4b33f6adc46abfb52736abc79dc1" + +[53f79dd1-e2c8-5df5-bc78-22525824e0fd] +0495cba1cb3dd307067c99f061c5e0f788b332a6 = "117ec813709e2bbe371e1bd99443006559a8873e" +1534dbe8c4637426b3b89d3ff3b83c18bb1bddcb = "ed5a663816f8e8d553baff15266a0ae4112538e0" +1af95e78f79e090b108da48369fa33af921d1173 = "61f2fa0c5555251b0c59631e97a7078a006e7204" +1f30945836a9e8063f02e250d92b46868f578afd = "5c0e31b95812c9e3da524080fa0692e3e189a323" +214cffc716294174921598cd7faf857d4bd57d09 = "d87adb83e81246875fc8b090b029205ab9bea9f0" +2f9db8fe21463b8cf19e98df556d3e71506245c0 = "92b9baadc5bbf4c071a5dca952067c18ff794b8d" +33b501f2b7def9bb057f5ff88e0e0c099ff1e42d = "188979164666ca09eb63803138b01ff691dec5f1" +35181ee10379006fdc1137044cad6ece7e81c8bf = "2e560b329bcf607ba49455747e4a63f96927a934" +4b7aa68144660d68e68430d22bb818bc01e947b0 = "89b6a009c14b1351ce98b0b605deb8ae2298f89b" +51ec76163936e0b4ecf39e46e63fa5ac6c2842a2 = "aefb9fac40fac3964c34001223f7814f8caf9eac" +66521012732ea2cb840d71b562a937ecb9a31d3f = "86fc8d4d33d8d6ab2b489938730cabaca807c650" +6d1ae2b5c889c7651aeee44d683161963da53bd0 = "d2a9e3f8a440f5d86a726f971dddd2b5d726660f" +6ef8246462bb2501a7d493071da212b286c3b90b = "af7d54c4a50366c438594ca33a294db90a5751fb" +937f4305bbf7edc8365a66f6ee0237483d82f634 = "f63cf4207621899e228d17bdedda36e49e74afa6" +aae4a5344ee16de739a4a2624ac0f8afae515f8f = "fb4289e9f79176ed41c50b1c40f1a325491c8c5f" +b9da3a353bc0d0079d40db49c6b78b4458fe9bfc = "ae7b3066931b6057cce318ef776c8ef1c7017253" +bfc72e552ce0d30bcecc1b989f909be8ce99b595 = "c8248cfc3d20b8f17e7504fb20374ba3e675e3dc" +c069310faee6061f1ebe8e404f3258bc32d058df = "1254dbc9198b409b50b632a78c0ac2b03ad1219b" +c4307a82d10e857fa1af1e6bf4608bbca25458d3 = "2476b8ecd2cabdec72fe67de89aadb7eda82baaa" +ce9e99484254b9d6c24a5eba7bedf028b497aa64 = "f7a3733e1c65fba941200df97e4dd92ced743f74" +d02dfa4e09129d96bcdf03811bdefad8886082bb = "463a9547518255da2b1c9ee369413d8b4dd41509" + +[54070661-dc8a-5775-9964-1e9cd095ac62] +016d9f01a921a72bc12417a8be2da2a0683443c5 = "0617e6bc82c8637d1760d22631e62500f66260e3" +0f2e4ef2a063903c8f5db0579d085e37b2a1820e = "c7e54d86e60051026ebff7ff4231ede28f822c77" +31117fcd918b0b2587955e115ce5a7740c2ecedc = "ac09029a8eaf9741b08b2c44be2ee39c3d3006d3" +3f31f5ac8cf2933f1bd1d5fa07f27b550278211a = "1d08087e762bee044054cf389b17bb3f684580d2" +58d75e1dba4cb76e01c40b273ccf1c45f31517f1 = "b31890d41f3b295a1dc5039b6f5e41e433ad77bc" +7470da6a8d6f72111fe565eb17ba56130b11afee = "1b2c173275b66a3dfb4274bc3e4d20e2e7783404" +81bdf72fb2d2f463fb7a3c58fe49684f62f69f30 = "df2dacd604eb03fdd67c4fa81c9a99d4e63cacd2" +99d837f559536eafafd507ffa46e9b25523eda10 = "26208d2240aebcba4e4bd07b9aaab0213010e709" +9ef4557c7531975ccde2f7e245596588bcfc939c = "2ffbcc6ef8fe8c069f83c348c0e7d3f62c1525ce" +bea005444160bf49b7a693b75d194a866e8ec906 = "fcbcbfeccde32185a33289ebae3581de11b1409f" +c7f39f381f28e6ab364299f1e34e22f99107d2de = "94c23dcffb82703c22729467ae77e0a58cc9853a" +d1056b36a9e486400752e5e690f1d23d800d818b = "4346ee3da682706ab5005828351a93fb40f677d7" +e4e9cc281f897c032cc3fde024162453b7f0aba3 = "b42112b3dbd0c4069f200376d555dfa1c5a9957b" + +[5424a776-8be3-5c5b-a13f-3551f69ba0e6] +0043e9333af144f272ee86c5f46fa1894d45d9a4 = "3f3d954f42bf7926ee960686caaec0100b3ec61c" +0c11aaf73b17d910254a98c92efb2e33ce805f84 = "99e954899d9fe491e208fbf2d4b978fcca6e335a" +11ccf511683f1e867d36d48d20959bf1d7a91a6d = "258dce94812fd7ca6bc1d9da457d0cd222726ea2" +12a502c24b6673d6073fa79fa9fed1a292702048 = "3d0edde7a3eb7668d74868033f0a61c64772a8f1" +1957124f0bcedaf88c29dfff64c025eac93f5d61 = "159ceb96336a17da5052a4b5a18a74581c215c16" +19650bfe753885dc512cdfdd2f298b0e3ebbf66d = "f02e8893f3c97f683176e4be9544429b83691081" +1dac90d1e2fabdf32f8218adde11f4f57fe0f961 = "f8267980682e5f93147fe49989d25f4c19be4d73" +314257b212397df5b35b123b90085445209cca2c = "a789f249008057d4d3a973a343209c51a99b9d9d" +3a94098a7fdb955e472eb752021f9c09ef5c1b76 = "3dd9f5c735f9efd3fdfa0567ef14c11fcb917b84" +3d48563a7412abb4ec3fb9f49b43bd791bef89c5 = "357a2d85839a1cc254026b1127d3fce9395bc9b5" +44752aa46683ad85819cbda5de5f97a7c3ce2204 = "19a0e6efb64c406363a2dc94f81d527121c8f4a6" +4719e211f0d703c4b91f4493e899afcf9042c5fc = "cfe19080438e0a13c606c3f1aa02f39893d39303" +4f0e9efabd69a0b5243c5b4448a76741e6863136 = "8f697fb3b55b08005f7f68e87201d1659da4efc7" +56aa01d3d149e22d6913726ef6132f4f687b3284 = "7315104c21a7663316baf1d7bcae30e9d685e5c5" +56c94d19e6d8bba3adceaa212de378405062cc46 = "29db24083ff7f113c5c78ccca62d697a82ba0e39" +5bb2340836fb46edd11eea62331ae5ebe31b1a59 = "c9c77e38917df3349a398f431c8e55096cae4a4b" +5fa9d1dc0b1b5425847e84bcd082d52c797a3055 = "3cb862b086d0a816af486d8000531631a870f81d" +7da8e12b74e0489926bd86b7f713a8f92d108130 = "711a824616178c41c0f99e61426e624282e56809" +80c744d2ad72382e09f3b8f92e1f34e13e7bf0fd = "0fa0a962e4bd7faee325a22c2be113cbe8034b0c" +81cecc02a7d525c4dc2482845b6c6447223ef06a = "8d051071eeac24979c7d8c5b42a3544700f72330" +83db0b273f9273c86da25f6f3e310d3d44b37134 = "db0809ccb6dad197c3af8567c935d1860a2dfb77" +8cdba6583cce552f12640fe9c187fe29bf3e31bc = "fec2fcf683573a6a71939a00ae3080377e75a61e" +94e96617a4f134f63f4292f9069769ad9fa9f846 = "498035e31f133ea7f699dd118dc64469bb94c403" +95d60c313ce95a2a4aa5179c3971e01da8957f33 = "2ebbd3d8d773fee2125ae92bb1e51878ec3bed99" +97e18a8f315ab0c43d41a4325d72be07847f87ad = "5d0789bb22b97f7fdc597ad42a1b88881325159e" +9d13c80a2b721599328a8b5fec1d426fe9dcb567 = "a40f768afdebfc92c91a68215d16dff7d282ea52" +abf065da368d96b9b64653b354395ce95b9ed2ce = "878abb152dd30730c51154c2b6d0ede23e1624f2" +b6a0ac5fa511a37823a5f874e289d098c12ea0b3 = "4bdcd0882177fff5654ccc10ed762e6d4327e8ec" +ce0a9445429bc1f02e3689e013725ea52a2b78e2 = "03cf296f264f07b7d760f7276b30b93ee5f92bc4" +e2dd08835e10c3a38bb61658eedf9fb6a7417644 = "927133ad0aa3a2f60a28989bc67068574f6496eb" +eb9b8e08938aecae50ebd038252c063b9ecbe4de = "d6dafc000ec98f5e16a3246f6daca18bdb5bcd12" +ec76a8410a92893a53069607c591aef0868c03e6 = "21e851d9423d8a17fe875c16acf92292e4928ddb" +ef9639d609048d01b56173c5295e7261cbaa90f6 = "e3a46264124f658f8077b599d79acd173b46105b" +f1d0a789068cb8cf2dee5ec77088dd47dbd21b61 = "554570f94e1331bd81f8505b4c17a959bb83cbb4" +f64000611df0615bc7d3e689c8c8c00d77f8bc96 = "cfba3d9a6ecfe21add37d4dba7336ff98c4b8fd3" +ff81400a03b47ed2935c544c6b725b06a2f26aff = "1a191af693245a63a69b42a159b1155ff96bfdc3" + +[5432bcbf-9aad-5242-b902-cca2824c8663] +201661159dd00c23ccca67e89aef211fad8d1d3d = "000924e18734442b08ac9c5a81bf1c57bf4ecc2f" +69000d9150e764a05f36c61e1aa1dd027e927f45 = "d1999497c3a8b5bc1ba4800599142fbe9b3fb466" +cc6348eaeb87bce86c15e968e996504c8e2143fc = "4b8842b0a062a35beaadfaa1246f9d4732701cc2" +cd38932f4bdee9130e6d872876057eb58e8bd844 = "3c9b703b906db4ed484d1a60b4a94b03940f3000" +d2b13203c6e72929d06f09a3687352c0ffada175 = "b9ad2ad5beef2d5f6912472e8de4fd1fc426e4b7" + +[54a738f6-630a-52a9-a2fe-a3febc0a6862] +3c77845bc09ca09d3ede476d123fc3d99d3a7b03 = "a4c8359cec94cd359c01cae43b5094238e2ea522" +ffc35dba755e880b40b38510df30c171f5f80521 = "86493c46071cd43fb1e63bf34f1dd8fa70a1f247" + +[54ca160b-1b9f-5127-a996-1867f4bc2a2c] +0111ab544796863109fb1f2d4a81ccce1ac62dfd = "e221aa8c5f9ef9527ed32c7376e5ccefa01e8809" +13d49dc3dd89747b0e0071edd2845fc9e40dc198 = "856e868b52e9b31948663b8cd50a498faf7924ef" +140bfaf1ddab8f4bc7226e7ea630cd2e0fd1fd6d = "a855880a3f9de71f386231eaa7867db692daacdd" +304c1b831b307a218b9927195fe1bfcf82ba4ed2 = "6ef0d0b9aaca8973358539272a61319bfc6ad600" +49263328a6ec286676d090b761c24fc81a1f51a2 = "0d0bb2c9717f09a7c4198015d3559d25549a50d9" +5c170edc9d4b95779652f7fba7d4561f01854580 = "fb271a23074fda86a92fc87e6fced7c8c58fa30f" +6001bc2ceb2c7e6f31bc36f03c586f84241e3a32 = "6b402e17464d28fe73be4f14001681f617e82ae5" +65028f691e3929f2453737e07c9ba083c0671722 = "204fea2287baf7a3b93874ed6d502817c52feeff" +6a7fb8bffa894f53e252de8857dac234f52cfd63 = "69ee5416bcf643b3ef22022ff5017a27befae3d8" +6fcabeab7b6b21d45509d812cc29f3a68877574a = "3bae4fe3bacf8f771cdf1c9f5271a19995f014c0" +711156af959f98130472708375d05898f2410e47 = "255a54df097e9af41ad4f3a432ac7fb2bf65ea41" +7d35506436f34d6094f6cdc51356eae490b45a71 = "642d26bf2b93702c1fbb261fe81e71deacf25c03" +808ee47baceaab92efb08fadee5fc6c9a60d9e41 = "ca705f1db4dc65cfafa3ea94c481bb3ce7108115" +80becf81aa84e574d25f9fffb6897cbdf2db80b1 = "fd4754841b7fc419d69c8693252d3a0012bd2e57" +9e8bb214a3f84315c59675f237e6f80e0abf307b = "85d62a5581e62b9806f8c74b3ca085d1f7febbd2" +a4c7511f0ff80195bdcd87926539b9f0e49fc6e8 = "8b1ad948b2877e56de2df9fd8221c36987ad7632" +e884f71a5c271615de5a0cb6587b959274ceba8a = "72aa4f7b58e200d8e4bda79dabeeee627d99a08c" +f81ca04771cb66602628c935a3f7e02cf9d72ec7 = "79f2a180caf31f864b4db8f0d062fe47c8cb32b1" + +[54e369d6-cc75-5e05-8b0d-cff347536085] +3a0b7ba754f00c46ffb59301138e152cfbafe4ee = "04fa55d91d8645ba1414c942b0e4125dd96c0bcd" +3d12bafa8b84540805e0a247ed48dd6153d3c11f = "0013e34be225dae33d703ac47ebb40623c953cc8" +67f5e45cd2090351f84f769b06b8df577a0deaea = "c318b44ff6517e05805cc58eecb4ca125c23a9a1" +a8a9ca1d35d556b576a91641c0f0ac4f5991501f = "cbd6eb24f3714ca0f7beea1386645aafa752ed4c" + +[54e51dfa-9dd7-5231-aa84-a4037b83483a] +11cca5d65816fbafd41dddbef56f9ccc99d881ef = "98847c66303f9938d0a3bee86e5f9a04feca0c81" +c92e145d974c597fcabfb9f1589a991e5288e7bf = "29e8599cc973856f2335b0a7ee0cc5df9984fda1" + +[54eefc05-d75b-58de-a785-1a3403f0919f] +8ef1e207dd0321bae9e6e5d7c339bcc2822d4f65 = "e6b358a4e3c1c37583caccf4c49ebac4edf09c8f" +cf6d90b2a473839fca0d9084314c9bc602e93ada = "9a2fe3455d804e6997bc4c370775d5cb578fb526" +e1516f126f26ea8ff572ad20e22ecea23995db84 = "5a350061cc640e309ab11fbfe98d49d657efeee3" + +[54fa3700-a926-5d24-99e4-d67e3ecac25c] +7b7f364f35fc7324554a6adb0ec7da771b5f2fe1 = "a86a74523700cb6fbd57af49251a7206b60849ec" + +[55843cef-4dae-5c06-9712-c3a111be3cad] +3d6cc64c24651460503605f2c1049267b1732258 = "cabf85e41a732b347a1d2d67851b3d148500a22e" +64e5dec1050dfbe23ce6147fb6e8457a181518e4 = "9f3d94ab47b010af05dca71e4572a66e511b5797" + +[55939f99-70c6-5e9b-8bb0-5071ed7d61fd] +093c8bdd2591c84c9fde17e38e80e0f792f4bb7c = "03abc5af05b9165a7897f1d74943d8d4d3007b33" +1e62582f202553af6746c70212346aa8a1463257 = "6f35b840b8aafc798637c0ed45070b25f791d0b2" +2550bca0a83440afe4f5e8e24b9642e1a8911e42 = "f8b2ac6629c785af0305e6bafe1e2f8efc8e2a34" +2c58d1da858e15032690ccd31644f7615458a6bc = "c1024d6ef1de0ff5be4ff6533cc4509a6561ed22" +338f0e054c8830c2d29e18443a595e75c9698c70 = "5e689af9f72877384b6d8b697889e7f14f4f21a8" +3669a757c746530d5aaf9ab60046ab74ec9f6ccd = "36826822580a351ce3b1b5fe19a816c16877bda9" +5fdc88fb24b86c364edc34a7e900f3d2c502f8c2 = "b85d416e8e2074e889eb9c7c676ee6bf90245261" +65adaad98f75c1233a8b77f8ecffc5e4c7f7352e = "3b220765f966c3716995e8f3e5032e5374a3bc72" +8e98e5ebdf8c59488aab866dd6b22b19bd38a8d1 = "a5653c0d8f574d0874995f208c02c2604ed730cd" +b78cc4cc666fcd84523a1733fc782b0ead8de88d = "683cbbacf2e98e70e5cf2a954401d7c91ff51605" + +[55e21f81-8b0a-565e-b5ad-6816892a5ee7] +6934ac06900dfdea8f5d433b819582a2cf8177fa = "3bf3c42bcb3af1ae93c15c6c2a317706185af2b1" +9dd6c30b82bee444e30bf0a336d16c8f205a4a3d = "265dcffd228455fdec64e931934d6bb8284582a4" +b36b3610b4224990d967b275c4fa6a091289f6e7 = "637601c82af2bbf27c57face87261ce6bdafd2d4" +cd089cc3a813c83f3bf48c015bc1538cf11d8725 = "6f663fc6d9d8495c9c54406afab67e2ee498a527" +ef194c835193ad2fabaef29e32b52ed598d12251 = "eed5d577d333a3afbea220c9b9cca44b7a30657d" + +[56060788-a912-5818-a832-966dbeb3eb36] +0c2b1a23dd0b8260c91b34764b460d706edf1ff6 = "d7d068113207ca85fb69804577f02367c41fe14d" + +[562c1548-17b8-5b69-83cf-d8aebec229f5] +92bf4221641cf1c62a8227748791a6fb4c517bf1 = "aea99b299d2588451f0b2c5f58f0a79d4232f911" +a1abb7eb89607666b41a278f659ad17509cb8cb9 = "c8b59095e2212b2c3fbb6a0c749211519a394c6b" + +[56780e9a-f91f-500b-9a21-c8c66253dea0] +01a0815d3ca514998caad6e71ecab471ae06d310 = "e015af92684a104a241dc7b97eb290bd04b56a65" +08914e44204541c1297d5447979e579e75100606 = "6ea0792a129d4c2db9ec85d092f2d035091c1ac7" + +[56b0d19f-0a74-5872-92bc-f48f9c5431d4] +1323c3a8b03e926501fd627910eccf70de500e28 = "629cfc39e36de1c4f51cdcd5b2ab3dee48caa540" +41294b6168a1958202e60cc45e17a06189355d9c = "83559974ec1cbca47edc73ed81e05ccb0451962b" +5b871b58c764d8d65373fd1cb12156b6342df2a4 = "58221dade1ab646e83fd4fa2410d62aab4b449e2" +7c161c183831497723b2e78c910e88e5976a3ea1 = "1c582d52fe30a332a35be69323fb119c10bbf0e2" +bc41d268459ba750a2c0775f259f308c6de135b7 = "b25937e3d75dd47c7d999e3edb37cadfd5169f31" +ed6657128cb192e50d2535994c6e2c3f0e0456bb = "e9d21e65c0b5d2b3db0b5335e2852034ab19d7d3" + +[56ddb016-857b-54e1-b83d-db4d58db5568] +15b4618c5834caa96b720fbb61355decea497844 = "ab122025ca7947991059c798760da556d49c2981" +1893fead5a9c0ade217f2b762ba178566539c839 = "acd1307ec86162e470f45abd7fd783a23de5e5e9" +3aa8466db5908adfd4cf8094b61a666feb8b842c = "03dc88f536142fe8d7814f3375dd09b04c1a947d" +53be63961d4f0b5cd95f68c5d0e9516715d4898d = "4d0178d5c75f6bf2f0134b00e7b30c2dbd44c5f0" +55a53fcf3449aec353e1e29938c29e816608e4c4 = "45a158e498b282ac6a56b50a8527742dc22378b8" +6857b3ac1bebf7b4670404d4b66409cd077c8bd1 = "b0e728814fb6312b379a82063b54015507643717" +7cf0274309df1830e29723d4cf5a4ed63028b5d3 = "385780e2672f11186f23efed5be1f6dd8a2c0ae5" +93ac9ad51cafaac9b15e02606d647165c12fbe89 = "399ce4cf74c0c2200f86b3be3543093bec76c7df" +b356860376c85282af829c03b0d263f41d5beeaa = "9077649acf93bd89b6ec64fb82dc4fc6081294db" +c204c42081cfdef64f77ee1160873acb9773b13e = "ee072fdb98f417c05c02c5bc0a3fbe32313cabed" + +[570499db-eae3-5eb6-bdd5-a5326f375e68] +2c7a16d1bc81c979c91cf01f4fac14c6cb4cae03 = "0ee7a385ad0ab54e2263e771a50da39e6e0f7432" + +[5721bf48-af8e-5845-8445-c9e18126e773] +16d583662c336af16f29816c804e8ac05e6685d2 = "aac3f2e8a6921d64b6c1990df7d852f7974527f7" +3cfafbd5f2910319161e40dc3da4ef292824fb88 = "2d34e1e04cb02e190295de48a241c37fe5b7fb22" +63b76a2d08052bceb9b6b3e88c303b6cf515f82d = "14f27ba6f11c4f0514a25f9d5fb5ea225be09f75" + +[5729c670-c28b-55ad-b33a-9fe1aee78f16] +05f2b6d32436c02920585067bc55e7725e2e3462 = "99bc6793481e1ae93e735432139fc127d5c1a180" +0626de46a99e0154967ba822d9c8d87718e4abd0 = "4fe873bcc60c506183e7103712546c3bbfda8ae8" +11815a42c2419f707b29585135494d152b09c055 = "c09a672086b8c64030af59f8156018a6a35e169b" +19213d8100a4589a00774e26fc39896fe06d16c5 = "4502f95d69288b4fe29d79ef3bfca338479b9040" +22a2b81239f08c9fedbef00b06e727e641a826e4 = "8818e4247a82b1f3731eb2b8bca470a8a9b215fd" +2d4e02c479d86617b31fce5cf8405918407693bb = "c8bdcbdbd81eccbd1a2de73776e522ff381dff9b" +3cc44cc591bc03bfe1199b23e35245cff27d44f9 = "d539930b5bb18832a5b3a08cc0d38965a00e914e" +3dfc33ccc6e5f2021707809672dc1821d4e500a4 = "5b05cd7df445d35062275e2001f1d1c94c054b6b" +41d68862f18b55d465973edfc62ac4c418a18e22 = "851d85a1d2fb278b292bc9e27142730eae6fbb13" +48d0034645cbf0db416a1b288ca1e51510aa8183 = "5dc2c949a2ce7a4b59f9a6b65bdafbf897999ff0" +5662a8fb8207224934f33a26e85d2c0c55d261bc = "421b09014d596000444746ac8e4b2c887881604b" +61ec2a9923705bf7b3ca761a79efe244926506cd = "436045e9245b98f0c20266476e5244c66e72a432" +703a854f1f084213465e07d9379400628b55cf18 = "791898444393bd1e2c2d22d9ff1f16ea4e10f29e" +79441fb604c92525744444f9f9f374234e7ee6f5 = "d8560e7febeb1065ebac2bb6ff9935b95bc46c93" +8b7badeaa0c437c434c2922b817361829215ce39 = "01b4bb03e95e0e79892e41805f2f701641b20ee1" +8ebc78161e96b498c8b1a20f9811dea9499d0506 = "1947611b63e64737825491043a8b707b834f7927" +94bc84d33dd61541c52d616436be044e3b039289 = "50a1bf7eda236f76d9d51dbdb0b1cb9157244201" +a0da46b2f9d828769df9ca4ea63b01cca2c8adf6 = "26c77873ec13a9469e68e0d64e573b8636009776" +a36c7d34fc5a5700b32a46288cdc4059c7ecf206 = "0a81350395c4c381136e355b9e4d632a274fc4ce" +a579fc6a80d1427614f01c1adcb496470c6ae994 = "aac01863cbecb46a17474ca1bca14cb6aacd1c93" +a9fcabfec6c22ec2569bb25d8eb735c0a4b27012 = "aeb2356c7b00e01f114c0ffdd001bd90d018f3e0" +b0d7d5146898d3d661da6c5c342a878061be9832 = "da24650b265466acafb845d2ad42ad3406907311" +b2f6bbda6ea8e1dd377b1e1ced56315ebd4bd37a = "ab009db996cffb562b56d35308b9f31c188b3680" +b3420e517fd0b85a44dc0dc70acb70f283ad46af = "121d12cd2ab9bfbc1412b18dac94545013430110" +d4b9b329a93d693b46af8f3c26c638a53d70908d = "f2dd2d48543c516794553bcbfd354cb4d22d5e39" +d4dee4f5329fb20328cd2d7f8af97615222b5c79 = "a513ce19f9a6f0f6abead62c34e14e8554cf6036" +e97ebd6d1691dfa4f162183fcb8063436ed5cf48 = "fe61df510dd66b7ac448696030091b9b216042ec" +faed8ab07e0618982378f8d4b9d88a4ff5b6e750 = "dd9af7eac42c785ef6c096ff4ef252f5d67ff9a7" + +[5752ebe1-31b9-557e-87aa-f909b540aa54] +5b526df76d3d8935f4eef2e4f00db766611e4355 = "13f7f982631e3c57f5390de3d722950ae04633b3" +5b8500fd1d302e27843c2e8513ed068809984f50 = "6dc887d5beb6052704a39ea9d3f86b1f23363a70" +63486f60e8b2b0ed6457de2a30cf514571a7a69b = "528a367b9929d8de79cd26b29514e827527544c9" +afc3a155f7adf58fc263424d26ae13fc6bb8c9c6 = "17d09008cf4983ea4690254d480ca01505f38ab8" +c81699f9123c4fb299d5b76b61702f136fbb62a2 = "2e4bb007cd3bad4b8ba72ce564b5f4a16adb8903" +d29b1c39c7d188d539c9821b6ba97bc031c95f3d = "3bd4a468c96ee43c5babd8f0a5b38943d731dc7b" +e8535e792e9487527d079ec5d8773a035e9a41a8 = "89fe862f51c2a8e08cbc5500927cf4888ff6b2d7" + +[5789e2e9-d7fb-5bc7-8068-2c6fae9b9549] +0d24ad67ddfb40a3e840a1c687083b24942f9fe2 = "77b040d55d8aa1bd7a0949548a4846b078b17fac" +1373ebd9b89bd0a0e13010df5840a836283c601f = "6f99d4ce14806dcbf14b3c5df01a66e5604b80f6" +15058b179d88ac8cce5d34cde3663d59acdbbb1f = "e715126544e9c147d212d85eecc713d604e78bd7" +1e07cf37044c8273c6161de61a0248f0f8a76d8f = "42518eb3d06e19209babaafbcdd506f393d4853d" +2886a4213858ae6c9065af75eab9ba50207e7d4b = "6e2d4b443c1d0ee9ba03a93da0d831d9bbe7c4ac" +2f77c74dbee36abd85319f3ae6cd218fc29ce188 = "3953276e97084c2ae2e38c31237efef88ea44db1" +34ad95d46eaa07c51826d1feb35386290d0d2160 = "d368d65c222db1a10c83c1854746f4c208c1d1ad" +3ae36a84dc2b96f4c4c1535b9ad44c81c4f8006c = "3dd923cadb11899e6c4b850e5dde9e7736bf25d5" +50c4ef3438a7165d8a0789808530cb734bc3cadb = "8de45a13cec9c44a3ff5f6316d107069eeed9cff" +530ed87f4f8c30f61425233a0ecab2ad94eb1c0d = "610e58717f332ef18846570af67a5c9c7027923b" +5a68c1188889acf7c66cf2b5ecfe69a55be24acb = "b787ae0f5cc4f87a809a9897d7d9855736f76c5f" +5bc0bbf2eed817c68976041863d0af5343329431 = "5ed07ba5244b721aa9191eda37e786321378adf4" +7da378db89401a0c5f1d80ca6b40d0075b3b55fa = "b9c8086ed083859f887322f3b5e19cc9a5448147" +8919166891d4bb5489ed19a829ef861823b977cd = "6617533068cac241d5e2bb5ca719345613649d0f" +8a8f53e5d3f24dae44b91f88fad184f759a86831 = "30b67b70eaa479fd094b0fc3ae3f72fd5c374295" +97acc32088b18ab3fb3905160ba68c98b7583ca0 = "a2976bcad8007a2c7b575ed5ac1f238fe7ae6adc" +9c2c1b5c54627bb67fe0313635a1da8272b2bc50 = "cd39c4a1efdf5cbb23097a25de0f0e9311de0d96" +a80cf2bf3f30690ffb62ec6a725b43e94fad0a5f = "fc12b3e7b3d70c7c2cd85de07a330ce3d0a28c95" +c20c25fc369ef3f5490348b6149ab9035d4d06b6 = "70b4ca63252116153911eb5af81c3f9f60c62629" +c2b212704640b062948acc1f5631926024f7ad2e = "783865db3ebe68c993d5cee686abf234bcc8e053" +c38ef5ab4176f6f5c642caccd22d69f76e9d08fd = "86e2a1913ec8f4397fa2349168b2f124ef3379fb" +c43eacd733a8e6db4450c340f8f7d39fc6a7f5b2 = "c27cbb4286035f06fa83c01e420fee102726d21e" +d0125dfe16aa1ac9c79e9d7fcce961fd175f977a = "ba1ec136b4746bd1431be08cb240bf6cadcaa02f" +d4e34014e508da06e03ea838bc5440d6fc02732f = "16951af6b2cc07ac4c74e15e1b5888228d7bb02d" +df1953be3c0223ba7a05ac9fb57fb75fe51dd4dd = "609b94fa33962f3a124e69cdad7c4309ce7a73f0" + +[58134239-9cb3-5d87-adce-67568cd73197] +12447c5f28744a30c0b4cfd25580d4ed4709b2da = "d73bc652aab009bc43c2f7348eddb03e250b4b6a" +2be7c1e3406237886dc5a5c2f425276b75798661 = "9e489b3e9bf781f538f00cf7c156562868aacd5f" +a54a7bcdcdfd8dc50699642352db9c27f3e28b50 = "44c9f4e8fa9b34d35b2658f96b7146f84e7091c8" + +[58298e0b-d05c-52ec-a210-0694647ebfc7] +3edf313b891e88061282be460bec175f8309fa1e = "ee469018741274ce74fe5237ab3e2949e819b16f" +5a3f81c4f0a3c03bc5de7663f9d559cee80a3506 = "025f6a5cbd8beb326c6dd1c00fde00a6839574a4" +5d294ea233e80546d0c60e56db8070d352ca4a57 = "c7b678ffc1b37247886b5e5a7d51d0b972350992" +70a5c8a0cbd500e3366289615bfbdeabacbdf926 = "2091f49260198491beb84ae9a0fa5cc63e0f0a95" +71f3397038f31288d888103b6157fbf038842568 = "204bfd5622081234d671d61ff98e66384c3c7616" +7b8cc45acdd6bd7dd7c8a16715ea828fe7634260 = "8b7aeafda606013cd59a0893f899f600781c907e" +7b8ed63f9ed08ef11c39f6d94f287a465c525612 = "afb1f23e33162262c2ebee98d19e40b4b08b450e" +a373c7da987ab7810b79c939a416096bd2718d74 = "84dadd54b52eccb463a57e70590fb053fbcf02d6" + +[58537def-5585-50ba-9aa0-2cfa4b6fa1b7] +3d6abc3d61102a991a76cd697d6da738fe1af44e = "eb81830303ef6501e954d1ba386cf8cbe51fa708" +55c1cbaf53baf3d8e91cea09d818de4b184177bc = "8d69e98235fdfaa2a6c867014923e79fb997b545" +55fbd5a4d2b6f03269d66b8d6c953cb2cd855290 = "771ecaa4c8f9d51594695b03d763f43d25d11daf" +5b0700207029d43a9e9a11353a9100732783cfc5 = "1ef17e66fdf763615827fa6dc2bb2b39dc4cd565" +622dfa539fa53c3eca434cff40af37ced69d533f = "c2f614d5607f861af19420a8b718ea1aa253c8df" +7bf74078e7f298c3fc6d4b7006876d6671998d2a = "92ca72dc82a6cfa011e65380f2b1bdb434992d16" +88c44b70edc1d0a256297f91f0ee5bef774d8d5c = "eae5fecafab084cbdd7591288c46b93e936ea90e" +9170c8a4197d5de0421b293f7f181793dddba432 = "af6bf05d9c3103799b0cd9fd45104594f75024a8" +930bfbf5703a7a9e837f343a51057c95598c7976 = "ce3c02b88378425dd3dd58d6d33d684eb56422d9" +989d7adb46e3161c9a4a34a78e32f5b830f8b905 = "1256dd886dce94e65104610dbc8a47288f2420a6" +c7954d7a931fcf48e017a943e4ce4cd13ae6cc48 = "5e3dcb6dc3072b898f0e9a54452575090fb2170a" +d35f14057c0c9d464c969c0850dd8b5d883604ca = "1ea421ab7ba416bdb107c41e5b076dbaf6c278e1" +d9b78c53c8223833412557433a8b5970b6d6e7f1 = "33f51288086bdcd1c903d9b84976f22d70f9355b" +dc286ac19293aa621ac086599d2249a8c6193afe = "a795a0fbfe25a5b38f85f31fd3a001cb1623af16" + +[587475ba-b771-5e3f-ad9e-33799f191a9c] +0f8ba87dc68307050abb46f594280c1873ee4d84 = "6a8e30732ce7a9cf3b0d00bae9d5bc8c9e71ed49" +1c317eeefec910170cc72a4fe09ac54e187b3624 = "483be44dcae53f42a2d5c25932bd2e17d91f9706" +2a66545ef8d3e8d456718670e59d752e778e83c9 = "e537146830c9ad9ee967b28ee6015d5e8811b276" +5f24d61ba3abff93cbd42d871d24b6d6f48ce7ae = "fa1c72008f66acd0592349ad070fcadce374e071" +72eabde373a7d8ca768b6a27c90680f80870b3ce = "520bca0815c38267cf4396107f279768138ba92c" +7a85eff370b7c68d587b49699fa3f71e44993397 = "90224c1582372a864e829b6b30de07eccf3ab8ae" +854a1e18865742c59b6db6c58e16fee6ef9ef8ce = "c3e43a44da125efc6ed7d042e8205c99ef87bfc9" +98b362729dd39c70d327f6f03c82fe949b4a2396 = "3bada51341076a651526306c80e3e1d49211d1dc" +b17eb78e0a7131de18501b621c594a9c4d459372 = "1ba2767540324f3c86c75563d2198304a7a47a95" +d3419c943bd8c8c3d06ffa8ea5618625b3b14613 = "540e9ce53865dc6d900d4c39179aaa8289cf4dcf" +efcb9650da31c183b94b839f66aa3467d007c33f = "91bb8c724524995ffa9a6a1227585ea465278468" +f2052739c17aab1cf0fda0d1fcbea7288e28cfdd = "657a379d601f9c1a83075a3ded6af624c0133751" + +[58a0364a-aadb-595f-962e-ed87e1da736f] +620e09eaada17aa6548c9f8ac30848dd364239bd = "f373b6d56dc8e96756b82fab0d18f2010d912536" +a8829eac75d9ad501d118d2fe0d03a034fe24fca = "872709b6c2926ca17c3178808e1fa666b2473bc7" +df89fe8b917a44854b449b62509eb503bbef12de = "6519e8f02957993a2e18b49051eaa072b158de8c" + +[58afcd03-4a3b-5a28-93f1-5806b9460cd4] +a8359523cb97075847697d06d5e0961d8c90ec87 = "87cbc2c5d6dba5f700b07ef1ba68935e223fcfba" + +[58cfbd8c-6b7d-5447-85c1-563540e28d27] +02c842cf164e4b9392f54c78f16ef99618d0bc40 = "da890945328e06f0a4f2f6fab712fd06b2809067" +032d39beb8639b372e9605a58ad0fc726e9304bd = "efb2ec825f415f15992444b7b0a913324f9839f3" +259b4cd37491164ee3dd2ac2fe9472f6f9516e69 = "0f2b8b213ec1b4e81a33b9557d1627623a551bab" +29a053230e7992a5cd3072dd600ba309e0a05afa = "208726e18fc7967e65c331c28c85a92fcf34ac92" +29f66ad4d8ba5c7fa045a57c7883eec1a6b9febf = "02e8c1e814fb0dd655738e2f9adfc27fc7517a26" +2f9027624b7def7a8d390b0ea460fd50a48790c0 = "c95bee2dfa76606f5b1903f15497d82bb26f0a00" +37d0f0a7e0069c431a8fb5f61b48b1e4a916d45b = "73e80a1115c44c29fcb72db3c68c91acb8a11465" +412e3003994a67ede779cf33d8c5f57cd0fc5244 = "9178d28a636eac27662bdf0fd284534d2d8f47e9" +549c9fcf4c659bd37eba89545362bbc71ac2a913 = "726668ea8f5a7aafffe023e562513adccceb9801" +56c7b23b53d5d9591876085a39b6589b40259a51 = "8c8f5b613bfac9f1b0d1c5848f9462b2fa8481fb" +5fc047b459d1818a9a76f529e0723e0efcf45ee2 = "08002dedb3877b7cfe16e5289850c74360d954c1" +6ccd939fbaff01105e2911bf6dc0973bbb318ee0 = "89ba2a47cffb0fb50d3b303482691d62ac52877a" +7b60a511e0725ed7a4fc64b04e4dba8b5a2dbe43 = "c393df97267c5a1b2cd856a84023d99512782414" +83443aac580e6aa39e642115df0517a1efca639f = "9bd311d2c9f21fd82685be76448cca0cdce38365" +a754cb57fca1231fe64ce18f1edb1e4749d144c3 = "f40e3e59b0e8461b85ac58b6a9be6b33bc752000" +c75ea71a9d989657046286468e9d6aeba26311a4 = "f1053bea22287dd5d6c9700840c45a19a50e5381" +c7c5beae20166d0b8ec7846a1c0aa71bc8176f59 = "89e32ebb7459a0bd9e8c9b3ae49141b9d9d5178e" +d23805c7849baf00be0f1d81789569fd6c5f5a30 = "8e06d6a0d47a393b0e542c2b5e1f931a8300496c" +d7ad86e26c141b18494e9db46a7ecaf8e4502d34 = "b34e7994471a8661fd6e46abcf5a91d48cd6f34c" +e2b3708f7f2918a99d6ac06ef80be51e37be9994 = "178d13cf0435c020ebbd40cd0822acb210d89f45" +ecb47ea818babca8b9663b3da7be845e8285ef26 = "8e1b0c2d10b75a5b26f95880039d89f5bc1bb297" +f3d646770ee4302f3521322345c2db78d92f5780 = "62beb2a2368adcaebc8b71d7a432719a71f6413c" +f4b398d5352cb00038f06800e91dfc0d7171d794 = "614eca3165c16559b347def98b79d9e23c51588c" +fbccf12b555cc9f475c5ec5aa31bbef06e304ea4 = "e646edd5362dd8beeee683d772a3bbb072942121" + +[58dd65bb-95f3-509e-9936-c39a10fdeae7] +30483121ac46e43738624e45c02cb975fb6ada22 = "e281d37946b509928b957e821d8223ee93b5f00c" +9c2131d39f5a1d840f0cbc0ab7bc97ec319a532d = "1bc64b33c65e3c4c03838c8e2889aa5c23108ae0" +c6f56ad1234adfedf2925e162b3f069eca27dd73 = "8a6acd3f08dc8ed57d654471133983372ec0deba" +f5e9cff4743d205749dacceb2e3e94c4dc786e01 = "d720f21efa24e9d5d444942388dcd60f816bdf84" + +[58ea85f6-5b3f-5734-8a79-3d956807b916] +14cb8deafd0462b3a9cbaaa844a49cbe161e4b78 = "544854bd6eb8c8272fff125b49c264e3bb5c53e6" +2852d1308dab10a6297aa2b6277206aa93fdb9ce = "946e5ef5f4695e9667ad2b6b60871da4ada2cf92" +2bc4c071f61ddf721f15d157410821a72c6dec85 = "ef40bef964d89ee6463fb3e913c6b241c56254e4" +39e0398df68cfa6aab2d2b17a3a7b0bb7f74eac1 = "afeea7053b86b7096b1df7909ec78df9e2197095" +9e9a228c0dea99852bf7f75c3858eb57331f4917 = "e71856b23c81d07c2e5ff0616a70e2f81db7d6b3" +9fa0922e4f3a08977e8d3b80928563379073b15f = "72e930b6b53135217a52a0edf66275740f6eaf1a" +ac7c633f4a374f4692bacead0f38b334c2945563 = "52ddcdf2952c34bd66281408c51d211ce6c33de3" +c3f072b20c333ca6731a2f3b9511f256ed3c7108 = "b5f3e07d64a51b0271e90f61af3a3e2e465ce309" +c464cfb5aa9f2e5286aff74be76e876a013df96a = "6a05ba18630b90fb07a6e8672968e375cd105b31" +f7454e95d44a0755e7e4a60843f8a83a5e2c3dc9 = "576a4e38cf3fc106af0e4a93ef8680cf290523d0" + +[58fbc1cd-eba3-55ed-85b2-f929de2cb270] +ee792078f6a210e5d579f2d829d7406af825f906 = "9b37161a6078ba8810d718b834bd534c235f29c7" + +[5900dafe-f573-5c72-b367-76665857777b] +290f7b97ab8e6e15ddad6b233958843fdf6f8d15 = "ef3b344d1467e176dd723029947123c7fc97dc1d" + +[590503c5-0061-5db5-9a0b-c3321e62fd13] +26811c32ad44903c677b606efda379ce3df01fcb = "0facc68eb2264cb5dfb087e86578428259a306f4" +28fcc22d27e3241249fe1a68219df338e56ae4c4 = "1f3ccb8f003b53859151f803ad13318575f3062b" +568b233457895af9243b4818d980b3c7703cf48a = "4d0ab58b02a9073bc54faebd10c639ac9efa7bad" +7741b69e14d4ed0d9663ebf8aab195cacfab1f05 = "8fdde6c5b3f4e689fe571e873270a7948cae5cab" +94cafa127d0bd4c14970bc63abb324cc990679a2 = "0736b7751cbacb42422dc44f8049d0ef22d6a92b" +95baeb9a3b5b0c9ff477b9667fc24ef9111e7725 = "0213e834b34391169ff9d4fd9c266a600ffc43a8" +9eb2ee362f3f8b9b634bab38709ca86f68ee255b = "fd9a379916b2b4334209a1ab2034a6602e166ef3" +b06c481f0c69b8dd19f777224d66aa21ecba520f = "74e084e79f4119252a5e27c25bbe0be8e69a4033" +b481e4b93a34b874ce80194a8ff5091bd81b247e = "7725d9731154f5366bee28fa8b7ed092c73027e0" +b5524ad5fa5d8852f83d2d65b9a15dfc70d0f88c = "142d893498f5605f717f3027708c01dcd258748a" +e3c4e0882eb037d987dae7ffa20b1ebaec33c2b5 = "e1d2e41a1941f5fd687970a0fc050d7243d58079" + +[59263001-193c-5fca-aea1-eb837d381d31] +0a00b00f578aa7965182ed4d9d3248308831f41a = "d6893a2eeb481b50c1bf88b4b3f1126ee0a2a595" + +[59287772-0a20-5a39-b81b-1366585eb4c0] +024233bf2c536eaf2f720d5e32f9567221fc9e1b = "06c6ddfdfd8b06e03d50354cdbcc03f985bc41e1" +16446b171fcb350951de853af6c7d95a4d16d2a6 = "5a055059c63b67f6a8be2034d1be4886599511b5" +39f6db8ba993cfb4eefd7db302147ea194a5ab0c = "8c95326cee35608ccbf36fce5a317986b9d95271" +452aa89ba598f74566aaf30c5bcfe238e661ac74 = "08dbaff5ec5aeb8ce832ebc73dc0330ab5cdfc78" +6751d03af4cbb75b858586ee408737488c9b07b5 = "c11196278f29cda90698a354aa0c8c05477e865b" +a59a762a0310e536cda8a5bd24ee072bb83cfab1 = "945644ab394d2102224fcc001dd131b50199b302" +b502b769c010f166049afd815561e6325ae17013 = "9ad45bb56e044dd3f61d484e9edcef8c245b4ca0" +e47ba2ab9fabc3fed8298efbd999a2c1808124c2 = "a7b5f3be3d70ba777b0edb0abfdfb1a2222066b3" +eb903be4ed5140fdb5fccba15fb04289a9f639a2 = "2dc00ab69a9ce06e5065898f183c178bc8128371" + +[5954407c-3ba7-53b2-975c-4465da8f8c54] +906bb1602b96baaedf253c8abd73b11598e9c6e6 = "cd94ec6e4ddbd203aa8d23d449d2f89ab9adf48b" +b0d87e4ed1d148c4f642fe9bb5cecef3be864238 = "c6b4cf304ab21c1227a1c809e6048c7212c3c8d6" + +[59d4ed8c-697a-5b28-a4c7-fe95c22820f9] +52da26f0b87dade2ef4865847711bd5d7e0dac60 = "1d4e1bfa3443c6cf7dc59ac0a79737778d063508" +72c6341b5b3ac37a419635a2311b3b99c9afde01 = "f481421dfc5e3e678f48b311c9d8b33aaede3ed7" +79f0ae8e319ca5dbfb530fe2ec99ca23160540e4 = "89b051869be985828dea3390144e064582d449b8" +ed7c803e7a3858b34dfa8e5a359143eb6236be77 = "5d46b7718546c7d3618e8f6127e4c33517856477" + +[5a033b19-8c74-5913-a970-47c3779ef25c] +0d8900f6af14e2897001de7119c089be76dea419 = "5c307b1dcd718934b5c5ed0c02e880758f98719d" +cb3042d5e295470028ee7ed8d48c7ae99f7d7333 = "a60cca1352aea01de328644acc057c0f5cb5f97f" +dbaa4f4fd6b50512ea687e06e797d43850bd1c8c = "e1fbd7f6fb0442615a3247ea94b6c3b992d73912" + +[5a0ffddc-d203-54b0-88ba-2c03c0fc2e67] +140af7eaa835767af7c3010ce665d320ab62251d = "ba4c8ea676bb7afff7ff8741eec77567207cf94c" +6f5471b3dcd867a45dedde15e1cccb52ae8a5503 = "5036147e45c0a4d5741843b58210a88d28fd98c7" +71120affcf32da56fec7547371eb41b984eae5a2 = "e3760cf2179550f77684acf15c757a9f020882a6" +7933688ab56380b95f14694831f645a8c7fd9ccd = "1efd11d47caa452fe25725f6e90d56ac776d6492" +d7c7c0ca848da27e62fdf44ca158fe398cf2bd3f = "c71b8a3dadefa9595cc6bf47e190ced88ee3f68f" + +[5a3ac768-beb4-554a-9c98-3342fe3377f5] +863673c102d93614cc3bbe379daf4035e6547c6c = "9a5f1949f3c5cea079a13438be34d539508fcd1f" + +[5a44cd38-3b09-5e84-97ab-e6762b1e8d4e] +030f7f0f979bae91795ebc1d238f94bcd0164192 = "f1f3d7c136db70582c58174f9fb4faf2301f6392" + +[5a625f1b-6dd6-54f5-bbc2-b57adf972d78] +f75589e0590247824b1a57d986c5f38e915458c5 = "09ab4dccf59c9410356fbc88ecaf1f1a1ede6f94" + +[5a653867-b65e-5b16-a095-b1e26d522bbf] +1cffcbe48882edd86a2076dbd862dc11613dfdc4 = "a34b94ddc169287026ee5c9d45e012018c222f28" +4ae33b5ba9fa1d5c190b32184055ec6cac87d6e5 = "bd8dc9c676bc10dc187e93467adc0a24e7b0134f" +ff769d789ab506c4281f55776c67eaa13125a345 = "48528042ca2f4ddac4308dbb538689a8e90ed040" + +[5ab0869b-81aa-558d-bb23-cbf5423bbe9b] +182ce2b00d831f0599674730050913f92e624c62 = "64b262976e0fd093bb9ca67c35ca58fd7be41712" +2de1e7bae939d923cbfd4fb000921aca42d1a6fb = "a2874ddeda2432c971351a868181120bc9c44694" +48cfa6aec1acb6de62b2aee547281293a298eeef = "ad1ce4047473143c628195f64e97e5c79d9750ca" +948fecdd0b5f669cb3b214f71d5a47759978071e = "c986475f74fd575bd96d9b54043f17f56f41f67c" +a688cebc81cea8c0b72a5db7eda1c3472d7a6fc5 = "e3231e6ba673b3e0c7f1d4782f3712abb37328c9" +aff3dd45ae88abab8ea6e2ca0ce9f45062409c76 = "5a07742fddb502e7a08acdbf41ac9dbe7b240ad5" +b2c9f7d6ba2d8c581f0390b07bb661841c031635 = "1b5ebf959cdc16d4e877dbaf1736820e56d68347" +bf4191d3eeada071d308b058c922b2aba6aa4003 = "3ea7b490e459e3c60e290fe1613e625189487a23" +cf9686204ff5d1d3f129d4d9e50c69cbb9a8bb02 = "80b64bd49f1e100901c5f2f01ae1a1f81209001b" +d7524fffdafcd114b4a49c974791b71a23f2e138 = "6717e9b35ea2721362e144b0b1795f36d90a1759" +e4989f5df1b73dc0027d792a132cb06a9a249aa0 = "8052ae8e62a491cabac212c0bf4db0567f42a528" + +[5ad8972b-8d15-57ab-8bbf-97adc1efcb23] +3da7974b87476768517a9a37ab7e55963cd60d41 = "e66a3d36adf3c42e50d48878c9e6af1c0e183a42" +99d663706343111eb9dbdbba48e8c52b4a7a82e6 = "918af58b54687784b4f0b65c26771d97ec4d9583" + +[5ae59095-9a9b-59fe-a467-6f913c188581] +023660ce7f66c33ae3f676ece3acf98419dc23b3 = "1806daac6b008beb263680875b8ceed742412633" +0c2af4c25096996981e06947f6ae242234bf7c36 = "7bcf1c97b4b1ce2b724a533107fb1d6db8ff2e55" +0f3d493f87a37354071facaea7075701c466b2f5 = "242f61c0e2ddb9d1a2f428e1131b72bffe2685ef" +1c43e5bc71d6f8fc12a161017cc6df13b4c429d2 = "8ed4862426a9e1cc932710b832086755bcdb3c4e" +2ef0f9937b0de33fe1256c499ea0d66d0c6c0370 = "f264529b11a5b3f4b959e226cbaa87ee7fc75476" +305b85d2a458fd6f00f450c69677fa96509ea74a = "f05be16f5b1bd31a901f3f7d3903bd87a9674e7b" +409bd7a4efdd7fff9664e6d72b24c11554e0c857 = "94c39709455cb3ad346c240b2a3610013114aad0" +4bf77fa42c6c3229caa96e3bf46f05d3e938017c = "abe70108f7f83d6c153a141374701a7536d3f19d" +7183ecc621ad58266170cd36178b1c1a3061615e = "2421874d22dbd940e3d904b43758512e39bed6ee" +830936435de28ec1989728cbbde36f335d760a73 = "41cf5884deca6a1f927f6cb9960e80625044df65" +85e21ff3321f8993cd5a4c5fb1f66554c632f553 = "8375350acb0d877ba7c9303e507b2e0cc3140472" +87e13ba4a1bd683608bab2907ced90c8edf8769f = "4acc1bcc402dd694be0a2ae4bc292d93a3516c3f" +899ffdc03fbae021f0f59209ece5880c51cae659 = "9f819c58ac49fafbedac8414dc8beaea54971a67" +8f1f8c3c84804245aa111fb61f4814ae73a723dd = "397090610dd23c992a22c5a21b165156db7594ad" +92957f7870f5b19fdd02bd9ac347016bc6237097 = "49bdaed9721f1a3e90b1aec61fa8290feccbca6b" +9f69a2a734855116336838a6a73b53afddf4c36f = "6f28517a387f292d851bd13733056f10df9ddb96" +a6ed074f58fb7656b55d1e208abce678c8d70b61 = "1a1b227b0a2a1726879e95b4d8e7cb83137d6f62" +b753e8229081aa4c1af9bbc4b233c93b4cd98b57 = "c8c62361bfaaa63ab0d35b179530f5aa84abce0c" +b98ac9bce4e4390e16a1d4c8d27c798d07a65549 = "961bafd814e17b08e825d7c58d7071fa220dbe44" +ca2e384665e86ac27b29579c3b557758bbe4937e = "0a2e46fc30e82420d8a6d0cadc84f258c6ef49ea" +cd03f77b65e00a9b4375f6196169a0fa7dc59eac = "5146acff0a006b7ba8d9f6fd3b69647b281bb30d" +d479df3f1e0a32bdfdc5f1965699df16aad6842d = "f8ac257179d302ad50245b68db5c1276a6682e0e" +e5fe33a2c75dc32a462511557420e6145df1bb7e = "b321c221e9ca6096d9f5f1e4e4a5b424ef8baf7f" +fc67047ee79a8eaeb948af6ffe4b2f96942b23eb = "8149553e65e8551cfdc1f1f005f41ce84f06b1ba" + +[5af79cbb-4286-5dd7-b00f-641670ac5c88] +4e87690972b6e4501342974dca924003d80f1aca = "18012f25a64b3f46d21f50853417eabfba46807d" + +[5afc80d4-9c98-5ebd-88a5-4af7d4f4d6a5] +4ad1788f28c765dd1dc5888cbf27b309c7e41a28 = "f5f7a837a73097041d3b4613c158e6a22e2b58a3" +5759866104cc48216007684a423f43b2e4783113 = "1a464c085b0dde4ba8c1eb41559b23d9fbbf4e3e" +64bf45b5d9dbad6d999a6e29a67e8b81ace8a59c = "3fb67b4e367ce74c57332f4d19dc75675c991ec2" +806d536237e68cbb6b3963f72edbe3015f061c97 = "f4b91f0c1c82b2b2a4758f14aa7b397faffc5b88" +9c82cef8818548e87d120d3d51293e9791c1fc98 = "630c4b1e21893060d071a47af7fd9e29a499ff2a" +c6f92fcfe0bd24215de996131944b3555ff888db = "38429311b549bda7f5bc511e54987cf67b6935f2" +e4e414194d435c8a726e83a4837b008fb945802f = "3e8cff801eaa8e6168c5af4b0d05cd2d7a7306b4" + +[5b70daea-9db9-5a46-aedf-2142e553ecc5] +0b1c81cf3f69e84ba77cb4ad4bbc99352ad23a2d = "28559a23fe9d12a5732399ebc9d6a86910e73da4" +6201923396f2362d6955daa04085a3c49c45c0f8 = "b013fa09c5c31cd06514f1b5ced0198552c46e58" + +[5c8ed15e-5a4c-59e4-a42b-c7e8811fb125] +5a4a9caeb139f2071b0da2315d94e96f45a2636a = "f9239541bf6da69bb35b11c66d1e80da227c21c5" +6fd167f2d38ad8233eba5308aa56648f0764e32a = "26583f66e9fe24136166844bb70449c23acd5e9f" +99ff43a8fe8f347ef533da5331b0ba76e9c489be = "00e341fa3b2c2196e84d7d643f19efd5372bda4a" +c1d9adbd6cefbad82af7040df52ae47d371d6c5d = "7e61190f17da30759f5348a6c3b7c227206f358d" + +[5cadff95-7770-533d-a838-a1bf817ee6e0] +cb0d739ccaec3b9914bc10c51204b892261210ce = "0d8f53a212e7edef8aba8f43c482c49eff4bd814" + +[5cf4117a-c29c-5f6c-be10-22558df91208] +0009fc6d58facafb5da5881b1c280bf3d9ae9d6d = "85976873dbe89e2c861dcf73906ba66b6529ec1c" +05daf8d91e041dfec3c62cc5a89cc61dc2933b40 = "8914a3650faf0d2a1c61f6e3640652174b2ae04c" +7308f14cf471fd5f1ed47e7fdd9133d9bebf83e2 = "60bcefc812f3fc7b2c48587f322450c80a77602a" +bb94e90af02e78081d55225485ffb02143553b03 = "063f2b2d54e97d1a0115327cd5e9de12a7093597" + +[5d0f9de7-4c7f-54f5-bec2-484e8c04014e] +2fc2f7577e9cbbe959b546ba82b58f2681b4f6d8 = "ca8496a613b733d6d7ee6b41382b3ef0e51d69c8" +625f0767b64d6e4a7966042e7882b80e0b215e1e = "b0037652563e3a8643839272c2546c09a605d043" +76819bbc468c0571a0ffac08d4f87edaf6fc442a = "73b6e6af72b5740461cc72259ca6375a22819d79" +82f2bdc78a0a95200531c8b7abc3af6f76d92cc6 = "9cebe1e62cd3d7960bac367071e608db83d4a80e" +a87144762d037bb28fe05be0c242f4f77965061f = "a40155c4fadae3c7bb441b6769c97b2b24dd89bb" +b3262b29b4440478c3176ec5f3a43e5bded28b28 = "620b2dbe13d1ac9f714c4b22cc019d8cde258281" +e9f5ba6dddc213ce308e6f5db496e06029dafa60 = "f455e2779b7efccaabab0078bd854de77215b599" +fc17544bf90f97b8262d2799bfdf4f3931c55900 = "4e0ff6b92c87292722bb4171cf0383a218e5aeea" + +[5d2a7710-adcc-5ca1-ac2e-fd803714376c] +00846d95895a454633f7e3d59b39c549c8124ba6 = "38770631f78fb1eee5e5f5bac283ae5d32aa7ca0" +0cc11e20b0389ba98fa8dc834c7604c469b37b75 = "c251cd6ca558f6ea3ce972ceeee120af441ad0f9" +36112edc444d2f2cf7f3e2cf21cfda757f719af5 = "1bd8f22ca09a488334de4bc0f0eb9e7c3b05ea36" +41846a16705f47c05be577770bd06676367429c3 = "b7a84cc2ee01ae2ca8ade2a97dffa9908869866e" +4d3807b02f9c091e8560664bff4188c69a55c18c = "9e197b804fe4d2d4f00978fc4ab1cdf2daec61bc" +4f5e79622b7bad1c6b3165798818cead1ac6e5e7 = "8eccea7f137f19e7fa5d14898e66074605a7a9a8" +56f2994825cec0a18b3baff673a991c1c445becd = "8d6dbfa166e88ecdadd8b548cd7baf3c927dd2e4" +6cca2fc5a2b26b47bd67aad8588cfaf7209d6ac8 = "f395ed9e0a4ee67580853c300f2b661328ad6a50" +73be96a1b816b82a9fad11ee5adf0377cb971ac2 = "de42f18f62e0cbb44782e2b15c3dac3f9a3cbe8d" +7fc0d93c15b8a71461a542ae95188a86ac852c02 = "e3d9433d2cccd0be401112c30c4f87e7eaed5887" +81476c1a5dbf384b42c8fb57dc61fae53c2ca1a9 = "975930158498b6fe6ed34d66d8a6a572c2147dd0" +85935ad58552916b95ca37c26d8c1484a7a4f711 = "77a794bcdc97392e0fccdf4a2a78a168a9977746" +a735b88818acbf34d35655810e108daff58fc154 = "8dd3f867dd2d0b710d0990f1aed9f6f43c962233" +bf29746cad4e1301d307413f54e2da0cafac02d2 = "966415578d211159af5055817b0f500b95c157b8" +ca42fc0f42cd23ec9462d4a0e0900c5b3ae6ab99 = "ec126b21fb954b38b385e40af6609455c28d8a1a" +cf771a3ddebb980e83235a9da0690364a9f66e70 = "4b6b51ceb888d25269a3ccca56c69bccc85bbee9" +ea6da5228ce93ddb72ed81023e5007ec559b709e = "29b7d82e07ccbe82d82ded79fdd418ec3245b642" + +[5d41aeb0-57df-5a94-a3c4-60ba49600646] +4321d69777db683efa454fdce65e07f52c5bfe11 = "578bfdf03e04aedee6d1613e70ee156f55967c69" + +[5d515f07-b68d-5712-997c-00dd95584880] +4bb623845de215d1913f8609a60e70d9fa60e362 = "9d05fb666a3813c25f4977907567d04f2f98f306" +d9878921c31d474c33196b0a45ab9c635c62c852 = "68d90f393fe16ce91279c36f568813ec43a500af" +da4b534b0a1f8c2e5cc02cde1dae9b78b416dfaa = "6756152665d4120b0bd9e7c1ddb43270d65e3fa3" + +[5d742f6a-9f54-50ce-8119-2520741973ca] +113e834a4669602cf5bd63587e84935ff9f77e68 = "895c9080b56462f75399f6dcde0881032fc36ca4" +59037c3cd7d3a60919e11a03b5cfe54600644725 = "0875b1a5e053ac8fa4e3cd03dc1d24a9e00e7c5f" +648d243221adf70ab2c7cc06014cb4d71a6da242 = "bdcff6e9dae8d248b6484168834620c1e138f22e" +89ef2173db204b1788b0bd5f601a640d41e21631 = "b5f66225ee12f4934f4097f42bfb2805913ab22a" +8c3e9e04d2c91be8358c79d77cde991c721813fa = "dcff5f31065679dfff104ee74a56b134c00abb88" +90da3b6fb8d24558d23ef16920cc674e1a34f57d = "2d986cd49929b7e9b69eea626f702e54ee6139e8" +9686ca0143a042cbbd6f4a083ff403156e3b997e = "7ae1cf0b5d3da182c51d8d91da9ec739733d6bdc" +98e274eeb4939aaa7a6ebd2430a731c44a44ac80 = "f2e89bb2aec2af4b6ef8b4733be69d8a846ad5f6" +9b95b683f13a08723e693c2685ef51407f008dae = "24d760478bfa8e7ea06a3a15a1d6f8bc02dfe03f" + +[5d8a72c5-1e5a-5861-b6ae-c8e9564f9d17] +09a05b9986e351211ba77292a5f99b2cc8bc7316 = "a9ac47711063e1a6591be11d39e306a03c89efd7" +2314e89c82735418f679f13c339e047f96fef421 = "50143c04e3953879842526ab0b3f128a00892a16" +8b0418c760b29d8002eb7467583244aafc735d45 = "8ab4f28c017f11fcc3a133ca8fab3341762db967" +d719790950e4edcc1690a720fc338ec71d677b1b = "82a9b34fe2ef51cdcc2acbe73c6ddbeca35bdc4b" + +[5def7495-c9ee-531e-9985-6630b8c8d8ad] +05e61ef0e96d6442ea5a19363b1694b9eaf9bbd1 = "e0a4941d5a5ed37d57544cb241966d38db229c4e" +2052474573c3530630b936370d075a0354b043fe = "b4ef781a821a1e1b792c9f45860c2c8c3527e9b9" +9ed64ee140fe72b63161f06682b05f2f6382d92b = "6c7a75b31f1048883768b30ebce26135dd469442" +c37a1df60967d8fdfc792f4a7e20112c6446aa87 = "b3ac4b9f4a67e4598bb453c7ba86082969d23808" + +[5e113713-6c35-5477-b766-e1109486666f] +bdbaf8df76cbaa52c312a6b923bafab7b6e493d0 = "bb7817704466eec5bf9346ab3923dc40f1091624" + +[5e47fb64-e119-507b-a336-dd2b206d9990] +0b648ae0dfcc62bb2d5957e8c172cd9d72894dfc = "b90065b2a347f7d100e485afb0ba7d42a782a763" +1ad8d4f7694b358e83c9f80850c654033672310b = "3e371e46360d3afc59e84286a58d680f70fe960d" +2681517cbddb170c68399b7785f629f4d662151a = "33cbae9c2c884998dc1d1bb2d2fb18e4bdc7ec24" +2c6f848f69a370b5a599b89903b08cd7b059f6af = "a541f76aaa941cf2ac1cf16f68beed8c680e33dc" +491bd05599d010fd1a428bc42f0a4d077007c77d = "f120748d2fc6c5123574724e4ab95b8b5542923c" +6d2fba601eca95089ae504b4716d7d2bcf9ab1f9 = "76f4b3bac66fa182829d1ea3b72c4d45b7344331" +72e1da7850e33aaa96af930d76404f7b6eb0041c = "a9b4d4c96c283612a9fca56c980eae0f1103ee1c" +9a9318deb5e86a2b8d9e25dd7354b5302b6ecb88 = "7e9504d2288966ae6902f64984d7699671802456" +9db10e91143ce26a7acd7d1038e9c820e8f41154 = "8b615497cafaee8eff98841da74ff0f4ab1511e8" +ad8eb81cce2aae8577bedfa7a21304a0518a0822 = "d943d1c3806d3c3e2c7d5c035a480e33fe3ca217" +ce937376e7b0cf385add99e23f4a218802afe245 = "a6a7ef3802753c500cc5f45fc5faac07d234a76c" +d32f6abb461a24ea0709138be526517bb957cda1 = "63861dde501c13394fc776cca943a36b9456ab9b" +d45af2536473ccc1823268624f3e188ef54f3d92 = "4dc83fa5766d5cf64d3a5f8350ffeba1881f8130" + +[5e50510d-6214-5143-98ee-a00ecbbf8dc8] +465b7d9e712144541415d5cda40fa33d517a55ad = "3b1737cf25fb36402c142048aa001dfec208c857" +59b0a355ea2d0ae8cc36e5f61c4e72c958341a7a = "83f32a10becea24fccfc5a1819953a2343e1685b" +8969f2b4b81ccce2bb5877f4bdbea1d2a827fab1 = "4631b172f67b15c6ba779713cad13836310abf97" +9617df9ccec726b0a26e3b244eff55cd819104a6 = "e10c3b3721a45680bcdc0756de30bb77089a8122" +b7432310548a6e906ee239ce9d0e1171a482822d = "19ee1a3c4ff58dc358301dd65db895103fb9f24f" +e430389de030b6b70817f96b36dd601d48c07483 = "3e67330a31dfd9196fe7369c3d4e0c0cd0a91d35" + +[5eb8da3a-fee4-5650-9757-078c5de4c78d] +d8b45a5948dc92695761305b2a3b312e65a5a11b = "3bd745008baff9a489e7386f0a14075fe6fb9fe1" + +[5ed56870-c405-59b0-bf65-7519edecb181] +3a68ec1d06f30c72fda1fe5fca48bc705bf28f8b = "309fb5b4f4b73a08f5c9ee9c3d105efeb9c45074" +827d43ce1c16facf5476934e8e043621b19f1d16 = "436c5a9e0c93db3b68ed4f0652d811637d24f512" +8f4db7be03ae306498dacef007ad59c2d06a4d8a = "2968571ab06a4b199f054be4dd60556b18a6d3fd" +cea177074e255f7a8a4c0f898d0d7bf541a81599 = "1a9cafaa149a9fd28b28036ba2fd045513d2510d" +e162e84453f6bf7753722327b8c91747235e860d = "eb095673d91b862e1a96d56380946dcd977ca8fd" +f016515ce19cd18481201697cce0b3eba85cc381 = "3c9745fa03eca9025ece9583aa2b678816095994" +f298f531c3c8b7982df1a7de5dfc89316f817115 = "39e4c063a904c562b8ad479032178c2a9d62880f" +f57964dd60e17af209fea30a0eb113fc18a23c81 = "91c501362099096045508486d742a14db7709ca2" + +[5eea6763-087f-53c5-84f3-2f10e0978102] +022ff46b065e97aad08bca975e9d95d31aa27225 = "b187170a7bad05c5b3f5ebe7525ea1f0b393ccb3" +07cbf6457f8c0c466fb561be79b54a69b3df8164 = "1d31b3d6c1cade88703fde998459f73c89acdc5c" +100d93cddfc159ec22b79b370cf0756c5d9390bd = "2303184d8e0725d1bc8c79edc7e68c6ea2b28abe" +144b7ec52eeeab7cb25934aa5f935818d935779f = "d8942655f19951ae04bc128c7e32bcb0a16090db" +30e1683aa8ab0ca9e1727ca9490f6b5e9a9b86aa = "8043cc45631958ffbaacb632c5bc250eafd0298b" +3f338492cd8014573d1a54de30049110d22eeff9 = "3cf9d65ef99018b124267a27db81283ef4823275" +5002fabf6c3d275a59060b5e6ecc8fd5d19d39ef = "51175478cb2e08a230e1b6e202e8884abf0d3ad8" +55d3205fc27265e74d1eaf623c87be5a5cf72aba = "ad1c27526d81b241bc88c8771ddc85c7950d6fe1" +8710c8867b644650c3f96ba19085eb671b561d87 = "52f426dc37674a2aff235ab6161509df97d73bcc" +9bf790ad616656b79517e13f14342042bf3238db = "b33871d0d8b9176d7fb8df8ca71d911ccf10985b" +b1f614fd5ed9655c426df1b7615062903fdf68d6 = "22bc67fe3fb47a8115b6ae52af96622873c663fc" +d0492567d5a9bb1fe46f34016f125982c7f62685 = "55182c395a1952a5ea0ca322e0bd3a9a62845c26" +ddbdbbd93572ea39af45c01e45b0a74938df2e35 = "99f09e1920048cf47f6ab087b4b4046b93b23fe7" + +[5f491285-244d-577f-91f1-1ddb566190dd] +479ce19a4006661f820ff6d359ce8b003c47b863 = "e086e0433ae819104ffb0987f329fe9b76fb71c9" +6f7af991c09e161fb1453a6249906e8a0f19b8d1 = "fef5670347732cc9f057a852d930a58182b42ef7" +e2bf3c380fe993908c7234ecdf6232a8053a1eda = "5377197de7b5b53552065d6631c49af95f8ed3ae" +f278d8ffdab47d9192d09e4f886e7ed27a887888 = "1d286e3bb0c7e8e8b1804be27a15fe62febc1907" + +[5f923234-c850-556d-bb4f-28324fa1959a] +0b62815dd98a0331a4a1d5b263187b40605ebab1 = "df58a26d20a9f9b506eec5e0b060deb23008b059" +39208a0717930c16a65b37de4167b2c9f0aab2b0 = "157c4ce391824fb74ddf4597494e762c2dda8a0e" +5c4c00d7481e92d892b29715e701f634e88b8605 = "9efba038a6ccc755c973e8d123da9c66c035eea7" +6e894a436a935e295bb5bcd3fe54aae1e04fdbe4 = "df4b55f85cfe56632476899011a32e67c0aae567" +7be430d7d6f39f02c2effc499578754dcf84973a = "1484b8ef8837c1b472688d66c70dad22bf7cc011" +c3701d88f6d5e2f45246002de716c7fa80907ca0 = "a8bedd1bbe6e1e04ea41b4b7680f2a6323d960b6" +caf0537be36e21d90009f39dfa15e1db00215484 = "d5fb2d124dd39e4aaec9b5a7a75a2ef1487712e3" + +[5fb14364-9ced-5910-84b2-373655c76a03] +146fd2882c514d8499709b5e6a1af8ed96abf9f3 = "806fffcd05d8d38ec67f5cb2198fc2a3c3b97eb5" +15bc5a8ed0d19b3f775b16794b30fe2dcb83311a = "e0f193b2814163d24bbf5f066c37ea7f98751853" +33bec22ace2bd5825560d4348840306983e69fa2 = "7789d47a61b9d028de790378cc6b0feb23b41750" +502a07d2d41029117dee39836b72ba55b3a58195 = "72613d4591016099caca07ab3e459e4fca670f43" +5288fd8046419b26095eca8baf19425f9a0b8937 = "d267323a09ebb68d378e66b7c90703c3eeeb31d2" +68ee211356a08c3f1d058776b4693d282b5249a3 = "f55142ee88ad1a8c3b885b480aaed4f359ffb7cb" +8ae2caf3b3c93de4b2606a204c0ecc6093aa4f39 = "07b650a9974f838baed7de1800b75895fce58375" +980d37f9ea5830961faf5070e08e61aeaba816a4 = "7232672abdc58094fa3e359668ec2199bccef4a8" +a6d98ef5be60b3479a0f6b01c6b512d6365b5aac = "02947506d9f41647cd53ded5612da8121a114526" +ad487539eae56ace0aa1e9ed5030afd48c4915fe = "d7f671b7a4bfb8e8e6ff1fdcadeb809459b1a49c" +b83c83cbb832f52852d11ced4cf1f53bf3169b4c = "c09c94956401cf4c83d00307670ecdfaf15b9ca4" +df3ad496a8f765ae3119eef22435a568b9a3db1c = "4c272ee43b983532f600b94e61a614603bd72f2d" +f6f69601a96a5e46d00162b6869e24d8fdeade02 = "6f67d14ce981c7f54a347b65da7b54bad585ed66" + +[5fdbc85c-1502-53ba-8f11-285ddf4aa9e2] +147786c7fb1e68bec77f988b543b35f2383631f4 = "c3143e9c05c55b5060e73de5a456e9d3ccc4f456" +235a64b07810412ec318170557622c071e95c3bf = "a0e3703d70772d2f9f50afcd9801c9ea0eb84ef0" +2445d2f4ce11965749cac824c46e35d699aca665 = "cb0d45ce8088db4b96a7da70d7dd318602c7682d" +259b8847f6362ac73307aad4082b8e4036fa5851 = "0dd501ff2c3667619f82141853ac63168bd290dc" +6969ab2c4c902fbe1af32b868d9aca063751db07 = "aefda920f5a696326b7b390590288153400894e1" +6eb8c34c91f7dd417e38069848ba44b7dc2ac7a8 = "92631e5861ba995af4e4538a21e8843094e14893" +c18bd0f3610292dda0c8a99f50377c17cd880828 = "55775b34a271d503dca43015f057130787b53e59" +f70fc751e9d3a573d528c8ef2df5e5225ad8db5d = "8c74ab47cba32eb96e9c84484e147aafd2720ef2" + +[60101457-b834-54f3-bc3b-04499cd57c3b] +ac662adf498b87e4b36543962cfe9dac2c6265cb = "2bb018068f6d40267fdfb0f4a9ca2141aa66c35e" + +[6038ab10-8711-5258-84ad-4b1120ba62dc] +0a316af3669c085467f3951cb354f8284cc9145e = "11ff2cac505119dc9b77844d093e992b89236267" +121e73d7fce6c6f997eaabaaa0086e15fc9e8620 = "21f034ecbf779f3fde7f7a7e4745d355628b1615" +31ae3ca5636fa2aa7f8a2e760d2a82b4f35a1b13 = "df14e3548831ca19dc7edd6f0496cd3c035fa04d" +3ef1cce96f25dc604fc4dcb5c84b51b4c84cd488 = "03f4270183449564db6bb2e026da210e8ea38531" +5135a03ec7ef5ecebe063b19280963947645ff25 = "212e93bc921260015797349d32b22bbe69e6f779" +5ec796831ebbd276f3d9de11f4adfd406c2a7642 = "7839aee203eb46a70fc63b2ed8918179e14d241e" +5ee49051762d4b3aaa717660a6d6a06bd7dbfab3 = "513dc21eaafdefc83ea696560730e7c651371bf9" +760f1fa3100adbfea9916630ead7cfa3abfeb503 = "eadf39f4442f5e842af88f8b17d7f4b6feabac88" +9a5cb5b8b4d2de418f47cc3ee4e1f7ca6c52d004 = "28ba9de5969b2e2d6b8a78a65e1a3e25201186cf" +a16511b4be90f2c75c17b3ffa956137566e7f04b = "0929cab95671dbe09d98093fd4fa7c368032c69e" +aeb9c30e4a24f14b12be59c5a751c5ee6d3f8428 = "7478ae37b6eb70e58623900efa2e969750ac7419" +c2cce971a58f5828c7d89db4157bb753659915a4 = "831fdabe855e6c84d7b1f2a4e5b3a8e7f9acde2e" +fa90fd4028d56934ecb16cddcaaa314c6480cca9 = "bc115398dd7f36fb2cb9c50648086e84ce7cf0de" + +[6042db11-3c3d-5e84-8dba-9cbf74c9ba48] +363700f760be7491975449f0fe54b9382d4c001c = "df655a549a5e3810f3c52fdee14fcacd7c41d9cc" +491d726a3019b73899376c9771ccbe8a31fa9099 = "94e8df21980aed78afab08e958c5b8e8c5bd99a2" +88c2a24cb00e26f970a717f07e19316a4266861f = "e7ce8f9c6381c096205cba839017c653d0be7a15" +bee945293b2798ae605594ba5ab87fc1743e319e = "334945fafcadda8b01237d64620ed3c79b0485b0" +e7ac024bdab9159b4836e70ee51db8ed3e22ec10 = "b74e4782b8b17f865d8f0ba2ef47ce037c6d8c0a" +f41a3b3729c1d7bdc5d8cccbd95aaf3a6d03e50b = "58a5f551b5b74d7aa1d0138ec1808fa0f022b5d0" + +[6043864f-155a-5464-b5be-64e090a46784] +f249d5a5ec4d317a8ecc5fab8b5d9e9fd90fbc40 = "c3e9078ee65e9b6c854b3f6dff75d1840f4211f0" + +[608a59af-f2a3-5ad4-90b4-758bdf3122a7] +175f05a40eb0280597f62e25b3ae9828b9d0f48d = "6b20d0e2506219198854386be7f617eadc08ceb5" +461ae518784517fa6385f390da5562d8a3b1fe82 = "90ecf99386958d6946474a61c36d6e5d232af2b5" +5cf6b944bb5f2ba2e4e3632b8ffc808e3a996ae6 = "d94947354f7edee5df23f3e4e7c13681660c7e53" +5f726acc817b23160fec51f92b813bf4679ecbd2 = "d1089179e3923c0dd314b2bb64a324669101e0c2" +89a00c30c6ac386fe8c1ac7ef58423de1bea178b = "d4922800e3b3f31635c86104de578f7eb79ee04b" +8d3d0adce198ab19c0b76c50a3d7392f5ac9b617 = "71cf6fa23439b0bdd4aa0af0d40869ca1e22b8b5" +bcbc4a693cbf738161ea3801bc13344187b529ae = "1a573e6b3961cc9658cbb883ae7a7d981ebc0ff9" +de4c35db3e2340d4fd4368c23403fae6e7e126d1 = "b1476f6ec02e5035117602cc5cec2db34e50f4bf" +e28798177aaefd4a97d033ca26c620117483ee3b = "d099978ab2404c1994931dd327fcc2645f12a137" + +[609d6d7d-3426-5c8e-a8cc-9e956266946b] +de0469ab1a550d979443330a281377c1d8582e31 = "f8c4fa308c2ede3f92cca56dbaa47f7982b6f36a" + +[60bf3e95-4087-53dc-ae20-288a0d20c6a6] +038460bf168ea2c0eaa6284fcea421dc403a1f41 = "12fb8d6f8a98892ecba58cffbec170a9d746ee79" +1674755b4f54c9aab64a80f07b2ef5246581e011 = "678088e715fd8eb04013a2592b27b43e7b686ecc" +1de8b577e482d659b9b858e7101d6fb683593941 = "1214289589b511fc607eab0004a3121c08194a6d" +67d60a8d831cd0bfa4283f5f8c2e5917ca9dc4e4 = "0772f5afaaa501465b7039887375350f8d47a1b8" +68603c3d7eb03735fc283582e0edca3245d8eff9 = "e9f1da83697ca69bb2052e06ff89987934a316c8" +754c201c4fdbaf9866fa7d8a1b4f26f6403aba95 = "3c06a2d32030a979535433f643048f5a8b14c9d0" +7f1281317798e80930825e4e9f7a66f3a3401fa2 = "8f3900010854ac8407b5e354a712f9684b44a54d" +835726b1abf25a50e55d132152449306e58128d8 = "2c169dfb8da3ff1b4674cf5f62b170788b30a60c" +b22a471fd81914c097622af9b931aeb7668dcfe7 = "365709e01d9b34e0b6ba9aafe5cc8aa54811ee84" +b92d3f2a0a22d1100b5dcf2d0883e61782bc487c = "5ee8f1b9ce5fcfe410cc8c8f1e061b4f0459edb8" +ccc0811db3f4c29d135cc01f59cef05b7c7513ee = "73276f1f74836df14752448b42773a9826381ff5" +d3d3bf632346824c22cf1f7fca6983fdf6c18cc8 = "4a9253b9a85e5ffe1094bf3228868cacf6c276e9" +da2b074a65c5652df8f2ac09a16a7c6c33c435c7 = "7b36857f8d63db1c8b9b815334bd3aed0c4a725e" +df3d07cf225abad13dae5d089e9f8a117d1073c3 = "91666b9bc19f32a79c5f0d1a12d83bc1e4990ef2" +f6fa76960508dd72502ecb3d4f671b32fcdcfb63 = "7c09c38a8be81658f17e5a20b2b06af8d3bae8d9" + +[60da9cfa-42fa-5d4e-b2f8-76785adb806a] +24f6a9b133e9a10892fae182ebd0e92d06d43181 = "02c1588db35e8665dfe2d04642fac31666982039" +29e76996a621632b998278b87d337ef987e5ed7f = "61f7ba3f5eced4a7b6af4dfcf4033e9b9affb9be" +44617a08e4287b26c095202828bbe3f3cd6aacae = "19a27998e870bc3ca1bbe4a8e1d8c59e5d4847b2" +57c46f97042f2b3431b00713b27cdaae14b1abfe = "06d4677da5666a6cd6daeec533ff87bb527fcde6" +6e49c097021cf7b3c6dfbb7b592ace1e048e1970 = "804480a98d89490186e5f663b5f4588b374f1e89" +b6dd051c7a4ac41ae858758bd4cf94769175367e = "9e37f88093f4fb1034787d47db70b81bffc74482" +c23bdfc89bac830238ae185496a61c8c8d8a53bd = "a39c4e1134aee8f5806f47d72ebaf551a1e69020" +d4bbaa02d524a8ac36eb772d8b51bdce7e941701 = "29f3f06bf8cec4fb06c0ff05c504bd0498aca763" +d8dcfc558d9bd79d8e739a08023d5f39c1da870b = "1c98cd499597315968429d378891ab47b7a9f432" +db3eeb25f1685e92fcefa8549c68f3d71aec0282 = "16748eda67f47f2c9f976f4f1a3f44c788a5fe0d" +e72feed4e5d12d8a32c6244dee270c46f9c89652 = "1756bf49d80f6887609960ecddaabc3920d1f5bd" + +[60ddc479-9b66-56df-82fc-76a74619b69c] +0367e086f5e7989ea11a0279ff66c8e1a0f5739f = "f1d424d735520391f96d275cad23f1d278623477" +16ce5a0ab783bcf0b4d125001ffe524b3f32c192 = "aa2a0e947d6d9c22c990ba7db7bce810ca17d642" +447e818a3e263ea888c5d29a068955447df338f1 = "389a10a486a9a833f9be84f10f7a60d409c99f3d" +50e45898c08bb1242da7a407fc71f1ccc30fc6fd = "a5e255f9bb222f0268269fe50c1901bc7557e74b" +596aa19d8be848dcbec78d08906baccacc103015 = "e877b44e2e40e7e119c8632d85af6b80e2bf0e5c" +5ae83617c34634678feeb0064ebb13f16c795d9c = "71cf3ee9bb8fb26413bd045dc7639eb250bcd04f" +5be00a21c589d6d7d70913287c18c229d33180ae = "7fdddbe732b2765d167da4d313198e16e23694d3" +6362a468af46f42ba114075486f5a68246535b89 = "7c1ad37c7d9bfdabf2dd1565b4372f8b56bcc2ff" +8fba494b1c2e93d52351e8b7185cef69e0f57b13 = "35f59c67a09a29e477d1d2b041efa9b300ebb466" +918d24309220c4403de01362ebc08a0032760e90 = "728476882745ad197c0f41f8d9ea48beb04f2b6f" +cf722a908cd8e3e140d962fec7c5cec717e90e7b = "67c74c915faf50fd13db07e20150d707c9829fbb" +d15b456ba24833cf80c0ac385dad42bca33cc5ae = "bcca98cffe4d4cc1cac752f140781a9f3b9d4919" +e12b1d2cb3fbbba8bc36780df8f68bbaac3162cf = "140a66e3eda79f9b9d3e8d123364c51c9c6626b9" +e2ed248111052998548203da11e665457a087bbc = "2257877b6767eaafcea289de151a86d0cd1b9a16" +fc4608e79aa7f99d1cfaffc9004b9c48c6470b38 = "7acb25d328dbeb29ef98083388bf3343337ce808" + +[60f91f6f-d783-54cb-84f9-544141854719] +2eb362b134b6d474d811dec36dc40ea23191304e = "d1acd240e75d9ad064cc710763f6ee23e7b4b3e9" +5500d2770a4f6fc26ec5d052ff6ab507e3d0c807 = "ce6e3b22230c81cefb51948a461ff2dadebcf179" +59b3b48c62ff08ea20da877f534104d01d9c5966 = "eb089403b778869a8967a46d2a9945b0c57228e8" +5d90492c295a2e95a0c49e81323f305ea2f60d72 = "feb76fbb7d99781d14b4818630f0865af3b40c66" +6296b9f7806f61783cd2bf90fad756fa58722e35 = "853391741757cc36e308b4580754457e20edadc6" +636f080de00a73f516ab447003e7e17a8ea16f70 = "410ad5bc5638679c195d89d3be19b6972641b1dc" +71f680e2005113db8950c7c998d8fbf64d0e30d4 = "4c262093e25df7d6a7326404dbdd0eedfe749414" +820ae86f468157dafae065f714008794784489e9 = "1299ef09bd3e2c9227a878f61c50245433d1fc05" +83d76ecc71f9e9b3b8d71435f70ebfc1155ebb7c = "fb953e25958978124cba46b9fb132f414443512c" +9390e909d0578c73cb2c02ba92748ef55d5a64c4 = "26ff36dd012f574350ffdc81eb24f7f517e9fd34" +962be1a163d7627fe6b7e9d265977aae310d019f = "2cc8bc7c844dd6d2e89c3b98f38f4959b2275a20" +d13d20a255615a8b43e3850fb37b6b8af9a75e90 = "baafb551e004721fff8cfcd2fb71adfa361d8aa3" + +[60fe8c24-c5de-5536-9fc4-eaf503943938] +6562609950ab283ab3a665a4725c253ab717703d = "d256f7775f49abce3947cce7929e98655e953652" +85403cd277a87105956d968534fd3c0993a3dd21 = "fb764c6908fb8215ddcdf77e4b3f1b40f27230fc" +a251c0228f5ed197a98c17b7dce8801b271e18c6 = "38011df73b3d2ff5824730f89d408bbd7b6f6f2f" + +[6112ee07-acf9-5e0f-b108-d242c714bf9f] +223d797ff3c182da4e61c1e292c1868115f1b2fc = "329a0f271ddd38a55bacb981e0a829382fd0470c" +3bf8ff2942a4a84f4ed19c081339dbbce7a09661 = "f9e7adf3a7d1b19424001ea839e890417a37bf73" + +[6133562b-a8e8-5ea3-954b-37642b766dad] +0c6156b25533a54dfce320ffee41bfe0ee22aaa6 = "e10c4fd17c7ee381183718936fb2356090e2cb28" +1fb5c1ac3a209cbc44a742927a44ec985fda7d83 = "6d3e75c18cca9fc94770d6290ebe9926acb0b642" +50d2c6ab6b3fba784fd2a8f6f18c7584dceb6e84 = "329510b543d6cdca3852ae1f69c92583bb4d022b" +e0951ae8ca2504d50e6b515c2fa7df251f6f8c72 = "01b4204e2591c95fa78ec7f54d30033ed4467d58" + +[61744808-ddfa-5f27-97ff-6e42cc95d634] +0d0b17b8f928a01583b0caba9ed64e1c6c4c964c = "a8325316f2016aa48e5b065224a3e4ef0d564236" +2233e3a22cc1c88ebc20bca6e5fb66d72b4f3f9d = "e9e58e82f64820e1f84c033a5ccef4676e803c4a" +2a8556ac9c0823ae354e8018f00744f661d8d028 = "d11967bcf8d55f39d469a6ee3d8aeb2349b6bb23" +66939198def2c599529760fef0ba86f27ec22043 = "960d14eed2a21f86253ef155448481a3407f08d6" +839f85ab012297aa241bf7f4d58becfb110a6fd8 = "9802047c774bf88570aacbd00109291c0681ce7c" +86f2f33c5dd6883dc715ddace035e052549ce181 = "48a3f57052f99501d210f0528b9aa48a8f4b938d" +909df5b22e36e9ea75dedc2a29b556482f4ae040 = "715c9e3247e057877dbf79217c0a52bf970591b3" +91a2d75cae42131348c08c0f5413a12ad588e95e = "7bf76c9b91daf164f5586140088f837804100ea3" +920dc0a7c98ccde364c671af3c3b2ce50ea07f98 = "0726b2b4c934fc95506793c5beeafe6988de8d26" +ad2b0c0e81e05f7cf3c1bbd69ed79b6cde4ae51e = "758cade9d231ab263d1b31158204c24572d2536a" +b0f9b09e294609e45864544729e4f7373a15d2eb = "02e67478bf32626b08f8c3c3b02c0e44ff978f0e" +d2ded777a580aac999fc8d42882127ee584fbfe0 = "a18e90f2a84d556cc0f714776ef12734a9bb1307" +e1ff4a6052343c43b6b11469bef645574ea17fe3 = "c1a8791acd7328303e7b0a2060aeca2c596daef2" + +[61d0e4fa-4e73-5030-88a9-ae4c27b203dd] +5078b5135f51015a31a846964e3eed19d1e82b3f = "3610a5c50f1e6764497a5c6e1a0449af638c5ab4" +61c0008b2089be20e3cf80da00d42568a3eaace7 = "ba1ec3058795a1475656c5fcf34e0227de950049" +717c023f72f50d979a7e1a8b7af05188596e9b45 = "707a38a29ced5db3b078a24276fb30fa33659b3a" +8243617091516ba186563f97a5d1983c08acd471 = "0dc992501c676be05b61be59814f135f7c1db9ce" +85db148fb562078b695ea0c2b382d82911df007d = "de94f78c7872e8c559cf81f733046f3165864664" +9c17be5a5ef1e4f9cdcc69b69e9c972c7e9965aa = "9e14d31b624e309c5afbb4bcabaac3910228f925" +a58c2047be9942b15b96037494b1407cd401c9f8 = "a4ec15b0022e3bcb2f05bbe600605d5e6dac6804" +b314631195a5ab269f2cf2fe4a9e9c70a39b45ff = "06cfa1fe2ce5628a88bffc7e92f615e82ce3794d" +d5330b6aaea9a5bb9d00d64d8991464c1fbc7f6d = "9d38e4352f05be7bcf66f7c35c03a5fd2b7f1e3c" +da741d69803f2aa43b4556cf805adc750b979165 = "7480dc6c133532f98a87896c38e2e6a7254c4ad4" +f29e3513996bab4e4e1bf6a5c708a36aee9cec2c = "9941f0e532c68220ef616ffc8fe9877c34c7469c" + +[61d5e40c-f051-5c04-90a0-b0f47eb95ad5] +48cc2760d9b624d99266cf48953a61433245934f = "4dfe9734fd557606e61cf6b2f6d8e409f4c62051" +4c8c281cc3528a262e74c39b0529607e23cdbaa1 = "01dac348b3803be3f95afb12953aeef9cb6de4a2" + +[61d90e0f-e114-555e-ac52-39dfb47a3ef9] +344844e806b161d0ae9be532b15c6be4be1a2b96 = "49f3c640ab1844005f3e3a3b1b18ddde801409b6" +346562416212224b060040a015cdacc653688216 = "6bfb2dd9e7b170f5bf51cb937b6451b8f92c9b8b" +4b351268718b8d3414412563129125ddbf9cd1c5 = "d0e91ea175d553bfe19fa0c7316dcadc8d514cc6" +63f85f5db1fb7ea78b6f664d00ed8b04d3064e67 = "30c734e7dd07d557b78ee89b1cf28902dd229252" +7220a3f210eab2d9a9466d4c18a2572c67e3d5f2 = "414980497ca8c3bcc2a9a5cdbf4c8f0695d4f7c8" +cf69b8d3449e9cbe1f356f01356ae42ebf7dd375 = "db79ff0bb315ce267e2b8b38aad6632319c59934" +fc698b9f4e82706ad0a73982c68768a15657f138 = "6272c1d57d1bc242a6b9949a0272dbbb006d16b4" + +[6218d12a-5da1-5696-b52f-db25d2ecc6d1] +01d215bb44aeb3f6d560a06c68d93ee66de89dfa = "379a21c5d34a8ce39ca5bd8a55ed43b759f0097b" +13d4687b170a6aa654755b20131c3679ce3abe8a = "83a0a7f996ca4f6b7debfe05dda88c6ec40f86fe" +360c947635655d4f375f2b5e74eecb90421e0662 = "d1276bf872a654576888463b82e9f6f94f86ce30" +5ba08ce9f6dcd6571ea7a084ce17072bf5e4dfef = "70e91a1980e60633cf6255c67b0c448a319456e1" +5d5b56d6bc38eca209cbd5a3593050e998e10876 = "5255ad0288f7cef7089e543aaf902a63fc9fce8c" +78e573c541a63fac98e01909ca82ef0f3d093cc7 = "4cb2899e16b99bab250238a031f1f0b27c8509cb" +7e698b4b3a29d4153540fe386b8138a690de69b3 = "2681c9b6e511048dbd40fdba1f6b5043d915b237" +963ac69959870034ef0caf4fe96f5cef9ce5db87 = "faffd92506df154487f1dfd67c1f65f191824837" +97077063c3680a9249b4e628f8dbe250aca57006 = "a2110b154deb1c9a41d11cc2d316c2867dfbf3d8" +b0bc710b36608ec5c759f6babe9252794a5e3348 = "5adcf326a1122c1cbe594131137a3c90282e9163" +b2bf29bf5f614402cfef8c0aaacbd7bcb2945a88 = "f00c9b4054b1f407d4083cc28e86a2190e28585c" +b756808136870491e47a94c852b4f21b4cb20546 = "5f0bbd120374f7050e0d6bd651485ebb29539f41" +bbdaf04d8681847d8a1287bbebab8db70abb5cb2 = "2af432be75e10587c2d3d7873dba1908331fd22e" +c776da46d0e7de4e43cbaeda2cbb7ab9de4f0e0d = "b738345bc948100801155a9c9ad1aab8fa941d2d" +cff35f2cd664877556b323b2f757455632ce753f = "5d1d6d8f68ac107c5f80dd92c5e1ab37b479de07" +e81999335e23773d9569754e9237c4e9939d19cf = "cff929e379f1fc72f5a555c0da0f7ab18bc86085" +eec7b80d92cdf35a34f1418007a6a6f4901bec8e = "a1a581484066d93c9d0480ac80ba12aea1976df1" +f2c74fa77c8b29a3e8132b0ddc23a6fbbc75cf2b = "ec37d76591395bd7f7d61cdb3c8453b171347b6a" + +[621f4979-c628-5d54-868e-fcf4e3e8185c] +486ce509fa54777ec478ffbb701615502a931022 = "38b2795270122878b5058466f00dec591fb57183" +bf0be1e7aad5517c1424c5d0ec11ef65a636ace2 = "e58fd9607550da1a5541cceae64400797b51aa93" +c1eb41df4fd32982b9e1179139e64d762e576a69 = "e392e5257d029edf0b12172234be6768b77456da" +f9772b0a32e68ada99ab6e67fedd2e89747f380f = "f8a8236a7e8180b6d065559f497e7a62cb01ff3c" + +[623a49c0-6a5e-58c5-849f-3852f4baafd8] +4a30c4905aedbbcc05876c8d068c16970a5d3adf = "f4e9cedc67f4008f89a6b7778a14449fd6c617cd" +53350e96fe0c8978e9dd578e85c180d0aa6fc169 = "4ca6080109b6fc1f2caa985afc54fa60121f36f6" +5bbfc945d2ef3c376ea2447e31c1818b78445f3d = "8e0086e40c05ef3f0216903cf1610e8a8a10b115" +5be3b115dce821e2f5c4ccdb8b146631ef6a42d4 = "0634b25cc05888b44880f1ef3705e10571372f7c" +62b198996a9a81c771cc484f352255c0e52438ac = "702a49b3ea453b92438f8997ab092be7605f2b1b" +71b061cf9df0cb6c679ab1a9545167731d4cc4d8 = "2a9851d48e682e5731833e9669c57e7cd5ab223b" +c2c8203a2f4981d0d9e523498bc8adb6cf9a8b33 = "a871370c7effa7d0a8d5e857f722d55b7860dbc6" +c95ac1558b34ba29fa7931941a6db94c0347c089 = "9b1a625118a77489017794ac5d71de704b4fc352" + +[62445c0a-8b1f-5a78-8e50-569da60f0d5b] +63992016db81717a6b225b55db37e039e0615b14 = "3c1cd5af2ee2f387ac048692c68ff77ed7799adb" + +[6248df61-47b1-58fa-9b7c-c0f1183480ca] +5bcfa0912b98f130004905b96b1dc186d1641899 = "6eba034bbf842dbd7ecc4e16772c73cd41d33467" +99ff21e2fd4281db58e2142f9d313a5f5a8aa92c = "af78e76a89e863fa64e14e6eabc6086fb52f41cf" +d42bb70039681ea20f94acbaaa81080b4f333b85 = "3909155749df8c3fa65b272ed4e52d7b56c3be94" +ef9342c7610f47191a5cc81b86a609fe908ac0d2 = "418c2cdfe4b4080e4e92a8ad5d4f351c6ce4a091" +f9b42d88a215b4f6333c7e6dc929b0e85cc7a235 = "80989cb668aafef51e264fa486b6ee15f080a54d" + +[626554b9-1ddb-594c-aa3c-2596fe9399a5] +130f60c0fab66fa183da1cf65bfbae93f6b66cc4 = "6601aedea3756a578754e24dd10e32b67adaa6cf" +558c7bb474caae1c1843e4e9c5faceefc439fb5b = "91a85b864e3874f508360e9837e9082d2ad3627b" +585ecf34b917a6676864740a0cc5b279f0febf61 = "2ad0e0c1fa519d867056229809ac4c55ffa8bf53" +7aa9143a9fea334cf38800e7e151d879cd17bfb1 = "8063b598f430154211b44024b79e5965459b89a0" +cc75c3f295c4f6cbc76f05a5728ec160d78d0495 = "bdee787d9c212b4d2b75dffac4a5c0e2a21a570f" + +[6267b19e-4913-54ff-aa69-3854904c080e] +4fdaec1667c0b5ac05ee251519f6887a117168f3 = "a044c90e61a6f0436fd6a843d897e3a01d19e20b" +c53892b3f2f1a8e107674e35083c44a8898375e9 = "c23b838b1fecc5346cc5fe5a708b539c0827e950" +c5c7379ea6dd4b7fe5787dce9522f699320544a3 = "fb210d88729f9effb3e1b7418400d5d2dd257a84" + +[626c502c-15b0-58ad-a749-f091afb673ae] +a1b614f6502cff635028cba19df624c0d30e2cf4 = "6139acc54f363ab6956d7b400fc853822a316205" + +[62b36e50-1e62-5d4b-8674-689cbdba93a3] +39c350110965350e077248b770996692ce5393e3 = "9c7c6580d7f53f7feae6fb222bb472a24c046177" +898361c92bed996c06e6368b6cbd002d49254fa4 = "264a285cb221f9f5a3ec3b9a3a66db5925792264" + +[62dc39e5-5d88-5cae-bbc3-a4b2e7a5ebb3] +53a75b24f9e5e3ed48c4a879f45bfc6b7d7a1d58 = "56958a18d4ee566fca9fcae18d779de44ebc527d" + +[62eebf14-49bc-5f46-9df9-f7b7ef379406] +387d53615351c67123ffa10c5d9402baf88c4cf7 = "2f1d3a5521b4b3f77c3411a10c3c4494337bd979" +4592125dc41cf1a19ba92f3127b0c9c790068fea = "990f3c03fc53c8239d7e12948be673417ddb8326" +79dbc6682cd664ac5c35373ca8849a5096fff7b1 = "06b4471e171d8053075a9dd1fa8eaa390c1746f5" +e2a652efab8cff75b489479a9f56cc5279f81663 = "4aebc0346288201ef120a01adbea254ec15033a5" +e7dd063398bc712253961c9b8f0bcb19b72a3f56 = "0db8862d2356651b3faaa36a01285537976eabf1" + +[6303bc30-01ab-52eb-8b10-60e47555a8d1] +9257e5351f5779eb885922bbb1c5abd36348a5ae = "3027ffab6837a97f6c74113cff0a6d52079fb66c" +b2804f4e5aa453973d8a96d0d488c84e29d58b65 = "b35676792cb0e0afd066de1532244fc6ad1d9c91" + +[6310b701-1812-5374-a82f-9f6f2d54a40a] +003ef2292775c965ef24e85d0fb9170e5ad28331 = "936cca8ae80e9a478e78fee7d2a832ce84ecedd7" +1d52680d93782c8fdb80fe07732b06149a44fa26 = "e82a774c4c630c6821b3d6ba0eace6d96c943397" +44c7da775d51e1b021ec76ccae0d4621648b8390 = "0b35fe60880b542f964b6c5e399090322d1a37de" +74902502cecd0f2b98413f63816e78e8c1ac3132 = "94da036e4e40b046611cb8a4d0c4fe44e56aeadb" +9273207980d05b8bdbd736064db837b3b750de46 = "e9e5f3c9cb29bfb2cc20d64720b49e4ca4b46634" +9273ad1bb15c35c1b8620c79f93411a79db72008 = "37806efd65a26b70f00eeb94b09f13c6870fd3ca" +c1d6b12ed5a1c030b9dc9c80ed55e74b59a96bc7 = "d01a86892ad2ed96b457d08215328b0c095eec58" +c30002d493bb58592e9957f28c77b6f8b47f6b4f = "6e66309272da13497cb15ef875d0bb2cb728891a" +ca2b16e44ed6c700e9c76acffeb3dc381324ecc5 = "932caa3c201376454606065a1304bf23be78fd02" +d97c98aad086de0c70960e288bc48b84a5a07b0f = "f6a634fa4bfdeef8e210b175b593033e6f532ba4" +e608e4ea818d00cd029ea0bc5c5b78ce32a6068a = "9ba8a14e88703f7ef4feeb3c9f232028130fbb48" +ef008ae4d1cec972c38bb433532c2a6c3edd5212 = "530db403ca955d7f8cd1536b8947727095321626" + +[639c3291-70d9-5ea2-8c5b-839eba1ee399] +77365344fc73b9b0c7a28da6ee9501edcf5a4491 = "3a5edd31a81f40d11d2146534e814bf9ea4d8f71" +9e1c8526daf4739fc513f77881398412cc22a2c2 = "dcb461b62d8ce23a106c42806d0ac3977e6fc135" +c81a37385d274ab6facdfa46c892fa4b34171ff6 = "f93197d5d1654aa2790d1b109d55efe7563e2e42" +e27621f1d4fbdb9b255967fe0c68839d222ea470 = "67e875dc48829ad6bf49a961b2f447bbb4377dd3" + +[63ab32e2-8cbb-53a7-90e2-97c3cf4a3a0b] +508efb581ec9d82b70129ffd402b8603f6b223d8 = "a5b0718fcca18639a76072fb8249e1b3085f5f95" +83eea27a28607e9871b3858ba4ed1deb0300cfd7 = "816e150b213e79e154a90ef84f781574c181270a" +e7094c113130083016f96f9a6c444b72c2938fb4 = "5a26b50d6303acb3d22b1e58289d3aaff9421169" + +[63bcc5cb-6a41-5765-9feb-b5d792dd5d92] +10a3f9e63191ecc073eb4ecd5e1f3771c5fd3545 = "2c13bd49a4c503a0e7d6d09d5c5ce7149cc44476" +318ae8d2815b27bf0c688b8b4d7566206ce81a63 = "e000304b7b26fe070fc0ceb2a7305411af3f2d39" +332055212d0301dbc13b056298c3541888065cf4 = "a322dd07add1937063adc833d8d4a5f45f567604" +487db9abc324453497353b954ee710fb3668404e = "2b2e834a58faa261da88456eaa3aa6ef25d02802" +62dfa64b98cc672ef28a2fd06f7ad9891b5d6605 = "11dc505640d6bfab41beaf3f62f658e1de7ab61c" +8cd99a7ad128cf27cbe7c08e550a5e35b9bb1195 = "7456b73ea843f2db8621eb14b3d903956c756d41" +aab656909c22df2375b0eb5b3ce9c88601390ee3 = "8faa1cf677ff1d842a1725560c3148bbbac52fc4" +e12d9587bce95f1b59ef3ff86f621c6b65d99fa5 = "657412e64ef96ab96d4d7c2e0713ae6b631e0621" +e45dba650dd6936bd8ddb89c0ea20acb2c713576 = "9bf25f584dbbb10ec2d6164aed9534f35dadf146" +e824c76092f920634556d7d0c06006d2aada8be8 = "cd32b9d3b56f87eec787d30a4be9338c4279137e" +efbb6d052e902723e95fe7cc25a78fed991477dc = "e57be242f017c76af61030ed054b4ff87ad564c9" +f4e46ab283307a8a2bc95f75e4956dcf1d543027 = "26aaab8584c5a98dfb4c88cfaffeb0565f5059fb" + +[6405355b-0ac2-5fba-af84-adbd65488c0e] +0456c9a3eda0212d0ccdbc2e9a6f123af528ef1a = "32e3a875eb3e835e7b6b90175dd0d7f8eb430fc9" +08ec3308d3711a5cca6c0c3f25ebe8bb95138424 = "a76493dec37a69b1f0dce6af87dfa01b597f387e" +0d01505ef99b6048353f2b7d5a60070eb7bfaeaf = "11e99b0f62b2eb40fd813d4a5cee17dd3c972dd9" +1545bf365d24475d374665680e5f5afe5a122d39 = "2f05668a17ec94ab45c5199821f3568e67b5e56e" +1e623f31441fb6fc1519a3f1abbd528b1716457c = "d31fccedfc6776ceb69df35165c428487a6a018d" +51ff40d03b6ecba0bbd24b1c06b257c3813c30ce = "880e8d3957e8ded8e1001d87cb086af60670a3be" +5aa0e0b5c472bcc45c3c8f651147d597325adbaf = "d2ad7d36f06d496239c33b6c10b8abdf757472df" +5dc7e6c057282176e691e0e0fc2370aab1fc6d3c = "5d49c8dcd84848c7d172418132744b501b7bf07d" +5edcd632e4151fcae634ed549ea8d5e1bba77fda = "f121dd2baeadab19951a4da9602500765a6b7199" +707b184522622920ec104ce1eec1c59a3344cff9 = "4cec113be643fc6815b0bb2fd8847cb808664159" +73eb2a17eb7fdef9490a6ec915cd0257d312c4c5 = "3d7a8efb727d10e5c79d6d8a40fadb08ca602de7" +81d9f9270bcc7381ca4a5a4b228f67dc6dfd40c1 = "56b5d5b43a048c79ca5b1626b8551fa3633c9df3" +878f149e26ba24fc8d4d192d4496a576defa3a2a = "b4e98a4d6dc1f479ea07ad944e6693837fdb0a7f" +b605a2c05406f53c88957deb87b14b3e72bba92a = "5e9eea43d07213e55d7615bbe6363154ef19e966" +bc1240b0df6efeb11f3d6afd6ae65b1f0282008f = "ee1a0979e8a7c05ad3baed88b70860df58d55eb5" +bd10d626db31bb01db8d2bdd1fc00d041c28f0bc = "977b68ccfb1be4ec7e4214627aca9e7e1d2e70e6" +d396fe450334655aaaf9abf27e126e5198afad40 = "adb3c8b89153e545d7ea4afb79f92747338d6981" +e1dfe0295fcf6a8d72b4a27591a43f27e9ec313a = "fd4e1d1b203afb33d857282ff68cd6fefabfb4ec" +eb2e7ee4edebdf42770e2a5b0c365ae282f98fed = "9fc23f3fc0772be28be22bd44839b5671d181727" +f47e8c83d00c538c53ecadb3853cab0dac056f45 = "a3e444e67d1e8a3e0678808ee59b5575fa3cb3a0" +fdbd277db938fa4c2cbda4ad1e9e1d9b57ed00ed = "d6f2e8f01a301687827691d85da4c295b72699e4" +fdcdca468436d0d1cf5ed8e194d8e542c09b2fe0 = "eae1fd7d25d73f4d77c52ba3aca2aa758c3cb464" + +[641c9d1b-7ac4-573a-b895-dc361a5cd6fd] +04114f3e8b2e3357f0303b613ebbd9d5ef13ae7a = "9714c8a3ac41b106d58ce6e9b51ccc1becc18df1" + +[641fcd17-68ae-5251-b519-46a2241e90d2] +2e14b7140d984e1a5c6942592effe0fadf850e6a = "8c63279933f5cf9ea2b40ee16f15d11f152becb0" +5bdc1d67d7c08e1032b2cc88e2524f8421267e34 = "ecb55948797a774b7339e3f8955ce6a82c3cac5a" +cf9ca5a8e1b0250c2c0642f5351e9902c5557a2e = "71b9565d9d3717a7521b8f06dbc018f016f9293b" + +[64499a7a-5c06-52f2-abe2-ccb03c286192] +091e31ab28b2bfc6ab9747d78d6325560d877345 = "3843d7600c794cc8ee35056909a6eb6ed7d07d18" +0b30123e0abe5744b6e95055e0bff3ba389b2ccd = "c2fbcac2a0c776247cc6416c49684029f2fe10e5" +15aea7dc1ffbd0a7d7b29b7aaea5aa06a3620349 = "305df6750f48f2f815cbc17592dd912e5a26321b" +274049a1ff289e0af180f7e49de6ffe3223b31c7 = "0c95a740b28c1d27950f5f9c05be02d10101d4c5" +29db8c4454c7e1a0308b664e15195e66177a8642 = "4ef2bc772368751b6d801b4540f90fd2354d93c6" +335725db8e7ab838596aa414de224dc5ee32e1d6 = "fb03ab94c7b5531608a3dc059a9566819fd62b82" +374e459b7d949a5d5c0f949fb8421b85e4a453b1 = "f60073ec11f5554d4369ff3e2f3c7ee222ff3890" +509bca47f39fdd45268cad1a74fe77faf1ca16ec = "506af3174b620929103fdcd940aefc3852f82020" +569269cc1a9cc8505b01f8d3a07e448cf9cbcd16 = "7ab60f6030b04b70d91888476ef19495bf61be51" +72e7b86c1aa2d572437a7ba271ea19c9ec2a40b5 = "e1ec115baa6e6f993883eebdf307a9986eba98e2" +7f18be1988edcb29738e8e1a10ae368d4f7be168 = "c016c2d0f1b6a7c8123d5c9b4c5204b4ea357267" +834ea4946bc96942a796181d16b17af27b2d4f49 = "61239856abd0e37741cd892ecd6da6511c531df4" +88bb0b3fc624755e784acfa09ad95e71b94e36ef = "8656fa8f2fdde48e539d70bbeb7303d01453f5a1" +978fe83eb74264c929c19de5a593f4139aae2077 = "b925f6abc7399743518472a778c272712ba35e4b" +9e65e79bfd23c2eaaa1e310a0e7cccd0251456ed = "2d69807af74689734a725ea50f18c9ba73306ec9" +a822184abd5a032e13139fd328d3a05621275bfd = "31479c9823eb51d4bae2de948a3b030632f720aa" +aac07d411f8fce3f02eafb46f20294d015f78c54 = "1770c7736c09a621f7f1b5e35fd2d4ac3b96c2b7" +b22db692e70b4846082af3fd217e869e2530302b = "880b64bc7c73fba2788de452f4a40a7aca411804" +c50f0f04de3b7f17fd4ff1bfc55edde8ca4d7c17 = "314425949e326b9e7ce0d298b357fc391f3fd6ea" +d0416ebe01c7c74aa936bdcff344478d617573f3 = "507ea84602c51658aa13368c5416f35f07276b49" +e361c83d199c05d746b8dcce01c7095e709968b3 = "d181803ec743ab7599e774cde92c5afe2d6e3bb5" +ec4fa370abaa068ba2ca2ba28548d8f06d6bdb4d = "30d53834f2f75feea41a7dd97624660abdd5ee6c" +f0e032139a9924dde1e8ff0fa3f6c0962015d000 = "65155dac5b5dadf2403fd3d2849c04db966c6f32" + +[6465ae08-de3a-5dbe-bda8-3920f6a01ab7] +03a13ffa5de53931b88f7f67c54ceaa5b6be1c1a = "279500bb21ecd047750f2f411aabd798b809f26c" +338ed058a7665a14248e184f3d0c547ca2790cd2 = "fc34a68d6bcca2864c679ac31447b48c846dd15d" +bf446f24c27de33ad58170b539621e2983472004 = "89ce8cfc052074e9615444c89312f95255e74e70" +da38079d0a773ac5102bcff689bab26655bd3522 = "3b89ddc2ddeb6fc850297c77281615301dde5b74" + +[64db5801-a3ae-51a7-b7d2-a0a5f0813e47] +3e58206a61e9d37334768f6911615338309d2804 = "15f751017002d02a554960991a7645e9bb46155c" +4147cc5886d478922075b94cbd18b8e879a9ffd7 = "875d5769ccfe612192f72738b33ae7c19e8d71e7" +5eac72db750724b36a03aef394c5f86d2282b2be = "c9ed3e5d8f9e48c43b38b7f4ed3682812d66387e" +f647423eb36e29f077d12727290b64f97a4ead9a = "555b6579623738d892a9fae5d31074b0c2c876f7" + +[64f4ea9f-85ff-53fb-a2d4-f98b64876896] +1a953cb588a38f5eda90d1fe3e235d85538518c8 = "531f5b11a481845bfd06f881ca7e929518e7772d" +a3f2145efe34eaad277aee400c4abb6141f9bfe0 = "0912a08e5844a409551e6be615a1ba48e46455a7" +b740a5ecea9f15cb7cba5bb17319b8d2914b1ded = "6dfb97a6896be348c64bd9d8d4ce6fa0f3ffee96" +d60779a85e2c62d110e6feea7b409cc156ff6669 = "dff2d1878caa40c4581bc36482559106060478db" +da38c5393dd7b39a2a3d7655ccc034138ca42782 = "bd01ed199a7ad2b4fc3a1d330c1b6a5d4fed88f5" + +[65043f5e-d494-54fb-85cf-e13b6ec0f31a] +10f39be469d151e6c32a774dd5c99690f17bad31 = "4f44eb087f395eb97cdc3b1247e16ecfb00a98df" +61b6fc4cabc1cc24208729251e51184658de4c9f = "35fc12c3427a2f96677b9193e6c22a15d5e2c958" +a25ef44c93cbb67ffa2e9276ccf76792bd11e6c1 = "8a4d7948bb03494227149b49b6d8917e3c32b88a" + +[652a1917-b8e5-5d9b-be38-bbf27e56fe44] +a87c9a0ea7fd6bf473b658f8a740177df1ea614c = "bb98e9681609c0a64b89a0ee8628eb3cf6351165" + +[65419b8a-9a19-58ae-bde3-3f7e1d1bf8ef] +05c1427a5d15dba3c7ea08853dc18c761b3e1f7b = "36b67c1ebaffeb84229e9a117b66507542b5188f" +13f34eb8967ed9fc798a2164e0125ca6d245cbe1 = "414e0859207a9368508a9b7eaa21ddefcb3343aa" +2869db79fad0e3848f0dd750dfd4973b44d60322 = "1ddcea789293e2497729e60e9c17a8efba3d1959" +56c9808fe7a239a4bc2986f22a361d579852ee75 = "a97b80fe723bac0b912f6c0fe9329a89cbc7c0a0" +9c32700cd14ddc0e6e5bbf21213cf28ad65751f7 = "3d3c25117e7bf37ae6145f35c52c44c704fb6395" +a37407ff3f9190871884265501b333855ba2ae13 = "7db5ae86788048b0e7ae308d9f2ae923d9d23949" +a4a7f65dee883e3b122461ffcb7224fe6aaafebb = "c74fe6c860780ca0922d785f14d173a370a08371" +bc52097cb9270bb48ce905a84eb1b90536b7529d = "cd6316a1fbfc6aad744957ce91afc7193694fda0" +bf8ebabc602850406c63775a8657152e80985811 = "417ec28a0327f64c5c227bd24875f4134c37f915" +e0e8d048ffe6b1541ceab4ac15d8216302110944 = "a263b460860b90748763387bb56c54d8410f05ca" + +[65888b18-ceab-5e60-b2b9-181511a3b968] +0f8374cc3b132f95057f3fdb25f2c620019d4268 = "9b14c472b0afc7f847e3d61ed480c26850a279f6" +19eabb49f1f510e9e6ecd44837ffa88c5587b359 = "990982ce040b8ffb41535756cffa23a41f1d3bc4" +1daf245de537cb9670f52a0034df103e007c30c2 = "60d253b522e952c74bd530a1ea686a50765355d6" +32f77c307749548ba8481d1c61b3454786cd7c62 = "c96beb0d4966df298fdfab5a81c4c17739637320" +35750f1ffc89a295c986ea17b4aa4e8e9c3dad96 = "cbb72381309746c8cb93b88b4fc161bad8e90bd4" +37d659d5bf0d95719604749b5469040b7c4de7bb = "021bc195e6c772beeec1976143e4f95ea4f79ca3" +3b9900ec99d13636fccc08776f1f818f52c1e6a6 = "2b96955206c09eea5591630fd7582d7273d1ca33" +3c5c91a02a3fe3739630e7991758c98dc8487454 = "78b673e6c52a82b67f28aab65155202512e07ed2" +525fb3e8eb6ab246afc52d6cde248cdd0db4d6ad = "037c6b65a02707bf36cf944f6d0821207157cc1b" +55b59f34b80c17ffccd69a24eca4ffb5e43c1aa0 = "5aebc5edff283da57114e1c9b77244c39771f864" +576950d89396474e94c0bf357ddc7a155b957f17 = "5028e222e76ff88e4ecedfe66891001755c193e3" +57f45fb5e1aaf296860aedf01b791a0c541ba341 = "ba6a48b90d3c6c39fe861a4b284f3d7ed1372286" +6ab2fa609ab6fd10a9495770e64ecc6380061851 = "f418bc3e2d39be0847ff05e3705a219b51d9c1ae" +70d4ee1cc81cc62d723f0752d66201ebdc3ac3da = "4fa82b7fb6e430ca33877c0533052074ebd7ed22" +78dea74b0698842d890202d8982632cc9d486520 = "6f8f40bf1822c5c6cca1959ef1ae43733eb574d9" +796d9082ef7a0cc578990bc610a60f876a4c046b = "4cdd652da69cba5e04c7d831b42edaebb3af58b1" +7eb3c1b1bcdd2b638fc522c8cbfc412731385d03 = "e9b7608997c3dd852720c9a5f5320171593d0b01" +9050773406e7e368b02c52099209cbf99f38e94b = "9e977de537c9a8a57ae9cf1b479d04af4ff4a493" +91687d6c00f60ced3fc126879ad434fc1a13c535 = "134c3d4f6ada0429e224a41347fddf8b45a58f52" +a5fa1c0224b32d8dc7dc5cb5455b5c1cef6d0069 = "3d45e9aafa08e26c5d51876cba26a8a829d20216" +b0bee6c0ae22b33f647a682d62cf00b9eb66de78 = "90b88de569a2cdfac67c404eb4b3b6d3c40da4d8" +b700fa3eeff29006878778043ad02e71fe15247e = "c5c9d62f032c650a19ef1e706016380d90b2e330" +c2566c7ad9ee482763692a8135340f1dba9f5058 = "018e0f6f5f696cefa1ae29613fb4064ac2d0956a" +cdbf4625593f36fe073dcc017ce64400d5812782 = "590d1fa2a36a1942fc30f3318ed163e517ef6d5e" +d4574c0b0f3c36bf81f244ddd04639a0a54cb064 = "9d518c95cbd462937a52d0b70dbb26736332035e" +e77b02c4a0ab5f280ee17d8a7fac3461fec69fc8 = "62d5d3c5cd048b09d1918632f2dea0d64f8f2f8b" +e84b50328b6e3139f5300f023472ecf43e2b8242 = "fd8ea4e4a41bd8c4fbc6128414b17f6e612fd65c" +fcb7e72ed923283496095dc78696e620b0754893 = "5c056f7dade3e194fd10b83dbb202896c7ffe4a9" +fde3076884f6894eafcd7b2b8f0aab94dbc893a5 = "826261cac303cd1b3b32cfc7fec1b12d8d804fe9" + +[65d46eb8-70e9-5a30-bf48-2afa3a021b8f] +3610cd8c482d92c5a2c12833359f09ae75ec20a8 = "32dabcf49d3f97f09dd22c7aebdc4b87f482f975" +85a71d80b9f14eda79f9215054543216a469d1a0 = "f0d35f894ae7f74b6c895e00ff906845f81b681f" + +[65e68595-3a03-5ff5-a6a2-f05fa774f32e] +7193495c33ebdc1066a43b3dacc62edae174eacc = "db1ecd18261b8026d151c39762c584529a09ac79" + +[663a7486-cb36-511b-a19d-713bb74d65c9] +d515b91ee3ed79e368ba41a302767c94e314386e = "54ae57d43e849ca4ad1942620667763d043e5af5" + +[667455a9-e2ce-5579-9412-b964f529a492] +0e6c1444dcda40a75343432875eb85d4e1e75dda = "051d94e28b0bcccd1891119f47c4e861660ba7c7" +2f5561cdc9a39f01c1db9241a263f22ac5544523 = "4eb20718ea08d2bfea9936c6f8759b5c03f2eb77" +38cb376498dacbd2f0dd0279326dcd3053a95355 = "12e6771883254a02ed647b053b0c5b746bb0c4bb" +3a57cb6fb52c58a5ad0e3277408f7eabf99943f6 = "576f1d7d6540779ae4c0d228dac4cebc47185b0e" +49031b030467db59866a93ffdd5edc0435e5a05e = "603cc749cad21d5557a92fdef42072aa34deb8f3" +5a9244850920d20ce180d71f9715ec84a2bdcdf7 = "384cd55abe751908aa1a1d9506a1ee32e741ba94" +749fb9e60926e82eced46731772fdc28c882cba6 = "592e352c0feb87f9ec2761cf3adf760b2bf77dcf" +8dfbdaa990927020c203e5689dc59a1b2a1de44c = "d14932c549b888e081a9e462e3af56038d7f25b0" +90ccf9977eca52440a7acc41a2d47a572782bda4 = "87d719a532cb04ede61797f58268a0fdbccd1e9e" +93c4dc0ca1e499b6ac4071ecfe999527379bc8da = "98e868b3b035ba814b6b5eb7c9795ef9d485acb4" +a35f31eae117f7e29f4179fb9485052aeb4e6c61 = "9811b2b48055bb62e76860d19a15cd03f03ee0b2" +aac74165d6348e51ca60fc0694c519e803d83135 = "3152cc974ccf955e5224c2f71b94909ef6966d29" +ad8c06b75e6ed5d12a38880b4b6529b3f922cdd9 = "da384b35c249ed355ab440a89161f0514149cb5a" +af215d9d144fb9296b86f85925ee3cd1068e0c34 = "791dd383955591755c214f359aa806ae1a53a9a2" +c2343c7c66c4566a530377ed8258961fb6b2da5c = "0161276e74ec802bae29e79e98069910b444186e" +e100a64c53c9505526e1f7aade2ba10b44e4e17d = "4c564a831a00c33a11d8f07ece7961a923593f30" +e30d4ebb823a255bdb31ad2af35171cb6ca0a4aa = "68ea6c3b46ed0651e34cb838930e2ff2b6d1b978" +eb0b5655eb1d463260e7e8ac2c0d9c2bff082821 = "6b9f060ea520573e05f782a4d0cf8b287a90b05e" + +[66763231-799b-5fff-8662-389acfc33a85] +024b8cd2cfffa18d82d406c80805951cf27b23db = "0f4316912fdaeaa1318949dc31a27db8a106e63d" +04dd228b02b1bd8d52b48f0d31d432fff148bab2 = "563056f3f4532cb977dbf6597ac9107a7cf3029f" +07a1d2ab40a140a9e5195e0fe6b75e6d0614b3e3 = "f5304afcbb52e54022c952ad30e632229b859971" +357904105452ea8a92dc4dca3417a704ad8d494b = "a22da27b8dd273725c6912416fb66327a0f72321" +88966d5609593df77c2ec055e9679d0209e98aad = "5d239ac0faf90ae871f8ef9c0edf44b12f14db54" +ab441e6749bf7bcb61704ee49028c1cf4af658f3 = "45d98e6219ef0f7497bdeeab6e7503110400ac25" +d177a6a764966b5117459a4867ce7c72f96e5c2a = "2569f121809dfe50a7a77ef0488a0338037e0c18" +de9785a21d50a6814259bf2f394166d0debf99ad = "c429eeca0f5bd461d654ed3396514401f385659b" +f3a3e6eb5048f3ffd79dba64e83ec00d09ffa176 = "7ace5e2dc56dab649c6a7db87d0c5660d7c8b27e" + +[66a33bbf-0c2b-5fc8-a008-9da813334f0a] +0378f0cab10728176edce6c78d280cd8819dd497 = "55e78a36608faa909a3b86ecf2f71abe030b0550" +272c7ec61bd6a2ebb40e263f32786e91f82d3a00 = "1edc6d5f3ef17ad84472abcec3a12dbc79acfde5" +294b34042db210ec0db160571a1da368c55abd89 = "8c049a109e1b3ce1cfa746ea832ecb5bbb6ed225" +32f57fa45f30fadc9da7db38e011271b138bb765 = "a50b26f2700836b2bd42fd866080468a3cebd8c9" +54cafaccd1b3aa0c6f028864c733ee673bc3d238 = "13876a71e280befc7e78b32e61b3994a69a0ffb5" +7b2cddd38b0f16b186b47641f2e4279179c269ff = "59b24ea0b337711cbe35181a3768fc1a799c8362" +82da39178f506f4267416f04c5b36c91d97f4d41 = "2b384c8a093cbf7f1016e3d593474f75bf7d635d" +899413ad7e34d038c3d53ecd957c797cd6748b71 = "1fffd5cf4f40d7913e5cd14e54dfdd134d06ccb0" +8f7a7f206fc9bb931dca55c3c8861fd16204e3e2 = "d7561a5a5ffacf009039991aa5a35d4582732f0e" +90ce402b0126fe7c0ceeed186ee0ad1f103fcdb7 = "6ad6d6d11cf65d62d992e6fe86f8be8b0578ccf3" +a486084590937764f1db4ec5217c5ccaf283d33a = "7460551f213c2a3c58dcf174ec4570110e6235c0" + +[66b72792-1abf-55ab-8064-6e9051317175] +06e60609e06007fb040d0d5f1a3e78ef4442b476 = "9532cc8ce95b9573468d5fb5972b5467b72b345d" +5b3735adc7cc7192e8a60d8138f6da87ed931691 = "e4753694d9ca7bf23917c9a871365e8828470bb0" +5fd30b5489fe709a9b527cc13bc397ee4062954e = "bfd63f550284d6cd761d11fe995ac772eb508a10" +86e275ad07daf37bfe22870b4fe2a5bf1498308d = "3472e04e7e05ea6e32fad8aee674c6d03a0900e2" +c574920570aaf7966287d9dc98f016c1db67e08c = "16a8b644cdcce5a9747795fa24cb448fe65dc170" +f8e56c99a91d62e0a9a786b9e7352337dd46ae5b = "cf99b1f9a19c661057c6326952206b5f4672d910" + +[66c2ecab-30cc-5a23-8f30-3e4a67030fa0] +33683d376c165e1bdd3f3f93be3379f5a8d26eb8 = "445aeafdeef550c4f3785c498c10cf9514d35729" + +[66fc600b-dfda-50eb-8b99-91cfa97b1301] +096433a3b90ca044ac0141b387472c4339e0d7da = "31c01ecfef17123f13de89d3876b5c12ea958589" +0f30e235138e2e70171c3bfec889e2f0461f4f74 = "c22bcabc50e0fd0d7c3171f8396f42caec5b3cad" +2d98ea61b894531d73c549de52bfaad07a6b5711 = "ee9f96f682be0b2e63d8407faf1899f3f64fae62" +60f53efa72e0349a9f3f2d666415239693fcd34c = "5dbfd0a8dd9e43915bbb23c0d5a37fa694ba2b09" +6a19bd6d3e915a3ae8bf743a65ea8b396bb283ea = "ddb6acce888f902170c7a9eb05bc6d01ab3604ed" +8e3d72e57b5d9ccf060230360d8e4e04fecb3439 = "bf098e8430a613c22476202c35886022cab31922" +9379b9c18db5cb57164c37f4bed9b1647bb23396 = "27aa475fb3d1d58c78359d04689815d36c1b0e4b" +bc26b6d82b70546c76c9aae62f353533150e4ffd = "f79d096288075506cd7df930b5ee5aab5f8da830" +be2e865da7c35970927c58444c99b5d360236136 = "caa7d935e0542aaf51a38a9cd008d5710ab4cf77" +cdd0fd498b2292985a6b57ddd37b152cd9d58945 = "8a0bdd7d26d758384424c89f9e1853b2f6e47dd8" +d56e4ad51f4459c97deeea7666361600a1e6065e = "3f837f504b11ae8e80404ebb5046ecc405185e73" +ea0f7b8250c50ccbda2e0daabedd621a2672eebb = "ca8321000849a678751da7989a567c5c9a77491d" + +[670cb119-9e6b-5dfa-81ab-9d3c314fe86c] +5d05071c1ab3875af5b4805f535e924f697ba70d = "f13d0f45c43d9bc147fd62dc34274255a2e0123e" +89e96b75da371f55cfc66376364ee9456dc7697f = "f4483e6410f03a2bff99c5ab448f5e78f5fa13f7" +9371df4613efa9da5faf07103d3480158fed6285 = "451e454e1294a3a0d6999e0b8686a7c3122a2c13" +991f3b4848b754936485abf18c59ecae4b37efa2 = "76362bb6668a771b28fbc9c42875508a7c332d7f" +a6b6076a165218448415ba4456260447880de514 = "a63d49ba979c7d88257885d5cf97ee313f76cc16" +c22a431879f082e693d669c9b35180e717967ede = "b13f0316ebbacd04d932701640069ba928c4fbd2" +e4f6385e1d5fe8c2af4a3356d75bbcaf7a6e159a = "71ec59affdb1a27baf8d43a1e40d79df02ad0445" +f29f5c533a0d3f2642217720ac1f033274920f93 = "35d54caac0f732c99e9afe77014953a8dd2cb9d1" +f8987beac02d6429b8fd3042dc63cd0d39892233 = "38e2e12e4e7fb8b170498d4bc6afa17f0b8d1189" + +[670d9266-7b14-5e98-a133-3b8c27ea9ed4] +6caa6d52e913cf5481468525b023946653a095f8 = "6d2e45507b6480790740c54203336bc668bb1f60" +a3d6d888d293038c79102335ac73b10b8ada9f83 = "24deee39bc98d34d27c072d11a99f565f16c0e16" +d2529e82218df68275ee8ed09010a2aa3c36009b = "5d97ca112dcde3a00bb568a576b645dd8162d29a" +e58da0dfe9a2e8269decde8b7e2e918e5478a3b0 = "4ec1c96b91fb62f8a065c9410917e96f2d3f7b4f" +ffec076ae8ed389c6281f9c0210cdd651fea8534 = "80e8c53d7dc7e5e4522b895be7f54f7af0311c6c" + +[6710c13c-97f1-543f-91c5-74e8f7d95b35] +0c27dd85875a8c0cdbc9a4dd11ffbf72493ecbc2 = "1fda2bb6d15f764d2e2be97ffe4b9b80c4c235e3" +20cc0cca21f64626c1ae949e830a371f769d69e2 = "0cc6055fdf303c37667ad55fb8cde7350fee2c69" +42616b245e28f52a5f5207ec65cc2fdce6a595a7 = "5fe890f21f10f6b7db13e6e385ffaa15c8b0f1eb" +558a217d5af39ab5b6df2b006fb52d4c00e5041c = "5ec5c1aa74f7499fd2c2bf654cc9cb8fda70ddba" +71a99dab9aab8811eeb0d6f84de6be1397233ac8 = "67e513d38270acddd0b1246db3bab96b5c470aeb" +823ea162c829402b0aaf7a7d9e4145f170fdd79b = "30507ac0a510206c835cf4eb8d68253252594fef" +bbc541956f4be98e9ce9a37418ae7597cf8949a4 = "4cb884531bd1434acecdfb1a10c9e4ed9b761bcd" +c049c0d75654c32e0d9f704451698f471efea68d = "a904abda4751fbea3e09a096a7fb736fcd6c0fe2" +e0530fe89378cf3f137f00d6bc576d5ef3122f75 = "b1f6c0733860dc6d8d2fc30db8a8b9571e20ce88" +f7aaac8a664adcb00c9cd9a0673273f297937255 = "603d0e1c865a42fca33ebca4584fb5c8c73804b4" + +[6735fb99-e7a2-5b86-aa6b-3fb73ebb43ff] +211db353a828fdf6a0747289c23261723c181223 = "573fb4f5cc0c8e0c4ebdd6e18bef412800363f08" +43d2cf07701ef3fc60d861e6f48eed5a6e8c4d46 = "e570ffca2d6d95d1f87b189cafc15de3cc92a278" +5192450c0e84b3497a7fb30f94c8372bd740bd0c = "2b809e8e55b141096c007b471c44b3d64cf62b73" +6dfee04a4b98f976e6313fa6b4c0415f1239dd3e = "0223b705ea9c848cceac7424be185075ad7f92d1" +9d0600da2577cbf83c8c5635ada58e6220029842 = "4b22275409bace87d0de90f3216ccc2059bba0b2" + +[67417a49-6d77-5db2-98c7-c13144130cd2] +36ca323ae972ff17c5625d25a3cbce50b05897ba = "0288f278a5f58c28c67ad1cf55dce950069709b7" +5a890a9a6350dc10ec648d944b58c353e0677441 = "10635f8e913bb8cae73158624150f2a152ce6562" +7495c38e610d6a8f64b5500cbddee7f55186b46f = "30398e8a299ac6b946173207838fe1f412869fa7" + +[67491407-f73d-577b-9b50-8179a7c68029] +013216a54fca5d994a73fd65050aa1cc8f01c6c5 = "fe6b1937b20c73dea724db08143f54349b543b55" +11e90f1e69f9440aed71da8bc075d72893244d86 = "5fd77ae2541252a17567d6711a30dc4436bcd140" +183a8e988f851cd4a08bfc0c6d849fc990aa9e50 = "cc82c57201a11e09b4dbc290e3b2a662117fafba" +216823c2fb9cb832486065ab072eb95196cdb680 = "336ad4dd5363a018d53ec3c2238a6828324860d2" +271e11e241903d3e74d5d48ce6b8ee40f1322827 = "24ca2252464de9c7207d1857c977157211aa1cce" +27dffa52398609c86eab262b77c8d3aa8a74a794 = "c56476a807563bda2db42cbb9b8b05479e1dcd7c" +5927362fd421c8d4fc9b95d04e3435d8e526b3c9 = "d48b8b5c4a4b5dc9dc5cae6e2c8b911c56f0c1fc" +85e4d27705c262bcf40acbbd8d3ecdb0c1f72ee8 = "fc6a95ae67961d1ead3ac7b0b92cc1d6d9fcc4be" +8608ea0307c40061e6dce6adb37ebf5afe479781 = "99fa2f4bc00407ab0f0adc462ad1925dec3d79f9" +91a0545c3ccb4ea33ac22817354ff0d9d51bdbdd = "eec56d77065664330062692e74674bad0e948e34" +f4139981de46d6171c1f539ba246f70162124a70 = "928e1cdf947d4823539af597176174cd5c2c4e63" + +[67920dd8-b58e-52a8-8622-53c4cffbe346] +09b996a7e8ac8c05e07465568273cc963afafefd = "c4084f9dfc08cf99ccb28b64a5a357ad14bdf0f0" +0bc38d0327c5806185b955f37e14e53f3ada22e8 = "14018e0b2d0a53540527a7d47bd28866a584987e" +0c8a83466ff1758be993e4f48000bc58360ab17a = "d0c25838f87797dea5f1b859df0f25b43d6ed68f" +3a252462d6f3e409166893d02e184b8c45b53ece = "dc2ac3fe82cecd148814cdf61af069747ce3c97d" +516b42bb8c659b7a32cf64d77cd64bf096e9f08f = "a1c71ba1a1931ebac60284d1d70513b14397a2d6" +6465707e35897ad91ffa06b8a7a01b6eb3a580b3 = "5123f62e79ce46739b9fdf8f4b74b24cc9bc7e23" +68b726d2f2869e8bdf32ca872db987f59adaaeef = "94e965d63fc2260c4d89c26a5cd11d1920fd4622" +856f88f8fd157225e2a230676edda9a10d93b575 = "0d2a3cfed787db1aa39b6de3f22908066abab595" +8db86ed8f2ba174f072e6bcb8809dd45fafd9152 = "eac79d41ccd57ca51fe93ea058531d4deeb48974" +988ab63b61a3a186b762f312af27d66f9f40e701 = "0d69cfb537883575adbe6383e8820bdf92032731" +aad1670b508152b58b56e82c649a3c04fa0b56d5 = "8e34829e6ba155ebb65100fc35b63725e011daa7" +afe73f0bd3c60910dc0cf4f58a851a4689aee793 = "b31431d8d8e1b2baad5e9cf7a8710abd79ef293d" +cccfcace2951c6feb050425345de64e07a779642 = "4cf5af65c25c00e22f6741309312d5ad6a682f5e" +df364a8ac38a8132cc2c9d47a1dcd1ba9f25cea6 = "71971a118841ef07d5421208014fdd78308bf317" +e181c519c32742421d4061078240a38e6fe1777c = "4054b0403294f3f6f3ca1ab6a20f03cdbe72849e" + +[67a87ac7-5706-59f5-9189-3507e0192122] +18f0cee2e550bddfad48df7e04c1ff4f6015b1a4 = "a54fa11eca6f9bf934a06abf8f9f632d78dc90b9" +99ac59c936dd873481f28ee440e45b3477bd4aea = "5e7e1369c1385be7e2a77a87f7e69ee0ca05459a" +c1212692a03fb091452c785995d2df481c04134a = "2abdae94cbfbf3a2a33955abc7df0ac150b8df48" +c2fdb53925599e05411dbee9648ddb03785c0091 = "a6d85b754c0063c7b8bd986641450aad80878ce0" +c5587a9b47a824028439baf9e9b2638492aaba39 = "fdd12ad013d138f887f7a51e60c502b3b2723499" +f75de3299f9865f08c78892fd8172e47fa5aa230 = "da2461998fa92b2ffc6afa99a0004d38b755fc19" + +[67c07d97-cdcb-5c2c-af73-a7f9c32a568b] +125dd728ffff04d79753d6696299cd8194b72e3d = "6f26f22b291ba1310c6ebeecd01fc5deddcabdfe" +1f90c01750e1b1c89ca8e99af71f1ba0cb094772 = "2f347aeae39d445b8d9cae6b6e559601b2cce659" +61344294f3f3c49d3c8e2d17e2691bbbd2a7558a = "5fb03cf6ccc9d69b5a6b6e2d61b318a035fda35e" +7a42d8e4ebb490f6f6ec645d6677289331610595 = "1f32b5bd3f33031655a53439920b541b10cb10c1" +7c834712218b1a33e270011967672e8b553c9aca = "ddfb583cff6a5554600dd32aac309957a16f0eeb" +85b99163533edb1a7c7ac354d085aa6f2dbbe0de = "736a630d2719f78c85d688963d1d26675a77e457" +8ee444caa71d14b8555f34e912d79800eacd2477 = "a21eecab9c594bb0937a9383852fbe45cb8363b4" +a57c2fe19ff62bfe4954ce7bd9b0bd1b2765be22 = "94ee4ce6d3158ea5c93839efcd80ea1541865df3" +c4bff57835858494bdaaa774484d7252c34df8eb = "7562a5dc3c6dab821549931bb8090d5b67ac4878" +c8efcb0604bf35171f085ff9799b790a8074727c = "1cfcbcb216a26a7debcf42d1d9f4400691276ff1" +deb2741f62a5a07ebad08cd17353369ee4cb1ee0 = "2260c47a1ae4d83d2600570c9d4465a106039e2b" +e94b45eebabab8d0ab209370bcc985477689b789 = "e5d670083c3c51e7e2c688c962026844ae754459" + +[67f030dc-aa52-5f83-ac42-e4024659685c] +337a8d05fb3ac4005452afc68cc9c62a85574462 = "67aabdcd1c1a0e4bbede892bbe8a8205b26684e3" + +[67fdca37-c731-5d95-9a19-4e7673210fab] +a71e61b690d00c7149d83d900679b0de849a667c = "a05d0ca9aab6328877f7cae16d1a70286fb1c142" + +[682c06a0-de6a-54ab-a142-c8b1cf79cde6] +0b191d9403efeb5939af6a4b094b1e96ca97fd8e = "cdee331eb6175b1581fbace52cffcffff9e1a94d" +0b6e9ec6adf0513b72ff70a818cdda251281c868 = "9d67a4bc01eef6adda1cf19d7589c26ca3a7787b" +0e3647317c75f1e35b54a407bc6f9501ca765006 = "575249e2603c85d4b9a01a125b3d473ebf90a418" +0f038d90934897bd8c49d661dd4a74b1b9b171d2 = "233696060d4745f713c64000f4289f0ba1a91169" +1082e64fef296c7ea5dd474e4d0be7a6145705c2 = "17f5365eaf10538fffe3a750c4d149757c9a6a5d" +138956c9d12652d64b683488afbcbfe461c42811 = "aed557a8c7ed0a78599236cde9a87266d0821351" +14eecd91bccabed3074d92759e17ed38c8cf0ac0 = "79c7131058ecbcf8705b4978a1b685c8006aeece" +1ec27df85fca2e024900f032475cadd982f8f3a6 = "ba18ec05955d391df42286c444bc29c5833a1f15" +20e99bc7dc329915b79d138e10800afa81afe7e4 = "bc9c85aa6f01343bf94ac717e3ffbb531ba1db4c" +21dcd64409f249efe2254b385616237f00a35b31 = "a36e86ecb21c889fd4274501244b0fa77ca15f82" +23b7f1537b0f600bc4a3a9b871e464609486c8e9 = "c8626443ebf8ff434016d653c62672e63e6cdf99" +28f07802e0eeea3bdaa58c64e253756d64698b41 = "7fccf4ba7b67ad9da2ccc23bdd7efb34f981d577" +313ee68d0a2bd013b16f5a6fa1d4cf1220ae92fc = "24485f02391c91a6cdb2c8e5c168b151f966992f" +3150cff25b0891b1f164781c0a3a23700a43901c = "c90254c52e33b7e70fd02113f283bf833debaeae" +34dcf31adc4c7850476421cb237b41c5b0e4e99e = "edba11286fc5e184ea188e9806a1698d329a7b98" +36f011da3aa5c2651be8fbab25685dbd52fe9231 = "14d997ada5e0796d853f4a124b7d86dfd9df0c49" +38f4d37479fe227fd00a56a085ecd3a63456a36c = "a5bfa4d9ed4bac90f0416d332d47240da4cb424e" +565fa448a345c62591c007916255ffd4c235fc09 = "34b4039f9dcaf57f637b3fca25970c11cd9a3fca" +5d0ca41c99118c5b5b46bf113a27f14e038f7bad = "dc471b486e24be943435a5cca8a8d767ddb91056" +600a40bb11f9c82d5a4590cb61de99460dd0f17b = "baf0857c78beed63618fae6db518ed15e6d1704b" +6578984ae909c293031aa617244a113406d88694 = "dd96d5aaf89c53012e0d62ffcfcf72eab8998bfa" +6df70b0542a2610ad738156cae344fede25d4ccb = "11a244542760086a7b536c9c1337d7dc0539bdb7" +6ea48684d47faebf97077c78bd923744b4987225 = "c29b1bfc2c5e92a604c483789a2684a78933f5b9" +6ef716aed7d5c5a7c1a8d5fd43f659961d019d14 = "4051816c19329314014b6115d7b3f67e8716a8e6" +71763c297d524746136030891d9a6333d3c262a1 = "37e607406de22d8532cae80b2158340c5405b241" +72ada7aa839b4d1a341db83ce1315903e02d9193 = "1f60857ebab24972b766d68b96b67ffc372c4413" +7853e4a6c4a9ddc3f651876c0c101aeecd6a77c5 = "3b0655e6364f36d3e3137151a72c84cc68417654" +7e5027766e604721a3e6f94a9b747f4ccd0360e7 = "054139e7f048659f3dd7508675bf1e2ee211f9f5" +8d5ad9b10e6c520149b24b37d187bdcd59ad81e0 = "e2ce00cb74fcb9f42ad6a54f34d1c5246b3528d7" +9ec3c1a873cb962d684ec375e32630c71ebdef66 = "a9ae2b777421eb424c0250ad2b1aea747e437e7e" +a145d09fd507c4f590d003606ae68a98649b111f = "b2e64b77f0a842887cd3a38792ab82e1f99cb7cb" +a36ec39a21dd5198f788fe8b1fbcb7ed058769b0 = "ad8bf3fa0798fe51c869b9715876d4d29af2ffca" +aad2e2576ade268561cf164887ac26cbd06b0ea0 = "9003b4622ec7e5533b9a2a1b36fff8ee0edbd3a9" +b5599252cff9d7c8e5bd8122b22a1a625ac0420b = "d1968e54b94ce4041ce875f858e30a728fe573b5" +b701ad129d56527ae532e62213413c805dfc46ff = "fd005e38078d445480e4d5d3bfbfeb1eb26540b5" +bec34de0e2da0de58a2fcd681ee32244edb551e0 = "70012f53b022185d9060ab57beabe42fde1e637c" +bed382e706147bdd180e48525f1ff00b5b81d5a8 = "6bb4cae55b1b54d872049fdf44491636f018c881" +c325b6bce06023c92ce4c5d4f4db8316928eeb79 = "71315404d905313be430891eee2cb84073556599" +c3e5515019e76e0ff000b26050ed5b116aa7f3cd = "77699b5cc09b169c47ff870b8d73c874d1b7bb43" +cbd9169ab3aef3e91b3ec60cfbb78c0156351841 = "b7ba3ea25b45709805fe8a3f778406a1f6d63be0" +cfaaac36e827a64568fc417d1cd264151aa10418 = "66962fcf4b6345519f3abfc88c1879cb01b4fac6" +d00b5ca7d4820fb5ada94107e47e17b3762865e6 = "1551e3c81a25cc282d28f7e8c7c5621f4b15256a" +d3f95de4c67fc7f18898b8de8eb3a83fc459f4f4 = "e4b57d438f523a2ad5f9f3510598f00961d4bc08" +d4b1a2cc4fa42cec06aec87ee9e34ada76b97ddb = "8a3d1512eade6fe7ecb94137cda710362b178008" +e6aef7e5f73d358cf0ca4796d73d1a2a07bb6667 = "02982f2f65751052d642ca81f5bbccbfe59cffb1" +eb65870a0842754a3030f709385ff0aee26d9693 = "0ad636ba8a4bdfc123d741f07407cbbee7a494d3" +efaafb7fb9d97376540691f6db96913e7a64f80d = "9ff93cf8f52d0917cf772f692a0fab252a8d6703" +f0b8423c2a29724fca7346315a3653eb469da286 = "a2d5fb4580c350fc1e5cad4bb992eaa1d74024ab" +f28c6e78a9b2af6c87a22cb03e7c3fbc6e98c7bc = "7891307cbb0362e0cbc31e07458411eaa7607619" +fb33673c338a59ba3f00b0653b262468d60a58d0 = "4ed73879ce18c2fc5278ece87dc3d41a99fd96db" + +[682df890-35be-576f-97d0-3d8c8b33a550] +076736fd395103011c9a73e4588aac78e97beb41 = "f88e75becb6b2b8b7d885e6f1e2f2d87db497c8d" +08756431f041274dbb66059c52ae6158feea4f44 = "034a34ff4cbf7d7dc165ced44c063f37d9bbc9ba" +129f3054354d8c0df3699fa18567b3ae0aa59fe8 = "8600ecd8ce4ba4b1be51637b6ff7b4c440ecee03" +12a014cf4efe898048a2250a1b3c57f906dba430 = "a91bf3216d6e9a64f5827f3898b8885af0fb892a" +24bae56138d4e04910316844a35d6a98b8251383 = "01a97bb71b4f9626876c8ddd2fc07970a102747a" +2e5431136ab6acd8208f272e372967f60b5b7a5e = "3ca28143cae3d1179ff70e1b3de78de77b738691" +55fb329b5c87e2f74217dd9c6a3b550c857646f1 = "560cf88e65b46f03f58d196c121adf27368694c2" +577a3aafad0ab643b138782153ef4e9a101fc31a = "9f4e2da926d259c0ad387c60d8fd0783857cb63b" +64223061c67187c16235f4b8bd96129e6832a239 = "c049a88c8971285ed20bd9f1a54b41be3d7d9a21" +741b11ea136e5053f17b49889a57abb7b5bfbecd = "8ecd32d2e4f28f2a172aca97b11aa0523996b159" +87a111cf24263280298b22989d28d604724b456f = "72e1e467b02383e1cf62f38f29505c7be36ca1cc" +a8ebb7ed0868ba8e159d975af1a1c56f8bada77b = "7f0f7dd1a583d0bd9874c131548f89cb1a4a4e32" +b6a18cae9b043455994501e64aa5898c263deb94 = "0189cc8ecbc10325bacfd4e68f0d25c06eaf66f6" +b91efd406949fb9a0a944ff7b59f799b3f441b2a = "5562cf9e28f70f51bbbba7859dce5e95d13ceaaf" +c7ba6a63909faee647a75e1ca8d79a42fd498d21 = "f6502686d783ca58efa439a839d72da4f29f6151" +cf3ee0fa92dc93fdee09f7ee320fa6222a429da5 = "e2a780cb04ec52f940ab7ba757f022c34d1bb71c" +d281bf6e44ede838c7a79589a23bdba9e0b2dfbb = "c0a09adb91e810244084635090550cc93b578a92" +d58a4b2ed802cb367b7275ec177a4844978d5ee4 = "997f6c565d433dd0daaddd05c6abf771ab3a91f1" +dbc3b0a78229887bf851547f20e6e28a9fc072ab = "b670db3bca01b69193ecd2cd2a52447a6b499e4d" +dfa7217432cff8e4541381cca3a83b37ac4341d6 = "07f85e2ec087bd5c5e22d1c86d50e351d000d397" +f5e8157b26aaf37bd25dacbec1a694d93c2d5395 = "f89902fcfc7e19b82d1637f8a926a757f2d19d1f" +f8633bee1baf85a591d29078c2d802e28be37b1c = "b61f705fd7a121bd94edc4c23e01ba46bf0eec1c" +f8c72aafff6ed413ca3ec3afb932090f0efa9a1c = "2bcdfff89d57f2a87ffe3b97810299639a721784" +fbcf3ebf97c97b159ac2877118d29edb8c6a19b3 = "7f286121f5738c86d20c77281ecfe87987109628" +fcda5485b13c328e7dfeded604dd1d1e6249874a = "5f7591fa3101439cf6664cab033f4b2b02e18450" + +[6837a093-145e-5c9b-b5ad-3b557e31aa31] +437c4ba79b6e34886e7731e0b1971fcfbf88afd9 = "378f8c8230358867f024672ad9d71632b92cf709" + +[6899632a-1081-549c-8d71-752c8a25a7ba] +18561070558721b4d48e268b8f8cbb77e6789e3c = "d0e2bb123a68792e2144bbf48db96730b8434807" +9d5a683393f12283e0c10a6a2b18cb47a4ad01d2 = "6bf814648421697214881893bbed97329c1e1e3a" +e736aa3c2a1581d2f706d533f94e3bd64461c937 = "cc76cda69a70212534af161d1141eaeaab13cf62" +ec94960e39b0a18f6b9d21a2e59dd4a14bfac0f6 = "5f260e832e9c85f8407cbaf08803e6c85530db81" +f35034569e82ef9503a3e6e616b31c5fe618dd2b = "519993e4b125622d99cc3533e1bb498164e7debb" + +[68ab7a74-b89c-58c4-90e0-a4e17bbb69bc] +eb4d6008a92d09f7a1a5483031a0c12cac91f059 = "783ae699ab43dfbe0f77095de4584a6a06d14301" + +[68ae48f1-ae9d-5916-b516-bab924cb4d98] +13ad6b6bf3ae305ab11382fe1b79869c4983a62c = "5067a21fa204e1f5e59e3961eedef59f5afb17a7" +a109d1bcc828b3d50a47b0e8457d44547497e315 = "c31f7317093dd0bac7ea87b99d75930bf3b1516d" +e059c70791a661a433954c2afe741f8444246e5e = "5c9af3dbf1c8d5befd2950044f573603e12d4e68" + +[68bca01c-a25f-59c7-acad-f27471d8d71b] +8b437def16fac616790f56385ba54ab1b7ebe640 = "9a7388f9f013d47695586557cd03fb2987a7a29e" + +[68d949f0-74a3-5070-a3ac-aa8145b4bcaa] +131d3bbdab0b1e2e25448e43e3b65078cd69fafa = "b1296c2aa5ed84cc67bc79a56fd9540a4b3f1f97" +4951eb45082f58565566e68bdff94e1800f8f7e5 = "899928305c026b22df59ce8e32a0e2bba3d1316d" + +[69024149-9ee7-55f6-a4c4-859efe599b68] +2631c9ad2f3313a4085885e385cd869f0cb38431 = "6eb438544b325e53489029081ff81664eb551ff5" +3fc5d8c349a7e507c31af5f1fc1f8aed4608bd24 = "cba532a2c2327117e0bec1d07eef58ff147ccd4c" +b289eea73ce4d6611e2f70fb20800646e256d756 = "2de45e776eed962b03c779b9e6c5115ac7ba5f08" +c42ee6f09fecde0088992bf0305e8d9190d06b2b = "4e175e8401714b0e1e518cba31d04404154c98ab" +e6fd1bfa601a66207afc3061c479678548dd227f = "5bb5e8df9aebbd789d8d91a605511d557dc8797a" +f0ecb57fc31bcfa9113b0622205b48b25e809206 = "f52d906bda1a9366aa8cf21bfbd57766a48f997f" + +[6912e4f1-e036-58b0-9138-08d1e6358ea9] +401b7a9dc3c9cf5943ffd72726f4379e3276c83f = "01bb185f95ce3e3372df3d576c7c2e429ef69a99" +8c2696c0233ebf7f3716eb942be2188420aedfde = "9525fefa0ee894310df7f6fae0580d8d04a80e78" +ae4d161adff8e1b1b611c8c9e8d3a9b50564ca80 = "0129a1c8b588d682064f12a31193bc4098577fef" +ddb6d41ef01d8c025b155903d8da1bda04b84e0b = "8a2ef199f715ce2b5a694cece4f026db80242654" +fa72b59dec93a08fdb19d9ff68a5fbbf91487d98 = "d2a8cfe92cf35f8aadbb50543e7ca3d7c7494461" + +[69470c01-11c1-51f0-b04c-03fbc3a7dfa2] +648b5296a030d7b4dcce3e091c71c2cb7deb24c2 = "086b3d24eefaf7bf992f999afda0cf9b31f7e2fd" +8a9e91fbf40c00e3dc16cea42f23ddc3c4438ed5 = "f22ccc0a6b1d542fc054b93ce1e68a19a7bda149" +a47b875339c28a21509e19201384b0aa96aab04c = "21417305430e2592c4145d350715656c67786b09" +d0355042294c7513a8d2c47a6708b84223af2d08 = "ef983ed5e952b11d430686fe470e6369b172a079" + +[6966f90c-3441-5cda-97d6-80813c921d68] +5aff52d830acd6c1ea179ddac88f0a30119a73b9 = "de02451b34540b5bc703d945c056bbc5c72461aa" +dc38058ffd8093ff92b0cc2d76ad5e497c77fc26 = "219a16111d571235bf8868f1a8b7621ccde38c4c" +e1b6132c7dbb3bee0185ac27fb5cffae9627a41b = "06d1589bfdce4a1c2b8d96cf8d6f78926c005d82" + +[69680d3f-cf1d-5315-a21f-791b8226f004] +8b9541d699a06c8592e7000565926e3be74bc8df = "e49a680db9f2d1d91ed9243ac81f387ab32cdb1b" + +[6983957e-075b-59ef-813b-23d35ee22189] +3deca2c8c90c4239eb9d3a9630a65466c1f983ef = "91436001c70361e085b28643eff7ef44aa0f6fd2" +5682f7ca50e76ab94b3e06a364f44287f9c9e3c8 = "fed3ff593d4ceba8624912669732026c9f414827" +65d2644bdb40e3c35b83c3f307b614e961777a09 = "cf747ad22a080422b61f2f12c6700cd9070fe2b2" +86a463db2b2ba1d18fd2436cfd6a41497199a6cf = "16d0f7155ba578b2c7b8f484c1582eb6ed478f9e" +c3e7347f5e350f0ba6942eb4c2018a158610ca3b = "8daa198e1395654eb48a1c182008ab996068f905" + +[699a6c99-e7fa-54fc-8d76-47d257e15c1d] +0ca18aae24815955ec1660cb08797b8d27560149 = "97ed81960f56afb05f09df67a85efaf9bc898969" +149262d35fb0222ae39bcc36fce3b3748941d979 = "5c89e87b3873c92c4e3182ba5160cc8201c34d91" +176c8ae9ea16fe8655d47d3d55b1c01fb3bdcd3c = "defe5960c201907d03017f6006bbbb76867ece1d" +21a075bded7cf5cf49e5102d02c1dd13cc1ed995 = "cecbf9c5a3b78e245ce5acedbe527e63b4781115" +41df840aa37039d358b14b618812b9456bfc567f = "945d78cf584d3d40b5a5f7d8efe1eaa4c60eb124" +6457c9af7b791dcaaac1e1539f7dc27347e98cb7 = "873210c0f9ee25c6d1ffe73ec240cc5273ce5aa7" +e2c5572557a5f4b995ce6c29547e4589a2d4d536 = "7c2698df7766d50f5bf6169f5948a1fe58266db5" +f00aac7d2202ad888828b45fc23eab236885a8f9 = "49a51898dc9cacc87094512fd688d9906d98c34d" + +[69b57d04-7ff9-594c-9ff5-2d4f09e78bb5] +6eb2417596ed258b43ac97cf38194bd1c9b75c43 = "86a789d8b1b9cb9f249c229f8b3b6661a7d51be2" + +[6a31a4e8-6e70-5a2d-b005-bc2d500d80a5] +564068ff7d941c6ebfa768e96961dbba9f4327f2 = "f3d7d61b966ac9c705a57eb1cec33ad11edeb37f" +74d8cfeab29b5ed63d471a40fbaed0e993f4776c = "aee4f54ed56ff12d9eb550c4fe0781b434225af8" +8163115dd4b33c378cc3c3a7a442589dac1c8570 = "a6d3e13dd8a003ed5251688541aa4d50672b7c12" +89e734809884d4ae91751105c41ee412c7554ff8 = "04a4ab3f12ec41b5e57c4fda02ead0eebefd3031" +acbfe50e548cd8bee4bc6afca6e11a15a09a1d8b = "b79ea1b034751938bd02d19483a9ab88714c94db" +d0505ce2332d6573f1a8bc735d22e0e8e7a60729 = "059334624508001ae6a356bf219f23323ef81950" +e7b839146ae18a1cfe8327e9304ebfc622a83408 = "fc861db37d9e65c02a8aa437681931b655023a83" +f6ae7272689189c420c89cd2b89a7737e22658a6 = "b1cba3ffc2141d33377a39f12add8af280bba8f5" + +[6a3955dd-da59-5b1f-98d4-e7296123deb5] +06624f0aaa1a6f6199b8cc5924cb8e062f003b93 = "6885d510b400ad5b0be63e0b5cd5e0ef2317eb5e" +2e3156ddf983cffec121a6fb491942a4fc89e4b3 = "b697ea5ca6f967b7ec25d540d0d86cfb315827bd" +533edd83a0b50baaa89afcc34e1e50bc9e760340 = "b2a17f9d0b556ba7ddc9f0a9ad6daaff9abf6787" +58a392c8450486eaba0b81f45baca020824cea5a = "c6fcba06384fbacf33243301233d9194700f7b6e" +7105d384f1329a7d7fc80c573c605eb90da3073d = "65cc33c06d0c6c2dab6c8797e5e96fd978965d2d" +80f366c5a4c9038de19a814b12aa74258fa82e26 = "dfef004567ccf58ccd81d3038ed324805036c812" +8e1541ee19c611ef98a168ec35739c9bb6de722f = "9bd17d1fffc056129d318c3e4d9725e1b36e17e2" +adc2ffc10900e9cdad21a032cd443981661fb4db = "15ef8a9d27a04b03895b78d2756affed42290066" +eb9752d8453fcc7cbc033f5714ee88e90d1fdda8 = "13bd6a10185aaddced2c94314b03b4198c96a16f" +f9195cc14f24dc5bcb3d45adb1608a7d7d103018 = "79534a8619afc5539e5b5de6091c459c79e2386b" +fbc621cabc48ef608ef26f77dc7cd8b2ea16e092 = "69207337e26bc1de4b076aed77dec3dfd0c31d43" + +[6a8e3230-34bb-5a86-b9da-9f7447a06da5] +2c7e1a266c001db7121cb526632e52a3dae7872d = "bec2474b1b35603cb40d4cfefce2282d305af20e" +5815aa65f6d9919a9a0dc7000bc04b286713cb2e = "c46ffcb65676e2297db4f9e53c6a5bcf7b8b08dd" + +[6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2] +02a016bb235ec614ce4cb3aa4005085980eb27c9 = "d397d64c432a095d6d8a3ded512c1b9581208a1b" +1b47082b60a3bc048235ca6c9ad2a3b4d9a93da7 = "d9f5253cd7547e889253546c2390b5620676a9e0" +21b5152065e9bb74e8b1cd811fed840bbc28e593 = "03a48e93d201753ec834c89604e75c0a3ddff27a" +3ca992225fa26798d3bc49c26fba5408acf8d44d = "712db92f4a085408160b9ce467e1eda37393b685" +3dfd6c6bc3a7c5f01df67627bb5f3ed9af132253 = "9371331c686f34260121b2c4bfd9f37f0ef67d65" +9025f11c589bcd54666f33091463d655fb45f5cd = "5a55d5167db091bf3cf0db2747b23772d8b588d3" +a8de01c06fce5f7a4bdc079f73e1184714a90004 = "9681c4b042b3f603d7254cb1f5c8936e89cd414f" +be0fc1afa64fa4715ae48193ed636a04650e5975 = "2ed74c9eacfba9099d722d368457785a088750eb" +c3bd132b34f013594032f9823b2dcf9d4c3549d9 = "8a0c34b5d424b96c4b661d90ff143b05546b1aaf" +d8dbdd959d2e70cca8942aad30a9ab803f871253 = "de4561dac8667c4793d090bddaa44a12f0ce23b7" +f6c73fd43c220ffc4c2571a377fb05cf375124cb = "1fbb83f59c9dd12e2f70066cde76f5ab1c92cd8e" + +[6aa54777-d00a-57a2-a775-234c624c12d3] +5aa4817ecd992bbe498e3a35e2e86041b2b1957a = "ef082e522496ee56927ed73cb9a8f078a6248d91" +b992c6cb1afde0072a123adb564a5a82d2cacece = "93da271d6bf54c7fe1611b0fac2c1c11341e1391" + +[6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea] +0b48b5f34bb5d68dcb0134afb539eaa74eef0bb8 = "aaf39bfe079dd70cdab3b203d6869095cba0f90b" +10ab42c8cf1b999d0f0c8259fe2c0aa8fd39f6ef = "76f46cb46305762bb76727bf3c7cfac05f8cfc3d" +1c1b36244f84228101720080c390724d7c3568ba = "22f5ddfd4619cc9289ce65614134c8618b1ed98e" +1db3c5a1a66d2c40958122eb18e63af12d907aa8 = "d85f9c91c8401b2a4c3ed33dc076642e35569abc" +28a50e41dd132856691c5b8360b29cb498299003 = "8ad405a211be0619e9e26814bd74a4588871045a" +330a40c832680c1f41076deaccef1f6f9f26aece = "82e9114538b481ce71a6031953cef6086ef22ac3" +3a7d69453be74f9cd50e631ebb0cc93777a1b917 = "245b0c27fc234fe7234004bac1152352de730b7f" +5d9794fedf32b9d67a9f44ce1f4a367e6f453df0 = "12122f98acbf06614849ec1cc126150bfaf73911" +79fa3caf8e77f7d5bdb680f328fe6dd8e5b1d809 = "e1bea896aa5f212983580920a79973ce4d063980" +909689b3db0521bcac203d19a1669d1cd05d44cb = "b0abee100ac6d1ad5719988085f20c6a50cddf29" +ace985d7bfbf5fcb0d7f8cda4de24921b54f2ad7 = "f1d186dc6edde00ac5f25d5cd056cd28e0acff26" +d2eedd7565a8ca97e42bb4dd2915dab8d7d5e60c = "855d2099791dcf956c25626974140befa6ac74b7" +d4f0c20a4db83f84782daf617ef0944ce3673301 = "aa1e24b07ecabfa7b1265f8f66c970fa637dcc35" +de86b7d311a0d46f4531d92bbbc57fa8ee73a08f = "aa6f0a54423b1ab5d3712db8c9f589387be29f5c" +e00fcc12ab4414e82d3fd29221475b6ec721f52f = "a181ca26e7ab82e7ce9d890ff77b11b3e6c34d9b" +fa77209cd0151ff2964dc4318ccbeb3ceef3f255 = "32667e06be1cd4b4c4040c4dbe128ced8cbaeba9" + +[6ab79980-e975-5b4d-94a5-286c17c01634] +7d7cdf9728efaca6c185494d6308d176f8dbd6e8 = "8dc77badb4a73114127a36b1e7437fc492c71263" +d04f7e5838d83a787e8e76d602e315f206c7a644 = "924f0a65eba2ae36be40ccda23f4219e571ffa5d" +fe97a56189aeeadc8603d4fc3e2b9a23922c53c9 = "b42465ff820bd299094cf3f455d1eb10f943fb2c" + +[6ac74813-4b46-53a4-afec-0b5dc9d7885c] +903b751806ebc109f91812338f58641580a9240b = "6654abd9a0f712f63821cb49aeb314205b3b5584" + +[6ad78b0d-7908-5af5-80e0-e129aafa571f] +174971e1b478e50e2219bd08cadb7803088f7daf = "81b8fd56e138df3c41ba49dcc789721e2d9c9b5b" +c184725cb6fd24a8664bcbf1cac3c5f54e475e25 = "7182ee282e93157d76ae6fb26aaf1c2e5be379c1" + +[6b1494d1-c0e4-5e11-970b-cb64accc6d0e] +2f68180ba9095f054fa63199ae8ea31ca93f9e22 = "075e602e77f78a93126aa2e4e08ad7b3fa1e6706" +55dbe1673794cec3c18ac8715b2351cef9a347f0 = "37436bddd53c58d8acbfef9cbcbe74e35120a74d" +7196977f8f45e9936c57bfa8962c20fe312a7634 = "a229202d95101807fd14c0e8dd052169f877fa82" + +[6b32d12a-ade9-56b9-afe9-2f8a1d6b3202] +76c12abfefdb14d6e5fbd2619978e2348ca1af1e = "aa707cd5a3b9b8b312e7508f9236ee0eb5c0e7b3" + +[6b39b394-51ab-5f42-8807-6242bab2b4c2] +52bc25f44233dd30233ac5db9b006af54c7764a7 = "3e764557c8f6ddb3928753e9c12888725cb88bed" +75f9083519bedff000ad6214b095e0ccbbb72e9c = "5de8e88e8d626f1a2df0c2d9754dcd3aa397f44c" +dfe9bd437fefdea78bf39c931b40c73d5c54a931 = "9c2fe8b8a938d27aa284e9e377e16ee53d1f82eb" +e45386a73ddda71beef25b99168adebd9abc1bac = "f9c5ec0fe3117b68993ac5de4cba356a70e43bb8" + +[6b406822-ad4d-5bb4-8744-4e708c04a79a] +f56a03fd1278ae39518558deadab514843b4e04b = "7726d0c8594932a598df1b32bdd7d32493f3b8d5" + +[6b41bb28-078c-51e7-8ac9-1ee9ff7bb43d] +0f6b0a751895d7f1983d04a47df33cae7b378e4b = "c8e8479d837c83d3df9fd0064e4f46793504579e" +212e374a8a32d807db3eb2d36132726e2d113b2b = "fe7c1352307cdece33a5fa9e2b755fc67335175b" + +[6b44d3db-2bc5-5ac3-b70f-26aa69b1b11b] +4730d0d13a7f6db8cddf1db4d6154ed8e01bd1f5 = "2908754fb88a7b2efc007f432cf97c14ef5b5751" + +[6b575520-c5cf-58b6-834d-e7984b04da6f] +0e2cb059de4146cc7c65128d35a1d40af74bb514 = "fa34c02153b0ed9d4dc67bc16544c672accf7d26" +116af8cddb57ad86ece96b52436b7e40aa8e5b12 = "28f5673a1fd3e4aad33a0765b6650ed49af763ce" +32255c07f10b91c6d0af5087d99b939c077c58ee = "580017c60ab54c6512b3ec982fe6d1ffd201abab" +62bcc4a89c3bd52ebbbd6ecf959140f243d5b389 = "5184ccc315ed171a8b0ddd58f136561b0d2d84bc" +93f60594ccf198d83a52eccc1cac129ac39e6308 = "38e2e18c3f981dc89306576b82f6d29a78ee41ce" +eaf2ae8a5ff2529a7d2e381632ae11eec50811fc = "3be9efad25f1269d8cca6fbba46a0620938fcc0d" + +[6b7e669e-aaf0-5406-86a4-2fba62af78eb] +a3292a748c58300d8ed92ce6cae4a5b0bb53b31e = "b3b8780c2c2874db0135a2101b0eba5c2375482d" +ef1c292da107847d9bc518c72250d04e7ed83a29 = "9def7b86aa9024c91a586ea5f1dba61370d14c09" + +[6b90eaca-7ca7-5d1d-b675-a9023a889a1d] +532623004dd5b27b7290f11b18d678b818ac4e2f = "5f78ec424857bdc896f7617277e83803000d293b" +dcb88540b5b9a952aa61c04cc075a8b863bebe72 = "ac87854b5efa375a23221eabd3b1de2f895e17b8" + +[6bac03b7-bcd8-55bf-9a08-86b9b673b6cc] +00283dab4e442a3b0174c0bb20baa9b33965f847 = "c544580bf0b5022036e5b47ca0b01bd2a8907adb" +64b8f614bbdc7fe5ef377434d17e6425521849cf = "94b94ca97a41df89ae3f21668785349d04dc2192" + +[6bad288e-da03-53aa-9310-20a249ff84f6] +0ef6ca7dea1713cc79427d9f507e8aa93afc46bc = "c2cce37f2c4ddcc7e017467bf804466b65522383" +f034d66c090a890731f6ec68dfad9d884ebc7512 = "928eddc3ebaa97101992e84eb8daca5b335791a0" + +[6c2355df-edca-54ec-9fef-f41e3964091e] +b6ed0811286ef5b31f48c1eedc4f49a8e06854d5 = "a3bad50e5f20aeede5444963cc83ddca9bbfec62" +fe33a571b03cacf4d31c2395bc9b329da2448fd2 = "65c055e4643cefc3ff56cf36a1b06eef723e9905" + +[6c391c72-fb7b-5838-ba82-7cfb1bcfecbf] +1c774ed5ad0f5f4b6ea9dd863610c2b5ab6260fa = "e5e489cf9be01eb968a6e3efeb3ceb516c61f295" + +[6c575b1c-77cb-5640-a5dc-a54116c90507] +34fab5e837ff97cd8a55dbc1087a888688df3edc = "7a75b923c9a16ae07e08d6baaf8ea06670227533" +55c0590384d06760fd51efa2c201a6a4ee34b507 = "d155e5f0d1cb08dd2d2037433857df6d925b1ca7" +8f4738ed5e4311d48d02ab3844ffb45c8fe05632 = "9b72a1967ee7a7f4cef5285e6abe477d996e753e" +b54c981f729f8b697e63708aa399b231bdb83bca = "44fe517c1ba57f98fbf8b39a84056bbead704fee" +be856dd5ecc824055062660878e22375985c3f66 = "2e35a01364bd598ecd347d88d8a9c45f5da7dd33" +e2a051ccac7786972060209b71d88d416aa5ab4c = "e2d3a48ab31ac642d40b10b7a7c6095d64e17694" + +[6c721016-9dae-5d90-abf6-67daaccb2332] +0053a3029451815e8f6632ae8848c30e5ef42364 = "7794e3bcb18674c91296d938cf0ad9e352f2a308" +63e03e98f542c088e66736900eec9a7486bdc4a5 = "4db07b5d78917e2573edfe46a51f4fb0e767c23c" +708fffc34b463236700a475f133bbe4b4fafd4c8 = "41051258e3e697ad3b679c9de5bd6910cd87911a" +9dce9819022523f4ea5d59252965e620e4f586cf = "c1cd22d599ca1f25b0cae14bc54617984ed986f1" +bbabcf08e43e55ec438b6db10e7e3dac21026a6a = "8cfc66ba98e0dd70152460cc8ba7da6b17e1cee8" +c012095ce530be65a5c5b6535e399d08139e63f4 = "a84b63f1a59e1002d2ddfff49396d5ce9ba46b05" +cf26f07d4ecfcdfaccab9b2f0715e98957867d97 = "df7c5eb2e5b47f80effb437db342ce03843cd7e8" + +[6cc4b21d-cec8-58d5-a373-5cd579ce5971] +39849d753c04a0546bb9f9469930f544dd8c65c1 = "05844570107d7ada6d0e3fe7b2ffdb1d0aa6df58" + +[6cc8125e-a04b-5e90-9cbf-894ba9b8047f] +2f436ccb2786a6359022b476cf1d122d89bcf252 = "03a072add3172688755f4737663efc20b11e85fd" +3df35777964a5eff7c15d9c4ccc48927c6621963 = "65e9c7f648386e743ef70dee713886598a9cdfb2" +8f2406ca33598a36b93edf4acb7108bb312daf04 = "ce2d808c77487baed4ad7c543d480118233d5da6" +cc2ebbf9ccc5c02e1d040baadc8dd78aef5db534 = "ec1884d11d890f01657b13e364c329b828ed89dd" +d6e5b94a63ec70cedba0b6b1f358bf21f8602ef9 = "0850bacc6f610cf2d65224fb7922353b27aab93b" +eef4684fd710c7fc3b5ea571731044b99e74a255 = "ba2fe98ef9277cfa52dae2c61bfc973ecf97bd3a" + +[6cf23378-2c47-544c-b0c3-6efefe57ca11] +0b2ce8552ed065c79fbd7ec67c5e12ae98c5cd87 = "576fc96275a882dd303f29d2417290317d3da89f" +22c1e8ad6e8dd7819c4dd04f921d15d90ef86c27 = "7c2399f2cc6891172d7e8ae324753f1e0733e40f" +2abbdb438f945dcca7fa33320b485b1a2b949a01 = "8f0e93174d257694dbe18951a7cbb308a48750d5" +62353c8861ad97c76b7561398614579f91c17501 = "05018eefdaa2247ab00297e419e624b0e15f7bb3" +6f9077ab8e9912bbade15b40c9c78c298c26e8f0 = "c7c35e05945bd1b151f9f5907f22dbfad0a74125" +b4ab96a39a4b24abc324e36fda79510d2cd1d4de = "405ab62b76bf35cee65ad8ef8330bdd1551bce1d" +bf03a93a05f3b185988d5f0e48e2eec7eb7341f7 = "ba77a3c55ae16b81c88c4aafd59976893d17fa58" +e3347771c5bf9bc52ffee9ae886aff1edcdaa40d = "aafeb688f590bd78aa3a53b99595a237dbd8af35" +f6a07ecd11988f391c7eacccdcf44876b28cc88a = "5eae0bb843cb80269439c54389e8267d5fe7c2af" +fff901bfee9c98d7f28289fd794085ff036b5ef5 = "7d5bf78f1a7a663b0dccb09432bb13b5c6c35ecd" + +[6d106ca5-e8e8-5252-aaf4-9897e4edbf5a] +0917261c3ea96330c123e2014880f2f980954017 = "3864ee41627459eedfe829d8b1ea022d3bf62cc2" +0d9bbf77c28e9ca89ce95bf42a70039122527a99 = "6dfd76ab162587d6927dc32e74a750e5ecb9e913" +40fc4cb4898c05c463091738f3d71520a64d591d = "9a417c12dbb427312c4da7da6ffa11f709c30f5d" +5cd21c4d430d9093acb1dc1bb391c19e0a7625a9 = "0a7ff9298e4a183d91650d88392b9c7199e25f80" +65c9ee022a6988aa1abc054d9ad71a3e6d17c922 = "43827e29d6aca74cf04d7e90f2a6c78540cf28b0" +87be0c9f791bd04c77a7d91cfbaddb66371de5da = "83a171180237f249b25d02975c8492552f5dd468" +a5fc40efe6a1f9f8983a2067b6395b6f0b01cc8d = "aba1a436059fa1a44efbe02178cacbc8b27daca6" +af85debb0e9a630442e59721b1acb024f9d78074 = "0eaf0bd1f33b12037d0c17e4c20640441db1ae96" +b89b4fe9d63356aeef26b3666f3f0b8dc5bd9837 = "81249e09d911fd167897060d16ddac0266253a54" +bcaf3248c0a0cbf6fadca7331b83546e0c7107d6 = "000064a1f39c087b135e7f79c226e94754f40f75" +c1a5a312012b99a00f1d11f490b5c0467cc1bec4 = "4538678ac92c665173fad1bdc3163f0edb84c8e9" +c729adeff5566d0a451d63b8217979dea8e7c717 = "f054bdfc6ee8c2a4f2907bfeacaa958eb454e56a" +e1e58a3abc3904d74fa4cbb100fb0bcb2904fa72 = "77713079ecb25b3b7efc4ac586bac0c7932aa238" +f795afc22bca4098a8d50e90c5c9a0e89b3e4bc1 = "b0c104a5a39081ff06718c9e8ddf9b9391f02155" +fdefd0523034f008af9fc1bea4e8f6465b78f298 = "be366a39dc1567f3cf2b104f6e7329e4e8febdce" +ffe31259e7caa9362a7e4402d1816cef7ba71e4c = "4d11433b7fd2fd376aabc504e51ad9257d7f82e1" + +[6d41d727-4175-576e-a481-7d3ebe35fbe8] +04c93fbcaa3cd343d646a3b70f873527f7d81bb6 = "2ec4a1116c83d9cf2f3caf434b8381370d810eb1" +9807a64442eb820e972e681f96cfd3a7862556ee = "bf2305d6c71998c56d86adced4df98e1af374b5d" + +[6d4c0e30-93e8-5ed7-9696-a156cecb047b] +358238081ec52731eee53b45d35cd25b313c1502 = "a5439c7ba0ee35413f703be4592173feb4ca2361" +b80bd59ae894e2a867caeb776afd8b82527cbd1c = "ea15cf47176582f4cb9c6868a5380f1a7d88316c" +cb3577ac5fb6e689bbec14047a0ee4677df964e1 = "f97cbaf007780edab56e63e24a0c21785aa6ceda" + +[6dcfc07b-8fa8-55f0-94e3-d46e2fec2cdb] +21b067aae5c9d94a5a5dbf1c11e6ad2da3d7b7f8 = "e3652f0490dfbc0ea13717d84dd2ef143892c5f3" +516b572ca116fc9a5ad521e64f01dae251b82e0e = "24a003792b2e319b5c41ccfa8f424ef53ba6e235" +67ff7b92a5d9f943b3a31fc889ae0d32f19e0a51 = "9c8338890931666c864eaf8d069618f6121d6e44" +6a55a37a37fb8f04ade5e96f533e0e69b0fc05a5 = "d80100026695340ae391494237eeee0213c957e9" +70e3eb3894d7a6f48dbbbd88ba59e643b957669d = "b563555db67f89853ca950690f62866c4bdbdde6" +b1a58c338fad7c7d0a0b9410fd6042d064cd7eda = "aa928a6a770d4c1aa2eb7d33540a5f94b4c68ea8" + +[6dd6cc0c-bec2-510b-8f1d-dc94ae965d24] +341a84878e9c0e26ea9027cd5caf9d525c1874f2 = "415f1472a01fa023ccfc27990ece1256eec69fcf" +71f0400c7d5e3b347cd3b9f5a792b0f099b8af10 = "086cb83256687f3ef5a3eb7afccb35968c299f7f" +fea33fe2e0232111556dfb2d562564b9c2b56933 = "8b4e72f1f1525b664863b9095b6984d4404d2283" + +[6deec6e2-d858-57c5-ab9b-e6ca5bd20e43] +012692d1acfd3a90b0b46631e28241a30c223e92 = "183985854cd617991eebd2d66e645d1bb9123b07" +01856086e34aa0e4a1b6c41b00016d1cbc022284 = "8ed6f127979af4b936388faa1b5a77faa17f9f3f" +01dde0be3857f1dd358af2f18744e601ff225a67 = "88f9fe1f3bcb94ed50991fce981f378876dde80b" +03c94730492a4a6ebe0ad689ac3034d65ab27f94 = "ea37c3bc2357c181036a1421e9f79aaa1a77db19" +266d5f0a74fab23a4b6b114d257d26757b880cdd = "ba6ed1e0d190dba20acc41952a936baf3b5f359d" +3a4d80d1aa11579f16ab2baddd2caafcab218c14 = "d46ec10503c8ef3e628d559044c36a4a14469b0c" +44874bbc0dba5eddc5c2c3d0331d8e585e55297c = "ca78bd546843d6e3389c09b7a05c6702d12bbde0" +5698190578cf108ae342f70f7e25a30de8c9b989 = "c027f18f307c60f63a0f8ddca9d808f1c5381faf" +61efa422c3ab2e4f78c14775cbcf45509e6038f0 = "f2492425ea1e05eb0f5326e736ded4c946b1d868" +669a9f98fe7a0cb2d8892874d73bef3d97926557 = "7702985ba9d8beda9d8250d684da1e9ba63b1115" +70f5b46a9f3961daeefc60d66ba7d7cb015f9aa0 = "acef59d57c9994c716f656bcdbe712a220f97f8b" +8c8e320ab6a06ff894d333bc1346bc9fac532173 = "3e361f8c7ea9eb7f7310917a9533fc72dd4d06b9" +92ab218608ab5b8a4e0e86a0f7a95e4c6914731b = "12d131d8998aea2d691d290945a0b9f234efdb46" +937ce415e617922a0cfe02c8b8abb27813ae0ccd = "0e10efc0d888916b039686b9197e73b3ccf0e9da" +9806defa8f47be4889361ba22cdfa8836060a1e6 = "32021cc254ddbf64e933a89756b96429ddebb6e7" +a0d93472e99f6ce864d9186afcb6c57416c8fe7c = "991f0b6ce9bf80bb2c40af62de19e5b65f10eea1" +b6cee92c83c3ca7180f4c0600b0ea6ff6eb2d4cb = "35b87486e3df2d6474c6075403cbd00ce68ae014" +bee169fd5da30db4087b7a10363b20834e64e6a9 = "fc4f9f5e78eff3a9c69ea6e763c215d85d034e4c" +c507a5625676d09bf56e737615616b389380c630 = "3a85389c203dbd27d53ff0932039a44979b4f2ef" +cb4494c37ff50be3b12af1ce9d66a5d3e18201ea = "7dffe5069e5dc6c0a993d5d97dc92767f45686a8" +cc2d95afcf9e869b639fb2f0313eb4690381f957 = "3c612c33e0ffbbb9d0c1a7cff52916c9b523993d" +ccd3d529dea15f1726065ae838333b71215b6bb7 = "cf30ce0f75be6aa5819dbc674b7671412f00b5d5" +cdcdd396b1aa0cf8451f9ec41531a52d40dc25c1 = "c6d22533062281dc178f9f539d29463e53eb129b" +d12ffd7e808a513f471d896d7faf4b99b76a214a = "39fb95c618f9f105062be9176f1c1e43a803d5ae" +d6407ce711a21fec23061439dcc32fbb69985772 = "6828ad289e44e6d5fb6c0637fde822b08a396c9f" + +[6e0679c1-51ea-5a7c-ac74-d61b76210b0c] +5113dc8c528c8e965269cd6f74e839511caa82eb = "ac750b2372a34f7dc15e980e3fda304e194634bc" +74420ffb215e195ecea0f4d5028d8830a7bfcbb8 = "0bba6e447d4f37d11eb8362c3808fcc4babde45e" +7f7b17075173d04c7ecc274ede37cdf191e44fde = "9383f3707dd7adf588c4712ff6877c996e297c89" +92eb206daa8f86ac231218aa4723cc867d4d76d8 = "3b6ad930f4349264081eeb371e84b058943ae08c" +ae69320f5c51a10588c1d69f0d256cc7e391e81c = "aaf40859bd8614c8d20735ac1f7fd68c39ca8318" +e80c03227ff9acbef5a08d68f237ab88fd666612 = "785aafdcd863b942826d840c72ca4370f781c563" + +[6e198168-b5ad-50fe-a592-34ea75dfe988] +25fe2ca27a1059c3526b8f7fffc9ff1f157a62b9 = "59795a52dec1d4599554fc2ed420767992e0ecd6" +2bd0a6a2cee693b415cbbb54281cbd06ef3800a3 = "37be71930ea05c41a90cbf55242ca6a118c84c1f" +38cc9ef4f1b64eb38eecdc76c8ef1f9d43bdb0b8 = "4ba621ec2800629a3f4eb451a71e6b7ff7751060" +409a2f8f978a81e8d43104e61497e510bbdaad1e = "c4e18d045015fbe56489e13ef7c2550ded844ebe" +43dcd2c873726673b06cb216f2eb4e0133cb6963 = "fc486f93f9e2d7337df00664d854d021383fe257" +499b45a85a9e4f0ca6f60fada018c4212cf560aa = "01ee2af07003aedff5dc9a52a9d72d87eac1cac6" +6182017778f6f2d9613a25b88988dccdfef7a9bd = "71bf459abf11923e25be6fac9edbcf63fb0b5b31" +8de7f5e593878ddbbbf99ee54c8acb9eedf7d85d = "e10dd95b6ac30f10578a3600356e37887d98a9fd" +8fdb4c74998165e33bacaaf45e4bb5110fe5fe55 = "b61fc53c1d065119a0f4504ed194493a6092869f" +e37eea13f20851fdfeb730f184b9a7b2dcfd94e1 = "757af6efb8a2ee19e3186c4548f2402972360c8c" + +[6e36e845-645a-534a-86f2-f5d4aa5a06b4] +020890d73ecc896b46cd197e7eb0887a58703313 = "6f52a8fca912e9616841148df3cf771b320dba9f" +06df5220faa72fb1259e3a6947786926b136c99a = "e90d940a048e8b5554df5b19bfd865dcceaa3746" +53efb85e448ef371cce72bf9f5bdf6505d026374 = "1f94625e9839ca956c30044811145411d66c3f90" +69abc031d145a7541a98e48163be4e951efa4709 = "5b3e388f588f8778dd0216ed12de0b71769ae185" +6a2698981f621b28ba4be0fe4aa4fa08e669ceb5 = "3eacaa5d2b02e3cdecffd07ff64254c908b09b2a" +6b9a7db4e422554d859997a7fa7f52aeadafa448 = "7f135295c01c58bd720f8ec0dccb383877f0c440" +71b39100954b23356506a5bea62306740330a764 = "42a20e2699f2878b7e8e7acff2465fa1af7a28b4" +75891e0696a3b3de3caeff328ee6e567add062e6 = "6e74dba63ad64ec7345dd4c0c5381d4104223527" +ba571c23b18f3513a08598e791e1769c2f80fab6 = "c2376f67c96d06f7cc5f6dc5882137b85d768d13" +ca4a2405590072e3fe38099586666fe5f6d3e0ec = "7968be5c4fb29b99bc3973cbad7b88930bd0ad7c" + +[6e471128-d39d-5672-b02b-a742bd1b77ed] +13fdf1f9c523f0300cbd7190c9f36c83fa0aca75 = "4aa00726e847ed8613697ddc396680b2b91f1c91" +1b672c5a797b0f9e61eb1d259240ade5ec8d2d9e = "c5a5a24d72e05c2e433480ff86dcb18ead95110b" +5a79fe34fc8406b104a1fb20ea5bdb1d79006ff4 = "3860573602c4bd3c4871ae60ee58693060d3dbef" +7b4726b2148ece1b48a968a33fa5b0adfbad9df2 = "6325de7cc302227eb720af8cecd6dbfc5486a615" +b236f37aa3c838a65f2dae8b4974ae7714cf9326 = "59f36177742f53ba68b3e31436b94947e8ff0107" +def98b42c8fd7f06d33c1f55224414ed6e2321bc = "586ee7f681c0a711fdca8a57bce3d26597616617" + +[6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf] +00046c7f165d3f146c1700f2a8b876330161656d = "a0dbc8ac46d5f546df2d100c7d33793472426220" +1216bdd099e751dad12808067be864849a60e78d = "52d091ab9c4373052888494eaa4947d887f80387" +30d9aaa0c674815aae5ff5fba6360fb6809869dd = "c329eecb59f8e7c862e6f1520800f539dc369a0c" +4db27210d43abf2c55226366f3a749afe1d64951 = "6d9fe5feb785a223eb1c5179b347d5cdd31852c8" +5974b8bac273d7f8cf977c8cb2dada844f3f0ab8 = "0a3f9a3a33fa16e13cedf1906406f5dcc95123f9" +6077536728e373adc6be74113c73b8353c6d2fa7 = "5c0914ee5f03f244a4f6ff6124e4f2dce5fc1194" +6c77bdcbba203169fb1dd8e6f862c2c15657d7db = "79892f5733dd04ec162a76fb55d00d7acc2ff9a1" +7fa34a12d485a64f98c8d7f81d308578f7d17f2e = "9bfa5aa6aace4ffab838339a2a7be4339a5f3b5f" +93ffa921db185d4ff8b715f954a4d9b42cfadc27 = "10d449e4bbfb74e315d67bb7c6a43224193a24f6" +9e91a1787860eb06c9b727aecdfb9e76d0d87387 = "26c3bbd3e40ade84348b60486b25f36f72ed9dac" +aafc7e19d240961c1817478bc01558c0196c727c = "b7b4e8153c42b6b037e462b5c6ab43bfb2ad0bf9" +d0ef587d4168d5948a19bbe24a6b60be866b1cab = "5341d357c4f49199cecbb35f22461e1739304a45" +d0f48045f70b3233db4c291d6adfc39117566d35 = "5282d8ba9209a7e0d9a138d9b1aa1be7c476c931" +ef5bc08b33c08dfc9a3dd970326b60ba44971c87 = "00beec589e30f0551d364a1242bef363ae92b0ab" + +[6e75b9c4-186b-50bd-896f-2d2496a4843e] +024fff6a6ab9b49a006e4551366a950c4bab70f7 = "2a1916ac201ae02cd98e778333ae6cd22e70eff0" +28b7919d3a296304ffcd7117ff96d18acfb73e05 = "7b346e602b299e3ca3a5c6fc3001475daa4fbf69" +31908cc6346fffdb95265d74303fedf08838456a = "05d9ee51bda327481c7b1b72cc3c0b2fbb4cf65b" +513706276351bddd4b7c217917d9fe5432f81555 = "fd84b2751475bd6451a1fe56041b94f85a985a64" +5a013c628d8c9daf4ab7070c6517b3bec7b8060e = "ec53b3cd8bd360e45843146b4a73753591ddb670" +643c6071591a79d1c363f0ef47bf5846b0acfaaa = "9c767dd092260a259f4bb6bf0db6c8f1f0ae1050" +829876c272656620984d53f40b4ab7de8c83b6ed = "d391f25949e62135a4bd0532ef7c8d794f815ca2" +910593e5b0ef9fcd1357ebb4f76a85febd012e55 = "977994a136bf387bcf4bca75a07d518e5621599c" +d29cd6f4d6fa1653f78178cab6308d06664c7c8d = "5725a9dce5a001c4e93f8bfb98143b4ce828ac70" +d71f0385bf1c126d35eb63696193d06c5147bd53 = "10114e555e6baaba2072f7ac363bfed839652e24" +f87d979d18ca54be58bff95a565a5e08992add32 = "15349cdceb1006faf73a10a2839b2d4bcb2971a9" + +[6e80b5ca-5733-51f9-999e-c18680912812] +0cdee28d25cac304d83ef85e2d517cf3b91fd125 = "6fac898ab2a80f4a8ab78215928255b58874bb41" +134a124db890d83842dcc31f78563bea311b66c6 = "eecba699ad14e0cd9a4565c9ca7e21e4b3026ba8" +21e5548ebf6fe17bfda661070acee16e09706072 = "a89af86d8e931225843b660af4a46323f0533d01" +4a1497fd9971a89a7ce56b13116243cf9ac83bde = "276ab0752713f671a8eef0855a5a48177296a6e9" +76c003f302930b8f828b56c60431d515b136faa7 = "1e9e693daf39b8b1319c7db9e1f456474a9c676e" +8a92cc2c684712a42fc64c7d1139a88dc3e89e7b = "4cc0c7a8475e1924f0d9c2e17b7c57b899ae875e" +9983590db46e71be8437e1d714e770024852ce4d = "3da5f08e57d8846eecae30291be6b460e8343b40" +9c55bb0d2a966ef45368441417952ded33e5b4e3 = "0d00ff7c3c58b4da1267b1ae6e95c11eac2332ac" +9c623c02f7827b9e441a62faef2ca7292387e878 = "2b67ba47c822151538f97a1bdd4e08972be9acde" +beb67ce12ad3df8f9e505002a33ace762f31b8b3 = "7d1f9808e00ada2c174cdb40dad50ff526ff55bc" +c8c8f75704003cb68bc4504cc923671f5b47eb5f = "47b2668816b36f13f0fa1eeadf1c104772a0354b" +c8e559eb2dfdf4921a06c454029a062eb8dc81fa = "54c4e4c6132d6cc3e496e67ff8a5b01e12a89ac5" +ca456d551c3f3373d269619806be70f10464660f = "4e0f1053eefc97a601dbeb6e77b0fdf42e7a90f0" +cad2f86dafeb28f4aac103bc9d71361f9d1b3ee5 = "6e5544461f1f2312597268ba358bdf8ea3549efa" + +[6e83dbb3-75ca-525b-8ae2-3751f0dd50b4] +1ffbff16411257f2dcaeabb4087ce2ae0d960097 = "9192d6c5f169552ce577c54edb2b38ec0671875b" +2c3f5c8420d3460f4ae52d276a85897455c44565 = "bab08cec07d98a65d721d562004c349dfc1023af" +476bd074d12233baad9d87a4f63afeb7019b5766 = "bcbaf0d37fcca3a0d041f575af302c298cfcb23c" +575339f0399f135c4710cb64e6106420e4f72048 = "c8e9e775f18d251a6eb4aa596525d1dad94d309c" +728a1281c1c2ab4997983dc7eb49ede6dab8725a = "a11128ae8edaa3f9145e007a8cb58c4fdd149c26" +86642958566785956e216d469ee2ba8e77005113 = "1c24d5c019558f5d91dab26bfc220e22340b3d6c" +ccf7f5b453d0d1aa42b7a9754d394e0aab138d49 = "a577c7cc43554549708b7a92f016466f91a6b1cf" +d84cc06fc6ef968b43c3f12e50a2920c12381978 = "df45218c6aba42c378962c39aeb90667cf6be574" +e5c8e79701cde5beb86dca1d60c3ec00a06d7130 = "6e53cc2691394a03ab435acb8f140dc936490df0" +e9fb57d0d155a1b9ce505b0ed5760077b3f2e229 = "3821a65110dc5c44892b4073b53d143e55513e2b" +f906770b1403228a75ff0af3a62f06cdc5af87c8 = "d88b9b50acba92c81dce7863824625fd90e5389f" +f983998c7ae579030a5815f902505af8595628c7 = "a0fb20abc67875dd4a4f96907c5c94999c60de78" + +[6e857e4b-079a-58c4-aeab-bc2670384359] +2a97575b131b4e24060e0eed71d740a60a5e8ff7 = "48aa7120af9265e24d1b1470a60dbd033a8bde24" + +[6e85b7ee-7d24-5488-b1b7-e4f4198c51ac] +41b852a543309c40c4d9612177a5a1cd3c6dfa27 = "d0b07a7ad6eca2eb6925ba64c458555337b10ec0" +4c04eae71d14e47078a0f70b9dec852c081ca1ec = "9a82bbfb8f67975f73f12bd9a28f6e9f5dc0a6ae" +823863d757b452624c64512fc967e7171ecbdfec = "c047f506736f34068bcb6f0c31b5aaf984b044d0" +8b073e47f50e86cdd3bc7feb7c7c5308d55e977b = "4046e19efd9594b3973749e4585cf6cfaf311b93" +9ae39e37be76fcf946e579be36d52279e876c786 = "366bc0737d0d221f795744c56b42e2df70aef2c9" +e4dbffe38bfdf0e4ba50aad2f5057eba5bbb057e = "9d6b2724e5ee39f29364c6fdd16d481f12080a20" + +[6ef6ca0d-6ad7-5ff6-b225-e928bfa0a386] +0de104910aef49ce98871f415c4ddac460e1a2c1 = "076c94b86e7d1312b611d486b65b6034819109f4" +1174163502bcedaa90453bede5d1573114ff1593 = "d312178f021864b1426192b72bb09470a03718cf" +2717ef64805e79b5764b27535bc700d43e124d17 = "a01fa02e7c165b226be256d9c06c6da3f7e308b3" +5e9525362870ef533083b421765493cc79fad0ea = "6838e0d8ce0e28978c6f7830a85f3d2ea2959669" +6ec2cc9744d03ee77273fc47d0aeda1d33e7634f = "821dd8db97152b506f2fbeeaa5077000225c6add" +73166660f90e4c072d62b99b5e3a1106ee8905ef = "67dd172afa80313262335ab646f0c726c1fe4a6f" +90cc65e5c87ee63f1ec0de37d89e36ed96068c0e = "11f645a00c20a9ac559e37be5f2e2f2089fbed72" +a89658e3492b5e80428da2abec360112ff03b6a8 = "b342c90a6700e84c3d3197e9bbfe6a02141243f4" +b41d45ee23dd20aad6248583327cec15402ea1cc = "01015d028c7622b5fd7f9eee58b2cdcd21ab92a1" +bd01b7f0d480153d1734e9dc9d3f7961013f6e93 = "98292107787d1289a4fab4c5e59103fcaea8e7db" +be17e1a4fe1697cdcb82fede926fbdf2a186aa76 = "d734d85424da3ed911e67c85fc49f8945a506ad7" +ce51831af71221cdc77b87ef4dd2fbba3a7ad17b = "da6c078504022dc89372fc485c6960d4a5e00633" +ecfec97e0ef6cd2cbe44d5dd7407836cb4d922c6 = "f8f45e60ffe8b3a0784b8bc19997895a1b28c8fa" + +[6f157e1f-1037-5cc2-9283-434698596519] +1d9c21723af6ac3729578af672aa01b4babd6e46 = "fbaaf3a227ff23ed0114bc67887b3278a55dbeab" +3349187b2d693827ae5dc46bf64db6fa2095f3da = "ce886c45e8f1a0da76d0f216247cc3c345b4971f" + +[6f188dcb-512c-564b-bc01-e0f76e72f166] +a1880ce684f9b6d423f9bd2b6666a64ba2dab123 = "ba8605f547f341c0c1611057b255314b0473834b" + +[6f25fe36-ecbb-5dff-aeb8-f7b50c87fb5f] +897906b3ecad3d60bf4ca633fb956eed03772560 = "2c90e8d856dfd838a179ae6178198fb029611999" + +[6f286f6a-111f-5878-ab1e-185364afe411] +0735830fd6c26dd18fdc632bfe65c479994e5dc1 = "4c8aa88c7dc0c2f89bcf4d592ed16ecd66806c3d" +1cbd57b3255f26272fd1a3f568087abc44e0e030 = "1858aabfbc789c258fb1c74285ec5d7a43ffee44" +3e044f53b9dbd341d3661448876726ae3dcb77c5 = "875cc82f68df322a560b343ec0b1e52ad64524d7" +7afdb2449af895e40437f7b64a773e7638e572de = "f8865081e65ab2eb394d7bbf987986fe5e850d30" +a6203707b3ba1327b4ee303d10836eb6c3ca52d3 = "bdc9d8b708e7e2190b99e95e9892a4acaaa48cec" +a7a33a97a9ea680dd2d5b57f643aed5343cc0bb6 = "2cf71575f9a6abc7c687c2f2e4f0957e407ae05b" +d62b2b051a884eb98584f53df61e427084443252 = "446681e037113f1ed5fc85bee3587a347da7da59" +e3634c1b0214a176a04ebda4c2085c43873e1878 = "1c0240c190ff03ce0a6d7424900d1616e50b565a" +e83394770944580e22ee79f98f434636303e9161 = "1776d969aa50d1554f1cc462f08a2b76a43752f4" +e865cfabdad8907faea2cb76f084c7dae8bed8c0 = "d93ab439655b3161441583fbe7c155c88b0ca935" +ec3f1b07a0135ca0ba3a9fe7b1f33e4887d09311 = "311fed2c2c4a40e19194cecd25a2c21d503dc759" +f5bfd7a5776f30833ea54404ba179eb8f5363065 = "4a7f2a72e9e03c429ca0b0a588007bd84d4f34d0" +f774160885f6b7fbadbc108572eed16787a22809 = "cf7dc55b96a6b52a253ab2d1b5016d62e32e9dd3" +fea02836be301f9e3fc5e6af5eac301616f8ba7d = "2f04beba642eca146f540a60006d65eed9f6d4c1" + +[6f49c342-dc21-5d91-9882-a32aef131414] +0b45b5d5e8c2955775b10df3c323e1f10fa3b189 = "0c861eb0dcf0b3a9633e5ffc4bffedd7e5b79ea5" +12cd5919bcd850235cad83bc8697fdf46807312f = "7e3ddc34307bee81e398d31d390b0c7f25b410b5" +13d1cb6290208fd0220defeded1de112e8a287fe = "30329529892122a54cd12e79ffceea8080cc31e4" +300d554ef4add3be8276c5dac73b00e941b22360 = "79d15284bf47762878bff2e0c5527517b4d41bdd" +3d279bd52053a40f777724e2a3acd7275f504c02 = "88821b9e8be0eb318664f71b2e25dd19ad6bd107" +41ef16a06c625e4793619ee5d5c2b928c897d036 = "8cc63d02e885a6e25ec84498cc54b6dc073e1212" +53fb8557655bd5613db1b4bbddf5324b934a81b6 = "0cd5087e7128de19764417dfa18058b3c282ff5b" +6fe0dcda1e061d8fa7604f7ee122d7bd5700732e = "71a2d89a47ee35075bba18d04c9750855177827f" +7255e665f418d73b7f02fd00309f2a3fdbf65490 = "5f54131708ae0cf3abd3d82d7c517ad037648b27" +737b5eae453b589e2ce9f9583816a22936522617 = "d0d75146c187c88fc901d5ea756d3e91d86d5e01" +74e5af3670ab0d51217bdba3e281d906602802af = "b4ca2f9d37bf5be3f149036aed8f403e9153b662" +7f47ee7961c29e59c53d595bba67c9e6e6dfac0b = "7ca0e643d9ccf7364d1f0334d49f5a2a25325f66" +8152909226519f204e33b1cd9bff0c135c139212 = "cd6d891346e1f310160327fc84dec156d0b0b0ab" +8191a6c37c7f378fead9223b4b07032838f976da = "078b99971ff9473114eb515044994c67ca9b4ca3" +8575ab3043fd878ea6e81782589f36f9d120c292 = "32719eb853ff0ecdc4d4173d97cf49fa84dfd046" +91d976798a074fc960f3e5301c2f7020fd525774 = "8d376730b1f669a63a30701b8afa37df8640cbc4" +9c795a58219aa653709643f46e5cfe311fd6419f = "91ec6b376e0cc48fa08adab716543e747834ddab" +a149e49a0d73ab70e232110b798c9f35eb2fbb5f = "6c24bd373fa00ff704ddba9dac225b8d74992387" +a2c5aa14aecc56c3bbf68fe2657f90ff65bdeac0 = "8967a363daa2c9989eb79f43e6348ab2ed690d85" +a45eea0816fa406d0640c1a82a0f7ee2eea40e39 = "f3248f7d08da0a3afbe478ff93c19257eb784ebe" +a782a65fd8c4c3ec1d7b047bcadf58c77ce80805 = "23e0c8eab4eabed4b7be3236c08e4fa4014c152d" +ab05d71714c7d90c9103fbe1ae70c057118d8a43 = "8aee4f1c9db853ddcdd01beefd09a2979b1b7dd7" +b357b6d842514252248d1b17ec62a90ae44442f8 = "e70ed5cf461c0c3348aa31cffad478e85487155c" +c31cac0c967f34911c47bc5d48db524ee71c3f46 = "0e30e26927c4fb54002ac045a8b69f0aaa5d3da6" +ca554158c64e8357b9cbfac891fc2fee398e4216 = "12ef97c933ab235e4a360344d1f795ac84cd99ef" +d614442301579fa3caacb5396d6f57fb5d4269f9 = "1967a78d78d70d79959d01b8047544818c58d5fc" +d92e90798a411dfd45ac1fd8c1dce9ae96716df5 = "f7aaf0655469b2dd137714329e457fd78df5d2b1" +d9c7f6dccf1c0e798dcc7cf2c082fa6e32aabecd = "a2226d5884665ef852ac24bdabaae24585e0e0bd" +e3129371049e24520d50c568ae2193cc98059d2b = "2007195eb4b942eff13cd6ee4ffa99661030567e" +e47af2b32fbb8a2d5abf355fd448c6b6bcad1bf2 = "d1397ff7fdb18e2cd1a97c89e46e5bf499a9bc47" +e4ba35cf45ca2eb041f660642449b8259c2f30e3 = "4c812670e4f104a2da50f8272ad2da4f7a404153" +f3d0613b271f92650ad60e7ec00ad9e3da309e09 = "3b08b1da16048a995742720bf802080e639f8b03" + +[6f8e5838-0efe-5de0-80a3-5fb4f8dbb1de] +25929b6dbf5cab93c1d4d7a17410d686ea09ece4 = "ff621973d941bfaa41277ca1e905e2e12c0c683c" +311b4de8087e1af2cb59171d6bc82b40acfd4ff6 = "9d2e3e8f412c36cd0f1622854856f8c71f97fadd" +3c259368ce6348f59389e1d29b13ca837dec8cb2 = "9f7cb42c28027fd95ef821d9739c540962078155" +42b6565c7bf1184ff6ff0848948c3827e1fb891c = "55822a17d614b3f50d993b70f79d4a81552c641c" +6137bf024e1b8edd3750568ac225e98b12052156 = "4b4a993571379989cdd599fab9b8e295a70994d1" +77a3d10a4338e354253c2b22b4826e37a1c61eac = "d1a6d304a1b89abe237a07e3569f8917594cf4a9" +88b46471cf543ee01439395f8621af9cda32dc4d = "d730ab47621969255c3f21027327ffef66172812" +b587c0b5b77ad076a6308362d865b0562017dea0 = "73e61ddfd0613293b04475f77149e53e6b3562c8" +d007815638775004251829447fe2410f98103b70 = "3eff7c7d3eb2b9a95b76721a4d2949a09ed4248a" +f0284dd1dab25976f3bd7fa626dd6372a41f0335 = "d74d276078b3a8cc22a28578533aa15fa846bc10" + +[6fb2a4bd-7999-5318-a3b2-8ad61056cd98] +a0eb1234b1668691f2442009724b012948917836 = "dc1fd5d3d4031f06985f384b03e20707145a788b" + +[6fc5cb8a-a410-53bb-86da-72917ac2b213] +1cbffdfc5824b3c7140fdac67f06b830b6124646 = "285f932b0d27b5b6a3fddbbb346cb741bd11764c" +4d619bfb2998ad71a5e9e5de5e4c4613674121d9 = "725dcfd7accc112a4d5c7dbdd34084898c268022" +7f18b54450bf4018c32c60a5fdc6e96ba9177e9a = "d06021dd5b91415b8c44ddfcea41248bd76ae564" +f48192d530973eeb34f5f9f0cb7d5bbf4939c3d1 = "b93a7a6358c6e491f4f5a6c3bcdcfd78f0ae4e81" + +[6fd927bf-c9ae-5b12-a3ec-12ed9ea74c1f] +dc29c0e843913c0c287a4147e611a9fd76961a7b = "7fae9125ba949ce94e0e1f40aa120509171ad9c3" + +[6fe1bfb0-de20-5000-8ca7-80f57d26f881] +0d65ee304c5a5dddeeb3816da4dd93206a56029e = "b07b870962f1602ac91d5413236859f109625488" +172e698fa3daf2fc47e5264802044e1da286372e = "15ccbad912464294bbe03070762761a21ab0ba60" +174fc7a38b826fdd968270d165113ead30572215 = "da985e52d34d018d56c256488c17a934451a7f99" +31f35103f959f36b647c1624fc6b3a31c80f69c5 = "e171f78f1f52c6235e9e50a3a61999593ae6c065" +3a1964231566cd6163d1e926ca2cec4f31edea12 = "833f4703fda5c53b2c8cc11afa6e1638c2318169" +6418ba4577a0e89711f9c34d104db822ec3857a0 = "d048ee0c7903cc356c7e0f1cc32eaf44532b6047" +68601539d2a245b018723cfe7d45af8848ff5ac1 = "8f50459cd05a7901b2e9aa0bcb9fc3ec4c44d7e8" +78055a6cebd93caf79a6240501261b40e21c9f7a = "fd03928b918eadfc0ca572c194ddc1e100f72f4c" +79af57c647369c7fb0aec9753868799d908b67d6 = "1e14c2a602944b30273bcd9ce1b14e269b4d3510" +838f8461b5bf679e4a07cfab8e45f297efa386fe = "2fce2bc26285ddd16648e22daae76303aacef5ba" +a29db304bf9f0b0104619623f543eeccd30cb4ee = "36c31ad831fc3d35cd39350be56c79fa589281a8" +b0fad283e4c241b3f3634059ff28c9b1a2f81efb = "b9d7f0590b2a7ef283e84b35f5d219db80571151" +b43c0fbac480b1f2424bfafd00fbf72ea3d83bc9 = "8e70d70e65119ba387bfef671c805953be025e5a" +b795ca7bbe7746117de86615e41b5f486b7392b1 = "9f6ed6cbbea75a16576932e97bb02f69be7f962e" +ba858455c1b3edf128daabeb2bb0bcbe1adab047 = "98e8994f2d8b29165e53e1bd6fb6e803be1c6e92" +c9aa4e36b739e3cf33ab509773e02be603f26808 = "b83c4bf8b9b5df1042c2da096cc98803f6b8846c" +cb274cfc4116b8402c24fc3cc6c17632fdbcd3f4 = "2c1fdeda3f318d0e0f8a26b099711762a27752ef" +ce6ecce58c87e3186239fe4e5c7f42ff08318752 = "edec959fb925c6250b30ebf642f641b7a38dc47a" +e3e5d4154fa6111707d767abc6adca3f01023b7c = "b16a9adf47ee3324900b24aca5b8c8e6b9904f18" +e6a013844ad3972fa8efde5114bfba15e2595aeb = "1ea02bceb49217b4184c40987c073e96b755b464" +f6715506b026b0826174b35f0e889e1ea673121e = "5b2ec373f12438ab4e917b24c46610e2ea24ba44" +fbed71ff228afd429871f3d6c028b575dfdccfb4 = "6f044ce67d754b98891a09aae89c74e70705a6e0" + +[700e45bd-7bf5-5563-bdb4-6e688fe06d37] +d3ca8cc1aacdff2916d48e3395d5940684fba86a = "ba9d13b0712866cc3cea9ca098595bc6e7aae123" + +[702785d1-5201-5208-b5ff-8fd798c35775] +299f28029ced38b4ac6c1eecba5db82d6a138e37 = "0b53c9eb9f88264cb050209b5c3ba7ef8bd5c488" +4d84b9081271d5739fa9ff052ce5079fe01c9759 = "547f0a740df62d02f08668c7f637428f6d63ad5e" +4f040801371abad8feadbb6512f09a8e301ec916 = "b01ae5fb8547e99d69802944498119ae68c769d8" +554bb196cafcf7ec6c9dbcd267e33ec0e2526ed7 = "782cb27450e251f2eaa0b305ddf27145dae8be71" +6162190f95fd1095a3d0d620e041d854e3d03d63 = "a3c0c384c6c859e0412d3a4bc71d0c28b1a8ace5" +a09b93dc23a8b9cfa59fb51d7c6dd617736f28b0 = "a9aa23d301f3d7b1d632735cc4f9fa335cd07041" +b21d4c6f61904d63ddd21c40c122d02ca274c10f = "dfd33dc8f315bd3a8cee0feafcbd22fb3b217414" +df58194a947de52123a077a937b162226c4853e7 = "c1380065275ac639cefdd960b3c8063f4a9fdb99" +e80a0184a1529d85cca0041e5c2f339749313d63 = "b525021c97fa8d4899f836820675c4b79a3ce57e" +ec6fcbbe08ecb626ea909d9cee101fd8a5354d9c = "ea9189964106b368e25144c56ad0c105284e0fb4" +ecfb586d4bf4f371288b7da9c45b361b6e14cb1c = "674d6f7a5b9bb1e6627fdcf913762b04a2c18799" +f36bdce79ef527d0df768eb52726779d80806989 = "868571d2c6cabb3529c22dfad8e3438a56ca3415" +fbddae9980dd37f469e9961e24aa72eae489c832 = "b6f287b15f265a2a0d920c260ab681455b20639a" + +[705b6ad5-3465-51e6-a1de-33aaab44e605] +27fe9b7751b684f13a080a73dfb1881caa8b7f9d = "a2e45f6357b542f5fc0ad67e0cf9d479fd52ebed" +3b21d4477f09aa158d03a00dbb319aa29de82747 = "09ee2b11570eecfb815652e43a6163de555138f6" + +[7073ff75-c697-5162-941a-fcdaad2a7d2a] +019775ebb43e685de36b6930a741766cf6e60fff = "145ee0a7a641fd51c0e4fc303fbdef5a76b72192" +04ff0a5101c961b04615ffbe04a8355c8de0e84f = "f591f1d9495e93cf74595bf2cc3b2f7ba9dfb663" +1110ff2a9f94125451df21c4d0df1c71ac505002 = "884ceaf1bb7c1401b47c0b340d0ae1a9abf9f743" +11cc20cb6b47467d3a1e78ec1175953de93add85 = "9233ad6128329a0bebb88da46b0ff151ebf97b53" +19af97a893d496122a148af4431b946696898819 = "51f57058a7c1dc72cbde2f9f16e0c1afffbbd2d2" +1b17812b9ee2a544821fe4d00cfd9ac93a2491e5 = "0e6200f0f1dfb3b92612c63010403ade34853a27" +1b1cf6fcd2ecb35fc0ba95278a02f1ceae46ede3 = "2ed91ef33d1f0d65adfd3da052ed61bff2c5d938" +33ec31a1e46cfd33ae521565789269a4db583c05 = "0eefc8ab11b545d8d8f959516c93ac1b295090c4" +37323f7e5d1af152568f5fc93b3111061dd5279c = "13080173736bdc41886641d789d628d0ff242752" +3daee5a97bd3fd54c59ad4476e91de7147ce711c = "866caeb613af7d1aba1f3aeb4d521891e3ee7c99" +3dcadc2d2ef0e4d6dc45a20e581332fe54ebbc63 = "357c32d5ed2d15793086708c20b223adef0caccf" +3de62484939f820a20fe4dd9dab920e9de9236b4 = "5eb334a801c08c9136dc7e2fdc91f178323197e8" +4359c9310535e626c720e30f9d2d6f8c3df7b84e = "e05ec11e9c59827c6cdc66c59e18ccc7403948b7" +43d7063ec3efc957eab4e680be9df4579c8bbf2f = "3cc929b6875e9c1b8b12a14ac8e3c8381d8715a6" +4ab3df964bf43cd483599ba304d258f2a34fc6bf = "6068be3e3c9a7434f2f27fe2c0c0125ac81ff626" +4cd1a63e015049705ee4369862ea57d5506b16ca = "761690d7786e65e794f8f127a1fcfdd818d74173" +4efeb51d610319f0b2a99c93ac4aeb329c793967 = "049de317bec1c6a27047791756d15975ae7c4f44" +503c9c1449ebc895ffc12eceda9355ec65dcad23 = "a55ff241d5f4886dc890f8bb32168a85ce545d48" +55b60c47a96676660355107ac9ade0b4d2f76f94 = "65a698e1ffed4daaea8bebe75c2825fd19a1feee" +58fe7604ef12b187090864dfa991b97fd26d3326 = "c0b531eacc36795559c8f987642101822291ef75" +5acb22421c4a99057ff7d6a0d6d9df2fd689e77c = "c1ec605213a22b00c34fb5ba53b43bbc23440348" +5cc548394947528d832e36fc44bac3c12086b1ef = "8fa720e7639256a9f42ec3577a184aed56690896" +6981f1b7253657d05cca7c64f1fc5bd4b95b3a28 = "f39d644014d4a1dedb50a0ef13c7d0dea03c4d19" +6ca218eeae7d34989fbe9ee27eeb468bad856336 = "1e1469769fe696e4694be3a7f0217a054bff4efd" +70d1b9022bbb6c403f36c1143d2f716ce7c51a00 = "74a352921117887a968cc41971d4ada17a77679c" +78106bcd813041fa8ed87a2ff343145c4d33d025 = "6d2e617d83c19949643be69e0f70646d0be48d1d" +7cb49fd3b92d928cadf8d235f440805367e03477 = "2a1a9ed9f80f6413830b57e2db280acf3def2020" +806cbf09421d4e945b728d657769f7e25e584d62 = "7f7fc5ca176523c7495c550a21c8b45e4e9f4eab" +8146aea6b158a79c228cb18075b761ce43b67b79 = "00af5b9fc56f2daa5f25a9b1a5396a3b1d4075a2" +855235f2ec50de2e7c792474ac56780666135747 = "a1238a6d6b080f486201b6956771d0b83932ed84" +86a1411f8a73154b1f61e602aa71d47ccc4d1e82 = "9fb8fd1d40243742393711dc060d19f2ed91ae06" +9930d1c545ac2356cd4202c003e3b5520a3209e4 = "9f336615d4026fde0111d25e38a152c8c96c9f1b" +994b62e5063c2ffcfc8ba81d2094713731df58d0 = "f8c7ee7ea8206762a0a7d9fc34b639d9f2177ef3" +9988a8d60204a3aaf38572aad456e949e8e1bf43 = "d98b3f681ccf468760f9673298ef0d6b2c654ee3" +9aa8604aae24ff87026260593f460e02a605ee42 = "dbf2bd0bec5286e321c71329315c47f5dd4271a3" +9b677b1e12e2d9ad17ab9e02589eccc2c3cd5c9d = "6ef85f5e7d32d1d3c456619128218b7adeb7c0c6" +a675ac5c5b08bf75a2f4d2f3b80035252a4af3c1 = "ce49003f3caf5701abe0359af017e78b6ec60bb3" +a7a0b707c25bfaa224cb047221749a61d3899ffe = "91ab13ed09701f93423c01aa6732de237b53f370" +a91a484ddc369022c462ae88d290bc2158df834e = "cbe0d4275fc3f1181de4ba4bf2480bf93c8a7764" +aeb00629e1d941a9ae439d7858d177c3513de8d7 = "246663b20eab6391b7841779417b644387210e9c" +b161ef727bbd39546f54a70219171dc1cb03e04a = "fda7ba14fbc131c4710a9da3c228a9e48799bdf5" +b4fd27f49ce2ec5e790fa75b1d34e5ca60a044a5 = "e8241e3ce6ecf03dc0274453171e790a3642c982" +ba921418c5bec2418fddc98f1be98ba36a68a78c = "021bcb443d1955098d8d2dde459afb6759e9156a" +bbfd419dbe896b3b5c3b29557c951c47df489338 = "dc5331505247d08cc27179536f64b69a850fbd20" +bcaa47203cd12cfe25d3fa7e0d5630499a5fa8d9 = "fe5db1b5dd38a17dfafe919f17596b69232a0044" +ca289952991d8a49e66f4768eff87d9a836dbf5b = "08a4226cc3ab16da3822a5c4ef97158de880950b" +ca35a6397d5e430f94c087f727a499b8e6ecf906 = "67e426bbcc1dfb9f0d09c57dbc73fdecc96a6e27" +ca8d926444c2a099e35131d964bd266dbf1c6b7c = "31d6d9d8913ced6c8c73841aacab3c258dc2c284" +cce2225ff59b2425eab8b3b4dadac65d5d0aa24f = "3b3261a175b0a84320660b093883f6ab10e50a94" +d8966c9c02d17e428a274325e8a9f8101002308e = "7c0ab0c6a255b612eaf7410f9671f8a004bcf32c" +ddd8713cfb0108151521bc51aa63ef2c0aa66cba = "c4cb42264f44209601a19de92f5ecea19aa51099" +eb1e0f04020ef6b67ea0d6e7d0d192d652a8a768 = "57ddd2be2d3164076ee5a8e770676bf0ce6ecf0b" +fcbcef24d2b022464092c1d0f99555edc27973a0 = "9bebbbbcaa6443a78b3621568ab6cc587c07cb82" + +[707a9f91-dad3-556f-9594-9b9a3b777385] +298588a612a81eeb9c79a4dd635944b53f8afcbb = "e0c8c98cdbcc3c16ce0eb02092a02be9e0d649b2" +3885989d95a4bb827b355d8ff0e0792dde5c76eb = "ccb904229bde301b2eeae34db667ba744eac6852" +5c9977b6b717d261bab7ab1a3d01a9076c73716f = "3d932e4d6274c73844371c790d655fe6949e4fdb" +7865011f94578e1836a8d3d3825fd1219c5d3763 = "e520eb9a26c65de3441620b743f3c5bae154ddfb" +aa60bb42c8ff2a16914cfb133ace0cd4acc6080e = "fef4c6036d728107d8109b5149ff52045dc88841" +abcf0a6efa08ac97311737fe0d43bfd21f44754d = "1cab047200258c66c19f9d449cc5e679bdd1ce02" +c3524f8024d1c4ef83d6950d20dac3e5693b36be = "2c4a0c721343d94463e0c8cbdf4d81e3b125425f" +e161a36abfd541926db9d7591eb6e3ae6ec9bdc4 = "785e1807c4f3e3269488c52ad32b45d6ec4df6fe" +f0580c051642b5e2754b944738ff5e7be26d991c = "033a9454ff8cf4ae15715f3d93391f0e9a477657" + +[708ec375-b3d6-5a57-a7ce-8257bf98657a] +2250542e69c0ebb3aee05628aa45d98d8fbb69ad = "bc00554fb3d6a05cb052258727daed2e8aa90dbf" +6ed30e76cdaa8dcc85f263c12e0e51ce4b5dc2e5 = "27091ef7c4aa12ef1b793987f89b696e2f2ff228" +704c9c5e28996e70f920595fba4d901afe99c076 = "bfc1357aa82151a828ccca4e03a8c90242e0f679" +c102799d28bcdbd9996eb1c263ba8bd8838b4943 = "6b5156f2fba2455e624a7b14683c8e12d7c95620" +c4c0636493b14167c99a82dcc67ecd58a1f87e1f = "b44296330ec37025bb8651c6107ed226ed9b09e4" +cb9c2e519d4de0352f9509ae99a1b7225437c8fb = "d0d8d280e52854868f7a3f12c93293ec6a82d208" +d9e2bc3310dc128db1d61a78af2fd5d10538b2b6 = "253bcf7b716f89ef8def8fbb39f44c342a357230" +e28b25eb7fbe24df358540ae96d72545c7b24809 = "198f3910fac5cc3e503c1c66c07c4850ac849a4e" + +[709a03c5-4783-5601-8e3d-f371b60e9387] +9a5e639328aeea012620cdec1ea874119a6691b6 = "390a983ccf9b05c9386c987286ac820ebc2c960c" + +[70c4c096-89a6-5ec6-8236-da8aa3bd86fd] +1bf5f2a28f079148733d8d58f96659b670e188a6 = "72569acd5757d75542061756ca990086502972b0" +274eaa8b41123959060c8a124c6bf50009f33bc7 = "c1b05296fe7cc55812ba2399f7136b97dcf8f1d6" +2f1827d5b5d30bd8ae1359b9a7950361b4ce05d6 = "96752e45548c93cb42813407c44af586382f746d" +500b4add9138767ae3b20838aecc3a4044c1aeaa = "b7aac7f34242d587269289200139030d01649a79" +76c6da66a700d82805d150fa74c72c93c5cf3195 = "dafa17cd49225bfd9aa3790aef7309796deddddf" +7f80137436dce47e2a92a2abca5bfcf777a9d537 = "de2d05bdb22da6ecdc6b07c9bf01ff91773f23a2" +877690fae077165ed9a2b850ee9d34ad1c095160 = "e73a608ae18128ab15d06f3895cb3cd2d47090d8" +89621bf6d4d3f9e3900636c2358496b747606144 = "4a454596cce54892a942f2adc239a6804e607e71" +95d4d2202ab6aa7e9efc34cd1dd8388b4892a0bc = "768b3d95efd7ebdaf89070e4a14ba219f411879a" +c607f36222286368bc28401773ff5280716fb510 = "b4095d2aa3baf5442989ad520be68354d25f4605" +c6d2702280bc8ba8403b1ac888a8b4ab48318d45 = "192f95447afe99bf3179f617e81321f7de520adb" +c9a5af45a481b18e0fb915b9e7cf4e17bf80e8c2 = "0564b3cc8f1a96fcaff2315ea89f59d2031c3f71" +d8dbf06bbdf7e6d0d39ed318ad0ef87160ad8db1 = "0af7327f9085a0fe1a3c951ce225489be15f1e40" +dc79975473d7f7403eb01b4763c533dad39823c0 = "93c046862b249010f8320eae17a34a638116f5da" +f7084ef1dca5ca9dbbb772b01b52d8618261d7dd = "876d980c53a2ebf50bb97f9638cba070967c227d" + +[70dcca16-fae7-5c11-a923-39bcb60edd10] +3bbe14f1f287b147b8713768dcf0269608e7e61f = "4c94fbc0dbf2e43981b831976f2e22037e167fd0" + +[70f5e60a-1556-5f34-a19e-a48b3e4aaee9] +fc148b84d52a98f0bccbefe18b0484749546899c = "1c7927bf6b69fb4ee888208b38090669290ea85d" + +[710c6136-668d-5095-a8fe-6011fc836f11] +de0bbe603ab897f8f48e14e92f8800250522e155 = "3521163761cacd7fc284922725b93547352fec6c" + +[71555da5-176e-5e73-a222-aebc6c6e4f2f] +06b9cc96c9ecbb3e09aee92995105cdf614bf497 = "55e340c79496ad7c2619d23bfe4d04a242e6c90d" +4f12c3f25fe61d2bc33300dee61eb54956ff962b = "74a0f2e041634672e41a223f9ef3804d75885969" +830246d478980862301675a2149ad1cfb12359cb = "af6df38080b3e1d9aab39a7714847daa2e25076f" +a0b19122b439d82fc536673edbd83cedf17a90be = "54d681bdd07c7ba025342f16eaa2b4221be0eff9" +aa96ff612e06e7aa1c1e9b06c23efb602d590c0b = "a1cda5de162fddc41be6c97bc467efb45579051e" +c2d818e270db1c197fda086fb5bf46aca5abf918 = "46d260f7b85f76f0195fc498584fbe5d8980f207" + +[715cd884-8f22-55db-b077-449d1f7eef73] +0c02e364fd61c67a64d4e4ed5edbecedd7917395 = "bd74d1a7f3216a40e15ce4426a4c79550a7b24dc" +53e18888d93c875ce1d6d931c56fe673d9dca5f1 = "f27104a8a7ecb6f807a884ab75834648fbd654cc" + +[71625603-7594-5154-9703-a50705a89aca] +d5fdd82c2285bd0abfa518d1d61d1ce3443c02d2 = "0f7618149b48484f0e8868e956ef96b449860cb1" + +[717857b8-e6f2-59f4-9121-6e50c889abd2] +2e994f032310d4c74396d4eb38d4f2d93604d1c8 = "988e1215a1e4745a433a01aa66eb1e1c71b3decb" +5c5ab91d00f9d11440b5fa583dc493c2a26b5f02 = "c6834b56a18c0557d03c05acfddf6e55b9e35aa9" +682196870d8dae02bb1cd2321ffd0ad6e85f2bbe = "fc8ee2e38de286aaaee1dbd38ba961f3147e38e8" +69abc408a8d3eaeba8e3999b8c3d8f7a87150f24 = "d82ca03a5ff2d65c357ad10e140a5ea30978ad36" +7cfac97beeefa5de0ed98592fc624464a2ed81fd = "e29a8cb5827d6b93bf1e1aeca3163138734433fe" +8fb5c7cab2293e89fb2b3df6dc02266af965b1c8 = "6cc7ad03d1adb6549bebe78c5b580e70e26d25c9" +90aee1147330b96835f247307377e60331345ac8 = "4aae9841ae5ceacc91795d738b2c3eade8a980a6" +a17a968d2c0c8a13a7aa1beb42f9730318667b92 = "705891ee132f17aebe89aa6364d54a40e4b854d1" +aa8427e1fd6a248cc8eb698710755b14e17a645e = "0c6714a4358364d3c03bd96af6f146dc22a0a456" +abe40789d3cc0a36b529520003d97a6d6509b22a = "7f71c82ec88516362393e16ac35fb2bb6ce4ff10" +b0be357ab3c578f6e0fd7f58d857a0586cd5a6e3 = "aab817f258d3a5d048cfe06c77a04cabd36b1d25" +b1f1d920a0f4aedf3a9f5434daa1d6b048969d6b = "1d0db2fbe3cffddcebd4b78c59f26c0f062e0f0a" +b5d109d5040f339195c41440cbefcc6eb46b22db = "4aebff95e0c44934dde0b927f5aca17cd68fcd75" +bcca68b5ece29e4cfb6906209d00981cabcbfcd9 = "1e6f3d8f5fc5dcd000fcf89b8c5026ae357d732f" +cfc3471ac26e0027c31fb39bd2d1af1b79ddebd6 = "3d07695dce161563a14c1f861aeabf22548fe35b" +d6d30084c8cbb5713bcdad1c7748fdacf50d6ea6 = "7f6b67708c422054aa8bd46e18e3cf89ea3fb99c" +e595ee8b746e0604e82dd77d18777045601545d9 = "2814a0173fe99a3121f3d8714e661e46b9ddf187" +f2c056d9b367303d5e6e54f300056c0c693f52a1 = "73409c356fe194ed1556a79c57b1b856329cdb64" +f6490b171daea0e9553cbd7251846eb15c5efef0 = "aba2d63e3dcdaf800626076e82768847792f492c" + +[7186c646-c682-5568-b8f7-a702076b479d] +0a131332b26e272153f4370bbe8adb70ec483e56 = "ffab268b792322bb5195a86e83404c6abe47b717" +16d7ab3dc373b7ae68eff3e299e3bfa674f3f24c = "adcf768d28028739ac8888284fc55a57e6a06aa6" +3421a83c559d6866eddc28909d9d19d92fb59545 = "d35186419251d94f14912bd0d46b98d54a1e27ac" +3845c92bb15024c4eb690bdccb02b6d693423cae = "6e8c5656cee65d8cfc5baf30fb6233807bc08709" +aaa501d5074a057d1d2a610c21964f659b624ccf = "0303996d94613ac1d131a99b5bac517cf2b6376c" +b8abe9647e4910fcfb817c90cd16392199248978 = "b1361933bb3e8da9ecaaac1b4ec78f8c68e2c537" +c107312d72b8c64228a25fba4996a586f2030ab0 = "576b132a192d63a4d33911a9e191fabfab3c348b" +fbe9d3d0d304d9602a905455d7ad8a70e60b5fbc = "1ed986160c7b34af04756377f7b85a6ce4fdb51c" + +[7200193e-83a8-5a55-b20d-5d36d44a0795] +29a0b6f234cee344279e188ed0a96e057b511602 = "0524e152f27cb777f403e02e81eda440a9054993" +4318593032bb8777f46be2756d06936bb178f73d = "44ef6b84249eabb1340baecb033bdfb9e61515d5" +53e63fb57754a093fc30cbfc78b4b829cf7cb584 = "c8f2fe7f685848edac4a93044fe5bac839763b05" +8502a7f191f7e19f11e2af9d1b11ea58e8e0f9a6 = "410ac8e16e4648b184afb0572c9b16463ff7dcca" +8d3125590cbf32a09d07b09862a2dc402a69b338 = "808983c84bf200719ccd590950ce1ce3df94bb6f" + +[7269a6da-0436-5bbc-96c2-40638cbb6118] +01792037384efbcfc6146b71c71f45bcf490d760 = "7bb4e42ce2e2a4ffe60e8ee4eee9b1aaf4bc7add" +0a5cde445c83b9eda53066b76f23b0f4d3fc4dd0 = "630949bb9f1e27151e57d5662f06abf286fc2289" +8e31feeaf5186cd762ef578ca8f8f2f283cb5b51 = "d62f3b0f9e82ed0066fae1f3b1732d61111fa581" +9e8cb73ed7d45e0e5f77ad527a499545a314eda1 = "126dece652b1c663be96ff83620f2b11af619948" +d00ac72fe61bd175e393dfbd469910a139228006 = "64d4ef16ae8f8e4add75ed9d086fc39609f53738" +df3323bbb328b503acf832e60fb713c4f84f5bd9 = "e17542cd3f7fe2d31117b684eb3a88305682dc86" +e145c9f11f15048859d2485ad4849932d66eea5b = "d67d3c1d656f1672ce821169b33debe491eda134" +ef415a41fb14922a00867f592ef2b0cd93ec6e89 = "ad3ff5cfe25544ee2f4394859fe1687d4eed1e37" +fe6878bbfe501b4f00c938d37cd0c6e5e7cd0fd7 = "5bd95cdc7bfdbfa05864354334a98d6ea00a5903" + +[72b4f566-20aa-5d34-a893-970ba56e54ed] +2a49c24845325a2643630450274770f8295b4653 = "1c722b71d6df664bd06c72a22a1d8fb1ee6c15d4" +675b4cbf6713f55663a3b8d46d25fb178cdf66ef = "c3264952f18d3ff8f729d8f026c64424a2c04884" +93d2f5bdf141f70f155da69d86b0128c8a00bf1a = "0e94bcd31fa35770cf7676c76a9c9fce18dc86e5" +a626a5ba8096a3b54caee22ea34ae37885c4b49a = "9803ac18a3285c8ccb20b7def7c75f78d80ad397" +f51371e8e7f23c98fa29d44020043527999041a0 = "ac765a42794b94954a6243efc47db47e5b4ca9d6" + +[72bd7bb1-b4bd-5012-9e0f-f33a954fca4c] +3e93b817ce7a7a6cfa97e6c940057f63703133b3 = "1bafa4b5e0ec4998c1d9178d4fdb5ed010843844" +4dcf8ee87490b55b67c97b025c88d6051539e1de = "56bc31b8b30b68b7c60d7624c527e86f2362192d" +545fdd2dc130765d3136d9c9aabd9a6935c7e948 = "912b37d871fede8b54395a8aa533333351b8cfe5" +7b0ced2732c1197bb8333941725d75e70deece83 = "3ffa565d5676856fc4c4524696f3273ac25f95ec" + +[72f80fcb-8c52-57d9-aff0-40c1a3526986] +2223cbac2e30970608e499a3bdd29659832e254e = "878419f1577a9832a7c50f5f9294124c14dfdd2b" +279f625dc941f9e09c3d6aecc76294746befe602 = "a34a4dd0ae1f77bcadf57f6610fb63a0d7f944b9" +6c0ec6f0f1cf18db076e77f387c8959cacba2338 = "47f820c99a16b9408bfff5565b5bb131a8025f0d" +9d1b88f998c842e8ebb75182e11e90821d8043df = "0f1d953cf683c0f038079eb3bd3a249b4878e2ae" +e2f860c14aecc7ba60d500c6d35e3aac5b8a4f5f = "4f845153356320e85b0b5b95b059c0abc166fc20" + +[731186ca-8d62-57ce-b412-fbd966d074cd] +06c800494be02cb8061cd02aba459667cf727e25 = "ae86f657a474d1626143a2b582ef269bb88138a0" +09e4ad153052dbb2606c8d1deaf6f2813acb1a86 = "0dd14006ee200580ca52e1bab4028dc745fe3618" +0c3431dd08ba840ad1d807c835e42d2360d9b411 = "e858099b3622bef2d710c199c338d41b14027cc9" +19b71ed3b0df58662d53ddf28136dd64a620344d = "da66e073073ef8476469ca4dacd1bb328fac50a6" +19c0532ef77beabb7a09118ab8dcb3fbb13bc402 = "a792e49ecc406b9fbdf8d1019b8ce89d37ccf1eb" +22c18d86653e56591fde6c7ff70a0e607c4a26fb = "4195e129e8b714723d0964b40951de29713a6d7b" +3f956efb265d2ca05ca03b1b438705d9c539e356 = "db59c1af3b3d058c15e34f9b0ead5d1102e4a354" +47849e78095e4a86c8b23236ca05e861d61cb55d = "e8df594eb9816b6e0dcd149899bb6348f3fd9196" +5f20d540d19e25989a710c6a4814750203096a23 = "00a14daf923d5a938007686c519de9ebd6887209" +5f22f9ea321f359e2e97ad115b2fe64151e1fa6e = "c2d0ec5a29f1efa959842628bde6bf4b139af6d4" +6827bbf1650d18640c15c57d49bd9caa0837c532 = "9bbccdedece042e59123cc240d28b38f33ce34c6" +7346d2c222a7c753fb2def512104e29795829b41 = "a5010b6e55f7c1b4187a6f22d6eb0447f69ca1b4" +795d4d48668c9125d23f108ce459f4b549bd9f91 = "b949c73217d1ed2685e22be597b512c3a8db6fc7" +876d5a4a12f4e3681bda45944b0c4ac63de2c0f6 = "749a65c809b1319fc73b2f5bc3d78dc87ace0662" +96a83a43ebaf899a3725c9f8ff1e18607b11d396 = "b3a21c2f6c7c8539be2475c22f9b636cce4f2711" +97b3bb7d76fc80e3704797645a6eb97c3a321fab = "d891e3395d4835b30cd04ff9e73df81cbf097e79" +9a95543ed2a9af0f45c2a1b0fbdd095957b15196 = "f56a933bc68da9fa9aaf5040a13e743b32d008a1" +9c4a4f413bb073be826d4da8028b46c5ed8f1254 = "03e983564d18d1c5d251f70e7d3af2cccd737577" +9d2a40e0a299966ae72af07acb16d77ea1b25046 = "c49cba14b7b6ba40dffbb0142287d6d9658cec5c" +9f6ed2848bda622c9011077abd955ac484c0ec73 = "5a21a73cd95681e7921fbcf6ca4c6d29b75a4604" +a941a733727a057b978fa6ab7f8601e016c92d47 = "e06e877cba2e0cbba80b9e1c70b0cb60ef94ccb7" +a9ffb9e6ceb018adda44fcf473f54fe14c7558f6 = "349b71a21841a707c454d00de913515ecfb5d663" +b6a1411807f6d1916dd4523cccdcd37837b0d0f8 = "b2de110d21611a195cf22a52f15f651d97aa519c" +c049fc3eedea044892d7246c8e0c6cd187cca629 = "a7cf7de533d5624e41e5dec658f725bb1c6ac357" +c2d8019ada0a8515f3fd731d822a2122cd6cde6a = "6939c258d5f66baf6a55eb6cb1c213c0bd996243" +c640dedbf95f70bc38c283fd0305e1ed37bbb785 = "58196e508ded85e66c2f90a04cae11b9dc39e2ae" +c6c13cf545b658af4564c53a7d57d7e5e4e4146b = "bc3faf458bc9ec564d340190c94c63b4e872fbc4" +c7ee8d33617d7f726f19d51a7fa097312671557e = "6ccabb21629117a5e88a6c819ac62ea8dbe65f5f" +ce3ae7316d7cf07fd2679d42d20a683346ee0b4d = "856bb94067e0415dd2b90e7f148d7e5f291c1a2d" +d10bfba7ec0025d5868f236fce83c68ac5722ce6 = "62e4aafe57549e4cd417e165352032eb7aa21896" +df0c00e5c4300c4c4501295102cd8be8a6b5593f = "39607772e9a82eeb0cfb70d171206f4f38e7a13a" +e367d9eb5c5706692241fcdc4d3272ee7c44e8fb = "f9e83ed4c1990a5e7ea66b6ce83519b1782b83ef" +f0ce24d40c7e708083f8b1fc81dfb1a9c9100ba5 = "a3c4c392699978584684fa8f3b4a5c4727995801" +f2df3313b48babf66e4ca3e0a1bbf48f54545e55 = "1ec92572536fc5c2dd2bd19f81119d5fe324a61f" +f3fa5ca7ad289fd52a181a97e7ca9db880141586 = "94cf5cc94357ea739183801360614504c260bb9d" + +[732a3c5d-d6c0-58bc-adb1-1b51709a25e2] +04d751ed36aecbcec87c584d13fa726f24c167cb = "5e8d8a8e5e12d31e9e29906f1a47cc84d67c326b" +2420038ef8b65ddc147ef497b240c79b933eb5e9 = "2ac522ad7f9db72426b9c9a2ecb33ace69ad255b" +357d7d40dfcb2eea82dee85dd0a2107525d2e120 = "85ad7849fac8cb86310824c1c90e8a9674875c9b" + +[7330617f-0fd5-5d6e-ba18-c28896f68b72] +85aa843449dc1c73082a6e2e65c3e4a4fae54dcf = "ca5b7a74014c95d7a46364fc3e16faa63633496c" + +[735ffce8-66c7-5b61-a90f-89c46d1a79d5] +271d042a61023c73aba9fef1ad3987f28b9d5e49 = "2b0dc188b47f4901762544db23a82efafa65a674" +2b06c65c0e721c1d40a914eac2700b6428539fb3 = "9754d4412f805d1ce18d0ebf9a6896a98020e261" +2d1a7a583a1c74796d57d743e0bd81570f894cc3 = "95fdf6e36554ff2d42f2cf87a996b5985ab33582" +3612c71270e39b4de4f8e506c2a3865aae72ed8d = "0d74c9a8d663783931d39b0dbe3a802636a18770" +50f20b17f35272446442bf943bc0e93913c368e0 = "fcf918375e38ace67ae1c22ad145aa1f6c4225f5" +7aa2e386c398f04f83b8d3a093e0d3fd23a5abb2 = "1a0ce5761b871ba3a9c6a1585b7732c75248c780" +a4a3069bce44f79a6123f0d872371d600df30857 = "903649ebc02d4bd3d231283b20d885b264c2e0be" +bdf1df2784dda5bffd421854ef667529db1259f1 = "93d67e54873ac9b784c32371d7ccb54661520076" +d31355d288303bd980298c4aa3a3a5fe9c239dd9 = "29436b2c62e2f122896bdad535550823f59ecb3f" +d9657cd3f52d58831f7932e60b86e16cce7ba322 = "29eed4b54bbcf1f094e9ec64e1365b7ba31f729d" +dc76caaf52433cf66b5cb03da98e1c6d30e7a569 = "94e76dcc063c240b3f67cdc8ce9517cbf37f2a22" +e09075c7c1f6c31ccad6367a16a7d8d10635de83 = "0ab1303d8af0a2f0669270c86e2ca8d7e0621b5c" +e3a852f99ff10125134dcdbc48b43a7fe9c3e029 = "1df4f888f9e5044e2a2f0ec555361e450c5b96bf" +f58385b5c53cd3e52c6617c0cdcf4c1f254809e5 = "222079a22974edc44faa2962b43bf998cb95f183" +f5d8c6d4c3c47860a2fca7740549d800fdfed731 = "86bde013bbecf07d74cf209575c6e4d4b2ee91d2" + +[73760f76-fbc4-59ce-8f25-708e95d2df96] +150c9eb45fc77a2606d38491a8b67967aed013e1 = "6117918fc899c486e4d88895da0aa81f74c23a6a" +a97a950ceeb054d833a4aaed6b0aad3099b28772 = "4ba2726589b9b4c7637d0f37753cecd35f7fe4e0" +d372267044c696df5a54c94e80acde176e17a220 = "59df5315d6092212d42f14cfc143da78159babfc" + +[739be429-bea8-5141-9913-cc70e7f3736d] +09a856f884542722bc3ffca9fab12c57fe2da5ec = "ff4c327886cf80a607454f397fb1241a95bd426a" +173250ee12dc581fa8f22d8ab5173a89e528497e = "d6952cf17923ab0447ced60b95ae18eeab35d9a2" +18dfb5cde748f601fcb4546316d6f1deb8556d21 = "281300b47553de9244e30879f44a10c2eecec1bf" +21e642d0e5d302d503a705e81846376fe1fcefda = "3522a5450e4578d0aeb842d07cc364caaff405d3" +29b7c9424d7e1c32d8c107de27e47b90aa35655b = "74698ae55b6c28e4385efc5a7a5a931def4f6c1b" +2ca7a3cb6aaf3de0fc1fd7de9ce7a782958e0cd2 = "27f4d6eaea258c2dcedc03181e069886c192d1df" +3fc47bd49fc59e33042cea50e9228f68e8a09d9f = "d3dcca75335c09574db8b31b8651efcefb84049f" +43e1a4552063566761ea72bce47db0aee44666c8 = "ff98c230848df1c0227731bcb0920c3f25838b9c" +545b9f463873b8b80407aea6ecab4f498a7a1b04 = "235468d8b9c3ed7d60429ee61cb403d7040e5738" +634d9a9a047c4b9b094eec1fdf38e37b16d4a936 = "c0aab0b43a4317ff97d0764d4682f53df0a4e351" +714b8db68060a9971d6453bb915b775e4a579d18 = "c85228d99741c12fb99db1f4320bd7a93ce13601" +780c9187bf2d02b2f063052ec3e1c29cc04e752d = "6f804a8848284c3ca3a544747c44bdbd21190fc6" +7f54bb13d23e244b9687edb46447e96498af2eac = "b37161e7f8ed0654dc5308f3c05cbadd34cb7573" +8f1a1757cab75325ff909b495208996009bb0496 = "249f24d96196e90e0b4125ba7827ea2478f7c555" +946d9389ec707bfd0cbd78a20141abe0d8f2d703 = "714b8ad53b78378d03e4087d77865b0ead66201a" +97a24eb845646a9b0ec3d79a93d51fcae2008dc0 = "44784eb0b287104387fe22fa078f2436740b29a3" +9f143965da1673718e25cbeb9492aac7fc22c9a4 = "281ba61f47b9fbe503bf97ed84ccc8fce26d027e" +a4bcb6826f8725a023894308c77da996bcf0a645 = "e55bb18bd13850e5a3c6290a3fc689b4c0077a76" +afd2ef93ca24ff231f1c0fb656644f50bf1ac14e = "17decc9e76384effe6b2831f6ec9559e53749d09" +d77b6d1ed576f99ea3adbcbcec2c359d692038bf = "e039e9d3ec457524dc4d66818e372282555f12fa" +e1d243fc4b10704cd79abfbdaf98952418d1a983 = "35b2338a0b86ec733436b684328a14291cd86962" +ebf39081ad7651288858f5bbc6bdd4b490e40b7a = "18cf0c09f5ead0d0e832dc62a4765f0c09808819" +fcab83b78243c5572ba80454cd0e986b587f544b = "3d21b467cf157ce8be7acee73f1641e41229a764" +fce850db371b86616948901d09d4f7962d2aa229 = "c9dd420a3c57f30bfceaed7e16fef4ae55545b92" + +[73a40cab-d838-598c-9e4f-fbeedd26c289] +475c6511caf87570b78d233ab1f419b00ba011b5 = "d0c0ce1b984222acd6a27984f93b9e42d3850aa6" + +[73a701b4-84e1-5df0-88ff-1968ee2ee8dc] +089d7adbae8085204ea7183a1e887d9629e2297e = "d49043fa020a14afb6411136cc913e8e9883f685" +1057422fcb46adfab2c689c341e33d0113a0e62d = "9894a234385f9bc77e414b1236ed4db53cdccb28" +32e764e7075154842709815f9d262507d50ce37f = "4f648ce2f0352475d9cf7fc738b3ce3cea3e172e" +33f5f1397fe93ed329c80dacfaf77e3c0d99e505 = "8e2238de206ce98f87b60be33cf9637f78c152ca" +3ec3e58cb3eb942891ae480ab85b013fd7a5cea5 = "a14533331a25520c9bcdba4cc154077a3dd0bcf0" +4d0571e031225abc643d8c0064b4b1735564c188 = "cb65696f7aedd0b3f26fcd799748b6de88bf6af6" +4ee138074f57932c55f1c93118c90e7578296206 = "cd07f365b030ec7369ac1eeea81417f5e66b6ccc" +61d8deb1688d2c2e571e118c468945dbb74601ff = "70e8d0d91d4b002e623a1c6203b4284583e966b2" +65c5caa4826ffcbab5200830ec4ed39eec12f367 = "ae99bccba3258c4cf04e6564b3e2bb2d6dd654bd" +79040583a127ae686d1ddfc46353f19bde3ec68f = "4fd36965b7453e85a41e9bcd83055c3e8784b95e" +acf7dfbc6ae8515bb4213d9b0f7c54511ac91998 = "2b4041682d28939b048f9f5c03da78ba1689ee9c" + +[73af2aaf-3f58-5b29-82a9-435ecf827f5b] +99c25cb04e39d3114ba6f4c11c0fc3ef65568fbd = "0b8f7a8850bae4b11c5788c2b7fc0336d2fb0f15" +ad07a389773b7f98abfe13038c38c636eafabc7a = "96a84ec406f94bdf5e7574cd8fc602ae37a7a993" + +[741eb8d8-1b8a-5b1d-9526-a7052a967f3d] +27cf8e493df443d7b118c3a61e3041bf6e649965 = "6edd59e9313d81f40ef74648cc6c227d6d69f814" +a25564f96185feb5796405958156669f457c4935 = "018e0cd3d8f322de08ea4785161c08f8789c2028" + +[744748f2-ebff-55e5-9df3-df674b774292] +42a4a1affc99c6e13536f5bcc647845e0bc3d71e = "abc0f091f2b2b625a8ec0e89ea0f5199745b8c3f" +7c6e6a186ce04ea308a336e731c1e3ad6998f4fe = "e2f54726d10d04a378ad53cc92168c97c4d720d4" +839bbb619507f00e0398d05272a34ede97e8686a = "8d79ba2a29199e6db83c01386db41981b6dc0803" +89283dec3e4bb09bd040c9a83d6d04b5552722ed = "7815a5cf4473c7851cb6c122b8e6c837ea37389e" +c55b86dba59c7d81c776a8c8de16daf2e0b9eb18 = "6dff0bf5f1c126ae241774f8bd28e03644fcaa2c" +ecadc3f747fdd3aaa7a10ff2688dfb91bd5f3927 = "bc42b51727b193e1114937449f14ef65008990e8" + +[74e4bba8-bad1-5cfd-9e93-3875e29503ec] +189cd504c266cd3351d1d61155cb7164ab49f073 = "ac8987f2ca7dbc714ad4c6e0d881682b80c374f3" +52da6796e79dd6dd4deef8a049c32b3c90a46c7b = "3cd73279c06b1f2fe9d1aaab1c1d1d3720932a36" +dfac2f8902624cafe6c77fad0e939fd2873a5308 = "16a4f8724289f9559b5449a897d9f1c975191df4" + +[7522ee7d-7047-56d0-94d9-4bc626e7058d] +0dff2862ca1c092863d3ecf70e7720b06a0c8781 = "10bbf4300aaea7859937974e5f672937ee9367a6" +3da5ab97f7d49fa3edf23783cbffbe5fbc85ff24 = "e01807175ea4fcb29c2d4f4f4f81e22c0affd4dc" +4fceb2006fc8307e1f90cec7600d1579aa452ffe = "3de8b7b1764431aea93f1dda464a4669879088d5" + +[7545e2a2-eded-5652-8d61-4d7be8e6d59e] +5878f12020e32dde057bf2e5c35b7225c97d95b4 = "3068d6f09a65fbf6577af52f59836e07fd551ae1" + +[7577c65e-8fec-53c3-a011-b98165e3da76] +72d51a86d502deb709b54588f49bc02c332ee284 = "65022944920f43c7bd34504ee67db0977518b023" +8239f384265a6871186433cae2a31f01d022044a = "fb90ee882ff567d087b7335e57a0f020499a2929" +9967b42d59bd22f49c939c8bfaaf87d0b933b732 = "6ddb28a2755e95b1fd4ecd353b866cde41531791" +d323520b2bc105bb10d26237b1d6438b61c2c764 = "3361885635d2da61d59a61346f39aada3921bae9" + +[75c7ada1-017a-5fb6-b8c7-2125ff2d6c93] +dc0cafb5e712807a7460847bdbc5ddb5e423fa8c = "2ad118815367f66f07daf82908dd2da5dbaad68a" + +[76087f3c-5699-56af-9a33-bf431cd00edd] +00417b7634700ebacaf6dbd0d9582d0ff25b6bf3 = "01d01098a80698af5b1f5634097f59e81fec0403" +093fb2030b566ae32b363c277a9460d9719a9e4e = "7f9909793d311c0658abcd2ff1f4c468b209735f" +10c47956c082e1c3191f51fed43420c96ba02dcb = "3829ce67f11f03285337a10f6761f2db4fba1eef" +334e9d69d5aeb89c45fd9fd1c663b118541b32f2 = "48497699915a287dc43ca8946a711120b255b612" +4e0df34e750bd0b8e20bedef37267b40ef529581 = "1862e19df5480fff1a3f5bf1f61f158b125efb86" +523987afbb32105ed78dad0a127298284113147d = "2b879693c8404afe3cc6c3a7d7b982aafc9d0849" +54a469cb9b9f4252aa5ca0cad3d5aa4d69881e18 = "40aab0eea3dabb003a6c9655dd62345c1e2a266b" +54e04be6edfb5c8d7dfe455c587413b66e97abe6 = "7c982c27fe0dc06ba8d7edca878be53799c7223d" +78a635d334b51dd6ab696bb7d2670973e794846e = "ac9ab02e347c6eca8987681cc5a76cdbcb48e4da" +790b14028c88109e3c19922e57af2ab194ed5ae8 = "89acc6f4f4f806cee2e6f92a6479f5ac1ff1ab3a" +8616a099521d15bd65eeddfa763a1177525a096f = "1dccd8dde6bb1b38e3b45dc1a89bad0911a118c6" +9466bdbb27c3c2656596f94dde24c5bf2525f7a7 = "b435f2a6e62218732b90e17cce73212122f5940c" +a89125c6930d5559963bd0222d45e5bb7869569b = "02c583e6eaa8e08506a8d41cea4a6ddbfa179081" +befd716a8ad61778aa60f08a0ab9513d67e80735 = "30249fca999358e4d6d5bfbad612fd2a2f00493e" +dfaeff4a2a84a89eeddfc6070c346c322ed747b2 = "312c368321acfa9ed91cbb4fd9946cb55f71140d" +e7a4a2821dcd20d61941a57db723949f2134baf6 = "f1edddb4d391cdb20b6848e240d3ab3657fe54fb" +e7d5b9feedd2a60ae2dcf878112ddfaa2907a236 = "ffdf9e4eaac402d6971f196c64cf99cfed9bc121" +e8e736f20cd4b08e8fbfc15686f4a87ba5e1aae7 = "be59bee23ede8b5f21ed5c7563fdd116f7503c5a" + +[764a87c0-6b3e-53db-9096-fe964310641d] +4b3df43a7270195b405645386c621e6278eb2dc0 = "95c137c8f8cf1cd5df7896f35dd4179ef4cf43fb" +6ae90c6e5289fb4d60776c66bd1711aab733f235 = "3fbe0179418bf0b099ee8aa9c9413b12be292cbe" +a075a774c48b896001dafd72514cca9892be59b9 = "aa356c832a453728d5fa3a60d1ce74c49fd93fe2" +a29fbdf83020f27765e5e80391d90cdc4f972912 = "4723aa040b6779547cd2c664ad1e84ebc9fb6751" +d6b2bcace6c743250366bfea67d2366c4d79d018 = "9a3bc25275e506eaa5fdbbe75c33f08510309886" + +[76746363-e552-5dba-9a5a-cef6fa9cc5ab] +34a98aefa0d5f1bef407f990107a940b57aed651 = "d16397c9cddf6eded32d05c6717091183f67e31a" +4ea8c3059c8b28844eb913624d448dfba71f5db2 = "8a6d875a7c064e18de50927805842d610c5ba727" +69e9fe5f54c0d8581bf7a1436b67316b949b12a1 = "a01809e28116504b7f5a17232075b9614f17ad2b" +850085b34afdd0ee0aacd9e0568c9293b2127c9d = "6a8eab2cce082a2b08e4d39451ad8304858d9b41" +8bc8f62b944ea5b54c411740b77422b6c9bad843 = "d0808b0dd6a9379b7973156ffb748123ce1dce93" +985790b3ad1d6a83a07c3d9af504d16f0c765e86 = "54bdc3d00e8c6ae51b97df50b395485ef1ede8dc" +ac60ec041f853bcc16636bfa34c6d2f78cf4c88d = "a29af268deae512aa99de75fa48228ee3ee5109e" +f9e459a6b4e1fd451b17a54d406923f46916cad5 = "3d91e319b0aee591cd285475ef6ce774180c7817" + +[76f85450-5226-5b5a-8eaa-529ad045b433] +05516b01e22f1d607f2c7ef9afabacfee227b1f3 = "6fbed1c25b7ba936879f21f1dbc8ce16c19a14a3" +0ac16c748c84fc94a02d6279a367f5842bdc6565 = "1a671fdf4cafb02e89b6ea4db3a3f4326d20210e" +21a9b017ab31888868c12c7d47667d5c072a7e12 = "ff3c599b162b19caf420e463d36df2128ff75197" +3fefb7c0fecdf062e0151ff6ea9541e47e64894a = "a99585dd9071cbd1e5ee437bd9146a57aee6f130" +568ca2a1fe7bb8c4276a31e1dc89b22102a5b99a = "55bc3678b197ea362a81de1605975235f816d7c2" +77708813e29ff2bf0035fff5f6287b7301aa92fc = "29df382778889adcabe3d2b8e2438ebe2d6358e2" +789c16fb19c7b6a9dec2f01720546eb33ce53e63 = "4183171a4a57341b04fd63714a172a7553e9f4e8" +7d1f2ea33b2321aa715c7a221468a3ebb658c725 = "2788d6409baac036123394bd3d834920c9e4f7e3" +814a0b12e951f444e97ed393abf52e8792db20e3 = "0af26e00a37cb2754d32a553b65c257a508ce319" +84e08f2252ae901cb3fa545a8a9c8529038df5cf = "3f93ccf96e71e009cb477810df88813b0b3f6b6a" +8a44ae3facaea18f7b63084bfc2e56539857f306 = "fd081b8d7c502a14adb8bb765de4de754b526db0" +8eb26c2d191df226a1fc5eb47d7d187217fabb17 = "730941bba2aaf3bd1d419a2c923d928fa25f3a75" +eded9eb7dfff64043848b3c0a1fe4d7621fc1e78 = "6fab0984198685a3f6fa400314073b097cd9f568" +f7573d1a62e40d96fb4e3f78ea3c6619c5f2cd8d = "d77178dbca67a497f33eaab283c4cf5557fa9b54" + +[76ffa3fe-65f7-5442-ba3d-1cbb0e9351a7] +dbeafcdd0eda97e17d5fec2d03c0566e8d67bd87 = "c44ad6959819651d8ddbf781293e88d48304125a" + +[77172c1b-203f-54ac-aa54-3f1198fe9f90] +0469d901391ad3a991d5652cbad68629b00eace1 = "d9af64bfa84356735e745dcdd43c1ed9d41d3527" +0628780e68d68fb9d9e2d8ae373517cb07755c98 = "4ab80ceabe4ad67726f0373434cf4a708b5808ea" +101a72f78048f5ee49783d8a4cf7821eefdc483a = "dff77298f406fcd188da96315bd0c9738c63dcf0" +132940028fdf1bdb699b33b570bedc5db17285e7 = "b6941fdf138e0b301322590df0b7c13f7bdbe0e4" +1b667052430055846a8322efe40c6391bdf1d2f5 = "8e58cdc92048873b5df215e0a8845e4ca2073776" +1b86aaa02a4add4d0e27a4d4e6c798ff1d8b799b = "3ca33d77d124fe9f66942f00f807a0a93fbb0377" +44cf656319d438e9124401746396e512b5c51540 = "836ad7dbf2b0164953b02b712735d44f4f0e0da0" +4c410684c32de40c490cc1f1f29743aee43b7e47 = "1f706cbd3ea5d73f6b84f3861a4eb92f7e9922c8" +55e86ea6c65ac27f7d888f26683dd33003fa3dbf = "aea6d6227ba9c33f7a51dcf7a7d2403b58abd439" +6edd34596bf7650c16876b76f57c12f419d9e7f1 = "2f98ee799254892d19b8255c6d2f3b8bb89e9988" +6f25a1d5cc786c641576d79f238dc1368214ac6c = "f7d153aa45206ddd8e977c40fa73ab0609ba39e3" +75f242240d79a3cf0cdb80886a616671785099ce = "60c990399cbc6567a73cc55ce549c623a03e4223" +7fe15cc7c152baaf174aed5275f20f29d528ec15 = "46025251880febdfdf1c02e119f0657eaeacd67a" +8e0ddc5e443b5711bfcbae29f680ad9d44ea9bb0 = "698aa1974a270d76651baa3c27f12e2fd52cddf3" +96acf048b0800599eb1a7c51b8c279e79c8d4965 = "f725a5bc34256c118b8a7b538742285eaa03d9db" +a6c00ac0a36311d4ba0fc1f9f9461c7068059203 = "2768431f365e8c417e72c557be6493fb46117aae" +b6821d860395433cb3db2a3e6880144c18a05399 = "f8e967b295121804f632b7c5e439e3e907adde66" +c731d62e886286f6271e360e05c81b02c77653ad = "72e1a7e9a3336e09cc6f9588ee17feba88dae4c6" +d5201507b918c3bed8e7eb72c130352b984ebb7a = "2e42857af535543a2ead22d09ee2d212d5668e24" +e4643053385ad388a32f165776a49ab69cd09cda = "3b76187a38dabb84b1ac46916085269cb98555c9" +e546dc2cdc58ca2647674bda08fd5ef557c4f151 = "fe688be7c52ce451797d232f7352354c877b82d1" +e5bdf22b24122e2c203c5a66936c879b31091412 = "c61fbe043cb487cdfee2be7e5e1e187b65a87894" +ea62a572f5dd6fe745bf2c117ba766fddfb1cc36 = "430cff3a8c27866b08d232ee05a358a5bb05bcb1" +fd061264cfeb5c2ee8beb957d15136bd3408dc97 = "2879d700d2f36efe165c1ab9c414ff204ea107c7" + +[7774933c-dd73-5de8-a8c3-ca082e6dff1c] +2422c5cf3c98b4a000d81a25c7172c7cc16b0824 = "9c98fe25fbb9b792c041b73a395a83da137626be" +76d206d269d858cadcc2535ca929446a0e4453c0 = "c2e59ccaf2afbc1571a9cf9156bab04a5a76878d" +b89d74c589ffccdba2e757c2922be0e609146c37 = "f247dcef088f5a96f6fa3555629664e3419d615a" +f8e65d9f6d88ed71b84e0065772f701473d5edc2 = "c6e5068c16a145471745ce6d0c22a839978a4a27" + +[7774df62-37c0-5c21-b34d-f6d7f98f54bc] +166dd8f1b3de66869cca25a7c6c19fa09d808f04 = "bbd7bd97730d59ee59a588e1d137f6474bd9fe9b" +1aef752bad3219f5a624a6549fb71cd6280d23de = "42b01208914b94f3e74379093befe31433acc96d" +a25a05bd860265772530948e55cb33491ca73b0a = "94e6703c021c6e1a86ae92193100ad79e866df0a" +eae296327e2cdc9fc7e14cb49f953bbe28da09ea = "fbe329bf43af5385197744870411df9eb68192a8" +f0ea1fd23ec24579763ecf8382c92e62b58aeb1e = "66fd4af3b3adccf32e7abd1a389b2485d650d2e3" +f68a69d21ddb15bdf208065650264b026089e5d1 = "94ea84098190586ac0ac4c5a4d521ce1cf26b92a" +f7a02f318e70343671e901fc248e834f11610b47 = "8606e651400a952da12db415c0a22f0bf0e1adb7" + +[7779672a-5d86-5706-9bd0-ace5ecbc1638] +d9b937f55e4fd6dc328cf6fd1c6d76f1fffaea8a = "f7c7ed0bdcb922c14b19a396138a2b8351be53d3" + +[77a26b50-5914-5dd7-bc55-306e6241c503] +10b26ff5fbfbd89e31c241f7279793257fc4d239 = "ed768b424a98d67950ab352c7a87024c11d6586e" +12da4d398de85ad727c66c3d6fe2f2fa83ac7b59 = "2b389cd85021632f6ad066688e4d1c6620e2decc" +160986de3399de3591bcf19d4b3c61071bfcd7b6 = "8df12a3dfc7ddfe02216cfc8df76c42db929fc22" +1dcfb7fb853aa6c8e1fb64d4be90122dd6abb1d8 = "fbb6419254d3173ef8451810b101e2cf81df2493" +376391921df0f47f5709ec228feb128e627f7d80 = "bf5f1827e7028153004aa1f9addbb2f1f5c12764" +406018100c88d294f2c658557f88be7fa84dbefe = "4f4b14115cf86af645959bcaf6335c6c8fa1208e" +42db3d5cf9a33cf5cd6139fb91bb1b3f0afd54a1 = "04fa3588286bb47075d1d8de5dd55ca078bc3601" +76048c8f0e3bf8e5ddb00e7d538cccc9508d9b7b = "c9e5c0f10a05b9d44949a53484eb413a05177fad" +854368b2e9d09531d77cc4c2d2d761ee60b008e2 = "d2a737b3861937ca52e308868ce71115b014a2f4" +9f4ad2fe83bf43cac1c5900d652409fa76f99f0a = "3b2ca637c371b73685c6ac74da9bbdeb39a40307" +a1eadfbe5a5b92c94cb9ed4e0d2d9f6bc69213cb = "d71bab5412e8a162582466b4bcf87b3e1efe0a7c" +bc1c36f68e896aa78e5eb6dd48b4cc75a428b67b = "9221c54d0c504f3fb29da69b8a513d57f0701587" +bfbc93c67256043e24ba708dad9cfea2e55303de = "e6fc3bb3d87620fc6592c41afa3551f643885261" +cb9d1e7e6e14ae45a53566464170c4b068c7ad9b = "a3e1fab84d46783f217f7e73d1b0078e15e7d40c" +d785c171b6b6972aefc0f2f837ca65e61b50ae8b = "249c01ad47f33684e4e50e704ed549e1f190a3fb" +e6fdc07913bec15e206ca0062b11b9bd88e9c7c4 = "42bda515a94abd0b21d437c06aba4874bc3b0b2e" +fa752b95e9cd80babd7fafa6155737bbb9f2633b = "20fe250fb2903ef9acbb6dc54ddffe806df95b44" + +[77b51b56-6f8f-5c3a-9cb4-d71f9594ea6e] +03123c4ddc8565da09a301f3ea5a84f8304ce6c6 = "b910853a464218a037a41b5ede9d4409fa0b3533" +42e5b53d222b541aa32cdb1ab037dbe240461458 = "a0e948b6e8582308593bb244b2012e60c35cfb40" +4d0bf0f5e96f94c940c28eabc24278aceb8c292c = "e6a81943c815e2752ef34735e55901e530aa0fbe" +508c2ffc7a2a15063fb01f8bb8fba77c65394b26 = "fd7c20067586e0ae6fc2af99d91363d6bf21c97c" +684405940f43a3a16a5b57d6829a15cacbcc47f6 = "b23cd3f14bff248813d61b795e9b79a67744b879" +7e510042a994f2da93d3c9bb25cbb49b38313fc3 = "612869f8f6cb8442593e98c8cfbea8d611ed0235" +a588e609a665715ddaaefe388c40e586bc14f1be = "5db48353171dc87f1f5c328b35c0a8cc3b74e1d3" +db7a8747249735259aabe140e76ca2006c2284e1 = "dde4d9966d164d870f59115d450f7445221b391f" +f740ea1cc5267e8012cbbb7d445b6f3346e6b64e = "aeb88a608e8ea627bfd79cee1a422fdc16d4741b" + +[77ba4419-2d1f-58cd-9bb1-8ffee604a2e3] +46d4245fe036093e5844c0bfbc45de0b04152c27 = "f73606b592e8911871c2fce03f436f0035fcea3f" +4a9015c9cb561ca8b34db27fe8f1a6bc16d5abc8 = "da41557b099a85d331eaea0a0d55143c20a3a6fd" +6da4a4ea5679e6402810542f27c797e577100f31 = "e7dd843cc1ae06b1edebb0eead074a426bd81bf4" +6df371ff865038264210cb943af1c16313873c71 = "b77bcc4ce3224f284c519d371cc2291c573b47e0" +969151c5ff8022487379279ebac4a239a400dd44 = "87ea78e32dd66e96f001a8bef09d90af46d113aa" +ad7f3c3563262a37d51a51acb5f53475e720eda4 = "08fabd3ac6eba62ebff0eab0c1142dd62084c253" +b2148ab8461d73563dd4b7033e9a6546ec355328 = "67ded57dc6b1222cf15b0d85fc73159a7b70f7b6" +cbd6063e17379179bae17f7b01be877b325ca938 = "1cc4f4aa05480d44c4db0668a5d2671f032291bd" +ccd898ebbe6cc7659b5c3441fadbfa8dbe2a482a = "f550d14e7c0b58a8ba55b32e3d8c210f3329847f" +cd221663983a07f9700badfa7a8116e95a65dd83 = "1c79c27845d39a822c6bae896a6074bd8c6f056e" +e1929708a8529391b8f10c345b1cafa8c56ad18b = "835728556853f8fcde76171505ba2b5241969372" +f614e0c5acc80321fb66f88c42e75a2232343303 = "42353aeccb35ceb5ade32108a2799186cc38cd8f" +ff2d914f4879c6a6dc21c3cb34736311436ae430 = "3b18ebac4cc5f22fe5af9b4aa63210ae4495507a" + +[77dd3d4c-cb1d-5e09-9340-85030ff7ba66] +ec4c1f77562193e5b917218d45ac8e1f097bbe2a = "4bb2b9db6187fa74ac0ee5c551252aa702a854c0" + +[77f5812f-bd1f-5f6e-9b72-07b28d8bbbc3] +4c040ec5d6a963d4c65e9428e82ecefb77eaa8dd = "834c9adfdd89c3d6619a6b8b351ec18c826f98fa" +df8ad7ec982e48f91e56cea946d910037b83c50a = "8a819c089550afda7719be266013f85b36cae968" +e6b3b87cb9f6804e3c2070e72a741ebb8529d859 = "6890a6a61f1cd3b9c664d6a1455c173d493dd319" + +[7806a523-6efd-50cb-b5f6-3fa6f1930dbb] +051271024754502c44957d4df4c6c2eade2f9ca9 = "3cd94f3d3fdb76e0ff11af23e5284f6462201ef4" +05419b8fddbd8666a670799debd886851c5269a4 = "0186cfb28b8a0dd06b466bad16dc23db1e0a0b4f" +075079947bbb227ed2f4998f4267d8496d31b0b4 = "ba7b1584580e45fd9ff53f3358546cba8a3659ed" +0b82f5159a8b69708e868ab2ab95574783f3ea17 = "3f0d83658066533c302b02cd7b4ac6295af8ec82" +13ccdd3bd819d51d72b89dbc16737b20c10e4bb8 = "4a6bd70cbf4db6551ab3aa00d915be150376a671" +19f6da9109474cf21628e97b7a712ebca9bbd87b = "c0724af74e05521792e7f668a506820b8f98962f" +1b25af332c318ed17d94fd27d516b4711b0a278a = "caa399d596bd2b806b1fb19191d0403d77fc5369" +21cb20157508514bca0349b79d46035afc8fb3cf = "ea331691539ed096d12e16aa5c5ce82c688f40a8" +2a22974364b83229600362d0a668a5e90f28a65f = "a65f9b1f524fd558dd963364041409930453173b" +2aea471a4fd0c1073958670507152d6810458ffb = "763e970b7595a1f28bc29da3c1a78331e15a6258" +2b50b91c0bad543ffbb32146476d0fc871789bc4 = "b7f531dc378d79f23d68865317f3d74ecb484687" +2cb50b0292b02c0e65d5bf2704dda12b301be373 = "c35fa174f9590778a916aa64f736e567504e6e4f" +2d25e118870cf46b8a3cc299d4e22d358a825076 = "dce131eb70e4ab773cca8962ded616602f141bfb" +341c5cf761168d5061ffa83d2bcaf97b15078e31 = "b4784e06494c1371fc31e8dd282f44b40e29a68a" +398fdf19e4856d50e5729f80dc6342210f2260c4 = "b950c5484473e3f4224673203ddf18b239e0fa66" +43a0eadfb54809bee3e2a636879e346f41e6a402 = "cc8e3c31d07951800a1a3834ac5b7970a6797c7d" +4e81eff512bc97eb2e33356b6d18a39d935787bc = "a9e4ef62fecd8f1ff49195563d7c41f2fb13e0f4" +5a06c3f66d28a8bc2fb583de6c92969fa0b4fafa = "2605bd1351687dfb582ee1e327c380449a436bbf" +5f0adc5d6d0280f995ccc364e5d00a72f6387368 = "c0a93c7240da80f68e20ac563945d118cd19da56" +60a47e70c2afe5881525b3a8472a47d0aa6a4636 = "ef3c28c0959d6cb6f8035629912c6fccba261fe1" +6a5169e632ac729cacfbcfd384c2e35675430e8b = "56a01e053eb3e0af6da0b5ef84284de9dc96a68f" +80538a00fbd585ff4bd0be0f4a2cc9e8f7de2554 = "50cc6ade96f0a48dbc06846f2acfb287d0dbd3d0" +83765089feb5b2d30d72046ab78ca044841c827d = "101062e200a85f0db6fffdaa610247c78a2b22cd" +a40ae9145df85ee168cf7a5dd7ed5c95cafad068 = "6717b970dcc99e6598fcf8710758717fedf7af76" +aafb23a592716ad8d9f4a61b64ebe11511d56229 = "11705d14ec84e8f39b108148291311eee136b670" +df7ac51976d6f16e9d2465e48393a28de6ef4e54 = "94bf86e02463b486349dc3fdce9c587b69a7e6e2" +e52b425f0d96e68d5f1da21612f6960207065f3a = "94773d3d58a5f5e6dccb978db3c65403b595d99e" + +[7876af07-990d-54b4-ab0e-23690620f79a] +2e5a872e7e498ce204199779bd4dedd166645ec8 = "276fa06109ac5c80035cff711b0a18ad5b3117cc" +344355d8c58edf3149c3c3298628b24a4c8bbf1f = "046584dd01649b33cb163c841c06cc73c8f304d6" +449d01082a777ed174d9c534bf5a9e591d809560 = "3f6336838b0f4b529c6a3ac6f906f0ca7ef7c685" +526e34fdca2e3bb6959e6a236f4d9d717d3026d9 = "6cb40eba4dd78fc0fa3ebeb8cb7e125ba645be6e" +54af302a0877b0d7a02125db84ce613bca32c62b = "29a04c9d4de9e15249e84549d6f0eb107675c639" +9088d0a6d06d3bde0a97630c01b572f57fa879c8 = "902feab6e7a5830f67868832fcf6995fa74143ac" +98e8f780c1a3ce8ccd3ba12c47254e98ef4863b7 = "cdc9326598e62eeaf66ecfbe5c1be44283f4091d" +b1990792d709bd512084674e46fa2e334acede84 = "686e1ac14b35cce47f90c91200f904c603ace29e" +d1ef7b00a8fb9b8e4ee274b1db78a18f36f41408 = "a00ac7321b8911dcc9701242ab2b85932b17eebf" + +[787d08f9-d448-5407-9aad-5290dd7ab264] +184845be503a1397b84b42da5e4a63acd78b2d18 = "4f73e673731fc3b22f2307ffe64e2bc811163803" +971e354bc0dfde54c969d8599639854160c4b465 = "a210a1abd95e77ea5a2207a61c10322e086c77cd" + +[789caeaf-c7a9-5a7d-9973-96adeb23e2a0] +0420447d5ad31545072096e337cb61186e59d6ca = "63648b5b9b7b7784e7d635556bbb7ab00cc58132" +044b6da9f84702cd81613a073f825d96e288ab6b = "f3cf2d8c14dbd13c569f891480bd790d25a9df22" +0ab044951917bfee733628e00403e6bbaf3e51f6 = "7b4e7a07a6bfd65038f6eae3d188d3c4334c8bb6" +0b16531bdf53ea5341bb2b1b837e19d27daddfa1 = "cfb82b2557659ffb889ee0eb7ff1153eb4ee9cbf" +0cb4ec7a368b0a0c9a854e7c352050baf3bfd022 = "11fb6672866cfad7597c8cd189ec154fb0927a1a" +0f35b3869fb018653fdf6106c717861f734cd39b = "c8a2e19c242f655f69209988ff13f4766e019456" +1b4c869860430e9846efd40a7c3af87c53fac170 = "3ea52abce12becafe0028017851e1c8bf8874389" +1e02d3a57bfe6c7971d88aa4612f9f6db83d03d5 = "9aa76d94771351b6cb3cf9d07fea50fc5f626cc5" +1e5a24cad6b1ffe84f030a4ed6341d6fda6f3fa0 = "63cf2af55f91d7805da1d7577927e3cdcbf66045" +218e1b701ee0fe822a1309a1cf68b0f2d91bf15b = "696210b5078994481cfedeeecb00667f90b809fd" +23da7db6da0134f53aa78b07afbf58402a76d9b3 = "1c4277a1761f2eb564d04b75022d5aa68fbde329" +265fb117b16648277a98ad0b3bb2a2b6c901b7fa = "2288a8b8bf52b6c764b4d521d513bcd0f6b95331" +2b259c61a303900081506811d5bc3423e850ed86 = "1a3076430d4b75d01a085f441d32d88c1bbf969a" +3250f1b6f8363b3f811129258b54095eb5b8d40a = "6b23398ac44978688ec6dccb32d65055796c9f2c" +32790b506f1bc5741bc2900b83c98871fce0f712 = "93a490a815cc0d700397054f2c0286a644887b28" +33bed9171e4f232665bc0d9b993efaccd368e487 = "a91118994c3cafd798ee1084a9522a94b3adc294" +3456cfe6f2cf9009ae023e2d92694257b42f5004 = "426471c90a21e2cac5a9e15a8095fa564546c16a" +36960d8ed1b574447d98bf4eade4acea81ebe4e2 = "187c1143530fbf8d5cd265504a452a6f10ca5c80" +3888bdc750bc1f79cb0e7258a678a635353817c2 = "5f4fffbd42f204870ff48a965b1eeddeac2d8797" +3d2a3ce791e854e1fa75586690f352b8ccae353a = "8d7b8b353c5c416ba722eb7ce1ce503d875226fa" +42e46cb51f2f58f401adda909e8b8ce55a4d611c = "fc8862f1a1f3e0739f02b248dc2709a6fd5fdac1" +471a6c47a94c20705b8e9e8d44084a863899180f = "cde26591698649f200ba539551b037b7b1719c54" +4951b960ac3a7b7395782bf66750d8187f7c608b = "5cd952b63bd790cf07567ec92ae1a8f3ebe91efe" +5ba1e83a9e1686e66c18b6e8fda6df14d3f74480 = "42fd8c07fd16c0e96e39c53a18da498d085b1420" +743813d87a3c64f7f8e7cfa031a08c5ee8fc48bc = "4f3f62caacf0536d8de17d441c706394fbcf9486" +745b3ae5a9ed66e6045f4c0018f9d02f0b35eb8d = "734d7dc555a02331858d510c6bc6dbc590894514" +77795f1cb83f2f8b82d881fcdc400e41a61e2fa0 = "0b553788c9fb052b9934194ba7a410472790a944" +77f77a52c18bbc1ed0da2db1cee0d4060eab7b4f = "4b9c0d78e2e1d752cae848e94d7ab95c73cdfbde" +78a51cd21e7e4dbfe5da8a17dccb512528ed935d = "9d1c6a29a993a0398a9dab3ddda260004851a327" +80ff0e0ec2d570adab1552e5c66bbcba6a7d83fe = "6882a8e644d3c107e73f952ca7730cdbe91e2829" +8475a061d1e9ab22925f0a91cd52956ea46e470f = "f92f7a8b4874fd1a489853992f2b65698fdf4b03" +8518980759fe694ab56d685d7aef246dcbe03768 = "940ff652b819058eb94b8d5f1d6d6fd0a1d147ae" +89a3f660a21787edd6ea5701eb85e3d109800183 = "cbf75a37b29c0ac3aa99c7fc54384beb311b040b" +8b36f2136ddc289bed722cff2d02c6bb550048e1 = "281f4f5eca5bc623affd5d4df1242ff5de738386" +99c8fa134cbc8b0c90be3110c7506a5f7cd61cb7 = "aaab6c702d622d272cc0dc1fc8baaff2edc3437b" +9dc049ee667848f3aa23cfa2d471ef88c609c83a = "821a199e6be24dfc36fcee75d224e370a0b298dc" +9e160da798d88e201b16d0a6b814136c58ac49d8 = "c76632fd580c2c6594e942e8d582646f4b1ce2b9" +9faa8be6fb2138ae9fd507f07f309dabd3880f9a = "258946f1f30b35e1a1af132bc14dff00ab705777" +a0b62a7b672c33115a4e588f358af2070264434a = "3abda96de940178fae018163994de45ecb4b6d0a" +a5c1dc4a854f9ae31aa01525559a2ce437abe54e = "8b9cceddd77dcb79d8986ddd2cf91a1391f40ab6" +a62a06b1f061e4ee7f76c1bfe15b35d4a798964d = "4f290132fff160056b6683d04bad156080a6ceb3" +a8728b46d6f75489625d4d0f76f8e7402b5884ed = "ef764549111869faadd9b76d8a0e006946f47e7c" +ae69ef4f5cd80e2c7d36f479e59a57ec4d6e8e22 = "7210c0a775b7fe1606c4de2e584452b95bb2a2de" +b682c1e3d1f12388989d537d99b1129234d0fe94 = "f478d839fdd60a1fe914196e3e118c259fee789f" +b91b8cd99f4996d1a46d9ee0d3f33c20184b0898 = "d2ca486bb2ed541d0ee777c51050bc5dbce384da" +bd0516b2db2a189267bdf1e0ab0cb6603e8486fe = "8ba85f9ad34703dfd8fa95838bb980b0019c7a2d" +c0aea523b009b31ff9e0fa22abbae88c1c4f4bde = "94097d8f8a8b5c42f03503999ce05a1d8ee10944" +c21f9414bbd1868f376e9226781b69772de677a8 = "05282d13b5d2855468868eecc0db08de5ae84787" +d2c97966d5d547e221b280d097d4b8dd3cc6029d = "6a5b17307d8296c1af913e76fe06f629d12fa4dc" +d5d2c3a20ef28c5dbf7e3a0302282e6353034da6 = "4efdb5e82394232aaf44c875e0077bcb029a9dfe" +d956d619c36baf1c2663d24d443b95fbbb82507e = "35ab5f530e6c3f01ebde9a1f7b5ab3880e9083a8" +db687b77bc9f1e527e364acbb58c0bbc5ee4e146 = "713fab7c4a986025238da919d4f34128c946101e" +df56191ff71a4bf205794dca3166c0355a625b3b = "26e5313cf36e377618ef2e85d48def2c64504cb0" +e04accfa8f7acb988e11eae19d5a87a92ef407cd = "5c5922d016d27ca9d9d0e3be67fb6dc800de4352" +e0f46ffb37d0e908083df4df5ce15815d050dad0 = "37bba63267447e6463dff0361bbd07699f33ac8b" +e2cc207a3570f9b5c04ed07817ae64cee0c1b5e7 = "43d3565a7414ee870d128dd479d9b79a8dbfd573" +ea3f1ae97f522f5c6bf74c48327efc26afb15593 = "a3572669157aa0e6775bd2f83aa683d0b74dcd42" +ea92d569356f4995beec587911cc2e89ba232d60 = "6cef2e0724ce54c3b09a9a522eb4f8410e4c7664" +ee764f902e0994e177756e938945eb2b76753869 = "f29b37dec502bb342a9a1932aced38597a5d6468" +f53d32cbfba78920cbc2ad610f51a128cc68df66 = "5645a3cfb20392517be81cb99f6d924b24f86efa" +f695aa7ebef31d707922df93e55e6e4bf9c62ad4 = "4840c1259bd652f2a0d4ab73dbeda1a6850e03a1" +f792d76cd1f673571718bf511a6db77a47650f3d = "8e98d5c87f3815ccb1a14a7678d033aa9f1de23b" +f930d6e570ea72ff6979ad427f48796dd0df5f31 = "b65150eba7b2a1cccec3c2b0fe972908dc1aa39e" + +[78c3b35d-d492-501b-9361-3d52fe80e533] +04b8440ca7446aedf90b4816aa58892fd46f3229 = "f81536af6441ab8e7b250579b67265df70c84743" +3a90f5f215af00fb13c13d53a68558580d5f3f14 = "46043258b51e2302431659e649f59b38a82d0a4b" +3f133f37621ed4296b163b257f76794739e56f71 = "6b293eda8721b23ee58cbe70726c4f312959e18f" +49dff5ffcb922301ab1372834f87cc3f50e1462a = "2a65ba72e1549c34d8235b369216f0363d9b1f7c" +54d790ca5a24f387f818e7785ea832b7ca66bc1c = "b5ff4a05bcd7953d5f3831b3f1d6d43b12a5672e" +60933960474cce2f7c359b612f2b28d5d17e4c73 = "65605e8600ed9def4d2f7c264cf63965acbb2eca" +63be29e83f37a04828b4f870738e2dfb1df91f0d = "2057345e7dbd8f384efa3ffcaaf9e7aacc5c17e8" +6c7a2fa146354d517c5f4c863147fb5c4a009e14 = "7a0088b1a49e5a94e27b6e059fcb1785fdcb8970" +738d1f7a82ac7546531fd8cd63b7a418cb93a37f = "2bedec7af2694281792d562cf4582c85e3d0ce0c" +7b7bc782f241e7cdd97f04b773a208ba6a53b884 = "93aedca5e1ae792469f1a6249434cb8cac5beb79" +834ac12db8312ff67d15cbe1237be1cdc836474d = "18403836594dcb39636a6254d87b77bb7fa9d1f9" +8b6802c53a91a33edf929d2db8c2384ab6b57b85 = "482fcebf4a606abb97fd8997cc8a43194c1d5e10" +9443a16d02d57c6dec06f0cc3fa8b3ae94d0dc64 = "7ff45da82d9cc85d52526e04e6d67e2991fee573" +b657c35aa2273d0e5b17a25e3a5d45f5e585fa0d = "6fc14c28d739b4436ad3de06085a4e46533e12ba" +d636919fcaacca67aea4e9384bb60b6d34d7dedd = "e831aeb93e29f4010a29f2fa7f6e17543fa54f6d" +fa209e78baf021d2efae59dd8d03e097148c8385 = "25ee8cda62beeecd9d4fb360dc9b9d84028d46c8" +fe0e5c449a3254f8aed1a5e06d671ce0ad00b77b = "f97baa972c23777d1e628ed185a8262af5d38dd3" +fe424677921dadb0384d3480e601a79608810b81 = "701a1b83a526e31e593d02e6eae23bb8ef0d70ba" +fe68377c706b92486c9d2c0fe70205b177602d2e = "dbb9dbbc4711ddd01d146b80a98985a1aca2067d" + +[78ddff82-25fc-5f2b-89aa-309469cbf16f] +223ee7e5cffc57afee15521a9f39248046f26516 = "d008c21941326178a9134b8943abdfdfebf92616" +49da20ada0dc9ab4d875ab65b1233e557759d8c0 = "cb2b2e4d32b8f8b89c4664985d15c72a4f443c3b" +52b524b24f4131c9210e864f373fcd3dba2dca63 = "c9b15d03573fc89aef6eb925ec4e500509b5ca8c" +5e82bfc1250a0fd296fed5fdf77116ff17401cb3 = "ab4d2a49428bc2d2fb8aeccd9974d531f250d9ed" +6ab0632b05e8c6a024362d450ba234deee6bc309 = "3ead0ea46c97026029c15dfc54e99cab8414cc27" +7cee819f5eb5017f0f86ce51e5e01bac48bd1cac = "c34de3a5b0b18e5227064dc5f247180b5f7410a9" +9376aabee31e59faba02a48ab9b7627fc498bb32 = "a55f74352bc037c2674cde3c8d9d9f93d4fb10b1" +95980ff3374d8758aa96dc2097a844e34d56972f = "2568dd00010d8e047b3fe3d007b3269e6dc74bcb" +a6241ba07efe0f8232d89bc8381430d6d862a862 = "39a3938fe0acf15bcbb565acbc0186da2ac9b762" +b75946b41c9f110befd80077a07ab33c220ed1d0 = "ad620240fe57ed68372774bdcdb2b43c40fadeaf" +e1431cb9cbfaa00de536fd32de7a5ab232e277fb = "0a6371c5785e2002c40d13c2302c8acaae7a2e92" +fca720fbe0ad35bb23a6c43f6fc7d64cc07bd31c = "bc4e8fa102c67246347e8c7f32fb37e817ebc1d4" + +[79010b50-67e0-5194-b8a4-bd41d479c903] +ae2a649392dd170a638f4cacc221acc30a3c587f = "fd728b60b01d2626d43a1d00638c685f660d3e81" + +[79092676-5637-529b-9d80-ae8d074b0231] +255de3e278b99dd138902e8843c4f243eda4a7fb = "097f94d0bcb1dbdbfd500f9be6bc4bc56c41d8a4" +4fa791fce1ff457785d82c07f486d396137be285 = "a23c08c3dcf720f8cfc83e0388c90ba2e17c9acb" + +[79098fc4-a85e-5d69-aa6a-4863f24498fa] +136d37f615ad2bfb4ad9a56ec3beb7b1e201003a = "8137a8471ee8b4bcfb8aba7953cbfd38ab3afcf4" +1973a7049412e1f0ef7b7b9bf18249f37e5fd53d = "66d844f9148af365ba061c45577e85fc348ad417" +22a36940d41e2dfae3555cc7cde07b972d5cce20 = "b0510a74dd3daea6df1d938f5036ed74db38bb13" +2b3d4b86c26949edbd9a1415ed94f565ca8735ce = "338f5622ace0b1dcf2566c1f024f5c2f444eac5a" +3435e1fcd06b8c96066600d2f890c9ad33606830 = "033bfd48ea2dd52ddcdbaad55b9e9fd81bbcdbb4" +894e51d38c2d4779a35c1e7239cb4fc154499bd5 = "1f1d556d9a805647fa366cc382424270e7610668" +cfecfa748b508c7bd705cb5df7589a2732f0f38d = "953956dfdca3c769beab33b0fee1a89d38a9dc9e" +d43c100d5d56342233025fd912cf82ea1ac03376 = "3b44e937086835d6f9c92980551795fc81a3c2dd" +ee002e9ed4ec6689f59dbabb5e8c0eb0396eb778 = "b8fd434b2405bd31dc647f4b93a4e1938edc9bf4" +ee5083c4358d0ff85fb017a4c06973ca15440269 = "cbe2085158a481c5d744d17f57259778facc5ee5" +f6b155e70b956ac8f67242b755e025fc90146e63 = "fb33b121ac630cf29a6a6c4ce12a0ee90c36a891" +f9379c0e4a419e54af397583bc9ee6cdc7a1bcf8 = "5a5cfd505da2a716a2b0f6b3b8dcede29be4f8d4" + +[791156c7-410a-5ede-a1ee-bcadd1b7b4c0] +4fa945b1757deae61c90fbe61fd42f05663d0b17 = "f4119bca7493733de0ba4c77ca5f32fac30c8018" +c7f98793d067c6c0a394ffcfbddf54b875950a79 = "eeae8eb3820aa19c7891b0e31c56e6ac951000d2" + +[7914e933-53e9-565d-9a34-2612de3a385b] +1bda98319e2368fc806438dcdef10ee31a220608 = "7712559f0df40bbfcd0f3bce3dfd0cf0c8f6277e" +373932ca8e7c2c1e42b34140e953b5c9bf8abfe4 = "454bdd24216a6b0b4799b2a530749a1d5dddf70d" +483dc8244da554e505ba1b26bef6107bdfd21d2f = "3913c160b9dfcc33efc4e912f316f66dcaf77123" +52ea15055fbfafd7cf0302e56540a1f715033590 = "83c50eafa35c3f895fdeb812e10c0314549980cf" +73646038911e77ea2ec68f9dd0453bce80273542 = "d7ad781a6d0c9a77c8b1f1e88eee310db58191b9" +7539a86bcc330fdb9025320a623bd70e37647d83 = "375280c0966fe2a15296607b4bb45b642b67d0be" +7c7616ce8c8ec27aa0fc9daf29101d471a19e654 = "45a03e8bc89e4986c2b2f088a88b3a45dfdca6d2" +826b189d7599819eee35b07b1e13a8d12fff7866 = "3f15c06d14574425b7e80f7eca6df474aee926ca" +a78f6e502227c0e37080dca8ca06fb1ce18e6370 = "5043664400947c1afd07f3d31b3a421474d0ec09" +e2b9ff7f1747b29b6c779c6a8cc85fa87457f4ba = "423a0bdff08400705ad8f947a4adfa68e52b7f3d" +ea5f70facbb09455a7409029c82fc8f4d320b4d9 = "3ff17109a3fcbea52180c88a077dae12755bc7cd" +eeee407b3df35bfc94caab123a60af71ec414993 = "95794041b7920ba695d298ca161ff15970a8f852" +f117b54dfcbce6d3c13509e9d23299ba35cf4540 = "d556b40ea7fb3609094afe7eeb29eeab71b04efa" +f5dbfd093056bafdd23d0900338ce7e0024a9c73 = "c48db581860bbe8d49ed6ac4bc11db9784121369" +fa9f1b5dc52d0a79461f47d5d64b5d816ee176ab = "ead1b5e5deeb29c3295086c83f1e81d496914c27" + +[794876cc-7f88-5b71-9fa9-be3737d389f3] +04da94c51c4c8531e7fa1ebf0e4e722b2235ceb7 = "bb33a399347d95da86fdb755e1d8371ccb40dd9c" +12879cf6659ac1fd737330d6c584541debd6873b = "cc88a7e323f5e733d5f54adb4b4e3f98cf3e8a9e" +1ce4d17f38afd0f055c1a83653f4dd323355306d = "c1ddf49704bb71b916bb9e911e4a0c380aaab741" +233ce104b73457f0c83c57b57787fa3338efef51 = "386a0a7616994acd487dba9a40832a0645d77ee5" +31829f28127e33e06e469cee8d5ccc11a662fd5e = "4e38b7e8a73d82f5e3385a3ebe3f20f44b992f2f" +3305d4c501483f27db3377a5c457850c666388a1 = "da0d33be5d992c8c93312c48d08ee6762e92e8cf" +46d3e29b40aa9e6a021768516edd66d018218767 = "1ece5e7749c3fe58bf1c0d8f7c23fe648bf17f46" +7e79730aaa47b0caf14cce1852061ea37cbdedce = "b84ad643d6b035d1bc66eb1ddf4e05be7eb54299" +8c86df752bfdd7da8695fb5e5bbc38f546344e83 = "60cf0dd50d9172068635a7511adf3d5162329151" +d51dedff767ce1dad119faaea0dff0f4f31fe596 = "bbb30177e6898fa9d8489bb399f4452615ad5f6d" +f844cabaccf61b487f8e469014ed3f722a879d02 = "634fc3b75b5d4f8515dbef70fe6cccbd3c782577" + +[796d8c31-69d0-5366-9081-a3bf997f4f0d] +b740f2fb658be0b85ef4649d012a27e4610e3503 = "f3206c1e3548d933b5eedbd0260528166811e862" +e311333e3d725991450adab1cb4e7b95707d28ef = "bdab7f2e300e7f260637f44014bf69b1e75393ec" + +[79aaed0f-17f3-5ad7-83bd-392955e7e585] +74ed1e44e6b373b1a701383e4ac0ed0257b3f323 = "9e55aa830f3a763e068df4c66a8206828480e787" + +[79ba05a6-28b6-5cd2-83e9-fc7923bb48b0] +00a31b3c49acae0eeb74965409e30ef01109a51c = "94ceb72a3bf61e6808c642b4002ac946e87a6df2" +66d12b7b007a45c3c79237fe057f3db1dea55e0b = "7c70b9e4c7f8c937f8a79fd7599decad496317db" +963a51e1954502e79f28e9e9b21e71df6a368310 = "579dbdf8b8a212d9c840fbca1483ade271f6a77c" +d64ca7a81fd7b776b57d5d82029b41afca27eab7 = "b8429725f20d8308387ddda363c975a6b880d9b8" + +[79c8b4cd-a41a-55fa-907c-fab5288e1383] +08f2c42d89d95b1ee38ed566bf786f0331aa8a86 = "9963d201b3a6b2e1b766e8dc18e9cbee7ac1dcc7" +6113172f84bcf639b556ad111d278aa2a59cd513 = "71bd0af1c5857d4d15280b60a19e0e85a4bbef36" +9491451f2798b0379fb0ad9dc0173cc3f2ad81ad = "b51dcd7ab7400c710221c84121d1641ae4e09031" + +[79e6a3ab-5dfb-504d-930d-738a2a938a0e] +87ba4fab1f6f87b6b3662e5aa217b0db1937f2a3 = "a6a0dad2aaa94001e73e36ee08fdb1fbccbb8a2a" +a0acf34d77f9921877477958da358b99cd21c65f = "182b4f3518a049cd3b67e25102c99b530afeda82" + +[7a028c6d-7168-5faa-951c-a19b98876597] +aebbef15cc47d047e9bc22cc1ade03a5a5296917 = "72c873a072734ba0050d60cff2335c2c185341f5" + +[7a12625a-238d-50fd-b39a-03d52299707e] +2d51d07dd1fba2444468aa2339821046f49bb765 = "fa4bb3fc2250f32cff69d4fb139d4f3b48fc9050" +9c27037507c85dee9f938ed17dc969b71cadf90a = "68376a92a54eb82cfcf0e9d753a34ead7c579bd3" +af429ab57ca83ff576eab757c71913bdd741881e = "b0ac8cff49e8f0786b9e78f866d9eb0876a44272" +c1598f31e0d8c8c47837f8473e6d9a0f169e4025 = "6bc30e335c595fae76c1ec7b53bf6c40cf544283" +c9d565764a687fe48bade4ce558b658befd6a880 = "415ad9bb7e0f91e45ac6f969d2166f5599952443" +ce480f530e921e541c15663845e4cfe23ce2f945 = "d07b099e2a86a3b6d6d126e0acb1fd9ff9554793" +d4b734bc61c231c26c59afffba562d2dae3710a8 = "2fdd2b4cd073e051f5a5c3b492ec32a543ce580e" +d5155c7323127bfa477513209fc4d123641aa330 = "b7b76dca42087e55d041ba6676239475b053a595" +e01006a5348b61e68ec4fd3a24f563316093fb7c = "d3ed12c3a801ed449a7036c7e4de93db7b84f069" +ee6c52323f687afe01e535e6da17121bebe09649 = "415ad9bb7e0f91e45ac6f969d2166f5599952443" +fee14890f8448d8a9df1b690f6800b0b82fc1153 = "8d822bc03c4944c513e0ecd533e5d1f348358d6e" + +[7a1cc6ca-52ef-59f5-83cd-3a7055c09341] +070cd891fda64f956aab5c0f5062948ade060a16 = "d04e9e9fdf1d6de3192ff9e94cdb4bd35ca8351f" +084713cbb4a3e7c44449ad6b2c630a2ae5ddcf1f = "adfe40381f66506a81ffe7ff3f2458d4cc320634" +16c27b0fee2dbebddb799c87811aa791130679d2 = "4da4370edc280f555280db074257d5039d56ae56" +821e0c9866bdef236bea39174a12a9de440376e4 = "2e6e8c8c2b223afafc5811a6c280677bed01fd5d" +8302e8730150ed999d58e371edfe8db2a979af71 = "67b05266f4f7e834d56818112052333e1b6582d8" +9d57158dc646852d430a06a11584b35643b52048 = "25e0b79a25a9567375c22c0385a4d962b406e269" +f286acf2ef8e76cd6f45fc88c51efcd57c51d3e4 = "e40c757b1d67787148de1d112c9de335b3adca0e" + +[7a4c25eb-d21e-5a73-b51d-4e4edb72d913] +09e977acb80a7724df117fb796778936a80b6297 = "b51e2b336ae1ffde79e550c711b3192e088d879d" +13faa90f623b2b6949f57c7dcd0cabb3d503f1f3 = "b87cf55cba590cf2835ab80999f33cd06788e029" +1cfa9b4bf84a1cd98555f8c081afd5c61963098b = "a660bc751e0ed261f187140da71d664f1f2d0987" +2ce51e262e823f2378bd187eb517583c90724dd7 = "896889d99b6a289311095cd5202c2d192ccdb419" +319156c9ff6f22c230270389f65b73ccb03832bb = "854a646ede07f67a77a6309044fb44e7d38889a9" +4619de4ba376d6ce0a450fc09e38e09205645a11 = "2ad0ae67f8b2da1cf18c73d655717186cf4ee4f6" +65b9fb116390ffe5f24b8288eed0b879866887c8 = "bb6f945ddf3844fc7d657404fc242b2039d7b6dc" +6d21c56c260fd48ebbe08c1e7d77e1db5c0f75dd = "db0f68e47df6c6899143831804e119760db7d288" +748913d7fe3be09b87234bdff969b13dee5c02b0 = "8100c9b3d5fa8f7828925e44518bfa6ff8362a7a" +903bd8c4873aac13cb9a2c258ab37ac1a11ec4f6 = "9e7ec6d515ca33072dec6f5dd273ac9d37f4a0bd" +b9be2701e164b0f70a8abd4916bf98b34f4f7233 = "5307277d56932a30d061383526c6f2e0414b60e0" +d3cd673d4c9760bb084d94b31a5169f5f12bf5d5 = "963621066d12f654a92f1ea7e7cb37b0ef5dcfff" +d612b578a83c4c48c09dbb1fd03274e80546d66d = "d60cc838e948ed4fb055c944d7c33dd3dfed3557" +dcd7ae7d9e3a9bee64fa97ff26db7a83f91807fd = "709bf05fae20975a27f73fb0a31a861f1fd0aec9" +ec3029cf217e5593318585cb2537e88662d0282f = "ceeee7683f33cb3dac2bdf4c3a3a0ebdfb5210bc" +fc3ca9eecca361f5df32e3a5b6e395dc5f2013d4 = "7e9ebd3612c80be6360c01983455b3f94f2fad6d" + +[7ab3c2ab-141d-5e0b-91dc-383929c5d41d] +8ea54c36a00d8f8eba726d2f2a5cf5ae5d5918b9 = "e10c03a8d6a5635a0741b522e8a55d3dd666b57e" + +[7ad07ef1-bdf2-5661-9d2b-286fd4296dac] +e792316561a85c4fbee8250227a4a91c136263d7 = "f41f4c0d0888bac6ce2a92aba0fd7eac3e3bbfb1" + +[7be3e51a-fa72-5567-ae20-c52109db422d] +83d96b103fa5bbb42f83ee794720a2e9c3571090 = "1c3d9576188d81bbcfbf24df527a0408ee1fe93b" + +[7c165e09-dada-5b64-9fdc-39b801c58527] +0650f4425f88aae7eeb2d75a69021de3671f9103 = "b32daeecbcd6c608355742098f2d8daedc55c33c" +1fa459fb0ce55d2797b52fd340622421c3663961 = "bb50088bc88ec96e651f02c83b17578ed26eacda" +4458da519464c13972b944d0d39dd93459d3a710 = "e4d2173060424618084097df41951382f14ff4b0" +4c1e08ecc323d94d6058a2b318e29b5579749f5b = "ad8f35a11bc03f6bafdcd0ebedeb78eb214dbf9e" +7ecfa21713b20ccb04de62c2e5733e6e196386a3 = "41be35f1a129483c13e7ff0a93c53923bccb1e64" +ae6527ca13c747c02b4e05a7938305b069026a36 = "54dde9b37169f74ef91212682e18fec06902d569" +d5191b42f31fd2878deaab91d9f10f105219e07e = "9b299cc23c0e38e046dd484df22b45dba02c86c7" +e12ae4a8d464e2be8ae886056f4aa5f8ebd548c3 = "210ab02dc39b52339868db2080703033eb3fbdc5" + +[7c1d4256-1411-5781-91ec-d7bc3513ac07] +2af043b52d818efb98fdbdbe9b1f2834debd5ca6 = "0994d181ac288cda66a01c67e76971b0395c38c9" +487945b6940c50cf2f0dddd2215536ec3593bf9c = "19cc44ab7917b40d11b547cef512f8f39788feb3" + +[7c1eb372-2c01-5112-b025-ab474ef241bd] +0c6f87ff73ff1478dfa807d92d50073f95ecfee1 = "58985dba4564937f6c33603ffa16da5d5317b744" +7092d8ec22263b2fd005866434c82e9f21078500 = "46aacc82469a7697640457a6dede5a3d8e8e7c62" + +[7c2bda53-4c7f-5679-908a-7ca25bdd807e] +9838b3b33f5149f15b38db73cbbe23cd1a8fde04 = "fbded7fd98edaeee1ad607662d86bdad78b63591" +c0c28e9196f72d525523dabd7db51833c662c164 = "ae9c77af335c747a4ab1a2d2486c0fae68cfe0d8" +c6a1255d82593273b4e7fd95a973ff93ff0b162f = "5ea3a3082b6546200d98e8cfad36ba21f8557ecf" + +[7c4cb9fa-83a0-5386-9231-d6167c818060] +22625e0f25ce299b7bab9b1fb20d0a8dd2266ecf = "86838ccb733dd82d36aea61269482393792eae63" +8d0d48e069437a351fb29e5c323c3f1de13f8c56 = "3bb9730e477f4f56e7609d703508337ead3c97a4" + +[7c4d4715-977e-5154-bfe0-e096adeac482] +103910d01c4a9a2b6ee48f9c81b35f9e341dfdcb = "77abfc00c9e1a6dcf3a83ec80726eb56fe16857e" +507a1b13e288e70b31d09768baa0c42e421447fb = "c6fb2d89f562f664f82cf0e541ac5825026c5aab" +6a81ccb2434eee5aca69feaedd77bf7b38f4502f = "459e46f2e590c6a7506cc9a61fc8c22ee98caf46" +9fac3650ed5c4aea7f18fc0ddf85f9e1a955d927 = "8d4b51edfaa0c616af9acc88a25c4ad43c1e78ac" +ac10e30c96d1fe2c2c8c7ac253e00f531887c21d = "416ed737dfd6af28e3231f0995def6f2d0120885" +b8bcda24df4167ba8185fd7f5db80fd38893176c = "d63c9ec49a6eff41975ed0720e40c44ffb0e91fe" +df7ec3891eef9c7e35bd4bffd24ab93645f429b0 = "512b79f8904ac3b21a5fd45b3768c3974280894b" +e1badd61bf5446c5017fee86b1bc450ed9e54ecc = "fe4b5c67a21e0573e989fe812adddb31e1025fb2" +e251cc9671ab431e94cb78078d22781f07ef946c = "e242ffc76625efdb8d931976ac1f62e326cf53b0" +f1cab52cde678146e3637941aac34a0ee2ff2a19 = "b5af03d7a0e741463896cf940c4e9e97a12a5a2f" + +[7c893195-952b-5c83-bb6e-be12f22eed51] +387a48acf0fc511f3fcc597c94e641c8a47ff953 = "e1138513b91ebdbc66e810e9198dc524a0149812" +bcde96f66f16d5cd7483fdc8156afcf69d00f2f6 = "22b92049d974dcf0be9a415e348c5928392a1efe" + +[7c93e712-f81c-5805-81f7-1d3602bf3f15] +5ffb825561ea8c5246a8da1e2138ffdedda9b8e9 = "b0d18e3f2fa8df53a7b412c572e4d6e4694f501b" + +[7cb6cbaf-3823-58df-a841-732a989b1231] +06e2c3aadb775959ed94597ce807112bb15c8494 = "de5776774da425ac2fb8f892953afb23959a1a53" +3e88906af47b5e7b0321ec8c1d94ac6e049c7eae = "d881bb2dffe668b6a69833d543213d7a391614a9" +6574847d536ea996937dfc1603d7aed992520e5c = "56b05cd3e7093ba3bcae5f5565e18d4fdbbd8cb8" +67afefc0c38ad8e1960bda2a3cf6061747f563c6 = "b6a3d0931b40ca350c579d2dd6565e14970dfd25" +6893554f6cd1ba979f438dc8d84bd6345f38f13c = "f4fa767a616fa7c4168fb6c45de08ea0dbdaba68" +8aae36a44dcd11ab529407e83d947b7ba3c67995 = "e2a27b403204db9bce6ada1aa7dce35b73109c31" +a3dd36dae7d6294f28b5c7a509d8d0e46a8811a6 = "5dd988949fa3ca6708ad0640a918923931920ce7" +b1cc796726eee536b713b4ea0b0e04a0f70afa2c = "4ed5842778f92ce6181d8a81b994ef43376c5dc2" + +[7cc7f4f1-595a-5736-8088-15743c29ce5e] +0494b275efe9133cf85945e3e08e9f25b31a1ed0 = "e81fca5c6e1b662094dd97401b351e6f039dba0a" +37e2cafbd2473e097caba66880dfec23083bd960 = "9b300a550c51ee8f0c4f20e5dd3dbf15ef92737a" +883f516a8cac4ce2a69f14f23652011036f8ed55 = "0350ee886c85fde418bd9eba447f48ec8e933fa4" + +[7cd16168-b42c-5e7d-a585-4f59d326662d] +054fb2d515f0d8b5637280660feae6801d595bf3 = "822f61f06e60942c34ce4f0ee48fb5c9551804d3" +087753de2274b8438776508e3e41672bfb9934d9 = "cb788c11ad09a8a9f0e47140ea0d4c8bbdcd8ad0" +42b8cd23dd31744197f72e2cd0f950a5c205d48b = "fb139b88899668f32f909b7cb4c25ca7ee686501" +4fe20c9f52325eb881d4d06df362d376722b16ea = "f0fdde3024f935ffe0a90734b7168b22edec5ede" +58bce93fec5caf94503a1e0b50ced6e6c4aa904b = "0401a9a163930b21c7e0c665a7b8c4131c504a7b" +8ba686e4d5a7273037a0833800569e3ef8f6f117 = "63809ef88c9a7fe5c3bcdfe31998dc1c84bc60ce" +c2386d865b36bd3ae7176cde4bda4271ef7365d6 = "ba72b12ebe225e5a04f5dca67158e6e5820cde9a" +efd07771a3e41ad02967c7cd728bd44563a1fb95 = "6a08254db404a63cc79e66ccf4c3677443310ee9" +f5b0eb48bc7e58d2d98d3b356f5e13725f47ab0e = "2e5acc4f6257cfdf3f3acbda978f155113fb960b" + +[7d11a335-8259-52c9-8750-e30c45c66484] +a8aa2965f4cece5d973b650b9fe20ad73d6f9fed = "c23d4ae21c63ed1b073e2d0dcd90d404127921e9" +e8c3ef8344c23cc98e29349af7dbefef66ebb5a5 = "2db32daea39318fe343cc49d1db03948949d2e9c" + +[7d512f48-7fb1-5a58-b986-67e6dc259f01] +90c0c87d52a9037846d3ba47a3fb83d48ded8da3 = "e4c5d329adddf552c54a70525a60b5275f7a1d6e" +c465243ad34dc8e09b1b6ef06ffb182c8ac43134 = "797db88aad9802b4657c25450b4b1c39ba37ad92" + +[7d6aedc2-de2e-5286-8f3c-6eeb7cf86d4a] +f79342cfd3d98ae7a80075749403499c9d4088bb = "8d3e252b1b52740939ee28a9efaa8ad23eb74e72" + +[7dc9378f-8956-57ef-a780-aa31cc70ff3d] +afb6215041089856c664a7526a7c4e4f7da4875c = "7feb2336250ea0469000ef1e07679f9ab5dac4b4" + +[7de783dc-89a7-511c-b223-597fcba0cc71] +06582deba51e7568f15f1f25c390553559d98515 = "b8bf28a8e3c8596a66c99405b844f3abd35b8fd6" +090a73a0499030a7e9149e5f09ae7e59fa8a55a1 = "f8d4f96ff2d655f7006a732bf258da6ceba65c8c" +2535ea6fe6cee4ab8b92ffa710eaa4650a82b176 = "e295747fbb6d7cc4dcb9782df335eaab5ac6f913" +26d72efb27bee6b810ed9edb09a1a1204d9e73d1 = "23ddfbcf6ff429f0411e3bbd59892731f13ee727" +33751eb95c628799b8e1b0919554d6e8dce26f6f = "c09ef7f1c1410d04f1cabdc5779ac58530e92000" +399b7a04080ba2aec0cc15bf8e4cfe66e260ddaa = "918e787e6dec8e97d4e46a895fde531c42f7d0ce" +4251140343a1b82b63a9ce787d600ccdcd00ad48 = "5e74582251985e2b23074ecb9d705ca21a41e35e" +52b14e7dae6d507e2f7b974f521035fbf7b15c3a = "3789b626f7aacf95c17c5049e5cf906959efa641" +6d87343921f90e315d1eb4910c3cb9d8f6fd858a = "1d61fe19ef57560af4cad911242e52b237b899e3" +7eadc344326feb81ac46ae8305231b6d9f77a527 = "540ff3c666592fae2d46098c313aeec25cb0edfa" +89fd37046b16118376d42f65dfe42deba5e9477f = "e0a87b48d83374f8333c9d5020709b05f089fc84" +c9de916bd6835a0f9460229193e999fe9a619940 = "b4a1539ed4753bb2d9c44e922e1cd10c6d622311" +d6ebcd7331d6bb12eddacbc2a297c4927aa30f47 = "2bca3081b0be583cc7e46aa8541fd575bafecf6b" +da0e492e30a111f120c2bd757297f84b994f9ec1 = "be2af888a9c32add9587314c790615e93441f75a" +eeca5caef02ba30268965fbcdcb11cb2bce20fae = "9d4e4afe6a27b2cdff8af5695ab577efc11b4aa7" +fa2b9e3efaa437aaa363c393aad6ad35cf20857a = "e2f7b28cbe3e9e850652a257061e2742643562b7" + +[7defe7b3-18b9-55e5-9d73-8414b6b0bce4] +33d518a05d2f8fe2992027d61ef794f3e93f5eae = "0fb4fbb924ebdbdbd79704092a8414707aaa02ed" +408638e7bc4d92bb665a0058f0c3cce21bbe05dd = "736094c9cbffd2a4c7657408a2ae7166508f3866" +8346cdc2b31a577241a7173b4995415347a1ddb1 = "4dca76d790de9b18f569ca031e71195f464121e6" +894c894cea0e106652f9540b9201d337b928ba2a = "af9adc6a3b6978e7e4e915c05524e03b28841edb" + +[7e2a9768-7bc0-50b3-a796-3c4cdce8b7d1] +31cabcae53246e424f1a946116e2225df67f4a6b = "35231eb1cef604e33aa9ed2b65a7146e0a992bd8" +983fe9c857fb6b98d915227db1d70f962e20d633 = "01d90f8b4dc219544b33f25f9fbd50a6008eb892" + +[7e49bc5d-d907-5fdd-93a4-11f1b4f8bb51] +3369672a6efb111ac60b1c7a47e271446307bf8f = "ce502c6379ca8e33cd204c7faf932694b9a9f7c6" + +[7e4cc7a5-8b60-57c8-b743-06a5fc972085] +4214556d0f6e9efcd73c09bf1a50eaba2a331cfe = "52cf68fbac359816c02e85f5ee7cf4ff538000e7" +48243b8bfc69e6fde3b64a771ed560ae3df6de06 = "f5021aafb03bfe67a89d68dcd0dba282accfb2e7" +4a3f0160996771a571a41b51792e63fa03b7ef1f = "eaf4e9af116d6b8ca1b91464aade00a8de4c0b8e" +8828ce89df3aabab4e1c478b81b6f3943517d08e = "581b0216bbb34abcd536191ea1a85eefd4654ff7" +9efe9360d1e44d6a561012b6b0edbb0b15d4ff43 = "42b70c01747c20e04841f924f6e8dc7e9e948c16" +b6f0c39d93d0cb3ae48f02eedf3e3482fb206f80 = "2c9321a0e5142164e5d1cc2ee8f9f1627f51206c" +c4658a622dc122c1542a290a4e191b9778d8a1fa = "7fef3d37fead4423240f2fe8d6a3522e9b9ac4df" +fe04602c7a8f94096f71ff6778076476a6eb13cf = "e4e1dd58f0e87181baa2ecd90b13e98a0d7c17de" + +[7e6ae17a-c86d-528c-b3b9-7f778a29fe59] +097299644055033a9f2df174f23e170ee30a6de1 = "51c06da4e4dd9de1e57dbc6148ec126366a2497a" +3904c46d6f513dae3cb13c533c46251e09adff5a = "8399f008726286e8baf5fb17847d2cddb4de39fe" +3c02bfe7cf8999ce191adcc93f4a7aaf6beb88ce = "0a3ff1133a5d59c01729ef8866a1cba61e116ce5" +8bcf4a068bb42417a279387ae7ad172db2c7aebe = "ac2aef8c741c9f210b924663f71e760853349c95" +992a8108e1025d9093790453aa9e8972b84878aa = "f5a6ec9454f70aff726760fd993c5dc4c6c94491" +da650d5a5e8303f8b7540925ccd7f09e30653ad9 = "0ed02c8c628d8c51d5ac220cbfabe44ae9a54d6b" +f42bf8c8fac2468a6927d18a12c714f40ec0f357 = "1cedcad7d1337a66d7d64cc2c55373e944053817" +f7f4d882f1c8475a06b264fc4a10bf8f14d16c7a = "db2a28e621f3c1318f54d258dc90ff6c3adc9393" + +[7eab9655-7a32-54b9-bc77-719f19b65607] +5c160ca872bd81cc2665a0a9d2a34400d5df1725 = "55ae722200ff89e4d6ba5fe7a165455fdbc97b8c" +98844f79a6b23e9a7b1d3c25cf013d6e3a275ef3 = "6b8dd31188b8755de14c5971150656c6b405402a" +c1f0eab8896e4314b1fc6a8e13d4b4d37a81a03f = "2f12227ca8c885cdc69fbc4300f808e928845986" +c4141494028e38e22c7b058702abc9a86fa04b70 = "560f8488e257c1bac6605e1229237783e8d73816" + +[7eb4fadd-790c-5f42-8a69-bfa0b872bfbf] +04301908e7b5f14dd9703ca45cdc3ace4f0b687f = "a2382c40250960e3d6eb72fcc069d5aec253ab26" +05cf6bce064815978c4b56ecf23e600327d4e881 = "419fd46aeb6d18ae6cec5aeb9c0363a8e5217ffb" +1c980a4299a04d2fc0d0ac5041ef122c38c6b736 = "57a4979521dbb750d6e0295034106b40798c38e9" +26d83a6b424c55b2cff557995dccb10f9cf278cb = "4b01cd64ba6b5ef86e314eb2743bfa32ebdddc92" +4cf429650df0df1ef9c07ce7ac0d1e5a523a30ae = "e7c92348a86042cd55257ffa2070f46fc4e04c82" +59ca3fadb97a1526614aa39a5a5382e1d31feb7c = "49b6545c08443db5f6ffd3601a5be9d7ba79d4ee" +7b28ce1d562b56c1216a07bbfd465f86d015f46d = "ddc2cbaadde771e4255b90197f47fd30d429269f" +81d95d7e85afa678e78cd166e60a0affe055061c = "503e2acc65b9a341f2e5f0d2c9f91ba6a885ac97" +8318e38a5e5f7c528af6db02e042f5784ce079b7 = "a3436275c2d81e4c20738853c8fd26ac16c61a29" +8cc1cade164a5b851102a09a64a97600e1ce5799 = "2fc6a384692fb76f4fbcd9a147fe48bbc3030c87" +97f73ccd58b1c33c129c4b46af6ab74ab9c90225 = "ecd6243599d635a989e3628024adc3faac46d267" +aa3465f838c56616009caba6bbd04f1e6395a898 = "d192d7d73ee4fe3939dbe9c1e9d44b9990d31c5a" +c6328af4621141f2b58b18d9e7e5d4f3e59611fb = "3b4ceffc86c64117768d433e24bb0331e53b8a42" +cf3511f5fd597293e56081ab98370ab3816e1a86 = "997293419225829880a97df24dabf2155bbdc4a9" +d0d92ff5611336aa59dd30d2d3344b8de0fe7006 = "904fd2be2770310c9ac84ca7551c0c47533b576b" +db46113d1c49583534d5c61e3ec208ac4bbcc311 = "441ed125517d260eee532fd22048bbca26f656d1" + +[7ebbc34c-24a4-5a3f-b49a-24be4b3feaef] +5ec943415390a3b7480ee93392fd0506a4d4b266 = "69d07556a03ea69d0ab47e51fcb7729b06c15511" +6c9d09dd0d0caa553c82eb6374d0246fcd21c8af = "f0acc0cb35cd7a5614da8b3607db8baf37634689" +6e4e659d2bdd885df49a1919e97a693f1adf3ff6 = "bbc57c78fc82ad84d3d01e13e7ea220e1196b175" +db07ee44ec939afb866c04a5fd1edb18bf92f781 = "a78c1b98f36e101c189b5a044acc25b4f732ab51" +e87395a66747d5410f06c93b5c61e5adb551e60c = "2b7fd3bc5098ea25e7074c2e9eaae513cf6343e3" + +[7ebc0bd4-8b33-53fe-ada0-3930af7dae27] +1b3a4ce051d0f249c30cbad90e614833c57f6245 = "23ab7dcd11613421bbcaed9988125ebfd41e118b" + +[7ec2a2a8-e61c-5617-972c-ff57ecef9621] +0f31aa131ee5a4f988dbd17fe38db84a2ebdd489 = "2b362ab3dd39d6d5b8447dc6cd654f7fe136ae41" +4bc2fb1ca92d439090a92065fa0319338bc022a1 = "4a5bd25dcc430b8c2d2e94a779abc8e07e34a001" +62132f6b8841857181688269220b9fb8dd0a9358 = "bbd030e5a90bd7ec8fcd0274798dee03d9ab5290" +634dd86ac831d0042d68081711885e44a0454ac0 = "82157c33ad944434d3478524c84e091104176c6e" +a539047060066c608b48cf3ead702bfdbe6c10ac = "f0050acf9677069bb82a9d0556974fc7c2e8b56a" +ca5d8ddce7dcf750459f18908a43ee106fbc9cc1 = "61ff6088e47338491d8caa3beefa8ff818d88701" +ce3fb290b808e670b5ba84d4d9f0a78226788835 = "0019eee94a9ccb3e64829165c55cc114fbdb7997" +dddd92a218d06b00239a00be15e3e107779a2833 = "5259d9d4879072ac3894d79d5ec1c187b292ffb5" +e2c26b4e4caea4ce8e1f64f1eb82f1f8fa99739a = "f8983c6273b60b70a1fd5cd103ce0ab408ba9e75" +eef452a00a484e30bd4d4a786f2e5e59907df0a4 = "608e1eabc9632716e2f18c57d4b7610ae359e8fb" + +[7ec9b9c5-1998-51e1-b7fc-fc3590c18259] +11b07e546ac3b0e81bdc7cd98d3374a792e1cacf = "a51bf0748a65671454f798a73238038a4ce9ddeb" +510afd73fd86f5b609a3b0df713da663feacd18d = "c1589e621515f26d2d7aa97811413d2ba9f77bb3" +56f44a5bb8928e0a9e106dca1b3877e7609b31fe = "bc98fead644102a24f9dba52659e8631733494b3" +9d60f1c79035574513728cd6163a575bcad36ba3 = "2a5c230ae7d26d8c66befae168fe99311039b860" +9e405cb6b822a5e15a49a7d8bf49d73106f4be66 = "f1c6af03bf4561d71659c72445a7f71957afcb11" +cc9e937195573b7254dd92ba1bf0b9dd3856636d = "39fc1feeadde20a626a221352e17bb9606ccc081" + +[7f07e4c8-6df2-5971-ad44-bf349b9adcfd] +83c8cb335b4dfd4bb1923629c3c1fddeff2caf5e = "80e4d9e6a6eb45e04c9dc296b198eb32771ca4af" +e1f30f3e96039ef3fbc4774d10db961aefb2db58 = "e52875de596704c434a2337c4ae714a0fae4c769" + +[7f35dd7d-48ac-53c4-b315-575add349fcc] +4112f6acb8952201f54d664e480a3f1957f35d22 = "747770ee50f9450ffbfb995c489e91b0692b721b" +4d3b0cb72646044cd68e5fa8a724c9df82be66d7 = "418f4d7fe65673284dd12477afa58bb6b8c16470" +4e51837ddd0096bad24564731b28520844333fc4 = "97a3d6b7809d667594b4479e665d466668729db2" +71a2d6539087055825b13a608635162fde71f984 = "191ed350475c3fc74acaa5fffb89a231d63f78c2" +89e1c0bf92f2252786d3d34be7ee69d8a204f077 = "1263781d6cc883a7127d76711eb3f3f0ff9de073" +95dd2f5319ab8783b8069b6d94d315db1e19a8ff = "6cb7003216d6ec05922b332ac9bef20f0db1042c" +9c8ad6d278e2a9c7848e3094756e203347b1b1a5 = "37221f61f83848d95e08d0d652fd095fe3b93113" +a700b013457e8acbfe919d87ed41dc52f74b6f10 = "2e75f9d420a9cabc5c55ffc5c61dbda64e73e47a" +a7efdbfd329265f8cd314234f66de3fc16d2f2ea = "a62919848ba52066b6e415ba8c631bc040150d3a" +b2f46d5fdae5855984ecc7811596ada8813f6e8b = "e960e0946326014e118913332a1fb19dc22ecd34" +c30d2250c95d5904eb2301a77bffc50d9fbbe4d3 = "76b39888eb9fd45527f1cb056110a4fc4f13b62d" +cd3b64222caf8773f3efe91db8dc1f8c5f0de38e = "977cb1981b82e5971e3dd266c8a0a1546085fe3f" +d2cdd63818801b4e78ff1e4db784b58590da33c7 = "681279dce9361d6d48266cbdc7d8beed56d1eb13" +f60a9ef208547b0e140a4cbbed9bdf251e16f34a = "636d3b39e5b6366cf0c33f66d117e83468eb721a" +fb02a60aa1fd75c52602afa2e404448a7e8abbce = "4435f9dc198e885cc7fbf45883812744e83fb327" +fe2a9ffbc4ccf6fa346f3eb1b8ab0c1e4e902fa0 = "235990a487e8406fd1b2dd71410676b6ed617a53" + +[7f3e1038-61bc-5414-967e-017c9d82adda] +2658d364f8cfc912b62d39be0c3744c67504a721 = "3bc1e1bed615c7ec4bbb2a2bfdcf544a37649960" +dc5ad8ae691ac7d6f307ae0397e5859628e70e18 = "0b96949b99eb0d2292902fba5fd22607e25d58b1" + +[7f56f5a3-f504-529b-bc02-0b1fe5e64312] +1de71015c99096977237084b53bc38d0d6e8806e = "0fe31d63268160f31f24a29054052467659ce01b" +3c05d387c8ddd63ba87423ca6e895b62d3317c58 = "a1a9f5114f041e6743be8c5352151d523a7c8bbe" +a725621f49f45639353686ae7aa626361d05a855 = "807b3eedef6b84d68a212d686d0816f79c1fc30e" +d97a23d85b91cecad693aa8dd26696e7db8e778c = "729ae0f836300c7f007b19a71524faa2de64db0b" +fbd005792e5623c6df32a85900f9e0eedf10dfb2 = "0cbb555ac37d86db9383ebba1f1bf90db055040a" + +[7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6] +3611abefef865662a67b51af05724fb0448aa074 = "5f8c65f61ab17574214fa4337a84406ffff8fad9" +5f551e2303b7fa6b6010aee9b60b8793516e9349 = "65e88ca8192ca8f68ef28a8b79bd1885ad56efdf" +8df011a638d82c64e935571f7362200f9a3cfa74 = "825fc25e031461d329a5e8b2a7785828f0b1aaf1" +9171d003eb8bc5d8eb01e947494fc0122c20ff21 = "3c2162fbf99b257907730c5e389df385896654a9" +984724e975e0b468e8b11a4f4c76b30a004ea1fe = "db57a7a5683fce60cd6052343df2405bf7707a90" +a14b4e6116171d82a3c50921b27d41325b8f3a39 = "c233d9a6d9f6ad45c556ba6b99295a3965b3cfb0" +ab536dfb92a7b48c7445ef360ea759d2b2ccc851 = "397743c7f291050c06f25954702b60fd8b795c19" +ae22d4cb8713fd09e10c2c07ce30ac1debe399f0 = "8e2a9c48a18f87a3dbcf1b5e7f43faaddb56e60a" +f09fec6a2ec0276ba6cb7379230ff7e6e2724c3f = "f6e32a5b6b4d65ae0d8e4f90af6cb955b8207275" + +[7f9c7709-75fb-5397-acba-f980073965f6] +0d191c4daa3c8191197242966da1a57ba71dd52c = "a74eb5519a73b643a81ae162f80e15262218a937" +1a9135620c847eab40e537ce540a85f898d593fd = "06706bace9265049ad1397b0cf3adbb587380138" +46720791b251bf3d51030a45a1688d159c72cb82 = "dce201db696187c1b9a5f38e5258a29de6c0e377" +477cca5815cc2a694ecd3b2025be260c69cdceaf = "08562d83f3842be0e9e80ed9ee306b7f3a93992b" +47f7b4135dc39d3e8d6e4ac88274b5dd08eb747a = "8cc61db46f31e3a24aabd5e64a5f585f23ed9e7e" +50fee887853c10694a5541c20f73588afd6d6402 = "a291f4001312c0ab6bff313839c171f68d18a06c" +5d88963a078ea7ea9d13ae5690a5618dc14faa8a = "17082c71a1234759d59406c24951d1d0f78322b9" +63a4557965bba3e58f9d46fe385ddb0307c746b8 = "ba9467253c820e2efd846d2e3fc73ed51afcb3c1" +770772d2a5e0c0945e40430564fa787fe9b47398 = "6ef5111c38f5a573f3958406a4e3080f0a2a73b6" +8a6a60400889886616f6d80ddac88f5de820dd59 = "4b775b3f98da6a57d4cdd62cbbb2f76207705236" +ae9857acf478fa1e1796091a51e0ffc49e2de521 = "83c438b099755862d333df622abd8e20e96e7e46" +bb1c47bc10c51487e1447916745b565c8ebcfde2 = "37b8f9c450866068c805b7cc6e42db3a9756e4c2" +c553995a370305d99827b877c3f5cdad9e533cc2 = "aa428946eb9f3c86863051881e65c61c4b721942" +cdb6eaa6e2415b53ad87a934f0f8136dc940d2e8 = "b5dceb55e1ad55562060887fce0ad2fa78f61a0d" +d7ca044508bd0d1dc261fa393627632ccce4e93b = "f38eb314f3f69753d3e3fd0c11b898563a64cf2d" +e604acdc1f5b912d83a4fa35bb0e8fcce9bfdead = "8f5007f8d20bdc47802536b1c5d830600b7d0108" +e65306f1a36934191bfa7aa55ba375136e74c2ae = "c79100155f6a41fedcab21b4c3f4d52ae971eade" +f2859fdb81eff4666fbbb5c643d9443cd5e5896b = "eccb46b0c97d6be6ecb757ef446ba3c0f3094c2c" + +[7ffbfc9d-0b36-52b1-a06e-feca771d9027] +974e3330ab7bf871bf928e1251b7feb1ce9e1705 = "1345d94dd9f91329b00393db77e706c73746793d" + +[80307280-efb2-5c5d-af8b-a9c15821677b] +0659f692175d6ee809b49f5750287a1a30727763 = "389ad1242022d7a8eddcd9ff8669081fcaffe1b0" +6a0012fc49f47c3994c0761fc1a75e2cbf522e8e = "51acac5a111502f7f6a49ef08d831fcf38e17856" +9225bf7e802231f7e676ad9b25221e22e4b93e55 = "241bf56b7fb805fcd9dac1a528228f4dd55883f1" +c5b4d86c7955b5be776078b4e23cf146806fd17a = "2c5dc6a0400b7315927c81db1c1704672d04ade7" +fca6ec7de77aff576f5c87a9d8ad6094762189af = "b402e1c95faa2fafa517b2b38cbfe8282b0a0a16" + +[803aa692-84f0-5eed-9cc1-fbb46710dded] +9ff943065c697d50abaa5cf173abe8237a752137 = "4b9c5a11c76a8e212e1643863e654dfdff2d379d" + +[8045fcac-0607-5c8a-ba73-00410217113e] +c46cfa1e354660d3cd08e3447f6e620621e523d6 = "550ce9ed9ced3047bbabcd452f9c8bd86443afda" + +[804b2507-ca04-509e-bb29-a411f1881c77] +69132ef3e2a4f60d251279206d71da761a18234e = "3423785999f69c1c9c7886d9b3fed0d32f26793c" +8a527d4b7b7a99936e490e045f6ddfc91925f323 = "38462dce4617c892304f13d5bd1136d13dd304c5" + +[805246a1-aa7a-532a-bde9-049e8c820516] +cae7acc1398756964a4b875c3c9007d133f411d7 = "e6f5b670c29260b7ffa99cdac749e6b8a917d520" + +[80713f31-8817-5129-9cf8-209ff8fb23e1] +502c4d65f75fcfbda0ff52aa79c09c140fede434 = "70aada61c3b5f9cbb379d64be064e99e6a0228ea" +cdad66a0f0ccf009bb5f0355c068d8c5d79c2d47 = "584da78679488ff982430e6bd1984d48dc4684b5" + +[80c87078-a4c8-5101-a93a-266e81f0cc5f] +0dcd045354f0b63d76595b5bab979e88965021df = "3bddde78bbc5520583b195cdad4cd88b4ac1af39" +6b743c7e1de6eb452330220d0eafbb48ffc18698 = "f3fb1d6740a5aa4e541653171a08db37e5b210cf" +6c6cefdba324ebb43257e68622bed8e11ae25bd5 = "77d33c7c2176e573acf0117014db84540b53bdf2" +773d3f8bd4bbfb3dca983b1cee73b7f8c7aec4f0 = "6d1b3f3d3e544e82e5c7c789057eeefc0fbb591e" +777494819a18dbc4cf66045d1f6a97358aaf5d2a = "f0df4403e55fb415e8b58a17d1bcda08e59015fc" +b147f3c2cbeb2c614f2053c8dd89fc511cc1063b = "90890d8ac81b1e3d1e78e7ff84a43cef45611ab8" +b39676754a325d1231622ded5b75aa0c2fdacbfb = "7618ff8082a1640bd97a03732392d104d2ff6dbd" +bf51b90270a3d20d53cb6ea15e211477c8a4b428 = "7b2abc9a6cfd4b7c13cca85a9cc69b255d6e787a" +c05023bfccf8d26a24a16994509d41e1a2e6a254 = "c839199f42e39b9e2b8633c4f1b790ce4d14da9f" +c1b679c9deb4facf67f4926e180589d622897e5c = "1042680ffc268d77dc1473f8bb796639f647fb40" +d42b2abdb7afc860d14077f7777a7d296ab54f8a = "83c94218eea09b74ef6f2b3d6ba1c25921e11d27" + +[80e3a25a-59dd-53ce-a95c-a94c81a42368] +a5ee909347c20c191e29bf8d6c080559c656515c = "66878ae90460f63a3b910175c121e1bf8e363ded" + +[80ea8bcb-4634-5cb3-8ee8-a132660d1d2d] +2889669b7f0b04adb2cbca93f778295d799e8aa7 = "2ceceb7047e98b77d2e30b5c3149f3bd05fada9e" +a24cf8e9bc84af7a2e1a24185c14466830399e1f = "c1ea1a063d3b60852a8e2a6ec79ea8f501d470f4" +b6f59a1e9dcac55a746cf638e3fbe2b40c6fc87b = "8a3598cd4583c1c597b7c600c8bfd164e5116765" +ce51f8497fabeb299ddea36e8fcf6dcb342a9246 = "c9861a9dd02b1c5adb0d8f5bd057f0e70e0cff9a" +eaa5aa96bb0ba61b70be9d0608abeed5654c8704 = "4ef9590f0ca18d963eee90de58455d24e259a4d6" + +[80f3d04f-b880-5e6d-8e06-6a7e799169ac] +75fec04f592a274a29765cf3fce76d31a3f3b296 = "c2c799ab47c97d7c2924eff6149cb3a79bc03f3d" +a1afaf1141e255251a839de4fb33bf0d965b0042 = "7e2d8f99199362f4c4d2fd412f37c64a55d022db" +ce29ef184779873c3ceba6688710536aa2f3caf0 = "70f5f064533e5a39b5455db037781430fe8cf4e8" + +[8149f6b0-98f6-5db9-b78f-408fbbb8ef88] +00dfe9a37c86ccdf57cfd1b2e5ac70a2a6cae4eb = "6963884592ac2ce48bce4746306d750fe122601c" +06941dd0f84beb8bcb744ac4e33233d6a9ee00a8 = "51883ca94df63dc0d8fce3f571b6e69c3a116f3a" +14df1bf6fb638424824592ccd96b690f7439b7ab = "566184b821df0add240765f3ab69d38d4912fe9f" +15993e901c02bb00479980d4ce2b06fd6e158564 = "6ea91b8fe38b319d01ea979ec4e3952512b62816" +5634caafedd6ac06ef5e7c2cc8ac048209618e5d = "39790278d97c49db000a38ad53ec608bcab6b67d" +6dfa91602f85725eeac0bdeee1a83b2a6f1cb238 = "a4c22a6d5ce0da71138e8d9fd50f6fb93b23ee58" +81347ac6c484d4cfe36ef04b79bc296d39ff140e = "aef8488a8f5f6036cbd8dbb7bacb82f4325aa8c9" +816ad6203c62f0b0247085009dc1c3ddf9efc5fa = "bd7d725233aeed3df2578fc1bdf30d9bac678461" +af618d43b82a242337e82c62517f9f96af1ff88f = "dee1fcd4b7c8ec8b29c9b739c68f0d463e298f1d" +bc4d8b5c383209cd6a1e150411261c9ea207fe3e = "603691e9b62f33f490ce45aea5d2ceb2b9d1d045" +bcde098d57ab7b677da216215d5371c862b7963e = "afc79343963b4f39c31af2d06135e614ce9fd55f" +c32ae53ffd6a62e15e3119b6bccb2a7df1d33adf = "a84bc39cdbd7e77716ced3a85df998c741fc44a7" +ca477340ff673edd438d04ca7e39279bc227e491 = "a119e2fc0d51bef19759fdc330d5f815fd8bfe66" +d3ab995342c109695d559c1296ac47e7c5bb067c = "f8dd355d046f487db4102c3b6868a00d1f2bed16" +da69ca00b84f02861bd68e18226d471799fe0927 = "ddc828925d23f89f899508f3735cd5c5beb61da9" +dbcecd37a8ba01109b23605f47bd78430d99ca8e = "7ffda16bcc1b67bef25273eecc6ec3f66a21aa83" +f0db035a8f410c0bd49c5b65e8bad5d495bbdb17 = "07b7a921d188cdace909b8d7ed049595746a23cc" +f0ed3cdd48591b6fd004c8932f8b1887607340d1 = "98564315da00972f97e9b7f4792858bdbe8a6e92" +f0f4eb17b1a072646d49231a4520b98bbe9358f7 = "2cf50af643004f10abc5e34445908764701f67cc" +ffc183745e29cffcc51422429566100be32e62d3 = "b02798720cb27255ead28124b1fbca6d51a2bb9a" + +[8197267c-284f-5f27-9208-e0e47529a953] +1af92d6ff7d130fd3e3f41fd01bdd9ccd74375b1 = "f0ec361976475e669a6cff716d997c2ab5dbecea" +29998c52b24d2f74a683a9bc9f71086d9a0f2318 = "acd610a1ab8aef5b0c6b3a9849286a382fa3f2bf" +77d4bf067c769a4ed6a861c7fe09aa61830552a6 = "a7b2900175edc71eb104477106207b4b84c910a1" +9387c49ceba61e0d504a8091c1034b57648ab21d = "7a50ffad390611204be10a2f73830ce529dd0abd" +9a4d3eabc7ef612f27d13a2018b0b86af75b2ae9 = "ab26498c5b1a7daa78c3a01e9e848c98c5d4c13b" +9c79dfca156c46a3d5afdd88dd2545f9623a991a = "0882eaaa804f1766dd02d11763f32e1f6315c18a" +e83b982e66d468a298d7481dbcf76d8e480521a7 = "cdff32b5317100d5354c304f29057877e1257fd4" + +[81a5f4ea-a946-549a-aa7e-2a7f63a27d31] +6ae27341324fcf637ff1a60171600f42472568a0 = "00136fdf3ba299718464e531dc269070801e1c1a" +7f64ce9d79001d25eb1de06fb226b10f525dcff9 = "90673453a3e83eb905878e5bf55485c058832e14" + +[82193955-e24f-5292-bf16-6f2c5261a85f] +0c49d9842eb319f0523a58d39d09adc244686a54 = "b956f5a55ad0447e2e8e5e5f634d11a90e2ece2e" +36369ddb51dfe7b0b197fddc3344cf57c859befd = "d5b09db63b479330ee944cf7f55e367577c68cb4" +5064333236f73ba6d3ed0a8aa379cbbb9f87fafe = "47566cea1a623a912a2829fedd19e9bd055a3290" +5c0c80c1d605d19e4a6d5748d7ba7b3ffe98b314 = "0b9fe04039885adb85b57a50f093951488d56bbf" +82318184c4143d223831b8d9effde30bf1c114fe = "05e699bb961e5d95387530df0695e0f2125b3ffd" +ab5119ddf1272254b507c428195640262ae162ab = "cd947fc9d7cfd8d199575508c406d2b51ac07d5f" +f04b314a293511a441e3792d2cf0210d582c0189 = "5dad16d7eca4d8b6628311ed5da47eaf6302dcbc" + +[82899510-4779-5014-852e-03e436cf321d] +559a3df20401cd052f3f5464b8a69ae30d9bc304 = "e437723cb0518b66d6b08870d2ee5ba205d3ee3e" +9e4ecd265a553495734606b75b99d3bf11b0fd00 = "cc69044ae736fd8c774e8162313b3458a6733419" + +[82bedeac-9837-5b62-883a-b5b3b7c811c5] +194a38746e411e2c25410bd43dd31139d97e22c3 = "a02d79b80a7dd33937e25f9843383bacfda90afd" +4833b707f9e11ee7c47f243752674ae1f3fdfc93 = "c9f53eeb7398307227ed4aeeef494a7faff5778e" +8e3d0fa0da20e05edc44f313549c616d0c1648de = "d282dbdc7fad80f3733ff680f1d764e2f4c4c4c3" + +[82daab19-8fc9-5c1e-9f69-37d6aaa0269b] +1cd0ba998791a282d3c1ae20a77ff9c103a96354 = "5162d00d5671ce282d89f9638b0f0a20c086fdc8" +52c02afb4da1a6e89f239319a6902c39b347dae9 = "6e28bce7f610697df843c8bd0eb6f0f45f680de4" +8f18dcd30fb6e5da16a92a6712a738cd40b59d81 = "fc686565193bafa9fcc26576febfafdcffdfe9e9" +96ce3ae8dde3ad3d1f469fd2abf78b9679bdf3cf = "23231ca188da68da5b5ac4d581f0317859bfaab3" +afd8982f3b547fdbf3f0562bbfb3e1293272e78a = "cf88d8271b4ddc2ca10c85b5ca0a3041b1568229" +eedea02226b21ad866125013b5264c6aef1e48b4 = "fa4d6b61fffb029e3bbe58ad0f4216b542e9fc42" +f5092ff093eb62046cb1b62b3e7d24a5deb14f12 = "1020ee6c1dbc218624eadcbd40bbfb50d8a57db9" +fb6924fda2bafd62578fe59148c8e554083c8cf1 = "e716296219d94f1828a8cfba23443a7619b336a6" + +[8314cec4-20b6-5062-9cdb-752b83310925] +7b7cc10ddb0c700da1fb16bc3ee283d846680253 = "d886a9e382d1b8a8cd3613b7f4b119d49bd53631" +7de4499457fae26bf9d0de7e5c6205d5077b6ca0 = "d5648a15fb3f72164d2a55acace4ff665d3c3f6e" +8c5ba11f858b84838bf024012266ae2e18b0db48 = "b6968be89c5d0755d03b4019bdfffa5f8c7cc5f3" +b81b17a9f0d3a3dc3ff4688e5f05b9856bf676eb = "c78f93703643330145f7b82a1837decd8029cf58" +df29875481a6d121d0847be18a8912b0ec080909 = "ae9ada4c15f2f335a0a1a2ce7a18a6cbec8fb233" + +[8332e584-40f3-5f5a-9eee-dfdb1ad742fa] +7fa32106076f6385c60c7cadcb60803688abb567 = "dccc203d4a4df713482aee10f690e1af3f12815c" + +[8365b1bb-bd83-58ee-a267-f2965fc81c73] +602596cc3c45bfc3da8cc9b05afd3639076d69f4 = "2c04e6dc115cdcd6f3f0dee95ec431ae63274692" + +[83bd3595-91a6-54ef-8b5b-f5724fa88d16] +23156e651cf7353da5e779619addab34d22b3b81 = "54affcd9d540445b1841c247e9307b07c71fa009" +28937018540e74c1f08165bfcf3934c48e36a8b1 = "f0237f1f66512f9334ec39244b22b618eb250c9b" +8780b9acfc49ebf9b231b373d31c2c4046f93f13 = "fd281a16fc3d6ad67ed0b50c00a7852b4df78d28" +ae640fdae478140bfb0fbabe1153ae3e854ff5ee = "609586585c0fbf04266cd9729bbbc340897b6f6e" +f31f4bddddfbea289e77ced9b14648037e7ddd95 = "f458bd0fad5e5e1cff5d4652226e367cc3c15440" + +[83e8ac13-25f8-5344-8a64-a9f2b223428f] +2fdadbd18fdea79dc3c8278ba329db840dc10be8 = "8d376e6027e07a6d1cb6b892fc05ea850ef05dd6" +477724366b99cd0f9945950da0c7ff83148830c3 = "b86089c325a4287f7fc0a8240cbe2d591b1455c5" +507cde1d7c6299582fb7d51e68f82d785c264400 = "4955ad5ea81eb0f13976e01ee1b227e28917d11e" +7a1d1fc15d5812eff494fc05b8b70f03fac31bc3 = "f5b702b1a3326588e3cee7bc298ee4b3f6ec76ed" +84d01f0a6201613af4265d1d908f48e569e6b918 = "4bff777a46e2f9b77c1b911490967f44a9801b71" +8a91a7ed793c91c540ff442113f4fc36be305f43 = "c9e4fdb7dd4c6ec80e04ced3716f93ffdbeb295f" +ec6c9365bc3a04e1db0fa60350abdebd9a4e8179 = "243fbe455bfa98ea8bbc798360dc0a51985b7bae" + +[83f21c0b-4282-5fbc-9e3f-f6da3d2e584c] +8abc154e26e9b137558dd9f83170ec1ee228dfbb = "43674b271d96d5eae6774fcefae476cd5bfc7060" +8c763b0962a1ba02ccb00981ff9d886983ad6a8d = "8f99271a02907a2f9af78cfb35571525899ef6d8" +d215cdcc963e16ae329f426248840372c5d71e79 = "9d10c0a4657787a2c072e605d303d59d9ba23a26" +ed5da8181c31ae2cb194d9e4b6569cad4c35994c = "b7dc5d4dc3c546ee4b5831f6edf6276993373d62" + +[8401869c-8c2d-5ca6-9bd1-4e4419d09179] +bda97e454baeb7e3bc6c07ee3ad8b8b3625528a8 = "0095751f92b2e37ec021c8aec8e0b40e1a173513" + +[84343b55-15e5-57ce-a0f1-bacd12ca4aae] +166f569ed25afb1fdffb71a060ff2451bf58fa87 = "73308efe7dc8046715d0e700f85d3118ec49dcd0" + +[8448b6dc-31e4-5fff-9e7c-6ff656793c05] +1845a0d6f6567fe436ef903b5af2f9c76ef4337e = "f538f74ee206f45362b864b27f43a472173152cd" +753597e92d9336ee3197afe53815487a34839ebf = "78e7d582c8b9ca12ee04f23eb872efc56064d037" +916ab45715c40eccd75279d64817119dd3f58525 = "3b2465fc02420781ceb56b775cb3900a1850d223" +9637b20845e5a23d1ed8d140da6e777f4fb273d7 = "a1df43a8257a6b2a1b4fad5614eef9414d3c19ce" +a05c7cccf98cbaaf8ec6f593ad2f4c920d5f1a4b = "a79ab2634278bee08b23633c9039d3aee29c635e" +f1417b80ec7f3338275b2b692f7dc33289e50935 = "1df7a0c2d82cd88c5a3db088f8dcee2297bfe58b" +fddc9f77f0522b2a916b7ee4aa7a0aa5df95d0a6 = "a467269090101274ae5fbd7d0a5bc55760a6d72e" + +[845f30ce-e0dd-54de-816f-dea2af76ea42] +25202401c6a68235bc95892a9284b5ac67bd492a = "7e2bd2834fc0c0c039a8e9c686f0d26928134190" +74373eb988c5847add71b7b89b8e0e3d5cd1bb85 = "e929a4c027bf900643a13bb8cccbe897cbbc3a31" +d062847cad585799bf99b334f43c17b17f63053c = "552765c4b24ca370481299107bae0323192f4b30" +dfbd89421a9b3e6e5327f197f623c01dc10e78cb = "69f0f88359c10c11ca97bc1f4305352ca6b3d93f" + +[8483f79d-bbb9-5b09-9880-746422ab8387] +0d2b450f692a8a2ad3f4eaa1e6ef87e5c4800b0f = "59def2a78df00211dce37d4f1444029434427be7" +271442f5fc4a78146205019becfbc4117d25712a = "f803400b4c87ba678d2617daf27b530043b5ca7d" +7217dd05ee494751a81469cd0082a0972e95591b = "67cacec1182fa7f2c8a290fd75b885384170a44b" +751a0296dd182aeb9bb7110e945e2152d4c1a8c8 = "a1fb088d2a0b40c96b069bfb0eb9bbbe184d09da" +7bf9d3f79d7cce8481ad537d7b96a108c789daa9 = "a4eef6bbd8c1ba034ca8a024f03bb8f413606d1e" +7cc2ecff855d5cdbb8b83155ccedd8c59e599eb8 = "b981383148487610897f309afeac6074fd4a553b" +8b171525a426610efe26db052de6da46d9424e0d = "f5841684840b3e6701e897fe43fb1ce8475c4b8f" +9bd1b445d9855e27a8808b53b0e193b5544d8dac = "45845171543928fca8b73155c4057df9bd406619" +cddac8059828503b331b26ba3619bcc86b10cdfd = "43dc567d6270395703b93f8bf4d4c3fb948453b3" +d0a190983047359329964de5ec35977901d00bf2 = "cbd3328d37907b12284f3b550b95fa198419325c" +d3feef9aa7ec72ee73da03d633e81cfa3a5190e8 = "98ad77535db800e0b4c78559f0829062a2f1385d" +d738d86998e548247a333b5110f83b9aee9765e2 = "a3f289507d67c719c509dcf52ee855dfd73feda8" +df301d7e492edc2ce5e16bbec8469b9a630041d5 = "3880caa764804f7474d9e53e56cf9c8159e26afe" +fde9ff1433a8d22ad2b6e951be4ac052377d7d3f = "3ceb8721758e062c31e5c8aebf5c831666f6564d" + +[84935fa0-2c4a-516b-8990-718f0066a3cc] +559952ceb0a8ca2d956ab632beb25a13da548e50 = "d66b365e74824749e7bf6be58192624f610fbc88" +b846327368c4eac77e1f25240c86cd519b677738 = "f0422e0a0c08ce9ff50f04f34710c8c8d25391a4" + +[850e97f4-adf8-5461-80c9-b697039f073f] +04ba9ccaad69e4eadbcc6dc15936f21f1dbd9a1d = "bfc0268acb30ea349053021628f25c3c9396f534" +6b4d3c3eeb25a5eeab874f34c3cf3cf2900a0c4c = "ace0aba7eabfda2efd3c81b887020f20b534f7e6" +a94d5fefca761fad8c9dc884bec22a9f7c1b5cb8 = "893bd34757c06eac5d6b044a82faf7c5658774e6" + +[8574dada-bbe2-5b14-8c04-14b17cae11e5] +0b46767c98fc8fafa791054b4a2fc6ea7c58f822 = "ef9fa6d94bc977d4af4e5c45e37618912bdda5ee" +2292fa69d209fabcbfcda371e524b8867d33af0c = "b49b4f7afe8ff05c1ce24082cd4e197d1a36539b" +470dd4ab12cd7fccb028d1d4294007e1927c844e = "ec9e40f95adc8bff7a4bd5f28c0db16b2c0defd1" +8be17f6532dcc8818599bbaa9760d16a97fcaa44 = "dd052749c2e475be5af4e4080dd7f98b6fda5d19" + +[857edff2-01a9-55ba-8bc9-13e46c0ddbb2] +04c92b64226d3d77232af4ff071836ee3de95a5d = "70f8cd6d65e05e814b6cd3d8d086136b66be1423" +0c6fe15c3f6bb71e6f60886cacc820d2c1504eb6 = "07fdf422004b5bedb47be031d0a86fb45104e160" +13f06bf843b3b37a50a241dbac95073161ff2817 = "f2eb3edca2db5d56804fee0979b56cbd5a6a5712" +80343a88e358a85cc93193aa922c1db642a51e7a = "18124f4b8ce63e413b897e3272950cc48cff050a" +b6bf941dbc9230b1f1866428dfa8f80b0ad7a440 = "29ee8941cd94b231f2ee6c867a1ac44783cc3e62" +be0402e5b6f6cc7d3c703cf0c40318524ee46207 = "e6c2f58e1e409b4673b8362eb75485bc5295b9b7" +c8254f7746ae73473c0951b78db332e518a39d26 = "361a30f374f47dc3e777ccf95458c876dc009365" +e869c812ba2e90dfd3965e1a8d3a012677e78605 = "d4a41ed4e75f096c0617d1edb613f2f91af8ff82" +f776585cb8751147048ef14c80976551992502d3 = "2f806dc3863003b4be0e03990b4a4ef20d2aa27c" +f7821fdda02c6b75407d8cd79caf12ceca861b27 = "80ab693789648d51b2ad6d69b05906203d9fb1c5" + +[85a6dd25-e78a-55b7-8502-1745935b8125] +2f02a7569f150d82850ac1daa49c26e5a03aa426 = "36f38e465c0d1f6e4154839ae513441ba2334cb8" +32233b5a3d4b4453a8de28a6d363344023b1e074 = "b2106d9cb030af26d6c015e9bf6e66083bfa36e6" +428ff4a0d3abfff82976b814ba022d606288e916 = "754d1212623f13cee340dee85786a2194986df3a" +c18865971782e31973c35b537081fc58a2c14dae = "62f16f26036f6ccde24c19adba9a0a0ed6cf445d" +ea1398ad48254da3936137b4fc6930ccc9ad048a = "efe764c57600eb4b862cd6bbf5e424efb932dd63" + +[85c772de-338a-5e7f-b815-41e76c26ac1f] +111eecbbb99c65ff6ceee952bfdb9c339c164f1e = "8d762cdb635147676b54eac1a44b2355b2ad7d6f" +7ba53c59aae0ebae10ca09e94038bc0d08adbae0 = "34617f1bf20846bc3a8f6a955f77a800639bd2bd" + +[85eb9095-274b-55ce-be28-9e90f41ac741] +06a56ce3ce90a28237dcbf11bdb1ab3dd0880b9f = "5bcbc1c5ae74c5228fa83962ebeed4b24f5ca1dc" +771144ceb43704510349ed5d8b6688253f0488cf = "f428a1db8de48ad58b2b8deeaf12e2a04015966f" +ac9f6029b911f283f40bb5a3ba804e6cb28cfd99 = "72b53632c95832a68b4f544f894260b01d4d35ec" +b1cbbf035ed9153361828c849c2b64a3bad4f9eb = "d1ec3dcb7278a1ae0b82448fa635da5d9b69e3d7" + +[85f8d34a-cbdd-5861-8df4-14fed0d494ab] +08644d31eadef06a197912aaa9292960739f5740 = "34aa298ef9b5aabea3d7cf646cf34df4923f2036" +4d80495834765ffb01ad312273567f1f331186db = "a9b07232b4fd5ef2cba5cb6ca58e6e2aad6fc71f" +66a6dac99eecdf19e39cae9dfcd0a09e8a1ea314 = "30cccd91953c67ce6bc23761dd91c7da2320c6b8" +899297f3fe686a9407f6039fe7ee54a9115bdca6 = "9bce9039785ea600d374ac8625bd739da68b846f" +93407c9660e9974dddc75d6eb57b11c57ca858f6 = "164b610970f334f1928b3817c1263f05ecd07873" +a5e4553d8c6bae2927bf47770c8d989270929f31 = "ca9d654698fc1fb3da058e84cbf8bbcb08c3c83f" +be90edac20d40f9943d4ad95e8818a52d90a10b9 = "c5b5f61a9499dc6e6b545d296a03df3dbbf85c36" +c574408d734d3f6b77ab0a2dda9a5bf650f32d21 = "1c1ec79a78595bacf4c0d8b413e87c0129c20f91" + +[8603256b-76ad-53fe-b511-38a38e6437cd] +008a63dff6d60f3773b72e6c09a17dc46f084f66 = "c47589a9e4f562ced37790c1a33b0a8e30bd4696" +1cc0f4c52b80bd47c47d1cc1a6c59ffad2d7cdfb = "5b8ae9c2085017f2d301e6038ef4de3adabdc628" +2631df1d5969b5b658566f2b26c4ef3dc2f07371 = "604f86f1e8f9d50ec73be6efa44adf012f19e10e" +a4316a50f81399f5ab875b25080a8d5b53479560 = "0baeb47040f1461867a4c634ea1abd8f07592861" + +[86162151-8369-513e-95ac-db6cacff8834] +07be0bb709676c101c71ba49334172618a3f1888 = "ee660311d4f75cd94c058ff27eeba596e70d286b" +19aae7eb8d392adf28c813c0e1a17e60ffed3aeb = "b0eb1ce8baf03e2ecfec990e65283e2954a5b4e8" +c0b86d78c0a7aef497ba99e935bf0720beaa0963 = "0728fffa3f6d6141c19538fd84a10c8881fcfa08" + +[861a8166-3701-5b0c-9a16-15d98fcdc6aa] +15a86147542c1e5246cd9d15814e9ae31b8ea2cc = "0e42d563e4a0bee712ac1f2457b8e47c36a7d559" +2fd2dcd6cc09052e9799096a96dc14845aa587f7 = "71fcbfe7d47c65a31610f856467ad5c18e6170fb" +3c08c9af9ebeaa54589e939c0cf2e652ef4ca6a0 = "23a41b7cefa58e1ebfa73c7d2731413a03ca010f" +5a7b050bcbf0ef1db878aa57d274342f72de02eb = "2e614287c4b79c6bc4a5dd9836d2c24044c0eebd" +5e3d1b34adac5c7dfc2bd45d5515b34c87d6c9b0 = "4a5a56e4794e858748aa9ed4325420d933721a49" +69265d09ef038907d6fd86ef595933d9b1097ea4 = "97d3e559c71fa9cfa9c9de61dae92109f89e350f" +84fe2fd43a945007fdf192bb959de24c48838435 = "c64abe311a1671ae3a597141c4d6826efa7dcc3f" +9188f5a941223e29a4b0718069d0b02dc399b41d = "9ac973da84af54a374d859fb59c3e8e5301ab304" +956a6f5d82945085e0216fd565a188b1b8685d9d = "59d270adb553c6940bd75c807a966c74b702436e" +aaaf5f48413f2003531b6d00918d68a139511c44 = "e300a96eeec0d00214ba91e66a9dcceceab85856" +d1b68720d0109c76c39b795216b95e47c46e6b4d = "1a6c3befc5b61343dca5e4b7db3647ce8e947b16" +dca8530bfa4daeafab2f880230bf4a018a6a938f = "fbe085b6806b26b331fcc29fcbb12522b5361b3b" + +[86223c79-3864-5bf0-83f7-82e725a168b6] +0207655f5e3f51dde98e507b4e5f4ccf480390eb = "a0db44dd30f0ba2d42afe018d51f5a2b01cc3ec3" +035d316543e358d0b2e49d19d606a753385bfd06 = "195a0ec8e646b58955f518bbb0943d7af7ad08e4" +04b198d197f4389f7a6e356a78846159dfda14f9 = "1ab6da3ee6832c0139e09fe8a49dd307250c2f1c" +11f1cb07ca6d591bc70c5c700291b2f8fcfa5a2b = "7a763a75a55c62407b0592e70b1f8f625f846a01" +29eacd5f391c0ae4448b39525a4933fc16ad38a4 = "9a137014792a46e338b65ca22d0ff19e171448e6" +32312611bcc0439c485b9c677debebaeb00135cf = "940be327c9c564d2314b25267b38c72bd153a1aa" +410d1190c783c860e3b4d23786e94aa328f33513 = "80117cc5f8e749a689dbd20e3d4cd21c232ad241" +4d6cfe1e44e2be0c13dcfa4ec2a6707a3177b995 = "d99e9a2e418319aefad594415bbf2fe736287d44" +55b28dbb809118fa3f44d3eb0d8ca10dead3c57a = "2d4e1da97fc6f5b5cb6899cf94a867d90a06a56f" +6de2f20dc982c5d0bd4813797d2c2cfb270931e4 = "ece139a5a60ea0273a8cba2eb36bdd895efecfd6" +6fc2016ea84c92f8969824a5d8efeae564e5f6bf = "428f391d5ebd971ca6f9609b91a603be8c77d409" +73ff7d60446799b2883fdcc07ada800b312bfed4 = "34d3c161a8ce5238de3ed55433d457b4cd1b1b74" +784d12602dd3eefa2f94824ae7daf2b42b8c6b6c = "324a8d5182a02eeda3191524355658591ee11e5d" +7ad317207900bebd06c70912ae10521bb7a59545 = "6d7674b6c63161e2317670c5b739ac5dc52e44d9" +8773b7dde9957a72de3260a6fc4928a8f5650a1c = "91c5d7891d136fa4174dde6efe7beeddf7b5f69b" +89aee212d8f5abbf12c8eea745a58efac3fd987c = "c67cd7a41aa3e9d937feb4ae7e69ee0aac12be99" +8cc8854cfa74a9be4887215f88861bdad4c71761 = "9c6768ee9b87866c48c07a47ae94fe54ee22d2c4" +a9a0c00906f42f0ab8e48d194d65490e80d5f15d = "b5fe53e4dd15946e9283be8e244a38b12eab3e5a" +afc63dd60123805cafcdc443d2a2917e043d300e = "51f78b196a618f99ffd1d3e4afae154aadd221c3" +c9b431737f9992224cac980e6e4e6a5a9923017a = "4b39ba1f89767d6bdc3abaa1f22c25388b6df3d7" +d530e9ab70c8a49bf3e258cf6a705517cc1c0399 = "ac280b1054a3da61aa84bdfdd82c9a1dfa764725" +dcda1bf06371242fefe5204a5d259c9d5effd969 = "7d5a9673ab5dcde594c7c64e028857cef3d81784" +ded94af335e4af283b21d791e8dc83e922105177 = "4a4665650b8acd84063293fce6e330a8eba722e5" +f3462013e14ef3c482abebc26095304934dd25fc = "90eab5291c5cae27244c0b48b1c7ccadfe5e6dfc" +f96e998bb9252d7d9f30c1253e1da10803034539 = "51e30341f28205aa470804831d82a7de91457ca5" +fdd31d92aaf0fe3ddbb5c1d8ddf60381cba3da67 = "2086751e13b712312e16483980e70807238ec57b" + +[864edb3b-99cc-5e75-8d2d-829cb0a9cfe8] +006562497d9be04d7ed6507306e639032ad47829 = "6df8425ae31f26dc1cf93eec691ee06bf224ab6e" +043ed242e608aee9f83823c547e67c730f2cb99a = "a035490971e70602132e3d1eb6fb4b590c0cdfac" +06792b4667f3dd3990a22a8affff8aeb087f6dec = "3901fec7c77958a917f3d555f15036f55bb0092e" +08683b47824957bd057d0db448d3efdfdc632cf7 = "9e276e52386fa086ef5de5103765b784a6069cd6" +087b9db5187b845902b77a0082eac306bee7a0d3 = "f32825cd19597de223f8960352054006acf1938a" +118622617ea4db1b55e8e0c7249c41500d871073 = "422d12219ba09f9756279657e12fdff057ae4903" +151958999e51866d814561e1a71f2d1a2dde8757 = "53d60367286a0fbb09f204c2425d24648e590698" +162249b625014952b066ba661eb258129991c94c = "e79976d054a1c4c648c533cdce06271c89bb0d48" +1b3edeb01a2dac87790596f782fda37a096a3ef0 = "af76a614d223a77c4035c96bb928c3ba5419ee96" +27f9c9291230064f07f3183a3c8f7ad4335f602f = "2ca45054118e6c56389fd0dc7bbe89da5c237b7c" +2f25f0679d26b159629c33ad3418e6619aa79393 = "15841801fd86323217ac3c601314914e324154bd" +398b13cff75994afa23e7c46ee6f60143a93723b = "5114221772794016901f7f09803b4daea4dc2efc" +3afb7a24c304c67a0b3d432af89a2550333eb071 = "5d397ce12398171853aaf36c8245a9be67fb02dc" +3d21cee067f35016997ec1781ad48cef570bc633 = "e35edc6307dc73e1f8cc628ca27f33240d1f745c" +402a6d45cc016408888db299c94821538ecb55e1 = "4158566d3a4be125db7d7844f761a3348fa5102d" +4900dc27d473508668cd0f164dd655b429a75ee2 = "ed7357e1c971446c237e0a9334fc5d5b82af8cf2" +49561fa79d39caf8c92d584e88750c1666a10480 = "12c26861088473a78a3f0b6776e329e442dc3781" +4b8de289604760b99d9a85691027710a74bc46a9 = "1d3dad4ce78e0e48b67ab1f981d23c01cca4a3dc" +52615e84024f2ac666469fb8f2af95a6194ad84c = "3ada868240d6ee925dc58c480824cbf7afc36b20" +5a4a6421fd0e387a9f2b9826a1eb4fbf175bd15b = "f96052af803c4449bc96d05ee85cb501f42e07e2" +63038135479f953ade6571662f4638d9953ebb82 = "49ae445d3f5666199644e9007b1f8763d838a029" +631824366e269cf415e2fdaeb79d7c35266d0ac1 = "a841160c3936de3893542aa0cd66790a3b6b9ed9" +7086f3a1fd28fef2b1a979c11ffefbd3f9daf251 = "af4dd9256e09fa7159e72607402bdb7bd657f906" +7198c4fb7c5d468998bce89c0c1629dee3ce665f = "b19543e9c0d0a88a17b47c0f4dea60229fab1df4" +789cf00848723b3ac67ac5f4f0f27c3dfc4c7304 = "1a57bb2520fc6afcc6c1653e8ec91e934d17afac" +79e517b1a41659290c18be31c0d25ec96578c7c7 = "30843ee16c4dd16d98ad990f078236108a5203ac" +7cb00c6bc3cb1c132b91047fb6424a60dd163d05 = "1aa0246a5e1e97beb7e12ce3c62dd3d563d051d9" +7f8b770aaee5d827737dc8823ed2aca9294f4043 = "2245ac5549b4caef9bd93030ab35c834ba1c31e9" +81cca83f9d691f54f24e7fba2aba09a9b43e731c = "036021f753b36bff5dbb5abc7993e505da1afee1" +87a29b0a0fdde625037943759a51c3be069a3951 = "34d159b50ec392056cef237cfaf986a472ea2121" +880480f06b674dd0c1f00103ed3d69cd4ebb6d4d = "dd578553865ce68262e6f647793b4fbd9dde505c" +9081d6260207b5a09a190c4faa95837595345c3f = "3514cb667e9535c810214ba963639934064f8d04" +91ccb8dae7e49534604e93bf1bfee6e43d001a28 = "4d35d46a4b989f46d070f1a23158367b27ef295f" +a934b9ca03db47657f0206b02ae7d9ce85a77162 = "778c1a8e0193b87e3262ba8078a3ac57fa84304e" +af0d3739bdf18ebfcd4aa53ca9f4187840ac938f = "e639a40f8369c0d17dd821986262dfc4ccb8b398" +b11255efd04dbc509086de1a9b3eafea86d247b8 = "ec4054e6df8589efc59e07b17d8c4fce752e6c56" +b4aea82ce1cf165b96115f9271efd33776435fe0 = "c223fa7b69318f61a4038b60249e6dfa9e07b400" +ba696672be809f812dfef079819564b6065ffd36 = "84bea819ff0c08e8f9fd55a637d25bdc685c6c5b" +c1cbcb3ad62dab29e7765089c4eef2f3afc1a344 = "78c82f066fbccb651727b9bf8d8797528a93b219" +c3059a99d867b681fce562c1c463968428226737 = "6c783b43a6faf2dc235ba0c853b89a014af41fec" +ce598f10f482653aec888c1c956e8c2b5cbde10b = "7fa30a55a347cac2e7cd3ac8cdfa99f1b840fc02" +d5308421daea7370a60d3e2718e1b3fc5fe47f50 = "b49714f42791b25725e1c1d3b3580d9628887cce" +d631e5ce8fd174576171eae6c30a34b8a9b3498b = "07d8c67c3da9cef71053082bc90aca6e26f12ed4" +d7f79801adc41b8d0bafcc016bd5b28d10308543 = "964c91e4f3441b7abbf5d83f6646570836fb25af" +f0d185a3604e0c0cd87f0ac4544bd423c28913ea = "90d17a91e4695a11be9beee9e7074f4a117bd772" +f67dc0b144d1fcc83eb48a7beddca746d4841f9e = "31a72dc5dc72a939bf04db1788b8138dcfbc8e78" +fcc643ae32378a4c76672560e4f39661f8194998 = "d4b37bb53acf88cf185871ccaacc41f4e03d9622" + +[86800b63-3017-5277-aca5-15d7d6a5f2b2] +85520e66147c51096cc7b9c1c9b3d4d18ab7573f = "522a2cc850032c9d6779f4e50a7de14e9f55a1e7" +8b6e743c864501413e1f750cbff5d6375fab0453 = "768a7a8c80a4cf28a848953f2b079b9a956fb708" + +[868d336d-f365-5dbb-979b-2c1525cefd4e] +ff47a4164c6554ffe195e38736e9b607f3317dc1 = "b28eba12294a59d0a66ecdd43a4e983d4512ec82" + +[86cbd20a-38ae-5b56-a3b9-c5a70d2def0c] +4ea71c4f5e17b1cedf87ab8ac79c0e9fcf92ac86 = "3a8cf1ca91dcf5bf1763867cf9140b31fb545b8f" +50e5fc623a60dbf94bb8bc0938c4e8322b8e5247 = "517415893b532c2c20bce32da21fe1e7dcec2132" + +[86f7a689-2022-50b4-a561-43c23ac3c673] +0025d3684e8e4ba7f947416f6e467b13ffc8f966 = "9a3b340eb5696dc3a949fcb236933a46225ff038" +31246de6ede10c446b26db8fbfceea2ce99b33aa = "7b8c4ad2313807e2929706788e64c447fb7096cf" +3aca1f362f5e85c560d7c9df6b9bee5e68588ab4 = "95e79434c22c5bcb7e5c554f51844336ec8f5dbc" +41d7c452e858f55ef6671f5e449019adfd1a5d93 = "510b16489bdeac608db4f39689eeef9b7f7bfcc0" +4273e3b991b67c16aeb7f2338e3160d52b235077 = "12af3e7358a6d510e500f3892f9d920650ad30e7" +4c391959ea58377b677c4c0a29a387f2de1bba4a = "2013f58e79d778181c498fed433caf6dd74c9746" +5310388fafc069639ce4404b2146054e129ad254 = "d6f80379132c02cb809c0f98ac5c9b62fbf61f36" +53a4a939945c07184307e60b597a82daf4d6025d = "467bbecc45dc61222769bbe681f0e7b512581018" +6eb45741abbbf9dee4d3108ec6e095a6fb89205d = "b30d890cb40515c76716bacd2d23a1d0dd69bc92" +8e35d01b382bbeec853e59872f306f00bf5ff363 = "3f788885ee6b8acaf59be366e8d48eb8605e24a3" +94f3edab8b63c6e0c9ed63087f2a5a3fb2ecbaf6 = "00a992c7bcd6e309e956d769f858609d261171c1" +a49c474051629e1c3449783c08f2488dc913d4b6 = "085103dab9105a7debdef2072dc4c33d7392b567" +b020af41c852bb090c13db42b4d2efc9451c71b9 = "1728bcbc91862efbbb01b1295e6d4745cc414b39" +b9117b30435feb21fadddf9f2ea020dbf4bf1a63 = "67a78ab786d2f36b5445c0c332d125ea40dbfcce" +b99138f32081e94dee83f97996e0d60b7a53afab = "f2288b3e3c9bbf78fb8005849257bd1e5a809a55" +ccf26532c48e5175d6ec2ffaa93c308493ddf476 = "9af4b39a1c9177bc871bb54654e9e2acc93c2c28" +d37f97b92c10a1dca9c93b5395eb2698d4ed2496 = "254145d132007a3075d63a975a1e584777899d18" +ef8a1fbf650d162ff169226a102826ac9c9d71bf = "64a81a576cf238f6569571528b6e7c718081c405" +f9dbffcab67cede7227538f98ac71eda96eb78d9 = "e3a0fd34a1bea8cfcafd90245ac6bb465829e3de" +fa78640b3d516905f7d6883843648c0f3e0296f9 = "17fe00193abc47304980688be6240c0cb166d148" +ff6e7ae143c6f3766ea6fbd33151d74ab38a5776 = "d7afcd1545cb3f9896dccd6b47d7a47a993fe50e" + +[86fae568-95e7-573e-a6b2-d8a6b900c9ef] +0ad314c8f22d4f054eef8cf0fd0121e8499bc24e = "1c13e0caf44c206d566f5c77d83cfa9e48617a72" +1271fe1a838d6b64f4fe37e59b3b476695b9ab4b = "fe20fa49ba1321a11ce826062d0ad98a9ad9174f" +16566b74a29f459457c2de39daf3b4c64cbc0b44 = "ce1fca9c4d001275a4fb00da6d3019e65e89ab53" +17cc77dc042cc9cbd9d45183429248bff54c579d = "834c9a32b6894a68cc2ebf31484ab78b21b2ffdf" +1f06a62ae152acd5d7a82cd9cacb1efff8c2553d = "23b537786a82971ed054118be1836e7bae0be7f9" +2035bdf88705ab5d49e7e6599f7337cee1723f8f = "42c9568a60f87d7d9e11972a79b93a67291da845" +2225e7de45d2089953383e1b1c6388f9e906b5f5 = "5229f43df548fd2738cb0f14234a696bbf29889f" +28d4db394088d583d7b372a9fe49a52138bf36ad = "beba30d27a8e210846e3fe09cd28568e5e4d6765" +2a5da26befc2b609f4ce6e7641d56dac04bb66b9 = "2061de2ba271ff7f54d061bb57b0747ea07b90f0" +2d5237fd7af7cf852b2e1974c8074d6830259e9e = "011431e949e07e225b71368b03e94afa495bfd4c" +32a83f74d841be5cd5b8ab59669239444906c9b5 = "490473eaa2dbe6680d51e54198b594b56f47b879" +35ce5b4aa9ac5b34daa5adf8c27316c79629d573 = "d35e1e1b983546b453a230463088a70b48684ac4" +364e79ac88bb14e8f0ba023ad3015db648d3b66c = "20fe6baf51114a832e7e05a9463630f6b4461b82" +40dc3523969764e267496a6b95e93f69efdf9f37 = "f479052149516d895d4975409555fb83fc288903" +41aa02fc01d7b4d8b0f34d3e70d2ecfb6d0d0591 = "6a0769344e95821c33cdcf7d8a3b90e344035358" +487dc05cb007638aaa306fbd38ab3f2c9378bbbb = "35b223627af0b6d7e34a599c33405d429b526eca" +4cb34f87f50d8918c300a3396239fa813f9d2033 = "e73f7ef499130368a55a8cc15cfb7c765c0af7b2" +4f86054e7d8adcf971abd430fb1c886f6d873f56 = "7e9e25dbe9b6bb0ed8e0dbfb887dd637edeef121" +518ed25ba8a9b65cbc01560ce50636f1894ad8de = "c000399a5ea673b30afa63dcedebb7f3566c2784" +52f7f261c74052a58731a4c8aab37ef86434b80d = "dcbde9238a83b073d75b0a23855cb8b4bd064801" +53965ae9075c3746590bfdcdf915782f222717c7 = "e091b76ea1e61b4d25a8c0884f7957f66ab7cb05" +5c95569aec2c74b89218f861d261723e7dd60459 = "7effbca732fcf758c0b54ab43629a939eee4d124" +5e3f1091185d09b82fa362a4f742ccbf44c9625e = "521a2ac5d037c8b82f7bf2abce2e6f87d3376c21" +5f74af8affd8e9501a88b692e46519df316146bd = "62f684d264eb94bfed9779c499c1a8abd085cdcd" +604ae66a6216faebd440afd6b1a97aaf1db1d47b = "47a0302864828b9ed788291eee3aac7f96de6d06" +714d4c552e7421a64639e10031e1aeabf5044752 = "dd2e8472ddaf3af962134cfc0b321c053511d59c" +7179b243500a5d9641a49c414f261955de525dca = "8cedbed4983e2b0e9119b490cb117d28c219bad2" +7655e53e8f4a938ca393ab9b7b66f25213028a1e = "87a2ddef5e2932bf68847c742d22f56993a3f2e7" +77740f2738c23f4a0d091481684f7eb116296040 = "43064a8a7c66600a73344ebcb96dcf05020bb288" +78c4f8df15067dcf7447f13cac287f30de125ad4 = "92682b5cb50a770bc954eb0b097b9e9e6af94d54" +8157932ede84c6c239c38e4f0e534b036adbf4c1 = "98b6abe444b644791e57ba0b2d35848aa4051da6" +81d6c4dfe329ee2c0b32dadfa2a296168f7ea04d = "b64ad0e356f7dfc6930d2c7c22087bd64195debd" +8647951601846e7287ce83f80eedcb77efccc9a9 = "7360ef270f77c0e6e52fdbbb94933d52f56adbf9" +8e1a06093aecbdf5460cd6c85dee7edfd2c36c65 = "9b64e55522964b246adb65d10e85110fdabeb299" +95633550302ee97270917619b1782ee35713f53c = "56eeaaffb6aedbbe6625f4128a8f0f3410a9e60a" +9689b261c382807aab9e009812eb8caf2facdb4f = "85d6cdd20b7ed29835ab33269873154a69002dcc" +9c7b64a04cb14fae1fcc84b2d7230c01c76e4e6c = "80e48bad27e4527aa340055dcfc739a64273bbf3" +9c7ee23a54f5e63a92ee63fcdeff415681e6dff6 = "b0734dc354505da9546970af13d224d554a0174c" +a666eede913e449bcc3f91ac7a27fe8e67fd99f7 = "3e750141313cf972a8539855fa899223a00136b0" +a6a1c105e8659409ec864ba371438a25b22e84da = "3360dd68be11042ca469fc48ab568a0e69fcf81f" +b423648c694000355e31fb243583dc1308082022 = "94b876ffd26d88bac198e3eec763db7b5d33831a" +b5992badb70075251ac05f3bb638c46640f65e76 = "be3fa93166c627329b64755745740047af4e3ec1" +b5b1ba39c12b9e328068c4e7ed04a32857c5730d = "110629e98c2bc44d8bbc41da3137e139eb365091" +c02143410325f0879f24b13f01f5252d7992cca3 = "73890f6b3d24a780a21055a97e81104fe63c30fd" +c1c14bb0878cbf3724b46e9d357a5ba0fb2afbd5 = "6e6b4909f2cb4bb17b4f4a4b6d9f7a60fad6b770" +c57e6a61fafef4ae8b26cdc2de979beccb822f55 = "1bfd2548d425a0c4ecd1f799bdb4ca802747ef3d" +ca9fc0c348465bcaed20d078e010ecaf716f7645 = "a0aad57117ef332c1a72e87b4b3aead7db1caef6" +cfb394fd866b93426493dde8cd04fc663a61d84c = "7f0ca24cb239e1ccbedb464c7650524846779a81" +d49a4795cf48ff45826ddea35737c0158f10e65a = "018544364bfa16e6d6cae6408475f5d17f52c4a4" +f5a5de144ee3e457c62f282a46c80a7aa50028c8 = "9ea078ce793862e53c5ffbc06e71169b02567cc6" +ff4158006a5512a59bccd92f4b7d9fae03ade3ba = "48f784964082127ea8473e19eca0bfd0b923f782" +fff1d66ab0580d1b421743c875440e586febbace = "ee91af58f5704c43bb92cd6ecb4b6c51c319b1b8" + +[8710203e-1f21-525d-b237-938bdd24ee6a] +0075f31dcca0711f16264cea602c1f75ab09c2a0 = "36d22b1696e5d1e56bd023c457cb30c460ed3412" +13b43e46bed5a1e664c9657c955c3bf163161fec = "5faa9322c1c7c14a3504f071a4757a08712ab10b" +23e62188e9466d15d35d53530f694dde4764b442 = "e6b4a5008630a97a5faf09b88524bbb484947559" +4ba61e763bafb30d59c183d2b0b5e5b5a3735109 = "5a86d38f21db6b9cfc4fca93b43bb7bcb1ee6e00" +bbb623831c921a058171e7be59ac25ececccd825 = "cd12972151c7c4c0084256f6581cbc62585806fe" +f88451f491ced73319041c9b1892b678fc08a629 = "43837601c3b48f8b4ae55521aaa5a3ba9f689af0" + +[872c559c-99b0-510c-b3b7-b6c96a88d5cd] +285179e07e7c6c83d41094e382ef29e83cbae0fb = "0b9744aa76f3f6d5220977a0f11a9d9910dbed77" +2a20d64412698f8d0d741335dc45c58098b29271 = "04904e1015169730a62d12adc2b7d040c438ef66" +38ba0254e3b1103e6d76546d4e82cd4c5fba378e = "cb13256e37e873d4c39d767be808ac9275c3c017" +3fca9d078ca72a356c4c687693c3999545e91da2 = "eb8718aa865835ed0c2f730ed3cd23b94de63bb3" +980c76824455003c4d179336cf65180a2ed925f8 = "3f5bd37b9f9266bd6dcc9b12c5beb44f767cc3a1" +d15b558d812bfdd323f2c4cff2d876edd702ba2b = "f272e4b657c2afc4a92f7be2e4fea229a311ed60" +e4b48c1f41b2786ae5d1efef1ba54ff82eeeb49c = "24e4372337c49e3b9ae7037618d29840e87849ae" +f446498c3406c08cf3cf2deb280c1d007bf04796 = "23330aeabf0d2e0b820380559023881528dee664" + +[875022e3-a016-506a-99d3-0712b6c7904b] +ca021549dc4ce15560f4c64f8c32835aa891ad57 = "c3d253b5e4768e35ec70b2dc8f29b04ff2ade7c9" + +[877fce51-0832-5d5d-b749-dff746d2f7eb] +1137b18bf81129d4b46d26515b777f3a53785b5e = "dc9fb9a2e6926d44dba8f830a1b74dd77ee6cfeb" +16d84438d5475ce7d018ff4a4f90e53ab81e12ae = "134a5cebde8ec773679028f5ce135bee60f8e08a" +24f5357ad2b4047d6503d3f42575debb32520b20 = "616303f12b7d242e161eabc98f6242f05bdd6d31" +2bfd01bf000e6e76f12ddd955106f5229b690311 = "8dba17040a068a7b1b1d7c25dee0de09194ad969" +4b3d400ff3606ff71bfe60cdbe50b21e8ae7f2e6 = "ee781c8614b1cb234c59f83bcf6beb1edd8d6620" +58001cfa588dad8489f7f5968e15d86779c4f448 = "e571e844d3ba286446dae641c9c403226e6bb3bb" +680976c8b9fa394a2b603b1b9b6f295d6add0fbf = "f9db8b2ee93cee470a61f2884d0b0c73a7157d57" +ce61022be7f00c092dbdb66d725390356b608d30 = "205b2fd36e18578fa2ba9e6d9710f2ee6bc9c123" + +[87a02803-f0ee-5d26-846e-298423f06ab0] +613ab104ddef105e7ae50c1f53ff557793d8cae4 = "88a10a44c8b157c28f3cb579382eebf63436dd87" +7fea0ee863ce74201c0ded73169e6a0f702641d9 = "30667e5394a2cf719a1f31314aaae24f568c7de4" +d5da619a1c36a63917be37cc7608cb9b3154ba45 = "f8755159275286c5afcd5b1b6041c97901a5916a" +f2b30d6fa61193fdf046948cb9bdcfceaaab82d1 = "efe353bd825f7320433f7de9b079a5475cbd6a3a" +ff2c19a97e3d56fb509e3555107871f63beece31 = "900b6a578a810afbd37a8c7412327eef8aead291" + +[87a1d0c5-8d4d-59a5-bdb5-139d412edc85] +e0441f10ebbb8b989ee85bfbc6801fdb34164b2e = "0f10cca0a9970e3a7153dad70d3c0d040e88a71a" + +[87bc27b3-2e72-52d8-81f8-01e50e37e50b] +afd55025791b22ffac0197e4e83cb01c06e85ac2 = "ca63272537db999e904cb9f92e0d25dd3f8b6852" + +[87e2bd06-a317-5318-96d9-3ecbac512eee] +24d37a5f2b425afaf2df23231c6cd881dcd92698 = "34678ffa6b4fe97321e9337f8984d192fdf79279" +70977d870573970be65fd9ed5c23acbbb0d04c87 = "c594cad4e37000d3dea65394de8369a66988a0ce" + +[87fe21bd-8b4a-52b0-bd56-87cb6841bc05] +7a3ec953b69d067615b1e96c221a6dbe61ff5f20 = "e9c79327e6c00bd5c936bb30f5054b2e1ded2364" +852d391b6302cf57a245b198ccebe61814c82582 = "bc3fe1a0d5004980c57460cfdae53927d5d58b2d" +ad4dc40484c4a16a4671bae8a5922715fbf6d680 = "875d7bc9b13df2f5c25bbce5372c21ecc48630dc" +f7511f90619e3b64303553a5c45456822acb1afa = "9e259c798bf6202b3b0108c584cd70501cf8e48e" + +[88034a9c-02f8-509d-84a9-84ec65e18404] +0a72cd60ee0f01c6cd9135b368f00149735b8690 = "5bb9cdcaea6367b3aa4d9dc205ec802f51796946" +3b420d1871716afe5baee0d26b02aea451f4e527 = "27579a1c8fd046446ac4edb0b13eaf114f1059d8" +90f6865120f3d02f9d17fa2d0f18b43a0c41dfe2 = "e0d83cb04738fc15629d2de7ad8ade3b34181c94" +99b997c9e29a0efd4549afca38ae333756add5b2 = "2d4d36cf585a66708c5e6690e7931af19ef2be4a" +dee136e1c3962ea44321c06f75141a83da1a3d22 = "5b6468679ca90dadfa558382a1da9703ab6cc84a" + +[88353bc9-fd38-507d-a820-d3b43837d6b9] +294c83c767cf90c3f392660062bb7a1e3ffcdb8c = "70f2aaef2a5ce11ff3589e26b9805a674e84035d" +3ea61aa302b891f42d413014c0e6dee1b4411914 = "d1e76baa9d5fdc677cdee2b8116de9db6d6700a6" +59a8a8e1a9df627bd66c872e90b01f7e2b861652 = "86b4becaf692ad505ec4b48cdd8e78cb1ddb5e10" +6fbef1e06dc5f9eda2f1ce5096a7c035c85c1ea4 = "b7027289ed2b02224842ceec653732718a6bc82a" +8be731f20c1c2168e05c98963aaa5a5ff5ee8a68 = "37a8a1a7f2c825034f56d11a332251027aeb7773" +9792156fd42341f6cae894291f31e27a9dd6e737 = "04b76aa5cf08b545d8191742d5622be4de6abd1a" +c954d83808ebbedad911447bfa94512ef3919fe1 = "86b4becaf692ad505ec4b48cdd8e78cb1ddb5e10" +ebf9a39e16346cd56cd8b20474f5f9445982da8c = "c7ca0d6f7cd8383ecac77f3b8b4b619a2c45c96a" +fd87e2198e9cda422f516d53c7263ba9539e9a33 = "c10ae9acb476c83a67fff5e2a2b6d3839337af95" + +[8851364b-9c05-55b9-a122-f5ac41ab072d] +06d6decdf23b95859f9899b6571b0623c47059ec = "1fab58223d4605934c991ae4984ba2be20f46695" +389b93293a1f4088f8cf95dc392524176593542a = "9cca76b357938fe115bd1777b96f708840906a39" +7f924bca122b11c440f2200c7f4103b92464e0d4 = "e96cc73c50de380db671ea0f7afa21ef122a7332" +80be6c23c63d84f39bf71f43eb009539a83f2eef = "d254476f8819a07f977159419b17925325fac37e" +ab6ee2425bec59c53f0db4b5f8790aa62bfe4e8b = "056346af746019759741d2f07b3575f82a7355cd" +b003085fbfdc57aaa70509316bbb79ad3ca68933 = "d2574317eb5f99212770e05082f1c0cb22b462ca" +dcd1022c6818ce9430252d64cf64d4b351e706f8 = "9c6374e5717a3ec041d85687ea2452c497af196c" + +[885aceaa-7568-5b56-b2d4-116a98ea4ee1] +c7be580ee0c7af07fe11f288b17a342d91436f06 = "519d1df0a343d6ed56dea9214e5736ab46b040a9" +d9b11b4606008ec40714040654205d968db8c598 = "c7e0653560e9cff78ef35f28de2ce4e843cc1d45" + +[88634af6-177f-5301-88b8-7819386cfa38] +4a27e6e8971552ad26e4236a7cc4d4c2a54cda9f = "b7537c7120310ce7da3e48d8dd4f79a96e2edf13" +a290359e032ef05948817ecac6331d0894a0ca15 = "63155fd283f151b2f71f0c4f34fd562ff89438e2" + +[8913abdc-d7a1-5212-bb33-e6dc6371b233] +63b78f8672d328bc8436ba00857a42d9fbbaabf5 = "e05fbf8581779cff31fd301236a745f1aa0c147d" + +[891a1506-143c-57d2-908e-e1f8e92e6de9] +0ee4432e2491ea083026076854e4a57b1af84a82 = "01920fe3c9c5fea17429c51c6bf1991d96ade4aa" +2750ec4bcca6795946f36bbe4af15f93821a2f38 = "e236a4ac73e4bc4508e777ba83330121a0e1b554" +2f67c42efcd1a4ea16677198909dc13fcf866547 = "fbef8c24d61ff5f896d5289ab5be9d8be4f891cf" +3c777a62181e23a0d0b3dbfb081c49ab45be83aa = "5feba306cc9dda267952c79df720a47804aa9b3b" +4ceb4dd9241e9e4f3f003ee041923f46797587a9 = "8e3147a48d3d56264d28a2b6e0c87f694e6f5590" +51a6b18b8bcf08df701b541d571ad1968cc78d49 = "fec3c0bd9cab47a99ec356c37245cb6277e844bb" +65e18df1d1ac2db99e7651ee69529704656f06b5 = "bf2fe548186ea2d32405228577b60d786797c42c" +6f916cf4e9caec7e043f3de7007f0dbae3346b51 = "5a28886f1d63527606b30b9c644fed65c592c5ee" +c716f3d971be8ba446a43f09fd873b68d9259606 = "45a52653f954b08111077b77d395e137dcb80170" +cec1adba45bf6e53814d6fa3a5bdd06ae16c0fce = "72962237ac5f13280df4126755dc309f78bb805e" +e7185bd53d204b7dc8892eb987d91305949b3126 = "6fdaf83a89134fd54c69d14944d1eafa2a6dd86c" + +[89210da2-f0be-5ef8-ba65-10393cce509d] +26d3005556f7f8960d8a820f435a2b573ad29359 = "092befca351057310416c3af839a25f4b878c480" +5ab4fc989206a72e64834dda95bc29e1be387ba9 = "41840cb82cd00042e62d4ff111f590ee1445f153" +5ce82aa1cd4ff0bb7cc3dbb92c9602efcc46eedf = "3ff2215719393c380d6c88a6a6f1ae8e30da1ead" + +[89212889-6d3f-5f97-b412-7825138f6c9c] +09e6eed8c9c7497d7bd238d4e2381ac77330eebb = "6ec7fb03c25943719294637564cd5dd9f53f6153" +0e5a939bfce99b1a6bb25791e72031948aae66b0 = "fe41e579287afdc2aed26f38680e49be0273cd05" +15e1d3700726a77616aa5ad02d228f40f4875dbd = "e0e4fb9575684c8136604c0e147e2f44c62a9833" +1928e729792a18b0ca84dc1479454fc2bbea7524 = "f4d27c25d2359c78f553c8c1021ae05750c96901" +1bc89101ca6c04ed84da7636165c22cb6736688d = "f1458348b48dcd407755447df7f981d81f8c4518" +1bd876027d86be9cae4f6b51d519c201dfb998a9 = "92f8697355685492f23f0e6c96e1709a808fc9dc" +200b06316501c3ad3f5adea08f45634a0f40cf16 = "8ec8dffb9dffd5ce8bc948d252b0d6ae042bb4eb" +290493303d3df2f6593778cba1e766d63bd51063 = "ea2c9c78ab63917c05c6c94232730f38a0b4a6c9" +307ae6dd2fd35529dc0f252d96d7777341e6d87e = "efbbb454798bc4bee7df4de8b371e6020e976adf" +3148de776bbc5c649e3a994f543039bedf87d766 = "676953556af2db8d7639e48a6330b3b45b0c8cdd" +3374f7525fab63b92e716593c011dbd877333db0 = "6ee768bd999c6de8aebdfd836c73c9051a174385" +37b26dbf9e847018a717d957fd0a26a0e2e83bc7 = "5ab48f0f62209a5c9de9c6ce772975907896394a" +40b3d109e3c1612e162c0c36a1b55d1a3d48c86d = "2c200735df5019c651281569f14f683130bfae77" +4ac5ec73b65f55eb1719c4873feaee72b2836587 = "088e8a887d7886cab9474afd5bde70ee8a61431a" +5cc7d9abe0e41e8c93fe4824220a1612bf6a4963 = "ce3d52b2340c83fb338ba68a52d7e9a104ed859b" +606026f55106e1a833986f9587b02e3ef017c0ac = "4d787101b29009c2e5acd901609fa606817e80a7" +61f08d60149ad988a5f792acf91e793b583cdba9 = "778b3295a31d0ffdcf00fa1d98a1bec6327222e7" +62e8d4418ae6343edb92a3999b03a8a3f7880242 = "c50fd05846f3cff346c525908dffbc67cd1cb9f1" +6588faecf9a1097791406709cb4aad3b3315eae3 = "eca031d0b2239524bbf6efc09a24f9fe785717eb" +6680f2ee700cf45f1c94af4920341bbb7782d934 = "ae3b9549967abfc7f1e48f78380e746ba00097da" +67fd26573826e6fee7e5bd83a1a232d05dd6b6d1 = "bcde33675960b3ec337fa604a22170cec1486933" +6ba2fe8295803f8d7f3e3c888716a898fdf7f06d = "7d15abea3b83863d189257d5b3d1df111fce8760" +72b2a3002a75c3668b53336cb4d2988d9e07eb26 = "39ab8e5b9d39dde635705f9c965f0197dad78327" +74f65dc7b7712ae921aa194408c2311025f66cbc = "3589674dc4a925890f462973104a78dea5236e36" +758f0daa96a64bf26f2a25253915e4c26d51c7bc = "094ec150f9c490be6c6d03b072ddfe9c7061e1a3" +7b2a72c4e2d40bd6c56aa93273efa30b268774e7 = "dc8fb5963d595066b1be38a28d656c1731fe71ce" +7dd71d9668a8727acccca2515a77baf722c9fc97 = "c2164a02c97ed2045786051d066fac9d34e8baf1" +823f920c523369ace7da58972605a73584eafa53 = "f32643b96892a903b537743a331bce6a79a49367" +84094904310f7f59e4071659c4bf84de237ce5da = "588135654f49cfbebbe104e998bf0b83a79dbbb5" +87024ee41924135ff4c4851d5fff2ca16ae77d53 = "ce884785a01ecb1df6b6a048ccdbad15f9fcf96c" +95031df65c575c2218d59ba8ff9591c9bd9cf47c = "4404a2ff0f9485f4e18971a9416aa19dfaf335d1" +99ecc5e41824d3cd5e8ab3cd50d962bcf1ab9421 = "7b483ac5502a8556db85268c2d8c2a2acf6d139e" +b20b2f3cbf77cdca1ba59a12e4150f42d83e6f02 = "61d50c547f85da74ac7d64f58486003a6bd9fbd5" +ba5daca777cec76b453d4180263131979dd78e88 = "9db6993813b57882ec769dadc0a82d48524ef896" +bd2432c61548f86ac3c0653b87fdef00eb5d285c = "b77be357fbe2a5334311501336182c8504984177" +c18fb1de6a156c5639d73524172ec8988baaba0d = "9ec170ed02a8b3ea3a083cbdd2a42075c564b6fe" +c223483bf878c6f760629204d768b32d745bd393 = "88ad39d279d612c4c0fbcca6a8166440ed9b654e" +c3e54933710d4198f2840b7ccba210ed43d0e4d5 = "98ee65c60323e85972fbac251d14747ffb0d096c" +c660af3cee4fbe3db3aa0386d8a87b6e9a5bce55 = "1d61dea8e9d424f6fa6afc1064e71217da7b0b74" +c9d5210534648dc6d58687d531e08ce5b7632739 = "d08c226bb659e6a09632ecbc1f879668a1976146" +d3e7ecb9b37b6b1e8dc569a010811ef7f03978bf = "451bbbba8172577038919edec08dc4e2f8638143" +d64315492ae3b0cbd6c50f7f9eb668518c2d33d9 = "b44dafba58186a3ea755ba7d7fe391897f380f1a" +d81abf0e5d459a8554e0f031cd1f520ee98e1eef = "f745aa3be6d839a1e0ad94b28aba7186414a0553" +e1d34328f23bdba98a3f4dad2c78928e732007fb = "6bf991a813382d69387ae555f610b49b0279322b" +e5f252ee7fc8ed084a3711a4aa999d9b43688809 = "263b9365fd1c8cd956ef30b83f60c05e6f616afb" +e6db18f304729c830abea65f183370337e732c49 = "875658d5b65a5d46394a3d317288d0f9419eb601" +ec708f3329b38fe2a886ed31e72344c0eecfb33d = "751b72a586a52ff95b7b1b47b9161fe10a35f0f4" +ef85883cbe54d5ecc3470907db182ae326938cd5 = "ff2848d5223e8c6a1bd08d870dc66e3003fd7339" +f127de50a60676adeb2f760ad5b30092cb34c785 = "4ad5a2eb4216bcb1658344739e88e405b618258f" +fcdbc847e87ea59d3840d8ba68de673e0aded6ec = "88f96471609df2b6b4e88931ed68ebb692e0102e" + +[89643fc8-cc5b-5201-a099-c275ee1642a0] +1f0cd4b9572206ebece7a286c14f5e4217b94146 = "83da80174f33069aa06a65034be97ebf361b40e0" +897f5aad2a1945c6aa859e2d4700a53388cc4b31 = "8b3c119a28fa45bb06846b18d10ab231189532e4" +c5739bff841ac818a26b7f3c3f2016d6a2dec9c0 = "a83c3d7b887e5dde30a9049709c520cd4aa6c9d4" + +[898213cb-b102-5a47-900c-97e73b919f73] +18095ab8ba331c2fe685b6e9090096bc3b648fc9 = "448a89d74eb9e8fbf81b4a453973bbd280f95f88" +3a394624d3499ccece64d44c4346f14def39b517 = "4bf7f1eaae86520ebb51cd3066590c3a9c9ec35a" +d32fcad35d9ce39536b36e58421fbace2bb0ee73 = "499568f5a1b03ab4cf891b4c103e851e96355b58" + +[899a7d2d-5c61-547b-bef9-6698a8d05446] +3619443128a09774fb6583f6d2ab651eb60245e3 = "e8bdf45aa7a14d8b5e2406bd3dd18609fc15c2ed" +a2e54222240a0b06d52074a216b0f09ce3d2ba68 = "ff5eaba95e0d00f4007769dcc5bb22643a610ce4" +baecd090de80b241c981ec4e195708abf1ed3c2f = "293d77d8916ec067bada8f01f700c73954522472" + +[89ab07c8-7ba9-54fb-a7de-e55844b2596b] +2558279e9bd157732f58f64d87dba74c9069e3ae = "8056d9944825e965d7e2618731d08f93ff0e86e6" +5bee1851fd488b118678d504ca1c2b7cfbaae20d = "29a9af3da853e68b2b895cef654f6d2df04eb940" +9d92aee40c7ffe2dfebc43bd776df4be0965d24c = "fc6bb19c808562218cfa92c79e5dc240c25f413d" + +[89b67f3b-d1aa-5f6f-9ca4-282e8d98620d] +3e86f36fee9ae6624f4cc6b20de7c56851ff023e = "dfa4ae5324b5060eda171e3bf33e828cdc7a2280" +4f1154c76fe697c15fb8693b3944600b437dab43 = "729b6748bdc9a13095705d25f2c6b2961a757195" +d4c74c0ca96acf707408a241ffa70458a371945c = "f7b30097c211e7a2d0030f9b998d8cd75fcdb60e" + +[89bd72ed-8c37-5969-8989-5c5e0cf73e51] +32ddf5dfa12a098f07a5a693b5ed58369f7d4d20 = "1ff57164de0d3e852e2722d2241fdbd37bd1862c" +63b870cec7a4e4541575b9e2e9fef2424ca0c130 = "45f360b7bac74ba24b44eb8d75c8f831cb500e66" +6f70e89696829bfdd5241b5aeec7940acae09ad6 = "1b54385db1afa4a7afc6f0a6f93d05916d9c4e48" +a527840b141ced62712f7bdc93d91e849e94205e = "ba81ff65242d40a29af54bf465f0ff30867efcce" + +[89d8d30b-2485-52b0-94e9-e2a8fdf814ee] +246d0a390e99b8993372b581dec8e0d38f6ae73e = "356ccc807a1dbc613e0b65615d0453e1f03b8ca6" +6ef8fa131297340e1245f8e003b5b943605bb6c7 = "5e8b49499299ea69bc50bcc8cd6e20964f668d99" +82bfbf1b776fbdf1807ee9f1822c644ae3611d26 = "cf4ffe481e7a6675e29ffe8cfe17c5ed41533126" +d8dc42edd00fb8887af91eb9f108ffba3dd98e6c = "b8ce24904b4cf078d4d8a43556cebb9d771fe4f8" + +[8a103c6c-1328-584e-8316-b4faba0ff29c] +2e937a619f562f3f251de4b4967276005735d837 = "10110454f0261271af258d0441ab9d34dec2d6be" +86e0b47c032d5a735da00a2ed7057418a2182487 = "24ef1d6e25afa3ab960501fc1b60ead2ebe47ce5" +8b9ec59dfa0dc64d2d87c5b0e03965132b83aee5 = "02c19d26b61d73b884b2939a20a19408fa5acaee" +9de626079d10deaeb086c12cf0ecbf742d6a9e26 = "7e614fff69153462ab8e30f3470b3e4975dd150e" +fe11f025f21ced07119ae9b72d72cbdffe10982c = "d381fb79deabf7c40ae3d9c985368c58fc990395" + +[8a292aeb-7a57-582c-b821-06e4c11590b1] +25c6acebb85df8d2719d1191c21594c033338f18 = "25129bf6dfedaca9d7ff3da1d98a5efbacd41a27" +31df0f54bd16d9147c4c2c5a1ee31badba43fbf8 = "c3e33292cd616b4e7002009497401491c528d200" +4b1c6085fd8d7d8712552a1c7c642cb046a9fc0c = "b55a6156b86ab393e449b4cbb7354d2d838153d9" +59bb97c6e04b11545427d6ad1b95a7f30d274a9d = "08cc645204b2e9edda2365ded35377c32dd321c3" +7dbe36c99a3f1770fdb993c0fb9344dbd6bf4493 = "e331101f2de20dd44fbfed208f3899ae044abcfb" +974f8d11980e3dfdc54b42eb44790839c316e54d = "f86469552dff874fe572020d4e75bb29cf28da24" +9cbe93367fdb3d60d25119606846109a814309e4 = "0c03cc34b19eaca6bf5f76f5f0162f37fd3be064" +9d0354a19a3968d8f02c72d1291808cce8798908 = "4515561dd8e9af8b71574e3b9179c5b53ae47818" +af57779864f33b3cb1c52ff8b0bc5da1f3c007ea = "b93851b9b3bacdea1319de07f56631e2c8f6f300" +bb46d5938256d1e033c47e5970d794e9336b4aa9 = "81bcd16286531a40ee7c46a3d2243e24753a5630" +f4472c19d6590ed3e685a403c627bc2eaa9e7071 = "42d3343aae4eff86894efa60d8fab102753e9406" +f64049187dca8e3cfe4b9ba5ec8fe66a6fb66bd5 = "8f2d552b3cdf3d07b745651e2ae3d37f1bb9befe" +f824d18468feff7fbb6a0be2ad69ff2d706820a2 = "c18f5d36867844fe8e47bffdff8bee7941295963" +fcbd97ff3fdb72016539cea522ac3f03a7de9856 = "9d9d60d81d34c298bd2c3fc1f676be34fa637dbf" + +[8a3de34f-2e95-52ea-a40b-c424eaf95c4d] +2737f366e401875b49f8c3bf88b4cf8db003803c = "9ad6fc5be2682b5ca94cf682426c21c8a1d6bb31" +3db38aa198387328d89196e85c58434eb317e2fa = "a877c35a1edfbba6aa33aea756417e8e8980ce4e" +5573e2d3bef571e35c51ad9ec95ca67ff1b6d60c = "81e90cb0fdbc9b7f16cb883f7b3beda14156db43" +7dc97d64532c464e8d9ab8257bfc091f76909bae = "c1e64520a6aec64ead296667d6c3adfe0e659341" +d25e13bfa47716a449bd4b1f844cf694fabcbc98 = "7e27ea06f372682bb26b00bef53e7e87cb01ab56" +ec27b6dafb700c16e0739c0e547d7b9528134384 = "561971e3af6ac963c6ac557e950b8ae3bb5d307b" + +[8a646f90-c42f-53d8-aeb7-0639fcac22d5] +1d5442aa59110bcfbffb4b1141de3af6e9398eb8 = "fd526ff6a40f55b4ad00ec32af0db12961fa1249" +469993ab630d2264b6da7b0d9e4f94f90dbd0028 = "74ab03ceb38293e25d280b9ee911077e392537f0" +5f219d93d21f7a43f641cb87157ffc7c30b2c0a3 = "4a51587523d52d42f5374d4ad3212226606f96fa" +744a1588146ee49fee406c5371f9a7ecc89845a0 = "75b731b0c8ccbedda178e57c9bd68215a8e8ed1e" +b6b81926af93a1803cfb3f7b22ea721fd8afc173 = "ef66c66325d36c2cc27a1d39c8c2a3f0551e4cb3" +efff10eb370f5407c3c7ce863973e03d8ee6ff25 = "c09fd5dca60033b2a91963304d32ec4a28fd3b9d" + +[8a9ee94e-83cd-5b5c-8445-d7d8cfb161d8] +3b4de00e81aee2bd6a9f6dc2dd3ef1acfa6dccf9 = "027bc997064c78753b80ac1718490d599c983f91" +8390f0e4b9957d964023d52e8db352253107ef33 = "892ac36bdcfe846afb8269057531bb8fb1590920" + +[8ac3fa9e-de4c-5943-b1dc-09c6b5f20637] +42aff30f84e552be716eccdbc0c994338fb05808 = "bedb0c87b1663e2dfa6b6f687243bcd28c70e02f" + +[8acf8dda-514d-5c36-9488-7e3496cf596e] +2287634af4918f9c1d91d94d583db6d9e08e5430 = "964170aa03c184efbf846feef1c3c8ad7dd1e921" +4b54152a52165009cff5a3e25dea02466cc9e9a3 = "03117be98b0b150800bf1ba664956d29ae91a14a" +cc12981f25aa3340b754c708214f8ab487e619d1 = "24294652d7b1621a8092f43c665780486eceaf76" + +[8b8db58a-4d47-5b48-8778-177fc09af6f5] +14e76b17b25fe27ec442e27ecb304130058d5e1c = "fe0497c11cdfeb39e3a90a8edd0ef6ab0d83aa28" + +[8bab3169-4815-5aad-9f88-5df82062e999] +624cabb9933435c8f4df41a205e9a46f2688e98b = "1cffe7405c4e2f0ede7e93f0dad32e62baaf2df1" +c4960410f342f0c2db77ca9b94a38806c4cfb47e = "4f2ed36578a061c2c765b280b143358589cd7bd0" +c645202a0375584a9628febb921d4f609703f321 = "b554a0183d4113a46cce0bc86ab96bfe841a2a5a" +d7e4e80e13f90e05412de294ec80979f0968ee5b = "176e866679797ea2906a4cdb1c44782cb1e6ec82" + +[8c227e2d-9d82-5208-8462-f144982ddfc0] +745d008ca3c3928124ab96a8ee93ec90afad083b = "8afb74e31ba63b37efe0c5fbb1137bdc51312ca3" + +[8c675823-c5d5-50f8-acb2-29aff48dfc1d] +04e230201060357cdce24aaea4246775f403884e = "57bd8428e30959512accc0132d1f371bb670fab4" +a399adf1105e0db2c844c8aa859c9de40bb66aad = "1525b67d5b8f52d8a0105bfccf44088b789243d9" + +[8c8f4381-2cdd-507c-846c-be2bcff6f45f] +09900c2ace84c41dc3103ff580cd0faa5158bf3c = "4fec648e0c0995a3bfa20f938b718570dfdb77be" +10414b9db15aa8def75fdd4a45b6460d2c6d3b8d = "5fb27501d77483b1bc64cdb43d031ef62aed0fb1" +35e06fad2e6762253b2004cad728bff7524136e9 = "555cbfdfbe7411ec64ec10e11778d04427007c49" +4ad86bed218d9d8084510f2ee65674e32c6add99 = "f18fec01cd83adb19c6bde342e56bccf95655c98" +6bfd838fe803dccf36b974c8e95b62a2614e4d3e = "462ba3193c7f10b926c74dccc27f826598a264e7" +e0e9c2295b62d74430ddb1e9014cff446f1ffbb0 = "e9b4ab5b3dfab34089c0a3cbb7061cdf78745546" +ed8cf4f22d264b4d293c64f5752a9e8c24e031fa = "bbdb4f256b96ddf0fc34484449326dc6c3dccd13" + +[8c91b7c6-e17c-5caa-9fa8-1cba1108c241] +1bf8de4012a2baa3ded62b1be18ecfb15a12e6af = "6ecd2b9fffcb78f8742a14c9da118459cc2e9d84" +973d5661d62b15f5a1571740c75ec4283fd48836 = "f243004ebf3d23f01cad93872955fdc98e864670" +df3290f5cbf990a642978f4e899182e9aca5ed96 = "f8afcd1d3be80a7f8fe752c5fb9b1a4143bcdb1a" +edaafae28658b92d7c9e051dd51d500417a646c2 = "a6e1047758cef7833c109ee78ab6b1cb54b03fa3" + +[8ca2a67e-f683-5b14-a319-732e1d1d8f2e] +3d2883fadc662d425be7f6743c3fbf1bc790f8a8 = "cbd407ba7c7b07e80bf48b70d9a0cde63bc9036f" +67fbdf4310b866b0196de32b45d9b9a7a39ac4f9 = "5cc95db08f1a6df4f90a95f1ff4f6002d47f5801" +8a0bb9fa38e3b384cd6b75326c2c55704aa089be = "4abc7af6d9d9c2484de3d0a49165d26c144a70d7" + +[8d5ece8b-de18-5317-b113-243142960cc6] +328317a143c5f0fd82f9002daa035b145adee8a8 = "4a5623e743ff5d857d525eab0c809f179f3a94dc" +6a5522cc1799dddb248c325747b2a0ac81f7e626 = "c76132d454d1a84e2460f85455905bcac2f0100b" +93374a731b645d7551014a3b173309c2fadcac92 = "220450427abe4450e1d1d64528e1a5f88d3556a7" +96a4871db6dce5ccfb630da0c2056d9b0ea31e37 = "4cc94c69887f1cc8f3ad5814a03bcb9ea8b4f030" +a65acd65a8634e654f26870c641151c0b0a74b81 = "ad13cc9837eab94dfb54747a54d5a97b54da6ea5" +d1fab11f5eeb9714aa7d4e4388673368ee3b4cd1 = "661077acc551a33de191864de752acac619baee1" +f3d7cf19e7684986f64bead9940fb553d13a6b69 = "3fb9df0510ec34cd25fdf2adc31a5eef37dc1fc9" + +[8d673c98-5a32-5a15-b616-7dad274ffdd7] +67e3214cd3b7352ef772ac3888717d1feb77e7d9 = "d6f86de47228efb137467c95015f3b9d58aa9c15" +783dec826ed2556db5832aa59ac5e81d8386601d = "5a2a6de9322460ca1701d24a4064e6590ec5b7bc" +92934ea5058681aadead2fbc4861535be0ddeb6d = "6b489c201bb514b5e7f893bf5444b1f8677d30ba" +c9026381539c34b6ba7c342e62c1557e4c39df89 = "73c6a3fea536231475a2aae9e6501ae4b7588c38" + +[8d9c9c80-f77e-5080-9541-c6f69d204e22] +1ed5cd3717b7e9d4460151e217283f9e07dc3734 = "059953ff000d564fa9145ccd3440c594ed8516a3" +57b89d1380dc51122b2965d9b016f299204c5832 = "85a225b1adfdf048e5f5fcdceaed5e1f1bdeacbf" +6b1de65ca319938e5e6f20a679039c12901e9569 = "3cf164fe9267fb61bbc5c529f4efb0076a2d6815" +816f1a95c93e430bc9aaa8902f2ec76c62f5ab9f = "dbe6e3fc335e309e4670787eed33445d7989f5c8" +8cd35d3e65bf64a26dd000f7e506935df3dd3273 = "f228bd4db5b6689af650a9d3a6bf38847599349c" +9045482d1fd7d08d4ab342b422224184b6d26a17 = "74a66ace5b6442fc9b9abbc78bfbb3e299636a49" +bc5c16ebdcd997b8de51f9901c1a055d49c1b163 = "9a10cf072ee6208d1cdbda4e9c14e15b02cacf92" +c82fdf6c62d06d85566429c721d2a3fbbec32bb3 = "c38aeaad7c2bce52a13c74913e1c61ae9f08cc4a" +d60d93cb9b2b5fa9d7e15b90eb765127723912d0 = "60950ad63c04c70442c70793e64e457434d5198c" +d73da97b73277fe6d64cb9c99e5545cfda765b04 = "8cd01dda3f2af10920b59633e25870b80be8860f" +f0bccbb7af2399c161a8ade8e9d8ebe0ad416269 = "4ba5e27826bae25917d8e3dcc15b0224ead2a2ef" +fde6e2fbdb13c47cca41028b59810f61aa113def = "7716c758a3e367eb5d754a626ab63c20798a740b" + +[8dd2cf45-7ae6-549f-9931-1ba6cdc71bab] +16e3b9a530828897429cc31bdbaffcf52528f266 = "babae6718d6178970b61991807daaa3783f4fc14" +25861cf5f9ac0550dad002dfd8533072da0c8f4f = "40229aec2aecadf9494e0d6f407200807509ef47" +55553d801801459caaa546bf5b698e687a8a9003 = "12dd8a61481877cf7177df388b2705f48ebec54a" + +[8e049039-38e8-557d-ae3a-bc521ccf6204] +0c83b52cd93b9aea3efa6e68e22b55c8cd8a2ec4 = "4d01ddb682d15983e1a578b352b9630860255d98" +214a04015dc6954836e0fb5093d1d9c707db0d1b = "7bc6026773741218993dd2c3a30ccef9f71ae87f" + +[8e2b3108-d4c1-50be-a7a2-16352aec75c3] +a4e6dbc41a3e36f58d8f3218d23a1ad86e66b2ed = "350f9c916bd3c673f58949d8354493b204aa1d4a" + +[8e315b71-c09b-5a61-8d95-8aa79a05d8ac] +74e0f56da5b9b8a04551ca105fed95407794dfdf = "4ed5fc7327b0ee52f2259b215f77d71f37804013" + +[8e462317-f959-576b-b3c1-403f26cec956] +60159cc3e1d54100ea8ebc61f5fdf477454c9073 = "b1e3d7cbc0fbb1a42efbd1c3046e993488c3c765" + +[8e46ac0e-a145-5836-8321-a980f36feb52] +333342f789320b24bc722f90f0a22e9e7b0c568d = "abd4b503ec458abfe94dacb4639e8288ec4d7f5e" + +[8e5f9369-c58e-59b6-8572-2d2e779a44f0] +69fa7f55508c54b4ea1aaf7e1ce77a27d75c2ef2 = "59f8b3d9cea5897d600e4588164228d4b6659746" +bbcd8090dd68fd5e4da7f72fab42d4a47576adb9 = "51ce61de3e146d18d5e3c88fc6dd835ddfec62ca" + +[8e7c35d0-a365-5155-bbbb-fb81a777f24e] +48524326b6b7c89d0c37fbcd88411a93390cfe72 = "61aec93f44034ef4316c1329e369e7f25af1419f" +4fd38a2a9b3097b16c3a9c049e63d319d5aa8289 = "64cc94abfb886c78d7a805b2c97d367a41c369b6" +536d63fed16ddcc4522c4f7458e3a0c722bce35d = "cee75cc9be02bd81a543a10571fbd96da6c34e7d" +615a15862745b775d595df02f2fa829265a5c69a = "bca225273eb9c6b55f7a9902d89c0841c826006c" +84a1106a29e43dd934c1c3f665633ac068078524 = "a11847e4cb9db46cf6bca6ae4d665d6565f24c1f" +bb4f94fd1f9da336d69546461655a207e62e9630 = "42a52e7f635dbd323a4e6646073a1a0b74a4b204" + +[8e980c4a-a4fe-5da2-b3a7-4b4b0353a2f4] +087e3aab07b695458a4af85ef26fa3cc1f8cd89c = "399b37e9946f6fbc7fd48984941dd9ee00cecea4" +373743d7b01704f76bb16cc2bc637457cad93096 = "1d6f454932bcb3692787e4cea9214b2e1739f687" +47b998e07f83a782c06287a93b98f0592861ea0f = "16b6b7aa77524965ce521610792e6a74525b76a6" +6085748f1da68bee2a9b5f7353c25e35eb6637d3 = "c9481a1ea8e7aa5c739a280bb9af34f704b563da" +dc3503cadc484eca1902252a4460f3bb35974546 = "9ee6b56ce7f00bc9d05f6f66303fd1e390d407ca" +f787fd9ae3787209b114484d842090ed3a26667c = "e21eb10c985687daa31528ebcb2b920bfb328ec4" + +[8ef0a80b-9436-5d2c-a485-80b904378c43] +1a333b0ccf8850f7a7fffe51ef8f4ca56f9d531b = "835633f4bdcdd722754e5244ef8e99b9ae5df56c" +485934ac04656a1e16ccd6f4a40859fc3d771249 = "39ab535813c4524e77b725b9a81244d67241aacc" +d3cff56439e4aa1509383527c77e42885a946fb0 = "e10a4ee395401203c35ce2635ec61c7cbf22daf5" +f26afc506ab8887565d706554246ef616fc7a19e = "796e0d143d87062be66f4e1708733c944bb96317" +fb70b7915011bf483a35b1790e8f26dc7469f715 = "0efb68c267a529794139d3c1943a835e030a5bff" + +[8f4894fe-55b9-5d5d-ac02-aa6554b49763] +23726bc1bd9c86ad104c8a60438e353e6dd2e974 = "3c1ed23a6e8d535d2ffc9228bdfa391f59429c92" +475b1bba004780462de80c4e26bf0159e8a214a7 = "818263cb5c2f2d60797a81dab0bde07b1b8c756b" +ca74be28c21038642bff4be9ec7c0fe4a95a02b0 = "12511654a8516f89bf2c2791edef9a201c46cb44" +e41132f73b755aa5bbb2e6dbfb444827425a0165 = "e175adebde3d70b0223f0e24f4ad6c2db0c8a009" +fd24d095be00d2d4f86c6e1b310d6c64fe946bf7 = "120d7ec63ace18df40f2fc929129e7c2c69122f2" + +[8f4d0f93-b110-5947-807f-2305c1781a2d] +1156d54d7dab917698ab5d7bebc1a027dcb46c47 = "4b07892ba5907b58db21d8c1ce5417c9e5f105a1" +301245077ee784daef72553172273d555d802447 = "519d843d950ffedde2c5566fcdf3450ce2b76bbc" +4e9f3009ce319b19f803e175b0e0955b4b54f1df = "f9028faabc5b8c1813e8e9f7510e9d6d5cdc1d77" +61fcdc758f657b483b4de48847ffc386496bbbf9 = "edcb16be55f1c9770e2de0df21dfef5ab3ecc8c7" +681ba46a6ea8ebd95a4477cab3eb52392b80cddc = "23da82fee930935d0651eb18dae3d20999c10c8b" +6c36de6689efe2be424d01debfae07dcedb79988 = "e8c3802487dc1af5b4ee7af2bd28b1525015360f" +6ca6a3b58b24b985f57fde5736fd085f302cb8c1 = "590e8f85aa24d966163aa390c415fe6730316f55" +71d7f071482ac51e374a5990465ddd525662df0a = "39bbcd635fa8d5c15c6820a513ba2a18b6d5116b" +876fb80a00e036e96ad878d45d9b6d1adc8ae10f = "2ed4160bf298d6c70fc062e7f29e892e213f262a" +8ceedda4e8879fb0fa3e673227b934baff27c388 = "3f684cd5690908b254c2fdaf7873d68853bca755" +8d25479190982497e16f13701432e1d93b1f0ec4 = "560376f51e22c8aa23593a884f82d1ddec7fa913" +90ff4b3284d2e32ef918d017058072a2c1c41189 = "872f4aed6876af3652c3fc41a7619637e5c4f4cd" +95db9afb3a38bce81d587e95a38ff70433af7c6f = "a8600130d077a9f167aaa9d143ec201c8410eb62" +9ce99efb968eab828f242a93b8e2ac323a3955ef = "2047a27c8cbea1b9b62c7aa27473dc9d8b7e8c64" +a345989bd944de451671a5eda42e78f597d1f282 = "b80e3a3fac298a3d6919c66580c072c44a19032b" +a5150832de1192691122b0b4fcfd0e06be72f013 = "9703dbab3b9afad783572b50dd40779317cb2717" +a80e24eba57358b04166dbfb952cd05af771a08e = "1a911db61cd39e462dbb9d750b950bb12fe12c06" +b9c392923bc39be079e8ae38f5e6a8327fc85b64 = "bfbd25402b0a8c4dd06bf5b73e9c9f6614b81f18" +c63dd73a1b159ef3505b52db8b18fc20d9467352 = "fec7bed813ae2b5d2612e5c720ab0e7025716b03" +c973d4dbf59a2e9d0041a5308a922ae1f0a99ae1 = "3207fd39cdea575f22362212550c161a8aabb551" +da472a562d7c3e6b894f8b2cc2795d840b0a102c = "82b8479bfa4e3a8facd181275b975b405bdeb6f0" +ebc2e3fbd5e9a52df432c610169e384f2a298b8d = "a5b3f04cfeaf8bd621070d8f0b72c06e5e5536d0" +f7a05aa054d653cf40feb62084305fc84136bfd1 = "b26546424d5f3ac33b50f13b8442236deac42546" +fc40ebe5488974a7d4e4edce36a238a6ebe03437 = "ee6c63f680382ea771bcb481bc23d95f4a9080dd" + +[8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615] +18202276bc5493b49165a32b92ac4bfe5992e41a = "163a63979de4d876e13674e8e78e81c82e908c1f" +253f132d0d9340c17d72976fbd4e357e1fc67296 = "5ab24b22697c7298a2deefb446bf57cbb6189ee5" +3043dab160ae84487c0d5df36d91bd1f07b11bcb = "478420c44f77f8c60fb85877f8441d5aa9b26374" +46663512753ac73bb6d825308a98563225905473 = "94d032921daf3a120b285d6ef79b063115db68fd" +4d9fdf3e7b88c92326f63f227feff54bdbad37f8 = "516d003a15cff30588d778d37f1127530ec6103e" +564adfe1123a1dc301199cd7ad7e04e73c42dc5a = "45f5ee663c1893174132fc91aafce7d9d1067eff" +627f93b24771c674eae2f1befc1ba8c253fb2b05 = "3fa877d45483f7ebfffcd1d9c90b479680e928fa" +73b163af1c3765d40dfaa5043915eaaa48f5b24f = "e869cfe5f63030c55def58a9e56772ddf417bbd2" +751258dce985ec12d538a3d8256677637e353fe1 = "645544b6794623f42ca01766602ee517c86d1d70" +965b4de72fec1377c62c01d691bc966504aa885f = "a7adb54c46e7de3bea76b5ce2ab5d529959d3cba" +9a49981a8569af07dcc415d744d01d6d8059e5a8 = "bfc73f31df76094c6cc30d9b3b4709e8aa7fa9cb" +9f532f34f5806f948d31f5be28339ada50e60424 = "93a8bdd3a77c96f3c9cec95bceaca99e3e51b481" +a514d84689697016e04b73a5a388db51e9b4cb9e = "ef6bbbb654edbb7f87cdd89e18174c7f9a65fc19" +b3f45752dad3a147925ccabffaa45aa5a9e7d847 = "ed545a629f82d538d0d3b52f861abed9bfb33e73" +b4378f654c3171e66432f65b198413c4fe23aa38 = "07d7a332a68138bbde85d6d43f622ad2ff00d0cc" +c1ce99720ca63edfb39da7d5580f25da75a79fd8 = "d4f84580eb381c81497fed944e6c05a83af74ab8" +c9494c5aa68bab62b3017705df94ab1e59a41627 = "5d80420e5fa291a668001bc118ebc28d346e4bd1" +cc828deb77bd9fc48d722092aba5d69b249f95ec = "6e12a60abb14cbb39b7852404f942b8225a477ed" +d25b9a700da9d22bcc548254b83c53ac79ce6a2a = "86a382bcfc86445d1e0219ba6fd6d21ff024e284" +d75b00346680fbed25a5fd5b194e92b3fcd1b1a4 = "98a8703a1247ebc5bb0590b9ebc43efcdb283277" +d839406048d1c81fdaa29ba9773d86ed2c36a7bd = "62ff46071a58ddd2eafd36a90ce6c84e11117067" + +[8fc22ac5-c921-52a6-82fd-178b2807b824] +150b24eaf5961c7715f5f6db9365e2217891ec11 = "cc5e296f66adb6ac30c36aa7aa20b727e07ce904" +1889287dae99d5b614fec41b9d5108a061a15476 = "5faaba943b1cd3c1003862221a3ffc2ca61913b7" +7ab745c5dd86cc0f576f3ec7d7e0d24d0323b725 = "144b1a27d631988435825ad1fd0bf4e9f4723693" +b3c8be670e78dfaf593bba8579e9ed9ebf9be7d0 = "efeb40042c85949f4cd35270d1addebbde5c8497" +fbe7e9c42f1e01b8420b869d65ab2e0ef5a82576 = "2d27801d0a294c020ba6e3c600b595ec2e0f6801" +fe6ef4dd6072b4647b1f6e32608b8d4112988728 = "56c14376e9d09593785f59ffdb7fadf7eaf8c650" + +[8fc9afd4-d406-50e7-af9f-060f3f6de630] +1bf9c2d1c49149aebe78c008b3f0b4e1e75213f7 = "e2e24186f9e58a0075a6aa6554e5b73b57e81be9" +434a12e7ee22583177eb2d01e9cad2120f48eae3 = "015c15ca0edc686f5c6e61f0098d55beefec8996" +6b84ec9f33f29814ceaf37bbf50bbae8e04d1239 = "9c078c5529178414034ac88b1da58f76df984968" +8ebf76c8adff6837734ae8884e455d61bbc0c5df = "3dbf68df39648c4872a6cc2e95c59dbed794d5d2" + +[90014a1f-27ba-587c-ab20-58faa44d9150] +0fddb9f76f775d99e7c4fc58b4bdab0417e4331a = "6687d8106cd528ac634b8a81fa514090404564bf" +10a586b39375d73cee18bd7bf8dcee366cb9c5fc = "723178b8b2ea1400bc5f0f19f26d08bfcedf77ac" +13bae6a657243742705af5c48fc4f8604a9e33f1 = "5412c3a6eb27c580e88520693d80303e13668ff0" +1d86dd4355a82b508cc655ae1adba5d2d6afdf63 = "9236182f4705a665d2718edb4639b141bb0cbb69" +234e27215fb1d41d931335df63915fd32330dfd3 = "8ae605f0739926c7b62cc957e74b97b0be6d878b" +3b6bf6142bd3b93d21a6afb1f6a22775b0cede67 = "cce29707dda3ea41830425ef51f9e4699714f35a" +44a1b678e38272f94d7bdb872c0a09759e55abd6 = "9a40dbb59284cf6395173f81cade5aad4fa2fb3c" +468766722dfa0e7f9e56154124dcddd4b1915bfe = "00e97d564e94d85d9adf6dd27eca1b15324148d4" +490112262b3670021ca9e40f890189347a3556ce = "cd47da09a92b59016a048945f00fb02a61102952" +55cb2b42845198603dc30234e623fd359ab14931 = "902b4b4db8bb885103a9bae7007acad8df659a0c" +5d12b541f458e44ee598f986970c8989e183e063 = "ef15fc51f181e219bea3af9b03b8bb2e5281a65f" +6449f5fb7eb957180f2cbc557f654d425e2e1982 = "4bc65ec1aa6cef38a6a6e24051a8f2582d0c23dc" +770ba3eb3eec1f9eb8251eb6f3948bd041c4dfaf = "e1a465241e94ee6f06dacfb2ae217f6cd1361da3" +7c04e6abccd7814d4650cf3d623e38438d7ea431 = "4330746259f545918f69139b92d69d12fb35e6d8" +83d2440bca8bdd7ce2e039fcbfbf1633b608be29 = "83a0d1d031b6d2a28409fffd8d64c48861a460c0" +8af3861de499cc8742424d189e466f39078c56b6 = "4dcd806cfc2ee540c011f01545f3178897c380d9" +8fa302c7106f552971253573b24b3d9d8b39a8a7 = "b3ee60c4937f3dea0f1ed2e32b78c0cbbd4a0a21" +99d3b8cec23314293d477ba5ddeca5dfd81dce08 = "39ee7ac369c52e57e5f267cbb5b4764aa193777e" +9adc92cf3252611b8aa8f3a14e712901e68ffbc9 = "787a2aac6c39fd4e5e8b9cf98c315b721184251a" +a134789404241f24bcf6eb7a397e8f8591f83705 = "27ab470be143ce8c9c36f6fd6633a6df3378cb16" +a1e8a94461b3d969479a3663de304065a55522a2 = "666e9cd35612ba119078ec6084797ef2e46f7561" +a7871cb072f73f4792c43a70a295c1ef8b03c593 = "7dd56e29a2dad243818c56cd1e2796d3886abcfb" +afb7891204b0dc76076a46f22d2e41d88e135048 = "c9f0deb0c455aaafc89336bbe3d4dde8e3f55780" +b832fb5efd551d218ed45d0a9ae11a33d8ee8720 = "d98142199e98498c3baad0b6a67faba080975728" +b961e141b95e6adec92a25bb48c6db891291a99b = "25a5af7b68750f92742a083365acfd849a5f5c35" +b9d9f9597f18528e2ce5620ce7a1f25217d24083 = "85542d9fb0376ef9ed61b7bf6dbde27f0326efdb" +bb25a3089beaafb0e71c2b1344720ec04d04f027 = "b4b762b4e5059051e3667c261fdd04c231b9a8da" +bf05fe7b6fd8e35536d38e88f9ed2b27555ce4d8 = "81bd716dc44d476f7bf6f1bcb0f330ef872aa3bd" +d5962306546b2355abab849ff5e91177698baf80 = "763864b0fa8bc9b2b27aa3f16f07927fd98fa12e" +ed96aec2ccdf953711442c5a2c7b49eacb401d79 = "6376f169fbc5ea31071a92f0f6451e5abdca4122" + +[90071601-5f65-5655-93ed-1a4f6628b2b5] +492d01eea9c7b959f6777d525ab49ade49fb3ddc = "7525eeebb27de26b64315d6a75bd2477c0c6734f" +523e718cd866b93265db0c5e436686ca4f92cfd0 = "24c83b6cae547aae9b567b458d9868b575878923" +ca0cdb833b949376353175d243bd7c790203fd23 = "820c7e2eb332684191d07814c90171fe901d912e" +cf133945044580029a7a2d82c45822c334f4cc52 = "d5b7cf1e29073a288b6b31d3754e599eb9ef7b12" + +[90137ffa-7385-5640-81b9-e52037218182] +11ec06334a067fc86b0ae6951d0ce004881c7239 = "ac15d66931d9ce34e44e84548d5ba4f1fc6749ed" +12bab2aeb596fd5c8321ed0ceacaf205a877a964 = "9dc57a7f101f05288eea98d96bb4f0a6e2549b15" +1be47ccdce1044e96e89736364b63c1e44ee4e8b = "af0fca3679f85c25c6b8405880934fdc3b3610b7" +261939b1f39c9f301dd05edc100f26ab76708f24 = "86d9663fa8193a6f237e400277d0a1c272a716cc" +26dde0be38e36727d36d7189d6811fbf1377c269 = "856afee90c3938e3f55bbc5efbf6836754bfde85" +2e9feffe066b1400f30f082e67559af0d517df89 = "880b94f4a33d2938220a7ce50171620d5012a016" +324308b79ac5d076f41ebc0478ac51a6915fe5af = "9a4b4fd2d2625a85044250693b939fbec003baa3" +5b733a3c4e320dc2fc575c2ce59d779fded9f9a4 = "f3a6e0935880a36a611e5e7e8ec4545c01775f97" +6df38acc9379d91f3529c86988898113c6a0a0d7 = "01e5f1d54c8fb3ae3d831be9fdf09500e3bd8263" +726b18b0969f50d9cd9645e50f88064e608894e5 = "0977d0842af2e5b7b79b1b242747545ec64ad102" +7f610e0c4249b53ecc0ea06cf4c44c48038463e6 = "4f61be709bed56bb99b8a9ea9b109121e5efdd9d" +8f195dacab18e19c0400e35cceadbc9fba78fa2f = "005276466e00443854e1daafc2616126eff21daf" +997e5dd1e671f7c2e792d0f2b76f488aa8f63fc4 = "d4e4324541a88be296450e9236c916c126ee5033" +9e720addb512e53b03aeb3f80fd2cedd343e67e9 = "406b48ea53826b4f4f2a9ff1cf8946ab54434753" +a2eaeb427211980ae2f595c4416c3629747095cb = "9e1f056e95741a23cc03a957be862ee30e0af7e4" +aa5606993863b90dbdbe341443ae4d00d3f0e495 = "2e3650df4fa4cbb9d6491b6a1c23a60cf6ffac36" +af478d662e329e74b855dc06206a14f8aef792f9 = "49d89123100e3c150264c80ef546a25ff87e259d" +afcb14581431c6b2f53b05a650eeb805a7d546f6 = "c74be3f070c48589f0a962507df3505dece12aa2" +b0c971be2600fb76c4f79caef1ba5bb34f3ddc9a = "26dfb3028a0e08bb621502311fc82dd76017892e" +b43192c9a1b16cfbbcac6d93825d2ec0addb5ec9 = "436e572a7eff62cd680c39b40413f5fed90953dc" +c57557a6d456036b76eeb74e0e8c59b7fd350f25 = "c856debf05e123b2bf3b897a08c3814eda980b8b" +c7f25990f58493daad28baf0f86dbb5f323c8c8f = "98ad3b81a586a63fab225a85ea6fe4e5e1359115" +cc229220a72ee33cc2d1cd3c5a57d04f755a99ad = "fd3da0079044c0e3c0cc978557e271becf88058f" +cd71bb8cc916c24403232a41874aacd62fce5f90 = "e376e18bfff4e8798d80c7387eef7032f6f786e4" +ce42f74868d5c25f5236f0a699149f0920fe7a25 = "228d8611f259093389972b5d04131b5a881f6e1e" +d1561ea5086343c7d891a5cb6df84de4984f9fcc = "56a6ef8d9f0ce17548fb96c866bad99bdb8c4f59" +e5337be23cd27db2f7c4c0ba145b7b6f65fa7bdc = "a144bfef6d6cb11341d1ba4bc6f9656dbf81ca9b" +e6d73879caf3c070e19b942211da5ca28381bd4d = "ab0082af625bb3763a12aa956f8ac1dc36536e84" +e72b2192db0aba27e6081ad546ca5354b438caa7 = "6afd11b8f7b221492c74cad5ab7779735a3e21c9" +eaf6a55406b1df38a05ba113ca507e07c1f56484 = "86fd91642cef3b21b7f77eb9e5de26b16a56daaf" +eb408b9757496af6c3ff8fc503ce267526a4ba09 = "7512e08ca4a0439a1f30332cade7553a6e6e9ebe" + +[902c3f28-d1ec-5e7e-8399-a24c3845ee38] +72d1ba046aa4cfd3b561f6d2fc9b9321a7b209a0 = "97ca4d3ea10600fba00484f7a6a0af58391af46a" +94af2a2c58371d695736cf13a790186d559f6869 = "273828ac12bf2bd86ce3a45e66d6a2cf93eb3a1e" +c10694dcffb588b7972dbf0780626940cbf71b24 = "bdebeb38181bad313fd00c88117010f411951ac7" +d047d61993fed5547842ff834821d5357ce4a08d = "56be887c0eb55e45e656e5355fb686c72858a7d9" + +[904591bb-b899-562f-9e6f-b8df64c7d480] +076a8db52fa317049c808eabd2e45c458f0c3725 = "21b0fe58128bad4cca9d1ba82efde2fdc21f48d3" +476212075512dfff85b371a8254824693d3e8fd0 = "48fb9ef191cd2d519137b13ccc33226557826526" +4bca1d41497fe6fe40644fe3d78a70529d2e8a75 = "eb4a5e6f13a58e8ad9a26b32da7213c7f7abfb12" +559a915f9ec08ce620788b2a9b64153d662d6d17 = "51f89d04af42248f0d11585a9b3585cc1fa2a522" +73c1e06989b04e8ffc7c0ca3a8d6ee8c99418c35 = "04649e3d02683d364adcd3dc43b26119769281cb" +7b4563d353d2d6aaa53a6e651faae2052df76693 = "95be97366c82e88fb848dcaef026beb15be7d8bd" +85175e0efc07d224b77221e00a33f15f5fe604db = "7a521369d671ff1c7f3722b124bce8bc1b37ab27" +8abf6fb0af215095865e9a6d15a1a3e1e2cf9010 = "a3288a402d4c673b2774029722339a05635c31a4" +912101943783eaead0b5d75dc095c70e2e0d4750 = "e5d670105ce445773fb90d4d27cb3f6a678d661c" +a9e7fb0ee3b8ef265b866303d326cd23849d14f9 = "e7ceea00bc4bd4badf9c26f4a15b0c7790dcf1b5" +ac625cd49afd57d82413d3d305f26adddb7a974b = "0b581765101cf3fec3c97ea068d52bc1724d2f22" +cb47af420561f10a2a3f1a5c7586b6b27c8c799f = "0ee5d03eea5d446d5c59fbdc32876f6bcb128c34" +d6320e44d23d5ffdbdeeef0e28aa8dc3371651cd = "83ad5e1f1e58a870ce7f85927f5f4b7a03d55331" +e7d0093c52ef9ab64c09a6f950dd2a5b9a154958 = "48b2d4ad077103ca75c9021839ab627c2982e268" +ebbb14345a36571704619c3e887109e0fc93e5bd = "dc54ba7ef4ee19d5ff8bae62c7ad0164565aa463" +f64332ad56ca5ed5c16fd8244b3193f24348f197 = "e69efc2348d3a78c310aa480158fbb019290aefd" + +[909c4415-5a2d-5741-b701-ee6f02f60631] +28af1f966f8f00692d38d6e22b97fd0b82cf7115 = "f05ec98ffe64b441cf288f062f66cca0c8077f76" +7cbe1f4cef10f8bd682fe5aa58b65f78d89a0616 = "6086299431b59b7abcfa3ddae735c89a6b78ab05" + +[90a78b3b-3267-592f-9713-0db173aa947b] +22198721303398185853a77533f5aca990b66d99 = "879e63e9213a26a963c4b75fe55ea410491555cd" +b1d9080311ef23d9283244e500e1026788ead05d = "d2f5c18436e58478148da515aba23d6093749d72" +d31911e339d1858f3b02394631df60811e592b47 = "5509a320ac7955ef3909b60d3ff525a86f262081" + +[90c472d1-064c-5c63-af2e-229f1fdb5f26] +0019d948a093154b05991e4c8bab49186e554e7d = "c68e8006edcc37b955ca2e7abc85bdd2e6934629" +764e8b5ee04b5f401d01ea87f16e91a9f80ca641 = "1afe8bb1da2bd9cdc6e78ea0fb6bdfff29d8d8f2" + +[90d7349d-81aa-5495-813a-883243abfe31] +0f875e791e53fb5e60b3c4c1fa7f9a0477d7696d = "db155412d234b456ffe2fa461f6f6729fbebb91a" +13931144d6d44a2c4afa5913f7302cdb9661ac5b = "79d5bec36e0f80028e126e66195ec4458ade548f" +462c82294cd1c2e84e5cbfdb0db5fb57102534fa = "a29e10dc76bfa3d97e690ff64017c7e854e9d142" +56a464381c082929c10ca78cb86e5bc68f8d6100 = "f12bb4c0bd463397b0e9063ab01fb7e55df66f95" +66e6f1999dd8bd1a8b314ef10b82c9029c20289d = "ea9f9bc3f88f199908c5f3b924e3a87e24b5e4b4" +7b933c62a07b483692f2cd5f7fbaa8f64ce5674d = "b1cc9f5522cef7f00bce3e5a8ca1d92196e4bdd3" +7e48013fb264137cceb291f7118cb7be20d07abc = "c4e14cd4fa42dadec1032fcea7cb76dbf910487e" +a6fcbdac84fb750cc6e6b048c82994a88f50dbde = "94136fbf5168817067362666bb19da29da689acf" +ae7b6f27c72a48cee5b6f1a8b12c14600b6be4c1 = "67bc57962f6fbc420ec8f615ab783cc51a4a4b01" + +[90fa49ef-747e-5e6f-a989-263ba693cf1a] +47ea7652e4d4149f2c5a5779745249967e6984f6 = "f667b4d4a2468fca8b0c393cc3a909f8fe15ab34" +49deefe8428a473a46a9cf11a65b1d4fd164b79c = "bb677dfa2c6620e57690ac3157d9a78fc4e5d971" +c8f12395ae45169ae2b1f8a3d101b99f000b997d = "7a9fac496bc00292cfc47d9f693baf513223fdb9" + +[916415d5-f1e6-5110-898d-aaa5f9f070e0] +01c7cf0cdae58084e55acdfb44f42a5b20097140 = "b7afc1ad2fecb0ecbe2e356759c546026bd89ebd" +0862ea7f939ed33c4969017bc47987b0e8bfdefb = "8e17056a65ca0c55ec88b8977e9f97ad19b159b7" +0a16a210721892be80e4bb518b2372dc65909f02 = "c71d53f0992aca3d4542624cc3bd65d9473d4b48" +0c2d36a587760c5eb1f95bebde40e79148d51e68 = "c6ddfe94b4d11503aff1ea2816bd908adb023e40" +10b289353850d7724c7c64ae57b1da430275c647 = "5ae160e19751093def060378227c0d9661481aaf" +1651e82c21bf0d57259dc49767539ef7dcd39322 = "124e249a4ddd7453177c6405412804f33f765b2f" +173749ec63ae4deebeff4dd57ba72809d67f8282 = "3704417ee5596432c6e7422ea3a2eeac3970890a" +18590c72509832eb21f520ae992016a5f7a3f910 = "683403e3fa9de082c95b5bd527ff0f2802258b09" +1b3536e6700d1f56e85de03e8a41cb5357daeaae = "dfcf05d72fab1694a492760ed73ab887415fff0c" +1b5c7873739db3afd04936cf0ffc31a2b70ddcab = "932cea098d6e29f99b43cc7cc2a62373adec7cdb" +1bc740c6e055b83a465208b673fc2aa8879ca042 = "3b3de20c766d0283b3fbf6f407f50f0f02c06dd8" +1d5310501cd5a95676b35882f2ea0d19897d4afa = "66c43696b79db2620061faf19a96833cf16a16e4" +1d7a12ccff8e665a3e3458c212c34de4e6d32cfe = "3992ea0da879be7155a5fe4f9a45a4a5d04c3574" +200d039e3e76909b6940a99ad30e8fbc548af5c1 = "f07b38fdc3ac9c98add975e535b2fd030f921eab" +20da19aa668c87d9278b7fde14e8e1e414c855ad = "12e27f0303056dda1532d2d72c131464e27c59e8" +210a01c1e5765a0ceca58c3b17de1583324ca37e = "65de046ccff802f46c3f078e971a87ce28efca6d" +21e68e2ee1b168fad138b19b4ff0bfbd4b04dcfe = "d7fbbf0bc0ac76d1f321a4e23af7cd9eee71df20" +22b5ebfcc15143628e1004d5f3ee9c8d166127c0 = "50e791e51126aa6f0bc1d9b4f8c8b943a0556965" +23358ebbc7c25f10f60d247cc8a4c4f0e96e7f4b = "a9ee896434c941e4c533edf84b3e6a3ce767c59e" +24856b34e896d8f731c061e58aacbb659b7fc30e = "2bcfdea1d4de39ca5cb2b735b0782009511e8c1f" +2587fb4df0dfe7a1f7404e2ffcdbd0fc0cf3097f = "556afa2d949a522b06b8f01094b68d4766a67ad6" +2770a38cf6b91211336a09642e90b33b3551a2ac = "f638cd230de604573c15357bd088f8e7a761d91f" +28bdcd3b86ff7f79158dab9e67d684fcba6f581e = "ebb339a9268aea58f9324458345214152e8b531a" +29601ec723590380262f22d2e70d50b87c6b506b = "e2f39063313cbbb4b237bfc4eb19e4a0d23d8887" +2c8d3473685262e86e51e49ffcb62f1793fa0956 = "80a01255aa587e279987a3e56d5e973624eb9ab5" +342e2bad209d870a59a5c910810cf2bfa5f14aab = "a38f9c40dd879f93a5e033fcc189c9dc1d63b4bc" +34d354546913a55a5977c6a6edc004b0b17f5c9d = "c661b187a2f4a3c2ca64ec1ebf29c5074cef758e" +3507e62b9490aee438d109098a507a4ff0875340 = "537353ea0887a2ee1292a5ffb5f79aeb8d0a03c1" +351e4447c3c900db5b36b557a2022d8380aa1a1a = "c83a37b5e825194adde0dc850e64e32f362024ba" +3c6ec94d7903cb417353f1d973092f8b2c460f4e = "6f1b0995297ed51fe67c3699eb1b9de389deb12a" +3fcb4b5c256bf3892deeb27604a7a2c14bb0d45c = "3211b6c2f2fc686022e75d653d033f43c85bbdec" +419681fe5fa1f90a07e9947188dafdf0b9954ca7 = "fa428afe642993a162ffdf0b8b6207e972b16496" +429963ed64941c3eb24a6796fbe1e941cf52fe3e = "2706fa0205bb98045cef9d75f994732a3d6465da" +42f5cca15210d8da1629bba2d80d1b5e288b4f12 = "f042a03c033e5767a90beb42362d9ff52eb70b5b" +4670011d0ce91dc23440a169a8f2242133692c3c = "d557e40f9ee516e43c09c2f5d25c06db4cb08068" +49f469457e4346e13eac8fd0adc4afb1b7e15aaa = "426469429ef3cb9698dbc34d20df76fa89b5ed54" +4b3b922d0d28a77aaa7463cae9a3e557f01de4f5 = "f5c1e1227757d8ee2e0df2dc9ce53a23cc0cbd2e" +4c2c153a5c3db7cb6c9bbad91af4154537cd977e = "e323c6c13c5fb83e08ab702b2e81441fe03f201f" +51d9d6fb7927e7133b7b3ffcc0a04a7efb15685b = "756af1ce18143e3ad6fa404c4d3c0d8413017e68" +55a7e59ee7c5ff43bd2e483af9feb4d2b0256425 = "18849137b969fbb17366637dac7d09e7bcf009c9" +56ab1c49a053c0e905a7e22f1d20d447aa25429c = "86c0c5880ddd989dadbc03df3b3df6757115e747" +56b1070202716206c0ba4237631f71dbdfbe612e = "7b8b688406785d8525a3a2fc55ade897bd129344" +5f86200dbe2f003cf26e1625af5ec0fa5742efb1 = "2d068b751f6df59e04c9061c977c5cd60a521f12" +646c075d819d1f32ad6b1893a2e3d9d6e3810f07 = "c923ae3176737562f0eb5fa82303e56d37842543" +64a0942062f85cd735624dc56331c26b74b9a47c = "ca260f7bd75d88b532f137aeb42a1fb77fa83e89" +6630699dfbb3334ef9a40207571e101a5b12d098 = "79ec614fa9165ccfdf00dc02f618c9a06d30db4f" +66a49566cf2a75326e70a7d19b127c7097e45973 = "204203a229f5c56167038b2bafec6745ee982409" +6760f78243b2c3e4588d6b73aa1e000e6a58e5e8 = "2f3bb68bb7401368a78e81edd578ab42ab715658" +68126750d07dec407ed0dbbd8ba01be28ce176d1 = "2fa6d88829d22cbe54e103805ed252ccdffccd83" +692470323ecce73e568e3190482db3bb65628ff2 = "4a54773991c4b6223409437f55f154885c10552f" +6a3f1ce49a432567b726696f70e3b650650919ec = "703cdb4d6d4a350c778130e0fb03d9ccb39031df" +6e3b8619524e932fdbb9051c92fcc637e9f33358 = "abefc71b610cb8b436fc5b84b6814df8f1b8e658" +6ee9903f1dcbde23265bdc033c2cd3cd9730c616 = "8a4a0d60417bbd47ffaf04e364606f2c41c10731" +6f249cff7628dbe2df5e43820da0725f090425ed = "c5b7411e57010cf89f133e8adb30ec5614535519" +702706a777d287fab1a82d52d3b07d72e3479ce3 = "88f3d07276f3bb2b7f42fd094a73617cf9de60ff" +728216c493a054e75b12401c07d9b4389a00bf46 = "7554cad819dc22ba58c24916c6aa0a9b1e66a211" +777589bd99083faa1a800db1e3229c30b68ef163 = "da5d36f29ce74e02f629669762675624e6605aa2" +77fb7def64004aaf7dfcb7719cb6e0a4db9f85ec = "e170712d7d07000ed77ceea49962f76f45ed41ce" +79abedd76ed5bd2edca6f3d3c5f7eaca805431ea = "ec6a9bbc09d1b73c58350b5f13689f938fcb4ed3" +79cdf0edcf0637fb0b6c1d990b234e4a36b7744d = "14a8b0b57266ea23059f5d6f15a0e62b3eafb6d6" +79d37d4a21913e4d162b99f090b1c655fa3e0785 = "de318413b2ea3f9c69d5df061482498291d23115" +7c8a791d6622d94a8812198a8bfeb5e587bd2687 = "fb5108b740f35eb4ec3d70cd23696a0cbe8d967b" +7e741cf3788d0163d42df46c8068f2baef935198 = "a790ce416eb5a9095a9350322458ff4387272c14" +85aac4fdd08303716f10c3e70339e502e3cdd2d5 = "e14b77fd77b5cf206941f4cdddc3b53673490696" +8840a952817eb5d8d78cf122ed6f9d2a87ae2aec = "3d70a6cae29c2b6f1e3454e84c47bf9a1b0ebe06" +8917723f759936aa62e74865c57252482bba951d = "08180823531a3acafb509ba8c458078b7de1a3a8" +8bd5a5e6c38841d5d3620500e52541a631812c8b = "6a6d1efa61b2487e0c143bf1bb5793672b4a03a5" +8de545da684fbed70946951a8471241a918c38a6 = "3ad5a9c2840bc31509efc18aff0346002cf4ab71" +8e3664fade90db34c4176f0955920dbb82d31fb9 = "046a5a7c0decfb33f3721001d53410d214207dc2" +8f3e4129a7e8dad83d5300d6fc0829da47a857b3 = "ea0bd7022ece1999a1d75a3a27768f4e1cdd87b3" +8fe2a3b23ec77d05d5d08ec2e52dc9f130d9c262 = "834171a304f7c6f3ffbe46cf32bae0d7487d3d85" +93e362f9204dd001b572e52e73b30dbd5484d526 = "ea95f0464ec49bd7c02a109b2533ef2792e18cb2" +98a9fac26e2cb55021f50b59c5a480733a162448 = "a1f8291b0a8cb7d74d21cf6e504f1a084d882461" +9b9047ff0d768373f9a27cfd325e6654ce15ddbd = "cadfb4ff1833d609c7a7c4e54f2b365127a4b210" +9c7f998747f4ebaecc6197187726851fafb71e61 = "8956fadaab497ededad6539e1bef335023b32f0a" +9caf8cadfc295fb65753e362c948bce279fff906 = "ce9d37a2b510809215fc20d76649b5ac86efe3d9" +9ee8146a52aac267cf5bbe80dd82840619f0c543 = "434525b729280dbd988039367bc97772e0ae076d" +a2f2dd55b70de440644c8d4c147a9e2ebcc7fb39 = "ba03140f6bac5fb17763b7730af4101129c011cc" +a3b178c45968fd7bc1bfaeece0ba9a53ca84037e = "5640944e10c12013a093d93cafd9f564c1ba6fb4" +a3d846af751e33288bd6c7883a29ba718f73f958 = "33fcba143039698a00f76995f29badd46a067d6a" +a43da870ad5799f19b2e1d7c40253f216156e501 = "245195f14de6e5a1f1c699a2652088852e39c32d" +a4b0e6cbc8f00f7172c9f72240c58f87d30e96f3 = "aab82a11bb67db200da8e00e1fe7a2c9071c3042" +a5a441177aee4f88b08668dcd6838256ec9c58cf = "2c51319a5859e46941fd0d9c4a4c2c2adbe56b7c" +a98e2939ac88983e1eb30e8c9eefc6e8d7de2e88 = "68b28093b602e38100a4cbadc49da134c8d83ded" +aa04e63487d46f0e41041e4ca65365ea3aa240ba = "64f383e4c0861da624c3851115ea67707964c689" +abd289870fb0ad7eb7c3f7a5330298976a2b0333 = "e9725f47699ecd182f0fed6e7928b88707d689a8" +afe3832cd464efb63b848516c72f793de8c0086e = "4d0c48421966e17a874563e9063255631809b275" +b54e5315145f8c6b1a6f11cdb9e0f63b7b8283c5 = "7c62c8f675b68065f0406de9c1bb68a6f051cb89" +b5ee132f059a273280b58c6385b3971fb8ac8da9 = "49e12487a97d48b9b1cfeb76d550b7999142831e" +b635f7b0f7eba110287034164445099143671821 = "7529c8cf9d7ca7d4ca61cbc4361c74a0acab68df" +b6f85f6b2a2d62a91db7caed552d9f143a3e4e7e = "ec3e851b91db69b174e399e05978d668386fdc37" +bcc9afe9f90a61c4ce678c909657d7bcd896dda1 = "f41c33b66dba213a2b0a257b5395e215c7e271fc" +c0f69bcabac42400cbe99b964a9149d53be7abd8 = "58536b76205d69b4455b9017b7018c93038e8898" +c23cd4e3e3239effa4314245ad47b5eee51d3603 = "f4ff04f700d1477ddb276add2f517d02357cf9ce" +c76b46015bbeb9f580a2c4cb6c93143dbec370a3 = "183c9cc8b7667a95bae9f1fae6287002a23c5ffd" +cc147817d145d76830eac660b525951237e834c7 = "fe483d4197bf795cfcc0629c0d26f8949e510a3b" +cdc7907a9ee32a598d5ce29b9d162523b3ecb023 = "1ba065b926a88d7609c178e781ebb719a366f8dc" +cf3f9958303baf9a6ec47fd5022f084cf9ebc554 = "bc08d546b4c584714413ffa5b0729706efd9e59b" +d0602c20031c097aceccce91fa4a0116599d81d7 = "2e5a7873ad4fc59937c7595449012bd62c61d1bf" +d09b9d7a02bb1011e197aaec200c2a31d09f2714 = "cc9797e338267109bbe87bb0f615deb9e182a8bf" +d1b67195ec35bb21b119ea79062ff16fa19e8568 = "bfbb5086c18e99a900905f8c9f063642c51c5359" +d1f361c0dc42ed0175b4ce07a05d9e88a7dc4ca6 = "524cd3183bbe9b14a86fe571bd3f91f50dd7a572" +d20aa188c2bca35bd69b3d109991e6b91e82d05b = "74e8d1a263bc90d8c69dbc6b75378c2fce8f3bf5" +d2b5229ba662b101d71e2fa3c73f42302e986010 = "a2f6cb56a73d5850971952b248855b9e78ade94a" +d54609d8369406335650dfe4b4ecee124fcd5f6c = "ee2c2eda95b81a7403dae90f30501c8756f5c2ff" +da2544c4499e8cfdbcb39641f8a5441619007464 = "390930119a474aa34596e74de8de4b5197792a8c" +dc78510d112b330eab39c9257e4f9cf0e5864d85 = "791e6e2e95d9e0b3f1605435b90a101ef68974c1" +de74f4b365c74df705be12e3f160c5c5edf5dafb = "603ab170d0100fa3f342e4a9b59ab932b63f34d7" +dff8281dbb7cb4ff76de2d48143a02650c4981ea = "974fd70d9c498b4cb6035d9b7fbb634ae7b42504" +e36ebdc3beab9b1038c8f718b7ec2bc56a8cc9c8 = "3202fca3a53182e01cd82150c837db9191ae371d" +e4fe2032d32cf4915923182a920f7472aad240a4 = "a40dd56b44b919bfb5b799f5a0533d71f585f2cc" +e8cc413c0a3e0fb459ba84b17236f840b2dd8af6 = "5250a1157507307030af2cbf521a73684f0fabb1" +e98adf3b81e514d0a166ddebfcef90dc81e8530e = "c74d9fa2cf35cb2ccb55d392fb8f24da180941d0" +ea36e4720a854b3f3f66a85e943cb1636231c3e9 = "8e8d100b61aade7e0c40e3f019218c807b2e17d3" +ecd35f185912489a94e57f22852d8be974b6a9dd = "da96018d4a24b2e111398769674243c5c7f7c085" +ee27cfd283021ad4087d5870fbc0b8cd7f861721 = "52f5f9e4494dfdd8ccfc5ecf8136ee7af2e7136a" +ee3af59e6e98a11d028e68d19301bd390ee9e336 = "70550c57c2f83e175113100fc981eb61bdc69967" +ee4e932a07de970c5e21de2d074016c485abdd00 = "ed77aed05265333a8c17ff212b8084b6973812b3" +ee9b7dcf255f4ef844fe8ddf81dc19f462e195b7 = "477f1f48a167ca78b5dae84faa61abf8a3f20785" +efac0091c9df6f9fe7240fa9f55441afdcdde0d6 = "5248f4a98dec944aa71360964c3b52ecca0ffeeb" +f00c9ba81f3955454a92f9c21784c57e3a683bf6 = "bcdf58db479e2021624864a5196f064e8deff6f2" +f200faf900b5723ff912dd41ccc8348a73deefa5 = "eeead026711370936dcf829f87269f1a1818e5f1" +f2b1ad762a18289f5f76fa1070debb460ed6e082 = "208e104fd3a5cc2e762616891380c7c599bf80f3" +f2b6493199fc9d8e3388d62d485bf7730387080f = "666d482d251a0e1951184e2ae513def2c75d2b50" +f327f56ff85e21d15bf145242a8585bc2a26fdca = "37d79f0820ab243767a5d2e349d472df08b2d6a4" +f3fde357469914719e18e5b18df0dec68024c18c = "d6e2592924c68abf0ebaea7ab1308c234a8f8909" +f408a21365c6b70c93252bdcb6911a507ccc4918 = "be138986560cacd1e784a1b9e6485a95c39fe278" +f556bdd8b30e82d550994ce9e81f62e918ddca37 = "a3c1cccac32ac3350bae066e6494edc29da0c83c" +f5a618fa2d4369afa3687786e9cfc0cf798f6c7a = "5d361c05cfaf76efa66309c4f89075adaf1363b7" +f629d05c981f1d676d6ab1d4e05543f181c0fafb = "87001079f04939b060c295cd8a0ac6f262677284" +f63ea043503320ea8e626f3dcadc59e9281b0d0d = "457b69c114c2969f717e680774d066c461227c54" +f7ae0c7844bf77cd0e96723760939da7f2972395 = "3475d0af208ac6fd8e687f9395904b802105d4c7" +f7bb7a702577b48c2bc985794f047fe19ec08664 = "2fde452e850a26cb6087ca72eca645736cda8cf4" +fb78f8524b86d0ab10b4a744206fa12a5221a83a = "b77b464d54e081b679d72bbe91c1fab5c49e4c1a" +fd4529b658e597962bc99baed22f2bf2e5473854 = "a52bbef66578f94bcd850fb2243e5b470420dce2" +fe430c342c3b48934bb7e4a9847901217cb11229 = "d95e8a2c5384c21e14b1e82afcf1116303d80ba5" + +[91a5bcdd-55d7-5caf-9e0b-520d859cae80] +00f3d450f92b793318433e59484426e53786523a = "44ff406ab482cda0c6bea630bf705da328f749c1" +011f51fbd91a7dac440569426b24766f39aa813f = "7d7ac5d5792cb029fe218f3e8677e0abb0f3f2d6" +01b9cc92fdeccb99f4e9a053bb9263e8e80bd1d9 = "8081afe54aa5a6409cbc459c8a88f5bafd90577a" +0cc15102fb91ade31a53fe8ff06ff0dfa54d5234 = "f123b67c6fc5f4b2bdacaf22d54331c2205e5df9" +0d17aa00935b3b95ff7f9c0bb6274988d4487446 = "26c4f9fc47d907e256af4446125d9b43fab2b724" +1115ff83bb559735344be6cbab9ff76d19e1f5ee = "a52e8ecf6d6a614e7836eb0045191e950bc60b5a" +120f861a271e4e1eb059f637111c30ca8223173a = "e4fb7c64cb88166d4cdd3f0028c3bec789a124e6" +199a3306db73c29bce2dd8e96d2e1762ed38d776 = "96a5498d06dbe6543be541ad8ea360c2b8d868ae" +20df4967a4298e97e0b89060affcab551280622f = "c20908ae6c0fb1307a0ed2f8596ef586fe40f82c" +228d3af1fa72bd2fca171e3379e20d9ac95d87f0 = "f610dfdbcb99ebf0c4db32ed6ce881a2241d6957" +22fd25b30f48b95bd6dff22b560e9a5554507cfe = "633ffc1f0e04fd4a1aa4b8c2c584b10b05c0b9f7" +23a22102c5c660196dbad27bd2cd8afb4e7b4176 = "7960c94438234c89e3fa42cc4e037b283d63afe5" +2fb7dddffb060984bd286e72a1a659d165a8388f = "0df5ad0ab2f13d38fb3704e98695b574fd7c36c4" +3bd9e70fa91de1e27ea6a190ff3e7aaa41230259 = "464f5bf8b1ef7bd903e883767b4c359637206618" +3c09921cbd4da44b36fb5a6ed03e0a528d0e38f8 = "61d22367eea6453240b46bd5fb568896c8bff4e6" +3f21d02a0d432549c7ad6167efb98de13bad324b = "00afddec8a38f2a798bf9f9f3f261fc3041b5fc2" +3fc5f873881119256ef9f5f982a7347a9b7d2944 = "f12e4c8e8e99812c0605112a1aa7bce05be24cd9" +40cbddab29edf946a76f65ea443131be1a9814bd = "387c095d383c247ce65e954b7514ca4d20028a4c" +42c3827ded3d898db2f0459adf2834869c0b2aa2 = "59e044a32b2c66b90030dc053c20188289e579b9" +436ab89d2d4a90a6004386bfcfc56cd4d3810345 = "05fd92567136601650457a7914639dcf0f5a93b4" +4757bd89c0824e1b60b8a9ef505950164384bb6a = "bad4eafb7dc8fac9b9153bb38eb4e0b057004c94" +4c2b01ccb02569ef3ae3a7951958061bb2709cbf = "bc35e382f7e15890b77a624bf8c6507dc1dadd50" +531a38bc39a7e64ee0d8f905e7d112ae23c6d4e9 = "f595180048136660405d880c9544b7847d3cfd40" +558627e7a9ab001c3c7bdd16de67837762d05ffd = "2e76a81eabb78d5a4580169a4891a8ee03ac58eb" +601f24a006fd1caafb9c7baee1d5549dc9bbe99b = "40ec00a6de265ce3afb93c24ee91cd6eebcf1d2a" +65e18a8669612c998905d0ced3ee638fc6a26635 = "650f1f17475f3529f3119dfc6f01d87585a74031" +6a129bfe922bce41620053f93c4673c03548b72b = "59748552ef2fe8ce5274ae42cd39387cfe464735" +6ae0912e0e48a657a71a626455288923bc798355 = "623c93d39f5b0d6f4758b30524eb56e720af1413" +6c6769ca98476a48f18a62c47580622c223a89f1 = "b31e36c9db5c47cf050fb830b666f2298216b852" +73af635be61602d90a63aee67c3072754a3a1827 = "7ddbfe325690ee2fe648e340f7dffd66716255ca" +8023e15bb97cfc6eaa81ae1ec9c0abaa08669aa2 = "ad816e3dfbe17eb67a56e5c97209d6fdedfeee8d" +81302c1e9dad35ae1c713268f5fe39452819fa12 = "f7158bc19f065f3c0f1fafb6966076e610ee6eae" +894928d7ca2f14c4bf5aa4fe97b581736f4264c1 = "c98badc02567c4aa1e4ed5eb8ad790aef6d37296" +92672ffddfef671812377cd7bab89c20a899b897 = "10d811b9a64ea6f68cb250c189ebf6fd077f5f30" +a9062b061125b764483f827c28e240c5125df437 = "20b66b327ab6f5a3ed23b8f1b65ef1545718cf71" +acfb14a1f55da9122f8b0e949bdf963c61ab4dcb = "004698bb9ef05bb87ba69b034220ad2dbb27a60f" +c092d3cab48d784dc75e999efb5090bf00057c92 = "0a2398b74edecba0016e11afa48e3dbd15337596" +c4bdc5b856dccfec5d9c322397880750120d8de8 = "b27383b91d412f9d08b2b94d25143ad0a7642d37" +c798fe682280cf9e81ea9dfb2e6c57679d7a5c92 = "b8b2f4e1bd486d006c2c8b2bb4ab04027b86a48a" +d0a89858003ec6724f9043c20eab9ff16ff73e21 = "45d4c206008f88ba5d1dfdba6b101166dd043eba" +d52b2a9adc465ccaae45702c795fcaee0a42f43a = "d0fec47ea9bdb3bd5837ae8245c045713bc24bfa" +dcab8e3ac29460c4ee0ddd04c2ccf48e3a5ccd14 = "c5a172915bb4a5f1e80328154522a694da7cb847" +dd7b09552a3a6d8534bfa8b95f603d53a860a405 = "f972bb6d52c725e3a8295d8ec50d557dfa238191" +de6e3d46ec1d72e41e89a109e2135b3a4287bcfe = "2dc6589c5e72921561c0814d317100c3026939ff" +df729cd0f6dd115e1e509372ae691efbedb0784a = "840bdfb2233242fe723299f9febf9850cb2aa4b7" +e8ed79a6bbdb88279c9a7134cd39bd418c7b1079 = "c01b146ac7312fff428b8c4ce6e8bd8f3ac7734b" +ea7867429fdd016004a11c41778b5e4b1c12b92e = "b29487495b566a3b10365ed46b899e1afd5157ae" +eba1e366bb21b44d719cfee568aaaadc1721651e = "0c4da81f0e0dce0850affa0f2f61fb2dcb245694" +f3544dc82672a836f81520bddfbc40d5d836350f = "984336863196c805cc066fb2df523101e73b4377" +fd4dd13270b564c45ff81f0b7928c1db66465733 = "8b9e80976bc05e654566181eaff17331e39f7f5d" +ff3ba18b1578aa3af076fedcf242e9d1f97ebd0f = "e5e3ffc05e3eda198259e461360cbaf996d30182" + +[91ca9103-c91c-5507-a6ff-05d8648e996f] +66416c2660a11e73353910c2d1356a183f3ec518 = "133493e1befd4eb0bf22981b4e4c3a8c833199e8" +6fe7428b8730d3cddfdf47de7ce966df30a0a734 = "b31cf497374fa7d9b515dcb9a3dda469bbdc5e10" +73167d09df879ee17b2ea4cfa5e98ce057c29feb = "88145c1b7d6c24a66be9bcb774398d3fb0b5377b" + +[91fb55c2-4c03-5a59-ba21-f4ea956187b8] +0f105f4c91fdc6d662e50236f4226ff43a160461 = "7a668e03d1ec0bc40eeadad9e5f7baf4e50d78a1" +2a6ae2afb5390d5e1510301da5f113ea37b756d6 = "734b46f9c1a9ea19b7eb42688d698bd122ddc83d" +64f5d302dabcb89c20524007dd15938dbd0b5915 = "3e9bfa5a9684798f8c34b2326e462d22baa65220" +6bb6b52d8baff9ce95620060dbc42f6fe4cfeb1a = "c11cd3a83a74e2b8ba9317640666b402c2c7d001" +b6bac6e7278c04ea4c5236eeb6f90b6afb0a22ef = "c245caf74fcee3990857d45f20c158f1f6b10918" +bd4d6e217f468d7f15bf17f2908a4cef8b96c35b = "f4547c245782017267457687b2552a67d81f874e" +d89b97497163bf1ec1cc7d8fd83a42a96363df2b = "56291063c0b9b86f729b67693c0903c32468255e" +e4bcfc1ff97ea2f6970e5915cd5ac06b2cfee5c9 = "f087b0156866a8440341830f0104b58e2190e75e" +f91331f07f256e103e173543879fc24e6045ec72 = "d4523ed99b289c4c81f875f1513170fe1fc97eac" + +[922354f6-6876-5285-8954-7bb8005415d2] +74eee46d56a2bf9e4ab7dc32753d7596941d35e3 = "b2ab415df6e4bd5a2d8af1cba1ef9e6addca1b8c" + +[92393bbf-ba23-5323-a3fa-fbe1e5f35af8] +23c33a7bd8da33ff8bc1cdfa208d4f9d8baa36fa = "167978abddf9e3fa96c6709a24f600e0d7981d11" +9c72e835927b95664b851a0227fa0a6fd4ec4fc3 = "a24678d83bccc094a380efc4f075bf4b1e3b5dc8" +c141483fd1fde67f745be10491081dfaee01cdf6 = "2854725c00d3c5c01d16a179651d295e68315ef2" +d4b5b25817243f3879aed2c69bf5262b060f7d3d = "f2d74e692a4577f42b05bf02dfe637d5c13f8f48" +dd0f93cb5b41c1ca564eafade2cbc2e6b6c221c1 = "1750fff11709767801170115d77723023383e5db" +e74f6a8ce59f299351a271599673483a64ab1448 = "eb158e172792ad1f971ebf93abb2619c1eb19290" +e86dd7db82772cf7c240497fcaf1378c29b9498f = "2c637e79f893066494641512ce4cba0c3f826f8e" +e95d5bb2a3a65befba624a7d217c1954617b4570 = "aaeba23ebd9925d5ea4420dfd050ce95b64bb94d" + +[925886fa-5bf2-5e8e-b522-a9147a512338] +08c8146f76d32912c225af6604e14e634e093c8c = "799c1b7f2bef90f34b91ccd4374026ba5f763b56" +32d29c264e000eeed2a33e586ed4ba25b368daa0 = "83635b9e0451b47f925d85cb368912642fd2603b" +3aa989ae5170b7d7aeeefe2788ace4d27ef5650b = "400e49a203f44e03d02f1eb5e6e66b7000129636" +57f188354dd93cd6d56bc4ff987f3ce6c8678f4d = "b3b2ee7366e2e067b1a0ca988cee40aae5297331" +6a50e028dfb3878bb73c5d1d12a45c1dfcd13b48 = "150783f017fa15111cb347194212a75ec2ba81da" +6f8e2052488d3375449c35e95f870becf1dab8cb = "f7990c202f4aa35bb565000c8693809b7293dbeb" +7042d75a6feda9acea4ae053369e1b247a3221a3 = "c9c58562c17c0cf65d296898765653bd6e0096a5" +759ee04d8d1ab354aff06c5ffe84dc24b45470f4 = "569315cadd72774854224ff683db56b50b56678a" +7cf8316b9153fef1df04b8818813188e4e7baf4d = "a025c0ad101cc85553bc822538c87fa8d3ca1011" +a843a0c5c183bc469fbc7c7e83560a5fd44407e6 = "dc589d85b61c224c906e70f13a85e4f286f7430c" +b70dc612bc46677c391baf7b91c37824e94a9df3 = "37067e90d69784564c4aff6603eb95f17ed9ca33" +bff476415d3fdb63d4785da105c57e2045aaac9e = "96052c3330b9c7b83241d2d708f6cee593a82225" +c169dae5bb2a25bb5c8088057d64fec19d1bea0b = "505895167809d59fdf9caa8af8c0d73689804cb4" +cab12070db57571d194137cc4355db5a10fccc6e = "14507e13c1673a05b2cb5180f7d9fc0dc9d4cb01" +e0a25a0b32ae7d5521c7af9083005c795b6727f1 = "b22f88467fc30f747b5aacd28b031b9aae85f0fd" +f772ea4ea8746f190b7fdabd8c783710571ad6fc = "9c21d5e89b353bac80d97a4bc1b591765a08506e" + +[928aab9d-ef52-54ac-8ca1-acd7ca42c160] +236d1154514c9af978b69b5478e79bbd190a92cb = "b28ba9765e44ecf8cb43d1eadfbeee75dc68eb6d" +263289e3912106dcfd2a7c2329f321b012149ea6 = "37fb48841fbc46c80acc025bb5efd13115552bd9" +51199b0f2c5a0c70242a29db7e8abec7bcf48825 = "6fa8a40fecc9b48025fe39f9471266f3d35570c2" +a8ae397fd59fd60ed6d6a2eefafbf78f24495a84 = "91992ec5d705195fe46caf949f002daf84dfde34" +e12fedf35cdd779176ec204f2e060306e81c5d29 = "002a2d015caa32c72713b7dd5d6d7fdbe5a20c3b" +fb30ea797109bed2fc86ea95f9f18d5cc99b9fd6 = "bacc249a5a5698fea194857dfbfd6872891bcbfa" + +[92933f4c-e287-5a05-a399-4b506db050ca] +1331ffd0622ee2e0731960e11618fcf9a491c035 = "4b48ffcb9e1d907c4dae8e67f3fca6353221f7cb" +1c096f5cdda4df472abcbdf69b4fafd46a2b7240 = "e369a3986dc077b82326704ce3c247f602b049ac" +2cb2ffc2ab8a507068666a552eab304c1a7d461c = "a3303783e5d40ba0153a610795891db6b9ad2052" +2fa2b00245705d5071bf189d0c7673bb8f460d4c = "5d85442e3c52cba4e7cfd39f183000c62efd8933" +48bed8c197f0dc9956bdba0b49768f11eccf364a = "d06b4ada015b35f482445f7b48147b3eaa20b0aa" +5d688867a87d1a27a27246257311028e17bd88a7 = "25e1a4dffd78fcddb0fd5ce21f9d2c5672567a90" +63399f636ba9c3b01bf1713e4b05eff65717d916 = "25a7c3d8ab0e4129ac451b8b20864972efab5d39" +63571299696ac1dd8ecf87500f5178a385d01423 = "0eed08eb6686b014ac4b70fa0d04bf47b93eae9b" +7d135ec628f6db7e8a98c1dd3148a430d89cf0b4 = "953c570c131050ea0f646a443f18d43468c94973" +83f94e092a51f6014c2719059ada8032083d83dc = "a9d68b1542a85d43ba475824656aeac1d911b391" +8b1e6987fef1f89d0c6dd52e9a251bd33bef16bb = "e8255f2c6866a853a3b0dd4f95226b961504ab83" +94a39108df2a481e020ca1d557f9dfaae11a23e9 = "ce78c996f798392258ec6ef1b89ed5720d1a1e19" +b1b7885f381e40f16be16628f2027c226158bc2e = "ec4618fa3c9d73e6d11eef295faa166e567bb7c3" +bcf2df91e8c1c285b47d7572a30836f44d15a72b = "40e45391d51dd6ba4ebc29fca1bee7d8da710645" +c185e88351ef4ac3e9e89051a2494b9c2879619a = "82e55976f2022c28fc232394cef14c29b6505dea" +c538ba6afd4223ae00f1cfdf58f2523a98b18eb7 = "3a8584da591cbe5f39ac4da11cf978940bd7da0b" +d5b46b8220d0d147bba87a2ec98b605a12eee176 = "95fdf7458cb308a9546204ea1cd3ba83ed7b1eb2" +dc78d575c35d25fb31adc649778fda208adc71c3 = "461a6abef799f91851039dad20fb6b92ba927c2d" +e4febdf444825be93031713cbbd04d762cf51e11 = "759e7b2a7e5e259a989dcc649a6ee2e47a679408" +e7152b14550abb708c3e48abbc3ac2d437421526 = "2e9bb7f9b484ab73cf219286db399fe8622d24ae" +f7db3a5acc91d2cc50532bf469dad688984670e9 = "926f02a9860291848b3f096b954447f7f590a71a" + +[929bd66a-55f3-5ff7-97f4-6857e71d06b8] +035862d56c53ca79e0f4d0bc4921212f139be353 = "7a5f198a3b7280c3da893eda6aeb34abff4bfe31" +1b8ecc58f4b038250580119c49bca7287af1b9ad = "d1802c1a36bab4e1950ec2d6f13d0f18e467161e" + +[929cbde3-209d-540e-8aea-75f648917ca0] +07ab967defa6051052f45988f9b1c667f8741d9e = "0f8fc9505daed17b14702d83dc48edf77475c5b9" +25e8e956bd089eb6ca9409d5e8afaf6a463368af = "36a2748a2f79c83ed066cb9be571e726204b7e41" +3d993b5b61fd2682aa581539f4b86eff94a1bc99 = "ea7120513c90e5ace7d221770421301bdc73aadd" +4da763814a55772eb5bfb5b3a3d1ee8fe6b89eae = "58380fd0c7f4c10dc2c9abe6b0c41bdb0483c57d" +59872992e4a020fb55294235cbfe374ed2d0b016 = "d34747de9d459a18e05d3a494880e09fb9c27001" +5dd80230927f25e9e2d3d14282921e11423e335b = "dd2a570e2a6896309437cf7af8f5d6ac06da80ce" +6978a3419490c0351813b857493d62a30a8a17be = "df7f687d975460ef525a85a3158a503c5bdb3863" +85bdce34c5eb7ec0ed05901e67b4349a3d455eee = "a23a1b0b84ddfd4b6e273fafffc00e58cf757626" +92113761416624cc1125dad0f492a848fad81c9d = "f335e82602b517218dd1c62804141bf9f124a1a8" +9411fca058cbff0861ffa281772540706a67db9f = "019a9bf94cc47949e108a58c69a642e1ed5d8576" +9ef8150d38b90867e9bc69478427166ea1fbb84a = "a2e8cbef85898acd10cab0a81b949fbb12d46b6f" +bf66a6cd9a84b99208a0358ddb25aafa65a5041b = "2cb38d84280fa56e313d00578b9b2e38bf933577" +c67f4c19e52ca89553ef80fec67700f613b7424d = "ccaeab2963a0b74cea259a4464c9d1fccdf07546" +c6a03ad04b197551623bb33230fbc5f4344f3f66 = "0514f828b71b191ceb806b3b2f806dbd5014663b" +d867e47816fcfb1c3a841bbb802377951b1619fd = "0e34502ccd6bf94d2ac5100847ab73b09f6fc913" +d9074ad44c2fedbd5a608237e2534f29edf81fb2 = "cc94b33494eebd7d7f7d14654120c805538893dc" +db8a049df2650e36680ed562f3d61a4e93c23778 = "7f10990d688bc700813f080eaa5b0bed15b1a1c7" +dd3a7aca639bc20867cd826d78a8646eaf6bdc2b = "9270d5915b29790763db3ac1d9b7eb96c02eb2d9" +e035742e6b60908a3bfe9a2d2f30ddaa991a10c2 = "994d7843559c7bcfed070cbb410fcda1138a49e2" +e434b172ab8972fc8d87a9ee053f5e74be28525a = "c707c1aedf904223f99af60145872eefc6e88683" +e978d70b04ea82fc62bab149cb1812303db37f9f = "11c98845480ed18753585533e650be344a35113e" +f4f802581658f2a7d6810a195242b8bc93c8805e = "71c61c4dd4d33cccbed043d29e6c983cc81e61a0" +f5564877b1620a943d966a4eb3c3a21315f527a0 = "b89b7885146d100d4970d7b60143680c01612e2e" +fb17dad3da6cc28a9b99756c5b19788dc42346f7 = "c9db3870334f16d947037a8a0ced372416c4ae7a" +fdb1a8fc549a307c105948a6514ed159444f59aa = "12c8a3583c5bf6c5de2bb5cddfed03c648bb7ef3" +fdf71764f8f4fe6665c9f7e926dd9e38f37d2b55 = "33798d0df1b3cd61ffc8e0626033c95245e92258" + +[92b13dbe-c966-51a2-8445-caca9f8a7d42] +0b095efa8dbe54913d01628ca24b83eae579908c = "dae4b09f992c02b872fff0a5450a3770aa012801" +1816a9ec41b638a04d1fe3f9a0cd1961dc64f134 = "1c1b8e8eea2e4bfc03923e2a087d58bb90f99ea7" +2ed4550876d851be53f55beb10619e9cf8f27e91 = "4e74a55be422c90148afef6a603d763c6482b5dd" +65e795ad971df83f28c57603b89a32d8bf10a412 = "3ae8ec909b055e2af8ca3cab777d7b039e41b514" +9c3e0ca9ac2daff208a4ef2901c2becc204b6834 = "03b2dcd1d6ebbb849a4a7b74b71b9d187a2a81f4" +afbc80100e0567f511ae44db012873838a3c9728 = "33419de096e8f06b0d13c9797198727091a50167" +ea417f4ed9e3b2bdae881d5a98e7ae0d655b9afc = "fe80cc0cbf137dad7f5aefcfee694a23b38ba08e" + +[92c85e6c-cbff-5e0c-80f7-495c94daaecd] +37cac0c1b0ff1ead07acc8ea4c7e4804436a4b70 = "908470e3acf236b3085f1f56c1d7ae00281dbfed" +47e025a8995ecedcb338e385a038ef6df2f90da7 = "cefab19b7575a5f7b573141b4529d2a2d5cecedf" +488258e9ce31182f0da9f1fa22c836b25f5de06d = "cf648e2210c69670a2062f709d8c72487530ad7f" +4c7916d223e4a6d21f7cc9b8d7c6e040488e7c87 = "8dc757f7b04a27555c766aae24abb1a7f1ff3a44" +6487a77efcdd142a342af2a4b524daab579d8552 = "14ab2ecc0d1cf6b4ffb5f19c6ecbd71b69495054" +6bcb3feb77782416a17d7cf2db9d16cb895aef0b = "9a34da3cb6745aacdf57eb9ed0749f28390cb853" +8456534aa6adc32381c91811768acc229155c181 = "625571525ece27847807f216ede9c4bfe6180502" +973c91c559926d42401db4f65ec0741b42669b5e = "214af5e34c2c3f8a94f95bd0bc972f270f5632d1" +b62723b3b1e65ab602bfdbe35c2257f36cb1b846 = "fc9338097eda842db5e85f32373b69ae47e92653" +c46b4c9321e09e55fd2c06db2d2a9f00f1627e9a = "23529be61f6b7dfb6029aea0d64a08e7758eed21" +e4c7431ac8265d56b567230e350d1c299995e99a = "fbe77aa2e933c2ebb584156e20c6e68c75c4575b" +ef0fd0bd9e4cb1872ff5746426240939fc42541c = "ece75add3f11682424fadd456de4f052983849b8" + +[92f6eab1-61e3-5b29-aa81-669a19de860c] +1d88b038aad438d17afa2f3e1e164a211d20eee3 = "2a40b088551c7e99e39e317d8029b9a1fd8af71f" +59b2f51518750a490ab6eb78cc8996565ac6a0be = "0cc46cd3927dc46428f7903443018662e0a8d4c2" +bd525cf5e6042640ef5c8a3c5bb122f5a6caf027 = "4bb859d58cb6f096c69b1a7a2ed5a6203ad8b671" +c89f80bcb253b657963bb03dc63ad9956b72f836 = "1b8d50dfc69572e838967dadded169dd32fc4c87" +eb94769f0ac08ac7f295d27d152ca1a1ddc96733 = "699cc098ebd30913bb89c00917148b729e43e026" + +[92fee26a-97fe-5a0c-ad85-20a5f3185b63] +061fe75330b70388895a09f8ab66bc1e7c4614f1 = "e20b92f1992278410efeef1f7f6dcec36d8981e7" +0d1a5e9c73cfe36932d1613751b7f8e3a5385af0 = "3293059fbcc4ab547bc3d32d9a74821740d796b4" +268a606062d9c3543bbdd4effa6ec74aaa4a47b5 = "bd78c2fa5762c4385c955ad901ba7ba92eef9fb4" +3af7c5ca9f16d7206516f89314d15186430bf9e5 = "ec5ee613a68e518e28809599233e391a4fe52669" +44ac3390ccf130c4e54bf0ef97273293af7282c6 = "07f2aa50aa27486e8017d3667e7f86c5e8568bc8" +4d00c3a40bc9506af1804afedcd3781da8d5de6f = "72782e82ae9208033644aa355ea92b9acd1a467b" +595efb8aafd15b692a1bd31f1d186f7152550e9b = "63dbd52cfe09a8bfa7b6782758d44900da289861" +65fa1e289700bdb64691f18f0ef2fee7d3d0e1b7 = "b82254cafb60667c96c82b4304ac6aa2694cd249" +69b6765416cc454a201eab7dc6dd0ae07e45981d = "7a783ba4057e4c67e4e09f137052480753c93ea1" +75960bb242b13ae24668d73403be47e204efff28 = "73e89796605a8fafdfbbe48896be6b0cfebed1c6" +8d49922f059a3296f94181c29a237cebf397f676 = "0f522f09d9196133ffa503689f3277eb4cff163b" +ad42afce02bddf5b8f6531511ff35fe1a1625d73 = "dc7f96e1c97e9913393ddc594b1f2b6f9929352c" +af5987a7644c85df983610d86046f08d38fec0c3 = "f818d8da351d720b0f3f750a580660fafd3b61bb" +b4ff3f452dfeaab12b23036894c8145e44e33d95 = "e0cfc642d46446d8bd99dcc72da704477f088ba2" +c1e18f53fcdfcc6eb1f4f7486a0ef96f9e54d9fa = "a436c42d05537b269d8baa3426200ffb18a399ec" +d2f662589c1beea06276504e48363053488a7e61 = "4b44fca38a6dea6a786fb0081bc4b958626bc29c" +d42aca39d59dcdb8e238841a2f2660a34ebc2c8f = "9ddf213b14f864cbdd71d5b38f8910d7dad23469" +d60ba9f7d4abf06909c471c3d556d229e835b02f = "95791561989f94a2ee35beaff6e9c8c7dee4b0ce" +dbd40e5f7d0e829ff53066965e6789117c0d61a1 = "6480c7f03b6804416ccdd9ecf9e3b79f869ba865" +df5704c089a934f237534f244217d246220457da = "d8f5222bceed664603c47025127b4c4f2058bee2" +ed6663119b876c6263e021df31198c89125eb47c = "fa8bde19daf9092aec6883ee55ca23dc59d03239" +fc2419cdaf367041c61cfe9df20f22ead41a15d4 = "0277f2d5a12a681c4997bb4362f233e82b6061e4" +fdd0e4595d23eeeca2769df089f6dada752b4e16 = "422387fded412aee9225c1ba4f145d913c990602" + +[92ff4b2b-8094-53d3-b29d-97f740f06cef] +b1c80864b3c0f1dde55bcd84390681d033af410d = "c2a69ffc82b9e34c85379d52622fcbd5ae331fab" + +[933ac57d-ae2c-5684-854b-0ea345a8088a] +4316fa2af83330cd9dac2b099f431bef705874fc = "77e146a8cff14d3740027e87e486fdd77f4aff70" +46a4f3fa364ee32b85d6484006bcf8f593e9bcc5 = "8a4b732b7254941c880db5d7d7d146c3ad7cbab2" +9902e6eb2b233d7e2528379def3e86d2c4ad0b9e = "386bf13e110b53a77ce068679ea082f844e7530b" + +[9341520b-331d-57cd-baf0-c27f46988a5f] +11b97755b634c9a3e3d16b5eea36303e94d2d0dd = "97a82014bab5a56abbe10162350973046fbb40b7" +21e6f49a0db6945ca5b12bd3db1c489deabc4a5e = "564fc7cf78f8e99280e2f8f613617f8953a7158a" +4d6c3f6123ab81407ab8cdabeda607f654fd03ce = "4277d8748322e7e754301feb115b76e1171adbb9" +5349175087bbc5a6ff8d776c88cd0e1128ac5165 = "6f5f484d4de6d1810e3a8badb4b7a0e4ad3bfed4" +612628c525d8b6bdaa39febf597b96ac86c2dc3c = "93f3db0633d9e05ebce1200792822037e5797e84" +63c97241542187c5cf22050f1224c2343646a0f2 = "de575e29469a7f6bc8e768ccd16d13e76534576c" +6d03e593f6d38665dbc02e08d6093fa97e97da37 = "bd04c648f3dc3c9e042b3332e5c564b7ea5803d2" +c08a8fbf1e7477a9362b8c7270ceeee354cb984c = "8aadedd70da105b818e7135d2d98549499cb2bd5" +d4ea10dccdeefeb1572cddb6acac25734cb1b114 = "929f82b1cf8e67dd1551db3b3f5f2c2bfe1468f1" +f6d09b776e59a184eeb1b7b003d9760e2980ea1d = "1d9990a485eeaffd7fb0493fff7c83225e723462" + +[93e0c654-6965-5f22-aba9-9c1ae6b3c259] +27104850ba98f17277e7db941d73fd115366d35a = "37646545102647660f802651812994a5b2a8b14a" +4ce1030e336b93cbc461983ecbb7eaafb49ac1be = "685fbf627ce0644ed27fbbdd1f11336f90d4b7ba" +a1f1d3a3ad81422582fff42a285c07aeb9f76988 = "249773c174579440cec0e3937cbd65852425601e" +b9c379ecc0879b8dfc2ada6a3d8ef979a3754ee3 = "f5297ffc93363153c882cc5133f29c9fadc00edd" +cec4d29741f351666b6adcd360114bf2f189e6f9 = "bbd76bf9870abfb23eb7163fce36cb9c14d2636b" +da8db01b9f1ce37b86e8c2d7ca71a70366295f23 = "b0f654c3df97aeed05cb7192cdcb07e6da840369" +e23c968c4b79d6e55aae0a3d3639407e627a7507 = "dcc1d49ec245fcb169ab79d168d1cc0846d66478" +fed2933c4800ac9f1c0be1af19f7f6655cbbbf9c = "82a80e1b9a65eafa01a52fd53c34ce5dfd77c0b4" + +[9410fac5-19ca-571c-9dc6-233cb5eb36d4] +4c81e77b8ff0b683c8253d72112056d7c515a5f9 = "aa72b3bb0a0d8aca09044f20255a9c381e146ad6" + +[94167541-0a4e-5fbf-aeea-474b87c587e3] +19d080b0416cd7601fff18b380eadd6749a29c43 = "e3b12b11e5ae8a3581f36cec174b5326ddde21c2" +27a4b8b246a8f1e849937ccd77a8802b59a31bfe = "443a7bde354e4991c382fedec8aba4b5a638ed93" +2a9346fa12188238452e37dde11a13493fc3cdd8 = "a2b284859cc883df382e07992dc80dc3cd1860cd" +362012b0ba26725a38d033c60b3229fa1a163244 = "8709242fe70761fb7d2200ed7a49400031c335d4" +49704d5dad9bd4b26071a3f9272a384bf00c8115 = "30bb27fdf3c8c9779ad647bc766c32c85ae8f2cd" +4ab8d7f25d00443806b77f220f02091afc334b86 = "8ce90af3d2735d28aa33faf9798ad11bf70ce2c6" +4f2973ab8ec916a395e07ed7bccf3b2a0216c06b = "c4080c752d25f7903e3721f86587d9a7d385f373" +69104f08b469c42e020f56a09d210a749673ea3e = "4dee23432d70110c7def4a941fb901df195f9bad" +78750b4d28eed216bfe57a2b6ecbb6d93f125af9 = "80b3aa25c0b0a8e3698f41b777acdbe4128041d6" +85d726a7f4d2fa9f3c83dbce2a71a0660f8aba0a = "9949c97c37e2a1673efa995fe67307cab84f7fd5" +994db3fe8317b1d9f7215d809c32a69212b6a73e = "3b032b179a9f21df45b3248131f7ac7ef27b01d7" +a943ed53b588dc0698adc0aa71518197787efbd6 = "2d169e268d751f6a88facb948d82d7c11f752c2e" +add699785a261b979978c7d12861a021de24cbcd = "d6c95927b3d2e360a84a58af27f33b03af632ec9" +e59b4afb7264976423ffe0fef31b37ba872d761c = "084d7fdb2484618749bd0249f403de18f49b0330" + +[944b1d66-785c-5afd-91f1-9de20f533193] +1628c7da97f0a3a2a600528ccec8761753737045 = "fa6cc58cf7f53c8a9ac863ce7daf284645fd390e" +4bf80b243567e3b052c27c078bbaa09fc1bb5a10 = "f00b778c319e6db3342ef99b3f23860779962e53" +7bbef285947a572d5a2133d40bd049e4ef18a895 = "92dae2d9e85dee48124da03744532f0ca5d232fd" +875a0c8ae95def1f2ed1bf8542dc23a210f9e1c8 = "b58dfd980625d9d41d45de59798a3ea928736cc2" +a0ca6a1f6422999efd72f3bf66de91172904e8f9 = "99781853fe5b7fb794a4f7747f7bdb6bb14363cb" +a1d470a884c0d641b6c03ff67f5de261d7f2eaaf = "71208d8c16433bda5f09be7f6407522a0ceafe1c" +ac6157425d18850718c9044972f51b351c5cccdb = "dee59a4d46133ddbc161ea4b0ee227e99601befc" + +[945b72a4-3b13-509d-9b46-1525bb5c06de] +1d593c2a3a2a4dbdba9c197a32ac7dda75c34f40 = "6b9f60d60d0e42edbdf3aaa99b0eb8b3493c73c2" +328347e1687aa77b79c318e0f205ac7a9d88a1f5 = "77bee79d96acf13457e4aad8eda831056ab58147" +37dc75a2ebfcf5aa84dfbf722f10727a68bad977 = "11c1ba0699c26e9a641858cd84ddeaf79b69ae25" +4613f51dc7c8d5d7abc145e5ccb121eee57572b2 = "0963a534e63d3be3faa57bb273b1e4e769242178" +479ac835e3ac1b43353ab25acd052f15d1176fa5 = "b6785f695838659b22a1ea95495647cb1f7c886b" +527e91d3c567f92f312ac5b5e2520db17a0e8d08 = "889e97455162d92e55363fbd715cd24d608788c8" +5aaac5677a76ab9f654fdef1225e1038c092e8fd = "eb7ad9ece7fc1ba3858d1faaed615266c7b422cf" +690da07c940cc50e289da4b9448b5acb5167ac58 = "e18d325829ff4da47c338bd50527980f55940481" +74644114ef34842a2d1ff6db2b339ca6061f1c93 = "4601fe99c8f7fa514be135497aee3d12df3dfc82" +8fb7b091c4e5851fb7c323a62c07495ac8138e41 = "32fdb1e1813367d340155887016b1c2aa17d45b9" +96ec4be5ca852cd3ec10b10bc5655e5d165dbfde = "3cee3522a7581f377e5b316b52b2c367128351e7" +98e13edc2a6ccd4639f051522ccaf1eb6731ef47 = "f382748b6b6c4725edc9d45b0a8d369e1195638b" +9b5ec5ffed5965730e1d65b632267579f5933f19 = "05383b96f7a7d091ad05299a35a16eee97dca837" +a6d8862b36871ddbc08d2010361a500f65cebb4f = "03a92a244f1df39e3d2680e4baa6267e17021da4" +ab98488e99b19d988d1e5006626dc85542cadec5 = "e9fbebffb3e8226677c2d8b130169e8bde110fc1" +aea13f256d7286b490003229d49ceebd1c4bddc5 = "c501c5e7d343f30c55130bede99b3fe843029b70" +b79628f831bcbbd3e51f0a2a08422f2f6c9d9235 = "e5b902ec408a1e6dfeede108668cc6fb3ef4bfdd" +c296deeb28232e42227a69dce4b4ebf815a855c8 = "651238c43f89bc38084a9339bc1e936f49166a04" +c30ede7887b8a0fdbd64ee9a4686b4854dfeac57 = "b16cf33b3050fb0696ec7178f5eb889cb086dc4f" +d3e7e37355076f7a2a4a8675d041abe6ec45ba7a = "cdd1062b91921697c272062e025d85409b0dc60a" +d754959581010b230bdf9a513ca3c0e8ee790ae1 = "098cc2cc97a51013924dcf0e061172e19097d7d5" +da576aeeb92d3dd8762f466744a33b3d40a4b1d5 = "79f29cbfd270f1f22b67f42a40239c6a6374dacf" +e3532925173f5de08b8d1e49415d73130b1df006 = "9531144f47136fe7a43465c330aa75904ac165a4" +f0a37a3003b5990f3daba3dd36306084bd83acdc = "216d0c80f7bf1d5ffb87f5bee0e61f924cc1a93b" +fb023532cc53209d917e0fc85a282d4db85dc753 = "961150b59796b71d2cca5b083924e2c3c8272006" + +[945c410c-986d-556a-acb1-167a618e0462] +5ccb3ea7d8cbad801994c97054ef2e077b340878 = "3f16460decfb986d5649eed8281b9537b999992e" +61adc07e8adb61acb00db944f9334a4229e3eb97 = "74679c3bcf49ad7167177fe8536a31bfb3d7cdc7" +6a795c5ae2a4498081d8b4c689e95f79ebbac4ee = "6655cd6c6502465e9fa7517d2f4740a0ef9decb0" +777db61242216a53a12051f0a2abdf1f4ed7880d = "922d8754ddc1cf87eea1ffd659ada3ba0d1cc135" +7ed60948798d22774c502e09e144336d4fbdac90 = "0c2dcb5c457b822356a3ac1ba0adbdf606355b11" + +[946b8c4f-e133-5c8e-ac42-a7229434e25a] +92154815220401bafa31a8a6cdb62e6c0ecd2ba2 = "1c8ded9eb9a542cc542ae7023c5154592943edce" +cf844ad5a495312654d3214fef83c1be6ff00cb0 = "7049e7d07cf05096a8e83969b18412630e267aa2" + +[946f28ca-a746-5062-aae8-8de1d469c02a] +84ea1ce6717f1ec15f02443b094625b044373ee1 = "3bf789e516bd1e077ea4404079e928d11099be5e" +999bcbe58e50059e5abca43ea9133c74f30852ae = "01c9be8ae00e38ed021e699493f7aba0c615470d" +bb002695f950c95ff8afc000a92dcf3e3b1d6879 = "0767e5ce3f3607033acd715e793408525beea084" +e629014d537fff8e62f8635016a93fffb16ac2f3 = "dfd71959e0bc1947bac55d9fe731a333e9461a0d" + +[94a5cd58-49a0-5741-bd07-fa4f4be8babf] +0c3b3c65e68bb1fa68a7bad28b0e22eb617f3a60 = "3fb9608ded82d0173e7d4f1f6d5c13861ddef804" +3da5437514a291b7b5dd9120d9b3d57cc2ca41db = "b971709d86f97a810d5c493ebd11b8aab1eebbb1" +622daf794a38a7a906a98b0ea7188bf282b9e0ab = "58e0dfcd827c450694488210449943d0f711fde5" +8da382cbe0f8e926d17046259b4e1a94329c119a = "54a39d2d51bda50315672500bd210e7eec4ab2e3" +fc4686896f772644824d4380866c67ec78f5fb93 = "8029902a271b10b7f9663b258dd1ef1445548522" + +[94ee1d12-ae83-5a48-8b1c-48b8ff168ae0] +1a81c4d369cbf434e90fc63bd5fc299e075504e3 = "9375614141fcfba22a5ec3e4c23621fd9eaf3111" +288d1d6faaef9049a6fc68619c5b056e428b4ff0 = "b9b54bbc89d76f1ad992be0e5d762065a7d71f49" +5a68546879b1bf29973c672466d82b8c7134e9c0 = "4a1506d6f1a1abdc4f3f68598ce65233801a68f9" +62200f0ac5efd6d4d042f5d778d0cf2856c38c50 = "3714e319e95bffafdea166e07d7debeba102e926" +ac488e96c852e1c4cb4ae69abb12d7e12aeab154 = "579826722c2c2020e6c80709b820e6b1d7932e31" +bc13fc6ad83b0a14df67f3eb343a0a5be1126f16 = "c8ff98bdba639762c4f9ef0aef6a5e006d3d3819" +edf1e6fcd1c06808ddbe131c80675d358ae34747 = "24a433a39f8ed6dd87e8c4825f46c64f76e20853" +f702021ea580045276944a524a83297d0500e939 = "52c03b531726e538bea3cedd4ce49f5288651fae" + +[9516f557-4a54-5a79-b954-c272e753c77a] +e0e4a1fd8038957ba9b76fc2772cec63339563fd = "f8059e36a5c745b2357e3553cc2ab510712b0c86" + +[952205b0-75a0-561c-bf54-4eaf7b36f838] +18af915b233bab175ea3d254f99d8dcc4db998bc = "854baa2dd5d28ec6a4f2a0700d583111aefbba27" +4f931c22e485c125a6820f8829213ab9b7310541 = "5327a996f75db7d0d2c82fb83d42a675e6e05f77" +4fbad75ba267dbbfb19ae35e1393a07b9566a96e = "4e23f246a3084a10d5da7a37978649f91f903f19" +7bc0cc688380859c591a6923ff1d2ba042452794 = "ea032f2cc37355b253f8cb606679b0613f6bd978" +804055190303562f29ef5223c20934c512004620 = "3297f823cd3bf976ed66d6fc7a7190e753b370c0" +ae02684c3a91f120d34619dc99501f83222ec36d = "7a1a585553765d8fc5364d327fd717cb858cc6d6" +d3cd357d41e136dce6dabccd4377ffe3458adaaa = "46563e0f5a673580e52f8bb056396111ec6287a3" +ed466ce00374b04a556fa957d2476ae2c0709f79 = "80d86804b2da8e1a2ba54925f5d3037f9950d54e" + +[95701278-4526-5785-aba3-513cca398f19] +0eb64b21374d95c1d21b9cfe853c94b52c464861 = "f789d1cff2d9b6d9440042dead3a22c181507d54" +20cd91a5b5e64a45bb252b40c2f2dc40a587e209 = "9d54c241c79666c1d7ca0486cf40ceee6c06709c" +ab52f94ae5571344d39ab23c9c2ebc6517ad2ef6 = "563714ef04d43e0fd0732b878773a1b673442293" +b9bf29ea504935a16285311cebf8499361d559a0 = "e5a84d8e14fe50258b2dd066a6a2df57485c8139" +d6f9cdba441d3554836cd8259777e69818d658cf = "13d117dfd0acb889d1f7c267cb997032046b64d1" +dff8dd24993f93de5f6b28c3da556e72006acff6 = "bdbd43ac704b055bb872dc7ef7f054422972aa4c" + +[9602ed7d-8fef-5bc8-8597-8f21381861e8] +85f2ebaf2165fa1bb3897057c538604fad32019b = "a63098090de91d877036c4af84f94a69ea01fee6" + +[96124ad7-5c0a-5c8f-8316-419835a3cefd] +1526bcab977ff07eca752c696a1c645e8c689074 = "2e4072dc39318bd4f8b18865a23fd790861ffe73" +1aaa77e267ebf0b51aa4eb21656567215494429d = "5ec4681becde133373d2c294a6b8ec0883e2a6bf" +1b29d72910587ea6bc5f2663845eab407b24d1e7 = "0ac40b6a2b12106bb58119d250d550a143cdc44f" +1ce05169d21a93fd86e98d59fb4a9a324e4264df = "3a4569916d358f34dacc78316dcd8e2cb8931d38" +6f0b5284cf738c4a3f6d7896911e87c3ce3a6551 = "e4f93a5c3f42133f4064dc0d47ef0e8e9797dffb" +c8e1c7f1d0e32c6990b8626d4915657196fe521f = "00a146d766b56f6591fea3690bb73760fd4cd8e6" +f126624d51434062f2365086dfa847a2849a24bf = "9409d8cf3264c61e98107fd175ce4c15724349e3" + +[961f58de-4b49-5c3c-9748-6bd4ff1bfe02] +2101870250242d44b5118dc5efa7cd8680f7c89e = "380a7d867f333a9995b5b9fa38c43739ccac93eb" +fe37a095b943d779236c2d3075bf5e4ed4a2750d = "1f9182664614783bcd13d0e272f59b4c86967836" + +[962b0ad3-91c5-5e3e-9f91-41efdfe054b1] +39607c912872eec9d370f50714dc69a49cedb3f6 = "0e4adbfaafde168d669c33a441df6124c07c2861" +e92cc45b94ae5dcd12b2a1a48423d1133762b243 = "855ccd002501fa323e92d3b7741fd295fb7410cf" + +[96374032-68de-5a5b-8d9e-752f78720389] +00e8f51aa20e3ab35b59ebebdfb6d074018d1ef3 = "006f42d055905c3e12f728135e396a34694e8d4e" +3354545d79b4a598c1d2bfd847f60ecd68339093 = "6a717ad30ce686f311525c976fc55229c6a706b4" +39caa93ec967ddcc0ac8403d49490b18795b2185 = "970a1e508bcc2b0171ccfb9f1b3638571bf3181e" +59ed4392dba891393646d109fdee1f50c5a65bbd = "f2af1179cb99177a6612070f01aa91ca7756d18f" +67574177f25b6041c9047eb4479412b9a659ca5d = "7f21f0b7b5fb69c1ef2886f9c4e58c9c41b3519d" +811ed7d7891d494bcf3f659fe1c2baf1e5f5e4d6 = "5976b13d56638bdf520705f706d53dcbeb7c456a" +8e3984ebbc219fe52b0a3951f186bec226db8f17 = "56057059bf0e1298a8cef47e2671c6ef5a6c63ac" +b61bf03d5854a1292e44cd213845d49a63478832 = "e793fd9a903dbd6c3d4c6e277f5197b2866d8046" +efa7f03a5467189b58bec892c14d59dbe9839bda = "0617c694df4b115566ac49018c0dc38562c384c0" + +[96684042-fbdc-5399-9b8e-d34e539a126c] +ab53da2223b84de2dca7bc40ac4a9814c84f67ca = "d9c5bace185a4e6a647bce0930bdb92c5e18751e" +acf423e033164742f8575874f533731da781ad32 = "8d29d10d8097ac7b62920965238fc5b3f760c603" +d26b9a9b36368399634b8f565fc26b670cf05dae = "b550b7c2ab47ce66306ecc287fa379e5a97905da" + +[9672c7b4-1e72-59bd-8a11-6ac3964bc41f] +684b501825f2acd7ef7626008ca568f33a1c29e9 = "981a195e6b20e5b479f3b6dd7f163cf5ace51e45" +ace7f8708f65c50d646222c9d3f9e8c865ec2d19 = "d126feff6b1b492a6d749144cca6326313449ed3" +b43e10fda66c621eee805ade9449599b5b029901 = "8c5e52f21cacde9265c77a04c72a693f9044bd52" + +[9689d877-bbb0-593d-8021-de8e3bedf7bf] +3e49ec3ed2be9de9bb7410513435400b9bd6c49a = "829861e0569f26a974738cb4a5a54693f3bda3a0" +4655010eb6da712507280c823095473bf80f5fec = "d0e332b3acaa5f83e2dead10aa44137714b663ff" +4ea4126fea2038857b4428b8cbcf9cc291603b8b = "a7fcdc5b80d8d6b5b64a81f9e78927c11e5d3c04" +591238c19d2a7b49851042200ff86c959c61a0ba = "5c587f39bbf39c8c762f364553691ad7630826aa" +64bf6eb23c863a56988f12fa2ae0a499f6baab33 = "a36e75d8ac4f999e60f5469092d5a614d405990f" +6ce4a9396e0e445e0e3b0e28a749099b22b55b9a = "397e5c39f586fe91a390073329fa7ae042380a30" +7e7d7d5af2fb055cd07da0f2e20bed7c07bdd020 = "2baa8cffd28df7dfc101cdf1a4d16d819dc18758" +8e24be91f923aa6087fbee34e47e4b4905b0dbda = "94335812403b89e1fec7ac69f69cc4b80ca06e73" +8ecc3937e344412b12f999e5d8109d54cd9cb5be = "cf5ade659b77c21a6f039b6554fb9d2ad142be7a" +9a5186556456d7fa29a25977c9d29880a44dfd05 = "40170126483f10a08ece5ab2ceea889f9815151f" +c50e3d29b6b38c83bfc279aaa5e8ee8c06c994ee = "601caa19acaaf6a163708c29bc8611291d263ca5" +d8c8d9d4587a592137d627d6e2a0ea05140a55a7 = "7ee5acabd0a31b78aa00ba30f8ebc09848de9cd4" +db6101d306b7b2efe7071ece22948e23b4ce467f = "47f06b7939b35a0d12228207ba4e33fb2f38b99d" +dbce0537f2386c8c1cf319de05306fd83353c768 = "d5b22488fff5829a07ce9af785b42dbb97c9db82" +e66d3fe55916425ae750b658403f6d447aad716e = "427fdf2e084b15e3deb9a934e39c3a40989c44ac" + +[968ba79b-81e4-546f-ab3a-2eecfa62a9db] +1956a82e509f9b7b6ef4d764d4e493b06a7ad32b = "535db887128e97a4c3bbc0cc592ec24b7415c9bb" +3a8e3d2722991b816e8a4e7c5e75aa72f4f8efc4 = "40961eb2c7dfbf8891d31a7b4c27466db4b70361" +5325529284e47a1796885539ec2c0faa11b88309 = "ce26240154f0f41acd5abfda0e29045b068b18ac" +64ae97d39448aae19add2078f865d94730bc5f0b = "98834c1d35478b1c5786b898bc9c970b202ce567" +6ec6454dc06c3afae87b7a458499d35887515752 = "87146ea6f0ac773dd9816b47aaf45198d75ca66c" +831a0416653c76c7ceed2c3723f659ae7fd3d5b1 = "bd80bb785970e359e076993ad81c46bb772a77d3" +98fe2bb6b979dd68c3d52c0a27638c4e915a802d = "28331a5c9afc1dc47cb90c4360db02ea60389b85" +9ec380aa5ea8ae58f072fe196253510b9ec409bd = "81688c9c16f7dc8d31be7f21508e7c98d9e13320" +dbffb5c41b5dc2fc37dab22e39a1f0d8f7c7f628 = "bbcc954881243dd375c8056f0ae1c4db06de21e0" +f3e9934db42df03329619f64b3f71ebe51b0eeb2 = "be3862edd8279e96f42baf23782b81f06d8a45c9" + +[96e1709c-041e-5d42-98d9-815bb6f3efac] +743dba23afc0a4695020e494b5097371d99c84ed = "6d99f5ffa55714edad33da659feea9154813e690" +7fe6e8845b269c23cc200ac3d3e855e0869cfae3 = "e0779493f90def29b7a7a3ae2958326526b4d201" + +[9777e3ea-c9c0-58f7-a64a-625c82e13989] +2b974adb13c4e234d70862c1d33728792f99f05f = "ede45027a01ac62d10a32e2dafe01bf71952ded3" + +[978d42fe-2d73-5cd0-af12-dec9c7021217] +23ee3a39ad6b6d2cd96c45bb6fbdd4d0d8aee01d = "a573c02ada254190792e771c6435f7e2faaddcd1" +2c8e61ec9ec85e940d2867259478553fd0ea8e07 = "e2dd3a2741d441794072780c7ad365098927d800" +6fd733ce03c6159ea08137754e68c3f33cbf82c6 = "238af36dcd3daefa7c9644dbdf7393bb36da9986" + +[97a7e826-69e2-510e-8af8-254736c4b599] +2d40c3755a39cc18e38774849ad09e7d1f715115 = "8b18c234ad31098c007c894ec87ff0b2010ac37a" + +[97cc5700-e6cb-5ca1-8fb2-7f6b45264ecd] +0f43c73e17ae5edd9f6f87ca348d7d41f4599fec = "45d60cf86a20e8373a76f52479ec52400b6d8af8" +10c957fa276046102cf41896d81a53786607ae36 = "aa8a2bc03eea7c94199d6be6b7342fd09459c513" +13b2854f69d57a16b24214d3caef554a669577f1 = "6212bfaadb0f9f6230c929406acf6615c8e9a5ac" +537ce26c7cc29aa36f324d318d2978b0408ada68 = "341ccbd87f6ecf84c5e64ef8fa9c7fff857c741b" +92c50127c3cfb9e1ae84e6d281fb10e678ad4203 = "adddf2d635b80d10365e5a993802f41c58fbaa2a" +f2e8c98350dd2ca6ff1d816a22dd73b4dfcc25e7 = "e720925283575d12cccf51a8b5925eb3978af1f5" +f3558a9adc5780a5d049b929ef642ca7f8fed24f = "266bad16e3585424a7220b07bdfd1b00ef04c5a2" +fbb95d7af305a337b478b53c3e4537f171a82fac = "61989715ad6e0a2529e965e53b99aed4bd6b49f1" + +[98003276-9b86-5dd8-b0fb-08f007e5f4cd] +263c02c537632d60d0ae6e14a49abcb8a1b61f4f = "922d0cc7736e02cffd5722d453416c22377d7372" +bae3b27178270fcf4e70ced2546e19c0a399fb01 = "e68730c037a6ab19ab851ab0ccff43f8032ba676" + +[984bce1d-4616-540c-a9ee-88d1112d94c9] +0d2e3956f623cb2194e82f5f650413370743d429 = "908ae423484d9e0f47a15e23a5c555e9a7b43d0b" +1da8a85fd3dbf5fea7ab579f1a6c708fceca5db5 = "11ea15924bcbcf821bf5e24dae36ef725aef3d0c" +5f73b77611f7961f102c2a82bfb59c3459bb2309 = "1668ed6da0021b2ba289ceb424feccabb4f1b967" +b0b60588c7f2fd26c5552f1b4a263e8a27c35bb4 = "aa84c7e93092b5f10c73fcfa30a4e0c458e6790f" +e5af0dac24075d65c48b6924116f9b5791d24721 = "f98127571401dea02b909e22b7e200564b673f9d" +e86cc55fc38e63d011008981cdccd4c05fe1524a = "9a13b92a8dfad6380208770a49c69e7ba1125e7b" + +[98700a41-f20d-59c7-9e81-44d0470ae598] +06544f5e707cc10ec7893c39f765a460ab2361b7 = "dc58642376f4d432a2797844a30dbddaa8d421c5" +7d00a39c64d6ed793dd1095785190487733bc45d = "b29113afd9308250ebbac9818413b8ee9fae6d65" + +[98729d58-ae14-580b-85cc-57d472ed321e] +fad1957f320354f79a5d01bb97cbeed54259e8c3 = "e5cfaec2a243dca977d1225545cc972f5dfc7373" + +[98c9b6dd-1b90-5d67-90ca-be6a773cd6f7] +0e276ddb3bee136e67bbced587a43f79706597da = "4b31e96cc52abcc716c0a9ce2a64bec0853cea33" +378585579c6545519cafaeb0b669b163c290f9fd = "2d2aae70aa4c1a79a135ff2d25e865969e78c382" +48e0064eb384a41d72aac7f44114bb7adf714acf = "58d03234e5613aaea9941269085f149825991e98" +511c88c30e63b18151a23e8c87c746ba12f2c0f8 = "9141bec89afcabe5a3b8e2b6f08882ae8417d3f9" +6926853fd31ceb36f102716c2a7e4627981ba110 = "4e83636990fbf70e62bb0de7f0af94d518796246" +9605fea46734277179cb25a5c416ed717d6447f5 = "2811b2ab5b84b97de1b150142c484c8a9a33dd22" +a4ae2a1c3006b4f80eebe175a2f32a8ddaaa0466 = "c7dd319ed842d933f9da15f86fb74686217fb959" +b0eaa19450499bf65b6f2271d94b69a5a1258b5a = "3c5dcb6721ab065fa0b3bc5fafe6ba2b7e7eb22d" + +[98cad3c8-aec3-5f06-8e41-884608649ab7] +0eef0eb66f5e7954fb951f71b36570a8ede5243e = "460ae7c7bd3a4440d1c15bcb6a2abfa78562408d" +12d3c0ad483d4c25090fdbda92c24ccfe0be816f = "a7385ca239b663872655812f202190811484a1a9" +220145096c0d918689c836b7fefec4b50f155ba1 = "9699a56e8c49f5e89705b82f50cd09a758f52bf7" +5bc9e08c367855b1d4d9412ff1ad6131047d4af4 = "1a07e0785a788a079c4a4dedf5d9fae393fbedfe" +89dfa52fa9679964619a4d857234032c711d0c9e = "a3ac89abe62cab1ed4a3e4023cfdcc5fa0561c1a" +b1f9af4c2fabe83b3d45b2dd2d38e520bdff10af = "5e18546249996274cd53ae895e9ee855b50ad83f" +c1a33fd5c399305099c4a56ba89e73b7c0baa0d0 = "5adf4e0a54fb2a2476f4f75ae5d592a4b8efd7d7" +ca386cd183e5fb012eb15eed16a46ad7f0f65213 = "70d315d3d27759a695ceb2345d7e65b6864da9f2" +e41facb8d58063d56630751f86237314fdcae765 = "ff3c86460bb71e5b85fb20891c39892bab53c470" +e4585e780ed49b2f857233ff6f1887761f2c51ce = "c66719e0d02c5e0f806d1474b7aa9cfaf3069936" +ff93a1c5b4ad9e8a9a79ef33e48c4838ee4198db = "551c171afd681942a45e5caa082188c377ea6d56" + +[98d63f0c-4670-53f4-a117-61cbc77e80ae] +2504ca2f35e17b198db734e6d121be11720a54de = "b3bf0746b249be6bdb4dd1dfb76d995eb4662070" +261a003c0fdb81fd2c9ed622b28357ec0b81dd4f = "e183c6cfa486af0de0dc0f069aa7002f756e8d27" +2a9a583aeaffff627064f28f6a0fa46b12f76850 = "e43d78e03f125ba8e56aa8dea738eae9f477323d" +4b3b27479a16a24dc08714bc26fd5cdce6a6496b = "782cf686cd7e71bb811439245c19c1fc61b3aa56" + +[98ddbbb5-515b-5fbb-b838-e9f4fd00c944] +04ad35d23ccbf2ef1b4b6ac54e0f6dfcb13ad48c = "1ed8e6cb66fc3832e138b9ef1065c355ebd9b712" +14a3cfbd43327b85d5f22ee7c9adabc9d706fce2 = "baa3ea9c124e2aebdfa2645870405b3a797f59de" +b924db5697de915a66f2896a22ce7f60b5005499 = "11e22fc5944ad78fb77ba6a4cd1eaf69ee431427" +d6c057d9b587621cceee8c9c0b6d659e2867d398 = "716577545c34868f6a95a7f5b3379e83c505b878" + +[98dea707-09b6-5a61-a46f-43b0fb0fb92b] +9cf9b0f42b26d2a7e5b34d7b7fddf012f5180bdc = "a7228b5532b14a16b9e4e91bf0d96fbbba0d575a" + +[98f049d2-a028-5a73-bd4d-a8c50ff59ab5] +140b662989e8a3ff7a442fe41dc5f80e359b4bd5 = "d234fec8056712fe7d7b23308597c81ac787bebe" +2ca3ed86418d56ba72ab86e9be04b0867eddcc8c = "ff0076ceabe14bbea7bc1e877c04c88baab8f028" +3e226d51370f30801eb2002dee469d38e694dce4 = "2a855407ce712c18d4e03d95f74005bce3123061" +42bd1613d4f847d3916d8eecb7961bc5d54d0bd3 = "b1340cd3b592e7896cc575352c29c410039a2589" +45f74fafab9701c67ac2d3a48df19913e2047d2a = "73763922207186aea45429b971090ce76db59663" +4f1265e9703a74772002b4af743e1ed6aa45da47 = "af196d9d30e4b63ad5b5c2dd6e3c7a0100036818" +50a3fd3fc6134297908cf8170076cc302f890b80 = "a0df5008bd15dfee206b013deadcbdd56387523e" +61fd27d9ebfc791ef47c4c70091f7724f5d178d9 = "983131d02911c6d7449c6db762edf9a9f34b2a8d" +74a89abd1c0708e3917c96baab74b931ef779691 = "9000ead7bdd2d8b00d1230d4e5f2366b79e643bf" +8cf8f94235f7dac8581a206b11aa20413b507c70 = "ebb366af5ad9a322caa6ac453aa0db1ac0885c68" +c577d00c99dd1477036672c219f51efa72930917 = "6a640486226717c77d4ec7e02369e701836bd2bf" +e6ec8ba890bf3337d4d017431b9a6728893e3b69 = "ecadf9f2a7b1c8bfac581f42e0f9613838ee7e06" + +[9920b226-0b2a-5f5f-9153-9aa70a013f8b] +2eded6599c8a9e1f23240ca051008ae8a9fda2fd = "936068b4831da9a9a882bc9fb033cca9ac12cf46" +377ad95cbaf08b6c38a6163119bc15301d022da3 = "e01340b430acfbdb391622430ca09995c87c5671" +8730b3df5822893c0c744dbd1231085414758df3 = "f82d21697e542c32b40d2edee205a76217eed8fe" +8e3d1b87e28c89e21714b7aea8ce347593569937 = "d14cdf12dbad0bad505096ac05c3a62771fe1cf6" +b4ea88989c67efc61e03b63911f0e143b3490092 = "4c1f83fb40af837c93079ea1d4d822c488d0961c" +f79ed89f842d66ef4b8e4272d3e0b83e2a6d4ff4 = "e96bd215ad61597191d4e593c2d96bad866fd06d" + +[992d4aef-0814-514b-bc4d-f2e9a6c4116f] +11a6134821f8f0b55a8d8d35d763d75ca5b78236 = "88ba7805e50ca676e38dc5b7ce45a5da9180d346" +1bfbd515dee783eee49bd99b68a44733b22b92c2 = "f60c49e181177f8b1d144bcdc9f3928ce0b78cb1" +319ccfcc1135b895ced2d7db8ef013714304bf34 = "28c4699381b999918c8de70b53ecca5a5ebf59fd" +39b9288ad7e7d5786c04071a35f32a01d19bf2a7 = "af430f8d5be4e604d4edae516e3f99cbb5c2f4e4" +7457f08320a026b538e6ec2cc8094a84cf386865 = "b98f225b1e0678d1d34e1cb1b098928e6b845e0d" +7e0bd85c36e87add18c5c3dfa3470cf34cdef317 = "3bfde76702686d88c6d3fc0290c9004f11cf3497" +8d5c7cbb4090b777ab021a361a3b59527393624f = "7970341995d5846a21eb4461839b717d9e71e798" +8e5056a09403ee73305b61627290748374ddbd45 = "27527944e61826e6d7721fcbf11cdd90122c417d" +e08c0b01a21ff5c4e75a3436086c6d3da7f85f9f = "845949d2aafedd56ac2e05cf426121d04096f2d3" + +[995b91a9-d308-5afd-9ec6-746e21dbc043] +15a1f70303407e9c22f1b17a9433e3dcbb0ea6aa = "52b44654025219a647f82b1fa1661cf29a1d2c44" +18788ccfe6f10657a3fa182bfdc2c6e0d88a3209 = "c780b2b8eff4427f4534050860d40080c23a187c" +681b291aaa8ddafcbf863c3981693a450b81e9c9 = "3c67ceb2f96db03e01e25bf032160c652cbaf243" +779b63ea9c0fe069e0a91f867a085c86510f3fff = "a03a75022a87dd7a9a585fd77c935045e2b1cc53" +77b78fdce4ded51558ae6fcb0ece779001c7b806 = "b8b55fecf2daf6b5702b63d4c84d56396cfcb5eb" +79a6f7e513c5226d99e9b6e4598a85770bf5e843 = "476dad138f25dace1c24599b0f90d9a5aab6fae7" +8294d5ec277c314c850fd1117ee5c6efe012acb8 = "7d7134e400223d815bda90a201712d3fdd4c21dd" +ada3c99764173ffc8a64ca1023e2f09847c3d3d0 = "179bcf9d8c73f87cdb51ceeaaac1d329462a255b" +c8d84fe3add4fd683fa95f5cc1d155c844605dfd = "ac210765c8b78859016ae7572256563c279dc5c1" +e2f421de75813468538e6c1b510156479c90f630 = "3bbe76c99ac426e85f3b8150f40b3a979b28fcd6" +e4fc359fe1e309168e1fd0a32acc70c0318a98fe = "9ea2a41297908f02c799d7eb400c6c43b8ee4aa4" +fb8404578c21834a48d5984b0ea8e260b5052cd0 = "d42063f288d897ff5563fd694de0c389573ca9e5" + +[9961bab8-2fa3-5c5a-9d89-47fab24efd76] +248c7f8ead35887e86df4a9b428622742e7265fb = "6c20843fec777e809e8e407a2b267f4818a42472" +292b881f958117a0087bb6edcea62435e616b070 = "e11348d0b81cf8071e17d2fa2d231c2bcb0879b0" +3209edebbee4da2e11c9e47835df650a3fe0562a = "4d53c5f339d7676663a01bc28f342b16c2352af2" +3ab43a281ad7b4c318917638ff281e9dba656c06 = "3a563ba2b906d34747dc7ec5d98d87b9dc6626d9" +456175aa56d087e975805ef0eed82569f6659e8a = "657e7d07c631ebd84358e1b79b98c7f53ea7c456" +58d67088ff816a29b63c12721613f1a2d0f82383 = "7a4df9412f136822eb4401b9ccbe7f8c55af855a" +59b815c07aa4165112743b6ebdbfc7095dfc8728 = "dcd2bf0cca3d411410550b2ec0f8e456feacc332" +60070eb4af0786d9cc8f70e11a3f9803bb2856a4 = "c0d00fe06ac44e32c9843d67b9e0947a8b8e6b9d" +75cee0b50433edc4319459546aa2423c6fd0aed2 = "acdaa5aefe79131e4c2235334ff983f75f268683" +a48fb728ce8674afd86da4d0ad3b0bbfca5ad9c6 = "44598aadf929fd1d35e3bdb6831be9823a7b8a48" +aed0d73a5611a2bede96d73f26069048f16d321c = "4442dcbfbdc3a4c57f05916ec23cb464d17957f9" +b1cd3e1f4931e3fd9a0249ddaf981f8ccb992aff = "f6b8c398e913f395bebd100f5cf04ebfc5540a71" +b31483f991cd83eaa5ba113eebeffc593364043f = "9d5b24d568864633ec5bff6efd55185ae98044a2" +b525002623f42733142d08a766dd7c6a1edfa7a7 = "b15ff609cce0fc026a0191f1e4cf27f0fd59181c" +bdd97f465b4b4fc90ef5e0e8af671ec7efbc0594 = "5eca3d9f59513112bbdfa16fa9018510db147e89" +bf89a611a5e8bda5e388edebe70bd7fac7b6b3dd = "fd1d0fcc151d630bd97157b4aa9e257130a5bf1e" +ce1c474d96611056a50b00c162389a50db26532b = "cf669291f07a34b6846df11193d654c2016c948d" +df1e048d5c2bef92a6e16d3456d0df75ae006fc2 = "4721789fbe637e39123ac6dc9271059f81df9383" +e149a32b78c7a5570da1674f1fd1d4447eefdc49 = "6d4423a28736473ea2088ca4ba0ca10b15eb8150" +e631fd790ecf4548fd6a16337f69a42691d0082d = "54e8390dec11b95a9fedfbcb8e4fdd22b740353a" +f08e61fe1af6c1caddf1b8cffd6aa65fa7edefd0 = "6760dd16b56325d75f06c6b443500f48876ae6d5" +f1311654f9d8ae8de3aaaa65de7f25cefbcde773 = "c1df8a34b3bb4cbdd13b29ac151bc4f16cbe3917" + +[9966252f-7483-59e3-9a4c-8607a6b2a5fe] +188ede139519b6728362a198d2b06fdc6beea4c2 = "e562bce4b0df3ed65562ce2ec7f56cb399368daf" +b456bb073af22cb697914bb381d6d7eb54869915 = "5c3d09ebb23773fd897fd8583660dbcde47da439" +ba6a7e1bcf723973bfa12a06dccc8d6b4f4d3373 = "06fc4ce60caa552f615bd6b36dde4fef0af091fe" +ee92c78a7567c28c440cd8ed3ae531ba4348229a = "9153118ca1f09430b76f096121dd3db4f303ab29" + +[99720b0f-0d4b-5b12-b398-be149b96c7cb] +16fca743b82fb91172b88177953af4af35b62715 = "fbc2dcccbf49fc621583a84adeba0244c6774edd" +27f6a8881e944a73ce0299d4aef241a43ec644b4 = "0e737626cc4a237e2eb25f4a8022ef27d3d6208a" +2f2639a24a2560ee99e1b3e8552f8a3375aeffee = "0fb96e70ea88760c9095c2d01fb21d33934cdec4" +35bc94740c3afd4b974b45ee9921d028889b1fd9 = "65851af6ce4ad29dd677843a9701b52dace0d3c8" +5976f77395b0fcfad30461dbda79351e032986c1 = "d3dd671297781adbdd032b223cf4e85cfb17505b" +6ef60e3396e313a042a86e8cfade7f88746d167a = "337edcb8f1b2d66522cd6cc8c082a519dfe89113" +7b180a57133e1d7e84f7bd78ba2c93e01e12d804 = "c3dda7eb7dfa835ac71a44847803a0217b9f9261" +8e21647279adb3722a3d8a0ad11a43c96fb28fc8 = "771d57f175bf77c4b410eaedd352dc7ea632ffa6" +8ebdbb7c50e6a42d022913b45c486a44d65d1298 = "e6e9f00d5e9875936a9c72d265fa7d9e2c550301" +97bd83eb53288262b8ae98cb6b68cc0e5044132f = "4e637d16bff33f10f992f03b1fa7311a13206846" +a83dc11dc6b9271a5859091e18aeeb9639b25ab3 = "5fefcf37a5ad5e84caf2ac91046b0e7f323b85c7" +e98d9ad8da0ac2b6fe89d7e5e895875bc25bef99 = "076750d69a37f4f8916276999b7dbf21ed0e8721" +f5b2d51c31fb8ae8a1c24ed892bc5d6fa22f734d = "bb61346220206e8a4017ba578d684686be5d8ccb" +f99a82b609721bddfa24976ccbcefd0e06135c33 = "bf1dee7e6ce347d92b20b828a5fef1882f54d9e6" + +[99927692-7a4b-549e-8702-55f97b263da0] +94176b6d650d2a1c9094520c9d6122c3387ca029 = "0b030d985a13b58593d4ae8c975954c043edc305" +dc40164c1fcd044f46ba076368ada5d26b32b1d5 = "a32d9cf0b0fe101c01910228b4da6a3c604858c7" + +[99f44e22-a591-53d1-9472-aa23ef4bd671] +15fcfac2c8a486f746f3488a7dc30c409ec58c53 = "91e392b95c9e6a78783b6e48785defa70d537b37" +1fbe1ed3a2f69763b787fede3526816efa9975fa = "4aacae25234eff78aa01bbe0d4e79adcc8b5ff79" +4f0934ebf4d0c40dd88311950e74415d9eb16400 = "7b534f75e29aa51521965b7cc7f9f6cc25a56733" +72c815023eac3c9d0b30de89fa553a3a2e0fd33f = "25e5917a32301c2e59359f13139bd8ca6a86dc16" +b1c2fe62790ec63aee103ea3038fc26315e40da2 = "a370ecaf3606c260ac67b55950c4bb6d7c9c204c" +f6e387587656e74f6811b37eda3de44a6ba51182 = "a4f25ea105a650a9018af525a372f767b3ca1c70" +f818753b4ff7bde8ce9f89011ea14b3e287cc4b7 = "448758f28fb86f526a45f1807865b4efa989d4c7" + +[9a091434-52ca-5815-8d59-830a134e3a9e] +4fd31f242dd92c9d6433a1f9dcac82eb58b17742 = "4756040be914537eb3724f0bc927717d180f9ebb" +5445fc7b4e0320d529b10e6288964c894a641de9 = "3fd70f47faa0f5e04d233a1b50ef05bb81d74115" +64a41a340113c3ff98eacb120d8b3018549e6d7c = "a4dc67a709540e3202688166180bf1e1b933ad5a" +df7ce9f55f601283830979f18cc589da542c39fc = "3f2f7b39896270067daea5060771927bad09e9bf" + +[9a2cd570-f05c-5dc1-9209-93ad6f5727f7] +6b468204f314c9dcf19a54fefc5a8432fb82a5b1 = "5026c69aef61e60b4b18167dcc712c0eee45f3a6" +964bca6c9ab389b7c5bfa33f5a9c943dc54901b8 = "5273950e1d60588505479e3643e236770d9fd87d" +e2f9351e74ec6ca44cb811e0671d010eee406001 = "98c057f06d3c3effd8677d8e22154735d9a3d671" +f1a7d20e2175f89c171ad30546f66a0445aff02b = "938992354de389a18a60f5500bd52e445818f11e" +f1e7b8eefaa84248fe968e924bda798291542a00 = "b410208d47f435c9a36867bfe6a43f1aa2d59d91" + +[9a7e659c-8ee8-5706-894e-f68f43bc57ea] +2a8f2385a62244718e8a61d3ca8eebf2d6be5c2a = "d35df44808cb9d692d26fed560cd03fdaf117620" +c1d8ec14c51987c04297b28affaf9c495933327b = "d82fbf49aabf49a1e1b3dc4746e41bde15e8b4b3" +c7bac29f3aa79f071417347dc609edb14626d829 = "33bb1524f7e57faab20f1976af8753deb143f99f" + +[9a8bc11e-79be-5b39-94d7-1ccc349a1a85] +19f2c94c77a54d53e19861b4eed9f6cac2d67e5a = "f9c89823904bd16fd952725dabedc8281054dc4b" +1f3b0d0ce4a0ff69035ce173cfb6495ba2a24998 = "1178ed45560b10d6e148bbf71f7650b59ad84a42" +2cca825fecb314e827f43009b10bc6359a5a0d8f = "d485477cb097c66627831d24e922add2e7b36675" +399831f36db3d5054a2f84f3bad82ee88240ba0f = "acf87099d83c59819ef513dbd9339dd23aea401d" +3bab4d16e54108c0276be5e348f40e9ff73001fe = "80ab4b4e4f7860aad669f6c00bc847292daf62f3" +50a20a4d8fe8130948efc2451e2b5899095f2121 = "6184e8e3bc4c9441481f9e42737fac43dae0e9bb" +53521cb03de5e24ab9b509e05eac49b58dce7aaf = "d3d824b69ce89a9f4509f2ba523664f09dcdc61f" +5ae8d79f1356741c74ee55e36794407eb46c9cbd = "20d007565d293dc4b2ff23e0b4259d654a56d5d2" +6a9996b1be3ad208d0eefad0c57958a34db19f4a = "caad92fbcd908313b4c3790e703b80f694d47e50" +6fd55153d157da21e81aacb857a274d9bd842465 = "bc4d99c5203fb3082927440ff24e2b8e6a1dc394" +7ef58fbaef1c4bb848b1123f5b6332abc7a4e456 = "ce29740c0c11c894877b341b163697932690ff83" +8ee82fa0e6802faf185ccf4bf525b9139d132b2d = "ec074413b87fb2424f9b43ba8882182ba1b76718" +9c52c498dbfb80850ff38df04c7cf45264495ff9 = "0dc30872a2eb0e0a158c45906c939ecf3511e559" +a09a18b9559f1da81cfca3175b8c9f3da1c97b2c = "4af5397446ee33983252b3a290ad6f89b8ff4026" +b5f575059b661b63f983dac276652d7777bc6e42 = "61908a2925d60bb91ae5719fd9036bb07750f7c1" +b94a6cece84f576c7b20e82804e73a93335b84d3 = "3ddf8747c72c9181420d3a51d068c20f2de7d565" +be1a9dde178d703e4f2e168fd1ed867208fdcfa6 = "e03c856b1822a64c81c5b0349c49652e4f6062e8" +c8a690c5f326b3e68c4c32e46511839dbb55bdbc = "33759c5b9257f090b060a280567aeef64323e927" +d0969d1d10fd330cbf8d16a515f73b82f7d0139c = "a06b1073ceb12a1a4fbb53fafd3b0a333579d2f2" +d1a806cf893b6ea3f6126bbb92a0ea74a5e9a22f = "56b1d87f38f3a252e18228cab4739a97e6b5a9b4" +ef3ce845ed2b1ff2b2a6dcf453a68fb0facb4ca7 = "d0c63a3816858bad0317acaa4740806e6c289c81" +f530cb450a06ef29caf37be19bf02c37af2c4112 = "9c5eb928d17f74d0648f4bb5ce150f4f10d578c4" +f75f579b0e4476ffff8736ebbd900c1bb9efbb1d = "7809bdaee09efcfabd195fbc327f45d4947353cf" +fec5b0044a495fe0a776ead84bea6a9cf3828c14 = "74a266d8e08fc49161e4920764e9e6732e66afd0" + +[9a9c4646-d80d-55a4-af4c-84afa59d2e13] +d3f2ddce2f51afb9e8868f0f6e6575ec55ed1ba9 = "1fc3018ae8f0d8614d0f69e1372957bcd984d9b3" + +[9a9db56c-8f71-5460-add5-cb450131785e] +bbba01633f6fac8d9a627b7c3fb22346f4f4a5d3 = "ea964c958d09cc4f0e56c68ff80c26f6afb52ab9" + +[9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a] +170cad9e26326d6f6f664912e46b918b2f83c5ea = "ab31392bbdd4f7c254fbeab8fe9ee470fe5e5f7c" +e2b851582d9fe9384a6e49bec3b78febf54ae10c = "7f5d718ea83a1c14cabc67c0fb967b5259d00220" + +[9ae72ec6-68ba-53e0-b5b5-d14fcaab5b43] +03003e3855de1c8e8de609181bc5f5aee98d3cd4 = "c53fa6ebf721d07d177fef532301e5e33131c09e" +2369fddf274ecd87d13af68c55efecd4c8dfaaec = "83e9d3d866f636eba4237ce7343eea63759d3310" +39c0a4b8e7316ecc5852f3a7e0d200e53bba4c62 = "05c2fe77cd11458f58569aea5eac6719f853b88e" +4a13211b7537c48715988bca19634de71ca76a55 = "24334cccd0fba2154d2eb0b2ac2ea54f58b33781" +4d4134afedb12a3e36047cce90d75884df1ca32b = "357cf46e559c1005ee12c8af49d9bfe67f0713d3" +5a5a584d0bfa5c055593cb353326349c8a3d643e = "4dfee2fcedd6afcc2f808e7a8ee3ec036a88b16b" +f5e04a3e59dc90a363d88b0e325ad3899724566a = "01835b39b4ba8364976e0daa47a8fc23919775bc" +fce3f952026c6edcd68af3416f51bef226bf326a = "5c383687fe3d7bfe73991d925b998f309ad43a88" + +[9b13fd28-a010-5f03-acff-a1bbcff69959] +02feb5bf79a749b3fde8c35554f663314909264f = "e956d65e05efa1c33d3c255f8e8939f9d578533c" +103a3c4aa0dc9fc7aae7c92777546290c00dbc86 = "93124746d4e8f24698799bb62f538904cc735d59" +135a2744d6f6373a0d22a2745ec8fb16fbcd041c = "3c066bb1c4d737a66aebddc35a4bf2e2557c0879" +7201daea8d87dbbb18ca081f87d6473d282acfa7 = "1e9991e79868b84c1b0dd0a3ad3025bd0932f664" +7e709ac34fdb1ccd9f35466bce09cf96be80fafe = "d7dc7ced64866b853abb03c9f0449d80d8f36224" + +[9b14a902-7c83-54fe-9277-9fa23d4e9d1c] +1bcb9258d2ebba7c9efabd83cf6dc056efbc19f3 = "a033954b764b43cfa8be58c6389f20a65d492422" +2ba28fe08a7889cc9028fede55447ca7c7c2d3c3 = "1d8753237bfc23e59032009e3b739a512b0670ce" +438e0db14d216a3fbc58809741c0d7a2fa7c0555 = "679e5620ced9e540f21a2bbb79c6fd40ac0225f1" + +[9b435220-3ad3-5d4f-b1ea-1e7b29ae9b13] +006d0c872542f42c845e168dd9bc66e086660909 = "baf9faa9f19c65bb539340d38957909683f76506" +1a752da39d12c73be8bada339376c2a818ebe2eb = "092ad55ed044aa5ab31ee800d4ae5bec526a8f09" +72ea141826c1ea926718f75c7c586cf79fb24549 = "24940fb926dc2f3b7a73c79d1b84754bb8e9d26e" +bfa29b503425812cea0aa6ee21d4b8631a02bb81 = "b4118363c5059c9ae92366c4dd75c49780b7546d" + +[9b49b652-2545-5b88-a3af-87b516beb26f] +3d1fe4443fe292dd150f0c3cb47332815274e5dd = "12fcd99a663170d53541fd72051b2b4624917602" +3e4382757b4ab60e101578ffda4d54a51254a7f4 = "9a1d6ac19e9c1132354929aa470ffde7af3bcf46" +40ff35ce918e2c826b82821ede24295859ad1d19 = "622fe1e238d55093a1bd49f82d9f80ba0daa924d" +5c3d01fbd1914866eafaad1bc569fae4cf230074 = "f3494fada66862c080ae84075dd8f534e9723adb" +628f66ba4d990e8d2028eda8805f03509ba95c54 = "7d22318564e2fa572d7f78ae66e1217c8da37ce8" + +[9b64898b-da2a-5774-a656-fd6fb605642c] +a66ff86a58901564d9d1da6271f4e818c111deac = "28defb4e146093a7ebce0c968a738296b2199838" + +[9b8138ad-1b09-5408-aa39-e87ed6d21b63] +451efa320dfa19eb5fa8e1a829d558231541b5e8 = "131d152eda51789bfb29cfe1199546afee8247e6" +51d2658ec85992993ce31b6f4516d893b42783a0 = "de6ae8ce971e738a0aec3688ad65fdc02f30249c" +809a32d3261fba2050929e47d868f8f6f5577083 = "23ade83258bbbf612e1f09701c5509c5d5311bf4" +abc3f39ef87888c73433a7681ee6545dc551447f = "32d4ff4ec7882fa6ab47b9db71807cce3d6097d0" +afd91ec82293f3f028be57d8887b5e2b4ce112f4 = "2c948950eeafaff9b3516df2ab00bc2522c5f49a" +e722b14e28e882f9ec5eaece1e04dd19cecaebfe = "a3814d50e3a595adfebb117b3bab0f12e2232f3c" +f1a4ea05932fd2a6b1098ea92b49250e2062932c = "2c4bb8a61b6ea04f74eb2badc6d6a50472909913" +fa7e846a12158d735c24be8bed184c9ffc879dd0 = "114cbf4f0d0eca5a732c398b8ddd9809c5d78075" + +[9b87118b-4619-50d2-8e1e-99f35a4d4d9d] +748049ef9f861dde3176afb41d5808802c64972d = "1422d0ea51576e1e3c6c562ce9c0091982b8d749" +be291ccf5da92d9320878aebffa5a60421666d82 = "874b199d93235f5b8fba0f6306a1f05056b923eb" + +[9bb6cfbd-7763-5393-b1b5-1c8e09872146] +061cb0da9b51ae0ae082ce04a14befaa2962c21f = "ee7e0f776075b0547564e83baa098c141074d03d" +67b85cc942dfbcebb86be3df1e2836b046b627a9 = "45695eba734fb8456472cd8c86f853c911305404" +7a052b65c832728a762ae0b178739dd9fcfdf7ce = "710f7fb20cbc3341ab7f236af7255c19d2f64b19" +7a4f97e83c89ccece2ecbea320fc3cb28a3d9449 = "f61c757e68513ed6a11e6911075cb4885b9a2176" +91f75e6bb399bd7f298ad69ed50f735e24784a0d = "d547f157dda6b96df7162f937311e3d9d641171a" +a41017a1a6adf12f269203c3a425760a9211358b = "5f18a53935d81d6ebb31f2f369c60ed0efeed40e" +a8f21d4fc93898271cae79e3b078212df990bca3 = "b4db36fdcb5d7094941349c61bff4577e14d31f5" +dba7ce602f0ed94da95f2f258038e66817593539 = "455bca187747a9ef5760efc5dd246208300b4c94" +eba47b1578f7f30bd84d9db6f60ab74911475867 = "db8f26354eb2917de0670e9e46f8ad6dd641ec20" + +[9bbee03b-0db5-5f46-924f-b5c9c21b8c60] +1e84bc50771d741d19a9b8313ba060a6136e1576 = "7bf3b062a84939c4010009ba4e69b9a12e4c3659" +3f3d0d9249030a9078e3121c27c645efa4646286 = "306742d7d49be05cfd2f9f3adbf574bc9f399a9f" +989e41bb1478512c648db3d5f8972b5c99b7714f = "66b13990981d70013fbf5e5f61bc481f37b67f1b" +f4b7b280309b8b6ec8a77bc871f9939a6f44992c = "d91ad84cf355cec6def160d886257b8231a31cd0" + +[9bc6ac9d-e6b2-5f70-b0a8-242a01662520] +3a7c88f04aad3ed9446731a241af22701309541c = "fd16dddcfe7632f4af5ccde6ea82e634a3e47091" +4ad828442cc3c6e8f1fe3ab3b69ce5877e882fb2 = "2b63b7319b0db9e6efb29a6a78137a1a3516ac63" +a6b5301ac5bf42c3f9208e9acbdc3216c72af9ac = "ead9b973b2dba944a21c5dfb36ac5a161e520d17" +b7899bc231bb3ee47b3ee439fe41966486f90885 = "f252fe2124ee5a3adcdc69aa7764d12c615f4220" + +[9bec6418-d174-5fc7-97b5-85721dcec3ff] +4841d0ac1a2bbb68f2e1341992f7d6777e7144b8 = "e30df8fb51500d954b02c5ec5518a9cfc7dfe395" +69e3f39afed966a2482f910446e509669e3c8116 = "875233dea8cff0657d56ffac1ced4cd066f087d5" +7ed534034bf6c54e75c1c22a077142f2ee22e615 = "691659b20daab2f5778e4c548edf15f634f67132" +864d7ef00a260c1919088d21d70e906a517a15f3 = "268d2c31aa8a9b7e0f2bb965292203c41539a33a" +8e1195dca6cad02bf2bdb365b58376964f0fce56 = "e1d6bcb8e90ea9a95e0266d3adbe77cc0232bec4" +b281cdb688cf57ca3e287bfbc472d94aaea64602 = "87e1622f589f6a2ad4daf9e1e5b63cbec1463fad" + +[9bedddac-7bd8-5a76-a87b-3e0c06c424c8] +3042923c0c9281b0ff6d7bccb44f3ad3c161d9b7 = "b76d024a67c94a7d8066dd86895a6eb33337eecc" +47a2bb4ffc1405a38e5779ffa4ac8db7717b0222 = "6dce80bc17f800aed094e003891dc650bdd4657c" +8126431217eef00ff3d353c4e81afecc454db49b = "06bde0e26f8a2fb4fafb0ca8444285a82adb4d03" +8dbe5909c8dd5c13684fb3434b764dbd368e5b13 = "0b74b9fe7d3cc3e1b18eeef5bf8a4849d1db62ea" +e73bd936b0cd8472bd69f273af4fcd3285c1074a = "622f8dcca41778b349c031c2f0073a692c3e9f3b" + +[9c2e70fb-c67a-5ec7-8d93-51b38135a8ac] +13073b8b3c4c796a3628b0f2105117677aa33b42 = "c2ea3de6316e7e739f98be5b66efc9d83fba2df2" +17bf37d2f90173f081cab19ab00cad0f08e7b59d = "365bc14a9e4c779596cee0886c0bbd53ba36720a" +2530372a9c7fe1cb134c1c93cb01025956ef3b20 = "d1d314b55c70e80f621644ee5d04868cc50f5741" +7a62f8bffe8aebe5998f01944d74d4f1968e5548 = "1c0398fe0c7cdf4b2e2a0eba7774144c32618ed0" +80ac91389d255dff9eadb4a359b10cd2a48f7cd3 = "c9365e61b678a80fc6309c2b90f55f5f21a041de" +8956082b24972ba0f10c94ed14cddd2a8b636fdf = "44635c54f9816400e99012973a4e46545c811e22" +8dc2718828e4b34d58d29980974f026e8e8d6519 = "e04c4f207cdc9b2636f2312c7e5f6ecc806be83e" +9c7fafb16061c94818b491cc39713464fde3502f = "8f91956d2ce632269f6354e5d70d3227471a913a" + +[9c690861-8ade-587a-897e-15364bc6f718] +1652020390e63ba5326c165fa924153b40b786d5 = "05b14f540fd2114252010f12931db5dc2a55b3ad" +88baf00776194c5353d999dcbb616ffbcbad602d = "7fcebb78fa506a6e3023d8f15202e27f20ded158" +adb19d2bfb6cfb3ae74d1c1b814ad05f284a9858 = "0e4ff08009941f04bef7e72cfaa15fd00a01ffde" +e5ccce0b50d7cc3f545a365b6e136bc19b2cd5dc = "3d709623102d736446e8a3a7f79ccfe01c404179" + +[9c8b4983-aa76-5018-a973-4c85ecc9e179] +069f51fd6bc10b364fa1f58b36b21b8936f86e25 = "da1157f236aaee6b0087c60776636bd168a2aa24" +09cbf6454d0b8f5b194aeba3e81fca1c25777af0 = "1c0308cc4758cf6d16407ebb0348464218c992cd" +0d987a8df6f2d3ccacb25988d8000ae5c8e91455 = "7f8d4c3483838d043e370ca1c9c745ffcc88687e" +1138cabafaceb577661d0b191f72aaa98beb02e9 = "86432da91d1d8c3213e42820a6b19dce35b2b3ff" +11b3852f75a73f7bc7ed722e7be879e884c06d55 = "2c9dafe83d722d78e01abfaac5d4ecf64febb85a" +154fefc9766b84bd506860916a3b8ef60198e9aa = "6af46e3fb93e98f2e36cdb2cc4cea9a1ad70c112" +1b555888c92392e9b3861065950aabf369befb4d = "829b4a3428ce3ac70130216526cc14546460cfc5" +2cbe95517d4bc742689a7605c489c920e6b30b1d = "e9a4a66225d9d74f05e8abaff6249f897bb40056" +417c5da51cd2d1db7019b743d1844a16cb5e528e = "2ec3f5adf483712420b38eb2320ed10e87187c6f" +435301f18bc08e8a58bb0ec3dfc3393f40059d99 = "70095f9371fb066849052f01c2580c37715564e1" +4502cd905c6cf15ff2d9b9e485af15560ac7f005 = "06ff5861b4e8f2f510c29687fa753a8bbef8a2cd" +5872c3a35cb88f712b8caf6c1293e1416241a234 = "56a4ab2be13870f4b6ab8611dc6a8f3ad0b9fa43" +7467163eb0152880009808eff5a3b56dae14e912 = "f00b4a508bc05f63c612fab9f6f696352f7711ae" +87e6762c8612b03e097351cd96c981a2cdab5558 = "30b9949966f786e25bd49039a7a5eb240b0c6291" +8bdd8d24f5561ef420fb6e67bc742087af68a200 = "f644939cf4c6eedf5c1d6f59a2c8a08a1d1790c7" +a8e8b85e7e839c36a3f89ff50c41037cde07bbd8 = "f36f927c96f2d6243cdc291afb3332eb2d4c80a8" +b7149bd73084b2e05e2c14e135b1eccdcd46dcf6 = "36ac7fc29c5b2e615d31f837d82c837dd4e236e4" +bd448e97d046e3a806f4d0f73c60b5fedcd4d7df = "c0fdfa96248bfa8fe036e64f070a3d46a546263a" +e1a059eeff593d04817786c79d0b71cc1a901cd7 = "830b61b3aa1dd88ebd88e52f2bed652db758d6f5" +fa863e054faee6cd4acebc3108b115742e1d3cf8 = "8f7a49710b93ae6c83adb9b14dee017e4952bbaa" + +[9cb14a52-7b5c-50bf-af31-3305bbc37d16] +0c053c4322f1bb582e597ff9be28c9c3351dd6c2 = "e82083591a5bc44370799a2cc00df524863f6636" +3a12c07236079f5adb250c61731425b13024eb1d = "5d37f3c3e553a7defc0f5a13c562ffa76f8b7e4f" +88c8823b1e22a6df8ecfa02026a4c1f003cef4ce = "ac9498efd2c1672627f53263b97f233d5122cd8f" + +[9cb23587-5139-55ee-b027-91422c7131b8] +0c6250a01e2124aec399e82dab94b0edc02e94d9 = "de2d9dd989d657365115a7e2dd5af3ae9e04d0cf" +d4fedf36db0b98195bc219efbb9aad11260ee74a = "de600868e3b76deeed3dfe67ceff3717d84cd194" + +[9cd584b6-1a68-5b24-b787-24af5fbbf48b] +1a3f3e5635c756617c91396e4a76cec6547a9bc3 = "c3311dca495a26eff75685ae923af268bdf10c9d" +bea55a8a203aa592149be63b8fabfd92a4d14339 = "a92d9314dfd821693cf0b16aa822cef29fd1333e" +d1d2fc2a7333ce75a93eab6daacbad8635908c70 = "64b7d66df98a7a2477b9ea97f6ac8e7340cfcd64" + +[9cfb0768-07a8-5146-8897-ffaa113e453e] +b264298e1e1f56f319bbf0871a43b84b1c7bd025 = "4ced19221a57d10e58e5349710274c8d1bef5cf6" + +[9d1c9671-1ee4-5573-9bdf-56d4f028cf50] +01511a087c721dbb3be616a85bb68aad13bb8b5c = "eedf143e1572cbd6187b665f5dfa7076a1b8c62d" +04ad02c49809d4a2eda87c8da058d68e789e1a72 = "58eec944de3aa7282752f67de5f9b2895a43ccbb" +e141b82f68d79cfd586add3e7126a20c706e1cb7 = "84d96982e11587785005b440092cd8b8297966a9" + +[9d24351c-2990-5e1b-a277-04c4b809c898] +1203a43cf1c46cb14fc78dcecde320673f3a7311 = "3e062d08bd6a0c0e1d9e7d5fac249964f949d7fb" +19cf619c7107e5f85e8530f849c29389e43cca77 = "a72e9f5b75d2b0f3617fe67c82041dd4a92eb6ea" +7ef705b432ad037fdb9c0db9c8755c0023026443 = "164dbb1359c3da07913fb21b37c4357e1ec3a91b" +ec4a855023e78d7321d842e6d8aa1c9a3ac54605 = "b7d1a520dddc7ff4bc7de66421ea80b9b7c6b16c" + +[9d4a7304-c3b4-5347-99a8-9cc862165b3e] +3ba50f8052abb264c62329fde29ec335d748b215 = "d9b96b346df0288fa148464021e82eaff6e014e3" + +[9d5cd8c9-2029-5cab-9928-427838db53e3] +081e40dbed568cda70b99bdcfe2fd9d2b80f92a0 = "9fd0915793f4f6bcf504ee88d8b2a317b14287ee" +4d99970da5e60f394d8f66064a7bd3d8808b14bd = "5ea051284ae28e1f514f28d87d7675f657f72d1a" +5619b4f38aa64253751e44bb28aa280d1489f955 = "43c65aeba76fab513a4708bf424f3e6e70095192" +78bf0ad10705e219e9a4ba2e94e9b38a0f80c3c4 = "8178ae2119650b54962cb00b4780ca68a1237a9e" +99856a1064fe5042acf10ec5db597c179069bb30 = "355139226d24bbfe3fd9f934010a85749e0c0485" +a132380e51770f0c9eea1c51559a61ffde7b273a = "d050c3c76d523fc7bac6fd4c56c6b7bc0048b4c1" +d20702ee51123e6bc5d9c30fd8ea047a270120f2 = "b716cb443774199f0ee1e5e930bbef2295f171a5" +d74e028bcfd4ab1c69a6509834bf33d13696376f = "9bd72de90d78d153a5eccd5f53a124921810aa9c" +d85a650a11b281b90664a05789f32ae325b92c36 = "ce8b75e2756d6b807657e957fcc1b91a94630efa" +d9556418bd5bbb233b50c07983fb287900616939 = "b4dff059012a351d44866d5390234b8550b4f564" +dd41dce7ad843a57786fd031f5a74d00123f8aa3 = "eb0f683d45a287305e2fb1559e24d65aa4a05178" +e0773437ce09c0c5faa9dd3f0c3281955a5a3fed = "62a6ca74b9c2f637f1a15109cc58f21651f22427" + +[9d70cc08-aa8b-5bb0-a0ac-e009eb2b6668] +13f8b2f4d1fbea5427d3bdff653c8671ddf0faf1 = "3397d4dcf3fe07a08fb54e2ee2046dd9c2974d3b" +16713162c1c9f04febb0d39214fc9a5df6a62f42 = "481807aa1b7bee53d5eec612d1ed894916814188" +1d2ad8ec15e5a6fdd64ed7094178bb2d8dedd2e3 = "63e4b8dc2b183b9adc97bc20188c675323f68809" +24ab00d48b06aa9a4fe9ecf8b1334d7a241ca7ad = "f3fe42c7617c72b3111e73af81cf6eaf59ba844f" +8dfd77a36a57b0c18716ae30f603922a6c61547a = "e190b56ca866d97dae3dde955cb3bc99c1723fff" +a54103c356240278f0819674da9360720f36a3dd = "d4b2f994f2f304b617f2b1819b377513b864b3d8" +c3a82777fd1a09a3563b2f973efd24ac8c088ce0 = "ec44bea3d0bec3692aa93a990b1370e5fb0d2bd5" + +[9d95972d-f1c8-5527-a6e0-b4b365fa01f6] +1c4efb559a22be15004fd8072625efb8474403eb = "cb2f26210851b42f3d81ca811c4032fc93532939" + +[9d95f2ec-7b3d-5a63-8d20-e2491e220bb9] +2e12a6133e977e73a9829f65731997fed45dbba2 = "e9cfb41345f41f0e79aee290b3b64c8b8ed8428a" +53bd1dc00b40bfc97aa6fc7d847894a137400dde = "10725c8e85b87f338c9f390d714c11720ff2b18c" +61fbb3fdc03084cf22226680bd14125b6ff87983 = "414988187f35240b1ef944f9ba3c3417233fd649" +67cd7d33cc27845632eb348da32005de69a93707 = "15932971105f6b638e28c4e3b93a53c337ee0589" +899016651079e50c56b54db6e090427212ed88d5 = "9c42373e5fb2c08219d469f43215a745ac86e962" +8ad4db2292792ef89498f58136c19f0a6868bfc3 = "5763225fb4b2886d04826763dadb4c948418d07c" +9570e5f2e21a3276015f0f8a9371c86f940ea255 = "6d4809736f23053c8adbcdbc64340d6fe6e572e4" +ccb6004aa744dfeb8cea952aa7ee349c488e167f = "9de0228151948e25215b92681d277744de02b199" +edfee3f0b1c037730a03f66cfa66a1bf95701c40 = "c52a6a83efc1b1f6daddf6420b308f36032df853" +ee068295f197804fe91e0b05accd06d9dfeadecd = "6072c7341d8c2646d605cd1741fcbcfe3ce9f0bf" + +[9dfd92bc-d910-594c-87bb-77ce028084cd] +02329d6d0839c00c1f10de82fc11489403fb8ecd = "002668108ba4670adbbbfed8ef99121e82a9146b" +393060b033781bb63481dbb5672548dec2d34aab = "50cafa72ab3e4dbac58e50f312938c25fa265c7d" +b681972a16e6ac244f30687c7e681875aab68d19 = "0f19f15c4d5b063ea17b2e23df9aa428ee5daecb" +ce5315ed07883424d07d94aee16acf45b5eb538e = "7147b6561cde9261b6ab6947a686d1634a545633" + +[9e28174c-4ba2-5203-b857-d8d62c4213ee] +00bdc84e55ae0b2e198a8d50a2a90a5ddfd72260 = "416c0aef5a427aebfdb05b84408e767033fb374a" +03d2499d6aa0dd007a083b55cb06e44378a0f940 = "069f0cf72ffcb3d60c6d3cb77089bd5299c9915b" +0cea5a34994ddfb75c343cf8f1dfb4fde30801dc = "018b4d526230983d8855630b16b824c98f3a6262" +115b2288460c15a1e9d1af23e25f473d672124a4 = "42f06db4431bc89f492cf67c530819baff67f164" +12f19302cc5c7767343a2a56d8f3ad0eaeef363d = "b5bd7330a953a57835e9990bbf3333591fd12ec5" +1719bf41ad0a2b7495523e92aa68cf33a3d3f5b8 = "4dad48ab6c42c7827c6ee58234d8679babed3179" +23ff75735c6744857e484f02c47b32d7515e82af = "0e9877b6c2f217eda2eb1f3175d09d3c272868cf" +264e086062f3c39adba7997f187bd54bc0e6b218 = "28db737a557076fc94db3fec48a7ffc5f410969b" +33a680e7d386c9e1d80ddf055e936708c2470057 = "c8e0809ecc3a2cc02eb949f5e59a2f6f31c49ef6" +3afa9bae8d00364eda4cd3607d625e8e9e6eacb6 = "47300529a079f78d9f8399cb77c27b139b5dd3c2" +3ca923cd0c479a4d2c8bca851f254693ca0d8f16 = "f00491a3d6b5d8162a2b3554fa96f6f9ab8811d6" +4585cd05377e9fa8725ee3c069ce2ee654698777 = "942e04556244ddf77f483972ff9fc4712b8d3657" +461c08f8827752ad2b3c57b4643f4a5a4d350417 = "f1bbbcbef3330fb364b422daf2e03e822ba1e6a1" +4959cd5b60424ef62551dc4acf8bb0bb0872354c = "143fe8aa0c754f51222b31e2825ee679eb0ae6d2" +4a73bc0fe656447e24abee8a83b5a5bba2b9a7d6 = "09a3116ab9b319b6b6b2aa4d3655566aa8f63dfa" +4d0398f457caad09dc908b704cdd5d22ea3a49b3 = "e17ff1f615095138220eceb70d4b1c8347bc576a" +57991d0b4c66dae97ee7d4a617921570e72d3984 = "6876ad48d788265a2af7fc51f6aaee750f0e0b6d" +5b659ae5b984909a734c71fe9c53a79d07ab2e4b = "a4566038b57c376c539ee08557d1333289955afb" +5c503c281869608baf94b4fb1f56e3c2b34de974 = "cd8e66c8083c4d115a01a941845c18d5545271c7" +68ce26216445bea3a8862ffee2f7f48a08b27c99 = "00aa428de09f8e34a8dfb88cea15e62f3e2024ba" +6deec8fe46bb91242fc7cc1f02674818105c26db = "a9618661aa4e5d8006be3daeb6228d47c4efc665" +708a18028f39f575339f48d3f50c818171910a98 = "0949e3aaa8098145e8109283bf1b2cf5d072c920" +742ee7e1f8e9e1eb16386c9862ef3e7413d544c9 = "4edf0f23f9127825025c76f83cac8c77b996e738" +75444ddba47b2cd4a03fb35c6287f7f726a33578 = "ed12e5fd25ae5250f4c17fca7f4deb5fa24531ac" +784716b66db7290ed898ef7345c9eb40792af9f7 = "c26ef084172bd9d9de7ee17e623bc6131339aacc" +78bdefc54a29660302257d8a9d58632ce2a6d5b5 = "ce884faf2781474c7afda13493a7bc131982821b" +7908e25f056e0edcecf4efcc1c5521fe34f05ab3 = "071ee8652a79514fc761d3ec35a0ad5e9c251aa2" +7eeef60901208e8ffb0ccbd557ba7cfc4cb6f28a = "57c02c408b9d4bfa03507d2182dfd73006e90140" +803ca7975d8b5f43610fcb7504f09f2e573b82fd = "fa93c2526f944ca6d0432c82ed6b2014e5a8c3cc" +80dddcd36c59703729d945e602d0b9a486a94406 = "33b53ce9b711659d8a95e9639fba5e75ee008547" +842d763f4bf0447af7b7db0ee0270ee648ae4c92 = "b15cdd3a5f4bf0335106c5d04339833a04530f50" +86ba965cdcd4d1d1604653212ff06774bfa9f15f = "b011ae14d1fda81e5fd292812bd7b0173fb47279" +8e436e7ecfdae04e47453259b764737a3c9da10f = "4d73fa6b4de600d1dbd10258b872a8f60e52681a" +9258820a0762fcdf7956cbe6d4f2881fde466708 = "0c936d38449bcf9e37c5e7c66714335702e98739" +9ab6b8e6b47bc9541a4f1370e35348dc6fd2853e = "d3a0bbccd936d1efdcbea737ee7950469ddd4eb5" +9e4ec6c4f5821d7ef21897da0883852ab24753f0 = "903de8bca196d10ef47520f15585822916ee0057" +9fd47f296b754d4db481a3cb44fa6f8d99e3927e = "ecd56c3be8ca9a8ae46485800fc8bad92722c2c0" +a016a93a40de13f932d5d5468604b28c02e0d383 = "d09aaad2a51a09860c702dd8aa378b94aad43ee6" +a4841d98b2b2e5b9c74c5a829ae26cc055af1044 = "1436e387f7ee5aa5a7dbabeee9ceefa5f8471f80" +a5fc72d205dbccef9d23fa3352729f899fb055ef = "10d766722bfe003a2a5d1a4051a6e5ca87bead84" +a9b34c136eefe3d75b35a49229ba011ea51a6f5c = "83497c166c23b09d9f833c7d78836153ca897894" +b0d298380106c6dc67bfdcddd56333b7f4863a61 = "168533fc004ad21f24b96809fcbe999fc2812d67" +b12e1a21290f99cf1fc4d5f90d86858bb6bd629b = "2f0d3c298e5582218b6afee1419da65d0909f09b" +d1312ce4ffff0aa84ec542bc39e4b5c5a6ba15cd = "89b6961505dd9fe3fafe7461ab3ac133c7ca08c3" +d2777f762912ca94db433d4f2017ada82e50416d = "576293ccd3fa94b489a6e8fa9723322961fc7cce" +d57430a7e55546b9545054cfb5c34724dbed1795 = "36940570397aa776d998bb593a3ab282f9104258" +dbba2bd83a0ff11f5d9933eca10341fdc67be56e = "998eb778709aa808d8ef067d9d3783631ba683aa" +e03c07ef728a0475279407b7370e0b05ce862a63 = "b18bba2a494c440faa97852c0aea9d45cd3f7a6f" +e0ef102e3a160d62b2a23ab84418d290a9e24f8f = "1f780fe32fe0fdf5387666ae44a6586b70e75f3e" +e2553e57468d5692f7e13f45ddc888670bcbbfda = "d3703a7b565b12162cee1f88784a3a857b0505f0" +e932361f0ead9cb68873b36694ff841649fe2748 = "7af981285e7e89a442fe64bf5ed84336fceb8d35" +ed936d1c2e7cf20f532e02c35e300d125fbb59ae = "24815a2f751fcc1e2d5ba6903b4710cd1c1771ed" +ee1eef3129640c7b41eca0430e0125c79fe842bf = "1b1e9e5a615d94b55d0339159e2c97fc7e5f9bb3" +f29943b2cd167e45ad9941d0b619d8261e8ef3f4 = "6a4d8f8a554993bde11d5a01bb202290eda75061" +f9d4b990ff5bff388cc084ae0a9cdcd53fd36bfe = "5e1c6d9eadedfa7b98e4b83baf7a4f9af66bfdff" + +[9e3dc215-6440-5c97-bce1-76c03772f85e] +02269a3d6b6ff08fafaa2135df5730b5ad3f8e79 = "77a9fcce27e52daa857dbe54e649e60bd2792983" +06017cb782bbbe9090ecf2de878ee621237c280d = "bb1f0c626c87142aeddc9af5b05e119673e34380" +071dd22c73d93594896419dd5f372427d8c6efae = "8d9aea57aa769d3fd05a50311bdc290b52b8b9b0" +07491c39d3b819f65f36ec57e3892238644afed5 = "f11510f0884f9cde03b53f60264f71f0bcfc985c" +07b7841fd703844ecf69b5392bc5241fae56ee48 = "8a94c18469038429c3e4a4fcff3a689b13f552f5" +07e5faeaece6c07e18d41028a27ffc3d0e8958d9 = "be181dde1e3a640c8e7826cb909b4b04ddc30598" +1c1d71ce182fe28433d05d66f534caec9734a37f = "8d743f6348b74e72b982d6a1e5dbdf16c3ad1de0" +1d1841a1faf0ae4999f9d522a5c9715c4692c193 = "6ca67972fad2957402bb2934820864f7aae4462a" +1e7b06675a340b88ddafb5eff4c5fb614b2c6524 = "a6240c97848c161a6df7660c851f6584317f0e7b" +218e2450086276004c9b4f13b9f3a653b7274067 = "66c1c2392c27df77f03aa3e17910febfcbee3d0f" +230e1df3158a5f273cc4811d3e925a397f8a897f = "c1b5ef2434a5e3f937087ec294c6d080c6c6d3c5" +24c595a38838abddea935b2b84fc016327bb0fce = "458a8f37a680179271ea75d1baae52b7df24845d" +2dcdc61eca9946d62dc72b6f24bf55e3605346a6 = "1676503235e2ed01524b7140300b2b4afa20dea2" +3165705a0145302c48a8ba9e81fce18d7ff4ca8b = "b28682aceefba54b582bbbdc46b9c7fafed3ca2e" +34ca0c152a2a4f3d12de3acc718f2f36cbe5dcec = "0e75ea674130affbf75d4b0d8c0ab236daeb2e59" +3c3feb47eea645a803afdf6cb66af2a614983fe9 = "d669a757d8ec97df52c87ae3eedb59a2b95d826e" +3f8bd8171a0c85f7919b6ef9084f5fefe9409fef = "0b7fd232b040f4ea22a8a727504a97711e8c5593" +42a73fc1a038ad73b5f7f41faf45072a1d6c186b = "61a83d88153342250e8b77ad39f919c1dddfa2de" +42b3c03efa9fb15b778264aee458ba82199e81b6 = "30a7d5f76e785740bbffcf7cc0c462d1e543b5fb" +4301ed5b9a8b11346851235c30f46b248c841705 = "e1dd853f953c47f65423ba19dbb3a82d1d13cf03" +44496b2052fcb3ed69c61348790867a6de975431 = "94245d4b52afc3eda0a5e750fd9d7d808562a6ba" +4828125aadb912f4128a3c399c9476f148c71a37 = "ad76e09b7378f08ab28e9cdb53c5465ac00762e8" +4e98aeaea389a8a0428f1fb951a9a1291327093b = "44cacd1ea24d6226f5be4a666e804b1e219a65c7" +4f4343d6f092cce541c722c16e5189589c21e145 = "a25b025aeef6f1b93dd4046bd038d2e25c5e387c" +63138d3ac4ebd9c343c0e082d8a45ce17740b95f = "aacb2b98ba47845aaac147055b1a41a2eb8377f9" +6a3c1c688666c54532aa485c934a67d77966d4af = "5ec35386aace00859337ddbb7ca56d221eee7579" +7175ac58749958077edb50e40e4880ed89dcad19 = "2f5171b48145039feb564c9c6c0b6b3e1f448036" +74b23d50d1f8894d3323e2f2843f3ff387ee7631 = "ff756e97e79dd3b970586be3d14d842ada76a09c" +74f9c9b6c71fbdaa29b5283805ca02ccc5c889b2 = "b9f56a202508a6a2b106b4805d011bdca5191243" +814122e0c5b68a585c28732e9f311d05007a9dfe = "388a0d144dba62f80ba08c51be4a5061ffea34eb" +8220cdc547082e514ce0a80df89091bf9f3b9fcd = "c60c645c99e3c04667f53e735338739544dd91cb" +82337d7b82855bb135c50f30cc04614b64bed243 = "2d75f2f61033fab18402d540846c734bafaf27ac" +86704b39b406b1509fe41ddba0f70a5c0ff30961 = "8d3969500f36d227cac10ba6bfd5436028cbb297" +874d23a26f35b2b6a1a116c31e717d274ef7357f = "79c4dc0a25206b59d119d7ba813e4acbdb624f5b" +87acbd7eba6bea6a413429fe21d133afba9760d5 = "a8fea54d45b7766492d1ec319ab83089ea40f059" +8a333555ac7d76a560aee6b4df2f2604da090f8e = "e09014f12c8d78701f13777f606cd5df6ead0e45" +9247dac058cfc08651daebfbab2c0828656caa6b = "a8380370241431657c879885f3b2575dadaa6ffa" +94eea28160ce9c5bfac6dfffa8ba462030bb1dd4 = "bfb7f678a375ed542f44c9328f713845604f5b1a" +9acf25cb8a09382b3b829b8c6d475136ded577f0 = "daea6823a9581972b4af90482cc67bf5a6628cdd" +9d88f03b45eb5a199fc3f0c9f54411f2c147ac66 = "21cceaffad916f7a719fef35d75729e62c44fbc7" +9e433492a582b82dd4ba61b764663b05a02a57e9 = "49e53a15c1544d9128b79a27cb43cf51e84ac70f" +a06dd10a7502b2d8c3efc139814e9a4813d3a00a = "9f08ebca15724b964bcb2d18a5a2e929d095a5bc" +a23d0a53a3b20832ef30b21f413320836644268c = "ea849a8d4774ebb6ed7b4f56d8b9f5c771634bc6" +a5a4ed72b3a21a8af3a098887aabf699bbeed689 = "922beac136f8841778aca5a595ee9a7389b42041" +a6af977817cd11e8ae2ad0dc2de28b273a7b67a5 = "b4cd73b1f61cdc011b36bd8ae77757e0078c869d" +a8c28306520fd41289f64a9ca9e7947555899eb8 = "c9cca7fc2dd1b2705d5e1829e9e1675e6b5bea2d" +ad708f7a3137822c28dac70450768fdb557f2aa7 = "772c977a60cd67392f1c371e26e2f46fd2d980d7" +ae9473023b7eec6e27a5d01a47e178d43cceb6b3 = "c0f58533e81379691468c3bca58821f3c9f49caa" +b8cba88ffcc86a96c2e2da3c973ce6d475174ab3 = "f795088a69a4bb48f7216f122caf7bfdbd7e6741" +b8cf90512ea6ada3388bccd9e2061d50b80aecea = "4c7765ffa386e61a00b9cee742303cd2e7d780df" +ba2e73abb88a8cd3640acc7679f1782dd747e2a8 = "007af2c199107cacdf333b7dec061fba818985d4" +bc2dab1927ad632dc2ce2139bfc9d83acc0b7f15 = "72717d9b80bbb1c5ae1d791e568851ba2da14a10" +bd329eafdf58dba312f647ea2cf400a788de5944 = "ee6f1741bbd7cde62b30954593d11206c6cd2d15" +c2b0b971e6b285981d98e516f3c52ff656199a1d = "4b43dd925d4a01fb0a27983dd64ba126430e7cbf" +c334780d4f80a20016d84aa5e24a972be669bbc3 = "746583bf09e36df9b756d3c6350e6f4a439635df" +c390fd4dec87298149de962a6c98c15e325575e1 = "6e7b3a8ea21467eafacd7956651971f044941041" +c3ef0ba3341ce21d61bd0ca6de96007feb195c89 = "694d63f65974090c02271ddbfafca9a59032660a" +c7389e37647d88808329b81d277412f66670a057 = "5ea15d8625cc65c1cee1628a10ac1d0078a4514b" +c8d6b1ff738f0c2b098610a36d7e8b75d8725366 = "193a0ad811abc35044e4a48211735be7c33aa52a" +cd2a3f99cf73530c0704d540ad2aa60e017cb6b6 = "465366351f6e76678f45e8d5141bad5d957dcf81" +d39db57c09df9698eea9cd02b8ea580ade341dd5 = "db1692ab5dd6111f8477ee6787af90c7ba9d9c80" +dd47e557377f7e209f9debb5888f52e436c7b3cd = "188372280e89227d1542b7133998f81037523d5f" +de8e1360add131eab199968a3bebf31aa25745c7 = "fb51a0a329ccc07b5810b1580066366dd1778ea4" +e3dbbbf8340064a71ee07e3c9f04c1da23292b19 = "2c20a8689d4c8ebe97d043324559555126a3d801" +e42766c323f940a902f0da50bdddcbc61848a6b9 = "f8f03471822e8b92cfc857d610acf939f8b5af9c" +e7c79bd45e555825e8b39cec4444d39a4a2062ba = "73a44cb61ea2e3ffecb12f02cd007e660a5ba46a" +ea16eb5ec634852b2c9e77b3416546ebb95686f2 = "d01f0012e00d8a9b05b634cc9abe9e1d7973acdc" +ed1c21523fe66c4540bdd5d93a4c2899fac30db8 = "6164a8bf801b230a0e980e7c0f8ff1595f00a4aa" +f5dd45385b1f2ccaf73d8996cfd92d1bda69e2e5 = "cf509406d11346cf1bb4a9cadd9c7029f5f48974" +f5ed853d332fa646d3b8bc3f3e4199b364091e22 = "e68aeae44d721c53bbbde984dd69276ffee9a23d" +fc08218dbf9c680f423c3a4e8ca94cfa74da8e25 = "48077c80a01ff6651741c40b08fe5a131f08c2f3" + +[9e511cdf-bcf0-5b3d-ab4e-3598940ff39c] +1a3e93b30b0e63ecd11da293c5e880ef7da35c72 = "89cafb048f74e7c1ff598732e0d7b0b33ca2123e" + +[9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054] +35938a7a5e55ffcb9b035d79a42a4c7ac7c1a8c8 = "6b6cba66373b63cca856f42378d7a4f008eb4cc5" +469ddb5d93e52c50cedbf09e44236b182addc940 = "401812c6f3cd6e54a2bb37c2c5c183d5e538cbf7" +50ec26b777453baa2f08943ab8bc8f20e18d409c = "71b8cee11368095fba700b2baaf68edfcfa57850" +6fe41930a5917b85c5c48309258f43829f77e55d = "a8599e26d021ee9c220fa654db21864b6efdde96" +868c7b6925e8c2dd5f55fa77a5658dabd39a34f5 = "821994ed549abcfd2332650d9b693113bcc521ce" +a8fc40cd027635fa365d254943502ca09ac23d60 = "d0f7a200a2c544a1ab0443134393fcf940d15293" +d060565193ea8ed821a8d7d44fda7c7292f46160 = "f080c8b8e010361c0716be3f9731682e916c57a9" +ff16ad35d8acf035fc61d85d73f54a9e3cb8ee49 = "a7d50756dc2f235c5b46ad8614911ef62768ca56" + +[9ec21e9f-7406-57b0-a65e-294f80374cfd] +3ebd054c9e96d27202375cfdca1218283892c240 = "bfaeba0c60ef4f088aeec1b8dbef17e81ed90074" +400d935ae8e8370886a33812bffdf150a77a111d = "8edef04285c013e7b0b37e7bb787ae97d01936a8" +8b917c7306b2f3f5ad39a695baae348aecfa27eb = "677b973c3f4a87533819530cad02f3ad0b270358" +bd17b0aedbed08d544c0d43c8dd42250a28d21ff = "2f78c4b9eec93e974502629a0ade6e789fcc8ae4" +bfac721d77e79443dfabb4e3936bc5071de3a3f3 = "ba6fc64fd367f28bf2b3f8346b26a889893295c2" +f5be87433d6297508150e3b2b050e3786fdbe1d8 = "15d40eff1074e48c382b7a8f89434dffe31eec0c" + +[9ee2f689-5b39-572f-ac38-e7a530c1478e] +00495f2d035f968f96d740ee2ab8490b2ef7591e = "795b1446f86bd69b50a0548c91222651f910f77c" +088c0c60909afd09d739f254f9cc37d019718104 = "87197ab392937f3181626d0abcda9454de4323ea" +0d1f59b2533767f6201438e42d9ddd03c383b9d5 = "8bdcde9bf32ea7f6392cb6fd36de2d95c9630c38" +1530225bf6babca9f7e6fd5888def19eca8778aa = "cca790b34991a69d78f52c94eb917d57766d1126" +21e4a995564b442087e40447db0b21007b71b9d3 = "d838061a76cbed56a2ac4b99f297d18d707f2edf" +32400a55a9714fb19216eec10244dcf6c4a1069d = "6e01e31fbc59b20ac8be43321e11e33c989f5714" +4226ee8cfa3ed82e058643fe1abc434ef6023250 = "6ddb6e8839e752ec5a2b9b4b33d17c0ba224298a" +633270f2592ad3c753315944050be71b4a0839fc = "3dfd99d723c9a2f5f795da8e6a436bce91ae95d9" +654f35c6c350636e6c3e25465fda25f68179e620 = "e2e3473b1730608b9289186caff2ed51bad7423e" +69bf2158d36e9225083769ec3609478917e064b5 = "e33d2baebce5b1e08c1771cfaf9a66936faf75ac" +7be248de7929a611883432239bf4527398e4fbe2 = "aacc65ee6ec33b67b1892fa4fe4b99a78f6d3cbc" +88e074079a9723b228649d2f014ef5d6238c06fd = "8d0e6ed984d46b54c0c6a7b9f6888471da204ff8" +8f165dc2f209d9d3d77c862e15c120096375d513 = "d343e528dc95a4a842afe38d66745a3b1721ad13" +906e4304d554dce57c29cb2a369ac86585c8294d = "4f5a663c86ce8b10790ba984be9d5912a528b0ad" +9aa84993ed3a9823548b63d135afed766ddbf105 = "eef4356cb94db90f0ddcaedeeb98a1bb60e5a533" +9be4b870dcf0852a517d8ab8ddd4cbf68d7953cb = "b291ba881a89356994bf9fe7a1b36ebf9df8f111" +a364f001eac10af91bc162e17432d44e4366f1f1 = "42b0a2f9f392f4baba8442a0937c7d0791ba43f2" +a55ecff6b6571b9099ca163da3be7d04d1114797 = "84094192ab0d62c02d15629aa037e74fefdc1f33" +ad432068bbef034ecbac1401f158bb525c6e9f0f = "759d2315f0d892c1f8fa9c2daeadaee62eda8fcf" +b319e149fbc17849a7b3ae21a6ef870b063b0440 = "d6a2662b9881e892ecbdd44bfc8957921ad116b9" +b59dbfb75fecdeb0a4a2054aa433c68fd52382d1 = "e207148f076554b8902031dad20726ee2e1f6d68" +b93a2a4ccecbbea291e4e248736ada28944eba54 = "4019625c6c932e539680aed5f2dec064a478c483" +bfe46dbfe4725851142bc7209b6e67bd14226a7f = "fa09b75337819c7c9c33c8c4ff0265846f5b402c" +d0a94af391fc5689c90e942fffdadc849e08bf6c = "b9a3bb578f53d16ab170fcf7a69527e9cc4ab4f5" +d430e873754d8e4fab91ce426ecf160fde775d28 = "41d03703906f7fc6bc331f482e173651e7ba9943" +d6b97a48cf7e4c9d44cacdc93114ee8db6cacfd4 = "3a5985dba40003e6baccfd46820fe51574db173b" +d8ae4e242226ad92a95cd8662b4d15f600c9a893 = "7df0952a06209e7e6bb9e0e774317d502628054e" +e845af7203aa7bce901ad7122f89e04f6b896260 = "6a77b5e890b584188dac4bac7f26f84d5dfb4f00" +eb90cc4321d2458cbc8a8cd35d85ce2c5d222ce6 = "47b1f969456efe216ac5c11ab9059a7c3853a66c" +f894ab575437c133a7c35890da3c6a06b4e36e65 = "04b209d386c788445c88a76d42e232f377859711" +fad1962b25c57197b2d9a5bdfee45fa2de8c0cb6 = "ccf39a4bc9426614349d05861bcca2d8057b2a49" +fb7b1140a2216a9211d132310ba5868286c16a45 = "5a897ddde44a29ad25c668cd908fdb4f852f6b3b" +ffd391330c9ed8af5c33b7b9088f71a178282e0e = "bdf133190cc82d9aa78aa285149447386608cdb4" + +[9f1343a7-0369-5bbf-908c-557b4757cf4e] +531c5e68552726f6ad4f0d866d53e958b8cf0cc7 = "ef01181514ab7b24ac6d62e5d97fa1983419abef" +802023d2b341bf4e40ea1cef28f60e5abf7bb181 = "d3500441ebb535e966a19c30c776eba30423ee08" +a2b3d7006f91e7c7f55e31a38f720f67a6e5a025 = "750d6024caa999c27ae3ea353602c0c56a5d8dcd" +cb3f3dce04b87f82d2fee2cb2791d7c498766a42 = "33cdd1a522161e81dab6d0bfe766092d8980c4ba" + +[9f4a2347-a52b-52c3-b18a-5631cfb5128d] +06b23d9541673bb4e2cf6c9006548073f2fff478 = "3e5821efdb68976eaf5842755c3c860a5fc09919" +2783c3ff2fe1603edc8e56ceffa35fdaccae80f0 = "00b61dcd29b642255522c987fdfc50cb9113dfda" +a475106a1cf2e9f2b2a1407b44b05bfe762b59f6 = "b7b727c4609e57532cdff17bcdac54cd95b1c9ee" +a890b49b4c3e1534ebe3ee0d12b02a4d8044a261 = "4f4cefabe9d2f844b93d0559246d1455c077ad2f" +b940902fdd4c5a9e87f0fee84d79efc218e83c0f = "de20f52cf9c4d81c32eb5b7facb349ace9f50920" +e95c11cae95a0fd0f060dc5c053af7384b6bb78f = "0f76f3bec23a3d16686fde5edaca700fa17a1b9b" +f9ab84e72761a229dc1ea4a8e17a544fe9de3886 = "75bc6b745af79591cd68f1ccfaab6d8468c71966" + +[9f57e263-0b3d-5e2e-b1be-24f2bb48858b] +32b8e131651e9364ef5cfa106ee86f833aec5087 = "6743def9cf1324af9affcbba08e0ed1c046fccd7" +9350aae4694c3934dc299b9cc7ef0823411153c5 = "a4bc92f5041b14e4164e110f03f85c2f3c48d88e" + +[9f826617-01f7-5ddc-9699-a00d146ffb6f] +ac2a7269866e9ea2e4041ac74b0df0f53affb8c9 = "0991d696e46908a65ee4d0a274399b82a540af7b" + +[9fb69e20-1954-56bb-a84f-559cc56a8ff7] +95abcf50f3b25de1d9b5d8e0e572af16af3522f2 = "6222f8728491a42d4cfb72699bf89ddce5d260db" +9a989b804848bf5f08a312ad2b67b71a86015080 = "750dd309e53b51e63884e3a9309d45d07e854ea1" +dc648d31d29726583b5c0bfedeff716b45a6f4e6 = "5df9b142e099e2000bf8893b74267b5829bc3e40" +dd44576e3ee52ccf9e7aa54818e5c1e5b4d238a7 = "c57f743ea76e424f7ddf2afab7b104e1c7a5c131" + +[9fdde737-9c7f-55bf-ade8-46b3f136cc48] +2298ea3f2def5511025f064be6c63843cf5c5781 = "ff950034c207d93cdbd49c8f86932cc995965232" +db4152af36a4b97e7327e344aa9e42d084947229 = "942ef3d8965287100e003f288afc5a778241b8ca" + +[9feee581-b078-5644-a8a4-58372fb796b0] +54da15e7bf6d52c1191ad8f02a87704c722a9c9d = "8bc4bd43831911b5928852ee8496feadbed71c7a" +7e06269ebdcbaf95cb990420c20b7aa2cab7ade6 = "44003802f03d258569e35314c2e5d7aa69bfcfcc" +b248642fc07218a7bb6bc999f6f712159e0d1340 = "6a5148ddb8e14ecb98c89addea700df053146387" +fe9e462c58138a9c12f925af5ec9a1f68a069887 = "cbf77a0f7dfbfa2d6029a18245f0e04683fc8700" + +[9ff05d80-102d-5586-aa04-3a8bd1a90d20] +5bdf86e23ef2a12f6c8bc0defc17e1802561bcc0 = "4c6ef704927a0af9aa6b4ce89f08256047ddaf2d" + +[a03496cd-edff-5a9b-9e67-9cda94a718b5] +4f4bd7f3bd92c8985e828acb2f09018fb6604093 = "61e9e78ae8f37bfa50391f9a5213765db77ec20c" +cd006577552e0e63c28e1dbc938e6650107f1d2e = "a943994258cb88da6e3b333514bec905cc60f9a9" + +[a076750e-1247-5638-91d2-ce28b192dca0] +008ec9dcadbdf2a7361148705fc71e92e7e461c7 = "565c0a101e534d56889c989bfdde4b89e37aad78" +185393cca6a395c6989a124d802c92a810a6ef91 = "c6f3ec1f8213c6724d3c59edcd3d3486099709e6" +1e0037042b365523631c63bb67237a5d2dc6cca8 = "debe4de4abaa99f96df1a774225d6b9edd6f9f32" +1f92ca4e7ba36bd399f92e9047ba22fd90b78ab7 = "e80f533f0f23e50693ff9a7c486ad6b3abccddb9" +292e3c74e71df0eb88a51f1d784ca4365a243484 = "093ccb2d7223c66a56c849743bda308a7736c39b" +2a371851aa6d673f30e4891d7535c1ddb098770a = "5c57648f4149f382d4ea07b2434940d2bcf8eb63" +2c21d3a619c0f8f14809ab809921e5be56cea81e = "8d10c443c627012aa4e5bda027ea684170b9e94a" +35d24569d400c810ca1119e339c5cf090cc07cd5 = "852d425281743ebc98fd3afdd8fab014711f7f63" +35f0c919a609706d4189caf29a76013488269e18 = "e14fd6f904e7a477528f721fe15e19e67ead95b5" +549bc3680c3c9931a4aadbe5bc3bf063cb835a11 = "e202ae69c3d41512516b8a01c652a005bfa1f8e7" +5ca36740d9d39cafef78aa6ef2f8ab7f15b0518f = "5aa33b87b3910a03f1e507f1dfed8a0bed8253b5" +5d38ff84602c8d5110c000c69af2ce3f42fac78a = "72eea7fe13838d8ee4ac822727b04f6a33fe4807" +607970e3954f88338912943085cd29f65126f2da = "4fa0edfbc197ee27b0878c5aa17e1e32de919b9f" +6a7d7321157a291157597dc44f4f2a068e6795cb = "e47b48295bddcfb481de40575b37912339dfe222" +6ded0d07a619416778737b3c087cdbfbecd64ec5 = "f29efea128834d64f4add6597a9d843b1a086897" +706af21f76cb375ddcbb36ad9172cfca12ee52e9 = "4eccdae70fbcdb0a7fd7144869bb37faa405f2b6" +74c6759ac73ca54f92c74b5457fcac5bef7df32e = "3f3cd3f6eb6b7000c258255329918378938965ce" +828e7d27127f928a28f15f65d6fa0cd22f9a1728 = "82cdad67525f92e76f0f8ba0234063f75cdfe290" +8bc871dc89caf6bca76756f773efdb604791b782 = "949eddd5aa3aa5ffbe7fd72835a18649d477adad" +96f94a26bf53320d95f2c8714d25fdd0ad10c8ba = "9e80d73616ce6d2c2876fb5455067a48243fe671" +a07d7099b92753a876a12ddede2265b679550cbe = "88976354ff94d8b86953865c3c07565f7b026a9a" +a0d529e19004805ef7722f3fd6f3374635a8cf95 = "dddf0d8007e4716aa26f040575bb5087e0fee9f8" +a4b7d5947b93d4d48b821fbe9a944ac3baed188f = "e945ed11f25ceff5f07d9e7da864299722018dd9" +afdb5df0d3d235e5be10675e8f90068781822520 = "c491258056c925b680ffc917f82d5e9a6979efee" +b08458350e39435b38c9b6420eb558c601907877 = "49d04954f3c257006719f1f54a567fcf4bbd1a9d" +b42fa9399011afdcdc99e901154f74eb869b687c = "27b47e272b2e0c74d9b33bd42a4b1afcb704e540" +b69e3239efd83785522aa407b06b2ec59894a405 = "47818ae2d12ebc83f5876e5b5034e6f79325b016" +bc54be1a9f0e5877eadf46c5d345ddcb84574ef3 = "ecd7f047c7563109eb99e3e7b4f35842462a0e49" +c1cc49692676549836dadef455bf54ddfc979817 = "0559d01c628b27c80bcafbbcf309eef511b57bb6" +c6036588c893f9661369068a07b28485a6dd411e = "f6b27f91522e15b0fb0f9fa790ab038b0c548b62" +cdd190f8e6c578ff8423eff992978517238be721 = "3b48f746e631d75cce9733ea104570c41224f5ca" +d445611db7dbfaa3f71db200c5d17aa265fe4ef8 = "817cee7ce7a3013ea303f0ef94e28ddfd3c1af07" +ebee362be54160a11e64054a2f30569b7173cfbc = "72206e0518fb27f7f458ef77ab90c10d155ebfa7" +f3bd416168c2effa84c1ee15d4359fbc0c664a6c = "f51e513eaaa41260b6b34433c5d5733c55256a9a" +f7b1864001b018954c53b09165613c28a65bf326 = "1e1bea190136031da3cbdf9f952253c60f760e13" +f87845a337e694c8951fa7cba81f28d53b2c9d82 = "c8945ac2c5283c0cb381f147274d08419de8e09e" + +[a077e3f3-b75c-5d7f-a0c6-6bc4c8ec64a9] +02c440d405ac8c049b6e351a54939f99425ae049 = "d1162b7cabd2749dea71065678130998ecb2f8b5" +0e7f78499860574982db4db61209dbd32674f83f = "bd8dace7b70cc1b6703e8f09c60eab44f0d15331" +0ef4b2f87be5ff5fa3bb28e8de12392ab6409ff8 = "9dfb49db17fad01303431b9fc0a5949fd6d0d9b8" +138c102867452683b82db4579c749a5f36cde83c = "a624acf9d9713306885208df05df5cd69526855e" +61cf58991f979eedfe4899bb7c73075f824c0225 = "1f1e6f3bbdaae6500b85947095b164b8bf31ae33" +694c3e08fd2ec4d6125ec2760c494790590d570c = "cab388992d9bf9cda8ac614e4b814f5ad69fbaf0" +816bda7442cb323784a1786314c6da687f13fa68 = "97b0eb21784147b92836f9317b42b89bedd847fe" +83123f357fbeb3ae38d6a1f401d929865a590c65 = "0023f44c2ed62fc3d722dcb8c5176bc0a50e9eab" +a57d3ed8e33a5ee6595a2dce7ad78663be40b359 = "47c881e23749bde2591479ecfe770ce153882367" +ae0c4ac43d83368bd0392d7b4205a51a79fa3f46 = "f409c20e150e48dc6bdb9645cd1c8a3b70c118b5" +b0ca3a0d514083c7c876bc85f40195de6daa1729 = "17487e91f9cfcdd651682840fbf6c84395d082f8" +b570b8cf3833825e14af12de231624f92c476afe = "b36c02354a32ef5fbf3242e6574ad76bf5fe5eba" +d60400bfd459c4019c7c40c7df1eadba9fb79743 = "b503e76fdeb66996823b4f966b1f08a5837b4baa" +e8d4dcb213b93f330ead1955a6db108ad6d2b417 = "2fc41c3ad0701ed17c34d6801f8fa257bf44850a" +ef037a7865ef322872e505f29393d332c6ff8761 = "cbbc12393d892d936d65dde97c35b05c1e7a855a" +f406dc3ec79950e63d79215f068a1e650e9f66be = "df8afe69050fd53a5237a13beb0e6dd951a41441" +fa6beb452c1afe21b3ffa47676a25538733b5818 = "e9f2594dbd2490be8b6435625e1f07ec168b8f1a" +fe37c4b3f2fb4d808f5b681d3cf1fbd079fb7f67 = "bfa8500d6ce2eab7e3c47c00f4a07e9acd858a90" + +[a0979ab6-dee4-51c8-812d-69046455aaa6] +1699210de0b488483bc6e6c443af1b275442a6a9 = "76e398554afe934c134da5da3b0f893408b14534" +4d91473348db4bdca6c82859c27368c6f4131981 = "942c79a6b92943859a2ab68804d1a5ca14803ac3" +52c70aae9c53902f3241b0c3be0ec2e40a743147 = "0762649233dd8633eacacbad31c2486c357599d9" +a7bff688d983edfb716ee8c0e16b3db7ae18314d = "590d895eb7d93ea014143c0ee308dcc8ed326310" +ef86983ab8df3b35a8d1749513c0b4f9d304af77 = "ef4f06cd356488f851d75c1dd7716cf007470077" + +[a09fc81d-aa75-5fe9-8630-4744c3626534] +0077965035a7f8ea4649184b75863da8c168b87b = "405d015965e14d695e816416765047df28ed9e93" +1d974dca954433ce592d5c7f9f7f8765c78a5270 = "97093bc25bf85cbc24f2f8dc05e7cc2cf461ad96" +23ed55e46631980e98f9301e5658646f0c184876 = "c345685cd4c9537ab0bfb2a8025e3574ce0b9761" +2b8e45fedc62240a3371d6aada311743ec26bd9f = "b660524a9a5b4f2aefa93fe1d045599214a1b557" +2db10f8f137ad7682a70cc15ea774b64bbb2ec4d = "ee4ffc2ded6eeb27fbeeba7b087b595390773348" +41cca88658f48d343817896985f8ac672842f13d = "41bfd22b3c43a9c16e4a417517a15432a8174018" +421026f2af11a07b67d99168e588f44a849c330b = "fee4f5302f2a751f92db3a42317c4773a01d7ca3" +5bb26fce4dac8cbd458fbf6eb5c2a8ddf58f5ab6 = "dfa18cc27bc5d078c031f92e49b1645dc7f901e0" +6963878e45c0dc31dc41637344889f705ba95fac = "735e3e000542e96a17f899b8b1c9df936b1789ff" +7dd9acb178d0f83e697077399cb122b2ef89769a = "7877c2e97911961dc7387d5fedfa3ad75663ddbd" +86bfc0ff9ca727df058f04fe28c90fc9a23297ac = "883a887e7a07cd01ada7882224285c4fa795a1e5" +88efe950f8e9ec36d1563522784b6e91e064d541 = "6e23b3248442a6931a50e2e80b52fe786b0580d6" +8b01c7e1f3437e2c7e75e43ac7701f3eee2d0430 = "b2a33e79c43cc85608f7e7b61cd78ec0eca23d76" +94c3f76c3b586bb61a2f0c771324aa7f321191f2 = "c0953cd0ad97244120b23e279d58ed2d1bfba838" +a278c6d92cb195ea153bbb5f57ee27592bdb82d0 = "935a43938a6754376fe1509ebd072c3e95f7c51b" +a3527941afb91414b939db259100da89723dc7a0 = "22e3caa72cd3197fda98e6c5a4ae9ecb5533abc8" +b31e927e9a7591ea5ead2e8d0ff33acb59381f1e = "7018f57e8bd2deabaaf4f2fe2d1b574ef24edf46" +c686fc13143744e43c19ad856bf7f0b8ee6f967b = "560d21351e8167f8a3a9d942b5a754e687a7311a" +c94238a82d185c7c713b206a3c40ad4e420d314e = "b93b0a39bf090461e39a504e837488b43a6692fd" +cbb9fb341e4d1f351cb1a724a8e47923eaa3c80a = "08866d09c55e089bc9eee4806c7bef9bdfbee9d4" + +[a0b5b9ef-44b7-5148-a2d1-f6db19f3c3d2] +192a3fd1b7696ceb4e4ff565cbf5b9725c881cad = "7998783d3877797ba00a30e706ca0ed326c1e06e" +1f3ad87cce8e06f8a61fe2c907ea417d788becda = "dd04cf771de29c25f2a80a736c0200399d0b610e" +2fe24c9048e60f61f7b93061e1b82f8e0495b0d6 = "1df05327c97c016eae774f0e60d9c51bb4f38c38" +cf172795ff34bb98ccdeef788050cc85492a192e = "f45266987aacf45c42e34c15df0bd8eeb8a7a42c" +dc67ebe923041e49140b8fa9aa95798dd6020a71 = "3d0883ad1f419bccd0fdaef6decbcb1c6c532f09" + +[a0c94c4b-ebed-5953-b5fc-82fe598ac79f] +478248290fe247d08a2947e37e62a5d0e55a8c7b = "7f06455da334206513e2de2bae4d82aa537752b3" +6b46832f6111e1cb6d33c2786b991a21210af20a = "5b91e0427ef3cbc00b3c9a302fd357cf622d830e" +815cc1107873ee57e2a3f8adb23cbd95666a3f2a = "671cd96ad07e82750c0164727fa9de35a4384559" +939bd577b10a1620000192096465cb1f7706003f = "fc8eb9505fcb3e7fded9eda02cdc812b3962e08e" +9b22ffa3a83a3c68f092e01a1562ae7f9741969f = "59a7a865c5e799c3044ddb2a58ef3af668b62b45" +c93c44370c1d4047f8f4b7cce115675cf81edcdd = "bf9d741efaf4c87febbf8ed576a3e5f71e4917a8" +df09164701e109432be6a0720dabf3a7646eb8c9 = "4684d9773da121d76ac46fdae4036bd1460414cf" + +[a0d4ced5-b29c-5395-b614-ca030a679c4b] +8cc43a8bfaaa940d3bf3432e3160bf08750a61ba = "95f8cb0f0352c9b67c02461c14bd6ac7b5eda8cd" + +[a0db51d4-8652-5775-b4fd-a48cdb0f6f1f] +5b52e27834d774356e1f52ae7df756a7575cab6f = "70ebf6d7b9e6d51cf41a6a2e685c90f22990617c" + +[a0f608ac-68d0-5108-ad9a-0cdca73324f3] +104df63a5b9de2991793e1f99fc117f037b72357 = "f560e24e984a39bc4f21669652c883bb0fdb64e5" +130740d5bce9832808619fc785a990c34a6b0c32 = "19ccd052cb0288072c55adebf4a356dc391f56ea" +1e7d1e791df66620dd477989e67b22d19f83e0ce = "040a5d4008e6b65f796873af4a2b446e4add4e09" +3f0587e428284c36b22dba135c5aad92e4ebf8d8 = "9cec9886a65f830b805f985265c4640dd862144a" +65aa4a133568cfa194dd4b6649066bbc7fce85ce = "18f8088460e510f28850ad524571efb35e2a0d79" +683e4e8bc4f7fd24250a914e119f0f2eca17cf2d = "f8e9532ad3b98fe1b670b307ff6936e2a36893e8" +848d8368181e14988f431e8e831900cfa83c6433 = "39b1913f6ca1dbe2b9d514f600bd8e4de6f7787d" +988e663f64b2d7558d7b76a88712800bdd96d1f3 = "4c61d44345e5a9727567bcbd9cfc1b2115670bd8" +c007be1f529039d2813d001e19c11a6030bf391e = "006fd56f45b7bdcbf76ff0c07ec76922b383db4f" +c887cc47723cab9c725a2029dc2e6be2540c4d68 = "5f5a142b3848076bb94b55c6796ac8f2b4aca712" +eaa95b83a90d6700f4456702aba94c88a7284d20 = "088ebcd64a48f16f03846f038d183643bb67dda5" +f0a7393e8f1a3fb49b103e7ae719d7739e9a8747 = "42a3ba8a7a8609391b89f5223f621f4bb4dee459" +f4810ea5241f2347ee525cd221775fde9a6d17c7 = "6032f86b6c946ae0d94b55f6fa30b91a9c411a20" +f57c854fca9eb552aa3387c0a7e86c584369d5cc = "49045ea3acbe2cb2b246bfdd74f937d22f261638" + +[a10504cf-72a7-53fd-8489-d9cc60862a4b] +02f6d749326a8d8f47316ed2fe4717b4294d891c = "5c8aee1a9ebce95439e57b240a0a62649893bc2e" +127127a5b055e832e66d37348674bc602655680d = "8e7f10b07ab1fdbfb5f59fcce5a4487da335e943" +2fd2dcd6cc09052e9799096a96dc14845aa587f7 = "71fcbfe7d47c65a31610f856467ad5c18e6170fb" + +[a110ec8f-48c8-5d59-8f7e-f91bc4cc0c3d] +0933b9da0b7939f78a3398283d9f2586e594ed99 = "f86da552299ab098f7b37c352225966136ba0b29" +117ce77950d1271ea1e4e9ceaa70651d8e180be7 = "df31bdba779a57f13274e4c3999a7a98fe8aea6f" +151846bf4ed0ddb439a7d396144718dde548dfce = "ec666d863f9023853d59ae61f31a0a03d3f3ba63" +1cfd96d419329f3618c4e56da609027c36411e8d = "6e160756169d77e051af39ad4060505ae95043fe" +24e079ce7999a7b6a6c4c8203a89fa68ed3dcdd8 = "ed21d0661322eddb81e94aa9c69eca01fd18c2fe" +37458717cb347b55d298c311404b5f81740f60b3 = "91d17e6f7449900d22c66f4dd898ef2558b979c9" +398c434d54fc47fa5362d297cd89274a2f44c410 = "cbf22bdbe743d2947b889d42d4809238b5e992db" +4e736eae369fe2f2baf1a3832474cad3d06eda9c = "aee6c5fc1bb9c9a4a8a452e86a5ef163de41f631" +619f268f172f795766df40bcdf783e160b62432d = "e4b6eb2ecc30385b6e87483d459893d794eb5408" +69e8be6ff94c35dd2b1df909214b456992a17df3 = "d44ff7140b2085f4561e019403f57d93485c05d7" +8274c6d100f2ff4f224227ace7ecd949c54906cb = "9366049041c3d32e0f18ac4cafbb649b2ecde0ea" +9489be634b1e06b747ff36a84dce4a500d23a10e = "c51cc90f406528934f1cc6acafbab42a160f44ab" +95bbb42b1e946b1810c045643e3f6206bcb2e434 = "2ea92caab1a381c18d3e9a8b5e2035e8a87a3a74" +9a0dc56f0915ea89e3b5cd9c875ad00ec5b9eb3d = "9d13d46a00fff0256e548858039f1ede9ded9be4" +9b0c9098e84fc9eba0b27f7685f96eb23d4c98d7 = "9a0787d485700c4e09cb8a15481d4ce30511e871" +9de09ac6a0a5456a7aa2503e4c989442f1d61878 = "0fbc7edb1ded69adf390a9f8421d17df784dd9fe" +a59a103d9d1683898502f7f1baac4157e30ae906 = "19805b8dc97863fade93af4867b7cf6a0a2dbc46" +b6be8608f68c05f5692e1bebc1bf2acbf26b1f05 = "8cb3592d591be33c378c7ae1ff576557ee0f0bef" +c2d9ba8d3fdf48d4c7ac093b47116b20bdb6453b = "61dbf4dcc2fae0367273049fd8c45301c562aca2" +c98b72d2b082d0c4a38012f3b06a95cecc5e18b3 = "91c0b47184bbbc24114d748b7a2cc9817cbb94b7" +ce3889e1a2edeee071aa810a024a56d258809075 = "a3fcdf910e36d4df76d8300286ff8828b6a7a0d7" +da8c3264c83f44f10e269c7b5fd822e258cca079 = "eeb21478ead71314ac6c869f610c6e6e2b2ec5dd" +e0cfa3905446f34b601bf6469a944e31338137ee = "0d139269bd5bda3f4eac1222ad15e002612deeda" +e139e6d43da9252e8dcc54ad337d3ad26b4cc578 = "7ec86d29012f9420c5916b52622cbec2de5df182" +e37deaeb24a2900bc578f03af300bbfd73f9a2a7 = "a56993ab12a5ac27376aaa7091c456e7ae232d6c" +e455d3e1492bea01cd15a63cfd358277b013a6d7 = "177eee08cf753dcf9458a4e8ec5fbc908a783d4a" +e66ad082ff324ebaea7fe8255c3afcdbd6c69a73 = "428c95131872a51317602ae61c4f75555301e4b8" +ee13827c58355bfb7ddbe36eb84415a31e966474 = "a2d29ef8f2a8c340977f8f5357e885b12001d9dd" +f121296805e5917d9c4b828df84459c4da303cff = "3b697fff3b143fca958d78330ba6ef667e456d71" + +[a134a8b2-14d6-55f6-9291-3336d3ab0209] +02aad4c3ff776a4f279418096e8ecbb1095a7948 = "bbfac494d5503bcf3f469763399b7fc9344a69f9" +150f012b81ce9a706bc1da3cbbebd04a2ffe406d = "0e6b224661d38b4381311d1c37e9ba94937db156" +4fc185d8009f9f7d6c3e14219fe7742f072842ed = "05cf3f7597e303e0f4d2aadeaedbfb8162367fb2" +53f455efbdf4fd1608e8e90bb6488d2408e48275 = "74cc189d0fac08ca9ba5554488913600fbc8f80b" +6b405b9cb07c9d6e38f1b195080c7e69a92bd1d9 = "c376274a8a918df92980531552e3f5c0aba4be3d" +6eb8405c3ca99b4ea783e1e6b0972c495deb4e6f = "62fee80903e4aed6d4b0aa97e58da0e6e3b47446" +bd0745c543ad4b5f5c03a6b459b3c9a97edef27f = "e340038ae5f12e873f968c701a59457141a9cc0f" + +[a14fa8ac-7845-53f2-854f-e9bba4c623ff] +5ea237439733a7c89273824de37055784032dee5 = "358bfad2edc9b6eded3aedff7964e1d4136c8deb" + +[a15396b6-48d5-5d58-9928-6d29437db91e] +00a8b226f92ac650640eb9b2a9d0043512b740d0 = "65fb28077aea36110d8975a386075a8e6f06b121" +03aaf530eff350024a96ec7fbeecb5c537877d8d = "dfcb9e8601f24b6bd0d2765378a77e41cd5ca2b9" +1009b5af8e199a730f7b194c9f50255464b66f91 = "dcc44a0c03dc826e5910b9ed23bddddb75ff0c88" +20b0909c550c3f9fbc0b7679d355e9e5ff9702b1 = "ec9e3fea8316c018965aa2fc9f7ba77b329238c1" +260dcce588fbd0f58eb313cedde819ae67ce7f3b = "04a48e423ed1272b9f227f7fa46a07f2f856e62d" +2efe94f2c82f951c115f853669daf05cea41908b = "7a23b1a9556552acdf8b157e5d6c22aa1d46b9c1" +3232322cae4b7b5291a7493c9782762c5bffb6b6 = "2a4f1f2472146a235da4e6f78e76408c72884f6c" +3cfb0d63c3647bae7a97dae273b4246bcd52dfb4 = "6c8e47af3d7fc405fea4d4bbded83778d39ce536" +42e4119366b0f85ad54e2c349ec1dca10376e2e0 = "f0ab687eace7d94b01158be9f7906fcf3b09e470" +4b67a06ea5d8f5588d10cae3fc42e72dca1e5166 = "c0b86354d5698e557a989b1337f370e9186c2180" +4c498a992d6b54c842e63b7d5ae0af2e973f00d9 = "7e7bec97cf49df6ed0e6c8cbec67f752e9c505c2" +5dcebdba2fca01370fccefc53b7045fe89adaf3d = "5762a77c93403e56a54d5642692638a256bf2d1c" +6c8e5463ac71b416098e56a242fdd9448f2c76e3 = "591ba38a8991deb3d31863ac55eec4f0953f9efa" +743f216ffb816d248a4f68a9ffc3cb264662b03f = "704f517cdc4657c7cf03519e7b961a799aded606" +77ada53848a1d3c66923b124471622ff3b175987 = "fd6e9820bb1800913c01733a3446eda49eb42a81" +7b159a0b89e3ef7bdf6d4405048aeff283fb1f56 = "9d8e9ed0b4e9473c20641f4562d3435fd556c78b" +7f31ade7d0c555ecd201438592510ba289154faf = "609551342b7d46ca4ec64249654ca77be5ed35b6" +7fccfba53989a4d540992dfc612a7c57f3b76488 = "3384800cb1d4397abf07ac8b259200c994de1758" +8d038179835bb7bfa2217a6c4d3bc659f1d19a29 = "a87704252648c92d3f24dd4472c9853c0b551a0c" +9619b4aad89787db03865715bd4758bbdd95b398 = "18021778eaf4e341cc7562edad3a9390c50388d6" +980b34f861cc6f8b6766235239b0127c18325063 = "52e31acc833c81c4b6564616ef4c3866c3207bc3" +9863176e4ebcda12945570fdb73dceaf7615afeb = "6acd8ea9cbb8dc0365c37ecbddf012560769ec7c" +9b7c70a772a803b8d491126ba677c6e9e146b90f = "f9855b9dfad82b481129b3f139630b572a98fb4a" +9c952dc70ccb1ffd559155102659b9d6a6a62b99 = "7637002727a6b41d2a7290bd36605c2479d2c9eb" +a732ba7cddb3b65ac4e45a84c7634ca5b4a7352d = "c8b89557d13cac2bbd01d2c4868997ce938d9215" +aca71edc237df101ef3581363a8834cd68a86053 = "e80ac28f3c5e117a42b1e046ac0397b5e53d101a" +ad980232fbd8f2cf998895375fa83ab4e043ae1d = "bd9bfcec08e7569cdc7671001baee6df32d1d621" +b605197f544792c5e9aec1c4787d77a6775b997f = "848e18031e4e59a2ab00043c5c0e122f4d83c18b" +b994f83714321afbf7436f0ae3f23a7fa598c7d0 = "9abfe73896b36423ae7f732101b6202ee02cb571" +cd967eab38497e29f0af73097cbb5c88d4774953 = "412066c71e83b2f4b0728257d2d2ab55ac37c602" +d22ef46f4a6a33345cf644b5abec9ed9735229a8 = "63357c918520646585c61e0dfa344e01de90cca9" +e607f19e1abcae105c5608a8ab0143543414dbd3 = "9733f6c7a91d92f241c7f7b189f8a7b135e6f4ef" +ff57a1ef6189dce139d60f78ad799cb90b1b811a = "e98adcf45d0b0cd31d2a5ac074e4a5666a233137" + +[a1957575-6125-5dba-8f92-417d2d1f4a46] +693437c9acdc1cdc5071841fc555b19b53e51577 = "776cda2650f38339252c65a41223c3353f8231fd" + +[a1a74555-535a-5d6d-a4c3-4176040b5154] +cb2626c003ec0c59af21ecb576f36ca23665ca2e = "a8ab4d5a95ae59efe8c642a04291ac47f5ef0b08" +e58cf68517347a77e26c6846ef1306df1d5cdc6a = "955b7527d83c4fc7a57b962e142d429c3a19cf74" + +[a1b4810d-1bce-5fbd-ac56-80944d57a21f] +289b4a7c8cc839da1e4ee372d5780ab192715de5 = "ca24dc122ae9288f5107193587eb6d336a7e5892" +5fff24d4176dcf056da1421c3c01ae631da54df1 = "519aabcd1475fe76fe79706cd7b8f39654f42d4f" +75d0c84320017e5e0628f7fe358edafd1ba531f8 = "3e05eb6008bd019a430733d246f7ff0837c8c6ef" +c2c095fdacd8e51e3c7516088345ff499f73eb71 = "f795e9c166e2c947a97bb6dfea55ba666de24fae" +d183515906916a08a4f7efde9dfd33652582f043 = "c7277a919c2f262c4ca26e1583fcadca74339689" + +[a1b8beaa-0f25-52fa-b34f-c7db7ae101e8] +19a08d3bbe26a5f32eaa7c872520fe1bdb8db844 = "66a8a0a8977a4e3c59e9186473553e8fd32d5bfd" + +[a1bb12fb-d4d1-54b4-b10a-ee7951ef7ad3] +3e45484ac5b03065e09041c091b87acd1f570cff = "1ff72c6213895534e9c71795da461a70b297dda6" +da03df28b7404695b44f511df499ab45744aae02 = "85bef780d099acffe36f30f7801e3b264aee99ac" + +[a1e7a1ef-7a5d-5822-a38c-be74e1bb89f4] +6f5b0b604b685d13bab4c66ec4ff8e3f66431362 = "514139a6e8bdbeae858516236ed74eb929ca98e0" + +[a223df75-4e93-5b7c-acf9-bdd599c0f4de] +05eb3283fa9877ae62550d27c70e0918956f657e = "7e608ac82da035c48f3e9b1b9a27716e4078d27d" +13f97d121b3924ead1e5c7d73158db2b0f340312 = "29a9473fbe8052a0b62296debcc20a035398c736" +1b4e2c050ffa65238a6082117a99732d7a437ea0 = "7296cd2f69947dc69b1ee98bc0b24ab291e68fe3" +1ca8af6f0750d17b4a7332731a758d81ab12c0b2 = "8fb5c19f359d60b94a795ff78132e2e5ef78f1ca" +22278dcbb97503c640419194ada5c2b98875d426 = "9ede48122321c8687b409a7026ac6cf50b0f41df" +2abf20bc447119d43c444a81c449cf2d87696923 = "ebd97ee4e9bd96be66f01e29abd24e3c3d566d31" +30af92da5fb9d9fa1f70c8478edd71ec01370be9 = "53fc089ec44f476235afd651ea659cd07a7452dd" +393520a9ebd02402ca0609e1b1b95af7518f8b00 = "c78fa0c39860395f7e4b73a6d0fd2c19d9e218dd" +397b12196d869192a669194f1919c95cd898a1a3 = "37fa1756a51602fe2fef1c50c19e104e0e7bcc47" +4303fdecb001095b0515d44e8e303edca8dbc133 = "f8489344cc2341a14d4d247e88ecf87e8e840d18" +4d4417fd437dd5e11c5c00c0c38e2920f42d1ab5 = "75a6c7145fa452f467ee55e9d195905f504abfab" +5e6cc0f0c7ee000126f629bf0b02fe1668dfdeb6 = "5994f5598fe5d5784dbab3e00ec15b3f04c406c3" +6c016c65117140df4b5cf56074375616ee40094a = "685ebd8186aa072661495716d12ead43d0363b7b" +7ec2c249bb2ee360a9ed0c3f3ecb3e14ca7993b1 = "605b25b5640ab79b5a273f1958b4b4797c2283f8" +9696f272dad0e3a9e972c790bc8b70899df2b141 = "6853090768c72c1914645d715d0a2e4e442c4400" +ad369f3cb0ac22f7e62f9af92493fa3e94cea228 = "4b91638bb5def723d4819b31219f70da9619326f" +dfa72bc7675a47b83d5eb0cb8ecfa8fd0c0e3082 = "3d5093abb1b6a1dbe76f00027e91ddbb9d353a44" +e478ecbd879f30e21ab0033f10c70fedbdae2050 = "541b43f7587586b3a76354024446ded13728e56f" +f62b8b676fd19d6d89cb17214a4cc8e195758158 = "5860388e17d909815812b93e2754b5c58d36bb27" +f79056a35b679215d097936a4d781d97ba0df5b8 = "27da2a12bec7467f132aeb87c0fb25b7cffa07b1" +f8f5208f76c208a059de9107ca3e292b832a3847 = "fe4d7f47d676768ca2aa9fc7a94de79d128d6b72" +fd9fd2155c495d3ce83ad3edd0e217fea1adc60b = "3b205ecf34731ef8817fb18597cee519a723ae30" + +[a237f610-4214-5ca7-a9c6-385896804134] +07e9c433c31c67ba98079746ae10ecea57bfd7b7 = "5c03c4b098c1e8bade8371180a95755684448cf9" +4499f26063e607d5b831d59f34d8fd7f92e80b93 = "18ea275c3f878700936cb4e7605f4fc109037583" +50fb74fd838e1c07f1048ff2341c0a0d21a57a24 = "0985a38a059d993003ff5177a83ec2b32cd265c0" +befb676df29fa6e07b0079aedf0ff0449865c31d = "bb8c4f76e4c1f7c668f97ed1a5ee59a1bc187f2b" + +[a2441757-f6aa-5fb2-8edb-039e3f45d037] +08f64bcc43ccac1b10382383db40942997c6669f = "f84a51f12422e0f1dd60392af5af80aeac60a6f9" +1825a8b2b5e03ef5ad7b4ad55546aad7793f0437 = "9398e881334cbaf645cc9cff905954dcf44888d4" +18ae966154118060341c297c3185a86db87bb928 = "6ce753a14e16e414626d052e625c4be8aa656732" +213dccc70f372bf55009faf032624ec5a20afece = "88e4e359a3fae11c47fa64667aacf1b0c0ef28f4" +248bb9cbf7e0c0e04248580631f3caa49ee1b044 = "0157e91b034a15afe4c03cea3df1759b6255518e" +2ae73f646a8302651e17cdeb13bd1d241334d597 = "fc89c492747fbabc17fb4306326d59650a86014f" +2c3f797bf81ebf66e8b8f01860d32b4c13add99f = "d9daf0617a754794eb0ab2ce019ff258aaf0fd56" +301d5ae6fffb2e5fffcc0dee107489c6e5ae820c = "7dab933c99e01f7b8fb5beb09cd0692e5526bb18" +4057b79cc56b74c0d7415072816197e02096f04c = "4ec7796ca6b8ca5e87e37b62ca7035ec96fdc39f" +42717d813ec977d7e6008e2156f52102a01eead1 = "5cfe10074df26d98fc4afcf4ef57f310660863d3" +466bccda85dc994f5b34e7d8d86e1635fedbaf69 = "e1a6c62cad16f51ffaee7a7df6f49e5f355e3459" +473386e5281a1179c24578e674891d0bd8a1578c = "e5e3fd0f2f4fb6c00132d726c4bf74dc7531494b" +55660276c717e335ee46874eaf73c3b8c50189bc = "b1f3a83c55772e8aad2c26dcf3e517ab550cf41f" +56011df34141cd8bdcba570ac05a65a72c9d2614 = "f4b81c5d1b4435697e92dc95c0eb4da49ee23980" +586c3c1a1936d336c359b4c586b40f1ddd992676 = "a29e776d0c4adafe753bba5a452c3cd15002d5cc" +8074660593ac535e260a31c766996f2199698c1d = "164c0453cd9e2a06504d5645defaec25ef96df8e" +91013c528f2c0ac6414936c385d2cb710119453b = "1c5b0366857ecf6cd48aee8231593bd2ada900a6" +9b1037c21c8a0f382a0e694a1ebe538b70866511 = "5e1af12db841cba0baef5e955d08dedae3144565" +c79db3a61d4cb3f699e673a52d55d31de4cc4491 = "1364a70067f9a86323b3a712ffd5e27bd0b7ee34" +c7e9934e3f6f7a76338d0e4b7325ee1223fba457 = "c7919bba4c9dd30b489ccd1eb73b851ea5ec383b" +cc82e0d742386cc6624e9150007f44707d646add = "d3b1ba2b885b90ed702c3d6fe8e1cde7de6608fb" +d047768f91ac5053244ad38fadfa78579b16096c = "1f7f493552253ed092646224f892070a3b40a9c6" +fb2155d85b0510af580723690376d81de6ff027e = "e06dbd26c1c8e4ffdef520f9ad8a71c69775711f" + +[a25079ff-bef4-5fe2-9193-832aa4475556] +0199b0ad37ec539b05b1400560a3d61e0c8ff698 = "ed86cb30e780c9cb842a35e0141795fc3b89fc23" +162368c3ae695f10732ebcb5d899bdd8818ccf55 = "9f4db4d3a97bcb432bcd3db7a7182acb9310ddb9" +27768836ab3eb27155c24e89bdb3498b9219a392 = "7d63f2817d2602a20d8b05f2230807c3cb00f091" +38f933e3eb8f83d3817f3cc392687b210690d4d2 = "8b3e800bddce48b1e201e5f9dd7196b86b758a0b" +467784e848c7d8e7c2c990e72ad157da70405242 = "ccc68b9fda9305b38b09289b3a1df1d8182560c8" +69a66dbc4f1195fc3c3224c7878efc87334cf142 = "59ce0ed69c700563e054a2c3de77d3cd6525d1d3" +76ed7f1f11acce91f86aa25e634f59066fece6b2 = "5175eda8902a69ad704f646e7fb04b6b37a52c0e" +d0796788b12bde1eedefe1e4e711bbed0db3e91a = "0e10a187002c12c52ef9d03991b7dcbffda6e93a" +e2bb8e46012de7a87489b9c7adfdd01949dc1d4d = "de55cefb316ab44d3565d12ac9cd48d79a049e5e" + +[a26e6606-dd52-5f6a-a97f-4f611373d757] +0fd850777ccf0c2c1f12644ac1a6eceb2a7e86f4 = "014e6f31c55947e9179e0d19aa3a309bc7fba4ef" + +[a2af1166-a08f-5f64-846c-94a0d3cef48c] +058c98b6d84c001e0b638eeac49cb8e21492285b = "ff7612124fad017b9e9ee35c0d2da458aba8aaeb" +089bac6693ebae82ada460b76ceb82c088c3e29f = "51bf3e8dbc1e2baa9b1cd5c595f55941d683621a" +3e666ecbc2d835a2f2d9ac80b93edb538ef7e907 = "608c0174aadc8f92c6bffd66e87265ca9d5822f9" +43fc48346355cc61f7ff550625edfe5a7a5cdf00 = "f76b3ffdcd5d9693552e754c75dd3a46a71a7068" +593642f67948bc6daec17c55cf6480e64e67800a = "f359e8a86e2e160901417317d4015925275b7e72" +bf1e0f40b7581bff75223dbf45a89a32a8064eaf = "d3dbad9b287fe2f612200ac06212702d66db11e8" +daf91266f9219402e4d4a026d624d3ab445711b9 = "e67a760e9e4d42f743c71708e5cbc7105054bc69" +ef81d90faa962b756624df33ff736fca120dc8c8 = "54daadddfab6a0c6db0a4838bbcbd7deb6f5164c" +f1d03f88da605d1f820ff47dda0b7fc5485e21c2 = "36cb395062e11241767daad4f750a3c6ee91a0ae" + +[a2bd30eb-e257-5431-a919-1863eab51364] +208d433662b07065e929ca94d4a896bb96021827 = "12ad1b97d62caff11a67851d649e9cbe40e53e51" +2993c7b9a8a777fa4973d920807f8a74a45e60ee = "ac0d7642776eb98a377f6dddc47a0b30a82330c8" +3183be960f53f7782c7ae6134ea25bb5905d7f77 = "35260b8bd67e57d583c82cfb5850b292a1d322b3" +6d58b9f19ab2d0b551c0b77a251fb6ce1d9b5aae = "de0e0ba2325f55cd90bcd57a98855de50657642a" +792878d7640fbbb3929a757119baff0663cb70ac = "890128f2f855b8585bb64eb5036991bfbd707541" +9c22ed2cd0e82d0f4af46c49fc85a30d2968a2d4 = "e64e150fefc4d8d9d42a36980e09b5af6281f46d" +9df73461782241f89f2a93edb507290743c5a340 = "bb3297d50338b4272dba9981b5324a165fe7acf4" + +[a2cac450-b92f-5266-8821-25eda20663c8] +220b57b558b1086da747e5b8cd1c5b7c628b365a = "7fcb72ca682d8b45699ac148bcb59f620f3e3274" +519d0fd18068e2cd24c952696501580e54ce7be7 = "3c8a7ef1272c0dd3336d787e19c0278e5f4e051b" +6ae86654fcb648faf1fdd84551b6075730bb3190 = "78b38feea1780da7a8da38e50fdce8cd15fc89a4" +91ea1e9db60d6e3f2dd45384afd5cfb279841bb2 = "6ec29c4e6515bf203848073ef1abc3f57d0ca649" +ad1245fff8568b6a8c8b7b71172f9425e1c407cb = "c922a877edca51069b0312177d64f34bb45b7aef" +cd4da2ef7f173bac73d7d461fd5509c6e0b602da = "290b34e77c704a6854486aecc97016a609cc2c70" + +[a2cc645c-3eea-5389-862e-a155d0052231] +35520bad8e2528cfee5a42bc6e3ae800fe3997d5 = "e4e2060551318e1901bce201c60496be88ccdf04" +b3cee81b4f088a2f6821fa2d8e7012d8f4c1ac81 = "348f57d4037ef839d6c0e74bfc92e334098218ae" + +[a2db99b7-8b79-58f8-94bf-bbc811eef33d] +0a1c2b1a5d62b715ae3e919f39a10b316fc8e631 = "4b15d3e799fb4a4c26f1e3731d9cb686c43011c8" +172f50377c1dbcb1ac85eece62dc7a719ddfdef5 = "c6db11429cb9553c3af32f97d47b73e477f6ce93" +17ce58c18958ff73f52ec4641bae3f4e3000b2f5 = "1099d2f094e04cf9126e79bd7846a2d8e5ebca0b" +9724c7e55f40bc450d3b60721d0df2adc1bfe0e8 = "a47045a7318da0d21058d6c3881b450399820edb" +c8852342945ca1762646e6f324d692631ef87e9d = "8ccadaa10f5b820926be2d82de95b7d9a78c14d2" +c9ed1f616e3b6ad8d4e1e40a9d35b2361af1ccaf = "4d99a0c0085acc5687fa50729084b1890265c0fb" +d40a74e48fc1822d22b128af0bd76e0c27ec10c1 = "89b7c4e9aed1e73673e7e02cebc4ac6621e482dd" +f022c37fbf1be8b5414a962ece186d6971e53b10 = "8cd2c180ad36cb455508f90aacb4e12714ce9665" +f90253139d31d9665140eb9a2600c868058c1424 = "8a6347b52a1100f1dbfc941a4ee2a39f57e436b1" + +[a3219271-55cc-59b6-9a1f-6f3111928ce1] +88d9b36682c1395fe31aa208ad2b94e3f5eec7e4 = "f984810d82a4686afbedeb714583dcf00908eaa6" +ca94080a7ddd5459835d20cba5d0324c84f29652 = "f9cb1a4be71d17e84f2edd119d35de9a23f0db2a" + +[a3a9e032-41b5-5fc4-967a-a6b7a19844d3] +24b87cca77240cfeaf1cfc8c671daf3299c452bc = "cd0d1edf5567f78d1cdd987423ebe10fceec291c" +2f217aac10d0e48e77eeb437e82a11c203dc2255 = "0ca3d3e47d9bb14f32b8719afc593428fb7b387c" +78f761b0655b3e2150ce156dae3c75058615d36a = "dd3ff64fa900194a1d615c4ceb482d6875a2624d" +98910e59f5f3d752b54132ee90fa7972ccbb7fda = "609eae31812f79216f62fe5ea3b6152e9586201d" +9a298654d93762af5071f97ea9dda82e2b2446fc = "178cd3caa3d0fadb7ed8880e6516a538f4039310" +af8c3cdfd84c886c12ed3e6d7d6d0862d3a91293 = "d22572372437dd0833ea16546dca9c28475f8845" +ef10a0fe197c02bc589819c3fbac8162e058b049 = "b864a5caae0480089de9c30a092f429bb873c24f" +f2f9652eb882fa475d9182c85febc5261a5370cf = "c7e4c4a2665b02d2d555d6f0fd085b065928d695" + +[a3bbaea7-e63e-5c7b-8fd7-5c7a8d0e2637] +4ea05a847bca0ae00a113bd50ac5c92e9e684a2f = "b9f9091f666f6287601b749b594a09317b672d6b" +9df7ad86763b23a5083e92ff7c0821e41370d9e6 = "d837ad06509f0bf631d9f28fa6a811577d3041be" +b1300d0f86fd19c61aa86a6a5b9c6a7e54b8aed1 = "8f32d716061ec7865610b68deb35630d1c3e7e5e" +e58692ea8e53e660ec67d18eb0f3d17feb780c1a = "bd63cf6387c61d9e71a740b819fe0c6bd8110f3e" +f8e628861229f2ea5d0f6aa0bc005c3819c936b9 = "dc041b6535f405e229893851386a797f5e072f3c" + +[a3c098f2-3b6f-5d4a-8bee-41cfa5bd51aa] +84812da312e2c8689344496237048ec261b73ad8 = "1061784ba580ab2c6195e5295822d4d189685c05" + +[a3dee88c-baf6-5d24-a1ed-2b752da90c9e] +c2b8feb0eb276135e0526a664225d711b3e5ab74 = "38b4882dc28376d6b0e62287d69fcdb383492a78" +e2a45b1a13a7adb66dfba7bcce10fed8474fec7c = "536868009ee89d186b7697462e427a14683293a9" + +[a3e2863e-c0ee-5ff6-a523-307a4cdc8724] +164374dcc161cc1e607ce5e2b37ff6cf56d6f6b9 = "0978a937db45cde960b7d9f9ca17d394ce4c4e0b" +ab1629f801ef9af3915c14b20279cada5324aff0 = "c2b68eab47724a88a89446c855dd551dadd88b07" +b8c865d332052fc95e556dc52cbce2a29e6f173f = "cd28edfe2c6c381532c988a5cad49d623786feb1" + +[a4542142-977a-5521-9bf5-9624df8e6430] +67dab5cf345eaf6aa6a3b3292ee87bde776087bd = "303d5ab5d4b5c23523ecc5a9b2679cbc9baacda6" + +[a4795742-8479-5a88-8948-cc11e1c8c1a6] +21a599b0ba9fb8cbe31c3efbb7779bdbcf43bc13 = "5d41c509e0e52ad504d5aff8b14d58dbe2941463" +2afe2ef7fce406571ab8196ea33ed9a54400a4ea = "515c8f7425e03b2dc8c9c2cba29fcd4a68b931d8" +69e2e57f208896c49efeeb1eaf3638bd21f1d92d = "59d54679b75091773cfd0e5f73be705e897c4906" +fd51b951df1b5d35de3cfe1c87342192d12b6298 = "d58b00f8ebf926afe22be24f998aa755dddccb3e" + +[a48d5fe2-965b-541b-8ad8-ab19b69f3f25] +05d8906cc17b8953f7d54c8801da8c0cb235135d = "6d480b8d91ac231090a13a8c796c0feac3d60441" +2fd623b5b6a3b7a1a768b7ccafa9ae751dd0bac6 = "67f14f22f62a02f3d9cf1e288a3b09bd023f696b" +9a06c2529aaf75228005dfaee162d87d24ab51d4 = "f46aa51ba3573a25a49ac25b93e3c052786efa35" +a769e68e00153e42b2ffa6e140a5c8fd06c40a76 = "a02036d2512ce903f0cb0ee3174674307322991c" +b51606029579c96a805d74069f59dc23e273d88f = "28e8cdd98da3e0c575f02e096d172894d8a9c6ce" +bc8b67d30694083154c3a078633b5c95c74c9d9a = "b9f41ffc549f0add416f20c79b72323e7b3f57bf" +d8ee095eaee727ed1ac35a9e56b00fa320d4d6ac = "5700aab8037164494c03975f39e91e1803c9891b" + +[a4bce56a-f44e-563f-a45f-5312daf41243] +1296ee251cc0c7bf4884415b7b0a3a217933ba19 = "7a400b3bd93e6ea81a762a70422f215008592fbc" +171aa9952e0588948393abbf43ea52b8d8537550 = "6b5a31f893d8453ce65da5e8c25b9e125d1cdfa5" +2619fdba12f90bd2d41f7ba452ce38070749b2ee = "f5de182d3e2815093d311e69926c039af98bd312" +2d5bea238d86fdadcdcabba1d87810ccfd9f0e00 = "5120ba0fe4024b30575514c64148fb69f7c50656" +37ecf44e620f35762e94cdc84a0fb4906b8f4b1e = "a233f115cb95d3900a6bf98e650e3ea02f064e08" +49d33c6d6177f7f326673ff948757f2ca5b9f449 = "cd19d1e156082bda63d0f5d73bc51770923ace5b" +4a8f4a33bd43a46d22f2dcfb0074b3fa82aea033 = "c71285aeb152d0d0091b9afa1c4c315cb739f3a9" +678cfa505ca99b0321c5682b72cc240453d9dd56 = "d321d7acc25d7567ab7abe70be9de251c679a273" +a79830e27f0f741493a65df3e62ae17fc5588b81 = "d71132501a8094f50f55849ef14f6db5cafb9487" +abcfe60fbefc1fb6bdb8b3c6f66ab66e371cd43f = "df0f58298ede3acb7955dd5efff05cba56a28a36" +b332f5627a67d96d21744408952e34b3c2301215 = "a558511e8a994bcf2bb0d3509c5f5e5e6870da13" +dd9024cb2ecd269df10a85f547742adc0f45863c = "3c1f43c83a4c5e59b2e2ed41b7066e21589568f2" +e302a0de98da0ffa878edb359777370a0d94b49a = "b071205bef4c5c33a58526036bb36352ef9bed6a" +e86ae3a230b7d6977eeba6782f318033f0bba695 = "f36cf5b90d49f035540236489f19665b4419b678" + +[a51835be-59a7-5a76-9cf5-dd3bc1292177] +792daa6d6a95316f5e1057ea92374fc19b3d2d9a = "103270b7359a275b827f9e08a99a23c1bd9928c7" +da371f844a0df9c5c5d57fe22762c79bce2e03c8 = "c91597e99a88913a479ce574bb5495f0a524a3ca" +f0d80aed0b899436d149d1c12883b0734e8894df = "3fde760b1d3f839a32f53927de2d686688cc7aab" +fdd3cc0ed1a7c8deac82a55438996a54bdda840f = "f0adbd780ab9a9b9dbbf11e3b43d61fbbb93a9a5" + +[a5390f91-8eb1-5f08-bee0-b1d1ffed6cea] +017a6f50b4c46967a359c09c42bcbba9a93a02d6 = "71798f7549602798f69b39a08886db32b9a90d49" +0fd319efb060da0187c8d7add07df10fdd92c831 = "13152b2674532a69b4adde4fef1a110182ccea0f" +1dd2d433bdbe9520cba2dbafdbef46badac1ca57 = "a27c298b9c2530ff6106c1c524c895ddabe3adc8" +2811b56c0a8f2e676c7f5ed52fbfefdd1344bef8 = "c4aa5016280b29d113e87b7bcdfaee59aaed1acb" +46542e4d9b6e859ac8f2c68bc21318bfcbf2e9a9 = "7b35edad431df9c1aa7a786e6e519be844283942" +83278d3c84efd42262d7dbd494c1869e7823e724 = "fa38a93bee8396d889d8ead08e816d574a64ab5c" +ce19aaa3cb2ee96b3be164c12734c44d161972e6 = "d09fc310bb26ad12453a4d602b9e3cab2ba396c5" +d341159861d3ff015a19bbda2c11059cb619feb2 = "382da0aecba11289049f3665de7226fc4030666b" +e34b753a58f76eb48a430060afaa5bcf66fb66b1 = "57303f0e12d1fbf8c73f4ec4b187b03160e354e3" +e3e4b128f826803204a876717143323f26c0df7a = "0bd72c0121436b5ad3ae99fa0228b3a71613441f" +fed167557aa93ab0d815c09fa2cdb442659e4f69 = "b458672aebea24a9d24007ee974dfa3c45215264" + +[a56d74ad-8193-5df7-a216-96cccc48f97a] +06ba29dd6bad583101ff5e830985c7d96bf861c6 = "a4446cc4a7b68631c236210bede75ed08ee84bb4" +f8da5a5365593ca877b73f241b38ce45641a26f0 = "388ed95c04748a4fe8b06ada08f55c5446fed3cb" + +[a5944310-3432-5d93-8bb2-e3b5eb62a58f] +66373d90ed37fb5cf345a22b2a6cfdd983109ca6 = "bd6e96b0a14d7b2d69c957bf1e2887a453554d7c" + +[a5aa80cc-faec-50cc-96c6-a95fd318f3bd] +2b4c7e5c783295dcf90e5c3ea6dbaeef5a5cae27 = "493eda1d8c0fa0bd7f017a9ef769164113c26864" +bc4db1234b3c48067c9db41ea856fd5bdd15c29f = "6bbd72f908eb309203e816d22658400e0365c13c" + +[a5c3d3bf-5697-5ba7-841a-c26aed266c5b] +0249f3f33895780f1f1664d1feb1dc158eca7020 = "0ec5ede0a38a21ed1b7625026c0829074153ed88" +05763b8b634349fd9858279d1f7ad1d5e365e8a6 = "970324d7cdc33d2c76f78c9e89efd402f1236441" +0c05fee16e628c1955ef9bf1fb4e48a657253c5e = "c4ebd94c322184a9fee70850d9c13a7c20be1c67" +1f0e31ec5a6c5d4a348a5e977d38099a6660df69 = "5fbd179fd7edd883414030138ff7f59b063a71c1" +1f7453eced491217ae382e786621574ac75576f2 = "12a36084340011a7dc32790da4c7ae89771d559d" +2430425bc4e798da2415e656c190ccb5951871eb = "c1b0a9b9c63a2f89770f8dab7142394723bbb82b" +27c9e3fc45f1c3197148b53e5bce08235980cee9 = "d4a71dd7f0bff819865a5d0db04962673aaaa949" +365b1aa71d65ed518d52d0da11b30a1f37e86200 = "2612a212b0197ec524d3ae6804e903d72708a80f" +3721a1d5ed4a90275b5c15e2bc0c4f2df6255a94 = "f5b07aa6f518cf71089b2dfb02e55a3cad7cc5cd" +40439daf99155b751d53c6403a5bd35fa0340f7a = "2dd02ad3991d7b144593f461219b927d43fd2ef7" +4243d668777540d620e019616e6f9a3d8522bfba = "c707e0bde5656d90adf48624ee67c77fcd391fc1" +580c2cde91917ad9901439cc11fc7f745871b16f = "d4a71dd7f0bff819865a5d0db04962673aaaa949" +5e895f6b46327c94959c5b1662cabafc9288ddc3 = "20b5b8af06a1097a7068b8c2698e7d68becc6c2d" +715d637fbdd0f6dca6a03d1f2d7c8d248b4abde8 = "1ed811d8036b3f9ef5be132a932bb4c2845252a5" +7403112a62051b86ca426e33839515a717cfb3fd = "7f88bb6d93b8b559a624c8cf34ec0ea7f6fc8e1b" +7422f392a99407e4733b318c4670e7a259537b86 = "a2719d90b61752e94700faf5192e761d216dd32b" +7d478e4933306d0d30cdd04294a00f769ace940b = "192cce49e4c52d1c4c91bbc50097c7df5444e32a" +99e5ea51d5449ec27891cbf9a9d100b5843cc32b = "68b3a54c4cc99c29cb95bcd58eaf9f9310a1f22a" +9f935fdc1a5ba618a22c463b9f25564ff892a549 = "7c09f3c021725eda203a9cfb3f6910da264d8681" +bd9ab7ec3a63ebfec7355e3bc15f0eef77388f00 = "f2d71e74bce493a98f22cacb8f7d6c4c8dc5e7a3" +c6c2ca4d4856d225ce1ab6f75aeb83cd91091e20 = "dfababa51127c9628b7e73993b5c3e6dbc74369b" +d3d2537903d8fe8ff3a0cd55d2c4c8d548d4182d = "8c53d40ceb5078de607dfecff972cd1448db8d5c" +dc1e7bbb20af31d35e98697349867fc9a059a06d = "872a1a202b0507711d09fbcf72033392fcf6904f" +e172b5da6b90dfa0d44471a3ff3df19b487d7f30 = "d62ca7023831650d2f3b00159d50be8ad4ff7d2d" +f2edc40ffdf27c0936f2682afa1191604f7c0583 = "7aefe8f2d3192ebbf11e6ef2f45db904d9b98899" +f34516d5538abafb5f7456a0eba91fdba4ad3ff9 = "c5cf6a66c2b15afda65aa9eb7ee1baff96294440" +f724d4baa517bc9d8ae7378dfc463ff5ac532337 = "8b53cbdae332263963528edcc706fec34e217f26" +f9e48f07ae27942559fccb52d06f24d542cd6564 = "15f866f46c56f95b4a3f5c696825cb6e5dc5c4a6" + +[a64fb144-f7fb-5565-a479-9329a0587007] +99e7f136de5aa01b7af2e89b95adaf4919babf0c = "8fa6b7ea31e578716bfb2c9bbc2b4e612d831916" +b8939d203ac30edeb00fb5425db8671655bf891b = "fe05dbbafd8b12b948b6b9f86fc46a42c6317064" +c38fb2eebbde787bf0646dbaab03ed007f42fb56 = "fe9b2387d201e465172896775db248760e571dcc" + +[a670fb16-9fdb-53d6-b278-e97402275041] +30c2e4679a78c3b21a0dbd10dcb29f63b53f82fa = "5be9c193c46d7c6de626d2979872df8de7ac76a1" + +[a6aca261-61b0-5b33-a99a-e9c977ffa089] +b7136e33c6fbe8a2110c259648cf8f11d91ecdd5 = "995810187f9ec0a2272914537f3000fdedd610cf" +b74077a22efa0e6b65812456ccd25ec500c71bd0 = "343dd2f4ad2a7feb2bb81807bdedcdfcf1a38ef8" +e53af89b5a4fa79a4623ea659414f2abe424c853 = "dae0b063f7984b30d5f5298987927b46c5d25a53" + +[a6c510a4-1742-563a-9b70-2e3db6ca4e08] +59ac29847cbd5e8b2e21bcd1b4f7877661f9e868 = "497259b9d84647e988254396649d0c956d8c1bb0" + +[a6e380b2-a6ca-5380-bf3e-84a91bcd477e] +036e3b498bc34668eadc62e6fa15c01aa85540f5 = "bc17fce767579d8c484d35f0485bac8f4b1b229d" +302dfc240f3648b642620df393b58374f24e1bd2 = "7d5448caa4da3c6ce4a14506b1a100a071e18e20" +5b1043c1023f4c85ee194c6138637b6c6be574d0 = "194e6a61cd984b7954962c5ad4f1d5986d02cdbb" +5d2ac70297efd1b056a2eb280c14bf4b5f8568fe = "5dc36bd697d0f9fa24514006c0b04b71cd1fd8f9" +792524a13a5f9bf7afee2a1a1d8782f6c611adf2 = "5f33af375f9dcc4aa2490f693787ed9de2065530" +b7afcaead991748ec7009dc57f0d79aaa0358e3c = "ffa9e0009ca79b36f156506e3b1d490ce3f23e1c" + +[a710fa0b-f7e1-5400-819b-039bf0891bbd] +46aa05a105653dfc127887aefffe41b3c571868d = "7866faa3bd8c9d958ec2ba3535a1b58b488a7477" +7b1bb59d4acabe72bc21977d5434215ab424eb16 = "4d798d26285d2e665bf5b8070f7cb64a124201ed" +a516c6cfa500c5c63240235e64e66346ddab0e79 = "b5ab833ba7d1ef2e62413c4c46993fa13017d6fb" +c9dee266f1f732b2118b7cf26c42cd49d4fbf831 = "5980a0ed97a5a4d8f143516675931b7780ba84a4" + +[a725b495-10eb-56fe-b38b-717eba820537] +07df4b3b391d5dac71cfde61470e8919f090baec = "7258f80a9e66246a3c2c11d3fe1e82b7e3604906" +0a0583fd95c48a33db14af6ef4d1c626dde153ea = "301c89d82351a93fc506456a48458749482acab3" +309b34b918607e1a8e925a533a2952a7c7d0fa17 = "144ec830a6467e95c8ed1f4fc37ed635ea097118" +41568e7141932dd9cf827101451dba292f4c3ec1 = "bdd85726aa6cbe0ebb2ec111e78c05af69acb84c" +6d98bd8bda1bda05133a22c7c777a6ef58c5600b = "c01e48960bbd405aca8003bcc76c337b81c999d5" +c739f4313d07463fb62b984beae979988a66c3bd = "7b10d580aa46a5f7e25df1773cc94ca2628640d2" +dd326efbb73b0d10d5ec9500403ae85a642eb04f = "8eb5c1a2cd98691f07b8a4ce22910ea55104df2b" +f3fee322d766477c6ce3e6aa2ad30dd100b986d6 = "073a061ad2f2f9c7dfac1c518c43c5eec7acf1ad" + +[a74b3585-a348-5f62-a45c-50e91977d574] +056a657e465818a5b892d815ab048afa029d038e = "d236ab7d7245abbd55b7f1d07fd0b80e4c895821" +0bc115597bc55785a52bf9b4bce6dafc4af383c3 = "3ead65d801ac2e28ecceedae26ae6329212f53b3" +0fdded9b19d8737138ba386ce742876270f8e351 = "4bc9b47568d53bc86fbe5d2f4732d435f5e95fa1" +16b3289c38776b84264504146ec03516c82c0ec8 = "a663b5ef731ca9440556cdaf875e522b569840bb" +1fe01baf125ec2d3a15d039ab60b305d2134f3af = "ab3ae804e12f7bf3553c17d580aa381937b98db1" +227836af29b853c9e9e42a95396230bb3b0b11dd = "42ccbdaf7373cc8557e9819ecd74dc27fd3bf056" +43ed1e35d557148e8a32782afa42b294fd6484ca = "9bb3145e20066bfca7e42542b7036ffc3115bb17" +59838218f6e857df3bdf046141180cb06b18af90 = "67b8aabf2c8cc395123fb91189a8b1e54c8c35f4" +612685e33ca18798ff06412015069bac3a7f16fd = "1c178fa31a2b70ebcf5a3917b7e9f9838b0eb441" +8633a9c9cfd380ddbdee3ecbe87961571c08d9a6 = "0a1165055b3a63e8fc84c65283ca16f59e8b0b8f" +897ea349bb0e2835f3cfc568edcf195a50383f68 = "235d84f811373d2b3393b41a26c1a73d698a14d4" +c8b1dadef38c61c75e1e5b3c0f96b9cabe808a81 = "a0eb291074236c331ac629a4971fcf7365c90758" +cb9b2a1521e005f8263990080bdfa7b1ffa2eeae = "5a84ec0ab8aab9a9bcbcf74040749460c473c85c" +dead74de58df3b42e115f91205deddfa288cc022 = "dee9da28bf2455ec320eef061209a184959efe55" +e39a74dd73ad1c44b0bae94a4695eb35b8865374 = "892744612b034f3ffb874cd0c35745757634dc35" +e6cb19221ad5d67d40ed7c39db445550936a3ce9 = "736dfef874aad64bbab9e6339cf9cd21331cd35b" +efc09983e46af2a0a1821c3c85f37fe0987e5396 = "bccd68a803c3a8f3c465b763faf958093671f17e" + +[a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f] +02c4f0d8a29bc21df042c846915fa7bdd3a3369f = "8344bddfb5e03781217bcb164ba52af70ff69c1c" +06195b4a32e27efe807811b92414367001d2d4b0 = "d1920d9582a2f533cc44e3b07bc76b26fb5e0ae9" +4798a4b415bcda2085193b0bc7d2062718aaa49b = "a4b96378eb34c5de0b824518caaeaabf0f6a622f" +5aa57b22dc377b59b887d7c1364e42c6d2aece15 = "715b8bf823ea4385678c4cba93c08598c3b8b255" +64d0501da0de4bba62b7d60b9b67122ec62f3e51 = "ed1d5a134b70c391e7307d5053e2a97d6370c6a0" +b7a7be93a22ba874ba446edcd0f68a6a312dab90 = "d918a740c855cc41f9830a6eee3ef49fa922a040" +c4b51d87d58b2325291dd336f04ab0bd7c0568b2 = "f8edc53a491c65f990ad5bca5ebc608a2e09b66a" +d140c94d370e850f1085ddfe9d5271d5522b3da7 = "7f601dbad1c617c50019ed0082903fd745c2f9f0" +d36fa9316195bbec933b9579b86a0cb7cdb1b0d0 = "b11fc45ce69d76949cef0e92f73588e8165a851d" +ff6cb54fb8502e23191f031f8633d4e179443721 = "5e4fcb55952782baffdf9ce823f05bfd39a6cab6" + +[a75dfa10-1339-53f3-8748-4d618c3d76af] +09ecba9eaee4519df5a2386c0b0368cf464183ec = "4042bb23aa4bf9ff2e81fd2afef299dbb59b51fe" +0b15124fe4efe66f39c4d0caa5ff215517be12b3 = "b3e7b5dda73e7f4cd86f96003a1c4329d74b642d" +7b4895f65ac772b21c36ece001843d6d3f6fafdf = "14c9323e43547eaa95a52ceb8ff619c69184cea0" +aa3d017ed9718d14176e2a4b5845a90672c18ea9 = "6e9231cfeeaeb152ae2680befdc7c9888d36314c" +aa45504c8a4478112f2a0e6ecb88957e04fda643 = "b6d63bc3690b39d321b743d81825f6aa5bbfa2cc" +d1384f0cf990e5c14acc49c46c9c06d3fb919cad = "1c01fa1088a715c00bdd2fd89fb15b2187eec6d7" + +[a7949054-b901-59c6-b8e3-7238c29bf7f0] +0619b55751d6580b153424a7b97166137fbdb262 = "f13c00bdb0cb7a6eb1c32d58f8bd34e6669be425" +189e755b0ba537d4f81e10d30579931ea727992a = "17727afb17f8394e6e6eec1e34f0b2b21aecd808" +1fdcb31e626ec914ccb0f22761ffe23ce4f52b4c = "b89b70dda2682a921381a9b164e489417f8a4dd3" +48f423017989d720ed8af3d88b3eb08a9a3272a6 = "6c66a1f3169047a7fad96224267ceba1b3a16ba7" +54e621e79b309d0c0c185858948e7f920a67782a = "dcfac7f7d753370360a121d14e5f1db0b2fcbdd6" +643b8d4647b62e5379e05291e9c472b423c3828e = "8588ba57ba36b8ebdfdef37b7121cf787efc0a93" +67c8bb2d6e319d7a95fc574a76736e5c20d05523 = "f63b20bed76cfad2a8e20519774805870638dcef" +7934f672e2449a6c221bb3088ed40c2c6256a134 = "0280178b637e51289ea520952861404b1b596c70" +828e4c41b275507744e66d60500bfb996f263d02 = "b0c400bfd21eb0526d22177343fcd66b35fbe4a8" +8edb94be2a4c6250ef4bb26e58ca5fb0b9fee6ff = "db1e1f6eca66e5db3cc7d47c06ceddcd1b11fe1b" +ac709d12662484705c409911db00868509c6c9f4 = "1e11f44a76090b8584483540e14f9d0540acae9f" +e599d51d4a5b2045ec6b7a6c4ef1c87659a61930 = "2402f3cdee8e475a5b9df49e1d7f6b48360ff2ea" +f099670c9d83c0b60d9dac9f41753dd1490e7eba = "a584601ae57a9a3c57034dcdb43c1d76e912e41a" +f89abd528d7d525112efab3a02b588bf05f9e832 = "24154f8d5bd6f9c09f729e22daf129a2d4e80df4" + +[a7ad6987-1890-5ef6-8a61-d9efb0cf65c8] +25b6118c6b95b6b1254786ed5ace381a03e999ed = "5bad5c0515f93d9ce31d8e9e1c3aab5ff3f8bedd" +7ce60f8ec63591fe07071419bc49835404c9c042 = "4baea7f7486fff8d370cf261a2fec6a33a1f66e8" +890c94f37c2553555b7ee435988a42132d662599 = "4136bd1489c36c1f17d8393b9a38cc27da884b00" +b62222d10494770fd4da5faa43dda05f001849cd = "7d4cffce020e80bcbb00da3afe02d0b15606b626" +b8460a78c04d46e7899d466bae1879402f720f97 = "7c446d39256e53fe628deb93c0193d950915c744" + +[a8002f64-6652-5b53-92ba-d4864fedfa0a] +0bc7ce93ae3d4eef3b3925e1d6bc2dbc2c54573f = "1b1dd79415ec857c1786400fe3b80e51296b97f8" +2e3ff715eb025bcbe3bcd7e105d7811a6debf7c7 = "cad39457c36d281c3eed4083faf9021d6b671275" +2ecf6363ba511ee221e22610c65c9ff15fdf7ea1 = "f92b94807311c23ae1e4b228a65578ff487119a2" +33c484cf8fb1109081ae094c153108485e1f877d = "52805ac8f9f28b62f39830cd2c6f46c3789f742b" +52c2ba7d59fc4705f8bf5804cd389b145681b331 = "28cbd13050cfa8b8501a86271e38952536ba3278" +6fda68e4163996742e8087f7af2f5f9c4ae5863f = "82b98b609f96b9f46067a479fd60e2b3f287c4fa" +9971a53607b0b86dfba4b11d30a76fdf20ba33d5 = "88b11630662570a871ea90e8df78367242685482" +abfc1aa4eb543653affd5e1f51500c0ffb3afc9c = "259b7c25609cd5b4b145c2ef83a095e7d07d67fa" +b24b46e595d51ca16c9803e182c0667a55b87ddd = "6ba4af92fbcd36cec5548c1a046a1f1e065e4faf" +c226beab86b81f8ed960255489a1c045338c0ddd = "711a9883115a96a80c63e22c9b7ff6ac5bfc4d5c" +cc91031f4bdc56d720f8dc62e5bb20b4286b269f = "8443f148273f5fbc4560eed9936aa36e44355de9" +ed9b74336bfeadd5425cb3ecd101656af0c253e6 = "2499c4195204b34604947d978e15babfac3019e1" + +[a81c6b42-2e10-5240-aca2-a61377ecd94b] +016556b5feb03bd5735bc28f554487b3d89d4ba8 = "fb31748333b20cd00fb85e5e76dd543850e88349" +027d53e7e38229d4dada0ff2b9942f37bb46c45f = "9e78369afe8cead097c958e201ce0aa0ab4842b5" +042da5dffc3fd1ae9a5673340329b00ffc0bcc0a = "85499c420cab8a0c6e29c3fcc06970fd9bec9b77" +0836fd2a7af11c2d9d8dc36d209c6c304aa37414 = "384b8d8e9b7f76370d3d7e8bbf19d847835a72a7" +0f3f6bbc787d16478b1e57d044e89329da505d6c = "337b824ce7d28576fefb6ac1722f8eb0f7bd0581" +165cd40378dac1fc91dc78a065bf74dae1d6662a = "f30a2be1f82cbcb706a5c2d8f68a87964a34b272" +1a2c4ea0b5f8696b380596af280e36d1b1140ebf = "f4d5ec34894909a3e82aba8191394ad1846cb706" +2337062a2cb8ebfef95d0e566de10b2ace271942 = "28595cd064f7e7316b51d7ddc180e40927cb2035" +23591b5b5056a5c531111f0a72071ccc09007c4a = "e893639b683016fcb91ab21db46282509b00a8f3" +290c419089016ce7f7250c90c6f226c816cd176a = "4a6c0b49480a55b1e76d673fd201b9c75106eb21" +2b99f69c6d43acc8b6b81b50ec014a0cf04cf0d5 = "e97d08ea5a6e0d7e9c7ed946e79e9272d97210c9" +307e3c886ff8742e04f39b0b2f2a2888d77ef0dd = "95abe025e1de2d38e0c3d8071046893a8d8d0117" +30aca832135e3ecc7a2784cced85ac5dbbce749f = "ea6d1055e53ecd2f83db1cc53273630450c15a97" +38e94662044a59a846b63a01a60afd2254c62c22 = "a468a7355476bc5ba6bc0a707449349bc73358c6" +3962f9929edb14d9b54b6a1c40a9c9ec601f59de = "05ee1d46596fa66562e03fc73de4caf3c7e75749" +3c74acd30def073c11ef7e2e0be2b0e2657a5da4 = "aaf50047e66afc64d3a684a14521705aa21fcb2e" +440bb591ae275afe516a23bd6a4beb47e813852b = "f70f86cd48bf9624fbff06eddfc5c9dc8673daf3" +5036f905488a1b3c3eb8999fbede6a5080f9d7c8 = "7ff6c447eb3159e88d4c62ba85c496d9431aabdf" +56a7b59d15cbbe7dff1f16d3e47064ae7a9130ed = "e1c81f9ae747ec985bcd0857a6450d9487a5e9bb" +595c8f1218a8eb2aeb8ddbfa54de4e55292b8170 = "84ca3a0bfc0bc0288e98eda7da1cf8bd4189a3ae" +5b098a33c3bcf63bd9473bd5a151cc63f1a14f4d = "afb9dbca5a405583a660a1aefcbfce794e205de5" +5c52239467128e818e21e616e9c704623e4868b8 = "31b2c7cbf941a5cac312f75af8b889ae89abcdd6" +5ddfae2eae52966b3aa73e659b8170e8aed4c50b = "8a03ef08cf0439df4942d5615443088c015e16f9" +612a12d7be19c250cb22d5bdcd5364efb2686588 = "794e875dd965550d52b0aa55cb7dd7742ea7604e" +6172c19df0a016b9a20157ff7d72ac8322623219 = "9484e84697148d129cca73d2176d550eb4291145" +699eecd31bef8f733458529cb26f23ff8ac05067 = "83e5ef24e80cb38aab23194e03aa9414c8cdfb30" +69aed7b4653dbab98507fe7cee770be9c4ee66dc = "7e0b4d14347af1032f4b7fdfb01a3500a66bcf4a" +6b886741a5d7beef8a9917dd1f7622c6922bbae6 = "5e0a964fab30a1a30a958f2ee76ee3b42fd7d7fd" +6f12f8a398a89462eb25762c6aef28e5abdc304c = "c1deb5fcc0b6dae12e60958f4740fac8a8b4d206" +743bc4191167322591f638caf7d7b875b2da4694 = "ae803089ef95b9dc6ec7deb2ff83fb839e607639" +7543419ad4d545c7268b101ad2b954cda6a5d320 = "5661b6042ef6f27c3eb85c82c56d0a67aeabf38c" +755fd0ed2506ddfd593f60daa1440d917e7916e9 = "ffc720a57161e02cb0593fcd66f8bf3c57051c43" +7786bccfe9be94783727c041437c676014b1eedc = "5fdc14d09f4d7df386c87cec9bec456f27f56239" +7861bc86bcaf7e255b55aa3b4e7fa7c8d097b442 = "1d86ff3d06d6723e1e74700974543f2280aeede3" +85ac45936b72c22d0ac6fe4df4d589f246b42e05 = "9b5984eeef7e4ed308633ce816455cbcfcdec9e3" +85b3f1fe9cf99d6f7c138194a7c4fc165341c9a1 = "ca022c2699f9d1eb7fcca1524b1e1161a4457d9f" +91230838fba4240392c495aee7cf5d782d08bc9e = "58a08773c8ca4e916ebdd816a11e4a5bf9aafd8e" +91fa5ea723477df7c02dd1273507ebb49156d212 = "8ca0f428060c404ef43b65d662a90f71734711af" +9a0a84a8fed2c4db2d57ebc4e129ea16075132d4 = "fee1b14779c6b88c7ba4b8b8e662bd719a961549" +a1eed124ef4e350cb890357bdb593cb4d62933fb = "bc22083b71875e9fe4b5923ec3515243d8d522ca" +a4efa5347ad6fd9f653d71d4eff174d9b5604eb5 = "bafa96ad332bc518a62a88dc983990083226b199" +ab17ac6643cd5486baff2048f64845d45ce625b9 = "4cf2eb40bf81999162aeaba9474eb0f682b669cc" +b643024333821662186abaa25760305441aca959 = "2dfc2223851b88f2e4805f340aae940a650a98a3" +b6ee18655bcf4dff73869fdb809b8b0f004849b7 = "1bcf0e135b5153d1da3d8a225c5184558e715ef3" +be3711695fd57ff6437a1303d498fb747901338d = "e28af47605a81ffa6c238953d25a7d4d0644b940" +be3aee597994be49a1cdecb6b9c68bb47894bf01 = "433c39bde4ade19cbd7ab7c89bec7cdad2e213f4" +be878143ded0fd5433a38e08f737d1d891c4d88c = "56510e753ba8cfca7857b7b081ebb2b161b5637c" +c380ae4e7fc0d8fefc75726bd9830f9d6aebb8df = "b2c9a2e88353a9f6b8a13db4e1d22a8510d99a29" +c7d6ed97952c68698808866628b0e2d379d58f07 = "f2266eb691991621cef2bff2ab217649ae94e30c" +c8d6889b04e34ce64befca55d38ea7328e956d79 = "6e1bb697da78bcea57f8e19e0cc55da249df5a0c" +d39e0d188b05c83c77e8d6182ac81d5de30fc994 = "810f59141c31cde9328bb831a4509d4b0041297e" +d42de3bb74e0d8a46b375a6c3ea43da7fd95311a = "15bf3b4aed76451063e179e43cac6fb02bfd6b2f" +d87968b025980c3a299f619282a94a728f1869db = "1a97fa50e549d4328c7e0c06b83464058c01a1cc" +e048b4cfa4c6b0929fbf15b8e8cb98224c68d9ca = "74ec945963b55cb597c7f311587eb999d771530e" +e08949150b6830d7773ca894c6cb172bdc3ef0ed = "64c3387a7d494b55d1021a8c2272a9ca8e2e1770" +e5e4f54419694df6c41b9c0a2e6fa351cd4985ca = "0175286e09000066360a704732f41110be6207cf" +eae07a5f366a97cbfc3342e165905a59fe7f4795 = "1ab3982909bf5ebda4808c1f31f9f92ec60d6812" +f07b513a47c6c48397e1c314b1cfbef1d30036bf = "f31664bd5685d9709694793fe27ecfb100616d57" +f839808082a381e7a57733f9f10a547d64811572 = "f92ef2f4f4caf82f11cd3c5f4a411b5e0c567ab1" +fea42051fc9cf2139431e072fa55d117296ec8e0 = "53801bbdd21db348f98ed61002d45c81ef359e0b" +fffbd1f4326a43b099575cfa6c6769b3eca3295f = "88dab9db4b3be02a835c0ccda6b808840f83d88c" + +[a86b7e81-46c9-5b44-bea1-52f7a9b23450] +87e1e8a0b904e4d7d16f43baeca797a903a21e5a = "e064d194c25c6361f9de8c7b9c9302506961c6ed" +911fe56adc5c8768316fe6e39f01148a471a6842 = "4ed2a2601615809a27949f4699c3bac5b7c2dff5" +d004ac8e38e78432f1b3180e879d27b964a54640 = "823c661b4438570c0d3bfe28c7bc9523adc6c63b" + +[a89fc88f-fc1e-5208-8949-7a3f8ddd21cd] +159af1a5dd0cd3ec473db3950b6208c1c0261b5e = "a4f8d97112a19017d8f2f0501c0e4abb9334ea7a" +68fd334ef44ed2a532ce01c6f266c04cde8b2666 = "1e79d75e823c614775435ebf25625327768ddc95" +9bd8db28913b77c2e34dbb3eccc621ccdafab7a5 = "b10b2abe2dd1b349f6c6f23b051e408b79addaa4" +b16ec1a072f359c81af38b1a1a981170324f19e3 = "c63801502e87fef6c260c874254758ffe801068b" +bce8961e44c5a2864c2d9a43bead202092d405e7 = "d90fc4ff00233c30695cf65f65d293900d9424f5" +e859790c129c702fee6d9549fc1c8f23fbbded2f = "cee736ab1ec60d3d83300dedc165c7e901db5396" + +[a8a75453-ed82-57c9-9e16-4cd1196ecbf5] +1fed0228b876936f019a51b0f9a12cff861cb730 = "ab2c54e981561748356b65600372898758df18a9" +57fe767dca0334e0bea6fb3a196ad1ebd1554815 = "ea43782e8d6342276d862176af946e4152264700" +625687f2b4563d0ea923613052055dad15330cc6 = "31741bd8ec77217da89deb4dc22df4c30d156d4e" +673ea80d4c8d59415d56fd8de7b5930874de98de = "f9bc7d0013ac134efe588241deae17858ccbe85e" + +[a8b11937-1041-50f2-9818-136bb7a8fb06] +3cc91a844dc459607820eaba405b202a0d60c1ef = "99194f78fe60cab689f4b75384d03c39561d5b6f" +52941685c4662e65d42f6d7df93da7cdfb8421b4 = "0d5f6c8b49f22cedf80e2b7e5ddb55aa52cfa1fc" +590a6df7cdaf83c2f9fad5bb9c8ad2c1ede39182 = "cde5f9f3d791ed77818d0f36d7041eec23d5b94a" +75ec31703fc44035d9f617775f21def2489a3a07 = "8dc5bb48d6b36bc45026d59bf7597fa576112edc" +8f92a5d2506529d8e6c2111fe946bf2c6f37e2a3 = "b814775b34bb0110961b55271a03c91ab9bf5088" +a99357c845fb65df48e58dede167801e2061b15e = "555669f3ad08445efaf99d3e44838a693b028f7a" + +[a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f] +0b67f4cb5e21ed9377a7a2fe9dbbdb421256396a = "906877cd6eb111eb1a8cfc9c3bbf32a7ff7c2160" +21e23e9c0cdfff0681fd8905eb735909d4c09392 = "cf38b5a460a1ab4f3345edf458b264da1326fbe0" +7bd4105a38304f2208c36b539d905ea5292de04e = "85c6b14118bd8e8fd6260fbeaafd05db4d83fe4f" +8a2f3be9dde57b97fff0b41b1ccef3e270067567 = "ea548a1ee4b83b34aa514f53e58e0718a13d7702" +9c105d55a8a782d87ec501d10c68bf4a90a93cb5 = "9b8dbd4f596edb26f363270050f7c6cc4b3ddba2" +bd63d2e25fcdf08f374d1d8b0343c3298088394e = "f5b1135d8517fdb77ed220ac2d26ab92f2c269ca" +c1e2ccff3b8ff0d50a0fd2c4dd94c4ff3ac5b340 = "985800d4b323323c91525858afcd87870dc7fa70" +c885a2760e7df87d3ebde793ed15a829f5c688c8 = "d3bd7b5b984c04b825f607a9c4ab0303e5fe5fbe" +f92cf4a0cf0abf1482bf66fd366e18a19d9ad5ed = "8d9a6043ef5a00c980fe5c06217747fe9fe03608" + +[a906b1d5-d016-55c4-aab3-8a20cba0db2a] +1a3c0b1b2a483a800f16c81b45195c91d94629a2 = "8d1ec2e3cc1acd3cee3c627a5ce955af4ef8d952" +1aa88387959d1f9b20b1305c3ad8fde412a72a82 = "3455dcb523050d0c4ccdaf9a14948873487e1006" +421c6e3decb292b10c3b0c16f399b70ded683df7 = "46d149543a7b6cbca1c67ba5ef67d048e014166a" +4733492517490198368e009445e6876b913f0af3 = "2273c6b5a27b5feddc02367b955f85ef70fa99ef" +558db2d8e0367c8e01dd48da208743da3f8f8bd5 = "2a84d798b5fb1a865479f9ef20dae4a529696f5f" +83daade1b25df920966cdf55f54f164126c9d909 = "99b5a079634b071ebd62a1c7a9ac1385659f21fc" +afcdadb09324def65ee1d1343b44739320ebff72 = "bb056ef421af20e5a8fc0bfe826ac32c700dcf71" + +[a90b1aa1-3769-5649-ba7e-abc5a9d163eb] +5011656e55cbbe56b0849d625ad83b074cb1fff9 = "fa68c38bbd9feb485112764d9327574fbaaa39d0" +549c6cbe0dfb3ff0ba432120385ce7a0446812b0 = "dab0e4bb5c1d976e836fb5d4e5dd5a9132f767a2" +59c3d3f2481de7431660f30e6e1df6d424f1b3ac = "5c63b3f87f7aeaec9b5727caf16840613e92c89e" +70ce28825c812e74251d55bfc9637f595221f845 = "818beffbdd7ed9bb0bf9041a35058f69d5edc0ba" +97cd383cf89d31bf1626395910114ca438fe1e71 = "24b5884fe054b21a98a6be5c925f4a08f6e48f2f" +b61876ce33a64fa19f5b5f68fa75847953087508 = "edb55f4a1c4c20148bbc4886805c17649ad7ac27" +b9c3494f208eee9d6ea8436b7dcaba09860ad488 = "e3f5ddc0d03738234560175a894c37c4ef80fb9b" +efe733d9b473d8b25fe7ddb4cd688464df7e8542 = "d67b5fedecc8b109d4f3ec90f244b2f51bfd8f9e" +f882a4b17d3995a599d3f8c12ceb2a318c758716 = "c762215ef3077a7ff359b29fa8b42e45e2ee2e4b" + +[a93385a2-3734-596a-9a66-3cfbb77141e6] +00238338701bc9da28c32846b3dac36fdab82b9a = "7f893f359893ea30740a4157003d3cfde44224d7" +0a777c5409af05ff660a3a52d3861ae961c2bc4c = "66daf414df1cffc790b3196c10f446663c1a9e3c" +0fa634c20bd2800b8bc492e7fbfbc8ef26438931 = "9f56f20014084c7d10d5ecdb4fa11f40f91b98d1" +1774522678be5f3b94744a76b50da38ed86eccff = "68f145996dd06fbb63f267aed1568add839aa29c" +1fc18d1f58c891eb19badfc734019337b1148f85 = "9d6757e9fd49f2e662df41270d0a4d39f2200511" +2961426c2d5e85e0273b72ef23f5cf8b8ab37e49 = "316b738117ce39553afc0d0a6f63c42ca966a75c" +43bcdbff8989e6f68a88002e4c6956b8ee136bd1 = "951d51dee5e9b781aa8c5f38ad508f6a2797a774" +726b09adbf6cc21571b3d58e6abfb10ef9a6d20a = "7e2ddaf02dc2ffaa165c337e880207f3e31b5d1e" +7725937798ce46dba630b7cb2f5188a95be8163e = "ec4b2813d08b23c94d1838b599cc67f0e7e7ed67" +79312a930b34f1ef0b2bbd17c36a085810e859e0 = "e87a77d150e419a3cff7830564d28291546131bf" +799005b566f5cc7c85298af6d93ed386ab143aec = "e33fdcf1ff441137970447df13f15e47bd5759bf" +7f3ccbeb32622abbf2d6956fdc8aebd63678967e = "4c1ba1b6c8e3a25e8bd8157b4b884e2da0205896" +ad7cd0f529d20588876ca225757ed2c3a34cd4b1 = "c629424f5a07f74d156174ead1f0ba45186c1630" +bcd14df0e86d79a8f146e24ebe83cc013362f112 = "2c4ddc6e0fa7afad1de2b212356022d2f587eb2c" +c22c2c22793faf422cb57582557239939a4688c6 = "67fbf7b3e096b915f181da7f5219059dc7bba851" +cc59503e9dd1f417f76e0e338fc0dcd115fa14cf = "67044e8d5b696da4ba8d1ed26475e37396c6f4a0" +cc63236c7799b7e6fd5e5137c1ec776439eb6609 = "d5ebffd8c7d8a7b56a087bff39b0a9a2840e17d3" +d5a82f1de40bfcd1ea7885d3e14d2e0a848ec6a3 = "2033e30ded72a5147b9022b8e052d17d634d9880" +dc7a048083f4672a9861ebc3b822a8ab2d51dcc0 = "2ece3b1316551633ff67180b603af493120853e6" +e301faf0b0c45d2e9c4f6d6d808b3d6a53645003 = "746830156db8305ce196b52716fc1f4b81a7b03a" +e39ff72a5da023280bf0652fb17527d34088599c = "617bd02d7658c4913d81324fd7d1b34c77cce6d3" +e6cb1f30ad8a4b9988c44aae5a57d128813c8c09 = "4e99166917c3790c0015537e6d2a1c896ca5a9af" +e86f56866303e1452a971fd041004ffa3508f046 = "ebacf700d424f05a2ea2d4ec9baa6f258b09f12d" +eb9204729ac9f3fce5905d57ce1f25c3ac5642d4 = "a9802c1fdd5d417f39e3b6419e13ea425e140cfa" +f32c5a54dca43d14f04cd2c73ecb182bde0382fa = "7787946863b95b5138ce3aecac57b2dbcf356fc9" + +[a93abf59-7444-517b-a68a-c42f96afdd7d] +1bfecc9843d5e0ff8d809c68061d244f67890958 = "503f80fb9d3e80b5918ab705e1b53ff69119043b" +21a985d550257c9467831b66f8dd7c7a74ee8c29 = "7087a71ea7ff6c7d7eece2306fe329a77e692193" +22e53ff70a5953cef406fa5abd502e0ca985db54 = "45d1aa201b18d95889c3d464cc756711419e6b4b" +273c53f691ff86e45985496f4fda69d4acda0713 = "30aee6de0c7ef2010dbddf340e7a92c650ef1db8" +2b435566157cc4fd29547c6ade63b3b991e64429 = "a03b0cfc2c779e651598b41e563af0fd0a1c8aee" +2fc214ec87ddded5ccb0ecc8c9b16041dae94c3a = "0f45b308293342dd196d7fa229bca13c92c1e3cf" +41127099f495d23e661cb296a23741806289fc5a = "549adea957f098b0d01834b99f4994c383e1c2bf" +42df38414e54e28a48713dae399da778054177a4 = "18e2751c99f89f483f63745f4c54729e656482b5" +53a773dac3a819b15e6aee5a5e6c0aacc2131053 = "455c0e21992aa62a7870aeba0b9eb5687547d747" +5920f257b5b49c3808e7d4f8cf538d59d73e9b5b = "69dbf6a3ca863f311902bc36e7140e7a45970784" +5b41716b01985a6e6b83ba2b5a8c89febc4ea66b = "6c9aceeb2f454b10a59c2761114ac08cd78fc9b6" +748ef9d11ef4986874f3fdc39ed4e83d0df75e50 = "f9abc0ed7034416131aa17f1cef07a629dbb6235" +8546680dbd3e9742fccb9a91478680acb34a7b13 = "5a0e748ea7c576762b8426bc1196367d8f690f52" +8d3f3c6ec23e774464d66d8611d2c5539a30b1eb = "f7590c1db2bd9d43f42406f9788f9a043c36888d" +9fffbdb1f016b62cf613d1ffae8eb4c5663ee669 = "ad80b4d66b9c108f17a617ee9b588d2270946b4c" +cc3307699ecf3f257c9eeaf14a38b2c8af609d2d = "2a6f65df30305fe3fa48ac885f06f64a16443e8a" +ccc969947bcb42cceab5f4ac43ceede62ce8dc7e = "82485b33677fa00e0afce5c417ccd6afaf8080ca" +cf2fc7ea5739319cc08fc0f98b3e1cde49295ab1 = "51ae9edca0b2804033c6a70687f64b8d94cd3973" +ea497223ec3aa8c1b28c1fdd51a789d51f259a81 = "4c2cc4eac7a9a9b9c2850cd5b5e45130d8505190" +ea9614d4bc21f5fe38111770e889e600cf548e7c = "ff93161db7c918d484a343f4520ce3c659a4e21a" + +[a93c6f00-e57d-5684-b7b6-d8193f3e46c0] +058c65bcb532da80ca9d9229d9ee75cbcf08ae78 = "be5267d973f82465ca4027af8cd0d1e7053bb786" +06c352352fde5e90d738959e54d43efb255bcc15 = "935f24d81a8ab30ba8974d582001192e47532121" +084bfa7bff89ac5f52b9f36c41f0adea1df0f1e5 = "e0af54398ddf392f6fbb89168b0afcdc956ff88f" +19503c12bc70adc269dfa2159bf5950c458ff20a = "810abf2fd0c3134e8198f043cb2711dbe5227fd9" +211cd659cb7f9035980697f7effa081e29b9bf3e = "80ae5fba5f05d78315885699c6bf56fb2188dfd8" +21c0f48180dce4368a7c6b17b0baecabb7199c38 = "7f3e964204037e60a85057ce8ef75978723c0b95" +2b8a2bd4e58384f9993ff3884ba04cdd68e3d0e3 = "d9e0308246b9cad4b0a254845a0f9d42215113a0" +2ddb48c70bbc3319cf1a247446a061d63e259aa1 = "aa72d757ac879761a8dd42d84fd08fac043bbb70" +2fcc122b603786041b330f64ccb839b403f0a250 = "3f23f627769257dbfbbba631c26fc56868355f10" +30aae2a643a7128d38d511e0c131226ce52f5db7 = "fec043d066cfa6c03be12a098216e4e64814585f" +33ef93abc928b137f5e02efb7fd5085bce31e7dd = "0aefdf67154097502fe2a96c5fe9cac0995699c3" +3b12acd5c50a511f9e2e010585254bc36ffda4bf = "c8d7459f845209f1711f60a576481e6fd900b238" +3baa3f8f82ca033008bb01270ce3b94880b44934 = "89e10c9e92d602025dcd17aaa81a22cc26b71f7b" +3cf97fffde38517783d41f431da12714766a51c9 = "1dc15a6067fd71af34a07a34cf10edfe5d912e82" +3d21f4049701dd0cfb875817d6bf723d3d0fef05 = "15eeca4367173c4ed5cd1b07c94799e7931c8d7f" +416795217df0eb77b149a205ef9cb1f3c23828a9 = "e6e20134ee06aed53db9a72ca23d06128266469b" +41ae997b1851707590cb4e4b4d5542eee4088e55 = "0e0b1773d2a95ce2853beb952d485d6c23587481" +4652000f0984157702b4c8e7a2bc054b90a4e7d3 = "4b975e4189f4745d5d5ce3313973bf661e38593d" +49da3ccc8ab7c7785e3b00e9dcb37d2055230300 = "3c98fd6e2d0dd0ae6a63cb3d73776232e91bd27d" +4c30453fc3068de8d83dd6aa5c52a78b62a0ab30 = "b2c2b625b27ae4470e050ebb7cc0045599212eae" +539574ddae8dfe3e841f6482f67d1cbab90e244c = "cb0cae30edc0ea6a0da60958a848e826eb22cfaf" +5a32b0bcda773476499654a635f9c9414134900d = "de36e4273b5cf2d66f7f304b39195644e0b16e00" +5d59c559f605219df655be1d750a2f96f7b1bac9 = "c0ee76a5e39d0d24ffd9d8b3dbe168da84b18c93" +6289a1604676871b109c3b57061cad99e5a2571f = "fa218bccb7338c4e891d646c33d2d11eaeebb064" +664f7928ab8a153e0dd57dda373d9d80f71e6b89 = "70ad63c02caeafba425bf923e2dd6405a0098d19" +668bec9acfb17f88f5856556bc5f44b4d0df93eb = "c0beb3370ef812afe42992295948b4d200753ce1" +670372b7496bda2ef82acf85a3619d1876de32d6 = "8a2e3b4f9f5f4009b47b1c69a5204ccc9bf7bc0b" +69eb3794a55e5fb0e5d2af27f8c44e09336d22f1 = "3725ea12134ce4ea918a5018b25d5175717f2950" +6ccf4839529010adc101534468335b442abaa14b = "27810ba8dc8ba980f54a459a980b19711d4dffd0" +712e3876507228552ec83a371a5d0e577c75c183 = "95da5253dcbd50963edbd9d750eb6f90247fb656" +7b1c6be6a7c4921bc66c445009dc2ea51ea11f1e = "269a18eea924644474f98fd2cb554ae4a0cf4a49" +7c8cd64eab5e263fb5f9d415cb24ebc9c694a651 = "f048c4910660997fa7fe023f9f85e035422d1f11" +7cc19d5bf44b603f1f6f3eedea1491ef36ff923f = "33a8d0d35a87b999f8b0e62306dfea7a442e3cdb" +7f3138923abc093f195f8803d167390dbc02d762 = "258174d51080ba54e33540cf5f21d7202d3492dd" +7f9884743cec05414db89aa4517139e3cc8f8baf = "9eb1f3914fc040c5a32f51d5ea77059b458c4403" +82a12d1e60a5e06d85435a0304b9475febca8849 = "cf46d0d6b33dc9233e2bb967ac3d1682f605bf50" +84523937447b336dfcbf1747b123e9d1da1308c6 = "f9d4a513c73127259a2a274769b37f81ee5b71cd" +8b0d0271dcf75a77c5bd4e42523e91a185015100 = "cc7000f8a66ac34d5170d51fe323759b10de438d" +8cd2db97dbb218cba9ba03bbf2568ab6dcd29370 = "0f4bc5551533749ff12dd2906e9e72f53963cf38" +8fa9163712796701f208530c6d0b1bc9ed290e59 = "fc22ab6cfc4623e619f389caef8a7b691237b8e7" +93e8d1d3d0e379dbc214f4ffa5830a562a0a500f = "0a6307614f5804a674596bcf9ef07dc494b2535f" +9b325f8d4d1bce75e627641df7f6fc9a3efa03bb = "cd089f764d506eed3ce33bcd3c5db1700b413bbf" +9c0b80234f007748f9cc1086660b51edebcdc756 = "2d6bdb1c8f55f0069843d6ca16eb4609dfd92644" +a47880541fa3918e150484a330be8f6963b950cd = "9ee610d988b2dfd7c72fa741b101f34c9010700d" +a6e63137b7ae08ca0958ee99eade7486acffab75 = "103d2dc4627cefffcc27c29e7690d75e342f9267" +a8ae618dac7d4e3908b1e1bd1bc4a1c3cab7773a = "5e59948812728d2bed8f9df731acec78be38698c" +b5f0fe945459e268939c653dfceafac5c13d393d = "5456cc14821d5db2df8860d296987c6f6adfb5c3" +b774e5ad6c02c9ec6ad7e3c04be143e5299e899a = "c333c9a89e9a1e1647878a4262bf07be58dfaed1" +b8121a5b2425f8d93c137efeb7cb4a7709eeaf25 = "b544024d968f8b9c35efe34ea4d0b4b2c2bfdb3a" +b938e7e9431ebb1c91b909e330b86ddeaf18b0db = "cf41008935a0fd8a4b3e68b7cbdd208b68f1eedf" +b940206b0832687251b888a52c52342d447fd916 = "c68c38b8b4b1d8fe599a7abbbb4065286c6492ea" +bda0dd20e17fa059991139cef3190946f27301af = "e1e863d9e27e749d4baa118bad0af07a29269a7a" +c180737d6ca77e5c9d5378b7382f94e79b38c8ab = "f7e1551b3eba4fe33ae1b9c2585aaec2617475aa" +c9973690d3e55e17944aa1176e28fe639e0079f2 = "c99ab70077dd90bff6586f0d18c027f9db3a681f" +ccf3ae6dea2b49715c969fb6f0a77292c7f1f310 = "7183197aa5d97a5d4a6ba1c8011cea63baaf101e" +cd827176818d5f164e6c2a8a12310b78f26d884c = "a6fbf7052a6bf6d72a30823b43ded4aeb1696a06" +d1fc34062eae0b2a899e44e596e20105d900a336 = "d0ed0c0eb1f8bd94ebddfbd26d413e195005fd4d" +d24a5e8b7c57ad947db52a7c399bdd9ba74726da = "640df8113136c8771682ddbf44b2d45c48bd3a3c" +d477e24005186e91d673e866a808df039647c181 = "387214d0f8ccb9c8c88727540be5d1771bd89f17" +dbdb59ac5f3ef428c7e7521e23d46452d340995d = "ad42ffbf3316c4e903ac035e7fffe4eca2d749da" +e286d986f9bcd6cb7e4f027994e3ccdbd9c663ed = "49c243ee29905ba96856ee1e5cb7ab5acb48b928" +e386ef15863eaebf4aaede29ddeaf1707ef64f6a = "25737e1c00ac8695e6b48b8e4c221268e093c350" +e7a157dd4651956117a15feb13c3f40a048ddcd4 = "2cafef7bc47e52eeda6768f6278aab238e5e4ae9" +e96635f883a1521308b0ab5832c6364b4d865bf3 = "5ba701e5d4e0301fa16d4ac64c655c2c0b05a0fd" +e975c42a65d376d25144dc33938d2e27c89dc02d = "07e9479c2c685e147aeaf7806b7a891cfb875295" +ea06921248d8f54e0815c4d3f1a273de45422cc6 = "df3764572a377aa1153e51f05821b05862a90d4c" +ea792afe3460d99244146e4af0a8d28d8d6669dd = "97579790ce65050df6bff3a79a4f4a8c9ed788cd" +eb391d42900d3a4bf48824efd4862e18e39f973b = "c580d6bf5c393f27db2ebda14c0820bc6a2b55e1" +ec56e4338e595ceca73f7b86837eba9e5f8dec69 = "17f4e0ba8204550dcf8fe155b42e475156882873" +ef36bd3941d3183d615294f42515cbd0b7f0bc64 = "c5a088ac0a9cee5890f3f0f0ce5ebf9ba4f0270e" +f031a3d482d8eb489d45b0d8f703b82a7e5b999e = "1771788c6a9b86f477d66563d43f65bae9126663" +f24817da5fa7b62aa7836b8ae839e7244449d7be = "182dce63eaa13d957312cd2d8662da3a44ba143c" +f972ae40d16eb9d49d2b06d14b98dcd3b88826b8 = "96797575ca45581f501cee5237bd8275d82f324e" +fa09067cdf8adec9170384b5883f57ae19ca1219 = "3a100dbe54e363929d7b2721140ffc943d5d8b21" +febaf87dbbb6474254f2fe6323b3116872ea63e4 = "7848052319c311109fc910352c39808357bdcda9" + +[a945a9ba-879e-550e-aa45-2a4d52798e91] +3f75a37fa29f1e5984a3d8685b359f1934d31a53 = "c115eea136ffa2deecde38cfa76fbdad4eed6bfa" +fffe1dacfe4252a5afc8e1fd52f63ac1f1998578 = "101240ecea97e69cb9257cada15edea34762a947" + +[a975b10e-0019-58db-a62f-e48ff68538c9] +0d146ca9f0c7374734d620a925ff09829648e081 = "5885a19dd726fcfb9787b85ae0b43fed4eed8c87" +2da77702131031adeaf564df973a81e8fadfe8e2 = "e477e3ad3b2f235005db33789c160c70173052ac" +c1476b200b90b694a82fa28c6c1b863c7a51e0cd = "444ef63720aab541e7a125f8d046b20e5213b9de" +c83c0572f1e0adcba20f7d46b6a9d48e96b60616 = "279bdc61c45536cf51f2836fcc88c147eea9e341" +f3880909e62bb8606873418e253968236a6cacb2 = "87e924b9dc0fd636715a9ff5ca0490e15eebfb8e" +fb96d9555ff9b3b02bbd4bcef6b2a17a626520a6 = "db69df5daab62e749c2d206c1cf9b447af58083c" + +[a98d9a8b-a2ab-59e6-89dd-64a1c18fca59] +03497189b35308a5b51fddf5c934e2644461aa80 = "332188128d27b0cb0690d9ddcf0c722db886596d" +0ecd53b6603bbf9bdc06a5ee9918821d5bf57a13 = "762aae2a60a8e7563e9fdf885deac0336e570a77" +37fee94f74764f8e02dc33c4cc6639ddcb29647f = "d5e952a213f44b3d2ed0be7b26f48cf9007ee74f" +3d433dff8058bf507ee27e4d395ac2f4cecfdaa5 = "0d6366b241c3cbe9b743961bcee5c060d06bdc30" +422a93473d6ad3dd738687970ba52169a176a84b = "6b0f2a50ca0e676b5501d90493e0da89ccdb3c42" +5511d40b2cc14296bf287ab4be070b0fe536657b = "78647ba33a233f7f69d10bfe01e3ccbac8b80e0a" +563d753bbf4ffbb1a93b7775303f23cf07686250 = "4ca374f361c4813d958851830702be89d13d8df9" +5b8c7c48a06b39386f6879b7dd604486dc766a23 = "86b70df1ea59e0ebea254429bb17408f9917e130" +614f7db7315da3d0cf9ac4d1c11d68dc9784a5ea = "0177bba09a205c2cd50f041d1f262707670eede4" +62dd04b892e9461a42e23d905a357f010a68f2ef = "12c92d836160c797ee75694b30c7090316d6dce7" +6e02f883872cf37af3f148cc61af5d6b09a92b24 = "fa31f43617ee128b683aa5a6e565270f7cbb0a0c" +70e41285473804cc5867c619682b81aeec5ca08e = "a64b85143c4084f01eaebee94e9d17eac586e90b" +716d9b494f63a3c31b6bc4a0262a5a2082eacd25 = "82023ef64ad34a8152b68552ad688547a042ad6b" +734f4aacee0d56ba6c74d84e98748e6851539a3d = "8c67447e2266c4b65857708b84cad9b1e0fc75b9" +7646fe923f4c9e04e23cff2f26222917cbe9b4cb = "ea92f9df0f1189ff27700cf429e284f986368794" +839c1d3f6aaa855b4e384c40bd36adf2a72dcf93 = "430c639cdd802f625904023880ea4b2760df9e10" +8c12116117c5687c5609f46ed3362dbad794703c = "0020dca7645f3a194a3d2422af3ad77bf34733af" +906bac2bc3b18c31e92a93376b15b47f2c826da0 = "2945068861bf7a682e10db3e4ded73be9c66960d" +b11bdd50b45e3722a1b96bb15ae625c9cc400d2a = "e1387ad8577d4ced75653d9c994399fa861bdd86" +b67c920f10c27c90fe54183385ea18f27cb37bb4 = "c1d0f3cb28c569961ffb24f0598a0eedd1136f35" +b8bfd6ed17d81f17d2b8cb81d0ebfb5b6c2f1460 = "b3883a3172b253f51cd9343acc425ac65ccdd280" +ba4b34d242a77de0f52be559226301821acb52a3 = "a61897710f42d01f272f7d0d036bb7eb0913c5ac" +e2a0380a8423af2c4dca9abfe2c6a2db4b9f416f = "8516ca27a2ba5d0f5443ec49a1165e4270034f7d" +e8464501689ac1fbdd53c42abde3bbab50196aa2 = "4a158adf1a12e2a8614060c8c53d31cee43b9045" + +[a9a6dfa9-9169-53da-bb41-f6858f5c0cd9] +6d0807781af4085440677c3033eb10b7c6ef6aea = "86fe386294f2b486d4ebbaa1c98cbb4bf21b9012" +97dea1d4c03adcbbf771d5b9143cecbdb5db5b54 = "4822e703091e4a20b89671f4119fc873468be6af" + +[a9b2a840-c9d5-5181-a245-8df664c2d6e7] +039d5a20786aa55f04418b0ee42a8f8043245db0 = "b91dbb329cf8a236915a3b2d7f926fe8a58876eb" +1b4191994c134ee26766c9d8a17be679c337b089 = "08719b0d261f9510e8b59cb6c67d2892839b15a7" +5c589616714a13ef02a81dbe3e9a65ceb91585eb = "b5cf8d43174ee45731b2087faa0519754e306feb" +5ee09f3749658267cbb24b9f21dba5ca81e56db3 = "00cab0b9073cacbeaef715a0d1b488782899677d" +6a44d5bec978480ad9ff9370ee658e5d6d2b921f = "c4c1587fe86dac5eab1c7c35dcef4515b0aedf3d" +6a9bb215477aad5eff80c33c52db1bf1e5f91834 = "33b65e64711899cd98b7201d48cf7553ad2594c8" +9481b6f30af1d4b66c865d483ecf38bd486dcd82 = "e8d11ed7b8add9f8dd1b666f767688fb024fb6cd" +a4cadbeb8a65bbd0953cb4878975f49ace4e029b = "4b8ac192cfcab0cfdfa19b19c8226b3e56bbbafa" +c15d8bf4a9337b939f71fb83032fe1f4af1be507 = "5c6b77194d102eb641e9bea82421f6d57e8d1406" +e033434309201941f0d2baf9d719980c8b80bd32 = "ae36e6d957311c0b6c71aec090900894255741fa" +eb1e5008aba4f8b18dfefc4b662dd31481a174c1 = "15a59524b1bd26dce8ef53b7d35018dc9c4bff7f" +f95ca7ce45ba960e04545c5a62d2774829d2460a = "582cea17ab7c19890df5afadebf990f2709678d0" + +[a9c8d775-2e2e-55fc-8582-045d282d599e] +6b03efc663737d7033191cbdbc61f1852e84c203 = "809471563e9ecb06deda615d209c893e21340c3a" +7932f253e557d3203c8d427381681b7586ef37c2 = "b0e3109465c9dbacfa2aa7e50c83f643ba5fbb03" +90ae564fb35a58c9c12321b50c1aefc58ec3b0c7 = "4ddb17a45e97bfa6b2504ee79b9d5d99e4f2abb6" +d7989d67faac2a82536fb04672866ca49265032d = "18c2b6615c4853400691f52530b8fb3292c90013" +f067a33af5cb1f214d2c77332305bf3fed66eeed = "39fb7b181c5fa7a1d6242ba4a055f12227ad3318" + +[a9d5a852-de8e-53e6-9395-5f1b3e4552ea] +12fd81796a9d37165970427eec9b62d8f1df90a4 = "c463e52fc8fcbc5b3e906532247793a86cf8b74c" +c41e080ddb1f45746724e9267c616c175c0e7cac = "78a434ca85c5e8d93b0337fb21f282e5d5ff898a" +f83fb7e66f5dcb2529e85b6efcf52bb1b8078924 = "9d39826ba4efc82278a0ba204dddd90df20aa122" + +[a9e4a3a0-3b51-51f6-8ce2-a898b8c5b12e] +02c11bb977797b587eb51cebd0a44fef892029d4 = "ce7dfbc8687606ebf4a82f675ae6984ad18f3736" +293191b84c12b5509e9c8d42a3e25ffb12de6869 = "3658e59ed2ea269b30abad86ff8fc2fac6ea4956" +31205e66adb8763e71496a4439d469cdb35e4cd1 = "1145e8dd3badc6552e1accc3fd7fa0c7e4a4fa7f" +4cba32e9179119a8b3e6318ec1ee7dfc237010c2 = "f29937baaeef40171c6cf2dfd6db6ce1dfa291b5" +a61772a7436421e7f94d8a29b670601e44c5c1d3 = "0ee5bd60ef2cf1b3fd8937f8119bf493798e8aaf" +dc37d19526ac577b450a87d3ee4de99c8dbb8ceb = "e7eb6537a7198927ea78373c013f52c34c062554" + +[aa1b3936-2fda-51b9-ab35-c553d3a640a2] +6f29103d07f86f5efca99582b2e6fd5bc5036164 = "6dd03fcd1f511d9ca4a2e11e4d8518643d6bfeee" +da4ef65290c072f8a8ee358cd264e325d35568d2 = "68eb5d223c5a1ea66f48f36955c37a242f379d05" +fcceba1f8db57f5ab6ac2135069de3e53358d8c7 = "284218b104c41c12a27e964a715a02dca71e879f" + +[aa370962-1862-5baa-a5c5-5b94a507aecd] +630b8bdc748dcf496693f9541f83fbcc3a178a6a = "1be396b9b0c9b8caff14219071557a62931b161f" + +[aa65fe97-06da-5843-b5b1-d5d13cad87d2] +0e245f3d79955a0ca1cc2d8b403da061a6d06f51 = "d21a7f9bea679d2120720c949b617488ebe7b9f9" +59f7506a43118469d07dbed1b715b59930fb02eb = "1da0d93c1326d20c75a4561a260ffbbcd2adc2ca" +88a912445617cbf06f4ac6ae2e5d72ac1f068130 = "efd1e55302ceed2930ec589bcc15084a4d400c93" +a0ef55d9b4793ea0b440b2d3290d52d05678b510 = "9b151bbc87f9a64985269e47bbc8566599bfb07b" +ed12a700893f650dab8c7f1cbeb991861d221029 = "085d56b2225ef7185e2820e4ffa3e9d370f8c136" + +[aaa38521-fa0a-5270-b933-2d2596b09448] +155a23a305918f603dfcd17013f9e43596b3bc94 = "f76104b50e04dbcccaef5f01dcf2bde02b6986d5" +37e6338c50e7aef60b7596e3c2576d32a3bbe012 = "5d4e8543e20cf0ab62427fc998ce8e76fa65e10c" +5885e7be9c56d377ec7d5b4b00fbe9fb490b39fa = "fbb6d6fba12d7e52f8deea47a06def5259491c16" +9710407e523a4b38b4e8940c14dbbe947f088257 = "ed02894c49f958635635763e236d84f33d00cf4c" +a2180d1d5c4c119671430475ebfd37a77e97b046 = "b881b6083c6c8a115ca2094d9646b62f1a96f440" +a5f00f221d07d9dff6f79d6f8de1c3e623de3ce6 = "6d9638f7a8999bd5ee629ce2351a4dc3c4d24a90" +b3bc85e70b92379240810289f806effd71122919 = "6269a93f14f25cf4b1e07577b5393c2ce9600030" + +[aaaa29a8-35af-508c-8bc3-b662a17a0fe5] +05d23c6c4d56f1177e1a0eecd1d629942b876a58 = "ed470d75b18f9d5ec0e0cd401bc64040313bc7cb" +11a709c24493c2d83279a77da425321f4bb7fc1c = "bc9e2a05aaba54e7cf3d3eba6bc65c20cf75ec5a" +3c4c28ec034931733735c8c49e60906f4b4bf989 = "cefe1554e10b25746863d9a8efbf4769b9d7b842" +3f1fd76d943cc8a4ab600f692cc6622d1b8fba76 = "e56267b4b627ca13358e0d87427f308247075228" +46f7ad51f365ac4a9e8219857296fb09b8ba0ac4 = "26c30db2effbb1c55900b55109112f5986a60b8e" +4e43f006f9d66f8a481417a14ce9d8d42a183ee3 = "2f21dbb29653c4cab0be64fcc9168790c95486b4" +538efbbcf6fef61a81b9a95bcb97eae01dc11282 = "d77480300abc9dc82b6db4498debc28b4442938e" +540a6122df714a3cffe3f8abf5ca3ff08abad326 = "2b91d058a611a98ed525717ea86eb44a7c8af532" +646cead756d755f0faee08d552daf7fd3cd0a64b = "163653fdeb22f778bf79e171fe15565dfe494d15" +7b740ed9d2c2092ebf922d5dc87b6dbe1731976e = "077a7b80d1e82b34592f5c90f8559c2ea7a815cf" +a496ea01536d8b363567178b6a4cd2a8186980e4 = "cf3c86f8ff6564f3e919ef188c0f82dd4702adfe" +a8ed856606a241d91d8c3755a066e7cad7e4d706 = "95d21553d0d167580ebd204ab401aad6dbf89f82" +b7dea1e783674c576eadbcc349a084285c794f6d = "07bd7724109effebf8709f679764bfb471464ed4" +bd084403ddb2348f9ae80eb98a46430fb8397684 = "17cb609579993571ee4eabd2c37e734d7e74057b" +c72d19cd64b047c39473974d4ff1b2c8268e279e = "9f705926d201c4321bc43129e9e279bd1672b63f" +d10b6e24abe07e25e490182af93cbefd2dc4f359 = "f4b5ce4e4341f7242c9fc570a6116c0606c44708" +ea03689a96f5a4601894959a028b390e9fbf7f73 = "12b903764f343c99a555bce39a8c705c6e87a691" +eae74fa9295565ae136772a02db6685cfb03cf88 = "41ad550d6b750b1f1d01dc2919c964ba3432e0c9" +f7c4e80923631626519633ffd8983dcb8bc67a3e = "c4433d6d10fce316196a80194929939329996c91" + +[aae01518-5342-5314-be14-df237901396f] +0b053a1510d89c84c8aea281d8029edc99c1236a = "c310197459e0d07f3a83d11cc8d4770f706a5160" +20c3f64af203ed7744ca98a9bd3a29508b79f0cd = "67bdc2ac5be33401416702c8a02c36d5e85f199e" +2effd518e6efcbdd21458fed32dd0c12eaf3c995 = "151c5b1048939936046084c7e856afde0ed169b2" +2ff93a71333a6966223735b5372a7a04862452ae = "fa81ec6693a8fba11ca88b863e9fa19c099c45e8" +3f6d82e4b342c5fd1d39c957e5ce00f36fd84aa5 = "ce2a79072b92b7be8bc5119acf7cf6c0c4ab8ab0" +3feae43e4b4418371ad1157397c7859779311d84 = "9722262d227e7040ea8361780a52793d3a0ecb5e" +49027d7a529435afed8caeaf7655dcf952d08af0 = "c1587597d843ec8d849fd1c373eecc54e89c1a0f" +4f9c640b44cce0c8f626053bd66ce5f8ba29d1f9 = "92ea9a5adc170f212a2e96e38c01fde36a1438d1" +6fcf7ecbc2e697afb3c693d5d0c673fa956ab543 = "37d2ad411a25bfdfe6202437b1b06616c617df08" +79d725823904dc1059e353a0b52dc5290f7551e1 = "be106bd43a0c8cd906cc6d07b16db85afcb3d93b" +9d31a8065a50e0ed652d95ff4464c24d0dbca573 = "520153df1efa7c590dd1ed5cae67df34983371c9" +a104686de271fd8002388b3e597063f5507484bd = "dfb51897e18bfab238fd74347de9ba79dd78f8bd" +adb5b4cce047d1e2145ac6d9698c8016840bfc2b = "316aa171f4a42f5f62cb2755ca49277d68e4a261" +b0b130b7e3500739f53b021c8105f0f2108d69fe = "c9061b476d42742bbd07fe8a145d143ac9dc6523" +c0adb5eb73037b1102cebd54034dba964d6a2f7d = "7fcdbe3e84c39140f04cfb523273ae155a295926" +e50f11c6e8904eb87e386652f69a25992ea988fb = "3e79dd5951c135467b486f1de0655ad69cef506a" +f7326fc6a87174280fc80ee609704a72454102c7 = "5125986c8f6a3585f5e22b6fc4cf74e315bc3802" +f956a8084ad01b573068a8cc292b99d3869cc468 = "801496392d6c07b2ca6bad80d4df78805c8554f3" + +[aaf54ef3-cdf8-58ed-94cc-d582ad619b94] +14575dff57e1d6e8125e4efd3a8cd434eab4f183 = "c6ae9e4673c2641ff0bc6eb0eeb6132468b2adaf" +345e8117b9275d565a7252eb664f4c87426e45ed = "5ed7461ed084b6bcda309cc6e4ba04e24711c6f0" +6a376d1e568e98b2efa501d1592a5eede585f727 = "d7e353727ec4fdcbdc35c5b86c84ef47c21c1ff9" +754b56774444e667c9b374ea56dfef21cce4e194 = "4d28db283b7c27495f3871e119c8347d37dfcfd5" +8e0e7233a5b21ba67f866eb5663f837ee073d5de = "eba7f72cdcc62b8f5efca4fa06208565701e4386" +9f1c5b397ed28de7bea2d1e3e5e70ace0144e3cc = "488f6c85eaada80b6f5e4531d0945db2179f381d" +bc79efc420552c29b66415c018540c75e884cb4b = "0d3d95dd227914067c5687eaaa937dd5132a75d9" +c57e5152d2d9ce4fb35d2fa3e2adea130f464ec1 = "509c2a106394532d75a6bebdab08a86a501cfe52" +d68911be5c661488e61524bee5815314306c29f9 = "ac2f5cbdb05bb3693cdc1bccdcd8bd35cc5a8b37" +fa44a138b65b72a584332d28d34f0f6744b835f7 = "1d6b88f65f0b3e0c1283f8bd66246903c7035807" + +[aafaddc9-749c-510e-ac4f-586e18779b91] +225b69924ca83818a6e2c28d55cfd46d50ddd532 = "823658eb1f4133cd1191bdcd0cb474008297e5f2" +e2077d5e20b8d362338745c3f4282a7f567767f6 = "397946ab8d59ebfdb225303117d6adfdcdc0f6d0" +f2ad24a647a0f97102ecb5f9b984e77ade205165 = "7bbe9892c2573491aec6897618fd881fd1b92568" + +[ab2f91bb-94b4-55e3-9ba0-7f65df51de79] +28067ad4489314d729ab04cf7ea0feb6ff07d11c = "af394ed21f2280ce3df4fb1ac6fe826c39b45938" +69d25e71c6d68c043ae6437a6c45dbd902ba4bda = "e298a52fae77d16fc8983f65a9361302e1dd4e9c" +a2d741fe08318d3c7c3ac39bb6d935f5d17b8efc = "59cbdafc0992e22fe2288a226c3200870a617208" +ae25317516937f2f074aaaddc3ef598b9873755f = "915e8bd457a1f07f3845811a8936675f7389c85a" + +[ab62b9b5-e342-54a8-a765-a90f495de1a6] +1b166fef59e0a6ade055b353de209af95d2a35ef = "258426caab8c2a902747b111e83d85c25d0a1d05" +42631f914ce18e4fe17e909f317a859aeeadf76f = "6fce5aa3855ed8c3bab82e33a2dad928c5fc4ccc" +b1e273d496539f9dbbb8818d6447daf94d1cceda = "0d8cc90ad83fb4962033a62d8dfd309051f51b06" + +[abae6431-9fef-548a-acae-ed4840f45913] +8a378fc878f340e5c95930a763f6dcfe9fcbfccc = "6401a96e7e03365af5a52daff187470acaf10e6a" + +[abb419ba-9efb-57ab-bf31-c36f6031d4a6] +082a0675316065528f52871641b2754da9388d1c = "3d44483097afb5ba8d85d051a384cc693cccb404" + +[abce61dc-4473-55a0-ba07-351d65e31d42] +61b23a4176b735cb95ce097ac89e5a3533a688a2 = "82438f396a959b07f1a016531c6697cf8d0e8d70" +672f8495069a00f05ac6dc023a8be69e2d8c0f55 = "ec953f03901d9485d03c455172a5ba6243b0d715" +b7bf489256efb0f06ec39c06b4cc0056f9f5548f = "a4ddf54194d236f5eb92cd4cd4ce0d0dbbea1cbc" +be5eaccbabeb36de76f7ac06547400c74ea82160 = "de3d7fe47c72552cb0ec4e6c6bc3e5b0881343b0" + +[ac4eac4a-97af-5557-9a41-b7bc20405a4a] +0f6b1d0c4b198f9267c4e56df2389bdb26ee7215 = "aa146905d9dff8679aaecd07931976cc6deb95bd" +2baa812f3ea765908e9b3d6e045764ab23488cd6 = "30e9fd3ce0890b770b19c3ef656b31a5df092108" +d390a6944949b0a68ef322fc98bf900e6f08192d = "39c1a105390772ce6c287308b5d61062a339cc49" + +[acd30bff-8734-59b1-86d1-c3ef2efb63d6] +169db94d89034120a5a6e5eb81b56e5f171acf2c = "d38722eb0d24dfac6262375c91156adee81839a0" +21f2def57f284e1fa659aefb1b5107c63c182380 = "4418fd1ca91524704c659f136ca3400078112cb7" +23e9b74d7a69b995acc7bfb0ef9708682860a7f2 = "54fe7121f64dfa67d1deaf06157013b7b0e45425" +6d7a4fb6cb23b73c71f7a34e9ecd7a7d30292fda = "86dd0ebf7268e5b30a810ef6b3c145a965e769ab" +779148e04a1735675a817e31d2c4fb77df5f3e83 = "5ce40e96cca0d874fb1c1d7632290b9e14978e59" +89e84f128bb342d93d991c34e7034be8e05a4213 = "2e184060ad7f3328294d24d3d70f01e56a5abd4b" +92bddf4eb34284a845c40e333b37bda2a711f99e = "f5f7343063b08d54078aca714797f35023e9c2c5" +9d43a55b11aac8f0beeaec0d3847b1f3b47ff741 = "ad41d781513cb67008bf892c92149d0316e018ab" +a1baaf6be8e54de4a0ddf27238a9bc7132d21f5a = "4d469803876602b02dce2cc66d4c678eaaa966ed" +b059d7988abfc525c8733dd511ac92a0c8e45b2f = "c3a1bf882d247e8656b1945852af6bdbfba5318b" +b1e43160148846b9271c3af44a63b8a2fab1193a = "8fa87776c0be988dae960cf1891ab849dd649e25" +c09122a71c22f04f444f71e8f84887ec4ccf355b = "c18201a5dc95c577a8db5f8dcd2eaca7b18f94d7" +d4957accc1b461d5b193c73a98ea1861b33a66e5 = "38e4be47e565fb93db90cbdc900b68e693ba1a70" +ed7f787bb165781c5241e60ecf964d60bc37cc1e = "5700345e102f0efbfc6238cc8ff9cbd082aebe68" + +[ace275c8-85fe-5afd-ab71-dcc95eab0b15] +b8a8acc8f6937ef31972f7e4af307b1d4b348623 = "9036fbbaa729c678e497f8c049f22f3fe831eca1" + +[ace4b8d5-fd3f-5fda-b564-522057a42c15] +175c7a5a78d1fcf7c601aeb633149256f6de5b2e = "e225fff2b7fc97be668bd4699552059ae5abc281" +36c92bb4f746ac45ae0ebee05c2454ea9be23ccf = "10f9e27a7be73a94b28958e55909e0343599db52" +3a5691ab4b3de285dd83e9275b0e40bbcb722514 = "d118b75848035ba5708557de9cf528573e3a26e2" +54379f35b24f11bc789a23cddeb764cae2d71019 = "4762a240babc41673583b276eb67515535d2be12" +5764707ee5ae4cd02ac136be6c2b26880bb38cbc = "28b6bf3b2d0469bcf414be1ac5db34da3511b5d2" +68ddce4897dc8fbe9797960b7a2c7be200ba2ff9 = "20341db693253ee50ce1a7b9e6194dabd630450f" +6fcb5ad9efd2a64b2fae29cfb862e11d5b8a7b4e = "4a35f71b469dd8db6cbe42da6a3370c4b08e1e52" +b8d257e9b7591c0cba6b5f86b92c07ff759c44ea = "e4f55ad7eeb5c55478b6c1f088ee49e332d7b70f" + +[acefaad2-17a4-5d8b-aa08-e18ef75dd0cf] +37dc501a4d80c1cb6e7ea95e3e9370c297c492f7 = "c64877ac327297eb75fb8e49ddbd25c6c5d98172" +8da8596a2ef43ce2e06f8c87118e726c09f0ade9 = "cd5bd10f7b6afa26ca2738bb00dd8f03c8c9420b" +dc0e9bef0d59b9110f22c0828a90a28a3c0b5926 = "6330a49c0d3133e3d563cca1b73e7599798c6777" +dcfff901664396ff8e3b82e2aa986e0793c820c7 = "f017af2be3a0340b25c4140f2b9d26e243cb3cd0" +f1cbef98ea6a95183af5cd71f3063435df3af345 = "d3d4c0a1b93a4c7d6f5fd6b1df84c6e0238ec571" + +[ad72c4b6-2990-538c-bd38-e122d63d24d9] +3c0c5351a40362d183ce318ba0c156b3ea3392eb = "ea4e6fa77830860db517869ab18bbfbc6707894b" +bb2045ed51c77c5b4cf0149f602abd803db9dbee = "8387647d1470a166ab6dbcfdacc7e3800032e74d" +e85b555f34ff55d72e842f0cc16c6fc6e8dc4a53 = "e0f26584f8283a16d87f6df935419514fa12ebd8" + +[ad839575-38b3-5650-b840-f874b8c74a25] +016b16dce73ffcf6650633c609619b944eedcaee = "d8485996c5ed17b0acd4841751abf3f8a70360dc" +054fb44e853b8fe4357a032cc61a5da7c6507942 = "5980fefece348ae92d81afddf0f811b68c95bf79" +0ca4bd334358e24ce506baa0540164d110cc36b6 = "06f994a7989529210e4609ff144a696e0454e13a" +1a3ff2bc32d3f8bf4627312058e1001540dcd682 = "d981100751919a0fcd3103405c1086a7d5b5fc67" +1c09bb5df09ab8cbae7e511a326008ea946f3d69 = "56895e96eaf762c0c31a68c1b9ad6403a3a8b05b" +23b655239cba80b7092d4d16829421dabccba920 = "67348da0356e3a022226b9f7f114c9a22f3ad26c" +2cf84d24c359af821a496f27debe052a6214d7aa = "a123a92fbc514747efc1c35bd3d28da424d7189b" +2f642c46e55556628841d1fdbbf9f0400d3c99f3 = "1c25428913e15f9cd8691d246b6bf8cc94970941" +3032a07850fc7ce9859c69fd6d1c2d44054b70fd = "731e5c94bbc3b8321e0bc72886bb37bd8500632a" +3f931c6db4d32ca44d24bcf01efd2d0a853d5709 = "bf9ca69ab22c6f3969701d9250102a311f9aec91" +408244b3f62b5d8f03615a1bb82fd3e312ade130 = "b981acfd8665a88549d05095633c83e61610ee4f" +56042381db4f18e92da1d7fbaf9939c5172c8714 = "7d4d2c0414f756f238e59b66683a6fca139e4629" +5d41efb08986ed48c555fb8ee1ba3e51617dda72 = "51c3fe2f8a3c8adc76861a8bb3135676318a6daa" +64115773117e53705df89fa4f3051f29c7547b6c = "b4d8860de4b916f533837bfe9ab5d96c23c6e625" +781b62ae3e75f58b5afd4a49f70ca389e1c2d491 = "2aac56fba14ae4bc74e92a4079f612c4c647a818" +8208e510e328715d8939a85ef124e5089c436ece = "54234cb3aebb804da111789b01c73c1678e00495" +a44b3bdf653fb7e050b927bf3ee56be476e22459 = "3482b3f1ee481f6f5b81d118fdb224a373599305" +a9ffa1d4d63f64172f9a601921425787b22af66a = "f5990548e91e3b79e714e50e5aeecb51e998d144" +b48b97b0a8b97532596f4e1727219b850f424dae = "17d0cd1eec2682595d4a9dfedd2d0b646886d0aa" +c66df0837ffd531c95b62ae26fa7efc07ed74265 = "50df0942279928a821a46bbaf9fde79047f0453c" +cd1741574154caa7fd77a5e9142b6d7f68ca6ce4 = "52dfd64449f6076c5557194933996d6397867d17" +d170465d2f01a48c74c2102e3a3c9ce75ac7edb0 = "7787d90d17a8d72b2a2f7a657a3e1e2158241023" +e25741d0634f5ab9c6f5052e829eb88d4b6837f6 = "54841fd9642e3eef1dc9bb170aa891988ab09934" +e6b64d71070eb391d0c44ea66d09389c241a2482 = "8201131ca75111387c24d9aa904c5735d6675506" +f2c88bf58f4ec7edbb7c6f0dd90dbc959d89696a = "3873ed786b5e0480f39326bb8993e6ac0bfa5883" + +[adaf3d07-42b2-577a-8487-f34ffa1a67e4] +95866c0b4b8495b5305f6f357c982f3dda809419 = "7bd3cd0d00763a9af6a3abd9d53e7b1b0eca6741" +d3cf086d73391788d142cff5ede91fa49f3298a1 = "13399e2d88a7aaa72d9f49506b01798c7b2455f7" + +[adafc99b-e345-5852-983c-f28acb93d879] +2514bad52449b099a1d0f05b683a6019c0ed4f0d = "0c548e80a26a30f86c2c243d1417ae253e44d3f1" +5c1eb0f85519749dd9a61bab56d38101f016784e = "aca22fccc5c2f6e4a3039e4f60256ae17c43413b" +bd17a9293b65100e94981a6529784c97ffe58501 = "b862df5a968646b84f99da7c5ce7b22fbf01b3aa" +bf13f35107d6df744ef8e903cdda467fcbb8068e = "6edeefb1aeda35c89d447bc20efba2097066701a" +e70e564a12c70255fbdafb9378c1ebfb63daf63f = "b517ac80ad3f3951998c602ea9bc31c261718969" + +[ade2ca70-3891-5945-98fb-dc099432e06a] +0c337ffcd773082bda1eb9dbcb444d8ae4d28920 = "aece5f9877c7c1caebe794e869a2df8e2907c713" +1764fc048a2186438be22dc7a3a34e87b333f296 = "7e18dee416430221ee92594cdc392e9f6de5fa7b" +333857d4166346beac830592dd0f407d6a44b6c6 = "bb74a3d7dbf6e5055386ea2c98961bec1af69136" +63cdbc768bed7a5df8a51f041ba497da3fb96cef = "d598ffba92bb82c242934e532084d73c46d4ac2c" +6483642ae6f657a1fdde50b7aba64ab77db990ef = "a34c300884616bc689ec2fa226333702cc9306ba" +81b9c82024ef3819b102254eb7ef81f1861d4c65 = "11c2d94594752c968f5eeab704e99d43b67b6577" +849320745c708826629f9a581ef8fb1e3435383e = "e12b58556e6b1cfab7b5b3b6144b418be8419f87" +9581c4a8347a466110359c52318ebce8684d94b3 = "df0ac8a666a59d85a7939446b41194d6ad6bb2f7" +b763f6e30135322399527c3183e852502645ce6b = "6705b513e1a0d0bd509fe6640dcf0472616eb561" +dc6ab248bc372424456782689e0c79ecbc4c1470 = "672f0b304cceee99a943eaab367c0d81ccb094e2" + +[ae029012-a4dd-5104-9daa-d747884805df] +4a473fe2aa4a52333bcaeddcdc3ad9619c09686f = "fc07f83ee89fdec5cf08886a61271fae8d964cf9" +53e021464b6a7eb324d28c28eddedc78ea6e0e01 = "ec6473ecb363c35dcccf51dc0f98c380e6ff6119" +5683745f03cbea41f6f053182461173e236fdd94 = "a237890333d7ca716a9aa15866f18035530b0a5c" +57b2746da78f15df7912a1af17dfe3045471f1c1 = "a96e21b02481d7a3deb29344f3b2421b3ee6e9c8" +709b1b6258b5d672e7c93b75539a96b93b517cb2 = "e3e0763059de19b4335ce32939d82ecf4a0f5b93" +71b627ac48be126a9a8eb7a5c2dec1d4368723e0 = "e7d5e0320a5f931af727ab13f85fe7852b7cf270" +94727fb1f8dd5192c36ff38372eef82120e73663 = "07eb7696023ac601e9ed0263560c9c6f4abcd1fa" +9b7fc1e94b31a9e6db27bbb0c8df844467f20114 = "53f178b897d4b56249d9e63d2383c785bfd754aa" +9bdae246b49439d7477f647fe61a0fd3f5ecf97c = "bea2370c9d71b6830509ede73516956197c40f23" +ae8a6b60e578706cbbe9b85613b03a88b23e46ca = "6511ceba7e05199631bcb87aabe5a61ca533d564" +b5169a6ec1b85804b13d4c29f948b288b3cebadc = "57dc6a296c612b902fc6dd3d6a538b92dd25d9ee" +f89031757bc0ebac8d052f3fd8b401006d1b17fb = "f2646699c3c2416763a257bddcc8cb321e950339" +fb6eda1be1a83c330c12801d6cf652ca7daf323d = "c05e1c8d0c32f34e51be549e50d5d3f92c3ecd3b" + +[ae04f764-fc8b-5ee0-af1c-aa760b5c9409] +4bc28b8405846b400fc68fb01e3c62ae1e716231 = "594401d411c6c399d35893aec44ddf69ffe148cf" +85a19975aca4f91328432b22fef83bffed41f832 = "6b7658e5cee0a3996e9c919243342393ab0b5910" +e7e4a4df881cdc9dfc8cd9a4ff312a79cdcc0081 = "015a8ead8eaf6e74fceac1eef93aedfcc3d41b1d" + +[ae2dfa86-617c-530c-b392-ef20fdad97bb] +15fb0eeaba4c15f9045a7f7b57060694e4c8d401 = "e69769766d8a96d8e17498f915798d9aa508aa62" +4c7eae1e937fe4751d4466bd3b9256ea22f60bdb = "3393fcb93ab0f74f3dcdc29f5ae5ef445b9af037" +6b4884c37faf5daadf97d51998c4b76cd37788db = "f33fb6bb528c3f7112784e249650d88ab3671e59" +70b76dc5a6bca736dabdc2139c3a610ada99cea3 = "073ed026738f461bd0f6cce957452a314f38cfff" +7286c9ac923ee927c86aab1c1f3844776e10764c = "a45fd25c17191257abbe3151b62b7bb5f0b14e64" +e70b9c44b19129692a520ab748ec5d0ec758fc84 = "42db48460cb4ce5e46ef1d7cc44658e0417c0fc5" +f973cc921f3bc2fcc0c717f9f04753dd043f18e7 = "ba9a4ebcb99cdf944a5bde669538e21ce873a924" + +[ae5879a3-cd67-5da8-be7f-38c6eb64a37b] +7957112385732861634c1cb127df4f45e6a6b711 = "20aea9ddc19f28895988c18e04a534faac64aaa4" +82b01b8cdd3f8ef44a7ab17b2d9014b5fb606e38 = "132ab91a65fcc6be6bf193920863d79bbc747bf0" +a736e8ed3794e6175ee3dfa44efb62ac9c395478 = "0cd5732f6f211993934028d08ab11515e1d6a5ba" +eb666dbd9f6354f07ae9e308ca96b7b1be3d1718 = "924b48016ea390c9b90dd36809ecf1531968cfca" +fd28e6a222ce0797c0af8b1c8abeef1ab091cf0f = "e59a4fe340cbc2b5909a594e667ba188ea717581" + +[ae67c156-61e5-5f29-8b53-c30e05e1ce0c] +16764c37f82e108cd0359374e270d1d3a0b62e08 = "e662f022df69589e1f78453abca82ec6a6f0c135" +1e63ac24fda2748429272a7e699ffe6fec3edd57 = "f37e0fbddca677aa87e62b197269e081d3bd3cc3" +380b5a3cb995800c08a8b060ea51f3c40779d7ec = "f80caa1878bc100ff00a6e023afad96a4fbb4f88" +5550184d986d57f7e819aa17f9755a8f6f4a3b65 = "cdba8f335274f57f3e79589400ef3e017eacc45e" +8d283e2dc831568fd503350503e8a4e9b0b0de50 = "5cd31d27dda00342ffa31150021453b007a7f3e7" +f811d5fca13579698ff99853eeb0b9bfc3a681f6 = "df69a426155e0358f5731e650ecd25c98d7a7720" + +[ae8d54c2-7ccd-5906-9d76-62fc9837b5bc] +0b8b3cd95ac57d7369e924ce8a1af9b71e4d5a18 = "ca64a1f22cb7081f26ccc4b9c66eadb8c60f342f" +13f5645f7048fa27d36f463fc6ad0f2deec7507e = "fff610822a38df581fdd0e71555bc5ea5d088d5e" +18f71b83cdbaeaf69755c67d657d48f15a8e2b1b = "8ad2ed7148075e54b0634be0d7182a79b2fc3834" +23927e60e1b70875f7d394bbc51056dc145a9a5a = "db65e6549641d2109e1c6066e1f4c3290421e333" +2aa223c688ceca31d9236406ce712f422a5a454a = "14737e6455d856043ee60274dbf2df125e1a97ee" +32aa4bb905107fbc3aec5529671775f6fb5c7d64 = "429b6c0218e60695e62b46cd98058d595fc2c630" +34785dc2f7d53c2fca23d6ca5773da66938f0601 = "c4c2384f90d8a3e1bea6e0edd5fcac5bf3417b53" +43997ffeb7cadd23b60c38b91dd5077d5d94d54a = "e118b304445cfec7611dc48ba0dcc1abe76c8516" +474c33c2022fcced634d8a3e5ee00f76d3f96e41 = "4d7ee5b9d19b08713967f0a54884e7b9d7871e6c" +4f23c7a79d4c6d835c4f5b3b1a74452812d9072c = "63a373eaabffa3afeab31731d414d29d338d5628" +4fe8c013eb0199bff06add6e34b7c37ef73c615e = "49715c3eba9e2a8b48db65ae4be1491361f43987" +57d0dab257d107491d02dd883ce551d0388a356b = "84351c23a88e091af25516853e728e3290ac686b" +60851707467dc7679a85a984b39d000ac77006e0 = "b81fb3e52ad9ce17adfa2feafed7a5b086b89de0" +7ae38f5445092423c78b23ed228380ac056788fe = "d229615d6da537ddd9899f2a18226e0d5a1a38ec" +8398d44aa9c48205ffdfa266b384f57130e30d11 = "c45071e3e8b1f5ee85902fbbc7563106a1e233fc" +87c0c978ad545113ab91d4367661e8b2f78d5b87 = "1c4265901b6366c2ac585f9ba225c2bc9105678d" +94700cb92bd103f7ff4cd3009a5b866ebb4402e3 = "77cfe3892ad19ddcead40f86984a8792975dc004" +985720a95b0626f541d171ea64c5fcf05e2c3e38 = "9c3d53ffcd0b648db14a373554116157473a6743" +a0e8a4c5cdb6856eafe3f27d214bbf64b9d1de4c = "342d1b6d0e98229bd19983aae995265f73a0642d" +a8c4e18c070b6b9484096b4b1646ac7554951367 = "2560d147b80a621f3750ab8bfd865361746b0575" +b74e64dc8b66d911e15d2742e9480f274fa2ad51 = "18a878796445c6eb24a6f473b5034e9b6678b662" +d2af73cdccf669607bbb208817cd261c8a63b923 = "4766b0cf633bca245ed2096e4ec5ab16b734e489" +e8ba053d66e6d55eaabb88945394902753440471 = "0d2aa7d4bf9a0f8fa35c756fe1d382c3e1214bde" +f4a77f298285b6f4b84a7b9057ec1570c7dd5015 = "9365b7d64370dc136c3f2d6c42e43ca9ce8ac56b" + +[ae9b84b9-e24a-5537-afa9-212627cd7ad6] +0d87d2af7650fdbb49064fae93235b195f901847 = "cddb4c977156edd344e33ca3db118904783dee05" +1a4905599d1c20ea30024f4c103656bc9a789e6d = "697b8b87cc1aa21d49b7b0d5da867f292580a34b" + +[aea672f4-3940-5932-aa44-993d1c3ff149] +3593e96719ebdc071086d442eb0bc805c0ad6c0e = "f2b595e233b0cd04e1dcc1aa33689e0a11b64871" +36eb97102666db032b9a8df003f2798d0ab32187 = "9b68aea5aec8a4b6b17f744e1705b8e5295467a5" +62da8dd6f0a6e7f83fb6b157dc3e7feeb0fc1b9c = "15cfa9f09d806b6aa00925e8e9156c15587d1e0c" +b1ceaefc7add7279ce6b140bba181f5c7c2401db = "be61bb7c7a2dca5ccfe5fda5cfe54d3f893c09f3" +c81235a0f3cf19b5cc564c0f8489eb40031ac5cb = "36cd01866ccd0d762910cb378ab2b15fa34fa9c9" +ccd6d208ddb09c58cbc23164e0a9f81d0518d85d = "61d9518b4b218fe5259b1d3faa4ccf30f93de2e5" + +[aeb4490e-d914-5f40-aac0-ef8e9431dfb2] +67674eba7eceb65667787ba92b823d2fb471422d = "7833a48b7d64500e6963a279be40ce2348d2ece6" + +[af6aa194-2a4d-5dd5-88e1-52944c9af9b3] +73db5fbfcee03c9fc69ede78a56998dbbce314f0 = "4bbcfe53998a3185b33c4e65d369ee287dff2aa2" +860eaeb25e470fdf68360b771f1a4b0c94c4f024 = "c93aee6e96606ca1506c65d86331ec2486a8125a" +aa40f80ee6369fd6e485b646fc472b396705e0d0 = "0cc5febf2a58c9b1ea14744d1cafb7d8b6a20584" + +[af85af4c-bcd5-5d23-b03a-a909639aa875] +2f0e2bffa5a89a1c1ed88d48c7b62f0df8f64e69 = "281142ea3fb7199714577a23402a5552ed5097c3" +9f6f82fb4551588ef64191e3719bdf1cf3bab71b = "ab68a7ba17a4bcf338c948634b512211035aa85d" +9fba6cd08ba2a77292b3aee37cf4255fcbfe5903 = "6075e88d0052b02ca71c9d29f972292da4a3c3de" + +[afbf81f7-602f-5a4a-9a77-738a1b1188fe] +0ae5dfc83f0b1554123f206751e0232630009511 = "0c5169a280ce5eb17237e6a7a871e383fb33367a" +195ea15a8fc042f3a03f923ca9301e925b45261b = "8eff5c57108717fed86df9dfbad07787e00907fa" +1e3ccccc8948b49b2d7a8aa3b9a305c0b09141bd = "883606c1f670fb8bd7049e8ae3d655cd9f0f1c00" +251b15a450723acb5292027ae92171977b06df0f = "4d711f1a930354e74a5a33463d71c716890df809" +2fd83a2ce48ea3e0c436e8ccc2430f7d12d166f0 = "93143f0c4953e7f500e4086709d32028877f47b0" +3ad08ed67cd8d4b09a71346a10b4f82508791fd1 = "797fe53670dfd948adf10f95ce4553fbcb36299f" +3bb99645ae240a25071bad00867094403ea6fb6a = "ad8fa492b3198a67380f63bc68b3174dab6a32d8" +4e5fc3c98694bedb54564cfcc9b5be0240113458 = "5870475f37fec36782777029ef79e5da54dc0811" +4f93cfc3cbfdc974b5d6a387a269f8f69df06921 = "0062f326ff038901e1f8d46a9565be5f21891d50" +507dc26ec77724a9a49b2baa798b84a1f8f0d9e3 = "66589816cb3630231331aa820588f1460c643d08" +6a36e1b00a288cc965c0eaa608d9167bce6fa81d = "13753b1f30883f09794630d4a46628ea90b2f79d" +70f9b23b8593fd54441ff04c936165c6eb6e4bd9 = "71cb46bbd5675f29825148d2c8c84f1990653f29" +800938ac8f39e5339c62e5906bedb6f9008f8a07 = "9861bb3665f308189f1860c178b524626797764b" +841cba763cab9b7beeb4fed5066ef307e675dbb7 = "76f8ac0e9a029a18415d0c3786beffd62c34755f" +849a42da623063cb3624094b5ce49beef346dc2b = "48a4b53685e4a17566929e3cd8a60c31196ee16c" +a1c5d86ce3907a0e1328b2de4d6c08d763377267 = "160140cca1bb741ade4d57044f273100adabfae5" +a9225cd3bc8ddc53da14afb71afafe37f4fafd84 = "7141e8079533f3a23125964754a2ce5a99820ac5" +b0dfa0c5097d129e2ef55e208b279583f327c1dc = "c8ae6c910fcbe1a8277d3269fd78ded183550d4d" +b1fedbd003e45ef7ae090a8f49fde1f4d2a1b8ad = "e7658b8efd443880fa94b0f35256a29e7d30581d" +c4854cc0a056609cd314906d76fb45132dca16d3 = "cd47145beceeace87a21436ed50615bf5f773a2c" +cc259f13c5640702421fb490bd121f038b9ad3d2 = "36150f3e2b7e3ae34e3d1925f0e7433c4824ce0e" +d06ac62469c9297fc953197d4c8786684c88d0c2 = "bb5f24bb6c7b1885b80dd9aac023228ad8dad47b" +d7d5ee13b9ca1a2c8c4b0d8d3d04f458744b3808 = "b2f9ca20cda70b8fb5204ef163237379f9bf873b" +dadabf145070d0c400564a0c2be2f932e8fe49a6 = "b8ba3c27132fed19316e19bc417847567aa2c3c0" +eb26c3d7744c54d53d3af36e7d294e7bec1ff9d4 = "cbf2bf150e62c36272818e28f53fd89b86a43ac2" +f057b816fe3f6fa4e8ba18898663ad5a200006cb = "b6f539b1996acc1c6e3357ffc0bbe441f1dbe4d2" +fccb73f263490dd79bc923d5e490dbfd2d64557f = "af211aa83a9a0627c257e3467306424cc0709704" + +[affaf649-2f8e-5dd6-a1c5-c612f82136ef] +81ecf5b9bed19e64860d661d5d55ce40347747a8 = "88cf6f4e1f1b8679a28873c1b834e97d3c564c53" +fd2fe64d04c3f5ee8ca32f19238cc9179357bf7f = "316dff366e232fffb98a0cfc2716243b33db6806" + +[b0ded4b0-f9f9-5f4a-acf8-134ab82e33a0] +a5e3b701580761769696912b0e080d63d23e0b0f = "39392da23547ecbd35f0b917a4dae75117463fe2" + +[b0e4dd01-7b14-53d8-9b45-175a3e362653] +251de4058209e637f8efe0df5c2cd91ee4f66ad3 = "22e7cefe6556f31f1783c344847f543fa91e0f58" +3c48c1df639fca39d7d52d67a908f7a86180fdfb = "72a44a2f3bdf8b77c41688e5f48038073cb73dd0" +519e70b226715dcc65c5b0097d120f77aac498c1 = "cb20246adf4781067114929a7256ca5934fe4a98" +718bda7ad2e784f1079b69d60b787850552041f9 = "cef7512c343d7ba571ab510f2174ab2015173937" +ece12bcdfbb0a2010fb59ad045310f68e9ef774a = "706a083da4288ff92efdcbc4f34866d4101a4ae8" +f50d6c25e625a8fafec4af834e31ddbf0ee66278 = "48c4a7e6d7582042cd869fc3a1ec3df8f089d9ff" + +[b1092613-729b-527c-9001-14cc232d79bf] +0f75cfe65c955c468b2555bf3640caaebc642a5d = "d546c9de5b9786595a0e8270979007b86d500e1c" +319c68718f0f38cd7de3821bb851c0f2632de0a0 = "7fccfb7e5603733df42c85c4b64b6fc422a44f9f" +32d5a252e54e05d7cf9dbd8af7039e0d523237bf = "c8532d14045b10d1b82b7c5e0bf5ff8a9b173784" +4c7e008f9097d3b9a843b82918bb582e18950511 = "6e69030c2f060f55b2d5324098df6e04e63ed21b" +7712f67b12711d5976d8e0abcc321cf813c89070 = "7fcd0ca51336b5509b9a66f2268d48b23c96e68e" +790764d9c20e7729da4b6ee608474af9dec804c3 = "43f3d83822e401a2da49d67423dc902f63d42d2b" +7fcbc237eed6df480cea8d4752690bca2cffc7ab = "754fa60d6365100954e594e2b9d79fb6e7eaf095" +8bc8148a2d91cb9ca62ea2c28be3425f6c404756 = "1c5eb9ea49c4cc96cc9abf4211077ef1bb96362a" +a116f4861ffd403ee62f2c75875931de88d9f083 = "f81c500eecc2a5d12e84c6890668498e182a707c" +c0b1638d9f986ead4b3dac4649db76d6d901c177 = "8108ae3a1822312b8d77ac9ee4af667f7c8026dd" +ec4aca0eb76990abb9a7f294a0618830d2a93895 = "d11346f3778dbb1d9187c1861c89680ef060fd62" +f971b5b7a1fd2b621d4507c658f8eabdb25141ea = "c91e0f521d85e835dce20186f4e53a5440d052b4" + +[b13ce0c6-77b0-50c6-a2db-140568b8d1a5] +158ecab74c084a34571381392d99f6371c4aecd4 = "b1cf09ddf11815b87b1dff601e3ac579998dc893" +354ea6336705b0e453e91432992c2c979ca57081 = "ab36905f0da96c3a64029e9970e424d992ae8e92" +3cb09a0a909e1a757b368bec962119f1f94e297e = "1c80d6d36ccc9305bff98b178c1260e2c547572a" +8abfe8a5f62669f9d72b05ff1f7f9b91ce6ecfa2 = "c06697c3b4fee129d8e763e485a21b0170fdef1f" +c36a10f95d1db4169bf0af7d5f6fafffbf21c862 = "c0ff8d5abe596033fbac3522f5ff584d118285e0" +c96ba4924ac01ec433ad76eafa2e9e83eb8f9b1c = "ee930bbee2efee1c0783e8d00771c7b32a32a126" + +[b17e117f-f773-52d8-8fc7-11fded9104b6] +350e2a754e4b681a81f05c3812e4a15b8ae729c7 = "131d83a6debc258fc546931f312650885f6377e0" +64022ca37709824e310cc3071a34948a0bb24c9e = "52f64de40592ba34724a04ac76ddb9bdf30dcd5d" +d0507cba8b0e528bd09fa37ce0a8d383d0dbcaff = "eb6207bfe8ad7f9f33b760a705d44d0b150510d9" +e0daeb60fd1037855ba96015c8d64d7925bbe10f = "c3c5bac2f2f534e9ace538b263daec62b10a25e9" + +[b1909ce5-9a67-5ea4-ba1b-9d85528f5779] +1dc18410c8ea8a6b94b819152b5346bcf0c5366e = "6505b3a217697350691192129cfbd63fd37ad007" +413ed34ed78026d50508946d74b536d86710ebb9 = "455e5a5879e43365b1c9815f83be292e085043f2" +4c65efaab4fdd734f3ef23d15371fbbf11243cd3 = "d5688dbac8ece270653750722164a6f3bb6567f1" +5853e2b15ab9f9ffb14fbb39dfbf9c8627d9cf74 = "f6eef496f0d58664f446964ac5d8ee85b1004ecf" +6488c4e7175c241de584a41ef4642be3eac634fe = "b4ca32fdb8322e81a0932f773a02179897cfa8c7" +7e3746c3b4c8565d60c16e462fafc27916c8d84a = "971d66a7cbccd12766efbda166d90c386756647d" +917cd20799fa87a6818303396fba7e6e4204538c = "4ec3ada92c2011586011518ceaba81c3b68e34c7" +a67b92f96f9ef3ff2c3988e4a9ad91f437fcfb87 = "44457c7d6b39d8ed0a09c4e39027849e386ec83e" +e33fd54cb6cf1d2629530141add29ec0ee8091f6 = "7c32b00794d9528d2472e0ba2eb8d121862c8975" +f52f97925647940f436b0f9942c4f999f5fd7704 = "946b7db9464be49eba74cad3cfd7ebe6fe4e1b65" + +[b19378d9-d87a-599a-927f-45f220a2c452] +2ab8171b90b0c5c9d8d9fa7d15373c8d8c199558 = "94901f8ff9846251e2b5f4b88093c34fbd3f1a82" +78218c45e1e9c5bc06d2b4a5c9da8a0cf98df606 = "a7c8e51c0fa83fc6bbeb1b697deb9d7625f7f76d" +a4b2a3bd509554771e1b11cee7a494e11e2abc52 = "b58bb2103d4191d00ef31409f5debc3fb635e7ba" +c286d4ee1b4a5d36b4eb291ede945de099c36584 = "67c0b43bcce6b5dfeca1f8ffb152fc701adb3249" +e0f9648c8fe33deddf1ba9ca6ee9594e8edc5d51 = "af5e7e9db303b4bc6ed62ba0b499f2139cb846b9" + +[b1a4b0ec-3354-598b-9ba1-60d5189d7354] +36d9d3ad03d6e7b36085e7dceec55a1cfe4a0621 = "085e02a5a36834a9af27a9de2a072dd8426c9be9" +fc616a09f7af93d5131d92543f970023803d06b6 = "28ed2eae17167857dca046d4d6279d09028dea0c" + +[b1aadb49-3d58-572d-b8aa-4c3bc2b34839] +712c9cf2c5f4cab89311eef0b159b93f3d7f3739 = "1ed06122570cd842e1d7eb95e71f7bf38067fe63" +95918f9a7ddb5f7bd79493e31e92168e16f9daa1 = "be9f5a94a67b45edfb930e376c6623abe50274b7" +d412a3712b3a2ce6ec44da80ef81b1cf81d519b8 = "77c6934258b636822e40d733685c34e8e5d338ad" +f3f9681dac67f792f60f6874e5a033edae7e05f1 = "e05bc4dc45ed567bcc84d7c198e276fa5657230b" + +[b1bec4e5-fd48-53fe-b0cb-9723c09d164b] +68cf7c483c678417acb0eaa3bbc6ff7486228393 = "86c7b77544a7ce77c752ee70cfbc704a1bddc5f2" +79d51ec03a53cc0683620b64fec0b5ccb3be2999 = "d8a7331a7ad0a7df2b12c18c04a5eb54e2d5f987" +c99d4875190ab11676e5c440c856a0c6f02c61d1 = "5ef0c1ff114961f1957ac9ce5f09438e67f5fa35" + +[b1dd1ac2-3671-512a-91db-cff14b385d02] +269c93de4b48951ff423f393e63058a3dedc529b = "ee398a3ed0b53f9e32f83223f678388db03f1f28" +5f48dcf2076c1d8043bd0b8fcd4442a63a12231b = "d7897255122fba91395d516c585659797bff49f5" +ac2dda44e192c8a537d606f7b34f0a4ba84034b4 = "fa119aa25c7df1e426deddf1ba6fc458aa388599" +b4831b397273673f8de5a5d05cde0a9e38ce6c1c = "ac5398429ffa703ea2202f76f5bd30bca6c14bb8" +b75db1e1c64d7dec89613dd772da0f73c7779697 = "cfc17d9e8d3f2187bb7e851b50897833faba118d" + +[b1f22607-7830-5ceb-9a8e-05ab1ac77008] +010936e30f8374091b6df54791577f4125dafa61 = "269458995145a152c043cad20b0165c597ce4d41" +21f07ee37e68c3f50b4e365a3bc3d3dfc363807b = "85571abe0f15439de7029ded2bc71454e99a4f6f" +5edc1a5fa84ca61b89d2c3d49df4d245faafb92c = "61347da09e986935d5917daa1964460a3ae35350" +63dbdacca9fd79ce57b5cde06a1af3cb1c63835a = "e5c9bc4e0169aadeed68450396fb509d33f0b338" +859c66ce5bc6984068cc291a848c1555f7d63f8c = "a1777ce906cb5a4c6aef47ae5dd2a359d296f6e1" +9836c3555d8303375e3dfcbed44d720982841972 = "e445cbda6be35084359efe9a1efbf34741df4e93" +bff94d950aeb86a230d94d70600a7294c2243a4d = "eeca08d852e62ac03da813b20fdc879a82cf123b" +c03c19370cd3c791cff84bdeedf1fd81a128bc81 = "ab340893255fe1653c10008d2b4c0d8c957527ed" +c8a64c087fe39ddc0f0e7c425639403f89c8350b = "670335955ef0043f4fe1ca584525343f451cbc9e" +d0840d34cfaedcb1f7f6461e98fabb4d0066ec3f = "7a04302aab01cc4bcbee97dea1d6a0acfd97bed1" +d41245477df85153aab7103cf9b6e118d23e43e3 = "cedf760b999f0c49a58d424e61fccb4b446e79a1" +e4c5c329704f47596038b2f51018b2272e40190d = "7c908ca3f5b3b625f0733aca3e756bc6a10cb9b7" +fa159f56b8a6e8aad0221be32463deadba07148c = "f2f17a7e9a64b443fc98fd56fc1c89ff1208a6c5" + +[b2097dc8-3ef6-5718-ab14-7bca60434373] +1c0c4c61c9ba77a1957b1f9dc2d5db02dff2362f = "e5046415f2240a8ff31cb2205228bc5b713972c6" + +[b252259a-9f4f-569c-ae1c-bb8ff42e41ff] +07c73bfbd44021f097590685d85ef6eeb4ee5e03 = "6bb54fb63a69b1a37a85b2796d5958f7cb3aea18" +1464fc0ed0a53bf754ac9f845135133792f98c4e = "faa184def2b8ee9e3d434cb741646f3aa4a57bc9" +2b81a392ff5303d12b4c75cd34f36fb25c1be91b = "fa15c222212d706d3722ec953cb6d4ebf09bb6a8" +30572ef59a2ef2ea8a169ac3a126488e317d4db5 = "0738f04657465cd4d30a26eeac20263aa57b0c83" +42e1241d8aad1e65c93f8c7e1e5b4a4d3b31b933 = "74572719e90cd731ee25aad36e3c7bd184559300" +4acd2f67d870f4def25a0b641e3466dda74f3742 = "f29572a9cae692b8db61d4c0a17a89f4e64935bb" +4eb8eb50c68fc4cc82e69c08bcde171a10a70ba8 = "fbcb11f574ccb6ce890c42da99b4df2d706ea6ec" +564c92fbc96f1d6f0d4c8ada36557a6248346942 = "50ce17ec004d1fb86d481acbcaf1d313c8beb14d" +6558662c47384129ff5ef52d064b0bd3c712679d = "d7647a745b3acc8496eeeb5642efd26c43eb0469" +798e943b4fef801f4fd74d98122390f61c6e42fd = "da45f73d8c2bbe4f2d0249eef6a03a45c1c5b7f4" +a487f1b1603992da1279776f7896e158f042743b = "b88ce137643fc1de69e11c1a35a2b88351e698d2" +add7a180ac419e04e943b4cd92699cd7ca75a4e4 = "48984a21a396db82e69d9f9cc6fa8b7c2b1c26a2" +c19bded6df0a6a00540b0db112ff405266e29c81 = "54836cd0ea8a3bd1346f4a619c90ca67faf644c4" +c2d0f60b632fd981dafdd43f5a74238bbec6a930 = "ef06576dc08d0adba8647eb6d06265f12dc238ea" +d6f24aa341f37b2b392c9b2e2e119996ed6382d6 = "ea2147039317b2c150c161bd1d38b88cfc0dd66e" + +[b255c96a-a4ac-5b61-a2c4-3db36d36609d] +01d0b5253ab04e2935746c3648a99298b6e0191d = "9a05df5811ab45201413cc5aea72cd4c1b9bec35" + +[b27032c2-a3e7-50c8-80cd-2d36dbcbfd21] +0c78db1690ed586a0fd1ba9313333fd3fc76bb98 = "38b3489b897c4fa970223688139cb73e667eaef7" +1a61ce075450e52d9e602254f90325688a82827c = "cae5b25e760d552ef41756677e0d7d4d3379cf72" +48d3f229f292fed2eb8040a6bf5aae76be1575a1 = "577cc6e72078465841980686c534406bd2600af8" +4fbbd6bfa95e1f32888694184287c0ff63700039 = "b38cac7a533ab6ba02a20c9411a1234bb4d88da3" +641a027ef03795a87de91b36e270362993fcad0e = "2e3891e3493bfaeb4bb411d73507e4ba3f591b9e" +94c22f41aed053eb41ce6a4df4a602511781dc0e = "9b431bc66757ad5124f4d206c319996a2dfa2662" +9b9248611375a556f4ecd6dc9fda16fd415a5826 = "322505a94f83f8c66c0f0f75ff2afa481116d5d3" +a7224f03d38dc4b72acf8e114a1ea92b3dfbe8f8 = "5d158d15c3d2eb8b55aac33c3d9707206ce5b185" +b705034cd403bdb9ba76a291424e9b8c07aa7f9e = "6d76e4e5be9f313866eb09ba54df2341ebc8ef26" +e7ae4a13d4c224aed4ddf4929caf2dcbc8031739 = "f1b795558ad9b5c4c7e8a358eb3a5ff58bb1e94f" + +[b28563ba-f3de-538b-bd45-5b40df25bcd0] +1b0b7fd5248f2e58b4d8585c0459ba002704a95c = "7e0341d73a123f2792b1d3f89d99ddf4d2400af4" + +[b2c09c56-527e-5265-b132-e8372645a790] +0ebe2b33639cc19a024abac4de06d4696d3640de = "55ee424ede84a97a0d421d1ffb2f175c160064db" + +[b2cddf3f-0e89-58a7-933b-bbac06005fc4] +0c4f2351e6f39d80ebc2132c87437a3022d6f38f = "ac1da8e5511f98ea761b0a8a95e65c28a016aac0" +5704e0bc2719f59ed2159c3c2f4421345feabc33 = "48546ca2ca2e764a5823f9eecac7b1ce72d9809b" +7ff743e1cbb99b467e01fd42413017c815f1398b = "7af3239255c606928000ed18f3af7418773d866f" + +[b2f0850d-3d70-50d8-a937-775d793d9e35] +345a2ca5399a0d95d3ed35f3f2a2129e488e5324 = "21a4f77b03bc7961576c5f83ee34575992a34853" +5897b9959ec312781f0918c0f290d5757416496b = "62362e1189bcacd724c61877c14ba86db3dc7d1b" +e0d2b04a542bba5e26e7c15fe621397174021fb2 = "47e653dd6781288ccb5bcbc88873d77bbe1adcad" + +[b305315f-e792-5b7a-8f41-49f472929428] +3f39ac12e25a4a04a69b8203a0a5f34e94575d93 = "b176a2cf4ce5de9abeefc7cfc2db11f5fdd512ca" +8406d3920a5023c07af1e61d6cf6d2507755f4e2 = "65ed917ed846ddd6e7916c44a5ebb10387cadac5" +980c94266c78938b65764ec2c71b2ce1d602ff6f = "1ed8c0bbd279657583f16a855b9b45faf968172c" +9b903e261f4144424bcd6521c973318655d30b0e = "6bc0b41892e6ab3aa5386584a20888609841da79" +cdbb7ea57ffd6026a7385b98053b9aea91c040ca = "e5ee8514ed3e4271133e54f468e98602d1234e21" +d272f7c7da5be78ad4248478b6be5d8e4a1edd7d = "dd8991d1f78763f8c2d0be8490a91387d186a242" +ff9e2eb06304219ad3936e766b407b09fd64383d = "71bfd72818e9657ce46f71d9f710690ed7c53d06" + +[b3160c0d-270d-518c-9741-80a712e3ae19] +21373fca8518da55547d1b0492abfa6174ed32cf = "c3d9c3b72602b3e62af496ef5b65547363729125" +76632d2b688b7bcadeaa2ef639efdb53a4f359a5 = "9c540ccba3803c91902b280d7b97105cea1ff7eb" +ca9896ebaa8bcaffdab50f28c843ceb65db6a6bd = "9f5206e94dcae47873ac1ca380253961ed090b7d" +e0b371d1f7c16649b9fef441b479966f0c009af1 = "c9e09efa9ed79007d8e9c714a956d1dc6fc70ae9" + +[b36d76f3-e888-5fd0-8dd3-e39a55b413c6] +d881bc169f21bcb5e1fccc5b4fcd8432c353de63 = "c274aa4e62ef6fbcaabc99b25858500576231272" + +[b38be410-82b0-50bf-ab77-7b57e271db43] +1f6380c0efdb988db74ba3bce859a2b1b64445cd = "6eb0d203cb25224f9a7abac7d7accc6490de05c6" +3a143b19f509f75d9eaba1b367cd35912f566950 = "54d8f90d2f39b8bf875d2252a80f51b49e162b51" +4b31713bd42757fef5e8df3b5cb2a2100b715c36 = "cff93a1c7fee75bed163bae321299f2e5c05925c" +5e156dd9aabe85844c00a8be81efb76d0a767160 = "2d61cc249dfdbfa526865196d9a4f6d9c4ba7243" +7ddd4dc4a3aafefa098f7f8d75286815dcd67ad3 = "64bb23b74b2e224a760700dcb5b29b0133e92d9e" +a1af8514e71995dec1967b384a47eb786f68e695 = "1a996a582c2b430250cc6e5913142ea4764b7d30" +ae1ad856a4d0db5033e9f1bd6fa7b82854391848 = "95fbb9b75d7a278973436ec890b050aec1e838c1" +e5a046aae3b704b922807c0f3109dcebc721edc0 = "a50718c4d7fc510e97eb07b90497aa4ab61bdfb2" + +[b38e88e0-6e0b-5351-bce7-ec5fd20bf074] +f8d1969cf8ec51e2d4ed85ac0b4fed65aa4b4a9a = "15bf7f69334b7212687b1b7836d5f52d9dd0ea13" + +[b39da016-875d-5aaa-b6c6-44634eaa7fbd] +1b06125491cbdf96903bd271a2b3ce1021e3f427 = "776c88dc7bf939bcf1eedfc65b300741a6322f83" +3da54ee02bc332f02cba6550f5ea5eda38cda83a = "44bf28ad4944a205a29733cb550664691c3cee35" +669b9f8516e259c44b301dacca1561d4e9d7ffe0 = "90aa2aeaa019ed3ac57b13e7769bed80cc59158a" +88429ccb6719eb1e8245cd20081b67ecf631951c = "158a8313d2dcde462786745154b2aea99da880c1" +9d2e0ea179322db7d31fbb78f6eab7e9a66572a3 = "18e20fd296578ed9357fe9e64e21e7c852b76bf8" +d396e1c531e8ecfdfb51695a73ca8291736de628 = "5ea8bfc237fe2adfffeced2ff2f8803d67234e44" +dffc78de519d3a7fd8273fa4d252cb54f0cf4a4f = "833563e353238ff5377f40d3a7fb0bdd49fd71f7" +eaffc492088fb6059fc37b968d20d1c17e9934bc = "8c215cb23e960842a679a5a00b0276c27fb5675d" +fdf3a727a977a654eb750375188c0d83f01f6349 = "f400fed5ffd4ef2830e1b25f605a2a1909ddaf97" + +[b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d] +17d4525dac95eb05dd1ca77e6c881c7242601f5a = "6cb2be92278e39a0c21410f83eb73511eb5216c0" +2e225969e41becd9497502b92010c96a4a786f5e = "9d3e4853cdedaecb68ef66650cce78c4769e7aa9" +3a312a47d6ee3ba2d1971adc1eecffbf2fb0fbfa = "2a1b732926c4eb6ec7cb628a7fc900edebcae0db" +b0ee8f10d4362f9f2b2f77f6ca864bb33b59aad5 = "f714d9d354e2217ce0707c28daac42c44a12bad4" + +[b4275310-0d50-5c7c-9097-7fc07e87c7b3] +4dc3fb156305f8be245745eeda93d43670c278b8 = "ea31457be364d0a8d6b3d561b28fe9b2f2a9d2c3" +81e6652caf5c4982f12b9d4bfadc28e4bfabb8df = "58b27190506d8104ec38cc50c15804adacba607e" +b47ba4220baf71e9e4e2f428ce3ae881dcb68097 = "dc651ebe06d351c95ad59fb79a30c0ee1c96c0bc" + +[b42f4170-51a6-56fa-baee-02fb57ff6893] +88b48b4a5bafeba37b46248274d8065c4705e7eb = "796b707616ed69ad3fb9be60c539444715a607a7" + +[b445afb1-442e-5c68-b1e3-25f929a46de2] +4a2a2ca5a58b049691ce89bf56b606380e291a21 = "a772df13236deefcbf7918efd871393e458e0e3c" +689b5648de684700dcadda89afaa47ec4198fe5a = "18ba5af444eb9a15f133b71b4a36d1caaec06702" +9234e2f29b5ba617e107adcfb6493ca78e416746 = "7d8308f9ce1c233828d2f40b1081a0d205beac68" +b0a5c55cb3aac0a95cd344a7699406f490ad3fcb = "faa66520e8e15fcd84227fb7f37aef83de8c6b4e" +b1a555d119a7537abe6e8f57451c19f7caeece46 = "431ef370e9d5024d56050f78c6db1a575f06d997" +dd5c85728078e94d69f46121a7433e7fef273a60 = "321eeeb3629c0a86da67e39be3ef27857b9fc505" +e6b3163654788b806f49d2720a4df4880a6bc64c = "07eaf6290b225436a35a86c83dbd91e45113d18b" +f54c091e6d0c6312f31a82d530de7a1fc5f52abc = "e6d0800fa59b1d0638357173e9eb9cf4f13bd757" + +[b4f28e30-c73f-5eaf-a395-8a9db949a742] +22f7cfe50cc1848ae3309843319aa5629e381ab7 = "fe6dfd8542df63a45157ed666cdd72977bb32966" +25ba4446c06a66b7678f882fbc0f7ace6358249a = "07632d858133863b3a8eed082e5225b8c9a372d2" +4797788f9fb4ee6c7883e50b6be392bdadaa9fee = "56e0fd6e7d3d5be9b67fb574be758cb8ee7b59b7" +4e1132271e1431c9150daf7e4d449fbecb51a650 = "b8a1f94318af836a3d93a5f0f341066c22ec1403" +5c1d20970cae9c613276b6bce4536f8e30718310 = "bedda07be25f9b2a6dade8be21f536ae80fd4b83" +90521a479c2b0dfa828678c821adc353e6f8009b = "480364436e9d9281ef4e7d73dca634446df1452c" +b0e79a7be974f15cd9e5c8e8bce2d7bea0b3cb9a = "f9df0859d511f41677d7aa68260c9e12013644da" +b8c9ebf508f178bb91405244c28ce4cd8b85d571 = "06e3730f62f84ff9831954ff7a6570f11ea3e129" +bfb9e5cb73eb7c24399daae5cd371a116538b2f1 = "a3c799060646d87ff288b6531fc668cc8c85d5d6" +cfb8981349a7aafa75172293b6c4e5042bad33c6 = "916e27f59749ffcb83fb35d9ed709f74e722e739" + +[b4f34e82-e78d-54a5-968a-f98e89d6e8f7] +187257392096a88ff6c74d456e228ea6bcce0938 = "082ca69fc9bc6e50ee26e6484d91ce1b6c0bee18" +1fb4b0f46d352389882569f7545f91be66e4caf0 = "b7e7f056f0b671e69ebae44a0fed571fb1a5ad80" +3877ea49196fbc583b40353f45e506b13f42b860 = "85a94e53488481bdb0b2f2a6954fcb44b588d606" +387cfe55fc11658e4023dd4dd2e87016bdd386f8 = "a8fcd80759e92772ce8abc97621d2bd3a321a7f7" +3dec24cdd3d92892bc9b9abf9fe4570cae2aead4 = "f08311d035be372ff6a5b72b7a09c4f9898e65b3" +53ea6589568896d57e9f392e0d3596b8d0938941 = "3f4cd40a4d1d81d0357258de273fe55d922ae441" +777aca51c264b7c0ab788cd38abd28bafc4a2ca8 = "0c57a9db90c93c1c099e7e3f1f3aa7925f938d42" +80b6c0272f03f35b840a3cd6c24f38dd3a9ff010 = "9e116bfa418d17a162185b5fd25c3275ba57481a" +a6de2f8bcbaa6ab2298ecf620cd2025538cec148 = "9d92fc6d1bd41473aece165a3576e08fea6b6586" +b608c83906ad766d28b3b141d7fe6d6fb1772e3b = "3780686b7af7c98b5022f1b42822dfba1a5790b4" +c93e6f8f2605132dff9aa00a862f6cea44298dfc = "a7ce4cb0ac7b017fddd0722528ae2610283e34da" + +[b4fcebef-c861-5a0f-a7e2-ba9dc32b180a] +118aff2daa43ac54edc2d55fe69dd5f7602feec6 = "383bc4712df1fa769ab2f0a6b764fa9ac12932c6" +1435f112b01def833a57d995b0fc790b2e5fc4c6 = "f59964bba573b0fc4ba59d4a8d77479d4d3e231d" +178990ea058e2cea08469d5c6c4af286ddb23ee3 = "43600f44ceeea6b0be4e7a54237b5eda49ba6026" +74a3bcef8a0fd9f2cf8cf6d0128fba8e849d0144 = "485ec6fda57fdc732d0f270c73e16dc0aa49bf7c" +751bcda67d4d27deaf9d056a19c19c92c852a357 = "4728876361d22cf1c05cc1f1d22a58cd8fcf9e0c" + +[b50ed4e7-99c6-5337-9fdc-1bbc0431cb09] +49a5ed5fe27e044a87aa0b83d9c14c17c9cab427 = "5af63f6fbeaddf7f277bc1f23f71e1b69bd33bef" +9fa001d8812bfa03bc33355e920a75efd6ecec75 = "13f8ae6656e63f370ac0b2e32e8a19733c64c2d9" +aeeba38363b7c9c2c57ceae43cfb839af9e180dc = "23ad83525e1574fd8c2bef440502167e6d72f7e7" +c9624dccc34e1f39bc3c02bcd27bf1f585e794c3 = "e7638695055c38c88600a46e5e0bd8b71a10196d" + +[b51810bb-c9f3-55da-ae3c-350fc1fbce05] +0431b9c7ed682b77f311be97916a09a454550482 = "fa13795e82cf2e0c23bb1bc74dc7a3efb61e2875" +05767dbcdd7b99d2c269a293c2063a0187b20a7f = "6da8c5e4cac1e1cb17019eb93afd37b0c3968662" +079884c314b183becf2297c85245bde90b8509c7 = "8ad5cd528dd8b5bf11d6faf0ea813a66cf274799" +16f3d3d091f54d64f9b79121679f34dd48ce6cad = "19741333f3cce66539a1f837df2613ff405440da" +1c2fe16f5d7f4a015246cb3d423b5f84627ac541 = "4134fdaeca0314c504ddd3b47ba53571fb3de237" +262a4138945c166ec2c265cc20e6484140021e5a = "49af6164040f2ca837c1f601f60ae4613be3ce9c" +418fccc251c95219e76fca37230b6ecb7348b030 = "0caf0414127d2c1c233600c5b2ba4940cd4a0693" +51f7980c24c8a68b58f5d197334c1005034429c7 = "e3001b8947fe90eafc334f118f952f0dbef221c5" +5f200ce6ccd57c0859234c3564a17a4af65ce44a = "3068602ae70a261fa066640446e05454b430ab8d" +6480a337dd44024eed01c4b7a51604f575c41e6e = "485519bffa59d5dcd7e5e69d45565dd8f20f6c5b" +65ddac8022ec0c7905e3b54e770c4d65ecca4a78 = "841d8f40579335707da0c723d4702c367f208fdc" +65ed952bd0c73f6c1be097134dca78aa89b601c3 = "9336d6b8e57b7d2a83482398c0e802926b6420fa" +6d073680f21450e75575a19dcc72fd69ec4780b6 = "a4c131d701a55f0b0f7b139480bf9a3007db06ad" +6f4007fee5e4913728246cfc8440f83919c9df24 = "987cd02047f219a736d640bf6e37007639ba883e" +70bf5ca78b6ff8ca362681a477510068900e71d6 = "5924b7ca8bb6aff55fb4f358e50ca3a67e374b50" +7bb96b81966f58d18039bfb00135809877a5d208 = "bc8f303eeecfcc13ea8c6649193a0ca2cb37e4e7" +819ec552d48850ccb46c2d0bed6e63c8eba8dd3c = "fad80eb59bb229adfa1789bd3fc1337235972e23" +8405f60630b70f278ff004452db8dc517734a633 = "034e094a54b339f3cb0a54bc40a5cfc99c2be05e" +8662b9159f1af81adc13a8531733d01be758f2c4 = "065df10b146314eb8a215bf3ef17851039132bbf" +896645c7ab1d609fd3218fcd68f0f6af7a7e6717 = "e5354698a099563a28282bdfc4d71dd252b3a678" +89c48192e4feac33c47501927182b46882345789 = "53123b55a654ffb80ea344db97f2422ea41a33c8" +8adb26f2aae4bea5115120cbb333506d7d1cc854 = "bb5ed1bf81d01b581e7110954fee923c1f8309b3" +91f871600056dedd1c5daa3297785468dac2dbce = "909c88cc0dd057cd9a5a6875f9b90c218243f19d" +940f9b912f73dc08df4eb07e7fbc0bc17e274980 = "dba40c772ea36003b0b5a1c7c5d44893452804fe" +a26519005fa4d102d05fefeae28e8a8c35661588 = "bb7cecf163499160fc126efd4bab93784b710590" +aadacf8e12da2a9d368aa057f7a108167992654f = "86a53c21408cbcc2351a70821cce9e46b6d9f587" +acd9f84fb65ec0020b08c6fb77ef294035351bc0 = "c6740202d194bb70000c367f2dc876bcacdbce47" +ad0c3c9db8a809502d1c4396ccc3c6acb97b3d72 = "b9c04b48172f2981e606c48c110f82c1e996e060" +bc9d53d638987acbd479273dfacde6d9b7c79864 = "6e8a422b2b50be4bac815d9f9c98b849b89817c4" +cf9e690926ce2e855dd0217d725e6dbc57a1a62b = "054cf1397beeb4dae163d4acc424f85df9e26600" +dccb78bd62474a87184744b03da1fa6534249474 = "86e09a1a0817479d4b3b2558594bfef7c01586a9" +eff1006c413bebc32269000ce1cae089d7dc23c8 = "5959c732dfb5ffaddc8b3d0bdfbe95e4b04682cc" +f814e56011aeb5f1bed3c58c6386099eb9e6800d = "32adb0e99e84e4a6de6769a94965ea61e6883607" +f9428150b981cddd232a39eb10fa7c40095187a7 = "3ebbff857113cfc1335a296b9f66d695bdb6aa1a" + +[b552381f-0f71-53e8-a6f7-7453c63830df] +da8cf123089d9acb26e1879e27e68f786a25cf4a = "2ddb3e81d80ae7c27fac0af354814c98f69953e6" + +[b552c78f-8df3-52c6-915a-8e097449b14b] +01133b05720051bfb1656db7017ac203afd1926a = "2b4dff39cebbeb8eda44f56386b7efac4a8993fc" +672d1d0cb9050014334ea23914e138e769b3aeae = "072cecb88c96fe531ff789767c956c18934280e4" +fbc4850e219ea83b1832f38d001fe0bf9210a50a = "df8af2d013afe3d15bdf571417966d6b8bc50d36" + +[b5a060af-e443-5a18-9643-c6d2e16dbd83] +9c7638ccdbbc47d160acdf9f02334a9ea89aed05 = "39c40c04f64d151cf9a31decc26317162a22f16f" + +[b5cb2838-5506-56c8-b038-21e3582abe5d] +26810a7602dcfbe183393c4f879ddd6397775dd6 = "f05cc9d529e4264ee1d526abb2554fffdf3cc89f" +30230d3a847a17a07ec799e42cdc610ac85a9166 = "4a636d0fa343faaf607c5e8911c9e1881ebdba81" +321ac1478fc1f0864d61927c0f664d260a676a5b = "4a1e42838f30acdb33890a1445c4d0acb9c6d415" +4334553ca107bb5c9a2f9eb51fc1dd799acfe7b5 = "0ffaa02cb30b73aa8cc596798c18e868f1d6fd9e" +4d265dc14e0e80c00195fba560e4b0282e27bb90 = "cc3227be3869639d5f15f7f89bf1dd2244428985" +551fd9b0511994196c721db714465120bfbb1c6f = "abc7bd3dd0bb00738129aaba55a90ea3b60e51d2" +56e384133cacbd04ca9ed55e0a33902f4ac4118d = "fccc80c7bd66aa664141a8ef21b49e83f04db683" +588282c1efc2fd267aacbe16a3a929c4b4b4d38d = "9ffb1f3b1afaa3e90840d5bf7a375def2d141816" +738bf2f5adbae99d0aed242583d732492aba3e68 = "aac8686875f75d9b5d7a55ee3ccbcd1504ab39e4" +8a72d6712b350ef4cfdc033a9bf13cb12079dd7e = "f645c86460130726f4e15e7989d3119f3d597cb7" +9cb897eb578756ea416331ef1992846d767d548c = "cbec043648adccae6d368af978c26c62e98505aa" +a386f5944681e09fce841fb70524b8114f3021d9 = "4ef3296953d6d51389b55178e99e801c32c8ae71" +b2063406d098ff196d9b8551ad43a59b674bbf0a = "e1b2f5585d5beb453ff55cfc66638258a8b0c775" +b4466e340188acc721e0ad4fc3594f3b1000cce5 = "f04a058dce055d2a0fc7a4020ad15d136fc3c65a" +b5fb2d0943a52e04f04a1054bc1043378560ce35 = "2a081c04c20d69fb86cf752e227ba40e91738aeb" +c1e5379d49ce58ce91f6c89937b2f7c4d2fe7006 = "b0537ad327dc6312b72299f89c024bd7ae6f8346" +c854c7df053533070c7d1e8f2f6e708410ab438c = "f74c8290c755a3141f1cd7860b0b7ea4504397de" +e229d5917c8a486360dff4208301d85e2a5e84ea = "d67fb5f32337bac37b0a0ee76a8dbe62bf56dc13" +e2be51ede2a139a3db087630c3ae1c7330e78462 = "fcaba886a4092895ad674fbee6c3cdf87e379031" +f3a98f426dd25a506885113940497dea87eb9b6a = "876d9ae3a5553a3cc9fe9df6179d3f9bcff789e1" + +[b6128fcc-59fa-5305-9ee8-8a745badfb2b] +fb73d7789383ddd2ca1563318d1ac3afe96c5b87 = "232660b7329b8dfdaa6414152f696a2080b777f2" + +[b675d258-116a-5741-b937-b79f054b0542] +8312610cc5859642c63c8c57d07cb90720e813a9 = "f12d6cdc8384a61885a4652590ec80fa6a8d4ee2" +9b385b64293ea6fbb781c975910ea8702a3bf4f3 = "e1416a20eb1d1eefd7eb63a24dcad3fc290cd5e9" +fd89a7e0b079e6879c99b23d476842ca7943c5be = "15396ff7754c00c3ccf6f2ffa4b572304371185e" + +[b6b21f68-93f8-5de0-b562-5493be1d77c9] +13e38c512469a9a68dd9892df210af23cada1e48 = "58429aa852aab868c6c52de4e6abefd8072ffa0a" +15d815092cc99a4a8c80db53c053c97b41648ec8 = "9f6368d8ea0f2abf6e5add8939e01008f1dce33a" +229fcae9db4594034788268f01ec62845fa44a81 = "695467f73c34548b6c92cd651e0b45c91c83963e" +319c12913b758fd5b966a22433819aa77bb4bccc = "352d46788c26cad55fc51722bb4f5d3a0d59079a" +323fb563e3333b6c23fc479d5ec98f533f5190c2 = "883580631b85882242b97b2dc96d4556b9659979" +3dff76985f44d137c16cd998888da6f15b7cbb9d = "74477531c64e8147ecb02abef1a3c718bd415509" +51c517b25b401d928ca322fca7c2e79130d9abb6 = "66aebd4e4b4e13b2e5b7b934143597e5ce87768d" +56c5846255df258a8605b58e148765bd190e45e8 = "22aaee5281e14c7c15678bb3dc83044085261c10" +67762c17361e5d865f43ed6348e141ada5ee6c94 = "7bdb3a40fc65260de8ddd037b67266840782e979" +6a5515460921c2fa27d00a668bb232a1ad95aa0c = "af6f5e2f3b28bcf0bc473ed8bf551c8e21659daa" +7d24f3ad0e3243ed6023815928270c4ebe0d3364 = "6ac9787f66d53379dfc8806b74f66d4767a30975" +8fbad354669d3ded34be7c502d830ca08af80add = "db69f0436859edaac7cdb9a6fc8acf3685c1662c" +911d68150970c17277296654e3a806431642a070 = "283f1801cdd6d6f06eed6118a0c26808c3cf1f6f" +940786dbd5a30e58f8bf9fc7462944e1bbb960fd = "659cc4ac09f062c90e8d9e8bfdd1adbc74dfa0c5" +959b9c67e396a6e2307fc022d26b0d95692ee6a4 = "56d99eac48ece2f4c8f87acf972d840c2cc8b939" +9fe3df223c5ef6bdfdadf86be3c65e1536f58458 = "047543b6ae97d149b3f62ad7dbd038c6b1c4a36e" +a52529e0dee3747775c6a88f77cebd3d26897a41 = "56ee54f2ae15eb994c77b09224675ec247bd09c6" +b2fb8a1f49d162c6a8d023d7cb35a2758c3350b8 = "48cf3c4dd759fd2dba30c56b21d44aea2ae5076e" +c1c400b7dbda108c3978f5ac7cd32beee724430c = "f50c526a0b5051e6ea397d60a279cfa7f455e06d" +c6665b3d74e307bc4e962ec22b1a68be70b1b826 = "fc348969ef1096b6e1a0cf5cf3a586c0f1fc0f48" +cc7aee5256bbafb16c74e80b9b03cd29ee12088a = "5d5970ba2c09d445308b5add85fdfdc38a277820" +d148dea7a31efd3cb5ff05c7d91a94c5acedbf3a = "ebcc1fbb53a2f6ebe29d6d985d421b46aebad163" +d818e8bb38991dc52e9bddb43b33c6304ec49ef6 = "b2547f1487289aed53015262c1f69cee5084cd5c" +e41b1e55fa5e6137f512d385662ced124befad5b = "6f6bd1d44fad19c435e452e4164c0d6b10d18f3a" +e9d2a249e17be5ec9e50d3c490451711cd74a108 = "21392333db4f1b40b4254a9746d0d4709056bde6" +f3f14fea3244af029aa5f39096b31404f6194b19 = "86a3eaaef42bfcbfd119bbcd54e3670373ad6d98" + +[b6bec47e-0844-5090-977a-5a6d1183f4f3] +b4998de6daf723978f017008b667160272036c5a = "b4af9344978cd3d219f00c3450ddd2885e19ae3d" +cc3033f6210729b2faa882edd6186f17a2fdf714 = "e17e97a2f6c67ece12810ef3ca2138924ea26c6e" + +[b718987f-49a8-5099-9789-dcd902bef87d] +5c05b2958d81c0653e142688f05d858678753763 = "d5fbf1c0efd4ef2b9fb7820f0776c4ef7622b5e7" +869810f7e24422c0b96b32efd209f1934a29b130 = "4434ae806a1339d36b82c057885c842052f93871" +bb63797032ce361db6118f1f46c72c49c162f231 = "25469d090366eb179f295382ba35e2c3defe3e05" +cd9a002c46aa7f351f1c61b329e4d0dcbd243039 = "d5fe8b5fe2ccd4802c4d0d3ce646be3232a60b4b" +ce11b13e1ac4c0a4c2c77716e464cacb6c57acfb = "f3d0d6c75682591f596fa92648b5d704bb6ce8b8" +efe90ca4520b0f5a8daa3fe70128af81118fab9b = "cff5fa45642efade1aaa018911d38a6dd2902b59" +fb405bec9778ed9c8746992c7716676793101b5d = "44ee91ce5500b576f32aa0224804d95085188356" + +[b7351bd1-99d9-5c5d-8786-f205a815c4d7] +00849573c8a5e35fb0dbd1ec9c42e4412d46a377 = "1d3621af743db34ef1fd191dfed0d443911c2f79" +be3eb0d66911a7887df81ed4eadf4dc6a5b0da78 = "658b8b06a01f8b1ee2e5525c09aecabd31cb0725" + +[b7aea54d-5cfd-50af-a711-b761a27d0bd8] +7b2aac77f362fee4043212056fd8d39861dcc25c = "c1d9a057e1ba58450606baef5c42ebfc3e7a2511" + +[b7af77f4-1885-55c4-8253-e0784dcab0aa] +05f9cdf16aa08f50843f08d89fc02f84350989e9 = "c8f0a5075126faf01ef7c5bf79fa62e9699f6739" +1920313a8315d3b95528dafe61b65ee18a8fb02b = "a7b839c30c12674394d6d4417b5270d1d698ea1f" +80c725fc9434b8c5668381436a3e7894324b5b33 = "467afa434c0274c222ceac97d39a854e180ebe10" +8dbae1073a4ac4d58f9a6b5bc99809020476601e = "7d70f2e4661589ef6d298562c04546a3be4d2b2b" +92220d67fd25b1b22ee8c0d2df5a99ced0eb0bfc = "0c8b78e1f79274b96ade77f2ad2e69f44350bab2" +cc9a9e8062196c6f0af148ab85bf05dfd5eddca1 = "71da133a19aee1af29dae7aa4834481f2e7eda7c" +e04acffdfca9c7d9bc0f4f7ec55cbafbcb7e3878 = "efce08f725bc48722e5c6bd2ca7bfa8bf96f20cd" + +[b7d42ee7-0b51-5a75-98ca-779d3107e4c0] +267f6900cf02fafe1d7dcfa538e56d5b859da1f2 = "50f9e2eca022cf1d6a349d22e959413f448dbfd7" +9190e4046f2bdba2a39670b6fe43895ad37b328d = "8958df78ddddf63955126c81c811186d97dcf45c" +edc0001e83e026380575445cf16b8e04f38c1443 = "63d938aac1a84396fb30b23667aa48ba85a909c1" +f38597615220789ec376cf412eced652976367fc = "1845fc9101deafde35a8cd09f7bd68d4ceed7974" + +[b7f77d8d-088d-5e02-8ac0-89aab2acc977] +7ceedd1b518f5056546e97171136b7c978dc9aa5 = "8afdf33b1b972bd406b9ebe7519921d9141666e7" + +[b85919ca-7d78-5d21-b9ac-5e42b33ec64d] +c783852d207fe1f16b3a2a279bf9b13b6570ade1 = "db9c3583c273a8aee0de73ef4e184030fbbf5b39" + +[b8865327-cd53-5732-bb35-84acbb429228] +0292cbb880a4641cf7c70fa798fc217d9433e3a4 = "9561b627a548b9b80637b01ca9eaaa837a59df3d" +2276718e3f32fd94a20ad104e72b6eaa7ac46274 = "438621b9965f177d23f943cdafd9b7f1e48ab022" +22b3b127cb4d8b697cbacb60f53dc0eb8927d6b7 = "c63ebb384a0ec83e593f73cfe4252dac2884edb2" +258148d4ab3a1cdb179714b25275c20aa22a9057 = "0d46a32e1f4d47499c5d2288676f6809d4bab44c" +32e156056dd12e71692c472a879341cd034a6b64 = "b325aefe49b70d4fac70ac00d8369a66295b1503" +388c81dd23eb23ee935c9ad36f1087bf7d8bce8a = "fb393762bb00c239ade2748c3a19944a8c8528cb" +46788a85344353f8223399ec6428dc1cfa34f9f5 = "4db8820d82e38a1e41b33d9ad99f5977b37c83da" +50805fcc20a64982e367d70061d92454fde220e2 = "4651771ba125adc9c9f8888d5c1abe8f43156748" +572d4ab22b4136e7ee74a2e13a9359d0ee0bb6cb = "4001aee91d97bc436710e7dc6056c0a00dbb684a" +768e26f45b4b44d691a28554026b1a545943961f = "6261097fcf385737cab9150356bc21e70a77bc9e" +8510779ae52d298692fd91a891bb459bfcb6c4ea = "ca93b5cb5338ea776b5b9947eff0fd01560afd3d" +9179362035657667608b1d6d6776c6e38c66c3ce = "9891b2c95f7875bf6d4b799d17cb70309ff5916d" +9a7b724c19c4a51b8a1456d85c0e277766516bea = "192a9976d967930a716e97dee6826135b8a628b3" +bbe44f2c8ac297a300dc0843ce4614ededdcf5bb = "526b74c5969522c5b1f332f85a55cc9bd7e91352" +e2033525f2dd2d290da185ead6712f6099270939 = "38c70ed92e5bd056736293893e6e38e4e72f6886" +ebd00cd0ea77351a2cf95548d48963622296642c = "c817b32bc64363eb602eab4d207ca836cb65f0dd" +fbd7d5bc3ac4084c4b71d3c5f13e73f41891ef32 = "9e38073c220355b6146ce3c592901f13a9e638d1" + +[b8a86587-4115-5ab1-83bc-aa920d37bbce] +432bf2b2eb48679e632a8e110d5cbd1666f429d3 = "f38fda4175ada183d04f0c646788030a4a3818d8" +4be6631978b589fe3a2befbb26a94126933c5416 = "e3c4d5977f2c44bca2741bb094b9021107b26b5f" +755cbf4f5b28bf5aa1924bdb43edf3f1c79abecd = "9c1445f2a3828b8c6c4c1afe4c57bae4392860e6" +79cbe1343dfd591b33af5209de729024b16cf99c = "d8fe6fbc7d2ee2b80f8f7b83922fdd683ae9f688" +7c6909d611530bee87fa0fe7bbd163e19e599795 = "513a874d5e281bdb6504ca252d4ad1fa382b9815" +815f96af1dc4021537d9ebf9237b60f56df10c7e = "f4e6bd4da891b8e560371e79574865d42c295855" +88368b584faed8850688767ed807882037d12963 = "f5d38c292bcf7eeb663589de6353c249a6fa2aec" +d8e718c0da4bf9c6ecd221d73dcb45e2ad177857 = "5be4b9288673e291e49f25ebba91fd012fdaf85a" +dcd3aac2070e293ba66ecafef0cc9c860e529dce = "bc32a036e8578fd7d2fb9a4a22362217ee86de79" + +[b964fa9f-0449-5b57-a5c2-d3ea65f4040f] +4116883a8ec408cf18613bab05efe917859c67f5 = "a4825ca08a1b64a9819c810abb20174d2f435ea2" +7ec8862852d24f5565f5f66bbe8496604b3cc8fd = "7a039176e5e244ca84ffa0692598d172c34b6315" +8cc93a15dc605d0603d846a72563f3973e7b8120 = "17631f4a5ff5187cf2d2071638e0b9f4eeecf272" +9a4b852484ebf9990fee61b47fd5031dca3a61e7 = "4e97087110ed0860860803492f8d48a10a54ffef" +a72f380981b68fb89f70155b3aa8c6e2df12f88e = "4b76dec74b20579356902a27f82da36dd81c46fd" +b31efa2acfc044f8a723de9879d2dbb280ad94bc = "65fad444a3702a27226275e30831270a2206e043" +bc33e18dfe249c54cccbbf81560ee18f19515803 = "a254ec3d09a7a909274a58366dbd1578f9d1a733" +bfedfdc93bb7e9b24944072f6015f8bd37ee53dd = "be2e2f67d82ef4f449a1c9cbfbe4bbbd849fc478" +c1fbbbf27395d2354c28c09751773667ca67bf69 = "3384a2a419e36eca35868f4e3ee62a831c830598" +dd125f94f9852219ac31e242f4f1a5998c7276df = "37c9811f267ed46b672a0d7a1f3d77697d92b91c" + +[b98c9c47-44ae-5843-9183-064241ee97a0] +145b85f0e19f2cb9eda5cb7d447002ff4a0acc0c = "aa468f058d1bdeca521f21af5978e4ca346f2762" +66a26bb5bebeabdd560ae6ba6f01ea5fbd1922f0 = "9b26bd8a0867d1a390b80af047c22e081fd9e067" +7be07cd60efa376b8e24943747949c4ad2ea1719 = "9f0724cd9b149c82d526539270f488184e14bac7" +a69a1cef18be8ab799681623fa53c1be2f471294 = "9294c44d94758c9f742fb18f9a27e2e4c58b6e41" + +[b9978a91-65ec-5957-9779-2ce67911a7bc] +07a2a38bd3d637be2d078fc586274d74f5eb0d71 = "b09ded9a3872a4062fd263d0e577d0ca069d0a8d" +2b8dc5efd98354951b1b189a22e1e90b2349274e = "449e21be7e0f0f3fda5a20720d5bc843a43bd33f" +9883e7a7888492412735a8a2c4fbbd3714602102 = "0f060b3b62fd252c45647d75d490440dcbec36e7" +a4b1cc52833d333b83639ff2107521e5db723202 = "de144ff7a7d0062179cadd25d789e3313c3e9412" + +[b99e7846-7c00-51b0-8f62-c81ae34c0232] +2ca0f33871e03f3e7eb0287701152352699e7f97 = "625fd13ae4c9ca0492195bbab6fdd65073a1ef05" +31bc6334c9bbb6f35b451978106a48c10f38d6ae = "4c900d924e3cd15e26cdda86d2265ffba83f1055" +472da6df89cb252b7076caa892575564364c8438 = "d2a58fe515dc18b1977cac1e6dfc8fe5095a7867" +57a0cdc1a71a17100e281a32c7c129c2189091fc = "81e8e2a4296944904c85b48bda799dfccb777c68" +79c9981db05676e9e8ef87423c0be42b01cdc0ca = "8420940b20c12c440e9cb2113325e9bbe11dbdf1" +98c14a5dfe6b0c463422d06b82fb1444aefc425a = "d53c9891e4cdde7bc50ad606e6dca33f00a11002" + +[b9d14576-938f-5430-9d4c-b7d7de1409d6] +39180e341abd412e8a0bc167164b7563c1b04c53 = "c9fc219b358fca1a979dfaf2316bb172b52cb56d" +b47f688fa0b4fc582b049fb018cf6e36896e8e38 = "ec86a0901f3e96be5a7166893983c101cc788813" +db77d381297e35c7906b65b1cf1e31635b438827 = "b213fddbc3b51799a54e9ac369aa3186d9edf1d8" +eee205095f2430d0d2879cf1050fe050819de6c4 = "5602adba5a4499431278949c320dae2d38a6e48d" + +[b9d7351b-c616-5ab5-9ced-54f189935774] +e589d07814ad5ebcdd54cdae689c0a63c6980f54 = "89cd29c1377ff9496174b0f1d6be4b3d0d1ad0a6" +f7e698858b3be0b20bd68f0e75b81181b01e34b0 = "78670795c8fc99519aebf329571486fd4d340e48" + +[b9d75638-96e3-5676-bdf0-e9c958f63a55] +05a6da23847dac082879496be7a22cad1d4db56d = "224d83b62711fe7e429454aace2c97eb2cf36031" +2f6dade57bff342c0cad17ebdc61119520c2b13c = "9922a684f7bc7cc7ce8e6ce2339c5754a26f0f00" +6be9e2a9853b4249b915838772f6f265dd47169f = "88c60212dcd5fd79b9b080e2cbceb91ac0cc120a" +98d5277c8fd66521127baed70a0ba955955d1e65 = "280a1a3587e91d6acda1d3e054d4e234cd603fe8" +9ce64b99c8c52b7665ea203c5de406527ee94b95 = "2f768b68447964a9391c4a7dc03c17d5948cb782" +a46067a2c8a17ee9ad3417441308d2f8ac74c6af = "d9992984793dce4852087c1ec81502bf24bed053" +d0a70614aa85fcfeb3ed8c84957e4fc9203d0d3b = "46e7565f755782a4de23b13a8af74e939a61e8de" + +[b9f7093f-33b8-56cc-b235-8e85c8fdf87d] +7923d6bbbe46801c7dea086687b971e68a75536b = "b6241f06d72e53e555ec2da7c47a3e6e25512fdf" + +[ba2bc401-841a-5809-9698-816d55b3f113] +43ad7c9f32a07828dfba37b86faeb7ba5db05732 = "fe4a39fe77081a90a04eadb6305b68324ee3ed50" +44d5de7c95227f2803b93fa018733274f328b716 = "073a025ca35b71d1824e6828f67a7738c2516eed" +7584341721f6d5e55a41d9b979554d4ea69745d9 = "f6a91221c1e83994721a950b768c030964cbb77f" +7f628586543995c037a9bd482510fc4c897c776d = "8d35faea4d871d627f1aca170932e1bd08d6e3d7" +a1f2a468e5927b7de5e375d2a72ccae2aaf15435 = "1918e7c6421544955f7b45675901af014c72f698" +b4928cc731f47a7506502c827540954881e52c10 = "d7da03f7e100be714013863ce1d94ea9608e10f2" +c0ba344482c39f6bd91d70b303e19999720d6906 = "cdd96448eb44d83821e7d6f46287596dd463264e" +c10bd012e7180ad80f3eac05a17aac1a33ee3595 = "1716c8e7458ea816027a3dba8b43a6bdbdf22fb9" +ef1f274497fb5500ade359fe7ccc38525a22e7a0 = "6a6b4b559f8dd9e08fdb450a996b32a4685bc8cd" + +[ba30903b-d9e8-5048-a5ec-d1f5b0d4b47b] +32c01b14596fd6619f9858d6d469294ed517cd3a = "02ce2d21379d9887e43638a1289e2898ddf4d5e5" +66c4173bbeee5d472cb250cbdf727259cf6e26fc = "710a5a5a0823aa77f52b8d7cf0b1071cedf4904c" +ce7f73b019ef9930f445349598f1e89edfd14495 = "abe6cc4c2cb65e0b54fb9b1e43285d3e1a88cdfc" +e89efb7510d6ed853dc4e19a62eb1a95c86ebf26 = "547021b19f40837cf8027cd1d90074e7d19e829a" + +[ba4760a4-c768-5bed-964b-cf806dc591cb] +112efe2e3d8b42b0ebf0eb91d625fd172f876525 = "b3646a36a8aaaa07d3915634da479c5f31e6a8f8" +12947f1eb7355776522c5048f314b816cc413e4e = "c3a16d1a6cbc3c48fe9f66b4a2944973bc45f2b2" +335d3ccf4919e0c0b0d5276f4b3ec6dadab284f5 = "b3b1f774569d594013f2f400c404d60d8757e0dd" +360e6b18a9bf62435cb4dcf6cfaeac78e97e8496 = "267681a8d7b5e824a8a8a7a55bc6ca16e6f190f6" +45a150e40267ba17ff535ea5f62cfc764fffe4e0 = "5374ad0e36be864df33dfd87e23764b5c16506ce" +4d154478fd0ebdc2c8af5d374ca68b58bd685d0f = "9a7e3c7f388543d9bbd5333044ea1afcf880f980" +5026724d029e17b564bd306cc7213650427ae8bb = "6ad9669e8c43899d6eba474c874ee6872a5a9deb" +5febf756d38194712cfb8c0c2294252931611afa = "810c3d2e5b428ebca9f5a0d56d05818d998ecbbb" +6508180a36249c6fa5e2c45ade463657020ca62d = "5ed7561a4d775dc85d0105f2f30f8344bed79c39" +6e4eabee4d839f006408adf62e18a98ea56e435a = "8cdafa1914ec341fa65c881504a7378c32d6959c" +71a93a61bf74d18f03d09712a4bb0e8c79fa2e35 = "868780282b52a585e6717fce2ffa6cb5c5ea89d9" +74da7b387784ef4856b9628ba25ea4aada80415c = "099a945c89cfd37e8e4a56872ffd0057f286ae8b" +789f33a04823f7e472a25fb599d1a97112b2eb0c = "3718e52688d6ee6f462a7a43479f875f999278ee" +7fe51df44fd867da8e3df32dcf22a07ddd7ea5fc = "e69f108d5852a5d3e7e6a58013c3d919ba9714f0" +892b9b3c0913272e738812a925ad814ec270feb7 = "cce27ab98e3e159a75dd148d14f45d7d57ad6dec" +89b9277d12596bbf2d29c6c0cf57da3f09c3a927 = "0e28e1297e6a87a5f46a1582521bd49ef75ab290" +8b7a1e3868f524a860b13fd33b86de68ef9f2638 = "60ec35c37caad990a73335fb6e36c9d0e94e4366" +906770b21daa9a0745e6274cf53d81ffedd33f6a = "6f68d76f87def34ccce15b1a8f8aec9f178c0200" +9aa44a56e44427f3a18f9e6dfd8ac193ffdc8b14 = "13e067ca260455d98289d4dc680fdb03404891b4" +af3aaeb8ab22a8629ce829517a3462b67c2de1d4 = "300bedb44c62c7f17ed7c526168fb2a98e1db710" +b90462e293d3c450a154364217bb36ef891db4bc = "7faa108fb91e827bfaad8cbb778af3ded8cc2ece" +bb0202818ab46d6b9a41333cb0a4632d0a684cca = "d5097f3bba381daf57f5606d721f8b74a5a2a2f3" +e629408f99f755314b0d68e97efb682553a3e26b = "80c4e2e18d8a70bc6c427e611c4e1fe22ce8c313" +fbc5761b882720e4b748c9b6bc8364cf4b9425ee = "6b9ecd4b649b2a0bc134ca217b03c8f07bbad3c2" +fc84a2cd0e6180afff8afd384c9d2a7b8291230b = "0a5931b63010191fb3ef9625a05338768c97d0f8" + +[ba70085b-a8a4-575c-9558-0e347d50824b] +ef65c5a69233620a58136d30037ebf723534c0ad = "62a8bee2aedc65071cabfd45e5ef58a961c46ba8" + +[ba912b2b-1bf4-5c4c-9eaf-7a81f9a4b354] +047ebdbcc62102a430f9ac0331d7dfbff1b79836 = "425047131cf3bf1bfe12c9884cbf4660952c12d4" +7862b4feb90aaba72d9953ec036a10673b16401f = "3a14315034df17b50017e8c092223b5fbe029838" + +[bafbe729-afc6-5148-bb4f-226bf3d46895] +2adf23c73473d068eda92b30d92b02df39123bb4 = "bb08cab40056616e34a551505c8093433c29c7dc" +4d82e68efda00cd5ad681260e9b702083fdd1b18 = "dbc478a18c4bf390cd493e83b8e2639c40720bb8" +cdbae3d2f1ed76165deb1a9efb5912355ddcb486 = "abc937753c0c8d359cd429551e078dbbf8004fb8" + +[bb4c363b-b914-514b-8517-4eb369bc008a] +55b2a523a5d3dcb934f49e34eaac8e44542a6d67 = "9339d23edba0fa0f161e8f8a35b875358071a49f" +652a3f788a5a8439aa18f2b127c05cdf353afa37 = "a93723787a414bb2d00865169034161282d2d7b4" +c1ce4c039ab6ce455b5b6297617da7281ad9d54d = "40f4011c61980cd2b14ba66998ed466ac9eb484a" + +[bb4ff4b1-d984-52da-b2e5-8efc6dd45549] +0ad36bd5696996e860a6273917bb383dfec20a93 = "b5e127b8929c928e31d84d38b48a05f26827138f" +0d34723d175ede905d8a7497148d3436befef605 = "c4dfc15a944f2f78014d97bae0b2fe2828bbd816" +10d27d37a8f06c44edbf1ff33b5b64b1792cb7b4 = "7e48c0e91d4ffa3bfbdf304192fe6ca644bc860c" +29e2444ac1af3a9afa8eee552cafcafa182d68cf = "ea89c785e1de82c533d7c3dc285395de319a265c" +6cc99119024ef64459076bf6b41e482931391832 = "2e7e4dd8f99449b5f80db68de330b7b2ee81bb23" +6dcc6577c224b5f6bbf621ce9dc1cdab88b21607 = "b9fd9c65b54c9bc23d0a737e009d71f8cf1aeb03" +71733e42852b04adbac627d1afb05cba2b4d2ba2 = "972859b5c6e0ebe0aeab9d0ceb8c2332af13c8ce" +9b9fa779127bba2b3a1409e8b4dd74382e77720a = "db802beed27eedc07e497be836716ee4d0ce3b3d" +a4603f8b7feb756f99df1514fca926074bc74308 = "e75aae55c4c0966c0930fdc06de7d1a39f194986" +b3383a5ef529862f3640374aac8ee14077c284f6 = "c29b691253bbef8780a78f2d96d3116eff9a36f0" +b6d3eeecb8a5fa672b513fe1d1ddff063f3411c1 = "351fb4b3d35c1b1590932a51b964d342cca2bbd1" +ba9c53b484b835846d7153528cc3b9ddd675d56f = "7edd9457692b11966935b529a7d53a3bbc6ea3b0" +ca67f2a63535feff2221b27b1a5b09bc2a6982c7 = "ea659612d34f562041a04efebb13801f9fc725d3" +d48396730aab8cb51628fb0ff998f665536da0f6 = "5bd8fa0b911fa58c8d804d5725e47635f3748a2c" +dbeb24e5818912cc7af0795e9a07409954cf1b09 = "2d4070c30391f0c62981957d046f3326ef7116b3" +e623a33356053ab1802c352bfc414bdc9bcb83c4 = "939800789d6919dbf7bb9b82aa8a1c26ea917b57" + +[bb55d02e-6178-5ea4-9358-168ed098a6a0] +63971bf745ce378dc36799b116f034172f538f89 = "2adf2d11bcc14c94074da6470beb6cc45444cbad" +af47db31c3ca21a4f562116cdd6a7c2dd594db54 = "6dc9ea94cd49b2d0138b9070412fbb085189f367" + +[bb8ccaf7-743e-5101-8e2e-68c8fb78077f] +f5aa0dfdaa60a2c9eba76c56101cdc13f5fd640f = "17cc0661d6be1a36930dbc6441760ab5fb574460" + +[bbac6d45-d8f3-5730-bfe4-7a449cd117ca] +711075b9bfcbf62e49ef32e037a438e215e6e791 = "69f99d730422c9e8175c2246d3ec214c45d0efb1" +79d37148dd0c163fb604a2817d1c34438299a3a5 = "c54d92827edad81348579050b0875287d82339f2" + +[bbb2afaa-4236-5b45-a0c2-54a75cfbee5c] +07b06bb0e5d9c22a5ab41787a75a252297c8dc78 = "a9169803094a0452648100a2367b907d5f76b2df" +2378122a52b5750312748a15c834416111bd9ead = "ca2f8409734a03db71baa171ba34d2fb7ee6114c" +37d49892cda492b98f5e1f64c033e57ec4eb95b2 = "e3718c5c637cd2a75a33a8cbe40559a283a8568e" +3fd16c59103d686361262ef997b9787dc840a54f = "b742bff0aa677d79c861496a1849d265ce5a939c" +701526d7a2a333ce4ce4e5b77359c88113f5478f = "9b56ca4d532b203f0d58086f4fa202f8525595b2" +f413cd14c618cd2692a3cef2243fee0cdc68153a = "0518d816561185ec939704e6aa4250df786cc57f" + +[bbc10e6e-7c05-544b-b16e-64fede858acb] +4b7cc864fd3f7faf7372f0bd9132519cf1b5ae7b = "e2f1c924a5c679bec9b600a8d65c0e2d2baebd30" + +[bbccb21e-8428-5a0b-b2fc-db76a3f27396] +84f6fc774ef06c44ddb03df67636e68d4d53cb40 = "51596732f049f17cd0b76dc2f1379b381d83e036" + +[bbd82366-0c69-5eef-bed9-5a0dd17fc720] +3a94d4b13eb78de235ff42d51f9272c509c3cb49 = "58fa18cd8eb7f3a66eeec8cc6e3ac1a3ec029c84" +3e0c362b4bf0bbdb3f0092f8538764ba2f08f449 = "e66bef7b2dd90ec2c364a599b27477d0b0fe1bc5" +5366565f92fd4e2ceaf383fb3e97896dfb8703ab = "d8c2da78122bd3b5730ca050b60ab3d1d80f471b" +78295d9e33d8e1f17daaff761aabd0e1d45b511c = "77f4440827b1656cb482808e106f94a43a0a78a1" +8b4d3628146672d1178eb1fb0b2050b0a0e4ca4d = "349f044ac30eb9c701c24fca5adac1bf48c329d3" +bb3eeae00e3ea76bd3208be0eb9ab81509b17e28 = "41d918e614bca33ef5a203528a0a02b0b6cd67a9" +e18c69520e7c7ece521a15f84dfdda007df8f2df = "2f128eca524b58534e6618993d674784a5fdd682" + +[bbf7d656-a473-5ed7-a52c-81e309532950] +2b874443f15470ed904db679d7a5c5f16d0361dd = "bae246c718d0661fc674b788be1671b18371ea5a" + +[bbf84614-d4d2-53e7-99af-88c3f7462fb6] +98b95d3885f2cc9e1f3e5eebc46952f5a38e7140 = "3faee6216600222da4a4d7f5f53301eaab61ecd6" + +[bc367c6b-8a6b-528e-b4bd-a4b897500b49] +15a28f73ae074634d8aa02e49c69369da04d3aec = "79edc8255da6931d5d2fd7bee266e04e6ef262a3" +228fd883411d6c287bc28d3a08597d08ebcf6af1 = "e8924be3adec5fc8810671fbdf2a33b3e98600cc" +5025ff9e41980a8510e6bcb141ae1be0ef0fd3b3 = "d459a15b7672ae86019a9f249426301b850f911c" +659b0e5a122fc7c0a38ab56ebcf2266c67614135 = "6fcdf75b9c35340e4494ca7cebfb6b923d00c490" +714abbdd4dbd299c96b39bcc3cefa65199de9633 = "1f546cbff9403aad48dba45dbf57c97e2eda2382" +b8e5c162b71babe457b56669e4cb8530964407f3 = "b67b7cf901f3246f4a5efdc3a775bcf1ff0838d7" +c29b282cbf6a8e88b110bad8e6b64c427472d3ef = "74c6f2f8b6eed747770323d46e6a5e9bb245c6fd" +cf0faf8c42a7c25f99d9e4bd9321e64568991b0d = "88d1f75eb7ff947a17b8133fe8fa7c2533f97d1e" +f7c96fa8f7800d127324e3d9441c4228c218858e = "5f52451cb133c34515d12c064a1bfa3945f55258" + +[bc5e4493-9b4d-5f90-b8aa-2b2bcaad7a26] +05cf7719ab3946de1cf0a54a8a15ba977fe31ef6 = "0ec4b8cdba437aa5976e9f350fd83502651df435" +0d9f04ce4be061d3c2b12644316a232c8f889b44 = "e22fee36cb13d9a1850b242f79938458221a5d2e" +168393de5954fee006be6581a3dad2ccd1ca3d5e = "b27b4f9cf430475ce1719c0eb6326ba293533705" +21ef9c926af6217d6fe91638be22e7efe64608f5 = "339f46b90a78e043ba83772ae14d7c8458784c76" +33e3dd401fa0c3f1073091a9463c5082a919fbb9 = "55278238326324d88a4c4d664b412a34d0a6b2b2" +42ef052e6f30db7f223a58f74f22e25268273810 = "eaa88a65cf4c28fcaee3af932d63aef714c529b0" +4aa574375ffa69528dfaa3ff31c060cda9d6c08c = "2b2ccaa90246c38c31c0deb2885c7508fcbe7863" +6a177bc3de9f1c4c0fe503d760c748be3b89efff = "a990603685e859bf53df150a6f884b5dd64785bf" +74aedaab2f0c1a64e396b6ff0442dbcfd0f037ab = "0b087d4b2bab83132e948578e3ee9a6934c0d93b" +80fbffea5653c0c61e8e14dbbb229d5d3b9d0548 = "ea731120232889b159b69e7a11fe04d8bb5cc6ee" +a0cc0edf8fa429b042ed451276ada626a517099e = "0b7aefed873ca3e714a1acde0339b0d49d69864b" +a615b9e31cd44bd75241f15f36bc3a62aab9b101 = "a82a8b5b4ca2007afc70e94bea3ce65e885c9d87" +adaa80b5b1115f2b420ed7e40f773feed2ad0688 = "64651434503be4b862cd59bd544dde450ead2feb" +b05bf0c503d74eccced10daf6a6c3919e607315f = "8a6dee95a8c1775c54f05f2f0df88567113acb38" +b36e91f84e68a21a052076661513bf4a01c64173 = "0447212bfeb32d6f98c1d67e5e65d41b40ce4d71" +b53fdcb02d1f86343f27974561f369eadb0560f3 = "3b49f5ce528eaee0c6d04d0f2eef699230501a3c" +bc4ac30c82ab6d82d9cdc9d4c85e21ba560b7e7c = "1ee8a7be02cc23527fc0c4ed573d129f46e69d9e" +cad4b096f71c666ef81e87fa894fcae105bcd3ed = "84746f4871ce8fc848ce0d0d7248784a17c86add" +d069993b320c57b2ba27336406f6ec3a9ae39375 = "d4e834ab2d444e932b8c07e58aa3ec2ef751edb5" +d2d5c0c2ff5ae9b2e813e25ab01cfe6cf515138e = "fc62527873655f8ca1a6b0dff02702abcc127d73" +eab14e1ab7b4de848ef6390101b6d40b489d5d08 = "afff1e24f571c3a75b68c7466528646c1fba0537" +ef182c0a235d3433f3d1414b2d9b886eee0e2636 = "96bb4bb800126fc00ce64282af440b45be23672e" + +[bc6b9049-e460-56d6-94b4-a597b2c0390d] +a9677c7ac4c5e1ba1d87feec7d57c74fd24e0aec = "34853b78de2e0012d795f61dd8c042d78daecf94" + +[bc724e2e-2423-57c2-8f10-788c81380fc8] +1e9392e4700e7169cefb9b4a4454c9fea20cbe60 = "1503e9fa54c867ddd706825f1f025ece4633e238" +213d6fd87f3e3f59c2ebb4c53f28c7791236bd05 = "aea51b5faeb77245473d775afbc9ddbfb4f6110b" +8fbf7026a6fb67dcc57d51f6c41a18975ce1a53f = "4fcac1a956ccfe66bb4e565575a2de00cfa805b2" +ad9c042ecb530af6715e12a2296b7d3229661251 = "effdcb2e39cd45970360f3ff7ec143bfa609ea22" +e3ab7d8fb11cfd1ecc6476f1b63727b322066876 = "12ea00636c0a3004385d95ba0d0e7c6df0c9968b" + +[bc7286fa-3078-5079-a241-9d8ba61a74a2] +6779880fdd8aa7f3ae96e896fd26912fb9bdbc32 = "1609498d2a99f0abe77c595e71e624001df6a99e" +f81ee0395fa01660b18afa99284a93aa385eb18a = "a2f54a03869c3e494205b425a953f01a510dc980" + +[bc77054a-dce0-569c-891d-74ad81f7e3a4] +dc0d083bd2f89b470933221b7162155f9ff9577f = "f8f351cfe9d49f233883ab45f0e4a9a86caba20d" +f9f296963446a8a1bde365b477bef57dbf0ed12c = "e9425422e927f0626660c76a24d05ca20ed8dccf" + +[bcd4f6db-9728-5f36-b5f7-82caef46ccdb] +0427380909b1eedde2e8f6caeea52a3633d753d9 = "f3876bceb4a67111cdbe9e54ac3ff98e6584b1c4" +085d714bf74174581634204620e4301902307fca = "009493269d6b30a264d9a946f2fc54fd400bd40f" +0e8708fcce6318bf23ef006935fd61cf41bb00a4 = "b99c53b32e36f20fb11ae2e5767ad50bf1e9a4ad" +118232270d498dac41ee022ec0b658cbffacbe8b = "eac0a078ec3ec97b9e641277d8df04260e814118" +32ab4b458c7a50348135c6f7cf1ffbcea1a80a82 = "be796f0a426e4fe491ab2ec36e0a6372c6de9752" +47342df9e537e6e3a044741a52a1e14ccccd0c12 = "b69c29c35ec3f965f6af87450df27b5642a461b7" +58e5bda57ebee024b291460770daa1216499e4fb = "353499e105398620fdfff559c38096061962d548" +66c1cf2771196a7c2757471e9e5204d7c19f1746 = "f32db00b5471c49448844af5a42aca977ebb5db4" +67bd41944754cb8c36c99dfdaf61216dc56305a1 = "50201b2712d3f27b24a64c1575285d5c4b4f3df5" +6bff360bf826467ffe6de2b44232b2c3405543d2 = "8f35e4bb9d7d67c5318bbad5bd14e8551f291b89" +70da868ca5e5802e5ba2cf459703e7c124ea620e = "096e81f8f75dd9a38b10e7995492d5a9ccad3a30" +7394adcde04328921488fdf7f6b66c8eadab73e6 = "596e1e8463c361cab3207ff71b999d0b1541f645" +746d81fec06f594ad4c069daa90de9cdad7d8849 = "b00063b7739d662a46b9ed00f34838e5455acee4" +765287bef6a43647aec0b4e95316853198825705 = "ac60367c634468f7443b5b81e0a9717b613ff4fc" +773873355acf8fcbc5035a4198fa58e8b0acc2d5 = "67fefb98d49abc0a8ed7e6bf7334d9d8a953172a" +7a5a15e6ec39f12a4911e0808a09d892ab5bd61d = "197b9a626b1149fb6026cc57a194b44185e1423b" +7edbbcfd7874ecf3779652dd06f91defa30a58b7 = "8db4ad3c1678562e5220516eb658075e81c17f47" +87cfee41d426c251f73a14024dc979ceb2aefd63 = "154d5014e743b27dab46d6f12b17cac3d85cd80b" +897ff29ff04918f1d2a62f4a0f29d335472887b6 = "2e364f6e0d487807b5bd1138deb874c238bc0f1b" +8dab499efec9e1a55a436ddfd75dfd6b09253e8b = "79af0247de46777d9a37564f7bf65710c4ebd06f" +9c5a0f2afef430c7d586148ded682cb986ffa1ac = "0daaf628042638e61cc83c9128c71c98411f00fb" +abf856482b49d794f77b4d8134f9daff9a735e6a = "b94d0a451d2d83c2954cc4c430c458c44cd743d3" +b0cfe42ffd9c1874270a1f24b2b17bbcafafbb7a = "70fb76d49e9711786a1a4a325544d2047a501b2c" +b12c0dbcfb1cdbb7e4683156257ca5ef5f3a237c = "5d8f632861ca3e8722f4dc50618720f93e0ca63a" +c3de652feb158ba818d9eb88f0d16cffcceece71 = "7de463d88b3d486e1a772bd553888ae0662d9430" +ca571ed0920965b31025ce4e87dff5b7d8baf0ed = "8adb945b4c53aea7bec046f9edd86ace68b0a8df" +ebac81e0b9dfb20aa9dddb05fe4e2049ab84bc0b = "021824105187f389f8708780460d860822050f08" +ec27c8dd3c4bc14a3c6534b3da5ee805e3dfc974 = "ca63d820801caeeaddfabdb32f4e8cd3ac0d8fb2" +f0e6bdeb7529b9097b3268fc8ec2f49abbd68666 = "7eb9154ecd23181a33ee3d1b6b1baba093aed0d8" +f6a73dcc78438022d5871b4fd3fc5d556792b46a = "a191ddfb4870c2fe12fedafd8df61f0cf3998bee" +f89db6c24198c71e5effdaf7fe73c94db390d223 = "6847bf230dda8338758b0e0143851fdc47342d59" +fabbcf0c4f907ef58014403e148e1a5befed7632 = "4637a0b4741be4647ac23fb4512d30480360f3ac" +fc7eadeded8835b5f182a6c98ccba695e97f77c9 = "cb18317019d37aa0ec7c5a650ab358a8ebb5c683" + +[bd07be1c-e76f-5ff0-9c0b-f51ef45303c6] +043edf213746914c1bdcf60409ee4d16cb71c741 = "9b3c6d8947d5ea7bf00782c9d7de43c5a4fb59df" +07a8f45803e1fce2d2b47cc11eba0c1bb3e3fbaa = "e50034685ab5b7656a5356e16049a73c770a41bc" +0b9ea91f8aece44563555b83e8a7a507e7b0e469 = "cbc99268d1649dd5f08aa1a483f69ea418f00603" +0db45c94c4635267a3a70139207193e20f1a6b9b = "c2b9fe07b15d8c85aed5af78af9774ee3960cdc9" +132c238feb36f6da789fbc01ffc9cd13ce0e4bb0 = "4b5f471128a172c3eb4518d03781158581bda710" +16e1051b1aa00ce6b91c1cb01427644c7c5b1b05 = "ab2864e9b73e273fff48ad1b3edbb223086fdfd1" +2bf6a5ecfa1d13a00f2bda3b2e95627870af7558 = "bad933a599e288960dcbe6af492b0d40a9acf54d" +2f4d4cb872991156edcb2b0d60def80befb5a8ec = "0d4bef1ba524bad9cd125934131cc9ffeb8c8eff" +32ac7082fef72a5401e3945b0ee0572dba628e2d = "9080b7c2b314de8d39817533655f6e1ae0e1000d" +51c21a98d31dfad710a22e3e0c57668119a43ee6 = "3e4a6eed68208b0f9d20806c87ec0bb52432d513" +572017617e700f7fb242410e7fd207612d1cf143 = "6392c5fcc0c423146ffa3935c52d8071b214eac6" +6aa60212e4209bc0746d4ed733918476b87d7a98 = "e8670f00fc9b4b48a7ec902573209fefb62bc8a3" +6dd2496be7c770137fd38d74c3a17b2079e1749d = "8d98592865118fe53e9986690e76deedf1b962ff" +76c00126cce4a293fcc0616cde0f7f926146d09f = "3a16845a0fea267bae595d9b44a5f5b4f63989a8" +7a267e651a23d16f37222c697c6380a03e0a56ec = "d5384a09e29b48883564bd15841cd8b9af799adc" +7b4fe854a8241252298119e401be1f9dcb2f875d = "5a75b2e5e9017ae453079e6d8b22264f7442078f" +7c86677118ef621c9ab72194bc9a5273c713d19a = "1137271781cd4f92b9ffacfa63c65bb70af91300" +8232b19a54ee925e0d027db588bdf242e16ccd5e = "d25747132dd115e7908cacd3f31ee61d2239f403" +85877c496d746b9a8826a47e251a1d08a6914b0f = "0454c71b5492140b1f12fe773c0443e3a870c0d8" +8917b3b9a1f59a807497c0ffbbe2c3ac0deaba8b = "8cfdbc5dd7353ad4ce7da9c83c6c965eec97596b" +8b5e10e1a5916d603dd1c8e50ece9e2897d82a30 = "fee1c5d37a7d4b503a744c2c859f3897a8e1003c" +8dde9d702898a4c21d7362190048c23186de6524 = "651371e6e8c09881f897a6d9abd5e27aba3f872b" +9cf4756de04a3936df04b3b35f4a476d4922b9db = "7944919d849abce5453ea13c8f737dad35cc927e" +a64465befd8eb87aab3bf615c9423ebb46a7b0d0 = "365c6be3515ddace1eb577d67e725beef89b5ce2" +a8039a59c25102f3c1b835f907aa8067a26cc407 = "6589dde70272b301cb45f90f7c103a8e722c6110" +a9dc7c0040948fb355b15e920ad337185fc2969b = "7cd9bb50bd9ef6d20e40ef2e19d028cd7b339e0f" +ae419c392ed22e9d25e31e6bbfff63e0ec4ee268 = "e7bc8e4b603e8bece876b945f6ba4037b3a35cda" +b45558bb513c449c561e3cd24d42cde09cbb02c1 = "0a86272e531435510697da0b904b68c4258906ee" +c6c42da8f2d0a870c2b1516a075d848a138c7ef0 = "e16f7107423daed7151f7446d80ddf3e2e2eb4a4" +c76c81d01d6735201662fb0e7edaa7b06db0d894 = "f95a51055e7e7179de2385a5f286b6f9071bf9e5" +c78c37cec15434ec6c172465afcfa19f5265475d = "187acf5edee9218d45a17a989913b7a0501ccf4e" +c8f0e26f11f92ad17f292ee03a1e287d57cb67d6 = "eac904d400d5b34c1b3b3331983bf3c73dae34f6" +ca7145a277d23f22be59e082cac9dc66d1b10320 = "6b847ef6d4e0e683c42948054434777700d12d61" +d5744dbded37188f2fb8b927091becdbc906b3d5 = "1cc5529aad12e69678e314c3bf97956bcf904975" +d5a04e7060981159f8b98acdf36bc40ea7f01d86 = "e9f782e7b04517e153b79fede4895bbba20bc4c4" +e50d116881b9901bda6306365e73f8988fb91922 = "2ec08ccd55791c2fbee9fea480c6244421593a20" +e7558fa46977e5fbf128ac3f7c2b73f1807dde9c = "51d708064ceeefdf20070eaac2575b977fc71a3f" +eea9cee1a5987985d57a337640d855c71ec8b08b = "557ef176b69a8089f861ebfc1da843c6f53f5f20" +ef8c1cb1e45a5d3e7879ad546de2c53a2ef0812e = "5c34d93814f2bbd0488c5793292d1509330f210d" + +[bd1ec220-6eb4-527a-9b49-e79c3db6233b] +ae36a6bbea084dbb0299f193f7cc0b30bf95c8e7 = "8f72d8c0cd1c14889e3bd4f5ec8a68c84048b1b8" + +[bd728e11-17d4-5679-9a00-f24958f87a1c] +35396cff0d5ddc7c7e482fe9fdd7b3d4e0f88fad = "39212d8179b3d87c89990db8143cbc76b7e06c71" +3743590ab9158d4f0cc80f3a27780973fea247e6 = "ad94131c3d7c1ebf77279307a05917cd6e81fb3a" + +[bd7594eb-a658-542f-9e75-4c4d8908c167] +045aaad4febb0f43fd62c66ebfbaa1e1491644cb = "6949aca16d23facff9d7df95297438a29c68105c" +405e2a5588737f902d18e742caceb5df5dddf74a = "1eb0986b8c79a2316be801a6d41aee94400246fb" +4281a2f56ea644c6632c83c5fb472011f74197a3 = "a9e0e81192cd2b8f056a58fa465ee3d56997f6d3" +5ce80a836d2b70093566937bcacd18a04a21a3fe = "36654e91fff4fcc2dee92d311ba59d8836b5be28" +62b13b455d16cb540f0f3d7bf913f875c884d350 = "31efe05fabb77b6be729a1a7f88f15cff5e96dda" +7f24006d83dfd990e1913b2a48019398989a1134 = "55c5165870dd93cbc83f474ffa9695ca2ffb5315" +b6043cd9bab7e5996b1bf128cb348bdac26e8a56 = "829d36d917cb28cb4b1a6db0bee03b0690487791" +e5da0ae75a35ac1ebf20715bf60a5a219244c7c8 = "6e90d4e3d329c05dfbc38a940333b2eae9efa6e6" +f4c300d7280dcf83bdd38f9b930d5c8e7c610dd3 = "0a52ea29a36a3e6ceab5e40eb63e08030eb3c323" + +[bdb4541e-a990-5e30-b34f-5f04038aa20d] +a8191225799beaace0355bc97eca0c0cd1e9abef = "21d00f07d9918418e95ba4177653f47dd5c1bc31" +bec6386b5ae426414af8fd63d0fb2e03e760e1f7 = "92f352d88224612ef0d7003c70d33e4380011648" + +[bdc3b988-716f-514a-9703-6a7af59ca400] +754842961b781ef3a0db428ed53867ede198729d = "770010f8b5a109f1c45c280e9d60584007decf7b" +fa73dcd5e0993a875bf2fb442dad368026af50ce = "e56123e917516905a7c11392263c528932c91df2" + +[be33ccc6-a3ff-5ff2-a52e-74243cff1e17] +009039dbc03807324ba315e792ffcb76f8ec0a53 = "0286f71ee6a11b67f5d5daf72ffd7f8b7410e787" +0721783db9ac4cc2c2948cbf8cbff4aa5f7c4271 = "55d624bb438f123f5f7e2ba96126387cccc4f566" +1b25050c0dd239d1d8a55d86300a604a8b1743a0 = "5ab369c96878d66c52e3a5764744cc7a7ec95c7f" +1bb9162e2613dc2c7010bf66cf5973d0898839b8 = "46430591c0e7ce5bd66b55ae804e66afbadd3564" +1da524d321686e3f124bb2555914110c98bce646 = "e0ac60bea90573f02310a627bfaa3cd9406f3541" +20790dd9d8cfd358ac2499b7780e814f1b8dbfc9 = "0f34f8a450c751d2a35cf06ef7781930716867be" +25b395403b32c20e511ae8ade60119318560e0ec = "a6dc80a7627e165707352c0ab5bda7315d230a02" +3c06b092fc7baaa5691b555106f5506f03d6460c = "cf33d65f6137f077be623e5d191e6d6595eb4bf3" +4001bf0e03e569864d387ed488e15e9af826995c = "b89437b3f11e24c02e7b8f301543655eac77616b" +4bf38e7a0349ab85e8716815eb31a1dba1ba7a48 = "cf74a559146baba70af30ec00cd3688ce88f7d08" +a0f06b1a97eec1fa3f84f2dec1cfaa2da891c3b9 = "22b08f42a0025baef92e31e12407e3316ad716ab" +b04f4ea250744c720f7bad594f520d0cfa085fa7 = "c3e20d6429398fcf09ee379300bbeafc57841114" +d2d7e28acda43271551ebf7ceda3954b50b74d02 = "9b255ed70bd5922a94dbe43452f38fa48b053d49" +e16b4723ea6ecd72fad1e8951b7adfcc873afdd8 = "55172868422675b016cb06541a6c1d46cb4da168" +e53cb20cdfa4b0a1c6a8598a4a7ce56ee33fe500 = "f3cfb15374bd818b789ed10dc8dcf510a3507cbc" +efd50d8efd94dcf0c5e792cdd5b1dc878c65a5f3 = "507f31d4dcc50c48a6147eb20c98f915a7d3025b" +fe0214e942a347742da415565729a06efadd6595 = "826097fe3029e32351b6f2f21f15bd4b4d37fc38" + +[be414c8a-3a4b-5539-88f4-08bdb7198071] +59edd64d2a6b6a9c77ff449e6f931655ccd4c5e8 = "d10d90580eca9fd8ed47611b314fe6daca4c302b" + +[be69cb46-3af1-5a2c-8426-f7f9d5958b20] +6466716e95c5940355522d73b3cbd54fcdf6f725 = "b5f15387d734c58f6be3686f0ca89a6828723550" + +[be6f12e9-ca4f-5eb2-a339-a4f995cc0291] +0d2144638d34a8cd98022abbec89e29725285a0c = "28965d821925c2dfeaeab589b2fadedbff9cd7b6" +244a17944a29c2798d563751374d59d34f2db18d = "0476176f573239dbd29f3b2ab4cff511a9f955b4" +3dc859a49fcb89bdce160f77db5e8740f3944541 = "ea99d5b3063064d89d072f92f74db15354a82752" +65ed481c112a79f342fcf4618aa8a51b23bc095d = "e6ea91b5a1aff238f97010c466ba3908cde20fbf" +7ae7ebfac60ed3ffb1ccefd552993a3073f8b77b = "8b265ed18faa3f5b0a14d2e8f0fc2f8b19240832" +7bc22671adbc51660c99083ee7560d4c6ddb6d08 = "faff856d054b4f9262a67fc471d8bac5519e2305" +820d07d8d57c88c0cdfc9e33cbdda1018864155f = "f1556fcd81b6768de018c2464bc88a4ac2707ef7" +837c361c91564e6108df8f77861ee2ae1df91229 = "198a441f3e01ba1788424a007c6b4e062c863cd8" +83c4dd31d9dfdf76784420dbf83a9b1057d0a262 = "dc5630d4436d78570430661036a4dcc4aadcb909" +880d4b1a8120236df6cb7a02264226f92f76cb62 = "4eb79de0b6ff2625ec4ff629481ff87e069906ac" +8fb00af72d4357d64d2b6d68238d73031e63711b = "11b39c00a220df02854f685435370f457bc028de" +90d2f4392056dc22cb4053c18e5dd34a85f95281 = "5b848fd51285c6c2586841b1a13093e216fbf3c5" +9c4b67c31d7469c0587f6b6470411cea482a32cf = "72b62d1de7a18e01e34be9da13e9dc332bbca897" +c48347ff45bc7496e994eeb3cba81cc3d7af8510 = "639571e793f3c2d52a907a0b32eda0cc7d2fc123" +d79b72f8a951d6a19e96336f8c9ee83ab99b0467 = "276cedaa6ae43f5ba5b812c6804d2f7432621682" +e12d9edecfafb9f16d2e8ed144b128982a4980d3 = "ea4d6503674ef464a01c59769fc0c962f36ec2ad" +e194699064fad016ee2b6ace5780e59f85670701 = "539cae8472bd785d3125ca6c785a18d0379a48d1" +e30fa4c60d7e71b86facea775f71b9a7b447bd67 = "3f6e7462d957d2523d0d97bc7319b15b257b8846" +f0afedead6354c9ce69b264454e32d92adc62d98 = "bdc729d24bdf29bf2019eb39b5d753d8aa4b095a" +f450a51e6674c864be9e73530882d250d8e2264b = "10dbaf99f16074a12f4ee19ae08c1d8889fe58ce" +f614eb01596a5fc517c277e6460132eaccc49806 = "5321d4ec5d381425435d08236bafcb1153e9e36a" + +[be8ae513-ad44-5dbc-aa0f-d9cd1b2c73a9] +46830ea06c55b6ba570443c376735e9f81c7d82f = "239bcd774c4644f33e2cd680c9aad025f70d622d" +f04bcde831b1f7152cf91b378236f5a56499fff4 = "48634f81b73e3c0b5a657674583e07468dad03f3" + +[be8e8821-3f6f-54c2-987c-d2773c3a52cb] +44055b7db6e406c0472ee49de0cd3503e26def3c = "a3434ff73d99e2b2c4d054893b798c8c9e7728d0" + +[be9095b9-23e7-5432-9b9d-79c672ee5ffb] +eafbd17db92a1a1499abb3cec3440c7fc3b88298 = "778f60991168a84c3a0fdadfa305b80a5cbad0a3" + +[becb17da-46f6-5d3c-ad1b-1c5fe96bc73c] +05a768c10e2ffce7bd3750ba569ed03806057148 = "e1cf3ee29fd79e1c948df63bd41f1cd1856443a0" +18b7c297c331d6cd960af082d772e4c35834f796 = "192f4ddd9f35e2ed95cf46388f3935a18b36b040" +1b36d435f4ee9b0bc4fbf9b830d1335629668863 = "15ba296edf7070a308b428bccff1525c007d5027" +22975d921a91148aa99c7aa86795309cc1156ef3 = "661cf2d14e2fd422cc518db64e0241882d78d1b9" +3d275a07c8a8584f83c6d4191f2dfa1d41d8db45 = "92a0a7d3586f7cb28ab9be6b1e64311f40ade3cb" +3d8a1f9d3d00ea7e05729434f075d55f9f299bd6 = "fe76bb68e9916edfa53eb8f8f0307cda1bf6dbaf" +703485656607a7ceeff9c88ec385a943c37847c0 = "9b70741852e85a7820f943c2836fd70d9cbab0a5" +97bc8ca9da87dad8264b6df18a97dcfcccebd2b6 = "5dec79bce430e0b6fadc06344357a2d51f8a2d26" +9c96901e0e09a490a94badfdc432de1302a93bac = "574937fd3c7c524634c3d2100791f66bb7ab0b70" +b14fef74e8372a9062be7ab90fbd1637fc48f92c = "532427189b5d6bc82744f5d478e58f3975dd2a54" +d2f2e9b9f212c12a96807ab3359ae749e734da7b = "ab20610d76b004f1b64366727de5f6106288653b" + +[bedefb8d-ef00-5401-aa81-ae9c3f6f84cc] +090fa0c2f25637cbb13d46e00ab3d2ec17b46ef7 = "8ee5cd2901f6a058a494efef06dcc1004d2d29be" +4929e84b0a22f0038bc8f8b7e7b3b4f2d9aa719a = "e77706986b438059653e8e043f00b19786fd3ca8" + +[bf6389e2-cca1-5e17-ac22-36425c4ccbb4] +169381d2e41d45ada4018e7f9c965fe2731a1aeb = "fccdf7c64e1a8d618b9e128446347b2e241bcf75" +d48515f39eed744eb4feb9f6b6e839a576310a30 = "46cba21a0cb648cbe289c9e312d806f14beb51d7" + +[bf752c2e-6b1c-53e3-a22f-e5bb209bd3f1] +28a33905a56bc2996882dc9e83c9f89016e2ca76 = "fc5f888f1d720a32cb218a0d1d5d1c299a5e1f3e" +43cf3b143b7d2758f003c555b040aca04ad989c3 = "430f41271c1902d4427f9609f1f881d780d03c4a" + +[c00ed354-b9be-54b8-8a23-c5ac771bc43a] +72f6b724b0bd56c988b240aa22c0a4889c005290 = "7b5b4af3d560472cf8d480f951f1a36e2cc784b7" + +[c020b1a1-e9b0-503a-9c33-f039bfc54a85] +a38980898c2b537b846291c44ab83b47f8cbc894 = "b16766e342badace3a773bd797a6e8023f540232" + +[c02b4b8f-ca3f-58d1-821b-46dd0e8d4d5b] +00775862bce641790ae4c4525ad27a318e4e20e4 = "298623a4ba0755b7d43ae0ed3b3f643ae1f97543" +051f6ee3e7d413c8a5fab0f4a78375aa76883f7c = "e0b7419cea1bdecb4c5f830a99d895e1718d6084" +132ecae007fcf5f586255118da27daf43ba51f63 = "4c153e3ed091cd09d0e603debd4d0647d673b4ae" +202c366bd1ec1d367289689410ce12aa9fc040e0 = "9d041b603455484b23fb583e6fdbc478f7dc8a81" +270dca026dd7e0302c0dec3edfc477f4bc5e6a13 = "dbaba8bfc82d3ae830c20d2cfd0a185e2db412c8" +2c87ff8dfdc36a78a7b74ec97115f55959da0927 = "b79a9bea3552634e5080861322586bf1e4b8735c" +2d9e40431fa3e622a9e0c8649b24e13c25469a5f = "54607e07bc71496c2b1d05dbeceeb74a81cfbf0a" +3036189560ed68e301103a68b96d5ab02ade5328 = "989601ee3425b24ba3780da6db52750b27cf1f14" +32c9779cd52def30309f61eea9b32b2e6f7b4444 = "1816675a31d7ef54a6e6d2a621ff5d5a4fd5a914" +3451d378ccd6bb879306c52ea6f9cb892c9e5091 = "8465fd5ec4d177d457648f5a5475dbb0ef42709f" +377620d34d80f9876e84d32a38e57456d7252804 = "dd5b1b0b4b1fcaa23ed4d650b3afa49825da3a67" +4b886a8197cf8202707fac01b1ec556086c3a76c = "73fe7542636ea73b81206b493a0140977519ad56" +5879fdf97811d339072913d77d652319b43bd671 = "78ea82a29bb4301adf356600f8c409cebd044f6e" +61b9021075a63e1d74ac35156db8ca0c671523bf = "1f6b2002d911a432f8c67f8cc51726ada1ef40b0" +6845ebe36b7b9d1a0526a5c8318badf80f933c1d = "85be2ff5e857ec09916af160371e6503c2ae9cff" +6af71f145a4c4104279be043202b0563214c35ac = "6137e909cd7ce55ef14d73d3a147354614cb9468" +7d7121220a58711f0bb55f073812c09d398027d2 = "29d098e09241a2e99616139f0ac60f6821aef981" +7f45a3ad9e15a8c41d9ea20049f67b202a682d5c = "db4b9a076554fcbe6fba8c6f24306d68b960f194" +8e3e68ae4bccb1c88c91a3e0ffa67ec1597dc105 = "d37929ad438ecc218e7430515ce28e7bb153dde2" +944deeabd52f37d35c5bb8e37d9128a2e3824ab5 = "ddf2a6994c9f6c2e73501dbafa551ad10e57669f" +96140bc72063aaa60214a979f84407a21a4b0370 = "4ee1de52d7c0c15af5a03502d59a0b352e757627" +961634ba254d35c3b9ae6f851f1cd9ab28aca515 = "8e17b5b155fda38f5e29dcdf099921bb12e47644" +96e6e0087ac4045bd2ca8f3d105d89e2d8ea576e = "8bb6a5492c0f42204097f40cf1fee7fd37238aad" +9da86819d83c89ea504fda9eb1d9e76aedf5147a = "a14797750b69b4181a2396dd50cdfdad44e86bec" +c332537fc628d5d8601c1295299b2cfbd86f2400 = "41a5a368615ec1cef64ef87e704dc209c6ad8abe" +c6f6082c30a9c508e6d8e17a3b89a48e13074aa5 = "458fe959871a80a751364b9b9a8ac24398761a31" +cb7c4a3d317e86db4bc6318fdf6791cc7040f46d = "2704324d9a8c6824988107009834571999a1e5f5" + +[c030b06c-0b6d-57c2-b091-7029874bd033] +054769c185c65fea4f42acd2dd337e249cbf1641 = "33b1ee6f56db38e5497ad1bbc79cf61f84a0dcc8" +162c881430f51797fb91607770f55df554a4df5f = "b8fefb856fcab2213539e6d4bd32baf6f06506c4" +37e5d7a1fe6c468aa1a12e26b46578e4ddf9d599 = "99e370d6b374f4a4e20a118fe9daccf6d1174f31" +3ae921db7ca50a8044b886cc402897e1bdf2e13f = "13d710603ac8666d7753f725f6bd3abb828d8c47" +4294ed18c0f7a7a113e1bb15afc0b89b4e39bfac = "d2e716edb3719f7458e214630cae9833cff9751b" +4ba1c13f15bc158e92e73f457a38738782ef2e87 = "ea6091f8ffe798c9e083e9aa538f4fe246ba7eaf" +8d4827b93609118633478acf09a74247f47cd97e = "edec19eaa629bba5645cf96407d2113676712fa9" +913a3a5e0cf227edf2a2331deca5d3bb4943d7a9 = "b1f4e89f36692e9bc39164ba1b64d198adbea5f6" +9865c128fad90b9705c5aac5729bf456a93dc762 = "912201201b01329f53dbeef677d318e99b99ec8f" +bd3b236acc36c24e53731796d6e644e89c04385e = "3e54c5d37f37840619e2e90bf69b48638062c694" +ec52c9422b2ca7f1bd6a5d13e425370fbdbafa58 = "8bbde27c518071281a13827026d1cbad19ab2a72" + +[c03570c3-d221-55d1-a50c-7939bbd78826] +1c920e002b7a203eefdc0096306c9320a6fc5289 = "71069692238e16ec8c700704b6b7ff4a87acc802" +2a103a7942a557eeaa026ecd25bd697f1457af18 = "40d95c0b8a1665ad5fa968ac1e7d0c07e0da57ac" +aafc92f0d8e5441fc850cba0993875724f3d8550 = "717c9d79c73d8b7d2224002fadcabc4035eab099" + +[c04bee98-12a5-510c-87df-2a230cb6e075] +398738ccdf5111b05782f0f523197b2fd950d429 = "e9f666d05cb792d8d8ac6bc09b8aed82cbd284eb" +3a1c133b9af691d4f2679b504e70e89e3b055843 = "5afee79d82f482568c1feca73c88eaf615c83357" +3e55cdb38d265f707773c51c08f23f2c103641d3 = "7cf2ef500c8d36c9adf70573a003dd46363f8ab6" +5be5a99eee42c905a67e10a956e912eb6b40ee1b = "057475306b28e45f64ad23ef597f9ac08b980245" +664bd6aabc4e6d80bf0caa3dc59cd585b9cd586e = "401798653fd30c02abed99c4e467080992f784e6" +81fdd918a4c77e45fb9fd054c5bac005635e6b19 = "0bf4890c700ea62638cde1d92a9611af49a01afc" +89b76f938d9f3c14ce48c3cd617066472736813b = "1f81ff2be02a9b78a1ec4876d8c5fd561d26ad51" +8aea18cde0a31551013904ea105d44334ef59850 = "260eb71f345eb74b2cb2109ce3a6c30490fd8fea" +a1336ef08b964bd493d7fd00bc4aff39ea9c964c = "a165eae76e1a7472a2ecb17bf60c94329aca8874" +b5b29a04be142454e2d2e4ed2743c16fed1f296d = "6bc46e3b64a105a77a53c17446732706d39fb5f6" +e8cfbe66649a0ae8dea5538ebf755dae341e3ea0 = "4e97df6cce7346e2091934750e697231be8034e6" +f09fc99145143a5a1a816bc18531f8b57f37b937 = "a632cdf5b92c3121e6061e706a2ce9c9081ebf55" + +[c05f3a35-1ef6-5ef8-a85a-d2e61fcf9436] +93849df1adb1e6744d537d799b1a6fc838b89b16 = "af66ce7c1d8a99a703bdd635e9b4366ce33777a4" +94f4bc137ab3e5828c078a4fca945114c897eda8 = "77ddce6fac7bb21dc76f3dde836aaa789cfbe4c6" + +[c08c26e9-7d88-5404-9cd5-c0fa6a8b90ba] +58c7fcf04bcddc1d13839391794cc95369d94a2f = "a6fdb8d1a2e6b116c8abe2329b153ef0f4403056" +fba1e15ca7e314d45269d5afbe3e85c386caa35a = "984b81686fcd0f8ef9db56eac3c0b351f9c53257" + +[c1403bd2-e34a-5715-b454-1ca6f7e8d33a] +74bb6ff20985cb300961d72896f6c2e77880fe39 = "a5a603050992241490f2965537f77433e57ac0e5" + +[c17dfb99-b4f7-5aad-8812-456da1ad7187] +0312fb0873701d761e0946e6d3066bd70e962d42 = "be736c0ea3e1bcf28bf216aee05370ff9aaa8d8e" +046300a042afca8c6e08aa4c485273e0074e38d0 = "a812b613d062440e992f856eaf75d798b2f7ae16" +38d778689678e457480869f2300a1070b6408636 = "eeb1e41bad3681cbc1b84d1c19d7772440d6b4c3" +3be5791e036ab5b307ab68adc7c00d3bd467ab4f = "de456aaa3c48d6f14003fa99ed9d89650186c9af" +447e8fb8d0d923e2877df9265c1f41614533f93c = "8453105411f76ca9a1d40782681932198378aa0c" +59c5084acab6189c73606eb81e32d86c288b8d52 = "868d2b1aab6f97aaa80e2e9286c89d722cf5887e" +622b69ac7c57ce815c31431529a1184e175c230c = "6ddc06497ab8f4b1efa2dc7a2874f0572de31e60" +68c386fbcc537dda5d700adef8e482cdfd59fdc0 = "7351627a12b9ccd3220c0a8f7bfba70842435045" +7d6b190d9a264d68458810645a3d02f5e81d2238 = "89929f23c45ff32daa8532c816dc60d9f63503e8" +869acba3f92e2721430500426f07084f94b85120 = "0c1842ebb6c8c3c5c85794392bace2798388dd01" +8b606a793ef519687cf4bbda029a1bb2c4744ee2 = "28eb691acf636edff14bb9f20637b6e3dff0d897" +93d52a3ddda49f95355086e61ea1e7b03e093da9 = "16f8583dfda9da2b0895cde4f7418867976b5c9d" +a0d80507c46ef4ce0f1a5636425ff8559c048673 = "e9183d13d794a336bb3d6e36b47718ecacb9cf1d" +add6224eb4e263c77e8f12f810f4a663da26806e = "4d9acd0ee122ba169d0022ca9c39ab8c65bddc4f" +cb12a4136e9afb2a158ff888bc8ea81d3e72e619 = "c7396326ab74f2dd1d9c1e60ac665a8f27504f98" +cb22544d3186b98f99445cc10e989432ade61fb7 = "4a425ab3cef48dc0450d663dcd5de7f33b39226e" +d376c613c14f513f66338104919f7a95b8e74794 = "85a81b542015537466b0b5fd1634038be5406ce9" +d788882b4a71cd77e85f0d3a61aacb98028881b2 = "f25390f5f981a7a4984068c76911c28922a41a2a" +d7c9262c5bfe346fe9005112e1ef7ea95b97bc3d = "aaebc047aa6470ebb1b7621d562ca89fc6caddc9" +e51cd3710b476232f4d540c41f989cbdb2c3c80b = "a35171ef6566928281d43bdb539f9781b87d9fbc" +fa7667122c9fd4c1e7d59bc5c9fce46020eea4c4 = "a0beaed0da6d647604c56c6ffca6091436451fdd" + +[c1862a82-0df5-52a7-b029-46f549b981ee] +e8425940807d4f842edf0fc74b7d1a9d8c3cdce1 = "733564546c9b712242ebabcfe2a804877829050e" + +[c1bbb6c3-4cce-5b9f-9408-89c7ea97d7e6] +eab138fb329aed85fd63e4ce373043ac809abee6 = "13c50c8d7449bb397341d2ecb3b8b19d3b0aff88" + +[c2297ded-f4af-51ae-bb23-16f91089e4e1] +02e4afb2aa4d18d6ea896597bb4c01b792b2cba4 = "d20057e22243d0c62e818761112b639a61b336d7" +1a88142d253bff6598ea45aca26fc74e65f13716 = "6c5f74a051b6bcbe4e0ed19c162478d53b0ad8e4" +2081ee27fe40d51640919d404468043888b375ae = "b94d79346c29d1f086a8cd73a315b423c80b5aad" +2208dc360adbdc22c3dde8e70a60f0a0e1aaaf3b = "f4705b173dc7ed8bc2d918c41c812c71037ee971" +239381009d8127d621724b3fa6c4734ce660f979 = "2e37d87021699680ffdf9bae4a42e472dec125b4" +296c644e182c8fc5a0a362688d482903d0cec356 = "04bf779dd09c415e8e243728f732b4b6de19f397" +2e3f9aa52a560cdbdad8584c77062dbb39cd3b52 = "c4c166fd88ced5a276f82610cbc1aba50bb75e2a" +336450e8fa40e96c92c2ac694c10a40f1a80bdfd = "7bb301798089fb86ebb5ac24b889551d4d76e8f0" +373a5692536164d67462be65492bbbe5d83b404f = "c6c21fe1db430cffbab26a69a65cfa8d187074ac" +57786eaac5641bd56ca52b3806e4dd766c892409 = "fd200f834f784bb4175513c4c03d975c6f4c4ef2" +581a9d6f1890973c168af89d87ebeeebc0d2881b = "23f5b4e4470ccfc2099dac5b893df4586252c60f" +5b8457f865dbcc1dbf523d0b14132a75375b701d = "0e40aa5b82ceb649a3bfa1bec8ebbc5eba3e6d4c" +5bfcf106e579c52f2be6d91c1bfaee1e198504d7 = "1eec60182b895e2bc9224a4186ffb74db4ac14fd" +5e57d36f7f34e948c7ea2f37ad7a769baaee4e10 = "7795017ec9e6e193756bb5825cc79a25c218af47" +62a2a810cbe627be7492f1de9d60ddd1f7ca7524 = "387702a9fa8ab0b8a3dbb727bf082dc7e407e070" +681a0c3eeb0496a900c270136a8acd8735911903 = "e71e3e27de0007103315beac61cd8d73793dac67" +68a67ea517d2cd238dfb7cbe68c4b10db44d8345 = "a8f20ecc532e817c74b31bbb166a82725c506be0" +89f9a65a38cb565b6c938a0eac760bb9ea458043 = "bb6660f6cac8f02b6ca4f507983e2be59d916156" +89f9e3f62fe990f33d5e38d3202e6466a2fe258b = "c0ce38bbd1848ed9c5107079b6810a73b64166f1" +8a780fbc23ccd512a8b4ac1b24b2e0aa2a0a4581 = "0219c0e12591e468469a33312120b37b2150cfd1" +8f1eddbfa8a044513776953d702efb6b9c122beb = "9f71d95891ed3857179de303b1cfb91e566e39fc" +94e5c9cc756f78ee87446593d5b1b7896067247d = "9202183e9efd44f89066afc87f0c50c751908ef8" +99835b54fdd8b62f65edf50c7656fcee5ee78357 = "a15e26e9423fa4cb37691fe9272beabe2377a9b2" +9dea26f54f5bd6cb842ad7026a0569d78173c41c = "0f4269c47b175c81586bcd5b7ae8858cca50202d" +a6fd94879ad11f3024ab499e7d67f7c8752ce545 = "7b68e123a3d579a374e9fa0af666d40c16e26b33" +b40123265706f10548ad97b74a46fd7c3602e0e2 = "8e610945623aede81a16e4c5b9356de46e04fb22" +c36c48bf467835676189be1bdd8f2c363d85b6d0 = "23568c4f25119f47eb0b485355d2c07e8fdf6b05" +e5038a7bdb9fdbd336a4dca0492cc4f52b88fda5 = "7dca500ffe3c2a22bc336a730154ab13e94ecfe5" +eacc2e1916b4be9fe8a7645d456ba77b5a4ec77a = "97f86e295392ed75e8b6ad774a9daed2d86cb47d" +f8a5e6efb4a34ef91846b21982b50fb686899d8e = "e815b945af4da013816429c2bb73e57afa1c469b" +fab71ed84101f4bc99906cec71882450c622cb91 = "39b1dea99d2a6aa3c05d95606519843a56f88062" +fe01d0643966828726f31068fecc5c286a97c12a = "6f493d1b5435caebe1770a4d369a866cf5b4be0c" + +[c27321d9-0574-5035-807b-f59d2c89b15c] +052cb180101830a023df5c7e8e68e4f7d1155086 = "ba7a4a37b347a97d8080b7d8a50c27b152b4af74" +527b069a55489afec1187ece9517020c53c57902 = "3463a2044f671d9c57970f6bb738d077fa54f41c" +80692c0f9bd981e668ff3f10284b46e46c7ef96e = "2819d6357c88a17e53e67303337b7f996acdf431" +885dafe2f374ed3bfa502e893e0388390d6a61e3 = "ad851943915cdc4050e00c4cfbb191dd6c9c2ae6" +f13ac1ec27a8514188c4a607aae7d6f7cb2d738f = "d5781a1b069ead9b2989f70ee9194f02ec106844" + +[c2a8506f-1b35-5b08-8aa1-bb4a7b47a05e] +2ef05ab66a83cdae539a9c3a233b5a6ad123a96b = "03acc56cafe001ef4a13c3b2a170953e83b0f3f2" +76f03435effb83dc94ae6bdd4b0ef7f99d4af610 = "587d5346b772fe6f8c574c2d44d364832211ef17" +a6344ebf578c27f29946af1581c0bd2a71f77b98 = "a4e7a152dde1ae8363d8e3d57de1d499f9df45c8" +dbb9d520a9753d6f7905d04dc0076b1d54cff511 = "c3d407600198a7edd99472a4822babc16e252b09" + +[c322f5cd-569c-58de-86a2-19d2b72e86c6] +082dcc49a4f11f6e12ef985ef34f1265b76efc11 = "8bb990ae75073ed114c938fbf34005701a6655b2" +0b0185e294622ee2fea8e71a139adad30dc48023 = "64d2bbc22b3c3a6d267388881290093df157c15a" +1a8059804d2282e809508e294d241be8df17dac8 = "09d817993266bd6eac2bd19ea54c81061d91ba2d" +21a90964b8a3ca1f8a6c360ca9a011b7801d5658 = "912a22a54a6ff3d18d67648f3f8d985878b54063" +407cd076a36cb6a175bfa2d9d8d6dabeb096d489 = "4009b8a6c370c8a528207d0235bc5f9d7566a93f" +4a982b2dab508219cdd57eb01a8b48baef5590d7 = "238222e4932c533699ca23bbe0353ea6282e4109" +544e4d7d371c906ebbfb9943558209a00e4d5ec0 = "9c722c6e27edc594780486fd3fff71af80d8fcd1" +58a98305f38e487abc4d42109b5cb1712ddf1ce5 = "fc8f9c2d51b18cbf23dcb1b065a744781ffe2f22" +77ab38bc331932507be8e14221cbe3eed6afa839 = "d2feb228571c4bba84289f635bc1a42fac22eeec" +787d07a9efadb395725c7063c36bbb800b1f2ce6 = "91e9b4aa172b6c3a66a670b4852562fc1c887d61" +9078102a2cd13aa038ad2eaf5146e3eab5749f0b = "47472ada18129798fa57d5d3056f1012ea3fed56" +ab049c34f3581f7120113803f93cf4fddb910925 = "5dc9e10cf219f24dbf09eee923c450100483ec0a" +c213a9b8a826cde982afd3a7db0ead4ec0647a68 = "096417d0fda73784bb5ee387b0469386d9e99d24" +fd511268d1858b989dbf216f1d245e8fb663b90c = "44cc6b2e8a721b521989f91172ab3295a0567251" +fe2004f8916288c2025d969024107cec43757b90 = "b2bcf8061a32992033ed14acf3f020140308dc74" + +[c350da53-3175-51ac-badb-d4cd9f895652] +598fe5a8571f9c51c25f34d34277d4d5f95b00ad = "22ce37e0019f064f5151b5a7220d3d1a58b08cc8" +aba1f767449bc2c4d6f536765f0047808c965c03 = "81e43c6239e3fd19f7798be83f177564bff8d4ff" +b8339213682ac8ed88d0ae0e219abd2e0e263db8 = "280376b5d6dbf41cd6e06940ec96f6930d04d548" +bd491efc20c523b94441a31f2d883a5e520f1116 = "9f023d332e1bed52e6db9d0968a5dabd5adedd52" + +[c3572dad-4567-51f8-b174-8c6c989267f4] +02fc15a435563448e5c24663e9bc56eff19f883c = "01c94a380a2e085716ea4e20aa8faab682b5e43c" +11c4161418de3d9487d58dbab9cbbbf776985843 = "50f50c0ec59dae848f6cd18a5f15f7ea718a5195" +19caaf8c5025d65a9994dbab6fc21e3de7f93452 = "dee5ebd95994e19e5c80d7e9af0379a2936859c7" +1b2efaaa0a37e4373845c6ab0ac30ac8820cfb17 = "faa1d6cc4107e1decc5cab6d40b77a48844ef534" +1c6ac7466bb4b5bc3a9dbc50b52ac5a1f0cee772 = "1f311d392bb7936e5ff7577360e9da0ccf215a4d" +209b3b84a3f5e9e7455eac75d70ac220f4826c2c = "9df9ff8e1cba6461ad1bff265c99c8eb4b874726" +2aef28f1cafaf8210a39d191cf04bbd5bc5239b7 = "2d703f1ced7a9af0f24bb14d13a036401da4fc8d" +2d8718db9986ff5c12d50c3644c24825dd61bf59 = "611c834713ba19a4ece97267792c2b596dea0186" +2e6babf8f054cc43a9d5a1eed37fa615c1bb40d8 = "0576a5a122b97c43fa349e44967cb6be76a144fb" +374e37aed9557b2e840e5df0d4a109a29620f9c2 = "9c31043c9675d1397cc1cfc5bf4b593df5c7ef85" +38bef0da42b5eb14bd6730ec73b5d8a9f009b231 = "a5f05984c575b6783d60c82fbfed57c35dbcf10c" +4361454b9e2d2d33fd1f9a4b202fcbeb95e3b0aa = "8648bf8cfe1c73684e79e41516cfefd40b70b1fa" +4d5f2688d78c8bcce0441b4c930a8402891a1328 = "81d833f01e008d6627fb17cae9636fff8fde089b" +59a62ddd0432fede1de0e80c0d4129a6a60e2376 = "a318e581d24f088ffa3f21827804c0a5090c35be" +5c473d9678a3f73010ca8b9230df4fa4defd29fa = "debd0142424b01d2d2ce63d9a48774e4149ff3d9" +5e4b9ca24dfa00ddf34c931e17fde4386c39e166 = "60982b643d6d62e09ea672e7e77e5efb83660b32" +6d61a48ef5ca875300975b257d2515f478eb1122 = "61e6b9565c0051f65bf74d8dae38446b1a94ab76" +71fd9f959225a13e3a4efa163492bfe93610c357 = "6b641782ffaaabc1ee9f8eeb477ce25725b15484" +7a7f9d5803b2d2298a9c22f37778d70e3cb88030 = "378cebc2becbd28f3af848bf9dddf217fdae4cd2" +91f8f8e049ca2193e87b75d5efae7565684f83ff = "b1055f0e968ffb4abdc7577d8555da466ce73056" +935d886991e5d294d536a2d25989dc319fc3c3b9 = "70701428c3f24686d3258e9b2efd87bb15793c74" +9a3567d590835ef6021d37cff13fd63897704eb3 = "17f7b7663427a728a51f0ed456f7fd82cb290557" +9df2a780e69e6a73c34b0f2a164e933d717016e4 = "1c0204f88905e0821edef9b49f14b2bea5746658" +a7a817fa70917fbf7dcfd348aa05823f5b69e449 = "69faabf3f4a416547712e3490fcff78b6f0a8fa5" +a7c40336ddfdfe95fcb66e6969e7a700ec1b3196 = "5a261644eef6ca1feb5af2609396e40359cbed0c" +af2196665ed99eec1fad1570423c98b7568a5189 = "0fe43903d4482dc923c2a9162c89f64d5d97b6b5" +b631cc385ed6614894478521acee5c11881a4d96 = "11f9fa3b1b5ce89aba4b194d00238443dc2fd59a" +c33c56e25c6682a99aca625fb79f2f07aec689bb = "28daf535719502d55eaa9aaf867253ecb898109a" +cf0634d867961c834872849a909c015d70fa59f3 = "fb9efcdf1d5b1c66a2bc6d79bdbcdfe45f041752" +d1422d9752777941575e2320a7afef9dbe30cb49 = "ee65c7ba9ff9d168b4ae054b09a9c4e7ed09bb28" +d1904858ce063ce49c39fdb8cabd1fdd17801825 = "e7b1341962d6e62fecbdec3f95c1d0343838f328" +d27c950a4060e6e86d82c5a95d54239880574ab3 = "770d79fdf78297039bb4f80df3b38cfe31af3e73" +db072ad08a897f73365f964db6282800d03d1770 = "31c4dd3709f6d670a789eee2c00b80ddaeb2256a" +e3cbb0969dd5783160f4cb0c1d090e10718b0e3d = "e219a258e36d579ea376eaf45371bba1f5849fad" +e9d8094b30ed7db51bc2a040bcd82e86a99e1fce = "8d914ceb74207e04351c32f303c4e874ce0e6901" +f474d7a00cc66071c2fef2aed502fb4a84404984 = "22c6387a75f5b62b880f19d84c3926d753d76edd" +f840e38aa662cef6bf889329179700164794f482 = "d66dc69780c8f3f6ff1bb693cba304975b48c534" + +[c35d69d1-b747-5018-a192-25bc5e63c83d] +8c27846a5eaaa3981d39116d1cf010a8e5a8e624 = "4f15e3db46b0370749e7163de11cbede8bfe20f8" +f14bfe77e9275b1f1bbb090b2d1b5cdd3e4d5ef3 = "dedd086e28721e2accf33e51adef76c262d5a5e9" + +[c3611d14-8923-5661-9e6a-0046d554d3a4] +009a4fc2a6ecbdcb3517ee8d7145798947a9b630 = "7da9b66cff519b0f96cf6401d425211f5783fdc2" +07e018a2d17721285a15e203887f09699d5f0c61 = "6ce7c5f7531ad7897e0fa347475cda32eb1d91ae" +101823d221339ee9e65f424ee775f54ab4f66fa3 = "8f7c31bc7f3b98ad2685705462b0421d39634d58" +1fa3fca158d7321e8366171abcb893ecb8847284 = "33f0d9e928f8b168370542e32034262118ce65c7" +303ca0f8da7af1be8aa8cdddcea95d8efa52fa98 = "6a953676be7497bdd2497ccda338c4ce9de49d0f" +3224e6795e4d69a59722bb3765defc0ab9071242 = "18bee3b5b5f4598a27d61def77a31e8cab9a1a4a" +32835c2fc51862845b214d38143e98a211f03d1e = "58b055ddb58b86ebec2b96bfe7dc4b23051f1bbc" +39cd6264adb85bbb14f70e09045d6da4d453d52d = "9f909ff00db7756378b67451040ab3be0cb9868f" +3e561ecd023aeecefb2a8f56691f0e8acc49ea7e = "3921aab9a38ead61e61c9079dfb06e8fff3b6192" +43e4d6621a612566b7eacd7986a96549c2fbfd14 = "0171896e9a878c1c8aa636bf0faee14f320f754a" +4b98a5d61e1e52af1befbecfa37a5239a7179128 = "328ed36c5f4513b2e707869a3e9a86cb5a39d871" +547aa84437765434e9168d798cafb85a7082c789 = "057697a4e2ed66a68d2afd9d6ced0f58f99a76c6" +550b26e28d4b0224b3d3ee1d97b9efd4a0f8e249 = "b45addeb0ca9b16b898103eb668da15279f2013c" +5a1788d8dee48336e405b65f11d8841930067aba = "102ba17b4ce3c2f2da88e25480b28970a1acc10b" +5a45895ef8f2b8460d4ccfa108579f577a79d2b1 = "6aab467991fa0272b7f1c4a96ff44d47c90b736e" +65b0c0db66596cc942a114c700b66f6ac969d9a3 = "9e5e4689c02f537dabdedc56713402de1dbbda4f" +6cf4eb0239888e72e6fe6173abffe93419de4534 = "21c4cf50092246b7a49551bfcda6284d8b8ad4d5" +74b9c816b2c3cad07fda49a3a1953c384b55ead0 = "c0fc2d3dfb76e23a3d3d5e0bcf09e24a7c5487ae" +7f5a67bc5c730560c8a4e4970ddb955bf2d9be03 = "e7543bbb83cc6e967463b4930d1aeffffa8f417d" +838cc3847e0b2856536c9f7de5e335db3a3429aa = "342975506ddbea716e5ba1cd3e7aab36f2832ed7" +87af6fbe4c9f9e96a53c0314f119cc7f3f369b5a = "723bbdd596af4b24f644160e664729fc6392b8e9" +91e3c10cc2c783ebb86e9c06e1b8dfcc31179208 = "4942453b775e7d3103e53f7e7f24c7f27a83cdd7" +9fc96bf5baf87d01e6f69bcb2300965400c28719 = "fbceeaf6a7003fdf0aa4ba9d3fcf3f50f65c7420" +a1821f2d24db092a8c324d1c35c8c2bb90a1d7a0 = "aae0f409f0996f16ce7d2203ce7eb10c19e7ff61" +e90b0e481a9a1b43a9884fd99d8bdef9f9652fa5 = "1e698f9d366b1bf5be1609e9cb6b5cd062518446" +e9b086d92ef6875bf4aaaae8dbc08c2ae4502333 = "5cf10f3b34822a0e9504fb548664be35d3c3bfc0" +eaaa67bb50004eff939d192bf5acf2895cc72b0c = "ac8e1b84e7e6c38abd24f50620a5bd4c95f10c36" +f6916b661e21254d51b550b4b4555d0d71f394c8 = "1304997eae424d77699e277e87911d296b9417b5" +ffae8f44001a5c8467e490cd5bd1a221772f88f0 = "310e0174fd2ce8bf192ec1fe6fce370b9ac402ef" + +[c36e90e8-916a-50a6-bd94-075b64ef4655] +0171f8baba821f27196a566365164fa5ab8c98a5 = "7c362d6feaccd19835770e6191a5ec43d7aa70d9" +0b267e326d749b77616386517b4653bff685b140 = "1112f6e266f0b3cd2a7b60ac8d1b265412869068" +115de853fd4103b712d051e902540e7fa2b627be = "030835d566c9bd1f31e67daa56e1d7064c691472" +16e2abc843b0cddd7e4326bed7de0cad7e92b6fb = "a067999f5307da129cfc6e2efb60b1101c5d3084" +180d82d5e254e00de20b1cc61dd44e6621562066 = "15bbb56c0cf4c537297cbe5610acb3214ccbb7e1" +2682fa539065f3351b2b3f43f0817924412ba5c7 = "9ae2fbda165363f9218a83e0bd24a71d43455d88" +4488d66ae45c2ad523c1514a384ae4cb15242e2b = "dc0d7f7953e446cc839855293b31f2346ccd1d30" +9428c5e49ae8c846d583eded635eb7fe552ce781 = "7c77519962ae85c5edfce483893483acfa6045c8" +95db77c55488bdd077acf872046ba1bb6b53bbd0 = "80406ceb7d0c841950deef1bd79813e6014936f5" +a1a6f3530d02bbb8b65fb14fac09ba3e04544567 = "94fd3cab0dfba9bd2454b14c9afb15a3f2c629b4" +bec2e2779d62a94f155d9b64ae3bf6242aaacd1f = "c5020cd3608867ba922d6b5198fff9f0048632af" +fed98621f96a7373efc665dc2df63749059c3a20 = "a244ee88ce9e3e1aeca64000d71c5327600521a1" +ff95e40fa62c59de8ddc73017db6f8e6cea0c95d = "853f8603e8f34026c8849d327bbc614bc8c5fe0b" + +[c3fee2e9-8015-57de-85e5-c840d3ed97ec] +3a74fab646935555b0c55eba186282233a53a20a = "6566492657c454e774d48245ceaca28741c57a36" +ad128ff9abf88cf5285fe4e6e380e1911d9329bd = "2e178b9b1be4b84774d606b5e95cb205e41b4583" +e91b758a2dc4180de15f5b873e76d42458f0edfc = "47cf84d2348968180d138773a0aa947517b43bd5" + +[c43967c8-f634-5d24-8eab-2867546b366b] +94b0ee57f475d52238620ea2fd346d66db4a7292 = "546601639c1f9f520b82468989543ebca3c9c4ba" + +[c4541016-4bc8-5661-83c1-830810448607] +05ec7a5ea0c5b6c906cfd6a0e0a8dd23fa33389b = "5a9084fe5771052e87ce5be50ec5fb37f1539593" +0e733093cd71c67bd40ac1295e54153c3db0c751 = "6b2fe85e1aa3e05af9d3cd75fc9efe6710f6c651" +141fbb10e0fb78b4f03bde763ecadc3534797ea7 = "c4d746815c5f40ae548aea00704fbc427afd8ce2" +153a4e8c70d1f702293bdd7a2215b47c4dfd734a = "9c702b0d798ae718daf8754aafa62c9c19bc7e4d" +41d1061bf19dc28de802e4a10e34efea8b96c762 = "2e452b4c4e7c080f2b2c839375b90632a67d973b" +64641900d8fb9d1fa1e46a468ffe494c5e23f20e = "713126a64ddffa9aa96116258f9286656429b307" +8c4801a6ca6368c6b5175c18a9d666a5694c1c3b = "47a1864fc72d2609dc877cccb3d4344de752613d" +96bbccf046af93f7d76fca9e1f1b87bca5d239e5 = "3d07d053c04366ae4cd48ad944a623531ba89c9e" +a8e5946cf8608550c597a2f0c2cab99599eea206 = "3b439fa1d2334f82d85e27ffc8601fc255c5a080" +be6f119b962ea18a149eddb480e254572576117c = "f28933e973591bd848a8d139e4bcdbc50ebd1372" +dc4b4824329aef4ad251f1c4a98d721612127f9c = "e135a2b1783a88b783a35d03f5c9322ed34ea18c" +ebb4cc043ac95e1635eac8f6a2db095ced67bb19 = "30c48f9e6ac6f5f566f5adfb7a8397f8c9674e8d" +f9ef7c9ce6321458bb47cd45fb1c728e0c9568f1 = "c570e6ce06388d7086a7a214a75edd2ab1f12049" + +[c465b395-4abe-5789-807f-2446d20775eb] +60d7bf43b70b255706ee3798bee8161fac18ca16 = "9f43f65ff3a9c0c4d9a5ea2504443a3365c29c39" +a53641cf45fd40cf05786097842d923bb9d7cd53 = "1d0a1199081c77e335f0409a3bcb1a06f31f6826" + +[c46f51b8-102a-5cf2-8d2c-8597cb0e0da7] +006f1195dad0823050e7dc7e6af86dfbf65eb555 = "1680ea8ce33412b98ae6e440a53aa829e41c07e9" +0694a8f2a6805490da2be458187da692ab8a07d9 = "75871f72a6c7fda7585c290d680578ab30d6d16c" +0a677d983b2409a8640a39c5156914dc5ec2e349 = "ad4d452657a421a30f019f9bbf231df4a6033f5c" +151c2b3722eaa9d222bbf6910b905c5e5101bdbc = "33e62ae53236b02a4a34da4309406e338b45b5bb" +17e28de71e909a30a31b64750bd57bbfa36b6f15 = "29fdde423b05700db77c6efb474ff2ca52f587fe" +39d88a5e0acbd893648dd0036e4906d19eba8a28 = "d6e4892c27b3c9563711059a5bf55b7a447ac7ff" +6052b422cabf7c2e8fa7e479faee5a220049dc0b = "8ac239bfbf0da5e3c5c2e4d75777bb18a32187c8" +67cb0ce0cbab2f37721f421791a274f7faa18d34 = "e6d3103846e96fea9c20ca00db1c9931315440fc" +7271e6648f7483c792a1965d95498f484ae0d902 = "d05ea93e177f4786abe0bf47ae552e2f764e0415" +8bf5312fda0f7137c2abe30a67581ba1b1b3669a = "f57f3a919a67b866b2f6fd5395fa8efef179f72b" +8f62cd44cf8736e04c44f7c7de4494ce43b0632f = "da1479c7903fc07645a7bc1d0fd8dfba302b9f80" +9edea568b22c9b0a66b18636c170df932197248a = "9512a15c2e8ebfa690420583e0966b37243cb8e8" +a350901b0f9a2463d802d7abb7b8a34bfa02bfea = "d3d36311c2308afe8ae77915056088e5b1df3b2e" +ad1e782ae687eced4d689681f519f6b961c69130 = "e8fd1b83328228b236aa78a352f8ec505bb1b038" +b74d77c22387d58ec6ac90659ca4cb4e81006a35 = "810a4b5924119d316642f161808a8ee547a3e9ba" +c5fb51a2c90597a7046f52f059d53ebdcafc54f8 = "e68dd798129a143f2409096a8c7c46611bc87c1c" +ccb4439631fb031b4d8c6bf69e1f5eb7a2877840 = "e4558f902826efe85a4a4af41cf7a3bcf0a0ae0d" +cfb1440413ea544b1d003a7db6e1dec18335712b = "82090bfb66c4caefb3d4f6e465cf9d352dcb2eef" +df4969a97a28cdff61279c8d2bf01bd62c4e6b7f = "ac0eb27e35299178fba26cc0603e3508b3a6684b" +ea4da7d48ac934011337ae277324ae5bd2b9e15c = "bb86651bc85949a882c07c749839c205c63b59c7" +eb400d66f8de08bf4979812f1f92fe88e470b5f6 = "80655b2995214c7ec386e6f418cf054fe1aa12af" + +[c48004fe-d13f-5df9-98d5-0c1ab8e45fa0] +9693ea6147a8495112d75054dacc2bb8017c30c2 = "66b416a6d1cb670cb327d9b41e0d77a5179e82ba" + +[c4c386cf-5103-5370-be45-f3a111cca3b8] +6a6f61cc9716b0dd6eeb03b78aefde5d5f04c333 = "55e09164cb248346477ee86fa1d5cbaac9f1b997" +734501df1453acd9f66c602813b73de764a321d5 = "0037b454f26fe49144d3d3c194a8c7ef461c6ab1" +cbf20744d8cd8fbdd2f8e4dfd40b355f848b703d = "5b222ebe4d3567575fdc446143cc9cb5e03954d5" +d8374212dc7cd006a490ac596ce7a53f3fa77308 = "423771cbb669693ef0e482a42a067463228b1a9c" + +[c513aa4d-7626-5656-a882-4604be010eff] +07f3d094bab070cb3bbe35901b46395021d1e846 = "f420369d4eaad33f550a1461d8d1b1ba10716f58" +4e05fe330584c440a5798e2da4893c3ccc24f3c7 = "ba05c12c1fa2496f78760a62da0d67d29035d9e2" + +[c5292f4c-5179-55e1-98c5-05642aab7184] +0ca36ae085e742904655bb0454c029dc0a5a2446 = "03a240f349af7521019e984de83f3e24d644981d" +519ff71062ee72dcc6992434cde4a1a57f13abbb = "f18043849f47e8b481a4f635c2da73d8cc383b6d" +6e128e808208973657b2c0afff06e941547b35b2 = "dc0472875fb8f87a7799b25d9fc8fe70415b40ec" +730944df8bd0ea8724a6e01f464c56e540f97d41 = "f6b662d4780309ec959219c728fe99209dd79576" +874ffba49f79993f064e10dd45e441e2f47469fc = "b3ca811750732f59dc7a0db913e29d22dabdfff0" +89ae5389516a271a69de982bd447215e355d20f5 = "d12d57a11ccb05534c181a7d9f4a7daabf264a89" +8f2ec1977f30361d10fff90f32c9a86f8e41791d = "044e9f99455ee0a9bd3d12a3e91aa52b122e2179" +8fab4fae752b3e73963a51d6419d25b173d29adf = "34aa6bcdf7c49f9ea4410241be5b6aab3fa81440" +944a554855b3adda2a75b637066e929bc2644fa0 = "64ab11232796ef4d7405198a01c33566ee6b7abf" +c551c6844fa2a0391ad12810895e32cf339c8020 = "7e94a12032574925a2ca602f231eb304768adf86" +ec55bcf9bc1cd24ba84b28743e10953795f1d90d = "ad8944884da9012e37a6402462b34e060dc8a307" + +[c52e3926-4ff0-5f6e-af25-54175e0327b1] +0a537836f5b7e1206b1befa56d7bf3b55fc7fe29 = "372721f59a69be0ee7897f39461e710c7fc1d4a2" +0e40e57997aba23623515402ae8a9f7695deb310 = "8f9264dc7b21893449a63fe6409d38132c97aaaf" +1465f3cbde68dd34fb0cafe7ed086d369fab9168 = "5cdea7842d7040b0990ca2f22bb85f81ee8fc9a9" +19e3cd8682b823eb95c239196128dba3abd987ec = "53d177393a696d17db1ec9524056200ce287da86" +1d4513b031191124e2b15f5f95c1a54be5436570 = "bc39033d01c19cff76c90f8ac6ee1a8cf4f68a88" +1f5735fc6c89ba3dc000a0b8b08ad0e7cae2302e = "dc1b7c1fb114b34f787d2377128f14db98d5913b" +20bba07340eec2a4096c5c4f2948a035d836eb12 = "97b86e1e8061ae2cc995b3eed3e5a2a3745ff595" +217ccb155b6d845a9f6e89e4e9b426db4a9ad0e1 = "f73056e96207cc8972d343ca052cf70ac11b3cbc" +31eb7bb67f322a00a84b11344d53ebb3fba8feae = "1d69b55028d394a8818b7b87968240bcb22d5d27" +350752a779da8a5cfe0d59bd19d03ba1c0153a00 = "82cecc181f7629f9493b317e2fa2fe8e589813de" +5ab09d3e875cdfbacc9f5469f276abafe91a2dc0 = "ef0fcefa09eed8101500e1655dac4f14276a7f3a" +6637adbfa87f7dadb4f0a01fc3253b0b6b34fa58 = "15f20c659d221891bccdc1da63e624fc4480a36c" +70b004c2ed2d6066c89d967af12dcf9378c9f047 = "6917eb8ea7853832fc207edb75d93f66544cee2f" +787e684583f84e9d70c1eb0f70019a68aa557fc6 = "30302c3bb332624eec1e71240191d01be872b5c1" +79c8c8a6bc465f41ed4ed1f7cc94e6ab4f37b301 = "e9cd8cb7b4619dfc717eb1bb549886e25203fc99" +7a063c4b62b001d3d5cd9b706703bae38edb5204 = "0668c86379958f873334e4f79df6c334012f3f4f" +7a55deda388658fdafa875746cce3dbe71089054 = "4a85a87bff3ead7bf1cc0d9527bc7a90363f6e5a" +80576fae22a41c5dffb33f71874d17337d0fd89d = "ec7ead5f4945b5caa459dc4476c9a74a937b9750" +8439d85a44d687d9c4cda449f84e22e93f1e9991 = "44d22686c94c1f9dac4c6b4a47d55bc2bcaf75aa" +8b07d256e79ea8025d3ef2bf5a1d6cc09c340348 = "62aafdef34165a36eef3f958042c7990a2a6d42a" +8d58ffcb1402d8871e3dea6198f939d5a93876e0 = "a8ec499779a0627e56584e00f9d3a9915f21f319" +98a7c2e751852c6517cc0c22ced97da972e8a07d = "529ab59fb494deed32a2cec46b62ab231f09ef4d" +a2ace2b148eb40b2845a0bbc7501dd32f4e278c7 = "f26282b39ea813726a9e58a5c98fa6e1090df937" +ac68cd9e7c728def3d0337c28a31bb3e64a9e593 = "9d21d8bade9cf6b6b726b18db18e248cc8d7bb10" +b0b8d589dd5bac4bb584a4da4fc2d2d047ee54a0 = "add112fe380ac6071e3fd710c7a60d8780cf5525" +c45d7622da1c5b7afb33cd78370924320fe8ea18 = "fe921c637b09466986684e0b060a552ddf00d1aa" +cbbe3a718d64b209f8caa83e0729f4a3072afef8 = "9c08bf078690c646391eb829aca5b4964f45ac57" +e7bbd02dccdddadffdd7727d03bf0d5ddc968553 = "9595d80f10f25eb165513912cb09eafba3de641b" +ea49f246e0f32f815a9700635fecf41333ec78da = "51c5d44e13c8211d100031c0056b92b994488e96" +f13924faddfff4efd25fe60b1188e2c45ae6e76a = "66617df6a5007fad75d4f0c1b6bfcf3c814cbbea" +fcafda674675ca61120d7293ee10cb5c5c59e908 = "1e6eaafdb599bf2332756cec6729cfe3d63a6485" +fcce9769d4d094b87ced980879decf337cb56bcd = "0be2d35bcce4cc76a712163a24e90f2228f7f9d4" +fd3b0787ebc43cd9d1e0ce0fb31f1f74fceca92e = "2cc8016e12374e4919d53a56f0807c81ffe516a6" + +[c53a927b-41ad-50f1-b668-0f657eff4b0d] +312becf024084f2b92fc3f61b99be21d41a097e7 = "7dc74123ce28b5ff086083c7222ada0acb3a7f4a" +929b21acee69c3f845d96fefd6da36cccf237a31 = "7b06497f46026e01ba9415272773fa7518765c31" + +[c544e3c2-d3e5-5802-ac44-44683f340e4a] +1028680291cad8fdb7c34d0472831c2a8207ab7a = "0591ef51ad411fb3a9c3e37af6ae52a3358a1200" +20d7911a6ea91a8c09a893f1549a5e638e21b4af = "fc35a16c1e4ff9d39df231658851f085413d9906" +3b5d9dd7e8bbdaaa44b3a282ed1c8a77bc861593 = "2103855d5490f7223c79b948e0d437dfe56fcda9" +40b76abe81ee50d0eca8bbcedc6fd64ef4e78d9e = "d1327e9e8c65ad7e5f3cc9ad6e7a4727067689fd" +be5d27fc46a335b9aab4235f4e13c365822d8047 = "54c4f3e37e5d52ef080437aa2de65670f0150b2d" + +[c58ffaec-ab22-586d-bfc5-781a99fd0b10] +00c3e80af57f15a3d84762fa92e9356d5b74cae6 = "19fc3b7e9932325613d8619472a36ae8a9120e90" +05cb57110cc9c6495c34bd890c8e925388ea9089 = "c341fb4e2083256398fd8f39f5ca5f4821313ba1" +424bd6a21db81f43fcd0db1417bed24e46b2448a = "d8308a34c29c7fd0a94f1e59fb34ab904d92e0fd" +94960d3443f80fcb1d364acb67bcf1551ae675c4 = "5dcbe9ebdbd6240660f1cf5e0bd4a9970a9e3edb" +e89431bd49b54770cbd5dd5d5b44e97fd1db5758 = "e60378fc7d95ba1458cc531088af18aec498c8a7" + +[c59b8745-e483-5070-b3d6-2d5cbfcaf4fe] +50e1d445989f80d479ec09c1ecf2910284544ad3 = "bbdf51dfab0e1b1d1c29b3f8fb170eef61386e61" +51988081f7fa3d44c7f5970fe0c6781cf63ccabf = "fea38a7d1b0e6e97c73fa52706c17515dcfd90ba" +58c728fdc3af8e333f5c9012d25f2d4f45d61da8 = "bf6ed60b4943e5bc7830aedf7be0d4167e98a747" +5962712ccba894a59f87c9cb672b5caa11a5c107 = "12b78aa9c26eea5d3db8da6debae9e476a345ca7" +71bc2bd2a513cc231fb75eb9ce3422051f52805f = "39f1f6c2f5764687f7ed15cb6a933a19eff48813" +a315b3c27edd54a839fb083f9e74b3cabd708ae2 = "5e8ba422cb6d3d9478ef64b6fb8242a18471e68a" +f727b8ef19a4f4eb401a650384ddff41737d7a49 = "2de315491477873855ea6741bae6a8c56b4490aa" +fce6beabe6364673cfe004f3b5784e4253c05791 = "b08d72b72a70e40d35a0a71d950dc62a1d0f0d80" + +[c5cfe0b6-c10a-51a5-87e3-fd79235949f0] +1b1de01ea1a59f77a9d5581df305ef1f75d12905 = "52c84dd82858d79c92569803db93c6b412b490d9" +4ccf0baa8644f738e0df68596fdabca9e45cc58a = "9747bfe86001716d1da6f7316286f079d38ba420" +690001d65519f08560a6d76ea0bfc9ee28bba4cc = "381dc2b7bb5bceb0b4578d81187ebb1ce8614a02" +a1baea65c7b814a42d2c9ed6fd0bf75277c15860 = "dc52cbbac43d911d53667a0b0e58d4ce4300c9c2" +a84a2be263ab5ec4b5261946a17f01fda358b9ac = "51f6f40ed6c27bb378fcc05a8aa969373ca26364" +c987aed2639ae24f0a031d27d159baa62d06c6db = "834cfcfe9fa8b5ccbdb71c1eb6704b3aa7ae51fc" +eda2f78bbb494a965adc4a7582bbba21ec623673 = "e95c7518876eecee50400ef82c80a2a0cc420b3c" +efdb887e57ebd84d418de160552b9d73a7d16f40 = "5448af02ad3e565add50b0677067f42a5edacb19" +f4e8031f1bacc5584a73fd993241fd0e633ace11 = "6392a5626482f96061aa4b2f7198d7b1b7d77d09" +fa19c5ad6fea210b6fdafc8845ec4b1650c69d94 = "38522d70e417cf9ace93848f17eb9fff20d486d2" + +[c5f51814-7f29-56b8-a69c-e4d8f6be1fde] +106d60df96fc9e53209022f0343229ae593c4ae4 = "15b7ce372f36ffd6fc47db00846d9459ac1b35d3" +123bafd6f0c4edb97cc08d7c749b871b4f056c69 = "6553df1a2ee11f6877408a839660b8df0be53c86" +1e3b110b06eb0d92633689b2b9a88964a0efc157 = "492e5286bae0f533d59a8530c38d689c0edb68e9" +22f4799cdbb038fdabbbf12fe2d92a3cabfc2ab1 = "fb6b701cda3f463465d5923389e832d2949dd4c7" +3c374d3bceb1d06ebbd67e5d00f2fc533efca53e = "df3b2865b708ac3c91e525a9e0caa7dbc60d809e" +3cdf3d582e030f251f3d329a17d60e23ebbd1cf3 = "29b893ccd7113de732e8c29784d5648c88fc344a" +51728b1f85eba01b6bb3537d31e4b67fd0dc852f = "931d5242c70acb0ae012b94f3744cfa13b246830" +5ab568e18ff324887f05b0c12fbd4783e09a0eb2 = "2dac23823ef1b252945cbc88ac52a61d862255c3" +72c0744d18128ae9bd00829b3575586243afe6fa = "7cecf02b3866e2af9712578a322432fd737d5076" +78a8d13044b19e41efd0424554a26ab8dd8983cf = "6fd7acd2ecfe459d31adcff4c93fa3f537d603b5" +8ad446335847fe73babd8bdc35b49723388ce32e = "6a4d9f9f6332144d700af481c276532b96d0f67a" +9560b480c4642183b17d3f5d5a751a1dd502d07e = "dccf2fe248df01e1386c29b98e4825cbac8b7c23" +959a9ff344d2da7db8c5445ffd3f82b9ba3c084b = "6bcf7c91f04e9cecd0df536d9b585d8bfad4989a" +9dc229600e70223b4ab4cfab7bc23e4b36da7bf0 = "79f34112d5c4f2089fd2c849724284370fc087c0" +a047eb2425bbd724356521a23593b686d612a12e = "43b9dd2ed18151417a6c9870f4ef9dce94ed5a72" +a1a36a4a0f337736ad2407f864d14fbf02888dfb = "ced08fd7669194b1a6fac8ef3dbaf2d78cb5b473" +a34087c1a208debe17a3f0bd87b41045357578dd = "a44e604aa33096453b79e5467fcc102712ea8096" +a8b2e3ca93a3a2be5b525f3bdf09425363b823c9 = "c9ec705ae4a5e88f9deb49ec15883ef5819fc964" +bbb3ae7005d8cb0af21341ca9d3590e7309c5f23 = "ccf6b24e31b69b34ad4ad9622a2c7b42d16b350c" +bd343e50fc2c2a830ed2baf1387fa8f43295f0fe = "49b7612830275387a7ea29892ce6aef3896fb32a" +c0cb8c0ea447ab4c9943e2a3653b0cebf8feb216 = "d298033b5e86346ee3e5c2073711a34d59541f7f" +c8badc7cb74a293563dda87dc0990843300e91ce = "818f479397a7ef77e7a2f092dc45c3e34429a0c0" +d56a6187219807329b8a37a291a1a0d166fec7fb = "2528f8a3e1176a293238e1c2578f3b6a39044792" +dccdaa0f39477e9570b5c24d0b15ac849e93582f = "494adc64bb5506d9a2a5d07023309934a4248243" +e9586eec095cef76f69273278e25e3cb2058bfe0 = "9f59ddfe5e1427213d68c6937db3d86bc121fdae" +eddd27ac3b6a28fb1e78e94ab868082f9db80a99 = "2af4419e1a7e148c1bce4033e2781be2f0d8de81" +fc18bbad0c2286cbd42b2bc8b101663b18df38c5 = "367f59f9f336531eac4d24f1d8579690adcadc1d" +fd6bcf0ce096e19ab4317d0b412b3f1244eb509f = "f53c4251a23a32c9e9b1b84575ffc0b7f910ff68" + +[c601a237-2ae4-5e1e-952c-7a85b0c7eef1] +045f0ea17b0bbe46b0f82c9cc25cabbddcd3f788 = "feca95543b84f382828261661c21c79d717ad55d" +0946aef82974c5881f5c7f3ccb942a52992275bc = "4143d60a0dea5cc8a098d2726fe8dab501f9a249" +28717c4125dd79c5f14f472b25efae625ce1bf55 = "5db4738b89debe0066ba06a34a88c8f576773df7" +2e247ede6ddf9f389474212127ef5d8a5bc355bb = "c3bbb225bbd7492ebd758cc2de85b38e8bcc4a9e" +3c35c203b0f0b9ad391ce9061d5ca706c2b983d0 = "7049d6c42e932fc689df64a3d58dfe4b6294d085" +455660698fbcabb169fd4a161ca1dc07e6564a9d = "8646a4f3e9589167f4140f53600368e6a2ed44b8" +522151c7405ef3a52ab64ccbb228411bd240d240 = "e3c447bafebd214e451b38aecc9f8b152b153d98" +548174c7c833fcc67e00cc7349144f25e431f8c2 = "600e502317d3b732b143aa49f038f651b046fb41" +54a4088e84fd7ac2198709952f69dc687255c63a = "35b9a9be11aa9dc9d7b00f81812e1fb1632b39bc" +636db076771912e27bc522230c021c5c33efae0b = "d3934e20c66870395c3dd50653bac279b511926c" +67a0ec1284e12cdfc7c6394df8fae3a70f69c72c = "5c0ac5304d204116f13e9aa358459c7aff3e2c9d" +738d42d398534ebd1630a380fd4ad969080b1732 = "a1856a6101a64b42f2d39b8ed5422a0e2bf9290a" +74b4922869b3400cf5fcd2ebd316db0fa60f1b64 = "677eae3d22f7f5428711fe9533eaf9290e2e9236" +7d1b529f54479a3a08f7041027bd09a43c900975 = "767027ab722d7cba60b3c22b4389dfa27be68eb8" +849ea79f5489ec824f9c6beb8ab3f3f1512830a5 = "2b1844b6b86918b042842e9ff93133cecb10a7b3" +a1d2f9782a9a91c50699fceb94284eb0f8758075 = "1813226874a6a0dd10ba9380ef2f1ab3ad7ae2c5" +a3e048fcc283ee4bbdcb6792d480428e982fa8b6 = "bcc0f09c0b02cf0966943ce86e3204e40c932584" +a4239a755bfffe982aff0c998aaed7db91261005 = "3d00e77c03128dd19f1504a0cf71149b691ab95b" +a9468e286029023e6595a55323d9c9e8246ab439 = "d634ca5d6c5db525f47d61da651e5811cf619126" +ad03087abaa803302a0f6888d7c7a15764b4420c = "d38850144177258f69db35da1d3034d1ccd1f37f" +ba477da307fbf9d0573f61554e22ac79e520fa8b = "485320592557342f9580581abed1a2dd498af5ea" +c6e872b1291e2ac156f6b2ad5cbed932e9f20f02 = "ba61432249f314862f7a3feec52b59040448ffb8" +cc5f4cfd34687000bc6bc70f0513eaded1a7c950 = "729bd725f39b15c5a77be65b15fc2d59b10ff037" +d3a2ba7fcd9f52bec307a04c45f0ad1394075982 = "29a5458f3aa79a80cc6475495e65e98eed487cf8" +dd62e50bd414a89949a71dc7cf203040bad6942d = "c92801ccc34c49f74f3e0bf1c0bc1b6334837827" +e02fd0346e0886e95178cdf40f8cd11cd83ff6c5 = "08486055e1ab042c613ae7541a5f0ff8e8d00927" +e049a832398f71a15f5f0fd8f691efdcd9c87018 = "6a9b073543b531a558f5c5ae438e5d849b36eb44" + +[c614d7ff-2012-5f15-acdd-86d383a40c25] +4a858fdc9a5194b0d85d562fb7b1417b6b11b19a = "f83c462459c30a90295ba66defde276b793f8ba7" +54d216782d3c724350b1e3ed97b557e7729de2cf = "1cab51715d50a67ca5ffce89761fdd5e2665129d" + +[c619ae07-58cd-5f6d-b883-8f17bd6a98f9] +15a949a73863b705bf37173602d41ca06b1d8d2c = "6c4d0437311784cd0459302bc5124ef67ba27d53" +2690f737dbe86fa21e3bc463f1bfb6013f916cb0 = "5bf77d51d59776f5d98a295a216cf6091acca307" + +[c64b6f0f-98cd-51d1-af78-58ae84944834] +52b3aaeea1b66998f787cad6a389c3db9fd7e164 = "92b186fcb8ef0f19675f5191c8b58577c08c7f71" +90c03f89079273fc749e97fa25d294a3c4bb3879 = "f630badd1fb03551b1886d90d950884ecc60f3a4" +a286c0e04d58a9f338a5bee9f3fe93a5e1173a64 = "f0190eedacad7d6937a84a9eeba0d583e356298b" + +[c6a096e6-0dc3-5fbe-9087-cc874ec4a0d8] +15efaab415a58653fa89663a2f61b0a6328f6a75 = "f601c7c63cfddf85aec4468fa552c80d7c3a5295" + +[c6a3b8ac-c48a-53d6-aa6b-e7fb6d92f317] +20bdc2696b638f2b4617cce2bf90ea37de551285 = "c2cef343d36c4bbc12d9496706f9767ef3870663" +2b9493955b5aa285dab3daf2f938a473450bf714 = "0acd27d2f0cdfa340caa49d32ae76831b23a6e01" +4de7b71a4788c884e886356a370dbe46ea18ac6c = "1d51a8bda1a1fd479a61b674d1d4fe34631c75d0" +92bb7da758b34327d32b4285dc3114d6f52d5cab = "7e04018b2fb47d7db3037192f2ca0e2eb6dac14e" +a367107eeef79386e4810c1b50994bbea421868b = "3877a684c2f7d5a9ad77f262449aae0575326d38" +ac812f72a260aacd19f1785aa1eb39857b2d0647 = "1208e970d7b3b28c9c1fbf576410a74f015c8fd9" + +[c6c2c802-0684-5987-8731-4f4fbc620292] +27b26634678534d78a995f2428ccf84c09055794 = "bbaf767081af567f0256ad4246cfb736276d2140" +2a21b1667d66cbfd84f8ddc03a884519e9188789 = "cb4861edfaae90b684f2d72606283e81d0ee47ce" +2d16ec43756072851a327ac402279ab648dddf71 = "7a959f3b5ecc2ffc68062987bf812eeada1f1fff" +438f0d2bf836272fb96f6a11583edf36ef05becc = "c4198f1239b76171f92b7f82fe43f7e15b283b84" +534cc58111636ddd837669ca156c44c1eb24a8a4 = "04306957c87544a1a32af69de55033c32e4b52f8" +69ac3765ab247e9d07b0d27bf33f5c97ef90c8ac = "64e58d4282cf75db18689808a95b0bcb85ce567f" +adaaf324da1b5e2904cefd7fada66adcf6c21bbb = "d416253fac4bec251e2ec1fba32f8cb2c8a161c3" +afa011ccb6b338cacc3e1dc2f186c6d7370cb701 = "1814800763222b64c1f2436033515399d308728b" +bed89bc67254ba3ae57d7caa49cac242b21254e9 = "d8ba84337c9675688d7c91e4cb453e8e61b65618" +d336f25b101c7c9d27d9c5b08f2f6d110803412f = "07989e6b1f7d27ed49b417d55b14f86fc2f22ab0" +dc51058981ded32880907818e892f5a629f4b0c2 = "ac41abc4ba802e4df2ccbbacbaf58a9239749803" + +[c6d66e27-4cbe-5a53-9b6b-b93c61e0aec7] +066122a3c3e215c9b71142530ab6ef856d195f2c = "876d7259d4f8ee5aac83e692fe837badc4a392f3" +115ba357bc4811e1c4fe9dc303eeaef67e22f929 = "b4668974abb387ae2d44be5d4ed01322ad1b06a8" +1ed1a34865ba7ab8b26583e96325c65086311993 = "fa0c2809db29c241de1b3927c73a08350efda46a" +2032b1b541c3561ddfb443d2be694394419d4593 = "3a5e17fa16095637a43de42619566e436fa17cbe" +2536fb615053edb3abddd9eac4cd6045593017e2 = "8d6b1747fd909cdcb0cd60f68e0b8f3eb36c5882" +37bd5ee37490db3ef84bf48af23e3fcab9e3515e = "78e58628558d74134e94fcfd5b00b7973079abcc" +37d15dde1313da3ebf0da6d8c021414f11cea7c3 = "1964c8ee2dcc54a9dd6c6e7d3661211c1430d2c4" +56763b0d54a15747c8b322b4b9c63bb3ed4d1e13 = "18d9b2b85ef157126f98122f8701c7e3f640bc56" +5ff4694f3d30ddd4471ac2a74f74512e6096fca5 = "b69bcff8c0597cfbd321d96dd394ff79f5a0928f" +73b92ef49eef5983602acc78efcfbb18000e4d9a = "d008a01a2c5bd71b69ab714c58b7b74ea23e78ff" +7935ec77f6d33da1213e967e237d9df2d3549035 = "9712c25d215c0a12d40bdbeb601c0caa04ceedf2" +7fb66f169ada4c803e8fc557f0dbbf69bcd96b64 = "9f40107e38f577376137b3cf1015679369e0f82d" +804e82493d4ceee5d315571c9043e8c3384e77cd = "30832472e09d07d39f5ed56391ff34e056c2da42" +84a7e56bade1e2511ef90f700ce3e51c451c4dff = "b7349fa07b64e3bf1092a741ff8a46bf3dfb5125" +8fdbd6da636afb9f2bf96a6e38f8ceb97dfc2a17 = "a4e5dd9f0a2f5e542aec94640ed0dffce1604694" +96beda4c3a33369ced681474e360d95c0851da77 = "946aae152adfcb9ea7abb5872f97680bb47d607f" +b7cc6c6b434accbcf9f666da7bad0f149fb194d0 = "2025a97a8c8c68445067eea7973e4a3d39dbc8c8" +b9e2473bcf3389c46ff1bff91bc69c0fd69b3890 = "bc0417c257b5a2ca208a6ffb38bfc3349e36f009" +dfdd631446c3aebadf478de10fe750fc3b3aa025 = "0a95f8fd93328492cdf70e8569578a4ab19786a3" +f719e86c77a6b5312367bf0d200cd3ecb4250b05 = "5228ac6ec65802c93099ea21dc66f3a28315a686" + +[c71e192f-9a20-52ab-b911-a56bc4938f19] +df58e63351df841365dac581bec1ed6507a97c2d = "a15b866340a53f333e9543c78a5c0e73c58ac1e6" + +[c7373597-e383-5c77-8af0-81dadaae005e] +9280c4948d8f2c19cfcee8fb188e54e85d8becc3 = "903fc7bde63ffdaec3477c2b9ccba5bf9b648f5d" + +[c74b26e8-f247-5d24-b013-c11a2bbd97c6] +f9a000995eb005a83b03e630d353510dcb4d97df = "5e636ca509fab296ca000238fe37fefbf74a9e93" + +[c74db56a-226d-5e98-8bb0-a6049094aeea] +38e4958ee97144837692ac5b2a62859fc4af5683 = "503a89b0f2e6d487ed0c69f1befbd54cd46acabe" +8d9ddb7a0b4b37828a9eaba4cafe1115d53b909c = "97fd81375852973e509785b4a12b1132eed284e0" +ac2c176f992b3cfac7f523e27cb5e4a80340a90e = "7588afba3bf20f2cb2ee2f3f177b87b3924c99fa" +b5d79b0148e612788dc568b602d14b64038b9310 = "e9c6a2e142dd04d3a736b8a71b073b30ca5e1d67" +c48e9cc88b01eccd42268148561a79daf678accd = "5a0287ffeb94a662b0444d9e0132220277e3a90a" +f11e014a18dba2b1b9dbce5dbecf75c1e402fe82 = "3ca39e8076b01d13351baca3cea539319ded47f7" + +[c751599d-da0a-543b-9d20-d0a503d91d24] +0cad9e47e24ec699c3a490faf6a346d3d09d98ef = "34e0277d39fa9d0b2ac06f708a662dbca3dae7f1" +7c2b2e963caa5c1feccd7a711a9d8b4f4f735411 = "5286ea992861b3ce965be40613329a64d92ed3db" +a6c839ae3415c4083ad22de65cdfd8acbf8a3209 = "5346a0dde6c2937dba288df753373222734be39b" +aa27df9559d16f6f52e5a351134d64a273d5ead3 = "3b330eedb958ddb62786adc1a7b705918136685a" + +[c75e803d-635f-53bd-ab7d-544e482d8c75] +d3b47e6939050b0575ed98ea16cb8bb2bc6f852a = "bd9ed6c3d3717f752dadb6a7e3fc32a713b69855" + +[c765c253-8ac6-5331-95fb-8a7ccfdcfec5] +942c6131a5c9d19808546a55e778b4be9bec585d = "2f0562047a4744407eec3ca3dddaca39e045d544" + +[c76953f5-bc6e-5ec6-b76f-2f5f8bccf586] +05b2fa629c6bf622157e512520664725ab8d5c36 = "d64827e7a33ae3ba83302632ac1a57c3e5f081e6" +d783c388b6aa3ee14eb210151d2d821f14808fa3 = "e9506ddb151f389182a25b538c4da872e34f6f13" + +[c7932e45-9af1-51e7-9da9-f004cd3a462b] +0bd8f0c24a94128f32951611aa0379e3c3d5bdbc = "0ddbf6e5d573ce9cb005e3961aed5d568a07fbdb" +3634204d78e5b42747926808b9fddbcc96b73db2 = "d8339e4b0caffb7cd6e9d5936c2a99a8e362d508" +4fd7a35f3936620b0c6a8a19ec0b688aa1a27968 = "3330703353edd8f2fcb5578c164cd693662f9261" +692255a109e5219ef9baaf5179730c151676c96c = "656b422e73ea3b120b7f64d2f7787de2925de6a9" +7044ea5978c0e6f0782c4b747e23e775091b91dd = "fc2e5bf0086bc77c9bc59d7de1b3274d0133daec" +73621b179b818464e72e942fd3a691ee79f14243 = "c09b4d5f4796698ff239cf5ebf9cf63ebcccc4cc" +ad524aff42fc0a305fa80cf9223376ca03300b96 = "2cc49d79c9012a886b396733eeec2e0be511ceea" +b14c418b91604b92cb2ca9ba0b1c5da2b4a24776 = "550b139026568ed285e486f8a5630d64903e6670" +b6c64079a99df10569e414862921cd766457cc84 = "ec4e81c5df2127eb282c79c762b8b4b6fa0e92e8" +f1dea9a9cb2e2961cbba15ba06ca148e43913a77 = "9cd3b69c13d7803496f65050faf1fc82bc4b7768" +ff2f34182481ec71652a638c5dedf103bd0e8048 = "cfa72babbcc5288126feeca91cbc438294e60707" + +[c7c68f13-a4a2-5b9a-b424-07d005f8d9d2] +e695b6ba59477e4007528d211ddd5e38aacd54d5 = "d1e768c845320a513b997cee2d92440a5c2bad12" + +[c7e460c6-2fb9-53a9-8c5b-16f535851c63] +08dd98f7891d8738b9cbccad3cab15cf338239d9 = "a11c35aadd5f1b4a46af081aaf6a61250e580265" +12181a8eab0a19da7d813f4a04b787cb22329c0b = "939c5124253156553681ae4bf35116e825dff54a" +22f6672041f4285e7805bf67778dc4dc9050dc48 = "026993da6688e5fa61e2917a7f2eb0da2547297e" +2b7e1eb91169f945a6fc314e11c99268bb006f21 = "f891fe7299e3542acbbf1304fddc92b8d28a9c57" +7e0f30e78a51e577aa34817d2f2a63e9d44197c2 = "1a80df0cdf46bd70a00b25d2e13b904515eb3ee0" +810240fb748eda19fee13b61b781c4374d882afc = "cdc4d39c68e2c0cadd8479d3b52de51ccae37f68" +8eed412324cd9829dbf53bc3fba19d9300309e7c = "6a882fff49aa5dcfdaab3defd0e00de72443e948" +996d7be91142731edc07ab10eead324201cf936f = "c84efbbf2a483dcd7bc3a838de33081ff43e9954" +9c908a6451ed813a425c859bec7c13591de54bfb = "ebc0f036fc06571bf6f9fae38868a326a20c1957" +afd2a6c265bd8fb68c456ea2759d93c31a56cc2b = "e0bec0842c9ee26a1d7f52038f0c08beb3dc6618" +bcc7e460a4c68ade78b88a7d73f25aa77e25dad6 = "951cb898cf70b5325254611e5d993a4896992d4e" +c43fddb0885ffd59ba19b1db3449d7761f447151 = "f6f8a28d79be4192351f8fc05e8f1390f388d1c6" +e6d48b8539a793a77fdef67a41e8b234a9add2ff = "11568e35a217666f754ead674aeb52deff65a14c" + +[c82e23ac-8953-5e38-97de-d58954ae44d4] +a5f77ea747c6add27109f007ecea1a9d64760954 = "9100fcc146bb27230ae4ac7d0ecc6f286699a34c" +c8a07f5f9789cf24dcb0d02df55fe2e4054fcd9e = "3806f8e0ca039f66dc9a9a59df629367731d117a" + +[c83cd129-c60f-5714-ba88-614b701ed5a6] +0d1d4a7cb1b19468946b1974445df98d8870723a = "83e2b1441ea2bddac2beab561db9703a841d7d8e" +3b280a3e9b78c7d45ac5692231124a2cbec14590 = "47fd89168aac97f2e37d73aedca318f25b9c5360" +551c45d4876e3f655a5e8e7a2a2556226fc8e1ac = "7bd42c881541f3a78fdfe0831c7d5a40e6cc049d" +5a7d8f0f56a0c4669692168ebea584beb2090afe = "9c0a63b52bcd442a4354a153acd11b5f49f81263" +5afa47629e963c4d1594cca13538ce33f9393df8 = "a4af90c0ee8913abd01acab551b652fecc42480e" +7bd5d7f8a877d52f50471c92ef21010ad16d9ae1 = "d787109ca069bbc95654a23c260aaad747a3bcc5" +c7b58cc903b6032251d76b1a5da796d32bccb988 = "e89cdd4d1cff32b1ec321a25867260bfbfb5fe28" +d3cf5061441d249cc16ed428e4501b3b22454b13 = "71a5b49ae2b4277eb245e94d8ff0ae8fcb1e8751" + +[c84ed2f1-dad5-54f0-aa8e-dbefe2724439] +00dbd68ae16359ceb23b90b9a96ef65a0bccd1fc = "de2d97196671bd68cf99224b7f85e0ecb0159dd4" +0e56159aaccd61164c106d75e3b8e9627c9373e5 = "24f2d5c255fc031d7b557446843cfd1c6a1b49e0" +2f80fa8b0ab9e0fc8c358fc97be2f9c50ec66a37 = "68d922178459eeb99a54fef8aad69fc76cc6682f" +45349f59e5d54819b55b8caa13a59f859ad6dee1 = "51804127898a9713616405fd8e9173565df00f54" +66ef11807612ab8cbfd9a375f8449d52966615a7 = "541e643014648109ce1e91c6dbc26c3796ee0ab3" +d7264b6ac3b049b6c2b95899cfca2da0605865c3 = "3811d1121ee90f0dfccf7462a15656e8714770e3" + +[c894b116-72e5-5b58-be3c-e6d8d4ac2b12] +2c5c8536f318685dfea75b2e990540ca2754691e = "fd7142d3b43601b64bfc7194a38563a319f7e64b" +60338f381c5dbfe325f7aa8d40c49cb65a47b4b3 = "d35ad2d27e3025c2e2b5b98d7455c2126636a117" +61973124ea88348bea5b1dbf915fd8413196dbcc = "f2170a4482f0f5d220bd97883bc75e3b9eed9eb6" +62761478ab7dfe86636358bbbc3b65a08fcf13b1 = "8ad02c6adac14dacc4ea4a57fe37108d69639aa6" +73023099601997d1d2fea8891819feaaf3f50ca5 = "eb8d6cce83b7a9bf6c63db3a5488eab29bc85751" +961b76261e8d4256818d11f827534c292c99b31c = "7e227e5c7a368d88887b14f83c9ba646b5b9954e" +b0a1df798379a35eada5ea55dd71c9ecc7e0edc5 = "ad8c2f80ea43bd2f81a94dc10a28b733c42972a6" +bfe85584fab5841100708fa573e3d71afcb6da64 = "fdfcbcaf33ca3b52cdd7b9fd16484c9769e24067" +cbd35d0f4351c327c920f980fe4f4ed7bf27e7f5 = "08deb7d0e45c8d4b429651cbd346276c7664b421" +d19a85b1e0b2d725b7aa6c8f6ba2db1039401e5b = "48f8ed3960ffd79c3059693ba8cb9661d15ca198" +d2b370cfb4bf449d9d5447f322be7bfe569232a4 = "8956e04ac982faa60cf60dd4bea8fdac5aa9cf08" +e211ba50a43e04865ef679c7173a695328cc58cd = "ab33bc0e5bc2851cf44847b45956834ff369e57b" +ed7eba602a7778d01d80f9aefd43771f9f9efc76 = "d5d72c7eb8793cdd9966b3d24c3fb666ebabb879" + +[c8b314e2-9260-5cf8-ae76-3be7461ca6d0] +21385e94f81a910d2c2b2bc481e43650a4e07b9f = "2f1d97258c8fe82f25014ad1e4693b3a3c2d1788" +693fd211e3d481386ad883057a01b8963468d0a1 = "0284d0f7f756f171e2ea49cfd4595bef3616b315" +b3865c87e450871b834a515a81ec58b0c118112c = "8c06f733577a745af3f8b90de92773c47b7811b1" +b791db4efc73d79c842562f5b224a3e21afe3bf4 = "211b121a97b194cc55121cdeb7f0c557bf250097" +f526b040b2a0a6d206bb64c6824dbb104999442b = "ad0dee85b67823ae85cfb325c17a6ae50669a836" + +[c8ce9da6-5d36-5c03-b118-5a70151be7bc] +b0fd34b4eb94a51afbde3b98d2aaadb9b3e97cf1 = "15f51a189127607118ee12c2ca573fc892a7df2c" +b389cade5b31c51245fb0278817900685658e486 = "f1c2569237e8c9fa266d6be0016c8cbc41ce527a" + +[c8e1da08-722c-5040-9ed9-7db0dc04731e] +6b847ab8e23c37f0ed1c6d7007ec01dc41328381 = "f2e012530bce7c25524cf9fca163d8b3d7afa5cb" +747400bc1f3307e79b490175854aef42d7a65235 = "cb07901dddc272fbee90b72d77cd965618c37ded" +f7dbe509d201098e65c6fc2be18547047d10eeb2 = "430d59abaa3bffa1ba45bafba3837972946f5084" + +[c8ed2632-8d42-5af4-9089-7afd55769a28] +9fe68f39dcd046205b9efb6077ef7e7529749a99 = "95ea36c8cb255144a71fd9f8cb5c07738b2fbfb1" + +[c8f6d549-b3ab-5508-a0d1-48fe138e8cc1] +757f6563493048cc6b1c1d9aba1b18fd804f0715 = "d6a6cb0df6659a2601c92b624591397148e9d968" +8996838f9a3794d55be566f4b4ed4001312a9675 = "4992715e11c9f5940b5efa32abad6a47fb2651ce" +a3e41688429bdbd4b160b13d72a1799ae2e90626 = "85b0206d76dc39f020efe257d88e395c38367f4b" +a7b50375d9e377d51f539099920c96f57ebe15e3 = "8a8de0c7f176f80285d5a09a53abec401111cfb9" +da195a4fbca3678b6ea3fb0b9ef6d0d609ee38d6 = "227b51c64b379c98fe07e03545fff633c648d0bc" +f02c3beec3b009fc84738ddd992d59d91340d1f6 = "1fdbfbf4e411d189b8be6719d040d575d92a0cf5" +f45bd4ab3a389215baac0e3c9f5f569179371e75 = "6adb5854714d4a6632101de4058df506cdd15d47" + +[c91e804a-d5a3-530f-b6f0-dfbca275c004] +039c73caf7f50f25026c5fd3e536f33633f8619e = "ddc9ec38c1b64a2a3c2af3c4cd37733b99c78635" +05dc73d618c2b9fa91df6717224d01f74e30d26f = "e277df19bcd35e179911768320fa63ab3441a1d1" +05f4df1d6ac01eacdab415ea20e874be3623f6a4 = "7d0e7476bf0e3339523b7c80ec54afe8bd8881eb" +0882f3a3e8080c764d32ae32281c7caa0fab19ba = "0b58605dd5ad12136229fb4cd284c8ea18d4977f" +0c106acab7bb248af1f6f9a5e862718d42349d78 = "2368fc963b19971bd4aa23624ac675616f54c098" +0e3c249a60c106323d235af9e7a1d8ec3281ecd4 = "845aba80b25ccc0a546db9344823ff0b9fb34a29" +11387c1b1cf54f3d48c3f031a34c8fc2761e10ea = "e4d28f5a30970ca41166a3412e9825423829a5e0" +11b9dc156a8a641825f8a2798fe301f70a70510b = "f56815913f43a4a9ca62df06714177adce0df97f" +1221aa1d952c8391056b563762fb0c56f3f1174d = "eae98d69b47851dd8642b6c589ffad304afd6cc3" +134233ad6fda7af296033369839b8e9633ed9adb = "3fd4403c541d7b31e03335981de9aeac82dc685c" +16018ad198d50d5a951faa46ad5e444a80df5a49 = "703e8be90f52a51e497713b4df8e16d7daf98519" +1862cf841a4445ab6660dece976dc3062698387a = "535e3280330d9988c5168f71d03b66cd7d03f6d6" +192014081c853e8899f7836e07340153a3904096 = "1e2dd97f9950006390ad66943fe70f85b6725dd2" +277ad138272202bbee1ccd903100c8843000a94b = "7441a00f85ce93d433bde9b451e5e57b5d7718fc" +2adf6702482c65f1346050e0034c32e3eecbf80b = "c125761c499aeb0eb4e9ed80f7ad69e9fe21fb26" +3d142a2964b0d06eead2602f93bf01487e348c3b = "7decc59f4bf7fda5c8ad20335da55d15e354b3d5" +3f615eb1d3282370e429fbb1e15f8326ca83ca74 = "c792739640810f11ab55c1351071cdc04e700efc" +4097c0dccc176351b4d706f6d40aed4a9dc9e1d1 = "df28ab340c34c91a847cf3475a73e6c6b44072af" +43844a680c333551737c4f4be04d58332c407fdc = "e317e54d470e9f53cc75b377f77f7ee9d823f359" +485010e26be134d114278db1e568f7db3041208e = "99aa1d1171c4586c0d4431226f5d91aac5be3a8b" +4d54f99a21df443c1398e93fd3e3dd9f89034f7f = "4859ff57163d0bb7ae092a00ae57adc29b51d4f3" +4ea6a230337d6d6324c03d1083ad530d9eb694f1 = "d8c429e18d4db406d85688cd5de31b2eaac8ed5f" +4fc7532e4d212a537480cc76f6d194164579aab5 = "bd5f27743e6d95ad6f77e818df9c3c9d1b8b8eb0" +51e245da67aa97e8a3cc3ae5731ac1e8e6d8bc95 = "ce25ed0ed4ce5e0a62d8a4e6cddb5938f6f702d3" +57b6f5ef20cc7c11dc5d6896f1c39a2fe509711c = "ead790ee7ca229ca18ef82d524b9d2d2ffeb7141" +587d40faf782189696437236a0dc00bb73b76e0b = "7bf4f957a2f33b081b289db870938c49b547483c" +62573a371edbfb79a55284d3e40ed0137fa3b7f8 = "4e5bf93108d2661a3b1c9270bc6c1f0fb9879e66" +630b8b3681f0d026c0ab5f6282573272e630f413 = "b371d66846b4991a0f618c7b2e75b7a7150cb98e" +672a6d8263f04d19c8b723e5711ef95b00c896bf = "0422ec3711c25a7bbc8478566a85107cf409d8e3" +6e472bcf771766a2d02bf625360c8867d4d6e430 = "563887358899d1dd54b47ea98d15e2f5e87032c6" +70997209fc6182be3b041d39b3d6d9b3aa35c138 = "39504307a151383ee7f47b52ce87371bee073fec" +72fd77ad12ef80c520cc9212c014cf0c60b1cd53 = "fbd20a4458a72ca402a7f4c861f60710f91841ce" +7a1c01177a5bb6f5c06d83e94b1b573addbf507b = "7280f1f99689d1050a7db23c0d6524cc1c7b00ce" +81391222cc0990a1b2b226f9a1c0349c9e6780fe = "3ac4603e22cf50118133eded144c2a4acee46469" +81db97259631ac6fd341284812ee6882d0d02c0d = "baced505d5a9e1c328e49a789e77f10976ab81c5" +8270cff69f74a633b390877c8dd516c6a428a945 = "186c6158ec172e40e6d342e9225f2223c9f451c9" +8aed28a5fef1de126fb35cca84c53d2c38c50a69 = "e1990a6e63670f3406d53169b16a1b4faa1ce12d" +8cc09b11a879726cf54ce7e54577474ba4ee8421 = "ac1583ecd806f4a71446fb00b09faddb49d050a9" +8dda4921711d5b2f7769affc9f55851b87497842 = "27931eae4f03ff666a2185e04278272a01ea3a99" +8e38bfa66b38e924a3c80345b74799222e937c3f = "a85310f127d0a38c4daef310860f9d4f54a0aa01" +8ee0f7a7b5da9a220cdec66c46b0d00915ccefc0 = "1e55dea6b1f720d59eff77649081d6c4eaa7c40d" +93b8a302450a5d48c2974a2f2c71351d79540a8c = "54cb10994fabbfb372620cbcfaf7c9f6c7bb5e5c" +9498e6122ca5be69eddcbcd8707e3dd7d8687390 = "ae65f747d92e76a317418a8174aa0b08479a6042" +94c56ce1b96e0ef4b8837339b4ffa7278cf61822 = "c33ad9f13451e719f4f69f57af37c0db65ccc7da" +99aaa7693f9dffb7d4e4ffd8ced43c3f2ee37cf5 = "a84d7f6a9c53f68fbe25f776bd8c99b910995d69" +9af4d641d6096c7f9cd7d16aa76607bd0ca9f716 = "036af3f50a52012963813cfa9a1633f0f28c8ab7" +9c614a74a78db3cf3cb9031e37cf78a1d169f89b = "c7da4a43dcf416fdf3ec186c7f48081c57114bc4" +9f32e324f2ee28e4d8181d592830715e8d687e9f = "9bf22a7b1dc01c29cc66a637656cf42c43f319dd" +a0ac4e092947e7a1a3bca85a88665104fe358fd5 = "0ea91184b5ace33d436c1d373f49259e1817674d" +a84c1f5839bcd2ba49258bc053f43927e24cf634 = "85796a327b7df88db55813b6d14f661fa18c7b21" +a8507277d6ffca779a7679db4dec8b860337fd86 = "348d40f4d9319bc47093374242047c27cb87ccc1" +aa6a1ad45e701a5af5a7761721dd617af8ee5c42 = "4245045653925d947995e4857c131cd7e85dfa69" +b294abaa7a9198fbe204150e1dc4fb42f3cbf5d5 = "2771bd112c089cd35ccc163b72db0ab5062d9928" +b585b3d7390f0c993b5aa4ca8c7f4142962e17aa = "807a5b4d0db65398bf127f1d2b33879aee86faf8" +b7591c00db79c348bccabd5dc4ccd58b1b6260ea = "48f32352bab9dd036d794088ea6c96c1f63ec6b8" +b7d5057809f3cdcb56a556bb4ae71553a3aff663 = "f0c6d2352b906cc0466794b75e41782a9af43f29" +bbd8e459e2754c760fc1c81dc0df55e992dbb683 = "2e2b7a3866bc75fa1991905b9a6ccfeec67389da" +bc5d4e136fe093addfe3e6497d10f9d1ff260fec = "6a5b280b39917fccf0210b4400d54d36c58bb784" +bd2a7145f3d7810f626e18a8cb788d34c357da47 = "1fcce236278a679265a64360ab3a8e679685bbd8" +bd382ef04ecdcc855a90e025b56c63dc8deb0885 = "a8b1749cf99e6015851fd924061ca8fa88f8705f" +bffe3077f96bd56d8799bc33b1c9bad5e0e8f849 = "05f5308a2b17f59b1e70718f96a5bba188d07367" +c440ed253dd3d59df25c62c5f277b2c60a82f607 = "d24f48a6a9f01c4e1bd4c94f91e77a9b0e094447" +c70029fad8e0882e9f5e3245734f9e7d06aeea75 = "fd03f41c7f2d23d170f3542d4a67401f2e05006a" +ca84b4b51ad5bca4a798e83ca343135864d4ea1c = "1bd6b4c5c93a745a85f17bdd5067074c43eaf27c" +cf73ba6e0e6709c3beccb5536ff1613d4af8d130 = "7edc278093419f1436fda76a95eac63768a8bb34" +da1669b8b17707265289a68bcf863ea7f8ef9f61 = "6c24b031ffc28fb58d86de85508980cd364be5b1" +e18352da94eda637118bfcf3a9545d9e39bebb9e = "10fa4fe167c4e5a4b202d8e12dd3d500988f651d" +ee8470a34c4b68b8a18fd71ef1c0d6a7f5c91e4a = "175a4260f7c5017db1fb9afc8dbda6f11ccb592e" +f0148cac14894fb88df0be999e0f79351938a8a4 = "d7bbffe30364707845d52873a5f5bf54b0cc0c08" +f2f7778d8d4c30835862c81063171dc65c8adfa3 = "0b2a0a2802afa57459ef55d98bee41b27996ff39" +f386d313ca6eb9fc39f5f5fd10a3780f4853da47 = "0e0c75cac46f964c3bbbb06e14f636220fc5104a" +fa0cd4616d4622fd5085bc62f6a36120a8aa1664 = "5c2e78f51974691113a2c81b99f98de68b97595f" +fa116311f2b11a8be20903e7f0d2229291af2f81 = "90c3ca823464fa9bcc7d29d72b28209d61ffd355" +fcb249691700cdfde56184049060258ca8758c6d = "9a24edee1dcc22fb9dace4051938fa5214f2ddcb" +fdb02ed4d5a8579d46a9d65ea9edac2b757c839e = "6a5df9fa4efa79efc5dacf0f775595bfbd63ed0d" +ff9b7a92f0f2ff1848e4948ece24bca2cd64c48e = "f49b9e2763cf05d43c0306e1eeb642679d5c309e" + +[c921f425-b9f6-5fd7-9923-0c96f4b35ee9] +7f57fffe0a6078a789ad4968629f3bf3585a267f = "146ace157d76267fd236aa56d3ca81eaab18d1b3" +9daaf243a3f21d3d6730400572c5c182751f4556 = "127224673c2b57dbef81ffba8d16dfe2cc78514e" +b9c0b03ae996ba63b97841edd9a31c77f16809c8 = "0be9f8ef4c7c999a17d95d55360081460b47ef26" + +[c928f85b-ad91-5714-a68c-509590f6e021] +274fcf2a8a61b2157edd6e5164e6bb2fce5dcb8b = "b4800d261af4dc289d74f1b2167a0d36e79c36b3" +37d52f072f7e82a15b86e32f3722c5d95f0d98b0 = "eeb9acab99683ad13d0b87f699439bdfe88782b6" + +[c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13] +00c4bf4b87ce9235ec462303ff6f3e3c8da14ff1 = "2da3e6c1629dd0593f4a1b2109dcc3c95a9a2546" +0be16a91ea654cf3155957baa8ba75c61fee78b5 = "4db8afb1c6d26245a0f8c2945fd6c1dacd645943" +141a80287abcfca62f2cbe1eecd4c83c65f84855 = "e5f77c68c3fb7487c9ce51fe1770c447f8044bc1" +1bf584719be5f495bca243e57a7e892dbfd26fdd = "1337de2c4f60247a0b5942df88251ed10cba883f" +215152263a6eb7aa5232054c6710760f291e22d9 = "79723fd1a757684413b09a028acbcbc178224eab" +227eb636039a68b1d888cf57e9f49a55409e7637 = "e98d171fa09b94ccd07e9a800b42d9c012f30b9f" +2ba4b944682578f54796e87644b88f08a1a7cdf8 = "2f4317441e9006492eb058bd0186d3e2cb57e60e" +476e1d7c60f99468d24d1344d298daf7a5c9e0f3 = "0f412c16d2cdf7e96af88dafb709d0b6c4e3aae3" +5a16bb1dc2297e5e369f8375ab85685746011a6e = "93837d77ebcd90e8683ace8681021a09dead3c97" +5a60bd7852e0f6a3fd7bf14d7d6b2d445038eab5 = "daa177461f1cbc6fb588a71472d96c6838bc1c80" +6223de6002c18bac284e09b4a1b02f5598045b0f = "283efb89b360bd82ec2021e4c9b958e4d0a29b68" +6affbb7535b3f763dbb8307456daa9976412ded7 = "763ad9a0c4ec5a1a8b8896c46e884e4d107d3c0f" +6cd9ffd67a22631aa294842ae4c68c346fd38828 = "721b49033fd2873b5ff1174c8d7ae47971350bc6" +8cade0a414cc0131e28d54864aadb36bab732c4c = "2088cd8601dd40c70e538e43463a8db6fb37ab47" +94ee319f0f04e1a8b7e334a4d400a6146b235599 = "2ca50db07cbf767bf9d4fbe59239d09cba43f8ae" +aa1ee95eb6bde721195808b8ff9ef8820fa9ed19 = "fc55703111fdbf13e78a08c1c912239a2d09695e" +aaed5685886d3c1b15ee3df70bf259363a1c9167 = "06d52b01369af4bc154346d927d41e5f4171b28b" +b1aae45aa8dbb2c84bf073ef2b4c19a43bc95ccd = "248f62c580645ed77e6d196fb393f2ad46e7e47e" +d2ad83d0dead18c852e8d2968fc7a87ed822b147 = "42847b595dc914fb97804b8960114430fdfc8e0d" +da189d88f8af70417337351c969861adb42cf75d = "39eea9e6b5df5bbd2ecd8845e0dd90b068263e75" +db6e87a2c151bb3d23edaae809148307255c0259 = "878d3b91d70d45bd38388caeb841cca6a1efa4ea" +e883e020d86ea8faea60e7a22b387f3297961337 = "dc6b4d7af016b73fc1501a85c4d92a28d5d1f7f7" +ebc8157363d0566288e48471029002f24958d614 = "997bfc1bab3a293814471e306ec4f5959901304a" +ecac0a80ae0e1e2560766df5c7963158d7ff8690 = "8dbdcec179e0d579078bbef4b8a8150abd7067a9" +fe5e5d790548a23a222cf0451ede8630464af1e3 = "3108d8ffb28199680058b20adab4e5f5ccb44180" + +[c947b005-6f94-5690-8353-b90d48bfe02f] +3a725a24702336a6d36eb2c7e4bddfcd5d6c461f = "6f471ceca47594583fbc12269a32f752412fe34a" +5e71d04e04d9045983f4dc602905fa3a4d3e6b2c = "bb52f9758b1055b375d45b4e21712d02fc428246" + +[c9763a09-61f1-541e-992e-141da33f6ebe] +1d228faf0933da771a15bcedaa62dca5a1a5f49a = "9533cbc404820e86a00f964c304be3197adb3827" +2ce9834e5b07c552920ca43936dd6bb9f0a5cda9 = "a4942185ec445e313b0d49def6f5e7181c82f8e0" +52020727cee28b7750d26ce778c6f221ba9a7875 = "bca9186427298d755e5a588320d8eba3c695b61d" +6cbb7f6110f784de7532f73511d52e11c66329d2 = "1577f11364bebfc3becca23dcc2656dfda2c99d3" +813e8021ffdb6dc5aec2970ded5becb1ab710726 = "997aa56f46d046e9d64694866a9363c119c775a2" +8c1fc795e194f41f2156d97d7327cd1eebd5f756 = "f4aa4f2846dae6d8f7f2c08b1cddbb0e944f5684" +96d78f1ff4fa11c69a6fdec347cd402fd66b9844 = "2c2bd6fa490a06d6dd1a5cee56692b730b982c30" +ac8b3fba5b87e990888b2c2b7d6ce98624cddba7 = "175be917252f5a75f5fb780567162ade986ef761" +ff36eafb5a5b71b84edbda5d8ea6ddbb739356e7 = "10cda9cd6d15430725e8f673d130e6cc0e66e918" + +[c9a035f4-d403-5e6b-8649-6be755bc4798] +436520d133148ddb4264acd732db50ac086ab4f8 = "0c1f7010633d4caa470d0c78effe070f2e733e87" +645084951386b33670bb07e1e76992ce299dd6e0 = "0b068ac061bca852e718fe2c80c7e16f14ed8a37" +8be356f52d7809e8178a9df54ae5f16adc663126 = "02a523fab01e9837e726d936829312d46ccbeef3" +b3b39da497155eabb1d06213536dfe36c919af81 = "3dd42a6c6014a6c1dd5c208de7470949abc7b624" +c9a72548d905808416c9a0baf56f90fa9315a44c = "edceef74d9a8dfe9b8f736a98a222b6b118621cf" +e2bbb9b5672f76f21cca003f0126b2936d62ef5a = "77d19f52912083b85a03791949679a0791c941ed" +f4dd784101e4b57341540b20e2195d259c3e8fea = "348dd7635cfaf68b390baf3dae75e64fe36e5a16" + +[c9a1755d-84d0-58e0-8f48-2f3129b1cb7a] +4dc900be03d3a29ea2aaf5277e52352333cb8b8e = "cd8acc9a19144f3335dc896863da7c88651db48c" +80ee969f6bec0dd219f9769b10e392e498369ef1 = "7132bfc6fc79cc5ec8417217a2e2265ae306c03e" + +[c9c60de3-17f1-5915-80ae-85ba1dbe6bff] +2ad3a80cf199340e0d306fa1dae63f1e2fd8b25f = "011d06de64205e717933213a2e59443220280add" + +[ca2212eb-e997-5e02-8188-6a86c81ae544] +3829534fc5bb6ffe95ed2009be4965a0f6c0e04f = "1205f5b04962eefd09dc594ec2856ce33dc26dbd" + +[ca3a4cc8-04f0-57c9-bf08-34988ed92438] +367a2e9ada4b47bed0b7cb845d29cc75e5b2f6ce = "9261e69505faaa52d3bccb02172199ad920f50bd" +8421805a65b60b7fefb0686ee0a14e743c477c97 = "cdab497203d200c181884b8ad5b7d588e9386145" + +[ca6142a6-a6a7-57f5-b674-4a8484b22e92] +a2885a0e2e91f60db32d3b1207c3318dfbdc2a92 = "44a72c1846e346ec191ac3c9591b10e4f0f4173b" + +[ca6e7d0a-b0c9-59ca-8aba-aebf11497e1c] +05f9525ae8871a9e432433444103bff341446c8c = "74ac9ec8577c70671a60e175d3d963cb564d32a8" +0ffca8d72de751185a853882e7b00013269830ca = "7b90e2ecfebf8413647d55a374a60d97cbfa1e03" +1569d30a5ec939707fd87e52c09ec51b7832e145 = "a5898f8bcfbcc9ca3ddd8aab14a1993518ec1a9c" +16db97877dcf34f9ed774cf1d51940b69e5b61d6 = "744bb0b71f1b31561d60400ee262e6022c343f25" +1eced64d986eb7f3be77b354a0ad6430fc267e1d = "13fdd35ebf95df73b372d8a194ed1c4e6a2f6e73" +310668b5fb861cfaa9a9a035eecd33d0d62a7ff7 = "d1f1f267fc5b4ae33804165ef5b55b9bd53589bd" +39049c753790829342c3b8449449da9fa0ea96e7 = "2dbbe2169649f5597b870d4b4d08bb4fbcdeaa70" +6804a8f6882a424772123f9acca1c1d35274a058 = "ed283ca07b4c1d3b695e1c60328f6781c5c9c01f" +6ac0160f0c4a6a7cb394dd8453eb1c437a8ed520 = "52c0af15737891c78c30cc14bf61a5f8ebde68b2" +7f20d624abac28c333ca22922803b03138c293e6 = "3d42159d2ac46f8d294b88478a2ec29ce36791fd" +90d70833b8c24c66efe8c4a6556cbf36c0536318 = "512f9e90ce97c314393fcc44430b5778862fe4ae" +98cafb4aae3abe36b6d474d8dcb511c2fb2caf97 = "3dfd587c6308e62a47990119b2835e557a62f0fd" +a88532d45c41c8b47e83a8bdf2ba2975a2aa56b2 = "8d3aadc7a3d8835a74107a4e494278dd0ea62b79" +aa686b8e1bcab8ddd5a1f73667d3d1367603f741 = "447c09c064a5870e00d4141481e54f5df428b508" +b05f2fd16fdca3563b61914706432ee18313ada9 = "bbccdff75e0e1265d741844058812a4fd6c354de" +b3e576bf94dbd919df49f78aca91a23ff1bd5568 = "c68862dce8813548f67524bb4031943a04497a47" +bc2d411f66792be12556c7153fabda3d41aa3b68 = "a6ee5827f6d41a46f13a596423befc7e7f59184a" +be433da068307a55ebf30ea13e095003b9c7fee5 = "af16df0433a191455ec32d688df2a029b1a442f1" +be5de503c3db59d8918b33c6ca4520dbee73d8e4 = "4f251608d2aab2bd3f0ffab247a8559ab56da3ca" +cc51a9b11674c0540709512e9e63c0edd215ad71 = "267befc54a18a39f1725363ae3f92c72309b578e" +e5491224c856395926739a7a19dcefb5bce1e4fb = "727ea9f2f48f6d64f62afc74583786202e913ae3" +e702821c3bf51ef23af1580a6269f24a7d3f27ab = "392003d3ef5ea97d093f137235e81e8c6a591ced" +fb559abd9ddaafa1bbdd8ce6910029c116fb5470 = "b1da8de41d7496efa8c79477e9be266bb9cb0d2a" + +[ca7b5df7-6146-5dcc-89ec-36256279a339] +0b7cbdd56a10987f62e6e1f8e2864824f98e9ec8 = "f6671afd82a98e52ceb8a80a4c2c29b8c373af24" +3b6ebbea7d062fb4fb3abca24a65f353af06e6dc = "eb0e4708b621e79b522f967db21cade245b27558" +3d77cf74cf5e480a6a70db7e912c7ae8656017f7 = "2ada9add12af604f0f876300a6f768a4f5c86fec" +983c90e95af0dc4df06e2e108d9d421fab58f35b = "70f7ee3c844be8e2a6ccd16cb7c6abd197d3177f" +e1adfaa57a730f9efa5c9245ada3e863ff2f702a = "79e24fe5d01c2228e16c007041191ec576cd8548" + +[ca8b7239-ccd3-5cce-807f-2072f3f0d108] +4af4956f223b68ec1e4fab1118a54b2955ef8da0 = "e9e4800f777976e177c5b1290a31dd27ff96bcf0" +551a1023142d1cb196e2e3d6244735938b85a4bf = "2ddf04328f1fcea08db45a1ba20a4c2083897eb6" +5ca1a70852f8150a95905170a980d928463826b2 = "5b487ea74063d3b27fb076c0b02cfa4764f57167" +600e721d09787bc578f426fcbc3dca5acb39b2a4 = "23a572c708c8dc0b99f601dadf9546878686b8af" +607a1fd3a5f0a92f7963781b73c227e0cc8d79e3 = "b7d0374a85d88bc60a8126682dbaecb2da4eab81" +60fab6e39bed0fe3dc6b966da6f6c086686ce438 = "e2497d4c59dca97c2ad6cfec4ec089e32dd6d77f" +a7487cf4306f55ee4d36ed3f6a86a79f706f65cf = "91c09e285718a502efc4914cd9d55fd40e3bb706" +ac5e269dde43edad43241313f5593c90aa5d7bd2 = "3ccaca0fbde730deea81666d39a4d93576f94bb3" +b8ead02de7adb49a04d53b2b15a6481eb77d23ac = "36240642104b52c714a0ba702e0b74c6d68d6e95" +bd7faa687b6baf2eadcaec137bd17e3e1931282f = "9360867e39e6fec189b3e8bd3e934f10e392f55b" +bd831384dcb4435367bb1370c47d89b2f604a15a = "2911121dd776ef82f646c42a154cb903f48b5faa" +ddb81600545c5a5c32442827ad2478433b3b286f = "c7fa7f3227658fec146edf01cf4bc8274d4ace80" +faf4ba7aab8adf635e574ecf5ebcd4bd04c71eb1 = "6ef87afe1375a9552a68cbec432d147d6cd20869" +fb4bec52ab47e1d1abdb56a1b190762c0826c546 = "d499346590c4727ef44be6d82e75c4d82c4a8102" + +[cae8e8ee-2945-58eb-bb0d-8aa7cb85bad1] +92690d8bfbcd9b761706200a9926c69c6d043f5d = "aef082eaf63d63173a0a63a90dd90fa0d0ff6135" + +[cb002d51-b850-5775-a4f8-1db47be676b8] +33d41ff5985e1c8c9861c1fb44d3b56814422c15 = "5268355253f5e79f87985fd0d340de032a097429" +9bacbcad311cb6048e96c6addfb5087d5aefb03b = "409a082b7123a29d9344587b5c5dc866a12a7953" + +[cb1a753d-6b7b-52e3-9bfe-57d99d445c39] +70f0c4b33b737c1b80f5864055f6c027a9b2a199 = "0459e943d398ccc0a72bc144b2407c842877a411" + +[cb793064-ffdb-5a23-a3d6-f6108cdaca31] +5e5535167bc517447b31a4d85845ac930722adbf = "8e079eaeeec8c90b356abe3ac8c585938c4f8adb" +778d8cccaf9156e74b9c06d59d74e531343dd5bd = "7eb10ff550ac69c7f91b62d8965f6fb07df0aed1" +7f7d36fc51dedd72ce4dcc795f8f6a92aa166e50 = "7ecc5d50364d749323cc9ac6197e63526e7e8910" +a51f180c5fdf5f06a26cbf6bd61090052c98a2c6 = "0bc7ee8caa2245c9045b6913b3adb095e14e63c5" +a5f7e641a19b63c3a8284e5e85f940e5102501fa = "41dffb449565c81cc2924861f7ff5dfd9fb3d518" +a8f0e944d2df0b7d9f0a6e0ed41f95e5f0c394ee = "2aecaa0ed18c647c6ba28cb45ebe3ccbb2ff9052" +ab6aa11f9a426c47e2d998162887dd5285790f83 = "5f7307c589861c858a63f86abe17fda1217d485d" +c7ae053448c582f30131fb123e080926c87809b5 = "26ea49e9cc5465d8f5b532eb99e88959a00275dc" +eec30cce613f6b8d80aa4247ba5d0776b09ed1fb = "06232df9b742eaaafe0e88fde126fd910866a5bf" +f4be87cf1ff3d7f154c128cd827b19b92c33f9f9 = "3a8110b22bfd77b3039af90bb3fb87d08676445f" +fb5b06c1c8fb1ce2451a7d2b0f03a7ef4e5924bd = "1681fbf7f7d53cb62a638e214ae4b6fd3c8ef667" + +[cb9003f9-0146-5467-9f28-cb882016150d] +091f03fa529ebf91a758abb964a4fdce337d3667 = "082f3b2c6035f0abeab8880bba11b095e2f31bef" +284c21d715785da9d4e5394a11bfb4f78c63f06c = "bacc28b14c3e32b3b0e50695bae9fc5c4953da9c" +8c1b4692fed14093688e58d39f7dd07787dd92db = "e3eba927ca2265b37e51ffff35a2a22d0d1ede24" + +[cb912096-b518-5389-8790-85f0e02849dc] +764c518502c2b803d82da8d0628075ea70d6d8d2 = "5b46ba726cdc1e287bcf9701fe19c6d964e2905e" +c53509759991ad7d5cffc3ee8cb3758d8db9a54d = "ca040544151e199ce0c75b2ec8c1f717185931bb" +d8202ba6760e000c30a7341c677cdc0f23fb4a23 = "046351231079bcd8be35685b00123d5d4a10976a" + +[cbe49d4c-5af1-5b60-bb70-0a60aa018e1b] +4a07537af2eee828494e1d415aef3dac3952c576 = "d05a3a43b4bdbc4aec4f2fbdaa292a3a4d205bae" + +[cbff2730-442d-58d7-89d1-8e530c41eb02] +0cedf72778db0f13e35cced1c489012c46ff0663 = "19b0932e05f44736b439a8981ef3ec05415ecbf1" +4c138f08e382461ded0484034acafba03bc90abe = "ec20e3720b63304a29998f507b76822e2b53d206" +8f895e7ca046a63e3c0167483169ba2f7efff9f1 = "af9598f398bc0ba26c00de57f845fff7568ed227" +c03f4ab7a843440f4e7a9202eb15917f6a3f028b = "af9598f398bc0ba26c00de57f845fff7568ed227" + +[cc18c42c-b769-54ff-9e2a-b28141a64aae] +00cd53d0928a0d694d40cf6c05071f8eca64d529 = "b845e993987c46da05cc8818fbbd2bc3ca0b6642" +162134519d895ff8131995ee2712ced185362346 = "e665f857f9730278a613e145cb3cdfa7be487ce2" +38534107c43308e298cbe79781be91acb54b2c86 = "911535ff967a6a91d1d10f4c9c9f1ee2f6f124e7" +39af323ec9138bb656af10499834f38c641f10f4 = "8341de32d8959eadcec1b149f08799c32e6ff063" +68564fbd7a162fd44b947940428eed06f7920ed6 = "29d53658d6efa9bed9581fd2f5538c4c81c7042a" +98f172cb6b1e710c0e15a1653aa351fb1a7e636c = "9b1317edadc473267c6453fb62aed9af36d7d3f3" +9b49c4a4e173e72375817182332f2c6dab95bce8 = "79aa66143186ab59427c45b21f2cd70be6b3bab4" +9b9fdd310b694d2bc50c9cb7178ff9fa5046edb0 = "040384d853b84c43b9eb114325d823d171cae2bf" +aa602b4a3572d788d0b81dbc67a9a4e9c46da4ab = "8448837a2594b5291a433f86efe214322815402c" +e44f45a6b0cd6684375349d6bfe87c4a302436a5 = "b5cfa05ca5de25630c90871494c6c00dfa62e9cb" +f67c984fc2d40961b52492a1486fbec8373417d9 = "9bd65dcc665c905733859c6ef11f1b7c0c6b0ccf" +f7bcaa15278b2f71d2e75543d174f7ad5daaf610 = "8007f3cc3358f361d8319a1841b0e829339ae090" +ffe897af46fac9d21d9a1c92855fce004ad53488 = "5247f630e2b8605c04deda8bd0a5c3ad570352b4" + +[cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d] +2334536c3f67c18cf9791fdbf1c95e91f979f33b = "35223fda60f807d21bf8dc363c0a3650511fdefa" +b0b9a2eb698fda4ee84a3409d9902e572a363d7d = "925269da8dbdb529414592ea6bb99f5b5946770c" +c172cc5c847da046bbd041aa68f128e8cb9eb713 = "090a7cc39bef302d70b6f2e8958e656cb4b28a66" +f652ede8df29d344afb1df8b2b9fe58c2a9036a3 = "1de9b89ed8522bde70a4aaa5d3b7736109e2a5ac" + +[cc78a3dd-804f-52f0-8d12-0c5273493045] +00760d1eb9302de5d3bc6f3d9e79865b8953e3c4 = "48a8fc7e1e7a686c2e90397cfc3ba289c474b76d" +0f0f4ef7a800caf68a7da2c392ae0096740c0b4e = "5bf44b013d7de3e107ec461e7973d5242f696d8e" +33dc3f73b130176b27921b186f59a1bf07bc3e7e = "2e07238c0453ed4c247bf9ad1eaebca2732d88d8" +36dfb54fb3764af58041ea5862730475e89bfb3c = "302e8951832d4104121855d5af72741da9ea60d7" +434ba16e21c3cbb83365bc144a352b6716d78ef4 = "360ae68bde832d6c7cd62c7fd032bd7b65fb46fa" +47a63c372208dfdf11c1547fc30bd343e2bb918b = "12e19ee5434ea2296c730f8037fccaf9442bc111" +86372a3da1f18e9b54aabdb39ca76de92b6dc891 = "6e749c1ee0f579eb91b2f83586a0ff931543a58f" +88a3f43eaf743cdac58fe855219a3d13cd3affd6 = "27b1bbfe82858095be95c49dcb9a55fa1101a892" +dae9c9549910bc71f3b80d2fabb2a4b1830764be = "d1abae0a9420e9a41f7b889e9cd69f3bbdd07c15" +df1211cafaa99ddac9d05be6b910d0565c53392a = "7e09f966fbc99bcc6b2070be0062747bfdd4f322" +ea85a37be262d9304a715a8dec1d26e15f5000ad = "ab477360fcca6d0d3e32788770615e7b9a1cff9f" + +[cca4922a-eeba-5ef2-956c-35affdce983e] +91801eff6c6a8016609f7a566d6089443fed7764 = "1dec563804f3931fd72a7ab195e8915a10620106" +9ff7b3f80c7759d11fac0f87941218bfe71ecefc = "7b738737f1796fa2e287a815289183bee0d4fb33" +ac871dfc9e5347b42269834b4cae9a8691c17f65 = "f2d753258b368d8cd314e7f89936ec6cf41046f8" + +[ccd5ae15-cd25-53ab-b4f2-e0ae14ef09d4] +23fa29450de7267fab49d6f02071ed7bc2f3f3cb = "1cbb88c7de08e91b9c91599900231e17b682042e" +bea29377d0b4fe9d3ba898e5837190f4033f187f = "c03ebcdf75cfa675ed957572a65c71898461954d" + +[ccf2f8ad-2431-5c83-bf29-c5338b663b6a] +0c5bd8ef70a586b7418be32c9de8774e0ba1eafa = "03a59688c1828bb4bdc7e600d86d12285f12aec9" +495e3671750e68009aa0db13a77687d0d5984f5d = "90621753de17b72106695aca74c08a92a6247b54" +4e7225fd52690398b6cb5d31d41a9dd2c4b1ecc7 = "52da79ae140ad9fe7a5c6727067b0c4ff861b9d4" +6b9ddc8db734d1e868419aca12cc673f4f6094c6 = "af580e3b977710c4c859a322b2d433413657121b" +953b2a27121594febd532c624c70d577a80de1c7 = "ddaa46f663b3ec6faf607e5ded7537fd8b7a0c21" +c5cd2aacaf8551e3f7bd8b0469f7fddab71970a1 = "877a3e21286ffd53332d137252e90e2bc68bb764" + +[ccf9b6e2-7ea7-596a-9d65-09863b18e8cc] +e7139c643eaace42556ef27078e0bf286d20d699 = "36410e9a00b9b87d17b2ebd5e16401a7d36684f2" + +[cd0106a6-6d98-567f-99b2-156dd1635c57] +7d036d70656fa2cc611e8a84e5cd3eebe504fe5b = "b9857bd22b0ab442ccf2550bf34625029370aad3" +b8aa50ae2dc7accb1d95db54ff2ead1cb5e38bcb = "af46bc65a5d7aab6829de5bae6550ff7114e0c35" + +[cd3eb016-35fb-5094-929b-558a96fad6f3] +014d9f56363429568e12545f8d74fca93cc664cc = "a3e8f09977d53692362220e06fc0edd35af54ee1" +09b15ac0463c72d2265811738664b03625ea3e9e = "68825410d3a30bc7dda67348e60c8c0580630e97" +15f33bc518902b29fdb132f4bcc696fe3aa37ecc = "ae91218b01b35442c4acafd76f5ffc07f71eb259" +54a0490810ef45b91b401cfe8208d5ea4e6a1e62 = "2c7c08d26ffeecbb550a71425ccd69b7da1abc2a" +6c3ee031055948b58602339c5fb2db6c3c6b2e0c = "7607d4a2e27ae396d224c9d0f03521e31b811840" +7c80b6ff5f6a688d2637c381009284f5a3d0d33b = "00cb17d64b59b2c3f93f72ae6bb73a6a00e97079" +83655a0abf090ec6d8ddd85307ac3d223800ce10 = "4d6b1baef9b9f5134d4b92038d5091f81e7c2857" +8768b45b6e8cc97d38eb0ea4f9ded3059b1af04d = "66bbe52d0bf1938e770c54fd6560e139d6106b01" +b1fffb3c3352ced36f7b69ea86e10c0a9fd33f2d = "be6d7f51bdf51a804149e878c7a31dbb44c1021a" +d6d42bc0bc096498c2c52a7c3c9feac2611275ec = "e88de9e846ec67cd2f82f04285ee075ce1d87132" +e915ff29eb8e93437864be325e9be10e3b9a8dd7 = "fa8bd1c71b1761a5ca7bc4744bb91aae56ccd3cc" +efe9f9939ee593ec75135d266392d5777c8d8160 = "bb26187443f2d004ef9ecef45fbc59253cbdf3a0" +f4316604096119522963d04eaefa63d82ac00997 = "d7d00f357c8027228fd5ab8b40bea23401b24c5a" +f8771109aceefe9f28ce24a6a3f435a58befcf62 = "2f5199f80efb659c6ecb272d91f29d900a4569d4" +fdc264e6d5049b92f7ceb41c337564df72cafe79 = "cbc3f547ef980acb578ec3599f7c5351315ee4bc" + +[cde04a67-da5f-5e53-93c0-2a9e1e7feaac] +a27da6bd8a3ed00cd77d1e6cb2eceeb564d8b03a = "6208e5d967fa38b831fd36627f000f5c90ec9486" + +[cde1d518-eb00-549d-b2cb-837b5957db43] +135ccb376d57eb6c80239da88b7bcfb963901468 = "e280a4393510587001793b72c75d0cdac9b470f3" +5846dbf30c0e874c21b4fe3c914522f960bab0a0 = "68177327d11937131cb27f3f6a0cff0b5787c4aa" +aaae22351911f1c7dd33eacacaedce4831a55cae = "ca9cbbd8ec3d7dd2380616d994d9252d5e7d1e88" +e2da0bb9a5d15c1b0a87bb8a0b001c08d6be8abd = "7812a398c7b55488bab43172a4bd8dab033dcc88" + +[ce139433-ee8c-55ca-82ca-af437e33ffbc] +58ae7e552af55f9dac6ff3180e1c489f2b2a20a4 = "a5ea1bf206f088fce8fe59ec0d35df14f8fa7e4d" +8430bfc5ca4915be14b19dacf8dfd88f22826b2e = "3e5c075d105bc944043d18b503cac3f0e6ef456c" +888626bc13c672e1789f1e1a1a473b2d05360939 = "2652d8fa9b90b44347711886b0b95c32b8ed19f3" +bb795f20ec207d2c14936af17b22c604af5d52b1 = "35e0602d2724711fc8578063089bcebed1038aaa" + +[ce2a0656-6bed-5c64-9e01-e7b1ac833b80] +a6a8a5fd2ad336d7b932e20d493b0c35f6016664 = "211a88d54f698f1e008c6622d5879114f59b8fc0" + +[ce388394-9b3f-5993-a911-eb95552e4f2e] +9a23a549ed8b28551a750fee873db42a1cc662cb = "8f4adff179c7002f590e163271572124edee96aa" + +[ce6b1742-4840-55fa-b093-852dadbb1d8b] +1868811618c5461eba8a5eceb0ef80366a97ce64 = "eacfb8c1d4d9f74f4028ffea2782bec58bbc8795" +46458c72f18c38a51b05e8688b3b8025c28e9182 = "e030021a096e29e5bc8700b42d2c5c1abd902d7c" +604e6a848f91f53617f2a59c7f669e51c82bb7de = "7a40b12bef1df191fc607e8b74d61e2af68b1cef" +698985c749265f09b1197c04b7113e0001abb35c = "5c5db58a85b69b22e312952983d317b92a85e76c" +75fb2ce8580feda6971593f2124a19564b5d9379 = "715667364c5f4a2c419078b5149a37ff8c1f430e" +7e205149d54fc5d86e888f06f7e6d4942baa913f = "11867a56fc0ab3816afb1a6dd9ba32eead2250e9" +895369038b359c42702d514d0bccdedf3b6d791d = "7dfacd34dbca4644f441f18fea08498f45ee7129" +a4b9dffdee5d76d079dcdbc6f6d0e488ef989f2f = "b026ccec0e11e63e77e0f0c9efef30b211551b83" +c8d30866028d777c55ea3f1846605bb579e810dd = "ee0ff635403ed285f1b721d43d4be9ef64303155" + +[cea106d9-e007-5e6c-ad93-58fe2094e9c4] +a115045c7f23d1cec23fd99647b50ba3b9089b27 = "b61e47b1f121fc295dcceb94f45b070bce831943" + +[cea2fc95-2ef8-5908-991d-d86c75f38453] +35720c44c05304fb3455c2978dbc21803ce98eb0 = "5147291dfe06ed22426a620f5208f8b21a3490eb" + +[cead932d-4c71-518b-b238-3d6b730c17f5] +277136c67374bd74f54dc29a435d7722bcbf278a = "61559f5cce8b360e1a1cd4d9835d3ca2b0f38ee2" +35118f1470b43efc3fddb6c6280ba3b935186e2e = "91112ee826d20f5cb7d5a1dcdaf2dd222c3c2c18" +5a18e703f40476ae80e3eadc2fd214915cd1807a = "59d635ff5a0ad66f792a56867898337335b20f35" +5a3a58fc90144790b5ed9eb7970086056b08b05b = "fe81ec9ed0a48e85cfa32e6d8e55f3e049a839ba" +b367e86255b36db76459a197205d68332e6eebef = "3c59cdc37eaaee28d5a72b703ec13c0e35d5489c" +c162941b134c75bbca1cf84e2eebcef67cf9f3dc = "312f6d89b7ee365082b4f17e3d288f55d6a2ddb7" +c91b58ec8927f6af116bfd7a99cc4185b24bfaa4 = "03de2e5910dc0c62f0e19fb650efb7f3ff1c8d0e" +e6c68600cddaca859e0f341d63b2e48dad272ba4 = "f8e804f9cdb8b200510fe402822e05455f13ab18" +f4406462a64b892ad5ee8847a8849fb12c6cebb8 = "4240e0a0f776a8d405fc515f07501495dd860c9c" +f7f4745b4865487483655c7c708c3254ed42d90d = "157a1190b51785782ee7ec713221a0ca6c94cf72" +f9433f11de2f9ec67c65fc03f72fe5226bc6e490 = "e0ce6f37af9825c16a7f824b09d7bbc5ad7a0a27" +fb2f7dc9c2948d8c0678b48c07d4305284a0b944 = "37a865a929b7d01a9f4f264838dcbd79373c4f53" +fc3e477e6fcf7e94d1cc95856e4853c73250d53c = "236f5d1653cf0c5b4c518a959cfda9532993ff8e" + +[cec144fc-5a64-5bc6-99fb-dde8f63e154c] +21c69be8ec68510496caa148a7b6f26227871c74 = "314493e085fdc2e3df5ad5b03f097abadd42defa" +3024c558c0d1b3f2fa448928a14ae446133bb2a9 = "049dae317a9fbdd619740285d155406a37ebd6f3" +b55c4034786f061ad284ccc2860660159a056f33 = "15e8335ed9231d34a3d94388be838b9c263fc3c8" + +[cecf6091-0e4e-54ba-8cba-f0e96a51f282] +6a2f79e9bba88e10f06dcaae2ed6d5a2bf58e7d1 = "53ef724928b9c23c30694ce9e490c478ce8724cf" +f8d43d1bc7e26d22e18d42c66d2e973f7e7022e5 = "f7e552521a78951fd2c23548fe4504d9bf83d970" + +[cee8b4bc-0221-51ea-99fd-cd13b9c49dcc] +b8f33e40dbc8fca0d9700f01119559b980fa8b5a = "5d389934c40b0a01061981d8c7df0fc48a456519" + +[cf35fbd7-0cd7-5166-be24-54bfbe79505f] +5107b71bdb56bab2eb98c49800fe4419bd898fd4 = "dfecc18d39d102b7e0ccb8464be410c9a532fe42" +5151e04af5527b0eac60d5b90ff367ec72ebf91a = "5ff07bb53eab7d953def38f46ba6491e69a65c82" +6d901cdc5f159afa635db122515b39c80cbf76c1 = "3cb88488e89bfa6651b54bb251ebc3c67b5f55df" +964d7cf5790130a83cd267180df609ec377e2f34 = "47b48eb1b5847e6857c9ee64fb5a37d3e7471d5f" +de85338afedc8df759483cbab11d7843e27c41fd = "44e289c9f6f1e79633796a2c2b1de3f0e2a8e873" +e3b883b5d66b47b4ddcd64592b16825edcff0637 = "11b69f334663e09848175430a744790a539872b0" + +[cf87cc76-4620-5dad-9f0a-7411b2d39d18] +29fb52e662bab470c0c7f812baad6e6c92280f7c = "49d17c734fc03e8a0bee575d8653da676dd25313" +2c06f5678350681c49506cd9f1708d455c1ddd7c = "15273dff2f3d8b992ff78319480e5debc35a4cbf" +9e0279a92b508ceff56c821aa56e3d0137d9208b = "e51ee32af827399e4d80368dbe1d50a8ed480997" + +[cf8b7ac2-edfd-5d52-b105-178bb1715a45] +e1cb6d9d0fba718b1e496907971381c183148328 = "fabfbd4bccff5606db6e97e8ccdf4cc1e0fc1a03" + +[cfe6cdec-d1c0-55f3-be07-3edbc1168b6f] +24a76afe7339c93b5871eee3237b4f3b13ba41b9 = "2c21ab7ab87b3d736645e1c05b66e6fc67f79ba3" +3fc060ac0780614793488e064ad51b7bf54551ef = "9e6dbc30f152bc68acb84fd1d1cdadc98b4b859b" +e7a7382114b0315a63952cf80ea87181d2a2420e = "1935f77cc4bc0726f12f6924d3cd8ce349233014" + +[d014d5ac-0f4d-54d5-9198-0ab2ca96d67f] +182dd45419880607fabaf1896fb16d1c1a4ca733 = "fedf1aee0e2a06c10230234c09f01b2bd946535a" +c78cabea0197d62e032e5a8dc4606a37cf247cee = "b208ba831f5e5a65a102d56dd9f342d1cb062a2c" +db8a709b1bc907c2aaa59b54ef53913bf774fb13 = "6d80e14ff9c166754634ae5942d9a90cad4b1074" + +[d0351b0e-4b05-5898-87b3-e2a8edfddd1d] +08e12da6d0721ab0847c0db38273c78f21bef4ad = "7a7657ffd9d105c1eb9048a98c625e0b9fc56668" +0b7803b4abaaefe31877961ebd48eec1f43817c9 = "cb63e8609d42426b48c2e9e3f2ef33ffb2d9caa4" +1ec1c4fd9ef6aeba62088957fb8cfc6165ae24ee = "dcade9c967f00ec92c8db1085fc27a78d1862954" +20d36b300dc4c744821bde42885d238476a93fbd = "5151678d3a400146b3d25b89fa99ceb7cd8eb85b" +31bc0b1389a3e3cccf98fc6d4031e1ff6ad31acd = "a66fc2b37bebdea89ea584572421b26d87f1822e" +50c35d17cefdd265dd2293f9ff8b783ae51a6ee9 = "9f75bb3bf7ddd4f6920c9b00cfb8c145df25c016" +54d942cef7e4c5b136d356170c344aad73d02f1c = "3a4d991b4b916c30a21cc2bcd72115f641de4d28" +6205596359ca3f10d2431578179d8729364a17a5 = "a4fb8bcb7475cd087840f74593fc4c5c857bfb55" +85b03fbdd733e3fcfed447960c88e048b6e52309 = "b925387623569c6878b0a29cb1c5247df8b7e501" +9591633664477d336e8a8c45c8ed2185d6630152 = "4cb7b4a8efff77deb0d31d2717e156ef22713fc4" +9711305cb46ff73f74aca6c4c5a6879329924de4 = "c5bb931d39e3a313636c216ec0c7b87d2d140801" +9d35ffa916e5ee83fe0dfe9bcaa02c0a331ff287 = "ed62532128a30646ad555b28af3139fbb1bc8c63" +a67cee7296001c2432de7e62e7bcfaee6f680ed3 = "d47e57b1a94e07f3c42d1397517821b1182e12b5" +bf5418e283ed2811c8553e8526f7db58d53f2675 = "552f95017b00b9b4d0928e6743f3d0e7724d6843" +cd40fb2ae06c32644ff8abc318659512100161b2 = "573fc3d2283b2f79bdb7eb3f81901a27ea30cf47" +e50c621bec0ab63e32075035bcb2a6efdb8673fb = "ee04dba467765a4255c2a983da7fe2d85eb78c6e" +e59b5812519eca157f6432cb4f3f7166b9dee81a = "0c6d5bc8a1ff1bb9ecc08dfd9ba5ef9a1a9cc18a" +e62d82256d6c37c03e0196ce466aa9635bbd2e20 = "873299bf803c36054a746857ab8ba2693f06c9c0" +e6cbb264a136bae1506301c08c73d421a625faee = "c30b8f75553617824484f686595136bef0389a09" + +[d0551c8d-3c54-58b6-a75a-e266c30cc699] +e09f8e3c84dbe190efd01e364759d9bc13733b9a = "cdf9a85459d1b30209b7a82cf8daeb4f932c1307" + +[d06db476-e078-5895-9e0e-615f11c7dd03] +034d67fb6e440bdf4db77b7d3d9818a65a505ea1 = "f2326e298c03d081e22a515006f1d8f27178d595" +0a1e241a9ed52250553644c5261945f1b452c997 = "814db844e3e76b9e8aeea26e24595266092f5c81" +10ecd55722f5af75c2a276fc68acf19466ba3ef1 = "2da3e03491120cd1ae89a2dfc0ecbe5d882b8160" +13b7f8b96799244f71e3b9107c46e6e465ebd3b8 = "626ac6db5068d465198a2c44d99b751ca6bb7a37" +197da2310a4b7c2eedb9c941f9800a49febe4d1d = "726a9b7cb0fdeddcbb2d2183d46d4195dad2167e" +1bf44a8842330b40756c5d2a606754cdb5c31c55 = "650590a1887042084cbcf9a8eb4577272daa1387" +1e6a63998643b68069e1eae661bd851019a56bcc = "f6aa43f39861ffd0697e94031ca638a86702e796" +24f9be97dadf7a72fe1cbd3bfdc03a8f287e7bf4 = "1cf69b7bb6e11f418b3c8d94135f31088c25a2a7" +2b9dc0ab3443a18020c9e8ab33a8a1c733e4e50a = "db80dccdbbc6fb38cea4e7abab96086faebdc605" +3d09ddd7494216546d6bf49de6f90f8b5e94c010 = "11d66212b6a9f0fee02584cc6232f20015a3edb4" +48225c3460d2b5aab8ff565a0ba0b0b21ddc41e1 = "c25e8ff7c4ca5857c170dcf34139b02f07dc5edb" +4ee6df781e8a5ab79ef26c3080b19e02e6084a59 = "374d777e6242076676860c73fb2198d910b893d3" +4f6fcad6bf4b03c2b6aff335a677a9b95326ea18 = "a934b009c5f00db032fe5e59915e8f6e3236b7e7" +53a0725d48f8b67cb49a3ace9fc7606004e786fd = "924321af3f70410687590e2303f0c4f1dc58c909" +59eabcfd8f2111f8515dad859f41ce2173820fa5 = "bc62aa1372a3b508a48c69a86b6a5b6d335a4dc2" +5c3a87d4934f1f49d12070c8d102d5fddeb53afc = "b9415e5aa16ccbd5efd798982ada4586232112ee" +623d44be85ebb95286789f40b6d5c67abe45a5e9 = "5e11aa485a73d78f89cf6ca7243792ac5e372149" +790e039ede72538fd44a5e64454697c600f6dee7 = "5087ae0a4f382b066852def4d22f4879f2762fc9" +7f05c23e45f491b8b860a4c60e35efa97646f5ae = "b924e6af553569717ee90009e4835fd0f47b4544" +804adabf875608cb7e369a1df20b1ba69afbc145 = "d6fc54c5abc2981c6e06391011e0c1a19f788f3f" +8f36ba17bd5b7b0576ab2990dd20f51f4d93d3d7 = "71358571f18f6c608bd30f38c7593be5749fa051" +8f6dfee0a728a4d78948c29499b9e02074e2f7f1 = "e39a55ce1319e801b81eda5594c73245992001d7" +95f042e6b09e6b6720ff93a675fc0f5f1a30afba = "66e84a93f3226b8cabb3f575e2fac9fd38915f2d" +9b50c814f0a810ee4db53b8842a3f44876caea23 = "0684022beb9309ecd806683b91a17074f3ad9eed" +a130c59a24847e0afad77b2c9c879c65bd975904 = "8f1be40b4a9cdeee8856bb42aa46dc37b6aaf17a" +a6d3aa089cbc8a14c5439dd152750c9ef6536b6b = "42b04ca45eb17f18139852522c464cc141cf11ab" +a8b3443ab6abe3429ad457d82e9d728c0d6a3716 = "61af115ca5c0b0745829d4e1404a53efb81feecb" +acd0659e7caf71cbc9e439c05bce3b6ceec369c4 = "97690fa4382bfa2b15f4216e10d619ef126de71a" +c2dceb9ff214ef776e6dae18c33f23dff7aa4a18 = "097b80dcd5afea29dcebf0c67affd4d485b1f6c2" +d7cde18fd66337ce230ecb0258a05a37b2c11d2e = "12eaa198134671fd0cff266bdb8c1dea0be78eaa" +f145ae9f55a52bfde0d906da7378efad2689f14c = "7b599a0956f4d6b721152a2c06004d65b7b000c8" + +[d0e0cb2e-0bde-5aa9-a60d-c850a24c57ee] +092991f540a7bc0817319e96f0d079b12e87c0fc = "af59e6bb81d713509d26e6c48efe99c81c83c6d0" +1d2bc8adec866d44cf662717bf314ac54d0489da = "5fbab3008112ab4edbcb7559df1f55c61673e302" +22317e39b4357ec77a17024b3ba61e48fe11fa31 = "f256abb0537acf8e97143d79b98a3d79b65efc0b" +22ec99ea91f452e18723f6867acccdf5df990b76 = "ce747c89103b2e65960cc03c306f58a834767791" +26322c5a51f4b2c0302014c384acf876474c21e0 = "b09fb9d6840f9b62f96e30e124a89203f3a8d733" +2fd36703debd87a5293336a87125c713ffa06f67 = "35f76af53421b87c350433eca7fb6baa6e88579d" +366d9bd77bfb1b4ab06ebaf190f3ffa9b046fe7d = "ae3309698e980529e2740cecfb726fa4e295e0f1" +3da0f041b2cfc8a37ed0ffc6d39c3df0fec2a11b = "046c3ca49c9042c99164696ead9e0495491787fd" +3ed88b12b7b0e8bbd57e335da70f31b9c953454f = "5526542b116bee8625d4b878e784de7abb0b3b9a" +409bd7a4efdd7fff9664e6d72b24c11554e0c857 = "94c39709455cb3ad346c240b2a3610013114aad0" +44c93658a62226b162235fb9b76c59f1a72daa59 = "541ecb0326c57123fb81fd855535ad9fa2d5e3ac" +4e85369bf06b9ac664dfb53d23c90a4a41256637 = "74a14b0d0accd99a89261968ee1ece17566e2a70" +56191b3f9666cda2f828228b6ff5673cb26a2aae = "ef08e06d168ae728f80abef2b4b0d65c00b06496" +56d73a27ff42ea5fc7fa89bddde068110c3d5c71 = "00f21449d5f2a3351fcd0f77d54f148bb803e651" +5ce3577b15d683f718ed08deba95f8ef49b52845 = "ddb22dfea933018627df67d757bb7a574cf36a70" +5ef44b459de279fe68b9bb5115e4a7c6a9c0fc61 = "5479849a705eca42e5fcedd1f3d2423755ea24ef" +69f36d37be9dddf2d6dc0e3e4b61ddebd6265e87 = "6236a558f042bfcbd7c6c96b34646f312f26f94e" +6a6df43e757016ccd07cc662068d1f7d57230019 = "9afcb5d2c881b8c428f77f2d544192114deed0d7" +77eaa6c413b6fd2d850f60513a04ee6ea855f795 = "63d0b7b820def7663b43bc787ebec172170b84e6" +795fa5370064a9390c4c33691e177b4414f4f0cf = "e6838f86cf30841ce1b62e7081a0c4ec600020ae" +89b148933fab59667c68c36ec5d43289cd81c0d2 = "2be73554f1bfdc57d27ca7ab7bb55113e6088e6b" +94304e98b8fd3ca9617232634b804fadd4330739 = "539727b5ed71783ad82dbb149abfdfe23b9e140e" +9aa3265a9bb239a152be4fa6ed37c7d903ec8bd2 = "0ac7370d8b0a3bc170577bcbc33c934594bb2144" +9ce88e93771f47b3be5a873af04dd4f3dda75554 = "6420d08bbf3680b5b4c472ddf6df53c5c3957816" +9d7f70abc084253143de6474b1231638fff21bda = "a1ce267ebecf0716e82d5e1a1f16d7431efe7c8c" +a6bbc6133b5cfe8b7479d5541294ce8c12826978 = "5453bdc12b863b43f8532f817a3a3b8811e8d58a" +be824cd659e3a9126bbea6101ae65f76c709c480 = "8e0fb9303e855f4bb0a74e132214d817899e91c2" +d2e2e82c9324944b952a10e2f02c1828b488c59f = "e48705669c6e1c3d13645d5fa4ce519c6b4312ea" +e3ed5f618b914213e2f1c2b409df641692bb834d = "8426f143f0901455a6a3a612ad421e13aa01c24d" +e7556950e45c79f03e76f96143be9eaf4c9ea658 = "1d3125cef6a5142a31a9e90e871965c06a4b2504" +e7d0e1daf564900ca2d58ef317906979627c3436 = "cf98ec090fa6bbe8bbccf93e2f35a5ba84e82990" +ea8429346f9f972b2bb12cb6ddd61dc809b2ba64 = "e26ac9a057c0998fcf8a4ae985eb2fad1078ed89" +eac6d84aabc48f9620d9f668f79ae1a6fd2bc874 = "5db6ac62025396e26ebd5e26b2112299fdead8b9" +eb4c8aad13745db70734b0668e3ff6b216851b82 = "33a90c2105451b580dc90c31a511bd80f3d163bf" +f8a5721e23a36042d45203dd166cd8c253fcb600 = "efbe1173743caacda18cb740bc9af2462929ee7b" +f9391a0584de5a34c64d94197078b35aa725ec8c = "310b8ad4f9c504c53b5f3687f0bb0865b23977d4" + +[d1acc4aa-44c8-5952-acd4-ba5d80a2a253] +28fde2fad77ba513dc4ffa17a7c91be794d995bd = "6c0ffc06f86e0f3b395d23b0de40ffb0cabc5512" +64f72c729b6a4243cfdbcf8da9b5e126d116cd12 = "8ab4f7db30802c2a02cb44c4b053811e1c01cb20" +a0bff5584de46b10e72b9e96bec1005901bda96d = "74edfc07cf8ed182a369799a5d78b63211abf57e" +f4be4b6b831dee83ca3e1f683110d8043dd3ab47 = "8b63b4383bb736cc7ed44fff0abf03e7a7f0e58c" + +[d2185075-3040-5c42-a634-a12f38dbd79b] +2540a46cb4878ec3718fabb4940c13e532c9c371 = "b9673f4f302216cfef9460730d79d5cefe6836ef" +2a36c0ddc881b37711d7a6bee834c801f26d00c4 = "6995ce1cbf4b8ed0449ce9cf30d2505235c12b67" +6542fc7b35ade0d281011425ee0843f374e5a728 = "e2031422af22f8ee10cd82b6f1c4028ae8d9ada0" +66442297d421fa67e908077f5d0560746502bc99 = "bb38342918c4ee3f0ab08a03a20f09e94b77be3d" +9b85a8041eb53c77c0796fdcf29de1fc5e991b0e = "ddb076477135eb34d724336e1651e360ced5caf4" + +[d274f558-d366-508a-a164-2611506323a4] +746d5cc110bf13d6c4c8bff2ca0069879c290d38 = "72727f43f183b9ddc4ced9b8fadc03e931bb2e94" +db197803e48daf3fa12695320d4bfe94372d0d47 = "0510abf7abd2cc4fb10c19d8c07b3e1fe4d56fa4" +f5b0f8464c086fa7cbe1f44f9b37bc8270f3b921 = "2c31ae01ea46f02524a22a18f6c303bdbe6fe0bd" + +[d2772ebe-fee8-5277-ba6e-705bb5633645] +04a5e7f68f8db9a71198c31d5516c7ecc4a954e3 = "983e8467770e23009329280a7306dce2b471730f" +2a90487b9612117486bbf6ab2f4d2c8eaa8866a3 = "1d5d8c1dd22cc354cc9fbc8b06faf9ca779cdb08" +3f96c73aefb5965836c0ab6dd9a3e2e3135226ae = "cdf4ed168f3048fcd815c50b7a87738305aeacfa" +881f6358acc1a86ac6677b6260bf361829589d2c = "39dc162a4b62926c57372695bf426c3fa5e50965" +9fbc758ebc263074771def414feaf7932f8635c4 = "1f0bbc3e1c9b53706614d35d0745d893aa72777d" +d2bbd45ffe59191abbc3ded5fdc74c0f2ea80c1d = "b650b87c413591f0e8791d9c8822570888dcc776" + +[d27d45ae-66f1-5d53-80d2-11744f5c9556] +878a5e6146ac84ee9bfeaa0952f4ffa5cc2805a0 = "7667f3a9f6ba377484aab4b0d09657b668c30fe4" + +[d2adbeaf-5838-5367-8a2f-e46d570981db] +7c07cb8058312ba00cc97ad0ea94078930953eaa = "4341c9f99ab86231bf4676f5d86ca645f735a0ec" + +[d2bf35a9-74e0-55ec-b149-d360ff49b807] +60813ab471ebdb423106d6cea1d825bbefdabc06 = "0a34232baf8263bc86fdcf40aee77dab97dba07e" +9635b27723de05930f7777812e1460479889bd59 = "e7986301df8552167723e96e182c0d7e560a4464" + +[d2ef9438-c967-53ab-8060-373fdd9e13eb] +2f22bd1fe4cc2e0b32e297bd42c11ca1d5f4e4cc = "c571526dd3e9ff2a16332f06d076504d29358051" +8fe241b88068b2d5b4fa38591f02ba906c00385f = "ce2d445f4ebbbc778c7237837420e6e1422b697d" + +[d32f81f0-000d-5c7c-8375-24efa40f8589] +31be87d0cc74bf6a08513379e87d55876ac58d53 = "480652ace47b6dcbe1828aa3138d7360d8c89ab0" +32ed3c64f12304b3c18a481cfdc8b92bec6bf719 = "6d2430a882fc931d640b448bf50e5af86bb72c36" +c5de9471905cd0a9f1378490264b9cd4a6e9f810 = "ee3258b5b6fe76fb37db1826ffccd7e40b300bd2" +c8ab4f451be90684af109ee9b32283be754d5a7e = "eb584aeacd8e8dcdcd0a712f5a49dc2c410cd1d6" +e25b226bcaeb5a88271f9bd822533efac486b48c = "6d79e7c12afd4bd46ed6635f1bd17b41af15583f" + +[d330b81b-6aea-500a-939a-2ce795aea3ee] +006190cc52eb56bf5cf55dd1860ecbefd218be25 = "af42dfe3b66bebd1d7be156cb481d8a753f3dccf" +069b985c6e153c197b14bb3fcd98057cfc1d4176 = "a7dbfbb8a7c4123b4099bbafef3e6bb6608af270" +06e25e04fcd3869f3ae11e328a37e7345fc59c58 = "cd2b29a60cc354abca24e070f76d3345350e26fb" +06e800c4458279a17fc957a80988bb3d0fddd7e5 = "55848ee1068aa361e00e2337340ee4a5f9796a6c" +083f6f340f2638761f2dbcbed9e6a362eff5de7e = "258ad70b5ac610c38c81a56c1917d00633fa59d7" +096780721c8efb6ffb899379ff614de96ecdc600 = "e3f5f15a8cc04c783e0b72679e98bf36dee6c897" +0ae0d4cbc150207ec0863f7b6127b1bd14ce8716 = "e4e88de60cefd1f2a8e4efb2ce4bbee04bef8726" +1290142188fb6702fe16a6b4db7230b16bec0b7c = "c46376382eeed6db211d3f5105b05571d1ddaf67" +1414ebd03a03e10a20c3dee48c97865c4d27d1d2 = "5ef01990c40f3fa1a2fb102d649a0153a9ac1197" +1c2d22e06257969841270711b7add18698833324 = "04e09fbae31598bfaf48752bffcedf3ff2ca53c1" +1f763b11f9e71348bc051954d83c856d1517bd65 = "7b940da83f2b2603c060d3452d1a0a583419213f" +27f62251e62cea431a955bafc4444472f4e96fe5 = "634f4704d5ba7824d9a6b83c3c737622cec385bd" +2b75fab0aa968aab471c8b1936c106868f44b127 = "7eb84ce0179a7d7d276386e19d4bdc3fb5cf5cc1" +3217abec982ebd687e1e6678288eb6f4f76619a5 = "00ef4185144414450d6b02f0fcef1adfefb86535" +3b7839fe2d30cd6c4d6c9c1cd0e3d4d12b898460 = "2b89516f5a27457f26aee1d6bb476c785f209b44" +3cbfe1a2b6c7ce87946522459bab0d5408db3f94 = "bf5184c8bd24d3ece958ed00b55d06cabd3b90e2" +3e6e18c746ef7d94008906d99a8abd577a419169 = "446814aacfe0c319cfa9fcf171af8a57838a30c3" +40632c7270c767fdfd527c2afa4ed7bf5a1ecb01 = "6e836c4d333548704010648ec88bc54eb6673415" +44e5589ab8f0915a3075ac1450d797ab6ce713aa = "36c5b581c10616e5a09eaeb70f9954985e429967" +48a6d7f83eb52a65ea00d66f35a870779063f57e = "79750eb412c6991abc53b9cfeb6f918cc7958f9c" +4a5195ad158af5d8be9d97e9a7b792b63bafe56e = "3f465b112c8accd6630316f6f119ae561ae9e3d8" +511a2adcd0d05a7949b7ac58475e3aaff9b12a39 = "2ceff83a02ecc49ac2012614410d72d1845cfac4" +521caa1bce869d766d4638942abfc9099163ac8e = "75cf1e9fea3e492dfd66e7120aeef0cf56b02e36" +536b17d0ed596be7adb5a33c0ceeb9c75de62919 = "78402bf505439da36e2ea3403cc3661365dd4f46" +53bdbdcef3e8f5bac7593179bf338492d9762ac0 = "61c9a64f2eece96482fb37486a70e0c0fee23693" +59c19c7078985dd98e97d99a0fc4abda2f2f0ec7 = "794d3609450d1aa9ad03f1dca3f51de58fc8ea4d" +6e177529690ecdb82c87437ffa40ec74a5407af4 = "2fce057cda25a449b656e9cf897730de1cb92298" +7c59b3eda67b74d6b6e3008888cd2206266b24c1 = "3df79b61be821603d8015b80824a740ca5f5ba89" +7f3ac329b352c924412823c010f9d2e539a2bdb2 = "fa34f91e4153cbf502da9f0a32dadf34a8d55eaf" +82b51f88b50f92866b3abbfd655d32ae92c06b41 = "8b19684f18ec7c6046ac41606f2168f3a7f012a1" +8932adec8f7329a66e41922348425b98a86981a4 = "84ca57d863e1b458749aa844c5327e2e9d8291f6" +8d75daac81eb5d1352c4f26637cfd66c0e48a0f7 = "fe3db67793082ee3d40e643f90d1d2792de96c10" +a3a983256013c5dc69d36c07c67433a8ea11bfc4 = "6fb6bd0567b1998e9c90619bfcec638807b0b011" +a4e224a427aa997304d9a6da9a889c8bbfc681da = "5a17d276144f45835812e9438954b5d49d1f1958" +b37dcd8df1617d08ea5d9e80441434d8f6c588b2 = "56fcdd676bcae8f60368e988379e3f3120753fbf" +b81674b17f6e901aa2d95d44e7b5c498ab684904 = "60c37759a71022bd33a47be6dc0a8d8aa2f1b027" +bb24ff8b8f716845094a0622a46c57960b392a45 = "cbb2ca2b1cd974b8d93690387f9f819c06218aed" +c1d78e91b46ad53d8a6c04f8af2204b357d474e9 = "54f6529abd337754edce40383a5466102c8203f3" +c6b7ac95a00c89e5f8b4921a217c0c43ce804cd5 = "f997a9e11230a481dc9b9a3fd2ed6f4d05915ac9" +cb15651466f78a9301dba67d67fc45b8df66fd9b = "8e79149d9ab3b0269b36e26cb452efd088e4bfb9" +cb92b020bbe5fb72d1acbda169c6c7ce46a07303 = "94c9012b6a395d924900cbe3972c745a4d7e8bbd" +d209dd2f793cab37ab08822cb046395c82192824 = "31f9d904db6529017157a114c5626a7902e57cbf" +d8288819a6119e3b8ec92af4c7395e2a8bb9182a = "f29b51dd724387df447d524cc3a2828029e15df3" +dc7905bf38fa968e8dd9669c0294931e5df02775 = "6a2eeaf8c255540c43bfa23542205f39c1314dea" +e72310cdc1aaa037ade8aaafb117dd85144b7962 = "d23b37b42bddd6cd461f04946425859a9755b1d1" +e8640e367636bd5afc7ce0e47687dc4957326b64 = "af3d62f2a2648c0d7d7e491837f31b6509f72937" +eab4c673d75db1c3dc441917b39a95ec25bc2476 = "dbbb7a8a9abe6d854849f7adce5bc59b889bd026" +ecc8a4083f2d58894c405047db8cda74b6e8f82d = "3df79b61be821603d8015b80824a740ca5f5ba89" +f4decf17ddf5bb029f41a404ac5c27b559d3f1a7 = "0429e8749dfa9c10720b2c85d0c35407c877a614" +fb8686f4afd95c86b47213e9fcc5a5820c042cfe = "a9b9382f70743cd595efe9ec61d3f8b50bd9e54d" + +[d366530f-4af1-5ff1-9928-73bf22b88830] +0268ff4ca8547039f975b8f6c74e2144c7518851 = "9da51fbc92193b89d6a60962092bd52c873daf15" +0d05d5b9851b73ab40ceac85074c13630334583c = "d6d4a333c8d1240dbb851df914f0b5086cda6fc4" +1f9008ecaeb8ef91ee7da94c04136ce24972fcd6 = "c0f722ed5168f6035e77a358bd978b65e660de35" +277f99b1f962b83ed9efb56f86cf2eece7702bab = "9cfaab04e967ceeae145c1413e557faebb3bbf1d" +3b4322cc6614d9ff6d2f4309aa1e4c1d9f3d9dcf = "f3ccde9f0b058397b823e1e6ad9ba73e3f8e4e6f" +56df258cafccbb92f3f7a38699dacddfeba38f57 = "05f59c523f51be8230ce619367deb7a3417e8158" +58378f8aff6f87800c58be31090c543cbbfc8fc2 = "12e8558fd1859af87f83ec830f05346cfb9f595e" +5fa1ca71898f46b89a7fa0af309b901d90479225 = "29ccf8ff758fbe2b588508abfabc654d7331a766" +603be7e159d37d25e4459343d7e859d9ccaa21f0 = "2a59ddfe3d5804e7e8d27e382725eb03bba873a5" +66abe1814cda84ce5daf17953e1376a533e61326 = "a34ee8c016b88193c19997c50a1a6455be529d66" +6eebfa856446153668df9d9e0af9c8e88a0d77fa = "10c40dfadfb5d57f6850264477decce6f54ac7a8" +7275c0c7badf1a7ef2c7f356ba5a104603380563 = "076b76f0c8b8e3f66b2b02a05047c3784a961d9b" +813ec58f6814916e06c792b748f01de60fa2ef4a = "3d93123aaeac39ea50dfc407ed22562b5c9f55d3" +98e298f7a29169ceb4a5ca74db672f7b0c12adb8 = "9eb90d935b2fd3e9516faa8360db6723cbbd14e0" +9cf16fd4baf5832814793d11e2c1e7520bf6a816 = "1549500235d71618ce9f02319d5c5c002a3b211e" +c1211b74211fcd3d14ac2321bfa86fd62727e171 = "dee2538f4983d283ad89d3f20b9c4b42694e6e78" +d4888813b5c12624818937298e55cbcc704c8d55 = "9985739ebc7f7b67edff4a51b8fe2905496c166f" +dadbcc4d6ebe7489bf68240aeb1295f89f739006 = "87c3fb7571e26c361227e27bbea0b5008376fa86" +fbebfb1543b175c056977a336861e6c55776aa4f = "88322ed888b5d6b074da9c8d16ca93dc264e6ee2" + +[d38c429a-6771-53c6-b99e-75d170b6e991] +1705a9ce1ba5d54d9d15ef6b76b0fe8abf73c706 = "a4a3ba5bd4019ee0e04cd772f9372f760eb3fd94" +3a47822df995024d72daab1a26df820c47985cc3 = "bc36f0cc527f7c8e82814775cdf5bb7a9af30750" +434feba19ab11a66ce5353913c1b01a27b548628 = "30165239e418780edaad7b7a06319fc6e2bf6fe6" +486965df1243f7e6fa999b0840a7b28f5b766199 = "814d18d61b1b2065fc1bd5b4bb58f2c4868d6120" +7bded64ef5e1fc62110def6e13e8973d5adb7953 = "79aeb28ecd9dbb69ad491d686f15edb278cb7b4e" +8b59af7312eb61ea5c7fe297bd811696656a096d = "114505344dee19f88e21a6cb9ec56656c2edbb3a" +92ac9f9e6fa590b239ca9ba4aef81c1e5146337f = "ede3e735c469c2c5aaafc229c993160325aa6124" +a84f3dbf93758275c1ca49933b9d39c9b2831b41 = "e7583db19ebd0e1e8a116bdd201049415d940b25" +daad6eb0b1464dbc7e824bf8384cad54a3b76445 = "7362b76e9939964a94fd39430bc901092c371d21" +db84d92922cf82ca5f422bc3ebfeb11444972042 = "dc1af89fb4ac6edc51761a1677bf24cefbc76816" +de1338502afa05f2686d93972e5813a466542daf = "e3d862963ad499fd38d1d145425fde884a8485c9" +eb004be4d82f77e3eff7e47d4dda50843e4da04e = "e873f729398bb74c9e1f1cc5af8f45807c224a9a" +f1b6713b9c359590c57d9fe267276323681acd28 = "096d23897d00dcd0b36284d9856aab9f4a76eb01" + +[d3a6a179-465e-5219-bd3e-0137f7fd17c7] +08f1107efaa568bca1b4b1f0560930ce4fdcbf5d = "b6e66b8f1342cf0adbb2c3e5823241a400761841" +140294719fb4b03bf83a969157d198193987ecba = "b277afe1c55e180aa2d72c7ed9117a5f0cb30558" +3b942d4b7a7a54139bd89b890d3acf01ef16136a = "cad3cfd0ac6be3a5a7dfbc625ca7091cad52ebe2" +4221eae10fe4bba7a8da5184106643c5900f83c7 = "05aeddb8b71af0d9f48f0f32837e234625570ffd" +54f19cf5b6d6c591ea09767aab75c22701cf8d8e = "1d77c18e21bac76ca70bc8c445f660b2d2dc6d07" +cadae855fa3c3e7f5536989a83e653c6287cc005 = "96411a9a0976b78c71a630884fce55143741b618" + +[d3d335b2-f152-507c-820e-958e337efb65] +23ccb4a0f27fb161cc47cb8d83589b2f43e64804 = "64fdf3fc5c56d5dbff6435555a666aa735ad7186" +c854cdaf846d94703dd220c375f2bef1e9e52296 = "5274a926338c4329a92dd51fbffe49553bb56bb5" + +[d3d5718d-52de-57ab-b67a-eca7fd6175a4] +01e4a28171079ad10dce860652ed0a086860d6e9 = "2cf91b9c880fced22808374581a8efac7c663d60" +156f18e601fc47a3fc0c3f8c820990736aa84e16 = "ff018b41672f13b4adcaf07b8298dea3e051fca9" +2341256788762ea82fb7b064ad2db74d56e709a1 = "6e1bcfd0b3ca1fd55b52af11ea73017e03c63520" +48abb39279e8ad14b94ed08d8740319bba6258ca = "c3f5045667f15a7abd6e4a6e4dcc6570b4907a9b" +79cecfc9992c2ef65e4f40bd230fa7fa99b464e0 = "36124edde4026b9b170c3900a3baeeee2ee07972" +8ccd5c140ec4c782fb916731d7764836e4958a80 = "6032ee9180288bad5f31bf5e56fb7cf254379a56" +ac92b9b25249f84027be7f1acde6c12fa086e976 = "b194a20f6076681f94e558ca071d9876c6b3b9cf" +b4167069a1de3e0a3a7a637782002ac983080f33 = "cdddeb5b9cbf82122b7c596f08e47362e161faa3" +bd30b42febc51e032ae206135dd1015ad89ec315 = "b07a77fe990f4a5430e926bbc182162c875bde9c" +c67d228cd0f388efdf1c3638c72319710355bcd7 = "67c89575ba6f40aeefbaded9eba041da4a287862" +d3b6cce1f3fdcb97504a5712caae1d04eae10ec4 = "5af04debf83e1c859fb2453a458f2ee6f58e1f82" +d5f32cd5992c7d430fc0dffeff633976bc08c872 = "fba91c9925a96c6d7e6178cd2a1a99cafcc46d6a" +e008d04e282999113d2484c380ce8c38c2598233 = "232966c31406fc277e8231e065323418eea30325" +e2b3ad68d52554056b935be7aab976cda099a4dd = "294265ab55505f1b3309ff9c33aab0dd25b13c46" +ed54f474a4bca619656403e2c537fd82a7221452 = "66bc30b52c575406de1f15d4ae96b025dfa6485e" +f0a356e135055b008cb6ffaf978997f1d471511c = "465df114319ee902ae84246fb99b37d2aec347bd" +faeec2f200120071ed02e833415e5e925bd68954 = "f7a35cd52b8616bfdfc2f787a4691ae6faccd49a" +fba84f771c82f67135bed21360e5b86ed7023bc8 = "11e08ec9963ec4f8de594ede26906c517b95a3f6" + +[d3d7f49f-8593-5289-ba71-9c4f4848f489] +26a4a3057df59854fc0d666ff3d5d61aa6c7b88d = "a8e0c02e51577d9aadb9cb99235b70b3c3e05825" +527d78f137a12e66ad496d622c2171cfa48efb94 = "e80edb50b7426a2854a6dbaf01f88da73e9756f0" +a62323c718fea2d3bd09a28e9838183bd070d7bb = "c994d94e95e89e1ad6c655f3a6c5588a0b8dad86" +c7ad97359f575eeb929bd52362dba95218e037f7 = "5f3ff78e7c7ca6fd210aeb63520641c63be083d4" + +[d3d80556-e9d4-5f37-9878-2ab0fcc64255] +007640e240e4e8a2a2d38636d2c6f22540c69b3c = "5a3f38060809e5501b0f601d803d106664d3b3b9" +0990b553e96f7ba0da51eea21cce78c083749606 = "2b80450f06b75cce2a8d4113ce92038d3f34c217" +28cc7d10983bcc093838db6e273fdd9fb57766a6 = "4718a420f597213ef62ebe6e4baa5732dd5cc196" +32f5337120338d7805e03f7f5eedcff2e96becad = "0c6e9cac4acd1095fd5aa5ac9111b514f3650f75" +33c9bd02eb7ce01c276724e0aa0df5c2d8678ae9 = "ce01f495aa21f3144221e3f689441aae3913d934" +35d523df9c22fdec6d93317e720ee5286017c725 = "46ef40484a78defd19457099ea11352b7e59e71c" +430ff8695553aac267f530748a9676ec54c4e60c = "299e76f04080ec6ab239aaf1e0210bb958b28e27" +56155bdb64d660452c1f014eac3d51e8e3608c71 = "709ef74e45c128814eb7a13b1ccbeafe6a88735d" +5979facd949db19a0e5b66d24aa142f703578880 = "fe17dc59afc44f1ff5b1725ee519ba407e09a1d0" +5cd79f4b48814ab39abdefbc81cb25dc6b83b4a4 = "0669f30346a961bfee51d7c487a004d3c16b68d6" +624820d99090648a37ee232c33fa2876c1973139 = "977a2ca04ff2db61fb823165e1a89d94dcf891cc" +628f019e3c33d4800fc79a9e5f934dbc69f5e2c0 = "4ae6ace0696dc93aa158c3247d1109e1d88c3ba4" +675f5b5a17d70ea9e68295fe4d065bbc5821e1ed = "b0573e70734531a998092701198472c0789c2de1" +6873fa5a2264a40f6e5b9fa2df2681a2847eec72 = "9994141a3ea6e0ec0336e37b639c1aa2887b9f10" +7fb4d38446b046bd78dee3aa8a8011f44a33d14f = "5af896ca263a6da686c84bbd28ca340491f43a90" +88322990c6c3304e1471589ca34caef59ba8a8d3 = "60fe43fe3e184c8f8b0a31ddde5cbaef050ace4a" +90d99c3898de5b45ba10924862a968982d84432b = "928f7553d01134c2543bfa8209d6ab8809f677e7" +b9e51540a5632b0186c81bca163bcda6af86087f = "d91d6812485760880514fe998d064450a6a990d3" +c8caed81cbe0093134e042dacca8a72082e01bde = "243b9761ff2082e15bf625af93cb4771da292336" +deb45fbddfab3eac415e5a87a91fb1fd1872e23e = "7fdaecbedffd9ccc71dca216aa3cd0839daee7df" +e37e4f1cdd24424562712c0926ab6b0fe9e63085 = "90132760f416dce65c43a2086bf2e356497c26e2" +e6c85ef55b81ee194dd737539c08544bdd9681a6 = "4709d51e7767b4a8e9ae1f59c704bd359004014b" +f382f9c0f4ca18cbb205f61d41cc62342e784b1a = "9600c340726d2ca79b9efe949595da37d7648907" + +[d40d4617-1dd8-5232-bf05-d2d0ca0a4896] +5ff61be824011fecdee667eee4caf06292544114 = "bb0084e952e16999521b4568f59fac03f48afe76" +7a4e04d0a6657df13b66a11fc3987224754c7a7e = "7f66bb853aa78050cdabb120e09ce79348e448cf" +91ae97c43181daebf64360dbb753b68af4dce9ca = "43a7ae27c8d4fa01a7a7fa76fe039e1199ef570c" +eda235d4fe4aa538d4bf1d6c3a9b5843d2259bba = "59144f344541958e6851760e9b88bb1ecc19e309" + +[d41b3cee-bfd5-59f4-ae46-2d539e075afd] +a5ab256d71b6322e779c2a3bd062fafe011c4221 = "3ec319afb5e175ff873916047d7c6605a8c4da09" +dc1bb38a1aca40b1619265a79ce922b30e41fd53 = "13979db0b814a2a93f1447feeee9e23520f14f27" + +[d41bc354-129a-5804-8e4c-c37616107c6c] +0372693b174577ff940067c9076bfc79fdc4e9e8 = "6e5647128093b0821fb38dba375264d40362542d" +0e9eb36bf40a1502ed8acb1df09b58d09b1c1389 = "8d607582f4254798f5a70e2b95dc11d31451207a" +16b3ab37d65f9e7cff2990031a1e385c13515609 = "85d1fbf390f3979d33012dbb703df3cf75895f3e" +368feba0ae66d9e3d8f0a5015fb2e1e05962a8f4 = "053715ee9ffd841a040fb6d1fc1f789d587d40e8" +3923f847b55fbff56d250f63aab754a2ed452486 = "40fa9d502daf35cb395bbe2ab22224b5dcccc6a1" +4b9b0221f1ad4dd8d92417bfa6eb91aa57611a2d = "ce73a340d3663a120e86fb3fb27ecf79383acae2" +514e083d4e44767dfca6c35072d35fe94333161e = "fc1ff152ed38d26f35fd6e0d5f39c00dea8d91ee" +6a8ee37d4326eb290f8e6f5ffd26f40326f00f46 = "8c1a389aab04841b3c955adaf459c1913c90a4f1" +9a5650177851b034d13a909a684d091fe6527b03 = "e35fe8e52522517ccb99c2523e02cf84511f792d" +a4dbd0d5b8f13b83773ae2c496778cc254b4aff0 = "e5499477a20ff1cf3693ce67738b3c5e211f9125" +a754b0d5e1532077a707208a95249df6f9c1bd29 = "e401430dfd16f8b843741dab1be10dec20d8c662" +bce3ec37684d503ba077ff57a41dd1a49510ce7f = "4abb61b3d56b8070d9e02d7db4958abf07232a8f" +d8ddb338042f54ddcc1f3ddb1a49d102909d69bc = "feae7bda6e055eae611961bc0d7000df891c88ad" + +[d427f087-d71a-5a1b-ace0-b93392eea9ff] +a5f466d6cdefdcb8ef621828f51e2fa0ec1e8de9 = "ab896840feaacf86f6ab1350056b9d4ec508fba4" + +[d4533929-f99c-5db4-a653-da41d2ba215b] +259b0f3a8677002b74779d881383dfb459653cf6 = "68376eb8aa93971f56d3e5ec11f03c3c9f0a4541" +79ad271aad1dd6752ac1d03c42a789d33d556890 = "a343e09040c3e1f5072e28c9a9afb82c0ec212c9" + +[d47e95ee-b316-5a26-aa50-c41fa0b627f1] +029421eec3b40eeac082ea4547c1e4d107bd6628 = "8b097ecd9c02a94d29fa41a18dd4cd460b69b4b2" +05d58ff0b1ec73e72c0bf9e69e67d89ca4f161cc = "6b1b22d8b0ae9477ef2fe91ba8e281184c501099" +08651736d0915ed28cf8ca436898616fc374a074 = "aa673b6e94871c7c3988fc1a71192c920fa88eff" +104ff5a2d897e8ecf30bfce7dcbbede50b0b3677 = "27033b5d1c95b7ca57360f493da706d1877e4be2" +14bb914611f63f317830766d70ae5c0ba137c3ad = "5d9e50c9428aa43c695f0372e5912829c80f5d8e" +1a87f6e72afc044d14ede50d84824f10c7303650 = "cf0f7e0842219bf6d4c332bd66060e2bfe3d9035" +1e0a8106a4a89cbcd1906180619e6e04e96a28a6 = "4aed06438a2b18bc63e8a5e83bc2293aca3042a5" +235f43c2bc0b2e7d2ff4527c551af748058f8453 = "bc4167b83eddffd61df22ff08a085207c750aded" +252d43707ff02debd835556b9a753cbaf90ef4d0 = "2e31ee7da09834c4b18fa193486ce8540e0a5198" +2541f2234bfd9d9757dddd2c49ffafaeb8782073 = "83a8fd1ae06f50de4948258bfb3ab34dae3976e2" +274d791957693e1711b67e6762cb6dff39854351 = "01af4f3957b912e856daf7e4dbea6a1f2e528e51" +2ed809cd57ea18496f57c79575b1eba5ebb2c0e8 = "733713aaf03e8de8ca0c96f76fb8adab003de957" +2f2b7b7f77451051bbd955e343f70f89654527eb = "ac6dab46d83fc5f50d88775d4bb76f790e9474b2" +3590139b84209df3902aff067a40ec3177c9f2c8 = "3beb19d71d7f62414c2fec75791584df454f2b62" +35f0ca97e38500f50a34c6b2e35a737fef50256d = "8312f0d6dfe39e83c124a6e3893b8c215c56dec2" +3708d517fe530c60c9a002b908af882e8697e67c = "4db1a8c4a944326f99435545091d9b905bc22750" +440c9bcdf2204d85e6dc31231eb0c8208756fd1b = "7f950f9c96821f2a3a2daca48866ad1dd62d6339" +4c00cb87594c62fa115a9c2f4c6bc4f005427c90 = "e64c5356cf195d35d765f308ce63b6e7b7077d73" +6e770ab3dda43906429fea1702c5218568bd7bd5 = "6b2b2ebf9a91e644818a4a650562b6b81179a5d8" +6f66a15a18c698f4be74eb304aa7f839c7026266 = "9c1f965e51db05df4ebd139cd80ec244d9a56e92" +74f587fcec9d914fd6dc526bd06f06a08fe55adf = "f2279eea4337b932a55d39f0bf428df0d4eb00dd" +971508c61f14eb2c9668047025ad7eedb07ed19e = "5ce34b0fb694b2d6fa5ac798276d1301a5b27a3e" +9727f696e4e69fdddbd65f12e093b8e9af9dbf0b = "4f7edc9c5bc002987b994c898feba1f75bb11fec" +996eda2d7ab2c0ab8e12b6b741c16d9e700a1707 = "a84655f612425fc881df2b9c0614bc57b14b0090" +9f2d6de2af2d812a023fcc78ce1c17a259f53f5b = "e63b04239ab313696fa811fd6c4fdf51d7aac86d" +a95837d5c22107a0cda9ad9914735e3210a364ef = "bfdceae6275063e90028ee50427f6ee27d6f66bb" +aa72b6eab2de59ebc456b79b8cd1eab548fd821e = "cb93c643ed26dc704afa52e9d0b29765af29edc9" +aa8ece51e8ed2196f4b05fdf7f249b0db2eacc83 = "32dc30119fc074ed914a3b9de4285461147ee75b" +b495bd91552d9bb4221266d455a9a112a57f3b3e = "d19a0f0d530057d1821da0706d494e901feae6a2" +b7283bfaa6370d4806906671d6d74e3dbd4e45d5 = "cd6665ef346bfea28c4687b7bf87f9e97cc725f2" +c698e5733fd346e0aaa3c210ff41148b119c4fd6 = "d31468297df33ad656ee35121a6b4072710e1169" +ce851c155daab0648432992d94120dd24d49b594 = "2297e39e9b44e9de08841618ca880f8bc4d54c54" +d66a9b2eea8a81af1c593de70fa4e6947580dbda = "af13edfee270793f633e526dc54ec4ce72050000" +d8b2eb77c64f2419238ade7d084a3e7719080542 = "1f86647ce768818832319ce7b79cd6a54a77bcdb" +d9b11712812af56afec5511cdfc24006360ed929 = "513ad27045a4fb76b108a4adc4cb6757fa97c6e1" +e2b31411241d5029171207fa2a6ab78d03d56caa = "6248edd636545c8f1c734ff309e406c8dd9694fb" +e465d3f83d896dde3010e249e6946606a39b8eb3 = "0868385e84d1d7a70bda38a315609b710b1bb492" +e5190b02fd609b2723f3305297f233406475f251 = "d876998272a301761514a696dd9ec90b81a1d11a" +ece8236cb32ca04fc6591b4b633f5310eb8ffbbb = "328ed4f8205d26f327d60d68a9626ddb681e0cd7" +fcee80b34e30f76af35938086a84a2366617147c = "7c12b9c8bc6e55978e5e119250e537aea313ed8f" +fe85c6e1d1bb01b952f5ee72996eab93b9e46bda = "22665973c24b89734589d5dfddd4a505722733ad" + +[d485f30e-9291-59d8-a5eb-38af4ff24c29] +1acfca84c5f93edc096aba58a7decb5ab2b388a6 = "49fd7cb6123e4fcc7f8308d95b2c7bdc2d2a06ff" + +[d4b2101a-7710-563d-8e49-77b01dd33fad] +00f12dbf406667074a8d7b2570fbc5810bcc4b07 = "845c3871014f2764a0d78c2399a0dda441df11a4" +05167ef046a3dae4844b42e2a87df26fad1f7f5c = "40aab5cde3b6fc8b1facdf20b887355f0a448880" +0995856a64b92b40841abc4cb3753a6abf4167fe = "280bb31c53ec52748db416599c6f6f4c96f0ecae" +0a29c0d789447dabfebd6e9e2e6915ffac152786 = "86cbe755efc43e8c7a4a5b3d3c60c8613e2925c4" +0c530910eb829c99fee17210501d093a882cbf31 = "0974c486a396a41eaf32dff769512a798d3daa78" +0f5bb25c934cc00e0b2b78de5a46615bad386234 = "31591bde97efa67105324c6c5fdea8ab107e53a3" +0fd60f17db202cf0489f12092d7e229464dcf3a6 = "e2d185dab0a223f97e750dd6540a15474a2025e3" +0feb70532b64d106980ae60190fded39f216ca13 = "c426326f4169b8d27842899104882d88a65b18ff" +0ff2cfdd971094d16a5ed7b83066850cb2d3c43f = "5a832b8a5d922daecdc5f0b455a07e86d884a591" +133f6abc6c315dd60cda9bc93fc55aa7fe4ba693 = "99dbce10c47cacb6873f1f6b60dedee87385923b" +14cb19d0b4348dfb5b5c0c1714b6d7a5c6639968 = "a066ada3d47ced8986fb80515d2d1f60ac16ebbf" +14da1fcfe3f079b77dec8a6e170586022f1e2e64 = "d2950b0d4769d0d787d2c8cbe88aec147da6a5ea" +19b3207716456333844b0e57a9a00c3f7db04636 = "14d5fd06641b5e568b6e337c10fab93cd8ef4c87" +204222ee5245c74f5ac02de35886a4b3cd07ef84 = "3539c41c8b6ac6ae80e8529eddea0350cb7e96cc" +2055a76835a9cbe7f2f75882796a84f8433aa3d0 = "73e51ea26824c65fb02289ba5cdff5a10a0e3c15" +2063c0e2237c98b7eb6ec13f74864c35bf04267f = "5d92cd9278351d2e17c7818a6f985ef9bda6d762" +249c2b460ce97a1fd8be8c3262992ded618ec704 = "d421afeb1fdca944f579833f9b2f643876a85087" +27f57d0b68dd2c2a9c8fed70821ed8874fb694f6 = "87fc14930855795c3f4c706d8c1ff8fbfc02c0ff" +2c23172a713b816f7fa992aef6ac0f88eed1a3d8 = "2053f0b64771a8883845e203f723cfab96f734d4" +2d1c5ec56fb95854db6e6777d51c04167d942409 = "c0946b39b9c64ff938df063ea681f19eb817db47" +2ff3d8ba7a14e4ca548192d94afad0110d7d0d42 = "93ad3af0c6be45312e74a7184d0e2ff3bb234e01" +3150eab30f7589fcc5ef9a231d1a746aaa3788f5 = "8f4ed1d13b59ddc2b863d1ac8c4e65412230884d" +3447388ca7dd037e9842650d78bbf21aa17fdf8b = "ab4f78f465d8e9e676eb4832b8a1697d7a6bd949" +3870bf1b1d3ce4b8d89e927e45943dfde23b2237 = "5a784b9976bae53c3d190e35780bf03211ea021d" +39633325f1d553b3973860b766e0690289280191 = "ffc08d7e3175d863db03ba131f8c67a3c8d8eb42" +3f023145a05551dca95003a43599b64a94bf3ae8 = "80a564a03eca051290fbc2b693d5497c9e8b764c" +42f08938de0caa6c7807e55825c2b4c8f8a62975 = "dab06de8ded0955fe2fb05deacf7cdd464b30462" +4512970af3fb8470fecc1f1e4df39459fc216c24 = "dd27d3ae872360e7540c263e89bb7c10a5ed3210" +479f257b16022a063cf1ba93538bba15e104c9db = "7227fcda85dd0ba7caf5caace2fce94f823999a9" +4a867fc474572fc7eb119af42fbaf59a016d2ded = "932a396f2cf8b7803872620471b7176500712ae4" +4ae660e0c414ac283fd2bfaa8154a8a9a5a4b3b8 = "4debd0edfdfd899d0a365ca4cc6a0241fea94b2c" +501cd52a902322dffa56e24f4812bb65ce3147f1 = "7af3b19ac459296d6201af2234433fb7769b18eb" +5b4debd38964080c9611f005c1625b0ec881c93e = "55e6d3e151fc4a5bc16207c5d0885c4ad9a2517a" +5bfbaa3173c871819b0977774ac7f0fc8c23b4fa = "f38724f964107f20da0d51490848f74038f6f86a" +5fab779742aeaedadc1e895b6af0de4db9e207c2 = "3957038ced3209d40498c7a8f3de6d9e5c06b0c6" +632c120e184f055fb62e1d29ca330a45739feb4f = "a7d144bf259931e67bc5e51018f6ca2bbbf893af" +64230dd31ee96531fbe9d3600cb230d6aceab137 = "705804d6776cf98182ef0230523c0c305ed08f25" +6698fcf6efcd7296d213c5dd1c2789d23a067f32 = "43256c6d430b6405fd4ed0186e8f69a492f854b4" +68302a40b8eb9f85509da3e6b4020ecdec50dfa3 = "5e9ce30813dd12f50a796637ff26609aba204a32" +6877b6fdf25dfc428804b4db44c1bcc76a4b2244 = "e342de0dc498bfb1a0073c29a799cd4c91e29601" +6904cd5dc715b712dac5d7e0e4b746af5bff956b = "16128cdec4e57733aec6b6214bb56d2f8c902fb3" +6c740ec8b7b642781a42a948ea517fd76757b57a = "af784bb553b0562ea6f57e1d434e2f8ffd3942e6" +6c9afe5cbe8458d679d9f57a507866d2791250fc = "5b6f2915a0f3adbd487a6f59aae288d3f0ae4813" +6d6fc881e8b763d3afca1f895c7fd3753d78a68f = "6d00188bd802c2810d7fd7660200409380cb3bba" +6f26a99a4f3339408f5b8c67e3861cc542584fea = "7404fcefdcf93b5ecabc9fd3e217fcba641c5763" +8a694b0944dff2abb1b0f584f8f3508e0c6f043d = "7cad8b4b05290d1d4dede47efe77ba95d1abcf76" +8e60bbae5bf4afe497f869623b2300b797e95727 = "18a590ceea822890c63c9e7f596ebe8a8df1d64a" +8ef144be5726964e6aa467892b86fc647eb882a2 = "c4bb1112f29be3367df653bdfca053dfad16e6e1" +8fc29bbee7feb8907e48d4ec7a554eb017fa1bda = "1229c54d1bd596466e94db3335a1b3b8babbb8e1" +906f3fee95a5ff2cd9a18a5e6fae953986051480 = "c81ff76d9b353e17e4b9bb8579dd34cfc5d409d4" +914126865e0f3e5dead5d0d01b1c01d8c6b9ec9e = "72f8bddaac5226e05b8aa5e366ea0e249b1cffd8" +94a1b1e75581804395ef953dc9018373bd02b7fd = "5e0266358e1a00918926b56fa97e59911fe74e89" +96a2b04c2e390fe1db18fecb2f017d6bf98deb09 = "4cc46d7e97d1ea88d8098c8e61cac4692901c491" +96ad1acee67bade8709ab857381791441a35ec66 = "9af80f0778589b95a812bf68e827e6d49eb616fa" +989a21745fb2e22fe28d914ffc65164b9349ce7e = "70aee3a7f6e642ccdc24eaa0e86cb6df8d4c87a3" +9aaa480e088acfb6c29f8ff036552a4ba437067d = "8912e7286b8da84904aaa1c0c7226c6f2cf9968f" +9cb750cac59b93a3090f265d09e95277906e563f = "314b96546fc6ed09afe383919f162218647df9f4" +9e76fa0cde0fbf64fcbb0667d3ed59045961ff61 = "5cc2ae86e4062a8f84ad5a7c209c673ae8277f74" +9efb3eebbaac24a6546982b1e9b9f8f9e41416ce = "8a58bc3d54c73d37b5b6b4748a340d1168089781" +a0b351c7170f0baf343c5b52c151a7d3d47d8c6e = "5d82b648e6644a04d50954219b0c66c29d602f54" +a16c6cb8d63fa3360dd9a72510c9e2be6f3c81da = "1d450fdc4d714e4dc798726af32fcfa9bfddcc1a" +a17a7cf9ec93f5b94d3305e25217965e478d1607 = "54a5988c97b2b427d3ae5a7481bc2673b27cd53c" +a3ebf2c295463e0b13246a432d8c579dbdcfda97 = "a80d4d296f6f55fd0f89149a2be2dac93a729d44" +a87e73c99519fa04cc4e29ff10769a940cb599f5 = "d584c9d1d0ee9e163ee9f91a586160723fdc32b4" +a93b577a43c48f8a37d235dc98ad9a4649d58dfa = "c66ecfcf084a183bf371838a1ff4897bcfcd6dee" +aacd67dc5208c09f61d45c2eaf6a486dcee4ec91 = "8acbf33ffc54603f6cc1499e0d347760edf708cc" +ab4562c0923e2ba2ae678845a38fcef0e654eb4d = "2677a0469ddd36e9b87004508c01834dbf6b4584" +acdf0fc473830c5582e9ebbdf6224a47e286fbd5 = "a0783829be83976d949918d8cd42351792a04217" +add0c62b4742defef960c304ec4f591bf66a8df2 = "86d121cd6c2b452cf1bad0fe8384566feb965e61" +b01f14c54d2b0c71fa1192d2d3acd88a04c556e6 = "3d9bf3ca1aaef9a2ce8f71e9612c76c252a8f743" +b8eb4edade8ce6606826c726ddc98c35bd9160b5 = "f30f53e1be74c6ebc09a366b5c89f1f3a8db899a" +ba6faef67425041b8c5184b2e30a3a9988a7c0f9 = "4273b8137b2d7343a80104f9570119a5ea9e15fc" +beaf2af7e57e5b14754aaa460254e578d2b74403 = "d35a1a2883de0aa8e5b4125c7d84d8894d83b8ea" +bfb736a4c69dd03b8ee642b934eac614517d7178 = "8a831f4873faea90b4157f80463ce8396cf0ca7e" +c0072ce871f40da9db11f3101e47f1a2b650ff98 = "d4e7aaf57185d58fbebfdec0281a0fc72e0f5d5b" +c12e393a8485e316ec105ed4bad198e1adc0ba33 = "accd10e4b19cbc4fe39fecdebcd01c434d0c853f" +c24fc48145663da081f0a4f63417d3bb5851e7db = "7fd6dd31492f4efb54a7c76aaa6c33837cdb870f" +c3aa6a0c084f00316f5819dbda1e02d5ecc641f7 = "4c8dae9b2494b29d29b270f818dd4e44cf4bdfb0" +c455c6a56a07b72967525b09d997987623c19428 = "e633d94637f0831911d44ca82c5a8a00aae4cb53" +c4b6925cc9414d22688fb2b18a389d4fd98928ed = "f94e7e92b2cc840bafb0140775fb8e0ab812af04" +c634c5ec12beda4661eb4ce5d0c1334e0a81cbca = "834a02a40126f79462bd05a9002f3010fdfc4c1d" +c6484896967ee2907f9ec28209ab74da3a1326f9 = "b732fd6dd694a85d83f525dadbbe81e93fba18cf" +c6b78123b0dda63261a8dcb36d810514b17387ff = "ed726a3b2d48c2ec6617a20128251439cf3dec6a" +c7c23b476c30fbb33c84d0e78fbaa27814db52d7 = "28da4d17604360677c07a8238ff5abaf15cac6d2" +c97622be5fbe1b81ba8120c162c59041dc4064d7 = "5ad945231748389e0e66180e9031d4b7bef5a063" +ceaf86b2d7a02554b670d65216eee42f3d3151bd = "a51edc17d541d4d51aa089c6705f92ecc255e0be" +d19a8bcf0ed8bfaaea447898c64f53b596d23565 = "aef959ebc4dc38234e16e3620abfbe282f41d81f" +d21e147b95c3b0d92bbcb8c7347a86c820b7e59f = "fa95e6ef4580e9e754e0874cef5cc4d5ed06e59f" +d2fc57c8a5e91212f7d62cf04d1361c82cc16582 = "78940b8a7dbf9d5f9db6c363d8b70cdfea30a983" +d334e0080d87d480a748fd51a7c392378d664dd6 = "78d8d58b1e5b47e8031d9094a02a628817ab47ce" +d6311fba3dda9f388552b1f14950e723debe32a0 = "001e59bd94c416a30862a4844385243bcb3156b5" +d8e3508d5fb4ece082de86cd1eab729ddde6be66 = "6683649f914642a583c8640aaa2148d669e2f77d" +e02e706bfa731685840946b0bde26aea05b19f19 = "86f69e86721eae0d2ffd8bda09a8115a2bb9d17b" +e0502230e4035ffea48f2721b7eb4056cbc61e9b = "c9392cd73918c023d0e8e98683fd68764d3863aa" +e53b41afda55f9fa2831ce0c763b3aa72912f6f5 = "ca380790ff76b367035385a4f62fba6a281e728c" +e7dbdbbc009008b61a79201f4606ebc8a42f461a = "80bd7262742c2a27ee02480b3cc024f76cd3beb8" +eb6407fa944217466fd9417ae29da3192b83dbf3 = "97f025d868d332b86acb2715470d843bf4cf6625" +ec35c2e39df980867915d984809272d611dbde8d = "0c3d57276bd3e49e47ccad8a4a9eea99a29fedad" +ed3db0dab6c2f1137919e16fe159fb1da5af9392 = "fe4aed9ea57a93bd7f8aa2f4df36e622369665d6" +f248d2f81afc9f9d1053ff837bfab3b784f5ae18 = "a1fb8ca9430e5a94fde5d296f75569d1e1e8cf06" +f4fcbead76570b980cdee5d19503b08889f32307 = "9724ea5fe2911efe0e57025ea0524e7cbee27fe0" +f819bd30eb57bd5eafbadd3f1c4794bc744bb0f3 = "aa4166263d4ac944df56d43f576ebe86f52f81d3" +f8604332a5a4c3f333cd69c4ecda613a1e08fc4a = "aa4b57b7cbbd757884914cd40edb4aa5efeedc9e" +fa37a6900fc9ee6a7d5324d6a622a814a0cc25bf = "df079dc5d7878d76635c821c9668fd32272524e2" +fec839aea2f7d7effa10b9798a675876f0109ca3 = "51c55e2cd2729d3e5661978c4ec12716b252f4e4" + +[d4b734c2-cabc-57bd-991d-11b386a60271] +29ece42fb6e0ac6677c40a0b6105962b5a6d73c8 = "c0777ef75ddc67b39bdd2a9ef857f7cfd06bd7b7" +c6056dea665a2822abc0a0645525b86fa45027fe = "1ef13483fecec7f66e508a8c98ab3c199c22b972" + +[d50d9232-525f-5d35-8703-6ae49672cafe] +2d4d3ced56eb345a890e8083c44b1b4ca3a2d724 = "72282e9d3cea974e0038a6734f8b7df6ceebf1cf" +38df34da5af0d341aee2495cd53a7701e448f9f0 = "0c198da47987118dcfa887c8b2c9aee76696377a" +54e9a90bd5b5737358a327fda70abc37809d7161 = "cd4feed805d7f7475a6193f61ea47d1c5225b690" +5f4188289d0aa6b782ad6ab94720198edaab0d46 = "d04b7d6c19caeef53b13e3c8310d86b14b01bf2e" +6a28cdb3757463f83d36fec5d01ec0cf1189d3e0 = "d3d07bfe798cbf130b2a3e78871849f6da6bb6f2" +957925524e3fb67d20a28277673ea95e7b62e731 = "a5be02a9e4bc0bf4770d7167e92cb5ed65976ca8" +9d1febd0ad911e25706ee728aa3e425b14feb816 = "c2c8630e659dfe00df4ffecceec51419fe11a33b" +9e37c18a03cb438729fbaaf3eedf564d4f84a2a6 = "5552c8dd73b7c465c6a0bedce97310fd146f2cdf" +a493c5470820e86a1ecec8cbfcb2298b733112f7 = "3cd14a8a8d8e2a75e9a9725d15c9c363d8419228" +e6ebe0b3ce77b6911b42714ad2dbd7ba14a40833 = "bb0d95739be4c92458c0ebbcb6fb90bdaa8e3a27" +f9eb111954459c7fafb337524c5aa8e30d1e56dc = "da43169827c825e2b05e4567ad8345028c3896db" + +[d519eb52-b820-54da-95a6-98e1306fdade] +1fcfa6e26904e200d96e49ae258f8ad8d2391baf = "3d492980f158d808e1e3c9db577e47271ad4c1f2" +452290d4151675a4b13ba1f0e0fde9b604dc3411 = "ae31582928b3c16a8ba3685825a596f8ea02f471" +d2ee6743ec924c8df41398b88c80b5fadece5dde = "60a2a10061924c1d770473a44181a8f45054870c" + +[d54b0c1a-921d-58e0-8e36-89d8069c0969] +1ddcb87152be26964183bb6db58886ad1303bed4 = "a8574184854ec2b22454d6075cc7e26ee0fb5615" +b7c046c4a41cdd09971d3a9aa7fedf400bf19c76 = "d48e0c194d407f2075819311ec120e7a217185cf" +b8941389afffa620db36563755e219d3d3903b70 = "3eb1a571139f6227693349f61d9d7ee06b73f3cc" +e9bb482fd8cc5032b6692d843f99d3de4c8e93d0 = "57fc4f5c7d084be2ec90177aaf8892ab686ef419" + +[d57b5e41-28aa-5897-8163-4bcd89186ad2] +003e380eeeaee57a2e84c950706fa4b5a646bf79 = "cc8082f741bd5b1c8b6ad256f08ab7b8da0fec94" +4f3eaeb50d7a23f41826695d8a0e3fd5bc1be72e = "fe67aaf96b51ef5a6e9a054738ef453e00dad288" +53a1a4558bb412c2793b736c0eb5cded8f743957 = "4bb7b151db0f039e72823abd64c7e17c31b4d94b" +5bb4c012a7efd6f24289d5591f55a844d74b336d = "e6a97a7ea7a1872c4525205ead759f8cf99927ff" +5be338cc71c39c3a5a9f202321c2fa9fbcc1767c = "6d38ad8079943c093a9443c3930a32fb3d1e591d" +727dc740d1fd1e99e62817ce2955ab15f9f3051d = "358da7770c7310a4c391191b9eba4fb1b9fff811" +7af0399aaeb46fabf1b7e8212edd78284e773be9 = "9e6a8f76e40510edfc50527603d0cd1a820fc069" +7e00292a889a374ad29b99e7470a9ed1a3c32f0d = "4d273c3159858bab64f8be1fffb724436eb25a18" +91c1e755ee1aa6f758b48716426d9f71dc9b2010 = "1ebcf88a5be0eb176a4247b7765d706a0c4d556a" +95cfdcf39c61b3d769c04a583443c44af971553d = "48b77733b33432877540f923173dcdb72240e9b1" +992909a784ea278aef15990cb103e9bbdfc8047a = "2a507dd604e64a492fcd0f154d2d75e065e7e932" +aa6265815b407f08f72aef9420932470ab21f410 = "d4c86fb09d870d6dbe4e9efe9d557c76154c99fc" +aba9243b11a21e7eb77b0eba2fd16f19414b62cc = "985d4be6323b34315321b043e44ab1ad1d1a4a8b" +acc648923bb9b044d3e75e85de5802f9f44aef3e = "1b5d92fe8fa21744bbc7d127ab991c0dab63fdd4" +af6d35afa7327ba89733b9b3841b842a37e1eec8 = "ebd4706a07d6984036e3d41f7f877645a5326398" +afac42751bb1ad67b722bf62b7eb013cb65beb58 = "79acf73e2e7325b4549407712dfbe657feeb1a0c" +c764d72be8dac01e4939715a9228a10de9970ef6 = "04d49c03240ce7e6c53d8ae733308b59f3b96cd0" +d60866373873cf23f22908902fa219f8936ad437 = "ec80ca0873d3ba116c172971fe030645eab5bbbd" +d94a6a2693e7dfbae9dc6f3f4f8785bae857745b = "5c4aa8910c0c347c8b60e3e1f6d1277611da7b57" +e5e263cdc04bc06cb6d1d4d75e1b8495794d8e4e = "9c8fc23a029095d1c60e772acda9f2ff4e7a171e" +e899213d35bd04e19c4c0d3dfc14307ccaf39074 = "17bd5a8520d6c779f612c65b57f001fcb06a7120" +ee74a552261c7a4c5d548dc07a0a2abbd6eb179a = "8497998b77fdf0bd0cbc2856541781e0ef1ef3ed" +f18fee9c2c76eb228d962747b2d9da83092e8ea3 = "dc1986e6c6fd49f67ff2a7a2b68555b32b82a16d" +fd2f466b0476fcbb417ee53e0983140e1258328c = "d66877baf18d802a3bbfc79854cd4b3437c54d28" + +[d58978e5-989f-55fb-8d15-ea34adc7bf54] +09f122b70450fdef4a6b9e40329b3570a8a37715 = "49d721c0457bde93ba05613f4dc6c4903450d81c" +29826cb29d42a1ff7457c18823266afe134d637e = "a17047a008fd17ff7d0c31985b380314cd555410" +5328a33d21dc70808aea66fe12a0a0f003b38aa3 = "3ae1f1219b45220312a7020fc63155cacf3bdd69" +5c79554b3f935bc9979b582f6ba5d5d6603e20b6 = "c930286087c4d7907083f60e879f3ac97b2efcd5" +6a9054bac7ced62525f0c48e6825cbf4391c45fe = "94f78692b60da14cab93bfd7e1f989614cd77e82" +8a55b5250c758caff1541089487072f11222ac2e = "962856c373f30490d2172a7ab6f0b7ebadd7755d" +8f7f2b199483b049bfb44c856eda2840cc108695 = "2396ac0b06865a6446b02c04b5f77df6d32ff769" +9ea33089b9659c38f6d4b6e32604f7fd4571d143 = "a58a6b7f1ef50301729f641438bb95a0e2b684fc" +a5c8fd1a73e7b4e830e57be968b55a960b7b419a = "20b25ab512494999413a87da3d695fa8c582ea74" +d27a967f647d3bb55289b99747ed9c83af912920 = "0fa9e30f49f98283f1b027d365b8e159820d4784" +e3251bce6b6c78292b9f170dc97f84e95e85711f = "7829b9d410b4db855877a5ab3fae3d1742f2a77d" +e7187cdd9567b21445672061c639f56b4610a2af = "560e4a00a28f579532eb25401bed129608e6e649" +e74a064884311679b1349ac15e222bf96a8d1321 = "c296fde6430f385ef219d9ac72fb8abdd563f062" +ef70d95edfce45f90ea07ab4065fa01eaae0d8a2 = "080a641e172e48b553b1c76eb7a435a8244a4ac5" +fbc47a945ee3c18ed1c1df44049c45d3541d1dd0 = "bfcfba86eb53cca9ff2539ca310b01f217fe4acd" +fc4f5bfe7f0f997b9e5e6fcea86bbda30933c443 = "b702f9c98be3cd7546ab8227920584a0fe16cddf" + +[d5c6182f-c531-58ad-a49f-b21bb0b0be5a] +5b835c88bec95057ff7083ab9b7658659a0311f5 = "b7cef58c3758614e8cada68b9b728b6ed7ed9280" +96b8c2346633079ab6fd3318ec4bafd9932c2ea1 = "8db757dc72aec3d0ce44fba5defffa6c831914ce" + +[d5d29a5e-d8a6-57c4-9e60-9d46bf32806b] +5f2f88916866521f0787b88f4a5ea28b5ffad07e = "6598023cf8bc992b0344c165d6f415fc9cc5caad" + +[d5f540fe-1c90-5db3-b776-2e2f362d9394] +5f383dd17709bd8e61324a5370c07e75639cb504 = "dc15ba120c750f1ef7210243794b7d3bcc03a7d0" +99faf1fe796796d06d9f0cb055c3b95d01efb7e7 = "13fa2f846e923bd28115504ad041d3a9c2bd04e2" +9f2fcc67cb817da80cae810e133afe42cf8a1592 = "b20dfee859219aadb5dc8f25190212a25d36173b" + +[d5fb7624-851a-54ee-a528-d3f3bac0b4a0] +07bd4de7d5c3b6e498229bf2288a922c1967ae89 = "0432c421ac2867f64c1af87a06d9a881f396cf2e" +177682192a03af0524774d07b11935bdd3bc18ca = "9c6689b7fb60b10a887d0aaee1abd2dc189591e6" +a221743dac513b1c852844af8d596458fa4d1bf4 = "6978cf6dcef0f272cd06d74da19eed9733719173" + +[d621b6e3-7715-5857-9c6f-c67000ef6083] +01eb85e5dd477dec93b50ee892c1dbaee272b997 = "988a830d3a29e69b1fa91a08fa88e7902f731f37" +159495d00650043511fc2d5c23fcced242780e2e = "fbb665e47ea5ae6c7f9e902182a375de58dc37ba" +1c0b48fda03132b02ef0550cd637785935d80eca = "193bf2924fa4c4dcb409fd8535eefb6af37212f7" +1fece61e7d9c97cc48e824156e9830201ec6bc8b = "4383d661142900e0c4f72ee5e8cf5e86932a8c8a" +2e2f492a8d7fbc03cf55473fe4ce8e377ff422a4 = "a1ba030325b53a7ff4d53f2aac34d00089ecff97" +3150bc695da375771ae235bc492df6916f5db61a = "71ea91f779cdb0447e353aa3855b11b45482c58f" +390c5e4bcd5e50762d30192ba7a9ec641b9b7ddc = "db0886c03d90a85166fb8e5664af7cf36ae19636" +3f722df01a93204d9d7990749227bd3520db2780 = "8fbcae033d2d108781b7be2d58e993073696dbbf" +45843133bd2e074be228e702a9a7c9b55e031efe = "a04cb554b9b850877a535c96be78066ad563afdd" +49ae22510c942f2e29ea0430ea9a919e4b2741fd = "c823406e16fb7d07070ca3983180aedbdaf3676a" +4a3a07c2c840c7a4e235bb1d2ae62f76a149aaaf = "fa6f8261e1f97190a2bd8f958c16d62756c95eab" +4ad8f411678c0b169e4cd6c6e0534eb4868092bb = "7aa4ce80388956e324176fd59f19171b279576b3" +4af546dc3f194e402f83517b299406701ad19592 = "a1998dbe1c964f98a648b39a80c3fb4dd75a3e1b" +50eb702310545f5e02e97e7a80b8d83774163396 = "feda6f6bab1df19fc92eca90e4e3dea467ca2a92" +67f3b9aa91d20743256bcd841d89bb8b6b5b4920 = "9d167da2b4a17423735eb76ef28c5757de04981e" +69c93553f6d0f613a22977ca2d7815bb3b4456b8 = "2b206761f32891d51efde0f28662e2d3c2d6a4cc" +a64e94873f0d812afaf8c7c71135a513783c7eb5 = "7194e6190001e50e002776f74c6bb2bfc86e41b2" +ad750daaed59d9fbca587bb0d4fae560d0f3131d = "eb62c84e4223281f1ff90200e351ebcece34969b" +b205150e3cfe591ba0794b35dc8ff055fd96d59c = "cef2fd736a552586b2f16f725559d361f54644c3" +b85d1550529839f8adb8f960d755e00f3f001dcd = "f78a3155b1cfd469c8d6354a95bc9b7b081deaa3" +b8809dcc0ce9e63219cfd8fdd357c39b1ad69efc = "033c35a5b0a0adb4c376e000fd6edeaf17783885" +e41f2b05eb04840b535d3848ff4bd6f058cb6b8c = "88497dea018c590daa59608aba85e6b7c10a6bf0" + +[d634bb24-9f65-5729-b08f-1d6346c21787] +b7d5db8f91d8b6bced1b23cc20f1932934a9b06a = "5f90a1c5e3273e701a9aebbd825f7a1853d2cccf" + +[d6bdc55b-bd94-5012-933c-1f73fc2ee992] +06f54d76a483d12543e97aba1a720b39c7f6a527 = "5800dcc6207c2798483d35c102d0cfb51a8bf658" +07739c8a35dc00e3c3c15e61ee23d21de6cd466a = "712d4133736c67c7369201c0dee4f67ca7e07a1a" +0bb2d82380f8efb0edebda1e3a40a9ec88166fde = "200fdfb4781595bad45e9099ed76396aa23604b5" +0ece093182627991004754b21799e99a6c7a352d = "ece9b83a51b43ea0cb6673157e1c0b2fba049790" +177d9fa01897ba77b775dd9e825de2dc45cd5d99 = "7c19324f1fb68f3c8b78b0f112acf0af42eda146" +18f8d4f13ab844c17f6b27544502a53cfab773e1 = "e9b2334c7e66d4eb0a6a4571d27ad5f2c540d3a5" +1fa56b992dfd186d2c154fb994365e93c1761292 = "d1ca00eb2564fb8e2db7467b579cb7be369cc711" +1ffe5a11fe62dd6e9a1c0bfb906d4f35efdef7cb = "a7d22ebe25da8f7d648b2c54fbf68bed713c1a44" +2299349e183594e916ced53e2e6f72e26cad09ad = "f66bd48dca4dceae14163922d6275ec2a1cac987" +284939efd1b90c343ce113cb14a8ccb069644dc3 = "a98f74d1eb610dc0d329861ab4dc8c76f57adc74" +2b348784049e976d7bfae22a3a370efcc14c2553 = "59f8b952c4729174a8e88c62636385757082d148" +2bbe89486d5f93865950c13077b47c7eebc78a5d = "9cb9f0277cbc5e1f23c8fca1d00f5fad94d644ea" +2d825dcb650301b57f3dd1cc03452a96a15ec8cc = "44f7a0abd94f6650821ffbe602e52216058bb772" +2f7d2758d2bbb9123daf390b23c228ef77135286 = "54aac00ea5ef498c80f4f0d437def94e572af8be" +30ebf018b309c8036ef9dfc8e1629d9669ff6d6d = "b86c3fb12a9304dd405815dbaec88c6f95389572" +318dbd4434cdcee188d3d52a95a727be611fb859 = "8009288ce721363fff78a0dc7f522ef7a8d12d44" +31f0460929e3b234ed7f8b8a1ba71a8e4921c944 = "8ef614719dc7a254b862b945a759b5760ee7cb50" +32bc98931003eacd5e49c0d04ed4886afce980bb = "0aeb4afdebd7bca6b6ceaef0ceead577b9651a40" +33972a533ee3d937047fc88ffb300b97e8e27db1 = "82cc02460766d4f41dd81e88efb8b1163200eaa6" +349b2665673e9c6522092a6b193f1c9a7ea9992a = "576893efc9a4daf0ce8d5b34563ce3cbff480aa2" +35595e42df586741ebd045b25288ccbfdcfc0755 = "3799e9e389baa3bb6bb365fa4aebfc9b9f8757d1" +3c2d38d2965d505a90e9f18b05518447250f9638 = "d1af310021215162c634520384d18d364973a657" +3d789ab8476da74e6d14d73dc7e7d433af1420b2 = "384712063c0c2e8700a498e45356e3e3ee5fae2a" +406a56f8eb3c73d78bce3c4cafdfa61a550c9fa6 = "e1b8e481f60f917ef588dcc6cf18640513655276" +4680ca7b42d1cdb8ab8e702dc30a2f52f0f22d48 = "f38aaa4782ae21962b3113d4ac7fbc39564c32de" +46ea00ed808b720ffdd422897d9681e7dbdf6205 = "3d3158db7d7f9b7e57c20f1122b6e721c80c9c79" +47584fe03fd235b4dfba2d2f9db64595ff05baff = "2d8865624297d2ba3af2b020eb602ff734f2ea79" +493b9eed78de6a9e10c3765b7bbc8ae9b5fd68be = "296a53251aa23d321f7a0c344f28b778c3e02bda" +5019998ad297292a60727e2bcf2550b7577aab0f = "a831a76b2adfdafd5fe324a2eea88b365fec3995" +58fcdea9092236f18fdcb15fe9ad14f75b302620 = "d7ca24bd03e5b832716a36860d41c698a9c12868" +5a46e13bbd1ebf78e83fe030236e42aa2d5fc05f = "6f870ec09964abaf19ba6f6faacac5c4e3da7d5f" +5b8facbb3535266d09e376ca3875220de7bcc821 = "8ee1b9bd17627ca0d47dac01d478648a9b73f56a" +5c083cef1ee3837e359195eefefead73e6a4019a = "bff0968c3903f7f82c5297c9744f8df90cb8e960" +5c78da0e190760e49b927d1f08d5f99cc84913ab = "eb7dfbe0ee28402d632a32d8b1263249f441a68c" +5eb243362efd668b56ae398d281f5ccf529a7c2a = "82ee2ab44984ddefeb2fbc5f684660bf4b366979" +67093eb101f9a83e3873ca95bd2ba1f1657bc736 = "40620dbecdca6fb39c43679c9b085904ca16206a" +679db41f0d044e304cb862cfaf50ade188c4dec7 = "4bbe16e2ce7d4dd40b2f12bafd589852b128d663" +684d42ffca8ac817f362c1083c1ca92b630f3eee = "346f01e0066b7a14deb5ec3c0934c51483fa4099" +69699c198934957647bff0abb2ed8d5910641987 = "84d57b47fae000e713beacd62153dccb28112731" +71d6f8caadceeecaf680719a816f3de3d445b5f1 = "6bcebe66eaa2248c0b9b698af8ddea5c2da03562" +7895518216d19cb3660ae65d0d4ed81cf18a2eed = "96fd23cbe2afbbc23d57d85f8a65bca36102d206" +7ec7356b1c709891eb36c15fa82c91f8d8a6ec21 = "9f3b6e05dbb8d2c983ba7ebb74428b39e01c7448" +809c73984cc4b7a65918264496feb478e041812b = "70300d79bac9b10f0174670e9f4fda0ff182ee7d" +870186bb8c73017707e8585cb9773bc486ad3490 = "fb89d0ab2132bb33fa14987361ca1ed42a03ffe9" +870ea0b070de51be633cf19f7979f77f5834760c = "b9aac8977f2891189f16223fa85a3e965ec8aa40" +8825bee8ea8c96406526c1b67345f42ff5be7f43 = "bc4ace39661ecf8cf82c7d27a4a81f252403f627" +89d7bd169891227560d74ac90da30eff85b198a5 = "cb34b790abb0ca60408d9a57921a05e8998996e2" +8b46867fec672360a62fc7e055929dff9103883e = "fb3cb2281ee7eed9fd6aa41ff70ebe302789aaa2" +8fe02bd9b4e51b6edafeccfcaee730be08bb97f8 = "260b633322835db4803b97570c541a7db19a00e7" +90760f55f08a253c7a05cdf9086d418c1c24b21e = "34ae301978fbba3c883ac431e9e1e47eedde6652" +9261d79e3091b06c51aab46d326b7d28633ef92b = "1c06dab1284f1b97474bc7feeaf05da4e1846679" +95643fb0a10e36fa76e8e51d0ca8a90d81d1d4ad = "09e64de3ef9cbc071c91ddb6fb8b0b61d151f090" +97845319c5032002f5a628cb4974b9c439a0c138 = "cb4e2080defa35f98acd8f193b49e3031052a4c1" +9aff5a9b5757090ec4034d2d248293940b948a9c = "14d11dfe16522e86c46995c0d10933c50254b9ec" +9b0e19c74e34232c2ed6f65b63639ae05d4eaf78 = "1ac26c845f10a93b71543379c999b7b9d4272295" +9c4f2a40272cb906533e82a1a6dda64fcfaaeb62 = "59ef05ddfdd9c604cd27fe2bad68cf557463750b" +9d599594a26e3a9e968e1542a7d1cde26065b998 = "117344bdd47308070d79efc44d02b427f96b0724" +a3edeff689514e298640a5740e823c0dac1d72a4 = "93c946834fa08ec2fce74978491c39f78ea10ed4" +a634b00244f8c58313f15d17abc378be15992cfb = "ccdb670545397e57e413e23ef5c4f1d026020a3a" +a6e33d857a1c25c06a85f49662560d5729347157 = "54f6ce76ef01a5fc421465bd47065698922e8f7c" +aa4087d85332e01feb51ae5b153aa31f81369c81 = "fd14ff00ee70f6f7f5b28887fa83c7805995a083" +ae5fac714124f314e5f867857d45f7dd8bdd3ebf = "26e6d96131994ae52f32de7300d31cf30be58333" +b1bd3a06ad17e38f00fe44ccdbe1b2f65c57cd2d = "e85cf370ce21b2bde93a5252de6e63b29656d17f" +b78bed5941ca35b9a1f6df7c149712b005a5574b = "a6d0a7d8eccc6a8c0ade6e7f4b45e6b755b43e51" +b7d05111cfb7979313981a572d421abc0599613b = "bab1475c325ab4caec3995b4e25fa8bec854e186" +ba31d323335994b5c9fd5b9c87624c5669428805 = "544ac1183f140e97c4d7e3c930a831b94a0d0872" +c1ba298187fba8b900b309e1399b2579e43f5896 = "f7a91d95ce62c2316eec9c2b8beeb6c7dc89c708" +c20eb3a4cb44371c8ab207da82dd1810c2e9b1ab = "7330f8fd1cf37031ad5c0df9ba9cc9c6c844a2f2" +c898a14d7cd3081904950c442f6890d94b18eab3 = "7ebd17cf220b703d4a589da62d5041ffd2188cd9" +caae69cd519007fbbae7389cff3613a7b4c016cd = "ad15cb17f4f27c92c06ed3352aed9588812ff334" +ced775fb2e9f76ec4cce1b379b5eed60bbdf8f93 = "474a3a6d578ffcbff503da4a3685ad5d97e1ce46" +d3913aa4e7324b09f2a133681141232c5272cec3 = "aede0508e993cc9f41637c705b6e196cb4e2cf59" +d3d58273ced974eb036ca9162edcfd75981e8fa9 = "3e4d2f37d720248a765695501b765b9f9ca73e21" +d6f0097ec4ebeb8d5e36d37ea2aceb741eff3b9c = "15f6374331c70ef14609bc3776c3fe13904f8c76" +e14a05de4b7b5a659cbef50dd78328ff69a47656 = "0ba2ab0cb01f83dbd044c3db0bec86468e6d292c" +e1f2aeabb2c90ed676ffa6736017a7aee1e9a896 = "53f092066a4f6de4276b0d578add1af3052a10eb" +e36e8746d1bb024450321b3a15d67043ac41a771 = "4c0a1c99b96c1f7d24d4e0c8d7ada673686dc556" +e65242c1e9d1d0992cffdad21bb5813ff904ac1a = "645584968647732117fb78dd6d0d26cec5c74f70" +ea09417ece0444628dc170dfb7612c50dc422481 = "c01b08d27d8a2471306a355cc4ed33542d360793" +eab0298d26b0a5ce46bac64b0707fef4e2e78b4b = "a70858b336001f9c55c76fd9ca771909ab35deed" +f125e1adc5432ba45f52829cd5aa5145b425b1cd = "ef80588abfa78a2a20f29fb8562095e8e881a3ac" +f4e76a02178ac8c6c88376200d2cf384076f6b85 = "bd243c8796c5a1b8081e8126ce686ddea814b19d" +f73e02cc4aeb5cad75187d850194b3f812a3db2e = "e3c2adf5670d4ce8e7224b756c59c5fa312c300d" +ff6c1c22e3e59cb85dee63ca1cbf83f6ea652c87 = "5767eb225316a436c273f038fabca3a56b267fb3" + +[d6d074c3-1acf-5d4c-9a43-ef38773959a2] +146fac93d32aa3a7c3c7e158ea731ef1b967708c = "ec0de9d946c81cfef3722b299b6b7f88f0c08515" +26b301cb9fc5bd7929e2d333ebc52bef7222fc6d = "8b6418e6d7459f440b7989421de266f79e634631" +27322321ae988a22e9e140a7ad1c7c4b9e721c7e = "4512654493bd03cfc4b287ed5b8cbb2a2468245c" +29f4aae488cd5d8fb194cefc98e431d1a17393c7 = "a03fff71ecf6aa73f10ec7926dcc16fc944f7e19" +2c3b2ba27d067842a4b8dc3da7f16ae695215f2e = "d2e8d30816e02a12365152b593df18a5b3891270" +2cd2cf5670ca75c13f92a3778c8c632438ff6060 = "c12e24c58bf1d848b1e2c57d33f1bf0a488a3b0b" +307be308c1724142799d93b63f3654ab7be12a1b = "4bc418221f63b45e00d9e0289502b795e75110f5" +42de0db1452f1b53c359f22d64f512f25e3b6616 = "16f0dd97466abe5566075b775e47eaf0fbd6190e" +4dd0287709762edcb1864b3fd23a3848e00a2860 = "80a2e7f1fcf6634cc3eda4dee26d0cbf82b58cf7" +5d4ac3745bba6859c15c761693ebbeadcedc6fd3 = "7b4bcc95ae6cdf9f4dc51732a63d9fe9e995f707" +8c5d40085aab36cd69be4f0772681f8409f11b87 = "53844a10eb3622b2510331f82bfd13f1fae3fadd" +9d085b209ceb67dd48b9414e1907a1035024455c = "25531c3442366cddc8c7b9649406eb66903bae9b" +b9008d8feb56bf3032ee8f48abcbf449e54b80e2 = "cb15a5bba87f864ed7ad25c46da1e170b3e010ea" +be4f4c6e24c75197588d64c8b94240178143d53f = "60962c97636bc09217acd0683277f0c8050b42dd" +c1e6b1a8a300fdffd782f733106d9fc563124f64 = "595d5010c7a4fbc15cd657abd8cee010e68b6eb4" +ce38d789e8bc305aaa363c3be2f93dba3b2a0ab1 = "9c72a34347f58c84169626a6e26de8f7f56e74a2" +d84b8208596d474c3c9fa26c3c0264a3ab0392e3 = "b608428f2bb440d027b13aee849da23769a07c95" +d9754da938c534e25430ebf0d8913cfdeb441b8c = "880519fc84dc42251570c02f0a742976c2d4ab8b" + +[d6f4376e-aef5-505a-96c1-9c027394607a] +02e48e287b73c2cdb150e63cbfa4b34e2743461f = "f40255dbe669bec450adc742e295275259d06b3b" +420fe4401ddfe08d8d341aaa8b82f9529731e7e2 = "919f1402cd7ee93db403177c3fffee7d74bc7574" +738cec2ef21210cdc0370673503f74678ba31e9e = "5b109b3b646a78edcc08e5f2009663d448a0a257" +b733232847212548ec7c09356f53eaeb2e59baf2 = "f34c4a85464c6e38ab6d40d3ab4569dbdde1d3c0" + +[d71aba96-b539-5138-91ee-935c3ee1374c] +0a03afeb0858277253db484cc1810899510fdd84 = "c475fca665723363fce2b9b8fad3ace0e9bf8c45" +429ddf8264da159d5cabdf412c9ddb96135cc19f = "f5e3c3b4e2c6f1d12b3b2d9972e04703f0189753" +77779339f15cdd61dacba869895be2f12f5c8f9b = "f562980d31d4714395801c3b0436d8ded2dd8a77" +dd32c71ea37401d46f497ab3f89d201216babb1b = "2c0a159fbbe961b9eaeacc9cd72566745fb03baa" + +[d76558cf-badf-52d4-a17e-381ab0b0d937] +93f16e107878f59f91a3cfdde3773c629def86db = "33332fafddcc8864f7d6c6ee31708b5cc0f97137" + +[d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2] +1473a64215b18a79d7e34d35036ec9a562c212c8 = "e3ad799bea351b09be745d395acb498a317c17bf" +2ffbf6eb79929e54deed706fd84ab8e3e74bf79c = "e97b231a02e5cc9b6cf2374784cf43cf0cbd1afc" + +[d80f1e47-7c1f-50ef-848d-735630893f00] +99551e8476094ca54ca5ce081255d8ac8acee80a = "9b6a0d80e9ddf3331a847ee7f096f1683631fabf" + +[d8164373-46bb-572c-9bed-61caa11c4d4e] +230759365f948763da9b9811318290c69b911aac = "8a8cf7fe66027003f54404bbbf82a904dce9b245" +9dc91d6cae1e6d97657160dde9fa8910e529f4d9 = "d45156c5961cba093e7910f6a88f07f439f9f020" +db3ab1e336e1c7cbcef39213a5b9fce48ce1609e = "d8220bdc13c3043a0ee58bbbd907a54054f0dc0b" + +[d826f7e1-9945-5890-a92a-4078320af7ac] +136b240c0082461b206b32c9f7943b91b1eafeda = "be430429dc6038c6eab0fc14d32f52cf79ddaacb" + +[d853e229-7c7c-56e9-b6be-9a1acc5f13d9] +7af359f7afe3ce0e7a54472a16dfa1da9cf7c53f = "e45b682945b70b7a4ac615c94f2f475f25848039" + +[d8793406-e978-5875-9003-1fc021f44a92] +24a24a41b367f9c9b62cf115716316e7d6b80b7b = "e6853f0b6eb584eb4fae21b63460fa63591c3309" +76b59ecd0b67464ca3055d0c0de49b3423b02e84 = "8f5c377e96f02186410b4eba2bf4633f4364d2aa" +98d7b327448456df024ab87243520f972c715e16 = "66e9c5eb3343d73a99cbef508268e9f2c99ad9c9" + +[d8c32880-2388-543b-8c61-d9f865259254] +230b8b4f9f16f305235a17414a4886f111c0030b = "704fafae8eab50ef7e022e619574e3c632c680b2" +bc696f5238273c08b46a13fd1655e900550c1fef = "55cc90bd6938d1800b9b8856a6b89750fe47f882" +d26fd688b677a362c95cdaf0012cb66fb2b606b6 = "d212d92e6df6ff98e50bb50e54eae44a4aaf9622" +f83d17d3acfc208f137e7bb9839f513c76394e89 = "11eb3cf8969abc98854c244dca40b20b2b852853" + +[d8da5c1c-6f31-57d0-a642-102aa94a823b] +06e58ea1332fa884deaf3813d2815889369e9876 = "593f152698c870719b4789aaf4c4b760e5a600df" +85cd17d312f6d5159554a10609332387cfc91e27 = "7cd15cd2aa75efa6eee87985a399f757cd175d1f" + +[d8ec76ca-cb75-56e0-bc18-de076f20404c] +445960421ad1742f1aefec76d4002cf50c42016b = "3300f58865a1dd6150af7cc33cc2ab5b65deaf90" +9d9279f0a0cf36d5a21196622323bc170281ab42 = "5ffc8f8e3a570b582b3efce7bb6e5eecddcbf2ac" + +[d96adeea-2b6b-53da-8516-10ed6ead399c] +9f9717e330fe49f5f913a08be89f291d1141e9a9 = "a6427df7b8d55f0b86fec57328ce942c4b4b3146" +b37d61b8f52ea07db50f5ea3d2ac3d380c1f7620 = "ff7da35aeb28f61c7224c2e24e8b9eb80e36b0a0" + +[d96c52c7-d281-5098-b696-bf3d449cf8dc] +81fbaf9f8a9634d447f1d6fb0abb1727df5a668d = "ba23c376d9153b100534a8b6fa895f7b27dc59b5" +893c7c958fe86f4dad0b9b85eda06c7965b08b94 = "1e548e906a9f077f522628dc9ba692920b933a1e" + +[d96e819e-fc66-5662-9728-84c9c7592b0a] +22f7409af45d2204a1b58e63ec346d5dec1e5edd = "199fef3e3d98dfb7fba1e2c7816d54024d5ccd97" +2cd9fe6f400fe0d3b9c39c29cb77c70951585080 = "975c0eedc7d52cb3a1db3edba3f6471df9f4a791" +3226946dea5d5d19878d6a8347bb46425533ce80 = "7dfa4afe9d156c64ad0f004ebe5bf3d32fb745db" +36d893413fbc5422415e99cbda34532848ea9433 = "f3badce41e966f36c6c721f17ff57f6e183b3877" +465c65eb7a16f2627018277d6ec8e02ad83258ba = "222c78c1884bfa852f2a03320efd9a2caaed67b1" +57c9960db1b56df3f6734bad7b238311e48e8236 = "e3ced6202d0339bf76d7db69c7c4f9c7ff9ffa58" +6cf741c60645d75a906fc12afc640942569eddf2 = "7a8c50fbf109725cd99213c02cffb1a4bb6e1a31" +70f435a92166dcc7a310919e4dd3665322ac5761 = "ef3951242a09566b1bf79145289234b69f0cdffe" +78727be19ef204a5dfaa8a2c177047a9903322f3 = "49cb165e7b417c94d139dc04be3a4a0475c3d096" +a1c8e301610db5cdb3d45a054f449ca69fe33d8b = "cd5c1c41b31aee03b5114e38a71d622894a671e6" +afc8843e1c4384e31b34fc699d7073575bc6bf40 = "ed941a989620b1738eb1b92eb06c5fe9e79781fc" +cb147097de1cad1dd5c089243743f21a576a4a32 = "3545ca1734ab438e72b83e604bf461e5ad1ef712" +cf955dfaba86912c7c9c132e34921fee733e6b90 = "b96f5093b071e7a1949386405422b7a47a8c9f6d" +e0a840d5356c2167bb7961f77883c764df2b4ebe = "4a54ef68828967a523a3344da4df078a4f536834" +eb0bcaab994bd65aedd815eaf53156e51848e35a = "ce29c6b2e68f2effdae63e019a36b0fffb253e35" +ebc9d4d6fd601c6743afa292b39d74a5ff5493a4 = "61a34809e648871c949768e6f81b1f9287184b9a" + +[d9b503ff-f00f-5839-a702-8ff19b1c98e5] +04827f61c17ebf5e8a8080d2b198109a288034b8 = "221b6e1c0ddd1edf9879fb55b65ae28e21d7d598" +20abe9c2cde10353fc3ca78b11f745b426aee5e1 = "18a0241959b6c6012cf086555eaeabee4d4284f7" +232e4bf22c3c831d640da60ba6d1d3d27c5661b0 = "e2fcf0700447d2b5818c5a799e1a90523aec2d9f" +28dcc56721aab661acf82ab5f900eec60ce516a3 = "c770b4b4c34fe0c1489a8214359ea208eb76f443" +75d6c981efead110c4adcf6a2eebe76ec94deb4a = "9a3f7d3bcaf48bc29e7649e7db02a13fc6c278af" +7ae77234ed2f5b37da48c07745eeb8c328212c74 = "01268b7f31d736c310742822a4156e8547d37da1" +83a6758b90777e7b6452951df0acbe8b9e11d9b7 = "4a6b8c478a00db3aeb5e36052298af25f876c0cf" +ab295333c5f236a2fdb43eadf8fd7b7dc54b3faf = "7ce18dee802697e0801080b13ebb8768d724616a" + +[d9be37ee-ecc9-5288-90f1-b9ca67657a75] +000352d5402fec3778458e305282d6c1465f7c01 = "cfe8f5efc15c11c79a51c672cb98b71265599073" +0532f50483367e108dd95d4be6b8a022ead408cb = "7c2c28520b8a75b7010dc50adbed722b904db911" +06e8b78d74d131ca54d45bf7d8a2757318980624 = "0a884059706385592047fec91c630a0c2e791a0e" +0b922233176272d8664aed29e4c86424f750a16f = "698bdf6fb7996d987b3dafe07d1a2a6e4b60bfea" +0bc7050f8878bcf99a5c602008cc37945b49c5fd = "3cf2fc4ec662a49fff7d6d600501f97887502e3c" +0fa6e7b2268e36234efeec647e4003eac1e905d7 = "679caa02645422136ac562d7c43db0430a3f7f47" +18917dc513ac8751c9305028da9df18f8a13cd0c = "8c0d3938744ded7c508cd287384407a61fe74c21" +1a73c46758f5758e8b24ec7c70bc9f9d4922748b = "b04764236db0335cfcc93557b5c2a96d3fe43070" +1b27f2a5d75cf83bea37a7ae719af545c388a445 = "db0d69fb97d9ba9b5f8fa98e3357aa0fd6a5a2af" +21860954a6253ed349e576ba3a87c3811eb05342 = "731966b13fd30cda8f419b420791fcc460e9f894" +2be7cb86cca7f83ca72c080ef3db19fa0607c699 = "4af7bc91c4838f28432a0c446437da40bdaad9d0" +3190e9ac5cf2202aa7bd5242af9c1c97b7ec4b2b = "fa272e4370322a266e2dad18d038f9442392517d" +36b029418a9a96aec5529650840181da5a13b967 = "d5dccacf84cf90e09476f609635ed4ac33e4bf37" +45ccc252328cb398e6a88b242ae379f3252f3ee9 = "9c3ed03c338ad9c3c742073f9804d8a990ae3f49" +47b41ff865bdd4c5c302fd07a3f57f456700fc99 = "eea4bef6226d4a206b44f9517b50913f1e8413ee" +4846e55d31e14f50599e7cc0c368f109bede3089 = "0616e36372b54524d43c476458a4fb80619d2d0a" +4862b9e1d16a7a368e35c8003a2ee970379cd976 = "a34cba67b969986cbed46e4ce0ef5a2f3fdd8a3c" +4af32c18c24a7e41cb745315f0a0d88a454be1a8 = "1afe6d33d45861ce6d7311f99b83ae0dc552aa13" +559d7f8cee24306e846458e003612db43bab3101 = "358c42d1c498b2e6db5672e5ad4beebc7772dbbd" +5a2b85eee7693f3f343208ef601398ce5c380257 = "34d2697195983d82aa2c74fa3448110581322201" +5e9407b064043faec5c343600df27aed1e62d0b6 = "d7dc70865ed3337eb6911712b798904dc6778431" +611648b3cef17af4d11077c7fe54e61cb0839b4e = "593657928fde7a46c33d7fe199a8ff0824cc2b2e" +6c90d69d4b44f97b217e43c950d450b22eb48227 = "1afe6d33d45861ce6d7311f99b83ae0dc552aa13" +6e7a2269292ea2a4424f41daef38722e98e40838 = "13709e62c2ad271a11b54cdaf9576fdd98cb6224" +756e59843806b58680e5910cadf4c93eb814af97 = "4c0fc712d61003532f18958b49c7fd247c0d7f6e" +84b1475e8e9207e9afd7cbd046cdef21d90ee903 = "819c990128e1163a850c4fd9d30db2cf44633c60" +93666cd3afa028b6a4702267279e26af6c2c0788 = "0d8de080ed70b26fb06da24f90dc31ac57f37d73" +944f377c082ec9a5f2d736605beca7fbfca4353d = "0ac6e3f7ced238f55228793d96048efb218b64ae" +9b3fced32f4965495284c4ee8224691b9dd35284 = "880b4f98357ead92526dcc024c676c2217164a26" +9bc5ad7a6181d80ac2d542810f94759607e34306 = "e15d3d29315579b6a33484009ac94dbf88e718a8" +a0d0489b7a54c9cdfc6c4cf1a757595f25366f45 = "e917c0bde6d879624ddaeae5f900bbc7a747e963" +ab25d274a39b88b88b332f96f852762ab6515e12 = "61feeefc99dbf56c36a15711171a3f0f17d345dc" +afade35b9b54c5a9532f7dfc6d77b681437ad8fe = "61fc167afd16ed9762a2853703e8a33ebb3ab5fe" +b42cb08a84959f2eb7b522cb6e3dae00a52813d0 = "d1d4246efb222c9c0acf8900af70bc325d849593" +bc17e769ae9903d8b00cb365dd59c73cb3d4def8 = "4b2b42e104266f721ce02df38e4b3d0122aa2dbc" +bc639088701c82921dc49a91e33895c580b4d2ba = "8c7c010dfe262c7471f98b7c2bcc152cb9d4c67c" +bcc875a8177877e5e0390d8eed09068e42fb0742 = "bed9e3bf645a85b737719feba6b3c97c331f699e" +cb25c5b001601009ec6c05ad8e4bf9d3b48613e8 = "2f7a834a38e3f56deb0913a428cb3ff26af05f8d" +ce43dc5f1b14328b4db585b8a1a067e8fd88e9f3 = "9a63432eaf5303af6d13457c5cb3dec043d7f031" +e8305e519de90d3d92e72ee735a55d6c7d6d92f3 = "0fda9c53e435026617eb7a7017cb89c16db10b47" +e9d4bbc0179268427ab701374474121571c70223 = "9afb56fdf26f51c8877a44c2a243dd92a0e083cc" +eb8f5885a7ef82f4383b94570ab5aeb2c06eed24 = "b58c773d6e18e3d8c79ed32e9dcb9d0b4101ca0b" +fdb16529761e381f479a216dd6721967245de7e6 = "946ac262ddc275a3b2bdd6d81bec071962ab417d" +fef3e905ab4348b6c888e39352bc83322c92b1a7 = "10ec2772f316a3c68f0a2d84467a8607f3b31db0" + +[d9c5613a-d543-52d8-9afd-8f241a8c3f1c] +322a9d03eb298254c43e692bb379781ff9ca5c44 = "3f0f7c418e4e11783b0857ceba9ca0e69706c017" +cf8300c539deff32844d9bc571bd384a69e1e132 = "61e863c9a7eeab36d61ee7b94afe930f457a2cc3" +d7a0b03659f53aa1069e1164ed38818791d3a0d4 = "41560ec7fae339bf28ba840fbf6afea701cbe135" + +[d9d8ad79-29b3-589e-911c-083cca4f99e5] +1a11f9bd8cb895ef8749c3f752ec6ea931bd45fa = "46fb3d885198f5fe3f401b84d804f54a6216541e" +826775b99e4003bcdaeecf05548cd579bff5c57d = "d71c0a69038f50ad2545afee16639537b65de344" +8cd855bd2ab131ac1354a853bb37b5441cf31945 = "c2e03eb5d92564849b8c2b5583971e3b163346bb" +a9a18c05841c2224e35f8642353f794c30f745dd = "23df940b30f1291033840755673d4d0169bb3206" +ec1a803517d6b3906891ebc2be3e3ce38c609d6f = "b4806bdc219f289d626a192b78ad75113da45780" + +[d9fb577e-02a8-5914-b71d-b6b1f89733e5] +082f0b3f53e9e896e92e921b4bc9ce6fda4644cb = "2cad6ca92384dfebc431d7d0366d5a173c6263a5" +0d0990b870ce3434e019044047676419ff7b3237 = "6a11496f05fb07474353695440fab77ef89e367d" +0eaa9220ee00ea2923c055b19838c21ac9a24ba5 = "c52b4e8fe94e47f6ff596d0564e8a89e1eaca630" +13de46bfc5c8139274c829807914c0bef81f959f = "e14a0509e11682ac978675af29edc93c8011429d" +1fcd26b78993ad81ae241a53fb5c15580994f2f7 = "1c54e83a5d7edf26f09c0629dd6c024be8fd2e4c" +21eefa28f2f13ecdf32d74465723a973545c2d66 = "6a11496f05fb07474353695440fab77ef89e367d" +2d0d0a5fb2564103e1b25af474d71ce2ce59ba7c = "c93bf00155739aa6703c88ef42754b99def65d6a" +34870d61f8afee30ca8569cf724fb3a54a5def67 = "923c5303d723ca301e084079f1c72f5c5e477337" +34be8d5814019711db06e5d9c165fa39396d6e56 = "47697bf07f139b339ab6dc61e30800fef41bc65c" +4d38997d34a762f004257ae80ebfb9ebe2b590e4 = "88c602b18ac6e08d772f11d3a544970e7481972a" +4ec4215cc4a63674dde03c9e427ee4249a846350 = "111bc1885ccb103db830f58e9e38b9c94e4d4f2f" +538957737b1940e187926305b48992383751855d = "1cf3529fd0a7e7cde9d8baee5d87fb2f7021d0d9" +680f5a78a6054ac1cf41d6dcf82fd2df07fb6b41 = "1b70fd66c561edf41a4225380d7d7c950035e796" +6b7c0e385cd7f676060bf94cd72522079f72faf7 = "d8cf176e6244a6ca68a940f2f90af5c5943998a1" +6fa75c7b2bcb7a89f2d0b693b14cafeaba5330fc = "9fd6b42fde6cd03b24f80d7b2edb24149fa4f34a" +75ced33af7c418db157281a7e94243446ad5c2ed = "b447769a05c171c3961b65d372032fc713900649" +97cb94be5486d71bb3d763c3a54a57f0cd26d67c = "ec1ca47891a174b7d7236f965fd1c4181beb8322" +9a21bffc69da24de8d4579387387d58b411872df = "908e70f7f2562e9dd7b217f74c2d35066231560d" +9dcc274fe690b8ab4f9b048f55866d9b61e60433 = "34bed99c008fbc844625c12a8f07a92b74b3a64f" +b0e8c184f57e8e60c83e1b9ef49511b08c88f16f = "0213a9262b761e7d03d9e08e365c15bd42eb9d22" +b1107fbc088ee1b7ae0b15ff6c2360530a04a63e = "dcc882a52510bcb54b108ae62c870fb56b0d960c" +b15d248470da3ab22a7bdaa6a3793fbaaefee62f = "a2ddba49b171d645c19787419f7fc14126ce75fc" +d43d9919c5b44459fa3080ea1305a753ea490d46 = "92c466ad66a7001e598f644dda80e510deb6f43a" +f565dd42fa31c369fa118c8742bdb873ef872952 = "8cb9c7b3af924399bd9d6b7f652c526722899a55" +fe5e8188339c1bf62fefc357739ffcb27b6b3302 = "f6020bcb9d5c3170a6f3704a05f6de8a101ac41e" + +[da04e1cc-30fd-572f-bb4f-1f8673147195] +13b9ba92e279926b45690d3b6bf4f56d6061d904 = "6b2f08fde8172cb0047652623dc07b7f20e9125a" +16990eea631608ea2289441686c174305527f41b = "e84473b7d0b690d3b9b7effe928896c1b6d8384d" +171569eb3aca85a13a2c2aa7fcc91029d9a1b409 = "7ec9ce7e0c71725aaf292de9bfcb2f19ee951625" +2e2bf5e880d009872249c6a8c6cdbe0db6c30e07 = "7dd12c465580da318d53435ee6cc0b0c11c94bbe" +2eafed4ae94f0e993a447022c4a570090582372c = "468295bd0950f1dd76b99b04a7e7610d5eaf0c73" +37f525454b4186eb95c117eba051e196554e8c0d = "c0e7b5c395ed2922e985dd772f5af724953258f2" +4e3386af7611a0a2398d99e621a463e864bdf9be = "02ba2b536ab5e7f410c085dd5349b6e0a812842d" +56261899bc3b79a7aff19c0af34985c2aad2b4c9 = "61ec7ab4239f3edd6d5d39dc32b91b5a0ed0ec07" +6dec1855d93052505f8f19cb1484f909f8332809 = "af9ea882915b97ed5b603cd1fe3913b1dc6589bc" +6efa4902c4c03a6984ce4d29e3370ff1b11665ee = "cfbb1f21ec8e8e1305f6d0a51f0f5300d117a9ff" +909b61426dc802a332109d729b8540f730377499 = "3c9d678dd165adab139037d084e15720c06c786b" +a3281dab02c915ba0e50e3cf2ebab9b0d5d0d41a = "2fde606d2eaeac0b950b3c39086f9912fa8fdc26" +aaa2b58f870de318a1c8f77f6aebd2e252277846 = "b453aee37f3ff60f2dbd02a0366e36a51cab7bd3" +b53727864665940d5469aee21ceecddcf6b0d6d3 = "f441734094b36d405b229947fcbe5058421f917b" +cad330105e19f38ce33469b8e3de505829a76779 = "a779a082abb0bfc0d35888518b99b55a1a2513e7" +d55873dc99a7ba3576db4229265af4af1f390628 = "1d43f6f7d951635dfa432e9f829353809b650c9e" +f07e96286f0a9bbb0c283d22a2d8f8443c411954 = "ac74fd736e78ce7a74e9a5d3ad17f56302d152f1" + +[da1fdf0e-e0ff-5433-a45f-9bb5ff651cb1] +0d70f4a9396af9f99aad3bbb453f4650a9f29a88 = "b9eba2e879ad90a85ba2c8b2eef602db7c373fdf" +45067fc58a2691afe43b4e73387a796b0549ca22 = "eb91ec4c3063d36c2780d475a1ae9eb52f265a63" +78290d336fdeee8afde18302e538ab2332b2ab1f = "37aec607fdde23cc8c63a4f22389e215fdec32d8" +7884c000e6797d7ec621e07b8da58e7939e39867 = "6756c82cf501c013b4280ea8539567da33791617" +cec61ee2d49e5c7ef558cf8ad055c336d0b29ad0 = "4bf09c1ec8c26aeadd437d2559749f5728b9d0d4" +e6e1bfe21afaadb93f2e5f98e7a8845579dffa20 = "04e4a13d560f09f6bcd2a25e508ca3f07a7da83e" + +[da4e23fa-bfa3-5645-b5c4-449cabb34994] +6edaa622dc517b053f3803cec428e6e21f8286d3 = "603afd2ee431b4843c339e1509b184b0ad3422bc" + +[da5c29d0-fa7d-589e-88eb-ea29b0a81949] +12133522c72f59c88f14e0237603a7351b4fa28a = "02c7860ba78532cc433826a732ec577721e27367" +59c600b57b38682a9f22b5558b731b52b3259ea4 = "7544d1f6ed911763a7af7bb4aac221b4d7a11964" +5f5ff74a40a3fdefd23fcce44577cf7fcee51972 = "c09a512ff36dd5785ddc04fc102f2ff3b7fe05ae" +8411068b62cdf93129722284570fc44fafdaab43 = "146269dc84e3eb42140dbbf80031bd9dde4abf2d" +9c744b1b1f95ebdb7211f10ba23117b9d831a0d0 = "441ee6def59604e24adb8a2efcbe8089e91c7129" +ea0b8d5b512832ea77e758ac44d7b8a97f1c194b = "00033973ce3851d4fbabd7a2a69f6deacbc0897d" + +[da82b884-55c4-5540-8364-4f80596e1779] +1ab6342e33d6429280a4671085682a34ea184651 = "aae944f91108145f53c175886f5b6acb197b1a94" + +[dad468f8-6d63-5d40-b2c4-48631a3ed0cf] +574472d492c0d6e22a0455b0c6f942c5b6e0f4c1 = "e61de7a38cab87e2dfa8494ee79d6f10b323dcb6" + +[dae93c7a-ba2a-5c0c-908e-f82c8dca6b71] +3cae52210d39e9a41fbc26ce08d8a7a72733ca71 = "40a79c1b07ee460390ef62e28ffa18a7b53d3316" + +[db124c1e-20fb-5dba-8370-5fc43211c42e] +19a28e0cbfeabe131a399922a8abe3e7647a0183 = "b66a5fe6492afe1d382689d5123fbc822f92f3ab" +400e027c0901c73a1bdff8c1189c70512879fecd = "2b6fb42e8fabd52a189f47fbcee0d13db979a2c2" +4e72704ae579cf6145d568efce25bab9d9df9019 = "8176d4c857b4b64d7978146195ab313fd4870b05" +7160dd797477ab4d15ebc7bf8fdc591d6c6c57ac = "281a900cf53e120f88676ff049c850913b88d0db" +794b015f55e41047b51cbc9c6017c292e6bd31d6 = "7dff8603bde64082d4effa49b7bfc257c2c48e5a" +aa13e71f4e7dfa58adbfdbd317e2d90f48a353f7 = "ebc7b6bec037a563e656d9a94d02044933b85d28" +aebf6f0a4e706629097650dbdcc8a15abb7e3f29 = "fee195613a23d0236f55d60c105304792dbe368c" +e103de4add967a64da436e76d1ce29ea1752169d = "74c89280a8dbe33e7cc11dc95cb8e72a96fc0628" + +[db1e4edf-8490-580b-87dc-ea5765160b1b] +86a07e9cdf9a855ba44b2869c578a818a874406d = "e750424a9114febdb420a7a2d671b429bfb98c48" +96a7d62bc377f803a40ac4e16acbfde61819e8f6 = "59bc25e97f01826ea6a604a9883a8d9065d4b1be" + +[db5f7d96-a200-5343-9fc6-a259b42289b2] +0fda95aee315ef90d8cdc3798ab359708b59eb08 = "ea65f67c58e85e2a477c7b3a355066a5e6555650" +3696376c1959767d17c97b3ef89e3889e4f72b9f = "6d4a79e5fa83e8f76af6f3d53b66725e87c03002" +8b8e08e76cf8ea48d90f1f1990899fd21f6ef72c = "c2dc72a7458d7ed0573ce5bed8f4ea58a55009fc" +94e53271e6be93f4d4c6810e4fa08fccc05f09eb = "428732f7a52233e34ed62747f50167e304454ee1" +edec6e997859cd171008f567c29e4e8df8aef8f0 = "c71903e131d02c549f3556e5e64f61e377d5e3e4" + +[db6c7170-6aaf-59bb-a3a0-87668a71bd78] +32fed196c70b40d1a4145f08e590d111236ab409 = "decb8cc9db7b487132a446d8408efb9aefb03948" +75376b620500d4d6a0175e55c5ce2df7211809a2 = "d47d6515fa82ad819fba21a9de2574befdf42076" +beab371e1b82c84cfe19dacbf2438d4acad5d471 = "1ded58f6fbd4872473daa8bbd75bbb31cfe9583d" +c3fa508796b4745c6b99403601db04915da9d33e = "f23695c2af849180346d44eca7087679aa28b7d2" + +[dbb5928d-eab1-5f90-85c2-b9b0edb7c900] +24b5aa8c089f1490a4f0dd230be3b7baf71fb171 = "a2fc896507b776036823d15f05dc028a9868b29a" +921c007b7d9fc2e3600273076e2fae4ec66a2c5a = "87153b001b33ea35b3b7702e6f1fe0158559a103" +ac9871a673506a94253fda29fdab48cd35366938 = "b43a3649550fd1850b0add82fcf0e247316f3605" +adcc01ea5a86f43082cf0a5a9867e7e60eb62524 = "af626341aadc723c02129a6f1fcad9e0648404af" +c907bdeed26b9ea044893feb492b0aa89881a514 = "2ddeb2526b7f9f042c9d8c0d97d50f504879f837" +d5b8d5cd04e5adfceb0f7b4dba13690cf43b9b67 = "0da68dc880e6a9971106538272c4ceed6bebad1f" +dc72f520ba499b4bff66dd3fe56935d2a33fe6e2 = "51aee9a15f48c27b2c836b5ce67d544d066818fb" + +[dc211083-a33a-5b79-959f-2ff34033469d] +f33dc836928e69150dd09380c9ad057cfd451a20 = "2d7459ce55eb8c96d05e2d6e3b0a81cd15e6a899" + +[dc548174-15c3-5faf-af27-7997cfbde655] +0df1d6f09dd0605f7cc784e0071f5b39d5c42771 = "881c4fbe4a25ad86f2d07a437d8c95b5aa63ee49" +6254c9dc661ebdbd199a4d10f1661e39fb953d21 = "1178dc0e198330fbd4527aa720d4d04434c0aa27" +695d898c7b9010b05942fb735c86e4231c405eec = "758e52a7fe9461a4c142ccbb122d6da631266349" +fb3e7c7c1d337b101dd30094b1230ad584d41b9b = "8199a703dae85ff9a0213799a2e60d700c30e58f" + +[dc83f1b7-23af-5208-ab3f-f15c73293890] +28ca4284d0eba29d8979df8ea55a872cea7b0706 = "4e614a6259ac861b1ccae25c9cecce58f5b59208" +ad430da18e7f4c1e5c705c2ea9e15fa014980f07 = "27ea9dad9575ed3d251f87feaf1f566274237afa" + +[dc8bdbbb-1ca9-579f-8c36-e416f6a65cce] +2a29ebeea16b53cd1a5d355b032a7f3fb981eddc = "67e36848630e25eb87b5604598b592f889de4430" +2f2e9daa85f0125dfc701f8f1f3ff50f19b28d8f = "5645f8a953cdde474406a62312410c2ebfd057ee" +5244474b476a51586d79963a4e71bd331d3930b6 = "63389c74edaecf14d3f8c79425c3b24504e3c506" +a91de1ffc3470f9389202c0f7b612528194c3ea5 = "9faac3960141d4bc83215c52552b5471e1e76a25" +c86672db7055cc48c32034402ff559bc316f3988 = "745a202720c1e848936c7808177841c36446948c" + +[dca85d43-d64c-5e67-8c65-017450d5d020] +29b36eb2e4958d7e55794eb8f8d54f20a8bd1084 = "f075d9fd6a513e653f466b1704a6a14d7ed91473" +2c9251b3e38487ef02bfb16c5ce0486205ad0305 = "9f9e12b2feec3e3fde7ddb9501aa70127e8dc7f8" +2cf41266eca241187972a65dc68623aa81828168 = "245ba271956497db72a1d74629eb69d37a14becf" +3efe65eab11d1f3d4a14a62e57d83bbd4b84b99c = "1fac712fffc73ae34c2c8f5641739092078245db" +4c19585a1fa29685302c5d354ab1c63f93e1f980 = "9faa4d77e1367d9011e2ad2674c37d1ce261dc9c" +55a70c80b8b91185c49fd1024c5f410781ed54d7 = "3c6f1d0b78f89c1e38583928df1d3ac0a7739bdd" +cef306618fab303ae8bc7fc1999d88083df27ca6 = "a79d6b85d385fe5bd404b213a3cb14f65922fd9b" +e5dfdd154bcba00404d936af269c31541303c2bd = "4ba34c6dbf49ac5a7866cfca79028bfd555576ba" +efb89816fe1a99fbcf413b94a5fc6710108eddb0 = "1bfd5f9f6176ba7d2c990a22048e9a6c28ff7068" +f73aa646afd9c3f8b6b4477a265ba015e64adcc5 = "508ce44d813b37a28b3da9adfde9b1a37088f9bf" +fda086bbca849f3b0d5181ac8f914cbd44e15e1c = "7ef0ccf9e107919f086fd32e4112b8143ea31306" + +[dcb6a4fe-f2fc-5156-9001-e19e9c1de97c] +283f02c56eaf239852c26f26a96ec7ee94de06e1 = "7ebeb5dfc055200fdb57c975b6ebd9e5126d9796" +31ef38e0e8e03affc783fe10c91e58eb0af8f20e = "af020908a89d31ea05ae2e02196f2f0c0f58b070" +5401f42d92eaad15f235e7caa2b543b44f95e6a7 = "f943976c8205a47aa96f8fe77833c374417b4a43" +f4702ab85370888a58394986b72de5382ba9dcd7 = "5b9879c474897b80a8d60769e07974f58ebd4b7e" + +[dcc97b0b-8ce5-5539-9008-bb190f959ef6] +0228639da71297e57bb1ff50ca4110b903b00389 = "e818b5ac7ddb51106d0b2cfcea2fdc2f97ea4e2f" +04311dfa82ff0a9424a873018968ac4869b21080 = "9365f22be6851bbebaa16d991698803a3295f70c" +06a6539dbe8aaa458c91bb6e45014c78cb4b520d = "1d2d909f052b170a0b13eee93493d99cd9c23819" +06f5c400968e80930f3647f88bca5085073b867d = "cbe083318ee89f941d2a88ac6be4b199d865e47c" +19775ffedd111a597686daf1b00cf2bab0e103a0 = "4dbe1c60ee8af8ea84e18753a431a0b1c93d4d29" +2c4b6e244b26a953502b8d43a297f4a7feca4956 = "63a8f9c9a7a8de6f1a6c15a8afc84efb2da97ce1" +2cd1b6327872cd26b88669ecf99e9f5e16fecfb4 = "b74c7ec6ea5ce70453b8f01ecc9af53d04d2a9cd" +311a67e2bc908ed981ae16dd29287d93068ef0ab = "c5a1de2ccaefbbbd671ce8d43c191bc8bcf81b3b" +38ab0047d681c63da629f4647abbe3298369b898 = "0a39a026c3bc2a8bd1024159c0efbcba425e5c8b" +44f3f29f9a9ac98618a5a3f97f46410d410f5b84 = "c58746f6d63c87e9f53b872ed69c4c9befce981d" +45e1f3dc08da57e3e802a6b8d31e94d9cc33464f = "573eaebdfcdcb9a3ba4dd13fa4ae8f7222fa12d3" +4900e28e10826f24b2a0888750a62d6ab6f68a00 = "02bef966e6bce29afdeee3ca69a608bb048a5644" +78cecf429127592e0dfa8c098763bc3a462a5469 = "c2ae497e30adc53bcab4d2feab65f0cabe709e63" +7e3e98a8ef27405e64fc1959a08640f4cea27663 = "424e4be7be12249835809af377b7988badbdca1b" +8dbff9d0f7074cef89896850c306a807eda4a089 = "cf8449e53f4dbe3ed02a35c75b73581f3afc31aa" +90d3d8bc8a70c8bf3a2d65dd10025479a64e3d2f = "a0c10eb3b8f50f87c6c5c18d441c9598ed1769c4" +97e12446b73b890f455fc4f2fbbe3df432d6e3dd = "ac1546fd46e01521dc2864a75dffa3fd5b2ed17a" +c76e1e7dc1880a3d439bad270b144d7ad2fcb11c = "88d8ed7d75b539f0bce73a72f6672b3077d7b691" +de116064bfe0a669f4bcb47758417957ef9367e1 = "497a4f67e72685545cf4b8201dba1878168d6422" +de7e2972687c8e14224c878064fb6486d5637952 = "aac9013d291eeedecd06abb850645957eb49c2a7" +e5d642d6932b68d1ef28a24298b83ff4f4d33e9a = "b70f97d02a9c2dcede83ba2d1213c1657e0548b5" +ef6c5637422ec0460b493530c8a0ab3aaff0f574 = "c66e465eeb45f3a40521e69d68b5aebd7c54e246" +efe1a2c7e7102dc195b1af26ac485acb70d05ad8 = "20779bc7b26ca535705a06f618a5abbcb12ee28c" +f1b841edf492dbebab58adad3adaf6297ea48616 = "d1c3c02f2a03aefca78a42f301f51ec78f88f8a8" +fcf32635d40d82d8436654920b6634a83ecba78e = "078caaa66ab976c2969368340ca7cdd818241ef2" +fe323fbb8cb1a102be5cbcc779089299d5806ef7 = "cb9e86d4774d32509dddd30f06fc76adc4f93317" + +[dcd651b4-b50a-5b6b-8f22-87e9f253a252] +7dab05afc0d4d5f3fc53f267928e09be43e61be4 = "efbbdaa2945faca79cbf653cfcc7398020f6d31d" + +[dce04be8-c92d-5529-be00-80e4d2c0e197] +08ec44ee368a762fce86f3ec2c72ca2de3268488 = "0ff5e0fa76e4af5e6d89d2414be0ccb7b567e5b5" +3740f2118dc7128a430d794185864248c98f0304 = "6df32d9c60301490b79ff71bd6372b067893d636" +57634bd7f18180331dac67a838077546c1877c50 = "6e114529c71472a3148a9d3eee6de99200f4bdcf" +6546d1293e08c0151805d0f320d303955fd81d77 = "6d6ed70dd92c14a6a1a9d6a6ec7cec22e61b85d6" +6c730e24641b6590d075a1d974d43d61367b43d0 = "ffaba3d50dbcd94cdf608757b3195680d5c2798b" +d031df211ef9ac269f328b93ed8e0aa196c03c83 = "91ffb99f531585d87b1eda86f636ed6d9f083fe0" +fa0feb79d4d3d6fce8adeb7bb6de7ec43c7e5d58 = "5a3b142a6d4f9e2ca72517965c997f05095d435e" + +[dcf8f9ac-6917-5b56-9f70-7cfaa7b944f9] +6351f628976d3266a96d1557d5e64e0b0d829b93 = "121f6e19143dd54b10bee87428ff5e6acf15ace4" +a5fc072f2d6a047d19b518efc6e4e1da4149942b = "b7334ee0b42bb15635a6eefae780a9608b9c179a" +bc4ae3eff24d03b9693a506f952b45501d498d94 = "614a59a6c37dadc720c0c51ff58d42db2242907e" + +[ddb6d928-2868-570f-bddf-ab3f9cf99eb6] +0ffae909e4ab38cef06da787e8975bbb0877667e = "a81c4f46c19f0eb9abaa90f3112bf536c1cfa7f9" +35ba2b95d5e3e2d481c1b2bf24ebb65d77252999 = "bad6c915a6f0f4e66172e1b7fc16909a93426603" +4471e137d37ebacfff66c83df6ba1d6e6698d188 = "0960a2fecbb857243eba3c568813a450935ba689" +44b5765a2ea7fb07e534d7efac4eea0159a7666f = "a8a35b93f10371e5664848ad4e80b0f05a6da614" +57fa1d5bc8ec4f22812b0628fe0dc75148e5ce98 = "e00de79634fb09cf925129c409daee62408f6000" +74637a776a7b916f8e963ad26e07f2a16889fb24 = "08656f6816ae70821cb3f5f4469c60275c12425d" +74d155b5334e6ee00b4172cb4eade03664953776 = "bf7454d24ebe927cba7de764debfa75bfbb0439f" +8c86daf4f47da58730f5c59384459b4fd70c7729 = "f93ec07ffe4876783f06314d7eb21b1f8a490daa" +b599e879108bd2b81407ff09c16e99778f425a10 = "d8f10d05f9651ad36a2293b49a3a997313560273" +bd07dc1c432e3775ebaeef81e30630acd13b2a77 = "8f16ea964f62a8b2b4d7c8a10c7730206c7708da" +cb6a9b41cc77d79629414c606df8ad7bea2694ad = "634d8500966be7b560be74a032b6a464adc472eb" +d1ecc86aa3ecef250ddf4d49780b3f63440a2db9 = "1f700054bac85b6d436ebc6a26e0b1f1e5b990f3" +fbf9288d98ed17cf34abf1b9524d810a990c278a = "68cf68cdce36b97ba2cd83c04c4819429a529f36" + +[ddc32c18-29b5-5e8d-944b-676104cc83ee] +189639fa833ddc57cb061e03e218c6952a60d7b8 = "3b6bf67c4f323bf3f99fd70eb985f051dc88bf04" +1fb746a848f48a6c7f4bb760fce995984e71b24a = "723a769441ed8b9f79c499e21bee4976f599965d" +29c7900afa03d0534604f3b1a4e2a3f2f030aa04 = "35ab9fd4d24bcf1ba78ae1c972473237fd4f8e56" +2db95be7857157c367723d09082aac8677f99c9a = "3c3fd232fd268bf3ed38f3e5bd2a19d957d5fc4e" +507a4652bcd30e6227ff4397e06676a504a99639 = "f467e68508c472ff87155d669dd5b0692e88e0de" +b540ad2edc619091fa2a63df25d0acf0e3360549 = "4120f1a4361f869042dcb8e8fdd4235a8bc5c4d3" +bf88bfd589b10ede31342f0b93b7cbb199918176 = "6c309dabcee806c96f3ae4815cce9eee695439d1" +d1b60432024ba4ab27a7132271e958e234a6ef51 = "fa25d185859f5de2b71fdf7cbf3bb716a59e53c4" +d55b97271c229b0210c7ac5aa9b9649d1b3a63d4 = "284541a81a3cfaf2f380c126d4bcc34de99c1ffa" +e2f1658c9ad0241014e47756e7edde3c309f3dd3 = "ea11a9350c61c615bf3927c1b02bafc6c9ebe800" +ea944e22bf895dc002cedf9d92fcfc3bc0834ed2 = "ec262a3598a1274ee6cb2ba6e734becf95e87bc6" + +[ddd0632b-7f4d-5bd6-89ff-461a327835b7] +7671efa01480bd0ed977446830b40167d120585a = "d0d540d24c9098986b6a4260bc7755560cf8675f" + +[ddd84059-9b64-5d1b-85eb-da48df743e32] +b4ad84ca5fde5f9988becd2cce58a0c7549d60cf = "aca5d44ee22d48b67bb0b69626333e3b2141353b" + +[ddf597a6-d67e-5340-b84c-e37d84115374] +2edda32c1e7a6910ecff9c3c02fb4a34431332c8 = "c36658b6c81afe2c9a7b7c385c30207073a646bf" +c4207f0d1d28ec421d684e0f06ff0eb61f85d2d8 = "fe26cd428409080815043b2aaa6610abd7ec93f4" + +[de03306e-617a-5495-a07b-a6b7842ad19f] +2a3bc7b92f3e9c8f287d1e9a3ea8bcceb6846028 = "c985a3a0b77f3fdbb51da4d380dcd237fbb9d536" +5fbf45e803990755462c18e3f7fff7de9caf6a29 = "c9a0499dadb5532894ed5196e120b55de7165e74" +afc67477c548643a81ad31dab4159c9d865ea419 = "89d6c3dd4733f04a1f5403dc8b6fe1c192a54e25" + +[de31a74c-ac4f-5751-b3fd-e18cd04993ca] +19c4e29db1a69d8a00e67d480c331becfe21b592 = "f704f10359dc9c4da8c13d9ec1f490c006ce326a" +3f4b67febd9d11e74f4f2db32fb9bdf9f232611a = "35d680ed347f93d03f24162183cbe8b6969cf307" +4feaf2d6e37163d435886597e4861cc182e4795b = "3dd228e98405cae37bc71f7c9533abf35e33d8c1" +6a6b6cd0cc1f39e2b60d3855739c0c52a2cba838 = "775c3b45f4d0293bc0779f7f5b1ce208b9cd35eb" +7d948938db5fa77922714d27a48c7d1716b0b251 = "10b0132e48882346b8fb0bec7e6100c98b879fa5" +b38338a89c82f530a67547991f0705be780e3fa3 = "45a297173c3cfe252eae977611c4a2e05db724ab" +ea16431f6c12e39992aff797e5a38d5ad30bcd02 = "175f1ae1e9000513743a31b29e138cb618b416a0" +ecf63dc4d034857b2fb439ba15d8525cbf14a0a9 = "f12d77439bc10f7a3ccdd34dc422755dec6bc27f" + +[de320387-30cd-5f83-91a8-a6e0ae8b8444] +4ca9744c7adfa6b1b706c8c76706f29540d8e52f = "413786c7476fec08be34c119472ea51afa0def92" +5841b3020babe087a8b739a6eaaf42a604be18f7 = "d0e654393d7c9fc498a0e338b47686887f2efdde" + +[de460e47-3fe3-5279-bb4a-814414816d5d] +5d593d914c7b9b172a60c87a4812a3ec98d3a959 = "f69d369b73effa45529ebc5b3468779613799270" +b805c3cf94db792a49f3b8b855b3edfcdf7bb067 = "a86df3c359df34f991ee2630c4e31dced1c2f823" + +[de6e09b3-4b42-5a74-8fbc-3cb2aad257dc] +220c46eb3cf0e8a6d70816bbaf05f850cd39a26d = "770c1b5d0701945ec16e46ea7d15f9a16e5645e3" +649816723f7f00b24f7386691355e946ff95f2a4 = "84a2d817aae6690912e27194a89673e5cf834aed" +93e34d5af5c71b83ce7d64e662049f9cabab4bb6 = "941e56405cc19dc2499d9c68d769958257c6657b" +ae99539acff09615d0be5135bb9a6def730ad58a = "b24b1fccef664a338465325ac2124cb3e66fca58" + +[de9282ab-8554-53be-b2d6-f6c222edabfc] +3c302833b4a66c59c32a92acafcdb97b5eb606aa = "8bbb8a2da0e2897063aa56cba675312571429541" + +[dec300e5-7e5b-577b-bc13-c7c11ad250bc] +a8b49fee6997eb4f946b0ebd7a73b6bef834abb5 = "e3d04107e677e96441301d8719dc5544c1be56a2" + +[dee08c22-ab7f-5625-9660-a9af2021b33f] +09c2c799a8eec599bc8bf2bbfff49ea1252dd51b = "5e95c3c6639c34979dcadc69af03ec9860496204" +225b89ec08cdce58f9b5a787b8ea625e50777b0a = "3e0971869faaecd5434c94097e676eaa8d51d71e" +78c50c3e317d9e02879be2c3d7528e87ca5bd275 = "00cad9c9e635198705032fae0853ddf4e2b851a0" +d695586876214d03603e0055e2ad421f21c195fb = "68baeb3ad80e2bd23cd8211c5d03fd2f214a166e" + +[defc1d9d-1a91-5c6e-a5d0-6da97266dbc2] +15ac69e39bd5d9b80022a4dc5ab74cc7f3853237 = "8cd75baf2d61c60443b15403c8f268a12df8d5bf" +36a48415830065b8379d1d53213bee774db41258 = "ac4bda46dcf81c98794c80d1474c47167613d176" +4809e555fad066c1882178d6ef8224170fa04c9f = "1f76377013344b336d8448c5f677e06bb19d9905" +b4ca041f878b089d4431b1e9d495d9f1ae77bda5 = "1d9d2256d0407436dbdc9cf30b4d0b8fd8c96b0d" +b669fb478dd2d4854cf5bae77c9a34910e97bb9c = "a14f64f8b32223032154a3efd31344aaad29c09f" +d233d06b0b158a134f72f1e1989dde0abcc8dd56 = "c5aff9010cd6a3e26aa9e10ebf9117b752e99606" + +[df068d8e-6bdd-5cd0-b77b-69c5de8ae8a3] +6747b089a5b9ba6eec01be0d39305a786d8ef671 = "118b97b8b27873593aea336d4d443ead68614d5e" + +[df47a6cb-8c03-5eed-afd8-b6050d6c41da] +006766516c2055bd462b42140d515f7547192afa = "8b23dfa9d17266a3ae37df6cc5045ec61db5aa74" +2ff1091a9217a2d9b0764a515fab4525ae085ac8 = "596092202502654bced63d299162eca35a07d834" +3034b379d8a689e3172e7e7224b0a4914255cb18 = "005a9fd03a3d2f414a228fea5959e3017b80b4a7" +54d3385e575828c176d3c091f410f29c89077666 = "8589a25453aafddf0ac94f9ffa03f08a0bb570db" +7e17dcfc1b331bf8d6067ac68eeaae00551fc3c9 = "b919892c0a6ca0393a6bb6871ea25232713d6e1c" +dbb27b8ddde5f320283ea5ed5cb97195db20d856 = "b0ea55fe2a0498c343f320ac24ff5b194431688d" +ebc1335252cf790e552f9310c2473df2822ad14b = "e512a1b69e8958e338af5e6ac5e7801b4dd42780" + +[df88083b-ffd0-5ec9-9f27-0a3b3d809c9f] +0ef62ceb9ae0b5979cbc4c3dd0dc21549a75b909 = "3ff6a9da3b13c08263d7549fa434061c21a10cb1" +1509a494288920252163923dd0136894efcfdd40 = "33121de13672625a9e0f0c5b942b827d55dc5950" +1545c4615eb9b59c77c1dd118f9bb5d5d0ec9cb6 = "f50307f39d7abf26b4f357c1392a6cb1e0a46838" +2398ca8d6c64bcd3258d877d5bd5918353e5f33a = "935091e8b11206f6b85cbdab9d2c117fd8f2aa62" +2af5cb7715d4a04a729f17c6322c3773e3c307ef = "c09738ef2ced8b99a0c7aae0ac9ea3ad64167091" +2c39890ed70111b1ee9bf6ddc66580248cdeefbe = "dd78d46bef991b92abe406fc84ddc0ee6f05e6d3" +2ea3eca49c686e12d10a82c27d5b8acfc60eee3b = "5ef04076a106740bb885a8b9e38131b2b4ff595d" +3c354b87888b337cd603512b5c9dd9bb6214e16b = "6005d97ef648de4510e52e1bf0075bfcd81bad5d" +3c3a83d2212c0a97114608b3ca97740e9ada6c4e = "9aaf5e0e7834165f81e5efc438b6f15c164b221a" +3e477321f888dfb7dbd328894f273ea504350bff = "95fc10ffd63ad8be63cddc2db09d3c57ad2d3e86" +444c775a6aa45a63732e7d9542bb46fe6fdfa895 = "d348004594b7500bb1800ec5b4ab7cdf5ab3b87c" +45480d1ea55ba27844e8f002fe1e2ad6c25b7893 = "84d86a864b162545b4de6e7203d874c94283433d" +4936215e1441aeb66d47caf05f1b011776040cb3 = "bc813a39eb12f30765818ba41472c472066d98ca" +572c984756946d3e58e41fa629ae2d99e7586216 = "07987e08cd582fd2c001097e083e97e6b3795191" +60c51eafca6e1bded764c7904529cab4ad7e8cf9 = "e4e518309909fe360745a3d66f2bc8059338ef02" +67c3bf6106c74a1bcd4e35d9d12268ff058b6825 = "c1866b66084b6bc75bc491b80238b040ef7ca3c3" +695fb2c0c5609bddf06b146e40f1311dca09f075 = "716957def1ad9cfb967d179be59bc486e9234e40" +6d518a9c6d4709c7f2497c1ebff64fd89c48f6c6 = "a163eeb1622be6e23e588f0fbf9945465e32f4fa" +752275d3d452890d0d2c7e63526c8a86cfebfef9 = "700b8b8846c8223b09ca8e2debd34ae526cec8fe" +76b03305d3bd30891515fc1cd17cc9df40159b13 = "2a4f1db143718949e1186bfe5975697f585acb4c" +7870a6dd3b177d0f0c9435431b9bb3f73e050589 = "49bf0ff7c932af9219d95d169723a846d280268b" +79469c32ac0860e838c55a57e6bb5077635dec76 = "6f9da0b6bb69394adcf460736dc4505bbf89055d" +979706304fb79554500e988cd0b5201f8fd927e5 = "530ddcea9996fda35059c8caaccb356b017e8c05" +a8f3e463f07264f3cd33b544aeed8ee4f466a3a7 = "b38ad043cef2da7848deda64e51eebb6487c1aaa" +a972dc9d2d20cc01f171d1fa1cd307b2a3208e30 = "f98b967d74311ee9d7ce03ec2f1e45fa93e699a8" +bb1dd80b2d49559e4a368e4b43cc0e51ac848d88 = "db1c14b89aa6b27ae0f4562f171dad8467ef997b" +c368db55e017eebd8318471272d8b6851d56359d = "1d79f3e3a3b5f14fbbf997565b1b5b5e6f9904bc" +cf68b87040272c3b335da98c6da604269e33a26c = "a79168d196d359e5622d0b20435fe4c2153f00ce" +cf778031780fe006844103b15dff6e9e85166305 = "2ca4e4c2d5c03c33bc849f053151d8c667ce1c0c" +d8131d4d254d7859b080b77a09b52509f80413f7 = "6edebc8b88bb3252273321697b4ea755dad54fd1" +ed2bdf38334710c711be5778d1ef53e3716fa34a = "d1a45fbf097ca8bb44303f5a8df8bd7ce1041df7" +edde9467240a92292a52de51deddd669b8b32616 = "d2514178ec1c87a957112b8fb7349c0e24f8449b" + +[df8f2f22-cfef-5733-af3f-96770d497d85] +2b3022214d899bfe59790268535df218de29a91d = "5786798c70279416e26bbc051820ff4a9ccb2231" +493975c17a1e4a3c46c4b773befb99926e322e1f = "3e851062f78c335fb0dc4a9717094cb707d76785" +68f466486e245e6130ed7a669284c77c97546ce4 = "d286a0932e6e41cd36ff4ec2e3f2c0df44948af9" +92082340590f548cadbde8f0927199251c406186 = "3a889851e1182d463f935e23ee00bb7d661b660e" +a865410c21a212ccbe299dc1d149ee0f9251a9f9 = "6027cf2c1aef6b8c77afba5ddb96ebc0eb992444" +b5a9c1002aac432ac80030f2c9de1b957f5084f1 = "e8e448c0376bc14a45910b48fbdb2e198379432c" +bc39af304bf91ecc48f4eb8cc9f9da250aa1dab7 = "bf0b66d27db066373304f8c2c14373555492d172" +c44453c961515dc82427e284fd7562ef6883abb2 = "5c4560fc9da77401c88d1d1da9200b604e1f0b25" +e11088228d6d0144697da928ce3e968033eda0e7 = "050deb5efd966ecea5752b2ff13ecb0466c44d71" +f9a55977df8e98b597d7442ea809e12f0376d9a7 = "d496904e06035b0636710dd3978f72983354b089" + +[dfba31c6-ed66-5d02-bd53-3eb16f72707f] +cfb0715354c6b19e2faea351c0f7bc3f6addb9f3 = "39297f85eba56856242b5c6c10ab3f7c36d0e34c" +ec2c2f5143787a7b175a607de758a3a0e05b28bb = "2f9bb1734e5ef15ada3d664ce6c9b736dbf0c3c4" + +[dfe93177-a0ea-5417-977a-ebc2ae938f81] +c6e705502cbe0ac61187665fa1fa449dcac3317a = "62b65aee772560dacf13dd33ecb30d15d5904972" + +[e0255976-123f-53e1-a894-d0440dea2ee2] +c0aece31e3efeb59713ae643002efb71836dc358 = "44d28523429e8d00330beb4a716ce3afc4bdafdb" + +[e04668b6-ddf2-5c09-b17b-50da0d2d0da2] +116878b10fbfbfdf82f786a8a14692054388ae80 = "81728da673d8d770c5b0199ddb0ce3a6a2d92171" +217ff7e42f9953b1d5b55794e5d5e8d8e26c15f1 = "c5a784fea92be40c2b2ad73c8f8df14e918a7980" +2ce98120ebbb92c49832501fec41e8b1953499c0 = "3f3d1f6e127a6f9ddbcf85745589aeebad8c949f" +6542715f38f9b548a7150b0e46e807021bf9b5be = "349e53559b1372b7296143f65a8d8a15b4e2ecbd" +7b93214385c293ee063279ca260bdc3aba7cbe78 = "7450aaa711c1fcdeaa6c44a258da164bfd4646d4" +7fabf351c7132a6757c79421e1ab6ed7740e97bc = "667226ecbe1571c056f36e20ff70cda81005aa1a" +b34ffbd659814e092260d13d8a8582d38d9ef214 = "c751bd98d439d6168e1565cdae491e547bfea951" + +[e094c991-5a90-5477-8896-c1e4c9552a1a] +02abbfd1772131c378f944c5c5c14e10020661eb = "62beb808d38e6945df960c5a932358af9fa51771" +31a446b03c7f31307c3a644f1217f53f9b2e52cc = "1daf57c78e01f11d9592046d9458d71af9c443cc" +36019dcaab8b878ab66af03cb1b7817d473c6c84 = "e862bdfb228607600a0f9f8209a10ae0f76b6a54" +46ed41bb347ec9df43604de840376eb84464489d = "1d6d62135258ae59c3fe9d21c94f52d929911eab" +4f4936974532d476c41aace0781a90e11952e3a6 = "126fb3182cb4c586356e0beeaa48f319ff330803" +663af619ea570340d524da51b0148e599fd2009c = "c15353af5830380522151a7ee5faf6b16f6bdae0" +a57111cfc20e28dd97d22dbbd578d60c94a8bebd = "b3ec8601cd63c7c32c1161de57536e228a68c7e5" +aa6426f512fb826530be862f12ef6ac9aeb91b14 = "c80efecf2947f52ecfab1a532b9a3b34a7fd6026" +c214df8c6440ae0c0e95ab8d5ef9e9b8e2781e63 = "e66b5d58068065ee2ca33697f5ad7204d55ed7e1" +d58be265badd698835c277c0a2a6a85cd166129a = "17728988cfad3b6e346ab59ae850a12eb69145d9" +dafbed0918e1ed829728b52b6b30d4d9e086db30 = "c382a41f8448fc67cc406628180ac6429d87808c" +efe39be160cb0044b505308151aac608af7e5e07 = "d329b4431ffc93c62c69f2b5ab0e20194a1b99dc" + +[e0b4c2ea-889f-54df-a5e0-fe74b3c892fd] +29c9d49e9128c20c0342ec5795ccb88c1653355c = "dbea94247ef18f9a10370c2cca1eb8330ac8f950" +6ec28deee4391dd6aa56c3fdc30330c386f78dd2 = "fcfdafb24ec0c0d3346d4b28541635892bf3cd67" +a62e842a92711952760bd311ffa11edbd327f39b = "96020e49cbe226d98c7402585280bcc13de9928f" + +[e0df1984-e451-5cb5-8b61-797a481e67e3] +13433b098170f3c16cec038728ec738ef2791c47 = "57e10fb7c66090576d950e4eb11aa50df3059f87" +13e5fd9e224fdbbd27303f10b8b23bac704a49da = "dc7368efaa898e90db01768c4f624dd557f0c73a" +1fc592eecd20a8f9caf83035d4a0e07e0d27b0f0 = "b256f9639e1156b6d2417b2ff740d0c8a355d66b" +3dd944426d53d6aa28be9ed72c46164b6a93f902 = "55e3c4683529047b206b3c09657777c7d36587ea" +44a36131a6a592f612ea65c0bac009612a3cc112 = "536159a669c48f76658ce1459e0a59a078fdbaa7" +48dda26682286f85eabe4c38093f35642446d06b = "b01036376ca8ff1f8f9a9cb31de9b27d715cd2d9" +71a75782b971d926af9feb8165c71555e858750f = "53081a259a83bd1455268704caf5f1bd07fdc7e7" +8621a2fcea71c58f153e59fc2814ca10871850f2 = "3f7b2a800e1641170335d733aa37a983e40ece2a" +9e67e1b4428d17e437b7134758851c2d01c402b6 = "345a06ddd796cbbf7d10f4427953190ef9686317" +b81cea29638cd2bf14a98dbc80a06bf3ba1ff4e6 = "900b55543ca2309be422199d8cc058757ed7d789" +bdcecc419c680aff15e0219fbdb081344f50c79b = "291c8b8259efef7813581ee282ae1471d2c6c30d" +ca19058f291792a2990e584b1c50e3173488890a = "453669672a9d3ae3cc402e13febbace60be62b03" +d2aaf6d793709035b8c1e7654cef0b5e973d9db9 = "3d9a9ebc79da6323feebc471405a6d5ae83a60ff" +d76878234f74bd54d178212eb660dcbc4873ea90 = "92049d04361d363a10a6e217749ce39ce659121e" +f007c88f2eac02a5f072038a39eaa6a8a8ddfd74 = "b663282a0c7418fc8d29bb45e7a98bb712adccb0" +f9932a7fde58aad515b7ffa027f64b5f868ee20e = "34c99ca5f023877be42af7bb86a984df2fab88c8" +fe90ad7ea8b9f524688131a6d967d1dc71cb8d94 = "8446f3475039731d792bab75f85af66344e1f71b" + +[e1397348-e965-55d8-8fb3-3dd9faf6e4f1] +d0f99f89538ab1cb25370015ebf66deed6703fbe = "2fbb94817ad7b0f054d69cac2c49e474c089ba2d" + +[e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d] +10c24d438142e3cf91c01fd7771d2d90b38dba1a = "01b9c1984a2628d155e6fc902cd7da539cd07169" +1ac857ae21ee569f0a5b02ce128e5297987f39d5 = "21f46d641cb4a611a9f8a9b11e78ee6ba6f3ea1f" +24b4dcb787a76ceac72d0e52b065d1b0e33d054c = "d00ace84d3f5eec37b51f24c5d5f01f43070238b" +54ecb787fbb16fef0eb2967bc8667c72ef41988e = "ae75a7ad828e4afc5dcb6da7ad9b08681d1878fa" +6ac5963cac0e8fcb2fcd32cccbea5ef7c205f239 = "5c3495cc015820635f72dd09989b0e9770a7af49" +7f49516f8fd6576716fdc6a68ebdce9bf6049363 = "e869f30985e69dd79e3728d781086d71f524a857" +90ae91778e4e3a1de85b970fab305ad7b448ba59 = "cda00da0fe734c6560dd5ae1ba49db5d9c5c2318" +a89539edb07e188c47abe28a36e22a4e1602763f = "c58fbc077d83ea2fe044e97623f5497b6bde7203" +adbf2de7beb909a053b40217bd7908a5237de4f6 = "5c4c64b65048b7d5169423621c4665b52cd1a8c3" +cf9b40bb57e88bcf1e808488392df1fcb78e4cdf = "c834799f756078ade3fd92e3eb54639fc6645845" +d0eed65b62278487a8f216b3e5e67b8ae1f61d85 = "06e117ecaa20f8081c14b545acefa16a13c8e036" +d26a90435cce2ad1abb7b263215e37739eb12d79 = "a209447c670f699764afc69556675929146db21f" +ec31f4e8924f94de90e90d681621b837ee2b16a0 = "811c29afd2a334465e442ec34ab234c8b9868ae7" +ee331396f5c6dff7ec1eda21a42e9fba341dbe93 = "534b3f81196e99b780948f5de73a9b78fdd53567" +f4e2f9fda5b185f8cdd6cc12341d9ddb66884cb6 = "33be61dac4df6d6314159781e795abb281de3492" +f7e71c130c673b2bb9dcf0ced908e6885a69ccd1 = "57be879392caf56fb0c1e93fd5fad456b7239523" +fc763c49ef1ebb0fa37c54e7bed3e87d7f8f701d = "b9a7f42a5d3b32cff4a14c400689374d60905b41" +fd271a237d2da76b2d5c0cd32fd8df3c6e7b21ee = "342673a9f37ebb68e466a44cd86dea12da20c2d4" + +[e16808c0-8298-5c79-b0aa-b155392dc629] +4104e2c4322a23454e221384ac918127f81ce19f = "0c2e987a681054ba63972617b4a62946e7e39ad4" +68b6c2a1a7eb8aeb66a3f9f2aed962d6ad3ccad4 = "77fef3b60b80dea6a3da08c28e7c9a3ebfa431ad" + +[e18849f4-891b-50d0-807d-7841c4cb7c8f] +0e2afdfdc26adb5c7a2c084eb43b3060c33cd35b = "51ad6ff3cbf8f0be75797f82d39cea78ee58fdbb" +10aeb904259ffbaef3ee11f3dbd604e0bde07ae9 = "4b16bc39a05995ec31ccc5e466fa9412e6c4299c" +2cf57c5ece68dc7630ab78ef29aba8a8a9bbc237 = "2663918ba03a2257fae5fc45329af9908fce4fe5" +6d575b570f61351ec9a0456e74901c53ae2102c4 = "2c59688af59f68a7e3a0d4f06796a6b376cf6b7c" +86a18817c5a5f376674deb73020bc88a51fa5258 = "126821558544deff8184e9ddd60a8f736e03bff3" +957898a4c4181d8dc2b866f3abbe9a57fb0e84bb = "837411b995fb28d883ee5dde8e66e1087cb92624" +a62d6b10b583ae9437322dd921902f127c4cdc10 = "afab385f2b9dfcd693e6f681718331a6b1c392b9" +afa3da222b3b3eb1df3fe1be76b4d892e91c9d98 = "d7b00c78816c1e326532dcb156fc69842f17025b" +c0fcad085f4b93bf8a70c0da52a86357c7ecf654 = "f2e459505bc93ed9ad3bca6780a7bb05376f85e4" +e6d85fe8f6799c5ec76856fb3ceb3fe88b4c2e57 = "2d3e41be6a02139db4ad6fb83d1d5b65637132c6" +ec64ba14fc4b66c668f18e6224aeb9dd7554fb8f = "606027416716c07f3a0d8bd21f50024335ee85a2" + +[e1b248eb-41c8-5a2e-8270-b68e3dbff0fc] +744f58d8314cd95e38b70dffd5f1f1c48020c05a = "bf0c5c70b227f9496cd1abc4f07c5e01012614ba" +bb95422226cf5f8c081d9e6a266f9cfc1dc56294 = "58943732f26b26ab135ed52718a8176d49682474" + +[e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28] +392b2051c888b7bb48d13372c78ef3f7fd912ebc = "fa88ad22cb8e351107863ad1ac1b99ba0df0a75f" +4287e0003882d055fcb0d42b8a5a69cf59a90416 = "855d03a712bc12737d4075aad5f46ea61dcd023c" +528e5dca3035d0a5a4742c133cc51758345595fd = "9ce9f9bc4ebb70927db618ebd1a5aa363ce68e09" +5a8d6ac47ef67df6520b6e4130e44b1841a3bdd7 = "ad864afbd3f16eb246314157fb67d197d08aff3a" +c08d4bbdc27a8257694814bba26200fbc5d11b7f = "b1fc27ef5fff964d49ff45df721e8d91d9e00686" +c784f9b6be5030cd37ac7532a5c60f39d0817bcf = "c3f24331e2e1afeca91afb8376daf11d5eec3b3a" +d4370da79eba2b18f1260f1e084eac3bf13d7f00 = "5a869d745fe9e979dda5a2895691a68ad7323f51" + +[e1e0bead-d0c8-5de7-863f-c4b0e859faac] +15e10908919413e96371ed0cb8d47eeb005ba7b3 = "d16fd9a8ace50733bba7496e3803056a287a3663" +1d38131a4df81bdcb386a01ce790ed0a42c55fef = "34233986ad5856b5bcfaa4b8366ab40c323b213a" +aee7a824d12eb4f5001c72d4eb164cce6d0a27c9 = "be5e1da761d86577549fde9b4b8f21563e84b2d7" +bf8ee5f7abf5d6afa4f0a60aa2ac4562f846cd7e = "a26c8ad0f527d19b2c4dc717f83d655aae67de92" +d0b9b8804a0336f1a7dfa2f5bf0b29d09c3936f7 = "315050ff98cfb125138d55cdee618f2cfd5588a0" +e3e5388656b26fa5c32032c80e29fd10807a7f6f = "cbb6ca3da7de9eede198f2f5d5ae47d526fc5732" + +[e1f3b4f0-2dc4-57d3-83f7-d4b7faf3b05b] +13ffa1e03ba1081dc500f7a249931e0d97e7d264 = "b53bb278f61995fe52745ebfc36a5b43dc3b7c05" +72ef9220d5acba2ece44b158b11b468057b0a2d6 = "99a4c1e48de87020ec2b26b7dcf7c277c1484c6e" +be0e9e065901390199b06088269cf03ba8b0b9dd = "220fbd8b66c4c62ac1dc6a461a160bc9723e489b" +cc4e54b8aab8623a115ef1dea2bf42bbc436eecf = "1673c5b285409d5a3cf89e2227f6df054b80c73b" +d3db0c920e37b46a8ebac13fa09aa0f961f18399 = "5811b840b1a32ce933726da23cfcaa5b5b756f60" +d91fb5043ecc9ebb6989038b0667c704d0b04a35 = "a00b61352384bc926f8ae52dfb3dedcb47049a9a" + +[e210f56a-9500-59e8-ae47-ce3a5fb1a75e] +011c701da41da6f4362be2acdffa8a8f9294c49e = "ca30861ab5559461fd0b953f9773fda58c830a45" +063358da8f5de205b732753fd43444a404dc5842 = "2cd5d30653b94e463fb1d1d53c5baebc4060e287" +0e31ef78006b15622c8c8d54bd03fe239447dd50 = "37efd121359672a31d767510bf4a2a6cf999c4a7" +1268756ec88c21f75bb1dbc9adf82a969ac73692 = "525d91cb376eaade01cc9d0326a302a573654842" +15b90baec75200235ddb4f8d6d3bdddc5bf11f9d = "e077b70851f9e16fa7b8a371f48a75566760192d" +1bfcb60899cfd829357c6e59fe7b2d6c17700748 = "5228734b427434069130001d8f91852d8853711c" +1f1f96024c7d873927a6a3eae1d800ae6f2f14a8 = "13d1cb6a9d5054526cde4d451bf4a2ab0307c024" +2c20270bd207664c86821af5de433c771b164356 = "2a3901801e905e1ee826699b1d92e77a17b6c43b" +2da7e26d5b9b5ecc7830eab2d1e874bf415dcf48 = "73f801d0a17141c75efcedc0b55ba40ff5385a7e" +33304f749ff7f19fa2961c1cea578e0de6069f0c = "c39953c01258853287e331dc9f4d08b30340c226" +341ffc1fc3470debd691d6c53e250f2c7288d92c = "0880ae60a2fed48ccfd151a1c83a2d3c1dcb261a" +3fa1c8af8deb8c8f3b5329ca542b25c09a815e7d = "32a1c6a3a0fb7639b9519f68a6f2efc7869b1984" +463c48b9a3cb9f5d6ca10caf518b6bf55dad800b = "098c76175bba9645c1df66c64552b513aa28cf60" +4b64bc2cf26141092a5eebd055b0109ef71b9d7a = "da9a823934e7942fffe450019552a5020ed54b20" +4c7500aaafbf37c9e6891e3b6a303a2e3a55486b = "6e3c21708638e79adbd9b370872c1dab26bd737d" +558cc74443c77746dddefebe3a1528b8ec26455d = "c5062572665958e8a5ef69f2dd2d56b55433e307" +58cd5e239cfda51918a37ac5ea61c91509be43e9 = "1f1f2108aee53de2fe55b1b3d9b0aa8c70aa7c98" +689a10646e38a708b309b35a89bc48211d9960f7 = "02473819dfa7c21109d3a1fa6c3bb269f37fc9b6" +729b3ce8a074360a25f5fa5440c909ad8b9c5003 = "e6c6923f6cf8c19e0ed7c2d62a0ec6fb4be98bdb" +76ce715ddac29a74015ee8c52376a5fe3144020d = "01020cf377bbdaf059d3b32bcfedf48b6e230ef7" +7c344cbd79647256dc16595bb04e0a05f38e2530 = "6093d37aee9aaa5750d190ad1c75db7e0287897e" +812d05dd24e1c5546fe6d249b1270f2e8d93446b = "fdda740883703a052efed35d7de62b6087d3621a" +8eca3fee2aa22c6840eecc1cc3c3be5bf6a7b478 = "e4cd8b2618e6906de1d13ccadfa3e4fd731794ed" +948223933a4475b68b26554d69ae66b713951174 = "8fe61debd14e24b25b711ab486a2c9f6f3a6a7fe" +9f625d8da99947ea18c66fd32be4e4f2d01a959e = "39c52e852e2d77ea997f62649ec8b179451aafca" +a39a3b00219f6d82fe6aeedc4204b4aea414f0de = "9ec94663721d6384113d7c9c2f8b00250e1c85bb" +a67f5f3332ff14e42a342f67be1902ef8fe82586 = "e4b96d650d807bc71121de8299871efc70f4b6e2" +a94c680c874fc22594573f81d78683de98dc2732 = "65aadbbf65aaaaf2809802b8f29c942025445a5e" +aab6b17ead9b702b10a6d0f004665c81b7341885 = "0d285ff0f6543592e7b926b627f043def1f0e763" +c05bba993dfbfd27e1801a07109ac35380c5bb6d = "33cc8cf06ddce46aa01aff92b5edf1cda8f29fa9" +c40b328b82b427774de226a93e6d144a1c9025c1 = "a52b72cb292774f53590ba1385cb2c56b0a9ef20" +c46bce33a83684332e34d3413266291728cb7f88 = "776e8d8cf631968fe121529fea335d78b8bbad35" +c4802cfc31d3a305780bef7793977398fc20a532 = "ef462aa0d526e944052b10638ca0ec7fb7db91cc" +c6738990966b0d5d37cefa09b248278f8170ee6a = "93adfb73856a615593ff03495af9e957a5124b4c" +c82675d4a39932d1d378e954844018cefc091858 = "044e4c3241bf1815bf272390c1283043b92fb532" +cb83801d60e992001144b4e13dab296fcd0df370 = "723af7eaf20d5900f89b521a12f505ac37021d03" +d16e431760b484cdb62fdcb483b201177766d641 = "d9c487d4d3a47c5d8ea46149dd044a8fd7a938ab" +d201b036ebf63afb8d7e3221f4ee869b95943615 = "a4913a7e8f80e4a4ad1de29e20c34f180ed5ad25" +d54cd8d16bc3bd7217ad6010338f6881a0f9fa5a = "ae0dbbe44f323ba2eae605bff67f3375fb9d8c71" +d57fd80c5f15185cfbb67c5baf62dae50f142a9e = "561e0946b331fbd17c684862144f560b64e28885" +d6c0c549b5a5b4f7b8f58aa54b25e56c59eefca0 = "e4380df4516e5720580eb58832475b5decc1acf5" +dec23ce619d2d1386188d1625729bec130f7ee4c = "57d044bb56783c46a9de86545c593802cebd3e2d" +e618ae6c6747b009223697f6f82128a1518a9784 = "6dd040ba3a161503a4ef15c0f9f0624cce71107d" +e9d005b937741bf351ab90903bd922cbb79c9903 = "7e93b467e8fb77e7f6a188e3162477ac3ab1551e" +ef16c7eb9bb43322f2267ff0c746f9ff99fd5023 = "5feca91942c1c65cd76d59d39818e2eb9d6e22ed" +f281fcea9b39b3a323a156b83bf30ac0c0ed2749 = "04475944cbc45c1d550fa7a0363293a23116935f" +f648849035531255854ad2168f94c37c719a7bf9 = "e7d1b3bf1d70689873696bd07bb4be1bde90b0f3" +f93eba33d8703a0db3975aae06f70446398c1897 = "be9c73ffe009ca882a2c4ab23e998a848cfdd0c5" + +[e21f4509-7b4e-5b4b-a375-a5512fd6f24f] +b66357e3d8e834ba5dec6d771c44ef33f5d90d2b = "fe70401c59d89ea4645575aa7f586fec6ac2db6c" +d048e2b13705038ffb9803a6ff4ac9cb5862c24d = "c3c5cca89c6a856caaa73cfb2457e185a3f06507" +f3e3235b9e9f339068a2f6af15b432376851a2a6 = "63f758d80cb064fd45b10ba4090fb2e3e4af98b5" + +[e220cda7-d851-5a2d-9985-d1627e9abca7] +01bf5f5f1776111a5ca05ed88566ab90253d9e99 = "3ca10edbd7dbbd133e039e1eb733f859066b79d4" +0c28d4841c8ab4323501587c4c052eeb2b28b296 = "3ab62f8e39f74f75b00339514d19a155ef0bdda3" +0f54fa25d033c492ff7e1028b6c4b97340e5e30b = "37b5e7c8070e93a63a9e07c56a0c96e17ae759a3" +1e41b76a0db8566f5c5e5a573ce7a8f0674e601a = "991b0c8b9b33303ebc3cafb530ca9a6986056f2b" +2b4ca7c5336ce6480b1ecab73adae34a35fc2b2b = "365fea1009235eda6382195201ef22291f4e3090" +2bc5f6803fcaa4018051ba20f84c2a68fa0667d0 = "e8bd4a03d0bb78f26662dc1e84830c902436fd60" +3f5eb47c72ca3717c9f9660ef5c34e888adfdcad = "1027bd7d58bef6a71fcd9397ab2e8cf2cf866b8c" +5e438ede34df962099ee609fa219afd62d09114e = "0ebe3a0873d36c4da6aba1eb362135b7de5e3a7a" +7141fa8941dba9851562fed1440e0211b58f4073 = "80f754e6baf21228e7077452c5e315bdb221a7e6" +916217907601a0143e3fe7b21f6defea208c4633 = "dd464cfb00afe9d92f6f5a4b4e795564755a7eaa" +9bcef6b7debeb6bb792cc7cc09f7e94095363607 = "d16a146b6c6a8ee848f9a33a68b03e56bfea52f8" +a369998415d26b34a585fffbda3afb42a051f369 = "a6b24d99488e326c108955c406c0f51ded293285" +abcf7a6f8728ec0e4445a76e4d5d5cca2b47ea48 = "d7fe98c08f5e21a1b98a8e8d4644abde8443407b" +b8d3d5ec4044549d8cfe71a0f9f7ffad3acb7a2f = "00ebdfa310c36e73e23a0d3f1a4554363791c69d" +bc3c8fe24e49e422ca276deca4797ddad7a1dc4d = "43778a8a4f33029cccccb6c4a4064ae1e1c047ce" +ce79a6dbcc44a41d1fc4421d0d325f6752387139 = "55ce83b30932ee1678f34d1c1552c4b269772c8b" +e9bbbfb9c1af043d65af1c88c71c3d98eb2102d0 = "3afda6f6e1f4994e1c80b326f9618251434ec949" +f5205bd686e197cad05c113325e6b507116fee1e = "9e0d66060fe7afc6ae8b55faf7e9e2cfb1c458ac" + +[e243d093-f3e7-5ddb-82fd-a47193d1c26f] +67c0ac679b335c6bdb88dd51089fce70a8f3394e = "bee7d4115acae7a803c235d1103565d87b88d8ba" + +[e2554591-2d5a-5553-bb4c-ff0ef3342964] +0ef96214fe46be758806deaaccb5c38b0c5f09d7 = "013fed15932dbe1191d0839555b4e144d2f61ae7" +761bb6c5ce5800471ff1f9538efcd9a24b4256fe = "de43b01e175628caf3cb77d8001a7028a250f9f9" +e685b90635d19f3fe58c664c34afa73d26a6e8ee = "bfea86cd5ddfa9f9f41d34b84c12b4cc14717d89" + +[e2554f3b-3117-50c0-817c-e040a3ddf72d] +1ebc2114a792476fe2d9c297e7c3604b24a9ee16 = "1fdecab903880639984040521b1de5f74b9149c8" +33862e62204eb7535db5eea3bfb84ecc16edbd2e = "a44ceda9c3713e7d6c5453a34f396966c3e7a25d" +33cb6c31e72bd958e409d3dcf868f1a8a16cec58 = "8a039263cdf8d0b8eeb6344fc0b248d4f2001f3c" +3dde8c21e24eb61f5a7b2d35e03623a1c57d2a01 = "3a13d3e06d066332b95ff8cb969894f810e15221" +41a830aedf059c4a67ae0e90ad2801aff69441d8 = "f56005bc35e451ff6f3f4a1ffe857b784c039ce4" +7b34db9d90e91c298f2a2c00335010fa4befaac8 = "5bd949f1e1cfd477516b0486e8956cbb40a1f072" +7d674d17b1310cbe26d083ddae412a451d6d9501 = "b471e08983f12159ffddb24c7dfe2a74333928e5" +841530cdeaa302c8630f4c68b52bfb015123879d = "c4337ab3ef0b770a15aeb7e6c09fd63d2ed56c97" +8a7cc69cafd1cae00b1356e2b2a4400242d6f3a0 = "9e75d8fcfbb039da2a294c3e5b0e648a37e18d6f" +98c06ba48bb139ac19c5ad43d91cf196fb05457b = "5d03c40803ae8a82706f8235693f733697948dbe" +aac279f6a07c92d5fcfb435f64063672b73cf198 = "a7f3e2a3adc4ad0efb7bca18bb8fde8038e909df" +ce11ac71c8817fee585350a43bff2e24daef601c = "96970ae26aadf95369ed3831b3553346936e0618" +e3258188f6d4c30e302eac48364a6a28f5560fd3 = "fc51d87542b6e77bf7f8f25e10f0cd91b61260a6" + +[e25cca7e-83ef-51fa-be6c-dfe2a3123128] +ad0af7b4ca526cf5a191a06d0ca724f337d75e8c = "eedef7793f548ba97e10825414ff21eea7d97ee1" + +[e2685f51-7e38-5353-a97d-a921fd2c8199] +04413b68f9d4b70af8f4742b865e4f48fbb17a79 = "e073c20e6412c08e56b2fa03deb46242ef4e58a3" +04ca4bbc98c4729970cf65e4c477824f19b81c52 = "06c9f053982902a2276b781a5bed8af8cb94740c" +0bc26dea8994093b31f9d6920fb81a2faabf1fb5 = "be32887968344938ddcfee772d055b88bbe60bfa" +19898728d90f758b5ffc6c7020aab742abdfe4e1 = "f958eab66911c37c86982671fab69c1c63cfb778" +1b4cc1537b0bae3bd4f03cbe1f9c9473761a63ac = "3a5cfacaa01c7db71850d28734d00bbd2b432319" +4209c24464db1f2b05acc7e71efd8cff3f236029 = "73a7ee8fc804706b05087e5c4fc65fa620299928" +472b3534951b89e1848db4dc806f4d25ffdb6686 = "8773a0fec60a469907716f9fc358bbf307438630" +599d5bd365fe230110c66c92bd10c262b1532af2 = "7c71a702898a8aed2df7ef87ceaf306e10fc063e" +6bdc96e051ec65a94a0eda29c78d0c6165f22cfb = "3c8effac5096384f6a4b674efa5d0c9c3b3d855e" +74a0d0198f9d1792fb391378bee3806621daa0ef = "31327edec65cdc0d98101717defd6f0bec476c25" +77fd695ef3c08a93c999245bd7b786c167ea68d7 = "f97a1d4fdb9fb56384aa6f965080655edec1a0cc" +8ae212231fa6d65d0d020a361dec0902991f466d = "e46789838d034bd6c55a1350dc9cdf8b57eea401" +8dd805c642c11a0f54c82807b598a069a8777b5e = "676505f5d17e7c5705d7f605ffd88f9ac1b921e4" +99b224ae7cdf2b794393ab352d15b2c0c804e173 = "1c5115497e36fe720a5a6c2dce4dd2a6e42fac09" +a8bda52a5d18d99626c2d58cf7b73038bb62af83 = "670b2aa69db5c553f7a1f10b7be16430c25b7347" +b32341efb61a11be26a061675989ba38662e126c = "950d34eb723477ae0fd3ef7ada3b82e1ba457d02" +b7e4a20cf40693d35452b24a0d73789d19bd0d76 = "aadaeb4104cfa41c0944fef74091ef0d1cccee0e" +bc7a08aace67ceb246091ece6893286da1a927ac = "f973265c87002967257680dbda156645128a672d" +c822c76401c82443df13951084437c03ff623cb9 = "bfff1f44c9d6cdda65e1184692be5a0e36e1fdd0" +d23254a6605bf36a4a1ef73912d0b650f3170c49 = "e3fd622f4d4dc36cb5e5a1ef06723010902a23ba" +d524789ed7bc66f63af25daae1cedf789533b863 = "324858e811c6c9ebac8295073a76d62e7e648893" +db17f315964258b79dbc9eb039268937359e5e39 = "766e2530dbea120d546e6e9068acf64f8f8dbabe" +e7addc8895b623ca03bc8b054feaa81899a380fe = "67ed6a01888e9644111f5919ccaeb1187be14057" +ed0330725580b8591a813c2bc1272fa130560b67 = "013833fd3c76dd84da1e0dabf50811ca7e1d7df3" +ef1b05a134aaa9b3a484e3db8aba5d8590062bd2 = "c1db8b98402fddd96b0f23bb5c1a67fbf710941e" +f2e9f45dfc4dbe318135bdfd56bc5fa494fb5899 = "639e4d40a2ea44d13ab5cdc8a9a8b85a68dcfdb2" + +[e2860157-3336-52d5-8ddc-1def50726c76] +721a344cfa2cf8c6970b7f7ad8a3655c0e1cb9f4 = "a7d72cb8cf6eb2e018144682c70ff8a91898831e" + +[e28b5b4c-05e8-5b66-bc03-6f0c0a0a06e0] +0681a1cbb46cf302326bc15e28de30a68fc72c48 = "93535c6a99e5a6e1431dda6be157a038c1474bbb" +0c462823dce220fba5f459944699104a55420829 = "157d2382232f970ccbd9742d5c210157b8250fa4" +16c7c99d5ae8d3ab8f1d8e8e9b9bcf8de60a918a = "ea93de2c0ae073e2902434d47ea88c46a5e0100e" +39401dbffccfbde2f34f3b1bd1914f237f487ea9 = "404bc548e439e2737e57c78cd283024131439d98" +41ac55b267defb402f698084759d352cf5107ff4 = "2198fe51078735bb2402928962621deb80a174f4" +48d0a2c6194a7ec06ce7510a735c3456a8a5b392 = "de56bbf5811d2af69dc7ca585ce50544ddfd3832" +718a2439fcdcbd8ba1cb3df0ad511ed7ffa9a29e = "5e90deb0aa75da7e9d071bbe54d7d28a6bac5dc8" +7a14c4efdcb22511ed03e9f2012eb7e3cf22c434 = "a7aa2f09f059ce0a6b7bf1305445070544be043a" +aecf73ce23354ccc1984f64bcf52c0265d2caa99 = "f3b61160f1a83f229fcb41bb29ca61a6b1d7a08c" +aefcec66b5d14d327b2ac1e117d768e39a30169e = "033c479fd9ef6614f49248a1d726a13070ca081a" +b0a75bb20ff41005a1329016cf021779babbb60d = "e79fb6e1ae9f580e41b7946f96f3703080c82af5" +d0b008a8099ca2bea381bbaf2e34f61bbbe0d9a4 = "ce131e16f2899eb2e1c9e85c8c36d494d7f2a4e7" +fbc6eb4ee8467d98075f908b34a0c7793e6c0393 = "2329430ffd5203932bbb993a207a667918619208" + +[e28c723f-7d43-5a39-80a5-dd45f382d5f2] +48ec678b34ca912b71a6cfc36402043c152d8683 = "a520829c8b2ebce1c83b03948e4a87bdef0fe6d2" +71645586c9c1f82c60ea415ed9fa90575d8b83f2 = "9cb8debe4b2b49b14b7d03bdad0b8f0775e906f4" +753a74faa605fef22449b3f35bbc0f5024e3cdc3 = "9877d9d482dc317bffba7820814251d08c12154c" + +[e30172f5-a6a5-5a46-863b-614d45cd2de4] +0d77e0abbf2a545eba176a6c4d6d04baf039559c = "867a939875e96661c49d13a18112e960fc4658a9" +11f7132000fe15176954bce599882a433c7164e8 = "065f25e37ca8de815f23f6ad02213b066517cba7" +194db3d1abaec7156289ce8985adf783fd3a2d6d = "e6b690977dc1e1bc68d0eda0c6931cc1efda464d" +25a6f2f56a9d73713393f6ada254f6884fc5d2c7 = "b2a56ab3730083fc37e1310a736deda900499372" +271394e53e5749a13a00d2470159dab562a88ffa = "ca7642e7c5451d91205f1155c97913b968f77604" +273953b0dbb6fa5d56bfec888b987450c5f1df6f = "aa347369d6cb785476f78bc2e8a552d0bf9370bf" +27c3dccf769c689a61db91d983062bcf65b31893 = "a166fbb35078dc3a568bc6b813105dab67d83076" +29f712fa87cedfd29282fdb1dd4464a754dd01be = "8ecb6d919b0beca54a5e0593245bad79871742c5" +2fbec9a0db5c3bf4fd6b3dd72d415d11600817b2 = "080d2d6f224d9ddbb5783543d70b7fa26774d17e" +31f4f43feedc272e1a85ffd2ee6ed03bf49e5083 = "a24dee88f88924a96ffa2c5f66e18efa9fb24683" +382b00b09d35d51478a388a0d2bbe8429542c9b2 = "ee21fe8767179468b302788101d7300f4584642c" +446ab503f658c408ed3012ccb57fd2c399c16e55 = "fc623906be136776ad48c78eafeb273acb0c5b52" +491c97749ba687d16ccc80fd7c914ffb09122415 = "7f2d3887bc5c9ab84558a17bd3c73d4232db8a31" +4a3d6702d8da241e5678cb70faf1b31d292d16bb = "814cc9ad3e734861414524838b570f6d70e86c81" +5148b83ee163c6a063adeaf9ed602fd555ac422f = "b670a7efde4fe7b51d1a35c39ad61d3a48e0b44d" +5282458e0c93aef7ef1f55e698781aaf4dd4097d = "eb2e82bcfcadbe84c681241e1510e741c95841e9" +536394956e5a1bf6fcf96b62e2ff9bf9496745d1 = "f845bbefa4a4d616a50fd5bdfe9f91d85aaf0f72" +5593b8f55f6ab191a7fdf76df867936a19d9e83a = "71be83e0bdf77f25675ac5e4684936d828b7728d" +56990dda21faddd7613ed6db6912e2a30b6299fb = "77f16163fd29f68ac41d511b901f6db70ce822a8" +5a6cb83b46aa54a739ee5166582b8bb4c39a2ee8 = "5cbfcf05ac340dd383676bbb4a7e0994715a8325" +6648ea57a36651c82d4a7583352f9e658386381c = "c332fd39142d1f46c34cf9b8b9fa2558d6ef0669" +70225b69f5090f870635ea4928b3cbac9f4f0fed = "a671929d8b6d3f2d9832cf65f836273d3f3b751e" +705568347d43564c136127d1d3646f9cc729b040 = "a0d29a1bb07dc32fa2be3b862fc61bb2d5d330dd" +7059478e1de68bacd5798d404927fd2232052f6a = "d16de865d4b2f35c46e82857a0d6a8e37f6857a2" +743a736ec9e0d3dce9bb20e6d52f07352b802671 = "8a666df93308ce08c8d5254ebe1c80a5bb8cc370" +7613893ef11528589d9f151fd16a6578ce1da363 = "dc4fd5cfd5409e87fce8b2889dc82839befdd606" +7d7e1b519523633139e3afb3a9be40799b480d14 = "b24596805ef52a32959bd0f27162aec60acc42ed" +7d8cc186bf787f37d517d0cf8475205b56f23900 = "d8418ce56ffa833795832559210c88aff8175702" +7ee8046c66168cd635add48cc2f5a32260c1bec3 = "05c2e5f3065b07856cf830a7b6b6c4ca08eb02cb" +8867a3602845ea21daa085ba73fd2f7d2b07566f = "2c4dc7e5450eea2c5df1df24940a058bde1b2854" +88721381f35b57ebddcaa9a6088e879f8243387b = "52fe8f514391fed54ab83310a7de05dc3e6bea93" +8a852ce3d009cae6f138a4a11b2a3a838c2e6e4b = "41d87363d2c0fb6abe45870ca79d342f76fba726" +908efbe7aa8be4c9d157113bc939a0ae3aec4e83 = "4aef7164a5f61f80b9ba382af282e841c7c64155" +9c23e4d43b9652b2f3c8be8adfffa47db779037e = "8d19c9207f035653a842416fe1b699063fbbced0" +9d447cf758628b25822fb4255326418c16e355c6 = "456c5e8c284579a92f6f7d85644b4af9b9d771a7" +9d5883bf7cb290c27a29db05925fbeec66514384 = "45c869cae4b5a37ad675493f7ea1b2e7a058efc8" +a40fa719e43efb474325497e3f265491bc07faaf = "b5d1e6ee76afe95bf7c9561c973ff750eebba3c2" +b0a337b94b124affda5d9ab3a957228238c2e1cb = "6098fa3fb18ae40a3783e954379e788deffa4908" +b27b707da585ece2beb251b4112181510b72db34 = "0a4771b19c9836d42c412a389931e37f4ab3d70f" +b6d308b07ded1ffa3184e59463a61eba9610cc00 = "cd9f240490ac7278087694f5dbca30f50512a6a7" +b7c4d5d2a909fb432bec8679b80d3266e0d00366 = "1be279990f7f2e0d854d4a059e449fff3bab621e" +b985e524f2808be5b1a6dea58350d9969a47c6c1 = "f34456c7507f2af6a637553e61b0c556d2ebda39" +b9d42a39464f6b059cc8fb70cfc2641ccf7dd029 = "fd41cd80a54f4023415f2d739c664341a145b747" +bab60cb966fb2455b9672063c5d8c88f4f1c00d4 = "31eff21338dccc033acdd8495b7dc3afdf2617da" +c189f738c33e2e07103ba05478d84b0098ed2501 = "d50b6b8cf0e77e8a8cc9b8509b5b5eca0b2d425b" +c5be239597babe9b7ffc1c93ffed425a2f149c9f = "c35b104426a826193e8e00ed754ecf899a12f629" +cae54938b8aba174e613a81c1b663106a8600551 = "b71ed1f5f88555ebdf369c4317d178f12380c9a4" +d7cdcbb39a9d8b6d2dd94e52e90e1782b2a320c4 = "dcb556b2d5b490221ef01231c2ae84b2b13a79ee" +e52ec25e060bda16dc18e85f681144ab1845a49b = "ec3847c19605a61b1f533218ccb3d05c4d4f66ac" +e8f437a73baff265a40bf099132515b71475a5b9 = "df789f44d6d3c489e9870d41cf8ac2ffe9ff2d13" +f3d7d191e6fc63af67309ae7debb909c358ee0ab = "3194ae9c42ecff402812e96809f7fc4108d850ec" +f97c077e42eb8c5db1f2ff0f8af70eba8b665672 = "95e024313b921d4393c3c2300cd5aba5f5c37e04" +fe5beddf966c6a525858656860c38bb95e66e9ad = "1dc1d6c8249eaf3e2741ef7c71df3597807fe5a2" +fe7540fdb657edd8b841d652021071a0fbe935fd = "9ccc032bddbb3e6b07e4724da421a3f15504b20b" + +[e33dfbef-2ea3-5ef3-a604-7da28c17a6d4] +3613c6bdb6c95d3fac2d83cd8cfe8dec9709b8fa = "eff0a6d76069cb5c44f3de01d013184bafb32a37" +5a5d30bf86873c3d9465abefe10ac771500405a0 = "8a1e68f2d6921c000d45951e0248171594486f2f" +66d15afa66487f22c8b943ec352d73e641215cbc = "c094607a55186a16bd62b83fab0721417edf720a" + +[e3415d5c-09e6-542b-bada-f9fe353e6f1e] +55a73e5cc1c8adb4b7fe15b9c7ac7b1a37a5118a = "df83772907d4f8876c01cf5f9eb63aa1f2f1f801" +5eb55a29f0433b9a86ed2a889b65b54127ceeda9 = "efbb626aa4d27a2576a964e29167ae26989f484c" +95920b40614270aac3c529e18114269ab834ee77 = "00dcf9541dee463e07f0475d5a9fc99fedfe619b" +f3f875d2a6e8e068803faee4ec9f4d31cc0440b6 = "98c3bd468fbe3e2a9a34b0dc804d3428b8133309" + +[e3752997-1a1b-5887-ab5f-06b776b4288e] +9500dd429423b9ee6d490b1caef4ad9f1424ca93 = "e6969a0a2bacef7bfd9453ce76c792d4035f8beb" +9755e706b8f90b500b3a0248f65ae3a828c5f826 = "d51b5668767e09449168151c12e38901d0a6127f" +b5e4f7672f2e3bd3bc7ca8b309a2e3eb92bcc86e = "c86c018ac02ee09fb98c2064f66404dd031f9a93" + +[e3819d11-95af-5eea-9727-70c091663a01] +194b79528a51c7a59df7d9e604cd3306e79135b5 = "f20d633b3d8fdb6990b615357bfe5ea07a553bdd" +d4bd3519a0682f7a81ae3b06e044eb1d9ed6d7e0 = "4ff5efcf2c06e6e2a8372d3658523ba6d8e16431" + +[e3ad505e-1421-54b5-91eb-f8fab629d2c9] +0325069b7c171b0db189c69c5636596505ab3e43 = "14be82b67716c31642895497599e77ee87b7e697" + +[e3df1716-f71e-5df9-9e2d-98e193103c45] +6490b0ffaa8a3f91f1232ee67f2d421450e83e82 = "3b1ac3ec9223bd84567879ea47e39aecf35908f3" +bc557504623513a1128d83be79742a25ad521c93 = "bfc843125191e48da4948f67616c65cb0858c229" + +[e3e34ffb-84e9-5012-9490-92c94d0c60a4] +18927c086d30aa6d4c0cb9bd0d2dd97aabd1ec2e = "685c9fca97fc6055ef45be09030ab0afbdac64b7" +191a38741f36267fd29295c20ceda7df7d33300e = "3056319c992190bed7103401594f1f4adea1b0c4" +1b9935e49f6f2e710759b0749edfe3e51a594ec1 = "28c405781511f0be344ece2e391b198e97ab363e" +543f8561678954eaea72b2dd470489b7ca61268d = "d8bbfffcaa9affdcf444963a558a5c77732839f7" +b79c740fbc9b2abec1c58c1add2e4dcdbfe2850d = "78c39ffe476c2961d2328ee82d05fde8b6e4d01f" +db8b92ee54d7dcce982fe590e79c822bf790dbac = "7e5b2099780f4e988082e74bdcb8e5000da0fb3a" +e3eee09805277e439d640826129e830eda66dbed = "379bd42a858cd6b5f4dfcf473cfd3595dc80e826" + +[e404c9c4-5aa3-5482-9006-d6d05ff6f231] +22168dfd06bdff84fa59ead38aacd31fc664e8a0 = "18545907d9526485b2115eebd898531f540333df" +58e091200929475b38c5aad25a3520f335c683df = "b5b490e0aac41236aefbca1c9ebc5e6d410c6512" +ce94da4f2a234157d6755314a051e243f6f82b24 = "07b4856ce69d335b3aa4cc0c19673605e201919d" +d4c5a2f4fd0257e833ee2eafcee74efbd4cec705 = "7dd2b08c2024a28fe0e012380713801eae48f53b" + +[e43a630a-7162-55cd-ab32-8b2d01917861] +433be291362c65498372b610b98ab9362b63ad59 = "1142f9271a30588ca89d9b736d82456be0eb023e" +4691b688e70d457d4348fbc3472ce69aee26fdd4 = "978ff10fedfd181804a3fa0b9b42b2fa0a19c4d1" +fb5d5278ad3ec747ab7c3f9975f5ae07dd5905cd = "2b22d58c15a94aac4f5564cd5d2935b05a1910a0" + +[e44e80c3-c1a0-5445-b28e-0e14522c62bc] +1ace061bb8103d6b802f2dff8563e2e34412ec00 = "950313e50840af8a718a87d5e1a1a658667c00fe" +5912e56015de9c64c0cec60a1c752b7b0697de7b = "74bd6b330ecea7144ef71b870c20316cbbf09aeb" +f98eeb3bc1522ae1837841e62429258dc3c8495f = "29760827d501ec0d7946aa4d7fe40fa167cc6b47" + +[e49e52ff-a044-5211-b256-ac9cd8f555d3] +172f02bef07a4dcd6ab6a52c2b208ffd64e9c937 = "6ea48a8427ef79614a66ca45ceb7c38a6f52ea90" +175fbcb051e1f84fedea3edf02df0ce322ceface = "deab7103ea32c3d0f68cd722d6332afff59a91a5" +19c74cf2116d5656943bf6c475d5fd18b1ae5aec = "5db257ea213d684323516d3b614ba8cd667e6129" +1a307e8e178b7afb6169f49c82a7072fc8e0e053 = "161a29a9335d73e38b80cf67d0d4f32211781553" +1d0f4b5a75d5b67098429e1c87492d3f8c8dfa3e = "97a9e2cf7aafb72ab3cac974a80a81f8428b6420" +1e2060396bb5f92c4a3c7b6c4c832370659aba38 = "b86c6573aa8e10b72b487d76c6c67e018a8eb70e" +1ffbaf7095119329d5b869327b9f5c67febe7a30 = "484b2a9bc07324ecf7708be6bf6cbfc4fa94dafa" +27dc271e6c60019687f1e5e3112aa52143c370a2 = "a387381b6254d7a16476a8a6d12c64143199c2a2" +2cc2442ee5432f9b435803d3f17518a5faaf1354 = "dab1faecfdf40443b99cbd12c1fa953077f052fd" +319a555b98be74ba1cf6a57f0f4470ae3cafcaa7 = "db9a307040e05432fe030122deedbe4eeedcc98d" +34f6043b1020962cce8e6fc36d0a3945beea1e6d = "fd900283728bb481f1491acd57dd7b90e40251f2" +543d024deddba3adae66aa7292c7ba9025a0e4b2 = "9dcd06384e47f89c7db9e4e070b104181b0dc0c3" +62ab5b3874123b59db05d3fcc792c2cb0ea21ca4 = "c5e32ed7ed208c975ed08309203fcd7e0444a4f2" +70dd902f6e652d1b1f4378d696b8f69fac63eef0 = "c719242317cc72b1bf670b1bf5f71625dbcda50f" +82d55c9213d6bd3aa35b59db32183819ff2a30c2 = "5ad48bfa7e64c3a5790a1d5d72c089ebbe6b81e1" +88fa09aba0ba8f4946c4bbf2d4036fb815ebabf1 = "39fa8a1a91bf9027952267566395bf8abec4b7ef" +a2476f3be0776a8061237ea572e40d07c10986e6 = "f59ec45ce826e66ebc56db039555086059abac47" +cbe27f91751060e608b4c8417d1220206ef81a24 = "7ea1c1ea9f28fb1586112d2ad2133e9335e242f3" +f540a252f8824f71d2df77074a3792ba2420098e = "fef6ad6040c340022738ea6e343dd854dd7a932d" +fa94a5558826df32cee40f833eb88c2c4886435e = "33888fe858392911fccdd797872780b968135d05" + +[e4b2104d-9c17-5378-9b07-7788b8262d80] +04f7120f60ff5d085705ac5d07397be78a09163f = "8bb9d659b9ec24349ed88bf1c232939c236e3704" +08904f5116b5c90345aae67ae3dddaa4bf48f327 = "5e0949ca2c75d322d7463bba611ccee6794ba9a8" +0e1cea2371875ea9dc3d33b7292f1a478813bf8b = "0a16bc70839e19fb89deceef830f3a4792d8484d" +1766f975860bde7e95f8d148cc2c00b9013088af = "17d6c9ec0cbdeb74d33f357b1919e20ee9ed5464" +1df5fd3dcfa9a85285f97c5edebf8f6aeff10d97 = "cb8a3c6045ff85a75987a3951c5b92e2cf15255c" +1fa7142b926e67b19fbaa6a47c8910a3cb20d036 = "41fde8019ded4190e489df9be9a99feea2b5cff8" +2b9d1e447133929ea2a441bbc69d7c76db6137f3 = "936652ba612926c4d0a8db61aaa44e0b0ae4e1a7" +9bd05a6b0b3a2a4b6915281cb221797cf4c56ec7 = "6a9174a2d3f8e22b4b4e62d51d03f4664e93e254" +ba4257485a47cebe6382c2b437fa28cb74ec5266 = "d2346d24ab577102d09b3d2de862ca0de7b8141e" +d5280d883bd80e459cffb575aacaaf09f89ec7b7 = "bac7b089d6ebec3beb39464ab18d5dbae72e6f1c" +dab4a08f1e5cef5dbe76d6c7c3434decd34f6144 = "8713e997c05b3d3b3dd811138c396cd048ebc7ed" +de9eaa3b29a8b879bdbef1bac315b52bc5c6d669 = "c6f4d94ff7a87ee50e043330a25fd7ca696e95b6" +f4131bae8d0d8ccc6b8f7994453bb6bde20da4ef = "07822bf448a4823ef31e0b80f66bc17e34bda8e0" + +[e4bdf1c5-016b-5777-90bb-39e5992355c2] +8b5415f5c5a16b73709943b67f70ea1176d02198 = "c10c46240c6c6fb564ac7cbcb671213cc1ef0403" + +[e4e893b0-ee5e-52ea-8111-44b3bdec128c] +0730fac5ba5522fd600e534692148abb79cbc46e = "1936dad7621ea9b259edc8ba4ffd835d2e2519f4" +0af0dc20b1aa73c1847883293f72f3c72bc97009 = "e0c9de8382477a6a0f97c40f80d88236ac453bab" +1ae85ef175db8b7ca38a627013dd73b9fe3f5252 = "a7ced35dc04d9352c757380863794a37397fdb26" +2f8bf04eff52585ae75e3dd71afdbcf9a6988a00 = "e904a2f5983a43cbe8aaeb8305b4dada7a22e1a1" +4a692e1cb745e394264007bd3077019d2b791b79 = "0590d4610a393dc7d4e21ade00f4afd2681855df" +524520c584eeff4c6295e1518f63f54592f6fa02 = "797f3c7235b848f4f81166e33596fec799dc7415" +9cb97086b1a5b6701642116352a4cb8d76002c44 = "cf9410423482c31339a09e11cb63bdb68e4c519e" +bfea3f3cd6e03390fddf7e7a50e32f95720ea5f8 = "c215a22576da97dc3ce8b94441a05573b6d1b424" +c5a5f8cf945c2dabda3dc39c2b85eae604d2d9cc = "dd838b697eb3d620ce71d9d15fa000afc7f9afdc" +f750096ad7dd34d1233f60687d4b90f398755a17 = "3546b645e43ee37587a1b8556ec23b60d1ee4190" +fa025d367bae776a1c6eb2afde8691793190e075 = "edff273ef4d0a53521357ef2dacddd5bdf417c83" + +[e54cec92-43bc-5b69-a0ba-12a83b9121d9] +1ac554af742108d5e5003d2a54bfb113465908e3 = "d130b31daa11435f26b1460100e0bdf87e5335b0" +44da4ffe0a5ca77b6b6aab1f4947ff9c1a7e2061 = "d33a09e265d5ae37cab50b507c12a6a1d1cf1de1" +842296386d8fd586ee25299be2e86ff629d6df86 = "c5a4418b9a5e465219b30c550996b2eb093cc60f" +d56fd84d6b58748da22767e3c4da21897d3e4110 = "5d21fbe11ea3d6d5128ff75e2a6f88a9a9a4da0c" + +[e58b783c-04fd-5dff-9755-92dc86b0912e] +19cb8097030bd40064ae62cf06f74848e5f75eab = "46a5f567dbfbff714f823cf036fa31c737611785" +56678d645de2e17998b7a31d6eeb6f3aef4fa573 = "9bb0592353840c86bc4991e383abdea555ad7d12" + +[e5c3ada5-44c5-59b4-94bc-84ef8a3e2690] +04f04bf36f1903e72a66ed8f08aac19a35084c67 = "b31ae1567b9dbe8e875e6efc4c67d5da4d619a39" +08946ee7eb15bc530fb5818e388f12f3ffbfb6e3 = "ba6c4a6e25318e0c605d568557af204f65db3a09" +168b89b192bd6b5e9153e2d383144ed605929714 = "22c6f3e4c416883db3d1d1790fb33c029b704852" +2531b9db47fec051efafab08504b6d2070be7e13 = "7d9fe2bca81c0f7104dc8dd76c890407bd94143a" +3adea2475aafa351b70d746af06516182ca3e433 = "96150ea670204344212c107fa7f7b539ca267d90" +4b976dd921bf81891eadf2eee6531390a857dc49 = "0532f482431cdfcd8d9d3e1ead428d7ac0f68f8e" +637da9f566db4f325a07db87c0ca56cde5c6f0bd = "8c59484dc69b4e05addbace597171697367ddaca" +67d7aa8ed7ec603882db0414e9ca380c2a780239 = "1e649159bb9c399e7f30de359297d65f2f915cea" +7a6612616acc3b5b070d30ed3159d96c537ade32 = "5f1ff2685e00c95b9393b892810b4b7894bdf7b8" +90952ee71db21d8210698f784219bf025b408406 = "15e2e8c5534ebe7dfe99978a3d792b22dac7a4bb" +9f72c4ec5bc7e65a1b7a77467d7b5d814e5db457 = "140fe524104c842c547e08525c26a8e0bc8a8406" +a073de1ff0fbf2c7c3821ef137fd3b17007de916 = "539a6906bad1844745123c2c73685690c6ffaea0" +af54f9a2ae0c489c4edded1b8c822fadb8c47271 = "323f7bce21081362ef03fa11907a679b5b2c9987" + +[e5c7262c-e9d2-5620-ad8e-1af14eb8a8e3] +14e4cdf6ca6cc477b3622306b4a13a9f287cec36 = "8874d4d5d0a0713c576095d9c9e260ce198525b6" +70a2b4d6f7ec6b8f854055ed658bdad5323806e3 = "4d627d494ba6d577dbbc2c68ca76d2af1c996683" +7a87a425eb7ccf071237574f22953f714b2e454c = "36e5261871825ea891d0881fcf7e6e38c2ff1ddd" +cf7d0e2c4bf61dbbc0e5accd7f14227bbde7a461 = "fafbfaded5393f89434f1d3894c0c029eff94b56" +d3cfb2032598b0f620be380af310c1816ff1c263 = "c19c9c2fb2b835ad9cd0105b61e96d2e33c58988" + +[e5e0dc1b-0480-54bc-9374-aad01c23163d] +0492a9ba0699de6192ab7cf5b337779de06f549d = "4a757d71410353b16a8e6aeba04ae6dece1ef9e3" +08f11fda9f5e5b340ac96ee78dd5d03d3e49184e = "5c6536ec5beab7ba38a2c401f65f2e0f812ded7d" +18b8b190c7d55f61017a4bf1c527d15d615d87a2 = "b4b31f713407b4665504cc440f6fe3ac6d83bda9" +3c28145372082b63ffc9b813a834eea191b380ee = "b0463992f1372fb93994331242978f17cdaf873c" +64cd2c32b2bd98f8e56aaf55ebe0b76f8b631f34 = "dfb3c9f0bde116a2f6cbecf0f162b56b9652735a" +64d733f5fa17c80c6e15867cb72ec7a9f2980c1f = "ce8d858c9263b6783db81cad85f1e2ac6bf8c648" +913f6c0cf9fd0e4063f2d1af27c65a060941ae4c = "5605ceadfb8e4a44ecdbb7fba4f435780da9c236" +9e8118335cc92b01a704b88c045356367c0ab7ae = "94f7ad582a3dd35a5cc5f0782f80e85e68f91c5f" +a076c6d5c3c64d624b96e8731739ffcf271f4432 = "14467a3850ce869c9f48a5d41f662e626f9b272f" +b967b69e116ad0fe2c2b3e2207f4dc43dba45706 = "f466a6719ec96780122178d9eae00910ee182504" +bbde5558ca0b329ecde15e580ea977838f20ea51 = "947a4dd1eff4f4df2b90de7052d86dd3f0402997" +d978c5ff3d471dffadb686a4960a9460a2afef6f = "a5fb7ccfb1ed3c241ee667f98407bc0e7a7fe9f9" +eeb9c84295d13a9a1574c7e29b61d1a15645aada = "f6530420ff93f270c92b84c848b06d18a7b6e6e9" + +[e5e5f8be-2a6a-5994-adbb-5afbd0e30425] +02bf1925babbbf8fa1dc840e464bbc4f2f131814 = "09ec34cf44cb400d1e7f80308ac8c5674fe6e2ff" +214832cae465ec8b0199d5ce359418ff7e450c6c = "08acacb2efbdc80e0d3b73f1f8bb6dba6e4b6924" +b86b41d8fb660e74b0bbf58141b553427317582b = "c41adad42930ab86969f038586346d044d510b5f" +d0fdb468c0c641bc3f0524ac3b84ea4a7048b30c = "dcccc4c9cdd77b9df07a32d0ef5b0698247e43fd" + +[e605e454-228d-5ea2-8551-672d69aa7712] +5d09bda0fb0c098e044d7ec6750b8865c2eb954b = "f17cdba37b9353ea785e78bf661af6e39ca1b11e" +8b68e0a9c74c5ea43674a98777dbf044ebda8f2d = "32baea23a67eed4abc774f12d2edfb4cf7fffe5a" +b5e3005f3307ae5bb3df0184e674fa3c5c7de1b6 = "3bfcbb5c607964f2f3c6ad1f4f44722859939abf" + +[e61f16d8-a6b7-5689-8d03-627c2b27ebce] +617b6be2fb30557de33a164520ec4511b300ad6d = "ecef034fe5ccb029c13bd297e48269820a528aa9" + +[e6352adf-4ae3-5eb7-9a68-79830dcd0ac1] +3fd2a7ac9f8fd771b1ee8d323510fa7a1329b751 = "e86c182147a778c6b4e8212d63f2bc506e6f3c5e" +64ffbd26654448f9a46999d9efb8564e4748f9d4 = "dbc5d46b5665c4b2b318e03413bb51ee24cebe8a" +ac26d9b48ffc5fe31cabbc7fb8db7df2bbdd43e8 = "ebb68a2560c556245014c0f64d878d7b8344ce39" +f583c99c82b06b73a3cb1f26163551ab3b465741 = "4ac8bd198c536f24b7e5ec86df7bb3f1232c7504" + +[e6386f5f-9a8a-5a5d-a605-d2d61207ca5a] +6c7bfea54738d190ee1e7271529e6d25405fe335 = "bb6fc33653f549cc18f015e5dfcf23b5157adf78" +890f5945a56e12ec5151f3d300619b8654ac337a = "829caeae20de1ba39547f07701d517dfc4fed143" +9b1a72ab5e47eab8a817f0a178fca7440b4e8300 = "c1258fa32708a300345f695bc30370655a5f7a13" +f1f6e9b2b79d2747ed3caf75ddd4a4e05f64dea4 = "17d28bf62d477b7e9fe76e89744fc87ae3d7088c" + +[e6723b4c-ebff-59f1-b4b7-d97aa5274f73] +2ed69bf4487a3c81eceb080d4bce40f59f107cac = "73b2b0575dd52c95e9023ad04059b23c698bd16a" +3100f8e64ff4ce23d47031e7153b9c5ad714afe8 = "28dbea922e7862ece88237dc24a9a53e3729e0c0" +6722f25f79702120fd4d74070309ab98693db4d2 = "379fd0d256907e2465bacf36f7f1d8c79577bef0" +c1ca1f6beb44c01a8bb02e6978ddd120b0872f68 = "2d48ae5800c4b48a108560423e2759154c292655" + +[e6aeac8e-85c6-520e-8612-effc59bc0f33] +1ccd65d8658deccaf8878d7403f9105cc1edc759 = "e37c4b200a66c3aee28ea82ca0feba36cedf7849" + +[e6cf234a-135c-5ec9-84dd-332b85af5143] +15f227f9680591f805950cde09c469d73f069b21 = "a3f479288b0e49982347e88bf16f5e8be117a8ca" +5a5861284ea5bd1038a75b0d7d689f3e42fcfcbe = "e5cb01e4309d5d8cc13f447534bd861de61002d0" +e1b65c2d55f8cfe2899b890cd17969bedb8cad0a = "4eb4306839ba731e5d3a0275e0c21387d253fc71" +ea7f88f55673f288a2a675b93f6f593d674a4f43 = "0076a72ed0d0c055517d3900f357adbc26f3ffe8" + +[e6d88f4b-b52a-544c-a8d3-7a4f12cb39c3] +cc05800c0948ff653849042f5f68e11634e7f002 = "8df3d36e0286777d226f4fd4956a432b73425186" +ee2e55fe8ef28240490c222f050b0699f573858a = "87a2dadf0fec9f576e3bd89e40ae9e3f56d91608" + +[e7058ba0-a568-556c-b31a-209ee9d855a8] +30da1764a3f75bcc3890c1db62e5e4beac99928a = "165a21963b43769f425126ee3eeab2c11952957e" + +[e742bb3c-81eb-5c15-8577-c54658a6ac7f] +09d01d0811962406e62f3e46ae1faf04cc6a147a = "c1182748684df86762317701c2c4a906f429cb4d" +a65c107672898cdcde582c5fc164884bc74078d2 = "fae9bc7b9d46f1046c945fc24afb074d794b1f8f" +da471b7bf9314acf42cf7d350b415b5cab538ad4 = "6bc3a6b7d1ac718134c60eb1deec68286e430081" + +[e7bfaba1-d571-5449-8927-abc22e82249b] +32557ae47ab57c033db02f57b601bf6e1dd20ed7 = "f7508354dd1d1cc4e1fe65dc7adb5a502cd5316d" +5ee27b62431c0e57ca4fcfb4547788fe4887f0c1 = "ce296838473be9b06d1e2a1ffa4deea05265db69" +d999d21ff31664ac5ad7323b9a1a38e913c20092 = "a7a4cf675860d3d73c124d32898d893bfa7272b3" + +[e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5] +2356f617ccd6879fe76140330192b43a190fb2d0 = "e1c225e78b665e10fad69ca86b63455f7b915ab3" +45e1c18ebf1ecaa09272d114384f009a843c0322 = "3ff709c239615fe99daabaaeee5432fa42f1612e" +639c9de1102daef9dc865b1a639282c96f0ad9ae = "c20aee4360dd38efcab6755a5a8f45e50687cef1" +8133b98fa8b8b4a992f6f7696bf24e68ddf0bca4 = "0555b02be885a17a522a173539aefa2c7faabab6" +b8e84797fa0dd641b282f5f2c641dcf1ea10b7f0 = "6ffbbc6559a4c90e35187bc1122d8aeb92a6f01f" +c041332b4c5e5f07992d25bf111758297d2335c1 = "270fac130bef820692b78ef589bd3a325ea76482" +ed78d05bf74c89bb6ce02f758ddf5a14a097a280 = "849ed484e921a7887bcfe7ae03a440fb6c51ef49" +f79fc8b3a42b0dd9428f3c6c20b89a3cdf2b3369 = "bbb660687dfc446b93393050e36d62e5dd10cc56" + +[e83ab1e5-2a49-5f73-bd41-7fd30d6576bd] +1e0af0b98f338e46fb8511fa6a4cd567d510c05e = "7256d74962df34f891f793ba000061f30df67d24" + +[e8712464-036d-575c-85ac-952ae31322ab] +00cfba7fbd474bc12f91c347f7255e6ec41fe174 = "70ba52cdbcb9bb08a3416714c04b78d22b059f73" +06d2531ac3f5140d0eb34ee3cf8a829c259d6681 = "8011dd345078f36cf074348fd632ddabd9378d8b" +1a43b9c0e05d3261f45717cfe1d898deac0cdcef = "1b577f6fc0fab1c6b28ce53970bfb96db534c704" +1dc8259aa16b4a3569ec1314ec11ffec0ad14386 = "b680bcef8502a1cd047e98fee34450a5fc89a89c" +20b235a43db76f6744a5bb55e468742ff9e229bc = "74bbed8f1adce35a2ef70da551a565ee6ef2ac12" +262c8693797c93c4d87af19ec577cb3834914eea = "b0510e78048bec0826e3b7e3613b0a05af9dfcce" +272ce68af0775c473c386ffffcaa377c90888ad5 = "fa9fa2eb69e2014628c84d8bb06a6482fb310495" +299f72614c88ea771b3163495206ad4580a0da38 = "8c453dc0dd4be99bb05c3b62411554512db120e4" +2ebc7fb158c4dbeeacebd607a441a091ed17e1f6 = "50d148ecac678750f337ba5d206c96366913d434" +34e56ef21231e4602ac339a80d0acb003a400459 = "a913dccf08015523d75880ea130326060002b79a" +3a4af3caa3852527ccc41f486b207227edf309db = "34375f227c06b170b43f8dae05490d7cb9273cfb" +3eb69153ec3929d44c07c9c458f314637fa0b7bc = "3f2c80111b323ad744322d03edc18b16efe82429" +44d70140e0b8652b31cc4775e6d86767a921322a = "65ab08f3253f852f88fe3ab91182abce0cc7b090" +51b82704aa0ce9cbb851ab078667ce25789d8cef = "970d88dd33359befbc06d2a87fce54a76ae13b16" +51ef61c1d9bc8fc0841389197538554eecfbaf27 = "d69f79897f8587b09a5def6044c5cc3c2a4cc2dc" +5c0a418846631b815472e1d91bbf96075894f0a6 = "56b01419226ce568b720ec1eda593a25f43643db" +6f77b9cc35af1f70403b7318d1bdd5fde2c17720 = "22c933466323fe18f3af11e84be54d0e44f7c95b" +7c6e789fc9920fd1b7212424b94665de51fd7787 = "50598c4d9dab36b66dc2c8a8d200da806a0cb60f" +7e52f9ce297818289f68a7a12521c2f27ae4611e = "6732b83bcc5c1042e0578ba6fff0907896fdc607" +850c9d025d0fad65e83b4cd2a5e602669b4da885 = "2f8483fadc8b38a5276ea066d000b5c79c190c53" +8fd99fc837e013c861bd3c08eee33373032e0014 = "176d32987541fc7e6310bf8fb7e41092ef4c1315" +a05e22acd7058bec5962cacf3ffe2820a6472491 = "80eb51d5b5411c37d5df8306db1ad2f59f352eeb" +aac2e61198d0b1d802361a0576f0e067e60d8b0f = "1e10cbbd48964d0c92caa67951acc565487cd54e" +aadd4bc495fc117aa16c2ba9536152ddd3dbdea8 = "0c5840280cab519d87f9a111dd91302c92e00bc3" +b318231bf451a4325f2dc5ab81927433fc472103 = "7e1319f2a7693bfaa72cb4ade0f3b03529187954" +b643722116f6e27c1b7c6da4deb1132360fb9be7 = "43b88966334556e20a7788ad22e6fb94382455c3" +be5cace4a252dded7ab29c873c3f244e4ed5808f = "237c3d917be4bd0658faf1c917b595d05489c539" +bfc5c667e4bbb23e2b61fd8e3670839c975da910 = "3b7b2ba13451233f4e135f64a1fbd7df183bc720" +c637b89ba752ea99c4f53a4bd68dcdce6ea70cb2 = "678c6ac09aa073156118e03256be998382c00868" +c7b7d51ce171e3f3bd3ba75a58d8caac38005474 = "b90566ebcb91c0be7dfb85f66a9c53a39886f2af" +cee05c8e1f60132ca6c3d7d443cd46686423a0fa = "7b95f83c93c59baf7379d0556acb8ba3449b3495" +ec40ff9c31b4899ecd95d82035cade5c8e819c86 = "b9b7f3dddf18117f9803846631ebe2f2ab3a6fc6" +f6c9670391b8cf6d8ae3eccb57b270cd67bbb38c = "873d3f51e600b104ac804038feecbe1c82d678ba" +faf191a13febdbe5496f9b3924a067dbc49a5ff5 = "63666d61078cb1d201f80f4f6fa936b69bb6c90a" + +[e89f7d12-3494-54d1-8411-f7d8b9ae1f27] +11c451e8c196a2cf031c95359d5b3b6fdca8edc3 = "fdedcc58bd77c3fb2342a0dff387298d599434db" +2fae93a4168816c5b44fa2aac4b86d62fbc483aa = "aa5912ba62920d859db7650161f5154ac916c8bd" +424bcbd24dff08182b05ec7848ee5ad8c52e5233 = "e927b25ba378aecdb0933cfdb03aa9fe4f361f61" +4d4a247d58048c814919c0dc734ed3154130abe2 = "b58b2063944a54a840d88dd8fed26f4ad2737250" +7a70fddfd73890ed060f9188eb0bcf6c3bb09072 = "de3c6a481f055204cc220dd83551eccdecc0ec31" +9024124519402c619748208ab252344bc8563448 = "c80dce0fb51b121c0a415c2be380d4a294b9f3c3" +93ee4053e70185e7a8b128181b4172e8c110dc8a = "8e7b3d5c884b73b5bd0efb7fb8271eb7522c3400" +c749dc530397e6299271a50fa7a2794af71af8bb = "6f164a99490fd4c0210bc409e2fbf99894db5f36" +c9eb37cfa6b7f186fcb82711b4f5ab64a8db5b05 = "2e51154e9878e696a9231e6d107a62134f7202c7" +da904a4103408cc8fc4bf46c0734f7ac97e24f4a = "1fe976a351890a936055114ce45aa27426821ebc" +dd6d2f1dda2aa6d183bbf4415f84a220cd184504 = "6530d9ad615e6ffe6ca5a5fa33b485675443103e" +ecfe7c94d1b4bc2409e7ebaaeac3faf5b6469fa6 = "c277d16653ebde1c6194ff9ac9ad2eac10083569" + +[e9039029-efb3-5f59-bd0b-e956901ccca6] +360e0345020c7137a0bf3cf42ea5e6ded3d4e6df = "b1a6adf494961d1b3466b26cb59a854c0fe30b99" +549b8e557717b9de918ef5eefc96d438d99e77ca = "11b587e6e9e7e4d8db79f51cf2c59aa036ac0c96" +5e9d57729b3c9bf8313c23f7ac2db1aea8cfccb1 = "8328e9daeaf33dc066ed8d84789d19611cfbb5cb" + +[e90401ef-f6d4-5a08-92d5-f8df1a23b84c] +1272c82d7f082b3a9fff42a5ec2c0b1c9d8bcb5a = "16e573e895e3d563f9d413a4185479ad4948b210" +36afa527ad4595d5268529c2e38f7d3f2a325579 = "a8b8aa439fe5706ffe2a56af798fe13d52c50d2e" +6e401e7942843d763934c2f97f7b65375bcb3ef1 = "1c720f9175e99ac36a41671be4f99968f2bb0389" +7010a9e28dd5422efea419841029c639c52dffd3 = "ec5687598fa3275aba3309bba93f6ca5a58e929f" +739f7513cb2328028e4e97218d410fe820dac3f4 = "475efa3af36c0d3d726d079274acf49be112081c" +7b1de6ddf0bb767e414eda6c022bb91d6084295c = "4de39092bb2bf80a851a6e41e9477e22daae1a89" +7e657c2347e4ebbb6b04e2e8c806634595702d70 = "41496a30df59f47e8a6df04b7b87e6fd872e09b9" +83da81e8f1b60f6a1f3d7330481c0404154d7ac6 = "19b9749667f60a761630f56bbd415a91d68a557f" +946aecfac88f70ca58048d3e44d33465d6c5f358 = "77ca3b61cc3e930d77a6793cd5994a888094a6ad" +97e8670a39d44050959aefb77e0a6e84dc2ce746 = "97908954e5ce7bb2f2eda7188d4118e1e9902759" + +[e9059424-2e25-5e16-9663-3799bfd3fa0b] +7bee6fa872eefc2688c3c81939e81b0d61896b5f = "5fb73ca9c156f8ff0ffe7026f789e226b2ebfe9f" +8fc41b9f0ac04fc7f0f82236ea545d37c8625334 = "cc2d44441964a9f2451d4e0a62320f44b029d95a" +9ef225e2abca51d2b90f7bdc170d29324b9e58eb = "f8be55d9c8f7c218d55a7e82519e85e0b8ea49d2" + +[e91730f6-4275-51fb-a7a0-7064cfbd3b39] +04d0fed0035a2bcce9923fbefd3133a9de8e3f2b = "bbd8b6df86af8a15d47e7067b5804c969e972ad5" +0786002dfdea9eb8af3d651a36e8af6059d42cb6 = "f9cdfc283a0e8e3aafebd6c717fde0353d70ca40" +3825e11ab18e9cefa10b8cd1201ea20aff2aa7e4 = "d955cc4729cb99c74f0d94c932428a22cc230622" +990b8e7d81659d1a8defd17d37a1ae9c50b69e3d = "03c7fdae0f96d825cdc69f4ea87e033a58ce8b35" +a784f5c385677f8f2d9a6cce6ffd980e417a92ed = "1cd85996a67b8a7c86a8ed49973aa06f143f0b17" +bf204dbcc4e6e580832a3154271f863f82ce8444 = "6d3704f4e21fc5e53e352420958790ee4fb34b8d" +d37626133d96e7f404604b27471c7850377c9bcd = "ae8001458fa682f5e719fc32dc0e4bc3937c2a03" +d3a4acb9c22b2fdb63e8f938d9e5283e78ce3b2c = "3519362b9795e30999122dce4df52930c11e8df1" +f1bc2659d99e79dd5b2adcc878cc981093eae1c1 = "21ef8570e6f2c0849c704ecadf519fd20aecee33" + +[e94cdb99-869f-56ef-bcf0-1ae2bcbe0389] +159f024e7f840701d93d2ee52c1c27c31d458498 = "65cf237cb84e010b3a0d84ba921131c657d9428a" + +[e95a7839-07fb-532d-9a0e-071766bb5168] +02a1781862f71f6fbb9301cd7924016af5911ff4 = "d5448809e0ed8baac94c9fc3a6dc69a37444b990" +11a50fe956c907ded80260faa5b7b367d7b11ed7 = "a4b2fcc96bd8435ca075ab1a6d3d677420a6d555" +40eadbacdd0f5c537be0b91b1aebb455f03e3288 = "e8379908a7a29ff1d675126ea3b8ee844476c239" +696f826f863ff77ac44fc76474234e853813a172 = "671ec3d37cae24a450b49cf0187793d9ed41fc7e" +c50bb372292697fd09b8a3641bd5789a8d2ac1a4 = "5b75108b22f85f73f8c9c64deebeb482d7a423b4" + +[e96904bf-1073-5077-9b57-b0ce0ff5555a] +00f5dbd686d1f413f66546e505ff606979a4e9b7 = "2315c66cf0ac38acca7cb5e2d9a727dceda99f65" +21aa56e7236f6a8dc3dc7b853dd3e7a02f4b51e4 = "faf608a02e86c5d297aa8a218a43c3f905411b27" +568cb6cff27748c9a6aa6524d843a7f44ec7bf03 = "cdf2b01496314367b07976084b5f3eac1d0e796b" +6784d8728ec34959a797e41b8178c17a1243251d = "fcd8497103d2c244a1e50872e1af68ae1728d4f6" +a59fad12ef3be0d6fa9352133199cc991357aef4 = "89e78df84aa08fb3eef62f2d743dca4d85cabee4" +b15926c6baaffd96f5c77cd4ec0a9c31d18d12ce = "28482c2d1206c1d825bf5bcff129dd8effc30a9c" +c07871d62bf67ec695d3e0124da56df6c36a0813 = "74eecc40d310c76d449b0cb33318a31d73fa1be0" +d22c0643a2a3b84f7e96dd12b9a7af2f33ce8a2c = "589a3b47bafc89a011d620161204c161f01215d5" +f53683dfb10d80c09b21a60838469c0f400258f5 = "173cb789683c46740a70e3b281b0ac3361e836c7" + +[e993076c-0cfd-5d6b-a1ac-36489fdf7917] +0825c2cc9a1736a09734266715bda3c42e2a55a1 = "db0c12307d426da91c2cf68154800236b7d4d2f6" +20af72ab09293fa9b750938b18c489554ffc6986 = "cffd9611b7ae54a5315c1d9709443d8e8da4feab" +25ac7134acae9237126cc073758e7f5319b3a465 = "63ff59d74023c19c8ab50cb8304cd081962227b5" +a17ab3f1665d70fc1f71d808451d2409839f768e = "6dc31f969ba4d91ac462bb9bc82ba9b13743cd5c" +bb544ac59a5b0da5a352e6fd7a0a7d9a2ceeb89e = "4060756a778758f0fb14e9d2a5c28c7bd84eebad" +bfea57683cfeb2dfa1db93b201a6e7ae0d2eda03 = "bc7fa89fac1e0f2e8f5702f9213e47ec12582af5" +ca01fbb2b5ca5c30998f3a9a6d488ad95c5f9de4 = "7b5ac65a37f2994c733a461c6c79c76bf88e0654" +f3ea5949b65416d83e00c6f0a5a465accf6ba674 = "d64226d68910b35f7ed7664095dabbce123d97f7" +f74dcdf580cbeead562c0528918bc3286c2d6e46 = "48a1781c821ca1019c04e771dcdd3bbfab829337" + +[e9a8cd0e-445b-5884-b692-2dce5a6b6c76] +2b9df669f32a4f9a3a2d179f85fd674925281cc9 = "35fa481dde97ae1012191cacb6228a4bd2d7b2e5" +4920b5b8806d303ba95661d32eb7b7c789027b02 = "debcf5afd97fcc8ff5ea74950c1f38ab47779cbb" +92d3f724a7e41ebd4d5d246e8c190d949b7a9c34 = "b6ea284a07c81b2c774698bc754664cccb5eaa16" + +[e9eaa0be-409a-52d0-bdb5-a49ccf89ddf2] +5d591c958f2dad73281545793ee5fb5e4bd16ad0 = "57b56728f4b98ba934d76b59447ac88979f04a54" + +[ea10d353-3f73-51f8-a26c-33c1cb351aa5] +140ee9fdb83b5e365d2dcb450043c95bfa315638 = "d84529780e1d186dbccc5d9b41aa72323cebc833" +152cb5e6698fb183429e9d9cc57c37917b208e5a = "59ad71f0a89e4499ae553b556cf1f650f841776a" +34d5207e0c3e0c4b133ccc8d226a9e509e530df1 = "8d94352274fd3ea0fea4d1e7ad4c2a459837fdc6" +34dc86ff7622a9e1959e0d33ad050ae6d04a28b5 = "8e56ffbedd0d93c1d5505208a9c678a8082bef81" +46363b01436c6f3c787d0265991783b0574f0460 = "3c6194e8e7300c3f1ae1f35eaace6b713853332c" +4a03ad423419c20bc26f8dfb2d7d55e35fc9518e = "8ebdcd9a72403f3e36f3a3d8531ced2450fd1abd" +5bfb17cde0044776b7b77b776b2cdc4d11d22892 = "f14e1d2401eb4758a7899d81f75dc363793148f8" +7dd57d8168c045459f64045aa985bf71af1bc16d = "9767323be732588a2fc318b9f8d458e9ca601d9a" +98be3ab08d94c2732f40e6f4923c6413e6dbd787 = "a069c9725ac84c0c2381634c50beff3ac0ff84ee" +b4d12a0731d104841dfb049d088dd352e08d3f6f = "c34c5b247ed27b2606572de9d9380faff9842672" +b5d25435fd90b212361f82aa64acca52aa25666b = "01f4e48a0c778fe299ce8145e6be3a775ab007c1" +bcd2f0fd03bf42946ef7498064561981b427c264 = "bf7a6309ba9b5cb9677d42c0776cd212d25a409b" +e4c4abee99186a590cebc45d97dba3b4b479ab8a = "e7e74a273a4a4f244a6bb4befeebcc65f5a6cc5d" + +[ea85cd13-0aab-561b-ac63-24d30c69819e] +0b5834662288cfdf99e1754dd4320c02f154eef8 = "885ad76ec8199978db837fdf1d82542d7e4479cc" +21114ed30d29563068edbf1feab8f10ae51f2049 = "6e779304228e11e017670efbb0d300f9c1fdd4e5" +743c3d933e3a23f95b6d2bd7ed387c7c916e916c = "86735621578d4a9f9822887dc43ce7e47b15e7fd" + +[ea8e919c-243c-51af-8825-aaa63cd721ce] +08bfbf1be1967066c81c9c95c337c600fbae61af = "2011437989c9629ba85cbc7b90c40ac57d6dfaca" +0e31e9d265eede8cafc9f0c04e928acf5b0fa4cf = "6dfe05b9172f7dd1a3217d8bf46dcd4d7cf395fb" +14aaef7aeb792a4c8279d2877db6b1d6e534194b = "5a8ba76f3464aa24a9dd80057a40de22a9d9b579" +285faef2e8a68d495c7368247b57da97ae0baf3b = "653404982dbeff98e712d5266fee2dbc36c6d8ca" +28702f45c98522baaa000b0ddefa77acff99744d = "993b3dd09f995590a17543674924bdbbbe947517" +337a8f78f450c6a0a1dc50ed1a43eca00bc558e7 = "9ce386dcf6dde95a1e267e320332d192bc090fff" +4eeff02a744c56bb2bb6b5a421b17fd4b98ee264 = "e0e42567a569ef78ea1bf5d844c4eab4170d7426" +5b22374dbfd3aa0ecff8ffcb74b50b28becc1e76 = "de4c0eaeba2c1ec728855dd10349f5360a1a68c8" +62e0924400f8fdd90f1a974dff3da31c7d39dad0 = "e1b08f6b33bc78c44c5515032374cd91b4e7de6d" +6de03f4ed96d2e58e794cbe8d58d5c86e3637b76 = "cff49605966f2e6d4057e1e82a18b82528c02600" +6fc545579834a7caf306d47fc3608ce578b95f3e = "a7b48605af2b277ac8e01b034cc788a304c014d9" +79bcc3fd79c1a6cc8678c39b74d721097c5cb2b0 = "069ed88d6789fe615059ef615ec83abf162882a8" +7a57fd67c600f2349ee954df83c64dbaccd92049 = "36bdf4e61eca53f8b280be6045c58b11f7ef8633" +90144b2c9e6dd41582901ca0b311215b6bfb3f10 = "1548464dd4413c7938ba2c194be41f5c638443d5" +939e8f571b7d205371c0e3cb65cf28d7964a16c6 = "54d89dddda38d6e32522d3141dbf37d6fa1cf972" +d44d9d87752e03be12aa6837a1141f5a1377b928 = "91cc54078cfe28488add383c458333ef39cdcde5" +e58b26618efcdc716ab5b44650c1344da7c524a2 = "33934beaf5ae9bcdeff9339593332a17e32a7532" +f091ad7e2db37fee4eed6b0c84659ed65dc431aa = "2f992a7c4583db0d8a65405750b0d6fc92eb5ecd" + +[eaca7b4f-722b-5502-8392-1e2735fc81dc] +0607bb9c1c2666c06793243f202f5225507d3296 = "65b91709c65da31fedb8c9cdce0d8e5cfc17892b" +350cd9fa8c09964aaced9f1356b5b135e47023d7 = "86497a656c25b77f2015d7a4eb65da50dd0ad8f6" +aa248281d766c95161538b6b1f3980c55f58474a = "50f532b50ac70682299acb267bce36d330e5a686" +b966ed0895a56f257194f255af0571877fc14509 = "3a9ea3f79dd94a207cba0dd96430e203146fbd92" +e0de9f636ae71d7c1556e1f22eff95588f955142 = "716f130f034d468414973763151718ef3b48cc19" +f1a2645924fd3e8efc17aae7cd98af5000466233 = "df2980a9536f10de461d5a3252b8c54cab0bece3" + +[ead62946-4549-51ad-a948-164214a15bfd] +12a49807bbc1e8e0173f9d02bb56cb7c23616822 = "f58fcf0d6ae3ce0ac681baf85662fe05d95b2c8f" +a891cbcab989ac45bab4ab741d53c080ee3b7783 = "a243bb1860ab525e086c27037524d59e1dcdcae0" + +[ead98f13-3562-56ef-8e28-822b2114fc97] +a355ae578533dd7899669ce528d46e81e73b6a27 = "ff0d208ddc3042f5507c642ccc8116a50295bb3b" + +[eadc2687-ae89-51f9-a5d9-86b5a6373a9c] +0177f2a99032d5c115945997285991885f4c906c = "3aec205305715faad5a83e5311cb4fc8a7ef91f3" +02ce97243873002c2ea2739021e410c1a10fac19 = "2080de66d81c79bfe43dc6c4fc3a024a31e7517e" +326d838e61fcff26c7008a88e05280b8278c3714 = "aca38628b3540ac4fa4ee8f7804ed8fe776b0484" +51859b3826ddd383727c839d45a33df84b837b0e = "12462824e27ff2cf3dfa82a2cbb0457a26a812f0" +5d6efde998562caac597abbac4f5623e895d57b5 = "6e4914330ba6f1527b4683a0f4e220b1c7091c37" +770bab7a73b8240ecca78be09d95a8a9961f0926 = "72ed803964fa82e481604cc3561c522745d71212" +91ca3d018dca8dbe5011a3da8ff3af4c19615cd3 = "3959e74597c4673a52c5f90b7e380ba0ab7e9f6c" +9f372f5b816bff8acbcac471f7876c12bbe36afa = "a3fed2bffedb5e553842ead30f1c41c96e2d53bf" +ae2af070718546bd26c4202f21722b5881bf5fa7 = "d859624a8a852a5b06aacdcb2ff8f73d020cc8f3" +b780b27d4caf3fb48cd9a6868ec900479d642aaf = "0250ab5bfa0f14e389eaaecf0fd4fc82251d6a40" +bd14f25236fdcfe5cf3433b69ca346297c9707fa = "8fe41878cdf3958869f4f15dc8f9b28b409a01f6" +be5071fe371bc0805d08c162caea96245ee6e9be = "8f935d9dae5ee74bc00f2304efdc39b263a1a2c0" +d6377e80f9709ba3995a4682dcf3b76fb86222ef = "cf348a75e35ff5603655a0b415b0405bbaf2f820" +d6f558db1dc0038412b7afb987e318c8b88fd9b4 = "b0e71b2620c0200745a57217d4b07e6ae8871dfd" +f384a22ac66a7c04c1831e0eafe8db11b240b4c3 = "51ad678761a4484f3127423392cfdd630411612b" + +[eafb193a-b7ab-5a9e-9068-77385905fa72] +0830856e1fc5e26431990ead4d248d643a627459 = "9eafac4ae1fd4ddc7ac74d6afb34bb6a1dbb6996" +84d115a7bf07e9566a98ec96fb87f114f5b20c0c = "405d685ca4a85cf70c39a9210949b6b3a7956968" +e10d831fe214ae9b268233b63e5b498ebfe980c6 = "7687b514b9e74c9721e8e26d5f5ed16b3cfcf356" +eb2e78300907edc402bc25c980d5086bf21b4d9b = "28465667381d5f4d4348f19fd7243ef2f07be669" + +[eb300fae-53e8-50a0-950c-e21f52c2b7e0] +54d00d9f4bf180f3c5f8084b57adbd104183ee5c = "b8b3c7c200187ef9d9a71b0f36a4313269237499" +54e1b10761676241ba587290da5b763bdaf5c902 = "d210e60743038a54b5bfafa87ae1d212755d2bba" +891472d7d5e50c8d8f1b42fa5c486f2c418adbdc = "ceb4236d35f12a1c2c3acee3c0dc50d08e7055a1" +be846483e17b021f338ffb29587d9f73d544a332 = "9b77a944e862c607a96fa33e8217ffb7a5341ad3" +c9aa90255c1f0289726e2168eacce5c83109cbb7 = "1fd3d1a764682aa09168b9eebacc4a11f0705467" + +[ebbdde9d-f333-5424-9be2-dbf1e9acfb5e] +06e35c08ea52ee954d7467e6ff119541d3742e5f = "efed0f328ff8e568f5b4065d0592b525d181912f" +6db728a8c341acc89af45f949c104dff826f22f2 = "edcd7e93c01e46f022f8ad4ab0e418cd4d9f3978" +c0d41d91496d2ecb81ab9ef1a75665d417ff7650 = "870f6e64a2d4430e68a447c4d8418a75121a52e9" + +[ebe205f6-e6f4-5c1a-92ce-e87123df1286] +48d6659a778153894912353708ba612987f90f23 = "84992a33164e78c94b68744e321bd9b1e4059632" +ad92720b8d6110b452c9f0c3ed1653a6a03cfac4 = "54e5b425ecb0b86f906f822b2e91b918abfa4379" +ec84c412ec1f197d9f915dc6fc7f5a7f593976c6 = "a8a5e4d16e21e984f5f17b0d8123105de04273ad" + +[ec145902-31c2-532e-934a-7c64254c4b82] +0296745500fb2b18aa258b459d1455206aa6b90e = "01d2570a571c93b6ccdfba286a4ddbaf09d3d9a0" +13c572da96830be3c90896ca8c28a2659582778f = "7f89c0b7a029b56d974ecea946c3b66010bc31e3" +1c3e0d5da6c7dae7f621b1722feae36baec0c269 = "4326e2b570b8f237d3f8ac849705d6cd9bca4bac" +40060716a55ecf20f4e4612fed7183ff43b16400 = "4ffa96ca24704b831e1da169ce760b466327879d" +77416673f674835fafddeb0e048c86b87c102dbe = "944cdfc0177ce453275272e1d664bdfbc151eeb2" +9f17fef46eb884d51af63dd6278a0eceeaae7686 = "a3e78b8aef4774defcdb068e437bf1f6fc45fa19" +e627f82eee4946e6089838228de8468261cf2c28 = "f33634d9d1010be25f30a500aaabac80b1f66375" + +[ec312bbe-3c21-587d-a7db-6dbb7bd4eda7] +e1a242bd98e7ed6e323ec7ef91cfd09048770859 = "970d709a7afc99282ef8859e42c979f8dba69c93" + +[ec55e9df-579d-5e55-a10d-b795213e2edd] +3e9e022661c88bb42679c562c364f5e2ce522a45 = "be2db8a4191422e7f3d507d4db2a286dcc1fdb9c" +60354dec877ab64ae06310c807490736952ca667 = "710ca08e36df4c4f53610bd0874ece0fad2145c4" + +[ec58984d-c81a-5818-9de3-f03f207dcefe] +386bfff9142a2b34d5fdc651844b653cc52a14e7 = "1fc702d43c5a7e8e67dd6cbcdc6b62967e1dec21" +cbd5901d0a86c3c845e0d7e23411ea2ba7e77a4e = "c09428e68dadc527a1268685eb24ab9467a7f785" + +[ecbce9bc-3e5e-569d-9e29-55181f61f8d0] +55d9024e810dffb26f982299732ac5175ffa053d = "cab3a679b0f18fe9744da6ce27e29ed0de05683c" +b0c11e433949b3bb95cb7273b1b590d2fa8d4924 = "de804ede8ac908341aa2107b2fedc72f753ab3f2" + +[ecf26e93-935c-5e64-9b21-bc8ac81b4723] +3196694bc10f73c738457a2151eeacb2b04748ff = "e7c021d39d59f9491464dc4752a2023fab87a932" +6ff2628c15cc5c17efbbacb4b3ecae9bdb3583a1 = "9d3ad380beb089a17560638b807e8fe9378ea371" +aebd353646bc7efe35e598b7b9625cd80c03ebe0 = "bc4a3eea057c3f36375e4e6964cee251ba74d235" +b47fa7d5992f2965a4afc482432a088d5093cb35 = "05c1d8c73ae0d8333974f5a487fda0fac21694e5" + +[ecf29a63-ede7-5edc-9377-e4ca4ad0389f] +ffa639dff1957616b84e098e0a53cb4dffc0b373 = "ddb29d73cc254db2f4781d45ba42f908f22153cc" + +[ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4] +28c1860132474f470399f0b1515aea5f3ed66353 = "df882e67f5e70a6de7036d28965297b689ba916d" +29d3c0ad63c6b8ad781095153b44f64059c5f709 = "e2182c6d3c8bb6e3543fe33fdd6797cad8c3ad23" +4d9b245aedd3ca142c6ce8b79c41146bedc42521 = "9b2a093a2fab4a2f2952f39831cc54bd6094403d" +747f5299974ef4e96c96fed2bd78ed3923309f90 = "a5710c2bdcc7e15a53c2b944d1d2d282c2d41d1e" +92776cab9e4c9edd7cb7131880bb1ab503d2d5c3 = "986a0e2ae61af741bd8787aa4d5e2de2282f578a" +bfbaeaf246ffe2ae4e684844c78eb971c36e1519 = "639ad13d1c769c2f9c9a9144ae59cda10bf6fc79" + +[ed09eef8-17a6-5b46-8889-db040fac31e3] +054650dd4c9442686b51f577abe6b8512f724f07 = "ab22db1f6423571d479dce9fe68647f1323e6df4" +363f3f37dba74961d6b64f1390f8b0a9121feb96 = "a8de46617d03a06c66d16c6a875b5206dd83166c" +99bfd1ec4315bcad238f97a44bf3172fcdafa303 = "6a5149a04ef4e347990930cf9d6cd0464a2179e1" +ece06ed22dc2e7ef074bbe9a9c77ffdf7a606e68 = "9f1aaccaaa3658ca0665870c48a3b3e7374dab5b" + +[ed829526-b29f-578a-94ee-3fdae66fba6d] +2856fbbb1631523777e58d102b5eb5f328b87f20 = "45c1797c7afbb41d658d5b7e727234aafafd587f" + +[ee84a2f6-cb0d-56d0-91f1-5a43e127d00a] +06cbfe62c2cf450bffe559e3753d4b8eef7a2fbf = "bb1d0d9488fe57332679f32957969eb9ec6ae3a0" +0cd5a3da824dfe09ac1eb429c418f4f006ce0225 = "725a5308bb3ae4638e4c5d4b0d251ccef2e2a496" +1004cf098b12f7314ed68cdc3a2d5396a6af4dd6 = "01588f9df67884b16f5449ae5257b2531ed865df" +1bb613a33baae81c22b64d2ab20662b38e2c1386 = "47e4d9cd3642053d5b507e328dc36858eec5dcdb" +27065a962bfe54539a68c864af0f5df70a4b66ad = "49f11e2dd99cab855344410119256af4d8340a92" +2e66c19b4ebac65bc1e8565e1d200ad691eb4c75 = "b2537c30e6d0fe0d753ce26bb31d7f7263eb04d5" +3d997c05c8ed3f7ffb9f0271b761116dd97b7fe8 = "812fb1718c7860461478e97667e3a15ff4fbb3fa" +627cbb29f2e1533b998ce7bfb19726747243c073 = "789eaca654714c0a813bed1ccd7d57e9afeb5eea" +6da2e374243118bd61eff7861c653faf0ad26f5f = "ce632a7d8a4efc36774dfd4b152aa8bdab5cb796" +848314a0485565817e5a2c444f29d4758b8312b5 = "bb7ff371b4be58d3a90e93d43eac547e5d6f18cc" +ac76b481a01690a6328e791184d010fe72e6d00c = "10503395592d77bdb3dc8e68667e090aba46fded" +ac7ab4e08041174f289d9ca83d440be1fd29f26e = "f057fc96d2122695b14a94e88a741094c308e051" +d2055962c0fe13656f33af6b1f21980fc2f4ff14 = "be062fe3c3457247344000bdce6cc2fde2112e40" +dfb140dc7b10be1ceb6d4d6f09e5978e5c144c32 = "6fc561c58204bf2e4462200aae09af610ba130a3" + +[ef61062a-5684-51dc-bb67-a0fcdec5c97d] +22200784fb37bddb21863c2e57a4914289a1352e = "d84529d3aff0d19c957d1f69d286efd35d8e59ae" +81d5b7b145d299048877f1a45b8ddea4993ec176 = "85f59a6dc4bc91f9ffd239229c58ce81e85bf1f8" + +[efbd00a7-8d38-570b-a42f-2b6adcacbb8f] +0af9fd3f28cd5b8e9514e50e2c4d294ae6a9c8fb = "b28c018f917decfa0f113e7a327d990518033657" +c7175b69487de71e8a027ef6009c6364c0d745a6 = "39e0800dd46dd84b33ed64aba5ed33f01d2b7dac" + +[efc20176-1dac-578f-9267-773aa9bc71dc] +19d7bcb1cc442c402414eaaddfd6c53a35ac8975 = "e4fd8bd0606e74ecf1f449f8c686c73e9cc17cdd" +324cde353afc1a92c1eab3e6c60ffd72371dd677 = "db0dd0b04de2218ca4c9182d7a6d2abd95e30446" +46e2bcf4e1e1fa72cf414f48893baa3fd9916e1f = "565c05ef14fb8c204de8117d10d77ab422feeab9" +510a8b13fc89d36225d68296fc1f949f6a494ba0 = "20aa2a089c5ff4018e311de7be8499ff20ca4b9d" +8fe3dc60df314221a30baf82fe1c0513f533ec16 = "7da757d036ea5ab90cf1d43cdd705320f794b154" +94672aabec39f7002fea679127258f5abbba18f1 = "b1c59604043896675e354732b76c3a0478abf2d4" +d24c40eae1f4fc96a6dfe9121122cac5d3e26e70 = "aa9c0edc53045334ef0fb13b070dc1e59a762021" +dbb87804c67b40b0ae38460917f5f7a3afa1374c = "9b62e7ef0dad7c97b66a322b6fd110dc7a645ee8" +f4ac9f70813e2fecad4a9130f3ea4156ed2fed52 = "1c6bde569a9a379f3b75ac2f92ad828e3fd2c66c" + +[efca97e4-8864-5806-976d-c5441310cf5a] +40f5d5dad342ca2e49b9e59ec64be29608f9b3bd = "f22c0adc8a2571b2ce0917d345b1e077614f8a69" + +[efce3f68-66dc-5838-9240-27a6d6f5f9b6] +02e7067a69866751151cb639a9e8b51871e63d77 = "1d769fa31b4c306ed9294498a116507317efe974" +1a1ec7d5046cbc684ecd55eefa8872e956eb2c74 = "1a043aa0ba67b35f4d5ccaae9c8fc71b6fefe9b6" +2592d74d20997b5417cc8bd5bb5c16450412faeb = "e50d0ef2108a418bbc8502a6b8fa0bb96c765648" +4c470e0e0b05e94450f8f57c44393f35e7ae2820 = "bb8dabfc4026dc31473bc6cb9d6a40def04b0fe1" +4caff4b593fc84dcb30120bb7e6538310d8b772c = "6a6de3a86398315d3862fa7bf8d33a0267459b91" +5cc1eb4dbd04a1792a1e7b4c8f504e8fed442faa = "2a42bb0613424a71d2bb061899e74ab567f8f033" +7b40319f3c59bf140eab3f57059eb56620476858 = "1ff67b5a5b5c446a71527c5ef260f046d59ca136" +8a8d61266b942b368f7884e21f2d19eb1214b4d7 = "fa52d7f112ee4824211db4a8673b78520add780f" +be3a69617846f2ed84c15e12bd88441994b7d3dc = "a0e062f34a0eaa774db3117bbe8d811316256d4f" +c9fa159797c9cf806c2730661d9bb94a0dfb0632 = "e54145972a45193ff1d407fbf5a1407c07a99559" +fbba515a92277cfd4d7618586a17b26593699e0b = "c92d14f9d5fdec54ce1eaca6759bbab8346dee4e" + +[efdf428f-f294-58b6-a961-90c8051bff4c] +029ea772e03c8cc49df4b74b17590ef4532f2ab3 = "cbdc76e4213d4833507dcef80b84087d6cd95939" +1d3254e412969dabd0db66ff347269b39052ff53 = "d95236308d1df812ae649ae708cdfe99d5016c17" +6eb65879cf6051da81b5932d8dfcc1cd6ae0b293 = "b419cc8cd9c803730580412006522ce020c950f6" +f433ba738a7b6ba5ef463c43029029b8dc7db0c9 = "9d1187f2e5e9ed9c66ed77ac23d0d15258db5c48" + +[efe261a4-0d2b-5849-be55-fc731d526b0d] +0d2433365db02201dea331488f8a93ae37d41681 = "cb31e3554bb3644688af2b98299ee911a29ee7c3" +1e3e2338000f24797af4cad01b80bb025ac328a7 = "3187a81d1933dfa7f872c53058bce19d26c538d9" +3310762229a1a0ba68dc02caccf43e6f045847b2 = "17e92e2c9e760427bebcb2bbe4ade40934d8feaf" +37cd94c6a01295b71e04e6a4cd707d5d8f50172c = "bee1e3593de209b683cf6d714042cff74b4b47f0" +5161b77b9bc71b537e73c262765b30090c24737d = "de911ed8feaad913b25b6c7c0a107773a2dd491c" +847c48275d1bca0c1e935430725239585d5a75c7 = "cdc0a93beae53b0a612bd9b36d80bf6691c614ee" +8c4e58201735a7665cb6802fa89755ace4e052df = "f319808d29c252c36bb26940a0724b7ead386b3b" +d777b9803c07c64a209f0a8442871d45411e692f = "0e83294a8c44fd7055dd53b319e269bc74ff3b36" + +[eff96d63-e80a-5855-80a2-b1b0885c5ab7] +013caa01b4ee6449d07b13a983e0f98844f98718 = "3f2276248e81289cefef5afdebf1a3cd9c68f5a4" +1eff4dda6582a3b4e09543a335fa9625221febb2 = "82cf2e8d4d00501b5dcf4a80ded1a859be790496" +201d30ec44fecf9428426d72ec11cb1af745a2a3 = "d683c615aaabe5d275e8d74aa20d011041d150f6" +2d775a71875ade7b5046f557887832e365a3a7cc = "4c09f51309ed26c2391451b7bcceeb0911fce68b" +3653592ba191451f8abad2fb5338a258ec637cee = "bba1fde08c368b7e1d06ab97c5d7392ba8157265" +641fb420d18a905f4d5f131d219c738665a05c46 = "ef0bbbc868e961dd1427c52a64c273741de42c71" +6c41199670374fdc749fc79bb3f63321368317bb = "c9cde48a7318133e53489c7f3eb228b2072f5d97" +80f3ea60bcd8bfa2d0d60a14ee54da0817b89492 = "2b7725aa22c9cce9dd280bc64e5bde3ab8110109" +8935b73c6b1182eb87bfb6ffe863c18dd29a4f5a = "354334dc80c71a944376ba156c5ef9d1869ac9e2" +d1d98100bde67e5576c7e84ce95756026c3ea2d7 = "f0e161523946fae89a7cc4eaf51337f5f7374998" +e2dd5bdf4ea5cd8e676f22601cac67238617cccf = "37f938ef9ceeb73b2fcaa459fc5fa894aabb422a" + +[f01a5c79-138a-571d-9c23-7d209c0b0a14] +910773f93f15ab9d4a53ac928087e3c5d7e8cc20 = "dbe1917301f594e09af3bdbca54ff9838d07a311" + +[f08002d9-bb2c-5ca6-9977-d4081ea2ff9e] +0af3c0a6493a4a607149a8a6e0f8d5bc58686394 = "cd90456697c1493319b34c64ceb0ad7d7bef6aa0" +1934b192f99db3ff2dc6a3c4d24be12e94b7bbe3 = "a6624e24f52f68155d29c0a7ffadc4dd68ab280f" +518c63d8be2227d8b8a8d654e63050dc3f25435a = "4cb5415cedb1c6c2e57c6e7f7c6fcb414f5d6a38" +659a3ef54555afaa9fee8c0feb94973d7a2c6664 = "20a35ad6be7364c945b35fae9b5a7c376302062c" +67f6b47c9fd976f33e654d621b57d097018abfd6 = "4cac0432f28b91ddb42aa2697e175708cd97fad0" +9c932ffd8d927e404b0a6b63dcd755610a2b8f19 = "9740205de0f31a0bbb1d123644e8d1bfecdfa985" +a0a59eafcbdeac308eeeed1cfcf75408e7120208 = "b441a336fb305d634b464b4f399de426e9288705" +a78754cb1a4413c1572cde9c16b98de55790bf61 = "e5ff1b74b8973b5c89fa9dbf547a108fe17129ee" +c9d9701726ff26f58952614048070d490306d972 = "bbd35951dfad093d3be0139cd636b38a9f6f331f" +e01ac77000c2eb54184af25333192c81827a5fe7 = "03e715630f82c97e8469917731622f8db50cb5d7" +e4889d3a3954634930e5f70dcad150a58cea105f = "820770c9195c2fe65e343beaa34099ad55cc48f9" +ea46eab8e3e1c6fcaddc178b96c000e138f57573 = "fba11ed60f0da2f0d0a89aef56b408fb909c7d6d" + +[f09324ee-3d7c-5217-9330-fc30815ba969] +538ba3dba894c79266460c11f58783dd363cc0a2 = "c50c4a46daa118c76ded89b2e84209fedbf4bdee" +85d3b6d85d4ff8904bbad6a43cc78596207f3ead = "50f7e59bbcf0d01928a33ec1a4167d35b646f8e8" +870a7f2d2d1eea20be1aa1c2b438496e95793826 = "ce2fe8fe6c45527a1e6091bcffded2a1b2f9694f" +a8115f3699e7ef462517bff1dd0563e65cb564ef = "7ab17cade8a3cbb61a828ca1157a6ea70efdbcef" +d59ac7b79c1797786a7a42e3eda5742f20a6af7c = "b6611d2592a01bab3695fb4f9f8d29ba18dc48a1" +e45ec647978a08893adf6a9c66ac816866b0a584 = "3368f4cbc31c4d8452bcc6f3394037e45771e253" + +[f09f1ae0-d51d-551b-9f1b-1081442009d5] +0bc506601f5912492bd939b1ba30a988ec8fa7d2 = "b9d2a14a5334f21ad626fd5e3b4f924c4ec3345e" +5af676d51c598449322d6592e2a9f8d5e985f645 = "45224c7406a64a2956bc77e5a0311ea044ad4eae" +5bca5f4bcd610d247240703763e8da19900808d9 = "66d01eb89a7dfc1eaa54b46791dfcc8e0698f5cb" +7ecde7b0e38e88356050a1709763cd4814a08281 = "d8669961ffa86dcedd9603b07197127f16c2cf7b" +fb23b8c1306897df0bab30652adadfb7879fd797 = "ce624fee4ca4ac443be65674452f8e950b97894b" +fde9874e20aca2202179e3d2764751b8475e21c3 = "c38ca6dba872624e43db7abf0b1ca97707a5ab54" + +[f0bcf1c2-6904-5506-a045-902aa8edc50f] +b047ed05de675be919cb200cd4d2f181e1c74411 = "589b9678ee3c931781c38eb8224287257317bf8f" +c685e53e6aff4fed1a9d846e136336ca270e7fce = "620d8822c6d762a56a6f34515b49bdfdb5883fab" + +[f0e99cf1-93fa-52ec-9ecc-5026115318e0] +0934ded32ccabd3afee3579ca6dde267acf4e050 = "d1351b6e846816e9dd34f6d8f992d96a18641293" +1b8acf2f82d90399aa3cdffcb71e9d59c83b8706 = "976d8dd1e8741e86defbe6f47e85729504e703a7" +2b8ecaa3b855b06c69a756174b6050068c90cdac = "730fce224ae832ad499e84d347ea697de679d88e" +42f4e83e323ebefed62c214de88225dffb603c07 = "3e9b909fc73c5607b7483f738d852d8ed783acb8" +45002ea85bf81ee32bc6f2e7b66e7744cd3dae8b = "0d4780c2c7abcf1ed40aef448ffb3d729776c8b8" +541ff7aca3e41d37e7ad544fc0f4003ffa1722ed = "255e7131273d6ec11b9985c3429710bd5dac9366" +5cdd89bd625a48fc076f56f90ee6ba014225f548 = "81809c3ba038386a623844fd35329a16f1cdf399" +6b811ff9a575b9cfb7db482df0b942805ca263ee = "670c86e613540ace91c4f4b1ac072afe2cc7c5f3" +726dd8054578ff3ce7c7719e20e8be873f769759 = "c4be43223ffccba73dda9f3b5105bce1b1b38ed4" +7424f6731b5ca4cc5c0a2d05adac872fbe0e3c95 = "3d4ed981c577bc4dcf0cbeb4495062c47e1e22a5" +8903112732bddee02d25cadc44a5a1cfde3431dd = "6ded67b5d14c2d5969ef09453bdef0fc6500b79f" +a6e6bc1038db1b742f086deff6cbb404dec4c9d7 = "baffc512a73f1ee40a844b4202c1f13bb33af26d" +b769805702a0c89516798aa4a90ddb57838c8012 = "825ef1d25024c2fed70dfb0d950c31d9a81d81da" +bc5812916b7d8898389ef09dad20e76f4f0b6a71 = "74f08ff1ed715db7e73aade7a3fa4ad7d73a59b8" +bd71cc78cef45eefe882084ed89b1ff7005c879d = "3e9b909fc73c5607b7483f738d852d8ed783acb8" +cc7e888ed581aebb80ac5a76763c4e5c3aad30c7 = "de3a67aec0e45dc0d8ef11562d308a91fa7583e1" +d8475b80fcd74b03f4248f2844cce3843d472178 = "caff03a0b45b3b6a6d7435cd31256035f2a73bc0" +eea32c766f020464d51a172965808fab4e22b6da = "6311804d83034d0a7f5797bcf7f35f307f7fb2ba" +efe2c38e5c54a3a5a1525092cea2ce67da4299bf = "bec95826881798800501170e4ef1c2218275abe2" +f031fd4a701672db5c850b2d43d61d53047027f3 = "0f43c280a846170bce88e986f79d0b987cf81cac" +f2c36ab8bff434cb5af85ac3a85c4a44d2d0b6d7 = "da82afb970698e7a8b874e4d28d9db39fb0cd492" +f759eac14b7f9d145e0083b759a8ffef765bf5d9 = "0449d55ba55d98344519ea3b421ac81ff14a678d" + +[f0f68f2c-4968-5e81-91da-67840de0976a] +0677d77954ebcc129aa6271c77877d50c4b0f012 = "c94e0989bac5a671d2916472901f4c0e053a627c" +0aa4be537807383f21a97cbf587802e0e20517d5 = "bd3200a19cc3e6b22244838663bcc9b2bb424cd9" +11257862105d15fdc8e5e74ff131f0f6d8befb3e = "507e20254feddf209fd8114fc85ef52b049ada1b" +23ac07b87b3206ff09705190921510170d95c3bc = "116fcf0fc6c265c42ad92fd2ddb8bba1a3054ffe" +36cd65a98cd2c4e62ad3cf3adfc78e7823779d15 = "e142f29f3ab5943edbf95c7c09184e874f722388" +4793d9b692974ed3af9e53b7470142e438bda5b0 = "6b907caffce287c88794a308305f22256427ea7c" +4ba01f770aeb5ff68509edc769d9b675236a9ae9 = "1d7805ad1746409e98806ff7caa9fa924fd957a9" +5330d71a9757bdd371f36274c7fc382c085f3f06 = "eb86692618301a3e2933ae9a7fd215cc5f2cba52" +599dafbe279303ef1fb2beac7d3a37fc70f24054 = "70001067e628fa4a823c86b4418f71ee55cb58e0" +69b79f39b368f67abf0c3c103cfbac8c87827a36 = "b96114f5293a387940a6c7c8e1679574e45537d7" +6c182a1113813f28a08725bfa910c24f494767a3 = "2ae97520bf0496735753396e597bd4c01524f58f" +6d612d86b73ac1c0c47f6c7ecd69e1539875eaa6 = "51554d91865f3e9c3ae374bbd20bdafe70995c92" +6f5dc18733c3d54bdfccbf9aff17c50edc480a3c = "01d1f1d7aafe6cd08746270458144cc59d3bd3aa" +7263071a248722c766ddf8d5310f30794da6ec4d = "36dfc1c783f35179feaa8117a4924ceec8b8d853" +793b361452244259c653e2c02fd9a0ca19a96e95 = "75c444abd66184760035a4954be02288805421f5" +7cf9d2c3d3f9dcbd81583e5479018d921dee790e = "c2456222beae6c7427473cb70ca0ac7d61d30da0" +871e15a494b74a22b1b4749288d4fd5984248790 = "8a699b45c6cbc48211ce8b4c2ba587fdae4da9b4" +941b757e17abdc790ac3d2e0d91d906ad846ca7f = "c4e9d8a756a03f26cfd2fd55e51817874f87ffb7" +9deb241adf3a3362b12bef219b20da35065893c1 = "70c6d720a7789e7dc6a61f7d01ad8a8425269a48" +ae074cfa9e0cec49f317658c74d773fb6956fac4 = "f56b5c3f17deec2844f1ac480fcd56818ce82356" +b1ea56717e9ab6c98da8dd68a76649ffaecba612 = "4fdff2ea08ea768e520847cb7938382e62c0c598" +b5d96015d0971121f4bdec3ae2b054de3ee74b45 = "ba4e719c3b63f4e5a7aceec73f9be6cfccf7fefc" +b72153fd6a4eab157961bafa5cbbca8f78a95148 = "967b406171bcbfc893f2136edfe7e927d7823a8f" +b802e4ece261633c89f40fcbc542449edcf17e27 = "63f7967213432be4ea1944a882ede7431a39156e" +c2ca256ded75dadce2ecfa9f6b199d7bba17c505 = "b287add32d6916345d5776475d5f0c132906e7a7" +c9b8abca957e9d84326c609ba3b9d2b001d1147a = "6b739b88572c0aa4dbdda7c6d3bc654101029691" +cb8896e48bff9b5483c538f58e992fe6cdf55207 = "767b1e3bceb38e3b604eba0fede1e0581972e07f" +d348793218c3f6c29e205b3cfb08640d5c84c53f = "dd9ddb03ef4d2e83e4d2a326afdeda54a2240c66" +d7eae25e19d9d1bac28ba4bce8694ef4f1322d99 = "05e2c6e63afe1a4ac5fca942e2b26a72e652c16d" +d8a0369f7ec3db300c583a26027078ccb6739529 = "f19d30664ed674576d6c6a18ecc1c5807021fd56" +e62112674fe7be5341a4027283f0d99f0a7e0b28 = "900fac4dba15132e9bd6c1bf9f5ce64684d42e91" +eab25f8df4918f35599d2cfa48443475ca608cb3 = "394938c765e23e9123bf34f5e5842ea39e7a8b74" + +[f0fec3d5-a81e-5a6a-8c28-d2b34f3659de] +de10ffe36c632edca37aa9d8cc791af39ef82f2d = "6cdb876ba7d4bf877ee4fa4cffc3b8d747efa5a8" + +[f17d6557-5fdd-57bf-a30c-27e301b4ff87] +262eca51b9c7b10c00424fe04f82e7f973d461ff = "e1937d2441d0efc24477cb6696ef9adee017c7ce" +33bf945f0ac870f6998941ec0e38cf230aeccc99 = "a139810ecaabe5ad24d6c4788f956ba51809600e" +39e17e019e7a84ed43318ea19689c7c052d2407e = "833b38c846a146da7f28a7d3521d79a99dfb9d80" +490fed89fea4efc0794d5cdb1bba1988bf288bc4 = "b5367791321e16317c7302800d42763ebe0c2b13" +56d8a885fdb96cf630ea975833bd96786da17f03 = "c366eb4abd5dd658b473cd56c004f39660c3410b" +617f810c994f53a4779b4922f606f2c7c4fe5862 = "887fc656b86280fec7c6722fd3d945619fbe7870" +8546e35cb626025204d6394c412d95d292bc977a = "f41d784e47ba9e1e1866f590029992720b4a770c" +998401f65605e8144d1ff7126b9a1a2ee2c187e1 = "d8ccf97d674b89bc14245ace2f8188a208941abc" +ab26d5dfa57554dcce633f4434d3df83ef958625 = "859ae691e7be2768c86bdf0d2cd39e5d9f606d34" +acdbf71b63c262c8cb33391193d6a3042e9cd20b = "9e39a35f0280300609193c330ee3deb79dacede5" +add793ae8ed25e7012e06b30a8f7dcef9a9a2ab1 = "72b7eb440486c7bae0dc94ea85da0a36c067a30c" +b3772540d47f822180deb72e0ffeb63c9a511d8f = "f2b9a3f40c8b919ff32808ccadee1d8422469af9" +be17557e2db3a81d2ca517d0dc4a0488b4935285 = "8aa317edd1ab823468cbb36f63d4d9e0490bab93" +c3f948f9bdddf66a1a80dbcdd660c8153cfeed00 = "5bec9c9355ae4db16ef67410fd28f0b8928195be" + +[f1d82dbc-2f4d-59d4-a6c7-4dd79dba2fc5] +8ff008c02fb70e01e6940b8c0cda3a1730308b6f = "17ba9b971ce82a4035bd08a7be1ecb97f806c3f7" +e28891e6688ae227da089b1301ec03a3682eed57 = "5c7740d5e84248d4a5940596d3fe6cd6e8d37a24" + +[f213a82b-91d6-5c5d-acf7-10f1c761b327] +9130e05b2541072beb7b10f922b61b20b3357ed3 = "0e7ccba9e54882d5bb6bad639f98b1fd5106b87d" + +[f22f4433-750e-5048-95f9-cae576f2c120] +4a16a1d670bd021fee9d1f360fcfb479448e67eb = "e0939e2ec7515a597d4ad8a02c4a4abec117ea8e" + +[f25983ca-f764-5a23-878c-030f91a0c122] +2f0d2d31a26da63db57a8531c053c4e46dc2c469 = "9582e06e8a55fd3ad3d30aabcb837ea36975952f" + +[f269a46b-ccf7-5d73-abea-4c690281aa53] +09509a482915be49d1a014da39b31eacdb36710a = "9d89e76663c13657ce52935e8c7ca1e1592f018a" +1275550544ec470213e6804d8cc96f08f0535448 = "f19ff845f14847049884daf1637da5b2eaae844b" +2a7a307e912cd8e237ca929902ed95d670769211 = "82fe3ea4c04ff3ced9ee82966fe6d26cab6d37d5" +32abdeaeed4d5f3e2f2b56e16d400a149a20ddeb = "84e265a0143041fceed3ef35f30637ad4b68d158" +3486f15823d3d9962b405deda1a1a09afd44cd55 = "736c8f91ba79d0d7dd08daeee05899d53fb6d9d2" +3b6c94ef8484b9ce88604f8750dbde86fde239a8 = "e18c527f5b7a464f58b81badd466cc12e637acf1" +4cb51922365ef9176d52b87054d32a439b7314ae = "0e5903870173b3bee22aca1babb2bb9caf13e518" +6a422f403bbbab2ea62a42a5294abad034b56d93 = "b2454c6185fbf794a4d9610f112b30054dd36e3d" +87a4798d9c36319350625cf5bde99f95f84d376b = "9cb37ca1ba9eae3e0e0c265b2fa8f23a11ae0393" +8e73dab4c86f5ba2669eac878b543d485d07234b = "9b284ac947ba2f7899c2d36e9b8ee47e068b7f35" +9224a3d5848771ebb3aab9a673c0a6782a40e5c2 = "36696eb9631bf80a49888500798da52a4f980bf1" +94c725c0125dbe174bea293f568ecbd296f346ac = "f58c7460f5def7de3c07de57eb6334641ab16c3f" +9b3db2c6c1fedfd6111255976791084a9870abf5 = "9131edad6efa0cbb718ebeb14a8a2aebfe0ff95c" +c1b7b7dd9f069704b36bb86f99914b11e9b8c57f = "4a8856755dd476ccd1cf484673fefe10e996207b" +c6de9d463ab5f6a2576417a849cc5bf2ad7cc5f7 = "3ab8cc4afa7a9cedf4539ad38b9075fd4ec63794" +d56868b77c8335181618250547fc717a903b619a = "89523d043adab521fceb3d1f1169660adff3885c" +d9a0e92033e9042a54404110836a8e840e37c998 = "7686329dba4f2fd32649658b618681906cb808b8" +eb1109e1676822297b7c76e9757725ec3aa005cf = "06c0d449e2e51feaeda9537ddb71e77df7daf270" +ece22b3bec572790f561d5442099eada21491b6b = "bca0dd88407f1d8ecbd4691a9a01b81345bde9f4" +fa63d7b3af63c106eb2c4d92981af637ca3b771f = "b9bcac868e4ddd90d1941f50b3a60f061f627465" +fc5f1451c313d7c45cc6435990dc711e34e32ebb = "b9ce570a1ef128b906acd1563fda39f0cd2aa464" + +[f2734b57-981d-513a-bb4a-df6fddf008d0] +1e04ff505f6c053796ca80039775d194d7e6be9a = "64851e47fa7898d3c77bb19752f243812dfdd4f7" + +[f27b6e38-b328-58d1-80ce-0feddd5e7a45] +101d574deaf26ad30f2c713b3def9c4c186f04c5 = "e33f9421e14e3772a398f355359fb2da324c813b" +3a017384790f4f6f8736f5f4aa8e22c1ae8ebb01 = "48617371fa9292e29d0db927cebd5d8ad0f16ff6" +449a06c4c971e688bb9d0711eb3d0b16e4af95a0 = "a5ccfac3c41299f6c21f582cd2086b8457e21761" +4ab8d1a0fc42b46f9c816987efae6045b189a4dd = "6bb66e91acff4ad9bbd5f06309157a41f1f7d3d0" +5bb5a253a00114a9d1b65a20176083fa7b6526a4 = "48ddfd426b986f7d094857c7a6551ab19cd68c2e" +6bb8e2ee193ec62db89c41c160c49109ec154255 = "579ab1a8bafbd0dcc78278ebab2889ae6e101564" +6e60f2d99e4b3813b86f0d38e97461acb340eef8 = "2a8a769f3630c65d382dce75582c0483c1a8028b" +7c0cfec28005cb7fd5f5efcbcef20808e1d69aea = "9e8c01dd108ac1d6e668e97f49cdf0f13f1e3947" +85e2bccd234ad345a9146325117555a4849da875 = "26257f8b840891cb7182dd59b41456d3e7f52aa4" +909ea47c7606d73dc638e8f0c33a42cec33feb8b = "9ab362a9a452565bb62aedd9423fd9704421b752" +9b2c87382b4a253961fba67c57c09a1ebb86934e = "94dffa7f4ecbe612425bec82abac510f397ef7a4" +a137791d5c8432fa649d8c02de4d555624a96ae8 = "8811f7f0b994c0fb2954ed80b59ca58bed6813ab" +c2eeacec464f9137e117992a85b491c9fed4424d = "1a251c35eab52bac0e519777fa8b23624811899c" +d53401c477ac9b4c69678fda4b5379b2525d4a1a = "f2639e1b9e3fa4d85b5a354e4264cd8351acb2f7" +f5faf58fad1a2d273d0467c23f24ae3c61bd918d = "26e39f6eb35fbee16bf0972a4169518ab823c768" + +[f28f55f0-a522-5efc-85c2-fe41dfb9b2d9] +1d922ec3b9adabeb37381d1f400e1453510d522b = "9087f98b304414a51f639f49df56d11373dc2b90" +2083a54cf6ddebbff5a9435a76d5158359c677a0 = "8e4bc485738c77cdbc65639519d4e8382cc42921" +57069cae0e99724f5913d7e50f54e55af8fa5564 = "61d89173c9636d8ef7e3ace7d15bc0a81c91fd18" +57ce5c92824a388d5cdcf6e9813c6ae0b935cec1 = "2b28c1f110015db7a5035e373f5c7a36f4b8e16d" +626877b751179c5004cc23474a12054245ef9b4b = "ab4adaac5b5c0417b0266ab8f49162f24b7bde35" +7699840f692bd2d50b7b86ea5cb8fa25a5bfdf6f = "fe4a304c909a995c9d6f33fe3337895935293862" +7ab0c4d75bf66c543173393b70111cf81090d788 = "4329988635316e1edc15d03be534771ed1207294" +9957111ec03dbe2e258b9ba06ae22e1df72f80ad = "575f4e638635c51f998e1543744972b5c4d8e256" +a0d24d75c45270fab95b355969751dfa7f4a137b = "5a8597754ecd3ad94cd05df8df5be40d1a4db061" +e2c2181a569e491a5c854c3f775483cf7a0995cb = "e92b6548871cdda1df0799096b2808f259378544" + +[f29f8280-796f-5dac-8085-6f2eb8e8ed66] +16959b35553e344111f5d05f1bb0341f92ac0354 = "9dcba295983659db74114b53a03bb5957c00f49f" +25c358b7512c741671c10846204f1e9724a07d93 = "6d3a5afa6afacb3231e4f06d48ca63983d454029" +320eee3795f9244a9edf34c89cb2760022481c42 = "544805b4f3dafcbea6b3b3c5d4e766bb87fd81e1" +35c86e35ae75261a9cd7b303dc47890dcfc35841 = "376ea077a4ecfe229ea53f92f3a478b7f2e5e520" +413e094dd36dc5ccfd3405c73cd81f106f05894d = "ce334c94bcf96d8881469d222d04f27474366f43" +48ba9c674bb3363af3db639f6996046c50933edb = "c65bb21ca6dbc60b8ba1a7d117b67516e599d3af" +7da389f6127283fa93a9e8cdb0f6f0db89213b9b = "6732f220aac5184b91ef464c649d6ddef57b0573" +bb624b21b6531b89a90db5f0281c10990877095c = "b30e3dcb0421cd25013f8afc8df9a96abacbc14d" +be88c647b7a047cb35d4a966f50cc31e31a5c862 = "2aac619a701d97e71f5cf177fda845e387d15893" +deab630b9cfe21ee44ca4ea260d7c1b03821e22a = "4f2e73a8bae938c5c66aa714a4fe7c1206f6ea4c" + +[f2b01f46-fcfa-551c-844a-d8ac1e96c665] +079fdf92097a49e90e3951e54baa8329fefe9b7f = "bd167146db2a060407843c4fa1d13e3efbbcf0c0" +09e5b3dab36e8d06b159656fec7bfd5dd7871431 = "9720184b3ac7a52c24384e19ef318ca025843e32" +0b804a868d43d35053d83af2f2109be61678d05a = "2212e1fae9551773e1d894713ea9fc11c2a6c1a3" +1233d3363b5374d59f209e69d2ef59eee8044d91 = "00f2317a8804ca8673be5b3eb07d8ce2a699290d" +1f813d2d57aa69f9cd768a8b60caa691c0fb9467 = "dc304334a08e3c7f8ec2e73d171f14f3280a48da" +281e63efbfc94fedeb5eb6f6bd5d93b7fc09a224 = "3425d5cddc50bce22bbcacefccc57c511a1d5c6f" +28916ace3fba62e7cba75e15c8b6422a0961b621 = "c23aee42255c255ac3a64935e03ae61a939b5820" +2bff0e54d69f5967fc20b063548e5d34ec564916 = "44a75797d15ebea9c53a3f6fa971357a36c3cdbc" +476921302b0fcfe7688f87ff9e2107669d562d48 = "5206f3dbf9442c408dff62e2ec36d35db45d6d64" +484156af6102b1520d173989511a57c06cf075da = "08791790719b31b34480f844fe8f8b4c55ad886b" +489ec9bdf77af3f0bd31c8ed120874bddb35df7d = "a8d02e2b9be17ab78ff488387e8d89e5b63b01f4" +4aa750e754c5b42111b674d12b5549634d5e87f9 = "fce5826dd6d082f58bbc2b87e34b69424e418348" +4f92cfe8417e694beaa1c5c132ee2ff7df0ba949 = "716e932ef67484af9ffd11d5cca63478462530a5" +63102317c5127bdc335bc495d14d75dcbcfaf194 = "df3f4b1440daee70f26712e547a24a837ccfcffc" +63836375da8e09032aeb8b0e7087ee241c49c678 = "2131294dc2d2faf6fcb322909194b6f76daca053" +71060d22a965ac2439abe109edda103013a19281 = "7a076c75a89d6186ed70e004d33563219b7f46a9" +719fc2bb9c8fb6e85759d6e2e8208e34f6a5973a = "65a707236b21cbc9e6e852f4c6b7dbcb078876de" +773cca23bb1fa1257abf2dc5538158decee7777b = "dc09ba41f5c8063203b9858ccb414a1cd900ecd7" +8fa4a1738f2f1677ba3551ac018d2cdc47c81321 = "2c15dff5e90f9af081648b58c8319d83aca1f8d7" +943cf897e9ea6b31ab3ec70238ac4931065d365a = "88c59b4ba18e9319e57dd5119164c2d148b350d4" +955353228fade205326790450c71a00499361c6d = "2a2e8d09b80843b0aa191c8b18a51d7eb73f604e" +a0aa479a3d86ff225b15f7ed438ecc9a72ddee57 = "94b1612928759b15e20882f8d9619455669d7b24" +a603c07b61741b3c60a19d9626d808508bdf7a35 = "ab819edf67b4c3a03ce544946a3d1ed4fbc55371" +a9f574762eaedd0bdae1bec2eb4d537d99bac191 = "1112cdf536849b20d513f8d2aa177919389316fb" +b15036fe00ce404429d50a1a7c7b1c99a54f2017 = "98625016d2581a7ec112711a9a9dc2d9cd876f7b" +b3aaf19a3a4a6bb759d52d0ee9e94045e6c55829 = "c2df265d92541f1d9ca4a2ae9c6051f13aac7e54" +ba0be2d29837131c41654407dce7698b71bacdfb = "20a5c16a352680c2cc55c18e9924ebe106749028" +bc453b0fb8e8cd36277730defec1faa326f6295b = "5d16e4e0ad695617c1596e4d714fc5e6cf4df33f" +d916f8a397ea74a1521ece71b9ae611c70de1a65 = "07b7d6d26837c409cf2754da883037b6814aa4e4" +ec3880e688aeba77869e9df3a9d3f249f8aa3d8b = "5c123137926cfab6aeecacdfbc432d3a9b113ae5" +ed5ae1e803c42105cedea76409a3426b6d351f2b = "a6533d79678daefae9897fd48b2fb4c5ceccc2ee" +fbbb639338981dd88b705d3abce2f82072f14d13 = "d4521a8de985fbada6ae8737ea78d9917497e003" +fe8c4a53cde3dcc99f9a2f1f077832d5f2332433 = "07daa152e69d93c242fb134d173a8f5f6a60d816" + +[f2bf48de-049e-5a34-b3ae-c1fab075c4ad] +349a8b0abe6b092dd58377b9febb81fbdbc5dc43 = "97f76fedea97d3d53bc939155e3b6e0ac20a6ed9" +40df36625a06f31970bf8b5a8f07f527d5298b20 = "8d5b4ca5b8d67bfbe2a0d15658a7107731914bf9" + +[f2d92676-cce4-5c6c-9dfa-ef4beb5f5b05] +b044d6babe5f7b7e1214a20a784e169c1d11e912 = "62530cf4f10f55d309aa32867e53b4e122291cf2" +d9aebb059cc6d8e61b76664b5ac990587837686d = "34dd3fe2ce97f3d553e731ffb862b2325ce6988d" + +[f2e7fd27-9209-5b1c-87f7-086e6f5a9295] +1cb4fe02e47af59ecc926eb756b930bd241a06a7 = "c3316ee0e5095e66f19881e07aff3da93d4a43d7" +2b9d6cd2c88864da1919b95d42591a63d97a569f = "8b0bafaac3f82078df560fa67f62b83e9be69248" +46d4e7a9b0aac9fc2b3ffb5459b9a5098f676191 = "4f0cadd3d26705dba8bcd31bef96d03f2956d448" +6138d0aab58f86f78bc28d865010f354906cc409 = "63a189f19871da03e958c60d58117d9faca4e41b" +64d8c1fa224825ed6e6eac942a081e8c53c97505 = "d57500b061eebf2ae36f6ced6d2d68b42bac96dc" +8b37590cd55ece6edc4759e006fdd520944bb4fd = "55ce5bdcdc74b74f07c246497a69b1fe373b9b7f" +a9526cd56d25516505f630eb12238c682088b51b = "803ab2d7c49009c4cafd8699628607e25e6117da" +af9c3979fb54c9d03f5c274894f586f671e3a5fe = "e6bd422190a14553112d94c2e2607705a6bd0039" +d27356ed544fad4f9c979fc2f25dfb5b89798360 = "a67b18ae67db8f1ffda5a2077cb1bb9f713ef57e" +fabeb11a0538ea484a57a165b87aa1ed995f854d = "d356b54259b7e283d02d2bdec69c8bccdc27ec6c" + +[f2f26720-ab51-5ee0-96ed-d53c33548c15] +a7998491a67b509a9ee7f6e2a3494545575162bf = "7fc04fffc3fe324d5e952ede106e10001de3e194" +c859a7b9cc62f1aa7c117f106c7c66ce88d62a2f = "d6a379c5fad87878f28ea2b934a61d968b580ad9" + +[f3015e33-6d2c-523b-bc4c-ccc92cdcd86b] +1b49d9744cec75cb9566574f7f48754becee4f21 = "69ac6203b3f2580b33ab8bf74121ac22d8257344" +5a580197d24598b102352bf393fbc5f3d3b16408 = "8a898727d9849a4d514f06f53882de5b45ee138e" +744b70d0301685daf48cb805d7d887efd5957966 = "ebb3d9eda85dfad19e7c69828159e2df0bc2639a" +b1710113921be4b3b1b96062c4c2d17691bc7c5b = "c1034a08fa2304e73e783f80538fed2a664aad95" +b74105e5edb0b8099b85de470a1f45381f4aab72 = "a4a2c819b9a45460919d94293c558e7c0af75113" + +[f306ff79-ba0f-5c52-9e7c-6e6505f53397] +8c71cdea7b02c63b8085ca40227e0833087f57dc = "a1582d7290164a29fbb57211eac3d47629efa2d9" +b8796c4425088a1b684967871a4de80ae3225965 = "568bdcc53fbe5baac7420e073f3b48b49cd22460" + +[f33766d7-c71b-538e-be72-a4170021497d] +82c8a3b09ac88888f053ee1be995baf4448e4fbf = "fe7b1e77a926c2999af32a9282721c4c8def9864" + +[f3a2742c-0c51-564b-8b1b-8d3b3d057d99] +30612ff3b1592b81a3ddf48e24bb33cf58f06f69 = "c1a73356f1a2aedfb8fdb60b7df86ce40c15955b" +62ae518a6381562828a50fd8335abd6dfc555646 = "997f13fa4ee9b770d78a0ddd0298f114af379330" +aaf1f139f1e0c4b905769f37ab4e84b6e3dce307 = "c642d54788b3afef4cdeae13b0fd698b61cda686" +c6e43549f57f9fec001fc5155738324019dbb512 = "6197f78c4142d3dc65812f30cfe707f085158e6b" +d1c945224e0537d828e9df018f3b68a0e4d1b30b = "b522bf14f18d25e74edf2012d2036e12942c6a47" +d3cf1e99413c585302ac5d2505fe543cd615428f = "0c36b64ba948495e119895c9f3600f00a839b2dd" + +[f3b72e0c-5b89-59e1-b016-84e28bfd966d] +1876e4ac51840fd5dc3fae2383391ccc9d3fc51b = "82a2c51f71815653da4e101341e20f837172764d" +1e022c6cb897ff434ac836668edfa3110e2909df = "45098e09669a3bc5d0cfdb5d8cd8a85f674a73e1" +24adfbc9417277970e337db8767907afb7513cca = "403c78c3dbb9f27a727ccdf1470a87466d35d136" +2542db60e825b7649a3db3919afdcd80ead0a810 = "0d10502f6e3072be6d70a0bee94d847759a48ea5" +3d21637eb1ec301dd0168576a56f47babd9acd7c = "bb1a991eb74c0c3750cdbc82d90d99c90876785a" +4a259f3db942ca1c922c726ffe12b7d4684882ec = "e9cbc60293bd3046f80d5478497bc95b9dc56d82" +4d9ce3c5772312e148dd9798b49bc4f8e39ef7be = "8271e7bc359c1842cccb5098c30142bb2dde6ec6" +4f5485fe45195d038fc4c8f07d5ae819a21db499 = "d691ac4e4b0a83c79c1509c779115d67df563828" +59f6893e61de90288acaf746073120498ebe44ea = "2368d42a7377a4f7cb37daab46e1729f345c4ac8" +73852ec888a63719581732c821d14a2c21dd935c = "df3ce6477749ada96e2c40f659088e575d6ae40a" +7b740e27cc24ea42e1001346cc587711ab86cf84 = "fd300dbd2f8a32025584457cbba88fd9f13e23f7" +80172145e8a170380d16d34954228df1e7121a84 = "43df15346f4136535ebddf6949a3fb3ff29afdee" +9d4eebe1b68f0c8c4d32de9524b8afa8d66009ed = "70c47fc0b04e66bfe6ebeedc483056b943184ffa" +a582920dbec6a8ecb1911d1db0d4fbc960ce85bd = "c1fa2f23974a8edbd93ca836d57ff56576fea759" +a658a247487c43d8120d9038f66122742a80cf02 = "8dc27c62d39e0045dd5566a882e8b920026492eb" +b10dac12ec46492274aa968b0db6e8e0b63b86d1 = "465d4a48f1d01464bd0bffa13f7d49de27a67d75" +b2b372fa9ef15188e3d01928fc9815b2657d9e81 = "fef38216172b23210b23836845a3adf0bff54785" +b68d1ce963001df1da3b61cff912576e7d0b0661 = "5fbd7e1bb68a6c0a098099fb807139c02f7d095c" +b7de7b660e531e43ed7b43b5e7dd935518e91717 = "aa149cb4aa22295b51cf1860a0ffb5a6ff160e7f" +bbf0b9bad8e7dc65e4641e2849a38c5a61ba4314 = "02013fa5875b8a094439f75c3bf008d9b6209f59" +ca24808f6c1f0909643f76b495ac74d466ce7d2c = "ef639970635c24e0df4aaeea3570607782f3189b" +d1e92122169966ef115eb6e558adf10aee8f6327 = "4f80f5a886739c43006b7dc22e83d1b837016241" +d7f696f26b5d49d53a46cf1b9719744fe0457840 = "37d06f7adfebefdee4146378f4f77902805306a0" +d8b18e1a5d508d2de4866bc28aef9d84c099b93c = "835e8c4870bbbefd30d5cfe3e673fa08727c1ade" +dece4925235af576d0dd844adc5955f098e2b9ab = "54724078af37d925b56a52ba4918cad0f89c25e7" +e4926152be620885ac10b5500227cf1167fa43d5 = "2b5bdd9bd2ab11d5c2fd145f27022f83a0921342" +fffb0661718b41737dff6bbae5c729718bc0600c = "11666ca1a48e0b5862dc504a77acb186306121d0" + +[f4508453-b816-52ab-a864-26fc7f6211fc] +1e3bb8142f0c30e50c2e38dc7d8e0fbd1d468dd1 = "c258c6532330c5c32af05684312238b71ae86843" +2db5619d39cb80cdccd398c975c7c397e6f92787 = "04bbd0f3567e695bff1a3c778354ac49ad235841" +347ebb051b0e50c3a928bef47b8b5b2dd354d742 = "2a85d6f82016142a0714f90c523ae80fffe5c6d8" +3e678b322a625d5a45352da233850e730630ceb6 = "b552b5f991bce4a62ba6f020e3a9eb000c492690" +48dec9fd9ac1a7d4d9758b0c60410454a13af51f = "a6fb3d69c2dc015f94addfd1245ed85967e161d1" +4c70fbc202f1182877791bcd7d0415e4c3c28a17 = "43a62165163c539ff8cb1e14449875b53dd7c775" +53a70f01fa1433d4fbbb6621663a17a0ec038a57 = "1088275b8e2a23fa01693aff6975a5a375ee5a5a" +5a933d964f9cc731243d7f15b40e5463dc7175e5 = "b06ff023688662d3d0b6220f44b5e2ccee2455dc" +6911527695f510bfa52fa91fd9226f943e427e39 = "c6f7bd0d04f1b6cee436afdcd42f52f985292e6a" +7fff2aed6d9ca8bf64f905e7f42ff0f8d47d96db = "f1d9ab23647a5ddd672894b182e1d27e08deaa72" +81e3dce55366aef62af0512a92e61f848848fcdc = "5ec24a7383835756872e482e7f2f3349b9a85f4c" +a56b9e07d70e72a5767f79e6e7b096799179ee96 = "3447459e855132e06f1df57b9b29e2fba446fc48" +b84c20c3945da314830a81c7dc56cb60989ff7ee = "4b18b265216e118b83ca67778b9414e65636bb00" +cdc81adb4038960911535f6ecf00f2f69649c1b0 = "323928d2b948056bf9fbd22c1e102a65f1937321" + +[f4abf1af-0426-5881-a0da-e2f168889b5e] +961654af2d90e713c3486e4686b7ec47d0d44fe5 = "3e65299522400435db0697e38e67d505b334baea" + +[f4cd0703-4c39-5e89-823d-694fbb07b12c] +3947ead0171542ae179c2a3f56806fe9e3fb0916 = "01bac8c20465fac6a67a831ff5420b57711d7f59" +442feae706a3d3eb7554b4baac7b5206e9da5e9d = "e05a09a76e0ff936a4049ee7c457e823b6922952" +c0a841898dc68cb0e6acc9056a0cc660ddc45586 = "1e66c48462dc9f6377dbcab056aaf63f9b426ea5" + +[f4d215b3-0620-5416-a1ed-ff5329874956] +0e9793698d14a84b44a98ef84bd0dcbf208e5ef2 = "0dbfdfe95dfff202d6bae248a4cd014f764028aa" +1da7c729641bb8350869a5167512362b1a88afd3 = "45122455766cb861db13e05af0a5f4d8d7db77dc" +53e1cdca15293d3d1131a2bf241fb86fa42e7b15 = "831ab1b33491aa037f28859417d86f4442219197" +5d34b184b98480708fac2dc7628c4f64d5eb8ca3 = "2669b34b36f924c0f63d804a6c4204d145f18c1d" +c49f4e6a28157cd3ec2fc12652bb7a0537aac660 = "fd897afc720a42a0210f8b533cd1c94bd4b89319" +e7dd404cf3f01b80d5b24373b22e80010cbb4782 = "9bf642e85ad9938ab1e94d8699a2e0b7330b3678" + +[f4d49484-96e4-5177-80dc-983951be60dc] +530fa970b4957d007ad082b21c1d27cf3916d906 = "085e3404e15e91a8eab52abd89c34d743608f6df" +a036673e63c1e62ff34c90a21d0aacf1ae794ef6 = "658d46f8fa503d23fa986597298240477fd45127" +c38db4944216cf1c5e05857dbf1035c154d0a6f9 = "6e87e9a640144211c22f93295506a834d09bac0b" +e5951d564cac9a2f366b019e4928bd25b0b8ac86 = "b6a3a811146a7a9c46e7d5475fd4968279264abe" + +[f535d66d-59bb-5153-8d2b-ef0a426c6aff] +21aef7e498ed9210aa96ebcfdbd481d0cc117df0 = "1c860b3045c60a44426ba45872d5d2a1200093eb" +21d351068f56948489ebd6d4b055c8c2287e452d = "750e696800c813289af0bb9a3f0628b79fc7d25b" +487dd1fd9fcb6959b400f6013edde1adde2b5834 = "ee9eebeba98dda09378be6ec4beb4c4723c9143f" + +[f5543645-e2ff-56f6-89fd-a5e7d6120970] +097f1789966cb54f58594db225f53a95c594833d = "0fd2d29a8aba6f86c88fa77328523f69ececd0af" +e080117b239c29c2fe263a53e0d424829ef06bff = "e5e1c49c451d1566c76810e3d1326a1071d31620" + +[f57c4921-e30c-5f49-b073-3f2f2ada663e] +02b39b65d041ab66737f3952336cc16d3ccc2b0b = "51c788d15c1d353c9b8b89b0197584a77efa0e0e" +1e0190764bb2db48de65a3341ae1ffda85c63493 = "2593a87abf15eeecbfeb3914453dfc745ba29560" +24bb89fd9c759052d564b49a77bf860282809731 = "2e69cf7b2ec1fcbd08efaebf1fb965d0ae61e20c" +44bbfa576c77d2034b377a806ba4326d9d6249f5 = "e20da45462b603dae6c7c00ac5d50bf38dd1f892" +967bff2fa06b1caad887869e7892d018f66792d6 = "5b414f452509226ece41d9b5d4c9a1ab5b6b422a" +993d9c14709bf160d435fffd5bb9f762fee82609 = "f8797b097f07bd7c140840426185aa1522c2e758" +e5a785036cbf2f1e95dd20b4dd28e0080d0461c4 = "6b0c5a9a06f08f44765cc9036b82734ce5bf8b95" + +[f58f5e38-9170-5b32-bef3-0f72e8d4f505] +7fd64855c2f0193cb9bfb17a8da2306b027179fc = "423e8d7626b7028f051de58a57c51e8f1ad85788" + +[f59402ec-0262-5707-a561-770af94bc5a6] +3c4f80e08e9898bf4987b12e87c894de5594a9b8 = "e3c6b214993eef84dce70d9704355cd0471c7475" +8185dac196aa94c76fefdd0760097c6460802e89 = "6a6ed33e0c61012b4dba677db1fe8db313f3c1c9" + +[f5c4805d-b585-58fe-b08a-e9c59614aa64] +05ee37055f8e1b65c450eb5fd04b8e9a94d85e2e = "5a2f75f49b84fe7837de9848f0662e3477a59eab" +284dbb12779afde341987a96c35c8cf4b0bee2bc = "54a785f459a4df551565c95c4310b1508be108d4" +36783cd1acd10f5a76553357199cb8e65ad53b4a = "8e944910726aea9a8984f20a5da02838fa75eb5a" +7d738fefaee58a786bcd8d336ea42e9601eab07c = "10df662adfe1215a5c6e025ca88b79d943bfe4bb" +8865827dedc7decf65a8434242e8e5a0e9c62a93 = "4a1c618d6e755fc3dd16b23093346c77cc9d4c1a" +f8e0e4db6963a0e5775539a65d8f85add7af9565 = "e3fac60ebf2d3733a9382259d3332f43b326dc9c" + +[f5cc2397-9d3e-5971-afd7-e1f28e1d1eef] +0b3b60f5288235a47bfbab07608483b697a20f38 = "349baa6f5cc7e56f39a4b269f1389b2802b80879" + +[f5f7c340-0bb3-5c69-969a-41884d311d1b] +13bcd7d8cc2e8d6faf8484c9bd2df2c6b28174a3 = "faaddd09377a6e80f561e568786ae5dc296a1954" +3712b89bae0fb4940ce7703529f4bbc50933575e = "249e4029c12abd1b16d57e4e5f70a6eed3850bc9" +397956c859f0184721d06c6f305fe564fdaccf61 = "20fb9d29216b2f8e93a27a6d0fa131f0742be6bc" +51534aac439585a1478d72cf53e999d2ae3be215 = "17b3c2f244172d287f701ab0a467c6d7bfa8c06a" +685be2f43d2e5486ce0df3da58b548e9f2145cf7 = "3ca3269afded13b49d2ab30e95d84530fbdf035a" +9dc2cf59083bfb1bc76886b64e1d7d2930b0ef92 = "ba49f37bf71d4c77e418138916350fe74d2c11f4" +9f3a2b87bb0efe6e07d55578621d4de693125460 = "254944652da1a4ab1b285905f91262800b4de57b" +bb89e79b088d41257d4badaab120b5d64af1b65b = "ff99c8de5b5493ade70baa14184ea20cc1816300" +d92188bbcf876716a86e2d0c76872d554a414e54 = "dddc9ff308494c6ab351e0c47b8aec6a830b5c97" + +[f6024387-75e5-5fdf-b095-327b05c0905f] +24ea0042783335212c7933c56a9877447c0a3ad8 = "fe34b498917ba5502e072e4cccf5aa84e7b14b98" +2ff4eb95f9b2ad286fe76df9ea739320235cbef9 = "05c7e987f5db4a20cff336a39610da365e4504e9" +42927e2a002ef2bcc688c270e2b0a2d3b73eadb1 = "291d224acc94233b56eebf93f2106ae6bb68024e" +4d5b34d9922dd3f3657c9e83980f5657ca86f3eb = "f6bcbbbf761cd7385cb5587d2306691089199a96" +73feb492598cf1e47a6dee1126a425a5a8662d82 = "d9b9ee19cc28662a265cc6b447049fb69159e8fa" +8b492759b8081c484c34d9aa382f8671d385370e = "4ce20516d1ea97a9460644d675ea770bce5a13fc" +c035625b1b1946e4551dab9f5b30d1cedcddb1f1 = "2108b80f394fe3f6a3f1002956d9b6cf397ee421" +e0e58fed3ccf393f50aad0d4e97bca5fd44f65ff = "19a7af4bf15af91984764f502030a91407384d10" +f11f9866889ebd6ae75b9ce0b8b9025e5cfff27a = "34751fc00ab7075f8605dd1f17e44c025d1083ee" +f68b9da541c2f811ce24fc76f6065803a0715c2f = "afcec8476aced68c93b2b50f1bb24564eeaef2e9" + +[f6097e2c-3ba3-5605-a9a8-3a277acb490f] +11c607bb1a5a70cb7421590fd29f7fa9aab91402 = "cc7165822d76d859bccf7c709c19f93e2e4e309d" + +[f6369f11-7733-5829-9624-2563aa707210] +045a8286ba5ea8715ba6e47ee49e0ed58707e228 = "6218d8afed64edab64723c8553345ead55637370" +1129f9be2b706e52a430d5b29f7ddf41bb49ca18 = "bc2d359917f28cd5b4a2291a8cc4f678ad44cdfa" +1b5cf91ff103bb7e40ab650dd5fe0c6a74e304c8 = "2cfbaa94a3b862eedf509e6c07aedab76d807d04" +2381c4443917cb0517bb75de61081a4b5a3bcbe6 = "f1806e9de86f74b4ea9582da86240eb90822f058" +25b93c2e409f0c229ca27be5ce543f6fc9eaa987 = "f2559eacc43435a8f65ac5990d8b712a5c705fe0" +2f712dc1da9c801b537c31ea5cc3400987043124 = "9b2541a8625ac60e61a6fa5872e56723b00c1ad4" +3077036fe9c675af11d321b9732ea43001a73e30 = "9f786da192a613058ed929306e3b8ef95c63bd5d" +49292ee6fccac514d0f532a7b98e62d5b8c47dfb = "5011e4fe4c3b613f4c0e5940ddd24dda15ecb9f3" +5418e4e1d74a6a054aae3e00e61309db34ff8154 = "f75667427eee65c745c6c268cd2d0dcac29a32cb" +54bdd2c17e8593be7d886e815217c317c12a8b78 = "3550887b3470a6114258b5795fde011f23ab9d4e" +55222a0fe5509c9dc1ecca88c314f0b57f529cd6 = "92bf5b425539c5661a58ade570a727dfde03817f" +5efb62e1c17fc36f74abf3be7d41baef4d4c2b57 = "362236451c1d437e17fd2fc7a8cb55e33cd957b8" +62ad04b6cc2f36f744942d5061c64fc3f9582da1 = "890f65ff755999b3e0e661e44cd40c3445c6eccd" +667b37e88967a3e61427d1e085e39350f8261bad = "82088789ef48679704385a1407613f03a006c8d9" +675818ed42bbb95ccb84884d0e6a08d1a858b94f = "97edcc09fbdf4de1b759c9d5ba53cac49e0ef808" +6c61b61de2b25ab8b8469b7ddb0b410898590323 = "ca7bf4aa73ffd6b22264378e152a3dced5d44cd7" +6da5f5204fd717a1417a8a4a6b9e2253799879c9 = "0894ea348669dee8da2f3be1bf15c5234f7eca9c" +748c80031ea6d062102d886ef0d26a765a4b0ecd = "c4855c0a9df0ba2c8ac3fad60df93fea375f783e" +76715d249bb58cc9feab5606d3986e1b65162b8d = "938dbfb841b9b389f250679d22293b325b379879" +805ad5da942ba5f4477d1d8c5bce0b11cf3260fe = "9cd090c3439118dd45a88a8a2c6460d0e4897b24" +81774169f013ef5a8398256557e6d26e769f4501 = "3c87b382c5f13c147cb6bd6b51010440a627d34d" +82dcd98972f8af437d9b59d7083b0a22db9fe7bd = "baf5f8cd44008df8f7ca4cbe0619fdd17e47f734" +8f9e9b3175920e619091befde0cac10009cf0764 = "df2248f12d49f3be31668025e5411ef9b6a662d5" +934b3b260b552882c556e351588ccdac524aaace = "4066f2a8c092c3517c6fde6e5fbdaf3dd53e75f0" +9fb6582e19c9987ec763cbaa27f1ae833995a5d1 = "7eb66a22e8b80cf4c1e7e545c990ab5304eb8c45" +af3977209ab405a9c7ab889412d534112e28fd8a = "18c2aae4400b2c36665f3f6c7a3f3b04b18666ec" +afdf603400eb366abc33cf3a5804f0bf4551763a = "e1dc3223b1591f5449aaf507423df79edce6f4e1" +b467b89cbc2119d449a1bf14c106d94280f2f548 = "22c32db051e52cfdd14966162342306f4cf9490b" +d41e65274f09d18d2bf450d99e0369075e0fbb2a = "d2dbf37343f6fdf47456bd5f1a74dd4f6a6f750a" +d6714170e667027e9e53aa5daf941c3ef5252e7b = "07e29aad7f27f421f639f7872f121277351bc727" +d723cfc9c94a8fae1b5637e1a4562c572b1e603f = "94a99a5d0c7078cd2351c5b821c6ca8aacb834d9" +decce463ae101442ef293ed69b6fe1696745b0b5 = "6a13ae6c27895541105bd601613db873e9829a34" + +[f65535da-76fb-5f13-bab9-19810c17039a] +161bde61fb4bdf05728ba7f5e442bcd030505aec = "0ca96f826bf5d1863bffb10d2f4c6def8b7bd280" +19f0a599b39e68a84d3ba001d97ac0a6f65a5f0b = "1c420087d6584c35be833c76de634069fd64639e" +2f35966bd35c8e6e89b36992d3eaaecb77b6684a = "5747054bcc058d4978eec14826cd2427ef2c0a23" +31960219657a17d2b4d826282c00935a9f2f8e97 = "657f10a9f41f454ec56f741a5a68cecf89591d9c" +90eda1177b2b13eb891753b55bd54f939747b920 = "903505e3b228d6b659b6f7f289a55f552cf315a4" +a98ec6f7b1ba108e7920ea045ccc9cda3a747207 = "461d91a72bdb31af0361bf4250eac696dbd98a26" +ad07cf45f0ea922572861c0e810cdc54547e55b4 = "91678580ae9ac15c43a6a750f4175c0e56094f34" +bd20920a1823f8488f99fa1d7f782325acaf3b5f = "db88afb5b8aafa0fd95686166c7988b37eca32e7" +e54a8ced508e435a4a06cfdc0050dc3289223798 = "a38494b7edc387cb5c8f5a9ffce7eb92abce8424" +ebd1acb80eb97875550b6b64222da3d0675319fb = "68c92d69f17ca998ed803856664d606ba1ddf0f7" +f814370085eee19267db46170d5ca708a6d19b26 = "9918997a2362b0bb80ed195b9c5ffc0e89f46693" + +[f65c2e20-4403-5cdf-8ea6-a970e6a3985d] +0d36b5c8ad0a3aabb2b9cf0cd95d41a7a0a9aff8 = "34cff57af3dd2bd00badffb624b4a267b1baa7b8" +218ae2dc710939c2427ecc874c5978a588b0bbe8 = "853f3af38b507dffe2500265c816fb6b0ad01d01" +62114cb6c6335eef3e40adf62695289cc14f17c0 = "753a92a8bfb27ae786f3f2b3c96b16fcff1cf245" +b2182753e6b41d8207dbfbc3a54087316f1e4bd9 = "6ce31d1f2f9bcb351f0f1bc82bba96d71a4cd8f7" +b8c8bf41f0541ebc6a18cb649cbdd97697272453 = "d632a30f3f72bb326fa4adf7ed61dc9b870878bf" + +[f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f] +071fb5e4fd9d8a5fc23209ccde98c12f298545f4 = "d6ba62af31d136fe67e7f077e8915b288dc5909e" +07b37362ee1518eef100a01a386794f1b8880766 = "62ec7078a2550ec41b925276fc5a084badf4ca8c" +11e56713a3c1cef4d4ba58461f368376be424dc6 = "da80374b95774759e37a712582dfea6b324410d5" +1313d67d317bee674a7ae8a38a930719349bd96d = "0366859b06b42e5e84fb8414ebfbe76480d90aab" +13f7ad69e2357e5310891123f2626dde1dce59e8 = "673169af2fa70c5863550f16892e77985a7077e5" +14ddfb87c2d14c6aacd449387bdc412ebf0f811b = "dd3a9d33ef2c47ad0f741e1a0ec0d7a93008031d" +178a67e9a9a9efaaeba39bdfa4217d41da1f09b3 = "ccf6689eb582aa9daa724eda2640f0147c36ef30" +1a0e57d33cec9866401346bfe03c73d6ac704138 = "0b762fe75c53a75db759dfc69ef52fd1ccf42bf6" +1ac15ac115e2cee4ccf29b24ff26280c46f18064 = "ed7d519b743feb9f4b15a4db7c551120f93ab6f5" +1b30f15421e0e6b16a3448deb39986a27a4b1885 = "1827fc98c6eb65275dc929ee53dac3c3f3dd7e0a" +1efb0f2547a5bc3bbe91bfe291c32942bf7957bb = "d11422011ec64f9ed35d68e58ffd86c645575813" +245639ee3963e8b903c5b4cc4accf13a37f09569 = "dc703d996cff279e18225af056faffe45963c527" +25202cf753ad4b084c80f6729c73d5ba21bb7296 = "f38e24d23c4727a0bec4b178b814590bffe9f22e" +2821b7733546c268b38c66f3e1918a9625571032 = "97bbadf285a4cabc7addc9c4b48da80ef5757255" +29ac03e758fb1e5f9e799a81eef2e8c243a5d5cd = "033351ce7536e02f512e4749e6b77ebf3df01280" +2e767296118369d2a931d21e860d3d3672cf2cb4 = "74835d7a6851286eea7c99a5aaa3d57a6d6a5a66" +3218c8350ca90841d61931cd0c1fbdddaa50332f = "c642353a45688b2d60facd2e2eadc20aa37f5e64" +39f6aa8fef349a2ce9e7d3df88c64dfaef11688d = "ae041da40e72d4e07bcdd2429a723d15e339becf" +3c1296adb62a0cb7a6e26747ce47720c061fcac2 = "1f29425fdd459d24af85f026b46808e33d423c91" +4040fd577e2a1677384cc3095857021113011db4 = "691a865d01bf6fd50cd8576f9f4ec9bbe3c8a952" +4116abdd80184038b1a4da5a1b9fc7079ee00903 = "9916ce4ca13fa63f24e58f04ded3d66c36c6aa4b" +41223afaece3b7253961313733b8fe5603670844 = "b4dd1294fe6c6d682d03be5a0fb89240b2d24b0e" +4218cf6a5cbf932c32c5f90cca3f7233ec5ccc7b = "2d8054757cecf6452125635e8f520844032cd6c8" +4745e75600c7647d9068b47add39cd3be0344e2e = "4eb09a6a0f7dbc85a7f8bd6ad0c6ad95977d6c05" +4a2dff3b33efe5120a43264d90496f69b965c318 = "4862fb70af7eb3313d62fa8e96cec69a1638d7b4" +4b0a727b802d6923b02c68a3c441f01e5fc4d6b8 = "839a8eefdd7e761d074601a348af18d1d4205746" +4fa53d3e89c05b0a96bf4060886ee54dbaee2ac1 = "6bb2c111d888834b11d6e8376576bc53933b9b2c" +4fd9654327a60ccaaa24376eb2d43da3edff4e77 = "e9e61fcc0dab8bb38cb38f46f219290201fc2f1a" +545c2b58b8378e473ac84865e7dbeb6d3a959ae9 = "49fa7197c1ea370b5e4fdbb888a66c6d8d65e362" +668dd90c90f38ed83b11177e96aeb469e616f5e4 = "f116e8d1f322145752559580d1bd4a1bb1281d5a" +6c6f09bdfe3b530fa34b46cd4db02850e783c935 = "e1e906a388eacae3e4b656798a976a7318d19f22" +6d3cbe1ac0da9ae81163439b50b4b70c998213db = "2fe567ae2b282c8cb5ef558b12de474bb53f26ee" +6dc4d254cbc4f5eb6c1e7f256911ce3d2d5ce646 = "bd3266774da252e8624191ed00b3eedd2987cfb3" +74d7f05bd3fe3264c9e491700685575d39c6ab16 = "39d28cc3af7189c7046f86a47cd2ebcfbb734d24" +75ec2c32ede6c516738c1b04f09f024f080203b7 = "05d2dad5182c6517ddd125eb1137c9df94dfa1f1" +7cae2b4e5a82ece9cba50ba790808cc9752bbdec = "2db42ba38ffb8fde612b54281708b6d95eecd3a3" +7dbea08030bb8377b53e93cda7190a4a6490cb6d = "5471d9b4ec57fa7107dffeae5c0e4baac41cc04a" +843933e5dd0598c3828f3152813dc32257e6774d = "2733e48285a22b9ab274db316fd61998ebba97de" +883165af1cef09980a3d9b1718477579d629754c = "fdd0e43f1a70a3acb957555211f5d0a519c0e40f" +887c930f8e812a87e2c4f34a55afc5d956d65016 = "85f685f9ca319d0146d89a507a5dfee896d54624" +8c4db2df096775f776e4b003173fc3fee0dbfa44 = "15164d66055440cdd61e642702cb1dbfa93f2a85" +8d6d1dfc033c372b67054902c0536439552ce018 = "77e84e2ad77c894d7586cb2f740777daea7694f6" +903f4ff2c82a034e48df008f4e96118d092f682b = "17f8472d58b86e245d61f4951ff642535e849311" +92a190055c946d63a0bb10956512a67196a17b52 = "ebf2d20e04657446b0dd981237a9ce283b9d16c9" +94386126dc1643d9f1fe953d721099d4cb84e8b0 = "0ec450297127c9fc193088c239e0d0b7a8003c9d" +96049554c7c7988ad12ac578d45553cef6970fbd = "aa1b8f0911c6479a794de0cdfa52ab64ce607981" +97c0f16055ff77ef57257c03f58a233a78873d4c = "59306340f4b4cf1d2ef243b03933889644e0c24d" +99c9718ba68825d7ab7fc53aa3c558cd3c40b1bf = "957b166265318ce5dab83d850b0791e0f1148db0" +9c029c1c78fb2d41bcd61ac8a3c591d799860cde = "1b37b0f991998d97b9a30746cf2d3f550f664d91" +a10138a7b2dfc563104709e95c432db2171986d6 = "70dd36fb720fa101f98ee977ee0ce206c887ff9b" +a149697cb85f7cf637972293e69acfce1392f90b = "1f36b660656dff2595700ef3d8ceb8fcc243c94c" +a14e5ea94ffdf3e97b2dd115d06da00176d85011 = "4638eaa4ed8dbf1372c22346bad8981c73287f44" +a3b998853cd9f33849b4f7cb5c7b93c1e62a9526 = "f5e11e297b9ab482cb6e7fb0e03333bd20b8ab1f" +a3ec7209c845087ec04f338484e2a5343a2cb88d = "5894f87d16bc845f7aebbc0eaa1d50f7ae5b99f3" +abe06f39d0570ff3f3d831e92ff4511924779212 = "9b06c0617b386dca568123f6ce634a6a81d3f75d" +ada78cbcd821988619b92eda49c952fc9f158652 = "795a26cc27ad172a1570362103bc19370feb8e65" +b1e1e36011787a9ce6e903e40d166f8ffebc6ed0 = "c1cb21b4ad40db8e7923c1ca47cbc75c0c897d83" +b83cea4da20745bf897662cbab2326be711dfb17 = "8a8ae9d47e4040ab408b24da71ef894f097b63d4" +b94e9417d16e5d8307b24963b3360a8e681978e4 = "9fb8c395ce88db0eb99002339fdd64e59d31b48e" +bac4e9ee89dcffc0bfe6dcfd384d77e565213eb6 = "bd019871919fb68d00a8797ad457f1399ee1a912" +bddb37a6206c87294e7004300297af39f1ed92db = "b83eb32f03b212bd04e7b0f12269014fe4f55cf0" +bddd411d27dba4b51700b803dc0017c1daa6bef7 = "e8c6d7a908756b0300ce3b7cdf0dfc8fe640a656" +c4d2b58a5c07e6bfff5176e00a9fe688bbd687a1 = "265d0fc43f569aadbbbf900dc1ab0c51bd24200c" +c6665fd8f544ff6f6fa0b303906cdc26e4f9edec = "04d796c544ef947eacd1ef207e42240d1cbe1bc5" +c7a9397e0882f3f5cd07d6e0e739d65e3ad786ae = "5e8a721efd5b7c57127b079613cfb0935638a91f" +c8131169d42ae22f0e80e56a2ff9af9234b960fe = "af11ecb239325319117a23ca4e455c7ff054aa6e" +cbd6bd7c821ce113f53420f3ee49c58a5571175f = "c0fef2cefa5497dab7a1a1322abb006bb5a51165" +cc0d94accbe343865ead30ba4cc700b552eba36f = "8ce8c7d70f3a2586597b25cdd31e66e53d357bd5" +cd1eba18eabc72ca0613028b8f25ea7fb07e9aad = "65c1490750f8c44fecf4e66f972ea6d84350e95a" +d05984d24466785d5cfabae466ba373293df078f = "3e21fcd2eeab21dadb3d1366debd7177f8075035" +d197b2b5f2c8faf1ff7acdf3601bb9b9dfc76bf0 = "22ca952663c9088749c409eda4a403091d6b5d50" +d300b5a9f0d70357e6f23b0e0a437819327dad78 = "75969e6942a536652f81a60597a8a056862a0d9c" +d61a50b4b2105e95c1fdf3fee20d9afcaf422150 = "a0e658bb4caf06adb2a36a0f9db613ccd2c6634d" +e2fac9aaa6447b7ba56295fcb9488e8110280c5f = "b4d461b596db281d65a0fe9fbd920fe710d004d4" +e67e7f9f63118604eac25405bbc0a342768cbe74 = "182176e4b32b7e271284b7dcd93148e83d9be0f5" +e75d5c751c5bd4fa4ae10a0a829e13e1577ca04b = "08f0e26219b311b16371aeedccb7ea3d9c7b9661" +e792771e820d41f4a97fe320839d401467678705 = "2c301ec3d777e1453ec70443e56b0adcaff3e1c8" +e82e1f81905297fd39037ea5e2613fe898debfe3 = "4d80ad3984ee1148ed67330a135631421502dad0" +f27612c88a11ad166c9194578eb967c8ae89136e = "09ea33d0f6aba993dbe5b24584c45d77bd842b7a" +f31cc598f2805b834574559e72d609afeb76218a = "851a84e34273f3234784f5ada3be97ef6d7e8cc3" +f6b5589df61112a3144d547eae8dde2c49985886 = "7448bf7ba5c8c8e50c639cc9552c9a1aab4130a2" +fffbabc715e4d1e53705fc34c62babba5f161905 = "cea0f3b6ca9e350959d57577ee2c14e3e55cc9d7" + +[f69e2558-b9c8-56f3-8387-9ca602ed87e4] +fc755ffd3e39f7bdc67c07f8dd0fc2fd988009c9 = "1185ae247bf82bdb168e28cdc16f0da222766dba" + +[f6d8bcc6-4e01-5431-93c4-9d6004abab90] +0cde5a48c95a6b83ac306e8b8e78f73ec2bac032 = "78069c237d3855119cb1b87dc6aca884ac31df91" +3b397b319a326bd0d6f005d8f9e91f71dd11777b = "9f18fce5902bf589326903e0fc4bed191dd05af4" +3ff0c268df2dff8ba31507a0e0d09e4d33f94abf = "3af929e3858939df0831cad24543b6d4e98a4c0b" +9ec268f87d042a889c2338a20857ed4a47ca783d = "237c8c1cac175661eb68da590635519429878a95" +dfe68383404b93c17fc09750a0631d94a25dfb2d = "ee0d432ae87359c3a753ac043e8900fdfb985dfb" +f106c7446609e8b29eed53f10f74bf2b4b6c512a = "ed00577c2959e8fefa7d529a20414f1b7fb03f2b" + +[f776ca57-7675-5783-9f00-00905e639b89] +1199129513a4367a29fe9712b1e496f753525290 = "c2d2a4adf16be90f29eb89d41a58217bd7acee61" +16431da8df21bc698c901224fb405654f60bb4d1 = "dfe657b9637a649133a9b6724033fc4e3844be89" +a2a5f8b36e8c27a628fd3f62e527c030b91495a8 = "b05714b08047c0c0324c6a20c821b20ffa6dfdc1" +ad6275b99c39ed6f3f63996d38fc8269ecf98372 = "55d6c40bc4dc7eb2596ef65c34bc8d3b399f4806" + +[f786175c-7be2-5c6f-a66a-14694b1fea27] +65cd27418d65e855034ea1dc6ec00795139e6f46 = "6ef5e1a3e028edde6947b00f917d0414029e3b25" +84341371762bbd28a60d2fcaa8978408193f7914 = "0f2b8b97deddca98c75a19688b4bde520b8ebf67" +d0c825528c8193797b0570ee66e1c10d8549834d = "243b3dbd8d988d257b5a823c7771b8e5c092222a" +db82893d08817fb97982088292f391758fa7625f = "20e6008b370484d7dd7d30cff5837a6e715dbca4" +faff857a34bcf2fcaf835ef6949d0c8fd6735b6d = "06eebce272c6cd1b5d5521e90dcd1f727ff6912b" + +[f79a5470-17c6-525f-b62f-3ca7bd6eedf2] +3ef61e205383726ba2aadce1754b3bab76733e70 = "b4cc25c886ff046e5e3ab158d9e51f85a4a5257d" +53f7012f0f8a97f3eef0200ec2e4a56b2ac7f9c8 = "fa49496838943eedc40baf6bfd0f3c2b623446b8" +598d15b86568782a4b84a81fcb5980baa18163f0 = "9ca179ed38b1e71eb6d6823914c86852530c1175" +87007181deeff517b65ae25795c289fadc3c54df = "e3cad6a1d91ea201f1a4ab8f4ecaa946f7df1f26" +f095ae62682902b8d3cedf85652529a0818e135a = "16a043c5b08f3ff9230cf203752fb5808075ebc2" + +[f7cde340-81b8-519f-8cf7-a5da16e3ca5a] +4601394a40d4a332f8cfb796d03af1829939d4f3 = "89c55cbc06b704dab652a953ec58ef7017f27403" +d4a53a13f912be7f7a9433b30ff0a3893f9af18e = "7e8c173eedbcd47b08d5543b9d9e78141af93e0d" +f8bcf69f08f99ece4e5ee5b6d784993d1f06d253 = "f5499f81e3b3e47e9f6bdb904dfb7fe3518deade" + +[f7cf5433-e9a9-5c98-8d71-a3ee389f50ed] +88da1a17192aec0e571804ab071c03daef6ede52 = "08f0ef80955ad1217e66d077a2af6996358f62bd" +b413ca1225471b204d579c623c7ad5cc34997c22 = "0c96e8f6b7daea73d9e4c4bd464c8b2bfdb7a41b" + +[f7dbf8cf-5e5e-596a-b7ee-19a3f6d1dd5e] +00e63a61bc2e033de7ea4a4276d79caaeaed1052 = "08442c5f2bf89f793e155f8b08a3061db0f92725" +7003fa9b1eaa2841ec6841521188f0a144bd5fda = "cf5df7c075c2ec1b554b09690a815942534f070e" + +[f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98] +00531f3bf68df7bdda62e7ecfa6c4eb42c0c2981 = "07dc7a755c44726f6dab15d40b37833115b712cd" +31a93b64aef50f067bd7fa648b76a1aa433ca894 = "53b5c13f13104df5118bebf2fa0971470b3ae05d" +38cc23997fcab04283683cd9f711ca411d761e67 = "fe2bf409ba4c52f3cc4ce0b7122cb077bd219b36" +4e48ad77b3a100810d20de7cd994806cf9acd449 = "fd0b7afd3b35a6b78e51ea6ffb03f9b05339368b" +503eae848bbbe56caaa04c5aa03f627ec384a452 = "c973123439a85628167caa442b8da94e2c755cda" +58c0b7538fe45fb335ed64924b99952e5924a9a3 = "5d3a14c3124f56e0f65d60e23d82a8e4f7ee0b65" +5d0c39117aa273cb01e5f28e71dfa793819dc81a = "d6db6a6ff9912c3a3d5c42c830f8bbd97c2fb70a" +65ae699fc45f11d981b464d131acfdefdf7e427c = "7919468df95778500d3ce0b37bea97d39e6190a3" +6c83bcb5480318e09e3eef8d58f9c7d0c7fc7ab3 = "369359f1ce8cc4baf69b3fe70100cbbb6634c109" +6d1e509cea73402d4f6b37314ab0fe97d934c837 = "d5f5d5353e2736647f30dd4dbcf95cebf386d3a3" +9340ce88c67590276a07f15ef670335feea5dc82 = "08816d9f58059e8e88f9365740124569ccae364d" +db2da36320759c5949c24b9234eaa01af57eea61 = "318a451b37aa5bb072736e65d730086d1919c4cc" +f5faa6e85e255618f53d5a09b84446e9bb4a3b78 = "939a1126050da08a88632b518e8828b7759b7874" + +[f80583a2-2f03-5cf3-bf51-00b6f1fdf270] +2cbad24a5f1afdf06f4dabc23bf81e23ab6c9385 = "b00acbeca89910fed0c1dd3f1e1c2eaf34491b57" +a33246e0c1203dc79188c4de65a468c36147b073 = "08d4937acfe1f7fc90ddbbbd93bc4e24bd033e21" + +[f80590ac-b429-510a-8a99-e7c46989f22d] +35307b12adf9465cb942ddc7e1da87108c7bb575 = "c170d63ae5fd415231e6728e0e91d95dbfc26109" +3e8fb609e67ac8213210238aaccbcc2475ee7531 = "f4d5149decba1e0c692a225a9b0934f1696e9dbd" +41796749ce35e04ecd0f610d075ae50ed49eed41 = "92d9138c06b5dbf4c575a3b9669553b5a8052c1d" +419edd97c825a3a5bbac62d55fb6f466d163ec6c = "ab90af370aaa662e2a6742303a9f76d0d002cc2a" +6e467691f0ca1faae24b2fb723909f75a80512a0 = "59ed78ba875c8cea797a18dfc0351c95e01287f9" +6fcba926d0fb1d2d86007a9388e1dea67809be3e = "312e54be315a547a039c93ca0348e9d48c28cb10" +b950ba312aacb5b19479bb6f08c0b4d8cea46f3e = "c97b6683332317c2dbfb9d5aa927f23c370d3ecc" +c307c1482cdf094efeacf30d09bd4531243c9323 = "5c256c0703e982229cd86025245c03249730d862" +d7bef419ed4946671f53fab17a4e532ce021cf93 = "1f83841fd59f08c2f43b395721b73e08c8e212c9" +dc75cfda0363acfafbd2d3b000ff5158c8661f86 = "2695a19e1307101ae55e9e9234d3c649fcfbded6" +fa8834e9e51113c90549a287de40fc05c133affb = "cb7cf4a66d955b3fe183bf898ac127b8e9f7ec1f" + +[f86d3d12-fd5b-522c-99e9-61577282a1e9] +bb8aae062173e6b3cd6aba103ec1df89138c570b = "7a1e7e6d054d9369a2e85a43015f628329716fd3" +e0a3ea0b4f1817afc94d77b372212243619c7350 = "375a0b43ccd9a7466ce045b16a8cbf6b0b237824" + +[f8716d33-7c4a-5097-896f-ce0ecbd3ef6b] +0443613e379442308b1c5be364d22e632c8eff17 = "502e00fa7d822f5b801f536b9890fe7759be94f6" +355bd0e5dcee6701c7cf63992997c01736bf49f0 = "b19d8c442c75cde10286437ab1e0884738b62420" +5d3f4b529018e75d9739ad82b3ec183abac19365 = "a8b03e2120f6ea57356f4fd592dda855afdc0cf1" +6e1602d767e4d71198020dfef93cdbef869d3e94 = "ce262a53a22b6244836424ab481c7df08056c817" +bdd9c0ea044250df6bb8b5a21aa51ef2d9c652c0 = "18e88fed234f3b83137ace245179f9bfc1474311" +dcca6ab58c3976a29029f9d52c18d8efeabb7f23 = "5d83333350b690f6444ed57a540699a4ce996821" +ef502ba25c65cb559e8c086b1eac5e220ac80a3d = "0824fc763a15c76e5be5fb2c110a0b4c606d4ae2" + +[f92d4219-768d-571c-9f94-afc617fb7300] +4dc7556d45ef8f07d619decb9a1c4c70b91bb3ce = "c8e4e3ed47eb0455e91962f48aff9559eeb81426" +ea497eae30e9f94ff61a6b16edbfc4f67aa9fbe8 = "dc398b16a32c782f435d6f69facf311110261e86" + +[f9630f5b-a116-5b0c-bd6c-4699aee17694] +b0b67efbd728a9387269cf60c9031ca883088378 = "2f94664044fd22eeafeae70500446b25660839cd" +e5bbc157338cc5a460f5e46cc0ddbc5e9f07abc7 = "82185e5e9de3bcd97aa40dfc84d994e3e7c39077" + +[f9640e96-87f6-5992-9c3b-0743c6a49ffa] +06abebef67a6681c8c3e4612cbe0b92545d9d14a = "cd9e51c74ae1a9eb68ed5b765f89da13ed74c5ff" +0a598dc563efdc3c5fba05b73a87d79256f54f7d = "eba98cd9f959a73d053bb76bff9ef413e8eac63b" +471602e9d53d2326979a0cde6598142279ccc291 = "10432937edafcb91a44b310e28cbf2d5412aa2cd" +4d60ba769c60547f6718493a4daf1c879a85fd86 = "f4ddad8be3b18772a68c0ee8c85dbb6e3c75a7af" +542f4fd6dcb1e0617fff15dddbdd69ef1c8b2bed = "636764dc6366731c4c9af4ea72b2baaf03e2ea14" +cfa9463c527558e7a73e67cb94d415f338a5c463 = "ce019a9752648db30df168fc077888bfd4a6447d" +f4a3cd2711ce379b6e268a10acb32a1f3e16ac0a = "9b10f9f69356e9a30ef57622c2a539efd786051d" + +[f9b4ff27-07dc-5514-a2b4-022623d798a0] +26e447ffe1914c95348f5647f3b18e80e81d7c66 = "e46fbe6de2093126ebe8d266a5aadd0b38fcf44d" +86f9920fba3a8a869a5a964f4d53a8861063fbf2 = "8ea7ecb2f05f6d614347509147c5eb67d2b9071f" + +[f9d848e4-75a0-5321-a43a-fbaa97166838] +5ea1c9a16d81587eaebfdc0c078d7a368e99066e = "e7bb7a93ef2d13eae390715c4d39c04aa28b3505" + +[f9da4da7-9382-5435-b973-175f5d8dfb32] +0a85c61aaba996d4dce0d6ca66d510fa3fd3d562 = "943863f3b792b083664058f3060eba09b77394de" +11fbf2961e5fe43c01f8d9c5fdace511e0b0acc2 = "96b3a3e14d206ef1408d4598d84ce75365b4dd20" +6e5d3acf1665b8b69fe4a8dd1766973d5958b2a2 = "6f2ecf77b3be0fc39d7049265a0b47106eb8d572" +a25424a2fedcbc747c4cae327e41ef4241b689f2 = "e210229ca9bb3e5d511d2dfa88f60f679f79040f" +b77f0bb65628d4e818984e5e1191bb9b042ce47a = "1516a61d011361165de21c5fa3eff7696753845d" +bdc709cbe047c131966fa76faa45cae3545aa338 = "16a28e7ea30dee69b4a8134cd118a8abdd740bbd" +c43f806b870f06fbdbd3adde4e74f841e36a15e2 = "910b269e4514516eb6d39decaeaf7972d4dce815" +cd10970fa57d14802503945b42995fa52faeae32 = "9349e4b9d7e6dea65d1e745a41c859416ffae312" +d53ca3a5c69b710c3a10e26c1abf5d9d83d70f62 = "1ae5597a855048fcf1af31c09028409484500391" +f9f7004c64fa7457eb0ef89c5bd594efab779a55 = "88bc8d4d22fdf75392b18fbb34c66caac61c084f" + +[f9e31aca-17d0-553a-a5f4-335c39cba33a] +06a807f33da1f3902ceb995251c38813e3a45df2 = "70c75f1f857aeaa9f1c44e482925a6b6244b8fdf" +17254e66bdf0fc60598bbb7a771b661e8be7fe12 = "5c39d2eb0ff5632e316addcd6e5465c2897b933e" +17ebc7d616b6f8de97120e2e4aa1c643071b482e = "89f16561ba05624f9f565c6f42c264331e7e019d" +2056533035c58656aee7ffb6d02ed3ae97ce4198 = "6c888be2c4b2f6a86b0701971b60b5639a3e3eb6" +2d9c940126347e9c418c58f30cc96b794a32e78d = "efb30e4c87c905baef519615d84eeff9071b7bac" +450e263645f909469bdbc0b8f77a3daa7cbd9d84 = "3dfc1f615ab56a9888e243450b81ee452bfb2856" +499240ca6d87d07c06a94ff3958884d88c1fa534 = "558915190a343edf983582c6b081da51fc07a546" +64fdefa28d319f29aa89bc1ed9e848889d23d1bf = "29f2f1361a12d690a9d4550469366bee9fc4becc" +843a94490cbaa150cfe5dff0632934c5f9603e9a = "dc756d2a98e6828b5622809fe0b2978c3bff5807" +96fe60a528131e6f78e19a5b18dcd134c98f5860 = "e133b2b688a57abbbec66831dd892208063d8698" +b0492f499b7f33dc448635cb3bbe3154a359615b = "fe35912fec2009b5c96644f497fb3bafa41e9518" +b18f6cd5907c6c6dfc4c444de520f348e5b78fcb = "8b2e211dd0e49c871cadcb8158af2a6363d3713b" +bf67c333e0c22c0ad691f3be4983e453bbddcd4d = "22d0b7d27ec3b7d6f58cbae9e64328422dff5e08" +c02a1c9ad2682b7339e0cafbc17e3737c951179e = "9ed224d23db8fc7cc9b9e75ef50834cd339f5552" +dc52f5876937113723688ef3250ecdb2236c9ada = "277e08e0007f7acab1132514a17ad42c75bfec3a" +f285e0c6a42fae21780546db55987e5f970652de = "35115652553e47b630527d0ca9b316fa35c34f34" +f7ac87d95df83ace308c17061c77f47e6f756251 = "7eaf3b8424f9911934f95744a46a7524bd63215a" +f82693b7ca5c35249f978df45d193432452bffc8 = "848211e815e6445eb348dc590065ee7484b96902" +fe9852231d04672c0792f2ca7adf754da0874f0a = "c072d1f4323554ccde3018497b218398706f1666" + +[f9f48841-c794-520a-933b-121f7ba6ed94] +28c1c04c2f17d3e081d9267d49132a0f6b616a83 = "1cfc04ff221db39ced5bcc3ab24c4c68f75293ea" +376c20defeeccd6abebf150db4a312a46a304a32 = "bdd125bc809c20447cf33962b49901d6264f8c0c" +41a21248e32c63e128b499632f49809eedd09ede = "41788846aee2d04c2e981c37fb9cf0881b6ae50a" +473272045ff97c122ad13c56b4bf59a365647ba8 = "0be7352520e919429fad94bb43d650e8c4626099" +7846aca83d1209c789bdda32e0d3fa7d5ae333ee = "5038e6e21baab31ec7b64dbaa0588ef3529de5ad" +e861ac825e167bb043caed709d28036f31018a23 = "f5f6152c0763b90e3a5e9aa72b9f5cae783322ec" + +[fa42c844-2597-5d31-933b-ebd51ab2693f] +04a4364cf3da2a8cc2ace043aa2667d5c10bbbab = "2960e37b2652a5b31e19a264a44b9d20162f0a70" +2b7b3c02928c5e9dee294e3f78ad974b9a3efc5e = "bdbe5fab4c2f78e3fb9f72e56a6951052748ac50" +56369a8f4e2a4af683eb5471ea2c802f7b7e0714 = "cf27b6150448518f34fa8f4e87844af69dd58527" +662d1a03ecb9fe0a9398b256029283d0bb5a8ab4 = "89e5a0b744861dcc4d941e2bf4eb537ac57f0017" + +[fa45d1ab-b616-567a-ad77-664fd15b62b2] +cc12337a200536613fa94c02fc3674a4d619312a = "f8f6a92418d73e3a7f1fdd47c042a076b8ac2b3d" + +[fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74] +07742616b1e5d89c1f5a4fe974411bfbcd7fbc57 = "2e0ed59cc68abac54a786b4810be0c272db90c28" +18cafea0b1cfc76bc3c06550881f6259d0a95358 = "8cdb01cff30d43d85b4701015a67694ced335ff8" +34ae2b236f4853028fc60a5efed42bd17a33230f = "dc76a81cb68412b70dc2787c3a74b5af7e98ec4f" +4c371f087a0e950a59301f6d669673010c65ef5b = "0a3f20a433c336c0299e63f93fb8e71b5860114e" +652127f420d036278b8327f5327419596e7d11d9 = "1c83c13a2fd2ebc4d28694f813eaf4fc9138da2d" +7d4eedfa1bd6c0af7d844d085d0c2ce6b2357aa7 = "a5c75b82175307cc51ceaae7356280cc99df2579" +9b5d94f59254ce7958dc991f9e715af32f0497b3 = "e6cab16492d49226a7c8a0adc7a64538c84f5f76" +a9a47656fb6b70e5788551696f133cbe7886ea7b = "de8e93cab147976efc7480593cd91bd18e471436" +a9ff70a8231e0b540a6b4366030acc0f33d9d937 = "a2d15a8679a9876bab522da852b311e81e634e0d" +ccc83f8c073ce8f2668141a733b5084674f5b0e3 = "379c9c73a0bd5584e62ec8e28b0e5a756067b45f" +db11ab85652685c0ea25f4f08f7de96ffcd085e6 = "dd8043cfaa448e67100f5e4e5541d0d6bde51b13" +dfff532572bc7b7c677fa2323c6e7a239c416709 = "5b3a5681f4f32e48de01a37a4da7a521994733fb" + +[fa774e86-460a-546b-b195-92e8193e3324] +55a4506eef75c4c011dacb47d53ddc88c75b4888 = "db618cb7836df40df7fb3ce151730199d44bbb9a" +bc3fa2d7c061686684f6a228f0be8ca2a0adbd19 = "3ddeccda3f76f90bb5dc7329a591dea6d68d5386" +d2c33fe29d05a577464f094159d01940815e543e = "4437cac6cbf608babfd00884038471af7f41623b" + +[fa778a35-eff5-5ebc-91c5-11ea73160f07] +7aecd8b62a94b809d5ef10fd1a1096fe8742c81f = "d8cc579059a2f43d5cd9de30a28354b02468e2fa" +d4a29a57dda8e23235e9f2e0617d083714a6a331 = "299e06ffb61f7cbff205edc00a8a04ba24819b5c" + +[fa939f87-e72e-5be4-a000-7fc836dbe307] +2c8bcc9c2f30152ee8675f7ece672ce25ebef5cc = "85cdff14b2006aaac81696538aa37b0ca74c3f3b" + +[faabce77-3242-5060-abab-4a4767a0df42] +bf1dc6f34bf5c9e3f679fbc8361787b5071fdfdf = "cc9f779bc8c2f25b91c6a9c0c0f91b84e01b1946" + +[fae87a5f-d1ad-5cf0-8f61-c941e1580b46] +0ca7f4a6c865a6d1f9dcf30345224d07c39ee5cd = "a7a03f220450654997fa4271268f471b70ed74d2" +0fdcd12cc8914022c07f5e3a191daab67d728e51 = "17ffe05b07564a9e3111ae9b9f6a5c41122b1bc5" +12672c5ddf6cc98b0b2847aa6a31a16ee0ca6812 = "97aec16df3e887f7ced66b02ca7ebfd8ef006b28" +1fe85fb6f57574b3fe970e7eef3f7a2c0aa1345c = "c35334bc5417ac9e309ed3c9da272052a68ad64c" +203085f06b1c0a125845b487e7e4d886a6b8a640 = "da3f95cfdb35b15445e3f70031f7eb460a633924" +33cafca80a56e5cd2f0413b407c87830fe00e739 = "419f05103e8a5eed1d00c4db3836b8d32c9da5e1" +34ee64d71709f57abaea8f186f20ee695a0a2a02 = "ce8429a3e08c4aa71c015675211fff6e31c2d3e4" +451ce5856881357387077c15a23195f0d30e6aed = "1bc05da6bef6fb5acce69eac9dca9ce825633d6a" +4cb6e869739d4a7760db0d32b319922e66fb2a9f = "0ce4f7cff52cd8dcb367442a21744b1411177ef3" +5053ad4658f6659dea405f2b849d455e66a6b547 = "67e6aa2ba654cf623c3ceafb6f369ad0339983f6" +5a50de6f1de749e6d9594ea777230f1c3565b967 = "0f136558a78979ccdb5c9c20713f2b5e4969b977" +6024e47d167c08876cf2a7fdf3f01866640ff37d = "012f77c0d32dde739195d57c43d89308641cbba3" +6c7045994dee1f1bc4d6bff0a8c96043a9599a5e = "55990f66939e0af1d0cb156d2bb747cd613c15a0" +73d119b2f2a74544c75bef0c21b09b03e1d18e6f = "e068d7dc0642d0e401740a30709291939889b76d" +865cf925f8fab5e3c3938cef186a1d5ce9ea3913 = "2e2c9139375c2f4a2abaa4fa93fcbee357900da5" +8cd7644b1c518b4cc2617faa9c51723cdf60958e = "08de8d686c692b2add1ed1dfa5dffd39ae780daa" +9106f09f433e111e4d0690f6f62a2f8cc862ae9b = "8711ba0c0931bbbbd5a7e647c132a9c9e0b96ca0" +98b0d48491708afc794ab7a471663c9373cf4ca1 = "86f7eb2218f80f6b51afd5c4d5b762affd6b0577" +9b0d498e633d1285362b4e533ffd3cd683c0a2a6 = "9e1a764f50861c828d9fe605a8446b1ec10f91e6" +a0c0da6cbaa98ed707d4290c899589e7833dbec5 = "9f302e720188658823219f209eb7ca1874b81aac" +af92bd64fb3af55a9da61e1e1495d27c814130f2 = "9c661d4a35fe62003aab2e9aad896bbefc118f14" +b275b4eb786d9b6a1e8f4fbfbd8ec80c8e780515 = "5c6a579b9455fe69801a09fc7961f48af55412e2" +b8bf5d3686110a7b031dc12fd41c8c70c5e228b1 = "b5143525f27e16a282ad79b9bff862241aca634c" +c28742cf8c4af8e49d66384640abbb1dc4dfa6ae = "f698f0b182a5a681e1fc22419648631334a432df" +c4fe807d72073847e8e8a84480a58e4b4650b915 = "544301c9e3cd5558deb1f942f66b74a3a6383d4e" +c7aee60b8637da487ae017ca969af275e8b3d203 = "5600bc1303b2f214e89e10dcda19051c816ea76c" +cffebc149f1188272c2b366172ae636a22b89aa4 = "3d84582ff8835b667c4598fb8bd526c7f7f9a7f1" +db4deb8ffa1c64dd19c871801ca95bbdd01963e8 = "96099d0a9bc1b00399fc5c0436f896324f835b11" +dc0965d9b6bd04b02bace7a2812dfb1e2ad7271e = "5ebac11b4422f47c39a2cdbc7b5f59fab9d213fb" +efcb17731574f9e3b66887f7a93decd233239960 = "a20d6ee859e6152b36a42c11271f448e3ec6a097" + +[fb0b9bd6-a79e-56fd-93df-a55af7a092bc] +37ff0c231ddda5d648a76d5cf75fe6b0c2e4e64d = "d5ada9062be6786a0a00307e32946f4718b0806c" +5976bbfcc5094ac954ab5871b5004dc10ffc2d26 = "4082cdb0d71c9e4b1775af6aff832b57913c7ab3" +f791c9e05a564319b4f647bdb9e6ea7e487cff0f = "7074e8b85fadcffe4a253715a1cac8ad1a743187" + +[fb44c06c-c62f-5397-83f5-69249e0a3c8e] +1ecc69768fc3b597f5808786fe472dd59dc99638 = "0a1a23e3fee31a63172fe69ee263d4841807506a" +a3752c454e52fb048ba228d77bf886e94b8327e5 = "3477fa60cf4ed7a4137ed12ad9d891ae7670e387" +d91f4b3ed2db356c19ab87a8192cb3b4c228577e = "2c85f76dc081835457c1f0802a6b668430053f3d" + +[fb4d412d-6eee-574d-9565-ede6634db7b0] +050790cb5cb4e565fbcc9cd5158451c67844e985 = "4427fcf9d822446bed104ebaffa96fc9c3a89500" +0d87dfeb61cc69bc9528c2e6c57dd783d7034fa1 = "30989889024160d192ecfcd94a64a0e21f1073d5" +769a89e9b57bfd6def77478e5d14750529379eb3 = "1f3146485a6891abefc514c189bada14be32e41e" + +[fb575ef1-c80c-509d-a4a0-4af84ff70704] +89d01e0a0f6aedd122198904af1fa631b2c59f2e = "5a0898863013f65b5b7457af49089406f66fb48a" + +[fba1ee03-5eed-521d-a2ba-51b06ba98eb5] +7d89d2ef95b59aa0c6428e6d776dadc5737de88a = "cd7e6b142ad482ae2b273b5008c2e6edd3e82d26" + +[fbae9410-3ea5-5e4f-995e-dac77a0dfea3] +299581c6cdc70ed815c9ce2d99a1100f6e9df715 = "9f22abc7e0f240ce2f40bc63160a3ec3819382b2" +3e354b912313932a4f912d84f993ef2eeaf63ac0 = "24e7abfcf1446fd7a939eca6bd4a255f4f8e90a8" +5d4704402afb1f6f47c4b0ebeb51c353ed29f523 = "87ddcb6e4e03f565700926c1246e3408ada7e789" + +[fbaffd56-9477-5acb-a91c-8d53cdd62c7f] +3f176ccac6a552b4d8fa1fcd10bec49131d5d06c = "24125b9e65dfd6bc30b98f7bbd56f8fb90ac8384" + +[fbb456ec-85f6-55cf-94f1-f0a40aaf3d57] +a148219a595ac957b64f1ba2dab041bb05ea1642 = "bd2aaef747294893674098f380a0e59dfed1d59b" + +[fbc9c225-e6c3-550a-aea1-62a5e1fd6a9c] +54b55bf545f6e3b43b2121b25d1a47e5082e9893 = "c7cff6938ebdf3855a6c299b6ca0939c25b927ca" +93eaa8c3a5eab20f44f2ea009c630d34623de2fd = "5bf567f0784ecd200831b909cfc81bf769672b26" + +[fbcbbc08-f1bf-5204-9233-b69f5d396135] +110acde568e5906fe3e051a16b8087016107aa30 = "5984d0911308e754eab3ea43ad42f7386adcf8be" +1d338672dc765ee0f31d82fe73e41f8f29d6d612 = "90404dbc5d970b8da1df39f490b88e90305b74b7" +26330d189891f788eac6c33d049c716cb03ac989 = "f8837d860c4345a27b0001dc086169c6243916c0" +3ab1f97cd97afcb0e209127dfc50dc3ffb1a6410 = "b91d0899ee4fa1b25d29f8ed967b091951e17511" +60cadc5e4a57d142fe0635b4acd98a013e5b0276 = "81d92056a29ae60667db7056097f3caffc3dc8ce" +dcace9cbf74d5d450fef66c7fbc2403153b0f107 = "c91266ec6aa28125ab48738ff7221d5c543d8eae" + +[fbd9d27c-2d1c-5c1c-99f2-7497d746985d] +b5bc0ab2b36620a6a4c118895878d95bc6a135af = "13450340b06a8378673ac634d60c16d7c9ced16a" + +[fbe9abb3-538b-5e4e-ba9e-bc94f4f92ebc] +14cc0539ad99a30dc9e3511afe0144ad5d7d1f47 = "9bd3d9bc80a74158339c163fd399efd555941e63" +1fc8232ac05bcd445c3635cff2a9ff35c273c9a4 = "d21e8404268f46d3c97e8d0920e29c1e2d0b70e3" +409dc2bcc916862a5c8696718e4b277da24e6cd8 = "f564fb32aeb2d536854870eb8beccab75d3b818f" +51d5a0ed4e0ea25788571c1f05e6c1bfe439fbf8 = "b96b8e80017957b666f62b27af110a3871a8552c" +53144908a080f24d30a6d4c333e3fbba9b25949f = "f42bbbce006c96bc52ab38f8cc64d9a10b147148" +5aba846a24145c027a2139b51fd212a41b9c76ac = "22dc93ed23687392010f45650bfdcf3e77e8995f" +6291862f775b16c57bb3e4304ca23ffce7c60a9e = "197a103681c39cfe3c524b20f3624c06ab031e0f" +6477fd150f24fb07e0eda78688ddf74067217189 = "053c5bb5e13e644619272c4071f637ea8b05d900" +654c058581c81c603116a3a8090623269aede4b3 = "fc0579cc4ea6f81869071dd99a11d77b807bb160" +6eb59a400b116118852fbf3f74831ea8637b7221 = "6dfbbc42bb38cdc6277cac36cf4f52f81ba0d6a5" +7a8ae3fdb4f8f5cad95b2d0098d41b43c63b78ab = "49b3d4610d10a3c4e44879181bad712bac8dbf0a" +84bb5947ee8e1fbc8d49af95c2d5747d5d919bff = "46ba52eac7d5f9e94c34b3b6cca6e60645af02a4" +b42f0235b99d103469b9539fff40ef410c346817 = "6b54a032b83e76f91e0c8508506dd24ac99a3d80" +b4edb3f8e950e9b6d0b9060cc176effc0c832dd6 = "88b58ef06c68d0e36bba6ca26bef75907bc50aa9" +c8e3fb6f7a3cbf9da2e65f7535a614e9f199c73e = "a4333eb0d2dba89912a208380ae1f592bb227aa8" +cb9157f4bd5a3ac3df1cc05a6364ef7b4f49d11a = "9d605586ee4cd3b27c15735a59df00bf7e8649ea" +de5722479fb55a0c401fc96f83c6540a749fd6c9 = "4667459f4c0cff92155f603da501e990022890af" +e84593f259163e119a9960cf358d5f76ac5131b7 = "529edea05726a4cf6f070c832756c0999355c9af" + +[fbfd966d-c689-51ba-8131-03d0dd334937] +233d41aad5ad8946b347990abb6e07f6b1184162 = "d4228b6ec340e4bec1b60ba2626fe2bdb94200a6" + +[fc18253b-5e1b-504c-a4a2-9ece4944c004] +28832001c5c8bd78029b7cb548c6bde0105dd904 = "175d12712e15e4e6bc91ef384d3fcc7c1b6782e5" + +[fc3cc343-2967-53bf-b6bc-48b8e407de1e] +f887ea730974ed97287d05a8acf541367206cb24 = "46dd91f100613a815dca69a5e2eb77fa43678216" + +[fc43787e-1373-5208-a493-af2921c41885] +9b4bcbeae42cbd0801e3f18af0a5975cf50fd157 = "2cb779170d0cd0a18b0b6422c8a4948c532ee4af" +a776b0c048049e5a5b41ec67573032ee5d72c2b9 = "bfb255aa5436dd025035043bfc653e7c5f6b0885" +d5d48891d14e325da02043d75e676e92d9192fc1 = "123c6990dec71c25e032a8bb9d5e39d2908d6040" + +[fc60dff9-86e7-5f2f-a8a0-edeadbb75bd9] +2daa0bc37f990d4591a0caf0b8ab081426ed356a = "3081c75d4ef6bd735dbed16c91f76722728c643a" +3cd7db5b2be562f3d571bc2ddd235e90ebea8f02 = "8d7c58d265360ef4a4549a3e28c2966a0244b120" +7b031a6477d4ec3d307ad4934d9f5dfe355b07b5 = "c3c0417335dd8f1d4a7ae72ed99735f1a28e7088" +9734fedd3769373aabd5af455d43f5f6d7884bb1 = "aca6ca71cbef4f4270c6aaf4209756378fa2c32e" +a017c664f5001a1bfe6b911664bb377062aa5113 = "924a74f79f3a24b37383d94206f375547194b6fb" +db1ca803f1d09bb56fdc2bc40150028890b45b00 = "1f1f84298cc40a82531b3f9c53dd168b9a9d4de1" +e4c754626d40c5bb91e8a72562cf4e18143d3219 = "dcbac457f22bc0ac7d4ae0e7f572626581be4ddc" + +[fc659fc5-75a3-5475-a2ea-3da92c065361] +1d37b5feb53fa39d6dd40dc91139b11005e4c234 = "71e5fdcb9fc4d15c67032ad15adc7654fcc97c73" +9f247e64a30d4e1ccaaf3a6f2e1ffb02a62c9e01 = "cd59a5d544fb9a059f494f87dc6a70c383c7c28c" + +[fc66bc1b-447b-53fc-8f09-bc9cfb0b0c10] +3418c36d9ef63eef085155f406eb6655c8e67924 = "d86d216c468cdf27bc11dc9b4716ac7c369b25c9" + +[fca6b79a-5711-5ae2-8ce7-7abad8b9df70] +0766b617c851efc54a5c3d1388dacfffb92c628d = "d3aa9a5a29e4130994a05f7b63f585703cfcb383" +17b58b36d6d8df12a4d88a974b0cf807ddb70ee4 = "667a2ed355091a7384ecbecf18a38ba2dd29703a" +57524ebb89be5d55c736d4a0cfe3b81bc62d11f8 = "c4b106942e4de541c9050a6b32209b05354dff02" +623e472c81897e18cc3c53e409742ec81c16b8e5 = "1cd0ad5e9d6ab16be6eb062542820740743a7c7b" +63f7217fe0fc38632b414f904ff53dfe50efe066 = "624a678529b3f48eadf8b94d975cf38f8d7a339e" +658c1eab156ccbca5793d023eb41c97b1ba3cb12 = "615d32d46bc0290e02b3a4253c3d83e5dc77764c" +a699469096e626fb137f3f74a318118426ed20cc = "31ef9885183aa266dc82e99f73acc4b14b2390fa" +ac65250aca7d94900f952ea470d31a518bec0c62 = "cbf98a2f1c8c33f7e6575284a69121d00e5726a6" +d5448b26639cd0f2a3108dcad5935365e14f8421 = "67a012796fb017d52ba064ef0a240b7a5458c274" +f845014ae429d170cfad3ff25cac364e5fd96a31 = "83912224f02c9ed72cc5a9a37b2c4240084d5402" + +[fcd29c91-0bd7-5a09-975d-7ac3f643a60c] +05906bfd89ec42185b83f18fe693afc21df14eef = "4ac759bde08536ba2245baa01e03dce434876ef6" +16a9b81ab76185a0003733a398e99acb19a7b071 = "ca12313e779fb0627e48895b4f477a4a79b1d971" +2777e6c731d4e92b619b02cd32db69a24a5ef106 = "7ff79f66ce910e34866c223bec002150eea2e0ef" +29de48b19c2727e0e73f52e06451b809a77aa930 = "864774614b228dd80c3158efa8a8baa148bc1199" +2eecc7ad1a1944e9866408a807a1f9f6e310cd92 = "ccc7605a43155fd9304a2801aedeb29688a32113" +34026d2db0a6ca17d0662c5e8e233af7ad6deb29 = "23a585a025095d14b42918aafea4617cdbb3add7" +3ed25fc05de2920e57fa8be59355ca2d2a67902c = "c4c5dee51458f70dc3d6c12201b6d302ebb6107e" +407d1671f8bc4eace1a9491d60d70a79354a87d4 = "90652d9ea5f51330fc93cb95deb4150066e02ca5" +5b7ba947633e6efad9300def4497f8fce3cff290 = "7692ceb0976ef6900d3c6788f1a6369cfed78bc1" +5ea70a3762485cf54f4d9e65872a1300fa86eafb = "a30a609ca154e64c396ba5423a19020901784535" +7394e23a135a3f2c124caa8dd31002814a43e48b = "285dcf5c3ff8d3f4ed4ace7eb9780fe14f85c08a" +79fa677daeef75dd694d1f6e710a44f4244fd197 = "174a1629177b7c66c3a64713c4ddece35e07d89f" +93ce49646b1c292dae08c4f3767374622a2c74de = "f405d3ea09588703ad15011d5d8ef0a11a8c35e1" +97c30dc769563acee932fe9510b7f45d216eabbd = "91728d5c18eea66b4dced4b944cbef05071d8896" +99aded1ccb46ad0111f088aa695fe7eded1a47cb = "725ae6ad678c3e89cf3f491cf14297f38b4f4e8a" +ae41315779013e29643a8bbfd42b7556d5f5866d = "4431957536e36c5c9c2269a0cc1357eaa21e2946" +af4a7f85e6b31da0bbd6777c519935457db3260b = "474732b45a20f270d73938fede03815dd52f59cb" +d028c898625b971442b48c9b94cfe69a10562f93 = "2f5a307c448f86fac7e54e61cc7752282af27870" +d0d1f78c976114d7df6d835ef3ac3827ebdd1d6e = "62dd8bd25c50d48ea62858e473ea2b1c075f1a85" +df22e32f3e127ac99a59dcee8314c53aec4e64cd = "d0095126277b238e37cfdd44562547766b5f0b54" +eb078224a2a681325d6d3e7bfaa8898d10f03f56 = "3cb18d9f389308535aa823c9e9a25f395dfb4648" +f744b5bd0dbe0f65cf0ff32bc5a744948435e4ec = "6f16d8d1cf1dc8670afac9f15d98eaff98974181" +f9a34ddcf2f97e3b989e05030ae5b7d13c395f25 = "94ddcd6e24f86bcd7ceddee171ec1c372c461fc9" +fae6e19205d1911d03ffb6ebe7ac98eccb6649a9 = "d47ffc0435e465fa4a4f1ed0194119242c111f79" +fe2be6b95b517414b810089c49f295746d93f3eb = "24e106f300c8f6e5a0359db8c2ce98742a63211f" + +[fcdbfac7-bca7-5d83-b49f-2c155b340956] +ae50d16a46fa9e5a5c806a110a835b92f2adb997 = "3907e4f818938ea5ed264f04439b5c4d31ca635a" + +[fce155c8-f798-5163-ac02-b1a32139d092] +212b3b8767ce67661be0c8fdbdd2d28169e83a85 = "8ddd6aff9360c9bbb9f1d62eff64eae5a36ac9c9" +2fb607845e4197b013d4d65595c666de8ee82020 = "31e74311b8d902eee8a38a98fd7d343da1d42fc1" +33e97108cd253d5e8e376265a58e92f2e6b93981 = "d90bac0f4ec646493dab4d939256159660c19e5e" +55fcc4165bbdb8dc4139311b5a111d02dd62ae49 = "3d72ac72df2f119f1669a04534ae7cf334addc14" +5ed6f7c7b5e3baf6e21defa9ecf04916c615c5a8 = "5ee06561d1ebdea3329e1fe9aa89e56081ae376c" +61398f3175835aed3eba32264f9ab88a5085c22a = "1f0912aec8a07cd0bf7eec8620adc516a85596e2" +658ca2264af7faf468aa875fdbd7f6cb1895c27e = "fe88b40d6f2dc7a60f35089e720d515a05aaeded" +82e62887937cf258635419d36f7ed78db4fe20e9 = "b731b9bc3bbfdae91419976a3f8d7aa657b49b1f" +8e455898c4a581276b5fa7c4d2b911df6b6a7452 = "844eda491e5900d8c7f52977e06f2c44bfbf631f" +a0d210dd2d8e6d6f1ec3748a49bd27af76889c51 = "336fd8f4b7f4bba5f7dea80b165e18e42789f001" +b41240258e32665d37da62c62b4add71e2b1de3e = "a84549e6f97ea448b3d62dd0f66a622cfbd2ad0b" +d44f078baaebd5d96d099a5f7b0f232d707b1c50 = "69136c4d5655fda602255a2d156ebb017dedb6a8" +e3ad30ace4bce66b9b7877c30711139aa7730325 = "bb3df5fcf34ba15695d12f5f77fa1df3a1273e92" + +[fce5fe82-541a-59a6-adf8-730c64b5f9a0] +0fe926e429176f2417ac37d749358c24d69c4442 = "94ddf71c955906656aeeba1a991213c60caf3c96" +2165bd8ba0f9608c00b6e01b025f49240702b59f = "d7e46ca8d5d6ef726744055370a91540e08b03e2" +3d1d8db25b51a95e32a4f55eb019589d83b611d0 = "971f38f0bdc9dd2d74d8eccf6330164038c3db9b" +79fcaf79c8324486d41d3ddeb0a627fd9d5dd56b = "138b0bd5ccb157b92d8cec1627f624251848369a" +d3e1cf4e141edbc78fb32a94e75bd1ae9d153c5c = "df3be2f29da6e3805c981c806a8286a6a88ed9c0" +f2e4437d8740c960048f1bb0d302579ca4fefde8 = "218be950880752b5590050c1d64557fa7c33cce3" +f88e5eee70bfd268596f997bd4d3387d2dcbc1cb = "5723f16a2b7a15f68c0aeac6ed3a309bb36fa022" + +[fd094767-a336-5f1f-9728-57cf17d0bbfb] +0f68ccc84bc6db6acab655c15e0d36dfb01dc551 = "55a8605abdedee3f4e964e015b869de62cb11621" +1ec0692f12180f7446d96277743fd259389052bd = "8b67666c918c39ce006f02346dd26a2529937a3c" +cbebb22d0a42d1fc2ee5c7c154d483a6421524ef = "557cbb54390710abc4f68c4ab1efd37e02bc2ed8" +f5646a7ab0ad9cd9bcf1c3bfddb9aaa44b62232e = "3878e5f7f1deff64c1d6bbd7b1a3e96dc38f7ff0" +f918ba1094f085b97d987285e111b709c8b348b7 = "b12c0bd9735b1d4a3f55d8f27c794864ac6c54db" + +[fd0ad045-b25c-564e-8f9c-8ef5c5f21267] +08554f837b2f6f426749f4051f9e44d0b996d07a = "6d9ca54c9ff8bbb1a7909566b1af235fe7414d3d" +0ec56826dc4eee301e0fe237af1fecef5c4febbb = "ed08b3b56c564599a1b4d21e22586eb39a708419" +51ee147fd2a0d052d42e3c2bdcc3d88d0654a7b4 = "391ce575f36f0b1e136bc7fc89d019c119bbf0f2" +5df9c565d91b0a630f16bbc546ce24762cb3baa8 = "d1d6fb49d780ae7b4b22b859b026ca0b08e6f71b" +916081fd59a2690bd3fb9e55506111e2ae8fa338 = "f24427cfe22923280ca71266e7a19de437ecd250" +daf55ad776aa5331eec77fd5e0a4a5db6e913852 = "a7bd6e6a614f55387e8b8aa31e675e6315729b12" +f03fc09194369dd954658c5b978144d05002c5ca = "f3a5afa3e4eb7b5454eb8d61a0490a944fc9d31a" + +[fd66a1d0-90d3-555d-a35d-c122df06773c] +2c4fce3d5c4cd16fb3c889f81b5f9e826132888f = "db13e4d44eaa49f1259c516b2e756df7dd839d42" +ed8aba40c15efa0b818c49dcf25fc4b8045a9c3a = "b012192a7fc5a54c9739b50c33df0265ba44b7c7" + +[fd7cd58e-89b5-5734-8764-2e0100508a9b] +0a826d9d7f66a12b9d2b03e1028163af140055c2 = "8272fda182ffd8e2154726c5dd726cc99ed995a2" +160c8d3d94e8cf3d72c3a2ac4eaa6284f5a733f1 = "3572eda62a73bf92161eeac5c128ad3b677603b5" +731906a0472f81b519abf66e816eb365e6b4742e = "fd49865abd99d072a4cd18dfb9df7841ea224ea7" +ce5ed148383dbee9e956a8dc2a27ace5d9270c5a = "8cca21f3aa08cb623bdee55b29f911e0f320ad18" + +[fd9e7046-df80-5870-8bf6-b6b2342464ec] +084ac19b7546e1afe7147476d3e93e57927c15ed = "81615ec6f0c447a541f495c86b0b260cd27ab7c3" +181082fe34bdf8acf50b12e12b0524b5b8b38cb8 = "a078820e92b3054d03b6c22282d8c96d73cd6afc" +1b6f7d35086c62a2afc18cc838af34eb5cc2cd1f = "1dffcf2c5457732946bd89dba6bcbff2b950ed76" +235a1e7eb5dea1d9f5fb1e74febc3adabd9c6253 = "aa0298f6f57d99075233db237ba120bfedaf2f0b" +277129ed7a426d5a8027bca95b4bbdcb209759ee = "a982d4ef3cb453bf0c15145ba249111d5d6941a2" +2a43c29a3af34a21e4478725d3e4a81427b7445f = "94cd5a9ffacc52305a90fa51fd5c28a4d76e5ba0" +2a69b18bacbf2f60dddb439735779587a607f5ac = "b4bfd2839e64953fd36585f5860015eefff7e98b" +2ec19353f18299a40d3feeb69e4a0f315a3a9e21 = "914f23322009f2e03dd82470e9251c9139c2125c" +40bc2baf8d94f488db5374d7e84e829e0fe92859 = "331493caf371230e17e11e021ff444b3071e8668" +558835c9196f1fafd083860ac4251e23d85e0fb3 = "38e64d0fcc520f02066d07dba628fa3ee3ab2984" +5656779a7c235a23ace62e17dc32d39f9def230f = "e6d56c713ea1ec105bd9726af2f8f43435217c9c" +60fe4dac75f7c26f9844e3e423ddc8c04a190aaf = "38e64d0fcc520f02066d07dba628fa3ee3ab2984" +6bc952c02f5eff1483d2a953bbda9ca845ef921f = "7a98a863a3a9908991e55b035c68245df498b2a0" +84cbe0bd664f57cc511524ca84d7e0472b0eb244 = "704bdd5f95581bacfabc89f8082c5375c7bbb0dd" +901f83d50da1232fecdfa62a3bde318285dfcead = "8b54dbd8123c5465ed7ff008e09f187d698a3f26" +923539a0b65974ce04059d0edd218bf2295ab5c2 = "efbaadc65fc841ae479a685ea1fccae57345b7f3" +97d2f5e12cccb777db3602a6c1a01bc19d8e2d68 = "ad3610299a4a2bdf2d799731c71a25e863844f7d" +bf501f74409dee1fc1f40db591862d406ec13310 = "db76de6ea644a4e471a048a4513b34a954a560a0" +d343968913581054be59be6ad7e37513d6a48512 = "704bdd5f95581bacfabc89f8082c5375c7bbb0dd" +f2d2b5c56c53423963515ce38ca0d1d5637aedd1 = "c5e28fef139841aee24afdd8e936783a59e81924" +f69b868235029fbb0ffe6f59fc89308cb3ab755a = "c53f0b416f0ca25927645126cf2dd56e003d68a8" + +[fdba3010-5040-5b88-9595-932c9decdf73] +0132f42277c90a866238bf18ebf8641a9b5d7466 = "99c4829c39f01cecf572f60102803926799b1b2a" +038e07f059fec0da5180253148cef5c812c203eb = "fa7f40ffcbf29015ba9d485f3016aec2ad56bf55" +04de880875a93f3ed0ceb2effea59d6083932bc7 = "48a8afa4ec4e21ede7d840be4e1531305b6260bd" +052d9a5741f26d1c1c17ea6084b9b2fbb85d43c1 = "4a26abd7d1187a5a97d229523d2bbef2a3a75e12" +08f73e736d01c04255f09fc76eb2972a03d8a422 = "e337f55e2d6450b8c46916d3a2012dae8b1dfb26" +0ac0333881ec2af0cd09e9cb427089295a496041 = "86e8123494943546837a50c3ee1f76cd2265b855" +0ae3dc86f8d2f9e9f8abff5643ff00da3fa0a634 = "495702f403c92b17f52c1308c7029fa75cec97e0" +0bc8fe042c8aff25ed87fa91ca0f6cb3d642d0d0 = "c4e6a70860f6575c9228269c610d92b77b531d9e" +0d3862b8bb6a36e0e705308d9fa93f0eb490494b = "08309a314c3a6f2229565951b47e1416cd4cdf08" +114f6f60649af23c9f337c61bf1288b63e6bbc88 = "ca2921b117d8c33a9800ac4edc40e0ebd6938d60" +119129282ab5b5c95c66d667c46b202aeb4e3f08 = "faac3d12e20eb7f7229d8c6f1aac028350c399db" +1685462f89a54bd305296bc9b2529459c7b82c18 = "8c0fcccfd39dd05a44b04b5b80863ad4c916f28c" +2344fcbfb58757bbb18bfebcba9ca4ee979bde0a = "7224b355a60ad534b7712a068303b991ed18a8d0" +2a4172ad577e9aff9abbf7ef0cd2bb3850179ff4 = "83b180914aaba38c62244167b1bd14662c1b01cc" +2b6de3dc81118d8b4b51f5a02c827aad1b047ff5 = "9c65df65f1ddfef2e7fae82c8cd1696f757b9677" +2faa7b97af385f61ea2e829512b5fa1c1c2ceab1 = "ab561dd4151c4ba1de449bc4985ceb52c59f2290" +2faefdf4a3b0c9573a8282dd8c7fcd99cb9fce52 = "fb7548517a14a8bb07b4fe8fe6d09887c296fc66" +35f0f99cafe04c140536404ff2517c59cfecd419 = "f9cdd55150f8e68c81a97620138e1ef51321625c" +3a4e56d243cd11bbedf18bd95714415a45c324cc = "88da8361b80c3b85bb459c98cbf8d9ad3148d65e" +40cd2712bc12a3a6d2b52f956e306bd22f76b7d7 = "5661463a5ead2de854df9694235e3bc19bc5846c" +48f191c2b9ecdb63c38ccf601cc7f34d321d4cd1 = "4281a8ac04fb3f98324645adf837f46448fca6cf" +49549bfbade3aca5fbbd1e5dd83a7f77d95db463 = "e69aea6bc918aa6158cf36537490fb0c58cf07b5" +4f92960f0be59e4b6170f6cd473c3aa6305d882e = "4856ce9950c8cc1c34348e3d7f3a57ac7fa49746" +593592be6c77fb2e4faa2a5aeafd313fa33e5b64 = "9c1b0342895c01a5f938c5ce48737151590eba6e" +5f5e035a6e1ef45f5f041f8d43b39dbc9869c8fe = "830893afd435d10ae09294ff14300faa14bce676" +6115daa3f330dde47a993db34b78e65880bddb84 = "6434939129197130214bbec9976a18ee70143c4b" +661b67c9104aa0b8faf9ed82a4192a899135ba73 = "34c83916d40061c0005ea968dad35a16b633aefe" +6e47243704199340d38791ebb903833ab33eb75a = "140c875389749bde11081aa116f53e1f5c941026" +725dad5f8a74720ba9d58fff97878d1583c14444 = "1cff38c0cdd0d886bb36eb38fa70080c28bf6348" +74a36caccb74338225136550d9a71d3425329e74 = "dffb9a4bbc36273ecbb0c64c546238c2b8bb7e56" +7529596b0596027df1d262e33567673c33893138 = "dec0d0c7b5da46aa4a67b5962829ad31f5902818" +8035f13fdfd1d038cc47bb64385f4cf8bb3dc320 = "05baa37770b5cb74e2e4c8ebb94c7b6308de60a0" +84b5866448ac0891371f6e9179d06d80b35f3b5d = "264cad04229124b1c30ad0f3d8b5274a028cf269" +84d657f8606ccb0e5bb16d2432e3276b946b01a4 = "0a14fa2c3d3487802d4669a0f05dcc02c08340ed" +8d108067a7bed6902ebb758fbdf82079872a2181 = "e0022f8e58babedd71d124c129d79271de89eb7f" +925f626e458f687e4b28b0839d022dbca30505d4 = "0419e0515c6115c34860272b2d6208c3473e2fe9" +9a2ef0dda2ca167a769631b394ff21ae2cabc483 = "a4cfe45e094e2892220be628a3424fefa67a3643" +9e0b626f34c2e001b6c28c4224f3cb6630b2c073 = "9a2c55a3b0badb08cfb247a537ba4ae34d4f1996" +9eaa9a8bc6fca6bd3f42769b19b66863b584b49c = "be876cb81a87a8544a2691026a876641bde04834" +af570747b301fb794751da7325b051ef7ec07e46 = "8413e1614b09be3beb65cb4849aac23d421ae659" +b1a98ccbe2f71bbc6da6c28b43cb9c4853b92729 = "a91aab7f01a93864ef381efedca3b5e5702382b4" +b20de5a8542bd4b34eb20ac4fd50542c48bebf03 = "390981f3dadcffe402e888d8ed18165e4e21142c" +b31ed608243d9c6f0f06d40c7b5d7675d70e3edf = "d634824d7c3f1169b145984bc5f319ac379eeb8e" +b9256567021e2eecc85c0c2dded57f14fdeb8d4f = "afed1457a7655747a04d8b3ac0a50be54435b3d2" +da721ef453677135798dca3805c02ecd84283167 = "7684d6a1b3caca014ee33881ee3e2e2348f286d7" +de0e7dcce8322936755a53f6bf0b62b7843fc03e = "c0caaf6bc8d98e3e18ca62ed3561f95645b02c38" +e0699bbb163fe9df4cbc890738c5f7654b292370 = "12aa149f5d21350d5acb6af5d4524678d3c5f499" +e6d6b29c8de2be80cf840021b892ce83508ceca5 = "2c1bacee0416116754ba7e1654f6ecc7d2032b02" +e91bbd7432b946dac18c8427d505a01bfeab6a5d = "cf7bc7e4b6b1a3781a6e5600877bcaf81d27dad0" +ee1a36736a41cfa2365c730583a9e8f3256625c2 = "f293858a40e473694a3ed74e9826f9cd863603cb" +f8859fc3e8523ffeeb2c9ed4db6b03f81a79ebe7 = "3aa4d9c4446da64f36c9b5c6e91c25eeb7d5c79f" +f8dc60a13068062698d9b17b9ad33dc28a49c8b6 = "f6f234492370f8b97637d2d18efb66102d07f959" +fba7cac1d932a5801d8bda227e59fed49eb7062f = "3e22f9e0a4cebd7a0c19a3665c5215f34209b33b" + +[fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4] +17257907634216f57dfbdb08161e8978a260419c = "23d805ea5ff2c0c3c663620f9ed5d2d153b93709" + +[fdea26ae-647d-5447-a871-4b548cad5224] +61c4a9369d234857a1b9766b980423eacc133e63 = "1a60f2a3a695c0ea9624f6951f90166785b57b45" +a4a12d9ea34e43ba66e14d8cecc71b1019aac65d = "45247e80535e62fe7b7e285af1a9d2b864ee200e" +b94e44015a70204f65400a9ffedb77271b4010ef = "2f7e90ff817e06ff44388e5eed0c6f6eb0af7f25" + +[ff1448f2-0ebe-5696-910c-db1e9ef544ff] +b9cf9556468b2c2a1683335625c480d71ba99f38 = "da64261f1d61f33740ec66c3733479fe973965bc" + +[ff2beb65-d7cd-5ff1-a187-74671133a339] +ad90d6ee4a2fd0623b28fb11defac12b284ded8f = "135cd71cbc45dd9df074bfefc6d23ed3265af4fb" +b9a4fd76ffe1e8374b5d1223f8630d8a92b3fd4e = "3d176c821d174ff1b1a16e977515b9cdacc0949e" + +[ff70551f-00bc-5e1a-85c4-e17d0b71e9c9] +990cc9c786d45737642b0fdee2fb96f360e5bb23 = "bc9460c582bb042066530d90ffe9009d5984810d" +c5aab0f1d6b2dd65e788ba156c15fa6103445398 = "c84551a807ea8b6f384cfad8f57c8d83d1688a48" + +[ff71e718-51f3-5ec2-a782-8ffcbfa3c316] +039ba426199dbff142a05084cbea26743271737d = "3892c9d8f165d783cb242285d86176df02ae34ba" +059fa5ae969fd64bcab4e74af81d24553088bd82 = "787170d8cd838b574f50c6732111f9563d6eb468" +08933fb9a7ee50f1406d3593780faa5848d8db19 = "a96a6cde870402e2ee87bd03a960d1546a4679de" +1b6ff9a3d0abf0a61a6812c44a4dbcb14b36fa48 = "77184d6b6121169a17f237fe0b2f95e4e250975e" +1b8bc3bfc6094d5d9b64c61b34fe437b518cd1c5 = "dae72b2a411975e75b061f252a76f84dc2b7c084" +1cdc683ddec2e64dc106a974bd881938ffc7d8c8 = "f5e4140c0e499708cd63bba0bb3a32c3c4f1fbfe" +2859a2e84e1a8c34acd4de40a95c1cf9f0eb93d2 = "b39c382befd7173a30eacd5b0586cde761a7832e" +2a89e92a8f5bae469ef03d2b50ed5eff36277d02 = "4b13745156ddf39404dc3b89badea21100cff845" +30b681556483c1ce227a32ea29a7f552a4d05cdd = "05eb325bd6064b656ac83d1f2df0cd2c4e1ed774" +34f508b5e295d4bd36ea8a4ac4331c7ed1df3abd = "9296220de3676f9aef202812f747f7bccc4f5716" +37d82e2b9d7be6483dc0f0064571f21cce87e349 = "8b543d8f1a1dd3e50c95d46983be366f99746f77" +3a1e7b49159bf4ba714ed484add509fa8c37676f = "b39a9c9556fa0462fc460200b0ef221ea8a2b84d" +3bcc2479137b363786a8cf060a7c8f74922c310a = "399fa30fb978ad39517c09fa182040581476b1fd" +3e9abeb654547da528490513bada67f52e757472 = "ebcf127f16ed4935f13ab3c8035e3085fb14093f" +3f12aee66a185f562ee2e0ac1df039683d23c712 = "25b3a492d8961d7c0e52aa9a5b093d1f8e3087f7" +3f49d673a0f83247117776ea051739c7b3c6587c = "1a5a54585209cbcd28a5a14946c11c40004d4e54" +40b3a6d42bf2771d46e059710ff80adf67f85c6b = "ac75d747053c67f681b00323de6f03d8c5c0cadb" +41b79c59f1197b2fb882753ec65bae7186f8c3eb = "c0b2764f7540b4a518290a3d6e78e3aa29afa71a" +4274319047192716ba05f2014661c6860f3cb3a1 = "af5bd2d6cfa7e867e72017a87989748bce2ea493" +42f494413dbbe536b63b15b5b98ec5195be2ba71 = "f38a4eb4883c2ea5eaace9e84338b235aebb5109" +44b78b528247cadf094ed0b588c83dcad576ae39 = "ad8d9257814f03d2308020c417557809522aefd7" +4b78f2a5f653a855d408e476c57d7ce747e2a289 = "b99e7b127df12759124a468904afccebaec503b6" +4c290aa062c42023764536acd8b498acc3279521 = "9344dc522c9a42b91dbd957d738bea90b34dc547" +540c929f221ecbeda59503933f0a40f40d35d53c = "4731c5093724f52f2590e08ea21f11eaa73c98a1" +5808da9da37a733f870e7cb5b5c6914e73473d37 = "2822ea1a8ace3efab37e96bf9b4978971cec0091" +695bdff24be10d258704c6b687ed2a7a0dafcd4b = "52707d16bc36be6a67885c918d6fa562b58e4f83" +6d2cc9a03ec942e371f87de3cfc67e8e73ebb1b5 = "80f7a2beab72ecb3a8efd31a72dfad2c8fb7c339" +6d99ac613fd84364fcd8f79a47fd611413e0ffa9 = "5d3a59eade5df2218ce014e944144885600a0027" +6e873aa96f18dfda86b0c0fccabde3a755e3bf88 = "5ec5c51e7b2bdce4cb7ab0f5c5e57456eb00f2aa" +6eda39ccd39126f4b813b8f83178708c981179ce = "01d9c2d696fe7b13494138c4279bc85d9356331a" +7570a04dea81144027ef298d747c647dd23b8ad0 = "ddcb4bf9ce260fb9144917971f5e151ea3689739" +785fa626395d508aeab00be22c6303b60a79a6da = "798721600615b94b964885be02fd27574401d42c" +7d30ba9bbf1b80442a0c8e0d6d56f460dd615e45 = "41c1c2f1f61f2a063412ab6ae7d8b90e3b491206" +80cb318054809176fba06a953de133022255176f = "4098490039e5e655f2ecde1db75cc85e2a9ef34b" +8251b5d0e9c949ae2f7f148800c71e01d6a42299 = "c79968754744283bff50769814b0c751095fee91" +82b7bffc4ce10dc3cb98360ff7926e3a69c23cf9 = "74561a8de69ea29293dcfea2f1721cfa82bfe8e6" +8c70796d2566e1a8ffd8705b25db1c3acaa98b6c = "be43eafaf70933a573457fc347acce3e45d7cf5e" +95871af4e17226dbde002bc95886e2a6e45655ae = "1814422c9632b4aae5386480fea5632802ecde48" +9a2686c28340ba4e7d1c81a2b4fea15770bf4a0f = "ab945d3bb8f2a91af6c78ac5fde581858ec80028" +9d70f8f516599a6174638d5bd4a009716c77167e = "ffbe4a99065a5555719ba5cdfb1ad840cdafce97" +a699033e09d15e385f93327f9c418cd8e5c227fb = "d323cbd1bb6a161431292df8eb6e6dcfabb67574" +ab841caffba6f307adde8f52fb931c522ce031e4 = "97cff5d94745834e11df4d711c47d2585aae829b" +b3bc8c08cf5f7e5390f9aa917ba373003beb1aec = "d23e05a66f4c75883c35c719671f7cc857c5387e" +b568f0f6eb447483b92b564cdee370f1742f67e6 = "f6d453a4fc74d133a18251cecd4050f265d2fb19" +b925f6f2df35ba112c4a1d95e43aa07d51eb7f0c = "2ba870625781a13a179a906356e777337b6cd800" +bb177dee01a1760b4d05b3d8c84a870787b3a1d9 = "a9c4f13a68d1ad5c91636f2c7c2562ae332d50b7" +bb4b7fbe55b23b397e301c969b30a41ec9f8b22c = "46c38e30a32aa6cd05dc206aa6716e80a23ac457" +c354b51691fe1569bd1c1cf31c9262b65486f8ee = "56695a534adc41d8a0792127f8eb16ade94becc7" +cb03fa312403b1010b4e59cec0e81501c6a43a22 = "389b9238ca86677369f8a032bd11ed46433a64cd" +cd738c4601b3e691e59d8284dd5693a3081382c8 = "5f7d317c4ba4f164dae3f2a8d062c6ffbfce096f" +d88408afa9145b8ad05faf47ddeadd9f60e066d2 = "5b2dd1ec46cc88df6a582741d62090356e616388" +dfc20e6bef58573399f998535d7127609d93a29d = "0d8db6548a22059fca06beb86c464f398b15748d" +e6286b75ed6905b019b673df5b7a7580de8baa8f = "eb6f1d2aa2a8fd45076636d98ec428833ac21e79" +e6b13fa29e0510cfc7b303abe5317eb2232306b0 = "cf8aa6e6a1cb7f6759de1d82edc6abdf8fb8a0c6" +ea1c0045250a5ea105898b9b9ab9a63d2bc8190d = "268b6577c2f22e750abed182dcbb403c19fcb147" +ec01fdfb610e1761463b7682b1bb31887e635fe9 = "06e02fb5bcff276dbf7ea59da429ff4830359516" +ec6c32b80b2e4ad43a95b3225802b10fcf9dcb29 = "8e98e2d03f8bbc92b5ba2717ea8b7ba22e702e62" +f248fac55aa22d87113add384be93eb744b0ee30 = "cb1450befb76ad3a43687da95abe2cabd5d1ca1d" +f4c55935a64e443feec7f3940f6af626108a19a3 = "c1ea8b5192f4e78995f730d61dce3996b8c3e5cd" +f63b21fc0cc79e7aee002c6d2f7d5d025d7d67e5 = "3919fd40e1699a0fcf6e3b546c2072ca304bf3ac" +f6cd758135fe889d4f9f4771821f9615b1bec91e = "4b4d9ac0576e74a04c8c0e80e6d07e11ec8181f3" +fe81c549d37931543d09cb45a8daeeb20b1f4085 = "7e467e81c0193504b8c393c2f16f0292d0cce196" + +[ff7a09a4-2bbe-5ce1-96cb-a4b0cacc22b1] +151954852785a527a80fc9bb0099d3bdcf872dc7 = "e419c928db85f8353cfeae03eefe4b02c781b078" +27fd2f4b19436b0cb70f3f922235980adebfa0ca = "3f38bda3c5489acb528f10f06e1a497a4e663094" +29648c1fd4351e9a80bee03fdee23153cb6ba949 = "b0db39225e2b5471405a0cbf3a3e4ca43f5b6ee1" +2ca334d36b317b7972fe980d10067b8e74ead35c = "277af2d7c095a57f34ae7810771fd3dc6ade28fa" +3222b38c48910ae9947c41715554266c34189001 = "f224130a9aa544a541b6aeaa54559b0c595558d2" +3fe2d80ab06c3b9e70a053932468d3dad8037faf = "10b746cb5cfd6becddf088761f60d071c972eb28" +4d5d8768efecbf01116073bc27956aa4e8dc3902 = "8714c76d95daa383d0655f673f8c0d8cc28eff16" +51fe29c522ee9003c0f9a13185244b067ad2a8f8 = "fe6cd37934580ec2614124edac7390b06af7b8c6" +58086c1ae551ece0508f407f77fc8e7e90ce1422 = "cc11c3813f7ada35ba4e8e69b07bb8617cd80f58" +72ab05fc75ea22bff56dc439b02e1c252daee02f = "cd2cf979fc67bf76079f28d38dec9b399eb80d04" +9c6459ea4bde3a4ee62f86e357a2f42bcb713646 = "49be64be67027888114ec504f29218aae711d7e0" +b94199730207454450b481886493916331d5e94f = "3866ef517d473af70f049c64ebcbf1b4876d14bb" +bc47adf0a9fee6675474eb72da5cbe4fe40190dd = "d9731bb4203a7e03d23f2ff6aab67bcb7b4c1b73" +c617443e26307cf719e3842ad2ded847e8d43873 = "f1a2279ff2d20133958feab65ca953e75a207caf" + +[ffa52052-4d10-5226-a170-a2d9687d6a3d] +508f3204fd53d08da09292483db928ff66465ac8 = "901dbb8f558ad1111e900470fad755a6ea4dc088" +817a57e5a54a6af4bf3a5c43ece2bb6a28386729 = "5301c18dce6f188c6d2f8d0c9b7209e5d43ee8eb" +9b4769344f0886722f77eb7115bef0bbbf0d9544 = "d8f549f01d546a1aad7955223b2398773326a282" +a4be53af6dfe10ce6a51acd3d561e2a7d1ed6372 = "ea9f7b77eaf3cfce69aa90f67d8957fa5785e24f" +e411d539314ee32fbe429c06c434fbea8a232ca3 = "73e6cbe56ea0aa496a023e043ead7d22e1b4e89f" +fea9040953fe4f4f292f5fabea63ef6f36771525 = "35d3b220c7a630678483a447a2a2fba02fab8c38" + +[ffa9a821-9c82-50df-894e-fbcef3ed31cd] +a3aba9c34f2ea5d4b95330286d6f5f7ce9a45098 = "88619d8998f18ac8b6bd41183630e9665c70a32d" +dc3163ef1fec03a095e65285070a38a85c04c37c = "8af7e1e574cfc6fb62847d7569cbd8b9d4f09214" + +[ffbed154-4ef7-542d-bbb7-c09d3a79fcae] +0606ce81deb1e693d64b9db4f62c4649517f9e1a = "943116a571095a562473aa23ffe839f25e27660a" +0fb7e6c7b05faa4da41aec44cfed29562accbc12 = "df888bbd616f371ba10967f86da0a83416d40ca6" +1263ab050589cd021f3e3076c2217679229e1810 = "c56e027db9ea371c4ae57780618ca7ed60e3d3a7" +1b137918388c85c39e863ab67c73f89ab978d121 = "caf725041a12f7f2d90248c527ebe9e45578da45" +657107d31778727ce39f5c4d6624eaa31856df89 = "b5d4baef242cacd28034455331f394b19c08f3ec" +73fc332bbdc223d25829f4ea1fb68ee3c956ea9e = "413c5eed3177fd6d131efc49f8a09ef2500e98ea" +7ae4c6f15b715b5a23592b00584d17e29bcf0bd1 = "7aad793cfe8c1c00b81ad43299d4842c8465467c" +8fc791130354c09145df8721e638e132f02315ac = "6c6eea96e1374895f1d40ba90a6f2fe1c1487209" +a4cf2b837d59fa5f7b73848ce764ba4b75485ae9 = "ae1c1fc9dbb5a786caa11f868b288985d560e285" +a5b562b5ec1d0fc1f8ff815c39066f4e0c7f7d7f = "f9671b4cda95016b4449d06cbac19f69c91e3b3d" +e4bfe3537cc033c161d7e65bff776c15dcf3e9a4 = "da947a0c8833dab1a033eb7aeeb666b1f7e10deb" +fddfc994aca3b96eb204ec2622ae2fce091f0045 = "12185b0820c6e83cc5776ccc39bbec4f85091bb3" + +[ffc501a4-beb9-5d29-99c5-6b9b624d1a3c] +138a5e39cae2aaec03289aa9975bfc27c334ca72 = "066938a814804e83de585aaaf323a03562480e07" +c6f59bd206dc2c2bfe94f117730b6c7439144965 = "06ec94f165bc5ed12d793ef7ee65057bfed8fda8" + +[ffc61752-8dc7-55ee-8c37-f3e9cdd09e70] +0187f30a03f404f9e9ac5776c69d8dfe8fcba799 = "820b38ac0181510c052fd6063a2e66a1f8b72ea6" +1264e8ca17cf26117e721df2b67850cba2b5dd9f = "3f93d92b45e27b35ef65be8de79b55e5091e23f8" +15cf3ae9fbff6ce4f6a6fe0e4722174bf5284713 = "a375063ba556ade0b445c0b3bf2feac965688e37" +165a7435221efb90cad788ce3a640461131430ee = "9af67128d7822032768b40dc307249ef011d4cbc" +167c643613e0cd5d53a89cb18c5f744a9faeddf0 = "178c375f41dce1bb38352eb9294e3efa13ab7aaf" +183fc41ef76750d7c122ab289f24c9d1b1846b31 = "8ba8830ac545cf7047b0f60e8de2c94a1ffe5cd4" +280eceb56aceb05f0c606affb5aaeeb548c2f745 = "6c1f0f058e977ac1f787c64c9b70557ebf39f597" +37fed25571f74a2e936353d5d50d1564dca880cf = "649d1e273437f81403f3f600412bef4716909f08" +38121df41b210f71ca662e2a4264a9b1b39873bc = "17a2fb647b27b5d2228ea3922babc5f8bad90545" +3b66f5061145324e50f66dc9e9be624e8de1d0dc = "226ed52c2372e5d106aa156972362dfbe418eb2c" +3fb2106e68d419685ce60c628e15303d6b6822d9 = "5001e22dcc72c749430e1dabe7ecb576ddfe7f65" +40f0f39c5ca45738ca18939304c6ee4c747003c2 = "e03b628747c3980e94251c0470101ec7ad93d0aa" +5b17fbb162cf587558a79606b08e78eeb97607af = "bad02122b083515647177c625705e40d80f8b260" +73d88267dbc4580bd9afacfbe536aacff1e14168 = "c82c93a22d6292ea560e2cae5bb97180783bda02" +af83bad9392bb5fa81540f1a55e9a6dbfe1a8eac = "48357ee1c2a312e78470218db68f386a875ca410" +bbd0371b4a881951e60f148137b39ac208d491d8 = "9381fd893bae712f2c18d1a993e9fdc9113e1771" +c2e461099930c439ba4bfb095b7c285eb6c89ca2 = "c66bd4720e621ea63daed18d743548afff4397af" +cdfd446e7b79dc0769e93db7810ca5d493680d33 = "1722a0092af24d2b3b6996b090d7cf61546b6624" +cfefccc4c8f2391c1cfb1722f187c57eebd56532 = "6c7589c086c124590f2c45429636829056ddc798" +f3f47706c6c862e107516546d4fd0857c4155b62 = "1ed0b94c0be609a010d210e9b16417c26e30ce24" +f53812def6964a56bff2ccec31a5a59edc129afd = "edeffd9e3af45dd72fbc6eb6e4d51db4c9e3fb86" + +[ffda130c-d492-58df-9d61-3bed680bfbb1] +08e1b303a22c141451fcb96567e054ee880484e2 = "3aad0eeb04d014f8ecdf898657765e327abe4395" +0fbc44fcf1a83b02fca814258ab66d3c9b0d8a51 = "ada195e53dc8175bc859979d6392d5d0dd7c8d4a" +43f2b280c468d735c4cd06f317526a975ae325ac = "0cd2a03ce702a84efe3488f3a5a2f48f7466a804" +54c88f408d66cfd346b9fbc235f0f1d1063ed81e = "1e5d35e4857102e4641ac50c517941a96daa6591" +5ef3cb7175a58c796c1db708e940c0e64ca27dd9 = "098c232398abf2a7002f5b116dcf8f4e0a56ae64" +79ce9ceff25f09d97b3b8c8b41a1676d37060bb5 = "cf922190daadd47de2410dfc19953f5db4af60c4" +8caab72b8858019eb2c7c95085e7185d28a8828d = "e81f477caf4467e6a2924be163da0c7e53e2e815" +a39cb5767729ac5ae36c7486ffe1522df358c241 = "894fc905d8edf3f7b99c74d56c3cda9d63680e39" +b89bd0b6cc1275ae001865d37aff4c529e840a31 = "80140fb80eac673f8b1eff0de2f63ad7c80a726e" +d73c21a615cbefb20b75e87762f334a668e4b449 = "c33f67c78db7206507006e99c553b84dea6e293b" +dad0bb800d4945dabbfe1cee4bb2c0ea1b720aa4 = "65838f4f5de314afcefee6102e0a6d4ab3579340" +f785989d512d575537912893668b1104ea1fd212 = "a0d352e066e74518f94bca0385ed62bc1a9a910c" diff --git a/stdlib/Pkg3/bin/stdlib.toml b/stdlib/Pkg3/bin/stdlib.toml new file mode 100644 index 00000000000000..c6d73b1ceedb05 --- /dev/null +++ b/stdlib/Pkg3/bin/stdlib.toml @@ -0,0 +1,15957 @@ +STDLIBS = [ + "Base64", + "CRC32c", + "Dates", + "DelimitedFiles", + "Distributed", + "FileWatching", + "Future", + "InteractiveUtils", + "IterativeEigensolvers", + "LibGit2", + "Libdl", + "LinearAlgebra", + "Logging", + "Markdown", + "Mmap", + "Pkg", + "Printf", + "Profile", + "REPL", + "Random", + "Serialization", + "SHA", + "SharedArrays", + "SparseArrays", + "SuiteSparse", + "Test", + "UUIDs", + "Unicode", +] + +[ca8b7239-ccd3-5cce-807f-2072f3f0d108] +4af4956f223b68ec1e4fab1118a54b2955ef8da0 = 33554432 +551a1023142d1cb196e2e3d6244735938b85a4bf = 33554432 +5ca1a70852f8150a95905170a980d928463826b2 = 0 +607a1fd3a5f0a92f7963781b73c227e0cc8d79e3 = 0 +60fab6e39bed0fe3dc6b966da6f6c086686ce438 = 0 +a7487cf4306f55ee4d36ed3f6a86a79f706f65cf = 0 +b8ead02de7adb49a04d53b2b15a6481eb77d23ac = 0 +bd7faa687b6baf2eadcaec137bd17e3e1931282f = 8398848 +ddb81600545c5a5c32442827ad2478433b3b286f = 0 +faf4ba7aab8adf635e574ecf5ebcd4bd04c71eb1 = 0 +fb4bec52ab47e1d1abdb56a1b190762c0826c546 = 8388608 + +[14f7f29c-3bd6-536c-9a0b-7339e30b5a3e] +ad72f7a8d0f987bb5f2199f2ee0054ce1d02e3dd = 0 + +[535d4fb6-d431-5a58-8b37-282db8e447d6] +283491016ae89efded6f74084590d283fe080211 = 0 +4db3d34e85735b5a71a493d759a40f60a8ca0464 = 0 +5fa0e593adab1e1b1087970a1ccbcb9688e83a79 = 0 +a29e7f006c1ad65a594f654f7f9b10688d25134b = 0 + +[79c8b4cd-a41a-55fa-907c-fab5288e1383] +08f2c42d89d95b1ee38ed566bf786f0331aa8a86 = 4096 +6113172f84bcf639b556ad111d278aa2a59cd513 = 33554432 +9491451f2798b0379fb0ad9dc0173cc3f2ad81ad = 4096 + +[294b8cca-700e-58d6-a0fc-7d74c0d9f51a] +4d9b2ca64127ed457a04d3d7768b151bdbc7cc8b = 0 +a7a7582690ba5fad62ce784daaad945a71b6841c = 0 +dc78ddc33aea1fc296766681954414345c2a3b35 = 0 + +[e6352adf-4ae3-5eb7-9a68-79830dcd0ac1] +3fd2a7ac9f8fd771b1ee8d323510fa7a1329b751 = 0 +64ffbd26654448f9a46999d9efb8564e4748f9d4 = 0 +ac26d9b48ffc5fe31cabbc7fb8db7df2bbdd43e8 = 0 +f583c99c82b06b73a3cb1f26163551ab3b465741 = 0 + +[e6d88f4b-b52a-544c-a8d3-7a4f12cb39c3] +cc05800c0948ff653849042f5f68e11634e7f002 = 0 +ee2e55fe8ef28240490c222f050b0699f573858a = 0 + +[fbe9abb3-538b-5e4e-ba9e-bc94f4f92ebc] +14cc0539ad99a30dc9e3511afe0144ad5d7d1f47 = 0 +1fc8232ac05bcd445c3635cff2a9ff35c273c9a4 = 0 +409dc2bcc916862a5c8696718e4b277da24e6cd8 = 0 +51d5a0ed4e0ea25788571c1f05e6c1bfe439fbf8 = 0 +53144908a080f24d30a6d4c333e3fbba9b25949f = 0 +5aba846a24145c027a2139b51fd212a41b9c76ac = 0 +6291862f775b16c57bb3e4304ca23ffce7c60a9e = 0 +6477fd150f24fb07e0eda78688ddf74067217189 = 0 +654c058581c81c603116a3a8090623269aede4b3 = 0 +6eb59a400b116118852fbf3f74831ea8637b7221 = 0 +7a8ae3fdb4f8f5cad95b2d0098d41b43c63b78ab = 0 +84bb5947ee8e1fbc8d49af95c2d5747d5d919bff = 0 +b42f0235b99d103469b9539fff40ef410c346817 = 0 +b4edb3f8e950e9b6d0b9060cc176effc0c832dd6 = 0 +c8e3fb6f7a3cbf9da2e65f7535a614e9f199c73e = 0 +cb9157f4bd5a3ac3df1cc05a6364ef7b4f49d11a = 0 +de5722479fb55a0c401fc96f83c6540a749fd6c9 = 0 +e84593f259163e119a9960cf358d5f76ac5131b7 = 0 + +[4f1ea46c-232b-54a6-9b17-cc2d0f3e6598] +0302c87c850e83fbea9e4d8fa8490d3c46701d9a = 0 +0bf97c66fd78270fa431337b45f03c70bac7d1f5 = 0 +0e3486694c67631136abab9a9001f85771fe546c = 0 +10c7bbb53cf7babcdebb35a78385effcfc5c280c = 0 +1ab6d6dcefd6a66a62ec16221f25cb5946cb05d0 = 0 +37e038615531670fc23c3dd4ca7047c87025c9aa = 0 +471dff4c4b495c9d7e126254401f55f9f9b7f6e8 = 0 +58cc2a156b93e562f86ced300982adc14a0ebfc3 = 0 +5938252aa70cbe39e338346899389efac326c536 = 0 +604c2290c25d71c1d5c5d3a522ab66579c85a9ad = 0 +68ffd8a211d35d7fc0dea676cd05a2952bd414e4 = 0 +6ccbadcd6bc6b2ce84c2ca06c387d3489f324876 = 0 +78d8052a9d511cdbe5948bb6e1ca1cd573cf31b8 = 0 +7ddf9559e30b355c0d85fc51cacf4a0326e59384 = 0 +84ad66140ca6ca34e38fbb8dc23669169793d830 = 0 +8b00f411ff26689ada6ee32af69d90abdac7bcc9 = 0 +8f74d6fb6a202a60e09b35ee223ff07754aa5602 = 0 +9330a7b5131dde536ff6645f25822dd552c2c398 = 0 +9466ee0ef4b6c73c782eee26942c8aff8017c5e4 = 0 +9caaa4f0d7144824e67d7bb340657ba9faa44031 = 0 +ab2a737ba2bac343fc5c5c04f708200a6168110b = 0 +afcd9807717d667850730affba215f73edc0f159 = 0 +b1e88217dbdbae0f9ba68ef17c0b514a5d15c1a1 = 0 +b7438b8ae62a6b2329cc1ad0093d959618fe849d = 0 +be6551cdf6af85799143958aab9e227a4e33f5c3 = 0 +cbe91fdd4433eafd8f2fb052e5b07ce8e9e9dd0d = 0 +df1216674082eeecd2a511599820c924f5c7ca3d = 0 +f1c400b847a2c507611d441eacaa50a31bd13bbb = 0 + +[702785d1-5201-5208-b5ff-8fd798c35775] +299f28029ced38b4ac6c1eecba5db82d6a138e37 = 0 +4d84b9081271d5739fa9ff052ce5079fe01c9759 = 0 +4f040801371abad8feadbb6512f09a8e301ec916 = 0 +554bb196cafcf7ec6c9dbcd267e33ec0e2526ed7 = 0 +6162190f95fd1095a3d0d620e041d854e3d03d63 = 0 +a09b93dc23a8b9cfa59fb51d7c6dd617736f28b0 = 0 +b21d4c6f61904d63ddd21c40c122d02ca274c10f = 0 +df58194a947de52123a077a937b162226c4853e7 = 0 +e80a0184a1529d85cca0041e5c2f339749313d63 = 0 +ec6fcbbe08ecb626ea909d9cee101fd8a5354d9c = 0 +ecfb586d4bf4f371288b7da9c45b361b6e14cb1c = 0 +f36bdce79ef527d0df768eb52726779d80806989 = 0 +fbddae9980dd37f469e9961e24aa72eae489c832 = 0 + +[590503c5-0061-5db5-9a0b-c3321e62fd13] +26811c32ad44903c677b606efda379ce3df01fcb = 0 +28fcc22d27e3241249fe1a68219df338e56ae4c4 = 0 +568b233457895af9243b4818d980b3c7703cf48a = 0 +7741b69e14d4ed0d9663ebf8aab195cacfab1f05 = 0 +94cafa127d0bd4c14970bc63abb324cc990679a2 = 0 +95baeb9a3b5b0c9ff477b9667fc24ef9111e7725 = 0 +9eb2ee362f3f8b9b634bab38709ca86f68ee255b = 0 +b06c481f0c69b8dd19f777224d66aa21ecba520f = 0 +b481e4b93a34b874ce80194a8ff5091bd81b247e = 0 +b5524ad5fa5d8852f83d2d65b9a15dfc70d0f88c = 0 +e3c4e0882eb037d987dae7ffa20b1ebaec33c2b5 = 0 + +[c6d66e27-4cbe-5a53-9b6b-b93c61e0aec7] +066122a3c3e215c9b71142530ab6ef856d195f2c = 0 +115ba357bc4811e1c4fe9dc303eeaef67e22f929 = 0 +1ed1a34865ba7ab8b26583e96325c65086311993 = 0 +2032b1b541c3561ddfb443d2be694394419d4593 = 0 +2536fb615053edb3abddd9eac4cd6045593017e2 = 0 +37bd5ee37490db3ef84bf48af23e3fcab9e3515e = 0 +37d15dde1313da3ebf0da6d8c021414f11cea7c3 = 0 +56763b0d54a15747c8b322b4b9c63bb3ed4d1e13 = 0 +5ff4694f3d30ddd4471ac2a74f74512e6096fca5 = 0 +73b92ef49eef5983602acc78efcfbb18000e4d9a = 0 +7935ec77f6d33da1213e967e237d9df2d3549035 = 0 +7fb66f169ada4c803e8fc557f0dbbf69bcd96b64 = 0 +804e82493d4ceee5d315571c9043e8c3384e77cd = 0 +84a7e56bade1e2511ef90f700ce3e51c451c4dff = 0 +8fdbd6da636afb9f2bf96a6e38f8ceb97dfc2a17 = 0 +96beda4c3a33369ced681474e360d95c0851da77 = 0 +b7cc6c6b434accbcf9f666da7bad0f149fb194d0 = 0 +b9e2473bcf3389c46ff1bff91bc69c0fd69b3890 = 0 +dfdd631446c3aebadf478de10fe750fc3b3aa025 = 0 +f719e86c77a6b5312367bf0d200cd3ecb4250b05 = 0 + +[1c724243-ef5b-51ab-93f4-b0a88ac62a95] +00cd066dcbb4e2ffe368de53a6d846d04e1d3d24 = 0 +11aa6aa5aa72e786a51723bc5894ae488d4120b3 = 0 +17c838979a4e1c7b475960e982fea3614c6211fc = 0 +18ee4693d1aca13b3485dafa2f069d74b9cfec1c = 0 +32bc0ec51de64238f36f7d7e29b063e8b0f78c1c = 0 +40cc5fee921895e5d3381d98dcf6717d2528e288 = 0 +43862e4ec490f6cfdab9d64e64c9305dea75e54e = 0 +56d87a654d76e9c32b19df60d79aacd789d05c7f = 0 +5b84f726137d2436484a4a0d637a31741921d5c2 = 0 +808df8bf43ad729e34886679c56bfea05f6da5e0 = 0 +8096c29d71ce1ff0a3530226c355d9fb4bc225b7 = 0 +876cf51ce749d2da0e9e48915d0795e22b6a6858 = 0 +98c8ddf2a1ddc1cc99ad78b8042421b25b62b2f9 = 0 +c48bd8d4c93aed27012f023f23ac9489340ce7fa = 0 +dd9f7c0a9cbe6416631f1f239d338ce9c13be927 = 0 +e7137389c95e91ae3878b9d8e7d9c78398914a21 = 0 + +[b7af77f4-1885-55c4-8253-e0784dcab0aa] +05f9cdf16aa08f50843f08d89fc02f84350989e9 = 0 +1920313a8315d3b95528dafe61b65ee18a8fb02b = 0 +80c725fc9434b8c5668381436a3e7894324b5b33 = 0 +8dbae1073a4ac4d58f9a6b5bc99809020476601e = 0 +92220d67fd25b1b22ee8c0d2df5a99ced0eb0bfc = 0 +cc9a9e8062196c6f0af148ab85bf05dfd5eddca1 = 0 +e04acffdfca9c7d9bc0f4f7ec55cbafbcb7e3878 = 0 + +[0d499d91-6ae5-5d63-9313-12987b87d5ad] +19afbfc6161fe69443f3a20998e9024fd648f9ca = 0 +28d8302e1a145ead37cef5578763de761b9a20c3 = 0 +41da8d7fbfb791ce2758eb086fcb7a42cbb09f05 = 0 +af6e4f52f1c90ee70c85e957facffb658ff841ce = 0 + +[255f4518-d178-57ab-9c44-739df5d483c3] +49ee15a6527b430007710fbe07946e0a2ee24748 = 0 +77c465a18eac5810463d46f597b075285ee61e61 = 0 +828856d166e30cc1bf3ef8833f7263f2e747ede0 = 0 +cd596962ec9b5e6a5236749b60aad55a683bc92a = 0 +f801f183dc5663544ab3fd9127fd0c50d3037f77 = 0 + +[c322f5cd-569c-58de-86a2-19d2b72e86c6] +082dcc49a4f11f6e12ef985ef34f1265b76efc11 = 0 +0b0185e294622ee2fea8e71a139adad30dc48023 = 0 +1a8059804d2282e809508e294d241be8df17dac8 = 0 +21a90964b8a3ca1f8a6c360ca9a011b7801d5658 = 0 +407cd076a36cb6a175bfa2d9d8d6dabeb096d489 = 0 +4a982b2dab508219cdd57eb01a8b48baef5590d7 = 0 +544e4d7d371c906ebbfb9943558209a00e4d5ec0 = 0 +58a98305f38e487abc4d42109b5cb1712ddf1ce5 = 0 +77ab38bc331932507be8e14221cbe3eed6afa839 = 0 +787d07a9efadb395725c7063c36bbb800b1f2ce6 = 0 +9078102a2cd13aa038ad2eaf5146e3eab5749f0b = 0 +ab049c34f3581f7120113803f93cf4fddb910925 = 0 +c213a9b8a826cde982afd3a7db0ead4ec0647a68 = 0 +fd511268d1858b989dbf216f1d245e8fb663b90c = 0 +fe2004f8916288c2025d969024107cec43757b90 = 0 + +[6e80b5ca-5733-51f9-999e-c18680912812] +0cdee28d25cac304d83ef85e2d517cf3b91fd125 = 0 +134a124db890d83842dcc31f78563bea311b66c6 = 0 +21e5548ebf6fe17bfda661070acee16e09706072 = 0 +4a1497fd9971a89a7ce56b13116243cf9ac83bde = 0 +76c003f302930b8f828b56c60431d515b136faa7 = 0 +8a92cc2c684712a42fc64c7d1139a88dc3e89e7b = 0 +9983590db46e71be8437e1d714e770024852ce4d = 0 +9c55bb0d2a966ef45368441417952ded33e5b4e3 = 0 +9c623c02f7827b9e441a62faef2ca7292387e878 = 0 +beb67ce12ad3df8f9e505002a33ace762f31b8b3 = 0 +c8c8f75704003cb68bc4504cc923671f5b47eb5f = 0 +c8e559eb2dfdf4921a06c454029a062eb8dc81fa = 0 +ca456d551c3f3373d269619806be70f10464660f = 0 +cad2f86dafeb28f4aac103bc9d71361f9d1b3ee5 = 0 + +[bc6b9049-e460-56d6-94b4-a597b2c0390d] +a9677c7ac4c5e1ba1d87feec7d57c74fd24e0aec = 4096 + +[90071601-5f65-5655-93ed-1a4f6628b2b5] +492d01eea9c7b959f6777d525ab49ade49fb3ddc = 0 +523e718cd866b93265db0c5e436686ca4f92cfd0 = 0 +ca0cdb833b949376353175d243bd7c790203fd23 = 0 +cf133945044580029a7a2d82c45822c334f4cc52 = 0 + +[87fe21bd-8b4a-52b0-bd56-87cb6841bc05] +7a3ec953b69d067615b1e96c221a6dbe61ff5f20 = 0 +852d391b6302cf57a245b198ccebe61814c82582 = 0 +ad4dc40484c4a16a4671bae8a5922715fbf6d680 = 0 +f7511f90619e3b64303553a5c45456822acb1afa = 0 + +[621f4979-c628-5d54-868e-fcf4e3e8185c] +486ce509fa54777ec478ffbb701615502a931022 = 0 +bf0be1e7aad5517c1424c5d0ec11ef65a636ace2 = 0 +c1eb41df4fd32982b9e1179139e64d762e576a69 = 0 +f9772b0a32e68ada99ab6e67fedd2e89747f380f = 0 + +[85c772de-338a-5e7f-b815-41e76c26ac1f] +111eecbbb99c65ff6ceee952bfdb9c339c164f1e = 0 +7ba53c59aae0ebae10ca09e94038bc0d08adbae0 = 0 + +[d9c5613a-d543-52d8-9afd-8f241a8c3f1c] +322a9d03eb298254c43e692bb379781ff9ca5c44 = 0 +cf8300c539deff32844d9bc571bd384a69e1e132 = 0 +d7a0b03659f53aa1069e1164ed38818791d3a0d4 = 0 + +[ddd0632b-7f4d-5bd6-89ff-461a327835b7] +7671efa01480bd0ed977446830b40167d120585a = 0 + +[1520ce14-60c1-5f80-bbc7-55ef81b5835c] +38c53b5b0332d859bb09a08cb217ac6eca6b5e7e = 0 +516c02ce0d46445151dffaf097e5f5b3d7265c43 = 0 +73ae234df75b9e3b22c290233509c5ce2ef06888 = 0 +74695d4634c2286e20c75accb2739d07344fe56a = 0 +9226a020bbc3f82ef8fe0028ad6c0a354a24cd7d = 0 + +[bc77054a-dce0-569c-891d-74ad81f7e3a4] +dc0d083bd2f89b470933221b7162155f9ff9577f = 4096 +f9f296963446a8a1bde365b477bef57dbf0ed12c = 4096 + +[22286c92-06ac-501d-9306-4abd417d9753] +86a333a49bdb4878c8d277ceddf532601702da1b = 524288 + +[178780b6-09b2-5a6d-bf61-2be9dd85b544] +c36bb3d9598124f43f688963fd3ff41d5cb94cf7 = 0 +dc90fb7d904a5982cda9cd3fd5286196e70b9341 = 0 +e22c9ec5dbacc79ca9a81d47bbd59ceb72bb4918 = 0 + +[1c4bc1b3-3fa8-5944-a62c-081c1d8ea3be] +0727d762acf03b8d4dfbb8562006a6cf3930076f = 0 +3cf30b17a4c49f01f71786bbec1afb8bd55c2cfa = 0 + +[511708b7-8d90-5a63-9f8b-8993ab87fa77] +464031ad146050e30f028eb2c06a225f6572ff26 = 0 +5150cb65d234c4231fa5628c5d38bacf884848c1 = 0 + +[79e6a3ab-5dfb-504d-930d-738a2a938a0e] +87ba4fab1f6f87b6b3662e5aa217b0db1937f2a3 = 0 +a0acf34d77f9921877477958da358b99cd21c65f = 0 + +[a1957575-6125-5dba-8f92-417d2d1f4a46] +693437c9acdc1cdc5071841fc555b19b53e51577 = 0 + +[c75e803d-635f-53bd-ab7d-544e482d8c75] +d3b47e6939050b0575ed98ea16cb8bb2bc6f852a = 0 + +[6cc8125e-a04b-5e90-9cbf-894ba9b8047f] +2f436ccb2786a6359022b476cf1d122d89bcf252 = 0 +3df35777964a5eff7c15d9c4ccc48927c6621963 = 0 +8f2406ca33598a36b93edf4acb7108bb312daf04 = 0 +cc2ebbf9ccc5c02e1d040baadc8dd78aef5db534 = 0 +d6e5b94a63ec70cedba0b6b1f358bf21f8602ef9 = 0 +eef4684fd710c7fc3b5ea571731044b99e74a255 = 0 + +[715cd884-8f22-55db-b077-449d1f7eef73] +0c02e364fd61c67a64d4e4ed5edbecedd7917395 = 0 +53e18888d93c875ce1d6d931c56fe673d9dca5f1 = 8 + +[a0f608ac-68d0-5108-ad9a-0cdca73324f3] +104df63a5b9de2991793e1f99fc117f037b72357 = 0 +130740d5bce9832808619fc785a990c34a6b0c32 = 0 +1e7d1e791df66620dd477989e67b22d19f83e0ce = 0 +3f0587e428284c36b22dba135c5aad92e4ebf8d8 = 0 +65aa4a133568cfa194dd4b6649066bbc7fce85ce = 0 +683e4e8bc4f7fd24250a914e119f0f2eca17cf2d = 0 +848d8368181e14988f431e8e831900cfa83c6433 = 0 +988e663f64b2d7558d7b76a88712800bdd96d1f3 = 0 +c007be1f529039d2813d001e19c11a6030bf391e = 0 +c887cc47723cab9c725a2029dc2e6be2540c4d68 = 0 +eaa95b83a90d6700f4456702aba94c88a7284d20 = 0 +f0a7393e8f1a3fb49b103e7ae719d7739e9a8747 = 0 +f4810ea5241f2347ee525cd221775fde9a6d17c7 = 0 +f57c854fca9eb552aa3387c0a7e86c584369d5cc = 0 + +[7914e933-53e9-565d-9a34-2612de3a385b] +1bda98319e2368fc806438dcdef10ee31a220608 = 0 +373932ca8e7c2c1e42b34140e953b5c9bf8abfe4 = 0 +483dc8244da554e505ba1b26bef6107bdfd21d2f = 0 +52ea15055fbfafd7cf0302e56540a1f715033590 = 0 +73646038911e77ea2ec68f9dd0453bce80273542 = 0 +7539a86bcc330fdb9025320a623bd70e37647d83 = 0 +7c7616ce8c8ec27aa0fc9daf29101d471a19e654 = 0 +826b189d7599819eee35b07b1e13a8d12fff7866 = 0 +a78f6e502227c0e37080dca8ca06fb1ce18e6370 = 0 +e2b9ff7f1747b29b6c779c6a8cc85fa87457f4ba = 0 +ea5f70facbb09455a7409029c82fc8f4d320b4d9 = 0 +eeee407b3df35bfc94caab123a60af71ec414993 = 0 +f117b54dfcbce6d3c13509e9d23299ba35cf4540 = 0 +f5dbfd093056bafdd23d0900338ce7e0024a9c73 = 0 + +[b4275310-0d50-5c7c-9097-7fc07e87c7b3] +4dc3fb156305f8be245745eeda93d43670c278b8 = 0 +81e6652caf5c4982f12b9d4bfadc28e4bfabb8df = 0 +b47ba4220baf71e9e4e2f428ce3ae881dcb68097 = 0 + +[77dd3d4c-cb1d-5e09-9340-85030ff7ba66] +ec4c1f77562193e5b917218d45ac8e1f097bbe2a = 0 + +[7c4d4715-977e-5154-bfe0-e096adeac482] +103910d01c4a9a2b6ee48f9c81b35f9e341dfdcb = 0 +507a1b13e288e70b31d09768baa0c42e421447fb = 0 +6a81ccb2434eee5aca69feaedd77bf7b38f4502f = 0 +9fac3650ed5c4aea7f18fc0ddf85f9e1a955d927 = 0 +ac10e30c96d1fe2c2c8c7ac253e00f531887c21d = 0 +b8bcda24df4167ba8185fd7f5db80fd38893176c = 0 +df7ec3891eef9c7e35bd4bffd24ab93645f429b0 = 0 +e1badd61bf5446c5017fee86b1bc450ed9e54ecc = 0 +e251cc9671ab431e94cb78078d22781f07ef946c = 0 +f1cab52cde678146e3637941aac34a0ee2ff2a19 = 0 + +[fd9e7046-df80-5870-8bf6-b6b2342464ec] +084ac19b7546e1afe7147476d3e93e57927c15ed = 0 +181082fe34bdf8acf50b12e12b0524b5b8b38cb8 = 0 +1b6f7d35086c62a2afc18cc838af34eb5cc2cd1f = 0 +235a1e7eb5dea1d9f5fb1e74febc3adabd9c6253 = 0 +277129ed7a426d5a8027bca95b4bbdcb209759ee = 0 +2a43c29a3af34a21e4478725d3e4a81427b7445f = 0 +2a69b18bacbf2f60dddb439735779587a607f5ac = 0 +2ec19353f18299a40d3feeb69e4a0f315a3a9e21 = 0 +40bc2baf8d94f488db5374d7e84e829e0fe92859 = 0 +558835c9196f1fafd083860ac4251e23d85e0fb3 = 0 +5656779a7c235a23ace62e17dc32d39f9def230f = 0 +60fe4dac75f7c26f9844e3e423ddc8c04a190aaf = 0 +6bc952c02f5eff1483d2a953bbda9ca845ef921f = 0 +84cbe0bd664f57cc511524ca84d7e0472b0eb244 = 0 +901f83d50da1232fecdfa62a3bde318285dfcead = 0 +923539a0b65974ce04059d0edd218bf2295ab5c2 = 0 +97d2f5e12cccb777db3602a6c1a01bc19d8e2d68 = 0 +bf501f74409dee1fc1f40db591862d406ec13310 = 0 +d343968913581054be59be6ad7e37513d6a48512 = 0 +f2d2b5c56c53423963515ce38ca0d1d5637aedd1 = 0 +f69b868235029fbb0ffe6f59fc89308cb3ab755a = 0 + +[af6aa194-2a4d-5dd5-88e1-52944c9af9b3] +73db5fbfcee03c9fc69ede78a56998dbbce314f0 = 0 +860eaeb25e470fdf68360b771f1a4b0c94c4f024 = 0 +aa40f80ee6369fd6e485b646fc472b396705e0d0 = 0 + +[5afc80d4-9c98-5ebd-88a5-4af7d4f4d6a5] +4ad1788f28c765dd1dc5888cbf27b309c7e41a28 = 0 +5759866104cc48216007684a423f43b2e4783113 = 0 +64bf45b5d9dbad6d999a6e29a67e8b81ace8a59c = 0 +806d536237e68cbb6b3963f72edbe3015f061c97 = 0 +9c82cef8818548e87d120d3d51293e9791c1fc98 = 0 +c6f92fcfe0bd24215de996131944b3555ff888db = 0 +e4e414194d435c8a726e83a4837b008fb945802f = 0 + +[13e28ba4-7ad8-5781-acae-3021b1ed3924] +6bfcebbce53ba29471956b2d0c755e491d22c014 = 0 +81f696784541249ac1e50d45d68aa0fea01698bf = 0 +cf36f5bf39acda3ba00badc9250648cceffa7c1c = 0 +fdd91b6f891b33790c9af1737907bdc928b0f693 = 0 + +[28f2ccd6-bb30-5033-b560-165f7b14dc2f] +0c81979c51b15b86d0e889c9ea4ef94a338ee4a1 = 0 +7a20a13d029560ad7dc95ec897fcf12ed1d0ca3a = 0 +a4141f6562eec07ec85752af355e744bf1a3a5f7 = 0 +a92bcac6445dcb5a28f4900de776101e46a3e398 = 0 + +[f0fec3d5-a81e-5a6a-8c28-d2b34f3659de] +de10ffe36c632edca37aa9d8cc791af39ef82f2d = 0 + +[9689d877-bbb0-593d-8021-de8e3bedf7bf] +3e49ec3ed2be9de9bb7410513435400b9bd6c49a = 0 +4655010eb6da712507280c823095473bf80f5fec = 0 +4ea4126fea2038857b4428b8cbcf9cc291603b8b = 0 +591238c19d2a7b49851042200ff86c959c61a0ba = 0 +64bf6eb23c863a56988f12fa2ae0a499f6baab33 = 0 +6ce4a9396e0e445e0e3b0e28a749099b22b55b9a = 0 +7e7d7d5af2fb055cd07da0f2e20bed7c07bdd020 = 0 +8e24be91f923aa6087fbee34e47e4b4905b0dbda = 0 +9a5186556456d7fa29a25977c9d29880a44dfd05 = 0 +c50e3d29b6b38c83bfc279aaa5e8ee8c06c994ee = 33554432 +d8c8d9d4587a592137d627d6e2a0ea05140a55a7 = 0 +db6101d306b7b2efe7071ece22948e23b4ce467f = 0 +dbce0537f2386c8c1cf319de05306fd83353c768 = 0 +e66d3fe55916425ae750b658403f6d447aad716e = 0 + +[a9a6dfa9-9169-53da-bb41-f6858f5c0cd9] +6d0807781af4085440677c3033eb10b7c6ef6aea = 0 +97dea1d4c03adcbbf771d5b9143cecbdb5db5b54 = 0 + +[b7f77d8d-088d-5e02-8ac0-89aab2acc977] +7ceedd1b518f5056546e97171136b7c978dc9aa5 = 0 + +[dce04be8-c92d-5529-be00-80e4d2c0e197] +08ec44ee368a762fce86f3ec2c72ca2de3268488 = 33554432 +3740f2118dc7128a430d794185864248c98f0304 = 33554432 +57634bd7f18180331dac67a838077546c1877c50 = 0 +6546d1293e08c0151805d0f320d303955fd81d77 = 0 +6c730e24641b6590d075a1d974d43d61367b43d0 = 0 +d031df211ef9ac269f328b93ed8e0aa196c03c83 = 33554432 +fa0feb79d4d3d6fce8adeb7bb6de7ec43c7e5d58 = 0 + +[c7e460c6-2fb9-53a9-8c5b-16f535851c63] +7e0f30e78a51e577aa34817d2f2a63e9d44197c2 = 0 + +[b19378d9-d87a-599a-927f-45f220a2c452] +2ab8171b90b0c5c9d8d9fa7d15373c8d8c199558 = 0 +78218c45e1e9c5bc06d2b4a5c9da8a0cf98df606 = 0 +a4b2a3bd509554771e1b11cee7a494e11e2abc52 = 0 +c286d4ee1b4a5d36b4eb291ede945de099c36584 = 0 +e0f9648c8fe33deddf1ba9ca6ee9594e8edc5d51 = 0 + +[a5c3d3bf-5697-5ba7-841a-c26aed266c5b] +0249f3f33895780f1f1664d1feb1dc158eca7020 = 0 +05763b8b634349fd9858279d1f7ad1d5e365e8a6 = 0 +0c05fee16e628c1955ef9bf1fb4e48a657253c5e = 0 +1f0e31ec5a6c5d4a348a5e977d38099a6660df69 = 0 +1f7453eced491217ae382e786621574ac75576f2 = 0 +2430425bc4e798da2415e656c190ccb5951871eb = 0 +27c9e3fc45f1c3197148b53e5bce08235980cee9 = 0 +365b1aa71d65ed518d52d0da11b30a1f37e86200 = 0 +3721a1d5ed4a90275b5c15e2bc0c4f2df6255a94 = 0 +40439daf99155b751d53c6403a5bd35fa0340f7a = 0 +4243d668777540d620e019616e6f9a3d8522bfba = 0 +580c2cde91917ad9901439cc11fc7f745871b16f = 0 +5e895f6b46327c94959c5b1662cabafc9288ddc3 = 0 +715d637fbdd0f6dca6a03d1f2d7c8d248b4abde8 = 0 +7403112a62051b86ca426e33839515a717cfb3fd = 0 +7422f392a99407e4733b318c4670e7a259537b86 = 0 +7d478e4933306d0d30cdd04294a00f769ace940b = 0 +99e5ea51d5449ec27891cbf9a9d100b5843cc32b = 0 +9f935fdc1a5ba618a22c463b9f25564ff892a549 = 0 +bd9ab7ec3a63ebfec7355e3bc15f0eef77388f00 = 0 +c6c2ca4d4856d225ce1ab6f75aeb83cd91091e20 = 0 +d3d2537903d8fe8ff3a0cd55d2c4c8d548d4182d = 0 +dc1e7bbb20af31d35e98697349867fc9a059a06d = 0 +e172b5da6b90dfa0d44471a3ff3df19b487d7f30 = 0 +f2edc40ffdf27c0936f2682afa1191604f7c0583 = 0 +f34516d5538abafb5f7456a0eba91fdba4ad3ff9 = 0 +f724d4baa517bc9d8ae7378dfc463ff5ac532337 = 0 +f9e48f07ae27942559fccb52d06f24d542cd6564 = 0 + +[1a029416-38b0-5245-b7ed-67249edcb994] +9e404ba190f4cbc22165d2bc3ef7d37114119529 = 0 + +[cb1a753d-6b7b-52e3-9bfe-57d99d445c39] +70f0c4b33b737c1b80f5864055f6c027a9b2a199 = 4096 + +[c7932e45-9af1-51e7-9da9-f004cd3a462b] +0bd8f0c24a94128f32951611aa0379e3c3d5bdbc = 4 +4fd7a35f3936620b0c6a8a19ec0b688aa1a27968 = 4 +692255a109e5219ef9baaf5179730c151676c96c = 4 +7044ea5978c0e6f0782c4b747e23e775091b91dd = 4 +73621b179b818464e72e942fd3a691ee79f14243 = 33554444 +ad524aff42fc0a305fa80cf9223376ca03300b96 = 4 +b14c418b91604b92cb2ca9ba0b1c5da2b4a24776 = 33554444 +b6c64079a99df10569e414862921cd766457cc84 = 4 +f1dea9a9cb2e2961cbba15ba06ca148e43913a77 = 4 +ff2f34182481ec71652a638c5dedf103bd0e8048 = 4 + +[faabce77-3242-5060-abab-4a4767a0df42] +bf1dc6f34bf5c9e3f679fbc8361787b5071fdfdf = 0 + +[c52e3926-4ff0-5f6e-af25-54175e0327b1] +0a537836f5b7e1206b1befa56d7bf3b55fc7fe29 = 0 +0e40e57997aba23623515402ae8a9f7695deb310 = 0 +1465f3cbde68dd34fb0cafe7ed086d369fab9168 = 0 +19e3cd8682b823eb95c239196128dba3abd987ec = 0 +1d4513b031191124e2b15f5f95c1a54be5436570 = 0 +1f5735fc6c89ba3dc000a0b8b08ad0e7cae2302e = 0 +20bba07340eec2a4096c5c4f2948a035d836eb12 = 0 +217ccb155b6d845a9f6e89e4e9b426db4a9ad0e1 = 0 +31eb7bb67f322a00a84b11344d53ebb3fba8feae = 0 +350752a779da8a5cfe0d59bd19d03ba1c0153a00 = 0 +5ab09d3e875cdfbacc9f5469f276abafe91a2dc0 = 0 +6637adbfa87f7dadb4f0a01fc3253b0b6b34fa58 = 0 +70b004c2ed2d6066c89d967af12dcf9378c9f047 = 0 +787e684583f84e9d70c1eb0f70019a68aa557fc6 = 0 +79c8c8a6bc465f41ed4ed1f7cc94e6ab4f37b301 = 0 +7a063c4b62b001d3d5cd9b706703bae38edb5204 = 0 +7a55deda388658fdafa875746cce3dbe71089054 = 0 +80576fae22a41c5dffb33f71874d17337d0fd89d = 0 +8439d85a44d687d9c4cda449f84e22e93f1e9991 = 0 +8b07d256e79ea8025d3ef2bf5a1d6cc09c340348 = 0 +8d58ffcb1402d8871e3dea6198f939d5a93876e0 = 0 +98a7c2e751852c6517cc0c22ced97da972e8a07d = 0 +a2ace2b148eb40b2845a0bbc7501dd32f4e278c7 = 0 +ac68cd9e7c728def3d0337c28a31bb3e64a9e593 = 0 +b0b8d589dd5bac4bb584a4da4fc2d2d047ee54a0 = 0 +c45d7622da1c5b7afb33cd78370924320fe8ea18 = 0 +cbbe3a718d64b209f8caa83e0729f4a3072afef8 = 0 +e7bbd02dccdddadffdd7727d03bf0d5ddc968553 = 0 +ea49f246e0f32f815a9700635fecf41333ec78da = 0 +f13924faddfff4efd25fe60b1188e2c45ae6e76a = 0 +fcafda674675ca61120d7293ee10cb5c5c59e908 = 0 +fcce9769d4d094b87ced980879decf337cb56bcd = 0 +fd3b0787ebc43cd9d1e0ce0fb31f1f74fceca92e = 0 + +[67a87ac7-5706-59f5-9189-3507e0192122] +18f0cee2e550bddfad48df7e04c1ff4f6015b1a4 = 32768 +99ac59c936dd873481f28ee440e45b3477bd4aea = 0 +c1212692a03fb091452c785995d2df481c04134a = 32768 +c2fdb53925599e05411dbee9648ddb03785c0091 = 32768 +c5587a9b47a824028439baf9e9b2638492aaba39 = 32768 +f75de3299f9865f08c78892fd8172e47fa5aa230 = 0 + +[0612f1b9-51e2-5127-9fc2-313c368ba66d] +1ae9e33ab9ce5bfd0d8a7ec8d3479fa7c204d235 = 0 +31886c1ee09b86176d40354bf478dea09d842910 = 0 +6905395d8ac7d39864617df0d4768ff7ef36bacf = 0 +7b9db6cf3ade32c68fe70e4ea5769c13a78296fb = 0 +9c0ec8065d3641ca20f0da50c7f6d723fb0d37a4 = 0 +d8639510d6c08e0afac34fcb5212059793d49363 = 0 + +[d9d8ad79-29b3-589e-911c-083cca4f99e5] +1a11f9bd8cb895ef8749c3f752ec6ea931bd45fa = 4 +826775b99e4003bcdaeecf05548cd579bff5c57d = 4 +8cd855bd2ab131ac1354a853bb37b5441cf31945 = 4 +a9a18c05841c2224e35f8642353f794c30f745dd = 4 +ec1a803517d6b3906891ebc2be3e3ce38c609d6f = 4 + +[7e4cc7a5-8b60-57c8-b743-06a5fc972085] +4214556d0f6e9efcd73c09bf1a50eaba2a331cfe = 0 +48243b8bfc69e6fde3b64a771ed560ae3df6de06 = 0 +4a3f0160996771a571a41b51792e63fa03b7ef1f = 0 +8828ce89df3aabab4e1c478b81b6f3943517d08e = 0 +9efe9360d1e44d6a561012b6b0edbb0b15d4ff43 = 0 +b6f0c39d93d0cb3ae48f02eedf3e3482fb206f80 = 0 +c4658a622dc122c1542a290a4e191b9778d8a1fa = 0 +fe04602c7a8f94096f71ff6778076476a6eb13cf = 0 + +[6710c13c-97f1-543f-91c5-74e8f7d95b35] +0c27dd85875a8c0cdbc9a4dd11ffbf72493ecbc2 = 0 +20cc0cca21f64626c1ae949e830a371f769d69e2 = 0 +42616b245e28f52a5f5207ec65cc2fdce6a595a7 = 0 +558a217d5af39ab5b6df2b006fb52d4c00e5041c = 0 +71a99dab9aab8811eeb0d6f84de6be1397233ac8 = 0 +823ea162c829402b0aaf7a7d9e4145f170fdd79b = 0 +bbc541956f4be98e9ce9a37418ae7597cf8949a4 = 0 +c049c0d75654c32e0d9f704451698f471efea68d = 0 +e0530fe89378cf3f137f00d6bc576d5ef3122f75 = 0 +f7aaac8a664adcb00c9cd9a0673273f297937255 = 0 + +[15f4f7f2-30c1-5605-9d31-71845cf9641f] +06f9de8e35a50b38234e75b9d687aa555c8bf298 = 0 +0c60fa2909d2f2eb42aaedc1bf92b30511bc1dac = 0 +0fa5371699b6dfe60ded58b066d09a3030de0b38 = 0 +114b0081b0a65cf78b7e969c5b8abdef3a860e93 = 0 +1936b4f1474c40848f1bc18aa9d14c8a5d2fe43d = 0 +1b2880b59b07cc4ed0d5881d04b02ad5c06798f6 = 0 +3542065f889473ac22d0f58dc0ab57aa3c7ff32b = 0 +6f3b6dc0f759e34f5b5756b18adc9dcb5cf64702 = 0 +7498fd4c2860af0dd142d24e8990a06e8cab2b9b = 0 +9e6d1706550c9c7c67f90b46cff1d1d07bd55418 = 0 +a25b729977f21554d89f4ac902d7a6b5752cf4fb = 0 +ccc0fdf3cfd63f76ad91715e67b1b5353dbe4755 = 0 +e3e80dfb190a8f8932fcce1cbdc6e4bcf79ea520 = 0 +fffc944119257f468f637405a17aa08358bf15ed = 0 + +[74e4bba8-bad1-5cfd-9e93-3875e29503ec] +189cd504c266cd3351d1d61155cb7164ab49f073 = 0 +52da6796e79dd6dd4deef8a049c32b3c90a46c7b = 0 +dfac2f8902624cafe6c77fad0e939fd2873a5308 = 0 + +[67c07d97-cdcb-5c2c-af73-a7f9c32a568b] +125dd728ffff04d79753d6696299cd8194b72e3d = 0 +1f90c01750e1b1c89ca8e99af71f1ba0cb094772 = 0 +61344294f3f3c49d3c8e2d17e2691bbbd2a7558a = 0 +7a42d8e4ebb490f6f6ec645d6677289331610595 = 0 +7c834712218b1a33e270011967672e8b553c9aca = 0 +85b99163533edb1a7c7ac354d085aa6f2dbbe0de = 0 +8ee444caa71d14b8555f34e912d79800eacd2477 = 0 +a57c2fe19ff62bfe4954ce7bd9b0bd1b2765be22 = 0 +c4bff57835858494bdaaa774484d7252c34df8eb = 0 +c8efcb0604bf35171f085ff9799b790a8074727c = 0 +deb2741f62a5a07ebad08cd17353369ee4cb1ee0 = 0 +e94b45eebabab8d0ab209370bcc985477689b789 = 0 + +[e43a630a-7162-55cd-ab32-8b2d01917861] +433be291362c65498372b610b98ab9362b63ad59 = 0 +4691b688e70d457d4348fbc3472ce69aee26fdd4 = 0 +fb5d5278ad3ec747ab7c3f9975f5ae07dd5905cd = 0 + +[77b51b56-6f8f-5c3a-9cb4-d71f9594ea6e] +03123c4ddc8565da09a301f3ea5a84f8304ce6c6 = 0 +42e5b53d222b541aa32cdb1ab037dbe240461458 = 0 +4d0bf0f5e96f94c940c28eabc24278aceb8c292c = 0 +508c2ffc7a2a15063fb01f8bb8fba77c65394b26 = 0 +684405940f43a3a16a5b57d6829a15cacbcc47f6 = 0 +7e510042a994f2da93d3c9bb25cbb49b38313fc3 = 0 +a588e609a665715ddaaefe388c40e586bc14f1be = 0 +db7a8747249735259aabe140e76ca2006c2284e1 = 0 +f740ea1cc5267e8012cbbb7d445b6f3346e6b64e = 0 + +[cb912096-b518-5389-8790-85f0e02849dc] +764c518502c2b803d82da8d0628075ea70d6d8d2 = 0 +d8202ba6760e000c30a7341c677cdc0f23fb4a23 = 0 + +[13072b0f-2c55-5437-9ae7-d433b7a33950] +3800b725b01fc1bb6b69e84d181cd92378004528 = 0 +6cbd6b9f5c5e06bac562e83dda291a769d1c8623 = 0 +f1f3d0f9601a04bb098cada9c5a8f2b2844206d6 = 0 + +[39de3d68-74b9-583c-8d2d-e117c070f3a9] +0c91a4c5a80b4051a1ba1d344e530fbb14b78d79 = 0 +65263db10d7ca11610179d5c808a92536158f819 = 0 +68bb4e0a7b9be42d66e429894bed953b9a8ad1e0 = 0 +6c8cd0ef2989c61c10a4b7b83828ce4e5776eff9 = 0 +702623f94a96f4f6cb3f5e8e8393eb72c2c05276 = 0 +75a4394515650f87b64866452405a0aa1110cf04 = 0 +a63fd44fb7e4dd5c6036a4d8a8892f5c515739df = 0 +b334d9055283f00b59ca116ac8e0a783b2db4b31 = 0 +decc774acc126284b1cf3e88c04a3fcb0f3ec3d6 = 0 +dee0c63b9f6b11bda4ab77bee8e6972499727ae8 = 0 +edd8884b8bb7d4255d7303236d782a315daa853f = 0 +f0fe6d309776d53bc882aa7576979cd6510a0464 = 0 +ff82bc9d392bc5912648aae5ff871fb593ed4738 = 0 + +[2e2ca445-9e14-5b13-8677-4410f177f82b] +2c8319c512c1123a39ffcacf2bf14f2a9cc30670 = 0 +588110263af95316dceab3ddd36e0f29ed36610e = 0 +776ba1047a43a9b646d5b1fcbebefbb26161ba7d = 0 +79d24ded57f46978cdd547fd5a00e7deea4c676e = 0 + +[0f5c7595-fa0c-55c8-9031-265ea63f34cf] +0b342539a674b16dc34fd3e7f1c209f66f3e4f19 = 0 +17b86b01a30deae3ae2f80dc2cdb246fd170ca2d = 0 +4ee4e2fa6eda23a19d0a27b4a06c7388699043f6 = 0 +545ee34537a092cc4884ba29e1093635d899bb7b = 0 +5fe6a0b5e5a90bfc2d22cadf9dea288c122ce0b6 = 0 +6d340a676772da2aa6f44245808de1b297b9e2ee = 0 +71d8cd90e9396ccb74ebee213306c9f4211c2140 = 0 +7896d01dd55c8f1ad32f1decd5b4e1f165578672 = 0 +7ee09437dc3100b10e3f1795f821973c2b9bfb80 = 0 +af3bde3bdd619123f34d2529b58ff0d20d340357 = 0 +d70e5e89f665d5f22170df88addaee1d41fa6cee = 0 +e432286807d29d597ed46a192575b633e89d54f6 = 0 +eb4ed28bf3bd2fdd8f8a6cfc0ba6323d66ee31e0 = 0 +eb65b08a7ae0ac1163dbfa1a9c67a5c42b965b74 = 0 + +[65043f5e-d494-54fb-85cf-e13b6ec0f31a] +10f39be469d151e6c32a774dd5c99690f17bad31 = 0 +61b6fc4cabc1cc24208729251e51184658de4c9f = 0 +a25ef44c93cbb67ffa2e9276ccf76792bd11e6c1 = 0 + +[28d598bf-9b8f-59f1-b38c-5a06b4a0f5e6] +7c65d67451485e48a076c1907eb996a169295ba1 = 0 +8b02f2b06ccc9486a5262745eadfffa762382154 = 0 +92f21180d0be80d382b13c6069e9841795a19284 = 0 +a2167ba32d33f119dee25288e84dc38825ccc2a1 = 0 +ce7430e3bc2d57b2441f10cbb7f21fbe8bccba96 = 0 +fc5afdd080cc54d0e5f5cb3529a3c0de561e1357 = 0 + +[7f9c7709-75fb-5397-acba-f980073965f6] +0d191c4daa3c8191197242966da1a57ba71dd52c = 0 +1a9135620c847eab40e537ce540a85f898d593fd = 0 +46720791b251bf3d51030a45a1688d159c72cb82 = 0 +477cca5815cc2a694ecd3b2025be260c69cdceaf = 0 +47f7b4135dc39d3e8d6e4ac88274b5dd08eb747a = 0 +50fee887853c10694a5541c20f73588afd6d6402 = 0 +5d88963a078ea7ea9d13ae5690a5618dc14faa8a = 0 +63a4557965bba3e58f9d46fe385ddb0307c746b8 = 0 +770772d2a5e0c0945e40430564fa787fe9b47398 = 0 +8a6a60400889886616f6d80ddac88f5de820dd59 = 0 +ae9857acf478fa1e1796091a51e0ffc49e2de521 = 0 +bb1c47bc10c51487e1447916745b565c8ebcfde2 = 0 +c553995a370305d99827b877c3f5cdad9e533cc2 = 0 +cdb6eaa6e2415b53ad87a934f0f8136dc940d2e8 = 0 +d7ca044508bd0d1dc261fa393627632ccce4e93b = 0 +e604acdc1f5b912d83a4fa35bb0e8fcce9bfdead = 0 +e65306f1a36934191bfa7aa55ba375136e74c2ae = 0 +f2859fdb81eff4666fbbb5c643d9443cd5e5896b = 0 + +[41288a94-bad6-50fe-b760-28007bed6cea] +ad92d7ed26e24bba97035db3ffe3e43019deaf9d = 0 + +[1e750ffe-536c-5017-b62c-84f0da8e1185] +683c2884427f99eecb84253353803ea86aa38e08 = 0 +72fb7724f36ea9a11f66f535acdfe8fc12feb97b = 0 +75e9cbbca9bf4850b004f06a007692b8aa001c3b = 0 +d366e02293d5ff5a32138ee6f95effa86f95a491 = 0 + +[aae01518-5342-5314-be14-df237901396f] +0b053a1510d89c84c8aea281d8029edc99c1236a = 0 +20c3f64af203ed7744ca98a9bd3a29508b79f0cd = 0 +2effd518e6efcbdd21458fed32dd0c12eaf3c995 = 0 +2ff93a71333a6966223735b5372a7a04862452ae = 0 +3f6d82e4b342c5fd1d39c957e5ce00f36fd84aa5 = 0 +3feae43e4b4418371ad1157397c7859779311d84 = 0 +49027d7a529435afed8caeaf7655dcf952d08af0 = 0 +4f9c640b44cce0c8f626053bd66ce5f8ba29d1f9 = 0 +6fcf7ecbc2e697afb3c693d5d0c673fa956ab543 = 0 +79d725823904dc1059e353a0b52dc5290f7551e1 = 0 +9d31a8065a50e0ed652d95ff4464c24d0dbca573 = 0 +a104686de271fd8002388b3e597063f5507484bd = 0 +adb5b4cce047d1e2145ac6d9698c8016840bfc2b = 0 +b0b130b7e3500739f53b021c8105f0f2108d69fe = 0 +c0adb5eb73037b1102cebd54034dba964d6a2f7d = 0 +e50f11c6e8904eb87e386652f69a25992ea988fb = 0 +f7326fc6a87174280fc80ee609704a72454102c7 = 0 +f956a8084ad01b573068a8cc292b99d3869cc468 = 0 + +[4278c8f4-0a4f-53d1-b67c-7986f76c9f21] +9faa9033c8972fb3a6b1035a2d1c75947a07e404 = 0 +e95fca0247d37fc9d6d10a3465d610fbf69e05ce = 0 + +[7ffbfc9d-0b36-52b1-a06e-feca771d9027] +974e3330ab7bf871bf928e1251b7feb1ce9e1705 = 0 + +[cde1d518-eb00-549d-b2cb-837b5957db43] +135ccb376d57eb6c80239da88b7bcfb963901468 = 0 + +[07f847a3-b39a-5451-bea0-0f0f0688aa14] +0ca592d5f388d7f3eabfa6aa049077a561092666 = 0 +56f549d96f4a202fcd22abb0c755ed02932e5575 = 0 +cea3d8a6a77c38ed764d0d5429dbc55bf7568ae2 = 0 + +[08854c51-b66b-5062-a90d-8e7ae4547a49] +33326fc195c5b3b14f6b5cb9d9062fe955752bae = 0 +7165e2230f98146b5f72520fea77dce25503be11 = 0 +8bdb25ec02c25407c581e0f98015e31523304a43 = 0 +aac0482861098bc9f7fc4910c469b790aa9f5f39 = 0 +dc4d9ca8887537e4cd24ea5e7259468f90932394 = 0 +ede86ec60e8d18c9d05a7abbd2926f2acadc30e4 = 0 +fa9b868f03a611ea42caaee37de120e54787e41f = 0 + +[ba4760a4-c768-5bed-964b-cf806dc591cb] +335d3ccf4919e0c0b0d5276f4b3ec6dadab284f5 = 0 +360e6b18a9bf62435cb4dcf6cfaeac78e97e8496 = 0 +4d154478fd0ebdc2c8af5d374ca68b58bd685d0f = 0 +5026724d029e17b564bd306cc7213650427ae8bb = 0 +5febf756d38194712cfb8c0c2294252931611afa = 0 +6508180a36249c6fa5e2c45ade463657020ca62d = 0 +6e4eabee4d839f006408adf62e18a98ea56e435a = 0 +71a93a61bf74d18f03d09712a4bb0e8c79fa2e35 = 0 +74da7b387784ef4856b9628ba25ea4aada80415c = 0 +789f33a04823f7e472a25fb599d1a97112b2eb0c = 0 +7fe51df44fd867da8e3df32dcf22a07ddd7ea5fc = 0 +906770b21daa9a0745e6274cf53d81ffedd33f6a = 0 +b90462e293d3c450a154364217bb36ef891db4bc = 0 +fc84a2cd0e6180afff8afd384c9d2a7b8291230b = 0 + +[ddc32c18-29b5-5e8d-944b-676104cc83ee] +189639fa833ddc57cb061e03e218c6952a60d7b8 = 0 +1fb746a848f48a6c7f4bb760fce995984e71b24a = 0 +29c7900afa03d0534604f3b1a4e2a3f2f030aa04 = 0 +2db95be7857157c367723d09082aac8677f99c9a = 0 +507a4652bcd30e6227ff4397e06676a504a99639 = 0 +b540ad2edc619091fa2a63df25d0acf0e3360549 = 0 +bf88bfd589b10ede31342f0b93b7cbb199918176 = 0 +d1b60432024ba4ab27a7132271e958e234a6ef51 = 0 +d55b97271c229b0210c7ac5aa9b9649d1b3a63d4 = 0 +e2f1658c9ad0241014e47756e7edde3c309f3dd3 = 0 +ea944e22bf895dc002cedf9d92fcfc3bc0834ed2 = 0 + +[7e49bc5d-d907-5fdd-93a4-11f1b4f8bb51] +3369672a6efb111ac60b1c7a47e271446307bf8f = 0 + +[acefaad2-17a4-5d8b-aa08-e18ef75dd0cf] +37dc501a4d80c1cb6e7ea95e3e9370c297c492f7 = 0 +8da8596a2ef43ce2e06f8c87118e726c09f0ade9 = 0 +dc0e9bef0d59b9110f22c0828a90a28a3c0b5926 = 0 +dcfff901664396ff8e3b82e2aa986e0793c820c7 = 0 +f1cbef98ea6a95183af5cd71f3063435df3af345 = 0 + +[0bcc2ff6-69eb-520d-bede-0374fc5bd2fd] +4f7730bc3cdb9983fceefafc3162df33d31863a4 = 0 +51e1a7958d9222fd3f2e80121c23eaa0e0173b13 = 0 +9a7fa29eed468d025a15365432cde811fd449207 = 0 +b6c392f8498cffad3671635b4ad23bdb4e87fd6b = 0 +cbd1aa001f2148a7e5626b06fd976a1dbe90e79e = 0 + +[85eb9095-274b-55ce-be28-9e90f41ac741] +06a56ce3ce90a28237dcbf11bdb1ab3dd0880b9f = 0 +771144ceb43704510349ed5d8b6688253f0488cf = 0 +ac9f6029b911f283f40bb5a3ba804e6cb28cfd99 = 0 +b1cbbf035ed9153361828c849c2b64a3bad4f9eb = 0 + +[de6e09b3-4b42-5a74-8fbc-3cb2aad257dc] +220c46eb3cf0e8a6d70816bbaf05f850cd39a26d = 0 +649816723f7f00b24f7386691355e946ff95f2a4 = 0 +93e34d5af5c71b83ce7d64e662049f9cabab4bb6 = 0 +ae99539acff09615d0be5135bb9a6def730ad58a = 0 + +[db6c7170-6aaf-59bb-a3a0-87668a71bd78] +32fed196c70b40d1a4145f08e590d111236ab409 = 0 +75376b620500d4d6a0175e55c5ce2df7211809a2 = 0 +beab371e1b82c84cfe19dacbf2438d4acad5d471 = 0 +c3fa508796b4745c6b99403601db04915da9d33e = 0 + +[ecbce9bc-3e5e-569d-9e29-55181f61f8d0] +55d9024e810dffb26f982299732ac5175ffa053d = 0 +b0c11e433949b3bb95cb7273b1b590d2fa8d4924 = 0 + +[6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf] +00046c7f165d3f146c1700f2a8b876330161656d = 0 +1216bdd099e751dad12808067be864849a60e78d = 0 +30d9aaa0c674815aae5ff5fba6360fb6809869dd = 65792 +4db27210d43abf2c55226366f3a749afe1d64951 = 0 +5974b8bac273d7f8cf977c8cb2dada844f3f0ab8 = 0 +6077536728e373adc6be74113c73b8353c6d2fa7 = 0 +6c77bdcbba203169fb1dd8e6f862c2c15657d7db = 0 +7fa34a12d485a64f98c8d7f81d308578f7d17f2e = 0 +93ffa921db185d4ff8b715f954a4d9b42cfadc27 = 0 +9e91a1787860eb06c9b727aecdfb9e76d0d87387 = 0 +aafc7e19d240961c1817478bc01558c0196c727c = 0 +d0ef587d4168d5948a19bbe24a6b60be866b1cab = 65792 +d0f48045f70b3233db4c291d6adfc39117566d35 = 0 +ef5bc08b33c08dfc9a3dd970326b60ba44971c87 = 65792 + +[a4542142-977a-5521-9bf5-9624df8e6430] +67dab5cf345eaf6aa6a3b3292ee87bde776087bd = 0 + +[9e28174c-4ba2-5203-b857-d8d62c4213ee] +00bdc84e55ae0b2e198a8d50a2a90a5ddfd72260 = 0 +03d2499d6aa0dd007a083b55cb06e44378a0f940 = 2097152 +0cea5a34994ddfb75c343cf8f1dfb4fde30801dc = 0 +115b2288460c15a1e9d1af23e25f473d672124a4 = 2097152 +12f19302cc5c7767343a2a56d8f3ad0eaeef363d = 0 +1719bf41ad0a2b7495523e92aa68cf33a3d3f5b8 = 0 +23ff75735c6744857e484f02c47b32d7515e82af = 2097152 +264e086062f3c39adba7997f187bd54bc0e6b218 = 2097152 +33a680e7d386c9e1d80ddf055e936708c2470057 = 2097152 +3afa9bae8d00364eda4cd3607d625e8e9e6eacb6 = 2097152 +3ca923cd0c479a4d2c8bca851f254693ca0d8f16 = 2097152 +4585cd05377e9fa8725ee3c069ce2ee654698777 = 0 +461c08f8827752ad2b3c57b4643f4a5a4d350417 = 2097152 +4959cd5b60424ef62551dc4acf8bb0bb0872354c = 2098176 +4a73bc0fe656447e24abee8a83b5a5bba2b9a7d6 = 2097152 +4d0398f457caad09dc908b704cdd5d22ea3a49b3 = 0 +57991d0b4c66dae97ee7d4a617921570e72d3984 = 0 +5b659ae5b984909a734c71fe9c53a79d07ab2e4b = 0 +5c503c281869608baf94b4fb1f56e3c2b34de974 = 0 +68ce26216445bea3a8862ffee2f7f48a08b27c99 = 2097152 +6deec8fe46bb91242fc7cc1f02674818105c26db = 2097152 +708a18028f39f575339f48d3f50c818171910a98 = 2097152 +742ee7e1f8e9e1eb16386c9862ef3e7413d544c9 = 35651584 +75444ddba47b2cd4a03fb35c6287f7f726a33578 = 2097152 +784716b66db7290ed898ef7345c9eb40792af9f7 = 0 +78bdefc54a29660302257d8a9d58632ce2a6d5b5 = 2097152 +7908e25f056e0edcecf4efcc1c5521fe34f05ab3 = 2097152 +7eeef60901208e8ffb0ccbd557ba7cfc4cb6f28a = 2097152 +803ca7975d8b5f43610fcb7504f09f2e573b82fd = 35651584 +80dddcd36c59703729d945e602d0b9a486a94406 = 2097152 +842d763f4bf0447af7b7db0ee0270ee648ae4c92 = 2097152 +86ba965cdcd4d1d1604653212ff06774bfa9f15f = 0 +8e436e7ecfdae04e47453259b764737a3c9da10f = 0 +9258820a0762fcdf7956cbe6d4f2881fde466708 = 2098176 +9ab6b8e6b47bc9541a4f1370e35348dc6fd2853e = 2097152 +9e4ec6c4f5821d7ef21897da0883852ab24753f0 = 2097152 +9fd47f296b754d4db481a3cb44fa6f8d99e3927e = 2097152 +a016a93a40de13f932d5d5468604b28c02e0d383 = 2097152 +a4841d98b2b2e5b9c74c5a829ae26cc055af1044 = 2097152 +a5fc72d205dbccef9d23fa3352729f899fb055ef = 0 +a9b34c136eefe3d75b35a49229ba011ea51a6f5c = 2097152 +b0d298380106c6dc67bfdcddd56333b7f4863a61 = 2097152 +b12e1a21290f99cf1fc4d5f90d86858bb6bd629b = 2097152 +d1312ce4ffff0aa84ec542bc39e4b5c5a6ba15cd = 2097152 +d2777f762912ca94db433d4f2017ada82e50416d = 2097152 +d57430a7e55546b9545054cfb5c34724dbed1795 = 2097152 +dbba2bd83a0ff11f5d9933eca10341fdc67be56e = 35651584 +e03c07ef728a0475279407b7370e0b05ce862a63 = 2097152 +e0ef102e3a160d62b2a23ab84418d290a9e24f8f = 0 +e2553e57468d5692f7e13f45ddc888670bcbbfda = 2097152 +e932361f0ead9cb68873b36694ff841649fe2748 = 2097152 +ed936d1c2e7cf20f532e02c35e300d125fbb59ae = 0 +ee1eef3129640c7b41eca0430e0125c79fe842bf = 2097152 +f29943b2cd167e45ad9941d0b619d8261e8ef3f4 = 2097152 +f9d4b990ff5bff388cc084ae0a9cdcd53fd36bfe = 2097152 + +[12aac903-9f7c-5d81-afc2-d9565ea332ae] +43a532ea895a4894e25e780b2c63bcedab4d594b = 2097152 + +[b99e7846-7c00-51b0-8f62-c81ae34c0232] +2ca0f33871e03f3e7eb0287701152352699e7f97 = 2098176 +31bc6334c9bbb6f35b451978106a48c10f38d6ae = 2097152 +472da6df89cb252b7076caa892575564364c8438 = 2097152 +57a0cdc1a71a17100e281a32c7c129c2189091fc = 2097152 +79c9981db05676e9e8ef87423c0be42b01cdc0ca = 2097152 +98c14a5dfe6b0c463422d06b82fb1444aefc425a = 2098176 + +[3637df68-df41-5d16-b00c-95ac8c2142c5] +0e0664cce05e10efc1351898f41443c7360e65d4 = 32768 +2224a458fa54b0964c7a039a7dae7a6f67615036 = 0 +2870dfc06abf87702a57408be3e25116de57e57a = 32768 +485691fabf06d3a7a0397e00ebfb830fe24a712d = 32768 +5510b3762998d433f539d9fb653617dcf198592f = 32768 +658d40f7d9c4dc39e427b4706db6e610aa3080d3 = 32768 +789a12fe4232fa0ac80aed75244b8f54699d06b4 = 32768 +7f5e7afd8ad7c2fab70b812f6596e9163b9eca70 = 32768 +8f87dadc7bae182e0b3adf7150a54be11dd2dab1 = 32768 +9bae2aac4542b05db0fdc000a020d8a713874fd5 = 32768 +aa0ee593449bd3b7de74a1c15b5cfb327ab42473 = 32768 +c0ad84c4221eacb1b646220de1ecd1ad62647717 = 32768 +ecba7c7681861d6a078b835c6fb350053e1b1e97 = 32768 + +[00701ae9-d1dc-5365-b64a-a3a3ebf5695e] +b7f71910c25fbcdfcf18a78aebdadbc42586c4fb = 0 +f2c9ee4388849557f20bbd0e3524e3cdc82f9c56 = 0 + +[242c1f41-6415-5004-acc6-bbcbfa0e5f47] +f1cbd4c4058284b583a3cdd4a8fa0ac82602f8cf = 0 +ff9a6fe85143b4ce8ce6af91386be6de2603a460 = 0 + +[54a738f6-630a-52a9-a2fe-a3febc0a6862] +3c77845bc09ca09d3ede476d123fc3d99d3a7b03 = 0 +ffc35dba755e880b40b38510df30c171f5f80521 = 0 + +[37cfa864-2cd6-5c12-ad9e-b6597d696c81] +194236f246f30d6d19cab91292dc1d530e3c9e97 = 0 +58c0db4e8c28aeb2b91e794c0ad2ba6951cb90a4 = 0 +72d64744643ba817ef79e07418d8b9afe5620f67 = 0 +826fb0a8c7bf0743bdf1e6679be985a3615109d4 = 0 +8eefa802b9be3cc8750bf5f8c4a1bdf8843f9e50 = 0 +ceb7c992ba1022011af637075a6bbf830afb9974 = 0 + +[9b49b652-2545-5b88-a3af-87b516beb26f] +3d1fe4443fe292dd150f0c3cb47332815274e5dd = 0 +3e4382757b4ab60e101578ffda4d54a51254a7f4 = 0 +40ff35ce918e2c826b82821ede24295859ad1d19 = 0 +5c3d01fbd1914866eafaad1bc569fae4cf230074 = 0 +628f66ba4d990e8d2028eda8805f03509ba95c54 = 0 + +[e96904bf-1073-5077-9b57-b0ce0ff5555a] +00f5dbd686d1f413f66546e505ff606979a4e9b7 = 0 +21aa56e7236f6a8dc3dc7b853dd3e7a02f4b51e4 = 0 +6784d8728ec34959a797e41b8178c17a1243251d = 0 +a59fad12ef3be0d6fa9352133199cc991357aef4 = 0 +b15926c6baaffd96f5c77cd4ec0a9c31d18d12ce = 0 +c07871d62bf67ec695d3e0124da56df6c36a0813 = 0 + +[a7ad6987-1890-5ef6-8a61-d9efb0cf65c8] +25b6118c6b95b6b1254786ed5ace381a03e999ed = 0 +7ce60f8ec63591fe07071419bc49835404c9c042 = 0 +890c94f37c2553555b7ee435988a42132d662599 = 0 +b62222d10494770fd4da5faa43dda05f001849cd = 0 + +[7e6ae17a-c86d-528c-b3b9-7f778a29fe59] +097299644055033a9f2df174f23e170ee30a6de1 = 0 +3904c46d6f513dae3cb13c533c46251e09adff5a = 0 +3c02bfe7cf8999ce191adcc93f4a7aaf6beb88ce = 0 +8bcf4a068bb42417a279387ae7ad172db2c7aebe = 0 +992a8108e1025d9093790453aa9e8972b84878aa = 0 +da650d5a5e8303f8b7540925ccd7f09e30653ad9 = 0 +f42bf8c8fac2468a6927d18a12c714f40ec0f357 = 0 +f7f4d882f1c8475a06b264fc4a10bf8f14d16c7a = 0 + +[a0d4ced5-b29c-5395-b614-ca030a679c4b] +8cc43a8bfaaa940d3bf3432e3160bf08750a61ba = 0 + +[de9282ab-8554-53be-b2d6-f6c222edabfc] +3c302833b4a66c59c32a92acafcdb97b5eb606aa = 0 + +[3c28c6f8-a34d-59c4-9654-267d177fcfa9] +9680751fabdb26ddc7a841c2115c149ec78e7617 = 0 +c614cffa8c20ac54584aa34822d771b3fa5ad3dc = 0 +c87580388b10088e044a899a98038b24e65717e5 = 0 +da0fb8f37acf6776e6b77a406dc46281b772797d = 0 + +[8710203e-1f21-525d-b237-938bdd24ee6a] +0075f31dcca0711f16264cea602c1f75ab09c2a0 = 0 +13b43e46bed5a1e664c9657c955c3bf163161fec = 0 +23e62188e9466d15d35d53530f694dde4764b442 = 0 +4ba61e763bafb30d59c183d2b0b5e5b5a3735109 = 0 +bbb623831c921a058171e7be59ac25ececccd825 = 0 +f88451f491ced73319041c9b1892b678fc08a629 = 0 + +[c53a927b-41ad-50f1-b668-0f657eff4b0d] +312becf024084f2b92fc3f61b99be21d41a097e7 = 4 +929b21acee69c3f845d96fefd6da36cccf237a31 = 4 + +[a134a8b2-14d6-55f6-9291-3336d3ab0209] +02aad4c3ff776a4f279418096e8ecbb1095a7948 = 0 +150f012b81ce9a706bc1da3cbbebd04a2ffe406d = 0 +4fc185d8009f9f7d6c3e14219fe7742f072842ed = 0 +53f455efbdf4fd1608e8e90bb6488d2408e48275 = 0 +6b405b9cb07c9d6e38f1b195080c7e69a92bd1d9 = 0 +6eb8405c3ca99b4ea783e1e6b0972c495deb4e6f = 2097152 +bd0745c543ad4b5f5c03a6b459b3c9a97edef27f = 0 + +[4552ee2b-11da-5aef-8e78-0d48532001f1] +88111bffb7ee46cf6dc51cdc9354fdff13843b2b = 0 + +[ad839575-38b3-5650-b840-f874b8c74a25] +016b16dce73ffcf6650633c609619b944eedcaee = 0 +054fb44e853b8fe4357a032cc61a5da7c6507942 = 0 +0ca4bd334358e24ce506baa0540164d110cc36b6 = 0 +1a3ff2bc32d3f8bf4627312058e1001540dcd682 = 0 +1c09bb5df09ab8cbae7e511a326008ea946f3d69 = 0 +23b655239cba80b7092d4d16829421dabccba920 = 0 +2cf84d24c359af821a496f27debe052a6214d7aa = 0 +2f642c46e55556628841d1fdbbf9f0400d3c99f3 = 0 +3032a07850fc7ce9859c69fd6d1c2d44054b70fd = 0 +3f931c6db4d32ca44d24bcf01efd2d0a853d5709 = 0 +408244b3f62b5d8f03615a1bb82fd3e312ade130 = 0 +56042381db4f18e92da1d7fbaf9939c5172c8714 = 0 +5d41efb08986ed48c555fb8ee1ba3e51617dda72 = 0 +64115773117e53705df89fa4f3051f29c7547b6c = 0 +781b62ae3e75f58b5afd4a49f70ca389e1c2d491 = 0 +8208e510e328715d8939a85ef124e5089c436ece = 0 +a44b3bdf653fb7e050b927bf3ee56be476e22459 = 0 +a9ffa1d4d63f64172f9a601921425787b22af66a = 0 +b48b97b0a8b97532596f4e1727219b850f424dae = 0 +c66df0837ffd531c95b62ae26fa7efc07ed74265 = 0 +cd1741574154caa7fd77a5e9142b6d7f68ca6ce4 = 0 +d170465d2f01a48c74c2102e3a3c9ce75ac7edb0 = 0 +e25741d0634f5ab9c6f5052e829eb88d4b6837f6 = 0 +e6b64d71070eb391d0c44ea66d09389c241a2482 = 0 +f2c88bf58f4ec7edbb7c6f0dd90dbc959d89696a = 0 + +[8e7c35d0-a365-5155-bbbb-fb81a777f24e] +48524326b6b7c89d0c37fbcd88411a93390cfe72 = 0 +4fd38a2a9b3097b16c3a9c049e63d319d5aa8289 = 33554432 +536d63fed16ddcc4522c4f7458e3a0c722bce35d = 0 +615a15862745b775d595df02f2fa829265a5c69a = 0 +84a1106a29e43dd934c1c3f665633ac068078524 = 0 +bb4f94fd1f9da336d69546461655a207e62e9630 = 0 + +[7cb6cbaf-3823-58df-a841-732a989b1231] +06e2c3aadb775959ed94597ce807112bb15c8494 = 0 +3e88906af47b5e7b0321ec8c1d94ac6e049c7eae = 0 +6574847d536ea996937dfc1603d7aed992520e5c = 0 +67afefc0c38ad8e1960bda2a3cf6061747f563c6 = 0 +6893554f6cd1ba979f438dc8d84bd6345f38f13c = 0 +8aae36a44dcd11ab529407e83d947b7ba3c67995 = 0 +a3dd36dae7d6294f28b5c7a509d8d0e46a8811a6 = 0 +b1cc796726eee536b713b4ea0b0e04a0f70afa2c = 0 + +[d3d7f49f-8593-5289-ba71-9c4f4848f489] +26a4a3057df59854fc0d666ff3d5d61aa6c7b88d = 0 +527d78f137a12e66ad496d622c2171cfa48efb94 = 0 +a62323c718fea2d3bd09a28e9838183bd070d7bb = 0 +c7ad97359f575eeb929bd52362dba95218e037f7 = 0 + +[a74b3585-a348-5f62-a45c-50e91977d574] +056a657e465818a5b892d815ab048afa029d038e = 0 +0bc115597bc55785a52bf9b4bce6dafc4af383c3 = 0 +0fdded9b19d8737138ba386ce742876270f8e351 = 0 +16b3289c38776b84264504146ec03516c82c0ec8 = 0 +1fe01baf125ec2d3a15d039ab60b305d2134f3af = 0 +227836af29b853c9e9e42a95396230bb3b0b11dd = 0 +43ed1e35d557148e8a32782afa42b294fd6484ca = 0 +59838218f6e857df3bdf046141180cb06b18af90 = 0 +612685e33ca18798ff06412015069bac3a7f16fd = 0 +8633a9c9cfd380ddbdee3ecbe87961571c08d9a6 = 0 +897ea349bb0e2835f3cfc568edcf195a50383f68 = 0 +c8b1dadef38c61c75e1e5b3c0f96b9cabe808a81 = 0 +cb9b2a1521e005f8263990080bdfa7b1ffa2eeae = 0 +dead74de58df3b42e115f91205deddfa288cc022 = 0 +e39a74dd73ad1c44b0bae94a4695eb35b8865374 = 0 +e6cb19221ad5d67d40ed7c39db445550936a3ce9 = 0 +efc09983e46af2a0a1821c3c85f37fe0987e5396 = 0 + +[6c721016-9dae-5d90-abf6-67daaccb2332] +0053a3029451815e8f6632ae8848c30e5ef42364 = 0 +63e03e98f542c088e66736900eec9a7486bdc4a5 = 0 +708fffc34b463236700a475f133bbe4b4fafd4c8 = 0 +9dce9819022523f4ea5d59252965e620e4f586cf = 0 +bbabcf08e43e55ec438b6db10e7e3dac21026a6a = 0 +c012095ce530be65a5c5b6535e399d08139e63f4 = 0 +cf26f07d4ecfcdfaccab9b2f0715e98957867d97 = 0 + +[bdc3b988-716f-514a-9703-6a7af59ca400] +754842961b781ef3a0db428ed53867ede198729d = 0 +fa73dcd5e0993a875bf2fb442dad368026af50ce = 0 + +[4c8104a3-dd10-56ac-8d5f-2af7ade365f0] +01af6a930dec2518256dc051df51a23d7fa36efc = 0 +acdb375d5b5d2e13ed5e01de490ac9360a112371 = 4 +cd0c0399ceb11c3e6ab905852556856b4a724489 = 4 + +[00bb91fb-75dd-5f5f-97ed-3cee78a05366] +2dc5d15eb97a3ad248f4c8c48df38600de40b643 = 0 +30f94ca1208b782e7d3bb20d861c72818cbcdd74 = 0 +495fae6cf175b81bbf7b4bfd4c842d38d2dc5e1a = 0 +84cc7f37896bbbf8688956fcbfc676773ea2931c = 0 +9a41384e77e9b41b59dc894a4d6f30cfe6cc355b = 0 +a60c1ba135562e5ce63fb0af3213fce60dcee91b = 0 +dc1c0f8563ce7a7d48f4bba35cb0e797679c19bb = 0 +e7348ade8545dc0106a914c0957ad296b2526eb1 = 0 + +[e28b5b4c-05e8-5b66-bc03-6f0c0a0a06e0] +0681a1cbb46cf302326bc15e28de30a68fc72c48 = 0 +0c462823dce220fba5f459944699104a55420829 = 0 +16c7c99d5ae8d3ab8f1d8e8e9b9bcf8de60a918a = 0 +39401dbffccfbde2f34f3b1bd1914f237f487ea9 = 0 +41ac55b267defb402f698084759d352cf5107ff4 = 8192 +48d0a2c6194a7ec06ce7510a735c3456a8a5b392 = 0 +718a2439fcdcbd8ba1cb3df0ad511ed7ffa9a29e = 0 +7a14c4efdcb22511ed03e9f2012eb7e3cf22c434 = 0 +aecf73ce23354ccc1984f64bcf52c0265d2caa99 = 0 +aefcec66b5d14d327b2ac1e117d768e39a30169e = 0 +b0a75bb20ff41005a1329016cf021779babbb60d = 0 +d0b008a8099ca2bea381bbaf2e34f61bbbe0d9a4 = 0 +fbc6eb4ee8467d98075f908b34a0c7793e6c0393 = 0 + +[764a87c0-6b3e-53db-9096-fe964310641d] +4b3df43a7270195b405645386c621e6278eb2dc0 = 0 +6ae90c6e5289fb4d60776c66bd1711aab733f235 = 0 +a075a774c48b896001dafd72514cca9892be59b9 = 0 +a29fbdf83020f27765e5e80391d90cdc4f972912 = 0 +d6b2bcace6c743250366bfea67d2366c4d79d018 = 0 + +[e33dfbef-2ea3-5ef3-a604-7da28c17a6d4] +3613c6bdb6c95d3fac2d83cd8cfe8dec9709b8fa = 0 +5a5d30bf86873c3d9465abefe10ac771500405a0 = 0 +66d15afa66487f22c8b943ec352d73e641215cbc = 0 + +[fbae9410-3ea5-5e4f-995e-dac77a0dfea3] +299581c6cdc70ed815c9ce2d99a1100f6e9df715 = 0 +3e354b912313932a4f912d84f993ef2eeaf63ac0 = 0 +5d4704402afb1f6f47c4b0ebeb51c353ed29f523 = 0 + +[2d3116d5-4b8f-5680-861c-71f149790274] +5ec71525b4f4878150b9e7ef2dd5b3a765eb7efa = 0 +88b4871a877920f9c1379ea77e579ec675f5b8b3 = 0 +d12c8728206fd37d64e460d2631d16393f0f2cf0 = 0 +ed79aad8c8a54b1aaefe4ac925cf5fe3fb7259b5 = 0 + +[05c142c7-bb2b-5e1a-8572-72adadc91edc] +16cff41a99010ce38b1380fec4c005ee717ba741 = 0 +4b2a17213c483fe088092bc1b9f5fce793de0a3d = 4096 +c2f9c7ccefaf4b119c5cbdc2b2722483135e52b1 = 0 + +[6dd6cc0c-bec2-510b-8f1d-dc94ae965d24] +341a84878e9c0e26ea9027cd5caf9d525c1874f2 = 0 +71f0400c7d5e3b347cd3b9f5a792b0f099b8af10 = 0 +fea33fe2e0232111556dfb2d562564b9c2b56933 = 0 + +[e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d] +10c24d438142e3cf91c01fd7771d2d90b38dba1a = 0 +1ac857ae21ee569f0a5b02ce128e5297987f39d5 = 0 +24b4dcb787a76ceac72d0e52b065d1b0e33d054c = 0 +54ecb787fbb16fef0eb2967bc8667c72ef41988e = 0 +6ac5963cac0e8fcb2fcd32cccbea5ef7c205f239 = 0 +7f49516f8fd6576716fdc6a68ebdce9bf6049363 = 0 +90ae91778e4e3a1de85b970fab305ad7b448ba59 = 0 +a89539edb07e188c47abe28a36e22a4e1602763f = 0 +adbf2de7beb909a053b40217bd7908a5237de4f6 = 0 +cf9b40bb57e88bcf1e808488392df1fcb78e4cdf = 0 +d0eed65b62278487a8f216b3e5e67b8ae1f61d85 = 0 +d26a90435cce2ad1abb7b263215e37739eb12d79 = 0 +ec31f4e8924f94de90e90d681621b837ee2b16a0 = 0 +ee331396f5c6dff7ec1eda21a42e9fba341dbe93 = 0 +f4e2f9fda5b185f8cdd6cc12341d9ddb66884cb6 = 0 +f7e71c130c673b2bb9dcf0ced908e6885a69ccd1 = 0 +fc763c49ef1ebb0fa37c54e7bed3e87d7f8f701d = 0 +fd271a237d2da76b2d5c0cd32fd8df3c6e7b21ee = 0 + +[eaca7b4f-722b-5502-8392-1e2735fc81dc] +0607bb9c1c2666c06793243f202f5225507d3296 = 0 +350cd9fa8c09964aaced9f1356b5b135e47023d7 = 0 +aa248281d766c95161538b6b1f3980c55f58474a = 0 +b966ed0895a56f257194f255af0571877fc14509 = 0 +e0de9f636ae71d7c1556e1f22eff95588f955142 = 0 +f1a2645924fd3e8efc17aae7cd98af5000466233 = 0 + +[3e78a19a-cc83-51d8-955b-515f39fd7955] +010dd2229cf9d701fc49dc26769d96182ecb6438 = 0 +2698909ed1f12d927f978d80d2cdd6030272e528 = 0 +65e2ac057d3fde0fe1081f12635392ce1deb1023 = 0 +c21e991a43c55a713044ea2bc5ee05d525c37f0d = 0 +f7a7780633553cd88fc19d472100ea799d150e10 = 0 + +[4f18b42c-503e-5345-9536-bb0f25fc7038] +01da669ad06bec09a1b40b2863ced40a4d60f3c4 = 0 +0b317e971570a7c50eeac61d0d618a121af661ee = 0 +270522af681f7e13fbe87f2809f79bb089ad01a7 = 0 +5704fc057743a9a6ad3a7131281d49271d0eaf64 = 0 +58f9720e7e2e6fdb472e235b6a8bfd2329c58dd1 = 0 +61ebc4f2c98e2590f902082bff7f54502601da0d = 0 +63a7aefb703245c8f655389585ada85ab63da052 = 0 +6ad95a41b6bb6988e9e470244d5d57fa80226ced = 0 +724889daf0e84aac34748795a22b15c7714cda9c = 0 +86f2d3a22c94767ec9b1a61017e358403c6404cd = 0 +918759d10f5431446246c13e7b36cdb6247c74fd = 0 +937b7d5062be44cabb24ed85a87bde7436793230 = 0 +943bd542c18444f3ed0bb9476a09604e397b2dca = 0 +9e4360d489844a48832ece54c053c08b13cc68cd = 0 +a96e5d711044d3c70956a063db59607b040cc741 = 0 +c2bc14c7bf8091307d3c2ab63d110880cafba2fc = 0 +c6703ab8ca3bb82c6a7f34cd6f262d49ac525b2b = 0 +cccf4679e0c667f52b61fcdbee2c8d450e5895c0 = 0 +cd26c89eb8fe90523894eb2f5ce5e9d4cdd88760 = 0 +d3bf8c405d7c114791c03182bcfbbc8ba68b7f98 = 0 +d6070e3678ed649970377250c11f4c6f1e736dca = 0 +e7490ea865f2e97d9665fb052ceb721a31249e47 = 0 +f8f85181dc96ab414efc8b97f9d73831d555f9fb = 0 + +[1537fe66-4725-5aba-80f4-3a74792cecc1] +128d6112fc11a9e6cca266905b03809f525d538d = 0 +37d14aab0fa7d79ca5762e206fc00e00c5f3187a = 0 + +[7f3e1038-61bc-5414-967e-017c9d82adda] +2658d364f8cfc912b62d39be0c3744c67504a721 = 0 +dc5ad8ae691ac7d6f307ae0397e5859628e70e18 = 0 + +[3391f64e-dcde-5f30-b752-e11513730f60] +28c858bc9d734bd5a880c0c9a641b303c07890e2 = 0 +30612242aeeac7c23c236827a1f013c93c4ac5e4 = 0 +31aa7ffe2d92bcc8010b32fe2962889550fcd75d = 0 +aaefd43a5f50ee9ce274c82ea120693228e9a72c = 0 +b5af78174ca5678a5c9ee0db946afcb5f1c71703 = 0 +bc04e601fd973f9e79dc5e7a357d766a84210ed0 = 0 +cc95315799684837ac2d523998b3fdbb8fa446ab = 0 +d4bd403fc08c030a58a89c54f974f406e9bc5c71 = 0 +e5a1de39cc6ff95ce8be8d5e7487cf859d9d4a13 = 0 +fe45e13a9baa88ea5fa5193dc9cd3b366d639b40 = 0 + +[236a7b2a-d24f-53e9-bd69-8f3c16745bb2] +534f164288b4739313949398cdd292b762c4c713 = 0 +8ff911e53f3bab06a0b2d80f4cfcd84946512c0b = 0 +cb50cdf218dc2b10a7c0b1fa81b16ccaaf52aa08 = 0 + +[422c787a-46d8-5bcd-977a-e425588d3a91] +115ef12d31ee996a04db9ea0cac941d27a1fb8b2 = 64 +355907d8abf38f46b0d55b31d71552ec991f0f3b = 0 +3cb5c49932c82d262256d47207635f2d7a5e0f1b = 0 +54320f3c541b0ae5614e3860821b197aa7c1ecca = 0 +8b11378bf298ae82c77d449dafd4eb2914509a67 = 0 +d9543ea428afc79c38aa30bbb4d664ec00c0fb98 = 0 + +[f2e7fd27-9209-5b1c-87f7-086e6f5a9295] +1cb4fe02e47af59ecc926eb756b930bd241a06a7 = 0 +2b9d6cd2c88864da1919b95d42591a63d97a569f = 0 +46d4e7a9b0aac9fc2b3ffb5459b9a5098f676191 = 0 +6138d0aab58f86f78bc28d865010f354906cc409 = 0 +64d8c1fa224825ed6e6eac942a081e8c53c97505 = 0 +8b37590cd55ece6edc4759e006fdd520944bb4fd = 0 +a9526cd56d25516505f630eb12238c682088b51b = 0 +af9c3979fb54c9d03f5c274894f586f671e3a5fe = 0 +d27356ed544fad4f9c979fc2f25dfb5b89798360 = 0 +fabeb11a0538ea484a57a165b87aa1ed995f854d = 0 + +[a5944310-3432-5d93-8bb2-e3b5eb62a58f] +66373d90ed37fb5cf345a22b2a6cfdd983109ca6 = 0 + +[d5fb7624-851a-54ee-a528-d3f3bac0b4a0] +07bd4de7d5c3b6e498229bf2288a922c1967ae89 = 0 +177682192a03af0524774d07b11935bdd3bc18ca = 0 +a221743dac513b1c852844af8d596458fa4d1bf4 = 0 + +[58298e0b-d05c-52ec-a210-0694647ebfc7] +3edf313b891e88061282be460bec175f8309fa1e = 0 +5a3f81c4f0a3c03bc5de7663f9d559cee80a3506 = 0 +5d294ea233e80546d0c60e56db8070d352ca4a57 = 0 +70a5c8a0cbd500e3366289615bfbdeabacbdf926 = 0 +71f3397038f31288d888103b6157fbf038842568 = 0 +7b8cc45acdd6bd7dd7c8a16715ea828fe7634260 = 0 +7b8ed63f9ed08ef11c39f6d94f287a465c525612 = 0 +a373c7da987ab7810b79c939a416096bd2718d74 = 0 + +[13e0c4e3-fd7a-51bf-9e22-ec7679f18909] +4a083fcf53c4efe5050ff226d3888b93ca764742 = 0 + +[62b36e50-1e62-5d4b-8674-689cbdba93a3] +39c350110965350e077248b770996692ce5393e3 = 0 +898361c92bed996c06e6368b6cbd002d49254fa4 = 0 + +[fbaffd56-9477-5acb-a91c-8d53cdd62c7f] +3f176ccac6a552b4d8fa1fcd10bec49131d5d06c = 0 + +[a076750e-1247-5638-91d2-ce28b192dca0] +008ec9dcadbdf2a7361148705fc71e92e7e461c7 = 0 +185393cca6a395c6989a124d802c92a810a6ef91 = 0 +1e0037042b365523631c63bb67237a5d2dc6cca8 = 0 +1f92ca4e7ba36bd399f92e9047ba22fd90b78ab7 = 0 +292e3c74e71df0eb88a51f1d784ca4365a243484 = 0 +2a371851aa6d673f30e4891d7535c1ddb098770a = 0 +2c21d3a619c0f8f14809ab809921e5be56cea81e = 0 +35d24569d400c810ca1119e339c5cf090cc07cd5 = 0 +35f0c919a609706d4189caf29a76013488269e18 = 0 +549bc3680c3c9931a4aadbe5bc3bf063cb835a11 = 0 +5ca36740d9d39cafef78aa6ef2f8ab7f15b0518f = 0 +5d38ff84602c8d5110c000c69af2ce3f42fac78a = 0 +607970e3954f88338912943085cd29f65126f2da = 0 +6a7d7321157a291157597dc44f4f2a068e6795cb = 0 +6ded0d07a619416778737b3c087cdbfbecd64ec5 = 0 +706af21f76cb375ddcbb36ad9172cfca12ee52e9 = 0 +74c6759ac73ca54f92c74b5457fcac5bef7df32e = 0 +828e7d27127f928a28f15f65d6fa0cd22f9a1728 = 0 +8bc871dc89caf6bca76756f773efdb604791b782 = 0 +96f94a26bf53320d95f2c8714d25fdd0ad10c8ba = 0 +a07d7099b92753a876a12ddede2265b679550cbe = 0 +a0d529e19004805ef7722f3fd6f3374635a8cf95 = 0 +a4b7d5947b93d4d48b821fbe9a944ac3baed188f = 0 +afdb5df0d3d235e5be10675e8f90068781822520 = 0 +b08458350e39435b38c9b6420eb558c601907877 = 0 +b42fa9399011afdcdc99e901154f74eb869b687c = 0 +b69e3239efd83785522aa407b06b2ec59894a405 = 0 +bc54be1a9f0e5877eadf46c5d345ddcb84574ef3 = 0 +c1cc49692676549836dadef455bf54ddfc979817 = 0 +c6036588c893f9661369068a07b28485a6dd411e = 0 +cdd190f8e6c578ff8423eff992978517238be721 = 0 +d445611db7dbfaa3f71db200c5d17aa265fe4ef8 = 0 +ebee362be54160a11e64054a2f30569b7173cfbc = 0 +f3bd416168c2effa84c1ee15d4359fbc0c664a6c = 0 +f7b1864001b018954c53b09165613c28a65bf326 = 0 +f87845a337e694c8951fa7cba81f28d53b2c9d82 = 0 + +[a9c8d775-2e2e-55fc-8582-045d282d599e] +6b03efc663737d7033191cbdbc61f1852e84c203 = 0 +7932f253e557d3203c8d427381681b7586ef37c2 = 0 +90ae564fb35a58c9c12321b50c1aefc58ec3b0c7 = 0 +d7989d67faac2a82536fb04672866ca49265032d = 0 +f067a33af5cb1f214d2c77332305bf3fed66eeed = 0 + +[484db1fa-5b09-57e4-b4aa-3b3c8d692513] +291a8ecce9533d6eeff3346aeb8af8375928d96d = 0 + +[9d1c9671-1ee4-5573-9bdf-56d4f028cf50] +01511a087c721dbb3be616a85bb68aad13bb8b5c = 0 +04ad02c49809d4a2eda87c8da058d68e789e1a72 = 0 +e141b82f68d79cfd586add3e7126a20c706e1cb7 = 0 + +[44b605c4-b955-5f2b-9b6d-d2bd01d3d205] +480751f18c287490f39b076ad920afab1ce82a10 = 0 +50231571e2ea97a717b88ed47791d92c663f1a2a = 0 +51d1afc206b39e14362858f3375c49e1c05f9847 = 0 +738135f4c7a859807efa6650b57e324fab172729 = 0 +a7b42744cc7f7024446a29b09a17e1b04aed94b4 = 0 +ac1efa49bd5e4979237294a7c24ab7245fbc0b6e = 0 +f06cd4cc96f42c626f19d777dfa255b1250db0a9 = 0 +fcabd1f679cc5d21302e521fd3d86b54a139a592 = 0 +fdc316d4b0e534efc1ce1e7cbb69a526aeb6e912 = 0 + +[efbd00a7-8d38-570b-a42f-2b6adcacbb8f] +0af9fd3f28cd5b8e9514e50e2c4d294ae6a9c8fb = 0 +c7175b69487de71e8a027ef6009c6364c0d745a6 = 0 + +[96374032-68de-5a5b-8d9e-752f78720389] +00e8f51aa20e3ab35b59ebebdfb6d074018d1ef3 = 0 +3354545d79b4a598c1d2bfd847f60ecd68339093 = 0 +39caa93ec967ddcc0ac8403d49490b18795b2185 = 0 +59ed4392dba891393646d109fdee1f50c5a65bbd = 0 +67574177f25b6041c9047eb4479412b9a659ca5d = 0 +811ed7d7891d494bcf3f659fe1c2baf1e5f5e4d6 = 0 +8e3984ebbc219fe52b0a3951f186bec226db8f17 = 0 +b61bf03d5854a1292e44cd213845d49a63478832 = 0 +efa7f03a5467189b58bec892c14d59dbe9839bda = 0 + +[0a46da34-8e4b-519e-b418-48813639ff34] +2f31ac594e0f28892f57edd003660fc45b0e1084 = 0 +57392715628b9612aba7a1b81a1c3c6396a37475 = 0 +b7503725a2bb8d5d2c6b64a51419d64dfb860104 = 0 + +[00ebfdb7-1f24-5e51-bd34-a7502290713f] +05196e66cb0df254dc22e2e8189b7c5ae545066f = 0 +1a7ad0214cec276ee73e81af0647927a1b470957 = 0 +276263ebf1ca9c4cffae08c9749daa03b9a52ace = 0 +395662bd87affd5d276b604ad4a7a66dd25d5846 = 0 +3eb416382f12e385d36ea7da8dc1417b7d09cb69 = 0 +401690d2234b50047a6a6274564288db1ed1237a = 0 +4d6cae92c65aecdeaf22e35a323988e778909cf1 = 0 +57a60fbb7cfe2dd049c914929d4dbc0d58c81d35 = 0 +729db0c46d814b85fcf349d4cf4a5586028a2c2d = 0 +a21ad39ea79ac0127b2ea9fba5716eb2554675b3 = 0 +cf374919080908d0dada1c14a66b328b0ef17016 = 0 +d10c504b30385e484fcabfd375d5018adf682d9f = 0 +daceb0cbfb3b06a135c8b324e041a7c214b1d11a = 0 +eaecd7929130cb66b20c74229e653d20d110194a = 0 +f0b850b226f0b75698f8c48a9fcf26b0b75b1356 = 0 +f7098037108f831af3d73075381a3e95132267e4 = 0 + +[336ed68f-0bac-5ca0-87d4-7b16caf5d00b] +042a38abaa1e1efdca8503a30a6735625d3fb7e7 = 0 +2101155936396c348c85e33dbc331edf83ca0d08 = 16384 +2c58187270213455d15577e85689767f89cf8de8 = 0 +38a36939e086fd97f44912beea812d9fcfeaf33c = 0 +49e914ad55c36e036cdcf51ade9ea87d81f34299 = 0 +7e0c5fba80012f29d7365f2d85e7dd1d3ee08a20 = 0 +8b43c4d01d18c891c0af90ebf8dfd889856b3a93 = 0 +982d5751d128172be43973552d1ce981060283fd = 33554436 +9e0f1da839dccc001177c3dff83fa60413c4de43 = 0 +a7066df5ff21a431d43fb5a96c0659c5588b3007 = 0 +c8c4c3b6acc6a3c3ad86294dcad6532a5ba46bb6 = 0 +e08c50da9c28458f8341fb9e9bc749e4aee46255 = 0 +e4e772bb613c8eea6b76fd37e0e0754e11d27673 = 0 +e9f151b085d0ceb1ab157c8ae5d91d80446c6de4 = 0 +f8826a278862d70f7d180b1fb31acd0d68dd1f77 = 0 + +[5d742f6a-9f54-50ce-8119-2520741973ca] +113e834a4669602cf5bd63587e84935ff9f77e68 = 0 +59037c3cd7d3a60919e11a03b5cfe54600644725 = 0 +648d243221adf70ab2c7cc06014cb4d71a6da242 = 0 +89ef2173db204b1788b0bd5f601a640d41e21631 = 0 +8c3e9e04d2c91be8358c79d77cde991c721813fa = 0 +90da3b6fb8d24558d23ef16920cc674e1a34f57d = 0 +9686ca0143a042cbbd6f4a083ff403156e3b997e = 0 +98e274eeb4939aaa7a6ebd2430a731c44a44ac80 = 0 +9b95b683f13a08723e693c2685ef51407f008dae = 0 + +[534900ff-0018-54ee-8ba0-7a6b38ad4ca3] +0f19aac8e811b446539992ac66e505a86856a735 = 0 +31453b8c873925f8dda4549c5c35b8d4a8ebb01f = 0 +746505a74d6b716fef71d593d58de138dc756ee0 = 0 +b72c32a784731e3b586bbb8285d0900026eca64d = 0 +c053b1d81e2e57330d6e5b7a7e6cd744678f73d1 = 0 +d63ddeeddc0054d5d4790a0abfdee20e8b0b11ec = 0 + +[052768ef-5323-5732-b1bb-66c8b64840ba] +2caa0935a0c9cf61012a9ff26bd6e2260423c562 = 0 +ecbf020678ecfff7a1888429b0d3b0575d29c762 = 0 + +[3895d2a7-ec45-59b8-82bb-cfc6a382f9b3] +1e61c1e11b185a5514a6b591517d7fb674183ea5 = 4096 +29049524084d11335c82c6f13f25d06d962fd041 = 0 +31063fa208d11bad8b185c38372d660c60699a5d = 0 +4421cd289bc0a3e1cae2fef31a07f06c53fbd275 = 0 +44f54e34314e53e4aa3197c15913f5271315ea24 = 0 +4d0c0b46ae297c1128f89b123c9be4a3a47ba259 = 5120 +68d96bc4922fd7c9c0b860b84419df486b07bc9a = 5120 +8cb5c27cfd79841adbcec2e9fe0746b0e7945743 = 0 +a690375c99853d3c2126551d168229b67c81b414 = 0 + +[c5f51814-7f29-56b8-a69c-e4d8f6be1fde] +106d60df96fc9e53209022f0343229ae593c4ae4 = 0 +123bafd6f0c4edb97cc08d7c749b871b4f056c69 = 0 +1e3b110b06eb0d92633689b2b9a88964a0efc157 = 0 +22f4799cdbb038fdabbbf12fe2d92a3cabfc2ab1 = 0 +3c374d3bceb1d06ebbd67e5d00f2fc533efca53e = 0 +3cdf3d582e030f251f3d329a17d60e23ebbd1cf3 = 66560 +51728b1f85eba01b6bb3537d31e4b67fd0dc852f = 65536 +5ab568e18ff324887f05b0c12fbd4783e09a0eb2 = 0 +72c0744d18128ae9bd00829b3575586243afe6fa = 66560 +78a8d13044b19e41efd0424554a26ab8dd8983cf = 0 +8ad446335847fe73babd8bdc35b49723388ce32e = 0 +9560b480c4642183b17d3f5d5a751a1dd502d07e = 0 +959a9ff344d2da7db8c5445ffd3f82b9ba3c084b = 0 +9dc229600e70223b4ab4cfab7bc23e4b36da7bf0 = 0 +a047eb2425bbd724356521a23593b686d612a12e = 66560 +a1a36a4a0f337736ad2407f864d14fbf02888dfb = 0 +a34087c1a208debe17a3f0bd87b41045357578dd = 0 +a8b2e3ca93a3a2be5b525f3bdf09425363b823c9 = 65536 +bbb3ae7005d8cb0af21341ca9d3590e7309c5f23 = 65536 +bd343e50fc2c2a830ed2baf1387fa8f43295f0fe = 0 +c0cb8c0ea447ab4c9943e2a3653b0cebf8feb216 = 0 +c8badc7cb74a293563dda87dc0990843300e91ce = 0 +d56a6187219807329b8a37a291a1a0d166fec7fb = 0 +dccdaa0f39477e9570b5c24d0b15ac849e93582f = 0 +e9586eec095cef76f69273278e25e3cb2058bfe0 = 65536 +eddd27ac3b6a28fb1e78e94ab868082f9db80a99 = 0 +fc18bbad0c2286cbd42b2bc8b101663b18df38c5 = 0 +fd6bcf0ce096e19ab4317d0b412b3f1244eb509f = 0 + +[be33ccc6-a3ff-5ff2-a52e-74243cff1e17] +009039dbc03807324ba315e792ffcb76f8ec0a53 = 0 +0721783db9ac4cc2c2948cbf8cbff4aa5f7c4271 = 0 +1b25050c0dd239d1d8a55d86300a604a8b1743a0 = 0 +1bb9162e2613dc2c7010bf66cf5973d0898839b8 = 0 +1da524d321686e3f124bb2555914110c98bce646 = 0 +20790dd9d8cfd358ac2499b7780e814f1b8dbfc9 = 0 +25b395403b32c20e511ae8ade60119318560e0ec = 0 +3c06b092fc7baaa5691b555106f5506f03d6460c = 1024 +4001bf0e03e569864d387ed488e15e9af826995c = 33554432 +4bf38e7a0349ab85e8716815eb31a1dba1ba7a48 = 0 +a0f06b1a97eec1fa3f84f2dec1cfaa2da891c3b9 = 0 +b04f4ea250744c720f7bad594f520d0cfa085fa7 = 0 +d2d7e28acda43271551ebf7ceda3954b50b74d02 = 0 +e16b4723ea6ecd72fad1e8951b7adfcc873afdd8 = 0 +e53cb20cdfa4b0a1c6a8598a4a7ce56ee33fe500 = 1024 +efd50d8efd94dcf0c5e792cdd5b1dc878c65a5f3 = 33554432 +fe0214e942a347742da415565729a06efadd6595 = 0 + +[2152367d-059c-52e9-ae52-2d26002cb4a3] +bb3e67f41d29324fbc1200413fddaad33024f2ba = 0 + +[58537def-5585-50ba-9aa0-2cfa4b6fa1b7] +3d6abc3d61102a991a76cd697d6da738fe1af44e = 0 +55c1cbaf53baf3d8e91cea09d818de4b184177bc = 0 +55fbd5a4d2b6f03269d66b8d6c953cb2cd855290 = 0 +5b0700207029d43a9e9a11353a9100732783cfc5 = 0 +622dfa539fa53c3eca434cff40af37ced69d533f = 0 +7bf74078e7f298c3fc6d4b7006876d6671998d2a = 0 +88c44b70edc1d0a256297f91f0ee5bef774d8d5c = 0 +9170c8a4197d5de0421b293f7f181793dddba432 = 0 +930bfbf5703a7a9e837f343a51057c95598c7976 = 0 +989d7adb46e3161c9a4a34a78e32f5b830f8b905 = 0 +c7954d7a931fcf48e017a943e4ce4cd13ae6cc48 = 0 +d35f14057c0c9d464c969c0850dd8b5d883604ca = 0 +d9b78c53c8223833412557433a8b5970b6d6e7f1 = 0 +dc286ac19293aa621ac086599d2249a8c6193afe = 0 + +[345a2cc7-28d8-58b2-abdf-cff77ea7d7f1] +a89685255992f3696a55a4336b8014f51f02005b = 0 + +[161a31e8-61e0-548c-99b5-a49067c596c0] +1d53d083da021fed77d7d0d374ce9c9070574eea = 0 +70d43169719de43b45726afff0b58db72b80f463 = 0 +991201d9f433aeaf443d7bdea051fc95bdefc014 = 0 +c4b4fc90a83924e4c4c6fec44df3e9005de3e4d2 = 0 +d100fac87bf96c5ca3b03549a3162927ee26f4fd = 0 +f37eb6d31a84a82a3e78ef57158633b2b2875bab = 0 +f5634617dd8812dd3c7cf77d340036c83ce98a8d = 0 + +[a710fa0b-f7e1-5400-819b-039bf0891bbd] +46aa05a105653dfc127887aefffe41b3c571868d = 0 +7b1bb59d4acabe72bc21977d5434215ab424eb16 = 0 +a516c6cfa500c5c63240235e64e66346ddab0e79 = 0 +c9dee266f1f732b2118b7cf26c42cd49d4fbf831 = 0 + +[6983957e-075b-59ef-813b-23d35ee22189] +3deca2c8c90c4239eb9d3a9630a65466c1f983ef = 0 +5682f7ca50e76ab94b3e06a364f44287f9c9e3c8 = 0 +65d2644bdb40e3c35b83c3f307b614e961777a09 = 0 +86a463db2b2ba1d18fd2436cfd6a41497199a6cf = 0 +c3e7347f5e350f0ba6942eb4c2018a158610ca3b = 0 + +[dcf8f9ac-6917-5b56-9f70-7cfaa7b944f9] +6351f628976d3266a96d1557d5e64e0b0d829b93 = 0 +a5fc072f2d6a047d19b518efc6e4e1da4149942b = 0 +bc4ae3eff24d03b9693a506f952b45501d498d94 = 0 + +[7ec2a2a8-e61c-5617-972c-ff57ecef9621] +0f31aa131ee5a4f988dbd17fe38db84a2ebdd489 = 0 +4bc2fb1ca92d439090a92065fa0319338bc022a1 = 0 +62132f6b8841857181688269220b9fb8dd0a9358 = 0 +634dd86ac831d0042d68081711885e44a0454ac0 = 0 +a539047060066c608b48cf3ead702bfdbe6c10ac = 0 +ca5d8ddce7dcf750459f18908a43ee106fbc9cc1 = 0 +ce3fb290b808e670b5ba84d4d9f0a78226788835 = 0 +dddd92a218d06b00239a00be15e3e107779a2833 = 0 +e2c26b4e4caea4ce8e1f64f1eb82f1f8fa99739a = 0 +eef452a00a484e30bd4d4a786f2e5e59907df0a4 = 0 + +[1b53aba6-35b6-5f92-a507-53c67d53f819] +484f045156cea4ef4f1571297f10cec525e4e3d4 = 0 +f9112991f933ecac6263277961be54977291ffc3 = 0 + +[1a0d837d-f7ba-5e72-a8f8-b8273492ab4e] +37ce8cf28b4bbcdfa3479e1f7170ced74012bd6a = 0 +63ef260d6ce8f369b0b7ec6202e4776721481477 = 0 + +[62eebf14-49bc-5f46-9df9-f7b7ef379406] +387d53615351c67123ffa10c5d9402baf88c4cf7 = 0 +4592125dc41cf1a19ba92f3127b0c9c790068fea = 0 +79dbc6682cd664ac5c35373ca8849a5096fff7b1 = 0 +e2a652efab8cff75b489479a9f56cc5279f81663 = 0 +e7dd063398bc712253961c9b8f0bcb19b72a3f56 = 0 + +[159f3aea-2a34-519c-b102-8c37f9878175] +0448f94848b58af10b5eb87673d17d0a436d4fc9 = 0 +07a1193847af08ffb234b8d00188632fca571def = 0 +0fa5949fb347fbc0fdd39344ab0c67900b81a04c = 0 +10913a18895481fd49ec661ff6c7a5730814e962 = 0 +18c56380dd90b48123bcf1cb579c1882fd320707 = 0 +1f40f46bc2b11a342d80611c4e3f42ff2300011d = 0 +2ad009c9369afa76383709097614e42e98a94272 = 0 +39500969af774f0a7b687be5c42a3b1fb3118165 = 0 +3b61438bc1ed36131a0f1548eeeebc00a5b6ecc9 = 0 +3c84b0eeca4640d151f43691994c3dabaaccd82d = 0 +3ca577c4e3331afeee3770ec4ab1ea951cc450e5 = 0 +3d38413579ce4d0ab696d54321fc09c8a5b33ec6 = 0 +4cddb4fe0a0c715318dfeb607e04079dc9ffa5ff = 32768 +4eac5aa41eab304000551ccd5ee352bc98482811 = 0 +4ebbc3a4ad8c23dbe5b81a5e239ec17e8b0b99f6 = 0 +51cc3050d30f36e56dbb179d57df9163f5d2d5b9 = 0 +5c1c751133cf1d00426dba6ca57e9f5869f7ef11 = 0 +63352a59ef5121442a0bf753d37251fd8f28849d = 0 +65a8c771d47501cdcb4272b559244c78b0a36e7b = 0 +678935371b0b31383ea7e301f5a5662b40a1b70c = 32768 +79c34782e384637b4d1a159a6a0b7fdd3805b2eb = 0 +7bbf453044ba4736da8e106601717c30d87f0398 = 0 +82140cce77695fd5800626cb8012815baf6d0545 = 32768 +8c289524b1ac2a7f7ca58037a452647aeb7ed6ba = 0 +8c7fe716d9440d562485eb6bab42f8fc20967d1f = 0 +8d340a7c3331a344c5d2dc419908a21fb79b7bb4 = 0 +8d679af5205b42e9479e3a1e8836aa8f3cac280f = 0 +96d35ffda2b224c872ce0d60420a4ac144350c35 = 0 +98007fca91c49f911770cb08f1aa01346ae32c24 = 0 +9a6a8ea7984861a41e34ebd29bef2fca631dd9f4 = 0 +9cda5dd33e9021a0db6f88a19dc8d60e8636d47f = 0 +ae1c4258dc40f963a3715f251681cfb712b676b2 = 0 +b343cc6572feb1871c001994bee65a6942154ea7 = 0 +b81bc6315aff9e1234dcc88b615696cac6603a5b = 0 +b980baf5151a21e9340d339f19da7e05b4596d2d = 0 +c3aa6eaffb07399ca741229e07700ae234dc5d73 = 0 +cd923b1b7d90c16006b2c923f0c16277ec2392e6 = 0 +d6c14465cef4759115ebbb42253cc818a8e74eb9 = 0 +dd939cf624f9a1b74ebc25c7996008d5ec42c9ee = 0 +e288184dfa59242ed0d440b5ff7739ae8ce6621d = 0 +f2f8203ff77b8459cc602e2a425f5133046879cf = 0 + +[221dce02-7e96-5d1b-a637-f113167531ab] +5d4751e29024efb1c8aedfe75645dcc1595d2058 = 0 +6a6113f768ade321f4d5695bb6fe27ea086e1e91 = 0 +73057c36aa994c55687f359b550837ecb3361b72 = 0 + +[49dc2e85-a5d0-5ad3-a950-438e2897f1b9] +10056bbfee2a01b814408f5a7e6b1b1234e67c1a = 0 +2a8a8c6b21d7c2718e00777145388914fa8cfe69 = 0 +2ec7168c02fcf37eadef838651372e6e9a197fb1 = 0 +35eb6eb3e37839581317c0c89bc48b76fb2ad5d7 = 0 +4548c2204988c0d6551b0a7605ad3f4dee17b702 = 0 +5b18dead931afee5d11a64713f18b94b8f68a1ed = 0 +772313093a9524fcbf9577835d0cff02874ea8ed = 0 +9ad4294abef6820e9842262af2146291c1a361d5 = 0 +9dfc02abfab4b74a138cfdc7b6669f58eb885673 = 0 +a1a4a8df1415d0a5ef928568ced51e7b62482d52 = 0 +a28ed36957610d6b5db8599345661caf79ac75ac = 0 +ae9ab47c48af0b872f16f8c3a2b7f2824401346f = 0 +b71a43ffc9fd58277baca01ccfae1ef7bd768825 = 0 +d338f4aaa36f7a0c6b4c40933d47f38ec3a47c75 = 0 +de7ae8b46594ebc24b65ea075a67ae25d1324925 = 0 +f42f543794be62f11cdff3a1732f6f69f3e9396c = 0 +f7b5556a9ebd0cdde45f15d1b2cde331fe5efdd4 = 0 + +[5eea6763-087f-53c5-84f3-2f10e0978102] +022ff46b065e97aad08bca975e9d95d31aa27225 = 0 +07cbf6457f8c0c466fb561be79b54a69b3df8164 = 0 +144b7ec52eeeab7cb25934aa5f935818d935779f = 0 +30e1683aa8ab0ca9e1727ca9490f6b5e9a9b86aa = 0 +3f338492cd8014573d1a54de30049110d22eeff9 = 0 +5002fabf6c3d275a59060b5e6ecc8fd5d19d39ef = 0 +55d3205fc27265e74d1eaf623c87be5a5cf72aba = 0 +8710c8867b644650c3f96ba19085eb671b561d87 = 0 +9bf790ad616656b79517e13f14342042bf3238db = 0 +b1f614fd5ed9655c426df1b7615062903fdf68d6 = 0 +d0492567d5a9bb1fe46f34016f125982c7f62685 = 0 +ddbdbbd93572ea39af45c01e45b0a74938df2e35 = 0 + +[cc78a3dd-804f-52f0-8d12-0c5273493045] +00760d1eb9302de5d3bc6f3d9e79865b8953e3c4 = 0 +0f0f4ef7a800caf68a7da2c392ae0096740c0b4e = 0 +33dc3f73b130176b27921b186f59a1bf07bc3e7e = 0 +36dfb54fb3764af58041ea5862730475e89bfb3c = 0 +47a63c372208dfdf11c1547fc30bd343e2bb918b = 0 +86372a3da1f18e9b54aabdb39ca76de92b6dc891 = 0 +88a3f43eaf743cdac58fe855219a3d13cd3affd6 = 0 +df1211cafaa99ddac9d05be6b910d0565c53392a = 0 +ea85a37be262d9304a715a8dec1d26e15f5000ad = 0 + +[ace4b8d5-fd3f-5fda-b564-522057a42c15] +175c7a5a78d1fcf7c601aeb633149256f6de5b2e = 0 +36c92bb4f746ac45ae0ebee05c2454ea9be23ccf = 0 +3a5691ab4b3de285dd83e9275b0e40bbcb722514 = 0 +54379f35b24f11bc789a23cddeb764cae2d71019 = 0 +5764707ee5ae4cd02ac136be6c2b26880bb38cbc = 0 +68ddce4897dc8fbe9797960b7a2c7be200ba2ff9 = 0 +6fcb5ad9efd2a64b2fae29cfb862e11d5b8a7b4e = 0 +b8d257e9b7591c0cba6b5f86b92c07ff759c44ea = 0 + +[54eefc05-d75b-58de-a785-1a3403f0919f] +8ef1e207dd0321bae9e6e5d7c339bcc2822d4f65 = 0 +cf6d90b2a473839fca0d9084314c9bc602e93ada = 0 +e1516f126f26ea8ff572ad20e22ecea23995db84 = 0 + +[aafaddc9-749c-510e-ac4f-586e18779b91] +225b69924ca83818a6e2c28d55cfd46d50ddd532 = 0 +e2077d5e20b8d362338745c3f4282a7f567767f6 = 0 +f2ad24a647a0f97102ecb5f9b984e77ade205165 = 0 + +[81a5f4ea-a946-549a-aa7e-2a7f63a27d31] +6ae27341324fcf637ff1a60171600f42472568a0 = 0 +7f64ce9d79001d25eb1de06fb226b10f525dcff9 = 0 + +[324d7699-5711-5eae-9e2f-1d82baa6b597] +02e3d3862eb26a70f21a362a81d7445aa01c52a8 = 0 +15ab16f4a12894c2fb97d7c23bc14f0cb8f91c8c = 0 +183110adea7daa572f71eeb8dc71f65fe9d2e2dc = 0 +267b1025e4dd737b9cf54343c3f2803a8317d9b6 = 0 +3a401b9adb9b04c8645cb5e893ddd5f5702cece5 = 0 +49725550410eeb3b827f11ccbff4b35ff5da5fb1 = 65536 +4cf4e2185ee7e7f4a3339021ed01b335587ba45a = 0 +52910fea3f87805a2755fd5e8e3b9ad04cd7c183 = 0 +76cf24739159e720533677c76290461b4292be91 = 0 +8434ae6abd79a1e44744e93e58afb2d1234c9037 = 0 +874c6eb1e2fe09282982fbe7977950d71bec76ce = 0 +8e2da16f24fc47c324db16f0bbc851cc8f022268 = 0 +a4b9929a54dabb8ef7ea4207fc5245bd12ed7095 = 0 +aa30eea34e179afb2872cb3991c7b0060d9c99e8 = 65536 +b176bb45f0f9017d8845d5d6bd7e850978ab6b3a = 0 +cdd5060d9d1e684ddbcd5d6888820eebc0f0b8f1 = 0 +d091d0df68bce1606b1b613ad9942ab64c0953aa = 0 +dabf07b409b477c84eaf6dba8ad17d90fd666c41 = 0 +e1c57a24027666dc856598e952ecc2c9018f53c9 = 0 +ee6bffc639ddb58a758a792267110ba9e43a4836 = 0 +f2164f86d6678910610e094d17c681b5a528af07 = 0 +f3935b60a6c82a69f4f63073e924deea62cb05d4 = 0 + +[8e462317-f959-576b-b3c1-403f26cec956] +60159cc3e1d54100ea8ebc61f5fdf477454c9073 = 0 + +[0dca132f-5d13-5402-9020-a5b78506aeac] +29345216787ab151784c423b14a59c1bebdcd79f = 0 +4f0d633c02d57e54c9d162cf4cc33777d9327cab = 0 +7725fc2ebeae83e03748f416ca6cbe12c49e46e5 = 0 + +[9961bab8-2fa3-5c5a-9d89-47fab24efd76] +248c7f8ead35887e86df4a9b428622742e7265fb = 0 +292b881f958117a0087bb6edcea62435e616b070 = 0 +3209edebbee4da2e11c9e47835df650a3fe0562a = 0 +3ab43a281ad7b4c318917638ff281e9dba656c06 = 0 +456175aa56d087e975805ef0eed82569f6659e8a = 0 +58d67088ff816a29b63c12721613f1a2d0f82383 = 0 +59b815c07aa4165112743b6ebdbfc7095dfc8728 = 0 +60070eb4af0786d9cc8f70e11a3f9803bb2856a4 = 0 +75cee0b50433edc4319459546aa2423c6fd0aed2 = 0 +a48fb728ce8674afd86da4d0ad3b0bbfca5ad9c6 = 0 +aed0d73a5611a2bede96d73f26069048f16d321c = 0 +b1cd3e1f4931e3fd9a0249ddaf981f8ccb992aff = 0 +b31483f991cd83eaa5ba113eebeffc593364043f = 0 +b525002623f42733142d08a766dd7c6a1edfa7a7 = 0 +bdd97f465b4b4fc90ef5e0e8af671ec7efbc0594 = 0 +bf89a611a5e8bda5e388edebe70bd7fac7b6b3dd = 0 +ce1c474d96611056a50b00c162389a50db26532b = 0 +df1e048d5c2bef92a6e16d3456d0df75ae006fc2 = 0 +e149a32b78c7a5570da1674f1fd1d4447eefdc49 = 0 +e631fd790ecf4548fd6a16337f69a42691d0082d = 0 +f08e61fe1af6c1caddf1b8cffd6aa65fa7edefd0 = 0 +f1311654f9d8ae8de3aaaa65de7f25cefbcde773 = 0 + +[92f6eab1-61e3-5b29-aa81-669a19de860c] +1d88b038aad438d17afa2f3e1e164a211d20eee3 = 0 +bd525cf5e6042640ef5c8a3c5bb122f5a6caf027 = 0 + +[33729d6b-6e64-5c8d-a7fe-d444d17d628d] +1404ce96d15352c4287103a01b43d7a28906d04f = 0 +977f5d22661ae59da7582736ba6282661b542911 = 131072 +d9f228dc92d9bdfa3fd0cec61e087a9d577ab2ce = 0 + +[f09f1ae0-d51d-551b-9f1b-1081442009d5] +0bc506601f5912492bd939b1ba30a988ec8fa7d2 = 0 +5af676d51c598449322d6592e2a9f8d5e985f645 = 0 + +[3cb15238-376d-56a3-8042-d33272777c9a] +4e1d1d3d299c1aabcbc774474bd19568aa8cb8e9 = 0 +4f48a3ccbb8ac723564a1ff65a0c03e729d822a9 = 0 +5a506586a6cf86b0de804212b177ad2a9ee09d53 = 0 + +[98700a41-f20d-59c7-9e81-44d0470ae598] +06544f5e707cc10ec7893c39f765a460ab2361b7 = 0 +7d00a39c64d6ed793dd1095785190487733bc45d = 0 + +[608a59af-f2a3-5ad4-90b4-758bdf3122a7] +175f05a40eb0280597f62e25b3ae9828b9d0f48d = 0 +461ae518784517fa6385f390da5562d8a3b1fe82 = 0 +5cf6b944bb5f2ba2e4e3632b8ffc808e3a996ae6 = 0 +5f726acc817b23160fec51f92b813bf4679ecbd2 = 0 +89a00c30c6ac386fe8c1ac7ef58423de1bea178b = 0 +8d3d0adce198ab19c0b76c50a3d7392f5ac9b617 = 0 +bcbc4a693cbf738161ea3801bc13344187b529ae = 0 +de4c35db3e2340d4fd4368c23403fae6e7e126d1 = 0 +e28798177aaefd4a97d033ca26c620117483ee3b = 0 + +[9410fac5-19ca-571c-9dc6-233cb5eb36d4] +4c81e77b8ff0b683c8253d72112056d7c515a5f9 = 0 + +[700e45bd-7bf5-5563-bdb4-6e688fe06d37] +d3ca8cc1aacdff2916d48e3395d5940684fba86a = 0 + +[46823bd8-5fb3-5f92-9aa0-96921f3dd015] +4c7e430d16bdb672518e6572abfba5188cc6bf63 = 0 +5ebd4db513915dd52c6f87dc5630603f26afd719 = 0 +980d92c5f67ea6ccf2c745ee49ce5fd30edb86be = 0 +bb541bceb2b670f553f487de046b82644add52ce = 0 + +[30ee299c-4142-5be6-b36c-c88c17e1d32f] +491651e1774b2e061e71637c8236037a61cd736c = 0 +a1d419dcc937678dbd5811c0602883b53011e558 = 0 + +[45d946b0-08fb-586b-921f-9097f984cf64] +0d865948ced62b9867de514c253317cd13243073 = 0 +332667a90323c5dd78c63efb888908de3c6060ed = 0 +3dafbc7930580faaa73b8d420c679ba89f62bd99 = 0 +75e4a2aa64c0049ff5798fe52b26474b1e61bc53 = 0 +d1e3fce2e25477314908d6de4c7b26e06d723f5d = 0 + +[609d6d7d-3426-5c8e-a8cc-9e956266946b] +de0469ab1a550d979443330a281377c1d8582e31 = 0 + +[8bab3169-4815-5aad-9f88-5df82062e999] +624cabb9933435c8f4df41a205e9a46f2688e98b = 0 +c4960410f342f0c2db77ca9b94a38806c4cfb47e = 0 +c645202a0375584a9628febb921d4f609703f321 = 0 +d7e4e80e13f90e05412de294ec80979f0968ee5b = 0 + +[2b7a1792-8151-5239-925d-e2b8fdfa3201] +56324d68f84e34c100f2bc05789049f0114258f8 = 4096 +c7636ddc1a3227ad460f34ec06b5c1d4fb568152 = 4096 + +[6d41d727-4175-576e-a481-7d3ebe35fbe8] +04c93fbcaa3cd343d646a3b70f873527f7d81bb6 = 0 +9807a64442eb820e972e681f96cfd3a7862556ee = 0 + +[40e3b903-d033-50b4-a0cc-940c62c95e31] +0b1be5deab6ae2014b20590fe48acbba4fc57cb4 = 32768 +3921bdb0925068dbbf782c1f837f4d747f16529e = 32768 +4c8e748756f255a8b577ffb837e233cd01325774 = 32768 +4d636a3fd61e6e60b8659a873f3bd0a79b299d18 = 32768 +75f962316c5d56be3ba1491c80e1d97ea7d49576 = 32768 +c4d18994e7b4f6a5d8de6f88eea681639528a74a = 32768 +ca3880c7c977a68193bcf2f570008a6a57eaf9e1 = 32768 +e9c9597731750d3e2bfab58f20da39cb16561e31 = 32768 + +[fca6b79a-5711-5ae2-8ce7-7abad8b9df70] +0766b617c851efc54a5c3d1388dacfffb92c628d = 0 +17b58b36d6d8df12a4d88a974b0cf807ddb70ee4 = 0 +57524ebb89be5d55c736d4a0cfe3b81bc62d11f8 = 0 +623e472c81897e18cc3c53e409742ec81c16b8e5 = 0 +63f7217fe0fc38632b414f904ff53dfe50efe066 = 0 +658c1eab156ccbca5793d023eb41c97b1ba3cb12 = 0 +a699469096e626fb137f3f74a318118426ed20cc = 0 +ac65250aca7d94900f952ea470d31a518bec0c62 = 0 +d5448b26639cd0f2a3108dcad5935365e14f8421 = 0 +f845014ae429d170cfad3ff25cac364e5fd96a31 = 0 + +[ecf26e93-935c-5e64-9b21-bc8ac81b4723] +3196694bc10f73c738457a2151eeacb2b04748ff = 0 +6ff2628c15cc5c17efbbacb4b3ecae9bdb3583a1 = 0 +aebd353646bc7efe35e598b7b9625cd80c03ebe0 = 0 +b47fa7d5992f2965a4afc482432a088d5093cb35 = 0 + +[276b0191-6968-5de0-98fd-2a81b0f3910d] +1daefeeff1269af121c71651cbe5bc32942da95e = 0 +304550fa15fb2e8cd9ec0c4707c75194073036a1 = 0 +30c5ffd2d38dbf779d260e23c198a32edce2e8e7 = 0 +7a9df0a0b1aca12989ab8058bf66e08d1be832c0 = 0 +ae2b8957bd794770e1c124f93a079f5aac03be3b = 0 +b66db64954181f3d45715ee03f5ad0a0e8ad33b6 = 0 +e54c822a5858f93fba0c94695a728438655bf72c = 0 + +[4f4ee721-4970-5af2-8560-6c1d960e3231] +08603ab624007950b3458c490474b3300d8dd261 = 0 +1464e29ba7713872a15f93c0ea5b0fff2ebf34cb = 0 +499bc5a3d0f66cad82976d14235498252aef5b14 = 0 +7cd3c9b9ab7be4a959ebb99db63ca47968c938a0 = 0 +89c2133ae68ebf6153bbe4dbfb5c686fc36ef302 = 0 +9d5b4299dd1a016a3ce1b82e6bac00acb351a510 = 0 +d5bd03dd58e19b28b28f6bbdd7b8bc0decf92a00 = 0 +e6e33e67535528c25e54f791e5638d155e17043a = 0 +f4a5df9e4b7aed00ef99296a03ab5ba82f1724bf = 0 + +[de03306e-617a-5495-a07b-a6b7842ad19f] +2a3bc7b92f3e9c8f287d1e9a3ea8bcceb6846028 = 0 +5fbf45e803990755462c18e3f7fff7de9caf6a29 = 0 +afc67477c548643a81ad31dab4159c9d865ea419 = 0 + +[c8f6d549-b3ab-5508-a0d1-48fe138e8cc1] +757f6563493048cc6b1c1d9aba1b18fd804f0715 = 0 +8996838f9a3794d55be566f4b4ed4001312a9675 = 0 +a3e41688429bdbd4b160b13d72a1799ae2e90626 = 0 +a7b50375d9e377d51f539099920c96f57ebe15e3 = 0 +da195a4fbca3678b6ea3fb0b9ef6d0d609ee38d6 = 0 +f02c3beec3b009fc84738ddd992d59d91340d1f6 = 0 +f45bd4ab3a389215baac0e3c9f5f569179371e75 = 0 + +[0d51577d-51b9-51d5-9c9b-f56d3e616bfa] +6dc1dc528527a32f6ae5a4845ab3bd53e74d622b = 0 +7a7813fec55ff3eac4808bf73adeb425b53aad8e = 0 +9aa781b4752fa270f707c89013f6fa7e5265f24d = 0 +e1917f044e754c36949d24503d4a9a1440021451 = 0 +ebe0d3eb05cf71eade88a8ae343f73d9fc6e81fd = 0 + +[e9a8cd0e-445b-5884-b692-2dce5a6b6c76] +2b9df669f32a4f9a3a2d179f85fd674925281cc9 = 0 +4920b5b8806d303ba95661d32eb7b7c789027b02 = 0 +92d3f724a7e41ebd4d5d246e8c190d949b7a9c34 = 0 + +[39d38320-a18c-5735-a4f5-135970cd79b8] +697e3b8ef9ef9e558387797c02787f9707ead0ee = 0 + +[e2554f3b-3117-50c0-817c-e040a3ddf72d] +1ebc2114a792476fe2d9c297e7c3604b24a9ee16 = 0 +33862e62204eb7535db5eea3bfb84ecc16edbd2e = 0 +33cb6c31e72bd958e409d3dcf868f1a8a16cec58 = 0 +3dde8c21e24eb61f5a7b2d35e03623a1c57d2a01 = 0 +41a830aedf059c4a67ae0e90ad2801aff69441d8 = 0 +7b34db9d90e91c298f2a2c00335010fa4befaac8 = 0 +7d674d17b1310cbe26d083ddae412a451d6d9501 = 0 +841530cdeaa302c8630f4c68b52bfb015123879d = 0 +8a7cc69cafd1cae00b1356e2b2a4400242d6f3a0 = 0 +98c06ba48bb139ac19c5ad43d91cf196fb05457b = 0 +aac279f6a07c92d5fcfb435f64063672b73cf198 = 0 +ce11ac71c8817fee585350a43bff2e24daef601c = 0 +e3258188f6d4c30e302eac48364a6a28f5560fd3 = 0 + +[4f6c22ed-8407-5d7c-965b-da23e1d23af6] +fbe85e38fbd351ef6999746bfdf37868e8ed8309 = 0 + +[34f1f09b-3a8b-5176-ab39-66d58a4d544e] +13b43fd7c403c87ddbb1a6c7f00b12c0dc90601f = 0 +1b053e7f8d1947fd4b57649125ef025b6f46ca8a = 0 +28935f65b9e5807535e6c3244b0bd3ce2febd47b = 0 +4d7d805863305622f68a48223918e0ee0560db79 = 0 +588b53a3fbe0e8ff635e73f889c71aafc2e6ec54 = 0 +652d516e633596b8fec29b0c2b1a8b69d4670b07 = 0 +87e8e9b07c0d2953689c633b2e3f4415314ab7e9 = 0 +8a476dc8b999a73f8fefaa9c457b7455bd6adc81 = 0 +beb5f444ea4c368d5191aa6e02447db97aaf8a55 = 0 +f47ba5bc1108f5c6457a2d9dfedad425a69ebddc = 0 + +[183c5c77-57e6-5aef-838d-23cea72795fe] +22a1535442ab5e46864ed6a15d60765f6855a07b = 0 + +[aaaa29a8-35af-508c-8bc3-b662a17a0fe5] +05d23c6c4d56f1177e1a0eecd1d629942b876a58 = 0 +11a709c24493c2d83279a77da425321f4bb7fc1c = 0 +3c4c28ec034931733735c8c49e60906f4b4bf989 = 0 +3f1fd76d943cc8a4ab600f692cc6622d1b8fba76 = 0 +46f7ad51f365ac4a9e8219857296fb09b8ba0ac4 = 0 +4e43f006f9d66f8a481417a14ce9d8d42a183ee3 = 0 +538efbbcf6fef61a81b9a95bcb97eae01dc11282 = 0 +540a6122df714a3cffe3f8abf5ca3ff08abad326 = 0 +646cead756d755f0faee08d552daf7fd3cd0a64b = 0 +7b740ed9d2c2092ebf922d5dc87b6dbe1731976e = 0 +a496ea01536d8b363567178b6a4cd2a8186980e4 = 0 +a8ed856606a241d91d8c3755a066e7cad7e4d706 = 0 +b7dea1e783674c576eadbcc349a084285c794f6d = 0 +bd084403ddb2348f9ae80eb98a46430fb8397684 = 0 +c72d19cd64b047c39473974d4ff1b2c8268e279e = 0 +d10b6e24abe07e25e490182af93cbefd2dc4f359 = 0 +ea03689a96f5a4601894959a028b390e9fbf7f73 = 0 +eae74fa9295565ae136772a02db6685cfb03cf88 = 0 +f7c4e80923631626519633ffd8983dcb8bc67a3e = 0 + +[5900dafe-f573-5c72-b367-76665857777b] +290f7b97ab8e6e15ddad6b233958843fdf6f8d15 = 0 + +[53a63b46-67e4-5edd-8c66-0af0544a99b9] +2212b48daf4c961182d57b437f88cc483448cb53 = 0 +63e0f3fad620d97f07d85dfd4b9d491923b5091a = 0 +64a4e66772ca9d929bf4b545eb3bd79dd82a2441 = 0 +65f84c20825f05b9e1f665ee771e15d0eb8d3913 = 0 +818c95c6b8bf807b652875e39e38d6c95abb6096 = 0 +9c9a611bf869af93268eddb501f57d549972c7b4 = 0 +b62f269e1fa13457f17c35a1d71bc77fc83483c5 = 0 +bd2c187767ecd419dcb9e0b6365243d7f37317a5 = 0 +c9e2b14e31eeeb406fd55ebc7407b47faf56cbc4 = 0 +e1a0630bd65df13851270d9b5c2ae281bf60d177 = 0 +e7fe89087407fc77ce87a9502de471eeb4fcc5ba = 0 + +[6c391c72-fb7b-5838-ba82-7cfb1bcfecbf] +1c774ed5ad0f5f4b6ea9dd863610c2b5ab6260fa = 0 + +[523fee87-0ab8-5b00-afb7-3ecf72e48cfd] +10f6b24a8614b3e03ea7e9ff115f56f1bb57fe04 = 33554432 +2794d4f55ac9ab5887239c9e28f48a761f78810c = 0 +2e87ac35cd8a67627419a58bc1aa01dbf1a5200b = 0 +48ecb6c455cc78f5040ceaf0317bc1dcb7f78bb9 = 0 +a4637097ab191b5f1ccf5f665c3bae70e8394865 = 0 +cf1076d08799a6c4c6733418052ce7d1bef3ef52 = 0 +dc697b1deb68286ea9869103dc6e8379e58dde74 = 0 + +[ba30903b-d9e8-5048-a5ec-d1f5b0d4b47b] +32c01b14596fd6619f9858d6d469294ed517cd3a = 0 +66c4173bbeee5d472cb250cbdf727259cf6e26fc = 0 +ce7f73b019ef9930f445349598f1e89edfd14495 = 0 +e89efb7510d6ed853dc4e19a62eb1a95c86ebf26 = 0 + +[944b1d66-785c-5afd-91f1-9de20f533193] +1628c7da97f0a3a2a600528ccec8761753737045 = 0 +4bf80b243567e3b052c27c078bbaa09fc1bb5a10 = 0 +7bbef285947a572d5a2133d40bd049e4ef18a895 = 33554432 +875a0c8ae95def1f2ed1bf8542dc23a210f9e1c8 = 0 +a0ca6a1f6422999efd72f3bf66de91172904e8f9 = 33554432 +a1d470a884c0d641b6c03ff67f5de261d7f2eaaf = 33554432 +ac6157425d18850718c9044972f51b351c5cccdb = 0 + +[6b39b394-51ab-5f42-8807-6242bab2b4c2] +52bc25f44233dd30233ac5db9b006af54c7764a7 = 0 +75f9083519bedff000ad6214b095e0ccbbb72e9c = 0 +dfe9bd437fefdea78bf39c931b40c73d5c54a931 = 0 +e45386a73ddda71beef25b99168adebd9abc1bac = 0 + +[19ecbf4d-ef7c-5e4b-b54a-0a0ff23c5aed] +2de709784ed10c4ffab20ce2495b382e163f2c00 = 0 +3413ecbd244dd34a04b67a95035762088588c137 = 0 +40f53cf63d3686f57222af9b6d4bd7e598cd42b2 = 0 +6d7659f47fbeba8345225afcf4c3e4ff3e6155f4 = 0 +a8b6a8469e1d969966404ae8d771fbf573c39716 = 0 +dbc3b9327fd6e4c84a88a1d0c2c6fc43a6d66793 = 0 +e490f4042a53354b88c5ad88190173f1eab3101e = 0 +e6dd7966fd1bc4a9bbffbd725f37da3a9a131a79 = 0 +fd8881663fa2c12da4cf96b04bc487f402d32bf9 = 0 + +[460dee8a-b2b3-5fdf-897c-8d28408122d5] +0f7d16d698c4bbb78d9b5681f008c8725a40c1ab = 0 +2198eda418c04b50f98d9ddd3aa49bdf890f7af8 = 0 +5265a6d37fe252d5948cc92088d64935ba6a7d63 = 0 +54bbe3e8bedc2c0dfc685b43b6af52adee09f330 = 0 +8d7e2495d948fd8623a6a6c3d6d17ac9069a9a2e = 0 +93b57ccdc31539622051c36ff941ea8e1fd474e9 = 0 +a5d158faefd640af5054575641925552483c8cdf = 0 +b61bcbb6ab33ff89f961fd5338ca0946c73e7a5f = 0 +c967becad426bf053ba45d7e3665754661f37669 = 0 +e1c37ffb093b3f201f024497b645a6d2a20287ee = 0 +ed968248bb7c59444211fecd80f235f10fff0d45 = 0 +edd66258f789699a26bbaf4abfec33670c9f7f3e = 0 +f7bc9186d4617546e0ab742cacf4ebae968f7b71 = 0 + +[2b5bf9a6-f3f8-5352-af9c-82bb4af718d8] +24a627c9238e2edb75c85bf922d280d326a82a66 = 0 + +[a2cac450-b92f-5266-8821-25eda20663c8] +220b57b558b1086da747e5b8cd1c5b7c628b365a = 0 +519d0fd18068e2cd24c952696501580e54ce7be7 = 0 +6ae86654fcb648faf1fdd84551b6075730bb3190 = 0 +91ea1e9db60d6e3f2dd45384afd5cfb279841bb2 = 0 +ad1245fff8568b6a8c8b7b71172f9425e1c407cb = 0 +cd4da2ef7f173bac73d7d461fd5509c6e0b602da = 0 + +[35d6a980-a343-548e-a6ea-1d62b119f2f4] +0a613728153178b7b6f7912f18b0d89164e6d564 = 0 +0c23fcc97ddb943fb48dd46ef7629a5f2f27d12a = 0 +844bf3bfeb0a1d8ef6e964ecd0fb2953b83d0347 = 0 +9d1c7c72dec24612ba162cc6445705fc0588ead4 = 0 +d69b8254d6b39f4a63e7dc1e3c07cbf8505c7da2 = 0 +e883f597332224fcde2172a68d1a5c4b8d711b4f = 0 +f0acf187b04f846e4508be3901b9fc58a035da7b = 0 +f5542f6165653267b71f3ae9ef28629e77c83e79 = 0 + +[3da002f7-5984-5a60-b8a6-cbb66c0b333f] +17218b2f9f48e83b8d377603f1a96b1e91e6645e = 0 +1a9563fa0f1c804527eabb4a9c5dc6c96412b7c2 = 0 +1f6dec30fd1b40456cfc735af04d873da53cca4c = 0 +204aa2aa2cf8885fb22b0f88b57cf696b5c34d4a = 0 +2b0f939c11cafc1c0a266d780d45474d94c61380 = 0 +326822a6e3697edcbd281ea46d88da3bcb12da04 = 0 +367821e5f1860ce5d10419f2c3616824c0fe2b5f = 0 +3f61f04fb1f283c822811d6c3f49965a9e86f829 = 0 +3f7820a5cce99febb3a44744a74fac67026f4d9b = 0 +3fedf2023a39ec92114868a48c740f9273a2ba08 = 0 +4816539024b4924135b16ee41e6503b1ba732307 = 0 +5153675428134a4d843b7ac351fa6165b1817b7d = 0 +5859091fe41d0be0ee07b1ef56acd3eb2948a6c7 = 0 +5dcdaf1cc0796a87b515b8805188e0b56ab74794 = 0 +5e0bf49f374103caf712da9607c1eca5cb518c35 = 0 +618e10579799d76bc949632206f10ba4d2835f74 = 0 +620e5f6db64da04a3826d837ff2c6f453894312a = 0 +664068d97b4a7ce67a667653dd3d5071bca59e83 = 0 +67e4c73d1bca39ec6602c836dcdf9462beb2455d = 0 +6aed7879481393310596638c52589ca27de710b9 = 0 +792dfee18016cdb77c56e0cbff4d0262e4e7779d = 0 +8238e6e9bad67df0bea3e577034ccac914311ca8 = 0 +855875568a05e43221b3ba828348fa7b02fc60d4 = 0 +8f08fd3b4eab62a80217e857f443b6d4a91b98d6 = 0 +95afb932376b0b4cb70fb56863395451d0e6ab11 = 0 +9831630232804667ca791b53cbc4180c0ce8665f = 0 +9cb33872502518a17bb8719f639507fbef9910c7 = 0 +a0f98987261aa41bc188b5a7707e7acaa2f71da1 = 0 +a846a5327a683c1fadb0fa400155d2635eb21b8f = 0 +a8dd9a3834b76e48db138141ab586325cd4efaa6 = 0 +b6ff061fd5b95370a16be309ce8dc6c4db42a2e8 = 0 +be848d6777c71ef36a619be7218083183d0f0d7e = 0 +bf47e5a90c2ca6123a834e0065d6a1d5ca27ae79 = 0 +c2800cb6a44a6b22cb9527bbb8509e010d194a94 = 0 +d1a315d006aac5bd2f8c3dafcd5ff791d5c5759b = 0 +d23a8abc2c04cf9ec90bd38fff18bbf9b2e74ada = 0 +e4a382107d7b5ce5b97c32e5134101af9c53cff1 = 0 +ed6d14099d9257708c85569f2e932e1b9efb0b3f = 0 +edcef6837d92941ffb0d10cffde5ca82f1d0aa89 = 0 +f05cefc6df791ba860e0a7e8cc766ebb410bf09e = 0 +f4d43274e2b2361f7a44140fd8a8043cef9eb411 = 0 + +[c3611d14-8923-5661-9e6a-0046d554d3a4] +009a4fc2a6ecbdcb3517ee8d7145798947a9b630 = 0 +07e018a2d17721285a15e203887f09699d5f0c61 = 0 +101823d221339ee9e65f424ee775f54ab4f66fa3 = 0 +1fa3fca158d7321e8366171abcb893ecb8847284 = 0 +303ca0f8da7af1be8aa8cdddcea95d8efa52fa98 = 0 +3224e6795e4d69a59722bb3765defc0ab9071242 = 0 +32835c2fc51862845b214d38143e98a211f03d1e = 0 +39cd6264adb85bbb14f70e09045d6da4d453d52d = 0 +3e561ecd023aeecefb2a8f56691f0e8acc49ea7e = 0 +43e4d6621a612566b7eacd7986a96549c2fbfd14 = 0 +4b98a5d61e1e52af1befbecfa37a5239a7179128 = 0 +547aa84437765434e9168d798cafb85a7082c789 = 0 +550b26e28d4b0224b3d3ee1d97b9efd4a0f8e249 = 0 +5a1788d8dee48336e405b65f11d8841930067aba = 0 +5a45895ef8f2b8460d4ccfa108579f577a79d2b1 = 0 +65b0c0db66596cc942a114c700b66f6ac969d9a3 = 0 +6cf4eb0239888e72e6fe6173abffe93419de4534 = 0 +74b9c816b2c3cad07fda49a3a1953c384b55ead0 = 0 +7f5a67bc5c730560c8a4e4970ddb955bf2d9be03 = 0 +838cc3847e0b2856536c9f7de5e335db3a3429aa = 0 +87af6fbe4c9f9e96a53c0314f119cc7f3f369b5a = 0 +91e3c10cc2c783ebb86e9c06e1b8dfcc31179208 = 0 +9fc96bf5baf87d01e6f69bcb2300965400c28719 = 0 +a1821f2d24db092a8c324d1c35c8c2bb90a1d7a0 = 0 +e90b0e481a9a1b43a9884fd99d8bdef9f9652fa5 = 0 +e9b086d92ef6875bf4aaaae8dbc08c2ae4502333 = 0 +eaaa67bb50004eff939d192bf5acf2895cc72b0c = 0 +f6916b661e21254d51b550b4b4555d0d71f394c8 = 0 +ffae8f44001a5c8467e490cd5bd1a221772f88f0 = 0 + +[5ae59095-9a9b-59fe-a467-6f913c188581] +023660ce7f66c33ae3f676ece3acf98419dc23b3 = 0 +0c2af4c25096996981e06947f6ae242234bf7c36 = 0 +0f3d493f87a37354071facaea7075701c466b2f5 = 0 +1c43e5bc71d6f8fc12a161017cc6df13b4c429d2 = 0 +2ef0f9937b0de33fe1256c499ea0d66d0c6c0370 = 0 +305b85d2a458fd6f00f450c69677fa96509ea74a = 0 +7183ecc621ad58266170cd36178b1c1a3061615e = 0 +830936435de28ec1989728cbbde36f335d760a73 = 0 +85e21ff3321f8993cd5a4c5fb1f66554c632f553 = 0 +87e13ba4a1bd683608bab2907ced90c8edf8769f = 0 +899ffdc03fbae021f0f59209ece5880c51cae659 = 0 +8f1f8c3c84804245aa111fb61f4814ae73a723dd = 0 +92957f7870f5b19fdd02bd9ac347016bc6237097 = 0 +9f69a2a734855116336838a6a73b53afddf4c36f = 0 +a6ed074f58fb7656b55d1e208abce678c8d70b61 = 0 +b753e8229081aa4c1af9bbc4b233c93b4cd98b57 = 0 +b98ac9bce4e4390e16a1d4c8d27c798d07a65549 = 0 +ca2e384665e86ac27b29579c3b557758bbe4937e = 0 +cd03f77b65e00a9b4375f6196169a0fa7dc59eac = 0 +d479df3f1e0a32bdfdc5f1965699df16aad6842d = 0 +e5fe33a2c75dc32a462511557420e6145df1bb7e = 0 +fc67047ee79a8eaeb948af6ffe4b2f96942b23eb = 0 + +[9dfd92bc-d910-594c-87bb-77ce028084cd] +02329d6d0839c00c1f10de82fc11489403fb8ecd = 0 +393060b033781bb63481dbb5672548dec2d34aab = 0 +b681972a16e6ac244f30687c7e681875aab68d19 = 0 +ce5315ed07883424d07d94aee16acf45b5eb538e = 0 + +[861a8166-3701-5b0c-9a16-15d98fcdc6aa] +15a86147542c1e5246cd9d15814e9ae31b8ea2cc = 0 +2fd2dcd6cc09052e9799096a96dc14845aa587f7 = 0 +3c08c9af9ebeaa54589e939c0cf2e652ef4ca6a0 = 0 +5a7b050bcbf0ef1db878aa57d274342f72de02eb = 0 +5e3d1b34adac5c7dfc2bd45d5515b34c87d6c9b0 = 0 +69265d09ef038907d6fd86ef595933d9b1097ea4 = 0 +84fe2fd43a945007fdf192bb959de24c48838435 = 0 +9188f5a941223e29a4b0718069d0b02dc399b41d = 0 +956a6f5d82945085e0216fd565a188b1b8685d9d = 0 +aaaf5f48413f2003531b6d00918d68a139511c44 = 0 +d1b68720d0109c76c39b795216b95e47c46e6b4d = 0 +dca8530bfa4daeafab2f880230bf4a018a6a938f = 0 + +[2431c0de-905f-5065-a272-d48c42d73feb] +e5e69f584922559d46075730ba4f8679e11afc93 = 0 + +[bbf7d656-a473-5ed7-a52c-81e309532950] +2b874443f15470ed904db679d7a5c5f16d0361dd = 0 + +[d427f087-d71a-5a1b-ace0-b93392eea9ff] +a5f466d6cdefdcb8ef621828f51e2fa0ec1e8de9 = 0 + +[1375f997-1772-542d-b6fa-a8ee39124556] +20fa71a6378317c87691ce1b8147a7221a9f969c = 0 +6e2e48ca3be2f405d519c2b26eb81c10a013e848 = 0 +7f4b52d56213175df1f613fcb8dad49b2071984c = 0 +b2fe0717127f11f3d2183a06c68f30786ebe4bac = 0 +c2f91cfd4e43c6a9768d15b49d3e0b2da22e02ac = 0 + +[3e66a162-7b8c-5da0-b8f8-124ecd2c3ae1] +5762c3423f65b2ed0d3d729846cc96829d8d8380 = 0 +bf4176444aa07c43966cf7b5a9cf7e3078f84be9 = 0 +e0be4e7b3075bb2693e2e0e0bb5657ea49ce1cde = 0 + +[34da2185-b29b-5c13-b0c7-acf172513d20] +053a696dcfb11b30095b54e0466fdc00079920b6 = 0 +07111174de2d3f4e35881e0704ea8f641badbaea = 197741837 +07cde024c3291652304bd509359d3e9fcb0861be = 0 +0a37517349e08663f921b0bec96d8b34f1b09bd3 = 0 +0b398b8e49a09315af55a1d7d19ec29911c7bd89 = 197738765 +0b4b92a2d9f868eef869c3dcb3e7df7e2a62eca4 = 0 +0dda698907d21ee5389eb0c3857ffd5354b247c3 = 0 +0e013385d9df34b3fd33ea3311cee9115ef845e9 = 37765128 +0efce72d06da55837eae2efbe08bcf52f1ea37fe = 0 +1699438e4e7c2c4c5ba23989e6f9602f1b8cf145 = 188825869 +188de7a47f874609be576ac69bf8ab9739b7f073 = 0 +195de1adb01aa484b52cee9669d82c51dc14a013 = 0 +19e68663873813fe19788e5c1ba1496b6a46ffe5 = 0 +1a27ba9e388099ddf03cf202bb7498b0d0211357 = 0 +1aa2b90b368251c6c05659ebb884581c998299dc = 37765133 +1dfe1e191f09bd42f633e1537d4e47f4f4618992 = 0 +1edb00fda5d9c0b60f501bc6c530d95876f7227a = 0 +1f302582dfe2c02945bd1f6d75b360a85ad617d2 = 0 +20ba7911c20cd70dea9f15ea265f435f3d028019 = 0 +20e454dd62c1c36f9eb39164f9cad5da8ba421a9 = 197741837 +226bb437efc1f5927c77e2f7e0526da776264ab8 = 0 +2436d35cfb4d390f397416ec20f43de5c8a61f22 = 0 +2458d81963e14e44433f73bacdda50c5e3435f25 = 0 +25344358800310ac9797401d32ffc8060a0a4e1d = 0 +2583c3827f938e3943eaeb0bacf404c8b2e3d55f = 0 +2c91b7a12d1f206f06c902a2b687cc2587f7f614 = 0 +2d0f59007ca318c76d1c9007774cfc13d7134ebc = 0 +304683587e73a42fdeaa696e8ff5cf857ce8cc3e = 0 +348c29b813b48d6934ca92f0937576d2f2180f3a = 0 +3541c2df0ccf918b97c5d8b5dadd5aa9b1e3f890 = 0 +3582cf14dc64798b8cca0dd8fcb55c01bef038b7 = 0 +36d879c25cf9ad4d451e5f1e13c73f16a79443ec = 188825869 +3bbd9536360ac0925b4535036b79d8eb547db977 = 0 +3cd0bc660ef1553855a66fe82a4999ad6ffbe4ab = 37765132 +3f2391c34813b0aa930b4f08aafa92a9a1477b65 = 0 +423a025603d81449878057f5f4e20c0177215950 = 188825869 +4496a6404ba4091f1c0a05e7163b5d952cb033a4 = 0 +45140ea4a9cdddf0c7f81ca6c6cf03cdd17bd925 = 0 +4aaff0777481d04470f5a7261d738a22e8ecf1c5 = 37765133 +50c6b364e3d4255c50e7eb66e7dbd9fceea07302 = 188825869 +53b706bcdb12ad49bbf7b68d77f4589aff0a8b80 = 0 +546eccbeac2ffe3f80ac4854b7d02e853ead2565 = 0 +54ab44412261b7e1de9d0b47242790ac27b13d9e = 0 +55265a76a5773447293365395a1416a6a5cc155f = 0 +55dac99f46ea8f0f411100ff1e36444c262ea1cb = 0 +586d7843c3d5222728a1675d1174341469b94f97 = 0 +5883a74bcd743bbee356c335df3d4afff1532556 = 0 +58c52dc613fbc9e6a9943765d029f308ad79bb6c = 0 +5a3950aa76119654289cdfd4959ab1c299dcd397 = 0 +5b03745a6a948781329c444f08ad67cff63f91f7 = 0 +5f534b055d6fcda4761078e47a00d60b14bc817f = 0 +6473a35881c4698f7fd4b786974100d0b89ae492 = 0 +683ff26ecacb9251b4ee92b544497d4f56a97b5d = 0 +6af2f3826201184b4ee67882d95cc4112a0883ad = 0 +6de3fbaa99ee121153c97a12a93850aa01421903 = 0 +717dd90f28f2992c94cee0d364e10e1bc23c649d = 0 +73c4a03c82928bed5656103ccfede9a5c878656d = 0 +778a9f85b01177b7f306c04d493dad0c86191cbf = 0 +779a8a5da78039b2811d9c989d01028084dcaa06 = 0 +7985d34ad6b17275570861812fccad1c887e8df0 = 0 +7ad5db7a6cd3227e726d7043d850f819bdfbf51b = 0 +7b874aa85e01549240f6eff385e403f70992336a = 188825869 +7d3cef6838f0ccd4f6b5b98494abcdfc4e34c998 = 0 +7d4dcd7f0bc08f987ffd78c2551680c75b11c787 = 199052573 +7e6383587cb56418e5e5ed758f35fa49b596ded5 = 0 +8567fd919da21bf14ad695ab98f2e76efdd5e284 = 0 +86bd62b86a40bdf243e544a1933518c8c9aea02e = 0 +8788cefafce9505c145f5d7531b76f37b3591565 = 0 +8c6b04c747279e1cd9479a14bad32af739f76d3f = 0 +8cca897ff1bf251bc2fb6e806ec481cfc478de26 = 199085981 +8e198e977db5cadd173d9111da2a1fa1013c898c = 0 +8e20366c3ab40fb9667c6940182d71e750bd09fb = 0 +8ffe385575550eb358d6a117c2da5498b777654b = 0 +91b200bee3886cc380e07d58f7dacd747ffadcef = 0 +93ff2e1b1b77c11f7387a1997d6ba69b544a7dc9 = 0 +940149756ce61418858ecdb447641c08305b3337 = 0 +94423b421201052f74ff9acc9bdf6cb8838f104c = 0 +956b34b719347e6ebaec9b920bfeca7b4d42d593 = 0 +95b25237b253057906f6c7bedb7ab464b535ea98 = 0 +96218850a5f3f762f666684cfe9032dbb2ebcc00 = 0 +9803242605b6cfe659298965bc0f97d4e830479b = 0 +9a64b3754ef9ca9efc949181706b498ff4fdc112 = 0 +9a8743f2477d4ac2fa1643da19d20a25c26199af = 0 +9a955372b4bde66bd115b683772cbd57e1226bc9 = 0 +a2b9b90d6542d36b48900e5b91272317fe65a2b2 = 37765128 +a75cf4fe8129939062ff82ae79883a7c4dc012fb = 37765128 +ab43b410b755317a1b0561a374464bdb3a44f20c = 0 +ad38b08fd15775d2068ffa1ee846f1ee97156d96 = 0 +aec96b7952ec366c8d2e9f26abfe92621a9f4849 = 0 +afee7526b4d9486465d838c7bcf89bd8618e0eab = 188825869 +b00c9a8a333e516088da80b0136cdcf439411d48 = 0 +b1098f48f5de27412323eb75f60474370b654fec = 0 +b21ef68dd9cd769dc60cbba14222473d7743d663 = 0 +b2bb3abe8057793f44d48ebce9f05c23d3dbcd69 = 0 +b56640999f12d6d4a7f89e5deb72708f7c922fdf = 0 +bc9f16c6e582345df8517d4f0708fff8138c2baa = 0 +bda761307c2d742d44defcaf2ef28ab0a9a8f953 = 37765133 +be6c6d01697432136d4090ae3515d8ed8170b84c = 0 +c30c53b9f5a17e6c663c9302b192e8262ef6e9ab = 0 +c38d6cd91aa18a7f874d2b976a3271ccb81a148a = 0 +c4413a894ce85c01b988c43d1a350fc5fd2cca4b = 0 +c6398639989995314c56a1ce69d0f2d2604427ce = 0 +cc89285a9391f029582827d07ec36fc9f1566ed2 = 0 +d013435640c4098400868df3ac162006490f4129 = 0 +d12d6fb3951707c78abb0fb2391d6f4e28e3398f = 0 +d22506770d4b52bd2409fc70fa879e707b573949 = 0 +d5bc9f9c5ece8a315091107383c235de1647786a = 0 +d742f67b77ef9065d5309c375def6045bcfeda7c = 199052573 +dde44ba380a9526c8687ce36c120ba1aac28768e = 0 +e324d638fc7b5f91afc842057a9aa6054831297b = 0 +e3ba9152b3740aa033d1a0dafce054ecdb59049f = 0 +e3f2fc94ea3420d19601f13012414c0c9a424629 = 0 +e628eb0c8b4706100b8c5c66ebf112cd62a22b4e = 0 +e6e10def91c59e08a729330f2bdf7015c26208a9 = 0 +e7a4884edda5d830f25cb646a2aebc376125a94d = 0 +e8e69d197130a689e472e4d9c3f329a037996335 = 0 +e96a5e8a1b200c12cf21835c8e57519bb8795c56 = 0 +edec13da63a463b83bfd37551764af550f199fc0 = 0 +efc3488ec849d84693c6d288e2fe1c84e6e63f67 = 0 +f008a07cd13f5861228d3aab35f0171236ca60cc = 199085469 +f373714dbc1085943b6dac9f378521b21a9bc2d7 = 0 +fa0053b241fee05dcc8d1840f0015dfeb2450bf4 = 0 +fb88e6edf24ae287a05a65451b050ea8dbac0b2d = 0 +fbd9cb245a89af2c6d3eea0f1622729a14709163 = 37765128 +fc6af82e63e6e225631713491e58cc7128a358e7 = 0 + +[9cb23587-5139-55ee-b027-91422c7131b8] +0c6250a01e2124aec399e82dab94b0edc02e94d9 = 0 +d4fedf36db0b98195bc219efbb9aad11260ee74a = 0 + +[98f049d2-a028-5a73-bd4d-a8c50ff59ab5] +140b662989e8a3ff7a442fe41dc5f80e359b4bd5 = 0 +2ca3ed86418d56ba72ab86e9be04b0867eddcc8c = 0 +3e226d51370f30801eb2002dee469d38e694dce4 = 0 +42bd1613d4f847d3916d8eecb7961bc5d54d0bd3 = 0 +45f74fafab9701c67ac2d3a48df19913e2047d2a = 0 +4f1265e9703a74772002b4af743e1ed6aa45da47 = 0 +50a3fd3fc6134297908cf8170076cc302f890b80 = 0 +61fd27d9ebfc791ef47c4c70091f7724f5d178d9 = 0 +74a89abd1c0708e3917c96baab74b931ef779691 = 0 +8cf8f94235f7dac8581a206b11aa20413b507c70 = 0 +c577d00c99dd1477036672c219f51efa72930917 = 0 +e6ec8ba890bf3337d4d017431b9a6728893e3b69 = 0 + +[a9b2a840-c9d5-5181-a245-8df664c2d6e7] +039d5a20786aa55f04418b0ee42a8f8043245db0 = 0 +1b4191994c134ee26766c9d8a17be679c337b089 = 0 +5c589616714a13ef02a81dbe3e9a65ceb91585eb = 0 +5ee09f3749658267cbb24b9f21dba5ca81e56db3 = 0 +6a44d5bec978480ad9ff9370ee658e5d6d2b921f = 0 +6a9bb215477aad5eff80c33c52db1bf1e5f91834 = 0 +9481b6f30af1d4b66c865d483ecf38bd486dcd82 = 0 +a4cadbeb8a65bbd0953cb4878975f49ace4e029b = 0 +c15d8bf4a9337b939f71fb83032fe1f4af1be507 = 0 +e033434309201941f0d2baf9d719980c8b80bd32 = 0 +eb1e5008aba4f8b18dfefc4b662dd31481a174c1 = 0 +f95ca7ce45ba960e04545c5a62d2774829d2460a = 0 + +[a81c6b42-2e10-5240-aca2-a61377ecd94b] +016556b5feb03bd5735bc28f554487b3d89d4ba8 = 0 +027d53e7e38229d4dada0ff2b9942f37bb46c45f = 0 +042da5dffc3fd1ae9a5673340329b00ffc0bcc0a = 0 +0836fd2a7af11c2d9d8dc36d209c6c304aa37414 = 0 +0f3f6bbc787d16478b1e57d044e89329da505d6c = 0 +165cd40378dac1fc91dc78a065bf74dae1d6662a = 0 +1a2c4ea0b5f8696b380596af280e36d1b1140ebf = 0 +2337062a2cb8ebfef95d0e566de10b2ace271942 = 0 +23591b5b5056a5c531111f0a72071ccc09007c4a = 0 +290c419089016ce7f7250c90c6f226c816cd176a = 0 +2b99f69c6d43acc8b6b81b50ec014a0cf04cf0d5 = 0 +307e3c886ff8742e04f39b0b2f2a2888d77ef0dd = 0 +30aca832135e3ecc7a2784cced85ac5dbbce749f = 0 +38e94662044a59a846b63a01a60afd2254c62c22 = 0 +3962f9929edb14d9b54b6a1c40a9c9ec601f59de = 0 +3c74acd30def073c11ef7e2e0be2b0e2657a5da4 = 0 +440bb591ae275afe516a23bd6a4beb47e813852b = 0 +5036f905488a1b3c3eb8999fbede6a5080f9d7c8 = 0 +56a7b59d15cbbe7dff1f16d3e47064ae7a9130ed = 0 +595c8f1218a8eb2aeb8ddbfa54de4e55292b8170 = 0 +5b098a33c3bcf63bd9473bd5a151cc63f1a14f4d = 0 +5c52239467128e818e21e616e9c704623e4868b8 = 0 +5ddfae2eae52966b3aa73e659b8170e8aed4c50b = 0 +612a12d7be19c250cb22d5bdcd5364efb2686588 = 0 +6172c19df0a016b9a20157ff7d72ac8322623219 = 0 +699eecd31bef8f733458529cb26f23ff8ac05067 = 0 +69aed7b4653dbab98507fe7cee770be9c4ee66dc = 0 +6b886741a5d7beef8a9917dd1f7622c6922bbae6 = 0 +6f12f8a398a89462eb25762c6aef28e5abdc304c = 0 +743bc4191167322591f638caf7d7b875b2da4694 = 0 +7543419ad4d545c7268b101ad2b954cda6a5d320 = 0 +755fd0ed2506ddfd593f60daa1440d917e7916e9 = 0 +7786bccfe9be94783727c041437c676014b1eedc = 0 +7861bc86bcaf7e255b55aa3b4e7fa7c8d097b442 = 0 +85ac45936b72c22d0ac6fe4df4d589f246b42e05 = 0 +85b3f1fe9cf99d6f7c138194a7c4fc165341c9a1 = 0 +91230838fba4240392c495aee7cf5d782d08bc9e = 0 +91fa5ea723477df7c02dd1273507ebb49156d212 = 0 +9a0a84a8fed2c4db2d57ebc4e129ea16075132d4 = 0 +a1eed124ef4e350cb890357bdb593cb4d62933fb = 0 +a4efa5347ad6fd9f653d71d4eff174d9b5604eb5 = 0 +ab17ac6643cd5486baff2048f64845d45ce625b9 = 0 +b643024333821662186abaa25760305441aca959 = 0 +b6ee18655bcf4dff73869fdb809b8b0f004849b7 = 0 +be3711695fd57ff6437a1303d498fb747901338d = 0 +be3aee597994be49a1cdecb6b9c68bb47894bf01 = 0 +be878143ded0fd5433a38e08f737d1d891c4d88c = 0 +c380ae4e7fc0d8fefc75726bd9830f9d6aebb8df = 0 +c7d6ed97952c68698808866628b0e2d379d58f07 = 0 +c8d6889b04e34ce64befca55d38ea7328e956d79 = 0 +d39e0d188b05c83c77e8d6182ac81d5de30fc994 = 0 +d42de3bb74e0d8a46b375a6c3ea43da7fd95311a = 0 +d87968b025980c3a299f619282a94a728f1869db = 0 +e048b4cfa4c6b0929fbf15b8e8cb98224c68d9ca = 0 +e08949150b6830d7773ca894c6cb172bdc3ef0ed = 0 +e5e4f54419694df6c41b9c0a2e6fa351cd4985ca = 0 +eae07a5f366a97cbfc3342e165905a59fe7f4795 = 0 +f07b513a47c6c48397e1c314b1cfbef1d30036bf = 0 +f839808082a381e7a57733f9f10a547d64811572 = 0 +fea42051fc9cf2139431e072fa55d117296ec8e0 = 0 +fffbd1f4326a43b099575cfa6c6769b3eca3295f = 0 + +[dc83f1b7-23af-5208-ab3f-f15c73293890] +28ca4284d0eba29d8979df8ea55a872cea7b0706 = 0 +ad430da18e7f4c1e5c705c2ea9e15fa014980f07 = 0 + +[d8ec76ca-cb75-56e0-bc18-de076f20404c] +445960421ad1742f1aefec76d4002cf50c42016b = 0 +9d9279f0a0cf36d5a21196622323bc170281ab42 = 0 + +[ed09eef8-17a6-5b46-8889-db040fac31e3] +054650dd4c9442686b51f577abe6b8512f724f07 = 0 +363f3f37dba74961d6b64f1390f8b0a9121feb96 = 0 +99bfd1ec4315bcad238f97a44bf3172fcdafa303 = 0 +ece06ed22dc2e7ef074bbe9a9c77ffdf7a606e68 = 0 + +[7d11a335-8259-52c9-8750-e30c45c66484] +a8aa2965f4cece5d973b650b9fe20ad73d6f9fed = 0 +e8c3ef8344c23cc98e29349af7dbefef66ebb5a5 = 0 + +[8f4d0f93-b110-5947-807f-2305c1781a2d] +1156d54d7dab917698ab5d7bebc1a027dcb46c47 = 0 +301245077ee784daef72553172273d555d802447 = 0 +4e9f3009ce319b19f803e175b0e0955b4b54f1df = 0 +61fcdc758f657b483b4de48847ffc386496bbbf9 = 0 +681ba46a6ea8ebd95a4477cab3eb52392b80cddc = 0 +6c36de6689efe2be424d01debfae07dcedb79988 = 0 +6ca6a3b58b24b985f57fde5736fd085f302cb8c1 = 0 +71d7f071482ac51e374a5990465ddd525662df0a = 0 +876fb80a00e036e96ad878d45d9b6d1adc8ae10f = 0 +8ceedda4e8879fb0fa3e673227b934baff27c388 = 0 +8d25479190982497e16f13701432e1d93b1f0ec4 = 0 +90ff4b3284d2e32ef918d017058072a2c1c41189 = 0 +95db9afb3a38bce81d587e95a38ff70433af7c6f = 0 +9ce99efb968eab828f242a93b8e2ac323a3955ef = 0 +a345989bd944de451671a5eda42e78f597d1f282 = 0 +a5150832de1192691122b0b4fcfd0e06be72f013 = 0 +a80e24eba57358b04166dbfb952cd05af771a08e = 0 +b9c392923bc39be079e8ae38f5e6a8327fc85b64 = 0 +c63dd73a1b159ef3505b52db8b18fc20d9467352 = 0 +c973d4dbf59a2e9d0041a5308a922ae1f0a99ae1 = 0 +da472a562d7c3e6b894f8b2cc2795d840b0a102c = 0 +ebc2e3fbd5e9a52df432c610169e384f2a298b8d = 0 +f7a05aa054d653cf40feb62084305fc84136bfd1 = 0 +fc40ebe5488974a7d4e4edce36a238a6ebe03437 = 0 + +[ae04f764-fc8b-5ee0-af1c-aa760b5c9409] +4bc28b8405846b400fc68fb01e3c62ae1e716231 = 0 +85a19975aca4f91328432b22fef83bffed41f832 = 0 +e7e4a4df881cdc9dfc8cd9a4ff312a79cdcc0081 = 0 + +[88353bc9-fd38-507d-a820-d3b43837d6b9] +294c83c767cf90c3f392660062bb7a1e3ffcdb8c = 0 +3ea61aa302b891f42d413014c0e6dee1b4411914 = 0 +59a8a8e1a9df627bd66c872e90b01f7e2b861652 = 0 +6fbef1e06dc5f9eda2f1ce5096a7c035c85c1ea4 = 0 +8be731f20c1c2168e05c98963aaa5a5ff5ee8a68 = 0 +9792156fd42341f6cae894291f31e27a9dd6e737 = 0 +c954d83808ebbedad911447bfa94512ef3919fe1 = 0 +ebf9a39e16346cd56cd8b20474f5f9445982da8c = 0 +fd87e2198e9cda422f516d53c7263ba9539e9a33 = 0 + +[34f3d4b8-9242-5bf8-8faf-4f21e918fce6] +048eb13912427304437e4658e383743dbb8d7afc = 0 +d0992bc94798a465355c32b7c9ff950cb5f91380 = 0 + +[226e0482-2e74-5b70-8460-0a87d2a092cc] +92c8aa8a9d86fac3c7563cb13ac91b3adb48ac75 = 0 + +[e95a7839-07fb-532d-9a0e-071766bb5168] +02a1781862f71f6fbb9301cd7924016af5911ff4 = 0 +11a50fe956c907ded80260faa5b7b367d7b11ed7 = 0 +40eadbacdd0f5c537be0b91b1aebb455f03e3288 = 0 +696f826f863ff77ac44fc76474234e853813a172 = 0 +c50bb372292697fd09b8a3641bd5789a8d2ac1a4 = 0 + +[0bc01f2c-55c2-58f2-9882-94a900939fb1] +e4e8bb95c6e3b2fd9cb3619266adf433c15d14d7 = 0 + +[952205b0-75a0-561c-bf54-4eaf7b36f838] +18af915b233bab175ea3d254f99d8dcc4db998bc = 0 +4f931c22e485c125a6820f8829213ab9b7310541 = 0 +4fbad75ba267dbbfb19ae35e1393a07b9566a96e = 0 +7bc0cc688380859c591a6923ff1d2ba042452794 = 0 +804055190303562f29ef5223c20934c512004620 = 0 +ae02684c3a91f120d34619dc99501f83222ec36d = 0 +d3cd357d41e136dce6dabccd4377ffe3458adaaa = 0 +ed466ce00374b04a556fa957d2476ae2c0709f79 = 0 + +[1624bea9-42b1-5fc1-afd3-e96f729c8d6c] +1606690b573b8f76e06879febbfec52da93bbfad = 0 +36fe174c140b7cef7a58e0cf2fc3a5f2365be3d2 = 0 +879226387c4bf7cfa250035e17223d1e4533a125 = 0 +89ae7f2c35afb4b84c37a2cb4f5d16a18f69ce8e = 0 +8e3a6a79c7f1c9d9efd5720506219929c089933a = 0 +bf041a6004d98f905a3ec34e4a6fefa6660e8fcb = 0 + +[90a78b3b-3267-592f-9713-0db173aa947b] +22198721303398185853a77533f5aca990b66d99 = 0 +b1d9080311ef23d9283244e500e1026788ead05d = 0 +d31911e339d1858f3b02394631df60811e592b47 = 0 + +[58134239-9cb3-5d87-adce-67568cd73197] +12447c5f28744a30c0b4cfd25580d4ed4709b2da = 0 +2be7c1e3406237886dc5a5c2f425276b75798661 = 0 +a54a7bcdcdfd8dc50699642352db9c27f3e28b50 = 0 + +[7c2bda53-4c7f-5679-908a-7ca25bdd807e] +9838b3b33f5149f15b38db73cbbe23cd1a8fde04 = 0 +c0c28e9196f72d525523dabd7db51833c662c164 = 0 +c6a1255d82593273b4e7fd95a973ff93ff0b162f = 0 + +[b28563ba-f3de-538b-bd45-5b40df25bcd0] +1b0b7fd5248f2e58b4d8585c0459ba002704a95c = 0 + +[98729d58-ae14-580b-85cc-57d472ed321e] +fad1957f320354f79a5d01bb97cbeed54259e8c3 = 0 + +[d38c429a-6771-53c6-b99e-75d170b6e991] +1705a9ce1ba5d54d9d15ef6b76b0fe8abf73c706 = 0 +3a47822df995024d72daab1a26df820c47985cc3 = 0 +434feba19ab11a66ce5353913c1b01a27b548628 = 0 +486965df1243f7e6fa999b0840a7b28f5b766199 = 0 +7bded64ef5e1fc62110def6e13e8973d5adb7953 = 0 +8b59af7312eb61ea5c7fe297bd811696656a096d = 0 +92ac9f9e6fa590b239ca9ba4aef81c1e5146337f = 0 +a84f3dbf93758275c1ca49933b9d39c9b2831b41 = 0 +daad6eb0b1464dbc7e824bf8384cad54a3b76445 = 0 +de1338502afa05f2686d93972e5813a466542daf = 0 +eb004be4d82f77e3eff7e47d4dda50843e4da04e = 0 +f1b6713b9c359590c57d9fe267276323681acd28 = 0 + +[a6e380b2-a6ca-5380-bf3e-84a91bcd477e] +036e3b498bc34668eadc62e6fa15c01aa85540f5 = 0 +302dfc240f3648b642620df393b58374f24e1bd2 = 0 +5b1043c1023f4c85ee194c6138637b6c6be574d0 = 0 +5d2ac70297efd1b056a2eb280c14bf4b5f8568fe = 0 +792524a13a5f9bf7afee2a1a1d8782f6c611adf2 = 0 +b7afcaead991748ec7009dc57f0d79aaa0358e3c = 0 + +[059e8e86-8a00-5752-9d3d-adbce60f63dd] +f762ca6365ff5b8ba30500054412f45fda4a165c = 0 + +[00718b61-6157-5045-8849-3d4c4093d022] +1f2bb48ea0d45f7112f9b1198106f8bcbb9ab6a5 = 0 +5abf701dd6d0282dc38c2f17aed4485fde2d5e4d = 0 +603e19d81407e6d9af6eb7424967c7ef3efb2ecb = 0 +a4cc2849303f80cb95bf3ecfbc70c3956cbdf775 = 0 + +[f65535da-76fb-5f13-bab9-19810c17039a] +161bde61fb4bdf05728ba7f5e442bcd030505aec = 0 +19f0a599b39e68a84d3ba001d97ac0a6f65a5f0b = 0 +2f35966bd35c8e6e89b36992d3eaaecb77b6684a = 0 +31960219657a17d2b4d826282c00935a9f2f8e97 = 32768 +90eda1177b2b13eb891753b55bd54f939747b920 = 0 +a98ec6f7b1ba108e7920ea045ccc9cda3a747207 = 32768 +ad07cf45f0ea922572861c0e810cdc54547e55b4 = 0 +bd20920a1823f8488f99fa1d7f782325acaf3b5f = 0 +e54a8ced508e435a4a06cfdc0050dc3289223798 = 0 +ebd1acb80eb97875550b6b64222da3d0675319fb = 32768 +f814370085eee19267db46170d5ca708a6d19b26 = 0 + +[da4e23fa-bfa3-5645-b5c4-449cabb34994] +6edaa622dc517b053f3803cec428e6e21f8286d3 = 0 + +[c00ed354-b9be-54b8-8a23-c5ac771bc43a] +72f6b724b0bd56c988b240aa22c0a4889c005290 = 0 + +[150eb455-5306-5404-9cee-2592286d6298] +18fde145f8734f8020f6e6699146d7aabb697826 = 0 +1bf42489fb1fe82c126f766b88375a22f01972eb = 0 +529d9501be719490f54a503d8130e0ed10822cac = 0 +62ba22e0d9e34e0c1b3e2aae5c54cd98c7fa7576 = 0 +8d88a6aad41e020615e199086c6f62a1d03b4feb = 0 +9f3aa6b6174c378503f612a44c0854e78c8c9a83 = 0 + +[ace275c8-85fe-5afd-ab71-dcc95eab0b15] +b8a8acc8f6937ef31972f7e4af307b1d4b348623 = 0 + +[76746363-e552-5dba-9a5a-cef6fa9cc5ab] +34a98aefa0d5f1bef407f990107a940b57aed651 = 0 +4ea8c3059c8b28844eb913624d448dfba71f5db2 = 0 +69e9fe5f54c0d8581bf7a1436b67316b949b12a1 = 0 +850085b34afdd0ee0aacd9e0568c9293b2127c9d = 0 +985790b3ad1d6a83a07c3d9af504d16f0c765e86 = 0 +ac60ec041f853bcc16636bfa34c6d2f78cf4c88d = 0 +f9e459a6b4e1fd451b17a54d406923f46916cad5 = 0 + +[5a653867-b65e-5b16-a095-b1e26d522bbf] +1cffcbe48882edd86a2076dbd862dc11613dfdc4 = 0 +4ae33b5ba9fa1d5c190b32184055ec6cac87d6e5 = 0 +ff769d789ab506c4281f55776c67eaa13125a345 = 0 + +[7ad07ef1-bdf2-5661-9d2b-286fd4296dac] +e792316561a85c4fbee8250227a4a91c136263d7 = 0 + +[60f91f6f-d783-54cb-84f9-544141854719] +2eb362b134b6d474d811dec36dc40ea23191304e = 0 +5500d2770a4f6fc26ec5d052ff6ab507e3d0c807 = 0 +59b3b48c62ff08ea20da877f534104d01d9c5966 = 0 +5d90492c295a2e95a0c49e81323f305ea2f60d72 = 0 +6296b9f7806f61783cd2bf90fad756fa58722e35 = 0 +636f080de00a73f516ab447003e7e17a8ea16f70 = 0 +71f680e2005113db8950c7c998d8fbf64d0e30d4 = 0 +820ae86f468157dafae065f714008794784489e9 = 0 +83d76ecc71f9e9b3b8d71435f70ebfc1155ebb7c = 0 +9390e909d0578c73cb2c02ba92748ef55d5a64c4 = 0 +d13d20a255615a8b43e3850fb37b6b8af9a75e90 = 0 + +[a2441757-f6aa-5fb2-8edb-039e3f45d037] +08f64bcc43ccac1b10382383db40942997c6669f = 0 +1825a8b2b5e03ef5ad7b4ad55546aad7793f0437 = 0 +18ae966154118060341c297c3185a86db87bb928 = 0 +213dccc70f372bf55009faf032624ec5a20afece = 0 +248bb9cbf7e0c0e04248580631f3caa49ee1b044 = 0 +2ae73f646a8302651e17cdeb13bd1d241334d597 = 0 +2c3f797bf81ebf66e8b8f01860d32b4c13add99f = 0 +301d5ae6fffb2e5fffcc0dee107489c6e5ae820c = 0 +4057b79cc56b74c0d7415072816197e02096f04c = 0 +42717d813ec977d7e6008e2156f52102a01eead1 = 0 +466bccda85dc994f5b34e7d8d86e1635fedbaf69 = 0 +473386e5281a1179c24578e674891d0bd8a1578c = 0 +55660276c717e335ee46874eaf73c3b8c50189bc = 0 +56011df34141cd8bdcba570ac05a65a72c9d2614 = 0 +586c3c1a1936d336c359b4c586b40f1ddd992676 = 0 +8074660593ac535e260a31c766996f2199698c1d = 0 +91013c528f2c0ac6414936c385d2cb710119453b = 0 +9b1037c21c8a0f382a0e694a1ebe538b70866511 = 0 +c79db3a61d4cb3f699e673a52d55d31de4cc4491 = 0 +c7e9934e3f6f7a76338d0e4b7325ee1223fba457 = 0 +cc82e0d742386cc6624e9150007f44707d646add = 0 +d047768f91ac5053244ad38fadfa78579b16096c = 0 +fb2155d85b0510af580723690376d81de6ff027e = 0 + +[0f34fb1e-4541-5b4c-aef0-c26dfe4a41db] +28749b2c2e93d9de7535548e279921a5a329a5e9 = 0 +c77855df271f1874439c4cccb3fe8c97ab9f234c = 0 +e695224f180a7bb9b4a31a711933c2f0eff6ca64 = 0 +fdf6ef0ab6236a3b277a5415c8b2eea1f5350cf6 = 0 + +[2859d429-0a23-5e0c-862a-e399fa3ffec5] +010aa8817134291124f67c9bccf80e727aa2f5b1 = 0 +349d14e4ca441cbb95c818685e28d4f7a6f38910 = 0 +3ed127d2cf20f73f98a036ab5b06a8d888c914ee = 0 +47b1a7f49c51f351e41913745f5eac536ce10d0c = 0 +4c6dc816529407fd393a67d967a52a3bde402adc = 0 + +[adafc99b-e345-5852-983c-f28acb93d879] +2514bad52449b099a1d0f05b683a6019c0ed4f0d = 0 +5c1eb0f85519749dd9a61bab56d38101f016784e = 0 +bd17a9293b65100e94981a6529784c97ffe58501 = 0 +bf13f35107d6df744ef8e903cdda467fcbb8068e = 0 +e70e564a12c70255fbdafb9378c1ebfb63daf63f = 0 + +[a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f] +0b67f4cb5e21ed9377a7a2fe9dbbdb421256396a = 0 +21e23e9c0cdfff0681fd8905eb735909d4c09392 = 0 +7bd4105a38304f2208c36b539d905ea5292de04e = 0 +8a2f3be9dde57b97fff0b41b1ccef3e270067567 = 0 +9c105d55a8a782d87ec501d10c68bf4a90a93cb5 = 0 +bd63d2e25fcdf08f374d1d8b0343c3298088394e = 33554432 +c1e2ccff3b8ff0d50a0fd2c4dd94c4ff3ac5b340 = 0 +c885a2760e7df87d3ebde793ed15a829f5c688c8 = 0 +f92cf4a0cf0abf1482bf66fd366e18a19d9ad5ed = 0 + +[e21f4509-7b4e-5b4b-a375-a5512fd6f24f] +b66357e3d8e834ba5dec6d771c44ef33f5d90d2b = 0 +d048e2b13705038ffb9803a6ff4ac9cb5862c24d = 0 +f3e3235b9e9f339068a2f6af15b432376851a2a6 = 0 + +[328247a4-1e87-56eb-b3f2-bcec366639cb] +1acba6d2f636dbb7c12dae4a4c49772e36878a86 = 0 + +[6fc5cb8a-a410-53bb-86da-72917ac2b213] +1cbffdfc5824b3c7140fdac67f06b830b6124646 = 0 +4d619bfb2998ad71a5e9e5de5e4c4613674121d9 = 0 +7f18b54450bf4018c32c60a5fdc6e96ba9177e9a = 0 +f48192d530973eeb34f5f9f0cb7d5bbf4939c3d1 = 0 + +[f33766d7-c71b-538e-be72-a4170021497d] +82c8a3b09ac88888f053ee1be995baf4448e4fbf = 0 + +[3a865a2d-5b23-5a0f-bc46-62713ec82fae] +03ec146e2f8c158bec2a5cedb630c9d44481a31d = 0 +114c1c82523d140060277ac5760e72408fde234d = 0 +12269b828626bf519e442076caf36b5b9582d775 = 0 +3baa9ba4223e42b7a9f3280fc1efdd3f83ca966f = 0 +54e550b2d8c3fcfaf0009341532d179497a642ba = 0 +f989092aa5585056828b189257ef73ed5276187f = 0 + +[8a292aeb-7a57-582c-b821-06e4c11590b1] +25c6acebb85df8d2719d1191c21594c033338f18 = 0 +31df0f54bd16d9147c4c2c5a1ee31badba43fbf8 = 0 +4b1c6085fd8d7d8712552a1c7c642cb046a9fc0c = 0 +59bb97c6e04b11545427d6ad1b95a7f30d274a9d = 0 +7dbe36c99a3f1770fdb993c0fb9344dbd6bf4493 = 0 +974f8d11980e3dfdc54b42eb44790839c316e54d = 0 +9cbe93367fdb3d60d25119606846109a814309e4 = 0 +9d0354a19a3968d8f02c72d1291808cce8798908 = 0 +af57779864f33b3cb1c52ff8b0bc5da1f3c007ea = 0 +bb46d5938256d1e033c47e5970d794e9336b4aa9 = 0 +f4472c19d6590ed3e685a403c627bc2eaa9e7071 = 0 +f64049187dca8e3cfe4b9ba5ec8fe66a6fb66bd5 = 0 +f824d18468feff7fbb6a0be2ad69ff2d706820a2 = 0 +fcbd97ff3fdb72016539cea522ac3f03a7de9856 = 0 + +[667455a9-e2ce-5579-9412-b964f529a492] +0e6c1444dcda40a75343432875eb85d4e1e75dda = 0 +2f5561cdc9a39f01c1db9241a263f22ac5544523 = 0 +38cb376498dacbd2f0dd0279326dcd3053a95355 = 0 +3a57cb6fb52c58a5ad0e3277408f7eabf99943f6 = 0 +49031b030467db59866a93ffdd5edc0435e5a05e = 0 +5a9244850920d20ce180d71f9715ec84a2bdcdf7 = 0 +749fb9e60926e82eced46731772fdc28c882cba6 = 0 +8dfbdaa990927020c203e5689dc59a1b2a1de44c = 0 +90ccf9977eca52440a7acc41a2d47a572782bda4 = 0 +93c4dc0ca1e499b6ac4071ecfe999527379bc8da = 0 +a35f31eae117f7e29f4179fb9485052aeb4e6c61 = 0 +aac74165d6348e51ca60fc0694c519e803d83135 = 0 +ad8c06b75e6ed5d12a38880b4b6529b3f922cdd9 = 0 +af215d9d144fb9296b86f85925ee3cd1068e0c34 = 0 +c2343c7c66c4566a530377ed8258961fb6b2da5c = 0 +e100a64c53c9505526e1f7aade2ba10b44e4e17d = 0 +e30d4ebb823a255bdb31ad2af35171cb6ca0a4aa = 0 +eb0b5655eb1d463260e7e8ac2c0d9c2bff082821 = 0 + +[01e79fc4-f247-5fa3-af0e-2bd1d4cc767f] +3194fa1ef83c88f350ddeafb1bcb289d75d69197 = 0 +3bc63c9cf8097f2babbcff91a5f3d549e5d5fbe9 = 0 +ad473396f0c8680d4147895dcb1848c55bcbc601 = 0 +df29e469195ceb7abc3a6338c3abc05b56ccdb48 = 0 + +[0fd90b74-7c1f-579e-9252-02cd883047b9] +15ed54065d5405d73ff7002fff3c2089d6fb5876 = 0 +2a3976e242e061519b8b980bcb2d37e6653b46ba = 0 +32610a66dd6d3809c38e323fc440e702e414aa95 = 0 +4a0c9fd030ac5257065305901a8083a5cfa07235 = 0 +5a8be1572cdccf2323274def1d630e10adaee7cf = 0 +6486f4d2dbc11b6bd4e8be9793081bf82a68376b = 0 +6683e8238ac3f79c200c087446c6a57033298558 = 0 +a41d231d8d3db068e195df5d2cee71b4de9979b7 = 0 +a5e72c85f4b1ed6b1d26156bb64c424aba13987e = 0 +a9964dcfdd92186bbfd07a44696ee5423bcb3473 = 0 +ae9fb312d1506fd7ba888eac9ed699719e6e8f6a = 0 +c4181aa575dc8f194e5304ecbee011e075e0af6b = 0 +cd71b1586c3456c450efee00879664625fe28acd = 0 +e269f452c2e09fd91f06fb282ac5068ac4b681d2 = 0 +fcfec143af37d059cf1677e7b44c108ebbf9d05b = 0 + +[5a033b19-8c74-5913-a970-47c3779ef25c] +0d8900f6af14e2897001de7119c089be76dea419 = 0 +cb3042d5e295470028ee7ed8d48c7ae99f7d7333 = 0 +dbaa4f4fd6b50512ea687e06e797d43850bd1c8c = 0 + +[71625603-7594-5154-9703-a50705a89aca] +d5fdd82c2285bd0abfa518d1d61d1ce3443c02d2 = 0 + +[dc8bdbbb-1ca9-579f-8c36-e416f6a65cce] +2a29ebeea16b53cd1a5d355b032a7f3fb981eddc = 0 +2f2e9daa85f0125dfc701f8f1f3ff50f19b28d8f = 0 +5244474b476a51586d79963a4e71bd331d3930b6 = 0 +a91de1ffc3470f9389202c0f7b612528194c3ea5 = 0 +c86672db7055cc48c32034402ff559bc316f3988 = 0 + +[65d46eb8-70e9-5a30-bf48-2afa3a021b8f] +3610cd8c482d92c5a2c12833359f09ae75ec20a8 = 0 +85a71d80b9f14eda79f9215054543216a469d1a0 = 0 + +[a0b5b9ef-44b7-5148-a2d1-f6db19f3c3d2] +192a3fd1b7696ceb4e4ff565cbf5b9725c881cad = 0 +1f3ad87cce8e06f8a61fe2c907ea417d788becda = 0 +2fe24c9048e60f61f7b93061e1b82f8e0495b0d6 = 0 +cf172795ff34bb98ccdeef788050cc85492a192e = 0 +dc67ebe923041e49140b8fa9aa95798dd6020a71 = 0 + +[1f15a43c-97ca-5a2a-ae31-89f07a497df4] +10e74f2b780960bd4ea10d1c351a671b6c89e375 = 0 +1281cdfe8cca0fdc9c4b141fb1b1d963d9fe2b40 = 0 +16c4ff2a54bfd7135b3d71b37558019c317182d8 = 0 +249a6f5e3f3f56c19e1dc42ebdfc1d9cd189222c = 0 +3dc95c42b003ff62229eeb445d11f289e2afa2f2 = 0 +41bc238c58e8638dabb0696f0c3618bc3aa97227 = 0 +45b5e6d75cef49a6cfa321611c187a8ea1221569 = 0 +54121ded0802e1a01db80fb7c89a5ae6773fe1f8 = 0 +61ae68a8d0ab6ecf63e779201bd25683ecf5049d = 0 +776c2294a14852f5d77603f3a1cdbf0c555f3d22 = 0 +7eb36262b559627e82983de004e5ba9cc4809a6c = 0 +86642f9314792a55141a30033dca43d2debf7e76 = 0 +9337ff1d5cec3b017bcb772486b8f3e3ee1ae09b = 0 +9b5be121ce09047add2309bdcfe1797e582b6322 = 0 +daf011d5e0b0c1fa5abd5786d3c0630b6a6576bd = 0 +ea74742685b58fb7a845c9f9f735a7f258c85fd5 = 0 +ebb9b47013f515974f7ffb617f429e6b8cb00353 = 0 +ef510e1488450a31d2651dc5474bd70e4c4ca0d8 = 0 + +[e3df1716-f71e-5df9-9e2d-98e193103c45] +6490b0ffaa8a3f91f1232ee67f2d421450e83e82 = 0 +bc557504623513a1128d83be79742a25ad521c93 = 0 + +[165a45c3-f624-5814-8e85-3bdf39a7becd] +1dc53cba1ac79e3022ce577fdd1bf21b1198c896 = 0 +3600e06ddb2bed768a3c71e36a37afde70136d13 = 0 +396480ab30c4290feeb38ef2d942fd4beb131aec = 0 +63dbb2cf6829f8a5758b2094e496856a6fc936e8 = 0 +74c0c4e3d67fcdc09dda91a543c72b07093ff8f2 = 0 +95ca2f9ad0851f697faeafa434d65f45c2683954 = 0 +b684a11cfcba9cb16bf72e4be315809a8209a009 = 0 +d0bb3c8afe811f742bca478bd3aadcea661e39fb = 0 +dc7b06f16fbe46877c8bd5d77e4300e18549ba97 = 0 + +[e993076c-0cfd-5d6b-a1ac-36489fdf7917] +0825c2cc9a1736a09734266715bda3c42e2a55a1 = 0 +20af72ab09293fa9b750938b18c489554ffc6986 = 0 +25ac7134acae9237126cc073758e7f5319b3a465 = 0 +a17ab3f1665d70fc1f71d808451d2409839f768e = 0 +bb544ac59a5b0da5a352e6fd7a0a7d9a2ceeb89e = 0 +bfea57683cfeb2dfa1db93b201a6e7ae0d2eda03 = 0 +ca01fbb2b5ca5c30998f3a9a6d488ad95c5f9de4 = 0 +f3ea5949b65416d83e00c6f0a5a465accf6ba674 = 0 +f74dcdf580cbeead562c0528918bc3286c2d6e46 = 0 + +[dcb6a4fe-f2fc-5156-9001-e19e9c1de97c] +283f02c56eaf239852c26f26a96ec7ee94de06e1 = 0 +31ef38e0e8e03affc783fe10c91e58eb0af8f20e = 0 +5401f42d92eaad15f235e7caa2b543b44f95e6a7 = 0 +f4702ab85370888a58394986b72de5382ba9dcd7 = 0 + +[75c7ada1-017a-5fb6-b8c7-2125ff2d6c93] +dc0cafb5e712807a7460847bdbc5ddb5e423fa8c = 0 + +[2b3899e7-9068-5c5c-a4f4-f7d195ee295c] +679101713ec88f3b8edbb6f5f9cedd0a6b0de124 = 0 +7bedb7091e28ed821af4c2cf622861c73599d917 = 0 +8dd082389968cffc221c967fe7e5347890a2d9de = 0 +b39078af7dcbf6d01cf13d725a29901bea047c22 = 0 + +[a26e6606-dd52-5f6a-a97f-4f611373d757] +0fd850777ccf0c2c1f12644ac1a6eceb2a7e86f4 = 0 + +[333b5096-10d4-5fe3-8aed-15ce8e90d50b] +1d46446b202dc8d976f57c687d249a0a117605ed = 0 +4e7f27be8d33a42c134f6da0816ac4acfc0db0a4 = 0 +a195e8e492fc98e93304ce55b396e9babc171293 = 0 + +[6cf23378-2c47-544c-b0c3-6efefe57ca11] +0b2ce8552ed065c79fbd7ec67c5e12ae98c5cd87 = 0 +22c1e8ad6e8dd7819c4dd04f921d15d90ef86c27 = 0 +2abbdb438f945dcca7fa33320b485b1a2b949a01 = 0 +62353c8861ad97c76b7561398614579f91c17501 = 0 +6f9077ab8e9912bbade15b40c9c78c298c26e8f0 = 0 +b4ab96a39a4b24abc324e36fda79510d2cd1d4de = 0 +bf03a93a05f3b185988d5f0e48e2eec7eb7341f7 = 0 +e3347771c5bf9bc52ffee9ae886aff1edcdaa40d = 0 +f6a07ecd11988f391c7eacccdcf44876b28cc88a = 0 +fff901bfee9c98d7f28289fd794085ff036b5ef5 = 0 + +[717857b8-e6f2-59f4-9121-6e50c889abd2] +2e994f032310d4c74396d4eb38d4f2d93604d1c8 = 0 +5c5ab91d00f9d11440b5fa583dc493c2a26b5f02 = 0 +682196870d8dae02bb1cd2321ffd0ad6e85f2bbe = 0 +69abc408a8d3eaeba8e3999b8c3d8f7a87150f24 = 0 +7cfac97beeefa5de0ed98592fc624464a2ed81fd = 0 +8fb5c7cab2293e89fb2b3df6dc02266af965b1c8 = 0 +90aee1147330b96835f247307377e60331345ac8 = 0 +a17a968d2c0c8a13a7aa1beb42f9730318667b92 = 0 +aa8427e1fd6a248cc8eb698710755b14e17a645e = 0 +abe40789d3cc0a36b529520003d97a6d6509b22a = 0 +b0be357ab3c578f6e0fd7f58d857a0586cd5a6e3 = 0 +b1f1d920a0f4aedf3a9f5434daa1d6b048969d6b = 0 +b5d109d5040f339195c41440cbefcc6eb46b22db = 0 +bcca68b5ece29e4cfb6906209d00981cabcbfcd9 = 0 +cfc3471ac26e0027c31fb39bd2d1af1b79ddebd6 = 0 +d6d30084c8cbb5713bcdad1c7748fdacf50d6ea6 = 0 +e595ee8b746e0604e82dd77d18777045601545d9 = 0 +f2c056d9b367303d5e6e54f300056c0c693f52a1 = 0 +f6490b171daea0e9553cbd7251846eb15c5efef0 = 0 + +[53d836a6-c591-58fe-bdc5-4726ce2b5b22] +015d4053830f7d07c304db7642356161afff538c = 0 +1821f32c9d76fd858fdd831f7e43dc004369858a = 0 +20676c2cbd675a837f18d5e204c870811592d1bf = 0 +e86a73af156ee68929615824e6d78f9c95b35a5c = 0 + +[d58978e5-989f-55fb-8d15-ea34adc7bf54] +09f122b70450fdef4a6b9e40329b3570a8a37715 = 0 +29826cb29d42a1ff7457c18823266afe134d637e = 0 +5328a33d21dc70808aea66fe12a0a0f003b38aa3 = 0 +5c79554b3f935bc9979b582f6ba5d5d6603e20b6 = 0 +6a9054bac7ced62525f0c48e6825cbf4391c45fe = 0 +8a55b5250c758caff1541089487072f11222ac2e = 0 +8f7f2b199483b049bfb44c856eda2840cc108695 = 0 +9ea33089b9659c38f6d4b6e32604f7fd4571d143 = 0 +a5c8fd1a73e7b4e830e57be968b55a960b7b419a = 0 +d27a967f647d3bb55289b99747ed9c83af912920 = 0 +e3251bce6b6c78292b9f170dc97f84e95e85711f = 0 +e7187cdd9567b21445672061c639f56b4610a2af = 0 +e74a064884311679b1349ac15e222bf96a8d1321 = 0 +ef70d95edfce45f90ea07ab4065fa01eaae0d8a2 = 0 +fbc47a945ee3c18ed1c1df44049c45d3541d1dd0 = 0 +fc4f5bfe7f0f997b9e5e6fcea86bbda30933c443 = 0 + +[a3dee88c-baf6-5d24-a1ed-2b752da90c9e] +c2b8feb0eb276135e0526a664225d711b3e5ab74 = 2097152 +e2a45b1a13a7adb66dfba7bcce10fed8474fec7c = 2097152 + +[0fe7c1db-08c2-54a3-a222-6d1d3b7a471a] +1cd77da90511e391426885287b254940203912e9 = 0 +2d3d6e0606e62a7e267c7974592fcd5e7da05e4d = 0 +30010f26e269eedfb35b0be35f726a847d570999 = 0 +77c2592af8458de1b143262a42eb1559b4336c44 = 0 +78327d1e6a8cd27c44d9afbaec419caf6a98893c = 0 +a65398b60897628efe662e581fd83239fa2a44a0 = 0 +ca61510b1c3ee64ce9b2e426907e75b64d9442ac = 0 +e0742478ba1154feedec80cf3563411814699c55 = 0 +e50a0672b3e380addb0f0fda98aa48495e7d17de = 0 +e8fe4f25727dad1f7155c784621bbc50737bb064 = 0 + +[cf87cc76-4620-5dad-9f0a-7411b2d39d18] +29fb52e662bab470c0c7f812baad6e6c92280f7c = 0 +2c06f5678350681c49506cd9f1708d455c1ddd7c = 0 +9e0279a92b508ceff56c821aa56e3d0137d9208b = 0 + +[8a3de34f-2e95-52ea-a40b-c424eaf95c4d] +2737f366e401875b49f8c3bf88b4cf8db003803c = 0 +3db38aa198387328d89196e85c58434eb317e2fa = 0 +5573e2d3bef571e35c51ad9ec95ca67ff1b6d60c = 0 +7dc97d64532c464e8d9ab8257bfc091f76909bae = 0 +d25e13bfa47716a449bd4b1f844cf694fabcbc98 = 0 +ec27b6dafb700c16e0739c0e547d7b9528134384 = 0 + +[124859b0-ceae-595e-8997-d05f6a7a8dfe] +ad36413e42939adc37f9b1d5dcd1a79ccf6fc97f = 2097152 +c914bfb2183d25c2a2a2eecdea193b21d38ce7d9 = 2097152 +d5eb4f869942fca48b2530d9ee9ba7882e029cce = 2097152 + +[a14fa8ac-7845-53f2-854f-e9bba4c623ff] +5ea237439733a7c89273824de37055784032dee5 = 0 + +[a237f610-4214-5ca7-a9c6-385896804134] +07e9c433c31c67ba98079746ae10ecea57bfd7b7 = 0 +4499f26063e607d5b831d59f34d8fd7f92e80b93 = 0 +50fb74fd838e1c07f1048ff2341c0a0d21a57a24 = 0 +befb676df29fa6e07b0079aedf0ff0449865c31d = 0 + +[a93c6f00-e57d-5684-b7b6-d8193f3e46c0] +058c65bcb532da80ca9d9229d9ee75cbcf08ae78 = 0 +06c352352fde5e90d738959e54d43efb255bcc15 = 134283264 +084bfa7bff89ac5f52b9f36c41f0adea1df0f1e5 = 0 +19503c12bc70adc269dfa2159bf5950c458ff20a = 0 +211cd659cb7f9035980697f7effa081e29b9bf3e = 0 +21c0f48180dce4368a7c6b17b0baecabb7199c38 = 0 +2b8a2bd4e58384f9993ff3884ba04cdd68e3d0e3 = 0 +2fcc122b603786041b330f64ccb839b403f0a250 = 0 +30aae2a643a7128d38d511e0c131226ce52f5db7 = 0 +33ef93abc928b137f5e02efb7fd5085bce31e7dd = 0 +3baa3f8f82ca033008bb01270ce3b94880b44934 = 0 +3cf97fffde38517783d41f431da12714766a51c9 = 0 +3d21f4049701dd0cfb875817d6bf723d3d0fef05 = 0 +416795217df0eb77b149a205ef9cb1f3c23828a9 = 0 +41ae997b1851707590cb4e4b4d5542eee4088e55 = 0 +4652000f0984157702b4c8e7a2bc054b90a4e7d3 = 0 +49da3ccc8ab7c7785e3b00e9dcb37d2055230300 = 0 +5a32b0bcda773476499654a635f9c9414134900d = 0 +6289a1604676871b109c3b57061cad99e5a2571f = 0 +668bec9acfb17f88f5856556bc5f44b4d0df93eb = 0 +670372b7496bda2ef82acf85a3619d1876de32d6 = 0 +6ccf4839529010adc101534468335b442abaa14b = 0 +712e3876507228552ec83a371a5d0e577c75c183 = 0 +7c8cd64eab5e263fb5f9d415cb24ebc9c694a651 = 0 +7cc19d5bf44b603f1f6f3eedea1491ef36ff923f = 0 +7f3138923abc093f195f8803d167390dbc02d762 = 0 +82a12d1e60a5e06d85435a0304b9475febca8849 = 0 +9c0b80234f007748f9cc1086660b51edebcdc756 = 134283264 +a47880541fa3918e150484a330be8f6963b950cd = 0 +a6e63137b7ae08ca0958ee99eade7486acffab75 = 0 +a8ae618dac7d4e3908b1e1bd1bc4a1c3cab7773a = 0 +b774e5ad6c02c9ec6ad7e3c04be143e5299e899a = 0 +b8121a5b2425f8d93c137efeb7cb4a7709eeaf25 = 0 +b940206b0832687251b888a52c52342d447fd916 = 0 +bda0dd20e17fa059991139cef3190946f27301af = 0 +c9973690d3e55e17944aa1176e28fe639e0079f2 = 0 +cd827176818d5f164e6c2a8a12310b78f26d884c = 0 +d1fc34062eae0b2a899e44e596e20105d900a336 = 0 +d24a5e8b7c57ad947db52a7c399bdd9ba74726da = 0 +dbdb59ac5f3ef428c7e7521e23d46452d340995d = 0 +e286d986f9bcd6cb7e4f027994e3ccdbd9c663ed = 0 +e386ef15863eaebf4aaede29ddeaf1707ef64f6a = 0 +e96635f883a1521308b0ab5832c6364b4d865bf3 = 0 +e975c42a65d376d25144dc33938d2e27c89dc02d = 0 +ea06921248d8f54e0815c4d3f1a273de45422cc6 = 0 +ef36bd3941d3183d615294f42515cbd0b7f0bc64 = 0 +f031a3d482d8eb489d45b0d8f703b82a7e5b999e = 0 +f24817da5fa7b62aa7836b8ae839e7244449d7be = 134283264 +f972ae40d16eb9d49d2b06d14b98dcd3b88826b8 = 0 +fa09067cdf8adec9170384b5883f57ae19ca1219 = 0 +febaf87dbbb6474254f2fe6323b3116872ea63e4 = 0 + +[1313f7d8-7da2-5740-9ea0-a2ca25f37964] +024f498690e1e15181aec953c80dd8c0d5402968 = 0 +13f1ae0982a3305d4a9c2bad3ceabc887ca5aad6 = 0 +386f22eec163b169ffed81157dc763615658eae0 = 0 +4f727e106f087efac9271b1c3650a54ba58d8ae8 = 0 +6f01dc7bba9cb8a6f6e4d2ecfe1fb3d0b5734a43 = 0 +9469fc563f603ef214b184bb5ff90e2657089896 = 0 +fa1f50c343c99b4d79b917fe0eaddda8def3dfb5 = 0 + +[9a8bc11e-79be-5b39-94d7-1ccc349a1a85] +19f2c94c77a54d53e19861b4eed9f6cac2d67e5a = 0 +1f3b0d0ce4a0ff69035ce173cfb6495ba2a24998 = 0 +2cca825fecb314e827f43009b10bc6359a5a0d8f = 0 +399831f36db3d5054a2f84f3bad82ee88240ba0f = 0 +3bab4d16e54108c0276be5e348f40e9ff73001fe = 0 +50a20a4d8fe8130948efc2451e2b5899095f2121 = 0 +53521cb03de5e24ab9b509e05eac49b58dce7aaf = 0 +6a9996b1be3ad208d0eefad0c57958a34db19f4a = 0 +6fd55153d157da21e81aacb857a274d9bd842465 = 33554436 +7ef58fbaef1c4bb848b1123f5b6332abc7a4e456 = 0 +9c52c498dbfb80850ff38df04c7cf45264495ff9 = 0 +b5f575059b661b63f983dac276652d7777bc6e42 = 0 +be1a9dde178d703e4f2e168fd1ed867208fdcfa6 = 0 +c8a690c5f326b3e68c4c32e46511839dbb55bdbc = 0 +d0969d1d10fd330cbf8d16a515f73b82f7d0139c = 0 +d1a806cf893b6ea3f6126bbb92a0ea74a5e9a22f = 0 +ef3ce845ed2b1ff2b2a6dcf453a68fb0facb4ca7 = 0 +f530cb450a06ef29caf37be19bf02c37af2c4112 = 0 +f75f579b0e4476ffff8736ebbd900c1bb9efbb1d = 0 +fec5b0044a495fe0a776ead84bea6a9cf3828c14 = 0 + +[864edb3b-99cc-5e75-8d2d-829cb0a9cfe8] +087b9db5187b845902b77a0082eac306bee7a0d3 = 0 +91ccb8dae7e49534604e93bf1bfee6e43d001a28 = 262144 +b11255efd04dbc509086de1a9b3eafea86d247b8 = 262144 +ce598f10f482653aec888c1c956e8c2b5cbde10b = 0 +d631e5ce8fd174576171eae6c30a34b8a9b3498b = 0 + +[933ac57d-ae2c-5684-854b-0ea345a8088a] +4316fa2af83330cd9dac2b099f431bef705874fc = 0 +46a4f3fa364ee32b85d6484006bcf8f593e9bcc5 = 0 +9902e6eb2b233d7e2528379def3e86d2c4ad0b9e = 0 + +[267bd6e8-c492-5d7c-9aed-5ac0f2f898a0] +13e4102895d26e82d3d7e2492ba9692a59e0acae = 0 + +[e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5] +2356f617ccd6879fe76140330192b43a190fb2d0 = 0 +45e1c18ebf1ecaa09272d114384f009a843c0322 = 0 +639c9de1102daef9dc865b1a639282c96f0ad9ae = 0 +8133b98fa8b8b4a992f6f7696bf24e68ddf0bca4 = 0 +b8e84797fa0dd641b282f5f2c641dcf1ea10b7f0 = 0 +c041332b4c5e5f07992d25bf111758297d2335c1 = 0 +ed78d05bf74c89bb6ce02f758ddf5a14a097a280 = 0 +f79fc8b3a42b0dd9428f3c6c20b89a3cdf2b3369 = 0 + +[5721bf48-af8e-5845-8445-c9e18126e773] +16d583662c336af16f29816c804e8ac05e6685d2 = 0 +3cfafbd5f2910319161e40dc3da4ef292824fb88 = 0 +63b76a2d08052bceb9b6b3e88c303b6cf515f82d = 0 + +[6bac03b7-bcd8-55bf-9a08-86b9b673b6cc] +00283dab4e442a3b0174c0bb20baa9b33965f847 = 0 +64b8f614bbdc7fe5ef377434d17e6425521849cf = 0 + +[c513aa4d-7626-5656-a882-4604be010eff] +07f3d094bab070cb3bbe35901b46395021d1e846 = 0 +4e05fe330584c440a5798e2da4893c3ccc24f3c7 = 0 + +[ade2ca70-3891-5945-98fb-dc099432e06a] +0c337ffcd773082bda1eb9dbcb444d8ae4d28920 = 4 +1764fc048a2186438be22dc7a3a34e87b333f296 = 4 +63cdbc768bed7a5df8a51f041ba497da3fb96cef = 4 +6483642ae6f657a1fdde50b7aba64ab77db990ef = 4 +81b9c82024ef3819b102254eb7ef81f1861d4c65 = 4 +849320745c708826629f9a581ef8fb1e3435383e = 4 +9581c4a8347a466110359c52318ebce8684d94b3 = 4 +dc6ab248bc372424456782689e0c79ecbc4c1470 = 4 + +[c4541016-4bc8-5661-83c1-830810448607] +05ec7a5ea0c5b6c906cfd6a0e0a8dd23fa33389b = 0 +0e733093cd71c67bd40ac1295e54153c3db0c751 = 0 +141fbb10e0fb78b4f03bde763ecadc3534797ea7 = 0 +153a4e8c70d1f702293bdd7a2215b47c4dfd734a = 0 +41d1061bf19dc28de802e4a10e34efea8b96c762 = 0 +64641900d8fb9d1fa1e46a468ffe494c5e23f20e = 0 +8c4801a6ca6368c6b5175c18a9d666a5694c1c3b = 0 +96bbccf046af93f7d76fca9e1f1b87bca5d239e5 = 0 +a8e5946cf8608550c597a2f0c2cab99599eea206 = 0 +be6f119b962ea18a149eddb480e254572576117c = 0 +dc4b4824329aef4ad251f1c4a98d721612127f9c = 0 +ebb4cc043ac95e1635eac8f6a2db095ced67bb19 = 0 +f9ef7c9ce6321458bb47cd45fb1c728e0c9568f1 = 0 + +[67417a49-6d77-5db2-98c7-c13144130cd2] +36ca323ae972ff17c5625d25a3cbce50b05897ba = 0 +5a890a9a6350dc10ec648d944b58c353e0677441 = 0 +7495c38e610d6a8f64b5500cbddee7f55186b46f = 0 + +[55939f99-70c6-5e9b-8bb0-5071ed7d61fd] +093c8bdd2591c84c9fde17e38e80e0f792f4bb7c = 0 +1e62582f202553af6746c70212346aa8a1463257 = 0 +2550bca0a83440afe4f5e8e24b9642e1a8911e42 = 167837696 +2c58d1da858e15032690ccd31644f7615458a6bc = 0 +338f0e054c8830c2d29e18443a595e75c9698c70 = 0 +3669a757c746530d5aaf9ab60046ab74ec9f6ccd = 0 +5fdc88fb24b86c364edc34a7e900f3d2c502f8c2 = 0 +65adaad98f75c1233a8b77f8ecffc5e4c7f7352e = 0 +8e98e5ebdf8c59488aab866dd6b22b19bd38a8d1 = 0 +b78cc4cc666fcd84523a1733fc782b0ead8de88d = 0 + +[abce61dc-4473-55a0-ba07-351d65e31d42] +61b23a4176b735cb95ce097ac89e5a3533a688a2 = 0 +672f8495069a00f05ac6dc023a8be69e2d8c0f55 = 0 +b7bf489256efb0f06ec39c06b4cc0056f9f5548f = 0 +be5eaccbabeb36de76f7ac06547400c74ea82160 = 0 + +[7806a523-6efd-50cb-b5f6-3fa6f1930dbb] +051271024754502c44957d4df4c6c2eade2f9ca9 = 0 +05419b8fddbd8666a670799debd886851c5269a4 = 0 +075079947bbb227ed2f4998f4267d8496d31b0b4 = 0 +0b82f5159a8b69708e868ab2ab95574783f3ea17 = 0 +13ccdd3bd819d51d72b89dbc16737b20c10e4bb8 = 0 +19f6da9109474cf21628e97b7a712ebca9bbd87b = 0 +1b25af332c318ed17d94fd27d516b4711b0a278a = 0 +21cb20157508514bca0349b79d46035afc8fb3cf = 0 +2a22974364b83229600362d0a668a5e90f28a65f = 0 +2aea471a4fd0c1073958670507152d6810458ffb = 0 +2b50b91c0bad543ffbb32146476d0fc871789bc4 = 0 +2cb50b0292b02c0e65d5bf2704dda12b301be373 = 0 +2d25e118870cf46b8a3cc299d4e22d358a825076 = 0 +341c5cf761168d5061ffa83d2bcaf97b15078e31 = 0 +398fdf19e4856d50e5729f80dc6342210f2260c4 = 0 +43a0eadfb54809bee3e2a636879e346f41e6a402 = 0 +4e81eff512bc97eb2e33356b6d18a39d935787bc = 0 +5a06c3f66d28a8bc2fb583de6c92969fa0b4fafa = 0 +5f0adc5d6d0280f995ccc364e5d00a72f6387368 = 0 +60a47e70c2afe5881525b3a8472a47d0aa6a4636 = 0 +6a5169e632ac729cacfbcfd384c2e35675430e8b = 0 +80538a00fbd585ff4bd0be0f4a2cc9e8f7de2554 = 0 +83765089feb5b2d30d72046ab78ca044841c827d = 0 +a40ae9145df85ee168cf7a5dd7ed5c95cafad068 = 0 +aafb23a592716ad8d9f4a61b64ebe11511d56229 = 0 +df7ac51976d6f16e9d2465e48393a28de6ef4e54 = 0 +e52b425f0d96e68d5f1da21612f6960207065f3a = 0 + +[06f97529-6637-5087-ad05-841db92f8a3d] +2115ae6139d8eaa90a834b81a9fdaaad8e582d36 = 0 +3acbe7e2606b14df2232e20e8dc2355d40822447 = 0 +7388f3f44e8fbb0ef710fc45e27eb3ae6c24dbb8 = 0 +769d7da40c5d8a05b03e4485bff065681091c48e = 0 +7ac4d640505a0e0f5b245cd3a92c8e86c257bcfb = 0 +8c4a01c03764e184f65468ab9fa3a486c09ce7f5 = 0 +b66f42df9cff71c7374b5ab37e9f81a52c27ff5b = 0 +cb03cca942d326489b4db413625d36b5503bcda2 = 0 +e8c2e22f34e21fbf2170180dd89b34bb311d4bb6 = 0 +e9fe735e4b7227bacf365913f22841dcfe82e7e1 = 0 +f6b57ff4e43229a0f78d8ea4515570875188289b = 0 +fd26ab86374abe85bb3cca19b3548ad572ce8e31 = 0 + +[41ba435c-a500-5816-a783-a9707c6f5f3a] +70ba65db90c1940f506541ebd415fa4d7c95b7a9 = 0 + +[ab62b9b5-e342-54a8-a765-a90f495de1a6] +1b166fef59e0a6ade055b353de209af95d2a35ef = 0 +42631f914ce18e4fe17e909f317a859aeeadf76f = 0 +b1e273d496539f9dbbb8818d6447daf94d1cceda = 0 + +[6f25fe36-ecbb-5dff-aeb8-f7b50c87fb5f] +897906b3ecad3d60bf4ca633fb956eed03772560 = 0 + +[d2772ebe-fee8-5277-ba6e-705bb5633645] +04a5e7f68f8db9a71198c31d5516c7ecc4a954e3 = 0 +2a90487b9612117486bbf6ab2f4d2c8eaa8866a3 = 0 +3f96c73aefb5965836c0ab6dd9a3e2e3135226ae = 0 +881f6358acc1a86ac6677b6260bf361829589d2c = 0 +9fbc758ebc263074771def414feaf7932f8635c4 = 0 +d2bbd45ffe59191abbc3ded5fdc74c0f2ea80c1d = 0 + +[79092676-5637-529b-9d80-ae8d074b0231] +255de3e278b99dd138902e8843c4f243eda4a7fb = 0 +4fa791fce1ff457785d82c07f486d396137be285 = 0 + +[bcd4f6db-9728-5f36-b5f7-82caef46ccdb] +0427380909b1eedde2e8f6caeea52a3633d753d9 = 0 +085d714bf74174581634204620e4301902307fca = 0 +0e8708fcce6318bf23ef006935fd61cf41bb00a4 = 0 +118232270d498dac41ee022ec0b658cbffacbe8b = 0 +32ab4b458c7a50348135c6f7cf1ffbcea1a80a82 = 0 +47342df9e537e6e3a044741a52a1e14ccccd0c12 = 0 +58e5bda57ebee024b291460770daa1216499e4fb = 0 +66c1cf2771196a7c2757471e9e5204d7c19f1746 = 0 +67bd41944754cb8c36c99dfdaf61216dc56305a1 = 0 +6bff360bf826467ffe6de2b44232b2c3405543d2 = 0 +70da868ca5e5802e5ba2cf459703e7c124ea620e = 0 +7394adcde04328921488fdf7f6b66c8eadab73e6 = 0 +746d81fec06f594ad4c069daa90de9cdad7d8849 = 0 +765287bef6a43647aec0b4e95316853198825705 = 0 +773873355acf8fcbc5035a4198fa58e8b0acc2d5 = 0 +7a5a15e6ec39f12a4911e0808a09d892ab5bd61d = 0 +7edbbcfd7874ecf3779652dd06f91defa30a58b7 = 0 +87cfee41d426c251f73a14024dc979ceb2aefd63 = 0 +897ff29ff04918f1d2a62f4a0f29d335472887b6 = 0 +8dab499efec9e1a55a436ddfd75dfd6b09253e8b = 0 +9c5a0f2afef430c7d586148ded682cb986ffa1ac = 0 +abf856482b49d794f77b4d8134f9daff9a735e6a = 0 +b0cfe42ffd9c1874270a1f24b2b17bbcafafbb7a = 0 +b12c0dbcfb1cdbb7e4683156257ca5ef5f3a237c = 0 +c3de652feb158ba818d9eb88f0d16cffcceece71 = 0 +ca571ed0920965b31025ce4e87dff5b7d8baf0ed = 0 +ebac81e0b9dfb20aa9dddb05fe4e2049ab84bc0b = 0 +ec27c8dd3c4bc14a3c6534b3da5ee805e3dfc974 = 0 +f0e6bdeb7529b9097b3268fc8ec2f49abbd68666 = 0 +f6a73dcc78438022d5871b4fd3fc5d556792b46a = 0 +f89db6c24198c71e5effdaf7fe73c94db390d223 = 0 +fabbcf0c4f907ef58014403e148e1a5befed7632 = 0 +fc7eadeded8835b5f182a6c98ccba695e97f77c9 = 0 + +[64db5801-a3ae-51a7-b7d2-a0a5f0813e47] +3e58206a61e9d37334768f6911615338309d2804 = 0 +4147cc5886d478922075b94cbd18b8e879a9ffd7 = 0 +5eac72db750724b36a03aef394c5f86d2282b2be = 0 +f647423eb36e29f077d12727290b64f97a4ead9a = 0 + +[d8da5c1c-6f31-57d0-a642-102aa94a823b] +06e58ea1332fa884deaf3813d2815889369e9876 = 0 + +[191d1da1-0f37-5779-b8ea-a655caa0c150] +9452835307deb191a8423cc2f4389e1e45179036 = 0 +996d3c22c08c49b55b475a26192e35c1e7b94759 = 0 +b32df31a1e141c7225522d4f2ebad6786cce5e92 = 0 + +[21f26bdd-93a7-5c22-aaad-c68df1035b25] +8c87545785ac377681f8ed89734f172d40235e10 = 0 +ac6204b5920170c87098a422860c8d922f2cd328 = 0 +c013e4707119f71e2ca9504cfc70c3d40e7d27ad = 0 +c92a89b91791f61120bfc5a43cc3a57b28f706fb = 0 +df4a96f7a7447d5f3b4569b54903dd9305c078fb = 0 + +[9d4a7304-c3b4-5347-99a8-9cc862165b3e] +3ba50f8052abb264c62329fde29ec335d748b215 = 0 + +[8913abdc-d7a1-5212-bb33-e6dc6371b233] +63b78f8672d328bc8436ba00857a42d9fbbaabf5 = 0 + +[01638602-6071-5c9b-be9d-28079212bf65] +1905924944436cef6f4c83fc984cf413fd40dee2 = 0 +1aff50b928a78d7b4217fee5ade6151c1b8cd7f9 = 0 +1fdc70ed54337781bbb345fd327b7774f03fa88e = 0 +6c86aeccd9ab606025f2e06a7ada174ec6aa3675 = 0 +8208990f01700081f0583bf39f017c80a31c312a = 0 +baddc7c76f2d57b6384e5943ceb8d5385d46ace6 = 0 +c1717cc80cf2f72ed9caf9a21bdb20e6c3d43fea = 0 + +[03c08e68-d706-55a2-92d2-cbe0f9d07a98] +12df0ca8b76e6e6d3aecb824e2c1913f466eb393 = 0 +46bc6f8107eb09e3b9433a334d742b2fcdaeee13 = 0 +754cc06c169a300df975ce3cf228263d84ea0ffa = 0 +9084f21b510df4fee19027a54c40c8072b79049d = 0 +ed4f7df2944fc51c4a2aab4aa49c396eb5277ac3 = 0 +f970ff635016d0dfa367599a38ee89f3af5d8471 = 33554432 + +[070d9d8b-17a7-5814-83fa-42438ba5c6e0] +3568ccba29a1ab406db50eab42a43c2d3c2fdfc0 = 0 +59c9f516ef249ed266b1a9f020fef07287f7cd9b = 0 + +[9d70cc08-aa8b-5bb0-a0ac-e009eb2b6668] +13f8b2f4d1fbea5427d3bdff653c8671ddf0faf1 = 0 +16713162c1c9f04febb0d39214fc9a5df6a62f42 = 0 +1d2ad8ec15e5a6fdd64ed7094178bb2d8dedd2e3 = 0 +24ab00d48b06aa9a4fe9ecf8b1334d7a241ca7ad = 0 +8dfd77a36a57b0c18716ae30f603922a6c61547a = 0 +a54103c356240278f0819674da9360720f36a3dd = 0 +c3a82777fd1a09a3563b2f973efd24ac8c088ce0 = 0 + +[39dd38d3-220a-591b-8e3c-4c3a8c710a94] +078eb6ebb949d2aa6df68bc610df5036edc70dc0 = 0 +0e5d0da393048631f3f31f8d4576a0dcfe634f78 = 0 +10632b9190b7b5e635d1550dc8566b0b01e5b33b = 0 +67251d5e0e862ec20357be88a02c5e5917d272f5 = 0 +6aacac44a8a424cd0c678b9bd7ddb60b1203e8ae = 0 +8ff4b5fb02734c58677d0c9f6bdcf49b1635ddd8 = 0 +9fb0e3e31b97f87686a150552488bbea3e8ae773 = 0 +a64de2322cc90ca588e29d385656ca7b5fb73004 = 0 +c11a48a900ab4e38852010d0ab5755fd89e4dd89 = 0 +c59fe13bc460b504d2e786da63a0f17b22be1343 = 0 +d41c01ce4979541aebc9072c674c8dcb31b65b4e = 0 +d5376783b86d2f4c74f04b3fca239574f58c45c1 = 0 +ff63273b9452fec3bc9a396906d93fbdd7c271d6 = 0 + +[c5cfe0b6-c10a-51a5-87e3-fd79235949f0] +1b1de01ea1a59f77a9d5581df305ef1f75d12905 = 0 +4ccf0baa8644f738e0df68596fdabca9e45cc58a = 0 +690001d65519f08560a6d76ea0bfc9ee28bba4cc = 0 +a1baea65c7b814a42d2c9ed6fd0bf75277c15860 = 0 +a84a2be263ab5ec4b5261946a17f01fda358b9ac = 0 +c987aed2639ae24f0a031d27d159baa62d06c6db = 0 +eda2f78bbb494a965adc4a7582bbba21ec623673 = 0 +efdb887e57ebd84d418de160552b9d73a7d16f40 = 0 +f4e8031f1bacc5584a73fd993241fd0e633ace11 = 0 +fa19c5ad6fea210b6fdafc8845ec4b1650c69d94 = 0 + +[50ad52dc-2428-5a14-b1be-4c0d2fa9448f] +f69216cd029f7ce4f7fccde8667df3150bca5caf = 0 + +[2b5f629d-d688-5b77-993f-72d75c75574e] +0073d76753ec5f399d1cb05ac909e19e7f505194 = 0 +097119978b61710328f42606a78fd37fdc2a0d6f = 0 +0ce78b85b600ad7f8f5a3514d88a253eca2a227d = 0 +0fd1c7a6083510fd2eff04e686bb08234b9441d3 = 0 +107eaac9c6f261397fe36e9883bfa3f5738597a1 = 0 +158eecc43c61b05e4062778d074e2c6f03074fc8 = 0 +18b8a716b19a375792f09569218892881c7141db = 0 +18bae8d2ccc72583fce9be25b1e2e126fd9629fd = 0 +1bbf95d3beabc290df34b4d3d067b48f073d0d11 = 0 +1fb0e96dd16f5eec046053dd40984bde2ce9ce3d = 0 +224d132d688ab881d0e25a90fba15e947d5fb483 = 0 +22b8650f00ac44eae78584efbb99a94477b86c66 = 0 +249114216a1f0a5e470cdc0579761f3b19090642 = 0 +263d46331a896f26cf1faefd2e09e64525863ad0 = 0 +266412eb17414c649c72f8a837e1a9aa1ad1f639 = 0 +26692d95b816977d5500343b7116e696145a3428 = 0 +28200da52fefaceea58cb8c0b703e25af7de84db = 0 +31bea309a404b3afa125de520bc2660c250c71d3 = 0 +31d0f54f0627dec80b513e53dc8104ceb7d765e2 = 0 +3507fd897d9fbc81e16ef9394574c77c40bd1a5d = 0 +373998562ac67b36e8e4ea150ba03b6af003b5d1 = 0 +3761deef8f6b20772d223db5fd3f624f07c985ec = 0 +38ef291e544715ffc98c906fd8ab1e27aa6941a8 = 0 +416323fc3cb6721b7467b25d36bdfc4022b5d070 = 0 +443352323f0bbde6000be88601e5000709239d30 = 0 +4843464fe92d951d65284d36270c6c1a7be73708 = 0 +4a1307f62b069aa1fda4fc5f9319619573e2e66a = 0 +4b7713fbe2e4e2266fb3bd8b5f2e2af92ef6f1ba = 0 +563f709c7fac9cd851afd7c64db7a7e721ce0711 = 0 +5a82b25f77f3004798d4bb0c4892b5e25b7f6561 = 0 +5db7d05fa08ec40260a08ebc4a158b7a0219ff87 = 0 +60718a2613d2cb6160bef2922e98ca4f70a86d50 = 0 +6125789a0ecef877c33571c554d3dfaa9fb99879 = 0 +6146d23c21fd44329fb405546317a24e7eba7ed5 = 0 +6859cb2d859eac341d0e3d3ff0b0438098c7d757 = 0 +6b2d436b5780a53dc7d661663014b01366ad6547 = 0 +6cc12def8af8e7e51b458d65f48e43d97aee4af1 = 0 +6de09407a74e30b6d8c24ca758b7d6d796ffa39e = 0 +7131e45fbe6f9c0f585208c4ee049d6ac6774022 = 0 +7415e3b09ce23c05f6663c6ffa9bf4e9d3bb31ee = 0 +742048aff0532c69c082185f078f25ae5b1695bd = 0 +7515a9eca2f3b402e7758b46ee92df16f627842f = 0 +77dcc498fe8f1268914b80a601e44ac91cb200bf = 0 +79b57ce6888720b397adcb0e85d84b9b1e67fe97 = 0 +7d4bd056dfffb7f41c89b7e5de31d8e321195eb9 = 0 +80df0f6fe831a819fa6f549d72a3f251ba96ac32 = 0 +81f1c22267aca811c5818b628ac3c6225897c673 = 0 +876cd17228d6eff8f156ea8c191def45e0eac2b6 = 0 +876d3b96b269c8d58941cf42719ba5e1c527911b = 0 +87d57946bbb44fa2263536309a9cf5bfa5afad36 = 0 +91209e3175758a118576152401ec324a18246312 = 0 +92b19c6276d22acdcc2770338b8f75cd69b61b1b = 0 +99e077dba8345f8490f09470da328dc567446f8b = 0 +a6b0d49ed2272f04ccb43692f8e4adc4aad39cb8 = 0 +aacf5dce6646aac1843b0fcd5b22c550377312ed = 0 +ae82a17ca286ed1f262f3c574718d35808f5d9da = 0 +af084e64d4f954abc9098e6514528be3271ff89c = 0 +b0ad76b3c3b514408b0feda124a9049f7230d3f3 = 0 +b0efbfdfdc7a713d48d1bed563795579fb90f3a1 = 0 +b12cdfdf5d45ff6ec4b290d0294f50d3665238f3 = 0 +b40ef2f290a137044ac9f13decdaa3e816cd6de7 = 0 +b5f313b8b6af06146c6a510609371927436b134e = 0 +b7fd36438e1413b31aff996045cdabbbad3ec4d3 = 0 +b823b1fd42c979f211da514bf958ec6c0abaf536 = 0 +ba96c2d3d87403c8c4dba43056a4a6ec8ebc902c = 0 +bb95b694f3e8dd94c509131b9cf4b899880a71fa = 0 +be480ecd3167104a6524e9222bf1b384622d7724 = 0 +bfd3315fe42930b16d5607b86720488983c253f2 = 0 +c3a26e9248cb32232befb8f945921d1dbd1bd0c2 = 0 +c4949e4bcb2ddef7707a22d6c8b13c3f8170ed6b = 0 +c991324af55976c9287dd93762fac5fd45503c02 = 0 +cb539fae5bc9228efb7ff18398095d2821456b64 = 0 +cb89140e015df3630054871bf9aef4ed9ffe7d39 = 0 +cfd4cf9f04f16ea392d8e32734eff5562094c5c7 = 0 +d2f221bc300f2eff70edb8d31ef6debc1a55e2fe = 0 +d2f77b2df365d31f4f8bb7c7a7d6538df0594127 = 0 +d3310cb7111452257a930dd872ddfc71870acdd6 = 0 +d70aff4d77ffe95f11be4e067f5ab7f298001cc5 = 0 +d9626007728dca0580b361ab23f2d0f6d6409e03 = 0 +daf99aa25cdad6d304256b30bf9f2bcc84198f5c = 0 +dcfc2a38b2eca7e75726ce8346ef21471c9c59d2 = 0 +ddfa11fec443097624214ee5eee454183d37fcd0 = 0 +df01c646a3f8e38fbf4d254d1091520c5a2b35bc = 0 +e0d9f4326a69cc38b885adc67eb8989fa81f32ec = 0 +e344bc17e7b5b7ea0fc25299686d73f175d5df12 = 0 +e39e0c45f77aa04830a8c493754e873aeb4f3a42 = 0 +e87054faf09e6d720f59ccf6b8bc11578b1bbf94 = 0 +ea347b8d887ea1fcfcef06c0b5a4fed44605cdb6 = 0 +eb3c5186009e8d575f9855430197315ca3c5da0f = 0 +eb6a836ef2d5e7ba94cbe7fbda9a59b81a2cbe97 = 0 +ee959d4f1133a42649a569fb4941d35244e28890 = 0 +f44ecb55cd669a9e2817e27e35be7a138e28e4b1 = 0 +f497cb7672bfaec14badc0244ee3b698b2c44c8a = 0 +f5a8a8b23809c4eace6400919a0ddf4807cde2cf = 0 +f7603656bf59128b3a3146d04920c70e841cf726 = 0 +f7fc25b5ac3a0851b4f6971e57069cf9c66ffc4d = 0 +f84c545d2cc739ae03a6b0df68c105d98ed680ef = 0 + +[ebbdde9d-f333-5424-9be2-dbf1e9acfb5e] +06e35c08ea52ee954d7467e6ff119541d3742e5f = 0 +6db728a8c341acc89af45f949c104dff826f22f2 = 0 +c0d41d91496d2ecb81ab9ef1a75665d417ff7650 = 0 + +[eb300fae-53e8-50a0-950c-e21f52c2b7e0] +54d00d9f4bf180f3c5f8084b57adbd104183ee5c = 0 +54e1b10761676241ba587290da5b763bdaf5c902 = 0 +891472d7d5e50c8d8f1b42fa5c486f2c418adbdc = 0 +be846483e17b021f338ffb29587d9f73d544a332 = 0 +c9aa90255c1f0289726e2168eacce5c83109cbb7 = 0 + +[459566f4-90b8-5000-8ac3-15dfb0a30def] +1df5505c60d4efa239756cc3d96b5ab8950cac2f = 0 +2d37c748f2da22378a0e90256bfe456edc2a27e8 = 0 +3d6d9377f817d3c2bb53bafa78bfe7407697f4c3 = 0 +4427686559d34971626f87b7ca8d3ff35c8ab2c2 = 0 +4f3f682b1c5c0f35d1b477007f02d57b11fd21bf = 0 +5041379c8a9fafcb1dcf97931261c5a2657de0d0 = 0 +6ea4a0a0d4588ca714ffc1a01adb0e54a986373e = 0 +71bb6a686c530c81770da9349a8a108a1b9b46c9 = 0 +9133bcf637b36ec111a8aad6297a222fe3acd81e = 0 +94144deae64620446baf4b2bdbf19dda61e617b1 = 0 +bdffa9f8d882471b3be4f82d4abd2099ada5a4e2 = 0 +c019bc1c57a7c35d84de0e94446888f2b0983cb0 = 0 +c4afd54d9ec4e914f8606cc7f957f62d454992f7 = 0 +cc2cfea02d9270ac7755edcaed5e2400c9c06044 = 0 +d773cedb190e555c4495f1bc6295ea7f690011d0 = 0 + +[f3b72e0c-5b89-59e1-b016-84e28bfd966d] +1876e4ac51840fd5dc3fae2383391ccc9d3fc51b = 0 +1e022c6cb897ff434ac836668edfa3110e2909df = 0 +24adfbc9417277970e337db8767907afb7513cca = 0 +2542db60e825b7649a3db3919afdcd80ead0a810 = 0 +3d21637eb1ec301dd0168576a56f47babd9acd7c = 0 +4a259f3db942ca1c922c726ffe12b7d4684882ec = 0 +4d9ce3c5772312e148dd9798b49bc4f8e39ef7be = 0 +4f5485fe45195d038fc4c8f07d5ae819a21db499 = 0 +59f6893e61de90288acaf746073120498ebe44ea = 0 +73852ec888a63719581732c821d14a2c21dd935c = 0 +7b740e27cc24ea42e1001346cc587711ab86cf84 = 0 +80172145e8a170380d16d34954228df1e7121a84 = 0 +9d4eebe1b68f0c8c4d32de9524b8afa8d66009ed = 0 +a582920dbec6a8ecb1911d1db0d4fbc960ce85bd = 0 +a658a247487c43d8120d9038f66122742a80cf02 = 0 +b10dac12ec46492274aa968b0db6e8e0b63b86d1 = 0 +b2b372fa9ef15188e3d01928fc9815b2657d9e81 = 0 +b68d1ce963001df1da3b61cff912576e7d0b0661 = 0 +b7de7b660e531e43ed7b43b5e7dd935518e91717 = 0 +bbf0b9bad8e7dc65e4641e2849a38c5a61ba4314 = 0 +ca24808f6c1f0909643f76b495ac74d466ce7d2c = 0 +d1e92122169966ef115eb6e558adf10aee8f6327 = 0 +d7f696f26b5d49d53a46cf1b9719744fe0457840 = 0 +d8b18e1a5d508d2de4866bc28aef9d84c099b93c = 0 +dece4925235af576d0dd844adc5955f098e2b9ab = 0 +e4926152be620885ac10b5500227cf1167fa43d5 = 0 +fffb0661718b41737dff6bbae5c729718bc0600c = 0 + +[01453d9d-ee7c-5054-8395-0335cb756afa] +3c5769604ed2b4880aedb3a09307caee52de648e = 0 +3d07901855411c7a2e797ed12747844005f1a870 = 0 +6d55a63b1a4fba0c5e5e7dab507317bbc3335c52 = 0 +92266090e284d0c859be3c5ddceacd7b89df1d76 = 0 +a75114c882d7734cad560998eb9588bbe040ef1b = 0 +a9d8d016e403ad2059e0c4d618af3ba61b1e54c5 = 0 +c2bc2b16145d5694901dfbcc4f6bf42257d791f8 = 0 +d21022ea4364554ec4877a107df28c95cbb82f36 = 0 +ff050f49d2f1cc787847d48115ea571ffedd415f = 0 + +[5a0ffddc-d203-54b0-88ba-2c03c0fc2e67] +140af7eaa835767af7c3010ce665d320ab62251d = 0 +6f5471b3dcd867a45dedde15e1cccb52ae8a5503 = 0 +71120affcf32da56fec7547371eb41b984eae5a2 = 0 +7933688ab56380b95f14694831f645a8c7fd9ccd = 0 +d7c7c0ca848da27e62fdf44ca158fe398cf2bd3f = 0 + +[c894b116-72e5-5b58-be3c-e6d8d4ac2b12] +2c5c8536f318685dfea75b2e990540ca2754691e = 0 +60338f381c5dbfe325f7aa8d40c49cb65a47b4b3 = 0 +61973124ea88348bea5b1dbf915fd8413196dbcc = 0 +62761478ab7dfe86636358bbbc3b65a08fcf13b1 = 0 +73023099601997d1d2fea8891819feaaf3f50ca5 = 0 +961b76261e8d4256818d11f827534c292c99b31c = 0 +b0a1df798379a35eada5ea55dd71c9ecc7e0edc5 = 0 +bfe85584fab5841100708fa573e3d71afcb6da64 = 0 +cbd35d0f4351c327c920f980fe4f4ed7bf27e7f5 = 0 +d19a85b1e0b2d725b7aa6c8f6ba2db1039401e5b = 0 +d2b370cfb4bf449d9d5447f322be7bfe569232a4 = 0 +e211ba50a43e04865ef679c7173a695328cc58cd = 0 +ed7eba602a7778d01d80f9aefd43771f9f9efc76 = 0 + +[78ddff82-25fc-5f2b-89aa-309469cbf16f] +223ee7e5cffc57afee15521a9f39248046f26516 = 0 +49da20ada0dc9ab4d875ab65b1233e557759d8c0 = 0 +52b524b24f4131c9210e864f373fcd3dba2dca63 = 0 +5e82bfc1250a0fd296fed5fdf77116ff17401cb3 = 0 +6ab0632b05e8c6a024362d450ba234deee6bc309 = 0 +7cee819f5eb5017f0f86ce51e5e01bac48bd1cac = 0 +9376aabee31e59faba02a48ab9b7627fc498bb32 = 0 +95980ff3374d8758aa96dc2097a844e34d56972f = 0 +a6241ba07efe0f8232d89bc8381430d6d862a862 = 0 +b75946b41c9f110befd80077a07ab33c220ed1d0 = 0 +e1431cb9cbfaa00de536fd32de7a5ab232e277fb = 0 +fca720fbe0ad35bb23a6c43f6fc7d64cc07bd31c = 0 + +[77a26b50-5914-5dd7-bc55-306e6241c503] +10b26ff5fbfbd89e31c241f7279793257fc4d239 = 0 +12da4d398de85ad727c66c3d6fe2f2fa83ac7b59 = 0 +160986de3399de3591bcf19d4b3c61071bfcd7b6 = 0 +1dcfb7fb853aa6c8e1fb64d4be90122dd6abb1d8 = 0 +376391921df0f47f5709ec228feb128e627f7d80 = 0 +406018100c88d294f2c658557f88be7fa84dbefe = 0 +42db3d5cf9a33cf5cd6139fb91bb1b3f0afd54a1 = 0 +76048c8f0e3bf8e5ddb00e7d538cccc9508d9b7b = 0 +854368b2e9d09531d77cc4c2d2d761ee60b008e2 = 0 +9f4ad2fe83bf43cac1c5900d652409fa76f99f0a = 0 +a1eadfbe5a5b92c94cb9ed4e0d2d9f6bc69213cb = 0 +bc1c36f68e896aa78e5eb6dd48b4cc75a428b67b = 0 +bfbc93c67256043e24ba708dad9cfea2e55303de = 0 +cb9d1e7e6e14ae45a53566464170c4b068c7ad9b = 0 +d785c171b6b6972aefc0f2f837ca65e61b50ae8b = 0 +e6fdc07913bec15e206ca0062b11b9bd88e9c7c4 = 0 +fa752b95e9cd80babd7fafa6155737bbb9f2633b = 0 + +[9fdde737-9c7f-55bf-ade8-46b3f136cc48] +2298ea3f2def5511025f064be6c63843cf5c5781 = 0 +db4152af36a4b97e7327e344aa9e42d084947229 = 0 + +[34035eb4-37db-58ae-b003-a3202c898701] +034f6a4a9690c98fda47f4681012fef1e863b74e = 0 +3fb845a091a0f253e61521d5ece684571f529765 = 0 +53a06071384117f43c869b830e9735d10ea1265c = 0 +5749781cdd6029bcd67862266257ff8989245df8 = 0 +5a98361ab4d3d119f96c145d5e15a860d8c81cb1 = 0 +7dd7a4e57f51fbc5c4168c6db46ce0a351b24a74 = 0 +8f693531ef2d6d3287471d64c15f07bc955dc06f = 0 +aae471166ccc7b8fa1d5a43c5723e6bc5098d4a7 = 0 +c916331d948d2a219223716c79c8d5f5f4b94c0e = 0 +d2321a40b826f84204f90d6cbdd81cf3754957fe = 0 +dc352c9d4d60c533a50804bd6b6a5d4ce86eef42 = 0 +e8c04b739b37d8d924c2019b0598c99102aebc10 = 0 + +[1130ab10-4a5a-5621-a13d-e4788d82bd4c] +0642a7103f28ced165250ff46e8ce405735a33ca = 0 +138ee7638a0d7f592ff527162136787429175f9e = 0 +1a6783f34c75bec3bdb0cff0ccc1b9c32251ace4 = 0 +2b9c85d42790007fa14906b79a2a75dcf4a97a0c = 0 +6f3e9ab8b87536f475ec1f2a51b14b0373efa423 = 0 +9417bb21944d4fd7ff7f039eeb392e0998fa112e = 0 +b1cc279b9cc6b7112cb60999eadd998bd796ff6c = 0 +b47fc68e82763d04cc2859e18e4eec7b4540e4df = 0 +bb0c788286d396ea0fc807f6590252df092ea290 = 0 +bf0199b153db0d4d457e0af6a8ab7ccb62254307 = 0 +ca6e9bd5bc3fe7089db0690d4458f5522986a0e0 = 0 +dc23e452849572ff2f23c016c6b8c797cee326ff = 0 +de5e0643aefb917b144a8a0e9c184b3ce1fee287 = 0 +e9d0efc0b3f6625dbbab1beeca53ab6bd4fb6df0 = 0 +fea5b0ead86523b1577a67bfdbdf676d4fafa24c = 0 + +[055956cb-9e8b-5191-98cc-73ae4a59e68a] +692c2fc00e5eff13a36eb442fde224f2083ba814 = 0 +73f3852c321579270ab1784c076c2ed41b40f585 = 0 +bd10263509c5c56d04639bce9e5eb436bc3c6e7c = 0 +ed95399f33e64218e71643ba748ed8ce55d769a0 = 0 +fce08b7bb68ff5e3493ef6ee2b6aff3e00541a38 = 0 + +[a077e3f3-b75c-5d7f-a0c6-6bc4c8ec64a9] +02c440d405ac8c049b6e351a54939f99425ae049 = 0 +0e7f78499860574982db4db61209dbd32674f83f = 0 +0ef4b2f87be5ff5fa3bb28e8de12392ab6409ff8 = 0 +138c102867452683b82db4579c749a5f36cde83c = 0 +61cf58991f979eedfe4899bb7c73075f824c0225 = 0 +694c3e08fd2ec4d6125ec2760c494790590d570c = 0 +816bda7442cb323784a1786314c6da687f13fa68 = 0 +83123f357fbeb3ae38d6a1f401d929865a590c65 = 0 +a57d3ed8e33a5ee6595a2dce7ad78663be40b359 = 0 +b0ca3a0d514083c7c876bc85f40195de6daa1729 = 0 +b570b8cf3833825e14af12de231624f92c476afe = 0 +d60400bfd459c4019c7c40c7df1eadba9fb79743 = 0 +e8d4dcb213b93f330ead1955a6db108ad6d2b417 = 0 +ef037a7865ef322872e505f29393d332c6ff8761 = 0 +f406dc3ec79950e63d79215f068a1e650e9f66be = 0 +fa6beb452c1afe21b3ffa47676a25538733b5818 = 0 +fe37c4b3f2fb4d808f5b681d3cf1fbd079fb7f67 = 0 + +[41bf760c-e81c-5289-8e54-58b1f1f8abe2] +32a1f1058e21db8b0935ce72cf5a5ffc42a84636 = 0 +36ce77aee33335b3344623edb9c28f4327ab247a = 0 +3c6fcf760f381888d65f70dec235ba139871a3e8 = 0 +44476b99c3f7641875c82c92762287fadbdb4250 = 0 +5209a8d5bd5ad24f52fd4cd628e6472861f3ddce = 0 +52deafa384b46dccf07b475bc41cd4ec0227be67 = 0 +565c0194e207be0ba087131206ac2af1c5f366b4 = 0 +6633d6c72cc775ac1dabeecee2cfcaf94d6791b1 = 0 +89a4d10352336d50fed55fec61ef39fca1c21696 = 0 +900f3b9403cc3bec9a3ec2bd97a94989e364f0e7 = 0 +92372ee853cc0e47ce5dbd760a4bfdcdb80e2806 = 0 +aa027253b9c233f2e2d11267e6be3e34b37767e0 = 0 +edcfdb253fb11376926d66c89706a5902fdce7f8 = 0 + +[ef61062a-5684-51dc-bb67-a0fcdec5c97d] +22200784fb37bddb21863c2e57a4914289a1352e = 0 +81d5b7b145d299048877f1a45b8ddea4993ec176 = 0 + +[b6128fcc-59fa-5305-9ee8-8a745badfb2b] +fb73d7789383ddd2ca1563318d1ac3afe96c5b87 = 0 + +[163ba53b-c6d8-5494-b064-1a9d43ac40c5] +02f7ebe4e35ca4eca4709e5375bd0cec2f53cbc1 = 0 +0e698b217fb1d7244568a52e677610fb9928528c = 0 +d49bd6d78c1f600bca237467b375941bb5a3caf8 = 0 + +[b552c78f-8df3-52c6-915a-8e097449b14b] +01133b05720051bfb1656db7017ac203afd1926a = 0 +672d1d0cb9050014334ea23914e138e769b3aeae = 0 +fbc4850e219ea83b1832f38d001fe0bf9210a50a = 0 + +[de460e47-3fe3-5279-bb4a-814414816d5d] +5d593d914c7b9b172a60c87a4812a3ec98d3a959 = 0 +b805c3cf94db792a49f3b8b855b3edfcdf7bb067 = 0 + +[87bc27b3-2e72-52d8-81f8-01e50e37e50b] +afd55025791b22ffac0197e4e83cb01c06e85ac2 = 0 + +[9cd584b6-1a68-5b24-b787-24af5fbbf48b] +1a3f3e5635c756617c91396e4a76cec6547a9bc3 = 0 +bea55a8a203aa592149be63b8fabfd92a4d14339 = 0 +d1d2fc2a7333ce75a93eab6daacbad8635908c70 = 0 + +[0c46a032-eb83-5123-abaf-570d42b7fbaa] +057c4922abd08b410ac4b8e0782684ffcc68eaa4 = 0 +0e86aabab5eb023a97e44cae2d996c5e4ca3a804 = 0 +1c4001be9f6f5ce4e1c0b0a3da98f15121f00b91 = 0 +2e30206001f7c729a8115bcb3b567ec94eedcf7f = 0 +2fea5c79be4c10565efadb641f0f9defa1abc9d5 = 0 +3db2976b60ebc59b7469b8998ef7ba16d9d9c9e3 = 0 +4391f554a5c3916513ec386a22e228cac7c50bcc = 0 +48c7554d40e08e75376b618025b33886c0e22534 = 0 +4cd4f310e095f655c10b33c4a6b99f56ed1c89f0 = 0 +52a2768fcb065c20153df64eb77bcb32568fe529 = 0 +568ac3f72602e495d57c77f3bf258105e2a929c7 = 0 +58c0f0c9ac8be6ab24a3f79fca5436d305d6f232 = 0 +664c809b3d29a71edef68cb1b05d258910a4518c = 0 +6cb39b8515e51f0db44c1b57bf1918db33c163e2 = 0 +6ce0ba44ba844b5b4ec5ec5393297ed3ceb9a6cf = 0 +7a85898cfb895fe0bed23b33b8e99219e7e107c1 = 0 +a1a128600411fae2c40b5ac5464d515dec32830c = 0 +a43fc91d5189471c3cbec28d5fe9b07a7f3aa98f = 0 +c0629ae6e6d359e94206f826a235f2aa9ae18b53 = 0 +c1793eb1a4ef9adbc6fb3d231bb380046da963ea = 0 +ca71be19e0cca11ef5df2b048e4c21dcfb47fdec = 0 +caa315c16ad505d76a5c5901f81a9af1efbeddc0 = 0 +d3f62dd47b291bdfb56c6d594006a3ff6bbed52c = 0 +d4f35822bbc9882fbfc6951330acfbd26d99a7ed = 0 +db1a0294d1b75cec5973f4076a2fa0a797c1b417 = 0 +eab10c60d3e81a0328c5fbbd4272d41df9ba57bb = 0 +eed0efcbfece24331ba32d76bf38d5e33a861eb3 = 0 +facb5dcc830a5dd305aaa71316d32622c707a088 = 0 + +[0d03fcb2-b6c8-5e3f-827d-1089daad1804] +09e5d7df5a0fb185897b1df73404574ccd681e93 = 0 +2b65660d4f4074d023d49110e3a3a8c003556a2e = 0 +2bea8154329d4a8438c9e5139613cfff5a384b68 = 0 +398c162d64f8460497b15605137606da8aae265c = 0 +6360744e8842487049fffc03c564378bc884ca21 = 0 +b570ccd5704832a1905585350c7e8ab416f50a5d = 0 +f57cef77f6909c551a7199790bd0c4593272ab69 = 0 +ff7839f25db015125edf6880fb54c9b1ea64f3a5 = 0 + +[c619ae07-58cd-5f6d-b883-8f17bd6a98f9] +15a949a73863b705bf37173602d41ca06b1d8d2c = 0 +2690f737dbe86fa21e3bc463f1bfb6013f916cb0 = 0 + +[45408861-6e75-55ae-b01d-c0d3f903bc50] +ee301b8085aa2a208610c7d8921cac06c2ed1aff = 0 + +[a1b8beaa-0f25-52fa-b34f-c7db7ae101e8] +19a08d3bbe26a5f32eaa7c872520fe1bdb8db844 = 0 + +[6e83dbb3-75ca-525b-8ae2-3751f0dd50b4] +1ffbff16411257f2dcaeabb4087ce2ae0d960097 = 0 +2c3f5c8420d3460f4ae52d276a85897455c44565 = 0 +476bd074d12233baad9d87a4f63afeb7019b5766 = 0 +575339f0399f135c4710cb64e6106420e4f72048 = 0 +728a1281c1c2ab4997983dc7eb49ede6dab8725a = 0 +86642958566785956e216d469ee2ba8e77005113 = 0 +ccf7f5b453d0d1aa42b7a9754d394e0aab138d49 = 0 +d84cc06fc6ef968b43c3f12e50a2920c12381978 = 0 +e5c8e79701cde5beb86dca1d60c3ec00a06d7130 = 0 +e9fb57d0d155a1b9ce505b0ed5760077b3f2e229 = 0 +f906770b1403228a75ff0af3a62f06cdc5af87c8 = 0 +f983998c7ae579030a5815f902505af8595628c7 = 0 + +[2091bfbe-2937-51d6-a893-7459a14235e5] +3aa456d66e4999dcb867d386e93f93f8996a6754 = 0 +ac816d77149de3447048dd7720f1de6ca19c78e2 = 0 + +[a48d5fe2-965b-541b-8ad8-ab19b69f3f25] +2fd623b5b6a3b7a1a768b7ccafa9ae751dd0bac6 = 0 +b51606029579c96a805d74069f59dc23e273d88f = 0 +bc8b67d30694083154c3a078633b5c95c74c9d9a = 0 + +[67fdca37-c731-5d95-9a19-4e7673210fab] +a71e61b690d00c7149d83d900679b0de849a667c = 0 + +[6966f90c-3441-5cda-97d6-80813c921d68] +5aff52d830acd6c1ea179ddac88f0a30119a73b9 = 0 +dc38058ffd8093ff92b0cc2d76ad5e497c77fc26 = 0 +e1b6132c7dbb3bee0185ac27fb5cffae9627a41b = 0 + +[b4f34e82-e78d-54a5-968a-f98e89d6e8f7] +187257392096a88ff6c74d456e228ea6bcce0938 = 0 +1fb4b0f46d352389882569f7545f91be66e4caf0 = 0 +3877ea49196fbc583b40353f45e506b13f42b860 = 0 +387cfe55fc11658e4023dd4dd2e87016bdd386f8 = 0 +3dec24cdd3d92892bc9b9abf9fe4570cae2aead4 = 0 +53ea6589568896d57e9f392e0d3596b8d0938941 = 0 +777aca51c264b7c0ab788cd38abd28bafc4a2ca8 = 0 +80b6c0272f03f35b840a3cd6c24f38dd3a9ff010 = 0 +a6de2f8bcbaa6ab2298ecf620cd2025538cec148 = 0 +b608c83906ad766d28b3b141d7fe6d6fb1772e3b = 0 +c93e6f8f2605132dff9aa00a862f6cea44298dfc = 0 + +[aaf54ef3-cdf8-58ed-94cc-d582ad619b94] +14575dff57e1d6e8125e4efd3a8cd434eab4f183 = 0 +345e8117b9275d565a7252eb664f4c87426e45ed = 0 +6a376d1e568e98b2efa501d1592a5eede585f727 = 0 +754b56774444e667c9b374ea56dfef21cce4e194 = 0 +8e0e7233a5b21ba67f866eb5663f837ee073d5de = 0 +9f1c5b397ed28de7bea2d1e3e5e70ace0144e3cc = 0 +bc79efc420552c29b66415c018540c75e884cb4b = 0 +c57e5152d2d9ce4fb35d2fa3e2adea130f464ec1 = 0 +d68911be5c661488e61524bee5815314306c29f9 = 0 +fa44a138b65b72a584332d28d34f0f6744b835f7 = 0 + +[31c24e10-a181-5473-b8eb-7969acd0382f] +041315226c919c1a6c7dae8437bddd61907bc73b = 0 +091cad865281c92746dc455cc50f4b2a311d3dd9 = 0 +20f819333c83d19e849dd5e1c8cc5c58e96a9289 = 0 +2348a545765d3d9f78957987b3b2c7745316d7fb = 0 +2540fe7f36996e474e05930bccd11d816566b3f7 = 0 +29e996bad486ccf375a1ccf462c1d6a4153e208e = 0 +2d0cc12f44672a3a646ae9258019a3e0fde20626 = 0 +367255408e1b506f038a2c8a4358c3ca2fd5f8f9 = 0 +3bf11d14fcc3953c90ccf59ea8f7f3839782a1db = 0 +3e8d9f946b44a99a182ad176c5c365f43f1f83bd = 0 +4303d591f5c53a067a46c94298e78604a13754c2 = 0 +673cabd469ee4605d3aa43a0484b55af3c10b811 = 0 +6abf10ce4f2fa97d5e0240fcf0124206935c5e61 = 0 +6b428e65e4766e34ed622e23b020b44faeba4e45 = 0 +77eea93ca943a98ca7f0f66302a5385e34e35eef = 0 +7c399b6fca70112298d712d23f717a507382c28b = 0 +8355bc6da5fcf0a741aa929b25f2581e1006777a = 0 +8740a30e0c5b04b61624453d54d8b4b601eafb4b = 0 +8e617b29ee7e16477c44a8dfa493da640c49ea9f = 0 +90519bcb9771a5d681ca0b726f5f90f49527d7b8 = 0 +953aa820551a0c5bbffa51eb6150815448d7cf80 = 0 +9b7d0658219ab751e78489ceb5b7407fab7faf1f = 0 +9e4a72fe98189773b46477b4177be3871789bec3 = 0 +a4568d75baa797498983ded6a1e8f0442e326b7a = 0 +a6db77a60b3ffc41e70571f7d591227e439c0654 = 0 +a71f7b48d2feb554459491039d4ca7da3384252e = 0 +b4c303e4409380846f652a7a1cf1cb815985811e = 0 +bc1255204e9871cf6d76d58be24660aa2a51b24a = 0 +caa65cd977d5acd564c99662b61ac33ffdf676cd = 0 +d144c2ff50f9ffac088b068a653e978f9c47e5dc = 0 +d1f0b34da0a7e7325c5325b579de42a118b918e5 = 0 +e4b7704eb9f78db3e5deebf68c7979c22c6313f8 = 0 +e55560e7298fc1ee0e72cf239fdc1ece6708e0b5 = 0 +ebeab79ff28f144506f6aa51b284b67486283ba0 = 0 +ed60e8f47e2867adc4c134fe0f90e8b95e42f743 = 0 +f0b12936bcd3d34f9de6659ab372af75e81ca273 = 0 +f4535a6f7d275a718c159452c86fa76aa9ac773b = 0 +f9cb2e6f5bcce2952b7b90fa51e434adb17654ae = 0 +fe4cba0efdf63c82f85e82fc8885d27d0d5dc24f = 0 + +[7f07e4c8-6df2-5971-ad44-bf349b9adcfd] +83c8cb335b4dfd4bb1923629c3c1fddeff2caf5e = 0 +e1f30f3e96039ef3fbc4774d10db961aefb2db58 = 0 + +[d3d5718d-52de-57ab-b67a-eca7fd6175a4] +01e4a28171079ad10dce860652ed0a086860d6e9 = 0 +156f18e601fc47a3fc0c3f8c820990736aa84e16 = 0 +2341256788762ea82fb7b064ad2db74d56e709a1 = 0 +48abb39279e8ad14b94ed08d8740319bba6258ca = 0 +79cecfc9992c2ef65e4f40bd230fa7fa99b464e0 = 0 +8ccd5c140ec4c782fb916731d7764836e4958a80 = 0 +ac92b9b25249f84027be7f1acde6c12fa086e976 = 0 +b4167069a1de3e0a3a7a637782002ac983080f33 = 0 +bd30b42febc51e032ae206135dd1015ad89ec315 = 0 +c67d228cd0f388efdf1c3638c72319710355bcd7 = 0 +d3b6cce1f3fdcb97504a5712caae1d04eae10ec4 = 0 +d5f32cd5992c7d430fc0dffeff633976bc08c872 = 0 +e008d04e282999113d2484c380ce8c38c2598233 = 0 +e2b3ad68d52554056b935be7aab976cda099a4dd = 0 +ed54f474a4bca619656403e2c537fd82a7221452 = 0 +f0a356e135055b008cb6ffaf978997f1d471511c = 0 +faeec2f200120071ed02e833415e5e925bd68954 = 0 +fba84f771c82f67135bed21360e5b86ed7023bc8 = 0 + +[968ba79b-81e4-546f-ab3a-2eecfa62a9db] +1956a82e509f9b7b6ef4d764d4e493b06a7ad32b = 0 +3a8e3d2722991b816e8a4e7c5e75aa72f4f8efc4 = 0 +5325529284e47a1796885539ec2c0faa11b88309 = 0 +64ae97d39448aae19add2078f865d94730bc5f0b = 0 +6ec6454dc06c3afae87b7a458499d35887515752 = 0 +831a0416653c76c7ceed2c3723f659ae7fd3d5b1 = 0 +98fe2bb6b979dd68c3d52c0a27638c4e915a802d = 0 +9ec380aa5ea8ae58f072fe196253510b9ec409bd = 0 +dbffb5c41b5dc2fc37dab22e39a1f0d8f7c7f628 = 0 +f3e9934db42df03329619f64b3f71ebe51b0eeb2 = 0 + +[33d173f1-3be9-53c5-a697-8225b67db89c] +43df1f8b70478275a50a992aeca3cba67a307da0 = 0 + +[ffbed154-4ef7-542d-bbb7-c09d3a79fcae] +0606ce81deb1e693d64b9db4f62c4649517f9e1a = 0 +0fb7e6c7b05faa4da41aec44cfed29562accbc12 = 0 +1263ab050589cd021f3e3076c2217679229e1810 = 0 +1b137918388c85c39e863ab67c73f89ab978d121 = 0 +657107d31778727ce39f5c4d6624eaa31856df89 = 0 +73fc332bbdc223d25829f4ea1fb68ee3c956ea9e = 0 +7ae4c6f15b715b5a23592b00584d17e29bcf0bd1 = 0 +8fc791130354c09145df8721e638e132f02315ac = 0 +a4cf2b837d59fa5f7b73848ce764ba4b75485ae9 = 0 +a5b562b5ec1d0fc1f8ff815c39066f4e0c7f7d7f = 0 +e4bfe3537cc033c161d7e65bff776c15dcf3e9a4 = 0 +fddfc994aca3b96eb204ec2622ae2fce091f0045 = 0 + +[e210f56a-9500-59e8-ae47-ce3a5fb1a75e] +011c701da41da6f4362be2acdffa8a8f9294c49e = 8192 +063358da8f5de205b732753fd43444a404dc5842 = 0 +0e31ef78006b15622c8c8d54bd03fe239447dd50 = 8192 +1268756ec88c21f75bb1dbc9adf82a969ac73692 = 8192 +15b90baec75200235ddb4f8d6d3bdddc5bf11f9d = 0 +1bfcb60899cfd829357c6e59fe7b2d6c17700748 = 0 +1f1f96024c7d873927a6a3eae1d800ae6f2f14a8 = 8192 +2c20270bd207664c86821af5de433c771b164356 = 8192 +2da7e26d5b9b5ecc7830eab2d1e874bf415dcf48 = 0 +33304f749ff7f19fa2961c1cea578e0de6069f0c = 8192 +341ffc1fc3470debd691d6c53e250f2c7288d92c = 8192 +3fa1c8af8deb8c8f3b5329ca542b25c09a815e7d = 0 +463c48b9a3cb9f5d6ca10caf518b6bf55dad800b = 0 +4b64bc2cf26141092a5eebd055b0109ef71b9d7a = 8192 +4c7500aaafbf37c9e6891e3b6a303a2e3a55486b = 8192 +558cc74443c77746dddefebe3a1528b8ec26455d = 0 +58cd5e239cfda51918a37ac5ea61c91509be43e9 = 8192 +689a10646e38a708b309b35a89bc48211d9960f7 = 0 +729b3ce8a074360a25f5fa5440c909ad8b9c5003 = 8192 +76ce715ddac29a74015ee8c52376a5fe3144020d = 8192 +7c344cbd79647256dc16595bb04e0a05f38e2530 = 8192 +812d05dd24e1c5546fe6d249b1270f2e8d93446b = 0 +8eca3fee2aa22c6840eecc1cc3c3be5bf6a7b478 = 8192 +948223933a4475b68b26554d69ae66b713951174 = 8192 +9f625d8da99947ea18c66fd32be4e4f2d01a959e = 0 +a39a3b00219f6d82fe6aeedc4204b4aea414f0de = 8192 +a67f5f3332ff14e42a342f67be1902ef8fe82586 = 8192 +a94c680c874fc22594573f81d78683de98dc2732 = 0 +aab6b17ead9b702b10a6d0f004665c81b7341885 = 0 +c05bba993dfbfd27e1801a07109ac35380c5bb6d = 8192 +c40b328b82b427774de226a93e6d144a1c9025c1 = 8192 +c46bce33a83684332e34d3413266291728cb7f88 = 8192 +c4802cfc31d3a305780bef7793977398fc20a532 = 8192 +c6738990966b0d5d37cefa09b248278f8170ee6a = 8192 +c82675d4a39932d1d378e954844018cefc091858 = 8192 +cb83801d60e992001144b4e13dab296fcd0df370 = 0 +d16e431760b484cdb62fdcb483b201177766d641 = 8192 +d201b036ebf63afb8d7e3221f4ee869b95943615 = 8192 +d54cd8d16bc3bd7217ad6010338f6881a0f9fa5a = 0 +d57fd80c5f15185cfbb67c5baf62dae50f142a9e = 8192 +d6c0c549b5a5b4f7b8f58aa54b25e56c59eefca0 = 8192 +dec23ce619d2d1386188d1625729bec130f7ee4c = 8192 +e618ae6c6747b009223697f6f82128a1518a9784 = 0 +e9d005b937741bf351ab90903bd922cbb79c9903 = 8192 +ef16c7eb9bb43322f2267ff0c746f9ff99fd5023 = 0 +f281fcea9b39b3a323a156b83bf30ac0c0ed2749 = 0 +f648849035531255854ad2168f94c37c719a7bf9 = 8192 +f93eba33d8703a0db3975aae06f70446398c1897 = 0 + +[15bad361-1dfa-5a14-8210-7c6791966b1c] +e9d0dda2a5ed19e7e4a87baee58bd85425822417 = 0 + +[ffa9a821-9c82-50df-894e-fbcef3ed31cd] +a3aba9c34f2ea5d4b95330286d6f5f7ce9a45098 = 0 +dc3163ef1fec03a095e65285070a38a85c04c37c = 0 + +[e1f3b4f0-2dc4-57d3-83f7-d4b7faf3b05b] +13ffa1e03ba1081dc500f7a249931e0d97e7d264 = 0 +72ef9220d5acba2ece44b158b11b468057b0a2d6 = 0 +be0e9e065901390199b06088269cf03ba8b0b9dd = 0 +cc4e54b8aab8623a115ef1dea2bf42bbc436eecf = 0 +d3db0c920e37b46a8ebac13fa09aa0f961f18399 = 0 +d91fb5043ecc9ebb6989038b0667c704d0b04a35 = 0 + +[e30172f5-a6a5-5a46-863b-614d45cd2de4] +0d77e0abbf2a545eba176a6c4d6d04baf039559c = 0 +11f7132000fe15176954bce599882a433c7164e8 = 0 +194db3d1abaec7156289ce8985adf783fd3a2d6d = 0 +25a6f2f56a9d73713393f6ada254f6884fc5d2c7 = 0 +271394e53e5749a13a00d2470159dab562a88ffa = 0 +273953b0dbb6fa5d56bfec888b987450c5f1df6f = 33554432 +27c3dccf769c689a61db91d983062bcf65b31893 = 0 +29f712fa87cedfd29282fdb1dd4464a754dd01be = 0 +2fbec9a0db5c3bf4fd6b3dd72d415d11600817b2 = 33554432 +31f4f43feedc272e1a85ffd2ee6ed03bf49e5083 = 0 +382b00b09d35d51478a388a0d2bbe8429542c9b2 = 0 +446ab503f658c408ed3012ccb57fd2c399c16e55 = 0 +491c97749ba687d16ccc80fd7c914ffb09122415 = 0 +4a3d6702d8da241e5678cb70faf1b31d292d16bb = 0 +5148b83ee163c6a063adeaf9ed602fd555ac422f = 0 +5282458e0c93aef7ef1f55e698781aaf4dd4097d = 0 +536394956e5a1bf6fcf96b62e2ff9bf9496745d1 = 0 +5593b8f55f6ab191a7fdf76df867936a19d9e83a = 524288 +56990dda21faddd7613ed6db6912e2a30b6299fb = 0 +5a6cb83b46aa54a739ee5166582b8bb4c39a2ee8 = 33554432 +6648ea57a36651c82d4a7583352f9e658386381c = 0 +70225b69f5090f870635ea4928b3cbac9f4f0fed = 0 +705568347d43564c136127d1d3646f9cc729b040 = 0 +7059478e1de68bacd5798d404927fd2232052f6a = 0 +743a736ec9e0d3dce9bb20e6d52f07352b802671 = 33554432 +7613893ef11528589d9f151fd16a6578ce1da363 = 0 +7d7e1b519523633139e3afb3a9be40799b480d14 = 0 +7d8cc186bf787f37d517d0cf8475205b56f23900 = 0 +7ee8046c66168cd635add48cc2f5a32260c1bec3 = 0 +8867a3602845ea21daa085ba73fd2f7d2b07566f = 0 +88721381f35b57ebddcaa9a6088e879f8243387b = 0 +8a852ce3d009cae6f138a4a11b2a3a838c2e6e4b = 0 +908efbe7aa8be4c9d157113bc939a0ae3aec4e83 = 0 +9c23e4d43b9652b2f3c8be8adfffa47db779037e = 0 +9d447cf758628b25822fb4255326418c16e355c6 = 0 +9d5883bf7cb290c27a29db05925fbeec66514384 = 0 +a40fa719e43efb474325497e3f265491bc07faaf = 0 +b0a337b94b124affda5d9ab3a957228238c2e1cb = 0 +b27b707da585ece2beb251b4112181510b72db34 = 0 +b6d308b07ded1ffa3184e59463a61eba9610cc00 = 0 +b7c4d5d2a909fb432bec8679b80d3266e0d00366 = 0 +b985e524f2808be5b1a6dea58350d9969a47c6c1 = 0 +b9d42a39464f6b059cc8fb70cfc2641ccf7dd029 = 33554432 +bab60cb966fb2455b9672063c5d8c88f4f1c00d4 = 0 +c189f738c33e2e07103ba05478d84b0098ed2501 = 0 +c5be239597babe9b7ffc1c93ffed425a2f149c9f = 0 +cae54938b8aba174e613a81c1b663106a8600551 = 33554432 +d7cdcbb39a9d8b6d2dd94e52e90e1782b2a320c4 = 0 +e52ec25e060bda16dc18e85f681144ab1845a49b = 0 +e8f437a73baff265a40bf099132515b71475a5b9 = 0 +f3d7d191e6fc63af67309ae7debb909c358ee0ab = 262144 +f97c077e42eb8c5db1f2ff0f8af70eba8b665672 = 0 +fe5beddf966c6a525858656860c38bb95e66e9ad = 0 +fe7540fdb657edd8b841d652021071a0fbe935fd = 0 + +[e5c7262c-e9d2-5620-ad8e-1af14eb8a8e3] +14e4cdf6ca6cc477b3622306b4a13a9f287cec36 = 0 +70a2b4d6f7ec6b8f854055ed658bdad5323806e3 = 0 +7a87a425eb7ccf071237574f22953f714b2e454c = 0 +cf7d0e2c4bf61dbbc0e5accd7f14227bbde7a461 = 0 +d3cfb2032598b0f620be380af310c1816ff1c263 = 0 + +[9d24351c-2990-5e1b-a277-04c4b809c898] +1203a43cf1c46cb14fc78dcecde320673f3a7311 = 0 +19cf619c7107e5f85e8530f849c29389e43cca77 = 0 +7ef705b432ad037fdb9c0db9c8755c0023026443 = 0 +ec4a855023e78d7321d842e6d8aa1c9a3ac54605 = 0 + +[ba2bc401-841a-5809-9698-816d55b3f113] +43ad7c9f32a07828dfba37b86faeb7ba5db05732 = 0 +44d5de7c95227f2803b93fa018733274f328b716 = 0 +7584341721f6d5e55a41d9b979554d4ea69745d9 = 0 +7f628586543995c037a9bd482510fc4c897c776d = 0 +a1f2a468e5927b7de5e375d2a72ccae2aaf15435 = 0 +b4928cc731f47a7506502c827540954881e52c10 = 0 +c0ba344482c39f6bd91d70b303e19999720d6906 = 0 +c10bd012e7180ad80f3eac05a17aac1a33ee3595 = 0 +ef1f274497fb5500ade359fe7ccc38525a22e7a0 = 0 + +[7c93e712-f81c-5805-81f7-1d3602bf3f15] +5ffb825561ea8c5246a8da1e2138ffdedda9b8e9 = 0 + +[2f22cdd6-88d8-5d3f-9c50-37b200e63d5a] +295941d4a8acef2d0017d1204be885569eed721f = 0 +8cfa59585d8190b2366e03c27697e8e7b702a37c = 0 +cff5b153ff85f1d9246678f3766887e88bb905c1 = 0 + +[49c7015b-b8db-5bc5-841b-fcb31c578176] +465ef50f74506ff457fe0959d1e106a9613b94f7 = 0 +4cec409f83478878476834cc5114cc3135c91247 = 0 +4f056e6890f115c1993e4d1067e957ffddb5254c = 0 +516c69e5f2e0c8cc2fd5baf12aa2bbb733740454 = 0 +856bdbfa418cfc43035b83b7016975ff0829cddf = 0 +a91c8bf159d4feec52e3eeb0a60f25de6c3d320e = 0 +ae57d0efd15c0a349092c6cd0195ef67de7ad6d4 = 0 +ba69369a64629e594da998a71271932a67f1c459 = 0 + +[9ae72ec6-68ba-53e0-b5b5-d14fcaab5b43] +03003e3855de1c8e8de609181bc5f5aee98d3cd4 = 2097152 +2369fddf274ecd87d13af68c55efecd4c8dfaaec = 2097152 +39c0a4b8e7316ecc5852f3a7e0d200e53bba4c62 = 2097152 +4a13211b7537c48715988bca19634de71ca76a55 = 2097152 +4d4134afedb12a3e36047cce90d75884df1ca32b = 0 +5a5a584d0bfa5c055593cb353326349c8a3d643e = 2097152 +f5e04a3e59dc90a363d88b0e325ad3899724566a = 2097152 +fce3f952026c6edcd68af3416f51bef226bf326a = 2097152 + +[c1862a82-0df5-52a7-b029-46f549b981ee] +e8425940807d4f842edf0fc74b7d1a9d8c3cdce1 = 0 + +[2a33fa5d-563c-51b9-8885-f62d16798090] +8511788315ddf17335c394691dc470e9e2a82a45 = 0 +b118fe1207c47973d53b9628ec4baf5c6af3d735 = 0 + +[9777e3ea-c9c0-58f7-a64a-625c82e13989] +2b974adb13c4e234d70862c1d33728792f99f05f = 0 + +[fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74] +07742616b1e5d89c1f5a4fe974411bfbcd7fbc57 = 0 +18cafea0b1cfc76bc3c06550881f6259d0a95358 = 0 +34ae2b236f4853028fc60a5efed42bd17a33230f = 0 +4c371f087a0e950a59301f6d669673010c65ef5b = 0 +652127f420d036278b8327f5327419596e7d11d9 = 0 +7d4eedfa1bd6c0af7d844d085d0c2ce6b2357aa7 = 0 +9b5d94f59254ce7958dc991f9e715af32f0497b3 = 0 +a9a47656fb6b70e5788551696f133cbe7886ea7b = 0 +a9ff70a8231e0b540a6b4366030acc0f33d9d937 = 0 +ccc83f8c073ce8f2668141a733b5084674f5b0e3 = 0 +db11ab85652685c0ea25f4f08f7de96ffcd085e6 = 0 +dfff532572bc7b7c677fa2323c6e7a239c416709 = 0 + +[fb44c06c-c62f-5397-83f5-69249e0a3c8e] +1ecc69768fc3b597f5808786fe472dd59dc99638 = 0 +a3752c454e52fb048ba228d77bf886e94b8327e5 = 0 +d91f4b3ed2db356c19ab87a8192cb3b4c228577e = 0 + +[0514ce98-527e-5c83-a6f3-1386c478fe4b] +8d5ba82ba640582a57b25f36001f37b41724cbbd = 0 + +[f0bcf1c2-6904-5506-a045-902aa8edc50f] +b047ed05de675be919cb200cd4d2f181e1c74411 = 0 +c685e53e6aff4fed1a9d846e136336ca270e7fce = 0 + +[14f6b274-bf6f-559e-ad68-649875ca52dd] +0a68a52b357520af7b2990ffd184078448706b28 = 0 + +[bbc10e6e-7c05-544b-b16e-64fede858acb] +4b7cc864fd3f7faf7372f0bd9132519cf1b5ae7b = 0 + +[c3fee2e9-8015-57de-85e5-c840d3ed97ec] +3a74fab646935555b0c55eba186282233a53a20a = 0 +ad128ff9abf88cf5285fe4e6e380e1911d9329bd = 0 +e91b758a2dc4180de15f5b873e76d42458f0edfc = 0 + +[7c1d4256-1411-5781-91ec-d7bc3513ac07] +2af043b52d818efb98fdbdbe9b1f2834debd5ca6 = 0 +487945b6940c50cf2f0dddd2215536ec3593bf9c = 0 + +[4986ee89-4ee5-5cef-b6b8-e49ba721d7a5] +0e602437de741fc670e638f1693d071569485ccb = 0 +1c9bf1c69ae61a3e9b3271a994d749052a3dbc8f = 0 +444cdf1afc921f78325513396dc794beb1600010 = 0 +4a0aee413109007c984658aa210744e424b0b867 = 0 +4e994b33b35ffcdc52fa703d8e6c51a5b45a87e3 = 0 +5e6a230fe855906967f86b0221e74994904cbf20 = 0 +672037455e605854323976a40e57eefbee6cf3d9 = 0 +84b1149152a51e75b2d41474741d927cd606b44d = 0 +9a0c5d8c8a60405899eef92aa19e1c83807d5b16 = 0 +9cab426267b78ae27e5a5ef786b92ffca211b3ef = 0 +b7f2715f172c27e3b0f531d7886bab779ecf465d = 0 +ccf07faf5cdb4990bbf01622ec06648a6b46f99b = 0 +ea1e80e6e07eb3fc801e6afc26cba0d0fde21fb1 = 0 +f2e1b987220e8bc79ce4500ca872ce732983eaa9 = 0 + +[61744808-ddfa-5f27-97ff-6e42cc95d634] +0d0b17b8f928a01583b0caba9ed64e1c6c4c964c = 0 +2233e3a22cc1c88ebc20bca6e5fb66d72b4f3f9d = 0 +2a8556ac9c0823ae354e8018f00744f661d8d028 = 0 +66939198def2c599529760fef0ba86f27ec22043 = 0 +839f85ab012297aa241bf7f4d58becfb110a6fd8 = 0 +86f2f33c5dd6883dc715ddace035e052549ce181 = 0 +909df5b22e36e9ea75dedc2a29b556482f4ae040 = 0 +91a2d75cae42131348c08c0f5413a12ad588e95e = 0 +920dc0a7c98ccde364c671af3c3b2ce50ea07f98 = 0 +ad2b0c0e81e05f7cf3c1bbd69ed79b6cde4ae51e = 0 +b0f9b09e294609e45864544729e4f7373a15d2eb = 0 +d2ded777a580aac999fc8d42882127ee584fbfe0 = 0 +e1ff4a6052343c43b6b11469bef645574ea17fe3 = 0 + +[6e36e845-645a-534a-86f2-f5d4aa5a06b4] +020890d73ecc896b46cd197e7eb0887a58703313 = 0 +06df5220faa72fb1259e3a6947786926b136c99a = 0 +53efb85e448ef371cce72bf9f5bdf6505d026374 = 0 +69abc031d145a7541a98e48163be4e951efa4709 = 0 +6a2698981f621b28ba4be0fe4aa4fa08e669ceb5 = 0 +6b9a7db4e422554d859997a7fa7f52aeadafa448 = 0 +71b39100954b23356506a5bea62306740330a764 = 0 +75891e0696a3b3de3caeff328ee6e567add062e6 = 0 +ba571c23b18f3513a08598e791e1769c2f80fab6 = 0 +ca4a2405590072e3fe38099586666fe5f6d3e0ec = 0 + +[59263001-193c-5fca-aea1-eb837d381d31] +0a00b00f578aa7965182ed4d9d3248308831f41a = 0 + +[f2bf48de-049e-5a34-b3ae-c1fab075c4ad] +349a8b0abe6b092dd58377b9febb81fbdbc5dc43 = 0 +40df36625a06f31970bf8b5a8f07f527d5298b20 = 0 + +[e2685f51-7e38-5353-a97d-a921fd2c8199] +04413b68f9d4b70af8f4742b865e4f48fbb17a79 = 0 +04ca4bbc98c4729970cf65e4c477824f19b81c52 = 0 +0bc26dea8994093b31f9d6920fb81a2faabf1fb5 = 0 +19898728d90f758b5ffc6c7020aab742abdfe4e1 = 0 +1b4cc1537b0bae3bd4f03cbe1f9c9473761a63ac = 0 +4209c24464db1f2b05acc7e71efd8cff3f236029 = 0 +472b3534951b89e1848db4dc806f4d25ffdb6686 = 0 +599d5bd365fe230110c66c92bd10c262b1532af2 = 0 +6bdc96e051ec65a94a0eda29c78d0c6165f22cfb = 0 +74a0d0198f9d1792fb391378bee3806621daa0ef = 0 +77fd695ef3c08a93c999245bd7b786c167ea68d7 = 0 +8ae212231fa6d65d0d020a361dec0902991f466d = 0 +8dd805c642c11a0f54c82807b598a069a8777b5e = 0 +99b224ae7cdf2b794393ab352d15b2c0c804e173 = 0 +a8bda52a5d18d99626c2d58cf7b73038bb62af83 = 0 +b32341efb61a11be26a061675989ba38662e126c = 0 +b7e4a20cf40693d35452b24a0d73789d19bd0d76 = 0 +bc7a08aace67ceb246091ece6893286da1a927ac = 0 +c822c76401c82443df13951084437c03ff623cb9 = 0 +d23254a6605bf36a4a1ef73912d0b650f3170c49 = 0 +d524789ed7bc66f63af25daae1cedf789533b863 = 0 +db17f315964258b79dbc9eb039268937359e5e39 = 0 +e7addc8895b623ca03bc8b054feaa81899a380fe = 0 +ed0330725580b8591a813c2bc1272fa130560b67 = 0 +ef1b05a134aaa9b3a484e3db8aba5d8590062bd2 = 0 +f2e9f45dfc4dbe318135bdfd56bc5fa494fb5899 = 0 + +[f9630f5b-a116-5b0c-bd6c-4699aee17694] +b0b67efbd728a9387269cf60c9031ca883088378 = 0 +e5bbc157338cc5a460f5e46cc0ddbc5e9f07abc7 = 0 + +[70dcca16-fae7-5c11-a923-39bcb60edd10] +3bbe14f1f287b147b8713768dcf0269608e7e61f = 4096 + +[62dc39e5-5d88-5cae-bbc3-a4b2e7a5ebb3] +53a75b24f9e5e3ed48c4a879f45bfc6b7d7a1d58 = 0 + +[b9978a91-65ec-5957-9779-2ce67911a7bc] +07a2a38bd3d637be2d078fc586274d74f5eb0d71 = 0 +2b8dc5efd98354951b1b189a22e1e90b2349274e = 0 +9883e7a7888492412735a8a2c4fbbd3714602102 = 0 +a4b1cc52833d333b83639ff2107521e5db723202 = 0 + +[8acf8dda-514d-5c36-9488-7e3496cf596e] +2287634af4918f9c1d91d94d583db6d9e08e5430 = 0 +4b54152a52165009cff5a3e25dea02466cc9e9a3 = 0 +cc12981f25aa3340b754c708214f8ab487e619d1 = 0 + +[17511681-8477-586a-8d98-4cfd5a1f2ec3] +0d0f1e1e7b7a98082b39d843c33a4175e0d0a66e = 0 +0d44bce524329767159e637d4812e1f56301c44f = 0 +105e36b052cbcc7386a560c386407d419ab2f70c = 0 +23af69b5bcc3c0f8e3bb93cc77d47c8128cf5f2e = 0 +270a2df868b36cc4200ede206489eb29406e5165 = 0 +40fec85c761f21d5372f9745cba18e5e09a6979a = 0 +a9594998b524bf44dd9f0ebbb33c39c4588464d0 = 0 +e364e98cf9b1ad09fcf72ec601c8fb95c3c6e561 = 33554432 + +[5160dea5-cc57-53b0-be5f-ac191989508a] +0af110e698c450998f26b6ec809283b932fcf73f = 0 + +[732a3c5d-d6c0-58bc-adb1-1b51709a25e2] +04d751ed36aecbcec87c584d13fa726f24c167cb = 0 +2420038ef8b65ddc147ef497b240c79b933eb5e9 = 0 +357d7d40dfcb2eea82dee85dd0a2107525d2e120 = 0 + +[6d4c0e30-93e8-5ed7-9696-a156cecb047b] +358238081ec52731eee53b45d35cd25b313c1502 = 0 +b80bd59ae894e2a867caeb776afd8b82527cbd1c = 0 +cb3577ac5fb6e689bbec14047a0ee4677df964e1 = 0 + +[491a7021-2a71-5fe9-8857-4768b8bc34b9] +2d116f3782046c59824bd6d26f1d7acdc4ad758a = 0 +4de8f7d71484a7c168fcc2293285bdb2e5aa96ac = 0 +537522ae9bdb5c47495ec054a9f52e528e7314a6 = 0 +6fe373c613eccec5f939f0a031480fce43b6d58a = 4096 + +[f7cf5433-e9a9-5c98-8d71-a3ee389f50ed] +88da1a17192aec0e571804ab071c03daef6ede52 = 0 +b413ca1225471b204d579c623c7ad5cc34997c22 = 4 + +[b552381f-0f71-53e8-a6f7-7453c63830df] +da8cf123089d9acb26e1879e27e68f786a25cf4a = 0 + +[ba70085b-a8a4-575c-9558-0e347d50824b] +ef65c5a69233620a58136d30037ebf723534c0ad = 0 + +[0f160d28-7819-5803-9275-299e9913be39] +a2c57b5504eac8cf2bd68e0d047e5612dcbb2192 = 0 + +[b7d42ee7-0b51-5a75-98ca-779d3107e4c0] +267f6900cf02fafe1d7dcfa538e56d5b859da1f2 = 0 +9190e4046f2bdba2a39670b6fe43895ad37b328d = 0 +edc0001e83e026380575445cf16b8e04f38c1443 = 0 +f38597615220789ec376cf412eced652976367fc = 0 + +[fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4] +17257907634216f57dfbdb08161e8978a260419c = 0 + +[f9e31aca-17d0-553a-a5f4-335c39cba33a] +06a807f33da1f3902ceb995251c38813e3a45df2 = 0 +17254e66bdf0fc60598bbb7a771b661e8be7fe12 = 0 +17ebc7d616b6f8de97120e2e4aa1c643071b482e = 0 +2056533035c58656aee7ffb6d02ed3ae97ce4198 = 0 +2d9c940126347e9c418c58f30cc96b794a32e78d = 0 +450e263645f909469bdbc0b8f77a3daa7cbd9d84 = 0 +499240ca6d87d07c06a94ff3958884d88c1fa534 = 0 +64fdefa28d319f29aa89bc1ed9e848889d23d1bf = 0 +843a94490cbaa150cfe5dff0632934c5f9603e9a = 0 +96fe60a528131e6f78e19a5b18dcd134c98f5860 = 0 +b0492f499b7f33dc448635cb3bbe3154a359615b = 0 +b18f6cd5907c6c6dfc4c444de520f348e5b78fcb = 0 +bf67c333e0c22c0ad691f3be4983e453bbddcd4d = 0 +c02a1c9ad2682b7339e0cafbc17e3737c951179e = 0 +dc52f5876937113723688ef3250ecdb2236c9ada = 0 +f285e0c6a42fae21780546db55987e5f970652de = 0 +f7ac87d95df83ace308c17061c77f47e6f756251 = 0 +f82693b7ca5c35249f978df45d193432452bffc8 = 0 +fe9852231d04672c0792f2ca7adf754da0874f0a = 0 + +[a1bb12fb-d4d1-54b4-b10a-ee7951ef7ad3] +3e45484ac5b03065e09041c091b87acd1f570cff = 0 +da03df28b7404695b44f511df499ab45744aae02 = 0 + +[902c3f28-d1ec-5e7e-8399-a24c3845ee38] +72d1ba046aa4cfd3b561f6d2fc9b9321a7b209a0 = 0 +94af2a2c58371d695736cf13a790186d559f6869 = 0 +c10694dcffb588b7972dbf0780626940cbf71b24 = 0 +d047d61993fed5547842ff834821d5357ce4a08d = 0 + +[da5c29d0-fa7d-589e-88eb-ea29b0a81949] +12133522c72f59c88f14e0237603a7351b4fa28a = 0 +59c600b57b38682a9f22b5558b731b52b3259ea4 = 0 +5f5ff74a40a3fdefd23fcce44577cf7fcee51972 = 0 +8411068b62cdf93129722284570fc44fafdaab43 = 0 +9c744b1b1f95ebdb7211f10ba23117b9d831a0d0 = 0 +ea0b8d5b512832ea77e758ac44d7b8a97f1c194b = 0 + +[b305315f-e792-5b7a-8f41-49f472929428] +3f39ac12e25a4a04a69b8203a0a5f34e94575d93 = 0 +8406d3920a5023c07af1e61d6cf6d2507755f4e2 = 0 +980c94266c78938b65764ec2c71b2ce1d602ff6f = 0 +9b903e261f4144424bcd6521c973318655d30b0e = 0 +cdbb7ea57ffd6026a7385b98053b9aea91c040ca = 0 +d272f7c7da5be78ad4248478b6be5d8e4a1edd7d = 0 +ff9e2eb06304219ad3936e766b407b09fd64383d = 0 + +[28df3e28-0a79-56be-9a03-a8ecf656ae93] +513cf227f57bed5d23dfd23f94f63f474dc0ace9 = 0 +fb9d030c0a72495bf5ad0c5252ec8bceebff19d9 = 0 + +[0bb624de-12df-571d-ad84-47aef8b93290] +1c121bdabb907b09a6a7911bc30dca2a1b03b8a0 = 4096 +2f4e66921193dd9f93b4e69bfa7de07116c2a588 = 4096 +795849c8a8d7af395052ec91ccf1f9fa9fa33204 = 4096 +af2e0008ef8d6e340b6879f380ebba74cf2ecffb = 4096 +b2378701da6ccb7b8a688a1dec146e32ed22e782 = 4096 +d1103f23a7688418b98997eaf483bc7f24d6c60d = 4098 +e0013c68bee3395f0307e7db50c977818a52a2b0 = 4096 +e0b4bd9eac9b32fa254f0646d10757aca3b549c5 = 4096 +ef9cda6c655fc45d6ef4724476215f7bc12333b7 = 4096 +fe9a4b330712c4ca21fd6395d5259858330423b1 = 4096 + +[07022389-42e1-531f-a782-428ffad55639] +0a29d43e973b7d183b3010a30c65a64d63ea4381 = 0 +3b27bc0d23a49877059c1a4746c3c26e74e34807 = 0 +4548467d0202c73bd6f0272687fb5a6d2c6b64dd = 0 +76ebf88d7b6744788a457a8fd9cc0414b8461cbe = 0 +7f0428a21063160248d7dbb8d96ffdf18e6b7ce9 = 0 +94472c1fe8e49ba14be4105de3241ca5b5772a29 = 0 +a8275d6d7482d051033715812c0bff30f5634594 = 0 +adaa5fb738f18a53d7e1ddc3e27618a4d020f512 = 0 +adaf1d0e4a441f0f8fefaa2f8cbbcab87750349f = 0 +f815dbc1bbaa0a479ad55eda4083ba4a2ca267e6 = 0 + +[340492b5-2a47-5f55-813d-aca7ddf97656] +156d1be6b3e0165fb70896b00ec959715ede03c8 = 0 +1a895fa3f48c84a8d7dd0424f8f84aa8d040570b = 0 +67fb74b9164c07f16068bdf7331f617a3c952c65 = 0 +c92f4229c9d0f24fc92b0d1fb5d1ed443c6613af = 0 + +[a9e4a3a0-3b51-51f6-8ce2-a898b8c5b12e] +02c11bb977797b587eb51cebd0a44fef892029d4 = 0 +293191b84c12b5509e9c8d42a3e25ffb12de6869 = 0 +31205e66adb8763e71496a4439d469cdb35e4cd1 = 0 +4cba32e9179119a8b3e6318ec1ee7dfc237010c2 = 0 +a61772a7436421e7f94d8a29b670601e44c5c1d3 = 0 +dc37d19526ac577b450a87d3ee4de99c8dbb8ceb = 0 + +[3d39a06a-b57e-5769-b499-4d62b23c243f] +faac64a8510ca85878211387733355a85fd2147c = 0 + +[5eb8da3a-fee4-5650-9757-078c5de4c78d] +d8b45a5948dc92695761305b2a3b312e65a5a11b = 0 + +[3a41ca7c-167c-5dd3-b068-80165705c037] +2c1754aa77bdfd9ce240a9781dfde1c79a86a847 = 0 +5c19e6afe055a91052f78112eaa1369bbfcb2d2a = 0 +8a9c00b44eeac6f24d540a55e312f0e5d4b6fd12 = 0 +ad82f8e577f87d564ac3db6d417cf1ac7363de8c = 0 +b28840489bec3dfbabbad46703509a94f4a48a22 = 0 +b65a5b84205b305967408a5567aa0cceda22313d = 0 +ecd254e01e4a653ad0fea3602146beded1706779 = 0 + +[90d7349d-81aa-5495-813a-883243abfe31] +0f875e791e53fb5e60b3c4c1fa7f9a0477d7696d = 0 +13931144d6d44a2c4afa5913f7302cdb9661ac5b = 0 +462c82294cd1c2e84e5cbfdb0db5fb57102534fa = 0 +56a464381c082929c10ca78cb86e5bc68f8d6100 = 0 +66e6f1999dd8bd1a8b314ef10b82c9029c20289d = 0 +7b933c62a07b483692f2cd5f7fbaa8f64ce5674d = 0 +7e48013fb264137cceb291f7118cb7be20d07abc = 0 +a6fcbdac84fb750cc6e6b048c82994a88f50dbde = 0 +ae7b6f27c72a48cee5b6f1a8b12c14600b6be4c1 = 0 + +[90fa49ef-747e-5e6f-a989-263ba693cf1a] +47ea7652e4d4149f2c5a5779745249967e6984f6 = 0 +49deefe8428a473a46a9cf11a65b1d4fd164b79c = 0 +c8f12395ae45169ae2b1f8a3d101b99f000b997d = 0 + +[e90401ef-f6d4-5a08-92d5-f8df1a23b84c] +1272c82d7f082b3a9fff42a5ec2c0b1c9d8bcb5a = 8196 +36afa527ad4595d5268529c2e38f7d3f2a325579 = 8196 +6e401e7942843d763934c2f97f7b65375bcb3ef1 = 8196 +7010a9e28dd5422efea419841029c639c52dffd3 = 8192 +739f7513cb2328028e4e97218d410fe820dac3f4 = 8192 +7b1de6ddf0bb767e414eda6c022bb91d6084295c = 8196 +7e657c2347e4ebbb6b04e2e8c806634595702d70 = 8196 +83da81e8f1b60f6a1f3d7330481c0404154d7ac6 = 8196 +946aecfac88f70ca58048d3e44d33465d6c5f358 = 8192 +97e8670a39d44050959aefb77e0a6e84dc2ce746 = 8192 + +[6912e4f1-e036-58b0-9138-08d1e6358ea9] +401b7a9dc3c9cf5943ffd72726f4379e3276c83f = 0 +8c2696c0233ebf7f3716eb942be2188420aedfde = 0 +ae4d161adff8e1b1b611c8c9e8d3a9b50564ca80 = 0 +ddb6d41ef01d8c025b155903d8da1bda04b84e0b = 0 +fa72b59dec93a08fdb19d9ff68a5fbbf91487d98 = 0 + +[58a0364a-aadb-595f-962e-ed87e1da736f] +620e09eaada17aa6548c9f8ac30848dd364239bd = 0 +df89fe8b917a44854b449b62509eb503bbef12de = 0 + +[60fe8c24-c5de-5536-9fc4-eaf503943938] +6562609950ab283ab3a665a4725c253ab717703d = 0 +85403cd277a87105956d968534fd3c0993a3dd21 = 0 +a251c0228f5ed197a98c17b7dce8801b271e18c6 = 0 + +[bf752c2e-6b1c-53e3-a22f-e5bb209bd3f1] +28a33905a56bc2996882dc9e83c9f89016e2ca76 = 0 +43cf3b143b7d2758f003c555b040aca04ad989c3 = 0 + +[e16808c0-8298-5c79-b0aa-b155392dc629] +4104e2c4322a23454e221384ac918127f81ce19f = 0 +68b6c2a1a7eb8aeb66a3f9f2aed962d6ad3ccad4 = 0 + +[6e198168-b5ad-50fe-a592-34ea75dfe988] +25fe2ca27a1059c3526b8f7fffc9ff1f157a62b9 = 0 +2bd0a6a2cee693b415cbbb54281cbd06ef3800a3 = 0 +38cc9ef4f1b64eb38eecdc76c8ef1f9d43bdb0b8 = 0 +409a2f8f978a81e8d43104e61497e510bbdaad1e = 0 +43dcd2c873726673b06cb216f2eb4e0133cb6963 = 0 +499b45a85a9e4f0ca6f60fada018c4212cf560aa = 0 +6182017778f6f2d9613a25b88988dccdfef7a9bd = 0 +8de7f5e593878ddbbbf99ee54c8acb9eedf7d85d = 0 +8fdb4c74998165e33bacaaf45e4bb5110fe5fe55 = 0 +e37eea13f20851fdfeb730f184b9a7b2dcfd94e1 = 0 + +[7876af07-990d-54b4-ab0e-23690620f79a] +2e5a872e7e498ce204199779bd4dedd166645ec8 = 0 +344355d8c58edf3149c3c3298628b24a4c8bbf1f = 0 +449d01082a777ed174d9c534bf5a9e591d809560 = 0 +526e34fdca2e3bb6959e6a236f4d9d717d3026d9 = 0 +54af302a0877b0d7a02125db84ce613bca32c62b = 0 +9088d0a6d06d3bde0a97630c01b572f57fa879c8 = 0 +98e8f780c1a3ce8ccd3ba12c47254e98ef4863b7 = 0 +b1990792d709bd512084674e46fa2e334acede84 = 0 +d1ef7b00a8fb9b8e4ee274b1db78a18f36f41408 = 0 + +[89b67f3b-d1aa-5f6f-9ca4-282e8d98620d] +3e86f36fee9ae6624f4cc6b20de7c56851ff023e = 0 +4f1154c76fe697c15fb8693b3944600b437dab43 = 0 +d4c74c0ca96acf707408a241ffa70458a371945c = 0 + +[c04bee98-12a5-510c-87df-2a230cb6e075] +398738ccdf5111b05782f0f523197b2fd950d429 = 0 +3a1c133b9af691d4f2679b504e70e89e3b055843 = 0 +3e55cdb38d265f707773c51c08f23f2c103641d3 = 0 +5be5a99eee42c905a67e10a956e912eb6b40ee1b = 0 +664bd6aabc4e6d80bf0caa3dc59cd585b9cd586e = 4 +81fdd918a4c77e45fb9fd054c5bac005635e6b19 = 0 +89b76f938d9f3c14ce48c3cd617066472736813b = 0 +8aea18cde0a31551013904ea105d44334ef59850 = 0 +a1336ef08b964bd493d7fd00bc4aff39ea9c964c = 4 +b5b29a04be142454e2d2e4ed2743c16fed1f296d = 4 +e8cfbe66649a0ae8dea5538ebf755dae341e3ea0 = 0 +f09fc99145143a5a1a816bc18531f8b57f37b937 = 4 + +[6a31a4e8-6e70-5a2d-b005-bc2d500d80a5] +564068ff7d941c6ebfa768e96961dbba9f4327f2 = 0 +74d8cfeab29b5ed63d471a40fbaed0e993f4776c = 0 +8163115dd4b33c378cc3c3a7a442589dac1c8570 = 0 +89e734809884d4ae91751105c41ee412c7554ff8 = 0 +acbfe50e548cd8bee4bc6afca6e11a15a09a1d8b = 0 +d0505ce2332d6573f1a8bc735d22e0e8e7a60729 = 0 +e7b839146ae18a1cfe8327e9304ebfc622a83408 = 0 +f6ae7272689189c420c89cd2b89a7737e22658a6 = 0 + +[cd0106a6-6d98-567f-99b2-156dd1635c57] +7d036d70656fa2cc611e8a84e5cd3eebe504fe5b = 0 +b8aa50ae2dc7accb1d95db54ff2ead1cb5e38bcb = 0 + +[72bd7bb1-b4bd-5012-9e0f-f33a954fca4c] +3e93b817ce7a7a6cfa97e6c940057f63703133b3 = 0 +4dcf8ee87490b55b67c97b025c88d6051539e1de = 0 +545fdd2dc130765d3136d9c9aabd9a6935c7e948 = 0 +7b0ced2732c1197bb8333941725d75e70deece83 = 0 + +[a1e7a1ef-7a5d-5822-a38c-be74e1bb89f4] +6f5b0b604b685d13bab4c66ec4ff8e3f66431362 = 0 + +[c9c60de3-17f1-5915-80ae-85ba1dbe6bff] +2ad3a80cf199340e0d306fa1dae63f1e2fd8b25f = 0 + +[0d84ce59-e78b-5c9a-b954-3a5400d7f6ed] +01437f68fe724172d4ef8038c44f8d88a39941f3 = 0 +3f91ac0de329ea6aff2365b26584924e3765db1b = 0 + +[e7058ba0-a568-556c-b31a-209ee9d855a8] +30da1764a3f75bcc3890c1db62e5e4beac99928a = 0 + +[df068d8e-6bdd-5cd0-b77b-69c5de8ae8a3] +6747b089a5b9ba6eec01be0d39305a786d8ef671 = 0 + +[102ba61c-8d8f-5910-ae56-8563da4a761b] +0958bbd361fee95a7932e3dbd2fb587494e05023 = 0 +9fa6878260d22942f4fe513d8d146f9cfb63c728 = 0 + +[6837a093-145e-5c9b-b5ad-3b557e31aa31] +437c4ba79b6e34886e7731e0b1971fcfbf88afd9 = 0 + +[f86d3d12-fd5b-522c-99e9-61577282a1e9] +bb8aae062173e6b3cd6aba103ec1df89138c570b = 0 +e0a3ea0b4f1817afc94d77b372212243619c7350 = 0 + +[353921e4-b2a0-5f7c-adb9-3f3137bad256] +326f6bedf4d371562dea0a531b52535bce88b65c = 0 + +[8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615] +18202276bc5493b49165a32b92ac4bfe5992e41a = 0 +253f132d0d9340c17d72976fbd4e357e1fc67296 = 0 +3043dab160ae84487c0d5df36d91bd1f07b11bcb = 0 +46663512753ac73bb6d825308a98563225905473 = 0 +4d9fdf3e7b88c92326f63f227feff54bdbad37f8 = 0 +564adfe1123a1dc301199cd7ad7e04e73c42dc5a = 0 +627f93b24771c674eae2f1befc1ba8c253fb2b05 = 0 +73b163af1c3765d40dfaa5043915eaaa48f5b24f = 0 +751258dce985ec12d538a3d8256677637e353fe1 = 0 +965b4de72fec1377c62c01d691bc966504aa885f = 0 +9a49981a8569af07dcc415d744d01d6d8059e5a8 = 0 +9f532f34f5806f948d31f5be28339ada50e60424 = 33554432 +a514d84689697016e04b73a5a388db51e9b4cb9e = 0 +b3f45752dad3a147925ccabffaa45aa5a9e7d847 = 0 +b4378f654c3171e66432f65b198413c4fe23aa38 = 33619968 +c1ce99720ca63edfb39da7d5580f25da75a79fd8 = 0 +c9494c5aa68bab62b3017705df94ab1e59a41627 = 0 +cc828deb77bd9fc48d722092aba5d69b249f95ec = 33619968 +d25b9a700da9d22bcc548254b83c53ac79ce6a2a = 33619968 +d75b00346680fbed25a5fd5b194e92b3fcd1b1a4 = 0 +d839406048d1c81fdaa29ba9773d86ed2c36a7bd = 33554432 + +[d76558cf-badf-52d4-a17e-381ab0b0d937] +93f16e107878f59f91a3cfdde3773c629def86db = 0 + +[e25cca7e-83ef-51fa-be6c-dfe2a3123128] +ad0af7b4ca526cf5a191a06d0ca724f337d75e8c = 0 + +[08f7bda6-d19a-5869-bd1c-a698fdb2a278] +deb90ca4040afbe141bf5d4482d6a95cbfed97f3 = 0 + +[fbcbbc08-f1bf-5204-9233-b69f5d396135] +110acde568e5906fe3e051a16b8087016107aa30 = 4096 +1d338672dc765ee0f31d82fe73e41f8f29d6d612 = 0 +26330d189891f788eac6c33d049c716cb03ac989 = 0 +3ab1f97cd97afcb0e209127dfc50dc3ffb1a6410 = 4096 +60cadc5e4a57d142fe0635b4acd98a013e5b0276 = 4096 +dcace9cbf74d5d450fef66c7fbc2403153b0f107 = 4096 + +[353fb843-c566-51e6-ba49-78b3e3d5ebb5] +049ef8891a919ce973ffab7763374c2744aa7e85 = 4096 +206120409ce6a101aec86716c570c0828f8020d2 = 4096 +5f759848644a71f1763b5c470666e138e5a845fe = 4096 +99b2b0d07de33e09be364a3992e4be06132e726e = 4096 +d54f5982323a073f2670c6e3bd8337d0a8368ba1 = 4096 +e19eaefc3cc7c5c50111a24993881c3dbb55b71c = 4096 +ee8f2d9b791b18143a36782892c5c80e1ed13184 = 4096 + +[be8e8821-3f6f-54c2-987c-d2773c3a52cb] +44055b7db6e406c0472ee49de0cd3503e26def3c = 0 + +[da82b884-55c4-5540-8364-4f80596e1779] +1ab6342e33d6429280a4671085682a34ea184651 = 0 + +[186dfeec-b415-5c13-8e76-5fbf19f56f9b] +84e753925a06cbe9f752aa0e23af205a9c0e3a2d = 0 +d7ada1724814bcae0d564f9e1d0d2f4c0dd37181 = 0 + +[4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd] +7fd168b6f1690df986f7fff180fc82d9769ab8c1 = 0 +e43d7c7c59d7fe03020dfae036d886ead44694d0 = 0 +f12b9d8665de640c859df3141ee59cad2773f0be = 0 + +[7a1cc6ca-52ef-59f5-83cd-3a7055c09341] +070cd891fda64f956aab5c0f5062948ade060a16 = 0 +084713cbb4a3e7c44449ad6b2c630a2ae5ddcf1f = 0 +16c27b0fee2dbebddb799c87811aa791130679d2 = 0 +821e0c9866bdef236bea39174a12a9de440376e4 = 0 +8302e8730150ed999d58e371edfe8db2a979af71 = 33554432 +9d57158dc646852d430a06a11584b35643b52048 = 0 +f286acf2ef8e76cd6f45fc88c51efcd57c51d3e4 = 0 + +[525bcba6-941b-5504-bd06-fd0dc1a4d2eb] +1bd337ce570f4827b1852eb419a3c478bedceb84 = 0 +231378e980fb0cf0d0eca99d79d517f7582bd6a8 = 0 +3001911efef010c799eee125f484082ba8d3e5a2 = 0 +48714351325a2d8f2eb9b3c0da79bf20ee2a2652 = 0 +718e4ed171caae99fd9f299eb99e1eda48913235 = 0 +7316d4ba541cc967925714e669589e6204bf58d9 = 0 +793cda8429685538274791eeb365f254f13fc04c = 0 +87484f6b1c81f889f0d1ebdeeb203da3e066bf5e = 0 +87d7f3b30c27c134800bb2288c018e6c6094b311 = 0 +8c51c739b70cf751cad50c689ce0913cf1be589a = 0 +920b0a402f6eaba7ea7b60334087bdbdce582eb6 = 0 +990aacb09c87c78159aeee12faf47934189a7d4b = 0 +b21e27290b4be3901b8c996a2c6496962547056c = 0 +c2420ce928255b432e322a2e88cb2a4b849ed2f9 = 0 +c8d75dcf86125dbdd623a1b07f246971c5fde08c = 0 +d0f2fd2f4dfa3cd9e42d8c9ff73046649c829617 = 0 +eaa7ceac0a7a6ebf6c2d9e2262322c7d398d07e7 = 0 + +[05003743-e4a8-526e-8961-a30f3f368c99] +68c1880a0aa524692e12dcd9eaf333ca07362a3e = 0 +9fd6bf423869054fc0008f09665efe769db54e24 = 0 +f96bdfc4f8d438bfac9cc41da2533a5702c675a3 = 0 + +[4ef67f76-e0de-5105-ac01-03b6482fb4f8] +1c3176503a3cc8f4801cb802be5534f08f5ca5db = 0 +69f0b40d2bc2e9af27254bfbeb758fbd6ff45cd8 = 0 +77f9d2ad4b7ed0523082bbbc1432157f65f10238 = 0 +81aabf2f35f894e900aae13eeb176b33d530d77a = 0 + +[f92d4219-768d-571c-9f94-afc617fb7300] +4dc7556d45ef8f07d619decb9a1c4c70b91bb3ce = 0 +ea497eae30e9f94ff61a6b16edbfc4f67aa9fbe8 = 0 + +[98d63f0c-4670-53f4-a117-61cbc77e80ae] +2504ca2f35e17b198db734e6d121be11720a54de = 0 +261a003c0fdb81fd2c9ed622b28357ec0b81dd4f = 0 +2a9a583aeaffff627064f28f6a0fa46b12f76850 = 0 +4b3b27479a16a24dc08714bc26fd5cdce6a6496b = 0 + +[7d6aedc2-de2e-5286-8f3c-6eeb7cf86d4a] +f79342cfd3d98ae7a80075749403499c9d4088bb = 0 + +[480c51c8-11cd-5857-ba64-2c3c1abd9c7c] +da7bdba10cc5a5a7d33974dabdf3d5f3cf6a5f10 = 0 +db90ea064cc0516d41d798b729564b0764b577ec = 0 +e278467a0e03aae7daf376042e9486e03a5b326e = 0 +fadbd5583058d11a434deb7f91a0a140f3fbb054 = 0 + +[01fcc997-4f28-56b8-8a06-30002c134abb] +adcd17a554eec3bdfae4f8f72031b57165912985 = 0 +d163e916a864e5f6d683e05f2795267c2987d087 = 0 +d3601e2a6463c3b15bad1d0c9f7185d65df4d219 = 0 + +[446ba1aa-1196-5145-b9bf-af2f15fe4dda] +ab68cab28938b8ae3d4ee39aded22aa1f6f281aa = 33570820 + +[18d3ab0b-97fc-5e2b-aa05-5bdf3eee57bb] +1147bb61ec4cee1777ce4ba5100f2155ccd20c65 = 0 +401b43b91313364e6c248254068f8e6e8e9f8305 = 0 +6cc4f07920b9b8256b55b551e77a11fcd84333c6 = 0 +ff01601b579b5561a3062689ad0b94d68aa29e2a = 0 + +[f4d215b3-0620-5416-a1ed-ff5329874956] +0e9793698d14a84b44a98ef84bd0dcbf208e5ef2 = 0 +1da7c729641bb8350869a5167512362b1a88afd3 = 0 +53e1cdca15293d3d1131a2bf241fb86fa42e7b15 = 0 +5d34b184b98480708fac2dc7628c4f64d5eb8ca3 = 0 +c49f4e6a28157cd3ec2fc12652bb7a0537aac660 = 0 +e7dd404cf3f01b80d5b24373b22e80010cbb4782 = 0 + +[01605889-e1f3-5716-a155-5007402aa664] +0967bf14517d1f829de0e3563d5742a817199e93 = 0 +37e1f35418b2dbc99f8412478b205a03c98ad7d2 = 0 +4244f1195e3e3ab5c5b3bde4f4a4200761a77387 = 0 +4a01a024f9924cb24e0b4a5a05f7f6363ea88f6d = 0 +63bb2001a7361af2542e2e61d2ce6bdb6eef3656 = 0 +66fc925bd99b50aacfa0f9cd2c324f80ec4947f3 = 0 +78a2ecf6add3cfd20e6eaf455ccd144fde992442 = 0 +7aa92673e7af4e2903566aa415641f3574480aae = 0 +9f4440eb69cae92972ad34e30807d171bc0429df = 0 +a020ad428a4270c1ebd6d8cb024fb40ea24af76e = 0 +a0421f2ddadd2a5c059e11034b5f5653e660d1e1 = 0 +c7f6b6391146288a7e783098409316f51405e4f1 = 0 +d2255d7197b6514a3f7e033881f67c8cf5ea4e83 = 0 +e17fdccfbdf3baf59025c03154dbf0b765034f30 = 0 +e1e2cacd2922351f11e141e301e92421ce054894 = 0 +e3739d5fdf0e54bc1e74957c060c693cd8ce9cd6 = 0 +e3caf3143b13d4ce9bc576579d5ed9cd4aaefb11 = 0 +ece6319b574d2d8961baa0e850ffefae16049dd4 = 0 +eeb190ce96c520632d79e15725da25290fa36b43 = 0 +f729a7e95083f6b69872a794edfbd7f65f461739 = 0 +fadb498cba20600092290ff300d7f59e7a529d6b = 0 + +[0efc519c-db33-5916-ab87-703215c3906f] +30f92248393f76e4417e7c00595868820144dd98 = 4 +a339867dde0d1c54a889a190658af75cda0e4abc = 4 +ae858cf645bdf545ca0f3fb899d3fdc5fbb98062 = 4 + +[29b9fc01-2d52-5901-8357-88823a8aad60] +67bc479e4a1c6c2d7121ac995a4018fffc844cae = 0 +6f89f64f8e2d809ec4dcd90e372fe9627f8a369a = 0 + +[5169e8c5-36db-5963-a2c8-6f78e2062fe5] +25b25cf0c1badf86636f0b831dc7cefac34a0fe9 = 0 +9cdfcf8430edcaa4004776de89ea0cd59c044231 = 0 +b38f9363d7960d069975ed8f1e35c16b5dc6a150 = 0 + +[9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a] +170cad9e26326d6f6f664912e46b918b2f83c5ea = 0 +e2b851582d9fe9384a6e49bec3b78febf54ae10c = 0 + +[a1a74555-535a-5d6d-a4c3-4176040b5154] +cb2626c003ec0c59af21ecb576f36ca23665ca2e = 0 +e58cf68517347a77e26c6846ef1306df1d5cdc6a = 0 + +[442a2c76-b920-505d-bb47-c5924d526838] +1363c0813b3446bb7a79d95afa21544512d8743e = 0 +347a91e675a8a5f37fb8bc32212d18cdfc72e029 = 0 +437bd18191cdf84040c8b397c1801fb0dffe6a15 = 0 +b00443465c542b7bfb2deff8e156b15f37345ff9 = 0 +b4787178533115a08da42491ce8c5c65f09c532c = 0 +b6c0971b8579a8da6a98da8fc2fe020f5f1ab9a6 = 33554432 +f6b50605f6bb6e27167f37f7211fb089d4aa9e47 = 0 + +[e6aeac8e-85c6-520e-8612-effc59bc0f33] +1ccd65d8658deccaf8878d7403f9105cc1edc759 = 0 + +[fa42c844-2597-5d31-933b-ebd51ab2693f] +04a4364cf3da2a8cc2ace043aa2667d5c10bbbab = 0 +2b7b3c02928c5e9dee294e3f78ad974b9a3efc5e = 0 +56369a8f4e2a4af683eb5471ea2c802f7b7e0714 = 0 +662d1a03ecb9fe0a9398b256029283d0bb5a8ab4 = 0 + +[057dd010-8810-581a-b7be-e3fc3b93f78c] +18710e9941804f9ff595dae4212b36cc6b2bc649 = 0 +3f6fae42d58de7256da668b3a43546b16252dc1d = 0 +464753f3c62f0527c72b72cbeb7baf5cf38a48a1 = 0 +64d662eb9a3a5a54bb8efd2da63ec837287178e4 = 0 +66d3b7a2c394ba55fe1668d1f720d0e18b860b26 = 0 +7cf560b7dc3baca66095b83614cde8ec21406c98 = 0 +b6e4fdf35a2160f0d9948e6565fd69c2177f4d82 = 0 +c8899f51e1ae7564ee7a46eefc843ce2780cfa83 = 0 +e2b7c5989d21860f419b3ef67a50ae268292ee11 = 0 +eb9f1612f174cc1f7c3bc349deee94aedde77825 = 0 +f48a21de9b2195b8b7dd76d6999d2d41a6e370c7 = 0 + +[a0c94c4b-ebed-5953-b5fc-82fe598ac79f] +c93c44370c1d4047f8f4b7cce115675cf81edcdd = 0 + +[5f923234-c850-556d-bb4f-28324fa1959a] +0b62815dd98a0331a4a1d5b263187b40605ebab1 = 0 +caf0537be36e21d90009f39dfa15e1db00215484 = 0 + +[becb17da-46f6-5d3c-ad1b-1c5fe96bc73c] +05a768c10e2ffce7bd3750ba569ed03806057148 = 0 +18b7c297c331d6cd960af082d772e4c35834f796 = 0 +1b36d435f4ee9b0bc4fbf9b830d1335629668863 = 0 +22975d921a91148aa99c7aa86795309cc1156ef3 = 0 +3d275a07c8a8584f83c6d4191f2dfa1d41d8db45 = 0 +3d8a1f9d3d00ea7e05729434f075d55f9f299bd6 = 0 +703485656607a7ceeff9c88ec385a943c37847c0 = 0 +97bc8ca9da87dad8264b6df18a97dcfcccebd2b6 = 0 +9c96901e0e09a490a94badfdc432de1302a93bac = 16388 +b14fef74e8372a9062be7ab90fbd1637fc48f92c = 0 +d2f2e9b9f212c12a96807ab3359ae749e734da7b = 0 + +[b675d258-116a-5741-b937-b79f054b0542] +8312610cc5859642c63c8c57d07cb90720e813a9 = 0 +9b385b64293ea6fbb781c975910ea8702a3bf4f3 = 0 +fd89a7e0b079e6879c99b23d476842ca7943c5be = 0 + +[5789e2e9-d7fb-5bc7-8068-2c6fae9b9549] +0d24ad67ddfb40a3e840a1c687083b24942f9fe2 = 0 +1373ebd9b89bd0a0e13010df5840a836283c601f = 0 +15058b179d88ac8cce5d34cde3663d59acdbbb1f = 0 +1e07cf37044c8273c6161de61a0248f0f8a76d8f = 0 +2886a4213858ae6c9065af75eab9ba50207e7d4b = 0 +2f77c74dbee36abd85319f3ae6cd218fc29ce188 = 0 +34ad95d46eaa07c51826d1feb35386290d0d2160 = 0 +3ae36a84dc2b96f4c4c1535b9ad44c81c4f8006c = 0 +50c4ef3438a7165d8a0789808530cb734bc3cadb = 0 +530ed87f4f8c30f61425233a0ecab2ad94eb1c0d = 0 +5a68c1188889acf7c66cf2b5ecfe69a55be24acb = 0 +5bc0bbf2eed817c68976041863d0af5343329431 = 0 +7da378db89401a0c5f1d80ca6b40d0075b3b55fa = 0 +8919166891d4bb5489ed19a829ef861823b977cd = 0 +8a8f53e5d3f24dae44b91f88fad184f759a86831 = 0 +97acc32088b18ab3fb3905160ba68c98b7583ca0 = 0 +9c2c1b5c54627bb67fe0313635a1da8272b2bc50 = 0 +a80cf2bf3f30690ffb62ec6a725b43e94fad0a5f = 0 +c20c25fc369ef3f5490348b6149ab9035d4d06b6 = 0 +c2b212704640b062948acc1f5631926024f7ad2e = 0 +c38ef5ab4176f6f5c642caccd22d69f76e9d08fd = 0 +c43eacd733a8e6db4450c340f8f7d39fc6a7f5b2 = 0 +d0125dfe16aa1ac9c79e9d7fcce961fd175f977a = 0 +d4e34014e508da06e03ea838bc5440d6fc02732f = 0 +df1953be3c0223ba7a05ac9fb57fb75fe51dd4dd = 0 + +[8fc22ac5-c921-52a6-82fd-178b2807b824] +150b24eaf5961c7715f5f6db9365e2217891ec11 = 0 +1889287dae99d5b614fec41b9d5108a061a15476 = 0 +7ab745c5dd86cc0f576f3ec7d7e0d24d0323b725 = 0 +b3c8be670e78dfaf593bba8579e9ed9ebf9be7d0 = 0 +fbe7e9c42f1e01b8420b869d65ab2e0ef5a82576 = 0 +fe6ef4dd6072b4647b1f6e32608b8d4112988728 = 0 + +[1a297f60-69ca-5386-bcde-b61e274b549b] +b138617bd1fd9394132f3aa75015f9afb6fbc8cc = 0 + +[2edd74a5-e968-5e45-af77-76d29aa6a478] +547054749621bbd3a4fabccd0d6bbdfd10d00dfd = 0 +9fb071ebbe6dcf25bd921910d8ac11b27c44a731 = 0 +ec585b35adcf7d91e84de6a4b45323eb529bb830 = 0 +fc66102e94af21b5a1bd41dbaee73ccd90b96e41 = 0 + +[794876cc-7f88-5b71-9fa9-be3737d389f3] +04da94c51c4c8531e7fa1ebf0e4e722b2235ceb7 = 0 +12879cf6659ac1fd737330d6c584541debd6873b = 0 +1ce4d17f38afd0f055c1a83653f4dd323355306d = 0 +233ce104b73457f0c83c57b57787fa3338efef51 = 0 +31829f28127e33e06e469cee8d5ccc11a662fd5e = 0 +3305d4c501483f27db3377a5c457850c666388a1 = 0 +46d3e29b40aa9e6a021768516edd66d018218767 = 0 +7e79730aaa47b0caf14cce1852061ea37cbdedce = 0 +8c86df752bfdd7da8695fb5e5bbc38f546344e83 = 0 +d51dedff767ce1dad119faaea0dff0f4f31fe596 = 0 +f844cabaccf61b487f8e469014ed3f722a879d02 = 0 + +[a51835be-59a7-5a76-9cf5-dd3bc1292177] +792daa6d6a95316f5e1057ea92374fc19b3d2d9a = 0 +da371f844a0df9c5c5d57fe22762c79bce2e03c8 = 0 +f0d80aed0b899436d149d1c12883b0734e8894df = 0 +fdd3cc0ed1a7c8deac82a55438996a54bdda840f = 0 + +[652a1917-b8e5-5d9b-be38-bbf27e56fe44] +a87c9a0ea7fd6bf473b658f8a740177df1ea614c = 0 + +[e2860157-3336-52d5-8ddc-1def50726c76] +721a344cfa2cf8c6970b7f7ad8a3655c0e1cb9f4 = 0 + +[9d5cd8c9-2029-5cab-9928-427838db53e3] +081e40dbed568cda70b99bdcfe2fd9d2b80f92a0 = 0 +4d99970da5e60f394d8f66064a7bd3d8808b14bd = 0 +5619b4f38aa64253751e44bb28aa280d1489f955 = 0 +78bf0ad10705e219e9a4ba2e94e9b38a0f80c3c4 = 0 +99856a1064fe5042acf10ec5db597c179069bb30 = 0 +a132380e51770f0c9eea1c51559a61ffde7b273a = 0 +d20702ee51123e6bc5d9c30fd8ea047a270120f2 = 0 +d74e028bcfd4ab1c69a6509834bf33d13696376f = 0 +d85a650a11b281b90664a05789f32ae325b92c36 = 0 +d9556418bd5bbb233b50c07983fb287900616939 = 0 +dd41dce7ad843a57786fd031f5a74d00123f8aa3 = 0 +e0773437ce09c0c5faa9dd3f0c3281955a5a3fed = 0 + +[fb4d412d-6eee-574d-9565-ede6634db7b0] +050790cb5cb4e565fbcc9cd5158451c67844e985 = 33554432 +0d87dfeb61cc69bc9528c2e6c57dd783d7034fa1 = 0 +769a89e9b57bfd6def77478e5d14750529379eb3 = 0 + +[53c48c17-4a7d-5ca2-90c5-79b7896eea93] +0033458b4cb5e516f13e8ab63ac38a948ce9e951 = 0 +00a99897c6cd0ef8c5044ee734ecb12774e357c4 = 0 +048a560fe9bd6a301246353af2017ef2969bae62 = 0 +07acd3fda99275dabbcfce7f980763b7446cc662 = 0 +0c55728f70e6f32a612bf81c42085017608942ec = 0 +14b1f33f7d623833d9975ee2ec41b1fdea74dbbe = 0 +1f7d94d4831df61f05f4c66448e2ab5fc01e0e5a = 0 +252c202b1731ba5451febdf37cf72d2c4181037a = 0 +25affc6cff653a8e569e1f337ab1e62f6980948b = 0 +34d7fecd42631a9d7aed0f4ba4941400930f683f = 0 +396489524915969ff5a839d5f5a2a65367aba065 = 0 +3d86ace04a987ac84b90a03e18d936303e4fc88f = 0 +404d4bef6eb278b9a83aea5beeaa88a2f8333827 = 0 +4f81c474c7c8d2c1a20be16eb790a50638285971 = 0 +575ed54fca0dc83c91d984c00c954b27b8cf0ae7 = 0 +65b5c316b37475a388fecd00c66a343ac1280f4e = 0 +65d1b00e02d2a1211ee8ffca2232db77e7c696fe = 0 +67c9e1a810d174160bd1c6c7dafd23d7b2b454a4 = 0 +6a8aee86406e1b928ebbcd5fd51a570bb8a6609d = 0 +852909e21601c9e64e4f2f1cac0b85c3251595ab = 0 +861b0368b10f5c47224892ed1b3f288aa55012b2 = 0 +9a1b40acb854cc307dbf827adc287b5dbb9c2480 = 0 +a00d54cb2a06e2bbafc8a1dad27bdfec0390635d = 0 +a1b6fca0067b0c08cd62add678e4548f0cafe45a = 0 +aec1b8fbcf259487663d7983522e206a02c2b2ce = 0 +b58c7f0c817d459745dbc57f19e3287842419d66 = 0 +bb3dee7d07e8b94c9e7b193fe23949f50135306e = 0 +bdbd2faff80b13d92372c9866a0dd9a1a5f07834 = 0 +becc788ca7ce1d4bff31bd8f685919f41632b676 = 0 +c19b6a0cf0e6d25091e379875a34cbbe6d9b43a1 = 0 +c238d4205ee5abea6d596e71a3e1967e4b1c7080 = 0 +ccb4267a45687abbb1dc2a543cb3587f58bdaf2a = 0 +cf9ebc49d5eaef7e1d8a348762e9a820b6885f3c = 0 +d2e015cc1660b7db982737f41ff728980f416f41 = 0 +d7ff5131551300892b5dadc9c694f6f48bf14ed2 = 0 +e57195da0bb8c8e5080c32c19f64557806b7ffd4 = 0 +ecd12759ba78b1180e206e9940ca2100c583a4fd = 0 +f1bafe33e7da24e58edf5c10d49151a0bf4cde96 = 0 +f3935899fa1507580bb4564d1f0f27eecc7961c2 = 0 +f4512651de92e50565205765b1bd996b987a3c81 = 0 + +[3dd14ad9-0029-526e-86e9-8aa0bdd2ab0d] +337278f75eb232c53dd219bc58ef3f9f11335345 = 0 +52ef79fa3269207be568cf03740eb2815472ce1f = 0 +718fb764ef72b3fdf739c80e721961b6c5025f25 = 0 +fbcd5d4536f06c8f70f5491ea01d862f8e93eafa = 0 +fd3074c8fac04bc802c537a4fac96ec17b6e8b11 = 0 + +[e220cda7-d851-5a2d-9985-d1627e9abca7] +01bf5f5f1776111a5ca05ed88566ab90253d9e99 = 0 +0c28d4841c8ab4323501587c4c052eeb2b28b296 = 0 +0f54fa25d033c492ff7e1028b6c4b97340e5e30b = 0 +1e41b76a0db8566f5c5e5a573ce7a8f0674e601a = 0 +2b4ca7c5336ce6480b1ecab73adae34a35fc2b2b = 0 +2bc5f6803fcaa4018051ba20f84c2a68fa0667d0 = 0 +3f5eb47c72ca3717c9f9660ef5c34e888adfdcad = 0 +5e438ede34df962099ee609fa219afd62d09114e = 0 +7141fa8941dba9851562fed1440e0211b58f4073 = 0 +916217907601a0143e3fe7b21f6defea208c4633 = 0 +9bcef6b7debeb6bb792cc7cc09f7e94095363607 = 0 +a369998415d26b34a585fffbda3afb42a051f369 = 0 +abcf7a6f8728ec0e4445a76e4d5d5cca2b47ea48 = 0 +b8d3d5ec4044549d8cfe71a0f9f7ffad3acb7a2f = 0 +bc3c8fe24e49e422ca276deca4797ddad7a1dc4d = 0 +ce79a6dbcc44a41d1fc4421d0d325f6752387139 = 0 +e9bbbfb9c1af043d65af1c88c71c3d98eb2102d0 = 0 +f5205bd686e197cad05c113325e6b507116fee1e = 0 + +[434fa67a-6ada-5e8f-9662-b52a532874d7] +920688b9aab8783374d9c7e60bfefa45bcf599ed = 0 + +[3ca710bb-85d4-534c-9bae-b7b5d9e27e20] +e4a9e3daa4ddde5ddb59baee4ac3f9df61edb65a = 0 + +[38cab1e9-85a4-5f0b-a884-40c18149b8cd] +6c12acf5208b829b612cbeb5878ed1f0a29b75a8 = 0 +f61f8db04c45c6a6e71ce0daf05f209e5a1d3e42 = 0 + +[53afe959-3a16-52fa-a8da-cf864710bae9] +0f61258dfc4eea23c01655cffba92e88bfb8f82f = 0 +16b65a4f6a144aa6240cd7e989e4b575fd2b6761 = 0 +1e3f017be741a4511fd79bddd88eaa2de44f5429 = 0 +49206676bcb58bb3bba2003c834c19f30041f9a7 = 33554432 +788cc65488f0449f49e438163ecc83e55e7e4cdc = 0 +940bc4e2401bc02259fdd641dc0cf78cc4042fbb = 0 +c272135600b727d448e2d222a1622fe8b971de2c = 0 +c9c2c2287373622d4990fcbda4e9d8f4053e9676 = 0 +ebd6e21130c7d9103fafdd9bf6630b449c186519 = 0 + +[f3015e33-6d2c-523b-bc4c-ccc92cdcd86b] +1b49d9744cec75cb9566574f7f48754becee4f21 = 0 +5a580197d24598b102352bf393fbc5f3d3b16408 = 0 +744b70d0301685daf48cb805d7d887efd5957966 = 0 +b1710113921be4b3b1b96062c4c2d17691bc7c5b = 0 +b74105e5edb0b8099b85de470a1f45381f4aab72 = 0 + +[68ab7a74-b89c-58c4-90e0-a4e17bbb69bc] +eb4d6008a92d09f7a1a5483031a0c12cac91f059 = 0 + +[587475ba-b771-5e3f-ad9e-33799f191a9c] +0f8ba87dc68307050abb46f594280c1873ee4d84 = 0 +1c317eeefec910170cc72a4fe09ac54e187b3624 = 0 +2a66545ef8d3e8d456718670e59d752e778e83c9 = 0 +5f24d61ba3abff93cbd42d871d24b6d6f48ce7ae = 0 +72eabde373a7d8ca768b6a27c90680f80870b3ce = 0 +7a85eff370b7c68d587b49699fa3f71e44993397 = 0 +854a1e18865742c59b6db6c58e16fee6ef9ef8ce = 0 +98b362729dd39c70d327f6f03c82fe949b4a2396 = 0 +b17eb78e0a7131de18501b621c594a9c4d459372 = 0 +d3419c943bd8c8c3d06ffa8ea5618625b3b14613 = 0 +efcb9650da31c183b94b839f66aa3467d007c33f = 0 +f2052739c17aab1cf0fda0d1fcbea7288e28cfdd = 0 + +[186bb1d3-e1f7-5a2c-a377-96d770f13627] +974b9a7f6b1026a18cfdf391c24f2838bd5f8a84 = 0 +b36b91c46f25e77d93fe5b94298e16e3de50ec48 = 0 +b7128c8cd3c64d8dc982b1b7b463bcd7ab8f809d = 0 +ea508d796696032fdc0923abcb9cda0e22fe0d8d = 0 + +[c08c26e9-7d88-5404-9cd5-c0fa6a8b90ba] +58c7fcf04bcddc1d13839391794cc95369d94a2f = 0 +fba1e15ca7e314d45269d5afbe3e85c386caa35a = 0 + +[41a43668-ff68-5e81-b2d7-6ef3c0dd3db1] +cfcb7fd45c01a6747844d3413ee6221465bdcbf2 = 0 + +[59287772-0a20-5a39-b81b-1366585eb4c0] +024233bf2c536eaf2f720d5e32f9567221fc9e1b = 0 +16446b171fcb350951de853af6c7d95a4d16d2a6 = 0 +39f6db8ba993cfb4eefd7db302147ea194a5ab0c = 0 +452aa89ba598f74566aaf30c5bcfe238e661ac74 = 0 +6751d03af4cbb75b858586ee408737488c9b07b5 = 0 +a59a762a0310e536cda8a5bd24ee072bb83cfab1 = 0 +b502b769c010f166049afd815561e6325ae17013 = 0 +e47ba2ab9fabc3fed8298efbd999a2c1808124c2 = 0 +eb903be4ed5140fdb5fccba15fb04289a9f639a2 = 0 + +[c58ffaec-ab22-586d-bfc5-781a99fd0b10] +00c3e80af57f15a3d84762fa92e9356d5b74cae6 = 0 +05cb57110cc9c6495c34bd890c8e925388ea9089 = 0 +424bd6a21db81f43fcd0db1417bed24e46b2448a = 0 +94960d3443f80fcb1d364acb67bcf1551ae675c4 = 0 +e89431bd49b54770cbd5dd5d5b44e97fd1db5758 = 0 + +[f6369f11-7733-5829-9624-2563aa707210] +045a8286ba5ea8715ba6e47ee49e0ed58707e228 = 0 +1129f9be2b706e52a430d5b29f7ddf41bb49ca18 = 0 +25b93c2e409f0c229ca27be5ce543f6fc9eaa987 = 0 +2f712dc1da9c801b537c31ea5cc3400987043124 = 0 +3077036fe9c675af11d321b9732ea43001a73e30 = 0 +49292ee6fccac514d0f532a7b98e62d5b8c47dfb = 0 +54bdd2c17e8593be7d886e815217c317c12a8b78 = 0 +55222a0fe5509c9dc1ecca88c314f0b57f529cd6 = 0 +62ad04b6cc2f36f744942d5061c64fc3f9582da1 = 0 +667b37e88967a3e61427d1e085e39350f8261bad = 0 +675818ed42bbb95ccb84884d0e6a08d1a858b94f = 0 +6c61b61de2b25ab8b8469b7ddb0b410898590323 = 0 +748c80031ea6d062102d886ef0d26a765a4b0ecd = 0 +76715d249bb58cc9feab5606d3986e1b65162b8d = 0 +81774169f013ef5a8398256557e6d26e769f4501 = 0 +82dcd98972f8af437d9b59d7083b0a22db9fe7bd = 0 +8f9e9b3175920e619091befde0cac10009cf0764 = 0 +934b3b260b552882c556e351588ccdac524aaace = 0 +9fb6582e19c9987ec763cbaa27f1ae833995a5d1 = 0 +af3977209ab405a9c7ab889412d534112e28fd8a = 0 +afdf603400eb366abc33cf3a5804f0bf4551763a = 0 +b467b89cbc2119d449a1bf14c106d94280f2f548 = 0 +d41e65274f09d18d2bf450d99e0369075e0fbb2a = 0 +d6714170e667027e9e53aa5daf941c3ef5252e7b = 0 +d723cfc9c94a8fae1b5637e1a4562c572b1e603f = 0 +decce463ae101442ef293ed69b6fe1696745b0b5 = 0 + +[2aec4490-903f-5c70-9b11-9bed06a700e1] +4e43e7f4822e423cc796c051802e419605894986 = 0 +4fd3a525bc19cdcd86d836af03eedcc6e45e96f1 = 0 + +[6e85b7ee-7d24-5488-b1b7-e4f4198c51ac] +41b852a543309c40c4d9612177a5a1cd3c6dfa27 = 0 +4c04eae71d14e47078a0f70b9dec852c081ca1ec = 0 +823863d757b452624c64512fc967e7171ecbdfec = 0 +8b073e47f50e86cdd3bc7feb7c7c5308d55e977b = 0 +9ae39e37be76fcf946e579be36d52279e876c786 = 0 +e4dbffe38bfdf0e4ba50aad2f5057eba5bbb057e = 0 + +[b38be410-82b0-50bf-ab77-7b57e271db43] +1f6380c0efdb988db74ba3bce859a2b1b64445cd = 0 +3a143b19f509f75d9eaba1b367cd35912f566950 = 0 +4b31713bd42757fef5e8df3b5cb2a2100b715c36 = 0 +5e156dd9aabe85844c00a8be81efb76d0a767160 = 0 +7ddd4dc4a3aafefa098f7f8d75286815dcd67ad3 = 0 +a1af8514e71995dec1967b384a47eb786f68e695 = 0 +ae1ad856a4d0db5033e9f1bd6fa7b82854391848 = 0 +e5a046aae3b704b922807c0f3109dcebc721edc0 = 0 + +[663a7486-cb36-511b-a19d-713bb74d65c9] +d515b91ee3ed79e368ba41a302767c94e314386e = 0 + +[da1fdf0e-e0ff-5433-a45f-9bb5ff651cb1] +0d70f4a9396af9f99aad3bbb453f4650a9f29a88 = 0 +45067fc58a2691afe43b4e73387a796b0549ca22 = 0 +78290d336fdeee8afde18302e538ab2332b2ab1f = 0 +7884c000e6797d7ec621e07b8da58e7939e39867 = 0 +cec61ee2d49e5c7ef558cf8ad055c336d0b29ad0 = 0 +e6e1bfe21afaadb93f2e5f98e7a8845579dffa20 = 0 + +[79010b50-67e0-5194-b8a4-bd41d479c903] +ae2a649392dd170a638f4cacc221acc30a3c587f = 0 + +[3ffbb5c2-dde1-5000-9600-8fb8e4218afa] +90c2319c821a8a5ed27baeaaadd4854d34343f13 = 0 + +[069b7b12-0de2-55c6-9aab-29f3d0a68a2e] +08b07845179cbfebb9a7ec995c07815c7b4a9668 = 0 +aa1318c83d1c4c80586700f7a43e54ac49b9c1d1 = 0 + +[de31a74c-ac4f-5751-b3fd-e18cd04993ca] +19c4e29db1a69d8a00e67d480c331becfe21b592 = 0 +3f4b67febd9d11e74f4f2db32fb9bdf9f232611a = 0 +4feaf2d6e37163d435886597e4861cc182e4795b = 0 +6a6b6cd0cc1f39e2b60d3855739c0c52a2cba838 = 0 +7d948938db5fa77922714d27a48c7d1716b0b251 = 0 +b38338a89c82f530a67547991f0705be780e3fa3 = 0 +ea16431f6c12e39992aff797e5a38d5ad30bcd02 = 0 +ecf63dc4d034857b2fb439ba15d8525cbf14a0a9 = 0 + +[6d106ca5-e8e8-5252-aaf4-9897e4edbf5a] +0917261c3ea96330c123e2014880f2f980954017 = 0 +0d9bbf77c28e9ca89ce95bf42a70039122527a99 = 0 +40fc4cb4898c05c463091738f3d71520a64d591d = 0 +5cd21c4d430d9093acb1dc1bb391c19e0a7625a9 = 0 +65c9ee022a6988aa1abc054d9ad71a3e6d17c922 = 0 +87be0c9f791bd04c77a7d91cfbaddb66371de5da = 0 +a5fc40efe6a1f9f8983a2067b6395b6f0b01cc8d = 0 +af85debb0e9a630442e59721b1acb024f9d78074 = 0 +b89b4fe9d63356aeef26b3666f3f0b8dc5bd9837 = 0 +bcaf3248c0a0cbf6fadca7331b83546e0c7107d6 = 0 +c1a5a312012b99a00f1d11f490b5c0467cc1bec4 = 0 +c729adeff5566d0a451d63b8217979dea8e7c717 = 0 +e1e58a3abc3904d74fa4cbb100fb0bcb2904fa72 = 0 +f795afc22bca4098a8d50e90c5c9a0e89b3e4bc1 = 0 +fdefd0523034f008af9fc1bea4e8f6465b78f298 = 0 +ffe31259e7caa9362a7e4402d1816cef7ba71e4c = 0 + +[efc20176-1dac-578f-9267-773aa9bc71dc] +19d7bcb1cc442c402414eaaddfd6c53a35ac8975 = 2097152 +324cde353afc1a92c1eab3e6c60ffd72371dd677 = 2097152 +46e2bcf4e1e1fa72cf414f48893baa3fd9916e1f = 2097152 +510a8b13fc89d36225d68296fc1f949f6a494ba0 = 2097152 +8fe3dc60df314221a30baf82fe1c0513f533ec16 = 2097152 +94672aabec39f7002fea679127258f5abbba18f1 = 2097152 +d24c40eae1f4fc96a6dfe9121122cac5d3e26e70 = 2097152 +dbb87804c67b40b0ae38460917f5f7a3afa1374c = 2097152 +f4ac9f70813e2fecad4a9130f3ea4156ed2fed52 = 2097152 + +[203fad6b-76d5-5f68-8b2e-e85904e86574] +997a6f58e5fcc0608c136a6e9aa2e7e31f384726 = 0 +a894dbb31d5c095ce537131c3f1dc1c9dd70f9ef = 0 +a9814dd8b16282c44b5c370396c95924e85f7729 = 0 +ba4b76fbe95891c21ef150c169453d7f9a463f63 = 0 +c28299e56776d42fe474412d89488dd0f0c43f72 = 0 +d3a29cdd4d7ac85f5842a8e60d3dd1b6d0c025b0 = 0 +fb094f3211337881761c73cf5867a0876cfb19e9 = 0 +ff085ae80d2450b5a7f96693ff5b2168bc5acf26 = 0 + +[91ca9103-c91c-5507-a6ff-05d8648e996f] +66416c2660a11e73353910c2d1356a183f3ec518 = 0 +6fe7428b8730d3cddfdf47de7ce966df30a0a734 = 0 +73167d09df879ee17b2ea4cfa5e98ce057c29feb = 0 + +[4d2f22df-77d7-5622-8d7f-1db4ec2bcc3a] +278d15c1e8dd1f4ff95de9e8c2c4967bd16a98ef = 0 +28e7a89504dce5a635eb9bcf7166607ca91f6e98 = 0 +b12805cb15db2b61951b67b9128bab3d7fde400b = 0 +ff6b381e4a2542555286ea41460f0633745b8c9e = 0 + +[ca6e7d0a-b0c9-59ca-8aba-aebf11497e1c] +05f9525ae8871a9e432433444103bff341446c8c = 0 +0ffca8d72de751185a853882e7b00013269830ca = 0 +1569d30a5ec939707fd87e52c09ec51b7832e145 = 0 +16db97877dcf34f9ed774cf1d51940b69e5b61d6 = 0 +1eced64d986eb7f3be77b354a0ad6430fc267e1d = 0 +310668b5fb861cfaa9a9a035eecd33d0d62a7ff7 = 0 +39049c753790829342c3b8449449da9fa0ea96e7 = 0 +6804a8f6882a424772123f9acca1c1d35274a058 = 0 +6ac0160f0c4a6a7cb394dd8453eb1c437a8ed520 = 0 +7f20d624abac28c333ca22922803b03138c293e6 = 0 +90d70833b8c24c66efe8c4a6556cbf36c0536318 = 0 +98cafb4aae3abe36b6d474d8dcb511c2fb2caf97 = 0 +a88532d45c41c8b47e83a8bdf2ba2975a2aa56b2 = 0 +aa686b8e1bcab8ddd5a1f73667d3d1367603f741 = 0 +b05f2fd16fdca3563b61914706432ee18313ada9 = 0 +b3e576bf94dbd919df49f78aca91a23ff1bd5568 = 0 +bc2d411f66792be12556c7153fabda3d41aa3b68 = 0 +be433da068307a55ebf30ea13e095003b9c7fee5 = 0 +be5de503c3db59d8918b33c6ca4520dbee73d8e4 = 0 +cc51a9b11674c0540709512e9e63c0edd215ad71 = 0 +e5491224c856395926739a7a19dcefb5bce1e4fb = 0 +e702821c3bf51ef23af1580a6269f24a7d3f27ab = 0 +fb559abd9ddaafa1bbdd8ce6910029c116fb5470 = 0 + +[be414c8a-3a4b-5539-88f4-08bdb7198071] +59edd64d2a6b6a9c77ff449e6f931655ccd4c5e8 = 0 + +[f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98] +00531f3bf68df7bdda62e7ecfa6c4eb42c0c2981 = 0 +31a93b64aef50f067bd7fa648b76a1aa433ca894 = 0 +38cc23997fcab04283683cd9f711ca411d761e67 = 0 +4e48ad77b3a100810d20de7cd994806cf9acd449 = 0 +503eae848bbbe56caaa04c5aa03f627ec384a452 = 0 +58c0b7538fe45fb335ed64924b99952e5924a9a3 = 0 +5d0c39117aa273cb01e5f28e71dfa793819dc81a = 0 +65ae699fc45f11d981b464d131acfdefdf7e427c = 0 +6c83bcb5480318e09e3eef8d58f9c7d0c7fc7ab3 = 0 +6d1e509cea73402d4f6b37314ab0fe97d934c837 = 0 +9340ce88c67590276a07f15ef670335feea5dc82 = 0 +db2da36320759c5949c24b9234eaa01af57eea61 = 0 +f5faa6e85e255618f53d5a09b84446e9bb4a3b78 = 0 + +[38e38edf-8417-5370-95a0-9cbb8c7f171a] +0258f520324f16a02f5578fa50eb9479faa11ee8 = 0 +0f86226c88cd13797ad7edfeb7537b70f0f24f09 = 0 +119530a92986204566fb17bc54ef2b2fc7a80af2 = 0 +27d0d7b19c9aa8f573648d75232e7a6f5b6343b7 = 0 +287c668acd592c05ec90140dfa70a2887045b4f3 = 0 +2e421ce7e3a68ac8db09a27d408beb841504a208 = 0 +3cdbfbe33aaa490bc92c5b709cd44f1994b89543 = 0 +44131fbda5a6cfc87c962045f1d06d2d9887299e = 0 +4f862cf11a93d2c91ce5e745f51233c49941f836 = 0 +583e747419f5d5c49f1174ffb0c17bcffc536c1e = 0 +5fc1cf1b5c45e9f4b2ce6fb1fc7619e443146ee2 = 0 +6052ba9e5dff8ad7ce2ee2bc4c547a3be69ae202 = 0 +62d21a784a1a0227f976974e7941b8ecb4c7500c = 0 +7419f5449fad90589783891111167bf2f9c3f4d4 = 0 +753569ca95c7990f0ef8eaf704cfeda5ba0ef3b3 = 0 +831f5a5ea3613e342e5a63cd4051e1a437b7df2e = 0 +83f1e4c5540774109ee4f75008a6db3739028916 = 0 +939bd42ee8257ef317d63d6448f44b4fc8c45b99 = 0 +9515d57e508b863636017a61f46e14c6b3c30d73 = 0 +9a734eb3842873962378b239f57b46106c48652a = 0 +a71c0b7754fb3e8a9e5a11c085cff331af0c091e = 0 +a772ce48b0e1fed196d5d0a7dacd6e3776b95777 = 0 +bd1a03a2bdf64aa306ac491a8492a7372178d9ac = 0 +d4e951dbfce965fa4a8dca4897fd6eadbacf40ab = 0 +dbad91a9598659380853b042e231af63b86f38d5 = 0 +dc0dcebc09ed2d5c700ea401544d4723ec8a8f91 = 0 +f21b397185db9e28b43fe8255b287e48f3a0b306 = 0 +f6d420b40749199df514c78985349c77f5a9aada = 0 + +[8d5ece8b-de18-5317-b113-243142960cc6] +328317a143c5f0fd82f9002daa035b145adee8a8 = 0 +6a5522cc1799dddb248c325747b2a0ac81f7e626 = 0 +93374a731b645d7551014a3b173309c2fadcac92 = 0 +96a4871db6dce5ccfb630da0c2056d9b0ea31e37 = 0 +a65acd65a8634e654f26870c641151c0b0a74b81 = 0 +d1fab11f5eeb9714aa7d4e4388673368ee3b4cd1 = 0 +f3d7cf19e7684986f64bead9940fb553d13a6b69 = 0 + +[60bf3e95-4087-53dc-ae20-288a0d20c6a6] +038460bf168ea2c0eaa6284fcea421dc403a1f41 = 0 +1674755b4f54c9aab64a80f07b2ef5246581e011 = 0 +1de8b577e482d659b9b858e7101d6fb683593941 = 0 +67d60a8d831cd0bfa4283f5f8c2e5917ca9dc4e4 = 0 +68603c3d7eb03735fc283582e0edca3245d8eff9 = 0 +754c201c4fdbaf9866fa7d8a1b4f26f6403aba95 = 0 +7f1281317798e80930825e4e9f7a66f3a3401fa2 = 0 +835726b1abf25a50e55d132152449306e58128d8 = 0 +b22a471fd81914c097622af9b931aeb7668dcfe7 = 0 +b92d3f2a0a22d1100b5dcf2d0883e61782bc487c = 0 +ccc0811db3f4c29d135cc01f59cef05b7c7513ee = 0 +d3d3bf632346824c22cf1f7fca6983fdf6c18cc8 = 0 +da2b074a65c5652df8f2ac09a16a7c6c33c435c7 = 0 +df3d07cf225abad13dae5d089e9f8a117d1073c3 = 0 +f6fa76960508dd72502ecb3d4f671b32fcdcfb63 = 0 + +[3c7084bd-78ad-589a-b5bb-dbd673274bea] +04fa677bafa2072016fa6d329d419c1153ffc251 = 0 +063f7b94d3f9f97d3fd3539e857a6e8b1eff0138 = 0 +079d5d938d397b0363395c29d26ad62a632c895b = 0 +13677a1bd930e7c6c2c747de3d6b170c27f9a433 = 0 +1c7485ba4fdeeb3c2ea9f5fdc45c2a955bf4034a = 0 +1f9db9313af48b6922c27f56af10c9fa2121cf28 = 0 +225cd2e795ff377f4c7268b02007b187f28b8b08 = 0 +32948320b9ca3c0b9ee612450bd8119756f3e257 = 0 +38e45b5ca54bba22592b4c0b3e8f8180a9eaf1c8 = 0 +3c3b0729bd9809487ea7b04b5984df285b64671e = 0 +3d262e692244a182f002963064013124374ea746 = 0 +42beef841ea3a001ddf43a91a75677fce2fd83e3 = 0 +652fc5478d62effe37f5c601ed24f02c968ecceb = 0 +6a4c469fb559402bc19060fa0cf509a78a8fe791 = 0 +6a57bdf4ac59a84b4b468623233329960397e23e = 0 +890e72e379b8f19f625d1d55e519de8ec1c5be0e = 0 +a07e520389e2414dacc06f8978e761cc07197376 = 0 +a25268c5c1a57bad80461419b30bd9f914a495cd = 0 +a70c14f2f10c25e458271f3964ec7ce4385c064e = 0 +a85199f7c26e271b41d34feea71c99d9c2a9ebd1 = 0 +ab5988f633b1c3142a3b8b029544582597fc54c4 = 0 +ae65225da7557eaa82bdc2e8ff44795df948da39 = 0 +b6aceac28572b7ae433405af9facd9ac232772df = 0 +c79725929d1abf526373a1c595517874f940e54c = 0 +c8a09bc13d2e0ebe68d5e1a4f52f4bff13ba0818 = 0 +e2c23adbc3ed81c9dd8096b22df27d3038c2bca2 = 0 +e5fcb9697948408b09de08a3f2740ae4813a9362 = 0 + +[9bedddac-7bd8-5a76-a87b-3e0c06c424c8] +3042923c0c9281b0ff6d7bccb44f3ad3c161d9b7 = 0 +47a2bb4ffc1405a38e5779ffa4ac8db7717b0222 = 0 +8126431217eef00ff3d353c4e81afecc454db49b = 0 +8dbe5909c8dd5c13684fb3434b764dbd368e5b13 = 0 +e73bd936b0cd8472bd69f273af4fcd3285c1074a = 0 + +[02a96ca5-b822-518b-9654-c826a3622d91] +a637d089300141ce240cc1ad4658b713140a0a85 = 0 +d74f64f1942d7e0a661560518205b6c674d9033e = 0 +eab81676007d537c5d6a204962ec3bb804b8054e = 0 + +[4086de5b-f4b6-55f3-abb0-b8c73827585f] +06e19252e147e49eaf55643ca6796859540c1242 = 0 +0c97cd9675578d98da944f51adc4bb4d8e646bad = 0 +0ca82a206e96d43c295b0aeb72cf4a5972a2c5af = 0 +128f4ff88fe9072a1fdd5f35598851f4475be914 = 0 +1da0c4b672250fcc38277676bb20cb19417c7fd6 = 0 +26b34816b7762f12bc2f885fa37f1aa6d9717c04 = 0 +2f422f3be9cc4380b013df6cff2aed689124ed5b = 0 +36061ff3a5af711937a316e376d3f6487b44169a = 0 +3cf8dfc82c0c7b1aece5a633b3ba80b8c1bd7c12 = 0 +3edbec15979a4a9db72d6dfc05c22ed6daff388b = 0 +4f20f40c7dd351192daa15d1ad722eea9f6dd28e = 0 +631efccf6da8fef03f50be94442498c46f7997a8 = 0 +65b8d6682713d261d4268b9712c551df110e34ed = 0 +86c9576bf4c2c09ad4542478b56dff43a10fa8fc = 0 +bbdaf87c61f777f7438bc7244c24e5b3f647fe83 = 0 +c3e7a315887c513133266220bc3814188979ce90 = 0 +e5d82d27c1a8f04c91aba08464d65747ce849ea1 = 0 +f79f72d4d57d38519acd36e8ce2eb4b19723790a = 0 +fd4fe050d8ead166dbcfaebf4fb8fcd34f94e807 = 0 +fd9e648d7c6d8ff9b1ae79e6b771d05bff480454 = 0 + +[d57b5e41-28aa-5897-8163-4bcd89186ad2] +003e380eeeaee57a2e84c950706fa4b5a646bf79 = 0 +4f3eaeb50d7a23f41826695d8a0e3fd5bc1be72e = 0 +53a1a4558bb412c2793b736c0eb5cded8f743957 = 0 +5bb4c012a7efd6f24289d5591f55a844d74b336d = 0 +5be338cc71c39c3a5a9f202321c2fa9fbcc1767c = 0 +727dc740d1fd1e99e62817ce2955ab15f9f3051d = 0 +7af0399aaeb46fabf1b7e8212edd78284e773be9 = 0 +7e00292a889a374ad29b99e7470a9ed1a3c32f0d = 0 +91c1e755ee1aa6f758b48716426d9f71dc9b2010 = 0 +95cfdcf39c61b3d769c04a583443c44af971553d = 0 +992909a784ea278aef15990cb103e9bbdfc8047a = 0 +aa6265815b407f08f72aef9420932470ab21f410 = 0 +aba9243b11a21e7eb77b0eba2fd16f19414b62cc = 0 +acc648923bb9b044d3e75e85de5802f9f44aef3e = 0 +af6d35afa7327ba89733b9b3841b842a37e1eec8 = 0 +afac42751bb1ad67b722bf62b7eb013cb65beb58 = 0 +c764d72be8dac01e4939715a9228a10de9970ef6 = 0 +d60866373873cf23f22908902fa219f8936ad437 = 0 +d94a6a2693e7dfbae9dc6f3f4f8785bae857745b = 0 +e5e263cdc04bc06cb6d1d4d75e1b8495794d8e4e = 0 +e899213d35bd04e19c4c0d3dfc14307ccaf39074 = 0 +ee74a552261c7a4c5d548dc07a0a2abbd6eb179a = 0 +f18fee9c2c76eb228d962747b2d9da83092e8ea3 = 0 +fd2f466b0476fcbb417ee53e0983140e1258328c = 0 + +[5752ebe1-31b9-557e-87aa-f909b540aa54] +5b526df76d3d8935f4eef2e4f00db766611e4355 = 0 +5b8500fd1d302e27843c2e8513ed068809984f50 = 0 +63486f60e8b2b0ed6457de2a30cf514571a7a69b = 0 +afc3a155f7adf58fc263424d26ae13fc6bb8c9c6 = 0 +c81699f9123c4fb299d5b76b61702f136fbb62a2 = 0 +d29b1c39c7d188d539c9821b6ba97bc031c95f3d = 0 +e8535e792e9487527d079ec5d8773a035e9a41a8 = 0 + +[0c68f7d7-f131-5f86-a1c3-88cf8149b2d7] +26b32bffb826f46cb3c8357a0556ea0e2e945c91 = 0 +34c29122a5286f633bd55d9967ae05373101bf23 = 0 +5598067ef2ba804af994f60847164835d19c1af3 = 0 +65874b9fca1e14c86be7db890afe5072651b095e = 0 +ea9036ae68af60249bede743a00088c97951e2a9 = 0 + +[28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71] +06c57861ccf08aab5362353e94715792a9daea39 = 0 +0c46f6e48a34b6c376d97539dbd262a4a651c0b1 = 0 +0ef48858ef931c68bc4cd9556558f0d6af1a6c8f = 0 +1273a2507ffac0afe0ff8835672202583f1d3fb7 = 0 +16621516cb2a031538f32a66873bf154993e79b9 = 0 +18c05885c5cd31e698d6a2b33508c0e0b17c0451 = 0 +1ed615398fdeffbe1bdb1cadf436d2ed055484fb = 0 +291512428c143ccaadd66d653cfc3df5b8a1d796 = 0 +295f08eb7df6b5236a000928cb3f929661976afc = 0 +2f970a5f32e38a3fc063e712ad3e8deca8685c61 = 0 +30672d0ad8dc254d80e22dd130d8940182c4884c = 0 +55b513f2c82e42b35e5696cb03212f8d9aaf6a8a = 0 +5bd980cf58159be9d0e717ae9677595c011f453c = 0 +5d36fba98931cedee491158412552636795fb181 = 0 +5df0f1f69afa45827f90a4256c97e38564ff5457 = 0 +70f731c3de7fc58deb79f3192f766532f7649f9a = 0 +75fd0208b771444f4ebe8e1cb88f5e54bc70ba2f = 0 +776047caccdfd7aad34cd58f9352c58bd189004c = 0 +7abeb35eed59bebb20c3ff7631ae92d8efd96b51 = 0 +8eb91b9e8de7c381bbf224a6dee81400030509ed = 0 +90f81e451d884061743c0d200680839418a44451 = 0 +95d3600d761dc3c04d7432bc2c2265e0ce3eeb17 = 0 +9ccf71801e48cae09ea2523e59f2b130e0143b54 = 0 +a12b8c6fe53d99de1aa40d1f33e614da9358f604 = 0 +a348ed682a3b5ba65c313161496042f796014915 = 0 +a8acf5ffcb5fb76dc8d0e567f67c9486dbea9101 = 0 +aa141735b526232bcfac8d044c00f28fd83366ac = 0 +ac0f5ba9783048c908d655c3279f60413c196d25 = 0 +b498e299eb80c0ddc62e785501aede4f52108a04 = 0 +bad36645ade6e4421a625fca917c2a2ef2dd3c22 = 0 +bd1dad07e332386d7567b06925df50c4306db483 = 0 +bdf536ee152561df3517435af307547f08ea514d = 0 +bef725ca75d87a331fdc68c84f4e36dbde02b09b = 0 +ca0112fa138bcd4bb1e5b1dfc44c9bc916db60a1 = 0 +cb7328b57331783daf5e01fa9ad0aa280a4de73b = 0 +e0d5ff3637d49a59b78a8daa0af3d0c2c11b697e = 0 +e19c2521749b15f6a8a12f846d10565ead470a91 = 0 +e1b972ac79a1977feda0d8f4b4858ba0341e2bc5 = 0 +e31746a96dd567ed0196042a32ec3b336518bf09 = 0 +e662ec8265160d6e69039d6081346b1df6736361 = 0 +f8cf54180ce3eddf8d9d95c2d46498feb492e17c = 35127304 +faa5261bee6e9b2d2a9bb73e0c349e9cf7d62474 = 0 + +[92c85e6c-cbff-5e0c-80f7-495c94daaecd] +37cac0c1b0ff1ead07acc8ea4c7e4804436a4b70 = 0 +47e025a8995ecedcb338e385a038ef6df2f90da7 = 0 +488258e9ce31182f0da9f1fa22c836b25f5de06d = 0 +4c7916d223e4a6d21f7cc9b8d7c6e040488e7c87 = 0 +6487a77efcdd142a342af2a4b524daab579d8552 = 0 +6bcb3feb77782416a17d7cf2db9d16cb895aef0b = 0 +8456534aa6adc32381c91811768acc229155c181 = 0 +973c91c559926d42401db4f65ec0741b42669b5e = 0 +b62723b3b1e65ab602bfdbe35c2257f36cb1b846 = 0 +c46b4c9321e09e55fd2c06db2d2a9f00f1627e9a = 0 +e4c7431ac8265d56b567230e350d1c299995e99a = 0 +ef0fd0bd9e4cb1872ff5746426240939fc42541c = 0 + +[5a44cd38-3b09-5e84-97ab-e6762b1e8d4e] +030f7f0f979bae91795ebc1d238f94bcd0164192 = 0 + +[92fee26a-97fe-5a0c-ad85-20a5f3185b63] +061fe75330b70388895a09f8ab66bc1e7c4614f1 = 0 +0d1a5e9c73cfe36932d1613751b7f8e3a5385af0 = 0 +268a606062d9c3543bbdd4effa6ec74aaa4a47b5 = 0 +3af7c5ca9f16d7206516f89314d15186430bf9e5 = 0 +44ac3390ccf130c4e54bf0ef97273293af7282c6 = 0 +4d00c3a40bc9506af1804afedcd3781da8d5de6f = 0 +595efb8aafd15b692a1bd31f1d186f7152550e9b = 0 +65fa1e289700bdb64691f18f0ef2fee7d3d0e1b7 = 0 +69b6765416cc454a201eab7dc6dd0ae07e45981d = 0 +75960bb242b13ae24668d73403be47e204efff28 = 0 +8d49922f059a3296f94181c29a237cebf397f676 = 33554432 +af5987a7644c85df983610d86046f08d38fec0c3 = 0 +b4ff3f452dfeaab12b23036894c8145e44e33d95 = 0 +c1e18f53fcdfcc6eb1f4f7486a0ef96f9e54d9fa = 0 +d2f662589c1beea06276504e48363053488a7e61 = 0 +d42aca39d59dcdb8e238841a2f2660a34ebc2c8f = 0 +d60ba9f7d4abf06909c471c3d556d229e835b02f = 0 +dbd40e5f7d0e829ff53066965e6789117c0d61a1 = 0 +df5704c089a934f237534f244217d246220457da = 0 +ed6663119b876c6263e021df31198c89125eb47c = 0 +fc2419cdaf367041c61cfe9df20f22ead41a15d4 = 0 +fdd0e4595d23eeeca2769df089f6dada752b4e16 = 0 + +[c91e804a-d5a3-530f-b6f0-dfbca275c004] +05f4df1d6ac01eacdab415ea20e874be3623f6a4 = 0 +11b9dc156a8a641825f8a2798fe301f70a70510b = 0 +1221aa1d952c8391056b563762fb0c56f3f1174d = 4 +16018ad198d50d5a951faa46ad5e444a80df5a49 = 0 +51e245da67aa97e8a3cc3ae5731ac1e8e6d8bc95 = 4 +8dda4921711d5b2f7769affc9f55851b87497842 = 0 +99aaa7693f9dffb7d4e4ffd8ced43c3f2ee37cf5 = 0 +9c614a74a78db3cf3cb9031e37cf78a1d169f89b = 0 +aa6a1ad45e701a5af5a7761721dd617af8ee5c42 = 0 +b585b3d7390f0c993b5aa4ca8c7f4142962e17aa = 0 +bc5d4e136fe093addfe3e6497d10f9d1ff260fec = 0 +bd2a7145f3d7810f626e18a8cb788d34c357da47 = 0 +e18352da94eda637118bfcf3a9545d9e39bebb9e = 0 +f0148cac14894fb88df0be999e0f79351938a8a4 = 0 +f386d313ca6eb9fc39f5f5fd10a3780f4853da47 = 4 +fcb249691700cdfde56184049060258ca8758c6d = 4 +fdb02ed4d5a8579d46a9d65ea9edac2b757c839e = 4 + +[1dd54a5c-ff30-55c3-9c22-2141a9b2792c] +3cdbb0fd66493b20865d04bc0403d11f56472526 = 0 + +[87a02803-f0ee-5d26-846e-298423f06ab0] +613ab104ddef105e7ae50c1f53ff557793d8cae4 = 0 +7fea0ee863ce74201c0ded73169e6a0f702641d9 = 0 +d5da619a1c36a63917be37cc7608cb9b3154ba45 = 0 +f2b30d6fa61193fdf046948cb9bdcfceaaab82d1 = 0 +ff2c19a97e3d56fb509e3555107871f63beece31 = 0 + +[5e113713-6c35-5477-b766-e1109486666f] +bdbaf8df76cbaa52c312a6b923bafab7b6e493d0 = 4096 + +[3df1733e-8da1-5e0d-9c60-b33daa64fdfa] +7983203e8c457826537d620f326506f0b893f08a = 0 +ece194681296be259fd5b8758c3227c41e9dce33 = 0 + +[4b11ee91-296f-5714-9832-002c20994614] +19bb3cabf99ea12fb311f358a354e5f2db4e4d9f = 0 +48fc465620f8862d3d4c5cda1e393374388ebf04 = 0 +5a6e690ad753a9943e2481adf0b3f960ca073d59 = 0 +9cf2e4c870fc56349a3393d0cf1d3a97a685f4d9 = 0 +aa231a83baf53dccf69f181327612b80f8ed4282 = 0 +b617ef61b247cf8c3b659ab24237e4da25a14e6d = 0 +f0ccb1213b6cbec35421084d6f6867a42b8d743c = 0 + +[d54b0c1a-921d-58e0-8e36-89d8069c0969] +1ddcb87152be26964183bb6db58886ad1303bed4 = 0 +b7c046c4a41cdd09971d3a9aa7fedf400bf19c76 = 0 +b8941389afffa620db36563755e219d3d3903b70 = 0 +e9bb482fd8cc5032b6692d843f99d3de4c8e93d0 = 0 + +[435c3d8c-e5f4-5f7f-83ee-d96dcc9b5a11] +0ffcee0aa36146fc0589f876c87df4fdc1df96ed = 0 +26e11e95f3b6302e2abc762fdf79e9e3a6a0531e = 0 +49527f63454771e7de0d0b91a34f60cbc530742c = 0 +9b0106df5d2120cf311d3f29d999daa0acd67b08 = 0 + +[cc18c42c-b769-54ff-9e2a-b28141a64aae] +00cd53d0928a0d694d40cf6c05071f8eca64d529 = 0 +162134519d895ff8131995ee2712ced185362346 = 0 +38534107c43308e298cbe79781be91acb54b2c86 = 0 +39af323ec9138bb656af10499834f38c641f10f4 = 0 +68564fbd7a162fd44b947940428eed06f7920ed6 = 0 +98f172cb6b1e710c0e15a1653aa351fb1a7e636c = 0 +9b49c4a4e173e72375817182332f2c6dab95bce8 = 0 +9b9fdd310b694d2bc50c9cb7178ff9fa5046edb0 = 0 +aa602b4a3572d788d0b81dbc67a9a4e9c46da4ab = 0 +e44f45a6b0cd6684375349d6bfe87c4a302436a5 = 0 +f67c984fc2d40961b52492a1486fbec8373417d9 = 0 +f7bcaa15278b2f71d2e75543d174f7ad5daaf610 = 0 +ffe897af46fac9d21d9a1c92855fce004ad53488 = 0 + +[891a1506-143c-57d2-908e-e1f8e92e6de9] +0ee4432e2491ea083026076854e4a57b1af84a82 = 0 +2750ec4bcca6795946f36bbe4af15f93821a2f38 = 0 +2f67c42efcd1a4ea16677198909dc13fcf866547 = 0 +3c777a62181e23a0d0b3dbfb081c49ab45be83aa = 0 +4ceb4dd9241e9e4f3f003ee041923f46797587a9 = 0 +51a6b18b8bcf08df701b541d571ad1968cc78d49 = 0 +65e18df1d1ac2db99e7651ee69529704656f06b5 = 0 +6f916cf4e9caec7e043f3de7007f0dbae3346b51 = 0 +c716f3d971be8ba446a43f09fd873b68d9259606 = 0 +cec1adba45bf6e53814d6fa3a5bdd06ae16c0fce = 0 +e7185bd53d204b7dc8892eb987d91305949b3126 = 0 + +[e04668b6-ddf2-5c09-b17b-50da0d2d0da2] +116878b10fbfbfdf82f786a8a14692054388ae80 = 0 +217ff7e42f9953b1d5b55794e5d5e8d8e26c15f1 = 0 +2ce98120ebbb92c49832501fec41e8b1953499c0 = 0 +6542715f38f9b548a7150b0e46e807021bf9b5be = 0 +7b93214385c293ee063279ca260bdc3aba7cbe78 = 0 +7fabf351c7132a6757c79421e1ab6ed7740e97bc = 0 +b34ffbd659814e092260d13d8a8582d38d9ef214 = 0 + +[f7cde340-81b8-519f-8cf7-a5da16e3ca5a] +4601394a40d4a332f8cfb796d03af1829939d4f3 = 0 +d4a53a13f912be7f7a9433b30ff0a3893f9af18e = 0 +f8bcf69f08f99ece4e5ee5b6d784993d1f06d253 = 0 + +[bb55d02e-6178-5ea4-9358-168ed098a6a0] +63971bf745ce378dc36799b116f034172f538f89 = 0 +af47db31c3ca21a4f562116cdd6a7c2dd594db54 = 0 + +[01680d73-4ee2-5a08-a1aa-533608c188bb] +433f7a1b3fb7dc3f1edbde9ed453c52e03b86f7f = 0 +7e31a5d8e5f4acd9cd2b30aa3bf78a748f7d13f1 = 0 +d8d48a0fca88ce92f5136ce7519fad277030f1f4 = 0 + +[38a4a31c-f17b-5f22-8721-d9b4a0175df2] +4b7131c9d5d378b65efb0deb5437a046fce27fdb = 0 +945fdc068eb67de3e2a261483a0d4c00be1ae244 = 0 +a825bfa5873480fdc3dfdb38502e275bb04b8fdd = 0 + +[9bc6ac9d-e6b2-5f70-b0a8-242a01662520] +3a7c88f04aad3ed9446731a241af22701309541c = 0 +4ad828442cc3c6e8f1fe3ab3b69ce5877e882fb2 = 0 +a6b5301ac5bf42c3f9208e9acbdc3216c72af9ac = 0 +b7899bc231bb3ee47b3ee439fe41966486f90885 = 0 + +[899a7d2d-5c61-547b-bef9-6698a8d05446] +3619443128a09774fb6583f6d2ab651eb60245e3 = 0 +a2e54222240a0b06d52074a216b0f09ce3d2ba68 = 0 +baecd090de80b241c981ec4e195708abf1ed3c2f = 0 + +[96124ad7-5c0a-5c8f-8316-419835a3cefd] +1526bcab977ff07eca752c696a1c645e8c689074 = 0 +1aaa77e267ebf0b51aa4eb21656567215494429d = 0 +1b29d72910587ea6bc5f2663845eab407b24d1e7 = 0 +1ce05169d21a93fd86e98d59fb4a9a324e4264df = 0 +6f0b5284cf738c4a3f6d7896911e87c3ce3a6551 = 0 +c8e1c7f1d0e32c6990b8626d4915657196fe521f = 0 +f126624d51434062f2365086dfa847a2849a24bf = 0 + +[b1f22607-7830-5ceb-9a8e-05ab1ac77008] +010936e30f8374091b6df54791577f4125dafa61 = 0 +21f07ee37e68c3f50b4e365a3bc3d3dfc363807b = 0 +5edc1a5fa84ca61b89d2c3d49df4d245faafb92c = 0 +63dbdacca9fd79ce57b5cde06a1af3cb1c63835a = 33554440 +859c66ce5bc6984068cc291a848c1555f7d63f8c = 0 +9836c3555d8303375e3dfcbed44d720982841972 = 0 +bff94d950aeb86a230d94d70600a7294c2243a4d = 0 +c03c19370cd3c791cff84bdeedf1fd81a128bc81 = 0 +c8a64c087fe39ddc0f0e7c425639403f89c8350b = 0 +d0840d34cfaedcb1f7f6461e98fabb4d0066ec3f = 0 +d41245477df85153aab7103cf9b6e118d23e43e3 = 0 +e4c5c329704f47596038b2f51018b2272e40190d = 0 +fa159f56b8a6e8aad0221be32463deadba07148c = 0 + +[c350da53-3175-51ac-badb-d4cd9f895652] +598fe5a8571f9c51c25f34d34277d4d5f95b00ad = 0 +aba1f767449bc2c4d6f536765f0047808c965c03 = 0 +b8339213682ac8ed88d0ae0e219abd2e0e263db8 = 0 +bd491efc20c523b94441a31f2d883a5e520f1116 = 0 + +[cf35fbd7-0cd7-5166-be24-54bfbe79505f] +5107b71bdb56bab2eb98c49800fe4419bd898fd4 = 0 +5151e04af5527b0eac60d5b90ff367ec72ebf91a = 0 +6d901cdc5f159afa635db122515b39c80cbf76c1 = 0 +964d7cf5790130a83cd267180df609ec377e2f34 = 0 +de85338afedc8df759483cbab11d7843e27c41fd = 0 +e3b883b5d66b47b4ddcd64592b16825edcff0637 = 0 + +[61d90e0f-e114-555e-ac52-39dfb47a3ef9] +344844e806b161d0ae9be532b15c6be4be1a2b96 = 0 +346562416212224b060040a015cdacc653688216 = 0 +4b351268718b8d3414412563129125ddbf9cd1c5 = 0 +63f85f5db1fb7ea78b6f664d00ed8b04d3064e67 = 0 +7220a3f210eab2d9a9466d4c18a2572c67e3d5f2 = 0 +cf69b8d3449e9cbe1f356f01356ae42ebf7dd375 = 0 +fc698b9f4e82706ad0a73982c68768a15657f138 = 0 + +[dcc97b0b-8ce5-5539-9008-bb190f959ef6] +0228639da71297e57bb1ff50ca4110b903b00389 = 0 +04311dfa82ff0a9424a873018968ac4869b21080 = 0 +06a6539dbe8aaa458c91bb6e45014c78cb4b520d = 0 +06f5c400968e80930f3647f88bca5085073b867d = 0 +19775ffedd111a597686daf1b00cf2bab0e103a0 = 0 +2c4b6e244b26a953502b8d43a297f4a7feca4956 = 0 +2cd1b6327872cd26b88669ecf99e9f5e16fecfb4 = 0 +311a67e2bc908ed981ae16dd29287d93068ef0ab = 0 +38ab0047d681c63da629f4647abbe3298369b898 = 0 +44f3f29f9a9ac98618a5a3f97f46410d410f5b84 = 0 +45e1f3dc08da57e3e802a6b8d31e94d9cc33464f = 0 +4900e28e10826f24b2a0888750a62d6ab6f68a00 = 0 +78cecf429127592e0dfa8c098763bc3a462a5469 = 0 +7e3e98a8ef27405e64fc1959a08640f4cea27663 = 0 +8dbff9d0f7074cef89896850c306a807eda4a089 = 0 +90d3d8bc8a70c8bf3a2d65dd10025479a64e3d2f = 0 +97e12446b73b890f455fc4f2fbbe3df432d6e3dd = 0 +c76e1e7dc1880a3d439bad270b144d7ad2fcb11c = 0 +de116064bfe0a669f4bcb47758417957ef9367e1 = 0 +de7e2972687c8e14224c878064fb6486d5637952 = 0 +e5d642d6932b68d1ef28a24298b83ff4f4d33e9a = 0 +ef6c5637422ec0460b493530c8a0ab3aaff0f574 = 0 +efe1a2c7e7102dc195b1af26ac485acb70d05ad8 = 0 +f1b841edf492dbebab58adad3adaf6297ea48616 = 0 +fcf32635d40d82d8436654920b6634a83ecba78e = 0 +fe323fbb8cb1a102be5cbcc779089299d5806ef7 = 0 + +[323cb8eb-fbf6-51c0-afd0-f8fba70507b2] +1002e1f8b8b0a9e61debcc4dea0ab55a3a4a402f = 0 +17afc675d5acb0885ea41f958458cab70458d9fe = 0 +32107ceaa8c68b922ae30d80868e0a4b42bd203f = 0 +3462bf7ec7d6835cbe03171690530a8cec354247 = 0 +7f744b6ab81f33276b46deda810c6755fea5ec2a = 0 +9d3829ac010a34a3ddd7c4526528244c53c53771 = 0 +bb2d33b5206dc3f0e569b299ff3b020b615b8d8a = 0 +fe233d6c015da0686c4833189e919cef35cbfe69 = 0 + +[19e549d1-356f-5655-9f3d-c1d6136da705] +2dd756f4d85eefa335c20d4aad90496584d3b714 = 0 +40d0754ddda531b0255896f304cc58bd1610443e = 0 +57dabe976d5391bc47e296686db3b34cdd829e10 = 0 +7263f355361c86dbf2fc64ee688ed3b11def9080 = 0 +9ba3f2e12b44a35382e81ebd022c216c545855a1 = 0 +bac1b72610441e4dbc0d867ffffc7adf5cdda15c = 0 +c44834bb8cf598d246f1b4ccdea92e28cf9fb7b0 = 0 +e555c7010106a827f5c6eb8a25895b90c3ff7cc7 = 0 + +[7cd16168-b42c-5e7d-a585-4f59d326662d] +054fb2d515f0d8b5637280660feae6801d595bf3 = 0 +087753de2274b8438776508e3e41672bfb9934d9 = 0 +42b8cd23dd31744197f72e2cd0f950a5c205d48b = 0 +4fe20c9f52325eb881d4d06df362d376722b16ea = 0 +58bce93fec5caf94503a1e0b50ced6e6c4aa904b = 0 +8ba686e4d5a7273037a0833800569e3ef8f6f117 = 0 +c2386d865b36bd3ae7176cde4bda4271ef7365d6 = 0 +efd07771a3e41ad02967c7cd728bd44563a1fb95 = 0 +f5b0eb48bc7e58d2d98d3b356f5e13725f47ab0e = 0 + +[0ef565a4-170c-5f04-8de2-149903a85f3d] +0530d8e470f07b2c07df2f3a288ad98fc62d3c10 = 0 +359013b96424d4dea133f3ce59e0e4b940ec0361 = 0 +4621b092648a330bc8033edfda56f46cba8169f3 = 0 +be8bfe5ab45a13ace8f1b5fc413f824ccf4f4363 = 0 +caa03dfe338b098e3cff77493046a49119ba1138 = 0 + +[641fcd17-68ae-5251-b519-46a2241e90d2] +2e14b7140d984e1a5c6942592effe0fadf850e6a = 0 +5bdc1d67d7c08e1032b2cc88e2524f8421267e34 = 0 +cf9ca5a8e1b0250c2c0642f5351e9902c5557a2e = 0 + +[fd0ad045-b25c-564e-8f9c-8ef5c5f21267] +08554f837b2f6f426749f4051f9e44d0b996d07a = 0 +0ec56826dc4eee301e0fe237af1fecef5c4febbb = 0 +51ee147fd2a0d052d42e3c2bdcc3d88d0654a7b4 = 0 +5df9c565d91b0a630f16bbc546ce24762cb3baa8 = 0 +916081fd59a2690bd3fb9e55506111e2ae8fa338 = 0 +daf55ad776aa5331eec77fd5e0a4a5db6e913852 = 0 +f03fc09194369dd954658c5b978144d05002c5ca = 0 + +[4d00f742-c7ba-57c2-abde-4428a4b178cb] +0e168911638335a06d8e876fc75eb89ff58a0d90 = 0 +1075b6047cca8132253d6a36bb10dca26e90b525 = 0 +26e3ad6fb710a46746c04eefe82ee28d677d2c64 = 0 +2df57243de3c8b702d97ec8ee6c062a3a2a76b8c = 0 +40486bfd04e824a2509c99a3a1ed52c42f641b06 = 0 +423d1cbffbca4b516dda70490ae3569405a0677c = 0 +5e359abd18da947606233cbb0e36257ce4f854e9 = 0 +63a4a604fe982ddd503602e1b4386c9f9b97312a = 0 +672a3736e2ae31f79d0b2a584f7a3ec16d3d9f30 = 0 +7b7bc81d8ad8fb28d1fa29200e9441ead88b7c8d = 0 +81dbd66f0ab8935a99ee2c82bfc885610b310cf6 = 0 +932bbb7c643dc7e008e924fc7b27902a85718804 = 0 +96daf9e2e8ead2f8aa85237b7e4e3083a5429908 = 0 +b2825cadefb5ec761e99122543123319678c9cb7 = 0 +be100d49933a6d343b1165db0afed2d99273b4e3 = 0 +bfa87907652efe791d8be2449d4379e6f4b68e3b = 0 +cf1cca1b5f3f726d0c6780e820a0666e9fb0108e = 0 +e978cfaa8f4c6aab4110d4510db572958268be81 = 0 +f058f27922b6ce633dd0eaafa5e96e4e136198ee = 0 + +[acd30bff-8734-59b1-86d1-c3ef2efb63d6] +169db94d89034120a5a6e5eb81b56e5f171acf2c = 0 +21f2def57f284e1fa659aefb1b5107c63c182380 = 0 +23e9b74d7a69b995acc7bfb0ef9708682860a7f2 = 0 +6d7a4fb6cb23b73c71f7a34e9ecd7a7d30292fda = 0 +779148e04a1735675a817e31d2c4fb77df5f3e83 = 0 +89e84f128bb342d93d991c34e7034be8e05a4213 = 0 +92bddf4eb34284a845c40e333b37bda2a711f99e = 0 +9d43a55b11aac8f0beeaec0d3847b1f3b47ff741 = 0 +a1baaf6be8e54de4a0ddf27238a9bc7132d21f5a = 0 +b059d7988abfc525c8733dd511ac92a0c8e45b2f = 0 +b1e43160148846b9271c3af44a63b8a2fab1193a = 0 +c09122a71c22f04f444f71e8f84887ec4ccf355b = 0 +d4957accc1b461d5b193c73a98ea1861b33a66e5 = 0 +ed7f787bb165781c5241e60ecf964d60bc37cc1e = 0 + +[a6aca261-61b0-5b33-a99a-e9c977ffa089] +b7136e33c6fbe8a2110c259648cf8f11d91ecdd5 = 0 +b74077a22efa0e6b65812456ccd25ec500c71bd0 = 0 +e53af89b5a4fa79a4623ea659414f2abe424c853 = 0 + +[e404c9c4-5aa3-5482-9006-d6d05ff6f231] +22168dfd06bdff84fa59ead38aacd31fc664e8a0 = 0 +58e091200929475b38c5aad25a3520f335c683df = 0 +ce94da4f2a234157d6755314a051e243f6f82b24 = 0 +d4c5a2f4fd0257e833ee2eafcee74efbd4cec705 = 0 + +[523d8e89-b243-5607-941c-87d699ea6713] +39fb53516cc1d736c18ba7ac62d51e81287f9246 = 0 +dc8e829603a62c953033d796b2b74709a25ade0d = 0 + +[d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2] +1473a64215b18a79d7e34d35036ec9a562c212c8 = 0 +2ffbf6eb79929e54deed706fd84ab8e3e74bf79c = 0 + +[bc5e4493-9b4d-5f90-b8aa-2b2bcaad7a26] +05cf7719ab3946de1cf0a54a8a15ba977fe31ef6 = 0 +0d9f04ce4be061d3c2b12644316a232c8f889b44 = 1 +168393de5954fee006be6581a3dad2ccd1ca3d5e = 0 +21ef9c926af6217d6fe91638be22e7efe64608f5 = 0 +33e3dd401fa0c3f1073091a9463c5082a919fbb9 = 1 +42ef052e6f30db7f223a58f74f22e25268273810 = 1 +4aa574375ffa69528dfaa3ff31c060cda9d6c08c = 4 +6a177bc3de9f1c4c0fe503d760c748be3b89efff = 4 +74aedaab2f0c1a64e396b6ff0442dbcfd0f037ab = 0 +80fbffea5653c0c61e8e14dbbb229d5d3b9d0548 = 4 +a0cc0edf8fa429b042ed451276ada626a517099e = 0 +a615b9e31cd44bd75241f15f36bc3a62aab9b101 = 4 +adaa80b5b1115f2b420ed7e40f773feed2ad0688 = 0 +b05bf0c503d74eccced10daf6a6c3919e607315f = 0 +b36e91f84e68a21a052076661513bf4a01c64173 = 0 +b53fdcb02d1f86343f27974561f369eadb0560f3 = 0 +bc4ac30c82ab6d82d9cdc9d4c85e21ba560b7e7c = 0 +cad4b096f71c666ef81e87fa894fcae105bcd3ed = 0 +d069993b320c57b2ba27336406f6ec3a9ae39375 = 0 +d2d5c0c2ff5ae9b2e813e25ab01cfe6cf515138e = 4 +eab14e1ab7b4de848ef6390101b6d40b489d5d08 = 0 +ef182c0a235d3433f3d1414b2d9b886eee0e2636 = 4 + +[ec55e9df-579d-5e55-a10d-b795213e2edd] +3e9e022661c88bb42679c562c364f5e2ce522a45 = 0 +60354dec877ab64ae06310c807490736952ca667 = 0 + +[c27321d9-0574-5035-807b-f59d2c89b15c] +052cb180101830a023df5c7e8e68e4f7d1155086 = 0 +527b069a55489afec1187ece9517020c53c57902 = 0 +80692c0f9bd981e668ff3f10284b46e46c7ef96e = 0 +885dafe2f374ed3bfa502e893e0388390d6a61e3 = 0 +f13ac1ec27a8514188c4a607aae7d6f7cb2d738f = 0 + +[83bd3595-91a6-54ef-8b5b-f5724fa88d16] +23156e651cf7353da5e779619addab34d22b3b81 = 0 +28937018540e74c1f08165bfcf3934c48e36a8b1 = 0 +8780b9acfc49ebf9b231b373d31c2c4046f93f13 = 0 +ae640fdae478140bfb0fbabe1153ae3e854ff5ee = 0 +f31f4bddddfbea289e77ced9b14648037e7ddd95 = 0 + +[dc211083-a33a-5b79-959f-2ff34033469d] +f33dc836928e69150dd09380c9ad057cfd451a20 = 0 + +[2f8fdf4e-e012-5916-ad7c-0e4644026d1e] +2f9b2b8b0ef80e9cb77fb232cbe7015f4f8503fa = 0 +5649aa52e7e83f669f81deaf08a271676f4d6f3a = 4 +6ea92b235a15a8cc364360baa2c8857d99fc8e9e = 0 +9036f7d77fe72132a2d0da8fc37fe21db9cf79aa = 4 +b8972cb37b93a77066bc7d0b3b9991d14f5809bc = 4 +cf50a23c292030f3c3126d11fd3e10cc47bf6091 = 0 +df97dea5a67e7c00df644398774b44e96963cb4b = 0 + +[55e21f81-8b0a-565e-b5ad-6816892a5ee7] +6934ac06900dfdea8f5d433b819582a2cf8177fa = 0 +9dd6c30b82bee444e30bf0a336d16c8f205a4a3d = 0 +b36b3610b4224990d967b275c4fa6a091289f6e7 = 0 +cd089cc3a813c83f3bf48c015bc1538cf11d8725 = 0 +ef194c835193ad2fabaef29e32b52ed598d12251 = 0 + +[7eab9655-7a32-54b9-bc77-719f19b65607] +5c160ca872bd81cc2665a0a9d2a34400d5df1725 = 0 +98844f79a6b23e9a7b1d3c25cf013d6e3a275ef3 = 0 +c1f0eab8896e4314b1fc6a8e13d4b4d37a81a03f = 0 +c4141494028e38e22c7b058702abc9a86fa04b70 = 0 + +[e1397348-e965-55d8-8fb3-3dd9faf6e4f1] +d0f99f89538ab1cb25370015ebf66deed6703fbe = 0 + +[08cea906-7a73-5b72-9a90-5814a991aa32] +1e7e638f22598f46aaa0b16ee081c260d4d34356 = 0 +32aa2edf641258a2f4de1735e3327f046ac18709 = 0 + +[f5c4805d-b585-58fe-b08a-e9c59614aa64] +05ee37055f8e1b65c450eb5fd04b8e9a94d85e2e = 33554432 +284dbb12779afde341987a96c35c8cf4b0bee2bc = 33554432 +36783cd1acd10f5a76553357199cb8e65ad53b4a = 33554432 +7d738fefaee58a786bcd8d336ea42e9601eab07c = 0 +8865827dedc7decf65a8434242e8e5a0e9c62a93 = 33554432 +f8e0e4db6963a0e5775539a65d8f85add7af9565 = 33554432 + +[1ba61846-84f7-5936-906d-801d78ac1a4a] +11b2d50a90019f3a31555f71e61939a37e27b437 = 0 +9ce1bd4a8ee169ea6072e4e46bf648210ad02f5d = 0 + +[3c71623a-a715-5176-9801-629b201a4880] +00de09cfcaafad720ca628699d06e182141cb21e = 0 +9f74097e91faeb399b4a8eb3052ce9bf3b6bf866 = 0 + +[124a6c59-8edb-56a9-bb1d-56f762e41daf] +c361fee6e13024372baa2ee9cabeffcc10109717 = 0 + +[aa1b3936-2fda-51b9-ab35-c553d3a640a2] +6f29103d07f86f5efca99582b2e6fd5bc5036164 = 0 +da4ef65290c072f8a8ee358cd264e325d35568d2 = 0 +fcceba1f8db57f5ab6ac2135069de3e53358d8c7 = 0 + +[f4d49484-96e4-5177-80dc-983951be60dc] +530fa970b4957d007ad082b21c1d27cf3916d906 = 0 +a036673e63c1e62ff34c90a21d0aacf1ae794ef6 = 0 +c38db4944216cf1c5e05857dbf1035c154d0a6f9 = 0 +e5951d564cac9a2f366b019e4928bd25b0b8ac86 = 0 + +[217a5fbf-7069-5d7e-8910-cffeb5401964] +abcfc807daa4671b0542767328af461cfc46588b = 0 + +[a2cc645c-3eea-5389-862e-a155d0052231] +35520bad8e2528cfee5a42bc6e3ae800fe3997d5 = 0 +b3cee81b4f088a2f6821fa2d8e7012d8f4c1ac81 = 0 + +[16d363e1-28f1-5f2b-b949-57f6f2d5f8ba] +0bce6021a281e1fd98f3e2c0155d804a1836d19a = 0 +3a98bdfe862bbd11263d6bbd897dc6c21e03ef15 = 0 +71bb0331eef4a21b1f39822047d52288f383935d = 0 +868929ef25bdfa4f29cea7e9255c8946cb081700 = 0 +e268c57bc4103b25585df2715b3008a3ce3cbbc4 = 0 +e5da541b5fac5ba50eeb36aea5a1122394b576da = 0 + +[a2bd30eb-e257-5431-a919-1863eab51364] +208d433662b07065e929ca94d4a896bb96021827 = 0 +2993c7b9a8a777fa4973d920807f8a74a45e60ee = 0 +3183be960f53f7782c7ae6134ea25bb5905d7f77 = 0 +6d58b9f19ab2d0b551c0b77a251fb6ce1d9b5aae = 0 +792878d7640fbbb3929a757119baff0663cb70ac = 0 +9c22ed2cd0e82d0f4af46c49fc85a30d2968a2d4 = 0 +9df73461782241f89f2a93edb507290743c5a340 = 0 + +[86223c79-3864-5bf0-83f7-82e725a168b6] +0207655f5e3f51dde98e507b4e5f4ccf480390eb = 0 +035d316543e358d0b2e49d19d606a753385bfd06 = 0 +04b198d197f4389f7a6e356a78846159dfda14f9 = 0 +11f1cb07ca6d591bc70c5c700291b2f8fcfa5a2b = 0 +29eacd5f391c0ae4448b39525a4933fc16ad38a4 = 0 +32312611bcc0439c485b9c677debebaeb00135cf = 0 +410d1190c783c860e3b4d23786e94aa328f33513 = 0 +4d6cfe1e44e2be0c13dcfa4ec2a6707a3177b995 = 0 +55b28dbb809118fa3f44d3eb0d8ca10dead3c57a = 0 +6de2f20dc982c5d0bd4813797d2c2cfb270931e4 = 0 +6fc2016ea84c92f8969824a5d8efeae564e5f6bf = 0 +73ff7d60446799b2883fdcc07ada800b312bfed4 = 0 +784d12602dd3eefa2f94824ae7daf2b42b8c6b6c = 0 +7ad317207900bebd06c70912ae10521bb7a59545 = 0 +8773b7dde9957a72de3260a6fc4928a8f5650a1c = 0 +89aee212d8f5abbf12c8eea745a58efac3fd987c = 0 +8cc8854cfa74a9be4887215f88861bdad4c71761 = 0 +a9a0c00906f42f0ab8e48d194d65490e80d5f15d = 0 +afc63dd60123805cafcdc443d2a2917e043d300e = 0 +c9b431737f9992224cac980e6e4e6a5a9923017a = 0 +d530e9ab70c8a49bf3e258cf6a705517cc1c0399 = 0 +dcda1bf06371242fefe5204a5d259c9d5effd969 = 0 +ded94af335e4af283b21d791e8dc83e922105177 = 0 +f3462013e14ef3c482abebc26095304934dd25fc = 0 +f96e998bb9252d7d9f30c1253e1da10803034539 = 0 +fdd31d92aaf0fe3ddbb5c1d8ddf60381cba3da67 = 0 + +[ec58984d-c81a-5818-9de3-f03f207dcefe] +386bfff9142a2b34d5fdc651844b653cc52a14e7 = 0 +cbd5901d0a86c3c845e0d7e23411ea2ba7e77a4e = 0 + +[bb4c363b-b914-514b-8517-4eb369bc008a] +55b2a523a5d3dcb934f49e34eaac8e44542a6d67 = 0 +652a3f788a5a8439aa18f2b127c05cdf353afa37 = 0 +c1ce4c039ab6ce455b5b6297617da7281ad9d54d = 0 + +[1a1bcaad-b889-5540-93fc-02c6735e0f5a] +073c2e1d3a732743fca1bee4def1fd211ee3387b = 0 +6a3e6ada0f0ca531fb04f26ee1e5e0d290040edb = 0 + +[d853e229-7c7c-56e9-b6be-9a1acc5f13d9] +7af359f7afe3ce0e7a54472a16dfa1da9cf7c53f = 0 + +[e54cec92-43bc-5b69-a0ba-12a83b9121d9] +1ac554af742108d5e5003d2a54bfb113465908e3 = 0 +44da4ffe0a5ca77b6b6aab1f4947ff9c1a7e2061 = 0 +842296386d8fd586ee25299be2e86ff629d6df86 = 0 +d56fd84d6b58748da22767e3c4da21897d3e4110 = 0 + +[7ebbc34c-24a4-5a3f-b49a-24be4b3feaef] +5ec943415390a3b7480ee93392fd0506a4d4b266 = 0 +6c9d09dd0d0caa553c82eb6374d0246fcd21c8af = 0 +6e4e659d2bdd885df49a1919e97a693f1adf3ff6 = 0 +db07ee44ec939afb866c04a5fd1edb18bf92f781 = 0 +e87395a66747d5410f06c93b5c61e5adb551e60c = 0 + +[4610876b-9b01-57c8-9ad9-06315f1a66a5] +1028c48de8bd7f6c2e9d0c4fc324ff944d1b2138 = 0 +aa3f8ca9cfc48c62b0d31438fe6651b698506d80 = 0 +b89ad8b53b5e73ac2f1b7408b6bcca4ccf354b54 = 0 +d5b43757f595be696ece0eb0ddb4c486f1afa9a8 = 0 + +[4c0ca9eb-093a-5379-98c5-f87ac0bbbf44] +0e2c7cccb2afabafa4670290b01b779e0e5f4d08 = 0 +1b08531d694b42e55daa68c340ce1f509f2e4ccb = 0 +212591fafb8b52a44169ba2d87eec44aea29f570 = 0 +26ec976a55a7de6764abce43800b593bdd9ba16c = 0 +2b38cdf7e6ce92a5bf3e0baa2bf5e97bf1017091 = 0 +36746a4a7e76771f33781e6452ce1a803d982e0a = 0 +3f1cffd816759faf5937671b0bea2ef6eb2622ad = 0 +40f7442dea20919c5a7b137594fb6d7636fa2329 = 0 +4641e33ea02982f5709c739bc38e71955cac8079 = 0 +49f0cc2fb2225d91f96abe0467cfba1ec87dfc6a = 0 +4d2ac57c3c85bf91a04a27967987fc987c5971b4 = 0 +4f6fd22f2d8f87b53edddc683b489bca60f06760 = 0 +51d0a52ab6c865f53b0dc0196b11e39450df3ef8 = 0 +5d12682c9ffa75f7ff5e24d352643e61d9ce10ba = 0 +5e3338caaf01b2746291a29b46057bca30e6b39d = 0 +6298bd465922289ab3f3586143b47e58eedd44c7 = 0 +64caf82d735a69b8f54da8ad24ed4d0cd9b4e69c = 0 +6930794982eda7d7d6794410741af7ac6bcbf867 = 0 +6b596cc9291525456ec3b599cb208c6270f47d80 = 0 +6d4d4bb15f6fead3f152604b112f7047e192b5e3 = 0 +7d7ff7459b427b9ebc867be911e5332360e2cb57 = 0 +86c391eed8bf0591ee636c2f77e6465be1b9b995 = 0 +86cd5a028234a059801e0c5c4be4f2520d466b04 = 0 +8c5f3eb2253b9f006a81caacd94bb452d2e27695 = 0 +9692314cd8fcab4aea9c03292ff23103f3da0f39 = 0 +99a53d598c6c405e1b9420992e442f5fb79ff50b = 0 +a087f0b339852c56fd3083050db54a646d688e2b = 0 +ab11a215cbb2381c3387f93bf07e47e7f89c9eb4 = 0 +ac7782caaa9f9193edc8b45e25f653476f0ff9cb = 0 +ad19bcf59b7ee81ac003538a402708c78acaf3ec = 0 +b270ee9b21f7540f4187c9ac95e4f07b0306d409 = 0 +b9bbe78b5c60935d7182095184a3fb16591fc114 = 0 +c8cb239718855ea0f4f881cc3f17f7f43ed111f7 = 0 +ce46612a9a3328a2b8e35d8d25f06bc70b4b12bf = 0 +ceb861c5912701fcd571bae9bec17aa9792e4c59 = 0 +d5b0cd744383d476ea2e5e6a17ddf9cff8ec953d = 0 +d9e45a00831289dac9b8a7049f7f506bbc166dbf = 0 +ec02bede8cbc74a89363041ed352894b81306973 = 0 +f3747c04d7a3503bd9e70d5f7ef230fd1d56b865 = 0 +f76e2327d6251f3e5570c84e887d0f0cecef2947 = 0 +fd68c156d79523899b5ef00d1d6a666634d7504c = 0 + +[623a49c0-6a5e-58c5-849f-3852f4baafd8] +4a30c4905aedbbcc05876c8d068c16970a5d3adf = 0 +53350e96fe0c8978e9dd578e85c180d0aa6fc169 = 0 +5bbfc945d2ef3c376ea2447e31c1818b78445f3d = 0 +5be3b115dce821e2f5c4ccdb8b146631ef6a42d4 = 0 +62b198996a9a81c771cc484f352255c0e52438ac = 0 +71b061cf9df0cb6c679ab1a9545167731d4cc4d8 = 0 +c2c8203a2f4981d0d9e523498bc8adb6cf9a8b33 = 0 +c95ac1558b34ba29fa7931941a6db94c0347c089 = 0 + +[27996c0f-39cd-5cc1-a27a-05f136f946b6] +17edd42ca16a1984d331888a406c9405ef4d9175 = 0 +21b01e689ee0cdc3ed5cbf2eb34454882b0f832b = 0 +3f913feff1883aeb72fd823dcfd096d95241cc53 = 0 +4358c8a451a743d8641c3a06a76b11b2841036be = 0 +50832ba62264f03fa86a453168f703452dc84117 = 0 +56a2941012974cd4f651f152a1d776d3f9f4ca16 = 0 +576646719eda8c04de1d1a0eca913c5e074a70aa = 0 +75399efd314912f84aa77a0e24861e1825d13818 = 0 +7c3eff4eb1b017ce31232118a8969ff1b34ef07c = 0 +7f122fec26afe0efaeefd4f4024e39b2c34ac20e = 0 +8179c208ff5fa16d6d4879c8dce578cc68eff59b = 0 +9cde561c2ebb222720f805efb42b52ef41fe01c5 = 0 +a5ca713d029c92e90d2c1ae48fa0d1fee54d9f6b = 0 +ae6d8d6b05a3960d937f6b433bf5250f4fd72039 = 0 +ef10f00ab47df464269ba24db81713180aa2e3b5 = 0 + +[54070661-dc8a-5775-9964-1e9cd095ac62] +016d9f01a921a72bc12417a8be2da2a0683443c5 = 0 +0f2e4ef2a063903c8f5db0579d085e37b2a1820e = 0 +31117fcd918b0b2587955e115ce5a7740c2ecedc = 0 +3f31f5ac8cf2933f1bd1d5fa07f27b550278211a = 0 +58d75e1dba4cb76e01c40b273ccf1c45f31517f1 = 0 +7470da6a8d6f72111fe565eb17ba56130b11afee = 0 +81bdf72fb2d2f463fb7a3c58fe49684f62f69f30 = 0 +99d837f559536eafafd507ffa46e9b25523eda10 = 0 +9ef4557c7531975ccde2f7e245596588bcfc939c = 0 +bea005444160bf49b7a693b75d194a866e8ec906 = 0 +c7f39f381f28e6ab364299f1e34e22f99107d2de = 0 +d1056b36a9e486400752e5e690f1d23d800d818b = 0 +e4e9cc281f897c032cc3fde024162453b7f0aba3 = 0 + +[708ec375-b3d6-5a57-a7ce-8257bf98657a] +2250542e69c0ebb3aee05628aa45d98d8fbb69ad = 0 +704c9c5e28996e70f920595fba4d901afe99c076 = 0 +c102799d28bcdbd9996eb1c263ba8bd8838b4943 = 0 +c4c0636493b14167c99a82dcc67ecd58a1f87e1f = 0 +cb9c2e519d4de0352f9509ae99a1b7225437c8fb = 0 +e28b25eb7fbe24df358540ae96d72545c7b24809 = 0 + +[f5543645-e2ff-56f6-89fd-a5e7d6120970] +097f1789966cb54f58594db225f53a95c594833d = 0 +e080117b239c29c2fe263a53e0d424829ef06bff = 0 + +[2e9cd046-0924-5485-92f1-d5272153d98b] +02fc617bb2efedc90f839a1832f1f8b3b3220cab = 0 +083dcfdd0545ca85d7fa99686d883a51253e00bd = 0 +0b206210e6a60df20dfe621a1cc87bff01fcc717 = 0 +0e3974581322db365bdec0dcddd361526fde0d0a = 0 +19f6fa03ea469d54e05b53d36eb3c804c6bf99ae = 0 +1d1f4cf22e754c359c9e88e45a5f152668ca372d = 0 +34a1d5a957ef5fc15d611fdf3125de108bcaeeea = 0 +3658c1adce992138219102066dbf1bfe36306257 = 0 +4c3792d5328c7b025de7d76eadabc5ec47a1a703 = 0 +4f83c1e9f7884f1ec23f5bc4225ca1979ad66126 = 0 +6f9a2cc455dbe8be03964513614e51462e97f1d9 = 0 +73a3d7b65b8b43a4bcdb56e092873e9e57f5e38e = 0 +75acc22732076014266324f60afef69383611f08 = 0 +75d9d1dc34e5d6d82cedb381fecae0d7c341a861 = 0 +779a5ce0367dd8710248102b274e34a548c5464a = 0 +796638934c8633baa06a0e48f6f2b7cc1590a8ec = 0 +804e0822b8d3ebaefc9b3d49a4061e00597bd100 = 0 +81f9b4f02ee4f941a2a39bcb2d99c404c0fd8d39 = 0 +8498bed9a35d3b66723fe09e0101fee2d089dd0b = 0 +85f8771162106e5d4b8522dbc01ceacd22a53d60 = 0 +881d97e3a84d146ef430526dfcb294b0b152a621 = 0 +88d88800fb32295dcd5ad1f14718d001f942be05 = 0 +897466cb5819d367b81e6056406df64dad43d0d3 = 0 +8ae65514dd49e5dfbd4e048fc5df3aabaed1d6c1 = 0 +923494be3d78bc53456d4399298919f368e8fe56 = 0 +980e70f8550b6e700263c8242e585473e3cf71cb = 0 +9f31dd394d3a5c2a0af0789ecd6e64164fa8cfb5 = 0 +b2988a8582d13ff1c7457db898a4e6d2763a5a18 = 0 +b664e423999b93d340456e6cbf1fc447d0e509d8 = 0 +c8b7f4ae47c6f61cd3e0546438d5baaba8d33a31 = 0 +cc605d89910b84601c10005b4758bb535291442e = 0 +d65c5b1beee09d6904678ebe1d32ed8dc91f23e6 = 0 +e0281a0e78e6c37e0882420ad692d08230bda37a = 0 +e518b2d8a442746371510cf5d176fea6ce1f6cb1 = 0 +eb15908c640875c33fbb30186c9ba96fd3dc75d0 = 0 +f870e3596cbbff8da1ff46968fa428f1f57d93b0 = 0 +f8c22d0413462840f365d19fc9a8e8f82679665c = 0 +f945f43d4859aaec11408e3dedf86f4ab69bca00 = 0 +fbdf34849fe91150ed1658bde57df29383dbc646 = 0 +fd4a3b0ef93a3d762383a009ed23575298ccec5b = 0 +fed04fe57577ebd2f4eeae9c8e1282acb0c02b81 = 0 + +[affaf649-2f8e-5dd6-a1c5-c612f82136ef] +81ecf5b9bed19e64860d661d5d55ce40347747a8 = 0 +fd2fe64d04c3f5ee8ca32f19238cc9179357bf7f = 0 + +[19dc6840-f33b-545b-b366-655c7e3ffd49] +7a1164af5f599f6490b7cf3e0d8984a9a7ee6432 = 0 +d5bef9c5bd6055985b1efcb2f1cbfa4d41baa777 = 0 + +[f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f] +071fb5e4fd9d8a5fc23209ccde98c12f298545f4 = 0 +07b37362ee1518eef100a01a386794f1b8880766 = 0 +11e56713a3c1cef4d4ba58461f368376be424dc6 = 0 +1313d67d317bee674a7ae8a38a930719349bd96d = 0 +13f7ad69e2357e5310891123f2626dde1dce59e8 = 0 +14ddfb87c2d14c6aacd449387bdc412ebf0f811b = 0 +178a67e9a9a9efaaeba39bdfa4217d41da1f09b3 = 0 +1a0e57d33cec9866401346bfe03c73d6ac704138 = 0 +1ac15ac115e2cee4ccf29b24ff26280c46f18064 = 0 +1b30f15421e0e6b16a3448deb39986a27a4b1885 = 0 +1efb0f2547a5bc3bbe91bfe291c32942bf7957bb = 0 +245639ee3963e8b903c5b4cc4accf13a37f09569 = 0 +25202cf753ad4b084c80f6729c73d5ba21bb7296 = 0 +2821b7733546c268b38c66f3e1918a9625571032 = 0 +29ac03e758fb1e5f9e799a81eef2e8c243a5d5cd = 0 +2e767296118369d2a931d21e860d3d3672cf2cb4 = 0 +3218c8350ca90841d61931cd0c1fbdddaa50332f = 0 +39f6aa8fef349a2ce9e7d3df88c64dfaef11688d = 0 +3c1296adb62a0cb7a6e26747ce47720c061fcac2 = 0 +4040fd577e2a1677384cc3095857021113011db4 = 0 +4116abdd80184038b1a4da5a1b9fc7079ee00903 = 0 +41223afaece3b7253961313733b8fe5603670844 = 0 +4218cf6a5cbf932c32c5f90cca3f7233ec5ccc7b = 0 +4745e75600c7647d9068b47add39cd3be0344e2e = 0 +4a2dff3b33efe5120a43264d90496f69b965c318 = 0 +4b0a727b802d6923b02c68a3c441f01e5fc4d6b8 = 0 +4fa53d3e89c05b0a96bf4060886ee54dbaee2ac1 = 0 +545c2b58b8378e473ac84865e7dbeb6d3a959ae9 = 0 +668dd90c90f38ed83b11177e96aeb469e616f5e4 = 0 +6c6f09bdfe3b530fa34b46cd4db02850e783c935 = 0 +6d3cbe1ac0da9ae81163439b50b4b70c998213db = 0 +6dc4d254cbc4f5eb6c1e7f256911ce3d2d5ce646 = 0 +74d7f05bd3fe3264c9e491700685575d39c6ab16 = 0 +75ec2c32ede6c516738c1b04f09f024f080203b7 = 0 +7cae2b4e5a82ece9cba50ba790808cc9752bbdec = 0 +7dbea08030bb8377b53e93cda7190a4a6490cb6d = 0 +843933e5dd0598c3828f3152813dc32257e6774d = 0 +883165af1cef09980a3d9b1718477579d629754c = 0 +887c930f8e812a87e2c4f34a55afc5d956d65016 = 0 +8c4db2df096775f776e4b003173fc3fee0dbfa44 = 0 +8d6d1dfc033c372b67054902c0536439552ce018 = 0 +903f4ff2c82a034e48df008f4e96118d092f682b = 0 +92a190055c946d63a0bb10956512a67196a17b52 = 0 +94386126dc1643d9f1fe953d721099d4cb84e8b0 = 0 +96049554c7c7988ad12ac578d45553cef6970fbd = 0 +97c0f16055ff77ef57257c03f58a233a78873d4c = 0 +99c9718ba68825d7ab7fc53aa3c558cd3c40b1bf = 0 +9c029c1c78fb2d41bcd61ac8a3c591d799860cde = 0 +a10138a7b2dfc563104709e95c432db2171986d6 = 0 +a149697cb85f7cf637972293e69acfce1392f90b = 0 +a14e5ea94ffdf3e97b2dd115d06da00176d85011 = 0 +a3b998853cd9f33849b4f7cb5c7b93c1e62a9526 = 0 +a3ec7209c845087ec04f338484e2a5343a2cb88d = 0 +abe06f39d0570ff3f3d831e92ff4511924779212 = 0 +ada78cbcd821988619b92eda49c952fc9f158652 = 0 +b1e1e36011787a9ce6e903e40d166f8ffebc6ed0 = 0 +b83cea4da20745bf897662cbab2326be711dfb17 = 0 +b94e9417d16e5d8307b24963b3360a8e681978e4 = 0 +bac4e9ee89dcffc0bfe6dcfd384d77e565213eb6 = 0 +bddb37a6206c87294e7004300297af39f1ed92db = 0 +bddd411d27dba4b51700b803dc0017c1daa6bef7 = 0 +c4d2b58a5c07e6bfff5176e00a9fe688bbd687a1 = 0 +c6665fd8f544ff6f6fa0b303906cdc26e4f9edec = 0 +c7a9397e0882f3f5cd07d6e0e739d65e3ad786ae = 0 +c8131169d42ae22f0e80e56a2ff9af9234b960fe = 0 +cbd6bd7c821ce113f53420f3ee49c58a5571175f = 0 +cc0d94accbe343865ead30ba4cc700b552eba36f = 0 +cd1eba18eabc72ca0613028b8f25ea7fb07e9aad = 0 +d05984d24466785d5cfabae466ba373293df078f = 0 +d197b2b5f2c8faf1ff7acdf3601bb9b9dfc76bf0 = 0 +d300b5a9f0d70357e6f23b0e0a437819327dad78 = 0 +d61a50b4b2105e95c1fdf3fee20d9afcaf422150 = 0 +e2fac9aaa6447b7ba56295fcb9488e8110280c5f = 0 +e67e7f9f63118604eac25405bbc0a342768cbe74 = 0 +e75d5c751c5bd4fa4ae10a0a829e13e1577ca04b = 0 +e792771e820d41f4a97fe320839d401467678705 = 0 +e82e1f81905297fd39037ea5e2613fe898debfe3 = 0 +f27612c88a11ad166c9194578eb967c8ae89136e = 0 +f31cc598f2805b834574559e72d609afeb76218a = 0 +f6b5589df61112a3144d547eae8dde2c49985886 = 0 +fffbabc715e4d1e53705fc34c62babba5f161905 = 0 + +[b2c09c56-527e-5265-b132-e8372645a790] +0ebe2b33639cc19a024abac4de06d4696d3640de = 0 + +[5a3ac768-beb4-554a-9c98-3342fe3377f5] +863673c102d93614cc3bbe379daf4035e6547c6c = 33554440 + +[f776ca57-7675-5783-9f00-00905e639b89] +1199129513a4367a29fe9712b1e496f753525290 = 0 +16431da8df21bc698c901224fb405654f60bb4d1 = 0 +a2a5f8b36e8c27a628fd3f62e527c030b91495a8 = 0 +ad6275b99c39ed6f3f63996d38fc8269ecf98372 = 0 + +[ac4eac4a-97af-5557-9a41-b7bc20405a4a] +0f6b1d0c4b198f9267c4e56df2389bdb26ee7215 = 0 +2baa812f3ea765908e9b3d6e045764ab23488cd6 = 0 +d390a6944949b0a68ef322fc98bf900e6f08192d = 0 + +[868d336d-f365-5dbb-979b-2c1525cefd4e] +ff47a4164c6554ffe195e38736e9b607f3317dc1 = 0 + +[6f157e1f-1037-5cc2-9283-434698596519] +1d9c21723af6ac3729578af672aa01b4babd6e46 = 0 +3349187b2d693827ae5dc46bf64db6fa2095f3da = 4096 + +[cd3eb016-35fb-5094-929b-558a96fad6f3] +014d9f56363429568e12545f8d74fca93cc664cc = 0 +15f33bc518902b29fdb132f4bcc696fe3aa37ecc = 0 +54a0490810ef45b91b401cfe8208d5ea4e6a1e62 = 33554453 +6c3ee031055948b58602339c5fb2db6c3c6b2e0c = 33554453 +7c80b6ff5f6a688d2637c381009284f5a3d0d33b = 0 +83655a0abf090ec6d8ddd85307ac3d223800ce10 = 1 +8768b45b6e8cc97d38eb0ea4f9ded3059b1af04d = 167772181 +b1fffb3c3352ced36f7b69ea86e10c0a9fd33f2d = 0 +d6d42bc0bc096498c2c52a7c3c9feac2611275ec = 0 +e915ff29eb8e93437864be325e9be10e3b9a8dd7 = 0 +f4316604096119522963d04eaefa63d82ac00997 = 0 +f8771109aceefe9f28ce24a6a3f435a58befcf62 = 0 +fdc264e6d5049b92f7ceb41c337564df72cafe79 = 33554453 + +[d274f558-d366-508a-a164-2611506323a4] +746d5cc110bf13d6c4c8bff2ca0069879c290d38 = 0 +db197803e48daf3fa12695320d4bfe94372d0d47 = 0 +f5b0f8464c086fa7cbe1f44f9b37bc8270f3b921 = 0 + +[0862f596-cf2d-50af-8ef4-f2be67dfa83f] +06075bdad21f964044ea7f6780cd5e5e7f886c7d = 0 +0cf86c1d4beb6787cce7a2c5eb79dd2050af19fd = 0 +17f87c84dacd75bca9c873ea72998978f6c18c01 = 0 +70a34c3bddc3f74d177c9a19e983eb5a4ab4f560 = 0 +8f0445acd8dd50474c38e47b8b75524e2e3fd250 = 0 +9592f780c08fc24fad9e6db037d6387bca1561af = 0 +b92c3d632a2270e5baae9cdffae0a902084584ae = 0 +e5de2602479f17c628f854223c6ba7baea6ecab6 = 0 + +[4a05ff16-5f95-55f4-bb53-bb3f467c689a] +0014201d45ffaa6b66ee842a08e57d701be89a8b = 0 +62245fad1b3cfc78fd83e14b5ccc89250d0c2028 = 0 +79fc27c7d4ce88cb4e5ccbe04fa454961a888fe0 = 0 +8f5268191ecf2d396c9746e507ba49e0a5dc716f = 0 +cc9fb67a5d0dc1d69b05d5b2b73312c1fa0469d7 = 0 +dddc094e1ec054f478b065b64d6180aa34182301 = 0 +e9a455e8bac5f75bddf9f275d2ba817de13f527a = 0 + +[ce388394-9b3f-5993-a911-eb95552e4f2e] +9a23a549ed8b28551a750fee873db42a1cc662cb = 0 + +[fb575ef1-c80c-509d-a4a0-4af84ff70704] +89d01e0a0f6aedd122198904af1fa631b2c59f2e = 0 + +[4030f512-cedb-5907-ac7f-4ab05ad75ee7] +699e3217abdf409d377a8a8a44f845b0b8afb274 = 0 + +[3e1990a7-5d81-5526-99ce-9ba3ff248f21] +642cfe49a915a20ca43b0b213c20a3787300c459 = 0 +674a2aef3deca9ccf7b45cc765c449f80d3bbe5c = 0 +885ea3c15017f32a11a42df78854f6c50f8b22d5 = 0 +8d49c0d6521f4960d9ea28ff4b440e35e09fb7cb = 0 +a3ac0f678dd9826eadff59425d98df1a0580711b = 0 +e88d103573675b87a072355a250bf6b6d00b4d02 = 0 +f107a8b15d01064f81a58b4d35aabfd6b1873a5f = 0 +f5f5b5607ba7e8b028c721d65cc178a4093f2a89 = 0 +fab6125cf3490b90dc618e6e67d0717c80b5c9d7 = 0 + +[4e197955-816a-5ef8-9ecd-699b0ea6e4bb] +0b69783d33e28591e9207975ecf4b05f2a72f165 = 0 +12eea72b414fc36558674f7c08783b189620420f = 0 +42400b262bd0ea23f878ba2a930a51d4fa82abdd = 0 +597c494dfc2acae7851a0b57ae4a169e6225191f = 0 +612d0f8574e52c2a2f0caab7bf5ecd4c848ef79e = 0 +7a1775cd096763508b001a2bae02e58e9372f694 = 0 +8d222535eb00ab56a0432edc0b478aac35f5b915 = 0 +9a191d3275b24b041b8e53de97cd40b65b82b9cc = 0 +b3c37ee75f5ff043ff5eb36128ad57cdfeb500f7 = 0 +c333ef8fac71b0f732d3d0a4d06f76ed2eae9f44 = 0 +c83c9f63faa406f2d6b5d90793fa836a89c3a682 = 0 +d150ee427a949f216a0c58c33de620d3bc8f18b0 = 0 +ed922a2dc22c6242c846061b4a3338422e893ab4 = 0 + +[b255c96a-a4ac-5b61-a2c4-3db36d36609d] +01d0b5253ab04e2935746c3648a99298b6e0191d = 0 + +[6b575520-c5cf-58b6-834d-e7984b04da6f] +0e2cb059de4146cc7c65128d35a1d40af74bb514 = 0 +116af8cddb57ad86ece96b52436b7e40aa8e5b12 = 0 +32255c07f10b91c6d0af5087d99b939c077c58ee = 0 +62bcc4a89c3bd52ebbbd6ecf959140f243d5b389 = 0 +93f60594ccf198d83a52eccc1cac129ac39e6308 = 0 +eaf2ae8a5ff2529a7d2e381632ae11eec50811fc = 0 + +[a1b4810d-1bce-5fbd-ac56-80944d57a21f] +289b4a7c8cc839da1e4ee372d5780ab192715de5 = 0 +5fff24d4176dcf056da1421c3c01ae631da54df1 = 0 +75d0c84320017e5e0628f7fe358edafd1ba531f8 = 0 +c2c095fdacd8e51e3c7516088345ff499f73eb71 = 0 +d183515906916a08a4f7efde9dfd33652582f043 = 0 + +[9fb69e20-1954-56bb-a84f-559cc56a8ff7] +95abcf50f3b25de1d9b5d8e0e572af16af3522f2 = 0 +9a989b804848bf5f08a312ad2b67b71a86015080 = 0 +dc648d31d29726583b5c0bfedeff716b45a6f4e6 = 0 +dd44576e3ee52ccf9e7aa54818e5c1e5b4d238a7 = 0 + +[56060788-a912-5818-a832-966dbeb3eb36] +0c2b1a23dd0b8260c91b34764b460d706edf1ff6 = 0 + +[7c893195-952b-5c83-bb6e-be12f22eed51] +387a48acf0fc511f3fcc597c94e641c8a47ff953 = 0 +bcde96f66f16d5cd7483fdc8156afcf69d00f2f6 = 0 + +[5d515f07-b68d-5712-997c-00dd95584880] +4bb623845de215d1913f8609a60e70d9fa60e362 = 0 +d9878921c31d474c33196b0a45ab9c635c62c852 = 0 +da4b534b0a1f8c2e5cc02cde1dae9b78b416dfaa = 0 + +[eafb193a-b7ab-5a9e-9068-77385905fa72] +0830856e1fc5e26431990ead4d248d643a627459 = 0 +84d115a7bf07e9566a98ec96fb87f114f5b20c0c = 0 +e10d831fe214ae9b268233b63e5b498ebfe980c6 = 0 +eb2e78300907edc402bc25c980d5086bf21b4d9b = 0 + +[08eae483-2844-53a4-a2b9-23549d80f877] +e53b59c189a2a10946ed6372a66d4d9ea9e8258d = 0 + +[55843cef-4dae-5c06-9712-c3a111be3cad] +3d6cc64c24651460503605f2c1049267b1732258 = 0 +64e5dec1050dfbe23ce6147fb6e8457a181518e4 = 0 + +[6735fb99-e7a2-5b86-aa6b-3fb73ebb43ff] +211db353a828fdf6a0747289c23261723c181223 = 4096 +43d2cf07701ef3fc60d861e6f48eed5a6e8c4d46 = 4096 +5192450c0e84b3497a7fb30f94c8372bd740bd0c = 4096 +6dfee04a4b98f976e6313fa6b4c0415f1239dd3e = 4096 +9d0600da2577cbf83c8c5635ada58e6220029842 = 4096 + +[d9be37ee-ecc9-5288-90f1-b9ca67657a75] +000352d5402fec3778458e305282d6c1465f7c01 = 0 +0532f50483367e108dd95d4be6b8a022ead408cb = 0 +06e8b78d74d131ca54d45bf7d8a2757318980624 = 0 +0b922233176272d8664aed29e4c86424f750a16f = 0 +0bc7050f8878bcf99a5c602008cc37945b49c5fd = 0 +0fa6e7b2268e36234efeec647e4003eac1e905d7 = 0 +18917dc513ac8751c9305028da9df18f8a13cd0c = 0 +1a73c46758f5758e8b24ec7c70bc9f9d4922748b = 0 +1b27f2a5d75cf83bea37a7ae719af545c388a445 = 0 +21860954a6253ed349e576ba3a87c3811eb05342 = 0 +2be7cb86cca7f83ca72c080ef3db19fa0607c699 = 0 +3190e9ac5cf2202aa7bd5242af9c1c97b7ec4b2b = 0 +36b029418a9a96aec5529650840181da5a13b967 = 0 +45ccc252328cb398e6a88b242ae379f3252f3ee9 = 0 +47b41ff865bdd4c5c302fd07a3f57f456700fc99 = 0 +4846e55d31e14f50599e7cc0c368f109bede3089 = 0 +4862b9e1d16a7a368e35c8003a2ee970379cd976 = 0 +4af32c18c24a7e41cb745315f0a0d88a454be1a8 = 0 +559d7f8cee24306e846458e003612db43bab3101 = 0 +5a2b85eee7693f3f343208ef601398ce5c380257 = 0 +5e9407b064043faec5c343600df27aed1e62d0b6 = 0 +611648b3cef17af4d11077c7fe54e61cb0839b4e = 0 +6c90d69d4b44f97b217e43c950d450b22eb48227 = 0 +6e7a2269292ea2a4424f41daef38722e98e40838 = 0 +756e59843806b58680e5910cadf4c93eb814af97 = 0 +84b1475e8e9207e9afd7cbd046cdef21d90ee903 = 0 +93666cd3afa028b6a4702267279e26af6c2c0788 = 0 +944f377c082ec9a5f2d736605beca7fbfca4353d = 0 +9b3fced32f4965495284c4ee8224691b9dd35284 = 0 +9bc5ad7a6181d80ac2d542810f94759607e34306 = 0 +a0d0489b7a54c9cdfc6c4cf1a757595f25366f45 = 0 +ab25d274a39b88b88b332f96f852762ab6515e12 = 0 +afade35b9b54c5a9532f7dfc6d77b681437ad8fe = 0 +b42cb08a84959f2eb7b522cb6e3dae00a52813d0 = 0 +bc17e769ae9903d8b00cb365dd59c73cb3d4def8 = 0 +bc639088701c82921dc49a91e33895c580b4d2ba = 0 +bcc875a8177877e5e0390d8eed09068e42fb0742 = 0 +cb25c5b001601009ec6c05ad8e4bf9d3b48613e8 = 0 +ce43dc5f1b14328b4db585b8a1a067e8fd88e9f3 = 0 +e8305e519de90d3d92e72ee735a55d6c7d6d92f3 = 0 +e9d4bbc0179268427ab701374474121571c70223 = 0 +eb8f5885a7ef82f4383b94570ab5aeb2c06eed24 = 0 +fdb16529761e381f479a216dd6721967245de7e6 = 0 +fef3e905ab4348b6c888e39352bc83322c92b1a7 = 0 + +[8e315b71-c09b-5a61-8d95-8aa79a05d8ac] +74e0f56da5b9b8a04551ca105fed95407794dfdf = 0 + +[f213a82b-91d6-5c5d-acf7-10f1c761b327] +9130e05b2541072beb7b10f922b61b20b3357ed3 = 0 + +[defc1d9d-1a91-5c6e-a5d0-6da97266dbc2] +15ac69e39bd5d9b80022a4dc5ab74cc7f3853237 = 0 +36a48415830065b8379d1d53213bee774db41258 = 0 +4809e555fad066c1882178d6ef8224170fa04c9f = 0 +b4ca041f878b089d4431b1e9d495d9f1ae77bda5 = 0 +b669fb478dd2d4854cf5bae77c9a34910e97bb9c = 0 +d233d06b0b158a134f72f1e1989dde0abcc8dd56 = 0 + +[77172c1b-203f-54ac-aa54-3f1198fe9f90] +0469d901391ad3a991d5652cbad68629b00eace1 = 4 +0628780e68d68fb9d9e2d8ae373517cb07755c98 = 0 +101a72f78048f5ee49783d8a4cf7821eefdc483a = 0 +132940028fdf1bdb699b33b570bedc5db17285e7 = 4 +1b667052430055846a8322efe40c6391bdf1d2f5 = 4 +1b86aaa02a4add4d0e27a4d4e6c798ff1d8b799b = 4 +44cf656319d438e9124401746396e512b5c51540 = 0 +4c410684c32de40c490cc1f1f29743aee43b7e47 = 0 +55e86ea6c65ac27f7d888f26683dd33003fa3dbf = 0 +6edd34596bf7650c16876b76f57c12f419d9e7f1 = 4 +6f25a1d5cc786c641576d79f238dc1368214ac6c = 4 +75f242240d79a3cf0cdb80886a616671785099ce = 4 +7fe15cc7c152baaf174aed5275f20f29d528ec15 = 4 +8e0ddc5e443b5711bfcbae29f680ad9d44ea9bb0 = 0 +96acf048b0800599eb1a7c51b8c279e79c8d4965 = 0 +a6c00ac0a36311d4ba0fc1f9f9461c7068059203 = 4 +b6821d860395433cb3db2a3e6880144c18a05399 = 0 +c731d62e886286f6271e360e05c81b02c77653ad = 0 +d5201507b918c3bed8e7eb72c130352b984ebb7a = 0 +e4643053385ad388a32f165776a49ab69cd09cda = 0 +e546dc2cdc58ca2647674bda08fd5ef557c4f151 = 0 +e5bdf22b24122e2c203c5a66936c879b31091412 = 0 +ea62a572f5dd6fe745bf2c117ba766fddfb1cc36 = 4 +fd061264cfeb5c2ee8beb957d15136bd3408dc97 = 4 + +[38bc9a14-d65a-5c5a-8a51-c6e7361b5ffc] +0d70e06a26d8146194cd088f8ae5908c029cbdf7 = 0 +0dedebd57d07b5e0e70ce1ef874ea58da372b38f = 0 +0fe50dfebadf2d3835b7241ac165ad9187122b61 = 0 +11f9874dcdc10523dcde789674e43006d439afdc = 0 +21ac6f6c08791c9be0d68836f2488ae78828aeaf = 0 +21b25857e10481ce47b5fff75482d6e4b4b5e908 = 0 +3fa9dc641da202eae1029adeaab2e7e374427092 = 0 +62194f37c3e771c9779788a5633dd085f1ff356e = 0 +67893fd043721ba553a3e63444ca5e49531970ce = 0 +71164e445680b9c7b05489cfc968a1d113a3c4cd = 0 +7d8fcd59e5e9cce65cd23be13f507f28eade9ec9 = 0 +b14a877784a01111419b21a9ad14787301b027b2 = 0 +bf5ff2df0bdf3ba88de0bc2f80c59b39e58ffd94 = 0 +c394d51c6358000ae347ca95caf12a738885d668 = 0 +d9e70711585c98371afe9371664d23c88fa09897 = 0 +ef1bf1faec0b3b4b402fe185e6f32cca3d414f7d = 0 +fcc85783d1d55ab8591bdcb949392ed194d17bfd = 0 + +[58cfbd8c-6b7d-5447-85c1-563540e28d27] +02c842cf164e4b9392f54c78f16ef99618d0bc40 = 0 +032d39beb8639b372e9605a58ad0fc726e9304bd = 0 +259b4cd37491164ee3dd2ac2fe9472f6f9516e69 = 0 +29a053230e7992a5cd3072dd600ba309e0a05afa = 0 +29f66ad4d8ba5c7fa045a57c7883eec1a6b9febf = 0 +2f9027624b7def7a8d390b0ea460fd50a48790c0 = 0 +37d0f0a7e0069c431a8fb5f61b48b1e4a916d45b = 0 +412e3003994a67ede779cf33d8c5f57cd0fc5244 = 0 +549c9fcf4c659bd37eba89545362bbc71ac2a913 = 0 +56c7b23b53d5d9591876085a39b6589b40259a51 = 0 +5fc047b459d1818a9a76f529e0723e0efcf45ee2 = 0 +6ccd939fbaff01105e2911bf6dc0973bbb318ee0 = 0 +7b60a511e0725ed7a4fc64b04e4dba8b5a2dbe43 = 0 +83443aac580e6aa39e642115df0517a1efca639f = 0 +a754cb57fca1231fe64ce18f1edb1e4749d144c3 = 0 +c75ea71a9d989657046286468e9d6aeba26311a4 = 0 +c7c5beae20166d0b8ec7846a1c0aa71bc8176f59 = 0 +d23805c7849baf00be0f1d81789569fd6c5f5a30 = 0 +d7ad86e26c141b18494e9db46a7ecaf8e4502d34 = 0 +e2b3708f7f2918a99d6ac06ef80be51e37be9994 = 0 +ecb47ea818babca8b9663b3da7be845e8285ef26 = 0 +f3d646770ee4302f3521322345c2db78d92f5780 = 0 +f4b398d5352cb00038f06800e91dfc0d7171d794 = 0 +fbccf12b555cc9f475c5ec5aa31bbef06e304ea4 = 0 + +[7ec9b9c5-1998-51e1-b7fc-fc3590c18259] +11b07e546ac3b0e81bdc7cd98d3374a792e1cacf = 4 +510afd73fd86f5b609a3b0df713da663feacd18d = 4 +56f44a5bb8928e0a9e106dca1b3877e7609b31fe = 0 +9d60f1c79035574513728cd6163a575bcad36ba3 = 0 +9e405cb6b822a5e15a49a7d8bf49d73106f4be66 = 4 +cc9e937195573b7254dd92ba1bf0b9dd3856636d = 0 + +[e91730f6-4275-51fb-a7a0-7064cfbd3b39] +04d0fed0035a2bcce9923fbefd3133a9de8e3f2b = 0 +0786002dfdea9eb8af3d651a36e8af6059d42cb6 = 0 +3825e11ab18e9cefa10b8cd1201ea20aff2aa7e4 = 0 +990b8e7d81659d1a8defd17d37a1ae9c50b69e3d = 0 +a784f5c385677f8f2d9a6cce6ffd980e417a92ed = 0 +bf204dbcc4e6e580832a3154271f863f82ce8444 = 0 +d37626133d96e7f404604b27471c7850377c9bcd = 0 +d3a4acb9c22b2fdb63e8f938d9e5283e78ce3b2c = 0 +f1bc2659d99e79dd5b2adcc878cc981093eae1c1 = 0 + +[0e44f5e4-bd66-52a0-8798-143a42290a1d] +2ee6bfa5d174bd3ddcf842da05baa4f06a1bb9f4 = 0 +353c25bae07c52567dde835265066737a8cd3041 = 0 +452e9f3a062a118bf463fb744d5ad7cb669e509b = 0 +842e48290456a9f2099d2d86cc95cb38995b3edd = 0 +852d1bc0c90e0e386f544e64992987a85ed9831a = 0 +9309db4764526cd1885db37f2a36354efb305eb7 = 0 +b40e76af0b9d04d88a974f1615f1bfbf4795a7af = 0 +c6ca4a8a693e4f9b94ab4cf5bf235e4e52b18614 = 0 +d31867ee697311c669a377fee13fa987c3611bd3 = 0 + +[50ceba7f-c3ee-5a84-a6e8-3ad40456ec97] +2bb5b4518c25dc5152c3b0ff5b1654148a9b4af1 = 0 +2ed701fa3b1bf24897c9b309a59d774208b5a98b = 0 +3e8ad106c509ee04fa1cde6bf47cb7685c9e1a0e = 0 +4e9077952a6dec218e7a44f640a2795e882f446f = 0 +78b86749b7129d7034d7b2044cde78ded40e1b3c = 33554432 +8cf17fbf2ff0421c2bb5b4d6cf186444791f92f9 = 0 +8f9bf3f276ae1da0d2e56b8e2dbd4db857118e37 = 0 +9027ba70149f0bde622a5c2a7ac883f4d8014181 = 0 +a6bb3c44db58882a422998722de4e79f71188957 = 0 +d405891a0188a0a3e4cd59156775405b71e63aed = 0 +f4468acd303c020a8ee68a6d2a4fad07ace0ae53 = 0 +f6f75ce6062e2e2eea6dd0465d77a83e35f14c6e = 33554432 + +[47d2ed2b-36de-50cf-bf87-49c2cf4b8b91] +f112d08b3b48ce91a880e485b59d322102aa44ea = 167772160 + +[09f84164-cd44-5f33-b23f-e6b0d136a0d5] +075d20858739ad2daaa9f8e667ec5a80f421ab25 = 0 +08b1f8044246a45d6f6ac86058f991aeb6120c08 = 0 +0bfc4ea1d3af88efcc0fc51b9262a649bb97cdcf = 0 +1c6109aa46b6b25c67c3cf2b17904793c38f1551 = 33554432 +533fc9349c5daa8b68b14f3368d968a0038af42e = 0 +56fbf2af0d5de18674034cde0b5b13f268184e9f = 0 +7e5c2a14c1ce69c8e20d363dcfaa9ed34a227f4f = 0 +80c6eba1d0815bdc6ac0f8331bcd6a6babbf54b8 = 0 +841cf1e40ce4422ae0c713b60ee1b53e38fed35d = 0 +86fec5d34a82d7cccf7a4409a23bec7dda868965 = 0 +a8c695529910d3931bd29b8e4e4dfc835b2c0689 = 0 +bbe6143920944a75563ae23140288253d996347a = 0 +d6e1f958f5627297d8dbb2bd5e51cca3d10076e1 = 0 +dfb41d4bf7a98d8c5bdf32d7cbf2f93aca9c4eb2 = 0 +e58291eb9edee9522842785bfc07414f1cf5a175 = 0 +f3c63af3672888076332e0e452473ef709edabf0 = 0 + +[60101457-b834-54f3-bc3b-04499cd57c3b] +ac662adf498b87e4b36543962cfe9dac2c6265cb = 0 + +[5d2a7710-adcc-5ca1-ac2e-fd803714376c] +00846d95895a454633f7e3d59b39c549c8124ba6 = 0 +0cc11e20b0389ba98fa8dc834c7604c469b37b75 = 0 +36112edc444d2f2cf7f3e2cf21cfda757f719af5 = 0 +41846a16705f47c05be577770bd06676367429c3 = 0 +4d3807b02f9c091e8560664bff4188c69a55c18c = 0 +6cca2fc5a2b26b47bd67aad8588cfaf7209d6ac8 = 0 +73be96a1b816b82a9fad11ee5adf0377cb971ac2 = 0 +7fc0d93c15b8a71461a542ae95188a86ac852c02 = 0 +81476c1a5dbf384b42c8fb57dc61fae53c2ca1a9 = 0 +a735b88818acbf34d35655810e108daff58fc154 = 0 +bf29746cad4e1301d307413f54e2da0cafac02d2 = 0 +ca42fc0f42cd23ec9462d4a0e0900c5b3ae6ab99 = 0 +ea6da5228ce93ddb72ed81023e5007ec559b709e = 0 + +[9a091434-52ca-5815-8d59-830a134e3a9e] +4fd31f242dd92c9d6433a1f9dcac82eb58b17742 = 0 +5445fc7b4e0320d529b10e6288964c894a641de9 = 0 +64a41a340113c3ff98eacb120d8b3018549e6d7c = 0 +df7ce9f55f601283830979f18cc589da542c39fc = 0 + +[33a4982b-2a1f-504f-9f57-5459487c996a] +6b1a3d7e4dab718fb4432a278180387fb84a73d6 = 0 +b4e232cf66052c053038cfec6fa65bfd42f8b036 = 0 + +[7073ff75-c697-5162-941a-fcdaad2a7d2a] +019775ebb43e685de36b6930a741766cf6e60fff = 0 +04ff0a5101c961b04615ffbe04a8355c8de0e84f = 0 +1110ff2a9f94125451df21c4d0df1c71ac505002 = 0 +11cc20cb6b47467d3a1e78ec1175953de93add85 = 0 +19af97a893d496122a148af4431b946696898819 = 0 +1b17812b9ee2a544821fe4d00cfd9ac93a2491e5 = 0 +1b1cf6fcd2ecb35fc0ba95278a02f1ceae46ede3 = 0 +33ec31a1e46cfd33ae521565789269a4db583c05 = 0 +37323f7e5d1af152568f5fc93b3111061dd5279c = 0 +3daee5a97bd3fd54c59ad4476e91de7147ce711c = 0 +3dcadc2d2ef0e4d6dc45a20e581332fe54ebbc63 = 0 +3de62484939f820a20fe4dd9dab920e9de9236b4 = 0 +4359c9310535e626c720e30f9d2d6f8c3df7b84e = 0 +43d7063ec3efc957eab4e680be9df4579c8bbf2f = 0 +4ab3df964bf43cd483599ba304d258f2a34fc6bf = 0 +4cd1a63e015049705ee4369862ea57d5506b16ca = 0 +4efeb51d610319f0b2a99c93ac4aeb329c793967 = 0 +503c9c1449ebc895ffc12eceda9355ec65dcad23 = 0 +55b60c47a96676660355107ac9ade0b4d2f76f94 = 0 +58fe7604ef12b187090864dfa991b97fd26d3326 = 0 +5acb22421c4a99057ff7d6a0d6d9df2fd689e77c = 0 +5cc548394947528d832e36fc44bac3c12086b1ef = 0 +6981f1b7253657d05cca7c64f1fc5bd4b95b3a28 = 0 +6ca218eeae7d34989fbe9ee27eeb468bad856336 = 0 +70d1b9022bbb6c403f36c1143d2f716ce7c51a00 = 0 +78106bcd813041fa8ed87a2ff343145c4d33d025 = 0 +7cb49fd3b92d928cadf8d235f440805367e03477 = 0 +806cbf09421d4e945b728d657769f7e25e584d62 = 0 +8146aea6b158a79c228cb18075b761ce43b67b79 = 0 +855235f2ec50de2e7c792474ac56780666135747 = 0 +86a1411f8a73154b1f61e602aa71d47ccc4d1e82 = 0 +9930d1c545ac2356cd4202c003e3b5520a3209e4 = 0 +994b62e5063c2ffcfc8ba81d2094713731df58d0 = 0 +9988a8d60204a3aaf38572aad456e949e8e1bf43 = 0 +9aa8604aae24ff87026260593f460e02a605ee42 = 0 +9b677b1e12e2d9ad17ab9e02589eccc2c3cd5c9d = 0 +a675ac5c5b08bf75a2f4d2f3b80035252a4af3c1 = 0 +a7a0b707c25bfaa224cb047221749a61d3899ffe = 0 +a91a484ddc369022c462ae88d290bc2158df834e = 0 +aeb00629e1d941a9ae439d7858d177c3513de8d7 = 0 +b161ef727bbd39546f54a70219171dc1cb03e04a = 0 +b4fd27f49ce2ec5e790fa75b1d34e5ca60a044a5 = 0 +ba921418c5bec2418fddc98f1be98ba36a68a78c = 0 +bbfd419dbe896b3b5c3b29557c951c47df489338 = 0 +bcaa47203cd12cfe25d3fa7e0d5630499a5fa8d9 = 0 +ca289952991d8a49e66f4768eff87d9a836dbf5b = 0 +ca35a6397d5e430f94c087f727a499b8e6ecf906 = 0 +ca8d926444c2a099e35131d964bd266dbf1c6b7c = 0 +cce2225ff59b2425eab8b3b4dadac65d5d0aa24f = 0 +d8966c9c02d17e428a274325e8a9f8101002308e = 0 +ddd8713cfb0108151521bc51aa63ef2c0aa66cba = 0 +eb1e0f04020ef6b67ea0d6e7d0d192d652a8a768 = 0 +fcbcef24d2b022464092c1d0f99555edc27973a0 = 0 + +[b3160c0d-270d-518c-9741-80a712e3ae19] +21373fca8518da55547d1b0492abfa6174ed32cf = 0 +76632d2b688b7bcadeaa2ef639efdb53a4f359a5 = 0 +ca9896ebaa8bcaffdab50f28c843ceb65db6a6bd = 0 +e0b371d1f7c16649b9fef441b479966f0c009af1 = 0 + +[9f826617-01f7-5ddc-9699-a00d146ffb6f] +ac2a7269866e9ea2e4041ac74b0df0f53affb8c9 = 0 + +[66763231-799b-5fff-8662-389acfc33a85] +024b8cd2cfffa18d82d406c80805951cf27b23db = 0 +04dd228b02b1bd8d52b48f0d31d432fff148bab2 = 0 +07a1d2ab40a140a9e5195e0fe6b75e6d0614b3e3 = 0 +357904105452ea8a92dc4dca3417a704ad8d494b = 0 +88966d5609593df77c2ec055e9679d0209e98aad = 0 +ab441e6749bf7bcb61704ee49028c1cf4af658f3 = 0 +d177a6a764966b5117459a4867ce7c72f96e5c2a = 0 +de9785a21d50a6814259bf2f394166d0debf99ad = 0 +f3a3e6eb5048f3ffd79dba64e83ec00d09ffa176 = 0 + +[51861067-9906-5706-8bbd-ed9205bf4d56] +3a499bb0294e30c57cf05f51535bf3bf0ef783e3 = 0 +6b5eb0f5a19cb0d0453ae5b6d7981773120057d5 = 0 +7943ea62d91a6b57feedc30d7d4c42f0497fb5e4 = 0 +8ef1a03705b47f8ef0a130e75ceadeca0d19b1ac = 0 +9dc2f0307925c749b3d9d26a2845c118e60494e0 = 131072 +a2a6b1503fad7e5dd0a3dbc8e9dda89801ab40d6 = 131072 +bd82fa931495ba62ea7bdd3ab5d7199712b5ff89 = 131072 +c1431adbbf68bcf5de1abd077464dd77639d8df0 = 0 +fce3e4460d60153f8ed45438672dce6a0c5a2491 = 131072 + +[4b0a1bd3-4a5d-5152-a79b-f00e95e62c14] +2d511c01d8d2351f963677ed1ed221ffa0857426 = 0 + +[bbac6d45-d8f3-5730-bfe4-7a449cd117ca] +711075b9bfcbf62e49ef32e037a438e215e6e791 = 0 +79d37148dd0c163fb604a2817d1c34438299a3a5 = 0 + +[2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac] +047c670e9602e5e52f3fc4f78d815d55250998df = 0 +3e9d83e7c5d15184616e9b6ae6129e5402a38385 = 0 +62ca49c91bde647334728f3d1e4b6bf663d5a05d = 0 +718cc71204d898a9e2032ebe57d705183e2ea7dd = 0 +8bd2356e4bbd8cc9de28a39878be2a7deef97a7c = 0 +bd40e82532bda8c0306fdccc507336a98b5c28dd = 0 +d58e96595fe5552259d022f890db0128b79a09ea = 0 +e725c52377950b233898a3077e4742ad00995ed4 = 0 +ff917a1a13d4a7138b414a60e0bd5e9955acb8e2 = 0 + +[a09fc81d-aa75-5fe9-8630-4744c3626534] +0077965035a7f8ea4649184b75863da8c168b87b = 0 +1d974dca954433ce592d5c7f9f7f8765c78a5270 = 0 +23ed55e46631980e98f9301e5658646f0c184876 = 0 +2b8e45fedc62240a3371d6aada311743ec26bd9f = 0 +2db10f8f137ad7682a70cc15ea774b64bbb2ec4d = 0 +41cca88658f48d343817896985f8ac672842f13d = 0 +421026f2af11a07b67d99168e588f44a849c330b = 0 +5bb26fce4dac8cbd458fbf6eb5c2a8ddf58f5ab6 = 0 +6963878e45c0dc31dc41637344889f705ba95fac = 0 +7dd9acb178d0f83e697077399cb122b2ef89769a = 0 +86bfc0ff9ca727df058f04fe28c90fc9a23297ac = 0 +88efe950f8e9ec36d1563522784b6e91e064d541 = 0 +8b01c7e1f3437e2c7e75e43ac7701f3eee2d0430 = 0 +94c3f76c3b586bb61a2f0c771324aa7f321191f2 = 0 +a278c6d92cb195ea153bbb5f57ee27592bdb82d0 = 0 +a3527941afb91414b939db259100da89723dc7a0 = 0 +b31e927e9a7591ea5ead2e8d0ff33acb59381f1e = 0 +c686fc13143744e43c19ad856bf7f0b8ee6f967b = 0 +c94238a82d185c7c713b206a3c40ad4e420d314e = 0 +cbb9fb341e4d1f351cb1a724a8e47923eaa3c80a = 0 + +[51556ac3-7006-55f5-8cb3-34580c88182d] +945c79009a5901b30dd1fc968f8076f3af9b2364 = 0 +9922295d876b83fea6a89cd65d3bdcd8ff9de12e = 0 + +[4381153b-2b60-58ae-a1ba-fd683676385f] +2c38a2bb773204109ec1fa2c047ccc21314aa11c = 0 + +[92ff4b2b-8094-53d3-b29d-97f740f06cef] +b1c80864b3c0f1dde55bcd84390681d033af410d = 0 + +[6a3955dd-da59-5b1f-98d4-e7296123deb5] +06624f0aaa1a6f6199b8cc5924cb8e062f003b93 = 0 +2e3156ddf983cffec121a6fb491942a4fc89e4b3 = 0 +533edd83a0b50baaa89afcc34e1e50bc9e760340 = 0 +58a392c8450486eaba0b81f45baca020824cea5a = 0 +7105d384f1329a7d7fc80c573c605eb90da3073d = 0 +80f366c5a4c9038de19a814b12aa74258fa82e26 = 0 +8e1541ee19c611ef98a168ec35739c9bb6de722f = 0 +adc2ffc10900e9cdad21a032cd443981661fb4db = 0 +eb9752d8453fcc7cbc033f5714ee88e90d1fdda8 = 0 +f9195cc14f24dc5bcb3d45adb1608a7d7d103018 = 0 +fbc621cabc48ef608ef26f77dc7cd8b2ea16e092 = 0 + +[d8c32880-2388-543b-8c61-d9f865259254] +230b8b4f9f16f305235a17414a4886f111c0030b = 0 +bc696f5238273c08b46a13fd1655e900550c1fef = 0 +d26fd688b677a362c95cdaf0012cb66fb2b606b6 = 0 +f83d17d3acfc208f137e7bb9839f513c76394e89 = 0 + +[6218d12a-5da1-5696-b52f-db25d2ecc6d1] +01d215bb44aeb3f6d560a06c68d93ee66de89dfa = 0 +13d4687b170a6aa654755b20131c3679ce3abe8a = 0 +360c947635655d4f375f2b5e74eecb90421e0662 = 0 +5ba08ce9f6dcd6571ea7a084ce17072bf5e4dfef = 0 +5d5b56d6bc38eca209cbd5a3593050e998e10876 = 0 +78e573c541a63fac98e01909ca82ef0f3d093cc7 = 0 +7e698b4b3a29d4153540fe386b8138a690de69b3 = 0 +963ac69959870034ef0caf4fe96f5cef9ce5db87 = 0 +97077063c3680a9249b4e628f8dbe250aca57006 = 0 +b0bc710b36608ec5c759f6babe9252794a5e3348 = 0 +b2bf29bf5f614402cfef8c0aaacbd7bcb2945a88 = 0 +b756808136870491e47a94c852b4f21b4cb20546 = 0 +bbdaf04d8681847d8a1287bbebab8db70abb5cb2 = 0 +c776da46d0e7de4e43cbaeda2cbb7ab9de4f0e0d = 0 +cff35f2cd664877556b323b2f757455632ce753f = 0 +e81999335e23773d9569754e9237c4e9939d19cf = 0 +eec7b80d92cdf35a34f1418007a6a6f4901bec8e = 0 +f2c74fa77c8b29a3e8132b0ddc23a6fbbc75cf2b = 0 + +[bc367c6b-8a6b-528e-b4bd-a4b897500b49] +15a28f73ae074634d8aa02e49c69369da04d3aec = 0 +228fd883411d6c287bc28d3a08597d08ebcf6af1 = 0 +5025ff9e41980a8510e6bcb141ae1be0ef0fd3b3 = 0 +659b0e5a122fc7c0a38ab56ebcf2266c67614135 = 0 +714abbdd4dbd299c96b39bcc3cefa65199de9633 = 0 +b8e5c162b71babe457b56669e4cb8530964407f3 = 0 +c29b282cbf6a8e88b110bad8e6b64c427472d3ef = 0 +cf0faf8c42a7c25f99d9e4bd9321e64568991b0d = 0 +f7c96fa8f7800d127324e3d9441c4228c218858e = 0 + +[787d08f9-d448-5407-9aad-5290dd7ab264] +184845be503a1397b84b42da5e4a63acd78b2d18 = 0 +971e354bc0dfde54c969d8599639854160c4b465 = 0 + +[b9d14576-938f-5430-9d4c-b7d7de1409d6] +39180e341abd412e8a0bc167164b7563c1b04c53 = 0 +b47f688fa0b4fc582b049fb018cf6e36896e8e38 = 0 +db77d381297e35c7906b65b1cf1e31635b438827 = 0 +eee205095f2430d0d2879cf1050fe050819de6c4 = 32768 + +[e8712464-036d-575c-85ac-952ae31322ab] +00cfba7fbd474bc12f91c347f7255e6ec41fe174 = 0 +06d2531ac3f5140d0eb34ee3cf8a829c259d6681 = 0 +1a43b9c0e05d3261f45717cfe1d898deac0cdcef = 0 +1dc8259aa16b4a3569ec1314ec11ffec0ad14386 = 0 +20b235a43db76f6744a5bb55e468742ff9e229bc = 0 +262c8693797c93c4d87af19ec577cb3834914eea = 0 +272ce68af0775c473c386ffffcaa377c90888ad5 = 0 +299f72614c88ea771b3163495206ad4580a0da38 = 0 +2ebc7fb158c4dbeeacebd607a441a091ed17e1f6 = 0 +34e56ef21231e4602ac339a80d0acb003a400459 = 0 +3a4af3caa3852527ccc41f486b207227edf309db = 0 +3eb69153ec3929d44c07c9c458f314637fa0b7bc = 0 +44d70140e0b8652b31cc4775e6d86767a921322a = 0 +51b82704aa0ce9cbb851ab078667ce25789d8cef = 0 +51ef61c1d9bc8fc0841389197538554eecfbaf27 = 0 +5c0a418846631b815472e1d91bbf96075894f0a6 = 0 +6f77b9cc35af1f70403b7318d1bdd5fde2c17720 = 0 +7c6e789fc9920fd1b7212424b94665de51fd7787 = 0 +7e52f9ce297818289f68a7a12521c2f27ae4611e = 0 +850c9d025d0fad65e83b4cd2a5e602669b4da885 = 0 +8fd99fc837e013c861bd3c08eee33373032e0014 = 0 +a05e22acd7058bec5962cacf3ffe2820a6472491 = 0 +aac2e61198d0b1d802361a0576f0e067e60d8b0f = 0 +aadd4bc495fc117aa16c2ba9536152ddd3dbdea8 = 0 +b318231bf451a4325f2dc5ab81927433fc472103 = 0 +b643722116f6e27c1b7c6da4deb1132360fb9be7 = 0 +be5cace4a252dded7ab29c873c3f244e4ed5808f = 0 +bfc5c667e4bbb23e2b61fd8e3670839c975da910 = 0 +c637b89ba752ea99c4f53a4bd68dcdce6ea70cb2 = 0 +c7b7d51ce171e3f3bd3ba75a58d8caac38005474 = 0 +cee05c8e1f60132ca6c3d7d443cd46686423a0fa = 0 +ec40ff9c31b4899ecd95d82035cade5c8e819c86 = 0 +f6c9670391b8cf6d8ae3eccb57b270cd67bbb38c = 0 +faf191a13febdbe5496f9b3924a067dbc49a5ff5 = 0 + +[00cbc572-0deb-5633-9df8-266c9fbbb95c] +4e971bad11a96bb9a14f2e6c65ce04dc5738ca14 = 0 + +[80713f31-8817-5129-9cf8-209ff8fb23e1] +502c4d65f75fcfbda0ff52aa79c09c140fede434 = 0 +cdad66a0f0ccf009bb5f0355c068d8c5d79c2d47 = 0 + +[02fcd773-0e25-5acc-982a-7f6622650795] +1e05355072714ea8691bdae669201111ff84668c = 0 +235c4e3110d9d31914209899d28024ab6ac0b38f = 0 +333f9469a94fcbcc224a901ca6ddab1530240e17 = 0 +984146c3ccf2b4c57c0f85c4a481d5396ac1f1b9 = 0 +abb987453c03d17ed5ba1857a95b0add210ebf03 = 0 +d1388171ba37616d62240664fcd1f4a858defc26 = 0 +d40d668d78f34176aebc107432dc096f444ae216 = 0 +e697f65da1870fed2cb98ae97eda5493c00199a6 = 0 +f78923428ae096ba12ffbc6cf6a9d86697bb0c27 = 0 + +[86fae568-95e7-573e-a6b2-d8a6b900c9ef] +0ad314c8f22d4f054eef8cf0fd0121e8499bc24e = 0 +1271fe1a838d6b64f4fe37e59b3b476695b9ab4b = 0 +16566b74a29f459457c2de39daf3b4c64cbc0b44 = 0 +17cc77dc042cc9cbd9d45183429248bff54c579d = 0 +1f06a62ae152acd5d7a82cd9cacb1efff8c2553d = 0 +2035bdf88705ab5d49e7e6599f7337cee1723f8f = 0 +2225e7de45d2089953383e1b1c6388f9e906b5f5 = 0 +28d4db394088d583d7b372a9fe49a52138bf36ad = 0 +2a5da26befc2b609f4ce6e7641d56dac04bb66b9 = 0 +2d5237fd7af7cf852b2e1974c8074d6830259e9e = 0 +32a83f74d841be5cd5b8ab59669239444906c9b5 = 0 +35ce5b4aa9ac5b34daa5adf8c27316c79629d573 = 0 +364e79ac88bb14e8f0ba023ad3015db648d3b66c = 0 +41aa02fc01d7b4d8b0f34d3e70d2ecfb6d0d0591 = 0 +487dc05cb007638aaa306fbd38ab3f2c9378bbbb = 0 +4cb34f87f50d8918c300a3396239fa813f9d2033 = 0 +4f86054e7d8adcf971abd430fb1c886f6d873f56 = 0 +518ed25ba8a9b65cbc01560ce50636f1894ad8de = 0 +52f7f261c74052a58731a4c8aab37ef86434b80d = 0 +53965ae9075c3746590bfdcdf915782f222717c7 = 0 +5c95569aec2c74b89218f861d261723e7dd60459 = 0 +5e3f1091185d09b82fa362a4f742ccbf44c9625e = 0 +5f74af8affd8e9501a88b692e46519df316146bd = 0 +604ae66a6216faebd440afd6b1a97aaf1db1d47b = 0 +714d4c552e7421a64639e10031e1aeabf5044752 = 0 +7179b243500a5d9641a49c414f261955de525dca = 0 +7655e53e8f4a938ca393ab9b7b66f25213028a1e = 0 +77740f2738c23f4a0d091481684f7eb116296040 = 0 +78c4f8df15067dcf7447f13cac287f30de125ad4 = 0 +8157932ede84c6c239c38e4f0e534b036adbf4c1 = 0 +81d6c4dfe329ee2c0b32dadfa2a296168f7ea04d = 0 +8647951601846e7287ce83f80eedcb77efccc9a9 = 0 +8e1a06093aecbdf5460cd6c85dee7edfd2c36c65 = 0 +95633550302ee97270917619b1782ee35713f53c = 0 +9689b261c382807aab9e009812eb8caf2facdb4f = 0 +9c7b64a04cb14fae1fcc84b2d7230c01c76e4e6c = 0 +9c7ee23a54f5e63a92ee63fcdeff415681e6dff6 = 0 +a666eede913e449bcc3f91ac7a27fe8e67fd99f7 = 0 +a6a1c105e8659409ec864ba371438a25b22e84da = 0 +b423648c694000355e31fb243583dc1308082022 = 0 +b5992badb70075251ac05f3bb638c46640f65e76 = 0 +b5b1ba39c12b9e328068c4e7ed04a32857c5730d = 0 +c02143410325f0879f24b13f01f5252d7992cca3 = 0 +c1c14bb0878cbf3724b46e9d357a5ba0fb2afbd5 = 0 +c57e6a61fafef4ae8b26cdc2de979beccb822f55 = 0 +ca9fc0c348465bcaed20d078e010ecaf716f7645 = 0 +cfb394fd866b93426493dde8cd04fc663a61d84c = 0 +d49a4795cf48ff45826ddea35737c0158f10e65a = 0 +f5a5de144ee3e457c62f282a46c80a7aa50028c8 = 0 +ff4158006a5512a59bccd92f4b7d9fae03ade3ba = 0 +fff1d66ab0580d1b421743c875440e586febbace = 0 + +[916415d5-f1e6-5110-898d-aaa5f9f070e0] +01c7cf0cdae58084e55acdfb44f42a5b20097140 = 0 +18590c72509832eb21f520ae992016a5f7a3f910 = 0 +1b3536e6700d1f56e85de03e8a41cb5357daeaae = 0 +1b5c7873739db3afd04936cf0ffc31a2b70ddcab = 0 +22b5ebfcc15143628e1004d5f3ee9c8d166127c0 = 0 +23358ebbc7c25f10f60d247cc8a4c4f0e96e7f4b = 0 +2587fb4df0dfe7a1f7404e2ffcdbd0fc0cf3097f = 0 +29601ec723590380262f22d2e70d50b87c6b506b = 0 +42f5cca15210d8da1629bba2d80d1b5e288b4f12 = 0 +51d9d6fb7927e7133b7b3ffcc0a04a7efb15685b = 0 +646c075d819d1f32ad6b1893a2e3d9d6e3810f07 = 0 +66a49566cf2a75326e70a7d19b127c7097e45973 = 0 +6a3f1ce49a432567b726696f70e3b650650919ec = 0 +728216c493a054e75b12401c07d9b4389a00bf46 = 0 +7c8a791d6622d94a8812198a8bfeb5e587bd2687 = 0 +8840a952817eb5d8d78cf122ed6f9d2a87ae2aec = 0 +9ee8146a52aac267cf5bbe80dd82840619f0c543 = 0 +a5a441177aee4f88b08668dcd6838256ec9c58cf = 0 +aa04e63487d46f0e41041e4ca65365ea3aa240ba = 0 +b635f7b0f7eba110287034164445099143671821 = 0 +b6f85f6b2a2d62a91db7caed552d9f143a3e4e7e = 0 +d1b67195ec35bb21b119ea79062ff16fa19e8568 = 0 +d20aa188c2bca35bd69b3d109991e6b91e82d05b = 0 +dc78510d112b330eab39c9257e4f9cf0e5864d85 = 0 +ecd35f185912489a94e57f22852d8be974b6a9dd = 0 +ee27cfd283021ad4087d5870fbc0b8cd7f861721 = 0 +efac0091c9df6f9fe7240fa9f55441afdcdde0d6 = 0 +f2b1ad762a18289f5f76fa1070debb460ed6e082 = 0 +f2b6493199fc9d8e3388d62d485bf7730387080f = 0 +f3fde357469914719e18e5b18df0dec68024c18c = 0 +f408a21365c6b70c93252bdcb6911a507ccc4918 = 0 +f629d05c981f1d676d6ab1d4e05543f181c0fafb = 0 +fb78f8524b86d0ab10b4a744206fa12a5221a83a = 0 + +[4bab44a2-5ff2-5a6b-8e10-825fb9ac126a] +1b0daf52e1ffff8186a426105c575c519535e608 = 0 +2657497adf7038279f92761e232e0553213d77ff = 0 +2e953efc3340235e755809a9508d48cf3c3e2a06 = 0 +46d55093c26bb00de0d69cc91e3d8537323af972 = 0 +6ecc90676fd29c9b6f4656a89aa429705bc11849 = 0 +a3f81af5d137d38b6e72893783c68412de95ed49 = 0 +a8e32c6055a0f1b7ff0e378a01f73b4ceb5c7d29 = 0 +b9e17be3c97b5b93cabee54a757cf0c8ad24b80f = 0 +c657a7cf45a05eb0945c0dc1d4b80e737793f908 = 0 +cd240a9edfb9aabb913a9461015c14b21f710a3e = 0 +db2ca07bbe5a58c33853057e871a4c9f571ef4c2 = 0 +dc4f5d7679f85eade12b8d8ca08beb9383024499 = 0 + +[2a4eff87-6e1e-5ceb-a32e-3bc6a5c2833f] +0aa92320286ac7f4d9cb5a021472a9910f35be49 = 0 +166eccd5a3295fd2920706586e0bde4e00ae532a = 0 +1a684001fa87b690ba57fbe1d5b28f2407006dff = 0 +2f3aa049d09e58af44790d83e65752eddc121caf = 0 +370526dcedcf0e4615f55b9e3ed77bc1670c7aee = 0 +435c7d78df6c3f0b16f046de09455260dc3130c5 = 0 +4543b2a37702373d024171b5a6d37f26c7268531 = 0 +519f02b90a6b89de1bc2b06d225f51cb972e02f4 = 0 +bd2b12fc1a1bd163aa7aef962f25d89ea6b78623 = 0 +c5637219405c914deaa3ad0eaee624293a671326 = 0 +cae4c0ad789b767a2b81432428957f12be2a4340 = 0 +eb58d4892dfd417b3d615488e4a4cb4d34cc9354 = 0 +fd3b9b7f6c6a193eb91ef4cb70667d0f9924dc9e = 0 + +[ffda130c-d492-58df-9d61-3bed680bfbb1] +08e1b303a22c141451fcb96567e054ee880484e2 = 0 +0fbc44fcf1a83b02fca814258ab66d3c9b0d8a51 = 0 +43f2b280c468d735c4cd06f317526a975ae325ac = 0 +54c88f408d66cfd346b9fbc235f0f1d1063ed81e = 0 +5ef3cb7175a58c796c1db708e940c0e64ca27dd9 = 0 +79ce9ceff25f09d97b3b8c8b41a1676d37060bb5 = 0 +8caab72b8858019eb2c7c95085e7185d28a8828d = 0 +a39cb5767729ac5ae36c7486ffe1522df358c241 = 0 +b89bd0b6cc1275ae001865d37aff4c529e840a31 = 0 +d73c21a615cbefb20b75e87762f334a668e4b449 = 0 +dad0bb800d4945dabbfe1cee4bb2c0ea1b720aa4 = 0 +f785989d512d575537912893668b1104ea1fd212 = 0 + +[95701278-4526-5785-aba3-513cca398f19] +0eb64b21374d95c1d21b9cfe853c94b52c464861 = 134217728 +20cd91a5b5e64a45bb252b40c2f2dc40a587e209 = 134217728 +ab52f94ae5571344d39ab23c9c2ebc6517ad2ef6 = 134217728 +b9bf29ea504935a16285311cebf8499361d559a0 = 134217728 +d6f9cdba441d3554836cd8259777e69818d658cf = 134217728 +dff8dd24993f93de5f6b28c3da556e72006acff6 = 134217728 + +[37933770-58e7-5599-b2a0-fdc2bbb99623] +b15d70952ad18de8dd8f5f48a5588a72ff820f12 = 0 +df5351093c3d4dc7f7daddbbd2ef5d48525fb30c = 0 + +[5087d2c0-5ad2-51de-b1ef-eaf82f0743fd] +ec4f6f046f95f6a9c2afb66ab2c0a313bbf9fc5f = 0 + +[904591bb-b899-562f-9e6f-b8df64c7d480] +076a8db52fa317049c808eabd2e45c458f0c3725 = 0 +476212075512dfff85b371a8254824693d3e8fd0 = 0 +4bca1d41497fe6fe40644fe3d78a70529d2e8a75 = 0 +559a915f9ec08ce620788b2a9b64153d662d6d17 = 0 +73c1e06989b04e8ffc7c0ca3a8d6ee8c99418c35 = 0 +7b4563d353d2d6aaa53a6e651faae2052df76693 = 0 +85175e0efc07d224b77221e00a33f15f5fe604db = 0 +8abf6fb0af215095865e9a6d15a1a3e1e2cf9010 = 0 +912101943783eaead0b5d75dc095c70e2e0d4750 = 0 +a9e7fb0ee3b8ef265b866303d326cd23849d14f9 = 0 +ac625cd49afd57d82413d3d305f26adddb7a974b = 0 +cb47af420561f10a2a3f1a5c7586b6b27c8c799f = 0 +d6320e44d23d5ffdbdeeef0e28aa8dc3371651cd = 0 +e7d0093c52ef9ab64c09a6f950dd2a5b9a154958 = 0 +ebbb14345a36571704619c3e887109e0fc93e5bd = 0 +f64332ad56ca5ed5c16fd8244b3193f24348f197 = 0 + +[17bba4b7-aaeb-52bc-bdfe-ff0c2fe83683] +0448fb7490a79b13455f246b4649f182d76f2acc = 0 +42a88daf86ad0251a7ee7fd15e0092c207f7b73f = 0 + +[1cb3b9ac-1ffd-5777-9e6b-a3d42300664d] +1ce6e0847ecdb3d63faf9b2b8330a392c75e7a1a = 0 +6c22844596cd1063a596df7ea166382f1dbdd5c6 = 0 +a119793a5b2302e38276c4506c0c2ccf9ecbadeb = 0 +d0d96b9695b0fd6faaf72c68244eb41fa8f5555c = 0 +d5c179fa1de6554fa8c1f4ce7d4be609736a147b = 0 + +[72b4f566-20aa-5d34-a893-970ba56e54ed] +2a49c24845325a2643630450274770f8295b4653 = 0 +675b4cbf6713f55663a3b8d46d25fb178cdf66ef = 0 +93d2f5bdf141f70f155da69d86b0128c8a00bf1a = 0 +a626a5ba8096a3b54caee22ea34ae37885c4b49a = 0 +f51371e8e7f23c98fa29d44020043527999041a0 = 0 + +[6deec6e2-d858-57c5-ab9b-e6ca5bd20e43] +012692d1acfd3a90b0b46631e28241a30c223e92 = 0 +01856086e34aa0e4a1b6c41b00016d1cbc022284 = 0 +01dde0be3857f1dd358af2f18744e601ff225a67 = 0 +03c94730492a4a6ebe0ad689ac3034d65ab27f94 = 0 +266d5f0a74fab23a4b6b114d257d26757b880cdd = 0 +3a4d80d1aa11579f16ab2baddd2caafcab218c14 = 0 +44874bbc0dba5eddc5c2c3d0331d8e585e55297c = 0 +5698190578cf108ae342f70f7e25a30de8c9b989 = 0 +61efa422c3ab2e4f78c14775cbcf45509e6038f0 = 0 +669a9f98fe7a0cb2d8892874d73bef3d97926557 = 0 +70f5b46a9f3961daeefc60d66ba7d7cb015f9aa0 = 0 +8c8e320ab6a06ff894d333bc1346bc9fac532173 = 0 +92ab218608ab5b8a4e0e86a0f7a95e4c6914731b = 0 +937ce415e617922a0cfe02c8b8abb27813ae0ccd = 0 +9806defa8f47be4889361ba22cdfa8836060a1e6 = 0 +a0d93472e99f6ce864d9186afcb6c57416c8fe7c = 0 +b6cee92c83c3ca7180f4c0600b0ea6ff6eb2d4cb = 0 +bee169fd5da30db4087b7a10363b20834e64e6a9 = 0 +c507a5625676d09bf56e737615616b389380c630 = 0 +cb4494c37ff50be3b12af1ce9d66a5d3e18201ea = 0 +cc2d95afcf9e869b639fb2f0313eb4690381f957 = 0 +ccd3d529dea15f1726065ae838333b71215b6bb7 = 0 +cdcdd396b1aa0cf8451f9ec41531a52d40dc25c1 = 0 +d12ffd7e808a513f471d896d7faf4b99b76a214a = 0 +d6407ce711a21fec23061439dcc32fbb69985772 = 0 + +[313cdc1a-70c2-5d6a-ae34-0150d3930a38] +2f048f754aa4a9c2efdd8c12b8f2f26a26e015ce = 33554432 + +[70c4c096-89a6-5ec6-8236-da8aa3bd86fd] +1bf5f2a28f079148733d8d58f96659b670e188a6 = 0 +274eaa8b41123959060c8a124c6bf50009f33bc7 = 0 +2f1827d5b5d30bd8ae1359b9a7950361b4ce05d6 = 0 +500b4add9138767ae3b20838aecc3a4044c1aeaa = 0 +76c6da66a700d82805d150fa74c72c93c5cf3195 = 0 +7f80137436dce47e2a92a2abca5bfcf777a9d537 = 0 +877690fae077165ed9a2b850ee9d34ad1c095160 = 0 +89621bf6d4d3f9e3900636c2358496b747606144 = 0 +95d4d2202ab6aa7e9efc34cd1dd8388b4892a0bc = 0 +c607f36222286368bc28401773ff5280716fb510 = 0 +c6d2702280bc8ba8403b1ac888a8b4ab48318d45 = 0 +c9a5af45a481b18e0fb915b9e7cf4e17bf80e8c2 = 0 +d8dbf06bbdf7e6d0d39ed318ad0ef87160ad8db1 = 0 +dc79975473d7f7403eb01b4763c533dad39823c0 = 0 +f7084ef1dca5ca9dbbb772b01b52d8618261d7dd = 0 + +[9b13fd28-a010-5f03-acff-a1bbcff69959] +02feb5bf79a749b3fde8c35554f663314909264f = 0 +103a3c4aa0dc9fc7aae7c92777546290c00dbc86 = 0 +135a2744d6f6373a0d22a2745ec8fb16fbcd041c = 0 +7201daea8d87dbbb18ca081f87d6473d282acfa7 = 0 +7e709ac34fdb1ccd9f35466bce09cf96be80fafe = 0 + +[f4508453-b816-52ab-a864-26fc7f6211fc] +1e3bb8142f0c30e50c2e38dc7d8e0fbd1d468dd1 = 0 +2db5619d39cb80cdccd398c975c7c397e6f92787 = 0 +347ebb051b0e50c3a928bef47b8b5b2dd354d742 = 0 +3e678b322a625d5a45352da233850e730630ceb6 = 0 +48dec9fd9ac1a7d4d9758b0c60410454a13af51f = 0 +4c70fbc202f1182877791bcd7d0415e4c3c28a17 = 0 +53a70f01fa1433d4fbbb6621663a17a0ec038a57 = 0 +5a933d964f9cc731243d7f15b40e5463dc7175e5 = 0 +6911527695f510bfa52fa91fd9226f943e427e39 = 0 +7fff2aed6d9ca8bf64f905e7f42ff0f8d47d96db = 0 +81e3dce55366aef62af0512a92e61f848848fcdc = 0 +a56b9e07d70e72a5767f79e6e7b096799179ee96 = 0 +b84c20c3945da314830a81c7dc56cb60989ff7ee = 0 +cdc81adb4038960911535f6ecf00f2f69649c1b0 = 0 + +[96684042-fbdc-5399-9b8e-d34e539a126c] +ab53da2223b84de2dca7bc40ac4a9814c84f67ca = 0 +acf423e033164742f8575874f533731da781ad32 = 0 +d26b9a9b36368399634b8f565fc26b670cf05dae = 0 + +[281102dc-23b7-58f9-8736-e3566ed2adc3] +98cb969fd3753061402d2aff49e27719a73ba961 = 0 +c99c9fb9cd5a2032dd6957103acda73fe3af5c54 = 0 + +[83e8ac13-25f8-5344-8a64-a9f2b223428f] +2fdadbd18fdea79dc3c8278ba329db840dc10be8 = 0 +477724366b99cd0f9945950da0c7ff83148830c3 = 0 +507cde1d7c6299582fb7d51e68f82d785c264400 = 0 +7a1d1fc15d5812eff494fc05b8b70f03fac31bc3 = 0 +84d01f0a6201613af4265d1d908f48e569e6b918 = 0 +8a91a7ed793c91c540ff442113f4fc36be305f43 = 0 +ec6c9365bc3a04e1db0fa60350abdebd9a4e8179 = 0 + +[505f98c9-085e-5b2c-8e89-488be7bf1f34] +23f2478a16e9eadb719b321c64d400ece27082d0 = 0 +6dff2de5a0d8af0970361c12349b408d49967be6 = 0 +7a56d46fee2f874ad7cf3ac4b91d556266215eda = 0 +a2861bbd8d5731b15853becce55a419ad91e890d = 0 +a4cc6158f3fb7161e43988f793d871c9746258df = 0 +a4f5a76f81a4dbc6c6d9f2c6b487e6ad18e4f28f = 0 + +[d0351b0e-4b05-5898-87b3-e2a8edfddd1d] +08e12da6d0721ab0847c0db38273c78f21bef4ad = 0 +0b7803b4abaaefe31877961ebd48eec1f43817c9 = 0 +1ec1c4fd9ef6aeba62088957fb8cfc6165ae24ee = 0 +20d36b300dc4c744821bde42885d238476a93fbd = 0 +31bc0b1389a3e3cccf98fc6d4031e1ff6ad31acd = 0 +50c35d17cefdd265dd2293f9ff8b783ae51a6ee9 = 0 +54d942cef7e4c5b136d356170c344aad73d02f1c = 0 +6205596359ca3f10d2431578179d8729364a17a5 = 0 +85b03fbdd733e3fcfed447960c88e048b6e52309 = 0 +9591633664477d336e8a8c45c8ed2185d6630152 = 0 +9711305cb46ff73f74aca6c4c5a6879329924de4 = 0 +9d35ffa916e5ee83fe0dfe9bcaa02c0a331ff287 = 0 +a67cee7296001c2432de7e62e7bcfaee6f680ed3 = 0 +bf5418e283ed2811c8553e8526f7db58d53f2675 = 0 +cd40fb2ae06c32644ff8abc318659512100161b2 = 0 +e50c621bec0ab63e32075035bcb2a6efdb8673fb = 0 +e59b5812519eca157f6432cb4f3f7166b9dee81a = 0 +e62d82256d6c37c03e0196ce466aa9635bbd2e20 = 0 +e6cbb264a136bae1506301c08c73d421a625faee = 0 + +[98003276-9b86-5dd8-b0fb-08f007e5f4cd] +263c02c537632d60d0ae6e14a49abcb8a1b61f4f = 0 +bae3b27178270fcf4e70ced2546e19c0a399fb01 = 0 + +[45d23951-e9a5-545c-8049-e4c4887f5525] +31274cf0121086be43d9f80f4f00fd7b0b7bfbdd = 0 +fcb22009cd1616ca2ad532968bf51e7e6b40cea4 = 0 + +[29a5b9bd-5f4b-5ac4-b55d-354adcfa5575] +b8624e6585796956374087fd8277738e02f357d7 = 0 +c520867e746416be80e3441d413bf57c56b2d23d = 0 + +[c601a237-2ae4-5e1e-952c-7a85b0c7eef1] +045f0ea17b0bbe46b0f82c9cc25cabbddcd3f788 = 0 +0946aef82974c5881f5c7f3ccb942a52992275bc = 0 +28717c4125dd79c5f14f472b25efae625ce1bf55 = 0 +2e247ede6ddf9f389474212127ef5d8a5bc355bb = 0 +3c35c203b0f0b9ad391ce9061d5ca706c2b983d0 = 0 +455660698fbcabb169fd4a161ca1dc07e6564a9d = 0 +522151c7405ef3a52ab64ccbb228411bd240d240 = 0 +548174c7c833fcc67e00cc7349144f25e431f8c2 = 0 +54a4088e84fd7ac2198709952f69dc687255c63a = 0 +636db076771912e27bc522230c021c5c33efae0b = 0 +67a0ec1284e12cdfc7c6394df8fae3a70f69c72c = 0 +738d42d398534ebd1630a380fd4ad969080b1732 = 0 +74b4922869b3400cf5fcd2ebd316db0fa60f1b64 = 0 +7d1b529f54479a3a08f7041027bd09a43c900975 = 0 +849ea79f5489ec824f9c6beb8ab3f3f1512830a5 = 0 +a1d2f9782a9a91c50699fceb94284eb0f8758075 = 0 +a3e048fcc283ee4bbdcb6792d480428e982fa8b6 = 0 +a4239a755bfffe982aff0c998aaed7db91261005 = 0 +a9468e286029023e6595a55323d9c9e8246ab439 = 0 +ad03087abaa803302a0f6888d7c7a15764b4420c = 0 +ba477da307fbf9d0573f61554e22ac79e520fa8b = 0 +c6e872b1291e2ac156f6b2ad5cbed932e9f20f02 = 0 +cc5f4cfd34687000bc6bc70f0513eaded1a7c950 = 0 +d3a2ba7fcd9f52bec307a04c45f0ad1394075982 = 0 +dd62e50bd414a89949a71dc7cf203040bad6942d = 0 +e02fd0346e0886e95178cdf40f8cd11cd83ff6c5 = 0 +e049a832398f71a15f5f0fd8f691efdcd9c87018 = 0 + +[80307280-efb2-5c5d-af8b-a9c15821677b] +0659f692175d6ee809b49f5750287a1a30727763 = 0 +6a0012fc49f47c3994c0761fc1a75e2cbf522e8e = 0 +9225bf7e802231f7e676ad9b25221e22e4b93e55 = 0 +c5b4d86c7955b5be776078b4e23cf146806fd17a = 0 +fca6ec7de77aff576f5c87a9d8ad6094762189af = 0 + +[09453d48-b9e1-5bf0-a018-8d5c65f8cb56] +01567e5725ef032da0f36c558c31b3bfffd11d7b = 0 +073556a7c71c28133ec70fac4d6875cc9073f37b = 0 +18ade998bae00629d619e6c4d833d7a0057cd869 = 0 +249f114c896644ebbd036a52b3230d180f4828f9 = 0 +26aef3981ab47e517d5c0f1b78ff8a56189c7fc4 = 0 +4e3c60d8ea0dfe9a286bf4c9cfce7f05ad606929 = 0 +5ea65308d3e069e4c21fee3115faf6ab3cd89cec = 0 +82e3dfd89f9c69cf090e525af2b41f622c6ba3e9 = 0 +957e95d79c3d9cb2088ae6624511c112df397fea = 0 +96472cbc1298dda6b222b2cb61e718ba05a1d206 = 0 +9fb0d6ac16365dd4ddbe3e5bdd0d71d0aa6086fc = 0 +cd9e22ca4012dd215ce68da4b0a99d36b11dbc61 = 0 +fd53975643d4395f13d3219af7848264d9c4a116 = 0 + +[946f28ca-a746-5062-aae8-8de1d469c02a] +84ea1ce6717f1ec15f02443b094625b044373ee1 = 0 +999bcbe58e50059e5abca43ea9133c74f30852ae = 0 +bb002695f950c95ff8afc000a92dcf3e3b1d6879 = 0 +e629014d537fff8e62f8635016a93fffb16ac2f3 = 0 + +[7d512f48-7fb1-5a58-b986-67e6dc259f01] +90c0c87d52a9037846d3ba47a3fb83d48ded8da3 = 0 +c465243ad34dc8e09b1b6ef06ffb182c8ac43134 = 0 + +[a98d9a8b-a2ab-59e6-89dd-64a1c18fca59] +03497189b35308a5b51fddf5c934e2644461aa80 = 0 +0ecd53b6603bbf9bdc06a5ee9918821d5bf57a13 = 0 +37fee94f74764f8e02dc33c4cc6639ddcb29647f = 0 +3d433dff8058bf507ee27e4d395ac2f4cecfdaa5 = 0 +422a93473d6ad3dd738687970ba52169a176a84b = 0 +5511d40b2cc14296bf287ab4be070b0fe536657b = 0 +563d753bbf4ffbb1a93b7775303f23cf07686250 = 0 +5b8c7c48a06b39386f6879b7dd604486dc766a23 = 0 +614f7db7315da3d0cf9ac4d1c11d68dc9784a5ea = 0 +62dd04b892e9461a42e23d905a357f010a68f2ef = 0 +6e02f883872cf37af3f148cc61af5d6b09a92b24 = 0 +70e41285473804cc5867c619682b81aeec5ca08e = 0 +716d9b494f63a3c31b6bc4a0262a5a2082eacd25 = 0 +734f4aacee0d56ba6c74d84e98748e6851539a3d = 0 +7646fe923f4c9e04e23cff2f26222917cbe9b4cb = 0 +839c1d3f6aaa855b4e384c40bd36adf2a72dcf93 = 0 +8c12116117c5687c5609f46ed3362dbad794703c = 0 +906bac2bc3b18c31e92a93376b15b47f2c826da0 = 0 +b11bdd50b45e3722a1b96bb15ae625c9cc400d2a = 0 +b67c920f10c27c90fe54183385ea18f27cb37bb4 = 0 +b8bfd6ed17d81f17d2b8cb81d0ebfb5b6c2f1460 = 0 +ba4b34d242a77de0f52be559226301821acb52a3 = 0 +e2a0380a8423af2c4dca9abfe2c6a2db4b9f416f = 0 +e8464501689ac1fbdd53c42abde3bbab50196aa2 = 0 + +[d1acc4aa-44c8-5952-acd4-ba5d80a2a253] +28fde2fad77ba513dc4ffa17a7c91be794d995bd = 0 +64f72c729b6a4243cfdbcf8da9b5e126d116cd12 = 0 +a0bff5584de46b10e72b9e96bec1005901bda96d = 0 +f4be4b6b831dee83ca3e1f683110d8043dd3ab47 = 0 + +[138f1668-1576-5ad7-91b9-7425abbf3153] +09f2467f8258048c354258aac7c3e32169fa688d = 0 +18ff6d9c2819d63201b7cd74e8e4207b42155189 = 0 +1e7dc3769b413300debf0f32c2a03a75b25bf561 = 0 +20b6d501a4784ce9c54b2edf678275a6554a9ede = 0 +809a79754a2580b4d17aed699c5f8a2be4fd34e0 = 0 +e0de41fd24f17806d3e654bc115d425fe8281748 = 0 +edc8e17404ee85704868e15ff2847c14c445763e = 0 +ee14e1293a8b6242eb80b68e2a2d8c69ef8a2b66 = 0 + +[15111844-de3b-5229-b4ba-526f2f385dc9] +caa1b97ee6609559a91e5e3b1406c51dcd16ae3d = 0 + +[efca97e4-8864-5806-976d-c5441310cf5a] +40f5d5dad342ca2e49b9e59ec64be29608f9b3bd = 0 + +[c7c68f13-a4a2-5b9a-b424-07d005f8d9d2] +e695b6ba59477e4007528d211ddd5e38aacd54d5 = 0 + +[d2bf35a9-74e0-55ec-b149-d360ff49b807] +60813ab471ebdb423106d6cea1d825bbefdabc06 = 0 +9635b27723de05930f7777812e1460479889bd59 = 0 + +[8197267c-284f-5f27-9208-e0e47529a953] +1af92d6ff7d130fd3e3f41fd01bdd9ccd74375b1 = 0 +29998c52b24d2f74a683a9bc9f71086d9a0f2318 = 0 +77d4bf067c769a4ed6a861c7fe09aa61830552a6 = 0 +9387c49ceba61e0d504a8091c1034b57648ab21d = 0 +9a4d3eabc7ef612f27d13a2018b0b86af75b2ae9 = 0 +9c79dfca156c46a3d5afdd88dd2545f9623a991a = 0 +e83b982e66d468a298d7481dbcf76d8e480521a7 = 0 + +[524e6230-43b7-53ae-be76-1e9e4d08d11b] +1f1bb8b510e508a1f8969f7e0ebde5968ecdbfd6 = 0 +1f5b320d5a5260b28c88e4d57c21db8c787a80af = 0 +3c21c732cab042462e8ba01e22c2f0334e21d220 = 0 +4e609d30911a0658ae743d0e6753b168b9aee805 = 0 +804413e772b0cadf86cd5782ac72f54d65283cbd = 0 +9137e7d78c309594f49d158e33eeb2a2cdcac820 = 0 +92e7e28e50de9ad1a4683b9b438a36a3b90c00e6 = 0 +9bcb231b70bd961839c773f8fcdfc9213f020b4b = 0 +af6ff52706d70273abc3345352cd5828fac68c45 = 0 +ddaa8cd512e5eed969d3e7c467aa42f1de403011 = 0 +f4884e0f9428035791584552f803abdc3b55dc68 = 0 +f4b0e3023f66213f68df210ba81f2cd2f7a43cbe = 0 + +[8574dada-bbe2-5b14-8c04-14b17cae11e5] +0b46767c98fc8fafa791054b4a2fc6ea7c58f822 = 0 +2292fa69d209fabcbfcda371e524b8867d33af0c = 0 +470dd4ab12cd7fccb028d1d4294007e1927c844e = 0 +8be17f6532dcc8818599bbaa9760d16a97fcaa44 = 0 + +[6a8e3230-34bb-5a86-b9da-9f7447a06da5] +2c7e1a266c001db7121cb526632e52a3dae7872d = 0 +5815aa65f6d9919a9a0dc7000bc04b286713cb2e = 0 + +[b6b21f68-93f8-5de0-b562-5493be1d77c9] +13e38c512469a9a68dd9892df210af23cada1e48 = 0 +15d815092cc99a4a8c80db53c053c97b41648ec8 = 0 +229fcae9db4594034788268f01ec62845fa44a81 = 0 +319c12913b758fd5b966a22433819aa77bb4bccc = 0 +323fb563e3333b6c23fc479d5ec98f533f5190c2 = 0 +3dff76985f44d137c16cd998888da6f15b7cbb9d = 0 +51c517b25b401d928ca322fca7c2e79130d9abb6 = 0 +56c5846255df258a8605b58e148765bd190e45e8 = 0 +67762c17361e5d865f43ed6348e141ada5ee6c94 = 0 +6a5515460921c2fa27d00a668bb232a1ad95aa0c = 0 +7d24f3ad0e3243ed6023815928270c4ebe0d3364 = 0 +8fbad354669d3ded34be7c502d830ca08af80add = 0 +911d68150970c17277296654e3a806431642a070 = 0 +940786dbd5a30e58f8bf9fc7462944e1bbb960fd = 0 +959b9c67e396a6e2307fc022d26b0d95692ee6a4 = 0 +9fe3df223c5ef6bdfdadf86be3c65e1536f58458 = 0 +a52529e0dee3747775c6a88f77cebd3d26897a41 = 0 +b2fb8a1f49d162c6a8d023d7cb35a2758c3350b8 = 0 +c1c400b7dbda108c3978f5ac7cd32beee724430c = 0 +c6665b3d74e307bc4e962ec22b1a68be70b1b826 = 0 +cc7aee5256bbafb16c74e80b9b03cd29ee12088a = 0 +d148dea7a31efd3cb5ff05c7d91a94c5acedbf3a = 0 +d818e8bb38991dc52e9bddb43b33c6304ec49ef6 = 0 +e41b1e55fa5e6137f512d385662ced124befad5b = 0 +e9d2a249e17be5ec9e50d3c490451711cd74a108 = 0 +f3f14fea3244af029aa5f39096b31404f6194b19 = 0 + +[f80583a2-2f03-5cf3-bf51-00b6f1fdf270] +2cbad24a5f1afdf06f4dabc23bf81e23ab6c9385 = 0 +a33246e0c1203dc79188c4de65a468c36147b073 = 0 + +[35dd6a29-728b-5d91-8fe9-8df4ea503c83] +7ab0c9addefa3c3528947c4f55ca83867683e31e = 0 + +[c8e1da08-722c-5040-9ed9-7db0dc04731e] +6b847ab8e23c37f0ed1c6d7007ec01dc41328381 = 0 +747400bc1f3307e79b490175854aef42d7a65235 = 0 +f7dbe509d201098e65c6fc2be18547047d10eeb2 = 0 + +[1c8ee90f-4401-5389-894e-7a04a3dc0f4d] +1064c2543da788b1b6a63e90c4ef2f281878f0ac = 0 +119d08cf7d2394e38bb44acda3bb8d5bf7d25e1e = 0 +14742ae2a2ba9da311c1a351dff2c45aa8c32e02 = 0 +301dd32654993f707268bd5b8abf45403845883b = 0 +3809e2b0d99358859a255ac0e21e3535e85583ea = 0 +422844ef0a234c470c45e708eff81e68bcc59ba8 = 0 +4c9ff466325b69498d5b9187708425add7b7dc5a = 0 +5dd87776d4f3629692579fe49e9fe76b9809d2ea = 0 +92cd6f4f1d7099fc958597fda2157364e311c40d = 0 +92f256801432f5d0ba08d3b92738e27f2307004a = 0 +9caf2f17373cbd69d7fbb3f3e02434769f020f73 = 0 +a1ac6c95a8bde35fafbab2466e6b1b5ad43d7eb0 = 0 +af6e26e4d7a434275d8d9c6cfc5790a52182ea8a = 0 +e9b687c0e7b0fbf6d2e49341cb25c8be5da26775 = 0 + +[69680d3f-cf1d-5315-a21f-791b8226f004] +8b9541d699a06c8592e7000565926e3be74bc8df = 0 + +[42fd0dbc-a981-5370-80f2-aaf504508153] +0aa0760d73812d9de504068ee48e131f666cc142 = 0 +2772d765e505a7ecce9fdc62cc59ec64b58f1cc2 = 0 +2b1834126cdea58de22a420bf59f7b43da190689 = 0 +4558f41f71fa03fa0a331f58b6aa0e4658fc232d = 0 +4584403fd7dd2367dd3044262a4f417642517be3 = 0 +46b05250aa1c7dd1d399d64b8a323d7db37f26ea = 0 +756edef2b6a58a65b41f87127fbec1f8c62150c7 = 0 +a215666bf709c2e66f3801edf6eea5449c42d2f8 = 0 +d41f60dec1d148ac69e3dc78b0f2e585effcb251 = 0 +e0bd5e1c91010836657579e3b72b71bc337129ae = 0 +fbc8eabec826f7325db19a0a6bb8496ecb9645d2 = 0 + +[82899510-4779-5014-852e-03e436cf321d] +559a3df20401cd052f3f5464b8a69ae30d9bc304 = 0 +9e4ecd265a553495734606b75b99d3bf11b0fd00 = 0 + +[a4bce56a-f44e-563f-a45f-5312daf41243] +171aa9952e0588948393abbf43ea52b8d8537550 = 0 +a79830e27f0f741493a65df3e62ae17fc5588b81 = 0 +b332f5627a67d96d21744408952e34b3c2301215 = 0 +dd9024cb2ecd269df10a85f547742adc0f45863c = 0 +e302a0de98da0ffa878edb359777370a0d94b49a = 0 + +[6042db11-3c3d-5e84-8dba-9cbf74c9ba48] +363700f760be7491975449f0fe54b9382d4c001c = 4 +491d726a3019b73899376c9771ccbe8a31fa9099 = 4 +88c2a24cb00e26f970a717f07e19316a4266861f = 4 +bee945293b2798ae605594ba5ab87fc1743e319e = 4 +e7ac024bdab9159b4836e70ee51db8ed3e22ec10 = 4 +f41a3b3729c1d7bdc5d8cccbd95aaf3a6d03e50b = 4 + +[d32f81f0-000d-5c7c-8375-24efa40f8589] +31be87d0cc74bf6a08513379e87d55876ac58d53 = 0 +32ed3c64f12304b3c18a481cfdc8b92bec6bf719 = 0 +c5de9471905cd0a9f1378490264b9cd4a6e9f810 = 0 +c8ab4f451be90684af109ee9b32283be754d5a7e = 0 +e25b226bcaeb5a88271f9bd822533efac486b48c = 0 + +[4138dd39-2aa7-5051-a626-17a0bb65d9c8] +084e1eaef84e0e4449c1fa09483bdc5eb5eea138 = 0 +0d8894380f5567f22e4cf0a545093a0502f8b7b4 = 0 +103b9a5b545783326d74f53615d46f2140492b3c = 0 +1adf77183ece207d0040eb0d95ee1996b45d1fc4 = 0 +41ac60f86dbc0f34abcfcabe46d1e0edd5be9e9b = 0 +5022d9bbf16f7e379c2e5e86c13406b17cceb893 = 0 +634694385c904bfbc728659ca3ae2035aacaeea9 = 0 +7ef6040ababe66a84210e6c3bf26fb5b26cffaf8 = 0 +ae6bacd3848d30f6f48920f51571eefc469acca0 = 0 +b273c5e468d68e2f8e78d2deff35e6df23b4b119 = 0 +b8ba932074746809b07aee08978943264c75d0ef = 0 +d89aa72d362c9b9b5082e149281478ac7732d591 = 0 +efd7ae87ee1ce611a1b1f403cd680508654d6d3b = 0 + +[033835bb-8acc-5ee8-8aae-3f567f8a3819] +190da18d0dc3295f83f9d33f49c5119e10a0e635 = 0 +6a415dd6b1d98baeb976babef8696ef243b709b5 = 0 +996f4c8744c58e8166d7c9da8cb4c57725521f30 = 16384 +c19ffd1f61d1f8657eb1fae5a8b8e7fe6f8b3461 = 0 +c1df87ec20745a6f3e5d6ccdbf46313836aeb7f4 = 0 + +[b39da016-875d-5aaa-b6c6-44634eaa7fbd] +1b06125491cbdf96903bd271a2b3ce1021e3f427 = 0 +3da54ee02bc332f02cba6550f5ea5eda38cda83a = 0 +669b9f8516e259c44b301dacca1561d4e9d7ffe0 = 0 +88429ccb6719eb1e8245cd20081b67ecf631951c = 0 +9d2e0ea179322db7d31fbb78f6eab7e9a66572a3 = 0 +d396e1c531e8ecfdfb51695a73ca8291736de628 = 0 +dffc78de519d3a7fd8273fa4d252cb54f0cf4a4f = 0 +eaffc492088fb6059fc37b968d20d1c17e9934bc = 0 +fdf3a727a977a654eb750375188c0d83f01f6349 = 0 + +[30a7bc16-7fba-505b-b600-cae92896a3fe] +0de12c06cb843e8e7f9641660cbd5dd06f8c226f = 0 +3686fcdecd9e04a444de546cd4e497d6efce8321 = 0 +3855c912705f76eea1eb7a1d3daaffa5d3e156e6 = 0 +3e16605d91502266a58985f7c934c003d0df4d50 = 0 +9751b31f91a26696830a13935abcb124fb3de674 = 0 +ba613af02eed6e91782709e4a54eb377a7ce3696 = 0 +ea68f777f414acc3d9a6fcd2fb46a94b49e49b39 = 0 +ededfd60c9c500ba6c55b424ea1b5480c960a9a7 = 0 +f29e9c56fc3747487ec67c63550550363cbce380 = 0 + +[682c06a0-de6a-54ab-a142-c8b1cf79cde6] +0b191d9403efeb5939af6a4b094b1e96ca97fd8e = 0 +0b6e9ec6adf0513b72ff70a818cdda251281c868 = 0 +0e3647317c75f1e35b54a407bc6f9501ca765006 = 0 +0f038d90934897bd8c49d661dd4a74b1b9b171d2 = 0 +1082e64fef296c7ea5dd474e4d0be7a6145705c2 = 0 +138956c9d12652d64b683488afbcbfe461c42811 = 0 +14eecd91bccabed3074d92759e17ed38c8cf0ac0 = 0 +1ec27df85fca2e024900f032475cadd982f8f3a6 = 0 +20e99bc7dc329915b79d138e10800afa81afe7e4 = 0 +21dcd64409f249efe2254b385616237f00a35b31 = 0 +23b7f1537b0f600bc4a3a9b871e464609486c8e9 = 0 +28f07802e0eeea3bdaa58c64e253756d64698b41 = 0 +313ee68d0a2bd013b16f5a6fa1d4cf1220ae92fc = 0 +3150cff25b0891b1f164781c0a3a23700a43901c = 0 +34dcf31adc4c7850476421cb237b41c5b0e4e99e = 0 +36f011da3aa5c2651be8fbab25685dbd52fe9231 = 0 +38f4d37479fe227fd00a56a085ecd3a63456a36c = 0 +565fa448a345c62591c007916255ffd4c235fc09 = 0 +5d0ca41c99118c5b5b46bf113a27f14e038f7bad = 0 +600a40bb11f9c82d5a4590cb61de99460dd0f17b = 0 +6578984ae909c293031aa617244a113406d88694 = 0 +6df70b0542a2610ad738156cae344fede25d4ccb = 0 +6ea48684d47faebf97077c78bd923744b4987225 = 0 +6ef716aed7d5c5a7c1a8d5fd43f659961d019d14 = 134217728 +71763c297d524746136030891d9a6333d3c262a1 = 0 +72ada7aa839b4d1a341db83ce1315903e02d9193 = 0 +7853e4a6c4a9ddc3f651876c0c101aeecd6a77c5 = 0 +7e5027766e604721a3e6f94a9b747f4ccd0360e7 = 0 +8d5ad9b10e6c520149b24b37d187bdcd59ad81e0 = 0 +9ec3c1a873cb962d684ec375e32630c71ebdef66 = 0 +a145d09fd507c4f590d003606ae68a98649b111f = 0 +a36ec39a21dd5198f788fe8b1fbcb7ed058769b0 = 0 +aad2e2576ade268561cf164887ac26cbd06b0ea0 = 0 +b5599252cff9d7c8e5bd8122b22a1a625ac0420b = 0 +b701ad129d56527ae532e62213413c805dfc46ff = 0 +bec34de0e2da0de58a2fcd681ee32244edb551e0 = 0 +bed382e706147bdd180e48525f1ff00b5b81d5a8 = 0 +c325b6bce06023c92ce4c5d4f4db8316928eeb79 = 0 +c3e5515019e76e0ff000b26050ed5b116aa7f3cd = 0 +cbd9169ab3aef3e91b3ec60cfbb78c0156351841 = 0 +cfaaac36e827a64568fc417d1cd264151aa10418 = 0 +d00b5ca7d4820fb5ada94107e47e17b3762865e6 = 0 +d3f95de4c67fc7f18898b8de8eb3a83fc459f4f4 = 134217728 +d4b1a2cc4fa42cec06aec87ee9e34ada76b97ddb = 0 +e6aef7e5f73d358cf0ca4796d73d1a2a07bb6667 = 0 +eb65870a0842754a3030f709385ff0aee26d9693 = 0 +efaafb7fb9d97376540691f6db96913e7a64f80d = 0 +f0b8423c2a29724fca7346315a3653eb469da286 = 0 +f28c6e78a9b2af6c87a22cb03e7c3fbc6e98c7bc = 0 +fb33673c338a59ba3f00b0653b262468d60a58d0 = 0 + +[2535ab7d-5cd8-5a07-80ac-9b1792aadce3] +4d985ae078cc76db82806a531bef43921498f0e9 = 33554436 + +[c9a035f4-d403-5e6b-8649-6be755bc4798] +436520d133148ddb4264acd732db50ac086ab4f8 = 0 +645084951386b33670bb07e1e76992ce299dd6e0 = 0 +8be356f52d7809e8178a9df54ae5f16adc663126 = 0 +b3b39da497155eabb1d06213536dfe36c919af81 = 0 +c9a72548d905808416c9a0baf56f90fa9315a44c = 0 +e2bbb9b5672f76f21cca003f0126b2936d62ef5a = 0 +f4dd784101e4b57341540b20e2195d259c3e8fea = 0 + +[133c4774-c510-5f25-b650-129312f89f69] +2334381bfdcff48ecd183e29ca92ffeb587c8d69 = 0 +864fdce2c82c4f113bdf760da9e4dd19a6484589 = 0 +ef13817c52284adb704d122536769242a6eebfd1 = 0 + +[83f21c0b-4282-5fbc-9e3f-f6da3d2e584c] +8abc154e26e9b137558dd9f83170ec1ee228dfbb = 0 +8c763b0962a1ba02ccb00981ff9d886983ad6a8d = 0 +d215cdcc963e16ae329f426248840372c5d71e79 = 0 +ed5da8181c31ae2cb194d9e4b6569cad4c35994c = 0 + +[7de783dc-89a7-511c-b223-597fcba0cc71] +06582deba51e7568f15f1f25c390553559d98515 = 0 +090a73a0499030a7e9149e5f09ae7e59fa8a55a1 = 0 +2535ea6fe6cee4ab8b92ffa710eaa4650a82b176 = 0 +26d72efb27bee6b810ed9edb09a1a1204d9e73d1 = 0 +33751eb95c628799b8e1b0919554d6e8dce26f6f = 0 +399b7a04080ba2aec0cc15bf8e4cfe66e260ddaa = 0 +6d87343921f90e315d1eb4910c3cb9d8f6fd858a = 0 +7eadc344326feb81ac46ae8305231b6d9f77a527 = 0 +89fd37046b16118376d42f65dfe42deba5e9477f = 0 +c9de916bd6835a0f9460229193e999fe9a619940 = 0 +da0e492e30a111f120c2bd757297f84b994f9ec1 = 0 +fa2b9e3efaa437aaa363c393aad6ad35cf20857a = 0 + +[494afd89-becb-516b-aafa-70d2670c0337] +022fe13e4f17184e84da00770e57a2c064d7848c = 0 +06e211b38cd85cb368aefc299771f377ef36f8e2 = 4 +39e2ff935848f95c85817bfd17585563ec344a28 = 0 +4d5245b48f72ca0decbc94cbdd98dd3bd41cc672 = 0 +50c4146314e3b956ff7319f33418f3f2340e66df = 0 +50fed5f2668140569cfb1ba02ea3a2bbcfbe83d1 = 4 +5b3dcecd0c14ad29ef2c22789057a71d115d48c4 = 0 +69313b342ea40c8ccf6bfb00809b13caca72101b = 0 +7a5a7539d6a2f48b36ad0abacbd1dcc589526d62 = 4 +9717ab38f263ffc12eeba04d6cc1958559487e5c = 0 +a185470b73c0f0ff7ae4fa2d56a74fc58f61dc7e = 0 +a2661c72eef6a687c54ac4fa1bb93f59616885c3 = 0 +bcf31bba466af91d3394240fb49ca1f7b302803f = 0 +bd40cf5b0e77132b5e2ad561d901079533d3dc0e = 0 +c014e51b84bf1c17fa36000a8cc3564836139642 = 0 +c22a74c8be296704b87eda53bbbcd72e5b69d55e = 0 +c51dc07dd9c6ff89492ca718372bd41f9cf94c38 = 4 +cd8815b28a922d7d89701ea4fdd00ca666be4337 = 4 +e2618325d1183a2c15d2a365f043e7c680f215d9 = 0 +f609ee045ad8f47f5da995dc0ebfab24d1da2386 = 0 +f8e31f7afaae5a1dd77948b2c0787116ddd1d4ef = 4 + +[4ad6d227-cdcc-5a24-88a2-850b583613d7] +365879fa2b63a94a09d42c693604215d87f34f8e = 0 + +[d9fb577e-02a8-5914-b71d-b6b1f89733e5] +082f0b3f53e9e896e92e921b4bc9ce6fda4644cb = 0 +0d0990b870ce3434e019044047676419ff7b3237 = 0 +0eaa9220ee00ea2923c055b19838c21ac9a24ba5 = 0 +13de46bfc5c8139274c829807914c0bef81f959f = 0 +1fcd26b78993ad81ae241a53fb5c15580994f2f7 = 0 +21eefa28f2f13ecdf32d74465723a973545c2d66 = 0 +2d0d0a5fb2564103e1b25af474d71ce2ce59ba7c = 0 +34870d61f8afee30ca8569cf724fb3a54a5def67 = 0 +34be8d5814019711db06e5d9c165fa39396d6e56 = 0 +4d38997d34a762f004257ae80ebfb9ebe2b590e4 = 0 +4ec4215cc4a63674dde03c9e427ee4249a846350 = 0 +538957737b1940e187926305b48992383751855d = 0 +680f5a78a6054ac1cf41d6dcf82fd2df07fb6b41 = 0 +6b7c0e385cd7f676060bf94cd72522079f72faf7 = 0 +6fa75c7b2bcb7a89f2d0b693b14cafeaba5330fc = 0 +75ced33af7c418db157281a7e94243446ad5c2ed = 0 +97cb94be5486d71bb3d763c3a54a57f0cd26d67c = 0 +9a21bffc69da24de8d4579387387d58b411872df = 0 +9dcc274fe690b8ab4f9b048f55866d9b61e60433 = 0 +b0e8c184f57e8e60c83e1b9ef49511b08c88f16f = 0 +b1107fbc088ee1b7ae0b15ff6c2360530a04a63e = 0 +b15d248470da3ab22a7bdaa6a3793fbaaefee62f = 0 +d43d9919c5b44459fa3080ea1305a753ea490d46 = 0 +f565dd42fa31c369fa118c8742bdb873ef872952 = 0 +fe5e8188339c1bf62fefc357739ffcb27b6b3302 = 0 + +[b252259a-9f4f-569c-ae1c-bb8ff42e41ff] +07c73bfbd44021f097590685d85ef6eeb4ee5e03 = 0 +1464fc0ed0a53bf754ac9f845135133792f98c4e = 0 +2b81a392ff5303d12b4c75cd34f36fb25c1be91b = 0 +30572ef59a2ef2ea8a169ac3a126488e317d4db5 = 0 +42e1241d8aad1e65c93f8c7e1e5b4a4d3b31b933 = 0 +4acd2f67d870f4def25a0b641e3466dda74f3742 = 0 +4eb8eb50c68fc4cc82e69c08bcde171a10a70ba8 = 0 +564c92fbc96f1d6f0d4c8ada36557a6248346942 = 0 +6558662c47384129ff5ef52d064b0bd3c712679d = 0 +798e943b4fef801f4fd74d98122390f61c6e42fd = 0 +a487f1b1603992da1279776f7896e158f042743b = 0 +add7a180ac419e04e943b4cd92699cd7ca75a4e4 = 0 +c19bded6df0a6a00540b0db112ff405266e29c81 = 0 +c2d0f60b632fd981dafdd43f5a74238bbec6a930 = 0 +d6f24aa341f37b2b392c9b2e2e119996ed6382d6 = 0 + +[945c410c-986d-556a-acb1-167a618e0462] +5ccb3ea7d8cbad801994c97054ef2e077b340878 = 0 +61adc07e8adb61acb00db944f9334a4229e3eb97 = 0 +6a795c5ae2a4498081d8b4c689e95f79ebbac4ee = 0 +777db61242216a53a12051f0a2abdf1f4ed7880d = 0 +7ed60948798d22774c502e09e144336d4fbdac90 = 0 + +[4076af6c-e467-56ae-b986-b466b2749572] +078a040114c76dd79ab21d62db3ed622d6a441b2 = 0 +0bed3704dde263cc3c010daf591e2e7f6702c3d0 = 0 +1ea87816135d76a05d8cae09164eb150d0e61d52 = 0 +4588045dbfe47f3d7eb87b41bbcb34682b88d4ae = 0 +45bf62e187852b8f707ad959e0586c075a9b377f = 0 +5735b54e98cad041af3606b2b1dbccc0c573b440 = 0 +79e9753692968034be0a1ca27331e5a1774611d6 = 0 +8b3074af0c51cdb12c9411e9a71175614bfe2866 = 0 +a0b5f0d18de6dec3d6d69a4daafd033ef0387cc2 = 0 +c89327dc85ef0e6989e4200bf1e475094542a088 = 0 +cb9f85a6f5d2f6e8de1a3ed656b10fcf50f81222 = 0 +ec30d38cc95b6f114ea136972920000f03834657 = 0 + +[bbd82366-0c69-5eef-bed9-5a0dd17fc720] +3a94d4b13eb78de235ff42d51f9272c509c3cb49 = 0 +3e0c362b4bf0bbdb3f0092f8538764ba2f08f449 = 0 +5366565f92fd4e2ceaf383fb3e97896dfb8703ab = 0 +78295d9e33d8e1f17daaff761aabd0e1d45b511c = 0 +8b4d3628146672d1178eb1fb0b2050b0a0e4ca4d = 0 +bb3eeae00e3ea76bd3208be0eb9ab81509b17e28 = 0 +e18c69520e7c7ece521a15f84dfdda007df8f2df = 0 + +[707a9f91-dad3-556f-9594-9b9a3b777385] +abcf0a6efa08ac97311737fe0d43bfd21f44754d = 0 +e161a36abfd541926db9d7591eb6e3ae6ec9bdc4 = 0 + +[a93385a2-3734-596a-9a66-3cfbb77141e6] +00238338701bc9da28c32846b3dac36fdab82b9a = 0 +0a777c5409af05ff660a3a52d3861ae961c2bc4c = 0 +0fa634c20bd2800b8bc492e7fbfbc8ef26438931 = 0 +1774522678be5f3b94744a76b50da38ed86eccff = 0 +1fc18d1f58c891eb19badfc734019337b1148f85 = 0 +2961426c2d5e85e0273b72ef23f5cf8b8ab37e49 = 0 +43bcdbff8989e6f68a88002e4c6956b8ee136bd1 = 0 +726b09adbf6cc21571b3d58e6abfb10ef9a6d20a = 0 +7725937798ce46dba630b7cb2f5188a95be8163e = 0 +79312a930b34f1ef0b2bbd17c36a085810e859e0 = 0 +799005b566f5cc7c85298af6d93ed386ab143aec = 0 +7f3ccbeb32622abbf2d6956fdc8aebd63678967e = 0 +ad7cd0f529d20588876ca225757ed2c3a34cd4b1 = 0 +bcd14df0e86d79a8f146e24ebe83cc013362f112 = 0 +c22c2c22793faf422cb57582557239939a4688c6 = 0 +cc59503e9dd1f417f76e0e338fc0dcd115fa14cf = 0 +cc63236c7799b7e6fd5e5137c1ec776439eb6609 = 0 +d5a82f1de40bfcd1ea7885d3e14d2e0a848ec6a3 = 0 +dc7a048083f4672a9861ebc3b822a8ab2d51dcc0 = 0 +e301faf0b0c45d2e9c4f6d6d808b3d6a53645003 = 0 +e39ff72a5da023280bf0652fb17527d34088599c = 0 +e6cb1f30ad8a4b9988c44aae5a57d128813c8c09 = 0 +e86f56866303e1452a971fd041004ffa3508f046 = 0 +eb9204729ac9f3fce5905d57ce1f25c3ac5642d4 = 0 +f32c5a54dca43d14f04cd2c73ecb182bde0382fa = 0 + +[f80590ac-b429-510a-8a99-e7c46989f22d] +35307b12adf9465cb942ddc7e1da87108c7bb575 = 4096 +3e8fb609e67ac8213210238aaccbcc2475ee7531 = 4096 +41796749ce35e04ecd0f610d075ae50ed49eed41 = 4100 +419edd97c825a3a5bbac62d55fb6f466d163ec6c = 4096 +6e467691f0ca1faae24b2fb723909f75a80512a0 = 4096 +6fcba926d0fb1d2d86007a9388e1dea67809be3e = 4096 +b950ba312aacb5b19479bb6f08c0b4d8cea46f3e = 4096 +c307c1482cdf094efeacf30d09bd4531243c9323 = 4096 +d7bef419ed4946671f53fab17a4e532ce021cf93 = 4096 +dc75cfda0363acfafbd2d3b000ff5158c8661f86 = 4096 +fa8834e9e51113c90549a287de40fc05c133affb = 4100 + +[e742bb3c-81eb-5c15-8577-c54658a6ac7f] +09d01d0811962406e62f3e46ae1faf04cc6a147a = 0 +a65c107672898cdcde582c5fc164884bc74078d2 = 0 +da471b7bf9314acf42cf7d350b415b5cab538ad4 = 0 + +[53f79dd1-e2c8-5df5-bc78-22525824e0fd] +0495cba1cb3dd307067c99f061c5e0f788b332a6 = 33554432 +1534dbe8c4637426b3b89d3ff3b83c18bb1bddcb = 33554432 +1af95e78f79e090b108da48369fa33af921d1173 = 33554432 +1f30945836a9e8063f02e250d92b46868f578afd = 33554432 +214cffc716294174921598cd7faf857d4bd57d09 = 33554432 +2f9db8fe21463b8cf19e98df556d3e71506245c0 = 33554432 +33b501f2b7def9bb057f5ff88e0e0c099ff1e42d = 33554432 +35181ee10379006fdc1137044cad6ece7e81c8bf = 33554432 +4b7aa68144660d68e68430d22bb818bc01e947b0 = 33554432 +51ec76163936e0b4ecf39e46e63fa5ac6c2842a2 = 33554432 +66521012732ea2cb840d71b562a937ecb9a31d3f = 33554432 +6d1ae2b5c889c7651aeee44d683161963da53bd0 = 33554432 +6ef8246462bb2501a7d493071da212b286c3b90b = 33554432 +937f4305bbf7edc8365a66f6ee0237483d82f634 = 33554432 +aae4a5344ee16de739a4a2624ac0f8afae515f8f = 33554432 +b9da3a353bc0d0079d40db49c6b78b4458fe9bfc = 33554432 +bfc72e552ce0d30bcecc1b989f909be8ce99b595 = 33554432 +c069310faee6061f1ebe8e404f3258bc32d058df = 33554432 +c4307a82d10e857fa1af1e6bf4608bbca25458d3 = 33554432 +ce9e99484254b9d6c24a5eba7bedf028b497aa64 = 33554432 +d02dfa4e09129d96bcdf03811bdefad8886082bb = 33554432 + +[480116ec-64ea-5dec-baca-db6b11e96e37] +0dfb0914c10bbd8d54fe87c6665289b34efaed5c = 4096 +12fad944dd723f45f11942d325fbdf996f8e8561 = 4096 +1dc4032b25bc79aeb0111362b15fbf5d6a61c813 = 4096 +41cd5c1f2ecb6a038035749960518e5098be83bc = 4096 +457dcd1cfcbef4b834a3f19eaa1560e74871e124 = 4096 +47e9b3729c04b05a3b3c63d99634422925107cda = 4096 +57ffdf647afa0eddb5ae1aaf516fae5f505d5d46 = 4096 +9df6ad8fe3d9b05382db68d3af375bdfd8edd0b0 = 4096 +b128b8ff503bc12585432f25b76c5a2d11c0a812 = 4096 +bd94a992d40d2e535abe751f9566e28b0cdad07a = 4096 +c1c03553b3c28e48549a7a337128fb2261989b1c = 4096 +c62deef9e8725f8d73d093f366e574cdc38e499c = 4096 +d29a46d30ffc13825ebe16f7ffb545fccf345675 = 4096 +d2bffcd2877b9337e2656eeaba747624f41e9a96 = 4096 +d9a5d49da577ab0f1d1a33c4a8162f90a35f7799 = 4096 +e5dc0addfcb33539d72fc1a904b6e5df5188de5b = 4096 +ec63f7ab23b1573c921e5569e52f3ed01276e31a = 4096 +f9d31c313bb399ae422fcf2727f42d4a15f9956f = 4096 + +[885aceaa-7568-5b56-b2d4-116a98ea4ee1] +c7be580ee0c7af07fe11f288b17a342d91436f06 = 0 +d9b11b4606008ec40714040654205d968db8c598 = 0 + +[5cadff95-7770-533d-a838-a1bf817ee6e0] +cb0d739ccaec3b9914bc10c51204b892261210ce = 0 + +[2eb9e3d9-fdc6-5d3b-abfa-b97b7f8e5896] +8cb10b52a6acdea418b42e82fe5acefe3e4e6ebd = 0 +9b21100e60ff4e28eb2e40e2ed4052500c6479a6 = 0 +a3ed60fee75ac3467f283ac63749628c70020b52 = 0 + +[2ddba703-00a4-53a7-87a5-e8b9971dde84] +3632fff922519d6599c46a4a893a44e9c8b71a30 = 4096 +d863e5680a855de11f0b028d1ab500e3fbfe4e4d = 4096 + +[e5e0dc1b-0480-54bc-9374-aad01c23163d] +0492a9ba0699de6192ab7cf5b337779de06f549d = 0 +08f11fda9f5e5b340ac96ee78dd5d03d3e49184e = 0 +18b8b190c7d55f61017a4bf1c527d15d615d87a2 = 0 +64cd2c32b2bd98f8e56aaf55ebe0b76f8b631f34 = 0 +64d733f5fa17c80c6e15867cb72ec7a9f2980c1f = 0 +913f6c0cf9fd0e4063f2d1af27c65a060941ae4c = 0 +9e8118335cc92b01a704b88c045356367c0ab7ae = 0 +a076c6d5c3c64d624b96e8731739ffcf271f4432 = 0 +b967b69e116ad0fe2c2b3e2207f4dc43dba45706 = 0 +bbde5558ca0b329ecde15e580ea977838f20ea51 = 0 +d978c5ff3d471dffadb686a4960a9460a2afef6f = 0 +eeb9c84295d13a9a1574c7e29b61d1a15645aada = 0 + +[82bedeac-9837-5b62-883a-b5b3b7c811c5] +194a38746e411e2c25410bd43dd31139d97e22c3 = 0 +4833b707f9e11ee7c47f243752674ae1f3fdfc93 = 0 +8e3d0fa0da20e05edc44f313549c616d0c1648de = 0 + +[fb0b9bd6-a79e-56fd-93df-a55af7a092bc] +37ff0c231ddda5d648a76d5cf75fe6b0c2e4e64d = 0 +5976bbfcc5094ac954ab5871b5004dc10ffc2d26 = 0 +f791c9e05a564319b4f647bdb9e6ea7e487cff0f = 0 + +[e49e52ff-a044-5211-b256-ac9cd8f555d3] +172f02bef07a4dcd6ab6a52c2b208ffd64e9c937 = 0 +175fbcb051e1f84fedea3edf02df0ce322ceface = 0 +19c74cf2116d5656943bf6c475d5fd18b1ae5aec = 0 +1a307e8e178b7afb6169f49c82a7072fc8e0e053 = 0 +1d0f4b5a75d5b67098429e1c87492d3f8c8dfa3e = 0 +1e2060396bb5f92c4a3c7b6c4c832370659aba38 = 0 +1ffbaf7095119329d5b869327b9f5c67febe7a30 = 0 +27dc271e6c60019687f1e5e3112aa52143c370a2 = 0 +2cc2442ee5432f9b435803d3f17518a5faaf1354 = 0 +319a555b98be74ba1cf6a57f0f4470ae3cafcaa7 = 0 +34f6043b1020962cce8e6fc36d0a3945beea1e6d = 0 +543d024deddba3adae66aa7292c7ba9025a0e4b2 = 0 +62ab5b3874123b59db05d3fcc792c2cb0ea21ca4 = 0 +70dd902f6e652d1b1f4378d696b8f69fac63eef0 = 0 +82d55c9213d6bd3aa35b59db32183819ff2a30c2 = 0 +88fa09aba0ba8f4946c4bbf2d4036fb815ebabf1 = 0 +a2476f3be0776a8061237ea572e40d07c10986e6 = 0 +cbe27f91751060e608b4c8417d1220206ef81a24 = 0 +f540a252f8824f71d2df77074a3792ba2420098e = 0 +fa94a5558826df32cee40f833eb88c2c4886435e = 0 + +[67920dd8-b58e-52a8-8622-53c4cffbe346] +09b996a7e8ac8c05e07465568273cc963afafefd = 0 +0bc38d0327c5806185b955f37e14e53f3ada22e8 = 0 +0c8a83466ff1758be993e4f48000bc58360ab17a = 0 +3a252462d6f3e409166893d02e184b8c45b53ece = 0 +516b42bb8c659b7a32cf64d77cd64bf096e9f08f = 0 +6465707e35897ad91ffa06b8a7a01b6eb3a580b3 = 0 +68b726d2f2869e8bdf32ca872db987f59adaaeef = 0 +856f88f8fd157225e2a230676edda9a10d93b575 = 0 +8db86ed8f2ba174f072e6bcb8809dd45fafd9152 = 0 +988ab63b61a3a186b762f312af27d66f9f40e701 = 0 +aad1670b508152b58b56e82c649a3c04fa0b56d5 = 0 +afe73f0bd3c60910dc0cf4f58a851a4689aee793 = 0 +cccfcace2951c6feb050425345de64e07a779642 = 0 +df364a8ac38a8132cc2c9d47a1dcd1ba9f25cea6 = 0 +e181c519c32742421d4061078240a38e6fe1777c = 0 + +[80e3a25a-59dd-53ce-a95c-a94c81a42368] +a5ee909347c20c191e29bf8d6c080559c656515c = 0 + +[9b14a902-7c83-54fe-9277-9fa23d4e9d1c] +2ba28fe08a7889cc9028fede55447ca7c7c2d3c3 = 0 + +[ead98f13-3562-56ef-8e28-822b2114fc97] +a355ae578533dd7899669ce528d46e81e73b6a27 = 0 + +[8e2b3108-d4c1-50be-a7a2-16352aec75c3] +a4e6dbc41a3e36f58d8f3218d23a1ad86e66b2ed = 0 + +[5ab0869b-81aa-558d-bb23-cbf5423bbe9b] +182ce2b00d831f0599674730050913f92e624c62 = 0 +2de1e7bae939d923cbfd4fb000921aca42d1a6fb = 0 +48cfa6aec1acb6de62b2aee547281293a298eeef = 0 +948fecdd0b5f669cb3b214f71d5a47759978071e = 0 +a688cebc81cea8c0b72a5db7eda1c3472d7a6fc5 = 0 +b2c9f7d6ba2d8c581f0390b07bb661841c031635 = 0 +bf4191d3eeada071d308b058c922b2aba6aa4003 = 0 +cf9686204ff5d1d3f129d4d9e50c69cbb9a8bb02 = 0 +d7524fffdafcd114b4a49c974791b71a23f2e138 = 0 + +[2472808a-b354-52ea-a80e-1658a3c6056d] +0131fb0cb53eb1e97092f1f0c23e98ecc381bfb6 = 0 +0df89a16007553324a87e03702ea6503760fa252 = 0 +11a28cf8fcfe3a8fa15d5f0ccbbe9f34092c5965 = 0 +2deea3206f392b07a1e6b1b38fe9cc1baf770ec2 = 0 +4fab1d22dea7ecc08deb52a41005f08ddf858c81 = 0 +5b8c261c6f3c0485661ac24c60ca0fbca333293a = 0 +6047a20137d1e87bfefa2f04abe0654195fcd56d = 0 +74f77dee7fb077b4531b08eab4ccf1647bed0c58 = 0 +85fb606d2729ddb9db3d3dc11d21eedbd39326eb = 0 +95823288805910a9e869c6c300d4688593ea1ec7 = 0 +bf7e7bd7308dde115c9f7e03ddb8e6480e533cfe = 0 +bf999459c928c4c9bb3089043c836b48fa1ad8df = 0 +c9ede5d2d0b66a7a6661bc69b70b2ab2443b440f = 0 + +[c43967c8-f634-5d24-8eab-2867546b366b] +94b0ee57f475d52238620ea2fd346d66db4a7292 = 0 + +[857edff2-01a9-55ba-8bc9-13e46c0ddbb2] +04c92b64226d3d77232af4ff071836ee3de95a5d = 0 +0c6fe15c3f6bb71e6f60886cacc820d2c1504eb6 = 0 +13f06bf843b3b37a50a241dbac95073161ff2817 = 0 +80343a88e358a85cc93193aa922c1db642a51e7a = 0 +b6bf941dbc9230b1f1866428dfa8f80b0ad7a440 = 0 +be0402e5b6f6cc7d3c703cf0c40318524ee46207 = 0 +c8254f7746ae73473c0951b78db332e518a39d26 = 0 +e869c812ba2e90dfd3965e1a8d3a012677e78605 = 0 +f776585cb8751147048ef14c80976551992502d3 = 0 +f7821fdda02c6b75407d8cd79caf12ceca861b27 = 0 + +[ddd84059-9b64-5d1b-85eb-da48df743e32] +b4ad84ca5fde5f9988becd2cce58a0c7549d60cf = 0 + +[25c06242-cc58-593c-a204-a17bebfb33b5] +51258778a30ea064212a28eeda7bab86434264a2 = 0 + +[1a8c6405-7c80-5152-b09a-939ccf02cadd] +329566393dde471897922eeb358674586fdc81cd = 0 +39e48ac509132c11e310474364c5e5132680fffd = 0 +4280cb483530c95ad07d5f13e22f92cdc37bdad2 = 0 +48046a816a0f915ce6e25dac66682db2c875d5f4 = 0 +4afbfc1cbea42349e090daddc1a02463607e0f79 = 0 +64ee416dbf929ff3f5e6cf2fe963eb1ddd5bf613 = 0 +66793f08bc17e1bf6436ca130ff8f107f5a247a2 = 0 +8ea6f4cd140f1f24b1473bc31a463c903c7f22bd = 0 +a51b3788bad1b9b7d97233e67aa79cc08b186e12 = 0 +af6251c5d6bb353e73b4ff8c9e2204e11a75bb45 = 0 +bbe8b28d70432c3c2dd9663029c66459f3aadb81 = 0 +ccb5bea54e1bf5c34290835323ebafafe4a51710 = 0 +d1bfefe8c20881685425dca9796bc8859aa78973 = 0 +d3b9bd759ced7134af409ca0fb621a73acfb6cb1 = 0 + +[1902f260-5fb4-5aff-8c31-6271790ab950] +038c46a4c016745a54123e34189aab642bf9356c = 33587200 +2a2cba3062fa6390de59d1b196579d27bfe8fad9 = 33554432 +48d49243ba196681e2bb956371c74f004adc4569 = 33554432 +8ea130e8403f2bed37101da2834442c4a4846a3d = 33554432 +8f77f85929726a53ec978d0a97740e39d789802c = 33554432 +ab1ae23baef74f4feab6f455f90b1d36204674fb = 33554432 +c9556d487f8bb8f6051ede86495bd694b8276b49 = 33587200 + +[6133562b-a8e8-5ea3-954b-37642b766dad] +0c6156b25533a54dfce320ffee41bfe0ee22aaa6 = 0 +1fb5c1ac3a209cbc44a742927a44ec985fda7d83 = 0 +50d2c6ab6b3fba784fd2a8f6f18c7584dceb6e84 = 0 +e0951ae8ca2504d50e6b515c2fa7df251f6f8c72 = 0 + +[9a2cd570-f05c-5dc1-9209-93ad6f5727f7] +6b468204f314c9dcf19a54fefc5a8432fb82a5b1 = 0 +964bca6c9ab389b7c5bfa33f5a9c943dc54901b8 = 0 +e2f9351e74ec6ca44cb811e0671d010eee406001 = 0 +f1a7d20e2175f89c171ad30546f66a0445aff02b = 0 +f1e7b8eefaa84248fe968e924bda798291542a00 = 0 + +[978d42fe-2d73-5cd0-af12-dec9c7021217] +23ee3a39ad6b6d2cd96c45bb6fbdd4d0d8aee01d = 0 +2c8e61ec9ec85e940d2867259478553fd0ea8e07 = 0 +6fd733ce03c6159ea08137754e68c3f33cbf82c6 = 0 + +[f5cc2397-9d3e-5971-afd7-e1f28e1d1eef] +0b3b60f5288235a47bfbab07608483b697a20f38 = 0 + +[09519885-d2c1-5f68-9f99-0bf084a786ec] +c357c03ea6138a51f61584d846a3d758882e2911 = 0 + +[94167541-0a4e-5fbf-aeea-474b87c587e3] +19d080b0416cd7601fff18b380eadd6749a29c43 = 0 +362012b0ba26725a38d033c60b3229fa1a163244 = 0 +4f2973ab8ec916a395e07ed7bccf3b2a0216c06b = 0 +69104f08b469c42e020f56a09d210a749673ea3e = 0 +78750b4d28eed216bfe57a2b6ecbb6d93f125af9 = 0 +85d726a7f4d2fa9f3c83dbce2a71a0660f8aba0a = 0 +a943ed53b588dc0698adc0aa71518197787efbd6 = 0 +add699785a261b979978c7d12861a021de24cbcd = 0 +e59b4afb7264976423ffe0fef31b37ba872d761c = 0 + +[0ea44823-1ff1-5b9a-8293-5fd55a38e746] +5a48f1108ea3e115e46b46b596c61a5dc06d1a2d = 0 +78b4bd026765e2436e2365b020fb6f6a393d9f5d = 0 +8339fd6ede2c0a830920b74db88b03136ad2efcd = 0 +85a57d79c23f69db1cd6620b8d3e1c5cf6117538 = 0 +ace8e39274058134978298ffbd1b509ace467a32 = 0 + +[b1a4b0ec-3354-598b-9ba1-60d5189d7354] +36d9d3ad03d6e7b36085e7dceec55a1cfe4a0621 = 0 +fc616a09f7af93d5131d92543f970023803d06b6 = 0 + +[2d691ee1-e668-5016-a719-b2531b85e0f5] +1f3d5b3b252069a1627b6e3446edcb26bdccc5a2 = 0 +618b1609ed3bbd44ec685092bbc2032c09d1de98 = 0 +6bf719464a50d7d80dd612969cfa6ff08ccf708f = 0 +aef30d3409478169c9965d3ead1da696f423800b = 0 +b4a63b37ce9b4048ca27d3de1d80b63485ae3a8d = 0 +d0c5ff1892d12587c0ca3aeccc6dc6372c3d0f32 = 0 +ea446282f1766208e4374942db88c72a05b835ce = 0 + +[b1bec4e5-fd48-53fe-b0cb-9723c09d164b] +68cf7c483c678417acb0eaa3bbc6ff7486228393 = 0 +79d51ec03a53cc0683620b64fec0b5ccb3be2999 = 0 +c99d4875190ab11676e5c440c856a0c6f02c61d1 = 0 + +[142c1900-a1c3-58ae-a66d-b187f9ca6423] +5988d3b8fb4c70d7cfa365b7eb984603eaefed46 = 0 +60f90cc17b6279adda9c509202a040b778895eef = 0 +891ccc7af186ea702ac865e33e552811856e4e76 = 0 + +[929cbde3-209d-540e-8aea-75f648917ca0] +07ab967defa6051052f45988f9b1c667f8741d9e = 0 +25e8e956bd089eb6ca9409d5e8afaf6a463368af = 0 +3d993b5b61fd2682aa581539f4b86eff94a1bc99 = 0 +4da763814a55772eb5bfb5b3a3d1ee8fe6b89eae = 0 +59872992e4a020fb55294235cbfe374ed2d0b016 = 134283264 +5dd80230927f25e9e2d3d14282921e11423e335b = 0 +6978a3419490c0351813b857493d62a30a8a17be = 134283264 +85bdce34c5eb7ec0ed05901e67b4349a3d455eee = 0 +92113761416624cc1125dad0f492a848fad81c9d = 0 +9411fca058cbff0861ffa281772540706a67db9f = 0 +9ef8150d38b90867e9bc69478427166ea1fbb84a = 0 +bf66a6cd9a84b99208a0358ddb25aafa65a5041b = 0 +c67f4c19e52ca89553ef80fec67700f613b7424d = 0 +c6a03ad04b197551623bb33230fbc5f4344f3f66 = 167870464 +d867e47816fcfb1c3a841bbb802377951b1619fd = 0 +d9074ad44c2fedbd5a608237e2534f29edf81fb2 = 0 +db8a049df2650e36680ed562f3d61a4e93c23778 = 0 +dd3a7aca639bc20867cd826d78a8646eaf6bdc2b = 0 +e035742e6b60908a3bfe9a2d2f30ddaa991a10c2 = 0 +e434b172ab8972fc8d87a9ee053f5e74be28525a = 0 +e978d70b04ea82fc62bab149cb1812303db37f9f = 0 +f4f802581658f2a7d6810a195242b8bc93c8805e = 0 +f5564877b1620a943d966a4eb3c3a21315f527a0 = 0 +fb17dad3da6cc28a9b99756c5b19788dc42346f7 = 0 +fdb1a8fc549a307c105948a6514ed159444f59aa = 0 +fdf71764f8f4fe6665c9f7e926dd9e38f37d2b55 = 0 + +[11f193de-5e89-5f17-923a-7d207d56daf9] +57a2df614a3df45b3beb9bba5159f2f5642d2c3f = 0 +6a7e6f352692a9d4dc0d3d78ef525d1fbfefba57 = 0 +77dcef4ffb602fcb22ded9f91ef00d054a6c2e71 = 0 +9ff95e322e8ebbfee089f18e05d299f8a2072353 = 0 + +[7c4cb9fa-83a0-5386-9231-d6167c818060] +22625e0f25ce299b7bab9b1fb20d0a8dd2266ecf = 0 +8d0d48e069437a351fb29e5c323c3f1de13f8c56 = 0 + +[26dcc766-85df-5edc-b560-6076d5dbac63] +3a2d546564db5d2e34c87cffa3a6b36f050dfc1e = 0 +c24830181d339bc347db1c75a6f571edb8791b5f = 0 + +[262c1cb6-76e2-5873-868b-19ece3183cc5] +2617deb25dfc737d986de50e2ca17477de7b703a = 0 +3f0caf4b378b7951ee76d91d436ee958d1d4840a = 0 +547753ffb7cbabe9eb6b7591d20d031c0d5e2b09 = 0 +810919af3bbd56ac7f92a631902bff14d6dd7fa3 = 0 +c1f6000f5c37d25a4956d9b48222b24242a7d153 = 0 +d1b0a9cb485403435efe482693f18d2ea5821b77 = 0 +e6ae11cdded2e690d84d0f2a41a8f6f77741db2d = 0 +ebf1d4f1a9fdf04c39635cabf3626c6f98f59abb = 0 +f45f799aa199d18361064c6086ffb0f4f1bcf229 = 0 + +[8ac3fa9e-de4c-5943-b1dc-09c6b5f20637] +42aff30f84e552be716eccdbc0c994338fb05808 = 0 + +[7f56f5a3-f504-529b-bc02-0b1fe5e64312] +1de71015c99096977237084b53bc38d0d6e8806e = 0 +3c05d387c8ddd63ba87423ca6e895b62d3317c58 = 0 +a725621f49f45639353686ae7aa626361d05a855 = 0 +d97a23d85b91cecad693aa8dd26696e7db8e778c = 0 +fbd005792e5623c6df32a85900f9e0eedf10dfb2 = 0 + +[67f030dc-aa52-5f83-ac42-e4024659685c] +337a8d05fb3ac4005452afc68cc9c62a85574462 = 0 + +[8fc9afd4-d406-50e7-af9f-060f3f6de630] +1bf9c2d1c49149aebe78c008b3f0b4e1e75213f7 = 2097152 +434a12e7ee22583177eb2d01e9cad2120f48eae3 = 2097152 +6b84ec9f33f29814ceaf37bbf50bbae8e04d1239 = 2097152 +8ebf76c8adff6837734ae8884e455d61bbc0c5df = 2097152 + +[b964fa9f-0449-5b57-a5c2-d3ea65f4040f] +4116883a8ec408cf18613bab05efe917859c67f5 = 0 +7ec8862852d24f5565f5f66bbe8496604b3cc8fd = 0 +8cc93a15dc605d0603d846a72563f3973e7b8120 = 0 +9a4b852484ebf9990fee61b47fd5031dca3a61e7 = 0 +a72f380981b68fb89f70155b3aa8c6e2df12f88e = 0 +b31efa2acfc044f8a723de9879d2dbb280ad94bc = 0 +bc33e18dfe249c54cccbbf81560ee18f19515803 = 0 +bfedfdc93bb7e9b24944072f6015f8bd37ee53dd = 0 +c1fbbbf27395d2354c28c09751773667ca67bf69 = 0 +dd125f94f9852219ac31e242f4f1a5998c7276df = 0 + +[2e475f56-4567-5c41-94ff-3f69a29378f9] +11766c15b00da3f9c1941a2d0144010b27d247c3 = 0 +2754aecc02bb3de77b95ff15f819d23c073b5669 = 0 +d521139e586b1ff80e2f9aa333c79e62221f1995 = 0 + +[984bce1d-4616-540c-a9ee-88d1112d94c9] +0d2e3956f623cb2194e82f5f650413370743d429 = 0 +1da8a85fd3dbf5fea7ab579f1a6c708fceca5db5 = 0 +5f73b77611f7961f102c2a82bfb59c3459bb2309 = 0 +b0b60588c7f2fd26c5552f1b4a263e8a27c35bb4 = 0 +e5af0dac24075d65c48b6924116f9b5791d24721 = 0 +e86cc55fc38e63d011008981cdccd4c05fe1524a = 0 + +[2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7] +17f606b3a23e117cdf77b75c49f1c9731366e28f = 0 +1d17204b1b2cf15f2289d3c3190d419941ef4ce6 = 0 +21bc9e9dacba4d607ed686de49adcd3529fb9f12 = 0 +4ae5fdcdeb9413deb9a2a7787b22c03e4362d93e = 0 +82356e2f45005d63439fc3ae2338dd2fd1331fdc = 0 +b2e5208b2488c3544de6b9aa4c1725f3b2ecdd35 = 0 +b373f99f52dacaa640eb519757a9fea01edd0f92 = 0 +c37b7a7846e13cf20ea6ecc962c7d2c9d1562938 = 0 +d530c399b9bc68894e30f55199ba633872bab798 = 0 +ddaf44350873ab86fe89018e383c2fbb6efabca6 = 0 +f40bf8741fe0fbebdc6e1d1a2578a652b5d0088b = 0 + +[8ef0a80b-9436-5d2c-a485-80b904378c43] +1a333b0ccf8850f7a7fffe51ef8f4ca56f9d531b = 0 +485934ac04656a1e16ccd6f4a40859fc3d771249 = 0 +d3cff56439e4aa1509383527c77e42885a946fb0 = 0 +f26afc506ab8887565d706554246ef616fc7a19e = 0 +fb70b7915011bf483a35b1790e8f26dc7469f715 = 0 + +[6f8e5838-0efe-5de0-80a3-5fb4f8dbb1de] +25929b6dbf5cab93c1d4d7a17410d686ea09ece4 = 0 +311b4de8087e1af2cb59171d6bc82b40acfd4ff6 = 0 +3c259368ce6348f59389e1d29b13ca837dec8cb2 = 0 +42b6565c7bf1184ff6ff0848948c3827e1fb891c = 0 +6137bf024e1b8edd3750568ac225e98b12052156 = 0 +77a3d10a4338e354253c2b22b4826e37a1c61eac = 0 +88b46471cf543ee01439395f8621af9cda32dc4d = 0 +b587c0b5b77ad076a6308362d865b0562017dea0 = 0 +d007815638775004251829447fe2410f98103b70 = 0 +f0284dd1dab25976f3bd7fa626dd6372a41f0335 = 0 + +[570499db-eae3-5eb6-bdd5-a5326f375e68] +2c7a16d1bc81c979c91cf01f4fac14c6cb4cae03 = 0 + +[b4fcebef-c861-5a0f-a7e2-ba9dc32b180a] +118aff2daa43ac54edc2d55fe69dd5f7602feec6 = 0 +1435f112b01def833a57d995b0fc790b2e5fc4c6 = 0 +178990ea058e2cea08469d5c6c4af286ddb23ee3 = 0 +74a3bcef8a0fd9f2cf8cf6d0128fba8e849d0144 = 0 +751bcda67d4d27deaf9d056a19c19c92c852a357 = 0 + +[23fbe1c1-3f47-55db-b15f-69d7ec21a316] +055912a4cf49fd24e5635a73984bafd127a7a557 = 0 +639e1eb57d0414a53eac93edada726065e5b2aef = 0 +6eaeffc84c8f344e66bb53e9cf6ecb310ae09cde = 0 +8080774c4518cfc6975d6a17bd176d3d8210a5a7 = 0 +cf53951b89aed678aa20c0dc1bae69dc81986aa6 = 0 + +[6f188dcb-512c-564b-bc01-e0f76e72f166] +a1880ce684f9b6d423f9bd2b6666a64ba2dab123 = 0 + +[50d2b5c4-7a5e-59d5-8109-a42b560f39c0] +03cdf7cf6fee139e835400a94a6ceeac945cccc6 = 0 +0411506ad88002a7d2dbd580e10882cfbcee6458 = 0 +0e07c8634db260001caa33d601c4afb6e83b9fbf = 0 +18b5c064a44599d9aa05f4b89fa8321225499bec = 0 +279084787b769e6c32492069dc83270e1da3697d = 0 +2b7faf2f7a8b1d403873494fa2f294b944bca4f6 = 0 +42b81abaf56c29e2f42de3ef574d864b822749de = 0 +4852f92ad62cf9df92315490bca027a3a072bdbc = 0 +5080c4b63bac6fd75d84f2a202e99292d501ef57 = 0 +5252f875e11c47190ffadc317846723b061d7be6 = 0 +5261aa7cf9ceeda693ffec583643ed3e65eab1f1 = 0 +64124ae960a0249ddaa4a51f821699bfedb0232a = 0 +64acced51b9229bdd5cd7d4c7aa4a7291bf80287 = 0 +670b89a895fd56601784c74117a4139238a9df97 = 0 +80370602151e7d3b8bb64e9b111d6981a1e25409 = 0 +854e1fc3c489827f8177ba742220f27aaac13fdf = 0 +8709dc3148d41f3bdc835408fc316b3db1f6e5cd = 0 +895e497d8bf7761097713173cc6686f53c72cecb = 0 +8ac867851c9bc80fdf740e9763823dc993e91659 = 0 +ad69f5acbc5833484206bab223bcc5dd24d52bd0 = 0 +b9e8c2dbba4e836071f0d2f5bfe0e823b6736bd7 = 0 +bb9944d9530b7da52f2a7aa8b1e72176220c1d5c = 0 +bd5f94503090ef441efbd1a9ccab7028d8f99282 = 0 +c68e319a61b3e0e91817f81cff3ca4caf1a067ce = 0 +c7969de6829591f5a4359b0a1d03a19f626d0103 = 0 +cb19a5555df2522338fc90afe57e74babcad7bce = 0 +cfe789b141752e26babec2474a02bc0ed7ffc2fe = 0 +d3a1de94ee27ebb05e4207b2d2f7e3db19cfc538 = 0 +dc642b449269864a4a13b84a5b2668d60cd6b6ef = 0 + +[744748f2-ebff-55e5-9df3-df674b774292] +7c6e6a186ce04ea308a336e731c1e3ad6998f4fe = 0 +89283dec3e4bb09bd040c9a83d6d04b5552722ed = 0 +ecadc3f747fdd3aaa7a10ff2688dfb91bd5f3927 = 0 + +[8a646f90-c42f-53d8-aeb7-0639fcac22d5] +1d5442aa59110bcfbffb4b1141de3af6e9398eb8 = 0 +469993ab630d2264b6da7b0d9e4f94f90dbd0028 = 0 +5f219d93d21f7a43f641cb87157ffc7c30b2c0a3 = 0 +744a1588146ee49fee406c5371f9a7ecc89845a0 = 0 +b6b81926af93a1803cfb3f7b22ea721fd8afc173 = 0 +efff10eb370f5407c3c7ce863973e03d8ee6ff25 = 0 + +[fc18253b-5e1b-504c-a4a2-9ece4944c004] +28832001c5c8bd78029b7cb548c6bde0105dd904 = 33554432 + +[a3bbaea7-e63e-5c7b-8fd7-5c7a8d0e2637] +4ea05a847bca0ae00a113bd50ac5c92e9e684a2f = 0 +9df7ad86763b23a5083e92ff7c0821e41370d9e6 = 0 +b1300d0f86fd19c61aa86a6a5b9c6a7e54b8aed1 = 0 +e58692ea8e53e660ec67d18eb0f3d17feb780c1a = 0 +f8e628861229f2ea5d0f6aa0bc005c3819c936b9 = 0 + +[7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6] +3611abefef865662a67b51af05724fb0448aa074 = 0 +5f551e2303b7fa6b6010aee9b60b8793516e9349 = 0 +8df011a638d82c64e935571f7362200f9a3cfa74 = 0 +9171d003eb8bc5d8eb01e947494fc0122c20ff21 = 0 +984724e975e0b468e8b11a4f4c76b30a004ea1fe = 0 +a14b4e6116171d82a3c50921b27d41325b8f3a39 = 0 +ab536dfb92a7b48c7445ef360ea759d2b2ccc851 = 0 +ae22d4cb8713fd09e10c2c07ce30ac1debe399f0 = 0 +f09fec6a2ec0276ba6cb7379230ff7e6e2724c3f = 0 + +[4e8a8231-0ba9-591b-8620-81c6740d7791] +519ec60796c011508faabda4c7fbb5aaf9f4b302 = 0 +89681a6481e9d0acea87d4e323b0781eb7b790c8 = 0 +c12ff7cd83f99bdaffc589773899ea72f56e50f5 = 0 + +[0fc2ff8b-aaa3-5acd-a817-1944a5e08891] +08bf5a741aebe224478a588b7adcee344499065e = 0 +1a9ec92d2bd725f168ddf11531cd9b4d0996edc5 = 0 +1e4f82146d174884f3fd4b0cea5aa7f6b96af2d2 = 0 +64903528e1d211d3f9ec5be1e2340fbe1a46076b = 0 +71c085bc934723789fba4304afeec182582984af = 0 +89ed22bd398b8e0f5119af981fa20abdfa9b9a33 = 0 +b61649302c7bb431036bd56554b7d740ec4abd67 = 0 +bb362f41c9dd598bb6fd1c70444e64226ba72d21 = 0 +d616a0aed0541c46a4bd59f36c4b49165a5e2a7b = 0 +e9b6bf1ee81d47ccdb4848afbaffb5ffe1bc0aea = 0 + +[1b4a561d-cfcb-5daf-8433-43fcf8b4bea3] +111de114d99d052928ab980955717cccabe58a2e = 0 +2725e479ecbbff5cfd482613909a0604ba1ea419 = 0 +652bab9c02942ad44598f5f4b361ce120c0632f9 = 0 +7cfcda4138f7e040338d15dbfb2c17397f48043c = 0 +96c851f2051f21991dcad9cc0b91820033914f93 = 0 +bd00f162cdef4fbe2a4376de50366db42d58d748 = 0 + +[9cfb0768-07a8-5146-8897-ffaa113e453e] +b264298e1e1f56f319bbf0871a43b84b1c7bd025 = 0 + +[496038af-b016-571c-b31e-8262695ac102] +256d697fd31054e797523852f183cbeec3834733 = 0 +c6c75ec4d5f24abd3f546c040428e3f9aca7a9df = 0 +f5531ae4892a55a423ceb29fef3e76877746f1a9 = 0 + +[6248df61-47b1-58fa-9b7c-c0f1183480ca] +5bcfa0912b98f130004905b96b1dc186d1641899 = 0 +99ff21e2fd4281db58e2142f9d313a5f5a8aa92c = 0 +d42bb70039681ea20f94acbaaa81080b4f333b85 = 0 +ef9342c7610f47191a5cc81b86a609fe908ac0d2 = 0 +f9b42d88a215b4f6333c7e6dc929b0e85cc7a235 = 0 + +[cb002d51-b850-5775-a4f8-1db47be676b8] +33d41ff5985e1c8c9861c1fb44d3b56814422c15 = 0 +9bacbcad311cb6048e96c6addfb5087d5aefb03b = 0 + +[46b6dc52-43c1-5dc0-9d43-b3fa04378dc4] +0452230cf7474092af87e6b3a11d090ccf995461 = 8192 +06b2adb28f2eabe4ec00891ab83e0b48b2b99254 = 0 +1c05e5eea70119af648cbd10c66a54fe6b5cd246 = 8192 +25c942e15d2d8f30e6814c4d66695f87eadea054 = 8192 +2d54864a2824c252d05c276638ca3fc8ab5c26e4 = 8192 +2f104c7e693199de4d1f6636b6b9931ef75bf7d3 = 8192 +39dcaef147541716ca65c633b5fc7e8f7587ed4c = 0 +3c730fcd987a845cbd364b201682434482dc64b9 = 8192 +3ca10e759a19946a63e448dd5aee5cadea06726c = 8192 +47d688601ef723fcb5532fce65b1dd2775fb08c1 = 0 +505308f7c51f6ba2b12e1bf94d0f0862cc3bdba0 = 8192 +5c6bda26d740e306a48f01b16254af323f4e9d01 = 8192 +617ededa3b4f2c360ce61bbc4c662f63d78a7ddf = 8192 +6a3e9cfb3324af4ac1a32e57f8014fa8412a520d = 0 +794a1ac0107c7c709559de372aa5b7c2fbb7036c = 8192 +7b5762fb2d81018e6696d4dce4b0bcd2218e9d4f = 8192 +7d535e233fd384f4bbdb455d290f8acfe244de9b = 0 +813c1bdfae9f34e807232214fb9b712fbe0796a6 = 0 +95d2912500ab4aa96442f805f8dbb0691b3d2243 = 8192 +9ab8cf6563f45517166ce1b2fdc3a21ee0e2ad57 = 8192 +a1a329e305a5c2d2593b95caf7a25ca8f64aa0ec = 0 +a7353d2e6e0732eed102b771a34188fa6fd04013 = 0 +bafd72ff5a283a5f494d921b23599c45894f9d9c = 0 +dcefe7a8821081adcb30378041e141f14e8475c2 = 8192 +f0f4943933390379b43dc46b95d24c847c9b2eae = 8192 +fd040edb6a566c32268ec82c57520ea577e825cd = 0 + +[51c5b0a9-f0d9-5f18-9346-75c2d7aca4db] +6cee4db669de9372bdc1baa21e6d6492e86dbb41 = 0 +83823744d461cd27a9b90a10255d76c677e7fd6e = 0 + +[b5cb2838-5506-56c8-b038-21e3582abe5d] +26810a7602dcfbe183393c4f879ddd6397775dd6 = 0 +30230d3a847a17a07ec799e42cdc610ac85a9166 = 0 +321ac1478fc1f0864d61927c0f664d260a676a5b = 0 +4334553ca107bb5c9a2f9eb51fc1dd799acfe7b5 = 0 +4d265dc14e0e80c00195fba560e4b0282e27bb90 = 0 +551fd9b0511994196c721db714465120bfbb1c6f = 0 +56e384133cacbd04ca9ed55e0a33902f4ac4118d = 0 +588282c1efc2fd267aacbe16a3a929c4b4b4d38d = 0 +738bf2f5adbae99d0aed242583d732492aba3e68 = 0 +8a72d6712b350ef4cfdc033a9bf13cb12079dd7e = 0 +9cb897eb578756ea416331ef1992846d767d548c = 0 +a386f5944681e09fce841fb70524b8114f3021d9 = 0 +b2063406d098ff196d9b8551ad43a59b674bbf0a = 0 +b4466e340188acc721e0ad4fc3594f3b1000cce5 = 0 +b5fb2d0943a52e04f04a1054bc1043378560ce35 = 0 +c1e5379d49ce58ce91f6c89937b2f7c4d2fe7006 = 0 +c854c7df053533070c7d1e8f2f6e708410ab438c = 0 +e229d5917c8a486360dff4208301d85e2a5e84ea = 0 +e2be51ede2a139a3db087630c3ae1c7330e78462 = 0 +f3a98f426dd25a506885113940497dea87eb9b6a = 0 + +[b27032c2-a3e7-50c8-80cd-2d36dbcbfd21] +0c78db1690ed586a0fd1ba9313333fd3fc76bb98 = 0 +1a61ce075450e52d9e602254f90325688a82827c = 0 +48d3f229f292fed2eb8040a6bf5aae76be1575a1 = 0 +4fbbd6bfa95e1f32888694184287c0ff63700039 = 0 +641a027ef03795a87de91b36e270362993fcad0e = 0 +94c22f41aed053eb41ce6a4df4a602511781dc0e = 0 +9b9248611375a556f4ecd6dc9fda16fd415a5826 = 0 +a7224f03d38dc4b72acf8e114a1ea92b3dfbe8f8 = 0 +b705034cd403bdb9ba76a291424e9b8c07aa7f9e = 0 +e7ae4a13d4c224aed4ddf4929caf2dcbc8031739 = 0 + +[705b6ad5-3465-51e6-a1de-33aaab44e605] +27fe9b7751b684f13a080a73dfb1881caa8b7f9d = 0 +3b21d4477f09aa158d03a00dbb319aa29de82747 = 0 + +[522f3ed2-3f36-55e3-b6df-e94fee9b0c07] +10c84a114393f6d863ff3bbdabdd96c0b411ad59 = 0 +12aad899cfcdb86baa22dd5857cd66c60f0fb80c = 0 +1b2f3a2774a2202f7d40ee1e3d9a0d542d934f15 = 0 +271c82087a5c3977c3487f99fbb9b6879010649d = 0 +2fd1837cbd04a46b51da3ce802cec2c6eef6fc60 = 0 +3ee8e669b055c595e1d2d9273b66d73106422c13 = 0 +40df7b78d72a785f03ad3fc54d6b58ff1ff23166 = 0 +4d95949bb89f340a89f907d831c6628803732aa2 = 0 +54ae5d9f209381b1324a296e0843c17ba4232c05 = 0 +55316ad5296e51ca14064da0ccbdbde7d103957c = 0 +7f121a0f861871dd5df9c782d5d8195a438600d0 = 0 +813266d7e0395bb8adadfc9135f72a13679ace40 = 0 +85e2aea808743ec2142cb0d96bb93522366f2ac6 = 0 +882d8fc8e8ac899aaffa85b8022a849651c6fd77 = 0 +9210aa37eb19ed1d4b994eb0418f115a1edc76bc = 0 +94065b435b16f048bd6f9163f96907f3a9215a9b = 0 +9fc5d94af1cf94888a7c0f3d2e0e015d08b334fe = 0 +a0228aebbc9365bf6a2fdb4646f0b6f615d8db2b = 0 +a0a991c2abd426081c15353fed5b88b4b4a1d0bb = 0 +a58191109e4c28a9c9c692c2077e52bcd6fb6218 = 0 +b56994181a56fbb80131845830cddd7c66e14e35 = 0 +cd84e769ff82a34290edcc984629cc9fedd96395 = 0 +de53ac688d8c0f4b06c9d4b25ff149e116c6b10c = 0 +edec8148acfdcabedff954728f4c901ddbb6b27d = 0 +fd56c41f88fb6a60259d8adb9f922f77664c6eff = 0 + +[a90b1aa1-3769-5649-ba7e-abc5a9d163eb] +5011656e55cbbe56b0849d625ad83b074cb1fff9 = 0 +549c6cbe0dfb3ff0ba432120385ce7a0446812b0 = 0 +59c3d3f2481de7431660f30e6e1df6d424f1b3ac = 0 +70ce28825c812e74251d55bfc9637f595221f845 = 0 +97cd383cf89d31bf1626395910114ca438fe1e71 = 0 +b61876ce33a64fa19f5b5f68fa75847953087508 = 0 +b9c3494f208eee9d6ea8436b7dcaba09860ad488 = 0 +efe733d9b473d8b25fe7ddb4cd688464df7e8542 = 0 +f882a4b17d3995a599d3f8c12ceb2a318c758716 = 0 + +[76f85450-5226-5b5a-8eaa-529ad045b433] +05516b01e22f1d607f2c7ef9afabacfee227b1f3 = 512 +0ac16c748c84fc94a02d6279a367f5842bdc6565 = 512 +21a9b017ab31888868c12c7d47667d5c072a7e12 = 512 +3fefb7c0fecdf062e0151ff6ea9541e47e64894a = 512 +568ca2a1fe7bb8c4276a31e1dc89b22102a5b99a = 512 +77708813e29ff2bf0035fff5f6287b7301aa92fc = 512 +789c16fb19c7b6a9dec2f01720546eb33ce53e63 = 512 +7d1f2ea33b2321aa715c7a221468a3ebb658c725 = 512 +814a0b12e951f444e97ed393abf52e8792db20e3 = 512 +84e08f2252ae901cb3fa545a8a9c8529038df5cf = 512 +8a44ae3facaea18f7b63084bfc2e56539857f306 = 512 +8eb26c2d191df226a1fc5eb47d7d187217fabb17 = 512 +eded9eb7dfff64043848b3c0a1fe4d7621fc1e78 = 512 +f7573d1a62e40d96fb4e3f78ea3c6619c5f2cd8d = 512 + +[4ccfa06b-4be2-56f5-9ddb-d0d9d9a8678c] +050d8a975954211691ef35b097a0b91fdca72b33 = 0 +687f8b6ffe3245c00d96dd96b21e4fb9186a76dc = 0 +7193aee50a888d8d728f3bc3f15ab7b37328a309 = 0 +99db79a66de8aad83f5ff31c7615071692b05649 = 0 +a2f02948619688c69b64bc07bafe1d97a269dd0d = 0 +b84a00fcae9a4482bde6ff912de1c94d44c2d886 = 0 +c55da9ea0171e52d1582fdffda8107f338033c72 = 0 +cdee4806ab9bdb86870aab3a51a14e7d9ba83292 = 0 + +[194296ae-ab2e-5f79-8cd4-7183a0a5a0d1] +2c32639cecd86496ea7f8eb0588de39267c2a7f5 = 0 +32e318fb6bdd42024fe45832209fe7d6dfe34b0c = 0 +6d2a1744ecc1a07c3ee815c58697613914af5325 = 0 +982ead0b094e9873d56376cdab91dceb1ab541c9 = 0 +cd93fc5f05b58bf4326679fd7b5bbc99d1b0b5a6 = 0 + +[5cf4117a-c29c-5f6c-be10-22558df91208] +0009fc6d58facafb5da5881b1c280bf3d9ae9d6d = 0 +05daf8d91e041dfec3c62cc5a89cc61dc2933b40 = 0 +7308f14cf471fd5f1ed47e7fdd9133d9bebf83e2 = 0 +bb94e90af02e78081d55225485ffb02143553b03 = 0 + +[b13ce0c6-77b0-50c6-a2db-140568b8d1a5] +3cb09a0a909e1a757b368bec962119f1f94e297e = 0 + +[2ec943e9-cfe8-584d-b93d-64dcb6d567b7] +0209f706f92f5a90d117bf0afc089fb018190661 = 0 +2911ad2a26ec711833afad04278f7ea219b98d58 = 0 +2d78fd415dbb5c2731157701cd66c259ecbff4e6 = 0 +77cb9bf2b9d1b2257637ad96973765a9bcb948aa = 0 +88899be3898c5b7681a3828f4e95de29b0c840a9 = 0 +ba9df4b7710344a13939f4548f0b92bacec23454 = 0 +d4903d2fbe602b2df1a7788df940f314bf0b3768 = 0 +e072678a7ed64ed8761d5e7b7b231bff4c24d127 = 0 +f0b408970942803420ba8881dbd7b12e7ad14cca = 0 + +[4210c81c-ea79-58ed-b1f5-cefccb200c31] +67a653e2758bba155b7b77a15e1190472ce4dde8 = 0 +6ff713a6fe4271bbc1d217802129226c1c1b87a8 = 0 +e7896df475c7a966d5244fd8a5d047cc62bb72fe = 0 + +[093fc24a-ae57-5d10-9952-331d41423f4d] +03a4197f5b6583395ee315a34d3af10797ec3efa = 0 +088e33b586ff849882abacf43b46721cc7f4e0f6 = 0 +0bbc5f63ebf06a89dc4ab25e4b96e601167c12b9 = 0 +0dc1e27f337fd0159e8cfa680dab55fde15163dd = 0 +0f221895b7190aa5ab3c12e0183d22fdbb1d390a = 0 +107c2eade4907a77ce9d9c602d58ed726c578465 = 0 +1823b41a1e14fdb645d3cbe7f563367265caf940 = 0 +192149852d28d7dfd04c88fd530a39db6f3a3434 = 0 +1cce7dcf78b81edb97e0efb7e95de59061c6e7be = 0 +1d4c341fdad3cfb6954361c107c7a5ca32903ae2 = 0 +26648c5db3e5a0294e26eae383b10edf48ecffa5 = 0 +27baf044eff44e4e1ce9c2f9d3cff68faa440d2e = 0 +2c4b3b3b4b96fc4da7c28938764eb306b7be9b7d = 0 +2fbea52cfd58a278b9eebcfdc0d23f78742bcb66 = 0 +32e021b216ee46bf173c3de2691a40c82262bb3e = 0 +3650afe98466cbeb62b2fcb47d10abe68db46bd5 = 0 +38b44302b741f8772985ce7c438a619da00cae2e = 0 +3ae336a6824cd38dc157b4a341bfabb299087c55 = 0 +3f58085a10d9324f1ed980ff3c0029b6f1c355c6 = 0 +44528ed35df7815cc36ff39c91cce20ad2cc1ff8 = 0 +522392576745b7439cc5acb2b5c5a750ae10a800 = 0 +60f7a40eee035043d2e1956fdf7bff8952095388 = 0 +640e2de7c94a283a50f610050575be47d54581e4 = 0 +6611c6b3e8f260cf8d176c997acf77e515d16dd5 = 0 +6b5b5c341c0d7785675018821d8b210f8398394c = 0 +71e0abc15c8bbabaa049eae0dcf386cad2d82225 = 0 +72fe35132959f41efb2a2b66b13886bb68681c27 = 0 +72ff259bd32eed646623d17905bb3d4851f19ea4 = 0 +76775fe72f924f99bab048319e8c0e0da1b7831a = 0 +821563cf704810dc5aff6b624d800b37ddb3b6d6 = 0 +8562e420adfd63188afcfe28c91c6419719fd12d = 0 +8ed203c10078107d63d7768710cb393a43faa29e = 0 +8f1c0be1b7c71439be2386ca6223875d2f8a710d = 0 +907e6abdcef575f1128e9451809326a94bef30e7 = 0 +991de1a99893283637a9235908a50ea56a3b0bc1 = 0 +9af5190cb14ff12785698c9716e9322a04179144 = 0 +9d47ee186a0c09c926d9975e67ecd8c1d38eb363 = 0 +9dd2b872a7d8bd5355fc85daca96fd7a63d6670c = 0 +a0a320f36e87dc231cf9baefc1faca4fb5ba1df7 = 0 +a0d294b7e1061d11853576b9a40371f01dad4d61 = 0 +a7493c72fdb3fad6e317cb30a13d5ad717c63b40 = 0 +bc89cc145d269a54b835bdc36dd4d7c7f951e129 = 0 +ca79aabfc81fa16cb838ccf147369bbfd59d08e7 = 0 +cb5d93b366dc6ac82367721ec367061035a2e805 = 0 +d0348dc9af988f4d5954e743a3d2e99dbc43891d = 0 +dab281af840ef1be1767ef21e39612e70819b59d = 0 +dd06b61f56fe59921ea9a91372ca3c21fe39dca2 = 0 +dd952cfef9d7a359d9da87108337502737aaef60 = 0 +e6c60016463314a4030a5d6d3403745bf7f19d4f = 0 +e8a40328149fcf008a499d1320a52fb2b37236d2 = 0 +e8d2eb0a8399a7408517131b0e2c819840e28034 = 0 +ef6538fc0cde9cf2a1013e5e54a72e48487fc881 = 0 +f93840c4b019680ad7e0aa8e6257c9c4b7ef5b98 = 0 + +[89bd72ed-8c37-5969-8989-5c5e0cf73e51] +63b870cec7a4e4541575b9e2e9fef2424ca0c130 = 0 +6f70e89696829bfdd5241b5aeec7940acae09ad6 = 0 + +[2f5eb75a-258c-59e0-affc-f41c55f75335] +1856a5bd281b7f1eedc726ef0e1ac9bf4b90fdfc = 0 +2158d8166ce931ab8b18182eba680bc1d9c06852 = 0 +6506631787781bed72bed3fc29907783a57745bd = 0 +7fac8ca73ec587152f724c6b6fe50751f516fcae = 0 +f22cee56bcb237c646074e66ecd45949bbe131cc = 0 + +[160ba089-64bf-5ba7-9e14-98ab1d9bcb0a] +6765fbfb77aff24b96fda1f3453f60a8bb058105 = 0 +ae1da325f9e9795a72550c11085d5e817c19bc7c = 0 + +[9c8b4983-aa76-5018-a973-4c85ecc9e179] +069f51fd6bc10b364fa1f58b36b21b8936f86e25 = 0 +09cbf6454d0b8f5b194aeba3e81fca1c25777af0 = 0 +0d987a8df6f2d3ccacb25988d8000ae5c8e91455 = 0 +1138cabafaceb577661d0b191f72aaa98beb02e9 = 0 +11b3852f75a73f7bc7ed722e7be879e884c06d55 = 0 +154fefc9766b84bd506860916a3b8ef60198e9aa = 0 +1b555888c92392e9b3861065950aabf369befb4d = 0 +2cbe95517d4bc742689a7605c489c920e6b30b1d = 0 +417c5da51cd2d1db7019b743d1844a16cb5e528e = 0 +435301f18bc08e8a58bb0ec3dfc3393f40059d99 = 0 +4502cd905c6cf15ff2d9b9e485af15560ac7f005 = 0 +5872c3a35cb88f712b8caf6c1293e1416241a234 = 0 +7467163eb0152880009808eff5a3b56dae14e912 = 0 +87e6762c8612b03e097351cd96c981a2cdab5558 = 0 +8bdd8d24f5561ef420fb6e67bc742087af68a200 = 0 +a8e8b85e7e839c36a3f89ff50c41037cde07bbd8 = 0 +b7149bd73084b2e05e2c14e135b1eccdcd46dcf6 = 0 +bd448e97d046e3a806f4d0f73c60b5fedcd4d7df = 0 +e1a059eeff593d04817786c79d0b71cc1a901cd7 = 0 +fa863e054faee6cd4acebc3108b115742e1d3cf8 = 0 + +[d3d80556-e9d4-5f37-9878-2ab0fcc64255] +007640e240e4e8a2a2d38636d2c6f22540c69b3c = 0 +0990b553e96f7ba0da51eea21cce78c083749606 = 0 +28cc7d10983bcc093838db6e273fdd9fb57766a6 = 0 +32f5337120338d7805e03f7f5eedcff2e96becad = 0 +33c9bd02eb7ce01c276724e0aa0df5c2d8678ae9 = 0 +35d523df9c22fdec6d93317e720ee5286017c725 = 0 +430ff8695553aac267f530748a9676ec54c4e60c = 0 +56155bdb64d660452c1f014eac3d51e8e3608c71 = 0 +5979facd949db19a0e5b66d24aa142f703578880 = 0 +5cd79f4b48814ab39abdefbc81cb25dc6b83b4a4 = 0 +624820d99090648a37ee232c33fa2876c1973139 = 0 +628f019e3c33d4800fc79a9e5f934dbc69f5e2c0 = 0 +675f5b5a17d70ea9e68295fe4d065bbc5821e1ed = 0 +6873fa5a2264a40f6e5b9fa2df2681a2847eec72 = 0 +7fb4d38446b046bd78dee3aa8a8011f44a33d14f = 0 +88322990c6c3304e1471589ca34caef59ba8a8d3 = 0 +90d99c3898de5b45ba10924862a968982d84432b = 0 +b9e51540a5632b0186c81bca163bcda6af86087f = 0 +c8caed81cbe0093134e042dacca8a72082e01bde = 0 +deb45fbddfab3eac415e5a87a91fb1fd1872e23e = 0 +e37e4f1cdd24424562712c0926ab6b0fe9e63085 = 0 +e6c85ef55b81ee194dd737539c08544bdd9681a6 = 0 +f382f9c0f4ca18cbb205f61d41cc62342e784b1a = 0 + +[a8002f64-6652-5b53-92ba-d4864fedfa0a] +0bc7ce93ae3d4eef3b3925e1d6bc2dbc2c54573f = 0 +2e3ff715eb025bcbe3bcd7e105d7811a6debf7c7 = 0 +2ecf6363ba511ee221e22610c65c9ff15fdf7ea1 = 0 +33c484cf8fb1109081ae094c153108485e1f877d = 0 +52c2ba7d59fc4705f8bf5804cd389b145681b331 = 0 +6fda68e4163996742e8087f7af2f5f9c4ae5863f = 0 +9971a53607b0b86dfba4b11d30a76fdf20ba33d5 = 0 +abfc1aa4eb543653affd5e1f51500c0ffb3afc9c = 0 +b24b46e595d51ca16c9803e182c0667a55b87ddd = 0 +c226beab86b81f8ed960255489a1c045338c0ddd = 0 +cc91031f4bdc56d720f8dc62e5bb20b4286b269f = 0 +ed9b74336bfeadd5425cb3ecd101656af0c253e6 = 0 + +[7a12625a-238d-50fd-b39a-03d52299707e] +2d51d07dd1fba2444468aa2339821046f49bb765 = 33554432 +9c27037507c85dee9f938ed17dc969b71cadf90a = 0 +af429ab57ca83ff576eab757c71913bdd741881e = 0 +c1598f31e0d8c8c47837f8473e6d9a0f169e4025 = 0 +c9d565764a687fe48bade4ce558b658befd6a880 = 0 +ce480f530e921e541c15663845e4cfe23ce2f945 = 0 +d4b734bc61c231c26c59afffba562d2dae3710a8 = 0 +d5155c7323127bfa477513209fc4d123641aa330 = 33554432 +e01006a5348b61e68ec4fd3a24f563316093fb7c = 0 +ee6c52323f687afe01e535e6da17121bebe09649 = 0 +fee14890f8448d8a9df1b690f6800b0b82fc1153 = 0 + +[5c8ed15e-5a4c-59e4-a42b-c7e8811fb125] +5a4a9caeb139f2071b0da2315d94e96f45a2636a = 0 +6fd167f2d38ad8233eba5308aa56648f0764e32a = 0 +99ff43a8fe8f347ef533da5331b0ba76e9c489be = 0 +c1d9adbd6cefbad82af7040df52ae47d371d6c5d = 0 + +[3c64ce36-c3ed-51c2-a7aa-9c9aa94f3624] +10a42d782a06ed5518cb636bfa743b0255348cf9 = 0 + +[3bf275ae-c56e-51b1-910f-9ec630bf193d] +24ebccaee7b64201a3c6838b0650ca67346c7957 = 0 +3aab5cb46d04dc524942df26bb898b260c52a310 = 0 + +[70f5e60a-1556-5f34-a19e-a48b3e4aaee9] +fc148b84d52a98f0bccbefe18b0484749546899c = 0 + +[d4b2101a-7710-563d-8e49-77b01dd33fad] +00f12dbf406667074a8d7b2570fbc5810bcc4b07 = 33554436 +05167ef046a3dae4844b42e2a87df26fad1f7f5c = 33554432 +0995856a64b92b40841abc4cb3753a6abf4167fe = 33554432 +0a29c0d789447dabfebd6e9e2e6915ffac152786 = 4 +0c530910eb829c99fee17210501d093a882cbf31 = 33554432 +0f5bb25c934cc00e0b2b78de5a46615bad386234 = 33554436 +0fd60f17db202cf0489f12092d7e229464dcf3a6 = 33554436 +0feb70532b64d106980ae60190fded39f216ca13 = 33554432 +0ff2cfdd971094d16a5ed7b83066850cb2d3c43f = 33554436 +133f6abc6c315dd60cda9bc93fc55aa7fe4ba693 = 33554436 +14cb19d0b4348dfb5b5c0c1714b6d7a5c6639968 = 33554432 +14da1fcfe3f079b77dec8a6e170586022f1e2e64 = 4 +19b3207716456333844b0e57a9a00c3f7db04636 = 33554432 +204222ee5245c74f5ac02de35886a4b3cd07ef84 = 33554432 +2055a76835a9cbe7f2f75882796a84f8433aa3d0 = 33554432 +2063c0e2237c98b7eb6ec13f74864c35bf04267f = 33554436 +249c2b460ce97a1fd8be8c3262992ded618ec704 = 4 +27f57d0b68dd2c2a9c8fed70821ed8874fb694f6 = 33554432 +2c23172a713b816f7fa992aef6ac0f88eed1a3d8 = 33554432 +2d1c5ec56fb95854db6e6777d51c04167d942409 = 33554432 +2ff3d8ba7a14e4ca548192d94afad0110d7d0d42 = 33554436 +3150eab30f7589fcc5ef9a231d1a746aaa3788f5 = 33554432 +3447388ca7dd037e9842650d78bbf21aa17fdf8b = 33554436 +3870bf1b1d3ce4b8d89e927e45943dfde23b2237 = 33554432 +39633325f1d553b3973860b766e0690289280191 = 33554432 +3f023145a05551dca95003a43599b64a94bf3ae8 = 33554432 +42f08938de0caa6c7807e55825c2b4c8f8a62975 = 33554432 +4512970af3fb8470fecc1f1e4df39459fc216c24 = 33554436 +479f257b16022a063cf1ba93538bba15e104c9db = 33554436 +4a867fc474572fc7eb119af42fbaf59a016d2ded = 33554436 +4ae660e0c414ac283fd2bfaa8154a8a9a5a4b3b8 = 33554432 +501cd52a902322dffa56e24f4812bb65ce3147f1 = 33554432 +5b4debd38964080c9611f005c1625b0ec881c93e = 33554436 +5bfbaa3173c871819b0977774ac7f0fc8c23b4fa = 4 +5fab779742aeaedadc1e895b6af0de4db9e207c2 = 33554432 +632c120e184f055fb62e1d29ca330a45739feb4f = 33554436 +64230dd31ee96531fbe9d3600cb230d6aceab137 = 33554436 +6698fcf6efcd7296d213c5dd1c2789d23a067f32 = 33554436 +68302a40b8eb9f85509da3e6b4020ecdec50dfa3 = 0 +6877b6fdf25dfc428804b4db44c1bcc76a4b2244 = 33554432 +6904cd5dc715b712dac5d7e0e4b746af5bff956b = 0 +6c740ec8b7b642781a42a948ea517fd76757b57a = 33554432 +6c9afe5cbe8458d679d9f57a507866d2791250fc = 33554432 +6d6fc881e8b763d3afca1f895c7fd3753d78a68f = 0 +6f26a99a4f3339408f5b8c67e3861cc542584fea = 4 +8a694b0944dff2abb1b0f584f8f3508e0c6f043d = 4 +8e60bbae5bf4afe497f869623b2300b797e95727 = 33554432 +8ef144be5726964e6aa467892b86fc647eb882a2 = 4 +8fc29bbee7feb8907e48d4ec7a554eb017fa1bda = 33554432 +906f3fee95a5ff2cd9a18a5e6fae953986051480 = 0 +914126865e0f3e5dead5d0d01b1c01d8c6b9ec9e = 33554432 +94a1b1e75581804395ef953dc9018373bd02b7fd = 33554432 +96a2b04c2e390fe1db18fecb2f017d6bf98deb09 = 4 +96ad1acee67bade8709ab857381791441a35ec66 = 33554432 +989a21745fb2e22fe28d914ffc65164b9349ce7e = 33554432 +9aaa480e088acfb6c29f8ff036552a4ba437067d = 33554432 +9cb750cac59b93a3090f265d09e95277906e563f = 33554436 +9e76fa0cde0fbf64fcbb0667d3ed59045961ff61 = 33554432 +9efb3eebbaac24a6546982b1e9b9f8f9e41416ce = 33554432 +a0b351c7170f0baf343c5b52c151a7d3d47d8c6e = 33554432 +a16c6cb8d63fa3360dd9a72510c9e2be6f3c81da = 4 +a17a7cf9ec93f5b94d3305e25217965e478d1607 = 33554436 +a3ebf2c295463e0b13246a432d8c579dbdcfda97 = 33554432 +a87e73c99519fa04cc4e29ff10769a940cb599f5 = 33554432 +a93b577a43c48f8a37d235dc98ad9a4649d58dfa = 0 +aacd67dc5208c09f61d45c2eaf6a486dcee4ec91 = 33554432 +ab4562c0923e2ba2ae678845a38fcef0e654eb4d = 33554432 +acdf0fc473830c5582e9ebbdf6224a47e286fbd5 = 33554436 +add0c62b4742defef960c304ec4f591bf66a8df2 = 33554432 +b01f14c54d2b0c71fa1192d2d3acd88a04c556e6 = 33554432 +b8eb4edade8ce6606826c726ddc98c35bd9160b5 = 33554432 +ba6faef67425041b8c5184b2e30a3a9988a7c0f9 = 33554432 +beaf2af7e57e5b14754aaa460254e578d2b74403 = 33554436 +bfb736a4c69dd03b8ee642b934eac614517d7178 = 33554436 +c0072ce871f40da9db11f3101e47f1a2b650ff98 = 33554436 +c12e393a8485e316ec105ed4bad198e1adc0ba33 = 33554432 +c24fc48145663da081f0a4f63417d3bb5851e7db = 33554432 +c3aa6a0c084f00316f5819dbda1e02d5ecc641f7 = 33554436 +c455c6a56a07b72967525b09d997987623c19428 = 33554432 +c4b6925cc9414d22688fb2b18a389d4fd98928ed = 33554432 +c634c5ec12beda4661eb4ce5d0c1334e0a81cbca = 33554432 +c6484896967ee2907f9ec28209ab74da3a1326f9 = 33554432 +c6b78123b0dda63261a8dcb36d810514b17387ff = 33554432 +c7c23b476c30fbb33c84d0e78fbaa27814db52d7 = 4 +c97622be5fbe1b81ba8120c162c59041dc4064d7 = 33554432 +ceaf86b2d7a02554b670d65216eee42f3d3151bd = 33554432 +d19a8bcf0ed8bfaaea447898c64f53b596d23565 = 33554432 +d21e147b95c3b0d92bbcb8c7347a86c820b7e59f = 33554436 +d2fc57c8a5e91212f7d62cf04d1361c82cc16582 = 33554432 +d334e0080d87d480a748fd51a7c392378d664dd6 = 33554432 +d6311fba3dda9f388552b1f14950e723debe32a0 = 33554432 +d8e3508d5fb4ece082de86cd1eab729ddde6be66 = 33554432 +e02e706bfa731685840946b0bde26aea05b19f19 = 33554432 +e0502230e4035ffea48f2721b7eb4056cbc61e9b = 33554432 +e53b41afda55f9fa2831ce0c763b3aa72912f6f5 = 33554432 +e7dbdbbc009008b61a79201f4606ebc8a42f461a = 33554432 +eb6407fa944217466fd9417ae29da3192b83dbf3 = 33554432 +ec35c2e39df980867915d984809272d611dbde8d = 33554432 +ed3db0dab6c2f1137919e16fe159fb1da5af9392 = 0 +f248d2f81afc9f9d1053ff837bfab3b784f5ae18 = 33554432 +f4fcbead76570b980cdee5d19503b08889f32307 = 33554432 +f819bd30eb57bd5eafbadd3f1c4794bc744bb0f3 = 33554432 +f8604332a5a4c3f333cd69c4ecda613a1e08fc4a = 33554432 +fa37a6900fc9ee6a7d5324d6a622a814a0cc25bf = 33554436 +fec839aea2f7d7effa10b9798a675876f0109ca3 = 33554436 + +[1724a1d5-ab78-548d-94b3-135c294f96cf] +f8b513c8cd0fc9c8b0943b62ab53c6fc0dd2fcd0 = 0 + +[085fde7c-5f94-55e4-8448-8bbb5db6dde9] +86d320fa3f26c18b4aa815843e185a658ee722ea = 0 + +[68d949f0-74a3-5070-a3ac-aa8145b4bcaa] +131d3bbdab0b1e2e25448e43e3b65078cd69fafa = 0 +4951eb45082f58565566e68bdff94e1800f8f7e5 = 0 + +[4345ca2d-374a-55d4-8d30-97f9976e7612] +19a68e0ecf35d4a19b379ed70de93a33ed61fcd0 = 0 +3eab55acf9d367c0c53ed9aa804170b6b4467fc7 = 0 +55e3a3fd32668323174ceda35b1cbb53f35588ac = 0 +702800a031d157db90c5686809bcfee50ef69432 = 0 +96c1ba356808ffd1ddc68e1c4e79fe891cb2c638 = 0 +ad2e613e3049bc41e4817b3f09b99c512d093a1f = 0 +bcc8f1a2488c0ebbbc97f6f9f6eda1eaba0705c6 = 0 +d59cb4ad534f9a258ee18b401412a2631684acc1 = 0 +e61cc8a169aed6162b393cc6a9b9f14c4964ba5a = 0 +f53def33e29c565df0747d8aa06cee71ee53fe47 = 0 + +[e1e0bead-d0c8-5de7-863f-c4b0e859faac] +15e10908919413e96371ed0cb8d47eeb005ba7b3 = 0 +1d38131a4df81bdcb386a01ce790ed0a42c55fef = 0 +aee7a824d12eb4f5001c72d4eb164cce6d0a27c9 = 0 +bf8ee5f7abf5d6afa4f0a60aa2ac4562f846cd7e = 0 +d0b9b8804a0336f1a7dfa2f5bf0b29d09c3936f7 = 0 +e3e5388656b26fa5c32032c80e29fd10807a7f6f = 0 + +[0810563c-c8a8-53be-b185-e51c33dc41ea] +12e50f94bc13aaf907692281db84e6eb3e189ede = 0 +60ded6e068c50789c6f4238dc22e3ba57f38225a = 0 +7885534a034e5e0fb704ced7a50b5259fe8efbb7 = 0 +8e8bfa6e9bbefdac9bc7401dee0347f4c9929e36 = 0 +dc05bca8df7de1e66de9a4a546a4856bbdfefe45 = 0 +e415b87be73c774d1fa69be41446039acd48b52c = 0 +ed645780db568e2b649c44d3f8930a2d97117189 = 0 + +[fc60dff9-86e7-5f2f-a8a0-edeadbb75bd9] +2daa0bc37f990d4591a0caf0b8ab081426ed356a = 0 +3cd7db5b2be562f3d571bc2ddd235e90ebea8f02 = 0 +7b031a6477d4ec3d307ad4934d9f5dfe355b07b5 = 0 +9734fedd3769373aabd5af455d43f5f6d7884bb1 = 0 +a017c664f5001a1bfe6b911664bb377062aa5113 = 0 +db1ca803f1d09bb56fdc2bc40150028890b45b00 = 0 +e4c754626d40c5bb91e8a72562cf4e18143d3219 = 0 + +[39f5be34-8529-5463-bac7-bf6867c840a3] +06cfb64fe350389acbcc8d355c035fee008ab4d2 = 0 + +[278398fc-db6b-536a-86ef-0b56cf867102] +0ba03c50ef3f0d942271b0bc0e9bbb8bf31f8bc4 = 0 +20e5a6e5c650f81b59d12213a2044b192666c1ac = 0 +2712fe20088e7f4db0d9757a274ddd57e3b671b7 = 0 +6e018b2d9fc1de4db1a79d93b80462e86d905580 = 0 +905aedde1ff25cec5a41218fb80a1475f5ea0af0 = 0 +bb440082091c21e40d9860977fb591b4e89c7394 = 0 +c082f8a962178364a09879b4748bf8c1a0b973ea = 0 +c82e4413f4f4c3b1f5d427b63e868abee90e1627 = 0 +d6354f8fea7ecff2e3a6738a82d37d6d075830b0 = 0 +e80bbf5245e7f74f28d3c9d828a2bf3596b0fc88 = 0 +ea2dc49e4ba78dad720ab8ea13d02b3455ff86fb = 0 +ed947107fdf1dc1e2168b2295ad109d867ed7333 = 0 + +[3b74c4c8-83ac-59e6-af00-836933a3a159] +e806d9e9ecb4ebce618ddc014d84cddd4dd600c2 = 0 + +[30fc2ffe-d236-52d8-8643-a9d8f7c094a7] +4e955a0ed1fc47e875de1009932d26f5f9fccc32 = 0 +7334d544492ea074f36433e0fe08f2ab6d3db00c = 0 +9f45628c5d4ae5a2faa4b16ab8266107e60f483e = 0 +a2501327027fa4287b2837664ed14b01cf94a3c8 = 0 +c51e787f3bac23c8fdefbb4bfe116b9704755b24 = 0 + +[805246a1-aa7a-532a-bde9-049e8c820516] +cae7acc1398756964a4b875c3c9007d133f411d7 = 0 + +[15a4fa57-098d-5a77-b233-4f9ba1cdf842] +3d8a9041087f0d14abee9ebea860b00bf8b059ef = 33554432 + +[898213cb-b102-5a47-900c-97e73b919f73] +18095ab8ba331c2fe685b6e9090096bc3b648fc9 = 0 +3a394624d3499ccece64d44c4346f14def39b517 = 0 +d32fcad35d9ce39536b36e58421fbace2bb0ee73 = 33554432 + +[15d4e49f-4837-5ea3-a885-5b28bfa376dc] +2e2191092e4bb6737e29ca953e9bf4280d245f9a = 0 +3ef14d97b65452e65bd82db1e11640670c611625 = 0 +499726aa4095dea61cb6cc2ed82d15351bf3ffd1 = 0 +5e08e34287bd223e462901661dc41e3c699329db = 0 +ddc40abd2b292eb993d0cf29b820d25ca66b9248 = 0 +f6e92c116f694803823575694417fa6ff8fd8131 = 0 + +[2fda8390-95c7-5789-9bda-21331edee243] +28ac54e4f84638652df6cc89522f790624c3b9f0 = 0 +308361c9f0e7eb7ef36732da3f24dbe2b3bcf4b7 = 0 +4ecb0ecfa6d02c751e6235ff48204e6f3d5f5262 = 0 +9d8837606046f3bee5ed182dd7314c8b2a456a56 = 0 +ea9d75e56b40eb093e9ebb67a6ae5754db9adba9 = 0 +fc03bbd6249c238d171b6bfc0f4cef23ae2a269a = 0 + +[ff7a09a4-2bbe-5ce1-96cb-a4b0cacc22b1] +151954852785a527a80fc9bb0099d3bdcf872dc7 = 4 +27fd2f4b19436b0cb70f3f922235980adebfa0ca = 0 +29648c1fd4351e9a80bee03fdee23153cb6ba949 = 0 +2ca334d36b317b7972fe980d10067b8e74ead35c = 4 +3222b38c48910ae9947c41715554266c34189001 = 0 +3fe2d80ab06c3b9e70a053932468d3dad8037faf = 0 +4d5d8768efecbf01116073bc27956aa4e8dc3902 = 4 +51fe29c522ee9003c0f9a13185244b067ad2a8f8 = 0 +58086c1ae551ece0508f407f77fc8e7e90ce1422 = 0 +72ab05fc75ea22bff56dc439b02e1c252daee02f = 4 +9c6459ea4bde3a4ee62f86e357a2f42bcb713646 = 0 +b94199730207454450b481886493916331d5e94f = 4 +bc47adf0a9fee6675474eb72da5cbe4fe40190dd = 4 +c617443e26307cf719e3842ad2ded847e8d43873 = 0 + +[ae8d54c2-7ccd-5906-9d76-62fc9837b5bc] +0b8b3cd95ac57d7369e924ce8a1af9b71e4d5a18 = 0 +13f5645f7048fa27d36f463fc6ad0f2deec7507e = 0 +18f71b83cdbaeaf69755c67d657d48f15a8e2b1b = 0 +23927e60e1b70875f7d394bbc51056dc145a9a5a = 0 +2aa223c688ceca31d9236406ce712f422a5a454a = 0 +32aa4bb905107fbc3aec5529671775f6fb5c7d64 = 0 +34785dc2f7d53c2fca23d6ca5773da66938f0601 = 0 +43997ffeb7cadd23b60c38b91dd5077d5d94d54a = 0 +474c33c2022fcced634d8a3e5ee00f76d3f96e41 = 0 +4f23c7a79d4c6d835c4f5b3b1a74452812d9072c = 0 +4fe8c013eb0199bff06add6e34b7c37ef73c615e = 0 +57d0dab257d107491d02dd883ce551d0388a356b = 0 +60851707467dc7679a85a984b39d000ac77006e0 = 0 +7ae38f5445092423c78b23ed228380ac056788fe = 0 +8398d44aa9c48205ffdfa266b384f57130e30d11 = 0 +87c0c978ad545113ab91d4367661e8b2f78d5b87 = 0 +94700cb92bd103f7ff4cd3009a5b866ebb4402e3 = 0 +985720a95b0626f541d171ea64c5fcf05e2c3e38 = 0 +a0e8a4c5cdb6856eafe3f27d214bbf64b9d1de4c = 0 +a8c4e18c070b6b9484096b4b1646ac7554951367 = 0 +b74e64dc8b66d911e15d2742e9480f274fa2ad51 = 0 +d2af73cdccf669607bbb208817cd261c8a63b923 = 0 +e8ba053d66e6d55eaabb88945394902753440471 = 0 +f4a77f298285b6f4b84a7b9057ec1570c7dd5015 = 0 + +[a670fb16-9fdb-53d6-b278-e97402275041] +30c2e4679a78c3b21a0dbd10dcb29f63b53f82fa = 32768 + +[96e1709c-041e-5d42-98d9-815bb6f3efac] +743dba23afc0a4695020e494b5097371d99c84ed = 0 +7fe6e8845b269c23cc200ac3d3e855e0869cfae3 = 0 + +[23992714-dd62-5051-b70f-ba57cb901cac] +13f042f0749068db3e36d0b9edf0ebb2749bf5fe = 0 +2d64b13757b8ef12e744770240124bac5be74097 = 0 +334c8741b5e6063dd3b2009b8288da0acfaec725 = 0 +67ea0cb71b091d2ee769cbcfd212b7499bc0a775 = 0 +6a2ba2cfb05eaa3c9e31499707b0eb5f64d57a1e = 0 +6c29c889df3bb726bed7bc745a89f595c5da8c84 = 0 +6e4701bf0378320132053fce9d717a92f636dfe1 = 0 +73b74309b587180506a408af7f77e7f9506e1c14 = 0 +79c0fb50719c50f1c28df93943ebfdff9d5cdb52 = 0 +82021f0f3c1de9224296ab703ffa3706adec965c = 0 +825cdb2b3eeff42c4b47c2258ac1fda822a2b460 = 0 +9282d615c8ce2b68edb9b900cfff6e9a5e9b04f2 = 0 +94140399d85bc074672ba7556bfe0857eb64f3df = 0 +9d32665a7c1a2848025f6fa9a0b93db4123ed822 = 0 +aca9b261c1f73caf4f2ec9330148659a52f3a347 = 0 +b39af462d8334e0cbba797f55d56a2795cc41b9a = 0 +dc8e9841502f3cc9b1397c71c8480d575b6f2fa0 = 0 +eed86c0b9476bbdcf6be0fe3441d09e554673748 = 0 +fb6e5ae33c38117ffe5c213c88f114c6eb06ce3c = 0 + +[10e44e05-a98a-55b3-a45b-ba969058deb6] +06e22d971a1ff6fe12a51237fe825fe4ab253d6d = 0 +17c1c9406e37eccaf98406db3d2c19092d43fcdb = 0 +18f63b2cf99180fa5e3d1952bc387df1208a4a7f = 0 +1cea259b210dd3317a8c87c3718063b5e1b204f2 = 0 +3e1947f7d47afd01f527af7bb8915e2d38eb0954 = 0 +44b8363c626b0929bbae1594fec1ef536241116b = 0 +5e563c56dccde7bd1d4e40001a85ef708c46baee = 0 +61f953b4f24805fc3330290f274dc2d1827badd8 = 0 +6e6c3f21f223c7c11b2e96d4263dafee79c09c4f = 0 +8fbc07142f62fad8d8565aa635a9745e2ab20d2b = 0 +9275efb5e2f8695e77e275646adb2522a1155a48 = 0 +a1945a641281d5876f8e9c1c2193113c2e13dd37 = 0 +a35990f889ca30ffc64171d4c875586cc7bf4c8c = 0 +bd914b7195b0afda8fa307f8ca3f189b62555808 = 0 +f1a1897c2dea8facd078b740f67b74938660837d = 0 +f5bc892edb19faa8b77c0c803fa282e5d765aa61 = 0 + +[710c6136-668d-5095-a8fe-6011fc836f11] +de0bbe603ab897f8f48e14e92f8800250522e155 = 0 + +[8c227e2d-9d82-5208-8462-f144982ddfc0] +745d008ca3c3928124ab96a8ee93ec90afad083b = 0 + +[6e857e4b-079a-58c4-aeab-bc2670384359] +2a97575b131b4e24060e0eed71d740a60a5e8ff7 = 0 + +[6ac74813-4b46-53a4-afec-0b5dc9d7885c] +903b751806ebc109f91812338f58641580a9240b = 2097152 + +[1ba2fcf6-b438-57ac-94bf-052622d64a91] +13c5d49038afc6794c1fc73f9a25936bf22924a6 = 0 +1a235548634fc364f2af1802d282e8c03a98becf = 0 +45dd5f24dbf8991d6d4fcca749a71cfd7c218d7e = 0 + +[1407db8f-3b7b-5b59-abc8-36200bfa8e15] +0d6a6efc32608e05bf0fb7ba6c4a9e44d99576f8 = 0 +9be1d10eed4e0ffd3d9b8c7d5157220bf50c34cf = 0 +d5fbe4e4c5ca5064fb7c32fd50373c9c230a957e = 0 +dd969865b25a3c38cf1b3fc7da0c6fb64f69b864 = 0 + +[ca7b5df7-6146-5dcc-89ec-36256279a339] +0b7cbdd56a10987f62e6e1f8e2864824f98e9ec8 = 0 +3b6ebbea7d062fb4fb3abca24a65f353af06e6dc = 0 +3d77cf74cf5e480a6a70db7e912c7ae8656017f7 = 0 +983c90e95af0dc4df06e2e108d9d421fab58f35b = 0 +e1adfaa57a730f9efa5c9245ada3e863ff2f702a = 0 + +[f57c4921-e30c-5f49-b073-3f2f2ada663e] +02b39b65d041ab66737f3952336cc16d3ccc2b0b = 0 +1e0190764bb2db48de65a3341ae1ffda85c63493 = 0 +24bb89fd9c759052d564b49a77bf860282809731 = 0 +44bbfa576c77d2034b377a806ba4326d9d6249f5 = 0 +967bff2fa06b1caad887869e7892d018f66792d6 = 0 +993d9c14709bf160d435fffd5bb9f762fee82609 = 0 +e5a785036cbf2f1e95dd20b4dd28e0080d0461c4 = 0 + +[4854310b-de5a-5eb6-a2a5-c1dee2bd17f9] +64bc1eed336f9420771d6eabe89c8a75ed90c9b8 = 0 + +[e5e5f8be-2a6a-5994-adbb-5afbd0e30425] +02bf1925babbbf8fa1dc840e464bbc4f2f131814 = 0 +214832cae465ec8b0199d5ce359418ff7e450c6c = 0 +b86b41d8fb660e74b0bbf58141b553427317582b = 0 +d0fdb468c0c641bc3f0524ac3b84ea4a7048b30c = 0 + +[51bafb47-8a16-5ded-8b04-24ef4eede0b5] +129978c5759a8872e7e487784483c46cf07d1431 = 0 +38006ace494efe5ac669976487f775da00af3f31 = 0 +4ae2db5216ebfccacba96379bd0922176ddd41f2 = 0 +50e1eed419b95423a0786384d246bc9d08c870d7 = 0 +53f713ddc948fe36ce335f61a0b66c0b2a45ef84 = 0 +66e8c36b13fd3095d98e43a4916b4d8b586de018 = 0 +7291f36819ea0a37b8013a99da09e78c62996143 = 0 +79c9c2417c538a371d895bfc90e3d613a3581a7b = 0 +964bb6bfde0ec4f6563df7820159cdb24f492987 = 0 +ba72d73ddbf0292bcd0f3fbd7d8cdab5298216e1 = 0 +e3bedd8ec526a100bc9fa8a2931a59d4885cf0c9 = 0 + +[0c723cd3-b8cd-5d40-b370-ba682dde9aae] +e3d31174278f084fc1142dcaabaaa043ad03cffe = 0 + +[f0e99cf1-93fa-52ec-9ecc-5026115318e0] +0934ded32ccabd3afee3579ca6dde267acf4e050 = 0 +1b8acf2f82d90399aa3cdffcb71e9d59c83b8706 = 0 +2b8ecaa3b855b06c69a756174b6050068c90cdac = 0 +42f4e83e323ebefed62c214de88225dffb603c07 = 0 +45002ea85bf81ee32bc6f2e7b66e7744cd3dae8b = 0 +541ff7aca3e41d37e7ad544fc0f4003ffa1722ed = 0 +5cdd89bd625a48fc076f56f90ee6ba014225f548 = 0 +6b811ff9a575b9cfb7db482df0b942805ca263ee = 0 +726dd8054578ff3ce7c7719e20e8be873f769759 = 0 +7424f6731b5ca4cc5c0a2d05adac872fbe0e3c95 = 0 +8903112732bddee02d25cadc44a5a1cfde3431dd = 0 +a6e6bc1038db1b742f086deff6cbb404dec4c9d7 = 0 +b769805702a0c89516798aa4a90ddb57838c8012 = 0 +bc5812916b7d8898389ef09dad20e76f4f0b6a71 = 0 +bd71cc78cef45eefe882084ed89b1ff7005c879d = 0 +cc7e888ed581aebb80ac5a76763c4e5c3aad30c7 = 0 +d8475b80fcd74b03f4248f2844cce3843d472178 = 0 +eea32c766f020464d51a172965808fab4e22b6da = 0 +efe2c38e5c54a3a5a1525092cea2ce67da4299bf = 0 +f031fd4a701672db5c850b2d43d61d53047027f3 = 0 +f2c36ab8bff434cb5af85ac3a85c4a44d2d0b6d7 = 0 +f759eac14b7f9d145e0083b759a8ffef765bf5d9 = 0 + +[9920b226-0b2a-5f5f-9153-9aa70a013f8b] +2eded6599c8a9e1f23240ca051008ae8a9fda2fd = 0 +377ad95cbaf08b6c38a6163119bc15301d022da3 = 0 +8730b3df5822893c0c744dbd1231085414758df3 = 0 +8e3d1b87e28c89e21714b7aea8ce347593569937 = 0 +b4ea88989c67efc61e03b63911f0e143b3490092 = 0 +f79ed89f842d66ef4b8e4272d3e0b83e2a6d4ff4 = 0 + +[cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d] +2334536c3f67c18cf9791fdbf1c95e91f979f33b = 0 +b0b9a2eb698fda4ee84a3409d9902e572a363d7d = 0 +c172cc5c847da046bbd041aa68f128e8cb9eb713 = 0 +f652ede8df29d344afb1df8b2b9fe58c2a9036a3 = 0 + +[6899632a-1081-549c-8d71-752c8a25a7ba] +18561070558721b4d48e268b8f8cbb77e6789e3c = 0 +9d5a683393f12283e0c10a6a2b18cb47a4ad01d2 = 0 +e736aa3c2a1581d2f706d533f94e3bd64461c937 = 0 +ec94960e39b0a18f6b9d21a2e59dd4a14bfac0f6 = 0 +f35034569e82ef9503a3e6e616b31c5fe618dd2b = 0 + +[66a33bbf-0c2b-5fc8-a008-9da813334f0a] +0378f0cab10728176edce6c78d280cd8819dd497 = 0 +272c7ec61bd6a2ebb40e263f32786e91f82d3a00 = 0 +294b34042db210ec0db160571a1da368c55abd89 = 0 +32f57fa45f30fadc9da7db38e011271b138bb765 = 0 +54cafaccd1b3aa0c6f028864c733ee673bc3d238 = 0 +7b2cddd38b0f16b186b47641f2e4279179c269ff = 0 +82da39178f506f4267416f04c5b36c91d97f4d41 = 0 +899413ad7e34d038c3d53ecd957c797cd6748b71 = 0 +8f7a7f206fc9bb931dca55c3c8861fd16204e3e2 = 0 +90ce402b0126fe7c0ceeed186ee0ad1f103fcdb7 = 0 +a486084590937764f1db4ec5217c5ccaf283d33a = 0 + +[d4533929-f99c-5db4-a653-da41d2ba215b] +259b0f3a8677002b74779d881383dfb459653cf6 = 0 +79ad271aad1dd6752ac1d03c42a789d33d556890 = 0 + +[1e53f5aa-a928-5bf7-8b39-c478a00d13b2] +5d9ca167fc29ea77a26b7aaa424d385fba8be7cb = 0 +ac386b6eb24b2b6d028052d55478ca457a0b8c9f = 0 + +[0b8eec52-1728-55d1-8c35-0960165a0176] +c0ffa188ba92ab5663f04f8337e1b456fce08b5a = 0 + +[da04e1cc-30fd-572f-bb4f-1f8673147195] +13b9ba92e279926b45690d3b6bf4f56d6061d904 = 0 +16990eea631608ea2289441686c174305527f41b = 0 +171569eb3aca85a13a2c2aa7fcc91029d9a1b409 = 0 +2e2bf5e880d009872249c6a8c6cdbe0db6c30e07 = 0 +2eafed4ae94f0e993a447022c4a570090582372c = 0 +37f525454b4186eb95c117eba051e196554e8c0d = 0 +4e3386af7611a0a2398d99e621a463e864bdf9be = 0 +56261899bc3b79a7aff19c0af34985c2aad2b4c9 = 0 +6dec1855d93052505f8f19cb1484f909f8332809 = 0 +6efa4902c4c03a6984ce4d29e3370ff1b11665ee = 0 +909b61426dc802a332109d729b8540f730377499 = 0 +a3281dab02c915ba0e50e3cf2ebab9b0d5d0d41a = 0 +aaa2b58f870de318a1c8f77f6aebd2e252277846 = 0 +b53727864665940d5469aee21ceecddcf6b0d6d3 = 0 +cad330105e19f38ce33469b8e3de505829a76779 = 0 +d55873dc99a7ba3576db4229265af4af1f390628 = 0 +f07e96286f0a9bbb0c283d22a2d8f8443c411954 = 0 + +[bf6389e2-cca1-5e17-ac22-36425c4ccbb4] +169381d2e41d45ada4018e7f9c965fe2731a1aeb = 0 +d48515f39eed744eb4feb9f6b6e839a576310a30 = 0 + +[a7949054-b901-59c6-b8e3-7238c29bf7f0] +0619b55751d6580b153424a7b97166137fbdb262 = 0 +189e755b0ba537d4f81e10d30579931ea727992a = 0 +1fdcb31e626ec914ccb0f22761ffe23ce4f52b4c = 0 +48f423017989d720ed8af3d88b3eb08a9a3272a6 = 0 +54e621e79b309d0c0c185858948e7f920a67782a = 0 +643b8d4647b62e5379e05291e9c472b423c3828e = 0 +67c8bb2d6e319d7a95fc574a76736e5c20d05523 = 0 +7934f672e2449a6c221bb3088ed40c2c6256a134 = 0 +828e4c41b275507744e66d60500bfb996f263d02 = 0 +8edb94be2a4c6250ef4bb26e58ca5fb0b9fee6ff = 0 +ac709d12662484705c409911db00868509c6c9f4 = 0 +e599d51d4a5b2045ec6b7a6c4ef1c87659a61930 = 0 +f099670c9d83c0b60d9dac9f41753dd1490e7eba = 0 +f89abd528d7d525112efab3a02b588bf05f9e832 = 0 + +[30d42797-9b21-5812-9dff-9e32203c7e18] +0fed9c0fd31898b3466ba73dd06286b6816280f3 = 0 +865953f718ccb241c6896413c18cfb160e7eb9a0 = 0 +c9e938f3603d9d856f0cd8e7482d3ae919ef7974 = 0 +e87d90699d13e8bd600600f48c5b380d1ace74cd = 0 + +[850e97f4-adf8-5461-80c9-b697039f073f] +04ba9ccaad69e4eadbcc6dc15936f21f1dbd9a1d = 0 +6b4d3c3eeb25a5eeab874f34c3cf3cf2900a0c4c = 0 +a94d5fefca761fad8c9dc884bec22a9f7c1b5cb8 = 0 + +[bb8ccaf7-743e-5101-8e2e-68c8fb78077f] +f5aa0dfdaa60a2c9eba76c56101cdc13f5fd640f = 0 + +[1914dd2f-81c6-5fcd-8719-6d5c9610ff09] +101a82d1cb44c0c534dc3009a17e40aace59c967 = 0 +19d36059b79ff27f79135cc89213842d4bdaa8bd = 0 +2acea4ff989e275aa6d4cc40a43d2bba7c006623 = 0 +486081c07bead7eea1ed7f8e5814323a47ac30b5 = 0 +536e02222a487119e6d20008d9250208f9a65b9c = 0 +732cf05dd34fffacd44c6f5d41fb43d84199381d = 0 +7e5dbcea0bdee43d0f4ebc2d0608557279c910da = 0 +8ded92884b20d6c356868b5de5c379e63d1b9902 = 0 +9d2a3e685994e74aebddc0ef608e8cee5af47c97 = 0 +e8b6d9219a13113a364e9e212fa0dc89cc6d6fd9 = 0 +ffce8f322b4779ae6c7bb79cca08fcc14c354284 = 0 + +[d6bdc55b-bd94-5012-933c-1f73fc2ee992] +06f54d76a483d12543e97aba1a720b39c7f6a527 = 0 +07739c8a35dc00e3c3c15e61ee23d21de6cd466a = 0 +0bb2d82380f8efb0edebda1e3a40a9ec88166fde = 0 +0ece093182627991004754b21799e99a6c7a352d = 0 +177d9fa01897ba77b775dd9e825de2dc45cd5d99 = 0 +18f8d4f13ab844c17f6b27544502a53cfab773e1 = 0 +1fa56b992dfd186d2c154fb994365e93c1761292 = 0 +1ffe5a11fe62dd6e9a1c0bfb906d4f35efdef7cb = 0 +2299349e183594e916ced53e2e6f72e26cad09ad = 0 +284939efd1b90c343ce113cb14a8ccb069644dc3 = 0 +2b348784049e976d7bfae22a3a370efcc14c2553 = 0 +2bbe89486d5f93865950c13077b47c7eebc78a5d = 0 +2d825dcb650301b57f3dd1cc03452a96a15ec8cc = 0 +2f7d2758d2bbb9123daf390b23c228ef77135286 = 0 +30ebf018b309c8036ef9dfc8e1629d9669ff6d6d = 0 +318dbd4434cdcee188d3d52a95a727be611fb859 = 0 +31f0460929e3b234ed7f8b8a1ba71a8e4921c944 = 0 +32bc98931003eacd5e49c0d04ed4886afce980bb = 0 +33972a533ee3d937047fc88ffb300b97e8e27db1 = 0 +349b2665673e9c6522092a6b193f1c9a7ea9992a = 0 +35595e42df586741ebd045b25288ccbfdcfc0755 = 0 +3c2d38d2965d505a90e9f18b05518447250f9638 = 0 +3d789ab8476da74e6d14d73dc7e7d433af1420b2 = 0 +406a56f8eb3c73d78bce3c4cafdfa61a550c9fa6 = 0 +4680ca7b42d1cdb8ab8e702dc30a2f52f0f22d48 = 0 +46ea00ed808b720ffdd422897d9681e7dbdf6205 = 0 +47584fe03fd235b4dfba2d2f9db64595ff05baff = 0 +493b9eed78de6a9e10c3765b7bbc8ae9b5fd68be = 0 +5019998ad297292a60727e2bcf2550b7577aab0f = 0 +58fcdea9092236f18fdcb15fe9ad14f75b302620 = 0 +5a46e13bbd1ebf78e83fe030236e42aa2d5fc05f = 0 +5b8facbb3535266d09e376ca3875220de7bcc821 = 0 +5c083cef1ee3837e359195eefefead73e6a4019a = 0 +5c78da0e190760e49b927d1f08d5f99cc84913ab = 0 +5eb243362efd668b56ae398d281f5ccf529a7c2a = 0 +67093eb101f9a83e3873ca95bd2ba1f1657bc736 = 0 +679db41f0d044e304cb862cfaf50ade188c4dec7 = 0 +684d42ffca8ac817f362c1083c1ca92b630f3eee = 0 +69699c198934957647bff0abb2ed8d5910641987 = 4096 +71d6f8caadceeecaf680719a816f3de3d445b5f1 = 0 +7895518216d19cb3660ae65d0d4ed81cf18a2eed = 0 +7ec7356b1c709891eb36c15fa82c91f8d8a6ec21 = 0 +809c73984cc4b7a65918264496feb478e041812b = 0 +870186bb8c73017707e8585cb9773bc486ad3490 = 0 +870ea0b070de51be633cf19f7979f77f5834760c = 0 +8825bee8ea8c96406526c1b67345f42ff5be7f43 = 0 +89d7bd169891227560d74ac90da30eff85b198a5 = 0 +8b46867fec672360a62fc7e055929dff9103883e = 0 +8fe02bd9b4e51b6edafeccfcaee730be08bb97f8 = 0 +90760f55f08a253c7a05cdf9086d418c1c24b21e = 0 +9261d79e3091b06c51aab46d326b7d28633ef92b = 0 +95643fb0a10e36fa76e8e51d0ca8a90d81d1d4ad = 0 +97845319c5032002f5a628cb4974b9c439a0c138 = 0 +9aff5a9b5757090ec4034d2d248293940b948a9c = 0 +9b0e19c74e34232c2ed6f65b63639ae05d4eaf78 = 0 +9c4f2a40272cb906533e82a1a6dda64fcfaaeb62 = 0 +9d599594a26e3a9e968e1542a7d1cde26065b998 = 0 +a3edeff689514e298640a5740e823c0dac1d72a4 = 0 +a634b00244f8c58313f15d17abc378be15992cfb = 0 +a6e33d857a1c25c06a85f49662560d5729347157 = 0 +aa4087d85332e01feb51ae5b153aa31f81369c81 = 0 +ae5fac714124f314e5f867857d45f7dd8bdd3ebf = 0 +b1bd3a06ad17e38f00fe44ccdbe1b2f65c57cd2d = 0 +b78bed5941ca35b9a1f6df7c149712b005a5574b = 0 +b7d05111cfb7979313981a572d421abc0599613b = 0 +ba31d323335994b5c9fd5b9c87624c5669428805 = 0 +c1ba298187fba8b900b309e1399b2579e43f5896 = 0 +c20eb3a4cb44371c8ab207da82dd1810c2e9b1ab = 0 +c898a14d7cd3081904950c442f6890d94b18eab3 = 4096 +caae69cd519007fbbae7389cff3613a7b4c016cd = 0 +ced775fb2e9f76ec4cce1b379b5eed60bbdf8f93 = 0 +d3913aa4e7324b09f2a133681141232c5272cec3 = 0 +d3d58273ced974eb036ca9162edcfd75981e8fa9 = 0 +d6f0097ec4ebeb8d5e36d37ea2aceb741eff3b9c = 0 +e14a05de4b7b5a659cbef50dd78328ff69a47656 = 0 +e1f2aeabb2c90ed676ffa6736017a7aee1e9a896 = 0 +e36e8746d1bb024450321b3a15d67043ac41a771 = 0 +e65242c1e9d1d0992cffdad21bb5813ff904ac1a = 0 +ea09417ece0444628dc170dfb7612c50dc422481 = 0 +eab0298d26b0a5ce46bac64b0707fef4e2e78b4b = 0 +f125e1adc5432ba45f52829cd5aa5145b425b1cd = 0 +f4e76a02178ac8c6c88376200d2cf384076f6b85 = 0 +f73e02cc4aeb5cad75187d850194b3f812a3db2e = 0 +ff6c1c22e3e59cb85dee63ca1cbf83f6ea652c87 = 0 + +[0d8eea64-f1a1-5e4b-acfb-dd13f4d7386c] +058f98946525426e105d233b17d119a477dc592c = 0 +3d7cdcb785ad68b723beff2b91b59441d7df9300 = 0 +a096eac20a72cf0a3c6ecd6e03eb1ddff68e6c63 = 0 +a961259a0d67c44487d988bcbc359d48e2ad0593 = 0 +d761c2d1405681ae31f5b1757635e038cdf75464 = 0 + +[5424a776-8be3-5c5b-a13f-3551f69ba0e6] +0043e9333af144f272ee86c5f46fa1894d45d9a4 = 0 +0c11aaf73b17d910254a98c92efb2e33ce805f84 = 0 +11ccf511683f1e867d36d48d20959bf1d7a91a6d = 0 +12a502c24b6673d6073fa79fa9fed1a292702048 = 0 +1957124f0bcedaf88c29dfff64c025eac93f5d61 = 0 +19650bfe753885dc512cdfdd2f298b0e3ebbf66d = 0 +314257b212397df5b35b123b90085445209cca2c = 0 +3d48563a7412abb4ec3fb9f49b43bd791bef89c5 = 0 +56c94d19e6d8bba3adceaa212de378405062cc46 = 0 +5bb2340836fb46edd11eea62331ae5ebe31b1a59 = 0 +5fa9d1dc0b1b5425847e84bcd082d52c797a3055 = 0 +7da8e12b74e0489926bd86b7f713a8f92d108130 = 0 +80c744d2ad72382e09f3b8f92e1f34e13e7bf0fd = 0 +81cecc02a7d525c4dc2482845b6c6447223ef06a = 0 +83db0b273f9273c86da25f6f3e310d3d44b37134 = 0 +8cdba6583cce552f12640fe9c187fe29bf3e31bc = 0 +95d60c313ce95a2a4aa5179c3971e01da8957f33 = 0 +97e18a8f315ab0c43d41a4325d72be07847f87ad = 0 +9d13c80a2b721599328a8b5fec1d426fe9dcb567 = 0 +b6a0ac5fa511a37823a5f874e289d098c12ea0b3 = 0 +ce0a9445429bc1f02e3689e013725ea52a2b78e2 = 0 +e2dd08835e10c3a38bb61658eedf9fb6a7417644 = 0 +eb9b8e08938aecae50ebd038252c063b9ecbe4de = 0 +ec76a8410a92893a53069607c591aef0868c03e6 = 0 +f1d0a789068cb8cf2dee5ec77088dd47dbd21b61 = 0 +f64000611df0615bc7d3e689c8c8c00d77f8bc96 = 0 +ff81400a03b47ed2935c544c6b725b06a2f26aff = 0 + +[abae6431-9fef-548a-acae-ed4840f45913] +8a378fc878f340e5c95930a763f6dcfe9fcbfccc = 0 + +[06eb3307-b2af-5a2a-abea-d33192699d32] +1f626ee818d81756e582aa9cd83e439bd0df40fa = 0 + +[dbb5928d-eab1-5f90-85c2-b9b0edb7c900] +24b5aa8c089f1490a4f0dd230be3b7baf71fb171 = 0 +921c007b7d9fc2e3600273076e2fae4ec66a2c5a = 0 +ac9871a673506a94253fda29fdab48cd35366938 = 0 +adcc01ea5a86f43082cf0a5a9867e7e60eb62524 = 0 +c907bdeed26b9ea044893feb492b0aa89881a514 = 0 +d5b8d5cd04e5adfceb0f7b4dba13690cf43b9b67 = 0 +dc72f520ba499b4bff66dd3fe56935d2a33fe6e2 = 0 + +[329a7628-3119-536a-a060-c6b2f8e35265] +3321c6fcd09cca7c484a21c6df4e20be0289da8f = 33554448 +a15eb83a2748ce1c1556a168882fd6900a162888 = 0 +b8fcc6c9e75d1e863812f9b6df9839c06185aac4 = 0 +bf6d67888aca8e8288a870b90aa75f86fac9989e = 33554448 + +[d6f4376e-aef5-505a-96c1-9c027394607a] +02e48e287b73c2cdb150e63cbfa4b34e2743461f = 8192 +420fe4401ddfe08d8d341aaa8b82f9529731e7e2 = 8192 +738cec2ef21210cdc0370673503f74678ba31e9e = 8192 +b733232847212548ec7c09356f53eaeb2e59baf2 = 8192 + +[945b72a4-3b13-509d-9b46-1525bb5c06de] +1d593c2a3a2a4dbdba9c197a32ac7dda75c34f40 = 0 +328347e1687aa77b79c318e0f205ac7a9d88a1f5 = 0 +37dc75a2ebfcf5aa84dfbf722f10727a68bad977 = 0 +479ac835e3ac1b43353ab25acd052f15d1176fa5 = 4 +5aaac5677a76ab9f654fdef1225e1038c092e8fd = 0 +690da07c940cc50e289da4b9448b5acb5167ac58 = 4 +74644114ef34842a2d1ff6db2b339ca6061f1c93 = 4 +8fb7b091c4e5851fb7c323a62c07495ac8138e41 = 4 +a6d8862b36871ddbc08d2010361a500f65cebb4f = 0 +ab98488e99b19d988d1e5006626dc85542cadec5 = 4 +aea13f256d7286b490003229d49ceebd1c4bddc5 = 0 +b79628f831bcbbd3e51f0a2a08422f2f6c9d9235 = 0 +d3e7e37355076f7a2a4a8675d041abe6ec45ba7a = 4 +d754959581010b230bdf9a513ca3c0e8ee790ae1 = 4 +f0a37a3003b5990f3daba3dd36306084bd83acdc = 4 +fb023532cc53209d917e0fc85a282d4db85dc753 = 0 + +[4f8c86c6-9e40-5506-9807-98571cb48bc8] +0ae1fe1869afcb6db01c98b7829f1cfdbba7232a = 0 +0f27277c71bdf02e451193aab0bf2e76ffeed431 = 0 +11186425c15b95711303463da48184578d99e8a8 = 0 +2756d6f24483814912d689feb986a66b51837ac1 = 0 +3fd3ce089b113e6dda09c96a64699d43d544afde = 0 +4c301509fa73620e006ed34c82b16ce12b55f2b5 = 0 +5aa7ef57050a6eed8bd1cbf71213b7417251534c = 0 +6780a0c0007df6ff7271c54eb441697d2a985da6 = 0 +723ff233ea9fab69d09f8fa41c123b08455a4848 = 4 +99e725058123913a1ad86a8a7d4ef23193492da5 = 0 +baea8cee53e8cba378d580bb1d8c94d895dfef05 = 0 +bf0a9511688647354fd10848c10abcc3c8fc72b3 = 0 +e4ceb82b9ae3434d78182fddaff0559a6850e6dd = 0 +ee14965a84d8f4442ad3e57ac478a6f27dbeefea = 0 +fcdb4cef4d5da3fa0d17fd236f0f93ccf7ba72b2 = 0 + +[bc7286fa-3078-5079-a241-9d8ba61a74a2] +6779880fdd8aa7f3ae96e896fd26912fb9bdbc32 = 0 +f81ee0395fa01660b18afa99284a93aa385eb18a = 0 + +[7eb4fadd-790c-5f42-8a69-bfa0b872bfbf] +04301908e7b5f14dd9703ca45cdc3ace4f0b687f = 0 +05cf6bce064815978c4b56ecf23e600327d4e881 = 0 +1c980a4299a04d2fc0d0ac5041ef122c38c6b736 = 0 +26d83a6b424c55b2cff557995dccb10f9cf278cb = 0 +4cf429650df0df1ef9c07ce7ac0d1e5a523a30ae = 0 +59ca3fadb97a1526614aa39a5a5382e1d31feb7c = 0 +7b28ce1d562b56c1216a07bbfd465f86d015f46d = 0 +81d95d7e85afa678e78cd166e60a0affe055061c = 0 +8318e38a5e5f7c528af6db02e042f5784ce079b7 = 0 +8cc1cade164a5b851102a09a64a97600e1ce5799 = 0 +97f73ccd58b1c33c129c4b46af6ab74ab9c90225 = 0 +aa3465f838c56616009caba6bbd04f1e6395a898 = 0 +c6328af4621141f2b58b18d9e7e5d4f3e59611fb = 0 +cf3511f5fd597293e56081ab98370ab3816e1a86 = 0 +d0d92ff5611336aa59dd30d2d3344b8de0fe7006 = 0 +db46113d1c49583534d5c61e3ec208ac4bbcc311 = 0 + +[8d673c98-5a32-5a15-b616-7dad274ffdd7] +67e3214cd3b7352ef772ac3888717d1feb77e7d9 = 0 +783dec826ed2556db5832aa59ac5e81d8386601d = 0 +92934ea5058681aadead2fbc4861535be0ddeb6d = 0 +c9026381539c34b6ba7c342e62c1557e4c39df89 = 0 + +[fdba3010-5040-5b88-9595-932c9decdf73] +0132f42277c90a866238bf18ebf8641a9b5d7466 = 0 +038e07f059fec0da5180253148cef5c812c203eb = 0 +04de880875a93f3ed0ceb2effea59d6083932bc7 = 0 +052d9a5741f26d1c1c17ea6084b9b2fbb85d43c1 = 0 +08f73e736d01c04255f09fc76eb2972a03d8a422 = 0 +0ac0333881ec2af0cd09e9cb427089295a496041 = 0 +0ae3dc86f8d2f9e9f8abff5643ff00da3fa0a634 = 0 +0bc8fe042c8aff25ed87fa91ca0f6cb3d642d0d0 = 0 +0d3862b8bb6a36e0e705308d9fa93f0eb490494b = 0 +114f6f60649af23c9f337c61bf1288b63e6bbc88 = 0 +119129282ab5b5c95c66d667c46b202aeb4e3f08 = 0 +1685462f89a54bd305296bc9b2529459c7b82c18 = 0 +2344fcbfb58757bbb18bfebcba9ca4ee979bde0a = 0 +2a4172ad577e9aff9abbf7ef0cd2bb3850179ff4 = 0 +2b6de3dc81118d8b4b51f5a02c827aad1b047ff5 = 0 +2faa7b97af385f61ea2e829512b5fa1c1c2ceab1 = 0 +2faefdf4a3b0c9573a8282dd8c7fcd99cb9fce52 = 0 +35f0f99cafe04c140536404ff2517c59cfecd419 = 0 +3a4e56d243cd11bbedf18bd95714415a45c324cc = 0 +40cd2712bc12a3a6d2b52f956e306bd22f76b7d7 = 0 +48f191c2b9ecdb63c38ccf601cc7f34d321d4cd1 = 0 +49549bfbade3aca5fbbd1e5dd83a7f77d95db463 = 0 +4f92960f0be59e4b6170f6cd473c3aa6305d882e = 0 +593592be6c77fb2e4faa2a5aeafd313fa33e5b64 = 0 +5f5e035a6e1ef45f5f041f8d43b39dbc9869c8fe = 0 +6115daa3f330dde47a993db34b78e65880bddb84 = 0 +661b67c9104aa0b8faf9ed82a4192a899135ba73 = 0 +6e47243704199340d38791ebb903833ab33eb75a = 0 +725dad5f8a74720ba9d58fff97878d1583c14444 = 0 +74a36caccb74338225136550d9a71d3425329e74 = 0 +7529596b0596027df1d262e33567673c33893138 = 0 +8035f13fdfd1d038cc47bb64385f4cf8bb3dc320 = 0 +84b5866448ac0891371f6e9179d06d80b35f3b5d = 0 +84d657f8606ccb0e5bb16d2432e3276b946b01a4 = 0 +8d108067a7bed6902ebb758fbdf82079872a2181 = 0 +925f626e458f687e4b28b0839d022dbca30505d4 = 0 +9a2ef0dda2ca167a769631b394ff21ae2cabc483 = 0 +9e0b626f34c2e001b6c28c4224f3cb6630b2c073 = 0 +9eaa9a8bc6fca6bd3f42769b19b66863b584b49c = 0 +af570747b301fb794751da7325b051ef7ec07e46 = 0 +b1a98ccbe2f71bbc6da6c28b43cb9c4853b92729 = 0 +b20de5a8542bd4b34eb20ac4fd50542c48bebf03 = 0 +b31ed608243d9c6f0f06d40c7b5d7675d70e3edf = 0 +b9256567021e2eecc85c0c2dded57f14fdeb8d4f = 0 +da721ef453677135798dca3805c02ecd84283167 = 0 +de0e7dcce8322936755a53f6bf0b62b7843fc03e = 0 +e0699bbb163fe9df4cbc890738c5f7654b292370 = 0 +e6d6b29c8de2be80cf840021b892ce83508ceca5 = 0 +e91bbd7432b946dac18c8427d505a01bfeab6a5d = 0 +ee1a36736a41cfa2365c730583a9e8f3256625c2 = 0 +f8859fc3e8523ffeeb2c9ed4db6b03f81a79ebe7 = 0 +f8dc60a13068062698d9b17b9ad33dc28a49c8b6 = 0 +fba7cac1d932a5801d8bda227e59fed49eb7062f = 0 + +[a6c510a4-1742-563a-9b70-2e3db6ca4e08] +59ac29847cbd5e8b2e21bcd1b4f7877661f9e868 = 0 + +[253502cb-d042-5725-98ed-f972bb437cdb] +8ae1cfdbbd0a309033798cb47a49707b97d6512e = 0 +ae0520bd343c6d1d1cc872c23a6152c38ce06c27 = 0 +cf2d082a4bafa1b33198b0377cf5bc4550f32608 = 0 + +[54e369d6-cc75-5e05-8b0d-cff347536085] +3a0b7ba754f00c46ffb59301138e152cfbafe4ee = 0 +3d12bafa8b84540805e0a247ed48dd6153d3c11f = 0 +67f5e45cd2090351f84f769b06b8df577a0deaea = 0 +a8a9ca1d35d556b576a91641c0f0ac4f5991501f = 0 + +[c59b8745-e483-5070-b3d6-2d5cbfcaf4fe] +50e1d445989f80d479ec09c1ecf2910284544ad3 = 0 +51988081f7fa3d44c7f5970fe0c6781cf63ccabf = 0 +58c728fdc3af8e333f5c9012d25f2d4f45d61da8 = 0 +5962712ccba894a59f87c9cb672b5caa11a5c107 = 0 +71bc2bd2a513cc231fb75eb9ce3422051f52805f = 0 +a315b3c27edd54a839fb083f9e74b3cabd708ae2 = 0 +f727b8ef19a4f4eb401a650384ddff41737d7a49 = 0 +fce6beabe6364673cfe004f3b5784e4253c05791 = 0 + +[f01a5c79-138a-571d-9c23-7d209c0b0a14] +910773f93f15ab9d4a53ac928087e3c5d7e8cc20 = 0 + +[b51810bb-c9f3-55da-ae3c-350fc1fbce05] +0431b9c7ed682b77f311be97916a09a454550482 = 0 +05767dbcdd7b99d2c269a293c2063a0187b20a7f = 0 +079884c314b183becf2297c85245bde90b8509c7 = 0 +16f3d3d091f54d64f9b79121679f34dd48ce6cad = 0 +1c2fe16f5d7f4a015246cb3d423b5f84627ac541 = 0 +262a4138945c166ec2c265cc20e6484140021e5a = 0 +418fccc251c95219e76fca37230b6ecb7348b030 = 0 +51f7980c24c8a68b58f5d197334c1005034429c7 = 0 +5f200ce6ccd57c0859234c3564a17a4af65ce44a = 0 +6480a337dd44024eed01c4b7a51604f575c41e6e = 0 +65ddac8022ec0c7905e3b54e770c4d65ecca4a78 = 0 +65ed952bd0c73f6c1be097134dca78aa89b601c3 = 0 +6d073680f21450e75575a19dcc72fd69ec4780b6 = 0 +6f4007fee5e4913728246cfc8440f83919c9df24 = 0 +70bf5ca78b6ff8ca362681a477510068900e71d6 = 0 +7bb96b81966f58d18039bfb00135809877a5d208 = 0 +819ec552d48850ccb46c2d0bed6e63c8eba8dd3c = 0 +8405f60630b70f278ff004452db8dc517734a633 = 0 +8662b9159f1af81adc13a8531733d01be758f2c4 = 0 +896645c7ab1d609fd3218fcd68f0f6af7a7e6717 = 0 +89c48192e4feac33c47501927182b46882345789 = 0 +8adb26f2aae4bea5115120cbb333506d7d1cc854 = 0 +91f871600056dedd1c5daa3297785468dac2dbce = 0 +940f9b912f73dc08df4eb07e7fbc0bc17e274980 = 0 +a26519005fa4d102d05fefeae28e8a8c35661588 = 0 +aadacf8e12da2a9d368aa057f7a108167992654f = 0 +acd9f84fb65ec0020b08c6fb77ef294035351bc0 = 0 +ad0c3c9db8a809502d1c4396ccc3c6acb97b3d72 = 0 +bc9d53d638987acbd479273dfacde6d9b7c79864 = 0 +cf9e690926ce2e855dd0217d725e6dbc57a1a62b = 0 +dccb78bd62474a87184744b03da1fa6534249474 = 0 +eff1006c413bebc32269000ce1cae089d7dc23c8 = 0 +f814e56011aeb5f1bed3c58c6386099eb9e6800d = 0 +f9428150b981cddd232a39eb10fa7c40095187a7 = 0 + +[4d4711f2-db25-561a-b6b3-d35e7d4047d3] +21dc549844598f6d71c5eed4e4b7ca6f379df678 = 0 +44ec58951ff22f7b3861849c701ad605e5796666 = 0 +79dd601afbd2717a92e37524a57e8ea2050bb64c = 0 + +[4f449596-a032-5618-b826-5a251cb6dc11] +090ebcceb9a2ea0ecb0063497cd7f65328a6083f = 0 +5716410758b731acb3b79ab9b53173a7d838f1db = 0 + +[e6386f5f-9a8a-5a5d-a605-d2d61207ca5a] +6c7bfea54738d190ee1e7271529e6d25405fe335 = 0 +890f5945a56e12ec5151f3d300619b8654ac337a = 0 +9b1a72ab5e47eab8a817f0a178fca7440b4e8300 = 0 +f1f6e9b2b79d2747ed3caf75ddd4a4e05f64dea4 = 0 + +[9cb14a52-7b5c-50bf-af31-3305bbc37d16] +0c053c4322f1bb582e597ff9be28c9c3351dd6c2 = 0 +3a12c07236079f5adb250c61731425b13024eb1d = 0 +88c8823b1e22a6df8ecfa02026a4c1f003cef4ce = 0 + +[739be429-bea8-5141-9913-cc70e7f3736d] +09a856f884542722bc3ffca9fab12c57fe2da5ec = 0 +173250ee12dc581fa8f22d8ab5173a89e528497e = 0 +18dfb5cde748f601fcb4546316d6f1deb8556d21 = 0 +21e642d0e5d302d503a705e81846376fe1fcefda = 34079744 +29b7c9424d7e1c32d8c107de27e47b90aa35655b = 0 +2ca7a3cb6aaf3de0fc1fd7de9ce7a782958e0cd2 = 0 +3fc47bd49fc59e33042cea50e9228f68e8a09d9f = 0 +43e1a4552063566761ea72bce47db0aee44666c8 = 0 +545b9f463873b8b80407aea6ecab4f498a7a1b04 = 0 +634d9a9a047c4b9b094eec1fdf38e37b16d4a936 = 0 +714b8db68060a9971d6453bb915b775e4a579d18 = 0 +780c9187bf2d02b2f063052ec3e1c29cc04e752d = 0 +7f54bb13d23e244b9687edb46447e96498af2eac = 0 +8f1a1757cab75325ff909b495208996009bb0496 = 0 +946d9389ec707bfd0cbd78a20141abe0d8f2d703 = 0 +97a24eb845646a9b0ec3d79a93d51fcae2008dc0 = 34079744 +9f143965da1673718e25cbeb9492aac7fc22c9a4 = 0 +a4bcb6826f8725a023894308c77da996bcf0a645 = 0 +afd2ef93ca24ff231f1c0fb656644f50bf1ac14e = 0 +d77b6d1ed576f99ea3adbcbcec2c359d692038bf = 0 +e1d243fc4b10704cd79abfbdaf98952418d1a983 = 0 +ebf39081ad7651288858f5bbc6bdd4b490e40b7a = 33554432 +fcab83b78243c5572ba80454cd0e986b587f544b = 0 +fce850db371b86616948901d09d4f7962d2aa229 = 33554432 + +[28a8edfd-32bd-5648-83f9-9b597c29a4fc] +0698ba9653afe97a00d1af07f80494f430460fec = 0 +0cbcbe431182e920a4f67ae048946e82cec34df6 = 0 +2476ad9d88e6aed688433b7aa6fc8223f20ef392 = 0 +2e1d098d0892e05748cecdd10a08f4ace165f352 = 0 +852d3b7b7315697c16ae3ef2aa12e2965ac57541 = 0 +c4f3cbfd7207ed2fc7e6064b9a220b94d398f92e = 0 +c8db872dc22df9e55bc2923d4c1ea06bad38f6e6 = 0 +ce7b61aabebbba2ad1c3dbce209634c5d8996014 = 0 + +[eff96d63-e80a-5855-80a2-b1b0885c5ab7] +013caa01b4ee6449d07b13a983e0f98844f98718 = 0 +1eff4dda6582a3b4e09543a335fa9625221febb2 = 0 +201d30ec44fecf9428426d72ec11cb1af745a2a3 = 0 +2d775a71875ade7b5046f557887832e365a3a7cc = 0 +3653592ba191451f8abad2fb5338a258ec637cee = 0 +641fb420d18a905f4d5f131d219c738665a05c46 = 0 +6c41199670374fdc749fc79bb3f63321368317bb = 0 +80f3ea60bcd8bfa2d0d60a14ee54da0817b89492 = 0 +8935b73c6b1182eb87bfb6ffe863c18dd29a4f5a = 0 +d1d98100bde67e5576c7e84ce95756026c3ea2d7 = 0 +e2dd5bdf4ea5cd8e676f22601cac67238617cccf = 0 + +[442fdcdd-2543-5da2-b0f3-8c86c306513e] +82a6c6c7e5caf8ec5d7fa15baf10527bb79f133b = 0 +82bde724e6937c7f8f9d2c3c281f140bf8ff2772 = 0 +8abb515c407d6ce82566ac3f0776f6763dfac0f6 = 0 +db6e95584e7b957e1cc175a800c49c1b24949f25 = 0 + +[e89f7d12-3494-54d1-8411-f7d8b9ae1f27] +11c451e8c196a2cf031c95359d5b3b6fdca8edc3 = 0 +2fae93a4168816c5b44fa2aac4b86d62fbc483aa = 0 +424bcbd24dff08182b05ec7848ee5ad8c52e5233 = 0 +4d4a247d58048c814919c0dc734ed3154130abe2 = 0 +7a70fddfd73890ed060f9188eb0bcf6c3bb09072 = 0 +9024124519402c619748208ab252344bc8563448 = 0 +93ee4053e70185e7a8b128181b4172e8c110dc8a = 0 +c749dc530397e6299271a50fa7a2794af71af8bb = 0 +c9eb37cfa6b7f186fcb82711b4f5ab64a8db5b05 = 0 +da904a4103408cc8fc4bf46c0734f7ac97e24f4a = 0 +dd6d2f1dda2aa6d183bbf4415f84a220cd184504 = 0 +ecfe7c94d1b4bc2409e7ebaaeac3faf5b6469fa6 = 0 + +[89d8d30b-2485-52b0-94e9-e2a8fdf814ee] +246d0a390e99b8993372b581dec8e0d38f6ae73e = 0 +6ef8fa131297340e1245f8e003b5b943605bb6c7 = 0 +82bfbf1b776fbdf1807ee9f1822c644ae3611d26 = 0 +d8dc42edd00fb8887af91eb9f108ffba3dd98e6c = 0 + +[f9f48841-c794-520a-933b-121f7ba6ed94] +28c1c04c2f17d3e081d9267d49132a0f6b616a83 = 0 +376c20defeeccd6abebf150db4a312a46a304a32 = 0 +41a21248e32c63e128b499632f49809eedd09ede = 0 +473272045ff97c122ad13c56b4bf59a365647ba8 = 0 +7846aca83d1209c789bdda32e0d3fa7d5ae333ee = 0 +e861ac825e167bb043caed709d28036f31018a23 = 0 + +[2542163d-3f63-581c-abc1-15efe995b982] +2df712fb01d451cb98c173c182a4ba806c02b213 = 0 +5cd84a5f4c26f9f668a2e9547e60ca2d462c6f35 = 0 +6bf1fa8c22a8782b4c9e940a570afbf8152e92d2 = 0 +6d8affe7bc56e9fb52a0f8c2695194061c6cbca4 = 33554432 +cdb7d5a1b59c1a1f234053ee06d4e06eadc0b097 = 0 + +[f28f55f0-a522-5efc-85c2-fe41dfb9b2d9] +1d922ec3b9adabeb37381d1f400e1453510d522b = 0 +2083a54cf6ddebbff5a9435a76d5158359c677a0 = 0 +57069cae0e99724f5913d7e50f54e55af8fa5564 = 0 +57ce5c92824a388d5cdcf6e9813c6ae0b935cec1 = 0 +626877b751179c5004cc23474a12054245ef9b4b = 0 +7699840f692bd2d50b7b86ea5cb8fa25a5bfdf6f = 0 +7ab0c4d75bf66c543173393b70111cf81090d788 = 0 +9957111ec03dbe2e258b9ba06ae22e1df72f80ad = 0 +a0d24d75c45270fab95b355969751dfa7f4a137b = 0 +e2c2181a569e491a5c854c3f775483cf7a0995cb = 0 + +[c03570c3-d221-55d1-a50c-7939bbd78826] +1c920e002b7a203eefdc0096306c9320a6fc5289 = 0 +2a103a7942a557eeaa026ecd25bd697f1457af18 = 0 +aafc92f0d8e5441fc850cba0993875724f3d8550 = 0 + +[abb419ba-9efb-57ab-bf31-c36f6031d4a6] +082a0675316065528f52871641b2754da9388d1c = 0 + +[1fa08884-6cdb-542d-8938-eb45e6bbeb56] +1934760e8cfdf01c4b6a47289c443ecbdae007be = 0 +2e203f7155ab16f1290c1eb230f38e91cf80f50e = 0 +50215f1edeaed0b9505947cbab6019b363271ad1 = 0 + +[80f3d04f-b880-5e6d-8e06-6a7e799169ac] +75fec04f592a274a29765cf3fce76d31a3f3b296 = 0 +a1afaf1141e255251a839de4fb33bf0d965b0042 = 0 +ce29ef184779873c3ceba6688710536aa2f3caf0 = 0 + +[5b70daea-9db9-5a46-aedf-2142e553ecc5] +0b1c81cf3f69e84ba77cb4ad4bbc99352ad23a2d = 0 +6201923396f2362d6955daa04085a3c49c45c0f8 = 0 + +[7269a6da-0436-5bbc-96c2-40638cbb6118] +01792037384efbcfc6146b71c71f45bcf490d760 = 0 +0a5cde445c83b9eda53066b76f23b0f4d3fc4dd0 = 0 +8e31feeaf5186cd762ef578ca8f8f2f283cb5b51 = 0 +9e8cb73ed7d45e0e5f77ad527a499545a314eda1 = 0 +d00ac72fe61bd175e393dfbd469910a139228006 = 0 +df3323bbb328b503acf832e60fb713c4f84f5bd9 = 0 +e145c9f11f15048859d2485ad4849932d66eea5b = 0 +ef415a41fb14922a00867f592ef2b0cd93ec6e89 = 0 +fe6878bbfe501b4f00c938d37cd0c6e5e7cd0fd7 = 0 + +[c6c2c802-0684-5987-8731-4f4fbc620292] +27b26634678534d78a995f2428ccf84c09055794 = 0 +2a21b1667d66cbfd84f8ddc03a884519e9188789 = 0 +2d16ec43756072851a327ac402279ab648dddf71 = 0 +438f0d2bf836272fb96f6a11583edf36ef05becc = 0 +534cc58111636ddd837669ca156c44c1eb24a8a4 = 0 +69ac3765ab247e9d07b0d27bf33f5c97ef90c8ac = 0 +adaaf324da1b5e2904cefd7fada66adcf6c21bbb = 0 +afa011ccb6b338cacc3e1dc2f186c6d7370cb701 = 0 +bed89bc67254ba3ae57d7caa49cac242b21254e9 = 0 +d336f25b101c7c9d27d9c5b08f2f6d110803412f = 0 +dc51058981ded32880907818e892f5a629f4b0c2 = 0 + +[e6723b4c-ebff-59f1-b4b7-d97aa5274f73] +2ed69bf4487a3c81eceb080d4bce40f59f107cac = 0 +3100f8e64ff4ce23d47031e7153b9c5ad714afe8 = 0 +6722f25f79702120fd4d74070309ab98693db4d2 = 0 +c1ca1f6beb44c01a8bb02e6978ddd120b0872f68 = 0 + +[4263706f-63e6-5d2d-b5cd-cd6834b0c510] +384c1461eef2627ea75343f56a842bb63757e666 = 0 +a0f3c8829f23127be82e3539c13a51f995420fda = 0 + +[626554b9-1ddb-594c-aa3c-2596fe9399a5] +130f60c0fab66fa183da1cf65bfbae93f6b66cc4 = 0 +558c7bb474caae1c1843e4e9c5faceefc439fb5b = 0 +585ecf34b917a6676864740a0cc5b279f0febf61 = 0 +7aa9143a9fea334cf38800e7e151d879cd17bfb1 = 0 +cc75c3f295c4f6cbc76f05a5728ec160d78d0495 = 0 + +[1950589f-4d68-56f0-9b94-9d8646217309] +25b93e581bde4ab9428385ce68ff0c5a8c79c73a = 0 +c8e92435ddc65fde715c6344dec2ec4c8b46495b = 0 + +[b1909ce5-9a67-5ea4-ba1b-9d85528f5779] +1dc18410c8ea8a6b94b819152b5346bcf0c5366e = 0 +413ed34ed78026d50508946d74b536d86710ebb9 = 0 +4c65efaab4fdd734f3ef23d15371fbbf11243cd3 = 0 +5853e2b15ab9f9ffb14fbb39dfbf9c8627d9cf74 = 0 +6488c4e7175c241de584a41ef4642be3eac634fe = 0 +7e3746c3b4c8565d60c16e462fafc27916c8d84a = 0 +917cd20799fa87a6818303396fba7e6e4204538c = 0 +a67b92f96f9ef3ff2c3988e4a9ad91f437fcfb87 = 0 +e33fd54cb6cf1d2629530141add29ec0ee8091f6 = 0 +f52f97925647940f436b0f9942c4f999f5fd7704 = 0 + +[13c4ecad-ea00-5001-86f7-0fc03bbaafeb] +16f0ea771bbce98e7a4ed3027227bd1cab9ee085 = 0 +1dce8f39470f3c41efeea3301a367c965331e82e = 0 +2d9fcc6d2260197d5bb183a5f84e84bde7b8e39e = 0 +36536e506cbd9501c27d901c1b949858027a9603 = 0 +792f328e8a0128021a536594f14cf9933ce83ceb = 0 +8b3e8ab758709df1a17bff065041379a32334926 = 0 +a0f15518bb5afdc364a593298a088a84bbea150f = 0 +cfbc54562ad26a0a71bb4207e4da677a3952039d = 0 + +[804b2507-ca04-509e-bb29-a411f1881c77] +69132ef3e2a4f60d251279206d71da761a18234e = 0 + +[2679e427-3c69-5b7f-982b-ece356f1e94b] +11cd9b339af5ee6a95da1152c96058cc37787f09 = 0 +2f5d2a2b251c9973c337ce24cc86b0fde35a34d2 = 0 +3cfd24b2fa02801d748c8cb9fadc098b3bb906ad = 0 +6599bbc5cf86dfab2ab79afc1ed772dfc2647f3b = 0 +9609060e58d8010f2912c60bd21bd2fcc59eb146 = 0 +a9fa90452f6493ac87d2f2796289d78b02d099f6 = 0 +b9da91c4c4fe7ae938a25b7ed9eca919f089dc47 = 0 +dbde18a1d67964df54933e95b7130e9dd946e974 = 0 +e4a39afc7240706ed8180d0ccd5eca2f44c90445 = 0 + +[cecf6091-0e4e-54ba-8cba-f0e96a51f282] +6a2f79e9bba88e10f06dcaae2ed6d5a2bf58e7d1 = 0 +f8d43d1bc7e26d22e18d42c66d2e973f7e7022e5 = 0 + +[3bd8f0ae-a0f2-5238-a5af-e1b399a4940c] +83640e191ce632a2542209bf1ad8a0fcbfe49b4e = 0 +eb8947946cafeda7cad50a5d97295ba34c11ed3b = 0 + +[5d8a72c5-1e5a-5861-b6ae-c8e9564f9d17] +09a05b9986e351211ba77292a5f99b2cc8bc7316 = 0 +2314e89c82735418f679f13c339e047f96fef421 = 0 +8b0418c760b29d8002eb7467583244aafc735d45 = 0 +d719790950e4edcc1690a720fc338ec71d677b1b = 0 + +[39ec1447-df44-5f4c-beaa-866f30b4d3b2] +2c3351a8a337af4431da4ed4039013e00cde5659 = 0 +53607e7941a25bf19263c465bef9b7e0c60bb990 = 0 +5b26b255d273a95a4c1376ff284a62b0ca640757 = 0 +63cb60167a426c2e77ec71980213f393f19decad = 0 +ad7043a2f3d1a0a60bdbaf7a38f5b84cebb40a1d = 0 +bfc6b05c830dacc40a79681c6091e0cdd59c80e2 = 0 + +[e4e893b0-ee5e-52ea-8111-44b3bdec128c] +0730fac5ba5522fd600e534692148abb79cbc46e = 0 +0af0dc20b1aa73c1847883293f72f3c72bc97009 = 0 +1ae85ef175db8b7ca38a627013dd73b9fe3f5252 = 0 +2f8bf04eff52585ae75e3dd71afdbcf9a6988a00 = 0 +4a692e1cb745e394264007bd3077019d2b791b79 = 0 +524520c584eeff4c6295e1518f63f54592f6fa02 = 0 +9cb97086b1a5b6701642116352a4cb8d76002c44 = 0 +bfea3f3cd6e03390fddf7e7a50e32f95720ea5f8 = 0 +c5a5f8cf945c2dabda3dc39c2b85eae604d2d9cc = 0 +f750096ad7dd34d1233f60687d4b90f398755a17 = 0 +fa025d367bae776a1c6eb2afde8691793190e075 = 0 + +[f59402ec-0262-5707-a561-770af94bc5a6] +3c4f80e08e9898bf4987b12e87c894de5594a9b8 = 0 +8185dac196aa94c76fefdd0760097c6460802e89 = 0 + +[4cd9e25d-7d31-56af-a12e-9449bc3c16f8] +5b994939e1bde4a8fa77b3bcd4d54dc55d5c8495 = 0 +b62a064582862f9479d1bd6fd60b8f40cd618967 = 0 +dcbf6f8653f4daf536dd14fcce931e4ea643b730 = 0 + +[d5d29a5e-d8a6-57c4-9e60-9d46bf32806b] +5f2f88916866521f0787b88f4a5ea28b5ffad07e = 0 + +[e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28] +392b2051c888b7bb48d13372c78ef3f7fd912ebc = 0 +4287e0003882d055fcb0d42b8a5a69cf59a90416 = 0 +528e5dca3035d0a5a4742c133cc51758345595fd = 0 +5a8d6ac47ef67df6520b6e4130e44b1841a3bdd7 = 0 +c08d4bbdc27a8257694814bba26200fbc5d11b7f = 0 +c784f9b6be5030cd37ac7532a5c60f39d0817bcf = 0 +d4370da79eba2b18f1260f1e084eac3bf13d7f00 = 0 + +[ff71e718-51f3-5ec2-a782-8ffcbfa3c316] +1b6ff9a3d0abf0a61a6812c44a4dbcb14b36fa48 = 0 +1cdc683ddec2e64dc106a974bd881938ffc7d8c8 = 0 +34f508b5e295d4bd36ea8a4ac4331c7ed1df3abd = 0 +37d82e2b9d7be6483dc0f0064571f21cce87e349 = 2048 +3a1e7b49159bf4ba714ed484add509fa8c37676f = 0 +3f49d673a0f83247117776ea051739c7b3c6587c = 0 +40b3a6d42bf2771d46e059710ff80adf67f85c6b = 2048 +41b79c59f1197b2fb882753ec65bae7186f8c3eb = 0 +44b78b528247cadf094ed0b588c83dcad576ae39 = 0 +4b78f2a5f653a855d408e476c57d7ce747e2a289 = 0 +5808da9da37a733f870e7cb5b5c6914e73473d37 = 0 +6d2cc9a03ec942e371f87de3cfc67e8e73ebb1b5 = 0 +6d99ac613fd84364fcd8f79a47fd611413e0ffa9 = 2048 +6eda39ccd39126f4b813b8f83178708c981179ce = 0 +7570a04dea81144027ef298d747c647dd23b8ad0 = 2048 +80cb318054809176fba06a953de133022255176f = 0 +8251b5d0e9c949ae2f7f148800c71e01d6a42299 = 0 +82b7bffc4ce10dc3cb98360ff7926e3a69c23cf9 = 0 +8c70796d2566e1a8ffd8705b25db1c3acaa98b6c = 0 +95871af4e17226dbde002bc95886e2a6e45655ae = 0 +9a2686c28340ba4e7d1c81a2b4fea15770bf4a0f = 0 +9d70f8f516599a6174638d5bd4a009716c77167e = 2048 +ab841caffba6f307adde8f52fb931c522ce031e4 = 0 +b3bc8c08cf5f7e5390f9aa917ba373003beb1aec = 0 +bb177dee01a1760b4d05b3d8c84a870787b3a1d9 = 0 +bb4b7fbe55b23b397e301c969b30a41ec9f8b22c = 0 +c354b51691fe1569bd1c1cf31c9262b65486f8ee = 0 +cb03fa312403b1010b4e59cec0e81501c6a43a22 = 0 +d88408afa9145b8ad05faf47ddeadd9f60e066d2 = 0 +e6b13fa29e0510cfc7b303abe5317eb2232306b0 = 0 +ec01fdfb610e1761463b7682b1bb31887e635fe9 = 0 +ec6c32b80b2e4ad43a95b3225802b10fcf9dcb29 = 0 +f248fac55aa22d87113add384be93eb744b0ee30 = 2048 +f63b21fc0cc79e7aee002c6d2f7d5d025d7d67e5 = 0 +fe81c549d37931543d09cb45a8daeeb20b1f4085 = 0 + +[f17d6557-5fdd-57bf-a30c-27e301b4ff87] +262eca51b9c7b10c00424fe04f82e7f973d461ff = 0 +33bf945f0ac870f6998941ec0e38cf230aeccc99 = 4096 +39e17e019e7a84ed43318ea19689c7c052d2407e = 4096 +490fed89fea4efc0794d5cdb1bba1988bf288bc4 = 4096 +56d8a885fdb96cf630ea975833bd96786da17f03 = 4096 +617f810c994f53a4779b4922f606f2c7c4fe5862 = 4096 +8546e35cb626025204d6394c412d95d292bc977a = 4096 +998401f65605e8144d1ff7126b9a1a2ee2c187e1 = 4096 +ab26d5dfa57554dcce633f4434d3df83ef958625 = 4096 +acdbf71b63c262c8cb33391193d6a3042e9cd20b = 4096 +add793ae8ed25e7012e06b30a8f7dcef9a9a2ab1 = 4096 +b3772540d47f822180deb72e0ffeb63c9a511d8f = 4096 +be17557e2db3a81d2ca517d0dc4a0488b4935285 = 4096 +c3f948f9bdddf66a1a80dbcdd660c8153cfeed00 = 4096 + +[78c3b35d-d492-501b-9361-3d52fe80e533] +3a90f5f215af00fb13c13d53a68558580d5f3f14 = 0 +3f133f37621ed4296b163b257f76794739e56f71 = 33554436 +49dff5ffcb922301ab1372834f87cc3f50e1462a = 33554436 +54d790ca5a24f387f818e7785ea832b7ca66bc1c = 33554432 +60933960474cce2f7c359b612f2b28d5d17e4c73 = 0 +63be29e83f37a04828b4f870738e2dfb1df91f0d = 0 +6c7a2fa146354d517c5f4c863147fb5c4a009e14 = 0 +738d1f7a82ac7546531fd8cd63b7a418cb93a37f = 0 +7b7bc782f241e7cdd97f04b773a208ba6a53b884 = 0 +834ac12db8312ff67d15cbe1237be1cdc836474d = 33554436 +8b6802c53a91a33edf929d2db8c2384ab6b57b85 = 0 +9443a16d02d57c6dec06f0cc3fa8b3ae94d0dc64 = 33554436 +b657c35aa2273d0e5b17a25e3a5d45f5e585fa0d = 0 +d636919fcaacca67aea4e9384bb60b6d34d7dedd = 0 +fa209e78baf021d2efae59dd8d03e097148c8385 = 33554432 +fe0e5c449a3254f8aed1a5e06d671ce0ad00b77b = 0 +fe424677921dadb0384d3480e601a79608810b81 = 0 +fe68377c706b92486c9d2c0fe70205b177602d2e = 0 + +[d4b734c2-cabc-57bd-991d-11b386a60271] +29ece42fb6e0ac6677c40a0b6105962b5a6d73c8 = 0 +c6056dea665a2822abc0a0645525b86fa45027fe = 0 + +[66fc600b-dfda-50eb-8b99-91cfa97b1301] +096433a3b90ca044ac0141b387472c4339e0d7da = 0 +0f30e235138e2e70171c3bfec889e2f0461f4f74 = 0 +2d98ea61b894531d73c549de52bfaad07a6b5711 = 0 +60f53efa72e0349a9f3f2d666415239693fcd34c = 0 +6a19bd6d3e915a3ae8bf743a65ea8b396bb283ea = 0 +8e3d72e57b5d9ccf060230360d8e4e04fecb3439 = 0 +9379b9c18db5cb57164c37f4bed9b1647bb23396 = 0 +bc26b6d82b70546c76c9aae62f353533150e4ffd = 0 +be2e865da7c35970927c58444c99b5d360236136 = 0 +cdd0fd498b2292985a6b57ddd37b152cd9d58945 = 0 +d56e4ad51f4459c97deeea7666361600a1e6065e = 0 +ea0f7b8250c50ccbda2e0daabedd621a2672eebb = 0 + +[c82e23ac-8953-5e38-97de-d58954ae44d4] +a5f77ea747c6add27109f007ecea1a9d64760954 = 0 +c8a07f5f9789cf24dcb0d02df55fe2e4054fcd9e = 0 + +[7ebc0bd4-8b33-53fe-ada0-3930af7dae27] +1b3a4ce051d0f249c30cbad90e614833c57f6245 = 0 + +[4a446bee-a8a1-53bd-a908-d1601923a297] +ddc7b2714ebe7c02315f406029c75a706517880d = 0 + +[f08002d9-bb2c-5ca6-9977-d4081ea2ff9e] +0af3c0a6493a4a607149a8a6e0f8d5bc58686394 = 0 +1934b192f99db3ff2dc6a3c4d24be12e94b7bbe3 = 0 +518c63d8be2227d8b8a8d654e63050dc3f25435a = 0 +659a3ef54555afaa9fee8c0feb94973d7a2c6664 = 0 +67f6b47c9fd976f33e654d621b57d097018abfd6 = 0 +9c932ffd8d927e404b0a6b63dcd755610a2b8f19 = 0 +a0a59eafcbdeac308eeeed1cfcf75408e7120208 = 0 +a78754cb1a4413c1572cde9c16b98de55790bf61 = 0 +c9d9701726ff26f58952614048070d490306d972 = 0 +e01ac77000c2eb54184af25333192c81827a5fe7 = 0 +e4889d3a3954634930e5f70dcad150a58cea105f = 0 +ea46eab8e3e1c6fcaddc178b96c000e138f57573 = 0 + +[0b7cd5e2-b3f3-5fae-9080-a65912ed73e3] +069423d0ccae78d75310d04c25d1d6d6cb8e69b9 = 0 + +[280722bd-5306-5089-bba0-9ea74ef75271] +a692a300de6e3657b2a0bf57d0df100a0119f2c9 = 0 + +[e94cdb99-869f-56ef-bcf0-1ae2bcbe0389] +159f024e7f840701d93d2ee52c1c27c31d458498 = 0 + +[6405355b-0ac2-5fba-af84-adbd65488c0e] +0456c9a3eda0212d0ccdbc2e9a6f123af528ef1a = 0 +08ec3308d3711a5cca6c0c3f25ebe8bb95138424 = 0 +0d01505ef99b6048353f2b7d5a60070eb7bfaeaf = 0 +1545bf365d24475d374665680e5f5afe5a122d39 = 0 +1e623f31441fb6fc1519a3f1abbd528b1716457c = 0 +51ff40d03b6ecba0bbd24b1c06b257c3813c30ce = 0 +5dc7e6c057282176e691e0e0fc2370aab1fc6d3c = 0 +707b184522622920ec104ce1eec1c59a3344cff9 = 0 +73eb2a17eb7fdef9490a6ec915cd0257d312c4c5 = 0 +81d9f9270bcc7381ca4a5a4b228f67dc6dfd40c1 = 0 +878f149e26ba24fc8d4d192d4496a576defa3a2a = 0 +b605a2c05406f53c88957deb87b14b3e72bba92a = 0 +bc1240b0df6efeb11f3d6afd6ae65b1f0282008f = 0 +bd10d626db31bb01db8d2bdd1fc00d041c28f0bc = 0 +d396fe450334655aaaf9abf27e126e5198afad40 = 0 +e1dfe0295fcf6a8d72b4a27591a43f27e9ec313a = 0 +eb2e7ee4edebdf42770e2a5b0c365ae282f98fed = 0 +f47e8c83d00c538c53ecadb3853cab0dac056f45 = 0 +fdbd277db938fa4c2cbda4ad1e9e1d9b57ed00ed = 0 +fdcdca468436d0d1cf5ed8e194d8e542c09b2fe0 = 0 + +[d0551c8d-3c54-58b6-a75a-e266c30cc699] +e09f8e3c84dbe190efd01e364759d9bc13733b9a = 0 + +[fc43787e-1373-5208-a493-af2921c41885] +9b4bcbeae42cbd0801e3f18af0a5975cf50fd157 = 0 +a776b0c048049e5a5b41ec67573032ee5d72c2b9 = 0 +d5d48891d14e325da02043d75e676e92d9192fc1 = 0 + +[99f44e22-a591-53d1-9472-aa23ef4bd671] +15fcfac2c8a486f746f3488a7dc30c409ec58c53 = 0 +1fbe1ed3a2f69763b787fede3526816efa9975fa = 0 +4f0934ebf4d0c40dd88311950e74415d9eb16400 = 0 +72c815023eac3c9d0b30de89fa553a3a2e0fd33f = 0 +b1c2fe62790ec63aee103ea3038fc26315e40da2 = 0 +f6e387587656e74f6811b37eda3de44a6ba51182 = 0 +f818753b4ff7bde8ce9f89011ea14b3e287cc4b7 = 0 + +[b0ded4b0-f9f9-5f4a-acf8-134ab82e33a0] +a5e3b701580761769696912b0e080d63d23e0b0f = 0 + +[46d2c3a1-f734-5fdb-9937-b9b9aeba4221] +95f8584f69a58cb9d2b4bc1247a82eb0d2f67321 = 0 +bd28abac776ea2417bd2250ae4f5b9bbba882400 = 0 + +[a3219271-55cc-59b6-9a1f-6f3111928ce1] +88d9b36682c1395fe31aa208ad2b94e3f5eec7e4 = 0 +ca94080a7ddd5459835d20cba5d0324c84f29652 = 0 + +[f6097e2c-3ba3-5605-a9a8-3a277acb490f] +11c607bb1a5a70cb7421590fd29f7fa9aab91402 = 0 + +[e4bdf1c5-016b-5777-90bb-39e5992355c2] +8b5415f5c5a16b73709943b67f70ea1176d02198 = 0 + +[b9d7351b-c616-5ab5-9ced-54f189935774] +e589d07814ad5ebcdd54cdae689c0a63c6980f54 = 0 +f7e698858b3be0b20bd68f0e75b81181b01e34b0 = 0 + +[f9640e96-87f6-5992-9c3b-0743c6a49ffa] +06abebef67a6681c8c3e4612cbe0b92545d9d14a = 0 +0a598dc563efdc3c5fba05b73a87d79256f54f7d = 0 +471602e9d53d2326979a0cde6598142279ccc291 = 0 +4d60ba769c60547f6718493a4daf1c879a85fd86 = 0 +542f4fd6dcb1e0617fff15dddbdd69ef1c8b2bed = 0 +cfa9463c527558e7a73e67cb94d415f338a5c463 = 0 +f4a3cd2711ce379b6e268a10acb32a1f3e16ac0a = 0 + +[f8716d33-7c4a-5097-896f-ce0ecbd3ef6b] +0443613e379442308b1c5be364d22e632c8eff17 = 0 +355bd0e5dcee6701c7cf63992997c01736bf49f0 = 0 +5d3f4b529018e75d9739ad82b3ec183abac19365 = 0 +6e1602d767e4d71198020dfef93cdbef869d3e94 = 0 +bdd9c0ea044250df6bb8b5a21aa51ef2d9c652c0 = 0 +dcca6ab58c3976a29029f9d52c18d8efeabb7f23 = 0 +ef502ba25c65cb559e8c086b1eac5e220ac80a3d = 0 + +[3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09] +ac6668210c3775f32fa17e70c69d14efdc95bbfc = 0 +ff9a40bf31457e5f9b3155d15c3a354d283c1809 = 0 + +[6b1494d1-c0e4-5e11-970b-cb64accc6d0e] +2f68180ba9095f054fa63199ae8ea31ca93f9e22 = 0 +55dbe1673794cec3c18ac8715b2351cef9a347f0 = 0 +7196977f8f45e9936c57bfa8962c20fe312a7634 = 0 + +[f4abf1af-0426-5881-a0da-e2f168889b5e] +961654af2d90e713c3486e4686b7ec47d0d44fe5 = 0 + +[102ac46a-7ee4-5c85-9060-abc95bfdeaa3] +24beb920404512dbc05b1a3a59bb6ebf7d4a4b63 = 0 +2f30dff3e774067666d4452a6441e13be6857e90 = 0 +6019e9cd14614ebd1997304b69dc5fe6d1ff2417 = 0 +b76f4bb9d7c49f110d3e3bf2690e9eb04669b2c4 = 0 +e0f721c5d5d73ed3618b646ceff6ab462e4fcbf7 = 0 + +[6f286f6a-111f-5878-ab1e-185364afe411] +0735830fd6c26dd18fdc632bfe65c479994e5dc1 = 0 +1cbd57b3255f26272fd1a3f568087abc44e0e030 = 0 +3e044f53b9dbd341d3661448876726ae3dcb77c5 = 0 +7afdb2449af895e40437f7b64a773e7638e572de = 0 +a6203707b3ba1327b4ee303d10836eb6c3ca52d3 = 0 +a7a33a97a9ea680dd2d5b57f643aed5343cc0bb6 = 0 +d62b2b051a884eb98584f53df61e427084443252 = 0 +e3634c1b0214a176a04ebda4c2085c43873e1878 = 0 +e83394770944580e22ee79f98f434636303e9161 = 0 +e865cfabdad8907faea2cb76f084c7dae8bed8c0 = 0 +ec3f1b07a0135ca0ba3a9fe7b1f33e4887d09311 = 0 +f5bfd7a5776f30833ea54404ba179eb8f5363065 = 0 +f774160885f6b7fbadbc108572eed16787a22809 = 0 +fea02836be301f9e3fc5e6af5eac301616f8ba7d = 0 + +[4cefb923-2b6f-58c4-9e65-6821f26b7b51] +240d584662196e397f7ded92e782e6ae931a4842 = 0 +37449a9135f5047534865ac57010005c76d6ef26 = 0 + +[e9059424-2e25-5e16-9663-3799bfd3fa0b] +7bee6fa872eefc2688c3c81939e81b0d61896b5f = 0 +8fc41b9f0ac04fc7f0f82236ea545d37c8625334 = 0 +9ef225e2abca51d2b90f7bdc170d29324b9e58eb = 0 + +[ffc61752-8dc7-55ee-8c37-f3e9cdd09e70] +0187f30a03f404f9e9ac5776c69d8dfe8fcba799 = 0 +1264e8ca17cf26117e721df2b67850cba2b5dd9f = 0 +15cf3ae9fbff6ce4f6a6fe0e4722174bf5284713 = 0 +165a7435221efb90cad788ce3a640461131430ee = 0 +167c643613e0cd5d53a89cb18c5f744a9faeddf0 = 0 +183fc41ef76750d7c122ab289f24c9d1b1846b31 = 0 +280eceb56aceb05f0c606affb5aaeeb548c2f745 = 0 +37fed25571f74a2e936353d5d50d1564dca880cf = 0 +38121df41b210f71ca662e2a4264a9b1b39873bc = 0 +3b66f5061145324e50f66dc9e9be624e8de1d0dc = 0 +3fb2106e68d419685ce60c628e15303d6b6822d9 = 0 +40f0f39c5ca45738ca18939304c6ee4c747003c2 = 0 +5b17fbb162cf587558a79606b08e78eeb97607af = 0 +73d88267dbc4580bd9afacfbe536aacff1e14168 = 0 +af83bad9392bb5fa81540f1a55e9a6dbfe1a8eac = 0 +bbd0371b4a881951e60f148137b39ac208d491d8 = 0 +c2e461099930c439ba4bfb095b7c285eb6c89ca2 = 0 +cdfd446e7b79dc0769e93db7810ca5d493680d33 = 0 +cfefccc4c8f2391c1cfb1722f187c57eebd56532 = 0 +f3f47706c6c862e107516546d4fd0857c4155b62 = 0 +f53812def6964a56bff2ccec31a5a59edc129afd = 0 + +[a975b10e-0019-58db-a62f-e48ff68538c9] +0d146ca9f0c7374734d620a925ff09829648e081 = 0 +2da77702131031adeaf564df973a81e8fadfe8e2 = 0 +c1476b200b90b694a82fa28c6c1b863c7a51e0cd = 0 +c83c0572f1e0adcba20f7d46b6a9d48e96b60616 = 0 +f3880909e62bb8606873418e253968236a6cacb2 = 0 +fb96d9555ff9b3b02bbd4bcef6b2a17a626520a6 = 0 + +[39abe10b-433b-5dbd-92d4-e302a9df00cd] +5fa2ad2d8653f53ed4293a1b612c99f300144231 = 0 +5fc89185297915c2e97d850d61b947912ac3c447 = 4 +90abdef9c497da238d8f98aa4cf7e68545018958 = 0 +99da11396366c41fc48b364ca26ebe5457230d1f = 0 +9df77e9aec4923340bcfa90f8048e03232967a72 = 33554436 +c7024e7e406c16b47b5825a398e829fcdfd57421 = 4 + +[0db19996-df87-5ea3-a455-e3a50d440464] +9c45cb936d999dfe9bcd5bbff7ccd77021202478 = 0 +ad765c302e540b8bae6bc8b3aa974a5b45056291 = 0 +f5acb3be6365539d0aa1cd910426192b3d5c18d5 = 0 +fdca58950cb29b7a64d11ece541278808692e33f = 0 + +[d5c6182f-c531-58ad-a49f-b21bb0b0be5a] +5b835c88bec95057ff7083ab9b7658659a0311f5 = 0 +96b8c2346633079ab6fd3318ec4bafd9932c2ea1 = 0 + +[85f8d34a-cbdd-5861-8df4-14fed0d494ab] +08644d31eadef06a197912aaa9292960739f5740 = 0 +4d80495834765ffb01ad312273567f1f331186db = 0 +66a6dac99eecdf19e39cae9dfcd0a09e8a1ea314 = 0 +899297f3fe686a9407f6039fe7ee54a9115bdca6 = 0 +93407c9660e9974dddc75d6eb57b11c57ca858f6 = 0 +a5e4553d8c6bae2927bf47770c8d989270929f31 = 0 +be90edac20d40f9943d4ad95e8818a52d90a10b9 = 0 +c574408d734d3f6b77ab0a2dda9a5bf650f32d21 = 0 + +[79ba05a6-28b6-5cd2-83e9-fc7923bb48b0] +00a31b3c49acae0eeb74965409e30ef01109a51c = 0 +66d12b7b007a45c3c79237fe057f3db1dea55e0b = 0 +963a51e1954502e79f28e9e9b21e71df6a368310 = 0 +d64ca7a81fd7b776b57d5d82029b41afca27eab7 = 0 + +[efe261a4-0d2b-5849-be55-fc731d526b0d] +0d2433365db02201dea331488f8a93ae37d41681 = 0 +1e3e2338000f24797af4cad01b80bb025ac328a7 = 0 +3310762229a1a0ba68dc02caccf43e6f045847b2 = 0 +37cd94c6a01295b71e04e6a4cd707d5d8f50172c = 0 +5161b77b9bc71b537e73c262765b30090c24737d = 0 +847c48275d1bca0c1e935430725239585d5a75c7 = 0 +8c4e58201735a7665cb6802fa89755ace4e052df = 0 +d777b9803c07c64a209f0a8442871d45411e692f = 0 + +[66b72792-1abf-55ab-8064-6e9051317175] +06e60609e06007fb040d0d5f1a3e78ef4442b476 = 0 +5b3735adc7cc7192e8a60d8138f6da87ed931691 = 0 +5fd30b5489fe709a9b527cc13bc397ee4062954e = 0 +86e275ad07daf37bfe22870b4fe2a5bf1498308d = 0 +c574920570aaf7966287d9dc98f016c1db67e08c = 0 +f8e56c99a91d62e0a9a786b9e7352337dd46ae5b = 0 + +[a3a9e032-41b5-5fc4-967a-a6b7a19844d3] +24b87cca77240cfeaf1cfc8c671daf3299c452bc = 0 +2f217aac10d0e48e77eeb437e82a11c203dc2255 = 0 +78f761b0655b3e2150ce156dae3c75058615d36a = 0 +98910e59f5f3d752b54132ee90fa7972ccbb7fda = 16384 +9a298654d93762af5071f97ea9dda82e2b2446fc = 0 +af8c3cdfd84c886c12ed3e6d7d6d0862d3a91293 = 0 +ef10a0fe197c02bc589819c3fbac8162e058b049 = 0 +f2f9652eb882fa475d9182c85febc5261a5370cf = 0 + +[89ab07c8-7ba9-54fb-a7de-e55844b2596b] +2558279e9bd157732f58f64d87dba74c9069e3ae = 0 +9d92aee40c7ffe2dfebc43bd776df4be0965d24c = 0 + +[290757bd-39a7-5095-97bb-ca0f46959724] +28758bdea0a55cd05de3f01b3a42a37080d8c4c5 = 0 +348e2a40ad27c82bb98a329b451dcf0479b86739 = 0 +e130eafb87bd83ec7add0848df5320e5de3e9946 = 0 +fcb6e8f3ea78c8b84d69edb3755d1d27d09f4701 = 0 + +[a4795742-8479-5a88-8948-cc11e1c8c1a6] +21a599b0ba9fb8cbe31c3efbb7779bdbcf43bc13 = 0 +2afe2ef7fce406571ab8196ea33ed9a54400a4ea = 0 +69e2e57f208896c49efeeb1eaf3638bd21f1d92d = 0 +fd51b951df1b5d35de3cfe1c87342192d12b6298 = 0 + +[d41bc354-129a-5804-8e4c-c37616107c6c] +0372693b174577ff940067c9076bfc79fdc4e9e8 = 0 +0e9eb36bf40a1502ed8acb1df09b58d09b1c1389 = 0 +16b3ab37d65f9e7cff2990031a1e385c13515609 = 0 +368feba0ae66d9e3d8f0a5015fb2e1e05962a8f4 = 0 +3923f847b55fbff56d250f63aab754a2ed452486 = 0 +4b9b0221f1ad4dd8d92417bfa6eb91aa57611a2d = 0 +514e083d4e44767dfca6c35072d35fe94333161e = 0 +6a8ee37d4326eb290f8e6f5ffd26f40326f00f46 = 0 +9a5650177851b034d13a909a684d091fe6527b03 = 0 +a4dbd0d5b8f13b83773ae2c496778cc254b4aff0 = 0 +a754b0d5e1532077a707208a95249df6f9c1bd29 = 0 +bce3ec37684d503ba077ff57a41dd1a49510ce7f = 0 +d8ddb338042f54ddcc1f3ddb1a49d102909d69bc = 0 + +[76087f3c-5699-56af-9a33-bf431cd00edd] +00417b7634700ebacaf6dbd0d9582d0ff25b6bf3 = 0 +093fb2030b566ae32b363c277a9460d9719a9e4e = 0 +10c47956c082e1c3191f51fed43420c96ba02dcb = 0 +334e9d69d5aeb89c45fd9fd1c663b118541b32f2 = 0 +4e0df34e750bd0b8e20bedef37267b40ef529581 = 0 +523987afbb32105ed78dad0a127298284113147d = 0 +54a469cb9b9f4252aa5ca0cad3d5aa4d69881e18 = 0 +54e04be6edfb5c8d7dfe455c587413b66e97abe6 = 0 +78a635d334b51dd6ab696bb7d2670973e794846e = 0 +790b14028c88109e3c19922e57af2ab194ed5ae8 = 0 +8616a099521d15bd65eeddfa763a1177525a096f = 0 +9466bdbb27c3c2656596f94dde24c5bf2525f7a7 = 0 +a89125c6930d5559963bd0222d45e5bb7869569b = 0 +befd716a8ad61778aa60f08a0ab9513d67e80735 = 0 +dfaeff4a2a84a89eeddfc6070c346c322ed747b2 = 0 +e7a4a2821dcd20d61941a57db723949f2134baf6 = 0 +e7d5b9feedd2a60ae2dcf878112ddfaa2907a236 = 0 +e8e736f20cd4b08e8fbfc15686f4a87ba5e1aae7 = 0 + +[2774e3e8-f4cf-5e23-947b-6d7e65073b56] +014e9b74e3e8c8fe482b0ddfe200548237555c0a = 0 +0b1cdf8edf91f6d6eff6acfe3470e58ae977d031 = 0 +1fe5454444498b129860cde6c1069ceda128e630 = 0 +21c079d994f32b0982367c9c6f54164cc7f19a43 = 0 +4cb7d75b975637a6f0fe23862225a2bcc4b1d5a0 = 0 +535b7361c700b39b6f1f1148f805c6036491ef55 = 0 +5f0c944943e861eed9c31264c13dc898481fb952 = 0 +627c89c863f89ded5b354bc87e7badfe40d7e901 = 0 +6492f5e4e96199022e254b96fa24e47e80d8865b = 0 +65d120594f39260a64f2daa7bf4df5b2ec1413ea = 0 +796135225237dca6e3e7b4c294ea26773ce05321 = 0 +bc5bbedf0d9ce67b39dc584221a2767452422f6a = 0 +ced92f85612b4c62fda71e87c6e60eaa99a2acd3 = 0 +d5761332fdbb65c01c5c6c054d1a27a24f18df05 = 0 +deed60a6bb655fb73e7b29a4c3759c696fa8827d = 0 +eaba92d3ee857b90fe9a47f17d4d9a13b6c2f192 = 0 +ff78c8e1323c0038db8a95a20ce8250bf3b9f86b = 0 +fff21cf2f15cb0812e6a347d6f83f4710d67a454 = 0 + +[6dcfc07b-8fa8-55f0-94e3-d46e2fec2cdb] +21b067aae5c9d94a5a5dbf1c11e6ad2da3d7b7f8 = 0 +516b572ca116fc9a5ad521e64f01dae251b82e0e = 0 +67ff7b92a5d9f943b3a31fc889ae0d32f19e0a51 = 0 +6a55a37a37fb8f04ade5e96f533e0e69b0fc05a5 = 0 +70e3eb3894d7a6f48dbbbd88ba59e643b957669d = 0 +b1a58c338fad7c7d0a0b9410fd6042d064cd7eda = 0 + +[6ef6ca0d-6ad7-5ff6-b225-e928bfa0a386] +0de104910aef49ce98871f415c4ddac460e1a2c1 = 0 +1174163502bcedaa90453bede5d1573114ff1593 = 0 +2717ef64805e79b5764b27535bc700d43e124d17 = 0 +5e9525362870ef533083b421765493cc79fad0ea = 0 +6ec2cc9744d03ee77273fc47d0aeda1d33e7634f = 0 +73166660f90e4c072d62b99b5e3a1106ee8905ef = 0 +90cc65e5c87ee63f1ec0de37d89e36ed96068c0e = 0 +a89658e3492b5e80428da2abec360112ff03b6a8 = 0 +b41d45ee23dd20aad6248583327cec15402ea1cc = 0 +bd01b7f0d480153d1734e9dc9d3f7961013f6e93 = 0 +be17e1a4fe1697cdcb82fede926fbdf2a186aa76 = 0 +ce51831af71221cdc77b87ef4dd2fbba3a7ad17b = 0 +ecfec97e0ef6cd2cbe44d5dd7407836cb4d922c6 = 0 + +[ccd5ae15-cd25-53ab-b4f2-e0ae14ef09d4] +23fa29450de7267fab49d6f02071ed7bc2f3f3cb = 0 +bea29377d0b4fe9d3ba898e5837190f4033f187f = 0 + +[872c559c-99b0-510c-b3b7-b6c96a88d5cd] +285179e07e7c6c83d41094e382ef29e83cbae0fb = 0 +2a20d64412698f8d0d741335dc45c58098b29271 = 0 +38ba0254e3b1103e6d76546d4e82cd4c5fba378e = 0 +3fca9d078ca72a356c4c687693c3999545e91da2 = 0 +980c76824455003c4d179336cf65180a2ed925f8 = 0 +d15b558d812bfdd323f2c4cff2d876edd702ba2b = 0 +e4b48c1f41b2786ae5d1efef1ba54ff82eeeb49c = 0 +f446498c3406c08cf3cf2deb280c1d007bf04796 = 0 + +[1a62e0fc-b85c-5ca0-b1e8-6e77e6a3b884] +d1e7832c0b39ce884fa6edb60bf7eaefbcde6c46 = 0 +d2a2d9a77d2158b25a0c865289d64bf0c41fd013 = 0 + +[44063525-382a-5b84-b7ca-976d099b8647] +7062f73a22f2949f5ee1c7c330046dd06bf1af69 = 33554432 + +[02130f1c-4665-5b79-af82-ff1385104aa0] +2c6367ea2b5804bf74a427e87526f8fb36426449 = 0 +6771e7ab89c997811f94884127196ef8836dc5d9 = 0 + +[15e1cf62-19b3-5cfa-8e77-841668bca605] +60c4bc9e383c5488249f0d199d35f7467201a688 = 0 +693c4979cdaf9f2e44b407f1392ddb6d6f509089 = 0 +9931a344268ddffd8416ff070799d21d819ece91 = 0 + +[9bb6cfbd-7763-5393-b1b5-1c8e09872146] +061cb0da9b51ae0ae082ce04a14befaa2962c21f = 0 +67b85cc942dfbcebb86be3df1e2836b046b627a9 = 0 +7a052b65c832728a762ae0b178739dd9fcfdf7ce = 0 +7a4f97e83c89ccece2ecbea320fc3cb28a3d9449 = 0 +91f75e6bb399bd7f298ad69ed50f735e24784a0d = 0 +a41017a1a6adf12f269203c3a425760a9211358b = 0 +a8f21d4fc93898271cae79e3b078212df990bca3 = 0 +dba7ce602f0ed94da95f2f258038e66817593539 = 0 +eba47b1578f7f30bd84d9db6f60ab74911475867 = 0 + +[47bf582d-267e-5eba-99a4-ad788df502a8] +0e19e9332515b255ba6ed4bead944a2ecd47f585 = 0 + +[77ba4419-2d1f-58cd-9bb1-8ffee604a2e3] +46d4245fe036093e5844c0bfbc45de0b04152c27 = 0 +4a9015c9cb561ca8b34db27fe8f1a6bc16d5abc8 = 0 +6da4a4ea5679e6402810542f27c797e577100f31 = 0 +6df371ff865038264210cb943af1c16313873c71 = 0 +969151c5ff8022487379279ebac4a239a400dd44 = 0 +ad7f3c3563262a37d51a51acb5f53475e720eda4 = 0 +b2148ab8461d73563dd4b7033e9a6546ec355328 = 0 +cbd6063e17379179bae17f7b01be877b325ca938 = 0 +ccd898ebbe6cc7659b5c3441fadbfa8dbe2a482a = 0 +cd221663983a07f9700badfa7a8116e95a65dd83 = 0 +e1929708a8529391b8f10c345b1cafa8c56ad18b = 0 +f614e0c5acc80321fb66f88c42e75a2232343303 = 0 +ff2d914f4879c6a6dc21c3cb34736311436ae430 = 0 + +[9bbee03b-0db5-5f46-924f-b5c9c21b8c60] +1e84bc50771d741d19a9b8313ba060a6136e1576 = 0 +3f3d0d9249030a9078e3121c27c645efa4646286 = 0 +989e41bb1478512c648db3d5f8972b5c99b7714f = 0 +f4b7b280309b8b6ec8a77bc871f9939a6f44992c = 0 + +[86f7a689-2022-50b4-a561-43c23ac3c673] +0025d3684e8e4ba7f947416f6e467b13ffc8f966 = 0 +31246de6ede10c446b26db8fbfceea2ce99b33aa = 0 +3aca1f362f5e85c560d7c9df6b9bee5e68588ab4 = 0 +41d7c452e858f55ef6671f5e449019adfd1a5d93 = 0 +4273e3b991b67c16aeb7f2338e3160d52b235077 = 0 +4c391959ea58377b677c4c0a29a387f2de1bba4a = 0 +5310388fafc069639ce4404b2146054e129ad254 = 0 +53a4a939945c07184307e60b597a82daf4d6025d = 0 +6eb45741abbbf9dee4d3108ec6e095a6fb89205d = 0 +8e35d01b382bbeec853e59872f306f00bf5ff363 = 0 +94f3edab8b63c6e0c9ed63087f2a5a3fb2ecbaf6 = 0 +a49c474051629e1c3449783c08f2488dc913d4b6 = 0 +b020af41c852bb090c13db42b4d2efc9451c71b9 = 0 +b9117b30435feb21fadddf9f2ea020dbf4bf1a63 = 0 +b99138f32081e94dee83f97996e0d60b7a53afab = 0 +ccf26532c48e5175d6ec2ffaa93c308493ddf476 = 0 +d37f97b92c10a1dca9c93b5395eb2698d4ed2496 = 0 +ef8a1fbf650d162ff169226a102826ac9c9d71bf = 0 +f9dbffcab67cede7227538f98ac71eda96eb78d9 = 0 +fa78640b3d516905f7d6883843648c0f3e0296f9 = 0 +ff6e7ae143c6f3766ea6fbd33151d74ab38a5776 = 0 + +[51fcb6bd-ecd8-522c-95bc-4099d1d03463] +b95d554069c450e2e7de771a2e795c367e6df5ef = 0 + +[e3752997-1a1b-5887-ab5f-06b776b4288e] +9500dd429423b9ee6d490b1caef4ad9f1424ca93 = 0 +9755e706b8f90b500b3a0248f65ae3a828c5f826 = 0 +b5e4f7672f2e3bd3bc7ca8b309a2e3eb92bcc86e = 0 + +[73a701b4-84e1-5df0-88ff-1968ee2ee8dc] +089d7adbae8085204ea7183a1e887d9629e2297e = 0 +1057422fcb46adfab2c689c341e33d0113a0e62d = 0 +32e764e7075154842709815f9d262507d50ce37f = 0 +33f5f1397fe93ed329c80dacfaf77e3c0d99e505 = 0 +3ec3e58cb3eb942891ae480ab85b013fd7a5cea5 = 0 +4d0571e031225abc643d8c0064b4b1735564c188 = 0 +4ee138074f57932c55f1c93118c90e7578296206 = 0 +61d8deb1688d2c2e571e118c468945dbb74601ff = 0 +65c5caa4826ffcbab5200830ec4ed39eec12f367 = 0 +79040583a127ae686d1ddfc46353f19bde3ec68f = 0 +acf7dfbc6ae8515bb4213d9b0f7c54511ac91998 = 0 + +[fc3cc343-2967-53bf-b6bc-48b8e407de1e] +f887ea730974ed97287d05a8acf541367206cb24 = 0 + +[aeb4490e-d914-5f40-aac0-ef8e9431dfb2] +67674eba7eceb65667787ba92b823d2fb471422d = 0 + +[509eaf56-8f8f-530b-95ce-37fd3147b88c] +2b833179891869138ca2abfb4be50c9e3d102fcf = 0 +8eb9c4573b8e322f55e558de786dd4fb6665caa2 = 0 +a6cd4afd5fbd18cddfadf772814746ebafd7470c = 0 + +[c020b1a1-e9b0-503a-9c33-f039bfc54a85] +a38980898c2b537b846291c44ab83b47f8cbc894 = 0 + +[b8a86587-4115-5ab1-83bc-aa920d37bbce] +432bf2b2eb48679e632a8e110d5cbd1666f429d3 = 0 +4be6631978b589fe3a2befbb26a94126933c5416 = 0 +755cbf4f5b28bf5aa1924bdb43edf3f1c79abecd = 0 +79cbe1343dfd591b33af5209de729024b16cf99c = 0 +7c6909d611530bee87fa0fe7bbd163e19e599795 = 0 +815f96af1dc4021537d9ebf9237b60f56df10c7e = 0 +88368b584faed8850688767ed807882037d12963 = 0 +d8e718c0da4bf9c6ecd221d73dcb45e2ad177857 = 0 +dcd3aac2070e293ba66ecafef0cc9c860e529dce = 0 + +[2edaba10-b0f1-5616-af89-8c11ac63239a] +324f892a858442def7f22edbf6b3f3ee9e6db6ae = 33554432 +331f82ab5c3c0a9028ff2c535cfb93b94c3cd1ff = 0 +462149350dcf567b099f92c9de0c8bb740f691e5 = 33554432 +46da26e02e45394b66d04b712150fca5a9b7b3f9 = 33554432 +4ed220062a13560db92ef3a19ac1895bf2bf86d4 = 0 +58e80e13410c968f12caa8f0771d19da9e5ff645 = 0 +67d7a754995dcec5a17dc3e2cc763c793a6eb68b = 0 +6bff8a98adffb07548735b769f501ce2ba55fcf9 = 0 +a7e680756720736fbf3d66de5eb23a88117eb2fa = 0 +ab931118b3f259ea6045b7c4bc11f95a7c0feddc = 33554432 +b497032ee63fd46ada1ba2d38bedae1f4a94242f = 33554432 +c501ab953d0541fe900ffcf800a8a1d712eee50f = 0 +de569957c6c779c199d2a3f48c710fd6f88b7ed0 = 33554432 + +[d2adbeaf-5838-5367-8a2f-e46d570981db] +7c07cb8058312ba00cc97ad0ea94078930953eaa = 0 + +[86cbd20a-38ae-5b56-a3b9-c5a70d2def0c] +4ea71c4f5e17b1cedf87ab8ac79c0e9fcf92ac86 = 0 +50e5fc623a60dbf94bb8bc0938c4e8322b8e5247 = 0 + +[30363a11-5582-574a-97bb-aa9a979735b9] +4317fb116c0d866eab85a554938ec7c3707ef6d7 = 0 +4690af9a7f0098d89c03904be4931cddd5a00fb1 = 0 +62db8552b6ed3d39edbef79c15839c50d44a18d0 = 0 +771e3c5cefc00270ec7d354033c95066a8b23ac4 = 0 +7c11272364be32bb3fe0333aad699f00c502b80c = 0 +7d793e8dbd30169d26591cf88aadddefa128981b = 0 +ae9e333109a8b6434c12f6194b2c23cf2771f1c7 = 0 +bdfeda760fac522bcffc605615dfd0a8d9e91cf5 = 0 +da316ecc7cc5c40d513427342963920e2a95715d = 0 + +[929bd66a-55f3-5ff7-97f4-6857e71d06b8] +035862d56c53ca79e0f4d0bc4921212f139be353 = 0 +1b8ecc58f4b038250580119c49bca7287af1b9ad = 0 + +[dfe93177-a0ea-5417-977a-ebc2ae938f81] +c6e705502cbe0ac61187665fa1fa449dcac3317a = 0 + +[f09324ee-3d7c-5217-9330-fc30815ba969] +538ba3dba894c79266460c11f58783dd363cc0a2 = 0 +85d3b6d85d4ff8904bbad6a43cc78596207f3ead = 0 +870a7f2d2d1eea20be1aa1c2b438496e95793826 = 0 +a8115f3699e7ef462517bff1dd0563e65cb564ef = 0 +d59ac7b79c1797786a7a42e3eda5742f20a6af7c = 0 +e45ec647978a08893adf6a9c66ac816866b0a584 = 0 + +[49dea1ee-f6fa-5aa6-9a11-8816cee7d4b9] +099d101dd1577902c4e55f499a857b8cdf23ade0 = 0 +1eb727b1e18e8e4c5d42b7572972a245f1e270e5 = 0 +34306b6a2a421f9f4276f28380a6b66369f0dcb5 = 0 +37e1c9a59741d791d1678e6767ca5a6a11a284de = 0 +5fa0729cc682d4c8a29ddfc9f45f08eef36e3243 = 0 +724bd8aaffddb3c6e22d4e3a90618207f6a05b47 = 0 +97268c4764cf4a84b16208628224e36d49a469ec = 0 +9879d943954398ac4c340b2fff67059e822cf49f = 0 +b88a0748cdbe11a7a53e0645b27f17f68eabaf3a = 0 +bcd4f273316886db498aedce052145ad848c00bb = 0 +bfec54cfb314818c87c58d19cf6e85b49b981661 = 0 +cb6013036365e74c98b70d1e32e8efacc0257c1a = 0 +d06cc37b8a9e1af2936ff83af7bef4c3321e9e86 = 0 +ed4d932486b2bb5490b15f2fa894eb964459fc48 = 0 +f20cbb3dfc7c31eb0cce3c3f4b05c53f92c58c32 = 0 +f2f417d069e3f767eb0d66c0f85a965fcb731a45 = 0 + +[54fa3700-a926-5d24-99e4-d67e3ecac25c] +7b7f364f35fc7324554a6adb0ec7da771b5f2fe1 = 0 + +[6b44d3db-2bc5-5ac3-b70f-26aa69b1b11b] +4730d0d13a7f6db8cddf1db4d6154ed8e01bd1f5 = 0 + +[46757867-2c16-5918-afeb-47bfcb05e46a] +07f39604f27f7b2fb6d3b09bffcbe5b617d27c1b = 0 +094e4b5e0bceaa1fbef623174c656a8c8658fb11 = 0 +b2cf7f313c42a3147c16a6ed41b4ac9645e8fe4b = 0 + +[e2554591-2d5a-5553-bb4c-ff0ef3342964] +0ef96214fe46be758806deaaccb5c38b0c5f09d7 = 33554440 +761bb6c5ce5800471ff1f9538efcd9a24b4256fe = 33554440 +e685b90635d19f3fe58c664c34afa73d26a6e8ee = 33554440 + +[1070d6b7-bf31-58fb-9220-e7913ad0860a] +0d246a1948ea8537395f58d51bd19a4c52df804e = 0 +811829beea07f0d97c01f94b16b4139dd29ef7b6 = 0 + +[6fd927bf-c9ae-5b12-a3ec-12ed9ea74c1f] +dc29c0e843913c0c287a4147e611a9fd76961a7b = 0 + +[2bd173c7-0d6d-553b-b6af-13a54713934c] +5eb7d11a4a042607b7b83bbe859b8aa6206053b5 = 0 +7d7f65bdc2f798b5f9aec6098c8559a824aee4c1 = 0 +a430c60a2115069889f56b2b1637ccb5907236c4 = 0 +e777aa7b4d71af843be1639bbc20d6198f3fdaee = 0 + +[c71e192f-9a20-52ab-b911-a56bc4938f19] +df58e63351df841365dac581bec1ed6507a97c2d = 0 + +[b7351bd1-99d9-5c5d-8786-f205a815c4d7] +00849573c8a5e35fb0dbd1ec9c42e4412d46a377 = 0 +be3eb0d66911a7887df81ed4eadf4dc6a5b0da78 = 0 + +[d366530f-4af1-5ff1-9928-73bf22b88830] +0268ff4ca8547039f975b8f6c74e2144c7518851 = 0 +0d05d5b9851b73ab40ceac85074c13630334583c = 0 +1f9008ecaeb8ef91ee7da94c04136ce24972fcd6 = 0 +277f99b1f962b83ed9efb56f86cf2eece7702bab = 0 +3b4322cc6614d9ff6d2f4309aa1e4c1d9f3d9dcf = 0 +56df258cafccbb92f3f7a38699dacddfeba38f57 = 0 +58378f8aff6f87800c58be31090c543cbbfc8fc2 = 0 +5fa1ca71898f46b89a7fa0af309b901d90479225 = 0 +603be7e159d37d25e4459343d7e859d9ccaa21f0 = 37748736 +6eebfa856446153668df9d9e0af9c8e88a0d77fa = 0 +7275c0c7badf1a7ef2c7f356ba5a104603380563 = 0 +813ec58f6814916e06c792b748f01de60fa2ef4a = 0 +98e298f7a29169ceb4a5ca74db672f7b0c12adb8 = 0 +9cf16fd4baf5832814793d11e2c1e7520bf6a816 = 0 +c1211b74211fcd3d14ac2321bfa86fd62727e171 = 0 +d4888813b5c12624818937298e55cbcc704c8d55 = 37748752 +dadbcc4d6ebe7489bf68240aeb1295f89f739006 = 0 +fbebfb1543b175c056977a336861e6c55776aa4f = 0 + +[8f4894fe-55b9-5d5d-ac02-aa6554b49763] +23726bc1bd9c86ad104c8a60438e353e6dd2e974 = 0 +475b1bba004780462de80c4e26bf0159e8a214a7 = 0 +ca74be28c21038642bff4be9ec7c0fe4a95a02b0 = 0 +e41132f73b755aa5bbb2e6dbfb444827425a0165 = 0 +fd24d095be00d2d4f86c6e1b310d6c64fe946bf7 = 0 + +[fce155c8-f798-5163-ac02-b1a32139d092] +212b3b8767ce67661be0c8fdbdd2d28169e83a85 = 0 +2fb607845e4197b013d4d65595c666de8ee82020 = 0 +33e97108cd253d5e8e376265a58e92f2e6b93981 = 0 +55fcc4165bbdb8dc4139311b5a111d02dd62ae49 = 0 +5ed6f7c7b5e3baf6e21defa9ecf04916c615c5a8 = 0 +61398f3175835aed3eba32264f9ab88a5085c22a = 0 +658ca2264af7faf468aa875fdbd7f6cb1895c27e = 0 +82e62887937cf258635419d36f7ed78db4fe20e9 = 0 +8e455898c4a581276b5fa7c4d2b911df6b6a7452 = 0 +a0d210dd2d8e6d6f1ec3748a49bd27af76889c51 = 0 +b41240258e32665d37da62c62b4add71e2b1de3e = 0 +d44f078baaebd5d96d099a5f7b0f232d707b1c50 = 0 +e3ad30ace4bce66b9b7877c30711139aa7730325 = 0 + +[4d1e1d77-625e-5b40-9113-a560ec7a8ecd] +3ff61d47aa3355f0f64d1a027631160e422da903 = 0 +7f96abcb886355d10b462d489eb8aefe839620ff = 0 +df85b1fca3c5e96f6f43bd7751d85f6fcf0eb562 = 0 + +[b445afb1-442e-5c68-b1e3-25f929a46de2] +4a2a2ca5a58b049691ce89bf56b606380e291a21 = 0 +689b5648de684700dcadda89afaa47ec4198fe5a = 0 +9234e2f29b5ba617e107adcfb6493ca78e416746 = 0 +b0a5c55cb3aac0a95cd344a7699406f490ad3fcb = 0 +b1a555d119a7537abe6e8f57451c19f7caeece46 = 0 +dd5c85728078e94d69f46121a7433e7fef273a60 = 0 +e6b3163654788b806f49d2720a4df4880a6bc64c = 0 +f54c091e6d0c6312f31a82d530de7a1fc5f52abc = 0 + +[5def7495-c9ee-531e-9985-6630b8c8d8ad] +05e61ef0e96d6442ea5a19363b1694b9eaf9bbd1 = 0 +2052474573c3530630b936370d075a0354b043fe = 0 +9ed64ee140fe72b63161f06682b05f2f6382d92b = 0 +c37a1df60967d8fdfc792f4a7e20112c6446aa87 = 0 + +[d47e95ee-b316-5a26-aa50-c41fa0b627f1] +029421eec3b40eeac082ea4547c1e4d107bd6628 = 0 +05d58ff0b1ec73e72c0bf9e69e67d89ca4f161cc = 0 +08651736d0915ed28cf8ca436898616fc374a074 = 0 +104ff5a2d897e8ecf30bfce7dcbbede50b0b3677 = 0 +14bb914611f63f317830766d70ae5c0ba137c3ad = 0 +1a87f6e72afc044d14ede50d84824f10c7303650 = 0 +1e0a8106a4a89cbcd1906180619e6e04e96a28a6 = 0 +235f43c2bc0b2e7d2ff4527c551af748058f8453 = 0 +252d43707ff02debd835556b9a753cbaf90ef4d0 = 0 +2541f2234bfd9d9757dddd2c49ffafaeb8782073 = 0 +274d791957693e1711b67e6762cb6dff39854351 = 0 +2ed809cd57ea18496f57c79575b1eba5ebb2c0e8 = 0 +2f2b7b7f77451051bbd955e343f70f89654527eb = 0 +3590139b84209df3902aff067a40ec3177c9f2c8 = 0 +35f0ca97e38500f50a34c6b2e35a737fef50256d = 0 +3708d517fe530c60c9a002b908af882e8697e67c = 0 +440c9bcdf2204d85e6dc31231eb0c8208756fd1b = 0 +4c00cb87594c62fa115a9c2f4c6bc4f005427c90 = 0 +6e770ab3dda43906429fea1702c5218568bd7bd5 = 0 +6f66a15a18c698f4be74eb304aa7f839c7026266 = 0 +74f587fcec9d914fd6dc526bd06f06a08fe55adf = 0 +971508c61f14eb2c9668047025ad7eedb07ed19e = 0 +9727f696e4e69fdddbd65f12e093b8e9af9dbf0b = 0 +996eda2d7ab2c0ab8e12b6b741c16d9e700a1707 = 0 +9f2d6de2af2d812a023fcc78ce1c17a259f53f5b = 0 +a95837d5c22107a0cda9ad9914735e3210a364ef = 0 +aa72b6eab2de59ebc456b79b8cd1eab548fd821e = 0 +aa8ece51e8ed2196f4b05fdf7f249b0db2eacc83 = 0 +b495bd91552d9bb4221266d455a9a112a57f3b3e = 0 +b7283bfaa6370d4806906671d6d74e3dbd4e45d5 = 0 +c698e5733fd346e0aaa3c210ff41148b119c4fd6 = 0 +ce851c155daab0648432992d94120dd24d49b594 = 0 +d66a9b2eea8a81af1c593de70fa4e6947580dbda = 0 +d8b2eb77c64f2419238ade7d084a3e7719080542 = 0 +d9b11712812af56afec5511cdfc24006360ed929 = 0 +e2b31411241d5029171207fa2a6ab78d03d56caa = 0 +e465d3f83d896dde3010e249e6946606a39b8eb3 = 0 +e5190b02fd609b2723f3305297f233406475f251 = 0 +ece8236cb32ca04fc6591b4b633f5310eb8ffbbb = 0 +fcee80b34e30f76af35938086a84a2366617147c = 0 +fe85c6e1d1bb01b952f5ee72996eab93b9e46bda = 0 + +[2d52b4ab-c3e3-5ee9-8cd7-16337136d172] +0c4d1518f09a7200068311dede1fa65aa4df7a2f = 0 +4a46606490fd02cd14bcf54d4e02175fec1ced7e = 0 +59ffa795a2c732af6863a0181ef768b89bfc6962 = 0 +7fe183e57da8045ec4317a54e8b3f887fab2c355 = 0 +9c37b3bebc177bb18430adf5c445508596c9fc76 = 0 +ff396c611bfc17e836d14d667feefe2ad74a2554 = 0 + +[6c575b1c-77cb-5640-a5dc-a54116c90507] +34fab5e837ff97cd8a55dbc1087a888688df3edc = 0 +55c0590384d06760fd51efa2c201a6a4ee34b507 = 0 +8f4738ed5e4311d48d02ab3844ffb45c8fe05632 = 0 +b54c981f729f8b697e63708aa399b231bdb83bca = 0 +be856dd5ecc824055062660878e22375985c3f66 = 0 +e2a051ccac7786972060209b71d88d416aa5ab4c = 0 + +[8dd2cf45-7ae6-549f-9931-1ba6cdc71bab] +16e3b9a530828897429cc31bdbaffcf52528f266 = 0 +25861cf5f9ac0550dad002dfd8533072da0c8f4f = 0 +55553d801801459caaa546bf5b698e687a8a9003 = 0 + +[e7bfaba1-d571-5449-8927-abc22e82249b] +32557ae47ab57c033db02f57b601bf6e1dd20ed7 = 0 +5ee27b62431c0e57ca4fcfb4547788fe4887f0c1 = 0 +d999d21ff31664ac5ad7323b9a1a38e913c20092 = 0 + +[22d8b318-f366-56fb-a292-a93f7d76c017] +142fe5d7a25a7ca5ee09a03932dfc1ad89033c31 = 0 +1deaf190a4169056c49fb2e8244382e826c63206 = 0 +28db434c936ce142476d01a433a4debbfde69b98 = 0 +31d7664230b01380e151f48ace8dbb0f03e3dcc5 = 0 +32b3284890074e6d9dd489d8c237b89784d7e5f3 = 0 +6fdb7e58e9e5cbc57e4f27e83558a8005a413165 = 0 +74232718c66b7bd0718946f81dd1f2026e26ea86 = 0 +92c2095369cbf8e7ddc4f2a313e5f589202f97a3 = 0 +b03b5a2024a070f84aee5b1bcdf72c1d62c4533a = 0 +b73a6cf03101fe9378bcefb575be0db6a2e802c4 = 0 +bdfe2c9d0bd14b1bb70a7691d2238523cae7de2e = 0 +d2846df9171cc17be50274df197c76cdafc8dbe3 = 0 + +[2d8a0fbb-4798-5e24-a1ee-cf44ecca4972] +f9fb1c0c0e47c4f96daaa65b1163f7a0807317e9 = 0 + +[be6f12e9-ca4f-5eb2-a339-a4f995cc0291] +83c4dd31d9dfdf76784420dbf83a9b1057d0a262 = 4 + +[c030b06c-0b6d-57c2-b091-7029874bd033] +054769c185c65fea4f42acd2dd337e249cbf1641 = 0 +162c881430f51797fb91607770f55df554a4df5f = 0 +37e5d7a1fe6c468aa1a12e26b46578e4ddf9d599 = 0 +3ae921db7ca50a8044b886cc402897e1bdf2e13f = 0 +4294ed18c0f7a7a113e1bb15afc0b89b4e39bfac = 0 +4ba1c13f15bc158e92e73f457a38738782ef2e87 = 0 +8d4827b93609118633478acf09a74247f47cd97e = 0 +913a3a5e0cf227edf2a2331deca5d3bb4943d7a9 = 0 +9865c128fad90b9705c5aac5729bf456a93dc762 = 0 +bd3b236acc36c24e53731796d6e644e89c04385e = 0 +ec52c9422b2ca7f1bd6a5d13e425370fbdbafa58 = 0 + +[54ca160b-1b9f-5127-a996-1867f4bc2a2c] +0111ab544796863109fb1f2d4a81ccce1ac62dfd = 0 +13d49dc3dd89747b0e0071edd2845fc9e40dc198 = 0 +140bfaf1ddab8f4bc7226e7ea630cd2e0fd1fd6d = 0 +304c1b831b307a218b9927195fe1bfcf82ba4ed2 = 0 +49263328a6ec286676d090b761c24fc81a1f51a2 = 0 +5c170edc9d4b95779652f7fba7d4561f01854580 = 0 +6001bc2ceb2c7e6f31bc36f03c586f84241e3a32 = 0 +65028f691e3929f2453737e07c9ba083c0671722 = 0 +6a7fb8bffa894f53e252de8857dac234f52cfd63 = 0 +6fcabeab7b6b21d45509d812cc29f3a68877574a = 0 +711156af959f98130472708375d05898f2410e47 = 0 +7d35506436f34d6094f6cdc51356eae490b45a71 = 0 +808ee47baceaab92efb08fadee5fc6c9a60d9e41 = 0 +80becf81aa84e574d25f9fffb6897cbdf2db80b1 = 0 +9e8bb214a3f84315c59675f237e6f80e0abf307b = 0 +a4c7511f0ff80195bdcd87926539b9f0e49fc6e8 = 0 +e884f71a5c271615de5a0cb6587b959274ceba8a = 0 +f81ca04771cb66602628c935a3f7e02cf9d72ec7 = 0 + +[09606e27-ecf5-54fc-bb29-004bd9f985bf] +13abceabd4e12c6fca95e6ce7ef5834f47bfcf6d = 0 +6382b72cd48b70810e8878e222629c846f258e60 = 0 +8ee8152159c10cbafed8c30d463507f178b00afe = 0 +97be7ba29ebb981940f538d26d3d90435652132f = 0 +a8d5a35c0d9583855a4ced9ab117e9251b3b16fd = 0 +aa217f5a6eb9e0d96541d50b018c1d737655bba7 = 0 +c4d942e0a7ef5461024530da69dba2d74da30338 = 0 +e3b7a5a6a51ae5ddc4d185d08cd8a7c3899b75ad = 0 +e515e7d5f2d56ab21f7cde26f0cba84588131cb8 = 0 +edd7522975f7750c324b3274b3d5aff32dd3942c = 0 +f72d27ef69c7684d9aae38928144d56f503a188a = 0 + +[e58b783c-04fd-5dff-9755-92dc86b0912e] +19cb8097030bd40064ae62cf06f74848e5f75eab = 0 +56678d645de2e17998b7a31d6eeb6f3aef4fa573 = 0 + +[53eb397e-dec1-5dcf-8dc9-2db916067267] +04d77587d320797c999f9d11b27c83d882bdd117 = 0 +2c4e74d7665d091cef5d14a824b84be615cc4024 = 0 +45193a008004b4129db1f5745c7f9396240f5f0a = 0 +b9b42f9d1035ba7cbbb9a670e3718aae751a5ee7 = 0 + +[2d0ec36b-e807-5756-994b-45af29551fcf] +0b0190665b22c6af82a19c04527da706b28ffc98 = 0 +b1b763752396dbaf076264c9df79d391301cbe9c = 0 +e18efc7920aee767524569539e529a86da2ac703 = 0 + +[90c472d1-064c-5c63-af2e-229f1fdb5f26] +0019d948a093154b05991e4c8bab49186e554e7d = 0 +764e8b5ee04b5f401d01ea87f16e91a9f80ca641 = 0 + +[791156c7-410a-5ede-a1ee-bcadd1b7b4c0] +4fa945b1757deae61c90fbe61fd42f05663d0b17 = 0 +c7f98793d067c6c0a394ffcfbddf54b875950a79 = 0 + +[ab2f91bb-94b4-55e3-9ba0-7f65df51de79] +28067ad4489314d729ab04cf7ea0feb6ff07d11c = 0 +69d25e71c6d68c043ae6437a6c45dbd902ba4bda = 0 +a2d741fe08318d3c7c3ac39bb6d935f5d17b8efc = 0 +ae25317516937f2f074aaaddc3ef598b9873755f = 0 + +[66c2ecab-30cc-5a23-8f30-3e4a67030fa0] +33683d376c165e1bdd3f3f93be3379f5a8d26eb8 = 0 + +[b17e117f-f773-52d8-8fc7-11fded9104b6] +350e2a754e4b681a81f05c3812e4a15b8ae729c7 = 0 +64022ca37709824e310cc3071a34948a0bb24c9e = 0 +d0507cba8b0e528bd09fa37ce0a8d383d0dbcaff = 0 +e0daeb60fd1037855ba96015c8d64d7925bbe10f = 0 + +[d8793406-e978-5875-9003-1fc021f44a92] +24a24a41b367f9c9b62cf115716316e7d6b80b7b = 0 +76b59ecd0b67464ca3055d0c0de49b3423b02e84 = 0 +98d7b327448456df024ab87243520f972c715e16 = 0 + +[510215fc-4207-5dde-b226-833fc4488ee2] +2cf7ebef3a40855d54712d816e617737d2ea9592 = 0 +6c52b39fb8bfe483e5f2e13bbb0e775213ceab22 = 0 + +[56b0d19f-0a74-5872-92bc-f48f9c5431d4] +1323c3a8b03e926501fd627910eccf70de500e28 = 0 +41294b6168a1958202e60cc45e17a06189355d9c = 0 +5b871b58c764d8d65373fd1cb12156b6342df2a4 = 0 +7c161c183831497723b2e78c910e88e5976a3ea1 = 0 +bc41d268459ba750a2c0775f259f308c6de135b7 = 0 +ed6657128cb192e50d2535994c6e2c3f0e0456bb = 0 + +[6fe1bfb0-de20-5000-8ca7-80f57d26f881] +0d65ee304c5a5dddeeb3816da4dd93206a56029e = 0 +172e698fa3daf2fc47e5264802044e1da286372e = 0 +174fc7a38b826fdd968270d165113ead30572215 = 0 +31f35103f959f36b647c1624fc6b3a31c80f69c5 = 0 +3a1964231566cd6163d1e926ca2cec4f31edea12 = 0 +6418ba4577a0e89711f9c34d104db822ec3857a0 = 0 +68601539d2a245b018723cfe7d45af8848ff5ac1 = 0 +78055a6cebd93caf79a6240501261b40e21c9f7a = 0 +79af57c647369c7fb0aec9753868799d908b67d6 = 0 +838f8461b5bf679e4a07cfab8e45f297efa386fe = 0 +a29db304bf9f0b0104619623f543eeccd30cb4ee = 0 +b0fad283e4c241b3f3634059ff28c9b1a2f81efb = 0 +b43c0fbac480b1f2424bfafd00fbf72ea3d83bc9 = 0 +b795ca7bbe7746117de86615e41b5f486b7392b1 = 0 +ba858455c1b3edf128daabeb2bb0bcbe1adab047 = 0 +c9aa4e36b739e3cf33ab509773e02be603f26808 = 0 +cb274cfc4116b8402c24fc3cc6c17632fdbcd3f4 = 0 +ce6ecce58c87e3186239fe4e5c7f42ff08318752 = 0 +e3e5d4154fa6111707d767abc6adca3f01023b7c = 0 +e6a013844ad3972fa8efde5114bfba15e2595aeb = 0 +f6715506b026b0826174b35f0e889e1ea673121e = 0 +fbed71ff228afd429871f3d6c028b575dfdccfb4 = 0 + +[796d8c31-69d0-5366-9081-a3bf997f4f0d] +b740f2fb658be0b85ef4649d012a27e4610e3503 = 0 +e311333e3d725991450adab1cb4e7b95707d28ef = 0 + +[5fb14364-9ced-5910-84b2-373655c76a03] +146fd2882c514d8499709b5e6a1af8ed96abf9f3 = 0 +15bc5a8ed0d19b3f775b16794b30fe2dcb83311a = 0 +33bec22ace2bd5825560d4348840306983e69fa2 = 0 +502a07d2d41029117dee39836b72ba55b3a58195 = 0 +5288fd8046419b26095eca8baf19425f9a0b8937 = 0 +68ee211356a08c3f1d058776b4693d282b5249a3 = 0 +8ae2caf3b3c93de4b2606a204c0ecc6093aa4f39 = 0 +980d37f9ea5830961faf5070e08e61aeaba816a4 = 0 +a6d98ef5be60b3479a0f6b01c6b512d6365b5aac = 0 +ad487539eae56ace0aa1e9ed5030afd48c4915fe = 0 +b83c83cbb832f52852d11ced4cf1f53bf3169b4c = 0 +df3ad496a8f765ae3119eef22435a568b9a3db1c = 0 +f6f69601a96a5e46d00162b6869e24d8fdeade02 = 0 + +[304d3983-6cfc-5ebc-a572-0ee435b2341c] +400beabd65cd9088167756dfd4211b8100eeb287 = 0 + +[dec300e5-7e5b-577b-bc13-c7c11ad250bc] +a8b49fee6997eb4f946b0ebd7a73b6bef834abb5 = 0 + +[a15396b6-48d5-5d58-9928-6d29437db91e] +00a8b226f92ac650640eb9b2a9d0043512b740d0 = 0 +03aaf530eff350024a96ec7fbeecb5c537877d8d = 0 +1009b5af8e199a730f7b194c9f50255464b66f91 = 0 +20b0909c550c3f9fbc0b7679d355e9e5ff9702b1 = 0 +260dcce588fbd0f58eb313cedde819ae67ce7f3b = 0 +2efe94f2c82f951c115f853669daf05cea41908b = 0 +3232322cae4b7b5291a7493c9782762c5bffb6b6 = 4 +3cfb0d63c3647bae7a97dae273b4246bcd52dfb4 = 0 +42e4119366b0f85ad54e2c349ec1dca10376e2e0 = 4 +4b67a06ea5d8f5588d10cae3fc42e72dca1e5166 = 0 +4c498a992d6b54c842e63b7d5ae0af2e973f00d9 = 0 +5dcebdba2fca01370fccefc53b7045fe89adaf3d = 0 +6c8e5463ac71b416098e56a242fdd9448f2c76e3 = 0 +743f216ffb816d248a4f68a9ffc3cb264662b03f = 0 +77ada53848a1d3c66923b124471622ff3b175987 = 4 +7b159a0b89e3ef7bdf6d4405048aeff283fb1f56 = 4 +7f31ade7d0c555ecd201438592510ba289154faf = 0 +7fccfba53989a4d540992dfc612a7c57f3b76488 = 0 +8d038179835bb7bfa2217a6c4d3bc659f1d19a29 = 4 +9619b4aad89787db03865715bd4758bbdd95b398 = 0 +980b34f861cc6f8b6766235239b0127c18325063 = 0 +9863176e4ebcda12945570fdb73dceaf7615afeb = 0 +9b7c70a772a803b8d491126ba677c6e9e146b90f = 4 +9c952dc70ccb1ffd559155102659b9d6a6a62b99 = 0 +a732ba7cddb3b65ac4e45a84c7634ca5b4a7352d = 0 +aca71edc237df101ef3581363a8834cd68a86053 = 0 +ad980232fbd8f2cf998895375fa83ab4e043ae1d = 0 +b605197f544792c5e9aec1c4787d77a6775b997f = 0 +b994f83714321afbf7436f0ae3f23a7fa598c7d0 = 0 +cd967eab38497e29f0af73097cbb5c88d4774953 = 0 +d22ef46f4a6a33345cf644b5abec9ed9735229a8 = 0 +e607f19e1abcae105c5608a8ab0143543414dbd3 = 0 +ff57a1ef6189dce139d60f78ad799cb90b1b811a = 0 + +[925886fa-5bf2-5e8e-b522-a9147a512338] +08c8146f76d32912c225af6604e14e634e093c8c = 0 +32d29c264e000eeed2a33e586ed4ba25b368daa0 = 0 +3aa989ae5170b7d7aeeefe2788ace4d27ef5650b = 0 +57f188354dd93cd6d56bc4ff987f3ce6c8678f4d = 0 +6a50e028dfb3878bb73c5d1d12a45c1dfcd13b48 = 0 +6f8e2052488d3375449c35e95f870becf1dab8cb = 0 +7042d75a6feda9acea4ae053369e1b247a3221a3 = 0 +759ee04d8d1ab354aff06c5ffe84dc24b45470f4 = 0 +7cf8316b9153fef1df04b8818813188e4e7baf4d = 0 +a843a0c5c183bc469fbc7c7e83560a5fd44407e6 = 0 +b70dc612bc46677c391baf7b91c37824e94a9df3 = 0 +bff476415d3fdb63d4785da105c57e2045aaac9e = 0 +c169dae5bb2a25bb5c8088057d64fec19d1bea0b = 0 +cab12070db57571d194137cc4355db5a10fccc6e = 0 +e0a25a0b32ae7d5521c7af9083005c795b6727f1 = 0 +f772ea4ea8746f190b7fdabd8c783710571ad6fc = 0 + +[08131aa3-fb12-5dee-8b74-c09406e224a2] +0a10e44fcf3f72060208ea519e6b3825d7b8a790 = 0 +0ba1ed5d30bd2e6cd557a284c2c8336ccd9b78ac = 0 +161a9e5bf4817e7db4a72a677ddad76768ee6859 = 0 +2bb3bed65d74cd669c318a41f11610c48c92aa7c = 0 +409cb88e0921ffa5c12e79525fb16b2ab89025da = 0 +52a6e701183a0324a408db0ae7bb9be00d3037e8 = 0 +545f101a648c6a68fd025fd45ba018cf918d12c0 = 0 +62a80275abe55f0725db45c7606a10b3a803d226 = 0 +65bfef129e04d3c9846bf014d9160d6352c1940d = 0 +68871d723f797a5ea876d57df1cc13c7d519f5f1 = 0 +6c76c162e94d2562da75b58114290d97e73c5f2d = 0 +6fdcd965e7d331c6e93bea74ace71414a6e27ac4 = 0 +76ae49b6430b9a350d74af8fb8d36eb39ba74015 = 0 +783774e452b71a0eb6a4d26c3208dd2f0a564083 = 0 +7c3fb4c3021eb2ccd9742b7823e0de6177a63312 = 0 +7c9568e46390ef20f8c0bd3666050375962c944a = 0 +9fd1b25b03372359d2c63557e2dc8a745d16bc88 = 0 +a5e1e744854f874772e29f6c3fedc27d405ec8a1 = 0 +bb419cee07ad11b7d7f9c36e010b8ea8c7b46b84 = 0 +bed2604311f6164338b0ba4383dc33c06bfaf318 = 0 +c679119b33909f5745b0825694100b5a24fa9b33 = 0 +c996017edba0d43e0e1120362fc3bc0613a04c88 = 0 +caaba614aaf7dd7e6b2708e2a2fb53290f406349 = 0 +cf73574e58a1940edac603cb4cedd45e9a4fd107 = 0 +d813db49313e7eaa2b5e60730c9b062d79fc4877 = 0 +def06f1e10e09107a84dbe138a6221b3d79e2b0e = 0 +f488683b5f4f8f51d97fb715bb7473cc48c5d1ae = 0 + +[a8b11937-1041-50f2-9818-136bb7a8fb06] +3cc91a844dc459607820eaba405b202a0d60c1ef = 0 +52941685c4662e65d42f6d7df93da7cdfb8421b4 = 0 +590a6df7cdaf83c2f9fad5bb9c8ad2c1ede39182 = 0 +75ec31703fc44035d9f617775f21def2489a3a07 = 0 +8f92a5d2506529d8e6c2111fe946bf2c6f37e2a3 = 0 +a99357c845fb65df48e58dede167801e2061b15e = 0 + +[98c9b6dd-1b90-5d67-90ca-be6a773cd6f7] +0e276ddb3bee136e67bbced587a43f79706597da = 0 +378585579c6545519cafaeb0b669b163c290f9fd = 0 +48e0064eb384a41d72aac7f44114bb7adf714acf = 0 +511c88c30e63b18151a23e8c87c746ba12f2c0f8 = 0 +6926853fd31ceb36f102716c2a7e4627981ba110 = 0 +9605fea46734277179cb25a5c416ed717d6447f5 = 0 +a4ae2a1c3006b4f80eebe175a2f32a8ddaaa0466 = 0 +b0eaa19450499bf65b6f2271d94b69a5a1258b5a = 0 + +[f58f5e38-9170-5b32-bef3-0f72e8d4f505] +7fd64855c2f0193cb9bfb17a8da2306b027179fc = 0 + +[63bcc5cb-6a41-5765-9feb-b5d792dd5d92] +10a3f9e63191ecc073eb4ecd5e1f3771c5fd3545 = 2097152 +318ae8d2815b27bf0c688b8b4d7566206ce81a63 = 2097152 +332055212d0301dbc13b056298c3541888065cf4 = 2097152 +487db9abc324453497353b954ee710fb3668404e = 0 +62dfa64b98cc672ef28a2fd06f7ad9891b5d6605 = 2097152 +8cd99a7ad128cf27cbe7c08e550a5e35b9bb1195 = 0 +aab656909c22df2375b0eb5b3ce9c88601390ee3 = 0 +e12d9587bce95f1b59ef3ff86f621c6b65d99fa5 = 0 +e45dba650dd6936bd8ddb89c0ea20acb2c713576 = 2097152 +e824c76092f920634556d7d0c06006d2aada8be8 = 2097152 +efbb6d052e902723e95fe7cc25a78fed991477dc = 0 +f4e46ab283307a8a2bc95f75e4956dcf1d543027 = 0 + +[08b6f058-0539-51ec-9920-f66949f89f7a] +1720755eb76708b4ef115d9b9a991246a2359f9d = 0 +2c0c53334d99d5ac6de9c6a8354431a516f3999c = 0 +35712b2ff0cd475b52cd41d71f15027b728cc174 = 0 +3cb70a302b74886c6a75d649c06d6033236d04e4 = 0 +3f4d639ea290483c41f3450bc39e5d88a4ffc222 = 0 +6977b08f642adc261f78a4338919f5ba71e944fb = 0 +7381d1fc75ede5ba6d18f7367bdd6c8d99cf615f = 0 +9bd35a5a64fd7fc3a23d808eceff3d394d325d1c = 0 +bc3d611e124842cdb4300447089ca7cca8fa94be = 0 +c69cf60893e7505a361314a8367ce8f1183ebad4 = 0 +e7baad5e5b1d4a0e0103c0eb87014822ae1a93af = 0 + +[61d5e40c-f051-5c04-90a0-b0f47eb95ad5] +48cc2760d9b624d99266cf48953a61433245934f = 0 +4c8c281cc3528a262e74c39b0529607e23cdbaa1 = 0 + +[429524aa-4258-5aef-a3af-852621145aeb] +1ef7694c2837af1b30f2b8b58bfb6401ca8ad166 = 0 +250b50ab5f9bb87576c623fa20fdafb981ce40a1 = 0 +276c98d3a61432a14fad388debce91d056653b88 = 0 +2d1b8226160b8dd8f4aeffd40590539dcad10875 = 0 +69e9d09453a6e6552b490c6fb4c6ce79a74078c3 = 0 +6b75aaeaed1526f2f0a00f10e7639b6ac2a2c911 = 0 +77858908144b3b852f2ad8e84d52921eea5e69a5 = 0 +88657f977cb4da51360b439653eb1ce8dfe65fe1 = 0 +89675ad2a34ca75839a39ca1581cd9617ca3e8d8 = 0 +8bc2dcfb0c4e23e56fbe3dcdca8ed16452b92297 = 0 +90f084767077f83e8cba41869cd73afa9d8c6e35 = 0 +9b75e9058173edbf0f625600afc1c97f05374d73 = 0 +a97e6d44720607a671da27f6d81900fac27548d3 = 0 +b01425755c653ff8fe11cc1e3aa41b648331f6dd = 0 +b73ace5fd6729f8e7e10013c81942cb94150c46a = 0 +c4e0116a5a1df651c5df16afe6c4b80e7411d148 = 0 +c667a35d96ac5ff8615c57411e04bf9385e5d061 = 0 +e95033d432d4ac9815cb51c365b3fa7894df88e8 = 0 +ede177ec7668936db53e6badd7b8b43bf6b05e5d = 0 +f29374a69b59c470a4b23d99f6db541efec4a233 = 0 +f98897c27ca9bb4e1c7858dbfa6568ba7cce7652 = 0 + +[87e2bd06-a317-5318-96d9-3ecbac512eee] +24d37a5f2b425afaf2df23231c6cd881dcd92698 = 0 +70977d870573970be65fd9ed5c23acbbb0d04c87 = 0 + +[04a3d532-ba69-5937-989a-472689bdb720] +1c031f37cd37dbd6d93c420756a08ce44871d4dd = 0 +4d783e9802c54167ab9b8d747948743f7bdf0adb = 0 +6b9d28e01b487ac2ad04d61efe39e1bd12a60dd0 = 0 +83c014c5211eacfda4f08a5c960cda31dcf7a84a = 0 +8c731e29ef5fc45be68b61bb07486e78d8fe05bd = 0 + +[cec144fc-5a64-5bc6-99fb-dde8f63e154c] +21c69be8ec68510496caa148a7b6f26227871c74 = 0 +3024c558c0d1b3f2fa448928a14ae446133bb2a9 = 0 +b55c4034786f061ad284ccc2860660159a056f33 = 0 + +[fbd9d27c-2d1c-5c1c-99f2-7497d746985d] +b5bc0ab2b36620a6a4c118895878d95bc6a135af = 0 + +[8448b6dc-31e4-5fff-9e7c-6ff656793c05] +916ab45715c40eccd75279d64817119dd3f58525 = 0 +9637b20845e5a23d1ed8d140da6e777f4fb273d7 = 0 +a05c7cccf98cbaaf8ec6f593ad2f4c920d5f1a4b = 0 + +[6b41bb28-078c-51e7-8ac9-1ee9ff7bb43d] +0f6b0a751895d7f1983d04a47df33cae7b378e4b = 0 +212e374a8a32d807db3eb2d36132726e2d113b2b = 0 + +[1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] +08b8b855764c3d43cdebdc382c7e9c42b0c9d5af = 0 +095ecbfbf7746e6fb65ce2582d496d82226f10e6 = 0 +0a36dd322f82ff4bc51683d2c2ad347fa760007e = 0 +1566721ae3011fe7573cf6b8bc02365c3ba7b831 = 0 +16639fbd0eff980f1e470b8a267ed36adfdb4891 = 0 +1c2eaaba25b0359aee9621de60d2527695a38b03 = 0 +1e0e9f7999711c4795a21a4e49b37dbce1c4bfea = 0 +215fd89195a7cc5ad205dff4d1131c5ca9fea1b6 = 0 +2274941ffe518d6b86cfcb551d5b1d869716e332 = 0 +22b52572ebc3d03d2d42685c9cdd340a0d704511 = 0 +2713e8f6c7a2feaba0bac6745c789291c71ce50e = 0 +28fe64b9b7be106f4e618719dd18341e23259f11 = 0 +2c68350dbbdbb38764abab40efb4cbb171c3e799 = 0 +31bad76d28c8d6841fb6c8f3943b7a71943be283 = 0 +3250748823ab5bee252aa48b5878a1d8a0c85221 = 0 +3437a6891688897cd81148889722a56afbabce38 = 0 +36864894405ca25b4f75ee16951139f6a993844c = 0 +371331ae9d8ad9a8ed4b2535d7267dd98d894ad9 = 0 +39a50e83b64c5992a87efb3fb52fb73fd2ffd61e = 0 +3b4510e51379f91d95d498b21765dfcd428390c2 = 0 +3b8dd0dd341f65aa9654a92e636bc4436d25b198 = 0 +3ef4a73dfa61d3e0f6a556288429d0d5e7eacb5e = 0 +44c76bc2e472b459f09cffd4e191c53ee32a6ff3 = 0 +46cac789288f4b3c82537af88fd8ed4b33f38e32 = 0 +48a0f6886fda7da1051105544889e72a6222da60 = 0 +4bbca8e8a531023a50d12e23e23b195cc716821b = 0 +4cd47304f140777614700db8209408cfd29dda91 = 0 +4f524bc6c90264f9700b5b91a29e6cdbba192f6f = 0 +515dee4923b4b38fb042861ec96fc7fea7524fb5 = 0 +5468e199d6c2d8a2845613f09429a26419ced2de = 0 +5750bb0013ff877ec51861fa5aa8bff6599b0b78 = 0 +5869cc601df085cca9ae27e538d019fa12fda8c7 = 0 +599fde7f6dfdbc169c1fa24b14bd11f147a148b1 = 0 +5e59c5d208c899029d798cb1f105637dd90b1377 = 0 +5f415aea370918a9d4dd41c7d574efcb596e9a94 = 0 +5fc4b2e90a245a7f52eb6bbd390dca85d5fbfddb = 0 +639429453f4b9d10ed78f72e98ff0987a1a7da60 = 0 +65205edddd02729338f2e66eb75aecf2e685e39b = 0 +6a718574d03d871358911853f179dcd16ac08563 = 0 +70454b00cd7e408343893b40b380023c3bde01c9 = 0 +71b5dc8fd3ce573f286bb8b715df8a0edb81264d = 0 +7475db8cb69dbbcb0bf28299dfbf224041b85fdf = 0 +747e3b301551b4aaca23812fabbf7a97394d1ce5 = 0 +74e06f378c5997b86548944d4ce1beacbcd0b400 = 0 +764191802c95b8e8559d9821edaafc983b7af81b = 0 +78d8bcf3107e8404dbe0dc0e2dfd515e46aa5420 = 0 +7ef45fcff4939e14e615b97fa58b231e540ad8ae = 0 +7fb8b1f0cfad42dad608e478a61484116f45b11a = 0 +805468d7d385572f80beee42ef99693110f73a60 = 0 +822ae9075e5fc1bf4ad70a02271168c729d52a21 = 0 +872a570382f7a6a6d9d039dcc573581b6a20f276 = 0 +8769c76330db23ebe73abfe77e14e94c6b0db2cb = 0 +8af219c5eb1335aa3912e5ace9ebf36e55628f10 = 0 +8b43554a3f754f49b0f0c907e5fcad8ebaaf36ac = 0 +8c2148f1648af1fa3f8cb143eaab3c90915458ac = 0 +9012f56c98f7d8f2bf3c1579633b33069f775e35 = 0 +9025565498f0b8259b50ce95c42e1e76518454ca = 0 +91605cb76c77b74e550733990c852251014afb2f = 0 +968537d2bd3b8c07de94ef622ee9cd607a4e3730 = 0 +a0d6057fb155ac66b2303bdf36c7315d818e8d39 = 0 +a10a8fb841d3f404121bc4ae64419fa4c6b178ef = 0 +a2a6c2673235b1b69135ed95ccd94ca85c8def42 = 0 +a2e129e0413e2fcfaaab806c9d8f5dc0f5170fb4 = 0 +a4cc81e0c33e31c46ed218719599764cf7bb1b30 = 0 +a516bb90ffe4628a94424f6ceae5501c3dc3f6ed = 0 +a8a0350f160b4f35e69ffca5cb542fc8cd278b25 = 0 +aab5abb4b58c6fc2685f9111caf10a41a81cad27 = 0 +aae9c7b477ebbf4c79812521b19e72aae950993d = 0 +ab34d32f072223332862fe76496b491e9e3f3e02 = 0 +ad1e14e1910f67d94beb02a9999f6498003db8c1 = 0 +afbf7c49bcd26c643926e6354029e2243ffffb26 = 0 +b035dacb92503bff20ab06560c36f758e076d288 = 0 +b70c49ecbb55f7c2d7d35afdf69cde23ea3c16d7 = 0 +c4609003d8df5a193ef90face6fc94c19325072a = 0 +c659a088699d2825a5337266c4afa53e183f6c5b = 0 +c8f11f14a101bf10f713e10391e3f2ca50818193 = 0 +ca3f030a54639bffc33f323ad97fffb0c234a971 = 0 +cb3eb10eb926eb0220054b5622d044d4cd960b3d = 0 +cc1f795d9a743ff6ddf3aa87fe409ea48a2942f0 = 0 +d46d242936a88109f37a5866ec46845f27c16084 = 0 +d65fb4ddd374859d83b2584bff7efe8690e3ff8f = 0 +d7787d5bea71f138bfda826777278b95cfee133b = 0 +d79eb2bf8637726887b16a4d8d520308b9816bb5 = 0 +db9d6e63601f37af1175006fdf39d38bed4f0e2a = 0 +e812271e77aec426f689ff81c2a765dddf70c0a6 = 0 +e89d7e9cb78356a62b0ba29c163023b45b01d281 = 0 +ec2f97e07fa41e06ed00e2f247848dae43630786 = 0 +ee2596e07512cfd13db417658e46641bfed448a1 = 0 +f00483508efe2546aaa54d88a9fc643980bd5f6b = 0 +f1a265b042daa8bbd867b4ecbe54c7f12f59944e = 0 +f2966ce4f44862989a8f7743bd3a27cc1bacedcb = 0 +f467f61e7034733bf73d4fee3a81b49ecbf879a8 = 0 +f4a79a5fa314dbe8bbcae9deb39bc29448a5fa34 = 0 +f5143909979857158578c114ce1c4ea100dc2870 = 0 +f6bf3ff18a6e1802165faa7c6774a6e5b189d26c = 0 +ff7b7813da52e60d02686561a4e7bec4e8142795 = 0 + +[ffa52052-4d10-5226-a170-a2d9687d6a3d] +508f3204fd53d08da09292483db928ff66465ac8 = 0 +817a57e5a54a6af4bf3a5c43ece2bb6a28386729 = 0 +9b4769344f0886722f77eb7115bef0bbbf0d9544 = 0 +a4be53af6dfe10ce6a51acd3d561e2a7d1ed6372 = 0 +e411d539314ee32fbe429c06c434fbea8a232ca3 = 0 +fea9040953fe4f4f292f5fabea63ef6f36771525 = 0 + +[f5f7c340-0bb3-5c69-969a-41884d311d1b] +13bcd7d8cc2e8d6faf8484c9bd2df2c6b28174a3 = 0 +3712b89bae0fb4940ce7703529f4bbc50933575e = 0 +397956c859f0184721d06c6f305fe564fdaccf61 = 0 +51534aac439585a1478d72cf53e999d2ae3be215 = 0 +685be2f43d2e5486ce0df3da58b548e9f2145cf7 = 0 +9dc2cf59083bfb1bc76886b64e1d7d2930b0ef92 = 0 +9f3a2b87bb0efe6e07d55578621d4de693125460 = 0 +bb89e79b088d41257d4badaab120b5d64af1b65b = 0 +d92188bbcf876716a86e2d0c76872d554a414e54 = 0 + +[b6bec47e-0844-5090-977a-5a6d1183f4f3] +b4998de6daf723978f017008b667160272036c5a = 0 +cc3033f6210729b2faa882edd6186f17a2fdf714 = 0 + +[4d0d745f-9d9a-592e-8d18-1ad8a0f42b92] +3c4c01a2967ad7bbd5d42213c9f425c603e4d329 = 0 +475fcb08a5b8fc9e0ee8f6d465fa2c970d67ba60 = 8 +76e3dbe7dfc05f19c1cb16fb64046c6ee9720d54 = 0 +a2c84be2042dc1c95d3f76b348dda972e79c014e = 0 +b8d3dfb803628a63ed4e22440300ee4aaeb52d19 = 0 +c3901214f3108426e345ccbf73777311cc992ece = 0 +fecd63141d328f607763f90d7fc9308a29eac803 = 0 + +[90014a1f-27ba-587c-ab20-58faa44d9150] +0fddb9f76f775d99e7c4fc58b4bdab0417e4331a = 0 +10a586b39375d73cee18bd7bf8dcee366cb9c5fc = 0 +13bae6a657243742705af5c48fc4f8604a9e33f1 = 0 +1d86dd4355a82b508cc655ae1adba5d2d6afdf63 = 0 +234e27215fb1d41d931335df63915fd32330dfd3 = 0 +3b6bf6142bd3b93d21a6afb1f6a22775b0cede67 = 0 +44a1b678e38272f94d7bdb872c0a09759e55abd6 = 0 +468766722dfa0e7f9e56154124dcddd4b1915bfe = 0 +490112262b3670021ca9e40f890189347a3556ce = 0 +55cb2b42845198603dc30234e623fd359ab14931 = 0 +5d12b541f458e44ee598f986970c8989e183e063 = 0 +6449f5fb7eb957180f2cbc557f654d425e2e1982 = 0 +770ba3eb3eec1f9eb8251eb6f3948bd041c4dfaf = 0 +7c04e6abccd7814d4650cf3d623e38438d7ea431 = 0 +83d2440bca8bdd7ce2e039fcbfbf1633b608be29 = 0 +8af3861de499cc8742424d189e466f39078c56b6 = 0 +8fa302c7106f552971253573b24b3d9d8b39a8a7 = 0 +99d3b8cec23314293d477ba5ddeca5dfd81dce08 = 0 +9adc92cf3252611b8aa8f3a14e712901e68ffbc9 = 0 +a134789404241f24bcf6eb7a397e8f8591f83705 = 0 +a1e8a94461b3d969479a3663de304065a55522a2 = 0 +a7871cb072f73f4792c43a70a295c1ef8b03c593 = 0 +afb7891204b0dc76076a46f22d2e41d88e135048 = 0 +b832fb5efd551d218ed45d0a9ae11a33d8ee8720 = 0 +b961e141b95e6adec92a25bb48c6db891291a99b = 0 +b9d9f9597f18528e2ce5620ce7a1f25217d24083 = 0 +bb25a3089beaafb0e71c2b1344720ec04d04f027 = 0 +bf05fe7b6fd8e35536d38e88f9ed2b27555ce4d8 = 0 +d5962306546b2355abab849ff5e91177698baf80 = 0 +ed96aec2ccdf953711442c5a2c7b49eacb401d79 = 0 + +[f9d848e4-75a0-5321-a43a-fbaa97166838] +5ea1c9a16d81587eaebfdc0c078d7a368e99066e = 0 + +[12d937ae-5f68-53be-93c9-3a6f997a20a8] +0140e0ace18d9fca62982e85017e84664f8ffd35 = 0 +014d6a1e9d611402fb2b4151db93be2f2564d829 = 0 +441439eb5e2b108a0737d0e29f34708044be1305 = 0 +795314d17a0fd742fca296643028385e906f9f1d = 0 +9e3cc825b4ba19d250fdcf938237a37a5f6098b1 = 0 + +[b2cddf3f-0e89-58a7-933b-bbac06005fc4] +0c4f2351e6f39d80ebc2132c87437a3022d6f38f = 0 +5704e0bc2719f59ed2159c3c2f4421345feabc33 = 0 +7ff743e1cbb99b467e01fd42413017c815f1398b = 0 + +[3b7a836e-365b-5785-a47d-02c71176b4aa] +0f0672c05e7868136cad819bfec33de35605fb4d = 0 +14eb167dd8385457c6514bd2d18e7f3c31f0b73a = 0 +150d5138455360947907304cf495b6f86d0710ad = 0 +194f4fb248f9bb92dd46ca11c3e7d0f353b95c74 = 0 +30cd8e51474046c9bb5d9d136e46a1560d74b126 = 0 +3ab2e8bf850723faedaa7e9fcdc7980699cec06f = 0 +429bbef8a352e1f169636e1b341eb5d19459f826 = 0 +511f1d77ff5a331f16d3724c51e7f60054085399 = 0 +546a5f2775c88932c5fd2fbe9972466ab4ba4fcd = 0 +5a612b621bb761ab01bb330f329020ca0cc7188b = 0 +5e603c07625118bdc7e808958e05190be019e3f7 = 0 +6b9755457caf87a8295c1d928286ec3891d45ace = 0 +706b957b376c1394ff2c76f4ce60efec2cdd9ac5 = 0 +7276e711c1a8140f70ed6a2d191ab07ae0f3410c = 0 +7292a550fca799a169730d077b37f8a42711a219 = 0 +8cb3b5cb2cd80ddf22268483e96b0deb70aaab25 = 0 +8d87a682224fe04dba004567fe94a99af4908db4 = 0 +90a35c1cb001df92844c6ce84a36916d53055909 = 0 +935843312e0a272ccdc154da5be4efa690775cdc = 0 +a0707ee93b4a94804ebc1efc66c7c6bd17aa7f7a = 0 +a5846bc5000492a9430562dad886e859bda6c397 = 0 +a603567277d0aa86ccb7070391f1dfc0fbb0bdb8 = 0 +ab4e4853ef4f4e9fc4c00085e9c98aecf7ebb072 = 0 +ad63bf581d3c99578371592ec48ab695a1608432 = 0 +af0dcd9efe59cd0936c20b7dcae015d157d77d33 = 0 +b2bc6f39636b154ab9bc418f297028f129b17dda = 0 +b8498f860ca0ef5c7ddf857e8a65f5d44a5f0919 = 0 +be57c62990dafc657c08f2fe8c57048a5c7c4687 = 0 +c27a8672d9377df7b467dbfae26228c5e0f36c1b = 0 +d5489479f9442f44beed1cdec7f0b1f482279f26 = 0 +d9c8f13d8f353a9875fdf149dbbaeb49d4ce6563 = 0 +ee6557e23d04efaac0e1d138f84075e4a44a13c7 = 0 +fe8518ff62f9fd3c712896ad6d9a0fa49c33e5d4 = 0 + +[8314cec4-20b6-5062-9cdb-752b83310925] +7b7cc10ddb0c700da1fb16bc3ee283d846680253 = 0 +7de4499457fae26bf9d0de7e5c6205d5077b6ca0 = 0 +8c5ba11f858b84838bf024012266ae2e18b0db48 = 0 +b81b17a9f0d3a3dc3ff4688e5f05b9856bf676eb = 0 +df29875481a6d121d0847be18a8912b0ec080909 = 0 + +[8e46ac0e-a145-5836-8321-a980f36feb52] +333342f789320b24bc722f90f0a22e9e7b0c568d = 0 + +[fba1ee03-5eed-521d-a2ba-51b06ba98eb5] +7d89d2ef95b59aa0c6428e6d776dadc5737de88a = 0 + +[8a103c6c-1328-584e-8316-b4faba0ff29c] +2e937a619f562f3f251de4b4967276005735d837 = 0 +86e0b47c032d5a735da00a2ed7057418a2182487 = 0 +8b9ec59dfa0dc64d2d87c5b0e03965132b83aee5 = 0 +9de626079d10deaeb086c12cf0ecbf742d6a9e26 = 0 +fe11f025f21ced07119ae9b72d72cbdffe10982c = 0 + +[355abbd5-f08e-5560-ac9e-8b5f2592a0ca] +1888fb3f16bd54d2f1882b657f80ab367174a6d5 = 0 +3f102204aa1943e13d175c0752e5800b6894a39c = 0 +56146f42f2a0080f7c514de299c6ca29b7370a72 = 0 +81b3a9ff8e055316a4931bf2dd333c1582dc5b23 = 0 +ada4798c16b501fbe0291f9296d7a7c0ddf6f0d6 = 0 +eca50761d8cf1cecc67921d3d46476298e0907c4 = 0 + +[0729bffe-8e6b-52fa-a3fa-893719b744f4] +052d3451d5a7dac291cac9e5010c83d0050aeba5 = 0 +2a35eafbe4acaf9cacb63f6f739265ffdb69d5af = 0 +63c0cf1dcbb02157c66035218b38fa573d0ba42c = 0 +68d105d47f04f19daa0e96894273180f0b8bb7e6 = 0 +dbc925f5f466658c947afb3c18f4b6296fe851e5 = 0 +dc0c38d9a3a1c748d9190d32af6f2a4c1307c4d4 = 0 +e2f710cdfc21245b9fa948570331ea9f9c43e886 = 0 +e52a7544679997def46480cae709cc43c061189c = 0 +e8a8fdf9ead914945740608a5c3c744d66b49457 = 0 + +[a93abf59-7444-517b-a68a-c42f96afdd7d] +1bfecc9843d5e0ff8d809c68061d244f67890958 = 0 +21a985d550257c9467831b66f8dd7c7a74ee8c29 = 0 +22e53ff70a5953cef406fa5abd502e0ca985db54 = 0 +273c53f691ff86e45985496f4fda69d4acda0713 = 0 +2b435566157cc4fd29547c6ade63b3b991e64429 = 0 +2fc214ec87ddded5ccb0ecc8c9b16041dae94c3a = 0 +41127099f495d23e661cb296a23741806289fc5a = 0 +42df38414e54e28a48713dae399da778054177a4 = 0 +53a773dac3a819b15e6aee5a5e6c0aacc2131053 = 0 +5920f257b5b49c3808e7d4f8cf538d59d73e9b5b = 0 +5b41716b01985a6e6b83ba2b5a8c89febc4ea66b = 0 +748ef9d11ef4986874f3fdc39ed4e83d0df75e50 = 0 +8546680dbd3e9742fccb9a91478680acb34a7b13 = 0 +8d3f3c6ec23e774464d66d8611d2c5539a30b1eb = 0 +9fffbdb1f016b62cf613d1ffae8eb4c5663ee669 = 0 +cc3307699ecf3f257c9eeaf14a38b2c8af609d2d = 0 +ccc969947bcb42cceab5f4ac43ceede62ce8dc7e = 0 +cf2fc7ea5739319cc08fc0f98b3e1cde49295ab1 = 0 +ea497223ec3aa8c1b28c1fdd51a789d51f259a81 = 0 +ea9614d4bc21f5fe38111770e889e600cf548e7c = 0 + +[9b87118b-4619-50d2-8e1e-99f35a4d4d9d] +748049ef9f861dde3176afb41d5808802c64972d = 0 +be291ccf5da92d9320878aebffa5a60421666d82 = 0 + +[c7373597-e383-5c77-8af0-81dadaae005e] +9280c4948d8f2c19cfcee8fb188e54e85d8becc3 = 0 + +[19eb6ba3-879d-56ad-ad62-d5c202156566] +65a2800675458f38470dc2a83c8fcd1ea3c53178 = 0 +b7b42457b76f8d9074bd8300bc2a5d02a41982b8 = 0 +cbda53efe9c44669101713582a7d3c26d554b4c1 = 0 +d12c665497656d029f4c1048e9c3d88ecfa2ff3f = 0 + +[5432bcbf-9aad-5242-b902-cca2824c8663] +201661159dd00c23ccca67e89aef211fad8d1d3d = 0 +69000d9150e764a05f36c61e1aa1dd027e927f45 = 0 +cc6348eaeb87bce86c15e968e996504c8e2143fc = 0 +cd38932f4bdee9130e6d872876057eb58e8bd844 = 0 +d2b13203c6e72929d06f09a3687352c0ffada175 = 0 + +[7c165e09-dada-5b64-9fdc-39b801c58527] +0650f4425f88aae7eeb2d75a69021de3671f9103 = 0 +1fa459fb0ce55d2797b52fd340622421c3663961 = 0 +4458da519464c13972b944d0d39dd93459d3a710 = 0 +4c1e08ecc323d94d6058a2b318e29b5579749f5b = 0 +7ecfa21713b20ccb04de62c2e5733e6e196386a3 = 0 +ae6527ca13c747c02b4e05a7938305b069026a36 = 0 +d5191b42f31fd2878deaab91d9f10f105219e07e = 0 +e12ae4a8d464e2be8ae886056f4aa5f8ebd548c3 = 0 + +[f9da4da7-9382-5435-b973-175f5d8dfb32] +0a85c61aaba996d4dce0d6ca66d510fa3fd3d562 = 0 +11fbf2961e5fe43c01f8d9c5fdace511e0b0acc2 = 0 +6e5d3acf1665b8b69fe4a8dd1766973d5958b2a2 = 0 +a25424a2fedcbc747c4cae327e41ef4241b689f2 = 0 +b77f0bb65628d4e818984e5e1191bb9b042ce47a = 0 +bdc709cbe047c131966fa76faa45cae3545aa338 = 0 +c43f806b870f06fbdbd3adde4e74f841e36a15e2 = 0 +cd10970fa57d14802503945b42995fa52faeae32 = 0 +d53ca3a5c69b710c3a10e26c1abf5d9d83d70f62 = 0 +f9f7004c64fa7457eb0ef89c5bd594efab779a55 = 0 + +[2f354839-79df-5901-9f0a-cdb2aac6fe30] +0e4d69b21af19b3ef456d1ae73bf19d5c6612cde = 0 +157dbda1291f4a04301c83f65572c0e05ec05bf2 = 0 +1e5181512f5fea77cd1db1c25f52cd41c59cb5f9 = 0 +29a5397280fbf3f8184ac50b4c5e309b8d03345c = 0 +57fbdf7159d28a35226bb48d34b3875be974d883 = 0 +82e53fc4de58b688f94210115d015f0c9018b9e5 = 0 +8ea30e8682d56fe8be9662922846215a361f8e59 = 0 +940cb3df3667319eb2be399b5cfd90aaff19e9d1 = 0 +c3a6a26997d8e9e2a6d8054734fb1c9757d762aa = 0 +dc2afcb4eeccdfdc1a771663040e05b328823378 = 0 +fd0ba67306f4081ce15916bf3527c279ebfdf0ee = 0 + +[eadc2687-ae89-51f9-a5d9-86b5a6373a9c] +0177f2a99032d5c115945997285991885f4c906c = 0 +02ce97243873002c2ea2739021e410c1a10fac19 = 0 +326d838e61fcff26c7008a88e05280b8278c3714 = 0 +51859b3826ddd383727c839d45a33df84b837b0e = 0 +5d6efde998562caac597abbac4f5623e895d57b5 = 0 +770bab7a73b8240ecca78be09d95a8a9961f0926 = 0 +91ca3d018dca8dbe5011a3da8ff3af4c19615cd3 = 0 +9f372f5b816bff8acbcac471f7876c12bbe36afa = 0 +ae2af070718546bd26c4202f21722b5881bf5fa7 = 0 +b780b27d4caf3fb48cd9a6868ec900479d642aaf = 0 +bd14f25236fdcfe5cf3433b69ca346297c9707fa = 0 +be5071fe371bc0805d08c162caea96245ee6e9be = 0 +d6377e80f9709ba3995a4682dcf3b76fb86222ef = 0 +d6f558db1dc0038412b7afb987e318c8b88fd9b4 = 0 +f384a22ac66a7c04c1831e0eafe8db11b240b4c3 = 0 + +[ccf9b6e2-7ea7-596a-9d65-09863b18e8cc] +e7139c643eaace42556ef27078e0bf286d20d699 = 0 + +[ee84a2f6-cb0d-56d0-91f1-5a43e127d00a] +06cbfe62c2cf450bffe559e3753d4b8eef7a2fbf = 0 +0cd5a3da824dfe09ac1eb429c418f4f006ce0225 = 0 +1004cf098b12f7314ed68cdc3a2d5396a6af4dd6 = 0 +1bb613a33baae81c22b64d2ab20662b38e2c1386 = 0 +27065a962bfe54539a68c864af0f5df70a4b66ad = 0 +2e66c19b4ebac65bc1e8565e1d200ad691eb4c75 = 0 +3d997c05c8ed3f7ffb9f0271b761116dd97b7fe8 = 0 +627cbb29f2e1533b998ce7bfb19726747243c073 = 0 +6da2e374243118bd61eff7861c653faf0ad26f5f = 0 +848314a0485565817e5a2c444f29d4758b8312b5 = 0 +ac76b481a01690a6328e791184d010fe72e6d00c = 0 +ac7ab4e08041174f289d9ca83d440be1fd29f26e = 0 +d2055962c0fe13656f33af6b1f21980fc2f4ff14 = 0 +dfb140dc7b10be1ceb6d4d6f09e5978e5c144c32 = 0 + +[2dcacdae-9679-587a-88bb-8b444fb7085b] +09f8838c3c391582825ee2299cf6304c9f49dd11 = 0 +0d0fccbdc012264157f4eb7f15c6e9b1c228c9c6 = 0 +24faa0355a1c96790205f6c707d38b5917c0d835 = 0 +9f3c402f5223b4bf23acedf208953228701264ae = 0 +c3a4240be3cc330d405dd7725a41822101cd01da = 0 +c654163d3ff5cfdff3bc6531f5c3391cc10b00aa = 0 + +[2193fd1e-84d4-5b0b-a3be-f484d363cd43] +1e0323e792f2ed24922c628546273a2134cad494 = 0 + +[65888b18-ceab-5e60-b2b9-181511a3b968] +0f8374cc3b132f95057f3fdb25f2c620019d4268 = 0 +19eabb49f1f510e9e6ecd44837ffa88c5587b359 = 0 +1daf245de537cb9670f52a0034df103e007c30c2 = 0 +32f77c307749548ba8481d1c61b3454786cd7c62 = 0 +35750f1ffc89a295c986ea17b4aa4e8e9c3dad96 = 0 +37d659d5bf0d95719604749b5469040b7c4de7bb = 0 +3b9900ec99d13636fccc08776f1f818f52c1e6a6 = 0 +3c5c91a02a3fe3739630e7991758c98dc8487454 = 0 +525fb3e8eb6ab246afc52d6cde248cdd0db4d6ad = 0 +55b59f34b80c17ffccd69a24eca4ffb5e43c1aa0 = 0 +576950d89396474e94c0bf357ddc7a155b957f17 = 0 +57f45fb5e1aaf296860aedf01b791a0c541ba341 = 0 +6ab2fa609ab6fd10a9495770e64ecc6380061851 = 0 +70d4ee1cc81cc62d723f0752d66201ebdc3ac3da = 0 +78dea74b0698842d890202d8982632cc9d486520 = 0 +796d9082ef7a0cc578990bc610a60f876a4c046b = 0 +7eb3c1b1bcdd2b638fc522c8cbfc412731385d03 = 0 +9050773406e7e368b02c52099209cbf99f38e94b = 0 +91687d6c00f60ced3fc126879ad434fc1a13c535 = 0 +a5fa1c0224b32d8dc7dc5cb5455b5c1cef6d0069 = 0 +b0bee6c0ae22b33f647a682d62cf00b9eb66de78 = 0 +b700fa3eeff29006878778043ad02e71fe15247e = 0 +c2566c7ad9ee482763692a8135340f1dba9f5058 = 0 +cdbf4625593f36fe073dcc017ce64400d5812782 = 0 +d4574c0b0f3c36bf81f244ddd04639a0a54cb064 = 0 +e77b02c4a0ab5f280ee17d8a7fac3461fec69fc8 = 0 +e84b50328b6e3139f5300f023472ecf43e2b8242 = 0 +fcb7e72ed923283496095dc78696e620b0754893 = 0 +fde3076884f6894eafcd7b2b8f0aab94dbc893a5 = 0 + +[d96e819e-fc66-5662-9728-84c9c7592b0a] +22f7409af45d2204a1b58e63ec346d5dec1e5edd = 0 +2cd9fe6f400fe0d3b9c39c29cb77c70951585080 = 0 +3226946dea5d5d19878d6a8347bb46425533ce80 = 0 +36d893413fbc5422415e99cbda34532848ea9433 = 0 +465c65eb7a16f2627018277d6ec8e02ad83258ba = 0 +57c9960db1b56df3f6734bad7b238311e48e8236 = 0 +6cf741c60645d75a906fc12afc640942569eddf2 = 0 +70f435a92166dcc7a310919e4dd3665322ac5761 = 0 +78727be19ef204a5dfaa8a2c177047a9903322f3 = 0 +a1c8e301610db5cdb3d45a054f449ca69fe33d8b = 0 +afc8843e1c4384e31b34fc699d7073575bc6bf40 = 0 +cb147097de1cad1dd5c089243743f21a576a4a32 = 0 +cf955dfaba86912c7c9c132e34921fee733e6b90 = 0 +e0a840d5356c2167bb7961f77883c764df2b4ebe = 0 +eb0bcaab994bd65aedd815eaf53156e51848e35a = 0 +ebc9d4d6fd601c6743afa292b39d74a5ff5493a4 = 0 + +[46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2] +08ce1324bf06e315420e8ddbbfb6f952dc60dffd = 0 +28039f3be0887357794c45724daee1ac0accdc85 = 0 +3cd55e101088d86b09017d6dbb8623acd3be5956 = 0 +46d14ff80dbf3a1624e702641ff20eb100f9b1fb = 0 +4f6407d576f3bc8643750c3836d1cbd24137a775 = 0 +6fd283da2322a4360f4bc5681cefdda40cb1ba52 = 0 +7d9a7a3538d31337ad4e8453c92b4f1514769890 = 0 +944436225834c76e45e75acd6d4b14dca06ee170 = 0 +c249e46838743b7e110c8b0e24c6072eb10d433d = 0 +f29ec67798a423af87a52517d8cde5d66cf81816 = 0 + +[626c502c-15b0-58ad-a749-f091afb673ae] +a1b614f6502cff635028cba19df624c0d30e2cf4 = 4096 + +[46a55296-af5a-53b0-aaa0-97023b66127f] +effbcb1379f34a7d4d1f4332de443e18750d0373 = 0 + +[fae87a5f-d1ad-5cf0-8f61-c941e1580b46] +0ca7f4a6c865a6d1f9dcf30345224d07c39ee5cd = 0 +0fdcd12cc8914022c07f5e3a191daab67d728e51 = 0 +12672c5ddf6cc98b0b2847aa6a31a16ee0ca6812 = 0 +1fe85fb6f57574b3fe970e7eef3f7a2c0aa1345c = 0 +203085f06b1c0a125845b487e7e4d886a6b8a640 = 0 +33cafca80a56e5cd2f0413b407c87830fe00e739 = 0 +34ee64d71709f57abaea8f186f20ee695a0a2a02 = 0 +451ce5856881357387077c15a23195f0d30e6aed = 0 +4cb6e869739d4a7760db0d32b319922e66fb2a9f = 0 +5053ad4658f6659dea405f2b849d455e66a6b547 = 0 +5a50de6f1de749e6d9594ea777230f1c3565b967 = 0 +6024e47d167c08876cf2a7fdf3f01866640ff37d = 0 +6c7045994dee1f1bc4d6bff0a8c96043a9599a5e = 0 +73d119b2f2a74544c75bef0c21b09b03e1d18e6f = 0 +865cf925f8fab5e3c3938cef186a1d5ce9ea3913 = 0 +8cd7644b1c518b4cc2617faa9c51723cdf60958e = 0 +9106f09f433e111e4d0690f6f62a2f8cc862ae9b = 0 +98b0d48491708afc794ab7a471663c9373cf4ca1 = 0 +9b0d498e633d1285362b4e533ffd3cd683c0a2a6 = 0 +a0c0da6cbaa98ed707d4290c899589e7833dbec5 = 0 +af92bd64fb3af55a9da61e1e1495d27c814130f2 = 0 +b275b4eb786d9b6a1e8f4fbfbd8ec80c8e780515 = 0 +b8bf5d3686110a7b031dc12fd41c8c70c5e228b1 = 0 +c28742cf8c4af8e49d66384640abbb1dc4dfa6ae = 0 +c4fe807d72073847e8e8a84480a58e4b4650b915 = 0 +c7aee60b8637da487ae017ca969af275e8b3d203 = 0 +cffebc149f1188272c2b366172ae636a22b89aa4 = 0 +db4deb8ffa1c64dd19c871801ca95bbdd01963e8 = 0 +dc0965d9b6bd04b02bace7a2812dfb1e2ad7271e = 0 +efcb17731574f9e3b66887f7a93decd233239960 = 0 + +[c8b314e2-9260-5cf8-ae76-3be7461ca6d0] +21385e94f81a910d2c2b2bc481e43650a4e07b9f = 0 +693fd211e3d481386ad883057a01b8963468d0a1 = 0 +b3865c87e450871b834a515a81ec58b0c118112c = 0 +b791db4efc73d79c842562f5b224a3e21afe3bf4 = 0 +f526b040b2a0a6d206bb64c6824dbb104999442b = 0 + +[288772d2-b0e0-5baa-bf2a-dbc7085676d4] +9e34aa61785b8014f9869365795c193fd6f619a4 = 0 + +[cfe6cdec-d1c0-55f3-be07-3edbc1168b6f] +24a76afe7339c93b5871eee3237b4f3b13ba41b9 = 0 +3fc060ac0780614793488e064ad51b7bf54551ef = 0 +e7a7382114b0315a63952cf80ea87181d2a2420e = 0 + +[bb4ff4b1-d984-52da-b2e5-8efc6dd45549] +0ad36bd5696996e860a6273917bb383dfec20a93 = 0 +0d34723d175ede905d8a7497148d3436befef605 = 0 +10d27d37a8f06c44edbf1ff33b5b64b1792cb7b4 = 0 +29e2444ac1af3a9afa8eee552cafcafa182d68cf = 0 +6cc99119024ef64459076bf6b41e482931391832 = 0 +6dcc6577c224b5f6bbf621ce9dc1cdab88b21607 = 0 +71733e42852b04adbac627d1afb05cba2b4d2ba2 = 0 +9b9fa779127bba2b3a1409e8b4dd74382e77720a = 0 +a4603f8b7feb756f99df1514fca926074bc74308 = 0 +b3383a5ef529862f3640374aac8ee14077c284f6 = 0 +b6d3eeecb8a5fa672b513fe1d1ddff063f3411c1 = 0 +ba9c53b484b835846d7153528cc3b9ddd675d56f = 0 +ca67f2a63535feff2221b27b1a5b09bc2a6982c7 = 0 +d48396730aab8cb51628fb0ff998f665536da0f6 = 0 +dbeb24e5818912cc7af0795e9a07409954cf1b09 = 0 +e623a33356053ab1802c352bfc414bdc9bcb83c4 = 0 + +[1a7fcfa4-7553-5727-a5d0-072824df3c21] +618c9a38e0c3b850de7b015d34194c47d0bc1d01 = 0 + +[ce139433-ee8c-55ca-82ca-af437e33ffbc] +58ae7e552af55f9dac6ff3180e1c489f2b2a20a4 = 0 +8430bfc5ca4915be14b19dacf8dfd88f22826b2e = 0 +888626bc13c672e1789f1e1a1a473b2d05360939 = 0 +bb795f20ec207d2c14936af17b22c604af5d52b1 = 0 + +[5f491285-244d-577f-91f1-1ddb566190dd] +479ce19a4006661f820ff6d359ce8b003c47b863 = 0 +6f7af991c09e161fb1453a6249906e8a0f19b8d1 = 0 +e2bf3c380fe993908c7234ecdf6232a8053a1eda = 0 +f278d8ffdab47d9192d09e4f886e7ed27a887888 = 0 + +[be69cb46-3af1-5a2c-8426-f7f9d5958b20] +6466716e95c5940355522d73b3cbd54fcdf6f725 = 0 + +[68bca01c-a25f-59c7-acad-f27471d8d71b] +8b437def16fac616790f56385ba54ab1b7ebe640 = 0 + +[06bb1623-fdd5-5ca2-a01c-88eae3ea319e] +c2e9c7c53728cdd090aee5d0b60c849490031387 = 0 +c910a5a28016003ea4c6118d998e5b00ec911036 = 0 + +[17a20078-44f0-5f21-b410-214499191408] +0c16156b77d1edde0c438e6804d220573701817d = 0 + +[54e51dfa-9dd7-5231-aa84-a4037b83483a] +11cca5d65816fbafd41dddbef56f9ccc99d881ef = 0 +c92e145d974c597fcabfb9f1589a991e5288e7bf = 0 + +[2ae35dd2-176d-5d53-8349-f30d82d94d4f] +9596c7668840aa08297b0ebe1c75100ce00ffd96 = 0 +f9297518d83949f2e0e38c8750873c5608494cf3 = 0 +f937a0f9d2c90a6243e9ab69db877b066bfba55a = 0 + +[86800b63-3017-5277-aca5-15d7d6a5f2b2] +85520e66147c51096cc7b9c1c9b3d4d18ab7573f = 0 +8b6e743c864501413e1f750cbff5d6375fab0453 = 0 + +[f2d92676-cce4-5c6c-9dfa-ef4beb5f5b05] +b044d6babe5f7b7e1214a20a784e169c1d11e912 = 0 +d9aebb059cc6d8e61b76664b5ac990587837686d = 0 + +[15abb135-4bdc-5618-878f-10a5e80a0700] +519f5b2fda78d14c54cc764a127720ad8618a31b = 0 + +[7e2a9768-7bc0-50b3-a796-3c4cdce8b7d1] +31cabcae53246e424f1a946116e2225df67f4a6b = 0 +983fe9c857fb6b98d915227db1d70f962e20d633 = 0 + +[aea672f4-3940-5932-aa44-993d1c3ff149] +3593e96719ebdc071086d442eb0bc805c0ad6c0e = 0 +36eb97102666db032b9a8df003f2798d0ab32187 = 0 +62da8dd6f0a6e7f83fb6b157dc3e7feeb0fc1b9c = 0 +b1ceaefc7add7279ce6b140bba181f5c7c2401db = 0 +c81235a0f3cf19b5cc564c0f8489eb40031ac5cb = 0 +ccd6d208ddb09c58cbc23164e0a9f81d0518d85d = 0 + +[6465ae08-de3a-5dbe-bda8-3920f6a01ab7] +03a13ffa5de53931b88f7f67c54ceaa5b6be1c1a = 0 +338ed058a7665a14248e184f3d0c547ca2790cd2 = 0 +bf446f24c27de33ad58170b539621e2983472004 = 0 +da38079d0a773ac5102bcff689bab26655bd3522 = 0 + +[33ad39ac-ed31-50eb-9b15-43d0656eaa72] +37ce1810bdc2d7381ec5445cf93c841b85742e67 = 0 +4a1ba68cc276bbd60b17a04905420cd3df7e35ae = 0 +76d2e5c6d48c94669c6de882afe09b41243f4fab = 0 +7c3cff06e12a146b510eeee68c145254e5c7080a = 0 +912cb6cf19e8abf1a6206106b5f053f8f5e3e176 = 0 +9898feb7fb54edb5ce72067b750f5763648950b5 = 0 +a3d30ad857b6bbc5a51c734a133d6b3a811cbddb = 0 +a5d7349d531b6fcda9610cc8a5060f49cd63447e = 0 +ccd85899ea9d914f24337b76471a83422c6658b8 = 0 +d2c8b0ad22e978018a7d52b14bfbddb1fff4ede2 = 0 + +[4c47b132-0681-5a5d-b498-3afcf53fd314] +0e97e4664f1f49c13c04a404dbf6f5911311d254 = 0 +2aed689cf86bdcef2eabe1402c8b5937f8264281 = 0 +2b38d78ec24e1adda6599c84fb4df1730443450b = 0 +71e45a4a8fd3c8bf1867ba9afb5cfce71fe9b046 = 0 +85eb331bec3d349ff4e147f3c1e649475b79bd80 = 0 +92e56083efbe2789199a863f05a1f5fa3fece1fd = 0 +94b20ed71931418ac7edad12019d30c3c8c43d4b = 0 +bb98191a2b24794f8de417a6b40022a9eb265ea8 = 0 +de8ec3772ce39d28fe2fe11dcc6e4ca6ea573947 = 0 +e508085a2339cb272652d3cf35e693d7db9d0666 = 0 +f622c416daf285f12e0aa16ae0cf54af5a885c0d = 0 + +[4afe4657-7149-58ef-9a68-bf97da7d889b] +7a4c2ee3bbe099821883beb1b27a38c15b4069f5 = 0 +a377fda5cc7a638ef70fa0f6d92d6656882c08ec = 0 + +[875022e3-a016-506a-99d3-0712b6c7904b] +ca021549dc4ce15560f4c64f8c32835aa891ad57 = 0 + +[3725be50-bbbd-5592-92c3-2f0e82159c3e] +091b546e3eddbcf6b5a2a8eb8df5f0dd9c5db3f2 = 0 +6a771ea06785b951678c70ac7b7dc16811b49914 = 0 + +[6cc4b21d-cec8-58d5-a373-5cd579ce5971] +39849d753c04a0546bb9f9469930f544dd8c65c1 = 0 + +[ff2beb65-d7cd-5ff1-a187-74671133a339] +ad90d6ee4a2fd0623b28fb11defac12b284ded8f = 0 +b9a4fd76ffe1e8374b5d1223f8630d8a92b3fd4e = 0 + +[fa939f87-e72e-5be4-a000-7fc836dbe307] +2c8bcc9c2f30152ee8675f7ece672ce25ebef5cc = 33554464 + +[b50ed4e7-99c6-5337-9fdc-1bbc0431cb09] +49a5ed5fe27e044a87aa0b83d9c14c17c9cab427 = 0 +9fa001d8812bfa03bc33355e920a75efd6ecec75 = 0 +aeeba38363b7c9c2c57ceae43cfb839af9e180dc = 0 +c9624dccc34e1f39bc3c02bcd27bf1f585e794c3 = 0 + +[efdf428f-f294-58b6-a961-90c8051bff4c] +029ea772e03c8cc49df4b74b17590ef4532f2ab3 = 0 +1d3254e412969dabd0db66ff347269b39052ff53 = 0 +6eb65879cf6051da81b5932d8dfcc1cd6ae0b293 = 0 +f433ba738a7b6ba5ef463c43029029b8dc7db0c9 = 0 + +[0f51c51e-adfa-5141-8a04-d40246b8977c] +2f7a7c8d6aa10bb8da1989722c2f82017bec7ed5 = 0 +6dce01ba91fe34d08452ad09ed9dcd25bef9d923 = 0 +bdf1af180ba4d661ae1aed650593812b5cb195df = 0 + +[b98c9c47-44ae-5843-9183-064241ee97a0] +145b85f0e19f2cb9eda5cb7d447002ff4a0acc0c = 0 +66a26bb5bebeabdd560ae6ba6f01ea5fbd1922f0 = 0 +7be07cd60efa376b8e24943747949c4ad2ea1719 = 0 +a69a1cef18be8ab799681623fa53c1be2f471294 = 0 + +[32113eaa-f34f-5b0d-bd6c-c81e245fc73d] +15d12e6133ceded59f521dd9dffa1a0c467b2317 = 0 +b27307c30becfb6f14205547889aa3c0450d0ce1 = 0 + +[149e707d-584d-56d3-88ec-740c18e106ff] +06412a8d9a7d63f9fc4a35ebae7d483be01a9eda = 0 +62b1beb4fb246fdcba8a000f270f555297551600 = 0 +707a172605667c46896cfee2291568976c0042ca = 0 +8303eb8d5cd7b7e0bbe673d9758f8db613b6b7f3 = 0 +a851618407ab213ab6685eeeeadd14bc531c8ccd = 0 +c21bca24e48cb0307287e961e6802ecccb0deabd = 0 +e242d96556a9a9bd714b4a603f0715c5ae78eb21 = 0 + +[14b8a8f1-9102-5b29-a752-f990bacb7fe1] +3ec33bc02c901ed58e42ee4c367ae7ec7552ab5d = 0 +46066fd5635538102babe0c67ee85cfb9191ccd4 = 0 +7e38c924132f70b12eceb2dc01dabafdc3a1fea5 = 0 +c7f9eb5974f90ac3a4903a354abc50012df9dad3 = 0 +ca8788d2d41b2ddc27d26eba4cac02f9de09bf0d = 0 +f4e75f3a574929b30dffeaf5f088cb0fffd55246 = 0 + +[307e1779-6603-555d-8172-ea684b6e5cfa] +c4f62ea9b656a9e1df445ad2adaed6a246b2559d = 0 + +[9341520b-331d-57cd-baf0-c27f46988a5f] +11b97755b634c9a3e3d16b5eea36303e94d2d0dd = 4096 +21e6f49a0db6945ca5b12bd3db1c489deabc4a5e = 4096 +4d6c3f6123ab81407ab8cdabeda607f654fd03ce = 0 +5349175087bbc5a6ff8d776c88cd0e1128ac5165 = 4096 +612628c525d8b6bdaa39febf597b96ac86c2dc3c = 4096 +63c97241542187c5cf22050f1224c2343646a0f2 = 0 +6d03e593f6d38665dbc02e08d6093fa97e97da37 = 4096 +c08a8fbf1e7477a9362b8c7270ceeee354cb984c = 0 +d4ea10dccdeefeb1572cddb6acac25734cb1b114 = 0 +f6d09b776e59a184eeb1b7b003d9760e2980ea1d = 0 + +[0e44f1d2-4516-5e7d-9182-378ae59e766c] +033ae43aa20de4bf978de3c5931493a624456460 = 0 +20b309d9b103d80b5295f820ee312c72fd115ef9 = 0 +2850fdff017d5e3bb1a3c7234e8f9ee4e6c7fb59 = 0 +491ed65d967aa1aff6f5df1b79d6483906e7e626 = 0 +4cb752eb5a0994532b19140ebde453468ec2c49f = 0 +524d6c89f172d8002e1e09aa8ea9c6034b9d5d91 = 0 +81b7f376d2abcf5126cd9c6c4fa162eb999ed267 = 0 +85761252b737eb7cb3728e54ba181838bd948234 = 0 +d276ac807305587a3fca61251528e0c33d6d0aa5 = 0 + +[ccf2f8ad-2431-5c83-bf29-c5338b663b6a] +0c5bd8ef70a586b7418be32c9de8774e0ba1eafa = 0 +495e3671750e68009aa0db13a77687d0d5984f5d = 0 +4e7225fd52690398b6cb5d31d41a9dd2c4b1ecc7 = 0 +6b9ddc8db734d1e868419aca12cc673f4f6094c6 = 0 +953b2a27121594febd532c624c70d577a80de1c7 = 0 +c5cd2aacaf8551e3f7bd8b0469f7fddab71970a1 = 0 + +[995b91a9-d308-5afd-9ec6-746e21dbc043] +15a1f70303407e9c22f1b17a9433e3dcbb0ea6aa = 0 +18788ccfe6f10657a3fa182bfdc2c6e0d88a3209 = 0 +681b291aaa8ddafcbf863c3981693a450b81e9c9 = 0 +779b63ea9c0fe069e0a91f867a085c86510f3fff = 0 +77b78fdce4ded51558ae6fcb0ece779001c7b806 = 0 +79a6f7e513c5226d99e9b6e4598a85770bf5e843 = 0 +8294d5ec277c314c850fd1117ee5c6efe012acb8 = 0 +ada3c99764173ffc8a64ca1023e2f09847c3d3d0 = 0 +c8d84fe3add4fd683fa95f5cc1d155c844605dfd = 0 +e2f421de75813468538e6c1b510156479c90f630 = 0 +e4fc359fe1e309168e1fd0a32acc70c0318a98fe = 0 +fb8404578c21834a48d5984b0ea8e260b5052cd0 = 0 + +[58dd65bb-95f3-509e-9936-c39a10fdeae7] +30483121ac46e43738624e45c02cb975fb6ada22 = 0 +9c2131d39f5a1d840f0cbc0ab7bc97ec319a532d = 0 +c6f56ad1234adfedf2925e162b3f069eca27dd73 = 0 +f5e9cff4743d205749dacceb2e3e94c4dc786e01 = 0 + +[a03496cd-edff-5a9b-9e67-9cda94a718b5] +4f4bd7f3bd92c8985e828acb2f09018fb6604093 = 0 +cd006577552e0e63c28e1dbc938e6650107f1d2e = 0 + +[f0f68f2c-4968-5e81-91da-67840de0976a] +0677d77954ebcc129aa6271c77877d50c4b0f012 = 0 +0aa4be537807383f21a97cbf587802e0e20517d5 = 0 +11257862105d15fdc8e5e74ff131f0f6d8befb3e = 0 +23ac07b87b3206ff09705190921510170d95c3bc = 0 +36cd65a98cd2c4e62ad3cf3adfc78e7823779d15 = 0 +4793d9b692974ed3af9e53b7470142e438bda5b0 = 0 +4ba01f770aeb5ff68509edc769d9b675236a9ae9 = 0 +5330d71a9757bdd371f36274c7fc382c085f3f06 = 0 +599dafbe279303ef1fb2beac7d3a37fc70f24054 = 0 +69b79f39b368f67abf0c3c103cfbac8c87827a36 = 0 +6c182a1113813f28a08725bfa910c24f494767a3 = 0 +6d612d86b73ac1c0c47f6c7ecd69e1539875eaa6 = 0 +6f5dc18733c3d54bdfccbf9aff17c50edc480a3c = 0 +7263071a248722c766ddf8d5310f30794da6ec4d = 0 +793b361452244259c653e2c02fd9a0ca19a96e95 = 0 +7cf9d2c3d3f9dcbd81583e5479018d921dee790e = 0 +871e15a494b74a22b1b4749288d4fd5984248790 = 0 +941b757e17abdc790ac3d2e0d91d906ad846ca7f = 0 +9deb241adf3a3362b12bef219b20da35065893c1 = 0 +ae074cfa9e0cec49f317658c74d773fb6956fac4 = 0 +b1ea56717e9ab6c98da8dd68a76649ffaecba612 = 0 +b5d96015d0971121f4bdec3ae2b054de3ee74b45 = 0 +b72153fd6a4eab157961bafa5cbbca8f78a95148 = 0 +b802e4ece261633c89f40fcbc542449edcf17e27 = 0 +c2ca256ded75dadce2ecfa9f6b199d7bba17c505 = 0 +c9b8abca957e9d84326c609ba3b9d2b001d1147a = 0 +cb8896e48bff9b5483c538f58e992fe6cdf55207 = 0 +d348793218c3f6c29e205b3cfb08640d5c84c53f = 0 +d7eae25e19d9d1bac28ba4bce8694ef4f1322d99 = 0 +d8a0369f7ec3db300c583a26027078ccb6739529 = 0 +e62112674fe7be5341a4027283f0d99f0a7e0b28 = 0 +eab25f8df4918f35599d2cfa48443475ca608cb3 = 0 + +[91a5bcdd-55d7-5caf-9e0b-520d859cae80] +00f3d450f92b793318433e59484426e53786523a = 0 +011f51fbd91a7dac440569426b24766f39aa813f = 0 +01b9cc92fdeccb99f4e9a053bb9263e8e80bd1d9 = 0 +0cc15102fb91ade31a53fe8ff06ff0dfa54d5234 = 0 +0d17aa00935b3b95ff7f9c0bb6274988d4487446 = 0 +1115ff83bb559735344be6cbab9ff76d19e1f5ee = 0 +120f861a271e4e1eb059f637111c30ca8223173a = 0 +199a3306db73c29bce2dd8e96d2e1762ed38d776 = 0 +20df4967a4298e97e0b89060affcab551280622f = 0 +228d3af1fa72bd2fca171e3379e20d9ac95d87f0 = 0 +22fd25b30f48b95bd6dff22b560e9a5554507cfe = 0 +23a22102c5c660196dbad27bd2cd8afb4e7b4176 = 0 +2fb7dddffb060984bd286e72a1a659d165a8388f = 0 +3bd9e70fa91de1e27ea6a190ff3e7aaa41230259 = 0 +3c09921cbd4da44b36fb5a6ed03e0a528d0e38f8 = 0 +3f21d02a0d432549c7ad6167efb98de13bad324b = 0 +3fc5f873881119256ef9f5f982a7347a9b7d2944 = 0 +40cbddab29edf946a76f65ea443131be1a9814bd = 0 +42c3827ded3d898db2f0459adf2834869c0b2aa2 = 0 +436ab89d2d4a90a6004386bfcfc56cd4d3810345 = 0 +4757bd89c0824e1b60b8a9ef505950164384bb6a = 0 +4c2b01ccb02569ef3ae3a7951958061bb2709cbf = 0 +531a38bc39a7e64ee0d8f905e7d112ae23c6d4e9 = 0 +558627e7a9ab001c3c7bdd16de67837762d05ffd = 0 +601f24a006fd1caafb9c7baee1d5549dc9bbe99b = 0 +65e18a8669612c998905d0ced3ee638fc6a26635 = 0 +6a129bfe922bce41620053f93c4673c03548b72b = 0 +6ae0912e0e48a657a71a626455288923bc798355 = 0 +6c6769ca98476a48f18a62c47580622c223a89f1 = 0 +73af635be61602d90a63aee67c3072754a3a1827 = 0 +8023e15bb97cfc6eaa81ae1ec9c0abaa08669aa2 = 0 +81302c1e9dad35ae1c713268f5fe39452819fa12 = 0 +894928d7ca2f14c4bf5aa4fe97b581736f4264c1 = 0 +92672ffddfef671812377cd7bab89c20a899b897 = 0 +a9062b061125b764483f827c28e240c5125df437 = 0 +acfb14a1f55da9122f8b0e949bdf963c61ab4dcb = 0 +c092d3cab48d784dc75e999efb5090bf00057c92 = 0 +c4bdc5b856dccfec5d9c322397880750120d8de8 = 0 +c798fe682280cf9e81ea9dfb2e6c57679d7a5c92 = 0 +d0a89858003ec6724f9043c20eab9ff16ff73e21 = 0 +d52b2a9adc465ccaae45702c795fcaee0a42f43a = 0 +dcab8e3ac29460c4ee0ddd04c2ccf48e3a5ccd14 = 0 +dd7b09552a3a6d8534bfa8b95f603d53a860a405 = 0 +de6e3d46ec1d72e41e89a109e2135b3a4287bcfe = 0 +df729cd0f6dd115e1e509372ae691efbedb0784a = 0 +e8ed79a6bbdb88279c9a7134cd39bd418c7b1079 = 0 +ea7867429fdd016004a11c41778b5e4b1c12b92e = 0 +eba1e366bb21b44d719cfee568aaaadc1721651e = 0 +f3544dc82672a836f81520bddfbc40d5d836350f = 0 +fd4dd13270b564c45ff81f0b7928c1db66465733 = 0 +ff3ba18b1578aa3af076fedcf242e9d1f97ebd0f = 0 + +[42171d58-473b-503a-8d5f-782019eb09ec] +2736ba47334a3d27d96ee92c2cbe421d29714eaa = 0 +9e5bee7034adb59463954caab2ccc35444463b6f = 0 +f099cef620156ac9f72be9e84f4a72ec747dac61 = 0 + +[bbb2afaa-4236-5b45-a0c2-54a75cfbee5c] +07b06bb0e5d9c22a5ab41787a75a252297c8dc78 = 0 +2378122a52b5750312748a15c834416111bd9ead = 0 +37d49892cda492b98f5e1f64c033e57ec4eb95b2 = 0 +3fd16c59103d686361262ef997b9787dc840a54f = 0 +701526d7a2a333ce4ce4e5b77359c88113f5478f = 0 +f413cd14c618cd2692a3cef2243fee0cdc68153a = 0 + +[89210da2-f0be-5ef8-ba65-10393cce509d] +26d3005556f7f8960d8a820f435a2b573ad29359 = 0 +5ab4fc989206a72e64834dda95bc29e1be387ba9 = 0 +5ce82aa1cd4ff0bb7cc3dbb92c9602efcc46eedf = 0 + +[ddf597a6-d67e-5340-b84c-e37d84115374] +2edda32c1e7a6910ecff9c3c02fb4a34431332c8 = 0 +c4207f0d1d28ec421d684e0f06ff0eb61f85d2d8 = 0 + +[4c0c90bd-38f7-5fa4-a4e7-860b1bef477d] +3e642a54e332fe38c36e06cd163bc0b1625d1c00 = 0 +6afeee9c23c5be2b41d909476869c55e6221a3f0 = 0 + +[67491407-f73d-577b-9b50-8179a7c68029] +013216a54fca5d994a73fd65050aa1cc8f01c6c5 = 0 +11e90f1e69f9440aed71da8bc075d72893244d86 = 0 +183a8e988f851cd4a08bfc0c6d849fc990aa9e50 = 0 +216823c2fb9cb832486065ab072eb95196cdb680 = 0 +271e11e241903d3e74d5d48ce6b8ee40f1322827 = 0 +27dffa52398609c86eab262b77c8d3aa8a74a794 = 0 +5927362fd421c8d4fc9b95d04e3435d8e526b3c9 = 0 +85e4d27705c262bcf40acbbd8d3ecdb0c1f72ee8 = 0 +8608ea0307c40061e6dce6adb37ebf5afe479781 = 0 +91a0545c3ccb4ea33ac22817354ff0d9d51bdbdd = 0 +f4139981de46d6171c1f539ba246f70162124a70 = 0 + +[c74db56a-226d-5e98-8bb0-a6049094aeea] +38e4958ee97144837692ac5b2a62859fc4af5683 = 0 +8d9ddb7a0b4b37828a9eaba4cafe1115d53b909c = 0 +ac2c176f992b3cfac7f523e27cb5e4a80340a90e = 0 +b5d79b0148e612788dc568b602d14b64038b9310 = 0 +c48e9cc88b01eccd42268148561a79daf678accd = 0 +f11e014a18dba2b1b9dbce5dbecf75c1e402fe82 = 0 + +[ec145902-31c2-532e-934a-7c64254c4b82] +0296745500fb2b18aa258b459d1455206aa6b90e = 0 +13c572da96830be3c90896ca8c28a2659582778f = 0 +1c3e0d5da6c7dae7f621b1722feae36baec0c269 = 0 +40060716a55ecf20f4e4612fed7183ff43b16400 = 0 +77416673f674835fafddeb0e048c86b87c102dbe = 0 +9f17fef46eb884d51af63dd6278a0eceeaae7686 = 0 +e627f82eee4946e6089838228de8468261cf2c28 = 0 + +[68ae48f1-ae9d-5916-b516-bab924cb4d98] +13ad6b6bf3ae305ab11382fe1b79869c4983a62c = 0 +a109d1bcc828b3d50a47b0e8457d44547497e315 = 0 +e059c70791a661a433954c2afe741f8444246e5e = 0 + +[c8ed2632-8d42-5af4-9089-7afd55769a28] +9fe68f39dcd046205b9efb6077ef7e7529749a99 = 0 + +[3a141323-8675-5d76-9d11-e1df1406c778] +2ff987acfe1f023359ced71bd73b2aaa8dd19de3 = 0 +36c07f7d4a9e22c7f8e6a6209b7b68a943223724 = 0 +468dfced22e12d0aef6cda7eb3255c012ca23e3d = 0 +939628eb7510be8bf40ca44dfe2108bb2df46d5c = 0 +99d663706343111eb9dbdbba48e8c52b4a7a82e6 = 0 + +[11d3f387-6b1b-5124-abbd-847758a5de3c] +12379a86096d2aa433fe40484f181529f17610b6 = 65536 +752dcb1125bbd30b985eee9cf4df25947a9351de = 0 + +[f27b6e38-b328-58d1-80ce-0feddd5e7a45] +101d574deaf26ad30f2c713b3def9c4c186f04c5 = 0 +3a017384790f4f6f8736f5f4aa8e22c1ae8ebb01 = 0 +449a06c4c971e688bb9d0711eb3d0b16e4af95a0 = 0 +4ab8d1a0fc42b46f9c816987efae6045b189a4dd = 0 +5bb5a253a00114a9d1b65a20176083fa7b6526a4 = 0 +6bb8e2ee193ec62db89c41c160c49109ec154255 = 0 +6e60f2d99e4b3813b86f0d38e97461acb340eef8 = 0 +7c0cfec28005cb7fd5f5efcbcef20808e1d69aea = 0 +85e2bccd234ad345a9146325117555a4849da875 = 0 +909ea47c7606d73dc638e8f0c33a42cec33feb8b = 0 +9b2c87382b4a253961fba67c57c09a1ebb86934e = 0 +a137791d5c8432fa649d8c02de4d555624a96ae8 = 0 +c2eeacec464f9137e117992a85b491c9fed4424d = 0 +d53401c477ac9b4c69678fda4b5379b2525d4a1a = 0 +f5faf58fad1a2d273d0467c23f24ae3c61bd918d = 0 + +[2dfb63ee-cc39-5dd5-95bd-886bf059d720] +3c7d2760a36a3e03a8e3e12901b411a69cd97f86 = 0 +47e6b14e8ad9c3da995ce8c5627d03b357b65cdf = 0 +761cb054fedb01861759518fd13da4c5a0169f9d = 0 +feff9dc408f55f59cebe326c0a11766242c4a584 = 0 + +[80ea8bcb-4634-5cb3-8ee8-a132660d1d2d] +ce51f8497fabeb299ddea36e8fcf6dcb342a9246 = 0 + +[741eb8d8-1b8a-5b1d-9526-a7052a967f3d] +27cf8e493df443d7b118c3a61e3041bf6e649965 = 0 +a25564f96185feb5796405958156669f457c4935 = 0 + +[85a6dd25-e78a-55b7-8502-1745935b8125] +2f02a7569f150d82850ac1daa49c26e5a03aa426 = 0 +32233b5a3d4b4453a8de28a6d363344023b1e074 = 0 +428ff4a0d3abfff82976b814ba022d606288e916 = 0 +c18865971782e31973c35b537081fc58a2c14dae = 0 +ea1398ad48254da3936137b4fc6930ccc9ad048a = 0 + +[73af2aaf-3f58-5b29-82a9-435ecf827f5b] +99c25cb04e39d3114ba6f4c11c0fc3ef65568fbd = 0 +ad07a389773b7f98abfe13038c38c636eafabc7a = 0 + +[cca4922a-eeba-5ef2-956c-35affdce983e] +91801eff6c6a8016609f7a566d6089443fed7764 = 0 +9ff7b3f80c7759d11fac0f87941218bfe71ecefc = 0 +ac871dfc9e5347b42269834b4cae9a8691c17f65 = 0 + +[c36e90e8-916a-50a6-bd94-075b64ef4655] +0171f8baba821f27196a566365164fa5ab8c98a5 = 4096 +0b267e326d749b77616386517b4653bff685b140 = 4096 +115de853fd4103b712d051e902540e7fa2b627be = 4096 +16e2abc843b0cddd7e4326bed7de0cad7e92b6fb = 4096 +180d82d5e254e00de20b1cc61dd44e6621562066 = 4096 +2682fa539065f3351b2b3f43f0817924412ba5c7 = 4096 +4488d66ae45c2ad523c1514a384ae4cb15242e2b = 4096 +9428c5e49ae8c846d583eded635eb7fe552ce781 = 0 +95db77c55488bdd077acf872046ba1bb6b53bbd0 = 0 +a1a6f3530d02bbb8b65fb14fac09ba3e04544567 = 4096 +bec2e2779d62a94f155d9b64ae3bf6242aaacd1f = 4096 +fed98621f96a7373efc665dc2df63749059c3a20 = 0 +ff95e40fa62c59de8ddc73017db6f8e6cea0c95d = 4096 + +[6e471128-d39d-5672-b02b-a742bd1b77ed] +13fdf1f9c523f0300cbd7190c9f36c83fa0aca75 = 4096 +1b672c5a797b0f9e61eb1d259240ade5ec8d2d9e = 4096 +5a79fe34fc8406b104a1fb20ea5bdb1d79006ff4 = 4096 +7b4726b2148ece1b48a968a33fa5b0adfbad9df2 = 4096 +b236f37aa3c838a65f2dae8b4974ae7714cf9326 = 4096 +def98b42c8fd7f06d33c1f55224414ed6e2321bc = 4096 + +[7a4c25eb-d21e-5a73-b51d-4e4edb72d913] +09e977acb80a7724df117fb796778936a80b6297 = 0 +13faa90f623b2b6949f57c7dcd0cabb3d503f1f3 = 0 +1cfa9b4bf84a1cd98555f8c081afd5c61963098b = 0 +2ce51e262e823f2378bd187eb517583c90724dd7 = 0 +319156c9ff6f22c230270389f65b73ccb03832bb = 0 +4619de4ba376d6ce0a450fc09e38e09205645a11 = 0 +65b9fb116390ffe5f24b8288eed0b879866887c8 = 0 +6d21c56c260fd48ebbe08c1e7d77e1db5c0f75dd = 0 +748913d7fe3be09b87234bdff969b13dee5c02b0 = 0 +903bd8c4873aac13cb9a2c258ab37ac1a11ec4f6 = 0 +b9be2701e164b0f70a8abd4916bf98b34f4f7233 = 0 +d3cd673d4c9760bb084d94b31a5169f5f12bf5d5 = 0 +d612b578a83c4c48c09dbb1fd03274e80546d66d = 0 +dcd7ae7d9e3a9bee64fa97ff26db7a83f91807fd = 0 +ec3029cf217e5593318585cb2537e88662d0282f = 0 +fc3ca9eecca361f5df32e3a5b6e395dc5f2013d4 = 0 + +[e0255976-123f-53e1-a894-d0440dea2ee2] +c0aece31e3efeb59713ae643002efb71836dc358 = 0 + +[fbb456ec-85f6-55cf-94f1-f0a40aaf3d57] +a148219a595ac957b64f1ba2dab041bb05ea1642 = 0 + +[202779bd-50eb-51bf-ba18-ab2f8c575de8] +2eeb96d22d37f302a6df4faa348b181f52f1afff = 0 + +[27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae] +9906dcd12e3be92a5efd3023ec9580ce59a1ee53 = 0 +acc31a43323612e752db2010546200e22eb0ae37 = 0 +c78f3af0e9904129e7026c8d2e1592f3c5277512 = 0 +ceaefcdb4a5c032af6bc497d5cdd46e90895907c = 0 +d9da8d1e9ce256cab9a5f1951d2e6e763bfd939b = 0 + +[517a45fd-765d-5fd8-b3d2-92ebc25828d3] +22f087ccd86d142c579fbe110c4ce798434fffdb = 0 +481f9b1e5e81ece85aa461e18c618618407a6daf = 0 +a100d537aacfa7f873a5bce20c054b3e92216550 = 0 + +[ca3a4cc8-04f0-57c9-bf08-34988ed92438] +367a2e9ada4b47bed0b7cb845d29cc75e5b2f6ce = 0 +8421805a65b60b7fefb0686ee0a14e743c477c97 = 0 + +[c46f51b8-102a-5cf2-8d2c-8597cb0e0da7] +006f1195dad0823050e7dc7e6af86dfbf65eb555 = 0 +0694a8f2a6805490da2be458187da692ab8a07d9 = 0 +0a677d983b2409a8640a39c5156914dc5ec2e349 = 0 +151c2b3722eaa9d222bbf6910b905c5e5101bdbc = 0 +17e28de71e909a30a31b64750bd57bbfa36b6f15 = 0 +39d88a5e0acbd893648dd0036e4906d19eba8a28 = 0 +6052b422cabf7c2e8fa7e479faee5a220049dc0b = 0 +67cb0ce0cbab2f37721f421791a274f7faa18d34 = 0 +7271e6648f7483c792a1965d95498f484ae0d902 = 0 +8bf5312fda0f7137c2abe30a67581ba1b1b3669a = 0 +8f62cd44cf8736e04c44f7c7de4494ce43b0632f = 0 +9edea568b22c9b0a66b18636c170df932197248a = 0 +a350901b0f9a2463d802d7abb7b8a34bfa02bfea = 0 +ad1e782ae687eced4d689681f519f6b961c69130 = 0 +b74d77c22387d58ec6ac90659ca4cb4e81006a35 = 0 +c5fb51a2c90597a7046f52f059d53ebdcafc54f8 = 0 +ccb4439631fb031b4d8c6bf69e1f5eb7a2877840 = 0 +cfb1440413ea544b1d003a7db6e1dec18335712b = 0 +df4969a97a28cdff61279c8d2bf01bd62c4e6b7f = 0 +ea4da7d48ac934011337ae277324ae5bd2b9e15c = 0 +eb400d66f8de08bf4979812f1f92fe88e470b5f6 = 0 + +[92933f4c-e287-5a05-a399-4b506db050ca] +1331ffd0622ee2e0731960e11618fcf9a491c035 = 0 +1c096f5cdda4df472abcbdf69b4fafd46a2b7240 = 0 +2cb2ffc2ab8a507068666a552eab304c1a7d461c = 0 +2fa2b00245705d5071bf189d0c7673bb8f460d4c = 0 +48bed8c197f0dc9956bdba0b49768f11eccf364a = 0 +5d688867a87d1a27a27246257311028e17bd88a7 = 0 +63399f636ba9c3b01bf1713e4b05eff65717d916 = 0 +63571299696ac1dd8ecf87500f5178a385d01423 = 0 +7d135ec628f6db7e8a98c1dd3148a430d89cf0b4 = 0 +83f94e092a51f6014c2719059ada8032083d83dc = 0 +94a39108df2a481e020ca1d557f9dfaae11a23e9 = 0 +b1b7885f381e40f16be16628f2027c226158bc2e = 0 +bcf2df91e8c1c285b47d7572a30836f44d15a72b = 0 +c185e88351ef4ac3e9e89051a2494b9c2879619a = 0 +c538ba6afd4223ae00f1cfdf58f2523a98b18eb7 = 0 +d5b46b8220d0d147bba87a2ec98b605a12eee176 = 0 +dc78d575c35d25fb31adc649778fda208adc71c3 = 0 +e4febdf444825be93031713cbbd04d762cf51e11 = 0 +e7152b14550abb708c3e48abbc3ac2d437421526 = 0 +f7db3a5acc91d2cc50532bf469dad688984670e9 = 0 + +[9a7e659c-8ee8-5706-894e-f68f43bc57ea] +2a8f2385a62244718e8a61d3ca8eebf2d6be5c2a = 0 +c1d8ec14c51987c04297b28affaf9c495933327b = 0 +c7bac29f3aa79f071417347dc609edb14626d829 = 0 + +[c02b4b8f-ca3f-58d1-821b-46dd0e8d4d5b] +00775862bce641790ae4c4525ad27a318e4e20e4 = 0 +051f6ee3e7d413c8a5fab0f4a78375aa76883f7c = 0 +132ecae007fcf5f586255118da27daf43ba51f63 = 0 +202c366bd1ec1d367289689410ce12aa9fc040e0 = 0 +270dca026dd7e0302c0dec3edfc477f4bc5e6a13 = 0 +2c87ff8dfdc36a78a7b74ec97115f55959da0927 = 0 +2d9e40431fa3e622a9e0c8649b24e13c25469a5f = 0 +3036189560ed68e301103a68b96d5ab02ade5328 = 0 +32c9779cd52def30309f61eea9b32b2e6f7b4444 = 0 +3451d378ccd6bb879306c52ea6f9cb892c9e5091 = 0 +377620d34d80f9876e84d32a38e57456d7252804 = 0 +4b886a8197cf8202707fac01b1ec556086c3a76c = 0 +5879fdf97811d339072913d77d652319b43bd671 = 0 +61b9021075a63e1d74ac35156db8ca0c671523bf = 0 +6845ebe36b7b9d1a0526a5c8318badf80f933c1d = 0 +6af71f145a4c4104279be043202b0563214c35ac = 0 +7d7121220a58711f0bb55f073812c09d398027d2 = 0 +7f45a3ad9e15a8c41d9ea20049f67b202a682d5c = 0 +8e3e68ae4bccb1c88c91a3e0ffa67ec1597dc105 = 0 +944deeabd52f37d35c5bb8e37d9128a2e3824ab5 = 0 +96140bc72063aaa60214a979f84407a21a4b0370 = 0 +961634ba254d35c3b9ae6f851f1cd9ab28aca515 = 0 +96e6e0087ac4045bd2ca8f3d105d89e2d8ea576e = 0 +9da86819d83c89ea504fda9eb1d9e76aedf5147a = 0 +c332537fc628d5d8601c1295299b2cfbd86f2400 = 0 +c6f6082c30a9c508e6d8e17a3b89a48e13074aa5 = 0 +cb7c4a3d317e86db4bc6318fdf6791cc7040f46d = 0 + +[510c283e-d355-5058-8c7d-fdd18bab9dd3] +8e5afb76e2fb97044fc7ff67aeaf178fc67e116e = 0 + +[2f1371dc-8782-550b-8f75-ab2bdac561bd] +6ac8da6a3c4ba9048343ef3d97932f692c22c3d1 = 0 +b75f084d12a12084c3e8afb43c00ede969d80a40 = 0 + +[186d2b2d-8ad5-54a6-bcea-66047609c611] +1caf42ad0c29a0937f9f4c9996a9b50e07cab507 = 0 +308855bfe2005c718d4a95b43e35fc27edbc4bae = 0 +78a511e77457e46ea199bb9d28a4180b95d4a158 = 0 + +[3349acd9-ac6a-5e09-bcdb-63829b23a429] +09782707d6b6d08bc094fd495384d462f7c9717d = 4096 +0b2579966e6eb276c26f67096808413a4c51d281 = 4096 +0d46c5240ef8df2a5a3678af390059e26b8f3f40 = 4096 +1477fa6b460f3b5fc5c5eacdf0d3821dc4f0eeb6 = 0 +2ce1f6688c0572eec2da9a0a65740a4fe641c85d = 4096 +32c88d7a490710baa3bce2cb66db12e49849ded5 = 4096 +37b13a3d78daaf76167d91cd9a6f605ec55f867f = 4096 +3d335bb6820e1b0a46517dcff52b2525f15ba14f = 4096 +4046d1ef039ee3c8cc43b8f62bbd431930c8058b = 4096 +45fc695c61397304544286405eba9205a4667f67 = 4096 +51fbf7607b6ecb732e48d0b2317a5927335323c5 = 4096 +561012d8fe9474d65ba4269b3630077d5048c22c = 4096 +675fd6d91cc51091798280681746422b75c04d3d = 0 +68d0bd3612c4d9b5c541e46f4e705aaf4615b361 = 4096 +6f324dd6e40cba462d939ce5f85e8c2c6f21d2ad = 4096 +7743a67633cacf46908149f13c8bf53613cc35bc = 4096 +7ec551b92bcc97810aa0de55f85bfa7cdbb66a3a = 0 +80eda00cd36da94cfe48255bb184c19ec8d2a2a6 = 0 +81ca05534d556e547834c891c56686bc1510ba51 = 4096 +8939e398a0e641adcae54f3b83ef15c5a2fd729c = 0 +9e042e7c0fe6e5147e9bcde29e9443ed513112ff = 0 +a80c99f9ae340ffca793a6aed70865e5bf3365cf = 4096 + +[140ffc9f-1907-541a-a177-7475e0a401e9] +25a97fb5f15399b607e58c6ad2d54f8a8c3514e1 = 0 +d41c3b9e8e6e90448d1b1c062400702d61148214 = 0 + +[0a755509-c5b1-5d6f-9b24-59bcda3c37a3] +2d73fae36e53ebb5b6e02ef0c1dc2ad4af482c26 = 0 +3c2488fa5ba14b16a167ee1d00c57860da8c6102 = 0 +b55f900924e00c5c29a4153cf4152f790b3c3879 = 0 + +[a725b495-10eb-56fe-b38b-717eba820537] +07df4b3b391d5dac71cfde61470e8919f090baec = 0 +0a0583fd95c48a33db14af6ef4d1c626dde153ea = 0 +309b34b918607e1a8e925a533a2952a7c7d0fa17 = 0 +41568e7141932dd9cf827101451dba292f4c3ec1 = 0 +6d98bd8bda1bda05133a22c7c777a6ef58c5600b = 0 +c739f4313d07463fb62b984beae979988a66c3bd = 0 +dd326efbb73b0d10d5ec9500403ae85a642eb04f = 0 +f3fee322d766477c6ce3e6aa2ad30dd100b986d6 = 0 + +[9516f557-4a54-5a79-b954-c272e753c77a] +e0e4a1fd8038957ba9b76fc2772cec63339563fd = 0 + +[9b64898b-da2a-5774-a656-fd6fb605642c] +a66ff86a58901564d9d1da6271f4e818c111deac = 2097152 + +[f2f26720-ab51-5ee0-96ed-d53c33548c15] +a7998491a67b509a9ee7f6e2a3494545575162bf = 0 +c859a7b9cc62f1aa7c117f106c7c66ce88d62a2f = 0 + +[2c79eb96-f1c8-5833-9e83-ed2fdcddfc0c] +dae4c209208ff566ec3b8b0f12d23e7e1a8b3719 = 0 + +[1d40253f-d7d5-5bc2-be73-07f0f24a3532] +0f14019e6da41d0e5f025ba479074fd3ca1092b8 = 0 + +[80c87078-a4c8-5101-a93a-266e81f0cc5f] +0dcd045354f0b63d76595b5bab979e88965021df = 0 +6b743c7e1de6eb452330220d0eafbb48ffc18698 = 0 +6c6cefdba324ebb43257e68622bed8e11ae25bd5 = 0 +773d3f8bd4bbfb3dca983b1cee73b7f8c7aec4f0 = 0 +777494819a18dbc4cf66045d1f6a97358aaf5d2a = 0 +b147f3c2cbeb2c614f2053c8dd89fc511cc1063b = 0 +b39676754a325d1231622ded5b75aa0c2fdacbfb = 0 +bf51b90270a3d20d53cb6ea15e211477c8a4b428 = 0 +c05023bfccf8d26a24a16994509d41e1a2e6a254 = 0 +c1b679c9deb4facf67f4926e180589d622897e5c = 0 +d42b2abdb7afc860d14077f7777a7d296ab54f8a = 0 + +[438e738f-606a-5dbb-bf0a-cddfbfd45ab0] +0254dc393e3133640cbac53c05367d209754d432 = 4 +0550f890c86878375f74821a459da41e7cc943f6 = 0 +0c8e5165d61fccd7a2666d94d68ca5507abe1624 = 0 +188ceff436d87d864b4d8e3202b0d4c533fe4f89 = 0 +22c74041c1913d531598ed562817e5910099b144 = 4 +2350afc56f2d4e9999ea5d67e25692accbaf0b8a = 0 +23b9c0174b098fafef0db01e5541165d87c6491b = 0 +2900a87ff8618f3c6162e5b32652be0cdb8c12a2 = 4 +2b653b8c57c8bd465a0dee05f48068512a0a14e6 = 4 +2e56f01c722176e19a3fe233423dd3b146e47cb2 = 0 +2ece946d049201359b3868c931473d477913e3f0 = 0 +2fcffd57c147c6d845bc4028939c79b999382124 = 0 +2ff91cff447fb99b0359ec7f32af96925f9bab61 = 4 +318bf89bcec6a286666ccb6b4c602d6e7ba63308 = 4 +32b10a59cc688106b78f4bad8d93992a379937c5 = 4 +33906a7c985b787583bbad3560799c3c65bd4553 = 4 +480cf86dff42cb8da0b5dcff922a17b75b47b1a0 = 0 +494f8316a868a24bbc09aa2626f0685ec939cf8e = 0 +4b2732d5f35176e2bc84ce7db1e325e6ae949666 = 4 +4d7d476440e9094c2fad548b9165ce9bde01688a = 0 +4ff3ebd39614aacac26a0bba1827dfb6abbcc7be = 0 +54a3d57d7dd1bf2271df41470049b9bfb191ebc0 = 0 +5da18e2b137d6e442fa6844a1f4fd999944b379e = 0 +6b2d3e50c70995d5ea4f88e66f2947d072d08935 = 4 +710afd454bdc0512457e5161e0177db45e00b63a = 0 +73c3db71e8e1eca4ef1e950e5aaabe65f544b159 = 4 +7798d4e44493415c07e9ed2ef7b708f6936bf1c4 = 0 +7a930c92b66c9b4cb6588a873db5fd3f9826687a = 0 +7ffa9ae8cada3e458cfae7ec49c176cea6f53a0f = 0 +802a18dcf9ee24cb517fffc95853f30014906423 = 0 +804e065479362f0f3f8a413f8d9ddeb201fccfbc = 4 +806630c90d5cd29b2afbc788c7d0ae026475bbd1 = 0 +811ac7271dabda4af737bba55ca3238b996f8fb6 = 0 +827ac9893301f7ced621c32f13e5f2bd79350030 = 0 +83eef6b19dadff3598f8f07b4579251c433204fb = 0 +874b044ab4239aa20993cf67e41749abf8dd9668 = 4 +8eda38df092e7176beff369b02727862123fb5ef = 4 +93560fb06affbc02acc237023e1b6a85580b3416 = 0 +93fad5cb429339bc67c43ade02790f1b84bf9f1b = 0 +945737a0085f933f86762ae40b3695e29e0bea2a = 0 +99221c0e5e1056d83c6f5344baa2fab769484d7f = 0 +9966bb206d75d7be559e35f0455ca94e1d3ce7c0 = 0 +9a439cd07fb4380392a0221f462d58f20a019c20 = 4 +b94c2af031622d0b5c4e7be61e0a645ec8ff6bdd = 4 +ba46cf1089f84ab509d6c8277361764e258c0efe = 0 +be354e07d0ae5b70f819bd93f7f10b914bbf170c = 0 +ca1eb9db310d73dcf56d012fc0f1cc4cba5d2d44 = 0 +cd6e9b5c08deaa249af1eb91f67b9b2c42eba3c4 = 0 +d086561fbbd39c48f1c214f642103a9b87b39a0e = 0 +db6fca652ebd45e6b68d77db2b3f2a5d9eef2877 = 0 +db82657a03db54afbffbc8c676036316a09baab8 = 4 +e35224ad380fd35db9c0e64db7d677bb40ac7757 = 0 +e397bc9ebe7a87b08d056cb22f18bf662872ce22 = 0 +e649e89b66f11e35bb23864e23b0d9bc72ffa5f2 = 4 +eb654cb667ab4d6ed0684c31334742806cecac78 = 4 +ef7dc775060614b0c4ebea3555ed9cd4f1c65c92 = 0 +f863d82b34969017432be784954029575b2e3e61 = 0 +fcbe0be562d347843d107617ce178cfa70ed1a54 = 4 +fef614152839357e9ca27e55c97fc33f33f301d3 = 0 + +[de320387-30cd-5f83-91a8-a6e0ae8b8444] +4ca9744c7adfa6b1b706c8c76706f29540d8e52f = 0 +5841b3020babe087a8b739a6eaaf42a604be18f7 = 0 + +[7186c646-c682-5568-b8f7-a702076b479d] +0a131332b26e272153f4370bbe8adb70ec483e56 = 0 +16d7ab3dc373b7ae68eff3e299e3bfa674f3f24c = 0 +3421a83c559d6866eddc28909d9d19d92fb59545 = 0 +3845c92bb15024c4eb690bdccb02b6d693423cae = 0 +aaa501d5074a057d1d2a610c21964f659b624ccf = 0 +b8abe9647e4910fcfb817c90cd16392199248978 = 0 +c107312d72b8c64228a25fba4996a586f2030ab0 = 0 +fbe9d3d0d304d9602a905455d7ad8a70e60b5fbc = 0 + +[0aa23630-203b-5143-82b5-c6be0bbd4ea8] +44addb97be76874869648755c2fa987f2d72835c = 0 +9f63ccfa6c498d061fa87bf9d671e652a755a285 = 0 +c86bb565f096a10a476dd3e942e1de64d09b8e15 = 0 +d90a709cc5b6a12c4de0ed400ceb851ea47394af = 0 +e9aa77bb21e09d9ac0dbc810a05f0f5244e36dab = 0 + +[946b8c4f-e133-5c8e-ac42-a7229434e25a] +92154815220401bafa31a8a6cdb62e6c0ecd2ba2 = 0 +cf844ad5a495312654d3214fef83c1be6ff00cb0 = 0 + +[0a079aed-d6b3-5437-8291-8c1e09ce1327] +e5e0b3ae6585231c7c8e4a53dc9273cceba4185d = 0 + +[d330b81b-6aea-500a-939a-2ce795aea3ee] +006190cc52eb56bf5cf55dd1860ecbefd218be25 = 0 +069b985c6e153c197b14bb3fcd98057cfc1d4176 = 0 +06e25e04fcd3869f3ae11e328a37e7345fc59c58 = 0 +06e800c4458279a17fc957a80988bb3d0fddd7e5 = 0 +083f6f340f2638761f2dbcbed9e6a362eff5de7e = 0 +096780721c8efb6ffb899379ff614de96ecdc600 = 0 +0ae0d4cbc150207ec0863f7b6127b1bd14ce8716 = 0 +1290142188fb6702fe16a6b4db7230b16bec0b7c = 0 +1414ebd03a03e10a20c3dee48c97865c4d27d1d2 = 0 +1c2d22e06257969841270711b7add18698833324 = 0 +1f763b11f9e71348bc051954d83c856d1517bd65 = 0 +27f62251e62cea431a955bafc4444472f4e96fe5 = 0 +2b75fab0aa968aab471c8b1936c106868f44b127 = 0 +3217abec982ebd687e1e6678288eb6f4f76619a5 = 0 +3b7839fe2d30cd6c4d6c9c1cd0e3d4d12b898460 = 0 +3cbfe1a2b6c7ce87946522459bab0d5408db3f94 = 0 +3e6e18c746ef7d94008906d99a8abd577a419169 = 0 +40632c7270c767fdfd527c2afa4ed7bf5a1ecb01 = 0 +44e5589ab8f0915a3075ac1450d797ab6ce713aa = 0 +48a6d7f83eb52a65ea00d66f35a870779063f57e = 0 +4a5195ad158af5d8be9d97e9a7b792b63bafe56e = 0 +511a2adcd0d05a7949b7ac58475e3aaff9b12a39 = 0 +521caa1bce869d766d4638942abfc9099163ac8e = 0 +536b17d0ed596be7adb5a33c0ceeb9c75de62919 = 0 +53bdbdcef3e8f5bac7593179bf338492d9762ac0 = 0 +59c19c7078985dd98e97d99a0fc4abda2f2f0ec7 = 0 +6e177529690ecdb82c87437ffa40ec74a5407af4 = 0 +7c59b3eda67b74d6b6e3008888cd2206266b24c1 = 0 +7f3ac329b352c924412823c010f9d2e539a2bdb2 = 0 +82b51f88b50f92866b3abbfd655d32ae92c06b41 = 0 +8932adec8f7329a66e41922348425b98a86981a4 = 0 +8d75daac81eb5d1352c4f26637cfd66c0e48a0f7 = 0 +a3a983256013c5dc69d36c07c67433a8ea11bfc4 = 0 +a4e224a427aa997304d9a6da9a889c8bbfc681da = 0 +b37dcd8df1617d08ea5d9e80441434d8f6c588b2 = 0 +b81674b17f6e901aa2d95d44e7b5c498ab684904 = 0 +bb24ff8b8f716845094a0622a46c57960b392a45 = 0 +c1d78e91b46ad53d8a6c04f8af2204b357d474e9 = 0 +c6b7ac95a00c89e5f8b4921a217c0c43ce804cd5 = 0 +cb15651466f78a9301dba67d67fc45b8df66fd9b = 0 +cb92b020bbe5fb72d1acbda169c6c7ce46a07303 = 0 +d209dd2f793cab37ab08822cb046395c82192824 = 0 +d8288819a6119e3b8ec92af4c7395e2a8bb9182a = 0 +dc7905bf38fa968e8dd9669c0294931e5df02775 = 0 +e72310cdc1aaa037ade8aaafb117dd85144b7962 = 0 +e8640e367636bd5afc7ce0e47687dc4957326b64 = 0 +eab4c673d75db1c3dc441917b39a95ec25bc2476 = 0 +ecc8a4083f2d58894c405047db8cda74b6e8f82d = 0 +f4decf17ddf5bb029f41a404ac5c27b559d3f1a7 = 0 +fb8686f4afd95c86b47213e9fcc5a5820c042cfe = 0 + +[1bab7a21-64e8-56bc-ba2e-ce7bd6692a08] +8fd1a78eed7dcc235b499eb65d61831e83f308c6 = 0 + +[db1e4edf-8490-580b-87dc-ea5765160b1b] +86a07e9cdf9a855ba44b2869c578a818a874406d = 0 +96a7d62bc377f803a40ac4e16acbfde61819e8f6 = 0 + +[a3c098f2-3b6f-5d4a-8bee-41cfa5bd51aa] +84812da312e2c8689344496237048ec261b73ad8 = 0 + +[ea85cd13-0aab-561b-ac63-24d30c69819e] +0b5834662288cfdf99e1754dd4320c02f154eef8 = 0 +21114ed30d29563068edbf1feab8f10ae51f2049 = 0 +743c3d933e3a23f95b6d2bd7ed387c7c916e916c = 0 + +[bbccb21e-8428-5a0b-b2fc-db76a3f27396] +84f6fc774ef06c44ddb03df67636e68d4d53cb40 = 0 + +[7330617f-0fd5-5d6e-ba18-c28896f68b72] +85aa843449dc1c73082a6e2e65c3e4a4fae54dcf = 0 + +[e3415d5c-09e6-542b-bada-f9fe353e6f1e] +55a73e5cc1c8adb4b7fe15b9c7ac7b1a37a5118a = 0 +5eb55a29f0433b9a86ed2a889b65b54127ceeda9 = 0 +95920b40614270aac3c529e18114269ab834ee77 = 0 +f3f875d2a6e8e068803faee4ec9f4d31cc0440b6 = 0 + +[3b89720e-b86e-5936-9f69-824af742f89b] +dd4cece366650a4937d41e178264dcfe30187d1a = 0 + +[25f12f5a-a783-5f9a-af99-e55629686113] +9a0a7876422ea740f3af111f756676977c558bed = 0 +b5697ddd44675b2b84d4155e296be21e8a456913 = 0 + +[2db162a6-7e43-52c3-8d84-290c1c42d82a] +487307f30024944ac1cb0d980f52971857a6303f = 0 +82fede6851125287dd1a2443d50ee116036cbfc2 = 0 +9a2dcd45d048d45695b0da08a761cdb9381846d3 = 0 +a76a1c6b81bab576be52df6d3c57b78331cf7028 = 0 +b2415178cd37f32dfb74d6402151dda3859e7076 = 0 +c6fa8d8a1ce548617d6da3cadf5b87abbb45f06d = 0 +d661a430617111b365c5d7579b2ae0d9547ff310 = 0 +e9dea64ca3e5868d4822d0b1ae09a1e08c8b7cde = 0 + +[c947b005-6f94-5690-8353-b90d48bfe02f] +3a725a24702336a6d36eb2c7e4bddfcd5d6c461f = 0 +5e71d04e04d9045983f4dc602905fa3a4d3e6b2c = 0 + +[18d88a8f-8a75-5d15-b264-b01de3add918] +68bf8d01988ceacb83c8109d072c1a165d31f897 = 0 + +[c465b395-4abe-5789-807f-2446d20775eb] +60d7bf43b70b255706ee3798bee8161fac18ca16 = 0 +a53641cf45fd40cf05786097842d923bb9d7cd53 = 0 + +[c76953f5-bc6e-5ec6-b76f-2f5f8bccf586] +05b2fa629c6bf622157e512520664725ab8d5c36 = 0 +d783c388b6aa3ee14eb210151d2d821f14808fa3 = 0 + +[7c1eb372-2c01-5112-b025-ab474ef241bd] +0c6f87ff73ff1478dfa807d92d50073f95ecfee1 = 0 +7092d8ec22263b2fd005866434c82e9f21078500 = 0 + +[1fd47b50-473d-5c70-9696-f719f8f3bcdc] +064d2f01a0c3ab825c24a0a38b2b454c7b43ca5e = 0 +10949107c255e4d0d836a2c121c18b1bffbe3602 = 0 +2421a3bee068b92e30eaf448503bd0ce1b0d3e6e = 0 +ac7bcfa93efa0a5406f70fda9dab6b7e3702f979 = 0 +fc047a40918f9b5b8a4758da2b35fd819426b8ca = 0 + +[9ee2f689-5b39-572f-ac38-e7a530c1478e] +088c0c60909afd09d739f254f9cc37d019718104 = 0 +0d1f59b2533767f6201438e42d9ddd03c383b9d5 = 0 +21e4a995564b442087e40447db0b21007b71b9d3 = 0 +32400a55a9714fb19216eec10244dcf6c4a1069d = 4 +4226ee8cfa3ed82e058643fe1abc434ef6023250 = 0 +654f35c6c350636e6c3e25465fda25f68179e620 = 0 +69bf2158d36e9225083769ec3609478917e064b5 = 0 +7be248de7929a611883432239bf4527398e4fbe2 = 4 +88e074079a9723b228649d2f014ef5d6238c06fd = 4 +8f165dc2f209d9d3d77c862e15c120096375d513 = 0 +9aa84993ed3a9823548b63d135afed766ddbf105 = 0 +9be4b870dcf0852a517d8ab8ddd4cbf68d7953cb = 0 +a55ecff6b6571b9099ca163da3be7d04d1114797 = 0 +ad432068bbef034ecbac1401f158bb525c6e9f0f = 0 +b59dbfb75fecdeb0a4a2054aa433c68fd52382d1 = 4 +b93a2a4ccecbbea291e4e248736ada28944eba54 = 0 +bfe46dbfe4725851142bc7209b6e67bd14226a7f = 0 +d0a94af391fc5689c90e942fffdadc849e08bf6c = 4 +d430e873754d8e4fab91ce426ecf160fde775d28 = 0 +d6b97a48cf7e4c9d44cacdc93114ee8db6cacfd4 = 4 +d8ae4e242226ad92a95cd8662b4d15f600c9a893 = 0 +e845af7203aa7bce901ad7122f89e04f6b896260 = 4 +eb90cc4321d2458cbc8a8cd35d85ce2c5d222ce6 = 0 +f894ab575437c133a7c35890da3c6a06b4e36e65 = 4 +fad1962b25c57197b2d9a5bdfee45fa2de8c0cb6 = 0 +fb7b1140a2216a9211d132310ba5868286c16a45 = 4 +ffd391330c9ed8af5c33b7b9088f71a178282e0e = 0 + +[fcd29c91-0bd7-5a09-975d-7ac3f643a60c] +05906bfd89ec42185b83f18fe693afc21df14eef = 0 +16a9b81ab76185a0003733a398e99acb19a7b071 = 0 +2777e6c731d4e92b619b02cd32db69a24a5ef106 = 0 +29de48b19c2727e0e73f52e06451b809a77aa930 = 0 +2eecc7ad1a1944e9866408a807a1f9f6e310cd92 = 0 +34026d2db0a6ca17d0662c5e8e233af7ad6deb29 = 0 +3ed25fc05de2920e57fa8be59355ca2d2a67902c = 0 +407d1671f8bc4eace1a9491d60d70a79354a87d4 = 0 +5b7ba947633e6efad9300def4497f8fce3cff290 = 0 +5ea70a3762485cf54f4d9e65872a1300fa86eafb = 0 +7394e23a135a3f2c124caa8dd31002814a43e48b = 0 +79fa677daeef75dd694d1f6e710a44f4244fd197 = 0 +93ce49646b1c292dae08c4f3767374622a2c74de = 0 +97c30dc769563acee932fe9510b7f45d216eabbd = 0 +99aded1ccb46ad0111f088aa695fe7eded1a47cb = 0 +ae41315779013e29643a8bbfd42b7556d5f5866d = 0 +af4a7f85e6b31da0bbd6777c519935457db3260b = 0 +d028c898625b971442b48c9b94cfe69a10562f93 = 0 +d0d1f78c976114d7df6d835ef3ac3827ebdd1d6e = 0 +df22e32f3e127ac99a59dcee8314c53aec4e64cd = 0 +eb078224a2a681325d6d3e7bfaa8898d10f03f56 = 0 +f744b5bd0dbe0f65cf0ff32bc5a744948435e4ec = 0 +f9a34ddcf2f97e3b989e05030ae5b7d13c395f25 = 0 +fae6e19205d1911d03ffb6ebe7ac98eccb6649a9 = 0 +fe2be6b95b517414b810089c49f295746d93f3eb = 0 + +[dfba31c6-ed66-5d02-bd53-3eb16f72707f] +cfb0715354c6b19e2faea351c0f7bc3f6addb9f3 = 0 +ec2c2f5143787a7b175a607de758a3a0e05b28bb = 0 + +[bedefb8d-ef00-5401-aa81-ae9c3f6f84cc] +090fa0c2f25637cbb13d46e00ab3d2ec17b46ef7 = 0 +4929e84b0a22f0038bc8f8b7e7b3b4f2d9aa719a = 0 + +[e605e454-228d-5ea2-8551-672d69aa7712] +5d09bda0fb0c098e044d7ec6750b8865c2eb954b = 0 +8b68e0a9c74c5ea43674a98777dbf044ebda8f2d = 0 +b5e3005f3307ae5bb3df0184e674fa3c5c7de1b6 = 0 + +[6e0679c1-51ea-5a7c-ac74-d61b76210b0c] +5113dc8c528c8e965269cd6f74e839511caa82eb = 0 +74420ffb215e195ecea0f4d5028d8830a7bfcbb8 = 0 +7f7b17075173d04c7ecc274ede37cdf191e44fde = 0 +92eb206daa8f86ac231218aa4723cc867d4d76d8 = 0 +ae69320f5c51a10588c1d69f0d256cc7e391e81c = 0 +e80c03227ff9acbef5a08d68f237ab88fd666612 = 0 + +[029fbca0-4020-57ac-9646-11c6794697c1] +0505795fde051a08fb889c7295891785b1a220a9 = 0 +2e973402df16a2dc78d9c2266ae6fcc7a35b8067 = 0 + +[dca85d43-d64c-5e67-8c65-017450d5d020] +29b36eb2e4958d7e55794eb8f8d54f20a8bd1084 = 0 +2cf41266eca241187972a65dc68623aa81828168 = 0 +3efe65eab11d1f3d4a14a62e57d83bbd4b84b99c = 0 +55a70c80b8b91185c49fd1024c5f410781ed54d7 = 0 +cef306618fab303ae8bc7fc1999d88083df27ca6 = 0 +e5dfdd154bcba00404d936af269c31541303c2bd = 0 +efb89816fe1a99fbcf413b94a5fc6710108eddb0 = 0 +f73aa646afd9c3f8b6b4477a265ba015e64adcc5 = 0 +fda086bbca849f3b0d5181ac8f914cbd44e15e1c = 0 + +[94ee1d12-ae83-5a48-8b1c-48b8ff168ae0] +1a81c4d369cbf434e90fc63bd5fc299e075504e3 = 0 +288d1d6faaef9049a6fc68619c5b056e428b4ff0 = 0 +5a68546879b1bf29973c672466d82b8c7134e9c0 = 0 +62200f0ac5efd6d4d042f5d778d0cf2856c38c50 = 0 +ac488e96c852e1c4cb4ae69abb12d7e12aeab154 = 0 +bc13fc6ad83b0a14df67f3eb343a0a5be1126f16 = 0 +edf1e6fcd1c06808ddbe131c80675d358ae34747 = 0 +f702021ea580045276944a524a83297d0500e939 = 0 + +[1a8c2f83-1ff3-5112-b086-8aa67b057ba1] +02d635573a73a6bb72e3d5ecf1b1232a7e114561 = 0 +1b8a14e02248fb5b5ed70406c4baef95b47dcefd = 0 +21847baef7c40b0f0e5ab0fe8416aafde8e3b57c = 0 +2ac8df81b94ff7cd6bcab0122ffd661ad5abbdbc = 0 +5361ef26bf94d4005067de8327671a9d20d36287 = 0 +5d21aa6a8260a2222147ba2747628cdfafd70176 = 0 +63c7bc625bfb912bf912b5eff60f2782d043ea7c = 0 +676816984f2dfe5a2effb1c409ea38ef68afeb9c = 0 +68cc983dea9f9f39b56eaa2c27405d819293a64a = 0 +7afd9c468de0833f1fe8ad67ec55ce9f75c4840b = 0 +85b5360ac3f017f4d21de4a2bffda9e4394cedc7 = 0 +a0870e72947ea45b782185d188555023a0e332cd = 0 +a86e728b83c2f5af6805c4f511b8619b0676e48e = 0 +b4d5c4e601d14365a0a95c81cb93c6f4339dd84d = 0 +ca1b176326840c9e4c622fb3e068294fbdf88e27 = 0 +cfb09cd5c2916ca741999419f2de25d65d154731 = 0 +da18342e5047927bdadba3fb5df3ece9769371f9 = 0 +dfce164d30b81b1735a0fca9eed962c486445b42 = 0 +e3ed8324f34eeee887621b7a563fa12c0679750d = 0 +f31f05d79064cc0bbaf2d3a54a08041209db5760 = 0 + +[2aef5ad7-51ca-5a8f-8e88-e75cf067b44b] +1e4999f0bae86987630f39f64e0753d5412b2a94 = 0 +1eded27a27b4abc6cf29ccdaf65327c5d4a7a466 = 0 +3f99898151d433b1600e7486e9c2076b5a691183 = 0 +777ebeebb2715f52d2369b74a597c713b3f347e6 = 0 +89bde5df1e52402b8355e46a3f8ae9866738de2b = 0 +c8a6c60281343ed7b9984949a5dfc976c8dddb18 = 0 + +[14223e4e-d436-5d0e-89da-0790356f936a] +3b4e4d1fa1ff9272ad35e17360d290021221cce3 = 0 +5df4822dffa5abcb563eb6a8046c1d50863ee263 = 0 +d37cb92b7f8b7a198521d796b61bdcce407f2434 = 0 + +[298d2fe5-ed61-55e0-b3ba-7e58c5ff2f7d] +b8ac7e70e95237478fa47957e808a110dd23d9cf = 0 + +[5e50510d-6214-5143-98ee-a00ecbbf8dc8] +465b7d9e712144541415d5cda40fa33d517a55ad = 0 +59b0a355ea2d0ae8cc36e5f61c4e72c958341a7a = 0 +8969f2b4b81ccce2bb5877f4bdbea1d2a827fab1 = 0 +9617df9ccec726b0a26e3b244eff55cd819104a6 = 0 +b7432310548a6e906ee239ce9d0e1171a482822d = 0 +e430389de030b6b70817f96b36dd601d48c07483 = 0 + +[ae2dfa86-617c-530c-b392-ef20fdad97bb] +15fb0eeaba4c15f9045a7f7b57060694e4c8d401 = 0 +4c7eae1e937fe4751d4466bd3b9256ea22f60bdb = 0 +6b4884c37faf5daadf97d51998c4b76cd37788db = 0 +70b76dc5a6bca736dabdc2139c3a610ada99cea3 = 0 +7286c9ac923ee927c86aab1c1f3844776e10764c = 0 +e70b9c44b19129692a520ab748ec5d0ec758fc84 = 0 +f973cc921f3bc2fcc0c717f9f04753dd043f18e7 = 0 + +[ecf29a63-ede7-5edc-9377-e4ca4ad0389f] +ffa639dff1957616b84e098e0a53cb4dffc0b373 = 0 + +[6f49c342-dc21-5d91-9882-a32aef131414] +0b45b5d5e8c2955775b10df3c323e1f10fa3b189 = 0 +13d1cb6290208fd0220defeded1de112e8a287fe = 0 +3d279bd52053a40f777724e2a3acd7275f504c02 = 0 +53fb8557655bd5613db1b4bbddf5324b934a81b6 = 0 +6fe0dcda1e061d8fa7604f7ee122d7bd5700732e = 0 +7255e665f418d73b7f02fd00309f2a3fdbf65490 = 0 +737b5eae453b589e2ce9f9583816a22936522617 = 0 +7f47ee7961c29e59c53d595bba67c9e6e6dfac0b = 0 +8152909226519f204e33b1cd9bff0c135c139212 = 0 +8191a6c37c7f378fead9223b4b07032838f976da = 0 +91d976798a074fc960f3e5301c2f7020fd525774 = 0 +9c795a58219aa653709643f46e5cfe311fd6419f = 0 +a149e49a0d73ab70e232110b798c9f35eb2fbb5f = 0 +a2c5aa14aecc56c3bbf68fe2657f90ff65bdeac0 = 0 +a782a65fd8c4c3ec1d7b047bcadf58c77ce80805 = 0 +ab05d71714c7d90c9103fbe1ae70c057118d8a43 = 0 +b357b6d842514252248d1b17ec62a90ae44442f8 = 0 +e3129371049e24520d50c568ae2193cc98059d2b = 0 +f3d0613b271f92650ad60e7ec00ad9e3da309e09 = 0 + +[df47a6cb-8c03-5eed-afd8-b6050d6c41da] +006766516c2055bd462b42140d515f7547192afa = 0 +2ff1091a9217a2d9b0764a515fab4525ae085ac8 = 0 +3034b379d8a689e3172e7e7224b0a4914255cb18 = 0 +54d3385e575828c176d3c091f410f29c89077666 = 0 +7e17dcfc1b331bf8d6067ac68eeaae00551fc3c9 = 0 +dbb27b8ddde5f320283ea5ed5cb97195db20d856 = 0 +ebc1335252cf790e552f9310c2473df2822ad14b = 0 + +[ce6b1742-4840-55fa-b093-852dadbb1d8b] +1868811618c5461eba8a5eceb0ef80366a97ce64 = 0 +46458c72f18c38a51b05e8688b3b8025c28e9182 = 0 +604e6a848f91f53617f2a59c7f669e51c82bb7de = 0 +698985c749265f09b1197c04b7113e0001abb35c = 0 +75fb2ce8580feda6971593f2124a19564b5d9379 = 0 +7e205149d54fc5d86e888f06f7e6d4942baa913f = 0 +895369038b359c42702d514d0bccdedf3b6d791d = 0 +a4b9dffdee5d76d079dcdbc6f6d0e488ef989f2f = 0 +c8d30866028d777c55ea3f1846605bb579e810dd = 0 + +[3fc713dc-8771-5a7b-b2d9-79d2995ff451] +766e5ae3a9f5a75cfa2e6c44587767a79db90200 = 0 +8290261ee6205e97fce8584df449f44f5e2be9f9 = 0 + +[17b45ede-fd0d-54ef-b825-8cf9fc64da95] +0357eaa7f21a575ebb39b82a4a7647fb56946eb0 = 0 +143344eb8736524ab0567adce1bc3e66027ac8d8 = 0 +1d1c39eb1f8812442521a08a3cd98dccd5845a1b = 0 +4b33cab9d46e9a4621bf4611ba7074e961e78759 = 0 +55b54e45934414d22d15f61a91257d18582d7eb4 = 0 +6a4977b11675377c8609ea9e140e6a9dfa561be5 = 0 +7d3936a30b3977678b13bd56cbf1a2e85a976a40 = 0 +87c61f5d2a57717ac7a4a24070571f992c5b4d4c = 0 +9e73993abf67b527d095c1ad6df372fee5133969 = 0 +a706173b81dfe4dbc255ec54910c114d41eba5fe = 0 +b249c05eba7676a385e99a59a8c2a229a14b5fe5 = 0 +b57bcbc575f40b4b30b32dc43a208e67e68eddc4 = 0 +c5525ce9a1af7afa99a4557eeb3ab3ee14f22273 = 0 +c62311b9aaf255aa5e8a8d4750124e950e0c4f8f = 0 +dd76f11e759c05638b900ab12eeb66c997dc78b1 = 0 +f617f9c699fe6527f4b605b0c49241fe709155bc = 0 +ff21ff3e4fa35487e82cce6d721f82199fc5f86d = 0 + +[97cc5700-e6cb-5ca1-8fb2-7f6b45264ecd] +0f43c73e17ae5edd9f6f87ca348d7d41f4599fec = 0 +10c957fa276046102cf41896d81a53786607ae36 = 0 +13b2854f69d57a16b24214d3caef554a669577f1 = 0 +537ce26c7cc29aa36f324d318d2978b0408ada68 = 0 +92c50127c3cfb9e1ae84e6d281fb10e678ad4203 = 0 +f2e8c98350dd2ca6ff1d816a22dd73b4dfcc25e7 = 0 +f3558a9adc5780a5d049b929ef642ca7f8fed24f = 0 +fbb95d7af305a337b478b53c3e4537f171a82fac = 0 + +[f535d66d-59bb-5153-8d2b-ef0a426c6aff] +21aef7e498ed9210aa96ebcfdbd481d0cc117df0 = 0 +21d351068f56948489ebd6d4b055c8c2287e452d = 0 +487dd1fd9fcb6959b400f6013edde1adde2b5834 = 0 + +[909c4415-5a2d-5741-b701-ee6f02f60631] +28af1f966f8f00692d38d6e22b97fd0b82cf7115 = 0 +7cbe1f4cef10f8bd682fe5aa58b65f78d89a0616 = 0 + +[ff70551f-00bc-5e1a-85c4-e17d0b71e9c9] +990cc9c786d45737642b0fdee2fb96f360e5bb23 = 0 +c5aab0f1d6b2dd65e788ba156c15fa6103445398 = 0 + +[43612063-7f17-5691-a524-c0463e87d2c7] +0c19b6bf7b9cbb45902fbb3fe0b1ba1430393b5d = 0 +264f33906ded6e447b1c62139ee9be5dc463d066 = 0 +eb4292772ea0df44b33862b8c5fe4a707ecd4c77 = 0 + +[2547b907-48b9-5396-a2af-edc57bff161c] +0a2975eb32f5ca56ea7b14445c83dba576a180d2 = 0 +1846c6abb9e54a79064429fd3ec812da0de7cb7c = 0 +8771d3ec5b50b713105663f4d65fdd98a76c0e34 = 0 + +[3a9ba88e-79c2-56d1-8a6d-815ee8f38f0c] +5ef85e31986ba473d096fd4852b2cdabd5c3969d = 0 +7eda5c7f5daf8ce64018b09ac1dee3ce5fdd1843 = 0 +e3f934121229263ec1043939afd54e62e562aa14 = 0 + +[2576dda1-a324-5b11-aa66-c48ed7e3c618] +2fd68c51817ad1ac7b8c154c62e4010594f7c5a2 = 0 +37c16a0528f215cd67a3fa1eaeaddd5d6c6ed233 = 0 +6b4bae61dd8ae209ad6431f82cbd12e7066dee9a = 0 +8b85be0f97827954b43442356a380c8a9f7d3556 = 0 +aa23a70ae03e4e818e33473a00b0ce579c4d9b57 = 0 +f0582642d55290357b61a0623a7c2a8954d83576 = 0 + +[e6cf234a-135c-5ec9-84dd-332b85af5143] +15f227f9680591f805950cde09c469d73f069b21 = 0 +5a5861284ea5bd1038a75b0d7d689f3e42fcfcbe = 0 +ea7f88f55673f288a2a675b93f6f593d674a4f43 = 0 + +[7779672a-5d86-5706-9bd0-ace5ecbc1638] +d9b937f55e4fd6dc328cf6fd1c6d76f1fffaea8a = 0 + +[0448d7d9-159c-5637-8537-fd72090fea46] +2657676616470eb1762a8d2c01696d5097ada0f8 = 0 + +[b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d] +17d4525dac95eb05dd1ca77e6c881c7242601f5a = 0 +2e225969e41becd9497502b92010c96a4a786f5e = 0 +3a312a47d6ee3ba2d1971adc1eecffbf2fb0fbfa = 0 +b0ee8f10d4362f9f2b2f77f6ca864bb33b59aad5 = 0 + +[f25983ca-f764-5a23-878c-030f91a0c122] +2f0d2d31a26da63db57a8531c053c4e46dc2c469 = 0 + +[aa370962-1862-5baa-a5c5-5b94a507aecd] +630b8bdc748dcf496693f9541f83fbcc3a178a6a = 0 + +[a89fc88f-fc1e-5208-8949-7a3f8ddd21cd] +159af1a5dd0cd3ec473db3950b6208c1c0261b5e = 0 +68fd334ef44ed2a532ce01c6f266c04cde8b2666 = 0 +9bd8db28913b77c2e34dbb3eccc621ccdafab7a5 = 0 +b16ec1a072f359c81af38b1a1a981170324f19e3 = 0 +bce8961e44c5a2864c2d9a43bead202092d405e7 = 0 +e859790c129c702fee6d9549fc1c8f23fbbded2f = 0 + +[c84ed2f1-dad5-54f0-aa8e-dbefe2724439] +00dbd68ae16359ceb23b90b9a96ef65a0bccd1fc = 0 +0e56159aaccd61164c106d75e3b8e9627c9373e5 = 0 +2f80fa8b0ab9e0fc8c358fc97be2f9c50ec66a37 = 0 +45349f59e5d54819b55b8caa13a59f859ad6dee1 = 0 +66ef11807612ab8cbfd9a375f8449d52966615a7 = 0 +d7264b6ac3b049b6c2b95899cfca2da0605865c3 = 0 + +[d3d335b2-f152-507c-820e-958e337efb65] +23ccb4a0f27fb161cc47cb8d83589b2f43e64804 = 0 +c854cdaf846d94703dd220c375f2bef1e9e52296 = 0 + +[f4cd0703-4c39-5e89-823d-694fbb07b12c] +3947ead0171542ae179c2a3f56806fe9e3fb0916 = 0 +442feae706a3d3eb7554b4baac7b5206e9da5e9d = 0 +c0a841898dc68cb0e6acc9056a0cc660ddc45586 = 0 + +[8851364b-9c05-55b9-a122-f5ac41ab072d] +06d6decdf23b95859f9899b6571b0623c47059ec = 0 +389b93293a1f4088f8cf95dc392524176593542a = 0 +7f924bca122b11c440f2200c7f4103b92464e0d4 = 0 +80be6c23c63d84f39bf71f43eb009539a83f2eef = 0 +ab6ee2425bec59c53f0db4b5f8790aa62bfe4e8b = 0 +b003085fbfdc57aaa70509316bbb79ad3ca68933 = 0 +dcd1022c6818ce9430252d64cf64d4b351e706f8 = 0 + +[a223df75-4e93-5b7c-acf9-bdd599c0f4de] +05eb3283fa9877ae62550d27c70e0918956f657e = 0 +13f97d121b3924ead1e5c7d73158db2b0f340312 = 0 +1b4e2c050ffa65238a6082117a99732d7a437ea0 = 0 +1ca8af6f0750d17b4a7332731a758d81ab12c0b2 = 0 +22278dcbb97503c640419194ada5c2b98875d426 = 0 +2abf20bc447119d43c444a81c449cf2d87696923 = 0 +30af92da5fb9d9fa1f70c8478edd71ec01370be9 = 0 +393520a9ebd02402ca0609e1b1b95af7518f8b00 = 0 +397b12196d869192a669194f1919c95cd898a1a3 = 0 +4303fdecb001095b0515d44e8e303edca8dbc133 = 0 +4d4417fd437dd5e11c5c00c0c38e2920f42d1ab5 = 0 +5e6cc0f0c7ee000126f629bf0b02fe1668dfdeb6 = 0 +6c016c65117140df4b5cf56074375616ee40094a = 0 +7ec2c249bb2ee360a9ed0c3f3ecb3e14ca7993b1 = 0 +9696f272dad0e3a9e972c790bc8b70899df2b141 = 0 +ad369f3cb0ac22f7e62f9af92493fa3e94cea228 = 0 +dfa72bc7675a47b83d5eb0cb8ecfa8fd0c0e3082 = 0 +e478ecbd879f30e21ab0033f10c70fedbdae2050 = 0 +f62b8b676fd19d6d89cb17214a4cc8e195758158 = 0 +f79056a35b679215d097936a4d781d97ba0df5b8 = 0 +f8f5208f76c208a059de9107ca3e292b832a3847 = 0 +fd9fd2155c495d3ce83ad3edd0e217fea1adc60b = 0 + +[4d4a7207-8c2e-595d-b6a1-0355eeb1e38c] +514de3a0edb41245ddc4ceda3e3aef47a3156cf3 = 0 +5d1a449e42618aada195f8482d32cf1978651944 = 0 +93e4042c8aa2e3f2ddbf7b78c939fc51989d0d6e = 0 +b10ca95f13c109538abe52486353651d08819b2e = 0 +e228e09a444f87308ef308e19c48caf6df0d22ae = 0 + +[d71aba96-b539-5138-91ee-935c3ee1374c] +0a03afeb0858277253db484cc1810899510fdd84 = 0 +429ddf8264da159d5cabdf412c9ddb96135cc19f = 0 +77779339f15cdd61dacba869895be2f12f5c8f9b = 0 +dd32c71ea37401d46f497ab3f89d201216babb1b = 0 + +[670cb119-9e6b-5dfa-81ab-9d3c314fe86c] +5d05071c1ab3875af5b4805f535e924f697ba70d = 0 +89e96b75da371f55cfc66376364ee9456dc7697f = 0 +9371df4613efa9da5faf07103d3480158fed6285 = 32768 +991f3b4848b754936485abf18c59ecae4b37efa2 = 0 +a6b6076a165218448415ba4456260447880de514 = 0 +c22a431879f082e693d669c9b35180e717967ede = 0 +e4f6385e1d5fe8c2af4a3356d75bbcaf7a6e159a = 0 +f29f5c533a0d3f2642217720ac1f033274920f93 = 0 +f8987beac02d6429b8fd3042dc63cd0d39892233 = 0 + +[c9a1755d-84d0-58e0-8f48-2f3129b1cb7a] +4dc900be03d3a29ea2aaf5277e52352333cb8b8e = 0 +80ee969f6bec0dd219f9769b10e392e498369ef1 = 0 + +[7774933c-dd73-5de8-a8c3-ca082e6dff1c] +2422c5cf3c98b4a000d81a25c7172c7cc16b0824 = 0 +76d206d269d858cadcc2535ca929446a0e4453c0 = 0 +b89d74c589ffccdba2e757c2922be0e609146c37 = 0 +f8e65d9f6d88ed71b84e0065772f701473d5edc2 = 0 + +[a9d5a852-de8e-53e6-9395-5f1b3e4552ea] +12fd81796a9d37165970427eec9b62d8f1df90a4 = 0 +c41e080ddb1f45746724e9267c616c175c0e7cac = 0 +f83fb7e66f5dcb2529e85b6efcf52bb1b8078924 = 0 + +[3cdcf5f2-1ef4-517c-9805-6587b60abb01] +1558738ebe0945992a9ac1cfdd6e7bb1d8eb710d = 0 +2b8e47635b55f09d1987264babc29adad47f85b4 = 0 +3d2fc8969f9de2f8df1d36f1728dbeeb2e6d1800 = 0 +47606801541592ffde15d04edc38bbd487cac117 = 0 +51165884ca9e18bbcf05d556fbff6914c5f3a204 = 0 +61c691478789e50245e2bff232f2ce3684763351 = 0 +6d5b844d63c7bb854461b75a2ae599cb36776cc3 = 0 +700de20b7cddf3b8ed62664027f65cfd8c38810a = 0 +7bced7d864627f889a1ded7f61a9970bde73ea26 = 0 +84f588162d9d29a48a42cb4de5e6e6a831072fdc = 0 +8dcceb37c0ed03fce527d3d3d6e98aa13642f519 = 0 +91bba81675b779a9e50e36fc094e24758548649a = 0 + +[d27d45ae-66f1-5d53-80d2-11744f5c9556] +878a5e6146ac84ee9bfeaa0952f4ffa5cc2805a0 = 0 + +[9a9db56c-8f71-5460-add5-cb450131785e] +bbba01633f6fac8d9a627b7c3fb22346f4f4a5d3 = 0 + +[5954407c-3ba7-53b2-975c-4465da8f8c54] +906bb1602b96baaedf253c8abd73b11598e9c6e6 = 0 +b0d87e4ed1d148c4f642fe9bb5cecef3be864238 = 0 + +[639c3291-70d9-5ea2-8c5b-839eba1ee399] +77365344fc73b9b0c7a28da6ee9501edcf5a4491 = 0 +9e1c8526daf4739fc513f77881398412cc22a2c2 = 0 +c81a37385d274ab6facdfa46c892fa4b34171ff6 = 0 +e27621f1d4fbdb9b255967fe0c68839d222ea470 = 0 + +[731186ca-8d62-57ce-b412-fbd966d074cd] +06c800494be02cb8061cd02aba459667cf727e25 = 0 +09e4ad153052dbb2606c8d1deaf6f2813acb1a86 = 0 +0c3431dd08ba840ad1d807c835e42d2360d9b411 = 0 +19b71ed3b0df58662d53ddf28136dd64a620344d = 0 +19c0532ef77beabb7a09118ab8dcb3fbb13bc402 = 0 +22c18d86653e56591fde6c7ff70a0e607c4a26fb = 0 +3f956efb265d2ca05ca03b1b438705d9c539e356 = 0 +47849e78095e4a86c8b23236ca05e861d61cb55d = 0 +5f20d540d19e25989a710c6a4814750203096a23 = 0 +5f22f9ea321f359e2e97ad115b2fe64151e1fa6e = 0 +6827bbf1650d18640c15c57d49bd9caa0837c532 = 0 +7346d2c222a7c753fb2def512104e29795829b41 = 0 +795d4d48668c9125d23f108ce459f4b549bd9f91 = 0 +876d5a4a12f4e3681bda45944b0c4ac63de2c0f6 = 0 +96a83a43ebaf899a3725c9f8ff1e18607b11d396 = 0 +97b3bb7d76fc80e3704797645a6eb97c3a321fab = 0 +9a95543ed2a9af0f45c2a1b0fbdd095957b15196 = 0 +9c4a4f413bb073be826d4da8028b46c5ed8f1254 = 0 +9d2a40e0a299966ae72af07acb16d77ea1b25046 = 0 +9f6ed2848bda622c9011077abd955ac484c0ec73 = 0 +a941a733727a057b978fa6ab7f8601e016c92d47 = 0 +a9ffb9e6ceb018adda44fcf473f54fe14c7558f6 = 0 +b6a1411807f6d1916dd4523cccdcd37837b0d0f8 = 0 +c049fc3eedea044892d7246c8e0c6cd187cca629 = 0 +c2d8019ada0a8515f3fd731d822a2122cd6cde6a = 0 +c640dedbf95f70bc38c283fd0305e1ed37bbb785 = 0 +c6c13cf545b658af4564c53a7d57d7e5e4e4146b = 0 +c7ee8d33617d7f726f19d51a7fa097312671557e = 0 +ce3ae7316d7cf07fd2679d42d20a683346ee0b4d = 0 +d10bfba7ec0025d5868f236fce83c68ac5722ce6 = 0 +df0c00e5c4300c4c4501295102cd8be8a6b5593f = 0 +e367d9eb5c5706692241fcdc4d3272ee7c44e8fb = 0 +f0ce24d40c7e708083f8b1fc81dfb1a9c9100ba5 = 0 +f2df3313b48babf66e4ca3e0a1bbf48f54545e55 = 0 +f3fa5ca7ad289fd52a181a97e7ca9db880141586 = 0 + +[0cf705f9-a9e2-50d1-a699-2b372a39b750] +98e8e605e299fb5dfc548be86d1f162a390cda94 = 0 +b58c5890a1abc57470fee396727f8a485d10db8b = 0 +b78cf3dc4f7677c224c8c837cc6ef3866008e3ed = 4 +e305e5029f2b9a7f20623b2d9889ddd91f4e12a8 = 0 + +[93e0c654-6965-5f22-aba9-9c1ae6b3c259] +27104850ba98f17277e7db941d73fd115366d35a = 0 +4ce1030e336b93cbc461983ecbb7eaafb49ac1be = 0 +a1f1d3a3ad81422582fff42a285c07aeb9f76988 = 0 +b9c379ecc0879b8dfc2ada6a3d8ef979a3754ee3 = 0 +cec4d29741f351666b6adcd360114bf2f189e6f9 = 0 +da8db01b9f1ce37b86e8c2d7ca71a70366295f23 = 0 +e23c968c4b79d6e55aae0a3d3639407e627a7507 = 0 +fed2933c4800ac9f1c0be1af19f7f6655cbbbf9c = 0 + +[71555da5-176e-5e73-a222-aebc6c6e4f2f] +06b9cc96c9ecbb3e09aee92995105cdf614bf497 = 0 +830246d478980862301675a2149ad1cfb12359cb = 0 +a0b19122b439d82fc536673edbd83cedf17a90be = 0 +aa96ff612e06e7aa1c1e9b06c23efb602d590c0b = 0 +c2d818e270db1c197fda086fb5bf46aca5abf918 = 0 + +[189a3867-3050-52da-a836-e630ba90ab69] +1b73488232ca459c0008be54765fabc5add07092 = 0 +7c6c08409044ea53bef06393e97c038369212841 = 0 +bc6a5f90067bf7aeaf482cfeb37029461271d5eb = 0 +befb707d264cf62f44da58bbd65095c4671f7702 = 0 + +[324d217c-45ce-50fc-942e-d289b448e8cf] +4ecfa29a6f7b4c6b9f975008fb905713d07f5b05 = 2097152 +7719d33e35db06a634c9da6de648cbd529caef88 = 2097152 +eed2f919a1382ba7dc9c6f231a1ca0b56d130cef = 2097152 + +[d41b3cee-bfd5-59f4-ae46-2d539e075afd] +a5ab256d71b6322e779c2a3bd062fafe011c4221 = 0 +dc1bb38a1aca40b1619265a79ce922b30e41fd53 = 0 + +[dee08c22-ab7f-5625-9660-a9af2021b33f] +09c2c799a8eec599bc8bf2bbfff49ea1252dd51b = 0 +225b89ec08cdce58f9b5a787b8ea625e50777b0a = 0 +78c50c3e317d9e02879be2c3d7528e87ca5bd275 = 0 +d695586876214d03603e0055e2ad421f21c195fb = 0 + +[d9b503ff-f00f-5839-a702-8ff19b1c98e5] +04827f61c17ebf5e8a8080d2b198109a288034b8 = 0 +20abe9c2cde10353fc3ca78b11f745b426aee5e1 = 0 +232e4bf22c3c831d640da60ba6d1d3d27c5661b0 = 0 +28dcc56721aab661acf82ab5f900eec60ce516a3 = 0 +75d6c981efead110c4adcf6a2eebe76ec94deb4a = 0 +7ae77234ed2f5b37da48c07745eeb8c328212c74 = 0 +83a6758b90777e7b6452951df0acbe8b9e11d9b7 = 0 +ab295333c5f236a2fdb43eadf8fd7b7dc54b3faf = 0 + +[d519eb52-b820-54da-95a6-98e1306fdade] +1fcfa6e26904e200d96e49ae258f8ad8d2391baf = 0 +452290d4151675a4b13ba1f0e0fde9b604dc3411 = 0 +d2ee6743ec924c8df41398b88c80b5fadece5dde = 0 + +[0376cc21-f8a9-5fcf-8891-fde1415a4fd3] +3f82b06cee3cf0f129fea3a6bdb014812c681647 = 0 + +[2e7db186-766a-50e7-8928-5c30181fb135] +03fc369a8fc54cd4e60255dc7a674600e0281b6f = 0 + +[cbe49d4c-5af1-5b60-bb70-0a60aa018e1b] +4a07537af2eee828494e1d415aef3dac3952c576 = 0 + +[df88083b-ffd0-5ec9-9f27-0a3b3d809c9f] +0ef62ceb9ae0b5979cbc4c3dd0dc21549a75b909 = 0 +1509a494288920252163923dd0136894efcfdd40 = 0 +1545c4615eb9b59c77c1dd118f9bb5d5d0ec9cb6 = 0 +2398ca8d6c64bcd3258d877d5bd5918353e5f33a = 0 +2af5cb7715d4a04a729f17c6322c3773e3c307ef = 0 +2c39890ed70111b1ee9bf6ddc66580248cdeefbe = 0 +2ea3eca49c686e12d10a82c27d5b8acfc60eee3b = 0 +3c354b87888b337cd603512b5c9dd9bb6214e16b = 0 +3c3a83d2212c0a97114608b3ca97740e9ada6c4e = 0 +3e477321f888dfb7dbd328894f273ea504350bff = 0 +444c775a6aa45a63732e7d9542bb46fe6fdfa895 = 0 +45480d1ea55ba27844e8f002fe1e2ad6c25b7893 = 0 +4936215e1441aeb66d47caf05f1b011776040cb3 = 0 +572c984756946d3e58e41fa629ae2d99e7586216 = 0 +60c51eafca6e1bded764c7904529cab4ad7e8cf9 = 0 +67c3bf6106c74a1bcd4e35d9d12268ff058b6825 = 0 +695fb2c0c5609bddf06b146e40f1311dca09f075 = 0 +6d518a9c6d4709c7f2497c1ebff64fd89c48f6c6 = 0 +752275d3d452890d0d2c7e63526c8a86cfebfef9 = 0 +76b03305d3bd30891515fc1cd17cc9df40159b13 = 0 +7870a6dd3b177d0f0c9435431b9bb3f73e050589 = 0 +79469c32ac0860e838c55a57e6bb5077635dec76 = 0 +979706304fb79554500e988cd0b5201f8fd927e5 = 0 +a8f3e463f07264f3cd33b544aeed8ee4f466a3a7 = 0 +a972dc9d2d20cc01f171d1fa1cd307b2a3208e30 = 0 +bb1dd80b2d49559e4a368e4b43cc0e51ac848d88 = 0 +c368db55e017eebd8318471272d8b6851d56359d = 0 +cf68b87040272c3b335da98c6da604269e33a26c = 0 +cf778031780fe006844103b15dff6e9e85166305 = 0 +d8131d4d254d7859b080b77a09b52509f80413f7 = 0 +ed2bdf38334710c711be5778d1ef53e3716fa34a = 0 +edde9467240a92292a52de51deddd669b8b32616 = 0 + +[d96adeea-2b6b-53da-8516-10ed6ead399c] +9f9717e330fe49f5f913a08be89f291d1141e9a9 = 4 +b37d61b8f52ea07db50f5ea3d2ac3d380c1f7620 = 4 + +[fa45d1ab-b616-567a-ad77-664fd15b62b2] +cc12337a200536613fa94c02fc3674a4d619312a = 0 + +[d485f30e-9291-59d8-a5eb-38af4ff24c29] +1acfca84c5f93edc096aba58a7decb5ab2b388a6 = 0 + +[ae029012-a4dd-5104-9daa-d747884805df] +4a473fe2aa4a52333bcaeddcdc3ad9619c09686f = 0 +53e021464b6a7eb324d28c28eddedc78ea6e0e01 = 0 +5683745f03cbea41f6f053182461173e236fdd94 = 0 +57b2746da78f15df7912a1af17dfe3045471f1c1 = 0 +709b1b6258b5d672e7c93b75539a96b93b517cb2 = 0 +71b627ac48be126a9a8eb7a5c2dec1d4368723e0 = 0 +94727fb1f8dd5192c36ff38372eef82120e73663 = 0 +9b7fc1e94b31a9e6db27bbb0c8df844467f20114 = 0 +9bdae246b49439d7477f647fe61a0fd3f5ecf97c = 0 +ae8a6b60e578706cbbe9b85613b03a88b23e46ca = 0 +b5169a6ec1b85804b13d4c29f948b288b3cebadc = 0 +f89031757bc0ebac8d052f3fd8b401006d1b17fb = 0 +fb6eda1be1a83c330c12801d6cf652ca7daf323d = 0 + +[ae5879a3-cd67-5da8-be7f-38c6eb64a37b] +7957112385732861634c1cb127df4f45e6a6b711 = 0 +82b01b8cdd3f8ef44a7ab17b2d9014b5fb606e38 = 0 +a736e8ed3794e6175ee3dfa44efb62ac9c395478 = 0 +eb666dbd9f6354f07ae9e308ca96b7b1be3d1718 = 0 +fd28e6a222ce0797c0af8b1c8abeef1ab091cf0f = 0 + +[a0979ab6-dee4-51c8-812d-69046455aaa6] +1699210de0b488483bc6e6c443af1b275442a6a9 = 0 +4d91473348db4bdca6c82859c27368c6f4131981 = 0 +52c70aae9c53902f3241b0c3be0ec2e40a743147 = 0 +a7bff688d983edfb716ee8c0e16b3db7ae18314d = 0 +ef86983ab8df3b35a8d1749513c0b4f9d304af77 = 0 + +[b2097dc8-3ef6-5718-ab14-7bca60434373] +1c0c4c61c9ba77a1957b1f9dc2d5db02dff2362f = 0 + +[08a2b407-ddc3-586a-afd6-c784ad1fffe2] +151d1e1e4c4ae1bebbee75375a85b8b2f9f49692 = 0 +24ca7473cfdde2e12c1828197f1bb5dc71121b7e = 0 +3f4059f5000e32bf9008c0936e788799d1f4191c = 0 +6d91e6a84d8a3c6baa98bf50f5f18bf33023a4ac = 0 +7b324604af6d887fc74b66d2841a81b0b4f8cdd8 = 0 +8d570ce2ee0623580f881162199a75862f3c7646 = 0 + +[c5292f4c-5179-55e1-98c5-05642aab7184] +0ca36ae085e742904655bb0454c029dc0a5a2446 = 0 +519ff71062ee72dcc6992434cde4a1a57f13abbb = 0 +6e128e808208973657b2c0afff06e941547b35b2 = 0 +730944df8bd0ea8724a6e01f464c56e540f97d41 = 0 +874ffba49f79993f064e10dd45e441e2f47469fc = 0 +89ae5389516a271a69de982bd447215e355d20f5 = 0 +8f2ec1977f30361d10fff90f32c9a86f8e41791d = 0 +8fab4fae752b3e73963a51d6419d25b173d29adf = 0 +944a554855b3adda2a75b637066e929bc2644fa0 = 0 +c551c6844fa2a0391ad12810895e32cf339c8020 = 0 +ec55bcf9bc1cd24ba84b28743e10953795f1d90d = 0 + +[20febd7b-183b-5ae2-ac4a-720e7ce64774] +3816d584779733712f318e981f9fa172279e04af = 0 +45094675ab6086fe7a4715a945fd96688ee29731 = 0 +5fc7c453bc0051034f3fcfe6b4992afbb0e37087 = 0 +6c565a34dd5b1b40684db2a31288ebff36c49915 = 0 +6d5c8549d04b7e500a0f4efdc91df8afe0f17cdb = 0 +91ce77dab19dd7d7d6be6f31c2a481d5c0492124 = 0 +a98715e6a3e9ba87283e4d6336f819bcb834b9aa = 0 +befc26bb7ccc355faf80364df753b81badeeba29 = 0 +cc32b1d6931edde70b82511adb8e9acea49aafa6 = 0 +e5f86ab24a55916322723d71bae19313b5067429 = 0 + +[afbf81f7-602f-5a4a-9a77-738a1b1188fe] +0ae5dfc83f0b1554123f206751e0232630009511 = 0 +195ea15a8fc042f3a03f923ca9301e925b45261b = 0 +1e3ccccc8948b49b2d7a8aa3b9a305c0b09141bd = 0 +251b15a450723acb5292027ae92171977b06df0f = 0 +2fd83a2ce48ea3e0c436e8ccc2430f7d12d166f0 = 0 +3ad08ed67cd8d4b09a71346a10b4f82508791fd1 = 0 +3bb99645ae240a25071bad00867094403ea6fb6a = 0 +4e5fc3c98694bedb54564cfcc9b5be0240113458 = 0 +4f93cfc3cbfdc974b5d6a387a269f8f69df06921 = 0 +507dc26ec77724a9a49b2baa798b84a1f8f0d9e3 = 0 +6a36e1b00a288cc965c0eaa608d9167bce6fa81d = 0 +70f9b23b8593fd54441ff04c936165c6eb6e4bd9 = 0 +800938ac8f39e5339c62e5906bedb6f9008f8a07 = 0 +841cba763cab9b7beeb4fed5066ef307e675dbb7 = 0 +849a42da623063cb3624094b5ce49beef346dc2b = 0 +a1c5d86ce3907a0e1328b2de4d6c08d763377267 = 0 +a9225cd3bc8ddc53da14afb71afafe37f4fafd84 = 0 +b0dfa0c5097d129e2ef55e208b279583f327c1dc = 0 +b1fedbd003e45ef7ae090a8f49fde1f4d2a1b8ad = 0 +c4854cc0a056609cd314906d76fb45132dca16d3 = 0 +cc259f13c5640702421fb490bd121f038b9ad3d2 = 0 +d06ac62469c9297fc953197d4c8786684c88d0c2 = 0 +d7d5ee13b9ca1a2c8c4b0d8d3d04f458744b3808 = 0 +dadabf145070d0c400564a0c2be2f932e8fe49a6 = 0 +eb26c3d7744c54d53d3af36e7d294e7bec1ff9d4 = 0 +f057b816fe3f6fa4e8ba18898663ad5a200006cb = 0 +fccb73f263490dd79bc923d5e490dbfd2d64557f = 0 + +[b38e88e0-6e0b-5351-bce7-ec5fd20bf074] +f8d1969cf8ec51e2d4ed85ac0b4fed65aa4b4a9a = 0 + +[37e2e3b7-166d-5795-8a7a-e32c996b4267] +09e74711b98ec8ccd06035cfdf6af61f50a530af = 0 +0b8806626a2739aae1ecd8dbfc04d4007ac8138a = 0 +296e37e6d9620f73b7823ecd2590b4684b10db7f = 0 +4f97151d4552c75a1a2eda35eed7e7128f064f4b = 0 +b1496d0e09e711e5b7b651b53c48e1f98dee43f3 = 0 +beb031ff6ae669eebcedbb4f9e380e8b41adf7bd = 0 +d2225df05a2045e814b9da8baf76b3268eee8336 = 0 +d41a29f7d2bf8b1a5b6955f654f4fe5f34f61cca = 0 +eec3108a648e37e832db9c826c39b43003d28391 = 0 +f20052051843d377a7a11abc6b6404a254333dc0 = 0 + +[7f35dd7d-48ac-53c4-b315-575add349fcc] +4112f6acb8952201f54d664e480a3f1957f35d22 = 0 +4d3b0cb72646044cd68e5fa8a724c9df82be66d7 = 0 +4e51837ddd0096bad24564731b28520844333fc4 = 0 +71a2d6539087055825b13a608635162fde71f984 = 0 +89e1c0bf92f2252786d3d34be7ee69d8a204f077 = 0 +95dd2f5319ab8783b8069b6d94d315db1e19a8ff = 0 +9c8ad6d278e2a9c7848e3094756e203347b1b1a5 = 0 +a700b013457e8acbfe919d87ed41dc52f74b6f10 = 0 +a7efdbfd329265f8cd314234f66de3fc16d2f2ea = 0 +b2f46d5fdae5855984ecc7811596ada8813f6e8b = 0 +c30d2250c95d5904eb2301a77bffc50d9fbbe4d3 = 0 +cd3b64222caf8773f3efe91db8dc1f8c5f0de38e = 0 +d2cdd63818801b4e78ff1e4db784b58590da33c7 = 0 +f60a9ef208547b0e140a4cbbed9bdf251e16f34a = 0 +fb02a60aa1fd75c52602afa2e404448a7e8abbce = 0 +fe2a9ffbc4ccf6fa346f3eb1b8ab0c1e4e902fa0 = 0 + +[89212889-6d3f-5f97-b412-7825138f6c9c] +09e6eed8c9c7497d7bd238d4e2381ac77330eebb = 0 +0e5a939bfce99b1a6bb25791e72031948aae66b0 = 0 +15e1d3700726a77616aa5ad02d228f40f4875dbd = 0 +1928e729792a18b0ca84dc1479454fc2bbea7524 = 0 +1bc89101ca6c04ed84da7636165c22cb6736688d = 0 +1bd876027d86be9cae4f6b51d519c201dfb998a9 = 0 +200b06316501c3ad3f5adea08f45634a0f40cf16 = 0 +290493303d3df2f6593778cba1e766d63bd51063 = 0 +307ae6dd2fd35529dc0f252d96d7777341e6d87e = 0 +3148de776bbc5c649e3a994f543039bedf87d766 = 0 +3374f7525fab63b92e716593c011dbd877333db0 = 0 +37b26dbf9e847018a717d957fd0a26a0e2e83bc7 = 0 +40b3d109e3c1612e162c0c36a1b55d1a3d48c86d = 0 +4ac5ec73b65f55eb1719c4873feaee72b2836587 = 0 +5cc7d9abe0e41e8c93fe4824220a1612bf6a4963 = 0 +606026f55106e1a833986f9587b02e3ef017c0ac = 0 +61f08d60149ad988a5f792acf91e793b583cdba9 = 0 +62e8d4418ae6343edb92a3999b03a8a3f7880242 = 0 +6588faecf9a1097791406709cb4aad3b3315eae3 = 0 +6680f2ee700cf45f1c94af4920341bbb7782d934 = 0 +67fd26573826e6fee7e5bd83a1a232d05dd6b6d1 = 0 +6ba2fe8295803f8d7f3e3c888716a898fdf7f06d = 0 +72b2a3002a75c3668b53336cb4d2988d9e07eb26 = 0 +74f65dc7b7712ae921aa194408c2311025f66cbc = 0 +758f0daa96a64bf26f2a25253915e4c26d51c7bc = 0 +7b2a72c4e2d40bd6c56aa93273efa30b268774e7 = 0 +7dd71d9668a8727acccca2515a77baf722c9fc97 = 0 +823f920c523369ace7da58972605a73584eafa53 = 0 +84094904310f7f59e4071659c4bf84de237ce5da = 0 +87024ee41924135ff4c4851d5fff2ca16ae77d53 = 0 +95031df65c575c2218d59ba8ff9591c9bd9cf47c = 0 +99ecc5e41824d3cd5e8ab3cd50d962bcf1ab9421 = 0 +b20b2f3cbf77cdca1ba59a12e4150f42d83e6f02 = 0 +ba5daca777cec76b453d4180263131979dd78e88 = 0 +bd2432c61548f86ac3c0653b87fdef00eb5d285c = 0 +c18fb1de6a156c5639d73524172ec8988baaba0d = 0 +c223483bf878c6f760629204d768b32d745bd393 = 0 +c3e54933710d4198f2840b7ccba210ed43d0e4d5 = 0 +c660af3cee4fbe3db3aa0386d8a87b6e9a5bce55 = 0 +c9d5210534648dc6d58687d531e08ce5b7632739 = 0 +d3e7ecb9b37b6b1e8dc569a010811ef7f03978bf = 0 +d64315492ae3b0cbd6c50f7f9eb668518c2d33d9 = 0 +d81abf0e5d459a8554e0f031cd1f520ee98e1eef = 0 +e1d34328f23bdba98a3f4dad2c78928e732007fb = 0 +e5f252ee7fc8ed084a3711a4aa999d9b43688809 = 0 +e6db18f304729c830abea65f183370337e732c49 = 0 +ec708f3329b38fe2a886ed31e72344c0eecfb33d = 0 +ef85883cbe54d5ecc3470907db182ae326938cd5 = 0 +f127de50a60676adeb2f760ad5b30092cb34c785 = 0 +fcdbc847e87ea59d3840d8ba68de673e0aded6ec = 0 + +[295af30f-e4ad-537b-8983-00126c2a3abe] +0ab150ed5320b01851b3962e4f4c3a61b2e0b233 = 0 +147af43699e3e6c2a5bf69788b47c0f9378f91a0 = 0 +17bacf0da01abd04e79dccacbcb8f4f706064c4e = 0 +30691f5c61062c172dfc13d40ccd01c34ab23235 = 0 +416ff37ea2080b0bb4c55b66f757d05ecb412d26 = 0 +454379abaa01dfdf43e74a4c5690e5ae6c6291bf = 0 +703912621fd59b21b738cd21cff34d35a797892a = 0 +76e2ce5643e1a35bd4ea680ac5832d76abed7339 = 0 +7b2266cdac3a6b1d8060140ce89cb09cdb5ac8fe = 0 +8bc57c1ec6909fb14b72fe34068320360f5a5aa2 = 0 +8cb8b190ac3d66752db06e8ce39c70069e524980 = 0 +9f8e8620aade09d6d8cacc602d7d110915e86915 = 167772196 +a8fe405d983228ba6f241c4689551560f4f0de14 = 167772196 +bba3dd267b61dbb9ec8b578b305f410e9ef02f38 = 32 +ea5457d98c692f234200be6b8afed1444aab337e = 33554468 +ed7dedc11b9a9cf8e7c8ab5a872e1406306cbf14 = 0 + +[3f3442c8-4998-5f9a-b6f6-804928b92bc1] +c3b10825bb3ff65a95e2d4e09ec544f0f7b07909 = 0 + +[803aa692-84f0-5eed-9cc1-fbb46710dded] +9ff943065c697d50abaa5cf173abe8237a752137 = 0 + +[cb793064-ffdb-5a23-a3d6-f6108cdaca31] +5e5535167bc517447b31a4d85845ac930722adbf = 0 +778d8cccaf9156e74b9c06d59d74e531343dd5bd = 0 +7f7d36fc51dedd72ce4dcc795f8f6a92aa166e50 = 0 +a51f180c5fdf5f06a26cbf6bd61090052c98a2c6 = 0 +a5f7e641a19b63c3a8284e5e85f940e5102501fa = 0 +a8f0e944d2df0b7d9f0a6e0ed41f95e5f0c394ee = 0 +ab6aa11f9a426c47e2d998162887dd5285790f83 = 0 +c7ae053448c582f30131fb123e080926c87809b5 = 0 +eec30cce613f6b8d80aa4247ba5d0776b09ed1fb = 0 +f4be87cf1ff3d7f154c128cd827b19b92c33f9f9 = 0 +fb5b06c1c8fb1ce2451a7d2b0f03a7ef4e5924bd = 0 + +[48487f09-f8e4-5c49-9452-2a9c2dd48540] +bd110c3b36f5c619de5be7843c31aa657f5ba025 = 0 + +[366cf18f-59d5-5db9-a4de-86a9f6786172] +21b7742875104380aaf88b7eedfaab34065162c7 = 0 +30ba38f785256c50af279f49dc22c715bc6b60fa = 0 +40fc23fe31db29fdd7a7b5e046c81d2db09d74a2 = 0 +505e85adeb16ed76d15b2279ee8753784ab9ee95 = 0 +72ed4ce112e9df818f39664317f397cc28256600 = 0 +9943a0dacf37568969d11976a7a6d3d442341936 = 0 +b782a82dffa4c0d89ca1f8697dbcc409dd478b2f = 0 +cd58a541cf085b31913e8a22c3206fff0003a751 = 0 +dfbf7aac31875c69ea8def33400baaa387822bbb = 0 +e87788bc6560223851d863355ae2c96bae6f9f6a = 0 + +[e61f16d8-a6b7-5689-8d03-627c2b27ebce] +617b6be2fb30557de33a164520ec4511b300ad6d = 0 + +[82daab19-8fc9-5c1e-9f69-37d6aaa0269b] +1cd0ba998791a282d3c1ae20a77ff9c103a96354 = 0 +52c02afb4da1a6e89f239319a6902c39b347dae9 = 0 +8f18dcd30fb6e5da16a92a6712a738cd40b59d81 = 0 +96ce3ae8dde3ad3d1f469fd2abf78b9679bdf3cf = 0 +afd8982f3b547fdbf3f0562bbfb3e1293272e78a = 0 +eedea02226b21ad866125013b5264c6aef1e48b4 = 0 +f5092ff093eb62046cb1b62b3e7d24a5deb14f12 = 0 +fb6924fda2bafd62578fe59148c8e554083c8cf1 = 0 + +[fbfd966d-c689-51ba-8131-03d0dd334937] +233d41aad5ad8946b347990abb6e07f6b1184162 = 0 + +[f6d8bcc6-4e01-5431-93c4-9d6004abab90] +0cde5a48c95a6b83ac306e8b8e78f73ec2bac032 = 0 +3b397b319a326bd0d6f005d8f9e91f71dd11777b = 0 +3ff0c268df2dff8ba31507a0e0d09e4d33f94abf = 0 +9ec268f87d042a889c2338a20857ed4a47ca783d = 0 +dfe68383404b93c17fc09750a0631d94a25dfb2d = 0 +f106c7446609e8b29eed53f10f74bf2b4b6c512a = 0 + +[79098fc4-a85e-5d69-aa6a-4863f24498fa] +136d37f615ad2bfb4ad9a56ec3beb7b1e201003a = 0 +3435e1fcd06b8c96066600d2f890c9ad33606830 = 0 +894e51d38c2d4779a35c1e7239cb4fc154499bd5 = 0 +f9379c0e4a419e54af397583bc9ee6cdc7a1bcf8 = 0 + +[91fb55c2-4c03-5a59-ba21-f4ea956187b8] +0f105f4c91fdc6d662e50236f4226ff43a160461 = 0 +2a6ae2afb5390d5e1510301da5f113ea37b756d6 = 0 +64f5d302dabcb89c20524007dd15938dbd0b5915 = 0 +6bb6b52d8baff9ce95620060dbc42f6fe4cfeb1a = 0 +b6bac6e7278c04ea4c5236eeb6f90b6afb0a22ef = 0 +bd4d6e217f468d7f15bf17f2908a4cef8b96c35b = 0 +d89b97497163bf1ec1cc7d8fd83a42a96363df2b = 0 +e4bcfc1ff97ea2f6970e5915cd5ac06b2cfee5c9 = 0 +f91331f07f256e103e173543879fc24e6045ec72 = 0 + +[238d586b-a4bf-555c-9891-eda6fc5e55a2] +c6e2e66c6bfd0d7997b33f3f9fe73c520e0ad303 = 0 + +[22415677-39a4-5241-a37a-00beabbbdae8] +1746336a6b471c986082be9aaa6aa8dacb2dea72 = 0 +1bacbe59802e47077789f9908a4f895ffd7645f0 = 0 +3855cc762d8d4146791a3d2b48e74699b7abc045 = 0 +3c634d13018766285d0dd0af3838fcf7e21918ef = 0 +486a3706b4450f4f1450e60faac8cda1b6453b17 = 0 +4892be3b1720a9aed737fe31582b78bdc72cfcc0 = 0 +582c94e7d1249691fe2a5987da4e622020643a55 = 0 +7c0dece4b80b2305850d31081859d27ae91d1a55 = 0 +86ef7fea816786662e8b21d912a300e5e50b9c48 = 0 +8943e7bcf8d57cba699b29d9e9862c7367654de4 = 0 +91ca1643d30196d272571187ade9fd29fe5668b8 = 0 +ae7728474c072e135946c0db755692114d8a39ae = 0 +d40d35283b6b41048c2c5565487461b4606c4848 = 0 +e14adf085f65a6b3cfcbe0405a530c96974defc2 = 0 +f601da6a2cc0ebd28ba981d0c487628e2fa7fd86 = 0 + +[a75dfa10-1339-53f3-8748-4d618c3d76af] +09ecba9eaee4519df5a2386c0b0368cf464183ec = 0 +0b15124fe4efe66f39c4d0caa5ff215517be12b3 = 0 +7b4895f65ac772b21c36ece001843d6d3f6fafdf = 0 +aa3d017ed9718d14176e2a4b5845a90672c18ea9 = 0 +aa45504c8a4478112f2a0e6ecb88957e04fda643 = 0 +d1384f0cf990e5c14acc49c46c9c06d3fb919cad = 0 + +[ed829526-b29f-578a-94ee-3fdae66fba6d] +2856fbbb1631523777e58d102b5eb5f328b87f20 = 4096 + +[27aeedcb-f738-516b-a0b8-3211cf1146e5] +06a05a03cafe5908c894d4903ab4fd681d45c774 = 0 +0f1103b4b3662b1375649eebbdebc58f4414da8d = 0 +27dc55b10fb9efa99011e5bbea713633ed45cb48 = 0 +27fe0cb4ecabbf0234b621bd5668a3a746e23089 = 0 +2d350f47f7b622fe54b5d829abbf932e79576fd5 = 0 +3751f3f2335217f8ba83893523a388d4477840e1 = 0 +44096e745c4aff47025bc86517a1c992fb147bb4 = 0 +484f465a950f06289e981bfc7935a43e2d79a4ea = 0 +6160b56094771a420b9a2af57f234ea18a1d062e = 0 +68e0549696c5058156ccb0a8e5e28579f3a31afd = 0 +6b0c39501e46e5fa9e831c5e6024aec5e1e9980a = 0 +7692c05f665bb7ea09d7d5ddec04e6341974a1ab = 0 +81157ce162d53b3f90a9c114d139efcba7a1014a = 0 +a10e4eb15d1344b8d2bb5be6699cd244ab21b39e = 0 +b14c5e2d613e51b1bc9f4997732d0701b9d809c8 = 0 +bc0ad409d3e4d11a325aefb657f8e0dfdc2b3750 = 0 +bd9a331269cb4184e27136a8a9e1de59e0182e4d = 0 +c6995c082d86ca941be35324d56bf6c49e3593af = 0 +d2d7933c5ab05a75081418d2afed61a2aa2a60c4 = 0 +d3d6d9ea5cf2b073dbe93c3338c8d0e1ea9dc33e = 0 +dc3d55be096be1f956c69a0c7b945ee336164e40 = 0 +e83236fe4ac1ddf09447108ef456d7ebd2dd64bf = 0 +fe2917dad0b0b1a7f106f7d1db9f0b8f5f551f92 = 0 + +[16f6c422-f222-508b-b0da-15025777bca7] +0b0f9b3846d742e466baa45375ee2e8a0a64798f = 0 +2192f19e8d8f50747f2b178ebc23bb3105445a98 = 0 +43c5b34b48f9b1eea6b4624a465f0102b6a2e08e = 0 +5254f02e25233eb79c7892fc27f0afcdb6827466 = 0 +613fb08a90804f6bf1d32913e476a6355895b081 = 0 +ac812e565f74f9f18ca63683e97308bbbcc95fe6 = 0 +c5ea5c28d5a80f559cb81f32c88f00b0a4aeea66 = 0 +e9df0969ccf26bab72f9df9bbaf214c638b3c099 = 0 + +[b0e4dd01-7b14-53d8-9b45-175a3e362653] +251de4058209e637f8efe0df5c2cd91ee4f66ad3 = 0 +3c48c1df639fca39d7d52d67a908f7a86180fdfb = 0 +519e70b226715dcc65c5b0097d120f77aac498c1 = 0 +718bda7ad2e784f1079b69d60b787850552041f9 = 0 +ece12bcdfbb0a2010fb59ad045310f68e9ef774a = 0 +f50d6c25e625a8fafec4af834e31ddbf0ee66278 = 0 + +[37834d88-8936-577c-80c9-1066ecf66832] +596e4b33ab9946bbd69985a6b843089e0e676c9a = 0 +6e47e31d97b14ff1b66207df7bee209fbed6d192 = 0 +867f09fc2c36f538c2205781ad25724bd66e235b = 0 +8ae444ba6f6edddb21dc2bfaa2b74dd9b19993f9 = 0 +b700968e0ac9337d9f14bf9e4b8a2dace547351b = 0 + +[f2b01f46-fcfa-551c-844a-d8ac1e96c665] +079fdf92097a49e90e3951e54baa8329fefe9b7f = 0 +0b804a868d43d35053d83af2f2109be61678d05a = 0 +1f813d2d57aa69f9cd768a8b60caa691c0fb9467 = 0 +28916ace3fba62e7cba75e15c8b6422a0961b621 = 0 +2bff0e54d69f5967fc20b063548e5d34ec564916 = 65536 +476921302b0fcfe7688f87ff9e2107669d562d48 = 0 +489ec9bdf77af3f0bd31c8ed120874bddb35df7d = 0 +4f92cfe8417e694beaa1c5c132ee2ff7df0ba949 = 0 +63102317c5127bdc335bc495d14d75dcbcfaf194 = 0 +63836375da8e09032aeb8b0e7087ee241c49c678 = 0 +71060d22a965ac2439abe109edda103013a19281 = 0 +719fc2bb9c8fb6e85759d6e2e8208e34f6a5973a = 0 +773cca23bb1fa1257abf2dc5538158decee7777b = 0 +8fa4a1738f2f1677ba3551ac018d2cdc47c81321 = 0 +943cf897e9ea6b31ab3ec70238ac4931065d365a = 0 +a0aa479a3d86ff225b15f7ed438ecc9a72ddee57 = 0 +a603c07b61741b3c60a19d9626d808508bdf7a35 = 0 +a9f574762eaedd0bdae1bec2eb4d537d99bac191 = 0 +b15036fe00ce404429d50a1a7c7b1c99a54f2017 = 0 +b3aaf19a3a4a6bb759d52d0ee9e94045e6c55829 = 0 +ba0be2d29837131c41654407dce7698b71bacdfb = 0 +bc453b0fb8e8cd36277730defec1faa326f6295b = 0 +d916f8a397ea74a1521ece71b9ae611c70de1a65 = 0 +ec3880e688aeba77869e9df3a9d3f249f8aa3d8b = 0 +ed5ae1e803c42105cedea76409a3426b6d351f2b = 0 +fbbb639338981dd88b705d3abce2f82072f14d13 = 0 +fe8c4a53cde3dcc99f9a2f1f077832d5f2332433 = 0 + +[6038ab10-8711-5258-84ad-4b1120ba62dc] +0a316af3669c085467f3951cb354f8284cc9145e = 0 +31ae3ca5636fa2aa7f8a2e760d2a82b4f35a1b13 = 0 +5ec796831ebbd276f3d9de11f4adfd406c2a7642 = 0 +aeb9c30e4a24f14b12be59c5a751c5ee6d3f8428 = 0 + +[43497bb0-e9f8-5dff-b622-a6beb2ad517b] +22104ce82cdd9ba8e1bef7310e52e3dc18f5beb5 = 0 +39f8dc6d3d4d0dda97603e35b6bf38a36baf5deb = 0 +5711c331b02640ad6e9c7219eda108570eda0ca6 = 0 +df2ddc41ba6b598ee7f296b856d74f759fa1c4e2 = 0 +edac048b32a4ac1795c49b5daf0ed19dce9e3f65 = 0 +f29e45becfd8be3c125c9a19e0244c6836939168 = 0 + +[d5f540fe-1c90-5db3-b776-2e2f362d9394] +5f383dd17709bd8e61324a5370c07e75639cb504 = 0 +99faf1fe796796d06d9f0cb055c3b95d01efb7e7 = 0 +9f2fcc67cb817da80cae810e133afe42cf8a1592 = 0 + +[af85af4c-bcd5-5d23-b03a-a909639aa875] +2f0e2bffa5a89a1c1ed88d48c7b62f0df8f64e69 = 0 +9f6f82fb4551588ef64191e3719bdf1cf3bab71b = 0 +9fba6cd08ba2a77292b3aee37cf4255fcbfe5903 = 0 + +[c4c386cf-5103-5370-be45-f3a111cca3b8] +6a6f61cc9716b0dd6eeb03b78aefde5d5f04c333 = 0 +734501df1453acd9f66c602813b73de764a321d5 = 0 +cbf20744d8cd8fbdd2f8e4dfd40b355f848b703d = 0 +d8374212dc7cd006a490ac596ce7a53f3fa77308 = 0 + +[c1bbb6c3-4cce-5b9f-9408-89c7ea97d7e6] +eab138fb329aed85fd63e4ce373043ac809abee6 = 0 + +[29fbe528-8531-5c35-ac08-d2ebca7928d6] +01a3b85c4ba9d73fe93582e87e9674b9f3c77851 = 0 +16ed2fc0232b77c23701c61a390784e69c87c478 = 0 +28565c94adb55cca190082930aeb6dcf610a1f67 = 0 +5ce69367d610435cf747718bb4a5ad762ded87c0 = 0 +85bc1cbc70f6769c14de9017a20267366595957e = 0 +b195ac29ae55c5a6de69eb4278023b71b3b1876d = 0 + +[df8f2f22-cfef-5733-af3f-96770d497d85] +2b3022214d899bfe59790268535df218de29a91d = 0 +493975c17a1e4a3c46c4b773befb99926e322e1f = 0 +68f466486e245e6130ed7a669284c77c97546ce4 = 0 +92082340590f548cadbde8f0927199251c406186 = 0 +a865410c21a212ccbe299dc1d149ee0f9251a9f9 = 0 +b5a9c1002aac432ac80030f2c9de1b957f5084f1 = 0 +bc39af304bf91ecc48f4eb8cc9f9da250aa1dab7 = 0 +c44453c961515dc82427e284fd7562ef6883abb2 = 0 +e11088228d6d0144697da928ce3e968033eda0e7 = 0 +f9a55977df8e98b597d7442ea809e12f0376d9a7 = 0 + +[82193955-e24f-5292-bf16-6f2c5261a85f] +0c49d9842eb319f0523a58d39d09adc244686a54 = 0 +36369ddb51dfe7b0b197fddc3344cf57c859befd = 0 +5064333236f73ba6d3ed0a8aa379cbbb9f87fafe = 0 +5c0c80c1d605d19e4a6d5748d7ba7b3ffe98b314 = 0 +82318184c4143d223831b8d9effde30bf1c114fe = 0 +ab5119ddf1272254b507c428195640262ae162ab = 0 +f04b314a293511a441e3792d2cf0210d582c0189 = 0 + +[c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13] +00c4bf4b87ce9235ec462303ff6f3e3c8da14ff1 = 0 +0be16a91ea654cf3155957baa8ba75c61fee78b5 = 0 +141a80287abcfca62f2cbe1eecd4c83c65f84855 = 0 +1bf584719be5f495bca243e57a7e892dbfd26fdd = 0 +215152263a6eb7aa5232054c6710760f291e22d9 = 0 +227eb636039a68b1d888cf57e9f49a55409e7637 = 0 +2ba4b944682578f54796e87644b88f08a1a7cdf8 = 0 +476e1d7c60f99468d24d1344d298daf7a5c9e0f3 = 0 +5a16bb1dc2297e5e369f8375ab85685746011a6e = 0 +5a60bd7852e0f6a3fd7bf14d7d6b2d445038eab5 = 0 +6223de6002c18bac284e09b4a1b02f5598045b0f = 0 +6affbb7535b3f763dbb8307456daa9976412ded7 = 0 +6cd9ffd67a22631aa294842ae4c68c346fd38828 = 0 +8cade0a414cc0131e28d54864aadb36bab732c4c = 0 +94ee319f0f04e1a8b7e334a4d400a6146b235599 = 0 +aa1ee95eb6bde721195808b8ff9ef8820fa9ed19 = 0 +aaed5685886d3c1b15ee3df70bf259363a1c9167 = 0 +b1aae45aa8dbb2c84bf073ef2b4c19a43bc95ccd = 0 +d2ad83d0dead18c852e8d2968fc7a87ed822b147 = 0 +da189d88f8af70417337351c969861adb42cf75d = 0 +db6e87a2c151bb3d23edaae809148307255c0259 = 0 +e883e020d86ea8faea60e7a22b387f3297961337 = 0 +ebc8157363d0566288e48471029002f24958d614 = 0 +ecac0a80ae0e1e2560766df5c7963158d7ff8690 = 0 +fe5e5d790548a23a222cf0451ede8630464af1e3 = 0 + +[a56d74ad-8193-5df7-a216-96cccc48f97a] +06ba29dd6bad583101ff5e830985c7d96bf861c6 = 0 +f8da5a5365593ca877b73f241b38ce45641a26f0 = 0 + +[d50d9232-525f-5d35-8703-6ae49672cafe] +2d4d3ced56eb345a890e8083c44b1b4ca3a2d724 = 0 +38df34da5af0d341aee2495cd53a7701e448f9f0 = 0 +54e9a90bd5b5737358a327fda70abc37809d7161 = 0 +5f4188289d0aa6b782ad6ab94720198edaab0d46 = 0 +6a28cdb3757463f83d36fec5d01ec0cf1189d3e0 = 0 +957925524e3fb67d20a28277673ea95e7b62e731 = 0 +9d1febd0ad911e25706ee728aa3e425b14feb816 = 0 +9e37c18a03cb438729fbaaf3eedf564d4f84a2a6 = 0 +a493c5470820e86a1ecec8cbfcb2298b733112f7 = 0 +e6ebe0b3ce77b6911b42714ad2dbd7ba14a40833 = 0 +f9eb111954459c7fafb337524c5aa8e30d1e56dc = 0 + +[35d56a6d-6727-516e-9b7e-96cab7480cce] +056898d1a3f1a2f2d3f0a603e51d53243820947f = 0 +1b7074c2b78f46c1a47b6b9334aee9a70ebf5797 = 0 +29028abbe7503ad456e4f9a059f1ccfa7f203669 = 0 +4714b648b6aa142df6af16a9cc0782f31b01bb85 = 0 +7f1ea6ec4dae352404b929582edf9909e1653fb6 = 0 +ffad5891682aaead26b676576e49c50acb4cd986 = 0 + +[60da9cfa-42fa-5d4e-b2f8-76785adb806a] +24f6a9b133e9a10892fae182ebd0e92d06d43181 = 0 +29e76996a621632b998278b87d337ef987e5ed7f = 0 +44617a08e4287b26c095202828bbe3f3cd6aacae = 0 +57c46f97042f2b3431b00713b27cdaae14b1abfe = 0 +6e49c097021cf7b3c6dfbb7b592ace1e048e1970 = 0 +b6dd051c7a4ac41ae858758bd4cf94769175367e = 0 +c23bdfc89bac830238ae185496a61c8c8d8a53bd = 0 +d4bbaa02d524a8ac36eb772d8b51bdce7e941701 = 0 +d8dcfc558d9bd79d8e739a08023d5f39c1da870b = 0 +db3eeb25f1685e92fcefa8549c68f3d71aec0282 = 0 +e72feed4e5d12d8a32c6244dee270c46f9c89652 = 4 + +[ea8e919c-243c-51af-8825-aaa63cd721ce] +08bfbf1be1967066c81c9c95c337c600fbae61af = 2097152 +0e31e9d265eede8cafc9f0c04e928acf5b0fa4cf = 2097152 +14aaef7aeb792a4c8279d2877db6b1d6e534194b = 2097152 +285faef2e8a68d495c7368247b57da97ae0baf3b = 2097152 +28702f45c98522baaa000b0ddefa77acff99744d = 2097152 +337a8f78f450c6a0a1dc50ed1a43eca00bc558e7 = 2097152 +4eeff02a744c56bb2bb6b5a421b17fd4b98ee264 = 2097152 +5b22374dbfd3aa0ecff8ffcb74b50b28becc1e76 = 2097152 +62e0924400f8fdd90f1a974dff3da31c7d39dad0 = 2097152 +6de03f4ed96d2e58e794cbe8d58d5c86e3637b76 = 2097152 +6fc545579834a7caf306d47fc3608ce578b95f3e = 2097152 +79bcc3fd79c1a6cc8678c39b74d721097c5cb2b0 = 2097152 +7a57fd67c600f2349ee954df83c64dbaccd92049 = 2097152 +90144b2c9e6dd41582901ca0b311215b6bfb3f10 = 2097152 +939e8f571b7d205371c0e3cb65cf28d7964a16c6 = 2097152 +d44d9d87752e03be12aa6837a1141f5a1377b928 = 2097152 +e58b26618efcdc716ab5b44650c1344da7c524a2 = 2097152 +f091ad7e2db37fee4eed6b0c84659ed65dc431aa = 2097152 + +[fdea26ae-647d-5447-a871-4b548cad5224] +61c4a9369d234857a1b9766b980423eacc133e63 = 0 +a4a12d9ea34e43ba66e14d8cecc71b1019aac65d = 0 +b94e44015a70204f65400a9ffedb77271b4010ef = 0 + +[b9d75638-96e3-5676-bdf0-e9c958f63a55] +05a6da23847dac082879496be7a22cad1d4db56d = 0 +2f6dade57bff342c0cad17ebdc61119520c2b13c = 32768 +6be9e2a9853b4249b915838772f6f265dd47169f = 32768 +98d5277c8fd66521127baed70a0ba955955d1e65 = 32768 +9ce64b99c8c52b7665ea203c5de406527ee94b95 = 0 +a46067a2c8a17ee9ad3417441308d2f8ac74c6af = 32768 +d0a70614aa85fcfeb3ed8c84957e4fc9203d0d3b = 32768 + +[3e6341c9-01f6-5312-b33f-f8894a2e817a] +414f0abbcbb4f970ba8c01435dae08e1f90b3975 = 0 +6638284189c1646ac94217c4c4fc0c3ee8e49b12 = 0 +9a3bacf92ca1f22257141c386dced64afefe40f7 = 0 +c9dcd2eb090d69ec40790f19798c5fef2aba2616 = 0 +d2436d8c368ab501d05353ab22cea923acc6fba6 = 0 + +[99927692-7a4b-549e-8702-55f97b263da0] +94176b6d650d2a1c9094520c9d6122c3387ca029 = 0 +dc40164c1fcd044f46ba076368ada5d26b32b1d5 = 0 + +[251f48c7-f5a4-5bc8-b6b6-ff4797c45649] +91254176c298844ace3ec39a454497531e21aa9a = 33554432 + +[c35d69d1-b747-5018-a192-25bc5e63c83d] +8c27846a5eaaa3981d39116d1cf010a8e5a8e624 = 0 + +[fc66bc1b-447b-53fc-8f09-bc9cfb0b0c10] +3418c36d9ef63eef085155f406eb6655c8e67924 = 0 + +[877fce51-0832-5d5d-b749-dff746d2f7eb] +1137b18bf81129d4b46d26515b777f3a53785b5e = 0 +16d84438d5475ce7d018ff4a4f90e53ab81e12ae = 0 +24f5357ad2b4047d6503d3f42575debb32520b20 = 0 +2bfd01bf000e6e76f12ddd955106f5229b690311 = 0 +4b3d400ff3606ff71bfe60cdbe50b21e8ae7f2e6 = 0 +58001cfa588dad8489f7f5968e15d86779c4f448 = 0 +680976c8b9fa394a2b603b1b9b6f295d6add0fbf = 0 +ce61022be7f00c092dbdb66d725390356b608d30 = 0 + +[0aa819cd-b072-5ff4-a722-6bc24af294d9] +1123351beaba878eaf45cbc94a0ad1149273b1ef = 0 +238ca4ff379a5da36a864c022c652c5189150a79 = 0 +2610faaaeea7cd92c38c29221101727445f7ab25 = 0 +2e0307f9844b7a9d63372a683ead34d817a387d0 = 4 +3f15c075bdce52661f28b104d97dc493a0654ccd = 0 +470b5cf34318eba4265ef032a961f3533efde526 = 0 +5cdf8d9670c6a383146c7c54ceab2f23fad2ba70 = 0 +5d08685129e615592b284ebfb857252faed39317 = 0 +6a370c2f33aec8b4555f29e5166e0f7216e45778 = 0 +73d26f5b3ce4f54066d87484190d1e42e3d23465 = 0 +a227bc47d3a70bd533e4a8922df8c547a028aba4 = 0 +ba8ee892bbfbcba8d8ccfec4072254c2d1c47b76 = 0 +dc4bee41d039a93e9281c598232ff3c1cf43243e = 0 + +[06e20410-f094-55a1-8b95-30db52a31525] +29e6fc3a186aaf7eeb086a5be3b4929990374a5c = 0 + +[1b1ac587-b5be-5dfb-974d-c9dc89f4aca5] +1501160b3eec69fe07ecff31ed65e2a1624e6ce1 = 0 +2234bbe8fbd37892084fd46be3e91644d15c13fc = 0 +4a2688fb9f0392b91fdeb91b9c0c9747d77d0cbb = 0 +531f751beb9c2a6850a007d876e171108b1b7ba0 = 0 +66905381730e47e890df764176897acf6ece40f6 = 0 + +[22bb73d7-edb2-5785-ba1e-7d60d6824784] +03ed6924caee3499fa10726da1f635b05f73a3a7 = 0 +30553b0bb816fb46d11e6842047fe5b0bd62273c = 0 +38a62a3fed28555793d34ee24069d62e919fb33d = 0 +75733703f2af3d043a2bf199565cb5fddb7de55f = 0 +8d1407ac2c5e6047de2aed7a3fa53c8b165cae82 = 0 +8f26601ae8802778e81f2d11b50d0d13c289f493 = 0 +922e0cdab08335ff0cbfa1ce85d02774aca8fc0b = 0 +a72c3a48865194b09942305add64aa7fa2a92c8c = 0 +a85235e47e913d72a0a6c82fa2da8f4592bcb834 = 0 +b87f141cb55bf70460519796b38927326ab4bf04 = 0 +cc50cd3068d224ecff888e4afc9ab059655c3a67 = 0 +e556259c38b77502ac65eba19db2be49a7bf0fb5 = 0 +e679fa558eaf2d3ed22228f8481ccf2384061f8b = 0 +f1ae7267bb27bf923ee027b45035c03b3ea176f3 = 0 +f234d037f8e1952ac82f39db940177c76f61e90e = 0 +f819a1e735a69410223bf4ee4e819a9a42fa0c8f = 0 + +[88634af6-177f-5301-88b8-7819386cfa38] +4a27e6e8971552ad26e4236a7cc4d4c2a54cda9f = 33554432 +a290359e032ef05948817ecac6331d0894a0ca15 = 33554432 + +[bd7594eb-a658-542f-9e75-4c4d8908c167] +045aaad4febb0f43fd62c66ebfbaa1e1491644cb = 0 +405e2a5588737f902d18e742caceb5df5dddf74a = 0 +4281a2f56ea644c6632c83c5fb472011f74197a3 = 0 +5ce80a836d2b70093566937bcacd18a04a21a3fe = 0 +62b13b455d16cb540f0f3d7bf913f875c884d350 = 0 +7f24006d83dfd990e1913b2a48019398989a1134 = 0 +b6043cd9bab7e5996b1bf128cb348bdac26e8a56 = 0 +e5da0ae75a35ac1ebf20715bf60a5a219244c7c8 = 0 +f4c300d7280dcf83bdd38f9b930d5c8e7c610dd3 = 0 + +[535c7bfe-2023-5c1d-b712-654ef9d93a38] +4172e07c70ec59023425dc8361016dbc69f0bd42 = 0 +98207060bad4835b8dadc3e3b958e4f7a68548ba = 0 +d0e27bce0a6b240cb3335f74d912ab3abe3134b0 = 0 + +[315b5843-54e0-5281-b073-3e322808fa17] +a7a430eb932b712338fdd4e45b6c024d991c2cc3 = 0 + +[03bc5d91-8e1a-555a-857b-eaff090ecb7c] +2fdd9dd1aff12a04c5df96c5297546f1d414931f = 0 +8308836e90bfcc067f1f6b076c350a11bfcd4b44 = 0 +d3e97274f8706eca8d1ce3c0f343d0d7a913c68c = 0 + +[1fb05d12-6c47-528b-bee1-deadc63ff0b4] +8ee60b23769ea857355675a4d24c3a7b3afdaaa5 = 0 + +[ca2212eb-e997-5e02-8188-6a86c81ae544] +3829534fc5bb6ffe95ed2009be4965a0f6c0e04f = 0 + +[65e68595-3a03-5ff5-a6a2-f05fa774f32e] +7193495c33ebdc1066a43b3dacc62edae174eacc = 0 + +[3646fa90-6ef7-5e7e-9f22-8aca16db6324] +36e79be0a95f05fe4cfee976ecef5d68fd42915e = 0 +4d29bb828f624e3a2c06d2a836edd8bdbfcda8fa = 0 +536ae0e69636d348f71acca8908a66986d12108f = 0 +575fb8b3231674cf464ac3781c4c4445aff78931 = 0 +6bfea3156cf3b8cf80f83e0f09fc059584ad7cc3 = 0 +95ee7137d368e59de51be5009d5bb4e1f043b077 = 0 +ac27ecbcb0d2a69ba34000de6959100ba75f2f90 = 0 +b62ad32ae96c83489a7880b25e6aa62c8fdfe571 = 0 +ca924a85bc245a00d944e95093fe0d10b58e077d = 0 +ce048508b9513b69bb35f0bdde37ff62f8bdafc0 = 0 +d182cf4870d0281502e35351f617121f02634ca3 = 0 +ebf176a519fb0da6dfba61e3bfd398147ad7d7b2 = 0 + +[6e75b9c4-186b-50bd-896f-2d2496a4843e] +024fff6a6ab9b49a006e4551366a950c4bab70f7 = 0 +28b7919d3a296304ffcd7117ff96d18acfb73e05 = 0 +31908cc6346fffdb95265d74303fedf08838456a = 0 +513706276351bddd4b7c217917d9fe5432f81555 = 0 +5a013c628d8c9daf4ab7070c6517b3bec7b8060e = 0 +643c6071591a79d1c363f0ef47bf5846b0acfaaa = 0 +829876c272656620984d53f40b4ab7de8c83b6ed = 0 +910593e5b0ef9fcd1357ebb4f76a85febd012e55 = 0 +d29cd6f4d6fa1653f78178cab6308d06664c7c8d = 0 +d71f0385bf1c126d35eb63696193d06c5147bd53 = 0 +f87d979d18ca54be58bff95a565a5e08992add32 = 0 + +[d2ef9438-c967-53ab-8060-373fdd9e13eb] +2f22bd1fe4cc2e0b32e297bd42c11ca1d5f4e4cc = 0 +8fe241b88068b2d5b4fa38591f02ba906c00385f = 0 + +[fd66a1d0-90d3-555d-a35d-c122df06773c] +2c4fce3d5c4cd16fb3c889f81b5f9e826132888f = 0 +ed8aba40c15efa0b818c49dcf25fc4b8045a9c3a = 0 + +[c6a3b8ac-c48a-53d6-aa6b-e7fb6d92f317] +20bdc2696b638f2b4617cce2bf90ea37de551285 = 0 +2b9493955b5aa285dab3daf2f938a473450bf714 = 0 +4de7b71a4788c884e886356a370dbe46ea18ac6c = 0 +92bb7da758b34327d32b4285dc3114d6f52d5cab = 0 +a367107eeef79386e4810c1b50994bbea421868b = 0 +ac812f72a260aacd19f1785aa1eb39857b2d0647 = 0 + +[8e049039-38e8-557d-ae3a-bc521ccf6204] +0c83b52cd93b9aea3efa6e68e22b55c8cd8a2ec4 = 0 +214a04015dc6954836e0fb5093d1d9c707db0d1b = 0 + +[8b8db58a-4d47-5b48-8778-177fc09af6f5] +14e76b17b25fe27ec442e27ecb304130058d5e1c = 0 + +[169818f4-1a3d-53bf-95b3-11177825b1e3] +75d52ff725cdc8f0c2638192115487aa81e67c2c = 0 +e5ca9c745d394dda426971e0b0d5c1fd11126cca = 0 + +[f9b4ff27-07dc-5514-a2b4-022623d798a0] +26e447ffe1914c95348f5647f3b18e80e81d7c66 = 0 +86f9920fba3a8a869a5a964f4d53a8861063fbf2 = 0 + +[0dbe55a1-025c-5c9b-ab45-55492d058cfb] +8dfddfca661ef650e57b79093316417c17f3a604 = 0 +b4cdb4720dc3adc1d0d5a8b5a9738fd942a8dce1 = 0 + +[7cc7f4f1-595a-5736-8088-15743c29ce5e] +0494b275efe9133cf85945e3e08e9f25b31a1ed0 = 0 +37e2cafbd2473e097caba66880dfec23083bd960 = 0 +883f516a8cac4ce2a69f14f23652011036f8ed55 = 0 + +[8c675823-c5d5-50f8-acb2-29aff48dfc1d] +04e230201060357cdce24aaea4246775f403884e = 0 +a399adf1105e0db2c844c8aa859c9de40bb66aad = 33554436 + +[5d0f9de7-4c7f-54f5-bec2-484e8c04014e] +2fc2f7577e9cbbe959b546ba82b58f2681b4f6d8 = 0 +625f0767b64d6e4a7966042e7882b80e0b215e1e = 0 +76819bbc468c0571a0ffac08d4f87edaf6fc442a = 0 +82f2bdc78a0a95200531c8b7abc3af6f76d92cc6 = 0 +a87144762d037bb28fe05be0c242f4f77965061f = 0 +b3262b29b4440478c3176ec5f3a43e5bded28b28 = 0 +e9f5ba6dddc213ce308e6f5db496e06029dafa60 = 0 +fc17544bf90f97b8262d2799bfdf4f3931c55900 = 0 + +[b5a060af-e443-5a18-9643-c6d2e16dbd83] +9c7638ccdbbc47d160acdf9f02334a9ea89aed05 = 0 + +[cead932d-4c71-518b-b238-3d6b730c17f5] +277136c67374bd74f54dc29a435d7722bcbf278a = 0 +35118f1470b43efc3fddb6c6280ba3b935186e2e = 0 +5a18e703f40476ae80e3eadc2fd214915cd1807a = 0 +5a3a58fc90144790b5ed9eb7970086056b08b05b = 0 +b367e86255b36db76459a197205d68332e6eebef = 0 +c162941b134c75bbca1cf84e2eebcef67cf9f3dc = 0 +c91b58ec8927f6af116bfd7a99cc4185b24bfaa4 = 0 +e6c68600cddaca859e0f341d63b2e48dad272ba4 = 0 +f4406462a64b892ad5ee8847a8849fb12c6cebb8 = 0 +f7f4745b4865487483655c7c708c3254ed42d90d = 0 +f9433f11de2f9ec67c65fc03f72fe5226bc6e490 = 0 +fb2f7dc9c2948d8c0678b48c07d4305284a0b944 = 0 +fc3e477e6fcf7e94d1cc95856e4853c73250d53c = 0 + +[d96c52c7-d281-5098-b696-bf3d449cf8dc] +81fbaf9f8a9634d447f1d6fb0abb1727df5a668d = 0 +893c7c958fe86f4dad0b9b85eda06c7965b08b94 = 0 + +[8e980c4a-a4fe-5da2-b3a7-4b4b0353a2f4] +087e3aab07b695458a4af85ef26fa3cc1f8cd89c = 0 +373743d7b01704f76bb16cc2bc637457cad93096 = 0 +47b998e07f83a782c06287a93b98f0592861ea0f = 0 +6085748f1da68bee2a9b5f7353c25e35eb6637d3 = 0 +dc3503cadc484eca1902252a4460f3bb35974546 = 0 +f787fd9ae3787209b114484d842090ed3a26667c = 0 + +[bd728e11-17d4-5679-9a00-f24958f87a1c] +35396cff0d5ddc7c7e482fe9fdd7b3d4e0f88fad = 0 +3743590ab9158d4f0cc80f3a27780973fea247e6 = 0 + +[1277b4bf-5013-50f5-be3d-901d8477a67a] +0b08011ee15d5cfb166327787b964e11404fdce7 = 0 +8302ca5207287789d8347825d18de3885a91877d = 0 +a0c6558ea3df80626785d321794e0b7731466c70 = 0 + +[f786175c-7be2-5c6f-a66a-14694b1fea27] +65cd27418d65e855034ea1dc6ec00795139e6f46 = 0 +84341371762bbd28a60d2fcaa8978408193f7914 = 0 +d0c825528c8193797b0570ee66e1c10d8549834d = 0 +db82893d08817fb97982088292f391758fa7625f = 0 +faff857a34bcf2fcaf835ef6949d0c8fd6735b6d = 0 + +[9966252f-7483-59e3-9a4c-8607a6b2a5fe] +188ede139519b6728362a198d2b06fdc6beea4c2 = 0 +b456bb073af22cb697914bb381d6d7eb54869915 = 0 +ba6a7e1bcf723973bfa12a06dccc8d6b4f4d3373 = 0 +ee92c78a7567c28c440cd8ed3ae531ba4348229a = 0 + +[fa774e86-460a-546b-b195-92e8193e3324] +55a4506eef75c4c011dacb47d53ddc88c75b4888 = 0 +bc3fa2d7c061686684f6a228f0be8ca2a0adbd19 = 0 +d2c33fe29d05a577464f094159d01940815e543e = 0 + +[992d4aef-0814-514b-bc4d-f2e9a6c4116f] +11a6134821f8f0b55a8d8d35d763d75ca5b78236 = 0 +1bfbd515dee783eee49bd99b68a44733b22b92c2 = 0 +319ccfcc1135b895ced2d7db8ef013714304bf34 = 0 +39b9288ad7e7d5786c04071a35f32a01d19bf2a7 = 0 +7457f08320a026b538e6ec2cc8094a84cf386865 = 0 +7e0bd85c36e87add18c5c3dfa3470cf34cdef317 = 0 +8d5c7cbb4090b777ab021a361a3b59527393624f = 0 +8e5056a09403ee73305b61627290748374ddbd45 = 0 +e08c0b01a21ff5c4e75a3436086c6d3da7f85f9f = 0 + +[58fbc1cd-eba3-55ed-85b2-f929de2cb270] +ee792078f6a210e5d579f2d829d7406af825f906 = 0 + +[ce2a0656-6bed-5c64-9e01-e7b1ac833b80] +a6a8a5fd2ad336d7b932e20d493b0c35f6016664 = 0 + +[76ffa3fe-65f7-5442-ba3d-1cbb0e9351a7] +dbeafcdd0eda97e17d5fec2d03c0566e8d67bd87 = 0 + +[6303bc30-01ab-52eb-8b10-60e47555a8d1] +9257e5351f5779eb885922bbb1c5abd36348a5ae = 33554432 +b2804f4e5aa453973d8a96d0d488c84e29d58b65 = 33554432 + +[73760f76-fbc4-59ce-8f25-708e95d2df96] +150c9eb45fc77a2606d38491a8b67967aed013e1 = 0 +a97a950ceeb054d833a4aaed6b0aad3099b28772 = 0 +d372267044c696df5a54c94e80acde176e17a220 = 0 + +[1d21c727-5350-5715-a0f1-d07632c10ec8] +15d70dda19d3d9a9a44b5430c51a8b2e3035dc9e = 0 +300009c3d8b8da6e12235629254403b726eceb59 = 0 + +[428bdadb-6287-5aa5-874b-9969638295fd] +0ac40a8004b7a295d240f4af276c1ae176370323 = 0 +125333d1693de41c1dd8f3911a52529e8435bf4f = 0 +155814371666e2c030654b4974e15195cdf1f2c7 = 0 +1f3cf80245f0a692193eea3c850dab07c32abe9c = 0 +2153535b95dffb43c424923d471572a34e88bda1 = 0 +2bfc0bfc82fc5413023e45ae1de1cb9ab762583f = 0 +320778928dfa0afbbc096759a5b3e9c6f727d165 = 0 +65283644adf66caa94450fb3ad9928994d776176 = 0 +6eb67fcbfe0add3e641e55f8d7057fdb68768f73 = 33554432 +749a07c38d4947814dfa3d0843b890c8b606144d = 0 +7e688575206f212eecd0e7f2673f9124a0725442 = 0 +9eee82a7515922beb13c5efb0a060ca5cbf59027 = 0 +af25eaf5c8f1fbc02dd1a3fabc2c89447b0fa079 = 0 +b1bad08b8a1e0af92a4ad4077a1a0851ca342160 = 0 +c8d9567bd5a92f091a11abaac458c7505635dcce = 0 +cbd775e35a445e497d3b9157977b971fbfc5d846 = 0 +d0e2abe932d0adfb96fdaddb4ff7cf82301ec02b = 0 +d1cfd1d2891d389bd683346334bb14981b5c5cad = 0 +e545bfb42f1320403c559b2d762d6e3592f3d5d9 = 0 +ee859c7efb148e1c90c43e3bd6a7f1fe7ab5075a = 0 +f4dfae54fc14c19cda3f0d99e9ab6800af997cbd = 0 + +[1e9eda5a-45f8-5396-91c2-7e7b4c9834d4] +a95655c5260291ec8c730bee69048ce4793608e0 = 0 + +[053f045d-5466-53fd-b400-a066f88fe02a] +660d125003405a49c20ebf27f9916949c7a55a3b = 0 +719e7aa2b187e7565326dfa6fa4032cf958e4c07 = 0 +e6bbe68143d753a0be7e61c50acabc02b413b0d1 = 0 + +[435f3bbf-55e0-5b39-8871-97c6cb0d7309] +51305c92d3e87379861881b6d56de38bc4a4770a = 0 +d95969f86d3e726e6f5a372dafcbc917a93e385a = 0 + +[b1092613-729b-527c-9001-14cc232d79bf] +0f75cfe65c955c468b2555bf3640caaebc642a5d = 0 +319c68718f0f38cd7de3821bb851c0f2632de0a0 = 0 +32d5a252e54e05d7cf9dbd8af7039e0d523237bf = 0 +4c7e008f9097d3b9a843b82918bb582e18950511 = 0 +7712f67b12711d5976d8e0abcc321cf813c89070 = 0 +790764d9c20e7729da4b6ee608474af9dec804c3 = 0 +7fcbc237eed6df480cea8d4752690bca2cffc7ab = 0 +8bc8148a2d91cb9ca62ea2c28be3425f6c404756 = 0 +a116f4861ffd403ee62f2c75875931de88d9f083 = 0 +c0b1638d9f986ead4b3dac4649db76d6d901c177 = 0 +ec4aca0eb76990abb9a7f294a0618830d2a93895 = 0 +f971b5b7a1fd2b621d4507c658f8eabdb25141ea = 0 + +[699a6c99-e7fa-54fc-8d76-47d257e15c1d] +0ca18aae24815955ec1660cb08797b8d27560149 = 0 +149262d35fb0222ae39bcc36fce3b3748941d979 = 0 +176c8ae9ea16fe8655d47d3d55b1c01fb3bdcd3c = 0 +21a075bded7cf5cf49e5102d02c1dd13cc1ed995 = 0 +41df840aa37039d358b14b618812b9456bfc567f = 0 +6457c9af7b791dcaaac1e1539f7dc27347e98cb7 = 0 +e2c5572557a5f4b995ce6c29547e4589a2d4d536 = 0 +f00aac7d2202ad888828b45fc23eab236885a8f9 = 0 + +[47aef6b3-ad0c-573a-a1e2-d07658019622] +37b219bd8c2a794dae931a7877b40adeb600286d = 0 +5591c3415831fa02d0fad9e2b9f2b989cb717db4 = 0 +97a056ae26656f848aa4f7cde754c3338e90d9e8 = 0 +b8036815b5a5e0ee310430a309d870c272cdb506 = 0 + +[e28c723f-7d43-5a39-80a5-dd45f382d5f2] +48ec678b34ca912b71a6cfc36402043c152d8683 = 0 +71645586c9c1f82c60ea415ed9fa90575d8b83f2 = 0 +753a74faa605fef22449b3f35bbc0f5024e3cdc3 = 0 + +[e094c991-5a90-5477-8896-c1e4c9552a1a] +02abbfd1772131c378f944c5c5c14e10020661eb = 0 +46ed41bb347ec9df43604de840376eb84464489d = 0 +aa6426f512fb826530be862f12ef6ac9aeb91b14 = 0 + +[77f5812f-bd1f-5f6e-9b72-07b28d8bbbc3] +4c040ec5d6a963d4c65e9428e82ecefb77eaa8dd = 0 +df8ad7ec982e48f91e56cea946d910037b83c50a = 0 +e6b3b87cb9f6804e3c2070e72a741ebb8529d859 = 0 + +[fc659fc5-75a3-5475-a2ea-3da92c065361] +1d37b5feb53fa39d6dd40dc91139b11005e4c234 = 0 +9f247e64a30d4e1ccaaf3a6f2e1ffb02a62c9e01 = 0 + +[d2185075-3040-5c42-a634-a12f38dbd79b] +2540a46cb4878ec3718fabb4940c13e532c9c371 = 0 +2a36c0ddc881b37711d7a6bee834c801f26d00c4 = 0 +6542fc7b35ade0d281011425ee0843f374e5a728 = 0 +66442297d421fa67e908077f5d0560746502bc99 = 0 +9b85a8041eb53c77c0796fdcf29de1fc5e991b0e = 0 + +[bdb4541e-a990-5e30-b34f-5f04038aa20d] +a8191225799beaace0355bc97eca0c0cd1e9abef = 0 +bec6386b5ae426414af8fd63d0fb2e03e760e1f7 = 0 + +[19bc9d3f-2e19-511f-8328-e05a4e11f4db] +1dab1308dbddc4aeb6ab75f546407cc4368c4896 = 0 +4ea0a77bc708b0f3df009437bdf21a3ded7c3d4f = 0 +5da46de9e51af2d0de1a4fc57ef57f76f3a37e39 = 0 +5dc60866adce5730841970f87e61d5abb1fe7885 = 0 +5e32edc83e0a0235815b5da32351b2866d2b8c97 = 0 +77c1be8145968c8cb95e6e8e42376c9d7ae04298 = 0 +89709e945780ad2d55484e3b6efef1000379316c = 0 +a267e9e44f7d38559f144b36fe2a231d8540d68e = 0 +a7dd31b42828e28bad5bba60f490bcbb416c200d = 0 +ac8569897a07bff83ba21fe817b47dd50ea02f72 = 0 +b8c47958b57be5439ed474f1857a900ede455f19 = 0 +f9734490a2cdac5607b2d931e8572abb82d73fb3 = 0 + +[102930c3-cf33-599f-b3b1-9a29a5acab30] +694b36655fac65e6a02389fa8571dd644305d203 = 0 +8ed1623b1a49ead6c388755bbed70004bbbc35e0 = 0 +987b83a4d2cb612021de4cbf84290f5baf1112a1 = 0 +e83f1621d95f854ac9d16a46bd9bbd85799322cc = 0 + +[84343b55-15e5-57ce-a0f1-bacd12ca4aae] +166f569ed25afb1fdffb71a060ff2451bf58fa87 = 0 + +[59d4ed8c-697a-5b28-a4c7-fe95c22820f9] +52da26f0b87dade2ef4865847711bd5d7e0dac60 = 0 +72c6341b5b3ac37a419635a2311b3b99c9afde01 = 0 +79f0ae8e319ca5dbfb530fe2ec99ca23160540e4 = 0 +ed7c803e7a3858b34dfa8e5a359143eb6236be77 = 0 + +[aa65fe97-06da-5843-b5b1-d5d13cad87d2] +0e245f3d79955a0ca1cc2d8b403da061a6d06f51 = 0 +59f7506a43118469d07dbed1b715b59930fb02eb = 0 +88a912445617cbf06f4ac6ae2e5d72ac1f068130 = 0 +a0ef55d9b4793ea0b440b2d3290d52d05678b510 = 0 +ed12a700893f650dab8c7f1cbeb991861d221029 = 0 + +[73a40cab-d838-598c-9e4f-fbeedd26c289] +475c6511caf87570b78d233ab1f419b00ba011b5 = 0 + +[ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4] +28c1860132474f470399f0b1515aea5f3ed66353 = 0 +29d3c0ad63c6b8ad781095153b44f64059c5f709 = 0 +4d9b245aedd3ca142c6ce8b79c41146bedc42521 = 0 +747f5299974ef4e96c96fed2bd78ed3923309f90 = 0 +92776cab9e4c9edd7cb7131880bb1ab503d2d5c3 = 0 +bfbaeaf246ffe2ae4e684844c78eb971c36e1519 = 0 + +[16f501b2-0501-55e6-a1df-7f221b4b01c3] +4846e6a65f1f3af626a373c6d160ebc44ee663a0 = 0 +788925256096d500873dddbbb599a1ebca577b2c = 0 +8f301c0cc61cb6540b166a776f6cb900711176d0 = 0 +df1837e56a5f5f4efe5d78e7b638db5d7456005c = 0 +f1d269ac0e827667ade789160e6823840f0b1ed8 = 0 + +[b9f7093f-33b8-56cc-b235-8e85c8fdf87d] +7923d6bbbe46801c7dea086687b971e68a75536b = 0 + +[00bf1f32-23ad-54cc-bf6e-3216db8a43a2] +b2f0275e2ac03ad15d1cc4286588275b26a08f59 = 0 +d2f33b803cadc534be4259319e76f8b7d77a2c5a = 0 + +[b42f4170-51a6-56fa-baee-02fb57ff6893] +88b48b4a5bafeba37b46248274d8065c4705e7eb = 0 + +[a2af1166-a08f-5f64-846c-94a0d3cef48c] +058c98b6d84c001e0b638eeac49cb8e21492285b = 0 +089bac6693ebae82ada460b76ceb82c088c3e29f = 0 +3e666ecbc2d835a2f2d9ac80b93edb538ef7e907 = 0 +43fc48346355cc61f7ff550625edfe5a7a5cdf00 = 0 +593642f67948bc6daec17c55cf6480e64e67800a = 0 +bf1e0f40b7581bff75223dbf45a89a32a8064eaf = 0 +daf91266f9219402e4d4a026d624d3ab445711b9 = 0 +ef81d90faa962b756624df33ff736fca120dc8c8 = 0 +f1d03f88da605d1f820ff47dda0b7fc5485e21c2 = 0 + +[562c1548-17b8-5b69-83cf-d8aebec229f5] +92bf4221641cf1c62a8227748791a6fb4c517bf1 = 0 +a1abb7eb89607666b41a278f659ad17509cb8cb9 = 0 + +[07e3d4f1-5dc2-5a3a-9c19-e1965b76eff9] +126ed40710badcc71d23bdf12ce9b25e1d915215 = 0 +46fbd7434482e1969c6abfbef674422d95e7c61d = 0 +48fa9acc07333d48a4a8848b2530a68d8612f3cd = 0 +8d3c3a0bcc981810a5e7f40901e736020f98892c = 0 +fad0dde74af1295e4143fd02a9f5e67774e71b95 = 0 + +[e3819d11-95af-5eea-9727-70c091663a01] +194b79528a51c7a59df7d9e604cd3306e79135b5 = 0 +d4bd3519a0682f7a81ae3b06e044eb1d9ed6d7e0 = 0 + +[402eba18-653d-57be-950a-da680ed1f2db] +10105a0336196d53bd2e7a4d3b0025254406ae76 = 0 +4de4071f2b12b548bd7cffee28192e34a4e5a641 = 0 +ae74a50aaae3939f652f6b2500abcbacd05ea690 = 0 + +[07f61e4b-e00e-54c5-aa15-eb17a33f11b2] +29a2a0ff2c81dbeb2f63a2bb3fc23710566041c1 = 0 + +[bafbe729-afc6-5148-bb4f-226bf3d46895] +2adf23c73473d068eda92b30d92b02df39123bb4 = 0 +4d82e68efda00cd5ad681260e9b702083fdd1b18 = 0 +cdbae3d2f1ed76165deb1a9efb5912355ddcb486 = 0 + +[dae93c7a-ba2a-5c0c-908e-f82c8dca6b71] +3cae52210d39e9a41fbc26ce08d8a7a72733ca71 = 0 + +[cee8b4bc-0221-51ea-99fd-cd13b9c49dcc] +b8f33e40dbc8fca0d9700f01119559b980fa8b5a = 0 + +[ca6142a6-a6a7-57f5-b674-4a8484b22e92] +a2885a0e2e91f60db32d3b1207c3318dfbdc2a92 = 0 + +[011e45e9-a2a7-589e-9d3d-92a8c4506549] +229f2b02618169e4fdd98fc10a1764a6ddd5f872 = 0 +4f328d2b2fc8d7766a0d91104b8c84ecc7dea7a4 = 0 +62ab3ebdb57cc2167f43a551d363716eb1a11695 = 0 +654636195f971ee9d79a502d1167f03551f96e4c = 0 +7b4e85c01f5be7986baf1a0efc7f217ab3a65b68 = 0 +7bc9e6dc77d92a8bb0a6bfda4d7a6b72d85a45bd = 0 +a66a85c544d7bf8a1f25f0b4d58d12bc39e34293 = 0 +b167e4b26937612e1ee9bf135420f077119bdccd = 0 +b9ab8cc01921d48240117a571199fc9c3854560c = 0 +c01042fddd85117884df1220135ad59dffec79f3 = 0 +c2807a502c93420fa08471d3c0bb698dfc2dcd02 = 0 +c90590155a46b7c112aeebef2556598244127d8c = 0 +ce0f21d5a7e37e917717b5da872e5ff1c0de93da = 0 +f84e1fc4bd871949de9ce9c8890d4cb506c07798 = 0 + +[348f2d5d-71a3-5ad4-b565-8af070f99681] +0298af1dad8e32de742e1ab44647dcb5263e1cfc = 0 +3009f58fd9398e3f58402b77b25ac538e8c93f72 = 0 + +[276daf66-3868-5448-9aa4-cd146d93841b] +033a9ec0faf07b9aa68265ce906b2c0c0ec0c86b = 33554432 +380b61737847e598291e6cc0b1702a3971a37a01 = 0 +48429728a02828466b86feac267c88d85480ffbf = 0 +6b686c0d6544a1e0ca59b627f22ea5559ba03e40 = 0 +71812c3242ffb48eed00b52d607110bea36d5972 = 0 +7fd9f334ed89509c7b6bf1467729e5010b6d571c = 33554432 +8574f13f0f0f969fd66fdff49717ea391b2c8ba7 = 33555456 +89ac6013b83e53c26c920f6725a4fb901e801885 = 0 +9151a95d6ecd4a400e08eab83813e9b4058bb7ce = 33554432 +9f204e763ef54ec1a66299256b52fd5735ace555 = 33554432 +b70b52b4f4685ca9859d6b3e4bd1a377406ad1cc = 0 +c7e09930d3434f55a18d1af6dcea676bb44f292d = 0 +dcbf013e44301a55df66a8a27abd630a12201020 = 0 + +[928aab9d-ef52-54ac-8ca1-acd7ca42c160] +236d1154514c9af978b69b5478e79bbd190a92cb = 0 +263289e3912106dcfd2a7c2329f321b012149ea6 = 0 +51199b0f2c5a0c70242a29db7e8abec7bcf48825 = 0 +a8ae397fd59fd60ed6d6a2eefafbf78f24495a84 = 0 +e12fedf35cdd779176ec204f2e060306e81c5d29 = 0 +fb30ea797109bed2fc86ea95f9f18d5cc99b9fd6 = 0 + +[391af1a9-06f1-59d3-8d21-0be089654739] +05307409428ae643a1105850ebda3e6c5e9aaba5 = 0 +06e43bb17e937ac394908077247918ca9751bc45 = 0 +0d63abcc19a6cda249961b9b4dcce47491b8764f = 0 +135e3955da199c5f7cb290c3afa0ed3d8e12c268 = 0 +25df9606ead174423bcd51519003df3394ad38a8 = 0 +2fa5956aecd04156fea681f722e0c0edbe04eb5f = 0 +30f8fddd279b5200ef07a1b0993367692a2927db = 0 +4095405d3725f3dbbb6bcdbd836265241d353779 = 0 +4a7401cf0816f162e2f5053a0536dabae414f73d = 0 +75f5999fa3b550b023a0c4c1e47c67db3e2789c3 = 0 +789598289a2980d1a3c99de56d92ad38e55558ba = 0 +8194b1310093efd47502fed301c5b3e7a9410d7f = 0 +8b3ffeb8e123ff8fd367cd4f79cfd060fbdc909f = 0 +90ec96abb45ba81d782ddea4f11d78d53617c3c6 = 0 +9ac383a6cfe298d4b2d1d4111c37776e2ac5e47c = 0 +af47a75e860ae42593752fd78ba2dc9dd6b93a31 = 0 +c7efa20aa25d5db7af5b8a64e5ccbd0e2c13e890 = 0 +ca67d93f982eddfa9a1043befc056dbc10c807b9 = 0 +d4742980fd6c895cd2a9547b8da87320660b882d = 0 +d80b712b23fc20c7e8ff0cbf97de5d1b304ce6e1 = 0 +db1775e2a82717515eb56cfff7b492627e131b3a = 0 +fb6018d19169a1d57c96ba36df4c9fc67ef3b67a = 0 + +[27fc6e5e-f203-5799-a75e-6abe30976ce9] +011946be8d08114971ee9d939e63f137db9e604f = 0 +2e04a6f098f386c931508c06a6b7f509c4fef44f = 0 +578d4fcf294f22f3d0318739278a80b923703543 = 0 +61edac839b41c38ac0b39a4518c4ac59ff8b75c7 = 0 +9046ce6c9106b607ef36b91a9d13a0e68543149f = 0 + +[8ca2a67e-f683-5b14-a319-732e1d1d8f2e] +3d2883fadc662d425be7f6743c3fbf1bc790f8a8 = 0 +67fbdf4310b866b0196de32b45d9b9a7a39ac4f9 = 0 +8a0bb9fa38e3b384cd6b75326c2c55704aa089be = 0 + +[fcdbfac7-bca7-5d83-b49f-2c155b340956] +ae50d16a46fa9e5a5c806a110a835b92f2adb997 = 0 + +[670d9266-7b14-5e98-a133-3b8c27ea9ed4] +6caa6d52e913cf5481468525b023946653a095f8 = 0 +a3d6d888d293038c79102335ac73b10b8ada9f83 = 0 +d2529e82218df68275ee8ed09010a2aa3c36009b = 0 +e58da0dfe9a2e8269decde8b7e2e918e5478a3b0 = 0 +ffec076ae8ed389c6281f9c0210cdd651fea8534 = 0 + +[cde04a67-da5f-5e53-93c0-2a9e1e7feaac] +a27da6bd8a3ed00cd77d1e6cb2eceeb564d8b03a = 0 + +[682df890-35be-576f-97d0-3d8c8b33a550] +076736fd395103011c9a73e4588aac78e97beb41 = 167804936 +08756431f041274dbb66059c52ae6158feea4f44 = 0 +24bae56138d4e04910316844a35d6a98b8251383 = 32768 +55fb329b5c87e2f74217dd9c6a3b550c857646f1 = 32768 +577a3aafad0ab643b138782153ef4e9a101fc31a = 32768 +64223061c67187c16235f4b8bd96129e6832a239 = 32768 +741b11ea136e5053f17b49889a57abb7b5bfbecd = 32768 +87a111cf24263280298b22989d28d604724b456f = 32768 +a8ebb7ed0868ba8e159d975af1a1c56f8bada77b = 0 +b6a18cae9b043455994501e64aa5898c263deb94 = 32768 +b91efd406949fb9a0a944ff7b59f799b3f441b2a = 0 +c7ba6a63909faee647a75e1ca8d79a42fd498d21 = 32768 +cf3ee0fa92dc93fdee09f7ee320fa6222a429da5 = 32768 +d58a4b2ed802cb367b7275ec177a4844978d5ee4 = 32776 +dbc3b0a78229887bf851547f20e6e28a9fc072ab = 32776 +dfa7217432cff8e4541381cca3a83b37ac4341d6 = 32768 +f5e8157b26aaf37bd25dacbec1a694d93c2d5395 = 32768 +f8c72aafff6ed413ca3ec3afb932090f0efa9a1c = 32768 +fbcf3ebf97c97b159ac2877118d29edb8c6a19b3 = 32768 +fcda5485b13c328e7dfeded604dd1d1e6249874a = 33587208 + +[56780e9a-f91f-500b-9a21-c8c66253dea0] +01a0815d3ca514998caad6e71ecab471ae06d310 = 0 +08914e44204541c1297d5447979e579e75100606 = 0 + +[1463e38c-9381-5320-bcd4-4134955f093a] +0b6f56656b9dc12bd298b929496e4e63ee979465 = 0 +2d7cd0f00fa1b8d672874c5cd4febd7444ed303e = 0 +4d6549db9cca9bf54388df1d19fdd2c83453cf7e = 0 +556a73a59c949314160a097e16873bd33c4324b4 = 0 +94fad8c025ec09643176563cee8f9e55e63e08f9 = 0 +a7d0cd6324abba2b20931fe45caf608db1c37beb = 0 + +[60ddc479-9b66-56df-82fc-76a74619b69c] +0367e086f5e7989ea11a0279ff66c8e1a0f5739f = 0 +16ce5a0ab783bcf0b4d125001ffe524b3f32c192 = 0 +447e818a3e263ea888c5d29a068955447df338f1 = 0 +50e45898c08bb1242da7a407fc71f1ccc30fc6fd = 0 +596aa19d8be848dcbec78d08906baccacc103015 = 0 +5ae83617c34634678feeb0064ebb13f16c795d9c = 0 +5be00a21c589d6d7d70913287c18c229d33180ae = 0 +6362a468af46f42ba114075486f5a68246535b89 = 0 +8fba494b1c2e93d52351e8b7185cef69e0f57b13 = 0 +918d24309220c4403de01362ebc08a0032760e90 = 0 +cf722a908cd8e3e140d962fec7c5cec717e90e7b = 0 +d15b456ba24833cf80c0ac385dad42bca33cc5ae = 0 +e12b1d2cb3fbbba8bc36780df8f68bbaac3162cf = 0 +e2ed248111052998548203da11e665457a087bbc = 0 +fc4608e79aa7f99d1cfaffc9004b9c48c6470b38 = 0 + +[a8a75453-ed82-57c9-9e16-4cd1196ecbf5] +1fed0228b876936f019a51b0f9a12cff861cb730 = 33685504 +57fe767dca0334e0bea6fb3a196ad1ebd1554815 = 33685504 +625687f2b4563d0ea923613052055dad15330cc6 = 0 +673ea80d4c8d59415d56fd8de7b5930874de98de = 0 + +[261fd431-d7e4-51f7-86ab-ce9e57fc1fff] +36894e28f8c717e446683b0d409f3e76c30fc06e = 0 +e16c50a9482594b6eacbf7e2918065da3f9a64fc = 0 + +[8c91b7c6-e17c-5caa-9fa8-1cba1108c241] +1bf8de4012a2baa3ded62b1be18ecfb15a12e6af = 0 +973d5661d62b15f5a1571740c75ec4283fd48836 = 0 +df3290f5cbf990a642978f4e899182e9aca5ed96 = 0 +edaafae28658b92d7c9e051dd51d500417a646c2 = 0 + +[90137ffa-7385-5640-81b9-e52037218182] +11ec06334a067fc86b0ae6951d0ce004881c7239 = 0 +12bab2aeb596fd5c8321ed0ceacaf205a877a964 = 0 +2e9feffe066b1400f30f082e67559af0d517df89 = 0 +8f195dacab18e19c0400e35cceadbc9fba78fa2f = 0 +9e720addb512e53b03aeb3f80fd2cedd343e67e9 = 0 +a2eaeb427211980ae2f595c4416c3629747095cb = 0 +aa5606993863b90dbdbe341443ae4d00d3f0e495 = 0 +af478d662e329e74b855dc06206a14f8aef792f9 = 0 +b0c971be2600fb76c4f79caef1ba5bb34f3ddc9a = 0 +eb408b9757496af6c3ff8fc503ce267526a4ba09 = 0 + +[072d6d2a-3012-5899-ad46-80d259e265c6] +5113ce6044fc554b350ea16f92502f8d6e077a62 = 0 +8208e29af9f80ef633e50884ffb17cb25a9f5113 = 0 + +[2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91] +03700097a864588019abf743f3534c1d4e568e83 = 0 +075908cbb07b4a65aba4bb549f39367c02b16eb4 = 0 +0efba512a2bf8faa21e61c9568222ae1ae96acbb = 0 +1239eb0522827c640ab317aa967ba23bf04efc87 = 0 +1c964a9f1f5e3211d66bb6796ec314b0dd8843e8 = 0 +1f529345823583ac85f5b5bfbe52de668071887d = 0 +1f820915e96c9b5d784fe467f071c00236a60ee1 = 0 +1fd0983b0af4174a0fd42026ff68333015924089 = 33554432 +204195b17725056ceb6dd640560bc56ea7e59c68 = 0 +23b36af460cfd6c147efef9074a76a4e8cf13dae = 0 +2668b50a37ea968619a10e061b954a7240782d3b = 0 +2a2653ebb64b569a3037400fac3a47b595c5c277 = 0 +30356e3001a12969b4b2d57029de294faa49c59f = 0 +340d32e1bfff30edf060cad08ee5612295cf7a4e = 0 +36e5b0159efa59142310ab14ffdd30e07e91829d = 0 +3885542a93d2de71a1102da030c798cd51749481 = 0 +38c62a15e2e3b24c732f9b90b7ded1abc83ce6ad = 0 +3ac64e65a26a44fbbfd82eaf37e9e084c40b2cc0 = 0 +3fc1b86595e96b2c098e91bb2fe56a8c5bbec05e = 33554432 +42feefb84aa81d9f8918500ecf159dbee5bcb91f = 0 +46876036307915040844a27b5103a91ec9295812 = 0 +47c198b1dc0a1f9a6af822bb66ef6ce219e966eb = 33554432 +4f34598291e9eb5a976479f15a0ae33bd298ed6c = 0 +506c8964de782d022689f625840a6704a46224bb = 0 +553a8ce28aec3ef4c49c4c1728ddd7d375e7fec9 = 0 +558d8cfb4be0ebea755ffd92ecdbfd46e4446d2c = 65536 +576b07bc0fc3a56b7d0018b4d87c77a4eb85d847 = 0 +5e4fbd3c085231f304cb6704eb383aa49f57c6ca = 0 +6353c322e60a54db8cdd296c6379ffec9473ea2a = 0 +6d588faf6fdf64f4fa48913589b9b13f66afbd96 = 0 +6df21f0699a189a70938eec809e96ea11e1771f4 = 0 +7003962de11031e1df182045e9391f6120a85f3e = 0 +716745a39b8bde8f8b48abe87a7ecb300022a0bb = 0 +727c5271f0774a2a98de1daa8e182fd9dbaa9e36 = 0 +743727f04402e6004f21159a4ab9894e4a2e53ad = 0 +74e8095dbdf55d6ed8322ae52d2910bfef52dc10 = 0 +78f5810a78fa8bee684137d703d21eca3b1d8c78 = 0 +801f23f5fd1c36af011c91938a623187d1e8ddee = 0 +85b46d15d6ba14d1ef8703bb16223b0f5684abb4 = 33554432 +87d1c8d890962dfcfd0b45b82907464787ac7c64 = 0 +8d5b84498e134de9e70bf4d47a0058086c241671 = 0 +90c68e116258c36493618833bfbf7d5c46cd9c48 = 0 +926f0a395a0c2ca3853d16af480b4e7e475b52d0 = 0 +96cd82a5c8461d81ac4d14723abe7b9f075ac7a0 = 0 +99ee7c3d3638dfa18a104c89b9de00baa663abc2 = 0 +9d851b704cc135ee4ca9bf68f9b0541d64d5814f = 0 +9e5a83f7364ea9fb6201bd07e9c8b6bd926be4f0 = 65536 +a1523b93fbe3ed5569a7e241a05bbccabc909be6 = 65536 +a2ba466f0b1ba82ed45f35918a9c5804ccc11d6b = 0 +aa5851d83a5b1c5cb3969db0d3b1a6b0bc28b5c7 = 0 +aaa2476723b941a6e2d7c84debd94da98acc31aa = 0 +ae435d118a9fbd09f528c1b3c0d7a142890e8278 = 0 +af2c1279b55c179bc3130203d1bf3614ca23ccf4 = 0 +afa33d6fff1cb50e5aa54b0e90613d1b481133a0 = 0 +b0974403b8e00945345fea9a4b5943b824a59e21 = 0 +b249317c3f2969fa5b8f7d1ff1347521309ad62a = 0 +b2b5dee86eaef5745e05ecd0de9045bd92f703b3 = 0 +b976eacf46c4e18d6f2fcce7cf77c897315027cc = 0 +bf8e7752f8541e5f0f7ead514b0a3055ad0bce23 = 0 +c5677e95c9f737eecac254041cab718596cee5cf = 33554432 +cb2668ba75d896c774762a323c1ffef0216c9b9f = 0 +cd95f1807def6b03ccdf064c72f1be56f48c1f74 = 0 +cdadfc5ea72d6330a0f60f3cf46f51a4d775c98d = 0 +cf943919e9033b84ad1591307ddec5e5a6e451da = 0 +cfe55fff535df4f70c71d23af0f304a637732d68 = 0 +d241266328c17f4c588f6a66985d4e02f2741c01 = 0 +d2fb04edde3a8afa376d32b38381c86921f8c5f3 = 0 +d6b524c383b71024538fd68efa571f8f1ca9f944 = 0 +dbc39a54ee7b7174802c1f97fc7091c5c6d792f7 = 0 +dd16c108438a39fcb9d0968ea8d83171036df484 = 33554432 +dede3150b1fbb04fd0c53018685140c1d9d33c15 = 0 +dffd8ae8a81612bc89fde1aaab93c7608aeb48c0 = 65536 +e200a7299a40e1f9d719179b98968542edc19f3c = 0 +e21b766cad2440e60ce56144a0aa776bd5a7cdf3 = 33554432 +e6411b644c02d470036d44fe25a49cdf89a15fff = 0 +e906bcb386a70a13bdd95571ccace23ecfdfd0d1 = 0 +fad9642ff8b7a39b0685db4304f137a518f82fa9 = 0 +fca1ba5720da85e054801f9e5ca7fb06d029bd47 = 0 + +[4c63d2b9-4356-54db-8cca-17b64c39e42c] +03bcdf39d241c05a1165efc892a507dacf2276d0 = 0 +3db430d439e72f3e2580a0c818b4aaeff803eae2 = 0 +4b83f9e88e5a6bd4c8a251ab7f15d8a01fe56e5e = 0 +5de325f64b4528273310cdcf5532d994c1aa5067 = 0 +69e3522c6f3901750754ad0dc5e7837d02253f0a = 0 +723edaa163c95fc78c8d0b520150a91139acf434 = 0 +7aa5b33088bed36eed311f9f40ff60c1e15f5352 = 0 +85b769cef7d0e3ba829be84d42e0d78ad6a10282 = 0 +977722fb29361842ab668f75bc874104e37d1608 = 0 +b8e379c6a67744b9fbcbbb11fecb2c1116767241 = 0 +cb17da6260af5f6948a504d8c650c8ed3c7f71ce = 0 +ccd5e2692e79728da1124b3641b4f143f92db491 = 0 +d64d64ace747caecffbcc5fe0920db5ce90e7ecd = 0 +d6b3e8c9aadbbc96014e29abec2ac0909369c30c = 0 +d6edd545c7c57b4ae149ba5c814f153d795ec108 = 0 + +[3eaba693-59b7-5ba5-a881-562e759f1c8d] +00d476123a491ac4b94ca3e2d6f20ba378339251 = 0 +5896a9f3bcdaa40ccc8a18e668bbd823e6cf63ee = 0 +85e3abde7aaf4cbe8cbed25616dd50739100be1e = 0 +b94a807c9f6079d41347262681ff608668bd0060 = 0 +ec5ed7bc45596a3e692e4a25adf9020e1a947569 = 0 +f919b9c93aa7f4eeb5c8f4b1b1931adc3e47f085 = 0 + +[0e486f62-d771-522d-b768-ec41bdde0066] +1caca821c402084ee8628c421d37ab212cff9b2f = 0 +a3600cfcd30430418c99955c7e2c4311f67e7a06 = 0 + +[9672c7b4-1e72-59bd-8a11-6ac3964bc41f] +684b501825f2acd7ef7626008ca568f33a1c29e9 = 0 +ace7f8708f65c50d646222c9d3f9e8c865ec2d19 = 0 +b43e10fda66c621eee805ade9449599b5b029901 = 0 + +[b36d76f3-e888-5fd0-8dd3-e39a55b413c6] +d881bc169f21bcb5e1fccc5b4fcd8432c353de63 = 33554432 + +[d014d5ac-0f4d-54d5-9198-0ab2ca96d67f] +182dd45419880607fabaf1896fb16d1c1a4ca733 = 0 +c78cabea0197d62e032e5a8dc4606a37cf247cee = 0 +db8a709b1bc907c2aaa59b54ef53913bf774fb13 = 0 + +[6b32d12a-ade9-56b9-afe9-2f8a1d6b3202] +76c12abfefdb14d6e5fbd2619978e2348ca1af1e = 0 + +[f6024387-75e5-5fdf-b095-327b05c0905f] +24ea0042783335212c7933c56a9877447c0a3ad8 = 0 +2ff4eb95f9b2ad286fe76df9ea739320235cbef9 = 0 +42927e2a002ef2bcc688c270e2b0a2d3b73eadb1 = 0 +4d5b34d9922dd3f3657c9e83980f5657ca86f3eb = 0 +73feb492598cf1e47a6dee1126a425a5a8662d82 = 0 +8b492759b8081c484c34d9aa382f8671d385370e = 0 +c035625b1b1946e4551dab9f5b30d1cedcddb1f1 = 0 +e0e58fed3ccf393f50aad0d4e97bca5fd44f65ff = 0 +f11f9866889ebd6ae75b9ce0b8b9025e5cfff27a = 0 +f68b9da541c2f811ce24fc76f6065803a0715c2f = 0 + +[789caeaf-c7a9-5a7d-9973-96adeb23e2a0] +0420447d5ad31545072096e337cb61186e59d6ca = 0 +044b6da9f84702cd81613a073f825d96e288ab6b = 0 +0ab044951917bfee733628e00403e6bbaf3e51f6 = 0 +0b16531bdf53ea5341bb2b1b837e19d27daddfa1 = 0 +0cb4ec7a368b0a0c9a854e7c352050baf3bfd022 = 0 +0f35b3869fb018653fdf6106c717861f734cd39b = 0 +1b4c869860430e9846efd40a7c3af87c53fac170 = 0 +1e02d3a57bfe6c7971d88aa4612f9f6db83d03d5 = 0 +1e5a24cad6b1ffe84f030a4ed6341d6fda6f3fa0 = 0 +218e1b701ee0fe822a1309a1cf68b0f2d91bf15b = 0 +23da7db6da0134f53aa78b07afbf58402a76d9b3 = 0 +265fb117b16648277a98ad0b3bb2a2b6c901b7fa = 0 +2b259c61a303900081506811d5bc3423e850ed86 = 0 +3250f1b6f8363b3f811129258b54095eb5b8d40a = 0 +32790b506f1bc5741bc2900b83c98871fce0f712 = 0 +33bed9171e4f232665bc0d9b993efaccd368e487 = 0 +3456cfe6f2cf9009ae023e2d92694257b42f5004 = 0 +36960d8ed1b574447d98bf4eade4acea81ebe4e2 = 0 +3888bdc750bc1f79cb0e7258a678a635353817c2 = 0 +3d2a3ce791e854e1fa75586690f352b8ccae353a = 0 +42e46cb51f2f58f401adda909e8b8ce55a4d611c = 0 +471a6c47a94c20705b8e9e8d44084a863899180f = 0 +4951b960ac3a7b7395782bf66750d8187f7c608b = 0 +5ba1e83a9e1686e66c18b6e8fda6df14d3f74480 = 0 +743813d87a3c64f7f8e7cfa031a08c5ee8fc48bc = 0 +745b3ae5a9ed66e6045f4c0018f9d02f0b35eb8d = 0 +77795f1cb83f2f8b82d881fcdc400e41a61e2fa0 = 0 +77f77a52c18bbc1ed0da2db1cee0d4060eab7b4f = 0 +78a51cd21e7e4dbfe5da8a17dccb512528ed935d = 0 +80ff0e0ec2d570adab1552e5c66bbcba6a7d83fe = 0 +8475a061d1e9ab22925f0a91cd52956ea46e470f = 0 +8518980759fe694ab56d685d7aef246dcbe03768 = 0 +89a3f660a21787edd6ea5701eb85e3d109800183 = 0 +8b36f2136ddc289bed722cff2d02c6bb550048e1 = 0 +99c8fa134cbc8b0c90be3110c7506a5f7cd61cb7 = 0 +9dc049ee667848f3aa23cfa2d471ef88c609c83a = 0 +9e160da798d88e201b16d0a6b814136c58ac49d8 = 0 +9faa8be6fb2138ae9fd507f07f309dabd3880f9a = 0 +a0b62a7b672c33115a4e588f358af2070264434a = 0 +a5c1dc4a854f9ae31aa01525559a2ce437abe54e = 0 +a62a06b1f061e4ee7f76c1bfe15b35d4a798964d = 0 +a8728b46d6f75489625d4d0f76f8e7402b5884ed = 0 +ae69ef4f5cd80e2c7d36f479e59a57ec4d6e8e22 = 0 +b682c1e3d1f12388989d537d99b1129234d0fe94 = 0 +b91b8cd99f4996d1a46d9ee0d3f33c20184b0898 = 0 +bd0516b2db2a189267bdf1e0ab0cb6603e8486fe = 0 +c0aea523b009b31ff9e0fa22abbae88c1c4f4bde = 0 +c21f9414bbd1868f376e9226781b69772de677a8 = 0 +d2c97966d5d547e221b280d097d4b8dd3cc6029d = 0 +d5d2c3a20ef28c5dbf7e3a0302282e6353034da6 = 0 +d956d619c36baf1c2663d24d443b95fbbb82507e = 0 +db687b77bc9f1e527e364acbb58c0bbc5ee4e146 = 0 +df56191ff71a4bf205794dca3166c0355a625b3b = 0 +e04accfa8f7acb988e11eae19d5a87a92ef407cd = 0 +e0f46ffb37d0e908083df4df5ce15815d050dad0 = 0 +e2cc207a3570f9b5c04ed07817ae64cee0c1b5e7 = 0 +ea3f1ae97f522f5c6bf74c48327efc26afb15593 = 0 +ea92d569356f4995beec587911cc2e89ba232d60 = 0 +ee764f902e0994e177756e938945eb2b76753869 = 0 +f53d32cbfba78920cbc2ad610f51a128cc68df66 = 0 +f695aa7ebef31d707922df93e55e6e4bf9c62ad4 = 0 +f792d76cd1f673571718bf511a6db77a47650f3d = 0 +f930d6e570ea72ff6979ad427f48796dd0df5f31 = 0 + +[f29f8280-796f-5dac-8085-6f2eb8e8ed66] +16959b35553e344111f5d05f1bb0341f92ac0354 = 0 +25c358b7512c741671c10846204f1e9724a07d93 = 0 +320eee3795f9244a9edf34c89cb2760022481c42 = 0 +35c86e35ae75261a9cd7b303dc47890dcfc35841 = 0 +413e094dd36dc5ccfd3405c73cd81f106f05894d = 0 +48ba9c674bb3363af3db639f6996046c50933edb = 0 +7da389f6127283fa93a9e8cdb0f6f0db89213b9b = 0 +bb624b21b6531b89a90db5f0281c10990877095c = 0 +be88c647b7a047cb35d4a966f50cc31e31a5c862 = 0 +deab630b9cfe21ee44ca4ea260d7c1b03821e22a = 0 + +[6ad78b0d-7908-5af5-80e0-e129aafa571f] +174971e1b478e50e2219bd08cadb7803088f7daf = 0 +c184725cb6fd24a8664bcbf1cac3c5f54e475e25 = 0 + +[98ddbbb5-515b-5fbb-b838-e9f4fd00c944] +04ad35d23ccbf2ef1b4b6ac54e0f6dfcb13ad48c = 0 +14a3cfbd43327b85d5f22ee7c9adabc9d706fce2 = 0 +b924db5697de915a66f2896a22ce7f60b5005499 = 0 +d6c057d9b587621cceee8c9c0b6d659e2867d398 = 0 + +[e44e80c3-c1a0-5445-b28e-0e14522c62bc] +1ace061bb8103d6b802f2dff8563e2e34412ec00 = 0 +5912e56015de9c64c0cec60a1c752b7b0697de7b = 0 +f98eeb3bc1522ae1837841e62429258dc3c8495f = 0 + +[054b7d4e-9922-5ad3-8b46-7dbe695a681f] +2961c15a28034c09ea85150522e9a40f15c31896 = 0 +37202acb62ac4c8be1b19b7fd2972ca70fc7a2b9 = 0 +95c28662c5872e5a0392944895161edd5c052bf3 = 0 +a6e0afc0fff149c8aff563aae9de0f80eed30632 = 0 + +[1b2943d0-825d-5907-9c5f-04e3ce562884] +c190a5cc1aebb6102ae7914d43ddaae6875a300f = 0 +cdf44058cdba9eca3e923f04d1ea97d819882f29 = 0 + +[f22f4433-750e-5048-95f9-cae576f2c120] +4a16a1d670bd021fee9d1f360fcfb479448e67eb = 0 + +[88034a9c-02f8-509d-84a9-84ec65e18404] +0a72cd60ee0f01c6cd9135b368f00149735b8690 = 0 +3b420d1871716afe5baee0d26b02aea451f4e527 = 0 +90f6865120f3d02f9d17fa2d0f18b43a0c41dfe2 = 0 +99b997c9e29a0efd4549afca38ae333756add5b2 = 0 +dee136e1c3962ea44321c06f75141a83da1a3d22 = 0 + +[69024149-9ee7-55f6-a4c4-859efe599b68] +2631c9ad2f3313a4085885e385cd869f0cb38431 = 0 +3fc5d8c349a7e507c31af5f1fc1f8aed4608bd24 = 0 +b289eea73ce4d6611e2f70fb20800646e256d756 = 0 +c42ee6f09fecde0088992bf0305e8d9190d06b2b = 0 +e6fd1bfa601a66207afc3061c479678548dd227f = 0 +f0ecb57fc31bcfa9113b0622205b48b25e809206 = 0 + +[8401869c-8c2d-5ca6-9bd1-4e4419d09179] +bda97e454baeb7e3bc6c07ee3ad8b8b3625528a8 = 0 + +[5d41aeb0-57df-5a94-a3c4-60ba49600646] +4321d69777db683efa454fdce65e07f52c5bfe11 = 0 + +[53d494c1-5632-5724-8f4c-31dff12d585f] +2486cfe52e17ec6b5c6aa9710599a3ad0379021f = 0 +56866046379ab51ffaa3a31cbd06060b4aef112c = 0 +6ef71660b168091b88777188670b2d2ff748f883 = 0 +98eed1e536452d5fc922bf13ac5ca9e7cbbfa8fe = 0 +e36dc8268c9f6ed03ea8698a5343d18e60907d7d = 0 + +[34f15cae-5318-50c9-93d3-9feadd34e321] +3a96b2fec830a6ffcbb63ed76f32b96c7c4f01df = 0 + +[52807dc8-fdcb-5551-b45d-e3a576bdb870] +b8a63ca82788f1dc8a7b33ac4c40810438fb0464 = 0 +c49a3327d45dd430cd50c6f76a26290f9dff25cd = 0 +d83e4a7b7543df3aba9a567b4c1eb7cc96728184 = 0 + +[7577c65e-8fec-53c3-a011-b98165e3da76] +72d51a86d502deb709b54588f49bc02c332ee284 = 0 +8239f384265a6871186433cae2a31f01d022044a = 0 +9967b42d59bd22f49c939c8bfaaf87d0b933b732 = 0 +d323520b2bc105bb10d26237b1d6438b61c2c764 = 0 + +[97a7e826-69e2-510e-8af8-254736c4b599] +2d40c3755a39cc18e38774849ad09e7d1f715115 = 0 + +[5af79cbb-4286-5dd7-b00f-641670ac5c88] +4e87690972b6e4501342974dca924003d80f1aca = 0 + +[cb9003f9-0146-5467-9f28-cb882016150d] +284c21d715785da9d4e5394a11bfb4f78c63f06c = 0 +8c1b4692fed14093688e58d39f7dd07787dd92db = 0 + +[8365b1bb-bd83-58ee-a267-f2965fc81c73] +602596cc3c45bfc3da8cc9b05afd3639076d69f4 = 0 + +[24f65c1e-0a10-5d3d-8a1f-a83399f3fced] +25d11da2c5532160ae014e9169f27c4fd4f1812a = 0 +be61306211737afc3a16a905f22e4d5ba8a589bc = 0 + +[e18849f4-891b-50d0-807d-7841c4cb7c8f] +0e2afdfdc26adb5c7a2c084eb43b3060c33cd35b = 0 +10aeb904259ffbaef3ee11f3dbd604e0bde07ae9 = 0 +2cf57c5ece68dc7630ab78ef29aba8a8a9bbc237 = 0 +6d575b570f61351ec9a0456e74901c53ae2102c4 = 0 +86a18817c5a5f376674deb73020bc88a51fa5258 = 0 +957898a4c4181d8dc2b866f3abbe9a57fb0e84bb = 0 +a62d6b10b583ae9437322dd921902f127c4cdc10 = 0 +afa3da222b3b3eb1df3fe1be76b4d892e91c9d98 = 0 +c0fcad085f4b93bf8a70c0da52a86357c7ecf654 = 0 +e6d85fe8f6799c5ec76856fb3ceb3fe88b4c2e57 = 0 +ec64ba14fc4b66c668f18e6224aeb9dd7554fb8f = 0 + +[0999239e-cb9f-5507-94be-17f19fa7f34d] +2c70437161b108898d9b5b9bed8d230e0e4e2eb6 = 0 +2fb04be2d2b169290086eb81644d5762f8c0d6d1 = 0 +645e66a1dc1c55089c00cfdc5b72144551cd0f3f = 0 +ea48d0321077ccab88bb1cf57d5da056e53d8bca = 0 + +[4607b0f0-06f3-5cda-b6b1-a6196a1729e9] +adf01f841248db1212d5f84635f68e1f0f570dfa = 16777216 + +[4b9e565b-77fc-50a5-a571-1244f986bda1] +768ea9c4066c8aaa8539f96756bc5ea9e6673f3b = 0 +a088d2fc63f99b6a9d324749a980d87243777bcf = 0 + +[c3572dad-4567-51f8-b174-8c6c989267f4] +02fc15a435563448e5c24663e9bc56eff19f883c = 0 +11c4161418de3d9487d58dbab9cbbbf776985843 = 0 +19caaf8c5025d65a9994dbab6fc21e3de7f93452 = 0 +1b2efaaa0a37e4373845c6ab0ac30ac8820cfb17 = 0 +1c6ac7466bb4b5bc3a9dbc50b52ac5a1f0cee772 = 0 +209b3b84a3f5e9e7455eac75d70ac220f4826c2c = 0 +2aef28f1cafaf8210a39d191cf04bbd5bc5239b7 = 0 +2d8718db9986ff5c12d50c3644c24825dd61bf59 = 0 +2e6babf8f054cc43a9d5a1eed37fa615c1bb40d8 = 0 +374e37aed9557b2e840e5df0d4a109a29620f9c2 = 0 +38bef0da42b5eb14bd6730ec73b5d8a9f009b231 = 0 +4361454b9e2d2d33fd1f9a4b202fcbeb95e3b0aa = 0 +4d5f2688d78c8bcce0441b4c930a8402891a1328 = 0 +59a62ddd0432fede1de0e80c0d4129a6a60e2376 = 0 +5c473d9678a3f73010ca8b9230df4fa4defd29fa = 0 +5e4b9ca24dfa00ddf34c931e17fde4386c39e166 = 0 +6d61a48ef5ca875300975b257d2515f478eb1122 = 0 +71fd9f959225a13e3a4efa163492bfe93610c357 = 0 +7a7f9d5803b2d2298a9c22f37778d70e3cb88030 = 0 +91f8f8e049ca2193e87b75d5efae7565684f83ff = 0 +935d886991e5d294d536a2d25989dc319fc3c3b9 = 0 +9a3567d590835ef6021d37cff13fd63897704eb3 = 0 +9df2a780e69e6a73c34b0f2a164e933d717016e4 = 0 +a7a817fa70917fbf7dcfd348aa05823f5b69e449 = 0 +a7c40336ddfdfe95fcb66e6969e7a700ec1b3196 = 0 +af2196665ed99eec1fad1570423c98b7568a5189 = 0 +b631cc385ed6614894478521acee5c11881a4d96 = 0 +c33c56e25c6682a99aca625fb79f2f07aec689bb = 0 +cf0634d867961c834872849a909c015d70fa59f3 = 0 +d1422d9752777941575e2320a7afef9dbe30cb49 = 0 +d1904858ce063ce49c39fdb8cabd1fdd17801825 = 0 +d27c950a4060e6e86d82c5a95d54239880574ab3 = 0 +db072ad08a897f73365f964db6282800d03d1770 = 0 +e3cbb0969dd5783160f4cb0c1d090e10718b0e3d = 0 +e9d8094b30ed7db51bc2a040bcd82e86a99e1fce = 0 +f474d7a00cc66071c2fef2aed502fb4a84404984 = 0 +f840e38aa662cef6bf889329179700164794f482 = 0 + +[fd094767-a336-5f1f-9728-57cf17d0bbfb] +0f68ccc84bc6db6acab655c15e0d36dfb01dc551 = 0 +1ec0692f12180f7446d96277743fd259389052bd = 0 +cbebb22d0a42d1fc2ee5c7c154d483a6421524ef = 0 +f5646a7ab0ad9cd9bcf1c3bfddb9aaa44b62232e = 0 +f918ba1094f085b97d987285e111b709c8b348b7 = 0 + +[7a028c6d-7168-5faa-951c-a19b98876597] +aebbef15cc47d047e9bc22cc1ade03a5a5296917 = 0 + +[7522ee7d-7047-56d0-94d9-4bc626e7058d] +0dff2862ca1c092863d3ecf70e7720b06a0c8781 = 0 +3da5ab97f7d49fa3edf23783cbffbe5fbc85ff24 = 0 +4fceb2006fc8307e1f90cec7600d1579aa452ffe = 0 + +[1d2582b0-0a75-5730-abde-fb3f8b9ef95d] +5236f5af7571c43cd28c75bab4581b6152f9b499 = 0 + +[db124c1e-20fb-5dba-8370-5fc43211c42e] +19a28e0cbfeabe131a399922a8abe3e7647a0183 = 0 +400e027c0901c73a1bdff8c1189c70512879fecd = 0 +4e72704ae579cf6145d568efce25bab9d9df9019 = 0 +7160dd797477ab4d15ebc7bf8fdc591d6c6c57ac = 0 +794b015f55e41047b51cbc9c6017c292e6bd31d6 = 0 +aa13e71f4e7dfa58adbfdbd317e2d90f48a353f7 = 0 +aebf6f0a4e706629097650dbdcc8a15abb7e3f29 = 0 +e103de4add967a64da436e76d1ce29ea1752169d = 0 + +[6b406822-ad4d-5bb4-8744-4e708c04a79a] +f56a03fd1278ae39518558deadab514843b4e04b = 0 + +[b1aadb49-3d58-572d-b8aa-4c3bc2b34839] +712c9cf2c5f4cab89311eef0b159b93f3d7f3739 = 0 +95918f9a7ddb5f7bd79493e31e92168e16f9daa1 = 0 +d412a3712b3a2ce6ec44da80ef81b1cf81d519b8 = 0 +f3f9681dac67f792f60f6874e5a033edae7e05f1 = 0 + +[2da68c74-98d7-5633-99d6-8493888d7b1e] +06932bc81ec450ec447c4ce3b2bb3cae406f3f86 = 0 +2d5c3ed3f080d12e7532ea8e13428230f55e44d8 = 0 +42945ef45c1777c09774cd720a8641f6e489e660 = 0 +74e68ff3a5511f1090a33829fea4fbb46c0da978 = 0 +9d7e77294eb1e7ff259ced442c598fde39adab6b = 0 +a279a6490e27cff374bb77cb358a2fc458213190 = 0 +a937e5d7e9138591e060cff8e4156ea9af1c83bb = 0 +d8f5bf3df381dfff389492ab4a6cf57f4214d29f = 0 + +[123dc426-2d89-5057-bbad-38513e3affd8] +093e5250f0ab392a5a0f8a18b6cd79fb32ac4266 = 0 +139f6133e2bbb05cbcaca2cd138eba27819dd01a = 0 +438c4383ae33a363707ec83d0bb8a812912d0fa8 = 0 +7886714237f25fce816597c7bd9151c02355013e = 0 +8dea68f1d94fdcda0f273a525c705127de33548c = 0 +8f4790ed11379ba37766b8bf22ba92843be049e6 = 0 +c501d2191b267e44b2fc738c1a8c7f4ec5f0e2b3 = 0 +fb40ba1016b714371ce38b3535a109f7d4cccc1b = 0 + +[24249f21-da20-56a4-8eb1-6a02cf4ae2e6] +05a2e855e42d6dcd44425aa9d357868924c5a165 = 0 +089edf2fe4afc0122d1fb3b1247a3f46f784aee0 = 0 +0fd8b9302efd0d45932dd3bf40d9b87526c21ea9 = 0 +11109e34baffe463ee79b168bc152f4997428b6b = 0 +18109d7306be598b8f1ed887e06db578ca30ae87 = 0 +22f7f0531c9a56be65655c3fcaa7d687f57cca9b = 0 +24a5215b9fd78578feede7e812557634d08fc508 = 0 +31df1fc83277ac181a1786121ee6b89c83e08025 = 0 +37bae9645678556a28757e3282e85daa8dce0a25 = 0 +3908b0e18c283abc4b022a076787a96877cfd827 = 0 +3f42e11b50cbc21953682b730cdaa0c0a76b14d1 = 0 +44ef174582746df1e7eb7e2763a3088c7eb9abaa = 0 +4953df8e878b778d56ffed513d3b39d494d34d26 = 0 +58b0bdb8be1cde150cdd9374156d886a39645022 = 0 +5baf86de868757b6c11c5609dc71206180b19df9 = 0 +629345756ad693f97eddfc7d84e679f32e4a2504 = 0 +636655aaea00b17f042d04256c24e69265203bae = 0 +6c18da58e4fe0c7c5c6d8d6f2a23ae072abaeec3 = 0 +726458472b781be7b4eed350afe816d3046c792f = 0 +73978df1adf10caf665763e7af41f7d2bc3a20d3 = 0 +74b92d73dd99d47dad3f3ba771049ac6858407fe = 0 +7d679f114e4ca518bcb2ad39fd379003363f0cde = 0 +81263a0557bc30974ad5f7dabd612517ef740dcf = 0 +8131e194748aae4248d3a1e6f21766804e8acbd7 = 0 +8334191bbb0bd180c8ff9269e8fa7d37f1f21414 = 0 +8a1bea113344fdc7119547b863e1e0d3ee410919 = 0 +8ca6627441ec491f62d2c5a5eac3f4d36227f5fd = 0 +91047e0f63695f22d87dd7bb6c084a31f08fbf8d = 0 +915e4015d06d9f5ffcea32a6f88ad3ae32bd1e5e = 0 +9fcec5204035bec3baee71c04f8149c6acf24aed = 0 +a00046a9bd5d64a7c81874d71e603d830a3e38c0 = 0 +a67c2b21af1c9ce5bd2ecd82a4dfe2c172f1e013 = 0 +a98c818a204a7542e720422c4e0bee0dd6e27ab5 = 0 +a99bac82866a35bf9d61bd2c7802998c4efb3418 = 0 +b181d7d0ee62d4ebbb519c83e5a3b3aea8b603ab = 0 +b279c6fa15a9e62921e46e9d284cd29ec7f8c7ee = 0 +b70722eb0eda4c53939d235c307ba13a1722e6e6 = 0 +bda104e8a68a4ce52182017ec6ced7c0d0c61866 = 0 +c2d21b243e7da7c53a93c993e2e38011a9811cd3 = 0 +c6d207a4354d6e4d9a27cb948f9b1fb8ab2ac551 = 0 +d2f08e9d35f1fa84cfb5dc9427a31a4b19d51996 = 0 +dd21733a8349592ddb289b44ab83e59409d59df7 = 0 +dd3aaa69e44b920aa0bdd62ee751943921b2a79f = 0 +de15bc181f16b83584c1d159239eeeea314634f3 = 0 +e1886923101594fd4359e4e353887dfc20de44cc = 0 +eff671d155f54a44fc993c1e34530575c7972f08 = 0 +f34e77460eb5334623b21e74f22e07a2d940c983 = 0 +f648bb9cd63ed36394be6743761873fa8d9c7c11 = 0 +fd5149aa4b1e8f30a0fb5f50f454b27d57edbbf3 = 0 +fea5666973c3f64fc42a6f01618bd2234f4ccd62 = 0 + +[a906b1d5-d016-55c4-aab3-8a20cba0db2a] +1a3c0b1b2a483a800f16c81b45195c91d94629a2 = 0 +1aa88387959d1f9b20b1305c3ad8fde412a72a82 = 0 +421c6e3decb292b10c3b0c16f399b70ded683df7 = 0 +4733492517490198368e009445e6876b913f0af3 = 0 +558db2d8e0367c8e01dd48da208743da3f8f8bd5 = 0 +83daade1b25df920966cdf55f54f164126c9d909 = 0 +afcdadb09324def65ee1d1343b44739320ebff72 = 0 + +[8332e584-40f3-5f5a-9eee-dfdb1ad742fa] +7fa32106076f6385c60c7cadcb60803688abb567 = 0 + +[1ab33d94-6c6c-50cc-93f0-e3f623a46aa0] +5a7e836f4f1489cc8016aca49f4ff2d0f3bfd0e5 = 0 +700bccdd9b0bc0b58006b1477a1c307e38f1c27c = 33554432 +a0ba28212a54d93378bf95c580a344cc84b4a169 = 0 + +[709a03c5-4783-5601-8e3d-f371b60e9387] +9a5e639328aeea012620cdec1ea874119a6691b6 = 0 + +[3ee6bc94-e39f-5162-bd50-f9adad5d8866] +4e54e885f050e719d964d900f2d16fe9b466e35c = 0 +a4637f8dbfcc1f180ff2b623da84db970e3224ad = 0 +baef58b4ca5c90acc81dc33a17f39156b90170f7 = 0 +c19aaa925dd5c5df5b80a9ff07155a50ceffb44c = 0 + +[34f115b4-9156-5266-a33d-ca359e631fb8] +0959ad8d58211afb209584981c4237d29c33f4bb = 0 +0d73baff07f2a934c80e4382bbb851c3aedf353e = 0 +1e980903b45f382f3e3f585679db9192402ed2a0 = 0 +5e3ebc5cf79fc094e27754ef71ab4f1b9cc708ee = 0 +cee6708fc77ae9e67208af60be58c6ddfc429466 = 0 + +[cea106d9-e007-5e6c-ad93-58fe2094e9c4] +a115045c7f23d1cec23fd99647b50ba3b9089b27 = 0 + +[037cace4-c66a-5006-a6b7-c26ba1b2f83e] +12d358202a61ab1054114fabda431d28dd632c39 = 0 +15c585d01d9b73479dc952b0fbdcd541962a6e28 = 0 +5688783577fa82471cce02633326969d4ceaab1d = 0 +e00858b11fc63537c014de8add8afa2a99b59ba0 = 0 +e6706c7617ef558d907098660cdeb371cc1a1007 = 0 + +[24678dba-d5e9-5843-a4c6-250288b04835] +a88ed686734a8acd9531fd3fd8d41127d7054233 = 0 +ded85efa5d47cc8d9dbb5d58b773ed58f4e414df = 0 + +[3783bdb8-4a98-5b6b-af9a-565f29a5fe9c] +21a114eeb43283dc4a00f5ce73bd250c34bd3743 = 0 +5da8015ff14bb037e586c559cca15755b0b1ba14 = 0 +8c78f81189f37f479a0f735cd0d1a3d7e2a1e668 = 0 +a082932de207eb4071861e3f2d22aebad98b71c1 = 0 + +[382cd787-c1b6-5bf2-a167-d5b971a19bda] +0ee48cb1e0e0cc66ae17053191e9b5064a5e41e2 = 0 +1ee00f82119d1e7e69a1cd9c18751d92a902e608 = 0 +3f21e1490ac507e920bbd3fca29165ae838fdc26 = 0 +4c6fd1ae9890f02fe8289be1a434c033b8435a2d = 0 +614cdac086d144b0eb3f04dd62b080f26e6616c3 = 0 + +[c765c253-8ac6-5331-95fb-8a7ccfdcfec5] +942c6131a5c9d19808546a55e778b4be9bec585d = 0 + +[fa778a35-eff5-5ebc-91c5-11ea73160f07] +7aecd8b62a94b809d5ef10fd1a1096fe8742c81f = 0 +d4a29a57dda8e23235e9f2e0617d083714a6a331 = 0 + +[61d0e4fa-4e73-5030-88a9-ae4c27b203dd] +5078b5135f51015a31a846964e3eed19d1e82b3f = 0 +61c0008b2089be20e3cf80da00d42568a3eaace7 = 0 +717c023f72f50d979a7e1a8b7af05188596e9b45 = 0 +8243617091516ba186563f97a5d1983c08acd471 = 0 +85db148fb562078b695ea0c2b382d82911df007d = 0 +9c17be5a5ef1e4f9cdcc69b69e9c972c7e9965aa = 0 +a58c2047be9942b15b96037494b1407cd401c9f8 = 0 +b314631195a5ab269f2cf2fe4a9e9c70a39b45ff = 0 +d5330b6aaea9a5bb9d00d64d8991464c1fbc7f6d = 0 +da741d69803f2aa43b4556cf805adc750b979165 = 0 +f29e3513996bab4e4e1bf6a5c708a36aee9cec2c = 0 + +[c544e3c2-d3e5-5802-ac44-44683f340e4a] +1028680291cad8fdb7c34d0472831c2a8207ab7a = 0 +20d7911a6ea91a8c09a893f1549a5e638e21b4af = 0 +3b5d9dd7e8bbdaaa44b3a282ed1c8a77bc861593 = 0 +40b76abe81ee50d0eca8bbcedc6fd64ef4e78d9e = 0 +be5d27fc46a335b9aab4235f4e13c365822d8047 = 0 + +[92b13dbe-c966-51a2-8445-caca9f8a7d42] +0b095efa8dbe54913d01628ca24b83eae579908c = 0 +1816a9ec41b638a04d1fe3f9a0cd1961dc64f134 = 0 +2ed4550876d851be53f55beb10619e9cf8f27e91 = 0 +65e795ad971df83f28c57603b89a32d8bf10a412 = 0 +9c3e0ca9ac2daff208a4ef2901c2becc204b6834 = 0 +afbc80100e0567f511ae44db012873838a3c9728 = 0 +ea417f4ed9e3b2bdae881d5a98e7ae0d655b9afc = 0 + +[6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea] +0b48b5f34bb5d68dcb0134afb539eaa74eef0bb8 = 0 +10ab42c8cf1b999d0f0c8259fe2c0aa8fd39f6ef = 33554432 +1c1b36244f84228101720080c390724d7c3568ba = 0 +1db3c5a1a66d2c40958122eb18e63af12d907aa8 = 0 +28a50e41dd132856691c5b8360b29cb498299003 = 0 +330a40c832680c1f41076deaccef1f6f9f26aece = 0 +3a7d69453be74f9cd50e631ebb0cc93777a1b917 = 0 +5d9794fedf32b9d67a9f44ce1f4a367e6f453df0 = 33554432 +79fa3caf8e77f7d5bdb680f328fe6dd8e5b1d809 = 0 +909689b3db0521bcac203d19a1669d1cd05d44cb = 33554432 +ace985d7bfbf5fcb0d7f8cda4de24921b54f2ad7 = 0 +d2eedd7565a8ca97e42bb4dd2915dab8d7d5e60c = 33554432 +d4f0c20a4db83f84782daf617ef0944ce3673301 = 0 +de86b7d311a0d46f4531d92bbbc57fa8ee73a08f = 0 +e00fcc12ab4414e82d3fd29221475b6ec721f52f = 0 +fa77209cd0151ff2964dc4318ccbeb3ceef3f255 = 0 + +[db5f7d96-a200-5343-9fc6-a259b42289b2] +0fda95aee315ef90d8cdc3798ab359708b59eb08 = 0 +3696376c1959767d17c97b3ef89e3889e4f72b9f = 0 +8b8e08e76cf8ea48d90f1f1990899fd21f6ef72c = 0 +94e53271e6be93f4d4c6810e4fa08fccc05f09eb = 0 +edec6e997859cd171008f567c29e4e8df8aef8f0 = 0 + +[a110ec8f-48c8-5d59-8f7e-f91bc4cc0c3d] +0933b9da0b7939f78a3398283d9f2586e594ed99 = 0 +117ce77950d1271ea1e4e9ceaa70651d8e180be7 = 0 +151846bf4ed0ddb439a7d396144718dde548dfce = 0 +1cfd96d419329f3618c4e56da609027c36411e8d = 0 +24e079ce7999a7b6a6c4c8203a89fa68ed3dcdd8 = 0 +37458717cb347b55d298c311404b5f81740f60b3 = 0 +398c434d54fc47fa5362d297cd89274a2f44c410 = 0 +4e736eae369fe2f2baf1a3832474cad3d06eda9c = 0 +619f268f172f795766df40bcdf783e160b62432d = 0 +69e8be6ff94c35dd2b1df909214b456992a17df3 = 0 +8274c6d100f2ff4f224227ace7ecd949c54906cb = 0 +9489be634b1e06b747ff36a84dce4a500d23a10e = 0 +95bbb42b1e946b1810c045643e3f6206bcb2e434 = 0 +9a0dc56f0915ea89e3b5cd9c875ad00ec5b9eb3d = 0 +9b0c9098e84fc9eba0b27f7685f96eb23d4c98d7 = 0 +9de09ac6a0a5456a7aa2503e4c989442f1d61878 = 0 +a59a103d9d1683898502f7f1baac4157e30ae906 = 0 +b6be8608f68c05f5692e1bebc1bf2acbf26b1f05 = 0 +c2d9ba8d3fdf48d4c7ac093b47116b20bdb6453b = 0 +c98b72d2b082d0c4a38012f3b06a95cecc5e18b3 = 0 +ce3889e1a2edeee071aa810a024a56d258809075 = 0 +da8c3264c83f44f10e269c7b5fd822e258cca079 = 0 +e0cfa3905446f34b601bf6469a944e31338137ee = 0 +e139e6d43da9252e8dcc54ad337d3ad26b4cc578 = 0 +e37deaeb24a2900bc578f03af300bbfd73f9a2a7 = 0 +e455d3e1492bea01cd15a63cfd358277b013a6d7 = 0 +e66ad082ff324ebaea7fe8255c3afcdbd6c69a73 = 0 +ee13827c58355bfb7ddbe36eb84415a31e966474 = 0 +f121296805e5917d9c4b828df84459c4da303cff = 0 + +[192bee09-7f27-5365-8a12-1b6f807ba546] +0a203245ac9521512e8cca7459b2a7f9f083792e = 0 +26190bb49f68eb33735aac22807d06e060244231 = 0 +6ad5981410eb663c5fc1e45c85f65a53d7d4e469 = 0 + +[1d978283-2c37-5f34-9a8e-e9c0ece82495] +04f79437d26a7f7ad401462a7e347cdb9c6933ca = 0 +0c7fa9b48683036f751b1cdcb77551956d39485b = 0 +1127fb5864b6513924f8c44cacc46102189fabc5 = 0 +161e07d954b9c67435fd53702f9ff1d5d97033d3 = 0 +1e6fdbf59cd25eb0fb66736f79bea2b0e2bfb5d4 = 0 +2361e91745ee16084ef1fd040a3ccfc57cc37b3e = 0 +24b1930c3a12ed9f0e63df1777b2d4e1816d609d = 0 +2707f6c7513a7a0b29e0bf9add4f2b557c2ccf31 = 0 +3c187fca433cda6797d85ca0791b0abed9d9aebb = 0 +3d6d8b936f8bea8bef6e415c3d1d54023882a037 = 0 +3ef60410f1a767dd7da2ebb2b6f7f9f1404f3760 = 0 +422673021a87646cd73651766792c791a932a000 = 0 +441a56a7632b7c49f2233c1a24ce67c80730db93 = 0 +4c729522d54bdbb87bc0fcc27ec870ffcc7f32a4 = 0 +56f4f702104b62704278272463210fc43bd2732a = 0 +599ff6b64a7ad2628b9b31bb63e1261d8b0ce75e = 0 +6f19e0d44d6dba106b2e9e3e2d5571aae37f30fd = 0 +7f230b33ca05074d7be110148160c3ff6cdcd671 = 0 +819dd49773a9cd38a142e84b68f913fb4bb79c68 = 0 +84a173ad2511c72d7cee3b67514be26ab5ef4835 = 0 +8f6ef9df9caf29abbf84a1b0c627ac25adfa6034 = 0 +a8e1c22a939d902b2025b48711ef83e2af0ea1a2 = 0 +b2fed762ea69317dd84f96bd46f35388cdb70f76 = 0 +be6791cccce20d1f5532e7001fb5b606592538fa = 0 +d923347cda6b351330c8d08a22ff8e4289fc2d67 = 0 +db32d4b5169ef51be0f5de6b6a6a5434eecfe74b = 0 +e2476c09d8e8453445cb0639478e31fcfe085dd4 = 0 +f218ff55775e7743fd19f403fd21e338f5eb36f4 = 0 +fdb66116b4dd84d9107b4ce6abbd598611638ad9 = 0 + +[6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2] +02a016bb235ec614ce4cb3aa4005085980eb27c9 = 33554432 +1b47082b60a3bc048235ca6c9ad2a3b4d9a93da7 = 0 +21b5152065e9bb74e8b1cd811fed840bbc28e593 = 0 +3ca992225fa26798d3bc49c26fba5408acf8d44d = 0 +3dfd6c6bc3a7c5f01df67627bb5f3ed9af132253 = 0 +9025f11c589bcd54666f33091463d655fb45f5cd = 0 +a8de01c06fce5f7a4bdc079f73e1184714a90004 = 0 +be0fc1afa64fa4715ae48193ed636a04650e5975 = 0 +c3bd132b34f013594032f9823b2dcf9d4c3549d9 = 0 +d8dbdd959d2e70cca8942aad30a9ab803f871253 = 0 +f6c73fd43c220ffc4c2571a377fb05cf375124cb = 0 + +[9c690861-8ade-587a-897e-15364bc6f718] +1652020390e63ba5326c165fa924153b40b786d5 = 0 +88baf00776194c5353d999dcbb616ffbcbad602d = 0 +adb19d2bfb6cfb3ae74d1c1b814ad05f284a9858 = 0 +e5ccce0b50d7cc3f545a365b6e136bc19b2cd5dc = 0 + +[48a634ad-e948-5137-8d70-aa71f2a747f4] +1f86e74f321147261f85398e844e1d91640370a7 = 0 +560bc99e40507b1ec9da9c4ae2c5ae682ccc93cd = 0 +96f10fe8a13a52b6bb8f4718dbf91d3ec979acd2 = 0 +b72cad701c5007a417a882f939dfe6bb2616f864 = 0 +d4a07e29d37f1f1be3d7ece0cde115178cad588a = 0 +fad696c1f75ba2f9c815a335d71f110815da827a = 0 +fef648e224b04ed4ebe6c47710dcd883fc41ddeb = 0 + +[d06db476-e078-5895-9e0e-615f11c7dd03] +034d67fb6e440bdf4db77b7d3d9818a65a505ea1 = 4 +0a1e241a9ed52250553644c5261945f1b452c997 = 4 +10ecd55722f5af75c2a276fc68acf19466ba3ef1 = 4 +13b7f8b96799244f71e3b9107c46e6e465ebd3b8 = 0 +197da2310a4b7c2eedb9c941f9800a49febe4d1d = 4 +1bf44a8842330b40756c5d2a606754cdb5c31c55 = 4 +1e6a63998643b68069e1eae661bd851019a56bcc = 4 +24f9be97dadf7a72fe1cbd3bfdc03a8f287e7bf4 = 4 +2b9dc0ab3443a18020c9e8ab33a8a1c733e4e50a = 4 +3d09ddd7494216546d6bf49de6f90f8b5e94c010 = 4 +48225c3460d2b5aab8ff565a0ba0b0b21ddc41e1 = 4 +4ee6df781e8a5ab79ef26c3080b19e02e6084a59 = 0 +4f6fcad6bf4b03c2b6aff335a677a9b95326ea18 = 4 +53a0725d48f8b67cb49a3ace9fc7606004e786fd = 0 +59eabcfd8f2111f8515dad859f41ce2173820fa5 = 4 +5c3a87d4934f1f49d12070c8d102d5fddeb53afc = 4 +623d44be85ebb95286789f40b6d5c67abe45a5e9 = 0 +790e039ede72538fd44a5e64454697c600f6dee7 = 0 +7f05c23e45f491b8b860a4c60e35efa97646f5ae = 4 +804adabf875608cb7e369a1df20b1ba69afbc145 = 0 +8f36ba17bd5b7b0576ab2990dd20f51f4d93d3d7 = 4 +8f6dfee0a728a4d78948c29499b9e02074e2f7f1 = 4 +95f042e6b09e6b6720ff93a675fc0f5f1a30afba = 4 +9b50c814f0a810ee4db53b8842a3f44876caea23 = 4 +a130c59a24847e0afad77b2c9c879c65bd975904 = 0 +a6d3aa089cbc8a14c5439dd152750c9ef6536b6b = 4 +a8b3443ab6abe3429ad457d82e9d728c0d6a3716 = 4 +acd0659e7caf71cbc9e439c05bce3b6ceec369c4 = 4 +c2dceb9ff214ef776e6dae18c33f23dff7aa4a18 = 0 +d7cde18fd66337ce230ecb0258a05a37b2c11d2e = 0 +f145ae9f55a52bfde0d906da7378efad2689f14c = 4 + +[d3a6a179-465e-5219-bd3e-0137f7fd17c7] +08f1107efaa568bca1b4b1f0560930ce4fdcbf5d = 0 +140294719fb4b03bf83a969157d198193987ecba = 0 +3b942d4b7a7a54139bd89b890d3acf01ef16136a = 0 +4221eae10fe4bba7a8da5184106643c5900f83c7 = 0 +54f19cf5b6d6c591ea09767aab75c22701cf8d8e = 0 +cadae855fa3c3e7f5536989a83e653c6287cc005 = 0 + +[dc548174-15c3-5faf-af27-7997cfbde655] +0df1d6f09dd0605f7cc784e0071f5b39d5c42771 = 0 +6254c9dc661ebdbd199a4d10f1661e39fb953d21 = 0 +695d898c7b9010b05942fb735c86e4231c405eec = 0 +fb3e7c7c1d337b101dd30094b1230ad584d41b9b = 0 + +[23877df9-4f3f-5b93-82a9-6fc988bf1876] +66dd7d5a1ff311078ff5aa798063a880efe12e3f = 0 +a34ab22c9f4545de98d3c03fcff8c211230445c9 = 0 + +[5e47fb64-e119-507b-a336-dd2b206d9990] +0b648ae0dfcc62bb2d5957e8c172cd9d72894dfc = 0 +1ad8d4f7694b358e83c9f80850c654033672310b = 0 +2681517cbddb170c68399b7785f629f4d662151a = 0 +2c6f848f69a370b5a599b89903b08cd7b059f6af = 0 +491bd05599d010fd1a428bc42f0a4d077007c77d = 0 +6d2fba601eca95089ae504b4716d7d2bcf9ab1f9 = 0 +72e1da7850e33aaa96af930d76404f7b6eb0041c = 0 +9a9318deb5e86a2b8d9e25dd7354b5302b6ecb88 = 0 +9db10e91143ce26a7acd7d1038e9c820e8f41154 = 0 +ad8eb81cce2aae8577bedfa7a21304a0518a0822 = 0 +ce937376e7b0cf385add99e23f4a218802afe245 = 0 +d32f6abb461a24ea0709138be526517bb957cda1 = 0 +d45af2536473ccc1823268624f3e188ef54f3d92 = 0 + +[dcd651b4-b50a-5b6b-8f22-87e9f253a252] +7dab05afc0d4d5f3fc53f267928e09be43e61be4 = 0 + +[86162151-8369-513e-95ac-db6cacff8834] +07be0bb709676c101c71ba49334172618a3f1888 = 0 +19aae7eb8d392adf28c813c0e1a17e60ffed3aeb = 0 +c0b86d78c0a7aef497ba99e935bf0720beaa0963 = 0 + +[d40d4617-1dd8-5232-bf05-d2d0ca0a4896] +5ff61be824011fecdee667eee4caf06292544114 = 0 +7a4e04d0a6657df13b66a11fc3987224754c7a7e = 0 +91ae97c43181daebf64360dbb753b68af4dce9ca = 0 +eda235d4fe4aa538d4bf1d6c3a9b5843d2259bba = 0 + +[9b435220-3ad3-5d4f-b1ea-1e7b29ae9b13] +006d0c872542f42c845e168dd9bc66e086660909 = 0 +1a752da39d12c73be8bada339376c2a818ebe2eb = 0 +72ea141826c1ea926718f75c7c586cf79fb24549 = 0 +bfa29b503425812cea0aa6ee21d4b8631a02bb81 = 0 + +[a2db99b7-8b79-58f8-94bf-bbc811eef33d] +0a1c2b1a5d62b715ae3e919f39a10b316fc8e631 = 0 +172f50377c1dbcb1ac85eece62dc7a719ddfdef5 = 0 +17ce58c18958ff73f52ec4641bae3f4e3000b2f5 = 0 +9724c7e55f40bc450d3b60721d0df2adc1bfe0e8 = 0 +c8852342945ca1762646e6f324d692631ef87e9d = 0 +c9ed1f616e3b6ad8d4e1e40a9d35b2361af1ccaf = 0 +d40a74e48fc1822d22b128af0bd76e0c27ec10c1 = 0 +f022c37fbf1be8b5414a962ece186d6971e53b10 = 0 +f90253139d31d9665140eb9a2600c868058c1424 = 0 + +[3834c8fd-48e2-52a5-93ac-c34d1bd191f7] +4795fbd68fcf37a2db45fae676fe2e5cf631cdf8 = 0 +a339f8f0bb05ebac90786dda4488dbce69359d40 = 0 + +[e0df1984-e451-5cb5-8b61-797a481e67e3] +13433b098170f3c16cec038728ec738ef2791c47 = 0 +13e5fd9e224fdbbd27303f10b8b23bac704a49da = 0 +1fc592eecd20a8f9caf83035d4a0e07e0d27b0f0 = 0 +3dd944426d53d6aa28be9ed72c46164b6a93f902 = 0 +44a36131a6a592f612ea65c0bac009612a3cc112 = 0 +48dda26682286f85eabe4c38093f35642446d06b = 0 +71a75782b971d926af9feb8165c71555e858750f = 0 +8621a2fcea71c58f153e59fc2814ca10871850f2 = 0 +9e67e1b4428d17e437b7134758851c2d01c402b6 = 0 +b81cea29638cd2bf14a98dbc80a06bf3ba1ff4e6 = 0 +bdcecc419c680aff15e0219fbdb081344f50c79b = 0 +ca19058f291792a2990e584b1c50e3173488890a = 0 +d2aaf6d793709035b8c1e7654cef0b5e973d9db9 = 0 +d76878234f74bd54d178212eb660dcbc4873ea90 = 0 +f007c88f2eac02a5f072038a39eaa6a8a8ddfd74 = 0 +f9932a7fde58aad515b7ffa027f64b5f868ee20e = 0 +fe90ad7ea8b9f524688131a6d967d1dc71cb8d94 = 0 + +[b718987f-49a8-5099-9789-dcd902bef87d] +5c05b2958d81c0653e142688f05d858678753763 = 0 +869810f7e24422c0b96b32efd209f1934a29b130 = 0 +bb63797032ce361db6118f1f46c72c49c162f231 = 0 +cd9a002c46aa7f351f1c61b329e4d0dcbd243039 = 0 +ce11b13e1ac4c0a4c2c77716e464cacb6c57acfb = 0 +efe90ca4520b0f5a8daa3fe70128af81118fab9b = 0 +fb405bec9778ed9c8746992c7716676793101b5d = 0 + +[845f30ce-e0dd-54de-816f-dea2af76ea42] +25202401c6a68235bc95892a9284b5ac67bd492a = 0 +74373eb988c5847add71b7b89b8e0e3d5cd1bb85 = 0 +d062847cad585799bf99b334f43c17b17f63053c = 0 +dfbd89421a9b3e6e5327f197f623c01dc10e78cb = 0 + +[512c2d17-f861-5de4-b642-bc357ef61061] +c5eb58b85b1d7d210de9d82c32a1cddf27aa756b = 0 +ddbc47d1272ca6f5b9e3381bac9fe4683644499d = 0 + +[64f4ea9f-85ff-53fb-a2d4-f98b64876896] +1a953cb588a38f5eda90d1fe3e235d85538518c8 = 0 +a3f2145efe34eaad277aee400c4abb6141f9bfe0 = 0 +b740a5ecea9f15cb7cba5bb17319b8d2914b1ded = 0 +d60779a85e2c62d110e6feea7b409cc156ff6669 = 0 +da38c5393dd7b39a2a3d7655ccc034138ca42782 = 0 + +[8d9c9c80-f77e-5080-9541-c6f69d204e22] +1ed5cd3717b7e9d4460151e217283f9e07dc3734 = 4096 +57b89d1380dc51122b2965d9b016f299204c5832 = 4096 +6b1de65ca319938e5e6f20a679039c12901e9569 = 4096 +816f1a95c93e430bc9aaa8902f2ec76c62f5ab9f = 4096 +8cd35d3e65bf64a26dd000f7e506935df3dd3273 = 4096 +9045482d1fd7d08d4ab342b422224184b6d26a17 = 4096 +bc5c16ebdcd997b8de51f9901c1a055d49c1b163 = 4096 +c82fdf6c62d06d85566429c721d2a3fbbec32bb3 = 4096 +d60d93cb9b2b5fa9d7e15b90eb765127723912d0 = 4096 +d73da97b73277fe6d64cb9c99e5545cfda765b04 = 4096 +f0bccbb7af2399c161a8ade8e9d8ebe0ad416269 = 4096 +fde6e2fbdb13c47cca41028b59810f61aa113def = 4096 + +[9ff05d80-102d-5586-aa04-3a8bd1a90d20] +5bdf86e23ef2a12f6c8bc0defc17e1802561bcc0 = 4 + +[b4f28e30-c73f-5eaf-a395-8a9db949a742] +22f7cfe50cc1848ae3309843319aa5629e381ab7 = 0 +25ba4446c06a66b7678f882fbc0f7ace6358249a = 0 +4797788f9fb4ee6c7883e50b6be392bdadaa9fee = 0 +4e1132271e1431c9150daf7e4d449fbecb51a650 = 0 +5c1d20970cae9c613276b6bce4536f8e30718310 = 0 +90521a479c2b0dfa828678c821adc353e6f8009b = 0 +b0e79a7be974f15cd9e5c8e8bce2d7bea0b3cb9a = 0 +b8c9ebf508f178bb91405244c28ce4cd8b85d571 = 0 +bfb9e5cb73eb7c24399daae5cd371a116538b2f1 = 0 +cfb8981349a7aafa75172293b6c4e5042bad33c6 = 0 + +[37f6aa50-8035-52d0-81c2-5a1d08754b2d] +00255b53e7af60de411a0ead9512e964d38ff3b7 = 0 +06e12bc3ed4be42da92763c819a56bcdda8c31c8 = 0 +0da220d372beec8ee74219de12aa78c729a5371b = 0 +12648cbccf58ae7c33e9fcaf7089deeb1190614e = 0 +159264999a9190353d63fb4a139f898e4bc6f12a = 0 +37b9d71da359b241487107feb10f85404ed9e8d1 = 0 +3d7c404810b9f015f50331ae0dc61eefbf9bc31f = 0 +438013d9ebf5ea1a620da4f836658bc8ffe01138 = 0 +483025d0b04e3700b67a32a7a67449f8066db682 = 0 +51f2a5ca1bdf1fb9eaaccb969f10b5a56c25dce0 = 0 +5301f560de05b892079852549be0790e95e617fd = 0 +5363bca4b64ceaf64d0f9989bcc2557571ac0544 = 0 +5d2fa86d73381dbf9caf97d8c19fbe9eccbdb79a = 0 +630ea40efc44ec723eaf8a189213bf901591e77b = 0 +768aa876269b20b03ce75d38acff6284dc29b5f0 = 0 +77431a96cbdda3af91b96947be28268b7ec315ec = 0 +7bb5c828a2b45f0d9f7eb94a6a8aad80847066a6 = 0 +942bb803e843dc2d679e7cce59e3f09c6178b389 = 0 +baba140254ca5e1c8f3de50d938041a29f2ea6da = 0 +cf0c8bb1007c2399ebfaaf3f394604a2d39c6b69 = 0 +f78ae077506b2b3e0b2c69a1a13e65549cf75328 = 0 +f78bef1a7f94b2a75fa6909a2c2dd704c81d3ef1 = 0 + +[06e1c1a7-607b-532d-9fad-de7d9aa2abac] +28c5446f1766f1ea0635f8c5f48aeb705ad6c988 = 0 +62d7ed488a67e64f3f20605bbba194862eac2525 = 0 +95234d1692d843e02502ff8e261872915312c6b7 = 0 + +[99720b0f-0d4b-5b12-b398-be149b96c7cb] +16fca743b82fb91172b88177953af4af35b62715 = 4 +27f6a8881e944a73ce0299d4aef241a43ec644b4 = 4 +2f2639a24a2560ee99e1b3e8552f8a3375aeffee = 0 +35bc94740c3afd4b974b45ee9921d028889b1fd9 = 4 +5976f77395b0fcfad30461dbda79351e032986c1 = 0 +6ef60e3396e313a042a86e8cfade7f88746d167a = 4 +7b180a57133e1d7e84f7bd78ba2c93e01e12d804 = 4 +8e21647279adb3722a3d8a0ad11a43c96fb28fc8 = 0 +8ebdbb7c50e6a42d022913b45c486a44d65d1298 = 0 +97bd83eb53288262b8ae98cb6b68cc0e5044132f = 4 +a83dc11dc6b9271a5859091e18aeeb9639b25ab3 = 0 +e98d9ad8da0ac2b6fe89d7e5e895875bc25bef99 = 0 +f5b2d51c31fb8ae8a1c24ed892bc5d6fa22f734d = 4 +f99a82b609721bddfa24976ccbcefd0e06135c33 = 4 + +[51948d2b-02eb-5b28-9840-c902cc6821c9] +1b503bccabd9f54917d61a4d6cbe365e13f6a64f = 0 +30e4897c79c04ec5fb8fa1c99eff237fda85fff6 = 0 +8a0d1909d61388117b167d5a2d160c4c987473a1 = 0 +914a36f25f89c2896c27e07090ac162827e5b14d = 0 +a825687c0b1b563d8dad7069fec86aed59356231 = 0 +d265268a661395a621375af4d645a30aad9b7468 = 0 +e388ea66e3d30fd6aa142d8d09725982b33e96c6 = 0 +ff7bc0c5c253d13775ff302b8e5ceae1e1070d74 = 0 + +[69470c01-11c1-51f0-b04c-03fbc3a7dfa2] +648b5296a030d7b4dcce3e091c71c2cb7deb24c2 = 0 +8a9e91fbf40c00e3dc16cea42f23ddc3c4438ed5 = 0 +d0355042294c7513a8d2c47a6708b84223af2d08 = 0 + +[9e3dc215-6440-5c97-bce1-76c03772f85e] +02269a3d6b6ff08fafaa2135df5730b5ad3f8e79 = 0 +07491c39d3b819f65f36ec57e3892238644afed5 = 0 +07b7841fd703844ecf69b5392bc5241fae56ee48 = 0 +1c1d71ce182fe28433d05d66f534caec9734a37f = 0 +1d1841a1faf0ae4999f9d522a5c9715c4692c193 = 0 +1e7b06675a340b88ddafb5eff4c5fb614b2c6524 = 4 +230e1df3158a5f273cc4811d3e925a397f8a897f = 0 +2dcdc61eca9946d62dc72b6f24bf55e3605346a6 = 4 +3165705a0145302c48a8ba9e81fce18d7ff4ca8b = 0 +3f8bd8171a0c85f7919b6ef9084f5fefe9409fef = 0 +42a73fc1a038ad73b5f7f41faf45072a1d6c186b = 0 +42b3c03efa9fb15b778264aee458ba82199e81b6 = 4 +4301ed5b9a8b11346851235c30f46b248c841705 = 0 +4828125aadb912f4128a3c399c9476f148c71a37 = 4 +6a3c1c688666c54532aa485c934a67d77966d4af = 0 +7175ac58749958077edb50e40e4880ed89dcad19 = 4 +74b23d50d1f8894d3323e2f2843f3ff387ee7631 = 4 +74f9c9b6c71fbdaa29b5283805ca02ccc5c889b2 = 0 +814122e0c5b68a585c28732e9f311d05007a9dfe = 0 +8220cdc547082e514ce0a80df89091bf9f3b9fcd = 0 +874d23a26f35b2b6a1a116c31e717d274ef7357f = 0 +8a333555ac7d76a560aee6b4df2f2604da090f8e = 0 +9247dac058cfc08651daebfbab2c0828656caa6b = 0 +94eea28160ce9c5bfac6dfffa8ba462030bb1dd4 = 0 +9acf25cb8a09382b3b829b8c6d475136ded577f0 = 4 +9d88f03b45eb5a199fc3f0c9f54411f2c147ac66 = 4 +9e433492a582b82dd4ba61b764663b05a02a57e9 = 0 +a06dd10a7502b2d8c3efc139814e9a4813d3a00a = 0 +a23d0a53a3b20832ef30b21f413320836644268c = 0 +a5a4ed72b3a21a8af3a098887aabf699bbeed689 = 4 +a6af977817cd11e8ae2ad0dc2de28b273a7b67a5 = 0 +ad708f7a3137822c28dac70450768fdb557f2aa7 = 0 +ae9473023b7eec6e27a5d01a47e178d43cceb6b3 = 0 +b8cf90512ea6ada3388bccd9e2061d50b80aecea = 4 +ba2e73abb88a8cd3640acc7679f1782dd747e2a8 = 0 +bc2dab1927ad632dc2ce2139bfc9d83acc0b7f15 = 4 +bd329eafdf58dba312f647ea2cf400a788de5944 = 4 +c2b0b971e6b285981d98e516f3c52ff656199a1d = 0 +c390fd4dec87298149de962a6c98c15e325575e1 = 0 +c3ef0ba3341ce21d61bd0ca6de96007feb195c89 = 4 +c8d6b1ff738f0c2b098610a36d7e8b75d8725366 = 0 +cd2a3f99cf73530c0704d540ad2aa60e017cb6b6 = 4 +d39db57c09df9698eea9cd02b8ea580ade341dd5 = 4 +de8e1360add131eab199968a3bebf31aa25745c7 = 4 +e3dbbbf8340064a71ee07e3c9f04c1da23292b19 = 0 +e42766c323f940a902f0da50bdddcbc61848a6b9 = 0 +e7c79bd45e555825e8b39cec4444d39a4a2062ba = 0 +ea16eb5ec634852b2c9e77b3416546ebb95686f2 = 0 +ed1c21523fe66c4540bdd5d93a4c2899fac30db8 = 4 +f5ed853d332fa646d3b8bc3f3e4199b364091e22 = 4 + +[7defe7b3-18b9-55e5-9d73-8414b6b0bce4] +33d518a05d2f8fe2992027d61ef794f3e93f5eae = 0 +408638e7bc4d92bb665a0058f0c3cce21bbe05dd = 0 +8346cdc2b31a577241a7173b4995415347a1ddb1 = 0 +894c894cea0e106652f9540b9201d337b928ba2a = 0 + +[209c9289-0e93-5bc3-a9c6-3b517a31ee3c] +09a42083799e0088b4bc5e52a0539af485a2ca6f = 0 +0a182f6c42ca0b9363d526505123608afb00c2c7 = 0 +445de950b0da7b012621a55427a251e24b5e2083 = 0 +63435b26bcda413b4a9e337ffc4ef8b15fef2e4d = 0 +75f477968e00bd77b97dd6db5374446f73556a9b = 0 + +[f269a46b-ccf7-5d73-abea-4c690281aa53] +09509a482915be49d1a014da39b31eacdb36710a = 33554432 +1275550544ec470213e6804d8cc96f08f0535448 = 33554432 +2a7a307e912cd8e237ca929902ed95d670769211 = 4 +32abdeaeed4d5f3e2f2b56e16d400a149a20ddeb = 33554432 +3486f15823d3d9962b405deda1a1a09afd44cd55 = 34603008 +3b6c94ef8484b9ce88604f8750dbde86fde239a8 = 4 +4cb51922365ef9176d52b87054d32a439b7314ae = 4 +6a422f403bbbab2ea62a42a5294abad034b56d93 = 4 +87a4798d9c36319350625cf5bde99f95f84d376b = 0 +8e73dab4c86f5ba2669eac878b543d485d07234b = 0 +9224a3d5848771ebb3aab9a673c0a6782a40e5c2 = 0 +94c725c0125dbe174bea293f568ecbd296f346ac = 4 +9b3db2c6c1fedfd6111255976791084a9870abf5 = 4 +c1b7b7dd9f069704b36bb86f99914b11e9b8c57f = 4 +c6de9d463ab5f6a2576417a849cc5bf2ad7cc5f7 = 0 +d56868b77c8335181618250547fc717a903b619a = 0 +d9a0e92033e9042a54404110836a8e840e37c998 = 33554432 +eb1109e1676822297b7c76e9757725ec3aa005cf = 0 +ece22b3bec572790f561d5442099eada21491b6b = 33554432 +fa63d7b3af63c106eb2c4d92981af637ca3b771f = 0 +fc5f1451c313d7c45cc6435990dc711e34e32ebb = 0 + +[a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f] +02c4f0d8a29bc21df042c846915fa7bdd3a3369f = 0 +06195b4a32e27efe807811b92414367001d2d4b0 = 0 +4798a4b415bcda2085193b0bc7d2062718aaa49b = 0 +5aa57b22dc377b59b887d7c1364e42c6d2aece15 = 0 +64d0501da0de4bba62b7d60b9b67122ec62f3e51 = 0 +b7a7be93a22ba874ba446edcd0f68a6a312dab90 = 0 +c4b51d87d58b2325291dd336f04ab0bd7c0568b2 = 0 +d140c94d370e850f1085ddfe9d5271d5522b3da7 = 0 +d36fa9316195bbec933b9579b86a0cb7cdb1b0d0 = 0 +ff6cb54fb8502e23191f031f8633d4e179443721 = 0 + +[9feee581-b078-5644-a8a4-58372fb796b0] +7e06269ebdcbaf95cb990420c20b7aa2cab7ade6 = 4 +fe9e462c58138a9c12f925af5ec9a1f68a069887 = 4 + +[03cd79ca-8c7a-5860-9d8a-6c8e1a175697] +58822e9ba8cd03ec47bb18ef7d94933912fdee3d = 0 + +[b1dd1ac2-3671-512a-91db-cff14b385d02] +269c93de4b48951ff423f393e63058a3dedc529b = 0 +5f48dcf2076c1d8043bd0b8fcd4442a63a12231b = 0 +ac2dda44e192c8a537d606f7b34f0a4ba84034b4 = 0 +b4831b397273673f8de5a5d05cde0a9e38ce6c1c = 0 +b75db1e1c64d7dec89613dd772da0f73c7779697 = 0 + +[7545e2a2-eded-5652-8d61-4d7be8e6d59e] +5878f12020e32dde057bf2e5c35b7225c97d95b4 = 0 + +[4225ea8a-3324-57e7-9ddc-5798a2cb9eab] +070380b7b5497813159467a9152a743d21d4599c = 0 +083a215431159f5ae26345a7c8b2e460ebc6ed1c = 0 +0bbb7895a5fa9d80929215e51dc56091b03811f3 = 0 +0ee0cf592222d581382224eddff9a1356512dbfb = 0 +1cdaf0ad32170c8385710ff717c0cfd4c1f69096 = 32768 +221e26b6ce62c2bf643584d9814b6e78ee2cfcd9 = 0 +2268f5a3368c3a189a9e9fa675e8fd458fbdb52e = 0 +36414d6b0699668324fe36cfc98c3af6590682dc = 0 +3d1238ae106c6e0b9a391c1ef6a916bb7129aab3 = 0 +52218844bc4ab8fdd3da41608d8a2bf7294c23de = 0 +53d9b557643763e6c82887ba3c23358d3fda80f6 = 32768 +603b5368e0f12f92ea706b93fd76af2080eb853c = 0 +64a0cb78fe8a267f285cb5693ca214f577a7a0aa = 0 +6a4be57efe0f39b9c963055253e03243ccb59980 = 0 +72a60375a79b43c6bdb6806d6da3024407eefb03 = 32768 +73ec700af7e830eb90feb9eba5485b2463fb5d2c = 0 +7ce41ea77f281e29e42b4decb33fe7b79bdf3380 = 0 +861074feadc3a53558f436d7d2454fb537a02cca = 0 +b2e9baf72e8faa8f9b2b6e7c4c5b574ec198d076 = 0 +b65a4db0273a957c39b7acb46f739ec2ffae579e = 0 +b7c643aaa6ed16f02a4d0760a9a8469f7907869c = 0 +ba52b7223db16fa19beec5a98ffcf97462f06afe = 0 +c29edfd411638827ccd03ea802ea6e2acb7e7f3f = 0 +c44f11b46fe057f7401fba71239e91bc9fb1a7ba = 0 +ca82bf6d24460b10a686ecacccb24ade98892ec8 = 0 +cb196e71bf7d9e62d82483d94ad344af7c74b162 = 0 +db9e19aef5d2496214e53a716e2af66a0557478a = 0 +de1d4256afa56f7d171798efb3e350da4627244d = 0 +e4d5d995f577442f40ccc7dd61011104d6866657 = 0 +e8c8aac1914cf7572814be5a8d50537c5ea48017 = 0 +f7217062c4922c9650a061ea2c42c4a6d2ea699c = 0 +fbfcdc238c11df96871bc340981fd1dc047793a5 = 0 + +[c751599d-da0a-543b-9d20-d0a503d91d24] +0cad9e47e24ec699c3a490faf6a346d3d09d98ef = 0 +7c2b2e963caa5c1feccd7a711a9d8b4f4f735411 = 0 +a6c839ae3415c4083ad22de65cdfd8acbf8a3209 = 0 +aa27df9559d16f6f52e5a351134d64a273d5ead3 = 0 + +[d634bb24-9f65-5729-b08f-1d6346c21787] +b7d5db8f91d8b6bced1b23cc20f1932934a9b06a = 0 + +[0796e94c-ce3b-5d07-9a54-7f471281c624] +0f9db4dbe7e86fcafabb30553520c2cb3561e0ff = 4096 +109f26d78d39796e852d9bc67cee14791453bceb = 4096 +26eacc4a7af9b2ec499be87fac6fa5f92e4f76af = 0 +2f4cf283b81c2e494e03e843f75504096c607c1e = 0 +4688efcce05fa4fff627bff02f094e28bb2998b8 = 4096 +65db7933c987c2337744799870efe638a8f2b1c9 = 0 +7a669a438a02c593daa65cd169ee4467e7dd43ed = 4096 +80fc211555905b1aaf89b17f6d2d5f13f613c797 = 0 +a576699e78d2d078329849e398f288a25f35ea13 = 4096 +b3c8238597432ab12d0c6804a4a751b2e5232745 = 0 +d272c6ce2e6efbfe809c495c8aee2cb02b035c45 = 4096 +e271aad83313337e83da996da83a8eefafa624e0 = 0 +f7359500afda80b355296587abdc9a55b736eb48 = 0 +ff2e35882f71ef6f2fd447e63d81582fe6c9643d = 0 + +[ec312bbe-3c21-587d-a7db-6dbb7bd4eda7] +e1a242bd98e7ed6e323ec7ef91cfd09048770859 = 0 + +[dad468f8-6d63-5d40-b2c4-48631a3ed0cf] +574472d492c0d6e22a0455b0c6f942c5b6e0f4c1 = 524288 + +[00d00faa-c8f6-542a-bba9-9987f051d897] +a2b5f77d46ebb84a78a8f0664023132c9625da94 = 0 + +[a25079ff-bef4-5fe2-9193-832aa4475556] +0199b0ad37ec539b05b1400560a3d61e0c8ff698 = 0 +162368c3ae695f10732ebcb5d899bdd8818ccf55 = 0 +27768836ab3eb27155c24e89bdb3498b9219a392 = 0 +38f933e3eb8f83d3817f3cc392687b210690d4d2 = 0 +467784e848c7d8e7c2c990e72ad157da70405242 = 0 +69a66dbc4f1195fc3c3224c7878efc87334cf142 = 0 +76ed7f1f11acce91f86aa25e634f59066fece6b2 = 0 +d0796788b12bde1eedefe1e4e711bbed0db3e91a = 0 +e2bb8e46012de7a87489b9c7adfdd01949dc1d4d = 0 + +[735ffce8-66c7-5b61-a90f-89c46d1a79d5] +271d042a61023c73aba9fef1ad3987f28b9d5e49 = 0 +2b06c65c0e721c1d40a914eac2700b6428539fb3 = 0 +2d1a7a583a1c74796d57d743e0bd81570f894cc3 = 0 +7aa2e386c398f04f83b8d3a093e0d3fd23a5abb2 = 0 +a4a3069bce44f79a6123f0d872371d600df30857 = 0 +bdf1df2784dda5bffd421854ef667529db1259f1 = 0 +d31355d288303bd980298c4aa3a3a5fe9c239dd9 = 0 +e09075c7c1f6c31ccad6367a16a7d8d10635de83 = 0 +e3a852f99ff10125134dcdbc48b43a7fe9c3e029 = 0 +f58385b5c53cd3e52c6617c0cdcf4c1f254809e5 = 0 +f5d8c6d4c3c47860a2fca7740549d800fdfed731 = 0 + +[3bb67fe8-82b1-5028-8e26-92a6c54297fa] +2bc177c28e9d25853d3f912ec2e1dc94a62fa1ab = 0 +3c869fac2e3cc2051340dfaccb6c07582f2b414a = 0 +57a1f80c410ce2dcb7f17aa31b914e9515c39db1 = 0 +6961cf07a49c73b9b1b5c0d7dea621aa7d63a948 = 0 +8e01d239da09552bb44360d282e7b5320a2eb811 = 0 +f178df689b7d74e50450f3f8434c629eedcb41e8 = 0 + +[9b8138ad-1b09-5408-aa39-e87ed6d21b63] +451efa320dfa19eb5fa8e1a829d558231541b5e8 = 0 +51d2658ec85992993ce31b6f4516d893b42783a0 = 0 +809a32d3261fba2050929e47d868f8f6f5577083 = 0 +abc3f39ef87888c73433a7681ee6545dc551447f = 0 +afd91ec82293f3f028be57d8887b5e2b4ce112f4 = 0 +e722b14e28e882f9ec5eaece1e04dd19cecaebfe = 0 +f1a4ea05932fd2a6b1098ea92b49250e2062932c = 0 +fa7e846a12158d735c24be8bed184c9ffc879dd0 = 0 + +[d826f7e1-9945-5890-a92a-4078320af7ac] +136b240c0082461b206b32c9f7943b91b1eafeda = 0 + +[58ea85f6-5b3f-5734-8a79-3d956807b916] +14cb8deafd0462b3a9cbaaa844a49cbe161e4b78 = 0 +2852d1308dab10a6297aa2b6277206aa93fdb9ce = 0 +2bc4c071f61ddf721f15d157410821a72c6dec85 = 0 +39e0398df68cfa6aab2d2b17a3a7b0bb7f74eac1 = 0 +9e9a228c0dea99852bf7f75c3858eb57331f4917 = 0 +9fa0922e4f3a08977e8d3b80928563379073b15f = 0 +ac7c633f4a374f4692bacead0f38b334c2945563 = 0 +c3f072b20c333ca6731a2f3b9511f256ed3c7108 = 0 +c464cfb5aa9f2e5286aff74be76e876a013df96a = 0 +f7454e95d44a0755e7e4a60843f8a83a5e2c3dc9 = 0 + +[8c8f4381-2cdd-507c-846c-be2bcff6f45f] +09900c2ace84c41dc3103ff580cd0faa5158bf3c = 0 +10414b9db15aa8def75fdd4a45b6460d2c6d3b8d = 0 +35e06fad2e6762253b2004cad728bff7524136e9 = 0 +4ad86bed218d9d8084510f2ee65674e32c6add99 = 0 +6bfd838fe803dccf36b974c8e95b62a2614e4d3e = 0 +e0e9c2295b62d74430ddb1e9014cff446f1ffbb0 = 0 +ed8cf4f22d264b4d293c64f5752a9e8c24e031fa = 0 + +[39424ebd-4cf3-5550-a685-96706a953f40] +1f40e0f45956372f9f602378306c4168da8a311b = 0 +72967a51c6ba2d71479d136d6f176affcfaa3e5a = 0 + +[9d95972d-f1c8-5527-a6e0-b4b365fa01f6] +1c4efb559a22be15004fd8072625efb8474403eb = 33554432 + +[fce5fe82-541a-59a6-adf8-730c64b5f9a0] +0fe926e429176f2417ac37d749358c24d69c4442 = 0 +2165bd8ba0f9608c00b6e01b025f49240702b59f = 0 +3d1d8db25b51a95e32a4f55eb019589d83b611d0 = 0 +79fcaf79c8324486d41d3ddeb0a627fd9d5dd56b = 0 +d3e1cf4e141edbc78fb32a94e75bd1ae9d153c5c = 0 +f2e4437d8740c960048f1bb0d302579ca4fefde8 = 0 +f88e5eee70bfd268596f997bd4d3387d2dcbc1cb = 0 + +[7200193e-83a8-5a55-b20d-5d36d44a0795] +29a0b6f234cee344279e188ed0a96e057b511602 = 0 +4318593032bb8777f46be2756d06936bb178f73d = 0 +53e63fb57754a093fc30cbfc78b4b829cf7cb584 = 0 +8502a7f191f7e19f11e2af9d1b11ea58e8e0f9a6 = 0 +8d3125590cbf32a09d07b09862a2dc402a69b338 = 0 + +[92393bbf-ba23-5323-a3fa-fbe1e5f35af8] +23c33a7bd8da33ff8bc1cdfa208d4f9d8baa36fa = 0 +9c72e835927b95664b851a0227fa0a6fd4ec4fc3 = 0 +c141483fd1fde67f745be10491081dfaee01cdf6 = 0 +d4b5b25817243f3879aed2c69bf5262b060f7d3d = 0 +dd0f93cb5b41c1ca564eafade2cbc2e6b6c221c1 = 0 +e74f6a8ce59f299351a271599673483a64ab1448 = 0 +e86dd7db82772cf7c240497fcaf1378c29b9498f = 0 +e95d5bb2a3a65befba624a7d217c1954617b4570 = 0 + +[2b727f88-579d-59bb-b93a-095bc3108f36] +b4d31cfa307252c50a64c1d04c9b4368df46870d = 0 + +[94a5cd58-49a0-5741-bd07-fa4f4be8babf] +0c3b3c65e68bb1fa68a7bad28b0e22eb617f3a60 = 0 +3da5437514a291b7b5dd9120d9b3d57cc2ca41db = 0 +622daf794a38a7a906a98b0ea7188bf282b9e0ab = 0 +8da382cbe0f8e926d17046259b4e1a94329c119a = 0 +fc4686896f772644824d4380866c67ec78f5fb93 = 0 + +[be9095b9-23e7-5432-9b9d-79c672ee5ffb] +eafbd17db92a1a1499abb3cec3440c7fc3b88298 = 0 + +[3672c612-5e44-54e8-851a-917fd182bfd5] +4f40af249791f1a4135642a56fed61676e93e6b5 = 0 + +[bc724e2e-2423-57c2-8f10-788c81380fc8] +1e9392e4700e7169cefb9b4a4454c9fea20cbe60 = 0 +213d6fd87f3e3f59c2ebb4c53f28c7791236bd05 = 0 +8fbf7026a6fb67dcc57d51f6c41a18975ce1a53f = 0 +ad9c042ecb530af6715e12a2296b7d3229661251 = 0 +e3ab7d8fb11cfd1ecc6476f1b63727b322066876 = 0 + +[9d95f2ec-7b3d-5a63-8d20-e2491e220bb9] +2e12a6133e977e73a9829f65731997fed45dbba2 = 0 +53bd1dc00b40bfc97aa6fc7d847894a137400dde = 0 +61fbb3fdc03084cf22226680bd14125b6ff87983 = 0 +67cd7d33cc27845632eb348da32005de69a93707 = 0 +899016651079e50c56b54db6e090427212ed88d5 = 0 +8ad4db2292792ef89498f58136c19f0a6868bfc3 = 0 +9570e5f2e21a3276015f0f8a9371c86f940ea255 = 0 +ccb6004aa744dfeb8cea952aa7ee349c488e167f = 0 +edfee3f0b1c037730a03f66cfa66a1bf95701c40 = 0 +ee068295f197804fe91e0b05accd06d9dfeadecd = 0 + +[9c2e70fb-c67a-5ec7-8d93-51b38135a8ac] +13073b8b3c4c796a3628b0f2105117677aa33b42 = 0 +17bf37d2f90173f081cab19ab00cad0f08e7b59d = 0 +2530372a9c7fe1cb134c1c93cb01025956ef3b20 = 0 +7a62f8bffe8aebe5998f01944d74d4f1968e5548 = 0 +80ac91389d255dff9eadb4a359b10cd2a48f7cd3 = 0 +8956082b24972ba0f10c94ed14cddd2a8b636fdf = 0 +8dc2718828e4b34d58d29980974f026e8e8d6519 = 0 +9c7fafb16061c94818b491cc39713464fde3502f = 0 + +[c1403bd2-e34a-5715-b454-1ca6f7e8d33a] +74bb6ff20985cb300961d72896f6c2e77880fe39 = 0 + +[28ea79d9-6354-52a7-8af1-38e01db141d4] +9d40eb0d7595db6f120a5e9c3d9a0dd4e2733ac4 = 0 +b683a7df2a00669358c81abba9cf548bcaaa1a33 = 0 + +[30578b45-9adc-5946-b283-645ec420af67] +09cb31ede431668889374f4945a0a6d983f8f20a = 0 +0ee051738dab941a467f1d49bead09b1d100a1c0 = 0 +1c4c5f2af17e57617c018ad060f0ec3c9dc5946b = 0 +3b75ccf85666419f805d041f26a41d1bbad29583 = 0 +54a8dd106ee6e261bf9beed5affdbecf593a6cd8 = 0 +6ae90da646ef8067ee523908cb9a5d90e934cb0e = 0 +857fe3d1797c80347388087c6e96daa0571e54bc = 0 +933fbcd20be0b31e457c7ab81a5766cd1b361c06 = 0 +df1c6a6344fcd8f81b1612a19d7f805bb52a5c85 = 134217728 +df52383c1e4fb9143b065f441f1f944e9ed3f0da = 0 + +[52542b9a-e7c0-50cd-8ae4-855872f87c14] +e0559852e578a025f62db4d2cef9a2c6f10f082a = 0 + +[9bec6418-d174-5fc7-97b5-85721dcec3ff] +4841d0ac1a2bbb68f2e1341992f7d6777e7144b8 = 0 +69e3f39afed966a2482f910446e509669e3c8116 = 2097152 +7ed534034bf6c54e75c1c22a077142f2ee22e615 = 2097152 +864d7ef00a260c1919088d21d70e906a517a15f3 = 2097152 +8e1195dca6cad02bf2bdb365b58376964f0fce56 = 2097152 +b281cdb688cf57ca3e287bfbc472d94aaea64602 = 2097152 + +[f306ff79-ba0f-5c52-9e7c-6e6505f53397] +8c71cdea7b02c63b8085ca40227e0833087f57dc = 0 +b8796c4425088a1b684967871a4de80ae3225965 = 0 + +[1cfade01-22cf-5700-b092-accc4b62d6e1] +0bc97d3c96c6500629bc3b814869e1688fac33f0 = 0 +0f3e79348bb2b73f8ae90a858055f439c83173ec = 0 +64ce1a25fa12cea1cae08e02087663a9f77c1afa = 0 + +[b8865327-cd53-5732-bb35-84acbb429228] +0292cbb880a4641cf7c70fa798fc217d9433e3a4 = 0 +2276718e3f32fd94a20ad104e72b6eaa7ac46274 = 0 +22b3b127cb4d8b697cbacb60f53dc0eb8927d6b7 = 0 +258148d4ab3a1cdb179714b25275c20aa22a9057 = 0 +32e156056dd12e71692c472a879341cd034a6b64 = 0 +388c81dd23eb23ee935c9ad36f1087bf7d8bce8a = 0 +46788a85344353f8223399ec6428dc1cfa34f9f5 = 0 +50805fcc20a64982e367d70061d92454fde220e2 = 0 +572d4ab22b4136e7ee74a2e13a9359d0ee0bb6cb = 0 +768e26f45b4b44d691a28554026b1a545943961f = 0 +8510779ae52d298692fd91a891bb459bfcb6c4ea = 0 +9179362035657667608b1d6d6776c6e38c66c3ce = 0 +9a7b724c19c4a51b8a1456d85c0e277766516bea = 0 +bbe44f2c8ac297a300dc0843ce4614ededdcf5bb = 0 +e2033525f2dd2d290da185ead6712f6099270939 = 0 +ebd00cd0ea77351a2cf95548d48963622296642c = 0 +fbd7d5bc3ac4084c4b71d3c5f13e73f41891ef32 = 0 + +[2fbcfb34-fd0c-5fbb-b5d7-e826d8f5b0a9] +a7b83e82bc49763d31612fcf6595a60230d35e25 = 0 +bb2cee5a53dac023fdebb2e7f8a1f1b195f90e8a = 0 + +[1986cc42-f94f-5a68-af5c-568840ba703d] +00fe4995b54b63a7d5b5e0ec7cb83b041156250c = 134217728 +2429f48fde4b9d4b3bfa61c0da955268feb8a99c = 134217728 +2460f06270e0ea0375778ffca4a8e1d6d0f73312 = 134217728 +264bfae39d42247458a78da888a0139a5765ef87 = 134217728 +2a4b520aeed1c25277451c6f0d81f7675812a1d5 = 134217728 +35f51c2905bc91e8999319819268062c22c117c2 = 134217728 +3ff0f54dd4137ca444a42fa553446470187993f3 = 134217728 +630e45c528acd4a4c08407b3b6066f87c02fa70b = 134217728 +65bc3869ae0909f6cad0ea163bf9c5ffd4215607 = 134217728 +7cb4eefeb9e0c1b4761e432004ccf216cd2dbbec = 0 +845a05785e893cee3866ebe6638247665bd4f432 = 134217728 +85c7dd47203cecc6e9a4cecaa6098bc2a29dc8e2 = 134217728 +86f193c0432898a5d6295678118d86cb568871ac = 134217728 +8b8807b2e15e7d2f0cc950ff8ee100b652a8d7f0 = 0 +9bd63b4bd42855b8b44609e466daeee8f47762a6 = 134217728 +a429e565c76579d0dae29a97bf782c587ab8ade1 = 134217728 +a742ba2c34c48a3f7d21607ffdd02c5dc87a2932 = 134217728 +b1e491a39cf8b5feefed544223d7f2478704c5bd = 134217728 +c54ddaf4aa22d7e06085b5c6496ef11cc8a6865a = 134217728 +d491c10be6e7d2a6e9fb5c9f93b345fc35a80298 = 134217728 +dd7b31c70ff7d5f1544fadd4262044e0fd5972b8 = 134217728 +e7188bdefda8d1abfc35efcca11480cab2bf6eb5 = 134217728 +ead2d961cc1ff3d4c48cd50f9fbb306ad4ffb830 = 134217728 +ef27338a18c6b394344eecf9b3172f34d9fa1ec8 = 134217728 +f544bc68fad1679ec169afadc13f73fcee5f59db = 134217728 + +[6fb2a4bd-7999-5318-a3b2-8ad61056cd98] +a0eb1234b1668691f2442009724b012948917836 = 0 + +[6112ee07-acf9-5e0f-b108-d242c714bf9f] +223d797ff3c182da4e61c1e292c1868115f1b2fc = 0 +3bf8ff2942a4a84f4ed19c081339dbbce7a09661 = 0 + +[6043864f-155a-5464-b5be-64e090a46784] +f249d5a5ec4d317a8ecc5fab8b5d9e9fd90fbc40 = 0 + +[7dc9378f-8956-57ef-a780-aa31cc70ff3d] +afb6215041089856c664a7526a7c4e4f7da4875c = 0 + +[34c9ecfb-342e-5e3f-98cd-df711e743db1] +085f1bae3be096858b7dcdeed6bdba81947d0237 = 0 +57da37796874fbd6a76aded2dea0eec910d96b1e = 0 +6abef74e7332eebcdc4b7e475ca8ac097d714b13 = 0 +8da17067484e2ec277d99d4f49e601201b91e2a4 = 0 +a7295de641b7492ed803f93386783bc0e4e8c1e1 = 0 +c727f0eb02e81df3035112407bedb32e94014238 = 0 + +[cbff2730-442d-58d7-89d1-8e530c41eb02] +0cedf72778db0f13e35cced1c489012c46ff0663 = 0 +4c138f08e382461ded0484034acafba03bc90abe = 0 +8f895e7ca046a63e3c0167483169ba2f7efff9f1 = 0 +c03f4ab7a843440f4e7a9202eb15917f6a3f028b = 0 + +[9602ed7d-8fef-5bc8-8597-8f21381861e8] +85f2ebaf2165fa1bb3897057c538604fad32019b = 0 + +[e243d093-f3e7-5ddb-82fd-a47193d1c26f] +67c0ac679b335c6bdb88dd51089fce70a8f3394e = 0 + +[a64fb144-f7fb-5565-a479-9329a0587007] +99e7f136de5aa01b7af2e89b95adaf4919babf0c = 0 +b8939d203ac30edeb00fb5425db8671655bf891b = 0 +c38fb2eebbde787bf0646dbaab03ed007f42fb56 = 0 + +[ae67c156-61e5-5f29-8b53-c30e05e1ce0c] +16764c37f82e108cd0359374e270d1d3a0b62e08 = 0 +1e63ac24fda2748429272a7e699ffe6fec3edd57 = 0 +5550184d986d57f7e819aa17f9755a8f6f4a3b65 = 0 +f811d5fca13579698ff99853eeb0b9bfc3a681f6 = 0 + +[c8ce9da6-5d36-5c03-b118-5a70151be7bc] +b0fd34b4eb94a51afbde3b98d2aaadb9b3e97cf1 = 0 +b389cade5b31c51245fb0278817900685658e486 = 0 + +[04294c92-b9b2-5258-861c-e23397c8ec5d] +10d26d9de535da7083ae4e8f437e621d7bbf79af = 0 + +[641c9d1b-7ac4-573a-b895-dc361a5cd6fd] +04114f3e8b2e3357f0303b613ebbd9d5ef13ae7a = 0 + +[7774df62-37c0-5c21-b34d-f6d7f98f54bc] +166dd8f1b3de66869cca25a7c6c19fa09d808f04 = 0 +1aef752bad3219f5a624a6549fb71cd6280d23de = 0 +a25a05bd860265772530948e55cb33491ca73b0a = 0 +eae296327e2cdc9fc7e14cb49f953bbe28da09ea = 0 +f0ea1fd23ec24579763ecf8382c92e62b58aeb1e = 0 +f68a69d21ddb15bdf208065650264b026089e5d1 = 0 +f7a02f318e70343671e901fc248e834f11610b47 = 0 + +[d621b6e3-7715-5857-9c6f-c67000ef6083] +1c0b48fda03132b02ef0550cd637785935d80eca = 0 +1fece61e7d9c97cc48e824156e9830201ec6bc8b = 0 +390c5e4bcd5e50762d30192ba7a9ec641b9b7ddc = 0 +3f722df01a93204d9d7990749227bd3520db2780 = 0 +45843133bd2e074be228e702a9a7c9b55e031efe = 0 +4a3a07c2c840c7a4e235bb1d2ae62f76a149aaaf = 0 +4ad8f411678c0b169e4cd6c6e0534eb4868092bb = 0 +4af546dc3f194e402f83517b299406701ad19592 = 0 +50eb702310545f5e02e97e7a80b8d83774163396 = 0 +67f3b9aa91d20743256bcd841d89bb8b6b5b4920 = 0 +a64e94873f0d812afaf8c7c71135a513783c7eb5 = 0 +b205150e3cfe591ba0794b35dc8ff055fd96d59c = 0 +b85d1550529839f8adb8f960d755e00f3f001dcd = 0 +b8809dcc0ce9e63219cfd8fdd357c39b1ad69efc = 0 +e41f2b05eb04840b535d3848ff4bd6f058cb6b8c = 0 + +[c74b26e8-f247-5d24-b013-c11a2bbd97c6] +f9a000995eb005a83b03e630d353510dcb4d97df = 0 + +[58afcd03-4a3b-5a28-93f1-5806b9460cd4] +a8359523cb97075847697d06d5e0961d8c90ec87 = 0 + +[98cad3c8-aec3-5f06-8e41-884608649ab7] +0eef0eb66f5e7954fb951f71b36570a8ede5243e = 0 +12d3c0ad483d4c25090fdbda92c24ccfe0be816f = 0 +220145096c0d918689c836b7fefec4b50f155ba1 = 0 +5bc9e08c367855b1d4d9412ff1ad6131047d4af4 = 0 +89dfa52fa9679964619a4d857234032c711d0c9e = 0 +b1f9af4c2fabe83b3d45b2dd2d38e520bdff10af = 0 +c1a33fd5c399305099c4a56ba89e73b7c0baa0d0 = 0 +ca386cd183e5fb012eb15eed16a46ad7f0f65213 = 0 +e41facb8d58063d56630751f86237314fdcae765 = 0 +e4585e780ed49b2f857233ff6f1887761f2c51ce = 0 +ff93a1c5b4ad9e8a9a79ef33e48c4838ee4198db = 0 + +[4aceb6fc-b794-5e89-b0ac-b6eba507a4bd] +16d2ffb629fada7be8cf6a589ddfdbc114a919f7 = 0 +2e34ac23fa8dee48892324793e7c514ae53a1361 = 0 +5e538c212006cddc620a7a0e66c947d404aa9211 = 0 +d75bc10925b7ac1d0a3e2a7bed05f1ea0094d505 = 0 +f7d17f436dc0b4663c90bf97a0f2128bd27f82c0 = 0 + +[1becfd5a-13be-5cc0-ae8a-5353609a805d] +7fd0f512c5ca8a4bd23943ee7a72ac1ad6bda252 = 0 + +[28b42770-66ae-5747-b898-823420be94f6] +cd4e6f26d3b67cff1a2c8ee6088e59877d0e1b78 = 0 + +[1b8b39c6-5c46-50f5-9c36-ac18d7f28ae0] +6e72e1efaa6ac8f113d9c269fa2523a90720565f = 0 +7ba66554ac9049f2c38701ce4eaf31c22a25474e = 0 +d3017c1d4bdd1fe194fde73d4e3534191d67a093 = 0 +d7729f0433cc9b21519765c90bce9fe27e87092f = 0 +f7276bf633be494931aeb7d28622c032d0d4818b = 0 + +[f79a5470-17c6-525f-b62f-3ca7bd6eedf2] +3ef61e205383726ba2aadce1754b3bab76733e70 = 0 +53f7012f0f8a97f3eef0200ec2e4a56b2ac7f9c8 = 0 +598d15b86568782a4b84a81fcb5980baa18163f0 = 0 +87007181deeff517b65ae25795c289fadc3c54df = 0 +f095ae62682902b8d3cedf85652529a0818e135a = 0 + +[922354f6-6876-5285-8954-7bb8005415d2] +74eee46d56a2bf9e4ab7dc32753d7596941d35e3 = 0 + +[0e69188a-a5d4-5622-b4e4-a72373136fc5] +33955a3a3a2ce615ca682cadb2bfc4af0c9ad963 = 0 +66ee005806eb8e7410c7b84cb902771a8396dbe0 = 0 + +[5729c670-c28b-55ad-b33a-9fe1aee78f16] +05f2b6d32436c02920585067bc55e7725e2e3462 = 0 +0626de46a99e0154967ba822d9c8d87718e4abd0 = 0 +11815a42c2419f707b29585135494d152b09c055 = 0 +19213d8100a4589a00774e26fc39896fe06d16c5 = 0 +22a2b81239f08c9fedbef00b06e727e641a826e4 = 0 +2d4e02c479d86617b31fce5cf8405918407693bb = 0 +3cc44cc591bc03bfe1199b23e35245cff27d44f9 = 0 +3dfc33ccc6e5f2021707809672dc1821d4e500a4 = 0 +41d68862f18b55d465973edfc62ac4c418a18e22 = 0 +48d0034645cbf0db416a1b288ca1e51510aa8183 = 0 +5662a8fb8207224934f33a26e85d2c0c55d261bc = 0 +61ec2a9923705bf7b3ca761a79efe244926506cd = 0 +703a854f1f084213465e07d9379400628b55cf18 = 0 +79441fb604c92525744444f9f9f374234e7ee6f5 = 0 +8b7badeaa0c437c434c2922b817361829215ce39 = 0 +8ebc78161e96b498c8b1a20f9811dea9499d0506 = 0 +94bc84d33dd61541c52d616436be044e3b039289 = 0 +a0da46b2f9d828769df9ca4ea63b01cca2c8adf6 = 0 +a36c7d34fc5a5700b32a46288cdc4059c7ecf206 = 0 +a579fc6a80d1427614f01c1adcb496470c6ae994 = 0 +a9fcabfec6c22ec2569bb25d8eb735c0a4b27012 = 0 +b0d7d5146898d3d661da6c5c342a878061be9832 = 0 +b2f6bbda6ea8e1dd377b1e1ced56315ebd4bd37a = 0 +b3420e517fd0b85a44dc0dc70acb70f283ad46af = 0 +d4b9b329a93d693b46af8f3c26c638a53d70908d = 0 +d4dee4f5329fb20328cd2d7f8af97615222b5c79 = 0 +e97ebd6d1691dfa4f162183fcb8063436ed5cf48 = 0 +faed8ab07e0618982378f8d4b9d88a4ff5b6e750 = 0 + +[112f6efa-9a02-5b7d-90c0-432ed331239a] +05e1f11eb4a01873f17d66baa9d3f3e20e66452d = 0 +0606fb251ce5c9348ee8706d092233d8460ab5c9 = 0 +a63916c506b1f70d13a96a43dd0455ab25d0df2c = 0 +ecb3172517e57b14ffe5d1d2c7fe42432d73b54f = 0 + +[c05f3a35-1ef6-5ef8-a85a-d2e61fcf9436] +93849df1adb1e6744d537d799b1a6fc838b89b16 = 0 +94f4bc137ab3e5828c078a4fca945114c897eda8 = 0 + +[1cfcecda-3531-5955-88e9-4d9a0801da84] +91af2e648bf4b46aaa914f4052abbeb7feb68eb5 = 0 + +[d6d074c3-1acf-5d4c-9a43-ef38773959a2] +146fac93d32aa3a7c3c7e158ea731ef1b967708c = 0 +26b301cb9fc5bd7929e2d333ebc52bef7222fc6d = 0 +27322321ae988a22e9e140a7ad1c7c4b9e721c7e = 0 +29f4aae488cd5d8fb194cefc98e431d1a17393c7 = 0 +2c3b2ba27d067842a4b8dc3da7f16ae695215f2e = 0 +2cd2cf5670ca75c13f92a3778c8c632438ff6060 = 0 +307be308c1724142799d93b63f3654ab7be12a1b = 0 +42de0db1452f1b53c359f22d64f512f25e3b6616 = 0 +4dd0287709762edcb1864b3fd23a3848e00a2860 = 0 +5d4ac3745bba6859c15c761693ebbeadcedc6fd3 = 0 +8c5d40085aab36cd69be4f0772681f8409f11b87 = 0 +9d085b209ceb67dd48b9414e1907a1035024455c = 0 +b9008d8feb56bf3032ee8f48abcbf449e54b80e2 = 0 +be4f4c6e24c75197588d64c8b94240178143d53f = 0 +c1e6b1a8a300fdffd782f733106d9fc563124f64 = 0 +ce38d789e8bc305aaa363c3be2f93dba3b2a0ab1 = 0 +d84b8208596d474c3c9fa26c3c0264a3ab0392e3 = 0 +d9754da938c534e25430ebf0d8913cfdeb441b8c = 0 + +[26e3df79-567a-58ea-9c5d-b0cd0a93ad6a] +1053ceb1cc8f3552759f56aa1ea007a9ddfb215e = 0 +496b11d94a765b62604aad3f8e50a376951cff5d = 0 + +[961f58de-4b49-5c3c-9748-6bd4ff1bfe02] +2101870250242d44b5118dc5efa7cd8680f7c89e = 0 +fe37a095b943d779236c2d3075bf5e4ed4a2750d = 0 + +[34922c18-7c2a-561c-bac1-01e79b2c4c92] +40148ff4afd2f40d6921e2324e7a726ca48bd3b1 = 0 +48c469903aca5de8721eee511ad327037320fc4a = 0 +765f11ff7300979623832523e9496fd2cff12a46 = 0 +7c72a0e214005b9ae06baf98da5de06c67d5ee9e = 0 +b09cae9b295921a204f6602136688752fc8be89e = 0 +c86ca0104b0940616aa8f7a75a983265e07aeb72 = 0 +e72c0a08955173b8586433243e2b392aea612958 = 0 + +[c928f85b-ad91-5714-a68c-509590f6e021] +274fcf2a8a61b2157edd6e5164e6bb2fce5dcb8b = 0 +37d52f072f7e82a15b86e32f3722c5d95f0d98b0 = 0 + +[e3e34ffb-84e9-5012-9490-92c94d0c60a4] +18927c086d30aa6d4c0cb9bd0d2dd97aabd1ec2e = 0 +191a38741f36267fd29295c20ceda7df7d33300e = 0 +1b9935e49f6f2e710759b0749edfe3e51a594ec1 = 0 +543f8561678954eaea72b2dd470489b7ca61268d = 0 +b79c740fbc9b2abec1c58c1add2e4dcdbfe2850d = 0 +db8b92ee54d7dcce982fe590e79c822bf790dbac = 0 +e3eee09805277e439d640826129e830eda66dbed = 0 + +[72f80fcb-8c52-57d9-aff0-40c1a3526986] +2223cbac2e30970608e499a3bdd29659832e254e = 0 +279f625dc941f9e09c3d6aecc76294746befe602 = 0 +6c0ec6f0f1cf18db076e77f387c8959cacba2338 = 0 +9d1b88f998c842e8ebb75182e11e90821d8043df = 0 +e2f860c14aecc7ba60d500c6d35e3aac5b8a4f5f = 0 + +[cea2fc95-2ef8-5908-991d-d86c75f38453] +35720c44c05304fb3455c2978dbc21803ce98eb0 = 0 + +[16167f82-ea26-5cba-b1de-ed6fd5e30a11] +dabc9ef06749389f9f640faf9c00b4c8a25447e1 = 0 + +[8149f6b0-98f6-5db9-b78f-408fbbb8ef88] +00dfe9a37c86ccdf57cfd1b2e5ac70a2a6cae4eb = 0 +06941dd0f84beb8bcb744ac4e33233d6a9ee00a8 = 0 +14df1bf6fb638424824592ccd96b690f7439b7ab = 0 +15993e901c02bb00479980d4ce2b06fd6e158564 = 0 +5634caafedd6ac06ef5e7c2cc8ac048209618e5d = 0 +6dfa91602f85725eeac0bdeee1a83b2a6f1cb238 = 0 +81347ac6c484d4cfe36ef04b79bc296d39ff140e = 0 +816ad6203c62f0b0247085009dc1c3ddf9efc5fa = 0 +af618d43b82a242337e82c62517f9f96af1ff88f = 0 +bc4d8b5c383209cd6a1e150411261c9ea207fe3e = 0 +c32ae53ffd6a62e15e3119b6bccb2a7df1d33adf = 0 +ca477340ff673edd438d04ca7e39279bc227e491 = 0 +d3ab995342c109695d559c1296ac47e7c5bb067c = 0 +da69ca00b84f02861bd68e18226d471799fe0927 = 0 +dbcecd37a8ba01109b23605f47bd78430d99ca8e = 0 +f0db035a8f410c0bd49c5b65e8bad5d495bbdb17 = 0 +f0ed3cdd48591b6fd004c8932f8b1887607340d1 = 0 +f0f4eb17b1a072646d49231a4520b98bbe9358f7 = 0 +ffc183745e29cffcc51422429566100be32e62d3 = 0 + +[15f3aee2-9e10-537f-b834-a6fb8bdb944d] +23246fe5a9d6a293e000d72c0221483ea8c21035 = 0 +3e6b36cad77a8810ad10b4933b78838dd2f11053 = 0 +44eca22eeacfd784e83b34212d835bd5d5b35718 = 0 +88bff825e6413674c15ca1a215c0c6192e92b98b = 0 +9c740fc35adc90937e0c88718d1119201d77302a = 0 + +[5fdbc85c-1502-53ba-8f11-285ddf4aa9e2] +147786c7fb1e68bec77f988b543b35f2383631f4 = 0 +235a64b07810412ec318170557622c071e95c3bf = 0 +2445d2f4ce11965749cac824c46e35d699aca665 = 0 +259b8847f6362ac73307aad4082b8e4036fa5851 = 0 +6969ab2c4c902fbe1af32b868d9aca063751db07 = 0 +6eb8c34c91f7dd417e38069848ba44b7dc2ac7a8 = 0 +c18bd0f3610292dda0c8a99f50377c17cd880828 = 0 +f70fc751e9d3a573d528c8ef2df5e5225ad8db5d = 0 + +[0818e8b4-bd9c-59ff-a62a-597382e55725] +03933c3c6396bde5470cc119e00889630e5c43de = 0 +59bd0b99e820b5ee367e825c4afc2363b96d669a = 0 +5ba878ada339acc0e3c50bdc2b26fdbbaf1097b5 = 0 +790438da3e056d0e00e72e6e5c136470fe645bbc = 0 +7b0ce44212170a4d222395b8fc1a04da16f6a8a3 = 0 +7b1b528edab76a0b4b4179a2a4fb453a054860f2 = 0 +7b49e233c5d284d7d95fcd0c4de0a80475d0b852 = 0 +7fa7340eb5896a5fa0845db6d92f2ce31451bb3e = 0 +830c086ec8a7d03050c4506733241f72851af08b = 0 +b0132a92ba76a95ffe54381d1245680d6d2120a3 = 0 +c62415b14b536dc2c83d50471477503a90755f22 = 0 +daa775971006578ed3fea6326f8bc9d34858979b = 0 +f177043a424aefd5b113c0680269e5a11834e8c6 = 0 +fd8327b0f49e2a1fc7b4667029be595bccadcd21 = 0 + +[cae8e8ee-2945-58eb-bb0d-8aa7cb85bad1] +92690d8bfbcd9b761706200a9926c69c6d043f5d = 0 + +[42dc638b-f25b-5678-89be-0040dfb9a435] +17ef4c8132a98ddfeb7cd4b385b45f3c80d8afd1 = 2097152 +58df7444719775c363c535a265dbf46e3ffa9317 = 2097152 +65b994ec735c5f43099b763a535a20bcf0a1fcee = 2097152 +6dbe9f70a6b51f662701a326ed5e448b7772ff57 = 2097152 +73f02e7c18b6d044739b3fe99ee3c376e1c9361a = 2097152 +9daa97f09c9bb7fa1c6cff8c5a6af67d3a9b0468 = 2097152 +a3d4db7231cfe88b01d24f7ae509152456709054 = 2097152 +be5b10d591e9b32a98d7ba8aa2850d124d1337b8 = 2097152 +c7c80534e8fb31bec475bc4f4a0dad19984efa26 = 2097152 +e4aa600643fd2288b6114f42beae8f2e0eac5804 = 2097152 +fe0c52940debe1a29a7bc4225bebc303154dd6dd = 2097152 + +[adaf3d07-42b2-577a-8487-f34ffa1a67e4] +95866c0b4b8495b5305f6f357c982f3dda809419 = 0 +d3cf086d73391788d142cff5ede91fa49f3298a1 = 0 + +[35b54cfc-a451-5a54-a69a-9b99a7b670e9] +82cdda0aea5e7f5e107e7de0a57426747a02a34f = 0 +ed62a02f0d5b2fc8eaed23b93af9535bc6324ba9 = 0 +f4a85f173ef45a87580a44c61d84b9369320a845 = 0 + +[29a6e085-ba6d-5f35-a997-948ac2efa89a] +02c17b0c7b7c89a3cd44c942d3ecd6766c3e5b77 = 0 +0e2ddea9d6ecb88d9065f324caaa5a81a87cf848 = 0 +5b577f900f76e3329a95e51fd0ceab8f3240fa10 = 0 +64629321379cc9f4a3a398132a60cec7d06d4073 = 0 +65379cd0115c120aed79b9e2ddff600d0fddca9a = 0 +6d3e43e0a000daf65d62f7fd9336e7226df8f4b9 = 0 +8be4c1ca2ced1944354b3c0f7e45c312c9cdd0a8 = 0 +b79b079e855b19644c344e8808f774c553433f7e = 0 +d0eb86de97ce86d220027966ebf956383ab06dc5 = 0 +ee0ae2c63f7ae43fdb3b5f09bfd4a70b714a27b3 = 0 +f68dc9c7c84c350b6ceb13bafc61e2fbdf0b826a = 0 + +[ea10d353-3f73-51f8-a26c-33c1cb351aa5] +140ee9fdb83b5e365d2dcb450043c95bfa315638 = 0 +152cb5e6698fb183429e9d9cc57c37917b208e5a = 0 +34d5207e0c3e0c4b133ccc8d226a9e509e530df1 = 0 +34dc86ff7622a9e1959e0d33ad050ae6d04a28b5 = 0 +46363b01436c6f3c787d0265991783b0574f0460 = 0 +4a03ad423419c20bc26f8dfb2d7d55e35fc9518e = 0 +5bfb17cde0044776b7b77b776b2cdc4d11d22892 = 0 +7dd57d8168c045459f64045aa985bf71af1bc16d = 0 +98be3ab08d94c2732f40e6f4923c6413e6dbd787 = 0 +b5d25435fd90b212361f82aa64acca52aa25666b = 33554432 +bcd2f0fd03bf42946ef7498064561981b427c264 = 0 +e4c4abee99186a590cebc45d97dba3b4b479ab8a = 33554432 + +[44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9] +06c5933cd1430d3879cf11056a348c89708f67f2 = 0 +0c36d034365017c045bc2aed2ca2c91918025193 = 0 +13670b1620f19e36f7cf9ec80b4c048340ea1ac0 = 0 +3c1e0e87a9b117c52e46568fb9b4ab60c8a1bf98 = 0 +562968f9be234779ebcff20f160d7235b286bbd1 = 8192 +6b65075f0d9a3f24a7f5f2a5d21f26edc2f978d3 = 0 +6c2f0a7bb5c0c1e3265a632ef90c56450d09f3a3 = 8192 +6dc482d997507860ebfb1195d396576c5d92819c = 8192 +784a524d86f60f6f8a6ee7bfb37b03af285aa12d = 0 +87e7965627c526c61c3671bc2a50c91fa26aa512 = 0 +96bc072619d27022b4118e99b891172ccf6274e0 = 8192 +97f309af1928202ac3540dd977fa209bbbfe0d24 = 8192 +985b3b1972971edfca9fcbcd41c6d1b87f6c3c38 = 0 +a4891b01a8f20557270f827a9c5a5e5e7c25ec6a = 8192 +bdedf37e5b256429364f8370a11ab1fe05f0e22e = 8192 +bfd163e50fdc2b55af7e88a7bfdb7e9a0610fa0f = 0 +c61adf1230dce157821ef535143d2f5bdbfaf7bf = 0 +eead8f24a85fbe7354bc704e1f9ed71701470fc0 = 8192 + +[6b7e669e-aaf0-5406-86a4-2fba62af78eb] +a3292a748c58300d8ed92ce6cae4a5b0bb53b31e = 0 +ef1c292da107847d9bc518c72250d04e7ed83a29 = 0 + +[104b5d7c-a370-577a-8038-80a2059c5097] +01f49dd9d6cd7f2ce0202584830aebd61e776523 = 0 +0cf26031a5b1c270a91507691bcab7ca4c7429f4 = 0 +18a88a0300b27020acba04a0d50138ba710b0f95 = 0 +59c56f988e783a9da67913ec26286831b4762da0 = 0 +78987bdcc58950b2a314ffff9e93da9f041e1bc8 = 0 +872977efc0d23c4aaa1e0f7be4efb87baa18cca9 = 0 +94d52ad899de727a281e8e1b5c4c07482e3011a5 = 0 +9570932ba379a8c0756ba98f7f5e777c6d581816 = 0 +967d1c13028ba5e78313a0c17c24e4fbbfd8b861 = 0 +a90ec32863e047aacfc66b4d0193497df9e4f80c = 0 +cb075879c7346dc70cfcb16e5147d236b1ca9e91 = 0 +eb16f72607f8cc0dcfa191836cfa5ef3ba0b0421 = 0 +f175982e6469a20ed2133293f4ed4cfbdff39f0e = 0 +fa01c8ad7bea63bcc672bda2fbed9e34adc257ea = 0 +fe3b5d13845dd396a392f19626e8f626e33e0c42 = 0 + +[051d7522-44e4-540e-be03-d1c94a7ee7ea] +0225a5077146edd4a0b39e3a0e91bc6fe017bdda = 0 +14cc8ce4084a585c9f4ad6f3e14f444dd23d1c1e = 0 +18c9f7882e9ae5ebba99f747b48f9d2ac880721a = 0 +1c476e15a749b6101e563938b9430b888e6735c1 = 0 +287e79558e88857f59329935531a4e75ff0c1ba0 = 0 +592e9703f4d61cbdce35c268e4edd5a77bb3196b = 0 +64581ee4431b78b218927d649756878c6df1b1e6 = 0 +6faaefe653ac6bb11c58335065b198946f254b3b = 0 +719c904321693b9fb5de87647cbdb78f76224ddd = 0 +79a986be80dd747568c9b27443b03aa3fdae3e7e = 0 +7aa1efdd8de9640c398e7be5ecf1376535c11597 = 0 +82d1cc83dcc51406d2fad9d81dc103ae58a654f8 = 0 +8cde48775a27a086f03731b35f784d4f220b7a20 = 0 +a1b55165b0cf85b0e22e2e88efdecebf209e3d42 = 0 +b26dca4e9d4d41612cb50e66d5652816447348e9 = 0 +b9fcbf290e582f9b48437ddfa95a64db20b6edb8 = 0 +ba7e65f76bc330b62dbd6ea5d1a371621bf4d74f = 0 +bbfdd54110ea7ffe55b589a9f1ea42420aed9f6e = 0 +beb8c034ad17d075226323caf3570c9abaf1d771 = 0 +c2b407da6555ae1ad2fafbf064f1b256eb4ce138 = 0 +c61b599324691ce077d73fc6507108d7e1cd7c02 = 0 +c84239ef91ba9d0b45703abce51daa3c8ed789ab = 0 +d3d4439aa143ec51830d61d632c8e81981f67d86 = 0 +d9adeee93625f4bbaa5882b501769e41465963a1 = 0 +da5ea0886af56734b865b9c3db6e0b6c1110a8c7 = 0 +fefc2da54aa6bab92d8907e975015ce936dcbe65 = 0 + +[34107986-0299-5882-844e-fd949a1ee147] +459dc98b7a0f96fd8219717bdd73918ade9dc9ff = 0 +80bc656d389d19701ca8297bedbcc84468c96b77 = 0 +834c5dbca4516c42d2435d6616021ba863509b8b = 0 +a83155f180b23c8041a54b2dfef51c544ab71542 = 0 +ad4e8c2643ab7d46cd082a83b17722712c0914d8 = 0 + +[a5aa80cc-faec-50cc-96c6-a95fd318f3bd] +2b4c7e5c783295dcf90e5c3ea6dbaeef5a5cae27 = 0 +bc4db1234b3c48067c9db41ea856fd5bdd15c29f = 0 + +[f7dbf8cf-5e5e-596a-b7ee-19a3f6d1dd5e] +00e63a61bc2e033de7ea4a4276d79caaeaed1052 = 0 +7003fa9b1eaa2841ec6841521188f0a144bd5fda = 0 + +[c614d7ff-2012-5f15-acdd-86d383a40c25] +4a858fdc9a5194b0d85d562fb7b1417b6b11b19a = 0 +54d216782d3c724350b1e3ed97b557e7729de2cf = 0 + +[9f57e263-0b3d-5e2e-b1be-24f2bb48858b] +32b8e131651e9364ef5cfa106ee86f833aec5087 = 33554432 +9350aae4694c3934dc299b9cc7ef0823411153c5 = 33554432 + +[a3e2863e-c0ee-5ff6-a523-307a4cdc8724] +164374dcc161cc1e607ce5e2b37ff6cf56d6f6b9 = 0 +ab1629f801ef9af3915c14b20279cada5324aff0 = 0 +b8c865d332052fc95e556dc52cbce2a29e6f173f = 0 + +[c17dfb99-b4f7-5aad-8812-456da1ad7187] +0312fb0873701d761e0946e6d3066bd70e962d42 = 0 +046300a042afca8c6e08aa4c485273e0074e38d0 = 0 +38d778689678e457480869f2300a1070b6408636 = 0 +3be5791e036ab5b307ab68adc7c00d3bd467ab4f = 0 +447e8fb8d0d923e2877df9265c1f41614533f93c = 0 +59c5084acab6189c73606eb81e32d86c288b8d52 = 0 +622b69ac7c57ce815c31431529a1184e175c230c = 0 +68c386fbcc537dda5d700adef8e482cdfd59fdc0 = 0 +7d6b190d9a264d68458810645a3d02f5e81d2238 = 0 +869acba3f92e2721430500426f07084f94b85120 = 0 +8b606a793ef519687cf4bbda029a1bb2c4744ee2 = 0 +93d52a3ddda49f95355086e61ea1e7b03e093da9 = 0 +a0d80507c46ef4ce0f1a5636425ff8559c048673 = 0 +add6224eb4e263c77e8f12f810f4a663da26806e = 0 +cb12a4136e9afb2a158ff888bc8ea81d3e72e619 = 0 +cb22544d3186b98f99445cc10e989432ade61fb7 = 0 +d376c613c14f513f66338104919f7a95b8e74794 = 2097152 +d788882b4a71cd77e85f0d3a61aacb98028881b2 = 0 +d7c9262c5bfe346fe9005112e1ef7ea95b97bc3d = 0 +e51cd3710b476232f4d540c41f989cbdb2c3c80b = 0 +fa7667122c9fd4c1e7d59bc5c9fce46020eea4c4 = 0 + +[1b915085-20d7-51cf-bf83-8f477d6f5128] +15067afcbe053ab241d979e53d125a6460d7a9c3 = 0 +674ffea0978ab8e694941ed0e5dbb0affae58142 = 0 +c33155b28a95ca26d892341c74deab5060eebfed = 0 + +[bd07be1c-e76f-5ff0-9c0b-f51ef45303c6] +043edf213746914c1bdcf60409ee4d16cb71c741 = 0 +07a8f45803e1fce2d2b47cc11eba0c1bb3e3fbaa = 0 +0b9ea91f8aece44563555b83e8a7a507e7b0e469 = 0 +0db45c94c4635267a3a70139207193e20f1a6b9b = 4 +132c238feb36f6da789fbc01ffc9cd13ce0e4bb0 = 0 +16e1051b1aa00ce6b91c1cb01427644c7c5b1b05 = 0 +2bf6a5ecfa1d13a00f2bda3b2e95627870af7558 = 0 +2f4d4cb872991156edcb2b0d60def80befb5a8ec = 0 +32ac7082fef72a5401e3945b0ee0572dba628e2d = 0 +51c21a98d31dfad710a22e3e0c57668119a43ee6 = 0 +572017617e700f7fb242410e7fd207612d1cf143 = 0 +6aa60212e4209bc0746d4ed733918476b87d7a98 = 0 +6dd2496be7c770137fd38d74c3a17b2079e1749d = 4 +76c00126cce4a293fcc0616cde0f7f926146d09f = 0 +7a267e651a23d16f37222c697c6380a03e0a56ec = 4 +7b4fe854a8241252298119e401be1f9dcb2f875d = 0 +7c86677118ef621c9ab72194bc9a5273c713d19a = 0 +8232b19a54ee925e0d027db588bdf242e16ccd5e = 0 +85877c496d746b9a8826a47e251a1d08a6914b0f = 0 +8917b3b9a1f59a807497c0ffbbe2c3ac0deaba8b = 0 +8b5e10e1a5916d603dd1c8e50ece9e2897d82a30 = 4 +8dde9d702898a4c21d7362190048c23186de6524 = 0 +9cf4756de04a3936df04b3b35f4a476d4922b9db = 0 +a64465befd8eb87aab3bf615c9423ebb46a7b0d0 = 0 +a8039a59c25102f3c1b835f907aa8067a26cc407 = 0 +a9dc7c0040948fb355b15e920ad337185fc2969b = 0 +ae419c392ed22e9d25e31e6bbfff63e0ec4ee268 = 4 +b45558bb513c449c561e3cd24d42cde09cbb02c1 = 0 +c6c42da8f2d0a870c2b1516a075d848a138c7ef0 = 0 +c76c81d01d6735201662fb0e7edaa7b06db0d894 = 0 +c78c37cec15434ec6c172465afcfa19f5265475d = 0 +c8f0e26f11f92ad17f292ee03a1e287d57cb67d6 = 0 +ca7145a277d23f22be59e082cac9dc66d1b10320 = 0 +d5744dbded37188f2fb8b927091becdbc906b3d5 = 0 +d5a04e7060981159f8b98acdf36bc40ea7f01d86 = 4 +e50d116881b9901bda6306365e73f8988fb91922 = 0 +e7558fa46977e5fbf128ac3f7c2b73f1807dde9c = 0 +eea9cee1a5987985d57a337640d855c71ec8b08b = 0 +ef8c1cb1e45a5d3e7879ad546de2c53a2ef0812e = 0 + +[efce3f68-66dc-5838-9240-27a6d6f5f9b6] +02e7067a69866751151cb639a9e8b51871e63d77 = 0 +1a1ec7d5046cbc684ecd55eefa8872e956eb2c74 = 0 +2592d74d20997b5417cc8bd5bb5c16450412faeb = 0 +4c470e0e0b05e94450f8f57c44393f35e7ae2820 = 0 +4caff4b593fc84dcb30120bb7e6538310d8b772c = 0 +5cc1eb4dbd04a1792a1e7b4c8f504e8fed442faa = 0 +7b40319f3c59bf140eab3f57059eb56620476858 = 0 +8a8d61266b942b368f7884e21f2d19eb1214b4d7 = 0 +be3a69617846f2ed84c15e12bd88441994b7d3dc = 0 +c9fa159797c9cf806c2730661d9bb94a0dfb0632 = 0 +fbba515a92277cfd4d7618586a17b26593699e0b = 0 + +[c64b6f0f-98cd-51d1-af78-58ae84944834] +52b3aaeea1b66998f787cad6a389c3db9fd7e164 = 0 +90c03f89079273fc749e97fa25d294a3c4bb3879 = 0 +a286c0e04d58a9f338a5bee9f3fe93a5e1173a64 = 0 + +[a945a9ba-879e-550e-aa45-2a4d52798e91] +3f75a37fa29f1e5984a3d8685b359f1934d31a53 = 0 +fffe1dacfe4252a5afc8e1fd52f63ac1f1998578 = 0 + +[2ff30676-a39f-58b2-ad74-5d1012d57b9b] +29772f8fdfb2a779ef1d5a2bda282d14405fe26e = 4 +55d319eaaf04a93039fd51e63a658792760569cd = 4 +6f7c4a1b6d3db0d9d95fc1a1e8974bf0752da43c = 4 +8470694f750e71adb9567bb4f45df082638718b0 = 4 +e6434363d10d6401ec78f7284a4f4649936decc5 = 4 + +[64499a7a-5c06-52f2-abe2-ccb03c286192] +091e31ab28b2bfc6ab9747d78d6325560d877345 = 0 +0b30123e0abe5744b6e95055e0bff3ba389b2ccd = 0 +15aea7dc1ffbd0a7d7b29b7aaea5aa06a3620349 = 0 +274049a1ff289e0af180f7e49de6ffe3223b31c7 = 0 +29db8c4454c7e1a0308b664e15195e66177a8642 = 2097152 +335725db8e7ab838596aa414de224dc5ee32e1d6 = 0 +374e459b7d949a5d5c0f949fb8421b85e4a453b1 = 0 +509bca47f39fdd45268cad1a74fe77faf1ca16ec = 0 +569269cc1a9cc8505b01f8d3a07e448cf9cbcd16 = 2097152 +72e7b86c1aa2d572437a7ba271ea19c9ec2a40b5 = 2097152 +7f18be1988edcb29738e8e1a10ae368d4f7be168 = 2097152 +834ea4946bc96942a796181d16b17af27b2d4f49 = 0 +88bb0b3fc624755e784acfa09ad95e71b94e36ef = 0 +9e65e79bfd23c2eaaa1e310a0e7cccd0251456ed = 2097152 +a822184abd5a032e13139fd328d3a05621275bfd = 0 +aac07d411f8fce3f02eafb46f20294d015f78c54 = 0 +b22db692e70b4846082af3fd217e869e2530302b = 2097152 +c50f0f04de3b7f17fd4ff1bfc55edde8ca4d7c17 = 0 +d0416ebe01c7c74aa936bdcff344478d617573f3 = 0 +e361c83d199c05d746b8dcce01c7095e709968b3 = 0 +ec4fa370abaa068ba2ca2ba28548d8f06d6bdb4d = 2097152 +f0e032139a9924dde1e8ff0fa3f6c0962015d000 = 0 + +[b7aea54d-5cfd-50af-a711-b761a27d0bd8] +7b2aac77f362fee4043212056fd8d39861dcc25c = 0 + +[009559a3-9522-5dbb-924b-0b6ed2b22bb9] +3c4630ff6b4e4ca13ccf0db33b6118446fba3222 = 0 +7d0f5a4d5892f51ead88f425115c6c568df7e32f = 0 +87ee4dfdb99a2ff80e5f498d71f959932475dfbf = 0 + +[c48004fe-d13f-5df9-98d5-0c1ab8e45fa0] +9693ea6147a8495112d75054dacc2bb8017c30c2 = 0 + +[f1d82dbc-2f4d-59d4-a6c7-4dd79dba2fc5] +8ff008c02fb70e01e6940b8c0cda3a1730308b6f = 0 +e28891e6688ae227da089b1301ec03a3682eed57 = 0 + +[228000da-037f-5747-90a9-8195ccbf91a5] +146af78e7c28e1cbbbd79c1a8794a6c0d4b7fd18 = 0 +1c577d36e30cb0b94aecad249687ac3798281670 = 0 +5d3f89da2796f75cd48a0482f83cd36808844991 = 0 +7a7dee38282f94ed7e944dccb959480ba506bc54 = 0 +a879038980f3683722bee7491bcda78fbb241ef2 = 0 +ab815c854be88f1d7885e0bdd86bf5489dab75de = 0 +d13f6d77678f8dd0504f56e9832e625a1646ea3e = 0 +d17fbdebfaba1c3be519943fcf59698917cbea0c = 0 +d7b63d09f7681919119e20d7032878a96cc83836 = 0 +e2047c193905e247a6a2879f999fb396caaffe2c = 0 +ef60cc7d48b9503de34e01cff99dae18c6d81778 = 0 + +[3bad70da-0c46-5862-8b75-4985ed19fec8] +d1d52f5c7983d90d24bd30bf4d2836d092d70265 = 0 + +[441973f2-b9df-5c96-8592-43ab4ae4df82] +8bee6927afd8bf15864d02ca3bbdfc68c8ef4fa7 = 0 +c2b7602f9125710831a7f75b5d3e6580e7b587ac = 0 + +[3d41126b-a46a-5bdb-b7a1-7ea6cc35a8ef] +d6fc6ad254cc277c6409c867b177c7088adaf901 = 0 + +[9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054] +35938a7a5e55ffcb9b035d79a42a4c7ac7c1a8c8 = 0 +469ddb5d93e52c50cedbf09e44236b182addc940 = 0 +50ec26b777453baa2f08943ab8bc8f20e18d409c = 0 +6fe41930a5917b85c5c48309258f43829f77e55d = 0 +868c7b6925e8c2dd5f55fa77a5658dabd39a34f5 = 0 +a8fc40cd027635fa365d254943502ca09ac23d60 = 0 +d060565193ea8ed821a8d7d44fda7c7292f46160 = 0 +ff16ad35d8acf035fc61d85d73f54a9e3cb8ee49 = 0 + +[65419b8a-9a19-58ae-bde3-3f7e1d1bf8ef] +05c1427a5d15dba3c7ea08853dc18c761b3e1f7b = 0 +13f34eb8967ed9fc798a2164e0125ca6d245cbe1 = 0 +2869db79fad0e3848f0dd750dfd4973b44d60322 = 0 +56c9808fe7a239a4bc2986f22a361d579852ee75 = 0 +9c32700cd14ddc0e6e5bbf21213cf28ad65751f7 = 0 +a37407ff3f9190871884265501b333855ba2ae13 = 0 +a4a7f65dee883e3b122461ffcb7224fe6aaafebb = 0 +bc52097cb9270bb48ce905a84eb1b90536b7529d = 0 +bf8ebabc602850406c63775a8657152e80985811 = 0 +e0e8d048ffe6b1541ceab4ac15d8216302110944 = 0 + +[ddb6d928-2868-570f-bddf-ab3f9cf99eb6] +0ffae909e4ab38cef06da787e8975bbb0877667e = 0 +35ba2b95d5e3e2d481c1b2bf24ebb65d77252999 = 4 +4471e137d37ebacfff66c83df6ba1d6e6698d188 = 4 +44b5765a2ea7fb07e534d7efac4eea0159a7666f = 0 +57fa1d5bc8ec4f22812b0628fe0dc75148e5ce98 = 0 +74637a776a7b916f8e963ad26e07f2a16889fb24 = 0 +74d155b5334e6ee00b4172cb4eade03664953776 = 4 +8c86daf4f47da58730f5c59384459b4fd70c7729 = 0 +b599e879108bd2b81407ff09c16e99778f425a10 = 4 +bd07dc1c432e3775ebaeef81e30630acd13b2a77 = 0 +cb6a9b41cc77d79629414c606df8ad7bea2694ad = 0 +d1ecc86aa3ecef250ddf4d49780b3f63440a2db9 = 0 +fbf9288d98ed17cf34abf1b9524d810a990c278a = 0 + +[10d0aa13-cc34-5b6c-9bed-444edd59ae61] +235eea41ce1ccda0db41bc4d586e7d05e660c644 = 0 +3d409f26953761605fbd770cd30735cd24214755 = 0 +430f56dd6c2c5041537e73acd6a431a4e1db4410 = 0 +438082df85b042b6894a0cadf2562eea75cf0069 = 0 +77cbb09c1987e1d02cbb13ca0e09cae3a6946720 = 0 +9342d7eea4ddf0fa85f00c7c9e9e74e9b40413b8 = 0 +d49b05f058ae2c09cb2a9719829ec424590f39fe = 0 + +[44135caf-e1e6-5817-8029-ae977229455d] +c1794d6e992e632f21d593d1175a61a44b8fbcdc = 0 + +[6310b701-1812-5374-a82f-9f6f2d54a40a] +003ef2292775c965ef24e85d0fb9170e5ad28331 = 0 +1d52680d93782c8fdb80fe07732b06149a44fa26 = 0 +44c7da775d51e1b021ec76ccae0d4621648b8390 = 0 +74902502cecd0f2b98413f63816e78e8c1ac3132 = 0 +9273207980d05b8bdbd736064db837b3b750de46 = 0 +9273ad1bb15c35c1b8620c79f93411a79db72008 = 0 +c1d6b12ed5a1c030b9dc9c80ed55e74b59a96bc7 = 0 +c30002d493bb58592e9957f28c77b6f8b47f6b4f = 0 +ca2b16e44ed6c700e9c76acffeb3dc381324ecc5 = 0 +d97c98aad086de0c70960e288bc48b84a5a07b0f = 0 +e608e4ea818d00cd029ea0bc5c5b78ce32a6068a = 0 +ef008ae4d1cec972c38bb433532c2a6c3edd5212 = 0 + +[8603256b-76ad-53fe-b511-38a38e6437cd] +008a63dff6d60f3773b72e6c09a17dc46f084f66 = 0 +1cc0f4c52b80bd47c47d1cc1a6c59ffad2d7cdfb = 0 +2631df1d5969b5b658566f2b26c4ef3dc2f07371 = 0 +a4316a50f81399f5ab875b25080a8d5b53479560 = 0 + +[c2297ded-f4af-51ae-bb23-16f91089e4e1] +02e4afb2aa4d18d6ea896597bb4c01b792b2cba4 = 0 +1a88142d253bff6598ea45aca26fc74e65f13716 = 0 +2081ee27fe40d51640919d404468043888b375ae = 0 +2208dc360adbdc22c3dde8e70a60f0a0e1aaaf3b = 0 +239381009d8127d621724b3fa6c4734ce660f979 = 0 +296c644e182c8fc5a0a362688d482903d0cec356 = 0 +2e3f9aa52a560cdbdad8584c77062dbb39cd3b52 = 0 +336450e8fa40e96c92c2ac694c10a40f1a80bdfd = 0 +373a5692536164d67462be65492bbbe5d83b404f = 0 +57786eaac5641bd56ca52b3806e4dd766c892409 = 0 +581a9d6f1890973c168af89d87ebeeebc0d2881b = 0 +5b8457f865dbcc1dbf523d0b14132a75375b701d = 0 +5bfcf106e579c52f2be6d91c1bfaee1e198504d7 = 0 +5e57d36f7f34e948c7ea2f37ad7a769baaee4e10 = 0 +62a2a810cbe627be7492f1de9d60ddd1f7ca7524 = 0 +681a0c3eeb0496a900c270136a8acd8735911903 = 0 +68a67ea517d2cd238dfb7cbe68c4b10db44d8345 = 0 +89f9a65a38cb565b6c938a0eac760bb9ea458043 = 0 +89f9e3f62fe990f33d5e38d3202e6466a2fe258b = 0 +8a780fbc23ccd512a8b4ac1b24b2e0aa2a0a4581 = 0 +8f1eddbfa8a044513776953d702efb6b9c122beb = 0 +94e5c9cc756f78ee87446593d5b1b7896067247d = 0 +99835b54fdd8b62f65edf50c7656fcee5ee78357 = 0 +9dea26f54f5bd6cb842ad7026a0569d78173c41c = 0 +a6fd94879ad11f3024ab499e7d67f7c8752ce545 = 0 +b40123265706f10548ad97b74a46fd7c3602e0e2 = 0 +c36c48bf467835676189be1bdd8f2c363d85b6d0 = 0 +e5038a7bdb9fdbd336a4dca0492cc4f52b88fda5 = 0 +eacc2e1916b4be9fe8a7645d456ba77b5a4ec77a = 0 +f8a5e6efb4a34ef91846b21982b50fb686899d8e = 0 +fab71ed84101f4bc99906cec71882450c622cb91 = 0 +fe01d0643966828726f31068fecc5c286a97c12a = 0 + +[6c2355df-edca-54ec-9fef-f41e3964091e] +b6ed0811286ef5b31f48c1eedc4f49a8e06854d5 = 0 +fe33a571b03cacf4d31c2395bc9b329da2448fd2 = 0 + +[bd1ec220-6eb4-527a-9b49-e79c3db6233b] +ae36a6bbea084dbb0299f193f7cc0b30bf95c8e7 = 0 + +[0cef87d0-566b-5ace-96b7-ad13d8157ade] +1664cf34f530d10fad32837aeb22d6d1679a8d6f = 0 +cdf5907e713b84840e332b18c410b32f73fa17cc = 0 + +[a5390f91-8eb1-5f08-bee0-b1d1ffed6cea] +017a6f50b4c46967a359c09c42bcbba9a93a02d6 = 0 +0fd319efb060da0187c8d7add07df10fdd92c831 = 0 +1dd2d433bdbe9520cba2dbafdbef46badac1ca57 = 0 +2811b56c0a8f2e676c7f5ed52fbfefdd1344bef8 = 0 +46542e4d9b6e859ac8f2c68bc21318bfcbf2e9a9 = 0 +83278d3c84efd42262d7dbd494c1869e7823e724 = 0 +ce19aaa3cb2ee96b3be164c12734c44d161972e6 = 0 +d341159861d3ff015a19bbda2c11059cb619feb2 = 0 +e34b753a58f76eb48a430060afaa5bcf66fb66b1 = 0 +e3e4b128f826803204a876717143323f26c0df7a = 0 +fed167557aa93ab0d815c09fa2cdb442659e4f69 = 0 + +[87a1d0c5-8d4d-59a5-bdb5-139d412edc85] +e0441f10ebbb8b989ee85bfbc6801fdb34164b2e = 0 + +[e5c3ada5-44c5-59b4-94bc-84ef8a3e2690] +04f04bf36f1903e72a66ed8f08aac19a35084c67 = 0 +08946ee7eb15bc530fb5818e388f12f3ffbfb6e3 = 0 +168b89b192bd6b5e9153e2d383144ed605929714 = 0 +2531b9db47fec051efafab08504b6d2070be7e13 = 0 +3adea2475aafa351b70d746af06516182ca3e433 = 0 +4b976dd921bf81891eadf2eee6531390a857dc49 = 0 +637da9f566db4f325a07db87c0ca56cde5c6f0bd = 0 +67d7aa8ed7ec603882db0414e9ca380c2a780239 = 0 +7a6612616acc3b5b070d30ed3159d96c537ade32 = 0 +90952ee71db21d8210698f784219bf025b408406 = 0 +9f72c4ec5bc7e65a1b7a77467d7b5d814e5db457 = 0 +a073de1ff0fbf2c7c3821ef137fd3b17007de916 = 0 +af54f9a2ae0c489c4edded1b8c822fadb8c47271 = 0 + +[e3ad505e-1421-54b5-91eb-f8fab629d2c9] +0325069b7c171b0db189c69c5636596505ab3e43 = 0 + +[9f4a2347-a52b-52c3-b18a-5631cfb5128d] +06b23d9541673bb4e2cf6c9006548073f2fff478 = 4 +2783c3ff2fe1603edc8e56ceffa35fdaccae80f0 = 4 +a475106a1cf2e9f2b2a1407b44b05bfe762b59f6 = 4 +a890b49b4c3e1534ebe3ee0d12b02a4d8044a261 = 4 +b940902fdd4c5a9e87f0fee84d79efc218e83c0f = 4 +e95c11cae95a0fd0f060dc5c053af7384b6bb78f = 0 +f9ab84e72761a229dc1ea4a8e17a544fe9de3886 = 0 + +[e0b4c2ea-889f-54df-a5e0-fe74b3c892fd] +29c9d49e9128c20c0342ec5795ccb88c1653355c = 0 +6ec28deee4391dd6aa56c3fdc30330c386f78dd2 = 0 +a62e842a92711952760bd311ffa11edbd327f39b = 0 + +[d80f1e47-7c1f-50ef-848d-735630893f00] +99551e8476094ca54ca5ce081255d8ac8acee80a = 0 + +[98dea707-09b6-5a61-a46f-43b0fb0fb92b] +9cf9b0f42b26d2a7e5b34d7b7fddf012f5180bdc = 0 + diff --git a/stdlib/Pkg3/bin/update.jl b/stdlib/Pkg3/bin/update.jl new file mode 100644 index 00000000000000..828b64f56bbd32 --- /dev/null +++ b/stdlib/Pkg3/bin/update.jl @@ -0,0 +1,9 @@ +#!/usr/bin/env julia + +pushfirst!(LOAD_PATH, joinpath(@__DIR__, "..", "ext")) + +include("loadmeta.jl") +include("utils.jl") +include("gitmeta.jl") +include("genstdlib.jl") +include("generate.jl") diff --git a/stdlib/Pkg3/bin/utils.jl b/stdlib/Pkg3/bin/utils.jl new file mode 100644 index 00000000000000..4a84f6af96a13e --- /dev/null +++ b/stdlib/Pkg3/bin/utils.jl @@ -0,0 +1,118 @@ +#!/usr/bin/env julia + +function packagelt(a::String, b::String) + a == "julia" && b != "julia" && return true + a != "julia" && b == "julia" && return false + return lowercase(a) < lowercase(b) +end + +≲(v::VersionNumber, t::NTuple{0,Integer}) = true +≲(v::VersionNumber, t::NTuple{1,Integer}) = v.major ≤ t[1] +≲(v::VersionNumber, t::NTuple{2,Integer}) = v.major < t[1] || + v.major ≤ t[1] && v.minor ≤ t[2] +≲(v::VersionNumber, t::NTuple{3,Integer}) = v.major < t[1] || + v.major ≤ t[1] && v.minor < t[2] || + v.major ≤ t[1] && v.minor ≤ t[2] && v.patch ≤ t[3] + +≲(t::NTuple{0,Integer}, v::VersionNumber) = true +≲(t::NTuple{1,Integer}, v::VersionNumber) = t[1] ≤ v.major +≲(t::NTuple{2,Integer}, v::VersionNumber) = t[1] < v.major || + t[1] ≤ v.major && t[2] ≤ v.minor +≲(t::NTuple{3,Integer}, v::VersionNumber) = t[1] < v.major || + t[1] ≤ v.major && t[2] < v.minor || + t[1] ≤ v.major && t[2] ≤ v.minor && t[3] ≤ v.patch + +function compress_versions(inc::Vector{VersionNumber}, from::Vector{VersionNumber}) + issorted(inc) || (inc = sort(inc)) + exc = sort!(setdiff(from, inc)) + pairs = [] + if isempty(exc) + lo, hi = first(inc), last(inc) + push!(pairs, (lo.major, lo.minor) => (hi.major, hi.minor)) + else + for v in inc + t = (v.major, v.minor) + if any(t ≲ w ≲ t for w in exc) + t = (v.major, v.minor, v.patch) + end + if isempty(pairs) || any(pairs[end][1] ≲ w ≲ t for w in exc) + push!(pairs, t => t) # need a new interval + else + pairs[end] = pairs[end][1] => t # can be merged with last + end + end + end + @assert all(any(p[1] ≲ v ≲ p[2] for p ∈ pairs) for v ∈ inc) + @assert all(!any(p[1] ≲ v ≲ p[2] for p ∈ pairs) for v ∈ exc) + return pairs +end +compress_versions(f::Function, from::Vector{VersionNumber}) = + compress_versions(filter(f, from), from) +compress_versions(vi::VersionInterval, from::Vector{VersionNumber}) = + compress_versions(v->v in vi, from) +compress_versions(inc, from) = compress_versions(inc, collect(from)) + +versions_string(p::Pair) = versions_string(p...) +versions_string(a::Tuple{}, b::Tuple{}) = "*" +versions_string(a::NTuple{m,Integer}, b::NTuple{n,Integer}) where {m,n} = + a == b ? join(a, '.') : "$(join(a, '.'))-$(join(b, '.'))" + +versions_repr(x) = repr(versions_string(x)) +versions_repr(v::Vector) = length(v) == 1 ? repr(versions_string(v[1])) : + "[" * join(map(repr∘versions_string, v), ", ") * "]" + +## compress per-version data ## + +function compress_versions_data( + d::Dict{VersionNumber,Dict{String,String}}, + versions::Vector{VersionNumber}, +) + kvs = Dict{Pair{String,String},Vector{VersionNumber}}() + for (ver, x) in d, (k, v) in x + push!(get!(kvs, k => v, VersionNumber[]), ver) + end + tx = Tuple{Any,String,String}[] + for (kv, vs) in kvs + for v in compress_versions(sort!(vs), versions) + push!(tx, (v, kv...)) + end + end + sort!(tx, by=t->(t[1][1], t[1][2], t[2], t[3])) + return Tuple{String,String,String}[ + (versions_string(t[1]), t[2], t[3]) for t in tx + ] +end + +## dict utility functions ## + +function invert_map(fwd::Dict{K,V}) where {K,V} + rev = Dict{V,Vector{K}}() + for (k, v) in fwd + push!(get!(rev, v, K[]), k) + end + return rev +end + +function invert_map(fwd::Dict{Vector{K},V}) where {K,V} + rev = Dict{V,Vector{K}}() + for (k, v) in fwd + append!(get!(rev, v, K[]), k) + end + return rev +end + +flatten_keys(d::Dict{Vector{K},V}) where {K,V} = + isempty(d) ? Dict{K,V}() : Dict{K,V}(k => v for (ks, v) in d for k in ks) + +## TOML generation functions ## + +function write_toml(f::Function, names::String...) + path = joinpath(names...) * ".toml" + mkpath(dirname(path)) + open(path, "w") do io + f(io) + end +end + +toml_key(str::String) = contains(str, r"[^\w-]") ? repr(str) : str +toml_key(strs::String...) = join(map(toml_key, [strs...]), '.') diff --git a/stdlib/Pkg3/ext/TOML/.gitignore b/stdlib/Pkg3/ext/TOML/.gitignore new file mode 100644 index 00000000000000..8c960ec808d9e3 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/.gitignore @@ -0,0 +1,3 @@ +*.jl.cov +*.jl.*.cov +*.jl.mem diff --git a/stdlib/Pkg3/ext/TOML/.travis.yml b/stdlib/Pkg3/ext/TOML/.travis.yml new file mode 100644 index 00000000000000..6902f1f2db0c37 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/.travis.yml @@ -0,0 +1,15 @@ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false +script: + - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi + - julia -e 'Pkg.clone(pwd()); Pkg.test("TOML"; coverage=true)' +after_success: + # push coverage results to Coveralls + - julia -e 'cd(Pkg.dir("TOML")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' diff --git a/stdlib/Pkg3/ext/TOML/LICENSE.md b/stdlib/Pkg3/ext/TOML/LICENSE.md new file mode 100644 index 00000000000000..0f140958073d3f --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/LICENSE.md @@ -0,0 +1,22 @@ +The TOML.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2016: Art Wild. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/ext/TOML/README.md b/stdlib/Pkg3/ext/TOML/README.md new file mode 100644 index 00000000000000..21cf8bb4a8bb0f --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/README.md @@ -0,0 +1,37 @@ +# TOML.jl + +A [TOML v0.4.0](https://github.com/toml-lang/toml) parser for Julia. + +[![Build Status](https://travis-ci.org/wildart/TOML.jl.svg?branch=master)](https://travis-ci.org/wildart/TOML.jl) +[![Coverage Status](https://coveralls.io/repos/wildart/TOML.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/wildart/TOML.jl?branch=master) +[![Build status](https://ci.appveyor.com/api/projects/status/quhhe2m3e9vbim6u?svg=true)](https://ci.appveyor.com/project/wildart/toml-jl) + +**Installation**: `julia> Pkg.clone("https://github.com/wildart/TOML.jl.git")` + +## Basic Usage + +```julia + +julia> using TOML + +julia> TOML.parse(""" + name = "value" + """) +Dict{String,Any} with 1 entry: + "name" => "value" + +julia> TOML.parsefile("etc/example.toml") +``` + +## Documentation +```julia +TOML.print(io::IO, a::Associative) +``` +Writes a TOML representation to the supplied `IO`. + +```julia +TOML.parse(s::AbstractString) +TOML.parse(io::IO) +TOML.parsefile(filename::AbstractString) +``` +Parses a TOML `AbstractString` or `IO` stream into a nested `Array`or `Dict`. diff --git a/stdlib/Pkg3/ext/TOML/REQUIRE b/stdlib/Pkg3/ext/TOML/REQUIRE new file mode 100644 index 00000000000000..137767a42af4a6 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/REQUIRE @@ -0,0 +1 @@ +julia 0.6 diff --git a/stdlib/Pkg3/ext/TOML/appveyor.yml b/stdlib/Pkg3/ext/TOML/appveyor.yml new file mode 100644 index 00000000000000..88fd4e37fee688 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/appveyor.yml @@ -0,0 +1,33 @@ +environment: + matrix: + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"TOML\") + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"TOML\")" diff --git a/stdlib/Pkg3/ext/TOML/src/TOML.jl b/stdlib/Pkg3/ext/TOML/src/TOML.jl new file mode 100644 index 00000000000000..5fbba735b54e42 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/TOML.jl @@ -0,0 +1,46 @@ +module TOML + using Dates + + include("parser.jl") + include("print.jl") + + "Convert `TOML.Table` to `Dict{String,Any}`" + function table2dict(tbl::Union{Nothing,Table}) + tbl == nothing && return Dict{String,Any}() + return table2dict(get(tbl)) + end + + function table2dict(tbl::Table) + ret = Dict{String,Any}() + for (k,v) in tbl.values + if isa(v, Table) + ret[k] = table2dict(v) + elseif isa(v, Array) && length(v)>0 && isa(v[1], Table) + ret[k] = [table2dict(e) for e in v] + else + ret[k] = v + end + end + return ret + end + + "Parse IO input and return result as dictionary." + function parse(io::IO) + parser = Parser(io) + res = parse(parser) + length(parser.errors)>0 && throw(CompositeException(parser.errors)) + return table2dict(res) + end + + "Parse string" + function parse(str::AbstractString) + io = IOBuffer(str) + res = parse(io) + close(io) + return res + end + + "Parse file" + parsefile(filename::AbstractString) = open(parse, filename, "r") + +end diff --git a/stdlib/Pkg3/ext/TOML/src/parser.jl b/stdlib/Pkg3/ext/TOML/src/parser.jl new file mode 100644 index 00000000000000..4d8539e4e1b5fc --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/parser.jl @@ -0,0 +1,893 @@ +"TOML Table" +struct Table + values::Dict{String,Any} + defined::Bool +end + +Table(defined::Bool) = Table(Dict{String,Any}(), defined) +function Base.show(io::IO, tbl::Table, level::Int=1) + Base.print(io, "T($(tbl.defined)){\n") + for (k,v) in tbl.values + Base.print(io, "\t"^level, k, " => ") + if isa(v, Table) + Base.show(io, v, level+1) + Base.print(io, "\n") + elseif isa(v, Vector{Table}) + Base.print(io, "[\n") + for i in 1:length(v) + Base.print(io, "\t"^level, " ") + Base.show(io, v[i], level+1) + i != length(v) && Base.print(io, ",\n") + end + Base.print("\t"^level, "]\n") + else + Base.print(io, " $v\n") + end + end + Base.print(io, "\t"^(level-1), "}\n") +end +Base.getindex(tbl::Table, key::AbstractString) = tbl.values[key] +Base.haskey(tbl::Table, key::AbstractString) = haskey(tbl.values ,key) + +"Parser error exception" +struct ParserError <: Exception + lo::Int + hi::Int + msg::String +end + +"TOML Parser" +mutable struct Parser{IO_T <: IO} + input::IO_T + errors::Vector{ParserError} + charbuffer::Base.GenericIOBuffer{Array{UInt8,1}} + currentchar::Char + + Parser(input::IO_T) where {IO_T <: IO} = new{IO_T}(input, ParserError[], IOBuffer(), ' ') +end +Parser(input::String) = Parser(IOBuffer(input)) +Base.error(p::Parser, l, h, msg) = push!(p.errors, ParserError(l, h, msg)) +Base.eof(p::Parser) = eof(p.input) +Base.position(p::Parser) = Int(position(p.input))+1 +Base.write(p::Parser, x) = write(p.charbuffer, x) +Base.read(p::Parser) = p.currentchar = read(p.input, Char) + +NONE() = nothing +NONE(::Type{T}) where {T} = nothing +SOME(v::T) where {T} = v +NONE(::Type{String}, p::Parser) = (take!(p.charbuffer); nothing) +SOME(::Type{String}, p::Parser) = String(take!(p.charbuffer)) +isnull(x) = x === nothing +get(x) = (@assert !isnull(x); x) + +"Rewind parser input on `n` characters." +function rewind(p::Parser, n=1) + pos = position(p.input) + pos == 0 && return 0 + skip(p.input, -n) + return Int(position(p.input)) +end + +"Converts an offset to a line and a column in the original source." +function linecol(p::Parser, offset::Int) + pos = position(p) + seekstart(p.input) + line = 0 + cur = 1 + for (i,l) in enumerate(eachline(p.input, chomp=false)) + if cur + length(l) > offset + return (i, offset - cur + 1) + end + cur += length(l) + line+=1 + end + seek(p.input, pos) + return (line, 0) +end + +"Determine next position in parser input" +function nextpos(p::Parser) + pos = position(p) + return pos + 1 +end + +"Peeks ahead `n` characters" +function peek(p::Parser) #, i::Int=0 + eof(p) && return nothing + res = Base.peek(p.input) + res == -1 && return nothing + return Char(res) +end + +"Returns `true` and consumes the next character if it matches `ch`, otherwise do nothing and return `false`" +function consume(p::Parser, ch::Char) + eof(p) && return false + c = peek(p) + if get(c) == ch + read(p) + return true + else + return false + end +end + +function expect(p::Parser, ch::Char) + consume(p, ch) && return true + lo = position(p) + if eof(p) + error(p, lo, lo, "expected `$ch`, but found EOF") + else + v = peek(p) + mark(p.input) + c = read(p) + error(p, lo, lo+1, "expected `$ch`, but found `$c`") + reset(p.input) + end + return false +end + +"Consumes whitespace ('\t' and ' ') until another character (or EOF) is reached. Returns `true` if any whitespace was consumed" +function whitespace(p::Parser) + ret = false + while !eof(p) + c = read(p) + if c == '\t' || c == ' ' + ret = true + else + rewind(p) + break + end + end + return ret +end + +"Consumes the rest of the line after a comment character" +function comment(p::Parser) + !consume(p, '#') && return false + while !eof(p) + ch = read(p) + ch == '\n' && break + end + return true +end + +"Consumes a newline if one is next" +function newline(p::Parser) + if !eof(p) + n = 1 + ch = read(p.input, UInt8) + ch == 0x0a && return true + if ch == 0x0d + if !eof(p) + nch = read(p.input, UInt8) + nch == 0x0a && return true + n+=1 + end + end + rewind(p, n) + end + return false +end + +"Consume ignored symbols" +function ignore(p::Parser) + while true + whitespace(p) + !newline(p) && !comment(p) && break + end +end + +"Parse a single key name starting at next position" +function keyname(p) + s = nextpos(p) + key = if consume(p, '"') + basicstring(p, s, false) + elseif consume(p, '\'') + literalstring(p, s, false) + else + while !eof(p) + ch = read(p) + if 'a' <= ch <= 'z' || + 'A' <= ch <= 'Z' || + isdigit(ch) || + ch == '_' || + ch == '-' + write(p, ch) + else + rewind(p) + break + end + end + SOME(String, p) + end + + if !isnull(key) && isempty(get(key)) + error(p, s, s, "expected a key but found an empty string") + key = NONE(String, p) + end + return key +end + +"Parse a path into a vector of paths" +function lookup(p::Parser) + ks = String[] + eof(p) && return SOME(ks) + while true + whitespace(p) + s = keyname(p) + if !isnull(s) + push!(ks, get(s)) + else + s = integer(p, 0) + if !isnull(s) + push!(ks, get(s)) + else + return NONE() + end + end + whitespace(p) + !expect(p, '.') && return SOME(ks) + end +end + +"Parses a key-value separator" +function separator(p::Parser) + whitespace(p) + !expect(p, '=') && return false + whitespace(p) + return true +end + +"Insert key-value pair to table, if duplicate key found reports error" +function insertpair(p::Parser, tbl::Table, k, v, st) + if haskey(tbl, k) + error(p, st, st+length(k), "duplicate key `$k`") + else + tbl.values[k] = v + end +end + +"Parses integer with leading zeros and sign" +function integer(p::Parser, st::Int, allow_leading_zeros::Bool=false, allow_sign::Bool=false) + if allow_sign + if consume(p, '-') + write(p, '-') + elseif consume(p, '+') + write(p, '+') + end + end + nch = peek(p) + if isnull(nch) + pos = nextpos(p) + error(p, pos, pos, "expected start of a numeric literal") + return NONE(String, p) + else + ch = get(nch) + if isdigit(ch) + c = read(p) + if c == '0' && !allow_leading_zeros + write(p, '0') + nch = peek(p) + if !isnull(nch) + ch = get(nch) + if isdigit(ch) + error(p, st, position(p), "leading zeroes are not allowed") + return NONE(String, p) + end + end + elseif isdigit(c) + write(p, c) + end + else + # non-digit + error(p, st, position(p), "expected a digit, found `$ch`") + return NONE(String, p) + end + end + + underscore = false + while !eof(p) + ch = read(p) + if isdigit(ch) + write(p, ch) + underscore = false + elseif ch == '_' && !underscore + underscore = true + else + rewind(p) + break + end + end + if underscore + pos = nextpos(p) + error(p, pos, pos, "numeral cannot end with an underscore") + NONE(String, p) + else + p.charbuffer.ptr == 1 ? NONE(String, p) : SOME(String, p) + end +end + +"Parses boolean" +function boolean(p::Parser, st::Int) + ch = '\x00' + + i = 0 + word = "true" + while !eof(p) && i0 + msec = Base.parse(Int, String(fsec)) + end + end + + # time zone + tzhour=0 + tzminute=0 + tzplus = true + tzminus = false + tzsign = true + if valid && !consume(p, 'Z') + tzplus = consume(p, '+') + if !tzplus + tzminus = consume(p, '-') + end + valid = valid && (tzplus || tzminus) + tzhour, valid = parsetwodigits(p, valid) + valid = valid && consume(p, ':') + tzminute, valid = parsetwodigits(p, valid) + + tzsign = tzplus + end + + if valid + dt = DateTime(year, month, day, + hour + (tzsign ? tzhour : -tzhour), + minute + (tzsign ? tzminute : -tzminute), + second, msec) + return SOME(dt) + else + error(p, st, position(p), "malformed date literal") + return NONE() + end +end + +"Parses a single or multi-line string" +function basicstring(p::Parser, st::Int) + !expect(p, '"') && return NONE(String, p) + + multiline = false + + if consume(p, '"') + if consume(p, '"') + multiline = true + newline(p) + else + return SOME("") + end + end + + basicstring(p, st, multiline) +end + +"Finish parsing a basic string after the opening quote has been seen" +function basicstring(p::Parser, st::Int, multiline::Bool) + while true + while multiline && newline(p) + write(p, '\n') + end + if eof(p) + pos = position(p) + error(p, st, pos, "unterminated string literal") + return NONE(String, p) + else + ch = read(p) + if ch == '"' + if multiline + if !consume(p, '"') + write(p, '"') + continue + end + if !consume(p, '"') + write(p, '"') + write(p, '"') + continue + end + end + return SOME(String, p) + elseif ch == '\\' + pos = position(p) + ec = escape(p, pos, multiline) + !isnull(ec) && write(p, get(ec)) + elseif ch < '\x1f' + pos = position(p) + error(p, st, pos, "control character `$ch` must be escaped") + else + write(p, ch) + end + end + end +end + +"Reads character(s) after `\\` and transforms them into proper character" +function escape(p::Parser, st::Int, multiline::Bool) + if multiline && newline(p) + while whitespace(p) || newline(p) end + return NONE() + end + pos = position(p) + if eof(p) + error(p, st, pos, "unterminated escape sequence") + return NONE() + else + ch = read(p) + if ch == 'b' + SOME('\b') + elseif ch == 't' + SOME('\t') + elseif ch == 'n' + SOME('\n') + elseif ch == 'f' + SOME('\f') + elseif ch == 'r' + SOME('\r') + elseif ch == '"' + SOME('\"') + elseif ch == '\\' + SOME('\\') + elseif ch == 'u' || ch == 'U' + len = ch == 'u' ? 4 : 8 + ucstr = ch == 'u' ? "\\u" : "\\U" + snum = String(read(p.input, len)) + try + if length(snum) < len + error(p, st, st+len, "expected $len hex digits after a `$ch` escape") + NONE() + end + if !all(isxdigit, snum) + error(p, st, st+len, "unknown string escape: `$snum`") + NONE() + end + c = unescape_string(ucstr * snum)[1] + SOME(c) + catch + error(p, st, st+len, "codepoint `$snum` is not a valid unicode codepoint") + rewind(p, len) + NONE() + end + else + error(p, st, position(p), "unknown string escape: `$("\\x"*hex(ch,2))`") + NONE() + end + end +end + +"Parses a single or multi-line literal string" +function literalstring(p::Parser, st::Int) + !expect(p, '\'') && return NONE(String, p) + + multiline = false + + if consume(p, '\'') + if consume(p, '\'') + multiline = true + newline(p) + else + return SOME("") + end + end + + literalstring(p, st, multiline) +end + +function literalstring(p::Parser, st::Int, multiline::Bool) + while true + if !multiline && newline(p) + npos = nextpos(p) + error(p, st, npos, "literal strings cannot contain newlines") + return NONE(String, p) + end + if eof(p) + error(p, st, position(p), "unterminated string literal") + return NONE(String, p) + else + ch = read(p.input, UInt8) + if ch == 0x27 + if multiline + if !consume(p, '\'') + write(p, 0x27) + continue + end + if !consume(p, '\'') + write(p, 0x27) + write(p, 0x27) + continue + end + end + return SOME(String, p) + else + write(p, ch) + end + end + end +end + +function array(p::Parser, st::Int) + !expect(p, '[') && return NONE() + ret = Any[] + rettype = Any + expected = Any + while true + + # Break out early if we see the closing bracket + ignore(p) + consume(p, ']') && return SOME(ret) + + # Attempt to parse a value, triggering an error if it's the wrong type. + pstart = nextpos(p) + npvalue = value(p) + isnull(npvalue) && return NONE() + pvalue = get(npvalue) + + pend = nextpos(p) + valtype = isa(pvalue, Array) ? Array : typeof(pvalue) + expected = rettype === Any ? valtype : expected + if valtype != expected + error(p, pstart, pend, "expected type `$expected`, found type `$valtype`") + else + rettype = expected + push!(ret, pvalue) + end + + # Look for a comma. If we don't find one we're done + ignore(p) + !consume(p, ',') && break + end + ignore(p) + !expect(p, ']') && return NONE() + return SOME(convert(Vector{rettype}, ret)) +end + +function inlinetable(p::Parser, st::Int) + !expect(p, '{') && return NONE() + whitespace(p) + + ret = Table(true) + consume(p, '}') && return SOME(ret) + + while true + npos = nextpos(p) + k = keyname(p) + isnull(k) && return NONE() + !separator(p) && return NONE() + v = value(p) + isnull(v) && return NONE() + insertpair(p, ret, get(k), get(v), npos) + + whitespace(p) + consume(p, '}') && break + !expect(p, ',') && return NONE() + whitespace(p) + end + + return SOME(ret) +end + +"Parses a value" +function value(p::Parser) + whitespace(p) + c = peek(p) + isnull(c) && return NONE() + ch = get(c) + pos = position(p)+1 + if ch == '"' + return basicstring(p, pos) + elseif ch == '\'' + return literalstring(p, pos) + elseif ch == 't' || ch == 'f' + return boolean(p, pos) + elseif ch == '[' + return array(p, pos) + elseif ch == '{' + return inlinetable(p, pos) + elseif ch == '-' || ch == '+' || isdigit(ch) + return numdatetime(p, pos) + else + error(p, pos, pos+1, "expected a value") + return NONE() + end +end + +"Parses the key-values and fills the given dictionary. Returns true in case of success and false in case of error." +function keyvalues(p::Parser, tbl::Table) + while true + whitespace(p) + newline(p) && continue + comment(p) && continue + nc = peek(p) + isnull(nc) && break + get(nc) == '[' && break + + # get key + klo = nextpos(p) + k = keyname(p) + isnull(k) && return false + + # skip kv separator + !separator(p) && return false + + # get value + v = value(p) + isnull(v) && return false + vend = nextpos(p) + + # insert kv into result table + insertpair(p, tbl, get(k), get(v), klo) + + whitespace(p) + if !comment(p) && !newline(p) + pc = peek(p) + isnull(pc) && return true + error(p, klo, vend, "expected a newline after a key") + return false + end + end + return true +end + +"Construct nested structures from keys" +function nested(p, into, ks, kstart) + cnode = into + kend = 0 + for k in ks[1:end-1] + kend += length(k)+1 + if !haskey(cnode, k) + cnode.values[k] = Table(false) + cnode = cnode[k] + else + tmp = cnode[k] + if isa(tmp, Table) + cnode = tmp + elseif isa(tmp, Array) + if length(tmp)>0 && typeof(tmp[end]) === Table + cnode = tmp[end] + else + error(p, kstart, kstart+kend, "array `$k` does not contain tables") + return NONE(), kend + end + else + error(p, kstart, kstart+kend, "key `$k` was not previously a table") + return NONE(), kend + end + end + end + return SOME(cnode), kend +end + +function addtable(p::Parser, into::Table, ks::Vector{String}, tbl::Table, kstart) + + cnode, kend = nested(p, into, ks, kstart) + isnull(cnode) && return + cur = get(cnode) + + # fill last level with values + tkey = ks[end] + if haskey(cur, tkey) + ctbl = cur[tkey] + if isa(ctbl, Table) + ctbl.defined && error(p, kstart, kstart+kend+length(tkey), "redefinition of table `$tkey`") + + for (k,v) in tbl.values + insertpair(p, ctbl, k, v, kstart) + end + else + error(p, kstart, kstart+kend+length(tkey), "key `$tkey` was not previously a table") + end + else + cur.values[tkey] = tbl + end + +end + +function addarray(p::Parser, into::Table, ks::Vector{String}, val, kstart) + + cnode, kend = nested(p, into, ks, kstart) + isnull(cnode) && return + cur = get(cnode) + + akey = ks[end] + if haskey(cur, akey) + vec = cur[akey] + if isa(vec, Array) + if isa(val, eltype(vec)) + push!(vec, val) + else + error(p, kstart, kstart+kend+length(akey), "expected type `$(typeof(val))`, found type `$(eltype(vec))`") + end + else + error(p, kstart, kstart+kend+length(akey), "key `$akey` was previously not an array") + end + else + cur.values[akey] = Any[val] + end + +end + + +"""Executes the parser, parsing the string contained within. + +This function will return the `Table` instance if parsing is successful, or it will return `nothing` if any parse error or invalid TOML error occurs. + +If an error occurs, the `errors` field of this parser can be consulted to determine the cause of the parse failure. +""" +function parse(p::Parser) + ret = Table(false) + while !eof(p) + whitespace(p) + newline(p) && continue + comment(p) && continue + + # parse section + if consume(p, '[') + arr = consume(p, '[') + npos = nextpos(p) + + # parse the name of the section + ks = String[] + while true + whitespace(p) + s = keyname(p) + !isnull(s) && push!(ks, get(s)) + whitespace(p) + if consume(p, ']') + arr && !expect(p, ']') && return NONE(Table) + break + end + !expect(p, '.') && return NONE() + end + isempty(ks) && return NONE(Table) + + # build the section + section = Table(true) + !keyvalues(p, section) && return NONE(Table) + if arr + addarray(p, ret, ks, section, npos) + else + addtable(p, ret, ks, section, npos) + end + else + !keyvalues(p, ret) && return NONE(Table) + end + end + + length(p.errors) != 0 && return NONE(Table) + + return SOME(ret) +end diff --git a/stdlib/Pkg3/ext/TOML/src/print.jl b/stdlib/Pkg3/ext/TOML/src/print.jl new file mode 100644 index 00000000000000..ff30f5c0efc84a --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/print.jl @@ -0,0 +1,97 @@ +"Identify if character in subset of bare key symbols" +isbare(c::Char) = 'A' <= c <= 'Z' || 'a' <= c <= 'z' || isdigit(c) || c == '-' || c == '_' + +function printkey(io::IO, keys::Vector{String}) + for (i, k) in enumerate(keys) + i != 1 && Base.print(io, ".") + if length(k) == 0 + # empty key + Base.print(io, "\"\"") + elseif !all([isbare(c) for c in k]) + # quoted key + Base.print(io, "\"$(escape_string(k))\"") + else + Base.print(io, k) + end + end +end + +function printvalue(io::IO, value; sorted=false) + if isa(value, AbstractDict) + _print(io, value, sorted=sorted) + elseif isa(value, Array) + Base.print(io, "[") + for (i, x) in enumerate(value) + i != 1 && Base.print(io, ", ") + if isa(x, AbstractDict) + _print(io, x, sorted=sorted) + else + printvalue(io, x, sorted=sorted) + end + end + Base.print(io, "]") + elseif isa(value, AbstractString) + Base.print(io, "\"$(escape_string(value))\"") + elseif isa(value, DateTime) + Base.print(io, Dates.format(value, "YYYY-mm-ddTHH:MM:SS.sssZ")) + else + Base.print(io, value) + end +end + +function _print(io::IO, a::AbstractDict, ks=String[]; sorted=false) + akeys = keys(a) + if sorted + akeys = sort!(collect(akeys)) + end + first_block = true + + for key in akeys + value = a[key] + # skip tables + isa(value, AbstractDict) && continue # skip tables + # skip arrays of tabels + isa(value, Array) && length(value)>0 && isa(value[1], AbstractDict) && continue + + Base.print(io, repeat(" ", max(0, length(ks)-1))) + printkey(io, [key]) + Base.print(io, " = ") # print separator + printvalue(io, value, sorted=sorted) + Base.print(io, "\n") # new line? + first_block = false + end + + indent = repeat(" ", length(ks)) + for key in akeys + value = a[key] + if isa(value, AbstractDict) + # print table + first_block || println(io) + first_block = false + push!(ks, key) + Base.print(io, indent) + Base.print(io,"[") + printkey(io, ks) + Base.print(io,"]\n") + _print(io, value, ks, sorted=sorted) + pop!(ks) + elseif isa(value, Array) && length(value)>0 && isa(value[1], AbstractDict) + # print array of tables + first_block || println(io) + first_block = false + push!(ks, key) + for v in value + Base.print(io, indent) + Base.print(io,"[[") + printkey(io, ks) + Base.print(io,"]]\n") + !isa(v, AbstractDict) && error("array should contain only tables") + _print(io, v, ks, sorted=sorted) + end + pop!(ks) + end + end +end + +print(io::IO, a::AbstractDict; sorted=false) = _print(io, a, sorted=sorted) +print(a::AbstractDict; sorted=false) = print(stdout, a, sorted=sorted) diff --git a/stdlib/Pkg3/ext/TOML/test/runtests.jl b/stdlib/Pkg3/ext/TOML/test/runtests.jl new file mode 100644 index 00000000000000..1600e2512426ad --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/test/runtests.jl @@ -0,0 +1,671 @@ +using TOML +import TOML: linecol, whitespace, comment, newline, expect, lookup, Parser, parse + +if Base.isdeprecated(Base, :Test) + using Test +else + using Base.Test +end + +macro testval(s, v) + f = "foo = $s" + :( @test get(parse(Parser($f)))["foo"] == $v ) +end + +macro fail(s...) + teststr = s[1] + errstr = "" + debug = false + if length(s) == 2 + if isa(s[2], String) + errstr = s[2] + elseif isa(s[2], Expr) + debug = s[2].args[1] == :debug + end + end + if length(s) == 3 + errstr = s[2] + debug = s[3].args[1] == :debug + end + + # macro vars + pvar = :pv + ppvar = :ppv + + # debuging report + dbgexp = if debug + quote + println("\nTEST FAIL: ", escape_string($teststr)) + if length($pvar.errors) > 0 + println("ERRORS:") + for e in $pvar.errors + println(e) + end + end + if !isnull($ppvar) + println("RESULT:") + println(get($ppvar)) + end + end + else + :() + end + + # error for comparison + errtsts = if !isempty(errstr) + quote + @test length($pvar.errors)>0 + @test findlast(m->m==$errstr, map(e->e.msg, $pvar.errors)) != 0 + end + else + :() + end + + quote + local $pvar = Parser($teststr) + local $ppvar = parse($pvar) + $dbgexp + $errtsts + @test isnull($ppvar) + end +end + +macro success(s...) + teststr = s[1] + debug = false + if length(s) == 2 && isa(s[2], Expr) + debug = s[2].args[1] == :debug + end + + # macro vars + pvar = :pv + ppvar = :ppv + + # debuging report + dbgexp = if debug + quote + println("\nTEST SUCCESS: ", escape_string($teststr)) + if length($pvar.errors) > 0 + println("ERRORS:") + for e in $pvar.errors + println(e) + end + end + if !isnull($ppvar) + println("RESULT:") + println(get($ppvar)) + end + end + else + :() + end + + quote + local $pvar = Parser($teststr) + local $ppvar = parse($pvar) + $dbgexp + @test !isnull($ppvar) + end +end + +@testset "TOML parser" begin + + @testset "Parser internal functions" begin + test = """ + #[test]\r + [test] + foo = "bar" +""" + p = Parser(test) + @test whitespace(p) + @test position(p) == 4 + @test comment(p) + @test position(p) == 13 + @test whitespace(p) + @test position(p) == 16 + @test !expect(p, 'a') + @test expect(p, '[') + @test position(p) == 17 + end + + + @testset "Lookups" begin + p = Parser("""hello."world\\t".a.0.'escaped'.value""") + @testset for (p, s) in zip(get(lookup(p)), ["hello"; "world\t"; "a"; "0"; "escaped"; "value"]) + @test p == s + end + + p = Parser("") + @test get(lookup(p)) == String[] + + p = Parser("value") + @test get(lookup(p)) == String["value"] + + p = Parser("\"\"") + #TODO: @test get(lookup(p)) == String[""] + + end + + @testset "New line" begin + @success(""" +[project.A]\r +name = \"splay2\"\r +\r +[project]\r +\r +name = \"splay\"\r +version = \"0.1.0\"\r +authors = [\"alex@crichton.co\"]\r +\r +[[lib]]\r +\r +path = \"lib.rs\"\r +name = \"splay\"\r +description = \"\"\" +A Rust implementation of a TAR file reader and writer. This library does not\r +currently handle compression, but it is abstract over all I/O readers and\r +writers. Additionally, great lengths are taken to ensure that the entire\r +contents are never required to be entirely resident in memory all at once.\r +\"\"\" +[[lib.aaa]]\r +bbb = \"aaa\"\r +""") + + @fail("\r") + + @fail("a = [ \r ]") + + @fail("a = \"\"\"\r\"\"\"") + + @fail("a = \"\"\"\\ \r \"\"\"") + + @success("a = '''\r'''") + + @success("a = '\r'") + + @fail("a = \"\n\"") + + @fail("a = '\n'") + + p = Parser(" + foo = \"\"\"\\\r\n\"\"\" + bar = \"\"\"\\\r\n \r\n \r\n a\"\"\" + ") + res = get(parse(p)) + @test res["foo"] == "" + @test res["bar"] == "a" + + @fail("0=0r=false", "expected a newline after a key") + + @fail(""" +0=""o=""m=""r=""00="0"q=\"\"\"0\"\"\"e=\"\"\"0\"\"\" +""", "expected a newline after a key") + + @fail(""" +[[0000l0]] +0="0"[[0000l0]] +0="0"[[0000l0]] +0="0"l="0" +""", "expected a newline after a key") + + @fail(""" +0=[0]00=[0,0,0]t=["0","0","0"]s=[1000-00-00T00:00:00Z,2000-00-00T00:00:00Z] +""", "expected a newline after a key") + + @fail(""" +0=0r0=0r=false +""", "expected a newline after a key") + + @fail(""" +0=0r0=0r=falsefal=false +""", "expected a newline after a key") + + end + + @testset "Offset->(Line, Col) " begin + p = Parser("ab\ncde\nf") + @test linecol(p, 0) == (1,0) + @test linecol(p, 1) == (1,1) + @test linecol(p, 4) == (2,1) + @test linecol(p, 5) == (2,2) + @test linecol(p, 8) == (3,1) + @test linecol(p, 9) == (3,0) + end + + @testset "Strings" begin + p = Parser(""" +bar = "\\U00000000" +key1 = "One\\nTwo" +key2 = \"\"\"One\nTwo\"\"\" +key3 = \"\"\" +One +Two\"\"\" + +key4 = "The quick brown fox jumps over the lazy dog." +key5 = \"\"\" +The quick brown \\ + + + fox jumps over \\ + the lazy dog.\"\"\" +key6 = \"\"\"\\ + The quick brown \\ + fox jumps over \\ + the lazy dog.\\ + \"\"\" + +# What you see is what you get. +winpath = 'C:\\Users\\nodejs\\templates' +winpath2 = '\\\\ServerX\\admin\$\\system32\\' +quoted = 'Tom "Dubs" Preston-Werner' +regex = '<\\i\\c*\\s*>' +regex2 = '''I [dw]on't need \\d{2} apples''' +lines = ''' +The first newline is +trimmed in raw strings. + All other whitespace + is preserved. +''' +""") + res = get(parse(p)) + + @test res["bar"] == "\0" + @test res["key1"] == "One\nTwo" + @test res["key2"] == "One\nTwo" + @test res["key3"] == "One\nTwo" + + msg = "The quick brown fox jumps over the lazy dog." + @test res["key4"] == msg + @test res["key5"] == msg + @test res["key6"] == msg + + @test res["winpath"] == "C:\\Users\\nodejs\\templates" + @test res["winpath2"] == "\\\\ServerX\\admin\$\\system32\\" + @test res["quoted"] == """Tom "Dubs" Preston-Werner""" + @test res["regex"] == """<\\i\\c*\\s*>""" + @test res["regex2"] == """I [dw]on't need \\d{2} apples""" + + @test res["lines"] == "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n" + + + @testval("''", "") + @testval("\"\"", "") + @testval("\"\"\"\n\n\n\"\"\"", "\n\n") + + #@fail("foo = \"\\uD800\"") + + @fail("foo = \"\\uxx\"") + @fail("foo = \"\\u\"") + @fail("foo = \"\\") + @fail("foo = '") + + end + + @testset "Numbers" begin + @fail("a = 00") + @fail("a = -00") + @fail("a = +00") + @fail("a = 00.0") + @fail("a = -00.0") + @fail("a = +00.0") + @fail("a = 9223372036854775808") + @fail("a = -9223372036854775809") + + @fail("a = 0.") + @fail("a = 0.e") + @fail("a = 0.E") + @fail("a = 0.0E") + @fail("a = 0.0e") + @fail("a = 0.0e-") + @fail("a = 0.0e+") + @fail("a = 0.0e+00") + + @testval("1.0", 1.0) + @testval("1.0e0", 1.0) + @testval("1.0e+0", 1.0) + @testval("1.0e-0", 1.0) + @testval("1.001e-0", 1.001) + @testval("2e10", 2e10) + @testval("2e+10", 2e10) + @testval("2e-10", 2e-10) + @testval("2_0.0", 20.0) + @testval("2_0.0_0e0_0", 20.0) + @testval("2_0.1_0e1_0", 20.1e10) + + @fail("4") + + @testval("1_0", 10) + @testval("1_0_0", 100) + @testval("1_000", 1000) + @testval("+1_000", 1000) + @testval("-1_000", -1000) + + @fail("foo = 0_") + @fail("foo = 0__0") + @fail("foo = __0") + @fail("foo = 1_0_") + + end + + @testset "Booleans" begin + + @testval("true", true) + @testval("false", false) + + @fail("foo = true2") + @fail("foo = false2") + @fail("foo = t1") + @fail("foo = f1") + + end + + @testset "Datetime" begin + + @testval("2016-09-09T09:09:09Z", DateTime(2016,9,9,9,9,9)) + @testval("2016-09-09T09:09:09.0Z", DateTime(2016,9,9,9,9,9)) + @testval("2016-09-09T09:09:09.0+10:00", DateTime(2016,9,9,19,9,9)) + @testval("2016-09-09T09:09:09.012-02:00", DateTime(2016,9,9,7,9,9,12)) + + @fail("foo = 2016-09-09T09:09:09.Z", "malformed date literal") + @fail("foo = 2016-9-09T09:09:09Z", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09+2:00", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09-2:00", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09Z-2:00", "expected a newline after a key") + + end + + + @testset "Keys" begin + + p = Parser(" + foo = 3 + foo_3 = 3 + foo_-2--3--r23f--4-f2-4 = 3 + _ = 3 + - = 3 + 8 = 8 + \"a\" = 3 + \"!\" = 3 + \"a^b\" = 3 + \"\\\\\\\"\" = 3 + \"character encoding\" = \"value\" + 'ʎǝʞ' = \"value\" + ") + res = get(parse(p)) + + @test haskey(res, "foo") + @test haskey(res, "-") + @test haskey(res, "_") + @test haskey(res, "8") + @test haskey(res, "foo_3") + @test haskey(res, "foo_-2--3--r23f--4-f2-4") + @test haskey(res, "a") + @test haskey(res, "!") + @test haskey(res, "\\\"") + @test haskey(res, "character encoding") + @test haskey(res, "ʎǝʞ") + + @fail("key\n=3") + @fail("key=\n3") + @fail("key|=3") + @fail("\"\"=3") + @fail("=3") + @fail("\"\"|=3") + @fail("\"\n\"|=3") + @fail("\"\r\"|=3") + + end + + + @testset "Tables" begin + + @fail("[]") + @fail("[.]") + @fail("[\"\".\"\"]") + @fail("[a.]") + @fail("[\"\"]") + @fail("[!]") + @fail("[\"\n\"]") + @fail("[a.b]\n[a.\"b\"]") + @fail("[']") + @fail("[''']") + @fail("['''''']") + @fail("['\n']") + @fail("['\r\n']") + + p = Parser(" + [a.\"b\"] + [\"f f\"] + [\"f.f\"] + [\"\\\\\\\"\"] + ['a.a'] + ['\"\"'] + ") + res = get(parse(p)) + @test haskey(res, "a.a") + @test haskey(res, "f f") + @test haskey(res, "f.f") + @test haskey(res, "\\\"") + @test haskey(res, "\"\"") + @test haskey(res["a"], "b") + + + @test haskey(get(parse(Parser("[foo]"))), "foo") + + + @testset "Inline Tables" begin + + @success("a = {}") + @success("a = {b=1}") + @success("a = { b = 1 }") + @success("a = {a=1,b=2}") + @success("a = {a=1,b=2,c={}}") + @fail("a = {a=1,}") + @fail("a = {,}") + @fail("a = {a=1,a=1}") + @fail("a = {\n}") + @fail("a = {") + @success("a = {a=[\n]}") + @success("a = {\"a\"=[\n]}") + @success("a = [\n{},\n{},\n]") + + end + + + @testset "Redefinition" begin + @fail(" + [a] + foo=\"bar\" + [a.b] + foo=\"bar\" + [a] + ", "redefinition of table `a`") + @fail(" + [a] + foo=\"bar\" + b = { foo = \"bar\" } + [a] + ", "redefinition of table `a`") + @success(" + [a.b] + c = {} + [a] + d = 1 + ") + @fail(" + [a.b] + c = 1 + [a] + b = {} + ", "duplicate key `b`") + @fail(" + [a] + b = {} + [a] + ", "redefinition of table `a`") + end + + @testset "Nesting" begin + @fail(" + a = [2] + [[a]] + b = 5 + ", "expected type `TOML.Table`, found type `$(Int)`") + @fail(" + a = 1 + [a.b] + ", "key `a` was not previously a table") + @fail(" + a = [] + [a.b] + ", "array `a` does not contain tables") + @success(" + a = [{}] + [a.b] + ") + @fail(" + a = [] + [[a.b]] + ", "array `a` does not contain tables") + @fail(" + [a] + b = { c = 2, d = {} } + [a.b] + c = 2 + ", "duplicate key `c`") + end + end + + @testset "Arrays" begin + + p = Parser(""" +[[foo]] + #… + [foo.bar] + #… +[[foo]] # ... + #… + [foo.bar] + #... +""") + res = get(parse(p)) + @test haskey(res, "foo") + arr = res["foo"] + @test length(arr) == 2 + @test isa(arr[1], TOML.Table) + @test haskey(arr[1], "bar") + @test haskey(arr[2], "bar") + + p = Parser(""" +[[fruit]] + name = "apple" + [fruit.physical] + color = "red" + shape = "round" + [[fruit.variety]] + name = "red delicious" + [[fruit.variety]] + name = "granny smith" +[[fruit]] + name = "banana" + [[fruit.variety]] + name = "plantain" +""") + res = get(parse(p)) + @test haskey(res, "fruit") + fruit = res["fruit"] + @test length(fruit) == 2 + @test isa(fruit[1], TOML.Table) + apple = fruit[1] + banana = fruit[2] + + @test haskey(apple, "name") + @test apple["name"] == "apple" + @test haskey(apple, "physical") + @test apple["physical"]["color"] == "red" + @test apple["physical"]["shape"] == "round" + @test apple["variety"][1]["name"] == "red delicious" + @test apple["variety"][2]["name"] == "granny smith" + + @test haskey(banana, "name") + @test banana["name"] == "banana" + @test banana["variety"][1]["name"] == "plantain" + + res = TOML.parse(""" +[[products]] +name = "Hammer" +sku = 738594937 + +[[products]] + +[[products]] +name = "Nail" +sku = 284758393 +color = "gray" +""") + @test haskey(res, "products") + products = res["products"] + @test isa(products, Array) + @test length(products) == 3 + @test products[1]["name"] == "Hammer" + @test products[1]["sku"] == 738594937 + @test length(products[2]) == 0 + @test products[3]["name"] == "Nail" + @test products[3]["sku"] == 284758393 + @test products[3]["color"] == "gray" + + @fail("""array = [ + # "This might most likely happen in multiline arrays", + # Like here, + # "or here, + # and here" + # ] End of array comment, forgot the # + """) + end + +end + +@testset "TOML printer" begin + res1 = TOML.parse(""" +title = "TOML Example" +[owner] +bio = \"\"\"GitHub Cofounder & CEO +Likes tater tots and beer.\"\"\" +dob = 1979-05-27T07:32:00Z # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + country = "中国" # This should be parsed as UTF-8 + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it + + [[products]] + name = "Hammer" + sku = 738594937 + + [[products]] + name = "Nail" + sku = 284758393 + color = "gray" +""") + io = IOBuffer() + TOML.print(io, res1) + seekstart(io) + res2 = TOML.parse(io) + @test res1 == res2 + +end diff --git a/stdlib/Pkg3/src/API.jl b/stdlib/Pkg3/src/API.jl new file mode 100644 index 00000000000000..b91f9e44a0723a --- /dev/null +++ b/stdlib/Pkg3/src/API.jl @@ -0,0 +1,348 @@ +module API + +using UUIDs +using Printf +import Random +import Dates +import LibGit2 + +import Pkg3 +import Pkg3: depots, logdir, devdir, print_first_command_header +using Pkg3.Types +using Pkg3.TOML + + +preview_info() = @info("In preview mode") + +add(pkg::Union{String, PackageSpec}; kwargs...) = add([pkg]; kwargs...) +add(pkgs::Vector{String}; kwargs...) = add([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +add(pkgs::Vector{PackageSpec}; kwargs...) = add(Context(), pkgs; kwargs...) + +function add(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + project_resolve!(ctx.env, pkgs) + registry_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs, true) + Pkg3.Operations.add(ctx, pkgs) +end + + +rm(pkg::Union{String, PackageSpec}; kwargs...) = rm([pkg]; kwargs...) +rm(pkgs::Vector{String}; kwargs...) = rm([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +rm(pkgs::Vector{PackageSpec}; kwargs...) = rm(Context(), pkgs; kwargs...) + +function rm(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + project_resolve!(ctx.env, pkgs) + manifest_resolve!(ctx.env, pkgs) + Pkg3.Operations.rm(ctx, pkgs) +end + + +up(;kwargs...) = up(PackageSpec[]; kwargs...) +up(pkg::Union{String, PackageSpec}; kwargs...) = up([pkg]; kwargs...) +up(pkgs::Vector{String}; kwargs...) = up([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +up(pkgs::Vector{PackageSpec}; kwargs...) = up(Context(), pkgs; kwargs...) + +function up(ctx::Context, pkgs::Vector{PackageSpec}; + level::UpgradeLevel=UPLEVEL_MAJOR, mode::PackageMode=PKGMODE_PROJECT, kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + + # Update the registry + errors = Tuple{String, String}[] + if ctx.preview + info("Skipping updating registry in preview mode") + else + for reg in registries() + if !isdir(joinpath(reg, ".git")) + @info("Registry at $reg is not a git repo, skipping update") + end + @info("Updating registry at $reg") + LibGit2.with(LibGit2.GitRepo, reg) do repo + if LibGit2.isdirty(repo) + push!(errors, (reg, "registry dirty")) + return + end + if !LibGit2.isattached(repo) + push!(errors, (reg, "registry detached")) + return + end + branch = LibGit2.headname(repo) + LibGit2.fetch(repo) + ff_succeeded = try + LibGit2.merge!(repo; branch="refs/remotes/origin/$branch", fastforward=true) + catch e + e isa LibGit2.GitError && e.code == LibGit2.Error.ENOTFOUND || rethrow(e) + push!(errors, (reg, "branch origin/$branch not found")) + return + end + + if !ff_succeeded + try LibGit2.rebase!(repo, "origin/$branch") + catch e + e isa LibGit2.GitError || rethrow(e) + push!(errors, (reg, "registry failed to rebase on origin/$branch")) + return + end + end + end + end + end + + if !isempty(errors) + warn_str = "Some registries failed to update:" + for (reg, err) in errors + warn_str *= "\n — $reg — $err" + end + @warn warn_str + end + + if isempty(pkgs) + if mode == PKGMODE_PROJECT + for (name::String, uuidstr::String) in ctx.env.project["deps"] + uuid = UUID(uuidstr) + push!(pkgs, PackageSpec(name, uuid, level)) + end + elseif mode == PKGMODE_MANIFEST + for (name, infos) in ctx.env.manifest, info in infos + uuid = UUID(info["uuid"]) + push!(pkgs, PackageSpec(name, uuid, level)) + end + end + else + project_resolve!(ctx.env, pkgs) + manifest_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + end + Pkg3.Operations.up(ctx, pkgs) +end + + +pin(pkg::Union{String, PackageSpec}; kwargs...) = pin([pkg]; kwargs...) +pin(pkgs::Vector{String}; kwargs...) = pin([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +pin(pkgs::Vector{PackageSpec}; kwargs...) = pin(Context(), pkgs; kwargs...) + +function pin(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + project_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + Pkg3.Operations.pin(ctx, pkgs) +end + + +free(pkg::Union{String, PackageSpec}; kwargs...) = free([pkg]; kwargs...) +free(pkgs::Vector{String}; kwargs...) = free([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +free(pkgs::Vector{PackageSpec}; kwargs...) = free(Context(), pkgs; kwargs...) + +function free(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + project_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + Pkg3.Operations.free(ctx, pkgs) +end + + +checkout(pkg::Union{String, PackageSpec}; kwargs...) = checkout([pkg]; kwargs...) +checkout(pkg::String, branch::String; kwargs...) = checkout([(PackageSpec(pkg), branch)]; kwargs...) +checkout(pkg::PackageSpec, branch::String; kwargs...) = checkout([(pkg, branch)]; kwargs...) +checkout(pkgs::Vector{String}; kwargs...) = checkout([(PackageSpec(pkg), nothing) for pkg in pkgs]; kwargs...) +checkout(pkgs::Vector{PackageSpec}; kwargs...) = checkout([(pkg, nothing) for pkg in pkgs]; kwargs...) +checkout(pkgs_branches::Vector; kwargs...) = checkout(Context(), pkgs_branches; kwargs...) + +function checkout(ctx::Context, pkgs_branches::Vector; path = devdir(), kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + pkgs = [p[1] for p in pkgs_branches] + project_resolve!(ctx.env, pkgs) + registry_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + Pkg3.Operations.checkout(ctx, pkgs_branches; path = path) +end + + +test(;kwargs...) = test(PackageSpec[], kwargs...) +test(pkg::Union{String, PackageSpec}; kwargs...) = test([pkg]; kwargs...) +test(pkgs::Vector{String}; kwargs...) = test([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +test(pkgs::Vector{PackageSpec}; kwargs...) = test(Context(), pkgs; kwargs...) + +function test(ctx::Context, pkgs::Vector{PackageSpec}; coverage=false, kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + ctx.preview && preview_info() + project_resolve!(ctx.env, pkgs) + manifest_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + Pkg3.Operations.test(ctx, pkgs; coverage=coverage) +end + + +function installed(mode::PackageMode=PKGMODE_MANIFEST)::Dict{String, VersionNumber} + diffs = Pkg3.Display.status(Context(), mode, #=use_as_api=# true) + version_status = Dict{String, VersionNumber}() + diffs == nothing && return version_status + for entry in diffs + version_status[entry.name] = entry.new.ver + end + return version_status +end + + +function gc(ctx::Context=Context(); period = Dates.Week(6), kwargs...) + print_first_command_header() + function recursive_dir_size(path) + sz = 0 + for (root, dirs, files) in walkdir(path) + for file in files + sz += stat(joinpath(root, file)).size + end + end + return sz + end + + Context!(ctx; kwargs...) + ctx.preview && preview_info() + env = ctx.env + + # If the manifest was not used + gc_time = Dates.now() - period + usage_file = joinpath(logdir(), "manifest_usage.toml") + + # Collect only the manifest that is least recently used + manifest_date = Dict{String, Dates.DateTime}() + for (manifest_file, infos) in TOML.parse(String(read(usage_file))) + for info in infos + date = info["time"] + manifest_date[manifest_file] = haskey(manifest_date, date) ? max(manifest_date[date], date) : date + end + end + + # Find all reachable packages through manifests recently used + new_usage = Dict{String, Any}() + paths_to_keep = String[] + for (manifestfile, date) in manifest_date + !isfile(manifestfile) && continue + if date < gc_time + continue + end + infos = read_manifest(manifestfile) + new_usage[manifestfile] = [Dict("time" => date)] + for entry in infos + entry isa Pair || continue + name, _stanzas = entry + @assert length(_stanzas) == 1 + stanzas = _stanzas[1] + if stanzas isa Dict && haskey(stanzas, "uuid") && haskey(stanzas, "git-tree-sha1") + push!(paths_to_keep, + Pkg3.Operations.find_installed(name, UUID(stanzas["uuid"]), SHA1(stanzas["git-tree-sha1"]))) + end + end + end + + # Collect the paths to delete (everything that is not reachable) + paths_to_delete = String[] + for depot in depots() + packagedir = abspath(depot, "packages") + if isdir(packagedir) + for name in readdir(packagedir) + for slug in readdir(joinpath(packagedir, name)) + versiondir = joinpath(packagedir, name, slug) + if !(versiondir in paths_to_keep) + push!(paths_to_delete, versiondir) + end + end + end + end + end + + # Delete paths for noreachable package versions and compute size saved + sz = 0 + for path in paths_to_delete + sz += recursive_dir_size(path) + if !ctx.preview + Base.rm(path; recursive=true) + end + end + + # Delete package paths that are now empty + for depot in depots() + packagedir = abspath(depot, "packages") + if isdir(packagedir) + for name in readdir(packagedir) + name_path = joinpath(packagedir, name) + if isempty(readdir(name_path)) + !ctx.preview && Base.rm(name_path) + end + end + end + end + + # Write the new condensed usage file + if !ctx.preview + open(usage_file, "w") do io + TOML.print(io, new_usage, sorted=true) + end + end + bytes, mb = Base.prettyprint_getunits(sz, length(Base._mem_units), Int64(1024)) + byte_save_str = length(paths_to_delete) == 0 ? "" : (" saving " * @sprintf("%.3f %s", bytes, Base._mem_units[mb])) + @info("Deleted $(length(paths_to_delete)) package installations $byte_save_str") +end + + +function _get_deps!(ctx::Context, pkgs::Vector{PackageSpec}, uuids::Vector{UUID}) + for pkg in pkgs + pkg.uuid in keys(ctx.stdlibs) && continue + info = manifest_info(ctx.env, pkg.uuid) + pkg.uuid in uuids && continue + push!(uuids, pkg.uuid) + if haskey(info, "deps") + pkgs = [PackageSpec(name, UUID(uuid)) for (name, uuid) in info["deps"]] + _get_deps!(ctx, pkgs, uuids) + end + end +end + +build(pkgs...) = build([PackageSpec(pkg) for pkg in pkgs]) +build(pkg::Array{Union{}, 1}) = build(PackageSpec[]) +build(pkg::PackageSpec) = build([pkg]) +build(pkgs::Vector{PackageSpec}) = build(Context(), pkgs) + +function build(ctx::Context, pkgs::Vector{PackageSpec}; kwargs...) + print_first_command_header() + Context!(ctx; kwargs...) + if isempty(pkgs) + for (name, infos) in ctx.env.manifest, info in infos + uuid = UUID(info["uuid"]) + push!(pkgs, PackageSpec(name, uuid)) + end + end + for pkg in pkgs + pkg.mode = PKGMODE_MANIFEST + end + manifest_resolve!(ctx.env, pkgs) + ensure_resolved(ctx.env, pkgs) + uuids = UUID[] + _get_deps!(ctx, pkgs, uuids) + length(uuids) == 0 && (@info("no packages to build"); return) + Pkg3.Operations.build_versions(ctx, uuids; do_resolve=true) +end + +init() = init(Context()) +init(path::String) = init(Context(), path) +function init(ctx::Context, path::String=pwd()) + print_first_command_header() + Context!(ctx; env = EnvCache(joinpath(path, "Project.toml"))) + Pkg3.Operations.init(ctx) +end + +end # module diff --git a/stdlib/Pkg3/src/Display.jl b/stdlib/Pkg3/src/Display.jl new file mode 100644 index 00000000000000..cfda015a41550f --- /dev/null +++ b/stdlib/Pkg3/src/Display.jl @@ -0,0 +1,227 @@ +module Display + +using UUIDs +import LibGit2 + +using Pkg3.Types +import Pkg3: @info, Nothing + + +const colors = Dict( + ' ' => :white, + '+' => :light_green, + '-' => :light_red, + '↑' => :light_yellow, + '~' => :light_yellow, + '↓' => :light_magenta, + '?' => :red, +) +const color_dark = :light_black + +function git_file_stream(repo::LibGit2.GitRepo, spec::String; fakeit::Bool=false)::IO + blob = try LibGit2.GitBlob(repo, spec) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + fakeit && return devnull + end + return IOBuffer(LibGit2.rawcontent(blob)) +end + +function status(ctx::Context, mode::PackageMode, use_as_api=false) + env = ctx.env + project₀ = project₁ = env.project + manifest₀ = manifest₁ = env.manifest + diff = nothing + + if env.git != nothing + git_path = LibGit2.path(env.git) + project_path = relpath(env.project_file, git_path) + manifest_path = relpath(env.manifest_file, git_path) + project₀ = read_project(git_file_stream(env.git, "HEAD:$project_path", fakeit=true)) + manifest₀ = read_manifest(git_file_stream(env.git, "HEAD:$manifest_path", fakeit=true)) + end + if mode == PKGMODE_PROJECT || mode == PKGMODE_COMBINED + # TODO: handle project deps missing from manifest + m₀ = filter_manifest(in_project(project₀["deps"]), manifest₀) + m₁ = filter_manifest(in_project(project₁["deps"]), manifest₁) + use_as_api || @info("Status $(pathrepr(env, env.project_file))") + diff = manifest_diff(m₀, m₁) + use_as_api || print_diff(diff) + end + if mode == PKGMODE_MANIFEST + use_as_api || @info("Status $(pathrepr(env, env.manifest_file))") + diff = manifest_diff(manifest₀, manifest₁) + use_as_api || print_diff(diff) + elseif mode == PKGMODE_COMBINED + p = not_in_project(merge(project₀["deps"], project₁["deps"])) + m₀ = filter_manifest(p, manifest₀) + m₁ = filter_manifest(p, manifest₁) + c_diff = filter!(x->x.old != x.new, manifest_diff(m₀, m₁)) + if !isempty(c_diff) + use_as_api || @info("Status $(pathrepr(env, env.manifest_file))") + use_as_api || print_diff(c_diff) + diff = Base.vcat(c_diff, diff) + end + end + return diff +end + +function print_project_diff(env₀::EnvCache, env₁::EnvCache) + pm₀ = filter_manifest(in_project(env₀.project["deps"]), env₀.manifest) + pm₁ = filter_manifest(in_project(env₁.project["deps"]), env₁.manifest) + diff = filter!(x->x.old != x.new, manifest_diff(pm₀, pm₁)) + if isempty(diff) + printstyled(color = color_dark, " [no changes]\n") + else + print_diff(diff) + end +end + +function print_manifest_diff(env₀::EnvCache, env₁::EnvCache) + diff = manifest_diff(env₀.manifest, env₁.manifest) + diff = filter!(x->x.old != x.new, diff) + if isempty(diff) + printstyled(color = color_dark, " [no changes]\n") + else + print_diff(diff) + end +end + +struct VerInfo + hash::Union{SHA1,Nothing} + path::Union{String,Nothing} + ver::Union{VersionNumber,Nothing} + pinned::Bool +end + +vstring(a::VerInfo) = + string(a.ver == nothing ? "[$(string(a.hash)[1:16])]" : "v$(a.ver)", + a.pinned == true ? "⚲" : "", + a.path != nothing ? " [$(a.path)]" : "") + +Base.:(==)(a::VerInfo, b::VerInfo) = + a.hash == b.hash && a.ver == b.ver && a.pinned == b.pinned + +≈(a::VerInfo, b::VerInfo) = a.hash == b.hash && + (a.ver == nothing || b.ver == nothing || a.ver == b.ver) && + (a.pinned == b.pinned) + +struct DiffEntry + uuid::UUID + name::String + old::Union{VerInfo,Nothing} + new::Union{VerInfo,Nothing} +end + +function print_diff(io::IO, diff::Vector{DiffEntry}) + same = all(x.old == x.new for x in diff) + for x in diff + warnings = String[] + if x.old != nothing && x.new != nothing + if x.old ≈ x.new + verb = ' ' + vstr = vstring(x.new) + else + if x.old.hash != x.new.hash && x.old.ver != x.new.ver + verb = x.old.ver == nothing || x.new.ver == nothing || + x.old.ver == x.new.ver ? '~' : + x.old.ver < x.new.ver ? '↑' : '↓' + elseif x.old.ver == x.new.ver && x.old.pinned != x.new.pinned + verb = '~' + else + verb = '?' + msg = x.old.hash == x.new.hash ? + "hashes match but versions don't: $(x.old.ver) ≠ $(x.new.ver)" : + "versions match but hashes don't: $(x.old.hash) ≠ $(x.new.hash)" + push!(warnings, msg) + end + vstr = (x.old.ver == x.new.ver && x.old.pinned == x.new.pinned) ? + vstring(x.new) : + vstring(x.old) * " ⇒ " * vstring(x.new) + end + elseif x.new != nothing + verb = '+' + vstr = vstring(x.new) + elseif x.old != nothing + verb = '-' + vstr = vstring(x.old) + else + verb = '?' + vstr = "[unknown]" + end + v = same ? "" : " $verb" + printstyled(color = color_dark, " [$(string(x.uuid)[1:8])]") + printstyled(color = colors[verb], "$v $(x.name) $vstr\n") + end +end +print_diff(diff::Vector{DiffEntry}) = print_diff(stdout, diff) + +function manifest_by_uuid(manifest::Dict) + entries = Dict{UUID,Dict}() + for (name, infos) in manifest, info in infos + uuid = UUID(info["uuid"]) + haskey(entries, uuid) && @warn("Duplicate UUID in manifest: $uuid") + entries[uuid] = merge(info, Dict("name" => name)) + end + return entries +end + +function name_ver_info(info::Dict) + name = info["name"] + hash = haskey(info, "git-tree-sha1") ? SHA1(info["git-tree-sha1"]) : nothing + ver = haskey(info, "version") ? VersionNumber(info["version"]) : nothing + path = get(info, "path", nothing) + pin = get(info, "pinned", false) + name, VerInfo(hash, path, ver, pin) +end + +function manifest_diff(manifest₀::Dict, manifest₁::Dict) + diff = DiffEntry[] + entries₀ = manifest_by_uuid(manifest₀) + entries₁ = manifest_by_uuid(manifest₁) + for uuid in union(keys(entries₀), keys(entries₁)) + name₀ = name₁ = v₀ = v₁ = nothing + haskey(entries₀, uuid) && ((name₀, v₀) = name_ver_info(entries₀[uuid])) + haskey(entries₁, uuid) && ((name₁, v₁) = name_ver_info(entries₁[uuid])) + name₀ == nothing && (name₀ = name₁) + name₁ == nothing && (name₁ = name₀) + if name₀ == name₁ + push!(diff, DiffEntry(uuid, name₀, v₀, v₁)) + else + push!(diff, DiffEntry(uuid, name₀, v₀, nothing)) + push!(diff, DiffEntry(uuid, name₁, nothing, v₁)) + end + end + sort!(diff, by=x->(x.name, x.uuid)) +end + +function filter_manifest!(predicate, manifest::Dict) + empty = String[] + for (name, infos) in manifest + filter!(infos) do info + predicate(name, info) + end + isempty(infos) && push!(empty, name) + end + for name in empty + pop!(manifest, name) + end + return manifest +end +filter_manifest(predicate, manifest::Dict) = + filter_manifest!(predicate, deepcopy(manifest)) + +# This is precompilable, an anonymous function is not. +struct InProject{D <: Dict} + deps::D + neg::Bool +end +function (ip::InProject)(name::String, info::Dict) + v = haskey(ip.deps, name) && haskey(info, "uuid") && ip.deps[name] == info["uuid"] + return ip.neg ? !v : v +end +in_project(deps::Dict) = InProject(deps, false) +not_in_project(deps::Dict) = InProject(deps, true) + + +end # module diff --git a/stdlib/Pkg3/src/GraphType.jl b/stdlib/Pkg3/src/GraphType.jl new file mode 100644 index 00000000000000..ae0f29d1cec04c --- /dev/null +++ b/stdlib/Pkg3/src/GraphType.jl @@ -0,0 +1,1477 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module GraphType + +import ..Pkg3 +using Pkg3.Types +import Pkg3: equalto, Nothing, Types.uuid_julia + +export Graph, ResolveLog, add_reqs!, add_fixed!, simplify_graph!, simplify_graph_soft!, + get_resolve_log, showlog, push_snapshot!, pop_snapshot!, wipe_snapshots! + +# The ResolveLog is used to keep track of events that take place during the +# resolution process. We use one ResolveLogEntry per package, and record all events +# associated with that package. An event consists of two items: another +# entry representing another package's influence (or `nothing`) and +# a message for the log. +# +# Specialized functions called `log_event_[...]!` are used to store the +# various events. The events are also recorded in orded in a shared +# ResolveJournal, which is used to provide a plain chronological view. +# +# The `showlog` functions are used for display, and called to create messages +# in case of resolution errors. + +const UUID0 = UUID(UInt128(0)) + +const ResolveJournal = Vector{Tuple{UUID,String}} + +mutable struct ResolveLogEntry + journal::ResolveJournal # shared with all other entries + pkg::UUID + header::String + events::Vector{Tuple{Any,String}} # here Any should ideally be Union{ResolveLogEntry,Nothing} + ResolveLogEntry(journal::ResolveJournal, pkg::UUID, header::String = "") = new(journal, pkg, header, []) +end + +function Base.push!(entry::ResolveLogEntry, reason::Tuple{Union{ResolveLogEntry,Nothing},String}, to_journal::Bool = true) + push!(entry.events, reason) + to_journal && entry.pkg ≠ uuid_julia && push!(entry.journal, (entry.pkg, reason[2])) + return entry +end + +mutable struct ResolveLog + # init: used to keep track of all package entries which were created during + # intialization, since the `pool` can be pruned during the resolution + # process. + init::ResolveLogEntry + + # globals: records global events not associated to any particular package + globals::ResolveLogEntry + + # pool: records entries associated to each package + pool::Dict{UUID,ResolveLogEntry} + + # journal: record all messages in order (shared between all entries) + journal::Vector{Tuple{UUID,String}} + + # exact: keeps track of whether the resolve process is still exact, or + # heuristics have been employed + exact::Bool + + # verbose: print global events messages on screen + verbose::Bool + + # UUID to names + uuid_to_name::Dict{UUID,String} + + function ResolveLog(uuid_to_name::Dict{UUID,String}, verbose::Bool = false) + journal = ResolveJournal() + init = ResolveLogEntry(journal, UUID0, "") + globals = ResolveLogEntry(journal, UUID0, "Global events:") + return new(init, globals, Dict(), journal, true, verbose, uuid_to_name) + end +end + +# Installation state: either a version, or uninstalled +const InstState = Union{VersionNumber,Nothing} + + +# GraphData is basically a part of Graph that collects data structures useful +# for interfacing the internal abstract representation of Graph with the +# input/output (e.g. converts between package UUIDs and node numbers, etc.) +mutable struct GraphData + # packages list + pkgs::Vector{UUID} + + # number of packages + np::Int + + # states per package: one per version + uninstalled + spp::Vector{Int} + + # pakage dict: associates an index to each package id + pdict::Dict{UUID,Int} + + # package versions: for each package, keep the list of the + # possible version numbers; this defines a + # mapping from version numbers of a package + # to indices + pvers::Vector{Vector{VersionNumber}} + + # versions dict: associates a version index to each package + # version; such that + # pvers[p0][vdict[p0][vn]] = vn + vdict::Vector{Dict{VersionNumber,Int}} + + # UUID to names + uuid_to_name::Dict{UUID,String} + + # pruned packages: during graph simplification, packages that + # only have one allowed version are pruned. + # This keeps track of them, so that they may + # be returned in the solution (unless they + # were explicitly fixed) + pruned::Dict{UUID,VersionNumber} + + # equivalence classes: for each package and each of its possible + # states, keep track of other equivalent states + eq_classes::Dict{UUID,Dict{InstState,Set{InstState}}} + + # resolve log: keep track of the resolution process + rlog::ResolveLog + + function GraphData( + versions::Dict{UUID,Set{VersionNumber}}, + deps::Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + compat::Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + uuid_to_name::Dict{UUID,String}, + verbose::Bool = false + ) + # generate pkgs + pkgs = sort!(collect(keys(versions))) + np = length(pkgs) + + # generate pdict + pdict = Dict{UUID,Int}(pkgs[p0] => p0 for p0 = 1:np) + + # generate spp and pvers + pvers = [sort!(collect(versions[pkgs[p0]])) for p0 = 1:np] + spp = length.(pvers) .+ 1 + + # generate vdict + vdict = [Dict{VersionNumber,Int}(vn => i for (i,vn) in enumerate(pvers[p0])) for p0 = 1:np] + + # nothing is pruned yet, of course + pruned = Dict{UUID,VersionNumber}() + + # equivalence classes (at the beginning each state represents just itself) + eq_vn(v0, p0) = (v0 == spp[p0] ? nothing : pvers[p0][v0]) + + # Hot code, measure performance before changing + eq_classes = Dict{UUID,Dict{InstState,Set{InstState}}}() + for p0 = 1:np + d = Dict{InstState, Set{InstState}}() + for v0 = 1:spp[p0] + let p0 = p0 # Due to https://github.com/JuliaLang/julia/issues/15276 + d[eq_vn(v0,p0)] = Set([eq_vn(v0,p0)]) + end + end + eq_classes[pkgs[p0]] = d + end + + # the resolution log is actually initialized below + rlog = ResolveLog(uuid_to_name, verbose) + + data = new(pkgs, np, spp, pdict, pvers, vdict, uuid_to_name, pruned, eq_classes, rlog) + + init_log!(data) + + return data + end + + function Base.copy(data::GraphData) + pkgs = copy(data.pkgs) + np = data.np + spp = copy(data.spp) + pdict = copy(data.pdict) + pvers = [copy(data.pvers[p0]) for p0 = 1:np] + vdict = [copy(data.vdict[p0]) for p0 = 1:np] + pruned = copy(data.pruned) + eq_classes = Dict(p => copy(eq) for (p,eq) in data.eq_classes) + rlog = deepcopy(data.rlog) + uuid_to_name = rlog.uuid_to_name + + return new(pkgs, np, spp, pdict, pvers, vdict, uuid_to_name, pruned, eq_classes, rlog) + end +end + +mutable struct Graph + # data: + # stores all the structures required to map between + # parsed items (names, UUIDS, version numbers...) and + # the numeric representation used in the main Graph data + # structure. + data::GraphData + + # adjacency matrix: + # for each package, has the list of neighbors + # indices + gadj::Vector{Vector{Int}} + + # compatibility mask: + # for each package p0 has a list of bool masks. + # Each entry in the list gmsk[p0] is relative to the + # package p1 as read from gadj[p0]. + # Each mask has dimension spp1 × spp0, where + # spp0 is the number of states of p0, and + # spp1 is the number of states of p1. + gmsk::Vector{Vector{BitMatrix}} + + # constraints: + # a mask of allowed states for each package (e.g. to express + # requirements) + gconstr::Vector{BitVector} + + # adjacency dict: + # allows one to retrieve the indices in gadj, so that + # gadj[p0][adjdict[p1][p0]] = p1 + # ("At which index does package p1 appear in gadj[p0]?") + adjdict::Vector{Dict{Int,Int}} + + # indices of the packages that were *explicitly* required + # used to favor their versions at resolution + req_inds::Set{Int} + + # indices of the packages that were *explicitly* fixed + # used to avoid returning them in the solution + fix_inds::Set{Int} + + ignored::BitVector + + # stack of constraints/ignored packages: + # allows to keep a sort of "versioning" of the constraints + # such that the solver can implement tentative solutions + solve_stack::Vector{Tuple{Vector{BitVector},BitVector}} + + # states per package: same as in GraphData + spp::Vector{Int} + + # number of packages (all Vectors above have this length) + np::Int + + function Graph( + versions::Dict{UUID,Set{VersionNumber}}, + deps::Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + compat::Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + uuid_to_name::Dict{UUID,String}, + reqs::Requires = Requires(), + fixed::Dict{UUID,Fixed} = Dict{UUID,Fixed}(uuid_julia=>Fixed(VERSION)), + verbose::Bool = false + ) + + extra_uuids = union(keys(reqs), keys(fixed), map(fx->keys(fx.requires), values(fixed))...) + extra_uuids ⊆ keys(versions) || error("unknown UUID found in reqs/fixed") # TODO? + + # Type assert below due to https://github.com/JuliaLang/julia/issues/25918 + data = GraphData(versions, deps, compat, uuid_to_name, verbose)::GraphData + pkgs, np, spp, pdict, pvers, vdict, rlog = data.pkgs, data.np, data.spp, data.pdict, data.pvers, data.vdict, data.rlog + + local extended_deps + let spp = spp # Due to https://github.com/JuliaLang/julia/issues/15276 + # Type assert below to help inference + extended_deps = [Vector{Dict{Int,BitVector}}(uninitialized, spp[p0]-1) for p0 = 1:np]::Vector{Vector{Dict{Int,BitVector}}} + end + for p0 = 1:np, v0 = 1:(spp[p0]-1) + n2u = Dict{String,UUID}() + vn = pvers[p0][v0] + for (vr,vrmap) in deps[pkgs[p0]] + vn ∈ vr || continue + for (name,uuid) in vrmap + # check conflicts ?? + n2u[name] = uuid + end + end + req = Dict{Int,VersionSpec}() + for (vr,vrmap) in compat[pkgs[p0]] + vn ∈ vr || continue + for (name,vs) in vrmap + haskey(n2u, name) || error("Unknown package $name found in the compatibility requirements of $(pkgID(pkgs[p0], uuid_to_name))") + uuid = n2u[name] + p1 = pdict[uuid] + p1 == p0 && error("Package $(pkgID(pkgs[p0], uuid_to_name)) version $vn has a dependency with itself") + # check conflicts instead of intersecting? + # (intersecting is used by fixed packages though...) + req_p1 = get!(req, p1) do; VersionSpec() end + req[p1] = req_p1 ∩ vs + end + end + # The remaining dependencies do not have compatibility constraints + for uuid in values(n2u) + get!(req, pdict[uuid]) do; VersionSpec() end + end + # Translate the requirements into bit masks + # Hot code, measure performance before changing + req_msk = Dict{Int,BitVector}() + for (p1, vs) in req + pv = pvers[p1] + req_msk_p1 = BitArray(uninitialized, spp[p1] - 1) + @inbounds for i in 1:spp[p1] - 1 + req_msk_p1[i] = pv[i] ∈ vs + end + req_msk[p1] = req_msk_p1 + end + extended_deps[p0][v0] = req_msk + end + + gadj = [Int[] for p0 = 1:np] + gmsk = [BitMatrix[] for p0 = 1:np] + local gconstr + let spp = spp # Due to https://github.com/JuliaLang/julia/issues/15276 + gconstr = [trues(spp[p0]) for p0 = 1:np] + end + adjdict = [Dict{Int,Int}() for p0 = 1:np] + + for p0 = 1:np, v0 = 1:(spp[p0]-1), (p1,rmsk1) in extended_deps[p0][v0] + @assert p0 ≠ p1 + j0 = get(adjdict[p1], p0, length(gadj[p0]) + 1) + j1 = get(adjdict[p0], p1, length(gadj[p1]) + 1) + + @assert (j0 > length(gadj[p0]) && j1 > length(gadj[p1])) || + (j0 ≤ length(gadj[p0]) && j1 ≤ length(gadj[p1])) + + if j0 > length(gadj[p0]) + push!(gadj[p0], p1) + push!(gadj[p1], p0) + j0 = length(gadj[p0]) + j1 = length(gadj[p1]) + + adjdict[p1][p0] = j0 + adjdict[p0][p1] = j1 + + bm = trues(spp[p1], spp[p0]) + bmt = copy(transpose(bm)) + + push!(gmsk[p0], bm) + push!(gmsk[p1], bmt) + else + bm = gmsk[p0][j0] + bmt = gmsk[p1][j1] + end + + for v1 = 1:(spp[p1]-1) + rmsk1[v1] && continue + bm[v1, v0] = false + bmt[v0, v1] = false + end + bm[end,v0] = false + bmt[v0,end] = false + end + + req_inds = Set{Int}() + fix_inds = Set{Int}() + + ignored = falses(np) + solve_stack = Tuple{Vector{BitVector},BitVector}[] + + graph = new(data, gadj, gmsk, gconstr, adjdict, req_inds, fix_inds, ignored, solve_stack, spp, np) + + _add_fixed!(graph, fixed) + _add_reqs!(graph, reqs, :explicit_requirement) + + @assert check_consistency(graph) + check_constraints(graph) + + return graph + end + + function Base.copy(graph::Graph) + data = copy(graph.data) + np = graph.np + spp = data.spp + gadj = [copy(graph.gadj[p0]) for p0 = 1:np] + gmsk = [[copy(graph.gmsk[p0][j0]) for j0 = 1:length(gadj[p0])] for p0 = 1:np] + gconstr = [copy(graph.gconstr[p0]) for p0 = 1:np] + adjdict = [copy(graph.adjdict[p0]) for p0 = 1:np] + req_inds = copy(graph.req_inds) + fix_inds = copy(graph.fix_inds) + ignored = copy(graph.ignored) + solve_stack = [([copy(gc0) for gc0 in sav_gconstr],copy(sav_ignored)) for (sav_gconstr,sav_ignored) in graph.solve_stack] + + return new(data, gadj, gmsk, gconstr, adjdict, req_inds, fix_inds, ignored, solve_stack, spp, np) + end +end + + +""" +Add explicit requirements to the graph. +""" +function add_reqs!(graph::Graph, reqs::Requires) + _add_reqs!(graph, reqs, :explicit_requirement) + check_constraints(graph) + # TODO: add reqs to graph data? + return graph +end + +function _add_reqs!(graph::Graph, reqs::Requires, reason) + gconstr = graph.gconstr + spp = graph.spp + req_inds = graph.req_inds + pdict = graph.data.pdict + pvers = graph.data.pvers + + for (rp,rvs) in reqs + haskey(pdict, rp) || error("unknown required package $(pkgID(rp, graph))") + rp0 = pdict[rp] + new_constr = trues(spp[rp0]) + for rv0 = 1:(spp[rp0]-1) + rvn = pvers[rp0][rv0] + rvn ∈ rvs || (new_constr[rv0] = false) + end + new_constr[end] = false + old_constr = copy(gconstr[rp0]) + gconstr[rp0] .&= new_constr + reason ≡ :explicit_requirement && push!(req_inds, rp0) + old_constr ≠ gconstr[rp0] && log_event_req!(graph, rp, rvs, reason) + end + return graph +end + +"Add fixed packages to the graph, and their requirements." +function add_fixed!(graph::Graph, fixed::Dict{UUID,Fixed}) + _add_fixed!(graph, fixed) + check_constraints(graph) + # TODO: add fixed to graph data? + return graph +end + +function _add_fixed!(graph::Graph, fixed::Dict{UUID,Fixed}) + gconstr = graph.gconstr + spp = graph.spp + fix_inds = graph.fix_inds + pdict = graph.data.pdict + vdict = graph.data.vdict + + for (fp,fx) in fixed + haskey(pdict, fp) || error("unknown fixed package $(pkgID(fp, graph))") + fp0 = pdict[fp] + fv0 = vdict[fp0][fx.version] + new_constr = falses(spp[fp0]) + new_constr[fv0] = true + gconstr[fp0] .&= new_constr + push!(fix_inds, fp0) + bkitem = log_event_fixed!(graph, fp, fx) + _add_reqs!(graph, fx.requires, (fp, bkitem)) + end + return graph +end + +Types.pkgID(p::UUID, rlog::ResolveLog) = pkgID(p, rlog.uuid_to_name) +Types.pkgID(p::UUID, data::GraphData) = pkgID(p, data.uuid_to_name) +Types.pkgID(p0::Int, data::GraphData) = pkgID(data.pkgs[p0], data) +Types.pkgID(p, graph::Graph) = pkgID(p, graph.data) + +function check_consistency(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + req_inds = graph.req_inds + fix_inds = graph.fix_inds + ignored = graph.ignored + solve_stack = graph.solve_stack + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + vdict = data.vdict + pruned = data.pruned + eq_classes = data.eq_classes + rlog = data.rlog + # TODO: check ignored and solve_stack + + @assert np ≥ 0 + for x in [spp, gadj, gmsk, gconstr, adjdict, ignored, rlog.pool, pkgs, pdict, pvers, vdict] + @assert length(x) == np + end + for p0 = 1:np + @assert pdict[pkgs[p0]] == p0 + spp0 = spp[p0] + @assert spp0 ≥ 1 + pvers0 = pvers[p0] + vdict0 = vdict[p0] + @assert length(pvers0) == spp0 - 1 + for v0 = 1:(spp0-1) + @assert vdict0[pvers0[v0]] == v0 + end + for (vn,v0) in vdict0 + @assert 1 ≤ v0 ≤ spp0-1 + @assert pvers0[v0] == vn + end + gconstr0 = gconstr[p0] + @assert length(gconstr0) == spp0 + + gadj0 = gadj[p0] + gmsk0 = gmsk[p0] + adjdict0 = adjdict[p0] + @assert length(gmsk0) == length(gadj0) + @assert length(adjdict0) == length(gadj0) + for (j0,p1) in enumerate(gadj0) + @assert p1 ≠ p0 + @assert adjdict[p1][p0] == j0 + spp1 = spp[p1] + @assert size(gmsk0[j0]) == (spp1,spp0) + j1 = adjdict0[p1] + gmsk1 = gmsk[p1] + @assert gmsk1[j1] == copy(transpose(gmsk0[j0])) + end + end + for (p,p0) in pdict + @assert 1 ≤ p0 ≤ np + @assert pkgs[p0] == p + @assert !haskey(pruned, p) + end + for p0 in req_inds + @assert 1 ≤ p0 ≤ np + @assert !gconstr[p0][end] + end + for p0 in fix_inds + @assert 1 ≤ p0 ≤ np + @assert !gconstr[p0][end] + @assert count(gconstr[p0]) == 1 + end + + for (p,eq_cl) in eq_classes, (rvn,rvs) in eq_cl + @assert rvn ∈ rvs + end + + for (sav_gconstr,sav_ignored) in solve_stack + @assert length(sav_ignored) == np + @assert length(sav_gconstr) == np + for p0 = 1:np + @assert length(sav_gconstr[p0]) == spp[p0] + end + end + + return true +end + +function push_snapshot!(graph::Graph) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + solve_stack = graph.solve_stack + sav_gconstr = [copy(gc0) for gc0 in gconstr] + sav_ignored = copy(ignored) + push!(solve_stack, (gconstr, ignored)) + graph.gconstr = sav_gconstr + graph.ignored = sav_ignored + return graph +end + +function pop_snapshot!(graph::Graph) + np = graph.np + solve_stack = graph.solve_stack + @assert length(solve_stack) > 0 + sav_gconstr, sav_ignored = pop!(graph.solve_stack) + graph.gconstr = sav_gconstr + graph.ignored = sav_ignored + return graph +end + +function wipe_snapshots!(graph::Graph) + np = graph.np + solve_stack = graph.solve_stack + if length(solve_stack) > 0 + graph.gconstr, graph.ignored = first(solve_stack) + empty!(solve_stack) + end + return graph +end + +function init_log!(data::GraphData) + np = data.np + pkgs = data.pkgs + pvers = data.pvers + rlog = data.rlog + for p0 = 1:np + p = pkgs[p0] + id = pkgID(p0, data) + versions = pvers[p0] + if isempty(versions) + msg = "$id has no known versions!" # This shouldn't happen? + else + msg = "possible versions are: $(VersionSpec(VersionRange.(versions))) or uninstalled" + end + first_entry = get!(rlog.pool, p) do; ResolveLogEntry(rlog.journal, p, "$id log:") end + + if p ≠ uuid_julia + push!(first_entry, (nothing, msg)) + push!(rlog.init, (first_entry, ""), false) + end + end + return data +end + +function log_event_fixed!(graph::Graph, fp::UUID, fx::Fixed) + rlog = graph.data.rlog + id = pkgID(fp, rlog) + msg = "$id is fixed to version $(fx.version)" + entry = rlog.pool[fp] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_req!(graph::Graph, rp::UUID, rvs::VersionSpec, reason) + rlog = graph.data.rlog + gconstr = graph.gconstr + pdict = graph.data.pdict + pvers = graph.data.pvers + id = pkgID(rp, rlog) + msg = "restricted to versions $rvs by " + if reason isa Symbol + @assert reason == :explicit_requirement + other_entry = nothing + msg *= "an explicit requirement" + else + other_p, other_entry = reason::Tuple{UUID,ResolveLogEntry} + if other_p == uuid_julia + msg *= "julia compatibility requirements" + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "$other_id" + end + end + rp0 = pdict[rp] + @assert !gconstr[rp0][end] + if any(gconstr[rp0]) + msg *= ", leaving only versions $(VersionSpec(VersionRange.(pvers[rp0][gconstr[rp0][1:(end-1)]])))" + else + msg *= " — no versions left" + end + entry = rlog.pool[rp] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_global!(graph::Graph, msg::String) + rlog = graph.data.rlog + rlog.verbose && @info(msg) + push!(rlog.globals, (nothing, msg)) +end + +function log_event_implicit_req!(graph::Graph, p1::Int, vmask::BitVector, p0::Int) + rlog = graph.data.rlog + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + function vs_string(p0::Int, vmask::BitVector) + if any(vmask[1:(end-1)]) + vns = string(VersionSpec(VersionRange.(pvers[p0][vmask[1:(end-1)]]))) + vmask[end] && (vns *= " or uninstalled") + else + @assert vmask[end] + vns = "uninstalled" + end + return vns + end + + p = pkgs[p1] + id = pkgID(p, rlog) + other_p, other_entry = pkgs[p0], rlog.pool[pkgs[p0]] + other_id = pkgID(other_p, rlog) + if any(vmask) + msg = "restricted by " + if other_p == uuid_julia + msg *= "julia compatibility requirements " + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "compatibility requirements with $other_id " + end + msg *= "to versions: $(vs_string(p1, vmask))" + if vmask ≠ gconstr[p1] + if any(gconstr[p1]) + msg *= ", leaving only versions: $(vs_string(p1, gconstr[p1]))" + else + msg *= " — no versions left" + end + end + else + msg = "found to have no compatible versions left with " + if other_p == uuid_julia + msg *= "julia" + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "$other_id " + end + end + entry = rlog.pool[p] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_pruned!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + msg = "determined to be unneeded during graph pruning" + else + msg = "fixed during graph pruning to its only remaining available version, $(pvers[p0][s0])" + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_greedysolved!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + msg = "determined to be unneeded by the solver" + else + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0])" + else + msg = "set by the solver to the maximum version compatible with the constraints: $(pvers[p0][s0])" + end + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumsolved!(graph::Graph, p0::Int, s0::Int, why::Symbol) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + @assert why == :uninst + msg = "determined to be unneeded by the solver" + else + @assert why == :constr + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0])" + else + msg = "set by the solver to version: $(pvers[p0][s0]) (version $(pvers[p0][s0+1]) would violate its constraints)" + end + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumsolved!(graph::Graph, p0::Int, s0::Int, p1::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + other_id = pkgID(pkgs[p1], rlog) + @assert s0 ≠ spp[p0] + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0]) (installation is required by $other_id)" + else + msg = "set by the solver version: $(pvers[p0][s0]) (version $(pvers[p0][s0+1]) would violate a dependecy relation with $other_id)" + end + other_entry = rlog.pool[pkgs[p1]] + entry = rlog.pool[p] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_eq_classes!(graph::Graph, p0::Int) + rlog = graph.data.rlog + spp = graph.spp + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + if any(gconstr[p0][1:(end-1)]) + vns = string(VersionSpec(VersionRange.(pvers[p0][gconstr[p0][1:(end-1)]]))) + gconstr[p0][end] && (vns *= " or uninstalled") + elseif gconstr[p0][end] + vns = "uninstalled" + else + vns = "no version" + end + + p = pkgs[p0] + id = pkgID(p, rlog) + msg = "versions reduced by equivalence to: $vns" + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumtrace!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + rlog.exact = false + p = graph.data.pkgs[p0] + id = pkgID(p, rlog) + if s0 < graph.spp[p0] + msg = "fixed by the MaxSum heuristic to version $(graph.data.pvers[p0][s0])" + else + msg = "determined to be unneeded by the MaxSum heuristic" + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +"Get the resolution log, detached" +get_resolve_log(graph::Graph) = deepcopy(graph.data.rlog) + +const _logindent = " " + +showlog(graph::Graph, args...; kw...) = showlog(stdout, graph, args...; kw...) +showlog(io::IO, graph::Graph, args...; kw...) = showlog(io, graph.data.rlog, args...; kw...) +showlog(rlog::ResolveLog, args...; kw...) = showlog(stdout, rlog, args...; kw...) + +""" +Show the full resolution log. The `view` keyword controls how the events are displayed/grouped: + + * `:plain` for a shallow view, grouped by package, alphabetically (the default) + * `:tree` for a tree view in which the log of a package is displayed as soon as it appears + in the process (the top-level is still grouped by package, alphabetically) + * `:chronological` for a flat view of all events in chronological order +""" +function showlog(io::IO, rlog::ResolveLog; view::Symbol = :plain) + view ∈ [:plain, :tree, :chronological] || throw(ArgumentError("the view argument should be `:plain`, `:tree` or `:chronological`")) + println(io, "Resolve log:") + view == :chronological && return showlogjournal(io, rlog) + seen = IdDict() + recursive = (view == :tree) + _show(io, rlog, rlog.globals, _logindent, seen, false) + initentries = [event[1] for event in rlog.init.events] + for entry in sort!(initentries, by=(entry->pkgID(entry.pkg, rlog))) + seen[entry] = true + _show(io, rlog, entry, _logindent, seen, recursive) + end +end + +function showlogjournal(io::IO, rlog::ResolveLog) + journal = rlog.journal + id(p) = p == UUID0 ? "[global event]" : pkgID(p, rlog) + padding = maximum(length(id(p)) for (p,_) in journal) + for (p,msg) in journal + println(io, ' ', rpad(id(p), padding), ": ", msg) + end +end + +""" +Show the resolution log for some package, and all the other packages that affected +it during resolution. The `view` option can be either `:plain` or `:tree` (works +the same as for `showlog(io, rlog)`); the default is `:tree`. +""" +function showlog(io::IO, rlog::ResolveLog, p::UUID; view::Symbol = :tree) + view ∈ [:plain, :tree] || throw(ArgumentError("the view argument should be `:plain` or `:tree`")) + entry = rlog.pool[p] + if view == :tree + _show(io, rlog, entry, _logindent, IdDict(entry=>true), true) + else + entries = ResolveLogEntry[entry] + function getentries(entry) + for (other_entry,_) in entry.events + (other_entry ≡ nothing || other_entry ∈ entries) && continue + push!(entries, other_entry) + getentries(other_entry) + end + end + getentries(entry) + for entry in entries + _show(io, rlog, entry, _logindent, IdDict(), false) + end + end +end + +# Show a recursive tree with requirements applied to a package, either directly or indirectly +function _show(io::IO, rlog::ResolveLog, entry::ResolveLogEntry, indent::String, seen::IdDict, recursive::Bool) + toplevel = (indent == _logindent) + firstglyph = toplevel ? "" : "└─" + pre = toplevel ? "" : " " + println(io, indent, firstglyph, entry.header) + l = length(entry.events) + for (i,(otheritem,msg)) in enumerate(entry.events) + if !isempty(msg) + print(io, indent * pre, (i==l ? '└' : '├'), '─') + println(io, msg) + newindent = indent * pre * (i==l ? " " : "│ ") + else + newindent = indent + end + otheritem ≡ nothing && continue + recursive || continue + if otheritem ∈ keys(seen) + println(io, newindent, "└─", otheritem.header, " see above") + continue + end + seen[otheritem] = true + _show(io, rlog, otheritem, newindent, seen, recursive) + end +end + +is_julia(graph::Graph, p0::Int) = graph.data.pkgs[p0] == uuid_julia + +"Check for contradictions in the constraints." +function check_constraints(graph::Graph) + np = graph.np + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + rlog = graph.data.rlog + exact = graph.data.rlog.exact + + id(p0::Int) = pkgID(p0, graph) + + for p0 = 1:np + any(gconstr[p0]) && continue + if exact + err_msg = "Unsatisfiable requirements detected for package $(id(p0)):\n" + else + err_msg = "Resolve failed to satisfy requirements for package $(id(p0)):\n" + end + err_msg *= sprint(showlog, rlog, pkgs[p0]) + throw(ResolverError(err_msg)) + end + return true +end + +""" +Propagates current constraints, determining new implicit constraints. +Throws an error in case impossible requirements are detected, printing +a log trace. +""" +function propagate_constraints!(graph::Graph, sources::Set{Int} = Set{Int}(); log_events::Bool = true) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + ignored = graph.ignored + pkgs = graph.data.pkgs + pvers = graph.data.pvers + rlog = graph.data.rlog + exact = rlog.exact + + id(p0::Int) = pkgID(pkgs[p0], graph) + + log_events && log_event_global!(graph, "propagating constraints") + + # unless otherwise specified, start from packages which + # are not allowed to be uninstalled + staged = isempty(sources) ? + Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) : + sources + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + gconstr0 = gconstr[p0] + for (j1,p1) in enumerate(gadj[p0]) + # if p1 is ignored, the relation between it and all its neighbors + # has already been propagated + ignored[p1] && continue + + # we don't propagate to julia (purely to have better error messages) + pkgs[p1] == uuid_julia && continue + + msk = gmsk[p0][j1] + # consider the sub-mask with only allowed versions of p0 + sub_msk = msk[:,gconstr0] + # if an entire row of the sub-mask is false, that version of p1 + # is effectively forbidden + # (this is just like calling `any` row-wise) + added_constr1 = any!(BitVector(uninitialized, spp[p1]), sub_msk) + # apply the new constraints, checking for contradictions + # (keep the old ones for comparison) + gconstr1 = gconstr[p1] + old_gconstr1 = copy(gconstr1) + gconstr1 .&= added_constr1 + # if the new constraints are more restrictive than the + # previous ones, record it and propagate them next + if gconstr1 ≠ old_gconstr1 + push!(staged_next, p1) + log_events && log_event_implicit_req!(graph, p1, added_constr1, p0) + end + if !any(gconstr1) + if exact + err_msg = "Unsatisfiable requirements detected for package $(id(p1)):\n" + else + err_msg = "Resolve failed to satisfy requirements for package $(id(p1)):\n" + end + err_msg *= sprint(showlog, rlog, pkgs[p1]) + throw(ResolverError(err_msg)) + end + end + end + staged = staged_next + end + return graph +end + +""" +Enforce the uninstalled state on all packages that are not reachable from the required ones +or from the packages in the `sources` argument. +""" +function disable_unreachable!(graph::Graph, sources::Set{Int} = Set{Int}()) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + pkgs = graph.data.pkgs + + log_event_global!(graph, "disabling unreachable nodes") + + # 2nd argument are packages which are not allowed to be uninstalled + staged = union(sources, Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end])) + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + gconstr0idx = findall(gconstr[p0][1:(end-1)]) + for (j1,p1) in enumerate(gadj[p0]) + all(gmsk[p0][j1][end,gconstr0idx]) && continue # the package is not required by any of the allowed versions of p0 + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + # Force uninstalled state for all unseen packages + for p0 = 1:np + p0 ∈ seen && continue + gconstr0 = gconstr[p0] + @assert gconstr0[end] + fill!(gconstr0, false) + gconstr0[end] = true + end + + return graph +end + +function deep_clean!(graph::Graph) + np = graph.np + spp = graph.spp + + log_event_global!(graph, "cleaning graph") + + sumspp = sum(count(graph.gconstr[p0]) for p0 = 1:np) + + while true + gconstr_msk = [trues(spp[p0]) for p0 = 1:np] + + str_len = 0 + + for p0 = 1:np, v0 in findall(graph.gconstr[p0]) + print("\r" * " "^str_len * "\r") + msg = "> $p0 / $np" + print(msg) + str_len = length(msg) + push_snapshot!(graph) + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][v0] = true + try + propagate_constraints!(graph, Set{Int}([p0]), log_events = false) + catch err + err isa ResolverError || rethrow(err) + gconstr_msk[p0][v0] = false + end + pop_snapshot!(graph) + end + + println() + + affected = Int[] + for p0 = 1:np + gconstr0 = graph.gconstr[p0] + old_gconstr0 = copy(gconstr0) + gconstr0 .&= gconstr_msk[p0] + if old_gconstr0 ≠ gconstr0 + push!(affected, p0) + #TODO : log event + end + if !any(gconstr0) + # TODO : what should we do here?? + # throw(ResolverError("aaaaaaaaaaaaaahhhhhhhh")) # XXX + end + end + println("> affected = $(length(affected))") + isempty(affected) && break + end + + sumspp_new = sum(count(graph.gconstr[p0]) for p0 = 1:np) + + log_event_global!(graph, "cleaned graph, stats (total n. of states): before = $(sumspp) after = $(sumspp_new) diff = $(sumspp-sumspp_new)") + + return graph +end + +""" +Reduce the number of versions in the graph by putting all the versions of +a package that behave identically into equivalence classes, keeping only +the highest version of the class as representative. +""" +function compute_eq_classes!(graph::Graph) + log_event_global!(graph, "computing version equivalence classes") + + np = graph.np + sumspp = sum(graph.spp) + for p0 = 1:np + build_eq_classes1!(graph, p0) + end + + log_event_global!(graph, "computed version equivalence classes, stats (total n. of states): before = $(sumspp) after = $(sum(graph.spp))") + + @assert check_consistency(graph) + + return graph +end + +function build_eq_classes1!(graph::Graph, p0::Int) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + data = graph.data + pkgs = data.pkgs + pvers = data.pvers + vdict = data.vdict + eq_classes = data.eq_classes + rlog = data.rlog + + # concatenate all the constraints; the columns of the + # result encode the behavior of each version + cmat = vcat(BitMatrix(copy(transpose(gconstr[p0]))), gmsk[p0]...) + cvecs = [cmat[:,v0] for v0 = 1:spp[p0]] + + # find unique behaviors + repr_vecs = unique(cvecs) + + # number of equivaent classes + neq = length(repr_vecs) + + neq == spp[p0] && return # nothing to do here + + # group versions into sets that behave identically + eq_sets = [Set{Int}(v0 for v0 in 1:spp[p0] if cvecs[v0] == rvec) for rvec in repr_vecs] + sort!(eq_sets, by=maximum) + + # each set is represented by its highest-valued member + repr_vers = map(maximum, eq_sets) + # the last representative must always be the uninstalled state + @assert repr_vers[end] == spp[p0] + + # update equivalence classes + eq_vn(v0) = (v0 == spp[p0] ? nothing : pvers[p0][v0]) + eq_classes0 = eq_classes[pkgs[p0]] + for (v0,rvs) in zip(repr_vers, eq_sets) + @assert v0 ∈ rvs + vn0 = eq_vn(v0) + for v1 in rvs + v1 == v0 && continue + vn1 = eq_vn(v1) + @assert vn1 ≢ nothing + union!(eq_classes0[vn0], eq_classes0[vn1]) + delete!(eq_classes0, vn1) + end + end + + # reduce the constraints and the interaction matrices + spp[p0] = neq + gconstr[p0] = gconstr[p0][repr_vers] + for (j1,p1) in enumerate(gadj[p0]) + gmsk[p0][j1] = gmsk[p0][j1][:,repr_vers] + + j0 = adjdict[p0][p1] + gmsk[p1][j0] = gmsk[p1][j0][repr_vers,:] + end + + # reduce/rebuild version dictionaries + pvers[p0] = pvers[p0][repr_vers[1:(end-1)]] + vdict[p0] = Dict(vn => i for (i,vn) in enumerate(pvers[p0])) + + # put a record in the log + log_event_eq_classes!(graph, p0) + + return +end + +function compute_eq_classes_soft!(graph::Graph; log_events::Bool = true) + log_events && log_event_global!(graph, "computing version equivalence classes") + + np = graph.np + + np == 0 && return graph + + ignored = graph.ignored + gconstr = graph.gconstr + sumspp = sum(count(gconstr[p0]) for p0 = 1:np) + for p0 = 1:np + ignored[p0] && continue + build_eq_classes_soft1!(graph, p0) + end + sumspp_new = sum(count(gconstr[p0]) for p0 = 1:np) + + log_events && log_event_global!(graph, "computed version equivalence classes, stats (total n. of states): before = $(sumspp) after = $(sumspp_new) diff = $(sumspp_new-sumspp)") + + @assert check_consistency(graph) + + return graph +end + +function build_eq_classes_soft1!(graph::Graph, p0::Int) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + ignored = graph.ignored + + # concatenate all the constraints; the columns of the + # result encode the behavior of each version + gadj0 = gadj[p0] + gmsk0 = gmsk[p0] + gconstr0 = gconstr[p0] + eff_spp0 = count(gconstr0) + cvecs = BitVector[vcat(BitVector(), (gmsk0[j1][gconstr[gadj0[j1]],v0] for j1 = 1:length(gadj0) if !ignored[gadj0[j1]])...) for v0 in findall(gconstr0)] + + @assert length(cvecs) == eff_spp0 + + # find unique behaviors + repr_vecs = unique(cvecs) + + # number of equivaent classes + neq = length(repr_vecs) + + neq == eff_spp0 && return # nothing to do here + + # group versions into sets that behave identically + # each set is represented by its highest-valued member + repr_vers = sort!(Int[findlast(equalto(repr_vecs[w0]), cvecs) for w0 = 1:neq]) + @assert all(repr_vers .> 0) + @assert repr_vers[end] == eff_spp0 + + # convert the version numbers into the original numbering + repr_vers = findall(gconstr0)[repr_vers] + + @assert all(gconstr0[repr_vers]) + + # disable the other versions by introducing additional constraints + fill!(gconstr0, false) + gconstr0[repr_vers] = true + + return +end + +function update_ignored!(graph::Graph) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + + for p0 = 1:np + ignored[p0] = (count(gconstr[p0]) == 1) + end + + return graph +end + +""" +Prune away fixed and unnecessary packages, and the +disallowed versions for the remaining packages. +""" +function prune_graph!(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + req_inds = graph.req_inds + fix_inds = graph.fix_inds + ignored = graph.ignored + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + vdict = data.vdict + pruned = data.pruned + rlog = data.rlog + + # We will remove all packages that only have one allowed state + # (includes fixed packages and forbidden packages) + pkg_mask = BitArray(count(gconstr[p0]) ≠ 1 for p0 = 1:np) + new_np = count(pkg_mask) + + # a map that translates the new index ∈ 1:new_np into its + # corresponding old index ∈ 1:np + old_idx = findall(pkg_mask) + # the reverse of the above + new_idx = Dict{Int,Int}() + for new_p0 = 1:new_np + new_idx[old_idx[new_p0]] = new_p0 + end + + # Update requirement indices + new_req_inds = Set{Int}() + for p0 in req_inds + pkg_mask[p0] || continue + push!(new_req_inds, new_idx[p0]) + end + + # Fixed packages will all be pruned + new_fix_inds = Set{Int}() + for p0 in fix_inds + @assert !pkg_mask[p0] + end + + # Record which packages we are going to prune + for p0 in findall(.~(pkg_mask)) + # Find the version + s0 = findfirst(gconstr[p0]) + # We don't record fixed packages + p0 ∈ fix_inds && (@assert s0 ≠ spp[p0]; continue) + p0 ∈ req_inds && @assert s0 ≠ spp[p0] + log_event_pruned!(graph, p0, s0) + # We don't record as pruned packages that are not going to be installed + s0 == spp[p0] && continue + @assert !haskey(pruned, pkgs[p0]) + pruned[pkgs[p0]] = pvers[p0][s0] + end + + # Update packages records + new_pkgs = pkgs[pkg_mask] + new_pdict = Dict(new_pkgs[new_p0]=>new_p0 for new_p0 = 1:new_np) + new_ignored = ignored[pkg_mask] + empty!(graph.solve_stack) + + # For each package (unless it's going to be pruned) we will remove all + # versions that aren't allowed (but not the "uninstalled" state) + function keep_vers(new_p0) + p0 = old_idx[new_p0] + return BitArray((v0 == spp[p0]) | gconstr[p0][v0] for v0 = 1:spp[p0]) + end + vers_mask = [keep_vers(new_p0) for new_p0 = 1:new_np] + + # Update number of states per package + new_spp = Int[count(vers_mask[new_p0]) for new_p0 = 1:new_np] + + # Update versions maps + function compute_pvers(new_p0) + p0 = old_idx[new_p0] + pvers0 = pvers[p0] + vmsk0 = vers_mask[new_p0] + return pvers0[vmsk0[1:(end-1)]] + end + new_pvers = [compute_pvers(new_p0) for new_p0 = 1:new_np] + new_vdict = [Dict(vn => v0 for (v0,vn) in enumerate(new_pvers[new_p0])) for new_p0 = 1:new_np] + + # The new constraints are all going to be `true`, except possibly + # for the "uninstalled" state, which we copy over from the old + function compute_gconstr(new_p0) + p0 = old_idx[new_p0] + new_gconstr0 = trues(new_spp[new_p0]) + new_gconstr0[end] = gconstr[p0][end] + return new_gconstr0 + end + new_gconstr = [compute_gconstr(new_p0) for new_p0 = 1:new_np] + + # Recreate the graph adjacency list, skipping some packages + new_gadj = [Int[] for new_p0 = 1:new_np] + new_adjdict = [Dict{Int,Int}() for new_p0 = 1:new_np] + + for new_p0 = 1:new_np, (j1,p1) in enumerate(gadj[old_idx[new_p0]]) + pkg_mask[p1] || continue + new_p1 = new_idx[p1] + + new_j0 = get(new_adjdict[new_p1], new_p0, length(new_gadj[new_p0]) + 1) + new_j1 = get(new_adjdict[new_p0], new_p1, length(new_gadj[new_p1]) + 1) + + @assert (new_j0 > length(new_gadj[new_p0]) && new_j1 > length(new_gadj[new_p1])) || + (new_j0 ≤ length(new_gadj[new_p0]) && new_j1 ≤ length(new_gadj[new_p1])) + + new_j0 > length(new_gadj[new_p0]) || continue + push!(new_gadj[new_p0], new_p1) + push!(new_gadj[new_p1], new_p0) + new_j0 = length(new_gadj[new_p0]) + new_j1 = length(new_gadj[new_p1]) + + new_adjdict[new_p1][new_p0] = new_j0 + new_adjdict[new_p0][new_p1] = new_j1 + end + + # Recompute compatibility masks on the new adjacency list, and filtering out some versions + function compute_gmsk(new_p0, new_j0) + p0 = old_idx[new_p0] + new_p1 = new_gadj[new_p0][new_j0] + p1 = old_idx[new_p1] + j0 = adjdict[p1][p0] + return gmsk[p0][j0][vers_mask[new_p1],vers_mask[new_p0]] + end + new_gmsk = [[compute_gmsk(new_p0, new_j0) for new_j0 = 1:length(new_gadj[new_p0])] for new_p0 = 1:new_np] + + # Reduce log pool (the other items are still reachable through rlog.init) + rlog.pool = Dict(p=>rlog.pool[p] for p in new_pkgs) + + # Done + + log_event_global!(graph, "pruned graph — stats (n. of packages, mean connectivity): before = ($np,$(mean(spp))) after = ($new_np,$(mean(new_spp)))") + + # Replace old data with new + data.pkgs = new_pkgs + data.np = new_np + data.spp = new_spp + data.pdict = new_pdict + data.pvers = new_pvers + data.vdict = new_vdict + # Notes: + # * uuid_to_name, eq_classes are unchanged + # * pruned and rlog were updated in-place + + # Replace old structures with new ones + graph.gadj = new_gadj + graph.gmsk = new_gmsk + graph.gconstr = new_gconstr + graph.adjdict = new_adjdict + graph.req_inds = new_req_inds + graph.fix_inds = new_fix_inds + graph.ignored = new_ignored + graph.spp = new_spp + graph.np = new_np + # Note: solve_stack was emptied in-place + + @assert check_consistency(graph) + + return graph +end + +""" +Simplifies the graph by propagating constraints, disabling unreachable versions, pruning +and grouping versions into equivalence classes. +""" +function simplify_graph!(graph::Graph, sources::Set{Int} = Set{Int}(); clean_graph::Bool = false) + propagate_constraints!(graph) + disable_unreachable!(graph, sources) + clean_graph && deep_clean!(graph) + prune_graph!(graph) + compute_eq_classes!(graph) + return graph +end + +function simplify_graph_soft!(graph::Graph, sources::Set{Int} = Set{Int}(); log_events = true) + propagate_constraints!(graph, sources, log_events = log_events) + update_ignored!(graph) + compute_eq_classes_soft!(graph, log_events = log_events) + update_ignored!(graph) + return graph +end + +end # module diff --git a/stdlib/Pkg3/src/Operations.jl b/stdlib/Pkg3/src/Operations.jl new file mode 100644 index 00000000000000..c1e71492ecb15d --- /dev/null +++ b/stdlib/Pkg3/src/Operations.jl @@ -0,0 +1,978 @@ +module Operations + +using UUIDs +using Random: randstring +import LibGit2 + +import REPL +using REPL.TerminalMenus +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Resolve +import Pkg3.Pkg2 +import Pkg3.BinaryProvider + +import Pkg3: depots, devdir +import Pkg3.Types: uuid_julia + +function find_installed(name::String, uuid::UUID, sha1::SHA1) + slug = Base.version_slug(uuid, sha1) + for depot in depots() + path = abspath(depot, "packages", name, slug) + ispath(path) && return path + end + return abspath(depots()[1], "packages", name, slug) +end + +function load_versions(path::String) + toml = parse_toml(path, "Versions.toml") + return Dict{VersionNumber, SHA1}(VersionNumber(ver) => SHA1(info["git-tree-sha1"]) for (ver, info) in toml) +end + +function load_package_data(f::Base.Callable, path::String, versions) + toml = parse_toml(path, fakeit=true) + data = Dict{VersionNumber,Dict{String,Any}}() + for ver in versions + ver::VersionNumber + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + ver in vr || continue + dict = get!(data, ver, Dict{String,Any}()) + haskey(dict, key) && cmderror("$ver/$key is duplicated in $path") + dict[key] = f(value) + end + end + return data +end + +load_package_data(f::Base.Callable, path::String, version::VersionNumber) = + get(load_package_data(f, path, [version]), version, nothing) + +function load_package_data_raw(T::Type, path::String) + toml = parse_toml(path, fakeit=true) + data = Dict{VersionRange,Dict{String,T}}() + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + dict = get!(data, vr, Dict{String,T}()) + haskey(dict, key) && cmderror("$vr/$key is duplicated in $path") + dict[key] = T(value) + end + return data +end + +####################################### +# Dependency gathering and resolution # +####################################### + +# This also sets the .path field for fixed packages in `pkgs` +function collect_fixed!(ctx::Context, pkgs::Vector{PackageSpec}, uuid_to_name::Dict{UUID, String}) + fix_deps = PackageSpec[] + fixed_pkgs = PackageSpec[] + fix_deps_map = Dict{UUID,Vector{PackageSpec}}() + uuid_to_pkg = Dict{UUID,PackageSpec}() + for pkg in pkgs + info = manifest_info(ctx.env, pkg.uuid) + if pkg.special_action == PKGSPEC_FREED + continue + elseif pkg.special_action == PKGSPEC_CHECKED_OUT + @assert pkg.path != nothing + elseif info !== nothing && get(info, "path", false) != false + pkg.path = info["path"] + else + continue + end + + # Checked out package has by definition a version higher than all registered. + pkgversions = Set{VersionNumber}() + for path in registered_paths(ctx.env, pkg.uuid) + pathvers = keys(load_versions(path)) + union!(pkgversions, pathvers) + end + max_version = maximum(pkgversions) + pkg.version = VersionNumber(max_version.major, max_version.minor, max_version.patch, max_version.prerelease, ("",)) + + uuid_to_pkg[pkg.uuid] = pkg + uuid_to_name[pkg.uuid] = pkg.name + + # Backwards compatability with Pkg2 REQUIRE format + reqfile = joinpath(pkg.path, "REQUIRE") + fix_deps_map[pkg.uuid] = valtype(fix_deps_map)() + !isfile(reqfile) && continue + for r in filter!(r->r isa Pkg2.Reqs.Requirement, Pkg2.Reqs.read(reqfile)) + pkg_name, vspec = r.package, VersionSpec(VersionRange[r.versions.intervals...]) + if pkg_name == "julia" + if !(VERSION in vspec) + error("julia version requirement for package $pkg not satisfied") + end + else + deppkg = PackageSpec(pkg_name, vspec) + push!(fix_deps_map[pkg.uuid], deppkg) + push!(fix_deps, deppkg) + end + end + end + + # Look up the UUIDS for all the fixed dependencies in the registry in one shot + registry_resolve!(ctx.env, fix_deps) + ensure_resolved(ctx.env, fix_deps) + fixed = Dict{UUID,Fixed}() + # Collect the dependencies for the fixed packages + for (uuid, fixed_pkgs) in fix_deps_map + fix_pkg = uuid_to_pkg[uuid] + v = Dict{VersionNumber,Dict{UUID,VersionSpec}}() + q = Dict{UUID, VersionSpec}() + for deppkg in fixed_pkgs + uuid_to_name[deppkg.uuid] = deppkg.name + q[deppkg.uuid] = deppkg.version + end + fixed[uuid] = Fixed(fix_pkg.version, q) + end + return fixed +end + + +get_or_make(::Type{T}, d::Dict{K}, k::K) where {T,K} = + haskey(d, k) ? convert(T, d[k]) : T() + +get_or_make!(d::Dict{K,V}, k::K) where {K,V} = get!(d, k) do; V() end + +function deps_graph(ctx::Context, uuid_to_name::Dict{UUID,String}, reqs::Requires, fixed::Dict{UUID,Fixed}) + uuids = collect(union(keys(reqs), keys(fixed), map(fx->keys(fx.requires), values(fixed))...)) + seen = UUID[] + + all_versions = Dict{UUID,Set{VersionNumber}}() + all_deps = Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}() + all_compat = Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}() + + for (fp, fx) in fixed + all_versions[fp] = Set([fx.version]) + all_deps[fp] = Dict(VersionRange(fx.version) => Dict()) + all_compat[fp] = Dict(VersionRange(fx.version) => Dict()) + end + + while true + unseen = setdiff(uuids, seen) + isempty(unseen) && break + for uuid in unseen + push!(seen, uuid) + all_versions_u = get_or_make!(all_versions, uuid) + all_deps_u = get_or_make!(all_deps, uuid) + all_compat_u = get_or_make!(all_compat, uuid) + # make sure all versions of all packages know about julia uuid + if uuid ≠ uuid_julia + deps_u_allvers = get_or_make!(all_deps_u, VersionRange()) + deps_u_allvers["julia"] = uuid_julia + end + + if uuid in keys(ctx.stdlibs) + push!(all_versions_u, VERSION) + continue + end + + for path in registered_paths(ctx.env, uuid) + version_info = load_versions(path) + versions = sort!(collect(keys(version_info))) + deps_data = load_package_data_raw(UUID, joinpath(path, "Deps.toml")) + compat_data = load_package_data_raw(VersionSpec, joinpath(path, "Compat.toml")) + + union!(all_versions_u, versions) + + for (vr, dd) in deps_data + all_deps_u_vr = get_or_make!(all_deps_u, vr) + for (name,other_uuid) in dd + # check conflicts?? + all_deps_u_vr[name] = other_uuid + other_uuid in uuids || push!(uuids, other_uuid) + end + end + for (vr, cd) in compat_data + all_compat_u_vr = get_or_make!(all_compat_u, vr) + for (name,vs) in cd + # check conflicts?? + all_compat_u_vr[name] = vs + end + end + end + end + find_registered!(ctx.env, uuids) + end + + for uuid in uuids + uuid == uuid_julia && continue + uuid_to_name[uuid] = registered_name(ctx.env, uuid) + info = manifest_info(ctx.env, uuid) + info ≡ nothing && continue + uuid_to_name[UUID(info["uuid"])] = info["name"] + end + + return Graph(all_versions, all_deps, all_compat, uuid_to_name, reqs, fixed, #=verbose=# ctx.graph_verbose) +end + +# Resolve a set of versions given package version specs +function resolve_versions!(ctx::Context, pkgs::Vector{PackageSpec})::Dict{UUID,VersionNumber} + @info("Resolving package versions") + # anything not mentioned is fixed + uuids = UUID[pkg.uuid for pkg in pkgs] + uuid_to_name = Dict{UUID, String}(uuid => stdlib for (uuid, stdlib) in ctx.stdlibs) + uuid_to_name[uuid_julia] = "julia" + + for (name::String, uuidstr::String) in ctx.env.project["deps"] + uuid = UUID(uuidstr) + uuid_to_name[uuid] = name + info = manifest_info(ctx.env, uuid) + info == nothing && continue + haskey(info, "version") || continue + ver = VersionNumber(info["version"]) + uuid_idx = findfirst(equalto(uuid), uuids) + if uuid_idx != nothing + if get(info, "pinned", false) + # This is a pinned package, fix its version + pkg = pkgs[uuid_idx] + @info ("Package $name [$(string(uuid)[1:8])] is pinned, keeping it at current version: $ver") + pkg.version = ver + end + else + push!(pkgs, PackageSpec(name, uuid, ver)) + end + end + # construct data structures for resolver and call it + reqs = Requires(pkg.uuid => VersionSpec(pkg.version) for pkg in pkgs if pkg.uuid ≠ uuid_julia) + fixed = collect_fixed!(ctx, pkgs, uuid_to_name) + fixed[uuid_julia] = Fixed(VERSION) + graph = deps_graph(ctx, uuid_to_name, reqs, fixed) + + simplify_graph!(graph) + vers = resolve(graph) + find_registered!(ctx.env, collect(keys(vers))) + # update vector of package versions + for pkg in pkgs + # Fixed packages are not returned by resolve (they already have their version set) + haskey(vers, pkg.uuid) && (pkg.version = vers[pkg.uuid]) + end + uuids = UUID[pkg.uuid for pkg in pkgs] + for (uuid, ver) in vers + uuid in uuids && continue + name = registered_name(ctx.env, uuid) + push!(pkgs, PackageSpec(name, uuid, ver)) + end + return vers +end + +# Find names, repos and hashes for each package UUID & version +function version_data(ctx::Context, pkgs::Vector{PackageSpec}) + names = Dict{UUID,String}() + hashes = Dict{UUID,SHA1}() + clones = Dict{UUID,Vector{String}}() + for pkg in pkgs + pkg.uuid in keys(ctx.stdlibs) && continue + pkg.path == nothing || continue + uuid = pkg.uuid + ver = pkg.version::VersionNumber + clones[uuid] = String[] + for path in registered_paths(ctx.env, uuid) + info = parse_toml(path, "Package.toml") + if haskey(names, uuid) + names[uuid] == info["name"] || + cmderror("$uuid: name mismatch between registries: ", + "$(names[uuid]) vs. $(info["name"])") + else + names[uuid] = info["name"] + end + repo = info["repo"] + repo in clones[uuid] || push!(clones[uuid], repo) + vers = load_versions(path) + if haskey(vers, ver) + h = vers[ver] + if haskey(hashes, uuid) + h == hashes[uuid] || + @warn "$uuid: hash mismatch for version $ver!" + else + hashes[uuid] = h + end + end + end + @assert haskey(hashes, uuid) + end + foreach(sort!, values(clones)) + return names, hashes, clones +end + +######################## +# Package installation # +######################## +function get_archive_url_for_version(url::String, version) + if (m = match(r"https://github.com/(.*?)/(.*?).git", url)) != nothing + return "https://github.com/$(m.captures[1])/$(m.captures[2])/archive/v$(version).tar.gz" + end + return nothing +end + +# Returns if archive successfully installed +function install_archive( + urls::Vector{String}, + version::Union{VersionNumber,Nothing}, + version_path::String +)::Bool + for url in urls + archive_url = get_archive_url_for_version(url, version) + if archive_url != nothing + path = tempname() * randstring(6) * ".tar.gz" + url_success = true + try + cmd = BinaryProvider.gen_download_cmd(archive_url, path); + run(cmd, (devnull, devnull, devnull)) + catch e + e isa InterruptException && rethrow(e) + url_success = false + end + url_success || continue + dir = joinpath(tempdir(), randstring(12)) + mkpath(dir) + cmd = BinaryProvider.gen_unpack_cmd(path, dir); + run(cmd, (devnull, devnull, devnull)) + dirs = readdir(dir) + # 7z on Win might create this spurious file + filter!(x -> x != "pax_global_header", dirs) + @assert length(dirs) == 1 + !isdir(version_path) && mkpath(version_path) + mv(joinpath(dir, dirs[1]), version_path; force=true) + Base.rm(path; force = true) + return true + end + end + return false +end + +const refspecs = ["+refs/*:refs/remotes/cache/*"] +function install_git( + uuid::UUID, + name::String, + hash::SHA1, + urls::Vector{String}, + version::Union{VersionNumber,Nothing}, + version_path::String +)::Nothing + clones_dir = joinpath(depots()[1], "clones") + ispath(clones_dir) || mkpath(clones_dir) + repo_path = joinpath(clones_dir, string(uuid)) + repo = ispath(repo_path) ? LibGit2.GitRepo(repo_path) : begin + @info("Cloning [$uuid] $name from $(urls[1])") + LibGit2.clone(urls[1], repo_path, isbare=true) + end + git_hash = LibGit2.GitHash(hash.bytes) + for i = 2:length(urls) + try LibGit2.GitObject(repo, git_hash) + break # object was found, we can stop + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + end + url = urls[i] + LibGit2.fetch(repo, remoteurl=url, refspecs=refspecs) + end + tree = try + LibGit2.GitObject(repo, git_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + error("$name: git object $(string(hash)) could not be found") + end + tree isa LibGit2.GitTree || + error("$name: git object $(string(hash)) should be a tree, not $(typeof(tree))") + mkpath(version_path) + opts = LibGit2.CheckoutOptions( + checkout_strategy = LibGit2.Consts.CHECKOUT_FORCE, + target_directory = Base.unsafe_convert(Cstring, version_path) + ) + h = string(hash)[1:16] + LibGit2.checkout_tree(repo, tree, options=opts) + return +end + +# install & update manifest +function apply_versions(ctx::Context, pkgs::Vector{PackageSpec})::Vector{UUID} + BinaryProvider.probe_platform_engines!() + names, hashes, urls = version_data(ctx, pkgs) + new_versions = UUID[] + + pkgs_to_install = Tuple{PackageSpec, String}[] + for pkg in pkgs + pkg.uuid in keys(ctx.stdlibs) && continue + pkg.path == nothing || continue + path = find_installed(pkg.name, pkg.uuid, hashes[pkg.uuid]) + if !ispath(path) + push!(pkgs_to_install, (pkg, path)) + push!(new_versions, pkg.uuid) + end + end + + widths = [textwidth(names[pkg.uuid]) for (pkg, _) in pkgs_to_install if haskey(names, pkg.uuid)] + max_name = length(widths) == 0 ? 0 : maximum(widths) + + ######################################## + # Install from archives asynchronously # + ######################################## + jobs = Channel(ctx.num_concurrent_downloads); + results = Channel(ctx.num_concurrent_downloads); + @schedule begin + for pkg in pkgs_to_install + put!(jobs, pkg) + end + end + + for i in 1:ctx.num_concurrent_downloads + @schedule begin + for (pkg, path) in jobs + if ctx.preview + put!(results, (pkg, true, path)) + continue + end + if ctx.use_libgit2_for_all_downloads + put!(results, (pkg, false, path)) + continue + end + try + success = install_archive(urls[pkg.uuid], pkg.version::VersionNumber, path) + put!(results, (pkg, success, path)) + catch err + put!(results, (pkg, err, catch_backtrace())) + end + end + end + end + + missed_packages = Tuple{PackageSpec, String}[] + for i in 1:length(pkgs_to_install) + pkg, exc_or_success, bt_or_path = take!(results) + exc_or_success isa Exception && cmderror("Error when installing packages:\n", sprint(Base.showerror, exc_or_success, bt_or_path)) + success, path = exc_or_success, bt_or_path + if success + vstr = pkg.version != nothing ? "v$(pkg.version)" : "[$h]" + @info "Installed $(rpad(names[pkg.uuid] * " ", max_name + 2, "─")) $vstr" + else + push!(missed_packages, (pkg, path)) + end + end + + ################################################## + # Use LibGit2 to download any remaining packages # + ################################################## + for (pkg, path) in missed_packages + uuid = pkg.uuid + if !ctx.preview + install_git(pkg.uuid, names[uuid], hashes[uuid], urls[uuid], pkg.version::VersionNumber, path) + end + vstr = pkg.version != nothing ? "v$(pkg.version)" : "[$h]" + @info "Installed $(rpad(names[pkg.uuid] * " ", max_name + 2, "─")) $vstr" + end + + ########################################## + # Installation done, update the manifest # + ########################################## + for pkg in pkgs + uuid = pkg.uuid + uuid in keys(ctx.stdlibs) && continue + if pkg.path == nothing + pkg.name = names[uuid] + hash = hashes[uuid] + else + hash = nothing + end + update_manifest(ctx, pkg, hash) + end + + prune_manifest(ctx.env) + return new_versions +end + +################################ +# Manifest update and pruning # +################################ +function find_stdlib_deps(ctx::Context, path::String) + stdlib_deps = Dict{UUID, String}() + regexps = [Regex("\\b(import|using)\\s+((\\w|\\.)+\\s*,\\s*)*$lib\\b") for lib in values(ctx.stdlibs)] + for (root, dirs, files) in walkdir(path) + for file in files + endswith(file, ".jl") || continue + filecontent = read(joinpath(root, file), String) + for ((uuid, stdlib), r) in zip(ctx.stdlibs, regexps) + if contains(filecontent, r) + stdlib_deps[uuid] = stdlib + end + end + end + end + return stdlib_deps +end + +function update_manifest(ctx::Context, pkg::PackageSpec, hash::Union{SHA1, Nothing}) + env = ctx.env + uuid, name, version, path, special_action = pkg.uuid, pkg.name, pkg.version, pkg.path, pkg.special_action + hash == nothing && @assert path != nothing + infos = get!(env.manifest, name, Dict{String,Any}[]) + info = nothing + for i in infos + UUID(i["uuid"]) == uuid || continue + info = i + break + end + if info == nothing + info = Dict{String,Any}("uuid" => string(uuid)) + push!(infos, info) + end + info["version"] = string(version) + hash == nothing ? delete!(info, "git-tree-sha1") : (info["git-tree-sha1"] = string(hash)) + path == nothing ? delete!(info, "path") : (info["path"] = path) + if special_action == PKGSPEC_FREED + delete!(info, "pinned") + elseif special_action == PKGSPEC_PINNED + info["pinned"] = true + end + + delete!(info, "deps") + if path != nothing + # Remove when packages uses Project files properly + dep_pkgs = PackageSpec[] + stdlib_deps = find_stdlib_deps(ctx, path) + for (stdlib_uuid, stdlib) in stdlib_deps + push!(dep_pkgs, PackageSpec(stdlib, stdlib_uuid)) + end + reqfile = joinpath(path, "REQUIRE") + if isfile(reqfile) + for r in filter!(r->r isa Pkg2.Reqs.Requirement, Pkg2.Reqs.read(reqfile)) + push!(dep_pkgs, PackageSpec(r.package)) + end + registry_resolve!(env, dep_pkgs) + end + ensure_resolved(env, dep_pkgs) + deps = Dict{String,String}() + for dep_pkg in dep_pkgs + dep_pkg.name == "julia" && continue + deps[dep_pkg.name] = string(dep_pkg.uuid) + end + if !isempty(deps) + info["deps"] = deps + end + else + for path in registered_paths(env, uuid) + data = load_package_data(UUID, joinpath(path, "Deps.toml"), version) + data == nothing && continue + info["deps"] = Dict(string(k) => string(v) for (k,v) in data) + break + end + end + return info +end + +function prune_manifest(env::EnvCache) + keep = map(UUID, values(env.project["deps"])) + while !isempty(keep) + clean = true + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") && haskey(info, "deps") || continue + UUID(info["uuid"]) ∈ keep || continue + for dep in map(UUID, values(info["deps"])) + dep ∈ keep && continue + push!(keep, dep) + clean = false + end + end + clean && break + end + filter!(env.manifest) do (_, infos) + filter!(infos) do info + haskey(info, "uuid") && UUID(info["uuid"]) ∈ keep + end + !isempty(infos) + end +end + +function with_local_project(f, ctx::Context, pkg::PackageSpec; allow_self_load=true, do_resolve=false) + localctx = deepcopy(ctx) + empty!(localctx.env.project["deps"]) + info = manifest_info(localctx.env, pkg.uuid) + # If package or its dependencies are checked out, will need to resolve + # unless we already have resolved for the current environment + if allow_self_load + localctx.env.project["deps"][pkg.name] = string(pkg.uuid) + end + need_to_resolve = haskey(info, "path") + # Allow to load dependent packages at top level by putting them in the project + deps = PackageSpec[] + for (dpkg, duuid) in get(info, "deps", []) + dinfo = manifest_info(localctx.env, UUID(duuid)) + dinfo === nothing || (need_to_resolve |= haskey(info, "path")) + localctx.env.project["deps"][dpkg] = string(duuid) + end + local new + will_resolve = do_resolve && need_to_resolve + if will_resolve + pkgs = PackageSpec[] + resolve_versions!(localctx, pkgs) + new = apply_versions(localctx, pkgs) + else + prune_manifest(localctx.env) + end + mktempdir() do tmpdir + localctx.env.project_file = joinpath(tmpdir, "Project.toml") + localctx.env.manifest_file = joinpath(tmpdir, "Manifest.toml") + write_env(localctx, no_output = true) + will_resolve && build_versions(localctx, new) + withenv("JULIA_LOAD_PATH" => joinpath(tmpdir)) do + f() + end + end +end + +######### +# Build # +######### +function dependency_order_uuids(ctx::Context, uuids::Vector{UUID})::Dict{UUID,Int} + order = Dict{UUID,Int}() + seen = UUID[] + k = 0 + function visit(uuid::UUID) + uuid in keys(ctx.stdlibs) && return + uuid in seen && + return @warn("Dependency graph not a DAG, linearizing anyway") + haskey(order, uuid) && return + push!(seen, uuid) + info = manifest_info(ctx.env, uuid) + haskey(info, "deps") && + foreach(visit, values(info["deps"])) + pop!(seen) + order[uuid] = k += 1 + end + visit(uuid::String) = visit(UUID(uuid)) + foreach(visit, uuids) + return order +end + +function build_versions(ctx::Context, uuids::Vector{UUID}; do_resolve=false) + # collect builds for UUIDs with `deps/build.jl` files + ctx.preview && (@info "Skipping building in preview mode"; return) + builds = Tuple{UUID,String,Union{String,SHA1},String}[] + for uuid in uuids + uuid in keys(ctx.stdlibs) && continue + info = manifest_info(ctx.env, uuid) + name = info["name"] + if haskey(info, "git-tree-sha1") + hash_or_path = SHA1(info["git-tree-sha1"]) + path = find_installed(name, uuid, hash_or_path) + elseif haskey(info, "path") + path = info["path"] + hash_or_path = path + else + cmderror("Could not find either `git-tree-sha1` or `path` for package $(pkg.name)") + end + ispath(path) || error("Build path for $name does not exist: $path") + build_file = joinpath(path, "deps", "build.jl") + ispath(build_file) && push!(builds, (uuid, name, hash_or_path, build_file)) + end + # toposort builds by dependencies + order = dependency_order_uuids(ctx, map(first, builds)) + sort!(builds, by = build -> order[first(build)]) + # build each package verions in a child process + for (uuid, name, hash_or_path, build_file) in builds + log_file = splitext(build_file)[1] * ".log" + if hash_or_path isa SHA1 + @info "Building $name [$(string(hash_or_path)[1:8])]..." + else + @info "Building $name [$(string(hash_or_path))]..." + end + @info " → $log_file" + code = """ + empty!(Base.DEPOT_PATH) + append!(Base.DEPOT_PATH, $(repr(map(abspath, DEPOT_PATH)))) + empty!(Base.DL_LOAD_PATH) + append!(Base.DL_LOAD_PATH, $(repr(map(abspath, Base.DL_LOAD_PATH)))) + cd($(repr(dirname(build_file)))) + include($(repr(build_file))) + """ + cmd = ``` + $(Base.julia_cmd()) -O0 --color=no --history-file=no + --startup-file=$(Base.JLOptions().startupfile != 2 ? "yes" : "no") + --compiled-modules=$(Bool(Base.JLOptions().use_compiled_modules) ? "yes" : "no") + --eval $code + ``` + with_local_project(ctx, PackageSpec(name, uuid); allow_self_load=false, do_resolve=do_resolve) do + open(log_file, "w") do log + success(pipeline(cmd, stdout=log, stderr=log)) + end ? Base.rm(log_file, force=true) : + @error("Error building `$name`; see log file for further info") + end + end + return +end + +############## +# Operations # +############## +function rm(ctx::Context, pkgs::Vector{PackageSpec}) + drop = UUID[] + # find manifest-mode drops + for pkg in pkgs + pkg.mode == PKGMODE_MANIFEST || continue + info = manifest_info(ctx.env, pkg.uuid) + if info != nothing + pkg.uuid in drop || push!(drop, pkg.uuid) + else + str = has_name(pkg) ? pkg.name : string(pkg.uuid) + @warn("`$str` not in manifest, ignoring") + end + end + # drop reverse dependencies + while !isempty(drop) + clean = true + for (name, infos) in ctx.env.manifest, info in infos + haskey(info, "uuid") && haskey(info, "deps") || continue + deps = map(UUID, values(info["deps"])) + isempty(drop ∩ deps) && continue + uuid = UUID(info["uuid"]) + uuid ∉ drop || continue + push!(drop, uuid) + clean = false + end + clean && break + end + # find project-mode drops + for pkg in pkgs + pkg.mode == PKGMODE_PROJECT || continue + found = false + for (name::String, uuidstr::String) in ctx.env.project["deps"] + uuid = UUID(uuidstr) + has_name(pkg) && pkg.name == name || + has_uuid(pkg) && pkg.uuid == uuid || continue + !has_name(pkg) || pkg.name == name || + error("project file name mismatch for `$uuid`: $(pkg.name) ≠ $name") + !has_uuid(pkg) || pkg.uuid == uuid || + error("project file UUID mismatch for `$name`: $(pkg.uuid) ≠ $uuid") + uuid in drop || push!(drop, uuid) + found = true + break + end + found && continue + str = has_name(pkg) ? pkg.name : string(pkg.uuid) + @warn("`$str` not in project, ignoring") + end + # delete drops from project + n = length(ctx.env.project["deps"]) + filter!(ctx.env.project["deps"]) do (_, uuid) + UUID(uuid) ∉ drop + end + if length(ctx.env.project["deps"]) == n + @info "No changes" + return + end + # only keep reachable manifest entires + prune_manifest(ctx.env) + # update project & manifest + write_env(ctx) +end + +function add(ctx::Context, pkgs::Vector{PackageSpec}) + # if julia is passed as a package the solver gets tricked; + # this catches the error early on + any(pkg->(pkg.uuid == uuid_julia), pkgs) && + cmderror("Trying to add julia as a package") + # copy added name/UUIDs into project + for pkg in pkgs + ctx.env.project["deps"][pkg.name] = string(pkg.uuid) + end + # if a package is in the project file and + # the manifest version in the specified version set + # then leave the package as is at the installed version + for (name::String, uuidstr::String) in ctx.env.project["deps"] + uuid = UUID(uuidstr) + info = manifest_info(ctx.env, uuid) + info != nothing && haskey(info, "version") || continue + version = VersionNumber(info["version"]) + for pkg in pkgs + pkg.uuid == uuid && version ∈ pkg.version || continue + pkg.version = version + end + end + # resolve & apply package versions + resolve_versions!(ctx, pkgs) + new = apply_versions(ctx, pkgs) + write_env(ctx) # write env before building + build_versions(ctx, new) +end + +function up(ctx::Context, pkgs::Vector{PackageSpec}) + # resolve upgrade levels to version specs + for pkg in pkgs + pkg.version isa UpgradeLevel || continue + level = pkg.version + info = manifest_info(ctx.env, pkg.uuid) + ver = VersionNumber(info["version"]) + if level == UPLEVEL_FIXED + pkg.version = VersionNumber(info["version"]) + else + r = level == UPLEVEL_PATCH ? VersionRange(ver.major, ver.minor) : + level == UPLEVEL_MINOR ? VersionRange(ver.major) : + level == UPLEVEL_MAJOR ? VersionRange() : + error("unexpected upgrade level: $level") + pkg.version = VersionSpec(r) + end + end + # resolve & apply package versions + resolve_versions!(ctx, pkgs) + new = apply_versions(ctx, pkgs) + write_env(ctx) # write env before building + build_versions(ctx, new) +end + +function pin(ctx::Context, pkgs::Vector{PackageSpec}) + for pkg in pkgs + info = manifest_info(ctx.env, pkg.uuid) + if pkg.version == VersionSpec() + pkg.version = VersionNumber(info["version"]) + end + pkg.special_action = PKGSPEC_PINNED + end + # resolve & apply package versions + resolve_versions!(ctx, pkgs) + new = apply_versions(ctx, pkgs) + write_env(ctx) # write env before building + build_versions(ctx, new) +end + +function free(ctx::Context, pkgs::Vector{PackageSpec}) + need_to_resolve = false + for pkg in pkgs + pkg.special_action = PKGSPEC_FREED + info = manifest_info(ctx.env, pkg.uuid) + if haskey(info, "path") + need_to_resolve = true + else + pkg.version = VersionNumber(info["version"]) + end + end + need_to_resolve && resolve_versions!(ctx, pkgs) + new = apply_versions(ctx, pkgs) + write_env(ctx) # write env before building + need_to_resolve && build_versions(ctx, new) +end + +function checkout(ctx::Context, pkgs_branches::Vector; path = devdir()) + pkgs = PackageSpec[] + for (pkg, branch) in pkgs_branches + push!(pkgs, pkg) + ctx.env.project["deps"][pkg.name] = string(pkg.uuid) + pkg.special_action = PKGSPEC_CHECKED_OUT + @info "Checking out $(pkg.name) [$(string(pkg.uuid)[1:8])]" + + pkgpath = joinpath(path, pkg.name) + pkg.path = pkgpath + if ispath(pkgpath) + if !isfile(joinpath(pkgpath, "src", pkg.name * ".jl")) + cmderror("Path `$(pkgpath)` exists but it does not contain `src/$(pkg.name).jl") + else + @info "Path `$(pkgpath)` exists and looks like the correct package, using existing path instead of cloning" + end + else + successfully_cloned = false + for regpath in Types.registered_paths(ctx.env, pkg.uuid) + repos = Types.registered_info(ctx.env, pkg.uuid, "repo") + for (_, repo) in repos + @info "Cloning $(pkg.name) from $(repo) to $path" + try + LibGit2.clone(repo, pkgpath; branch = branch == nothing ? "" : branch) + successfully_cloned = true + break + catch err + err isa LibGit2.GitError || rethrow(err) + @error "Failed clone from $repo" exception = err + end + end + end + if !successfully_cloned + cmderror("Failed to checkout $(pkg.name) [$(string(pkg.uuid)[1:8])] to $(pkgpath)") + end + end + end + resolve_versions!(ctx, pkgs) + new = apply_versions(ctx, pkgs) + write_env(ctx) # write env before building + build_versions(ctx, new) +end + +function test(ctx::Context, pkgs::Vector{PackageSpec}; coverage=false) + # See if we can find the test files for all packages + missing_runtests = String[] + testfiles = String[] + version_paths = String[] + for pkg in pkgs + info = manifest_info(ctx.env, pkg.uuid) + if haskey(info, "git-tree-sha1") + version_path = find_installed(pkg.name, pkg.uuid, SHA1(info["git-tree-sha1"])) + elseif haskey(info, "path") + version_path = info["path"] + else + cmderror("Could not find either `git-tree-sha1` or `path` for package $(pkg.name)") + end + testfile = joinpath(version_path, "test", "runtests.jl") + if !isfile(testfile) + push!(missing_runtests, pkg.name) + end + push!(version_paths, version_path) + push!(testfiles, testfile) + end + if !isempty(missing_runtests) + cmderror(length(missing_runtests) == 1 ? "Package " : "Packages ", + join(missing_runtests, ", "), + " did not provide a `test/runtests.jl` file") + end + + pkgs_errored = [] + for (pkg, testfile, version_path) in zip(pkgs, testfiles, version_paths) + @info("Testing $(pkg.name) located at $version_path") + if ctx.preview + @info("In preview mode, skipping tests for $(pkg.name)") + continue + end + code = """ + empty!(Base.DEPOT_PATH) + append!(Base.DEPOT_PATH, $(repr(map(abspath, DEPOT_PATH)))) + empty!(Base.DL_LOAD_PATH) + append!(Base.DL_LOAD_PATH, $(repr(map(abspath, Base.DL_LOAD_PATH)))) + cd($(repr(dirname(testfile)))) + include($(repr(testfile))) + """ + cmd = ``` + $(Base.julia_cmd()) + --code-coverage=$(coverage ? "user" : "none") + --color=$(Base.have_color ? "yes" : "no") + --compiled-modules=$(Bool(Base.JLOptions().use_compiled_modules) ? "yes" : "no") + --check-bounds=yes + --startup-file=$(Base.JLOptions().startupfile != 2 ? "yes" : "no") + --eval $code + ``` + try + with_local_project(ctx, pkg; do_resolve=true) do + run(cmd) + @info("$(pkg.name) tests passed") + end + catch err + push!(pkgs_errored, pkg.name) + end + + end + + if !isempty(pkgs_errored) + cmderror(length(pkgs_errored) == 1 ? "Package " : "Packages ", + join(pkgs_errored, ", "), + " errored during testing") + end +end + +function init(ctx::Context) + project_file = ctx.env.project_file + isfile(project_file) && + cmderror("Environment already initialized at $project_file") + mkpath(dirname(project_file)) + touch(project_file) + @info "Initialized environment by creating $project_file" +end + +end # module + diff --git a/stdlib/Pkg3/src/Pkg2/Pkg2.jl b/stdlib/Pkg3/src/Pkg2/Pkg2.jl new file mode 100644 index 00000000000000..96b4f989fe1eb7 --- /dev/null +++ b/stdlib/Pkg3/src/Pkg2/Pkg2.jl @@ -0,0 +1,24 @@ +# Trimmed-down code from Pkg2 with only the essential parts needed by loadmeta.jl + +module Pkg2 + +# DIR +const DIR_NAME = ".julia" +_pkgroot() = abspath(get(ENV,"JULIA_PKGDIR",joinpath(homedir(),DIR_NAME))) +isversioned(p::AbstractString) = ((x,y) = (VERSION.major, VERSION.minor); basename(p) == "v$x.$y") + +function dir() + b = _pkgroot() + x, y = VERSION.major, VERSION.minor + d = joinpath(b,"v$x.$y") + if isdir(d) || !isdir(b) || !isdir(joinpath(b, "METADATA")) + return d + end + return b +end +dir(pkg::AbstractString...) = normpath(dir(),pkg...) + +include("types.jl") +include("reqs.jl") + +end diff --git a/stdlib/Pkg3/src/Pkg2/reqs.jl b/stdlib/Pkg3/src/Pkg2/reqs.jl new file mode 100644 index 00000000000000..2af7083a8c84b1 --- /dev/null +++ b/stdlib/Pkg3/src/Pkg2/reqs.jl @@ -0,0 +1,46 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Reqs + +import Base: == +using ..Pkg2Types + +# representing lines of REQUIRE files + +abstract type Line end +struct Comment <: Line + content::AbstractString +end +struct Requirement <: Line + content::AbstractString + package::AbstractString + versions::VersionSet + system::Vector{AbstractString} + + function Requirement(content::AbstractString) + fields = split(replace(content, r"#.*$" => "")) + system = AbstractString[] + while !isempty(fields) && fields[1][1] == '@' + push!(system, popfirst!(fields)[2:end]) + end + isempty(fields) && throw(PkgError("invalid requires entry: $content")) + package = popfirst!(fields) + all(field->contains(field, Base.VERSION_REGEX), fields) || + throw(PkgError("invalid requires entry for $package: $content")) + versions = VersionNumber.(fields) + issorted(versions) || throw(PkgError("invalid requires entry for $package: $content")) + new(content, package, VersionSet(versions), system) + end +end + +function read(readable::Union{IO,Base.AbstractCmd}) + lines = Line[] + for line in eachline(readable) + push!(lines, contains(line, r"^\s*(?:#|$)") ? Comment(line) : Requirement(line)) + end + return lines +end +read(file::AbstractString) = isfile(file) ? open(read,file) : Line[] + + +end # module \ No newline at end of file diff --git a/stdlib/Pkg3/src/Pkg2/types.jl b/stdlib/Pkg3/src/Pkg2/types.jl new file mode 100644 index 00000000000000..387bf82f7e5e66 --- /dev/null +++ b/stdlib/Pkg3/src/Pkg2/types.jl @@ -0,0 +1,151 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Pkg2Types + +export VersionInterval, VersionSet +import Base: show, isempty, in, intersect, union!, union, ==, hash, copy, deepcopy_internal + +import Pkg3.Types: VersionBound, VersionRange + +struct VersionInterval + lower::VersionNumber + upper::VersionNumber +end +VersionInterval(lower::VersionNumber) = VersionInterval(lower,typemax(VersionNumber)) +VersionInterval() = VersionInterval(typemin(VersionNumber)) + +show(io::IO, i::VersionInterval) = print(io, "[$(i.lower),$(i.upper))") +isempty(i::VersionInterval) = i.upper <= i.lower +in(v::VersionNumber, i::VersionInterval) = i.lower <= v < i.upper +intersect(a::VersionInterval, b::VersionInterval) = VersionInterval(max(a.lower,b.lower), min(a.upper,b.upper)) +==(a::VersionInterval, b::VersionInterval) = a.lower == b.lower && a.upper == b.upper +hash(i::VersionInterval, h::UInt) = hash((i.lower, i.upper), h + (0x0f870a92db508386 % UInt)) + +# Used to translate from Pkg2 intervals to Pkg3 ranges +function Base.convert(::Type{VersionRange}, a::VersionInterval) + lower, upper = a.lower, a.upper + + lb = VersionBound(lower.major, lower.minor, lower.patch) + + vb = UInt32[upper.major, upper.minor, upper.patch] + i = 3 + while i > 0 && vb[i] == 0 + pop!(vb) + i -= 1 + end + # NOTE: an upper bound of 0 could happen in principle, e.g. [v"0.0.0-", v"0.0.0") + # but we just ignore this here... + i > 0 || error("invalid interval upper bound v$upper") + vb[i] -= 1 + ub = VersionBound(vb...) + + return VersionRange(lb, ub) +end + +function normalize!(ivals::Vector{VersionInterval}) + # VersionSet internal normalization: + # removes empty intervals and fuses intervals without gaps + # e.g.: + # [0.0.0,1.0.0) ∪ [1.0.0,1.5.0) ∪ [1.6.0,1.6.0) ∪ [2.0.0,∞) + # becomes: + # [0.0.0,1.5.0) ∪ [2.0.0,∞) + # (still assumes that lower bounds are sorted, and intervals do + # not overlap) + l = length(ivals) + l == 0 && return ivals + + lo, up, k0 = ivals[1].lower, ivals[1].upper, 1 + fusing = false + for k = 2:l + lo1, up1 = ivals[k].lower, ivals[k].upper + if lo1 == up + up = up1 + fusing = true + continue + end + if lo < up + # The only purpose of the "fusing" check is to avoid + # extra allocations + ivals[k0] = fusing ? VersionInterval(lo, up) : ivals[k-1] + k0 += 1 + end + fusing = false + lo, up = lo1, up1 + end + if lo < up + ivals[k0] = fusing ? VersionInterval(lo, up) : ivals[l] + k0 += 1 + end + resize!(ivals, k0 - 1) + return ivals +end + +struct VersionSet + intervals::Vector{VersionInterval} + VersionSet(intervals::Vector{VersionInterval}) = new(normalize!(intervals)) + # copy is defined inside the struct block to call `new` directly + # without going through `normalize!` + Base.copy(vset::VersionSet) = new(copy(vset.intervals)) +end +function VersionSet(versions::Vector{VersionNumber}) + intervals = VersionInterval[] + if isempty(versions) + push!(intervals, VersionInterval()) + else + isodd(length(versions)) && push!(versions, typemax(VersionNumber)) + while !isempty(versions) + push!(intervals, VersionInterval(popfirst!(versions), popfirst!(versions))) + end + end + VersionSet(intervals) +end +VersionSet(versions::VersionNumber...) = VersionSet(VersionNumber[versions...]) + +const empty_versionset = VersionSet(VersionInterval[]) + +# Windows console doesn't like Unicode +const _empty_symbol = @static Sys.iswindows() ? "empty" : "∅" +const _union_symbol = @static Sys.iswindows() ? " or " : " ∪ " +show(io::IO, s::VersionSet) = isempty(s) ? print(io, _empty_symbol) : + join(io, s.intervals, _union_symbol) +isempty(s::VersionSet) = all(isempty, s.intervals) +in(v::VersionNumber, s::VersionSet) = any(i->in(v,i), s.intervals) +function intersect(A::VersionSet, B::VersionSet) + (isempty(A) || isempty(B)) && return copy(empty_versionset) + ivals = [intersect(a,b) for a in A.intervals for b in B.intervals] + sort!(ivals, by=i->i.lower) + VersionSet(ivals) +end + +union(A::VersionSet, B::VersionSet) = union!(copy(A), B) +function union!(A::VersionSet, B::VersionSet) + A == B && return A + ivals = A.intervals + for intB in B.intervals + lB, uB = intB.lower, intB.upper + k0 = findfirst(i->(i.upper > lB), ivals) + if k0 == 0 + push!(ivals, intB) + continue + end + lB = min(lB, ivals[k0].lower) + for k1 = k0:length(ivals) + intA = ivals[k1] + if uB < intA.lower + splice!(ivals, k0:(k1-1), (VersionInterval(lB, uB),)) + break + elseif uB ∈ intA || k1 == length(ivals) + splice!(ivals, k0:k1, (VersionInterval(lB, max(uB, intA.upper)),)) + break + end + end + end + normalize!(ivals) + return A +end + +==(A::VersionSet, B::VersionSet) = A.intervals == B.intervals +hash(s::VersionSet, h::UInt) = hash(s.intervals, h + (0x2fd2ca6efa023f44 % UInt)) +deepcopy_internal(vs::VersionSet, ::IdDict) = copy(vs) + +end # module \ No newline at end of file diff --git a/stdlib/Pkg3/src/Pkg3.jl b/stdlib/Pkg3/src/Pkg3.jl new file mode 100644 index 00000000000000..0b44d2fabda5e2 --- /dev/null +++ b/stdlib/Pkg3/src/Pkg3.jl @@ -0,0 +1,71 @@ +__precompile__(true) +module Pkg3 + +import Random +import REPL +using REPL.TerminalMenus + +depots() = Base.DEPOT_PATH +logdir() = joinpath(depots()[1], "logs") +devdir() = get(ENV, "JULIA_PKG_DEVDIR", joinpath(homedir(), ".julia", "dev")) + +have_warned_session = false +function print_first_command_header() + global have_warned_session + have_warned_session && return + isinteractive() || return + @info """ + Pkg3 is still under development, please file issues at `https://github.com/JuliaLang/Pkg3.jl`. + """ + if !PKG3_IS_PRECOMPILED && !haskey(ENV, "JULIA_PKG3_DISABLE_PRECOMPILE_WARNING") + @info """ + Pkg3 is running without precompile statements, first action will be slow. + Rebuild julia with the environment variable `JULIA_PKG3_PRECOMPILE` set to enable precompilation of PKG3. + This message can be disabled by setting the env variable `JULIA_PKG3_DISABLE_PRECOMPILE_WARNING`. + """ + end + have_warned_session = true +end + +# load snapshotted dependencies +include("../ext/TOML/src/TOML.jl") + +include("PlatformEngines.jl") +include("Types.jl") +include("Pkg2/Pkg2.jl") +include("GraphType.jl") +include("Resolve.jl") +include("Display.jl") +include("Operations.jl") +include("REPLMode.jl") +include("API.jl") + +import .API: add, rm, up, test, gc, init, build, installed, pin, free, checkout +const update = up + +function __init__() + if isdefined(Base, :active_repl) + REPLMode.repl_init(Base.active_repl) + else + atreplinit() do repl + if isinteractive() && repl isa REPL.LineEditREPL + repl.interface = REPL.setup_interface(repl) + REPLMode.repl_init(repl) + end + end + end +end + +using Pkg3.Types +using UUIDs +import LibGit2 +# This crashes low memory systems and some of Julia's CI +# so keep it disabled by default for now. +if haskey(ENV, "JULIA_PKG3_PRECOMPILE") + const PKG3_IS_PRECOMPILED = true + include("precompile.jl") +else + const PKG3_IS_PRECOMPILED = false +end + +end # module diff --git a/stdlib/Pkg3/src/PlatformEngines.jl b/stdlib/Pkg3/src/PlatformEngines.jl new file mode 100644 index 00000000000000..5a936f86d090fb --- /dev/null +++ b/stdlib/Pkg3/src/PlatformEngines.jl @@ -0,0 +1,412 @@ +# Content in this file is extracted from BinaryProvider.jl, see LICENSE.method + +module BinaryProvider + +# In this file, we setup the `gen_download_cmd()`, `gen_unpack_cmd()` and +# `gen_package_cmd()` functions by providing methods to probe the environment +# and determine the most appropriate platform binaries to call. + +""" +`gen_download_cmd(url::AbstractString, out_path::AbstractString)` + +Return a `Cmd` that will download resource located at `url` and store it at +the location given by `out_path`. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_download_cmd = (url::AbstractString, out_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_download_cmd()`") + +""" +`gen_unpack_cmd(tarball_path::AbstractString, out_path::AbstractString)` + +Return a `Cmd` that will unpack the given `tarball_path` into the given +`out_path`. If `out_path` is not already a directory, it will be created. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_unpack_cmd = (tarball_path::AbstractString, out_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_unpack_cmd()`") + +""" +`gen_package_cmd(in_path::AbstractString, tarball_path::AbstractString)` + +Return a `Cmd` that will package up the given `in_path` directory into a +tarball located at `tarball_path`. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_package_cmd = (in_path::AbstractString, tarball_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_package_cmd()`") + +""" +`gen_list_tarball_cmd(tarball_path::AbstractString)` + +Return a `Cmd` that will list the files contained within the tarball located at +`tarball_path`. The list will not include directories contained within the +tarball. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_list_tarball_cmd = (tarball_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_list_tarball_cmd()`") + +""" +`parse_tarball_listing(output::AbstractString)` + +Parses the result of `gen_list_tarball_cmd()` into something useful. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +parse_tarball_listing = (output::AbstractString) -> + error("Call `probe_platform_engines()` before `parse_tarball_listing()`") + +""" +`gen_sh_cmd(cmd::Cmd)` + +Runs a command using `sh`. On Unices, this will default to the first `sh` +found on the `PATH`, however on Windows if that is not found it will fall back +to the `sh` provided by the `busybox.exe` shipped with Julia. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_sh_cmd = (cmd::Cmd) -> + error("Call `probe_platform_engines()` before `gen_sh_cmd()`") + + +""" +`probe_cmd(cmd::Cmd; verbose::Bool = false)` + +Returns `true` if the given command executes successfully, `false` otherwise. +""" +function probe_cmd(cmd::Cmd; verbose::Bool = false) + if verbose + @info("Probing $(cmd.exec[1]) as a possibility...") + end + try + success(cmd) + if verbose + @info(" Probe successful for $(cmd.exec[1])") + end + return true + catch + return false + end +end + +already_probed = false + +""" +`probe_platform_engines!(;verbose::Bool = false)` + +Searches the environment for various tools needed to download, unpack, and +package up binaries. Searches for a download engine to be used by +`gen_download_cmd()` and a compression engine to be used by `gen_unpack_cmd()`, +`gen_package_cmd()`, `gen_list_tarball_cmd()` and `parse_tarball_listing()`, as +well as a `sh` execution engine for `gen_sh_cmd()`. Running this function +will set the global functions to their appropriate implementations given the +environment this package is running on. + +This probing function will automatically search for download engines using a +particular ordering; if you wish to override this ordering and use one over all +others, set the `BINARYPROVIDER_DOWNLOAD_ENGINE` environment variable to its +name, and it will be the only engine searched for. For example, put: + + ENV["BINARYPROVIDER_DOWNLOAD_ENGINE"] = "fetch" + +within your `~/.juliarc.jl` file to force `fetch` to be used over `curl`. If +the given override does not match any of the download engines known to this +function, a warning will be printed and the typical ordering will be performed. + +Similarly, if you wish to override the compression engine used, set the +`BINARYPROVIDER_COMPRESSION_ENGINE` environment variable to its name (e.g. `7z` +or `tar`) and it will be the only engine searched for. If the given override +does not match any of the compression engines known to this function, a warning +will be printed and the typical searching will be performed. + +If `verbose` is `true`, print out the various engines as they are searched. +""" +function probe_platform_engines!(;verbose::Bool = false) + global already_probed + global gen_download_cmd, gen_list_tarball_cmd, gen_package_cmd + global gen_unpack_cmd, parse_tarball_listing, gen_sh_cmd + already_probed && return + # download_engines is a list of (test_cmd, download_opts_functor) + # The probulator will check each of them by attempting to run `$test_cmd`, + # and if that works, will set the global download functions appropriately. + download_engines = [ + (`curl --help`, (url, path) -> `curl -C - -\# -f -o $path -L $url`), + (`wget --help`, (url, path) -> `wget -c -O $path $url`), + (`fetch --help`, (url, path) -> `fetch -f $path $url`), + ] + + # 7z is rather intensely verbose. We also want to try running not only + # `7z` but also a direct path to the `7z.exe` bundled with Julia on + # windows, so we create generator functions to spit back functors to invoke + # the correct 7z given the path to the executable: + unpack_7z = (exe7z) -> begin + return (tarball_path, out_path) -> + pipeline(`$exe7z x $(tarball_path) -y -so`, + `$exe7z x -si -y -ttar -o$(out_path)`) + end + package_7z = (exe7z) -> begin + return (in_path, tarball_path) -> + pipeline(`$exe7z a -ttar -so a.tar "$(joinpath(".",in_path,"*"))"`, + `$exe7z a -si $(tarball_path)`) + end + list_7z = (exe7z) -> begin + return (path) -> + pipeline(`$exe7z x $path -so`, `$exe7z l -ttar -y -si`) + end + + # Tar is rather less verbose, and we don't need to search multiple places + # for it, so just rely on PATH to have `tar` available for us: + unpack_tar = (tarball_path, out_path) -> + `tar xzf $(tarball_path) --directory=$(out_path)` + package_tar = (in_path, tarball_path) -> + `tar -czvf $tarball_path -C $(in_path) .` + list_tar = (in_path) -> `tar tzf $in_path` + + # compression_engines is a list of (test_cmd, unpack_opts_functor, + # package_opts_functor, list_opts_functor, parse_functor). The probulator + # will check each of them by attempting to run `$test_cmd`, and if that + # works, will set the global compression functions appropriately. + gen_7z = (p) -> (unpack_7z(p), package_7z(p), list_7z(p), parse_7z_list) + compression_engines = Tuple[ + (`tar --help`, unpack_tar, package_tar, list_tar, parse_tar_list), + ] + + # sh_engines is just a list of Cmds-as-paths + sh_engines = [ + `sh` + ] + + # For windows, we need to tweak a few things, as the tools available differ + @static if Sys.iswindows() + # For download engines, we will most likely want to use powershell. + # Let's generate a functor to return the necessary powershell magics + # to download a file, given a path to the powershell executable + psh_download = (psh_path) -> begin + return (url, path) -> begin + webclient_code = """ + [System.Net.ServicePointManager]::SecurityProtocol = + [System.Net.SecurityProtocolType]::Tls12; + \$webclient = (New-Object System.Net.Webclient); + \$webclient.DownloadFile(\"$url\", \"$path\") + """ + replace(webclient_code, "\n" => " ") + return `$psh_path -NoProfile -Command "$webclient_code"` + end + end + + # We want to search both the `PATH`, and the direct path for powershell + psh_path = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell" + prepend!(download_engines, [ + (`$psh_path -Help`, psh_download(psh_path)) + ]) + prepend!(download_engines, [ + (`powershell -Help`, psh_download(`powershell`)) + ]) + + # We greatly prefer `7z` as a compression engine on Windows + prepend!(compression_engines, [(`7z --help`, gen_7z("7z")...)]) + + # On windows, we bundle 7z with Julia, so try invoking that directly + exe7z = joinpath(Sys.BINDIR, "7z.exe") + prepend!(compression_engines, [(`$exe7z --help`, gen_7z(exe7z)...)]) + + # And finally, we want to look for sh as busybox as well: + busybox = joinpath(Sys.BINDIR, "busybox.exe") + prepend!(sh_engines, [(`$busybox sh`)]) + end + + # Allow environment override + if haskey(ENV, "BINARYPROVIDER_DOWNLOAD_ENGINE") + engine = ENV["BINARYPROVIDER_DOWNLOAD_ENGINE"] + dl_ngs = filter(e -> e[1].exec[1] == engine, download_engines) + if isempty(dl_ngs) + all_ngs = join([d[1].exec[1] for d in download_engines], ", ") + warn_msg = "Ignoring BINARYPROVIDER_DOWNLOAD_ENGINE as its value " + warn_msg *= "of `$(engine)` doesn't match any known valid engines." + warn_msg *= " Try one of `$(all_ngs)`." + warn(warn_msg) + else + # If BINARYPROVIDER_DOWNLOAD_ENGINE matches one of our download engines, + # then restrict ourselves to looking only at that engine + download_engines = dl_ngs + end + end + + if haskey(ENV, "BINARYPROVIDER_COMPRESSION_ENGINE") + engine = ENV["BINARYPROVIDER_COMPRESSION_ENGINE"] + comp_ngs = filter(e -> e[1].exec[1] == engine, compression_engines) + if isempty(comp_ngs) + all_ngs = join([c[1].exec[1] for c in compression_engines], ", ") + warn_msg = "Ignoring BINARYPROVIDER_COMPRESSION_ENGINE as its " + warn_msg *= "value of `$(engine)` doesn't match any known valid " + warn_msg *= "engines. Try one of `$(all_ngs)`." + warn(warn_msg) + else + # If BINARYPROVIDER_COMPRESSION_ENGINE matches one of our download + # engines, then restrict ourselves to looking only at that engine + compression_engines = comp_ngs + end + end + + download_found = false + compression_found = false + sh_found = false + + if verbose + @info("Probing for download engine...") + end + + # Search for a download engine + for (test, dl_func) in download_engines + if probe_cmd(`$test`; verbose=verbose) + # Set our download command generator + gen_download_cmd = dl_func + download_found = true + + if verbose + @info("Found download engine $(test.exec[1])") + end + break + end + end + + if verbose + @info("Probing for compression engine...") + end + + # Search for a compression engine + for (test, unpack, package, list, parse) in compression_engines + if probe_cmd(`$test`; verbose=verbose) + # Set our compression command generators + gen_unpack_cmd = unpack + gen_package_cmd = package + gen_list_tarball_cmd = list + parse_tarball_listing = parse + + if verbose + @info("Found compression engine $(test.exec[1])") + end + + compression_found = true + break + end + end + + if verbose + @info("Probing for sh engine...") + end + + for path in sh_engines + if probe_cmd(`$path --help`; verbose=verbose) + gen_sh_cmd = (cmd) -> `$path -c $cmd` + if verbose + @info("Found sh engine $(path.exec[1])") + end + sh_found = true + break + end + end + + + # Build informative error messages in case things go sideways + errmsg = "" + if !download_found + errmsg *= "No download engines found. We looked for: " + errmsg *= join([d[1].exec[1] for d in download_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + if !compression_found + errmsg *= "No compression engines found. We looked for: " + errmsg *= join([c[1].exec[1] for c in compression_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + if !sh_found + errmsg *= "No sh engines found. We looked for: " + errmsg *= join([b.exec[1] for b in sh_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + # Error out if we couldn't find something + if !download_found || !compression_found || !sh_found + error(errmsg) + end + already_probed = true +end + +""" +`parse_7z_list(output::AbstractString)` + +Given the output of `7z l`, parse out the listed filenames. This funciton used +by `list_tarball_files`. +""" +function parse_7z_list(output::AbstractString) + lines = [chomp(l) for l in split(output, "\n")] + # Remove extraneous "\r" for windows platforms + for idx in 1:length(lines) + if endswith(lines[idx], '\r') + lines[idx] = lines[idx][1:end-1] + end + end + + # Find index of " Name". (can't use `findfirst(generator)` until this is + # closed: https://github.com/JuliaLang/julia/issues/16884 + header_row = find(contains(l, " Name") && contains(l, " Attr") for l in lines)[1] + name_idx = search(lines[header_row], "Name")[1] + attr_idx = search(lines[header_row], "Attr")[1] - 1 + + # Filter out only the names of files, ignoring directories + lines = [l[name_idx:end] for l in lines if length(l) > name_idx && l[attr_idx] != 'D'] + if isempty(lines) + return [] + end + + # Extract within the bounding lines of ------------ + bounds = [i for i in 1:length(lines) if all([c for c in lines[i]] .== '-')] + lines = lines[bounds[1]+1:bounds[2]-1] + + # Eliminate `./` prefix, if it exists + for idx in 1:length(lines) + if startswith(lines[idx], "./") || startswith(lines[idx], ".\\") + lines[idx] = lines[idx][3:end] + end + end + + return lines +end + +""" +`parse_7z_list(output::AbstractString)` + +Given the output of `tar -t`, parse out the listed filenames. This funciton +used by `list_tarball_files`. +""" +function parse_tar_list(output::AbstractString) + lines = [chomp(l) for l in split(output, "\n")] + + # Drop empty lines and and directories + lines = [l for l in lines if !isempty(l) && !endswith(l, '/')] + + # Eliminate `./` prefix, if it exists + for idx in 1:length(lines) + if startswith(lines[idx], "./") || startswith(lines[idx], ".\\") + lines[idx] = lines[idx][3:end] + end + end + + return lines +end + +end diff --git a/stdlib/Pkg3/src/REPLMode.jl b/stdlib/Pkg3/src/REPLMode.jl new file mode 100644 index 00000000000000..a7a21bc8c346e3 --- /dev/null +++ b/stdlib/Pkg3/src/REPLMode.jl @@ -0,0 +1,720 @@ +module REPLMode + +using Markdown +using UUIDs + +import REPL +import REPL: LineEdit, REPLCompletions + +import Pkg3 +import Pkg3: devdir, print_first_command_header +using Pkg3.Types +using Pkg3.Display +using Pkg3.Operations + +############ +# Commands # +############ +@enum(CommandKind, CMD_HELP, CMD_STATUS, CMD_SEARCH, CMD_ADD, CMD_RM, CMD_UP, + CMD_TEST, CMD_GC, CMD_PREVIEW, CMD_INIT, CMD_BUILD, CMD_FREE, + CMD_PIN, CMD_CHECKOUT) + +struct Command + kind::CommandKind + val::String +end +Base.show(io::IO, cmd::Command) = print(io, cmd.val) + +const cmds = Dict( + "help" => CMD_HELP, + "?" => CMD_HELP, + "status" => CMD_STATUS, + "st" => CMD_STATUS, + "." => CMD_STATUS, + "search" => CMD_SEARCH, + "find" => CMD_SEARCH, + "/" => CMD_SEARCH, + "add" => CMD_ADD, + "install" => CMD_ADD, + "+" => CMD_ADD, + "rm" => CMD_RM, + "remove" => CMD_RM, + "uninstall" => CMD_RM, + "-" => CMD_RM, + "up" => CMD_UP, + "update" => CMD_UP, + "upgrade" => CMD_UP, + "test" => CMD_TEST, + "gc" => CMD_GC, + "preview" => CMD_PREVIEW, + "init" => CMD_INIT, + "build" => CMD_BUILD, + "pin" => CMD_PIN, + "free" => CMD_FREE, + "checkout" => CMD_CHECKOUT, +) + +########### +# Options # +########### +@enum(OptionKind, OPT_ENV, OPT_PROJECT, OPT_MANIFEST, OPT_MAJOR, OPT_MINOR, + OPT_PATCH, OPT_FIXED, OPT_COVERAGE, OPT_NAME, OPT_PATH, + OPT_BRANCH,) + +function Types.PackageMode(opt::OptionKind) + opt == OPT_MANIFEST && return PKGMODE_MANIFEST + opt == OPT_PROJECT && return PKGMODE_PROJECT + throw(ArgumentError("invalid option $opt")) +end + +function Types.UpgradeLevel(opt::OptionKind) + opt == OPT_MAJOR && return UPLEVEL_MAJOR + opt == OPT_MINOR && return UPLEVEL_MINOR + opt == OPT_PATCH && return UPLEVEL_PATCH + opt == OPT_FIXED && return UPLEVEL_FIXED + throw(ArgumentError("invalid option $opt")) +end + +struct Option + kind::OptionKind + val::String + argument::Union{String, Nothing} + Option(kind::OptionKind, val::String) = new(kind, val, nothing) + function Option(kind::OptionKind, val::String, argument::Union{String, Nothing}) + if kind in (OPT_PROJECT, OPT_MANIFEST, OPT_MAJOR, + OPT_MINOR, OPT_PATCH, OPT_FIXED) && + argument !== nothing + cmderror("the `$val` option does not take an argument") + elseif kind in (OPT_ENV, OPT_PATH, OPT_BRANCH) && argument == nothing + cmderror("the `$val` option requires an argument") + end + if kind == OPT_PATH + argument = replace(argument, "~" => homedir()) + end + new(kind, val, argument) + end +end +Base.show(io::IO, opt::Option) = print(io, "--$(opt.val)", opt.argument == nothing ? "" : "=$(opt.argument)") + +const opts = Dict( + "env" => OPT_ENV, + "project" => OPT_PROJECT, + "p" => OPT_PROJECT, + "manifest" => OPT_MANIFEST, + "m" => OPT_MANIFEST, + "major" => OPT_MAJOR, + "minor" => OPT_MINOR, + "patch" => OPT_PATCH, + "fixed" => OPT_FIXED, + "coverage" => OPT_COVERAGE, + "name" => OPT_NAME, + "path" => OPT_PATH, + "branch" => OPT_BRANCH, +) + +function parse_option(word::AbstractString)::Option + m = match(r"^(?: -([a-z]) | --([a-z]{2,})(?:\s*=\s*(\S*))? )$"ix, word) + m == nothing && cmderror("invalid option: ", repr(word)) + k = m.captures[1] != nothing ? m.captures[1] : m.captures[2] + haskey(opts, k) || cmderror("invalid option: ", repr(word)) + return Option(opts[k], String(k), m.captures[3] == nothing ? nothing : String(m.captures[3])) +end + +################### +# Package parsing # +################### +let uuid = raw"(?i)[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}(?-i)", + name = raw"(\w+)(?:\.jl)?" + global const name_re = Regex("^$name\$") + global const uuid_re = Regex("^$uuid\$") + global const name_uuid_re = Regex("^$name\\s*=\\s*($uuid)\$") +end + +function parse_package(word::AbstractString)::PackageSpec + if contains(word, uuid_re) + return PackageSpec(UUID(word)) + elseif contains(word, name_re) + return PackageSpec(String(match(name_re, word).captures[1])) + elseif contains(word, name_uuid_re) + m = match(name_uuid_re, word) + return PackageSpec(String(m.captures[1]), UUID(m.captures[2])) + else + cmderror("`$word` cannot be parsed as a package") + end +end + +################ +# REPL parsing # +################ +const lex_re = r"^[\?\./\+\-](?!\-) | [^@\s]+\s*=\s*[^@\s]+ | @\s*[^@\s]* | [^@\s]+"x + +const Token = Union{Command, Option, VersionRange, String} + +function tokenize(cmd::String)::Vector{Token} + print_first_command_header() + tokens = Token[] + words = map(m->m.match, eachmatch(lex_re, cmd)) + help_mode = false + preview_mode = false + # First parse a Command or a modifier (help / preview) + Command + while !isempty(words) + word = popfirst!(words) + if word[1] == '-' && length(word) > 1 + push!(tokens, parse_option(word)) + else + haskey(cmds, word) || cmderror("invalid command: ", repr(word)) + cmdkind = cmds[word] + push!(tokens, Command(cmdkind, word)) + # If help / preview and not in help mode we want to eat another cmd + if !help_mode + cmdkind == CMD_HELP && (help_mode = true; continue) + cmdkind == CMD_PREVIEW && (preview_mode = true; continue) + end + break + end + end + if isempty(tokens) || !(tokens[end] isa Command) + cmderror("no package command given") + end + # Now parse the arguments / options to the command + while !isempty(words) + word = popfirst!(words) + if word[1] == '-' + push!(tokens, parse_option(word)) + elseif word[1] == '@' + push!(tokens, VersionRange(strip(word[2:end]))) + else + push!(tokens, String(word)) + end + end + return tokens +end + +############# +# Execution # +############# + +function do_cmd(repl::REPL.AbstractREPL, input::String) + try + tokens = tokenize(input) + do_cmd!(tokens, repl) + catch err + if err isa CommandError + Base.display_error(repl.t.err_stream, ErrorException(err.msg), Ptr{Nothing}[]) + else + Base.display_error(repl.t.err_stream, err, Base.catch_backtrace()) + end + end +end + +function do_cmd!(tokens::Vector{Token}, repl) + cmd = env_opt = nothing + while !isempty(tokens) + token = popfirst!(tokens) + if token isa Command + cmd = token + break + elseif token isa Option + # Only OPT_ENV is allowed before a command + if token.kind == OPT_ENV + env_opt = Base.parse_env(token.argument) + else + cmderror("unrecognized command option: `$token`") + end + else + cmderror("misplaced token: ", token) + end + end + ctx = Context(env = EnvCache(env_opt)) + if cmd.kind == CMD_PREVIEW + ctx.preview = true + isempty(tokens) && cmderror("expected a command to preview") + return do_cmd!(tokens, repl) + end + # Using invokelatest to hide the functions from inference. + # Otherwise it would try to infer everything here. + cmd.kind == CMD_INIT ? Base.invokelatest( do_init!, ctx, tokens) : + cmd.kind == CMD_HELP ? Base.invokelatest( do_help!, ctx, tokens, repl) : + cmd.kind == CMD_RM ? Base.invokelatest( do_rm!, ctx, tokens) : + cmd.kind == CMD_ADD ? Base.invokelatest( do_add!, ctx, tokens) : + cmd.kind == CMD_UP ? Base.invokelatest( do_up!, ctx, tokens) : + cmd.kind == CMD_STATUS ? Base.invokelatest( do_status!, ctx, tokens) : + cmd.kind == CMD_TEST ? Base.invokelatest( do_test!, ctx, tokens) : + cmd.kind == CMD_GC ? Base.invokelatest( do_gc!, ctx, tokens) : + cmd.kind == CMD_BUILD ? Base.invokelatest( do_build!, ctx, tokens) : + cmd.kind == CMD_PIN ? Base.invokelatest( do_pin!, ctx, tokens) : + cmd.kind == CMD_FREE ? Base.invokelatest( do_free!, ctx, tokens) : + cmd.kind == CMD_CHECKOUT ? Base.invokelatest(do_checkout!, ctx, tokens) : + cmderror("`$cmd` command not yet implemented") + return +end + +const help = md""" +**Synopsis** + + pkg> [--env=...] cmd [opts] [args] + +**Environment** + +The `--env` meta option determines which project environment to manipulate. By +default, this looks for a git repo in the parents directories of the current +working directory, and if it finds one, it uses that as an environment. Otherwise, +it uses a named environment (typically found in `~/.julia/environments`) looking +for environments named `v$(VERSION.major).$(VERSION.minor).$(VERSION.patch)`, +`v$(VERSION.major).$(VERSION.minor)`, `v$(VERSION.major)` or `default` in order. + +**Commands** + +What action you want the package manager to take: + +`help`: show this message + +`status`: summarize contents of and changes to environment + +`add`: add packages to project + +`rm`: remove packages from project or manifest + +`up`: update packages in manifest + +`preview`: previews a subsequent command without affecting the current state + +`test`: run tests for packages + +`gc`: garbage collect packages not used for a significant time + +`init`: initializes an environment in the current, or git base, directory + +`build`: run the build script for packages + +`pin`: pins the version of packages + +`checkout`: clone the full package repo locally for development + +`free`: undos a `pin` or `checkout` +""" + +const helps = Dict( + CMD_HELP => md""" + + help + + Display this message. + + help cmd ... + + Display usage information for commands listed. + + Available commands: `help`, `status`, `add`, `rm`, `up`, `preview`, `gc`, `test`, `init`, `build`, `free`, `pin`, `checkout`. + """, CMD_STATUS => md""" + + status + status [-p|--project] + status [-m|--manifest] + + Show the status of the current environment. By default, the full contents of + the project file is summarized, showing what version each package is on and + how it has changed since the last git commit (if in a git repo), as well as + any changes to manifest packages not already listed. In `--project` mode, the + status of the project file is summarized. In `--project` mode, the status of + the project file is summarized. + """, CMD_ADD => md""" + + add pkg[=uuid] [@version] ... + + Add package `pkg` to the current project file. If `pkg` could refer to + multiple different packages, specifying `uuid` allows you to disambiguate. + `@version` optionally allows specifying which versions of packages. Versions + may be specified by `@1`, `@1.2`, `@1.2.3`, allowing any version with a prefix + that matches, or ranges thereof, such as `@1.2-3.4.5`. + """, CMD_RM => md""" + + rm [-p|--project] pkg[=uuid] ... + + Remove package `pkg` from the project file. Since the name `pkg` can only + refer to one package in a project this is unambiguous, but you can specify + a `uuid` anyway, and the command is ignored, with a warning if package name + and UUID do not mactch. When a package is removed from the project file, it + may still remain in the manifest if it is required by some other package in + the project. Project mode operation is the default, so passing `-p` or + `--project` is optional unless it is preceded by the `-m` or `--manifest` + options at some earlier point. + + rm [-m|--manifest] pkg[=uuid] ... + + Remove package `pkg` from the manifest file. If the name `pkg` refers to + multiple packages in the manifest, `uuid` disambiguates it. Removing a package + from the manifest forces the removal of all packages that depend on it, as well + as any no-longer-necessary manifest packages due to project package removals. + """, CMD_UP => md""" + + up [-p|project] [opts] pkg[=uuid] [@version] ... + up [-m|manifest] [opts] pkg[=uuid] [@version] ... + + opts: --major | --minor | --patch | --fixed + + Update the indicated package within the constraints of the indicated version + specifications. Versions may be specified by `@1`, `@1.2`, `@1.2.3`, allowing + any version with a prefix that matches, or ranges thereof, such as `@1.2-3.4.5`. + In `--project` mode, package specifications only match project packages, while + in `manifest` mode they match any manifest package. Bound level options force + the following packages to be upgraded only within the current major, minor, + patch version; if the `--fixed` upgrade level is given, then the following + packages will not be upgraded at all. + """, CMD_PREVIEW => md""" + + preview cmd + + Runs the command `cmd` in preview mode. This is defined such that no side effects + will take place i.e. no packages are downloaded and neither the project nor manifest + is modified. + """, CMD_TEST => md""" + + test [opts] pkg[=uuid] ... + + opts: --coverage + + Run the tests for package `pkg`. This is done by running the file `test/runtests.jl` + in the package directory. The option `--coverage` can be used to run the tests with + coverage enabled. + """, CMD_GC => md""" + + Deletes packages that are not reached from any environment used within the last 6 weeks. + """, CMD_INIT => md""" + + init + + Creates an environment in the current directory, or the git base directory if the current directory + is in a git repository. + """, CMD_BUILD =>md""" + + build pkg[=uuid] ... + + Run the build script in deps/build.jl for each package in `pkg`` and all of their dependencies in depth-first recursive order. + If no packages are given, runs the build scripts for all packages in the manifest. + """, CMD_PIN => md""" + + pin pkg[=uuid] ... + + Pin packages to given versions, or the current version if no version is specified. A pinned package has its version fixed and will not be upgraded or downgraded. + A pinned package has the symbol `⚲` next to its version in the status list. + """, CMD_FREE => md""" + free pkg[=uuid] ... + + Free a pinned package `pkg`, which allows it to be upgraded or downgraded again. If the package is checked out (see `help checkout`) then this command + makes the package no longer being checked out. + """, CMD_CHECKOUT => md""" + checkout pkg[=uuid] ... + + opts: --path | --branch + + Check out a package by cloning the registered repo at `branch` to `path`. By default, `path` is `~/.julia/dev/` and the `branch` + is the default for the repo. Each package can be given a different branch. + A checked out package is considered having a higher version than all the registered versions of the package. + This operation is undone by `free`. + + *Example* + ```jl + pkg> checkout --path=~/mydevpackages Example --branch=devel ACME --branch=feature/branch + ``` + """ +) + +function do_help!( + ctk::Context, + tokens::Vector{Token}, + repl::REPL.AbstractREPL, +) + disp = REPL.REPLDisplay(repl) + if isempty(tokens) + Base.display(disp, help) + return + end + help_md = md"" + for token in tokens + if token isa Command + if haskey(helps, token.kind) + isempty(help_md.content) || + push!(help_md.content, md"---") + push!(help_md.content, helps[token.kind].content) + else + cmderror("Sorry, I don't have any help for the `$(token.val)` command.") + end + else + error("invalid usage of help command") + end + end + Base.display(disp, help_md) +end + +function do_rm!(ctx::Context, tokens::Vector{Token}) + # tokens: package names and/or uuids + mode = PKGMODE_PROJECT + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token isa String + push!(pkgs, parse_package(token)) + pkgs[end].mode = mode + elseif token isa VersionRange + cmderror("`rm` does not take version specs") + elseif token isa Option + if token.kind in (OPT_PROJECT, OPT_MANIFEST) + mode = PackageMode(token.kind) + else + cmderror("invalid option for `rm`: $token") + end + end + end + isempty(pkgs) && + cmderror("`rm` – list packages to remove") + Pkg3.API.rm(ctx, pkgs) +end + +function do_add!(ctx::Context, tokens::Vector{Token}) + # tokens: package names and/or uuids, optionally followed by version specs + isempty(tokens) && + cmderror("`add` – list packages to add") + pkgs = PackageSpec[] + prev_token_was_package = false + while !isempty(tokens) + parsed_package = false + token = popfirst!(tokens) + if token isa String + push!(pkgs, parse_package(token)) + parsed_package = true + elseif token isa VersionRange + prev_token_was_package || + cmderror("package name/uuid must precede version spec `@$token`") + pkgs[end].version = VersionSpec(token) + elseif token isa Option + cmderror("`add` doesn't take options: $token") + end + prev_token_was_package = parsed_package + end + Pkg3.API.add(ctx, pkgs) +end + +function do_up!(ctx::Context, tokens::Vector{Token}) + # tokens: + # - upgrade levels as options: --[fixed|patch|minor|major] + # - package names and/or uuids, optionally followed by version specs + pkgs = PackageSpec[] + mode = PKGMODE_PROJECT + level = UPLEVEL_MAJOR + prev_token_was_package = false + while !isempty(tokens) + parsed_package = false + token = popfirst!(tokens) + if token isa String + push!(pkgs, parse_package(token)) + pkgs[end].version = level + pkgs[end].mode = mode + parsed_package = true + elseif token isa VersionRange + prev_token_was_package || + cmderror("package name/uuid must precede version spec `@$token`") + pkgs[end].version = VersionSpec(token) + elseif token isa Option + if token.kind in (OPT_PROJECT, OPT_MANIFEST) + mode = PackageMode(token.kind) + elseif token.kind in (OPT_MAJOR, OPT_MINOR, OPT_PATCH, OPT_FIXED) + level = UpgradeLevel(token.kind) + else + cmderror("invalid option for `up`: $(token)") + end + end + prev_token_was_package = parsed_package + end + Pkg3.API.up(ctx, pkgs; level=level, mode=mode) +end + +function do_pin!(ctx::Context, tokens::Vector{Token}) + pkgs = PackageSpec[] + prev_token_was_package = false + while !isempty(tokens) + token = popfirst!(tokens) + parsed_package = false + if token isa String + push!(pkgs, parse_package(token)) + parsed_package = true + elseif token isa VersionRange + prev_token_was_package || + cmderror("package name/uuid must precede version spec `@$token`") + if token.lower != token.upper + cmderror("pinning a package requires a single version, not a versionrange") + end + pkgs[end].version = VersionSpec(token) + else + cmderror("free only takes a list of packages ") + end + prev_token_was_package = parsed_package + end + Pkg3.API.pin(ctx, pkgs) +end + +function do_free!(ctx::Context, tokens::Vector{Token}) + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token isa String + push!(pkgs, parse_package(token)) + else + cmderror("free only takes a list of packages") + end + end + Pkg3.API.free(ctx, pkgs) +end + +function do_checkout!(ctx::Context, tokens::Vector{Token}) + pkgs_branches = Tuple{PackageSpec, Union{String, Nothing}}[] # (package, branch?) + path = devdir() + prev_token_was_package = false + while !isempty(tokens) + token = popfirst!(tokens) + parsed_package = false + if token isa String + push!(pkgs_branches, (parse_package(token), nothing)) + parsed_package = true + elseif token isa Option + if token.kind == OPT_PATH + path = token.argument + elseif token.kind == OPT_BRANCH + pkgs_branches[end] = (pkgs_branches[end][1], token.argument) + else + cmderror("invalid option for `checkout`: $token") + end + else + cmderror("unexpected token $token") + end + prev_token_was_package = parsed_package + end + Pkg3.API.checkout(ctx, pkgs_branches; path = path) +end + +function do_status!(ctx::Context, tokens::Vector{Token}) + mode = PKGMODE_COMBINED + while !isempty(tokens) + token = popfirst!(tokens) + if token isa Option + if token.kind in (OPT_PROJECT, OPT_MANIFEST) + mode = PackageMode(token.kind) + else + cmderror("invalid option for `status`: $(token)") + end + else + cmderror("`status` does not take arguments") + end + end + Pkg3.Display.status(ctx, mode) +end + +# TODO , test recursive dependencies as on option. +function do_test!(ctx::Context, tokens::Vector{Token}) + pkgs = PackageSpec[] + coverage = false + while !isempty(tokens) + token = popfirst!(tokens) + if token isa String + pkg = parse_package(token) + pkg.mode = PKGMODE_MANIFEST + push!(pkgs, pkg) + elseif token isa Option + if token.kind == OPT_COVERAGE + coverage = true + else + cmderror("invalid option for `test`: $token") + end + else + # TODO: Better error message + cmderror("invalid usage for `test`") + end + end + isempty(pkgs) && cmderror("`test` takes a set of packages") + Pkg3.API.test(ctx, pkgs; coverage = coverage) +end + +function do_gc!(ctx::Context, tokens::Vector{Token}) + !isempty(tokens) && cmderror("`gc` does not take any arguments") + Pkg3.API.gc(ctx) +end + +function do_build!(ctx::Context, tokens::Vector{Token}) + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token isa String + push!(pkgs, parse_package(token)) + else + cmderror("`build` only takes a list of packages") + end + end + Pkg3.API.build(ctx, pkgs) +end + +function do_init!(ctx::Context, tokens::Vector{Token}) + if !isempty(tokens) + cmderror("`init` does currently not take any arguments") + end + Pkg3.API.init(ctx) +end + + +###################### +# REPL mode creation # +###################### +function create_mode(repl, main) + pkg_mode = LineEdit.Prompt("pkg> "; + prompt_prefix = Base.text_colors[:blue], + prompt_suffix = "", + sticky = true) + + pkg_mode.repl = repl + hp = main.hist + hp.mode_mapping[:pkg] = pkg_mode + pkg_mode.hist = hp + + search_prompt, skeymap = LineEdit.setup_search_keymap(hp) + prefix_prompt, prefix_keymap = LineEdit.setup_prefix_keymap(hp, pkg_mode) + + pkg_mode.on_done = (s, buf, ok) -> begin + ok || return REPL.transition(s, :abort) + input = String(take!(buf)) + REPL.reset(repl) + do_cmd(repl, input) + REPL.prepare_next(repl) + REPL.reset_state(s) + s.current_mode.sticky || REPL.transition(s, main) + end + + mk = REPL.mode_keymap(main) + + b = Dict{Any,Any}[ + skeymap, mk, prefix_keymap, LineEdit.history_keymap, + LineEdit.default_keymap, LineEdit.escape_defaults + ] + pkg_mode.keymap_dict = LineEdit.keymap(b) + return pkg_mode +end + +function repl_init(repl) + main_mode = repl.interface.modes[1] + pkg_mode = create_mode(repl, main_mode) + push!(repl.interface.modes, pkg_mode) + keymap = Dict{Any,Any}( + ']' => function (s,args...) + if isempty(s) || position(LineEdit.buffer(s)) == 0 + buf = copy(LineEdit.buffer(s)) + LineEdit.transition(s, pkg_mode) do + LineEdit.state(s, pkg_mode).input_buffer = buf + end + else + LineEdit.edit_insert(s, ']') + end + end + ) + main_mode.keymap_dict = LineEdit.keymap_merge(main_mode.keymap_dict, keymap) + return +end + +end diff --git a/stdlib/Pkg3/src/Resolve.jl b/stdlib/Pkg3/src/Resolve.jl new file mode 100644 index 00000000000000..1d5227e98ef487 --- /dev/null +++ b/stdlib/Pkg3/src/Resolve.jl @@ -0,0 +1,415 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Resolve + +include(joinpath("resolve", "VersionWeights.jl")) +include(joinpath("resolve", "MaxSum.jl")) + +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Resolve.MaxSum +import Pkg3.Types: uuid_julia +import Pkg3.GraphType: is_julia, check_constraints, log_event_global!, log_event_greedysolved!, log_event_maxsumsolved!, log_event_maxsumtrace! + +using Printf + +export resolve, sanity_check + +"Resolve package dependencies." +function resolve(graph::Graph) + # attempt trivial solution first + greedy_ok, sol = greedysolver(graph) + + greedy_ok && @goto solved + + log_event_global!(graph, "greedy solver failed") + + # trivial solution failed, use maxsum solver + maxsum_ok, sol, staged = maxsum(graph) + + maxsum_ok && @goto solved + + log_event_global!(graph, "maxsum solver failed") + + # the problem is unsat, force-trigger a failure + # in order to produce a log - this will contain + # information about the best that the solver could + # achieve + trigger_failure!(graph, sol, staged) + + @label solved + + # verify solution (debug code) and enforce its optimality + @assert verify_solution(sol, graph) + greedy_ok || enforce_optimality!(sol, graph) + + log_event_global!(graph, "the solver found $(greedy_ok ? "an optimal" : "a feasible") configuration") + + # return the solution as a Dict mapping UUID => VersionNumber + return compute_output_dict(sol, graph) +end + +""" +Scan the graph for (explicit or implicit) contradictions. Returns a list of problematic +(package,version) combinations. +""" +function sanity_check(graph::Graph, sources::Set{UUID} = Set{UUID}(), verbose::Bool = true) + req_inds = graph.req_inds + fix_inds = graph.fix_inds + + id(p) = pkgID(p, graph) + + isempty(req_inds) || @warn("sanity check called on a graph with non-empty requirements") + if !any(is_julia(graph, fp0) for fp0 in fix_inds) + @warn("sanity check called on a graph without julia requirement, adding it") + add_fixed!(graph, Dict(uuid_julia=>Fixed(VERSION))) + end + if length(fix_inds) ≠ 1 + @warn("sanity check called on a graph with extra fixed requirements (besides julia)") + end + + isources = isempty(sources) ? + Set{Int}(1:graph.np) : + Set{Int}(graph.data.pdict[p] for p in sources) + + simplify_graph!(graph, isources) + + np = graph.np + spp = graph.spp + gadj = graph.gadj + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + eq_classes = data.eq_classes + + problematic = Tuple{String,VersionNumber}[] + + np == 0 && return problematic + + vers = [(pkgs[p0],pvers[p0][v0]) for p0 = 1:np for v0 = 1:(spp[p0]-1)] + sort!(vers, by=pv->(-length(gadj[pdict[pv[1]]]))) + + nv = length(vers) + + svdict = Dict{Tuple{UUID,VersionNumber},Int}(vers[i] => i for i = 1:nv) + + checked = falses(nv) + + last_str_len = 0 + + for (i,(p,vn)) in enumerate(vers) + if verbose + frac_compl = i / nv + print("\r", " "^last_str_len, "\r") + progr_msg = @sprintf("%.3i/%.3i (%i%%) — problematic so far: %i", i, nv, round(Int, 100 * frac_compl), length(problematic)) + print(progr_msg) + last_str_len = length(progr_msg) + end + + length(gadj[pdict[p]]) == 0 && break + checked[i] && continue + + push_snapshot!(graph) + + # enforce package version + # TODO: use add_reqs! instead... + p0 = graph.data.pdict[p] + v0 = graph.data.vdict[p0][vn] + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][v0] = true + push!(graph.req_inds, p0) + + ok = false + try + simplify_graph_soft!(graph, Set{Int}([p0]), log_events = false) + catch err + isa(err, ResolverError) || rethrow(err) + @goto done + end + + ok, sol = greedysolver(graph) + ok && @goto done + ok, sol = maxsum(graph) + + @label done + + if !ok + for vneq in eq_classes[p][vn] + push!(problematic, (id(p), vneq)) + end + else + @assert verify_solution(sol, graph) + sol_dict = compute_output_dict(sol, graph) + for (sp,svn) in sol_dict + j = svdict[sp,svn] + checked[j] = true + end + end + + # state reset + empty!(graph.req_inds) + pop_snapshot!(graph) + end + if verbose + print("\r", " "^last_str_len, "\r") + println("found $(length(problematic)) problematic versions") + end + return sort!(problematic) +end + +""" +Translate the solver output (a Vector{Int} of package states) into a Dict which +associates a VersionNumber to each installed package UUID. +""" +function compute_output_dict(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + fix_inds = graph.fix_inds + pkgs = graph.data.pkgs + pvers = graph.data.pvers + pruned = graph.data.pruned + + want = Dict{UUID,VersionNumber}() + for p0 = 1:np + p0 ∈ fix_inds && continue + p = pkgs[p0] + s0 = sol[p0] + s0 == spp[p0] && continue + vn = pvers[p0][s0] + want[p] = vn + end + for (p,vn) in pruned + @assert !haskey(want, p) + want[p] = vn + end + + return want +end + +""" +Preliminary solver attempt: tries to maximize each version; bails out as soon as +some non-trivial requirement is detected. +""" +function greedysolver(graph::Graph) + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + np = graph.np + + push_snapshot!(graph) + gconstr = graph.gconstr + + # initialize solution: all uninstalled + sol = [spp[p0] for p0 = 1:np] + + # packages which are not allowed to be uninstalled + # (NOTE: this is potentially a superset of graph.req_inds, + # since it may include implicit requirements) + req_inds = Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) + + # set up required packages to their highest allowed versions + for rp0 in req_inds + # look for the highest version which satisfies the requirements + rv0 = findlast(gconstr[rp0]) + @assert rv0 ≠ 0 && rv0 ≠ spp[rp0] + sol[rp0] = rv0 + fill!(gconstr[rp0], false) + gconstr[rp0][rv0] = true + end + + # propagate the requirements + try + simplify_graph_soft!(graph, req_inds, log_events = false) + catch err + err isa ResolverError || rethrow(err) + pop_snapshot!(graph) + return (false, Int[]) + end + + # we start from required packages and explore the graph + # following dependencies + staged = req_inds + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + s0 = sol[p0] + @assert s0 < spp[p0] + + # scan dependencies + for (j1,p1) in enumerate(gadj[p0]) + msk = gmsk[p0][j1] + # look for the highest version which satisfies the requirements + v1 = findlast(msk[:,s0] .& gconstr[p1]) + v1 == spp[p1] && continue # p1 is not required by p0's current version + # if we found a version, and the package was uninstalled + # or the same version was already selected, we're ok; + # otherwise we can't be sure what the optimal configuration is + # and we bail out + if v1 > 0 && (sol[p1] == spp[p1] || sol[p1] == v1) + sol[p1] = v1 + else + pop_snapshot!(graph) + return (false, Int[]) + end + + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + pop_snapshot!(graph) + + for p0 = 1:np + log_event_greedysolved!(graph, p0, sol[p0]) + end + + return true, sol +end + +""" +Verifies that the solver solution fulfills all hard constraints +(requirements and dependencies). This is intended as debug code. +""" +function verify_solution(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + + @assert length(sol) == np + @assert all(sol .> 0) + + # verify constraints and dependencies + for p0 = 1:np + s0 = sol[p0] + gconstr[p0][s0] || (@warn("gconstr[$p0][$s0] fail"); return false) + for (j1,p1) in enumerate(gadj[p0]) + msk = gmsk[p0][j1] + s1 = sol[p1] + msk[s1,s0] || (@warn("gmsk[$p0][$p1][$s1,$s0] fail"); return false) + end + end + return true +end + +""" +Push the given solution to a local optimium if needed: keeps increasing +the states of the given solution as long as no constraints are violated. +It also removes unnecessary parts of the solution which are unconnected +to the required packages. +""" +function enforce_optimality!(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + pkgs = graph.data.pkgs + + # keep a track for the log + why = Union{Symbol,Int}[0 for p0 = 1:np] + + restart = true + while restart + restart = false + for p0 = 1:np + s0 = sol[p0] + s0 == spp[p0] && (why[p0] = :uninst; continue) # the package is not installed + + # check if bumping to the higher version would violate a constraint + gconstr[p0][s0+1] || (why[p0] = :constr; continue) + + # check if bumping to the higher version would violate a constraint + viol = false + for (j1,p1) in enumerate(gadj[p0]) + s1 = sol[p1] + msk = gmsk[p0][j1] + if !msk[s1, s0+1] + viol = true + why[p0] = p1 + break + end + end + viol && continue + + # So the solution is non-optimal: we bump it manually + sol[p0] += 1 + restart = true + end + end + + # Finally uninstall unneeded packages: + # start from the required ones and keep only + # the packages reachable from them along the graph. + # (These should have been removed in the previous step, but in principle + # an unconnected yet self-sustaining cycle may have survived.) + uninst = trues(np) + staged = Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + s0 = sol[p0] + @assert s0 < spp[p0] + uninst[p0] = false + for (j1,p1) in enumerate(gadj[p0]) + gmsk[p0][j1][end,s0] && continue # the package is not required by p0 at version s0 + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + for p0 in findall(uninst) + sol[p0] = spp[p0] + why[p0] = :uninst + end + + @assert verify_solution(sol, graph) + + for p0 = 1:np + log_event_maxsumsolved!(graph, p0, sol[p0], why[p0]) + end +end + +function apply_maxsum_trace!(graph::Graph, sol::Vector{Int}) + gconstr = graph.gconstr + + for (p0,s0) in enumerate(sol) + s0 == 0 && continue + gconstr0 = gconstr[p0] + old_constr = copy(gconstr0) + @assert old_constr[s0] + fill!(gconstr0, false) + gconstr0[s0] = true + gconstr0 ≠ old_constr && log_event_maxsumtrace!(graph, p0, s0) + end +end + +function trigger_failure!(graph::Graph, sol::Vector{Int}, staged::Tuple{Int,Int}) + apply_maxsum_trace!(graph, sol) + simplify_graph_soft!(graph, Set(findall(sol .> 0)), log_events = true) # this may throw an error... + + np = graph.np + gconstr = graph.gconstr + p0, v0 = staged + + @assert gconstr[p0][v0] + fill!(gconstr[p0], false) + gconstr[p0][v0] = true + log_event_maxsumtrace!(graph, p0, v0) + simplify_graph!(graph) # this may throw an error... + outdict = resolve(graph) # ...otherwise, this MUST throw an error + open(io->showlog(io, graph, view=:chronological), "logchrono.errresolve.txt", "w") + error("this is not supposed to happen... $(Dict(pkgID(p, graph) => vn for (p,vn) in outdict))") +end + +end # module diff --git a/stdlib/Pkg3/src/Types.jl b/stdlib/Pkg3/src/Types.jl new file mode 100644 index 00000000000000..867569932a6bad --- /dev/null +++ b/stdlib/Pkg3/src/Types.jl @@ -0,0 +1,970 @@ +module Types + +using UUIDs +using Random +using Dates +import LibGit2 +import REPL +using REPL.TerminalMenus + +using Pkg3.TOML +import Pkg3 +import Pkg3: depots, logdir + +import Base: SHA1, AbstractEnv +using SHA + +export UUID, pkgID, SHA1, VersionRange, VersionSpec, empty_versionspec, + Requires, Fixed, merge_requires!, satisfies, ResolverError, + PackageSpec, EnvCache, Context, Context!, + CommandError, cmderror, has_name, has_uuid, write_env, parse_toml, find_registered!, + project_resolve!, manifest_resolve!, registry_resolve!, ensure_resolved, + manifest_info, registered_uuids, registered_paths, registered_uuid, registered_name, + read_project, read_manifest, pathrepr, registries, + PackageMode, PKGMODE_MANIFEST, PKGMODE_PROJECT, PKGMODE_COMBINED, + UpgradeLevel, UPLEVEL_FIXED, UPLEVEL_PATCH, UPLEVEL_MINOR, UPLEVEL_MAJOR, + PackageSpecialAction, PKGSPEC_NOTHING, PKGSPEC_PINNED, PKGSPEC_FREED, PKGSPEC_CHECKED_OUT + + +## ordering of UUIDs ## + +Base.isless(a::UUID, b::UUID) = a.value < b.value + +## Computing UUID5 values from (namespace, key) pairs ## +function uuid5(namespace::UUID, key::String) + data = [reinterpret(UInt8, [namespace.value]); codeunits(key)] + u = reinterpret(UInt128, sha1(data)[1:16])[1] + u &= 0xffffffffffff0fff3fffffffffffffff + u |= 0x00000000000050008000000000000000 + return UUID(u) +end +uuid5(namespace::UUID, key::AbstractString) = uuid5(namespace, String(key)) + +const uuid_dns = UUID(0x6ba7b810_9dad_11d1_80b4_00c04fd430c8) +const uuid_julia = uuid5(uuid_dns, "julialang.org") +const uuid_package = uuid5(uuid_julia, "package") +const uuid_registry = uuid5(uuid_julia, "registry") + + +## user-friendly representation of package IDs ## +function pkgID(p::UUID, uuid_to_name::Dict{UUID,String}) + name = get(uuid_to_name, p, "") + isempty(name) && (name = "(unknown)") + uuid_short = string(p)[1:8] + return "$name [$uuid_short]" +end + +################ +# VersionBound # +################ +struct VersionBound + t::NTuple{3,UInt32} + n::Int + function VersionBound(tin::NTuple{n,Integer}) where n + n <= 3 || throw(ArgumentError("VersionBound: you can only specify major, minor and patch versions")) + n == 0 && return new( ( 0, 0, 0), n) + n == 1 && return new( (tin[1], 0, 0), n) + n == 2 && return new( (tin[1], tin[2], 0), n) + n == 3 && return new( (tin[1], tin[2], tin[3]), n) + error("invalid $n") + end +end +VersionBound(t::Integer...) = VersionBound(t) +VersionBound(v::VersionNumber) = VersionBound(v.major, v.minor, v.patch) + +Base.getindex(b::VersionBound, i::Int) = b.t[i] + +function ≲(v::VersionNumber, b::VersionBound) + b.n == 0 && return true + b.n == 1 && return v.major <= b[1] + b.n == 2 && return (v.major, v.minor) <= (b[1], b[2]) + return (v.major, v.minor, v.patch) <= (b[1], b[2], b[3]) +end + +function ≲(b::VersionBound, v::VersionNumber) + b.n == 0 && return true + b.n == 1 && return v.major >= b[1] + b.n == 2 && return (v.major, v.minor) >= (b[1], b[2]) + return (v.major, v.minor, v.patch) >= (b[1], b[2], b[3]) +end + +≳(v::VersionNumber, b::VersionBound) = v ≲ b +≳(b::VersionBound, v::VersionNumber) = b ≲ v + +function isless_ll(a::VersionBound, b::VersionBound) + m, n = a.n, b.n + for i = 1:min(m, n) + a[i] < b[i] && return true + a[i] > b[i] && return false + end + return m < n +end + +stricterlower(a::VersionBound, b::VersionBound) = isless_ll(a, b) ? b : a + +# Comparison between two upper bounds +# (could be done with generated functions, or even manually unrolled...) +function isless_uu(a::VersionBound, b::VersionBound) + m, n = a.n, b.n + for i = 1:min(m,n) + a[i] < b[i] && return true + a[i] > b[i] && return false + end + return m > n +end + +stricterupper(a::VersionBound, b::VersionBound) = isless_uu(a, b) ? a : b + +# `isjoinable` compares an upper bound of a range with the lower bound of the next range +# to determine if they can be joined, as in [1.5-2.8, 2.5-3] -> [1.5-3]. Used by `union!`. +# The equal-length-bounds case is special since e.g. `1.5` can be joined with `1.6`, +# `2.3.4` can be joined with `2.3.5` etc. + +function isjoinable(up::VersionBound, lo::VersionBound) + up.n == 0 && up.lo == 0 && return true + if up.n == lo.n + n = up.n + for i = 1:(n - 1) + up[i] > lo[i] && return true + up[i] < lo[i] && return false + end + up[n] < lo[n] - 1 && return false + return true + else + l = min(up.n, lo.n) + for i = 1:l + up[i] > lo[i] && return true + up[i] < lo[i] && return false + end + end + return true +end + +Base.hash(r::VersionBound, h::UInt) = hash(hash(r.t, h), r.n) + +VersionBound(s::AbstractString) = + s == "*" ? VersionBound() : VersionBound(map(x->parse(Int, x), split(s, '.'))...) + +################ +# VersionRange # +################ +struct VersionRange + lower::VersionBound + upper::VersionBound + # NOTE: ranges are allowed to be empty; they are ignored by VersionSpec anyway +end +VersionRange(b::VersionBound=VersionBound()) = VersionRange(b, b) +VersionRange(t::Integer...) = VersionRange(VersionBound(t...)) +VersionRange(v::VersionNumber) = VersionRange(VersionBound(v)) +function VersionRange(s::AbstractString) + m = match(r"^\s*v?((?:\d+(?:\.\d+)?(?:\.\d+)?)|\*)(?:\s*-\s*v?((?:\d+(?:\.\d+)?(?:\.\d+)?)|\*))?\s*$", s) + m == nothing && throw(ArgumentError("invalid version range: $(repr(s))")) + lower = VersionBound(m.captures[1]) + upper = m.captures[2] != nothing ? VersionBound(m.captures[2]) : lower + return VersionRange(lower, upper) +end + +function Base.isempty(r::VersionRange) + for i = 1:min(r.lower.n, r.upper.n) + r.lower[i] > r.upper[i] && return true + r.lower[i] < r.upper[i] && return false + end + return false +end + +function Base.print(io::IO, r::VersionRange) + m, n = r.lower.n, r.upper.n + if (m, n) == (0, 0) + print(io, '*') + elseif m == 0 + print(io, "0-") + join(io, r.upper.t, '.') + elseif n == 0 + join(io, r.lower.t, '.') + print(io, "-*") + else + join(io, r.lower.t, '.') + if r.lower != r.upper + print(io, '-') + join(io, r.upper.t, '.') + end + end +end +Base.show(io::IO, r::VersionRange) = print(io, "VersionRange(\"", r, "\")") + +Base.in(v::VersionNumber, r::VersionRange) = r.lower ≲ v ≲ r.upper +Base.in(v::VersionNumber, r::VersionNumber) = v == r + +Base.intersect(a::VersionRange, b::VersionRange) = VersionRange(stricterlower(a.lower,b.lower), stricterupper(a.upper,b.upper)) + +function Base.union!(ranges::Vector{<:VersionRange}) + l = length(ranges) + l == 0 && return ranges + + sort!(ranges, lt=(a,b)->(isless_ll(a.lower, b.lower) || (a.lower == b.lower && isless_uu(a.upper, b.upper)))) + + k0 = 1 + ks = findfirst(!isempty, ranges) + ks == nothing && return empty!(ranges) + + lo, up, k0 = ranges[ks].lower, ranges[ks].upper, 1 + for k = (ks+1):l + isempty(ranges[k]) && continue + lo1, up1 = ranges[k].lower, ranges[k].upper + if isjoinable(up, lo1) + isless_uu(up, up1) && (up = up1) + continue + end + vr = VersionRange(lo, up) + @assert !isempty(vr) + ranges[k0] = vr + k0 += 1 + lo, up = lo1, up1 + end + vr = VersionRange(lo, up) + if !isempty(vr) + ranges[k0] = vr + k0 += 1 + end + resize!(ranges, k0 - 1) + return ranges +end + +############### +# VersionSpec # +############### +struct VersionSpec + ranges::Vector{VersionRange} + VersionSpec(r::Vector{<:VersionRange}) = new(union!(r)) + VersionSpec(vs::VersionSpec) = new(copy(vs.ranges)) +end + +VersionSpec() = VersionSpec(VersionRange()) +VersionSpec(v::VersionNumber) = VersionSpec(VersionRange(v)) +VersionSpec(r::VersionRange) = VersionSpec(VersionRange[r]) +VersionSpec(s::AbstractString) = VersionSpec(VersionRange(s)) +VersionSpec(v::AbstractVector) = VersionSpec(map(VersionRange, v)) + +# Hot code +function Base.in(v::VersionNumber, s::VersionSpec) + for r in s.ranges + v in r && return true + end + return false +end + +Base.copy(vs::VersionSpec) = VersionSpec(vs) + +const empty_versionspec = VersionSpec(VersionRange[]) +# Windows console doesn't like Unicode +const _empty_symbol = @static Sys.iswindows() ? "empty" : "∅" + +Base.isempty(s::VersionSpec) = all(isempty, s.ranges) +@assert isempty(empty_versionspec) +# Hot code, measure performance before changing +function Base.intersect(A::VersionSpec, B::VersionSpec) + (isempty(A) || isempty(B)) && return copy(empty_versionspec) + ranges = Vector{VersionRange}(uninitialized, length(A.ranges) * length(B.ranges)) + i = 1 + @inbounds for a in A.ranges, b in B.ranges + ranges[i] = intersect(a, b) + i += 1 + end + VersionSpec(ranges) +end + +Base.union(A::VersionSpec, B::VersionSpec) = union!(copy(A), B) +function Base.union!(A::VersionSpec, B::VersionSpec) + A == B && return A + append!(A.ranges, B.ranges) + union!(A.ranges) + return A +end + +Base.:(==)(A::VersionSpec, B::VersionSpec) = A.ranges == B.ranges +Base.hash(s::VersionSpec, h::UInt) = hash(s.ranges, h + (0x2fd2ca6efa023f44 % UInt)) +Base.deepcopy_internal(vs::VersionSpec, ::IdDict) = copy(vs) + +function Base.print(io::IO, s::VersionSpec) + isempty(s) && return print(io, _empty_symbol) + length(s.ranges) == 1 && return print(io, s.ranges[1]) + print(io, '[') + for i = 1:length(s.ranges) + 1 < i && print(io, ", ") + print(io, s.ranges[i]) + end + print(io, ']') +end +Base.show(io::IO, s::VersionSpec) = print(io, "VersionSpec(\"", s, "\")") + +#################### +# Requires / Fixed # +#################### +const Requires = Dict{UUID,VersionSpec} + +function merge_requires!(A::Requires, B::Requires) + for (pkg,vers) in B + A[pkg] = haskey(A,pkg) ? intersect(A[pkg],vers) : vers + end + return A +end + +satisfies(pkg::UUID, ver::VersionNumber, reqs::Requires) = + !haskey(reqs, pkg) || in(ver, reqs[pkg]) + +struct Fixed + version::VersionNumber + requires::Requires +end +Fixed(v::VersionNumber) = Fixed(v,Requires()) + +Base.:(==)(a::Fixed, b::Fixed) = a.version == b.version && a.requires == b.requires +Base.hash(f::Fixed, h::UInt) = hash((f.version, f.requires), h + (0x68628b809fd417ca % UInt)) + +Base.show(io::IO, f::Fixed) = isempty(f.requires) ? + print(io, "Fixed(", repr(f.version), ")") : + print(io, "Fixed(", repr(f.version), ",", f.requires, ")") + + +struct ResolverError <: Exception + msg::AbstractString + ex::Union{Exception, Nothing} +end +ResolverError(msg::AbstractString) = ResolverError(msg, nothing) + +function Base.showerror(io::IO, pkgerr::ResolverError) + print(io, pkgerr.msg) + if pkgerr.ex !== nothing + pkgex = pkgerr.ex + if isa(pkgex, CompositeException) + for cex in pkgex + print(io, "\n=> ") + showerror(io, cex) + end + else + print(io, "\n") + showerror(io, pkgex) + end + end +end + +################# +# Command Error # +################# +struct CommandError <: Exception + msg::String +end +cmderror(msg::String...) = throw(CommandError(join(msg))) + +# No stacktrace shown +Base.showerror(io::IO, ex::CommandError) = showerror(io, ex, []) +function Base.showerror(io::IO, ex::CommandError, bt; backtrace=true) + printstyled(color = Base.error_color(), io, string(ex.msg)) +end + +############### +# PackageSpec # +############### +@enum(UpgradeLevel, UPLEVEL_FIXED, UPLEVEL_PATCH, UPLEVEL_MINOR, UPLEVEL_MAJOR) + +function UpgradeLevel(s::Symbol) + s == :fixed ? UPLEVEL_FIXED : + s == :patch ? UPLEVEL_PATCH : + s == :minor ? UPLEVEL_MINOR : + s == :major ? UPLEVEL_MAJOR : + throw(ArgumentError("invalid upgrade bound: $s")) +end + +@enum(PackageMode, PKGMODE_PROJECT, PKGMODE_MANIFEST, PKGMODE_COMBINED) +@enum(PackageSpecialAction, PKGSPEC_NOTHING, PKGSPEC_PINNED, PKGSPEC_FREED, PKGSPEC_CHECKED_OUT) + +const VersionTypes = Union{VersionNumber,VersionSpec,UpgradeLevel} + +mutable struct PackageSpec + name::String + uuid::UUID + version::VersionTypes + mode::PackageMode + path::Union{Nothing, String} + special_action::PackageSpecialAction # If the package is currently being pinned, freed etc + PackageSpec(name::AbstractString, uuid::UUID, version::VersionTypes, mode::PackageMode=PKGMODE_PROJECT, path=nothing, special_action=PKGSPEC_NOTHING) = + new(String(name), uuid, version, mode, path, special_action) +end +PackageSpec(name::AbstractString, uuid::UUID) = + PackageSpec(name, uuid, VersionSpec()) +PackageSpec(name::AbstractString, version::VersionTypes=VersionSpec()) = + PackageSpec(name, UUID(zero(UInt128)), version) +PackageSpec(uuid::UUID, version::VersionTypes=VersionSpec()) = + PackageSpec("", uuid, version) + +has_name(pkg::PackageSpec) = !isempty(pkg.name) +has_uuid(pkg::PackageSpec) = pkg.uuid != UUID(zero(UInt128)) + +function Base.show(io::IO, pkg::PackageSpec) + print(io, "PackageSpec(") + has_name(pkg) && show(io, pkg.name) + has_name(pkg) && has_uuid(pkg) && print(io, ", ") + has_uuid(pkg) && show(io, pkg.uuid) + vstr = repr(pkg.version) + if vstr != "VersionSpec(\"*\")" + (has_name(pkg) || has_uuid(pkg)) && print(io, ", ") + print(io, vstr) + end + print(io, ")") +end + + +############ +# EnvCache # +############ + +function parse_toml(path::String...; fakeit::Bool=false) + p = joinpath(path...) + !fakeit || isfile(p) ? TOML.parsefile(p) : Dict{String,Any}() +end + +const project_names = ["JuliaProject.toml", "Project.toml"] +const manifest_names = ["JuliaManifest.toml", "Manifest.toml"] +const default_envs = [ + "v$(VERSION.major).$(VERSION.minor).$(VERSION.patch)", + "v$(VERSION.major).$(VERSION.minor)", + "v$(VERSION.major)", + "default", +] + +mutable struct EnvCache + # environment info: + env::Union{Nothing,String,AbstractEnv} + git::Union{Nothing,LibGit2.GitRepo} + + # paths for files: + project_file::String + manifest_file::String + + # cache of metadata: + project::Dict + manifest::Dict + + # registered package info: + uuids::Dict{String,Vector{UUID}} + paths::Dict{UUID,Vector{String}} + + function EnvCache(env::Union{Nothing,String,AbstractEnv}=nothing) + if env isa Nothing + project_file = nothing + for entry in LOAD_PATH + project_file = Base.find_env(entry) + project_file isa String && !isdir(project_file) && break + end + project_file === nothing && error("No Pkg3 environment found in LOAD_PATH") + elseif env isa AbstractEnv + project_file = Base.find_env(env) + project_file === nothing && error("package environment does not exist: $env") + elseif env isa String + isdir(env) && error("environment is a package directory: $env") + project_file = endswith(env, ".toml") ? abspath(env) : + abspath(env, Base.project_names[end]) + end + @assert project_file isa String && (isfile(project_file) || !ispath(project_file)) + project_dir = dirname(project_file) + git = ispath(joinpath(project_dir, ".git")) ? LibGit2.GitRepo(project_dir) : nothing + + project = read_project(project_file) + if haskey(project, "manifest") + manifest_file = abspath(project["manifest"]) + else + dir = abspath(dirname(project_file)) + for name in manifest_names + manifest_file = joinpath(dir, name) + isfile(manifest_file) && break + end + end + write_env_usage(manifest_file) + manifest = read_manifest(manifest_file) + uuids = Dict{String,Vector{UUID}}() + paths = Dict{UUID,Vector{String}}() + return new( + env, + git, + project_file, + manifest_file, + project, + manifest, + uuids, + paths, + ) + end +end + +function write_env_usage(manifest_file::AbstractString) + !ispath(logdir()) && mkpath(logdir()) + usage_file = joinpath(logdir(), "manifest_usage.toml") + touch(usage_file) + !isfile(manifest_file) && return + # Do not rewrite as do syntax (no longer precompilable) + io = open(usage_file, "a") + println(io, "[[\"", escape_string(manifest_file), "\"]]") + print(io, "time = ", now()); println(io, 'Z') + close(io) +end + +function read_project(io::IO) + project = TOML.parse(io) + if !haskey(project, "deps") + project["deps"] = Dict{String,Any}() + end + return project +end +function read_project(file::String) + isfile(file) ? open(read_project, file) : read_project(devnull) +end + +function read_manifest(io::IO) + manifest = TOML.parse(io) + for (name, infos) in manifest, info in infos + haskey(info, "deps") || continue + info["deps"] isa AbstractVector || continue + for dep in info["deps"] + length(manifest[dep]) == 1 || + error("ambiguious dependency for $name: $dep") + end + new_dict = Dict() + for d in info["deps"] + new_dict[d] = manifest[d][1]["uuid"] + end + info["deps"] = new_dict + end + return manifest +end +function read_manifest(file::String) + try isfile(file) ? open(read_manifest, file) : read_manifest(devnull) + catch err + err isa ErrorException && startswith(err.msg, "ambiguious dependency") || rethrow(err) + err.msg *= "In manifest file: $file" + rethrow(err) + end +end + + +######################################## +# Resolving packages from name or uuid # +######################################## +# Disambiguate name/uuid package specifications using project info. +function project_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + uuids = env.project["deps"] + names = Dict(uuid => name for (uuid, name) in uuids) + length(uuids) < length(names) && # TODO: handle this somehow? + @warn "duplicate UUID found in project file's [deps] section" + for pkg in pkgs + pkg.mode == PKGMODE_PROJECT || continue + if has_name(pkg) && !has_uuid(pkg) && pkg.name in keys(uuids) + pkg.uuid = UUID(uuids[pkg.name]) + end + if has_uuid(pkg) && !has_name(pkg) && pkg.uuid in keys(names) + pkg.name = names[pkg.uuid] + end + end + return pkgs +end + +# Disambiguate name/uuid package specifications using manifest info. +function manifest_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + uuids = Dict{String,Vector{String}}() + names = Dict{String,String}() + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") || continue + uuid = info["uuid"] + push!(get!(uuids, name, String[]), uuid) + names[uuid] = name # can be duplicate but doesn't matter + end + for pkg in pkgs + pkg.mode == PKGMODE_MANIFEST || continue + if has_name(pkg) && !has_uuid(pkg) && pkg.name in keys(uuids) + length(uuids[pkg.name]) == 1 && (pkg.uuid = UUID(uuids[pkg.name][1])) + end + if has_uuid(pkg) && !has_name(pkg) && pkg.uuid in keys(names) + pkg.name = names[pkg.uuid] + end + end + return pkgs +end + +# Disambiguate name/uuid package specifications using registry info. +function registry_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + # if there are no half-specified packages, return early + any(pkg->has_name(pkg) ⊻ has_uuid(pkg), pkgs) || return + # collect all names and uuids since we're looking anyway + names = [pkg.name for pkg in pkgs if has_name(pkg)] + uuids = [pkg.uuid for pkg in pkgs if has_uuid(pkg)] + find_registered!(env, names, uuids) + for pkg in pkgs + @assert has_name(pkg) || has_uuid(pkg) + if has_name(pkg) && !has_uuid(pkg) + pkg.uuid = registered_uuid(env, pkg.name) + end + if has_uuid(pkg) && !has_name(pkg) + pkg.name = registered_name(env, pkg.uuid) + end + end + return pkgs +end + +# Ensure that all packages are fully resolved +function ensure_resolved( + env::EnvCache, + pkgs::AbstractVector{PackageSpec}, + registry::Bool = false, +)::Nothing + unresolved = Dict{String,Vector{UUID}}() + for pkg in pkgs + has_uuid(pkg) && continue + uuids = UUID[] + for (name, infos) in env.manifest, info in infos + name == pkg.name && haskey(info, "uuid") || continue + uuid = UUID(info["uuid"]) + uuid in uuids || push!(uuids, uuid) + end + sort!(uuids, by=uuid->uuid.value) + unresolved[pkg.name] = uuids + end + isempty(unresolved) && return + msg = sprint() do io + println(io, "The following package names could not be resolved:") + for (name, uuids) in sort!(collect(unresolved), by=lowercase∘first) + print(io, " * $name (") + if length(uuids) == 0 + what = ["project", "manifest"] + registry && push!(what, "registry") + print(io, "not found in ") + join(io, what, ", ", " or ") + else + join(io, uuids, ", ", " or ") + print(io, " in manifest but not in project") + end + println(io, ")") + end + print(io, "Please specify by known `name=uuid`.") + end + cmderror(msg) +end + +const DEFAULT_REGISTRIES = Dict( + "Uncurated" => "https://github.com/JuliaRegistries/Uncurated.git" +) + +# Return paths of all registries in a depot +function registries(depot::String)::Vector{String} + d = joinpath(depot, "registries") + ispath(d) || return String[] + regs = filter!(readdir(d)) do r + isfile(joinpath(d, r, "Registry.toml")) + end + String[joinpath(depot, "registries", r) for r in regs] +end + +# Return paths of all registries in all depots +function registries()::Vector{String} + isempty(depots()) && return String[] + user_regs = abspath(depots()[1], "registries") + if !ispath(user_regs) + mkpath(user_regs) + @info "Cloning default registries into $user_regs" + for (reg, url) in DEFAULT_REGISTRIES + @info " [+] $reg = $(repr(url))" + path = joinpath(user_regs, reg) + LibGit2.clone(url, path) + end + end + return [r for d in depots() for r in registries(d)] +end + +const line_re = r""" + ^ \s* + ([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) + \s* = \s* \{ + \s* name \s* = \s* "([^"]*)" \s*, + \s* path \s* = \s* "([^"]*)" \s*,? + \s* \} \s* $ +"""x + +# Lookup package names & uuids in a single pass through registries +function find_registered!( + env::EnvCache, + names::Vector{String}, + uuids::Vector{UUID} = UUID[]; + force::Bool = false, +)::Nothing + # only look if there's something new to see (or force == true) + names = filter(name->!haskey(env.uuids, name), names) + uuids = filter(uuid->!haskey(env.paths, uuid), uuids) + !force && isempty(names) && isempty(uuids) && return + + # since we're looking anyway, look for everything + save(name::String) = + name in names || haskey(env.uuids, name) || push!(names, name) + save(uuid::UUID) = + uuid in uuids || haskey(env.paths, uuid) || push!(uuids, uuid) + + # lookup any dependency in the project file + for (name, uuid) in env.project["deps"] + save(name); save(UUID(uuid)) + end + # lookup anything mentioned in the manifest file + for (name, infos) in env.manifest, info in infos + save(name) + haskey(info, "uuid") && save(UUID(info["uuid"])) + haskey(info, "deps") || continue + for (n, u) in info["deps"] + save(n); save(UUID(u)) + end + end + # if there's still nothing to look for, return early + isempty(names) && isempty(uuids) && return + + # build regexs for names and uuids + uuid_re = sprint() do io + if !isempty(uuids) + print(io, raw"^( ") + for (i, uuid) in enumerate(uuids) + 1 < i && print(io, " | ") + print(io, raw"\Q", uuid, raw"\E") + end + print(io, raw" )\b") + end + end + name_re = sprint() do io + if !isempty(names) + print(io, raw"\bname \s* = \s* \"( ") + for (i, name) in enumerate(names) + 1 < i && print(io, " | ") + print(io, raw"\Q", name, raw"\E") + end + print(io, raw" )\"") + end + end + regex = if !isempty(uuids) && !isempty(names) + Regex("( $uuid_re | $name_re )", "x") + elseif !isempty(uuids) + Regex(uuid_re, "x") + elseif !isempty(names) + Regex(name_re, "x") + else + error("this should not happen") + end + + # initialize env entries for names and uuids + for name in names; env.uuids[name] = UUID[]; end + for uuid in uuids; env.paths[uuid] = String[]; end + # note: empty vectors will be left for names & uuids that aren't found + + # search through all registries + for registry in registries() + open(joinpath(registry, "Registry.toml")) do io + # skip forward until [packages] section + for line in eachline(io) + contains(line, r"^ \s* \[ \s* packages \s* \] \s* $"x) && break + end + # find lines with uuid or name we're looking for + for line in eachline(io) + contains(line,regex) || continue + m = match(line_re, line) + m == nothing && + error("misformatted registry.toml package entry: $line") + uuid = UUID(m.captures[1]) + name = Base.unescape_string(m.captures[2]) + path = abspath(registry, Base.unescape_string(m.captures[3])) + push!(get!(env.uuids, name, typeof(uuid)[]), uuid) + push!(get!(env.paths, uuid, typeof(path)[]), path) + end + end + end +end + +find_registered!(env::EnvCache, uuids::Vector{UUID}; force::Bool=false)::Nothing = + find_registered!(env, String[], uuids, force=force) + +# Lookup all packages in project & manifest files +find_registered!(env::EnvCache)::Nothing = + find_registered!(env, String[], UUID[], force=true) + +# Get registered uuids associated with a package name +function registered_uuids(env::EnvCache, name::String)::Vector{UUID} + find_registered!(env, [name], UUID[]) + return unique(env.uuids[name]) +end + +# Get registered paths associated with a package uuid +function registered_paths(env::EnvCache, uuid::UUID)::Vector{String} + find_registered!(env, String[], [uuid]) + return env.paths[uuid] +end + +#Get registered names associated with a package uuid +function registered_names(env::EnvCache, uuid::UUID)::Vector{String} + find_registered!(env, String[], [uuid]) + String[n for (n, uuids) in env.uuids for u in uuids if u == uuid] +end + +# Determine a single UUID for a given name, prompting if needed +function registered_uuid(env::EnvCache, name::String)::UUID + uuids = registered_uuids(env, name) + length(uuids) == 0 && return UUID(zero(UInt128)) + choices::Vector{String} = [] + choices_cache::Vector{Tuple{UUID, String}} = [] + for uuid in uuids + values = registered_info(env, uuid, "repo") + for value in values + depot = "(unknown)" + for d in depots() + r = joinpath(d, "registries") + startswith(value[1], r) || continue + depot = split(relpath(value[1], r), Base.Filesystem.path_separator_re)[1] + break + end + push!(choices, "Registry: $depot - Path: $(value[2])") + push!(choices_cache, (uuid, value[1])) + end + end + length(choices_cache) == 1 && return choices_cache[1][1] + # prompt for which UUID was intended: + menu = RadioMenu(choices) + choice = request("There are multiple registered `$name` packages, choose one:", menu) + choice == -1 && return UUID(zero(UInt128)) + env.paths[choices_cache[choice][1]] = [choices_cache[choice][2]] + return choices_cache[choice][1] +end + +# Determine current name for a given package UUID +function registered_name(env::EnvCache, uuid::UUID)::String + names = registered_names(env, uuid) + length(names) == 0 && return "" + length(names) == 1 && return names[1] + values = registered_info(env, uuid, "name") + name = nothing + for value in values + name == nothing && (name = value[2]) + name != value[2] && cmderror("package `$uuid` has multiple registered name values: $name, $(value[2])") + end + return name +end + +# Return most current package info for a registered UUID +function registered_info(env::EnvCache, uuid::UUID, key::String) + paths = env.paths[uuid] + isempty(paths) && cmderror("`$uuid` is not registered") + values = [] + for path in paths + info = parse_toml(path, "Package.toml") + value = get(info, key, nothing) + push!(values, (path, value)) + end + return values +end + +# Find package by UUID in the manifest file +function manifest_info(env::EnvCache, uuid::UUID)::Union{Dict{String,Any},Nothing} + uuid in values(env.uuids) || find_registered!(env, [uuid]) + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") && uuid == UUID(info["uuid"]) || continue + return merge!(Dict{String,Any}("name" => name), info) + end + return nothing +end + +# Give a short path string representation +function pathrepr(env::EnvCache, path::String, base::String=pwd()) + path = abspath(base, path) + if env.git != nothing + repo = LibGit2.path(env.git) + if startswith(base, repo) + # we're in the repo => path relative to pwd() + path = relpath(path, base) + elseif startswith(path, repo) + # we're not in repo but path is => path relative to repo + path = relpath(path, repo) + end + end + if !Sys.iswindows() && isabspath(path) + home = joinpath(homedir(), "") + if startswith(path, home) + path = joinpath("~", path[nextind(path, lastindex(home)):end]) + end + end + return repr(path) +end + + +########### +# Context # +########### +function gather_stdlib_uuids() + stdlibs = Dict{UUID, String}() + stdlib_dir = joinpath(Sys.BINDIR, "..", "share", "julia", "site", "v$(VERSION.major).$(VERSION.minor)") + for stdlib in readdir(stdlib_dir) + projfile = joinpath(stdlib_dir, stdlib, "Project.toml") + if isfile(projfile) + proj = TOML.parsefile(joinpath(stdlib_dir, stdlib, "Project.toml")) + if haskey(proj, "uuid") + stdlibs[UUID(proj["uuid"])] = stdlib + end + end + end + return stdlibs +end + +# ENV variables to set some of these defaults? +Base.@kwdef mutable struct Context + env::EnvCache = EnvCache() + preview::Bool = false + use_libgit2_for_all_downloads::Bool = false + num_concurrent_downloads::Int = 8 + graph_verbose::Bool = false + stdlibs::Dict{UUID,String} = gather_stdlib_uuids() +end + +function Context!(ctx::Context; kwargs...) + for (k, v) in kwargs + setfield!(ctx, k, v) + end +end + +function write_env(ctx::Context; no_output=false) + env = ctx.env + # load old environment for comparison + old_env = EnvCache(env.env) + # update the project file + project = deepcopy(env.project) + isempty(project["deps"]) && delete!(project, "deps") + if !isempty(project) || ispath(env.project_file) + no_output || @info "Updating $(pathrepr(env, env.project_file))" + no_output || Pkg3.Display.print_project_diff(old_env, env) + if !ctx.preview + mkpath(dirname(env.project_file)) + open(env.project_file, "w") do io + TOML.print(io, project, sorted=true) + end + end + end + # update the manifest file + if !isempty(env.manifest) || ispath(env.manifest_file) + no_output || @info "Updating $(pathrepr(env, env.manifest_file))" + no_output || Pkg3.Display.print_manifest_diff(old_env, env) + manifest = deepcopy(env.manifest) + uniques = sort!(collect(keys(manifest)), by=lowercase) + filter!(name->length(manifest[name]) == 1, uniques) + uuids = Dict(name => UUID(manifest[name][1]["uuid"]) for name in uniques) + for (name, infos) in manifest, info in infos + haskey(info, "deps") || continue + deps = Dict{String,UUID}(n => UUID(u) for (n, u) in info["deps"]) + all(d in uniques && uuids[d] == u for (d, u) in deps) || continue + info["deps"] = sort!(collect(keys(deps))) + end + if !ctx.preview + open(env.manifest_file, "w") do io + TOML.print(io, manifest, sorted=true) + end + end + end +end + +end # module diff --git a/stdlib/Pkg3/src/precompile.jl b/stdlib/Pkg3/src/precompile.jl new file mode 100644 index 00000000000000..47cabb52db818a --- /dev/null +++ b/stdlib/Pkg3/src/precompile.jl @@ -0,0 +1,272 @@ +precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), Base.TTY,String}) +precompile(Tuple{typeof(Base.start), Tuple{Pkg3.Types.PackageSpec, Bool, String}}) +precompile(Tuple{typeof(Base.values), Base.Dict{String, String}}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{Base.UUID, Base.Dict{K, V} where V where K}, Base.Dict{String, Any}, Base.UUID}) +precompile(Tuple{typeof(Base.collect), Base.Generator{Base.ValueIterator{Base.Dict{String, String}}, Type{Base.UUID}}}) +precompile(Tuple{typeof(Base.mapfoldl), typeof(Base.identity), typeof(Base.union!), Base.Set{Base.UUID}, Tuple{Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}}) +precompile(Tuple{Type{NamedTuple{(:path,), Tuple{String}}}, Tuple{String}}) +precompile(Tuple{typeof(Base.getindex), Type{Any}, Type{Nothing}, Type{String}}) +precompile(Tuple{typeof(Base.map), Type{Base.UUID}, Base.ValueIterator{Base.Dict{String, Any}}}) +precompile(Tuple{typeof(Base.merge_types), Tuple{Symbol, Symbol, Symbol, Symbol}, Type{NamedTuple{(:bare, :checkout_branch, :remote_cb), Tuple{Int32, Base.Cstring, Ptr{Nothing}}}}, Type{NamedTuple{(:fetch_opts,), Tuple{LibGit2.FetchOptionsStruct}}}}) +precompile(Tuple{typeof(Base.isempty), Base.Dict{String, Base.UUID}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.GraphData, Symbol, Array{Array{Base.VersionNumber, 1}, 1}}) +precompile(Tuple{typeof(Base.get!), Base.Dict{Base.UUID, Array{String, 1}}, Base.UUID, Array{String, 1}}) +precompile(Tuple{typeof(Base.push!), Array{Union{Pkg3.Types.VersionRange, String, Pkg3.REPLMode.Command, Pkg3.REPLMode.Option}, 1}, String}) +precompile(Tuple{typeof(Base.collect_to_with_first!), Array{Base.UUID, 1}, Base.UUID, Base.Generator{Base.ValueIterator{Base.Dict{String, Any}}, Type{Base.UUID}}, Int64}) +precompile(Tuple{Type{Pkg3.Types.PackageSpec}, Base.SubString{String}, Pkg3.Types.VersionSpec}) +precompile(Tuple{typeof(Base.show_method_candidates), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, MethodError, Tuple{}}) +precompile(Tuple{Type{Pkg3.Display.VerInfo}, Nothing, String, Base.VersionNumber, Bool}) +precompile(Tuple{typeof(Base.collect), Base.Generator{Base.ValueIterator{Base.Dict{Any, Any}}, Type{Base.UUID}}}) +precompile(Tuple{Type{Pkg3.Pkg2.Reqs.Comment}, String}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{Base.VersionNumber, Base.SHA1}, Base.SHA1, Base.VersionNumber}) +precompile(Tuple{typeof(Base.map), Type{Base.UUID}, Base.ValueIterator{Base.Dict{Any, Any}}}) +precompile(Tuple{Type{NamedTuple{(:bare, :checkout_branch, :fetch_opts, :remote_cb), Tuple{Int32, Base.Cstring, LibGit2.FetchOptions, Ptr{Nothing}}}}, Tuple{Int32, Base.Cstring, LibGit2.FetchOptions, Ptr{Nothing}}}) +precompile(Tuple{Type{Expr}, Symbol, GlobalRef, String, Core.SSAValue, String, Core.SSAValue, String, Core.SlotNumber, String}) +precompile(Tuple{typeof(Base.arg_gen), Base.SubString{String}, Base.SubString{String}}) +precompile(Tuple{typeof(Base.start), Tuple{Nothing, String}}) +precompile(Tuple{typeof(Base.next), Tuple{Base.BitArray{1}}, Int64}) +precompile(Tuple{typeof(Base.length), Base.Dict{Base.UUID, Int64}}) +precompile(Tuple{Type{Pkg3.Types.VersionBound}, Int64, Int64}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.Graph, Symbol, Array{Int64, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Tuple{}}) +precompile(Tuple{typeof(Pkg3.TOML.insertpair), Pkg3.TOML.Parser{Base.IOStream}, Pkg3.TOML.Table, String, Array{String, 1}, Int64}) +precompile(Tuple{typeof(Base.in), String, Array{String, 1}}) +precompile(Tuple{typeof(Pkg3.TOML.SOME), Array{String, 1}}) +precompile(Tuple{typeof(Base.start), Base.Pair{String, Any}}) +precompile(Tuple{typeof(Base.union!), Base.Set{Base.UUID}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{typeof(Base.run), Base.Cmd, Tuple{Base.DevNullStream, Base.DevNullStream, Base.DevNullStream}}) +precompile(Tuple{Type{Pkg3.REPLMode.Command}, Pkg3.REPLMode.CommandKind, Base.SubString{String}}) +precompile(Tuple{typeof(Pkg3.Display.not_in_project), Base.Dict{String, Any}}) +precompile(Tuple{Type{Base.Generator{I, F} where F where I}, Type{Base.UUID}, Base.ValueIterator{Base.Dict{Any, Any}}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.Graph, Symbol, Array{Array{Int64, 1}, 1}}) +precompile(Tuple{typeof(Base.get!), Base.Dict{String, Any}, String, Array{Base.Dict{String, Any}, 1}}) +precompile(Tuple{typeof(Base.values), Base.Dict{String, Any}}) +precompile(Tuple{getfield(Base, Symbol("#kw##with_output_color")), NamedTuple{(:bold,), Tuple{Bool}}, typeof(Base.with_output_color), typeof(Base.print), Symbol, Base.IOStream, String}) +precompile(Tuple{Type{Base.Generator{I, F} where F where I}, Type{Base.UUID}, Base.ValueIterator{Base.Dict{String, String}}}) +precompile(Tuple{typeof(Pkg3.Display.print_diff), Base.TTY, Array{Pkg3.Display.DiffEntry, 1}}) +precompile(Tuple{typeof(Pkg3.Operations.install_archive), Array{String, 1}, Base.VersionNumber, String}) +precompile(Tuple{typeof(Base.start), Tuple{typeof(Base.getindex), Array{Any, 1}}}) +precompile(Tuple{typeof(Base.collect), Base.Generator{Array{Any, 1}, typeof(Pkg3.TOML.table2dict)}}) +precompile(Tuple{typeof(Base.isempty), Base.Dict{String, Any}}) +precompile(Tuple{Type{NamedTuple{(:env,), Tuple{Pkg3.Types.EnvCache}}}, Tuple{Pkg3.Types.EnvCache}}) +precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:bare, :checkout_branch, :fetch_opts, :remote_cb), Tuple{Int32, Base.Cstring, LibGit2.FetchOptions, Ptr{Nothing}}}, Type{LibGit2.CloneOptions}}) +precompile(Tuple{typeof(Base.getproperty), Pkg3.Pkg2.Pkg2Types.VersionSet, Symbol}) +precompile(Tuple{typeof(Pkg3.API.rm), String}) +precompile(Tuple{Type{NamedTuple{(:callbacks,), Tuple{LibGit2.RemoteCallbacks}}}, Tuple{LibGit2.RemoteCallbacks}}) +precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, TypeVar}) +precompile(Tuple{getfield(LibGit2, Symbol("#kw##clone")), NamedTuple{(:branch,), Tuple{String}}, typeof(LibGit2.clone), String, String}) +precompile(Tuple{typeof(Base.promote_eltype), Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID,Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Base.UUID, Pkg3.Types.VersionSpec}) +precompile(Tuple{typeof(Base.haskey), Base.Dict{String, Pkg3.Types.VersionSpec}, String}) +precompile(Tuple{typeof(Base.start), Array{Base.UUID, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Type{Union{}}}) +precompile(Tuple{typeof(Base.next), Base.Channel{Any}, Base.ChannelIterState{Any}}) +precompile(Tuple{typeof(Base.merge_names), Tuple{Symbol, Symbol, Symbol}, Tuple{Symbol}}) +precompile(Tuple{typeof(Base.getindex), Base.Dict{Any, Any}, Char}) +precompile(Tuple{typeof(Base.next), Array{Base.Dict{String, Any}, 1}, Int64}) +precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Symbol, TypeVar}) +precompile(Tuple{Type{Pkg3.Types.PackageSpec}, Base.SubString{String}}) +precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol, Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Type{Base.LinRange{T} where T}}) +precompile(Tuple{typeof(Base.promote_eltype), Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID,Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:prompt_prefix, :prompt_suffix, :sticky), Tuple{String, String, Bool}}, Type{REPL.LineEdit.Prompt}, String}) +precompile(Tuple{getfield(Pkg3.TOML, Symbol("#kw##_print")), NamedTuple{(:sorted,), Tuple{Bool}}, typeof(Pkg3.TOML._print), Base.IOStream, Base.Dict{String, Any}, Array{String, 1}}) +precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), Base.IOStream, String}) +precompile(Tuple{typeof(Base.deepcopy), Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol, Symbol, Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) +precompile(Tuple{typeof(Base.length), Array{Base.Dict{Base.VersionNumber, Int64}, 1}}) +precompile(Tuple{typeof(Base.show_tuple_as_call), Base.IOContext{Base.IOStream}, Symbol, Type{Tuple{typeof(Pkg3.Operations.build_versions), Pkg3.Types.Context, Array{Base.UUID, 1}}}}) +precompile(Tuple{typeof(Base.empty), Base.Dict{Union{}, Union{}}, Type{String}, Type{Base.UUID}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Type{Union{}}}) +precompile(Tuple{Type{Expr}, Symbol, GlobalRef, QuoteNode, QuoteNode, QuoteNode, QuoteNode, QuoteNode, QuoteNode, QuoteNode}) +precompile(Tuple{typeof(Base.isempty), Base.Dict{Base.UUID, Int64}}) +precompile(Tuple{typeof(Pkg3.TOML.insertpair), Pkg3.TOML.Parser{Base.IOStream}, Pkg3.TOML.Table, String, String, Int64}) +precompile(Tuple{typeof(Base.length), Base.Dict{String, String}}) +precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) +precompile(Tuple{typeof(Base.collect), Type{Any}, Base.Generator{Tuple{Nothing, String}, typeof(Core.Typeof)}}) +precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Pkg3.Types.PackageSpec, Bool, String}}) +precompile(Tuple{typeof(Base.getindex), Base.BitArray{2}, Base.BitArray{1}, Base.BitArray{1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Core.TypeName}) +precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) +precompile(Tuple{typeof(Base.union), Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{typeof(Base.length), Array{Array{Base.VersionNumber, 1}, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Type{Union{Base.Slice{T} where T<:(Base.AbstractUnitRange{T} where T), Base.UnitRange{T} where T<:Real}}}) +precompile(Tuple{typeof(Base.in), String, Base.KeySet{String, Base.Dict{String, Any}}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.GraphData, Symbol, Base.Dict{Base.UUID, Int64}}) +precompile(Tuple{typeof(Base.ident_cmp), Tuple{String}, Tuple{}}) +precompile(Tuple{typeof(Base.deepcopy_internal), Base.Dict{String, String}, Base.IdDict{Any, Any}}) +precompile(Tuple{Type{Base.Generator{I, F} where F where I}, typeof(Core.Typeof), Tuple{Nothing, String}}) +precompile(Tuple{typeof(Base.map), Type{Base.UUID}, Base.ValueIterator{Base.Dict{String, String}}}) +precompile(Tuple{typeof(Base.empty), Base.Dict{Union{}, Union{}}, Type{String}, Type{String}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Bool}) +precompile(Tuple{typeof(Pkg3.Display.name_ver_info), Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base.empty), Base.Dict{Union{}, Union{}}, Type{Base.UUID}, Type{Int64}}) +precompile(Tuple{typeof(Base.getindex), Type{Pkg3.Types.VersionRange}, Pkg3.Pkg2.Pkg2Types.VersionInterval}) +precompile(Tuple{typeof(Base.start), Array{Base.Dict{String, Any}, 1}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.GraphData, Symbol, Array{Base.UUID, 1}}) +precompile(Tuple{typeof(Base.promote_eltype), Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{typeof(Base.done), Base.Channel{Any}, Base.ChannelIterState{Any}}) +precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:color,), Tuple{Symbol}}, typeof(Base.printstyled), Base.IOContext{Base.IOStream}, String}) +precompile(Tuple{typeof(Pkg3.Display.in_project), Base.Dict{String, Any}}) +precompile(Tuple{typeof(REPL.LineEdit.setup_search_keymap), REPL.REPLHistoryProvider}) +precompile(Tuple{typeof(Base.foldl), typeof(Base.union!), Base.Set{Base.UUID}, Tuple{Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}}) +precompile(Tuple{typeof(Base._array_for), Type{Base.BitArray{2}}, Base.UnitRange{Int64}, Base.HasShape{1}}) +precompile(Tuple{typeof(Base.close), LibGit2.GitRepo}) +precompile(Tuple{typeof(Base.promote_eltype), Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}) +precompile(Tuple{typeof(REPL.LineEdit.setup_prefix_keymap), REPL.REPLHistoryProvider, REPL.LineEdit.Prompt}) +precompile(Tuple{typeof(Base.collect_to_with_first!), Array{Base.UUID, 1}, Base.UUID, Base.Generator{Base.ValueIterator{Base.Dict{Any, Any}}, Type{Base.UUID}}, Int64}) +precompile(Tuple{typeof(Base.mapfoldl_impl), typeof(Base.identity), typeof(Base.union!), Base.Set{Base.UUID}, Tuple{Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.Fixed}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID,Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}, Base.KeySet{Base.UUID, Base.Dict{Base.UUID, Pkg3.Types.VersionSpec}}}, Int64}) +precompile(Tuple{typeof(Base.indexed_next), Tuple{typeof(Base.getindex), Array{Any, 1}}, Int64, Int64}) +precompile(Tuple{typeof(Base.keys), Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base._array_for), Type{Base.UUID}, Base.ValueIterator{Base.Dict{Any, Any}}, Base.HasLength}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{String, Any}, Array{Any, 1}, String}) +precompile(Tuple{typeof(Base._compute_eltype), Type{Tuple{Int32, Base.Cstring, Ptr{Nothing}}}}) +precompile(Tuple{typeof(Base.hash), Tuple{String, UInt64}, UInt64}) +precompile(Tuple{Type{Base.IOContext{IO_t} where IO_t<:IO}, Base.IOStream, Base.Pair{Symbol, Bool}}) +precompile(Tuple{typeof(Pkg3.API.build)}) +precompile(Tuple{typeof(Base.merge_names), Tuple{Symbol}, Tuple{Symbol}}) +precompile(Tuple{getfield(Pkg3.API, Symbol("#kw##checkout")), NamedTuple{(:path,), Tuple{String}}, typeof(Pkg3.API.checkout), Pkg3.Types.Context, Array{Tuple{Pkg3.Types.PackageSpec, Union{Nothing, String}}, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Type{Union{Nothing, String}}}) +precompile(Tuple{typeof(Base.getindex), Array{Array{UInt64, 1}, 1}, Int64}) +precompile(Tuple{typeof(Base.merge!), Base.Dict{String, Base.UUID}, Base.Dict{Union{}, Union{}}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.ResolveLog, Symbol, Base.Dict{Base.UUID, Pkg3.GraphType.ResolveLogEntry}}) +precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, Type{Base.Pair{A, B} where B where A}}) +precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, Type{getfield(Pkg3.API, Symbol("#kw##checkout"))}, String}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.GraphData, Symbol, Array{Int64, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Type{Pkg3.Types.Context}}) +precompile(Tuple{typeof(Base.merge!), Base.Dict{String, String}, Base.Dict{Union{}, Union{}}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Tuple{}}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{String, Any}, Array{Base.Dict{String, Any}, 1}, String}) +precompile(Tuple{typeof(Base.getindex), Base.Dict{String, Pkg3.REPLMode.CommandKind}, Base.SubString{String}}) +precompile(Tuple{getfield(Pkg3.TOML, Symbol("#kw##print")), NamedTuple{(:sorted,), Tuple{Bool}}, typeof(Pkg3.TOML.print), Base.IOStream, Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Pkg3.Types.PackageSpec, String}}) +precompile(Tuple{typeof(Base.length), Array{Array{Base.BitArray{2}, 1}, 1}}) +precompile(Tuple{typeof(Base.identity), Char}) +precompile(Tuple{typeof(Base.promote_typejoin), Type{Int32}, Type{Base.Cstring}}) +precompile(Tuple{typeof(Base.length), Array{Array{Int64, 1}, 1}}) +precompile(Tuple{typeof(Base.indexed_next), Tuple{Pkg3.Types.PackageSpec, Bool, String}, Int64, Int64}) +precompile(Tuple{typeof(Base.values), Base.Dict{Any, Any}}) +precompile(Tuple{getfield(Base, Symbol("#kw##sort!")), NamedTuple{(:by,), Tuple{typeof(Base.Unicode.lowercase)}}, typeof(Base.sort!), Array{String, 1}}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.Graph, Symbol, Array{Array{Base.BitArray{2}, 1}, 1}}) +precompile(Tuple{typeof(Base.typesof), Nothing, String}) +precompile(Tuple{Type{Pkg3.Types.PackageSpec}, String, Base.UUID}) +precompile(Tuple{typeof(Base.spawn_opts_inherit), Tuple{Base.DevNullStream, Base.DevNullStream, Base.DevNullStream}}) +precompile(Tuple{typeof(Pkg3.REPLMode.create_mode), REPL.LineEditREPL, REPL.LineEdit.Prompt}) +precompile(Tuple{typeof(Base.unescape_string), Base.SubString{String}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Tuple{Symbol}}) +precompile(Tuple{typeof(Base.start), Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) +precompile(Tuple{Type{Base.Generator{I, F} where F where I}, Type{Base.UUID}, Base.ValueIterator{Base.Dict{String, Any}}}) +precompile(Tuple{typeof(Base.push!), Array{Pkg3.Pkg2.Reqs.Line, 1}, Pkg3.Pkg2.Reqs.Requirement}) +precompile(Tuple{typeof(Base._array_for), Type{Base.UUID}, Base.ValueIterator{Base.Dict{String, Any}}, Base.HasLength}) +precompile(Tuple{typeof(Base.start), Tuple{Pkg3.Types.PackageSpec, String}}) +precompile(Tuple{getfield(Base, Symbol("#kw##show_trace_entry")), NamedTuple{(:prefix,), Tuple{String}}, typeof(Base.show_trace_entry), Base.IOContext{Base.IOStream}, Base.StackTraces.StackFrame, Int64}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{String, Any}, Base.Dict{String, String}, String}) +precompile(Tuple{getfield(Pkg3.TOML, Symbol("#kw##printvalue")), NamedTuple{(:sorted,), Tuple{Bool}}, typeof(Pkg3.TOML.printvalue), Base.IOStream,Array{String, 1}}) +precompile(Tuple{typeof(Base.isempty), Array{Base.Dict{String, Any}, 1}}) +precompile(Tuple{typeof(Pkg3.Display.manifest_diff), Base.Dict{String, Any}, Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base.length), Base.Dict{String, Any}}) +precompile(Tuple{typeof(Base.promote_typejoin), Type{Union{}}, Type{Int32}}) +precompile(Tuple{typeof(Base.push!), Array{Pkg3.Pkg2.Reqs.Line, 1}, Pkg3.Pkg2.Reqs.Comment}) +precompile(Tuple{typeof(Base.start), Tuple{Base.BitArray{1}}}) +precompile(Tuple{Type{Pkg3.Types.VersionSpec}, String}) +precompile(Tuple{typeof(Base.print), Base.IOContext{Base.IOStream}, String, Type{Pkg3.Types.Context}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.IOStream}, Int64}) +precompile(Tuple{typeof(Base.merge_types), Tuple{Symbol, Symbol}, Type{NamedTuple{(:credentials,), Tuple{Ptr{Nothing}}}}, Type{NamedTuple{(:payload,), Tuple{Ptr{Nothing}}}}}) +precompile(Tuple{typeof(Base.collect), Base.KeySet{String, Base.Dict{String, Any}}}) +precompile(Tuple{Type{NamedTuple{(:branch,), Tuple{String}}}, Tuple{String}}) +precompile(Tuple{Type{NamedTuple{(:prompt_prefix, :prompt_suffix, :sticky), Tuple{String, String, Bool}}}, Tuple{String, String, Bool}}) +precompile(Tuple{Pkg3.Display.InProject{Base.Dict{String, Any}}, String, Base.Dict{String, Any}}) +precompile(Tuple{Type{Pkg3.Display.VerInfo}, Base.SHA1, Nothing, Base.VersionNumber, Bool}) +precompile(Tuple{typeof(Base.join), Base.GenericIOBuffer{Array{UInt8, 1}}, Tuple{String}, Char}) +precompile(Tuple{Type{Pkg3.Pkg2.Reqs.Requirement}, String}) +precompile(Tuple{typeof(Base.ident_cmp), Tuple{}, Tuple{String}}) +precompile(Tuple{typeof(Base.length), Array{Base.Dict{Int64, Int64}, 1}}) +precompile(Tuple{getfield(Pkg3.TOML, Symbol("#kw##_print")), NamedTuple{(:sorted,), Tuple{Bool}}, typeof(Pkg3.TOML._print), Base.IOStream, Base.Dict{String, String}, Array{String, 1}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, TypeVar}) +precompile(Tuple{typeof(Base.cmd_gen), Tuple{Tuple{Base.Cmd}, Tuple{Base.SubString{String}}}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Tuple{}}) +precompile(Tuple{typeof(Base.vcat), Base.BitArray{1}, Base.BitArray{1}}) +precompile(Tuple{typeof(Base.get!), Base.Dict{String, Array{Base.UUID, 1}}, String, Array{Base.UUID, 1}}) +precompile(Tuple{typeof(Base.show_datatype), Base.IOContext{Base.IOStream}, Type{Pkg3.Types.Context}}) +precompile(Tuple{typeof(Base.delete!), Base.Set{Any}, Char}) +precompile(Tuple{typeof(Base.vcat), Base.BitArray{1}}) +precompile(Tuple{typeof(Base.:(∉)), Base.UUID, Array{Base.UUID, 1}}) +precompile(Tuple{typeof(Pkg3.API.add), String}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{String, Any}, Base.UUID, String}) +precompile(Tuple{typeof(Base.haskey), Base.Dict{String, Pkg3.REPLMode.CommandKind}, Base.SubString{String}}) +precompile(Tuple{typeof(Base.display_error), Base.IOStream, MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) +precompile(Tuple{typeof(REPL.eval), Module, Symbol}) +precompile(Tuple{getfield(Pkg3.TOML, Symbol("#kw##printvalue")), NamedTuple{(:sorted,), Tuple{Bool}}, typeof(Pkg3.TOML.printvalue), Base.IOStream,String}) +precompile(Tuple{typeof(Base.promote_typejoin), Type{Any}, Type{Ptr{Nothing}}}) +precompile(Tuple{Type{Pkg3.Types.VersionBound}, Int64, Int64, Int64}) +precompile(Tuple{getfield(Base, Symbol("#kw##with_output_color")), NamedTuple{(:bold,), Tuple{Bool}}, typeof(Base.with_output_color), typeof(Base.print), Symbol, Base.IOContext{Base.IOStream}, String}) +precompile(Tuple{typeof(Base.vcat), Base.BitArray{1}, Base.BitArray{1}, Base.BitArray{1}}) +precompile(Tuple{Type{Base.SHA1}, String}) +precompile(Tuple{typeof(Base.ident_cmp), Tuple{String}, Tuple{String}}) +precompile(Tuple{typeof(Base.get!), Base.Dict{String, Array{String, 1}}, String, Array{String, 1}}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:env,), Tuple{Pkg3.Types.EnvCache}}, Type{Pkg3.Types.Context}}) +precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol, Symbol, Symbol}, Tuple{Symbol}}) +precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Type{Union{}}}) +precompile(Tuple{typeof(REPL.LineEdit.fixup_keymaps!), Base.Dict{Char, Any}, Int64, Char, Nothing}) +precompile(Tuple{typeof(Base.push!), Base.Set{Any}, Char}) +precompile(Tuple{typeof(Base.:(!=)), String, Bool}) +precompile(Tuple{typeof(Base.setindex!), Base.Dict{String, Any}, Base.Dict{Any, Any}, String}) +precompile(Tuple{typeof(Base.:(!=)), Base.SubString{String}, Nothing}) +precompile(Tuple{Type{Pkg3.Types.PackageSpec}, String}) +precompile(Tuple{typeof(Base.hash), Tuple{String}, UInt64}) +precompile(Tuple{typeof(Base.print), Base.IOContext{Base.IOStream}, Type{Pkg3.Types.Context}}) +precompile(Tuple{typeof(REPL.send_to_backend), Symbol, REPL.REPLBackendRef}) +precompile(Tuple{typeof(Base.promote_type), Type{Base.UUID}, Type{Base.UUID}}) +precompile(Tuple{Type{Pkg3.Types.VersionBound}, Base.SubString{String}}) +precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:callbacks,), Tuple{LibGit2.RemoteCallbacks}}, Type{LibGit2.FetchOptions}}) +precompile(Tuple{typeof(Base.vcat), Base.BitArray{2}, Base.BitArray{2}}) +precompile(Tuple{typeof(Base.promote_typejoin), Type{Union{}}, Type{Base.UUID}}) +precompile(Tuple{typeof(Base.done), Array{Base.Dict{String, Any}, 1}, Int64}) +precompile(Tuple{typeof(Base.setproperty!), Pkg3.GraphType.GraphData, Symbol, Array{Base.Dict{Base.VersionNumber, Int64}, 1}}) +precompile(Tuple{typeof(Base.indexed_next), Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64, Int64}) +precompile(Tuple{typeof(Base.merge), Base.Dict{String, Any}, Base.Dict{String, Any}}) +precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Base.VersionNumber, Base.SHA1}) +precompile(Tuple{typeof(Base.collect), Base.Generator{Base.ValueIterator{Base.Dict{String, Any}}, Type{Base.UUID}}}) +precompile(Tuple{typeof(Base.start), Base.Pair{Any, Any}}) +precompile(Tuple{typeof(Base.deepcopy_internal), Array{Base.Dict{String, Any}, 1}, Base.IdDict{Any, Any}}) +precompile(Tuple{typeof(REPL.send_to_backend), Symbol, Base.Channel{Any}, Base.Channel{Any}}) +precompile(Tuple{typeof(Base.merge), Base.Dict{String, Any}, Base.Dict{String, String}}) +precompile(Tuple{typeof(Base.deepcopy_internal), Base.Dict{Any, Any}, Base.IdDict{Any, Any}}) +precompile(Tuple{Type{Base.Pair{A, B} where B where A}, String, Base.UUID}) +precompile(Tuple{typeof(Base.start), Base.Channel{Any}}) +precompile(Tuple{Type{Base.Generator{I, F} where F where I}, typeof(Pkg3.TOML.table2dict), Array{Any, 1}}) +precompile(Tuple{typeof(Base.Iterators.enumerate), Array{Base.UUID, 1}}) +precompile(Tuple{typeof(Base.similar), Array{Base.Dict{String, Any}, 1}}) +precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, String, Base.UUID, String}) +precompile(Tuple{typeof(Base.done), Tuple{Base.BitArray{1}}, Int64}) +precompile(Tuple{typeof(Base.merge!), Base.Dict{Base.UUID, Int64}, Base.Dict{Union{}, Union{}}}) +precompile(Tuple{typeof(Base.vcat), Base.BitArray{2}, Base.BitArray{2}, Base.BitArray{2}, Base.BitArray{2}}) +precompile(Tuple{typeof(Pkg3.Display.filter_manifest), Pkg3.Display.InProject{Base.Dict{String, Any}}, Base.Dict{String, Any}}) + +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_help!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}, REPL.LineEditREPL}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_status!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_add!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_rm!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_up!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_pin!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_free!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_checkout!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_test!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) +@assert precompile(Tuple{typeof(Pkg3.REPLMode.do_build!), Pkg3.Types.Context, Vector{Pkg3.REPLMode.Token}}) + +@assert precompile(Tuple{Type{Pkg3.GraphType.GraphData}, Dict{UUID,Set{VersionNumber}}, + Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + Dict{UUID,String}}) + +@assert precompile(Tuple{Type{Pkg3.GraphType.Graph},Dict{UUID,Set{VersionNumber}}, + Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + Dict{UUID,String}, + Requires, + Dict{UUID,Pkg3.Types.Fixed}, + Bool}) + +@assert precompile(Tuple{typeof(Pkg3.Resolve.simplify_graph!), Pkg3.GraphType.Graph, Set{Int}}) + diff --git a/stdlib/Pkg3/src/resolve/FieldValues.jl b/stdlib/Pkg3/src/resolve/FieldValues.jl new file mode 100644 index 00000000000000..abf3e2abd39e5d --- /dev/null +++ b/stdlib/Pkg3/src/resolve/FieldValues.jl @@ -0,0 +1,108 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module FieldValues + +using ...VersionWeights + +export FieldValue, Field, validmax, secondmax + +# FieldValue is a hierarchical numeric type with 5 levels. +# When summing two FieldValues, the levels are summed independently. +# When comparing them, lower levels take precedence. +# The levels are used as such: +# l0 : for hard constraints (dependencies and requirements) +# l1 : for favoring higher versions of the explicitly required +# packages +# l2 : for favoring higher versions of all other packages +# l3 : for favoring uninstallation of non-needed packages +# +struct FieldValue + l0::Int64 + l1::VersionWeight + l2::VersionWeight + l3::Int64 + FieldValue(l0::Integer = 0, + l1::VersionWeight = zero(VersionWeight), + l2::VersionWeight = zero(VersionWeight), + l3::Integer = 0) = new(l0, l1, l2, l3) +end + +# This isn't nice, but it's for debugging only anyway +function Base.show(io::IO, a::FieldValue) + print(io, a.l0) + a == FieldValue(a.l0) && return + print(io, ".", a.l1) + a == FieldValue(a.l0, a.l1) && return + print(io, ".", a.l2) + a == FieldValue(a.l0, a.l1, a.l2) && return + print(io, ".", a.l3) + return +end + +const Field = Vector{FieldValue} + +Base.zero(::Type{FieldValue}) = FieldValue() + +Base.typemin(::Type{FieldValue}) = (x=typemin(Int64); y=typemin(VersionWeight); FieldValue(x, y, y, x)) + +Base.:-(a::FieldValue, b::FieldValue) = FieldValue(a.l0-b.l0, a.l1-b.l1, a.l2-b.l2, a.l3-b.l3) +Base.:+(a::FieldValue, b::FieldValue) = FieldValue(a.l0+b.l0, a.l1+b.l1, a.l2+b.l2, a.l3+b.l3) + +function Base.isless(a::FieldValue, b::FieldValue) + a.l0 < b.l0 && return true + a.l0 > b.l0 && return false + c = cmp(a.l1, b.l1) + c < 0 && return true + c > 0 && return false + c = cmp(a.l2, b.l2) + c < 0 && return true + c > 0 && return false + a.l3 < b.l3 && return true + return false +end + +Base.:(==)(a::FieldValue, b::FieldValue) = + a.l0 == b.l0 && a.l1 == b.l1 && a.l2 == b.l2 && a.l3 == b.l3 + +Base.abs(a::FieldValue) = FieldValue(abs(a.l0), abs(a.l1), abs(a.l2), abs(a.l3)) + +Base.copy(a::FieldValue) = FieldValue(a.l0, copy(a.l1), copy(a.l2), a.l3) + +# if the maximum field has l0 < 0, it means that +# some hard constraint is being violated +validmax(a::FieldValue) = a.l0 >= 0 + +# like usual indmax, but favors the highest indices +# in case of a tie +function Base.indmax(f::Field) + m = typemin(FieldValue) + mi = 0 + for j = length(f):-1:1 + if f[j] > m + m = f[j] + mi = j + end + end + @assert mi != 0 + return mi +end + +# secondmax returns the (normalized) value of the second maximum in a +# field. It's used to determine the most polarized field. +function secondmax(f::Field, msk::BitVector = trues(length(f))) + m = typemin(FieldValue) + m2 = typemin(FieldValue) + for i = 1:length(f) + msk[i] || continue + a = f[i] + if a > m + m2 = m + m = a + elseif a > m2 + m2 = a + end + end + return m2 - m +end + +end diff --git a/stdlib/Pkg3/src/resolve/MaxSum.jl b/stdlib/Pkg3/src/resolve/MaxSum.jl new file mode 100644 index 00000000000000..59cb149ced555e --- /dev/null +++ b/stdlib/Pkg3/src/resolve/MaxSum.jl @@ -0,0 +1,482 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module MaxSum + +using Random + +include("FieldValues.jl") + +using .FieldValues, ..VersionWeights, ...Types, ...GraphType + +export UnsatError, Messages, maxsum + +# An exception type used internally to signal that an unsatisfiable +# constraint was detected +struct UnsatError <: Exception + p0::Int +end + +# Some parameters to drive the decimation process +mutable struct MaxSumParams + dec_interval # number of iterations between decimations + dec_fraction # fraction of nodes to decimate at every decimation + # step + + function MaxSumParams() + accuracy = parse(Int, get(ENV, "JULIA_PKGRESOLVE_ACCURACY", "1")) + accuracy > 0 || error("JULIA_PKGRESOLVE_ACCURACY must be > 0") + dec_interval = accuracy * 5 + dec_fraction = 0.05 / accuracy + return new(dec_interval, dec_fraction) + end +end + +# Messages has the cavity messages and the total fields, and +# gets updated iteratively (and occasionally decimated) until +# convergence +mutable struct Messages + # cavity incoming messages: for each package p0, + # for each neighbor p1 of p0, + # msg[p0][p1] is a vector of length spp[p0] + # messages are normalized (i.e. the max is always 0) + msg::Vector{Vector{Field}} + + # overall fields: for each package p0, + # fld[p0] is a vector of length spp[p0] + # fields are not normalized + fld::Vector{Field} + + # backup of the initial value of fld, to be used when resetting + initial_fld::Vector{Field} + + function Messages(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gconstr = graph.gconstr + req_inds = graph.req_inds + ignored = graph.ignored + pvers = graph.data.pvers + pdict = graph.data.pdict + + ## generate wveights (v0 == spp[p0] is the "uninstalled" state) + vweight = [[VersionWeight(v0 < spp[p0] ? pvers[p0][v0] : v"0") for v0 = 1:spp[p0]] for p0 = 1:np] + + # external fields: favor newest versions over older, and no-version over all; + # explicit requirements use level l1 instead of l2 + fv(p0, v0) = p0 ∈ req_inds ? + FieldValue(0, vweight[p0][v0], zero(VersionWeight), (v0==spp[p0])) : + FieldValue(0, zero(VersionWeight), vweight[p0][v0], (v0==spp[p0])) + fld = [[fv(p0, v0) for v0 = 1:spp[p0]] for p0 = 1:np] + + initial_fld = [copy(f0) for f0 in fld] + + # allocate cavity messages + msg = [[Field(uninitialized, spp[p0]) for j1 = 1:length(gadj[p0])] for p0 = 1:np] + + msgs = new(msg, fld, initial_fld) + + reset_messages!(msgs, graph) + + return msgs + end +end + +# enforce constraints and normalize fields; +# zero out all cavity messages +function reset_messages!(msgs::Messages, graph::Graph) + msg = msgs.msg + fld = msgs.fld + initial_fld = msgs.initial_fld + np = graph.np + spp = graph.spp + gconstr = graph.gconstr + ignored = graph.ignored + for p0 = 1:np + ignored[p0] && continue + map(m->fill!(m, zero(FieldValue)), msg[p0]) + copyto!(fld[p0], initial_fld[p0]) + gconstr0 = gconstr[p0] + for v0 = 1:spp[p0] + gconstr0[v0] || (fld[p0][v0] = FieldValue(-1)) + end + fld[p0] .-= maximum(fld[p0]) + end + return msgs +end + +mutable struct SolutionTrace + # the solution is built progressively by a decimation process + solution::Vector{Int} + num_nondecimated::Int + + best::Vector{Int} + staged::Union{Tuple{Int,Int},Nothing} + + function SolutionTrace(graph::Graph) + np = graph.np + solution = zeros(Int, np) + num_nondecimated = np + + best = zeros(Int, np) + staged = nothing + + return new(solution, num_nondecimated, best, staged) + end +end + +function update_solution!(strace::SolutionTrace, graph::Graph) + np = graph.np + ignored = graph.ignored + gconstr = graph.gconstr + solution = strace.solution + best = strace.best + nnd = np + fill!(solution, 0) + for p0 in findall(ignored) + s0 = findfirst(gconstr[p0]) + solution[p0] = s0 + nnd -= 1 + end + strace.num_nondecimated = nnd + if nnd ≤ sum(best .== 0) + copyto!(best, solution) + strace.staged = nothing + return true + else + return false + end +end + +# This is the core of the max-sum solver: +# for a given node p0 (i.e. a package) updates all +# input cavity messages and fields of its neighbors +function update!(p0::Int, graph::Graph, msgs::Messages) + gadj = graph.gadj + gmsk = graph.gmsk + adjdict = graph.adjdict + ignored = graph.ignored + spp = graph.spp + np = graph.np + msg = msgs.msg + fld = msgs.fld + + maxdiff = zero(FieldValue) + + gadj0 = gadj[p0] + msg0 = msg[p0] + fld0 = fld[p0] + spp0 = spp[p0] + adjdict0 = adjdict[p0] + + # iterate over all neighbors of p0 + for j0 in 1:length(gadj0) + + p1 = gadj0[j0] + ignored[p1] && continue + j1 = adjdict0[p1] + #@assert j0 == adjdict[p1][p0] + bm1 = gmsk[p1][j1] + spp1 = spp[p1] + msg1 = msg[p1] + + # compute the output cavity field p0->p1 + cavfld = fld0 - msg0[j0] + + # keep the old input cavity message p0->p1 + oldmsg = msg1[j1] + + # init the new message to minus infinity + newmsg = [FieldValue(-1) for v1 = 1:spp1] + + # compute the new message by passing cavfld + # through the constraint encoded in the bitmask + # (equivalent to: + # newmsg = [maximum(cavfld[bm1[:,v1]]) for v1 = 1:spp1] + # ) + for v1 = 1:spp1, v0 = 1:spp0 + bm1[v0, v1] || continue + newmsg[v1] = max(newmsg[v1], cavfld[v0]) + end + m = maximum(newmsg) + validmax(m) || throw(UnsatError(p0)) # No state available without violating some + # hard constraint + + # normalize the new message + newmsg .-= m + + diff = newmsg - oldmsg + maxdiff = max(maxdiff, maximum(abs.(diff))) + + # update the field of p1 + fld[p1] .+= diff + + # put the newly computed message in place + msg1[j1] = newmsg + end + return maxdiff +end + +# A simple shuffling machinery for the update order in iterate!() +# (wouldn't pass any random quality test but it's arguably enough) +mutable struct NodePerm + p::Vector{Int} + step::Int64 + NodePerm(np::Integer) = new(collect(1:np), 1) +end + +function Random.shuffle!(perm::NodePerm) + p = perm.p + for j = length(p):-1:2 + k = perm.step % j + 1 + p[j], p[k] = p[k], p[j] + perm.step += isodd(j) ? 1 : k + end + #@assert isperm(p) +end + +Base.start(perm::NodePerm) = start(perm.p) +Base.next(perm::NodePerm, x) = next(perm.p, x) +Base.done(perm::NodePerm, x) = done(perm.p, x) + +# Call update for all nodes (i.e. packages) in +# random order +function iterate!(graph::Graph, msgs::Messages, perm::NodePerm) + maxdiff = zero(FieldValue) + shuffle!(perm) + for p0 in perm + graph.ignored[p0] && continue + maxdiff0 = update!(p0, graph, msgs) + maxdiff = max(maxdiff, maxdiff0) + end + return maxdiff +end + +function decimate1!(p0::Int, graph::Graph, strace::SolutionTrace, msgs::Messages) + solution = strace.solution + fld = msgs.fld + adjdict = graph.adjdict + gmsk = graph.gmsk + gconstr = graph.gconstr + + @assert solution[p0] == 0 + @assert !graph.ignored[p0] + fld0 = fld[p0] + s0 = indmax(fld0) + # only do the decimation if it is consistent with + # the constraints... + gconstr[p0][s0] || return 0 + # ...and with the previously decimated nodes + for p1 in findall(solution .> 0) + haskey(adjdict[p0], p1) || continue + s1 = solution[p1] + j1 = adjdict[p0][p1] + gmsk[p1][j1][s0,s1] || return 0 + end + solution[p0] = s0 + strace.num_nondecimated -= 1 + return s0 +end + +function decimate!(graph::Graph, strace::SolutionTrace, msgs::Messages, n::Integer) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + fld = msgs.fld + + @assert n ≥ 1 + dtrace = Tuple{Int,Int}[] + dec = 0 + + fldorder = sort(findall(.!(ignored)), by=p0->secondmax(fld[p0], gconstr[p0])) + for p0 in fldorder + s0 = decimate1!(p0, graph, strace, msgs) + s0 == 0 && continue + push!(dtrace, (p0,s0)) + dec += 1 + dec == n && break + end + + return dtrace +end + +function clean_forbidden!(graph::Graph, msgs::Messages) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + fld = msgs.fld + affected = Tuple{Int,Int}[] + removed = 0 + + for p0 = 1:np + ignored[p0] && continue + fld0 = fld[p0] + gconstr0 = gconstr[p0] + for v0 in findall(gconstr0) + validmax(fld0[v0]) && continue + push!(affected, (p0,v0)) + removed += 1 + end + end + return affected +end + +# Iterative solver: run iterate!() until convergence +# (occasionally calling decimate()) +function maxsum(graph::Graph) + params = MaxSumParams() + + perm = NodePerm(graph.np) + strace = SolutionTrace(graph) + msgs = Messages(graph) + + push_snapshot!(graph) + # gconstr_sav = graph.gconstr + # ignored_sav = graph.ignored + ok = converge!(graph, msgs, strace, perm, params) + # @assert graph.gconstr ≡ gconstr_sav + # @assert graph.ignored ≡ ignored_sav + pop_snapshot!(graph) + if ok + @assert strace.best == strace.solution + @assert strace.num_nondecimated == 0 + @assert all(strace.solution .> 0) + @assert strace.staged ≡ nothing + else + @assert strace.staged ≢ nothing + end + return ok, strace.best, strace.staged +end + +function try_simplify_graph_soft!(graph, sources) + try + simplify_graph_soft!(graph, sources, log_events = false) + catch err + err isa ResolverError || rethrow(err) + return false + end + return true +end + +function converge!(graph::Graph, msgs::Messages, strace::SolutionTrace, perm::NodePerm, params::MaxSumParams) + is_best_sofar = update_solution!(strace, graph) + + # this is the base of the recursion: the case when + # the solver has succeeded in decimating everything + strace.num_nondecimated == 0 && return true + + reset_messages!(msgs, graph) + + # perform some maxsum iterations, then decimate one node. + # If failure happens during this process, we bail (return false) + it = 0 + for it = 1:params.dec_interval + local maxdiff::FieldValue + try + maxdiff = iterate!(graph, msgs, perm) + catch err + err isa UnsatError || rethrow(err) + if is_best_sofar + p0 = err.p0 + s0 = findlast(graph.gconstr[p0]) + strace.staged = (p0, s0) + end + return false + end + maxdiff == zero(FieldValue) && break + end + + # if maxsum has found some forbidden states, remove + # them and propagate the effect + affected = clean_forbidden!(graph, msgs) + + isempty(affected) && @goto decimate + + sources = Set{Int}() + for (p0,v0) in affected + graph.gconstr[p0][v0] = false + push!(sources, p0) + end + + if !try_simplify_graph_soft!(graph, sources) + # found an implicit contradiction + is_best_sofar && (strace.staged = first(affected)) + return false + end + return converge!(graph, msgs, strace, perm, params) + + @label decimate + + ndec = max(1, round(Int, params.dec_fraction * strace.num_nondecimated)) + dtrace = decimate!(graph, strace, msgs, ndec) + if isempty(dtrace) + # decimation has failed, all candidate states are forbidden + # (which shouldn't really happen, this is a failsafe) + if is_best_sofar + # pick the first decimation candidate + smx(p1) = secondmax(msgs.fld[p1], graph.gconstr[p1]) + p0 = reduce((p1,p2)->(smx(p1)≤smx(p2) ? p1 : p2), findall(.!(graph.ignored))) + s0 = indmax(fld[p0]) + strace.staged = dec_firstcandidate(graph, msgs) + end + return false + end + + while true + # decimation has succeeded, at least nominally. + # We need to propagate its effects and check for contradictions + + lentr = length(dtrace) + if lentr == 1 && is_best_sofar + strace.staged = dtrace[1] + end + + push_snapshot!(graph) + # info("setting dtrace=$dtrace") + for (p0,s0) in dtrace + @assert !graph.ignored[p0] + @assert graph.gconstr[p0][s0] + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][s0] = true + graph.ignored[p0] = true + end + + # if decimation has produced an implicit contradiction, backtrack + try_simplify_graph_soft!(graph, Set{Int}(first.(dtrace))) || @goto backtrack + + # otherwise, keep going... + converge!(graph, msgs, strace, perm, params) && (pop_snapshot!(graph); return true) + + @label backtrack + + # warn("reverting dtrace=$dtrace") + + # if we're here, the last decimation step has been proven to lead + # to an unsat situation at some point, we need to roll it back + + # revert the state of the constraints + pop_snapshot!(graph) + + lentr == 1 && break + # halve the dtrace + deleteat!(dtrace, ((lentr÷2)+1):lentr) + end + + @assert length(dtrace) == 1 + p0, s0 = dtrace[1] + + is_best_sofar && @assert strace.staged ≢ nothing + + # forbid the state used in the last attempt + # (note that we're working on the "entry" snapshot here!) + graph.gconstr[p0][s0] = false + # check if we have finished all available possibilities + any(graph.gconstr[p0]) || return false + # if neither the s0 state nor its negation are valid, give up + try_simplify_graph_soft!(graph, Set{Int}([p0])) || return false + + # keep going, with one possible state less... + return converge!(graph, msgs, strace, perm, params) +end + +end diff --git a/stdlib/Pkg3/src/resolve/VersionWeights.jl b/stdlib/Pkg3/src/resolve/VersionWeights.jl new file mode 100644 index 00000000000000..ceb1a11ad3b4c9 --- /dev/null +++ b/stdlib/Pkg3/src/resolve/VersionWeights.jl @@ -0,0 +1,57 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module VersionWeights + +export VersionWeight + +# The numeric type used to determine how the different +# versions of a package should be weighed +struct VersionWeight + major::Int64 + minor::Int64 + patch::Int64 +end +VersionWeight(major::Integer, minor::Integer) = VersionWeight(major, minor, 0) +VersionWeight(major::Integer) = VersionWeight(major, 0) +VersionWeight() = VersionWeight(0) +VersionWeight(vn::VersionNumber) = VersionWeight(vn.major, vn.minor, vn.patch) + +Base.zero(::Type{VersionWeight}) = VersionWeight() + +Base.typemin(::Type{VersionWeight}) = (x=typemin(Int64); VersionWeight(x, x, x)) + +Base.:(-)(a::VersionWeight, b::VersionWeight) = + VersionWeight(a.major-b.major, a.minor-b.minor, a.patch-b.patch) + +Base.:(+)(a::VersionWeight, b::VersionWeight) = + VersionWeight(a.major+b.major, a.minor+b.minor, a.patch+b.patch) + +Base.:(-)(a::VersionWeight) = + VersionWeight(-a.major, -a.minor, -a.patch) + +function Base.cmp(a::VersionWeight, b::VersionWeight) + c = cmp(a.major, b.major); c != 0 && return c + c = cmp(a.minor, b.minor); c != 0 && return c + return cmp(a.patch, b.patch) +end +Base.isless(a::VersionWeight, b::VersionWeight) = cmp(a,b) < 0 +Base.:(==)(a::VersionWeight, b::VersionWeight) = cmp(a,b) == 0 + +Base.abs(a::VersionWeight) = + VersionWeight(abs(a.major), abs(a.minor), abs(a.patch)) + +Base.copy(a::VersionWeight) = + VersionWeight(a.major, a.minor, a.patch) + +# This isn't nice, but it's for debugging only anyway +function Base.show(io::IO, a::VersionWeight) + print(io, "(", a.major) + a == VersionWeight(a.major) && @goto done + print(io, ".", a.minor) + a == VersionWeight(a.major, a.minor) && @goto done + print(io, ".", a.patch) + @label done + print(io, ")") +end + +end diff --git a/stdlib/Pkg3/test/NastyGenerator.jl b/stdlib/Pkg3/test/NastyGenerator.jl new file mode 100644 index 00000000000000..b1142e75c3e06b --- /dev/null +++ b/stdlib/Pkg3/test/NastyGenerator.jl @@ -0,0 +1,98 @@ +module NastyGenerator + +using Random + +pn(i) = "P$i" +randvers(k::Int) = VersionNumber(rand(0:k), rand(0:k), rand(0:k)) + +function randvspec(k::Int) + lb, ub = randvers(k), randvers(k) + if lb > ub + lb, ub = ub, lb + end + + slb = rand() < 0.1 ? "0" : string(lb) + sub = rand() < 0.1 ? "*" : string(ub) + + return "$slb-$sub" +end + +""" +Generates a random graph with 2 planted solutions (or quasi-solutions if sat==false). +With the right parameters, this is quite hard to solve for large sizes. +For added fun, the two planted solutions are cycles. +We want the solver to find the best of the two, of course. +This is an extremely unrealistic scenario and it's only intended to stress-test the solver. +Note that the "problematic" output assumes that all non-planted versions will be +uninstallable, which is only the case for some regimes of the parameters (e.g. large +enough d). +""" +function generate_nasty(n::Int, # size of planted solutions + m::Int; # size of the graph + k::Int = 10, # version number limit + q::Int = 10, # versions per package (upper bound) + d::Int = 10, # neighbors per package + seed::Integer = 32524, + sat::Bool = true # create a satisfiable problem? + ) + @assert m ≥ n + d ≤ m-1 || @warn "d=$d, should be ≤ m-1=$(m-1)" + + srand(seed) + + allvers = [sort(unique(randvers(k) for j = 1:q)) for i = 1:m] + + planted1 = [rand(2:length(allvers[i])) for i = 1:n] + + planted2 = [rand(1:(planted1[i]-1)) for i = 1:n] + + deps = [] + problematic = [] + + # random dependencies + for i = 1:m, j = 1:length(allvers[i]) + if i ≤ n && (planted1[i] == j || planted2[i] == j) + if j == planted1[i] + if i < n + push!(deps, [pn(i), allvers[i][j], pn(i+1), "$(allvers[i+1][planted1[i+1]])-*"]) + else + if !sat + push!(deps, [pn(i), allvers[i][j], pn(1), "0-$(allvers[1][planted2[1]])"]) + else + push!(deps, [pn(i), allvers[i][j], pn(1), "0-*"]) + end + end + else # j == planted2[i] + if i < n + push!(deps, [pn(i), allvers[i][j], pn(i+1), "0-$(allvers[i+1][planted2[i+1]])"]) + else + if !sat + push!(deps, [pn(i), allvers[i][j], pn(1), "$(allvers[1][planted1[1]])-*"]) + else + push!(deps, [pn(i), allvers[i][j], pn(1), "0-*"]) + end + end + end + sat || push!(problematic, [pn(i), allvers[i][j]]) + continue + end + + s = shuffle([1:(i-1); (i+1):m])[1:min(d,m-1)] + for a in s + push!(deps, [pn(i), allvers[i][j], pn(a), randvspec(k)]) + end + push!(problematic, [pn(i), allvers[i][j]]) + end + + reqs = [[pn(1), "*"]] + # reqs = [[pn(1), string(allvers[1][planted1[1]])]] + + # info("SOLUTION: $([(i,planted1[i]) for i = 1:n])") + # info("REST: $([(i,length(allvers[i])+1) for i = (n+1):m])") + + want = Dict(pn(i) => allvers[i][planted1[i]] for i = 1:n) + + return deps, reqs, want, problematic +end + +end # module diff --git a/stdlib/Pkg3/test/pkg.jl b/stdlib/Pkg3/test/pkg.jl new file mode 100644 index 00000000000000..b3be6fbdb69699 --- /dev/null +++ b/stdlib/Pkg3/test/pkg.jl @@ -0,0 +1,168 @@ +module OperationsTest + +import Random: randstring +import LibGit2 +using Test +using UUIDs + +using Pkg3 +using Pkg3.Types + +import Random: randstring +import LibGit2 + +function temp_pkg_dir(fn::Function) + local env_dir + local old_load_path + local old_depot_path + try + old_load_path = copy(LOAD_PATH) + old_depot_path = copy(DEPOT_PATH) + empty!(LOAD_PATH) + empty!(DEPOT_PATH) + mktempdir() do env_dir + mktempdir() do depot_dir + pushfirst!(LOAD_PATH, env_dir) + pushfirst!(DEPOT_PATH, depot_dir) + # Add the standard library paths back + vers = "v$(VERSION.major).$(VERSION.minor)" + push!(LOAD_PATH, abspath(Sys.BINDIR, "..", "local", "share", "julia", "site", vers)) + push!(LOAD_PATH, abspath(Sys.BINDIR, "..", "share", "julia", "site", vers)) + fn(env_dir) + end + end + finally + append!(LOAD_PATH, old_load_path) + append!(DEPOT_PATH, old_depot_path) + end +end + +const TEST_PKG = (name = "Example", uuid = UUID("7876af07-990d-54b4-ab0e-23690620f79a")) +isinstalled(pkg) = Base.locate_package(Base.PkgId(pkg.uuid, pkg.name)) !== nothing + +temp_pkg_dir() do project_path + + @testset "simple add and remove with preview" begin + Pkg3.init(project_path) + Pkg3.add(TEST_PKG.name; preview = true) + @test !isinstalled(TEST_PKG) + Pkg3.add(TEST_PKG.name) + @test isinstalled(TEST_PKG) + @eval import $(Symbol(TEST_PKG.name)) + Pkg3.rm(TEST_PKG.name; preview = true) + @test isinstalled(TEST_PKG) + Pkg3.rm(TEST_PKG.name) + @test !isinstalled(TEST_PKG) + end + + @testset "package with wrong UUID" begin + @test_throws ResolverError Pkg3.add(PackageSpec(TEST_PKG.name, UUID(UInt128(1)))) + end + + @testset "adding and upgrading different versions" begin + # VersionNumber + Pkg3.add(PackageSpec(TEST_PKG.name, v"0.3")) + @test Pkg3.installed()[TEST_PKG.name] == v"0.3" + Pkg3.add(PackageSpec(TEST_PKG.name, v"0.3.1")) + @test Pkg3.installed()[TEST_PKG.name] == v"0.3.1" + Pkg3.rm(TEST_PKG.name) + + # VersionRange + Pkg3.add(PackageSpec(TEST_PKG.name, VersionSpec(VersionRange("0.3.0-0.3.2")))) + @test Pkg3.installed()[TEST_PKG.name] == v"0.3.2" + Pkg3.up(; level = UpgradeLevel(:patch)) + @test Pkg3.installed()[TEST_PKG.name] == v"0.3.3" + Pkg3.up(; level = UpgradeLevel(:minor)) + @test Pkg3.installed()[TEST_PKG.name].minor != 3 + Pkg3.rm(TEST_PKG.name) + end + + @testset "testing" begin + # TODO: Check that preview = true doesn't actually execute the test + # TODO: Test-only dependencies + Pkg3.add(TEST_PKG.name) + Pkg3.test(TEST_PKG.name; coverage=true) + pkgdir = Base.locate_package(Base.PkgId(TEST_PKG.uuid, TEST_PKG.name)) + # No coverage files being generated? + @test_broken TEST_PKG.name * ".cov" in readdir(pkgdir) + Pkg3.rm(TEST_PKG.name) + end + + @testset "pinning / freeing" begin + Pkg3.add(TEST_PKG.name) + old_v = Pkg3.installed()[TEST_PKG.name] + Pkg3.pin(PackageSpec(TEST_PKG.name, v"0.2")) + @test Pkg3.installed()[TEST_PKG.name].minor == 2 + Pkg3.up(TEST_PKG.name) + @test Pkg3.installed()[TEST_PKG.name].minor == 2 + Pkg3.free(TEST_PKG.name) + Pkg3.up() + @test Pkg3.installed()[TEST_PKG.name] == old_v + Pkg3.rm(TEST_PKG.name) + end + + @testset "checking out / freeing" begin + Pkg3.add(TEST_PKG.name) + old_v = Pkg3.installed()[TEST_PKG.name] + Pkg3.rm(TEST_PKG.name) + mktempdir() do devdir + Pkg3.checkout(TEST_PKG.name; path = devdir) + @test isinstalled(TEST_PKG) + @test Pkg3.installed()[TEST_PKG.name] > old_v + test_pkg_main_file = joinpath(devdir, TEST_PKG.name, "src", TEST_PKG.name * ".jl") + @test isfile(test_pkg_main_file) + # Pkg3 #152 + write(test_pkg_main_file, + """ + module Example + export hello, domath + const example2path = joinpath(@__DIR__, "..", "deps", "deps.jl") + if !isfile(example2path) + error("Example is not installed correctly") + end + hello(who::String) = "Hello, \$who" + domath(x::Number) = x + 5 + end + """) + mkpath(joinpath(devdir, TEST_PKG.name, "deps")) + write(joinpath(devdir, TEST_PKG.name, "deps", "build.jl"), + """ + touch("deps.jl") + """ + ) + Pkg3.build(TEST_PKG.name) + @test isfile(joinpath(devdir, TEST_PKG.name, "deps", "deps.jl")) + Pkg3.test(TEST_PKG.name) + Pkg3.free(TEST_PKG.name) + @test Pkg3.installed()[TEST_PKG.name] == old_v + end + mktempdir() do tmp + withenv("JULIA_PKG_DEVDIR" => tmp) do + @test_throws CommandError Pkg3.checkout(TEST_PKG.name, "nonexisting_branch",) + end + end + end + + @testset "package name in resolver errors" begin + try + Pkg3.add([PackageSpec(TEST_PKG.name, VersionSpec(v"55"))]) + catch e + @test contains(sprint(showerror, e), TEST_PKG.name) + end + end + + @testset "check logging" begin + usage = Pkg3.TOML.parse(String(read(joinpath(Pkg3.logdir(), "manifest_usage.toml")))) + @test any(x -> startswith(x, joinpath(project_path, "Manifest.toml")), keys(usage)) + end + + @testset "adding nonexisting packages" begin + nonexisting_pkg = randstring(14) + @test_throws CommandError Pkg3.add(nonexisting_pkg) + @test_throws CommandError Pkg3.up(nonexisting_pkg) + end + + Pkg3.rm(TEST_PKG.name) +end + +end # module diff --git a/stdlib/Pkg3/test/resolve.jl b/stdlib/Pkg3/test/resolve.jl new file mode 100644 index 00000000000000..8af36dd41ec1ec --- /dev/null +++ b/stdlib/Pkg3/test/resolve.jl @@ -0,0 +1,589 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module ResolveTest + +using Test +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Types: VersionBound +using Pkg3.Resolve +using Pkg3.Resolve.VersionWeights +import Pkg3.Types: uuid5, uuid_package + +# print info, stats etc. +const VERBOSE = false + +# Check that VersionWeight keeps the same ordering as VersionNumber + +vlst = [ + v"0.0.0", + v"0.0.1", + v"0.1.0", + v"0.1.1", + v"1.0.0", + v"1.0.1", + v"1.1.0", + v"1.1.1" + ] + +for v1 in vlst, v2 in vlst + vw1 = VersionWeight(v1) + vw2 = VersionWeight(v2) + clt = v1 < v2 + @test clt == (vw1 < vw2) + ceq = v1 == v2 + @test ceq == (vw1 == vw2) +end + +# auxiliary functions +pkguuid(p::String) = uuid5(uuid_package, p) +function storeuuid(p::String, uuid_to_name::Dict{UUID,String}) + uuid = p == "julia" ? Types.uuid_julia : pkguuid(p) + if haskey(uuid_to_name, uuid) + @assert uuid_to_name[uuid] == p + else + uuid_to_name[uuid] = p + end + return uuid +end +wantuuids(want_data) = Dict{UUID,VersionNumber}(pkguuid(p) => v for (p,v) in want_data) + +function load_package_data_raw(T::Type, input::String) + toml = Types.TOML.parse(input) + data = Dict{VersionRange,Dict{String,T}}() + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + dict = get!(data, vr, Dict{String,T}()) + haskey(dict, key) && cmderror("$ver/$key is duplicated in $path") + dict[key] = T(value) + end + return data +end + +function gen_versionranges(dict::Dict{K,Set{VersionNumber}}, srtvers::Vector{VersionNumber}) where {K} + vranges = Dict{K,Vector{VersionRange}}() + for (vreq,vset) in dict + vranges[vreq] = VersionRange[] + while !isempty(vset) + vn0 = minimum(vset) + i = findfirst(equalto(vn0), srtvers) + @assert i ≠ 0 + pop!(vset, vn0) + vn1 = vn0 + pushed = false + j = i + 1 + while j ≤ length(srtvers) + vn = srtvers[j] + if vn ∈ vset + pop!(vset, vn) + vn1 = vn + j += 1 + else + # vn1 = srtvers[j-1] + push!(vranges[vreq], VersionRange(VersionBound(vn0),VersionBound(vn1))) + pushed = true + break + end + end + !pushed && push!(vranges[vreq], VersionRange(VersionBound(vn0),VersionBound(vn1))) + end + end + allvranges = unique(vcat(collect(values(vranges))...)) + return vranges, allvranges +end + +function graph_from_data(deps_data, uuid_to_name = Dict{UUID,String}(Types.uuid_julia=>"julia")) + uuid(p) = storeuuid(p, uuid_to_name) + # deps = DepsGraph(uuid_to_name) + fixed = Dict(Types.uuid_julia => Fixed(VERSION)) + all_versions = Dict{UUID,Set{VersionNumber}}(fp => Set([fx.version]) for (fp,fx) in fixed) + all_deps = Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}(fp => Dict(VersionRange(fx.version)=>Dict()) for (fp,fx) in fixed) + all_compat = Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}(fp => Dict(VersionRange(fx.version)=>Dict()) for (fp,fx) in fixed) + + deps = Dict{String,Dict{VersionNumber,Dict{String,VersionSpec}}}() + for d in deps_data + p, vn, r = d[1], d[2], d[3:end] + if !haskey(deps, p) + deps[p] = Dict{VersionNumber,Dict{String,VersionSpec}}() + end + if !haskey(deps[p], vn) + deps[p][vn] = Dict{String,VersionSpec}() + end + isempty(r) && continue + rp = r[1] + rvs = VersionSpec(r[2:end]) + deps[p][vn][rp] = rvs + end + for p in keys(deps) + u = uuid(p) + all_versions[u] = Set(keys(deps[p])) + srtvers = sort!(collect(keys(deps[p]))) + + deps_pkgs = Dict{String,Set{VersionNumber}}() + for (vn,vreq) in deps[p], rp in keys(vreq) + push!(get!(deps_pkgs, rp, Set{VersionNumber}()), vn) + end + vranges, allvranges = gen_versionranges(deps_pkgs, srtvers) + all_deps[u] = Dict{VersionRange,Dict{String,UUID}}(VersionRange()=>Dict{String,UUID}("julia"=>Types.uuid_julia)) + for vrng in allvranges + all_deps[u][vrng] = Dict{String,UUID}() + for (rp,vvr) in vranges + vrng ∈ vvr || continue + all_deps[u][vrng][rp] = uuid(rp) + end + end + + deps_reqs = Dict{Pair{String,VersionSpec},Set{VersionNumber}}() + for (vn,vreq) in deps[p], (rp,rvs) in vreq + push!(get!(deps_reqs, (rp=>rvs), Set{VersionNumber}()), vn) + end + vranges, allvranges = gen_versionranges(deps_reqs, srtvers) + all_compat[u] = Dict{VersionRange,Dict{String,VersionSpec}}() + for vrng in allvranges + all_compat[u][vrng] = Dict{String,VersionSpec}() + for (req,vvr) in vranges + vrng ∈ vvr || continue + rp,rvs = req + all_compat[u][vrng][rp] = rvs + end + end + end + return Graph(all_versions, all_deps, all_compat, uuid_to_name, Requires(), fixed, VERBOSE) +end +function reqs_from_data(reqs_data, graph::Graph) + reqs = Dict{UUID,VersionSpec}() + function uuid_check(p) + uuid = pkguuid(p) + @assert graph.data.uuid_to_name[uuid] == p + return uuid + end + for r in reqs_data + p = uuid_check(r[1]) + reqs[p] = VersionSpec(r[2:end]) + end + reqs +end +function sanity_tst(deps_data, expected_result; pkgs=[]) + if VERBOSE + println() + @info("sanity check") + # @show deps_data + # @show pkgs + end + graph = graph_from_data(deps_data) + id(p) = pkgID(pkguuid(p), graph) + result = sanity_check(graph, Set(pkguuid(p) for p in pkgs), VERBOSE) + + length(result) == length(expected_result) || return false + expected_result_uuid = [(id(p), vn) for (p,vn) in expected_result] + for r in result + r ∈ expected_result_uuid || return false + end + return true +end +sanity_tst(deps_data; kw...) = sanity_tst(deps_data, []; kw...) + +function resolve_tst(deps_data, reqs_data, want_data = nothing; clean_graph = false) + if VERBOSE + println() + @info("resolving") + # @show deps_data + # @show reqs_data + end + graph = graph_from_data(deps_data) + reqs = reqs_from_data(reqs_data, graph) + add_reqs!(graph, reqs) + simplify_graph!(graph, clean_graph = clean_graph) + want = resolve(graph) + return want == wantuuids(want_data) +end + +@testset "schemes" begin + VERBOSE && @info("SCHEME 1") + ## DEPENDENCY SCHEME 1: TWO PACKAGES, DAG + deps_data = Any[ + ["A", v"1", "B", "1-*"], + ["A", v"2", "B", "2-*"], + ["B", v"1"], + ["B", v"2"] + ] + + @test sanity_tst(deps_data) + @test sanity_tst(deps_data, pkgs=["A", "B"]) + @test sanity_tst(deps_data, pkgs=["B"]) + @test sanity_tst(deps_data, pkgs=["A"]) + + # require just B + reqs_data = Any[ + ["B", "*"] + ] + + want_data = Dict("B"=>v"2") + resolve_tst(deps_data, reqs_data, want_data) + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just A: must bring in B + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + + VERBOSE && @info("SCHEME 2") + ## DEPENDENCY SCHEME 2: TWO PACKAGES, CYCLIC + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1-*"], + ["B", v"1", "A", "2-*"], + ["B", v"2", "A", "1-*"] + ] + + @test sanity_tst(deps_data) + + # require just A + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just B, force lower version + reqs_data = Any[ + ["B", "1"] + ] + want_data = Dict("A"=>v"2", "B"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just A, force lower version + reqs_data = Any[ + ["A", "1"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + + VERBOSE && @info("SCHEME 3") + ## DEPENDENCY SCHEME 3: THREE PACKAGES, CYCLIC, TWO MUTUALLY EXCLUSIVE SOLUTIONS + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "1"], + ["C", v"1", "A", "1"], + ["C", v"2", "A", "2-*"] + ] + + @test sanity_tst(deps_data) + + # require just A (must choose solution which has the highest version for A) + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"2", "B"=>v"1", "C"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just B (must choose solution which has the highest version for B) + reqs_data = Any[ + ["B", "*"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just A, force lower version + reqs_data = Any[ + ["A", "1"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require A and C, incompatible versions + reqs_data = Any[ + ["A", "1"], + ["C", "2-*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + + VERBOSE && @info("SCHEME 4") + ## DEPENDENCY SCHEME 4: TWO PACKAGES, DAG, WITH TRIVIAL INCONSISTENCY + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["B", v"1"] + ] + + @test sanity_tst(deps_data, [("A", v"1")]) + @test sanity_tst(deps_data, pkgs=["B"]) + + # require B (must not give errors) + reqs_data = Any[ + ["B", "*"] + ] + want_data = Dict("B"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + + VERBOSE && @info("SCHEME 5") + ## DEPENDENCY SCHEME 5: THREE PACKAGES, DAG, WITH IMPLICIT INCONSISTENCY + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"1", "C", "2-*"], + # ["A", v"1", "julia", "10"], + ["A", v"2", "B", "1"], + ["A", v"2", "C", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "2-*"], + ["C", v"1"], + ["C", v"2"] + ] + + @test sanity_tst(deps_data, [("A", v"2")]) + @test sanity_tst(deps_data, pkgs=["B"]) + @test sanity_tst(deps_data, pkgs=["C"]) + + # require A, any version (must use the highest non-inconsistent) + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require A, force highest version (impossible) + reqs_data = Any[ + ["A", "2-*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + + VERBOSE && @info("SCHEME 6") + ## DEPENDENCY SCHEME 6: TWO PACKAGES, CYCLIC, TOTALLY INCONSISTENT + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1"], + ["B", v"1", "A", "1"], + ["B", v"2", "A", "2-*"] + ] + + @test sanity_tst(deps_data, [("A", v"1"), ("A", v"2"), + ("B", v"1"), ("B", v"2")]) + + # require A (impossible) + reqs_data = Any[ + ["A", "*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + # require B (impossible) + reqs_data = Any[ + ["B", "*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + + VERBOSE && @info("SCHEME 7") + ## DEPENDENCY SCHEME 7: THREE PACKAGES, CYCLIC, WITH INCONSISTENCY + deps_data = Any[ + ["A", v"1", "B", "1"], + ["A", v"2", "B", "2-*"], + ["B", v"1", "C", "1"], + ["B", v"2", "C", "2-*"], + ["C", v"1", "A", "2-*"], + ["C", v"2", "A", "2-*"], + ] + + @test sanity_tst(deps_data, [("A", v"1"), ("B", v"1"), + ("C", v"1")]) + + # require A + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require C + reqs_data = Any[ + ["C", "*"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require C, lowest version (impossible) + reqs_data = Any[ + ["C", "1"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + + VERBOSE && @info("SCHEME 8") + ## DEPENDENCY SCHEME 8: THREE PACKAGES, CYCLIC, TOTALLY INCONSISTENT + deps_data = Any[ + ["A", v"1", "B", "1"], + ["A", v"2", "B", "2-*"], + ["B", v"1", "C", "1"], + ["B", v"2", "C", "2-*"], + ["C", v"1", "A", "2-*"], + ["C", v"2", "A", "1"], + ] + + @test sanity_tst(deps_data, [("A", v"1"), ("A", v"2"), + ("B", v"1"), ("B", v"2"), + ("C", v"1"), ("C", v"2")]) + + # require A (impossible) + reqs_data = Any[ + ["A", "*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + # require B (impossible) + reqs_data = Any[ + ["B", "*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + # require C (impossible) + reqs_data = Any[ + ["C", "*"] + ] + @test_throws ResolverError resolve_tst(deps_data, reqs_data) + + VERBOSE && @info("SCHEME 9") + ## DEPENDENCY SCHEME 9: SIX PACKAGES, DAG + deps_data = Any[ + ["A", v"1"], + ["A", v"2"], + ["A", v"3"], + ["B", v"1", "A", "1"], + ["B", v"2", "A", "*"], + ["C", v"1", "A", "2"], + ["C", v"2", "A", "2-*"], + ["D", v"1", "B", "1-*"], + ["D", v"2", "B", "2-*"], + ["E", v"1", "D", "*"], + ["F", v"1", "A", "1-2"], + ["F", v"1", "E", "*"], + ["F", v"2", "C", "2-*"], + ["F", v"2", "E", "*"], + ] + + @test sanity_tst(deps_data) + + # require just F + reqs_data = Any[ + ["F", "*"] + ] + want_data = Dict("A"=>v"3", "B"=>v"2", "C"=>v"2", + "D"=>v"2", "E"=>v"1", "F"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just F, lower version + reqs_data = Any[ + ["F", "1"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2", "D"=>v"2", + "E"=>v"1", "F"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require F and B; force lower B version -> must bring down F, A, and D versions too + reqs_data = Any[ + ["F", "*"], + ["B", "1"] + ] + want_data = Dict("A"=>v"1", "B"=>v"1", "D"=>v"1", + "E"=>v"1", "F"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require F and D; force lower D version -> must not bring down F version + reqs_data = Any[ + ["F", "*"], + ["D", "1"] + ] + want_data = Dict("A"=>v"3", "B"=>v"2", "C"=>v"2", + "D"=>v"1", "E"=>v"1", "F"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require F and C; force lower C version -> must bring down F and A versions + reqs_data = Any[ + ["F", "*"], + ["C", "1"] + ] + want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"1", + "D"=>v"2", "E"=>v"1", "F"=>v"1") + @test resolve_tst(deps_data, reqs_data, want_data) + + VERBOSE && @info("SCHEME 10") + ## DEPENDENCY SCHEME 10: FIVE PACKAGES, SAME AS SCHEMES 5 + 1, UNCONNECTED + deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"1", "C", "2-*"], + ["A", v"2", "B", "1"], + ["A", v"2", "C", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "2-*"], + ["C", v"1"], + ["C", v"2"], + ["D", v"1", "E", "1-*"], + ["D", v"2", "E", "2-*"], + ["E", v"1"], + ["E", v"2"] + ] + + @test sanity_tst(deps_data, [("A", v"2")]) + @test sanity_tst(deps_data, pkgs=["B"]) + @test sanity_tst(deps_data, pkgs=["D"]) + @test sanity_tst(deps_data, pkgs=["E"]) + @test sanity_tst(deps_data, pkgs=["B", "D"]) + + # require A, any version (must use the highest non-inconsistent) + reqs_data = Any[ + ["A", "*"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + # require just D: must bring in E + reqs_data = Any[ + ["D", "*"] + ] + want_data = Dict("D"=>v"2", "E"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) + + + # require A and D, must be the merge of the previous two cases + reqs_data = Any[ + ["A", "*"], + ["D", "*"] + ] + want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2", "D"=>v"2", "E"=>v"2") + @test resolve_tst(deps_data, reqs_data, want_data) +end + +@testset "realistic" begin + VERBOSE && @info("SCHEME REALISTIC") + ## DEPENDENCY SCHEME 11: A REALISTIC EXAMPLE + ## ref Julia issue #21485 + + include("resolvedata1.jl") + + @test sanity_tst(ResolveData.deps_data, ResolveData.problematic_data) + @test resolve_tst(ResolveData.deps_data, ResolveData.reqs_data, ResolveData.want_data) +end + +@testset "nasty" begin + VERBOSE && @info("SCHEME NASTY") + ## DEPENDENCY SCHEME 12: A NASTY CASE + + include("NastyGenerator.jl") + deps_data, reqs_data, want_data, problematic_data = NastyGenerator.generate_nasty(5, 20, q=20, d=4, sat = true) + + @test sanity_tst(deps_data, problematic_data) + @test resolve_tst(deps_data, reqs_data, want_data) + + deps_data, reqs_data, want_data, problematic_data = NastyGenerator.generate_nasty(5, 20, q=20, d=4, sat = false) + + @test sanity_tst(deps_data, problematic_data) + @test_throws ResolverError resolve_tst(deps_data, reqs_data) +end + +end # module diff --git a/stdlib/Pkg3/test/resolvedata1.jl b/stdlib/Pkg3/test/resolvedata1.jl new file mode 100644 index 00000000000000..a3f829bdf85515 --- /dev/null +++ b/stdlib/Pkg3/test/resolvedata1.jl @@ -0,0 +1,2857 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module ResolveData + +deps_data = Any[ + ["ASTInterpreter", v"0.0.1", "AbstractTrees", "0.0.1-0.0" ], + ["ASTInterpreter", v"0.0.1", "JuliaParser", "0.7.1-*" ], + ["ASTInterpreter", v"0.0.3", "AbstractTrees", "0.0.2-0.0" ], + ["ASTInterpreter", v"0.0.3", "JuliaParser", "0.7.2-*" ], + ["ASTInterpreter", v"0.0.4", "AbstractTrees", "0.0.4-0.0" ], + ["ASTInterpreter", v"0.0.4", "JuliaParser", "0.7.2-*" ], + ["AbstractTrees", v"0.0.1" ], + ["AbstractTrees", v"0.0.3" ], + ["AbstractTrees", v"0.0.4" ], + ["AbstractTrees", v"0.1.0", "Compat", "0.17.0-*" ], + ["AlgebraicDiffEq", v"0.0.1", "DiffEqBase", "*" ], + ["AlgebraicDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["AlgebraicDiffEq", v"0.0.1", "Sundials", "0.3.0-*" ], + ["AlgebraicDiffEq", v"0.0.2", "DiffEqBase", "*" ], + ["AlgebraicDiffEq", v"0.0.2", "Parameters", "0.5.0-*" ], + ["AlgebraicDiffEq", v"0.0.2", "Sundials", "0.3.0-*" ], + ["AlgebraicDiffEq", v"0.1.0", "DiffEqBase", "0.2.0-*" ], + ["AlgebraicDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["AnsiColor", v"0.0.2" ], + ["ArgParse", v"0.2.9", "Options", "*" ], + ["ArgParse", v"0.2.9", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.10", "Compat", "*" ], + ["ArgParse", v"0.2.10", "Options", "*" ], + ["ArgParse", v"0.2.10", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.12", "Options", "*" ], + ["ArgParse", v"0.2.12", "Compat", "0.2.9-*" ], + ["ArgParse", v"0.2.12", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.13", "Options", "*" ], + ["ArgParse", v"0.2.13", "Compat", "0.7.3-*" ], + ["ArgParse", v"0.2.13", "TextWrap", "0.1.4-*" ], + ["ArgParse", v"0.3.0", "Compat", "0.7.3-*" ], + ["ArgParse", v"0.3.0", "TextWrap", "0.1.4-*" ], + ["ArgParse", v"0.4.0", "Compat", "0.8.0-*" ], + ["ArgParse", v"0.4.0", "TextWrap", "0.1.4-*" ], + ["ArrayViews", v"0.1.1" ], + ["ArrayViews", v"0.3.0" ], + ["ArrayViews", v"0.4.5" ], + ["ArrayViews", v"0.4.7" ], + ["ArrayViews", v"0.4.8" ], + ["ArrayViews", v"0.4.9" ], + ["ArrayViews", v"0.4.11" ], + ["ArrayViews", v"0.6.3" ], + ["ArrayViews", v"0.6.4", "Compat", "*" ], + ["Atom", v"0.2.1", "CodeTools", "*" ], + ["Atom", v"0.2.1", "Hiccup", "*" ], + ["Atom", v"0.2.1", "JSON", "*" ], + ["Atom", v"0.2.1", "LNR", "*" ], + ["Atom", v"0.2.1", "Lazy", "*" ], + ["Atom", v"0.2.1", "Media", "*" ], + ["Atom", v"0.4.0", "Blink", "*" ], + ["Atom", v"0.4.0", "CodeTools", "*" ], + ["Atom", v"0.4.0", "Hiccup", "*" ], + ["Atom", v"0.4.0", "JSON", "*" ], + ["Atom", v"0.4.0", "LNR", "*" ], + ["Atom", v"0.4.0", "Lazy", "*" ], + ["Atom", v"0.4.0", "Media", "*" ], + ["Atom", v"0.4.0", "Reexport", "*" ], + ["Atom", v"0.4.6", "Blink", "*" ], + ["Atom", v"0.4.6", "CodeTools", "*" ], + ["Atom", v"0.4.6", "Hiccup", "*" ], + ["Atom", v"0.4.6", "JSON", "*" ], + ["Atom", v"0.4.6", "LNR", "*" ], + ["Atom", v"0.4.6", "Lazy", "*" ], + ["Atom", v"0.4.6", "MacroTools", "*" ], + ["Atom", v"0.4.6", "Media", "*" ], + ["Atom", v"0.4.6", "Reexport", "*" ], + ["Atom", v"0.4.6", "Requires", "*" ], + ["Atom", v"0.5.0", "ASTInterpreter", "*" ], + ["Atom", v"0.5.0", "Blink", "*" ], + ["Atom", v"0.5.0", "CodeTools", "*" ], + ["Atom", v"0.5.0", "Gallium", "*" ], + ["Atom", v"0.5.0", "Hiccup", "*" ], + ["Atom", v"0.5.0", "JSON", "*" ], + ["Atom", v"0.5.0", "LNR", "*" ], + ["Atom", v"0.5.0", "Lazy", "*" ], + ["Atom", v"0.5.0", "MacroTools", "*" ], + ["Atom", v"0.5.0", "Media", "*" ], + ["Atom", v"0.5.0", "Reexport", "*" ], + ["Atom", v"0.5.0", "Requires", "*" ], + ["Atom", v"0.5.2", "ASTInterpreter", "*" ], + ["Atom", v"0.5.2", "Blink", "*" ], + ["Atom", v"0.5.2", "CodeTools", "*" ], + ["Atom", v"0.5.2", "Gallium", "*" ], + ["Atom", v"0.5.2", "Hiccup", "*" ], + ["Atom", v"0.5.2", "JSON", "*" ], + ["Atom", v"0.5.2", "Juno", "*" ], + ["Atom", v"0.5.2", "LNR", "*" ], + ["Atom", v"0.5.2", "Lazy", "*" ], + ["Atom", v"0.5.2", "MacroTools", "*" ], + ["Atom", v"0.5.2", "Media", "*" ], + ["Atom", v"0.5.2", "Reexport", "*" ], + ["Atom", v"0.5.2", "Requires", "*" ], + ["Atom", v"0.5.8", "ASTInterpreter", "*" ], + ["Atom", v"0.5.8", "Blink", "*" ], + ["Atom", v"0.5.8", "CodeTools", "*" ], + ["Atom", v"0.5.8", "Gallium", "*" ], + ["Atom", v"0.5.8", "Hiccup", "*" ], + ["Atom", v"0.5.8", "JSON", "*" ], + ["Atom", v"0.5.8", "Juno", "*" ], + ["Atom", v"0.5.8", "LNR", "*" ], + ["Atom", v"0.5.8", "MacroTools", "*" ], + ["Atom", v"0.5.8", "Media", "*" ], + ["Atom", v"0.5.8", "Reexport", "*" ], + ["Atom", v"0.5.8", "Lazy", "0.11.3-*" ], + ["Atom", v"0.5.10", "ASTInterpreter", "*" ], + ["Atom", v"0.5.10", "Blink", "*" ], + ["Atom", v"0.5.10", "CodeTools", "*" ], + ["Atom", v"0.5.10", "Gallium", "*" ], + ["Atom", v"0.5.10", "Hiccup", "*" ], + ["Atom", v"0.5.10", "JSON", "*" ], + ["Atom", v"0.5.10", "LNR", "*" ], + ["Atom", v"0.5.10", "MacroTools", "*" ], + ["Atom", v"0.5.10", "Media", "*" ], + ["Atom", v"0.5.10", "Reexport", "*" ], + ["Atom", v"0.5.10", "Juno", "0.2.6-*" ], + ["Atom", v"0.5.10", "Lazy", "0.11.3-*" ], + ["AxisAlgorithms", v"0.1.6", "WoodburyMatrices", "*" ], + ["AxisAlgorithms", v"0.1.6", "Compat", "0.8.0-*" ], + ["AxisArrays", v"0.0.3", "IntervalSets", "*" ], + ["AxisArrays", v"0.0.3", "Iterators", "*" ], + ["AxisArrays", v"0.0.3", "RangeArrays", "*" ], + ["AxisArrays", v"0.1.2", "Compat", "0.19.0-*" ], + ["AxisArrays", v"0.1.2", "IntervalSets", "*" ], + ["AxisArrays", v"0.1.2", "Iterators", "*" ], + ["AxisArrays", v"0.1.2", "RangeArrays", "*" ], + ["BinDeps", v"0.2.0" ], + ["BinDeps", v"0.2.4", "URIParser", "*" ], + ["BinDeps", v"0.2.14", "URIParser", "*" ], + ["BinDeps", v"0.3.4", "URIParser", "*" ], + ["BinDeps", v"0.3.4", "SHA", "0.0.0-0.0.2" ], + ["BinDeps", v"0.3.5", "URIParser", "*" ], + ["BinDeps", v"0.3.5", "SHA", "0.0.3-*" ], + ["BinDeps", v"0.3.8", "SHA", "*" ], + ["BinDeps", v"0.3.8", "URIParser", "*" ], + ["BinDeps", v"0.3.10", "Compat", "0.3.6-*" ], + ["BinDeps", v"0.3.10", "SHA", "*" ], + ["BinDeps", v"0.3.10", "URIParser", "*" ], + ["BinDeps", v"0.3.15", "Compat", "0.4.0-*" ], + ["BinDeps", v"0.3.15", "SHA", "*" ], + ["BinDeps", v"0.3.15", "URIParser", "*" ], + ["BinDeps", v"0.3.21", "Compat", "0.7.1-*" ], + ["BinDeps", v"0.3.21", "SHA", "*" ], + ["BinDeps", v"0.3.21", "URIParser", "*" ], + ["BinDeps", v"0.3.23", "URIParser", "*" ], + ["BinDeps", v"0.3.23", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.3.23", "SHA", "*" ], + ["BinDeps", v"0.4.2", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.4.2", "SHA", "*" ], + ["BinDeps", v"0.4.2", "URIParser", "*" ], + ["BinDeps", v"0.4.5", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.4.5", "SHA", "*" ], + ["BinDeps", v"0.4.5", "URIParser", "*" ], + ["BinDeps", v"0.4.7", "Compat", "0.17.0-*" ], + ["BinDeps", v"0.4.7", "SHA", "*" ], + ["BinDeps", v"0.4.7", "URIParser", "*" ], + ["Blink", v"0.1.4", "JSON", "*" ], + ["Blink", v"0.1.4", "Lazy", "*" ], + ["Blink", v"0.1.4", "Requires", "*" ], + ["Blink", v"0.1.5", "JSON", "*" ], + ["Blink", v"0.1.5", "Lazy", "*" ], + ["Blink", v"0.1.5", "MacroTools", "*" ], + ["Blink", v"0.1.5", "Requires", "*" ], + ["Blink", v"0.2.0", "HttpServer", "*" ], + ["Blink", v"0.2.0", "JSON", "*" ], + ["Blink", v"0.2.0", "Lazy", "*" ], + ["Blink", v"0.2.0", "MacroTools", "*" ], + ["Blink", v"0.2.0", "Mustache", "*" ], + ["Blink", v"0.2.0", "Reexport", "*" ], + ["Blink", v"0.2.0", "Requires", "*" ], + ["Blink", v"0.2.0", "WebSockets", "*" ], + ["Blink", v"0.2.1", "HttpServer", "*" ], + ["Blink", v"0.2.1", "JSON", "*" ], + ["Blink", v"0.2.1", "Lazy", "*" ], + ["Blink", v"0.2.1", "MacroTools", "*" ], + ["Blink", v"0.2.1", "Mustache", "*" ], + ["Blink", v"0.2.1", "Mux", "*" ], + ["Blink", v"0.2.1", "Reexport", "*" ], + ["Blink", v"0.2.1", "Requires", "*" ], + ["Blink", v"0.2.1", "WebSockets", "*" ], + ["Blink", v"0.3.4", "BinDeps", "*" ], + ["Blink", v"0.3.4", "HttpServer", "*" ], + ["Blink", v"0.3.4", "JSON", "*" ], + ["Blink", v"0.3.4", "Lazy", "*" ], + ["Blink", v"0.3.4", "MacroTools", "*" ], + ["Blink", v"0.3.4", "Mustache", "*" ], + ["Blink", v"0.3.4", "Mux", "*" ], + ["Blink", v"0.3.4", "Reexport", "*" ], + ["Blink", v"0.3.4", "Requires", "*" ], + ["Blink", v"0.3.4", "WebSockets", "*" ], + ["Blink", v"0.4.1", "BinDeps", "*" ], + ["Blink", v"0.4.1", "HttpServer", "*" ], + ["Blink", v"0.4.1", "Mustache", "*" ], + ["Blink", v"0.4.1", "Reexport", "*" ], + ["Blink", v"0.4.1", "Requires", "*" ], + ["Blink", v"0.4.1", "Compat", "0.8.6-*" ], + ["Blink", v"0.4.1", "JSON", "*" ], + ["Blink", v"0.4.1", "Lazy", "*" ], + ["Blink", v"0.4.1", "MacroTools", "*" ], + ["Blink", v"0.4.1", "Mux", "*" ], + ["Blink", v"0.4.1", "WebSockets", "*" ], + ["Blink", v"0.5.1", "BinDeps", "*" ], + ["Blink", v"0.5.1", "HttpServer", "*" ], + ["Blink", v"0.5.1", "Compat", "0.8.6-*" ], + ["Blink", v"0.5.1", "JSON", "*" ], + ["Blink", v"0.5.1", "MacroTools", "*" ], + ["Blink", v"0.5.1", "Mustache", "*" ], + ["Blink", v"0.5.1", "Lazy", "0.11.3-*" ], + ["Blink", v"0.5.1", "Mux", "*" ], + ["Blink", v"0.5.1", "Reexport", "*" ], + ["Blink", v"0.5.1", "WebSockets", "*" ], + ["Blocks", v"0.0.4" ], + ["Blocks", v"0.1.0", "Compat", "*" ], + ["Blosc", v"0.1.1", "BinDeps", "*" ], + ["Blosc", v"0.1.5", "BinDeps", "*" ], + ["Blosc", v"0.1.5", "Compat", "*" ], + ["Blosc", v"0.2.0", "BinDeps", "*" ], + ["Blosc", v"0.2.0", "Compat", "0.8.0-*" ], + ["COFF", v"0.0.2", "DWARF", "*" ], + ["COFF", v"0.0.2", "ObjFileBase", "*" ], + ["COFF", v"0.0.2", "StructIO", "*" ], + ["CRC", v"0.1.0", "ArgParse", "*" ], + ["CRC", v"0.1.0", "Zlib", "*" ], + ["CRC", v"1.1.1", "ArgParse", "*" ], + ["CRC", v"1.1.1", "Compat", "*" ], + ["CRC", v"1.2.0", "ArgParse", "*" ], + ["Calculus", v"0.1.5" ], + ["Calculus", v"0.1.6", "Compat", "*" ], + ["Calculus", v"0.1.14", "Compat", "0.4.0-*" ], + ["Calculus", v"0.1.15", "Compat", "0.4.0-*" ], + ["Calculus", v"0.2.0", "Compat", "0.4.0-*" ], + ["Calculus", v"0.2.2", "Compat", "0.17.0-*" ], + ["Calendar", v"0.4.3", "ICU", "*" ], + ["CatIndices", v"0.0.2", "CustomUnitRanges", "*" ], + ["CatIndices", v"0.0.2", "OffsetArrays", "*" ], + ["ChunkedArrays", v"0.0.1", "Compat", "*" ], + ["ChunkedArrays", v"0.0.1", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.0.2", "Compat", "*" ], + ["ChunkedArrays", v"0.0.2", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.1.0", "Compat", "*" ], + ["ChunkedArrays", v"0.1.0", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.1.1", "EllipsisNotation", "0.0.2-*" ], + ["CodeTools", v"0.1.0", "JuliaParser", "*" ], + ["CodeTools", v"0.1.0", "LNR", "*" ], + ["CodeTools", v"0.1.0", "Lazy", "*" ], + ["CodeTools", v"0.1.0", "MacroTools", "*" ], + ["CodeTools", v"0.2.0", "Compat", "*" ], + ["CodeTools", v"0.2.0", "JuliaParser", "*" ], + ["CodeTools", v"0.2.0", "LNR", "*" ], + ["CodeTools", v"0.2.0", "Lazy", "*" ], + ["CodeTools", v"0.2.0", "MacroTools", "*" ], + ["CodeTools", v"0.4.1", "Compat", "*" ], + ["CodeTools", v"0.4.1", "JuliaParser", "*" ], + ["CodeTools", v"0.4.1", "LNR", "*" ], + ["CodeTools", v"0.4.1", "Lazy", "*" ], + ["CodeTools", v"0.4.1", "MacroTools", "*" ], + ["CodeTools", v"0.4.1", "Requires", "*" ], + ["CodeTools", v"0.4.3", "LNR", "*" ], + ["CodeTools", v"0.4.3", "Lazy", "*" ], + ["CodeTools", v"0.4.3", "MacroTools", "*" ], + ["Codecs", v"0.1.0", "Iterators", "*" ], + ["Codecs", v"0.1.3" ], + ["Codecs", v"0.1.5", "Compat", "*" ], + ["Codecs", v"0.2.0", "Compat", "0.7.20-*" ], + ["Codecs", v"0.3.0", "Compat", "0.17.0-*" ], + ["ColorTypes", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorTypes", v"0.0.1", "FixedSizeArrays", "*" ], + ["ColorTypes", v"0.1.7", "Compat", "*" ], + ["ColorTypes", v"0.1.7", "Docile", "*" ], + ["ColorTypes", v"0.1.7", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorTypes", v"0.2.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.2.8", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.2.12", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.2", "Compat", "0.16.0-*" ], + ["ColorTypes", v"0.3.2", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.3", "Compat", "0.17.0-*" ], + ["ColorTypes", v"0.3.3", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.5", "Compat", "0.18.0-*" ], + ["ColorTypes", v"0.3.5", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.4.1", "Compat", "0.18.0-*" ], + ["ColorTypes", v"0.4.1", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.0.5", "ColorTypes", "*" ], + ["ColorVectorSpace", v"0.0.5", "Compat", "*" ], + ["ColorVectorSpace", v"0.0.5", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorVectorSpace", v"0.1.7", "ColorTypes", "0.2.0-*" ], + ["ColorVectorSpace", v"0.1.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorVectorSpace", v"0.1.8", "ColorTypes", "0.2.0-*" ], + ["ColorVectorSpace", v"0.1.8", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.8", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorVectorSpace", v"0.1.10", "ColorTypes", "0.2.7-*" ], + ["ColorVectorSpace", v"0.1.10", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.10", "FixedPointNumbers", "0.1.8-0.2" ], + ["ColorVectorSpace", v"0.1.12", "ColorTypes", "0.2.7-*" ], + ["ColorVectorSpace", v"0.1.12", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.12", "FixedPointNumbers", "0.1.8-0.2" ], + ["ColorVectorSpace", v"0.2.0", "ColorTypes", "0.3.0-*" ], + ["ColorVectorSpace", v"0.2.0", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.3.0", "ColorTypes", "0.3.3-*" ], + ["ColorVectorSpace", v"0.3.0", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.3.0", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.3.0", "StatsBase", "0.8.2-*" ], + ["ColorVectorSpace", v"0.4.0", "ColorTypes", "0.3.3-*" ], + ["ColorVectorSpace", v"0.4.0", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.4.0", "Compat", "0.18.0-*" ], + ["ColorVectorSpace", v"0.4.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.4.0", "StatsBase", "0.8.2-*" ], + ["ColorVectorSpace", v"0.4.2", "ColorTypes", "0.4.0-*" ], + ["ColorVectorSpace", v"0.4.2", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.4.2", "Compat", "0.18.0-*" ], + ["ColorVectorSpace", v"0.4.2", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.4.2", "StatsBase", "0.8.2-*" ], + ["Colors", v"0.4.7", "Compat", "0.2.0-*" ], + ["Colors", v"0.4.7", "Graphics", "0.1.0-*" ], + ["Colors", v"0.4.7", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.5.0", "ColorTypes", "*" ], + ["Colors", v"0.5.0", "Reexport", "*" ], + ["Colors", v"0.5.0", "Compat", "0.2.0-*" ], + ["Colors", v"0.5.0", "Graphics", "0.1.0-*" ], + ["Colors", v"0.5.0", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.5.4", "ColorTypes", "*" ], + ["Colors", v"0.5.4", "Reexport", "*" ], + ["Colors", v"0.5.4", "Compat", "0.2.0-*" ], + ["Colors", v"0.5.4", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.6.2", "Reexport", "*" ], + ["Colors", v"0.6.2", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.2", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.4", "Compat", "*" ], + ["Colors", v"0.6.4", "Reexport", "*" ], + ["Colors", v"0.6.4", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.4", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.6", "Reexport", "*" ], + ["Colors", v"0.6.6", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.6", "Compat", "0.8.0-*" ], + ["Colors", v"0.6.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.7", "Reexport", "*" ], + ["Colors", v"0.6.7", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.7", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.8", "Reexport", "*" ], + ["Colors", v"0.6.8", "ColorTypes", "0.2.7-*" ], + ["Colors", v"0.6.8", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.8", "FixedPointNumbers", "0.1.8-0.2" ], + ["Colors", v"0.6.9", "Reexport", "*" ], + ["Colors", v"0.6.9", "ColorTypes", "0.2.9-*" ], + ["Colors", v"0.6.9", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.9", "FixedPointNumbers", "0.1.8-0.2" ], + ["Colors", v"0.7.0", "Reexport", "*" ], + ["Colors", v"0.7.0", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.0", "Compat", "0.9.1-*" ], + ["Colors", v"0.7.0", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.1", "Reexport", "*" ], + ["Colors", v"0.7.1", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.1", "Compat", "0.9.1-*" ], + ["Colors", v"0.7.1", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.2", "Reexport", "*" ], + ["Colors", v"0.7.2", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.2", "Compat", "0.17.0-*" ], + ["Colors", v"0.7.2", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.3", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.3", "Compat", "0.18.0-*" ], + ["Colors", v"0.7.3", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.3", "Reexport", "*" ], + ["Combinatorics", v"0.2.0", "Compat", "*" ], + ["Combinatorics", v"0.2.0", "Iterators", "*" ], + ["Combinatorics", v"0.2.0", "Polynomials", "*" ], + ["Combinatorics", v"0.3.2", "Iterators", "*" ], + ["Combinatorics", v"0.3.2", "Polynomials", "*" ], + ["Combinatorics", v"0.4.0", "Compat", "0.18.0-*" ], + ["Combinatorics", v"0.4.0", "Iterators", "*" ], + ["Combinatorics", v"0.4.0", "Polynomials", "*" ], + ["Compat", v"0.8.1" ], + ["Compat", v"0.8.3" ], + ["Compat", v"0.8.4" ], + ["Compat", v"0.8.5" ], + ["Compat", v"0.8.6" ], + ["Compat", v"0.8.7" ], + ["Compat", v"0.8.8" ], + ["Compat", v"0.9.0" ], + ["Compat", v"0.9.1" ], + ["Compat", v"0.9.3" ], + ["Compat", v"0.9.4" ], + ["Compat", v"0.10.0" ], + ["Compat", v"0.11.0" ], + ["Compat", v"0.12.0" ], + ["Compat", v"0.13.0" ], + ["Compat", v"0.15.0" ], + ["Compat", v"0.16.2" ], + ["Compat", v"0.17.0" ], + ["Compat", v"0.18.0" ], + ["Compat", v"0.23.0" ], + ["Compat", v"0.24.0" ], + ["ComputationalResources", v"0.0.1" ], + ["ComputationalResources", v"0.0.2", "Compat", "0.17.0-*" ], + ["Conda", v"0.1.5", "BinDeps", "*" ], + ["Conda", v"0.1.5", "Compat", "*" ], + ["Conda", v"0.1.5", "JSON", "*" ], + ["Conda", v"0.1.9", "BinDeps", "*" ], + ["Conda", v"0.1.9", "Compat", "*" ], + ["Conda", v"0.1.9", "JSON", "*" ], + ["Conda", v"0.2.2", "BinDeps", "*" ], + ["Conda", v"0.2.2", "Compat", "0.7.15-*" ], + ["Conda", v"0.2.2", "JSON", "*" ], + ["Conda", v"0.2.4", "BinDeps", "*" ], + ["Conda", v"0.2.4", "Compat", "0.8.0-*" ], + ["Conda", v"0.2.4", "JSON", "*" ], + ["Conda", v"0.2.5", "BinDeps", "*" ], + ["Conda", v"0.2.5", "Compat", "0.7.20-*" ], + ["Conda", v"0.2.5", "JSON", "*" ], + ["Conda", v"0.3.2", "BinDeps", "*" ], + ["Conda", v"0.3.2", "Compat", "0.8.0-*" ], + ["Conda", v"0.3.2", "JSON", "*" ], + ["Conda", v"0.5.3", "BinDeps", "*" ], + ["Conda", v"0.5.3", "Compat", "0.8.0-*" ], + ["Conda", v"0.5.3", "JSON", "*" ], + ["CoordinateTransformations", v"0.1.0", "FixedSizeArrays", "*" ], + ["CoordinateTransformations", v"0.1.0", "Rotations", "*" ], + ["CoordinateTransformations", v"0.2.0", "Compat", "0.8.0-0.10" ], + ["CoordinateTransformations", v"0.2.0", "FixedSizeArrays", "0.2.2-*" ], + ["CoordinateTransformations", v"0.2.0", "Rotations", "0.1.0-0.2.0" ], + ["CoordinateTransformations", v"0.3.2", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.3.2", "StaticArrays", "*" ], + ["CoordinateTransformations", v"0.4.0", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.4.0", "StaticArrays", "*" ], + ["CoordinateTransformations", v"0.4.1", "Compat", "0.17.0-*" ], + ["CoordinateTransformations", v"0.4.1", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.4.1", "StaticArrays", "*" ], + ["CustomUnitRanges", v"0.0.4" ], + ["DWARF", v"0.0.0", "ELF", "*" ], + ["DWARF", v"0.0.0", "StrPack", "*" ], + ["DWARF", v"0.1.0", "AbstractTrees", "*" ], + ["DWARF", v"0.1.0", "ObjFileBase", "*" ], + ["DWARF", v"0.1.0", "StructIO", "*" ], + ["DataArrays", v"0.4.0", "Reexport", "*" ], + ["DataArrays", v"0.4.0", "SpecialFunctions", "*" ], + ["DataArrays", v"0.4.0", "Compat", "0.8.6-*" ], + ["DataArrays", v"0.4.0", "StatsBase", "0.3.0-*" ], + ["DataFrames", v"0.0.0", "Options", "*" ], + ["DataFrames", v"0.0.0", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.2.2", "GZip", "*" ], + ["DataFrames", v"0.2.2", "Options", "*" ], + ["DataFrames", v"0.2.2", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.10", "GZip", "*" ], + ["DataFrames", v"0.3.10", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.11", "Blocks", "*" ], + ["DataFrames", v"0.3.11", "GZip", "*" ], + ["DataFrames", v"0.3.11", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.16", "Blocks", "*" ], + ["DataFrames", v"0.3.16", "GZip", "*" ], + ["DataFrames", v"0.3.16", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.3.16", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.4.2", "Blocks", "*" ], + ["DataFrames", v"0.4.2", "DataArrays", "*" ], + ["DataFrames", v"0.4.2", "GZip", "*" ], + ["DataFrames", v"0.4.2", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.4.2", "Stats", "*" ], + ["DataFrames", v"0.5.0", "Blocks", "*" ], + ["DataFrames", v"0.5.0", "GZip", "*" ], + ["DataFrames", v"0.5.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.0", "DataArrays", "0.1.0-*" ], + ["DataFrames", v"0.5.0", "StatsBase", "0.3.0-0.8.2" ], + ["DataFrames", v"0.5.3", "Blocks", "*" ], + ["DataFrames", v"0.5.3", "DataArrays", "*" ], + ["DataFrames", v"0.5.3", "GZip", "*" ], + ["DataFrames", v"0.5.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.3", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.5.4", "Blocks", "*" ], + ["DataFrames", v"0.5.4", "DataArrays", "*" ], + ["DataFrames", v"0.5.4", "GZip", "*" ], + ["DataFrames", v"0.5.4", "Reexport", "*" ], + ["DataFrames", v"0.5.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.4", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.5.11", "DataArrays", "*" ], + ["DataFrames", v"0.5.11", "GZip", "*" ], + ["DataFrames", v"0.5.11", "Reexport", "*" ], + ["DataFrames", v"0.5.11", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.11", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.1", "Compat", "*" ], + ["DataFrames", v"0.6.1", "DataArrays", "*" ], + ["DataFrames", v"0.6.1", "GZip", "*" ], + ["DataFrames", v"0.6.1", "Reexport", "*" ], + ["DataFrames", v"0.6.1", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.1", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.5", "Compat", "*" ], + ["DataFrames", v"0.6.5", "DataArrays", "*" ], + ["DataFrames", v"0.6.5", "Docile", "*" ], + ["DataFrames", v"0.6.5", "GZip", "*" ], + ["DataFrames", v"0.6.5", "Reexport", "*" ], + ["DataFrames", v"0.6.5", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.5", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.10", "Compat", "*" ], + ["DataFrames", v"0.6.10", "Docile", "*" ], + ["DataFrames", v"0.6.10", "GZip", "*" ], + ["DataFrames", v"0.6.10", "Reexport", "*" ], + ["DataFrames", v"0.6.10", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.10", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.6.10", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.7.0", "Docile", "*" ], + ["DataFrames", v"0.7.0", "GZip", "*" ], + ["DataFrames", v"0.7.0", "Reexport", "*" ], + ["DataFrames", v"0.7.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.0", "Compat", "0.7.12-*" ], + ["DataFrames", v"0.7.0", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.0", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.2", "Docile", "*" ], + ["DataFrames", v"0.7.2", "GZip", "*" ], + ["DataFrames", v"0.7.2", "Reexport", "*" ], + ["DataFrames", v"0.7.2", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.2", "Compat", "0.7.17-*" ], + ["DataFrames", v"0.7.2", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.2", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.3", "Docile", "*" ], + ["DataFrames", v"0.7.3", "GZip", "*" ], + ["DataFrames", v"0.7.3", "Reexport", "*" ], + ["DataFrames", v"0.7.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.3", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.3", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.3", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.4", "Docile", "*" ], + ["DataFrames", v"0.7.4", "GZip", "*" ], + ["DataFrames", v"0.7.4", "Reexport", "*" ], + ["DataFrames", v"0.7.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.4", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.4", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.4", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.6", "Docile", "*" ], + ["DataFrames", v"0.7.6", "GZip", "*" ], + ["DataFrames", v"0.7.6", "Reexport", "*" ], + ["DataFrames", v"0.7.6", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.6", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.6", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.6", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.7.8", "GZip", "*" ], + ["DataFrames", v"0.7.8", "Reexport", "*" ], + ["DataFrames", v"0.7.8", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.8", "Compat", "0.8.0-*" ], + ["DataFrames", v"0.7.8", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.8", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.0", "GZip", "*" ], + ["DataFrames", v"0.8.0", "Reexport", "*" ], + ["DataFrames", v"0.8.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.0", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.0", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.0", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.3", "GZip", "*" ], + ["DataFrames", v"0.8.3", "Reexport", "*" ], + ["DataFrames", v"0.8.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.3", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.3", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.3", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.3", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.4", "GZip", "*" ], + ["DataFrames", v"0.8.4", "Reexport", "*" ], + ["DataFrames", v"0.8.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.4", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.4", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.4", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.4", "StatsBase", "0.11.0-*" ], + ["DataFrames", v"0.8.5", "GZip", "*" ], + ["DataFrames", v"0.8.5", "Reexport", "*" ], + ["DataFrames", v"0.8.5", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.5", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.5", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.5", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.5", "Juno", "0.2.4-*" ], + ["DataFrames", v"0.8.5", "StatsBase", "0.11.0-*" ], + ["DataFrames", v"0.9.1", "GZip", "*" ], + ["DataFrames", v"0.9.1", "Reexport", "*" ], + ["DataFrames", v"0.9.1", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.9.1", "Compat", "0.18.0-*" ], + ["DataFrames", v"0.9.1", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.9.1", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.9.1", "StatsBase", "0.11.0-*" ], + ["DataStructures", v"0.4.5" ], + ["DataStructures", v"0.4.6", "Compat", "0.8.5-*" ], + ["DataStructures", v"0.5.1", "Compat", "0.9.4-*" ], + ["DataStructures", v"0.5.2", "Compat", "0.9.4-*" ], + ["DataStructures", v"0.5.3", "Compat", "0.17.0-*" ], + ["Dates", v"0.4.4" ], + ["DelayDiffEq", v"0.0.1", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.0.1", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.0.1", "DiffEqBase", "0.5.0-0.6" ], + ["DelayDiffEq", v"0.0.1", "RecursiveArrayTools", "0.1.2-*" ], + ["DelayDiffEq", v"0.0.1", "OrdinaryDiffEq", "1.0.0-1.1" ], + ["DelayDiffEq", v"0.1.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.1.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.1.0", "DiffEqBase", "0.8.0-0.14" ], + ["DelayDiffEq", v"0.1.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DelayDiffEq", v"0.1.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DelayDiffEq", v"0.2.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.2.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.2.0", "DiffEqBase", "0.8.0-0.14" ], + ["DelayDiffEq", v"0.2.0", "OrdinaryDiffEq", "1.6.0-*" ], + ["DelayDiffEq", v"0.2.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DelayDiffEq", v"0.3.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.3.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.3.0", "DiffEqBase", "0.15.0-*" ], + ["DelayDiffEq", v"0.3.0", "OrdinaryDiffEq", "1.6.0-*" ], + ["DelayDiffEq", v"0.3.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffBase", v"0.0.2", "Compat", "0.7.15-*" ], + ["DiffBase", v"0.1.0", "Compat", "0.7.15-*" ], + ["DiffEqBase", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.0.4", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.0.4", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.0", "Parameters", "*" ], + ["DiffEqBase", v"0.1.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.0", "RecursiveArrayTools", "*" ], + ["DiffEqBase", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.1", "Parameters", "*" ], + ["DiffEqBase", v"0.1.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.1", "RecursiveArrayTools", "*" ], + ["DiffEqBase", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.2", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.1.2", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.2", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.1.3", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.1.3", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.3", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.3", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.2.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.2.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.3.2", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.3.2", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.3.2", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.3.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.3.2", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.4.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.4.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.4.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.4.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.4.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.4.1", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.4.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.4.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.4.1", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.4.1", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.5.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.5.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.5.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.5.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.6.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.6.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.6.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.6.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.7.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.7.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.7.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.7.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.7.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.10.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.10.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.10.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.10.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.10.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.11.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.11.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.11.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.11.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.11.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.12.1", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.12.1", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.12.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.12.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.12.1", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.12.1", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.13.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.13.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.13.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.13.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.13.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.13.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.14.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.14.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.14.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.14.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.14.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.14.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.15.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.15.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.15.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.15.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.15.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.15.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBiological", v"0.0.1", "DiffEqBase", "*" ], + ["DiffEqBiological", v"0.0.1", "DiffEqJump", "*" ], + ["DiffEqCallbacks", v"0.0.2", "DiffEqBase", "0.6.0-*" ], + ["DiffEqDevTools", v"0.0.1", "DiffEqBase", "0.0.0-0.4" ], + ["DiffEqDevTools", v"0.0.1", "FiniteElementDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.0", "DiffEqBase", "0.0.0-0.4" ], + ["DiffEqDevTools", v"0.1.0", "FiniteElementDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "OrdinaryDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "RecursiveArrayTools", "*" ], + ["DiffEqDevTools", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.1", "DiffEqBase", "0.1.3-0.4" ], + ["DiffEqDevTools", v"0.1.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.1.1", "OrdinaryDiffEq", "0.1.1-*" ], + ["DiffEqDevTools", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.1", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.1.1", "StochasticDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.2.0", "DiffEqBase", "0.2.0-0.4" ], + ["DiffEqDevTools", v"0.2.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.3.0", "DiffEqBase", "0.3.0-0.4" ], + ["DiffEqDevTools", v"0.3.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.3.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.4.0", "DiffEqBase", "0.4.0-0.4" ], + ["DiffEqDevTools", v"0.4.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.4.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.5.0", "DiffEqBase", "0.4.0-0.4" ], + ["DiffEqDevTools", v"0.5.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.5.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.6.0", "DiffEqBase", "0.5.0-0.14" ], + ["DiffEqDevTools", v"0.6.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.6.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.7.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqDevTools", v"0.7.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.7.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.7.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqFinancial", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqFinancial", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqFinancial", v"0.1.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqFinancial", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqJump", v"0.0.1", "DiffEqBase", "*" ], + ["DiffEqJump", v"0.2.0", "DiffEqBase", "*" ], + ["DiffEqJump", v"0.2.0", "RecursiveArrayTools", "*" ], + ["DiffEqJump", v"0.3.0", "DiffEqBase", "0.13.0-*" ], + ["DiffEqJump", v"0.3.0", "RecursiveArrayTools", "*" ], + ["DiffEqMonteCarlo", v"0.1.0", "DiffEqBase", "0.6.0-0.13" ], + ["DiffEqMonteCarlo", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqMonteCarlo", v"0.2.0", "DiffEqBase", "0.14.0-*" ], + ["DiffEqPDEBase", v"0.0.1", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqPDEBase", v"0.0.1", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.0.1", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.0.3", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.0.3", "DiffEqBase", "0.4.1-0.14" ], + ["DiffEqPDEBase", v"0.0.3", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.0.3", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.1.0", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.1.0", "Compat", "0.17.0-*" ], + ["DiffEqPDEBase", v"0.1.0", "DiffEqBase", "0.4.1-0.14" ], + ["DiffEqPDEBase", v"0.1.0", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.1.0", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.2.0", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.2.0", "Compat", "0.17.0-*" ], + ["DiffEqPDEBase", v"0.2.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqPDEBase", v"0.2.0", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.2.0", "VectorizedRoutines", "*" ], + ["DiffEqParamEstim", v"0.0.1", "DiffEqBase", "0.0.0-0.13" ], + ["DiffEqParamEstim", v"0.0.1", "LossFunctions", "*" ], + ["DiffEqParamEstim", v"0.0.1", "LsqFit", "*" ], + ["DiffEqParamEstim", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqParamEstim", v"0.0.1", "RecursiveArrayTools", "*" ], + ["DiffEqParamEstim", v"0.0.2", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.0.2", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.2", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.2", "OrdinaryDiffEq", "0.1.1-*" ], + ["DiffEqParamEstim", v"0.0.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.0.4", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "Calculus", "*" ], + ["DiffEqParamEstim", v"0.1.0", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.1.0", "ForwardDiff", "*" ], + ["DiffEqParamEstim", v"0.1.0", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "Calculus", "*" ], + ["DiffEqParamEstim", v"0.2.0", "Optim", "*" ], + ["DiffEqParamEstim", v"0.2.0", "Compat", "0.17.0-*" ], + ["DiffEqParamEstim", v"0.2.0", "DiffEqBase", "0.14.0-*" ], + ["DiffEqParamEstim", v"0.2.0", "ForwardDiff", "*" ], + ["DiffEqParamEstim", v"0.2.0", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "AlgebraicDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqProblemLibrary", v"0.0.1", "FiniteElementDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "AlgebraicDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqProblemLibrary", v"0.1.0", "FiniteElementDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.1.0", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.2.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.2.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "StochasticDiffEq", "0.1.0-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "AlgebraicDiffEq", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.3.2", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.4.0", "DiffEqPDEBase", "*" ], + ["DiffEqProblemLibrary", v"0.4.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "ParameterizedFunctions", "0.5.0-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "DiffEqPDEBase", "*" ], + ["DiffEqProblemLibrary", v"0.5.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "ParameterizedFunctions", "0.5.0-*" ], + ["DiffEqSensitivity", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqSensitivity", v"0.0.2", "DiffEqBase", "0.1.2-0.14" ], + ["DiffEqSensitivity", v"0.0.4", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqSensitivity", v"0.1.0", "DiffEqBase", "0.15.0-*" ], + ["DifferentialEquations", v"0.4.0", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.0", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.4.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.4.0", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.4.0", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.0", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.4.0", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.4.0", "Parameters", "0.3.1-*" ], + ["DifferentialEquations", v"0.4.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.4.0", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.4.0", "SIUnits", "0.0.6-*" ], + ["DifferentialEquations", v"0.4.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.4.2", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.2", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.4.2", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.4.2", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.4.2", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.2", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.4.2", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.4.2", "Parameters", "0.5.0-*" ], + ["DifferentialEquations", v"0.4.2", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.4.2", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.4.2", "SIUnits", "0.0.6-*" ], + ["DifferentialEquations", v"0.4.2", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.5.0", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.5.0", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.5.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.5.0", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.5.0", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.5.0", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.5.0", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.5.0", "NLsolve", "0.7.3-*" ], + ["DifferentialEquations", v"0.5.0", "Parameters", "0.5.0-*" ], + ["DifferentialEquations", v"0.5.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.5.0", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.5.0", "Ranges", "0.0.1-*" ], + ["DifferentialEquations", v"0.5.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.5.0", "Sundials", "0.3.0-*" ], + ["DifferentialEquations", v"1.0.0", "AlgebraicDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqDevTools", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqParamEstim", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqSensitivity", "*" ], + ["DifferentialEquations", v"1.0.0", "FiniteElementDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "Reexport", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"1.0.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"1.0.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"1.0.0", "StokesDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "Sundials", "*" ], + ["DifferentialEquations", v"1.1.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqBase", "0.1.3-0.14" ], + ["DifferentialEquations", v"1.1.0", "DiffEqDevTools", "0.1.1-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.1.0", "OrdinaryDiffEq", "0.1.1-1.1" ], + ["DifferentialEquations", v"1.1.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.1.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.1.0", "StochasticDiffEq", "0.0.5-0" ], + ["DifferentialEquations", v"1.1.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "Sundials", "0.3.0-*" ], + ["DifferentialEquations", v"1.4.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.4.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqProblemLibrary", "0.2.0-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.4.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.4.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.4.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.4.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.4.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.5.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.5.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.5.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.5.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.5.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.5.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.5.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.6.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "DelayDiffEq", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.6.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.6.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.6.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.6.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.6.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.6.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.7.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.7.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.7.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.7.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.7.0", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.7.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.9.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.9.0", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.9.0", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.9.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.9.0", "PyDSTool", "*" ], + ["DifferentialEquations", v"1.9.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.9.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.9.0", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.9.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.9.1", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.9.1", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.9.1", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.9.1", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.9.1", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.9.1", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.9.1", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.9.1", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqBase", "0.15.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.10.1", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.10.1", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.10.1", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.10.1", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.10.1", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.10.1", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.10.1", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.10.1", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "Sundials", "0.4.1-*" ], + ["Distances", v"0.1.1", "ArrayViews", "0.4.0-*" ], + ["Distances", v"0.2.0", "ArrayViews", "0.4.8-*" ], + ["Distances", v"0.2.2", "Compat", "*" ], + ["Distances", v"0.2.2", "ArrayViews", "0.4.8-*" ], + ["Distances", v"0.3.2", "Compat", "0.8.4-*" ], + ["Distances", v"0.4.0" ], + ["Distances", v"0.4.1", "Compat", "0.18.0-*" ], + ["Distributions", v"0.6.4", "ArrayViews", "0.4.8-*" ], + ["Distributions", v"0.6.4", "Compat", "0.2.4-*" ], + ["Distributions", v"0.6.4", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.4", "StatsBase", "0.6.10-*" ], + ["Distributions", v"0.6.4", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.6.5", "ArrayViews", "0.4.9-*" ], + ["Distributions", v"0.6.5", "Compat", "0.3.1-*" ], + ["Distributions", v"0.6.5", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.5", "StatsBase", "0.6.10-*" ], + ["Distributions", v"0.6.5", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.6.7", "ArrayViews", "0.4.10-*" ], + ["Distributions", v"0.6.7", "Compat", "0.3.2-*" ], + ["Distributions", v"0.6.7", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.7", "StatsBase", "0.6.13-*" ], + ["Distributions", v"0.6.7", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.7.6", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.7.6", "Compat", "0.4.0-*" ], + ["Distributions", v"0.7.6", "PDMats", "0.3.2-0.3" ], + ["Distributions", v"0.7.6", "StatsBase", "0.6.14-*" ], + ["Distributions", v"0.7.6", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.8.9", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.8.9", "Compat", "0.4.0-*" ], + ["Distributions", v"0.8.9", "PDMats", "0.3.2-0.3" ], + ["Distributions", v"0.8.9", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.8.9", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.8.10", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.8.10", "Compat", "0.4.0-*" ], + ["Distributions", v"0.8.10", "PDMats", "0.4.0-0.4" ], + ["Distributions", v"0.8.10", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.8.10", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.9.0", "Compat", "0.2.17-*" ], + ["Distributions", v"0.9.0", "PDMats", "0.4.1-0.4" ], + ["Distributions", v"0.9.0", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.9.0", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.10.2", "Calculus", "*" ], + ["Distributions", v"0.10.2", "Compat", "0.8.4-*" ], + ["Distributions", v"0.10.2", "PDMats", "0.4.2-0.4" ], + ["Distributions", v"0.10.2", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.10.2", "StatsFuns", "0.3.0-*" ], + ["Distributions", v"0.11.1", "Calculus", "*" ], + ["Distributions", v"0.11.1", "Compat", "0.9.2-*" ], + ["Distributions", v"0.11.1", "PDMats", "0.5.0-*" ], + ["Distributions", v"0.11.1", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.11.1", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.0", "Calculus", "*" ], + ["Distributions", v"0.12.0", "Compat", "0.14.0-*" ], + ["Distributions", v"0.12.0", "PDMats", "0.5.4-*" ], + ["Distributions", v"0.12.0", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.0", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.0", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.4", "Calculus", "*" ], + ["Distributions", v"0.12.4", "Compat", "0.18.0-*" ], + ["Distributions", v"0.12.4", "PDMats", "0.5.4-*" ], + ["Distributions", v"0.12.4", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.4", "SpecialFunctions", "0.1.0-*" ], + ["Distributions", v"0.12.4", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.4", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.5", "Calculus", "*" ], + ["Distributions", v"0.12.5", "Compat", "0.18.0-*" ], + ["Distributions", v"0.12.5", "PDMats", "0.6.0-*" ], + ["Distributions", v"0.12.5", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.5", "SpecialFunctions", "0.1.0-*" ], + ["Distributions", v"0.12.5", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.5", "StatsFuns", "0.3.1-*" ], + ["Docile", v"0.1.0", "AnsiColor", "*" ], + ["Docile", v"0.1.0", "Markdown", "*" ], + ["Docile", v"0.3.1" ], + ["Docile", v"0.3.2", "Compat", "*" ], + ["Docile", v"0.4.6", "Compat", "*" ], + ["Docile", v"0.4.13", "Compat", "0.3.3-*" ], + ["Docile", v"0.5.18", "Compat", "0.3.5-*" ], + ["Docile", v"0.5.23", "Compat", "0.7.1-*" ], + ["DualNumbers", v"0.1.0", "Calculus", "*" ], + ["DualNumbers", v"0.1.3", "Calculus", "*" ], + ["DualNumbers", v"0.1.3", "NaNMath", "*" ], + ["DualNumbers", v"0.1.5", "Calculus", "*" ], + ["DualNumbers", v"0.1.5", "Compat", "*" ], + ["DualNumbers", v"0.1.5", "NaNMath", "*" ], + ["DualNumbers", v"0.2.2", "Calculus", "*" ], + ["DualNumbers", v"0.2.2", "NaNMath", "*" ], + ["DualNumbers", v"0.3.0", "Calculus", "*" ], + ["DualNumbers", v"0.3.0", "NaNMath", "*" ], + ["DualNumbers", v"0.3.0", "Compat", "0.9.1-*" ], + ["ELF", v"0.0.0", "StrPack", "*" ], + ["ELF", v"0.1.0", "DWARF", "*" ], + ["ELF", v"0.1.0", "FileIO", "*" ], + ["ELF", v"0.1.0", "ObjFileBase", "*" ], + ["ELF", v"0.1.0", "StructIO", "*" ], + ["EllipsisNotation", v"0.0.1" ], + ["EllipsisNotation", v"0.1.0" ], + ["FFTViews", v"0.0.1", "CustomUnitRanges", "*" ], + ["FFTViews", v"0.0.2", "CustomUnitRanges", "*" ], + ["FFTViews", v"0.0.2", "Compat", "0.17.0-*" ], + ["FactCheck", v"0.0.0" ], + ["FactCheck", v"0.0.2" ], + ["FactCheck", v"0.2.2" ], + ["FactCheck", v"0.4.2", "Compat", "*" ], + ["FactCheck", v"0.4.3", "Compat", "0.7.18-*" ], + ["FileIO", v"0.0.5", "Compat", "*" ], + ["FileIO", v"0.0.5", "Docile", "*" ], + ["FileIO", v"0.0.6", "Docile", "*" ], + ["FileIO", v"0.0.6", "Compat", "0.7.15-*" ], + ["FileIO", v"0.1.1", "Compat", "0.7.19-*" ], + ["FileIO", v"0.2.1", "Compat", "0.7.19-*" ], + ["FileIO", v"0.3.0", "Compat", "0.9.5-*" ], + ["FileIO", v"0.3.1", "Compat", "0.17.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.14" ], + ["FiniteElementDiffEq", v"0.0.3", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.3", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "Plots", "0.9.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "DiffEqBase", "0.0.0-0.14" ], + ["FiniteElementDiffEq", v"0.0.4", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.4", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.4", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "DiffEqBase", "0.1.1-0.14" ], + ["FiniteElementDiffEq", v"0.0.5", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.5", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.5", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "DiffEqBase", "0.4.0-0.14" ], + ["FiniteElementDiffEq", v"0.2.0", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.0", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.0", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.2.0", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.1", "DiffEqBase", "0.4.0-0.14" ], + ["FiniteElementDiffEq", v"0.2.1", "DiffEqPDEBase", "*" ], + ["FiniteElementDiffEq", v"0.2.1", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.1", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.1", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.2.1", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.2.1", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "DiffEqBase", "0.15.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "DiffEqPDEBase", "*" ], + ["FiniteElementDiffEq", v"0.3.0", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.3.0", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.3.0", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.3.0", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "VectorizedRoutines", "0.0.2-*" ], + ["FixedPointNumbers", v"0.0.5" ], + ["FixedPointNumbers", v"0.0.12", "Compat", "0.2.2-*" ], + ["FixedPointNumbers", v"0.1.2" ], + ["FixedPointNumbers", v"0.1.4", "Compat", "0.7.14-*" ], + ["FixedPointNumbers", v"0.1.7", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.2.1", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.3.0", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.3.2", "Compat", "0.9.5-*" ], + ["FixedPointNumbers", v"0.3.6", "Compat", "0.17.0-*" ], + ["FixedSizeArrays", v"0.1.0" ], + ["FixedSizeArrays", v"0.1.1", "Compat", "*" ], + ["FixedSizeArrays", v"0.2.1", "Compat", "0.7.15-*" ], + ["FixedSizeArrays", v"0.2.2", "Compat", "0.7.15-*" ], + ["FixedSizeArrays", v"0.2.5", "Compat", "0.8.7-*" ], + ["ForwardDiff", v"0.2.5", "Calculus", "*" ], + ["ForwardDiff", v"0.2.5", "NaNMath", "*" ], + ["ForwardDiff", v"0.2.5", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.4", "Calculus", "0.2.0-*" ], + ["ForwardDiff", v"0.3.4", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.4", "DiffBase", "0.0.3-*" ], + ["ForwardDiff", v"0.3.4", "NaNMath", "0.2.2-*" ], + ["ForwardDiff", v"0.3.5", "Calculus", "0.1.15-*" ], + ["ForwardDiff", v"0.3.5", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.5", "DiffBase", "0.0.1-*" ], + ["ForwardDiff", v"0.3.5", "NaNMath", "0.2.1-*" ], + ["ForwardDiff", v"0.4.2", "Calculus", "0.2.0-*" ], + ["ForwardDiff", v"0.4.2", "Compat", "0.19.0-*" ], + ["ForwardDiff", v"0.4.2", "DiffBase", "0.0.3-*" ], + ["ForwardDiff", v"0.4.2", "NaNMath", "0.2.2-*" ], + ["ForwardDiff", v"0.4.2", "SpecialFunctions", "0.1.0-*" ], + ["GZip", v"0.2.13" ], + ["GZip", v"0.2.16", "Compat", "*" ], + ["GZip", v"0.2.18", "Compat", "0.4.8-*" ], + ["GZip", v"0.2.19", "Compat", "0.7.9-*" ], + ["GZip", v"0.2.20", "Compat", "0.8.0-*" ], + ["GZip", v"0.3.0", "Compat", "0.9.5-*" ], + ["Gallium", v"0.0.1", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.1", "AbstractTrees", "*" ], + ["Gallium", v"0.0.1", "DWARF", "*" ], + ["Gallium", v"0.0.1", "ELF", "*" ], + ["Gallium", v"0.0.1", "MachO", "*" ], + ["Gallium", v"0.0.1", "TerminalUI", "*" ], + ["Gallium", v"0.0.2", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.2", "AbstractTrees", "*" ], + ["Gallium", v"0.0.2", "DWARF", "*" ], + ["Gallium", v"0.0.2", "ELF", "*" ], + ["Gallium", v"0.0.2", "MachO", "*" ], + ["Gallium", v"0.0.2", "ObjFileBase", "*" ], + ["Gallium", v"0.0.2", "TerminalUI", "*" ], + ["Gallium", v"0.0.4", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.4", "AbstractTrees", "*" ], + ["Gallium", v"0.0.4", "COFF", "*" ], + ["Gallium", v"0.0.4", "CRC", "*" ], + ["Gallium", v"0.0.4", "DWARF", "*" ], + ["Gallium", v"0.0.4", "ELF", "*" ], + ["Gallium", v"0.0.4", "MachO", "*" ], + ["Gallium", v"0.0.4", "ObjFileBase", "*" ], + ["Gallium", v"0.0.4", "TerminalUI", "*" ], + ["GenericSVD", v"0.0.2", "Compat", "0.8.6-*" ], + ["GnuTLS", v"0.0.1", "Nettle", "*" ], + ["GnuTLS", v"0.0.1", "BinDeps", "0.2.1-*" ], + ["GnuTLS", v"0.0.4", "Compat", "*" ], + ["GnuTLS", v"0.0.4", "Nettle", "*" ], + ["GnuTLS", v"0.0.4", "BinDeps", "0.2.1-*" ], + ["GnuTLS", v"0.0.5", "BinDeps", "*" ], + ["GnuTLS", v"0.0.5", "Compat", "*" ], + ["GnuTLS", v"0.0.5", "Nettle", "*" ], + ["Graphics", v"0.1.1" ], + ["Graphics", v"0.1.3", "Colors", "*" ], + ["Graphics", v"0.1.4", "Colors", "*" ], + ["Graphics", v"0.1.4", "Compat", "0.17.0-*" ], + ["Graphics", v"0.2.0", "Colors", "*" ], + ["Graphics", v"0.2.0", "Compat", "0.17.0-*" ], + ["Graphics", v"0.2.0", "NaNMath", "0.2.4-*" ], + ["HDF5", v"0.2.1", "StrPack", "*" ], + ["HDF5", v"0.2.9" ], + ["HDF5", v"0.4.6", "BinDeps", "*" ], + ["HDF5", v"0.5.2", "BinDeps", "*" ], + ["HDF5", v"0.5.2", "Blosc", "*" ], + ["HDF5", v"0.5.2", "Compat", "*" ], + ["HDF5", v"0.5.5", "BinDeps", "*" ], + ["HDF5", v"0.5.5", "Blosc", "*" ], + ["HDF5", v"0.5.5", "Compat", "0.4.11-*" ], + ["HDF5", v"0.6.0", "BinDeps", "*" ], + ["HDF5", v"0.6.0", "Blosc", "*" ], + ["HDF5", v"0.6.0", "Compat", "0.7.1-*" ], + ["HDF5", v"0.6.1", "BinDeps", "*" ], + ["HDF5", v"0.6.1", "Blosc", "*" ], + ["HDF5", v"0.6.1", "Compat", "0.7.16-*" ], + ["HDF5", v"0.7.3", "BinDeps", "*" ], + ["HDF5", v"0.7.3", "Blosc", "*" ], + ["HDF5", v"0.7.3", "Compat", "0.8.0-*" ], + ["HDF5", v"0.8.0", "BinDeps", "*" ], + ["HDF5", v"0.8.0", "Blosc", "*" ], + ["HDF5", v"0.8.0", "Compat", "0.17.0-*" ], + ["Hiccup", v"0.0.0", "Lazy", "*" ], + ["Hiccup", v"0.0.1", "Lazy", "*" ], + ["Hiccup", v"0.0.1", "MacroTools", "*" ], + ["Hiccup", v"0.0.2", "Compat", "*" ], + ["Hiccup", v"0.0.2", "Lazy", "*" ], + ["Hiccup", v"0.0.2", "MacroTools", "*" ], + ["Hiccup", v"0.0.3", "Lazy", "*" ], + ["Hiccup", v"0.0.3", "MacroTools", "*" ], + ["Hiccup", v"0.0.3", "Compat", "0.8.2-*" ], + ["Hiccup", v"0.1.1", "Compat", "0.8.2-*" ], + ["Hiccup", v"0.1.1", "MacroTools", "0.3.4-*" ], + ["HttpCommon", v"0.0.1" ], + ["HttpCommon", v"0.0.2", "Calendar", "*" ], + ["HttpCommon", v"0.0.2", "FactCheck", "0.0.1-*" ], + ["HttpCommon", v"0.0.5", "Calendar", "*" ], + ["HttpCommon", v"0.0.5", "FactCheck", "0.1.0-*" ], + ["HttpCommon", v"0.0.12", "Dates", "*" ], + ["HttpCommon", v"0.1.1", "Compat", "*" ], + ["HttpCommon", v"0.1.1", "Dates", "*" ], + ["HttpCommon", v"0.2.0", "Compat", "*" ], + ["HttpCommon", v"0.2.0", "Dates", "*" ], + ["HttpCommon", v"0.2.0", "URIParser", "*" ], + ["HttpCommon", v"0.2.4", "URIParser", "*" ], + ["HttpCommon", v"0.2.7", "URIParser", "*" ], + ["HttpCommon", v"0.2.7", "Compat", "0.7.20-*" ], + ["HttpParser", v"0.0.0", "HttpCommon", "*" ], + ["HttpParser", v"0.0.1", "BinDeps", "*" ], + ["HttpParser", v"0.0.1", "HttpCommon", "*" ], + ["HttpParser", v"0.0.2" ], + ["HttpParser", v"0.0.3", "HttpCommon", "*" ], + ["HttpParser", v"0.0.3", "BinDeps", "0.2.1-*" ], + ["HttpParser", v"0.0.4", "HttpCommon", "*" ], + ["HttpParser", v"0.0.4", "BinDeps", "0.2.5-*" ], + ["HttpParser", v"0.0.11", "BinDeps", "0.2.5-*" ], + ["HttpParser", v"0.0.11", "HttpCommon", "0.0.3-*" ], + ["HttpParser", v"0.1.0", "BinDeps", "*" ], + ["HttpParser", v"0.1.0", "Compat", "*" ], + ["HttpParser", v"0.1.0", "HttpCommon", "*" ], + ["HttpParser", v"0.1.1", "BinDeps", "*" ], + ["HttpParser", v"0.1.1", "HttpCommon", "*" ], + ["HttpParser", v"0.2.0", "BinDeps", "*" ], + ["HttpParser", v"0.2.0", "HttpCommon", "*" ], + ["HttpParser", v"0.2.0", "Compat", "0.7.20-*" ], + ["HttpServer", v"0.0.1", "HttpCommon", "*" ], + ["HttpServer", v"0.0.1", "HttpParser", "*" ], + ["HttpServer", v"0.0.3", "GnuTLS", "*" ], + ["HttpServer", v"0.0.3", "HttpCommon", "*" ], + ["HttpServer", v"0.0.3", "HttpParser", "*" ], + ["HttpServer", v"0.0.7", "GnuTLS", "*" ], + ["HttpServer", v"0.0.7", "HttpCommon", "0.0.3-*" ], + ["HttpServer", v"0.0.7", "HttpParser", "0.0.5-*" ], + ["HttpServer", v"0.0.8", "GnuTLS", "*" ], + ["HttpServer", v"0.0.8", "HttpCommon", "*" ], + ["HttpServer", v"0.0.8", "HttpParser", "*" ], + ["HttpServer", v"0.0.11", "Docile", "*" ], + ["HttpServer", v"0.0.11", "GnuTLS", "*" ], + ["HttpServer", v"0.0.11", "HttpCommon", "*" ], + ["HttpServer", v"0.0.11", "HttpParser", "*" ], + ["HttpServer", v"0.1.2", "Compat", "*" ], + ["HttpServer", v"0.1.2", "Docile", "*" ], + ["HttpServer", v"0.1.2", "GnuTLS", "*" ], + ["HttpServer", v"0.1.2", "HttpCommon", "*" ], + ["HttpServer", v"0.1.2", "HttpParser", "*" ], + ["HttpServer", v"0.1.5", "HttpCommon", "*" ], + ["HttpServer", v"0.1.5", "HttpParser", "*" ], + ["HttpServer", v"0.1.5", "MbedTLS", "*" ], + ["HttpServer", v"0.1.7", "HttpCommon", "*" ], + ["HttpServer", v"0.1.7", "HttpParser", "*" ], + ["HttpServer", v"0.1.7", "MbedTLS", "*" ], + ["HttpServer", v"0.1.7", "Compat", "0.7.16-*" ], + ["HttpServer", v"0.2.0", "HttpCommon", "*" ], + ["HttpServer", v"0.2.0", "HttpParser", "*" ], + ["HttpServer", v"0.2.0", "MbedTLS", "*" ], + ["HttpServer", v"0.2.0", "Compat", "0.17.0-*" ], + ["ICU", v"0.2.1" ], + ["ICU", v"0.4.4", "BinDeps", "*" ], + ["ImageAxes", v"0.0.2", "AxisArrays", "*" ], + ["ImageAxes", v"0.0.2", "Colors", "*" ], + ["ImageAxes", v"0.0.2", "ImageCore", "*" ], + ["ImageAxes", v"0.0.2", "Reexport", "*" ], + ["ImageAxes", v"0.0.2", "SimpleTraits", "*" ], + ["ImageAxes", v"0.1.1", "AxisArrays", "*" ], + ["ImageAxes", v"0.1.1", "Colors", "*" ], + ["ImageAxes", v"0.1.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageAxes", v"0.1.1", "ImageCore", "*" ], + ["ImageAxes", v"0.1.1", "Reexport", "*" ], + ["ImageAxes", v"0.1.1", "SimpleTraits", "*" ], + ["ImageAxes", v"0.2.1", "AxisArrays", "*" ], + ["ImageAxes", v"0.2.1", "Colors", "*" ], + ["ImageAxes", v"0.2.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageAxes", v"0.2.1", "MappedArrays", "*" ], + ["ImageAxes", v"0.2.1", "Reexport", "*" ], + ["ImageAxes", v"0.2.1", "SimpleTraits", "*" ], + ["ImageAxes", v"0.2.1", "ImageCore", "0.2.0-*" ], + ["ImageCore", v"0.0.3", "Colors", "*" ], + ["ImageCore", v"0.0.3", "Graphics", "*" ], + ["ImageCore", v"0.0.3", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.3", "MappedArrays", "*" ], + ["ImageCore", v"0.0.4", "Colors", "*" ], + ["ImageCore", v"0.0.4", "Graphics", "*" ], + ["ImageCore", v"0.0.4", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.4", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.0.5", "Colors", "*" ], + ["ImageCore", v"0.0.5", "Graphics", "*" ], + ["ImageCore", v"0.0.5", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.5", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.0.5", "OffsetArrays", "*" ], + ["ImageCore", v"0.0.5", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.1", "Colors", "*" ], + ["ImageCore", v"0.1.1", "Graphics", "*" ], + ["ImageCore", v"0.1.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.1", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.1", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.1", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.2", "ColorTypes", "*" ], + ["ImageCore", v"0.1.2", "Colors", "*" ], + ["ImageCore", v"0.1.2", "Graphics", "*" ], + ["ImageCore", v"0.1.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.2", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.2", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.2", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.5", "ColorTypes", "*" ], + ["ImageCore", v"0.1.5", "Colors", "*" ], + ["ImageCore", v"0.1.5", "Graphics", "*" ], + ["ImageCore", v"0.1.5", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.1.5", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.5", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.5", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.5", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.2.0", "ColorTypes", "*" ], + ["ImageCore", v"0.2.0", "Colors", "*" ], + ["ImageCore", v"0.2.0", "Graphics", "*" ], + ["ImageCore", v"0.2.0", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.2.0", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.2.0", "OffsetArrays", "*" ], + ["ImageCore", v"0.2.0", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.3.0", "Colors", "*" ], + ["ImageCore", v"0.3.0", "Graphics", "*" ], + ["ImageCore", v"0.3.0", "ColorTypes", "0.4.0-*" ], + ["ImageCore", v"0.3.0", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.3.0", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.3.0", "OffsetArrays", "*" ], + ["ImageCore", v"0.3.0", "ShowItLikeYouBuildIt", "*" ], + ["ImageFiltering", v"0.0.2", "CatIndices", "*" ], + ["ImageFiltering", v"0.0.2", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.0.2", "Colors", "*" ], + ["ImageFiltering", v"0.0.2", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.0.2", "ImageCore", "*" ], + ["ImageFiltering", v"0.0.2", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.0.2", "FFTViews", "*" ], + ["ImageFiltering", v"0.0.2", "MappedArrays", "*" ], + ["ImageFiltering", v"0.0.2", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.0.2", "StaticArrays", "0.0.5-*" ], + ["ImageFiltering", v"0.0.2", "TiledIteration", "*" ], + ["ImageFiltering", v"0.0.2", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageFiltering", v"0.1.2", "CatIndices", "*" ], + ["ImageFiltering", v"0.1.2", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.1.2", "Colors", "*" ], + ["ImageFiltering", v"0.1.2", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.1.2", "FFTViews", "*" ], + ["ImageFiltering", v"0.1.2", "ImageCore", "*" ], + ["ImageFiltering", v"0.1.2", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.1.2", "MappedArrays", "*" ], + ["ImageFiltering", v"0.1.2", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.1.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageFiltering", v"0.1.2", "StaticArrays", "0.0.5-*" ], + ["ImageFiltering", v"0.1.2", "TiledIteration", "*" ], + ["ImageFiltering", v"0.1.4", "CatIndices", "*" ], + ["ImageFiltering", v"0.1.4", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.1.4", "Colors", "*" ], + ["ImageFiltering", v"0.1.4", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.1.4", "Compat", "0.18.0-*" ], + ["ImageFiltering", v"0.1.4", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.1.4", "FFTViews", "*" ], + ["ImageFiltering", v"0.1.4", "ImageCore", "*" ], + ["ImageFiltering", v"0.1.4", "MappedArrays", "*" ], + ["ImageFiltering", v"0.1.4", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.1.4", "TiledIteration", "*" ], + ["ImageFiltering", v"0.1.4", "FixedPointNumbers", "0.3.0-*" ], + ["ImageFiltering", v"0.1.4", "StaticArrays", "0.0.5-*" ], + ["ImageMagick", v"0.0.1", "BinDeps", "*" ], + ["ImageMagick", v"0.0.1", "ColorTypes", "*" ], + ["ImageMagick", v"0.0.1", "Compat", "*" ], + ["ImageMagick", v"0.0.1", "FileIO", "*" ], + ["ImageMagick", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageMagick", v"0.0.1", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.3", "BinDeps", "*" ], + ["ImageMagick", v"0.1.3", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.3", "FileIO", "*" ], + ["ImageMagick", v"0.1.3", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.3", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.6", "BinDeps", "*" ], + ["ImageMagick", v"0.1.6", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.6", "Compat", "0.7.7-*" ], + ["ImageMagick", v"0.1.6", "FileIO", "*" ], + ["ImageMagick", v"0.1.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.6", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.7", "BinDeps", "*" ], + ["ImageMagick", v"0.1.7", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.7", "Compat", "0.8.4-*" ], + ["ImageMagick", v"0.1.7", "FileIO", "*" ], + ["ImageMagick", v"0.1.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.7", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.8", "BinDeps", "*" ], + ["ImageMagick", v"0.1.8", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.1.8", "Compat", "0.8.4-*" ], + ["ImageMagick", v"0.1.8", "FileIO", "*" ], + ["ImageMagick", v"0.1.8", "FixedPointNumbers", "0.1.8-0.2" ], + ["ImageMagick", v"0.1.8", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.2.1", "BinDeps", "*" ], + ["ImageMagick", v"0.2.1", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.1", "FileIO", "*" ], + ["ImageMagick", v"0.2.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.3", "BinDeps", "*" ], + ["ImageMagick", v"0.2.3", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.3", "Compat", "0.18.0-*" ], + ["ImageMagick", v"0.2.3", "FileIO", "*" ], + ["ImageMagick", v"0.2.3", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.3", "ImageCore", "0.1.0-*" ], + ["ImageMagick", v"0.2.4", "BinDeps", "*" ], + ["ImageMagick", v"0.2.4", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.4", "Compat", "0.24.0-*" ], + ["ImageMagick", v"0.2.4", "FileIO", "*" ], + ["ImageMagick", v"0.2.4", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.4", "Images", "0.6.0-*" ], + ["ImageMetadata", v"0.0.1", "Colors", "*" ], + ["ImageMetadata", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageMetadata", v"0.0.1", "ImageAxes", "*" ], + ["ImageMetadata", v"0.0.1", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.0.1", "ImageCore", "*" ], + ["ImageMetadata", v"0.0.1", "IndirectArrays", "*" ], + ["ImageMetadata", v"0.2.0", "Colors", "*" ], + ["ImageMetadata", v"0.2.0", "ImageAxes", "*" ], + ["ImageMetadata", v"0.2.0", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMetadata", v"0.2.0", "ImageCore", "*" ], + ["ImageMetadata", v"0.2.0", "IndirectArrays", "*" ], + ["ImageMetadata", v"0.2.3", "Colors", "*" ], + ["ImageMetadata", v"0.2.3", "ImageAxes", "*" ], + ["ImageMetadata", v"0.2.3", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.2.3", "Compat", "0.19.0-*" ], + ["ImageMetadata", v"0.2.3", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMetadata", v"0.2.3", "ImageCore", "*" ], + ["ImageMetadata", v"0.2.3", "IndirectArrays", "*" ], + ["ImageTransformations", v"0.0.1", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.0.1", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.0.1", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.0.1", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.0.1", "Interpolations", "0.3.7-*" ], + ["ImageTransformations", v"0.0.1", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.0.1", "StaticArrays", "*" ], + ["ImageTransformations", v"0.1.0", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.1.0", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.1.0", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.1.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageTransformations", v"0.1.0", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.1.0", "Interpolations", "0.3.7-*" ], + ["ImageTransformations", v"0.1.0", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.1.0", "StaticArrays", "*" ], + ["ImageTransformations", v"0.2.2", "AxisAlgorithms", "*" ], + ["ImageTransformations", v"0.2.2", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.2.2", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.2.2", "Compat", "0.18.0-*" ], + ["ImageTransformations", v"0.2.2", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.2.2", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.2.2", "StaticArrays", "*" ], + ["ImageTransformations", v"0.2.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageTransformations", v"0.2.2", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.2.2", "Interpolations", "0.4.0-*" ], + ["Images", v"0.4.50", "BinDeps", "*" ], + ["Images", v"0.4.50", "ColorVectorSpace", "*" ], + ["Images", v"0.4.50", "Colors", "*" ], + ["Images", v"0.4.50", "SIUnits", "*" ], + ["Images", v"0.4.50", "Compat", "0.4.0-*" ], + ["Images", v"0.4.50", "FixedPointNumbers", "0.0.0-0.2" ], + ["Images", v"0.4.50", "Graphics", "0.1.0-*" ], + ["Images", v"0.4.50", "Zlib", "*" ], + ["Images", v"0.5.4", "FileIO", "*" ], + ["Images", v"0.5.4", "SIUnits", "*" ], + ["Images", v"0.5.4", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.4", "Colors", "0.6.0-*" ], + ["Images", v"0.5.4", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.4", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.4", "Zlib", "*" ], + ["Images", v"0.5.5", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.5", "Colors", "0.6.0-*" ], + ["Images", v"0.5.5", "Compat", "0.7.15-*" ], + ["Images", v"0.5.5", "FileIO", "*" ], + ["Images", v"0.5.5", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.5", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.5", "SIUnits", "*" ], + ["Images", v"0.5.5", "Zlib", "*" ], + ["Images", v"0.5.9", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.9", "Colors", "0.6.0-*" ], + ["Images", v"0.5.9", "Compat", "0.8.4-*" ], + ["Images", v"0.5.9", "FileIO", "*" ], + ["Images", v"0.5.9", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.9", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.9", "SIUnits", "*" ], + ["Images", v"0.5.9", "StatsBase", "*" ], + ["Images", v"0.5.9", "Zlib", "*" ], + ["Images", v"0.5.14", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.14", "Colors", "0.6.0-*" ], + ["Images", v"0.5.14", "Compat", "0.9.1-*" ], + ["Images", v"0.5.14", "FileIO", "*" ], + ["Images", v"0.5.14", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.14", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.14", "SIUnits", "*" ], + ["Images", v"0.5.14", "StatsBase", "*" ], + ["Images", v"0.5.14", "Zlib", "*" ], + ["Images", v"0.6.0", "AxisArrays", "*" ], + ["Images", v"0.6.0", "FileIO", "*" ], + ["Images", v"0.6.0", "ImageAxes", "*" ], + ["Images", v"0.6.0", "ImageCore", "*" ], + ["Images", v"0.6.0", "ImageFiltering", "*" ], + ["Images", v"0.6.0", "ImageMetadata", "*" ], + ["Images", v"0.6.0", "IndirectArrays", "*" ], + ["Images", v"0.6.0", "MappedArrays", "*" ], + ["Images", v"0.6.0", "Reexport", "*" ], + ["Images", v"0.6.0", "SIUnits", "*" ], + ["Images", v"0.6.0", "StatsBase", "*" ], + ["Images", v"0.6.0", "Zlib", "*" ], + ["Images", v"0.6.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.6.0", "Colors", "0.7.0-*" ], + ["Images", v"0.6.0", "Compat", "0.9.1-*" ], + ["Images", v"0.6.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.6.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.7.0", "AxisArrays", "*" ], + ["Images", v"0.7.0", "FileIO", "*" ], + ["Images", v"0.7.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.7.0", "Colors", "0.7.0-*" ], + ["Images", v"0.7.0", "Compat", "0.9.1-*" ], + ["Images", v"0.7.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.7.0", "ImageAxes", "*" ], + ["Images", v"0.7.0", "ImageCore", "*" ], + ["Images", v"0.7.0", "ImageFiltering", "*" ], + ["Images", v"0.7.0", "ImageMetadata", "*" ], + ["Images", v"0.7.0", "IndirectArrays", "*" ], + ["Images", v"0.7.0", "MappedArrays", "*" ], + ["Images", v"0.7.0", "Reexport", "*" ], + ["Images", v"0.7.0", "SIUnits", "*" ], + ["Images", v"0.7.0", "StatsBase", "*" ], + ["Images", v"0.7.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.8.0", "AxisArrays", "*" ], + ["Images", v"0.8.0", "FileIO", "*" ], + ["Images", v"0.8.0", "ImageAxes", "*" ], + ["Images", v"0.8.0", "ImageCore", "*" ], + ["Images", v"0.8.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.8.0", "Colors", "0.7.0-*" ], + ["Images", v"0.8.0", "Compat", "0.9.1-*" ], + ["Images", v"0.8.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.8.0", "ImageFiltering", "*" ], + ["Images", v"0.8.0", "ImageMetadata", "*" ], + ["Images", v"0.8.0", "ImageTransformations", "*" ], + ["Images", v"0.8.0", "IndirectArrays", "*" ], + ["Images", v"0.8.0", "MappedArrays", "*" ], + ["Images", v"0.8.0", "Reexport", "*" ], + ["Images", v"0.8.0", "SIUnits", "*" ], + ["Images", v"0.8.0", "StatsBase", "*" ], + ["Images", v"0.8.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.0", "AxisArrays", "*" ], + ["Images", v"0.9.0", "FileIO", "*" ], + ["Images", v"0.9.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.9.0", "ImageAxes", "*" ], + ["Images", v"0.9.0", "ImageCore", "*" ], + ["Images", v"0.9.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.9.0", "Colors", "0.7.0-*" ], + ["Images", v"0.9.0", "Compat", "0.18.0-*" ], + ["Images", v"0.9.0", "ImageFiltering", "*" ], + ["Images", v"0.9.0", "ImageMetadata", "*" ], + ["Images", v"0.9.0", "ImageTransformations", "*" ], + ["Images", v"0.9.0", "IndirectArrays", "*" ], + ["Images", v"0.9.0", "MappedArrays", "*" ], + ["Images", v"0.9.0", "Reexport", "*" ], + ["Images", v"0.9.0", "SIUnits", "*" ], + ["Images", v"0.9.0", "StatsBase", "*" ], + ["Images", v"0.9.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.1", "AxisArrays", "*" ], + ["Images", v"0.9.1", "FileIO", "*" ], + ["Images", v"0.9.1", "ImageAxes", "*" ], + ["Images", v"0.9.1", "ImageCore", "*" ], + ["Images", v"0.9.1", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.9.1", "Colors", "0.7.0-*" ], + ["Images", v"0.9.1", "Compat", "0.19.0-*" ], + ["Images", v"0.9.1", "ImageFiltering", "*" ], + ["Images", v"0.9.1", "ImageMetadata", "*" ], + ["Images", v"0.9.1", "ImageTransformations", "*" ], + ["Images", v"0.9.1", "IndirectArrays", "*" ], + ["Images", v"0.9.1", "MappedArrays", "*" ], + ["Images", v"0.9.1", "Reexport", "*" ], + ["Images", v"0.9.1", "SIUnits", "*" ], + ["Images", v"0.9.1", "StatsBase", "*" ], + ["Images", v"0.9.1", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.1", "Graphics", "0.1.0-*" ], + ["IndirectArrays", v"0.1.0" ], + ["IndirectArrays", v"0.1.1", "Compat", "0.19.0-*" ], + ["InplaceOps", v"0.1.0" ], + ["Interpolations", v"0.0.1", "Compat", "*" ], + ["Interpolations", v"0.0.1", "WoodburyMatrices", "*" ], + ["Interpolations", v"0.1.0", "WoodburyMatrices", "*" ], + ["Interpolations", v"0.3.4", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.4", "Ratios", "*" ], + ["Interpolations", v"0.3.4", "WoodburyMatrices", "0.1.0-*" ], + ["Interpolations", v"0.3.5", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.5", "Ratios", "*" ], + ["Interpolations", v"0.3.5", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.6", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.6", "Ratios", "*" ], + ["Interpolations", v"0.3.6", "Compat", "0.8.0-*" ], + ["Interpolations", v"0.3.6", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.7", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.7", "DualNumbers", "*" ], + ["Interpolations", v"0.3.7", "Ratios", "*" ], + ["Interpolations", v"0.3.7", "Compat", "0.8.0-*" ], + ["Interpolations", v"0.3.7", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.8", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.8", "DualNumbers", "*" ], + ["Interpolations", v"0.3.8", "Ratios", "*" ], + ["Interpolations", v"0.3.8", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.3.8", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.4.0", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.4.0", "DualNumbers", "*" ], + ["Interpolations", v"0.4.0", "Ratios", "*" ], + ["Interpolations", v"0.4.0", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.4.0", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.5.0", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.5.0", "DualNumbers", "*" ], + ["Interpolations", v"0.5.0", "Ratios", "*" ], + ["Interpolations", v"0.5.0", "ShowItLikeYouBuildIt", "*" ], + ["Interpolations", v"0.5.0", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.5.0", "WoodburyMatrices", "0.1.5-*" ], + ["IntervalSets", v"0.0.2" ], + ["IntervalSets", v"0.0.5", "Compat", "0.17.0-*" ], + ["IterativeSolvers", v"0.0.1", "Compat", "*" ], + ["IterativeSolvers", v"0.0.1", "Docile", "*" ], + ["IterativeSolvers", v"0.2.1", "Compat", "*" ], + ["IterativeSolvers", v"0.2.2", "Compat", "*" ], + ["Iterators", v"0.1.10", "Compat", "*" ], + ["Iterators", v"0.3.0" ], + ["JLD", v"0.6.4", "Compat", "0.8.0-*" ], + ["JLD", v"0.6.4", "FileIO", "*" ], + ["JLD", v"0.6.4", "HDF5", "*" ], + ["JLD", v"0.6.4", "LegacyStrings", "*" ], + ["JLD", v"0.6.10", "Compat", "0.8.0-*" ], + ["JLD", v"0.6.10", "FileIO", "*" ], + ["JLD", v"0.6.10", "HDF5", "*" ], + ["JLD", v"0.6.10", "LegacyStrings", "*" ], + ["JSON", v"0.3.9" ], + ["JSON", v"0.4.4", "Compat", "*" ], + ["JSON", v"0.4.5", "Compat", "0.4.12-*" ], + ["JSON", v"0.5.0", "Compat", "0.7.1-*" ], + ["JSON", v"0.5.4", "Compat", "0.7.16-*" ], + ["JSON", v"0.6.0", "Compat", "0.7.20-*" ], + ["JSON", v"0.8.0", "Compat", "0.8.4-*" ], + ["JSON", v"0.8.2", "Compat", "0.9.5-*" ], + ["JSON", v"0.8.3", "Compat", "0.17.0-*" ], + ["JSON", v"0.9.0", "Compat", "0.17.0-*" ], + ["JuliaParser", v"0.5.3", "FactCheck", "*" ], + ["JuliaParser", v"0.6.4", "Compat", "*" ], + ["JuliaParser", v"0.6.4", "FactCheck", "*" ], + ["JuliaParser", v"0.7.0", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.0", "Compat", "*" ], + ["JuliaParser", v"0.7.1", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.1", "Compat", "*" ], + ["JuliaParser", v"0.7.4", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.4", "Compat", "*" ], + ["Juno", v"0.2.3", "Hiccup", "*" ], + ["Juno", v"0.2.3", "MacroTools", "*" ], + ["Juno", v"0.2.3", "Media", "*" ], + ["Juno", v"0.2.4", "Hiccup", "*" ], + ["Juno", v"0.2.4", "MacroTools", "*" ], + ["Juno", v"0.2.4", "Media", "*" ], + ["Juno", v"0.2.5", "Hiccup", "*" ], + ["Juno", v"0.2.5", "MacroTools", "*" ], + ["Juno", v"0.2.5", "Media", "*" ], + ["Juno", v"0.2.7", "Hiccup", "*" ], + ["Juno", v"0.2.7", "MacroTools", "*" ], + ["Juno", v"0.2.7", "Media", "*" ], + ["LNR", v"0.0.0" ], + ["LNR", v"0.0.1", "Lazy", "*" ], + ["LNR", v"0.0.2", "Compat", "*" ], + ["LNR", v"0.0.2", "Lazy", "*" ], + ["Lazy", v"0.9.1" ], + ["Lazy", v"0.10.0", "MacroTools", "*" ], + ["Lazy", v"0.10.1", "Compat", "*" ], + ["Lazy", v"0.10.1", "MacroTools", "*" ], + ["Lazy", v"0.11.2", "MacroTools", "*" ], + ["Lazy", v"0.11.2", "Compat", "0.8.0-*" ], + ["Lazy", v"0.11.6", "MacroTools", "*" ], + ["Lazy", v"0.11.6", "Compat", "0.8.0-*" ], + ["LearnBase", v"0.1.0", "StatsBase", "*" ], + ["LearnBase", v"0.1.1", "Distributions", "*" ], + ["LearnBase", v"0.1.1", "StatsBase", "*" ], + ["LearnBase", v"0.1.2", "Distributions", "*" ], + ["LearnBase", v"0.1.2", "StatsBase", "0.8.0-*" ], + ["LearnBase", v"0.1.3", "Distributions", "*" ], + ["LearnBase", v"0.1.3", "Compat", "0.17.0-*" ], + ["LearnBase", v"0.1.3", "StatsBase", "0.8.0-*" ], + ["LearnBase", v"0.1.5", "Distributions", "*" ], + ["LearnBase", v"0.1.5", "Compat", "0.18.0-*" ], + ["LearnBase", v"0.1.5", "StatsBase", "0.8.0-*" ], + ["LegacyStrings", v"0.1.0" ], + ["LegacyStrings", v"0.2.0", "Compat", "0.8.4-*" ], + ["LegacyStrings", v"0.2.1", "Compat", "0.18.0-*" ], + ["LineSearches", v"0.0.2" ], + ["LineSearches", v"0.1.1" ], + ["LineSearches", v"0.1.5" ], + ["LossFunctions", v"0.0.1", "LearnBase", "0.0.1-0.1" ], + ["LossFunctions", v"0.0.1", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.1", "Reexport", "*" ], + ["LossFunctions", v"0.0.2", "LearnBase", "0.0.1-0.1" ], + ["LossFunctions", v"0.0.2", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.2", "Reexport", "*" ], + ["LossFunctions", v"0.0.3", "LearnBase", "0.1.2-0.1" ], + ["LossFunctions", v"0.0.3", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.3", "StatsBase", "0.8.0-*" ], + ["LossFunctions", v"0.1.0", "LearnBase", "0.1.3-0.1" ], + ["LossFunctions", v"0.1.0", "RecipesBase", "*" ], + ["LossFunctions", v"0.1.0", "StatsBase", "0.8.0-*" ], + ["LsqFit", v"0.0.1", "Calculus", "*" ], + ["LsqFit", v"0.0.1", "Distributions", "*" ], + ["LsqFit", v"0.0.1", "Optim", "0.0.0-0.4" ], + ["LsqFit", v"0.0.2", "Calculus", "*" ], + ["LsqFit", v"0.0.2", "Distributions", "*" ], + ["LsqFit", v"0.0.2", "Optim", "*" ], + ["LsqFit", v"0.1.0", "Calculus", "*" ], + ["LsqFit", v"0.1.0", "Distributions", "*" ], + ["LsqFit", v"0.1.0", "Optim", "0.6.0-*" ], + ["LsqFit", v"0.1.1", "Calculus", "*" ], + ["LsqFit", v"0.1.1", "Distributions", "*" ], + ["LsqFit", v"0.1.1", "Optim", "0.7.0-*" ], + ["LsqFit", v"0.2.0", "Calculus", "*" ], + ["LsqFit", v"0.2.0", "Distributions", "*" ], + ["LsqFit", v"0.2.0", "Compat", "0.9.1-*" ], + ["LsqFit", v"0.2.0", "Optim", "0.7.5-*" ], + ["MachO", v"0.0.4", "ObjFileBase", "*" ], + ["MachO", v"0.0.4", "StructIO", "*" ], + ["MacroTools", v"0.1.0" ], + ["MacroTools", v"0.3.0" ], + ["MacroTools", v"0.3.1", "Compat", "*" ], + ["MacroTools", v"0.3.3", "Compat", "*" ], + ["MacroTools", v"0.3.6", "Compat", "0.7.9-*" ], + ["MappedArrays", v"0.0.2" ], + ["MappedArrays", v"0.0.5" ], + ["MappedArrays", v"0.0.7", "Compat", "0.19.0-*" ], + ["Markdown", v"0.1.0" ], + ["Markdown", v"0.3.0", "Lazy", "*" ], + ["MbedTLS", v"0.2.3", "BinDeps", "*" ], + ["MbedTLS", v"0.2.3", "Compat", "0.7.9-*" ], + ["MbedTLS", v"0.3.0", "BinDeps", "*" ], + ["MbedTLS", v"0.3.0", "Compat", "0.8.0-*" ], + ["MbedTLS", v"0.4.4", "BinDeps", "*" ], + ["MbedTLS", v"0.4.5", "BinDeps", "*" ], + ["MbedTLS", v"0.4.5", "Compat", "0.9.5-*" ], + ["Measures", v"0.0.2" ], + ["Measures", v"0.0.3", "Compat", "0.7.15-*" ], + ["Measures", v"0.1.0", "Compat", "0.18.0-*" ], + ["Media", v"0.1.0", "Lazy", "*" ], + ["Media", v"0.1.0", "Requires", "*" ], + ["Media", v"0.2.2", "Lazy", "*" ], + ["Media", v"0.2.2", "MacroTools", "*" ], + ["Media", v"0.2.2", "Requires", "*" ], + ["Media", v"0.2.3", "MacroTools", "*" ], + ["Media", v"0.2.3", "Lazy", "0.11.3-*" ], + ["Media", v"0.2.7", "MacroTools", "*" ], + ["MultiScaleArrays", v"0.0.1", "Iterators", "*" ], + ["MultiScaleArrays", v"0.0.1", "RecursiveArrayTools", "0.0.2-*" ], + ["MultiScaleArrays", v"0.1.0", "DiffEqBase", "0.11.0-*" ], + ["MultiScaleArrays", v"0.1.0", "Iterators", "*" ], + ["MultiScaleArrays", v"0.1.0", "RecursiveArrayTools", "0.0.2-*" ], + ["Mustache", v"0.0.1", "DataFrames", "*" ], + ["Mustache", v"0.0.7", "Compat", "*" ], + ["Mustache", v"0.0.7", "Requires", "*" ], + ["Mustache", v"0.0.14", "Requires", "*" ], + ["Mustache", v"0.0.14", "Compat", "0.4.0-*" ], + ["Mustache", v"0.1.0" ], + ["Mustache", v"0.1.4", "Compat", "0.7.18-*" ], + ["Mux", v"0.0.0", "Hiccup", "*" ], + ["Mux", v"0.0.0", "HttpServer", "*" ], + ["Mux", v"0.0.0", "Lazy", "*" ], + ["Mux", v"0.0.0", "URIParser", "*" ], + ["Mux", v"0.1.1", "Compat", "*" ], + ["Mux", v"0.1.1", "Hiccup", "*" ], + ["Mux", v"0.1.1", "HttpCommon", "*" ], + ["Mux", v"0.1.1", "HttpServer", "*" ], + ["Mux", v"0.1.1", "Lazy", "*" ], + ["Mux", v"0.1.1", "URIParser", "*" ], + ["Mux", v"0.1.1", "WebSockets", "*" ], + ["Mux", v"0.2.2", "Hiccup", "*" ], + ["Mux", v"0.2.2", "HttpCommon", "*" ], + ["Mux", v"0.2.2", "HttpServer", "*" ], + ["Mux", v"0.2.2", "Lazy", "*" ], + ["Mux", v"0.2.2", "URIParser", "*" ], + ["Mux", v"0.2.2", "WebSockets", "*" ], + ["Mux", v"0.2.3", "Hiccup", "*" ], + ["Mux", v"0.2.3", "HttpCommon", "*" ], + ["Mux", v"0.2.3", "Compat", "0.7.9-*" ], + ["Mux", v"0.2.3", "HttpServer", "*" ], + ["Mux", v"0.2.3", "Lazy", "*" ], + ["Mux", v"0.2.3", "URIParser", "*" ], + ["Mux", v"0.2.3", "WebSockets", "*" ], + ["NLSolversBase", v"2.1.1", "Compat", "0.17.0-*" ], + ["NLsolve", v"0.7.3", "Calculus", "*" ], + ["NLsolve", v"0.7.3", "Distances", "*" ], + ["NLsolve", v"0.7.3", "Optim", "*" ], + ["NLsolve", v"0.7.3", "Compat", "0.8.0-*" ], + ["NLsolve", v"0.7.3", "ForwardDiff", "0.2.0-*" ], + ["NLsolve", v"0.7.3", "LineSearches", "0.0.1-0" ], + ["NLsolve", v"0.8.0", "Calculus", "*" ], + ["NLsolve", v"0.8.0", "Distances", "*" ], + ["NLsolve", v"0.8.0", "Optim", "*" ], + ["NLsolve", v"0.8.0", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.8.0", "ForwardDiff", "0.2.0-*" ], + ["NLsolve", v"0.8.0", "LineSearches", "0.0.1-0" ], + ["NLsolve", v"0.9.0", "Calculus", "*" ], + ["NLsolve", v"0.9.0", "DiffBase", "*" ], + ["NLsolve", v"0.9.0", "Distances", "*" ], + ["NLsolve", v"0.9.0", "Optim", "*" ], + ["NLsolve", v"0.9.0", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.9.0", "ForwardDiff", "0.3.0-*" ], + ["NLsolve", v"0.9.0", "LineSearches", "0.1.2-0" ], + ["NLsolve", v"0.9.1", "Calculus", "*" ], + ["NLsolve", v"0.9.1", "DiffBase", "*" ], + ["NLsolve", v"0.9.1", "Distances", "*" ], + ["NLsolve", v"0.9.1", "Optim", "*" ], + ["NLsolve", v"0.9.1", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.9.1", "ForwardDiff", "0.3.0-*" ], + ["NLsolve", v"0.9.1", "LineSearches", "0.1.2-0" ], + ["NaNMath", v"0.1.1", "Compat", "*" ], + ["NaNMath", v"0.2.0" ], + ["NaNMath", v"0.2.1" ], + ["NaNMath", v"0.2.3", "Compat", "0.9.1-*" ], + ["NaNMath", v"0.2.4", "Compat", "0.9.1-*" ], + ["Nettle", v"0.1.1" ], + ["Nettle", v"0.1.7", "BinDeps", "*" ], + ["Nettle", v"0.1.10", "BinDeps", "*" ], + ["Nettle", v"0.1.10", "Compat", "*" ], + ["Nettle", v"0.2.3", "BinDeps", "*" ], + ["Nettle", v"0.2.3", "Compat", "*" ], + ["Nettle", v"0.3.0", "BinDeps", "*" ], + ["Nettle", v"0.3.0", "Compat", "0.8.0-*" ], + ["NumericExtensions", v"0.3.6" ], + ["NumericExtensions", v"0.4.3", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.5.6", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.6.2", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.6.2", "NumericFuns", "0.2.1-*" ], + ["NumericFuns", v"0.2.0" ], + ["NumericFuns", v"0.2.3" ], + ["NumericFuns", v"0.2.4", "Compat", "*" ], + ["ObjFileBase", v"0.0.4" ], + ["OffsetArrays", v"0.2.13" ], + ["OffsetArrays", v"0.3.0", "Compat", "0.19.0-*" ], + ["Optim", v"0.4.6", "Calculus", "*" ], + ["Optim", v"0.4.6", "Compat", "*" ], + ["Optim", v"0.4.6", "DualNumbers", "*" ], + ["Optim", v"0.4.6", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.4.7", "Calculus", "*" ], + ["Optim", v"0.4.7", "DualNumbers", "0.2.0-*" ], + ["Optim", v"0.4.7", "PositiveFactorizations", "*" ], + ["Optim", v"0.4.7", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.5.0", "Calculus", "*" ], + ["Optim", v"0.5.0", "PositiveFactorizations", "*" ], + ["Optim", v"0.5.0", "Compat", "0.7.16-*" ], + ["Optim", v"0.5.0", "DualNumbers", "0.2.0-*" ], + ["Optim", v"0.5.0", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.6.1", "Calculus", "*" ], + ["Optim", v"0.6.1", "PositiveFactorizations", "*" ], + ["Optim", v"0.6.1", "Compat", "0.8.4-*" ], + ["Optim", v"0.6.1", "ForwardDiff", "0.2.0-0.2" ], + ["Optim", v"0.6.1", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.7.2", "Calculus", "*" ], + ["Optim", v"0.7.2", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.2", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.2", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.2", "LineSearches", "0.1.0-0" ], + ["Optim", v"0.7.4", "Calculus", "*" ], + ["Optim", v"0.7.4", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.4", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.4", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.4", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.5", "Calculus", "*" ], + ["Optim", v"0.7.5", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.5", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.5", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.5", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.7", "Calculus", "*" ], + ["Optim", v"0.7.7", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.7", "Compat", "0.18.0-*" ], + ["Optim", v"0.7.7", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.7", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.8", "Calculus", "*" ], + ["Optim", v"0.7.8", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.8", "Compat", "0.18.0-*" ], + ["Optim", v"0.7.8", "ForwardDiff", "0.3.0-0.4" ], + ["Optim", v"0.7.8", "LineSearches", "0.1.2-0" ], + ["Options", v"0.2.6" ], + ["OrdinaryDiffEq", v"0.0.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.1", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.1", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.3", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.3", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.3", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.3", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.3", "ParameterizedFunctions", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.3", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "RecursiveArrayTools", "*" ], + ["OrdinaryDiffEq", v"0.0.5", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.5", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.5", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.5", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.5", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.5", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.5", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.1.0", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.1.0", "Juno", "*" ], + ["OrdinaryDiffEq", v"0.1.0", "RecursiveArrayTools", "*" ], + ["OrdinaryDiffEq", v"0.1.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.1.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.1.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.1.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.1.1", "DiffEqBase", "0.1.2-0.6" ], + ["OrdinaryDiffEq", v"0.1.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.1.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.1.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.1.1", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.5.0", "DiffEqBase", "0.2.0-0.6" ], + ["OrdinaryDiffEq", v"0.5.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.5.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.5.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.5.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.5.0", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.6.0", "DiffEqBase", "0.4.0-0.6" ], + ["OrdinaryDiffEq", v"0.6.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.6.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.6.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.6.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.6.0", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.0.2", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.0.2", "DiffEqBase", "0.6.0-0.7" ], + ["OrdinaryDiffEq", v"1.0.2", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.0.2", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.0.2", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.0.2", "RecursiveArrayTools", "0.1.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.1.0", "DiffEqBase", "0.7.0-0.7" ], + ["OrdinaryDiffEq", v"1.1.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.1.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.1.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.1.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.1.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.1.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.1.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.1.0", "RecursiveArrayTools", "0.1.2-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.3.1", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.3.1", "DiffEqBase", "0.8.0-0.14" ], + ["OrdinaryDiffEq", v"1.3.1", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.3.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.3.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.3.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.3.1", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.3.1", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.4.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.4.1", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.4.1", "DiffEqBase", "0.11.0-0.14" ], + ["OrdinaryDiffEq", v"1.4.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.4.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.4.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.4.1", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.4.1", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.5.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.5.0", "DiffEqBase", "0.11.0-0.14" ], + ["OrdinaryDiffEq", v"1.5.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.5.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.5.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.5.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.7.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.7.0", "DiffEqBase", "0.13.0-0.14" ], + ["OrdinaryDiffEq", v"1.7.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.7.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.7.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.7.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.8.0", "DiffEqBase", "0.15.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.8.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.8.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.8.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.8.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.8.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Roots", "0.2.1-*" ], + ["PDMats", v"0.1.2", "NumericExtensions", "0.5.0-*" ], + ["PDMats", v"0.2.5", "ArrayViews", "0.4.0-*" ], + ["PDMats", v"0.3.0", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.3.1", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.3.6", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.4.0", "Compat", "0.7.7-*" ], + ["PDMats", v"0.4.1", "Compat", "0.7.7-*" ], + ["PDMats", v"0.4.2", "Compat", "0.7.7-*" ], + ["PDMats", v"0.5.3", "Compat", "0.9.2-*" ], + ["PDMats", v"0.5.4", "Compat", "0.9.2-*" ], + ["PDMats", v"0.5.5", "Compat", "0.17.0-*" ], + ["PDMats", v"0.5.6", "Compat", "0.18.0-*" ], + ["PDMats", v"0.6.0", "Compat", "0.18.0-*" ], + ["ParameterizedFunctions", v"0.0.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.0.1", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.0.1", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.1.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.1.1", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.1.1", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.2.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.2.2", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.2.2", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.3.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.1", "DiffEqBase", "0.1.0-0.4" ], + ["ParameterizedFunctions", v"0.3.1", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.3.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.2", "DiffEqBase", "0.1.0-0.4" ], + ["ParameterizedFunctions", v"0.3.2", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.3.3", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.3", "DiffEqBase", "0.2.0-0.4" ], + ["ParameterizedFunctions", v"0.3.3", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.4.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.4.2", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.4.2", "DiffEqBase", "0.2.0-0.4" ], + ["ParameterizedFunctions", v"0.4.2", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.5.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.5.1", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.5.1", "DiffEqBase", "0.4.0-0.4" ], + ["ParameterizedFunctions", v"0.5.1", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"1.2.0", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"1.2.0", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"1.2.0", "DiffEqBase", "0.5.0-0.13" ], + ["ParameterizedFunctions", v"1.2.0", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"1.3.0", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"1.3.0", "DiffEqBase", "0.14.0-*" ], + ["ParameterizedFunctions", v"1.3.0", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"1.3.0", "SymEngine", "0.1.2-*" ], + ["Parameters", v"0.5.0", "Compat", "0.7.15-*" ], + ["Parameters", v"0.5.0", "DataStructures", "0.4.3-*" ], + ["Parameters", v"0.6.0", "DataStructures", "0.4.3-*" ], + ["Parameters", v"0.7.1", "Compat", "0.17.0-*" ], + ["Parameters", v"0.7.1", "DataStructures", "0.5.2-*" ], + ["Parameters", v"0.7.2", "DataStructures", "0.5.2-*" ], + ["PlotThemes", v"0.1.1", "PlotUtils", "*" ], + ["PlotUtils", v"0.0.1" ], + ["PlotUtils", v"0.3.0", "Colors", "*" ], + ["PlotUtils", v"0.3.0", "Reexport", "*" ], + ["Plots", v"0.1.0", "Colors", "*" ], + ["Plots", v"0.1.0", "FactCheck", "*" ], + ["Plots", v"0.1.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.1.3", "Colors", "*" ], + ["Plots", v"0.1.3", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.3.0", "Colors", "*" ], + ["Plots", v"0.3.0", "Reexport", "*" ], + ["Plots", v"0.3.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.5.1", "Colors", "*" ], + ["Plots", v"0.5.1", "Compat", "*" ], + ["Plots", v"0.5.1", "Reexport", "*" ], + ["Plots", v"0.5.1", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.5.2", "Colors", "*" ], + ["Plots", v"0.5.2", "Compat", "*" ], + ["Plots", v"0.5.2", "Reexport", "*" ], + ["Plots", v"0.5.2", "Requires", "*" ], + ["Plots", v"0.5.2", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.1", "Colors", "*" ], + ["Plots", v"0.6.1", "Compat", "*" ], + ["Plots", v"0.6.1", "FixedSizeArrays", "*" ], + ["Plots", v"0.6.1", "Reexport", "*" ], + ["Plots", v"0.6.1", "Requires", "*" ], + ["Plots", v"0.6.1", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.2", "Colors", "*" ], + ["Plots", v"0.6.2", "Compat", "*" ], + ["Plots", v"0.6.2", "FixedSizeArrays", "*" ], + ["Plots", v"0.6.2", "Reexport", "*" ], + ["Plots", v"0.6.2", "Requires", "*" ], + ["Plots", v"0.6.2", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.2", "RecipesBase", "0.0.1-0.0.1" ], + ["Plots", v"0.7.5", "Colors", "*" ], + ["Plots", v"0.7.5", "Compat", "*" ], + ["Plots", v"0.7.5", "FixedSizeArrays", "*" ], + ["Plots", v"0.7.5", "Measures", "*" ], + ["Plots", v"0.7.5", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.7.5", "RecipesBase", "*" ], + ["Plots", v"0.7.5", "Reexport", "*" ], + ["Plots", v"0.8.0", "Compat", "*" ], + ["Plots", v"0.8.0", "FixedSizeArrays", "*" ], + ["Plots", v"0.8.0", "Measures", "*" ], + ["Plots", v"0.8.0", "PlotUtils", "*" ], + ["Plots", v"0.8.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.8.0", "RecipesBase", "*" ], + ["Plots", v"0.8.0", "Reexport", "*" ], + ["Plots", v"0.9.0", "Compat", "*" ], + ["Plots", v"0.9.0", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.0", "Measures", "*" ], + ["Plots", v"0.9.0", "PlotUtils", "*" ], + ["Plots", v"0.9.0", "RecipesBase", "*" ], + ["Plots", v"0.9.0", "Reexport", "*" ], + ["Plots", v"0.9.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.9.0", "Showoff", "*" ], + ["Plots", v"0.9.1", "Compat", "*" ], + ["Plots", v"0.9.1", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.1", "Measures", "*" ], + ["Plots", v"0.9.1", "PlotUtils", "*" ], + ["Plots", v"0.9.1", "RecipesBase", "*" ], + ["Plots", v"0.9.1", "Reexport", "*" ], + ["Plots", v"0.9.1", "Showoff", "*" ], + ["Plots", v"0.9.3", "Compat", "*" ], + ["Plots", v"0.9.3", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.3", "Measures", "*" ], + ["Plots", v"0.9.3", "PlotUtils", "*" ], + ["Plots", v"0.9.3", "RecipesBase", "*" ], + ["Plots", v"0.9.3", "Reexport", "*" ], + ["Plots", v"0.9.3", "Showoff", "*" ], + ["Plots", v"0.9.4", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.4", "Measures", "*" ], + ["Plots", v"0.9.4", "PlotUtils", "*" ], + ["Plots", v"0.9.4", "RecipesBase", "*" ], + ["Plots", v"0.9.4", "Reexport", "*" ], + ["Plots", v"0.9.4", "Showoff", "*" ], + ["Plots", v"0.10.3", "FixedSizeArrays", "*" ], + ["Plots", v"0.10.3", "Measures", "*" ], + ["Plots", v"0.10.3", "PlotThemes", "*" ], + ["Plots", v"0.10.3", "PlotUtils", "*" ], + ["Plots", v"0.10.3", "RecipesBase", "*" ], + ["Plots", v"0.10.3", "Reexport", "*" ], + ["Plots", v"0.10.3", "Showoff", "*" ], + ["PolynomialFactors", v"0.0.1", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.1", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.1", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.1", "Primes", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.2", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.2", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.2", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.2", "Polynomials", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.2", "Primes", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.4", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.4", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.4", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.4", "Polynomials", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.4", "Primes", "0.1.1-*" ], + ["Polynomials", v"0.0.2" ], + ["Polynomials", v"0.0.3" ], + ["Polynomials", v"0.0.4", "Compat", "*" ], + ["Polynomials", v"0.0.5", "Compat", "*" ], + ["Polynomials", v"0.1.0", "Compat", "0.7.15-*" ], + ["Polynomials", v"0.1.1", "Compat", "0.8.0-*" ], + ["Polynomials", v"0.1.5", "Compat", "0.9.4-*" ], + ["PositiveFactorizations", v"0.0.1" ], + ["PositiveFactorizations", v"0.0.3", "Compat", "0.8.4-*" ], + ["PositiveFactorizations", v"0.0.4", "Compat", "0.12.0-*" ], + ["PowerSeries", v"0.1.10" ], + ["PowerSeries", v"0.1.14", "Compat", "0.4.7-*" ], + ["PowerSeries", v"0.2.0" ], + ["Primes", v"0.1.0" ], + ["Primes", v"0.1.1" ], + ["Primes", v"0.1.3", "Compat", "0.9.4-*" ], + ["PyCall", v"0.4.10" ], + ["PyCall", v"0.6.2", "Compat", "0.2.0-*" ], + ["PyCall", v"0.7.3", "Compat", "0.2.0-*" ], + ["PyCall", v"0.7.3", "Dates", "*" ], + ["PyCall", v"0.7.4", "Compat", "0.3.1-*" ], + ["PyCall", v"0.7.4", "Dates", "*" ], + ["PyCall", v"0.7.5", "Compat", "0.3.4-*" ], + ["PyCall", v"0.7.5", "Dates", "*" ], + ["PyCall", v"0.8.1", "Compat", "0.4.0-*" ], + ["PyCall", v"0.8.1", "Dates", "*" ], + ["PyCall", v"1.0.1", "Compat", "0.4.6-*" ], + ["PyCall", v"1.0.1", "Dates", "*" ], + ["PyCall", v"1.0.3", "Compat", "0.7.1-*" ], + ["PyCall", v"1.0.3", "Dates", "*" ], + ["PyCall", v"1.4.0", "Compat", "0.7.1-*" ], + ["PyCall", v"1.4.0", "Conda", "0.1.6-*" ], + ["PyCall", v"1.4.0", "Dates", "*" ], + ["PyCall", v"1.5.0", "Compat", "0.7.15-*" ], + ["PyCall", v"1.5.0", "Conda", "0.1.6-*" ], + ["PyCall", v"1.5.0", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.6.2", "Compat", "0.7.15-*" ], + ["PyCall", v"1.6.2", "Conda", "0.2.0-*" ], + ["PyCall", v"1.6.2", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.7.2", "Compat", "0.8.0-*" ], + ["PyCall", v"1.7.2", "Conda", "0.2.0-*" ], + ["PyCall", v"1.7.2", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.10.0", "Compat", "0.9.5-*" ], + ["PyCall", v"1.10.0", "Conda", "0.2.0-*" ], + ["PyCall", v"1.10.0", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.12.0", "Compat", "0.18.0-*" ], + ["PyCall", v"1.12.0", "Conda", "0.2.0-*" ], + ["PyCall", v"1.12.0", "MacroTools", "0.2.0-*" ], + ["PyDSTool", v"0.0.1", "DataStructures", "*" ], + ["PyDSTool", v"0.0.1", "PyCall", "*" ], + ["PyDSTool", v"0.0.2", "Conda", "*" ], + ["PyDSTool", v"0.0.2", "DataStructures", "*" ], + ["PyDSTool", v"0.0.2", "PyCall", "*" ], + ["PyDSTool", v"0.1.1", "Conda", "*" ], + ["PyDSTool", v"0.1.1", "DataStructures", "*" ], + ["PyDSTool", v"0.1.1", "DiffEqBase", "0.11.0-*" ], + ["PyDSTool", v"0.1.1", "PyCall", "*" ], + ["PyDSTool", v"0.1.1", "RecipesBase", "*" ], + ["PyDSTool", v"0.1.2", "DataStructures", "*" ], + ["PyDSTool", v"0.1.2", "PyCall", "*" ], + ["PyDSTool", v"0.1.2", "RecipesBase", "*" ], + ["PyDSTool", v"0.1.2", "Conda", "0.2.0-*" ], + ["PyDSTool", v"0.1.2", "DiffEqBase", "0.11.0-*" ], + ["QuadGK", v"0.1.0" ], + ["QuadGK", v"0.1.2", "DataStructures", "0.5.0-*" ], + ["RangeArrays", v"0.1.1" ], + ["RangeArrays", v"0.1.2", "Compat", "0.19.0-*" ], + ["Ranges", v"0.0.1" ], + ["Ratios", v"0.0.3" ], + ["Ratios", v"0.0.4", "Compat", "*" ], + ["Reactive", v"0.2.4", "FactCheck", "*" ], + ["Reactive", v"0.2.4", "Compat", "0.4.0-*" ], + ["Reactive", v"0.3.4", "Compat", "*" ], + ["Reactive", v"0.3.5", "Compat", "0.9.2-*" ], + ["Reactive", v"0.3.6" ], + ["Reactive", v"0.3.7", "DataStructures", "*" ], + ["RecipesBase", v"0.1.0" ], + ["RecursiveArrayTools", v"0.0.1" ], + ["RecursiveArrayTools", v"0.1.1" ], + ["RecursiveArrayTools", v"0.1.2" ], + ["RecursiveArrayTools", v"0.2.0" ], + ["Reexport", v"0.0.2" ], + ["Reexport", v"0.0.3" ], + ["Requires", v"0.2.3", "MacroTools", "*" ], + ["Requires", v"0.4.1" ], + ["ResettableStacks", v"0.1.0" ], + ["Rmath", v"0.1.0", "BinDeps", "*" ], + ["Rmath", v"0.1.2", "BinDeps", "*" ], + ["Rmath", v"0.1.2", "Compat", "0.8.4-*" ], + ["Rmath", v"0.1.6", "BinDeps", "*" ], + ["Rmath", v"0.1.6", "Compat", "0.9.1-*" ], + ["Roots", v"0.1.9", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.9", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.9", "PowerSeries", "0.1.0-*" ], + ["Roots", v"0.1.13", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.13", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.13", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.13", "PowerSeries", "0.1.11-*" ], + ["Roots", v"0.1.18", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.18", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.18", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.18", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.18", "PowerSeries", "0.1.11-*" ], + ["Roots", v"0.1.22", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.22", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.22", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.22", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.26", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.26", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.26", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.1.26", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.2.0", "Primes", "*" ], + ["Roots", v"0.2.0", "Compat", "0.4.0-*" ], + ["Roots", v"0.2.0", "Docile", "0.4.0-*" ], + ["Roots", v"0.2.0", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.2.0", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.2.1", "Primes", "*" ], + ["Roots", v"0.2.1", "Compat", "0.4.0-*" ], + ["Roots", v"0.2.1", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.2.1", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.3.0", "Compat", "0.8.0-*" ], + ["Roots", v"0.3.0", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.3.0", "PolynomialFactors", "0.0.3-*" ], + ["Roots", v"0.3.0", "Polynomials", "0.0.5-*" ], + ["Rotations", v"0.3.4", "StaticArrays", "0.0.3-0.2" ], + ["Rotations", v"0.3.5", "StaticArrays", "0.3.0-0.3" ], + ["Rotations", v"0.4.0", "StaticArrays", "0.4.0-0.4" ], + ["SHA", v"0.0.2" ], + ["SHA", v"0.0.3" ], + ["SHA", v"0.2.0", "Compat", "0.3.5-*" ], + ["SHA", v"0.2.1", "Compat", "0.7.9-*" ], + ["SHA", v"0.3.1", "Compat", "0.9.4-*" ], + ["SHA", v"0.3.2", "Compat", "0.17.0-*" ], + ["SIUnits", v"0.0.5", "TexExtensions", "*" ], + ["SIUnits", v"0.0.6", "Compat", "*" ], + ["SIUnits", v"0.0.6", "TexExtensions", "*" ], + ["SIUnits", v"0.1.0", "TexExtensions", "*" ], + ["SIUnits", v"0.1.0", "Compat", "0.8.0-*" ], + ["ShowItLikeYouBuildIt", v"0.0.1" ], + ["Showoff", v"0.0.1" ], + ["Showoff", v"0.0.3", "Iterators", "*" ], + ["Showoff", v"0.0.7", "Compat", "*" ], + ["Showoff", v"0.0.7", "Iterators", "*" ], + ["Showoff", v"0.1.0", "Compat", "0.9.5-*" ], + ["Showoff", v"0.1.1", "Compat", "0.18.0-*" ], + ["SimpleTraits", v"0.1.0", "Compat", "*" ], + ["SimpleTraits", v"0.1.1" ], + ["SimpleTraits", v"0.2.0", "MacroTools", "0.3.2-*" ], + ["SimpleTraits", v"0.4.0", "Compat", "0.19.0-*" ], + ["SimpleTraits", v"0.4.0", "MacroTools", "0.3.2-*" ], + ["SortingAlgorithms", v"0.0.3" ], + ["SortingAlgorithms", v"0.0.6", "Compat", "*" ], + ["SortingAlgorithms", v"0.1.0", "Compat", "0.8.4-*" ], + ["SortingAlgorithms", v"0.1.1", "Compat", "0.9.4-*" ], + ["SortingAlgorithms", v"0.1.1", "DataStructures", "0.5.3-*" ], + ["SpecialFunctions", v"0.0.1", "Compat", "0.9.1-*" ], + ["SpecialFunctions", v"0.1.0", "Compat", "0.9.1-*" ], + ["SpecialFunctions", v"0.1.1", "Compat", "0.18.0-*" ], + ["StaticArrays", v"0.0.2" ], + ["StaticArrays", v"0.0.4" ], + ["StaticArrays", v"0.2.1" ], + ["StaticArrays", v"0.3.0" ], + ["StaticArrays", v"0.4.0" ], + ["Stats", v"0.0.1", "StatsBase", "0.3.0-*" ], + ["Stats", v"0.1.0", "StatsBase", "*" ], + ["StatsBase", v"0.2.4", "NumericExtensions", "*" ], + ["StatsBase", v"0.2.9" ], + ["StatsBase", v"0.3.9" ], + ["StatsBase", v"0.4.1" ], + ["StatsBase", v"0.6.8", "ArrayViews", "0.4.6-*" ], + ["StatsBase", v"0.6.9", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.10", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.12", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.12", "Compat", "0.2.11-*" ], + ["StatsBase", v"0.6.13", "ArrayViews", "0.4.10-*" ], + ["StatsBase", v"0.6.13", "Compat", "0.3.2-*" ], + ["StatsBase", v"0.6.16", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.6.16", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.7.4", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.7.4", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.7.4", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.1", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.8.1", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.8.1", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.2", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.8.2", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.8.2", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.3", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.8.3", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.9.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.9.0", "StatsFuns", "0.3.0-*" ], + ["StatsBase", v"0.10.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.12.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.13.0", "Compat", "0.13.0-*" ], + ["StatsBase", v"0.13.0", "DataStructures", "0.5.0-*" ], + ["StatsBase", v"0.13.1", "Compat", "0.18.0-*" ], + ["StatsBase", v"0.13.1", "DataStructures", "0.5.0-*" ], + ["StatsBase", v"0.13.1", "SpecialFunctions", "0.1.0-*" ], + ["StatsFuns", v"0.0.3", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.1.0", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.2.1", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.2.2", "Compat", "0.7.18-*" ], + ["StatsFuns", v"0.3.0", "Compat", "0.8.4-*" ], + ["StatsFuns", v"0.3.0", "Rmath", "0.1.0-*" ], + ["StatsFuns", v"0.4.0", "Compat", "0.9.1-*" ], + ["StatsFuns", v"0.4.0", "Rmath", "0.1.0-*" ], + ["StatsFuns", v"0.5.0", "SpecialFunctions", "*" ], + ["StatsFuns", v"0.5.0", "Compat", "0.9.1-*" ], + ["StatsFuns", v"0.5.0", "Rmath", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.3", "ParameterizedFunctions", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.0.4", "RecursiveArrayTools", "*" ], + ["StochasticDiffEq", v"0.0.4", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.4", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.4", "ParameterizedFunctions", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.4", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.0.5", "RecursiveArrayTools", "*" ], + ["StochasticDiffEq", v"0.0.5", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.5", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.2.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.2.0", "DiffEqBase", "0.2.0-0.7" ], + ["StochasticDiffEq", v"0.2.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["StochasticDiffEq", v"0.3.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.3.0", "DataStructures", "*" ], + ["StochasticDiffEq", v"0.3.0", "DiffEqBase", "0.2.0-0.7" ], + ["StochasticDiffEq", v"0.3.0", "Juno", "*" ], + ["StochasticDiffEq", v"0.3.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.3.0", "RecursiveArrayTools", "0.0.2-*" ], + ["StochasticDiffEq", v"0.3.0", "ResettableStacks", "*" ], + ["StochasticDiffEq", v"0.5.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.5.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"0.5.0", "DiffEqBase", "0.4.0-0.7" ], + ["StochasticDiffEq", v"0.5.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"0.5.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.5.0", "RecursiveArrayTools", "0.1.2-*" ], + ["StochasticDiffEq", v"0.5.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.0.2", "Iterators", "*" ], + ["StochasticDiffEq", v"1.0.2", "Roots", "*" ], + ["StochasticDiffEq", v"1.0.2", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.0.2", "DiffEqBase", "0.8.0-0.14" ], + ["StochasticDiffEq", v"1.0.2", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.0.2", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.0.2", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.0.2", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.1.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.1.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.1.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.1.0", "DiffEqBase", "0.11.0-0.14" ], + ["StochasticDiffEq", v"1.1.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.1.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.1.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.1.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.2.1", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.2.1", "Iterators", "*" ], + ["StochasticDiffEq", v"1.2.1", "Roots", "*" ], + ["StochasticDiffEq", v"1.2.1", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.2.1", "DiffEqBase", "0.11.0-0.14" ], + ["StochasticDiffEq", v"1.2.1", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.2.1", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.2.1", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.2.1", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.3.0", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.3.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.3.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.3.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.3.0", "DiffEqBase", "0.13.0-0.14" ], + ["StochasticDiffEq", v"1.3.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.3.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.3.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.3.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.4.0", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.4.0", "DiffEqBase", "0.15.0-*" ], + ["StochasticDiffEq", v"1.4.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.4.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.4.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.4.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.4.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.4.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.4.0", "ResettableStacks", "0.0.1-*" ], + ["StokesDiffEq", v"0.0.1", "DiffEqBase", "*" ], + ["StokesDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.0.1", "VectorizedRoutines", "0.0.1-*" ], + ["StokesDiffEq", v"0.0.2", "DiffEqBase", "*" ], + ["StokesDiffEq", v"0.0.2", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.0.2", "VectorizedRoutines", "0.0.1-*" ], + ["StokesDiffEq", v"0.1.0", "DiffEqBase", "0.4.0-*" ], + ["StokesDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.1.0", "VectorizedRoutines", "0.0.2-*" ], + ["StrPack", v"0.0.1" ], + ["StructIO", v"0.0.2" ], + ["Sundials", v"0.0.0" ], + ["Sundials", v"0.1.2", "BinDeps", "*" ], + ["Sundials", v"0.2.0", "BinDeps", "0.3.0-*" ], + ["Sundials", v"0.2.2", "Compat", "*" ], + ["Sundials", v"0.2.2", "BinDeps", "0.3.0-*" ], + ["Sundials", v"0.3.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.3.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.4.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.4.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.4.0", "DiffEqBase", "0.0.0-0.1" ], + ["Sundials", v"0.9.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.9.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.9.0", "DiffEqBase", "0.2.0-0.14" ], + ["Sundials", v"0.10.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.10.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.10.0", "DiffEqBase", "0.15.0-*" ], + ["SymEngine", v"0.1.0", "BinDeps", "*" ], + ["SymEngine", v"0.1.0", "Conda", "*" ], + ["SymEngine", v"0.1.0", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.0", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.1", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.1", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.1", "Conda", "0.3.0-*" ], + ["SymEngine", v"0.1.1", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.2", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.2", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.2", "Conda", "0.4.0-*" ], + ["SymEngine", v"0.1.2", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.5", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.5", "Compat", "0.9.5-*" ], + ["SymEngine", v"0.1.5", "Conda", "0.4.0-*" ], + ["SymEngine", v"0.1.5", "RecipesBase", "0.0.6-*" ], + ["TerminalUI", v"0.0.1", "Reactive", "*" ], + ["TerminalUI", v"0.0.1", "VT100", "*" ], + ["TerminalUI", v"0.0.2", "AbstractTrees", "*" ], + ["TerminalUI", v"0.0.2", "Colors", "*" ], + ["TerminalUI", v"0.0.2", "Compat", "*" ], + ["TerminalUI", v"0.0.2", "FixedPointNumbers", "*" ], + ["TerminalUI", v"0.0.2", "Reactive", "*" ], + ["TerminalUI", v"0.0.2", "VT100", "*" ], + ["TexExtensions", v"0.0.2" ], + ["TexExtensions", v"0.0.3", "Compat", "*" ], + ["TextWrap", v"0.0.0", "Options", "*" ], + ["TextWrap", v"0.1.3" ], + ["TextWrap", v"0.1.4" ], + ["TextWrap", v"0.1.5", "Compat", "0.7.3-*" ], + ["TextWrap", v"0.1.6", "Compat", "0.7.15-*" ], + ["TextWrap", v"0.2.0", "Compat", "0.9.5-*" ], + ["TiledIteration", v"0.0.2", "OffsetArrays", "*" ], + ["URIParser", v"0.0.4", "Compat", "*" ], + ["URIParser", v"0.0.5", "Compat", "0.3.5-*" ], + ["URIParser", v"0.1.0", "HttpCommon", "*" ], + ["URIParser", v"0.1.0", "Compat", "0.3.5-*" ], + ["URIParser", v"0.1.3" ], + ["URIParser", v"0.1.6", "Compat", "0.8.0-*" ], + ["URIParser", v"0.1.8", "Compat", "0.9.5-*" ], + ["VT100", v"0.0.1", "Colors", "*" ], + ["VT100", v"0.0.1", "Compat", "*" ], + ["VT100", v"0.0.1", "FixedPointNumbers", "*" ], + ["VT100", v"0.0.2", "Colors", "*" ], + ["VT100", v"0.0.2", "FixedPointNumbers", "*" ], + ["VT100", v"0.0.2", "Compat", "0.7.15-*" ], + ["VT100", v"0.1.0", "ColorTypes", "0.3.4-*" ], + ["VT100", v"0.1.0", "Compat", "0.17.0-*" ], + ["VT100", v"0.1.0", "FixedPointNumbers", "0.3.0-*" ], + ["VectorizedRoutines", v"0.0.1", "Distributions", "*" ], + ["VectorizedRoutines", v"0.0.1", "StatsFuns", "*" ], + ["VectorizedRoutines", v"0.0.2", "Distributions", "*" ], + ["WebSockets", v"0.0.0", "HttpCommon", "*" ], + ["WebSockets", v"0.0.0", "HttpServer", "*" ], + ["WebSockets", v"0.0.1" ], + ["WebSockets", v"0.0.3", "Codecs", "*" ], + ["WebSockets", v"0.0.3", "HttpCommon", "*" ], + ["WebSockets", v"0.0.3", "HttpServer", "*" ], + ["WebSockets", v"0.0.5", "Codecs", "*" ], + ["WebSockets", v"0.0.5", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.0.5", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.0.6", "Codecs", "*" ], + ["WebSockets", v"0.0.6", "Nettle", "*" ], + ["WebSockets", v"0.0.6", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.0.6", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.0", "Codecs", "*" ], + ["WebSockets", v"0.1.0", "Compat", "*" ], + ["WebSockets", v"0.1.0", "Nettle", "*" ], + ["WebSockets", v"0.1.0", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.1.0", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.2", "Codecs", "*" ], + ["WebSockets", v"0.1.2", "Compat", "*" ], + ["WebSockets", v"0.1.2", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.1.2", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.2", "Nettle", "0.2.0-*" ], + ["WebSockets", v"0.2.1", "Codecs", "*" ], + ["WebSockets", v"0.2.1", "MbedTLS", "*" ], + ["WebSockets", v"0.2.1", "Compat", "0.7.16-*" ], + ["WebSockets", v"0.2.1", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.2.1", "HttpServer", "0.0.4-*" ], + ["WoodburyMatrices", v"0.0.2" ], + ["WoodburyMatrices", v"0.1.3", "Docile", "*" ], + ["WoodburyMatrices", v"0.1.4", "Compat", "*" ], + ["WoodburyMatrices", v"0.1.4", "Docile", "*" ], + ["WoodburyMatrices", v"0.1.5", "Compat", "*" ], + ["WoodburyMatrices", v"0.1.5", "Docile", "*" ], + ["WoodburyMatrices", v"0.2.1", "Compat", "*" ], + ["WoodburyMatrices", v"0.2.2", "Compat", "0.7.19-*" ], + ["Zlib", v"0.1.9" ], + ["Zlib", v"0.1.12", "Compat", "*" ] +] + +problematic_data = Any[ + ("CoordinateTransformations", v"0.2.0"), + ("Plots", v"0.6.2"), + ("Roots", v"0.1.9"), + ("Roots", v"0.1.13"), + ("Roots", v"0.1.18"), + ("Roots", v"0.1.22"), + ("Roots", v"0.1.26"), +] + +reqs_data = Any[ + ["Atom", "*"], + ["DifferentialEquations", "*"], + ["ImageMagick", "*"], + ["Plots", "*"], +] + +want_data = Dict( + "ASTInterpreter"=>v"0.0.4", + "AbstractTrees"=>v"0.0.4", + "AlgebraicDiffEq"=>v"0.1.0", + "ArgParse"=>v"0.4.0", + "Atom"=>v"0.5.10", + "AxisAlgorithms"=>v"0.1.6", + "AxisArrays"=>v"0.1.2", + "BinDeps"=>v"0.4.7", + "Blink"=>v"0.5.1", + "COFF"=>v"0.0.2", + "CRC"=>v"1.2.0", + "Calculus"=>v"0.2.2", + "CatIndices"=>v"0.0.2", + "ChunkedArrays"=>v"0.1.1", + "CodeTools"=>v"0.4.3", + "Codecs"=>v"0.3.0", + "ColorTypes"=>v"0.4.1", + "ColorVectorSpace"=>v"0.4.2", + "Colors"=>v"0.7.3", + "Combinatorics"=>v"0.4.0", + "Compat"=>v"0.24.0", + "ComputationalResources"=>v"0.0.2", + "Conda"=>v"0.5.3", + "CoordinateTransformations"=>v"0.4.1", + "CustomUnitRanges"=>v"0.0.4", + "DWARF"=>v"0.1.0", + "DataStructures"=>v"0.5.3", + "DelayDiffEq"=>v"0.3.0", + "DiffBase"=>v"0.1.0", + "DiffEqBase"=>v"0.15.0", + "DiffEqBiological"=>v"0.0.1", + "DiffEqCallbacks"=>v"0.0.2", + "DiffEqDevTools"=>v"0.7.0", + "DiffEqFinancial"=>v"0.1.0", + "DiffEqJump"=>v"0.3.0", + "DiffEqMonteCarlo"=>v"0.2.0", + "DiffEqPDEBase"=>v"0.2.0", + "DiffEqParamEstim"=>v"0.2.0", + "DiffEqSensitivity"=>v"0.1.0", + "DifferentialEquations"=>v"1.10.1", + "Distances"=>v"0.4.1", + "Distributions"=>v"0.12.5", + "DualNumbers"=>v"0.3.0", + "ELF"=>v"0.1.0", + "EllipsisNotation"=>v"0.1.0", + "FFTViews"=>v"0.0.2", + "FileIO"=>v"0.3.1", + "FiniteElementDiffEq"=>v"0.3.0", + "FixedPointNumbers"=>v"0.3.6", + "FixedSizeArrays"=>v"0.2.5", + "ForwardDiff"=>v"0.4.2", + "Gallium"=>v"0.0.4", + "GenericSVD"=>v"0.0.2", + "Graphics"=>v"0.2.0", + "Hiccup"=>v"0.1.1", + "HttpCommon"=>v"0.2.7", + "HttpParser"=>v"0.2.0", + "HttpServer"=>v"0.2.0", + "ImageAxes"=>v"0.2.1", + "ImageCore"=>v"0.3.0", + "ImageFiltering"=>v"0.1.4", + "ImageMagick"=>v"0.2.4", + "ImageMetadata"=>v"0.2.3", + "ImageTransformations"=>v"0.2.2", + "Images"=>v"0.9.1", + "IndirectArrays"=>v"0.1.1", + "InplaceOps"=>v"0.1.0", + "Interpolations"=>v"0.5.0", + "IntervalSets"=>v"0.0.5", + "IterativeSolvers"=>v"0.2.2", + "Iterators"=>v"0.3.0", + "JSON"=>v"0.9.0", + "JuliaParser"=>v"0.7.4", + "Juno"=>v"0.2.7", + "LNR"=>v"0.0.2", + "Lazy"=>v"0.11.6", + "LearnBase"=>v"0.1.5", + "LineSearches"=>v"0.1.5", + "LossFunctions"=>v"0.1.0", + "LsqFit"=>v"0.2.0", + "MachO"=>v"0.0.4", + "MacroTools"=>v"0.3.6", + "MappedArrays"=>v"0.0.7", + "MbedTLS"=>v"0.4.5", + "Measures"=>v"0.1.0", + "Media"=>v"0.2.7", + "MultiScaleArrays"=>v"0.1.0", + "Mustache"=>v"0.1.4", + "Mux"=>v"0.2.3", + "NLsolve"=>v"0.9.1", + "NaNMath"=>v"0.2.4", + "ObjFileBase"=>v"0.0.4", + "OffsetArrays"=>v"0.3.0", + "Optim"=>v"0.7.8", + "OrdinaryDiffEq"=>v"1.8.0", + "PDMats"=>v"0.6.0", + "ParameterizedFunctions"=>v"1.3.0", + "Parameters"=>v"0.7.2", + "PlotThemes"=>v"0.1.1", + "PlotUtils"=>v"0.3.0", + "Plots"=>v"0.10.3", + "PolynomialFactors"=>v"0.0.4", + "Polynomials"=>v"0.1.5", + "PositiveFactorizations"=>v"0.0.4", + "Primes"=>v"0.1.3", + "QuadGK"=>v"0.1.2", + "RangeArrays"=>v"0.1.2", + "Ranges"=>v"0.0.1", + "Ratios"=>v"0.0.4", + "Reactive"=>v"0.3.7", + "RecipesBase"=>v"0.1.0", + "RecursiveArrayTools"=>v"0.2.0", + "Reexport"=>v"0.0.3", + "ResettableStacks"=>v"0.1.0", + "Rmath"=>v"0.1.6", + "Roots"=>v"0.3.0", + "Rotations"=>v"0.4.0", + "SHA"=>v"0.3.2", + "SIUnits"=>v"0.1.0", + "ShowItLikeYouBuildIt"=>v"0.0.1", + "Showoff"=>v"0.1.1", + "SimpleTraits"=>v"0.4.0", + "SpecialFunctions"=>v"0.1.1", + "StaticArrays"=>v"0.4.0", + "StatsBase"=>v"0.13.1", + "StatsFuns"=>v"0.5.0", + "StochasticDiffEq"=>v"1.4.0", + "StokesDiffEq"=>v"0.1.0", + "StructIO"=>v"0.0.2", + "Sundials"=>v"0.10.0", + "SymEngine"=>v"0.1.5", + "TerminalUI"=>v"0.0.2", + "TexExtensions"=>v"0.0.3", + "TextWrap"=>v"0.2.0", + "TiledIteration"=>v"0.0.2", + "URIParser"=>v"0.1.8", + "VT100"=>v"0.1.0", + "VectorizedRoutines"=>v"0.0.2", + "WebSockets"=>v"0.2.1", + "WoodburyMatrices"=>v"0.2.2", +) + +end \ No newline at end of file diff --git a/stdlib/Pkg3/test/runtests.jl b/stdlib/Pkg3/test/runtests.jl new file mode 100644 index 00000000000000..98f32bd4c94fb0 --- /dev/null +++ b/stdlib/Pkg3/test/runtests.jl @@ -0,0 +1,6 @@ +module Pkg3Tests + +include("pkg.jl") +include("resolve.jl") + +end # module diff --git a/stdlib/Pkg3/test/testgroups b/stdlib/Pkg3/test/testgroups new file mode 100644 index 00000000000000..e6521cce657c23 --- /dev/null +++ b/stdlib/Pkg3/test/testgroups @@ -0,0 +1,2 @@ +pkg +resolve \ No newline at end of file diff --git a/stdlib/Printf/docs/src/index.md b/stdlib/Printf/docs/src/index.md index 828e527ed0cadf..de79d5c983eb4d 100644 --- a/stdlib/Printf/docs/src/index.md +++ b/stdlib/Printf/docs/src/index.md @@ -1,6 +1,14 @@ # Printf +```@meta +DocTestSetup = :(using Printf) +``` + ```@docs Printf.@printf Printf.@sprintf ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Printf/src/Printf.jl b/stdlib/Printf/src/Printf.jl index 6abf46719b8b45..44d192e1c47390 100644 --- a/stdlib/Printf/src/Printf.jl +++ b/stdlib/Printf/src/Printf.jl @@ -36,7 +36,7 @@ julia> @printf "%.0f %.1f %f\\n" 0.5 0.025 -0.0078125 macro printf(args...) isempty(args) && throw(ArgumentError("@printf: called with no arguments")) if isa(args[1], AbstractString) || is_str_expr(args[1]) - _printf("@printf", :STDOUT, args[1], args[2:end]) + _printf("@printf", :stdout, args[1], args[2:end]) else (length(args) >= 2 && (isa(args[2], AbstractString) || is_str_expr(args[2]))) || throw(ArgumentError("@printf: first or second argument must be a format string")) diff --git a/stdlib/Profile/src/Profile.jl b/stdlib/Profile/src/Profile.jl index b931f89d59bd3a..5b109d96d21051 100644 --- a/stdlib/Profile/src/Profile.jl +++ b/stdlib/Profile/src/Profile.jl @@ -101,9 +101,9 @@ struct ProfileFormat end """ - print([io::IO = STDOUT,] [data::Vector]; kwargs...) + print([io::IO = stdout,] [data::Vector]; kwargs...) -Prints profiling results to `io` (by default, `STDOUT`). If you do not +Prints profiling results to `io` (by default, `stdout`). If you do not supply a `data` vector, the internal buffer of accumulated backtraces will be used. @@ -156,7 +156,7 @@ function print(io::IO, data::Vector{<:Unsigned}, lidict::LineInfoDict, fmt::Prof end """ - print([io::IO = STDOUT,] data::Vector, lidict::LineInfoDict; kwargs...) + print([io::IO = stdout,] data::Vector, lidict::LineInfoDict; kwargs...) Prints profiling results to `io`. This variant is used to examine results exported by a previous call to [`retrieve`](@ref). Supply the vector `data` of backtraces and @@ -165,7 +165,7 @@ a dictionary `lidict` of line information. See `Profile.print([io], data)` for an explanation of the valid keyword arguments. """ print(data::Vector{<:Unsigned} = fetch(), lidict::LineInfoDict = getdict(data); kwargs...) = - print(STDOUT, data, lidict; kwargs...) + print(stdout, data, lidict; kwargs...) """ retrieve() -> data, lidict @@ -489,7 +489,7 @@ function tree_format(lilist::Vector{StackFrame}, counts::Vector{Int}, level::Int rpad(string(counts[i]), ndigcounts, " "), " ", "unknown function (pointer: 0x", - hex(li.pointer,2*sizeof(Ptr{Cvoid})), + string(li.pointer, base = 16, pad = 2*sizeof(Ptr{Cvoid})), ")") else fname = string(li.func) diff --git a/stdlib/REPL/docs/src/index.md b/stdlib/REPL/docs/src/index.md index 34422a2674d28e..68b393795ad7be 100644 --- a/stdlib/REPL/docs/src/index.md +++ b/stdlib/REPL/docs/src/index.md @@ -191,7 +191,7 @@ Meta plus `x` can be written `"\\Mx"`. The values of the custom keymap must be ` that the input should be ignored) or functions that accept the signature `(PromptState, AbstractREPL, Char)`. The `REPL.setup_interface` function must be called before the REPL is initialized, by registering the operation with [`atreplinit`](@ref) . For example, to bind the up and down arrow keys to move through -history without prefix search, one could put the following code in `.juliarc.jl`: +history without prefix search, one could put the following code in `~/.julia/config/startup.jl`: ```julia import REPL @@ -324,7 +324,7 @@ fields if the function is type stable. The colors used by Julia and the REPL can be customized, as well. To change the color of the Julia prompt you can add something like the following to your -`.juliarc.jl` file, which is to be placed inside your home directory: +`~/.julia/config/startup.jl` file, which is to be placed inside your home directory: ```julia function customize_colors(repl) @@ -345,7 +345,7 @@ latter two, be sure that the `envcolors` field is also set to false. It is also possible to apply boldface formatting by using `Base.text_colors[:bold]` as a color. For instance, to print answers in -boldface font, one can use the following as a `.juliarc.jl`: +boldface font, one can use the following as a `~/.julia/config/startup.jl`: ```julia function customize_colors(repl) @@ -358,7 +358,8 @@ atreplinit(customize_colors) You can also customize the color used to render warning and informational messages by setting the appropriate environment variables. For instance, to render error, warning, and informational -messages respectively in magenta, yellow, and cyan you can add the following to your `.juliarc.jl` file: +messages respectively in magenta, yellow, and cyan you can add the following to your +`~/.julia/config/startup.jl` file: ```julia ENV["JULIA_ERROR_COLOR"] = :magenta diff --git a/stdlib/REPL/src/REPL.jl b/stdlib/REPL/src/REPL.jl index 9542ea4a910ea5..d1e05e66c37e35 100644 --- a/stdlib/REPL/src/REPL.jl +++ b/stdlib/REPL/src/REPL.jl @@ -671,16 +671,8 @@ function return_callback(s) end end -function find_hist_file() - filename = ".julia_history" - if isfile(filename) - return filename - elseif haskey(ENV, "JULIA_HISTORY") - return ENV["JULIA_HISTORY"] - else - return joinpath(homedir(), filename) - end -end +find_hist_file() = get(ENV, "JULIA_HISTORY", + joinpath(homedir(), ".julia", "logs", "repl_history.jl")) backend(r::AbstractREPL) = r.backendref @@ -837,6 +829,7 @@ function setup_interface( if repl.history_file try hist_path = find_hist_file() + mkpath(dirname(hist_path)) f = open(hist_path, read=true, write=true, create=true) finalizer(replc) do replc close(f) diff --git a/stdlib/REPL/src/REPLCompletions.jl b/stdlib/REPL/src/REPLCompletions.jl index af60887f0b593b..ec09bc8889f3f0 100644 --- a/stdlib/REPL/src/REPLCompletions.jl +++ b/stdlib/REPL/src/REPLCompletions.jl @@ -201,7 +201,7 @@ function complete_path(path::AbstractString, pos; use_envpath=false) end matchList = String[replace(s, r"\s" => "\\ ") for s in matches] - startpos = pos - lastindex(prefix) + 1 - length(matchall(r" ", prefix)) + startpos = pos - lastindex(prefix) + 1 - count(equalto(' '), prefix) # The pos - lastindex(prefix) + 1 is correct due to `lastindex(prefix)-lastindex(prefix)==0`, # hence we need to add one to get the first index. This is also correct when considering # pos, because pos is the `lastindex` a larger string which `endswith(path)==true`. diff --git a/stdlib/REPL/src/TerminalMenus/AbstractMenu.jl b/stdlib/REPL/src/TerminalMenus/AbstractMenu.jl index 20cc52659d219f..ba62f3fa90836e 100644 --- a/stdlib/REPL/src/TerminalMenus/AbstractMenu.jl +++ b/stdlib/REPL/src/TerminalMenus/AbstractMenu.jl @@ -24,7 +24,7 @@ Details can be found in # Subtypes -All subtypes must contain the feilds `pagesize::Int` and +All subtypes must contain the fields `pagesize::Int` and `pageoffset::Int`. They must also implement the following functions. ## Necessary Functions @@ -59,7 +59,7 @@ abstract type AbstractMenu end pick(m::AbstractMenu, cursor::Int) = error("unimplemented") # This function must be implemented for all menu types. It defines what -# happends when a user cancels ('q' or ctrl-c) a menu. `request()` will +# happens when a user cancels ('q' or ctrl-c) a menu. `request()` will # always exit after calling this function. cancel(m::AbstractMenu) = error("unimplemented") @@ -77,7 +77,7 @@ end # OPTIONAL FUNCTIONS -# These functions do not need to be implemented for all Menu types +# These functions do not need to be implemented for all menu types ################################################################## # If `header()` is defined for a specific menu type, display the header @@ -85,7 +85,7 @@ end header(m::AbstractMenu) = "" # If `keypress()` is defined for a specific menu type, send any -# non-standard keypres event to this function. If the function returns +# non-standard keypress event to this function. If the function returns # true, `request()` will exit. keypress(m::AbstractMenu, i::UInt32) = false diff --git a/stdlib/REPL/src/TerminalMenus/TerminalMenus.jl b/stdlib/REPL/src/TerminalMenus/TerminalMenus.jl index d25a8acb5d2d89..35783ed63e12c1 100644 --- a/stdlib/REPL/src/TerminalMenus/TerminalMenus.jl +++ b/stdlib/REPL/src/TerminalMenus/TerminalMenus.jl @@ -6,7 +6,7 @@ import REPL function __init__() global terminal - terminal = REPL.Terminals.TTYTerminal(get(ENV, "TERM", Sys.iswindows() ? "" : "dumb"), STDIN, STDOUT, STDERR) + terminal = REPL.Terminals.TTYTerminal(get(ENV, "TERM", Sys.iswindows() ? "" : "dumb"), stdin, stdout, stderr) end include("util.jl") diff --git a/stdlib/REPL/src/TerminalMenus/util.jl b/stdlib/REPL/src/TerminalMenus/util.jl index e6cc18706dbe3a..fa8c803a365cd5 100644 --- a/stdlib/REPL/src/TerminalMenus/util.jl +++ b/stdlib/REPL/src/TerminalMenus/util.jl @@ -33,90 +33,58 @@ function disableRawMode(term) end -# Reads a single byte from STDIN -readNextChar(stream::IO=STDIN) = Char(read(stream,1)[1]) +# Reads a single byte from stdin +readNextChar(stream::IO=stdin) = Char(read(stream,1)[1]) -# Read the next key from STDIN. It is also able to read several bytes for +# Read the next key from stdin. It is also able to read several bytes for # escaped keys such as the arrow keys, home/end keys, etc. # Escaped keys are returned using the `Key` enum. -readKey(stream::IO=STDIN) = UInt32(_readKey(stream)) -function _readKey(stream::IO=STDIN) +readKey(stream::IO=stdin) = UInt32(_readKey(stream)) +function _readKey(stream::IO=stdin) c = readNextChar(stream) - # Escape characters - if c == '\x1b' + # Escape characters + if c == '\x1b' stream.buffer.size < 2 && return '\x1b' esc_a = readNextChar(stream) - - if esc_a == 'v' # M-v - return PAGE_UP - elseif esc_a == '<' # M-< - return HOME_KEY - elseif esc_a == '>' # M-> - return END_KEY - end + esc_a == 'v' && return PAGE_UP # M-v + esc_a == '<' && return HOME_KEY # M-< + esc_a == '>' && return END_KEY # M-> stream.buffer.size < 3 && return '\x1b' esc_b = readNextChar(stream) - if esc_a == '[' || esc_a == 'O' - if esc_b >= '0' && esc_b <= '9' - stream.buffer.size < 4 && return '\x1b' + if esc_a == '[' || esc_a == 'O' + if esc_b >= '0' && esc_b <= '9' + stream.buffer.size < 4 && return '\x1b' esc_c = readNextChar(stream) - - if esc_c == '~' - if esc_b == '1' - return HOME_KEY - elseif esc_b == '4' - return END_KEY - elseif esc_b == '3' - return DEL_KEY - elseif esc_b == '5' - return PAGE_UP - elseif esc_b == '6' - return PAGE_DOWN - elseif esc_b == '7' - return HOME_KEY - elseif esc_b == '8' - return END_KEY - else - return '\x1b' - end - end - - else - # Arrow keys - if esc_b == 'A' - return ARROW_UP - elseif esc_b == 'B' - return ARROW_DOWN - elseif esc_b == 'C' - return ARROW_RIGHT - elseif esc_b == 'D' - return ARROW_LEFT - elseif esc_b == 'H' - return HOME_KEY - elseif esc_b == 'F' - return END_KEY - else + if esc_c == '~' + esc_b == '1' && return HOME_KEY + esc_b == '4' && return END_KEY + esc_b == '3' && return DEL_KEY + esc_b == '5' && return PAGE_UP + esc_b == '6' && return PAGE_DOWN + esc_b == '7' && return HOME_KEY + esc_b == '8' && return END_KEY return '\x1b' end - end - elseif esc_a == 'H' - return HOME_KEY - elseif esc_a == 'F' - return END_KEY - end - - return '\x1b' - - elseif c == '\x16' # C-v - return PAGE_DOWN - elseif c == '\x10' # C-p - return ARROW_UP - elseif c == '\x0e' # C-n - return ARROW_DOWN - else - return c - end + else + # Arrow keys + esc_b == 'A' && return ARROW_UP + esc_b == 'B' && return ARROW_DOWN + esc_b == 'C' && return ARROW_RIGHT + esc_b == 'D' && return ARROW_LEFT + esc_b == 'H' && return HOME_KEY + esc_b == 'F' && return END_KEY + return '\x1b' + end + end + esc_a == 'H' && return HOME_KEY + esc_a == 'F' && return END_KEY + return '\x1b' + end + c == '\x16' && return PAGE_DOWN # C-v + c == '\x10' && return ARROW_UP # C-p + c == '\x0e' && return ARROW_DOWN # C-n + return c end diff --git a/stdlib/REPL/src/docview.jl b/stdlib/REPL/src/docview.jl index 921eabf9afd9c5..512a0e8f31689d 100644 --- a/stdlib/REPL/src/docview.jl +++ b/stdlib/REPL/src/docview.jl @@ -17,7 +17,7 @@ using InteractiveUtils: subtypes # This is split into helpmode and _helpmode to easier unittest _helpmode helpmode(io::IO, line::AbstractString) = :($REPL.insert_hlines($io, $(REPL._helpmode(io, line)))) -helpmode(line::AbstractString) = helpmode(STDOUT, line) +helpmode(line::AbstractString) = helpmode(stdout, line) function _helpmode(io::IO, line::AbstractString) line = strip(line) @@ -39,7 +39,7 @@ function _helpmode(io::IO, line::AbstractString) # so that the resulting expressions are evaluated in the Base.Docs namespace :($REPL.@repl $io $expr) end -_helpmode(line::AbstractString) = _helpmode(STDOUT, line) +_helpmode(line::AbstractString) = _helpmode(stdout, line) # Print vertical lines along each docstring if there are multiple docs function insert_hlines(io::IO, docs) @@ -224,14 +224,14 @@ function repl_search(io::IO, s) printmatches(io, s, doc_completions(s), cols = displaysize(io)[2] - length(pre)) println(io, "\n") end -repl_search(s) = repl_search(STDOUT, s) +repl_search(s) = repl_search(stdout, s) function repl_corrections(io::IO, s) print(io, "Couldn't find ") printstyled(io, s, '\n', color=:cyan) print_correction(io, s) end -repl_corrections(s) = repl_corrections(STDOUT, s) +repl_corrections(s) = repl_corrections(stdout, s) # inverse of latex_symbols Dict, lazily created as needed const symbols_latex = Dict{String,String}() @@ -268,7 +268,7 @@ function repl_latex(io::IO, s::String) println(io, '\n') end end -repl_latex(s::String) = repl_latex(STDOUT, s) +repl_latex(s::String) = repl_latex(stdout, s) macro repl(ex) repl(ex) end macro repl(io, ex) repl(io, ex) end @@ -290,7 +290,7 @@ repl(io::IO, str::AbstractString) = :(apropos($io, $str)) repl(io::IO, other) = esc(:(@doc $other)) #repl(io::IO, other) = lookup_doc(other) # TODO -repl(x) = repl(STDOUT, x) +repl(x) = repl(stdout, x) function _repl(x) if (isexpr(x, :call) && !any(isexpr(x, :(::)) for x in x.args)) @@ -430,7 +430,7 @@ function printmatch(io::IO, word, match) end end -printmatch(args...) = printfuzzy(STDOUT, args...) +printmatch(args...) = printfuzzy(stdout, args...) function printmatches(io::IO, word, matches; cols = displaysize(io)[2]) total = 0 @@ -443,7 +443,7 @@ function printmatches(io::IO, word, matches; cols = displaysize(io)[2]) end end -printmatches(args...; cols = displaysize(STDOUT)[2]) = printmatches(STDOUT, args..., cols = cols) +printmatches(args...; cols = displaysize(stdout)[2]) = printmatches(stdout, args..., cols = cols) function print_joined_cols(io::IO, ss, delim = "", last = delim; cols = displaysize(io)[2]) i = 0 @@ -455,7 +455,7 @@ function print_joined_cols(io::IO, ss, delim = "", last = delim; cols = displays join(io, ss[1:i], delim, last) end -print_joined_cols(args...; cols = displaysize(STDOUT)[2]) = print_joined_cols(STDOUT, args...; cols=cols) +print_joined_cols(args...; cols = displaysize(stdout)[2]) = print_joined_cols(stdout, args...; cols=cols) function print_correction(io, word) cors = levsort(word, accessible(Main)) @@ -466,7 +466,7 @@ function print_correction(io, word) return end -print_correction(word) = print_correction(STDOUT, word) +print_correction(word) = print_correction(stdout, word) # Completion data @@ -566,7 +566,7 @@ stripmd(x::Markdown.Table) = Search through all documentation for a string, ignoring case. """ -apropos(string) = apropos(STDOUT, string) +apropos(string) = apropos(stdout, string) apropos(io::IO, string) = apropos(io, Regex("\\Q$string", "i")) function apropos(io::IO, needle::Regex) for mod in modules diff --git a/stdlib/REPL/src/latex_symbols.jl b/stdlib/REPL/src/latex_symbols.jl index 33737b2204981f..339b30496d81ba 100644 --- a/stdlib/REPL/src/latex_symbols.jl +++ b/stdlib/REPL/src/latex_symbols.jl @@ -2576,6 +2576,8 @@ const latex_symbols = Dict( "\\smalltriangleright" => "▹", # right triangle, open "\\smalltriangleleft" => "◃", # left triangle, open + "\\tricolon" => "⁝", # tricolon + # fractions "\\1/4" => "¼", # vulgar fraction one quarter "\\1/2" => "½", # vulgar fraction one half diff --git a/stdlib/REPL/test/TerminalMenus/radio_menu.jl b/stdlib/REPL/test/TerminalMenus/radio_menu.jl index 05d73605d27994..a8281271cd53d2 100644 --- a/stdlib/REPL/test/TerminalMenus/radio_menu.jl +++ b/stdlib/REPL/test/TerminalMenus/radio_menu.jl @@ -33,6 +33,6 @@ TerminalMenus.config(charset=:unicode) TerminalMenus.writeLine(buf, radio_menu, 1, true) @test String(take!(buf)) == string(CONFIG[:cursor], " 1") -# Test using STDIN +# Test using stdin radio_menu = RadioMenu(string.(1:10)) @test simulateInput(3, radio_menu, :down, :down, :enter) diff --git a/stdlib/REPL/test/TerminalMenus/runtests.jl b/stdlib/REPL/test/TerminalMenus/runtests.jl index 5fe9e2bfb4957d..9ef2b8340fc3c0 100644 --- a/stdlib/REPL/test/TerminalMenus/runtests.jl +++ b/stdlib/REPL/test/TerminalMenus/runtests.jl @@ -6,7 +6,7 @@ TerminalMenus.config(supress_output=true) function simulateInput(expectedResult, menu::TerminalMenus.AbstractMenu, keys...) # If we cannot write to the buffer, skip the test - !(:buffer in fieldnames(typeof(STDIN))) && return true + !(:buffer in fieldnames(typeof(stdin))) && return true keydict = Dict(:up => "\e[A", :down => "\e[B", @@ -14,9 +14,9 @@ function simulateInput(expectedResult, menu::TerminalMenus.AbstractMenu, keys... for key in keys if isa(key, Symbol) - write(STDIN.buffer, keydict[key]) + write(stdin.buffer, keydict[key]) else - write(STDIN.buffer, "$key") + write(stdin.buffer, "$key") end end diff --git a/stdlib/REPL/test/repl.jl b/stdlib/REPL/test/repl.jl index c1286422881529..97d84762b43e72 100644 --- a/stdlib/REPL/test/repl.jl +++ b/stdlib/REPL/test/repl.jl @@ -21,24 +21,24 @@ function fake_repl(f; options::REPL.Options=REPL.Options(confirm_exit=false)) # Use pipes so we can easily do blocking reads # In the future if we want we can add a test that the right object # gets displayed by intercepting the display - stdin = Pipe() - stdout = Pipe() - stderr = Pipe() - Base.link_pipe!(stdin, reader_supports_async=true, writer_supports_async=true) - Base.link_pipe!(stdout, reader_supports_async=true, writer_supports_async=true) - Base.link_pipe!(stderr, reader_supports_async=true, writer_supports_async=true) - - repl = REPL.LineEditREPL(FakeTerminal(stdin.out, stdout.in, stderr.in), true) + input = Pipe() + output = Pipe() + err = Pipe() + Base.link_pipe!(input, reader_supports_async=true, writer_supports_async=true) + Base.link_pipe!(output, reader_supports_async=true, writer_supports_async=true) + Base.link_pipe!(err, reader_supports_async=true, writer_supports_async=true) + + repl = REPL.LineEditREPL(FakeTerminal(input.out, output.in, err.in), true) repl.options = options - f(stdin.in, stdout.out, repl) + f(input.in, output.out, repl) t = @async begin - close(stdin.in) - close(stdout.in) - close(stderr.in) + close(input.in) + close(output.in) + close(err.in) end - @test read(stderr.out, String) == "" - #display(read(stdout.out, String)) + @test read(err.out, String) == "" + #display(read(output.out, String)) Base._wait(t) nothing end @@ -158,7 +158,7 @@ fake_repl() do stdin_write, stdout_read, repl # issue #10120 # ensure that command quoting works correctly - let s, old_stdout = STDOUT + let s, old_stdout = stdout write(stdin_write, ";") readuntil(stdout_read, "shell> ") Base.print_shell_escaped(stdin_write, Base.julia_cmd().exec..., special=Base.shell_special) @@ -669,7 +669,7 @@ let exename = Base.julia_cmd() TestHelpers.with_fake_pty() do slave, master nENV = copy(ENV) nENV["TERM"] = "dumb" - p = spawn(setenv(`$exename --startup-file=no -q`,nENV),slave,slave,slave) + p = run(setenv(`$exename --startup-file=no -q`,nENV),slave,slave,slave,wait=false) output = readuntil(master,"julia> ",keep=true) if ccall(:jl_running_on_valgrind,Cint,()) == 0 # If --trace-children=yes is passed to valgrind, we will get a @@ -905,7 +905,7 @@ for (line, expr) in Pair[ "\"...\"" => "...", "r\"...\"" => Expr(:macrocall, Symbol("@r_str"), LineNumberNode(1, :none), "...") ] - #@test REPL._helpmode(line) == Expr(:macrocall, Expr(:., Expr(:., :Base, QuoteNode(:Docs)), QuoteNode(Symbol("@repl"))), LineNumberNode(119, doc_util_path), STDOUT, expr) + #@test REPL._helpmode(line) == Expr(:macrocall, Expr(:., Expr(:., :Base, QuoteNode(:Docs)), QuoteNode(Symbol("@repl"))), LineNumberNode(119, doc_util_path), stdout, expr) buf = IOBuffer() @test eval(Base, REPL._helpmode(buf, line)) isa Union{Markdown.MD,Nothing} end diff --git a/stdlib/Random/docs/src/index.md b/stdlib/Random/docs/src/index.md index 0ef892b0a3a966..5607ba0fc90255 100644 --- a/stdlib/Random/docs/src/index.md +++ b/stdlib/Random/docs/src/index.md @@ -1,5 +1,9 @@ # Random Numbers +```@meta +DocTestSetup = :(using Random) +``` + Random number generation in Julia uses the [Mersenne Twister library](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT) via `MersenneTwister` objects. Julia has a global RNG, which is used by default. Other RNG types can be plugged in by inheriting the `AbstractRNG` type; they can then be used to have multiple @@ -41,3 +45,7 @@ Random.randcycle! Random.shuffle Random.shuffle! ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Random/src/DSFMT.jl b/stdlib/Random/src/DSFMT.jl index c9ab7d8ca25a26..28ff70fda8d62e 100644 --- a/stdlib/Random/src/DSFMT.jl +++ b/stdlib/Random/src/DSFMT.jl @@ -106,7 +106,7 @@ struct GF2X end GF2X(s::AbstractString) = GF2X(parse(BigInt, reverse(s), base = 16)) -Base.string(f::GF2X) = reverse(base(16, f.z)) +Base.string(f::GF2X) = reverse(string(f.z, base = 16)) Base.:(==)(f::GF2X, g::GF2X) = f.z == g.z Base.copy(f::GF2X) = GF2X(MPZ.set(f.z)) diff --git a/stdlib/Random/src/RNGs.jl b/stdlib/Random/src/RNGs.jl index 234b9b45c49ceb..75fe31d85238c3 100644 --- a/stdlib/Random/src/RNGs.jl +++ b/stdlib/Random/src/RNGs.jl @@ -239,7 +239,7 @@ function make_seed() try return rand(RandomDevice(), UInt32, 4) catch - println(STDERR, + println(stderr, "Entropy pool not available to seed RNG; using ad-hoc entropy sources.") seed = reinterpret(UInt64, time()) seed = hash(seed, UInt64(getpid())) diff --git a/stdlib/Random/src/misc.jl b/stdlib/Random/src/misc.jl index 4978510245dca8..5aaf8f03357955 100644 --- a/stdlib/Random/src/misc.jl +++ b/stdlib/Random/src/misc.jl @@ -21,14 +21,14 @@ julia> rng = MersenneTwister(1234); julia> bitrand(rng, 10) 10-element BitArray{1}: + false true true true - false true - false false true + false false true ``` @@ -53,10 +53,10 @@ number generator, see [Random Numbers](@ref). # Examples ```jldoctest julia> srand(0); randstring() -"c03rgKi1" +"Qgt7sUOP" julia> randstring(MersenneTwister(0), 'a':'z', 6) -"wijzek" +"oevnou" julia> randstring("ACGT") "TATCGGTC" diff --git a/stdlib/Serialization/src/Serialization.jl b/stdlib/Serialization/src/Serialization.jl index cd202ab90c6cf1..6b2e423e9a8c6a 100644 --- a/stdlib/Serialization/src/Serialization.jl +++ b/stdlib/Serialization/src/Serialization.jl @@ -11,7 +11,7 @@ module Serialization import Base: GMP, Bottom, unsafe_convert, uncompressed_ast import Core: svec, SimpleVector -using Base: ViewIndex, Slice, index_lengths, unwrap_unionall +using Base: unaliascopy, unwrap_unionall using Core.IR export serialize, deserialize, AbstractSerializer, Serializer @@ -274,29 +274,12 @@ function serialize(s::AbstractSerializer, a::Array) end function serialize(s::AbstractSerializer, a::SubArray{T,N,A}) where {T,N,A<:Array} - b = trimmedsubarray(a) + # SubArray's copy only selects the relevant data (and reduces the size) but does not + # preserve the type of the argument. This internal function does both: + b = unaliascopy(a) serialize_any(s, b) end -function trimmedsubarray(V::SubArray{T,N,A}) where {T,N,A<:Array} - dest = Array{eltype(V)}(uninitialized, trimmedsize(V)) - copyto!(dest, V) - _trimmedsubarray(dest, V, (), V.indices...) -end - -trimmedsize(V) = index_lengths(V.indices...) - -function _trimmedsubarray(A, V::SubArray{T,N,P,I,LD}, newindices) where {T,N,P,I,LD} - LD && return SubArray{T,N,P,I,LD}(A, newindices, Base.compute_offset1(A, 1, newindices), 1) - SubArray{T,N,P,I,LD}(A, newindices, 0, 0) -end -_trimmedsubarray(A, V, newindices, index::ViewIndex, indices...) = _trimmedsubarray(A, V, (newindices..., trimmedindex(V.parent, length(newindices)+1, index)), indices...) - -trimmedindex(P, d, i::Real) = oftype(i, 1) -trimmedindex(P, d, i::Colon) = i -trimmedindex(P, d, i::Slice) = i -trimmedindex(P, d, i::AbstractArray) = oftype(i, reshape(linearindices(i), axes(i))) - function serialize(s::AbstractSerializer, ss::String) len = sizeof(ss) if len <= 255 @@ -324,7 +307,7 @@ end function serialize(s::AbstractSerializer, n::BigInt) serialize_type(s, BigInt) - serialize(s, base(62,n)) + serialize(s, string(n, base = 62)) end function serialize(s::AbstractSerializer, n::BigFloat) diff --git a/stdlib/Serialization/src/precompile.jl b/stdlib/Serialization/src/precompile.jl index d25f4945b1c9c0..7bbc18a44c29f2 100644 --- a/stdlib/Serialization/src/precompile.jl +++ b/stdlib/Serialization/src/precompile.jl @@ -1,8 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -precompile(Tuple{typeof(Serialization.write_as_tag), Base.TCPSocket, Int32}) precompile(Tuple{typeof(Serialization.object_number), Core.TypeName}) -precompile(Tuple{typeof(Serialization.serialize_array_data), Base.TCPSocket, Array{Int64, 1}}) precompile(Tuple{typeof(Serialization.deserialize_array), Serialization.Serializer{Base.PipeEndpoint}}) precompile(Tuple{typeof(Serialization.deserialize), Base.PipeEndpoint}) precompile(Tuple{typeof(Serialization.deserialize), Serialization.Serializer{Base.PipeEndpoint}}) diff --git a/stdlib/SharedArrays/test/runtests.jl b/stdlib/SharedArrays/test/runtests.jl index a4bfa65d4944e0..d29c6fc78a9b37 100644 --- a/stdlib/SharedArrays/test/runtests.jl +++ b/stdlib/SharedArrays/test/runtests.jl @@ -61,7 +61,7 @@ for p in procs(d) idxl = last(idxes_in_p) d[idxf] = Float64(idxf) rv = remotecall_fetch(p, d,idxf,idxl) do D,idxf,idxl - assert(D[idxf] == Float64(idxf)) + @assert D[idxf] == Float64(idxf) D[idxl] = Float64(idxl) D[idxl] end diff --git a/stdlib/Sockets/Project.toml b/stdlib/Sockets/Project.toml new file mode 100644 index 00000000000000..11d6cb0dd320c9 --- /dev/null +++ b/stdlib/Sockets/Project.toml @@ -0,0 +1,2 @@ +name = "Sockets" +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" diff --git a/stdlib/Sockets/docs/src/index.md b/stdlib/Sockets/docs/src/index.md new file mode 100644 index 00000000000000..7f4d72b20e5228 --- /dev/null +++ b/stdlib/Sockets/docs/src/index.md @@ -0,0 +1,33 @@ +# Sockets + +```@meta +DocTestSetup = :(using Sockets) +``` + +```@docs +Sockets.connect(::TCPSocket, ::Integer) +Sockets.connect(::AbstractString) +Sockets.listen(::Any) +Sockets.listen(::AbstractString) +Sockets.getaddrinfo +Sockets.getipaddr +Sockets.getalladdrinfo +Sockets.getnameinfo +Sockets.getsockname +Sockets.getpeername +Sockets.IPv4 +Sockets.IPv6 +Sockets.TCPSocket +Sockets.UDPSocket +Sockets.accept +Sockets.listenany +Sockets.bind +Sockets.send +Sockets.recv +Sockets.recvfrom +Sockets.setopt +``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Sockets/src/IPAddr.jl b/stdlib/Sockets/src/IPAddr.jl new file mode 100644 index 00000000000000..f024b1f94e7f3c --- /dev/null +++ b/stdlib/Sockets/src/IPAddr.jl @@ -0,0 +1,253 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +abstract type IPAddr end + +Base.isless(a::T, b::T) where {T<:IPAddr} = isless(a.host, b.host) +(dt::Type{<:Integer})(ip::IPAddr) = dt(ip.host)::dt + +struct IPv4 <: IPAddr + host::UInt32 + IPv4(host::UInt32) = new(host) + IPv4(a::UInt8,b::UInt8,c::UInt8,d::UInt8) = new(UInt32(a)<<24| + UInt32(b)<<16| + UInt32(c)<<8| + d) + function IPv4(a::Integer,b::Integer,c::Integer,d::Integer) + if !(0<=a<=255 && 0<=b<=255 && 0<=c<=255 && 0<=d<=255) + throw(ArgumentError("IPv4 field out of range (must be 0-255)")) + end + IPv4(UInt8(a),UInt8(b),UInt8(c),UInt8(d)) + end +end + +""" + IPv4(host::Integer) -> IPv4 + +Returns an IPv4 object from ip address `host` formatted as an [`Integer`](@ref). + +```jldoctest +julia> IPv4(3223256218) +ip"192.30.252.154" +``` +""" +function IPv4(host::Integer) + if host < 0 + throw(ArgumentError("IPv4 address must be positive")) + elseif typemax(typeof(host)) > typemax(UInt32) && host > typemax(UInt32) + throw(ArgumentError("IPv4 address must fit within 32 bits")) + else + return IPv4(UInt32(host)) + end +end + +# constructor: ("1.2.3.4") +IPv4(str::AbstractString) = parse(IPv4, str) + +show(io::IO,ip::IPv4) = print(io,"ip\"",ip,"\"") +print(io::IO,ip::IPv4) = print(io,string((ip.host&(0xFF000000))>>24),".", + string((ip.host&(0xFF0000))>>16),".", + string((ip.host&(0xFF00))>>8),".", + string(ip.host&0xFF)) + +struct IPv6 <: IPAddr + host::UInt128 + IPv6(host::UInt128) = new(host) + IPv6(a::UInt16,b::UInt16,c::UInt16,d::UInt16, + e::UInt16,f::UInt16,g::UInt16,h::UInt16) = new(UInt128(a)<<(7*16)| + UInt128(b)<<(6*16)| + UInt128(c)<<(5*16)| + UInt128(d)<<(4*16)| + UInt128(e)<<(3*16)| + UInt128(f)<<(2*16)| + UInt128(g)<<(1*16)| + h) + function IPv6(a::Integer,b::Integer,c::Integer,d::Integer, + e::Integer,f::Integer,g::Integer,h::Integer) + if !(0<=a<=0xFFFF && 0<=b<=0xFFFF && 0<=c<=0xFFFF && 0<=d<=0xFFFF && + 0<=e<=0xFFFF && 0<=f<=0xFFFF && 0<=g<=0xFFFF && 0<=h<=0xFFFF) + throw(ArgumentError("IPv6 field out of range (must be 0-65535)")) + end + IPv6(UInt16(a),UInt16(b),UInt16(c),UInt16(d), + UInt16(e),UInt16(f),UInt16(g),UInt16(h)) + end +end + +""" + IPv6(host::Integer) -> IPv6 + +Returns an IPv6 object from ip address `host` formatted as an [`Integer`](@ref). + +```jldoctest +julia> IPv6(3223256218) +ip"::c01e:fc9a" +``` +""" +function IPv6(host::Integer) + if host < 0 + throw(ArgumentError("IPv6 address must be positive")) + # We allow passing bigger integer types, but need to be careful to avoid overflow + # Let's hope promotion rules are sensible + elseif typemax(typeof(host)) > typemax(UInt128) && host > typemax(UInt128) + throw(ArgumentError("IPv6 address must fit within 128 bits")) + else + return IPv6(UInt128(host)) + end +end + +IPv6(str::AbstractString) = parse(IPv6, str) + +# Suppress leading '0's and "0x" +print_ipv6_field(io,field::UInt16) = print(io,string(field, base = 16)) + +print_ipv6_field(io,ip,i) = print_ipv6_field(io,ipv6_field(ip,i)) +function ipv6_field(ip::IPv6,i) + if i < 0 || i > 7 + throw(BoundsError()) + end + UInt16(ip.host&(UInt128(0xFFFF)<<(i*16))>>(i*16)) +end + +show(io::IO, ip::IPv6) = print(io,"ip\"",ip,"\"") +# RFC 5952 compliant show function +# http://tools.ietf.org/html/rfc5952 +function print(io::IO,ip::IPv6) + i = 8 + m = 0 + longest_sub_i = -1 + while i!=0 + i-=1 + field = ipv6_field(ip,i) + if field == 0 && longest_sub_i == -1 + # Find longest subsequence of 0 + longest_sub_i,j,m,c = i,i,1,1 + while j != 0 + j-=1 + if ipv6_field(ip,j) == 0 + c += 1 + else + c = 0 + end + if c > m + if j+c != longest_sub_i+1 + longest_sub_i = j+c-1 + end + m = c + end + end + # Prevent single 0 from contracting to :: as required + if m == 1 + longest_sub_i = 9 + end + end + if i == longest_sub_i + print(io,":") + i -= m-1 + if i == 0 + print(io,":") + break + end + else + if i != 7 + print(io,":") + end + print_ipv6_field(io,field) + end + end +end + +# Parsing + +const ipv4_leading_zero_error = """ +Leading zeros in IPv4 addresses are disallowed due to ambiguity. +If the address is in octal or hexadecimal, convert it to decimal, otherwise remove the leading zero. +""" + +function parse(::Type{IPv4}, str::AbstractString) + fields = split(str,'.') + i = 1 + ret = 0 + for f in fields + if isempty(f) + throw(ArgumentError("empty field in IPv4 address")) + end + if length(f) > 1 && f[1] == '0' + throw(ArgumentError(ipv4_leading_zero_error)) + else + r = parse(Int, f, base = 10) + end + if i != length(fields) + if r < 0 || r > 255 + throw(ArgumentError("IPv4 field out of range (must be 0-255)")) + end + ret |= UInt32(r) << ((4-i)*8) + else + if r > ((UInt64(1)<<((5-length(fields))*8))-1) + throw(ArgumentError("IPv4 field too large")) + end + ret |= r + end + i+=1 + end + IPv4(ret) +end + +function parseipv6fields(fields,num_fields) + if length(fields) > num_fields + throw(ArgumentError("too many fields in IPv6 address")) + end + cf = 7 + ret = UInt128(0) + for f in fields + if isempty(f) + # ::abc:... and ..:abc:: + if cf != 7 && cf != 0 + cf -= num_fields-length(fields) + end + cf -= 1 + continue + end + ret |= UInt128(parse(Int, f, base = 16))<<(cf*16) + cf -= 1 + end + ret +end +parseipv6fields(fields) = parseipv6fields(fields,8) + +function parse(::Type{IPv6}, str::AbstractString) + fields = split(str,':') + if length(fields) > 8 + throw(ArgumentError("too many fields in IPv6 address")) + elseif length(fields) == 8 + return IPv6(parseipv6fields(fields)) + elseif in('.',fields[end]) + return IPv6((parseipv6fields(fields[1:(end-1)],6)) + | parse(IPv4, fields[end]).host ) + else + return IPv6(parseipv6fields(fields)) + end +end + +# +# This support IPv4 addresses in the common dot (IPv4) or colon (IPv6) +# separated formats. Most other common formats use a standard integer encoding +# of the appropriate size and should use the appropriate constructor +# + +function parse(::Type{IPAddr}, str::AbstractString) + if ':' in str + return parse(IPv6, str) + else + return parse(IPv4, str) + end +end + +macro ip_str(str) + return parse(IPAddr, str) +end + +struct InetAddr{T<:IPAddr} + host::T + port::UInt16 +end + +InetAddr(ip::IPAddr, port) = InetAddr{typeof(ip)}(ip, port) diff --git a/stdlib/Sockets/src/PipeServer.jl b/stdlib/Sockets/src/PipeServer.jl new file mode 100644 index 00000000000000..92c99efdc05eb6 --- /dev/null +++ b/stdlib/Sockets/src/PipeServer.jl @@ -0,0 +1,93 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +mutable struct PipeServer <: LibuvServer + handle::Ptr{Cvoid} + status::Int + connectnotify::Condition + closenotify::Condition + function PipeServer(handle::Ptr{Cvoid}, status) + p = new(handle, + status, + Condition(), + Condition()) + associate_julia_struct(p.handle, p) + finalizer(uvfinalize, p) + return p + end +end + +function PipeServer() + pipe = PipeServer(Libc.malloc(Base._sizeof_uv_named_pipe), StatusUninit) + err = ccall(:uv_pipe_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Cint), eventloop(), pipe.handle, 0) + uv_error("failed to create pipe server", err) + pipe.status = StatusInit + return pipe +end + +## server functions ## + +accept(server::PipeServer) = accept(server, PipeEndpoint()) + +function accept_nonblock(server::PipeServer, client::PipeEndpoint) + if client.status != StatusInit + error("client is already in use or has been closed") + end + err = ccall(:uv_accept, Int32, (Ptr{Cvoid}, Ptr{Cvoid}), server.handle, client.handle) + if err == 0 + client.status = StatusOpen + end + return err +end + +function accept_nonblock(server::PipeServer) + client = PipeEndpoint() + uv_error("accept", accept_nonblock(server, client) != 0) + return client +end + +function bind(server::PipeServer, name::AbstractString) + @assert server.status == StatusInit + err = ccall(:uv_pipe_bind, Int32, (Ptr{Cvoid}, Cstring), + server, name) + if err != 0 + if err != UV_EADDRINUSE && err != UV_EACCES + #TODO: this codepath is currently not tested + throw(UVError("bind",err)) + else + return false + end + end + server.status = StatusOpen + return true +end + +""" + listen(path::AbstractString) -> PipeServer + +Create and listen on a named pipe / UNIX domain socket. +""" +function listen(path::AbstractString) + sock = PipeServer() + bind(sock, path) || throw(ArgumentError("could not listen on path $path")) + return listen(sock) +end + +function connect!(sock::PipeEndpoint, path::AbstractString) + @assert sock.status == StatusInit + req = Libc.malloc(Base._sizeof_uv_connect) + uv_req_set_data(req, C_NULL) + ccall(:uv_pipe_connect, Cvoid, (Ptr{Cvoid}, Ptr{Cvoid}, Cstring, Ptr{Cvoid}), req, sock.handle, path, + uv_jl_connectcb::Ptr{Cvoid}) + sock.status = StatusConnecting + return sock +end + +# Libuv will internally reset read/writability, which is uses to +# mark that this is an invalid pipe. + +""" + connect(path::AbstractString) -> PipeEndpoint + +Connect to the named pipe / UNIX domain socket at `path`. +""" +connect(path::AbstractString) = connect(PipeEndpoint(), path) diff --git a/base/socket.jl b/stdlib/Sockets/src/Sockets.jl similarity index 52% rename from base/socket.jl rename to stdlib/Sockets/src/Sockets.jl index 8916ccbb5b715f..ec7876a9170af7 100644 --- a/base/socket.jl +++ b/stdlib/Sockets/src/Sockets.jl @@ -1,259 +1,45 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -## IP ADDRESS HANDLING ## -abstract type IPAddr end - -Base.isless(a::T, b::T) where {T<:IPAddr} = isless(a.host, b.host) -(dt::Type{<:Integer})(ip::IPAddr) = dt(ip.host)::dt - -struct IPv4 <: IPAddr - host::UInt32 - IPv4(host::UInt32) = new(host) - IPv4(a::UInt8,b::UInt8,c::UInt8,d::UInt8) = new(UInt32(a)<<24| - UInt32(b)<<16| - UInt32(c)<<8| - d) - function IPv4(a::Integer,b::Integer,c::Integer,d::Integer) - if !(0<=a<=255 && 0<=b<=255 && 0<=c<=255 && 0<=d<=255) - throw(ArgumentError("IPv4 field out of range (must be 0-255)")) - end - IPv4(UInt8(a),UInt8(b),UInt8(c),UInt8(d)) - end -end - -""" - IPv4(host::Integer) -> IPv4 - -Returns an IPv4 object from ip address `host` formatted as an [`Integer`](@ref). - -```jldoctest -julia> IPv4(3223256218) -ip"192.30.252.154" -``` -""" -function IPv4(host::Integer) - if host < 0 - throw(ArgumentError("IPv4 address must be positive")) - elseif typemax(typeof(host)) > typemax(UInt32) && host > typemax(UInt32) - throw(ArgumentError("IPv4 address must fit within 32 bits")) - else - return IPv4(UInt32(host)) - end -end - -# constructor: ("1.2.3.4") -IPv4(str::AbstractString) = parse(IPv4, str) - -show(io::IO,ip::IPv4) = print(io,"ip\"",ip,"\"") -print(io::IO,ip::IPv4) = print(io,dec((ip.host&(0xFF000000))>>24),".", - dec((ip.host&(0xFF0000))>>16),".", - dec((ip.host&(0xFF00))>>8),".", - dec(ip.host&0xFF)) - -struct IPv6 <: IPAddr - host::UInt128 - IPv6(host::UInt128) = new(host) - IPv6(a::UInt16,b::UInt16,c::UInt16,d::UInt16, - e::UInt16,f::UInt16,g::UInt16,h::UInt16) = new(UInt128(a)<<(7*16)| - UInt128(b)<<(6*16)| - UInt128(c)<<(5*16)| - UInt128(d)<<(4*16)| - UInt128(e)<<(3*16)| - UInt128(f)<<(2*16)| - UInt128(g)<<(1*16)| - h) - function IPv6(a::Integer,b::Integer,c::Integer,d::Integer, - e::Integer,f::Integer,g::Integer,h::Integer) - if !(0<=a<=0xFFFF && 0<=b<=0xFFFF && 0<=c<=0xFFFF && 0<=d<=0xFFFF && - 0<=e<=0xFFFF && 0<=f<=0xFFFF && 0<=g<=0xFFFF && 0<=h<=0xFFFF) - throw(ArgumentError("IPv6 field out of range (must be 0-65535)")) - end - IPv6(UInt16(a),UInt16(b),UInt16(c),UInt16(d), - UInt16(e),UInt16(f),UInt16(g),UInt16(h)) - end -end - -""" - IPv6(host::Integer) -> IPv6 - -Returns an IPv6 object from ip address `host` formatted as an [`Integer`](@ref). - -```jldoctest -julia> IPv6(3223256218) -ip"::c01e:fc9a" -``` -""" -function IPv6(host::Integer) - if host < 0 - throw(ArgumentError("IPv6 address must be positive")) - # We allow passing bigger integer types, but need to be careful to avoid overflow - # Let's hope promotion rules are sensible - elseif typemax(typeof(host)) > typemax(UInt128) && host > typemax(UInt128) - throw(ArgumentError("IPv6 address must fit within 128 bits")) - else - return IPv6(UInt128(host)) - end -end - -IPv6(str::AbstractString) = parse(IPv6, str) - -# Suppress leading '0's and "0x" -print_ipv6_field(io,field::UInt16) = print(io,hex(field)) - -print_ipv6_field(io,ip,i) = print_ipv6_field(io,ipv6_field(ip,i)) -function ipv6_field(ip::IPv6,i) - if i < 0 || i > 7 - throw(BoundsError()) - end - UInt16(ip.host&(UInt128(0xFFFF)<<(i*16))>>(i*16)) -end - -show(io::IO, ip::IPv6) = print(io,"ip\"",ip,"\"") -# RFC 5952 compliant show function -# http://tools.ietf.org/html/rfc5952 -function print(io::IO,ip::IPv6) - i = 8 - m = 0 - longest_sub_i = -1 - while i!=0 - i-=1 - field = ipv6_field(ip,i) - if field == 0 && longest_sub_i == -1 - # Find longest subsequence of 0 - longest_sub_i,j,m,c = i,i,1,1 - while j != 0 - j-=1 - if ipv6_field(ip,j) == 0 - c += 1 - else - c = 0 - end - if c > m - if j+c != longest_sub_i+1 - longest_sub_i = j+c-1 - end - m = c - end - end - # Prevent single 0 from contracting to :: as required - if m == 1 - longest_sub_i = 9 - end - end - if i == longest_sub_i - print(io,":") - i -= m-1 - if i == 0 - print(io,":") - break - end - else - if i != 7 - print(io,":") - end - print_ipv6_field(io,field) - end - end -end - -# Parsing - -const ipv4_leading_zero_error = """ -Leading zeros in IPv4 addresses are disallowed due to ambiguity. -If the address is in octal or hexadecimal, convert it to decimal, otherwise remove the leading zero. -""" - -function parse(::Type{IPv4}, str::AbstractString) - fields = split(str,'.') - i = 1 - ret = 0 - for f in fields - if isempty(f) - throw(ArgumentError("empty field in IPv4 address")) - end - if length(f) > 1 && f[1] == '0' - throw(ArgumentError(ipv4_leading_zero_error)) - else - r = parse(Int, f, base = 10) - end - if i != length(fields) - if r < 0 || r > 255 - throw(ArgumentError("IPv4 field out of range (must be 0-255)")) - end - ret |= UInt32(r) << ((4-i)*8) - else - if r > ((UInt64(1)<<((5-length(fields))*8))-1) - throw(ArgumentError("IPv4 field too large")) - end - ret |= r - end - i+=1 - end - IPv4(ret) -end - -function parseipv6fields(fields,num_fields) - if length(fields) > num_fields - throw(ArgumentError("too many fields in IPv6 address")) - end - cf = 7 - ret = UInt128(0) - for f in fields - if isempty(f) - # ::abc:... and ..:abc:: - if cf != 7 && cf != 0 - cf -= num_fields-length(fields) - end - cf -= 1 - continue - end - ret |= UInt128(parse(Int, f, base = 16))<<(cf*16) - cf -= 1 - end - ret -end -parseipv6fields(fields) = parseipv6fields(fields,8) - -function parse(::Type{IPv6}, str::AbstractString) - fields = split(str,':') - if length(fields) > 8 - throw(ArgumentError("too many fields in IPv6 address")) - elseif length(fields) == 8 - return IPv6(parseipv6fields(fields)) - elseif in('.',fields[end]) - return IPv6((parseipv6fields(fields[1:(end-1)],6)) - | parse(IPv4, fields[end]).host ) - else - return IPv6(parseipv6fields(fields)) - end -end - -# -# This support IPv4 addresses in the common dot (IPv4) or colon (IPv6) -# separated formats. Most other common formats use a standard integer encoding -# of the appropriate size and should use the appropriate constructor -# - -function parse(::Type{IPAddr}, str::AbstractString) - if ':' in str - return parse(IPv6, str) - else - return parse(IPv4, str) - end -end +module Sockets + +export + accept, + bind, + connect, + getaddrinfo, + getalladdrinfo, + getnameinfo, + getipaddr, + getpeername, + getsockname, + listen, + listenany, + recv, + recvfrom, + send, + TCPSocket, + UDPSocket, + @ip_str, + IPAddr, + IPv4, + IPv6 + +import Base: isless, show, print, parse, bind, convert, isreadable, iswritable, alloc_buf_hook, _uv_hook_close + +using Base: LibuvStream, LibuvServer, PipeEndpoint, @handle_as, uv_error, associate_julia_struct, uvfinalize, + notify_error, stream_wait, uv_req_data, uv_req_set_data, preserve_handle, unpreserve_handle, UVError, + eventloop, StatusUninit, StatusInit, StatusConnecting, StatusOpen, StatusClosing, StatusClosed, StatusActive, + uv_status_string, check_open, wait_connected, + UV_EINVAL, UV_ENOMEM, UV_ENOBUFS, UV_EAGAIN, UV_ECONNABORTED, UV_EADDRINUSE, UV_EACCES, UV_EADDRNOTAVAIL, + UV_EAI_ADDRFAMILY, UV_EAI_AGAIN, UV_EAI_BADFLAGS, + UV_EAI_BADHINTS, UV_EAI_CANCELED, UV_EAI_FAIL, + UV_EAI_FAMILY, UV_EAI_NODATA, UV_EAI_NONAME, + UV_EAI_OVERFLOW, UV_EAI_PROTOCOL, UV_EAI_SERVICE, + UV_EAI_SOCKTYPE, UV_EAI_MEMORY + +include("IPAddr.jl") +include("addrinfo.jl") -macro ip_str(str) - return parse(IPAddr, str) -end - -struct InetAddr{T<:IPAddr} - host::T - port::UInt16 -end - -InetAddr(ip::IPAddr, port) = InetAddr{typeof(ip)}(ip, port) - -## SOCKETS ## """ TCPSocket(; delay=true) @@ -282,7 +68,7 @@ mutable struct TCPSocket <: LibuvStream Condition(), nothing, ReentrantLock(), - DEFAULT_READ_BUFFER_SZ) + Base.DEFAULT_READ_BUFFER_SZ) associate_julia_struct(tcp.handle, tcp) finalizer(uvfinalize, tcp) return tcp @@ -291,7 +77,7 @@ end # kw arg "delay": if true, libuv delays creation of the socket fd till the first bind call function TCPSocket(; delay=true) - tcp = TCPSocket(Libc.malloc(_sizeof_uv_tcp), StatusUninit) + tcp = TCPSocket(Libc.malloc(Base._sizeof_uv_tcp), StatusUninit) af_spec = delay ? 0 : 2 # AF_UNSPEC is 0, AF_INET is 2 err = ccall(:uv_tcp_init_ex, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Cuint), eventloop(), tcp.handle, af_spec) @@ -322,7 +108,7 @@ end # It can be set to false if there is a need to set socket options before # further calls to `bind` and `listen`, e.g. `SO_REUSEPORT`. function TCPServer(; delay=true) - tcp = TCPServer(Libc.malloc(_sizeof_uv_tcp), StatusUninit) + tcp = TCPServer(Libc.malloc(Base._sizeof_uv_tcp), StatusUninit) af_spec = delay ? 0 : 2 # AF_UNSPEC is 0, AF_INET is 2 err = ccall(:uv_tcp_init_ex, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Cuint), eventloop(), tcp.handle, af_spec) @@ -334,15 +120,6 @@ end isreadable(io::TCPSocket) = isopen(io) || bytesavailable(io) > 0 iswritable(io::TCPSocket) = isopen(io) && io.status != StatusClosing -## VARIOUS METHODS TO BE MOVED TO BETTER LOCATION - -_jl_connect_raw(sock::TCPSocket, sockaddr::Ptr{Cvoid}) = - ccall(:jl_connect_raw, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), sock.handle, sockaddr, uv_jl_connectcb::Ptr{Cvoid}) -_jl_sockaddr_from_addrinfo(addrinfo::Ptr{Cvoid}) = - ccall(:jl_sockaddr_from_addrinfo, Ptr{Cvoid}, (Ptr{Cvoid},), addrinfo) -_jl_sockaddr_set_port(ptr::Ptr{Cvoid}, port::UInt16) = - ccall(:jl_sockaddr_set_port, Cvoid, (Ptr{Cvoid}, UInt16), ptr, port) - """ accept(server[,client]) @@ -351,7 +128,6 @@ uninitialized client stream may be provided, in which case it will be used inste creating a new stream. """ accept(server::TCPServer) = accept(server, TCPSocket()) -accept(server::PipeServer) = accept(server, PipeEndpoint()) # UDP """ @@ -380,7 +156,7 @@ mutable struct UDPSocket <: LibuvStream end end function UDPSocket() - this = UDPSocket(Libc.malloc(_sizeof_uv_udp), StatusUninit) + this = UDPSocket(Libc.malloc(Base._sizeof_uv_udp), StatusUninit) err = ccall(:uv_udp_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}), eventloop(), this.handle) uv_error("failed to create udp socket", err) @@ -517,7 +293,7 @@ function recvfrom(sock::UDPSocket) end if ccall(:uv_is_active, Cint, (Ptr{Cvoid},), sock.handle) == 0 uv_error("recv_start", ccall(:uv_udp_recv_start, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), - sock.handle, uv_jl_alloc_buf::Ptr{Cvoid}, uv_jl_recvcb::Ptr{Cvoid})) + sock.handle, Base.uv_jl_alloc_buf::Ptr{Cvoid}, uv_jl_recvcb::Ptr{Cvoid})) end sock.status = StatusActive return stream_wait(sock, sock.recvnotify)::Tuple{Union{IPv4, IPv6}, Vector{UInt8}} @@ -590,244 +366,24 @@ function uv_sendcb(handle::Ptr{Cvoid}, status::Cint) nothing end -## -struct DNSError <: Exception - host::String - code::Int32 -end - -function show(io::IO, err::DNSError) - print(io, "DNSError: ", err.host, ", ", struverror(err.code), - " (", uverrorname(err.code), ")") -end - -function uv_getaddrinfocb(req::Ptr{Cvoid}, status::Cint, addrinfo::Ptr{Cvoid}) - data = uv_req_data(req) - if data != C_NULL - t = unsafe_pointer_to_objref(data)::Task - uv_req_set_data(req, C_NULL) - if status != 0 || addrinfo == C_NULL - schedule(t, UVError("getaddrinfocb", status)) - else - freeaddrinfo = addrinfo - addrs = IPAddr[] - while addrinfo != C_NULL - sockaddr = ccall(:jl_sockaddr_from_addrinfo, Ptr{Cvoid}, (Ptr{Cvoid},), addrinfo) - if ccall(:jl_sockaddr_is_ip4, Int32, (Ptr{Cvoid},), sockaddr) == 1 - ip4addr = ccall(:jl_sockaddr_host4, UInt32, (Ptr{Cvoid},), sockaddr) - push!(addrs, IPv4(ntoh(ip4addr))) - elseif ccall(:jl_sockaddr_is_ip6, Int32, (Ptr{Cvoid},), sockaddr) == 1 - ip6addr = Ref{UInt128}() - scope_id = ccall(:jl_sockaddr_host6, UInt32, (Ptr{Cvoid}, Ptr{UInt128}), sockaddr, ip6addr) - push!(addrs, IPv6(ntoh(ip6addr[]))) - end - addrinfo = ccall(:jl_next_from_addrinfo, Ptr{Cvoid}, (Ptr{Cvoid},), addrinfo) - end - ccall(:uv_freeaddrinfo, Cvoid, (Ptr{Cvoid},), freeaddrinfo) - schedule(t, addrs) - end +#from `connect` +function uv_connectcb(conn::Ptr{Cvoid}, status::Cint) + hand = ccall(:jl_uv_connect_handle, Ptr{Cvoid}, (Ptr{Cvoid},), conn) + sock = @handle_as hand LibuvStream + @assert sock.status == StatusConnecting + if status >= 0 + sock.status = StatusOpen + notify(sock.connectnotify) else - # no owner for this req, safe to just free it - Libc.free(req) + sock.status = StatusInit + err = UVError("connect", status) + notify_error(sock.connectnotify, err) end + Libc.free(conn) nothing end -""" - getalladdrinfo(host::AbstractString) -> Vector{IPAddr} - -Gets all of the IP addresses of the `host`. -Uses the operating system's underlying getaddrinfo implementation, which may do a DNS lookup. -""" -function getalladdrinfo(host::String) - isascii(host) || error("non-ASCII hostname: $host") - req = Libc.malloc(_sizeof_uv_getaddrinfo) - uv_req_set_data(req, C_NULL) # in case we get interrupted before arriving at the wait call - status = ccall(:jl_getaddrinfo, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Cstring, Ptr{Cvoid}, Ptr{Cvoid}), - eventloop(), req, host, #=service=#C_NULL, uv_jl_getaddrinfocb::Ptr{Cvoid}) - if status < 0 - Libc.free(req) - if status == UV_EINVAL - throw(ArgumentError("Invalid getaddrinfo argument")) - elseif status == UV_ENOMEM || status == UV_ENOBUFS - throw(OutOfMemoryError()) - end - uv_error("getaddrinfo", status) - end - ct = current_task() - preserve_handle(ct) - r = try - uv_req_set_data(req, ct) - wait() - finally - if uv_req_data(req) != C_NULL - # req is still alive, - # so make sure we don't get spurious notifications later - uv_req_set_data(req, C_NULL) - ccall(:uv_cancel, Int32, (Ptr{Cvoid},), req) # try to let libuv know we don't care anymore - else - # done with req - Libc.free(req) - end - unpreserve_handle(ct) - end - if isa(r, UVError) - code = r.code - if code in (UV_EAI_ADDRFAMILY, UV_EAI_AGAIN, UV_EAI_BADFLAGS, - UV_EAI_BADHINTS, UV_EAI_CANCELED, UV_EAI_FAIL, - UV_EAI_FAMILY, UV_EAI_NODATA, UV_EAI_NONAME, - UV_EAI_OVERFLOW, UV_EAI_PROTOCOL, UV_EAI_SERVICE, - UV_EAI_SOCKTYPE) - throw(DNSError(host, code)) - elseif code == UV_EAI_MEMORY - throw(OutOfMemoryError()) - else - throw(UVError("getaddrinfo", code)) - end - end - return r::Vector{IPAddr} -end -getalladdrinfo(host::AbstractString) = getalladdrinfo(String(host)) - -""" - getalladdrinfo(host::AbstractString, IPAddr=IPv4) -> IPAddr - -Gets the first IP address of the `host` of the specified `IPAddr` type. -Uses the operating system's underlying getaddrinfo implementation, which may do a DNS lookup. -""" -function getaddrinfo(host::String, T::Type{<:IPAddr}) - addrs = getalladdrinfo(host) - for addr in addrs - if addr isa T - return addr - end - end - throw(DNSError(host, UV_EAI_NONAME)) -end -getaddrinfo(host::AbstractString, T::Type{<:IPAddr}) = getaddrinfo(String(host), T) -getaddrinfo(host::AbstractString) = getaddrinfo(String(host), IPv4) - -function uv_getnameinfocb(req::Ptr{Cvoid}, status::Cint, hostname::Cstring, service::Cstring) - data = uv_req_data(req) - if data != C_NULL - t = unsafe_pointer_to_objref(data)::Task - uv_req_set_data(req, C_NULL) - if status != 0 - schedule(t, UVError("getnameinfocb", status)) - else - schedule(t, unsafe_string(hostname)) - end - else - # no owner for this req, safe to just free it - Libc.free(req) - end - nothing -end - -""" - getnameinfo(host::IPAddr) -> String - -Performs a reverse-lookup for IP address to return a hostname and service -using the operating system's underlying getnameinfo implementation. -""" -function getnameinfo(address::Union{IPv4, IPv6}) - req = Libc.malloc(_sizeof_uv_getnameinfo) - uv_req_set_data(req, C_NULL) # in case we get interrupted before arriving at the wait call - ev = eventloop() - port = hton(UInt16(0)) - flags = 0 - uvcb = uv_jl_getnameinfocb::Ptr{Cvoid} - status = UV_EINVAL - if address isa IPv4 - status = ccall(:jl_getnameinfo, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, UInt32, UInt16, Cint, Ptr{Cvoid}), - ev, req, hton(address.host), port, flags, uvcb) - elseif address isa IPv6 - status = ccall(:jl_getnameinfo6, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Ref{UInt128}, UInt16, Cint, Ptr{Cvoid}), - ev, req, hton(address.host), port, flags, uvcb) - end - if status < 0 - Libc.free(req) - if status == UV_EINVAL - throw(ArgumentError("Invalid getnameinfo argument")) - elseif status == UV_ENOMEM || status == UV_ENOBUFS - throw(OutOfMemoryError()) - end - uv_error("getnameinfo", status) - end - ct = current_task() - preserve_handle(ct) - r = try - uv_req_set_data(req, ct) - wait() - finally - if uv_req_data(req) != C_NULL - # req is still alive, - # so make sure we don't get spurious notifications later - uv_req_set_data(req, C_NULL) - ccall(:uv_cancel, Int32, (Ptr{Cvoid},), req) # try to let libuv know we don't care anymore - else - # done with req - Libc.free(req) - end - unpreserve_handle(ct) - end - if isa(r, UVError) - code = r.code - if code in (UV_EAI_ADDRFAMILY, UV_EAI_AGAIN, UV_EAI_BADFLAGS, - UV_EAI_BADHINTS, UV_EAI_CANCELED, UV_EAI_FAIL, - UV_EAI_FAMILY, UV_EAI_NODATA, UV_EAI_NONAME, - UV_EAI_OVERFLOW, UV_EAI_PROTOCOL, UV_EAI_SERVICE, - UV_EAI_SOCKTYPE) - throw(DNSError(repr(address), code)) - elseif code == UV_EAI_MEMORY - throw(OutOfMemoryError()) - else - throw(UVError("getnameinfo", code)) - end - end - return r::String -end - - -const _sizeof_uv_interface_address = ccall(:jl_uv_sizeof_interface_address,Int32,()) - -""" - getipaddr() -> IPAddr - -Get the IP address of the local machine. -""" -function getipaddr() - addr_ref = Ref{Ptr{UInt8}}(C_NULL) - count_ref = Ref{Int32}(1) - lo_present = false - err = ccall(:jl_uv_interface_addresses, Int32, (Ref{Ptr{UInt8}}, Ref{Int32}), addr_ref, count_ref) - uv_error("getlocalip", err) - addr, count = addr_ref[], count_ref[] - for i = 0:(count-1) - current_addr = addr + i*_sizeof_uv_interface_address - if 1 == ccall(:jl_uv_interface_address_is_internal, Int32, (Ptr{UInt8},), current_addr) - lo_present = true - continue - end - sockaddr = ccall(:jl_uv_interface_address_sockaddr, Ptr{Cvoid}, (Ptr{UInt8},), current_addr) - if ccall(:jl_sockaddr_in_is_ip4, Int32, (Ptr{Cvoid},), sockaddr) == 1 - rv = IPv4(ntoh(ccall(:jl_sockaddr_host4, UInt32, (Ptr{Cvoid},), sockaddr))) - ccall(:uv_free_interface_addresses, Cvoid, (Ptr{UInt8}, Int32), addr, count) - return rv - # Uncomment to enbable IPv6 - #elseif ccall(:jl_sockaddr_in_is_ip6, Int32, (Ptr{Cvoid},), sockaddr) == 1 - # host = Vector{UInt128}(uninitialized, 1) - # ccall(:jl_sockaddr_host6, UInt32, (Ptr{Cvoid}, Ptr{UInt128}), sockaddrr, host) - # return IPv6(ntoh(host[1])) - end - end - ccall(:uv_free_interface_addresses, Cvoid, (Ptr{UInt8}, Int32), addr, count) - return lo_present ? localhost : error("No networking interface available") -end - -## - function connect!(sock::TCPSocket, host::IPv4, port::Integer) if sock.status != StatusInit error("TCPSocket is not in initialization state") @@ -871,8 +427,6 @@ connect(host::AbstractString, port::Integer) = connect(TCPSocket(), host, port) connect(addr::IPAddr, port::Integer) = connect(TCPSocket(), addr, port) connect(addr::InetAddr) = connect(TCPSocket(), addr) -default_connectcb(sock, status) = nothing - function connect!(sock::TCPSocket, host::AbstractString, port::Integer) if sock.status != StatusInit error("TCPSocket is not in initialization state") @@ -884,8 +438,16 @@ function connect!(sock::TCPSocket, host::AbstractString, port::Integer) return sock end +function connect(sock::LibuvStream, args...) + connect!(sock, args...) + wait_connected(sock) + return sock +end + ## +const BACKLOG_DEFAULT = 511 + """ listen([addr, ]port::Integer; backlog::Integer=BACKLOG_DEFAULT) -> TCPServer @@ -923,6 +485,31 @@ function listen(callback, server::Union{TCPSocket, UDPSocket}) return sock end +function listen(sock::LibuvServer; backlog::Integer=BACKLOG_DEFAULT) + uv_error("listen", trylisten(sock)) + return sock +end + +# from `listen` +function uv_connectioncb(stream::Ptr{Cvoid}, status::Cint) + sock = @handle_as stream LibuvServer + if status >= 0 + notify(sock.connectnotify) + else + err = UVError("connection", status) + notify_error(sock.connectnotify, err) + end + nothing +end + +function trylisten(sock::LibuvServer; backlog::Integer=BACKLOG_DEFAULT) + check_open(sock) + err = ccall(:uv_listen, Cint, (Ptr{Cvoid}, Cint, Ptr{Cvoid}), + sock, backlog, uv_jl_connectioncb::Ptr{Cvoid}) + sock.status = StatusActive + return err +end + ## function accept_nonblock(server::TCPServer, client::TCPSocket) @@ -942,6 +529,22 @@ function accept_nonblock(server::TCPServer) return client end +function accept(server::LibuvServer, client::LibuvStream) + if server.status != StatusActive + throw(ArgumentError("server not connected, make sure \"listen\" has been called")) + end + while isopen(server) + err = accept_nonblock(server, client) + if err == 0 + return client + elseif err != UV_EAGAIN + uv_error("accept", err) + end + stream_wait(server, server.connectnotify) + end + uv_error("accept", UV_ECONNABORTED) +end + ## Utility functions const localhost = ip"127.0.0.1" @@ -1033,3 +636,33 @@ function _sockname(sock, self=true) end return addr, port end + +# domain sockets + +include("PipeServer.jl") + +# libuv callback handles + +function __init__() + global uv_jl_getaddrinfocb = cfunction(uv_getaddrinfocb, Cvoid, Tuple{Ptr{Cvoid}, Cint, Ptr{Cvoid}}) + global uv_jl_getnameinfocb = cfunction(uv_getnameinfocb, Cvoid, Tuple{Ptr{Cvoid}, Cint, Cstring, Cstring}) + global uv_jl_recvcb = cfunction(uv_recvcb, Cvoid, Tuple{Ptr{Cvoid}, Cssize_t, Ptr{Cvoid}, Ptr{Cvoid}, Cuint}) + global uv_jl_sendcb = cfunction(uv_sendcb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) + global uv_jl_connectioncb = cfunction(uv_connectioncb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) + global uv_jl_connectcb = cfunction(uv_connectcb, Cvoid, Tuple{Ptr{Cvoid}, Cint}) +end + +# deprecations + +@deprecate convert(dt::Type{<:Integer}, ip::IPAddr) dt(ip) + +@noinline function getaddrinfo(callback::Function, host::AbstractString) + Base.depwarn("`getaddrinfo` with a callback function is deprecated, wrap code in `@async` instead for deferred execution.", :getaddrinfo) + @async begin + r = getaddrinfo(host) + callback(r) + end + nothing +end + +end diff --git a/stdlib/Sockets/src/addrinfo.jl b/stdlib/Sockets/src/addrinfo.jl new file mode 100644 index 00000000000000..ccd607618ba027 --- /dev/null +++ b/stdlib/Sockets/src/addrinfo.jl @@ -0,0 +1,234 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +struct DNSError <: Exception + host::String + code::Int32 +end + +function show(io::IO, err::DNSError) + print(io, "DNSError: ", err.host, ", ", struverror(err.code), + " (", uverrorname(err.code), ")") +end + +function uv_getaddrinfocb(req::Ptr{Cvoid}, status::Cint, addrinfo::Ptr{Cvoid}) + data = uv_req_data(req) + if data != C_NULL + t = unsafe_pointer_to_objref(data)::Task + uv_req_set_data(req, C_NULL) + if status != 0 || addrinfo == C_NULL + schedule(t, UVError("getaddrinfocb", status)) + else + freeaddrinfo = addrinfo + addrs = IPAddr[] + while addrinfo != C_NULL + sockaddr = ccall(:jl_sockaddr_from_addrinfo, Ptr{Cvoid}, (Ptr{Cvoid},), addrinfo) + if ccall(:jl_sockaddr_is_ip4, Int32, (Ptr{Cvoid},), sockaddr) == 1 + ip4addr = ccall(:jl_sockaddr_host4, UInt32, (Ptr{Cvoid},), sockaddr) + push!(addrs, IPv4(ntoh(ip4addr))) + elseif ccall(:jl_sockaddr_is_ip6, Int32, (Ptr{Cvoid},), sockaddr) == 1 + ip6addr = Ref{UInt128}() + scope_id = ccall(:jl_sockaddr_host6, UInt32, (Ptr{Cvoid}, Ptr{UInt128}), sockaddr, ip6addr) + push!(addrs, IPv6(ntoh(ip6addr[]))) + end + addrinfo = ccall(:jl_next_from_addrinfo, Ptr{Cvoid}, (Ptr{Cvoid},), addrinfo) + end + ccall(:uv_freeaddrinfo, Cvoid, (Ptr{Cvoid},), freeaddrinfo) + schedule(t, addrs) + end + else + # no owner for this req, safe to just free it + Libc.free(req) + end + nothing +end + +""" + getalladdrinfo(host::AbstractString) -> Vector{IPAddr} + +Gets all of the IP addresses of the `host`. +Uses the operating system's underlying getaddrinfo implementation, which may do a DNS lookup. +""" +function getalladdrinfo(host::String) + isascii(host) || error("non-ASCII hostname: $host") + req = Libc.malloc(Base._sizeof_uv_getaddrinfo) + uv_req_set_data(req, C_NULL) # in case we get interrupted before arriving at the wait call + status = ccall(:jl_getaddrinfo, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Cstring, Ptr{Cvoid}, Ptr{Cvoid}), + eventloop(), req, host, #=service=#C_NULL, uv_jl_getaddrinfocb::Ptr{Cvoid}) + if status < 0 + Libc.free(req) + if status == UV_EINVAL + throw(ArgumentError("Invalid getaddrinfo argument")) + elseif status == UV_ENOMEM || status == UV_ENOBUFS + throw(OutOfMemoryError()) + end + uv_error("getaddrinfo", status) + end + ct = current_task() + preserve_handle(ct) + r = try + uv_req_set_data(req, ct) + wait() + finally + if uv_req_data(req) != C_NULL + # req is still alive, + # so make sure we don't get spurious notifications later + uv_req_set_data(req, C_NULL) + ccall(:uv_cancel, Int32, (Ptr{Cvoid},), req) # try to let libuv know we don't care anymore + else + # done with req + Libc.free(req) + end + unpreserve_handle(ct) + end + if isa(r, UVError) + code = r.code + if code in (UV_EAI_ADDRFAMILY, UV_EAI_AGAIN, UV_EAI_BADFLAGS, + UV_EAI_BADHINTS, UV_EAI_CANCELED, UV_EAI_FAIL, + UV_EAI_FAMILY, UV_EAI_NODATA, UV_EAI_NONAME, + UV_EAI_OVERFLOW, UV_EAI_PROTOCOL, UV_EAI_SERVICE, + UV_EAI_SOCKTYPE) + throw(DNSError(host, code)) + elseif code == UV_EAI_MEMORY + throw(OutOfMemoryError()) + else + throw(UVError("getaddrinfo", code)) + end + end + return r::Vector{IPAddr} +end +getalladdrinfo(host::AbstractString) = getalladdrinfo(String(host)) + +""" + getalladdrinfo(host::AbstractString, IPAddr=IPv4) -> IPAddr + +Gets the first IP address of the `host` of the specified `IPAddr` type. +Uses the operating system's underlying getaddrinfo implementation, which may do a DNS lookup. +""" +function getaddrinfo(host::String, T::Type{<:IPAddr}) + addrs = getalladdrinfo(host) + for addr in addrs + if addr isa T + return addr + end + end + throw(DNSError(host, UV_EAI_NONAME)) +end +getaddrinfo(host::AbstractString, T::Type{<:IPAddr}) = getaddrinfo(String(host), T) +getaddrinfo(host::AbstractString) = getaddrinfo(String(host), IPv4) + +function uv_getnameinfocb(req::Ptr{Cvoid}, status::Cint, hostname::Cstring, service::Cstring) + data = uv_req_data(req) + if data != C_NULL + t = unsafe_pointer_to_objref(data)::Task + uv_req_set_data(req, C_NULL) + if status != 0 + schedule(t, UVError("getnameinfocb", status)) + else + schedule(t, unsafe_string(hostname)) + end + else + # no owner for this req, safe to just free it + Libc.free(req) + end + nothing +end + +""" + getnameinfo(host::IPAddr) -> String + +Performs a reverse-lookup for IP address to return a hostname and service +using the operating system's underlying getnameinfo implementation. +""" +function getnameinfo(address::Union{IPv4, IPv6}) + req = Libc.malloc(Base._sizeof_uv_getnameinfo) + uv_req_set_data(req, C_NULL) # in case we get interrupted before arriving at the wait call + ev = eventloop() + port = hton(UInt16(0)) + flags = 0 + uvcb = uv_jl_getnameinfocb::Ptr{Cvoid} + status = UV_EINVAL + if address isa IPv4 + status = ccall(:jl_getnameinfo, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, UInt32, UInt16, Cint, Ptr{Cvoid}), + ev, req, hton(address.host), port, flags, uvcb) + elseif address isa IPv6 + status = ccall(:jl_getnameinfo6, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Ref{UInt128}, UInt16, Cint, Ptr{Cvoid}), + ev, req, hton(address.host), port, flags, uvcb) + end + if status < 0 + Libc.free(req) + if status == UV_EINVAL + throw(ArgumentError("Invalid getnameinfo argument")) + elseif status == UV_ENOMEM || status == UV_ENOBUFS + throw(OutOfMemoryError()) + end + uv_error("getnameinfo", status) + end + ct = current_task() + preserve_handle(ct) + r = try + uv_req_set_data(req, ct) + wait() + finally + if uv_req_data(req) != C_NULL + # req is still alive, + # so make sure we don't get spurious notifications later + uv_req_set_data(req, C_NULL) + ccall(:uv_cancel, Int32, (Ptr{Cvoid},), req) # try to let libuv know we don't care anymore + else + # done with req + Libc.free(req) + end + unpreserve_handle(ct) + end + if isa(r, UVError) + code = r.code + if code in (UV_EAI_ADDRFAMILY, UV_EAI_AGAIN, UV_EAI_BADFLAGS, + UV_EAI_BADHINTS, UV_EAI_CANCELED, UV_EAI_FAIL, + UV_EAI_FAMILY, UV_EAI_NODATA, UV_EAI_NONAME, + UV_EAI_OVERFLOW, UV_EAI_PROTOCOL, UV_EAI_SERVICE, + UV_EAI_SOCKTYPE) + throw(DNSError(repr(address), code)) + elseif code == UV_EAI_MEMORY + throw(OutOfMemoryError()) + else + throw(UVError("getnameinfo", code)) + end + end + return r::String +end + +const _sizeof_uv_interface_address = ccall(:jl_uv_sizeof_interface_address,Int32,()) + +""" + getipaddr() -> IPAddr + +Get the IP address of the local machine. +""" +function getipaddr() + addr_ref = Ref{Ptr{UInt8}}(C_NULL) + count_ref = Ref{Int32}(1) + lo_present = false + err = ccall(:jl_uv_interface_addresses, Int32, (Ref{Ptr{UInt8}}, Ref{Int32}), addr_ref, count_ref) + uv_error("getlocalip", err) + addr, count = addr_ref[], count_ref[] + for i = 0:(count-1) + current_addr = addr + i*_sizeof_uv_interface_address + if 1 == ccall(:jl_uv_interface_address_is_internal, Int32, (Ptr{UInt8},), current_addr) + lo_present = true + continue + end + sockaddr = ccall(:jl_uv_interface_address_sockaddr, Ptr{Cvoid}, (Ptr{UInt8},), current_addr) + if ccall(:jl_sockaddr_in_is_ip4, Int32, (Ptr{Cvoid},), sockaddr) == 1 + rv = IPv4(ntoh(ccall(:jl_sockaddr_host4, UInt32, (Ptr{Cvoid},), sockaddr))) + ccall(:uv_free_interface_addresses, Cvoid, (Ptr{UInt8}, Int32), addr, count) + return rv + # Uncomment to enbable IPv6 + #elseif ccall(:jl_sockaddr_in_is_ip6, Int32, (Ptr{Cvoid},), sockaddr) == 1 + # host = Vector{UInt128}(uninitialized, 1) + # ccall(:jl_sockaddr_host6, UInt32, (Ptr{Cvoid}, Ptr{UInt128}), sockaddrr, host) + # return IPv6(ntoh(host[1])) + end + end + ccall(:uv_free_interface_addresses, Cvoid, (Ptr{UInt8}, Int32), addr, count) + return lo_present ? localhost : error("No networking interface available") +end diff --git a/test/netload/nettest.jl b/stdlib/Sockets/test/nettest.jl similarity index 99% rename from test/netload/nettest.jl rename to stdlib/Sockets/test/nettest.jl index 0f7394def95c87..568efb38699532 100644 --- a/test/netload/nettest.jl +++ b/stdlib/Sockets/test/nettest.jl @@ -1,5 +1,7 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license +using Distributed, Sockets + # Run various networking tests checking to see how we perform under large loads addprocs(1) diff --git a/test/socket.jl b/stdlib/Sockets/test/runtests.jl similarity index 91% rename from test/socket.jl rename to stdlib/Sockets/test/runtests.jl index 501e9814d0f0c6..74f7e3157f3ddb 100644 --- a/test/socket.jl +++ b/stdlib/Sockets/test/runtests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using Random +using Sockets, Random @testset "parsing" begin @test ip"127.0.0.1" == IPv4(127,0,0,1) @@ -56,25 +56,25 @@ using Random @test IPv6(UInt16(1), UInt16(1), UInt16(1), UInt16(1), UInt16(1), UInt16(1), UInt16(1), UInt16(1)) == IPv6(1,1,1,1,1,1,1,1) - @test_throws BoundsError Base.ipv6_field(IPv6(0xffff7f000001), -1) - @test_throws BoundsError Base.ipv6_field(IPv6(0xffff7f000001), 9) + @test_throws BoundsError Sockets.ipv6_field(IPv6(0xffff7f000001), -1) + @test_throws BoundsError Sockets.ipv6_field(IPv6(0xffff7f000001), 9) end @testset "InetAddr constructor" begin - inet = Base.InetAddr(IPv4(127,0,0,1), 1024) + inet = Sockets.InetAddr(IPv4(127,0,0,1), 1024) @test inet.host == ip"127.0.0.1" @test inet.port == 1024 end @testset "InetAddr invalid port" begin - @test_throws InexactError Base.InetAddr(IPv4(127,0,0,1), -1) - @test_throws InexactError Base.InetAddr(IPv4(127,0,0,1), typemax(UInt16)+1) + @test_throws InexactError Sockets.InetAddr(IPv4(127,0,0,1), -1) + @test_throws InexactError Sockets.InetAddr(IPv4(127,0,0,1), typemax(UInt16)+1) end @testset "isless and comparisons" begin @test ip"1.2.3.4" < ip"1.2.3.7" < ip"2.3.4.5" @test ip"1.2.3.4" >= ip"1.2.3.4" >= ip"1.2.3.1" @test isless(ip"1.2.3.4", ip"1.2.3.5") - @test_throws MethodError sort[ip"2.3.4.5", ip"1.2.3.4", ip"2001:1:2::1"] + @test_throws MethodError sort([ip"2.3.4.5", ip"1.2.3.4", ip"2001:1:2::1"]) end @testset "RFC 5952 Compliance" begin @@ -92,13 +92,13 @@ defaultport = rand(2000:4000) tsk = @async begin local (p, s) = listenany(testport) @test p != 0 - @test getsockname(s) == (Base.localhost, p) + @test getsockname(s) == (Sockets.localhost, p) put!(port, p) for i in 1:3 sock = accept(s) - @test getsockname(sock) == (Base.localhost, p) + @test getsockname(sock) == (Sockets.localhost, p) let peer = getpeername(sock)::Tuple{IPAddr, UInt16} - @test peer[1] == Base.localhost + @test peer[1] == Sockets.localhost @test 0 != peer[2] != p end # test write call @@ -117,16 +117,16 @@ defaultport = rand(2000:4000) wait(port) let p = fetch(port) otherip = getipaddr() - if otherip != Base.localhost + if otherip != Sockets.localhost @test_throws Base.UVError("connect", Base.UV_ECONNREFUSED) connect(otherip, p) end for i in 1:3 client = connect(p) let name = getsockname(client)::Tuple{IPAddr, UInt16} - @test name[1] == Base.localhost + @test name[1] == Sockets.localhost @test 0 != name[2] != p end - @test getpeername(client) == (Base.localhost, p) + @test getpeername(client) == (Sockets.localhost, p) @test read(client, String) == "Hello World\n" * ("a1\n"^100) end end @@ -135,10 +135,10 @@ defaultport = rand(2000:4000) mktempdir() do tmpdir socketname = Sys.iswindows() ? ("\\\\.\\pipe\\uv-test-" * randstring(6)) : joinpath(tmpdir, "socket") - c = Base.Condition() + c = Condition() tsk = @async begin s = listen(socketname) - Base.notify(c) + notify(c) sock = accept(s) write(sock,"Hello World\n") close(s) @@ -180,10 +180,10 @@ end @test try getaddrinfo(localhost, IPv6)::IPv6 != ip"::" catch ex - isa(ex, Base.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost + isa(ex, Sockets.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost end end - @test_throws Base.DNSError getaddrinfo(".invalid") + @test_throws Sockets.DNSError getaddrinfo(".invalid") @test_throws ArgumentError getaddrinfo("localhost\0") # issue #10994 @test_throws Base.UVError("connect", Base.UV_ECONNREFUSED) connect(ip"127.0.0.1", 21452) end @@ -221,11 +221,11 @@ let localhost = getaddrinfo("localhost") close(server2) end -@test_throws Base.DNSError connect(".invalid", 80) +@test_throws Sockets.DNSError connect(".invalid", 80) @testset "UDPSocket" begin # test show() function for UDPSocket() - @test repr(UDPSocket()) == "UDPSocket(init)" + @test endswith(repr(UDPSocket()), "UDPSocket(init)") a = UDPSocket() b = UDPSocket() bind(a, ip"127.0.0.1", randport) @@ -393,10 +393,10 @@ end end @testset "connect!" begin - # test the method matching connect!(::TCPSocket, ::Base.InetAddr{T<:Base.IPAddr}) - let addr = Base.InetAddr(ip"127.0.0.1", 4444) + # test the method matching connect!(::TCPSocket, ::Sockets.InetAddr{T<:Base.IPAddr}) + let addr = Sockets.InetAddr(ip"127.0.0.1", 4444) - function test_connect(addr::Base.InetAddr) + function test_connect(addr::Sockets.InetAddr) srv = listen(addr) @async try c = accept(srv); close(c) catch end @@ -423,7 +423,7 @@ end end @testset "TCPServer constructor" begin - s = Base.TCPServer(; delay=false) + s = Sockets.TCPServer(; delay=false) if ccall(:jl_has_so_reuseport, Int32, ()) == 1 @test 0 == ccall(:jl_tcp_reuseport, Int32, (Ptr{Cvoid},), s.handle) end diff --git a/stdlib/SparseArrays/docs/src/index.md b/stdlib/SparseArrays/docs/src/index.md index d55c7f07cbdb94..afde15ce99740d 100644 --- a/stdlib/SparseArrays/docs/src/index.md +++ b/stdlib/SparseArrays/docs/src/index.md @@ -1,5 +1,9 @@ # Sparse Arrays +```@meta +DocTestSetup = :(using SparseArrays, LinearAlgebra) +``` + Julia has support for sparse vectors and [sparse matrices](https://en.wikipedia.org/wiki/Sparse_matrix) in the `SparseArrays` stdlib module. Sparse arrays are arrays that contain enough zeros that storing them in a special data structure leads to savings in space and execution time, @@ -218,3 +222,7 @@ SparseArrays.dropzeros SparseArrays.permute permute!{Tv, Ti, Tp <: Integer, Tq <: Integer}(::SparseMatrixCSC{Tv,Ti}, ::SparseMatrixCSC{Tv,Ti}, ::AbstractArray{Tp,1}, ::AbstractArray{Tq,1}) ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/SparseArrays/src/SparseArrays.jl b/stdlib/SparseArrays/src/SparseArrays.jl index 7cc27133c825f9..7be327ace17f98 100644 --- a/stdlib/SparseArrays/src/SparseArrays.jl +++ b/stdlib/SparseArrays/src/SparseArrays.jl @@ -12,7 +12,7 @@ using Base.Sort: Forward using LinearAlgebra import Base: +, -, *, \, /, &, |, xor, == -import LinearAlgebra: mul!, ldiv!, rdiv!, chol, adjoint!, diag, diff, dot, eig, +import LinearAlgebra: mul!, ldiv!, rdiv!, chol, adjoint!, diag, dot, eig, issymmetric, istril, istriu, lu, trace, transpose!, tril!, triu!, vecnorm, cond, diagm, factorize, ishermitian, norm, lmul!, rmul!, tril, triu @@ -28,7 +28,7 @@ import Base: @get!, acos, acosd, acot, acotd, acsch, asech, asin, asind, asinh, vcat, hcat, hvcat, cat, imag, argmax, kron, length, log, log1p, max, min, maximum, minimum, one, promote_eltype, real, reshape, rot180, rotl90, rotr90, round, setindex!, similar, size, transpose, - vec, permute!, map, map!, Array + vec, permute!, map, map!, Array, diff using Random: GLOBAL_RNG, AbstractRNG, randsubseq, randsubseq! diff --git a/stdlib/SparseArrays/src/deprecated.jl b/stdlib/SparseArrays/src/deprecated.jl index 76f9f461a9b1e9..803268f1414441 100644 --- a/stdlib/SparseArrays/src/deprecated.jl +++ b/stdlib/SparseArrays/src/deprecated.jl @@ -159,13 +159,13 @@ using LinearAlgebra: Adjoint, Transpose @deprecate A_mul_B!(C::StridedVecOrMat, A::SparseMatrixCSC, B::StridedVecOrMat) mul!(C, A, B) @deprecate Ac_mul_B!(C::StridedVecOrMat, A::SparseMatrixCSC, B::StridedVecOrMat) mul!(C, adjoint(A), B) @deprecate At_mul_B!(C::StridedVecOrMat, A::SparseMatrixCSC, B::StridedVecOrMat) mul!(C, transpose(A), B) -@deprecate A_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(α, A, B, β, C) +@deprecate A_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(C, A, B, α, β) @deprecate A_mul_B(A::SparseMatrixCSC{TA,S}, x::StridedVector{Tx}) where {TA,S,Tx} (*)(A, x) @deprecate A_mul_B(A::SparseMatrixCSC{TA,S}, B::StridedMatrix{Tx}) where {TA,S,Tx} (*)(A, B) -@deprecate Ac_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(α, adjoint(A), B, β, C) +@deprecate Ac_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(C, adjoint(A), B, α, β) @deprecate Ac_mul_B(A::SparseMatrixCSC{TA,S}, x::StridedVector{Tx}) where {TA,S,Tx} (*)(adjoint(A), x) @deprecate Ac_mul_B(A::SparseMatrixCSC{TA,S}, B::StridedMatrix{Tx}) where {TA,S,Tx} (*)(adjoint(A), B) -@deprecate At_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(α, transpose(A), B, β, C) +@deprecate At_mul_B!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) mul!(C, transpose(A), B, α, β) @deprecate At_mul_B(A::SparseMatrixCSC{TA,S}, x::StridedVector{Tx}) where {TA,S,Tx} (*)(transpose(A), x) @deprecate At_mul_B(A::SparseMatrixCSC{TA,S}, B::StridedMatrix{Tx}) where {TA,S,Tx} (*)(transpose(A), B) @deprecate A_mul_Bt(A::SparseMatrixCSC{TvA,TiA}, B::SparseMatrixCSC{TvB,TiB}) where {TvA,TiA,TvB,TiB} (*)(A, transpose(B)) @@ -197,16 +197,16 @@ end using LinearAlgebra: Adjoint, Transpose @deprecate Ac_mul_B(A::SparseMatrixCSC, x::AbstractSparseVector) (*)(adjoint(A), x) @deprecate At_mul_B(A::SparseMatrixCSC, x::AbstractSparseVector) (*)(transpose(A), x) -@deprecate Ac_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(α, adjoint(A), x, β, y) +@deprecate Ac_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(y, adjoint(A), x, α, β) @deprecate Ac_mul_B!(y::StridedVector{Ty}, A::SparseMatrixCSC, x::AbstractSparseVector{Tx}) where {Tx,Ty} mul!(y, adjoint(A), x) -@deprecate At_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(α, transpose(A), x, β, y) +@deprecate At_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(y, transpose(A), x, α, β) @deprecate At_mul_B!(y::StridedVector{Ty}, A::SparseMatrixCSC, x::AbstractSparseVector{Tx}) where {Tx,Ty} mul!(y, transpose(A), x) -@deprecate A_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(α, A, x, β, y) +@deprecate A_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(y, A, x, α, β) @deprecate A_mul_B!(y::StridedVector{Ty}, A::SparseMatrixCSC, x::AbstractSparseVector{Tx}) where {Tx,Ty} mul!(y, A, x) -@deprecate At_mul_B!(α::Number, A::StridedMatrix, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(α, transpose(A), x, β, y) +@deprecate At_mul_B!(α::Number, A::StridedMatrix, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(y, transpose(A), x, α, β) @deprecate At_mul_B!(y::StridedVector{Ty}, A::StridedMatrix, x::AbstractSparseVector{Tx}) where {Tx,Ty} mul!(y, transpose(A), x) @deprecate At_mul_B(A::StridedMatrix{Ta}, x::AbstractSparseVector{Tx}) where {Ta,Tx} (*)(transpose(A), x) -@deprecate A_mul_B!(α::Number, A::StridedMatrix, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(α, A, x, β, y) +@deprecate A_mul_B!(α::Number, A::StridedMatrix, x::AbstractSparseVector, β::Number, y::StridedVector) mul!(y, A, x, α, β) @deprecate A_mul_B!(y::StridedVector{Ty}, A::StridedMatrix, x::AbstractSparseVector{Tx}) where {Tx,Ty} mul!(y, A, x) # methods involving RowVector from base/sparse/linalg.jl, to deprecate diff --git a/stdlib/SparseArrays/src/higherorderfns.jl b/stdlib/SparseArrays/src/higherorderfns.jl index 4e7cc6a88656a3..abbbd9dfb92dff 100644 --- a/stdlib/SparseArrays/src/higherorderfns.jl +++ b/stdlib/SparseArrays/src/higherorderfns.jl @@ -1008,12 +1008,14 @@ function broadcast!(f::Tf, dest::SparseVecOrMat, ::SPVM, A::SparseVecOrMat, Bs:: if f isa typeof(identity) && N == 0 && Base.axes(dest) == Base.axes(A) return copyto!(dest, A) end - _aresameshape(dest, A, Bs...) && return _noshapecheck_map!(f, dest, A, Bs...) - Base.Broadcast.check_broadcast_indices(axes(dest), A, Bs...) - fofzeros = f(_zeros_eltypes(A, Bs...)...) + A′ = Base.unalias(dest, A) + Bs′ = map(B->Base.unalias(dest, B), Bs) + _aresameshape(dest, A′, Bs′...) && return _noshapecheck_map!(f, dest, A′, Bs′...) + Base.Broadcast.check_broadcast_indices(axes(dest), A′, Bs′...) + fofzeros = f(_zeros_eltypes(A′, Bs′...)...) fpreszeros = _iszero(fofzeros) - fpreszeros ? _broadcast_zeropres!(f, dest, A, Bs...) : - _broadcast_notzeropres!(f, fofzeros, dest, A, Bs...) + fpreszeros ? _broadcast_zeropres!(f, dest, A′, Bs′...) : + _broadcast_notzeropres!(f, fofzeros, dest, A′, Bs′...) return dest end function broadcast!(f::Tf, dest::SparseVecOrMat, ::SPVM, mixedsrcargs::Vararg{Any,N}) where {Tf,N} diff --git a/stdlib/SparseArrays/src/linalg.jl b/stdlib/SparseArrays/src/linalg.jl index d9aa4238df1528..4e143c571c8e56 100644 --- a/stdlib/SparseArrays/src/linalg.jl +++ b/stdlib/SparseArrays/src/linalg.jl @@ -29,7 +29,7 @@ end # In matrix-vector multiplication, the correct orientation of the vector is assumed. -function mul!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) +function mul!(C::StridedVecOrMat, A::SparseMatrixCSC, B::StridedVecOrMat, α::Number, β::Number) A.n == size(B, 1) || throw(DimensionMismatch()) A.m == size(C, 1) || throw(DimensionMismatch()) size(B, 2) == size(C, 2) || throw(DimensionMismatch()) @@ -49,11 +49,11 @@ function mul!(α::Number, A::SparseMatrixCSC, B::StridedVecOrMat, β::Number, C: C end *(A::SparseMatrixCSC{TA,S}, x::StridedVector{Tx}) where {TA,S,Tx} = - (T = promote_type(TA, Tx); mul!(one(T), A, x, zero(T), similar(x, T, A.m))) + (T = promote_type(TA, Tx); mul!(similar(x, T, A.m), A, x, one(T), zero(T))) *(A::SparseMatrixCSC{TA,S}, B::StridedMatrix{Tx}) where {TA,S,Tx} = - (T = promote_type(TA, Tx); mul!(one(T), A, B, zero(T), similar(B, T, (A.m, size(B, 2))))) + (T = promote_type(TA, Tx); mul!(similar(B, T, (A.m, size(B, 2))), A, B, one(T), zero(T))) -function mul!(α::Number, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) +function mul!(C::StridedVecOrMat, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat, α::Number, β::Number) A = adjA.parent A.n == size(C, 1) || throw(DimensionMismatch()) A.m == size(B, 1) || throw(DimensionMismatch()) @@ -75,11 +75,11 @@ function mul!(α::Number, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, B::StridedVecO C end *(adjA::Adjoint{<:Any,<:SparseMatrixCSC{TA,S}}, x::StridedVector{Tx}) where {TA,S,Tx} = - (A = adjA.parent; T = promote_type(TA, Tx); mul!(one(T), adjoint(A), x, zero(T), similar(x, T, A.n))) + (A = adjA.parent; T = promote_type(TA, Tx); mul!(similar(x, T, A.n), adjoint(A), x, one(T), zero(T))) *(adjA::Adjoint{<:Any,<:SparseMatrixCSC{TA,S}}, B::StridedMatrix{Tx}) where {TA,S,Tx} = - (A = adjA.parent; T = promote_type(TA, Tx); mul!(one(T), adjoint(A), B, zero(T), similar(B, T, (A.n, size(B, 2))))) + (A = adjA.parent; T = promote_type(TA, Tx); mul!(similar(B, T, (A.n, size(B, 2))), adjoint(A), B, one(T), zero(T))) -function mul!(α::Number, transA::Transpose{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat, β::Number, C::StridedVecOrMat) +function mul!(C::StridedVecOrMat, transA::Transpose{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat, α::Number, β::Number) A = transA.parent A.n == size(C, 1) || throw(DimensionMismatch()) A.m == size(B, 1) || throw(DimensionMismatch()) @@ -101,18 +101,18 @@ function mul!(α::Number, transA::Transpose{<:Any,<:SparseMatrixCSC}, B::Strided C end *(transA::Transpose{<:Any,<:SparseMatrixCSC{TA,S}}, x::StridedVector{Tx}) where {TA,S,Tx} = - (A = transA.parent; T = promote_type(TA, Tx); mul!(one(T), transpose(A), x, zero(T), similar(x, T, A.n))) + (A = transA.parent; T = promote_type(TA, Tx); mul!(similar(x, T, A.n), transpose(A), x, one(T), zero(T))) *(transA::Transpose{<:Any,<:SparseMatrixCSC{TA,S}}, B::StridedMatrix{Tx}) where {TA,S,Tx} = - (A = transA.parent; T = promote_type(TA, Tx); mul!(one(T), transpose(A), B, zero(T), similar(B, T, (A.n, size(B, 2))))) + (A = transA.parent; T = promote_type(TA, Tx); mul!(similar(B, T, (A.n, size(B, 2))), transpose(A), B, one(T), zero(T))) # For compatibility with dense multiplication API. Should be deleted when dense multiplication # API is updated to follow BLAS API. mul!(C::StridedVecOrMat, A::SparseMatrixCSC, B::StridedVecOrMat) = - mul!(one(eltype(B)), A, B, zero(eltype(C)), C) + mul!(C, A, B, one(eltype(B)), zero(eltype(C))) mul!(C::StridedVecOrMat, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat) = - (A = adjA.parent; mul!(one(eltype(B)), adjoint(A), B, zero(eltype(C)), C)) + (A = adjA.parent; mul!(C, adjoint(A), B, one(eltype(B)), zero(eltype(C)))) mul!(C::StridedVecOrMat, transA::Transpose{<:Any,<:SparseMatrixCSC}, B::StridedVecOrMat) = - (A = transA.parent; mul!(one(eltype(B)), transpose(A), B, zero(eltype(C)), C)) + (A = transA.parent; mul!(C, transpose(A), B, one(eltype(B)), zero(eltype(C)))) function (*)(X::StridedMatrix{TX}, A::SparseMatrixCSC{TvA,TiA}) where {TX,TvA,TiA} mX, nX = size(X) @@ -1012,7 +1012,8 @@ chol(A::SparseMatrixCSC) = error("Use cholfact() instead of chol() for sparse ma lu(A::SparseMatrixCSC) = error("Use lufact() instead of lu() for sparse matrices.") eig(A::SparseMatrixCSC) = error("Use IterativeEigensolvers.eigs() instead of eig() for sparse matrices.") -function Base.cov(X::SparseMatrixCSC, vardim::Int=1; corrected::Bool=true) +function Base.cov(X::SparseMatrixCSC; dims::Int=1, corrected::Bool=true) + vardim = dims a, b = size(X) n, p = vardim == 1 ? (a, b) : (b, a) @@ -1024,7 +1025,7 @@ function Base.cov(X::SparseMatrixCSC, vardim::Int=1; corrected::Bool=true) out = Matrix(Base.unscaled_covzm(X, vardim)) # Compute x̄ - x̄ᵀ = mean(X, vardim) + x̄ᵀ = mean(X, dims=vardim) # Subtract n*x̄*x̄' from X'X @inbounds for j in 1:p, i in 1:p diff --git a/stdlib/SparseArrays/src/sparsematrix.jl b/stdlib/SparseArrays/src/sparsematrix.jl index 168871503da708..ec1cec1f69a90c 100644 --- a/stdlib/SparseArrays/src/sparsematrix.jl +++ b/stdlib/SparseArrays/src/sparsematrix.jl @@ -260,6 +260,11 @@ function copy(ra::ReshapedArray{<:Any,2,<:SparseMatrixCSC}) return SparseMatrixCSC(mS, nS, colptr, rowval, nzval) end +## Alias detection and prevention +using Base: dataids, unaliascopy +Base.dataids(S::SparseMatrixCSC) = (dataids(S.colptr)..., dataids(S.rowval)..., dataids(S.nzval)...) +Base.unaliascopy(S::SparseMatrixCSC) = typeof(S)(S.m, S.n, unaliascopy(S.colptr), unaliascopy(S.rowval), unaliascopy(S.nzval)) + ## Constructors copy(S::SparseMatrixCSC) = @@ -1388,15 +1393,13 @@ distribution is used in case `rfn` is not specified. The optional `rng` argument specifies a random number generator, see [Random Numbers](@ref). # Examples -```jldoctest -julia> rng = MersenneTwister(1234); - -julia> sprand(rng, Bool, 2, 2, 0.5) +```jldoctest; setup = :(using Random; srand(1234)) +julia> sprand(Bool, 2, 2, 0.5) 2×2 SparseMatrixCSC{Bool,Int64} with 2 stored entries: [1, 1] = true [2, 1] = true -julia> sprand(rng, Float64, 3, 0.75) +julia> sprand(Float64, 3, 0.75) 3-element SparseVector{Float64,Int64} with 1 stored entry: [3] = 0.298614 ``` @@ -1439,14 +1442,11 @@ where nonzero values are sampled from the normal distribution. The optional `rng argument specifies a random number generator, see [Random Numbers](@ref). # Examples -```jldoctest -julia> rng = MersenneTwister(1234); - -julia> sprandn(rng, 2, 2, 0.75) -2×2 SparseMatrixCSC{Float64,Int64} with 3 stored entries: - [1, 1] = 0.532813 - [2, 1] = -0.271735 - [2, 2] = 0.502334 +```jldoctest; setup = :(using Random; srand(0)) +julia> sprandn(2, 2, 0.75) +2×2 SparseMatrixCSC{Float64,Int64} with 2 stored entries: + [1, 1] = 0.586617 + [1, 2] = 0.297336 ``` """ sprandn(r::AbstractRNG, m::Integer, n::Integer, density::AbstractFloat) = sprand(r,m,n,density,randn,Float64) diff --git a/stdlib/SparseArrays/src/sparsevector.jl b/stdlib/SparseArrays/src/sparsevector.jl index fae9d203cb7700..da090dbece4b3f 100644 --- a/stdlib/SparseArrays/src/sparsevector.jl +++ b/stdlib/SparseArrays/src/sparsevector.jl @@ -92,6 +92,10 @@ similar(S::SparseVector, ::Type{TvNew}, ::Type{TiNew}, m::Integer) where {TvNew, similar(S::SparseVector, ::Type{TvNew}, ::Type{TiNew}, m::Integer, n::Integer) where {TvNew,TiNew} = _sparsesimilar(S, TvNew, TiNew, (m, n)) +## Alias detection and prevention +using Base: dataids, unaliascopy +Base.dataids(S::SparseVector) = (dataids(S.nzind)..., dataids(S.nzval)...) +Base.unaliascopy(S::SparseVector) = typeof(S)(S.n, unaliascopy(S.nzind), unaliascopy(S.nzval)) ### Construct empty sparse vector @@ -1581,9 +1585,9 @@ function (*)(A::StridedMatrix{Ta}, x::AbstractSparseVector{Tx}) where {Ta,Tx} end mul!(y::AbstractVector{Ty}, A::StridedMatrix, x::AbstractSparseVector{Tx}) where {Tx,Ty} = - mul!(one(Tx), A, x, zero(Ty), y) + mul!(y, A, x, one(Tx), zero(Ty)) -function mul!(α::Number, A::StridedMatrix, x::AbstractSparseVector, β::Number, y::AbstractVector) +function mul!(y::AbstractVector, A::StridedMatrix, x::AbstractSparseVector, α::Number, β::Number) m, n = size(A) length(x) == n && length(y) == m || throw(DimensionMismatch()) m == 0 && return y @@ -1619,9 +1623,9 @@ function *(transA::Transpose{<:Any,<:StridedMatrix{Ta}}, x::AbstractSparseVector end mul!(y::AbstractVector{Ty}, transA::Transpose{<:Any,<:StridedMatrix}, x::AbstractSparseVector{Tx}) where {Tx,Ty} = - (A = transA.parent; mul!(one(Tx), transpose(A), x, zero(Ty), y)) + (A = transA.parent; mul!(y, transpose(A), x, one(Tx), zero(Ty))) -function mul!(α::Number, transA::Transpose{<:Any,<:StridedMatrix}, x::AbstractSparseVector, β::Number, y::AbstractVector) +function mul!(y::AbstractVector, transA::Transpose{<:Any,<:StridedMatrix}, x::AbstractSparseVector, α::Number, β::Number) A = transA.parent m, n = size(A) length(x) == m && length(y) == n || throw(DimensionMismatch()) @@ -1678,9 +1682,9 @@ end # * and mul! mul!(y::AbstractVector{Ty}, A::SparseMatrixCSC, x::AbstractSparseVector{Tx}) where {Tx,Ty} = - mul!(one(Tx), A, x, zero(Ty), y) + mul!(y, A, x, one(Tx), zero(Ty)) -function mul!(α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, β::Number, y::AbstractVector) +function mul!(y::AbstractVector, A::SparseMatrixCSC, x::AbstractSparseVector, α::Number, β::Number) m, n = size(A) length(x) == n && length(y) == m || throw(DimensionMismatch()) m == 0 && return y @@ -1711,20 +1715,20 @@ end # * and *(Tranpose(A), B) mul!(y::AbstractVector{Ty}, transA::Transpose{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector{Tx}) where {Tx,Ty} = - (A = transA.parent; mul!(one(Tx), transpose(A), x, zero(Ty), y)) + (A = transA.parent; mul!(y, transpose(A), x, one(Tx), zero(Ty))) -mul!(α::Number, transA::Transpose{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector, β::Number, y::AbstractVector) = - (A = transA.parent; _At_or_Ac_mul_B!(*, α, A, x, β, y)) +mul!(y::AbstractVector, transA::Transpose{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector, α::Number, β::Number) = + (A = transA.parent; _At_or_Ac_mul_B!(*, y, A, x, α, β)) mul!(y::AbstractVector{Ty}, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector{Tx}) where {Tx,Ty} = - (A = adjA.parent; mul!(one(Tx), adjoint(A), x, zero(Ty), y)) + (A = adjA.parent; mul!(y, adjoint(A), x, one(Tx), zero(Ty))) -mul!(α::Number, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector, β::Number, y::AbstractVector) = - (A = adjA.parent; _At_or_Ac_mul_B!(dot, α, A, x, β, y)) +mul!(y::AbstractVector, adjA::Adjoint{<:Any,<:SparseMatrixCSC}, x::AbstractSparseVector, α::Number, β::Number) = + (A = adjA.parent; _At_or_Ac_mul_B!(dot, y, A, x, α, β)) function _At_or_Ac_mul_B!(tfun::Function, - α::Number, A::SparseMatrixCSC, x::AbstractSparseVector, - β::Number, y::AbstractVector) + y::AbstractVector, A::SparseMatrixCSC, x::AbstractSparseVector, + α::Number, β::Number) m, n = size(A) length(x) == m && length(y) == n || throw(DimensionMismatch()) n == 0 && return y diff --git a/stdlib/SparseArrays/test/higherorderfns.jl b/stdlib/SparseArrays/test/higherorderfns.jl index 536eddb48e6574..fdbb120519de99 100644 --- a/stdlib/SparseArrays/test/higherorderfns.jl +++ b/stdlib/SparseArrays/test/higherorderfns.jl @@ -554,4 +554,72 @@ end @test spzeros(1,2) .* spzeros(0,1) == zeros(0,2) end -end # module \ No newline at end of file +@testset "aliasing and indexed assignment or broadcast!" begin + A = sparsevec([0, 0, 1, 1]) + B = sparsevec([1, 1, 0, 0]) + A .+= B + @test A == sparse([1,1,1,1]) + + A = sprandn(10, 10, 0.1) + fA = Array(A) + b = randn(10); + broadcast!(/, A, A, b) + @test A == fA ./ Array(b) + + a = sparse([1,3,5]) + b = sparse([3,1,2]) + a[b] = a + @test a == [3,5,1] + a = sparse([3,2,1]) + a[a] = [4,5,6] + @test a == [6,5,4] + + A = sparse([1,2,3,4]) + V = view(A, A) + @test V == A + V[1] = 2 + @test V == A == [2,2,3,4] + V[1] = 2^30 + @test V == A == [2^30, 2, 3, 4] + + A = sparse([2,1,4,3]) + V = view(A, :) + A[V] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = sparse([2,1,4,3]) + R = reshape(view(A, :), 2, 2) + A[R] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = sparse([2,1,4,3]) + R = reshape(A, 2, 2) + A[R] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + # And broadcasting + a = sparse([1,3,5]) + b = sparse([3,1,2]) + a[b] .= a + @test a == [3,5,1] + a = sparse([3,2,1]) + a[a] .= [4,5,6] + @test a == [6,5,4] + + A = sparse([2,1,4,3]) + V = view(A, :) + A[V] .= (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = sparse([2,1,4,3]) + R = reshape(view(A, :), 2, 2) + A[R] .= reshape((1:4) .+ 2^30, 2, 2) + @test A == [2,1,4,3] .+ 2^30 + + A = sparse([2,1,4,3]) + R = reshape(A, 2, 2) + A[R] .= reshape((1:4) .+ 2^30, 2, 2) + @test A == [2,1,4,3] .+ 2^30 +end + +end # module diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index a0edc3fb13a14f..be7c15c213eff6 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -487,10 +487,10 @@ end for f in (sum, prod, minimum, maximum, var) farr = Array(arr) @test f(arr) ≈ f(farr) - @test f(arr, 1) ≈ f(farr, 1) - @test f(arr, 2) ≈ f(farr, 2) - @test f(arr, (1, 2)) ≈ [f(farr)] - @test isequal(f(arr, 3), f(farr, 3)) + @test f(arr, dims=1) ≈ f(farr, dims=1) + @test f(arr, dims=2) ≈ f(farr, dims=2) + @test f(arr, dims=(1, 2)) ≈ [f(farr)] + @test isequal(f(arr, dims=3), f(farr, dims=3)) end end @@ -503,9 +503,9 @@ end # case where f(0) would throw @test f(x->sqrt(x-1), pA .+ 1) ≈ f(sqrt.(pA)) # these actually throw due to #10533 - # @test f(x->sqrt(x-1), pA .+ 1, 1) ≈ f(sqrt(pA), 1) - # @test f(x->sqrt(x-1), pA .+ 1, 2) ≈ f(sqrt(pA), 2) - # @test f(x->sqrt(x-1), pA .+ 1, 3) ≈ f(pA) + # @test f(x->sqrt(x-1), pA .+ 1, dims=1) ≈ f(sqrt(pA), dims=1) + # @test f(x->sqrt(x-1), pA .+ 1, dims=2) ≈ f(sqrt(pA), dims=2) + # @test f(x->sqrt(x-1), pA .+ 1, dims=3) ≈ f(pA) end @testset "empty cases" begin @@ -516,16 +516,16 @@ end @test var(sparse(Int[])) === NaN for f in (sum, prod, var) - @test isequal(f(spzeros(0, 1), 1), f(Matrix{Int}(I, 0, 1), 1)) - @test isequal(f(spzeros(0, 1), 2), f(Matrix{Int}(I, 0, 1), 2)) - @test isequal(f(spzeros(0, 1), (1, 2)), f(Matrix{Int}(I, 0, 1), (1, 2))) - @test isequal(f(spzeros(0, 1), 3), f(Matrix{Int}(I, 0, 1), 3)) + @test isequal(f(spzeros(0, 1), dims=1), f(Matrix{Int}(I, 0, 1), dims=1)) + @test isequal(f(spzeros(0, 1), dims=2), f(Matrix{Int}(I, 0, 1), dims=2)) + @test isequal(f(spzeros(0, 1), dims=(1, 2)), f(Matrix{Int}(I, 0, 1), dims=(1, 2))) + @test isequal(f(spzeros(0, 1), dims=3), f(Matrix{Int}(I, 0, 1), dims=3)) end for f in (minimum, maximum, findmin, findmax) - @test_throws ArgumentError f(spzeros(0, 1), 1) - @test isequal(f(spzeros(0, 1), 2), f(Matrix{Int}(I, 0, 1), 2)) - @test_throws ArgumentError f(spzeros(0, 1), (1, 2)) - @test isequal(f(spzeros(0, 1), 3), f(Matrix{Int}(I, 0, 1), 3)) + @test_throws ArgumentError f(spzeros(0, 1), dims=1) + @test isequal(f(spzeros(0, 1), dims=2), f(Matrix{Int}(I, 0, 1), dims=2)) + @test_throws ArgumentError f(spzeros(0, 1), dims=(1, 2)) + @test isequal(f(spzeros(0, 1), dims=3), f(Matrix{Int}(I, 0, 1), dims=3)) end end end @@ -582,9 +582,9 @@ end @test minimum(-P) === -3.0 @test maximum(-P) === 0.0 - @test maximum(P, (1,)) == [1.0 2.0 3.0] - @test maximum(P, (2,)) == reshape([1.0,2.0,3.0],3,1) - @test maximum(P, (1,2)) == reshape([3.0],1,1) + @test maximum(P, dims=(1,)) == [1.0 2.0 3.0] + @test maximum(P, dims=(2,)) == reshape([1.0,2.0,3.0],3,1) + @test maximum(P, dims=(1,2)) == reshape([3.0],1,1) @test maximum(sparse(fill(-1,3,3))) == -1 @test minimum(sparse(fill(1,3,3))) == 1 @@ -1035,7 +1035,7 @@ end @test findmin(S) == findmin(A) @test findmax(S) == findmax(A) for region in [(1,), (2,), (1,2)], m in [findmax, findmin] - @test m(S, region) == m(A, region) + @test m(S, dims=region) == m(A, dims=region) end S = spzeros(10,8) @@ -1114,33 +1114,33 @@ end A = sparse([BigInt(10)]) for (tup, rval, rind) in [((2,), [BigInt(10)], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) end for (tup, rval, rind) in [((2,), [BigInt(10)], [1])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) end A = sparse([BigInt(-10)]) for (tup, rval, rind) in [((2,), [BigInt(-10)], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) end for (tup, rval, rind) in [((2,), [BigInt(-10)], [1])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) end A = sparse([BigInt(10) BigInt(-10)]) for (tup, rval, rind) in [((2,), reshape([BigInt(-10)], 1, 1), reshape([CartesianIndex(1,2)], 1, 1))] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) end for (tup, rval, rind) in [((2,), reshape([BigInt(10)], 1, 1), reshape([CartesianIndex(1,1)], 1, 1))] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) end A = sparse(["a", "b"]) - @test_throws MethodError findmin(A, 1) + @test_throws MethodError findmin(A, dims=1) end # Support the case when user defined `zero` and `isless` for non-numerical type @@ -1153,11 +1153,11 @@ Base.isless(x::CustomType, y::CustomType) = isless(x.x, y.x) A = sparse([CustomType("a"), CustomType("b")]) for (tup, rval, rind) in [((1,), [CustomType("a")], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) end for (tup, rval, rind) in [((1,), [CustomType("b")], [2])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) end end @@ -2043,8 +2043,8 @@ end x_dense = convert(Matrix{elty}, x_sparse) @testset "Test with no Infs and NaNs, vardim=$vardim, corrected=$corrected" for vardim in (1, 2), corrected in (true, false) - @test cov(x_sparse, vardim, corrected=corrected) ≈ - cov(x_dense , vardim, corrected=corrected) + @test cov(x_sparse, dims=vardim, corrected=corrected) ≈ + cov(x_dense , dims=vardim, corrected=corrected) end @testset "Test with $x11, vardim=$vardim, corrected=$corrected" for x11 in (NaN, Inf), @@ -2053,8 +2053,8 @@ end x_sparse[1,1] = x11 x_dense[1 ,1] = x11 - cov_sparse = cov(x_sparse, vardim, corrected=corrected) - cov_dense = cov(x_dense , vardim, corrected=corrected) + cov_sparse = cov(x_sparse, dims=vardim, corrected=corrected) + cov_dense = cov(x_dense , dims=vardim, corrected=corrected) @test cov_sparse[2:end, 2:end] ≈ cov_dense[2:end, 2:end] @test isfinite.(cov_sparse) == isfinite.(cov_dense) @test isfinite.(cov_sparse) == isfinite.(cov_dense) @@ -2067,8 +2067,8 @@ end x_sparse[2,1] = NaN x_dense[2 ,1] = NaN - cov_sparse = cov(x_sparse, vardim, corrected=corrected) - cov_dense = cov(x_dense , vardim, corrected=corrected) + cov_sparse = cov(x_sparse, dims=vardim, corrected=corrected) + cov_dense = cov(x_dense , dims=vardim, corrected=corrected) @test cov_sparse[(1 + vardim):end, (1 + vardim):end] ≈ cov_dense[ (1 + vardim):end, (1 + vardim):end] @test isfinite.(cov_sparse) == isfinite.(cov_dense) @@ -2217,7 +2217,7 @@ end # #25943 @testset "operations on Integer subtypes" begin s = sparse(UInt8[1, 2, 3], UInt8[1, 2, 3], UInt8[1, 2, 3]) - @test sum(s, 2) == reshape([1, 2, 3], 3, 1) + @test sum(s, dims=2) == reshape([1, 2, 3], 3, 1) end -end # module \ No newline at end of file +end # module diff --git a/stdlib/SparseArrays/test/sparsevector.jl b/stdlib/SparseArrays/test/sparsevector.jl index 0604470cf4ee8d..268263191cb78e 100644 --- a/stdlib/SparseArrays/test/sparsevector.jl +++ b/stdlib/SparseArrays/test/sparsevector.jl @@ -822,7 +822,7 @@ end for α in [0.0, 1.0, 2.0], β in [0.0, 0.5, 1.0] y = rand(9) rr = α*A*xf + β*y - @test mul!(α, A, x, β, y) === y + @test mul!(y, A, x, α, β) === y @test y ≈ rr end y = A*x @@ -835,7 +835,7 @@ end for α in [0.0, 1.0, 2.0], β in [0.0, 0.5, 1.0] y = rand(9) rr = α*A'xf + β*y - @test mul!(α, transpose(A), x, β, y) === y + @test mul!(y, transpose(A), x, α, β) === y @test y ≈ rr end y = *(transpose(A), x) @@ -850,7 +850,7 @@ end for α in [0.0, 1.0, 2.0], β in [0.0, 0.5, 1.0] y = rand(9) rr = α*Af*xf + β*y - @test mul!(α, A, x, β, y) === y + @test mul!(y, A, x, α, β) === y @test y ≈ rr end y = SparseArrays.densemv(A, x) @@ -864,7 +864,7 @@ end for α in [0.0, 1.0, 2.0], β in [0.0, 0.5, 1.0] y = rand(9) rr = α*Af'xf + β*y - @test mul!(α, transpose(A), x, β, y) === y + @test mul!(y, transpose(A), x, α, β) === y @test y ≈ rr end y = SparseArrays.densemv(A, x; trans='T') @@ -1269,4 +1269,4 @@ end end end -end # module \ No newline at end of file +end # module diff --git a/stdlib/SuiteSparse/src/cholmod.jl b/stdlib/SuiteSparse/src/cholmod.jl index 2d75f97f84fcb4..fd1688d89fa8cf 100644 --- a/stdlib/SuiteSparse/src/cholmod.jl +++ b/stdlib/SuiteSparse/src/cholmod.jl @@ -1760,7 +1760,7 @@ function diag(F::Factor{Tv}) where Tv xv = f.x for j in 1:f.n jj = unsafe_load(c0, j) + 1 - assert(unsafe_load(r0, jj) == j - 1) + @assert(unsafe_load(r0, jj) == j - 1) res[j] = unsafe_load(xv, jj) end end diff --git a/stdlib/Test/docs/src/index.md b/stdlib/Test/docs/src/index.md index 32ec6041811aa3..4211071d29a5d2 100644 --- a/stdlib/Test/docs/src/index.md +++ b/stdlib/Test/docs/src/index.md @@ -1,9 +1,7 @@ # Unit Testing ```@meta -DocTestSetup = quote - using Test -end +DocTestSetup = :(using Test) ``` ## Testing Base Julia diff --git a/stdlib/Test/src/Test.jl b/stdlib/Test/src/Test.jl index c41b69e5a12e4a..bdffcc68808a35 100644 --- a/stdlib/Test/src/Test.jl +++ b/stdlib/Test/src/Test.jl @@ -132,6 +132,18 @@ mutable struct Error <: Result value backtrace source::LineNumberNode + + function Error(test_type, orig_expr, value, bt, source) + if test_type === :test_error + bt = scrub_backtrace(bt) + end + if test_type === :test_error || test_type === :nontest_error + bt_str = sprint(showerror, value, bt) + else + bt_str = "" + end + new(test_type, orig_expr, repr(value), bt_str, source) + end end function Base.show(io::IO, t::Error) if t.test_type == :test_interrupted @@ -146,12 +158,11 @@ function Base.show(io::IO, t::Error) println(io, " Expression: ", t.orig_expr) print( io, " Value: ", t.value) elseif t.test_type == :test_error - println(io, " Test threw an exception of type ", typeof(t.value)) + println(io, " Test threw exception ", t.value) println(io, " Expression: ", t.orig_expr) # Capture error message and indent to match - errmsg = sprint(showerror, t.value, scrub_backtrace(t.backtrace)) print(io, join(map(line->string(" ",line), - split(errmsg, "\n")), "\n")) + split(t.backtrace, "\n")), "\n")) elseif t.test_type == :test_unbroken # A test that was expected to fail did not println(io, " Unexpected Pass") @@ -159,11 +170,10 @@ function Base.show(io::IO, t::Error) println(io, " Got correct result, please change to @test if no longer broken.") elseif t.test_type == :nontest_error # we had an error outside of a @test - println(io, " Got an exception of type $(typeof(t.value)) outside of a @test") + println(io, " Got exception $(t.value) outside of a @test") # Capture error message and indent to match - errmsg = sprint(showerror, t.value, t.backtrace) print(io, join(map(line->string(" ",line), - split(errmsg, "\n")), "\n")) + split(t.backtrace, "\n")), "\n")) end end @@ -531,7 +541,7 @@ contains_warn(output, S::Union{AbstractArray,Tuple}) = all(s -> contains_warn(ou """ @test_warn msg expr -Test whether evaluating `expr` results in [`STDERR`](@ref) output that contains +Test whether evaluating `expr` results in [`stderr`](@ref) output that contains the `msg` string or matches the `msg` regular expression. If `msg` is a boolean function, tests whether `msg(output)` returns `true`. If `msg` is a tuple or array, checks that the error output contains/matches each item in `msg`. @@ -560,7 +570,7 @@ end """ @test_nowarn expr -Test whether evaluating `expr` results in empty [`STDERR`](@ref) output +Test whether evaluating `expr` results in empty [`stderr`](@ref) output (no warnings or other messages). Returns the result of evaluating `expr`. """ macro test_nowarn(expr) @@ -684,7 +694,7 @@ function record(ts::DefaultTestSet, t::Union{Fail, Error}) # don't print the backtrace for Errors because it gets printed in the show # method if !isa(t, Error) - Base.show_backtrace(STDOUT, scrub_backtrace(backtrace())) + Base.show_backtrace(stdout, scrub_backtrace(backtrace())) end println() end @@ -702,7 +712,7 @@ function print_test_errors(ts::DefaultTestSet) for t in ts.results if (isa(t, Error) || isa(t, Fail)) && myid() == 1 println("Error in testset $(ts.description):") - Base.show(STDOUT,t) + Base.show(stdout,t) println() elseif isa(t, DefaultTestSet) print_test_errors(t) @@ -1199,9 +1209,7 @@ inferred by the compiler. It is useful to check for type stability. Returns the result of `f(x)` if the types match, and an `Error` `Result` if it finds different types. -```jldoctest -julia> using Test - +```jldoctest; setup = :(using InteractiveUtils), filter = r"begin\\n(.|\\n)*end" julia> f(a,b,c) = b > 1 ? 1 : 1.0 f (generic function with 1 method) @@ -1216,14 +1224,19 @@ Variables: Body: begin - unless (Base.slt_int)(1, b::Int64)::Bool goto 3 + # meta: location operators.jl > 279 + # meta: location int.jl < 49 + Core.SSAValue(2) = (Base.slt_int)(1, b::Int64)::Bool + # meta: pop locations (2) + unless Core.SSAValue(2) goto 7 return 1 - 3: + 7: return 1.0 end::UNION{FLOAT64, INT64} julia> @inferred f(1,2,3) ERROR: return type Int64 does not match inferred return type Union{Float64, Int64} +Stacktrace: [...] julia> @inferred max(1,2) diff --git a/stdlib/Test/src/logging.jl b/stdlib/Test/src/logging.jl index 9dc8782a6a57c6..b02bdadcd481c4 100644 --- a/stdlib/Test/src/logging.jl +++ b/stdlib/Test/src/logging.jl @@ -86,7 +86,7 @@ function record(ts::DefaultTestSet, t::LogTestFailure) if myid() == 1 printstyled(ts.description, ": ", color=:white) print(t) - Base.show_backtrace(STDOUT, scrub_backtrace(backtrace())) + Base.show_backtrace(stdout, scrub_backtrace(backtrace())) println() end # Hack: convert to `Fail` so that test summarization works correctly diff --git a/stdlib/Test/test/runtests.jl b/stdlib/Test/test/runtests.jl index f2e9409fe3e3fe..e661a6bcb7736a 100644 --- a/stdlib/Test/test/runtests.jl +++ b/stdlib/Test/test/runtests.jl @@ -53,7 +53,7 @@ end end @testset "@test_warn" begin @test 1234 === @test_nowarn(1234) - @test 5678 === @test_warn("WARNING: foo", begin println(STDERR, "WARNING: foo"); 5678; end) + @test 5678 === @test_warn("WARNING: foo", begin println(stderr, "WARNING: foo"); 5678; end) let a @test_throws UndefVarError(:a) a @test_nowarn a = 1 @@ -204,8 +204,8 @@ end @test Test.finish(Test.FallbackTestSet()) !== nothing -OLD_STDOUT = STDOUT -OLD_STDERR = STDERR +OLD_STDOUT = stdout +OLD_STDERR = stderr catch_out = IOStream("") catch_err = IOStream("") rde, wre = redirect_stderr() @@ -393,7 +393,7 @@ catch end @test ts isa Test.DefaultTestSet -# now we're done running tests with DefaultTestSet so we can go back to STDOUT +# now we're done running tests with DefaultTestSet so we can go back to stdout redirect_stdout(OLD_STDOUT) redirect_stderr(OLD_STDERR) @@ -547,7 +547,7 @@ end @test_throws MethodError 1 end """) - local msg = read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=DevNull), String) + local msg = read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=devnull), String) # NOTE: This test depends on the code generated by @testset getting compiled, # to get good backtraces. If it fails, check the implementation of `testset_beginend`. @test !contains(msg, "do_test(") @@ -594,7 +594,7 @@ let msg = read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --co @test foo(zeros(2)) == 4 @test foo(fill(1., 4)) == 15 end - end'`), stderr=DevNull), String) + end'`), stderr=devnull), String) @test contains(msg, """ Test Summary: | Pass Fail Total @@ -608,7 +608,7 @@ end # 20489 let msg = split(read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no -e ' - Test.print_test_results(Test.DefaultTestSet(""))'`), stderr=DevNull), String), "\n")[1] + Test.print_test_results(Test.DefaultTestSet(""))'`), stderr=devnull), String), "\n")[1] @test msg == rstrip(msg) end @@ -645,7 +645,7 @@ end end """) - local msg = read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=DevNull), String) + local msg = read(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=devnull), String) @test contains(msg, "at " * f * ":" * "3") @test contains(msg, "at " * f * ":" * "4") @test contains(msg, "at " * f * ":" * "5") @@ -656,7 +656,7 @@ end # issue #24919 @testset "≈ with atol" begin local cmd = `$(Base.julia_cmd()) --startup-file=no --color=no` - f(src) = read(pipeline(ignorestatus(`$cmd -e $src`), stderr=DevNull), String) + f(src) = read(pipeline(ignorestatus(`$cmd -e $src`), stderr=devnull), String) msg = f(""" using Test @@ -795,7 +795,7 @@ end @test e isa InterruptException end """) - msg = success(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=DevNull)) + msg = success(pipeline(ignorestatus(`$(Base.julia_cmd()) --startup-file=no --color=no $f`), stderr=devnull)) end @testset "non AbstractTestSet as testset" begin diff --git a/stdlib/UUIDs/docs/src/index.md b/stdlib/UUIDs/docs/src/index.md index 616ac63984d415..3b936e7c82178a 100644 --- a/stdlib/UUIDs/docs/src/index.md +++ b/stdlib/UUIDs/docs/src/index.md @@ -1,7 +1,15 @@ # UUIDs +```@meta +DocTestSetup = :(using UUIDs, Random) +``` + ```@docs UUIDs.uuid1 UUIDs.uuid4 UUIDs.uuid_version ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/UUIDs/src/UUIDs.jl b/stdlib/UUIDs/src/UUIDs.jl index 0f9ddc46027c7e..cf59d0fb9f71be 100644 --- a/stdlib/UUIDs/src/UUIDs.jl +++ b/stdlib/UUIDs/src/UUIDs.jl @@ -32,11 +32,11 @@ by RFC 4122. Note that the Node ID is randomly generated (does not identify the according to section 4.5 of the RFC. # Examples -```jldoctest +```jldoctest; filter = r"[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}" julia> rng = MersenneTwister(1234); julia> uuid1(rng) -2cc938da-5937-11e7-196e-0f4ef71aa64b +fcbd9b64-1bc2-11e8-1f13-43a2532b2fa8 ``` """ function uuid1(rng::AbstractRNG=Random.GLOBAL_RNG) @@ -73,7 +73,7 @@ as specified by RFC 4122. julia> rng = MersenneTwister(1234); julia> uuid4(rng) -82015f10-44cc-4827-996e-0f4ef71aa64b +196f2941-2d58-45ba-9f13-43a2532b2fa8 ``` """ function uuid4(rng::AbstractRNG=Random.GLOBAL_RNG) diff --git a/stdlib/UUIDs/test/runtests.jl b/stdlib/UUIDs/test/runtests.jl index 164ff4d9c2b5ee..aa8a78307b0c8a 100644 --- a/stdlib/UUIDs/test/runtests.jl +++ b/stdlib/UUIDs/test/runtests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using UUIDs, Random +using Test, UUIDs, Random u1 = uuid1() u4 = uuid4() diff --git a/stdlib/Unicode/docs/src/index.md b/stdlib/Unicode/docs/src/index.md index aba9d80c3e8b54..474629d541be7c 100644 --- a/stdlib/Unicode/docs/src/index.md +++ b/stdlib/Unicode/docs/src/index.md @@ -1,7 +1,15 @@ # Unicode +```@meta +DocTestSetup = :(using Unicode) +``` + ```@docs Unicode.isassigned Unicode.normalize Unicode.graphemes ``` + +```@meta +DocTestSetup = nothing +``` diff --git a/stdlib/Unicode/src/Unicode.jl b/stdlib/Unicode/src/Unicode.jl index f678de76464656..4c933f8b08a19d 100644 --- a/stdlib/Unicode/src/Unicode.jl +++ b/stdlib/Unicode/src/Unicode.jl @@ -43,8 +43,6 @@ For example, NFKC corresponds to the options `compose=true, compat=true, stable= # Examples ```jldoctest -julia> using Unicode - julia> "μ" == Unicode.normalize("µ", compat=true) #LHS: Unicode U+03bc, RHS: Unicode U+00b5 true @@ -66,8 +64,6 @@ Returns `true` if the given char or integer is an assigned Unicode code point. # Examples ```jldoctest -julia> using Unicode - julia> Unicode.isassigned(101) true diff --git a/test/Makefile b/test/Makefile index 599c4cff2fe127..d22ad933947ba8 100644 --- a/test/Makefile +++ b/test/Makefile @@ -25,11 +25,7 @@ $(TESTS): embedding: @$(MAKE) -C $(SRCDIR)/$@ check $(EMBEDDING_ARGS) -perf: - @$(MAKE) -C $(SRCDIR)/perf all - clean: @$(MAKE) -C embedding $@ $(EMBEDDING_ARGS) - @$(MAKE) -C perf $@ -.PHONY: $(TESTS) embedding perf clean +.PHONY: $(TESTS) embedding clean diff --git a/test/arrayops.jl b/test/arrayops.jl index 75660e3ff03e94..fde0b3f7d4fac7 100644 --- a/test/arrayops.jl +++ b/test/arrayops.jl @@ -627,13 +627,13 @@ end A1 = reshape(repeat([1,2],1,12),2,3,4) A2 = reshape(repeat([1 2 3],2,4),2,3,4) A3 = reshape(repeat([1 2 3 4],6,1),2,3,4) - @test isequal(cumsum(A,1),A1) - @test isequal(cumsum(A,2),A2) - @test isequal(cumsum(A,3),A3) + @test isequal(cumsum(A,dims=1),A1) + @test isequal(cumsum(A,dims=2),A2) + @test isequal(cumsum(A,dims=3),A3) # issue 20112 A3 = reshape(repeat([1 2 3 4],UInt32(6),UInt32(1)),2,3,4) - @test isequal(cumsum(A,3),A3) + @test isequal(cumsum(A,dims=3),A3) @test repeat([1,2,3,4], UInt32(1)) == [1,2,3,4] @test repeat([1 2], UInt32(2)) == repeat([1 2], UInt32(2), UInt32(1)) @@ -852,13 +852,13 @@ end A = rand(4,4) for s in Any[A[1:2:4, 1:2:4], view(A, 1:2:4, 1:2:4)] - c = cumsum(s, 1) + c = cumsum(s, dims=1) @test c[1,1] == A[1,1] @test c[2,1] == A[1,1]+A[3,1] @test c[1,2] == A[1,3] @test c[2,2] == A[1,3]+A[3,3] - c = cumsum(s, 2) + c = cumsum(s, dims=2) @test c[1,1] == A[1,1] @test c[2,1] == A[3,1] @test c[1,2] == A[1,1]+A[1,3] @@ -902,7 +902,7 @@ end end # issue #2342 -@test isequal(cumsum([1 2 3], 1), [1 2 3]) +@test isequal(cumsum([1 2 3], dims=1), [1 2 3]) @testset "set-like operations" begin @test isequal(union([1,2,3], [4,3,4]), [1,2,3,4]) @@ -1015,7 +1015,7 @@ end @test a == [8,3,8] end -@testset "assigning an array into itself" begin +@testset "assigning an array into itself and other aliasing issues" begin a = [1,3,5] b = [3,1,2] a[b] = a @@ -1023,6 +1023,81 @@ end a = [3,2,1] a[a] = [4,5,6] @test a == [6,5,4] + + A = [1,2,3,4] + V = view(A, A) + @test V == A + V[1] = 2 + @test V == A == [2,2,3,4] + V[1] = 2^30 + @test V == A == [2^30, 2, 3, 4] + + A = [2,1,4,3] + V = view(A, :) + A[V] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = [2,1,4,3] + R = reshape(view(A, :), 2, 2) + A[R] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = [2,1,4,3] + R = reshape(A, 2, 2) + A[R] = (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + # And broadcasting + a = [1,3,5] + b = [3,1,2] + a[b] .= a + @test a == [3,5,1] + a = [3,2,1] + a[a] .= [4,5,6] + @test a == [6,5,4] + + A = [2,1,4,3] + V = view(A, :) + A[V] .= (1:4) .+ 2^30 + @test A == [2,1,4,3] .+ 2^30 + + A = [2,1,4,3] + R = reshape(view(A, :), 2, 2) + A[R] .= reshape((1:4) .+ 2^30, 2, 2) + @test A == [2,1,4,3] .+ 2^30 + + A = [2,1,4,3] + R = reshape(A, 2, 2) + A[R] .= reshape((1:4) .+ 2^30, 2, 2) + @test A == [2,1,4,3] .+ 2^30 +end + +@testset "Base.mightalias unit tests" begin + using Base: mightalias + A = rand(5,4) + @test @views mightalias(A[:], A[:]) + @test @views mightalias(A[:,:], A[:,:]) + @test @views mightalias(A[1:2,1:2], A[1:2,1:2]) + @test @views !mightalias(A[3:4,1:2], A[1:2,:]) + @test @views mightalias(A[3,1:1], A) + @test @views mightalias(A[3,1:1], A[:]) + @test @views mightalias(A[3,1:1], A[:,:]) + @test @views mightalias(A, A[3,1:1]) + @test @views mightalias(A[:], A[3,1:1]) + @test @views mightalias(A[:,:], A[3,1:1]) + + B = reshape(A,10,2) + @test mightalias(A, A) + @test mightalias(A, B) + @test mightalias(B, A) + @test @views mightalias(B[:], A[:]) + @test @views mightalias(B[1:2], A[1:2]) + @test @views !mightalias(B[1:end÷2], A[end÷2+1:end]) + + AA = [[1],[2]] + @test @views mightalias(AA, AA[:]) + @test @views mightalias(AA[:], AA[:]) + @test @views mightalias(AA[1:1], AA[1:2]) end @testset "lexicographic comparison" begin @@ -1062,31 +1137,31 @@ end @test isless(asc[:,2],asc[:,1]) @test isless(asc[:,3],asc[:,2]) - as = sort(a, 1) + as = sort(a, dims=1) @test issorted(as[:,1]) @test issorted(as[:,2]) @test issorted(as[:,3]) - as = sort(a, 2) + as = sort(a, dims=2) @test issorted(as[1,:]) @test issorted(as[2,:]) @test issorted(as[3,:]) local b = rand(21,21,2) - bs = sort(b, 1) + bs = sort(b, dims=1) for i in 1:21 @test issorted(bs[:,i,1]) @test issorted(bs[:,i,2]) end - bs = sort(b, 2) + bs = sort(b, dims=2) for i in 1:21 @test issorted(bs[i,:,1]) @test issorted(bs[i,:,2]) end - bs = sort(b, 3) + bs = sort(b, dims=3) @test all(bs[:,:,1] .<= bs[:,:,2]) end @@ -1541,8 +1616,8 @@ end @test I2 + I1 == CartesianIndex((1,8,2)) @test I1 - I2 == CartesianIndex((3,-2,-2)) @test I2 - I1 == CartesianIndex((-3,2,2)) - @test I1 + 1 == CartesianIndex((3,4,1)) - @test I1 - 2 == CartesianIndex((0,1,-2)) + @test I1 + 1*one(I1) == CartesianIndex((3,4,1)) + @test I1 - 2*one(I1) == CartesianIndex((0,1,-2)) @test zero(CartesianIndex{2}) == CartesianIndex((0,0)) @test zero(CartesianIndex((2,3))) == CartesianIndex((0,0)) @@ -1851,8 +1926,8 @@ copyto!(S, A) @test cat(1, A, B, S) == cat(1, A, A, A) @test cat(2, A, B, S) == cat(2, A, A, A) -@test cumsum(A, 1) == cumsum(B, 1) == cumsum(S, 1) -@test cumsum(A, 2) == cumsum(B, 2) == cumsum(S, 2) +@test cumsum(A, dims=1) == cumsum(B, dims=1) == cumsum(S, dims=1) +@test cumsum(A, dims=2) == cumsum(B, dims=2) == cumsum(S, dims=2) @test mapslices(sort, A, 1) == mapslices(sort, B, 1) == mapslices(sort, S, 1) @test mapslices(sort, A, 2) == mapslices(sort, B, 2) == mapslices(sort, S, 2) @@ -1944,15 +2019,15 @@ let f = OOB_Functor([1,2]) end # issue 15654 -@test cumprod([5], 2) == [5] -@test cumprod([1 2; 3 4], 3) == [1 2; 3 4] -@test cumprod([1 2; 3 4], 1) == [1 2; 3 8] -@test cumprod([1 2; 3 4], 2) == [1 2; 3 12] +@test cumprod([5], dims=2) == [5] +@test cumprod([1 2; 3 4], dims=3) == [1 2; 3 4] +@test cumprod([1 2; 3 4], dims=1) == [1 2; 3 8] +@test cumprod([1 2; 3 4], dims=2) == [1 2; 3 12] -@test cumsum([5], 2) == [5] -@test cumsum([1 2; 3 4], 1) == [1 2; 4 6] -@test cumsum([1 2; 3 4], 2) == [1 3; 3 7] -@test cumsum([1 2; 3 4], 3) == [1 2; 3 4] +@test cumsum([5], dims=2) == [5] +@test cumsum([1 2; 3 4], dims=1) == [1 2; 4 6] +@test cumsum([1 2; 3 4], dims=2) == [1 3; 3 7] +@test cumsum([1 2; 3 4], dims=3) == [1 2; 3 4] # issue #18363 @test_throws DimensionMismatch cumsum!([0,0], 1:4) @@ -2109,10 +2184,25 @@ end @test all(x -> x isa U, b) end +@testset "diff" begin + # test diff, throw ArgumentError for invalid dimension argument + X = [3 9 5; + 7 4 2; + 2 1 10] + @test diff(X,1) == [4 -5 -3; -5 -3 8] + @test diff(X,2) == [6 -4; -3 -2; -1 9] + @test diff(view(X, 1:2, 1:2),1) == [4 -5] + @test diff(view(X, 1:2, 1:2),2) == reshape([6; -3], (2,1)) + @test diff(view(X, 2:3, 2:3),1) == [-3 8] + @test diff(view(X, 2:3, 2:3),2) == reshape([-2; 9], (2,1)) + @test_throws ArgumentError diff(X,3) + @test_throws ArgumentError diff(X,-1) +end + @testset "accumulate, accumulate!" begin @test accumulate(+, [1,2,3]) == [1, 3, 6] - @test accumulate(min, [1 2; 3 4], 1) == [1 2; 1 2] - @test accumulate(max, [1 2; 3 0], 2) == [1 2; 3 3] + @test accumulate(min, [1 2; 3 4], dims=1) == [1 2; 1 2] + @test accumulate(max, [1 2; 3 0], dims=2) == [1 2; 3 3] @test accumulate(+, Bool[]) == Int[] @test accumulate(*, Bool[]) == Bool[] @test accumulate(+, Float64[]) == Float64[] @@ -2120,10 +2210,10 @@ end @test accumulate(min, [1, 2, 5, -1, 3, -2]) == [1, 1, 1, -1, -1, -2] @test accumulate(max, [1, 2, 5, -1, 3, -2]) == [1, 2, 5, 5, 5, 5] - @test accumulate(max, [1 0; 0 1], 1) == [1 0; 1 1] - @test accumulate(max, [1 0; 0 1], 2) == [1 1; 0 1] - @test accumulate(min, [1 0; 0 1], 1) == [1 0; 0 0] - @test accumulate(min, [1 0; 0 1], 2) == [1 0; 0 0] + @test accumulate(max, [1 0; 0 1], dims=1) == [1 0; 1 1] + @test accumulate(max, [1 0; 0 1], dims=2) == [1 1; 0 1] + @test accumulate(min, [1 0; 0 1], dims=1) == [1 0; 0 0] + @test accumulate(min, [1 0; 0 1], dims=2) == [1 0; 0 0] @test isa(accumulate(+, Int[]) , Vector{Int}) @test isa(accumulate(+, 1., Int[]) , Vector{Float64}) @@ -2139,7 +2229,7 @@ end @test accumulate_arr ≈ cumop(arr) @test accumulate_arr[end] ≈ reduce(op, arr) @test accumulate_arr[1] ≈ arr[1] - @test accumulate(op, arr, 10) ≈ arr + @test accumulate(op, arr, dims=10) ≈ arr if eltype(arr) in [Int, Float64] # eltype of out easy out = similar(arr) @@ -2160,7 +2250,7 @@ end # asymmetric operation op(x,y) = 2x+y @test accumulate(op, [10,20, 30]) == [10, op(10, 20), op(op(10, 20), 30)] == [10, 40, 110] - @test accumulate(op, [10 20 30], 2) == [10 op(10, 20) op(op(10, 20), 30)] == [10 40 110] + @test accumulate(op, [10 20 30], dims=2) == [10 op(10, 20) op(op(10, 20), 30)] == [10 40 110] end struct F21666{T <: Base.ArithmeticStyle} diff --git a/test/bigint.jl b/test/bigint.jl index b4886df8220c23..c1372afea4f52b 100644 --- a/test/bigint.jl +++ b/test/bigint.jl @@ -336,10 +336,10 @@ end @test_throws InexactError floor(BigInt,Inf) @test_throws InexactError ceil(BigInt,Inf) - @test bin(big(3)) == "11" - @test oct(big(9)) == "11" - @test oct(-big(9)) == "-11" - @test hex(big(12)) == "c" + @test string(big(3), base = 2) == "11" + @test string(big(9), base = 8) == "11" + @test string(-big(9), base = 8) == "-11" + @test string(big(12), base = 16) == "c" end @testset "Issue #18849" begin # bin, oct, dec, hex should not call sizeof on BigInts @@ -347,33 +347,33 @@ end padding = 4 low = big(4) high = big(2^20) - @test bin(low, padding) == "0100" - @test oct(low, padding) == "0004" - @test dec(low, padding) == "0004" - @test hex(low, padding) == "0004" - - @test bin(high, padding) == "100000000000000000000" - @test oct(high, padding) == "4000000" - @test dec(high, padding) == "1048576" - @test hex(high, padding) == "100000" - - @test bin(-low, padding) == "-0100" # handle negative numbers correctly - @test oct(-low, padding) == "-0004" - @test dec(-low, padding) == "-0004" - @test hex(-low, padding) == "-0004" - - @test bin(-high, padding) == "-100000000000000000000" - @test oct(-high, padding) == "-4000000" - @test dec(-high, padding) == "-1048576" - @test hex(-high, padding) == "-100000" + @test string(low, pad = padding, base = 2) == "0100" + @test string(low, pad = padding, base = 8) == "0004" + @test string(low, pad = padding, base = 10) == "0004" + @test string(low, pad = padding, base = 16) == "0004" + + @test string(high, pad = padding, base = 2) == "100000000000000000000" + @test string(high, pad = padding, base = 8) == "4000000" + @test string(high, pad = padding, base = 10) == "1048576" + @test string(high, pad = padding, base = 16) == "100000" + + @test string(-low, pad = padding, base = 2) == "-0100" # handle negative numbers correctly + @test string(-low, pad = padding, base = 8) == "-0004" + @test string(-low, pad = padding, base = 10) == "-0004" + @test string(-low, pad = padding, base = 16) == "-0004" + + @test string(-high, pad = padding, base = 2) == "-100000000000000000000" + @test string(-high, pad = padding, base = 8) == "-4000000" + @test string(-high, pad = padding, base = 10) == "-1048576" + @test string(-high, pad = padding, base = 16) == "-100000" end # respect 0-padding on big(0) -for f in (bin, oct, dec, hex) - local f - @test f(big(0), 0) == "" +for base in (2, 8, 10, 16) + local base + @test string(big(0), base=base, pad=0) == "" end -@test base(rand(2:62), big(0), 0) == "" +@test string(big(0), base = rand(2:62), pad = 0) == "" @test isqrt(big(4)) == 2 @test isqrt(big(5)) == 2 diff --git a/test/bitarray.jl b/test/bitarray.jl index 168c8a600cb913..40ce442c452fa6 100644 --- a/test/bitarray.jl +++ b/test/bitarray.jl @@ -13,9 +13,9 @@ tc(r1,r2) = false bitcheck(b::BitArray) = Test._check_bitarray_consistency(b) bitcheck(x) = true -function check_bitop_call(ret_type, func, args...) - r1 = func(args...) - r2 = func(map(x->(isa(x, BitArray) ? Array(x) : x), args)...) +function check_bitop_call(ret_type, func, args...; kwargs...) + r1 = func(args...; kwargs...) + r2 = func(map(x->(isa(x, BitArray) ? Array(x) : x), args)...; kwargs...) ret_type ≢ nothing && !isa(r1, ret_type) && @show ret_type, r1 ret_type ≢ nothing && @test isa(r1, ret_type) @test tc(r1, r2) @@ -1230,9 +1230,9 @@ end b1 = bitrand(s1, s2, s3, s4) m1 = 1 m2 = 3 - @check_bit_operation maximum(b1, (m1, m2)) BitArray{4} - @check_bit_operation minimum(b1, (m1, m2)) BitArray{4} - @check_bit_operation sum(b1, (m1, m2)) Array{Int,4} + @check_bit_operation maximum(b1, dims=(m1, m2)) BitArray{4} + @check_bit_operation minimum(b1, dims=(m1, m2)) BitArray{4} + @check_bit_operation sum(b1, dims=(m1, m2)) Array{Int,4} @check_bit_operation maximum(b1) Bool @check_bit_operation minimum(b1) Bool diff --git a/test/boundscheck.jl b/test/boundscheck.jl index a1ca1b8051536a..09cc8d2cd13e85 100644 --- a/test/boundscheck.jl +++ b/test/boundscheck.jl @@ -3,16 +3,16 @@ # run boundscheck tests on separate workers launched with --check-bounds={default,yes,no} cmd = `$(Base.julia_cmd()) --depwarn=error --startup-file=no boundscheck_exec.jl` -if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) +if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) error("boundscheck test failed, cmd : $cmd") end cmd = `$(Base.julia_cmd()) --check-bounds=yes --startup-file=no --depwarn=error boundscheck_exec.jl` -if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) +if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) error("boundscheck test failed, cmd : $cmd") end cmd = `$(Base.julia_cmd()) --check-bounds=no --startup-file=no --depwarn=error boundscheck_exec.jl` -if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) +if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) error("boundscheck test failed, cmd : $cmd") end diff --git a/test/broadcast.jl b/test/broadcast.jl index f094027160e27b..e1e4a0690f3a32 100644 --- a/test/broadcast.jl +++ b/test/broadcast.jl @@ -213,7 +213,7 @@ end # PR #17300: loop fusion @test (x->x+1).((x->x+2).((x->x+3).(1:10))) == 7:16 let A = [sqrt(i)+j for i = 1:3, j=1:4] - @test atan2.(log.(A), sum(A,1)) == broadcast(atan2, broadcast(log, A), sum(A, 1)) + @test atan2.(log.(A), sum(A, dims=1)) == broadcast(atan2, broadcast(log, A), sum(A, dims=1)) end let x = sin.(1:10) @test atan2.((x->x+1).(x), (x->x+2).(x)) == broadcast(atan2, x.+1, x.+2) @@ -553,10 +553,11 @@ end # Test that broadcasting identity where the input and output Array shapes do not match # yields the correct result, not merely a partial copy. See pull request #19895 for discussion. let N = 5 - @test iszero(fill(1, N, N) .= zeros(N, N)) - @test iszero(fill(1, N, N) .= zeros(N, 1)) - @test iszero(fill(1, N, N) .= zeros(1, N)) - @test iszero(fill(1, N, N) .= zeros(1, 1)) + for rhs in (zeros(N, N), zeros(N, 1), zeros(1, N), zeros(1, 1)) + local o = fill(1, N, N) + o .= rhs + @test iszero(o) + end end @testset "test broadcast for matrix of matrices" begin @@ -612,3 +613,16 @@ let n = 1 @test ceil.(Int, n ./ (1,)) == (1,) @test ceil.(Int, 1 ./ (1,)) == (1,) end + +# issue #25954, value of `.=` +# TODO: use these if we want `.=` to return its RHS +#let a = zeros(2, 3), b = zeros(4, 5) +# a .= b .= 1 +# @test a == ones(2, 3) +# @test b == ones(4, 5) +# @test (b .= 1) === 1 +# c = [6, 7]; d = [8, 9] +# x = (a .= c.+d) +# @test a == [14 14 14; 16 16 16] +# @test x == [14, 16] +#end diff --git a/test/ccall.jl b/test/ccall.jl index d30922a33dd646..634918495d8b34 100644 --- a/test/ccall.jl +++ b/test/ccall.jl @@ -1248,8 +1248,8 @@ end @noinline f21104at(::Type{T}) where {T} = ccall(:fn, Cvoid, (Some{T},), Some(0)) @noinline f21104rt(::Type{T}) where {T} = ccall(:fn, Some{T}, ()) -@test code_llvm(DevNull, f21104at, (Type{Float64},)) === nothing -@test code_llvm(DevNull, f21104rt, (Type{Float64},)) === nothing +@test code_llvm(devnull, f21104at, (Type{Float64},)) === nothing +@test code_llvm(devnull, f21104rt, (Type{Float64},)) === nothing @test_throws(ErrorException("ccall: the type of argument 1 doesn't correspond to a C type"), f21104at(Float64)) @test_throws(ErrorException("ccall: return type doesn't correspond to a C type"), diff --git a/test/channels.jl b/test/channels.jl index 84e1d35a8ddbb4..07033c6cc7c640 100644 --- a/test/channels.jl +++ b/test/channels.jl @@ -101,7 +101,7 @@ using Distributed cs = [Channel(N) for i in 1:5] tf2 = () -> begin if N > 0 - foreach(c->assert(take!(c)==2), cs) + foreach(c->(@assert take!(c)==2), cs) end yield() error("foo") @@ -145,7 +145,7 @@ using Distributed # channeled_tasks for T in [Any, Int] - chnls, tasks = Base.channeled_tasks(2, (c1,c2)->(assert(take!(c1)==1); put!(c2,2)); ctypes=[T,T], csizes=[N,N]) + chnls, tasks = Base.channeled_tasks(2, (c1,c2)->(@assert take!(c1)==1; put!(c2,2)); ctypes=[T,T], csizes=[N,N]) put!(chnls[1], 1) @test take!(chnls[2]) == 2 @test_throws InvalidStateException wait(chnls[1]) @@ -156,7 +156,7 @@ using Distributed f=Future() tf4 = (c1,c2) -> begin - assert(take!(c1)==1) + @assert take!(c1)==1 wait(f) end @@ -181,7 +181,7 @@ using Distributed # channel tf6 = c -> begin - assert(take!(c)==2) + @assert take!(c)==2 error("foo") end @@ -238,7 +238,7 @@ end GC.enable(true) GC.gc() end - oldstderr = STDERR + oldstderr = stderr local newstderr, errstream try newstderr = redirect_stderr() diff --git a/test/choosetests.jl b/test/choosetests.jl index 86212f2fcba4a8..49584c8d2c7a14 100644 --- a/test/choosetests.jl +++ b/test/choosetests.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using Random +using Random, Sockets const STDLIB_DIR = joinpath(Sys.BINDIR, "..", "share", "julia", "site", "v$(VERSION.major).$(VERSION.minor)") const STDLIBS = readdir(STDLIB_DIR) @@ -43,7 +43,7 @@ function choosetests(choices = []) "operators", "path", "ccall", "parse", "loading", "bigint", "bigfloat", "sorting", "statistics", "spawn", "backtrace", "file", "read", "version", "namedtuple", - "mpfr", "broadcast", "complex", "socket", + "mpfr", "broadcast", "complex", "floatapprox", "stdlib", "reflection", "regex", "float16", "combinatorics", "sysinfo", "env", "rounding", "ranges", "mod2pi", "euler", "show", @@ -57,10 +57,6 @@ function choosetests(choices = []) "reinterpretarray", "syntax", "logging", "missing", "asyncmap" ] - if isdir(joinpath(Sys.BINDIR, Base.DOCDIR, "examples")) - push!(testnames, "examples") - end - tests = [] skip_tests = [] exit_on_error = false @@ -129,7 +125,8 @@ function choosetests(choices = []) end - explicit_pkg = "Pkg/pkg" in tests + explicit_pkg = "Pkg/pkg" in tests + explicit_pkg3 = "Pkg3/pkg" in tests explicit_libgit2 = "LibGit2/online" in tests new_tests = String[] for test in tests @@ -144,7 +141,8 @@ function choosetests(choices = []) end filter!(x -> (x != "stdlib" && !(x in STDLIBS)) , tests) prepend!(tests, new_tests) - explicit_pkg || filter!(x -> x != "Pkg/pkg", tests) + explicit_pkg || filter!(x -> x != "Pkg/pkg", tests) + explicit_pkg3 || filter!(x -> x != "Pkg3/pkg", tests) explicit_libgit2 || filter!(x -> x != "LibGit2/online", tests) # do ambiguous first to avoid failing if ambiguities are introduced by other tests @@ -162,7 +160,7 @@ function choosetests(choices = []) filter!(x -> (x != "Profile"), tests) end - net_required_for = ["socket", "LibGit2"] + net_required_for = ["Sockets", "LibGit2"] net_on = true try ipa = getipaddr() diff --git a/test/cmdlineargs.jl b/test/cmdlineargs.jl index 16d6346ce886c2..a40767b2855e1f 100644 --- a/test/cmdlineargs.jl +++ b/test/cmdlineargs.jl @@ -10,7 +10,7 @@ function writereadpipeline(input, exename) write(p.in, input) close(p.in) end - return read(p.out, String) + return (read(p.out, String), success(p)) end # helper function for returning stderr and stdout @@ -18,13 +18,59 @@ end function readchomperrors(exename::Cmd) out = Base.PipeEndpoint() err = Base.PipeEndpoint() - p = spawn(exename, DevNull, out, err) + p = run(exename, devnull, out, err, wait=false) o = @async(readchomp(out)) e = @async(readchomp(err)) return (success(p), fetch(o), fetch(e)) end +let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` + # tests for handling of ENV errors + let v = writereadpipeline("println(\"REPL: \", @which(less), @isdefined(InteractiveUtils))", + setenv(`$exename -i -E 'empty!(LOAD_PATH); @isdefined InteractiveUtils'`, + "JULIA_LOAD_PATH"=>"", "JULIA_DEPOT_PATH"=>"")) + @test v[1] == "false\nREPL: InteractiveUtilstrue\n" + @test v[2] + end + let v = writereadpipeline("println(\"REPL: \", InteractiveUtils)", + setenv(`$exename -i -e 'const InteractiveUtils = 3'`, + "JULIA_LOAD_PATH"=>";;;:::", "JULIA_DEPOT_PATH"=>";;;:::")) + # TODO: ideally, `@which`, etc. would still work, but Julia can't handle `using $InterativeUtils` + @test v[1] == "REPL: 3\n" + @test v[2] + end + let v = readchomperrors(`$exename -i -e ' + empty!(LOAD_PATH) + Base.unreference_module(Base.PkgId(Base.UUID(0xb77e0a4c_d291_57a0_90e8_8db25a27a240), "InteractiveUtils")) + '`) + # simulate not having a working version of InteractiveUtils, + # make sure this is a non-fatal error and the REPL still loads + @test v[1] + @test isempty(v[2]) + @test startswith(v[3], """ + ┌ Warning: Failed to insert InteractiveUtils into module Main + │ exception = + │ ArgumentError: Module InteractiveUtils not found in current path. + │ Run `Pkg.add("InteractiveUtils")` to install the InteractiveUtils package. + │ Stacktrace: + """) + end + for nc in ("0", "-2", "x", "2x", " ") + v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_CORES'`, "JULIA_CPU_CORES" => nc)) + @test v[1] + @test v[2] == "1" + @test v[3] == "WARNING: couldn't parse `JULIA_CPU_CORES` environment variable. Defaulting Sys.CPU_CORES to 1." + end + real_cores = string(ccall(:jl_cpu_cores, Int32, ())) + for nc in ("1", " 1 ", " +1 ", " 0x1 ", "") + v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_CORES'`, "JULIA_CPU_CORES" => nc)) + @test v[1] + @test v[2] == (isempty(nc) ? real_cores : "1") + @test isempty(v[3]) + end +end + let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` # --version let v = split(read(`$exename -v`, String), "julia version ")[end] @@ -173,19 +219,25 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` # -g @test readchomp(`$exename -E "Base.JLOptions().debug_level" -g`) == "2" - let code = read(`$exename -g0 -i -e "code_llvm(STDOUT, +, (Int64, Int64), false, true); exit()"`, String) + let code = writereadpipeline("code_llvm(stdout, +, (Int64, Int64), false, true)", `$exename -g0`) + @test code[2] + code = code[1] @test contains(code, "llvm.module.flags") @test !contains(code, "llvm.dbg.cu") @test !contains(code, "int.jl") @test !contains(code, "Int64") end - let code = read(`$exename -g1 -i -e "code_llvm(STDOUT, +, (Int64, Int64), false, true); exit()"`, String) + let code = writereadpipeline("code_llvm(stdout, +, (Int64, Int64), false, true)", `$exename -g1`) + @test code[2] + code = code[1] @test contains(code, "llvm.module.flags") @test contains(code, "llvm.dbg.cu") @test contains(code, "int.jl") @test !contains(code, "Int64") end - let code = read(`$exename -g2 -i -e "code_llvm(STDOUT, +, (Int64, Int64), false, true); exit()"`, String) + let code = writereadpipeline("code_llvm(stdout, +, (Int64, Int64), false, true)", `$exename -g2`) + @test code[2] + code = code[1] @test contains(code, "llvm.module.flags") @test contains(code, "llvm.dbg.cu") @test contains(code, "int.jl") @@ -269,17 +321,18 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` end # --worker takes default / custom as argument (default/custom arguments - # tested in test/parallel.jl, test/examples.jl) + # tested in test/parallel.jl) @test !success(`$exename --worker=true`) # test passing arguments mktempdir() do dir testfile = joinpath(dir, tempname()) - # write a julia source file that just prints ARGS to STDOUT + # write a julia source file that just prints ARGS to stdout write(testfile, """ println(ARGS) """) - cp(testfile, joinpath(dir, ".juliarc.jl")) + mkpath(joinpath(dir, ".julia", "config")) + cp(testfile, joinpath(dir, ".julia", "config", "startup.jl")) withenv((Sys.iswindows() ? "USERPROFILE" : "HOME") => dir) do output = "[\"foo\", \"-bar\", \"--baz\"]" @@ -304,7 +357,7 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` mktempdir() do dir a = joinpath(dir, "a.jl") b = joinpath(dir, "b.jl") - c = joinpath(dir, ".juliarc.jl") + c = joinpath(dir, ".julia", "config", "startup.jl") write(a, """ println(@__FILE__) @@ -315,6 +368,7 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes --startup-file=no` println(@__FILE__) println(PROGRAM_FILE) """) + mkpath(dirname(c)) cp(b, c) readsplit(cmd) = split(readchomp(cmd), '\n') @@ -387,10 +441,10 @@ let exename = joinpath(Sys.BINDIR, Base.julia_exename()), joinpath(@__DIR__, "nonexistent"), "$sysname.nonexistent", ) - let stderr = Pipe(), - p = spawn(pipeline(`$exename --sysimage=$nonexist_image`, stderr=stderr)) - close(stderr.in) - let s = read(stderr, String) + let err = Pipe(), + p = run(pipeline(`$exename --sysimage=$nonexist_image`, stderr=err), wait=false) + close(err.in) + let s = read(err, String) @test contains(s, "ERROR: could not load library \"$nonexist_image\"\n") @test !contains(s, "Segmentation fault") @test !contains(s, "EXCEPTION_ACCESS_VIOLATION") @@ -400,10 +454,10 @@ let exename = joinpath(Sys.BINDIR, Base.julia_exename()), @test p.exitcode == 1 end end - let stderr = Pipe(), - p = spawn(pipeline(`$exename --sysimage=$libjulia`, stderr=stderr)) - close(stderr.in) - let s = read(stderr, String) + let err = Pipe(), + p = run(pipeline(`$exename --sysimage=$libjulia`, stderr=err), wait=false) + close(err.in) + let s = read(err, String) @test s == "ERROR: System image file failed consistency check: maybe opened the wrong version?\n" end @test !success(p) @@ -416,7 +470,7 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes` # --startup-file let JL_OPTIONS_STARTUPFILE_ON = 1, JL_OPTIONS_STARTUPFILE_OFF = 2 - # `HOME=$tmpdir` to avoid errors in the user .juliarc.jl, which hangs the tests. Issue #17642 + # `HOME=$tmpdir` to avoid errors in the user startup.jl, which hangs the tests. Issue #17642 mktempdir() do tmpdir withenv("HOME"=>tmpdir) do @test parse(Int,readchomp(`$exename -E "Base.JLOptions().startupfile" --startup-file=yes`)) == JL_OPTIONS_STARTUPFILE_ON @@ -429,7 +483,7 @@ let exename = `$(Base.julia_cmd()) --sysimage-native-code=yes` end # Make sure `julia --lisp` doesn't break -run(pipeline(DevNull, `$(joinpath(Sys.BINDIR, Base.julia_exename())) --lisp`, DevNull)) +run(pipeline(devnull, `$(joinpath(Sys.BINDIR, Base.julia_exename())) --lisp`, devnull)) # Test that `julia [some other option] --lisp` is disallowed @test readchomperrors(`$(joinpath(Sys.BINDIR, Base.julia_exename())) -Cnative --lisp`) == @@ -484,11 +538,11 @@ end # issue #6310 let exename = `$(Base.julia_cmd()) --startup-file=no` - @test writereadpipeline("2+2", exename) == "4\n" - @test writereadpipeline("2+2\n3+3\n4+4", exename) == "4\n6\n8\n" - @test writereadpipeline("", exename) == "" - @test writereadpipeline("print(2)", exename) == "2" - @test writereadpipeline("print(2)\nprint(3)", exename) == "23" + @test writereadpipeline("2+2", exename) == ("4\n", true) + @test writereadpipeline("2+2\n3+3\n4+4", exename) == ("4\n6\n8\n", true) + @test writereadpipeline("", exename) == ("", true) + @test writereadpipeline("print(2)", exename) == ("2", true) + @test writereadpipeline("print(2)\nprint(3)", exename) == ("23", true) let infile = tempname() touch(infile) try diff --git a/test/compile.jl b/test/compile.jl index 6412abf3f4b1b6..da4b8853bce54a 100644 --- a/test/compile.jl +++ b/test/compile.jl @@ -16,7 +16,7 @@ using .ConflictingBindings dir = mktempdir() dir2 = mktempdir() insert!(LOAD_PATH, 1, dir) -insert!(Base.LOAD_CACHE_PATH, 1, dir) +insert!(DEPOT_PATH, 1, dir) try Foo_file = joinpath(dir, "$Foo_module.jl") Foo2_file = joinpath(dir, "$Foo2_module.jl") @@ -166,7 +166,9 @@ try @test Foo.override(UInt(1)) == 2 end - cachefile = joinpath(dir, "$Foo_module.ji") + cachedir = joinpath(dir, "compiled", "v$(VERSION.major).$(VERSION.minor)") + cachedir2 = joinpath(dir2, "compiled", "v$(VERSION.major).$(VERSION.minor)") + cachefile = joinpath(cachedir, "$Foo_module.ji") # use _require_from_serialized to ensure that the test fails if # the module doesn't reload from the image: @test_logs (:warn, "Replacing module `$Foo_module`") begin @@ -217,7 +219,7 @@ try [:Base64, :CRC32c, :Dates, :DelimitedFiles, :Distributed, :FileWatching, :Markdown, :Future, :IterativeEigensolvers, :Libdl, :LinearAlgebra, :Logging, :Mmap, :Printf, :Profile, :Random, :Serialization, :SharedArrays, :SparseArrays, :SuiteSparse, :Test, - :Unicode, :REPL, :InteractiveUtils, :Pkg, :LibGit2, :SHA, :UUIDs])) + :Unicode, :REPL, :InteractiveUtils, :Pkg, :Pkg3, :LibGit2, :SHA, :UUIDs, :Sockets])) @test discard_module.(deps) == deps1 @test current_task()(0x01, 0x4000, 0x30031234) == 2 @@ -293,36 +295,36 @@ try """) Base.compilecache(Base.PkgId("FooBar")) - @test isfile(joinpath(dir, "FooBar.ji")) - @test Base.stale_cachefile(FooBar_file, joinpath(dir, "FooBar.ji")) isa Vector + @test isfile(joinpath(cachedir, "FooBar.ji")) + @test Base.stale_cachefile(FooBar_file, joinpath(cachedir, "FooBar.ji")) isa Vector @test !isdefined(Main, :FooBar) @test !isdefined(Main, :FooBar1) relFooBar_file = joinpath(dir, "subfolder", "..", "FooBar.jl") - @test Base.stale_cachefile(relFooBar_file, joinpath(dir, "FooBar.ji")) isa (Sys.iswindows() ? Vector : Bool) # `..` is not a symlink on Windows + @test Base.stale_cachefile(relFooBar_file, joinpath(cachedir, "FooBar.ji")) isa (Sys.iswindows() ? Vector : Bool) # `..` is not a symlink on Windows mkdir(joinpath(dir, "subfolder")) - @test Base.stale_cachefile(relFooBar_file, joinpath(dir, "FooBar.ji")) isa Vector + @test Base.stale_cachefile(relFooBar_file, joinpath(cachedir, "FooBar.ji")) isa Vector @eval using FooBar fb_uuid = Base.module_build_id(FooBar) sleep(2); touch(FooBar_file) - insert!(Base.LOAD_CACHE_PATH, 1, dir2) - @test Base.stale_cachefile(FooBar_file, joinpath(dir, "FooBar.ji")) === true + insert!(DEPOT_PATH, 1, dir2) + @test Base.stale_cachefile(FooBar_file, joinpath(cachedir, "FooBar.ji")) === true @eval using FooBar1 - @test !isfile(joinpath(dir2, "FooBar.ji")) - @test !isfile(joinpath(dir, "FooBar1.ji")) - @test isfile(joinpath(dir2, "FooBar1.ji")) - @test Base.stale_cachefile(FooBar_file, joinpath(dir, "FooBar.ji")) === true - @test Base.stale_cachefile(FooBar1_file, joinpath(dir2, "FooBar1.ji")) isa Vector + @test !isfile(joinpath(cachedir2, "FooBar.ji")) + @test !isfile(joinpath(cachedir, "FooBar1.ji")) + @test isfile(joinpath(cachedir2, "FooBar1.ji")) + @test Base.stale_cachefile(FooBar_file, joinpath(cachedir, "FooBar.ji")) === true + @test Base.stale_cachefile(FooBar1_file, joinpath(cachedir2, "FooBar1.ji")) isa Vector @test fb_uuid == Base.module_build_id(FooBar) fb_uuid1 = Base.module_build_id(FooBar1) @test fb_uuid != fb_uuid1 # test checksum - open(joinpath(dir2, "FooBar1.ji"), "a") do f + open(joinpath(cachedir2, "FooBar1.ji"), "a") do f write(f, 0x076cac96) # append 4 random bytes end - @test Base.stale_cachefile(FooBar1_file, joinpath(dir2, "FooBar1.ji")) === true + @test Base.stale_cachefile(FooBar1_file, joinpath(cachedir2, "FooBar1.ji")) === true # test behavior of precompile modules that throw errors FooBar2_file = joinpath(dir, "FooBar2.jl") @@ -373,10 +375,10 @@ try end """) rm(FooBarT_file) - @test Base.stale_cachefile(FooBarT2_file, joinpath(dir2, "FooBarT2.ji")) === true + @test Base.stale_cachefile(FooBarT2_file, joinpath(cachedir2, "FooBarT2.ji")) === true @test Base.require(Main, :FooBarT2) isa Module finally - splice!(Base.LOAD_CACHE_PATH, 1:2) + splice!(DEPOT_PATH, 1:2) splice!(LOAD_PATH, 1) rm(dir, recursive=true) rm(dir2, recursive=true) @@ -398,7 +400,7 @@ let dir = mktempdir(), eval(quote insert!(LOAD_PATH, 1, $(dir)) - insert!(Base.LOAD_CACHE_PATH, 1, $(dir)) + insert!(DEPOT_PATH, 1, $(dir)) Base.compilecache(Base.PkgId("Time4b3a94a1a081a8cb")) end) @@ -406,7 +408,7 @@ let dir = mktempdir(), testcode = """ insert!(LOAD_PATH, 1, $(repr(dir))) - insert!(Base.LOAD_CACHE_PATH, 1, $(repr(dir))) + insert!(DEPOT_PATH, 1, $(repr(dir))) using $Time_module getfield($Time_module, :time) """ @@ -421,7 +423,7 @@ let dir = mktempdir(), @test parse(Float64, t1_no) < parse(Float64, t2_no) finally - splice!(Base.LOAD_CACHE_PATH, 1) + splice!(DEPOT_PATH, 1) splice!(LOAD_PATH, 1) rm(dir, recursive=true) end @@ -448,7 +450,7 @@ let dir = mktempdir() testcode = """ insert!(LOAD_PATH, 1, $(repr(dir))) - insert!(Base.LOAD_CACHE_PATH, 1, $(repr(dir))) + insert!(DEPOT_PATH, 1, $(repr(dir))) using $Test_module """ @@ -481,7 +483,7 @@ end let dir = mktempdir() try insert!(LOAD_PATH, 1, dir) - insert!(Base.LOAD_CACHE_PATH, 1, dir) + insert!(DEPOT_PATH, 1, dir) loaded_modules = Channel{Symbol}(32) callback = (mod::Base.PkgId) -> put!(loaded_modules, Symbol(mod.name)) @@ -521,7 +523,7 @@ let dir = mktempdir() @test take!(loaded_modules) == Test3_module finally pop!(Base.package_callbacks) - splice!(Base.LOAD_CACHE_PATH, 1) + splice!(DEPOT_PATH, 1) splice!(LOAD_PATH, 1) rm(dir, recursive=true) end @@ -563,7 +565,7 @@ end @everywhere test_workers begin pushfirst!(LOAD_PATH, $load_path) - pushfirst!(Base.LOAD_CACHE_PATH, $load_cache_path) + pushfirst!(DEPOT_PATH, $load_cache_path) end try @eval using $ModuleB @@ -579,7 +581,7 @@ end finally @everywhere test_workers begin popfirst!(LOAD_PATH) - popfirst!(Base.LOAD_CACHE_PATH) + popfirst!(DEPOT_PATH) end end finally @@ -594,7 +596,7 @@ end (f -> f())() do # wrap in function scope, so we can test world errors dir = mktempdir() insert!(LOAD_PATH, 1, dir) -insert!(Base.LOAD_CACHE_PATH, 1, dir) +insert!(DEPOT_PATH, 1, dir) try A_module = :Aedb164bd3a126418 B_module = :Bedb164bd3a126418 @@ -642,7 +644,7 @@ try @test Base.invokelatest(B.bnopc, 1) == Base.invokelatest(B.bnopc, 1.0) == 2 finally popfirst!(LOAD_PATH) - popfirst!(Base.LOAD_CACHE_PATH) + popfirst!(DEPOT_PATH) rm(dir, recursive=true) end @@ -662,7 +664,7 @@ let """) pushfirst!(LOAD_PATH, load_path) - pushfirst!(Base.LOAD_CACHE_PATH, load_cache_path) + pushfirst!(DEPOT_PATH, load_cache_path) l0 = length(Base.package_callbacks) @eval using $ModuleA @@ -700,7 +702,7 @@ let """) pushfirst!(LOAD_PATH, load_path) - pushfirst!(Base.LOAD_CACHE_PATH, load_cache_path) + pushfirst!(DEPOT_PATH, load_cache_path) Base.compilecache(Base.PkgId("A25604")) @test_nowarn @eval using A25604 diff --git a/test/compiler/compiler.jl b/test/compiler/compiler.jl index 0e98dd31d242d1..d6c107b3f669b1 100644 --- a/test/compiler/compiler.jl +++ b/test/compiler/compiler.jl @@ -169,12 +169,12 @@ mutable struct A14009{T}; end A14009(a::T) where {T} = A14009{T}() f14009(a) = rand(Bool) ? f14009(A14009(a)) : a code_typed(f14009, (Int,)) -code_llvm(DevNull, f14009, (Int,)) +code_llvm(devnull, f14009, (Int,)) mutable struct B14009{T}; end g14009(a) = g14009(B14009{a}) code_typed(g14009, (Type{Int},)) -code_llvm(DevNull, f14009, (Int,)) +code_llvm(devnull, f14009, (Int,)) # issue #9232 @@ -188,7 +188,7 @@ result_type9232(::Type{T1}, ::Type{T2}) where {T1<:Number,T2<:Number} = arithtyp function g10878(x; kw...); end invoke_g10878() = invoke(g10878, Tuple{Any}, 1) code_typed(invoke_g10878, ()) -code_llvm(DevNull, invoke_g10878, ()) +code_llvm(devnull, invoke_g10878, ()) # issue #10930 @@ -1063,25 +1063,25 @@ function test_const_return(@nospecialize(f), @nospecialize(t), @nospecialize(val end end -function find_call(code, func, narg) - for ex in code +function find_call(code::Core.CodeInfo, @nospecialize(func), narg) + for ex in code.code + Meta.isexpr(ex, :(=)) && (ex = ex.args[2]) isa(ex, Expr) || continue - ex = ex::Expr if ex.head === :call && length(ex.args) == narg farg = ex.args[1] if isa(farg, GlobalRef) - farg = farg::GlobalRef if isdefined(farg.mod, farg.name) && isconst(farg.mod, farg.name) - farg = getfield(farg.mod, farg.name) + farg = typeof(getfield(farg.mod, farg.name)) end + elseif isa(farg, Core.SSAValue) + farg = code.ssavaluetypes[farg.id + 1] + else + farg = typeof(farg) end - if farg === func + if farg === typeof(func) return true end - elseif Core.Compiler.is_meta_expr(ex) - continue end - find_call(ex.args, func, narg) && return true end return false end @@ -1096,24 +1096,24 @@ test_const_return(()->sizeof(1 < 2), Tuple{}, 1) # Make sure Core.sizeof with a ::DataType as inferred input type is inferred but not constant. function sizeof_typeref(typeref) - Core.sizeof(typeref[]) + return Core.sizeof(typeref[]) end @test @inferred(sizeof_typeref(Ref{DataType}(Int))) == sizeof(Int) -@test find_call(first(code_typed(sizeof_typeref, (Ref{DataType},))[1]).code, Core.sizeof, 2) +@test find_call(first(code_typed(sizeof_typeref, (Ref{DataType},))[1]), Core.sizeof, 2) # Constant `Vector` can be resized and shouldn't be optimized to a constant. const constvec = [1, 2, 3] @eval function sizeof_constvec() - Core.sizeof($constvec) + return Core.sizeof($constvec) end @test @inferred(sizeof_constvec()) == sizeof(Int) * 3 -@test find_call(first(code_typed(sizeof_constvec, ())[1]).code, Core.sizeof, 2) +@test find_call(first(code_typed(sizeof_constvec, ())[1]), Core.sizeof, 2) push!(constvec, 10) @test @inferred(sizeof_constvec()) == sizeof(Int) * 4 test_const_return((x)->isdefined(x, :re), Tuple{ComplexF64}, true) isdefined_f3(x) = isdefined(x, 3) @test @inferred(isdefined_f3(())) == false -@test find_call(first(code_typed(isdefined_f3, Tuple{Tuple{Vararg{Int}}})[1]).code, isdefined, 3) +@test find_call(first(code_typed(isdefined_f3, Tuple{Tuple{Vararg{Int}}})[1]), isdefined, 3) let isa_tfunc = Core.Compiler.T_FFUNC_VAL[ findfirst(x->x===isa, Core.Compiler.T_FFUNC_KEY)][3] @@ -1418,3 +1418,8 @@ function h25579(g) end @test Base.return_types(h25579, (Base.RefValue{Union{Nothing, Int}},)) == Any[Union{Type{Float64}, Type{Int}, Type{Nothing}}] + +f26172(v) = Val{length(Base.tail(ntuple(identity, v)))}() # Val(M-1) +g26172(::Val{0}) = () +g26172(v) = (nothing, g26172(f26172(v))...) +@test @inferred(g26172(Val(10))) === ntuple(_ -> nothing, 10) diff --git a/test/compiler/ssair.jl b/test/compiler/ssair.jl new file mode 100644 index 00000000000000..a1e429dcd3149e --- /dev/null +++ b/test/compiler/ssair.jl @@ -0,0 +1,25 @@ +using Core.IR +const Compiler = Core.Compiler + +let code = Any[ + Expr(:gotoifnot, SlotNumber(2), 4), + LabelNode(2), + Expr(:(=), SlotNumber(3), 2), + LabelNode(4), + # Test a SlotNumber as a value of a PhiNode + Expr(:(=), SSAValue(0), PhiNode(Any[2,3], Any[1, SlotNumber(3)])), + Expr(:return, SSAValue(0)) +] + + ci = eval(Expr(:new, CodeInfo, + code, + nothing, + Any[Any, Any, Any], + Any[Any], + UInt8[0, 0, 0], + Any[Symbol("Self"), :arg, :slot], + false, false, false, false + )) + + Compiler.run_passes(ci, 1, Compiler.LineInfoNode[Compiler.NullLineInfo]) +end \ No newline at end of file diff --git a/test/copy.jl b/test/copy.jl index 80052a1cc6465c..fd0128c2a661ac 100644 --- a/test/copy.jl +++ b/test/copy.jl @@ -153,4 +153,14 @@ end @test bar2.foo ∈ keys(bar2.fooDict) @test bar2.fooDict[bar2.foo] != nothing end + + let d = IdDict(rand(2) => rand(2) for i = 1:100) + d2 = deepcopy(d) + for k in keys(d2) + @test haskey(d2, k) + end + for k in keys(d) + @test haskey(d, k) + end + end end diff --git a/test/core.jl b/test/core.jl index 62b32ebee31995..f68234ca609fdd 100644 --- a/test/core.jl +++ b/test/core.jl @@ -526,11 +526,11 @@ function f21900() x = 0 end global f21900_cnt += 1 - x + x # should be global global f21900_cnt += -1000 nothing end -@test_throws UndefVarError f21900() +@test_throws UndefVarError(:x) f21900() @test f21900_cnt == 1 # use @eval so this runs as a toplevel scope block @@ -2559,7 +2559,7 @@ end === nothing # issue #10221 module GCbrokentype using InteractiveUtils -OLD_STDOUT = STDOUT +OLD_STDOUT = stdout fname = tempname() file = open(fname, "w") redirect_stdout(file) @@ -3857,14 +3857,14 @@ foo9677(x::Array) = invoke(foo9677, Tuple{AbstractArray}, x) # issue #6846 f6846() = (please6846; 2) -@test_throws UndefVarError f6846() +@test_throws UndefVarError(:please6846) f6846() module M6846 macro f() - return :(please6846; 2) + return esc(:(please6846; 2)) end end -@test_throws UndefVarError @M6846.f() +@test_throws UndefVarError(:please6846) @M6846.f() # issue #14758 @test isa(@eval(f14758(; $([]...)) = ()), Function) @@ -4374,7 +4374,7 @@ end @test f16158("abc") == "abcaba" # LLVM verifier error for noreturn function -# the `code_llvm(DevNull, ...)` tests are only meaningful on debug build +# the `code_llvm(devnull, ...)` tests are only meaningful on debug build # with verifier on (but should still pass on release build). module TestSSA16244 @@ -4390,7 +4390,7 @@ function f1(a) end b[1] end -code_llvm(DevNull, f1, Tuple{Bool}) +code_llvm(devnull, f1, Tuple{Bool}) @test f1(true) == 2 @test_throws DivideError f1(false) @@ -4405,7 +4405,7 @@ function f2(a) end b[1] end -code_llvm(DevNull, f2, Tuple{Bool}) +code_llvm(devnull, f2, Tuple{Bool}) @test f2(true) == 2 @test_throws ErrorException f2(false) @@ -4416,7 +4416,7 @@ function f3(a) end b[1] end -code_llvm(DevNull, f3, Tuple{Bool}) +code_llvm(devnull, f3, Tuple{Bool}) @test f3(true) == 2 ex = try f3(false) @@ -4435,7 +4435,7 @@ function f4(a, p) end b[1] end -code_llvm(DevNull, f4, Tuple{Bool,Ptr{Cvoid}}) +code_llvm(devnull, f4, Tuple{Bool,Ptr{Cvoid}}) @test f4(true, C_NULL) == 2 @test_throws UndefRefError f4(false, C_NULL) @@ -4447,7 +4447,7 @@ function f5(a) end b[1] end -code_llvm(DevNull, f5, Tuple{Bool}) +code_llvm(devnull, f5, Tuple{Bool}) @test f5(true) == 2 @test f5(false) == 1 @@ -4458,7 +4458,7 @@ function f6(a) end b[1] end -code_llvm(DevNull, f6, Tuple{Bool}) +code_llvm(devnull, f6, Tuple{Bool}) @test f6(true) == 2 @test f6(false) == 1 @@ -4471,7 +4471,7 @@ function f7(a) end b[1] end -code_llvm(DevNull, f7, Tuple{Bool}) +code_llvm(devnull, f7, Tuple{Bool}) @test f7(true) == 2 @test_throws TypeError f7(false) @@ -4484,7 +4484,7 @@ function f8(a, c) end b[1] end -code_llvm(DevNull, f8, Tuple{Bool,Int}) +code_llvm(devnull, f8, Tuple{Bool,Int}) @test f8(true, 1) == 2 @test_throws TypeError f8(false, 1) @@ -4498,7 +4498,7 @@ function f9(a) end b[1] end -code_llvm(DevNull, f9, Tuple{Bool}) +code_llvm(devnull, f9, Tuple{Bool}) @test f9(true) == 2 ex = try f9(false) @@ -4580,10 +4580,10 @@ end B14878(ng) = B14878() function trigger14878() w = A14878() - w.ext[:14878] = B14878(junk) # junk not defined! + w.ext[:14878] = B14878(junk) # global junk not defined! return w end -@test_throws UndefVarError trigger14878() +@test_throws UndefVarError(:junk) trigger14878() # issue #1090 function f1090(x)::Int @@ -4852,6 +4852,23 @@ f18095(::Number, ::Int) = 0x12 @test_throws MethodError invoke(f18095, Tuple{Int, Any}, 1, 2) @test invoke(f18095, Tuple{Int, Real}, 1, 2) === 0x21 +# `invoke` with non-constant function +struct CassetteLikeWrapper{F} + x + f::F +end +(foo::CassetteLikeWrapper)(args...) = foo.f(args...) +(foo::CassetteLikeWrapper)(x) = invoke(foo, Tuple{Vararg{Any}}, x) +@test CassetteLikeWrapper(1,-)(2) == -2 + +f26301(x) = 1 +f26301(x::Int) = 2 +function g26301() + f = Any[f26301][1] + invoke(f, Tuple{Any}, 0) +end +@test g26301() == 1 + # issue #10981, long argument lists let a = fill(["sdf"], 2*10^6), temp_vcat(x...) = vcat(x...) # we introduce a new function `temp_vcat` to make sure there is no existing diff --git a/test/deprecation_exec.jl b/test/deprecation_exec.jl index 0b68806668d207..86ae275dcb0ec4 100644 --- a/test/deprecation_exec.jl +++ b/test/deprecation_exec.jl @@ -209,6 +209,18 @@ end # #6080 @test_deprecated r"Syntax `&argument`.*is deprecated" Meta.lower(@__MODULE__, :(ccall(:a, Cvoid, (Cint,), &x))) + @test_logs eval(:(module DotEqualsDep + a=[1,2] + a.=3 + 0 + end)) + @test_logs include_string(@__MODULE__, """ + a=[1,2] + a.=3 + 0""") + @test_deprecated include_string(@__MODULE__, """ + a=[1,2] + a.=3""") end module LogTest @@ -266,17 +278,17 @@ end @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest, :bar; kind=:info) +logging(devnull, LogTest, :bar; kind=:info) @test all(contains.(sprint(LogTest.bar), ["WARNING: barwarn", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest; kind=:info) +logging(devnull, LogTest; kind=:info) @test all(contains.(sprint(LogTest.bar), ["WARNING: barwarn", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull; kind=:info) +logging(devnull; kind=:info) @test all(contains.(sprint(LogTest.bar), ["WARNING: barwarn", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["WARNING: foowarn", "ERROR: \"fooerror\""])) @@ -287,17 +299,17 @@ logging(kind=:info) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest, :bar; kind=:warn) +logging(devnull, LogTest, :bar; kind=:warn) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest; kind=:warn) +logging(devnull, LogTest; kind=:warn) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull; kind=:warn) +logging(devnull; kind=:warn) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "ERROR: \"barerror\""])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "ERROR: \"fooerror\""])) @@ -308,17 +320,17 @@ logging(kind=:warn) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest, :bar; kind=:error) +logging(devnull, LogTest, :bar; kind=:error) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "WARNING: barwarn"])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest; kind=:error) +logging(devnull, LogTest; kind=:error) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "WARNING: barwarn"])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn"])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull; kind=:error) +logging(devnull; kind=:error) @test all(contains.(sprint(LogTest.bar), ["INFO: barinfo", "WARNING: barwarn"])) @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn"])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn"])) @@ -329,17 +341,17 @@ logging(kind=:error) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest, :bar) +logging(devnull, LogTest, :bar) @test sprint(LogTest.bar) == "" @test all(contains.(sprint(LogTest.pooh), ["INFO: poohinfo", "WARNING: poohwarn", "ERROR: \"pooherror\""])) @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull, LogTest) +logging(devnull, LogTest) @test sprint(LogTest.bar) == "" @test sprint(LogTest.pooh) == "" @test all(contains.(sprint(foo), ["INFO: fooinfo", "WARNING: foowarn", "ERROR: \"fooerror\""])) -logging(DevNull) +logging(devnull) @test sprint(LogTest.bar) == "" @test sprint(LogTest.pooh) == "" @test sprint(foo) == "" diff --git a/test/embedding/embedding-test.jl b/test/embedding/embedding-test.jl index a36f5a0ef3f401..2be2842ac89674 100644 --- a/test/embedding/embedding-test.jl +++ b/test/embedding/embedding-test.jl @@ -10,16 +10,16 @@ end @test length(ARGS) == 1 @testset "embedding example" begin - stdout = Pipe() - stderr = Pipe() - p = spawn(pipeline(Cmd(ARGS), stdin=DevNull, stdout=stdout, stderr=stderr)) - close(stdout.in) - close(stderr.in) - stdout_task = @async readlines(stdout) - stderr = read(stderr, String) - @test stderr == "MethodError: no method matching this_function_has_no_methods()\n" + out = Pipe() + err = Pipe() + p = run(pipeline(Cmd(ARGS), stdin=devnull, stdout=out, stderr=err), wait=false) + close(out.in) + close(err.in) + out_task = @async readlines(out) + err = read(err, String) + @test err == "MethodError: no method matching this_function_has_no_methods()\n" @test success(p) - lines = fetch(stdout_task) + lines = fetch(out_task) @test length(lines) == 10 @test parse(Float64, lines[1]) ≈ sqrt(2) @test lines[8] == "called bar" diff --git a/test/embedding/embedding.c b/test/embedding/embedding.c index dff95a69dc08f4..12dde4be3bde87 100644 --- a/test/embedding/embedding.c +++ b/test/embedding/embedding.c @@ -163,10 +163,6 @@ int main() // locate files relative to the "embedding" executable " stdlib = filter(env -> startswith(Base.find_package(Base, \"Distributed\"), env), Base.load_path())[end]\n" " push!(empty!(LOAD_PATH), dir, stdlib)\n" - // this directory needs to be writable for the example, - // although in real code it usually wouldn't necessarily be used that way - " empty!(Base.LOAD_CACHE_PATH)\n" - " push!(Base.LOAD_CACHE_PATH, tempdir())\n" "end" ); checked_eval_string("import LocalModule"); diff --git a/test/error.jl b/test/error.jl index 818a0c7404fa8d..d87f2730aa06e2 100644 --- a/test/error.jl +++ b/test/error.jl @@ -66,6 +66,11 @@ end @test ex.msg == "foo" @test c[1] == 1 + # Test example in docstring where the check function doesn't return the state. + c = [0] + @test retry(foo_error, check=(s,e)->e.msg == "foo")(c,1) == 7 + @test c[1] == 2 + # Functions with keyword arguments foo_kwargs(x; y=5) = x + y @test retry(foo_kwargs)(3) == 8 diff --git a/test/examples.jl b/test/examples.jl index 74c75030d300e7..04d1b54d0025ed 100644 --- a/test/examples.jl +++ b/test/examples.jl @@ -42,7 +42,7 @@ include(joinpath(dir, "queens.jl")) if Sys.isunix() script = joinpath(dir, "clustermanager/simple/test_simple.jl") cmd = `$(Base.julia_cmd()) --startup-file=no $script` - if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) && ccall(:jl_running_on_valgrind,Cint,()) == 0 + if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) && ccall(:jl_running_on_valgrind,Cint,()) == 0 error("UnixDomainCM failed test, cmd : $cmd") end end diff --git a/test/file.jl b/test/file.jl index 3fd32351032b83..6f18411f3a02ab 100644 --- a/test/file.jl +++ b/test/file.jl @@ -1004,13 +1004,13 @@ function test_13559() write(x, 0xaa) end flush(x) - Test.@test read(STDIN, Int8) == 31 + Test.@test read(stdin, Int8) == 31 for i in 1:7 write(x, 0xaa) end close(x) """ - p = open(pipeline(`$(Base.julia_cmd()) --startup-file=no -e $writer_cmds`, stderr=STDERR), "w") + p = open(pipeline(`$(Base.julia_cmd()) --startup-file=no -e $writer_cmds`, stderr=stderr), "w") # quickly read FIFO, draining it and blocking but not failing with EOFError yet r = open(fn, "r") # 15 proper reads @@ -1040,11 +1040,11 @@ if !Sys.iswindows() && !(Sys.isbsd() && !Sys.isapple()) x = open($(repr(fn)), "w") write(x, 0x42) flush(x) - Test.@test read(STDIN, Int8) == 21 + Test.@test read(stdin, Int8) == 21 close(x) """ cmd = `$(Base.julia_cmd()) --startup-file=no -e $script` - p = open(pipeline(cmd, stderr=STDERR), "w") + p = open(pipeline(cmd, stderr=stderr), "w") r = open(fn, "r") @test read(r, Int8) == 66 diff --git a/test/floatfuncs.jl b/test/floatfuncs.jl index c6ca32200279e5..00f1b257941541 100644 --- a/test/floatfuncs.jl +++ b/test/floatfuncs.jl @@ -79,11 +79,11 @@ end @testset "significant digits" begin # (would be nice to have a smart vectorized # version of signif) - @test signif(123.456,1) ≈ 100. - @test signif(123.456,3) ≈ 123. - @test signif(123.456,5) ≈ 123.46 - @test signif(123.456,8,2) ≈ 123.5 - @test signif(123.456,2,4) ≈ 128.0 + @test signif(123.456, 1) ≈ 100. + @test signif(123.456, 3) ≈ 123. + @test signif(123.456, 5) ≈ 123.46 + @test signif(123.456, 8, base = 2) ≈ 123.5 + @test signif(123.456, 2, base = 4) ≈ 128.0 @test signif(0.0, 1) === 0.0 @test signif(-0.0, 1) === -0.0 @test signif(1.2, 2) === 1.2 diff --git a/test/inline.jl b/test/inline.jl index 4cc35d55e439fc..8475e3d90acf16 100644 --- a/test/inline.jl +++ b/test/inline.jl @@ -67,7 +67,7 @@ function bar12620() foo_inl(i==1) end end -@test_throws UndefVarError bar12620() +@test_throws UndefVarError(:y) bar12620() # issue #16165 @inline f16165(x) = (x = UInt(x) + 1) diff --git a/test/intfuncs.jl b/test/intfuncs.jl index dcf9653bbb3800..484fd47c3cbad9 100644 --- a/test/intfuncs.jl +++ b/test/intfuncs.jl @@ -142,23 +142,23 @@ end @test all(n -> n == 1, ndigits(x, b) for b in [-20:-2;2:20] for x in [true, false]) end @testset "bin/oct/dec/hex/bits" begin - @test bin('3') == "110011" - @test bin('3',7) == "0110011" - @test bin(3) == "11" - @test bin(3, 2) == "11" - @test bin(3, 3) == "011" - @test bin(-3) == "-11" - @test bin(-3, 3) == "-011" + @test string(UInt32('3'), base = 2) == "110011" + @test string(UInt32('3'), pad = 7, base = 2) == "0110011" + @test string(3, base = 2) == "11" + @test string(3, pad = 2, base = 2) == "11" + @test string(3, pad = 3, base = 2) == "011" + @test string(-3, base = 2) == "-11" + @test string(-3, pad = 3, base = 2) == "-011" - @test oct(9) == "11" - @test oct(-9) == "-11" + @test string(9, base = 8) == "11" + @test string(-9, base = 8) == "-11" - @test dec(121) == "121" + @test string(121, base = 10) == "121" - @test hex(12) == "c" - @test hex(-12, 3) == "-00c" + @test string(12, base = 16) == "c" + @test string(-12, pad = 3, base = 16) == "-00c" - @test base(2, 5, 7) == "0000101" + @test string(5, pad = 7, base = 2) == "0000101" @test bitstring(Int16(3)) == "0000000000000011" @test bitstring('3') == "00110011000000000000000000000000" @@ -177,7 +177,7 @@ end @test digits(T(-8163), base = -10) == [7, 7, 9, 9] end end - @test [base(b, n) + @test [string(n, base = b) for n = [-10^9, -10^5, -2^20, -2^10, -100, -83, -50, -34, -27, -16, -7, -3, -2, -1, 0, 1, 2, 3, 4, 7, 16, 27, 34, 50, 83, 100, 2^10, 2^20, 10^5, 10^9] for b = [-2, -3, -7, -10, -60]] == diff --git a/test/llvmcall.jl b/test/llvmcall.jl index 7d30ff33645aca..ddc67eb7ac84e5 100644 --- a/test/llvmcall.jl +++ b/test/llvmcall.jl @@ -189,7 +189,7 @@ if Base.libllvm_version >= v"3.6" # llvm 3.6 changed the syntax for a gep, so ju ret void""", Cvoid, Tuple{}) end - code_llvm(DevNull, foo, ()) + code_llvm(devnull, foo, ()) else @info "Skipping gep parentage test on llvm < 3.6" end diff --git a/test/loading.jl b/test/loading.jl index 54f87b34f3f65a..83b01834ad4198 100644 --- a/test/loading.jl +++ b/test/loading.jl @@ -79,7 +79,7 @@ mktempdir() do dir end end -import Base: SHA1, PkgId, load_path, identify_package, locate_package, version_slug +import Base: SHA1, PkgId, load_path, identify_package, locate_package, version_slug, dummy_uuid import UUIDs: UUID, uuid4, uuid_version import Random: shuffle, randstring using Test @@ -176,215 +176,6 @@ end @test Foo.which == "path" end -function gen_entry_point(entry::String, pkg::PkgId) - mkpath(dirname(entry)) - open(entry, "w") do io - print(io, """ - __precompile__(true) - module $(pkg.name) - uuid = $(pkg.uuid === nothing ? "nothing" : "Base.UUID(\"$(pkg.uuid)\")") - name = "$(pkg.name)" - end - """) - end -end - -function gen_project_file(project_file::String, pkg::PkgId, deps::Pair{String,UUID}...) - mkpath(dirname(project_file)) - open(project_file, "w") do io - println(io, "name = $(repr(pkg.name))") - pkg.uuid !== nothing && println(io, "uuid = $(repr(string(pkg.uuid)))") - println(io, "\n[deps]") - for (name, uuid) in deps - println(io, "$name = ", repr(string(uuid))) - end - end -end - -function gen_implicit(dir::String, pkg::PkgId, proj::Bool, deps::Pair{String,UUID}...) - entry_point = joinpath(dir, pkg.name, "src", "$(pkg.name).jl") - gen_entry_point(entry_point, pkg) - proj && gen_project_file(joinpath(dir, pkg.name, "Project.toml"), pkg, deps...) - return entry_point -end - -function gen_depot_ver(depot::String, pkg::PkgId, deps::Pair{String,UUID}...) - pkg.uuid === nothing && return nothing, nothing - tree = SHA1(rand(UInt8, 20)) # fake tree hash - dir = joinpath(depot, "packages", version_slug(pkg.uuid, tree)) - entry = joinpath(dir, "src", "$(pkg.name).jl") - gen_entry_point(entry, pkg) - gen_project_file(joinpath(dir, "Project.toml"), pkg, deps...) - return tree, entry -end - -let n = 0 - global function gen_explicit(dir::String, pkg::PkgId=PkgId("Env$(n += 1)")) - gen_project_file(joinpath(dir, "Project.toml"), pkg) - close(open(joinpath(dir, "Manifest.toml"), "w")) - end -end - -function gen_manifest(dir::String, name::String, uuid::UUID, tree::SHA1, - deps::Pair{String,UUID}...; toplevel::Bool = true) - toplevel && open(joinpath(dir, "Project.toml"), "a") do io - println(io, "$name = \"$uuid\"") - end - open(joinpath(dir, "Manifest.toml"), "a") do io - println(io, "[[$name]]") - println(io, "uuid = \"$uuid\"") - println(io, "git-tree-sha1 = \"$(bytes2hex(tree.bytes))\"") - if !isempty(deps) - println(io, " [$name.deps]") - for (n, u) in deps - println(io, " $n = \"$u\"") - end - end - println(io) - end -end - -false && let name = "Flarp" -uuidA = UUID("b2cb3794-8625-4058-bcde-7eeb13ac1c8b") -uuidB = UUID("1513c021-3639-4616-a37b-ee45c9d2f773") -uuids = [nothing, uuidA, uuidB] - -ft(::UUID) = true:true -ft(::Nothing) = false:true - -@testset "direct dependency loading: implict + implicit" begin - for uuid1 in uuids, proj1 in ft(uuid1), - uuid2 in uuids, proj2 in ft(uuid2) - pkg1 = uuid1 === nothing ? PkgId(name) : PkgId(uuid1, name) - pkg2 = uuid2 === nothing ? PkgId(name) : PkgId(uuid2, name) - empty!(LOAD_PATH) - mktempdir() do dir1 - push!(LOAD_PATH, dir1) - path1 = gen_implicit(dir1, pkg1, proj1) - @test identify_package(name) == pkg1 - @test locate_package(pkg1) == path1 - path = uuid1 == coalesce(uuid2, uuid1) ? path1 : nothing - @test locate_package(pkg2) == path - mktempdir() do dir2 - push!(LOAD_PATH, dir2) - path2 = gen_implicit(dir2, pkg2, proj2) - @test identify_package(name) == pkg1 - @test locate_package(pkg1) == path1 - path = uuid1 == coalesce(uuid2, uuid1) ? path1 : path2 - @test locate_package(pkg2) == path - end - end - end -end - -@testset "direct dependency loading: explicit + explicit" begin - mktempdir() do depot - push!(empty!(DEPOT_PATH), depot) - pkgs = [PkgId(uuid, name) for uuid in uuids] - pairs = [gen_depot_ver(depot, pkg) for pkg in pkgs, _ in 1:2] - trees = first.(pairs) - paths = last.(pairs) - for i = 1:length(uuids), k = 1:2, - j = 1:length(uuids), l = 1:2 - uuids[i] !== nothing && uuids[j] !== nothing || continue - empty!(LOAD_PATH) - mktempdir() do dir1 - push!(LOAD_PATH, dir1) - gen_explicit(dir1) - gen_manifest(dir1, name, uuids[i], trees[i,k]) - @test identify_package(name) == pkgs[i] - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == uuids[j] ? paths[i,k] : nothing - @test locate_package(pkgs[j]) == path - mktempdir() do dir2 - push!(LOAD_PATH, dir2) - gen_explicit(dir2) - gen_manifest(dir2, name, uuids[j], trees[j,l]) - @test identify_package(name) == pkgs[i] - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == uuids[j] ? paths[i,k] : paths[j,l] - @test locate_package(pkgs[j]) == path - end - end - end - end -end - -@testset "direct dependency loading: explicit + implicit" begin - mktempdir() do depot - push!(empty!(DEPOT_PATH), depot) - pkgs = [PkgId(uuid, name) for uuid in uuids] - pairs = [gen_depot_ver(depot, pkg) for pkg in pkgs, _ in 1:2] - trees = first.(pairs) - paths = last.(pairs) - for i = 1:length(uuids), k = 1:2, - j = 1:length(uuids), l = 1:2, proj in ft(uuids[j]) - uuids[i] !== nothing || continue - empty!(LOAD_PATH) - mktempdir() do dir1 - push!(LOAD_PATH, dir1) - gen_explicit(dir1) - gen_manifest(dir1, name, uuids[i], trees[i,k]) - @test identify_package(name) == pkgs[i] - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == coalesce(uuids[j], uuids[i]) ? paths[i,k] : nothing - @test locate_package(pkgs[j]) == path - mktempdir() do dir2 - push!(LOAD_PATH, dir2) - path2 = gen_implicit(dir2, pkgs[j], proj) - @test identify_package(name) == pkgs[i] - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == coalesce(uuids[j], uuids[i]) ? paths[i,k] : path2 - @test locate_package(pkgs[j]) == path - end - end - end - end -end - -uuidT = UUID("a54bd003-d8dc-4161-b186-d5516cd448e9") - -@testset "indirect dependency loading: explicit + explicit" begin - mktempdir() do depot - push!(empty!(DEPOT_PATH), depot) - # generate top-level package - top = PkgId(uuidT, "TopLevel") - top_tree, _ = gen_depot_ver(depot, top) - # generate dependency packages - pkgs = [PkgId(uuid, name) for uuid in uuids] - pairs = [gen_depot_ver(depot, pkg) for pkg in pkgs, _ in 1:2] - trees = first.(pairs) - paths = last.(pairs) - for i = 1:length(uuids), k = 1:2, s = false:true, - j = 1:length(uuids), l = 1:2, t = false:true - uuids[i] !== nothing && uuids[j] !== nothing || continue - empty!(LOAD_PATH) - mktempdir() do dir1 - push!(LOAD_PATH, dir1) - gen_explicit(dir1) - gen_manifest(dir1, name, uuids[i], trees[i,k], toplevel=false) - s && gen_manifest(dir1, top.name, top.uuid, top_tree, name => uuids[i]) - @test identify_package(top, name) == (s ? pkgs[i] : nothing) - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == uuids[j] ? paths[i,k] : nothing - @test locate_package(pkgs[j]) == path - mktempdir() do dir2 - push!(LOAD_PATH, dir2) - gen_explicit(dir2) - t && gen_manifest(dir1, top.name, top.uuid, top_tree, name => uuids[j]) - gen_manifest(dir2, name, uuids[j], trees[j,l], toplevel=false) - pkg = (s ? pkgs[i] : t ? pkgs[j] : nothing) - @test identify_package(top, name) == pkg - @test locate_package(pkgs[i]) == paths[i,k] - path = uuids[i] == uuids[j] ? paths[i,k] : paths[j,l] - @test locate_package(pkgs[j]) == path - end - end - end - end -end -end # let - ## systematic generation of test environments ## const M = 3 # number of node names @@ -451,7 +242,31 @@ end # materialize dependency graphs as explicit environments -const envs = Dict{String,eltype(graphs)}() +function make_entry_point(path::String, name::String, uuid::UUID) + mkpath(dirname(path)) + open(path, "w") do io + print(io, """ + module $name + name = $(repr(name)) + uuid = $(repr(string(uuid))) + end + """) + end +end + +function make_env(flat, root, roots, graph, paths, dummies) + pkg(i::Int) = PkgId(KIND[i] == 2 ? UUIDS[i] : get(dummies, i, nothing), L(i)) + return (flat, pkg(root), + Dict(n => pkg(i) for (n, i) in roots), + Dict(pkg(i) => Dict(n => pkg(j) for (n, j) in d) for (i, d) in graph), + Dict{PkgId,Union{Nothing,String}}(pkg(i) => path for (i, path) in paths), + ) +end + +const depots = [mktempdir() for _ = 1:3] +const envs = Dict{String,Any}() + +append!(empty!(DEPOT_PATH), depots) for (flat, root, roots, graph) in graphs if flat @@ -459,19 +274,34 @@ for (flat, root, roots, graph) in graphs all(KIND[i] == 2 for i in keys(graph)) || continue end dir = mktempdir() - envs[dir] = (flat, root, roots, graph) + dummies = Dict{Int,UUID}() + paths = Dict{Int,Union{Nothing,String}}() + root_path = rand([false, true, joinpath("src", "$(randstring()).jl")]) # generate project file - open(joinpath(dir, "Project.toml"), "w") do io + project_file = joinpath(dir, "Project.toml") + open(project_file, "w") do io name, uuid, kind = L(root), UUIDS[root], KIND[root] kind != 0 && println(io, "name = ", repr(name)) kind == 2 && println(io, "uuid = ", repr(string(uuid))) + kind == 1 && (dummies[root] = dummy_uuid(project_file)) + root_path isa String && println(io, "path = ", repr(root_path)) println(io, "[deps]") for (n, i) in roots i == root && continue @assert KIND[i] == 2 println(io, "$n = ", repr(string(UUIDS[i]))) end + kind == 0 && return + # generate entry point + if root_path == false + kind == 2 && (paths[root] = nothing) + else + root_path == true && (root_path = joinpath("src", "$name.jl")) + root_path = joinpath(dir, root_path) + make_entry_point(root_path, name, uuid) + paths[root] = root_path + end end # count manifest entries @@ -489,6 +319,25 @@ for (flat, root, roots, graph) in graphs name, uuid = L(i), UUIDS[i] println(io, "[[$name]]") println(io, "uuid = ", repr(string(uuid))) + if rand() < 2/3 + sha1 = SHA1(rand(UInt8, 20)) + println(io, "git-tree-sha1 = ", repr(string(sha1))) + path = joinpath( + rand(depots), "packages", + name, version_slug(uuid, sha1), + "src", "$name.jl", + ) + make_entry_point(path, name, uuid) + paths[i] = path # may get overwritten below + end + if rand() < 1/4 + path = joinpath("deps", "$(randstring()).jl") + println(io, "path = ", repr(path)) + path = joinpath(dir, path) + make_entry_point(path, name, uuid) + paths[i] = path # may overwrite path above + end + # neither can occur, i.e. no entry in paths deps = delete!(copy(deps), name) isempty(deps) && continue if all(counts[n] == 1 for n in keys(deps)) @@ -502,6 +351,8 @@ for (flat, root, roots, graph) in graphs end end end + + envs[dir] = make_env(flat, root, roots, graph, paths, dummies) end # materialize dependency graphs as implicit environments (if possible) @@ -509,27 +360,23 @@ end for (flat, root, roots, graph) in graphs flat || continue dir = mktempdir() - envs[dir] = (flat, root, roots, graph) + dummies = Dict{Int,UUID}() + paths = Dict{Int,Union{Nothing,String}}() for (name, i) in roots uuid, kind = UUIDS[i], KIND[i] # generate package entry point entry = joinpath(dir, name, "src", "$name.jl") - mkpath(dirname(entry)) - open(entry, "w") do io - print(io, """ - module $name - name = $(repr(name)) - uuid = $(repr(string(uuid))) - end - """) - end + make_entry_point(entry, name, uuid) + paths[i] = entry kind == 0 && continue deps = delete!(copy(graph[i]), name) # generate project file - open(joinpath(dir, name, "Project.toml"), "w") do io + project_file = joinpath(dir, name, "Project.toml") + open(project_file, "w") do io kind != 0 && println(io, "name = ", repr(name)) kind == 2 && println(io, "uuid = ", repr(string(uuid))) + kind != 2 && (dummies[i] = dummy_uuid(project_file)) isempty(deps) || println(io, "[deps]") for (n, j) in deps @assert KIND[j] == 2 @@ -537,103 +384,65 @@ for (flat, root, roots, graph) in graphs end end end -end - -## use generated environments to test package loading ## -function pkg_id(id::Int) - PkgId(KIND[id] == 2 ? UUIDS[id] : nothing, L(id)) -end -function pkg_id(ids::Dict{String,Int}, name::String) - haskey(ids, name) ? pkg_id(ids[name]) : nothing + envs[dir] = make_env(flat, root, roots, graph, paths, dummies) end -function ≊(a::PkgId, b::PkgId) - a.name == b.name || return false - a.uuid == b.uuid && return true - a.uuid == nothing && uuid_version(b.uuid) == 5 || - b.uuid == nothing && uuid_version(a.uuid) == 5 -end -≊(a::Union{Nothing,PkgId}, b::Union{Nothing,PkgId}) = a == b - -function add_id!(ids::Vector{Pair{Int,PkgId}}, - nodes::Dict{String,Int}, name::String, id::PkgId) - node = nodes[name] - any(node == i for (i, _) in ids) && return ids - push!(ids, node => id) -end -function add_id!(ids::Vector{Pair{Int,PkgId}}, - nodes::Dict{String,Int}, name::String, ::Nothing) - return ids # no op -end +## use generated environments to test package loading ## -function test_identify(roots::Dict{String,Int}, graph::Dict{Int,Dict{String,Int}}) - ids = Pair{Int,PkgId}[] - # check & add named roots +function test_find( + roots::Dict{String,PkgId}, + graph::Dict{PkgId,Dict{String,PkgId}}, + paths::Dict{PkgId,Union{Nothing,String}}, + ) + # check direct dependencies for name in NAMES id = identify_package(name) - @test id ≊ pkg_id(roots, name) - add_id!(ids, roots, name, id) - end - # add nodes reachable by uuid - for (node, deps) in graph - KIND[node] == 2 || continue - add_id!(ids, deps, L(node), pkg_id(node)) + @test id == get(roots, name, nothing) + path = locate_package(id) + @test path == get(paths, id, nothing) end - # check all nodes reachable via `where` - let i = 0 - while (i += 1) ≤ length(ids) - node, where = ids[i] - deps = get(graph, node, roots) - for name in NAMES - id = identify_package(where, name) - @test id ≊ pkg_id(deps, name) - add_id!(ids, deps, name, id) - end - end - end - # check all other package ids return nothing - let ids = Dict(ids) - for node in NODES - node in keys(ids) && continue - where = pkg_id(node) - where.uuid == nothing && continue - for name in NAMES - id = where.name == name ? where : nothing - @test identify_package(where, name) == id - end + # check indirect dependencies + for where in keys(graph) + where.uuid === nothing && continue + deps = get(graph, where, Dict(where.name => where)) + for name in NAMES + id = identify_package(where, name) + @test id == get(deps, name, nothing) + path = locate_package(id) + @test path == get(paths, id, nothing) end end end -empty!(DEPOT_PATH) - @testset "identify_package with one env in load path" begin - for (env, (_, _, roots, graph)) in envs + for (env, (_, _, roots, graph, paths)) in envs push!(empty!(LOAD_PATH), env) - test_identify(roots, graph) + test_find(roots, graph, paths) end end @testset "identify_package with two envs in load path" begin for x = false:true, - (env1, (_, _, roots1, graph1)) in (x ? envs : rand(envs, 10)), - (env2, (_, _, roots2, graph2)) in (x ? rand(envs, 10) : envs) + (env1, (_, _, roots1, graph1, paths1)) in (x ? envs : rand(envs, 10)), + (env2, (_, _, roots2, graph2, paths2)) in (x ? rand(envs, 10) : envs) push!(empty!(LOAD_PATH), env1, env2) roots = merge(roots2, roots1) graph = merge(graph2, graph1) - test_identify(roots, graph) + paths = merge(paths2, paths1) + test_find(roots, graph, paths) end end @testset "identify_package with three envs in load path" begin - for (env1, (_, _, roots1, graph1)) in rand(envs, 10), - (env2, (_, _, roots2, graph2)) in rand(envs, 10), - (env3, (_, _, roots3, graph3)) in rand(envs, 10) + for (env1, (_, _, roots1, graph1, paths1)) in rand(envs, 10), + (env2, (_, _, roots2, graph2, paths2)) in rand(envs, 10), + (env3, (_, _, roots3, graph3, paths3)) in rand(envs, 10) push!(empty!(LOAD_PATH), env1, env2, env3) roots = merge(roots3, roots2, roots1) graph = merge(graph3, graph2, graph1) - test_identify(roots, graph) + paths = merge(paths3, paths2, paths1) + test_find(roots, graph, paths) end end @@ -642,6 +451,9 @@ end for env in keys(envs) rm(env, force=true, recursive=true) end +for depot in depots + rm(depot, force=true, recursive=true) +end append!(empty!(DEPOT_PATH), saved_depot_path) append!(empty!(LOAD_PATH), saved_load_path) diff --git a/test/logging.jl b/test/logging.jl index 39ed5297ec324b..88ebb8f0c226f5 100644 --- a/test/logging.jl +++ b/test/logging.jl @@ -221,11 +221,11 @@ end @testset "SimpleLogger" begin # Log level limiting - @test min_enabled_level(SimpleLogger(DevNull, Debug)) == Debug - @test min_enabled_level(SimpleLogger(DevNull, Error)) == Error + @test min_enabled_level(SimpleLogger(devnull, Debug)) == Debug + @test min_enabled_level(SimpleLogger(devnull, Error)) == Error # Log limiting - logger = SimpleLogger(DevNull) + logger = SimpleLogger(devnull) @test shouldlog(logger, Info, Base, :group, :asdf) === true handle_message(logger, Info, "msg", Base, :group, :asdf, "somefile", 1, maxlog=2) @test shouldlog(logger, Info, Base, :group, :asdf) === true @@ -267,4 +267,12 @@ end """ end +# Issue #26273 +let m = Module(:Bare26273i, false) + eval(m, :(import Base: @error)) + @test_logs (:error, "Hello") eval(m, quote + @error "Hello" + end) +end + end diff --git a/test/meta.jl b/test/meta.jl index ffca57401490fc..8c688d2cf8c77d 100644 --- a/test/meta.jl +++ b/test/meta.jl @@ -159,7 +159,7 @@ end @test _nospec_with_default(10) == 20 -let oldout = STDOUT +let oldout = stdout local rdout, wrout, out try rdout, wrout = redirect_stdout() diff --git a/test/misc.jl b/test/misc.jl index 358dc7225a4716..6cdd03a463b5ef 100644 --- a/test/misc.jl +++ b/test/misc.jl @@ -2,21 +2,6 @@ # Tests that do not really go anywhere else -# test assert() method -@test_throws AssertionError assert(false) -let res = assert(true) - @test res === nothing -end -let - try - assert(false) - error("unexpected") - catch ex - @test isa(ex, AssertionError) - @test isempty(ex.msg) - end -end - # test @assert macro @test_throws AssertionError (@assert 1 == 2) @test_throws AssertionError (@assert false) @@ -91,9 +76,9 @@ end @test GC.enable(true) # PR #10984 -# Disable on windows because of issue (missing flush) when redirecting STDERR. +# Disable on windows because of issue (missing flush) when redirecting stderr. let - redir_err = "redirect_stderr(STDOUT)" + redir_err = "redirect_stderr(stdout)" exename = Base.julia_cmd() script = "$redir_err; module A; f() = 1; end; A.f() = 1" warning_str = read(`$exename --warn-overwrite=yes --startup-file=no -e $script`, String) @@ -452,14 +437,14 @@ let buf_color = IOBuffer() @test String(take!(buf_color)) == "\e[31m\e[1mTwo\e[22m\e[39m\n\e[31m\e[1mlines\e[22m\e[39m" end -if STDOUT isa Base.TTY - @test haskey(STDOUT, :color) == true - @test haskey(STDOUT, :bar) == false - @test (:color=>Base.have_color) in STDOUT - @test (:color=>!Base.have_color) ∉ STDOUT - @test STDOUT[:color] == get(STDOUT, :color, nothing) == Base.have_color - @test get(STDOUT, :bar, nothing) === nothing - @test_throws KeyError STDOUT[:bar] +if stdout isa Base.TTY + @test haskey(stdout, :color) == true + @test haskey(stdout, :bar) == false + @test (:color=>Base.have_color) in stdout + @test (:color=>!Base.have_color) ∉ stdout + @test stdout[:color] == get(stdout, :color, nothing) == Base.have_color + @test get(stdout, :bar, nothing) === nothing + @test_throws KeyError stdout[:bar] end let @@ -597,7 +582,7 @@ include("testenv.jl") let flags = Cmd(filter(a->!contains(a, "depwarn"), collect(test_exeflags))) local cmd = `$test_exename $flags deprecation_exec.jl` - if !success(pipeline(cmd; stdout=STDOUT, stderr=STDERR)) + if !success(pipeline(cmd; stdout=stdout, stderr=stderr)) error("Deprecation test failed, cmd : $cmd") end end diff --git a/test/missing.jl b/test/missing.jl index d1b13fc5922a57..4302ffe47d6b54 100644 --- a/test/missing.jl +++ b/test/missing.jl @@ -142,7 +142,7 @@ Base.zero(::Type{Unit}) = Unit(0) Base.one(::Type{Unit}) = 1 @testset "elementary functions" begin - elementary_functions = [abs, abs2, sign, + elementary_functions = [abs, abs2, sign, real, imag, acos, acosh, asin, asinh, atan, atanh, sin, sinh, conj, cos, cosh, tan, tanh, exp, exp2, expm1, log, log10, log1p, log2, @@ -150,7 +150,7 @@ Base.one(::Type{Unit}) = 1 identity, zero, one, oneunit, iseven, isodd, ispow2, isfinite, isinf, isnan, iszero, - isinteger, isreal, isempty, transpose, float] + isinteger, isreal, isempty, transpose, adjoint, float] # All elementary functions return missing when evaluating missing for f in elementary_functions @@ -218,6 +218,7 @@ end x = convert(Vector{Union{Int, Missing}}, [missing]) @test isa(x, Vector{Union{Int, Missing}}) @test isequal(x, [missing]) + @test eltype(adjoint([1, missing])) == Union{Int, Missing} end @testset "== and != on arrays" begin diff --git a/test/namedtuple.jl b/test/namedtuple.jl index d522cb85675368..5dc2397506f433 100644 --- a/test/namedtuple.jl +++ b/test/namedtuple.jl @@ -226,9 +226,9 @@ abstr_nt_22194_3() for T in (Nothing, Missing) x = [(a=1, b=T()), (a=1, b=2)] y = map(v -> (a=v.a, b=v.b), [(a=1, b=T()), (a=1, b=2)]) - @test y isa Vector{NamedTuple{(:a,:b),Tuple{Int,Union{T,Int}}}} + @test y isa Vector{NamedTuple{(:a,:b), T} where T<:Tuple} @test isequal(x, y) end y = map(v -> (a=v.a, b=v.a + v.b), [(a=1, b=missing), (a=1, b=2)]) -@test y isa Vector{NamedTuple{(:a,:b),Tuple{Int,Union{Missing,Int}}}} +@test y isa Vector{NamedTuple{(:a,:b), T} where T<:Tuple} @test isequal(y, [(a=1, b=missing), (a=1, b=3)]) diff --git a/test/numbers.jl b/test/numbers.jl index ff87fa148ab503..76fdb399b756df 100644 --- a/test/numbers.jl +++ b/test/numbers.jl @@ -230,170 +230,170 @@ end @testset "bin/oct/dec/hex/base for extreme integers" begin # definition and printing of extreme integers - @test bin(typemin(UInt8)) == "0" - @test bin(typemax(UInt8)) == "1"^8 - @test oct(typemin(UInt8)) == "0" - @test oct(typemax(UInt8)) == "377" - @test dec(typemin(UInt8)) == "0" - @test dec(typemax(UInt8)) == "255" - @test hex(typemin(UInt8)) == "0" - @test hex(typemax(UInt8)) == "ff" + @test string(typemin(UInt8), base = 2) == "0" + @test string(typemax(UInt8), base = 2) == "1"^8 + @test string(typemin(UInt8), base = 8) == "0" + @test string(typemax(UInt8), base = 8) == "377" + @test string(typemin(UInt8), base = 10) == "0" + @test string(typemax(UInt8), base = 10) == "255" + @test string(typemin(UInt8), base = 16) == "0" + @test string(typemax(UInt8), base = 16) == "ff" @test repr(typemin(UInt8)) == "0x00" @test string(typemin(UInt8)) == "0" @test repr(typemax(UInt8)) == "0xff" @test string(typemax(UInt8)) == "255" - @test base(3,typemin(UInt8)) == "0" - @test base(3,typemax(UInt8)) == "100110" - @test base(12,typemin(UInt8)) == "0" - @test base(12,typemax(UInt8)) == "193" - - @test bin(typemin(UInt16)) == "0" - @test bin(typemax(UInt16)) == "1"^16 - @test oct(typemin(UInt16)) == "0" - @test oct(typemax(UInt16)) == "177777" - @test dec(typemin(UInt16)) == "0" - @test dec(typemax(UInt16)) == "65535" - @test hex(typemin(UInt16)) == "0" - @test hex(typemax(UInt16)) == "ffff" + @test string(typemin(UInt8), base = 3) == "0" + @test string(typemax(UInt8), base = 3) == "100110" + @test string(typemin(UInt8), base = 12) == "0" + @test string(typemax(UInt8), base = 12) == "193" + + @test string(typemin(UInt16), base = 2) == "0" + @test string(typemax(UInt16), base = 2) == "1"^16 + @test string(typemin(UInt16), base = 8) == "0" + @test string(typemax(UInt16), base = 8) == "177777" + @test string(typemin(UInt16), base = 10) == "0" + @test string(typemax(UInt16), base = 10) == "65535" + @test string(typemin(UInt16), base = 16) == "0" + @test string(typemax(UInt16), base = 16) == "ffff" @test repr(typemin(UInt16)) == "0x0000" @test string(typemin(UInt16)) == "0" @test repr(typemax(UInt16)) == "0xffff" @test string(typemax(UInt16)) == "65535" - @test base(3,typemin(UInt16)) == "0" - @test base(3,typemax(UInt16)) == "10022220020" - @test base(12,typemin(UInt16)) == "0" - @test base(12,typemax(UInt16)) == "31b13" - - @test bin(typemin(UInt32)) == "0" - @test bin(typemax(UInt32)) == "1"^32 - @test oct(typemin(UInt32)) == "0" - @test oct(typemax(UInt32)) == "37777777777" - @test dec(typemin(UInt32)) == "0" - @test dec(typemax(UInt32)) == "4294967295" - @test hex(typemin(UInt32)) == "0" - @test hex(typemax(UInt32)) == "ffffffff" + @test string(typemin(UInt16), base = 3) == "0" + @test string(typemax(UInt16), base = 3) == "10022220020" + @test string(typemin(UInt16), base = 12) == "0" + @test string(typemax(UInt16), base = 12) == "31b13" + + @test string(typemin(UInt32), base = 2) == "0" + @test string(typemax(UInt32), base = 2) == "1"^32 + @test string(typemin(UInt32), base = 8) == "0" + @test string(typemax(UInt32), base = 8) == "37777777777" + @test string(typemin(UInt32), base = 10) == "0" + @test string(typemax(UInt32), base = 10) == "4294967295" + @test string(typemin(UInt32), base = 16) == "0" + @test string(typemax(UInt32), base = 16) == "ffffffff" @test repr(typemin(UInt32)) == "0x00000000" @test string(typemin(UInt32)) == "0" @test repr(typemax(UInt32)) == "0xffffffff" @test string(typemax(UInt32)) == "4294967295" - @test base(3,typemin(UInt32)) == "0" - @test base(3,typemax(UInt32)) == "102002022201221111210" - @test base(12,typemin(UInt32)) == "0" - @test base(12,typemax(UInt32)) == "9ba461593" - - @test bin(typemin(UInt64)) == "0" - @test bin(typemax(UInt64)) == "1"^64 - @test oct(typemin(UInt64)) == "0" - @test oct(typemax(UInt64)) == "1777777777777777777777" - @test dec(typemin(UInt64)) == "0" - @test dec(typemax(UInt64)) == "18446744073709551615" - @test hex(typemin(UInt64)) == "0" - @test hex(typemax(UInt64)) == "ffffffffffffffff" + @test string(typemin(UInt32), base = 3) == "0" + @test string(typemax(UInt32), base = 3) == "102002022201221111210" + @test string(typemin(UInt32), base = 12) == "0" + @test string(typemax(UInt32), base = 12) == "9ba461593" + + @test string(typemin(UInt64), base = 2) == "0" + @test string(typemax(UInt64), base = 2) == "1"^64 + @test string(typemin(UInt64), base = 8) == "0" + @test string(typemax(UInt64), base = 8) == "1777777777777777777777" + @test string(typemin(UInt64), base = 10) == "0" + @test string(typemax(UInt64), base = 10) == "18446744073709551615" + @test string(typemin(UInt64), base = 16) == "0" + @test string(typemax(UInt64), base = 16) == "ffffffffffffffff" @test repr(typemin(UInt64)) == "0x0000000000000000" @test string(typemin(UInt64)) == "0" @test repr(typemax(UInt64)) == "0xffffffffffffffff" @test string(typemax(UInt64)) == "18446744073709551615" - @test base(3,typemin(UInt64)) == "0" - @test base(3,typemax(UInt64)) == "11112220022122120101211020120210210211220" - @test base(12,typemin(UInt64)) == "0" - @test base(12,typemax(UInt64)) == "839365134a2a240713" - - @test bin(typemin(UInt128)) == "0" - @test bin(typemax(UInt128)) == "1"^128 - @test oct(typemin(UInt128)) == "0" - @test oct(typemax(UInt128)) == "3777777777777777777777777777777777777777777" - @test hex(typemin(UInt128)) == "0" - @test hex(typemax(UInt128)) == "ffffffffffffffffffffffffffffffff" + @test string(typemin(UInt64), base = 3) == "0" + @test string(typemax(UInt64), base = 3) == "11112220022122120101211020120210210211220" + @test string(typemin(UInt64), base = 12) == "0" + @test string(typemax(UInt64), base = 12) == "839365134a2a240713" + + @test string(typemin(UInt128), base = 2) == "0" + @test string(typemax(UInt128), base = 2) == "1"^128 + @test string(typemin(UInt128), base = 8) == "0" + @test string(typemax(UInt128), base = 8) == "3777777777777777777777777777777777777777777" + @test string(typemin(UInt128), base = 16) == "0" + @test string(typemax(UInt128), base = 16) == "ffffffffffffffffffffffffffffffff" @test repr(typemin(UInt128)) == "0x00000000000000000000000000000000" @test string(typemin(UInt128)) == "0" @test repr(typemax(UInt128)) == "0xffffffffffffffffffffffffffffffff" @test string(typemax(UInt128)) == "340282366920938463463374607431768211455" - @test dec(typemin(UInt128)) == "0" - @test dec(typemax(UInt128)) == "340282366920938463463374607431768211455" - @test base(3,typemin(UInt128)) == "0" - @test base(3,typemax(UInt128)) == + @test string(typemin(UInt128), base = 10) == "0" + @test string(typemax(UInt128), base = 10) == "340282366920938463463374607431768211455" + @test string(typemin(UInt128), base = 3) == "0" + @test string(typemax(UInt128), base = 3) == "202201102121002021012000211012011021221022212021111001022110211020010021100121010" - @test base(12,typemin(UInt128)) == "0" - @test base(12,typemax(UInt128)) == "5916b64b41143526a777873841863a6a6993" - - @test bin(typemin(Int8)) == "-1"*"0"^7 - @test bin(typemax(Int8)) == "1"^7 - @test oct(typemin(Int8)) == "-200" - @test oct(typemax(Int8)) == "177" - @test dec(typemin(Int8)) == "-128" - @test dec(typemax(Int8)) == "127" - @test hex(typemin(Int8)) == "-80" - @test hex(typemax(Int8)) == "7f" + @test string(typemin(UInt128), base = 12) == "0" + @test string(typemax(UInt128), base = 12) == "5916b64b41143526a777873841863a6a6993" + + @test string(typemin(Int8), base = 2) == "-1"*"0"^7 + @test string(typemax(Int8), base = 2) == "1"^7 + @test string(typemin(Int8), base = 8) == "-200" + @test string(typemax(Int8), base = 8) == "177" + @test string(typemin(Int8), base = 10) == "-128" + @test string(typemax(Int8), base = 10) == "127" + @test string(typemin(Int8), base = 16) == "-80" + @test string(typemax(Int8), base = 16) == "7f" @test string(typemin(Int8)) == "-128" @test string(typemax(Int8)) == "127" - @test base(3,typemin(Int8)) == "-11202" - @test base(3,typemax(Int8)) == "11201" - @test base(12,typemin(Int8)) == "-a8" - @test base(12,typemax(Int8)) == "a7" - - @test bin(typemin(Int16)) == "-1"*"0"^15 - @test bin(typemax(Int16)) == "1"^15 - @test oct(typemin(Int16)) == "-100000" - @test oct(typemax(Int16)) == "77777" - @test dec(typemin(Int16)) == "-32768" - @test dec(typemax(Int16)) == "32767" - @test hex(typemin(Int16)) == "-8000" - @test hex(typemax(Int16)) == "7fff" + @test string(typemin(Int8), base = 3) == "-11202" + @test string(typemax(Int8), base = 3) == "11201" + @test string(typemin(Int8), base = 12) == "-a8" + @test string(typemax(Int8), base = 12) == "a7" + + @test string(typemin(Int16), base = 2) == "-1"*"0"^15 + @test string(typemax(Int16), base = 2) == "1"^15 + @test string(typemin(Int16), base = 8) == "-100000" + @test string(typemax(Int16), base = 8) == "77777" + @test string(typemin(Int16), base = 10) == "-32768" + @test string(typemax(Int16), base = 10) == "32767" + @test string(typemin(Int16), base = 16) == "-8000" + @test string(typemax(Int16), base = 16) == "7fff" @test string(typemin(Int16)) == "-32768" @test string(typemax(Int16)) == "32767" - @test base(3,typemin(Int16)) == "-1122221122" - @test base(3,typemax(Int16)) == "1122221121" - @test base(12,typemin(Int16)) == "-16b68" - @test base(12,typemax(Int16)) == "16b67" - - @test bin(typemin(Int32)) == "-1"*"0"^31 - @test bin(typemax(Int32)) == "1"^31 - @test oct(typemin(Int32)) == "-20000000000" - @test oct(typemax(Int32)) == "17777777777" - @test dec(typemin(Int32)) == "-2147483648" - @test dec(typemax(Int32)) == "2147483647" - @test hex(typemin(Int32)) == "-80000000" - @test hex(typemax(Int32)) == "7fffffff" + @test string(typemin(Int16), base = 3) == "-1122221122" + @test string(typemax(Int16), base = 3) == "1122221121" + @test string(typemin(Int16), base = 12) == "-16b68" + @test string(typemax(Int16), base = 12) == "16b67" + + @test string(typemin(Int32), base = 2) == "-1"*"0"^31 + @test string(typemax(Int32), base = 2) == "1"^31 + @test string(typemin(Int32), base = 8) == "-20000000000" + @test string(typemax(Int32), base = 8) == "17777777777" + @test string(typemin(Int32), base = 10) == "-2147483648" + @test string(typemax(Int32), base = 10) == "2147483647" + @test string(typemin(Int32), base = 16) == "-80000000" + @test string(typemax(Int32), base = 16) == "7fffffff" @test string(typemin(Int32)) == "-2147483648" @test string(typemax(Int32)) == "2147483647" - @test base(3,typemin(Int32)) == "-12112122212110202102" - @test base(3,typemax(Int32)) == "12112122212110202101" - @test base(12,typemin(Int32)) == "-4bb2308a8" - @test base(12,typemax(Int32)) == "4bb2308a7" - - @test bin(typemin(Int64)) == "-1"*"0"^63 - @test bin(typemax(Int64)) == "1"^63 - @test oct(typemin(Int64)) == "-1000000000000000000000" - @test oct(typemax(Int64)) == "777777777777777777777" - @test dec(typemin(Int64)) == "-9223372036854775808" - @test dec(typemax(Int64)) == "9223372036854775807" - @test hex(typemin(Int64)) == "-8000000000000000" - @test hex(typemax(Int64)) == "7fffffffffffffff" + @test string(typemin(Int32), base = 3) == "-12112122212110202102" + @test string(typemax(Int32), base = 3) == "12112122212110202101" + @test string(typemin(Int32), base = 12) == "-4bb2308a8" + @test string(typemax(Int32), base = 12) == "4bb2308a7" + + @test string(typemin(Int64), base = 2) == "-1"*"0"^63 + @test string(typemax(Int64), base = 2) == "1"^63 + @test string(typemin(Int64), base = 8) == "-1000000000000000000000" + @test string(typemax(Int64), base = 8) == "777777777777777777777" + @test string(typemin(Int64), base = 10) == "-9223372036854775808" + @test string(typemax(Int64), base = 10) == "9223372036854775807" + @test string(typemin(Int64), base = 16) == "-8000000000000000" + @test string(typemax(Int64), base = 16) == "7fffffffffffffff" @test string(typemin(Int64)) == "-9223372036854775808" @test string(typemax(Int64)) == "9223372036854775807" - @test base(3,typemin(Int64)) == "-2021110011022210012102010021220101220222" - @test base(3,typemax(Int64)) == "2021110011022210012102010021220101220221" - @test base(12,typemin(Int64)) == "-41a792678515120368" - @test base(12,typemax(Int64)) == "41a792678515120367" - - @test bin(typemin(Int128)) == "-1"*"0"^127 - @test bin(typemax(Int128)) == "1"^127 - @test oct(typemin(Int128)) == "-2000000000000000000000000000000000000000000" - @test oct(typemax(Int128)) == "1777777777777777777777777777777777777777777" - @test hex(typemin(Int128)) == "-80000000000000000000000000000000" - @test hex(typemax(Int128)) == "7fffffffffffffffffffffffffffffff" - - @test dec(typemin(Int128)) == "-170141183460469231731687303715884105728" - @test dec(typemax(Int128)) == "170141183460469231731687303715884105727" + @test string(typemin(Int64), base = 3) == "-2021110011022210012102010021220101220222" + @test string(typemax(Int64), base = 3) == "2021110011022210012102010021220101220221" + @test string(typemin(Int64), base = 12) == "-41a792678515120368" + @test string(typemax(Int64), base = 12) == "41a792678515120367" + + @test string(typemin(Int128), base = 2) == "-1"*"0"^127 + @test string(typemax(Int128), base = 2) == "1"^127 + @test string(typemin(Int128), base = 8) == "-2000000000000000000000000000000000000000000" + @test string(typemax(Int128), base = 8) == "1777777777777777777777777777777777777777777" + @test string(typemin(Int128), base = 16) == "-80000000000000000000000000000000" + @test string(typemax(Int128), base = 16) == "7fffffffffffffffffffffffffffffff" + + @test string(typemin(Int128), base = 10) == "-170141183460469231731687303715884105728" + @test string(typemax(Int128), base = 10) == "170141183460469231731687303715884105727" @test string(typemin(Int128)) == "-170141183460469231731687303715884105728" @test string(typemax(Int128)) == "170141183460469231731687303715884105727" - @test base(3,typemin(Int128)) == + @test string(typemin(Int128), base = 3) == "-101100201022001010121000102002120122110122221010202000122201220121120010200022002" - @test base(3,typemax(Int128)) == + @test string(typemax(Int128), base = 3) == "101100201022001010121000102002120122110122221010202000122201220121120010200022001" - @test base(12,typemin(Int128)) == "-2a695925806818735399a37a20a31b3534a8" - @test base(12,typemax(Int128)) == "2a695925806818735399a37a20a31b3534a7" + @test string(typemin(Int128), base = 12) == "-2a695925806818735399a37a20a31b3534a8" + @test string(typemax(Int128), base = 12) == "2a695925806818735399a37a20a31b3534a7" end @testset "floating-point printing" begin @test repr(1.0) == "1.0" @@ -1778,7 +1778,7 @@ end @test isinf(nextfloat(0x1.fffffffffffffp1023)) end @testset "issue #1308" begin - @test hex(~UInt128(0)) == "f"^32 + @test string(~UInt128(0), base = 16) == "f"^32 @test (~0)%UInt128 == ~UInt128(0) @test Int128(~0) == ~Int128(0) end @@ -2544,6 +2544,13 @@ end end end +# issue #26324 +@testset "irrational promotion" begin + @test π*ComplexF32(2) isa ComplexF32 + @test π/ComplexF32(2) isa ComplexF32 + @test log(π,ComplexF32(2)) isa ComplexF32 +end + @testset "printing non finite floats" begin let float_types = Set() allsubtypes!(Base, AbstractFloat, float_types) diff --git a/test/offsetarray.jl b/test/offsetarray.jl index de21878a1cf72c..42e05f1d4c252f 100644 --- a/test/offsetarray.jl +++ b/test/offsetarray.jl @@ -338,21 +338,21 @@ A = OffsetArray(rand(4,4), (-3,5)) @test maximum(A) == maximum(parent(A)) @test minimum(A) == minimum(parent(A)) @test extrema(A) == extrema(parent(A)) -@test maximum(A, 1) == OffsetArray(maximum(parent(A), 1), (0,A.offsets[2])) -@test maximum(A, 2) == OffsetArray(maximum(parent(A), 2), (A.offsets[1],0)) -@test maximum(A, 1:2) == maximum(parent(A), 1:2) +@test maximum(A, dims=1) == OffsetArray(maximum(parent(A), dims=1), (0,A.offsets[2])) +@test maximum(A, dims=2) == OffsetArray(maximum(parent(A), dims=2), (A.offsets[1],0)) +@test maximum(A, dims=1:2) == maximum(parent(A), dims=1:2) C = similar(A) -cumsum!(C, A, 1) -@test parent(C) == cumsum(parent(A), 1) -@test parent(cumsum(A, 1)) == cumsum(parent(A), 1) -cumsum!(C, A, 2) -@test parent(C) == cumsum(parent(A), 2) +cumsum!(C, A, dims=1) +@test parent(C) == cumsum(parent(A), dims=1) +@test parent(cumsum(A, dims=1)) == cumsum(parent(A), dims=1) +cumsum!(C, A, dims=2) +@test parent(C) == cumsum(parent(A), dims=2) R = similar(A, (1:1, 6:9)) maximum!(R, A) -@test parent(R) == maximum(parent(A), 1) +@test parent(R) == maximum(parent(A), dims=1) R = similar(A, (-2:1, 1:1)) maximum!(R, A) -@test parent(R) == maximum(parent(A), 2) +@test parent(R) == maximum(parent(A), dims=2) amin, iamin = findmin(A) pmin, ipmin = findmin(parent(A)) @test amin == pmin @@ -372,11 +372,11 @@ I = findall(!iszero, z) @test findall(x->x==0, h) == [2] @test mean(A_3_3) == median(A_3_3) == 5 @test mean(x->2x, A_3_3) == 10 -@test mean(A_3_3, 1) == median(A_3_3, 1) == OffsetArray([2 5 8], (0,A_3_3.offsets[2])) -@test mean(A_3_3, 2) == median(A_3_3, 2) == OffsetArray(reshape([4,5,6],(3,1)), (A_3_3.offsets[1],0)) +@test mean(A_3_3, dims=1) == median(A_3_3, dims=1) == OffsetArray([2 5 8], (0,A_3_3.offsets[2])) +@test mean(A_3_3, dims=2) == median(A_3_3, dims=2) == OffsetArray(reshape([4,5,6],(3,1)), (A_3_3.offsets[1],0)) @test var(A_3_3) == 7.5 -@test std(A_3_3, 1) == OffsetArray([1 1 1], (0,A_3_3.offsets[2])) -@test std(A_3_3, 2) == OffsetArray(reshape([3,3,3], (3,1)), (A_3_3.offsets[1],0)) +@test std(A_3_3, dims=1) == OffsetArray([1 1 1], (0,A_3_3.offsets[2])) +@test std(A_3_3, dims=2) == OffsetArray(reshape([3,3,3], (3,1)), (A_3_3.offsets[1],0)) @test sum(OffsetArray(fill(1,3000), -1000)) == 3000 @test vecnorm(v) ≈ vecnorm(parent(v)) @@ -412,8 +412,8 @@ v = OffsetArray(rand(8), (-2,)) @test sort(v) == OffsetArray(sort(parent(v)), v.offsets) @test sortrows(A) == OffsetArray(sortrows(parent(A)), A.offsets) @test sortcols(A) == OffsetArray(sortcols(parent(A)), A.offsets) -@test sort(A, 1) == OffsetArray(sort(parent(A), 1), A.offsets) -@test sort(A, 2) == OffsetArray(sort(parent(A), 2), A.offsets) +@test sort(A, dims=1) == OffsetArray(sort(parent(A), dims=1), A.offsets) +@test sort(A, dims=2) == OffsetArray(sort(parent(A), dims=2), A.offsets) @test mapslices(sort, A, 1) == OffsetArray(mapslices(sort, parent(A), 1), A.offsets) @test mapslices(sort, A, 2) == OffsetArray(mapslices(sort, parent(A), 2), A.offsets) diff --git a/test/operators.jl b/test/operators.jl index 31b95174df3b1b..7cf493296e00b7 100644 --- a/test/operators.jl +++ b/test/operators.jl @@ -101,7 +101,7 @@ Base.promote_rule(::Type{T19714}, ::Type{Int}) = T19714 # pr #17155 @testset "function composition" begin - @test (uppercase∘hex)(239487) == "3A77F" + @test (uppercase∘(x->string(x,base=16)))(239487) == "3A77F" end @testset "function negation" begin str = randstring(20) @@ -131,3 +131,53 @@ Base.:(<)(x::TypeWrapper, y::TypeWrapper) = (x.t <: y.t) & (x.t != y.t) @test TypeWrapper(Int) <= TypeWrapper(Real) @test !(TypeWrapper(Int) <= TypeWrapper(Float64)) end + +# issue #20355 +@testset "mod1, fld1" begin + for T in [Int8, Int16, Int32, Int64], + x in T[typemin(T); typemin(T) + 1; -10:10; typemax(T)-1; typemax(T)], + y in T[typemin(T); typemin(T) + 1; -10:-1; 1:10; typemax(T)-1; typemax(T)] + + m = mod1(x, y) + @test mod(x, y) == mod(m, y) + if y > 0 + @test 0 < m <= y + else + @test y <= m < 0 + end + if x == typemin(T) && y == -1 + @test_throws DivideError fld1(x, y) + else + f = fld1(x, y) + @test (f - 1) * y + m == x + end + end + + for T in [UInt8, UInt16, UInt32, UInt64], + x in T[0:10; typemax(T)-1; typemax(T)], + y in T[1:10; typemax(T)-1; typemax(T)] + + m = mod1(x, y) + @test mod(x, y) == mod(m, y) + @test 0 < m <= y + f = fld1(x, y) + @test (f - 1) * y + m == x + end + + for T in [Float32, Float64, Rational{Int64}], + x in T[k // 4 for k in -10:10], + y in T[k // 4 for k in [-10:-1; 1:10]] + + m = mod1(x, y) + @test mod(x, y) == mod(m, y) + if y > 0 + @test 0 < m <= y + else + @test y <= m < 0 + end + f = fld1(x, y) + @test (f - 1) * y + m == x + end + + @test fldmod1(4.0, 3) == fldmod1(4, 3) +end diff --git a/test/perf/.gitignore b/test/perf/.gitignore deleted file mode 100644 index cb9f808b60664f..00000000000000 --- a/test/perf/.gitignore +++ /dev/null @@ -1 +0,0 @@ -big.txt diff --git a/test/perf/Makefile b/test/perf/Makefile deleted file mode 100644 index adc07a2425e640..00000000000000 --- a/test/perf/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -SRCDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) -JULIAHOME := $(abspath $(SRCDIR)/../..) -BUILDDIR := . -include $(JULIAHOME)/Make.inc -# TODO: this Makefile ignores BUILDDIR, except for computing JULIA_EXECUTABLE - - -all: micro kernel cat shootout blas lapack simd sort spell sparse - -micro kernel cat shootout blas lapack simd sort spell sparse: - @$(MAKE) $(QUIET_MAKE) -C $(SRCDIR)/shootout - @$(call spawn,$(JULIA_EXECUTABLE)) $(call cygpath_w,$(SRCDIR)/$@/perf.jl) | perl -nle '@_=split/,/; printf "%-18s %8.3f %8.3f %8.3f %8.3f\n", $$_[1], $$_[2], $$_[3], $$_[4], $$_[5]' - -codespeed: - @$(MAKE) $(QUIET_MAKE) -C $(SRCDIR)/shootout - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/micro/perf.jl codespeed - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/kernel/perf.jl codespeed - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/shootout/perf.jl codespeed -# @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/cat/perf.jl codespeed -# @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/blas/perf.jl codespeed -# @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/lapack/perf.jl codespeed -# @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/simd/perf.jl codespeed -# @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/sort/perf.jl codespeed - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/spell/perf.jl codespeed - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/sparse/perf.jl codespeed - @$(call spawn,$(JULIA_EXECUTABLE)) $(SRCDIR)/report.jl - - -clean: - $(MAKE) -C $(SRCDIR)/micro clean - $(MAKE) -C $(SRCDIR)/shootout clean - -.PHONY: micro kernel cat shootout blas lapack simd sort spell sparse clean diff --git a/test/perf/README.md b/test/perf/README.md deleted file mode 100644 index 7d2f2abfc355d7..00000000000000 --- a/test/perf/README.md +++ /dev/null @@ -1,67 +0,0 @@ -Julia performance monitoring -============================ - -This directory contains benchmarks and related utilities to test Julia's -performance. Many of these benchmarks have been ported to the newer -[BaseBenchmarks package](https://github.com/JuliaCI/BaseBenchmarks.jl), -which contains the benchmark suite used for CI performance testing. -In general, new benchmarks should be added to that package instead -of placed here (see the BaseBenchmarks README for details). - -If you'd like to test the performance of your own package, consider using -the [BenchmarkTools package](https://github.com/JuliaCI/BenchmarkTools.jl). - -Running the performance tests ------------------------------ - -In `test/perf` run `make`. It will run the `perf.jl` script in all -the sub-directories and display the test name with the minimum, -maximum, mean and standard deviation of the wall-time of five repeated -test runs in micro seconds. - -There is also a `perfcomp.jl` script but it may not be working with -the rest at the moment. - -Code Organization ------------------ - -Tests generally go into one of the following suites: - -- `micro`: A set of micro-benchmarks commonly used to compare - programming languages; these results are shown on - [https://julialang.org/](https://julialang.org/). -- `blas`, `lapack`: Performance tests for linear algebra tasks from - low-level operations such as matrix multiplies to higher-level - operations like eigenvalue problems. -- `cat`: Performance tests for concatenation of vectors and matrices. -- `kernel`: Performance tests used to track real-world code examples - that previously ran slowly. -- `shootout` Tracks the performance of tests taken from the - [Computer Language Benchmarks Game](http://benchmarksgame.alioth.debian.org/) performance - tests. -- `sort`: Performance tests of sorting algorithms. -- `spell` Performance tests of - [Peter Norvig's spelling corrector](http://norvig.com/spell-correct.html). -- `sparse`: Performance tests of sparse matrix operations. - -Otherwise tests live in their own subdirectories containing a `perf.jl` file. - -The `perf.jl` files include the shared performance utilies via -`include("../perfutil.jl")`, and then run the performance test -functions with the `@timeit` macro. For example: -```julia -@timeit(spelltest(tests1), "spell", "Peter Norvig's spell corrector") -``` -with arguments: test function call, name of the test, description, -and, optionally, a group. `@timeit` will do a warm-up and then 5 -timings, calculating min, max, average and standard deviation of -the timings. - -If possible, the tests aim to take about 10-100 microseconds. - -Package dependencies --------------------- -- HTTPClient -- JSON -- DataStructures -- SortingAlgorithms diff --git a/test/perf/array/indexing.jl b/test/perf/array/indexing.jl deleted file mode 100644 index d77e2d15669e37..00000000000000 --- a/test/perf/array/indexing.jl +++ /dev/null @@ -1,174 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Performance testing - -import Base: unsafe_getindex -# @inline unsafe_getindex(xs...) = Base.getindex(xs...) - -function sumelt(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - for k = 1:n - for a in A - s += a - end - end - s -end - -function sumeach(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - for k = 1:n - for I in eachindex(A) - val = unsafe_getindex(A, I) - s += val - end - end - s -end - -function sumlinear(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - for k = 1:n - for I in 1:length(A) - val = unsafe_getindex(A, I) - s += val - end - end - s -end -function sumcartesian(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - for k = 1:n - for I in CartesianIndices(size(A)) - val = unsafe_getindex(A, I) - s += val - end - end - s -end - -function sumcolon(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - nrows = size(A, 1) - ncols = size(A, 2) - c = Colon() - for k = 1:n - @simd for i = 1:ncols - val = unsafe_getindex(A, c, i) - s += first(val) - end - end - s -end - -function sumrange(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - nrows = size(A, 1) - ncols = size(A, 2) - r = 1:nrows - for k = 1:n - @simd for i = 1:ncols - val = unsafe_getindex(A, r, i) - s += first(val) - end - end - s -end - -function sumlogical(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - nrows = size(A, 1) - ncols = size(A, 2) - r = falses(nrows) - r[1:4:end] = true - for k = 1:n - @simd for i = 1:ncols - val = unsafe_getindex(A, r, i) - s += first(val) - end - end - s -end - -function sumvector(A, n) - s = zero(eltype(A)) + zero(eltype(A)) - nrows = size(A, 1) - ncols = size(A, 2) - r = rand(1:nrows, 5) - for k = 1:n - @simd for i = 1:ncols - val = unsafe_getindex(A, r, i) - s += first(val) - end - end - s -end - -abstract type MyArray{T,N} <: AbstractArray{T,N} end - -struct ArrayLS{T,N} <: MyArray{T,N} # IndexCartesian - data::Array{T,N} -end -struct ArrayLSLS{T,N} <: MyArray{T,N} # IndexCartesian with IndexCartesian similar - data::Array{T,N} -end -Base.similar(A::ArrayLSLS, ::Type{T}, dims::Tuple{Vararg{Int}}) where {T} = ArrayLSLS(similar(A.data, T, dims)) -@inline Base.setindex!(A::ArrayLSLS, v, I::Int...) = A.data[I...] = v -@inline Base.unsafe_setindex!(A::ArrayLSLS, v, I::Int...) = Base.unsafe_setindex!(A.data, v, I...) -Base.first(A::ArrayLSLS) = first(A.data) - -struct ArrayLF{T,N} <: MyArray{T,N} # IndexLinear - data::Array{T,N} -end -struct ArrayStrides{T,N} <: MyArray{T,N} - data::Array{T,N} - strides::NTuple{N,Int} -end -ArrayStrides(A::Array) = ArrayStrides(A, strides(A)) - -struct ArrayStrides1{T} <: MyArray{T,2} - data::Matrix{T} - stride1::Int -end -ArrayStrides1(A::Array) = ArrayStrides1(A, size(A,1)) - -Base.size(A::MyArray) = size(A.data) - -@inline Base.getindex(A::ArrayLF, i::Int) = getindex(A.data, i) -@inline Base.getindex(A::ArrayLF, i::Int, i2::Int) = getindex(A.data, i, i2) -@inline Base.getindex(A::Union{ArrayLS, ArrayLSLS}, i::Int, j::Int) = getindex(A.data, i, j) -@inline Base.unsafe_getindex(A::ArrayLF, indx::Int) = unsafe_getindex(A.data, indx) -@inline Base.unsafe_getindex(A::Union{ArrayLS, ArrayLSLS}, i::Int, j::Int) = unsafe_getindex(A.data, i, j) - -@inline Base.getindex(A::ArrayStrides{T,2}, i::Real, j::Real) where {T} = getindex(A.data, 1+A.strides[1]*(i-1)+A.strides[2]*(j-1)) -@inline Base.getindex(A::ArrayStrides1, i::Real, j::Real) = getindex(A.data, i + A.stride1*(j-1)) -@inline Base.unsafe_getindex(A::ArrayStrides{T,2}, i::Real, j::Real) where {T} = unsafe_getindex(A.data, 1+A.strides[1]*(i-1)+A.strides[2]*(j-1)) -@inline Base.unsafe_getindex(A::ArrayStrides1, i::Real, j::Real) = unsafe_getindex(A.data, i + A.stride1*(j-1)) - -# Using the qualified Base.IndexLinear() in the IndexStyle definition -# requires looking up the symbol in the module on each call. -import Base: IndexLinear -Base.IndexStyle(::Type{T}) where {T<:ArrayLF} = IndexLinear() - -if !applicable(unsafe_getindex, [1 2], 1:1, 2) - @inline Base.unsafe_getindex(A::Array, I...) = @inbounds return A[I...] - @inline Base.unsafe_getindex(A::MyArray, I...) = @inbounds return A[I...] - @inline Base.unsafe_getindex(A::SubArray, I...) = @inbounds return A[I...] - @inline Base.unsafe_getindex(A::BitArray, I1::BitArray, I2::Int) = unsafe_getindex(A, Base.to_index(I1), I2) -end - -function makearrays(::Type{T}, sz) where T - L = prod(sz) - A = reshape(convert(Vector{T}, [1:L;]), sz) - AS = ArrayLS(A) - ASS = ArrayLSLS(A) - AF = ArrayLF(A) - Astrd = ArrayStrides(A) - Astrd1 = ArrayStrides1(A) - outersz = (sz[1]+1,sz[2]+2) - B = reshape(convert(Vector{T}, [1:prod(outersz);]), outersz) - Asub = view(B, 1:sz[1], 2:sz[2]+1) - Bit = trues(sz) - (A, AF, AS, ASS, Asub, Bit,) -end - diff --git a/test/perf/array/perf.jl b/test/perf/array/perf.jl deleted file mode 100644 index e0ed745e294dce..00000000000000 --- a/test/perf/array/perf.jl +++ /dev/null @@ -1,59 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -include("indexing.jl") - -briefname(A) = typeof(A).name.name - -# Small array tests -sz = (3,5) -Alist = makearrays(Int, sz) -for Ar in Alist - @timeit sumelt(Ar, 10^5) string("sumeltIs ", briefname(Ar)) string("for a in A indexing, ", briefname(Ar)) sz - @timeit sumeach(Ar, 10^5) string("sumeachIs ", briefname(Ar)) string("for I in eachindex(A), ", briefname(Ar)) sz - @timeit sumlinear(Ar, 10^5) string("sumlinearIs ", briefname(Ar)) string("for I in 1:length(A), ", briefname(Ar)) sz - @timeit sumcartesian(Ar, 10^5) string("sumcartesianIs ", briefname(Ar)) string("for I in CartesianIndices(size(A)), ", briefname(Ar)) sz - @timeit sumcolon(Ar, 10^5) string("sumcolonIs ", briefname(Ar)) string("colon indexing, ", briefname(Ar)) sz - @timeit sumrange(Ar, 10^5) string("sumrangeIs ", briefname(Ar)) string("range indexing, ", briefname(Ar)) sz - @timeit sumlogical(Ar, 10^5) string("sumlogicalIs ", briefname(Ar)) string("logical indexing, ", briefname(Ar)) sz - @timeit sumvector(Ar, 10^5) string("sumvectorIs ", briefname(Ar)) string("vector indexing, ", briefname(Ar)) sz -end - -Alist = makearrays(Float32, sz) # SIMD-able -for Ar in Alist - @timeit sumelt(Ar, 10^5) string("sumeltFs ", briefname(Ar)) string("for a in A indexing, ", briefname(Ar)) sz - @timeit sumeach(Ar, 10^5) string("sumeachFs ", briefname(Ar)) string("for I in eachindex(A), ", briefname(Ar)) sz - @timeit sumlinear(Ar, 10^5) string("sumlinearFs ", briefname(Ar)) string("for I in 1:length(A), ", briefname(Ar)) sz - @timeit sumcartesian(Ar, 10^5) string("sumcartesianFs ", briefname(Ar)) string("for I in CartesianIndices(size(A)), ", briefname(Ar)) sz - @timeit sumcolon(Ar, 10^5) string("sumcolonFs ", briefname(Ar)) string("colon indexing, ", briefname(Ar)) sz - @timeit sumrange(Ar, 10^5) string("sumrangeFs ", briefname(Ar)) string("range indexing, ", briefname(Ar)) sz - @timeit sumlogical(Ar, 10^5) string("sumlogicalFs ", briefname(Ar)) string("logical indexing, ", briefname(Ar)) sz - @timeit sumvector(Ar, 10^5) string("sumvectorFs ", briefname(Ar)) string("vector indexing, ", briefname(Ar)) sz -end - -# Big array tests -sz = (300,500) -Alist = makearrays(Int, sz) -for Ar in Alist - @timeit sumelt(Ar, 100) string("sumeltIb ", briefname(Ar)) string("for a in A indexing, ", briefname(Ar)) sz - @timeit sumeach(Ar, 100) string("sumeachIb ", briefname(Ar)) string("for I in eachindex(A), ", briefname(Ar)) sz - @timeit sumlinear(Ar, 100) string("sumlinearIb ", briefname(Ar)) string("for I in 1:length(A), ", briefname(Ar)) sz - @timeit sumcartesian(Ar, 100) string("sumcartesianIb ", briefname(Ar)) string("for I in CartesianIndices(size(A)), ", briefname(Ar)) sz - @timeit sumcolon(Ar, 100) string("sumcolonIb ", briefname(Ar)) string("colon indexing, ", briefname(Ar)) sz - @timeit sumrange(Ar, 100) string("sumrangeIb ", briefname(Ar)) string("range indexing, ", briefname(Ar)) sz - @timeit sumlogical(Ar, 100) string("sumlogicalIb ", briefname(Ar)) string("logical indexing, ", briefname(Ar)) sz - @timeit sumvector(Ar, 100) string("sumvectorIb ", briefname(Ar)) string("vector indexing, ", briefname(Ar)) sz -end - -Alist = makearrays(Float32, sz) # SIMD-able -for Ar in Alist - @timeit sumelt(Ar, 100) string("sumeltFb ", briefname(Ar)) string("for a in A indexing, ", briefname(Ar)) sz - @timeit sumeach(Ar, 100) string("sumeachFb ", briefname(Ar)) string("for I in eachindex(A), ", briefname(Ar)) sz - @timeit sumlinear(Ar, 100) string("sumlinearFb ", briefname(Ar)) string("for I in 1:length(A), ", briefname(Ar)) sz - @timeit sumcartesian(Ar, 100) string("sumcartesianFb ", briefname(Ar)) string("for I in CartesianIndices(size(A)), ", briefname(Ar)) sz - @timeit sumcolon(Ar, 100) string("sumcolonFb ", briefname(Ar)) string("colon indexing, ", briefname(Ar)) sz - @timeit sumrange(Ar, 100) string("sumrangeFb ", briefname(Ar)) string("range indexing, ", briefname(Ar)) sz - @timeit sumlogical(Ar, 100) string("sumlogicalFb ", briefname(Ar)) string("logical indexing, ", briefname(Ar)) sz - @timeit sumvector(Ar, 100) string("sumvectorFb ", briefname(Ar)) string("vector indexing, ", briefname(Ar)) sz -end diff --git a/test/perf/blas/level1.jl b/test/perf/blas/level1.jl deleted file mode 100644 index 0d1f6837eecb6d..00000000000000 --- a/test/perf/blas/level1.jl +++ /dev/null @@ -1,26 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function dottest(n, iter) - a = rand(n) - b = rand(n) - c = similar(a) - for i = 1:iter - c = dot(a,b) - end - c -end - -function axpytest(n, iter) - a = rand(1)[1] - x = rand(n) - y = zeros(n) - for i = 1:iter - BLAS.axpy!(a, x, y) - end - y -end - -problemsizes = [(2, 10^6, "tiny"), (2^4, 10^6, "small"), (2^6, 10^6, "medium"), (2^8, 10^5, "large"), (2^10, 10^5, "huge")] -testdata = [(dottest, "dot", "dot product", problemsizes), (axpytest, "axpy", "axpy", problemsizes)] -include("../perfgeneric.jl") - diff --git a/test/perf/blas/level2.jl b/test/perf/blas/level2.jl deleted file mode 100644 index afa99a662122ed..00000000000000 --- a/test/perf/blas/level2.jl +++ /dev/null @@ -1,15 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function gemvtest(n, iter) - A = rand(n,n) - x = rand(n) - z = similar(x) - for i = 1:iter - z = A * x - end - z -end - -problemsizes =[(2, 10^6, "tiny"), (2^4, 10^5, "small"), (2^6, 10^4, "medium"), (2^8, 10^3, "large"), (2^10, 10^2, "huge")] -testdata = [(gemvtest, "gemv", "matrix-vector multiplication", problemsizes)] -include("../perfgeneric.jl") diff --git a/test/perf/blas/level3.jl b/test/perf/blas/level3.jl deleted file mode 100644 index 198d7e2b356152..00000000000000 --- a/test/perf/blas/level3.jl +++ /dev/null @@ -1,17 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# gemm on various size matrices - -function matmultest(n, iter) - a = rand(n,n) - b = similar(a) - for i=1:iter - LinearAlgebra.mul!(b, a, a) - end - b -end - -problemsizes = [(2^2, 10^6, "tiny"), (2^4, 10^5, "small"), (2^6, 10^4, "medium"), (2^8, 10^2, "large")] -testdata = [(matmultest, "matmul", "matrix-matrix multiplication", problemsizes)] -include("../perfgeneric.jl") - diff --git a/test/perf/blas/perf.jl b/test/perf/blas/perf.jl deleted file mode 100644 index 96847f24c7f980..00000000000000 --- a/test/perf/blas/perf.jl +++ /dev/null @@ -1,7 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -include("level1.jl") -include("level2.jl") -include("level3.jl") diff --git a/test/perf/cat/perf.jl b/test/perf/cat/perf.jl deleted file mode 100644 index 8a5e3f7fd1c21e..00000000000000 --- a/test/perf/cat/perf.jl +++ /dev/null @@ -1,95 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -function cat2d_perf(n, iter) - a = rand(n,n) - b = rand(n,n) - for i=1:iter - c = [a b; b a] - end -end - -function cat2d_perf2(n, iter) - a = rand(n,n) - b = rand(n,n) - for i=1:iter - c = Matrix{Float64}(uninitialized, 2n,2n) - c[ 1:n, 1:n] = a - c[ 1:n, n+1:end] = b - c[n+1:end,1:n] = b - c[n+1:end,n+1:end] = a - end -end - - -function hcat_perf(n, iter) - a = rand(n,n) - b = rand(n,n) - for i=1:iter - c = [a b b a] - end -end - -function hcat_perf2(n, iter) - a = rand(n,n) - b = rand(n,n) - for i=1:iter - c = Matrix{Float64}(uninitialized, n, 4n) - c[:, 1: n] = a - c[:, n+1: 2n] = b - c[:, 2n+1: 3n] = b - c[:, 3n+1:end] = a - end -end - -function vcat_perf(n, iter) - a = rand(n,n) - b = rand(n,n) - for i = 1:iter - c = [a; b; b; a] - end -end - -function vcat_perf2(n, iter) - a = rand(n,n) - b = rand(n,n) - for i=1:iter - c = Matrix{Float64}(uninitialized, 4n, n) - c[ 1: n, :] = a - c[ n+1:2n, :] = b - c[2n+1:3n, :] = b - c[3n+1:4n, :] = a - end -end - -function catnd_perf(n, iter) - a = rand(1,n,n,1) - b = rand(1,n,n) - for i = 1:iter - c = cat(3, a, b, b, a) - end -end - -function catnd_perf2(n, iter) - a = rand(1,n,n,1) - b = rand(1,n,n) - for i = 1:iter - c = Array{Float64}(uninitialized, 1, n, 4n, 1) - c[1,:, 1: n,1] = a - c[1,:, n+1:2n,1] = b - c[1,:,2n+1:3n,1] = b - c[1,:,3n+1:4n,1] = a - end -end - -problemsizes = [(5, 20000, "small"), (500, 2, "large")] -testdata = [(cat2d_perf, "hvcat", "horizontal/vertical matrix concatenation", problemsizes), - (cat2d_perf2, "hvcat_setind", "horizontal/vertical matrix concatenation using setindex", problemsizes), - (hcat_perf, "hcat", "horizontal matrix concatenation", problemsizes), - (hcat_perf2, "hcat_setind", "horizontal matrix concatenation using setindex", problemsizes), - (vcat_perf, "vcat", "vertical matrix concatenation", problemsizes), - (vcat_perf2, "vcat_setind", "vertical matrix concatenation using setindex", problemsizes), - (catnd_perf, "catnd", "N-dimensional matrix concatenation", problemsizes), - (catnd_perf2, "catnd_setind", "N-dimensional matrix concatenation using setindex", problemsizes)] -include("../perfgeneric.jl") diff --git a/test/perf/kernel/.gitattributes b/test/perf/kernel/.gitattributes deleted file mode 100644 index fe2738894ebf5b..00000000000000 --- a/test/perf/kernel/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.tsv binary diff --git a/test/perf/kernel/actor_centrality.jl b/test/perf/kernel/actor_centrality.jl deleted file mode 100644 index 82185c9b823c9c..00000000000000 --- a/test/perf/kernel/actor_centrality.jl +++ /dev/null @@ -1,72 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -mutable struct Node - name::String - n::Set{Node} - - Node(name) = new(name, Set{Node}()) -end - -const Graph = Dict{String, Node} - -function get(G::Graph, name) - if haskey(G, name) - return G[name] - end - G[name] = Node(name) -end - -function centrality_mean(G::Graph, start_node) - dists = Dict{Node,UInt64}() - next = Set([G[start_node]]) - - cdist = 0 - while !isempty(next) - nnext = Set{Node}() - for n in next - if !haskey(dists, n) - dists[n] = cdist - for neigh in n.n - push!(nnext, neigh) - end - end - end - cdist += 1 - next = nnext - end - mean([ v for (k,v) in dists ]) -end - -function read_graph() - G = Graph() - actors = Set() - - open(joinpath(@__DIR__, "imdb-1.tsv"), "r") do io - while !eof(io) - k = split(strip(readline(io)), "\t") - actor, movie = k[1], join(k[2:3], "_") - ac, mn = get(G, actor), get(G, movie) - push!(actors, actor) - push!(ac.n, mn) - push!(mn.n, ac) - end - end - G, sort!([ a for a in actors]) -end - -function actor_centrality() - G, actors = read_graph() - d = Dict{String, Float64}() - - for a in actors[1:50] - d[a] = centrality_mean(G, a) - #print("$a: ", d[a], "\n") - end - - vals = sort!([(v,k) for (k,v) in d]) - #for i=1:20 - # print("$i: ", vals[i], "\n") - #end - - # print(centrality_mean(G, "Hoffman, Dustin"), "\n") -end diff --git a/test/perf/kernel/bench_eu.jl b/test/perf/kernel/bench_eu.jl deleted file mode 100644 index 6aa9bdce1b7c29..00000000000000 --- a/test/perf/kernel/bench_eu.jl +++ /dev/null @@ -1,44 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Benchmark European option -# https://groups.google.com/forum/?hl=en&fromgroups=#!topic/julia-dev/ImhGsqX_IHc - -function bench_eu_devec(numPaths) - steps = 250 - r = 0.05 - sigma = .4 - T = 1 - dt = T/(steps) - K = 100 - - S = fill(100.,numPaths,1) - - t1 = (r-0.5*sigma.^2)*dt - t2 = sigma*sqrt(dt) - for i=1:steps - for j=1:numPaths - S[j] *= exp(t1 + t2*randn()) - end - end - - V = mean( exp(-r*T)*max.(K.-S,0) ) -end - -function bench_eu_vec(numPaths) - steps = 250 - r = 0.05 - sigma = .4 - T = 1 - dt = T/(steps) - K = 100 - - S = fill(100.,numPaths,1) - - t1 = (r-0.5*sigma.^2)*dt - t2 = sigma*sqrt(dt) - for i=1:steps - S = S .* exp.(t1.+t2*randn(numPaths)) - end - - V = mean( exp(-r*T)*max.(K.-S,0) ) -end diff --git a/test/perf/kernel/bench_eu.m b/test/perf/kernel/bench_eu.m deleted file mode 100644 index 5b4677f50efc86..00000000000000 --- a/test/perf/kernel/bench_eu.m +++ /dev/null @@ -1,16 +0,0 @@ -function V = bench_eu(numPaths) -%Simple European -steps = 250; -r = (0.05); -sigma = (0.4); -T = (1); -dt = T/(steps); -K = (100); - -S = 100 * ones(numPaths,1); - -for i=1:steps - rnd = randn(numPaths,1); - S = S .* exp((r-0.5*sigma.^2)*dt + sigma*sqrt(dt)*rnd); -end -V = mean( exp(-r*T)*max(K-S,0) ) diff --git a/test/perf/kernel/getdivgrad.jl b/test/perf/kernel/getdivgrad.jl deleted file mode 100644 index 8fa95f5a30d599..00000000000000 --- a/test/perf/kernel/getdivgrad.jl +++ /dev/null @@ -1,44 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# https://github.com/JuliaLang/julia/issues/4707 - -#----------------- Get the A matrix -function getDivGrad(n1,n2,n3) - # the Divergence - D1 = kron(sparse(1.0I, n3, n3), kron(sparse(1.0I, n2), ddx(n1))) - D2 = kron(sparse(1.0I, n3, n3), kron(ddx(n2), sparse(1.0I, n1, n1))) - D3 = kron(ddx(n3), kron(sparse(1.0I, n2, n2), sparse(1.0I, n1, n1))) - # DIV from faces to cell-centers - Div = [D1 D2 D3] - - return Div*Div' -end - -#----------------- 1D finite difference on staggered grid -function ddx(n) -# generate 1D derivatives - return d = spdiags(repeat([-1. 1.], n),[0,1],n,n+1) -end - -#------------- Build a diagonal matrix -function spdiags(B,d,m,n) -# spdiags(B,d,m,n) -# creates a sparse matrix from its diagonals - d = d[:] - p = length(d) - - len = zeros(Int, p+1, 1) - for k = 1:p - len[k+1] = len[k] + length(max(1,1-d[k]):min(m,n-d[k])) - end - a = zeros(Int, len[p+1], 3) - for k = 1:p - # Append new d[k]-th diagonal to compact form - i = max(1,1-d[k]):min(m,n-d[k]) - a[(len[k]+1):len[k+1],:] = [i i+d[k] B[i+(m>=n)*d[k],k]] - end - - A = sparse(a[:,1],a[:,2],a[:,3],m,n) - - return A -end diff --git a/test/perf/kernel/gk.jl b/test/perf/kernel/gk.jl deleted file mode 100644 index 11b59cfbb4c0fd..00000000000000 --- a/test/perf/kernel/gk.jl +++ /dev/null @@ -1,184 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Grigoriadis Khachiyan Matrix Games. -# -# Example run: gk(10000, [0.1]) -# -# Code from Dilys Thomas - -##### generate skew symmetric matrix ####### -function myunifskew(n) - A = zeros(n, n) - - #print("A[i,j] initialized with zeros \n") - - for i=1:n - for j=1:i-1 - temp=rand() - #print(temp) - if (temp < 0.5) - temp = rand() - A[i,j]= temp - A[j,i]= -A[i,j] - #print("welcome") - else - temp = rand() - A[j,i]= temp - A[i,j]= -A[j,i] - #print("welcome") - end - - end - if rem(i,1000) == 0 - #print(i) - #print("\n") - end - end - - return A -end - - -############ GK Algorithm starts ################## -#@profile begin -function gk(n, myeps) - A = myunifskew(n) - - g = length(myeps) - iteration = zeros(g) - times = zeros(g) - - for KK=1:g - - eps = myeps[KK] - - e = fill(1., n) - X = zeros(n) - U = zeros(n) - p = e./n - - t = 0 - #tm=U/t - stop = 0 - iter = 0 - epse = eps .* e - - csum = zeros(n) - - while(stop != 1) - t=t+1 - iter=t - #iteration number - - if rem(iter, 100) == 0 - #print(iter) - #print("\n") - end - - for i=1:n - csum[i] = sum(p[1:i]) - end - - marker=rand() - k=1 - - for i=2:n - if csum[i-1] <= marker && marker <= csum[i] - k=i - break - end - end - - X[k] += 1 - for i=1:n - U[i] += A[i,k] - end - - s = sum(p[1:n] .* exp.((eps/2)*A[1:n,k])) - for i=1:n - p[i]=(p[i]*exp((eps/2)*A[i,k])) / s - end - - u = U ./ t - - True=0 - for i=1:n - if u[i] <= epse[i] - True = True+1 - end - end - - if True == n - stop=1 - end - - end - - times[KK] = 0 - iteration[KK] = iter - - x = X/t - etx=sum(x) - - AX=A*X - Ax = A*x - error=abs.(AX)-abs.(U) - #print(Ax) - - Axepse=0 - for i=1:n - if Ax[i]<=epse[i] - Axepse = Axepse+1 - end - end - - if Axepse==n - #print(" \n Ax <= eps*e \n") - end - - #if A*x <= eps*e - # print(" Ax <= eps*e \n ") - #end - - errorlmt = 0 - for i=1:n - if error[i]<1e-8 - errorlmt = errorlmt+1 - end - end - - if errorlmt ==n - #print("Assertion condition is satisfied i.e. AX-U<10^-8 \n") - else - print("Error: AX-U<10^-8 not satisfied \n") - end - - #print("welcome") - - # print("Time for \n") - # print(eps) - # print("\n") - # print("is \n") - # print(times[KK]) - # print("\n") - # print("Number of iteration is \n") - # print(iteration[KK]) - # print("\n") - end - - # print("Epsilon vector is \n") - # print(myeps) - # print("\n") - # print("time vector is \n ") - # print(times) - # print("\n") - # print("Iteration Vector is \n") - # print(iteration) - # print("\n \n") - - #out = [myeps, time, iteration] - #print("Epsilon-Time-Iteration tradeoff \n") - #print(out) - #print("\n \n") -end -#end # @profile begin diff --git a/test/perf/kernel/gk.m b/test/perf/kernel/gk.m deleted file mode 100644 index 24aa2e1fee2067..00000000000000 --- a/test/perf/kernel/gk.m +++ /dev/null @@ -1,163 +0,0 @@ -function []=gk(n,myeps) -%clear -format longEng - -%A = skewdec(n,n); -%r=max(A); -%s=max(r); -%A=A/s -A=myunifskew(n); -A; - -[f,g]=size(myeps); -for KK=1:g - eps = myeps(KK); - %xlswrite('output.xls', A,'skew-symmetric-matrix A') - e=ones(n,1); - X=zeros(n,1); - U=zeros(n,1); - p=e/n; - t=0; - %tm=U/t - stop=0; - iter=0; - tic - while(stop~=1) - t=t+1; - iter=t; - %iteration number - - if rem(iter, 100) == 0 - disp(iter) - end - - iter ; - %cumsum = zeros(n,1); - for i=1:n - cumsum(i)=sum(p(1:i)); - end - %zi=rand(n,1); - con=0; - marker=rand; - k=1; - %while con~=1 - for i=2:n - if cumsum(i-1)<=marker && marker<=cumsum(i) - k=i; - break; - %con=1; - end - end - %end - - X(k)=X(k)+1; - for i=1:n - U(i)=U(i)+A(i,k); - end - - s= (sum(p(1:n).*exp((eps/2)*A(1:n,k)))); - for i=1:n - p(i)=(p(i)*exp((eps/2)*A(i,k))) / s; - end - p; - %FID=fopen('output.txt', 'a'); - %C=fwrite(FID,p); - %fclose(FID); - u=U/t; - if u<=eps*e - stop=1; - x=X/t; - end - - %disp('hello') - - end - iter; - x; - toc - time(KK)=toc; - iteration(KK) = iter; - etx=sum(x) - AX=A*X; - error=abs(AX)-abs(U); - error; - sum(error) - - if A*x <= eps*e - disp(' Ax <= eps*e ') - end - if error<10^-8 - - disp('Assertion condition is satisfied i.e. AX-U<10^-8') - - else - disp('Error: AX-U<10^-8 not satisfied ') - end - - disp('Time for'); - disp(eps); - disp('is'); - disp(time(KK)); - disp('Number of iteration is '); - disp(iteration(KK)); -end - -disp('Epsilon vector is '); -disp(myeps); -disp('time vector is'); -disp(time); -disp('Iteration Vector is'); -disp(iteration); - -out = [myeps; time; iteration]; -disp('Epsilon-Time-Iteration tradeoff'); -disp(out); - -%save outputallvar.mat -%save outputdat.dat A -ASCII -%xlswrite('outputxls.xls', out,'eps-time-iterations GK') - -%{ -xlswrite('output.xls', p,'Probability p') -xlswrite('output.xls', b,'Stp crt Udivt') -xlswrite('output.xls', x,'Opt sol x') -xlswrite('output.xls', time,'Time Taken') -xlswrite('output.xls', iter,'no of iteration') -xlswrite('output.xls',error ,'Error') -%} - -function [a]=myunifskew(n) -%a=rand(n) -%{ -for i=1:n - a(i,i)=0; -end -%} - -a=zeros(n); - -disp('a(i,j) initialized with zeros'); - -for i=1:n - for j=1:i-1 - temp=rand; - if (temp < 0.5 ) - a(i,j)= rand; - a(j,i)= -a(i,j); - else - a(j,i)= rand; - a(i,j)= -a(j,i); - end - - end - if rem(i,1000) == 0 - disp(i) - end -end - -%{ -if a == -a' - display('Skew symmetric MATRIX CREATED'); -end - -%} diff --git a/test/perf/kernel/go_benchmark.c b/test/perf/kernel/go_benchmark.c deleted file mode 100644 index ebf8b6596f5979..00000000000000 --- a/test/perf/kernel/go_benchmark.c +++ /dev/null @@ -1,548 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -/* Benchmark implementing the board logic for the game of go and - * exercising it by playing random games. Derived from - * http://www.lysator.liu.se/~gunnar/gtp/brown-1.0.tar.gz - */ -#include -#include -#include - -#define MAX_BOARD 23 - -#define EMPTY 0 -#define WHITE 1 -#define BLACK 2 - -/* Used in the final_status[] array. */ -#define DEAD 0 -#define ALIVE 1 -#define SEKI 2 -#define WHITE_TERRITORY 3 -#define BLACK_TERRITORY 4 -#define UNKNOWN 5 - -/* Macro to find the opposite color. */ -#define OTHER_COLOR(color) (WHITE + BLACK - (color)) - -static int board_size = 9; -static float komi = 0.0; - -/* Board represented by a 1D array. The first board_size*board_size - * elements are used. Vertices are indexed row by row, starting with 0 - * in the upper left corner. - */ -static int board[MAX_BOARD * MAX_BOARD]; - -/* Stones are linked together in a circular list for each string. */ -static int next_stone[MAX_BOARD * MAX_BOARD]; - -/* Storage for final status computations. */ -static int final_status[MAX_BOARD * MAX_BOARD]; - -/* Point which would be an illegal ko recapture. */ -static int ko_i, ko_j; - -/* Offsets for the four directly adjacent neighbors. Used for looping. */ -static int deltai[4] = {-1, 1, 0, 0}; -static int deltaj[4] = {0, 0, -1, 1}; - -/* Macros to convert between 1D and 2D coordinates. The 2D coordinate - * (i, j) points to row i and column j, starting with (0,0) in the - * upper left corner. - */ -#define POS(i, j) ((i) * board_size + (j)) -#define I(pos) ((pos) / board_size) -#define J(pos) ((pos) % board_size) - -/* xor-shift random number generator. */ -static unsigned int rand_state = 2463534242U; - -static void -xor_srand(unsigned int seed) -{ - rand_state = seed; -} - -static unsigned int -xor_randn(unsigned int n) -{ - rand_state ^= (rand_state << 13); - rand_state ^= (rand_state >> 17); - rand_state ^= (rand_state << 5); - return rand_state % n; -} - -static void -clear_board() -{ - memset(board, 0, sizeof(board)); -} - -static void -init_brown(unsigned int seed) -{ - xor_srand(seed); - clear_board(); -} - -static int -get_board(int i, int j) -{ - return board[i * board_size + j]; -} - -static int -pass_move(int i, int j) -{ - return i == -1 && j == -1; -} - -static int -on_board(int i, int j) -{ - return i >= 0 && i < board_size && j >= 0 && j < board_size; -} - -static int -legal_move(int i, int j, int color) -{ - int other = OTHER_COLOR(color); - - /* Pass is always legal. */ - if (pass_move(i, j)) - return 1; - - /* Already occupied. */ - if (get_board(i, j) != EMPTY) - return 0; - - /* Illegal ko recapture. It is not illegal to fill the ko so we must - * check the color of at least one neighbor. - */ - if (i == ko_i && j == ko_j - && ((on_board(i - 1, j) && get_board(i - 1, j) == other) - || (on_board(i + 1, j) && get_board(i + 1, j) == other))) - return 0; - - return 1; -} - -/* Does the string at (i, j) have any more liberty than the one at - * (libi, libj)? - */ -static int -has_additional_liberty(int i, int j, int libi, int libj) -{ - int pos = POS(i, j); - do { - int ai = I(pos); - int aj = J(pos); - int k; - for (k = 0; k < 4; k++) { - int bi = ai + deltai[k]; - int bj = aj + deltaj[k]; - if (on_board(bi, bj) && get_board(bi, bj) == EMPTY - && (bi != libi || bj != libj)) - return 1; - } - - pos = next_stone[pos]; - } while (pos != POS(i, j)); - - return 0; -} - -/* Does (ai, aj) provide a liberty for a stone at (i, j)? */ -static int -provides_liberty(int ai, int aj, int i, int j, int color) -{ - /* A vertex off the board does not provide a liberty. */ - if (!on_board(ai, aj)) - return 0; - - /* An empty vertex IS a liberty. */ - if (get_board(ai, aj) == EMPTY) - return 1; - - /* A friendly string provides a liberty to (i, j) if it currently - * has more liberties than the one at (i, j). - */ - if (get_board(ai, aj) == color) - return has_additional_liberty(ai, aj, i, j); - - /* An unfriendly string provides a liberty if and only if it is - * captured, i.e. if it currently only has the liberty at (i, j). - */ - return !has_additional_liberty(ai, aj, i, j); -} - -/* Is a move at (i, j) suicide for color? */ -static int -suicide(int i, int j, int color) -{ - int k; - for (k = 0; k < 4; k++) - if (provides_liberty(i + deltai[k], j + deltaj[k], i, j, color)) - return 0; - - return 1; -} - -/* Remove a string from the board array. There is no need to modify - * the next_stone array since this only matters where there are - * stones present and the entire string is removed. - */ -static int -remove_string(int i, int j) -{ - int pos = POS(i, j); - int removed = 0; - do { - board[pos] = EMPTY; - removed++; - pos = next_stone[pos]; - } while (pos != POS(i, j)); - - return removed; -} - -/* Do two vertices belong to the same string. It is required that both - * pos1 and pos2 point to vertices with stones. - */ -static int -same_string(int pos1, int pos2) -{ - int pos = pos1; - do { - if (pos == pos2) - return 1; - pos = next_stone[pos]; - } while (pos != pos1); - - return 0; -} - -/* Play at (i, j) for color. No legality check is done here. We need - * to properly update the board array, the next_stone array, and the - * ko point. - */ -static void -play_move(int i, int j, int color) -{ - int pos = POS(i, j); - int captured_stones = 0; - int k; - - /* Reset the ko point. */ - ko_i = -1; - ko_j = -1; - - /* Nothing more happens if the move was a pass. */ - if (pass_move(i, j)) - return; - - /* If the move is a suicide we only need to remove the adjacent - * friendly stones. - */ - if (suicide(i, j, color)) { - for (k = 0; k < 4; k++) { - int ai = i + deltai[k]; - int aj = j + deltaj[k]; - if (on_board(ai, aj) - && get_board(ai, aj) == color) - remove_string(ai, aj); - } - return; - } - - /* Not suicide. Remove captured opponent strings. */ - for (k = 0; k < 4; k++) { - int ai = i + deltai[k]; - int aj = j + deltaj[k]; - if (on_board(ai, aj) - && get_board(ai, aj) == OTHER_COLOR(color) - && !has_additional_liberty(ai, aj, i, j)) - captured_stones += remove_string(ai, aj); - } - - /* Put down the new stone. Initially build a single stone string by - * setting next_stone[pos] pointing to itself. - */ - board[pos] = color; - next_stone[pos] = pos; - - /* If we have friendly neighbor strings we need to link the strings - * together. - */ - for (k = 0; k < 4; k++) { - int ai = i + deltai[k]; - int aj = j + deltaj[k]; - int pos2 = POS(ai, aj); - /* Make sure that the stones are not already linked together. This - * may happen if the same string neighbors the new stone in more - * than one direction. - */ - if (on_board(ai, aj) && board[pos2] == color && !same_string(pos, pos2)) { - /* The strings are linked together simply by swapping the - * next_stone pointers. - */ - int tmp = next_stone[pos2]; - next_stone[pos2] = next_stone[pos]; - next_stone[pos] = tmp; - } - } - - /* If we have captured exactly one stone and the new string is a - * single stone it may have been a ko capture. - */ - if (captured_stones == 1 && next_stone[pos] == pos) { - int ai, aj; - /* Check whether the new string has exactly one liberty. If so it - * would be an illegal ko capture to play there immediately. We - * know that there must be a liberty immediately adjacent to the - * new stone since we captured one stone. - */ - for (k = 0; k < 4; k++) { - ai = i + deltai[k]; - aj = j + deltaj[k]; - if (on_board(ai, aj) && get_board(ai, aj) == EMPTY) - break; - } - - if (!has_additional_liberty(i, j, ai, aj)) { - ko_i = ai; - ko_j = aj; - } - } -} - -/* Generate a move. */ -static void -generate_move(int *i, int *j, int color) -{ - int moves[MAX_BOARD * MAX_BOARD]; - int num_moves = 0; - int move; - int ai, aj; - int k; - - memset(moves, 0, sizeof(moves)); - for (ai = 0; ai < board_size; ai++) - for (aj = 0; aj < board_size; aj++) { - /* Consider moving at (ai, aj) if it is legal and not suicide. */ - if (legal_move(ai, aj, color) - && !suicide(ai, aj, color)) { - /* Further require the move not to be suicide for the opponent... */ - if (!suicide(ai, aj, OTHER_COLOR(color))) - moves[num_moves++] = POS(ai, aj); - else { - /* ...however, if the move captures at least one stone, - * consider it anyway. - */ - for (k = 0; k < 4; k++) { - int bi = ai + deltai[k]; - int bj = aj + deltaj[k]; - if (on_board(bi, bj) && get_board(bi, bj) == OTHER_COLOR(color)) { - moves[num_moves++] = POS(ai, aj); - break; - } - } - } - } - } - - /* Choose one of the considered moves randomly with uniform - * distribution. (Strictly speaking the moves with smaller 1D - * coordinates tend to have a very slightly higher probability to be - * chosen, but for all practical purposes we get a uniform - * distribution.) - */ - if (num_moves > 0) { - move = moves[xor_randn(num_moves)]; - *i = I(move); - *j = J(move); - } - else { - /* But pass if no move was considered. */ - *i = -1; - *j = -1; - } -} - -/* Set a final status value for an entire string. */ -static void -set_final_status_string(int pos, int status) -{ - int pos2 = pos; - do { - final_status[pos2] = status; - pos2 = next_stone[pos2]; - } while (pos2 != pos); -} - -/* Compute final status. This function is only valid to call in a - * position where generate_move() would return pass for at least one - * color. - * - * Due to the nature of the move generation algorithm, the final - * status of stones can be determined by a very simple algorithm: - * - * 1. Stones with two or more liberties are alive with territory. - * 2. Stones in atari are dead. - * - * Moreover alive stones are unconditionally alive even if the - * opponent is allowed an arbitrary number of consecutive moves. - * Similarly dead stones cannot be brought alive even by an arbitrary - * number of consecutive moves. - * - * Seki is not an option. The move generation algorithm would never - * leave a seki on the board. - * - * Comment: This algorithm doesn't work properly if the game ends with - * an unfilled ko. If three passes are required for game end, - * that will not happen. - */ -static void -compute_final_status(void) -{ - int i, j; - int pos; - int k; - - for (pos = 0; pos < board_size * board_size; pos++) - final_status[pos] = UNKNOWN; - - for (i = 0; i < board_size; i++) - for (j = 0; j < board_size; j++) - if (get_board(i, j) == EMPTY) - for (k = 0; k < 4; k++) { - int ai = i + deltai[k]; - int aj = j + deltaj[k]; - if (!on_board(ai, aj)) - continue; - /* When the game is finished, we know for sure that (ai, aj) - * contains a stone. The move generation algorithm would - * never leave two adjacent empty vertices. Check the number - * of liberties to decide its status, unless it's known - * already. - * - * If we should be called in a non-final position, just make - * sure we don't call set_final_status_string() on an empty - * vertex. - */ - pos = POS(ai, aj); - if (final_status[pos] == UNKNOWN) { - if (get_board(ai, aj) != EMPTY) { - if (has_additional_liberty(ai, aj, i, j)) - set_final_status_string(pos, ALIVE); - else - set_final_status_string(pos, DEAD); - } - } - /* Set the final status of the (i, j) vertex to either black - * or white territory. - */ - if (final_status[POS(i, j)] == UNKNOWN) { - if ((final_status[pos] == ALIVE) ^ (get_board(ai, aj) == WHITE)) - final_status[POS(i, j)] = BLACK_TERRITORY; - else - final_status[POS(i, j)] = WHITE_TERRITORY; - } - } -} - -static int -get_final_status(int i, int j) -{ - return final_status[POS(i, j)]; -} - -static float -compute_score() -{ - int i, j; - float score = komi; - - compute_final_status(); - for (i = 0; i < board_size; i++) { - for (j = 0; j < board_size; j++) { - int status = get_final_status(i, j); - if (status == BLACK_TERRITORY) { - score--; - } - else if (status == WHITE_TERRITORY) { - score++; - } - else if ((status == ALIVE) ^ (get_board(i, j) == WHITE)) { - score--; - } - else { - score++; - } - } - } - - return score; -} - -static void -benchmark(int num_games_per_point) -{ - int i, j; - unsigned int random_seed = 1U; - board_size = 9; - komi = 0.5; - - init_brown(random_seed); - - for (i = 0; i < board_size; i++) { - for (j = 0; j < board_size; j++) { - int white_wins = 0; - int black_wins = 0; - int k; - for (k = 0; k < num_games_per_point; k++) { - int passes = 0; - int num_moves = 1; - int color = WHITE; - clear_board(); - play_move(i, j, BLACK); - while (passes < 3 && num_moves < 600) { - int m, n; - generate_move(&m, &n, color); - play_move(m, n, color); - if (pass_move(m, n)) { - passes++; - } - else { - passes = 0; - } - num_moves++; - color = OTHER_COLOR(color); - } - if (passes == 3) { - if (compute_score() > 0) { - white_wins++; - } - else { - black_wins++; - } - } - } - /* - printf("%d %d %f\n", i, j, - (float) black_wins / (float) (black_wins + white_wins)); - */ - } - } -} - -int -main(int argc, char **argv) -{ - int num_games_per_point = 10; - if (argc > 1) - num_games_per_point = atoi(argv[1]); - benchmark(num_games_per_point); - return EXIT_SUCCESS; -} diff --git a/test/perf/kernel/go_benchmark.jl b/test/perf/kernel/go_benchmark.jl deleted file mode 100644 index 03b0acb03bfbde..00000000000000 --- a/test/perf/kernel/go_benchmark.jl +++ /dev/null @@ -1,486 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Benchmark implementing the board logic for the game of go and -# exercising it by playing random games. Derived from -# http://www.lysator.liu.se/~gunnar/gtp/brown-1.0.tar.gz -import Base.getindex - -const EMPTY = 0 -const WHITE = 1 -const BLACK = 2 - -# Function to find the opposite color. -other_color(color::Int) = WHITE + BLACK - color - -# Used in the final_status[] array. -const DEAD = 0 -const ALIVE = 1 -const SEKI = 2 -const WHITE_TERRITORY = 3 -const BLACK_TERRITORY = 4 -const UNKNOWN = 5 - -mutable struct XorRand - state::UInt32 -end - -function xor_srand(rand::XorRand, seed::UInt32) - rand.state = seed -end - -function xor_randn(rand::XorRand, n::UInt32) - rand.state ⊻= rand.state << 13 - rand.state ⊻= rand.state >> 17 - rand.state ⊻= rand.state << 5 - rand.state % n -end - -xor_randn(rand::XorRand, n::Int) = convert(Int, xor_randn(rand, convert(UInt32, n))) - -# Offsets for the four directly adjacent neighbors. Used for looping. -const deltai = (-1, 1, 0, 0) -const deltaj = (0, 0, -1, 1) -neighbor(i::Int, j::Int, k::Int) = (i + deltai[k], j + deltaj[k]) - -mutable struct Board - size::Int - komi::Float64 - - # Board represented by a 1D array. The first board_size*board_size - # elements are used. Vertices are indexed row by row, starting with 0 - # in the upper left corner. - board::Matrix{Int} - - # Stones are linked together in a circular list for each string. - next_stone::Matrix{Int} - - # Storage for final status computations. - final_status::Matrix{Int} - - # Point which would be an illegal ko recapture. - ko_i::Int - ko_j::Int - - # xor-shift random number generator. - rand::XorRand - - function Board(n::Int) - init(new(), n, convert(UInt32, 2463534242)) - end -end - -function init(board::Board, n::Int, seed::UInt32) - board.size = n - board.komi = 0.0 - board.board = zeros(Int, n, n) - board.next_stone = zeros(Int, n, n) - board.final_status = zeros(Int, n, n) - board.ko_i = 0 - board.ko_j = 0 - board.rand = XorRand(seed) - board -end - -getindex(board::Board, pos::Int) = board.board[pos] -getindex(board::Board, i::Int, j::Int) = board.board[i, j] - -# Functions to convert between 1D and 2D coordinates. The 2D coordinate -# (i, j) points to row i and column j, starting with (1,1) in the -# upper left corner. -POS(board::Board, i::Int, j::Int) = (j - 1) * board.size + i -IJ(board::Board, pos::Int) = (1 + mod((pos - 1), board.size), 1 + fld(pos - 1, board.size)) - -function set_komi(board::Board, komi::Float64) - board.komi = komi -end - -function set_random_seed(board::Board, seed::UInt32) - xor_srand(board.rand, seed) -end - -function clear(board::Board) - board.board[:] = EMPTY -end - -is_pass_move(i::Int, j::Int) = i == 0 && j == 0 - -function on_board(board::Board, i::Int, j::Int) - i >= 1 && i <= board.size && j >= 1 && j <= board.size -end - -function legal_move(board::Board, i::Int, j::Int, color::Int) - other = other_color(color) - - # Pass is always legal. - if is_pass_move(i, j) - return true - end - - # Already occupied. - if board[i, j] != EMPTY - return false - end - - # Illegal ko recapture. It is not illegal to fill the ko so we must - # check the color of at least one neighbor. - if i == board.ko_i && j == board.ko_j && - ((on_board(board, i - 1, j) && board[i - 1, j] == other) || - (on_board(board, i + 1, j) && board[i + 1, j] == other)) - return false - end - - true -end - -# Does the string at (i, j) have any more liberty than the one at (libi, libj)? -function has_additional_liberty(board::Board, i::Int, j::Int, libi::Int, libj::Int) - start = POS(board, i, j) - pos = start - while true - (ai, aj) = IJ(board, pos) - for k = 1:4 - (bi, bj) = neighbor(ai, aj, k) - if on_board(board, bi, bj) && board[bi, bj] == EMPTY && (bi != libi || bj != libj) - return true - end - end - - pos = board.next_stone[pos] - if pos == start - break - end - end - - false -end - -# Does (ai, aj) provide a liberty for a stone at (i, j)? -function provides_liberty(board::Board, ai::Int, aj::Int, i::Int, j::Int, color::Int) - # A vertex off the board does not provide a liberty. - if !on_board(board, ai, aj) - return false - end - - # An empty vertex IS a liberty. - if board[ai, aj] == EMPTY - return true - end - - # A friendly string provides a liberty to (i, j) if it currently - # has more liberties than the one at (i, j). - if board[ai, aj] == color - return has_additional_liberty(board, ai, aj, i, j) - end - - # An unfriendly string provides a liberty if and only if it is - # captured, i.e. if it currently only has the liberty at (i, j). - !has_additional_liberty(board, ai, aj, i, j) -end - -# Is a move at ij suicide for color? -function suicide(board::Board, i::Int, j::Int, color::Int) - for k = 1:4 - if provides_liberty(board, neighbor(i, j, k)..., i, j, color) - return false - end - end - true -end - -# Remove a string from the board array. There is no need to modify -# the next_stone array since this only matters where there are -# stones present and the entire string is removed. -function remove_string(board::Board, i::Int, j::Int) - start = POS(board, i, j) - pos = start - removed = 0 - while true - board.board[pos] = EMPTY - removed += 1 - pos = board.next_stone[pos] - if pos == start - break - end - end - removed -end - -# Do two vertices belong to the same string? It is required that both -# pos1 and pos2 point to vertices with stones. -function same_string(board::Board, pos1::Int, pos2::Int) - pos = pos1 - while true - if pos == pos2 - return true - end - pos = board.next_stone[pos] - if pos == pos1 - break - end - end - false -end - -# Play at (i, j) for color. No legality check is done here. We need -# to properly update the board array, the next_stone array, and the -# ko point. -function play_move(board::Board, i::Int, j::Int, color::Int) - pos = POS(board, i, j) - captured_stones = 0 - - # Reset the ko point. - board.ko_i = 0 - board.ko_j = 0 - - # Nothing more happens if the move was a pass. - if is_pass_move(i, j) - return - end - - # If the move is a suicide we only need to remove the adjacent - # friendly stones. - if suicide(board, i, j, color) - for k = 1:4 - (ai, aj) = neighbor(i, j, k) - if on_board(board, ai, aj) && board[ai, aj] == color - remove_string(board, ai, aj) - end - end - return - end - - # Not suicide. Remove captured opponent strings. - for k = 1:4 - (ai, aj) = neighbor(i, j, k) - if on_board(board, ai, aj) && board[ai, aj] == other_color(color) && !has_additional_liberty(board, ai, aj, i, j) - captured_stones += remove_string(board, ai, aj) - end - end - - # Put down the new stone. Initially build a single stone string by - # setting next_stone[pos] pointing to itself. - board.board[pos] = color - board.next_stone[pos] = pos - - # If we have friendly neighbor strings we need to link the strings - # together. - for k = 1:4 - (ai, aj) = neighbor(i, j, k) - pos2 = POS(board, ai, aj) - # Make sure that the stones are not already linked together. This - # may happen if the same string neighbors the new stone in more - # than one direction. - if on_board(board, ai, aj) && board[pos2] == color && !same_string(board, pos, pos2) - # The strings are linked together simply by swapping the - # next_stone pointers. - (board.next_stone[pos], board.next_stone[pos2]) = (board.next_stone[pos2], board.next_stone[pos]) - end - end - - # If we have captured exactly one stone and the new string is a - # single stone it may have been a ko capture. - if captured_stones == 1 && board.next_stone[pos] == pos - # Check whether the new string has exactly one liberty. If so it - # would be an illegal ko capture to play there immediately. We - # know that there must be a liberty immediately adjacent to the - # new stone since we captured one stone. - for k = 1:4 - (ai, aj) = neighbor(i, j, k) - if on_board(board, ai, aj) && board[ai, aj] == EMPTY - if !has_additional_liberty(board, i, j, ai, aj) - board.ko_i = ai - board.ko_j = aj - end - break - end - end - end -end - -# Generate a move. -function generate_move(board::Board, color::Int) - moves = zeros(Int, 2, board.size * board.size) - num_moves = 0 - - for ai = 1:board.size, aj = 1:board.size - # Consider moving at (ai, aj) if it is legal and not suicide. - if legal_move(board, ai, aj, color) && !suicide(board, ai, aj, color) - # Further require the move not to be suicide for the opponent... - if !suicide(board, ai, aj, other_color(color)) - num_moves += 1 - moves[:,num_moves] = [ai, aj] - else - # ...however, if the move captures at least one stone, - # consider it anyway. - for k = 1:4 - (bi, bj) = neighbor(ai, aj, k) - if on_board(board, bi, bj) && board[bi, bj] == other_color(color) - num_moves += 1 - moves[:,num_moves] = [ai, aj] - break - end - end - end - end - end - - # Choose one of the considered moves randomly with uniform - # distribution. (Strictly speaking the moves with smaller 1D - # coordinates tend to have a very slightly higher probability to be - # chosen, but for all practical purposes we get a uniform - # distribution.) - if num_moves > 0 - move = moves[:,1 + xor_randn(board.rand, num_moves)] - return (move[1], move[2]) - else - # But pass if no move was considered. - return (0, 0) - end -end - -# Set a final status value for an entire string. -function set_final_status_string(board::Board, pos::Int, status::Int) - start = pos - while true - board.final_status[pos] = status - pos = board.next_stone[pos] - if pos == start - break - end - end -end - - -# Compute final status. This function is only valid to call in a -# position where generate_move() would return pass for at least one -# color. -# -# Due to the nature of the move generation algorithm, the final -# status of stones can be determined by a very simple algorithm: -# -# 1. Stones with two or more liberties are alive with territory. -# 2. Stones in atari are dead. -# -# Moreover alive stones are unconditionally alive even if the -# opponent is allowed an arbitrary number of consecutive moves. -# Similarly dead stones cannot be brought alive even by an arbitrary -# number of consecutive moves. -# -# Seki is not an option. The move generation algorithm would never -# leave a seki on the board. -# -# Comment: This algorithm doesn't work properly if the game ends with -# an unfilled ko. If three passes are required for game end, -# that will not happen. -# -function compute_final_status(board::Board) - board.final_status[:] = UNKNOWN - - for i = 1:board.size, j = 1:board.size - if board[i, j] == EMPTY - for k = 1:4 - (ai, aj) = neighbor(i, j, k) - if !on_board(board, ai, aj) - continue - end - # When the game is finished, we know for sure that (ai, aj) - # contains a stone. The move generation algorithm would - # never leave two adjacent empty vertices. Check the number - # of liberties to decide its status, unless it's known - # already. - # - # If we should be called in a non-final position, just make - # sure we don't call set_final_status_string() on an empty - # vertex. - pos = POS(board, ai, aj) - if board.final_status[ai, aj] == UNKNOWN - if board[ai, aj] != EMPTY - if has_additional_liberty(board, ai, aj, i, j) - set_final_status_string(board, pos, ALIVE) - else - set_final_status_string(board, pos, DEAD) - end - end - end - # Set the final status of the pos vertex to either black - # or white territory. - if board.final_status[i, j] == UNKNOWN - if (board.final_status[ai, aj] == ALIVE) ⊻ (board[ai, aj] == WHITE) - board.final_status[i, j] = BLACK_TERRITORY - else - board.final_status[i, j] = WHITE_TERRITORY - end - end - end - end - end -end - -get_final_status(board::Board, i::Int, j::Int) = board.final_status[i, j] - -function compute_score(board::Board) - score = board.komi - compute_final_status(board) - for i = 1:board.size, j = 1:board.size - status = get_final_status(board, i, j) - if status == BLACK_TERRITORY - score -= 1.0 - elseif status == WHITE_TERRITORY - score += 1.0 - elseif (status == ALIVE) ⊻ (board[i, j] == WHITE) - score -= 1.0 - else - score += 1.0 - end - end - score -end - -function benchmark(num_games_per_point::Int) - random_seed = convert(UInt32, 1) - board_size = 9 - komi = 0.5 - - board = Board(board_size) - set_komi(board, komi) - set_random_seed(board, random_seed) - - for i = 1:board.size, j = 1:board.size - white_wins = 0 - black_wins = 0 - for k = 1:num_games_per_point - passes = 0 - num_moves = 1 - color = WHITE - clear(board) - play_move(board, i, j, BLACK) - while passes < 3 && num_moves < 600 - (movei, movej) = generate_move(board, color) - play_move(board, movei, movej, color) - if is_pass_move(movei, movej) - passes += 1 - else - passes = 0 - end - num_moves += 1 - color = other_color(color) - end - if passes == 3 - if compute_score(board) > 0 - white_wins += 1 - else - black_wins += 1 - end - end - end -# @printf("%d %d %f\n", i - 1, j - 1, black_wins / (black_wins + white_wins)) - end -end - -function main(args) - n = 10 - if length(args) > 0 - n = parse(Int, args[1]) - end - @time benchmark(n) -end diff --git a/test/perf/kernel/imdb-1.tsv b/test/perf/kernel/imdb-1.tsv deleted file mode 100644 index 540f9c4e0c57bc..00000000000000 --- a/test/perf/kernel/imdb-1.tsv +++ /dev/null @@ -1,31383 +0,0 @@ -McClure, Marc (I) Freaky Friday 2003 -McClure, Marc (I) Coach Carter 2005 -McClure, Marc (I) Superman II 1980 -McClure, Marc (I) Apollo 13 1995 -McClure, Marc (I) Superman 1978 -McClure, Marc (I) Back to the Future 1985 -McClure, Marc (I) Back to the Future Part III 1990 -Cooper, Chris (I) Me, Myself & Irene 2000 -Cooper, Chris (I) October Sky 1999 -Cooper, Chris (I) Capote 2005 -Cooper, Chris (I) The Bourne Supremacy 2004 -Cooper, Chris (I) The Patriot 2000 -Cooper, Chris (I) The Town 2010 -Cooper, Chris (I) Seabiscuit 2003 -Cooper, Chris (I) A Time to Kill 1996 -Cooper, Chris (I) Where the Wild Things Are 2009 -Cooper, Chris (I) The Muppets 2011 -Cooper, Chris (I) American Beauty 1999 -Cooper, Chris (I) Syriana 2005 -Cooper, Chris (I) The Horse Whisperer 1998 -Cooper, Chris (I) Jarhead 2005 -Cooper, Chris (I) The Bourne Identity 2002 -Cassavetes, Frank Battleship 2012 -Cassavetes, Frank John Q 2002 -Cassavetes, Frank My Sister's Keeper 2009 -Cassavetes, Frank Kicking & Screaming 2005 -Knight, Shirley (I) As Good as It Gets 1997 -Knight, Shirley (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Knight, Shirley (I) Paul Blart: Mall Cop 2009 -Jolie, Angelina Lara Croft: Tomb Raider 2001 -Jolie, Angelina Salt 2010 -Jolie, Angelina The Good Shepherd 2006 -Jolie, Angelina Alexander 2004 -Jolie, Angelina Kung Fu Panda 2008 -Jolie, Angelina Beowulf 2007 -Jolie, Angelina Shark Tale 2004 -Jolie, Angelina Kung Fu Panda 2 2011 -Jolie, Angelina Lara Croft Tomb Raider: The Cradle of Life 2003 -Jolie, Angelina The Tourist 2010 -Jolie, Angelina The Bone Collector 1999 -Jolie, Angelina Gone in Sixty Seconds 2000 -Jolie, Angelina Wanted 2008 -Jolie, Angelina Sky Captain and the World of Tomorrow 2004 -Jolie, Angelina Mr. & Mrs. Smith 2005 -Jolie, Angelina Changeling 2008 -Yip, Françoise AVPR: Aliens vs Predator - Requiem 2007 -Yip, Françoise Blade: Trinity 2004 -Yip, Françoise Romeo Must Die 2000 -Cueto, Esteban Collateral Damage 2002 -Cueto, Esteban Miss Congeniality 2: Armed and Fabulous 2005 -Cueto, Esteban Fast Five 2011 -Cueto, Esteban The Scorpion King 2002 -Cueto, Esteban xXx 2002 -Danner, Blythe Meet the Parents 2000 -Danner, Blythe The Sisterhood of the Traveling Pants 2 2008 -Danner, Blythe The Lucky One 2012 -Danner, Blythe Little Fockers 2010 -Danner, Blythe Meet the Fockers 2004 -Danner, Blythe Hauru no ugoku shiro 2004 -Danner, Blythe Forces of Nature 1999 -Danner, Blythe The X Files 1998 -Buck (X) Snow Dogs 2002 -Buck (X) Eight Below 2006 -Buck (X) Race to Witch Mountain 2009 -Darshi, Agam Final Destination 3 2006 -Darshi, Agam Watchmen 2009 -Darshi, Agam Snakes on a Plane 2006 -Bissonnette, Joel The Sum of All Fears 2002 -Bissonnette, Joel The Curious Case of Benjamin Button 2008 -Bissonnette, Joel Fight Club 1999 -Butters, Mike Dante's Peak 1997 -Butters, Mike Titanic 1997 -Butters, Mike Saw V 2008 -Butters, Mike Saw IV 2007 -Butters, Mike D2: The Mighty Ducks 1994 -Butters, Mike Saw 2004 -Taylor, Elayn J. Rules of Engagement 2000 -Taylor, Elayn J. Dr. Dolittle 2 2001 -Taylor, Elayn J. Something's Gotta Give 2003 -Franko, Victor The Game Plan 2007 -Franko, Victor Paul Blart: Mall Cop 2009 -Franko, Victor Underdog 2007 -Franko, Victor 21 2008 -Franko, Victor Knowing 2009 -Franko, Victor Fever Pitch 2005 -Ruskin, Joseph Indecent Proposal 1993 -Ruskin, Joseph Star Trek: Insurrection 1998 -Ruskin, Joseph The Scorpion King 2002 -Jennings, Juanita Runaway Jury 2003 -Jennings, Juanita What Women Want 2000 -Jennings, Juanita Basic Instinct 1992 -Monroe, Steve (I) Cast Away 2000 -Monroe, Steve (I) J. Edgar 2011 -Monroe, Steve (I) The Nutty Professor 1996 -Monroe, Steve (I) Austin Powers: International Man of Mystery 1997 -Monroe, Steve (I) Space Cowboys 2000 -Monroe, Steve (I) Superhero Movie 2008 -Monroe, Steve (I) Miss Congeniality 2000 -Beasley, Allyce Legally Blonde 2001 -Beasley, Allyce Recess: School's Out 2001 -Beasley, Allyce Stuart Little 1999 -Byrne, Michael (I) Indiana Jones and the Last Crusade 1989 -Byrne, Michael (I) Braveheart 1995 -Byrne, Michael (I) The Sum of All Fears 2002 -Byrne, Michael (I) The Saint 1997 -Byrne, Michael (I) Gangs of New York 2002 -Byrne, Michael (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Byrne, Michael (I) Tomorrow Never Dies 1997 -Kogan, Milt E.T.: The Extra-Terrestrial 1982 -Kogan, Milt The Descendants 2011 -Kogan, Milt Bachelor Party 1984 -Shaw, John (I) Watchmen 2009 -Shaw, John (I) The Core 2003 -Shaw, John (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Shaw, John (I) The Day the Earth Stood Still 2008 -Manji, Rizwan Charlie Wilson's War 2007 -Manji, Rizwan Transformers 2007 -Manji, Rizwan The Dictator 2012 -Miller, Dick (I) Pulp Fiction 1994 -Miller, Dick (I) Small Soldiers 1998 -Miller, Dick (I) The Terminator 1984 -Harrelson, Woody Wag the Dog 1997 -Harrelson, Woody Anger Management 2003 -Harrelson, Woody Indecent Proposal 1993 -Harrelson, Woody After the Sunset 2004 -Harrelson, Woody Zombieland 2009 -Harrelson, Woody Friends with Benefits 2011 -Harrelson, Woody The Thin Red Line 1998 -Harrelson, Woody The Hunger Games 2012 -Harrelson, Woody Austin Powers: The Spy Who Shagged Me 1999 -Harrelson, Woody No Country for Old Men 2007 -Nall, Benita Krista Catch Me If You Can 2002 -Nall, Benita Krista Minority Report 2002 -Nall, Benita Krista 13 Going on 30 2004 -Colin, Margaret Unfaithful 2002 -Colin, Margaret Independence Day 1996 -Colin, Margaret Pretty in Pink 1986 -Colin, Margaret The Devil's Own 1997 -Jackson, Clydene Norbit 2007 -Jackson, Clydene The Princess Diaries 2: Royal Engagement 2004 -Jackson, Clydene License to Wed 2007 -Jackson, Clydene The Ides of March 2011 -Oglesby, Randy We Were Soldiers 2002 -Oglesby, Randy Independence Day 1996 -Oglesby, Randy Patch Adams 1998 -Oglesby, Randy Bringing Down the House 2003 -Oglesby, Randy Pearl Harbor 2001 -Oglesby, Randy Nothing to Lose 1997 -Oglesby, Randy Liar Liar 1997 -Oglesby, Randy The Island 2005 -De'Antone, Marc Norbit 2007 -De'Antone, Marc Wedding Crashers 2005 -De'Antone, Marc Million Dollar Baby 2004 -De'Antone, Marc Kicking & Screaming 2005 -De'Antone, Marc Little Miss Sunshine 2006 -Orange, Ayesha Austin Powers: The Spy Who Shagged Me 1999 -Orange, Ayesha She's All That 1999 -Orange, Ayesha Austin Powers in Goldmember 2002 -Orange, Ayesha Miss Congeniality 2: Armed and Fabulous 2005 -Mullarkey, Neil Spice World 1997 -Mullarkey, Neil Austin Powers: International Man of Mystery 1997 -Mullarkey, Neil Austin Powers in Goldmember 2002 -Forest, Denis The Mask 1994 -Forest, Denis Eraser 1996 -Forest, Denis Cliffhanger 1993 -Garber, Victor Kung Fu Panda 2 2011 -Garber, Victor Star Trek 2009 -Garber, Victor How Stella Got Her Groove Back 1998 -Garber, Victor The First Wives Club 1996 -Garber, Victor The Town 2010 -Garber, Victor Sleepless in Seattle 1993 -Garber, Victor Legally Blonde 2001 -Garber, Victor Titanic 1997 -Hardy, Tom (I) Inception 2010 -Hardy, Tom (I) Black Hawk Down 2001 -Hardy, Tom (I) Star Trek: Nemesis 2002 -Hardy, Tom (I) This Means War 2012 -Hardy, Tom (I) Tinker Tailor Soldier Spy 2011 -Dean, Loren Apollo 13 1995 -Dean, Loren Space Cowboys 2000 -Dean, Loren Enemy of the State 1998 -Donner, Jack Four Christmases 2008 -Donner, Jack This Is It 2009 -Donner, Jack J. Edgar 2011 -Donner, Jack Stigmata 1999 -Gregory, Constantine GoldenEye 1995 -Gregory, Constantine The Sum of All Fears 2002 -Gregory, Constantine Shanghai Knights 2003 -Maestro, Mía Frida 2002 -Maestro, Mía The Twilight Saga: Breaking Dawn - Part 1 2011 -Maestro, Mía Poseidon 2006 -Carpenter, Brian (I) We Were Soldiers 2002 -Carpenter, Brian (I) Evan Almighty 2007 -Carpenter, Brian (I) Superhero Movie 2008 -Richardson, Laurence (II) Flightplan 2005 -Richardson, Laurence (II) Johnny English 2003 -Richardson, Laurence (II) 101 Dalmatians 1996 -Knowles, Shawn Big Mommas: Like Father, Like Son 2011 -Knowles, Shawn We Are Marshall 2006 -Knowles, Shawn The Blind Side 2009 -Ogbonna, Chuk Salt 2010 -Ogbonna, Chuk It's Complicated 2009 -Ogbonna, Chuk Step Up 3D 2010 -Pepper, Bob (II) Lethal Weapon 4 1998 -Pepper, Bob (II) Mars Attacks! 1996 -Pepper, Bob (II) Rat Race 2001 -Pepper, Bob (II) Ocean's Eleven 2001 -Pepper, Bob (II) The Flintstones in Viva Rock Vegas 2000 -Pepper, Bob (II) 21 2008 -Pepper, Bob (II) Race to Witch Mountain 2009 -Pepper, Bob (II) Gone in Sixty Seconds 2000 -Pepper, Bob (II) Con Air 1997 -Pepper, Bob (II) The Mexican 2001 -Pepper, Bob (II) Miss Congeniality 2: Armed and Fabulous 2005 -Pepper, Bob (II) America's Sweethearts 2001 -Pepper, Bob (II) Vegas Vacation 1997 -Davis, Hope (I) About Schmidt 2002 -Davis, Hope (I) Real Steel 2011 -Davis, Hope (I) Home Alone 1990 -Carley, Kurt Underworld: Evolution 2006 -Carley, Kurt Underworld: Rise of the Lycans 2009 -Carley, Kurt Underworld 2003 -Carley, Kurt Land of the Lost 2009 -Carley, Kurt Lady in the Water 2006 -Browning, Emily (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Browning, Emily (I) Sucker Punch 2011 -Browning, Emily (I) Ghost Ship 2002 -Jones, Orlando Drumline 2002 -Jones, Orlando The Time Machine 2002 -Jones, Orlando Magnolia 1999 -Jones, Orlando Evolution 2001 -Jones, Orlando The Replacements 2000 -Jones, Orlando Double Take 2001 -Jones, Orlando Bedazzled 2000 -Jones, Orlando Runaway Jury 2003 -Rogers, Bill E. Spider-Man 3 2007 -Rogers, Bill E. Spider-Man 2 2004 -Rogers, Bill E. Drag Me to Hell 2009 -Ludacris Max Payne 2008 -Ludacris Fast Five 2011 -Ludacris 2 Fast 2 Furious 2003 -Ludacris Fred Claus 2007 -Ludacris No Strings Attached 2011 -Ludacris New Year's Eve 2011 -Ludacris Justin Bieber: Never Say Never 2011 -Williams, Philip (I) Don't Say a Word 2001 -Williams, Philip (I) Max Payne 2008 -Williams, Philip (I) Good Will Hunting 1997 -Williams, Philip (I) The Santa Clause 1994 -Williams, Philip (I) John Q 2002 -Lander, David L. Dr. Dolittle 2 2001 -Lander, David L. Scary Movie 2000 -Lander, David L. Christmas with the Kranks 2004 -Lander, David L. A Bug's Life 1998 -Lander, David L. Who Framed Roger Rabbit 1988 -Lander, David L. Jimmy Neutron: Boy Genius 2001 -Haley, Brian The Adjustment Bureau 2011 -Haley, Brian The Departed 2006 -Haley, Brian Mars Attacks! 1996 -Haley, Brian Pearl Harbor 2001 -Haley, Brian The Taking of Pelham 1 2 3 2009 -Haley, Brian Gran Torino 2008 -Yune, Karl Memoirs of a Geisha 2005 -Yune, Karl Speed Racer 2008 -Yune, Karl Real Steel 2011 -Khabenskiy, Konstantin Ironiya sudby. Prodolzhenie 2007 -Khabenskiy, Konstantin Wanted 2008 -Khabenskiy, Konstantin Dnevnoy dozor 2006 -Khabenskiy, Konstantin Nochnoy dozor 2004 -Khabenskiy, Konstantin Tinker Tailor Soldier Spy 2011 -Patton, Jim (III) The Fighter 2010 -Patton, Jim (III) Zookeeper 2011 -Patton, Jim (III) Grown Ups 2010 -Hunter, Jay (II) Max Payne 2008 -Hunter, Jay (II) The Incredible Hulk 2008 -Hunter, Jay (II) Four Brothers 2005 -Ryan, Amy (I) Changeling 2008 -Ryan, Amy (I) Dan in Real Life 2007 -Ryan, Amy (I) Capote 2005 -Mullen, Jason (II) Transformers: Revenge of the Fallen 2009 -Mullen, Jason (II) Law Abiding Citizen 2009 -Mullen, Jason (II) Step Up 3D 2010 -Stevens, Joe (I) Selena 1997 -Stevens, Joe (I) True Grit 2010 -Stevens, Joe (I) Varsity Blues 1999 -Balaban, Bob Capote 2005 -Balaban, Bob Absence of Malice 1981 -Balaban, Bob Close Encounters of the Third Kind 1977 -Balaban, Bob Lady in the Water 2006 -Balaban, Bob No Reservations 2007 -Balaban, Bob The Mexican 2001 -Balaban, Bob License to Wed 2007 -Balaban, Bob The Tuxedo 2002 -Balaban, Bob Gosford Park 2001 -Wainwright III, Loudon The Aviator 2004 -Wainwright III, Loudon Knocked Up 2007 -Wainwright III, Loudon G-Force 2009 -Wainwright III, Loudon 28 Days 2000 -Wainwright III, Loudon The 40 Year Old Virgin 2005 -Wainwright III, Loudon Big Fish 2003 -Paxton, John (II) Spider-Man 3 2007 -Paxton, John (II) Spider-Man 2 2004 -Paxton, John (II) Spider-Man 2002 -Paxton, John (II) Drag Me to Hell 2009 -Meyer, Dina Piranha 2010 -Meyer, Dina Starship Troopers 1997 -Meyer, Dina Saw 2004 -Meyer, Dina Star Trek: Nemesis 2002 -Meyer, Dina Saw IV 2007 -Meyer, Dina Saw II 2005 -Meyer, Dina DragonHeart 1996 -Meyer, Dina Saw III 2006 -Kearin, Stephen Kung Fu Panda 2 2011 -Kearin, Stephen Kung Fu Panda 2008 -Kearin, Stephen Madagascar 3: Europe's Most Wanted 2012 -Kearin, Stephen Monsters vs Aliens 2009 -Kearin, Stephen Madagascar: Escape 2 Africa 2008 -Kearin, Stephen Megamind 2010 -Finneran, Katie Bewitched 2005 -Finneran, Katie You've Got Mail 1998 -Finneran, Katie Miss Congeniality 2: Armed and Fabulous 2005 -Andrade, Jack Shallow Hal 2001 -Andrade, Jack Fever Pitch 2005 -Andrade, Jack Me, Myself & Irene 2000 -Johnson, Mike (VI) This Means War 2012 -Johnson, Mike (VI) Sudden Impact 1983 -Johnson, Mike (VI) The Master of Disguise 2002 -Aduramo, Israel Pirates of the Caribbean: Dead Man's Chest 2006 -Aduramo, Israel Exorcist: The Beginning 2004 -Aduramo, Israel Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Schulze, Paul (I) Don't Say a Word 2001 -Schulze, Paul (I) Rambo 2008 -Schulze, Paul (I) Panic Room 2002 -Englund, Robert Urban Legend 1998 -Englund, Robert A Nightmare on Elm Street 3: Dream Warriors 1987 -Englund, Robert A Nightmare on Elm Street 4: The Dream Master 1988 -Englund, Robert Freddy's Dead: The Final Nightmare 1991 -Englund, Robert Freddy vs. Jason 2003 -Dyer, Clint (I) Mr. Bean's Holiday 2007 -Dyer, Clint (I) Unknown 2011 -Dyer, Clint (I) Sahara 2005 -Bentley, Wes Underworld: Awakening 2012 -Bentley, Wes The Hunger Games 2012 -Bentley, Wes Ghost Rider 2007 -Bentley, Wes American Beauty 1999 -Stiller, Amy The Cable Guy 1996 -Stiller, Amy Little Fockers 2010 -Stiller, Amy Dodgeball: A True Underdog Story 2004 -Stiller, Amy Zoolander 2001 -Stiller, Amy Tropic Thunder 2008 -Searle, Geoff (II) The Wolfman 2010 -Searle, Geoff (II) Captain America: The First Avenger 2011 -Searle, Geoff (II) Robin Hood 2010 -Hayley, Robert X2 2003 -Hayley, Robert Percy Jackson & the Olympians: The Lightning Thief 2010 -Hayley, Robert X-Men: The Last Stand 2006 -Gerrits, Tommy My Sister's Keeper 2009 -Gerrits, Tommy Step Brothers 2008 -Gerrits, Tommy Cloverfield 2008 -Fuller, Leon 'Lee' Skyline 2010 -Fuller, Leon 'Lee' My Best Friend's Wedding 1997 -Fuller, Leon 'Lee' Home Alone 3 1997 -McLain, Jeremy Mr. Popper's Penguins 2011 -McLain, Jeremy Black Knight 2001 -McLain, Jeremy The Amazing Spider-Man 2012 -McLain, Jeremy Friends with Benefits 2011 -McLain, Jeremy Divine Secrets of the Ya-Ya Sisterhood 2002 -Pugh, Robert (I) Master and Commander: The Far Side of the World 2003 -Pugh, Robert (I) Kingdom of Heaven 2005 -Pugh, Robert (I) Robin Hood 2010 -Pugh, Robert (I) The Ghost Writer 2010 -Branson, Richard Casino Royale 2006 -Branson, Richard Around the World in 80 Days 2004 -Branson, Richard Superman Returns 2006 -West, Kevin (I) Gone in Sixty Seconds 2000 -West, Kevin (I) Indecent Proposal 1993 -West, Kevin (I) The Pursuit of Happyness 2006 -Rose, Jennessa Horton Hears a Who! 2008 -Rose, Jennessa Charlotte's Web 2006 -Rose, Jennessa Yogi Bear 2010 -Rose, Jennessa Gake no ue no Ponyo 2008 -Richardson, LaTanya U.S. Marshals 1998 -Richardson, LaTanya Malcolm X 1992 -Richardson, LaTanya Sleepless in Seattle 1993 -Upson, Leslie Jerry Maguire 1996 -Upson, Leslie Mousehunt 1997 -Upson, Leslie Something's Gotta Give 2003 -Evans, Chris (V) The Avengers 2012 -Evans, Chris (V) Push 2009 -Evans, Chris (V) Cellular 2004 -Evans, Chris (V) 4: Rise of the Silver Surfer 2007 -Evans, Chris (V) TMNT 2007 -Evans, Chris (V) Fantastic Four 2005 -Evans, Chris (V) Captain America: The First Avenger 2011 -Washington, Tyrell Step Up 3D 2010 -Washington, Tyrell Norbit 2007 -Washington, Tyrell Dreamgirls 2006 -Patrick, Robert (I) Fly Me to the Moon 2008 -Patrick, Robert (I) Striptease 1996 -Patrick, Robert (I) Firewall 2006 -Patrick, Robert (I) Ladder 49 2004 -Patrick, Robert (I) Last Action Hero 1993 -Patrick, Robert (I) Spy Kids 2001 -Patrick, Robert (I) We Are Marshall 2006 -Patrick, Robert (I) Cop Land 1997 -Patrick, Robert (I) Walk the Line 2005 -Patrick, Robert (I) Terminator 2: Judgment Day 1991 -Patrick, Robert (I) Die Hard 2 1990 -Patrick, Robert (I) The Faculty 1998 -Patrick, Robert (I) Bridge to Terabithia 2007 -Patrick, Robert (I) Safe House 2012 -Patrick, Robert (I) Charlie's Angels: Full Throttle 2003 -Ramis, Harold Ghost Busters 1984 -Ramis, Harold Groundhog Day 1993 -Ramis, Harold Knocked Up 2007 -Ramis, Harold High Fidelity 2000 -Ramis, Harold As Good as It Gets 1997 -Ramis, Harold Stripes 1981 -Yen, Donnie Blade II 2002 -Yen, Donnie Ying Xiong 2002 -Yen, Donnie Shanghai Knights 2003 -Renaday, Peter Hauru no ugoku shiro 2004 -Renaday, Peter The Princess and the Frog 2009 -Renaday, Peter Mulan 1998 -Baranski, Christine Chicago 2002 -Baranski, Christine How the Grinch Stole Christmas 2000 -Baranski, Christine Mamma Mia! 2008 -Baranski, Christine The Birdcage 1996 -Baranski, Christine Cruel Intentions 1999 -Baranski, Christine Bowfinger 1999 -Lane, Campbell Dreamcatcher 2003 -Lane, Campbell Along Came a Spider 2001 -Lane, Campbell Scary Movie 4 2006 -Riegert, Peter We Bought a Zoo 2011 -Riegert, Peter Traffic 2000 -Riegert, Peter The Mask 1994 -Maguire, George (I) The Game 1997 -Maguire, George (I) Fight Club 1999 -Maguire, George (I) The Pursuit of Happyness 2006 -Chandler, Jared Behind Enemy Lines 2001 -Chandler, Jared Clear and Present Danger 1994 -Chandler, Jared The Peacemaker 1997 -Chandler, Jared The General's Daughter 1999 -Farrer, John Enchanted 2007 -Farrer, John The Other Guys 2010 -Farrer, John The Sorcerer's Apprentice 2010 -Farrer, John The Good Shepherd 2006 -Farrer, John The Departed 2006 -Farrer, John The Taking of Pelham 1 2 3 2009 -Farrer, John Transformers: Dark of the Moon 2011 -Farrer, John Tower Heist 2011 -Cromwell, James (I) Star Trek: First Contact 1996 -Cromwell, James (I) The Sum of All Fears 2002 -Cromwell, James (I) Space Cowboys 2000 -Cromwell, James (I) The Queen 2006 -Cromwell, James (I) Babe: Pig in the City 1998 -Cromwell, James (I) Secretariat 2010 -Cromwell, James (I) The Longest Yard 2005 -Cromwell, James (I) The Green Mile 1999 -Cromwell, James (I) Eraser 1996 -Cromwell, James (I) The Artist 2011 -Cromwell, James (I) Deep Impact 1998 -Cromwell, James (I) Spider-Man 3 2007 -Cromwell, James (I) Spirit: Stallion of the Cimarron 2002 -Cromwell, James (I) L.A. Confidential 1997 -Cromwell, James (I) The General's Daughter 1999 -Cromwell, James (I) Babe 1995 -Cromwell, James (I) I, Robot 2004 -Panettiere, Jansen Racing Stripes 2005 -Panettiere, Jansen Robots 2005 -Panettiere, Jansen Ice Age: The Meltdown 2006 -McColm, Matt The Matrix Reloaded 2003 -McColm, Matt Cellular 2004 -McColm, Matt Space Cowboys 2000 -Diehl, John A Time to Kill 1996 -Diehl, John Stripes 1981 -Diehl, John Jurassic Park III 2001 -Diehl, John Pearl Harbor 2001 -Diehl, John Con Air 1997 -Diehl, John Stargate 1994 -Lambert, Vicky Chicago 2002 -Lambert, Vicky Enchanted 2007 -Lambert, Vicky Sucker Punch 2011 -Lambert, Vicky Are We There Yet? 2005 -Lambert, Vicky Mirror Mirror 2012 -Dunham, Stephen (I) Catch Me If You Can 2002 -Dunham, Stephen (I) Monster-in-Law 2005 -Dunham, Stephen (I) The Mummy 1999 -Dunham, Stephen (I) Traffic 2000 -Dunham, Stephen (I) Get Smart 2008 -Dunham, Stephen (I) Anger Management 2003 -Nelson, Tim Blake Donnie Brasco 1997 -Nelson, Tim Blake Minority Report 2002 -Nelson, Tim Blake Syriana 2005 -Nelson, Tim Blake Meet the Fockers 2004 -Nelson, Tim Blake The Thin Red Line 1998 -Nelson, Tim Blake The Incredible Hulk 2008 -Nelson, Tim Blake Holes 2003 -Nelson, Tim Blake O Brother, Where Art Thou? 2000 -Nelson, Tim Blake Scooby Doo 2: Monsters Unleashed 2004 -Byrne, P.J. Bewitched 2005 -Byrne, P.J. Bruce Almighty 2003 -Byrne, P.J. Charlie Wilson's War 2007 -Byrne, P.J. Evan Almighty 2007 -Byrne, P.J. Dinner for Schmucks 2010 -Byrne, P.J. Horrible Bosses 2011 -Byrne, P.J. Final Destination 5 2011 -Byrne, P.J. Fun with Dick and Jane 2005 -Waylett, Jamie Harry Potter and the Goblet of Fire 2005 -Waylett, Jamie Harry Potter and the Prisoner of Azkaban 2004 -Waylett, Jamie Harry Potter and the Sorcerer's Stone 2001 -Waylett, Jamie Harry Potter and the Chamber of Secrets 2002 -Waylett, Jamie Harry Potter and the Order of the Phoenix 2007 -Waylett, Jamie Harry Potter and the Half-Blood Prince 2009 -Cannavale, Bobby The Bone Collector 1999 -Cannavale, Bobby Shall We Dance 2004 -Cannavale, Bobby Paul Blart: Mall Cop 2009 -Cannavale, Bobby Snakes on a Plane 2006 -Cannavale, Bobby The Other Guys 2010 -Grieve, Phil The Lord of the Rings: The Fellowship of the Ring 2001 -Grieve, Phil King Kong 2005 -Grieve, Phil Bridge to Terabithia 2007 -Grieve, Phil The Lord of the Rings: The Two Towers 2002 -Burgi, Richard Fun with Dick and Jane 2005 -Burgi, Richard Friday the 13th 2009 -Burgi, Richard In Her Shoes 2005 -Burgi, Richard Cellular 2004 -Schorr, Daniel (I) The Game 1997 -Schorr, Daniel (I) The Siege 1998 -Schorr, Daniel (I) The Net 1995 -Owens, Chris (I) The Incredible Hulk 2008 -Owens, Chris (I) High School Musical 3: Senior Year 2008 -Owens, Chris (I) Saw 3D 2010 -Owens, Chris (I) The Recruit 2003 -Flea (I) Rugrats Go Wild 2003 -Flea (I) The Wild Thornberrys Movie 2002 -Flea (I) Back to the Future Part II 1989 -Flea (I) Back to the Future Part III 1990 -Gooding Jr., Cuba Snow Dogs 2002 -Gooding Jr., Cuba Jerry Maguire 1996 -Gooding Jr., Cuba Norbit 2007 -Gooding Jr., Cuba Rat Race 2001 -Gooding Jr., Cuba Zoolander 2001 -Gooding Jr., Cuba Red Tails 2012 -Gooding Jr., Cuba Men of Honor 2000 -Gooding Jr., Cuba A Few Good Men 1992 -Gooding Jr., Cuba Home on the Range 2004 -Gooding Jr., Cuba As Good as It Gets 1997 -Gooding Jr., Cuba American Gangster 2007 -Gooding Jr., Cuba Pearl Harbor 2001 -Gooding Jr., Cuba Outbreak 1995 -Gooding Jr., Cuba Coming to America 1988 -Gooding Jr., Cuba What Dreams May Come 1998 -Gooding Jr., Cuba Radio 2003 -Rand, Sebastian The Stepford Wives 2004 -Rand, Sebastian Two Weeks Notice 2002 -Rand, Sebastian Stepmom 1998 -Slattery, Cindy Ice Age: The Meltdown 2006 -Slattery, Cindy Rio 2011 -Slattery, Cindy Ice Age: Dawn of the Dinosaurs 2009 -Lovett, Marjorie The Birdcage 1996 -Lovett, Marjorie Clear and Present Danger 1994 -Lovett, Marjorie Tootsie 1982 -Lovett, Marjorie Miss Congeniality 2: Armed and Fabulous 2005 -Massey, Drew Forgetting Sarah Marshall 2008 -Massey, Drew Men in Black 1997 -Massey, Drew Men in Black II 2002 -Massey, Drew Kung Fu Panda 2008 -Massey, Drew Over the Hedge 2006 -Papajohn, Michael This Means War 2012 -Papajohn, Michael S.W.A.T. 2003 -Papajohn, Michael Transformers: Revenge of the Fallen 2009 -Papajohn, Michael Terminator 3: Rise of the Machines 2003 -Papajohn, Michael Superhero Movie 2008 -Papajohn, Michael The Longest Yard 2005 -Papajohn, Michael Eraser 1996 -Papajohn, Michael Land of the Lost 2009 -Papajohn, Michael Yes Man 2008 -Papajohn, Michael Hulk 2003 -Papajohn, Michael The Animal 2001 -Papajohn, Michael Charlie's Angels 2000 -Papajohn, Michael G-Force 2009 -Papajohn, Michael The Hot Chick 2002 -Papajohn, Michael Spider-Man 2002 -Papajohn, Michael Terminator Salvation 2009 -Papajohn, Michael The Amazing Spider-Man 2012 -Papajohn, Michael Spider-Man 3 2007 -Papajohn, Michael Spawn 1997 -Doman, John Mercury Rising 1998 -Doman, John Mystic River 2003 -Doman, John Cop Land 1997 -Doman, John Beavis and Butt-Head Do America 1996 -Doman, John Die Hard: With a Vengeance 1995 -Guinan, Francis Hannibal 2001 -Guinan, Francis Speed 2: Cruise Control 1997 -Guinan, Francis Constantine 2005 -Guinan, Francis The Last Airbender 2010 -Garrick, David (II) Sherlock Holmes 2009 -Garrick, David (II) Reign of Fire 2002 -Garrick, David (II) The Golden Compass 2007 -Dreyer, Dianne Michael 1996 -Dreyer, Dianne Bewitched 2005 -Dreyer, Dianne Julie & Julia 2009 -Dreyer, Dianne You've Got Mail 1998 -Cordova, Georgina X-Men Origins: Wolverine 2009 -Cordova, Georgina The Tale of Despereaux 2008 -Cordova, Georgina Cloudy with a Chance of Meatballs 2009 -Kebbell, Toby War Horse 2011 -Kebbell, Toby Prince of Persia: The Sands of Time 2010 -Kebbell, Toby The Sorcerer's Apprentice 2010 -Kebbell, Toby Wrath of the Titans 2012 -Kebbell, Toby Alexander 2004 -Elliott, Beverley The Sisterhood of the Traveling Pants 2005 -Elliott, Beverley The Santa Clause 2 2002 -Elliott, Beverley Unforgiven 1992 -White, Michael Jai Exit Wounds 2001 -White, Michael Jai Universal Soldier 1992 -White, Michael Jai Why Did I Get Married Too? 2010 -White, Michael Jai Spawn 1997 -Hughes, Kenneth (I) 500) Days of Summer 2009 -Hughes, Kenneth (I) The Island 2005 -Hughes, Kenneth (I) The Muppets 2011 -Cuffe, Ed The Good Shepherd 2006 -Cuffe, Ed Inside Man 2006 -Cuffe, Ed The Departed 2006 -Honaker, Austin Tropic Thunder 2008 -Honaker, Austin Bedtime Stories 2008 -Honaker, Austin Eagle Eye 2008 -Honaker, Austin Step Up 2: The Streets 2008 -Honaker, Austin He's Just Not That Into You 2009 -Ludwig, Walt G. Con Air 1997 -Ludwig, Walt G. Mars Attacks! 1996 -Ludwig, Walt G. Vegas Vacation 1997 -Scriba, Mik The Negotiator 1998 -Scriba, Mik City of Angels 1998 -Scriba, Mik The Terminal 2004 -Scriba, Mik Conspiracy Theory 1997 -Scriba, Mik Wild Wild West 1999 -Butler, Jared Rango 2011 -Butler, Jared Pirates of the Caribbean: At World's End 2007 -Butler, Jared Alice in Wonderland 2010 -Crawford, Eve (I) Serendipity 2001 -Crawford, Eve (I) Mean Girls 2004 -Crawford, Eve (I) Silent Hill 2006 -Crawford, Eve (I) Chicago 2002 -Shanklin, James The Social Network 2010 -Shanklin, James Mission: Impossible III 2006 -Shanklin, James Evan Almighty 2007 -Shanklin, James Moneyball 2011 -Aylward, Rory J. Courage Under Fire 1996 -Aylward, Rory J. The Siege 1998 -Aylward, Rory J. Hulk 2003 -Nelson, Christopher Allen Kill Bill: Vol. 1 2003 -Nelson, Christopher Allen Hostel 2005 -Nelson, Christopher Allen Kill Bill: Vol. 2 2004 -Caine, Michael (I) The Cider House Rules 1999 -Caine, Michael (I) Batman Begins 2005 -Caine, Michael (I) Gnomeo & Juliet 2011 -Caine, Michael (I) Cars 2 2011 -Caine, Michael (I) Hannah and Her Sisters 1986 -Caine, Michael (I) Journey 2: The Mysterious Island 2012 -Caine, Michael (I) Inception 2010 -Caine, Michael (I) Miss Congeniality 2000 -Caine, Michael (I) Austin Powers in Goldmember 2002 -Caine, Michael (I) Bewitched 2005 -Caine, Michael (I) The Prestige 2006 -Rees, Dennis (II) The Dictator 2012 -Rees, Dennis (II) Men in Black 3 2012 -Rees, Dennis (II) Tower Heist 2011 -Cray, Ed (I) Ali 2001 -Cray, Ed (I) The Fugitive 1993 -Cray, Ed (I) U.S. Marshals 1998 -Van Graas, Daniella Maid in Manhattan 2002 -Van Graas, Daniella Autumn in New York 2000 -Van Graas, Daniella Something's Gotta Give 2003 -Collins Jr., Clifton Traffic 2000 -Collins Jr., Clifton Capote 2005 -Collins Jr., Clifton Babel 2006 -Collins Jr., Clifton Star Trek 2009 -Wilson, Norman D. Rush Hour 1998 -Wilson, Norman D. Lethal Weapon 3 1992 -Wilson, Norman D. Lethal Weapon 2 1989 -Raven-Symoné College Road Trip 2008 -Raven-Symoné Fat Albert 2004 -Raven-Symoné Doctor Dolittle 1998 -Raven-Symoné Dr. Dolittle 2 2001 -Raven-Symoné The Princess Diaries 2: Royal Engagement 2004 -Bettany, Paul The Avengers 2012 -Bettany, Paul Legion 2009 -Bettany, Paul Master and Commander: The Far Side of the World 2003 -Bettany, Paul The Secret Life of Bees 2008 -Bettany, Paul The Tourist 2010 -Bettany, Paul Iron Man 2 2010 -Bettany, Paul Firewall 2006 -Bettany, Paul A Beautiful Mind 2001 -Bettany, Paul A Knight's Tale 2001 -Bettany, Paul The Da Vinci Code 2006 -Lipinski, Eugene Indiana Jones and the Last Crusade 1989 -Lipinski, Eugene Superman II 1980 -Lipinski, Eugene The Recruit 2003 -Lipinski, Eugene Octopussy 1983 -Orser, Leland Se7en 1995 -Orser, Leland Alien: Resurrection 1997 -Orser, Leland The Bone Collector 1999 -Orser, Leland Pearl Harbor 2001 -Orser, Leland Daredevil 2003 -Orser, Leland Saving Private Ryan 1998 -Orser, Leland Runaway Jury 2003 -Orser, Leland Independence Day 1996 -Bloom, Brian The Amazing Spider-Man 2012 -Bloom, Brian G.I. Joe: The Rise of Cobra 2009 -Bloom, Brian The Golden Compass 2007 -Bloom, Brian The A-Team 2010 -Simmons, Donn Andrew World Trade Center 2006 -Simmons, Donn Andrew The Heartbreak Kid 2007 -Simmons, Donn Andrew The Pursuit of Happyness 2006 -Allen, Woody CyberWorld 2000 -Allen, Woody Hannah and Her Sisters 1986 -Allen, Woody Antz 1998 -Kennedy, David (I) The Fifth Element 1997 -Kennedy, David (I) Reign of Fire 2002 -Kennedy, David (I) Clash of the Titans 2010 -Ochoa, Jesús Quantum of Solace 2008 -Ochoa, Jesús Man on Fire 2004 -Ochoa, Jesús Beverly Hills Chihuahua 2008 -Barraza, Adriana Babel 2006 -Barraza, Adriana Thor 2011 -Barraza, Adriana Drag Me to Hell 2009 -Kemper, Ellie 21 Jump Street 2012 -Kemper, Ellie Bridesmaids 2011 -Kemper, Ellie Get Him to the Greek 2010 -King, Jaime (I) Sin City 2005 -King, Jaime (I) White Chicks 2004 -King, Jaime (I) Cheaper by the Dozen 2 2005 -King, Jaime (I) Pearl Harbor 2001 -King, Jaime (I) Red Tails 2012 -King, Jaime (I) My Bloody Valentine 2009 -King, Jaime (I) Blow 2001 -Redmond, Andy The Siege 1998 -Redmond, Andy The Thomas Crown Affair 1999 -Redmond, Andy Mickey Blue Eyes 1999 -Hughes, Van (II) Sex and the City 2 2010 -Hughes, Van (II) Sex and the City 2008 -Hughes, Van (II) Inside Man 2006 -Richardson, Joely Return to Me 2000 -Richardson, Joely The Girl with the Dragon Tattoo 2011 -Richardson, Joely 101 Dalmatians 1996 -Richardson, Joely The Patriot 2000 -Saleh, Karim Iron Man 2 2010 -Saleh, Karim Munich 2005 -Saleh, Karim Kingdom of Heaven 2005 -Perlman, Ron Drive 2011 -Perlman, Ron Hellboy II: The Golden Army 2008 -Perlman, Ron Star Trek: Nemesis 2002 -Perlman, Ron Alien: Resurrection 1997 -Perlman, Ron Hellboy 2004 -Perlman, Ron Enemy at the Gates 2001 -Perlman, Ron Blade II 2002 -Muirhead, Oliver Eragon 2006 -Muirhead, Oliver Alvin and the Chipmunks 2007 -Muirhead, Oliver Austin Powers: The Spy Who Shagged Me 1999 -Muirhead, Oliver National Treasure: Book of Secrets 2007 -Muirhead, Oliver Jumper 2008 -Muirhead, Oliver Fun with Dick and Jane 2005 -Muirhead, Oliver The Golden Compass 2007 -Muirhead, Oliver The Social Network 2010 -Muirhead, Oliver Garfield: A Tail of Two Kitties 2006 -Gimenez, Jennifer Vanilla Sky 2001 -Gimenez, Jennifer Charlie's Angels: Full Throttle 2003 -Gimenez, Jennifer Blow 2001 -Ziegler, Irene G.I. Jane 1997 -Ziegler, Irene Runaway Jury 2003 -Ziegler, Irene Nights in Rodanthe 2008 -Hershey, Barbara Hannah and Her Sisters 1986 -Hershey, Barbara The Natural 1984 -Hershey, Barbara Black Swan 2010 -Locke, Spencer Resident Evil: Afterlife 2010 -Locke, Spencer Monster House 2006 -Locke, Spencer Resident Evil: Extinction 2007 -Del Gaudio, Christopher A Perfect Murder 1998 -Del Gaudio, Christopher The Devil's Advocate 1997 -Del Gaudio, Christopher Godzilla 1998 -Del Gaudio, Christopher The Peacemaker 1997 -Del Gaudio, Christopher Jungle 2 Jungle 1997 -Del Gaudio, Christopher One Fine Day 1996 -Del Gaudio, Christopher Cop Land 1997 -Del Gaudio, Christopher Donnie Brasco 1997 -Terada, Steve Memoirs of a Geisha 2005 -Terada, Steve Beverly Hills Ninja 1997 -Terada, Steve Alvin and the Chipmunks: The Squeakquel 2009 -Buldakov, Aleksey Rzhevskiy protiv Napoleona 2012 -Buldakov, Aleksey Gitler kaput! 2008 -Buldakov, Aleksey Shirli-Myrli 1995 -Dallace, Tommy Fight Club 1999 -Dallace, Tommy The Town 2010 -Dallace, Tommy Public Enemies 2009 -Dallace, Tommy The Fighter 2010 -Dallace, Tommy Fast Five 2011 -Davis, Duane (I) S.W.A.T. 2003 -Davis, Duane (I) Universal Soldier 1992 -Davis, Duane (I) The Flintstones in Viva Rock Vegas 2000 -Davis, Duane (I) A Nightmare on Elm Street 4: The Dream Master 1988 -Thorsen, Sven-Ole Predator 1987 -Thorsen, Sven-Ole The Sum of All Fears 2002 -Thorsen, Sven-Ole Lethal Weapon 3 1992 -Thorsen, Sven-Ole The 13th Warrior 1999 -Thorsen, Sven-Ole Eraser 1996 -Thorsen, Sven-Ole Gladiator 2000 -Thorsen, Sven-Ole Last Action Hero 1993 -Thorsen, Sven-Ole The Rundown 2003 -Thorsen, Sven-Ole Bandits 2001 -Thorsen, Sven-Ole End of Days 1999 -Thorsen, Sven-Ole The Hunt for Red October 1990 -Thorsen, Sven-Ole Collateral Damage 2002 -Thorsen, Sven-Ole Charlie's Angels: Full Throttle 2003 -Thorsen, Sven-Ole Hostage 2005 -Thorsen, Sven-Ole George of the Jungle 1997 -Firth, Colin Bridget Jones's Diary 2001 -Firth, Colin Tinker Tailor Soldier Spy 2011 -Firth, Colin Shakespeare in Love 1998 -Firth, Colin Mamma Mia! 2008 -Firth, Colin Nanny McPhee 2005 -Firth, Colin The English Patient 1996 -Firth, Colin Bridget Jones: The Edge of Reason 2004 -Firth, Colin A Christmas Carol 2009 -Firth, Colin The King's Speech 2010 -Firth, Colin Love Actually 2003 -Apgar, Jen Cold Mountain 2003 -Apgar, Jen Sweet Home Alabama 2002 -Apgar, Jen The Skeleton Key 2005 -Tamburro, Charles A. End of Days 1999 -Tamburro, Charles A. Se7en 1995 -Tamburro, Charles A. Terminator 2: Judgment Day 1991 -Tamburro, Charles A. True Lies 1994 -Tamburro, Charles A. Rocky III 1982 -Tamburro, Charles A. The Long Kiss Goodnight 1996 -Tamburro, Charles A. First Blood 1982 -Smith, Brooke (I) The Silence of the Lambs 1991 -Smith, Brooke (I) Bad Company 2002 -Smith, Brooke (I) In Her Shoes 2005 -Greenberg, Bryan (II) Friends with Benefits 2011 -Greenberg, Bryan (II) Bride Wars 2009 -Greenberg, Bryan (II) A Civil Action 1998 -Falcone, Ben (I) Cheaper by the Dozen 2 2005 -Falcone, Ben (I) Bridesmaids 2011 -Falcone, Ben (I) Garfield: A Tail of Two Kitties 2006 -Carlin, George Dogma 1999 -Carlin, George Scary Movie 3 2003 -Carlin, George Cars 2006 -Stormare, Peter Bad Company 2002 -Stormare, Peter Bad Boys II 2003 -Stormare, Peter Fargo 1996 -Stormare, Peter Nacho Libre 2006 -Stormare, Peter Minority Report 2002 -Stormare, Peter The Brothers Grimm 2005 -Stormare, Peter Chocolat 2000 -Stormare, Peter Windtalkers 2002 -Stormare, Peter Armageddon 1998 -Stormare, Peter The Lost World: Jurassic Park 1997 -Stormare, Peter Mercury Rising 1998 -Stormare, Peter The Tuxedo 2002 -Stormare, Peter Constantine 2005 -McCrary, Joel Hauru no ugoku shiro 2004 -McCrary, Joel Cars 2006 -McCrary, Joel Hoodwinked! 2005 -McCrary, Joel Cheaper by the Dozen 2003 -McCrary, Joel Over the Hedge 2006 -McCrary, Joel Charlotte's Web 2006 -McCrary, Joel The Smurfs 2011 -McCrary, Joel The Princess Diaries 2001 -McCrary, Joel American Beauty 1999 -McCrary, Joel The Princess Diaries 2: Royal Engagement 2004 -McCrary, Joel Thor 2011 -Beauchene, Bill Me, Myself & Irene 2000 -Beauchene, Bill Dumb & Dumber 1994 -Beauchene, Bill There's Something About Mary 1998 -Beauchene, Bill Shallow Hal 2001 -Stadulis, Christopher The Good Shepherd 2006 -Stadulis, Christopher Unstoppable 2010 -Stadulis, Christopher Spider-Man 3 2007 -Bellucci, Monica Astérix & Obélix: Mission Cléopâtre 2002 -Bellucci, Monica Tears of the Sun 2003 -Bellucci, Monica The Passion of the Christ 2004 -Bellucci, Monica The Matrix Reloaded 2003 -Bellucci, Monica The Sorcerer's Apprentice 2010 -Bellucci, Monica The Brothers Grimm 2005 -Bellucci, Monica Dracula 1992 -Bellucci, Monica The Matrix Revolutions 2003 -Tabor, Danielle Harry Potter and the Sorcerer's Stone 2001 -Tabor, Danielle Harry Potter and the Prisoner of Azkaban 2004 -Tabor, Danielle Harry Potter and the Chamber of Secrets 2002 -Gale, Ed The Polar Express 2004 -Gale, Ed Child's Play 1988 -Gale, Ed O Brother, Where Art Thou? 2000 -Caudle, Melissa Big Momma's House 2 2006 -Caudle, Melissa Failure to Launch 2006 -Caudle, Melissa The Dukes of Hazzard 2005 -Caudle, Melissa Glory Road 2006 -Caudle, Melissa Fun with Dick and Jane 2005 -Chinlund, Nick Tears of the Sun 2003 -Chinlund, Nick Lethal Weapon 3 1992 -Chinlund, Nick The Chronicles of Riddick 2004 -Chinlund, Nick Eraser 1996 -Chinlund, Nick The Kid 2000 -Chinlund, Nick Con Air 1997 -Chinlund, Nick Training Day 2001 -Chinlund, Nick The Legend of Zorro 2005 -Cross, Kendall The Sisterhood of the Traveling Pants 2005 -Cross, Kendall The Butterfly Effect 2004 -Cross, Kendall Paycheck 2003 -Cross, Kendall Snakes on a Plane 2006 -Cross, Kendall X2 2003 -James, Sondra (I) Robots 2005 -James, Sondra (I) The Dictator 2012 -James, Sondra (I) Wall Street: Money Never Sleeps 2010 -Stowe, Madeleine We Were Soldiers 2002 -Stowe, Madeleine The General's Daughter 1999 -Stowe, Madeleine Twelve Monkeys 1995 -Penn, Chris (I) After the Sunset 2004 -Penn, Chris (I) Footloose 1984 -Penn, Chris (I) Starsky & Hutch 2004 -Penn, Chris (I) Rush Hour 1998 -Brophy, Geraldine (I) Underworld: Rise of the Lycans 2009 -Brophy, Geraldine (I) The Water Horse 2007 -Brophy, Geraldine (I) King Kong 2005 -Wong, Benedict Johnny English Reborn 2011 -Wong, Benedict Spy Game 2001 -Wong, Benedict Prometheus 2012 -McKee, Gina Divine Secrets of the Ya-Ya Sisterhood 2002 -McKee, Gina Notting Hill 1999 -McKee, Gina Atonement 2007 -Sanders, Elizabeth (I) Batman Forever 1995 -Sanders, Elizabeth (I) Batman & Robin 1997 -Sanders, Elizabeth (I) Batman Returns 1992 -Close, Glenn Pinocchio 2002 -Close, Glenn 102 Dalmatians 2000 -Close, Glenn Fatal Attraction 1987 -Close, Glenn Hoodwinked! 2005 -Close, Glenn In & Out 1997 -Close, Glenn Air Force One 1997 -Close, Glenn Tarzan 1999 -Close, Glenn Mars Attacks! 1996 -Close, Glenn Hook 1991 -Close, Glenn 101 Dalmatians 1996 -Close, Glenn The Stepford Wives 2004 -Close, Glenn The Natural 1984 -Bryniarski, Andrew Pearl Harbor 2001 -Bryniarski, Andrew The Texas Chainsaw Massacre: The Beginning 2006 -Bryniarski, Andrew Scooby-Doo 2002 -Bryniarski, Andrew Batman Returns 1992 -Bryniarski, Andrew The Texas Chainsaw Massacre 2003 -Bryniarski, Andrew Any Given Sunday 1999 -Aiken, Liam Lemony Snicket's A Series of Unfortunate Events 2004 -Aiken, Liam Stepmom 1998 -Aiken, Liam Road to Perdition 2002 -Goodall, Caroline Cliffhanger 1993 -Goodall, Caroline Disclosure 1994 -Goodall, Caroline Hook 1991 -Goodall, Caroline The Princess Diaries 2001 -Goodall, Caroline The Princess Diaries 2: Royal Engagement 2004 -Goodall, Caroline Schindler's List 1993 -Donati, Roberto (II) Angels & Demons 2009 -Donati, Roberto (II) Puss in Boots 2011 -Donati, Roberto (II) Happy Feet Two 2011 -Neville, John (I) The Fifth Element 1997 -Neville, John (I) Urban Legend 1998 -Neville, John (I) The X Files 1998 -Deters, Timmy The Animal 2001 -Deters, Timmy Daddy Day Care 2003 -Deters, Timmy Kicking & Screaming 2005 -Neely, Cam Me, Myself & Irene 2000 -Neely, Cam Dumb & Dumber 1994 -Neely, Cam D2: The Mighty Ducks 1994 -Savva, Mike Star Wars: Episode III - Revenge of the Sith 2005 -Savva, Mike Star Wars: Episode I - The Phantom Menace 1999 -Savva, Mike Star Wars: Episode II - Attack of the Clones 2002 -Savva, Mike Batman Begins 2005 -Sasaki, George Down and Out in Beverly Hills 1986 -Sasaki, George Pee-wee's Big Adventure 1985 -Sasaki, George Bachelor Party 1984 -Ganz, Bruno The Manchurian Candidate 2004 -Ganz, Bruno Unknown 2011 -Ganz, Bruno The Reader 2008 -Beghe, Jason G.I. Jane 1997 -Beghe, Jason The X Files 1998 -Beghe, Jason X-Men: First Class 2011 -Farwell, Dane The Hot Chick 2002 -Farwell, Dane Epic Movie 2007 -Farwell, Dane Scream 4 2011 -Farwell, Dane Red Eye 2005 -Mahoney, Teresa Captain America: The First Avenger 2011 -Mahoney, Teresa Robin Hood 2010 -Mahoney, Teresa Harry Potter and the Half-Blood Prince 2009 -Mahoney, Teresa Pirates of the Caribbean: On Stranger Tides 2011 -Mahoney, Teresa Johnny English Reborn 2011 -Mahoney, Teresa X-Men: First Class 2011 -Bellamy, Ned Universal Soldier 1992 -Bellamy, Ned Charlie's Angels 2000 -Bellamy, Ned Runaway Jury 2003 -Bellamy, Ned Con Air 1997 -Bellamy, Ned Being John Malkovich 1999 -Bellamy, Ned Saw 2004 -Silver, Michael B. Seabiscuit 2003 -Silver, Michael B. Legally Blonde 2001 -Silver, Michael B. I Am Sam 2001 -Smith, Gregory Marshall Contagion 2011 -Smith, Gregory Marshall Life as We Know It 2010 -Smith, Gregory Marshall Fast Five 2011 -Darmane, Doshia Remember the Titans 2000 -Darmane, Doshia Road Trip 2000 -Darmane, Doshia Sweet Home Alabama 2002 -Avery, Shondrella Deja Vu 2006 -Avery, Shondrella Napoleon Dynamite 2004 -Avery, Shondrella The Secret Life of Bees 2008 -Quill, Timothy Patrick Spider-Man 3 2007 -Quill, Timothy Patrick Spider-Man 2 2004 -Quill, Timothy Patrick Spider-Man 2002 -Herthum, Harold G. Forrest Gump 1994 -Herthum, Harold G. JFK 1991 -Herthum, Harold G. Tin Cup 1996 -Feuerstein, Mark Rules of Engagement 2000 -Feuerstein, Mark What Women Want 2000 -Feuerstein, Mark In Her Shoes 2005 -Feuerstein, Mark Two Weeks Notice 2002 -Feuerstein, Mark Practical Magic 1998 -Costello, Elvis Austin Powers: The Spy Who Shagged Me 1999 -Costello, Elvis Talladega Nights: The Ballad of Ricky Bobby 2006 -Costello, Elvis Spice World 1997 -Speredakos, John The Smurfs 2011 -Speredakos, John Rules of Engagement 2000 -Speredakos, John Inside Man 2006 -Speredakos, John Fantastic Four 2005 -Guest, Christopher (I) Small Soldiers 1998 -Guest, Christopher (I) A Few Good Men 1992 -Guest, Christopher (I) Night at the Museum: Battle of the Smithsonian 2009 -Paquin, Anna Amistad 1997 -Paquin, Anna Scream 4 2011 -Paquin, Anna X-Men 2000 -Paquin, Anna X2 2003 -Paquin, Anna She's All That 1999 -Paquin, Anna X-Men: The Last Stand 2006 -Paquin, Anna Finding Forrester 2000 -Paquin, Anna Almost Famous 2000 -La Rosa, Brian Where the Wild Things Are 2009 -La Rosa, Brian Bruce Almighty 2003 -La Rosa, Brian Congo 1995 -Meyer, Billy (I) The Heartbreak Kid 2007 -Meyer, Billy (I) Me, Myself & Irene 2000 -Meyer, Billy (I) There's Something About Mary 1998 -Hunter, Bill (I) Legend of the Guardians: The Owls of Ga'Hoole 2010 -Hunter, Bill (I) Australia 2008 -Hunter, Bill (I) Kangaroo Jack 2003 -Hunter, Bill (I) Finding Nemo 2003 -DeVito, Danny Terms of Endearment 1983 -DeVito, Danny Men in Black 1997 -DeVito, Danny Romancing the Stone 1984 -DeVito, Danny Hercules 1997 -DeVito, Danny The Rainmaker 1997 -DeVito, Danny Last Action Hero 1993 -DeVito, Danny Matilda 1996 -DeVito, Danny Mars Attacks! 1996 -DeVito, Danny The Jewel of the Nile 1985 -DeVito, Danny Austin Powers in Goldmember 2002 -DeVito, Danny Batman Returns 1992 -DeVito, Danny Ruthless People 1986 -DeVito, Danny Big Fish 2003 -DeVito, Danny Space Jam 1996 -DeVito, Danny The Lorax 2012 -DeVito, Danny L.A. Confidential 1997 -Talmadge, Victor Big Momma's House 2 2006 -Talmadge, Victor Hidalgo 2004 -Talmadge, Victor Jack 1996 -Talmadge, Victor The Game 1997 -Granville, James The Blind Side 2009 -Granville, James Ghosts of Girlfriends Past 2009 -Granville, James Iron Man 2 2010 -Winkler, Henry Holes 2003 -Winkler, Henry Click 2006 -Winkler, Henry The Waterboy 1998 -Winkler, Henry Little Nicky 2000 -Winkler, Henry You Don't Mess with the Zohan 2008 -Winkler, Henry Scream 1996 -Gareis, Jennifer The Mirror Has Two Faces 1996 -Gareis, Jennifer The 6th Day 2000 -Gareis, Jennifer Miss Congeniality 2000 -Covert, Allen Just Go with It 2011 -Covert, Allen Deuce Bigalow: Male Gigolo 1999 -Covert, Allen Anger Management 2003 -Covert, Allen The Longest Yard 2005 -Covert, Allen The Waterboy 1998 -Covert, Allen Big Daddy 1999 -Covert, Allen Little Nicky 2000 -Covert, Allen Bedtime Stories 2008 -Covert, Allen Paul Blart: Mall Cop 2009 -Covert, Allen I Now Pronounce You Chuck & Larry 2007 -Covert, Allen Jack and Jill 2011 -Covert, Allen Never Been Kissed 1999 -Covert, Allen 50 First Dates 2004 -Covert, Allen The Wedding Singer 1998 -Covert, Allen Mr. Deeds 2002 -Kelly, Terence (I) The Sisterhood of the Traveling Pants 2005 -Kelly, Terence (I) Watchmen 2009 -Kelly, Terence (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Kelly, Terence (I) The Exorcism of Emily Rose 2005 -Gioiello, Bruno Bad Teacher 2011 -Gioiello, Bruno 28 Days 2000 -Gioiello, Bruno Mickey Blue Eyes 1999 -Gioiello, Bruno Herbie Fully Loaded 2005 -Phillips, Neville Johnny English 2003 -Phillips, Neville Four Weddings and a Funeral 1994 -Phillips, Neville 101 Dalmatians 1996 -Wolfe, Collette Four Christmases 2008 -Wolfe, Collette 17 Again 2009 -Wolfe, Collette Hot Tub Time Machine 2010 -Calder, David Superman 1978 -Calder, David Perfume: The Story of a Murderer 2006 -Calder, David The World Is Not Enough 1999 -Calder, David The Mummy: Tomb of the Dragon Emperor 2008 -Ledger, Heath The Brothers Grimm 2005 -Ledger, Heath Brokeback Mountain 2005 -Ledger, Heath 10 Things I Hate About You 1999 -Ledger, Heath The Patriot 2000 -Ledger, Heath A Knight's Tale 2001 -Uzimann, Naeem The Adjustment Bureau 2011 -Uzimann, Naeem Letters to Juliet 2010 -Uzimann, Naeem Limitless 2011 -Uzimann, Naeem Eat Pray Love 2010 -Uzimann, Naeem Friends with Benefits 2011 -Uzimann, Naeem Wall Street: Money Never Sleeps 2010 -Uzimann, Naeem Step Up 3D 2010 -Uzimann, Naeem The Dictator 2012 -Uzimann, Naeem Percy Jackson & the Olympians: The Lightning Thief 2010 -Uzimann, Naeem You Don't Mess with the Zohan 2008 -Uzimann, Naeem The Other Guys 2010 -Machado, Mario RoboCop 2 1990 -Machado, Mario Rocky III 1982 -Machado, Mario RoboCop 1987 -Newton, Thandie The Chronicles of Riddick 2004 -Newton, Thandie Interview with the Vampire: The Vampire Chronicles 1994 -Newton, Thandie Norbit 2007 -Newton, Thandie Mission: Impossible II 2000 -Newton, Thandie The Pursuit of Happyness 2006 -Lynch, Jane (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Lynch, Jane (I) Role Models 2008 -Lynch, Jane (I) The 40 Year Old Virgin 2005 -Lynch, Jane (I) The Fugitive 1993 -Lynch, Jane (I) The Three Stooges 2012 -Lynch, Jane (I) Ice Age: Dawn of the Dinosaurs 2009 -Lynch, Jane (I) Alvin and the Chipmunks 2007 -Lynch, Jane (I) Rio 2011 -Lynch, Jane (I) Space Chimps 2008 -Lynch, Jane (I) Julie & Julia 2009 -Lynch, Jane (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Lynch, Jane (I) Collateral Damage 2002 -Lynch, Jane (I) Shrek Forever After 2010 -Abdullah, Haji We Are Marshall 2006 -Abdullah, Haji Why Did I Get Married Too? 2010 -Abdullah, Haji Stomp the Yard 2007 -Abdullah, Haji The Blind Side 2009 -Abdullah, Haji Due Date 2010 -Wong, BD Mulan 1998 -Wong, BD Seven Years in Tibet 1997 -Wong, BD The Karate Kid, Part II 1986 -Wong, BD Jurassic Park 1993 -Rodriguez, Michelle (I) Battle Los Angeles 2011 -Rodriguez, Michelle (I) The Fast and the Furious 2001 -Rodriguez, Michelle (I) S.W.A.T. 2003 -Rodriguez, Michelle (I) Fast & Furious 2009 -Rodriguez, Michelle (I) Fast Five 2011 -Rodriguez, Michelle (I) Resident Evil 2002 -Rodriguez, Michelle (I) Avatar 2009 -Rosado, Luis (II) Step Up 3D 2010 -Rosado, Luis (II) Footloose 2011 -Rosado, Luis (II) Step Up 2: The Streets 2008 -Kretschmann, Thomas Resident Evil: Apocalypse 2004 -Kretschmann, Thomas Cars 2 2011 -Kretschmann, Thomas Blade II 2002 -Kretschmann, Thomas U-571 2000 -Kretschmann, Thomas Wanted 2008 -Kretschmann, Thomas Valkyrie 2008 -Kretschmann, Thomas King Kong 2005 -Kretschmann, Thomas The Pianist 2002 -Gallop, Tom The Bourne Ultimatum 2007 -Gallop, Tom Mercury Rising 1998 -Gallop, Tom Artificial Intelligence: AI 2001 -Gallop, Tom The Bourne Supremacy 2004 -Gallop, Tom Jerry Maguire 1996 -Cornish, Abbie Legend of the Guardians: The Owls of Ga'Hoole 2010 -Cornish, Abbie Sucker Punch 2011 -Cornish, Abbie Limitless 2011 -Peters, Clarke Notting Hill 1999 -Peters, Clarke Marley & Me 2008 -Peters, Clarke K-PAX 2001 -Morgan, Joseph (I) Immortals 2011 -Morgan, Joseph (I) Master and Commander: The Far Side of the World 2003 -Morgan, Joseph (I) Alexander 2004 -Hannah, Daryl Kill Bill: Vol. 2 2004 -Hannah, Daryl Wall Street 1987 -Hannah, Daryl A Walk to Remember 2002 -Hannah, Daryl My Favorite Martian 1999 -Hannah, Daryl Kill Bill: Vol. 1 2003 -Elliott, Denholm Indiana Jones and the Last Crusade 1989 -Elliott, Denholm A Room with a View 1985 -Elliott, Denholm Trading Places 1983 -Andris, Martin Four Christmases 2008 -Andris, Martin Iron Man 2 2010 -Andris, Martin Flubber 1997 -Andris, Martin Bowfinger 1999 -Andris, Martin The Pursuit of Happyness 2006 -Andris, Martin It's Complicated 2009 -Patton, Frank (III) Ghost Busters 1984 -Patton, Frank (III) 21 2008 -Patton, Frank (III) Ocean's Eleven 2001 -Patton, Frank (III) Vegas Vacation 1997 -Patton, Frank (III) Last Action Hero 1993 -Najimy, Kathy The Wedding Planner 2001 -Najimy, Kathy Step Up 3D 2010 -Najimy, Kathy Hope Floats 1998 -Najimy, Kathy Sister Act 1992 -Najimy, Kathy WALL·E 2008 -Najimy, Kathy Rat Race 2001 -Faye, Denise Chicago 2002 -Faye, Denise American Pie 2 2001 -Faye, Denise Donnie Brasco 1997 -McGoohan, Catherine Evan Almighty 2007 -McGoohan, Catherine Glory Road 2006 -McGoohan, Catherine Something's Gotta Give 2003 -Chase, Jeff (I) The Rundown 2003 -Chase, Jeff (I) Transporter 2 2005 -Chase, Jeff (I) Mission: Impossible III 2006 -Chase, Jeff (I) Black Knight 2001 -Chase, Jeff (I) Star Trek 2009 -Rusler, Morgan Catch Me If You Can 2002 -Rusler, Morgan The Green Hornet 2011 -Rusler, Morgan Galaxy Quest 1999 -Rusler, Morgan Easy A 2010 -Cresswell, Tommy We Are Marshall 2006 -Cresswell, Tommy Cast Away 2000 -Cresswell, Tommy The Firm 1993 -Gugliemi, Noel S.W.A.T. 2003 -Gugliemi, Noel Old School 2003 -Gugliemi, Noel The Bucket List 2007 -Gugliemi, Noel Training Day 2001 -Gugliemi, Noel Bruce Almighty 2003 -Gugliemi, Noel The Fast and the Furious 2001 -Gugliemi, Noel The Animal 2001 -Clement, Jemaine Dinner for Schmucks 2010 -Clement, Jemaine Rio 2011 -Clement, Jemaine Men in Black 3 2012 -Clement, Jemaine Despicable Me 2010 -Jimz, Edgar The Taking of Pelham 1 2 3 2009 -Jimz, Edgar Confessions of a Shopaholic 2009 -Jimz, Edgar Salt 2010 -Avery, Rick Traffic 2000 -Avery, Rick Heat 1995 -Avery, Rick Men in Black II 2002 -Avery, Rick Spider-Man 2002 -MacDonald, Lindsay (II) Paul Blart: Mall Cop 2009 -MacDonald, Lindsay (II) Zookeeper 2011 -MacDonald, Lindsay (II) Grown Ups 2010 -Byrne, Gabriel Ghost Ship 2002 -Byrne, Gabriel End of Days 1999 -Byrne, Gabriel Enemy of the State 1998 -Byrne, Gabriel Stigmata 1999 -Curcuro, Bobby Good Will Hunting 1997 -Curcuro, Bobby Fever Pitch 2005 -Curcuro, Bobby The Town 2010 -Dennis, Alfred Catch Me If You Can 2002 -Dennis, Alfred Bruce Almighty 2003 -Dennis, Alfred Mr. Deeds 2002 -Bray, Andy Any Given Sunday 1999 -Bray, Andy Spider-Man 2002 -Bray, Andy Herbie Fully Loaded 2005 -Maher, Lauren Pirates of the Caribbean: Dead Man's Chest 2006 -Maher, Lauren Pirates of the Caribbean: At World's End 2007 -Maher, Lauren Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Brando, Marlon Apocalypse Now 1979 -Brando, Marlon The Godfather 1972 -Brando, Marlon Superman 1978 -Brando, Marlon The Score 2001 -Brando, Marlon Superman Returns 2006 -Washington, Jascha Snow Dogs 2002 -Washington, Jascha Big Momma's House 2 2006 -Washington, Jascha Big Momma's House 2000 -Washington, Jascha Enemy of the State 1998 -Coleman, Austin Michael Angels & Demons 2009 -Coleman, Austin Michael Bad Teacher 2011 -Coleman, Austin Michael The Green Hornet 2011 -Berkeley, Xander A Few Good Men 1992 -Berkeley, Xander Amistad 1997 -Berkeley, Xander Shanghai Noon 2000 -Berkeley, Xander Apollo 13 1995 -Berkeley, Xander Air Force One 1997 -Berkeley, Xander Kick-Ass 2010 -Berkeley, Xander Terminator 2: Judgment Day 1991 -Berkeley, Xander Heat 1995 -Berkeley, Xander The Rock 1996 -Schaal, Kristen Toy Story 3 2010 -Schaal, Kristen Norbit 2007 -Schaal, Kristen Shrek Forever After 2010 -Schaal, Kristen Get Him to the Greek 2010 -Schaal, Kristen The Muppets 2011 -Schaal, Kristen Dinner for Schmucks 2010 -Sheridan, Fletcher American Pie 1999 -Sheridan, Fletcher License to Wed 2007 -Sheridan, Fletcher Cats & Dogs: The Revenge of Kitty Galore 2010 -Osborne, Gwendolyn Snow Dogs 2002 -Osborne, Gwendolyn Any Given Sunday 1999 -Osborne, Gwendolyn Jack and Jill 2011 -Howard, Jeremy (I) Catch Me If You Can 2002 -Howard, Jeremy (I) Hotel for Dogs 2009 -Howard, Jeremy (I) The Haunted Mansion 2003 -Howard, Jeremy (I) Galaxy Quest 1999 -Howard, Jeremy (I) Men in Black II 2002 -Howard, Jeremy (I) How the Grinch Stole Christmas 2000 -Howard, Jeremy (I) Lady in the Water 2006 -Russell, Betsy Saw 3D 2010 -Russell, Betsy Saw IV 2007 -Russell, Betsy Saw V 2008 -Russell, Betsy Saw III 2006 -Leder, Erwin Taxidermia 2006 -Leder, Erwin Schindler's List 1993 -Leder, Erwin Underworld 2003 -Lake, Don Police Academy 1984 -Lake, Don Return to Me 2000 -Lake, Don Terminator 2: Judgment Day 1991 -Cox, Nathalie Jumper 2008 -Cox, Nathalie Clash of the Titans 2010 -Cox, Nathalie Kingdom of Heaven 2005 -Toles-Bey, John Out for Justice 1991 -Toles-Bey, John Waterworld 1995 -Toles-Bey, John Dude, Where's My Car? 2000 -Toles-Bey, John K-PAX 2001 -Currie, Brian Hayes Me, Myself & Irene 2000 -Currie, Brian Hayes Fever Pitch 2005 -Currie, Brian Hayes The Game Plan 2007 -Currie, Brian Hayes Beverly Hills Ninja 1997 -Currie, Brian Hayes Invincible 2006 -Currie, Brian Hayes Armageddon 1998 -Currie, Brian Hayes Con Air 1997 -Baker, Don Henderson October Sky 1999 -Baker, Don Henderson Divine Secrets of the Ya-Ya Sisterhood 2002 -Baker, Don Henderson Runaway Jury 2003 -Ballora, Greg Men in Black II 2002 -Ballora, Greg The X Files 1998 -Ballora, Greg The Muppets 2011 -Bright, Cameron Thank You for Smoking 2005 -Bright, Cameron New Moon 2009 -Bright, Cameron The Butterfly Effect 2004 -Bright, Cameron The Twilight Saga: Eclipse 2010 -Bright, Cameron Juno 2007 -Bright, Cameron X-Men: The Last Stand 2006 -Nero, Franco Letters to Juliet 2010 -Nero, Franco Cars 2 2011 -Nero, Franco Die Hard 2 1990 -Davis, Jason (VIII) Step Brothers 2008 -Davis, Jason (VIII) Talladega Nights: The Ballad of Ricky Bobby 2006 -Davis, Jason (VIII) Runaway Jury 2003 -Termo, Leonard Ali 2001 -Termo, Leonard Godzilla 1998 -Termo, Leonard Fight Club 1999 -Gaynes, George Wag the Dog 1997 -Gaynes, George Police Academy 3: Back in Training 1986 -Gaynes, George Police Academy 1984 -Gaynes, George Police Academy 2: Their First Assignment 1985 -Gaynes, George Tootsie 1982 -Gaynes, George Just Married 2003 -Arden, Michael (II) Source Code 2011 -Arden, Michael (II) The Good Shepherd 2006 -Arden, Michael (II) Bride Wars 2009 -Major, Mary The Birdcage 1996 -Major, Mary Kiss the Girls 1997 -Major, Mary The Negotiator 1998 -Sandler, Adam (I) Just Go with It 2011 -Sandler, Adam (I) Anger Management 2003 -Sandler, Adam (I) The Longest Yard 2005 -Sandler, Adam (I) The Waterboy 1998 -Sandler, Adam (I) Big Daddy 1999 -Sandler, Adam (I) Little Nicky 2000 -Sandler, Adam (I) Bedtime Stories 2008 -Sandler, Adam (I) Click 2006 -Sandler, Adam (I) I Now Pronounce You Chuck & Larry 2007 -Sandler, Adam (I) Jack and Jill 2011 -Sandler, Adam (I) Funny People 2009 -Sandler, Adam (I) You Don't Mess with the Zohan 2008 -Sandler, Adam (I) Zookeeper 2011 -Sandler, Adam (I) 50 First Dates 2004 -Sandler, Adam (I) The Hot Chick 2002 -Sandler, Adam (I) The Wedding Singer 1998 -Sandler, Adam (I) Mr. Deeds 2002 -Sandler, Adam (I) Grown Ups 2010 -Sandler, Adam (I) The Animal 2001 -Tubert, Marcelo Pirates of the Caribbean: At World's End 2007 -Tubert, Marcelo The Hunchback of Notre Dame 1996 -Tubert, Marcelo Miss Congeniality 2: Armed and Fabulous 2005 -Tubert, Marcelo Over the Hedge 2006 -Hetherington, Mark (I) Shutter Island 2010 -Hetherington, Mark (I) Knight and Day 2010 -Hetherington, Mark (I) Paul Blart: Mall Cop 2009 -Hetherington, Mark (I) 27 Dresses 2008 -Wood, Frank (III) The Royal Tenenbaums 2001 -Wood, Frank (III) Michael Clayton 2007 -Wood, Frank (III) Changeling 2008 -Wood, Frank (III) The Taking of Pelham 1 2 3 2009 -Wood, Frank (III) Dan in Real Life 2007 -Richmond-Peck, David Rise of the Planet of the Apes 2011 -Richmond-Peck, David The Day the Earth Stood Still 2008 -Richmond-Peck, David Fantastic Four 2005 -Adsit, Scott Without a Paddle 2004 -Adsit, Scott The Terminal 2004 -Adsit, Scott The Italian Job 2003 -Adsit, Scott Kicking & Screaming 2005 -Jimenez, Carla (I) Nacho Libre 2006 -Jimenez, Carla (I) Lady in the Water 2006 -Jimenez, Carla (I) Act of Valor 2012 -Lara, Mario (II) The Wedding Planner 2001 -Lara, Mario (II) Stigmata 1999 -Lara, Mario (II) Guess Who 2005 -Lara, Mario (II) Sister Act 1992 -Hopkins, Barry (II) Madea Goes to Jail 2009 -Hopkins, Barry (II) We Are Marshall 2006 -Hopkins, Barry (II) Zombieland 2009 -Hopkins, Barry (II) Due Date 2010 -Hopkins, Barry (II) Life as We Know It 2010 -Crystal, Billy Running Scared 1986 -Crystal, Billy Cars 2006 -Crystal, Billy The Muppets 2011 -Crystal, Billy Analyze This 1999 -Crystal, Billy America's Sweethearts 2001 -Crystal, Billy Hauru no ugoku shiro 2004 -Crystal, Billy Monsters, Inc. 2001 -Young, Melissa Anne Pearl Harbor 2001 -Young, Melissa Anne Legally Blonde 2001 -Young, Melissa Anne The Stepford Wives 2004 -McDougall, Martin The Fifth Element 1997 -McDougall, Martin Batman Begins 2005 -McDougall, Martin Saving Private Ryan 1998 -Cummins, Gregory Scott The Italian Job 2003 -Cummins, Gregory Scott Cliffhanger 1993 -Cummins, Gregory Scott Batman Returns 1992 -Jackson, Samuel L. Rules of Engagement 2000 -Jackson, Samuel L. Coming to America 1988 -Jackson, Samuel L. 1408 2007 -Jackson, Samuel L. Iron Man 2 2010 -Jackson, Samuel L. Die Hard: With a Vengeance 1995 -Jackson, Samuel L. African Cats 2011 -Jackson, Samuel L. Star Wars: Episode I - The Phantom Menace 1999 -Jackson, Samuel L. Coach Carter 2005 -Jackson, Samuel L. The Avengers 2012 -Jackson, Samuel L. Shaft 2000 -Jackson, Samuel L. The Other Guys 2010 -Jackson, Samuel L. Inglourious Basterds 2009 -Jackson, Samuel L. xXx 2002 -Jackson, Samuel L. S.W.A.T. 2003 -Jackson, Samuel L. Star Wars: Episode III - Revenge of the Sith 2005 -Jackson, Samuel L. Kill Bill: Vol. 2 2004 -Jackson, Samuel L. Jumper 2008 -Jackson, Samuel L. A Time to Kill 1996 -Jackson, Samuel L. Jackie Brown 1997 -Jackson, Samuel L. Jurassic Park 1993 -Jackson, Samuel L. The Long Kiss Goodnight 1996 -Jackson, Samuel L. The Incredibles 2004 -Jackson, Samuel L. Thor 2011 -Jackson, Samuel L. Pulp Fiction 1994 -Jackson, Samuel L. Captain America: The First Avenger 2011 -Jackson, Samuel L. Snakes on a Plane 2006 -Jackson, Samuel L. Star Wars: Episode II - Attack of the Clones 2002 -Jackson, Samuel L. Changing Lanes 2002 -Jackson, Samuel L. Deep Blue Sea 1999 -Jackson, Samuel L. Unbreakable 2000 -Jackson, Samuel L. The Negotiator 1998 -Kubota, Tak Gung Ho 1986 -Kubota, Tak Pearl Harbor 2001 -Kubota, Tak The Fast and the Furious: Tokyo Drift 2006 -Boehle, Michelle Coach Carter 2005 -Boehle, Michelle Bowfinger 1999 -Boehle, Michelle Bedazzled 2000 -Echols, Jennifer Save the Last Dance 2001 -Echols, Jennifer The Notebook 2004 -Echols, Jennifer The Ladykillers 2004 -Sievers, Gary Pirates of the Caribbean: At World's End 2007 -Sievers, Gary Pirates of the Caribbean: Dead Man's Chest 2006 -Sievers, Gary Role Models 2008 -Sievers, Gary Herbie Fully Loaded 2005 -Sievers, Gary Little Fockers 2010 -Sievers, Gary Alice in Wonderland 2010 -Sievers, Gary National Treasure: Book of Secrets 2007 -Sievers, Gary Night at the Museum 2006 -Sievers, Gary Anchorman: The Legend of Ron Burgundy 2004 -Sievers, Gary Constantine 2005 -Sievers, Gary The Prestige 2006 -Charles, Josh S.W.A.T. 2003 -Charles, Josh Four Brothers 2005 -Charles, Josh Dead Poets Society 1989 -Jones, Vinnie Road Trip 2000 -Jones, Vinnie Madagascar 3: Europe's Most Wanted 2012 -Jones, Vinnie Garfield: A Tail of Two Kitties 2006 -Jones, Vinnie X-Men: The Last Stand 2006 -Jones, Vinnie Gone in Sixty Seconds 2000 -Jones, Vinnie Swordfish 2001 -Schanz, Heidi (I) The Truman Show 1998 -Schanz, Heidi (I) Se7en 1995 -Schanz, Heidi (I) Kiss the Girls 1997 -Butler, G. Larry Catch Me If You Can 2002 -Butler, G. Larry Hook 1991 -Butler, G. Larry Rocky V 1990 -Butler, G. Larry Eagle Eye 2008 -Chinyamurindi, Michael George of the Jungle 1997 -Chinyamurindi, Michael The Wild Thornberrys Movie 2002 -Chinyamurindi, Michael Congo 1995 -Chinyamurindi, Michael Curious George 2006 -Chinyamurindi, Michael The Lost World: Jurassic Park 1997 -Paton, Angela American Wedding 2003 -Paton, Angela The Wedding Singer 1998 -Paton, Angela Red Eye 2005 -Paton, Angela Groundhog Day 1993 -Buescher, Julianne Chicken Little 2005 -Buescher, Julianne Barnyard 2006 -Buescher, Julianne Forgetting Sarah Marshall 2008 -Buescher, Julianne Open Season 2006 -Buescher, Julianne Pirates of the Caribbean: At World's End 2007 -Buescher, Julianne Mulan 1998 -Buescher, Julianne Star Wars: Episode I - The Phantom Menace 1999 -Buescher, Julianne Speed Racer 2008 -Buescher, Julianne The Wild 2006 -Schmid, Kyle The Sisterhood of the Traveling Pants 2005 -Schmid, Kyle A History of Violence 2005 -Schmid, Kyle The Pacifier 2005 -Williams, Delaney The Replacements 2000 -Williams, Delaney Ladder 49 2004 -Williams, Delaney Contact 1997 -Smith, Phyllis Bad Teacher 2011 -Smith, Phyllis The 40 Year Old Virgin 2005 -Smith, Phyllis Alvin and the Chipmunks: Chipwrecked 2011 -Itzin, Gregory The Ides of March 2011 -Itzin, Gregory Law Abiding Citizen 2009 -Itzin, Gregory Evolution 2001 -Brown, Natalie (VI) How to Lose a Guy in 10 Days 2003 -Brown, Natalie (VI) Dawn of the Dead 2004 -Brown, Natalie (VI) Saw V 2008 -Hopper, Dennis Speed 1994 -Hopper, Dennis Apocalypse Now 1979 -Hopper, Dennis Waterworld 1995 -Ciarfalio, Carl Out for Justice 1991 -Ciarfalio, Carl Guess Who 2005 -Ciarfalio, Carl In the Line of Fire 1993 -Ciarfalio, Carl Licence to Kill 1989 -Ciarfalio, Carl Fight Club 1999 -Ciarfalio, Carl Con Air 1997 -Ciarfalio, Carl Traffic 2000 -Gerald, Matt Avatar 2009 -Gerald, Matt S.W.A.T. 2003 -Gerald, Matt Terminator 3: Rise of the Machines 2003 -Gerald, Matt Magnolia 1999 -McNulty, Kevin Fantastic Four 2005 -McNulty, Kevin 4: Rise of the Silver Surfer 2007 -McNulty, Kevin Watchmen 2009 -McNulty, Kevin Snakes on a Plane 2006 -McNulty, Kevin John Tucker Must Die 2006 -McNulty, Kevin Timecop 1994 -Cass, Don (I) Selena 1997 -Cass, Don (I) Miss Congeniality 2000 -Cass, Don (I) Varsity Blues 1999 -Hart, Stephen R. Silent Hill 2006 -Hart, Stephen R. Resident Evil: Apocalypse 2004 -Hart, Stephen R. Max Payne 2008 -Matthews, Sharron Hairspray 2007 -Matthews, Sharron Mean Girls 2004 -Matthews, Sharron Cinderella Man 2005 -Garcia, Andy (I) Ocean's Eleven 2001 -Garcia, Andy (I) Beverly Hills Chihuahua 2008 -Garcia, Andy (I) Ocean's Twelve 2004 -Garcia, Andy (I) Ocean's Thirteen 2007 -Argenti, Alex The Bourne Ultimatum 2007 -Argenti, Alex Harry Potter and the Goblet of Fire 2005 -Argenti, Alex The Hitchhiker's Guide to the Galaxy 2005 -Argenti, Alex Batman Begins 2005 -Lee, Waymond Iron Man 2 2010 -Lee, Waymond Race to Witch Mountain 2009 -Lee, Waymond Yes Man 2008 -Lee, Waymond Angels & Demons 2009 -Lee, Waymond Skyline 2010 -Lee, Waymond Bedtime Stories 2008 -Lee, Waymond He's Just Not That Into You 2009 -Owen, Clive (I) The Pink Panther 2006 -Owen, Clive (I) Inside Man 2006 -Owen, Clive (I) Sin City 2005 -Owen, Clive (I) The Bourne Identity 2002 -Owen, Clive (I) Gosford Park 2001 -Owen, Clive (I) King Arthur 2004 -Chi, Chao Li Wedding Crashers 2005 -Chi, Chao Li The Nutty Professor 1996 -Chi, Chao Li The Master of Disguise 2002 -Chi, Chao Li The Prestige 2006 -Gallagher, Patrick (I) Night at the Museum: Battle of the Smithsonian 2009 -Gallagher, Patrick (I) Final Destination 3 2006 -Gallagher, Patrick (I) Master and Commander: The Far Side of the World 2003 -Gallagher, Patrick (I) Sideways 2004 -Gallagher, Patrick (I) Night at the Museum 2006 -Burg, Michael J. The Brave One 2007 -Burg, Michael J. Capote 2005 -Burg, Michael J. Sleepers 1996 -Eckhouse, James The Avengers 2012 -Eckhouse, James Guess Who 2005 -Eckhouse, James Fatal Attraction 1987 -Eckhouse, James Trading Places 1983 -Eckhouse, James A Cinderella Story 2004 -Portman, Natalie Garden State 2004 -Portman, Natalie Where the Heart Is 2000 -Portman, Natalie V for Vendetta 2005 -Portman, Natalie Zoolander 2001 -Portman, Natalie Star Wars: Episode III - Revenge of the Sith 2005 -Portman, Natalie Heat 1995 -Portman, Natalie Star Wars: Episode I - The Phantom Menace 1999 -Portman, Natalie Mars Attacks! 1996 -Portman, Natalie No Strings Attached 2011 -Portman, Natalie Black Swan 2010 -Portman, Natalie Cold Mountain 2003 -Portman, Natalie Star Wars: Episode II - Attack of the Clones 2002 -Portman, Natalie Mr. Magorium's Wonder Emporium 2007 -Portman, Natalie Thor 2011 -Kash, Daniel (I) Don't Say a Word 2001 -Kash, Daniel (I) Exit Wounds 2001 -Kash, Daniel (I) Aliens 1986 -Kash, Daniel (I) Cinderella Man 2005 -Kash, Daniel (I) The Tuxedo 2002 -Balahoutis, Alexandra National Treasure 2004 -Balahoutis, Alexandra Gone in Sixty Seconds 2000 -Balahoutis, Alexandra Confessions of a Shopaholic 2009 -Balahoutis, Alexandra Coyote Ugly 2000 -Balahoutis, Alexandra Enemy of the State 1998 -Balahoutis, Alexandra Con Air 1997 -Fierstein, Harvey Mrs. Doubtfire 1993 -Fierstein, Harvey Mulan 1998 -Fierstein, Harvey Independence Day 1996 -Kaplan, Neil (II) Rango 2011 -Kaplan, Neil (II) Van Helsing 2004 -Kaplan, Neil (II) Night at the Museum: Battle of the Smithsonian 2009 -Kaplan, Neil (II) Spider-Man 3 2007 -Kaplan, Neil (II) Transformers: Revenge of the Fallen 2009 -Jones, Neal Dirty Dancing 1987 -Jones, Neal The Devil's Advocate 1997 -Jones, Neal The Siege 1998 -Jones, Neal G.I. Jane 1997 -Jones, Neal Changing Lanes 2002 -Loftin, Lennie The Time Machine 2002 -Loftin, Lennie The Sum of All Fears 2002 -Loftin, Lennie Se7en 1995 -Loftin, Lennie L.A. Confidential 1997 -Loftin, Lennie Daredevil 2003 -Loftin, Lennie Sleepers 1996 -Loftin, Lennie 3:10 to Yuma 2007 -Loftin, Lennie Knight and Day 2010 -Stefanson, Leslie Unbreakable 2000 -Stefanson, Leslie The Mirror Has Two Faces 1996 -Stefanson, Leslie The General's Daughter 1999 -Stefanson, Leslie Flubber 1997 -Stefanson, Leslie As Good as It Gets 1997 -Mapother, William Almost Famous 2000 -Mapother, William Magnolia 1999 -Mapother, William Minority Report 2002 -Mapother, William Vanilla Sky 2001 -Mapother, William In the Bedroom 2001 -Mapother, William Mission: Impossible II 2000 -Mapother, William The Grudge 2004 -Mapother, William World Trade Center 2006 -Mapother, William Swordfish 2001 -Gretsch, Joel National Treasure: Book of Secrets 2007 -Gretsch, Joel Minority Report 2002 -Gretsch, Joel Push 2009 -Dennehy, Brian Romeo + Juliet 1996 -Dennehy, Brian Presumed Innocent 1990 -Dennehy, Brian First Blood 1982 -Dennehy, Brian Ratatouille 2007 -Dennehy, Brian Righteous Kill 2008 -Baskin, Elya October Sky 1999 -Baskin, Elya Angels & Demons 2009 -Baskin, Elya Air Force One 1997 -Baskin, Elya Transformers: Dark of the Moon 2011 -Baskin, Elya Spider-Man 2 2004 -Baskin, Elya Austin Powers: International Man of Mystery 1997 -Baskin, Elya Spider-Man 3 2007 -Palmer, Geoffrey (I) Anna and the King 1999 -Palmer, Geoffrey (I) Tomorrow Never Dies 1997 -Palmer, Geoffrey (I) Peter Pan 2003 -Young, Don (I) We Are Marshall 2006 -Young, Don (I) Sweet Home Alabama 2002 -Young, Don (I) Big Fish 2003 -Roehm, Jason Transformers: Revenge of the Fallen 2009 -Roehm, Jason Indiana Jones and the Kingdom of the Crystal Skull 2008 -Roehm, Jason Yes Man 2008 -Marsh, Matthew (I) Bad Company 2002 -Marsh, Matthew (I) Harry Potter and the Goblet of Fire 2005 -Marsh, Matthew (I) Spy Game 2001 -Marsh, Matthew (I) Red Tails 2012 -Prowse, David Star Wars: Episode V - The Empire Strikes Back 1980 -Prowse, David Star Wars 1977 -Prowse, David Star Wars: Episode VI - Return of the Jedi 1983 -Menezes, João Costa The Mummy 1999 -Menezes, João Costa Sleepy Hollow 1999 -Menezes, João Costa V for Vendetta 2005 -Menezes, João Costa Chocolat 2000 -Menezes, João Costa Prince of Persia: The Sands of Time 2010 -Menezes, João Costa Robin Hood 2010 -Menezes, João Costa Star Wars: Episode I - The Phantom Menace 1999 -Menezes, João Costa Notting Hill 1999 -Menezes, João Costa Clash of the Titans 2010 -Menezes, João Costa Gladiator 2000 -Goldstein, Larry (II) Step Brothers 2008 -Goldstein, Larry (II) The Other Guys 2010 -Goldstein, Larry (II) Death Race 2008 -Goldstein, Larry (II) The Green Hornet 2011 -Goldstein, Larry (II) The Adjustment Bureau 2011 -McNee, Andrew Firewall 2006 -McNee, Andrew Diary of a Wimpy Kid: Rodrick Rules 2011 -McNee, Andrew Diary of a Wimpy Kid 2010 -McNee, Andrew Scary Movie 4 2006 -Alejandro, Charlie The Fighter 2010 -Alejandro, Charlie Knight and Day 2010 -Alejandro, Charlie Grown Ups 2010 -Alejandro, Charlie Zookeeper 2011 -Vanterpool, Tacuma American Gangster 2007 -Vanterpool, Tacuma Underdog 2007 -Vanterpool, Tacuma Dan in Real Life 2007 -Vanterpool, Tacuma 27 Dresses 2008 -Rapace, Noomi Sherlock Holmes: A Game of Shadows 2011 -Rapace, Noomi Prometheus 2012 -Rapace, Noomi Män som hatar kvinnor 2009 -Smith, Sarah Christine Scream 2 1997 -Smith, Sarah Christine Austin Powers: The Spy Who Shagged Me 1999 -Smith, Sarah Christine Like Mike 2002 -Smith, Sarah Christine She's All That 1999 -Smith, Sarah Christine Austin Powers: International Man of Mystery 1997 -Sterling, Andrei The Scorpion King 2002 -Sterling, Andrei Vanilla Sky 2001 -Sterling, Andrei The Mighty Ducks 1992 -Grodénchik, Max Bruce Almighty 2003 -Grodénchik, Max Sister Act 1992 -Grodénchik, Max Star Trek: Insurrection 1998 -Grodénchik, Max Apollo 13 1995 -Kingi, Dorian Act of Valor 2012 -Kingi, Dorian Green Lantern 2011 -Kingi, Dorian The Amityville Horror 2005 -Kingi, Dorian The Time Machine 2002 -Hocke, Bernard Wag the Dog 1997 -Hocke, Bernard Disclosure 1994 -Hocke, Bernard Green Lantern 2011 -Hocke, Bernard Runaway Jury 2003 -Hocke, Bernard The Negotiator 1998 -Hocke, Bernard Glory Road 2006 -Siegfried, Mandy The School of Rock 2003 -Siegfried, Mandy Two Weeks Notice 2002 -Siegfried, Mandy The Out-of-Towners 1999 -Lavell, Mark Funny People 2009 -Lavell, Mark Four Christmases 2008 -Lavell, Mark Contagion 2011 -Lavell, Mark Red Tails 2012 -Lavell, Mark The Pursuit of Happyness 2006 -Lavell, Mark Moneyball 2011 -Devereux, Clarke Home Alone 1990 -Devereux, Clarke Home Alone 2: Lost in New York 1992 -Devereux, Clarke Bicentennial Man 1999 -Lonsdale, Michael (I) Moonraker 1979 -Lonsdale, Michael (I) Chariots of Fire 1981 -Lonsdale, Michael (I) Munich 2005 -Lonsdale, Michael (I) Ronin 1998 -Arias, Moises Kari-gurashi no Arietti 2010 -Arias, Moises Nacho Libre 2006 -Arias, Moises Hannah Montana: The Movie 2009 -Fraser, Brendan Bedazzled 2000 -Fraser, Brendan George of the Jungle 1997 -Fraser, Brendan The Mummy 1999 -Fraser, Brendan The Mummy: Tomb of the Dragon Emperor 2008 -Fraser, Brendan G.I. Joe: The Rise of Cobra 2009 -Fraser, Brendan The Mummy Returns 2001 -Fraser, Brendan Journey to the Center of the Earth 2008 -Day-Jones, Anne Source Code 2011 -Day-Jones, Anne The Day After Tomorrow 2004 -Day-Jones, Anne Immortals 2011 -Hislop, Scott She's All That 1999 -Hislop, Scott Titanic 1997 -Hislop, Scott Wild Wild West 1999 -Coyote, Peter Erin Brockovich 2000 -Coyote, Peter E.T.: The Extra-Terrestrial 1982 -Coyote, Peter A Walk to Remember 2002 -Coyote, Peter Patch Adams 1998 -Tergesen, Lee The Texas Chainsaw Massacre: The Beginning 2006 -Tergesen, Lee Monster 2003 -Tergesen, Lee The Forgotten 2004 -Tergesen, Lee Red Tails 2012 -Tergesen, Lee Shaft 2000 -Leschin, Luisa Rain Man 1988 -Leschin, Luisa Mulan 1998 -Leschin, Luisa Yogi Bear 2010 -Grunberg, Greg The Ladykillers 2004 -Grunberg, Greg Hollow Man 2000 -Grunberg, Greg Star Trek 2009 -Grunberg, Greg Mission: Impossible III 2006 -Grunberg, Greg Austin Powers in Goldmember 2002 -Grunberg, Greg Super 8 2011 -Cathey, Reg E. Clear and Present Danger 1994 -Cathey, Reg E. The Mask 1994 -Cathey, Reg E. Se7en 1995 -Cathey, Reg E. S.W.A.T. 2003 -Guerriero, Nancy Star Trek 2009 -Guerriero, Nancy Angels & Demons 2009 -Guerriero, Nancy Four Christmases 2008 -Guerriero, Nancy Yes Man 2008 -Guerriero, Nancy Knowing 2009 -LaBeouf, Shia Holes 2003 -LaBeouf, Shia Constantine 2005 -LaBeouf, Shia Wall Street: Money Never Sleeps 2010 -LaBeouf, Shia Transformers: Revenge of the Fallen 2009 -LaBeouf, Shia Surf's Up 2007 -LaBeouf, Shia Transformers 2007 -LaBeouf, Shia Indiana Jones and the Kingdom of the Crystal Skull 2008 -LaBeouf, Shia Eagle Eye 2008 -LaBeouf, Shia Charlie's Angels: Full Throttle 2003 -LaBeouf, Shia Transformers: Dark of the Moon 2011 -LaBeouf, Shia I, Robot 2004 -LaBeouf, Shia Disturbia 2007 -Lords, Bernadette Spider-Man 3 2007 -Lords, Bernadette 1408 2007 -Lords, Bernadette You Don't Mess with the Zohan 2008 -Jace, Michael The Replacements 2000 -Jace, Michael Clear and Present Danger 1994 -Jace, Michael Boogie Nights 1997 -Jace, Michael Forrest Gump 1994 -Ohmer, Tom Magnolia 1999 -Ohmer, Tom G.I. Joe: The Rise of Cobra 2009 -Ohmer, Tom Charlie Wilson's War 2007 -Grinn, Pride Invincible 2006 -Grinn, Pride Yes Man 2008 -Grinn, Pride Any Given Sunday 1999 -Harris, Danielle (I) Daylight 1996 -Harris, Danielle (I) Rugrats Go Wild 2003 -Harris, Danielle (I) The Wild Thornberrys Movie 2002 -Harris, Danielle (I) Halloween 2007 -Harris, Danielle (I) Urban Legend 1998 -LaMarche, Maurice Elf 2003 -LaMarche, Maurice Barnyard 2006 -LaMarche, Maurice Space Jam 1996 -LaMarche, Maurice Open Season 2006 -LaMarche, Maurice As Good as It Gets 1997 -LaMarche, Maurice Team America: World Police 2004 -Tuerpe, Paul Lethal Weapon 4 1998 -Tuerpe, Paul The X Files 1998 -Tuerpe, Paul Lethal Weapon 2 1989 -Tuerpe, Paul Superman 1978 -Tuerpe, Paul The Goonies 1985 -Tuerpe, Paul Conspiracy Theory 1997 -Tuerpe, Paul Lethal Weapon 3 1992 -White, Julie (I) What Women Want 2000 -White, Julie (I) Michael Clayton 2007 -White, Julie (I) Transformers: Revenge of the Fallen 2009 -White, Julie (I) Transformers 2007 -White, Julie (I) Monsters vs Aliens 2009 -White, Julie (I) Transformers: Dark of the Moon 2011 -Streisand, Barbra Yentl 1983 -Streisand, Barbra Little Fockers 2010 -Streisand, Barbra The Mirror Has Two Faces 1996 -Streisand, Barbra Meet the Fockers 2004 -Hoskins, Bob (I) Michael 1996 -Hoskins, Bob (I) Snow White and the Huntsman 2012 -Hoskins, Bob (I) Maid in Manhattan 2002 -Hoskins, Bob (I) Garfield: A Tail of Two Kitties 2006 -Hoskins, Bob (I) Enemy at the Gates 2001 -Hoskins, Bob (I) Who Framed Roger Rabbit 1988 -Hoskins, Bob (I) A Christmas Carol 2009 -Hoskins, Bob (I) Spice World 1997 -Hoskins, Bob (I) Hook 1991 -Knatchbull, Melissa The Saint 1997 -Knatchbull, Melissa Mission: Impossible 1996 -Knatchbull, Melissa Four Weddings and a Funeral 1994 -Naebig, Kurt Road to Perdition 2002 -Naebig, Kurt The Relic 1997 -Naebig, Kurt A Nightmare on Elm Street 2010 -Naebig, Kurt Public Enemies 2009 -Carrey, Jim Lemony Snicket's A Series of Unfortunate Events 2004 -Carrey, Jim The Mask 1994 -Carrey, Jim Horton Hears a Who! 2008 -Carrey, Jim Dumb & Dumber 1994 -Carrey, Jim Batman Forever 1995 -Carrey, Jim How the Grinch Stole Christmas 2000 -Carrey, Jim Mr. Popper's Penguins 2011 -Carrey, Jim The Cable Guy 1996 -Carrey, Jim Under the Sea 3D 2009 -Carrey, Jim The Truman Show 1998 -Carrey, Jim Liar Liar 1997 -Carrey, Jim Me, Myself & Irene 2000 -Carrey, Jim A Christmas Carol 2009 -Carrey, Jim Fun with Dick and Jane 2005 -Carrey, Jim Eternal Sunshine of the Spotless Mind 2004 -Carrey, Jim Ace Ventura: When Nature Calls 1995 -Carrey, Jim Bruce Almighty 2003 -Carrey, Jim Yes Man 2008 -Ramsey, David (III) We Are Marshall 2006 -Ramsey, David (III) Guess Who 2005 -Ramsey, David (III) Runaway Jury 2003 -Ramsey, David (III) Big Fish 2003 -Cullen, Peter (I) Transformers: Revenge of the Fallen 2009 -Cullen, Peter (I) Predator 1987 -Cullen, Peter (I) The Tigger Movie 2000 -Cullen, Peter (I) Transformers: Dark of the Moon 2011 -Cullen, Peter (I) Transformers 2007 -Carvey, Dana Jack and Jill 2011 -Carvey, Dana Little Nicky 2000 -Carvey, Dana The Master of Disguise 2002 -Anderson, Stephen J. (I) Bolt 2008 -Anderson, Stephen J. (I) Meet the Robinsons 2007 -Anderson, Stephen J. (I) The Emperor's New Groove 2000 -Quon, Darryl The Mummy: Tomb of the Dragon Emperor 2008 -Quon, Darryl Night at the Museum: Battle of the Smithsonian 2009 -Quon, Darryl Snakes on a Plane 2006 -Quon, Darryl Night at the Museum 2006 -Salmon, Colin AVP: Alien vs. Predator 2004 -Salmon, Colin The World Is Not Enough 1999 -Salmon, Colin Tomorrow Never Dies 1997 -Salmon, Colin Die Another Day 2002 -Salmon, Colin Resident Evil 2002 -Samberg, Andy Space Chimps 2008 -Samberg, Andy I Love You, Man 2009 -Samberg, Andy Friends with Benefits 2011 -Samberg, Andy Cloudy with a Chance of Meatballs 2009 -Deschanel, Zooey Elf 2003 -Deschanel, Zooey Almost Famous 2000 -Deschanel, Zooey The Happening 2008 -Deschanel, Zooey The Hitchhiker's Guide to the Galaxy 2005 -Deschanel, Zooey Failure to Launch 2006 -Deschanel, Zooey Surf's Up 2007 -Deschanel, Zooey Bridge to Terabithia 2007 -Deschanel, Zooey Yes Man 2008 -Deschanel, Zooey 500) Days of Summer 2009 -Barnett, Angus Pirates of the Caribbean: At World's End 2007 -Barnett, Angus Finding Neverland 2004 -Barnett, Angus Calendar Girls 2003 -Barnett, Angus Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Dogg, Snoop Old School 2003 -Dogg, Snoop Racing Stripes 2005 -Dogg, Snoop Starsky & Hutch 2004 -Dogg, Snoop Justin Bieber: Never Say Never 2011 -Dogg, Snoop Training Day 2001 -Bolender, Bill RoboCop 2 1990 -Bolender, Bill JFK 1991 -Bolender, Bill Dante's Peak 1997 -Mitchell, Hugh (I) Harry Potter and the Order of the Phoenix 2007 -Mitchell, Hugh (I) Harry Potter and the Chamber of Secrets 2002 -Mitchell, Hugh (I) The Da Vinci Code 2006 -Harris, Rosemary (I) This Means War 2012 -Harris, Rosemary (I) Spider-Man 3 2007 -Harris, Rosemary (I) Spider-Man 2 2004 -Harris, Rosemary (I) Spider-Man 2002 -Bass, Lance I Now Pronounce You Chuck & Larry 2007 -Bass, Lance Tropic Thunder 2008 -Bass, Lance Zoolander 2001 -Abbott, Deborah Miss Congeniality 2000 -Abbott, Deborah Where the Heart Is 2000 -Abbott, Deborah The Rookie 2002 -Abbott, Deborah Spy Kids 2: Island of Lost Dreams 2002 -Nelson, Craig T. Blades of Glory 2007 -Nelson, Craig T. Poltergeist 1982 -Nelson, Craig T. The Incredibles 2004 -Nelson, Craig T. The Family Stone 2005 -Nelson, Craig T. Wag the Dog 1997 -Nelson, Craig T. The Devil's Advocate 1997 -Nelson, Craig T. The Killing Fields 1984 -Ming-Na Push 2009 -Ming-Na Mulan 1998 -Ming-Na Final Fantasy: The Spirits Within 2001 -Gerety, Peter Charlie Wilson's War 2007 -Gerety, Peter Inside Man 2006 -Gerety, Peter Paul Blart: Mall Cop 2009 -Gerety, Peter Public Enemies 2009 -Gerety, Peter Sleepers 1996 -Gerety, Peter Syriana 2005 -Gerety, Peter Changeling 2008 -Gerety, Peter K-PAX 2001 -Foster, V.J. The Insider 1999 -Foster, V.J. Million Dollar Baby 2004 -Foster, V.J. Jarhead 2005 -Foster, V.J. Indiana Jones and the Kingdom of the Crystal Skull 2008 -Weyers, Marius The Gods Must Be Crazy 1980 -Weyers, Marius Blood Diamond 2006 -Weyers, Marius Gandhi 1982 -Ferland, Jodelle The Cabin in the Woods 2011 -Ferland, Jodelle Silent Hill 2006 -Ferland, Jodelle The Twilight Saga: Eclipse 2010 -Stickney, Phyllis Yvonne Malcolm X 1992 -Stickney, Phyllis Yvonne Die Hard: With a Vengeance 1995 -Stickney, Phyllis Yvonne How Stella Got Her Groove Back 1998 -Mala, Chris Beowulf 2007 -Mala, Chris Meet the Fockers 2004 -Mala, Chris Avatar 2009 -Wahlberg, Robert (I) Mystic River 2003 -Wahlberg, Robert (I) The Departed 2006 -Wahlberg, Robert (I) Contraband 2012 -Johnson, Nicole Randall Role Models 2008 -Johnson, Nicole Randall License to Wed 2007 -Johnson, Nicole Randall The 40 Year Old Virgin 2005 -Johnson, Nicole Randall In Her Shoes 2005 -Johnson, Nicole Randall Transformers 2007 -Ridings, Richard Rise of the Planet of the Apes 2011 -Ridings, Richard The Brothers Grimm 2005 -Ridings, Richard The Pianist 2002 -Ridings, Richard Who Framed Roger Rabbit 1988 -Ridings, Richard Lara Croft Tomb Raider: The Cradle of Life 2003 -Stan, Sebastian Captain America: The First Avenger 2011 -Stan, Sebastian Black Swan 2010 -Stan, Sebastian Hot Tub Time Machine 2010 -Leguizamo, John Romeo + Juliet 1996 -Leguizamo, John Spawn 1997 -Leguizamo, John The Lincoln Lawyer 2011 -Leguizamo, John Out for Justice 1991 -Leguizamo, John Ice Age: Dawn of the Dinosaurs 2009 -Leguizamo, John Righteous Kill 2008 -Leguizamo, John Moulin Rouge! 2001 -Leguizamo, John Ice Age: The Meltdown 2006 -Leguizamo, John Collateral Damage 2002 -Leguizamo, John Die Hard 2 1990 -Leguizamo, John The Happening 2008 -Leguizamo, John Doctor Dolittle 1998 -Leguizamo, John Ice Age 2002 -Schneider, David (IV) The Saint 1997 -Schneider, David (IV) 28 Days Later... 2002 -Schneider, David (IV) Mission: Impossible 1996 -Schneider, David (IV) A Knight's Tale 2001 -Vaughn, Vernon Four Christmases 2008 -Vaughn, Vernon Couples Retreat 2009 -Vaughn, Vernon The Break-Up 2006 -Karpf, Ève Harry Potter and the Prisoner of Azkaban 2004 -Karpf, Ève Harry Potter and the Sorcerer's Stone 2001 -Karpf, Ève Harry Potter and the Chamber of Secrets 2002 -Karpf, Ève Harry Potter and the Order of the Phoenix 2007 -Karpf, Ève Harry Potter and the Half-Blood Prince 2009 -de Paul, Brandon Galaxy Quest 1999 -de Paul, Brandon K-PAX 2001 -de Paul, Brandon Blue Streak 1999 -Kahn, Jeff (I) The Cable Guy 1996 -Kahn, Jeff (I) The 40 Year Old Virgin 2005 -Kahn, Jeff (I) Tropic Thunder 2008 -Crockett, Affion Charlie's Angels 2000 -Crockett, Affion This Means War 2012 -Crockett, Affion Miss Congeniality 2: Armed and Fabulous 2005 -Lewis, Matthew (III) Harry Potter and the Goblet of Fire 2005 -Lewis, Matthew (III) Harry Potter and the Prisoner of Azkaban 2004 -Lewis, Matthew (III) Harry Potter and the Sorcerer's Stone 2001 -Lewis, Matthew (III) Harry Potter and the Chamber of Secrets 2002 -Lewis, Matthew (III) Harry Potter and the Deathly Hallows: Part 1 2010 -Lewis, Matthew (III) Harry Potter and the Deathly Hallows: Part 2 2011 -Lewis, Matthew (III) Harry Potter and the Order of the Phoenix 2007 -Lewis, Matthew (III) Harry Potter and the Half-Blood Prince 2009 -Trimble, Jerry The Green Hornet 2011 -Trimble, Jerry Heat 1995 -Trimble, Jerry Charlie's Angels 2000 -Gibson, Mel (I) Lethal Weapon 4 1998 -Gibson, Mel (I) Pocahontas 1995 -Gibson, Mel (I) Ransom 1996 -Gibson, Mel (I) The Patriot 2000 -Gibson, Mel (I) Casper 1995 -Gibson, Mel (I) Lethal Weapon 3 1992 -Gibson, Mel (I) What Women Want 2000 -Gibson, Mel (I) Lethal Weapon 2 1989 -Gibson, Mel (I) Conspiracy Theory 1997 -Gibson, Mel (I) We Were Soldiers 2002 -Gibson, Mel (I) Signs 2002 -Gibson, Mel (I) Braveheart 1995 -Gibson, Mel (I) Chicken Run 2000 -Tuck, Jessica Wild Hogs 2007 -Tuck, Jessica Super 8 2011 -Tuck, Jessica Batman Forever 1995 -Tuck, Jessica High School Musical 3: Senior Year 2008 -Watson, Muse Austin Powers: The Spy Who Shagged Me 1999 -Watson, Muse I Still Know What You Did Last Summer 1998 -Watson, Muse I Know What You Did Last Summer 1997 -Blanc, JB Pirates of the Caribbean: At World's End 2007 -Blanc, JB Despicable Me 2010 -Blanc, JB 102 Dalmatians 2000 -Blanc, JB The Golden Compass 2007 -Blanc, JB Coraline 2009 -Blanc, JB The Count of Monte Cristo 2002 -Blanc, JB Garfield: A Tail of Two Kitties 2006 -Gray, Paul G. Lemony Snicket's A Series of Unfortunate Events 2004 -Gray, Paul G. Evolution 2001 -Gray, Paul G. Collateral Damage 2002 -Kelly, Elizabeth M. Cruel Intentions 1999 -Kelly, Elizabeth M. Yes Man 2008 -Kelly, Elizabeth M. Eagle Eye 2008 -Epps, Mike (I) Next Friday 2000 -Epps, Mike (I) Resident Evil: Extinction 2007 -Epps, Mike (I) Resident Evil: Apocalypse 2004 -Epps, Mike (I) Guess Who 2005 -Epps, Mike (I) Hancock 2008 -Epps, Mike (I) The Hangover 2009 -Epps, Mike (I) Dr. Dolittle 2 2001 -Clark, Robin (III) Keeping the Faith 2000 -Clark, Robin (III) A Walk to Remember 2002 -Clark, Robin (III) Anastasia 1997 -Caruso, Phillip V. Analyze This 1999 -Caruso, Phillip V. Wag the Dog 1997 -Caruso, Phillip V. Twelve Monkeys 1995 -Caruso, Phillip V. Meet the Parents 2000 -Urbano, Maryann American Gangster 2007 -Urbano, Maryann Julie & Julia 2009 -Urbano, Maryann The Sisterhood of the Traveling Pants 2 2008 -Slotnick, Joey The Dictator 2012 -Slotnick, Joey Twister 1996 -Slotnick, Joey Hollow Man 2000 -Mandvi, Aasif The Siege 1998 -Mandvi, Aasif Analyze This 1999 -Mandvi, Aasif Spider-Man 2 2004 -Mandvi, Aasif The Dictator 2012 -Mandvi, Aasif Die Hard: With a Vengeance 1995 -Mandvi, Aasif The Last Airbender 2010 -Caton, Robert Randolph Body of Lies 2008 -Caton, Robert Randolph Unbreakable 2000 -Caton, Robert Randolph The Village 2004 -Caton, Robert Randolph Traffic 2000 -Caton, Robert Randolph The Replacements 2000 -Caton, Robert Randolph Minority Report 2002 -Caton, Robert Randolph Hannibal 2001 -Caton, Robert Randolph Ladder 49 2004 -Caton, Robert Randolph Wedding Crashers 2005 -Caton, Robert Randolph Red Dragon 2002 -Jackson, Billy (III) King Kong 2005 -Jackson, Billy (III) The Lord of the Rings: The Two Towers 2002 -Jackson, Billy (III) The Lord of the Rings: The Fellowship of the Ring 2001 -Jackson, Billy (III) The Lord of the Rings: The Return of the King 2003 -Connolly, Desiree April Paul Blart: Mall Cop 2009 -Connolly, Desiree April The Game Plan 2007 -Connolly, Desiree April The Departed 2006 -Connolly, Desiree April 21 2008 -Connolly, Desiree April Bride Wars 2009 -Connolly, Desiree April 27 Dresses 2008 -Connolly, Desiree April Knight and Day 2010 -Connolly, Desiree April Grown Ups 2010 -Connolly, Desiree April Ghosts of Girlfriends Past 2009 -Matthews, Al The Fifth Element 1997 -Matthews, Al Aliens 1986 -Matthews, Al Tomorrow Never Dies 1997 -Orosco, Oscar Bringing Down the House 2003 -Orosco, Oscar A Cinderella Story 2004 -Orosco, Oscar Meet the Spartans 2008 -Orosco, Oscar The Master of Disguise 2002 -Newman, Laraine Horton Hears a Who! 2008 -Newman, Laraine Jingle All the Way 1996 -Newman, Laraine Toy Story 3 2010 -Newman, Laraine Madagascar 2005 -Newman, Laraine Up 2009 -Newman, Laraine WALL·E 2008 -Newman, Laraine Cloudy with a Chance of Meatballs 2009 -Newman, Laraine The Wild Thornberrys Movie 2002 -Newman, Laraine The Wild 2006 -Newman, Laraine The Flintstones 1994 -Newman, Laraine The Lorax 2012 -Newman, Laraine Cars 2006 -Newman, Laraine Barnyard 2006 -Newman, Laraine Ice Age: The Meltdown 2006 -Newman, Laraine Jimmy Neutron: Boy Genius 2001 -Newman, Laraine Gake no ue no Ponyo 2008 -Newman, Laraine Monsters, Inc. 2001 -Newman, Laraine The Sum of All Fears 2002 -Newman, Laraine Spider-Man 3 2007 -Newman, Laraine Surf's Up 2007 -Burkett, Lee Law Abiding Citizen 2009 -Burkett, Lee Confessions of a Shopaholic 2009 -Burkett, Lee Transformers: Revenge of the Fallen 2009 -Burkett, Lee The Happening 2008 -Alexander, John (II) Men in Black 1997 -Alexander, John (II) Men in Black II 2002 -Alexander, John (II) Mighty Joe Young 1998 -Alexander, John (II) Zathura: A Space Adventure 2005 -Alexander, John (II) Hellboy II: The Golden Army 2008 -Alexander, John (II) How the Grinch Stole Christmas 2000 -Amen, Tony Inspector Gadget 1999 -Amen, Tony Wonder Boys 2000 -Amen, Tony Zack and Miri Make a Porno 2008 -Amen, Tony Dogma 1999 -Diorio, Tyce Epic Movie 2007 -Diorio, Tyce Mr. & Mrs. Smith 2005 -Diorio, Tyce 13 Going on 30 2004 -Diorio, Tyce Starsky & Hutch 2004 -McDonald, Da'Vone Forgetting Sarah Marshall 2008 -McDonald, Da'Vone Funny People 2009 -McDonald, Da'Vone Get Him to the Greek 2010 -Craig, Georgia How to Lose a Guy in 10 Days 2003 -Craig, Georgia The Sisterhood of the Traveling Pants 2005 -Craig, Georgia Dawn of the Dead 2004 -Dever, James D. X-Men Origins: Wolverine 2009 -Dever, James D. Battle Los Angeles 2011 -Dever, James D. Windtalkers 2002 -Roberts, David (I) The Matrix Reloaded 2003 -Roberts, David (I) Ghost Rider 2007 -Roberts, David (I) The Matrix Revolutions 2003 -Devine, Christine (I) The Cable Guy 1996 -Devine, Christine (I) Wag the Dog 1997 -Devine, Christine (I) Independence Day 1996 -Miller, Matthew D. Big Fish 2003 -Miller, Matthew D. Sweet Home Alabama 2002 -Miller, Matthew D. Because of Winn-Dixie 2005 -Morgan, Wayne Douglas The Dukes of Hazzard 2005 -Morgan, Wayne Douglas Deja Vu 2006 -Morgan, Wayne Douglas Big Momma's House 2 2006 -Morgan, Wayne Douglas Glory Road 2006 -Gee, Robbie Pirates of the Caribbean: Dead Man's Chest 2006 -Gee, Robbie Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Gee, Robbie Underworld 2003 -Knight, Dave (I) The Birdcage 1996 -Knight, Dave (I) Transporter 2 2005 -Knight, Dave (I) True Lies 1994 -Kneeream, David Invincible 2006 -Kneeream, David Transformers: Revenge of the Fallen 2009 -Kneeream, David The Taking of Pelham 1 2 3 2009 -Kneeream, David Rocky Balboa 2006 -Kneeream, David Precious 2009 -Purefoy, James John Carter 2012 -Purefoy, James A Knight's Tale 2001 -Purefoy, James Resident Evil 2002 -Ruge, George Marshall Set It Off 1996 -Ruge, George Marshall Malcolm X 1992 -Ruge, George Marshall Swordfish 2001 -Berman, Shelley Meet the Fockers 2004 -Berman, Shelley The Holiday 2006 -Berman, Shelley You Don't Mess with the Zohan 2008 -Grigas, Dane Bride Wars 2009 -Grigas, Dane Ghosts of Girlfriends Past 2009 -Grigas, Dane Paul Blart: Mall Cop 2009 -Mayhew, Peter (II) Star Wars: Episode III - Revenge of the Sith 2005 -Mayhew, Peter (II) Star Wars: Episode V - The Empire Strikes Back 1980 -Mayhew, Peter (II) Star Wars 1977 -Mayhew, Peter (II) Star Wars: Episode VI - Return of the Jedi 1983 -DeCicco, Elizabeth The Aviator 2004 -DeCicco, Elizabeth The 40 Year Old Virgin 2005 -DeCicco, Elizabeth Click 2006 -Haysbert, Dennis Kung Fu Panda 2 2011 -Haysbert, Dennis Absolute Power 1997 -Haysbert, Dennis Heat 1995 -Haysbert, Dennis Jarhead 2005 -Rhames, Ving Mission: Impossible 1996 -Rhames, Ving Mission: Impossible - Ghost Protocol 2011 -Rhames, Ving Striptease 1996 -Rhames, Ving Final Fantasy: The Spirits Within 2001 -Rhames, Ving Pulp Fiction 1994 -Rhames, Ving Piranha 2010 -Rhames, Ving Mission: Impossible III 2006 -Rhames, Ving Entrapment 1999 -Rhames, Ving Con Air 1997 -Rhames, Ving Lilo & Stitch 2002 -Rhames, Ving I Now Pronounce You Chuck & Larry 2007 -Rhames, Ving Dawn of the Dead 2004 -Rhames, Ving Mission: Impossible II 2000 -Furdik, Vladimir 'Furdo' Sherlock Holmes: A Game of Shadows 2011 -Furdik, Vladimir 'Furdo' Prometheus 2012 -Furdik, Vladimir 'Furdo' Prince of Persia: The Sands of Time 2010 -Dumas, Charles (I) Deep Impact 1998 -Dumas, Charles (I) Cop Land 1997 -Dumas, Charles (I) The Peacemaker 1997 -Dumas, Charles (I) Die Hard: With a Vengeance 1995 -Dumas, Charles (I) In & Out 1997 -Tammi, Tom Source Code 2011 -Tammi, Tom Clear and Present Danger 1994 -Tammi, Tom The Thomas Crown Affair 1999 -Tammi, Tom Sleepless in Seattle 1993 -Heche, Anne Volcano 1997 -Heche, Anne Wag the Dog 1997 -Heche, Anne The Other Guys 2010 -Heche, Anne I Know What You Did Last Summer 1997 -Heche, Anne Donnie Brasco 1997 -Heche, Anne John Q 2002 -Heche, Anne Six Days Seven Nights 1998 -Nagra, Joti Funny People 2009 -Nagra, Joti The Avengers 2012 -Nagra, Joti Source Code 2011 -Pniewski, Mike Forces of Nature 1999 -Pniewski, Mike Remember the Titans 2000 -Pniewski, Mike A Time to Kill 1996 -Pniewski, Mike Runaway Jury 2003 -Pniewski, Mike Beverly Hills Cop 1984 -Pniewski, Mike We Are Marshall 2006 -Pniewski, Mike Miami Vice 2006 -Pniewski, Mike Dolphin Tale 2011 -Sweeney, Pepper Chicken Little 2005 -Sweeney, Pepper The Time Traveler's Wife 2009 -Sweeney, Pepper Bolt 2008 -Wallace, George (II) Mr. Deeds 2002 -Wallace, George (II) The Ladykillers 2004 -Wallace, George (II) Funny People 2009 -Wallace, George (II) Little Nicky 2000 -Wallace, George (II) Batman Forever 1995 -Thewlis, David War Horse 2011 -Thewlis, David The Omen 2006 -Thewlis, David Harry Potter and the Deathly Hallows: Part 1 2010 -Thewlis, David Harry Potter and the Half-Blood Prince 2009 -Thewlis, David Harry Potter and the Order of the Phoenix 2007 -Thewlis, David Harry Potter and the Prisoner of Azkaban 2004 -Thewlis, David Kingdom of Heaven 2005 -Thewlis, David Seven Years in Tibet 1997 -Thewlis, David DragonHeart 1996 -Thewlis, David Harry Potter and the Deathly Hallows: Part 2 2011 -Schwimmer, Rusty Amistad 1997 -Schwimmer, Rusty Twister 1996 -Schwimmer, Rusty The Perfect Storm 2000 -Schwimmer, Rusty Runaway Jury 2003 -Pollock, Stuart The King's Speech 2010 -Pollock, Stuart The Fighter 2010 -Pollock, Stuart Avatar 2009 -Compton, Norm Face/Off 1997 -Compton, Norm Double Take 2001 -Compton, Norm Collateral Damage 2002 -Miller, Lori (V) The Lake House 2006 -Miller, Lori (V) The Break-Up 2006 -Miller, Lori (V) Ocean's Twelve 2004 -Baruchel, Jay Almost Famous 2000 -Baruchel, Jay Knocked Up 2007 -Baruchel, Jay Million Dollar Baby 2004 -Baruchel, Jay Night at the Museum: Battle of the Smithsonian 2009 -Baruchel, Jay How to Train Your Dragon 2010 -Baruchel, Jay The Sorcerer's Apprentice 2010 -Baruchel, Jay Tropic Thunder 2008 -Akrawi, Mike Jarhead 2005 -Akrawi, Mike Spawn 1997 -Akrawi, Mike True Lies 1994 -Akrawi, Mike The Siege 1998 -Akrawi, Mike Get Smart 2008 -Burton, LeVar Star Trek: First Contact 1996 -Burton, LeVar Star Trek: Insurrection 1998 -Burton, LeVar Ali 2001 -Burton, LeVar Star Trek: Nemesis 2002 -Drake, Larry (I) The Karate Kid 1984 -Drake, Larry (I) Bean 1997 -Drake, Larry (I) American Pie 2 2001 -Martin, Duane Scream 2 1997 -Martin, Duane Any Given Sunday 1999 -Martin, Duane The Faculty 1998 -Elmaleh, Gad The Dictator 2012 -Elmaleh, Gad Jack and Jill 2011 -Elmaleh, Gad The Adventures of Tintin 2011 -Elmaleh, Gad Midnight in Paris 2011 -Elmaleh, Gad La vérité si je mens! 2 2001 -Dopud, Mike X-Men Origins: Wolverine 2009 -Dopud, Mike Mission: Impossible - Ghost Protocol 2011 -Dopud, Mike Journey to the Center of the Earth 2008 -Dopud, Mike Final Destination 5 2011 -Dopud, Mike This Means War 2012 -Dopud, Mike Rise of the Planet of the Apes 2011 -Jefferson, David (II) Unfaithful 2002 -Jefferson, David (II) Remember the Titans 2000 -Jefferson, David (II) Maid in Manhattan 2002 -Jefferson, David (II) Two Weeks Notice 2002 -Kim, Linda (I) Clockstoppers 2002 -Kim, Linda (I) Austin Powers in Goldmember 2002 -Kim, Linda (I) Dude, Where's My Car? 2000 -Kim, Linda (I) Men in Black II 2002 -Heindl, Scott Blade: Trinity 2004 -Heindl, Scott I, Robot 2004 -Heindl, Scott Along Came a Spider 2001 -Morgan, Scott Michael The Book of Eli 2010 -Morgan, Scott Michael The Descendants 2011 -Morgan, Scott Michael Hancock 2008 -Goode, Conrad The Longest Yard 2005 -Goode, Conrad Beverly Hills Ninja 1997 -Goode, Conrad Me, Myself & Irene 2000 -Goode, Conrad Don't Say a Word 2001 -Goode, Conrad Anger Management 2003 -Goode, Conrad Con Air 1997 -Howard, Clint Curious George 2006 -Howard, Clint The Waterboy 1998 -Howard, Clint How the Grinch Stole Christmas 2000 -Howard, Clint Austin Powers: The Spy Who Shagged Me 1999 -Howard, Clint Cinderella Man 2005 -Howard, Clint The Jungle Book 1967 -Howard, Clint Austin Powers: International Man of Mystery 1997 -Howard, Clint Little Nicky 2000 -Howard, Clint Gung Ho 1986 -Howard, Clint Halloween 2007 -Howard, Clint Fun with Dick and Jane 2005 -Howard, Clint Dr. Seuss' The Cat in the Hat 2003 -Howard, Clint My Dog Skip 2000 -Howard, Clint Apollo 13 1995 -Howard, Clint Night at the Museum: Battle of the Smithsonian 2009 -Howard, Clint Austin Powers in Goldmember 2002 -McRobbie, Peter Brokeback Mountain 2005 -McRobbie, Peter Snake Eyes 1998 -McRobbie, Peter Shaft 2000 -McRobbie, Peter World Trade Center 2006 -McRobbie, Peter Spider-Man 2 2004 -McRobbie, Peter Sleepers 1996 -Graham, Heather (I) The Hangover 2009 -Graham, Heather (I) Anger Management 2003 -Graham, Heather (I) Scream 2 1997 -Graham, Heather (I) From Hell 2001 -Graham, Heather (I) Lost in Space 1998 -Graham, Heather (I) Austin Powers: The Spy Who Shagged Me 1999 -Graham, Heather (I) Boogie Nights 1997 -Graham, Heather (I) Bowfinger 1999 -Henderson, Shirley (I) Harry Potter and the Goblet of Fire 2005 -Henderson, Shirley (I) Bridget Jones's Diary 2001 -Henderson, Shirley (I) Bridget Jones: The Edge of Reason 2004 -Henderson, Shirley (I) Harry Potter and the Chamber of Secrets 2002 -Rossum, Emmy The Day After Tomorrow 2004 -Rossum, Emmy Mystic River 2003 -Rossum, Emmy The Phantom of the Opera 2004 -Rossum, Emmy Poseidon 2006 -Lesser, Robert (I) End of Days 1999 -Lesser, Robert (I) The Relic 1997 -Lesser, Robert (I) Running Scared 1986 -Lesser, Robert (I) Godzilla 1998 -Lesser, Robert (I) Die Hard 1988 -Robillard, Kim Rain Man 1988 -Robillard, Kim Mercury Rising 1998 -Robillard, Kim Ali 2001 -Robillard, Kim Hook 1991 -Robillard, Kim Terminator 3: Rise of the Machines 2003 -Robillard, Kim Cliffhanger 1993 -Moseley, William (I) The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Moseley, William (I) The Chronicles of Narnia: Prince Caspian 2008 -Moseley, William (I) The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Shaw, Fiona Harry Potter and the Prisoner of Azkaban 2004 -Shaw, Fiona Harry Potter and the Sorcerer's Stone 2001 -Shaw, Fiona Harry Potter and the Chamber of Secrets 2002 -Shaw, Fiona Harry Potter and the Deathly Hallows: Part 1 2010 -Shaw, Fiona Harry Potter and the Order of the Phoenix 2007 -Phelps, James (I) Harry Potter and the Goblet of Fire 2005 -Phelps, James (I) Harry Potter and the Prisoner of Azkaban 2004 -Phelps, James (I) Harry Potter and the Sorcerer's Stone 2001 -Phelps, James (I) Harry Potter and the Chamber of Secrets 2002 -Phelps, James (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Phelps, James (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Phelps, James (I) Harry Potter and the Order of the Phoenix 2007 -Phelps, James (I) Harry Potter and the Half-Blood Prince 2009 -Bynum, Nate My Dog Skip 2000 -Bynum, Nate The Rainmaker 1997 -Bynum, Nate Miss Congeniality 2: Armed and Fabulous 2005 -Salett, Peter Superbad 2007 -Salett, Peter Forgetting Sarah Marshall 2008 -Salett, Peter Role Models 2008 -Docky Me, Myself & Irene 2000 -Docky Fever Pitch 2005 -Docky The Heartbreak Kid 2007 -Docky There's Something About Mary 1998 -Docky Shallow Hal 2001 -Pickup, Ronald Prince of Persia: The Sands of Time 2010 -Pickup, Ronald Never Say Never Again 1983 -Pickup, Ronald The Best Exotic Marigold Hotel 2011 -Black, Heather (II) Four Christmases 2008 -Black, Heather (II) I Love You, Man 2009 -Black, Heather (II) Yes Man 2008 -Black, Heather (II) Role Models 2008 -Taylor, Frank Hoyt Talladega Nights: The Ballad of Ricky Bobby 2006 -Taylor, Frank Hoyt October Sky 1999 -Taylor, Frank Hoyt Big Fish 2003 -Taylor, Frank Hoyt 28 Days 2000 -Taylor, Frank Hoyt Glory Road 2006 -Taylor, Frank Hoyt Walk the Line 2005 -Taylor, Frank Hoyt Footloose 2011 -Harris, Alan (III) Star Wars: Episode V - The Empire Strikes Back 1980 -Harris, Alan (III) Star Wars 1977 -Harris, Alan (III) The Living Daylights 1987 -Hanks, Chet Larry Crowne 2011 -Hanks, Chet Indiana Jones and the Kingdom of the Crystal Skull 2008 -Hanks, Chet Project X 2012 -Curry, Graham The King's Speech 2010 -Curry, Graham War Horse 2011 -Curry, Graham Captain America: The First Avenger 2011 -Corrigan, Peter (II) King Kong 2005 -Corrigan, Peter (II) The Water Horse 2007 -Corrigan, Peter (II) The Lord of the Rings: The Fellowship of the Ring 2001 -Deadman, Derek Harry Potter and the Sorcerer's Stone 2001 -Deadman, Derek Robin Hood: Prince of Thieves 1991 -Deadman, Derek Never Say Never Again 1983 -Norton, Jim (II) Cop Out 2010 -Norton, Jim (II) Spider-Man 2002 -Norton, Jim (II) Zack and Miri Make a Porno 2008 -Thornton, Cooper Flightplan 2005 -Thornton, Cooper Changeling 2008 -Thornton, Cooper I Am Number Four 2011 -Thornton, Cooper The Ring Two 2005 -Sharif, Omar The 13th Warrior 1999 -Sharif, Omar Hidalgo 2004 -Sharif, Omar 10,000 BC 2008 -Sharif, Omar Mysteries of Egypt 1998 -Harris, Wood Remember the Titans 2000 -Harris, Wood The Siege 1998 -Harris, Wood As Good as It Gets 1997 -Myers, Mike (I) Shrek 2001 -Myers, Mike (I) Shrek the Third 2007 -Myers, Mike (I) Austin Powers: The Spy Who Shagged Me 1999 -Myers, Mike (I) Shrek 2 2004 -Myers, Mike (I) Shrek Forever After 2010 -Myers, Mike (I) Austin Powers: International Man of Mystery 1997 -Myers, Mike (I) Dr. Seuss' The Cat in the Hat 2003 -Myers, Mike (I) Inglourious Basterds 2009 -Myers, Mike (I) Austin Powers in Goldmember 2002 -Stern, Matt Invictus 2009 -Stern, Matt District 9 2009 -Stern, Matt Racing Stripes 2005 -Josepher, Wendle Twister 1996 -Josepher, Wendle Intolerable Cruelty 2003 -Josepher, Wendle Last Action Hero 1993 -Townsend, Tom (II) Body of Lies 2008 -Townsend, Tom (II) National Treasure: Book of Secrets 2007 -Townsend, Tom (II) Eagle Eye 2008 -Townsend, Tom (II) Live Free or Die Hard 2007 -Townsend, Tom (II) New Moon 2009 -Pierce, Bradley Beauty and the Beast 1991 -Pierce, Bradley Jumanji 1995 -Pierce, Bradley Return to Never Land 2002 -Sobieski, Leelee Deep Impact 1998 -Sobieski, Leelee Jungle 2 Jungle 1997 -Sobieski, Leelee Never Been Kissed 1999 -Sobieski, Leelee Eyes Wide Shut 1999 -Sobieski, Leelee Public Enemies 2009 -Yuen, Cheung-Yan Charlie's Angels: Full Throttle 2003 -Yuen, Cheung-Yan Charlie's Angels 2000 -Yuen, Cheung-Yan Kung fu 2004 -Duffin, Shay The Departed 2006 -Duffin, Shay Beowulf 2007 -Duffin, Shay Seabiscuit 2003 -Duffin, Shay Titanic 1997 -Corbett, John (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Corbett, John (I) My Big Fat Greek Wedding 2002 -Corbett, John (I) Volcano 1997 -Corbett, John (I) Sex and the City 2 2010 -Corbett, John (I) Serendipity 2001 -Corbett, John (I) Raising Helen 2004 -Kibria, Zack Nim's Island 2008 -Kibria, Zack Friends with Benefits 2011 -Kibria, Zack The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Wallace, Jerry L. We Are Marshall 2006 -Wallace, Jerry L. Big Momma's House 2 2006 -Wallace, Jerry L. The Dukes of Hazzard 2005 -Wallace, Jerry L. Secretariat 2010 -Hedlund, Garrett Troy 2004 -Hedlund, Garrett Eragon 2006 -Hedlund, Garrett Four Brothers 2005 -Hedlund, Garrett TRON: Legacy 2010 -Hedlund, Garrett Friday Night Lights 2004 -Tyson, Mike (I) The Hangover Part II 2011 -Tyson, Mike (I) Rocky Balboa 2006 -Tyson, Mike (I) The Hangover 2009 -Edling, Ken The Amazing Spider-Man 2012 -Edling, Ken Star Trek 2009 -Edling, Ken Eagle Eye 2008 -Long, Justin (I) Live Free or Die Hard 2007 -Long, Justin (I) Herbie Fully Loaded 2005 -Long, Justin (I) Alvin and the Chipmunks 2007 -Long, Justin (I) Planet 51 2009 -Long, Justin (I) The Break-Up 2006 -Long, Justin (I) Zack and Miri Make a Porno 2008 -Long, Justin (I) Dodgeball: A True Underdog Story 2004 -Long, Justin (I) Alvin and the Chipmunks: Chipwrecked 2011 -Long, Justin (I) Alvin and the Chipmunks: The Squeakquel 2009 -Long, Justin (I) Galaxy Quest 1999 -Long, Justin (I) Drag Me to Hell 2009 -Long, Justin (I) Funny People 2009 -Long, Justin (I) He's Just Not That Into You 2009 -Taylor, Lawrence (II) The Waterboy 1998 -Taylor, Lawrence (II) Any Given Sunday 1999 -Taylor, Lawrence (II) Shaft 2000 -Bowens, Malick Ali 2001 -Bowens, Malick Outbreak 1995 -Bowens, Malick Tears of the Sun 2003 -Nguyen, Leyna Garfield 2004 -Nguyen, Leyna Austin Powers in Goldmember 2002 -Nguyen, Leyna Eagle Eye 2008 -Nguyen, Leyna The Day After Tomorrow 2004 -Williams, Gareth (I) Malcolm X 1992 -Williams, Gareth (I) Volcano 1997 -Williams, Gareth (I) The Cell 2000 -Gesner, Zen Me, Myself & Irene 2000 -Gesner, Zen Fever Pitch 2005 -Gesner, Zen Dumb & Dumber 1994 -Gesner, Zen There's Something About Mary 1998 -Gesner, Zen Shallow Hal 2001 -Turner, Arnold F. Rain Man 1988 -Turner, Arnold F. Doctor Dolittle 1998 -Turner, Arnold F. Ruthless People 1986 -Monaghan, Michelle The Bourne Supremacy 2004 -Monaghan, Michelle The Heartbreak Kid 2007 -Monaghan, Michelle Mr. & Mrs. Smith 2005 -Monaghan, Michelle Made of Honor 2008 -Monaghan, Michelle Mission: Impossible III 2006 -Monaghan, Michelle Unfaithful 2002 -Monaghan, Michelle Due Date 2010 -Monaghan, Michelle Mission: Impossible - Ghost Protocol 2011 -Monaghan, Michelle Eagle Eye 2008 -Monaghan, Michelle Constantine 2005 -Monaghan, Michelle Source Code 2011 -Raymont, Daniel Freaky Friday 2003 -Raymont, Daniel Alien: Resurrection 1997 -Raymont, Daniel Bride Wars 2009 -Jacobi, Derek Nanny McPhee 2005 -Jacobi, Derek Gladiator 2000 -Jacobi, Derek Hereafter 2010 -Jacobi, Derek The Golden Compass 2007 -Jacobi, Derek The King's Speech 2010 -Jacobi, Derek Aladdin 1992 -Jacobi, Derek Underworld: Evolution 2006 -Jacobi, Derek Gosford Park 2001 -Schirripa, Steve Hereafter 2010 -Schirripa, Steve Must Love Dogs 2005 -Schirripa, Steve Open Season 3 2010 -Schirripa, Steve The Flintstones in Viva Rock Vegas 2000 -Berkoff, Steven Octopussy 1983 -Berkoff, Steven The Girl with the Dragon Tattoo 2011 -Berkoff, Steven The Tourist 2010 -Berkoff, Steven Beverly Hills Cop 1984 -Berkoff, Steven Rambo: First Blood Part II 1985 -Mitchell, Phillip (I) Sucker Punch 2011 -Mitchell, Phillip (I) The Cabin in the Woods 2011 -Mitchell, Phillip (I) I, Robot 2004 -Heiman, Jesse Catch Me If You Can 2002 -Heiman, Jesse The Social Network 2010 -Heiman, Jesse 17 Again 2009 -Heiman, Jesse American Pie 2 2001 -Heiman, Jesse Old School 2003 -Heiman, Jesse Transformers: Dark of the Moon 2011 -Heiman, Jesse Spider-Man 2002 -Dorsey, Rufus Pearl Harbor 2001 -Dorsey, Rufus Rise of the Planet of the Apes 2011 -Dorsey, Rufus Ali 2001 -Perry, Matthew (I) The Kid 2000 -Perry, Matthew (I) 17 Again 2009 -Perry, Matthew (I) The Whole Nine Yards 2000 -Russom, Leon Behind Enemy Lines 2001 -Russom, Leon True Grit 2010 -Russom, Leon Men of Honor 2000 -Wise, Ray (I) X-Men: First Class 2011 -Wise, Ray (I) RoboCop 1987 -Wise, Ray (I) Good Night, and Good Luck. 2005 -von Bargen, Daniel The Kid 2000 -von Bargen, Daniel Amistad 1997 -von Bargen, Daniel A Civil Action 1998 -von Bargen, Daniel Basic Instinct 1992 -von Bargen, Daniel Shaft 2000 -von Bargen, Daniel The Faculty 1998 -von Bargen, Daniel The Silence of the Lambs 1991 -von Bargen, Daniel O Brother, Where Art Thou? 2000 -von Bargen, Daniel G.I. Jane 1997 -von Bargen, Daniel The General's Daughter 1999 -von Bargen, Daniel Philadelphia 1993 -Lee, Dana (I) Lethal Weapon 4 1998 -Lee, Dana (I) Mulan 1998 -Lee, Dana (I) Pineapple Express 2008 -Lee, Dana (I) Rambo: First Blood Part II 1985 -DeCoste, Kevin Paul Blart: Mall Cop 2009 -DeCoste, Kevin Dan in Real Life 2007 -DeCoste, Kevin 27 Dresses 2008 -DeCoste, Kevin The Fighter 2010 -Keaton, Diane Hanging Up 2000 -Keaton, Diane The Godfather 1972 -Keaton, Diane The Family Stone 2005 -Keaton, Diane The First Wives Club 1996 -Keaton, Diane Something's Gotta Give 2003 -Britton, Chris (II) The Day After Tomorrow 2004 -Britton, Chris (II) Silent Hill 2006 -Britton, Chris (II) Good Will Hunting 1997 -Dunn, Nora It's Complicated 2009 -Dunn, Nora Zoolander 2001 -Dunn, Nora Three Kings 1999 -Dunn, Nora Runaway Jury 2003 -Dunn, Nora Bruce Almighty 2003 -Dunn, Nora Pineapple Express 2008 -Jean-Louis, Jimmy Monster-in-Law 2005 -Jean-Louis, Jimmy The Bourne Identity 2002 -Jean-Louis, Jimmy Tears of the Sun 2003 -Wilmot, David (I) King Arthur 2004 -Wilmot, David (I) The Devil's Own 1997 -Wilmot, David (I) Michael Collins 1996 -Testa, Dominic Michael 1996 -Testa, Dominic Home Alone 3 1997 -Testa, Dominic The Jackal 1997 -Testa, Dominic My Best Friend's Wedding 1997 -Jones, Richard T. (I) Guess Who 2005 -Jones, Richard T. (I) Collateral 2004 -Jones, Richard T. (I) Phone Booth 2002 -Jones, Richard T. (I) Super 8 2011 -Jones, Richard T. (I) Vantage Point 2008 -Jones, Richard T. (I) Why Did I Get Married Too? 2010 -Jones, Richard T. (I) Kiss the Girls 1997 -Phillips, Adam S. The Brave One 2007 -Phillips, Adam S. Sex and the City 2008 -Phillips, Adam S. Baby Mama 2008 -Richardson, Miranda (I) Chicken Run 2000 -Richardson, Miranda (I) The Phantom of the Opera 2004 -Richardson, Miranda (I) Harry Potter and the Goblet of Fire 2005 -Richardson, Miranda (I) Fred Claus 2007 -Richardson, Miranda (I) Sleepy Hollow 1999 -Richardson, Miranda (I) The Hours 2002 -Richardson, Miranda (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Nicotero, Gregory The Hills Have Eyes 2006 -Nicotero, Gregory Piranha 2010 -Nicotero, Gregory House on Haunted Hill 1999 -Nicotero, Gregory Inglourious Basterds 2009 -Pittinger, David Secretariat 2010 -Pittinger, David Traffic 2000 -Pittinger, David The Ides of March 2011 -Webster, Victor Why Did I Get Married Too? 2010 -Webster, Victor Bringing Down the House 2003 -Webster, Victor Must Love Dogs 2005 -Strange, Richard Harry Potter and the Deathly Hallows: Part 1 2010 -Strange, Richard Batman 1989 -Strange, Richard Robin Hood: Prince of Thieves 1991 -Strange, Richard Gangs of New York 2002 -Clanton, Rony Mona Lisa Smile 2003 -Clanton, Rony The Royal Tenenbaums 2001 -Clanton, Rony The Devil's Advocate 1997 -Clanton, Rony Malcolm X 1992 -Mathias, Anna Rain Man 1988 -Mathias, Anna Beverly Hills Ninja 1997 -Mathias, Anna Jack and Jill 2011 -Ironbear, Mylo (I) Patch Adams 1998 -Ironbear, Mylo (I) Flubber 1997 -Ironbear, Mylo (I) Cowboys & Aliens 2011 -Sternhagen, Frances The Mist 2007 -Sternhagen, Frances Julie & Julia 2009 -Sternhagen, Frances Dolphin Tale 2011 -Lleras, Anibal O. The Devil's Advocate 1997 -Lleras, Anibal O. The Preacher's Wife 1996 -Lleras, Anibal O. Die Hard: With a Vengeance 1995 -Lleras, Anibal O. Presumed Innocent 1990 -Van Winkle, Travis Friday the 13th 2009 -Van Winkle, Travis Transformers 2007 -Van Winkle, Travis Meet the Spartans 2008 -Johnson, Dondraico Step Up 3D 2010 -Johnson, Dondraico Hairspray 2007 -Johnson, Dondraico Step Up 2: The Streets 2008 -Mihok, Dash The Day After Tomorrow 2004 -Mihok, Dash I Am Legend 2007 -Mihok, Dash Romeo + Juliet 1996 -Mihok, Dash The Thin Red Line 1998 -Mihok, Dash The Perfect Storm 2000 -Mihok, Dash Sleepers 1996 -Sachs, Robin The Lost World: Jurassic Park 1997 -Sachs, Robin Galaxy Quest 1999 -Sachs, Robin Ocean's Eleven 2001 -Ramirez, Sara Chicago 2002 -Ramirez, Sara Spider-Man 2002 -Ramirez, Sara You've Got Mail 1998 -Hurt, William Michael 1996 -Hurt, William The Village 2004 -Hurt, William Vantage Point 2008 -Hurt, William The Incredible Hulk 2008 -Hurt, William Kiss of the Spider Woman 1985 -Hurt, William Syriana 2005 -Hurt, William Robin Hood 2010 -Hurt, William The Good Shepherd 2006 -Hurt, William Changing Lanes 2002 -Hurt, William Artificial Intelligence: AI 2001 -Hurt, William A History of Violence 2005 -Hurt, William Lost in Space 1998 -Lo, Ming Contact 1997 -Lo, Ming Million Dollar Baby 2004 -Lo, Ming Doctor Dolittle 1998 -Lo, Ming Jarhead 2005 -Lo, Ming The Pursuit of Happyness 2006 -Lo, Ming The Mummy: Tomb of the Dragon Emperor 2008 -Hudgens, Vanessa Sucker Punch 2011 -Hudgens, Vanessa High School Musical 3: Senior Year 2008 -Hudgens, Vanessa Journey 2: The Mysterious Island 2012 -Keyes, Irwin Intolerable Cruelty 2003 -Keyes, Irwin The Flintstones 1994 -Keyes, Irwin The Flintstones in Viva Rock Vegas 2000 -Corduner, Allan Fred Claus 2007 -Corduner, Allan Gladiator 2000 -Corduner, Allan Yentl 1983 -Corduner, Allan Harry Potter and the Prisoner of Azkaban 2004 -Corduner, Allan Harry Potter and the Sorcerer's Stone 2001 -Corduner, Allan Harry Potter and the Chamber of Secrets 2002 -Corduner, Allan Harry Potter and the Order of the Phoenix 2007 -Kay, Lisa (I) Corpse Bride 2005 -Kay, Lisa (I) Bridget Jones's Diary 2001 -Kay, Lisa (I) Chicken Run 2000 -Patton, Will (I) Entrapment 1999 -Patton, Will (I) Remember the Titans 2000 -Patton, Will (I) Armageddon 1998 -Patton, Will (I) Gone in Sixty Seconds 2000 -Cackowski, Liz Forgetting Sarah Marshall 2008 -Cackowski, Liz I Love You, Man 2009 -Cackowski, Liz Cloudy with a Chance of Meatballs 2009 -Cook, Candice America's Sweethearts 2001 -Cook, Candice Old School 2003 -Cook, Candice Contact 1997 -Mali, Rick Memoirs of a Geisha 2005 -Mali, Rick Hancock 2008 -Mali, Rick Pirates of the Caribbean: At World's End 2007 -Paige, Gabriel Dreamgirls 2006 -Paige, Gabriel Charlie's Angels: Full Throttle 2003 -Paige, Gabriel Austin Powers: The Spy Who Shagged Me 1999 -Paige, Gabriel Starsky & Hutch 2004 -Alda, Alan The Aviator 2004 -Alda, Alan Tower Heist 2011 -Alda, Alan What Women Want 2000 -Mondy, Bill Scooby Doo 2: Monsters Unleashed 2004 -Mondy, Bill Miracle 2004 -Mondy, Bill The Day the Earth Stood Still 2008 -Mitchell, Elizabeth (I) The Santa Clause 3: The Escape Clause 2006 -Mitchell, Elizabeth (I) The Santa Clause 2 2002 -Mitchell, Elizabeth (I) Frequency 2000 -Polce, John Analyze This 1999 -Polce, John The Departed 2006 -Polce, John Showtime 2002 -Polce, John Men of Honor 2000 -Corella, John R. 500) Days of Summer 2009 -Corella, John R. A Christmas Carol 2009 -Corella, John R. Austin Powers: The Spy Who Shagged Me 1999 -Gilliard, Carl Coach Carter 2005 -Gilliard, Carl Red Eye 2005 -Gilliard, Carl Contact 1997 -Gilliard, Carl Inception 2010 -Iures, Marcel Interview with the Vampire: The Vampire Chronicles 1994 -Iures, Marcel Pirates of the Caribbean: At World's End 2007 -Iures, Marcel The Peacemaker 1997 -Iures, Marcel Mission: Impossible 1996 -Peres, Carlos Besse Kick-Ass 2010 -Peres, Carlos Besse Stardust 2007 -Peres, Carlos Besse X-Men: First Class 2011 -Fong, Tig The Incredible Hulk 2008 -Fong, Tig The Pacifier 2005 -Fong, Tig Max Payne 2008 -Lennon, Thomas (III) 17 Again 2009 -Lennon, Thomas (III) Herbie Fully Loaded 2005 -Lennon, Thomas (III) Hancock 2008 -Lennon, Thomas (III) Hot Tub Time Machine 2010 -Lennon, Thomas (III) Memento 2000 -Lennon, Thomas (III) The Hitchhiker's Guide to the Galaxy 2005 -Lennon, Thomas (III) I Love You, Man 2009 -Lennon, Thomas (III) How to Lose a Guy in 10 Days 2003 -Lennon, Thomas (III) Night at the Museum: Battle of the Smithsonian 2009 -Lennon, Thomas (III) Bad Teacher 2011 -Harvey, Robert (I) Paul Blart: Mall Cop 2009 -Harvey, Robert (I) The Longest Yard 2005 -Harvey, Robert (I) Bedtime Stories 2008 -Harvey, Robert (I) Absolute Power 1997 -Harvey, Robert (I) I Now Pronounce You Chuck & Larry 2007 -Harvey, Robert (I) Double Take 2001 -Harvey, Robert (I) Jack and Jill 2011 -Ritter, Huntley We Are Marshall 2006 -Ritter, Huntley Bring It On 2000 -Ritter, Huntley The Wedding Planner 2001 -Banks, Tyra Hannah Montana: The Movie 2009 -Banks, Tyra Coyote Ugly 2000 -Banks, Tyra Tropic Thunder 2008 -Serkis, Andy The Lord of the Rings: The Fellowship of the Ring 2001 -Serkis, Andy The Lord of the Rings: The Return of the King 2003 -Serkis, Andy The Lord of the Rings: The Two Towers 2002 -Serkis, Andy 13 Going on 30 2004 -Serkis, Andy Flushed Away 2006 -Serkis, Andy The Prestige 2006 -Serkis, Andy The Adventures of Tintin 2011 -Serkis, Andy King Kong 2005 -Serkis, Andy Rise of the Planet of the Apes 2011 -O'Neill, Michael (I) Dreamcatcher 2003 -O'Neill, Michael (I) Traffic 2000 -O'Neill, Michael (I) Transformers 2007 -O'Neill, Michael (I) Seabiscuit 2003 -O'Neill, Michael (I) J. Edgar 2011 -Swander, Doug October Sky 1999 -Swander, Doug Spider-Man 2 2004 -Swander, Doug Iron Man 2 2010 -Anthony, Keith (I) Barnyard 2006 -Anthony, Keith (I) The Wild 2006 -Anthony, Keith (I) The Princess and the Frog 2009 -Young, Bruce A. Phenomenon 1996 -Young, Bruce A. Risky Business 1983 -Young, Bruce A. Basic Instinct 1992 -Young, Bruce A. Home on the Range 2004 -Young, Bruce A. Jurassic Park III 2001 -Ruffalo, Mark Collateral 2004 -Ruffalo, Mark Windtalkers 2002 -Ruffalo, Mark Where the Wild Things Are 2009 -Ruffalo, Mark Just Like Heaven 2005 -Ruffalo, Mark Date Night 2010 -Ruffalo, Mark 13 Going on 30 2004 -Ruffalo, Mark Eternal Sunshine of the Spotless Mind 2004 -Ruffalo, Mark The Avengers 2012 -Ruffalo, Mark Shutter Island 2010 -Ruffalo, Mark Rumor Has It... 2005 -Marquez, William Bedazzled 2000 -Marquez, William The Mask of Zorro 1998 -Marquez, William Forces of Nature 1999 -Marquez, William Crazy Heart 2009 -Friedericy, Bonita Percy Jackson & the Olympians: The Lightning Thief 2010 -Friedericy, Bonita Paranormal Activity 3 2011 -Friedericy, Bonita Christmas with the Kranks 2004 -Beaver, Jim (I) Sister Act 1992 -Beaver, Jim (I) Magnolia 1999 -Beaver, Jim (I) Where the Heart Is 2000 -Weinstein, Eric Contraband 2012 -Weinstein, Eric The Fighter 2010 -Weinstein, Eric Being John Malkovich 1999 -Weinstein, Eric Four Brothers 2005 -Lange, Jessica (I) Tootsie 1982 -Lange, Jessica (I) Big Fish 2003 -Lange, Jessica (I) The Vow 2012 -Collins, Rickey D'Shon Jack 1996 -Collins, Rickey D'Shon Recess: School's Out 2001 -Collins, Rickey D'Shon Happy Feet 2006 -Benyaer, Michael G.I. Joe: The Rise of Cobra 2009 -Benyaer, Michael Transformers: Revenge of the Fallen 2009 -Benyaer, Michael Quantum of Solace 2008 -Schulze, Matt The Fast and the Furious 2001 -Schulze, Matt Blade 1998 -Schulze, Matt Blade II 2002 -Schulze, Matt Fast Five 2011 -Brandon, Mark (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Brandon, Mark (I) Paycheck 2003 -Brandon, Mark (I) The 6th Day 2000 -Arch, Lisa Legally Blonde 2001 -Arch, Lisa Evan Almighty 2007 -Arch, Lisa Guess Who 2005 -Sly, Monica Public Enemies 2009 -Sly, Monica Yes Man 2008 -Sly, Monica He's Just Not That Into You 2009 -Hersh, Philip (I) Chi bi 2008 -Hersh, Philip (I) Any Given Sunday 1999 -Hersh, Philip (I) Gwoemul 2006 -Hennessy, Jill Wild Hogs 2007 -Hennessy, Jill Exit Wounds 2001 -Hennessy, Jill Autumn in New York 2000 -Johnson, Dave (XXVII) You Don't Mess with the Zohan 2008 -Johnson, Dave (XXVII) Angels & Demons 2009 -Johnson, Dave (XXVII) Tropic Thunder 2008 -Johnson, Dave (XXVII) Eagle Eye 2008 -Johnson, Dave (XXVII) Yes Man 2008 -Hassan, Tamer Clash of the Titans 2010 -Hassan, Tamer Batman Begins 2005 -Hassan, Tamer Kick-Ass 2010 -Marzello, Vincent Superman 1978 -Marzello, Vincent Planet 51 2009 -Marzello, Vincent Never Say Never Again 1983 -Weber, Holly (II) Fast & Furious 2009 -Weber, Holly (II) You Don't Mess with the Zohan 2008 -Weber, Holly (II) The Ugly Truth 2009 -Weber, Holly (II) Get Him to the Greek 2010 -Duhon, James J. (I) Glory Road 2006 -Duhon, James J. (I) The Skeleton Key 2005 -Duhon, James J. (I) Deja Vu 2006 -Alden, Norman Patch Adams 1998 -Alden, Norman K-PAX 2001 -Alden, Norman Back to the Future 1985 -Worthington, Wendy Catch Me If You Can 2002 -Worthington, Wendy Changeling 2008 -Worthington, Wendy Crazy, Stupid, Love. 2011 -Worthington, Wendy Cast Away 2000 -Brown, Billy (II) Star Trek 2009 -Brown, Billy (II) The Wild Thornberrys Movie 2002 -Brown, Billy (II) Race to Witch Mountain 2009 -Brown, Billy (II) Terminator 3: Rise of the Machines 2003 -Brown, Billy (II) The Lost World: Jurassic Park 1997 -Brown, Billy (II) Cloverfield 2008 -Smart, Jean The Kid 2000 -Smart, Jean Life as We Know It 2010 -Smart, Jean Snow Day 2000 -Smart, Jean Bringing Down the House 2003 -Smart, Jean Sweet Home Alabama 2002 -Smart, Jean Garden State 2004 -Flynn, Herbie Shallow Hal 2001 -Flynn, Herbie There's Something About Mary 1998 -Flynn, Herbie Me, Myself & Irene 2000 -Corti, Jesse Beauty and the Beast 1991 -Corti, Jesse Hulk 2003 -Corti, Jesse Bringing Down the House 2003 -Corti, Jesse Gone in Sixty Seconds 2000 -Raye, Zoë Lemony Snicket's A Series of Unfortunate Events 2004 -Raye, Zoë LiTTLEMAN 2006 -Raye, Zoë Bride Wars 2009 -Raye, Zoë The Forgotten 2004 -Raye, Zoë Happy Feet 2006 -Howard, Andrew (I) Transformers: Revenge of the Fallen 2009 -Howard, Andrew (I) The Hangover Part II 2011 -Howard, Andrew (I) Limitless 2011 -Burrell, Ty The Incredible Hulk 2008 -Burrell, Ty Black Hawk Down 2001 -Burrell, Ty National Treasure: Book of Secrets 2007 -Burrell, Ty Evolution 2001 -Burrell, Ty Dawn of the Dead 2004 -McCuller, Arnold The Sum of All Fears 2002 -McCuller, Arnold Funny People 2009 -McCuller, Arnold Brother Bear 2003 -Hollander, Tom Pirates of the Caribbean: At World's End 2007 -Hollander, Tom Pirates of the Caribbean: Dead Man's Chest 2006 -Hollander, Tom Pride & Prejudice 2005 -Hollander, Tom Valkyrie 2008 -Hollander, Tom Hanna 2011 -Hollander, Tom Gosford Park 2001 -Duke, Clark Kick-Ass 2010 -Duke, Clark Hot Tub Time Machine 2010 -Duke, Clark Superbad 2007 -Eisenberg, Jesse The Social Network 2010 -Eisenberg, Jesse The Village 2004 -Eisenberg, Jesse Rio 2011 -Eisenberg, Jesse Zombieland 2009 -Kirby, Joel (I) The League of Extraordinary Gentlemen 2003 -Kirby, Joel (I) Babylon A.D. 2008 -Kirby, Joel (I) The Ghost Writer 2010 -Gayheart, Rebecca Scream 2 1997 -Gayheart, Rebecca Urban Legend 1998 -Gayheart, Rebecca Nothing to Lose 1997 -Kocsis, Bob Shallow Hal 2001 -Kocsis, Bob The Three Stooges 2012 -Kocsis, Bob The Heartbreak Kid 2007 -Modell, Stephen Pirates of the Caribbean: On Stranger Tides 2011 -Modell, Stephen Prince of Persia: The Sands of Time 2010 -Modell, Stephen Get Him to the Greek 2010 -Reitz, Ric The Three Stooges 2012 -Reitz, Ric 28 Days 2000 -Reitz, Ric Killers 2010 -Reitz, Ric Remember the Titans 2000 -Turk, Brian Artificial Intelligence: AI 2001 -Turk, Brian The Lost World: Jurassic Park 1997 -Turk, Brian American Pie 2 2001 -Turk, Brian A Civil Action 1998 -Pyper-Ferguson, John Unforgiven 1992 -Pyper-Ferguson, John Pearl Harbor 2001 -Pyper-Ferguson, John X-Men: The Last Stand 2006 -Pyper-Ferguson, John Drive 2011 -Mooney, Debra Dead Poets Society 1989 -Mooney, Debra Anastasia 1997 -Mooney, Debra Tootsie 1982 -Mooney, Debra Domestic Disturbance 2001 -Chaikin, Andrew (I) Batman Begins 2005 -Chaikin, Andrew (I) Star Wars: Episode III - Revenge of the Sith 2005 -Chaikin, Andrew (I) Iron Man 2 2010 -Chaikin, Andrew (I) The Lord of the Rings: The Return of the King 2003 -Chaikin, Andrew (I) King Arthur 2004 -Venito, Lenny Men in Black 3 2012 -Venito, Lenny Shark Tale 2004 -Venito, Lenny The Brave One 2007 -Venito, Lenny Men in Black II 2002 -Venito, Lenny The Wild 2006 -Klein, Robert (I) One Fine Day 1996 -Klein, Robert (I) Primary Colors 1998 -Klein, Robert (I) Two Weeks Notice 2002 -Klein, Robert (I) How to Lose a Guy in 10 Days 2003 -Matsuzaki, Yuki The Last Samurai 2003 -Matsuzaki, Yuki Pirates of the Caribbean: On Stranger Tides 2011 -Matsuzaki, Yuki Letters from Iwo Jima 2006 -Winfield, Paul (I) Star Trek: The Wrath of Khan 1982 -Winfield, Paul (I) Mars Attacks! 1996 -Winfield, Paul (I) Cliffhanger 1993 -Winfield, Paul (I) Presumed Innocent 1990 -Winfield, Paul (I) The Terminator 1984 -von Siegel, Matt Law Abiding Citizen 2009 -von Siegel, Matt The Last Airbender 2010 -von Siegel, Matt Jerry Maguire 1996 -Callan, Justin The Core 2003 -Callan, Justin X-Men: The Last Stand 2006 -Callan, Justin Scary Movie 4 2006 -Gassner-Clayton, Nancy Chicken Little 2005 -Gassner-Clayton, Nancy Enemy of the State 1998 -Gassner-Clayton, Nancy Batman Forever 1995 -Smith, Chaz X-Men Origins: Wolverine 2009 -Smith, Chaz The Final Destination 2009 -Smith, Chaz The Curious Case of Benjamin Button 2008 -Smith, Chaz Secretariat 2010 -Smith, Chaz Meet the Spartans 2008 -Llewelyn, Desmond GoldenEye 1995 -Llewelyn, Desmond For Your Eyes Only 1981 -Llewelyn, Desmond Licence to Kill 1989 -Llewelyn, Desmond Octopussy 1983 -Llewelyn, Desmond The World Is Not Enough 1999 -Llewelyn, Desmond Tomorrow Never Dies 1997 -Llewelyn, Desmond A View to a Kill 1985 -Llewelyn, Desmond Moonraker 1979 -Llewelyn, Desmond The Living Daylights 1987 -Rader-Duval, Dean Gone in Sixty Seconds 2000 -Rader-Duval, Dean Wild Wild West 1999 -Rader-Duval, Dean Swordfish 2001 -Robison, Emily Kung Fu Panda 2008 -Robison, Emily Harry Potter and the Sorcerer's Stone 2001 -Robison, Emily Harry Potter and the Chamber of Secrets 2002 -Hult, Chloé Deuce Bigalow: Male Gigolo 1999 -Hult, Chloé Mr. Deeds 2002 -Hult, Chloé Big Daddy 1999 -Williams, Victor (I) Bewitched 2005 -Williams, Victor (I) The Preacher's Wife 1996 -Williams, Victor (I) Cop Land 1997 -Basone, Jeanne Me, Myself & Irene 2000 -Basone, Jeanne Sister Act 1992 -Basone, Jeanne Basic Instinct 1992 -Walch, Hynden Jerry Maguire 1996 -Walch, Hynden Spider-Man 3 2007 -Walch, Hynden The Wild Thornberrys Movie 2002 -Walch, Hynden Groundhog Day 1993 -Theroux, Justin Charlie's Angels: Full Throttle 2003 -Theroux, Justin Miami Vice 2006 -Theroux, Justin Megamind 2010 -Theroux, Justin Zoolander 2001 -Darga, Christopher Deep Impact 1998 -Darga, Christopher Crazy, Stupid, Love. 2011 -Darga, Christopher The Mask 1994 -Darga, Christopher Dude, Where's My Car? 2000 -Darga, Christopher Showtime 2002 -Darga, Christopher The Net 1995 -Darga, Christopher Bruce Almighty 2003 -George, Sean Francis Clash of the Titans 2010 -George, Sean Francis Prince of Persia: The Sands of Time 2010 -George, Sean Francis Harry Potter and the Deathly Hallows: Part 2 2011 -George, Sean Francis Pirates of the Caribbean: On Stranger Tides 2011 -George, Sean Francis The Da Vinci Code 2006 -Starr, Arne G-Force 2009 -Starr, Arne Blades of Glory 2007 -Starr, Arne The Holiday 2006 -Starr, Arne License to Wed 2007 -Starr, Arne Angels & Demons 2009 -Starr, Arne World Trade Center 2006 -Starr, Arne Hotel for Dogs 2009 -Starr, Arne Bedtime Stories 2008 -Starr, Arne Yes Man 2008 -Starr, Arne Transformers 2007 -Starr, Arne Eagle Eye 2008 -Starr, Arne I Now Pronounce You Chuck & Larry 2007 -Starr, Arne Star Trek 2009 -Starr, Arne There Will Be Blood 2007 -Starr, Arne You Don't Mess with the Zohan 2008 -Starr, Arne Spider-Man 3 2007 -Starr, Arne Rush Hour 3 2007 -Whitt, Garland Superman Returns 2006 -Whitt, Garland Training Day 2001 -Whitt, Garland The Hurricane 1999 -Whitt, Garland Save the Last Dance 2001 -Wildman, Valerie Cast Away 2000 -Wildman, Valerie Mars Attacks! 1996 -Wildman, Valerie Beverly Hills Cop II 1987 -Stamberg, Josh Legion 2009 -Stamberg, Josh The Time Machine 2002 -Stamberg, Josh J. Edgar 2011 -Stamberg, Josh Must Love Dogs 2005 -Greene, Daniel (I) Me, Myself & Irene 2000 -Greene, Daniel (I) Fever Pitch 2005 -Greene, Daniel (I) There's Something About Mary 1998 -Greene, Daniel (I) Shallow Hal 2001 -Weintraub, Scott (I) Dinner for Schmucks 2010 -Weintraub, Scott (I) I Am Sam 2001 -Weintraub, Scott (I) A Civil Action 1998 -Snow, Brittany Hairspray 2007 -Snow, Brittany John Tucker Must Die 2006 -Snow, Brittany The Pacifier 2005 -Kulhavy, Milos Bad Company 2002 -Kulhavy, Milos Hannibal Rising 2007 -Kulhavy, Milos Blade II 2002 -Robards, Jason Magnolia 1999 -Robards, Jason Philadelphia 1993 -Robards, Jason Enemy of the State 1998 -May, Seth Michael The Royal Tenenbaums 2001 -May, Seth Michael Across the Sea of Time 1995 -May, Seth Michael Garden State 2004 -Davenport, Jack Pirates of the Caribbean: Dead Man's Chest 2006 -Davenport, Jack The Talented Mr. Ripley 1999 -Davenport, Jack Pirates of the Caribbean: At World's End 2007 -Davenport, Jack Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Zabka, William The Karate Kid 1984 -Zabka, William The Karate Kid, Part II 1986 -Zabka, William Hot Tub Time Machine 2010 -Corrigan, Blaise The Stepford Wives 2004 -Corrigan, Blaise Zombieland 2009 -Corrigan, Blaise The Peacemaker 1997 -Corrigan, Blaise Gangs of New York 2002 -Steenburgen, Mary Elf 2003 -Steenburgen, Mary The Help 2011 -Steenburgen, Mary Four Christmases 2008 -Steenburgen, Mary Step Brothers 2008 -Steenburgen, Mary I Am Sam 2001 -Steenburgen, Mary The Brave One 2007 -Steenburgen, Mary Philadelphia 1993 -Steenburgen, Mary Back to the Future Part III 1990 -Tambor, Jeffrey The SpongeBob SquarePants Movie 2004 -Tambor, Jeffrey The Hangover 2009 -Tambor, Jeffrey Hellboy II: The Golden Army 2008 -Tambor, Jeffrey How the Grinch Stole Christmas 2000 -Tambor, Jeffrey Mr. Popper's Penguins 2011 -Tambor, Jeffrey Under the Tuscan Sun 2003 -Tambor, Jeffrey The Hangover Part II 2011 -Tambor, Jeffrey Superhero Movie 2008 -Tambor, Jeffrey Meet Joe Black 1998 -Tambor, Jeffrey Monsters vs Aliens 2009 -Tambor, Jeffrey Hellboy 2004 -Tambor, Jeffrey Doctor Dolittle 1998 -Tambor, Jeffrey There's Something About Mary 1998 -Rhodes, Dane The Final Destination 2009 -Rhodes, Dane Deja Vu 2006 -Rhodes, Dane Green Lantern 2011 -Rhodes, Dane Glory Road 2006 -Rhodes, Dane Contraband 2012 -Kandil, Haytham Paul Blart: Mall Cop 2009 -Kandil, Haytham Sex and the City 2 2010 -Kandil, Haytham Bride Wars 2009 -Kandil, Haytham Ghosts of Girlfriends Past 2009 -Rowell, Cassie The Princess Diaries 2: Royal Engagement 2004 -Rowell, Cassie The Princess Diaries 2001 -Rowell, Cassie Raising Helen 2004 -Werntz, Hannah The Peacemaker 1997 -Werntz, Hannah Deep Impact 1998 -Werntz, Hannah Pay It Forward 2000 -Howard, Jean Speegle Matilda 1996 -Howard, Jean Speegle Apollo 13 1995 -Howard, Jean Speegle Gung Ho 1986 -O'Quinn, Carrick (I) Big Momma's House 2 2006 -O'Quinn, Carrick (I) Pay It Forward 2000 -O'Quinn, Carrick (I) The Master of Disguise 2002 -O'Quinn, Carrick (I) The X Files 1998 -Griffiths, Richard (I) Bedtime Stories 2008 -Griffiths, Richard (I) Sleepy Hollow 1999 -Griffiths, Richard (I) Gandhi 1982 -Griffiths, Richard (I) Chariots of Fire 1981 -Griffiths, Richard (I) Superman II 1980 -Griffiths, Richard (I) Harry Potter and the Order of the Phoenix 2007 -Griffiths, Richard (I) Harry Potter and the Prisoner of Azkaban 2004 -Griffiths, Richard (I) The Hitchhiker's Guide to the Galaxy 2005 -Griffiths, Richard (I) Harry Potter and the Sorcerer's Stone 2001 -Griffiths, Richard (I) Harry Potter and the Chamber of Secrets 2002 -Griffiths, Richard (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Griffiths, Richard (I) Pirates of the Caribbean: On Stranger Tides 2011 -Winnick, Katheryn 50 First Dates 2004 -Winnick, Katheryn Killers 2010 -Winnick, Katheryn Failure to Launch 2006 -Winnick, Katheryn Two Weeks Notice 2002 -Jackson, Roger (VI) Scream 2 1997 -Jackson, Roger (VI) Mars Attacks! 1996 -Jackson, Roger (VI) The Wild Thornberrys Movie 2002 -Jackson, Roger (VI) Scream 4 2011 -Jackson, Roger (VI) King Arthur 2004 -Jackson, Roger (VI) The Lord of the Rings: The Return of the King 2003 -Jackson, Roger (VI) Home on the Range 2004 -Jackson, Roger (VI) Scream 1996 -Jackson, Roger (VI) Scream 3 2000 -Jackson, Roger (VI) Cats & Dogs: The Revenge of Kitty Galore 2010 -Jackson, Roger (VI) Iron Man 2 2010 -Schreiber, Pablo The Manchurian Candidate 2004 -Schreiber, Pablo Nights in Rodanthe 2008 -Schreiber, Pablo Vicky Cristina Barcelona 2008 -Monaghan, Dominic X-Men Origins: Wolverine 2009 -Monaghan, Dominic The Lord of the Rings: The Two Towers 2002 -Monaghan, Dominic The Lord of the Rings: The Fellowship of the Ring 2001 -Monaghan, Dominic The Lord of the Rings: The Return of the King 2003 -White, Betty (I) Lake Placid 1999 -White, Betty (I) Bringing Down the House 2003 -White, Betty (I) Gake no ue no Ponyo 2008 -White, Betty (I) The Lorax 2012 -McCrory, Helen Interview with the Vampire: The Vampire Chronicles 1994 -McCrory, Helen The Count of Monte Cristo 2002 -McCrory, Helen The Queen 2006 -McCrory, Helen Harry Potter and the Deathly Hallows: Part 2 2011 -McCrory, Helen Harry Potter and the Deathly Hallows: Part 1 2010 -McCrory, Helen Harry Potter and the Half-Blood Prince 2009 -Fletcher, Mimi My Sister's Keeper 2009 -Fletcher, Mimi Swordfish 2001 -Fletcher, Mimi The Replacements 2000 -Peck, Brian (I) X2 2003 -Peck, Brian (I) Holes 2003 -Peck, Brian (I) X-Men 2000 -Fay, Zachary Christopher Inception 2010 -Fay, Zachary Christopher Hop 2011 -Fay, Zachary Christopher Bridesmaids 2011 -Ayer, Debbon Garden State 2004 -Ayer, Debbon Eternal Sunshine of the Spotless Mind 2004 -Ayer, Debbon The Devil's Own 1997 -Scales, Crystal Spider-Man 3 2007 -Scales, Crystal Jimmy Neutron: Boy Genius 2001 -Scales, Crystal The Wild Thornberrys Movie 2002 -Cunningham, Liam (I) War Horse 2011 -Cunningham, Liam (I) The Mummy: Tomb of the Dragon Emperor 2008 -Cunningham, Liam (I) Safe House 2012 -Cunningham, Liam (I) Clash of the Titans 2010 -Ford, Steven (I) Starship Troopers 1997 -Ford, Steven (I) Contact 1997 -Ford, Steven (I) Eraser 1996 -Ford, Steven (I) Black Hawk Down 2001 -Ford, Steven (I) Transformers 2007 -Ford, Steven (I) Armageddon 1998 -Ford, Steven (I) Heat 1995 -Prevost, Nathan 500) Days of Summer 2009 -Prevost, Nathan Austin Powers in Goldmember 2002 -Prevost, Nathan Boogie Nights 1997 -Bridges, Beau (I) Max Payne 2008 -Bridges, Beau (I) Jerry Maguire 1996 -Bridges, Beau (I) The Descendants 2011 -Bridges, Beau (I) Charlotte's Web 2006 -Phillips, Todd (I) The Hangover 2009 -Phillips, Todd (I) Road Trip 2000 -Phillips, Todd (I) The Hangover Part II 2011 -Phillips, Todd (I) Due Date 2010 -Phillips, Todd (I) Old School 2003 -Nazimek, Larry Wanted 2008 -Nazimek, Larry Contagion 2011 -Nazimek, Larry Home Alone 1990 -Hatcher, Teri Spy Kids 2001 -Hatcher, Teri Coraline 2009 -Hatcher, Teri Tomorrow Never Dies 1997 -Sung, Elizabeth Lethal Weapon 4 1998 -Sung, Elizabeth The Mummy: Tomb of the Dragon Emperor 2008 -Sung, Elizabeth Memoirs of a Geisha 2005 -Sung, Elizabeth Ying Xiong 2002 -Taylor, Noah (I) Almost Famous 2000 -Taylor, Noah (I) Lara Croft Tomb Raider: The Cradle of Life 2003 -Taylor, Noah (I) Shine 1996 -Taylor, Noah (I) Lara Croft: Tomb Raider 2001 -Taylor, Noah (I) Vanilla Sky 2001 -Taylor, Noah (I) Charlie and the Chocolate Factory 2005 -Metrano, Art Police Academy 2: Their First Assignment 1985 -Metrano, Art How Stella Got Her Groove Back 1998 -Metrano, Art Police Academy 3: Back in Training 1986 -Morton, Joe (I) Ali 2001 -Morton, Joe (I) Paycheck 2003 -Morton, Joe (I) Speed 1994 -Morton, Joe (I) American Gangster 2007 -Morton, Joe (I) What Lies Beneath 2000 -Morton, Joe (I) Terminator 2: Judgment Day 1991 -Morton, Joe (I) Speed 2: Cruise Control 1997 -Lewis, Clea (I) Ice Age: Dawn of the Dinosaurs 2009 -Lewis, Clea (I) Confessions of a Shopaholic 2009 -Lewis, Clea (I) Ice Age: The Meltdown 2006 -Stiller, Jerry Hairspray 2007 -Stiller, Jerry The Heartbreak Kid 2007 -Stiller, Jerry Zoolander 2001 -Stiller, Jerry Anchorman: The Legend of Ron Burgundy 2004 -Stewart, April (I) X-Men Origins: Wolverine 2009 -Stewart, April (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Stewart, April (I) Mission: Impossible - Ghost Protocol 2011 -Stewart, April (I) The Golden Compass 2007 -Segura, Santiago (I) Hellboy II: The Golden Army 2008 -Segura, Santiago (I) Jack and Jill 2011 -Segura, Santiago (I) Hellboy 2004 -Segura, Santiago (I) Blade II 2002 -Segura, Santiago (I) Astérix aux jeux olympiques 2008 -Perez, Jonathan 'Legacy' Stomp the Yard 2007 -Perez, Jonathan 'Legacy' Step Up 3D 2010 -Perez, Jonathan 'Legacy' Justin Bieber: Never Say Never 2011 -Archerd, Selma Die Hard 1988 -Archerd, Selma Indecent Proposal 1993 -Archerd, Selma Lethal Weapon 3 1992 -Parsons, Benny NASCAR 3D: The IMAX Experience 2004 -Parsons, Benny Herbie Fully Loaded 2005 -Parsons, Benny Talladega Nights: The Ballad of Ricky Bobby 2006 -Larroquette, John The Texas Chainsaw Massacre: The Beginning 2006 -Larroquette, John Star Trek III: The Search for Spock 1984 -Larroquette, John Stripes 1981 -Larroquette, John The Texas Chainsaw Massacre 2003 -Larroquette, John JFK 1991 -Stroehman, John Shallow Hal 2001 -Stroehman, John Dumb & Dumber 1994 -Stroehman, John There's Something About Mary 1998 -Stroehman, John Me, Myself & Irene 2000 -Prygunov, Lev The Sum of All Fears 2002 -Prygunov, Lev The Saint 1997 -Prygunov, Lev K-19: The Widowmaker 2002 -Brubaker, Tony Just Like Heaven 2005 -Brubaker, Tony Die Hard: With a Vengeance 1995 -Brubaker, Tony Rocky III 1982 -Bennett, Michael (VIII) Confessions of a Shopaholic 2009 -Bennett, Michael (VIII) It's Complicated 2009 -Bennett, Michael (VIII) Date Night 2010 -Bennett, Michael (VIII) Think Like a Man 2012 -Bennett, Michael (VIII) The Hangover Part II 2011 -Bennett, Michael (VIII) Midnight in Paris 2011 -Bennett, Michael (VIII) The Tourist 2010 -Bennett, Michael (VIII) 21 2008 -Bennett, Michael (VIII) Vicky Cristina Barcelona 2008 -Bennett, Michael (VIII) The Fast and the Furious: Tokyo Drift 2006 -Bennett, Michael (VIII) The Bourne Ultimatum 2007 -Bennett, Michael (VIII) Wall Street: Money Never Sleeps 2010 -Bennett, Michael (VIII) Mission: Impossible III 2006 -Byrd, Terrell Coach Carter 2005 -Byrd, Terrell The Longest Yard 2005 -Byrd, Terrell Radio 2003 -Edelman, Shane Catch Me If You Can 2002 -Edelman, Shane Flightplan 2005 -Edelman, Shane He's Just Not That Into You 2009 -Duerler, John Cast Away 2000 -Duerler, John You Don't Mess with the Zohan 2008 -Duerler, John Rat Race 2001 -Yung, Sai-Kit Entrapment 1999 -Yung, Sai-Kit Die Another Day 2002 -Yung, Sai-Kit Gangs of New York 2002 -Yung, Sai-Kit Batman Begins 2005 -Baker, Ray (I) Coach Carter 2005 -Baker, Ray (I) What Lies Beneath 2000 -Baker, Ray (I) Holes 2003 -Baker, Ray (I) Rain Man 1988 -Baker, Ray (I) Without a Paddle 2004 -Baker, Ray (I) Total Recall 1990 -Grint, Rupert Harry Potter and the Goblet of Fire 2005 -Grint, Rupert Harry Potter and the Prisoner of Azkaban 2004 -Grint, Rupert Harry Potter and the Chamber of Secrets 2002 -Grint, Rupert Harry Potter and the Deathly Hallows: Part 1 2010 -Grint, Rupert Harry Potter and the Deathly Hallows: Part 2 2011 -Grint, Rupert Harry Potter and the Sorcerer's Stone 2001 -Grint, Rupert Harry Potter and the Order of the Phoenix 2007 -Grint, Rupert Harry Potter and the Half-Blood Prince 2009 -O'Connell, Jack (II) Men in Black 3 2012 -O'Connell, Jack (II) Jungle 2 Jungle 1997 -O'Connell, Jack (II) Knight and Day 2010 -Fiddy, James Gulliver's Travels 2010 -Fiddy, James The Queen 2006 -Fiddy, James Stardust 2007 -Fiddy, James Robin Hood 2010 -Fiddy, James Gladiator 2000 -Fiddy, James Atonement 2007 -Jones, Michael Wingate Get Smart 2008 -Jones, Michael Wingate Law Abiding Citizen 2009 -Jones, Michael Wingate Invincible 2006 -Smits, Jimmy Star Wars: Episode III - Revenge of the Sith 2005 -Smits, Jimmy Running Scared 1986 -Smits, Jimmy Star Wars: Episode II - Attack of the Clones 2002 -Payne, Dan (I) The Cabin in the Woods 2011 -Payne, Dan (I) Underworld: Awakening 2012 -Payne, Dan (I) John Tucker Must Die 2006 -Payne, Dan (I) Watchmen 2009 -Bizik, Robert (I) Salt 2010 -Bizik, Robert (I) Transformers: Revenge of the Fallen 2009 -Bizik, Robert (I) Inside Man 2006 -Bizik, Robert (I) Invincible 2006 -Bizik, Robert (I) Confessions of a Shopaholic 2009 -Bizik, Robert (I) Law Abiding Citizen 2009 -Bizik, Robert (I) The Happening 2008 -Bizik, Robert (I) Limitless 2011 -Bizik, Robert (I) Enchanted 2007 -Bizik, Robert (I) Marley & Me 2008 -Perrine, Valerie Superman 1978 -Perrine, Valerie Superman II 1980 -Perrine, Valerie What Women Want 2000 -Smith, Rachele Brooke Iron Man 2 2010 -Smith, Rachele Brooke 17 Again 2009 -Smith, Rachele Brooke Alvin and the Chipmunks: The Squeakquel 2009 -Vance, Courtney B. Space Cowboys 2000 -Vance, Courtney B. The Preacher's Wife 1996 -Vance, Courtney B. The Hunt for Red October 1990 -Vance, Courtney B. Final Destination 5 2011 -Makoare, Lawrence Die Another Day 2002 -Makoare, Lawrence The Lord of the Rings: The Fellowship of the Ring 2001 -Makoare, Lawrence The Lord of the Rings: The Return of the King 2003 -Robb, AnnaSophia Charlie and the Chocolate Factory 2005 -Robb, AnnaSophia Race to Witch Mountain 2009 -Robb, AnnaSophia Jumper 2008 -Robb, AnnaSophia Bridge to Terabithia 2007 -Robb, AnnaSophia Because of Winn-Dixie 2005 -Jones, Evan (I) Jarhead 2005 -Jones, Evan (I) The Book of Eli 2010 -Jones, Evan (I) 8 Mile 2002 -Jones, Evan (I) Glory Road 2006 -Rushton, Kevin X-Men 2000 -Rushton, Kevin Saw IV 2007 -Rushton, Kevin Good Will Hunting 1997 -Rushton, Kevin Saw 3D 2010 -Wheeler, Ira Hannah and Her Sisters 1986 -Wheeler, Ira The Thomas Crown Affair 1999 -Wheeler, Ira Analyze This 1999 -Wheeler, Ira The Killing Fields 1984 -Tanner, Jeff (I) Twelve Monkeys 1995 -Tanner, Jeff (I) Scooby Doo 2: Monsters Unleashed 2004 -Tanner, Jeff (I) Get Smart 2008 -Tanner, Jeff (I) Batman Begins 2005 -Bellew, Stacy Varsity Blues 1999 -Bellew, Stacy Pay It Forward 2000 -Bellew, Stacy Where the Heart Is 2000 -Hanover, Donna The Siege 1998 -Hanover, Donna Ransom 1996 -Hanover, Donna Keeping the Faith 2000 -Hanover, Donna Superstar 1999 -Schiavelli, Vincent Tomorrow Never Dies 1997 -Schiavelli, Vincent Amadeus 1984 -Schiavelli, Vincent Ghost 1990 -Schiavelli, Vincent Batman Returns 1992 -Coppola, Chris Friday the 13th 2009 -Coppola, Chris The Polar Express 2004 -Coppola, Chris Spawn 1997 -Coppola, Chris Beowulf 2007 -Coppola, Chris Spider-Man 2002 -Coppola, Chris The Tuxedo 2002 -Howard, James B. The Silence of the Lambs 1991 -Howard, James B. Philadelphia 1993 -Howard, James B. The Manchurian Candidate 2004 -Amakye, Willie Amistad 1997 -Amakye, Willie Congo 1995 -Amakye, Willie Kicking & Screaming 2005 -Richards, Sal The Godfather 1972 -Richards, Sal The Fugitive 1993 -Richards, Sal Out for Justice 1991 -McCole Bartusiak, Skye The Cider House Rules 1999 -McCole Bartusiak, Skye Don't Say a Word 2001 -McCole Bartusiak, Skye The Patriot 2000 -Powell, Robert (II) Batman Forever 1995 -Powell, Robert (II) Batman & Robin 1997 -Powell, Robert (II) The Book of Eli 2010 -Tate, Rod Jerry Maguire 1996 -Tate, Rod Starsky & Hutch 2004 -Tate, Rod S.W.A.T. 2003 -Tate, Rod Tropic Thunder 2008 -Milligan, Stuart Spy Game 2001 -Milligan, Stuart Sky Captain and the World of Tomorrow 2004 -Milligan, Stuart Spies Like Us 1985 -Ferguson, Keith (II) The Incredible Hulk 2008 -Ferguson, Keith (II) Ice Age: Dawn of the Dinosaurs 2009 -Ferguson, Keith (II) Monster House 2006 -Ferguson, Keith (II) Madagascar 2005 -Ferguson, Keith (II) Shark Tale 2004 -Ferguson, Keith (II) The Chronicles of Narnia: Prince Caspian 2008 -Ferguson, Keith (II) Over the Hedge 2006 -Ferguson, Keith (II) Cars 2006 -Ramirez, Dania Fat Albert 2004 -Ramirez, Dania American Reunion 2012 -Ramirez, Dania X-Men: The Last Stand 2006 -Baessato, Giacomo Dreamcatcher 2003 -Baessato, Giacomo Scary Movie 2000 -Baessato, Giacomo RV 2006 -Mahaffey, Valerie Jack and Jill 2011 -Mahaffey, Valerie Jungle 2 Jungle 1997 -Mahaffey, Valerie Seabiscuit 2003 -Blake, Geoffrey Contact 1997 -Blake, Geoffrey Cast Away 2000 -Blake, Geoffrey Apollo 13 1995 -Blake, Geoffrey Wag the Dog 1997 -Blake, Geoffrey Mighty Joe Young 1998 -Blake, Geoffrey Forrest Gump 1994 -Harkins, Michael What Happens in Vegas 2008 -Harkins, Michael Analyze This 1999 -Harkins, Michael The Hurricane 1999 -Harkins, Michael Sleepers 1996 -Fry, Stephen (I) V for Vendetta 2005 -Fry, Stephen (I) Sherlock Holmes: A Game of Shadows 2011 -Fry, Stephen (I) Alice in Wonderland 2010 -Fry, Stephen (I) Harry Potter and the Goblet of Fire 2005 -Fry, Stephen (I) A Civil Action 1998 -Fry, Stephen (I) Spice World 1997 -Fry, Stephen (I) Chariots of Fire 1981 -Fry, Stephen (I) Gosford Park 2001 -Fry, Stephen (I) The Hitchhiker's Guide to the Galaxy 2005 -Fry, Stephen (I) Harry Potter and the Prisoner of Azkaban 2004 -Fry, Stephen (I) Harry Potter and the Chamber of Secrets 2002 -Hopkins, Brian (I) Bee Movie 2007 -Hopkins, Brian (I) Megamind 2010 -Hopkins, Brian (I) Shrek Forever After 2010 -Gibbs, Matyelok A Room with a View 1985 -Gibbs, Matyelok Harry Potter and the Deathly Hallows: Part 1 2010 -Gibbs, Matyelok EverAfter 1998 -Gibbs, Matyelok Tinker Tailor Soldier Spy 2011 -Gibbs, Matyelok Babel 2006 -Stott, Ken King Arthur 2004 -Stott, Ken Charlie Wilson's War 2007 -Stott, Ken The Chronicles of Narnia: Prince Caspian 2008 -Herlihy, Ed Police Academy 2: Their First Assignment 1985 -Herlihy, Ed Malcolm X 1992 -Herlihy, Ed Pee-wee's Big Adventure 1985 -Herlihy, Ed Who Framed Roger Rabbit 1988 -Corsair, Bill Chicago 2002 -Corsair, Bill A Perfect Murder 1998 -Corsair, Bill Confessions of a Shopaholic 2009 -Corsair, Bill The Sisterhood of the Traveling Pants 2 2008 -Corsair, Bill Presumed Innocent 1990 -Greer, Judy The Wedding Planner 2001 -Greer, Judy The Village 2004 -Greer, Judy The Descendants 2011 -Greer, Judy Three Kings 1999 -Greer, Judy Marmaduke 2010 -Greer, Judy 13 Going on 30 2004 -Greer, Judy What Women Want 2000 -Greer, Judy 27 Dresses 2008 -Maxwell, Lois For Your Eyes Only 1981 -Maxwell, Lois A View to a Kill 1985 -Maxwell, Lois Octopussy 1983 -Maxwell, Lois Moonraker 1979 -Kim, Daniel Dae Spider-Man 2 2004 -Kim, Daniel Dae Hulk 2003 -Kim, Daniel Dae The Jackal 1997 -Masters, Lisa The Stepford Wives 2004 -Masters, Lisa It's Complicated 2009 -Masters, Lisa The Siege 1998 -Baker, Joe Don The Dukes of Hazzard 2005 -Baker, Joe Don Mars Attacks! 1996 -Baker, Joe Don Congo 1995 -Baker, Joe Don GoldenEye 1995 -Baker, Joe Don The Living Daylights 1987 -Baker, Joe Don Tomorrow Never Dies 1997 -Baker, Joe Don The Natural 1984 -Mixon, Jamal Paul Blart: Mall Cop 2009 -Mixon, Jamal The Nutty Professor 1996 -Mixon, Jamal Nutty Professor II: The Klumps 2000 -O'Reilly, Harry The Interpreter 2005 -O'Reilly, Harry The Cable Guy 1996 -O'Reilly, Harry Starsky & Hutch 2004 -O'Reilly, Harry Tower Heist 2011 -Kishino, Andrew X-Men Origins: Wolverine 2009 -Kishino, Andrew Kung Fu Panda 2008 -Kishino, Andrew G.I. Joe: The Rise of Cobra 2009 -Kishino, Andrew Transformers: Revenge of the Fallen 2009 -Kishino, Andrew Spider-Man 3 2007 -Jacobs, Danny (I) Epic Movie 2007 -Jacobs, Danny (I) Madagascar: Escape 2 Africa 2008 -Jacobs, Danny (I) Madagascar 3: Europe's Most Wanted 2012 -Burchfield, Lonnie Shallow Hal 2001 -Burchfield, Lonnie Black Knight 2001 -Burchfield, Lonnie The Patriot 2000 -Ludwig, Walter (I) Con Air 1997 -Ludwig, Walter (I) Mars Attacks! 1996 -Ludwig, Walter (I) Vegas Vacation 1997 -Fraser, Duncan (II) Seven Years in Tibet 1997 -Fraser, Duncan (II) Eight Below 2006 -Fraser, Duncan (II) Timecop 1994 -Fraser, Duncan (II) The Exorcism of Emily Rose 2005 -Segel, Jason Gulliver's Travels 2010 -Segel, Jason Forgetting Sarah Marshall 2008 -Segel, Jason Despicable Me 2010 -Segel, Jason Knocked Up 2007 -Segel, Jason Friends with Benefits 2011 -Segel, Jason Bad Teacher 2011 -Segel, Jason The Muppets 2011 -Segel, Jason I Love You, Man 2009 -Sabara, Daryl John Carter 2012 -Sabara, Daryl Spy Kids 2001 -Sabara, Daryl Spy Kids: All the Time in the World in 4D 2011 -Sabara, Daryl Spy Kids 3-D: Game Over 2003 -Sabara, Daryl Halloween 2007 -Sabara, Daryl The Polar Express 2004 -Sabara, Daryl A Christmas Carol 2009 -Sabara, Daryl Spy Kids 2: Island of Lost Dreams 2002 -Reiser, Paul Aliens 1986 -Reiser, Paul Funny People 2009 -Reiser, Paul Beverly Hills Cop 1984 -Reiser, Paul Beverly Hills Cop II 1987 -Wisdom, Robert Barbershop 2: Back in Business 2004 -Wisdom, Robert Volcano 1997 -Wisdom, Robert Mighty Joe Young 1998 -Wisdom, Robert Face/Off 1997 -Wisdom, Robert The Forgotten 2004 -Shaw, Darwin Casino Royale 2006 -Shaw, Darwin Prince of Persia: The Sands of Time 2010 -Shaw, Darwin John Carter 2012 -Bonham Carter, Helena Charlie and the Chocolate Factory 2005 -Bonham Carter, Helena Fight Club 1999 -Bonham Carter, Helena Harry Potter and the Deathly Hallows: Part 2 2011 -Bonham Carter, Helena Harry Potter and the Deathly Hallows: Part 1 2010 -Bonham Carter, Helena A Room with a View 1985 -Bonham Carter, Helena Sweeney Todd: The Demon Barber of Fleet Street 2007 -Bonham Carter, Helena Alice in Wonderland 2010 -Bonham Carter, Helena Terminator Salvation 2009 -Bonham Carter, Helena Harry Potter and the Half-Blood Prince 2009 -Bonham Carter, Helena Corpse Bride 2005 -Bonham Carter, Helena Wallace & Gromit in The Curse of the Were-Rabbit 2005 -Bonham Carter, Helena Harry Potter and the Order of the Phoenix 2007 -Bonham Carter, Helena The King's Speech 2010 -Bonham Carter, Helena Big Fish 2003 -Krigsfeld, Ilan The Bourne Ultimatum 2007 -Krigsfeld, Ilan Tower Heist 2011 -Krigsfeld, Ilan Miami Vice 2006 -Stockwell, Dean The Manchurian Candidate 2004 -Stockwell, Dean Air Force One 1997 -Stockwell, Dean Beverly Hills Cop II 1987 -Stockwell, Dean The Rainmaker 1997 -Elfman, Danny Charlie and the Chocolate Factory 2005 -Elfman, Danny Corpse Bride 2005 -Elfman, Danny The Nightmare Before Christmas 1993 -Madsen, Michael (I) Kill Bill: Vol. 2 2004 -Madsen, Michael (I) The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Madsen, Michael (I) Scary Movie 4 2006 -Madsen, Michael (I) Die Another Day 2002 -Madsen, Michael (I) Donnie Brasco 1997 -Madsen, Michael (I) Kill Bill: Vol. 1 2003 -Madsen, Michael (I) Sin City 2005 -Madsen, Michael (I) The Natural 1984 -Armstrong, Michasha Catwoman 2004 -Armstrong, Michasha Underworld: Evolution 2006 -Armstrong, Michasha The Chronicles of Riddick 2004 -Armstrong, Michasha 4: Rise of the Silver Surfer 2007 -Armstrong, Michasha X2 2003 -Tilly, Jennifer Home on the Range 2004 -Tilly, Jennifer Liar Liar 1997 -Tilly, Jennifer Stuart Little 1999 -Tilly, Jennifer The Haunted Mansion 2003 -Tilly, Jennifer Monsters, Inc. 2001 -Realba, Mike Dawn of the Dead 2004 -Realba, Mike Saw V 2008 -Realba, Mike Saw IV 2007 -Realba, Mike Mr. Magorium's Wonder Emporium 2007 -Realba, Mike The Recruit 2003 -Broderick, Matthew (I) Godzilla 1998 -Broderick, Matthew (I) The Cable Guy 1996 -Broderick, Matthew (I) New Year's Eve 2011 -Broderick, Matthew (I) Ferris Bueller's Day Off 1986 -Broderick, Matthew (I) Tower Heist 2011 -Broderick, Matthew (I) The Tale of Despereaux 2008 -Broderick, Matthew (I) The Stepford Wives 2004 -Broderick, Matthew (I) The Lion King 1994 -Broderick, Matthew (I) Bee Movie 2007 -Broderick, Matthew (I) Inspector Gadget 1999 -Wilburn Jr., Ralph A. What Happens in Vegas 2008 -Wilburn Jr., Ralph A. Confessions of a Shopaholic 2009 -Wilburn Jr., Ralph A. The Taking of Pelham 1 2 3 2009 -Lucas, Billy D. Rocky V 1990 -Lucas, Billy D. Universal Soldier 1992 -Lucas, Billy D. Last Action Hero 1993 -Lucas, Billy D. Terminator 3: Rise of the Machines 2003 -Dante, Peter 50 First Dates 2004 -Dante, Peter The Wedding Singer 1998 -Dante, Peter I Now Pronounce You Chuck & Larry 2007 -Dante, Peter Just Go with It 2011 -Dante, Peter Mr. Deeds 2002 -Dante, Peter Little Nicky 2000 -Dante, Peter The Waterboy 1998 -Dante, Peter Big Daddy 1999 -Dante, Peter Jack and Jill 2011 -Gaston, Michael (I) Body of Lies 2008 -Gaston, Michael (I) Inception 2010 -Gaston, Michael (I) Ransom 1996 -Gaston, Michael (I) Cop Land 1997 -Gaston, Michael (I) High Crimes 2002 -Gaston, Michael (I) Double Jeopardy 1999 -Jenkins, Roy (I) The Heartbreak Kid 2007 -Jenkins, Roy (I) Thank You for Smoking 2005 -Jenkins, Roy (I) The Three Stooges 2012 -Lohan, Lindsay The Holiday 2006 -Lohan, Lindsay Freaky Friday 2003 -Lohan, Lindsay Mean Girls 2004 -Lohan, Lindsay Herbie Fully Loaded 2005 -Lohan, Lindsay The Parent Trap 1998 -Sommer, Josef The Sum of All Fears 2002 -Sommer, Josef Absence of Malice 1981 -Sommer, Josef Shaft 2000 -Sommer, Josef The Other Guys 2010 -Sommer, Josef Close Encounters of the Third Kind 1977 -Sommer, Josef The Family Man 2000 -Sommer, Josef X-Men: The Last Stand 2006 -Sommer, Josef Patch Adams 1998 -Sommer, Josef The Mighty Ducks 1992 -Garrett, Spencer (I) George of the Jungle 1997 -Garrett, Spencer (I) 21 2008 -Garrett, Spencer (I) Air Force One 1997 -Garrett, Spencer (I) Transformers: Revenge of the Fallen 2009 -Garrett, Spencer (I) Captain America: The First Avenger 2011 -Garrett, Spencer (I) Public Enemies 2009 -Garrett, Spencer (I) Yes Man 2008 -Garrett, Spencer (I) Charlie Wilson's War 2007 -Garrett, Spencer (I) Thank You for Smoking 2005 -Leoni, Téa The Family Man 2000 -Leoni, Téa Deep Impact 1998 -Leoni, Téa Bad Boys 1995 -Leoni, Téa Fun with Dick and Jane 2005 -Leoni, Téa Tower Heist 2011 -Leoni, Téa Jurassic Park III 2001 -Varney, Jim Toy Story 1995 -Varney, Jim Toy Story 2 1999 -Varney, Jim Atlantis: The Lost Empire 2001 -Faison, Frankie Showtime 2002 -Faison, Frankie Hannibal 2001 -Faison, Frankie Red Dragon 2002 -Faison, Frankie Down to Earth 2001 -Faison, Frankie White Chicks 2004 -Faison, Frankie The Thomas Crown Affair 1999 -Faison, Frankie The Silence of the Lambs 1991 -Faison, Frankie Coming to America 1988 -Meskimen, Jim Jingle All the Way 1996 -Meskimen, Jim There Will Be Blood 2007 -Meskimen, Jim Fantastic Four 2005 -Meskimen, Jim Shark Tale 2004 -Meskimen, Jim Madagascar 2005 -Meskimen, Jim How the Grinch Stole Christmas 2000 -Meskimen, Jim Magnolia 1999 -Meskimen, Jim Shrek the Third 2007 -Meskimen, Jim Nothing to Lose 1997 -Meskimen, Jim Robots 2005 -Meskimen, Jim Transformers: Dark of the Moon 2011 -Meskimen, Jim Apollo 13 1995 -Meskimen, Jim Domestic Disturbance 2001 -Schaap, David 300 2006 -Schaap, David The Day After Tomorrow 2004 -Schaap, David The Sum of All Fears 2002 -Schaap, David Get Smart 2008 -Eccleston, Christopher Gone in Sixty Seconds 2000 -Eccleston, Christopher The Others 2001 -Eccleston, Christopher G.I. Joe: The Rise of Cobra 2009 -Eccleston, Christopher Elizabeth 1998 -Eccleston, Christopher 28 Days Later... 2002 -Douglas, Donald (III) Bridget Jones: The Edge of Reason 2004 -Douglas, Donald (III) From Hell 2001 -Douglas, Donald (III) Bridget Jones's Diary 2001 -Keener, Catherine The 40 Year Old Virgin 2005 -Keener, Catherine Capote 2005 -Keener, Catherine The Interpreter 2005 -Keener, Catherine Being John Malkovich 1999 -Keener, Catherine About Last Night... 1986 -Keener, Catherine Where the Wild Things Are 2009 -Keener, Catherine Percy Jackson & the Olympians: The Lightning Thief 2010 -Carreno, Diana Like Mike 2002 -Carreno, Diana Clockstoppers 2002 -Carreno, Diana Bringing Down the House 2003 -Rivers, Joan Look Who's Talking 1989 -Rivers, Joan Shrek 2 2004 -Rivers, Joan The Smurfs 2011 -Cronkite, Walter JFK 1991 -Cronkite, Walter Apollo 13 1995 -Cronkite, Walter Transformers: Dark of the Moon 2011 -Union, Gabrielle 10 Things I Hate About You 1999 -Union, Gabrielle She's All That 1999 -Union, Gabrielle Bring It On 2000 -Union, Gabrielle Think Like a Man 2012 -Union, Gabrielle Bad Boys II 2003 -Seda, Jon Twelve Monkeys 1995 -Seda, Jon Larry Crowne 2011 -Seda, Jon Selena 1997 -Seda, Jon Bad Boys II 2003 -Jackson, Katie (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Jackson, Katie (I) King Kong 2005 -Jackson, Katie (I) The Lord of the Rings: The Return of the King 2003 -Jackson, Katie (I) The Lord of the Rings: The Two Towers 2002 -Kennedy, John F. Forrest Gump 1994 -Kennedy, John F. Transformers: Dark of the Moon 2011 -Kennedy, John F. The Good Shepherd 2006 -Kennedy, John F. Malcolm X 1992 -Kennedy, John F. Live Free or Die Hard 2007 -Kennedy, John F. JFK 1991 -Bosco, Philip (I) Shaft 2000 -Bosco, Philip (I) My Best Friend's Wedding 1997 -Bosco, Philip (I) Wonder Boys 2000 -Bosco, Philip (I) Trading Places 1983 -Bosco, Philip (I) The First Wives Club 1996 -Chin, Tsai The Interpreter 2005 -Chin, Tsai Memoirs of a Geisha 2005 -Chin, Tsai Casino Royale 2006 -Wallis, Annabelle Body of Lies 2008 -Wallis, Annabelle X-Men: First Class 2011 -Wallis, Annabelle Snow White and the Huntsman 2012 -Brenneman, Amy (I) City of Angels 1998 -Brenneman, Amy (I) Daylight 1996 -Brenneman, Amy (I) Heat 1995 -Brenneman, Amy (I) Casper 1995 -MacPherson, Walt Donnie Brasco 1997 -MacPherson, Walt The Jackal 1997 -MacPherson, Walt In the Line of Fire 1993 -MacPherson, Walt Message in a Bottle 1999 -Best, Ahmed Star Wars: Episode III - Revenge of the Sith 2005 -Best, Ahmed Star Wars: Episode I - The Phantom Menace 1999 -Best, Ahmed Star Wars: Episode II - Attack of the Clones 2002 -Pierce, Denney Legion 2009 -Pierce, Denney Windtalkers 2002 -Pierce, Denney Swordfish 2001 -Pierce, Denney Terminator 2: Judgment Day 1991 -Haddad, Michael (III) Volcano 1997 -Haddad, Michael (III) Mighty Joe Young 1998 -Haddad, Michael (III) Waterworld 1995 -Haddad, Michael (III) Independence Day 1996 -Thomson, Craig (III) Pirates of the Caribbean: Dead Man's Chest 2006 -Thomson, Craig (III) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Thomson, Craig (III) Any Given Sunday 1999 -Bray, Ben The A-Team 2010 -Bray, Ben The Hurricane 1999 -Bray, Ben The Grey 2011 -Bray, Ben Three Kings 1999 -Shapiro, Kenny In Her Shoes 2005 -Shapiro, Kenny The Pink Panther 2006 -Shapiro, Kenny National Treasure: Book of Secrets 2007 -Shapiro, Kenny Invincible 2006 -Gottfried, Gilbert Lemony Snicket's A Series of Unfortunate Events 2004 -Gottfried, Gilbert Aladdin 1992 -Gottfried, Gilbert Doctor Dolittle 1998 -Gottfried, Gilbert Beverly Hills Cop II 1987 -Dunlap, Pamela The Holiday 2006 -Dunlap, Pamela Clockstoppers 2002 -Dunlap, Pamela I Am Sam 2001 -Dunlap, Pamela Changeling 2008 -Gannascoli, Joseph R. Men in Black 3 2012 -Gannascoli, Joseph R. Mickey Blue Eyes 1999 -Gannascoli, Joseph R. College Road Trip 2008 -McKay, Adam (I) Step Brothers 2008 -McKay, Adam (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -McKay, Adam (I) Anchorman: The Legend of Ron Burgundy 2004 -McKay, Adam (I) The Other Guys 2010 -Doughan, Jim The Haunted Mansion 2003 -Doughan, Jim Ruthless People 1986 -Doughan, Jim The Mask 1994 -Doughan, Jim Hotel for Dogs 2009 -Doughan, Jim Evan Almighty 2007 -Doughan, Jim The Flintstones 1994 -Doughan, Jim The Flintstones in Viva Rock Vegas 2000 -Doughan, Jim Stuart Little 1999 -Doughan, Jim Stuart Little 2 2002 -Phillips, Ethan (I) Star Trek: First Contact 1996 -Phillips, Ethan (I) The Wild Thornberrys Movie 2002 -Phillips, Ethan (I) The Island 2005 -Phillips, Ethan (I) Rugrats Go Wild 2003 -Phillips, Ethan (I) Bad Santa 2003 -Mastrogiorgio, Danny Underdog 2007 -Mastrogiorgio, Danny Brother Bear 2003 -Mastrogiorgio, Danny Sleepers 1996 -Mastrogiorgio, Danny Enchanted 2007 -Yulin, Harris Clear and Present Danger 1994 -Yulin, Harris Rush Hour 2 2001 -Yulin, Harris The Hurricane 1999 -Yulin, Harris Bean 1997 -Yulin, Harris Training Day 2001 -Paulsen, Rob The Ant Bully 2006 -Paulsen, Rob Return to Never Land 2002 -Paulsen, Rob Scooby Doo 2: Monsters Unleashed 2004 -Paulsen, Rob Jimmy Neutron: Boy Genius 2001 -Paulsen, Rob Barnyard 2006 -Darling, Russell Star Wars: Episode II - Attack of the Clones 2002 -Darling, Russell Contact 1997 -Darling, Russell Star Wars: Episode I - The Phantom Menace 1999 -Gleeson, Domhnall Harry Potter and the Deathly Hallows: Part 1 2010 -Gleeson, Domhnall Harry Potter and the Deathly Hallows: Part 2 2011 -Gleeson, Domhnall True Grit 2010 -Portnow, Richard Sister Act 1992 -Portnow, Richard Se7en 1995 -Portnow, Richard Law Abiding Citizen 2009 -Vega, Alexa Spy Kids 2001 -Vega, Alexa Spy Kids 3-D: Game Over 2003 -Vega, Alexa Spy Kids: All the Time in the World in 4D 2011 -Vega, Alexa Twister 1996 -Vega, Alexa Spy Kids 2: Island of Lost Dreams 2002 -Carter, Jim (I) 102 Dalmatians 2000 -Carter, Jim (I) Shakespeare in Love 1998 -Carter, Jim (I) Alice in Wonderland 2010 -Carter, Jim (I) The Golden Compass 2007 -Gardner, Jimmy (I) Harry Potter and the Prisoner of Azkaban 2004 -Gardner, Jimmy (I) Robin Hood: Prince of Thieves 1991 -Gardner, Jimmy (I) Finding Neverland 2004 -McGrory, Matthew Big Fish 2003 -McGrory, Matthew Constantine 2005 -McGrory, Matthew Men in Black II 2002 -Snowden, John (I) The Golden Compass 2007 -Snowden, John (I) Mr. Bean's Holiday 2007 -Snowden, John (I) The Bourne Ultimatum 2007 -Czerny, Henry The Exorcism of Emily Rose 2005 -Czerny, Henry The A-Team 2010 -Czerny, Henry Clear and Present Danger 1994 -Czerny, Henry The Pink Panther 2006 -Czerny, Henry Mission: Impossible 1996 -Coe, George Kramer vs. Kramer 1979 -Coe, George Transformers: Dark of the Moon 2011 -Coe, George Funny People 2009 -Coe, George The Mighty Ducks 1992 -Hsu, Jimmy (I) Ocean's Thirteen 2007 -Hsu, Jimmy (I) The Fast and the Furious: Tokyo Drift 2006 -Hsu, Jimmy (I) Pirates of the Caribbean: At World's End 2007 -Austin, Reggie The Manchurian Candidate 2004 -Austin, Reggie The Omen 2006 -Austin, Reggie A Beautiful Mind 2001 -Reddick, Lance Godzilla 1998 -Reddick, Lance The Siege 1998 -Reddick, Lance Don't Say a Word 2001 -Doescher, Justin Body of Lies 2008 -Doescher, Justin Burn After Reading 2008 -Doescher, Justin Law Abiding Citizen 2009 -Council, Richard (I) The First Wives Club 1996 -Council, Richard (I) Unbreakable 2000 -Council, Richard (I) Die Hard: With a Vengeance 1995 -Washington, Denzel The Manchurian Candidate 2004 -Washington, Denzel The Siege 1998 -Washington, Denzel Training Day 2001 -Washington, Denzel Unstoppable 2010 -Washington, Denzel John Q 2002 -Washington, Denzel Remember the Titans 2000 -Washington, Denzel The Hurricane 1999 -Washington, Denzel Deja Vu 2006 -Washington, Denzel The Book of Eli 2010 -Washington, Denzel The Preacher's Wife 1996 -Washington, Denzel American Gangster 2007 -Washington, Denzel Malcolm X 1992 -Washington, Denzel The Bone Collector 1999 -Washington, Denzel The Taking of Pelham 1 2 3 2009 -Washington, Denzel Inside Man 2006 -Washington, Denzel Courage Under Fire 1996 -Washington, Denzel Man on Fire 2004 -Washington, Denzel Safe House 2012 -Washington, Denzel Philadelphia 1993 -Foxx, Jamie Ali 2001 -Foxx, Jamie Collateral 2004 -Foxx, Jamie Law Abiding Citizen 2009 -Foxx, Jamie Miami Vice 2006 -Foxx, Jamie Rio 2011 -Foxx, Jamie Any Given Sunday 1999 -Foxx, Jamie Dreamgirls 2006 -Foxx, Jamie Horrible Bosses 2011 -Foxx, Jamie Jarhead 2005 -Foxx, Jamie Due Date 2010 -Midthunder, David Terminator Salvation 2009 -Midthunder, David The Book of Eli 2010 -Midthunder, David Hidalgo 2004 -Midthunder, David Cowboys & Aliens 2011 -Copeland, Tara (I) The Dictator 2012 -Copeland, Tara (I) College Road Trip 2008 -Copeland, Tara (I) The Other Guys 2010 -Cayouette, Laura Green Lantern 2011 -Cayouette, Laura Enemy of the State 1998 -Cayouette, Laura Kill Bill: Vol. 2 2004 -Nelson, Danny (I) The Curious Case of Benjamin Button 2008 -Nelson, Danny (I) A Time to Kill 1996 -Nelson, Danny (I) Forces of Nature 1999 -Sitarz, Tim Just Like Heaven 2005 -Sitarz, Tim Takers 2010 -Sitarz, Tim Herbie Fully Loaded 2005 -Curtis, Jamie Lee Freaky Friday 2003 -Curtis, Jamie Lee Halloween H20: 20 Years Later 1998 -Curtis, Jamie Lee Beverly Hills Chihuahua 2008 -Curtis, Jamie Lee Christmas with the Kranks 2004 -Curtis, Jamie Lee True Lies 1994 -Curtis, Jamie Lee Trading Places 1983 -Bailey Jr., Robert Mission to Mars 2000 -Bailey Jr., Robert The Happening 2008 -Bailey Jr., Robert Coraline 2009 -Huang, Timothy (I) Coyote Ugly 2000 -Huang, Timothy (I) Autumn in New York 2000 -Huang, Timothy (I) Little Nicky 2000 -Huang, Timothy (I) Serendipity 2001 -Key, Keegan Michael Just Go with It 2011 -Key, Keegan Michael Due Date 2010 -Key, Keegan Michael Role Models 2008 -Harbour, David (I) Quantum of Solace 2008 -Harbour, David (I) Brokeback Mountain 2005 -Harbour, David (I) The Green Hornet 2011 -Fouquette, Dave Ghost Rider 2007 -Fouquette, Dave Coraline 2009 -Fouquette, Dave Constantine 2005 -Burke, Billy (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Burke, Billy (I) The Twilight Saga: Eclipse 2010 -Burke, Billy (I) Along Came a Spider 2001 -Burke, Billy (I) New Moon 2009 -Burke, Billy (I) Ladder 49 2004 -Nicholson, Lorraine Something's Gotta Give 2003 -Nicholson, Lorraine The Princess Diaries 2: Royal Engagement 2004 -Nicholson, Lorraine Fly Me to the Moon 2008 -Nicholson, Lorraine Click 2006 -Govea, Ric The Longest Yard 2005 -Govea, Ric Terminator Salvation 2009 -Govea, Ric Get Him to the Greek 2010 -Govea, Ric Hancock 2008 -Govea, Ric Yes Man 2008 -Govea, Ric No Strings Attached 2011 -Nichols, Marisol Scream 2 1997 -Nichols, Marisol Big Momma's House 2 2006 -Nichols, Marisol Bowfinger 1999 -Nichols, Marisol Vegas Vacation 1997 -Richmond, Branscombe Just Go with It 2011 -Richmond, Branscombe The Scorpion King 2002 -Richmond, Branscombe Licence to Kill 1989 -Richmond, Branscombe Star Trek III: The Search for Spock 1984 -Richmond, Branscombe Journey 2: The Mysterious Island 2012 -Richmond, Branscombe Forgetting Sarah Marshall 2008 -Richmond, Branscombe Batman Returns 1992 -Burkley, Eva Hulk 2003 -Burkley, Eva A Beautiful Mind 2001 -Burkley, Eva How the Grinch Stole Christmas 2000 -Spann, Greyson Meet the Robinsons 2007 -Spann, Greyson Over the Hedge 2006 -Spann, Greyson The Time Traveler's Wife 2009 -Cohen, Rob (I) Daylight 1996 -Cohen, Rob (I) The Fast and the Furious 2001 -Cohen, Rob (I) xXx 2002 -Sherbanee, Maurice Charlie Wilson's War 2007 -Sherbanee, Maurice The Pursuit of Happyness 2006 -Sherbanee, Maurice Indecent Proposal 1993 -Corman, Roger Philadelphia 1993 -Corman, Roger The Silence of the Lambs 1991 -Corman, Roger The Manchurian Candidate 2004 -Corman, Roger Apollo 13 1995 -Corman, Roger Scream 3 2000 -Dokuchitz, Jonathan The Good Shepherd 2006 -Dokuchitz, Jonathan Two Weeks Notice 2002 -Dokuchitz, Jonathan Anastasia 1997 -Dokuchitz, Jonathan The Hunchback of Notre Dame 1996 -Pickett, Wiley M. The Perfect Storm 2000 -Pickett, Wiley M. The Artist 2011 -Pickett, Wiley M. Transformers 2007 -Pickett, Wiley M. Mighty Joe Young 1998 -Sporleder, Gregory The Rock 1996 -Sporleder, Gregory Black Hawk Down 2001 -Sporleder, Gregory Being John Malkovich 1999 -Sporleder, Gregory Twister 1996 -Sporleder, Gregory S.W.A.T. 2003 -Sporleder, Gregory Hotel for Dogs 2009 -Sporleder, Gregory 17 Again 2009 -Sporleder, Gregory Never Been Kissed 1999 -Candy, John JFK 1991 -Candy, John Home Alone 1990 -Candy, John Stripes 1981 -King, Joey Horton Hears a Who! 2008 -King, Joey Ice Age: Dawn of the Dinosaurs 2009 -King, Joey Battle Los Angeles 2011 -King, Joey Crazy, Stupid, Love. 2011 -Hartung, Petra The Reader 2008 -Hartung, Petra Unknown 2011 -Hartung, Petra Inglourious Basterds 2009 -McCormack, J. Patrick Catch Me If You Can 2002 -McCormack, J. Patrick Hollow Man 2000 -McCormack, J. Patrick Charlie Wilson's War 2007 -McCormack, J. Patrick Wag the Dog 1997 -McCormack, J. Patrick The Parent Trap 1998 -McCormack, J. Patrick Armageddon 1998 -McCormack, J. Patrick Eagle Eye 2008 -McCormack, J. Patrick Star Trek: Nemesis 2002 -McCormack, J. Patrick The Lost World: Jurassic Park 1997 -Phelan, Alina Shrek 2 2004 -Phelan, Alina The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Phelan, Alina The Chronicles of Narnia: Prince Caspian 2008 -Phelan, Alina Shrek the Third 2007 -Fessler, Norman Message in a Bottle 1999 -Fessler, Norman Bandits 2001 -Fessler, Norman Red Dragon 2002 -Jones, James Earl Star Wars: Episode III - Revenge of the Sith 2005 -Jones, James Earl Primary Colors 1998 -Jones, James Earl The Hunt for Red October 1990 -Jones, James Earl Star Wars: Episode V - The Empire Strikes Back 1980 -Jones, James Earl Star Wars: Episode VI - Return of the Jedi 1983 -Jones, James Earl Earth 2007 -Jones, James Earl Fantasia/2000 1999 -Jones, James Earl Clear and Present Danger 1994 -Jones, James Earl Robots 2005 -Jones, James Earl Star Wars 1977 -Jones, James Earl Coming to America 1988 -Jones, James Earl Click 2006 -Jones, James Earl Scary Movie 4 2006 -Jones, James Earl The Lion King 1994 -Wayne, Brendan Couples Retreat 2009 -Wayne, Brendan Cowboys & Aliens 2011 -Wayne, Brendan S.W.A.T. 2003 -Wayne, Brendan Hotel for Dogs 2009 -Wayne, Brendan Fast & Furious 2009 -Beauvais, Garcelle Bad Company 2002 -Beauvais, Garcelle Barbershop 2: Back in Business 2004 -Beauvais, Garcelle Double Take 2001 -Beauvais, Garcelle Wild Wild West 1999 -Beauvais, Garcelle Coming to America 1988 -Stein, Ben (I) Casper 1995 -Stein, Ben (I) The Mask 1994 -Stein, Ben (I) Ferris Bueller's Day Off 1986 -Plummer, Glenn Saw II 2005 -Plummer, Glenn The Day After Tomorrow 2004 -Plummer, Glenn Speed 1994 -Plummer, Glenn Speed 2: Cruise Control 1997 -Murphy, Taylor Notting Hill 1999 -Murphy, Taylor Saving Private Ryan 1998 -Murphy, Taylor Eyes Wide Shut 1999 -Murphy, Taylor Star Wars: Episode I - The Phantom Menace 1999 -Visnjic, Goran The Peacemaker 1997 -Visnjic, Goran Ice Age 2002 -Visnjic, Goran The Girl with the Dragon Tattoo 2011 -Visnjic, Goran Practical Magic 1998 -Unger, Billy Changeling 2008 -Unger, Billy National Treasure: Book of Secrets 2007 -Unger, Billy Bride Wars 2009 -Howe, Brian Catch Me If You Can 2002 -Howe, Brian Deja Vu 2006 -Howe, Brian Evan Almighty 2007 -Howe, Brian Gran Torino 2008 -Howe, Brian RV 2006 -Howe, Brian I Am Number Four 2011 -Howe, Brian Return to Me 2000 -Howe, Brian K-PAX 2001 -Howe, Brian The Pursuit of Happyness 2006 -Connolly, Kevin (I) John Q 2002 -Connolly, Kevin (I) Rocky V 1990 -Connolly, Kevin (I) He's Just Not That Into You 2009 -Connolly, Kevin (I) The Notebook 2004 -Connolly, Kevin (I) Secretariat 2010 -Connolly, Kevin (I) The Ugly Truth 2009 -Allen, Aleisha The School of Rock 2003 -Allen, Aleisha Are We There Yet? 2005 -Allen, Aleisha Are We Done Yet? 2007 -Phillips, Tracy (II) 500) Days of Summer 2009 -Phillips, Tracy (II) Dreamgirls 2006 -Phillips, Tracy (II) Charlie Wilson's War 2007 -Phillips, Tracy (II) Water for Elephants 2011 -Blumenthal, Brad Pulp Fiction 1994 -Blumenthal, Brad Hook 1991 -Blumenthal, Brad Volcano 1997 -Hodder, Kane (I) Out for Justice 1991 -Hodder, Kane (I) Daredevil 2003 -Hodder, Kane (I) Monster 2003 -Stephenson, Bob (II) Con Air 1997 -Stephenson, Bob (II) Se7en 1995 -Stephenson, Bob (II) Larry Crowne 2011 -Stephenson, Bob (II) The Game 1997 -Stephenson, Bob (II) Transformers 2007 -Stephenson, Bob (II) Fight Club 1999 -Stephenson, Bob (II) Charlie's Angels 2000 -Stephenson, Bob (II) Charlie's Angels: Full Throttle 2003 -Stone, Oliver (I) Alexander 2004 -Stone, Oliver (I) Any Given Sunday 1999 -Stone, Oliver (I) Wall Street 1987 -Stone, Oliver (I) Wall Street: Money Never Sleeps 2010 -Brooks, Kimberly (III) Curious George 2006 -Brooks, Kimberly (III) Shark Tale 2004 -Brooks, Kimberly (III) The Wild Thornberrys Movie 2002 -Brooks, Kimberly (III) Spider-Man 3 2007 -Brooks, Kimberly (III) Jimmy Neutron: Boy Genius 2001 -McMullan, Tim The Fifth Element 1997 -McMullan, Tim Shakespeare in Love 1998 -McMullan, Tim The Woman in Black 2012 -McMullan, Tim The Queen 2006 -Plunkett, Gerard Eight Below 2006 -Plunkett, Gerard Rat Race 2001 -Plunkett, Gerard Sucker Punch 2011 -Plunkett, Gerard Snakes on a Plane 2006 -Plunkett, Gerard The 6th Day 2000 -Wilde, June B. The Butterfly Effect 2004 -Wilde, June B. Final Destination 5 2011 -Wilde, June B. The Santa Clause 2 2002 -Lawrence, Scott (I) Star Wars: Episode III - Revenge of the Sith 2005 -Lawrence, Scott (I) Timecop 1994 -Lawrence, Scott (I) Cloverfield 2008 -Lawrence, Scott (I) The Social Network 2010 -Lawrence, Scott (I) Avatar 2009 -Hosking, Craig You, Me and Dupree 2006 -Hosking, Craig The Sum of All Fears 2002 -Hosking, Craig Space Cowboys 2000 -Hosking, Craig Paycheck 2003 -Hosking, Craig The Relic 1997 -Hosking, Craig Speed 1994 -Sperber, Wendie Jo Grease 1978 -Sperber, Wendie Jo Bachelor Party 1984 -Sperber, Wendie Jo Back to the Future Part III 1990 -Sperber, Wendie Jo Back to the Future 1985 -Speight Jr., Richard Thank You for Smoking 2005 -Speight Jr., Richard Independence Day 1996 -Speight Jr., Richard Speed 2: Cruise Control 1997 -Horne, J.R. Mr. Popper's Penguins 2011 -Horne, J.R. Burn After Reading 2008 -Horne, J.R. Die Hard: With a Vengeance 1995 -Horne, J.R. O Brother, Where Art Thou? 2000 -Seymour, Carolyn Mortal Kombat: Annihilation 1997 -Seymour, Carolyn Congo 1995 -Seymour, Carolyn Star Wars: Episode I - The Phantom Menace 1999 -Guinee, Tim Beavis and Butt-Head Do America 1996 -Guinee, Tim Ladder 49 2004 -Guinee, Tim Blade 1998 -Guinee, Tim Iron Man 2 2010 -Guinee, Tim Courage Under Fire 1996 -Guinee, Tim Water for Elephants 2011 -Chancer, Norman Star Wars: Episode V - The Empire Strikes Back 1980 -Chancer, Norman Superman II 1980 -Chancer, Norman Gandhi 1982 -Bridges, Jordan Frequency 2000 -Bridges, Jordan Mona Lisa Smile 2003 -Bridges, Jordan J. Edgar 2011 -Gosling, Ryan (I) Drive 2011 -Gosling, Ryan (I) The Ides of March 2011 -Gosling, Ryan (I) Remember the Titans 2000 -Gosling, Ryan (I) The Notebook 2004 -Gosling, Ryan (I) Crazy, Stupid, Love. 2011 -McHattie, Stephen Watchmen 2009 -McHattie, Stephen Immortals 2011 -McHattie, Stephen 300 2006 -McHattie, Stephen A History of Violence 2005 -Hoffman, Dustin Lemony Snicket's A Series of Unfortunate Events 2004 -Hoffman, Dustin Kramer vs. Kramer 1979 -Hoffman, Dustin Sleepers 1996 -Hoffman, Dustin Tootsie 1982 -Hoffman, Dustin Kung Fu Panda 2008 -Hoffman, Dustin Kung Fu Panda 2 2011 -Hoffman, Dustin Rain Man 1988 -Hoffman, Dustin Mr. Magorium's Wonder Emporium 2007 -Hoffman, Dustin Outbreak 1995 -Hoffman, Dustin Being John Malkovich 1999 -Hoffman, Dustin The Holiday 2006 -Hoffman, Dustin The Tale of Despereaux 2008 -Hoffman, Dustin Meet the Fockers 2004 -Hoffman, Dustin Little Fockers 2010 -Hoffman, Dustin Wag the Dog 1997 -Hoffman, Dustin Runaway Jury 2003 -Hoffman, Dustin Hook 1991 -Hoffman, Dustin Finding Neverland 2004 -Hoffman, Dustin Racing Stripes 2005 -Hoffman, Dustin Perfume: The Story of a Murderer 2006 -Hoffman, Dustin Rumor Has It... 2005 -Susskind, Steve Monsters, Inc. 2001 -Susskind, Steve The Emperor's New Groove 2000 -Susskind, Steve Terminator 3: Rise of the Machines 2003 -Coulter, Steve (I) Madea's Family Reunion 2006 -Coulter, Steve (I) The Hunger Games 2012 -Coulter, Steve (I) A Time to Kill 1996 -Hornsby, David Pearl Harbor 2001 -Hornsby, David Christmas with the Kranks 2004 -Hornsby, David AVPR: Aliens vs Predator - Requiem 2007 -Hornsby, David Minority Report 2002 -Hamill, Mark (I) Star Wars 1977 -Hamill, Mark (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Hamill, Mark (I) Star Wars: Episode VI - Return of the Jedi 1983 -Hamill, Mark (I) The Little Mermaid 1989 -Darlow, David (I) Road to Perdition 2002 -Darlow, David (I) High Fidelity 2000 -Darlow, David (I) The Fugitive 1993 -Levy, Hope Rango 2011 -Levy, Hope Hauru no ugoku shiro 2004 -Levy, Hope The Polar Express 2004 -Levy, Hope Garfield: A Tail of Two Kitties 2006 -Levy, Hope Marmaduke 2010 -Levy, Hope Brother Bear 2003 -Levy, Hope Hop 2011 -Imperioli, Michael Shark Tale 2004 -Imperioli, Michael Malcolm X 1992 -Imperioli, Michael Bad Boys 1995 -Blair, Selma Scream 2 1997 -Blair, Selma Legally Blonde 2001 -Blair, Selma In & Out 1997 -Blair, Selma Cruel Intentions 1999 -Blair, Selma Hellboy II: The Golden Army 2008 -Blair, Selma Hellboy 2004 -Johnson, Dwayne (I) The Rundown 2003 -Johnson, Dwayne (I) The Scorpion King 2002 -Johnson, Dwayne (I) Planet 51 2009 -Johnson, Dwayne (I) Journey 2: The Mysterious Island 2012 -Johnson, Dwayne (I) The Game Plan 2007 -Johnson, Dwayne (I) Race to Witch Mountain 2009 -Johnson, Dwayne (I) Fast Five 2011 -Johnson, Dwayne (I) Get Smart 2008 -Johnson, Dwayne (I) The Other Guys 2010 -Johnson, Dwayne (I) Why Did I Get Married Too? 2010 -Johnson, Dwayne (I) The Mummy Returns 2001 -Sixteen, Nicki Artificial Intelligence: AI 2001 -Sixteen, Nicki Almost Famous 2000 -Sixteen, Nicki What Women Want 2000 -Sixteen, Nicki The Princess Diaries 2001 -Boldi, Tony Liar Liar 1997 -Boldi, Tony Air Force One 1997 -Boldi, Tony Contact 1997 -Boldi, Tony Face/Off 1997 -Weston, Olivia Any Given Sunday 1999 -Weston, Olivia Guess Who 2005 -Weston, Olivia The Island 2005 -Evans, Lee (I) The Fifth Element 1997 -Evans, Lee (I) Mousehunt 1997 -Evans, Lee (I) There's Something About Mary 1998 -Tzur, Mira The Stepford Wives 2004 -Tzur, Mira The Pink Panther 2006 -Tzur, Mira The Devil Wears Prada 2006 -Platt, Oliver X-Men: First Class 2011 -Platt, Oliver Don't Say a Word 2001 -Platt, Oliver Indecent Proposal 1993 -Platt, Oliver Letters to Juliet 2010 -Platt, Oliver A Time to Kill 1996 -Platt, Oliver Bicentennial Man 1999 -Platt, Oliver Lake Placid 1999 -Platt, Oliver Doctor Dolittle 1998 -Doyle-Murray, Brian The Three Stooges 2012 -Doyle-Murray, Brian Snow Dogs 2002 -Doyle-Murray, Brian Bedazzled 2000 -Doyle-Murray, Brian Groundhog Day 1993 -Doyle-Murray, Brian JFK 1991 -Doyle-Murray, Brian As Good as It Gets 1997 -Doyle-Murray, Brian Stuart Little 1999 -Doyle-Murray, Brian Doctor Dolittle 1998 -Doyle-Murray, Brian 17 Again 2009 -Guest, Kim Mai Shark Tale 2004 -Guest, Kim Mai TMNT 2007 -Guest, Kim Mai Spider-Man 3 2007 -Spencer, Chaske The Twilight Saga: Breaking Dawn - Part 1 2011 -Spencer, Chaske New Moon 2009 -Spencer, Chaske The Twilight Saga: Eclipse 2010 -Riggle, Rob The Lorax 2012 -Riggle, Rob 21 Jump Street 2012 -Riggle, Rob Step Brothers 2008 -Riggle, Rob Killers 2010 -Riggle, Rob The Other Guys 2010 -Riggle, Rob Talladega Nights: The Ballad of Ricky Bobby 2006 -Riggle, Rob Larry Crowne 2011 -Riggle, Rob The Hangover 2009 -Hayes, Patrick Mel Ghosts of Girlfriends Past 2009 -Hayes, Patrick Mel Bride Wars 2009 -Hayes, Patrick Mel Paul Blart: Mall Cop 2009 -Levy, Eugene Curious George 2006 -Levy, Eugene American Reunion 2012 -Levy, Eugene Down to Earth 2001 -Levy, Eugene Like Mike 2002 -Levy, Eugene American Pie 1999 -Levy, Eugene American Pie 2 2001 -Levy, Eugene Bringing Down the House 2003 -Levy, Eugene American Wedding 2003 -Levy, Eugene Over the Hedge 2006 -Levy, Eugene Serendipity 2001 -Levy, Eugene Cheaper by the Dozen 2 2005 -Levy, Eugene Night at the Museum: Battle of the Smithsonian 2009 -Hudson, Ernie Ghost Busters 1984 -Hudson, Ernie Congo 1995 -Hudson, Ernie Miss Congeniality 2000 -Hudson, Ernie Miss Congeniality 2: Armed and Fabulous 2005 -Vallely, Mike Paul Blart: Mall Cop 2009 -Vallely, Mike xXx 2002 -Vallely, Mike The Hangover 2009 -Altice, Summer Wedding Crashers 2005 -Altice, Summer You, Me and Dupree 2006 -Altice, Summer The Scorpion King 2002 -Stone, Sharon (I) Basic Instinct 1992 -Stone, Sharon (I) Total Recall 1990 -Stone, Sharon (I) Last Action Hero 1993 -Stone, Sharon (I) Antz 1998 -Stone, Sharon (I) CyberWorld 2000 -Stone, Sharon (I) Catwoman 2004 -Baron, Joanne (I) Universal Soldier 1992 -Baron, Joanne (I) Spider-Man 2 2004 -Baron, Joanne (I) Drag Me to Hell 2009 -Gates, Victoria The Adjustment Bureau 2011 -Gates, Victoria Sex and the City 2 2010 -Gates, Victoria Limitless 2011 -Maryott, Kirsten Along Came Polly 2004 -Maryott, Kirsten The Island 2005 -Maryott, Kirsten Dumb & Dumber 1994 -Luna, Diego (I) Contraband 2012 -Luna, Diego (I) The Terminal 2004 -Luna, Diego (I) Open Range 2003 -Luna, Diego (I) Frida 2002 -Zeman, Richard The Day After Tomorrow 2004 -Zeman, Richard Snake Eyes 1998 -Zeman, Richard The Score 2001 -Zeman, Richard The Bone Collector 1999 -Swanson, Kristy Dude, Where's My Car? 2000 -Swanson, Kristy Big Daddy 1999 -Swanson, Kristy Pretty in Pink 1986 -Swanson, Kristy Ferris Bueller's Day Off 1986 -Taylor, Harry (I) Charlie and the Chocolate Factory 2005 -Taylor, Harry (I) Harry Potter and the Sorcerer's Stone 2001 -Taylor, Harry (I) Harry Potter and the Chamber of Secrets 2002 -Taylor, Harry (I) Sweeney Todd: The Demon Barber of Fleet Street 2007 -Taylor, Harry (I) The Golden Compass 2007 -Taylor, Harry (I) Alice in Wonderland 2010 -Taylor, Harry (I) The Da Vinci Code 2006 -Kind, Richard Toy Story 3 2010 -Kind, Richard Bewitched 2005 -Kind, Richard Cars 2 2011 -Kind, Richard Hereafter 2010 -Kind, Richard Cars 2006 -Kind, Richard A Bug's Life 1998 -Kind, Richard The Wild 2006 -Kind, Richard Stargate 1994 -Kind, Richard Garfield 2004 -Todd, Tony (I) Final Destination 2 2003 -Todd, Tony (I) Transformers: Revenge of the Fallen 2009 -Todd, Tony (I) Final Destination 5 2011 -Todd, Tony (I) Final Destination 3 2006 -Todd, Tony (I) The Rock 1996 -Todd, Tony (I) Final Destination 2000 -Mangum, Matt (I) We Were Soldiers 2002 -Mangum, Matt (I) Sweet Home Alabama 2002 -Mangum, Matt (I) American Reunion 2012 -Craven, Wes Scream 2 1997 -Craven, Wes Scream 1996 -Craven, Wes Scream 3 2000 -Craven, Wes Scream 4 2011 -Craven, Wes Red Eye 2005 -Colón-Zayas, Liza United 93 2006 -Colón-Zayas, Liza Unfaithful 2002 -Colón-Zayas, Liza Righteous Kill 2008 -Gough, Michael (II) G-Force 2009 -Gough, Michael (II) Shark Tale 2004 -Gough, Michael (II) Superman Returns 2006 -Gough, Michael (II) The Golden Compass 2007 -Gough, Michael (II) Robots 2005 -Gough, Michael (II) Over the Hedge 2006 -Gough, Michael (II) Spider-Man 3 2007 -Gough, Michael (II) Shrek 2 2004 -Gough, Michael (II) Open Season 2006 -Gough, Michael (II) The Mummy Returns 2001 -Gough, Michael (II) Shrek the Third 2007 -Attenborough, Tom The Tigger Movie 2000 -Attenborough, Tom Harry Potter and the Prisoner of Azkaban 2004 -Attenborough, Tom Harry Potter and the Chamber of Secrets 2002 -Sahlima The Girl with the Dragon Tattoo 2011 -Sahlima Rush Hour 3 2007 -Sahlima World Trade Center 2006 -Greene, James (III) Sherlock Holmes 2009 -Greene, James (III) From Hell 2001 -Greene, James (III) Johnny English 2003 -Morris, Kathryn (I) Artificial Intelligence: AI 2001 -Morris, Kathryn (I) Paycheck 2003 -Morris, Kathryn (I) As Good as It Gets 1997 -Morris, Kathryn (I) Minority Report 2002 -Aldredge, Tom Cold Mountain 2003 -Aldredge, Tom Intolerable Cruelty 2003 -Aldredge, Tom Message in a Bottle 1999 -Bowen, Michael (I) Jackie Brown 1997 -Bowen, Michael (I) Kill Bill: Vol. 1 2003 -Bowen, Michael (I) Magnolia 1999 -Bowen, Michael (I) After the Sunset 2004 -Rogen, Seth Horton Hears a Who! 2008 -Rogen, Seth Superbad 2007 -Rogen, Seth Step Brothers 2008 -Rogen, Seth The 40 Year Old Virgin 2005 -Rogen, Seth Knocked Up 2007 -Rogen, Seth The Spiderwick Chronicles 2008 -Rogen, Seth Kung Fu Panda 2008 -Rogen, Seth The Green Hornet 2011 -Rogen, Seth Zack and Miri Make a Porno 2008 -Rogen, Seth Kung Fu Panda 2 2011 -Rogen, Seth Monsters vs Aliens 2009 -Rogen, Seth Funny People 2009 -Rogen, Seth Shrek the Third 2007 -Rogen, Seth You, Me and Dupree 2006 -Rogen, Seth Anchorman: The Legend of Ron Burgundy 2004 -Rogen, Seth Pineapple Express 2008 -McDowell, Malcolm Hidalgo 2004 -McDowell, Malcolm Halloween 2007 -McDowell, Malcolm The Book of Eli 2010 -McDowell, Malcolm The Artist 2011 -McDowell, Malcolm Easy A 2010 -McDowell, Malcolm Bolt 2008 -Witherspoon, John Little Nicky 2000 -Witherspoon, John Next Friday 2000 -Witherspoon, John Dr. Dolittle 2 2001 -Witherspoon, John LiTTLEMAN 2006 -Garcia, Jeffrey (I) Happy Feet Two 2011 -Garcia, Jeffrey (I) Rio 2011 -Garcia, Jeffrey (I) Jimmy Neutron: Boy Genius 2001 -Garcia, Jeffrey (I) Barnyard 2006 -Garcia, Jeffrey (I) Happy Feet 2006 -Garcia, Jeffrey (I) Marmaduke 2010 -Hill, Bernard (I) The Ghost and the Darkness 1996 -Hill, Bernard (I) The Scorpion King 2002 -Hill, Bernard (I) The Lord of the Rings: The Return of the King 2003 -Hill, Bernard (I) Gothika 2003 -Hill, Bernard (I) Gandhi 1982 -Hill, Bernard (I) Titanic 1997 -Hill, Bernard (I) Valkyrie 2008 -Hill, Bernard (I) The Lord of the Rings: The Two Towers 2002 -Vízner, Jaroslav Van Helsing 2004 -Vízner, Jaroslav Hannibal Rising 2007 -Vízner, Jaroslav The Illusionist 2006 -Anderson, Anthony (I) Scary Movie 3 2003 -Anderson, Anthony (I) Exit Wounds 2001 -Anderson, Anthony (I) Scream 4 2011 -Anderson, Anthony (I) Big Momma's House 2000 -Anderson, Anthony (I) Hoodwinked! 2005 -Anderson, Anthony (I) Kangaroo Jack 2003 -Anderson, Anthony (I) Scary Movie 4 2006 -Anderson, Anthony (I) Me, Myself & Irene 2000 -Anderson, Anthony (I) Barbershop 2002 -Anderson, Anthony (I) The Departed 2006 -Anderson, Anthony (I) Transformers 2007 -Anderson, Anthony (I) Romeo Must Die 2000 -Doohan, James Star Trek IV: The Voyage Home 1986 -Doohan, James Star Trek: The Wrath of Khan 1982 -Doohan, James Star Trek III: The Search for Spock 1984 -Mullan, Peter Braveheart 1995 -Mullan, Peter War Horse 2011 -Mullan, Peter Harry Potter and the Deathly Hallows: Part 1 2010 -Bennett, Marcia (I) The Hurricane 1999 -Bennett, Marcia (I) Serendipity 2001 -Bennett, Marcia (I) Mr. Magorium's Wonder Emporium 2007 -Bennett, Marcia (I) The Tuxedo 2002 -Cariou, Len About Schmidt 2002 -Cariou, Len 1408 2007 -Cariou, Len Secret Window 2004 -Ruehl, Franklin Race to Witch Mountain 2009 -Ruehl, Franklin Angels & Demons 2009 -Ruehl, Franklin Yes Man 2008 -Bremner, Ewen (I) The Rundown 2003 -Bremner, Ewen (I) AVP: Alien vs. Predator 2004 -Bremner, Ewen (I) Pearl Harbor 2001 -Bremner, Ewen (I) Black Hawk Down 2001 -Bremner, Ewen (I) Around the World in 80 Days 2004 -Chow, Michael (I) Rush Hour 3 2007 -Chow, Michael (I) Lethal Weapon 4 1998 -Chow, Michael (I) Rush Hour 1998 -Chow, Michael (I) My Sister's Keeper 2009 -Chow, Michael (I) Rush Hour 2 2001 -Weltner, Dan Mona Lisa Smile 2003 -Weltner, Dan Enchanted 2007 -Weltner, Dan The Stepford Wives 2004 -Robert, John Charlie Wilson's War 2007 -Robert, John Angels & Demons 2009 -Robert, John Cloverfield 2008 -Robert, John The Ugly Truth 2009 -Robert, John Eagle Eye 2008 -Robert, John Rush Hour 3 2007 -Philbrick, Jami Old School 2003 -Philbrick, Jami Boogie Nights 1997 -Philbrick, Jami American Pie 1999 -Ratliff Henson, Garette The Mighty Ducks 1992 -Ratliff Henson, Garette D2: The Mighty Ducks 1994 -Ratliff Henson, Garette Casper 1995 -Cochran, Dean (I) Meet the Spartans 2008 -Cochran, Dean (I) Batman & Robin 1997 -Cochran, Dean (I) Phone Booth 2002 -Galecki, Johnny Vanilla Sky 2001 -Galecki, Johnny I Know What You Did Last Summer 1997 -Galecki, Johnny In Time 2011 -Galecki, Johnny Bean 1997 -Galecki, Johnny Hancock 2008 -Jameson, Nick The Da Vinci Code 2006 -Jameson, Nick Star Wars: Episode III - Revenge of the Sith 2005 -Jameson, Nick Beowulf 2007 -Jameson, Nick Shark Tale 2004 -Jameson, Nick Star Wars: Episode I - The Phantom Menace 1999 -Jameson, Nick Blades of Glory 2007 -Jameson, Nick Quantum of Solace 2008 -Jameson, Nick A Bug's Life 1998 -Jameson, Nick The Golden Compass 2007 -Jameson, Nick Robots 2005 -Jameson, Nick Along Came Polly 2004 -Meheux, Phil Casino Royale 2006 -Meheux, Phil Around the World in 80 Days 2004 -Meheux, Phil The Legend of Zorro 2005 -Donaruma, J.D. I Now Pronounce You Chuck & Larry 2007 -Donaruma, J.D. 50 First Dates 2004 -Donaruma, J.D. Jack and Jill 2011 -Donaruma, J.D. Mr. Deeds 2002 -Donaruma, J.D. Grown Ups 2010 -Donaruma, J.D. Bedtime Stories 2008 -Johnstone, Dion Dreamcatcher 2003 -Johnstone, Dion The Core 2003 -Johnstone, Dion The X Files: I Want to Believe 2008 -Sabongui, Patrick 300 2006 -Sabongui, Patrick This Means War 2012 -Sabongui, Patrick Watchmen 2009 -Sabongui, Patrick Percy Jackson & the Olympians: The Lightning Thief 2010 -Sabongui, Patrick Sucker Punch 2011 -Sabongui, Patrick TRON: Legacy 2010 -Sabongui, Patrick The Cabin in the Woods 2011 -Sabongui, Patrick Immortals 2011 -Sabongui, Patrick The Day the Earth Stood Still 2008 -Kraish, Mousa Superbad 2007 -Kraish, Mousa Munich 2005 -Kraish, Mousa You Don't Mess with the Zohan 2008 -Kraish, Mousa Fast & Furious 2009 -Kraish, Mousa The Dictator 2012 -Kraish, Mousa The Day the Earth Stood Still 2008 -Kraish, Mousa Land of the Lost 2009 -Piddock, Jim Garfield: A Tail of Two Kitties 2006 -Piddock, Jim Get Him to the Greek 2010 -Piddock, Jim Lethal Weapon 2 1989 -Piddock, Jim Epic Movie 2007 -Piddock, Jim Austin Powers in Goldmember 2002 -Piddock, Jim The Dictator 2012 -Piddock, Jim Meet the Spartans 2008 -Piddock, Jim Independence Day 1996 -Piddock, Jim The Prestige 2006 -Panzarella, Russ (V) Public Enemies 2009 -Panzarella, Russ (V) Little Fockers 2010 -Panzarella, Russ (V) Contagion 2011 -Sandler, Sadie Jack and Jill 2011 -Sandler, Sadie Just Go with It 2011 -Sandler, Sadie Bedtime Stories 2008 -Sandler, Sadie Grown Ups 2010 -Krasner, Sarah A Civil Action 1998 -Krasner, Sarah Star Trek: Insurrection 1998 -Krasner, Sarah Apollo 13 1995 -Krasner, Sarah Rush Hour 1998 -Hayek, Salma Frida 2002 -Hayek, Salma Wild Wild West 1999 -Hayek, Salma After the Sunset 2004 -Hayek, Salma Spy Kids 3-D: Game Over 2003 -Hayek, Salma The Faculty 1998 -Hayek, Salma Puss in Boots 2011 -Hayek, Salma Dogma 1999 -Hayek, Salma Traffic 2000 -Hayek, Salma Grown Ups 2010 -Thomas, Sean Patrick Barbershop 2002 -Thomas, Sean Patrick Courage Under Fire 1996 -Thomas, Sean Patrick Save the Last Dance 2001 -Thomas, Sean Patrick Barbershop 2: Back in Business 2004 -Thomas, Sean Patrick Cruel Intentions 1999 -Thomas, Sean Patrick Conspiracy Theory 1997 -Crawford Brown, Pat You, Me and Dupree 2006 -Crawford Brown, Pat Forces of Nature 1999 -Crawford Brown, Pat Daredevil 2003 -Crawford Brown, Pat Norbit 2007 -Crawford Brown, Pat Sister Act 1992 -Parrott, Billy The Incredible Hulk 2008 -Parrott, Billy Saw III 2006 -Parrott, Billy Resident Evil: Apocalypse 2004 -Presciutti, Americo Shutter Island 2010 -Presciutti, Americo The Interpreter 2005 -Presciutti, Americo The Pink Panther 2006 -Presciutti, Americo 21 2008 -Presciutti, Americo The Town 2010 -Presciutti, Americo The Fighter 2010 -Lineback, Richard Speed 1994 -Lineback, Richard Varsity Blues 1999 -Lineback, Richard The Ring 2002 -Lineback, Richard Twister 1996 -Lineback, Richard Tin Cup 1996 -Lineback, Richard The Jackal 1997 -Mercer, Tanda Salt 2010 -Mercer, Tanda Confessions of a Shopaholic 2009 -Mercer, Tanda The Interpreter 2005 -Altschwager, Jenae The Longest Yard 2005 -Altschwager, Jenae The Island 2005 -Altschwager, Jenae Click 2006 -Altschwager, Jenae Poseidon 2006 -Kerns, Linda (I) Titanic 1997 -Kerns, Linda (I) Mulan 1998 -Kerns, Linda (I) Home on the Range 2004 -Kerns, Linda (I) Rat Race 2001 -Fahrenkopf, Paul National Treasure: Book of Secrets 2007 -Fahrenkopf, Paul Syriana 2005 -Fahrenkopf, Paul Step Up 2: The Streets 2008 -Fahrenkopf, Paul He's Just Not That Into You 2009 -Schwaar, Laurent Traffic 2000 -Schwaar, Laurent Autumn in New York 2000 -Schwaar, Laurent Ocean's Eleven 2001 -Gatins, John Real Steel 2011 -Gatins, John The Shaggy Dog 2006 -Gatins, John Norbit 2007 -Gatins, John Varsity Blues 1999 -Adler, Lauren Mona Lisa Smile 2003 -Adler, Lauren Eternal Sunshine of the Spotless Mind 2004 -Adler, Lauren The School of Rock 2003 -Turner, Bree The Wedding Planner 2001 -Turner, Bree My Best Friend's Wedding 1997 -Turner, Bree Austin Powers: The Spy Who Shagged Me 1999 -Turner, Bree She's All That 1999 -Turner, Bree Deuce Bigalow: Male Gigolo 1999 -Turner, Bree The Ugly Truth 2009 -Turner, Bree American Pie 2 2001 -Breen, Patrick Galaxy Quest 1999 -Breen, Patrick Radio 2003 -Breen, Patrick Beverly Hills Ninja 1997 -Breen, Patrick Men in Black 1997 -Breen, Patrick Space Chimps 2008 -Breen, Patrick Christmas with the Kranks 2004 -Valentino, Venessia Pulp Fiction 1994 -Valentino, Venessia Hanging Up 2000 -Valentino, Venessia Jackie Brown 1997 -Valentino, Venessia Home Alone 2: Lost in New York 1992 -Valentino, Venessia Kill Bill: Vol. 2 2004 -Knoll, John Star Wars: Episode III - Revenge of the Sith 2005 -Knoll, John Star Wars: Episode I - The Phantom Menace 1999 -Knoll, John Mission: Impossible 1996 -Lee, Stan (I) The Avengers 2012 -Lee, Stan (I) Hulk 2003 -Lee, Stan (I) The Incredible Hulk 2008 -Lee, Stan (I) 4: Rise of the Silver Surfer 2007 -Lee, Stan (I) X-Men 2000 -Lee, Stan (I) Spider-Man 3 2007 -Lee, Stan (I) Thor 2011 -Lee, Stan (I) Spider-Man 2002 -Lee, Stan (I) Fantastic Four 2005 -Lee, Stan (I) The Amazing Spider-Man 2012 -Lee, Stan (I) Spider-Man 2 2004 -Lee, Stan (I) Daredevil 2003 -Lee, Stan (I) Iron Man 2 2010 -Lee, Stan (I) The Princess Diaries 2: Royal Engagement 2004 -Lee, Stan (I) X-Men: The Last Stand 2006 -Lee, Stan (I) Captain America: The First Avenger 2011 -Collins, Lynn (I) X-Men Origins: Wolverine 2009 -Collins, Lynn (I) John Carter 2012 -Collins, Lynn (I) 50 First Dates 2004 -Collins, Lynn (I) 13 Going on 30 2004 -Collins, Lynn (I) The Lake House 2006 -Shearer, Harry The Truman Show 1998 -Shearer, Harry My Best Friend's Wedding 1997 -Shearer, Harry Encounter in the Thrid Dimension 1999 -Shearer, Harry Haunted Castle 2001 -Shearer, Harry Godzilla 1998 -Shearer, Harry Small Soldiers 1998 -Shearer, Harry The Simpsons Movie 2007 -Shearer, Harry CyberWorld 2000 -Shearer, Harry Chicken Little 2005 -Shearer, Harry Thrill Ride: The Science of Fun 1997 -Rankin, Chris (I) Harry Potter and the Order of the Phoenix 2007 -Rankin, Chris (I) Harry Potter and the Chamber of Secrets 2002 -Rankin, Chris (I) Harry Potter and the Sorcerer's Stone 2001 -Rankin, Chris (I) Harry Potter and the Prisoner of Azkaban 2004 -Rankin, Chris (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Shire, Talia The Godfather 1972 -Shire, Talia Rocky III 1982 -Shire, Talia Rocky Balboa 2006 -Shire, Talia Rocky V 1990 -Shire, Talia Rocky IV 1985 -Hackman, Gene Behind Enemy Lines 2001 -Hackman, Gene Absolute Power 1997 -Hackman, Gene Unforgiven 1992 -Hackman, Gene Superman II 1980 -Hackman, Gene The Birdcage 1996 -Hackman, Gene The Royal Tenenbaums 2001 -Hackman, Gene The Firm 1993 -Hackman, Gene Superman 1978 -Hackman, Gene Antz 1998 -Hackman, Gene Runaway Jury 2003 -Hackman, Gene Enemy of the State 1998 -Hackman, Gene The Mexican 2001 -Hackman, Gene The Replacements 2000 -McCarthy, Melissa The Kid 2000 -McCarthy, Melissa Charlie's Angels 2000 -McCarthy, Melissa Bridesmaids 2011 -McCarthy, Melissa Life as We Know It 2010 -Gubler, Matthew Gray Alvin and the Chipmunks 2007 -Gubler, Matthew Gray Alvin and the Chipmunks: Chipwrecked 2011 -Gubler, Matthew Gray Alvin and the Chipmunks: The Squeakquel 2009 -Gubler, Matthew Gray RV 2006 -Gubler, Matthew Gray 500) Days of Summer 2009 -Roderick, Rachelle Spider-Man 2 2004 -Roderick, Rachelle The Scorpion King 2002 -Roderick, Rachelle Star Trek: Nemesis 2002 -Turner, Frank C. (I) Snow Dogs 2002 -Turner, Frank C. (I) Are We There Yet? 2005 -Turner, Frank C. (I) Cats & Dogs 2001 -Turner, Frank C. (I) Scary Movie 3 2003 -Turner, Frank C. (I) Unforgiven 1992 -Stamp, Terence The Adjustment Bureau 2011 -Stamp, Terence Wall Street 1987 -Stamp, Terence Star Wars: Episode I - The Phantom Menace 1999 -Stamp, Terence Yes Man 2008 -Stamp, Terence Superman 1978 -Stamp, Terence Superman II 1980 -Stamp, Terence Get Smart 2008 -Stamp, Terence Wanted 2008 -Stamp, Terence The Haunted Mansion 2003 -Stamp, Terence Valkyrie 2008 -Stamp, Terence Bowfinger 1999 -Rowlands, Gena The Skeleton Key 2005 -Rowlands, Gena Hope Floats 1998 -Rowlands, Gena The Notebook 2004 -Wells, Meredith The Time Machine 2002 -Wells, Meredith Flushed Away 2006 -Wells, Meredith Spirit: Stallion of the Cimarron 2002 -Beatty Jr., Lou The Kid 2000 -Beatty Jr., Lou Fight Club 1999 -Beatty Jr., Lou Fast & Furious 2009 -Humphreys, Alf (I) Final Destination 2 2003 -Humphreys, Alf (I) Diary of a Wimpy Kid 2010 -Humphreys, Alf (I) First Blood 1982 -Humphreys, Alf (I) X2 2003 -Humphreys, Alf (I) John Tucker Must Die 2006 -Humphreys, Alf (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Bedell, Mark Evan Almighty 2007 -Bedell, Mark Pirates of the Caribbean: Dead Man's Chest 2006 -Bedell, Mark Transformers 2007 -Bedell, Mark Tears of the Sun 2003 -Gilyard Jr., Clarence Top Gun 1986 -Gilyard Jr., Clarence The Karate Kid, Part II 1986 -Gilyard Jr., Clarence Die Hard 1988 -Wahlgren, Kari Lemony Snicket's A Series of Unfortunate Events 2004 -Wahlgren, Kari Bolt 2008 -Wahlgren, Kari Star Wars: Episode III - Revenge of the Sith 2005 -Wahlgren, Kari Spider-Man 3 2007 -Wahlgren, Kari Open Season 2006 -Wahlgren, Kari The Amazing Spider-Man 2012 -Wahlgren, Kari Aliens in the Attic 2009 -Wahlgren, Kari The Golden Compass 2007 -Wahlgren, Kari Kung Fu Panda 2 2011 -Wahlgren, Kari The Wild 2006 -Wahlgren, Kari Shrek the Third 2007 -Edgerton, Joel Star Wars: Episode III - Revenge of the Sith 2005 -Edgerton, Joel King Arthur 2004 -Edgerton, Joel Legend of the Guardians: The Owls of Ga'Hoole 2010 -Edgerton, Joel Star Wars: Episode II - Attack of the Clones 2002 -Cerullo, Al (I) Big Daddy 1999 -Cerullo, Al (I) Eraser 1996 -Cerullo, Al (I) Mickey Blue Eyes 1999 -Cerullo, Al (I) The Devil's Advocate 1997 -Cerullo, Al (I) Conspiracy Theory 1997 -Cerullo, Al (I) Wedding Crashers 2005 -Cerullo, Al (I) 'Crocodile' Dundee II 1988 -Soto, Talisa Mortal Kombat: Annihilation 1997 -Soto, Talisa Licence to Kill 1989 -Soto, Talisa Mortal Kombat 1995 -Alan, Lori (I) Toy Story 3 2010 -Alan, Lori (I) The SpongeBob SquarePants Movie 2004 -Alan, Lori (I) Cloudy with a Chance of Meatballs 2009 -Alan, Lori (I) WALL·E 2008 -Mandylor, Costas Saw III 2006 -Mandylor, Costas Saw V 2008 -Mandylor, Costas Beowulf 2007 -Mandylor, Costas Saw 3D 2010 -Mandylor, Costas Saw IV 2007 -Botes, Morne Made of Honor 2008 -Botes, Morne Bridget Jones: The Edge of Reason 2004 -Botes, Morne Batman Begins 2005 -Rea, Stephen (I) V for Vendetta 2005 -Rea, Stephen (I) Underworld: Awakening 2012 -Rea, Stephen (I) Interview with the Vampire: The Vampire Chronicles 1994 -Rea, Stephen (I) Michael Collins 1996 -Aniston, Jennifer The Break-Up 2006 -Aniston, Jennifer Rumor Has It... 2005 -Aniston, Jennifer Horrible Bosses 2011 -Aniston, Jennifer Along Came Polly 2004 -Aniston, Jennifer Bruce Almighty 2003 -Aniston, Jennifer Just Go with It 2011 -Aniston, Jennifer Marley & Me 2008 -Aniston, Jennifer He's Just Not That Into You 2009 -Farese, Susan The Fighter 2010 -Farese, Susan Knight and Day 2010 -Farese, Susan Grown Ups 2010 -Farese, Susan Paul Blart: Mall Cop 2009 -Salgado, Luis (III) Step Up 2: The Streets 2008 -Salgado, Luis (III) Enchanted 2007 -Salgado, Luis (III) American Gangster 2007 -Weaver, Sigourney Alien: Resurrection 1997 -Weaver, Sigourney The Village 2004 -Weaver, Sigourney Baby Mama 2008 -Weaver, Sigourney Ghost Busters 1984 -Weaver, Sigourney Aliens 1986 -Weaver, Sigourney WALL·E 2008 -Weaver, Sigourney The Cabin in the Woods 2011 -Weaver, Sigourney The Tale of Despereaux 2008 -Weaver, Sigourney Alien³ 1992 -Weaver, Sigourney Vantage Point 2008 -Weaver, Sigourney Alien 1979 -Weaver, Sigourney Holes 2003 -Weaver, Sigourney Avatar 2009 -Weaver, Sigourney Galaxy Quest 1999 -Sheppard, Delia Any Given Sunday 1999 -Sheppard, Delia Race to Witch Mountain 2009 -Sheppard, Delia Rocky V 1990 -Sheppard, Delia What Happens in Vegas 2008 -Milicevic, Ivana Jerry Maguire 1996 -Milicevic, Ivana House on Haunted Hill 1999 -Milicevic, Ivana Paycheck 2003 -Milicevic, Ivana Love Actually 2003 -Milicevic, Ivana Casino Royale 2006 -Milicevic, Ivana Vanilla Sky 2001 -Milicevic, Ivana Enemy of the State 1998 -Milicevic, Ivana Just Like Heaven 2005 -Milicevic, Ivana In Her Shoes 2005 -Leaf, Richard The Fifth Element 1997 -Leaf, Richard Braveheart 1995 -Leaf, Richard Hannibal Rising 2007 -Leaf, Richard Harry Potter and the Order of the Phoenix 2007 -McKean, Michael (I) Small Soldiers 1998 -McKean, Michael (I) Little Nicky 2000 -McKean, Michael (I) Dr. Dolittle 2 2001 -McKean, Michael (I) Jack 1996 -McKean, Michael (I) Nothing to Lose 1997 -Bertrand, Jacob Little Fockers 2010 -Bertrand, Jacob The Smurfs 2011 -Bertrand, Jacob Water for Elephants 2011 -Davies, John S. JFK 1991 -Davies, John S. Magnolia 1999 -Davies, John S. RoboCop 1987 -Battee, Don X-Men Origins: Wolverine 2009 -Battee, Don Peter Pan 2003 -Battee, Don The Matrix Reloaded 2003 -Frierson, Eddie Curious George 2006 -Frierson, Eddie Chicken Little 2005 -Frierson, Eddie Moneyball 2011 -Frierson, Eddie Doctor Dolittle 1998 -Frierson, Eddie The Wild 2006 -Frierson, Eddie Barnyard 2006 -Frierson, Eddie The Princess and the Frog 2009 -Frierson, Eddie Life as We Know It 2010 -Frierson, Eddie Fly Me to the Moon 2008 -Nadler, Marty The Princess Diaries 2: Royal Engagement 2004 -Nadler, Marty Pretty Woman 1990 -Nadler, Marty Runaway Bride 1999 -Levine, Ted Ali 2001 -Levine, Ted American Gangster 2007 -Levine, Ted Flubber 1997 -Levine, Ted Memoirs of a Geisha 2005 -Levine, Ted Wild Wild West 1999 -Levine, Ted Heat 1995 -Levine, Ted The Silence of the Lambs 1991 -Levine, Ted Evolution 2001 -Levine, Ted The Fast and the Furious 2001 -Levine, Ted The Hills Have Eyes 2006 -Levine, Ted The Manchurian Candidate 2004 -Levine, Ted Shutter Island 2010 -Venegas, Arturo Bridget Jones: The Edge of Reason 2004 -Venegas, Arturo Notting Hill 1999 -Venegas, Arturo Love Actually 2003 -Ashmore, Shawn X2 2003 -Ashmore, Shawn X-Men: The Last Stand 2006 -Ashmore, Shawn X-Men 2000 -Lockhart, Anne (I) Hannah Montana: The Movie 2009 -Lockhart, Anne (I) Risky Business 1983 -Lockhart, Anne (I) It's Complicated 2009 -Lockhart, Anne (I) E.T.: The Extra-Terrestrial 1982 -Lockhart, Anne (I) Basic Instinct 1992 -Lockhart, Anne (I) The Time Traveler's Wife 2009 -Lockhart, Anne (I) Chicken Little 2005 -Lockhart, Anne (I) Bolt 2008 -Lockhart, Anne (I) Total Recall 1990 -Lockhart, Anne (I) The Little Mermaid 1989 -Rudulph, Ken Bruce Almighty 2003 -Rudulph, Ken Moneyball 2011 -Rudulph, Ken S.W.A.T. 2003 -Pounder, CCH Face/Off 1997 -Pounder, CCH End of Days 1999 -Pounder, CCH Avatar 2009 -Shaw, Bernard The Lost World: Jurassic Park 1997 -Shaw, Bernard Contact 1997 -Shaw, Bernard Fahrenheit 9/11 2004 -Chamberlain, Cabran E. The Heartbreak Kid 2007 -Chamberlain, Cabran E. Contagion 2011 -Chamberlain, Cabran E. Hereafter 2010 -Chamberlain, Cabran E. High Crimes 2002 -Chamberlain, Cabran E. The Pursuit of Happyness 2006 -Chamberlain, Cabran E. Moneyball 2011 -Walters, Mark Edward JFK 1991 -Walters, Mark Edward RoboCop 1987 -Walters, Mark Edward The Faculty 1998 -Walters, Mark Edward Any Given Sunday 1999 -Sagoes, Ken Intolerable Cruelty 2003 -Sagoes, Ken A Nightmare on Elm Street 3: Dream Warriors 1987 -Sagoes, Ken A Nightmare on Elm Street 4: The Dream Master 1988 -Saxon, Rolf Entrapment 1999 -Saxon, Rolf Saving Private Ryan 1998 -Saxon, Rolf Mission: Impossible 1996 -Saxon, Rolf Tomorrow Never Dies 1997 -Vartan, Michael One Hour Photo 2002 -Vartan, Michael Never Been Kissed 1999 -Vartan, Michael Monster-in-Law 2005 -Storey, John (I) Stargate 1994 -Storey, John (I) Universal Soldier 1992 -Storey, John (I) The Patriot 2000 -Storey, John (I) Independence Day 1996 -Metro, Tracy Dinosaur 2000 -Metro, Tracy TMNT 2007 -Metro, Tracy Final Fantasy: The Spirits Within 2001 -Boss, Stephen (II) Blades of Glory 2007 -Boss, Stephen (II) Hairspray 2007 -Boss, Stephen (II) Step Up 3D 2010 -Ware, Andre (I) Quantum of Solace 2008 -Ware, Andre (I) Hotel for Dogs 2009 -Ware, Andre (I) Meet the Robinsons 2007 -Ware, Andre (I) Die Hard: With a Vengeance 1995 -Ware, Andre (I) Fantastic Four 2005 -Thomas, David Jean G.I. Joe: The Rise of Cobra 2009 -Thomas, David Jean The Flintstones in Viva Rock Vegas 2000 -Thomas, David Jean Fight Club 1999 -Salata, Rocco Blue Streak 1999 -Salata, Rocco A Civil Action 1998 -Salata, Rocco Galaxy Quest 1999 -Salata, Rocco Primary Colors 1998 -Salata, Rocco L.A. Confidential 1997 -Bell, Drake Jerry Maguire 1996 -Bell, Drake High Fidelity 2000 -Bell, Drake Superhero Movie 2008 -Bell, Drake Yours, Mine and Ours 2005 -King, Tina (III) Baby Mama 2008 -King, Tina (III) Remember the Titans 2000 -King, Tina (III) The Brave One 2007 -Reubens, Paul Pee-wee's Big Adventure 1985 -Reubens, Paul The Nightmare Before Christmas 1993 -Reubens, Paul The Smurfs 2011 -Reubens, Paul Blow 2001 -Reubens, Paul Batman Returns 1992 -Reubens, Paul Matilda 1996 -Reubens, Paul Doctor Dolittle 1998 -Tomei, Adam The Truman Show 1998 -Tomei, Adam Independence Day 1996 -Tomei, Adam Hard Ball 2001 -Crewson, Wendy The 6th Day 2000 -Crewson, Wendy Air Force One 1997 -Crewson, Wendy Bicentennial Man 1999 -Crewson, Wendy What Lies Beneath 2000 -Crewson, Wendy The Vow 2012 -Crewson, Wendy Eight Below 2006 -Crewson, Wendy The Santa Clause 1994 -Crewson, Wendy The Santa Clause 3: The Escape Clause 2006 -Crewson, Wendy The Santa Clause 2 2002 -Davenport, Lucy Alice in Wonderland 2010 -Davenport, Lucy Dinner for Schmucks 2010 -Davenport, Lucy Gangs of New York 2002 -Short, Martin (I) Mars Attacks! 1996 -Short, Martin (I) Madagascar 3: Europe's Most Wanted 2012 -Short, Martin (I) Treasure Planet 2002 -Short, Martin (I) The Santa Clause 3: The Escape Clause 2006 -Short, Martin (I) The Prince of Egypt 1998 -Short, Martin (I) The Spiderwick Chronicles 2008 -Short, Martin (I) Jimmy Neutron: Boy Genius 2001 -Short, Martin (I) Jungle 2 Jungle 1997 -Craig, Thomas Joe Salt 2010 -Craig, Thomas Joe Night at the Museum: Battle of the Smithsonian 2009 -Craig, Thomas Joe Body of Lies 2008 -O'Neill, Terry (I) The League of Extraordinary Gentlemen 2003 -O'Neill, Terry (I) Entrapment 1999 -O'Neill, Terry (I) DragonHeart 1996 -O'Neill, Terry (I) Gangs of New York 2002 -Stein, Mary (I) Changeling 2008 -Stein, Mary (I) Men in Black II 2002 -Stein, Mary (I) Babe: Pig in the City 1998 -Stein, Mary (I) How the Grinch Stole Christmas 2000 -Mikkelsen, Mads Quantum of Solace 2008 -Mikkelsen, Mads King Arthur 2004 -Mikkelsen, Mads Casino Royale 2006 -Mikkelsen, Mads Clash of the Titans 2010 -Haskell, Christopher Eagle Eye 2008 -Haskell, Christopher The Santa Clause 3: The Escape Clause 2006 -Haskell, Christopher Yes Man 2008 -Paxton, Bill The Terminator 1984 -Paxton, Bill True Lies 1994 -Paxton, Bill U-571 2000 -Paxton, Bill Aliens 1986 -Paxton, Bill Apollo 13 1995 -Paxton, Bill Ghosts of the Abyss 2003 -Paxton, Bill Titanic 1997 -Paxton, Bill Magnificent Desolation: Walking on the Moon 3D 2005 -Paxton, Bill Stripes 1981 -Paxton, Bill Spy Kids 2: Island of Lost Dreams 2002 -Paxton, Bill Vertical Limit 2000 -Paxton, Bill Twister 1996 -Paxton, Bill Mighty Joe Young 1998 -Paxton, Bill Spy Kids 3-D: Game Over 2003 -Stellato, Frank Mona Lisa Smile 2003 -Stellato, Frank Inside Man 2006 -Stellato, Frank The Forgotten 2004 -Stellato, Frank Two Weeks Notice 2002 -McBrayer, Jack Talladega Nights: The Ballad of Ricky Bobby 2006 -McBrayer, Jack Forgetting Sarah Marshall 2008 -McBrayer, Jack Cats & Dogs: The Revenge of Kitty Galore 2010 -McBrayer, Jack Despicable Me 2010 -Hawk, Kali Couples Retreat 2009 -Hawk, Kali Bridesmaids 2011 -Hawk, Kali Get Him to the Greek 2010 -Gramm, Phillip Spider-Man 2 2004 -Gramm, Phillip The Island 2005 -Gramm, Phillip Herbie Fully Loaded 2005 -Barford, Ian Road to Perdition 2002 -Barford, Ian U.S. Marshals 1998 -Barford, Ian 13 Going on 30 2004 -Munroe, Jan Catch Me If You Can 2002 -Munroe, Jan A Few Good Men 1992 -Munroe, Jan Vanilla Sky 2001 -Munroe, Jan Poseidon 2006 -Runte, Kurt Max Underworld: Awakening 2012 -Runte, Kurt Max The Day the Earth Stood Still 2008 -Runte, Kurt Max AVPR: Aliens vs Predator - Requiem 2007 -Runte, Kurt Max X2 2003 -Zayas, David Michael Clayton 2007 -Zayas, David Skyline 2010 -Zayas, David Stepmom 1998 -Zayas, David The Expendables 2010 -Zayas, David The Interpreter 2005 -Goldberg, Whoopi Toy Story 3 2010 -Goldberg, Whoopi How Stella Got Her Groove Back 1998 -Goldberg, Whoopi Rat Race 2001 -Goldberg, Whoopi Ghost 1990 -Goldberg, Whoopi The Lion King 1994 -Goldberg, Whoopi Sister Act 1992 -Goldberg, Whoopi Star Trek: Nemesis 2002 -Goldberg, Whoopi The Pacifier 2005 -Goldberg, Whoopi Madea Goes to Jail 2009 -Goldberg, Whoopi Racing Stripes 2005 -Goldberg, Whoopi In & Out 1997 -Goldberg, Whoopi The Rugrats Movie 1998 -Goldberg, Whoopi The Muppets 2011 -Rule, Ja Scary Movie 3 2003 -Rule, Ja The Fast and the Furious 2001 -Rule, Ja Shall We Dance 2004 -Ridgely, Robert Philadelphia 1993 -Ridgely, Robert Boogie Nights 1997 -Ridgely, Robert Beverly Hills Cop II 1987 -Ganis, Sidney Indiana Jones and the Temple of Doom 1984 -Ganis, Sidney Click 2006 -Ganis, Sidney Mr. Deeds 2002 -Ganis, Sidney Little Nicky 2000 -Ganis, Sidney Anger Management 2003 -Ganis, Sidney You Don't Mess with the Zohan 2008 -Smith, Tim L. Evan Almighty 2007 -Smith, Tim L. The Jackal 1997 -Smith, Tim L. Mission: Impossible III 2006 -Berry Jr., Michael Where the Wild Things Are 2009 -Berry Jr., Michael Star Trek 2009 -Berry Jr., Michael The Hangover Part II 2011 -Berry Jr., Michael Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Berry Jr., Michael Mission: Impossible III 2006 -Fischman, Ruben Rocky Balboa 2006 -Fischman, Ruben The Happening 2008 -Fischman, Ruben Law Abiding Citizen 2009 -Guerra, Castulo The Mexican 2001 -Guerra, Castulo Amistad 1997 -Guerra, Castulo Terminator 2: Judgment Day 1991 -Winter, Ariel Curious George 2006 -Winter, Ariel Horton Hears a Who! 2008 -Winter, Ariel Speed Racer 2008 -Winter, Ariel Cloudy with a Chance of Meatballs 2009 -Winter, Ariel Killers 2010 -Winter, Ariel Ice Age: The Meltdown 2006 -Winter, Ariel Over the Hedge 2006 -Armour, Annabel Mercury Rising 1998 -Armour, Annabel Contagion 2011 -Armour, Annabel The Amityville Horror 2005 -Neuwirth, Bebe How to Lose a Guy in 10 Days 2003 -Neuwirth, Bebe The Faculty 1998 -Neuwirth, Bebe Jumanji 1995 -Cusack, Joan The School of Rock 2003 -Cusack, Joan In & Out 1997 -Cusack, Joan Confessions of a Shopaholic 2009 -Cusack, Joan Toy Story 3 2010 -Cusack, Joan High Fidelity 2000 -Cusack, Joan Where the Heart Is 2000 -Cusack, Joan Chicken Little 2005 -Cusack, Joan My Sister's Keeper 2009 -Cusack, Joan Toy Story 2 1999 -Cusack, Joan Runaway Bride 1999 -Cusack, Joan Raising Helen 2004 -Leto, Jared Panic Room 2002 -Leto, Jared Alexander 2004 -Leto, Jared Urban Legend 1998 -Leto, Jared Fight Club 1999 -Leto, Jared The Thin Red Line 1998 -Braddy, Johanna Paranormal Activity 3 2011 -Braddy, Johanna Surf's Up 2007 -Braddy, Johanna Easy A 2010 -Braddy, Johanna Gake no ue no Ponyo 2008 -Clem, Frank Austin Powers: The Spy Who Shagged Me 1999 -Clem, Frank The Rainmaker 1997 -Clem, Frank Jurassic Park III 2001 -West, Dominic John Carter 2012 -West, Dominic 300 2006 -West, Dominic Johnny English Reborn 2011 -West, Dominic Mona Lisa Smile 2003 -West, Dominic Hannibal Rising 2007 -West, Dominic Spice World 1997 -West, Dominic 28 Days 2000 -West, Dominic Chicago 2002 -West, Dominic Star Wars: Episode I - The Phantom Menace 1999 -West, Dominic The Forgotten 2004 -Hu, Kelly The Scorpion King 2002 -Hu, Kelly Terminator Salvation 2009 -Hu, Kelly X2 2003 -Robertson, Kimmy Beauty and the Beast 1991 -Robertson, Kimmy Speed 2: Cruise Control 1997 -Robertson, Kimmy Stuart Little 1999 -Robertson, Kimmy The Little Mermaid 1989 -Fisher, Stephen (I) Hellboy 2004 -Fisher, Stephen (I) Van Helsing 2004 -Fisher, Stephen (I) Shanghai Knights 2003 -Torn, Rip The Insider 1999 -Torn, Rip Yours, Mine and Ours 2005 -Torn, Rip Wonder Boys 2000 -Torn, Rip Men in Black 3 2012 -Torn, Rip Bee Movie 2007 -Torn, Rip Hercules 1997 -Torn, Rip Men in Black 1997 -Torn, Rip Men in Black II 2002 -Torn, Rip Dodgeball: A True Underdog Story 2004 -Larsgard, Tonje Flightplan 2005 -Larsgard, Tonje Raising Helen 2004 -Larsgard, Tonje The Princess Diaries 2001 -Kightlinger, Laura The Shaggy Dog 2006 -Kightlinger, Laura Must Love Dogs 2005 -Kightlinger, Laura Daddy Day Care 2003 -Kightlinger, Laura Kung Fu Panda 2008 -Kightlinger, Laura Shallow Hal 2001 -Kightlinger, Laura Kicking & Screaming 2005 -Kightlinger, Laura Anchorman: The Legend of Ron Burgundy 2004 -Hack, Steven The Master of Disguise 2002 -Hack, Steven S.W.A.T. 2003 -Hack, Steven Minority Report 2002 -Black, Lucas (II) Legion 2009 -Black, Lucas (II) Jarhead 2005 -Black, Lucas (II) Cold Mountain 2003 -Black, Lucas (II) The X Files 1998 -Black, Lucas (II) Friday Night Lights 2004 -Black, Lucas (II) The Fast and the Furious: Tokyo Drift 2006 -Agranov, David Salt 2010 -Agranov, David X-Men: First Class 2011 -Agranov, David Just Married 2003 -Deschanel, Emily My Sister's Keeper 2009 -Deschanel, Emily Cold Mountain 2003 -Deschanel, Emily Spider-Man 2 2004 -Deschanel, Emily Glory Road 2006 -Kaczorowski, Nina The Rundown 2003 -Kaczorowski, Nina Austin Powers in Goldmember 2002 -Kaczorowski, Nina Minority Report 2002 -Mullally, Megan About Last Night... 1986 -Mullally, Megan Risky Business 1983 -Mullally, Megan Bee Movie 2007 -Law, Maximilian The Green Hornet 2011 -Law, Maximilian It's Complicated 2009 -Law, Maximilian Mr. Magorium's Wonder Emporium 2007 -Law, Maximilian Clash of the Titans 2010 -McManus, Don (I) National Treasure 2004 -McManus, Don (I) Under the Tuscan Sun 2003 -McManus, Don (I) Hannibal 2001 -McManus, Don (I) Magnolia 1999 -McManus, Don (I) Ocean's Thirteen 2007 -McManus, Don (I) Air Force One 1997 -McManus, Don (I) The 6th Day 2000 -Johnston, Jay (I) Anchorman: The Legend of Ron Burgundy 2004 -Johnston, Jay (I) The Master of Disguise 2002 -Johnston, Jay (I) Men in Black II 2002 -Johnston, Jay (I) Bicentennial Man 1999 -Bishop, Stephen (II) Battleship 2012 -Bishop, Stephen (II) Moneyball 2011 -Bishop, Stephen (II) The Rundown 2003 -Bishop, Stephen (II) Safe House 2012 -Bishop, Stephen (II) Friday Night Lights 2004 -Bishop, Stephen (II) Hancock 2008 -Bishop, Stephen (II) The Town 2010 -Bekins, Richard Julie & Julia 2009 -Bekins, Richard United 93 2006 -Bekins, Richard Limitless 2011 -Gresham, Douglas The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Gresham, Douglas The Chronicles of Narnia: Prince Caspian 2008 -Gresham, Douglas The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -McGill, Bruce Ali 2001 -McGill, Bruce Exit Wounds 2001 -McGill, Bruce Collateral 2004 -McGill, Bruce Shallow Hal 2001 -McGill, Bruce The Insider 1999 -McGill, Bruce Cinderella Man 2005 -McGill, Bruce Law Abiding Citizen 2009 -McGill, Bruce The Sum of All Fears 2002 -McGill, Bruce Timecop 1994 -McGill, Bruce Legally Blonde 2: Red, White & Blonde 2003 -McGill, Bruce Matchstick Men 2003 -McGill, Bruce Vantage Point 2008 -McGill, Bruce Runaway Jury 2003 -McGill, Bruce Cliffhanger 1993 -McGill, Bruce Courage Under Fire 1996 -Molen, Gerald R. Catch Me If You Can 2002 -Molen, Gerald R. Jurassic Park 1993 -Molen, Gerald R. Rain Man 1988 -Molen, Gerald R. Amistad 1997 -Swayze, Patrick Ghost 1990 -Swayze, Patrick Dirty Dancing 1987 -Swayze, Patrick The Pacifier 2005 -Sivero, Frank (I) Ruthless People 1986 -Sivero, Frank (I) Little Nicky 2000 -Sivero, Frank (I) The Wedding Singer 1998 -Sivero, Frank (I) The Godfather 1972 -Sivero, Frank (I) The Aviator 2004 -Hodgson, Bryce X2 2003 -Hodgson, Bryce Diary of a Wimpy Kid: Rodrick Rules 2011 -Hodgson, Bryce The Santa Clause 2 2002 -Hodgson, Bryce X-Men: The Last Stand 2006 -Slaten, Frank The Talented Mr. Ripley 1999 -Slaten, Frank Mickey Blue Eyes 1999 -Slaten, Frank As Good as It Gets 1997 -Enos III, John The Rock 1996 -Enos III, John Blade 1998 -Enos III, John Phone Booth 2002 -Jonze, Spike Where the Wild Things Are 2009 -Jonze, Spike Jackass 3D 2010 -Jonze, Spike Moneyball 2011 -Jonze, Spike Being John Malkovich 1999 -Jonze, Spike The Game 1997 -Jonze, Spike Three Kings 1999 -Ricci, Christina Casper 1995 -Ricci, Christina Small Soldiers 1998 -Ricci, Christina Sleepy Hollow 1999 -Ricci, Christina Monster 2003 -Ricci, Christina Speed Racer 2008 -Levinson, Tamara Step Up 3D 2010 -Levinson, Tamara Footloose 2011 -Levinson, Tamara The Princess Diaries 2001 -Corman, Maddie What Happens in Vegas 2008 -Corman, Maddie Maid in Manhattan 2002 -Corman, Maddie Mickey Blue Eyes 1999 -Thompson, Al (II) The Royal Tenenbaums 2001 -Thompson, Al (II) A Walk to Remember 2002 -Thompson, Al (II) Shaft 2000 -Lyman, Dorothy Blow 2001 -Lyman, Dorothy The Departed 2006 -Lyman, Dorothy World Trade Center 2006 -Greer, Stuart I Know What You Did Last Summer 1997 -Greer, Stuart Runaway Jury 2003 -Greer, Stuart Remember the Titans 2000 -Greer, Stuart Glory Road 2006 -Smith, Shawnee Saw II 2005 -Smith, Shawnee Saw V 2008 -Smith, Shawnee Saw III 2006 -Smith, Shawnee Saw IV 2007 -Smith, Shawnee The Island 2005 -Smith, Shawnee Saw 2004 -Smith, Shawnee Armageddon 1998 -Finnegan, John (I) Vegas Vacation 1997 -Finnegan, John (I) JFK 1991 -Finnegan, John (I) Mars Attacks! 1996 -Finnegan, John (I) The Natural 1984 -Finnegan, John (I) Last Action Hero 1993 -Schilling, William G. Ruthless People 1986 -Schilling, William G. Space Jam 1996 -Schilling, William G. In the Line of Fire 1993 -Schilling, William G. Glory Road 2006 -Browne, Roscoe Lee Treasure Planet 2002 -Browne, Roscoe Lee Epic Movie 2007 -Browne, Roscoe Lee Garfield: A Tail of Two Kitties 2006 -Browne, Roscoe Lee Babe: Pig in the City 1998 -Browne, Roscoe Lee Babe 1995 -Wallace, Julie T. The Fifth Element 1997 -Wallace, Julie T. Speed Racer 2008 -Wallace, Julie T. The Living Daylights 1987 -Boeving, Christian Batman & Robin 1997 -Boeving, Christian Kingdom of Heaven 2005 -Boeving, Christian Daredevil 2003 -Brimley, Wilford Absence of Malice 1981 -Brimley, Wilford The Firm 1993 -Brimley, Wilford In & Out 1997 -Brimley, Wilford The Natural 1984 -Sanchez, Marco (I) The Rookie 2002 -Sanchez, Marco (I) Super 8 2011 -Sanchez, Marco (I) American Pie 2 2001 -Cohen, Natalie (III) Alvin and the Chipmunks 2007 -Cohen, Natalie (III) Date Night 2010 -Cohen, Natalie (III) The Hangover 2009 -Cohen, Natalie (III) Ocean's Thirteen 2007 -Cohen, Natalie (III) Tropic Thunder 2008 -Lancaster, James (I) Die Hard 2 1990 -Lancaster, James (I) Titanic 1997 -Lancaster, James (I) Pirates of the Caribbean: At World's End 2007 -Lancaster, James (I) The Prestige 2006 -Ehle, Jennifer The Ides of March 2011 -Ehle, Jennifer Contagion 2011 -Ehle, Jennifer The Adjustment Bureau 2011 -Ehle, Jennifer The King's Speech 2010 -Weston, Michael (I) Garden State 2004 -Weston, Michael (I) Coyote Ugly 2000 -Weston, Michael (I) The Dukes of Hazzard 2005 -Crews, Terry (I) The 6th Day 2000 -Crews, Terry (I) Norbit 2007 -Crews, Terry (I) Terminator Salvation 2009 -Crews, Terry (I) The Longest Yard 2005 -Crews, Terry (I) Starsky & Hutch 2004 -Crews, Terry (I) Training Day 2001 -Crews, Terry (I) The Expendables 2010 -Crews, Terry (I) Get Smart 2008 -Crews, Terry (I) Bridesmaids 2011 -Crews, Terry (I) Click 2006 -Crews, Terry (I) White Chicks 2004 -Hathaway, Anne Brokeback Mountain 2005 -Hathaway, Anne Bride Wars 2009 -Hathaway, Anne The Princess Diaries 2001 -Hathaway, Anne Rio 2011 -Hathaway, Anne Alice in Wonderland 2010 -Hathaway, Anne Get Smart 2008 -Hathaway, Anne Hoodwinked! 2005 -Hathaway, Anne The Devil Wears Prada 2006 -Hathaway, Anne The Princess Diaries 2: Royal Engagement 2004 -Shankman, Adam Hairspray 2007 -Shankman, Adam Cheaper by the Dozen 2 2005 -Shankman, Adam The Pacifier 2005 -Shankman, Adam A Walk to Remember 2002 -Shankman, Adam Step Up 2006 -Shankman, Adam Scream 2 1997 -Kier, Udo Blade 1998 -Kier, Udo Halloween 2007 -Kier, Udo Armageddon 1998 -Kier, Udo End of Days 1999 -Bair, John D. Amistad 1997 -Bair, John D. Mr. Deeds 2002 -Bair, John D. Men in Black II 2002 -Bair, John D. Malcolm X 1992 -Bair, John D. Across the Sea of Time 1995 -Spielberg, Sasha Munich 2005 -Spielberg, Sasha The Terminal 2004 -Spielberg, Sasha Indiana Jones and the Kingdom of the Crystal Skull 2008 -Tagawa, Cary-Hiroyuki Licence to Kill 1989 -Tagawa, Cary-Hiroyuki Mortal Kombat 1995 -Tagawa, Cary-Hiroyuki Memoirs of a Geisha 2005 -Tagawa, Cary-Hiroyuki Pearl Harbor 2001 -Green, Marrett Final Destination 2000 -Green, Marrett I, Robot 2004 -Green, Marrett Final Destination 2 2003 -Green, Marrett X2 2003 -Gill, Tanner The Green Hornet 2011 -Gill, Tanner xXx 2002 -Gill, Tanner Universal Soldier 1992 -Termath, Steve J. Jerry Maguire 1996 -Termath, Steve J. The Longest Yard 2005 -Termath, Steve J. Dogma 1999 -Termath, Steve J. Bowfinger 1999 -Termath, Steve J. Wedding Crashers 2005 -Thomas, Jake (I) The Cell 2000 -Thomas, Jake (I) The Lizzie McGuire Movie 2003 -Thomas, Jake (I) Artificial Intelligence: AI 2001 -Mucci, Adam The Family Man 2000 -Mucci, Adam Public Enemies 2009 -Mucci, Adam Men in Black 3 2012 -Campbell, Rich (I) The Devil's Advocate 1997 -Campbell, Rich (I) Date Night 2010 -Campbell, Rich (I) The Sorcerer's Apprentice 2010 -Campbell, Rich (I) Eat Pray Love 2010 -Binoche, Juliette Chocolat 2000 -Binoche, Juliette The English Patient 1996 -Binoche, Juliette Dan in Real Life 2007 -Hobart, Deborah Divine Secrets of the Ya-Ya Sisterhood 2002 -Hobart, Deborah I Know What You Did Last Summer 1997 -Hobart, Deborah The Notebook 2004 -Gleason, Mary Pat The Island 2005 -Gleason, Mary Pat Intolerable Cruelty 2003 -Gleason, Mary Pat Basic Instinct 1992 -Gleason, Mary Pat 13 Going on 30 2004 -Gleason, Mary Pat Evolution 2001 -Gleason, Mary Pat I Now Pronounce You Chuck & Larry 2007 -Gleason, Mary Pat Bruce Almighty 2003 -Gleason, Mary Pat Traffic 2000 -Gleason, Mary Pat A Cinderella Story 2004 -Meyers, Rusty Pay It Forward 2000 -Meyers, Rusty Rat Race 2001 -Meyers, Rusty Ocean's Eleven 2001 -Meyers, Rusty Vegas Vacation 1997 -Martin, Nan (I) Cast Away 2000 -Martin, Nan (I) A Nightmare on Elm Street 3: Dream Warriors 1987 -Martin, Nan (I) Shallow Hal 2001 -Wu, Tom Lara Croft Tomb Raider: The Cradle of Life 2003 -Wu, Tom Shanghai Knights 2003 -Wu, Tom Batman Begins 2005 -Taylor, Holland Keeping the Faith 2000 -Taylor, Holland One Fine Day 1996 -Taylor, Holland Baby Mama 2008 -Taylor, Holland Legally Blonde 2001 -Taylor, Holland The Truman Show 1998 -Taylor, Holland George of the Jungle 1997 -Taylor, Holland Spy Kids 2: Island of Lost Dreams 2002 -Taylor, Holland The Jewel of the Nile 1985 -Taylor, Holland Spy Kids 3-D: Game Over 2003 -Taylor, Holland Romancing the Stone 1984 -Loew, Sarah America's Sweethearts 2001 -Loew, Sarah Christmas with the Kranks 2004 -Loew, Sarah 13 Going on 30 2004 -Abraham, F. Murray Amadeus 1984 -Abraham, F. Murray Finding Forrester 2000 -Abraham, F. Murray Last Action Hero 1993 -Abraham, F. Murray Star Trek: Insurrection 1998 -Ménochet, Denis Hannibal Rising 2007 -Ménochet, Denis Robin Hood 2010 -Ménochet, Denis Inglourious Basterds 2009 -Smith, Terry Lee X-Men Origins: Wolverine 2009 -Smith, Terry Lee Green Lantern 2011 -Smith, Terry Lee The Final Destination 2009 -Smith, Terry Lee The Curious Case of Benjamin Button 2008 -Steele, Nick (I) Epic Movie 2007 -Steele, Nick (I) Meet the Spartans 2008 -Steele, Nick (I) Date Movie 2006 -Hale, Jennifer (I) Unbreakable 2000 -Hale, Jennifer (I) Cars 2006 -Hale, Jennifer (I) TMNT 2007 -Hale, Jennifer (I) The Da Vinci Code 2006 -Hale, Jennifer (I) The Mummy Returns 2001 -Hale, Jennifer (I) Clash of the Titans 2010 -Hale, Jennifer (I) Finding Nemo 2003 -Burtt, Ben Star Wars: Episode VI - Return of the Jedi 1983 -Burtt, Ben Star Wars: Episode I - The Phantom Menace 1999 -Burtt, Ben WALL·E 2008 -Rosas, Louis E. The Family Man 2000 -Rosas, Louis E. Volcano 1997 -Rosas, Louis E. Bedazzled 2000 -Rosas, Louis E. Bean 1997 -Rosas, Louis E. Almost Famous 2000 -Rosas, Louis E. Vanilla Sky 2001 -Muellerleile, Marianne Jingle All the Way 1996 -Muellerleile, Marianne Norbit 2007 -Muellerleile, Marianne One Fine Day 1996 -Muellerleile, Marianne Liar Liar 1997 -Muellerleile, Marianne The Terminator 1984 -Muellerleile, Marianne Return to Me 2000 -Muellerleile, Marianne Thank You for Smoking 2005 -Muellerleile, Marianne Memento 2000 -Hart, Kevin (I) Along Came Polly 2004 -Hart, Kevin (I) Little Fockers 2010 -Hart, Kevin (I) Scary Movie 3 2003 -Hart, Kevin (I) Think Like a Man 2012 -Hart, Kevin (I) Scary Movie 4 2006 -Hart, Kevin (I) The 40 Year Old Virgin 2005 -Hart, Kevin (I) Epic Movie 2007 -Hart, Kevin (I) Superhero Movie 2008 -Hart, Kevin (I) Death at a Funeral 2010 -Young, Brad Everett Jurassic Park III 2001 -Young, Brad Everett Charlie's Angels 2000 -Young, Brad Everett I Love You, Man 2009 -Young, Brad Everett Rumor Has It... 2005 -Young, Brad Everett Men of Honor 2000 -Young, Brad Everett The Artist 2011 -Singleton Jr., Isaac C. Galaxy Quest 1999 -Singleton Jr., Isaac C. Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Singleton Jr., Isaac C. Anger Management 2003 -Singleton Jr., Isaac C. Transformers: Dark of the Moon 2011 -Singleton Jr., Isaac C. Charlie's Angels 2000 -Daniels, Jeff (I) Dumb & Dumber 1994 -Daniels, Jeff (I) Space Chimps 2008 -Daniels, Jeff (I) Speed 1994 -Daniels, Jeff (I) Terms of Endearment 1983 -Daniels, Jeff (I) The Hours 2002 -Daniels, Jeff (I) 101 Dalmatians 1996 -Daniels, Jeff (I) My Favorite Martian 1999 -Daniels, Jeff (I) RV 2006 -Daniels, Jeff (I) Pleasantville 1998 -Daniels, Jeff (I) Because of Winn-Dixie 2005 -Daniels, Jeff (I) Good Night, and Good Luck. 2005 -Sorich, Michael Curious George 2006 -Sorich, Michael Sea Monsters: A Prehistoric Adventure 2007 -Sorich, Michael Scooby Doo 2: Monsters Unleashed 2004 -Sorich, Michael Star Wars: Episode I - The Phantom Menace 1999 -O'Dowd, Chris (I) Dinner for Schmucks 2010 -O'Dowd, Chris (I) Bridesmaids 2011 -O'Dowd, Chris (I) Gulliver's Travels 2010 -Tsou, Yee Spy Game 2001 -Tsou, Yee Sky Captain and the World of Tomorrow 2004 -Tsou, Yee Batman Begins 2005 -Leasca, Tom Shallow Hal 2001 -Leasca, Tom Dumb & Dumber 1994 -Leasca, Tom There's Something About Mary 1998 -Leasca, Tom Me, Myself & Irene 2000 -Pankin, Stuart Fatal Attraction 1987 -Pankin, Stuart Congo 1995 -Pankin, Stuart Striptease 1996 -Pankin, Stuart Encounter in the Thrid Dimension 1999 -Pankin, Stuart The Artist 2011 -Bender, Lawrence The Mexican 2001 -Bender, Lawrence Pulp Fiction 1994 -Bender, Lawrence Kill Bill: Vol. 2 2004 -Rockwell, Sam Charlie's Angels 2000 -Rockwell, Sam Matchstick Men 2003 -Rockwell, Sam G-Force 2009 -Rockwell, Sam The Hitchhiker's Guide to the Galaxy 2005 -Rockwell, Sam Galaxy Quest 1999 -Rockwell, Sam Iron Man 2 2010 -Rockwell, Sam Cowboys & Aliens 2011 -Rockwell, Sam The Green Mile 1999 -Ritz, James (I) Ransom 1996 -Ritz, James (I) Apollo 13 1995 -Ritz, James (I) Cinderella Man 2005 -Ritz, James (I) Angels & Demons 2009 -Ritz, James (I) Gung Ho 1986 -Ritz, James (I) How the Grinch Stole Christmas 2000 -Ebersole, Christine Tootsie 1982 -Ebersole, Christine Confessions of a Shopaholic 2009 -Ebersole, Christine Amadeus 1984 -Ebersole, Christine My Favorite Martian 1999 -Robbins, Tim (I) Top Gun 1986 -Robbins, Tim (I) Austin Powers: The Spy Who Shagged Me 1999 -Robbins, Tim (I) Zathura: A Space Adventure 2005 -Robbins, Tim (I) Mission to Mars 2000 -Robbins, Tim (I) High Fidelity 2000 -Robbins, Tim (I) Green Lantern 2011 -Robbins, Tim (I) Nothing to Lose 1997 -Robbins, Tim (I) Mystic River 2003 -Robbins, Tim (I) Anchorman: The Legend of Ron Burgundy 2004 -Boyle, Felix J. Poseidon 2006 -Boyle, Felix J. Dreamgirls 2006 -Boyle, Felix J. Good Night, and Good Luck. 2005 -Boyle, Felix J. Evan Almighty 2007 -Boyle, Felix J. Ocean's Thirteen 2007 -Chase, Daveigh (I) The Ring 2002 -Chase, Daveigh (I) Artificial Intelligence: AI 2001 -Chase, Daveigh (I) Sen to Chihiro no kamikakushi 2001 -Chase, Daveigh (I) Lilo & Stitch 2002 -Chase, Daveigh (I) The Ring Two 2005 -Scott, Seann William Jackass 3D 2010 -Scott, Seann William Planet 51 2009 -Scott, Seann William Old School 2003 -Scott, Seann William Role Models 2008 -Scott, Seann William Ice Age: Dawn of the Dinosaurs 2009 -Scott, Seann William Dude, Where's My Car? 2000 -Scott, Seann William American Pie 1999 -Scott, Seann William American Pie 2 2001 -Scott, Seann William The Rundown 2003 -Scott, Seann William Road Trip 2000 -Scott, Seann William Cop Out 2010 -Scott, Seann William Evolution 2001 -Scott, Seann William American Wedding 2003 -Scott, Seann William Ice Age: The Meltdown 2006 -Scott, Seann William Final Destination 2000 -Scott, Seann William American Reunion 2012 -Scott, Seann William The Dukes of Hazzard 2005 -Beckinsale, Kate Serendipity 2001 -Beckinsale, Kate Underworld: Rise of the Lycans 2009 -Beckinsale, Kate Underworld 2003 -Beckinsale, Kate Van Helsing 2004 -Beckinsale, Kate The Aviator 2004 -Beckinsale, Kate Underworld: Awakening 2012 -Beckinsale, Kate Pearl Harbor 2001 -Beckinsale, Kate Underworld: Evolution 2006 -Beckinsale, Kate Contraband 2012 -Beckinsale, Kate Click 2006 -Casseus, Gabriel G-Force 2009 -Casseus, Gabriel Black Hawk Down 2001 -Casseus, Gabriel Bedazzled 2000 -Kunis, Mila Date Night 2010 -Kunis, Mila Forgetting Sarah Marshall 2008 -Kunis, Mila The Book of Eli 2010 -Kunis, Mila Friends with Benefits 2011 -Kunis, Mila Black Swan 2010 -Kunis, Mila Max Payne 2008 -de la Tour, Frances Harry Potter and the Goblet of Fire 2005 -de la Tour, Frances Harry Potter and the Deathly Hallows: Part 1 2010 -de la Tour, Frances The Book of Eli 2010 -de la Tour, Frances Alice in Wonderland 2010 -Barnbrook, Jacquie Shrek 2001 -Barnbrook, Jacquie The Adventures of Tintin 2011 -Barnbrook, Jacquie A Christmas Carol 2009 -Barnbrook, Jacquie Beowulf 2007 -Barnbrook, Jacquie Ocean's Thirteen 2007 -Ferguson, Stacy Madagascar: Escape 2 Africa 2008 -Ferguson, Stacy Poseidon 2006 -Ferguson, Stacy Marmaduke 2010 -Livingston, Barry The Social Network 2010 -Livingston, Barry You Don't Mess with the Zohan 2008 -Livingston, Barry Horrible Bosses 2011 -Williams, Gregory Alan Remember the Titans 2000 -Williams, Gregory Alan In the Line of Fire 1993 -Williams, Gregory Alan Old School 2003 -Jacott, Carlos Fun with Dick and Jane 2005 -Jacott, Carlos She's All That 1999 -Jacott, Carlos Get Him to the Greek 2010 -Jacott, Carlos Being John Malkovich 1999 -Powledge, David The Green Hornet 2011 -Powledge, David Evan Almighty 2007 -Powledge, David Rat Race 2001 -Powledge, David Million Dollar Baby 2004 -Powledge, David The Princess Diaries 2: Royal Engagement 2004 -Giavasis, Nikki Eagle Eye 2008 -Giavasis, Nikki Tin Cup 1996 -Giavasis, Nikki You Don't Mess with the Zohan 2008 -Martinez, Olivier (I) S.W.A.T. 2003 -Martinez, Olivier (I) Unfaithful 2002 -Martinez, Olivier (I) Knight and Day 2010 -Afshar, Ali Godzilla 1998 -Afshar, Ali The Siege 1998 -Afshar, Ali Three Kings 1999 -Afshar, Ali He's Just Not That Into You 2009 -Conway, Denis Alexander 2004 -Conway, Denis Reign of Fire 2002 -Conway, Denis Michael Collins 1996 -Stanford, Aaron X2 2003 -Stanford, Aaron The Hills Have Eyes 2006 -Stanford, Aaron X-Men: The Last Stand 2006 -Chon, Justin The Twilight Saga: Breaking Dawn - Part 1 2011 -Chon, Justin New Moon 2009 -Chon, Justin The Twilight Saga: Eclipse 2010 -Weaver, Lee (II) Godzilla 1998 -Weaver, Lee (II) How Stella Got Her Groove Back 1998 -Weaver, Lee (II) The 40 Year Old Virgin 2005 -Weaver, Lee (II) O Brother, Where Art Thou? 2000 -Bonner, Ian (II) Limitless 2011 -Bonner, Ian (II) Law Abiding Citizen 2009 -Bonner, Ian (II) Transformers: Dark of the Moon 2011 -Cave, Jessie Harry Potter and the Deathly Hallows: Part 1 2010 -Cave, Jessie Harry Potter and the Deathly Hallows: Part 2 2011 -Cave, Jessie Harry Potter and the Half-Blood Prince 2009 -Messing, Debra Along Came Polly 2004 -Messing, Debra Open Season 2006 -Messing, Debra Garfield 2004 -Nicholson, Jack (I) Anger Management 2003 -Nicholson, Jack (I) A Few Good Men 1992 -Nicholson, Jack (I) Batman 1989 -Nicholson, Jack (I) Mars Attacks! 1996 -Nicholson, Jack (I) The Bucket List 2007 -Nicholson, Jack (I) Terms of Endearment 1983 -Nicholson, Jack (I) The Departed 2006 -Nicholson, Jack (I) Something's Gotta Give 2003 -Nicholson, Jack (I) About Schmidt 2002 -Nicholson, Jack (I) As Good as It Gets 1997 -Pierce, Ernest Fred Claus 2007 -Pierce, Ernest In Time 2011 -Pierce, Ernest Batman Begins 2005 -Smith, Yeardley Jingle All the Way 1996 -Smith, Yeardley New Year's Eve 2011 -Smith, Yeardley The Simpsons Movie 2007 -Smith, Yeardley CyberWorld 2000 -Smith, Yeardley As Good as It Gets 1997 -Meyerson, Ben (I) Funny People 2009 -Meyerson, Ben (I) Knocked Up 2007 -Meyerson, Ben (I) Speed 2: Cruise Control 1997 -Curry, Tim (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Curry, Tim (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Curry, Tim (I) The Wild Thornberrys Movie 2002 -Curry, Tim (I) The Rugrats Movie 1998 -Curry, Tim (I) Fly Me to the Moon 2008 -Curry, Tim (I) Rugrats Go Wild 2003 -Curry, Tim (I) Congo 1995 -Curry, Tim (I) Scary Movie 2 2001 -Curry, Tim (I) Home Alone 2: Lost in New York 1992 -Curry, Tim (I) Charlie's Angels 2000 -Curry, Tim (I) Garfield: A Tail of Two Kitties 2006 -Curry, Tim (I) The Hunt for Red October 1990 -Curry, Tim (I) The Little Mermaid 1989 -Pike, Rosamund Johnny English Reborn 2011 -Pike, Rosamund Die Another Day 2002 -Pike, Rosamund Wrath of the Titans 2012 -Pike, Rosamund Pride & Prejudice 2005 -Strong, Tara Rugrats in Paris: The Movie - Rugrats II 2000 -Strong, Tara Sen to Chihiro no kamikakushi 2001 -Strong, Tara How to Train Your Dragon 2010 -Strong, Tara The Rugrats Movie 1998 -Strong, Tara Minority Report 2002 -Strong, Tara Ice Age: Dawn of the Dinosaurs 2009 -Strong, Tara Rugrats Go Wild 2003 -Strong, Tara TMNT 2007 -Strong, Tara The Wild Thornberrys Movie 2002 -Strong, Tara Shark Tale 2004 -Strong, Tara Hoodwinked! 2005 -Strong, Tara Ice Age 2002 -Strong, Tara Chicken Little 2005 -Strong, Tara Bolt 2008 -Strong, Tara Clash of the Titans 2010 -Strong, Tara Shrek 2 2004 -Burton, Corey (I) Hercules 1997 -Burton, Corey (I) Return to Never Land 2002 -Burton, Corey (I) The Incredibles 2004 -Burton, Corey (I) Atlantis: The Lost Empire 2001 -Burton, Corey (I) The Princess and the Frog 2009 -Burton, Corey (I) Tarzan 1999 -Burton, Corey (I) The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Burton, Corey (I) Treasure Planet 2002 -Burton, Corey (I) Cars 2006 -Burton, Corey (I) Star Wars: Episode III - Revenge of the Sith 2005 -Burton, Corey (I) The Hunchback of Notre Dame 1996 -Burton, Corey (I) The Haunted Mansion 2003 -Burton, Corey (I) Aladdin 1992 -Burton, Corey (I) Toy Story 2 1999 -Burton, Corey (I) Mulan 1998 -Burton, Corey (I) The A-Team 2010 -Breslin, Abigail Rango 2011 -Breslin, Abigail Little Miss Sunshine 2006 -Breslin, Abigail The Santa Clause 3: The Escape Clause 2006 -Breslin, Abigail My Sister's Keeper 2009 -Breslin, Abigail Zombieland 2009 -Breslin, Abigail New Year's Eve 2011 -Breslin, Abigail Nim's Island 2008 -Breslin, Abigail Raising Helen 2004 -Breslin, Abigail Signs 2002 -Breslin, Abigail The Princess Diaries 2: Royal Engagement 2004 -Breslin, Abigail No Reservations 2007 -Pastorelli, Robert Dances with Wolves 1990 -Pastorelli, Robert Michael 1996 -Pastorelli, Robert Eraser 1996 -Pastorelli, Robert Beverly Hills Cop II 1987 -Rye, Joseph Batman Begins 2005 -Rye, Joseph AVP: Alien vs. Predator 2004 -Rye, Joseph V for Vendetta 2005 -Kennedy, Mimi Erin Brockovich 2000 -Kennedy, Mimi Midnight in Paris 2011 -Kennedy, Mimi Due Date 2010 -Fischer, Jeff (I) Dinosaur 2000 -Fischer, Jeff (I) Lilo & Stitch 2002 -Fischer, Jeff (I) Happy Feet 2006 -Wooten, John (III) Invincible 2006 -Wooten, John (III) Law Abiding Citizen 2009 -Wooten, John (III) The Happening 2008 -Sako, Sam Hidalgo 2004 -Sako, Sam Down and Out in Beverly Hills 1986 -Sako, Sam Beverly Hills Cop II 1987 -Pla, Conrad Max Payne 2008 -Pla, Conrad The Sum of All Fears 2002 -Pla, Conrad The Terminal 2004 -Pla, Conrad Immortals 2011 -Lyonne, Natasha Blade: Trinity 2004 -Lyonne, Natasha Scary Movie 2 2001 -Lyonne, Natasha Robots 2005 -Lyonne, Natasha American Pie 1999 -Lyonne, Natasha American Reunion 2012 -Lyonne, Natasha American Pie 2 2001 -Lyonne, Natasha Old School 2003 -Chouinard, Abra Poseidon 2006 -Chouinard, Abra Mission: Impossible III 2006 -Chouinard, Abra Click 2006 -Damon, Matt Dogma 1999 -Damon, Matt The Adjustment Bureau 2011 -Damon, Matt Ocean's Eleven 2001 -Damon, Matt The Brothers Grimm 2005 -Damon, Matt Finding Forrester 2000 -Damon, Matt Syriana 2005 -Damon, Matt Contagion 2011 -Damon, Matt Invictus 2009 -Damon, Matt The Good Shepherd 2006 -Damon, Matt Magnificent Desolation: Walking on the Moon 3D 2005 -Damon, Matt The Bourne Ultimatum 2007 -Damon, Matt We Bought a Zoo 2011 -Damon, Matt The Rainmaker 1997 -Damon, Matt The Departed 2006 -Damon, Matt The Talented Mr. Ripley 1999 -Damon, Matt Hereafter 2010 -Damon, Matt Ocean's Twelve 2004 -Damon, Matt The Bourne Supremacy 2004 -Damon, Matt Saving Private Ryan 1998 -Damon, Matt Courage Under Fire 1996 -Damon, Matt Happy Feet Two 2011 -Damon, Matt True Grit 2010 -Damon, Matt Gake no ue no Ponyo 2008 -Damon, Matt Ocean's Thirteen 2007 -Damon, Matt The Bourne Identity 2002 -Damon, Matt Good Will Hunting 1997 -Damon, Matt Spirit: Stallion of the Cimarron 2002 -Wynands, Danny Lethal Weapon 2 1989 -Wynands, Danny Sin City 2005 -Wynands, Danny Lethal Weapon 4 1998 -Wynands, Danny Eraser 1996 -Wynands, Danny Lethal Weapon 3 1992 -Davey, Rachel (I) A Bug's Life 1998 -Davey, Rachel (I) Toy Story 2 1999 -Davey, Rachel (I) Babe 1995 -Morris, Phil (I) Atlantis: The Lost Empire 2001 -Morris, Phil (I) Wag the Dog 1997 -Morris, Phil (I) Spider-Man 3 2007 -Morris, Phil (I) Meet the Spartans 2008 -Morris, Phil (I) Underdog 2007 -Morris, Phil (I) Kung Fu Panda 2008 -Morris, Phil (I) Star Trek III: The Search for Spock 1984 -Morris, Phil (I) Jingle All the Way 1996 -West, Shane (I) The League of Extraordinary Gentlemen 2003 -West, Shane (I) A Walk to Remember 2002 -West, Shane (I) Ocean's Eleven 2001 -Gass, Kyle Elf 2003 -Gass, Kyle Almost Famous 2000 -Gass, Kyle Wild Hogs 2007 -Gass, Kyle Kung Fu Panda 2008 -Gass, Kyle The Cable Guy 1996 -Gass, Kyle Evolution 2001 -Gass, Kyle Shallow Hal 2001 -Hodge, Mike (I) Malcolm X 1992 -Hodge, Mike (I) Ransom 1996 -Hodge, Mike (I) The Mirror Has Two Faces 1996 -Hodge, Mike (I) College Road Trip 2008 -Collette, Toni About a Boy 2002 -Collette, Toni Shaft 2000 -Collette, Toni The Sixth Sense 1999 -Collette, Toni Changing Lanes 2002 -Collette, Toni In Her Shoes 2005 -Collette, Toni The Hours 2002 -Collette, Toni Little Miss Sunshine 2006 -Winther, Michael Mr. & Mrs. Smith 2005 -Winther, Michael Jumper 2008 -Winther, Michael The Break-Up 2006 -Winther, Michael Universal Soldier 1992 -Winther, Michael Independence Day 1996 -Murciano, Enrique Black Hawk Down 2001 -Murciano, Enrique Traffic 2000 -Murciano, Enrique Speed 2: Cruise Control 1997 -Murciano, Enrique Miss Congeniality 2: Armed and Fabulous 2005 -Miller, George F. The Siege 1998 -Miller, George F. Unfaithful 2002 -Miller, George F. Deep Impact 1998 -Veith, Andreanna Austin Powers: The Spy Who Shagged Me 1999 -Veith, Andreanna Austin Powers: International Man of Mystery 1997 -Veith, Andreanna Austin Powers in Goldmember 2002 -Wenham, David Van Helsing 2004 -Wenham, David Moulin Rouge! 2001 -Wenham, David Australia 2008 -Wenham, David The Lord of the Rings: The Two Towers 2002 -Wenham, David 300 2006 -Wenham, David Public Enemies 2009 -Wenham, David The Lord of the Rings: The Return of the King 2003 -Wenham, David Legend of the Guardians: The Owls of Ga'Hoole 2010 -Timberlake, Justin In Time 2011 -Timberlake, Justin Bad Teacher 2011 -Timberlake, Justin Friends with Benefits 2011 -Timberlake, Justin Yogi Bear 2010 -Timberlake, Justin Shrek the Third 2007 -Timberlake, Justin The Social Network 2010 -Harryhausen, Ray Elf 2003 -Harryhausen, Ray Mighty Joe Young 1998 -Harryhausen, Ray Spies Like Us 1985 -McDonald, Jewel Tears of the Sun 2003 -McDonald, Jewel George of the Jungle 1997 -McDonald, Jewel Mighty Joe Young 1998 -McDonald, Jewel Six Days Seven Nights 1998 -Laffan, Pat The Queen 2006 -Laffan, Pat The Saint 1997 -Laffan, Pat War Horse 2011 -Lathan, Sanaa Contagion 2011 -Lathan, Sanaa Blade 1998 -Lathan, Sanaa AVP: Alien vs. Predator 2004 -Tyson, Richard (I) Black Hawk Down 2001 -Tyson, Richard (I) Me, Myself & Irene 2000 -Tyson, Richard (I) There's Something About Mary 1998 -Edwards, Paddi Ghost Busters 1984 -Edwards, Paddi Hercules 1997 -Edwards, Paddi The Little Mermaid 1989 -Cage, Nicolas World Trade Center 2006 -Cage, Nicolas G-Force 2009 -Cage, Nicolas Knowing 2009 -Cage, Nicolas National Treasure: Book of Secrets 2007 -Cage, Nicolas Con Air 1997 -Cage, Nicolas The Rock 1996 -Cage, Nicolas National Treasure 2004 -Cage, Nicolas The Ant Bully 2006 -Cage, Nicolas Windtalkers 2002 -Cage, Nicolas The Family Man 2000 -Cage, Nicolas Snake Eyes 1998 -Cage, Nicolas The Sorcerer's Apprentice 2010 -Cage, Nicolas Ghost Rider: Spirit of Vengeance 2011 -Cage, Nicolas Face/Off 1997 -Cage, Nicolas Matchstick Men 2003 -Cage, Nicolas City of Angels 1998 -Cage, Nicolas Captain Corelli's Mandolin 2001 -Cage, Nicolas Kick-Ass 2010 -Cage, Nicolas Gone in Sixty Seconds 2000 -Cage, Nicolas Ghost Rider 2007 -Addison, Walter Bringing Down the House 2003 -Addison, Walter Watchmen 2009 -Addison, Walter Fun with Dick and Jane 2005 -Flynn, Neil (I) Magnolia 1999 -Flynn, Neil (I) Cloudy with a Chance of Meatballs 2009 -Flynn, Neil (I) The Fugitive 1993 -Flynn, Neil (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Flynn, Neil (I) Home Alone 3 1997 -Flynn, Neil (I) Mean Girls 2004 -Malek, Rami Battleship 2012 -Malek, Rami Night at the Museum: Battle of the Smithsonian 2009 -Malek, Rami Larry Crowne 2011 -Malek, Rami Night at the Museum 2006 -Fullerton, Richard Remember the Titans 2000 -Fullerton, Richard Black Knight 2001 -Fullerton, Richard Secretariat 2010 -Pepe, Brian James Salt 2010 -Pepe, Brian James The Adjustment Bureau 2011 -Pepe, Brian James Men in Black 3 2012 -Pepe, Brian James Limitless 2011 -Pepe, Brian James The Other Guys 2010 -Harris, Steve (I) The Rock 1996 -Harris, Steve (I) Bringing Down the House 2003 -Harris, Steve (I) Takers 2010 -Harris, Steve (I) Minority Report 2002 -Quinn, Aidan (I) Unknown 2011 -Quinn, Aidan (I) Michael Collins 1996 -Quinn, Aidan (I) Practical Magic 1998 -Goritsas, Demetri X-Men: First Class 2011 -Goritsas, Demetri Sky Captain and the World of Tomorrow 2004 -Goritsas, Demetri National Treasure: Book of Secrets 2007 -Goritsas, Demetri Spy Game 2001 -Goritsas, Demetri The Bourne Identity 2002 -Goritsas, Demetri Saving Private Ryan 1998 -Henley, Barry Shabaka Ali 2001 -Henley, Barry Shabaka How Stella Got Her Groove Back 1998 -Henley, Barry Shabaka Four Brothers 2005 -Henley, Barry Shabaka Miami Vice 2006 -Henley, Barry Shabaka Rush Hour 1998 -Henley, Barry Shabaka The Terminal 2004 -Henley, Barry Shabaka Patch Adams 1998 -Henley, Barry Shabaka Collateral 2004 -List, Peyton (II) Diary of a Wimpy Kid: Rodrick Rules 2011 -List, Peyton (II) Confessions of a Shopaholic 2009 -List, Peyton (II) Spider-Man 2 2004 -List, Peyton (II) The Sorcerer's Apprentice 2010 -List, Peyton (II) 27 Dresses 2008 -Moritz, Neal H. 2 Fast 2 Furious 2003 -Moritz, Neal H. S.W.A.T. 2003 -Moritz, Neal H. The Fast and the Furious 2001 -Quaid, Dennis Legion 2009 -Quaid, Dennis Traffic 2000 -Quaid, Dennis The Rookie 2002 -Quaid, Dennis Frequency 2000 -Quaid, Dennis Any Given Sunday 1999 -Quaid, Dennis The Parent Trap 1998 -Quaid, Dennis Yours, Mine and Ours 2005 -Quaid, Dennis Vantage Point 2008 -Quaid, Dennis DragonHeart 1996 -Quaid, Dennis Stripes 1981 -Quaid, Dennis G.I. Joe: The Rise of Cobra 2009 -Quaid, Dennis The Day After Tomorrow 2004 -Quaid, Dennis Footloose 2011 -Linley, Cody My Dog Skip 2000 -Linley, Cody Miss Congeniality 2000 -Linley, Cody Where the Heart Is 2000 -Linley, Cody Cheaper by the Dozen 2003 -Hart, Ian (I) Finding Neverland 2004 -Hart, Ian (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Hart, Ian (I) Michael Collins 1996 -Hart, Ian (I) Harry Potter and the Sorcerer's Stone 2001 -Hart, Ian (I) Enemy of the State 1998 -Utley, Byron The Interpreter 2005 -Utley, Byron Malcolm X 1992 -Utley, Byron Wall Street 1987 -Gallego, Gina (I) Beverly Hills Chihuahua 2008 -Gallego, Gina (I) Mr. Deeds 2002 -Gallego, Gina (I) Minority Report 2002 -Gallego, Gina (I) Erin Brockovich 2000 -Gallego, Gina (I) Anger Management 2003 -Cool, Greg Law Abiding Citizen 2009 -Cool, Greg The Replacements 2000 -Cool, Greg Failure to Launch 2006 -Cool, Greg Along Came a Spider 2001 -Soucie, Kath Rugrats in Paris: The Movie - Rugrats II 2000 -Soucie, Kath Pirates of the Caribbean: At World's End 2007 -Soucie, Kath Curious George 2006 -Soucie, Kath Robots 2005 -Soucie, Kath The Rugrats Movie 1998 -Soucie, Kath The Mummy Returns 2001 -Soucie, Kath Kung Fu Panda 2008 -Soucie, Kath Space Chimps 2008 -Soucie, Kath Coraline 2009 -Soucie, Kath Return to Never Land 2002 -Soucie, Kath The Santa Clause 2 2002 -Soucie, Kath The Hunchback of Notre Dame 1996 -Soucie, Kath The Golden Compass 2007 -Soucie, Kath Lilo & Stitch 2002 -Soucie, Kath Beauty and the Beast 1991 -Soucie, Kath Space Jam 1996 -Soucie, Kath The Tigger Movie 2000 -Soucie, Kath Recess: School's Out 2001 -Soucie, Kath Rugrats Go Wild 2003 -Nealon, Kevin The Master of Disguise 2002 -Nealon, Kevin Anger Management 2003 -Nealon, Kevin Little Nicky 2000 -Nealon, Kevin Daddy Day Care 2003 -Nealon, Kevin You Don't Mess with the Zohan 2008 -Nealon, Kevin Get Smart 2008 -Nealon, Kevin The Wedding Singer 1998 -Nealon, Kevin Just Go with It 2011 -Nealon, Kevin Aliens in the Attic 2009 -Clayderburg, Gary Anger Management 2003 -Clayderburg, Gary Cinderella Man 2005 -Clayderburg, Gary Runaway Jury 2003 -Clayderburg, Gary Ocean's Twelve 2004 -Giannone, Jay The Game Plan 2007 -Giannone, Jay Three Kings 1999 -Giannone, Jay The Departed 2006 -Scott Thomas, Kristin Four Weddings and a Funeral 1994 -Scott Thomas, Kristin Mission: Impossible 1996 -Scott Thomas, Kristin Confessions of a Shopaholic 2009 -Scott Thomas, Kristin The English Patient 1996 -Scott Thomas, Kristin Gosford Park 2001 -Scott Thomas, Kristin The Horse Whisperer 1998 -Scott Thomas, Kristin The Golden Compass 2007 -Denkin, Marty Ali 2001 -Denkin, Marty Rocky IV 1985 -Denkin, Marty Rocky III 1982 -Hong, James (I) Ying Xiong 2002 -Hong, James (I) Kung Fu Panda 2 2011 -Hong, James (I) The Day the Earth Stood Still 2008 -Hong, James (I) Mulan 1998 -Hong, James (I) Kung Fu Panda 2008 -Reynolds, Shawn (II) We Are Marshall 2006 -Reynolds, Shawn (II) Life as We Know It 2010 -Reynolds, Shawn (II) The Blind Side 2009 -Krass, Errol Live Free or Die Hard 2007 -Krass, Errol Body of Lies 2008 -Krass, Errol He's Just Not That Into You 2009 -Irwin, Jennifer (I) Exit Wounds 2001 -Irwin, Jennifer (I) No Strings Attached 2011 -Irwin, Jennifer (I) Bad Teacher 2011 -Irwin, Jennifer (I) Superstar 1999 -Richter, Andy (I) Elf 2003 -Richter, Andy (I) Blades of Glory 2007 -Richter, Andy (I) Madagascar 3: Europe's Most Wanted 2012 -Richter, Andy (I) Madagascar 2005 -Richter, Andy (I) Scary Movie 2 2001 -Richter, Andy (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Richter, Andy (I) Madagascar: Escape 2 Africa 2008 -Richter, Andy (I) Aliens in the Attic 2009 -Richter, Andy (I) Dr. Dolittle 2 2001 -Bolden, Philip Johnson Family Vacation 2004 -Bolden, Philip The Animal 2001 -Bolden, Philip Little Nicky 2000 -Bolden, Philip Fly Me to the Moon 2008 -Bolden, Philip Are We Done Yet? 2007 -Bolden, Philip Are We There Yet? 2005 -Amidou Rules of Engagement 2000 -Amidou Spy Game 2001 -Amidou Ronin 1998 -Pulson, David The Fighter 2010 -Pulson, David Zookeeper 2011 -Pulson, David Grown Ups 2010 -McClendon, Tyler (I) The Day the Earth Stood Still 2008 -McClendon, Tyler (I) Underworld: Awakening 2012 -McClendon, Tyler (I) Watchmen 2009 -Loree, Brad (I) White Chicks 2004 -Loree, Brad (I) Timecop 1994 -Loree, Brad (I) X2 2003 -Shandling, Garry Iron Man 2 2010 -Shandling, Garry Doctor Dolittle 1998 -Shandling, Garry The Dictator 2012 -Shandling, Garry Zoolander 2001 -Shandling, Garry Over the Hedge 2006 -Cavalier, Jason The Aviator 2004 -Cavalier, Jason Gothika 2003 -Cavalier, Jason Immortals 2011 -Cavalier, Jason Mirror Mirror 2012 -Saldanha, Sofia Scarpa Ice Age: The Meltdown 2006 -Saldanha, Sofia Scarpa Rio 2011 -Saldanha, Sofia Scarpa Ice Age: Dawn of the Dinosaurs 2009 -Shyamalan, M. Night The Happening 2008 -Shyamalan, M. Night The Sixth Sense 1999 -Shyamalan, M. Night The Village 2004 -Shyamalan, M. Night Unbreakable 2000 -Shyamalan, M. Night Lady in the Water 2006 -Shyamalan, M. Night Signs 2002 -Cerny, JoBe Legally Blonde 2: Red, White & Blonde 2003 -Cerny, JoBe Road to Perdition 2002 -Cerny, JoBe My Best Friend's Wedding 1997 -Rigby, Terence Mona Lisa Smile 2003 -Rigby, Terence Elizabeth 1998 -Rigby, Terence Tomorrow Never Dies 1997 -Mays, Daniel (I) The Adventures of Tintin 2011 -Mays, Daniel (I) Atonement 2007 -Mays, Daniel (I) Pearl Harbor 2001 -Mays, Daniel (I) Nanny McPhee and the Big Bang 2010 -Hollis, John (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Hollis, John (I) Superman 1978 -Hollis, John (I) Superman II 1980 -Hollis, John (I) For Your Eyes Only 1981 -Suchet, David Pinocchio 2002 -Suchet, David A Perfect Murder 1998 -Suchet, David Flushed Away 2006 -Stream The Sisterhood of the Traveling Pants 2005 -Stream Fever Pitch 2005 -Stream The Departed 2006 -Stream Paul Blart: Mall Cop 2009 -Stream 21 2008 -Stream Tower Heist 2011 -Stream 27 Dresses 2008 -Stream Knight and Day 2010 -Stream Ghosts of Girlfriends Past 2009 -Jeong, Ken The Hangover Part II 2011 -Jeong, Ken Couples Retreat 2009 -Jeong, Ken The Hangover 2009 -Jeong, Ken Role Models 2008 -Jeong, Ken Big Mommas: Like Father, Like Son 2011 -Jeong, Ken Knocked Up 2007 -Jeong, Ken The Muppets 2011 -Jeong, Ken Despicable Me 2010 -Jeong, Ken Transformers: Dark of the Moon 2011 -Jeong, Ken Pineapple Express 2008 -Jeong, Ken Step Brothers 2008 -Jeong, Ken Zookeeper 2011 -O'Connell, Jerry Jerry Maguire 1996 -O'Connell, Jerry Kangaroo Jack 2003 -O'Connell, Jerry Mission to Mars 2000 -O'Connell, Jerry Piranha 2010 -O'Connell, Jerry Stand by Me 1986 -O'Connell, Jerry Yours, Mine and Ours 2005 -O'Connell, Jerry Scream 2 1997 -Clark, Victoria (I) The Happening 2008 -Clark, Victoria (I) Anastasia 1997 -Clark, Victoria (I) The Hunchback of Notre Dame 1996 -Mackie, Anthony The Manchurian Candidate 2004 -Mackie, Anthony 8 Mile 2002 -Mackie, Anthony The Adjustment Bureau 2011 -Mackie, Anthony Million Dollar Baby 2004 -Mackie, Anthony Eagle Eye 2008 -Mackie, Anthony Real Steel 2011 -Mackie, Anthony We Are Marshall 2006 -Olstead, Renee End of Days 1999 -Olstead, Renee The Insider 1999 -Olstead, Renee 13 Going on 30 2004 -Olstead, Renee Space Cowboys 2000 -Tudyk, Alan Patch Adams 1998 -Tudyk, Alan Knocked Up 2007 -Tudyk, Alan Alvin and the Chipmunks: Chipwrecked 2011 -Tudyk, Alan 3:10 to Yuma 2007 -Tudyk, Alan Dodgeball: A True Underdog Story 2004 -Tudyk, Alan 28 Days 2000 -Tudyk, Alan Ice Age 2002 -Tudyk, Alan A Knight's Tale 2001 -Tudyk, Alan Ice Age: The Meltdown 2006 -Tudyk, Alan Transformers: Dark of the Moon 2011 -Tudyk, Alan I, Robot 2004 -Tudyk, Alan Wonder Boys 2000 -Woodington, Albie The Hitchhiker's Guide to the Galaxy 2005 -Woodington, Albie The Count of Monte Cristo 2002 -Woodington, Albie The 13th Warrior 1999 -Brown, Clancy (I) Starship Troopers 1997 -Brown, Clancy (I) Flubber 1997 -Brown, Clancy (I) Recess: School's Out 2001 -Brown, Clancy (I) Minority Report 2002 -Brown, Clancy (I) The SpongeBob SquarePants Movie 2004 -Brown, Clancy (I) Cowboys & Aliens 2011 -Brown, Clancy (I) The Hurricane 1999 -Brown, Clancy (I) A Nightmare on Elm Street 2010 -Brown, Clancy (I) Green Lantern 2011 -Genaro, Tony Phenomenon 1996 -Genaro, Tony Double Take 2001 -Genaro, Tony The Mask of Zorro 1998 -Genaro, Tony Mighty Joe Young 1998 -Genaro, Tony Anger Management 2003 -Genaro, Tony World Trade Center 2006 -Rowe, Bill (II) Unbreakable 2000 -Rowe, Bill (II) Dead Poets Society 1989 -Rowe, Bill (II) Philadelphia 1993 -Moll, Richard Evolution 2001 -Moll, Richard Scary Movie 2 2001 -Moll, Richard The Flintstones 1994 -Moll, Richard Jingle All the Way 1996 -Mulkey, Chris (I) D-War 2007 -Mulkey, Chris (I) Cloverfield 2008 -Mulkey, Chris (I) First Blood 1982 -Mulkey, Chris (I) Rain Man 1988 -Mulkey, Chris (I) Radio 2003 -Hartman, Phil (I) Jingle All the Way 1996 -Hartman, Phil (I) Small Soldiers 1998 -Hartman, Phil (I) Pee-wee's Big Adventure 1985 -Wilton, Penelope Pride & Prejudice 2005 -Wilton, Penelope The Best Exotic Marigold Hotel 2011 -Wilton, Penelope Calendar Girls 2003 -Sinise, Gary Forrest Gump 1994 -Sinise, Gary The Forgotten 2004 -Sinise, Gary Snake Eyes 1998 -Sinise, Gary Ransom 1996 -Sinise, Gary Apollo 13 1995 -Sinise, Gary Mission to Mars 2000 -Sinise, Gary Magnificent Desolation: Walking on the Moon 3D 2005 -Sinise, Gary The Green Mile 1999 -Sinise, Gary Open Season 2006 -Sinise, Gary Being John Malkovich 1999 -Wever, Merritt Michael Clayton 2007 -Wever, Merritt Righteous Kill 2008 -Wever, Merritt Signs 2002 -Rispoli, Michael Snake Eyes 1998 -Rispoli, Michael Kick-Ass 2010 -Rispoli, Michael Invincible 2006 -Rispoli, Michael The Taking of Pelham 1 2 3 2009 -Rispoli, Michael Volcano 1997 -Egan, Christopher Resident Evil: Extinction 2007 -Egan, Christopher Eragon 2006 -Egan, Christopher Letters to Juliet 2010 -Pollack, Sydney Changing Lanes 2002 -Pollack, Sydney Tootsie 1982 -Pollack, Sydney Made of Honor 2008 -Pollack, Sydney Michael Clayton 2007 -Pollack, Sydney Eyes Wide Shut 1999 -Pollack, Sydney A Civil Action 1998 -Pollack, Sydney The Interpreter 2005 -Caan, James (I) Elf 2003 -Caan, James (I) Get Smart 2008 -Caan, James (I) Eraser 1996 -Caan, James (I) Mickey Blue Eyes 1999 -Caan, James (I) Cloudy with a Chance of Meatballs 2009 -Caan, James (I) The Godfather 1972 -Sucharetza, Marla Road Trip 2000 -Sucharetza, Marla In & Out 1997 -Sucharetza, Marla The First Wives Club 1996 -Sucharetza, Marla Forrest Gump 1994 -Djalili, Omid The Mummy 1999 -Djalili, Omid Sky Captain and the World of Tomorrow 2004 -Djalili, Omid Pirates of the Caribbean: At World's End 2007 -Djalili, Omid Spy Game 2001 -Djalili, Omid Notting Hill 1999 -Djalili, Omid Sex and the City 2 2010 -Djalili, Omid The World Is Not Enough 1999 -Djalili, Omid Over the Hedge 2006 -Djalili, Omid Gladiator 2000 -Stewart, Lori (I) Scary Movie 3 2003 -Stewart, Lori (I) X2 2003 -Stewart, Lori (I) The Cabin in the Woods 2011 -Rhodes, Brian (III) Down to Earth 2001 -Rhodes, Brian (III) The Tuxedo 2002 -Rhodes, Brian (III) The Recruit 2003 -Hernández, Maximiliano Hotel for Dogs 2009 -Hernández, Maximiliano Thor 2011 -Hernández, Maximiliano The Avengers 2012 -Shum Jr., Harry Step Up 3D 2010 -Shum Jr., Harry Stomp the Yard 2007 -Shum Jr., Harry Step Up 2: The Streets 2008 -Chillin, Gregg Harry Potter and the Goblet of Fire 2005 -Chillin, Gregg Harry Potter and the Prisoner of Azkaban 2004 -Chillin, Gregg Harry Potter and the Sorcerer's Stone 2001 -Chillin, Gregg Harry Potter and the Chamber of Secrets 2002 -Chillin, Gregg Harry Potter and the Order of the Phoenix 2007 -Ohama, Natsuko Speed 1994 -Ohama, Natsuko Pirates of the Caribbean: Dead Man's Chest 2006 -Ohama, Natsuko Bad Santa 2003 -Foster, Darrell I Am Legend 2007 -Foster, Darrell Men in Black II 2002 -Foster, Darrell The Kid 2000 -Foster, Darrell Hancock 2008 -Pleavin, Andrew 300 2006 -Pleavin, Andrew Inception 2010 -Pleavin, Andrew Batman Begins 2005 -Nagle, Rob Life as We Know It 2010 -Nagle, Rob American Wedding 2003 -Nagle, Rob New Year's Eve 2011 -Nagle, Rob Fun with Dick and Jane 2005 -Nagle, Rob Cellular 2004 -Bening, Annette American Beauty 1999 -Bening, Annette The Siege 1998 -Bening, Annette Mars Attacks! 1996 -Bening, Annette Open Range 2003 -Kristofferson, Kris (I) Blade: Trinity 2004 -Kristofferson, Kris (I) Blade 1998 -Kristofferson, Kris (I) Blade II 2002 -Kristofferson, Kris (I) He's Just Not That Into You 2009 -Kristofferson, Kris (I) Dolphin Tale 2011 -Stevens, Vyvian B. Bride Wars 2009 -Stevens, Vyvian B. Paul Blart: Mall Cop 2009 -Stevens, Vyvian B. Ghosts of Girlfriends Past 2009 -Robertson, George R. Police Academy 3: Back in Training 1986 -Robertson, George R. JFK 1991 -Robertson, George R. Police Academy 2: Their First Assignment 1985 -Robertson, George R. Police Academy 1984 -Ratcliffe, Barry J. Bedazzled 2000 -Ratcliffe, Barry J. The Princess Diaries 2001 -Ratcliffe, Barry J. Water for Elephants 2011 -Ratcliffe, Barry J. Bicentennial Man 1999 -Mirman, Edie Despicable Me 2010 -Mirman, Edie Mulan 1998 -Mirman, Edie Madagascar: Escape 2 Africa 2008 -Mirman, Edie TRON: Legacy 2010 -Mirman, Edie Hauru no ugoku shiro 2004 -Skipper, Pat Lethal Weapon 2 1989 -Skipper, Pat Wall Street 1987 -Skipper, Pat Erin Brockovich 2000 -Skipper, Pat Seabiscuit 2003 -Skipper, Pat Halloween 2007 -Skipper, Pat Independence Day 1996 -Povinelli, Mark Mirror Mirror 2012 -Povinelli, Mark The Polar Express 2004 -Povinelli, Mark Epic Movie 2007 -Povinelli, Mark Water for Elephants 2011 -Povinelli, Mark Jackass 3D 2010 -Barnes, Susan (I) Speed 1994 -Barnes, Susan (I) Nothing to Lose 1997 -Barnes, Susan (I) Pee-wee's Big Adventure 1985 -Barnes, Susan (I) Kicking & Screaming 2005 -Barnes, Susan (I) Speed 2: Cruise Control 1997 -Manesh, Marshall Showtime 2002 -Manesh, Marshall Pirates of the Caribbean: At World's End 2007 -Manesh, Marshall True Lies 1994 -Manesh, Marshall Hidalgo 2004 -Gardner, Pete Project X 2012 -Gardner, Pete Evan Almighty 2007 -Gardner, Pete Fun with Dick and Jane 2005 -Gardner, Pete Transformers 2007 -Irvin, Michael (II) Jerry Maguire 1996 -Irvin, Michael (II) The Longest Yard 2005 -Irvin, Michael (II) Jack and Jill 2011 -DeVito, Joe (V) Public Enemies 2009 -DeVito, Joe (V) A Nightmare on Elm Street 2010 -DeVito, Joe (V) Little Fockers 2010 -Schwartz, Ellen H. 27 Dresses 2008 -Schwartz, Ellen H. Miss Congeniality 2000 -Schwartz, Ellen H. Raising Helen 2004 -Nunn, Jackson Zack and Miri Make a Porno 2008 -Nunn, Jackson I Am Number Four 2011 -Nunn, Jackson My Bloody Valentine 2009 -Nunn, Jackson Wonder Boys 2000 -Santiago-Hudson, Ruben American Gangster 2007 -Santiago-Hudson, Ruben The Devil's Advocate 1997 -Santiago-Hudson, Ruben Domestic Disturbance 2001 -Santiago-Hudson, Ruben Shaft 2000 -Santiago-Hudson, Ruben Coming to America 1988 -Morita, Pat The Karate Kid, Part II 1986 -Morita, Pat The Karate Kid 1984 -Morita, Pat Mulan 1998 -Lenk, Tom The Cabin in the Woods 2011 -Lenk, Tom Date Movie 2006 -Lenk, Tom Transformers 2007 -Lenk, Tom Boogie Nights 1997 -Vigus, Larry Catch Me If You Can 2002 -Vigus, Larry Underdog 2007 -Vigus, Larry 13 Going on 30 2004 -Vigus, Larry Ali 2001 -Vigus, Larry Intolerable Cruelty 2003 -Vigus, Larry Matchstick Men 2003 -Gabriel, Chad (I) After the Sunset 2004 -Gabriel, Chad (I) The Pink Panther 2006 -Gabriel, Chad (I) Guess Who 2005 -Dorman, Kevin Real Steel 2011 -Dorman, Kevin Avatar 2009 -Dorman, Kevin Beowulf 2007 -Morrisey, Bob The Terminal 2004 -Morrisey, Bob Fun with Dick and Jane 2005 -Morrisey, Bob Eagle Eye 2008 -Morrisey, Bob The Ugly Truth 2009 -Sanada, Hiroyuki Speed Racer 2008 -Sanada, Hiroyuki The Last Samurai 2003 -Sanada, Hiroyuki Rush Hour 3 2007 -Yuan, Ron Spider-Man 3 2007 -Yuan, Ron Fast & Furious 2009 -Yuan, Ron Speed Racer 2008 -Lloyd, Eric (I) The Santa Clause 3: The Escape Clause 2006 -Lloyd, Eric (I) Batman & Robin 1997 -Lloyd, Eric (I) The Santa Clause 2 2002 -Lloyd, Eric (I) The Santa Clause 1994 -Witting, Steve Catch Me If You Can 2002 -Witting, Steve Shutter Island 2010 -Witting, Steve Batman Returns 1992 -Johnson, Andray Flightplan 2005 -Johnson, Andray Blade 1998 -Johnson, Andray Spider-Man 2002 -Johnson, Andray Fun with Dick and Jane 2005 -O'Connor, Derrick Lethal Weapon 2 1989 -O'Connor, Derrick Pirates of the Caribbean: Dead Man's Chest 2006 -O'Connor, Derrick End of Days 1999 -O'Connor, Derrick Daredevil 2003 -Galifianakis, Zach G-Force 2009 -Galifianakis, Zach What Happens in Vegas 2008 -Galifianakis, Zach The Hangover 2009 -Galifianakis, Zach The Hangover Part II 2011 -Galifianakis, Zach Due Date 2010 -Galifianakis, Zach The Muppets 2011 -Galifianakis, Zach Dinner for Schmucks 2010 -Galifianakis, Zach Puss in Boots 2011 -Torre, Roma The Manchurian Candidate 2004 -Torre, Roma Down to Earth 2001 -Torre, Roma Cloverfield 2008 -Gallagher, Bronagh Sherlock Holmes 2009 -Gallagher, Bronagh Star Wars: Episode I - The Phantom Menace 1999 -Gallagher, Bronagh Pulp Fiction 1994 -Becker-Gray, Ellen The Game Plan 2007 -Becker-Gray, Ellen Ghosts of Girlfriends Past 2009 -Becker-Gray, Ellen Underdog 2007 -Becker-Gray, Ellen 21 2008 -Becker-Gray, Ellen Dan in Real Life 2007 -Becker-Gray, Ellen Bride Wars 2009 -Becker-Gray, Ellen Paul Blart: Mall Cop 2009 -von Detten, Erik Hercules 1997 -von Detten, Erik Toy Story 3 2010 -von Detten, Erik Tarzan 1999 -von Detten, Erik Toy Story 1995 -von Detten, Erik The Princess Diaries 2001 -von Detten, Erik Recess: School's Out 2001 -Vaughn-Hulbert, Mashiah 4: Rise of the Silver Surfer 2007 -Vaughn-Hulbert, Mashiah Fantastic Four 2005 -Vaughn-Hulbert, Mashiah Scary Movie 4 2006 -Saldanha, Manoela Scarpa Ice Age: The Meltdown 2006 -Saldanha, Manoela Scarpa Rio 2011 -Saldanha, Manoela Scarpa Ice Age: Dawn of the Dinosaurs 2009 -Tang, Hon Ping The Fifth Element 1997 -Tang, Hon Ping Bridget Jones: The Edge of Reason 2004 -Tang, Hon Ping Spy Game 2001 -Dyniewicz, Mark Casimir Star Trek 2009 -Dyniewicz, Mark Casimir Pirates of the Caribbean: At World's End 2007 -Dyniewicz, Mark Casimir Ocean's Thirteen 2007 -Dyniewicz, Mark Casimir Iron Man 2 2010 -Dyniewicz, Mark Casimir The Lincoln Lawyer 2011 -Bowersox, Bob A Perfect Murder 1998 -Bowersox, Bob Philadelphia 1993 -Bowersox, Bob Unbreakable 2000 -Bowersox, Bob The Sixth Sense 1999 -Bowersox, Bob Burn After Reading 2008 -Sountsov, Aleksandr The Longest Yard 2005 -Sountsov, Aleksandr Coach Carter 2005 -Sountsov, Aleksandr The Terminal 2004 -Sountsov, Aleksandr Pirates of the Caribbean: Dead Man's Chest 2006 -Birmingham, Gil Rango 2011 -Birmingham, Gil New Moon 2009 -Birmingham, Gil The Twilight Saga: Breaking Dawn - Part 1 2011 -Birmingham, Gil The Twilight Saga: Eclipse 2010 -Bosworth, Kate The Horse Whisperer 1998 -Bosworth, Kate Superman Returns 2006 -Bosworth, Kate Remember the Titans 2000 -Bosworth, Kate 21 2008 -Hillman, Sid Men in Black II 2002 -Hillman, Sid City of Angels 1998 -Hillman, Sid My Best Friend's Wedding 1997 -Thomas, Raymond Anthony The Manchurian Candidate 2004 -Thomas, Raymond Anthony Changing Lanes 2002 -Thomas, Raymond Anthony Shutter Island 2010 -Thomas, Raymond Anthony Malcolm X 1992 -Reynolds, Ryan (I) X-Men Origins: Wolverine 2009 -Reynolds, Ryan (I) Blade: Trinity 2004 -Reynolds, Ryan (I) Green Lantern 2011 -Reynolds, Ryan (I) Safe House 2012 -Reynolds, Ryan (I) The Amityville Horror 2005 -Weiner, Molly In Her Shoes 2005 -Weiner, Molly You Don't Mess with the Zohan 2008 -Weiner, Molly Red Eye 2005 -Snipes, Wesley Blade: Trinity 2004 -Snipes, Wesley Blade 1998 -Snipes, Wesley Blade II 2002 -Snipes, Wesley U.S. Marshals 1998 -Roberts, Jeremy (I) The Mexican 2001 -Roberts, Jeremy (I) The Mask 1994 -Roberts, Jeremy (I) Herbie Fully Loaded 2005 -Roberts, Jeremy (I) Sister Act 1992 -Parisse, Annie National Treasure 2004 -Parisse, Annie How to Lose a Guy in 10 Days 2003 -Parisse, Annie The Amazing Spider-Man 2012 -Parisse, Annie Monster-in-Law 2005 -Wight, Peter Atonement 2007 -Wight, Peter Pride & Prejudice 2005 -Wight, Peter Babel 2006 -Quinn, Bob (XI) George of the Jungle 1997 -Quinn, Bob (XI) Grease 1978 -Quinn, Bob (XI) The Game 1997 -Quinn, Bob (XI) The Lost World: Jurassic Park 1997 -Stone, Robert (IX) Sherlock Holmes 2009 -Stone, Robert (IX) Mr. Bean's Holiday 2007 -Stone, Robert (IX) Pirates of the Caribbean: On Stranger Tides 2011 -Stone, Robert (IX) The Da Vinci Code 2006 -Robertson, James Douglas Any Given Sunday 1999 -Robertson, James Douglas Braveheart 1995 -Robertson, James Douglas Alexander 2004 -Robertson, James Douglas Gladiator 2000 -Madsen, Virginia Firewall 2006 -Madsen, Virginia The Haunting 1999 -Madsen, Virginia Sideways 2004 -Madsen, Virginia The Rainmaker 1997 -Olyphant, Timothy Scream 2 1997 -Olyphant, Timothy Rango 2011 -Olyphant, Timothy Gone in Sixty Seconds 2000 -Olyphant, Timothy The First Wives Club 1996 -Olyphant, Timothy I Am Number Four 2011 -Olyphant, Timothy Live Free or Die Hard 2007 -Olyphant, Timothy Dreamcatcher 2003 -Mann, John (II) Catwoman 2004 -Mann, John (II) Underworld: Evolution 2006 -Mann, John (II) The Chronicles of Riddick 2004 -Lucas, Amanda Star Wars: Episode III - Revenge of the Sith 2005 -Lucas, Amanda Star Wars: Episode I - The Phantom Menace 1999 -Lucas, Amanda Star Wars: Episode II - Attack of the Clones 2002 -Howard, Rosemary (II) Mr. Popper's Penguins 2011 -Howard, Rosemary (II) New Year's Eve 2011 -Howard, Rosemary (II) The Other Guys 2010 -Howard, Rosemary (II) Tower Heist 2011 -Howard, Rosemary (II) The Adjustment Bureau 2011 -Howard, Rosemary (II) Wall Street: Money Never Sleeps 2010 -Howard, Rosemary (II) Men in Black 3 2012 -Metcalf, Mycole Ocean's Eleven 2001 -Metcalf, Mycole Fast & Furious 2009 -Metcalf, Mycole Get Him to the Greek 2010 -Burstyn, Ellen The Exorcist 1973 -Burstyn, Ellen Divine Secrets of the Ya-Ya Sisterhood 2002 -Burstyn, Ellen The Hurricane 1999 -Burstyn, Ellen Red Dragon 2002 -Pinney, Patrick The Little Mermaid 1989 -Pinney, Patrick Brother Bear 2003 -Pinney, Patrick Hercules 1997 -Pinney, Patrick Treasure Planet 2002 -Pinney, Patrick The Haunted Mansion 2003 -Pinney, Patrick The Hunchback of Notre Dame 1996 -Pinney, Patrick The Terminator 1984 -Pinney, Patrick Lilo & Stitch 2002 -Pinney, Patrick Beauty and the Beast 1991 -Pinney, Patrick Aladdin 1992 -Pinney, Patrick Toy Story 1995 -Pinney, Patrick Mulan 1998 -Pinney, Patrick Atlantis: The Lost Empire 2001 -Novak, B.J. Inglourious Basterds 2009 -Novak, B.J. Knocked Up 2007 -Novak, B.J. The Smurfs 2011 -Novak, B.J. The Dictator 2012 -Tsamoudakis, Debbie The Replacements 2000 -Tsamoudakis, Debbie National Treasure: Book of Secrets 2007 -Tsamoudakis, Debbie Wedding Crashers 2005 -Rickman, Alan Perfume: The Story of a Murderer 2006 -Rickman, Alan Robin Hood: Prince of Thieves 1991 -Rickman, Alan Harry Potter and the Deathly Hallows: Part 2 2011 -Rickman, Alan Michael Collins 1996 -Rickman, Alan Sweeney Todd: The Demon Barber of Fleet Street 2007 -Rickman, Alan Alice in Wonderland 2010 -Rickman, Alan Die Hard 1988 -Rickman, Alan Harry Potter and the Goblet of Fire 2005 -Rickman, Alan Harry Potter and the Half-Blood Prince 2009 -Rickman, Alan The Hitchhiker's Guide to the Galaxy 2005 -Rickman, Alan Galaxy Quest 1999 -Rickman, Alan Die Hard: With a Vengeance 1995 -Rickman, Alan Love Actually 2003 -Rickman, Alan Dogma 1999 -Rickman, Alan Harry Potter and the Prisoner of Azkaban 2004 -Rickman, Alan Harry Potter and the Sorcerer's Stone 2001 -Rickman, Alan Harry Potter and the Chamber of Secrets 2002 -Rickman, Alan Harry Potter and the Deathly Hallows: Part 1 2010 -Rickman, Alan Harry Potter and the Order of the Phoenix 2007 -Sandler, Jackie (I) I Now Pronounce You Chuck & Larry 2007 -Sandler, Jackie (I) 50 First Dates 2004 -Sandler, Jackie (I) Paul Blart: Mall Cop 2009 -Sandler, Jackie (I) Just Go with It 2011 -Sandler, Jackie (I) Big Daddy 1999 -Sandler, Jackie (I) Little Nicky 2000 -Sandler, Jackie (I) Deuce Bigalow: Male Gigolo 1999 -Sandler, Jackie (I) Bedtime Stories 2008 -Sandler, Jackie (I) Grown Ups 2010 -Sandler, Jackie (I) Zookeeper 2011 -Okonedo, Sophie The Secret Life of Bees 2008 -Okonedo, Sophie Ace Ventura: When Nature Calls 1995 -Okonedo, Sophie The Jackal 1997 -Attenborough, Richard Elizabeth 1998 -Attenborough, Richard The Lost World: Jurassic Park 1997 -Attenborough, Richard Jurassic Park 1993 -Rogers, Mimi Lost in Space 1998 -Rogers, Mimi Austin Powers: International Man of Mystery 1997 -Rogers, Mimi Gung Ho 1986 -Rogers, Mimi The Mirror Has Two Faces 1996 -Morris, Seth (I) Yogi Bear 2010 -Morris, Seth (I) No Strings Attached 2011 -Morris, Seth (I) Step Brothers 2008 -Morris, Seth (I) The Dictator 2012 -Morris, Seth (I) I Love You, Man 2009 -Gerdes, George Amistad 1997 -Gerdes, George Hidalgo 2004 -Gerdes, George Rumor Has It... 2005 -Gerdes, George The Girl with the Dragon Tattoo 2011 -Earnhardt Jr., Dale NASCAR 3D: The IMAX Experience 2004 -Earnhardt Jr., Dale Cars 2006 -Earnhardt Jr., Dale Talladega Nights: The Ballad of Ricky Bobby 2006 -McTiernan Sr., John The Hunt for Red October 1990 -McTiernan Sr., John Last Action Hero 1993 -McTiernan Sr., John Die Hard: With a Vengeance 1995 -Young, Harrison (I) Primary Colors 1998 -Young, Harrison (I) The Game 1997 -Young, Harrison (I) Saving Private Ryan 1998 -Landis, Forrest Cheaper by the Dozen 2 2005 -Landis, Forrest The Skeleton Key 2005 -Landis, Forrest Cheaper by the Dozen 2003 -Landis, Forrest Flightplan 2005 -Dilley, Leslie The Peacemaker 1997 -Dilley, Leslie Pay It Forward 2000 -Dilley, Leslie Deep Impact 1998 -Dilley, Leslie Black Knight 2001 -Lee, Cameron (I) Iron Man 2 2010 -Lee, Cameron (I) Christmas with the Kranks 2004 -Lee, Cameron (I) Funny People 2009 -Lee, Cameron (I) Collateral 2004 -Derryberry, Debi Horton Hears a Who! 2008 -Derryberry, Debi Brother Bear 2003 -Derryberry, Debi Hercules 1997 -Derryberry, Debi The Wild 2006 -Derryberry, Debi Home on the Range 2004 -Derryberry, Debi The Haunting 1999 -Derryberry, Debi The Lorax 2012 -Derryberry, Debi Tarzan 1999 -Derryberry, Debi The Hunchback of Notre Dame 1996 -Derryberry, Debi A Bug's Life 1998 -Derryberry, Debi The Golden Compass 2007 -Derryberry, Debi Babe 1995 -Derryberry, Debi Ice Age: The Meltdown 2006 -Derryberry, Debi Over the Hedge 2006 -Derryberry, Debi Aladdin 1992 -Derryberry, Debi Jimmy Neutron: Boy Genius 2001 -Derryberry, Debi Toy Story 2 1999 -Derryberry, Debi Toy Story 1995 -Beattie, Michael (I) Spider-Man 2 2004 -Beattie, Michael (I) Spider-Man 2002 -Beattie, Michael (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Beattie, Michael (I) The Lorax 2012 -Thomas, Sheila (II) National Treasure 2004 -Thomas, Sheila (II) Bewitched 2005 -Thomas, Sheila (II) Walk the Line 2005 -Nowicki, Tom Remember the Titans 2000 -Nowicki, Tom The Blind Side 2009 -Nowicki, Tom The Waterboy 1998 -Nowicki, Tom Dolphin Tale 2011 -Bedford, Bart The Time Traveler's Wife 2009 -Bedford, Bart Fever Pitch 2005 -Bedford, Bart The Recruit 2003 -Fallon, Siobhan Forrest Gump 1994 -Fallon, Siobhan Baby Mama 2008 -Fallon, Siobhan Striptease 1996 -Fallon, Siobhan Daddy Day Care 2003 -Fallon, Siobhan Holes 2003 -Fallon, Siobhan The Negotiator 1998 -Fallon, Siobhan Fever Pitch 2005 -Fallon, Siobhan Men in Black 1997 -Fallon, Siobhan Charlotte's Web 2006 -Steen, Suzie X-Men Origins: Wolverine 2009 -Steen, Suzie Charlie's Angels 2000 -Steen, Suzie Superman Returns 2006 -Steen, Suzie Star Wars: Episode III - Revenge of the Sith 2005 -Davis, Viola (I) Madea Goes to Jail 2009 -Davis, Viola (I) Eat Pray Love 2010 -Davis, Viola (I) Nights in Rodanthe 2008 -Davis, Viola (I) The Help 2011 -Davis, Viola (I) Traffic 2000 -Davis, Viola (I) World Trade Center 2006 -Davis, Viola (I) Law Abiding Citizen 2009 -Davis, Viola (I) Knight and Day 2010 -Davis, Viola (I) Syriana 2005 -Davis, Viola (I) Disturbia 2007 -Williams, Robin (I) One Hour Photo 2002 -Williams, Robin (I) Jumanji 1995 -Williams, Robin (I) Robots 2005 -Williams, Robin (I) The Birdcage 1996 -Williams, Robin (I) Night at the Museum: Battle of the Smithsonian 2009 -Williams, Robin (I) What Dreams May Come 1998 -Williams, Robin (I) Happy Feet 2006 -Williams, Robin (I) Insomnia 2002 -Williams, Robin (I) Patch Adams 1998 -Williams, Robin (I) Hook 1991 -Williams, Robin (I) Jack 1996 -Williams, Robin (I) Dead Poets Society 1989 -Williams, Robin (I) Bicentennial Man 1999 -Williams, Robin (I) Night at the Museum 2006 -Williams, Robin (I) Aladdin 1992 -Williams, Robin (I) Happy Feet Two 2011 -Williams, Robin (I) Mrs. Doubtfire 1993 -Williams, Robin (I) Artificial Intelligence: AI 2001 -Williams, Robin (I) Flubber 1997 -Williams, Robin (I) License to Wed 2007 -Williams, Robin (I) RV 2006 -Williams, Robin (I) Good Will Hunting 1997 -James, Rodney L. We Are Marshall 2006 -James, Rodney L. Scream 2 1997 -James, Rodney L. Sweet Home Alabama 2002 -James, Rodney L. Madea Goes to Jail 2009 -Blair, Bill (III) Resident Evil: Afterlife 2010 -Blair, Bill (III) The Artist 2011 -Blair, Bill (III) Good Night, and Good Luck. 2005 -Sigurdsson, Gubbi Eagle Eye 2008 -Sigurdsson, Gubbi Charlie Wilson's War 2007 -Sigurdsson, Gubbi Valkyrie 2008 -Newman, Paula J. Eragon 2006 -Newman, Paula J. Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Newman, Paula J. Garfield: A Tail of Two Kitties 2006 -Smith, Mike (I) Charlie's Angels 2000 -Smith, Mike (I) Takers 2010 -Smith, Mike (I) Batman Forever 1995 -Smitrovich, Bill Air Force One 1997 -Smitrovich, Bill Independence Day 1996 -Smitrovich, Bill Eagle Eye 2008 -Wilcock, Robin The Day After Tomorrow 2004 -Wilcock, Robin The Incredible Hulk 2008 -Wilcock, Robin 300 2006 -Sandler, Sunny Jack and Jill 2011 -Sandler, Sunny Just Go with It 2011 -Sandler, Sunny Grown Ups 2010 -Grazer, Gavin American Gangster 2007 -Grazer, Gavin Flightplan 2005 -Grazer, Gavin Fun with Dick and Jane 2005 -Grazer, Gavin Cowboys & Aliens 2011 -Grazer, Gavin How the Grinch Stole Christmas 2000 -Grazer, Gavin Friday Night Lights 2004 -Grazer, Gavin Cinderella Man 2005 -Sabatino, Joe Batman & Robin 1997 -Sabatino, Joe Rocky V 1990 -Sabatino, Joe The Ring 2002 -Sabatino, Joe Batman Forever 1995 -Griffin, Tim (I) Star Trek 2009 -Griffin, Tim (I) Cloverfield 2008 -Griffin, Tim (I) Super 8 2011 -Griffin, Tim (I) The Bourne Supremacy 2004 -Lewis, Greg (I) Hop 2011 -Lewis, Greg (I) The Princess Diaries 2001 -Lewis, Greg (I) K-PAX 2001 -Lewis, Greg (I) The Princess Diaries 2: Royal Engagement 2004 -Williams, Olivia (I) Peter Pan 2003 -Williams, Olivia (I) The Sixth Sense 1999 -Williams, Olivia (I) X-Men: The Last Stand 2006 -Williams, Olivia (I) The Ghost Writer 2010 -Williams, Olivia (I) Hanna 2011 -Willard, Fred The Wedding Planner 2001 -Willard, Fred American Wedding 2003 -Willard, Fred WALL·E 2008 -Willard, Fred Date Movie 2006 -Willard, Fred Anchorman: The Legend of Ron Burgundy 2004 -Willard, Fred Chicken Little 2005 -Willard, Fred Epic Movie 2007 -Willard, Fred Austin Powers: The Spy Who Shagged Me 1999 -Willard, Fred Monster House 2006 -Maynard, Ted (I) Superman Returns 2006 -Maynard, Ted (I) Spy Game 2001 -Maynard, Ted (I) Knowing 2009 -Maynard, Ted (I) xXx 2002 -McGraw, Tim The Blind Side 2009 -McGraw, Tim Four Christmases 2008 -McGraw, Tim Friday Night Lights 2004 -McFadden, Gates Star Trek: First Contact 1996 -McFadden, Gates Star Trek: Insurrection 1998 -McFadden, Gates The Hunt for Red October 1990 -McFadden, Gates Star Trek: Nemesis 2002 -Zolotukhin, Valeriy Rzhevskiy protiv Napoleona 2012 -Zolotukhin, Valeriy Dnevnoy dozor 2006 -Zolotukhin, Valeriy Nochnoy dozor 2004 -McShane, Michael (I) Treasure Planet 2002 -McShane, Michael (I) A Bug's Life 1998 -McShane, Michael (I) Robin Hood: Prince of Thieves 1991 -Greene, Peter (I) Pulp Fiction 1994 -Greene, Peter (I) Training Day 2001 -Greene, Peter (I) Blue Streak 1999 -Greene, Peter (I) The Mask 1994 -Hankin, Larry Money Talks 1997 -Hankin, Larry Home Alone 1990 -Hankin, Larry Pretty Woman 1990 -Hankin, Larry Running Scared 1986 -Hankin, Larry Vegas Vacation 1997 -Alex, Cindi Paul Blart: Mall Cop 2009 -Alex, Cindi The Game Plan 2007 -Alex, Cindi The Fighter 2010 -Alex, Cindi Grown Ups 2010 -Hytner, Steve Face/Off 1997 -Hytner, Steve In the Line of Fire 1993 -Hytner, Steve Forces of Nature 1999 -Hytner, Steve The Haunted Mansion 2003 -Hytner, Steve Charlie's Angels: Full Throttle 2003 -Tait, Douglas Star Trek 2009 -Tait, Douglas Land of the Lost 2009 -Tait, Douglas Zathura: A Space Adventure 2005 -Tait, Douglas Thor 2011 -Keane, James (I) Phenomenon 1996 -Keane, James (I) Apocalypse Now 1979 -Keane, James (I) Crazy Heart 2009 -Keane, James (I) Seabiscuit 2003 -Keane, James (I) Close Encounters of the Third Kind 1977 -Keane, James (I) Water for Elephants 2011 -Keane, James (I) Pleasantville 1998 -Santana, Gito The Fifth Element 1997 -Santana, Gito Gandhi 1982 -Santana, Gito Octopussy 1983 -Sparrow, David (I) The Pacifier 2005 -Sparrow, David (I) Serendipity 2001 -Sparrow, David (I) The Hurricane 1999 -Sparrow, David (I) Shall We Dance 2004 -Sparrow, David (I) Four Brothers 2005 -Sparrow, David (I) The Santa Clause 1994 -Drake, Judith Intolerable Cruelty 2003 -Drake, Judith Baby Geniuses 1999 -Drake, Judith The Holiday 2006 -Drake, Judith Armageddon 1998 -Hules, Endre The Peacemaker 1997 -Hules, Endre Angels & Demons 2009 -Hules, Endre Se7en 1995 -Hules, Endre Apollo 13 1995 -Hules, Endre Zoolander 2001 -Faircrest, Jonn Flightplan 2005 -Faircrest, Jonn Wedding Crashers 2005 -Faircrest, Jonn Angels & Demons 2009 -Kehoe, Michael G. Jerry Maguire 1996 -Kehoe, Michael G. The Fast and the Furious 2001 -Kehoe, Michael G. Vanilla Sky 2001 -Kehoe, Michael G. Mission: Impossible III 2006 -Poe, Arvell Drumline 2002 -Poe, Arvell Sweet Home Alabama 2002 -Poe, Arvell Madea's Family Reunion 2006 -Poe, Arvell Remember the Titans 2000 -Hoover, Kelly (I) Chicken Little 2005 -Hoover, Kelly (I) Meet the Robinsons 2007 -Hoover, Kelly (I) The Princess and the Frog 2009 -Hoover, Kelly (I) Bolt 2008 -Van Ville, Max Bad Santa 2003 -Van Ville, Max Percy Jackson & the Olympians: The Lightning Thief 2010 -Van Ville, Max Big Momma's House 2 2006 -Van Ville, Max Halloween 2007 -Mewes, Jason Zack and Miri Make a Porno 2008 -Mewes, Jason Scream 3 2000 -Mewes, Jason Dogma 1999 -Littlefield, John (I) Hulk 2003 -Littlefield, John (I) Beowulf 2007 -Littlefield, John (I) The Lake House 2006 -Houdyshell, Jayne Garden State 2004 -Houdyshell, Jayne Maid in Manhattan 2002 -Houdyshell, Jayne Changing Lanes 2002 -Plakson, Suzie Wag the Dog 1997 -Plakson, Suzie Red Eye 2005 -Plakson, Suzie Disclosure 1994 -Fluker, Keith Shutter Island 2010 -Fluker, Keith Ghosts of Girlfriends Past 2009 -Fluker, Keith The Town 2010 -Fluker, Keith Knight and Day 2010 -Fluker, Keith Paul Blart: Mall Cop 2009 -Wheaton, Wil Star Trek 2009 -Wheaton, Wil Star Trek: Nemesis 2002 -Wheaton, Wil Flubber 1997 -Wheaton, Wil Stand by Me 1986 -Cardellini, Linda Brokeback Mountain 2005 -Cardellini, Linda Scooby-Doo 2002 -Cardellini, Linda Scooby Doo 2: Monsters Unleashed 2004 -Cardellini, Linda Legally Blonde 2001 -Andersson, Kris Scream 2 1997 -Andersson, Kris Wild Wild West 1999 -Andersson, Kris Titanic 1997 -Boyer, Katy The Lost World: Jurassic Park 1997 -Boyer, Katy The Island 2005 -Boyer, Katy Minority Report 2002 -Thompson, Sophie (I) Monte Carlo 2011 -Thompson, Sophie (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Thompson, Sophie (I) Gosford Park 2001 -Thompson, Sophie (I) Four Weddings and a Funeral 1994 -Thompson, Sophie (I) Eat Pray Love 2010 -Nelson, Willie Wag the Dog 1997 -Nelson, Willie Austin Powers: The Spy Who Shagged Me 1999 -Nelson, Willie The Dukes of Hazzard 2005 -Tatum, Channing 21 Jump Street 2012 -Tatum, Channing Coach Carter 2005 -Tatum, Channing G.I. Joe: The Rise of Cobra 2009 -Tatum, Channing Step Up 2006 -Tatum, Channing Public Enemies 2009 -Tatum, Channing The Vow 2012 -Tatum, Channing Step Up 2: The Streets 2008 -Sigloch, Matt True Lies 1994 -Sigloch, Matt Courage Under Fire 1996 -Sigloch, Matt Batman Forever 1995 -McCall-Short, Tanee Coach Carter 2005 -McCall-Short, Tanee Starsky & Hutch 2004 -McCall-Short, Tanee Hairspray 2007 -LoGrasso, Sean Meet the Fockers 2004 -LoGrasso, Sean Million Dollar Baby 2004 -LoGrasso, Sean Herbie Fully Loaded 2005 -Burke, Carlease (I) Hop 2011 -Burke, Carlease (I) In Her Shoes 2005 -Burke, Carlease (I) The Terminal 2004 -Burke, Carlease (I) Freddy's Dead: The Final Nightmare 1991 -Burke, Carlease (I) The Out-of-Towners 1999 -Cutler, Tom Runaway Bride 1999 -Cutler, Tom Minority Report 2002 -Cutler, Tom A Civil Action 1998 -Cutler, Tom Syriana 2005 -Camp, Colleen Rat Race 2001 -Camp, Colleen Rumor Has It... 2005 -Camp, Colleen Apocalypse Now 1979 -Camp, Colleen Four Christmases 2008 -Camp, Colleen Police Academy 2: Their First Assignment 1985 -Camp, Colleen Die Hard: With a Vengeance 1995 -Camp, Colleen Speed 2: Cruise Control 1997 -Camp, Colleen Last Action Hero 1993 -Sagastizado I, Tony National Treasure 2004 -Sagastizado I, Tony Coach Carter 2005 -Sagastizado I, Tony The Terminal 2004 -Sagastizado I, Tony Bridesmaids 2011 -Sagastizado I, Tony Collateral 2004 -Sagastizado I, Tony Knight and Day 2010 -Schmidtke, Ned Mercury Rising 1998 -Schmidtke, Ned My Best Friend's Wedding 1997 -Schmidtke, Ned The Relic 1997 -Schmidtke, Ned Wedding Crashers 2005 -Levy, Shawn (I) Cheaper by the Dozen 2 2005 -Levy, Shawn (I) Cheaper by the Dozen 2003 -Levy, Shawn (I) Night at the Museum: Battle of the Smithsonian 2009 -Donella, Chad Final Destination 2000 -Donella, Chad Saw 3D 2010 -Donella, Chad The Long Kiss Goodnight 1996 -Cox, Tony (I) Epic Movie 2007 -Cox, Tony (I) Star Wars: Episode VI - Return of the Jedi 1983 -Cox, Tony (I) Me, Myself & Irene 2000 -Cox, Tony (I) Date Movie 2006 -Cox, Tony (I) Bad Santa 2003 -Nouri, Michael The Terminal 2004 -Nouri, Michael Finding Forrester 2000 -Nouri, Michael Invincible 2006 -Frost, Darren Don't Say a Word 2001 -Frost, Darren Fever Pitch 2005 -Frost, Darren Hairspray 2007 -Mechoso, Julio Oscar Bad Boys 1995 -Mechoso, Julio Oscar Phone Booth 2002 -Mechoso, Julio Oscar Blue Streak 1999 -Mechoso, Julio Oscar Little Miss Sunshine 2006 -Mechoso, Julio Oscar Jurassic Park III 2001 -Mechoso, Julio Oscar The Legend of Zorro 2005 -Mechoso, Julio Oscar Vegas Vacation 1997 -Campagna, Christie The Scorpion King 2002 -Campagna, Christie Vanilla Sky 2001 -Campagna, Christie Ocean's Eleven 2001 -Hardrict, Cory Battle Los Angeles 2011 -Hardrict, Cory Never Been Kissed 1999 -Hardrict, Cory He's Just Not That Into You 2009 -Hardrict, Cory Gran Torino 2008 -Cleese, John George of the Jungle 1997 -Cleese, John Rat Race 2001 -Cleese, John Around the World in 80 Days 2004 -Cleese, John Pinocchio 2002 -Cleese, John The World Is Not Enough 1999 -Cleese, John Winnie the Pooh 2011 -Cleese, John Die Another Day 2002 -Cleese, John Shrek Forever After 2010 -Cleese, John Shrek the Third 2007 -Cleese, John The Day the Earth Stood Still 2008 -Cleese, John Planet 51 2009 -Cleese, John The Out-of-Towners 1999 -Cleese, John Shrek 2 2004 -Cleese, John Harry Potter and the Chamber of Secrets 2002 -Cleese, John Charlotte's Web 2006 -Cleese, John Harry Potter and the Sorcerer's Stone 2001 -Cleese, John Charlie's Angels: Full Throttle 2003 -Vigman, Gillian After the Sunset 2004 -Vigman, Gillian The Hangover Part II 2011 -Vigman, Gillian Step Brothers 2008 -Vigman, Gillian The 40 Year Old Virgin 2005 -Vigman, Gillian Date Night 2010 -Vigman, Gillian Aliens in the Attic 2009 -Vigman, Gillian The Hangover 2009 -Benítez, Benjamín (I) Frida 2002 -Benítez, Benjamín (I) Alexander 2004 -Benítez, Benjamín (I) Madea Goes to Jail 2009 -Peet, Amanda (I) Gulliver's Travels 2010 -Peet, Amanda (I) The Whole Nine Yards 2000 -Peet, Amanda (I) One Fine Day 1996 -Peet, Amanda (I) High Crimes 2002 -Peet, Amanda (I) Changing Lanes 2002 -Peet, Amanda (I) Something's Gotta Give 2003 -Peet, Amanda (I) Syriana 2005 -Peet, Amanda (I) Identity 2003 -Peet, Amanda (I) The X Files: I Want to Believe 2008 -Welsh, Kenneth The Day After Tomorrow 2004 -Welsh, Kenneth Absolute Power 1997 -Welsh, Kenneth Miracle 2004 -Welsh, Kenneth The Aviator 2004 -Welsh, Kenneth 4: Rise of the Silver Surfer 2007 -Welsh, Kenneth Timecop 1994 -Welsh, Kenneth The Exorcism of Emily Rose 2005 -Welsh, Kenneth 'Crocodile' Dundee II 1988 -Welsh, Kenneth Four Brothers 2005 -Bush, George (I) Fahrenheit 9/11 2004 -Bush, George (I) Bowling for Columbine 2002 -Bush, George (I) Courage Under Fire 1996 -Beamish, Jamie Atonement 2007 -Beamish, Jamie Hanna 2011 -Beamish, Jamie Robin Hood 2010 -Weaver, Jason (I) Drumline 2002 -Weaver, Jason (I) The Lion King 1994 -Weaver, Jason (I) The Ladykillers 2004 -Scheelar, Darryl Paycheck 2003 -Scheelar, Darryl Blade: Trinity 2004 -Scheelar, Darryl Watchmen 2009 -Scheelar, Darryl Scary Movie 4 2006 -Scheelar, Darryl Along Came a Spider 2001 -Chandler, Simon (I) Perfume: The Story of a Murderer 2006 -Chandler, Simon (I) Spice World 1997 -Chandler, Simon (I) The King's Speech 2010 -Applegate, Christina Alvin and the Chipmunks: Chipwrecked 2011 -Applegate, Christina Anchorman: The Legend of Ron Burgundy 2004 -Applegate, Christina Alvin and the Chipmunks: The Squeakquel 2009 -Applegate, Christina Mars Attacks! 1996 -Applegate, Christina Cats & Dogs: The Revenge of Kitty Galore 2010 -Marshall-Fricker, Charlotte The Princess Diaries 2001 -Marshall-Fricker, Charlotte The Princess Diaries 2: Royal Engagement 2004 -Marshall-Fricker, Charlotte New Year's Eve 2011 -Marshall-Fricker, Charlotte Raising Helen 2004 -Dillane, Stephen King Arthur 2004 -Dillane, Stephen Spy Game 2001 -Dillane, Stephen The Hours 2002 -Kocsis, Apple Shallow Hal 2001 -Kocsis, Apple The Three Stooges 2012 -Kocsis, Apple The Heartbreak Kid 2007 -Lacamara, Carlos The Mexican 2001 -Lacamara, Carlos Independence Day 1996 -Lacamara, Carlos 10 Things I Hate About You 1999 -Ales, John D-War 2007 -Ales, John The Nutty Professor 1996 -Ales, John Nutty Professor II: The Klumps 2000 -DeCarlo, Mark Jimmy Neutron: Boy Genius 2001 -DeCarlo, Mark Raising Helen 2004 -DeCarlo, Mark The Ant Bully 2006 -Hunt, Helen (I) Twister 1996 -Hunt, Helen (I) What Women Want 2000 -Hunt, Helen (I) Pay It Forward 2000 -Hunt, Helen (I) Cast Away 2000 -Hunt, Helen (I) As Good as It Gets 1997 -Garlin, Jeff Cars 2 2011 -Garlin, Jeff After the Sunset 2004 -Garlin, Jeff Austin Powers: The Spy Who Shagged Me 1999 -Garlin, Jeff Toy Story 3 2010 -Garlin, Jeff Fun with Dick and Jane 2005 -Garlin, Jeff WALL·E 2008 -Garlin, Jeff Daddy Day Care 2003 -Garlin, Jeff Fat Albert 2004 -Jaffrey, Sakina Daylight 1996 -Jaffrey, Sakina The Manchurian Candidate 2004 -Jaffrey, Sakina Raising Helen 2004 -O'Rourke, Mick (I) Ransom 1996 -O'Rourke, Mick (I) Sleepers 1996 -O'Rourke, Mick (I) The Departed 2006 -Tsang, Kenneth Memoirs of a Geisha 2005 -Tsang, Kenneth Die Another Day 2002 -Tsang, Kenneth Rush Hour 2 2001 -Tsang, Kenneth Anna and the King 1999 -MacNeill, Peter (I) Frequency 2000 -MacNeill, Peter (I) Open Range 2003 -MacNeill, Peter (I) Cinderella Man 2005 -MacNeill, Peter (I) A History of Violence 2005 -Columbus, Violet Harry Potter and the Chamber of Secrets 2002 -Columbus, Violet Percy Jackson & the Olympians: The Lightning Thief 2010 -Columbus, Violet Harry Potter and the Prisoner of Azkaban 2004 -Del Spina, Jordan The Ant Bully 2006 -Del Spina, Jordan Meet the Robinsons 2007 -Del Spina, Jordan Home on the Range 2004 -Del Spina, Jordan Over the Hedge 2006 -Del Spina, Jordan Thank You for Smoking 2005 -White, Bernard (I) The Matrix Reloaded 2003 -White, Bernard (I) City of Angels 1998 -White, Bernard (I) Pay It Forward 2000 -White, Bernard (I) The Matrix Revolutions 2003 -White, Bernard (I) Alvin and the Chipmunks: The Squeakquel 2009 -White, Bernard (I) Raising Helen 2004 -White, Bernard (I) The Scorpion King 2002 -Abell, Alistair Diary of a Wimpy Kid 2010 -Abell, Alistair Freddy vs. Jason 2003 -Abell, Alistair Are We There Yet? 2005 -Alexander, Jason (I) Shallow Hal 2001 -Alexander, Jason (I) Pretty Woman 1990 -Alexander, Jason (I) The Hunchback of Notre Dame 1996 -Powell, Clifton Norbit 2007 -Powell, Clifton Rush Hour 1998 -Powell, Clifton Next Friday 2000 -Pavel, Philip Scream 2 1997 -Pavel, Philip 13 Going on 30 2004 -Pavel, Philip The Wedding Planner 2001 -Pavel, Philip Red Eye 2005 -Pavel, Philip The Shaggy Dog 2006 -Efremov, Mikhail Rzhevskiy protiv Napoleona 2012 -Efremov, Mikhail Ironiya sudby. Prodolzhenie 2007 -Efremov, Mikhail 9 rota 2005 -Efremov, Mikhail 12 2007 -Moore, Jack (IV) Stargate 1994 -Moore, Jack (IV) Godzilla 1998 -Moore, Jack (IV) Independence Day 1996 -Moore, Jack (IV) Universal Soldier 1992 -Moore, Jack (IV) The Patriot 2000 -Bode, Ben Double Jeopardy 1999 -Bode, Ben Apollo 13 1995 -Bode, Ben Six Days Seven Nights 1998 -Bode, Ben Godzilla 1998 -Luenell The Rock 1996 -Luenell Think Like a Man 2012 -Luenell Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan 2006 -Pasquesi, David Groundhog Day 1993 -Pasquesi, David Angels & Demons 2009 -Pasquesi, David The Fugitive 1993 -Pasquesi, David Return to Me 2000 -Villaluz, Jerome Pirates of the Caribbean: At World's End 2007 -Villaluz, Jerome Knocked Up 2007 -Villaluz, Jerome Beverly Hills Chihuahua 2008 -Ortiz, John (I) American Gangster 2007 -Ortiz, John (I) Amistad 1997 -Ortiz, John (I) Ransom 1996 -Ortiz, John (I) Fast & Furious 2009 -Ortiz, John (I) Miami Vice 2006 -Ortiz, John (I) Public Enemies 2009 -Ortiz, John (I) AVPR: Aliens vs Predator - Requiem 2007 -Menshov, Vladimir Shirli-Myrli 1995 -Menshov, Vladimir Kod apokalipsisa 2007 -Menshov, Vladimir Dnevnoy dozor 2006 -Menshov, Vladimir Nochnoy dozor 2004 -Krige, Alice Star Trek: First Contact 1996 -Krige, Alice Silent Hill 2006 -Krige, Alice Chariots of Fire 1981 -Krige, Alice The Sorcerer's Apprentice 2010 -Krige, Alice Reign of Fire 2002 -Arquette, David Scream 2 1997 -Arquette, David Scream 4 2011 -Arquette, David Scream 1996 -Arquette, David Never Been Kissed 1999 -Arquette, David The Adventures of Sharkboy and Lavagirl 3-D 2005 -Arquette, David Scream 3 2000 -Glanfield, Tim Sweeney Todd: The Demon Barber of Fleet Street 2007 -Glanfield, Tim The Golden Compass 2007 -Glanfield, Tim The Chronicles of Narnia: Prince Caspian 2008 -Gudelman, Sophya Paul Blart: Mall Cop 2009 -Gudelman, Sophya Ghosts of Girlfriends Past 2009 -Gudelman, Sophya Bride Wars 2009 -Fung, Kevin Spider-Man 3 2007 -Fung, Kevin National Treasure: Book of Secrets 2007 -Fung, Kevin Step Up 3D 2010 -Fung, Kevin Alvin and the Chipmunks 2007 -White, Lillias Hercules 1997 -White, Lillias Anastasia 1997 -White, Lillias How the Grinch Stole Christmas 2000 -Nielsen, Connie (I) Mission to Mars 2000 -Nielsen, Connie (I) The Devil's Advocate 1997 -Nielsen, Connie (I) Gladiator 2000 -Nielsen, Connie (I) One Hour Photo 2002 -Jeremiah, Michael The Taking of Pelham 1 2 3 2009 -Jeremiah, Michael Precious 2009 -Jeremiah, Michael Wanted 2008 -Jeremiah, Michael The Other Guys 2010 -Jeremiah, Michael Men in Black 3 2012 -Stewart, Kristen (I) Panic Room 2002 -Stewart, Kristen (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Stewart, Kristen (I) Snow White and the Huntsman 2012 -Stewart, Kristen (I) New Moon 2009 -Stewart, Kristen (I) Jumper 2008 -Stewart, Kristen (I) Zathura: A Space Adventure 2005 -Stewart, Kristen (I) The Twilight Saga: Eclipse 2010 -Stewart, Kristen (I) The Flintstones in Viva Rock Vegas 2000 -Price, Steven James Iron Man 2 2010 -Price, Steven James New Year's Eve 2011 -Price, Steven James Contagion 2011 -Price, Steven James Public Enemies 2009 -Hyde-White, Alex Catch Me If You Can 2002 -Hyde-White, Alex Indiana Jones and the Last Crusade 1989 -Hyde-White, Alex Pretty Woman 1990 -Fiore, Aaron Anger Management 2003 -Fiore, Aaron Domestic Disturbance 2001 -Fiore, Aaron Divine Secrets of the Ya-Ya Sisterhood 2002 -Kent, Allan Runaway Bride 1999 -Kent, Allan The Princess Diaries 2001 -Kent, Allan The Princess Diaries 2: Royal Engagement 2004 -Kent, Allan Pretty Woman 1990 -Wiles, Michael Shamus D-War 2007 -Wiles, Michael Shamus The X Files 1998 -Wiles, Michael Shamus Magnolia 1999 -Wiles, Michael Shamus Fight Club 1999 -Wiles, Michael Shamus The Negotiator 1998 -Wiles, Michael Shamus Conspiracy Theory 1997 -Wiles, Michael Shamus Artificial Intelligence: AI 2001 -Wiles, Michael Shamus Dude, Where's My Car? 2000 -Wiles, Michael Shamus Pearl Harbor 2001 -Wiles, Michael Shamus Transformers 2007 -Rathbone, Jackson The Twilight Saga: Breaking Dawn - Part 1 2011 -Rathbone, Jackson The Twilight Saga: Eclipse 2010 -Rathbone, Jackson The Last Airbender 2010 -Rathbone, Jackson New Moon 2009 -Wilde, Olivia In Time 2011 -Wilde, Olivia Cowboys & Aliens 2011 -Wilde, Olivia TRON: Legacy 2010 -Lawrence, Carolyn (I) Jimmy Neutron: Boy Genius 2001 -Lawrence, Carolyn (I) The SpongeBob SquarePants Movie 2004 -Lawrence, Carolyn (I) The Wild 2006 -Bradford, Jesse (I) Clockstoppers 2002 -Bradford, Jesse (I) Bring It On 2000 -Bradford, Jesse (I) Romeo + Juliet 1996 -Bradford, Jesse (I) Presumed Innocent 1990 -Capp, Christopher S. Pirates of the Caribbean: Dead Man's Chest 2006 -Capp, Christopher S. Pirates of the Caribbean: At World's End 2007 -Capp, Christopher S. Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Hubbard, Erica The Sisterhood of the Traveling Pants 2005 -Hubbard, Erica Save the Last Dance 2001 -Hubbard, Erica A Cinderella Story 2004 -Lauter, Ed Talladega Nights: The Ballad of Ricky Bobby 2006 -Lauter, Ed The Longest Yard 2005 -Lauter, Ed The Artist 2011 -Lauter, Ed Seabiscuit 2003 -O'Donnell, Chris (I) Max Payne 2008 -O'Donnell, Chris (I) Vertical Limit 2000 -O'Donnell, Chris (I) Batman & Robin 1997 -O'Donnell, Chris (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -O'Donnell, Chris (I) Batman Forever 1995 -Yerrid, Victor Forgetting Sarah Marshall 2008 -Yerrid, Victor Team America: World Police 2004 -Yerrid, Victor Just Like Heaven 2005 -Yerrid, Victor The Hangover 2009 -Jeffreys, Chuck Hannibal 2001 -Jeffreys, Chuck The Pink Panther 2006 -Jeffreys, Chuck Twelve Monkeys 1995 -Nunez, Joe (I) Rango 2011 -Nunez, Joe (I) Bridesmaids 2011 -Nunez, Joe (I) The 40 Year Old Virgin 2005 -Nunez, Joe (I) Funny People 2009 -Nunez, Joe (I) The Pursuit of Happyness 2006 -Nunez, Joe (I) Superbad 2007 -Perez, Rosie The Other Guys 2010 -Perez, Rosie Pineapple Express 2008 -Perez, Rosie The Road to El Dorado 2000 -Dantzler, LaJon Step Up 3D 2010 -Dantzler, LaJon Step Up 2: The Streets 2008 -Dantzler, LaJon Friends with Benefits 2011 -James, Hawthorne Speed 1994 -James, Hawthorne Amistad 1997 -James, Hawthorne Se7en 1995 -Reilly, Kelly (I) Sherlock Holmes 2009 -Reilly, Kelly (I) Pride & Prejudice 2005 -Reilly, Kelly (I) Sherlock Holmes: A Game of Shadows 2011 -Wolf, Matthew Quantum of Solace 2008 -Wolf, Matthew Rambo 2008 -Wolf, Matthew Pirates of the Caribbean: At World's End 2007 -Wolf, Matthew Rio 2011 -Wolf, Matthew The Girl with the Dragon Tattoo 2011 -Wolf, Matthew Mr. Popper's Penguins 2011 -KB, Forbes Made of Honor 2008 -KB, Forbes V for Vendetta 2005 -KB, Forbes National Treasure: Book of Secrets 2007 -KB, Forbes The Queen 2006 -KB, Forbes The Golden Compass 2007 -KB, Forbes Gulliver's Travels 2010 -Van de Kamp Buchanan, Ryan Flubber 1997 -Van de Kamp Buchanan, Ryan The Hangover 2009 -Van de Kamp Buchanan, Ryan Angels & Demons 2009 -Van de Kamp Buchanan, Ryan The Lincoln Lawyer 2011 -Van de Kamp Buchanan, Ryan Hancock 2008 -Dillin, Scott A Perfect Murder 1998 -Dillin, Scott American Gangster 2007 -Dillin, Scott Salt 2010 -Dillin, Scott The Smurfs 2011 -Hennesy, Carolyn (I) Legally Blonde 2: Red, White & Blonde 2003 -Hennesy, Carolyn (I) Ghost Rider 2007 -Hennesy, Carolyn (I) Click 2006 -Hennesy, Carolyn (I) Terminator 3: Rise of the Machines 2003 -Ibrahim, Bill A Nightmare on Elm Street 2010 -Ibrahim, Bill Eagle Eye 2008 -Ibrahim, Bill Public Enemies 2009 -Hurt, John Harry Potter and the Deathly Hallows: Part 2 2011 -Hurt, John Hellboy II: The Golden Army 2008 -Hurt, John Captain Corelli's Mandolin 2001 -Hurt, John The Tigger Movie 2000 -Hurt, John The Skeleton Key 2005 -Hurt, John Indiana Jones and the Kingdom of the Crystal Skull 2008 -Hurt, John Alien 1979 -Hurt, John Hellboy 2004 -Hurt, John Contact 1997 -Hurt, John V for Vendetta 2005 -Hurt, John Perfume: The Story of a Murderer 2006 -Hurt, John Harry Potter and the Deathly Hallows: Part 1 2010 -Hurt, John Immortals 2011 -Hurt, John Harry Potter and the Sorcerer's Stone 2001 -Hurt, John Tinker Tailor Soldier Spy 2011 -Reim, Donna Glee Shutter Island 2010 -Reim, Donna Glee Paul Blart: Mall Cop 2009 -Reim, Donna Glee Bride Wars 2009 -Reim, Donna Glee Ghosts of Girlfriends Past 2009 -Reim, Donna Glee Knight and Day 2010 -Reim, Donna Glee Grown Ups 2010 -Reim, Donna Glee Zookeeper 2011 -Dumaurier, Francis A Perfect Murder 1998 -Dumaurier, Francis Julie & Julia 2009 -Dumaurier, Francis Beavis and Butt-Head Do America 1996 -Merchant, Larry Rocky Balboa 2006 -Merchant, Larry The Fighter 2010 -Merchant, Larry Ocean's Eleven 2001 -Jacobs, Gideon You've Got Mail 1998 -Jacobs, Gideon Mr. Deeds 2002 -Jacobs, Gideon One Fine Day 1996 -Gotell, Walter Octopussy 1983 -Gotell, Walter A View to a Kill 1985 -Gotell, Walter The Living Daylights 1987 -Gotell, Walter For Your Eyes Only 1981 -Gotell, Walter Moonraker 1979 -Hawe, Cheryl Ghosts of Girlfriends Past 2009 -Hawe, Cheryl Grown Ups 2010 -Hawe, Cheryl Zookeeper 2011 -Anthony, Bryan (I) 500) Days of Summer 2009 -Anthony, Bryan (I) Mr. & Mrs. Smith 2005 -Anthony, Bryan (I) Guess Who 2005 -Piven, Jeremy Scary Movie 3 2003 -Piven, Jeremy Black Hawk Down 2001 -Piven, Jeremy Serendipity 2001 -Piven, Jeremy The Family Man 2000 -Piven, Jeremy Cars 2006 -Piven, Jeremy Spy Kids: All the Time in the World in 4D 2011 -Piven, Jeremy Runaway Jury 2003 -Piven, Jeremy Kiss the Girls 1997 -Piven, Jeremy Heat 1995 -Piven, Jeremy Rush Hour 2 2001 -Piven, Jeremy Old School 2003 -Knowles, Beyoncé The Pink Panther 2006 -Knowles, Beyoncé Austin Powers in Goldmember 2002 -Knowles, Beyoncé Dreamgirls 2006 -Mull, Martin Mrs. Doubtfire 1993 -Mull, Martin Killers 2010 -Mull, Martin Jingle All the Way 1996 -Murphy, Danny (I) Me, Myself & Irene 2000 -Murphy, Danny (I) Fever Pitch 2005 -Murphy, Danny (I) There's Something About Mary 1998 -Murphy, Danny (I) Shallow Hal 2001 -Venora, Diane The Jackal 1997 -Venora, Diane Heat 1995 -Venora, Diane Romeo + Juliet 1996 -Venora, Diane The Insider 1999 -Venora, Diane The 13th Warrior 1999 -Krasnoff, Mark Runaway Jury 2003 -Krasnoff, Mark The Skeleton Key 2005 -Krasnoff, Mark Glory Road 2006 -Preston, J.A. A Few Good Men 1992 -Preston, J.A. Air Force One 1997 -Preston, J.A. Contact 1997 -Abrell, Brad Chicken Little 2005 -Abrell, Brad Men in Black 3 2012 -Abrell, Brad Men in Black 1997 -Abrell, Brad Men in Black II 2002 -Sheen, Charlie (I) Money Talks 1997 -Sheen, Charlie (I) Wall Street: Money Never Sleeps 2010 -Sheen, Charlie (I) Scary Movie 4 2006 -Sheen, Charlie (I) Wall Street 1987 -Sheen, Charlie (I) Ferris Bueller's Day Off 1986 -Sheen, Charlie (I) Being John Malkovich 1999 -Sheen, Charlie (I) Scary Movie 3 2003 -Sheen, Charlie (I) Due Date 2010 -Albala, Michael (I) The Muppets 2011 -Albala, Michael (I) Contact 1997 -Albala, Michael (I) Horrible Bosses 2011 -Reed, Tanoai The Stepford Wives 2004 -Reed, Tanoai Daredevil 2003 -Reed, Tanoai Charlie's Angels: Full Throttle 2003 -Reed, Tanoai Constantine 2005 -Sciacca, Nicole Bedtime Stories 2008 -Sciacca, Nicole Get Him to the Greek 2010 -Sciacca, Nicole Austin Powers in Goldmember 2002 -Richards, Craig (I) The Flintstones 1994 -Richards, Craig (I) Rat Race 2001 -Richards, Craig (I) The Princess Diaries 2001 -Williams, Vanessa (VII) Johnson Family Vacation 2004 -Williams, Vanessa (VII) Eraser 1996 -Williams, Vanessa (VII) Hannah Montana: The Movie 2009 -Williams, Vanessa (VII) Soul Food 1997 -Williams, Vanessa (VII) Shaft 2000 -Miller, Larry (I) The Princess Diaries 2001 -Miller, Larry (I) Bee Movie 2007 -Miller, Larry (I) 10 Things I Hate About You 1999 -Miller, Larry (I) The Ant Bully 2006 -Miller, Larry (I) New Year's Eve 2011 -Miller, Larry (I) Pretty Woman 1990 -Miller, Larry (I) Nutty Professor II: The Klumps 2000 -Miller, Larry (I) The Princess Diaries 2: Royal Engagement 2004 -Miller, Larry (I) Get Smart 2008 -Miller, Larry (I) The Nutty Professor 1996 -Miller, Larry (I) Runaway Bride 1999 -Miller, Larry (I) Raising Helen 2004 -Song, Brenda College Road Trip 2008 -Song, Brenda Like Mike 2002 -Song, Brenda The Social Network 2010 -Lyons, Derek Star Wars 1977 -Lyons, Derek Yentl 1983 -Lyons, Derek Octopussy 1983 -Lyons, Derek Gandhi 1982 -Lyons, Derek Who Framed Roger Rabbit 1988 -Lyons, Derek A View to a Kill 1985 -Lyons, Derek Indiana Jones and the Last Crusade 1989 -Lyons, Derek Superman II 1980 -Lyons, Derek GoldenEye 1995 -Lyons, Derek The Living Daylights 1987 -Collier, Marian Lethal Weapon 2 1989 -Collier, Marian Lethal Weapon 4 1998 -Collier, Marian Conspiracy Theory 1997 -Collier, Marian Lethal Weapon 3 1992 -Winslet, Kate The Holiday 2006 -Winslet, Kate Finding Neverland 2004 -Winslet, Kate Contagion 2011 -Winslet, Kate Flushed Away 2006 -Winslet, Kate Titanic 1997 -Winslet, Kate The Reader 2008 -Winslet, Kate Eternal Sunshine of the Spotless Mind 2004 -Winslet, Kate Deep Sea 2006 -Lucas, George (I) Star Wars: Episode III - Revenge of the Sith 2005 -Lucas, George (I) Indiana Jones and the Temple of Doom 1984 -Lucas, George (I) Hook 1991 -Lucas, George (I) Men in Black 1997 -McCallany, Holt Alien³ 1992 -McCallany, Holt Vantage Point 2008 -McCallany, Holt The Peacemaker 1997 -McCallany, Holt Fight Club 1999 -McCallany, Holt Men of Honor 2000 -McCallany, Holt Three Kings 1999 -Rao, Dileep Inception 2010 -Rao, Dileep Avatar 2009 -Rao, Dileep Drag Me to Hell 2009 -Bueno, Rico Little Nicky 2000 -Bueno, Rico Alien: Resurrection 1997 -Bueno, Rico Boogie Nights 1997 -Mazzello, Joseph Jurassic Park 1993 -Mazzello, Joseph The Social Network 2010 -Mazzello, Joseph The Lost World: Jurassic Park 1997 -Mazzello, Joseph Presumed Innocent 1990 -Mazzello, Joseph Raising Helen 2004 -White, Mike (I) The Stepford Wives 2004 -White, Mike (I) The School of Rock 2003 -White, Mike (I) Zombieland 2009 -Thompson, Lea (I) J. Edgar 2011 -Thompson, Lea (I) Back to the Future Part III 1990 -Thompson, Lea (I) Back to the Future 1985 -Thompson, Lea (I) Back to the Future Part II 1989 -Baker, Kenny (I) Star Wars: Episode III - Revenge of the Sith 2005 -Baker, Kenny (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Baker, Kenny (I) Star Wars 1977 -Baker, Kenny (I) Amadeus 1984 -Baker, Kenny (I) Star Wars: Episode I - The Phantom Menace 1999 -Baker, Kenny (I) Star Wars: Episode VI - Return of the Jedi 1983 -Baker, Kenny (I) Star Wars: Episode II - Attack of the Clones 2002 -Albertini Dow, Ellen Patch Adams 1998 -Albertini Dow, Ellen The Wedding Singer 1998 -Albertini Dow, Ellen Sister Act 1992 -Albertini Dow, Ellen Wedding Crashers 2005 -Albertini Dow, Ellen Road Trip 2000 -Butler, Basilina World Trade Center 2006 -Butler, Basilina Iron Man 2 2010 -Butler, Basilina The Prestige 2006 -Hagerty, Mike Austin Powers: The Spy Who Shagged Me 1999 -Hagerty, Mike Inspector Gadget 1999 -Hagerty, Mike Speed 2: Cruise Control 1997 -Randle, Theresa Space Jam 1996 -Randle, Theresa Malcolm X 1992 -Randle, Theresa Bad Boys 1995 -Randle, Theresa Bad Boys II 2003 -Randle, Theresa Spawn 1997 -McGarry, Dara Chicken Little 2005 -McGarry, Dara Meet the Robinsons 2007 -McGarry, Dara Bolt 2008 -Gonzalo, Julie Freaky Friday 2003 -Gonzalo, Julie Dodgeball: A True Underdog Story 2004 -Gonzalo, Julie Christmas with the Kranks 2004 -Gonzalo, Julie A Cinderella Story 2004 -Gonzalo, Julie Must Love Dogs 2005 -Mitchell, Daryl (I) Inside Man 2006 -Mitchell, Daryl (I) Black Knight 2001 -Mitchell, Daryl (I) 10 Things I Hate About You 1999 -Mitchell, Daryl (I) Galaxy Quest 1999 -Looney, Peter Pee-wee's Big Adventure 1985 -Looney, Peter The Town 2010 -Looney, Peter Outbreak 1995 -Elli (V) Enchanted 2007 -Elli (V) Cop Out 2010 -Elli (V) P.S. I Love You 2007 -Elli (V) The Taking of Pelham 1 2 3 2009 -Elli (V) 27 Dresses 2008 -Shrapnel, John Troy 2004 -Shrapnel, John Notting Hill 1999 -Shrapnel, John Gladiator 2000 -Shrapnel, John K-19: The Widowmaker 2002 -Shrapnel, John 101 Dalmatians 1996 -Woods, Levi Firewall 2006 -Woods, Levi Eight Below 2006 -Woods, Levi Paycheck 2003 -Bartha, Justin National Treasure 2004 -Bartha, Justin The Hangover 2009 -Bartha, Justin National Treasure: Book of Secrets 2007 -Bartha, Justin Failure to Launch 2006 -Bartha, Justin The Hangover Part II 2011 -Baker, Kathy (I) The Cider House Rules 1999 -Baker, Kathy (I) 13 Going on 30 2004 -Baker, Kathy (I) Cold Mountain 2003 -Suplee, Ethan Dogma 1999 -Suplee, Ethan Unstoppable 2010 -Suplee, Ethan John Q 2002 -Suplee, Ethan Remember the Titans 2000 -Suplee, Ethan Road Trip 2000 -Suplee, Ethan The Butterfly Effect 2004 -Suplee, Ethan Cold Mountain 2003 -Suplee, Ethan Evolution 2001 -Suplee, Ethan Without a Paddle 2004 -Suplee, Ethan Blow 2001 -Ferguson, Liam J. Edgar 2011 -Ferguson, Liam National Treasure: Book of Secrets 2007 -Ferguson, Liam He's Just Not That Into You 2009 -Ferguson, Liam Live Free or Die Hard 2007 -Ferguson, Liam Burn After Reading 2008 -Ferguson, Liam Transformers: Dark of the Moon 2011 -Goto, Al Charlie's Angels 2000 -Goto, Al The Master of Disguise 2002 -Goto, Al The Book of Eli 2010 -Goto, Al Spider-Man 2002 -Clinton, Bill (I) The Siege 1998 -Clinton, Bill (I) The Queen 2006 -Clinton, Bill (I) Live Free or Die Hard 2007 -Clinton, Bill (I) The Cable Guy 1996 -Clinton, Bill (I) Rumor Has It... 2005 -Clinton, Bill (I) Bowling for Columbine 2002 -Clinton, Bill (I) Contact 1997 -Clinton, Bill (I) Fahrenheit 9/11 2004 -Blair, Joan (III) Charlie's Angels: Full Throttle 2003 -Blair, Joan (III) Daddy Day Care 2003 -Blair, Joan (III) Legally Blonde 2001 -Blair, Joan (III) He's Just Not That Into You 2009 -Blair, Joan (III) Rumor Has It... 2005 -Logan, Ricky Dean Back to the Future Part III 1990 -Logan, Ricky Dean Freddy's Dead: The Final Nightmare 1991 -Logan, Ricky Dean Back to the Future Part II 1989 -Rasche, David Divine Secrets of the Ya-Ya Sisterhood 2002 -Rasche, David United 93 2006 -Rasche, David Burn After Reading 2008 -Rasche, David Men in Black 3 2012 -Rasche, David Just Married 2003 -Chalaire, Kristi Failure to Launch 2006 -Chalaire, Kristi Big Momma's House 2 2006 -Chalaire, Kristi The Skeleton Key 2005 -LeFevre, Adam The Manchurian Candidate 2004 -LeFevre, Adam The Mirror Has Two Faces 1996 -LeFevre, Adam The Dictator 2012 -LeFevre, Adam The Lucky One 2012 -LeFevre, Adam Philadelphia 1993 -LeFevre, Adam College Road Trip 2008 -LeFevre, Adam Jungle 2 Jungle 1997 -LeFevre, Adam In & Out 1997 -LeFevre, Adam Miss Congeniality 2: Armed and Fabulous 2005 -LeFevre, Adam Two Weeks Notice 2002 -Majors, Paul The Replacements 2000 -Majors, Paul Ladder 49 2004 -Majors, Paul Red Dragon 2002 -Majors, Paul Enemy of the State 1998 -Tambakis, Peter Anthony The Sixth Sense 1999 -Tambakis, Peter Anthony Ransom 1996 -Tambakis, Peter Anthony Little Nicky 2000 -Burgess, Mark (I) Miracle 2004 -Burgess, Mark (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Burgess, Mark (I) Scary Movie 4 2006 -Burgess, Mark (I) Scooby Doo 2: Monsters Unleashed 2004 -Mellor, Steve (II) Mickey Blue Eyes 1999 -Mellor, Steve (II) Sleepless in Seattle 1993 -Mellor, Steve (II) Dan in Real Life 2007 -Smith, David P. Monsters vs Aliens 2009 -Smith, David P. Madagascar 2005 -Smith, David P. Shark Tale 2004 -Smith, David P. Madagascar: Escape 2 Africa 2008 -Smith, David P. Shrek the Third 2007 -Smith, David P. Shrek 2 2004 -Jones, Kimberly 'Lil' Kim' She's All That 1999 -Jones, Kimberly 'Lil' Kim' Zoolander 2001 -Jones, Kimberly 'Lil' Kim' Superhero Movie 2008 -Docter, Pete The Incredibles 2004 -Docter, Pete WALL·E 2008 -Docter, Pete Up 2009 -Docter, Pete Monsters, Inc. 2001 -Wedge, Chris Ice Age: The Meltdown 2006 -Wedge, Chris Robots 2005 -Wedge, Chris Ice Age 2002 -Wedge, Chris Ice Age: Dawn of the Dinosaurs 2009 -Loughlin, Terry October Sky 1999 -Loughlin, Terry A Time to Kill 1996 -Loughlin, Terry Domestic Disturbance 2001 -Loughlin, Terry The Jackal 1997 -Judd, John (III) Road to Perdition 2002 -Judd, John (III) Public Enemies 2009 -Judd, John (III) Batman Begins 2005 -Moreira, Tony 27 Dresses 2008 -Moreira, Tony Underdog 2007 -Moreira, Tony The Game Plan 2007 -Coogan, Will Shallow Hal 2001 -Coogan, Will Me, Myself & Irene 2000 -Coogan, Will There's Something About Mary 1998 -Houston, William (I) Sherlock Holmes 2009 -Houston, William (I) Sherlock Holmes: A Game of Shadows 2011 -Houston, William (I) Clash of the Titans 2010 -Roberts, Bruce (IV) Phone Booth 2002 -Roberts, Bruce (IV) Batman & Robin 1997 -Roberts, Bruce (IV) Batman Forever 1995 -Green, Seth Rat Race 2001 -Green, Seth Austin Powers: The Spy Who Shagged Me 1999 -Green, Seth Austin Powers: International Man of Mystery 1997 -Green, Seth The Italian Job 2003 -Green, Seth Scooby Doo 2: Monsters Unleashed 2004 -Green, Seth Enemy of the State 1998 -Green, Seth Without a Paddle 2004 -Green, Seth America's Sweethearts 2001 -Green, Seth Austin Powers in Goldmember 2002 -Hoziel, Eric Snake Eyes 1998 -Hoziel, Eric The Jackal 1997 -Hoziel, Eric The Score 2001 -Horan, James Van Helsing 2004 -Horan, James The Sum of All Fears 2002 -Horan, James The Mummy Returns 2001 -Horan, James The Golden Compass 2007 -Linney, Laura Mystic River 2003 -Linney, Laura Congo 1995 -Linney, Laura The Truman Show 1998 -Linney, Laura The Exorcism of Emily Rose 2005 -Linney, Laura Absolute Power 1997 -Linney, Laura Love Actually 2003 -Merson, Susan Phenomenon 1996 -Merson, Susan Tootsie 1982 -Merson, Susan Terminator 3: Rise of the Machines 2003 -Conboy, Peter Mr. Popper's Penguins 2011 -Conboy, Peter The Dictator 2012 -Conboy, Peter The Sisterhood of the Traveling Pants 2 2008 -Conboy, Peter Enchanted 2007 -Conboy, Peter Sex and the City 2 2010 -Conboy, Peter Date Night 2010 -Conboy, Peter Step Up 3D 2010 -Conboy, Peter College Road Trip 2008 -Conboy, Peter 1408 2007 -Conboy, Peter Get Him to the Greek 2010 -Benz, Julie Saw V 2008 -Benz, Julie Rambo 2008 -Benz, Julie As Good as It Gets 1997 -Murray, Martin Glyn Lara Croft Tomb Raider: The Cradle of Life 2003 -Murray, Martin Glyn Enemy at the Gates 2001 -Murray, Martin Glyn Captain Corelli's Mandolin 2001 -Cavill, Henry Stardust 2007 -Cavill, Henry Immortals 2011 -Cavill, Henry The Count of Monte Cristo 2002 -Bannen, Ian Waking Ned 1998 -Bannen, Ian Braveheart 1995 -Bannen, Ian Gandhi 1982 -Shenkarow, Justin New Moon 2009 -Shenkarow, Justin Barnyard 2006 -Shenkarow, Justin Garfield: A Tail of Two Kitties 2006 -Shenkarow, Justin Bride Wars 2009 -Shenkarow, Justin Recess: School's Out 2001 -Serbedzija, Rade X-Men: First Class 2011 -Serbedzija, Rade Batman Begins 2005 -Serbedzija, Rade Harry Potter and the Deathly Hallows: Part 1 2010 -Serbedzija, Rade The Saint 1997 -Serbedzija, Rade Mission: Impossible II 2000 -Serbedzija, Rade Eyes Wide Shut 1999 -Serbedzija, Rade Mighty Joe Young 1998 -Serbedzija, Rade Space Cowboys 2000 -Serbedzija, Rade Stigmata 1999 -Manni, Vic Gone in Sixty Seconds 2000 -Manni, Vic Enemy of the State 1998 -Manni, Vic Beverly Hills Cop II 1987 -Manni, Vic Ali 2001 -Manni, Vic Armageddon 1998 -Manni, Vic Bad Boys 1995 -Reid, R.D. Dawn of the Dead 2004 -Reid, R.D. Cinderella Man 2005 -Reid, R.D. A History of Violence 2005 -Reid, R.D. Capote 2005 -Cartwright, Nancy (I) Godzilla 1998 -Cartwright, Nancy (I) The Little Mermaid 1989 -Cartwright, Nancy (I) The Simpsons Movie 2007 -Cartwright, Nancy (I) Rugrats Go Wild 2003 -Cartwright, Nancy (I) Who Framed Roger Rabbit 1988 -Cartwright, Nancy (I) CyberWorld 2000 -Gilborn, Steven Doctor Dolittle 1998 -Gilborn, Steven Alien: Resurrection 1997 -Gilborn, Steven Evolution 2001 -Vieluf, Vince Firewall 2006 -Vieluf, Vince Epic Movie 2007 -Vieluf, Vince Rat Race 2001 -Dalton, Timothy Licence to Kill 1989 -Dalton, Timothy Toy Story 3 2010 -Dalton, Timothy The Tourist 2010 -Dalton, Timothy The Living Daylights 1987 -Wood, Jody (I) Rules of Engagement 2000 -Wood, Jody (I) L.A. Confidential 1997 -Wood, Jody (I) Halloween H20: 20 Years Later 1998 -Campbell, Ken Hudson Bewitched 2005 -Campbell, Ken Hudson Dr. Dolittle 2 2001 -Campbell, Ken Hudson Coyote Ugly 2000 -Campbell, Ken Hudson Groundhog Day 1993 -Campbell, Ken Hudson Armageddon 1998 -Campbell, Ken Hudson Showtime 2002 -Campbell, Ken Hudson Home Alone 1990 -Johnson, Corey (I) The Mummy 1999 -Johnson, Corey (I) X-Men: First Class 2011 -Johnson, Corey (I) The Bourne Ultimatum 2007 -Johnson, Corey (I) Black Hawk Down 2001 -Johnson, Corey (I) Constantine 2005 -Johnson, Corey (I) Hellboy 2004 -Johnson, Corey (I) Kick-Ass 2010 -Johnson, Corey (I) United 93 2006 -Johnson, Corey (I) Saving Private Ryan 1998 -Johnson, Corey (I) Reign of Fire 2002 -Kamin, Danny Miss Congeniality 2000 -Kamin, Danny Interview with the Vampire: The Vampire Chronicles 1994 -Kamin, Danny Runaway Jury 2003 -Kamin, Danny The Rookie 2002 -Kamin, Danny The Bodyguard 1992 -DeRosa, Sara The Bourne Ultimatum 2007 -DeRosa, Sara Sex and the City 2 2010 -DeRosa, Sara I Am Legend 2007 -DeRosa, Sara Sex and the City 2008 -DeRosa, Sara The Other Guys 2010 -Adams, Amy (III) Enchanted 2007 -Adams, Amy (III) Charlie Wilson's War 2007 -Adams, Amy (III) Catch Me If You Can 2002 -Adams, Amy (III) Night at the Museum: Battle of the Smithsonian 2009 -Adams, Amy (III) Talladega Nights: The Ballad of Ricky Bobby 2006 -Adams, Amy (III) The Fighter 2010 -Adams, Amy (III) Julie & Julia 2009 -Adams, Amy (III) Underdog 2007 -Adams, Amy (III) The Muppets 2011 -Edgerly, Chris Chicken Little 2005 -Edgerly, Chris The Incredible Hulk 2008 -Edgerly, Chris X-Men Origins: Wolverine 2009 -Edgerly, Chris TMNT 2007 -Edgerly, Chris G.I. Joe: The Rise of Cobra 2009 -Edgerly, Chris The Incredibles 2004 -Edgerly, Chris Transformers: Revenge of the Fallen 2009 -Edgerly, Chris How to Train Your Dragon 2010 -Edgerly, Chris The Golden Compass 2007 -Edgerly, Chris The Lord of the Rings: The Return of the King 2003 -Edgerly, Chris Happy Feet 2006 -Edgerly, Chris The Polar Express 2004 -Edgerly, Chris The Wild 2006 -Edgerly, Chris Terminator Salvation 2009 -De Paul, Vincent Ali 2001 -De Paul, Vincent Angels & Demons 2009 -De Paul, Vincent Poseidon 2006 -De Paul, Vincent Sex and the City 2 2010 -De Paul, Vincent The Artist 2011 -De Paul, Vincent G-Force 2009 -De Paul, Vincent Maid in Manhattan 2002 -De Paul, Vincent Transporter 2 2005 -Butler, Tom (I) Freddy vs. Jason 2003 -Butler, Tom (I) Snakes on a Plane 2006 -Butler, Tom (I) The A-Team 2010 -Butler, Tom (I) Miracle 2004 -Riegel, Eden Home Alone 2: Lost in New York 1992 -Riegel, Eden American Pie 1999 -Riegel, Eden The Prince of Egypt 1998 -Featherston, Katie Paranormal Activity 2007 -Featherston, Katie Paranormal Activity 2 2010 -Featherston, Katie Paranormal Activity 3 2011 -Janney, Allison Hairspray 2007 -Janney, Allison Juno 2007 -Janney, Allison Primary Colors 1998 -Janney, Allison 10 Things I Hate About You 1999 -Janney, Allison The Help 2011 -Janney, Allison American Beauty 1999 -Janney, Allison Over the Hedge 2006 -Janney, Allison Finding Nemo 2003 -Janney, Allison Six Days Seven Nights 1998 -Janney, Allison The Hours 2002 -Hagen, Thomas M. National Treasure 2004 -Hagen, Thomas M. The Happening 2008 -Hagen, Thomas M. The Village 2004 -Hagen, Thomas M. National Treasure: Book of Secrets 2007 -Hagen, Thomas M. Invincible 2006 -Hagen, Thomas M. Ladder 49 2004 -Hagen, Thomas M. Step Up 2: The Streets 2008 -Hagen, Thomas M. Step Up 2006 -Hagen, Thomas M. The Recruit 2003 -McElroy, Scott (I) Underworld 2003 -McElroy, Scott (I) Underworld: Evolution 2006 -McElroy, Scott (I) The Mask 1994 -Loggia, Robert Return to Me 2000 -Loggia, Robert Independence Day 1996 -Loggia, Robert An Officer and a Gentleman 1982 -Shubert, Jimmy Mr. & Mrs. Smith 2005 -Shubert, Jimmy One Hour Photo 2002 -Shubert, Jimmy The Italian Job 2003 -Shubert, Jimmy Coyote Ugly 2000 -Magnuson, Ann Small Soldiers 1998 -Magnuson, Ann Clear and Present Danger 1994 -Magnuson, Ann Panic Room 2002 -Cannon, Nick (I) Drumline 2002 -Cannon, Nick (I) Men in Black II 2002 -Cannon, Nick (I) Shall We Dance 2004 -Cannon, Nick (I) Garfield 2004 -Cannon, Nick (I) Monster House 2006 -Thornhill, Lisa Red Dragon 2002 -Thornhill, Lisa The Family Man 2000 -Thornhill, Lisa After the Sunset 2004 -Thornhill, Lisa Rush Hour 3 2007 -Hohn, Amy Along Came Polly 2004 -Hohn, Amy Meet the Parents 2000 -Hohn, Amy College Road Trip 2008 -Jones, Doug (I) Hellboy II: The Golden Army 2008 -Jones, Doug (I) Hellboy 2004 -Jones, Doug (I) Three Kings 1999 -Jones, Doug (I) Men in Black II 2002 -Jones, Doug (I) Batman Returns 1992 -Jones, Doug (I) 4: Rise of the Silver Surfer 2007 -Jones, Doug (I) El laberinto del fauno 2006 -Jones, Doug (I) The Time Machine 2002 -Jones, Doug (I) Lady in the Water 2006 -Jones, Doug (I) Legion 2009 -Fox, James (I) Charlie and the Chocolate Factory 2005 -Fox, James (I) Mickey Blue Eyes 1999 -Fox, James (I) Sherlock Holmes 2009 -Vargas, John (I) Star Trek: The Wrath of Khan 1982 -Vargas, John (I) Primary Colors 1998 -Vargas, John (I) Zoolander 2001 -Billingsley, John (II) Superman Returns 2006 -Billingsley, John (II) High Crimes 2002 -Billingsley, John (II) A Cinderella Story 2004 -Virzi, Joe Spider-Man 3 2007 -Virzi, Joe Spider-Man 2 2004 -Virzi, Joe Spider-Man 2002 -Aston, David (I) The Matrix 1999 -Aston, David (I) The Lord of the Rings: The Return of the King 2003 -Aston, David (I) Underworld: Rise of the Lycans 2009 -Ward, Vincent (II) Ocean's Eleven 2001 -Ward, Vincent (II) Bringing Down the House 2003 -Ward, Vincent (II) Traffic 2000 -Watson, Emma (II) Harry Potter and the Goblet of Fire 2005 -Watson, Emma (II) The Tale of Despereaux 2008 -Watson, Emma (II) Harry Potter and the Prisoner of Azkaban 2004 -Watson, Emma (II) Harry Potter and the Sorcerer's Stone 2001 -Watson, Emma (II) Harry Potter and the Chamber of Secrets 2002 -Watson, Emma (II) Harry Potter and the Deathly Hallows: Part 1 2010 -Watson, Emma (II) Harry Potter and the Deathly Hallows: Part 2 2011 -Watson, Emma (II) Harry Potter and the Order of the Phoenix 2007 -Watson, Emma (II) Harry Potter and the Half-Blood Prince 2009 -Murphy, Michael (I) Batman Returns 1992 -Murphy, Michael (I) Magnolia 1999 -Murphy, Michael (I) X-Men: The Last Stand 2006 -Mason, Margery Harry Potter and the Goblet of Fire 2005 -Mason, Margery Love Actually 2003 -Mason, Margery 101 Dalmatians 1996 -Howard, Arliss (I) Moneyball 2011 -Howard, Arliss (I) Amistad 1997 -Howard, Arliss (I) The Time Traveler's Wife 2009 -Howard, Arliss (I) The Lost World: Jurassic Park 1997 -Barrett, Majel Star Trek IV: The Voyage Home 1986 -Barrett, Majel Star Trek: First Contact 1996 -Barrett, Majel Star Trek 2009 -Barrett, Majel Star Trek: Nemesis 2002 -Harris, Richard (I) The Count of Monte Cristo 2002 -Harris, Richard (I) Unforgiven 1992 -Harris, Richard (I) Gladiator 2000 -Harris, Richard (I) Harry Potter and the Chamber of Secrets 2002 -Harris, Richard (I) Harry Potter and the Sorcerer's Stone 2001 -Tucker, Chris (I) The Fifth Element 1997 -Tucker, Chris (I) Next Friday 2000 -Tucker, Chris (I) Money Talks 1997 -Tucker, Chris (I) Rush Hour 1998 -Tucker, Chris (I) Rush Hour 2 2001 -Tucker, Chris (I) Jackie Brown 1997 -Tucker, Chris (I) Rush Hour 3 2007 -Henderson, Lonnie The Longest Yard 2005 -Henderson, Lonnie Miss Congeniality 2: Armed and Fabulous 2005 -Henderson, Lonnie Get Him to the Greek 2010 -Henderson, Lonnie Norbit 2007 -Corey, Dave (I) Bad Boys II 2003 -Corey, Dave (I) Analyze This 1999 -Corey, Dave (I) The Truman Show 1998 -Pfennigwerth, Jared Dogma 1999 -Pfennigwerth, Jared Zack and Miri Make a Porno 2008 -Pfennigwerth, Jared My Bloody Valentine 2009 -Thomason, Mark (I) Contact 1997 -Thomason, Mark (I) Robin Hood: Prince of Thieves 1991 -Thomason, Mark (I) J. Edgar 2011 -Thomason, Mark (I) Space Cowboys 2000 -Thomason, Mark (I) Tin Cup 1996 -Thomason, Mark (I) The Bodyguard 1992 -Thomason, Mark (I) Million Dollar Baby 2004 -Jarmon, Korey L. The Dukes of Hazzard 2005 -Jarmon, Korey L. The Skeleton Key 2005 -Jarmon, Korey L. Big Momma's House 2 2006 -Hilton, Paris Dr. Seuss' The Cat in the Hat 2003 -Hilton, Paris Raising Helen 2004 -Hilton, Paris Zoolander 2001 -Fay, Nathalie The Hangover 2009 -Fay, Nathalie Old School 2003 -Fay, Nathalie Due Date 2010 -Dimitri, Nick Out for Justice 1991 -Dimitri, Nick Last Action Hero 1993 -Dimitri, Nick Sudden Impact 1983 -Miller, Stephen E. (I) RV 2006 -Miller, Stephen E. (I) First Blood 1982 -Miller, Stephen E. (I) Scooby Doo 2: Monsters Unleashed 2004 -Miller, Stephen E. (I) The X Files: I Want to Believe 2008 -Wright, Marcia (I) Barbershop 2: Back in Business 2004 -Wright, Marcia (I) Soul Food 1997 -Wright, Marcia (I) Barbershop 2002 -Johnson, Ashley (I) The Help 2011 -Johnson, Ashley (I) What Women Want 2000 -Johnson, Ashley (I) The Avengers 2012 -Johnson, Ashley (I) Recess: School's Out 2001 -Mazurk, Joseph Wanted 2008 -Mazurk, Joseph Little Fockers 2010 -Mazurk, Joseph Fred Claus 2007 -Mazurk, Joseph Public Enemies 2009 -Mazurk, Joseph Eagle Eye 2008 -Mazurk, Joseph A Nightmare on Elm Street 2010 -Turturro, Aida Deep Blue Sea 1999 -Turturro, Aida Sleepers 1996 -Turturro, Aida Mickey Blue Eyes 1999 -Lee, Kef Real Steel 2011 -Lee, Kef The Ides of March 2011 -Lee, Kef Scream 4 2011 -Lee, Kef Transformers: Dark of the Moon 2011 -Barnes, Ben (I) The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Barnes, Ben (I) Stardust 2007 -Barnes, Ben (I) The Chronicles of Narnia: Prince Caspian 2008 -Yu, Rongguang Ying han 2008 -Yu, Rongguang Shanghai Noon 2000 -Yu, Rongguang The Karate Kid 2010 -Wilder, Alan (I) Kiss the Girls 1997 -Wilder, Alan (I) Home Alone 1990 -Wilder, Alan (I) Child's Play 1988 -Wilder, Alan (I) Public Enemies 2009 -Wilder, Alan (I) A Civil Action 1998 -Tessiero, Michael A. The Mexican 2001 -Tessiero, Michael A. Rat Race 2001 -Tessiero, Michael A. Rush Hour 2 2001 -Tessiero, Michael A. America's Sweethearts 2001 -Ziskie, Dan Step Up 3D 2010 -Ziskie, Dan The Jackal 1997 -Ziskie, Dan Bad Company 2002 -Ziskie, Dan Eight Below 2006 -Teed, Jill Mission to Mars 2000 -Teed, Jill X2 2003 -Teed, Jill Along Came a Spider 2001 -Teed, Jill This Means War 2012 -Foster, Kevin (III) The Village 2004 -Foster, Kevin (III) Drag Me to Hell 2009 -Foster, Kevin (III) Jarhead 2005 -Laughland, Isabella Harry Potter and the Deathly Hallows: Part 1 2010 -Laughland, Isabella Harry Potter and the Deathly Hallows: Part 2 2011 -Laughland, Isabella Harry Potter and the Half-Blood Prince 2009 -Faracy, Stephanie Flightplan 2005 -Faracy, Stephanie Get Him to the Greek 2010 -Faracy, Stephanie Bad Teacher 2011 -Faracy, Stephanie Sideways 2004 -Abernathy, Don Tropic Thunder 2008 -Abernathy, Don Enchanted 2007 -Abernathy, Don Step Brothers 2008 -Abernathy, Don National Treasure: Book of Secrets 2007 -Abernathy, Don Cloverfield 2008 -Abernathy, Don Eagle Eye 2008 -Abernathy, Don Ocean's Thirteen 2007 -Abernathy, Don Forgetting Sarah Marshall 2008 -Abernathy, Don Charlie Wilson's War 2007 -Abernathy, Don Funny People 2009 -Abernathy, Don Get Him to the Greek 2010 -Abernathy, Don Get Smart 2008 -Abernathy, Don Hancock 2008 -Abernathy, Don I Now Pronounce You Chuck & Larry 2007 -Abernathy, Don My Sister's Keeper 2009 -Abernathy, Don Yes Man 2008 -Abernathy, Don Night at the Museum: Battle of the Smithsonian 2009 -Abernathy, Don Rush Hour 3 2007 -Goodwin, Ginnifer Mona Lisa Smile 2003 -Goodwin, Ginnifer Walk the Line 2005 -Goodwin, Ginnifer He's Just Not That Into You 2009 -Gibson, Tyrese Legion 2009 -Gibson, Tyrese Death Race 2008 -Gibson, Tyrese 2 Fast 2 Furious 2003 -Gibson, Tyrese Transformers: Revenge of the Fallen 2009 -Gibson, Tyrese Transformers 2007 -Gibson, Tyrese Four Brothers 2005 -Gibson, Tyrese Transformers: Dark of the Moon 2011 -Gibson, Tyrese Fast Five 2011 -Mazursky, Paul Kung Fu Panda 2 2011 -Mazursky, Paul Down and Out in Beverly Hills 1986 -Mazursky, Paul Antz 1998 -Jones, Jeffrey (I) Sleepy Hollow 1999 -Jones, Jeffrey (I) Stuart Little 1999 -Jones, Jeffrey (I) Dr. Dolittle 2 2001 -Jones, Jeffrey (I) The Devil's Advocate 1997 -Jones, Jeffrey (I) Amadeus 1984 -Jones, Jeffrey (I) Ferris Bueller's Day Off 1986 -Jones, Jeffrey (I) The Hunt for Red October 1990 -Brody, Adrien The Village 2004 -Brody, Adrien The Pianist 2002 -Brody, Adrien Midnight in Paris 2011 -Brody, Adrien Predators 2010 -Brody, Adrien The Thin Red Line 1998 -Brody, Adrien King Kong 2005 -McGregor-Stewart, Kate Jingle All the Way 1996 -McGregor-Stewart, Kate In & Out 1997 -McGregor-Stewart, Kate Failure to Launch 2006 -McGregor-Stewart, Kate The School of Rock 2003 -Gross, Mary 40 Days and 40 Nights 2002 -Gross, Mary Practical Magic 1998 -Gross, Mary The Rugrats Movie 1998 -Gross, Mary The Santa Clause 1994 -Beckel, Graham Blue Streak 1999 -Beckel, Graham Brokeback Mountain 2005 -Beckel, Graham Hard Ball 2001 -Beckel, Graham Pearl Harbor 2001 -Beckel, Graham L.A. Confidential 1997 -Bower, Tom (I) The Hills Have Eyes 2006 -Bower, Tom (I) Clear and Present Danger 1994 -Bower, Tom (I) Crazy Heart 2009 -Bower, Tom (I) High Crimes 2002 -Bower, Tom (I) The Negotiator 1998 -Bower, Tom (I) Beverly Hills Cop II 1987 -Bower, Tom (I) Die Hard 2 1990 -Laurie, Hugh 101 Dalmatians 1996 -Laurie, Hugh Stuart Little 2 2002 -Laurie, Hugh Spice World 1997 -Laurie, Hugh Stuart Little 1999 -Laurie, Hugh Monsters vs Aliens 2009 -Laurie, Hugh Hop 2011 -Youngblood, Luke Harry Potter and the Order of the Phoenix 2007 -Youngblood, Luke Harry Potter and the Chamber of Secrets 2002 -Youngblood, Luke Harry Potter and the Sorcerer's Stone 2001 -Donovan, Tate Hercules 1997 -Donovan, Tate Good Night, and Good Luck. 2005 -Donovan, Tate The Pacifier 2005 -Donovan, Tate Swordfish 2001 -McAuley, Alphonso Nim's Island 2008 -McAuley, Alphonso Fat Albert 2004 -McAuley, Alphonso Glory Road 2006 -Menza, Gina Sleepers 1996 -Menza, Gina Wag the Dog 1997 -Menza, Gina Outbreak 1995 -Osment, Haley Joel Pay It Forward 2000 -Osment, Haley Joel Forrest Gump 1994 -Osment, Haley Joel Artificial Intelligence: AI 2001 -Osment, Haley Joel The Sixth Sense 1999 -Osment, Haley Joel The Jungle Book 2 2003 -Yarbrough, Cedric Meet the Fockers 2004 -Yarbrough, Cedric Four Christmases 2008 -Yarbrough, Cedric Iron Man 2 2010 -Yarbrough, Cedric The 40 Year Old Virgin 2005 -Yarbrough, Cedric Get Smart 2008 -Glenn, Scott Absolute Power 1997 -Glenn, Scott Secretariat 2010 -Glenn, Scott Apocalypse Now 1979 -Glenn, Scott The Silence of the Lambs 1991 -Glenn, Scott Magnificent Desolation: Walking on the Moon 3D 2005 -Glenn, Scott Training Day 2001 -Glenn, Scott Nights in Rodanthe 2008 -Glenn, Scott The Bourne Ultimatum 2007 -Glenn, Scott Vertical Limit 2000 -Glenn, Scott Courage Under Fire 1996 -Glenn, Scott Sucker Punch 2011 -Glenn, Scott The Hunt for Red October 1990 -Baldwin, Alec The SpongeBob SquarePants Movie 2004 -Baldwin, Alec The Good Shepherd 2006 -Baldwin, Alec The Royal Tenenbaums 2001 -Baldwin, Alec It's Complicated 2009 -Baldwin, Alec Final Fantasy: The Spirits Within 2001 -Baldwin, Alec Notting Hill 1999 -Baldwin, Alec Mercury Rising 1998 -Baldwin, Alec The Aviator 2004 -Baldwin, Alec Madagascar: Escape 2 Africa 2008 -Baldwin, Alec The Departed 2006 -Baldwin, Alec Pearl Harbor 2001 -Baldwin, Alec Cats & Dogs 2001 -Baldwin, Alec Along Came Polly 2004 -Baldwin, Alec Fun with Dick and Jane 2005 -Baldwin, Alec My Sister's Keeper 2009 -Baldwin, Alec The Hunt for Red October 1990 -Baldwin, Alec Dr. Seuss' The Cat in the Hat 2003 -Cosmo, James Troy 2004 -Cosmo, James The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Cosmo, James Babe: Pig in the City 1998 -Cosmo, James Braveheart 1995 -Klaszky, Steven J. Law Abiding Citizen 2009 -Klaszky, Steven J. Limitless 2011 -Klaszky, Steven J. The Happening 2008 -Barry, Matthew (I) Indecent Proposal 1993 -Barry, Matthew (I) Con Air 1997 -Barry, Matthew (I) My Sister's Keeper 2009 -Barry, Matthew (I) Rush Hour 1998 -Barry, Matthew (I) The Notebook 2004 -Barry, Matthew (I) Rush Hour 2 2001 -Dorff, Holly Ice Age: Dawn of the Dinosaurs 2009 -Dorff, Holly Hauru no ugoku shiro 2004 -Dorff, Holly Madagascar: Escape 2 Africa 2008 -Dorff, Holly Beowulf 2007 -Dorff, Holly Dinosaur 2000 -Dorff, Holly Despicable Me 2010 -Zeta-Jones, Catherine Chicago 2002 -Zeta-Jones, Catherine The Legend of Zorro 2005 -Zeta-Jones, Catherine The Mask of Zorro 1998 -Zeta-Jones, Catherine Intolerable Cruelty 2003 -Zeta-Jones, Catherine Entrapment 1999 -Zeta-Jones, Catherine Ocean's Twelve 2004 -Zeta-Jones, Catherine High Fidelity 2000 -Zeta-Jones, Catherine Aliens in the Attic 2009 -Zeta-Jones, Catherine The Terminal 2004 -Zeta-Jones, Catherine No Reservations 2007 -Zeta-Jones, Catherine Traffic 2000 -Zeta-Jones, Catherine The Haunting 1999 -Zeta-Jones, Catherine America's Sweethearts 2001 -Dillon, Denny Saturday Night Fever 1977 -Dillon, Denny United 93 2006 -Dillon, Denny Ice Age 2002 -Daniel, Gregg Evan Almighty 2007 -Daniel, Gregg Mars Attacks! 1996 -Daniel, Gregg Spider-Man 3 2007 -Daniel, Gregg Hancock 2008 -Margolyes, Miriam Romeo + Juliet 1996 -Margolyes, Miriam Harry Potter and the Deathly Hallows: Part 2 2011 -Margolyes, Miriam Cats & Dogs 2001 -Margolyes, Miriam Happy Feet 2006 -Margolyes, Miriam Flushed Away 2006 -Margolyes, Miriam Magnolia 1999 -Margolyes, Miriam Legend of the Guardians: The Owls of Ga'Hoole 2010 -Margolyes, Miriam End of Days 1999 -Margolyes, Miriam Harry Potter and the Chamber of Secrets 2002 -Margolyes, Miriam Mulan 1998 -Margolyes, Miriam Babe 1995 -Margolyes, Miriam Yentl 1983 -Margolyes, Miriam Babe: Pig in the City 1998 -Bouffard, Robert M. Die Hard 2 1990 -Bouffard, Robert M. Star Wars: Episode III - Revenge of the Sith 2005 -Bouffard, Robert M. Rocky V 1990 -Kinney, Terry The Firm 1993 -Kinney, Terry Save the Last Dance 2001 -Kinney, Terry Sleepers 1996 -Gruffudd, Ioan Titanic 1997 -Gruffudd, Ioan 102 Dalmatians 2000 -Gruffudd, Ioan King Arthur 2004 -Gruffudd, Ioan Black Hawk Down 2001 -Gruffudd, Ioan 4: Rise of the Silver Surfer 2007 -Gruffudd, Ioan Horrible Bosses 2011 -Gruffudd, Ioan Fantastic Four 2005 -Pimentel, Gabriel LiTTLEMAN 2006 -Pimentel, Gabriel Fred Claus 2007 -Pimentel, Gabriel The Master of Disguise 2002 -Kahan, Steve Lethal Weapon 2 1989 -Kahan, Steve Lethal Weapon 4 1998 -Kahan, Steve Conspiracy Theory 1997 -Kahan, Steve Superman 1978 -Kahan, Steve Lethal Weapon 3 1992 -Dashnaw, Jeffrey J. Spy Kids 2001 -Dashnaw, Jeffrey J. Sin City 2005 -Dashnaw, Jeffrey J. 21 2008 -Spade, David The Rugrats Movie 1998 -Spade, David Beavis and Butt-Head Do America 1996 -Spade, David Grown Ups 2010 -Spade, David Jack and Jill 2011 -Spade, David Racing Stripes 2005 -Spade, David I Now Pronounce You Chuck & Larry 2007 -Spade, David The Emperor's New Groove 2000 -Toro, Guillermo del Quantum of Solace 2008 -Toro, Guillermo del Hellboy 2004 -Toro, Guillermo del Puss in Boots 2011 -Toro, Guillermo del Hellboy II: The Golden Army 2008 -Duhamel, François Cast Away 2000 -Duhamel, François Charlie Wilson's War 2007 -Duhamel, François Iron Man 2 2010 -Duhamel, François Lemony Snicket's A Series of Unfortunate Events 2004 -Robinson, Lynwood Meet the Robinsons 2007 -Robinson, Lynwood The Princess and the Frog 2009 -Robinson, Lynwood Bolt 2008 -Meyer, Breckin Pinocchio 2002 -Meyer, Breckin Rat Race 2001 -Meyer, Breckin Herbie Fully Loaded 2005 -Meyer, Breckin Road Trip 2000 -Meyer, Breckin Garfield 2004 -Meyer, Breckin The Insider 1999 -Meyer, Breckin Freddy's Dead: The Final Nightmare 1991 -Meyer, Breckin Ghosts of Girlfriends Past 2009 -Meyer, Breckin Garfield: A Tail of Two Kitties 2006 -Harris, George (II) The Interpreter 2005 -Harris, George (II) Harry Potter and the Deathly Hallows: Part 1 2010 -Harris, George (II) Black Hawk Down 2001 -Harris, George (II) Harry Potter and the Deathly Hallows: Part 2 2011 -Harris, George (II) Harry Potter and the Order of the Phoenix 2007 -Gibson, Russell (II) Unfaithful 2002 -Gibson, Russell (II) Analyze This 1999 -Gibson, Russell (II) Ladder 49 2004 -Elizondo, Hector (I) The Princess Diaries 2001 -Elizondo, Hector (I) New Year's Eve 2011 -Elizondo, Hector (I) Raising Helen 2004 -Elizondo, Hector (I) The Princess Diaries 2: Royal Engagement 2004 -Elizondo, Hector (I) Pretty Woman 1990 -Elizondo, Hector (I) Runaway Bride 1999 -Kimsey, Todd (I) Rules of Engagement 2000 -Kimsey, Todd (I) The Perfect Storm 2000 -Kimsey, Todd (I) Hidalgo 2004 -Braverman, Marvin Runaway Bride 1999 -Braverman, Marvin New Year's Eve 2011 -Braverman, Marvin Raising Helen 2004 -Braverman, Marvin The Princess Diaries 2001 -Braverman, Marvin The Princess Diaries 2: Royal Engagement 2004 -Braverman, Marvin Pretty Woman 1990 -Cho, John Wag the Dog 1997 -Cho, John The Flintstones in Viva Rock Vegas 2000 -Cho, John American Pie 1999 -Cho, John Evolution 2001 -Cho, John American Wedding 2003 -Cho, John American Beauty 1999 -Cho, John Down to Earth 2001 -Cho, John Star Trek 2009 -Cho, John American Reunion 2012 -Cho, John American Pie 2 2001 -Cho, John Bowfinger 1999 -Carter, Carmen The Ides of March 2011 -Carter, Carmen Wag the Dog 1997 -Carter, Carmen Brother Bear 2003 -Adams, Christine (I) The Girl with the Dragon Tattoo 2011 -Adams, Christine (I) TRON: Legacy 2010 -Adams, Christine (I) Batman Begins 2005 -Matheus, Connor Chicken Little 2005 -Matheus, Connor Divine Secrets of the Ya-Ya Sisterhood 2002 -Matheus, Connor The Polar Express 2004 -Matheus, Connor Yours, Mine and Ours 2005 -Matheus, Connor The Santa Clause 2 2002 -Matheus, Connor Snow Day 2000 -Creed-Miles, Charlie The Fifth Element 1997 -Creed-Miles, Charlie King Arthur 2004 -Creed-Miles, Charlie Hereafter 2010 -Emmert, Alexander National Treasure 2004 -Emmert, Alexander The Happening 2008 -Emmert, Alexander Invincible 2006 -Emmert, Alexander Lady in the Water 2006 -Lopez, Maynor Angels & Demons 2009 -Lopez, Maynor Yes Man 2008 -Lopez, Maynor I Love You, Man 2009 -Oliverez, Manny Step Up 2: The Streets 2008 -Oliverez, Manny National Treasure: Book of Secrets 2007 -Oliverez, Manny Live Free or Die Hard 2007 -O'Donohue, John F. The Cable Guy 1996 -O'Donohue, John F. The Family Man 2000 -O'Donohue, John F. As Good as It Gets 1997 -Bruynbroek, Frank Godzilla 1998 -Bruynbroek, Frank Money Talks 1997 -Bruynbroek, Frank After the Sunset 2004 -Bruynbroek, Frank Rush Hour 3 2007 -Bruynbroek, Frank Red Dragon 2002 -Haney, Anne (I) Mrs. Doubtfire 1993 -Haney, Anne (I) Forces of Nature 1999 -Haney, Anne (I) Liar Liar 1997 -Haney, Anne (I) The Out-of-Towners 1999 -Ray, Shabazz Bad Company 2002 -Ray, Shabazz Zoolander 2001 -Ray, Shabazz Changing Lanes 2002 -Ray, Shabazz Keeping the Faith 2000 -Phillips, Leslie (I) Lara Croft: Tomb Raider 2001 -Phillips, Leslie (I) The Jackal 1997 -Phillips, Leslie (I) Harry Potter and the Sorcerer's Stone 2001 -Phillips, Leslie (I) Harry Potter and the Chamber of Secrets 2002 -Phillips, Leslie (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Herlihy, Tim Mr. Deeds 2002 -Herlihy, Tim Big Daddy 1999 -Herlihy, Tim The Wedding Singer 1998 -Herlihy, Tim Bedtime Stories 2008 -Herlihy, Tim Click 2006 -Herlihy, Tim Grown Ups 2010 -Khan, Mobin Inception 2010 -Khan, Mobin Skyline 2010 -Khan, Mobin Pirates of the Caribbean: At World's End 2007 -Misner, Susan Chicago 2002 -Misner, Susan The Forgotten 2004 -Misner, Susan Something's Gotta Give 2003 -Constantine, Yorgo Fast Five 2011 -Constantine, Yorgo Live Free or Die Hard 2007 -Constantine, Yorgo Phone Booth 2002 -Ratzin, Lisa Titanic 1997 -Ratzin, Lisa George of the Jungle 1997 -Ratzin, Lisa Boogie Nights 1997 -Greene, Graham (II) Snow Dogs 2002 -Greene, Graham (II) Dances with Wolves 1990 -Greene, Graham (II) New Moon 2009 -Greene, Graham (II) The Green Mile 1999 -Greene, Graham (II) Die Hard: With a Vengeance 1995 -Kelly, Mary A. Sleepless in Seattle 1993 -Kelly, Mary A. Changing Lanes 2002 -Kelly, Mary A. You've Got Mail 1998 -Holden, Laurie The Mist 2007 -Holden, Laurie Silent Hill 2006 -Holden, Laurie Fantastic Four 2005 -Young, Keone Legally Blonde 2: Red, White & Blonde 2003 -Young, Keone Dude, Where's My Car? 2000 -Young, Keone Dr. Dolittle 2 2001 -Young, Keone Men in Black 3 2012 -Young, Keone Jack 1996 -Young, Keone Spider-Man 3 2007 -Young, Keone Striptease 1996 -Owen, Rena Star Wars: Episode III - Revenge of the Sith 2005 -Owen, Rena Artificial Intelligence: AI 2001 -Owen, Rena Star Wars: Episode II - Attack of the Clones 2002 -Nixon, Cynthia Sex and the City 2008 -Nixon, Cynthia Sex and the City 2 2010 -Nixon, Cynthia The Out-of-Towners 1999 -Nixon, Cynthia Amadeus 1984 -Tovah, Mageina The SpongeBob SquarePants Movie 2004 -Tovah, Mageina Failure to Launch 2006 -Tovah, Mageina Spider-Man 3 2007 -Tovah, Mageina Spider-Man 2 2004 -Minervini, Richie Paul Blart: Mall Cop 2009 -Minervini, Richie Grown Ups 2010 -Minervini, Richie Zookeeper 2011 -Mangano, Anthony Inside Man 2006 -Mangano, Anthony Raising Helen 2004 -Mangano, Anthony The Dictator 2012 -Kelley, Elijah (I) 28 Days 2000 -Kelley, Elijah (I) Red Tails 2012 -Kelley, Elijah (I) Hairspray 2007 -Fisher, David C. The Kid 2000 -Fisher, David C. Almost Famous 2000 -Fisher, David C. The Insider 1999 -Fisher, David C. What Women Want 2000 -Fisher, David C. American Beauty 1999 -Rangi, Shane The Lord of the Rings: The Return of the King 2003 -Rangi, Shane The Lord of the Rings: The Fellowship of the Ring 2001 -Rangi, Shane The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Rangi, Shane The Chronicles of Narnia: Prince Caspian 2008 -Rangi, Shane The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Cera, Michael Frequency 2000 -Cera, Michael Juno 2007 -Cera, Michael Superbad 2007 -Lovejoy, Deirdre Bad Teacher 2011 -Lovejoy, Deirdre Shaft 2000 -Lovejoy, Deirdre Step Up 2006 -Lovejoy, Deirdre The Talented Mr. Ripley 1999 -Barrymore, Drew (I) Curious George 2006 -Barrymore, Drew (I) Never Been Kissed 1999 -Barrymore, Drew (I) Batman Forever 1995 -Barrymore, Drew (I) Beverly Hills Chihuahua 2008 -Barrymore, Drew (I) E.T.: The Extra-Terrestrial 1982 -Barrymore, Drew (I) Charlie's Angels: Full Throttle 2003 -Barrymore, Drew (I) EverAfter 1998 -Barrymore, Drew (I) Charlie's Angels 2000 -Barrymore, Drew (I) 50 First Dates 2004 -Barrymore, Drew (I) Fever Pitch 2005 -Barrymore, Drew (I) Scream 1996 -Barrymore, Drew (I) The Wedding Singer 1998 -Barrymore, Drew (I) He's Just Not That Into You 2009 -O'Connor, Dan (I) Madagascar: Escape 2 Africa 2008 -O'Connor, Dan (I) Madagascar 3: Europe's Most Wanted 2012 -O'Connor, Dan (I) Kung Fu Panda 2 2011 -Gilpin, Jean Eragon 2006 -Gilpin, Jean Rio 2011 -Gilpin, Jean Garfield: A Tail of Two Kitties 2006 -Bauer, Steven Running Scared 1986 -Bauer, Steven Quantum of Solace 2008 -Bauer, Steven Traffic 2000 -Boyer, William (I) Black Knight 2001 -Boyer, William (I) Cold Mountain 2003 -Boyer, William (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Tobin, John H. The Cider House Rules 1999 -Tobin, John H. Amistad 1997 -Tobin, John H. Changeling 2008 -Tobin, John H. Unfaithful 2002 -Tobin, John H. A Cinderella Story 2004 -Tobin, John H. Transformers: Dark of the Moon 2011 -Tobin, John H. The Artist 2011 -Tobin, John H. Indiana Jones and the Kingdom of the Crystal Skull 2008 -Tobin, John H. Mission: Impossible III 2006 -Tobin, John H. Changing Lanes 2002 -Tobin, John H. The Italian Job 2003 -Tobin, John H. Wedding Crashers 2005 -Tobin, John H. Something's Gotta Give 2003 -Tobin, John H. A Beautiful Mind 2001 -McCarthy, Danny (III) Fred Claus 2007 -McCarthy, Danny (III) Transformers: Dark of the Moon 2011 -McCarthy, Danny (III) The Amityville Horror 2005 -Koide, Teri Eiko Norbit 2007 -Koide, Teri Eiko The Princess Diaries 2: Royal Engagement 2004 -Koide, Teri Eiko Yes Man 2008 -Koide, Teri Eiko License to Wed 2007 -Barlow, Patrick Nanny McPhee 2005 -Barlow, Patrick Shakespeare in Love 1998 -Barlow, Patrick Bridget Jones's Diary 2001 -Barlow, Patrick Notting Hill 1999 -Lazar, Paul (I) Philadelphia 1993 -Lazar, Paul (I) The Silence of the Lambs 1991 -Lazar, Paul (I) The Manchurian Candidate 2004 -Lazar, Paul (I) Gwoemul 2006 -Lazar, Paul (I) Mickey Blue Eyes 1999 -Lennarson, Nels The Cabin in the Woods 2011 -Lennarson, Nels Scary Movie 2000 -Lennarson, Nels Final Destination 3 2006 -Omundson, Timothy Starship Troopers 1997 -Omundson, Timothy Mission: Impossible III 2006 -Omundson, Timothy Swordfish 2001 -Lauren, Brigitta The Princess Diaries 2001 -Lauren, Brigitta Raising Helen 2004 -Lauren, Brigitta The Princess Diaries 2: Royal Engagement 2004 -Kiley, Richard Patch Adams 1998 -Kiley, Richard Phenomenon 1996 -Kiley, Richard Jurassic Park 1993 -Epper, Jeannie Kill Bill: Vol. 2 2004 -Epper, Jeannie The Mighty Ducks 1992 -Epper, Jeannie Die Hard: With a Vengeance 1995 -Yee, Richard (I) Miracle 2004 -Yee, Richard (I) Romeo Must Die 2000 -Yee, Richard (I) X-Men: The Last Stand 2006 -Bergeron, Philippe (I) The Family Man 2000 -Bergeron, Philippe (I) Contact 1997 -Bergeron, Philippe (I) Godzilla 1998 -Bergeron, Philippe (I) Iron Man 2 2010 -Bergeron, Philippe (I) Rush Hour 3 2007 -Holly, Lauren Any Given Sunday 1999 -Holly, Lauren Sen to Chihiro no kamikakushi 2001 -Holly, Lauren Dumb & Dumber 1994 -Holly, Lauren What Women Want 2000 -Krabbé, Jeroen EverAfter 1998 -Krabbé, Jeroen The Fugitive 1993 -Krabbé, Jeroen Ocean's Twelve 2004 -Krabbé, Jeroen The Living Daylights 1987 -Chakwa, Farouk Eagle Eye 2008 -Chakwa, Farouk Yes Man 2008 -Chakwa, Farouk Angels & Demons 2009 -Smith, Brandon (I) RoboCop 2 1990 -Smith, Brandon (I) No Country for Old Men 2007 -Smith, Brandon (I) The Rookie 2002 -Lawson, Richard (I) Wag the Dog 1997 -Lawson, Richard (I) Guess Who 2005 -Lawson, Richard (I) How Stella Got Her Groove Back 1998 -Lawson, Richard (I) Poltergeist 1982 -Ballard, Alimi Fast Five 2011 -Ballard, Alimi Men of Honor 2000 -Ballard, Alimi Deep Impact 1998 -Winston, Matt (I) I Now Pronounce You Chuck & Larry 2007 -Winston, Matt (I) About Schmidt 2002 -Winston, Matt (I) Artificial Intelligence: AI 2001 -Winston, Matt (I) Little Miss Sunshine 2006 -Winston, Matt (I) The Peacemaker 1997 -Winston, Matt (I) Keeping the Faith 2000 -Winston, Matt (I) The Core 2003 -Winston, Matt (I) Galaxy Quest 1999 -Winston, Matt (I) Fight Club 1999 -Winston, Matt (I) Kicking & Screaming 2005 -Winston, Matt (I) Halloween H20: 20 Years Later 1998 -Gallo, Carla (I) I Love You, Man 2009 -Gallo, Carla (I) Superbad 2007 -Gallo, Carla (I) Forgetting Sarah Marshall 2008 -Gallo, Carla (I) We Bought a Zoo 2011 -Gallo, Carla (I) Mission: Impossible III 2006 -Gallo, Carla (I) The 40 Year Old Virgin 2005 -Gallo, Carla (I) Funny People 2009 -Gallo, Carla (I) Get Him to the Greek 2010 -McClurg, Edie Flubber 1997 -McClurg, Edie The Master of Disguise 2002 -McClurg, Edie The Rugrats Movie 1998 -McClurg, Edie Hanging Up 2000 -McClurg, Edie Cars 2 2011 -McClurg, Edie Ferris Bueller's Day Off 1986 -McClurg, Edie Cars 2006 -McClurg, Edie A Bug's Life 1998 -McClurg, Edie Home on the Range 2004 -McClurg, Edie The Little Mermaid 1989 -MacDonald, Norm (I) Dr. Dolittle 2 2001 -MacDonald, Norm (I) The Animal 2001 -MacDonald, Norm (I) Jack and Jill 2011 -MacDonald, Norm (I) Doctor Dolittle 1998 -MacDonald, Norm (I) Funny People 2009 -MacDonald, Norm (I) Deuce Bigalow: Male Gigolo 1999 -MacDonald, Norm (I) Grown Ups 2010 -Roach, Pat (I) Indiana Jones and the Last Crusade 1989 -Roach, Pat (I) Robin Hood: Prince of Thieves 1991 -Roach, Pat (I) Never Say Never Again 1983 -Roach, Pat (I) Indiana Jones and the Temple of Doom 1984 -Taylor, Russi Fantasia/2000 1999 -Taylor, Russi Babe 1995 -Taylor, Russi A Bug's Life 1998 -Taylor, Russi Babe: Pig in the City 1998 -Taylor, Russi The Simpsons Movie 2007 -Taylor, Russi Who Framed Roger Rabbit 1988 -Taylor, Russi The Haunted Mansion 2003 -James, Kevin (III) I Now Pronounce You Chuck & Larry 2007 -James, Kevin (III) Paul Blart: Mall Cop 2009 -James, Kevin (III) 50 First Dates 2004 -James, Kevin (III) Pinocchio 2002 -James, Kevin (III) You Don't Mess with the Zohan 2008 -James, Kevin (III) Barnyard 2006 -James, Kevin (III) Grown Ups 2010 -James, Kevin (III) Zookeeper 2011 -James, Kevin (III) Monster House 2006 -Walsh, Dylan We Were Soldiers 2002 -Walsh, Dylan Congo 1995 -Walsh, Dylan The Lake House 2006 -Walsh, Dylan Secretariat 2010 -Ferro, Daniel (II) Salt 2010 -Ferro, Daniel (II) Body of Lies 2008 -Ferro, Daniel (II) National Treasure 2004 -Ferro, Daniel (II) Limitless 2011 -Ferro, Daniel (II) Step Up 2: The Streets 2008 -Ferro, Daniel (II) He's Just Not That Into You 2009 -Meraz, Alex The Twilight Saga: Breaking Dawn - Part 1 2011 -Meraz, Alex The Twilight Saga: Eclipse 2010 -Meraz, Alex New Moon 2009 -Vieira, Meredith The Stepford Wives 2004 -Vieira, Meredith Gulliver's Travels 2010 -Vieira, Meredith Madagascar: Escape 2 Africa 2008 -Vieira, Meredith Shrek Forever After 2010 -Vieira, Meredith Get Him to the Greek 2010 -Songui, Kwasi 300 2006 -Songui, Kwasi The Sum of All Fears 2002 -Songui, Kwasi Gothika 2003 -Songui, Kwasi Mirror Mirror 2012 -Songui, Kwasi The Day After Tomorrow 2004 -Tee, Brian We Were Soldiers 2002 -Tee, Brian Austin Powers in Goldmember 2002 -Tee, Brian Fun with Dick and Jane 2005 -Tee, Brian The Fast and the Furious: Tokyo Drift 2006 -Mullany, Terry Me, Myself & Irene 2000 -Mullany, Terry The Heartbreak Kid 2007 -Mullany, Terry Dumb & Dumber 1994 -Mullany, Terry There's Something About Mary 1998 -Mullany, Terry Shallow Hal 2001 -Lapira, Liza 21 2008 -Lapira, Liza Crazy, Stupid, Love. 2011 -Lapira, Liza Marmaduke 2010 -Lapira, Liza Autumn in New York 2000 -Lapira, Liza Fast & Furious 2009 -Lapira, Liza Cloverfield 2008 -Cotillard, Marion Inception 2010 -Cotillard, Marion Big Fish 2003 -Cotillard, Marion Midnight in Paris 2011 -Cotillard, Marion Contagion 2011 -Cotillard, Marion Public Enemies 2009 -Arata, Michael Deja Vu 2006 -Arata, Michael Glory Road 2006 -Arata, Michael Runaway Jury 2003 -Elba, Idris American Gangster 2007 -Elba, Idris Takers 2010 -Elba, Idris Prometheus 2012 -Elba, Idris Thor 2011 -Elba, Idris Ghost Rider: Spirit of Vengeance 2011 -Bligh, James Thomas Cloverfield 2008 -Bligh, James Thomas Burn After Reading 2008 -Bligh, James Thomas A Beautiful Mind 2001 -Sarandon, Susan Stepmom 1998 -Sarandon, Susan Rugrats in Paris: The Movie - Rugrats II 2000 -Sarandon, Susan Wall Street: Money Never Sleeps 2010 -Sarandon, Susan Cats & Dogs 2001 -Sarandon, Susan Shall We Dance 2004 -Sarandon, Susan Enchanted 2007 -Sarandon, Susan Speed Racer 2008 -Warner, Chris (IV) No Country for Old Men 2007 -Warner, Chris (IV) Where the Heart Is 2000 -Warner, Chris (IV) Sin City 2005 -Kane, Tom (II) Star Wars: Episode III - Revenge of the Sith 2005 -Kane, Tom (II) The Wild Thornberrys Movie 2002 -Kane, Tom (II) The Smurfs 2011 -Kane, Tom (II) Star Wars: Episode I - The Phantom Menace 1999 -Kane, Tom (II) Rugrats Go Wild 2003 -Kane, Tom (II) Halloween H20: 20 Years Later 1998 -Kane, Tom (II) Shrek the Third 2007 -Gonneau, Jackie Chicken Little 2005 -Gonneau, Jackie Bolt 2008 -Gonneau, Jackie The Time Traveler's Wife 2009 -Gonneau, Jackie Open Season 2006 -Gonneau, Jackie Madagascar: Escape 2 Africa 2008 -Gonneau, Jackie Despicable Me 2010 -Gonneau, Jackie Meet the Robinsons 2007 -Ganderton, Monique Chicago 2002 -Ganderton, Monique The Twilight Saga: Eclipse 2010 -Ganderton, Monique Sucker Punch 2011 -Hardy, Robert (I) Harry Potter and the Goblet of Fire 2005 -Hardy, Robert (I) Harry Potter and the Prisoner of Azkaban 2004 -Hardy, Robert (I) Harry Potter and the Chamber of Secrets 2002 -Hardy, Robert (I) Harry Potter and the Order of the Phoenix 2007 -Kennedy, Beth (II) Phenomenon 1996 -Kennedy, Beth (II) New Year's Eve 2011 -Kennedy, Beth (II) Race to Witch Mountain 2009 -Dew, Martin Star Wars: Episode V - The Empire Strikes Back 1980 -Dew, Martin G.I. Joe: The Rise of Cobra 2009 -Dew, Martin War Horse 2011 -Dew, Martin Indiana Jones and the Kingdom of the Crystal Skull 2008 -Laga'aia, Jay Star Wars: Episode III - Revenge of the Sith 2005 -Laga'aia, Jay Nim's Island 2008 -Laga'aia, Jay Star Wars: Episode II - Attack of the Clones 2002 -Brand, Russell Hop 2011 -Brand, Russell Forgetting Sarah Marshall 2008 -Brand, Russell Get Him to the Greek 2010 -Brand, Russell Bedtime Stories 2008 -Brand, Russell Despicable Me 2010 -Cash, Dylan Bad Santa 2003 -Cash, Dylan The Polar Express 2004 -Cash, Dylan Fat Albert 2004 -Poitier, Damion Jarhead 2005 -Poitier, Damion Star Trek 2009 -Poitier, Damion The Avengers 2012 -Poitier, Damion Dreamgirls 2006 -Taylor, Stephen (VII) Unstoppable 2010 -Taylor, Stephen (VII) The Curious Case of Benjamin Button 2008 -Taylor, Stephen (VII) Water for Elephants 2011 -Taylor, Stephen (VII) Transformers: Dark of the Moon 2011 -Hughes, Tara Nicole Chicago 2002 -Hughes, Tara Nicole George of the Jungle 1997 -Hughes, Tara Nicole Coyote Ugly 2000 -Gregg, Bradley A Nightmare on Elm Street 3: Dream Warriors 1987 -Gregg, Bradley Stand by Me 1986 -Gregg, Bradley Indiana Jones and the Last Crusade 1989 -Byrne, Jenna Wag the Dog 1997 -Byrne, Jenna The Wedding Singer 1998 -Byrne, Jenna Outbreak 1995 -Holden, Marjean Mortal Kombat: Annihilation 1997 -Holden, Marjean Hostage 2005 -Holden, Marjean The Lost World: Jurassic Park 1997 -Fleischer, Charles The Polar Express 2004 -Fleischer, Charles Who Framed Roger Rabbit 1988 -Fleischer, Charles Funny People 2009 -Fleischer, Charles Back to the Future Part II 1989 -Fleischer, Charles Rango 2011 -Curzon, Aria Noelle The Muppets 2011 -Curzon, Aria Noelle Tarzan 1999 -Curzon, Aria Noelle The Prince of Egypt 1998 -Stone, Matt (I) South Park: Bigger Longer & Uncut 1999 -Stone, Matt (I) Bowling for Columbine 2002 -Stone, Matt (I) Team America: World Police 2004 -Redgrave, Vanessa Mission: Impossible 1996 -Redgrave, Vanessa Deep Impact 1998 -Redgrave, Vanessa Cars 2 2011 -Redgrave, Vanessa Letters to Juliet 2010 -Redgrave, Vanessa Atonement 2007 -Kelly, David (I) Waking Ned 1998 -Kelly, David (I) Stardust 2007 -Kelly, David (I) Charlie and the Chocolate Factory 2005 -Monroe, Jarion Star Wars: Episode III - Revenge of the Sith 2005 -Monroe, Jarion The Game 1997 -Monroe, Jarion The Lord of the Rings: The Return of the King 2003 -Igawa, Togo Memoirs of a Geisha 2005 -Igawa, Togo Speed Racer 2008 -Igawa, Togo The Last Samurai 2003 -Igawa, Togo Johnny English Reborn 2011 -Igawa, Togo Eyes Wide Shut 1999 -Thornton, Paul (I) Enchanted 2007 -Thornton, Paul (I) Eat Pray Love 2010 -Thornton, Paul (I) Sex and the City 2008 -Thornton, Paul (I) Date Night 2010 -Thornton, Paul (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Thornton, Paul (I) The Stepford Wives 2004 -Thornton, Paul (I) Julie & Julia 2009 -Thornton, Paul (I) The Other Guys 2010 -Thornton, Paul (I) The Bourne Ultimatum 2007 -Thornton, Paul (I) The Taking of Pelham 1 2 3 2009 -Turturro, John Transformers: Revenge of the Fallen 2009 -Turturro, John Anger Management 2003 -Turturro, John Mr. Deeds 2002 -Turturro, John Cars 2 2011 -Turturro, John Transformers: Dark of the Moon 2011 -Turturro, John Hannah and Her Sisters 1986 -Turturro, John O Brother, Where Art Thou? 2000 -Turturro, John Transformers 2007 -Turturro, John Collateral Damage 2002 -Turturro, John You Don't Mess with the Zohan 2008 -Turturro, John Secret Window 2004 -Turturro, John The Good Shepherd 2006 -Turturro, John Gung Ho 1986 -Turturro, John The Taking of Pelham 1 2 3 2009 -Lyman, Will A Perfect Murder 1998 -Lyman, Will The Siege 1998 -Lyman, Will Mystic River 2003 -Lyman, Will The Other Guys 2010 -Chestnut, Morris Ladder 49 2004 -Chestnut, Morris The Game Plan 2007 -Chestnut, Morris Think Like a Man 2012 -Chestnut, Morris Like Mike 2002 -Chestnut, Morris G.I. Jane 1997 -Margetts, Noah Lee 1408 2007 -Margetts, Noah Lee Batman Begins 2005 -Margetts, Noah Lee Constantine 2005 -Armstrong, Curtis Jingle All the Way 1996 -Armstrong, Curtis Risky Business 1983 -Armstrong, Curtis Dodgeball: A True Underdog Story 2004 -Dew, Marty Alvin and the Chipmunks: The Squeakquel 2009 -Dew, Marty Black Knight 2001 -Dew, Marty Coach Carter 2005 -Jansen, Jim (I) Artificial Intelligence: AI 2001 -Jansen, Jim (I) The Birdcage 1996 -Jansen, Jim (I) Tootsie 1982 -Jansen, Jim (I) Charlie Wilson's War 2007 -Jansen, Jim (I) Liar Liar 1997 -Jansen, Jim (I) Water for Elephants 2011 -Beasley, John (I) The General's Daughter 1999 -Beasley, John (I) The Sum of All Fears 2002 -Beasley, John (I) The Mighty Ducks 1992 -Barretto, Patrizia The Holiday 2006 -Barretto, Patrizia License to Wed 2007 -Barretto, Patrizia The Birdcage 1996 -McKidd, Kevin Hannibal Rising 2007 -McKidd, Kevin Made of Honor 2008 -McKidd, Kevin Kingdom of Heaven 2005 -McKidd, Kevin Brave 2012 -McKidd, Kevin Percy Jackson & the Olympians: The Lightning Thief 2010 -Nucci, Danny The Rock 1996 -Nucci, Danny Titanic 1997 -Nucci, Danny Eraser 1996 -Nucci, Danny World Trade Center 2006 -Leary, Denis Ice Age: The Meltdown 2006 -Leary, Denis Ice Age: Dawn of the Dinosaurs 2009 -Leary, Denis Small Soldiers 1998 -Leary, Denis The Thomas Crown Affair 1999 -Leary, Denis Wag the Dog 1997 -Leary, Denis A Bug's Life 1998 -Leary, Denis Ice Age 2002 -Leary, Denis The Amazing Spider-Man 2012 -Mangan, Darin Changeling 2008 -Mangan, Darin Heat 1995 -Mangan, Darin Independence Day 1996 -Terauda, Aija Spider-Man 3 2007 -Terauda, Aija The Sorcerer's Apprentice 2010 -Terauda, Aija American Gangster 2007 -Tripplehorn, Jeanne Basic Instinct 1992 -Tripplehorn, Jeanne Waterworld 1995 -Tripplehorn, Jeanne Mickey Blue Eyes 1999 -Tripplehorn, Jeanne The Firm 1993 -Beatson, Bert We Are Marshall 2006 -Beatson, Bert The Rookie 2002 -Beatson, Bert Radio 2003 -Rothman, John The Devil Wears Prada 2006 -Rothman, John The Siege 1998 -Rothman, John Unfaithful 2002 -Rothman, John Enchanted 2007 -Rothman, John Jingle All the Way 1996 -Rothman, John United 93 2006 -Rothman, John Ghost Busters 1984 -Rothman, John The Devil's Advocate 1997 -Rothman, John Daredevil 2003 -Rothman, John The Day the Earth Stood Still 2008 -Gómez, Carlos (II) The Peacemaker 1997 -Gómez, Carlos (II) The Negotiator 1998 -Gómez, Carlos (II) Enemy of the State 1998 -Vezina, George J. The Town 2010 -Vezina, George J. Knight and Day 2010 -Vezina, George J. Zookeeper 2011 -Vezina, George J. Paul Blart: Mall Cop 2009 -Adoti, Razaaq Amistad 1997 -Adoti, Razaaq Black Hawk Down 2001 -Adoti, Razaaq Resident Evil: Apocalypse 2004 -Howard, Bryce Dallas Terminator Salvation 2009 -Howard, Bryce Dallas The Help 2011 -Howard, Bryce Dallas The Village 2004 -Howard, Bryce Dallas Spider-Man 3 2007 -Howard, Bryce Dallas Apollo 13 1995 -Howard, Bryce Dallas The Twilight Saga: Eclipse 2010 -Howard, Bryce Dallas Hereafter 2010 -Howard, Bryce Dallas How the Grinch Stole Christmas 2000 -Howard, Bryce Dallas Lady in the Water 2006 -Pedersen, Libby (II) The Lake House 2006 -Pedersen, Libby (II) Wedding Crashers 2005 -Pedersen, Libby (II) Public Enemies 2009 -Pedersen, Libby (II) Fred Claus 2007 -Pedersen, Libby (II) The Break-Up 2006 -Alexsen, Andre Changeling 2008 -Alexsen, Andre Indiana Jones and the Kingdom of the Crystal Skull 2008 -Alexsen, Andre Get Smart 2008 -Samuels, Ben (II) Wall Street: Money Never Sleeps 2010 -Samuels, Ben (II) The Happening 2008 -Samuels, Ben (II) 21 2008 -Hall, Randy (I) Spider-Man 2002 -Hall, Randy (I) The X Files 1998 -Hall, Randy (I) Mission: Impossible - Ghost Protocol 2011 -Barcelos, Alberto Clash of the Titans 2010 -Barcelos, Alberto Prince of Persia: The Sands of Time 2010 -Barcelos, Alberto Get Him to the Greek 2010 -Smith, David Lee (I) A Walk to Remember 2002 -Smith, David Lee (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Smith, David Lee (I) Fight Club 1999 -Meismer, Mark Austin Powers: The Spy Who Shagged Me 1999 -Meismer, Mark Austin Powers in Goldmember 2002 -Meismer, Mark Starsky & Hutch 2004 -Callahan, Dan (I) Spider-Man 3 2007 -Callahan, Dan (I) The Ugly Truth 2009 -Callahan, Dan (I) Spider-Man 2 2004 -Stuart, James Patrick Ice Age: Dawn of the Dinosaurs 2009 -Stuart, James Patrick Cars 2006 -Stuart, James Patrick The Amazing Spider-Man 2012 -Stuart, James Patrick It's Complicated 2009 -Stuart, James Patrick Pretty Woman 1990 -Goldwyn, Tony Kiss the Girls 1997 -Goldwyn, Tony Ghost 1990 -Goldwyn, Tony The Last Samurai 2003 -Goldwyn, Tony The 6th Day 2000 -Goldwyn, Tony Tarzan 1999 -McCluskey, Taylor The Ugly Truth 2009 -McCluskey, Taylor Star Trek 2009 -McCluskey, Taylor Transformers: Dark of the Moon 2011 -Peacock, Daniel (I) Robin Hood: Prince of Thieves 1991 -Peacock, Daniel (I) The Jewel of the Nile 1985 -Peacock, Daniel (I) Gandhi 1982 -Gress, Googy Dr. Dolittle 2 2001 -Gress, Googy Me, Myself & Irene 2000 -Gress, Googy Apollo 13 1995 -Gress, Googy Rumor Has It... 2005 -Gress, Googy Armageddon 1998 -Gress, Googy He's Just Not That Into You 2009 -Gress, Googy Blue Streak 1999 -Konoval, Karin Diary of a Wimpy Kid 2010 -Konoval, Karin Scooby Doo 2: Monsters Unleashed 2004 -Konoval, Karin Rise of the Planet of the Apes 2011 -Weber, Jake U-571 2000 -Weber, Jake Meet Joe Black 1998 -Weber, Jake Amistad 1997 -Weber, Jake Dawn of the Dead 2004 -Weber, Jake The Cell 2000 -Payton, Khary Quantum of Solace 2008 -Payton, Khary Cloudy with a Chance of Meatballs 2009 -Payton, Khary Jumper 2008 -Beasley, Michael (I) American Reunion 2012 -Beasley, Michael (I) Journey 2: The Mysterious Island 2012 -Beasley, Michael (I) Contraband 2012 -Campbell, Caleb Changeling 2008 -Campbell, Caleb G.I. Joe: The Rise of Cobra 2009 -Campbell, Caleb The Island 2005 -Kerwin, Brian The Help 2011 -Kerwin, Brian Jack 1996 -Kerwin, Brian 27 Dresses 2008 -Hecker, Gary A. Resident Evil: Extinction 2007 -Hecker, Gary A. Cloudy with a Chance of Meatballs 2009 -Hecker, Gary A. 300 2006 -Hecker, Gary A. Sucker Punch 2011 -Hecker, Gary A. Lost in Space 1998 -Hecker, Gary A. The Relic 1997 -Hecker, Gary A. Independence Day 1996 -Hecker, Gary A. Godzilla 1998 -Hecker, Gary A. Hollow Man 2000 -Irons, Jeremy Eragon 2006 -Irons, Jeremy The Lion King 1994 -Irons, Jeremy The Time Machine 2002 -Irons, Jeremy Kingdom of Heaven 2005 -Irons, Jeremy Die Hard: With a Vengeance 1995 -Doherty, Sean Patrick Bride Wars 2009 -Doherty, Sean Patrick Mystic River 2003 -Doherty, Sean Patrick The Siege 1998 -Doherty, Sean Patrick Knight and Day 2010 -Doherty, Sean Patrick The Fighter 2010 -Asher, Cass Herbie Fully Loaded 2005 -Asher, Cass Sex and the City 2008 -Asher, Cass Something's Gotta Give 2003 -Asher, Cass The Terminal 2004 -Gere, Richard Chicago 2002 -Gere, Richard Unfaithful 2002 -Gere, Richard The Jackal 1997 -Gere, Richard Nights in Rodanthe 2008 -Gere, Richard Shall We Dance 2004 -Gere, Richard An Officer and a Gentleman 1982 -Gere, Richard Autumn in New York 2000 -Gere, Richard Pretty Woman 1990 -Gere, Richard Runaway Bride 1999 -Kohli, Rock The Dictator 2012 -Kohli, Rock You Don't Mess with the Zohan 2008 -Kohli, Rock Tower Heist 2011 -Osbourne, Ozzy Gnomeo & Juliet 2011 -Osbourne, Ozzy Moulin Rouge! 2001 -Osbourne, Ozzy Little Nicky 2000 -Osbourne, Ozzy Austin Powers in Goldmember 2002 -Young, Marcus (I) Star Trek 2009 -Young, Marcus (I) Takers 2010 -Young, Marcus (I) The Scorpion King 2002 -Sabara, Evan Spy Kids 2001 -Sabara, Evan Spy Kids 3-D: Game Over 2003 -Sabara, Evan The Polar Express 2004 -Sabara, Evan Dinosaur 2000 -Sabara, Evan Home on the Range 2004 -Sabara, Evan Raising Helen 2004 -Martinez, Benito (I) Million Dollar Baby 2004 -Martinez, Benito (I) Saw 2004 -Martinez, Benito (I) Takers 2010 -Martinez, Benito (I) Outbreak 1995 -Mathis, Elizabeth Unstoppable 2010 -Mathis, Elizabeth TRON: Legacy 2010 -Mathis, Elizabeth Enchanted 2007 -Ealy, Michael Bad Company 2002 -Ealy, Michael Barbershop 2002 -Ealy, Michael Underworld: Awakening 2012 -Ealy, Michael Think Like a Man 2012 -Ealy, Michael 2 Fast 2 Furious 2003 -Ealy, Michael Takers 2010 -Ealy, Michael Barbershop 2: Back in Business 2004 -Menzies, Tobias Atonement 2007 -Menzies, Tobias Finding Neverland 2004 -Menzies, Tobias Casino Royale 2006 -Atkins, Lasco X-Men: First Class 2011 -Atkins, Lasco Snow White and the Huntsman 2012 -Atkins, Lasco Sherlock Holmes: A Game of Shadows 2011 -Atkins, Lasco War Horse 2011 -Atkins, Lasco Robin Hood 2010 -Atkins, Lasco Wrath of the Titans 2012 -Masamune, Tohoru Memoirs of a Geisha 2005 -Masamune, Tohoru Rugrats in Paris: The Movie - Rugrats II 2000 -Masamune, Tohoru Inception 2010 -Masamune, Tohoru Jumper 2008 -Toub, Shaun The Last Airbender 2010 -Toub, Shaun Bad Boys 1995 -Toub, Shaun Charlie Wilson's War 2007 -Toub, Shaun Stigmata 1999 -Cothran Jr., John Rango 2011 -Cothran Jr., John Kiss the Girls 1997 -Cothran Jr., John Madagascar 2005 -Cothran Jr., John Spawn 1997 -Cothran Jr., John The Cell 2000 -Cothran Jr., John Yes Man 2008 -Brill, Mary Knocked Up 2007 -Brill, Mary D2: The Mighty Ducks 1994 -Brill, Mary Little Nicky 2000 -Plemons, Jesse Battleship 2012 -Plemons, Jesse Varsity Blues 1999 -Plemons, Jesse Like Mike 2002 -Keith, David (I) Men of Honor 2000 -Keith, David (I) An Officer and a Gentleman 1982 -Keith, David (I) U-571 2000 -Keith, David (I) Daredevil 2003 -Keith, David (I) Behind Enemy Lines 2001 -Northup, Harry The Silence of the Lambs 1991 -Northup, Harry The Manchurian Candidate 2004 -Northup, Harry Philadelphia 1993 -Butler, Jaymes Resident Evil 2002 -Butler, Jaymes Munich 2005 -Butler, Jaymes The Ghost Writer 2010 -Butler, Jaymes Mission: Impossible III 2006 -Smith, Clint (I) Trading Places 1983 -Smith, Clint (I) Coming to America 1988 -Smith, Clint (I) The Firm 1993 -Mintz-Plasse, Christopher How to Train Your Dragon 2010 -Mintz-Plasse, Christopher Superbad 2007 -Mintz-Plasse, Christopher Marmaduke 2010 -Mintz-Plasse, Christopher Kick-Ass 2010 -Mintz-Plasse, Christopher Role Models 2008 -Rudd, Paul (I) The Cider House Rules 1999 -Rudd, Paul (I) Romeo + Juliet 1996 -Rudd, Paul (I) Knocked Up 2007 -Rudd, Paul (I) I Love You, Man 2009 -Rudd, Paul (I) Monsters vs Aliens 2009 -Rudd, Paul (I) Forgetting Sarah Marshall 2008 -Rudd, Paul (I) Dinner for Schmucks 2010 -Rudd, Paul (I) The 40 Year Old Virgin 2005 -Rudd, Paul (I) Anchorman: The Legend of Ron Burgundy 2004 -Rudd, Paul (I) Role Models 2008 -Rudd, Paul (I) Night at the Museum 2006 -Johnson, Bonnie (I) Rules of Engagement 2000 -Johnson, Bonnie (I) Patch Adams 1998 -Johnson, Bonnie (I) Big Fish 2003 -Johnson, Bonnie (I) Evan Almighty 2007 -Johnson, Bonnie (I) The Last Song 2010 -Lotterman, Beau Lethal Weapon 2 1989 -Lotterman, Beau The Mask 1994 -Lotterman, Beau Clear and Present Danger 1994 -Lotterman, Beau Pearl Harbor 2001 -Lotterman, Beau Outbreak 1995 -Lotterman, Beau Conspiracy Theory 1997 -Sogliuzzo, André Legend of the Guardians: The Owls of Ga'Hoole 2010 -Sogliuzzo, André The Polar Express 2004 -Sogliuzzo, André Minority Report 2002 -Sogliuzzo, André Transformers: Revenge of the Fallen 2009 -Sogliuzzo, André Cats & Dogs: The Revenge of Kitty Galore 2010 -Sogliuzzo, André Madagascar 2005 -Sogliuzzo, André Fantastic Four 2005 -Sogliuzzo, André Shark Tale 2004 -Sogliuzzo, André Public Enemies 2009 -Sogliuzzo, André You've Got Mail 1998 -Sogliuzzo, André Shrek the Third 2007 -Sogliuzzo, André Spider-Man 3 2007 -Sogliuzzo, André Open Season 2006 -Sogliuzzo, André Night at the Museum: Battle of the Smithsonian 2009 -Sogliuzzo, André Shrek 2 2004 -Sogliuzzo, André Clash of the Titans 2010 -Kelly, George (II) JFK 1991 -Kelly, George (II) Forrest Gump 1994 -Kelly, George (II) Interview with the Vampire: The Vampire Chronicles 1994 -O'Neill, Sarah Jane Robin Hood 2010 -O'Neill, Sarah Jane Harry Potter and the Deathly Hallows: Part 1 2010 -O'Neill, Sarah Jane Hereafter 2010 -O'Neill, Sarah Jane Clash of the Titans 2010 -Birdsong, Mary The Descendants 2011 -Birdsong, Mary Made of Honor 2008 -Birdsong, Mary Killers 2010 -Ballard, Jeffrey (I) LiTTLEMAN 2006 -Ballard, Jeffrey (I) Mission to Mars 2000 -Ballard, Jeffrey (I) John Tucker Must Die 2006 -Marrinan, Sean The Sisterhood of the Traveling Pants 2 2008 -Marrinan, Sean Indiana Jones and the Kingdom of the Crystal Skull 2008 -Marrinan, Sean The Other Guys 2010 -Friedle, Will Chicken Little 2005 -Friedle, Will Hauru no ugoku shiro 2004 -Friedle, Will Spider-Man 2002 -Hasselhoff, David Hop 2011 -Hasselhoff, David The SpongeBob SquarePants Movie 2004 -Hasselhoff, David Dodgeball: A True Underdog Story 2004 -Hasselhoff, David Click 2006 -Yoakam, Dwight Panic Room 2002 -Yoakam, Dwight Four Christmases 2008 -Yoakam, Dwight Wedding Crashers 2005 -Sloane, Lindsay (I) Bring It On 2000 -Sloane, Lindsay (I) The Other Guys 2010 -Sloane, Lindsay (I) Horrible Bosses 2011 -Krueger, Tim Fred Claus 2007 -Krueger, Tim The Break-Up 2006 -Krueger, Tim Eagle Eye 2008 -Krueger, Tim The Jackal 1997 -Krueger, Tim The Devil Wears Prada 2006 -Krueger, Tim A Nightmare on Elm Street 2010 -Foye, Janet Babe 1995 -Foye, Janet Babe: Pig in the City 1998 -Foye, Janet Knowing 2009 -Poltoranin, Nick Salt 2010 -Poltoranin, Nick The Interpreter 2005 -Poltoranin, Nick American Gangster 2007 -Poltoranin, Nick Spider-Man 3 2007 -Poltoranin, Nick The Good Shepherd 2006 -Poltoranin, Nick The Taking of Pelham 1 2 3 2009 -Poltoranin, Nick Two Weeks Notice 2002 -Wilson, Rita (I) Jingle All the Way 1996 -Wilson, Rita (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Wilson, Rita (I) Larry Crowne 2011 -Wilson, Rita (I) Runaway Bride 1999 -Wilson, Rita (I) Sleepless in Seattle 1993 -Wilson, Rita (I) It's Complicated 2009 -Amos, Hank The Expendables 2010 -Amos, Hank The Pacifier 2005 -Amos, Hank Underworld 2003 -Taylor, James Arnold Charlie and the Chocolate Factory 2005 -Taylor, James Arnold Transformers: Revenge of the Fallen 2009 -Taylor, James Arnold Ice Age: Dawn of the Dinosaurs 2009 -Taylor, James Arnold Spider-Man 2 2004 -Taylor, James Arnold Despicable Me 2010 -Taylor, James Arnold Star Wars: Episode III - Revenge of the Sith 2005 -Taylor, James Arnold Shrek the Third 2007 -Taylor, James Arnold How to Train Your Dragon 2010 -Taylor, James Arnold Shrek 2 2004 -Taylor, James Arnold Speed Racer 2008 -Taylor, James Arnold TMNT 2007 -Hecht, Jessica J. Edgar 2011 -Hecht, Jessica Sideways 2004 -Hecht, Jessica The Forgotten 2004 -Hecht, Jessica Dan in Real Life 2007 -Bies, Don (I) Star Wars: Episode II - Attack of the Clones 2002 -Bies, Don (I) Star Wars: Episode I - The Phantom Menace 1999 -Bies, Don (I) Star Wars: Episode VI - Return of the Jedi 1983 -Flynn, Steve (III) The Game Plan 2007 -Flynn, Steve (III) 21 2008 -Flynn, Steve (III) The Departed 2006 -Flynn, Steve (III) 27 Dresses 2008 -Taylor, Christine (I) The Wedding Singer 1998 -Taylor, Christine (I) License to Wed 2007 -Taylor, Christine (I) Dodgeball: A True Underdog Story 2004 -Taylor, Christine (I) Zoolander 2001 -Taylor, Christine (I) Tropic Thunder 2008 -Leake, Damien Apocalypse Now 1979 -Leake, Damien Mighty Joe Young 1998 -Leake, Damien The Devil's Own 1997 -Cavestani, Frank A Few Good Men 1992 -Cavestani, Frank Apollo 13 1995 -Cavestani, Frank My Favorite Martian 1999 -Shaff, Edmund L. Evan Almighty 2007 -Shaff, Edmund L. Set It Off 1996 -Shaff, Edmund L. Herbie Fully Loaded 2005 -Mane, Tyler X-Men 2000 -Mane, Tyler Halloween 2007 -Mane, Tyler The Scorpion King 2002 -Mane, Tyler Troy 2004 -Dixon, Terrell The Matrix Reloaded 2003 -Dixon, Terrell Superman Returns 2006 -Dixon, Terrell Babe: Pig in the City 1998 -Dixon, Terrell Kangaroo Jack 2003 -Kozlowski, Steven (I) Good Will Hunting 1997 -Kozlowski, Steven (I) Collateral 2004 -Kozlowski, Steven (I) Holes 2003 -Cavanaugh, Michael (I) Collateral Damage 2002 -Cavanaugh, Michael (I) Holes 2003 -Cavanaugh, Michael (I) The Haunting 1999 -Cavanaugh, Michael (I) Red Dragon 2002 -Schombing, Jason Watchmen 2009 -Schombing, Jason Timecop 1994 -Schombing, Jason The A-Team 2010 -Schombing, Jason Fantastic Four 2005 -Kamp, Ariane Von Charlie's Angels 2000 -Kamp, Ariane Von End of Days 1999 -Kamp, Ariane Von Cellular 2004 -Kamp, Ariane Von The Perfect Storm 2000 -Kamp, Ariane Von Anchorman: The Legend of Ron Burgundy 2004 -Sloan, Tina Black Swan 2010 -Sloan, Tina The Brave One 2007 -Sloan, Tina Changing Lanes 2002 -Mardirosian, Tom Tootsie 1982 -Mardirosian, Tom Wall Street: Money Never Sleeps 2010 -Mardirosian, Tom Presumed Innocent 1990 -Mardirosian, Tom Trading Places 1983 -Mardirosian, Tom Lady in the Water 2006 -Thomas-Webster, Nick Sweeney Todd: The Demon Barber of Fleet Street 2007 -Thomas-Webster, Nick Harry Potter and the Order of the Phoenix 2007 -Thomas-Webster, Nick Alice in Wonderland 2010 -Danes, Claire Romeo + Juliet 1996 -Danes, Claire Terminator 3: Rise of the Machines 2003 -Danes, Claire Stardust 2007 -Danes, Claire The Rainmaker 1997 -Danes, Claire The Hours 2002 -Danes, Claire The Family Stone 2005 -McKinnon Miller, Joel The Truman Show 1998 -McKinnon Miller, Joel The Family Man 2000 -McKinnon Miller, Joel After the Sunset 2004 -McKinnon Miller, Joel Galaxy Quest 1999 -McKinnon Miller, Joel Rush Hour 2 2001 -McKinnon Miller, Joel Men in Black II 2002 -McKinnon Miller, Joel Just Like Heaven 2005 -McKinnon Miller, Joel Super 8 2011 -Moore, Lorin Miami Vice 2006 -Moore, Lorin The Truman Show 1998 -Moore, Lorin Deja Vu 2006 -Moore, Lorin The Dukes of Hazzard 2005 -Moore, Lorin A Time to Kill 1996 -Goodman-Hill, Tom The League of Extraordinary Gentlemen 2003 -Goodman-Hill, Tom Harry Potter and the Prisoner of Azkaban 2004 -Goodman-Hill, Tom Harry Potter and the Goblet of Fire 2005 -Rondell, R.A. (I) The Expendables 2010 -Rondell, R.A. (I) Clear and Present Danger 1994 -Rondell, R.A. (I) Constantine 2005 -Latham, Dan (II) Couples Retreat 2009 -Latham, Dan (II) Little Fockers 2010 -Latham, Dan (II) A Nightmare on Elm Street 2010 -Latham, Dan (II) Public Enemies 2009 -Latham, Dan (II) Eagle Eye 2008 -Widdows, Connor John Tucker Must Die 2006 -Widdows, Connor X-Men: The Last Stand 2006 -Widdows, Connor X2 2003 -Inglis, Jesper Star Trek 2009 -Inglis, Jesper The Replacements 2000 -Inglis, Jesper 10 Things I Hate About You 1999 -Rennie, Callum Keith Blade: Trinity 2004 -Rennie, Callum Keith Paycheck 2003 -Rennie, Callum Keith Memento 2000 -Rennie, Callum Keith The Butterfly Effect 2004 -Rennie, Callum Keith Timecop 1994 -Rennie, Callum Keith The X Files: I Want to Believe 2008 -Perkins, Elizabeth (I) About Last Night... 1986 -Perkins, Elizabeth (I) Hop 2011 -Perkins, Elizabeth (I) Cats & Dogs 2001 -Perkins, Elizabeth (I) 28 Days 2000 -Perkins, Elizabeth (I) Finding Nemo 2003 -Perkins, Elizabeth (I) The Ring Two 2005 -Perkins, Elizabeth (I) Must Love Dogs 2005 -Perkins, Elizabeth (I) The Flintstones 1994 -Lewis, Jenifer Madea's Family Reunion 2006 -Lewis, Jenifer Think Like a Man 2012 -Lewis, Jenifer Sister Act 1992 -Lewis, Jenifer Cars 2 2011 -Lewis, Jenifer Hereafter 2010 -Lewis, Jenifer Cars 2006 -Lewis, Jenifer Shark Tale 2004 -Lewis, Jenifer The Princess and the Frog 2009 -Lewis, Jenifer Cast Away 2000 -Lewis, Jenifer The Preacher's Wife 1996 -Harvey, Don (I) Die Hard 2 1990 -Harvey, Don (I) The Relic 1997 -Harvey, Don (I) Public Enemies 2009 -Harvey, Don (I) The Thin Red Line 1998 -Pricskett, Mark The Happening 2008 -Pricskett, Mark Unbreakable 2000 -Pricskett, Mark Snake Eyes 1998 -Pricskett, Mark Limitless 2011 -Barrett, Jacinda Bridget Jones: The Edge of Reason 2004 -Barrett, Jacinda Poseidon 2006 -Barrett, Jacinda Ladder 49 2004 -Senzy, Arthur A Few Good Men 1992 -Senzy, Arthur Apollo 13 1995 -Senzy, Arthur In the Line of Fire 1993 -Senzy, Arthur My Favorite Martian 1999 -Etienne, Treva Terminator Salvation 2009 -Etienne, Treva Black Hawk Down 2001 -Etienne, Treva Eyes Wide Shut 1999 -Etienne, Treva Curious George 2006 -Etienne, Treva Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Etienne, Treva Bad Boys II 2003 -Caviezel, Jim Frequency 2000 -Caviezel, Jim Deja Vu 2006 -Caviezel, Jim High Crimes 2002 -Caviezel, Jim The Passion of the Christ 2004 -Caviezel, Jim G.I. Jane 1997 -Caviezel, Jim The Count of Monte Cristo 2002 -Caviezel, Jim Pay It Forward 2000 -Caviezel, Jim The Rock 1996 -Caviezel, Jim The Thin Red Line 1998 -Bolton, Buddy The Master of Disguise 2002 -Bolton, Buddy Bad Boys 1995 -Bolton, Buddy Mr. Deeds 2002 -Stinton, Colin Captain America: The First Avenger 2011 -Stinton, Colin Spy Game 2001 -Stinton, Colin The Bourne Ultimatum 2007 -Stinton, Colin Tomorrow Never Dies 1997 -Stinton, Colin The Hours 2002 -Flood, Staci B. Charlie's Angels: Full Throttle 2003 -Flood, Staci B. Like Mike 2002 -Flood, Staci B. The Hot Chick 2002 -Griffin, Khamani Happy Feet 2006 -Griffin, Khamani Daddy Day Care 2003 -Griffin, Khamani Barnyard 2006 -Griffin, Khamani Norbit 2007 -Kehela, Steve Curious George 2006 -Kehela, Steve Fun with Dick and Jane 2005 -Kehela, Steve Space Jam 1996 -Kehela, Steve Angels & Demons 2009 -Kehela, Steve Guess Who 2005 -Kehela, Steve Nutty Professor II: The Klumps 2000 -Kehela, Steve Evolution 2001 -Kehela, Steve How the Grinch Stole Christmas 2000 -Young, Robert A. The Lake House 2006 -Young, Robert A. Contagion 2011 -Young, Robert A. Public Enemies 2009 -Young, Robert A. Eagle Eye 2008 -Callan, Peter Ghost Rider 2007 -Callan, Peter Nim's Island 2008 -Callan, Peter Babe: Pig in the City 1998 -Maropis, Adoni The Scorpion King 2002 -Maropis, Adoni Troy 2004 -Maropis, Adoni Hidalgo 2004 -Maropis, Adoni Bad Company 2002 -Matthews, Dakin The Siege 1998 -Matthews, Dakin Flubber 1997 -Matthews, Dakin Bean 1997 -Matthews, Dakin True Grit 2010 -Garrick, Barbara Jumper 2008 -Garrick, Barbara Sleepless in Seattle 1993 -Garrick, Barbara The Firm 1993 -Carr, Anthony (I) Hairspray 2007 -Carr, Anthony (I) Step Up 3D 2010 -Carr, Anthony (I) Step Up 2006 -Carr, Anthony (I) Justin Bieber: Never Say Never 2011 -Formosa, Victor Wings of Courage 1995 -Formosa, Victor Dreamcatcher 2003 -Formosa, Victor Scooby Doo 2: Monsters Unleashed 2004 -Formosa, Victor The A-Team 2010 -Formosa, Victor The 6th Day 2000 -Formosa, Victor I, Robot 2004 -Boyar, Lombardo Happy Feet Two 2011 -Boyar, Lombardo Gone in Sixty Seconds 2000 -Boyar, Lombardo Beverly Hills Chihuahua 2008 -Boyar, Lombardo Happy Feet 2006 -McCall, Todd (IV) Law Abiding Citizen 2009 -McCall, Todd (IV) Evan Almighty 2007 -McCall, Todd (IV) Limitless 2011 -Blanco, Lydia The Holiday 2006 -Blanco, Lydia No Strings Attached 2011 -Blanco, Lydia The Terminal 2004 -Williams, Chris (XII) Spider-Man 3 2007 -Williams, Chris (XII) Open Season 2006 -Williams, Chris (XII) Scary Movie 4 2006 -Williams, Chris (XII) Minority Report 2002 -Williams, Chris (XII) Dodgeball: A True Underdog Story 2004 -Bentt, Michael Ali 2001 -Bentt, Michael Million Dollar Baby 2004 -Bentt, Michael Collateral 2004 -Bentt, Michael Public Enemies 2009 -Rodriguez, Paul (I) Ali 2001 -Rodriguez, Paul (I) Rat Race 2001 -Rodriguez, Paul (I) A Cinderella Story 2004 -Rodriguez, Paul (I) Beverly Hills Chihuahua 2008 -Rodriguez, Paul (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Ivanek, Zeljko The Manchurian Candidate 2004 -Ivanek, Zeljko Black Hawk Down 2001 -Ivanek, Zeljko Unfaithful 2002 -Ivanek, Zeljko Live Free or Die Hard 2007 -Ivanek, Zeljko Hannibal 2001 -Ivanek, Zeljko A Civil Action 1998 -Ivanek, Zeljko Donnie Brasco 1997 -Ivanek, Zeljko Courage Under Fire 1996 -Ivanek, Zeljko Tower Heist 2011 -Azizi, Anthony Three Kings 1999 -Azizi, Anthony Charlie Wilson's War 2007 -Azizi, Anthony Eagle Eye 2008 -Azizi, Anthony Transformers: Dark of the Moon 2011 -Corddry, Rob I Now Pronounce You Chuck & Larry 2007 -Corddry, Rob What Happens in Vegas 2008 -Corddry, Rob The Heartbreak Kid 2007 -Corddry, Rob Blades of Glory 2007 -Corddry, Rob Failure to Launch 2006 -Corddry, Rob Old School 2003 -Corddry, Rob The Muppets 2011 -Corddry, Rob Hot Tub Time Machine 2010 -Curfman, Jahnel Date Night 2010 -Curfman, Jahnel Avatar 2009 -Curfman, Jahnel Real Steel 2011 -Bent, Lyriq Saw II 2005 -Bent, Lyriq Saw IV 2007 -Bent, Lyriq Four Brothers 2005 -Bent, Lyriq Saw V 2008 -Bent, Lyriq Saw III 2006 -Maier, Charlotte About Last Night... 1986 -Maier, Charlotte Two Weeks Notice 2002 -Maier, Charlotte The Pink Panther 2006 -Fonda, Bridget Kiss of the Dragon 2001 -Fonda, Bridget Lake Placid 1999 -Fonda, Bridget Jackie Brown 1997 -Winters, Kristoffer Ryan Primary Colors 1998 -Winters, Kristoffer Ryan Dude, Where's My Car? 2000 -Winters, Kristoffer Ryan Under the Tuscan Sun 2003 -Winters, Kristoffer Ryan Contact 1997 -Lennix, Harry The Matrix Reloaded 2003 -Lennix, Harry Barbershop 2: Back in Business 2004 -Lennix, Harry The Matrix Revolutions 2003 -Lennix, Harry Stomp the Yard 2007 -Lennix, Harry Collateral Damage 2002 -Goldthwait, Bobcat Hercules 1997 -Goldthwait, Bobcat Police Academy 2: Their First Assignment 1985 -Goldthwait, Bobcat Police Academy 3: Back in Training 1986 -Goldthwait, Bobcat Blow 2001 -Hamilton, Richard (I) Arthur 1981 -Hamilton, Richard (I) Men in Black 1997 -Hamilton, Richard (I) Home Alone 3 1997 -Hamilton, Richard (I) Message in a Bottle 1999 -Brown, Greg (VIII) I Now Pronounce You Chuck & Larry 2007 -Brown, Greg (VIII) Forrest Gump 1994 -Brown, Greg (VIII) J. Edgar 2011 -Brown, Greg (VIII) Evan Almighty 2007 -Brown, Greg (VIII) He's Just Not That Into You 2009 -Brown, Greg (VIII) Knocked Up 2007 -Brown, Greg (VIII) Live Free or Die Hard 2007 -Brown, Greg (VIII) Ocean's Thirteen 2007 -Assante, Armand Striptease 1996 -Assante, Armand American Gangster 2007 -Assante, Armand The Road to El Dorado 2000 -Callen, Bryan Bad Santa 2003 -Callen, Bryan Scary Movie 4 2006 -Callen, Bryan The Hangover Part II 2011 -Callen, Bryan Old School 2003 -Callen, Bryan The Hangover 2009 -Huntley, Noah The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Huntley, Noah Snow White and the Huntsman 2012 -Huntley, Noah 28 Days Later... 2002 -Fitzgerald, Glenn The Sixth Sense 1999 -Fitzgerald, Glenn Finding Forrester 2000 -Fitzgerald, Glenn 40 Days and 40 Nights 2002 -Pethrus, Jimmy Wrath of the Titans 2012 -Pethrus, Jimmy X-Men: First Class 2011 -Pethrus, Jimmy Snow White and the Huntsman 2012 -Barriere, Jessica Marie Knocked Up 2007 -Barriere, Jessica Marie Ocean's Thirteen 2007 -Barriere, Jessica Marie 21 2008 -Torrens, Pip Pride & Prejudice 2005 -Torrens, Pip War Horse 2011 -Torrens, Pip Tomorrow Never Dies 1997 -Binkley, Gregg (I) Galaxy Quest 1999 -Binkley, Gregg (I) Changeling 2008 -Binkley, Gregg (I) Alvin and the Chipmunks: The Squeakquel 2009 -Bremmer, Richard Harry Potter and the Sorcerer's Stone 2001 -Bremmer, Richard Shanghai Knights 2003 -Bremmer, Richard The 13th Warrior 1999 -Bova, Raoul Under the Tuscan Sun 2003 -Bova, Raoul The Tourist 2010 -Bova, Raoul AVP: Alien vs. Predator 2004 -Malick, Wendie The Emperor's New Groove 2000 -Malick, Wendie Confessions of a Shopaholic 2009 -Malick, Wendie Alvin and the Chipmunks: The Squeakquel 2009 -Malick, Wendie Racing Stripes 2005 -Blake, Clement Legally Blonde 2: Red, White & Blonde 2003 -Blake, Clement Magnolia 1999 -Blake, Clement Mousehunt 1997 -Blake, Clement The Artist 2011 -Blake, Clement Showtime 2002 -Blake, Clement Superbad 2007 -Blake, Clement Minority Report 2002 -Schroeder, Carly Toy Story 2 1999 -Schroeder, Carly Firewall 2006 -Schroeder, Carly Babe: Pig in the City 1998 -Schroeder, Carly The Lizzie McGuire Movie 2003 -Whitford, Bradley The Cabin in the Woods 2011 -Whitford, Bradley Philadelphia 1993 -Whitford, Bradley Bicentennial Man 1999 -Whitford, Bradley Presumed Innocent 1990 -Whitford, Bradley The Sisterhood of the Traveling Pants 2005 -Rhee, Lil Body of Lies 2008 -Rhee, Lil Live Free or Die Hard 2007 -Rhee, Lil Burn After Reading 2008 -Harper, Stacey (I) Like Mike 2002 -Harper, Stacey (I) Starsky & Hutch 2004 -Harper, Stacey (I) 13 Going on 30 2004 -Field, Sally Forrest Gump 1994 -Field, Sally Where the Heart Is 2000 -Field, Sally Legally Blonde 2: Red, White & Blonde 2003 -Field, Sally Absence of Malice 1981 -Field, Sally Mrs. Doubtfire 1993 -Field, Sally The Amazing Spider-Man 2012 -Talai, Amir Kung Fu Panda 2 2011 -Talai, Amir The Pursuit of Happyness 2006 -Talai, Amir Legally Blonde 2: Red, White & Blonde 2003 -Williams, JoBeth Kramer vs. Kramer 1979 -Williams, JoBeth Jungle 2 Jungle 1997 -Williams, JoBeth Fever Pitch 2005 -Williams, JoBeth Poltergeist 1982 -West, Nathan (I) Bring It On 2000 -West, Nathan (I) D2: The Mighty Ducks 1994 -West, Nathan (I) Miracle 2004 -Holliday, Polly Mrs. Doubtfire 1993 -Holliday, Polly The Heartbreak Kid 2007 -Holliday, Polly The Parent Trap 1998 -Clendenin, Bob Star Trek 2009 -Clendenin, Bob Lemony Snicket's A Series of Unfortunate Events 2004 -Clendenin, Bob Race to Witch Mountain 2009 -Clendenin, Bob Dude, Where's My Car? 2000 -Clendenin, Bob L.A. Confidential 1997 -Kuhn, Daniella Patch Adams 1998 -Kuhn, Daniella Bring It On 2000 -Kuhn, Daniella Traffic 2000 -Kuhn, Daniella Hulk 2003 -Belle, Camilla Push 2009 -Belle, Camilla Practical Magic 1998 -Belle, Camilla 10,000 BC 2008 -Belle, Camilla The Lost World: Jurassic Park 1997 -Bryk, Greg Saw 3D 2010 -Bryk, Greg The Incredible Hulk 2008 -Bryk, Greg Saw V 2008 -Bryk, Greg A History of Violence 2005 -Bryk, Greg Immortals 2011 -Fox, Vivica A. Soul Food 1997 -Fox, Vivica A. Kill Bill: Vol. 2 2004 -Fox, Vivica A. Set It Off 1996 -Fox, Vivica A. Kill Bill: Vol. 1 2003 -Fox, Vivica A. Batman & Robin 1997 -Fox, Vivica A. Double Take 2001 -Fox, Vivica A. Independence Day 1996 -Jenkins, Noam Saw II 2005 -Jenkins, Noam Saw IV 2007 -Jenkins, Noam John Q 2002 -Leland, Brad The Texas Chainsaw Massacre 2003 -Leland, Brad Hancock 2008 -Leland, Brad Friday Night Lights 2004 -Leland, Brad Inside Man 2006 -Fein, Amanda Chicken Little 2005 -Fein, Amanda Deep Impact 1998 -Fein, Amanda Matilda 1996 -Fein, Amanda Baby Geniuses 1999 -Van Putten, Chekesha Austin Powers: International Man of Mystery 1997 -Van Putten, Chekesha Austin Powers: The Spy Who Shagged Me 1999 -Van Putten, Chekesha American Beauty 1999 -Arquette, Richmond Made of Honor 2008 -Arquette, Richmond The Curious Case of Benjamin Button 2008 -Arquette, Richmond Scream 3 2000 -Arquette, Richmond Halloween 2007 -Arquette, Richmond Fight Club 1999 -Arquette, Richmond Se7en 1995 -Wanzer, Anthony The Bourne Ultimatum 2007 -Wanzer, Anthony Hannibal 2001 -Wanzer, Anthony The Replacements 2000 -Diesel, Vin The Chronicles of Riddick 2004 -Diesel, Vin Pitch Black 2000 -Diesel, Vin The Fast and the Furious 2001 -Diesel, Vin Fast & Furious 2009 -Diesel, Vin The Pacifier 2005 -Diesel, Vin Babylon A.D. 2008 -Diesel, Vin xXx 2002 -Diesel, Vin Saving Private Ryan 1998 -Diesel, Vin The Fast and the Furious: Tokyo Drift 2006 -Diesel, Vin Fast Five 2011 -Shimono, Sab Waterworld 1995 -Shimono, Sab Presumed Innocent 1990 -Shimono, Sab Gung Ho 1986 -Oliver, Jay (I) Deja Vu 2006 -Oliver, Jay (I) The Curious Case of Benjamin Button 2008 -Oliver, Jay (I) Meet the Spartans 2008 -Kutcher, Ashton What Happens in Vegas 2008 -Kutcher, Ashton The Butterfly Effect 2004 -Kutcher, Ashton New Year's Eve 2011 -Kutcher, Ashton Open Season 2006 -Kutcher, Ashton Killers 2010 -Kutcher, Ashton Guess Who 2005 -Kutcher, Ashton Dude, Where's My Car? 2000 -Kutcher, Ashton No Strings Attached 2011 -Kutcher, Ashton Just Married 2003 -Kutcher, Ashton Cheaper by the Dozen 2003 -McConaughey, Matthew The Wedding Planner 2001 -McConaughey, Matthew Amistad 1997 -McConaughey, Matthew Failure to Launch 2006 -McConaughey, Matthew The Lincoln Lawyer 2011 -McConaughey, Matthew Sahara 2005 -McConaughey, Matthew A Time to Kill 1996 -McConaughey, Matthew Tropic Thunder 2008 -McConaughey, Matthew U-571 2000 -McConaughey, Matthew How to Lose a Guy in 10 Days 2003 -McConaughey, Matthew Contact 1997 -McConaughey, Matthew Magnificent Desolation: Walking on the Moon 3D 2005 -McConaughey, Matthew Ghosts of Girlfriends Past 2009 -McConaughey, Matthew We Are Marshall 2006 -McConaughey, Matthew Reign of Fire 2002 -Asano, Tadanobu Battleship 2012 -Asano, Tadanobu Mongol 2007 -Asano, Tadanobu Thor 2011 -Chalaya, Victoria Meet the Fockers 2004 -Chalaya, Victoria Fat Albert 2004 -Chalaya, Victoria Christmas with the Kranks 2004 -Chalaya, Victoria The Princess Diaries 2: Royal Engagement 2004 -Lawrence, Colin (I) Dreamcatcher 2003 -Lawrence, Colin (I) Watchmen 2009 -Lawrence, Colin (I) The 6th Day 2000 -Lawrence, Colin (I) Fantastic Four 2005 -Lawrence, Colin (I) X2 2003 -Antico, Pete Three Kings 1999 -Antico, Pete Lethal Weapon 3 1992 -Antico, Pete The Other Guys 2010 -Antico, Pete The Hunt for Red October 1990 -Antico, Pete Con Air 1997 -Antico, Pete Wall Street: Money Never Sleeps 2010 -Pérez, Miguel (I) Artificial Intelligence: AI 2001 -Pérez, Miguel (I) Million Dollar Baby 2004 -Pérez, Miguel (I) Clear and Present Danger 1994 -Pérez, Miguel (I) Blow 2001 -Pérez, Miguel (I) Ocean's Eleven 2001 -Pérez, Miguel (I) Magnolia 1999 -Sizemore, Tom Black Hawk Down 2001 -Sizemore, Tom The Relic 1997 -Sizemore, Tom Saving Private Ryan 1998 -Sizemore, Tom Dreamcatcher 2003 -Sizemore, Tom Pearl Harbor 2001 -Sizemore, Tom Enemy of the State 1998 -Sizemore, Tom Heat 1995 -Ambler, Jeremy We Are Marshall 2006 -Ambler, Jeremy The Three Stooges 2012 -Ambler, Jeremy Evan Almighty 2007 -Ambler, Jeremy American Reunion 2012 -Ambler, Jeremy Big Momma's House 2 2006 -Ambler, Jeremy Due Date 2010 -Ambler, Jeremy The Dukes of Hazzard 2005 -Torry, Guy Don't Say a Word 2001 -Torry, Guy The Animal 2001 -Torry, Guy Runaway Jury 2003 -Torry, Guy Pearl Harbor 2001 -Wilson, Scott (I) The Heartbreak Kid 2007 -Wilson, Scott (I) Gwoemul 2006 -Wilson, Scott (I) The Animal 2001 -Wilson, Scott (I) Monster 2003 -Wilson, Scott (I) G.I. Jane 1997 -Wilson, Scott (I) Pearl Harbor 2001 -Wilson, Scott (I) The Last Samurai 2003 -Bader, Diedrich Bolt 2008 -Bader, Diedrich Meet the Spartans 2008 -Bader, Diedrich Miss Congeniality 2: Armed and Fabulous 2005 -Bader, Diedrich Ice Age 2002 -Bader, Diedrich Surf's Up 2007 -Bader, Diedrich Recess: School's Out 2001 -Bader, Diedrich Napoleon Dynamite 2004 -Lopez, Jennifer (I) Anaconda 1997 -Lopez, Jennifer (I) The Wedding Planner 2001 -Lopez, Jennifer (I) Maid in Manhattan 2002 -Lopez, Jennifer (I) The Cell 2000 -Lopez, Jennifer (I) Selena 1997 -Lopez, Jennifer (I) Monster-in-Law 2005 -Lopez, Jennifer (I) Antz 1998 -Lopez, Jennifer (I) Jack 1996 -Lopez, Jennifer (I) Shall We Dance 2004 -Maddrell, Jill Inception 2010 -Maddrell, Jill Rush Hour 3 2007 -Maddrell, Jill Superbad 2007 -Fox, Megan (I) Transformers: Revenge of the Fallen 2009 -Fox, Megan (I) Transformers 2007 -Fox, Megan (I) Bad Boys II 2003 -Fox, Megan (I) The Dictator 2012 -Laufer, Jillana Little Fockers 2010 -Laufer, Jillana Transformers: Dark of the Moon 2011 -Laufer, Jillana The Artist 2011 -Murray, David (VI) King Arthur 2004 -Murray, David (VI) G.I. Joe: The Rise of Cobra 2009 -Murray, David (VI) Batman Begins 2005 -Duhamel, Josh Life as We Know It 2010 -Duhamel, Josh New Year's Eve 2011 -Duhamel, Josh Transformers: Revenge of the Fallen 2009 -Duhamel, Josh Transformers 2007 -Duhamel, Josh Transformers: Dark of the Moon 2011 -Brown, Pete (X) Step Brothers 2008 -Brown, Pete (X) Hancock 2008 -Brown, Pete (X) Changeling 2008 -Seymour, Ralph Rain Man 1988 -Seymour, Ralph Pee-wee's Big Adventure 1985 -Seymour, Ralph The Relic 1997 -Ordway, Melissa The Last Song 2010 -Ordway, Melissa In Time 2011 -Ordway, Melissa 17 Again 2009 -Revill, Clive Star Wars: Episode V - The Empire Strikes Back 1980 -Revill, Clive Pirates of the Caribbean: At World's End 2007 -Revill, Clive Return to Never Land 2002 -Revill, Clive Transformers: Revenge of the Fallen 2009 -Schreiber, Liev X-Men Origins: Wolverine 2009 -Schreiber, Liev Scream 2 1997 -Schreiber, Liev The Manchurian Candidate 2004 -Schreiber, Liev The Sum of All Fears 2002 -Schreiber, Liev Ransom 1996 -Schreiber, Liev Salt 2010 -Schreiber, Liev The Hurricane 1999 -Schreiber, Liev Scream 3 2000 -Schreiber, Liev Sea Monsters: A Prehistoric Adventure 2007 -Schreiber, Liev Scream 1996 -Schreiber, Liev The Omen 2006 -Duran, Dan (I) X-Men 2000 -Duran, Dan (I) Dawn of the Dead 2004 -Duran, Dan (I) The Time Traveler's Wife 2009 -Duran, Dan (I) Kick-Ass 2010 -Duran, Dan (I) Down to Earth 2001 -Lim, Roger (I) Coach Carter 2005 -Lim, Roger (I) Vanilla Sky 2001 -Lim, Roger (I) Rumor Has It... 2005 -Lim, Roger (I) Rush Hour 2 2001 -Smith, Bubba (I) Police Academy 2: Their First Assignment 1985 -Smith, Bubba (I) Police Academy 3: Back in Training 1986 -Smith, Bubba (I) Police Academy 1984 -Langenfeld, T. Alloy Body of Lies 2008 -Langenfeld, T. Alloy National Treasure: Book of Secrets 2007 -Langenfeld, T. Alloy Transformers: Revenge of the Fallen 2009 -Langenfeld, T. Alloy Die Hard: With a Vengeance 1995 -Langenfeld, T. Alloy Step Up 2: The Streets 2008 -Langenfeld, T. Alloy Burn After Reading 2008 -Bacharach, Burt Austin Powers: The Spy Who Shagged Me 1999 -Bacharach, Burt Austin Powers: International Man of Mystery 1997 -Bacharach, Burt Austin Powers in Goldmember 2002 -Neiman, LeRoy Rocky Balboa 2006 -Neiman, LeRoy Rocky IV 1985 -Neiman, LeRoy Rocky V 1990 -Neiman, LeRoy Rocky III 1982 -Doerksen, Heather The Cabin in the Woods 2011 -Doerksen, Heather The Day the Earth Stood Still 2008 -Doerksen, Heather Marmaduke 2010 -Bwarie, Joseph Leo The Princess Diaries 2: Royal Engagement 2004 -Bwarie, Joseph Leo Race to Witch Mountain 2009 -Bwarie, Joseph Leo Raising Helen 2004 -Subkoff, Tara The Cell 2000 -Subkoff, Tara American Pie 1999 -Subkoff, Tara As Good as It Gets 1997 -Thompson, Brian (I) DragonHeart 1996 -Thompson, Brian (I) The Terminator 1984 -Thompson, Brian (I) Mortal Kombat: Annihilation 1997 -Ching, Mike TRON: Legacy 2010 -Ching, Mike Nacho Libre 2006 -Ching, Mike The Mummy: Tomb of the Dragon Emperor 2008 -Warren, Kiersten (I) 13 Going on 30 2004 -Warren, Kiersten (I) Independence Day 1996 -Warren, Kiersten (I) Intolerable Cruelty 2003 -Warren, Kiersten (I) Bicentennial Man 1999 -Warren, Kiersten (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Jennings, Alex (I) Bridget Jones: The Edge of Reason 2004 -Jennings, Alex (I) The Queen 2006 -Jennings, Alex (I) Babel 2006 -Borras, John Inside Man 2006 -Borras, John Confessions of a Shopaholic 2009 -Borras, John No Reservations 2007 -Wickware, Scott Down to Earth 2001 -Wickware, Scott The Santa Clause 1994 -Wickware, Scott The Tuxedo 2002 -Cenatiempo, John American Gangster 2007 -Cenatiempo, John Date Night 2010 -Cenatiempo, John The Departed 2006 -Cenatiempo, John Cellular 2004 -Cenatiempo, John 2 Fast 2 Furious 2003 -Cenatiempo, John The Pink Panther 2006 -Cenatiempo, John Righteous Kill 2008 -Cenatiempo, John Enemy of the State 1998 -Cenatiempo, John Lethal Weapon 3 1992 -Jenney, Lucinda S.W.A.T. 2003 -Jenney, Lucinda G.I. Jane 1997 -Jenney, Lucinda Remember the Titans 2000 -Jenney, Lucinda Rain Man 1988 -Jenney, Lucinda What Dreams May Come 1998 -Jenney, Lucinda Practical Magic 1998 -Doty, David Minority Report 2002 -Doty, David Red Dragon 2002 -Doty, David The Parent Trap 1998 -Doty, David Bean 1997 -Doty, David Legally Blonde 2: Red, White & Blonde 2003 -Doty, David Seabiscuit 2003 -Doty, David Daredevil 2003 -Doty, David Never Been Kissed 1999 -Doty, David Bad Teacher 2011 -Brown, W. Earl Kiss the Girls 1997 -Brown, W. Earl There's Something About Mary 1998 -Brown, W. Earl Deep Impact 1998 -Brown, W. Earl Scream 1996 -Brown, W. Earl Vanilla Sky 2001 -Brown, W. Earl Being John Malkovich 1999 -Bolin, Rusty 'Gravestone' Pirates of the Caribbean: Dead Man's Chest 2006 -Bolin, Rusty 'Gravestone' Rocky III 1982 -Bolin, Rusty 'Gravestone' Pirates of the Caribbean: At World's End 2007 -Nichols, Rachel (I) Autumn in New York 2000 -Nichols, Rachel (I) Charlie Wilson's War 2007 -Nichols, Rachel (I) G.I. Joe: The Rise of Cobra 2009 -Nichols, Rachel (I) The Sisterhood of the Traveling Pants 2 2008 -Nichols, Rachel (I) The Amityville Horror 2005 -Nichols, Rachel (I) Star Trek 2009 -Grey, Gilley Lethal Weapon 4 1998 -Grey, Gilley My Sister's Keeper 2009 -Grey, Gilley Race to Witch Mountain 2009 -Grey, Gilley Enemy of the State 1998 -Grey, Gilley The X Files 1998 -Savaria, Ellen The League of Extraordinary Gentlemen 2003 -Savaria, Ellen Hellboy 2004 -Savaria, Ellen The Illusionist 2006 -Vargas, Jacob Are We Done Yet? 2007 -Vargas, Jacob Dr. Dolittle 2 2001 -Vargas, Jacob Selena 1997 -Vargas, Jacob Next Friday 2000 -Vargas, Jacob Jarhead 2005 -Vargas, Jacob Traffic 2000 -Vargas, Jacob Death Race 2008 -Casciani, Tina Zoolander 2001 -Casciani, Tina Role Models 2008 -Casciani, Tina Ghosts of Girlfriends Past 2009 -Michael, Garon Where the Wild Things Are 2009 -Michael, Garon Congo 1995 -Michael, Garon Zookeeper 2011 -Blumenfeld, Alan The Flintstones 1994 -Blumenfeld, Alan In Her Shoes 2005 -Blumenfeld, Alan The Ring 2002 -Blumenfeld, Alan Righteous Kill 2008 -Blumenfeld, Alan Jingle All the Way 1996 -Fowler, Scott (I) Chicago 2002 -Fowler, Scott (I) Guess Who 2005 -Fowler, Scott (I) Boogie Nights 1997 -Wilson, Mike (XXXII) Law Abiding Citizen 2009 -Wilson, Mike (XXXII) Marley & Me 2008 -Wilson, Mike (XXXII) The Happening 2008 -Tucci, Stanley (I) Easy A 2010 -Tucci, Stanley (I) Road to Perdition 2002 -Tucci, Stanley (I) Robots 2005 -Tucci, Stanley (I) Captain America: The First Avenger 2011 -Tucci, Stanley (I) The Devil Wears Prada 2006 -Tucci, Stanley (I) The Tale of Despereaux 2008 -Tucci, Stanley (I) Julie & Julia 2009 -Tucci, Stanley (I) The Terminal 2004 -Tucci, Stanley (I) Shall We Dance 2004 -Tucci, Stanley (I) The Hunger Games 2012 -Tucci, Stanley (I) Maid in Manhattan 2002 -Tucci, Stanley (I) The Core 2003 -Tucci, Stanley (I) Space Chimps 2008 -Tucci, Stanley (I) America's Sweethearts 2001 -Aubert, Christian (I) City of Angels 1998 -Aubert, Christian (I) Godzilla 1998 -Aubert, Christian (I) Wild Wild West 1999 -Tan, Philip Batman 1989 -Tan, Philip Lethal Weapon 4 1998 -Tan, Philip Indiana Jones and the Temple of Doom 1984 -Tan, Philip Congo 1995 -Tan, Philip Big Momma's House 2000 -Van Swearingen, Guy Ali 2001 -Van Swearingen, Guy The Negotiator 1998 -Van Swearingen, Guy Public Enemies 2009 -Humphries, Harry (I) Armageddon 1998 -Humphries, Harry (I) G.I. Jane 1997 -Humphries, Harry (I) The Rock 1996 -Logue, Donal Blade 1998 -Logue, Donal Disclosure 1994 -Logue, Donal Just Like Heaven 2005 -Logue, Donal Max Payne 2008 -Logue, Donal The Thin Red Line 1998 -Logue, Donal Jerry Maguire 1996 -Logue, Donal The Patriot 2000 -Logue, Donal Ghost Rider 2007 -Logue, Donal Runaway Bride 1999 -Duff, Jamal The Game Plan 2007 -Duff, Jamal S.W.A.T. 2003 -Duff, Jamal The Rundown 2003 -Duff, Jamal Dodgeball: A True Underdog Story 2004 -Allen, Karen (I) Malcolm X 1992 -Allen, Karen (I) The Perfect Storm 2000 -Allen, Karen (I) I Am Number Four 2011 -Allen, Karen (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Allen, Karen (I) In the Bedroom 2001 -Garlington, Lee The Sum of All Fears 2002 -Garlington, Lee One Hour Photo 2002 -Garlington, Lee Dante's Peak 1997 -Garlington, Lee American Pie 2 2001 -Garlington, Lee Johnson Family Vacation 2004 -Garlington, Lee Evolution 2001 -Garlington, Lee The Hot Chick 2002 -Page, Chloe Sweeney Todd: The Demon Barber of Fleet Street 2007 -Page, Chloe The Woman in Black 2012 -Page, Chloe Hereafter 2010 -Kranz, Fran Matchstick Men 2003 -Kranz, Fran Diary of a Wimpy Kid: Rodrick Rules 2011 -Kranz, Fran The Cabin in the Woods 2011 -Kranz, Fran The Village 2004 -Kranz, Fran Training Day 2001 -Warnock, Donald Underdog 2007 -Warnock, Donald 21 2008 -Warnock, Donald Paul Blart: Mall Cop 2009 -Warman, John Sherlock Holmes 2009 -Warman, John The Bourne Ultimatum 2007 -Warman, John The Golden Compass 2007 -Warman, John Charlie and the Chocolate Factory 2005 -Hillis, Ali The Heartbreak Kid 2007 -Hillis, Ali Beverly Hills Chihuahua 2008 -Hillis, Ali The Amazing Spider-Man 2012 -Hillis, Ali Must Love Dogs 2005 -Benigno, Darlene Public Enemies 2009 -Benigno, Darlene Fred Claus 2007 -Benigno, Darlene The Break-Up 2006 -Brown, J. Anthony Drumline 2002 -Brown, J. Anthony Madea Goes to Jail 2009 -Brown, J. Anthony Think Like a Man 2012 -Smith, Will (I) Ali 2001 -Smith, Will (I) Wild Wild West 1999 -Smith, Will (I) Bad Boys 1995 -Smith, Will (I) Men in Black 3 2012 -Smith, Will (I) Hancock 2008 -Smith, Will (I) Shark Tale 2004 -Smith, Will (I) I, Robot 2004 -Smith, Will (I) Bad Boys II 2003 -Smith, Will (I) I Am Legend 2007 -Smith, Will (I) Men in Black 1997 -Smith, Will (I) Men in Black II 2002 -Smith, Will (I) Independence Day 1996 -Smith, Will (I) The Pursuit of Happyness 2006 -Smith, Will (I) Enemy of the State 1998 -Dona, Eliana Star Wars: Episode III - Revenge of the Sith 2005 -Dona, Eliana Moulin Rouge! 2001 -Dona, Eliana Star Wars: Episode II - Attack of the Clones 2002 -Miller, Beatrice (V) Ice Age: Dawn of the Dinosaurs 2009 -Miller, Beatrice (V) Confessions of a Shopaholic 2009 -Miller, Beatrice (V) Toy Story 3 2010 -Birchard, Paul (I) Batman 1989 -Birchard, Paul (I) 1408 2007 -Birchard, Paul (I) Hanna 2011 -Brown, Troy (I) The Three Stooges 2012 -Brown, Troy (I) Little Nicky 2000 -Brown, Troy (I) 2 Fast 2 Furious 2003 -Sterne, David Harry Potter and the Goblet of Fire 2005 -Sterne, David Gulliver's Travels 2010 -Sterne, David The Wolfman 2010 -Sterne, David Pirates of the Caribbean: Dead Man's Chest 2006 -Sterne, David A Knight's Tale 2001 -Rifkin, Ron JFK 1991 -Rifkin, Ron L.A. Confidential 1997 -Rifkin, Ron The Negotiator 1998 -Rifkin, Ron The Sum of All Fears 2002 -Rifkin, Ron Keeping the Faith 2000 -Byrne, Gerry Robert The Interpreter 2005 -Byrne, Gerry Robert Gangs of New York 2002 -Byrne, Gerry Robert Eternal Sunshine of the Spotless Mind 2004 -Bourland, Kevin (I) About Last Night... 1986 -Bourland, Kevin (I) Sister Act 1992 -Bourland, Kevin (I) Volcano 1997 -Luckey, Bud The Incredibles 2004 -Luckey, Bud Toy Story 3 2010 -Luckey, Bud Winnie the Pooh 2011 -Sylvers, Ronald The Interpreter 2005 -Sylvers, Ronald The Preacher's Wife 1996 -Sylvers, Ronald Trading Places 1983 -Morgan, Debbi Coach Carter 2005 -Morgan, Debbi The Hurricane 1999 -Morgan, Debbi She's All That 1999 -Oz, Frank Zathura: A Space Adventure 2005 -Oz, Frank Star Wars: Episode I - The Phantom Menace 1999 -Oz, Frank Star Wars: Episode VI - Return of the Jedi 1983 -Oz, Frank Trading Places 1983 -Oz, Frank Star Wars: Episode V - The Empire Strikes Back 1980 -Oz, Frank Star Wars: Episode II - Attack of the Clones 2002 -Oz, Frank The Stepford Wives 2004 -Oz, Frank Spies Like Us 1985 -Oz, Frank Star Wars: Episode III - Revenge of the Sith 2005 -Oz, Frank Monsters, Inc. 2001 -Napier, Charles The Manchurian Candidate 2004 -Napier, Charles Philadelphia 1993 -Napier, Charles Austin Powers: International Man of Mystery 1997 -Napier, Charles Nutty Professor II: The Klumps 2000 -Napier, Charles The Silence of the Lambs 1991 -Napier, Charles The Cable Guy 1996 -Napier, Charles Austin Powers: The Spy Who Shagged Me 1999 -Napier, Charles Spirit: Stallion of the Cimarron 2002 -Napier, Charles Rambo: First Blood Part II 1985 -Feldman, Sebastian (I) The Bourne Ultimatum 2007 -Feldman, Sebastian (I) End of Days 1999 -Feldman, Sebastian (I) Pay It Forward 2000 -Feldman, Sebastian (I) Hanging Up 2000 -Kinnear, Greg Baby Mama 2008 -Kinnear, Greg The Last Song 2010 -Kinnear, Greg Invincible 2006 -Kinnear, Greg Little Miss Sunshine 2006 -Kinnear, Greg You've Got Mail 1998 -Kinnear, Greg Beavis and Butt-Head Do America 1996 -Kinnear, Greg Robots 2005 -Kinnear, Greg We Were Soldiers 2002 -Kinnear, Greg As Good as It Gets 1997 -Lane, Larry (II) Something's Gotta Give 2003 -Lane, Larry (II) The Patriot 2000 -Lane, Larry (II) Spider-Man 2002 -Lane, Larry (II) Jack and Jill 2011 -Shocknek, Kent Anchorman: The Legend of Ron Burgundy 2004 -Shocknek, Kent The Amazing Spider-Man 2012 -Shocknek, Kent The Terminal 2004 -Shocknek, Kent Disturbia 2007 -Shocknek, Kent Eagle Eye 2008 -Shocknek, Kent Superhero Movie 2008 -Shocknek, Kent Fast Five 2011 -Kalipha, Stefan The Sum of All Fears 2002 -Kalipha, Stefan For Your Eyes Only 1981 -Kalipha, Stefan Indiana Jones and the Last Crusade 1989 -Mower, Rachel Cloverfield 2008 -Mower, Rachel Enchanted 2007 -Mower, Rachel You Don't Mess with the Zohan 2008 -West, Debi Mae Shark Tale 2004 -West, Debi Mae Spider-Man 3 2007 -West, Debi Mae Despicable Me 2010 -Curtis, Clive Batman 1989 -Curtis, Clive A View to a Kill 1985 -Curtis, Clive For Your Eyes Only 1981 -Costas, Bob Cars 2006 -Costas, Bob Michael Jordan to the Max 2000 -Costas, Bob Coach Carter 2005 -Costas, Bob Moneyball 2011 -Cicco, Johnny Fever Pitch 2005 -Cicco, Johnny J. Edgar 2011 -Cicco, Johnny We Bought a Zoo 2011 -Cicco, Johnny The Departed 2006 -Cicco, Johnny Invictus 2009 -Cicco, Johnny The Adjustment Bureau 2011 -Foray, June Space Jam 1996 -Foray, June Mulan 1998 -Foray, June Who Framed Roger Rabbit 1988 -MacKay, David (I) Are We There Yet? 2005 -MacKay, David (I) Scary Movie 4 2006 -MacKay, David (I) Watchmen 2009 -Bates, Kathy (I) About Schmidt 2002 -Bates, Kathy (I) Fred Claus 2007 -Bates, Kathy (I) Failure to Launch 2006 -Bates, Kathy (I) Rat Race 2001 -Bates, Kathy (I) Around the World in 80 Days 2004 -Bates, Kathy (I) Bee Movie 2007 -Bates, Kathy (I) The Waterboy 1998 -Bates, Kathy (I) Primary Colors 1998 -Bates, Kathy (I) Midnight in Paris 2011 -Bates, Kathy (I) Titanic 1997 -Bates, Kathy (I) The Golden Compass 2007 -Bates, Kathy (I) Rumor Has It... 2005 -Bates, Kathy (I) The Day the Earth Stood Still 2008 -Bates, Kathy (I) P.S. I Love You 2007 -Bates, Kathy (I) A Civil Action 1998 -Bates, Kathy (I) The Blind Side 2009 -Bates, Kathy (I) Charlotte's Web 2006 -O'Malley, Bingo Wonder Boys 2000 -O'Malley, Bingo Super 8 2011 -O'Malley, Bingo My Bloody Valentine 2009 -Posey, Tyler Maid in Manhattan 2002 -Posey, Tyler Collateral Damage 2002 -Posey, Tyler Men of Honor 2000 -Cavaliere, Salvatore Changing Lanes 2002 -Cavaliere, Salvatore Mr. Deeds 2002 -Cavaliere, Salvatore Big Daddy 1999 -Cavaliere, Salvatore Little Nicky 2000 -Cavaliere, Salvatore Anger Management 2003 -Saxton, Richard Wag the Dog 1997 -Saxton, Richard Volcano 1997 -Saxton, Richard Nutty Professor II: The Klumps 2000 -Brunelle, Jodie Mona Lisa Smile 2003 -Brunelle, Jodie Paul Blart: Mall Cop 2009 -Brunelle, Jodie The Fighter 2010 -Goldberg, Adam (I) Deja Vu 2006 -Goldberg, Adam (I) A Beautiful Mind 2001 -Goldberg, Adam (I) Saving Private Ryan 1998 -Goldberg, Adam (I) How to Lose a Guy in 10 Days 2003 -Goldberg, Adam (I) Babe: Pig in the City 1998 -Bobbitt, Russell The Sum of All Fears 2002 -Bobbitt, Russell Never Been Kissed 1999 -Bobbitt, Russell Charlie's Angels: Full Throttle 2003 -Perry, Manny True Lies 1994 -Perry, Manny Rush Hour 1998 -Perry, Manny Eagle Eye 2008 -Perry, Manny Heat 1995 -Wendt, Mike Paul Blart: Mall Cop 2009 -Wendt, Mike 21 2008 -Wendt, Mike Underdog 2007 -Wendt, Mike Ghosts of Girlfriends Past 2009 -Cruise, Tom Top Gun 1986 -Cruise, Tom A Few Good Men 1992 -Cruise, Tom Mission: Impossible - Ghost Protocol 2011 -Cruise, Tom Mission: Impossible 1996 -Cruise, Tom Space Station 3D 2002 -Cruise, Tom The Queen 2006 -Cruise, Tom Collateral 2004 -Cruise, Tom Knight and Day 2010 -Cruise, Tom Minority Report 2002 -Cruise, Tom The Last Samurai 2003 -Cruise, Tom Tropic Thunder 2008 -Cruise, Tom The Firm 1993 -Cruise, Tom Jerry Maguire 1996 -Cruise, Tom Rain Man 1988 -Cruise, Tom Magnolia 1999 -Cruise, Tom Vanilla Sky 2001 -Cruise, Tom Interview with the Vampire: The Vampire Chronicles 1994 -Cruise, Tom Austin Powers in Goldmember 2002 -Cruise, Tom Eyes Wide Shut 1999 -Cruise, Tom Valkyrie 2008 -Cruise, Tom Risky Business 1983 -Cruise, Tom Mission: Impossible III 2006 -Cruise, Tom Mission: Impossible II 2000 -Brown, Pete (VII) Iron Man 2 2010 -Brown, Pete (VII) I Love You, Man 2009 -Brown, Pete (VII) Bedtime Stories 2008 -Hassan, Mohammed (I) Constantine 2005 -Hassan, Mohammed (I) The Terminal 2004 -Hassan, Mohammed (I) Spider-Man 2 2004 -Ferrol-Young, Sharon Coming to America 1988 -Ferrol-Young, Sharon George of the Jungle 1997 -Ferrol-Young, Sharon Boogie Nights 1997 -Masterson, Danny The Faculty 1998 -Masterson, Danny Yes Man 2008 -Masterson, Danny Face/Off 1997 -Gabrielle, Christina Bad Teacher 2011 -Gabrielle, Christina Little Fockers 2010 -Gabrielle, Christina Secretariat 2010 -Gabrielle, Christina The Ugly Truth 2009 -Earnshaw, Vincent J. The Game Plan 2007 -Earnshaw, Vincent J. Paul Blart: Mall Cop 2009 -Earnshaw, Vincent J. Underdog 2007 -Earnshaw, Vincent J. 27 Dresses 2008 -DiResta, John How to Lose a Guy in 10 Days 2003 -DiResta, John Miss Congeniality 2000 -DiResta, John Miss Congeniality 2: Armed and Fabulous 2005 -DiResta, John Mickey Blue Eyes 1999 -McGowan, Tom (II) Bean 1997 -McGowan, Tom (II) Bad Santa 2003 -McGowan, Tom (II) The Birdcage 1996 -McGowan, Tom (II) The Family Man 2000 -McGowan, Tom (II) As Good as It Gets 1997 -McGowan, Tom (II) Sleepless in Seattle 1993 -McGowan, Tom (II) After the Sunset 2004 -Durand, Judi M. Fatal Attraction 1987 -Durand, Judi M. The Lion King 1994 -Durand, Judi M. Lilo & Stitch 2002 -Durand, Judi M. The Nightmare Before Christmas 1993 -Durand, Judi M. Final Fantasy: The Spirits Within 2001 -Durand, Judi M. Star Trek III: The Search for Spock 1984 -Mars (I) Shanghai Knights 2003 -Mars (I) Pik lik for 1995 -Mars (I) Rush Hour 2 2001 -Mars (I) Rush Hour 1998 -Spinuzza, Doug Road to Perdition 2002 -Spinuzza, Doug Waterworld 1995 -Spinuzza, Doug The Negotiator 1998 -Spinuzza, Doug Legally Blonde 2001 -Pence, Josh Battleship 2012 -Pence, Josh The Good Shepherd 2006 -Pence, Josh The Social Network 2010 -Philipps, Busy White Chicks 2004 -Philipps, Busy Made of Honor 2008 -Philipps, Busy He's Just Not That Into You 2009 -Baek, Jennie Memoirs of a Geisha 2005 -Baek, Jennie Bruce Almighty 2003 -Baek, Jennie Red Eye 2005 -Forte, Will Cloudy with a Chance of Meatballs 2009 -Forte, Will Baby Mama 2008 -Forte, Will Around the World in 80 Days 2004 -Wu, Paul (I) The Mummy: Tomb of the Dragon Emperor 2008 -Wu, Paul (I) Blade: Trinity 2004 -Wu, Paul (I) This Means War 2012 -Gotzon, Jenn Role Models 2008 -Gotzon, Jenn Hulk 2003 -Gotzon, Jenn Yes Man 2008 -Perabo, Piper Beverly Hills Chihuahua 2008 -Perabo, Piper Cheaper by the Dozen 2 2005 -Perabo, Piper Cheaper by the Dozen 2003 -Perabo, Piper Coyote Ugly 2000 -Perabo, Piper The Prestige 2006 -Hill Arbaugh, Brie Dr. Dolittle 2 2001 -Hill Arbaugh, Brie Daddy Day Care 2003 -Hill Arbaugh, Brie Paul Blart: Mall Cop 2009 -Sherry, Todd Just Go with It 2011 -Sherry, Todd Get Smart 2008 -Sherry, Todd Miss Congeniality 2: Armed and Fabulous 2005 -Ludzik, Ted Hairspray 2007 -Ludzik, Ted Mr. Magorium's Wonder Emporium 2007 -Ludzik, Ted Resident Evil: Apocalypse 2004 -Russell, Grayson Talladega Nights: The Ballad of Ricky Bobby 2006 -Russell, Grayson Diary of a Wimpy Kid: Rodrick Rules 2011 -Russell, Grayson Diary of a Wimpy Kid 2010 -Morgan, Jeffrey Dean P.S. I Love You 2007 -Morgan, Jeffrey Dean Watchmen 2009 -Morgan, Jeffrey Dean Fred Claus 2007 -Shelton, Marley Scream 4 2011 -Shelton, Marley Never Been Kissed 1999 -Shelton, Marley Sin City 2005 -Shelton, Marley Pleasantville 1998 -Crowe, Alice Marie Jerry Maguire 1996 -Crowe, Alice Marie Almost Famous 2000 -Crowe, Alice Marie Vanilla Sky 2001 -Crowe, Alice Marie We Bought a Zoo 2011 -Lees, Nathaniel (I) The Matrix Reloaded 2003 -Lees, Nathaniel (I) The Matrix Revolutions 2003 -Lees, Nathaniel (I) The Lord of the Rings: The Two Towers 2002 -Myrin, Arden In & Out 1997 -Myrin, Arden What Women Want 2000 -Myrin, Arden Christmas with the Kranks 2004 -Myrin, Arden Evan Almighty 2007 -Greenberg, Paul (I) Jimmy Neutron: Boy Genius 2001 -Greenberg, Paul (I) As Good as It Gets 1997 -Greenberg, Paul (I) The Ant Bully 2006 -James, Charity Speed Racer 2008 -James, Charity Space Jam 1996 -James, Charity Anastasia 1997 -Hughes, Frank John (I) Catch Me If You Can 2002 -Hughes, Frank John (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Hughes, Frank John (I) Righteous Kill 2008 -Hughes, Frank John (I) Bad Boys 1995 -Collins, Mo (I) The 40 Year Old Virgin 2005 -Collins, Mo (I) Knocked Up 2007 -Collins, Mo (I) Jingle All the Way 1996 -Garner, Jennifer (I) Catch Me If You Can 2002 -Garner, Jennifer (I) Ghosts of Girlfriends Past 2009 -Garner, Jennifer (I) Dude, Where's My Car? 2000 -Garner, Jennifer (I) Juno 2007 -Garner, Jennifer (I) Pearl Harbor 2001 -Garner, Jennifer (I) Daredevil 2003 -Garner, Jennifer (I) 13 Going on 30 2004 -Forsythe, William (I) Out for Justice 1991 -Forsythe, William (I) Halloween 2007 -Forsythe, William (I) Deuce Bigalow: Male Gigolo 1999 -Forsythe, William (I) Blue Streak 1999 -Forsythe, William (I) The Rock 1996 -Moran, Rob (I) Me, Myself & Irene 2000 -Moran, Rob (I) Dumb & Dumber 1994 -Moran, Rob (I) There's Something About Mary 1998 -Moran, Rob (I) Shallow Hal 2001 -Ross, Matt (I) The Aviator 2004 -Ross, Matt (I) Good Night, and Good Luck. 2005 -Ross, Matt (I) Twelve Monkeys 1995 -Ross, Matt (I) Face/Off 1997 -Williams, Michelle (I) Brokeback Mountain 2005 -Williams, Michelle (I) Shutter Island 2010 -Williams, Michelle (I) Halloween H20: 20 Years Later 1998 -Manson, Ted The Curious Case of Benjamin Button 2008 -Manson, Ted Deja Vu 2006 -Manson, Ted Nights in Rodanthe 2008 -Manson, Ted Runaway Jury 2003 -Manson, Ted Talladega Nights: The Ballad of Ricky Bobby 2006 -Manson, Ted Sweet Home Alabama 2002 -Ganeev, Raoul The Chronicles of Riddick 2004 -Ganeev, Raoul Underworld: Evolution 2006 -Ganeev, Raoul Along Came a Spider 2001 -Flynn, Miriam Evolution 2001 -Flynn, Miriam Vegas Vacation 1997 -Flynn, Miriam The Emperor's New Groove 2000 -Flynn, Miriam Babe 1995 -Knoxville, Johnny Jackass 3D 2010 -Knoxville, Johnny Men in Black II 2002 -Knoxville, Johnny Coyote Ugly 2000 -Knoxville, Johnny The Dukes of Hazzard 2005 -Winfrey, Oprah Bee Movie 2007 -Winfrey, Oprah Charlotte's Web 2006 -Winfrey, Oprah Ocean's Thirteen 2007 -Winfrey, Oprah The Princess and the Frog 2009 -Winfrey, Oprah It's Complicated 2009 -Newbould, Tanya The Family Man 2000 -Newbould, Tanya Red Dragon 2002 -Newbould, Tanya Skyline 2010 -Newbould, Tanya Rush Hour 2 2001 -Newbould, Tanya X-Men: The Last Stand 2006 -Cronin, Sean (I) The Mummy 1999 -Cronin, Sean (I) Notting Hill 1999 -Cronin, Sean (I) Harry Potter and the Chamber of Secrets 2002 -Cronin, Sean (I) The World Is Not Enough 1999 -Cronin, Sean (I) The Mummy Returns 2001 -Cronin, Sean (I) Sleepy Hollow 1999 -Herman, Paul (I) Sleepers 1996 -Herman, Paul (I) Crazy Heart 2009 -Herman, Paul (I) Little Fockers 2010 -Herman, Paul (I) Heat 1995 -Herman, Paul (I) Cop Land 1997 -Herman, Paul (I) Enemy of the State 1998 -Leonidas, Georgina (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Leonidas, Georgina (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Leonidas, Georgina (I) Harry Potter and the Half-Blood Prince 2009 -Driver, Minnie GoldenEye 1995 -Driver, Minnie The Phantom of the Opera 2004 -Driver, Minnie South Park: Bigger Longer & Uncut 1999 -Driver, Minnie Return to Me 2000 -Driver, Minnie Tarzan 1999 -Driver, Minnie Sleepers 1996 -Driver, Minnie Good Will Hunting 1997 -Reid, Tara Urban Legend 1998 -Reid, Tara American Pie 1999 -Reid, Tara American Pie 2 2001 -Reid, Tara Cruel Intentions 1999 -Reid, Tara American Reunion 2012 -Hudson, Brevard American Gangster 2007 -Hudson, Brevard P.S. I Love You 2007 -Hudson, Brevard The Interpreter 2005 -Nemejovský, Jan Hannibal Rising 2007 -Nemejovský, Jan A Knight's Tale 2001 -Nemejovský, Jan Bad Company 2002 -Nemejovský, Jan The Illusionist 2006 -Jackson, Neil (IV) Quantum of Solace 2008 -Jackson, Neil (IV) Alexander 2004 -Jackson, Neil (IV) Push 2009 -Ryan, Meg Top Gun 1986 -Ryan, Meg Hanging Up 2000 -Ryan, Meg Sleepless in Seattle 1993 -Ryan, Meg City of Angels 1998 -Ryan, Meg Anastasia 1997 -Ryan, Meg You've Got Mail 1998 -Ryan, Meg Courage Under Fire 1996 -Hill, Dulé Holes 2003 -Hill, Dulé She's All That 1999 -Hill, Dulé Men of Honor 2000 -Bratt, Benjamin (I) Miss Congeniality 2000 -Bratt, Benjamin (I) Clear and Present Danger 1994 -Bratt, Benjamin (I) Cloudy with a Chance of Meatballs 2009 -Bratt, Benjamin (I) Catwoman 2004 -Bratt, Benjamin (I) Traffic 2000 -Moore, Alex (V) Snow White and the Huntsman 2012 -Moore, Alex (V) Little Nicky 2000 -Moore, Alex (V) The Princess Diaries 2001 -Moore, Demi Indecent Proposal 1993 -Moore, Demi A Few Good Men 1992 -Moore, Demi G.I. Jane 1997 -Moore, Demi About Last Night... 1986 -Moore, Demi The Hunchback of Notre Dame 1996 -Moore, Demi Charlie's Angels: Full Throttle 2003 -Moore, Demi Striptease 1996 -Moore, Demi Ghost 1990 -Moore, Demi Beavis and Butt-Head Do America 1996 -Moore, Demi Disclosure 1994 -Pistor, Ludger X-Men: First Class 2011 -Pistor, Ludger Casino Royale 2006 -Pistor, Ludger Schindler's List 1993 -Pistor, Ludger Inglourious Basterds 2009 -Callahan, Julius Lemony Snicket's A Series of Unfortunate Events 2004 -Callahan, Julius Ratatouille 2007 -Callahan, Julius Coach Carter 2005 -Callahan, Julius Mr. & Mrs. Smith 2005 -Callahan, Julius The Princess Diaries 2: Royal Engagement 2004 -Reid, Kevin (I) Any Given Sunday 1999 -Reid, Kevin (I) Varsity Blues 1999 -Reid, Kevin (I) The Waterboy 1998 -Reid, Kevin (I) The Replacements 2000 -Fonteno, David The Interpreter 2005 -Fonteno, David Eraser 1996 -Fonteno, David The Dictator 2012 -Loughran, Jonathan (I) The Master of Disguise 2002 -Loughran, Jonathan (I) Anger Management 2003 -Loughran, Jonathan (I) Little Nicky 2000 -Loughran, Jonathan (I) Big Daddy 1999 -Loughran, Jonathan (I) The Waterboy 1998 -Loughran, Jonathan (I) Kill Bill: Vol. 1 2003 -Loughran, Jonathan (I) Bedtime Stories 2008 -Loughran, Jonathan (I) I Now Pronounce You Chuck & Larry 2007 -Loughran, Jonathan (I) Jack and Jill 2011 -Loughran, Jonathan (I) Get Smart 2008 -Loughran, Jonathan (I) 50 First Dates 2004 -Loughran, Jonathan (I) Just Go with It 2011 -Loughran, Jonathan (I) Grown Ups 2010 -Sisto, Rocco (I) Frequency 2000 -Sisto, Rocco (I) Donnie Brasco 1997 -Sisto, Rocco (I) Eraser 1996 -Peterson, Ernest Remember the Titans 2000 -Peterson, Ernest Road Trip 2000 -Peterson, Ernest Sweet Home Alabama 2002 -Armendáriz Jr., Pedro Amistad 1997 -Armendáriz Jr., Pedro The Legend of Zorro 2005 -Armendáriz Jr., Pedro The Mask of Zorro 1998 -Armendáriz Jr., Pedro Océans 2009 -Armendáriz Jr., Pedro Licence to Kill 1989 -Armendáriz Jr., Pedro The Mexican 2001 -Asner, Edward Elf 2003 -Asner, Edward Up 2009 -Asner, Edward JFK 1991 -Asner, Edward The Animal 2001 -Altman, Bruce It's Complicated 2009 -Altman, Bruce Changing Lanes 2002 -Altman, Bruce Bride Wars 2009 -Altman, Bruce Matchstick Men 2003 -Altman, Bruce Cop Land 1997 -Mara, Rooney The Social Network 2010 -Mara, Rooney The Girl with the Dragon Tattoo 2011 -Mara, Rooney A Nightmare on Elm Street 2010 -Baker, Cynthia (I) Risky Business 1983 -Baker, Cynthia (I) U.S. Marshals 1998 -Baker, Cynthia (I) The Fugitive 1993 -Papazian, Martin The Amazing Spider-Man 2012 -Papazian, Martin The Island 2005 -Papazian, Martin Jarhead 2005 -Jaime San Andres Glory Road 2006 -Jaime San Andres Big Momma's House 2 2006 -Jaime San Andres The Dukes of Hazzard 2005 -Kost, Tony (II) The Other Guys 2010 -Kost, Tony (II) The Adjustment Bureau 2011 -Kost, Tony (II) Wall Street: Money Never Sleeps 2010 -Kost, Tony (II) Men in Black 3 2012 -Manley, Jennifer (I) Catch Me If You Can 2002 -Manley, Jennifer (I) Galaxy Quest 1999 -Manley, Jennifer (I) Wag the Dog 1997 -Manley, Jennifer (I) Clockstoppers 2002 -Couturier, Sandra-Jessica Paycheck 2003 -Couturier, Sandra-Jessica Scooby Doo 2: Monsters Unleashed 2004 -Couturier, Sandra-Jessica Fantastic Four 2005 -Hradsky, Louise Sucker Punch 2011 -Hradsky, Louise Mirror Mirror 2012 -Hradsky, Louise This Means War 2012 -Wright, Bonnie Harry Potter and the Prisoner of Azkaban 2004 -Wright, Bonnie Harry Potter and the Goblet of Fire 2005 -Wright, Bonnie Harry Potter and the Sorcerer's Stone 2001 -Wright, Bonnie Harry Potter and the Chamber of Secrets 2002 -Wright, Bonnie Harry Potter and the Deathly Hallows: Part 1 2010 -Wright, Bonnie Harry Potter and the Deathly Hallows: Part 2 2011 -Wright, Bonnie Harry Potter and the Order of the Phoenix 2007 -Wright, Bonnie Harry Potter and the Half-Blood Prince 2009 -Mann, Danny (I) Horton Hears a Who! 2008 -Mann, Danny (I) Pocahontas 1995 -Mann, Danny (I) Toy Story 3 2010 -Mann, Danny (I) Up 2009 -Mann, Danny (I) Cloudy with a Chance of Meatballs 2009 -Mann, Danny (I) Cats & Dogs 2001 -Mann, Danny (I) Monsters, Inc. 2001 -Mann, Danny (I) The Wild 2006 -Mann, Danny (I) Happy Feet 2006 -Mann, Danny (I) The Lorax 2012 -Mann, Danny (I) Cars 2006 -Mann, Danny (I) Babe 1995 -Mann, Danny (I) The Golden Compass 2007 -Mann, Danny (I) The Emperor's New Groove 2000 -Mann, Danny (I) Ice Age: The Meltdown 2006 -Mann, Danny (I) Gake no ue no Ponyo 2008 -Mann, Danny (I) Happy Feet Two 2011 -Mann, Danny (I) Spider-Man 3 2007 -Mann, Danny (I) Open Season 2006 -Mann, Danny (I) Surf's Up 2007 -Mann, Danny (I) Babe: Pig in the City 1998 -Alonzo, Robert Collateral Damage 2002 -Alonzo, Robert Terminator 3: Rise of the Machines 2003 -Alonzo, Robert Mission: Impossible III 2006 -Milian, Tomas Amistad 1997 -Milian, Tomas Traffic 2000 -Milian, Tomas JFK 1991 -Douglas, David (II) Never Been Kissed 1999 -Douglas, David (II) The Fast and the Furious 2001 -Douglas, David (II) Terminator Salvation 2009 -Perlich, Max House on Haunted Hill 1999 -Perlich, Max Ferris Bueller's Day Off 1986 -Perlich, Max Cliffhanger 1993 -Perlich, Max Blow 2001 -Hardin, Melora The Hot Chick 2002 -Hardin, Melora Hannah Montana: The Movie 2009 -Hardin, Melora 17 Again 2009 -Hardin, Melora Absolute Power 1997 -Hardin, Melora 27 Dresses 2008 -Hardin, Melora Thank You for Smoking 2005 -Zak, Mark Speed Racer 2008 -Zak, Mark The Tourist 2010 -Zak, Mark Enemy at the Gates 2001 -Hristov, Hristo (IV) The Good Shepherd 2006 -Hristov, Hristo (IV) Enchanted 2007 -Hristov, Hristo (IV) American Gangster 2007 -Hristov, Hristo (IV) Salt 2010 -Levy, Michael James Salt 2010 -Levy, Michael James Step Up 2: The Streets 2008 -Levy, Michael James The Social Network 2010 -Tordi, Gian Franco Monster-in-Law 2005 -Tordi, Gian Franco Yours, Mine and Ours 2005 -Tordi, Gian Franco Date Movie 2006 -Tordi, Gian Franco Ocean's Twelve 2004 -Tordi, Gian Franco Fun with Dick and Jane 2005 -Grace, April Artificial Intelligence: AI 2001 -Grace, April Magnolia 1999 -Grace, April I Am Legend 2007 -Grace, April Finding Forrester 2000 -Grace, April Bean 1997 -Grace, April Constantine 2005 -Sciutto, Nellie The Aviator 2004 -Sciutto, Nellie Shutter Island 2010 -Sciutto, Nellie The Departed 2006 -Molale, Brandon The Rundown 2003 -Molale, Brandon The Longest Yard 2005 -Molale, Brandon Dodgeball: A True Underdog Story 2004 -Molale, Brandon The Master of Disguise 2002 -Molale, Brandon Mr. Deeds 2002 -Molale, Brandon The Flintstones in Viva Rock Vegas 2000 -Molale, Brandon Mission: Impossible III 2006 -Molale, Brandon Collateral 2004 -Cordeiro, Rick The Incredible Hulk 2008 -Cordeiro, Rick Cinderella Man 2005 -Cordeiro, Rick Fever Pitch 2005 -Skrabanek, William Victor Mars Attacks! 1996 -Skrabanek, William Victor Batman & Robin 1997 -Skrabanek, William Victor Air Force One 1997 -Skrabanek, William Victor Wild Wild West 1999 -Kiernan, Pat The Interpreter 2005 -Kiernan, Pat Night at the Museum 2006 -Kiernan, Pat The Avengers 2012 -McConnell, John (I) Deja Vu 2006 -McConnell, John (I) Interview with the Vampire: The Vampire Chronicles 1994 -McConnell, John (I) The Ladykillers 2004 -McConnell, John (I) Because of Winn-Dixie 2005 -McConnell, John (I) O Brother, Where Art Thou? 2000 -McConnell, John (I) The Departed 2006 -McConnell, John (I) Glory Road 2006 -Stratford, Tom Sex and the City 2008 -Stratford, Tom Julie & Julia 2009 -Stratford, Tom What Happens in Vegas 2008 -Stratford, Tom Sex and the City 2 2010 -Stratford, Tom Confessions of a Shopaholic 2009 -Cameron, Mike (I) True Lies 1994 -Cameron, Mike (I) Eraser 1996 -Cameron, Mike (I) Ghosts of the Abyss 2003 -Conti, Alexander Cheaper by the Dozen 2 2005 -Conti, Alexander Finding Forrester 2000 -Conti, Alexander The Pacifier 2005 -Jackson, Brandon T. Ali 2001 -Jackson, Brandon T. Big Mommas: Like Father, Like Son 2011 -Jackson, Brandon T. Bowling for Columbine 2002 -Jackson, Brandon T. Percy Jackson & the Olympians: The Lightning Thief 2010 -Jackson, Brandon T. Tropic Thunder 2008 -Jackson, Brandon T. The Day the Earth Stood Still 2008 -Jackson, Brandon T. 8 Mile 2002 -Jackson, Brandon T. Fast & Furious 2009 -Hitler, Adolf The Good Shepherd 2006 -Hitler, Adolf Bowling for Columbine 2002 -Hitler, Adolf The King's Speech 2010 -Hitler, Adolf Sideways 2004 -Hitler, Adolf Pearl Harbor 2001 -Hitler, Adolf Contact 1997 -Waltz, Christoph The Green Hornet 2011 -Waltz, Christoph Water for Elephants 2011 -Waltz, Christoph Inglourious Basterds 2009 -Stea, Kevin Alexander The Birdcage 1996 -Stea, Kevin Alexander Charlie's Angels 2000 -Stea, Kevin Alexander 13 Going on 30 2004 -Stea, Kevin Alexander Starsky & Hutch 2004 -Stea, Kevin Alexander Austin Powers in Goldmember 2002 -Place, Mary Kay Being John Malkovich 1999 -Place, Mary Kay Terms of Endearment 1983 -Place, Mary Kay Julie & Julia 2009 -Place, Mary Kay The Rainmaker 1997 -Place, Mary Kay Shrek Forever After 2010 -Place, Mary Kay Sweet Home Alabama 2002 -Place, Mary Kay It's Complicated 2009 -Westmoreland, Stoney Godzilla 1998 -Westmoreland, Stoney World Trade Center 2006 -Westmoreland, Stoney Matchstick Men 2003 -Efron, Zac The Lucky One 2012 -Efron, Zac Hairspray 2007 -Efron, Zac New Year's Eve 2011 -Efron, Zac 17 Again 2009 -Efron, Zac High School Musical 3: Senior Year 2008 -Efron, Zac The Lorax 2012 -Lively, Blake The Sisterhood of the Traveling Pants 2005 -Lively, Blake Green Lantern 2011 -Lively, Blake The Sisterhood of the Traveling Pants 2 2008 -Lively, Blake The Town 2010 -Siragusa, Peter Men in Black II 2002 -Siragusa, Peter Home Alone 1990 -Siragusa, Peter Dinosaur 2000 -Siragusa, Peter Home on the Range 2004 -Siragusa, Peter Cloudy with a Chance of Meatballs 2009 -Martin, Dan (II) Nothing to Lose 1997 -Martin, Dan (II) Heat 1995 -Martin, Dan (II) Rush Hour 1998 -Paige, Jerrod Failure to Launch 2006 -Paige, Jerrod Deja Vu 2006 -Paige, Jerrod American Gangster 2007 -Sacks, Paul (I) Saving Private Ryan 1998 -Sacks, Paul (I) GoldenEye 1995 -Sacks, Paul (I) The Da Vinci Code 2006 -Sacks, Paul (I) The Mummy Returns 2001 -Sacks, Paul (I) Gladiator 2000 -Sacks, Paul (I) The World Is Not Enough 1999 -LeGault, Lance Mortal Kombat: Annihilation 1997 -LeGault, Lance Stripes 1981 -LeGault, Lance Home on the Range 2004 -Kravitz, Steven Sudden Impact 1983 -Kravitz, Steven The Animal 2001 -Kravitz, Steven The Hot Chick 2002 -Morts, Billy Face/Off 1997 -Morts, Billy Windtalkers 2002 -Morts, Billy Mission: Impossible II 2000 -Morts, Billy Minority Report 2002 -Grossman, Ted (I) E.T.: The Extra-Terrestrial 1982 -Grossman, Ted (I) Indiana Jones and the Last Crusade 1989 -Grossman, Ted (I) Jaws 1975 -Grossman, Ted (I) Million Dollar Baby 2004 -Grossman, Ted (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Grossman, Ted (I) The Goonies 1985 -Trapp, Valarie Casino Royale 2006 -Trapp, Valarie Stigmata 1999 -Trapp, Valarie The Legend of Zorro 2005 -Konner, RJ College Road Trip 2008 -Konner, RJ Sex and the City 2008 -Konner, RJ What Happens in Vegas 2008 -Konner, RJ Baby Mama 2008 -Konner, RJ Burn After Reading 2008 -Konner, RJ The Adjustment Bureau 2011 -Shelley, Carole Hercules 1997 -Shelley, Carole Bewitched 2005 -Shelley, Carole Jungle 2 Jungle 1997 -Baumel, Shane Curious George 2006 -Baumel, Shane Wild Hogs 2007 -Baumel, Shane The Ant Bully 2006 -Baumel, Shane Cloudy with a Chance of Meatballs 2009 -Baumel, Shane Yogi Bear 2010 -Baumel, Shane Daddy Day Care 2003 -Baumel, Shane Happy Feet 2006 -Baumel, Shane Ice Age: The Meltdown 2006 -Baumel, Shane Over the Hedge 2006 -Benzon, Jarl The Lord of the Rings: The Fellowship of the Ring 2001 -Benzon, Jarl King Kong 2005 -Benzon, Jarl The Lord of the Rings: The Two Towers 2002 -Miller, Dennis (I) Thank You for Smoking 2005 -Miller, Dennis (I) The Net 1995 -Miller, Dennis (I) What Happens in Vegas 2008 -Miller, Dennis (I) Disclosure 1994 -Henriques, Darryl Down and Out in Beverly Hills 1986 -Henriques, Darryl Jumanji 1995 -Henriques, Darryl Beverly Hills Cop II 1987 -Walker, Matthew (III) New Year's Eve 2011 -Walker, Matthew (III) Raising Helen 2004 -Walker, Matthew (III) The Princess Diaries 2: Royal Engagement 2004 -Azzara, Candice Catch Me If You Can 2002 -Azzara, Candice In Her Shoes 2005 -Azzara, Candice Ocean's Twelve 2004 -Stedman, Anne 50 First Dates 2004 -Stedman, Anne Space Cowboys 2000 -Stedman, Anne Dr. Dolittle 2 2001 -Arquette, Alexis Pulp Fiction 1994 -Arquette, Alexis She's All That 1999 -Arquette, Alexis The Wedding Singer 1998 -Raimi, Ted Clear and Present Danger 1994 -Raimi, Ted The Grudge 2004 -Raimi, Ted Spider-Man 2 2004 -Raimi, Ted Spider-Man 2002 -Raimi, Ted Drag Me to Hell 2009 -Raimi, Ted Spider-Man 3 2007 -Patel, Dev (I) Slumdog Millionaire 2008 -Patel, Dev (I) The Best Exotic Marigold Hotel 2011 -Patel, Dev (I) The Last Airbender 2010 -Schlatter, Charlie Spider-Man 3 2007 -Schlatter, Charlie Kung Fu Panda 2008 -Schlatter, Charlie Over the Hedge 2006 -Reddy, Brian Dante's Peak 1997 -Reddy, Brian The Birdcage 1996 -Reddy, Brian Outbreak 1995 -Reddy, Brian O Brother, Where Art Thou? 2000 -McKellen, Ian X-Men 2000 -McKellen, Ian Last Action Hero 1993 -McKellen, Ian The Lord of the Rings: The Fellowship of the Ring 2001 -McKellen, Ian The Lord of the Rings: The Return of the King 2003 -McKellen, Ian Stardust 2007 -McKellen, Ian The Da Vinci Code 2006 -McKellen, Ian Cirque du Soleil: Journey of Man 2000 -McKellen, Ian X2 2003 -McKellen, Ian The Golden Compass 2007 -McKellen, Ian X-Men: The Last Stand 2006 -McKellen, Ian Flushed Away 2006 -McKellen, Ian The Lord of the Rings: The Two Towers 2002 -Saiet, Eric Ferris Bueller's Day Off 1986 -Saiet, Eric Groundhog Day 1993 -Saiet, Eric Godzilla 1998 -Columbus, Eleanor Stepmom 1998 -Columbus, Eleanor Harry Potter and the Sorcerer's Stone 2001 -Columbus, Eleanor Harry Potter and the Chamber of Secrets 2002 -Columbus, Eleanor Home Alone 2: Lost in New York 1992 -Clark, Adam (I) Matchstick Men 2003 -Clark, Adam (I) Coach Carter 2005 -Clark, Adam (I) Traffic 2000 -Clark, Adam (I) Public Enemies 2009 -Clark, Adam (I) The Ugly Truth 2009 -Maguire, Tobey Pleasantville 1998 -Maguire, Tobey The Cider House Rules 1999 -Maguire, Tobey Cats & Dogs 2001 -Maguire, Tobey Spider-Man 3 2007 -Maguire, Tobey Spider-Man 2002 -Maguire, Tobey Spider-Man 2 2004 -Maguire, Tobey Tropic Thunder 2008 -Maguire, Tobey Seabiscuit 2003 -Maguire, Tobey Wonder Boys 2000 -Weston, Celia The Village 2004 -Weston, Celia Knight and Day 2010 -Weston, Celia Hanging Up 2000 -Weston, Celia The Talented Mr. Ripley 1999 -Weston, Celia In the Bedroom 2001 -Weston, Celia Hulk 2003 -Weston, Celia K-PAX 2001 -Weston, Celia Runaway Jury 2003 -Weston, Celia No Reservations 2007 -Weston, Celia How to Lose a Guy in 10 Days 2003 -Bugeja, Gail Confessions of a Shopaholic 2009 -Bugeja, Gail Righteous Kill 2008 -Bugeja, Gail College Road Trip 2008 -Hamm, Jon (I) We Were Soldiers 2002 -Hamm, Jon (I) Bridesmaids 2011 -Hamm, Jon (I) Space Cowboys 2000 -Hamm, Jon (I) Shrek Forever After 2010 -Hamm, Jon (I) Sucker Punch 2011 -Hamm, Jon (I) The Town 2010 -Hamm, Jon (I) The A-Team 2010 -Hamm, Jon (I) The Day the Earth Stood Still 2008 -O'Malley, Mike (I) 28 Days 2000 -O'Malley, Mike (I) Eat Pray Love 2010 -O'Malley, Mike (I) Deep Impact 1998 -St. Esprit, Patrick We Were Soldiers 2002 -St. Esprit, Patrick United 93 2006 -St. Esprit, Patrick Must Love Dogs 2005 -St. Esprit, Patrick Super 8 2011 -Parikh, Devika Ice Age: Dawn of the Dinosaurs 2009 -Parikh, Devika The Jungle Book 2 2003 -Parikh, Devika S.W.A.T. 2003 -Parikh, Devika Madagascar 2005 -Cajzl, Pavel Hellboy 2004 -Cajzl, Pavel The Omen 2006 -Cajzl, Pavel Mission: Impossible - Ghost Protocol 2011 -Cajzl, Pavel Blade II 2002 -Pantoliano, Joe Bad Boys II 2003 -Pantoliano, Joe U.S. Marshals 1998 -Pantoliano, Joe Risky Business 1983 -Pantoliano, Joe Bad Boys 1995 -Pantoliano, Joe Racing Stripes 2005 -Pantoliano, Joe Cats & Dogs 2001 -Pantoliano, Joe Forces of Nature 1999 -Pantoliano, Joe Congo 1995 -Pantoliano, Joe Memento 2000 -Pantoliano, Joe Running Scared 1986 -Pantoliano, Joe The Fugitive 1993 -Pantoliano, Joe The Goonies 1985 -Pantoliano, Joe The Matrix 1999 -Pantoliano, Joe Percy Jackson & the Olympians: The Lightning Thief 2010 -Pantoliano, Joe Cats & Dogs: The Revenge of Kitty Galore 2010 -Pantoliano, Joe Daredevil 2003 -Stiles, Julia The Omen 2006 -Stiles, Julia The Devil's Own 1997 -Stiles, Julia The Bourne Supremacy 2004 -Stiles, Julia 10 Things I Hate About You 1999 -Stiles, Julia Mona Lisa Smile 2003 -Stiles, Julia The Bourne Ultimatum 2007 -Stiles, Julia The Bourne Identity 2002 -Stiles, Julia Save the Last Dance 2001 -Santoro, Rodrigo Rio 2011 -Santoro, Rodrigo 300 2006 -Santoro, Rodrigo Charlie's Angels: Full Throttle 2003 -Santoro, Rodrigo Love Actually 2003 -Shepard, Dax Knocked Up 2007 -Shepard, Dax Without a Paddle 2004 -Shepard, Dax Zathura: A Space Adventure 2005 -Shepard, Dax Cheaper by the Dozen 2003 -Shepard, Dax Baby Mama 2008 -Ram, Tulsi The Bourne Supremacy 2004 -Ram, Tulsi The Bourne Ultimatum 2007 -Ram, Tulsi Jarhead 2005 -Ram, Tulsi The Terminal 2004 -Amedori, John Patrick Almost Famous 2000 -Amedori, John Patrick The Butterfly Effect 2004 -Amedori, John Patrick Unbreakable 2000 -Boone Junior, Mark 2 Fast 2 Furious 2003 -Boone Junior, Mark Batman Begins 2005 -Boone Junior, Mark Se7en 1995 -Boone Junior, Mark I Still Know What You Did Last Summer 1998 -Boone Junior, Mark The Game 1997 -Boone Junior, Mark Armageddon 1998 -Boone Junior, Mark The Thin Red Line 1998 -Boone Junior, Mark Die Hard 2 1990 -Boone Junior, Mark The General's Daughter 1999 -Boone Junior, Mark Memento 2000 -Bauer, Chris (I) Face/Off 1997 -Bauer, Chris (I) High Fidelity 2000 -Bauer, Chris (I) The Devil's Advocate 1997 -Rodger, Struan Chariots of Fire 1981 -Rodger, Struan Four Weddings and a Funeral 1994 -Rodger, Struan Stardust 2007 -Grey, Zena Snow Day 2000 -Grey, Zena The Bone Collector 1999 -Grey, Zena The Shaggy Dog 2006 -Russell, Kurt (I) Forrest Gump 1994 -Russell, Kurt (I) Poseidon 2006 -Russell, Kurt (I) Miracle 2004 -Russell, Kurt (I) Vanilla Sky 2001 -Russell, Kurt (I) Stargate 1994 -Russell, Kurt (I) Sky High 2005 -Warner, Cindy (I) Four Christmases 2008 -Warner, Cindy (I) Just Like Heaven 2005 -Warner, Cindy (I) The Pursuit of Happyness 2006 -Mora, Steve (I) Starship Troopers 1997 -Mora, Steve (I) City of Angels 1998 -Mora, Steve (I) Volcano 1997 -Winstone, Ray (I) Snow White and the Huntsman 2012 -Winstone, Ray (I) Percy Jackson & the Olympians: The Lightning Thief 2010 -Winstone, Ray (I) The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Winstone, Ray (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Winstone, Ray (I) Beowulf 2007 -Winstone, Ray (I) Cold Mountain 2003 -Winstone, Ray (I) The Departed 2006 -Winstone, Ray (I) Rango 2011 -Winstone, Ray (I) King Arthur 2004 -Cassel, Vincent Elizabeth 1998 -Cassel, Vincent Black Swan 2010 -Cassel, Vincent Ocean's Twelve 2004 -Cassel, Vincent Shrek 2001 -Cassel, Vincent Ocean's Thirteen 2007 -MacNicol, Peter Battleship 2012 -MacNicol, Peter Baby Geniuses 1999 -MacNicol, Peter Recess: School's Out 2001 -MacNicol, Peter Bean 1997 -Aretos, Guillaume Shrek 2 2004 -Aretos, Guillaume Shrek 2001 -Aretos, Guillaume Shrek the Third 2007 -Huffman, Ray Charlie's Angels 2000 -Huffman, Ray Mr. Deeds 2002 -Huffman, Ray Twelve Monkeys 1995 -Huffman, Ray The Flintstones in Viva Rock Vegas 2000 -Sexton, Brent Flightplan 2005 -Sexton, Brent Artificial Intelligence: AI 2001 -Sexton, Brent Radio 2003 -Sexton, Brent Double Take 2001 -Sexton, Brent Vanilla Sky 2001 -Taylor, William S. Scary Movie 3 2003 -Taylor, William S. Watchmen 2009 -Taylor, William S. Romeo Must Die 2000 -Mitchell, Donna (I) Mona Lisa Smile 2003 -Mitchell, Donna (I) Syriana 2005 -Mitchell, Donna (I) The Exorcist 1973 -Favino, Pierfrancesco Angels & Demons 2009 -Favino, Pierfrancesco Night at the Museum 2006 -Favino, Pierfrancesco The Chronicles of Narnia: Prince Caspian 2008 -Coleman, Jim R. (I) American Gangster 2007 -Coleman, Jim R. (I) Monster 2003 -Coleman, Jim R. (I) Transporter 2 2005 -Steele, Brian (I) Terminator Salvation 2009 -Steele, Brian (I) Underworld: Evolution 2006 -Steele, Brian (I) Lady in the Water 2006 -Steele, Brian (I) Men in Black II 2002 -Steele, Brian (I) Resident Evil: Extinction 2007 -Steele, Brian (I) Underworld: Rise of the Lycans 2009 -Steele, Brian (I) Blade: Trinity 2004 -Steele, Brian (I) Underworld 2003 -Steele, Brian (I) Hellboy 2004 -Steele, Brian (I) The Relic 1997 -Steele, Brian (I) Predators 2010 -Steele, Brian (I) Hellboy II: The Golden Army 2008 -Neufville, Scott Knight and Day 2010 -Neufville, Scott Ghosts of Girlfriends Past 2009 -Neufville, Scott Paul Blart: Mall Cop 2009 -Gunton, Bob The Lincoln Lawyer 2011 -Gunton, Bob Patch Adams 1998 -Gunton, Bob Ace Ventura: When Nature Calls 1995 -Gunton, Bob JFK 1991 -Gunton, Bob The Perfect Storm 2000 -Riesle, Dieter The Good Shepherd 2006 -Riesle, Dieter Wall Street: Money Never Sleeps 2010 -Riesle, Dieter The Avengers 2012 -Meaney, Nick Gone in Sixty Seconds 2000 -Meaney, Nick Titanic 1997 -Meaney, Nick Lemony Snicket's A Series of Unfortunate Events 2004 -Goodman, John (I) Evan Almighty 2007 -Goodman, John (I) The Flintstones 1994 -Goodman, John (I) The Emperor's New Groove 2000 -Goodman, John (I) The Jungle Book 2 2003 -Goodman, John (I) Confessions of a Shopaholic 2009 -Goodman, John (I) The Artist 2011 -Goodman, John (I) O Brother, Where Art Thou? 2000 -Goodman, John (I) Cars 2006 -Goodman, John (I) Bee Movie 2007 -Goodman, John (I) Happy Feet Two 2011 -Goodman, John (I) The Princess and the Frog 2009 -Goodman, John (I) Speed Racer 2008 -Goodman, John (I) Coyote Ugly 2000 -Goodman, John (I) Monsters, Inc. 2001 -Mendes, Eva Knocked Up 2007 -Mendes, Eva 2 Fast 2 Furious 2003 -Mendes, Eva Exit Wounds 2001 -Mendes, Eva Training Day 2001 -Mendes, Eva Ghost Rider 2007 -Mendes, Eva The Other Guys 2010 -Mendes, Eva Fast Five 2011 -McInnerny, Tim Johnny English Reborn 2011 -McInnerny, Tim 102 Dalmatians 2000 -McInnerny, Tim Notting Hill 1999 -McInnerny, Tim 101 Dalmatians 1996 -Harlow, Shalom How to Lose a Guy in 10 Days 2003 -Harlow, Shalom In & Out 1997 -Harlow, Shalom Vanilla Sky 2001 -Parrish, Hunter 17 Again 2009 -Parrish, Hunter RV 2006 -Parrish, Hunter It's Complicated 2009 -Ward, Zack Almost Famous 2000 -Ward, Zack Resident Evil: Apocalypse 2004 -Ward, Zack Transformers 2007 -Ward, Zack Freddy vs. Jason 2003 -Grice, Lara The Final Destination 2009 -Grice, Lara Deja Vu 2006 -Grice, Lara Runaway Jury 2003 -Grice, Lara Because of Winn-Dixie 2005 -Grice, Lara The Dukes of Hazzard 2005 -Jordan, Michael (I) Michael Jordan to the Max 2000 -Jordan, Michael (I) Malcolm X 1992 -Jordan, Michael (I) Space Jam 1996 -Winde, Beatrice Malcolm X 1992 -Winde, Beatrice The Hurricane 1999 -Winde, Beatrice Mickey Blue Eyes 1999 -Bannos, Steve Superbad 2007 -Bannos, Steve Bridesmaids 2011 -Bannos, Steve The 40 Year Old Virgin 2005 -Bannos, Steve Funny People 2009 -Bannos, Steve Pineapple Express 2008 -Cumberbatch, Benedict War Horse 2011 -Cumberbatch, Benedict Atonement 2007 -Cumberbatch, Benedict Tinker Tailor Soldier Spy 2011 -Heder, Jon Just Like Heaven 2005 -Heder, Jon Blades of Glory 2007 -Heder, Jon Napoleon Dynamite 2004 -Heder, Jon Surf's Up 2007 -Heder, Jon Monster House 2006 -Harrold, Jamie Hannibal 2001 -Harrold, Jamie Autumn in New York 2000 -Harrold, Jamie The Sum of All Fears 2002 -Harrold, Jamie Erin Brockovich 2000 -Harrold, Jamie The Score 2001 -Ann-Margret Any Given Sunday 1999 -Ann-Margret The Break-Up 2006 -Ann-Margret The Santa Clause 3: The Escape Clause 2006 -Lung, Tong Shanghai Noon 2000 -Lung, Tong Romeo Must Die 2000 -Lung, Tong Spy Game 2001 -Roisman, Harper The Cable Guy 1996 -Roisman, Harper City of Angels 1998 -Roisman, Harper Mousehunt 1997 -Skerritt, Tom Top Gun 1986 -Skerritt, Tom Tears of the Sun 2003 -Skerritt, Tom Alien 1979 -Skerritt, Tom Contact 1997 -Clark, Spencer Treat Double Jeopardy 1999 -Clark, Spencer Treat Mystic River 2003 -Clark, Spencer Treat Unbreakable 2000 -Clark, Spencer Treat Gladiator 2000 -Smith, Daniel Browning You Don't Mess with the Zohan 2008 -Smith, Daniel Browning Minority Report 2002 -Smith, Daniel Browning Men in Black II 2002 -Duke, Bill (I) Exit Wounds 2001 -Duke, Bill (I) Predator 1987 -Duke, Bill (I) Red Dragon 2002 -Duke, Bill (I) X-Men: The Last Stand 2006 -Harmon, Linda (II) 102 Dalmatians 2000 -Harmon, Linda (II) Dinosaur 2000 -Harmon, Linda (II) The Little Mermaid 1989 -Harmon, Linda (II) How the Grinch Stole Christmas 2000 -Harmon, Linda (II) Tarzan 1999 -Schwimmer, David (I) John Carter 2012 -Schwimmer, David (I) Madagascar 2005 -Schwimmer, David (I) Madagascar 3: Europe's Most Wanted 2012 -Schwimmer, David (I) Madagascar: Escape 2 Africa 2008 -Schwimmer, David (I) Six Days Seven Nights 1998 -Harris, Naomie After the Sunset 2004 -Harris, Naomie Pirates of the Caribbean: Dead Man's Chest 2006 -Harris, Naomie Pirates of the Caribbean: At World's End 2007 -Harris, Naomie Miami Vice 2006 -Harris, Naomie 28 Days Later... 2002 -Mitchell, E. Roger Contagion 2011 -Mitchell, E. Roger S.W.A.T. 2003 -Mitchell, E. Roger Battle Los Angeles 2011 -Sonnenfeld, Barry RV 2006 -Sonnenfeld, Barry Men in Black 1997 -Sonnenfeld, Barry Men in Black II 2002 -Sonnenfeld, Barry Men in Black 3 2012 -Saglimbeni, Michael Star Trek 2009 -Saglimbeni, Michael Million Dollar Baby 2004 -Saglimbeni, Michael Transformers: Dark of the Moon 2011 -Saglimbeni, Michael Changeling 2008 -Kassir, John Pocahontas 1995 -Kassir, John The Princess and the Frog 2009 -Kassir, John Spider-Man 3 2007 -Kassir, John The Wild Thornberrys Movie 2002 -Kassir, John Race to Witch Mountain 2009 -Kassir, John Madagascar 2005 -Kassir, John The Smurfs 2011 -Kassir, John Casper 1995 -Kassir, John The Wild 2006 -Taracena, Gerardo The Mexican 2001 -Taracena, Gerardo Apocalypto 2006 -Taracena, Gerardo Man on Fire 2004 -Bullock, Sandra Speed 1994 -Bullock, Sandra The Blind Side 2009 -Bullock, Sandra Hope Floats 1998 -Bullock, Sandra Divine Secrets of the Ya-Ya Sisterhood 2002 -Bullock, Sandra The Net 1995 -Bullock, Sandra 28 Days 2000 -Bullock, Sandra Practical Magic 1998 -Bullock, Sandra Miss Congeniality 2000 -Bullock, Sandra The Lake House 2006 -Bullock, Sandra The Prince of Egypt 1998 -Bullock, Sandra A Time to Kill 1996 -Bullock, Sandra Forces of Nature 1999 -Bullock, Sandra Two Weeks Notice 2002 -Bullock, Sandra Speed 2: Cruise Control 1997 -Bullock, Sandra Miss Congeniality 2: Armed and Fabulous 2005 -Best, Owen TRON: Legacy 2010 -Best, Owen Diary of a Wimpy Kid 2010 -Best, Owen Diary of a Wimpy Kid: Rodrick Rules 2011 -Grunberg, Brad I Now Pronounce You Chuck & Larry 2007 -Grunberg, Brad Funny People 2009 -Grunberg, Brad Spider-Man 2002 -Grunberg, Brad Miss Congeniality 2: Armed and Fabulous 2005 -Grunberg, Brad Austin Powers in Goldmember 2002 -Grunberg, Brad Striptease 1996 -Grunberg, Brad Get Smart 2008 -Grunberg, Brad Eagle Eye 2008 -Gordon, Kiowa New Moon 2009 -Gordon, Kiowa The Twilight Saga: Eclipse 2010 -Gordon, Kiowa The Twilight Saga: Breaking Dawn - Part 1 2011 -Baker, Dee Bradley The SpongeBob SquarePants Movie 2004 -Baker, Dee Bradley The Da Vinci Code 2006 -Baker, Dee Bradley Shark Tale 2004 -Baker, Dee Bradley TMNT 2007 -Baker, Dee Bradley Madagascar 2005 -Baker, Dee Bradley G-Force 2009 -Baker, Dee Bradley Scooby Doo 2: Monsters Unleashed 2004 -Baker, Dee Bradley Happy Feet 2006 -Baker, Dee Bradley Robots 2005 -Baker, Dee Bradley The Haunted Mansion 2003 -Baker, Dee Bradley Space Jam 1996 -Baker, Dee Bradley The Mummy Returns 2001 -Baker, Dee Bradley The Last Airbender 2010 -Baker, Dee Bradley Jimmy Neutron: Boy Genius 2001 -Rhymes, Busta Finding Forrester 2000 -Rhymes, Busta The Rugrats Movie 1998 -Rhymes, Busta Shaft 2000 -McCain, Frances Lee Patch Adams 1998 -McCain, Frances Lee Footloose 1984 -McCain, Frances Lee Stand by Me 1986 -McCain, Frances Lee Scream 1996 -McCain, Frances Lee Back to the Future 1985 -Ranft, Jerome Toy Story 3 2010 -Ranft, Jerome Up 2009 -Ranft, Jerome Coraline 2009 -Avetisova, Nina Million Dollar Baby 2004 -Avetisova, Nina Date Movie 2006 -Avetisova, Nina Fat Albert 2004 -Lucas, Josh (I) A Beautiful Mind 2001 -Lucas, Josh (I) The Lincoln Lawyer 2011 -Lucas, Josh (I) Poseidon 2006 -Lucas, Josh (I) Life as We Know It 2010 -Lucas, Josh (I) Hulk 2003 -Lucas, Josh (I) J. Edgar 2011 -Lucas, Josh (I) Sweet Home Alabama 2002 -Lucas, Josh (I) Glory Road 2006 -Zhang, Ziyi Memoirs of a Geisha 2005 -Zhang, Ziyi TMNT 2007 -Zhang, Ziyi Ying Xiong 2002 -Zhang, Ziyi Wo hu cang long 2000 -Zhang, Ziyi Rush Hour 2 2001 -Raymond, Bill (I) Michael Clayton 2007 -Raymond, Bill (I) Autumn in New York 2000 -Raymond, Bill (I) The Hurricane 1999 -Raymond, Bill (I) Twelve Monkeys 1995 -Kunz, Simon (I) Captain America: The First Avenger 2011 -Kunz, Simon (I) GoldenEye 1995 -Kunz, Simon (I) Four Weddings and a Funeral 1994 -Kunz, Simon (I) The Parent Trap 1998 -Fairhall, Gary Harry Potter and the Sorcerer's Stone 2001 -Fairhall, Gary Harry Potter and the Prisoner of Azkaban 2004 -Fairhall, Gary Harry Potter and the Chamber of Secrets 2002 -Duffy, Karen (I) Malcolm X 1992 -Duffy, Karen (I) Dumb & Dumber 1994 -Duffy, Karen (I) Last Action Hero 1993 -Etebari, Eric 2 Fast 2 Furious 2003 -Etebari, Eric The Lincoln Lawyer 2011 -Etebari, Eric Cellular 2004 -Fitzgerald, Jeremy (I) Star Trek 2009 -Fitzgerald, Jeremy (I) Traffic 2000 -Fitzgerald, Jeremy (I) The Time Machine 2002 -Oliver, Billy Saw 3D 2010 -Oliver, Billy Four Brothers 2005 -Oliver, Billy The Pacifier 2005 -Lester, Loren American Wedding 2003 -Lester, Loren 17 Again 2009 -Lester, Loren Red Eye 2005 -Lester, Loren Spider-Man 2 2004 -Knopf, Ren (I) The Social Network 2010 -Knopf, Ren (I) Paul Blart: Mall Cop 2009 -Knopf, Ren (I) Bride Wars 2009 -Knopf, Ren (I) Grown Ups 2010 -Knopf, Ren (I) Ghosts of Girlfriends Past 2009 -Knopf, Ren (I) Knight and Day 2010 -Knopf, Ren (I) The Fighter 2010 -Knopf, Ren (I) Zookeeper 2011 -Mason, Laurence Ali 2001 -Mason, Laurence Artificial Intelligence: AI 2001 -Mason, Laurence Behind Enemy Lines 2001 -Mason, Laurence Public Enemies 2009 -Mason, Laurence The Lincoln Lawyer 2011 -Valletta, Amber The Family Man 2000 -Valletta, Amber Transporter 2 2005 -Valletta, Amber What Lies Beneath 2000 -Valletta, Amber Raising Helen 2004 -St. Clair, Jessica College Road Trip 2008 -St. Clair, Jessica Bridesmaids 2011 -St. Clair, Jessica It's Complicated 2009 -St. Clair, Jessica The Dictator 2012 -St. Clair, Jessica Life as We Know It 2010 -Monte, Paul Dion Rocky Balboa 2006 -Monte, Paul Dion Rocky V 1990 -Monte, Paul Dion Rambo III 1988 -Witt, Alicia Vanilla Sky 2001 -Witt, Alicia Urban Legend 1998 -Witt, Alicia Two Weeks Notice 2002 -Taylor, Matthew G. Gothika 2003 -Taylor, Matthew G. Resident Evil: Apocalypse 2004 -Taylor, Matthew G. Cinderella Man 2005 -Taylor, Matthew G. Exit Wounds 2001 -Taylor, Matthew G. Immortals 2011 -Pelletier, Bronson New Moon 2009 -Pelletier, Bronson The Twilight Saga: Eclipse 2010 -Pelletier, Bronson The Twilight Saga: Breaking Dawn - Part 1 2011 -Wood, Matthew (I) Star Wars: Episode III - Revenge of the Sith 2005 -Wood, Matthew (I) Star Wars: Episode I - The Phantom Menace 1999 -Wood, Matthew (I) Star Wars: Episode II - Attack of the Clones 2002 -Benson, Peter (III) The Adjustment Bureau 2011 -Benson, Peter (III) A Perfect Murder 1998 -Benson, Peter (III) Eyes Wide Shut 1999 -Aykroyd, Dan Ghost Busters 1984 -Aykroyd, Dan Casper 1995 -Aykroyd, Dan Spies Like Us 1985 -Aykroyd, Dan Trading Places 1983 -Aykroyd, Dan I Now Pronounce You Chuck & Larry 2007 -Aykroyd, Dan Julie & Julia 2009 -Aykroyd, Dan Pearl Harbor 2001 -Aykroyd, Dan Christmas with the Kranks 2004 -Aykroyd, Dan Indiana Jones and the Temple of Doom 1984 -Aykroyd, Dan 50 First Dates 2004 -Aykroyd, Dan Antz 1998 -Aykroyd, Dan Yogi Bear 2010 -Aykroyd, Dan Evolution 2001 -Chea, Alvin Norbit 2007 -Chea, Alvin License to Wed 2007 -Chea, Alvin The Ides of March 2011 -Montgomery, Ritchie Deja Vu 2006 -Montgomery, Ritchie Catch Me If You Can 2002 -Montgomery, Ritchie The Lucky One 2012 -Montgomery, Ritchie The Help 2011 -Montgomery, Ritchie Green Lantern 2011 -Montgomery, Ritchie Glory Road 2006 -Montgomery, Ritchie The Princess and the Frog 2009 -Montgomery, Ritchie The Mist 2007 -Montgomery, Ritchie Contraband 2012 -Montgomery, Ritchie The Dukes of Hazzard 2005 -McKinney, Chris (I) The Out-of-Towners 1999 -McKinney, Chris (I) American Gangster 2007 -McKinney, Chris (I) The Interpreter 2005 -Kilbride, Kerry Bandits 2001 -Kilbride, Kerry Volcano 1997 -Kilbride, Kerry The Net 1995 -Peña, Michael Million Dollar Baby 2004 -Peña, Michael Gone in Sixty Seconds 2000 -Peña, Michael Tower Heist 2011 -Peña, Michael Babel 2006 -Peña, Michael Battle Los Angeles 2011 -Peña, Michael The Lincoln Lawyer 2011 -Peña, Michael World Trade Center 2006 -Coyle, Joe (I) Paycheck 2003 -Coyle, Joe (I) Unstoppable 2010 -Coyle, Joe (I) Ocean's Eleven 2001 -Heuring, Lori Runaway Jury 2003 -Heuring, Lori Just Go with It 2011 -Heuring, Lori Anger Management 2003 -Bowers, David (II) Star Wars: Episode III - Revenge of the Sith 2005 -Bowers, David (II) The Matrix Revolutions 2003 -Bowers, David (II) Star Wars: Episode II - Attack of the Clones 2002 -Shelby, Joe Dogma 1999 -Shelby, Joe Gung Ho 1986 -Shelby, Joe My Bloody Valentine 2009 -Herman, David (I) Bee Movie 2007 -Herman, David (I) Dude, Where's My Car? 2000 -Herman, David (I) Kicking & Screaming 2005 -Herman, David (I) Fun with Dick and Jane 2005 -Serrano, Nestor (I) Daylight 1996 -Serrano, Nestor (I) Secretariat 2010 -Serrano, Nestor (I) Showtime 2002 -Serrano, Nestor (I) The Day After Tomorrow 2004 -Serrano, Nestor (I) Act of Valor 2012 -Serrano, Nestor (I) Lethal Weapon 2 1989 -Serrano, Nestor (I) The Insider 1999 -Serrano, Nestor (I) Runaway Jury 2003 -Serrano, Nestor (I) The Negotiator 1998 -Serrano, Nestor (I) Bad Boys 1995 -Touliatos, George The Sisterhood of the Traveling Pants 2005 -Touliatos, George Double Jeopardy 1999 -Touliatos, George This Means War 2012 -Nimoy, Leonard Atlantis: The Lost Empire 2001 -Nimoy, Leonard Star Trek IV: The Voyage Home 1986 -Nimoy, Leonard Star Trek 2009 -Nimoy, Leonard Star Trek: The Wrath of Khan 1982 -Nimoy, Leonard Land of the Lost 2009 -Nimoy, Leonard Star Trek III: The Search for Spock 1984 -Nimoy, Leonard Transformers: Dark of the Moon 2011 -Cusack, Dick High Fidelity 2000 -Cusack, Dick The Fugitive 1993 -Cusack, Dick Return to Me 2000 -Castellaneta, Dan Rugrats in Paris: The Movie - Rugrats II 2000 -Castellaneta, Dan The Simpsons Movie 2007 -Castellaneta, Dan Superhero Movie 2008 -Castellaneta, Dan Happy Feet 2006 -Castellaneta, Dan Return to Never Land 2002 -Castellaneta, Dan Recess: School's Out 2001 -Castellaneta, Dan Super 8 2011 -Castellaneta, Dan CyberWorld 2000 -Castellaneta, Dan Space Jam 1996 -Castellaneta, Dan Dr. Seuss' The Cat in the Hat 2003 -Castellaneta, Dan The Pursuit of Happyness 2006 -Schanamann, Chuck Men in Black 3 2012 -Schanamann, Chuck Law Abiding Citizen 2009 -Schanamann, Chuck Invincible 2006 -Schanamann, Chuck Limitless 2011 -Schanamann, Chuck The Happening 2008 -Sterling, Maury The A-Team 2010 -Sterling, Maury Kung Fu Panda 2 2011 -Sterling, Maury Beverly Hills Chihuahua 2008 -Sterling, Maury Outbreak 1995 -Butler, Gerard The Phantom of the Opera 2004 -Butler, Gerard The Ugly Truth 2009 -Butler, Gerard Law Abiding Citizen 2009 -Butler, Gerard Nim's Island 2008 -Butler, Gerard P.S. I Love You 2007 -Butler, Gerard Lara Croft Tomb Raider: The Cradle of Life 2003 -Butler, Gerard 300 2006 -Butler, Gerard How to Train Your Dragon 2010 -Butler, Gerard Reign of Fire 2002 -Butler, Gerard Tomorrow Never Dies 1997 -Welker, Frank Madagascar 3: Europe's Most Wanted 2012 -Welker, Frank Spawn 1997 -Welker, Frank The Ant Bully 2006 -Welker, Frank Alice in Wonderland 2010 -Welker, Frank Anaconda 1997 -Welker, Frank Pocahontas 1995 -Welker, Frank Transformers: Revenge of the Fallen 2009 -Welker, Frank The Smurfs 2011 -Welker, Frank Who Framed Roger Rabbit 1988 -Welker, Frank Mortal Kombat 1995 -Welker, Frank Scooby-Doo 2002 -Welker, Frank Deep Blue Sea 1999 -Welker, Frank Jimmy Neutron: Boy Genius 2001 -Welker, Frank Jumanji 1995 -Welker, Frank The Tigger Movie 2000 -Welker, Frank The Lion King 1994 -Welker, Frank Godzilla 1998 -Welker, Frank The Little Mermaid 1989 -Welker, Frank Transformers: Dark of the Moon 2011 -Welker, Frank Return to Never Land 2002 -Welker, Frank Stargate 1994 -Welker, Frank The Hunchback of Notre Dame 1996 -Welker, Frank Shrek Forever After 2010 -Welker, Frank Mirror Mirror 2012 -Welker, Frank Mulan 1998 -Welker, Frank Curious George 2006 -Welker, Frank How the Grinch Stole Christmas 2000 -Welker, Frank Hercules 1997 -Welker, Frank Star Trek III: The Search for Spock 1984 -Welker, Frank Dr. Seuss' The Cat in the Hat 2003 -Welker, Frank Spy Kids: All the Time in the World in 4D 2011 -Welker, Frank 101 Dalmatians 1996 -Welker, Frank The Santa Clause 1994 -Welker, Frank Beauty and the Beast 1991 -Welker, Frank Aladdin 1992 -Welker, Frank Space Jam 1996 -Welker, Frank The Road to El Dorado 2000 -Welker, Frank Independence Day 1996 -Ellis, Aunjanue The Help 2011 -Ellis, Aunjanue The Taking of Pelham 1 2 3 2009 -Ellis, Aunjanue Men of Honor 2000 -McKinley, Scott (I) Volcano 1997 -McKinley, Scott (I) L.A. Confidential 1997 -McKinley, Scott (I) Independence Day 1996 -McKinley, Scott (I) Mars Attacks! 1996 -Qin, Shaobo Ocean's Eleven 2001 -Qin, Shaobo Ocean's Thirteen 2007 -Qin, Shaobo Ocean's Twelve 2004 -Hagon, Garrick Charlie and the Chocolate Factory 2005 -Hagon, Garrick Star Wars 1977 -Hagon, Garrick Mission: Impossible 1996 -Hagon, Garrick Batman 1989 -Hagon, Garrick Spy Game 2001 -Marshall, Mona (I) Horton Hears a Who! 2008 -Marshall, Mona (I) The Time Traveler's Wife 2009 -Marshall, Mona (I) Cloudy with a Chance of Meatballs 2009 -Marshall, Mona (I) Fly Me to the Moon 2008 -Marshall, Mona (I) Sen to Chihiro no kamikakushi 2001 -Marshall, Mona (I) Gake no ue no Ponyo 2008 -Marshall, Mona (I) The Lorax 2012 -Marshall, Mona (I) Treasure Planet 2002 -Marshall, Mona (I) The Hunchback of Notre Dame 1996 -Marshall, Mona (I) The Princess and the Frog 2009 -Marshall, Mona (I) The Wild 2006 -Marshall, Mona (I) Chicken Little 2005 -Marshall, Mona (I) Monsters, Inc. 2001 -Woulard, Keith Spider-Man 3 2007 -Woulard, Keith Air Force One 1997 -Woulard, Keith The Sixth Sense 1999 -Greenwood, Bruce (I) Deja Vu 2006 -Greenwood, Bruce (I) National Treasure: Book of Secrets 2007 -Greenwood, Bruce (I) Capote 2005 -Greenwood, Bruce (I) Racing Stripes 2005 -Greenwood, Bruce (I) Rules of Engagement 2000 -Greenwood, Bruce (I) First Blood 1982 -Greenwood, Bruce (I) I, Robot 2004 -Greenwood, Bruce (I) Eight Below 2006 -Greenwood, Bruce (I) Super 8 2011 -Greenwood, Bruce (I) Dinner for Schmucks 2010 -Greenwood, Bruce (I) Double Jeopardy 1999 -Greenwood, Bruce (I) Star Trek 2009 -Greenwood, Bruce (I) The Core 2003 -Ryan, Marty (II) Dreamgirls 2006 -Ryan, Marty (II) Made of Honor 2008 -Ryan, Marty (II) The Italian Job 2003 -Sotto, Al Salt 2010 -Sotto, Al National Treasure: Book of Secrets 2007 -Sotto, Al The Replacements 2000 -Sotto, Al He's Just Not That Into You 2009 -Montgomery, Olan Men in Black 3 2012 -Montgomery, Olan New Year's Eve 2011 -Montgomery, Olan Wall Street: Money Never Sleeps 2010 -Riegert, Joan The Hangover 2009 -Riegert, Joan Percy Jackson & the Olympians: The Lightning Thief 2010 -Riegert, Joan Get Him to the Greek 2010 -Pegg, Simon Ice Age: Dawn of the Dinosaurs 2009 -Pegg, Simon Mission: Impossible III 2006 -Pegg, Simon The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Pegg, Simon Mission: Impossible - Ghost Protocol 2011 -Pegg, Simon Star Trek 2009 -Pegg, Simon The Adventures of Tintin 2011 -Roker, Al Men in Black 1997 -Roker, Al Madagascar: Escape 2 Africa 2008 -Roker, Al Cloudy with a Chance of Meatballs 2009 -Roker, Al Robots 2005 -Kline, Richard (I) I Now Pronounce You Chuck & Larry 2007 -Kline, Richard (I) Jack and Jill 2011 -Kline, Richard (I) Beverly Hills Ninja 1997 -McInerney, Bernie The Peacemaker 1997 -McInerney, Bernie The Natural 1984 -McInerney, Bernie Trading Places 1983 -McInerney, Bernie Dan in Real Life 2007 -McInerney, Bernie Paul Blart: Mall Cop 2009 -Paul, Randall Four Weddings and a Funeral 1994 -Paul, Randall Mission: Impossible 1996 -Paul, Randall Eyes Wide Shut 1999 -Hopf, Frank The Stepford Wives 2004 -Hopf, Frank Inside Man 2006 -Hopf, Frank World Trade Center 2006 -Wahlberg, Donnie Saw II 2005 -Wahlberg, Donnie Saw III 2006 -Wahlberg, Donnie Magnificent Desolation: Walking on the Moon 3D 2005 -Wahlberg, Donnie Righteous Kill 2008 -Wahlberg, Donnie The Sixth Sense 1999 -Wahlberg, Donnie Ransom 1996 -Wahlberg, Donnie Zookeeper 2011 -Wahlberg, Donnie Saw V 2008 -Wahlberg, Donnie Saw IV 2007 -Wahlberg, Donnie Dreamcatcher 2003 -Laurence, Tristan Precious 2009 -Laurence, Tristan No Reservations 2007 -Laurence, Tristan Pirates of the Caribbean: On Stranger Tides 2011 -Wood, Greg (I) The Sixth Sense 1999 -Wood, Greg (I) Signs 2002 -Wood, Greg (I) The Happening 2008 -Chalk, Garry Watchmen 2009 -Chalk, Garry Eight Below 2006 -Chalk, Garry Freddy vs. Jason 2003 -Chadov, Aleksey 9 rota 2005 -Chadov, Aleksey Dnevnoy dozor 2006 -Chadov, Aleksey Nochnoy dozor 2004 -Sanders, Jay O. Daylight 1996 -Sanders, Jay O. Along Came a Spider 2001 -Sanders, Jay O. The Day After Tomorrow 2004 -Sanders, Jay O. Kiss the Girls 1997 -Sanders, Jay O. Green Lantern 2011 -Sanders, Jay O. JFK 1991 -Pelletier, Colleen The Stepford Wives 2004 -Pelletier, Colleen The Pink Panther 2006 -Pelletier, Colleen Magnolia 1999 -Owen, Meg Wynn Pride & Prejudice 2005 -Owen, Meg Wynn Gosford Park 2001 -Owen, Meg Wynn Hereafter 2010 -Owen, Meg Wynn Love Actually 2003 -Lee, Adrian (III) Angels & Demons 2009 -Lee, Adrian (III) Men in Black 1997 -Lee, Adrian (III) The Devil's Advocate 1997 -Lee, Adrian (III) One Fine Day 1996 -Lee, Adrian (III) The Mirror Has Two Faces 1996 -Lee, Adrian (III) Cop Land 1997 -Pearlman, Stephen The Horse Whisperer 1998 -Pearlman, Stephen The First Wives Club 1996 -Pearlman, Stephen Die Hard: With a Vengeance 1995 -Judge, Mike (I) Spy Kids 2001 -Judge, Mike (I) Spy Kids 3-D: Game Over 2003 -Judge, Mike (I) Jackass 3D 2010 -Judge, Mike (I) Austin Powers: International Man of Mystery 1997 -Judge, Mike (I) South Park: Bigger Longer & Uncut 1999 -Judge, Mike (I) Beavis and Butt-Head Do America 1996 -Judge, Mike (I) Spy Kids 2: Island of Lost Dreams 2002 -Macht, Gabriel Bad Company 2002 -Macht, Gabriel The Good Shepherd 2006 -Macht, Gabriel The Recruit 2003 -Macht, Gabriel Behind Enemy Lines 2001 -Cruz, Raymond (I) Collateral Damage 2002 -Cruz, Raymond (I) The Rock 1996 -Cruz, Raymond (I) Alien: Resurrection 1997 -Cruz, Raymond (I) Clear and Present Danger 1994 -Cruz, Raymond (I) Training Day 2001 -Cruz, Raymond (I) Out for Justice 1991 -Missick, Dorian The Manchurian Candidate 2004 -Missick, Dorian Two Weeks Notice 2002 -Missick, Dorian Shaft 2000 -Reidy, Joseph P. The Aviator 2004 -Reidy, Joseph P. The Departed 2006 -Reidy, Joseph P. Shutter Island 2010 -Reidy, Joseph P. Gangs of New York 2002 -Spellos, Peter City of Angels 1998 -Spellos, Peter Men in Black II 2002 -Spellos, Peter Yes Man 2008 -Spellos, Peter Freddy's Dead: The Final Nightmare 1991 -Henley, Georgie The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Henley, Georgie The Chronicles of Narnia: Prince Caspian 2008 -Henley, Georgie The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Reynolds, Anthony The Hunger Games 2012 -Reynolds, Anthony Red Dragon 2002 -Reynolds, Anthony After the Sunset 2004 -Kurtz, Marcia Jean In Her Shoes 2005 -Kurtz, Marcia Jean Black Swan 2010 -Kurtz, Marcia Jean Inside Man 2006 -Kurtz, Marcia Jean Tower Heist 2011 -Lawless, Lucy Spider-Man 2 2004 -Lawless, Lucy Spider-Man 2002 -Lawless, Lucy Bedtime Stories 2008 -Fry, Logan (I) Spider-Man 3 2007 -Fry, Logan (I) I Am Legend 2007 -Fry, Logan (I) Real Steel 2011 -Marin, Cheech Pinocchio 2002 -Marin, Cheech Beverly Hills Chihuahua 2008 -Marin, Cheech Cars 2 2011 -Marin, Cheech Spy Kids 3-D: Game Over 2003 -Marin, Cheech Spy Kids 2001 -Marin, Cheech Cars 2006 -Marin, Cheech Race to Witch Mountain 2009 -Marin, Cheech Christmas with the Kranks 2004 -Marin, Cheech Spy Kids 2: Island of Lost Dreams 2002 -Marin, Cheech The Lion King 1994 -Marin, Cheech Tin Cup 1996 -Podgurski, Jeff The Time Machine 2002 -Podgurski, Jeff The Pacifier 2005 -Podgurski, Jeff Batman & Robin 1997 -Parker, B.J. Limitless 2011 -Parker, B.J. The Adjustment Bureau 2011 -Parker, B.J. Dolphin Tale 2011 -Ford, Colin (I) Push 2009 -Ford, Colin (I) Bride Wars 2009 -Ford, Colin (I) The Ant Bully 2006 -Ford, Colin (I) We Bought a Zoo 2011 -Ford, Colin (I) Sweet Home Alabama 2002 -Bougere, Teagle F. Night at the Museum 2006 -Bougere, Teagle F. Two Weeks Notice 2002 -Bougere, Teagle F. A Beautiful Mind 2001 -Prosky, John The Devil Inside 2012 -Prosky, John Artificial Intelligence: AI 2001 -Prosky, John Hulk 2003 -Prosky, John Bowfinger 1999 -Prosky, John Bringing Down the House 2003 -Prosky, John Hidalgo 2004 -Prosky, John The Nutty Professor 1996 -Foxworth, Robert Syriana 2005 -Foxworth, Robert Transformers: Revenge of the Fallen 2009 -Foxworth, Robert Transformers 2007 -Foxworth, Robert Transformers: Dark of the Moon 2011 -Tigar, Kenneth Lethal Weapon 2 1989 -Tigar, Kenneth The Avengers 2012 -Tigar, Kenneth Lethal Weapon 3 1992 -Tigar, Kenneth Conspiracy Theory 1997 -Katt, Nicky World Trade Center 2006 -Katt, Nicky Rules of Engagement 2000 -Katt, Nicky Sister Act 1992 -Katt, Nicky A Time to Kill 1996 -Katt, Nicky The Brave One 2007 -Katt, Nicky The School of Rock 2003 -Katt, Nicky Sin City 2005 -Katt, Nicky Batman & Robin 1997 -Katt, Nicky Insomnia 2002 -Burton, Kate (I) The First Wives Club 1996 -Burton, Kate (I) Unfaithful 2002 -Burton, Kate (I) Max Payne 2008 -Kehler, Jack Lethal Weapon 4 1998 -Kehler, Jack Under the Tuscan Sun 2003 -Kehler, Jack Forces of Nature 1999 -Kehler, Jack Invincible 2006 -Kehler, Jack Austin Powers: The Spy Who Shagged Me 1999 -Kehler, Jack Pineapple Express 2008 -Kehler, Jack Fever Pitch 2005 -Kehler, Jack Waterworld 1995 -Kehler, Jack Men in Black II 2002 -Engle, Jennifer Ghosts of Girlfriends Past 2009 -Engle, Jennifer 27 Dresses 2008 -Engle, Jennifer Confessions of a Shopaholic 2009 -Engle, Jennifer Grown Ups 2010 -Remsen, Bert Forces of Nature 1999 -Remsen, Bert Conspiracy Theory 1997 -Remsen, Bert The Bodyguard 1992 -Meyer, Ruth Michelle The Heartbreak Kid 2007 -Meyer, Ruth Michelle There's Something About Mary 1998 -Meyer, Ruth Michelle Me, Myself & Irene 2000 -Kulhavý, Vladimír From Hell 2001 -Kulhavý, Vladimír Hannibal Rising 2007 -Kulhavý, Vladimír Casino Royale 2006 -Kulhavý, Vladimír A Knight's Tale 2001 -Kulhavý, Vladimír The Illusionist 2006 -Cartwright, Veronica Money Talks 1997 -Cartwright, Veronica Alien 1979 -Cartwright, Veronica Just Married 2003 -Cartwright, Veronica In the Bedroom 2001 -Cartwright, Veronica Scary Movie 2 2001 -O'Rourke, Richard (I) The Stepford Wives 2004 -O'Rourke, Richard (I) Mona Lisa Smile 2003 -O'Rourke, Richard (I) 27 Dresses 2008 -Silver, Ron (I) Ali 2001 -Silver, Ron (I) Romancing the Stone 1984 -Silver, Ron (I) Timecop 1994 -Goglia, Juliette Cheaper by the Dozen 2 2005 -Goglia, Juliette Garfield 2004 -Goglia, Juliette Easy A 2010 -Perella, Marco Varsity Blues 1999 -Perella, Marco JFK 1991 -Perella, Marco Sin City 2005 -Perella, Marco Friday Night Lights 2004 -Perella, Marco Miss Congeniality 2000 -Ryan, Mark (I) Charlie's Angels 2000 -Ryan, Mark (I) The Prestige 2006 -Ryan, Mark (I) Evita 1996 -Ryan, Mark (I) Transformers: Revenge of the Fallen 2009 -Ryan, Mark (I) Transformers 2007 -Ryan, Mark (I) Transformers: Dark of the Moon 2011 -Argenziano, Carmen Blue Streak 1999 -Argenziano, Carmen Sudden Impact 1983 -Argenziano, Carmen Swordfish 2001 -Argenziano, Carmen Gone in Sixty Seconds 2000 -Argenziano, Carmen Identity 2003 -Argenziano, Carmen Angels & Demons 2009 -Martino, Nicholas Alexander Invincible 2006 -Martino, Nicholas Alexander The Village 2004 -Martino, Nicholas Alexander The Happening 2008 -Pearl, David (III) Angels & Demons 2009 -Pearl, David (III) Invincible 2006 -Pearl, David (III) Changeling 2008 -Pearl, David (III) Rush Hour 3 2007 -Pearl, David (III) The Heartbreak Kid 2007 -Pearl, David (III) The Pursuit of Happyness 2006 -Pearl, David (III) Yes Man 2008 -Chandler, Kyle King Kong 2005 -Chandler, Kyle Super 8 2011 -Chandler, Kyle The Day the Earth Stood Still 2008 -Ranft, Joe Cars 2006 -Ranft, Joe A Bug's Life 1998 -Ranft, Joe Monsters, Inc. 2001 -Ranft, Joe Toy Story 2 1999 -Ranft, Joe The Incredibles 2004 -Ranft, Joe Toy Story 1995 -Ranft, Joe Finding Nemo 2003 -Adair-Rios, Mark Along Came Polly 2004 -Adair-Rios, Mark Bruce Almighty 2003 -Adair-Rios, Mark Courage Under Fire 1996 -Adair-Rios, Mark Doctor Dolittle 1998 -Adair-Rios, Mark Speed 2: Cruise Control 1997 -Adair-Rios, Mark Stigmata 1999 -Streep, Meryl Lemony Snicket's A Series of Unfortunate Events 2004 -Streep, Meryl Kramer vs. Kramer 1979 -Streep, Meryl The Manchurian Candidate 2004 -Streep, Meryl It's Complicated 2009 -Streep, Meryl The Devil Wears Prada 2006 -Streep, Meryl Mamma Mia! 2008 -Streep, Meryl The Ant Bully 2006 -Streep, Meryl Julie & Julia 2009 -Streep, Meryl Artificial Intelligence: AI 2001 -Streep, Meryl The Hours 2002 -Urano, Ren Memoirs of a Geisha 2005 -Urano, Ren Windtalkers 2002 -Urano, Ren Ocean's Thirteen 2007 -Urano, Ren Austin Powers in Goldmember 2002 -Vinson, Torell Step Up 3D 2010 -Vinson, Torell Step Up 2006 -Vinson, Torell Step Up 2: The Streets 2008 -Arkin, Alan Firewall 2006 -Arkin, Alan Little Miss Sunshine 2006 -Arkin, Alan America's Sweethearts 2001 -Arkin, Alan Get Smart 2008 -Arkin, Alan The Santa Clause 3: The Escape Clause 2006 -Arkin, Alan Marley & Me 2008 -Arkin, Alan The Muppets 2011 -Kendrick, Anna (I) New Moon 2009 -Kendrick, Anna (I) The Twilight Saga: Eclipse 2010 -Kendrick, Anna (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Lamar, Leon Madea's Family Reunion 2006 -Lamar, Leon Forces of Nature 1999 -Lamar, Leon Madea Goes to Jail 2009 -Chief-Moon, Byron X-Men Origins: Wolverine 2009 -Chief-Moon, Byron The Twilight Saga: Eclipse 2010 -Chief-Moon, Byron Scary Movie 3 2003 -Romano, Ray (I) Ice Age: Dawn of the Dinosaurs 2009 -Romano, Ray (I) Funny People 2009 -Romano, Ray (I) Ice Age 2002 -Romano, Ray (I) Ice Age: The Meltdown 2006 -Lithgow, John (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Lithgow, John (I) Terms of Endearment 1983 -Lithgow, John (I) New Year's Eve 2011 -Lithgow, John (I) Confessions of a Shopaholic 2009 -Lithgow, John (I) A Civil Action 1998 -Lithgow, John (I) Footloose 1984 -Lithgow, John (I) Cliffhanger 1993 -Lithgow, John (I) Shrek 2001 -Lithgow, John (I) Dreamgirls 2006 -Lithgow, John (I) Rise of the Planet of the Apes 2011 -Arthur, Michelle (I) Battleship 2012 -Arthur, Michelle (I) Seabiscuit 2003 -Arthur, Michelle (I) The Terminal 2004 -Arthur, Michelle (I) Charlie Wilson's War 2007 -Arthur, Michelle (I) GoldenEye 1995 -Arthur, Michelle (I) Fun with Dick and Jane 2005 -Arthur, Michelle (I) Happy Feet 2006 -Arthur, Michelle (I) Mission: Impossible III 2006 -Miller, Omar Benson Shall We Dance 2004 -Miller, Omar Benson Transformers 2007 -Miller, Omar Benson 8 Mile 2002 -Miller, Omar Benson The Sorcerer's Apprentice 2010 -McElhenney, Rob The Devil's Own 1997 -McElhenney, Rob Wonder Boys 2000 -McElhenney, Rob A Civil Action 1998 -Tobin, Jason Beverly Hills Ninja 1997 -Tobin, Jason The Hot Chick 2002 -Tobin, Jason The Fast and the Furious: Tokyo Drift 2006 -Meyers, George (IV) The Longest Yard 2005 -Meyers, George (IV) Gone in Sixty Seconds 2000 -Meyers, George (IV) Air Force One 1997 -Meyers, George (IV) End of Days 1999 -Primus, Barry Absence of Malice 1981 -Primus, Barry Down and Out in Beverly Hills 1986 -Primus, Barry Righteous Kill 2008 -Harrison, Anthony (I) Snow Dogs 2002 -Harrison, Anthony (I) The Core 2003 -Harrison, Anthony (I) LiTTLEMAN 2006 -Harrison, Anthony (I) AVPR: Aliens vs Predator - Requiem 2007 -Harrison, Anthony (I) The 6th Day 2000 -Hall, Regina (I) Scary Movie 3 2003 -Hall, Regina (I) Law Abiding Citizen 2009 -Hall, Regina (I) Scary Movie 2000 -Hall, Regina (I) Think Like a Man 2012 -Hall, Regina (I) Scary Movie 4 2006 -Hall, Regina (I) Scary Movie 2 2001 -Hall, Regina (I) Death at a Funeral 2010 -Hall, Regina (I) Superhero Movie 2008 -Okumoto, Yuji The Truman Show 1998 -Okumoto, Yuji Inception 2010 -Okumoto, Yuji Contact 1997 -Okumoto, Yuji Pearl Harbor 2001 -Okumoto, Yuji Big Momma's House 2 2006 -Okumoto, Yuji The Karate Kid, Part II 1986 -Okumoto, Yuji The Game 1997 -Postlethwaite, Pete Amistad 1997 -Postlethwaite, Pete Romeo + Juliet 1996 -Postlethwaite, Pete The Omen 2006 -Postlethwaite, Pete Alien³ 1992 -Postlethwaite, Pete The Town 2010 -Postlethwaite, Pete Inception 2010 -Postlethwaite, Pete The Lost World: Jurassic Park 1997 -Postlethwaite, Pete The Constant Gardener 2005 -Postlethwaite, Pete Clash of the Titans 2010 -Postlethwaite, Pete DragonHeart 1996 -Archer, Anne Rules of Engagement 2000 -Archer, Anne Ghosts of Girlfriends Past 2009 -Archer, Anne Clear and Present Danger 1994 -Archer, Anne Fatal Attraction 1987 -Holland, Matt (I) The Aviator 2004 -Holland, Matt (I) The Day After Tomorrow 2004 -Holland, Matt (I) Source Code 2011 -Holland, Matt (I) The Sum of All Fears 2002 -Holland, Matt (I) The Terminal 2004 -Holland, Matt (I) Secret Window 2004 -Riley, Gary (I) Stand by Me 1986 -Riley, Gary (I) Ruthless People 1986 -Riley, Gary (I) Back to the Future 1985 -Mueting, Alan 17 Again 2009 -Mueting, Alan Hancock 2008 -Mueting, Alan Transformers: Revenge of the Fallen 2009 -Mueting, Alan Superhero Movie 2008 -Mueting, Alan Eagle Eye 2008 -Mueting, Alan Water for Elephants 2011 -Affleck, Casey American Pie 1999 -Affleck, Casey American Pie 2 2001 -Affleck, Casey Ocean's Thirteen 2007 -Affleck, Casey Ocean's Eleven 2001 -Affleck, Casey Ocean's Twelve 2004 -Affleck, Casey Tower Heist 2011 -Affleck, Casey Good Will Hunting 1997 -Mitra, Rhona Sweet Home Alabama 2002 -Mitra, Rhona Underworld: Rise of the Lycans 2009 -Mitra, Rhona Hollow Man 2000 -Beuth, Robert Alan Fun with Dick and Jane 2005 -Beuth, Robert Alan In the Line of Fire 1993 -Beuth, Robert Alan Outbreak 1995 -Krasko, Andrey Turetskiy gambit 2005 -Krasko, Andrey 9 rota 2005 -Krasko, Andrey Svolochi 2006 -Riley, Claire (I) Freddy vs. Jason 2003 -Riley, Claire (I) The Core 2003 -Riley, Claire (I) Along Came a Spider 2001 -Riley, Claire (I) The 6th Day 2000 -Racicot, Jody The Tuxedo 2002 -Racicot, Jody Final Destination 3 2006 -Racicot, Jody Night at the Museum 2006 -Racicot, Jody The Lizzie McGuire Movie 2003 -Izquierdo, Ty The Hangover 2009 -Izquierdo, Ty 21 2008 -Izquierdo, Ty What Happens in Vegas 2008 -Izquierdo, Ty Ocean's Thirteen 2007 -Evans, Jessica (I) A Bug's Life 1998 -Evans, Jessica (I) Toy Story 2 1999 -Evans, Jessica (I) The Haunting 1999 -Wolfe, Traci Lethal Weapon 4 1998 -Wolfe, Traci Lethal Weapon 2 1989 -Wolfe, Traci Lethal Weapon 3 1992 -Young, Nina Harry Potter and the Sorcerer's Stone 2001 -Young, Nina Clash of the Titans 2010 -Young, Nina Tomorrow Never Dies 1997 -Young, Nina Johnny English 2003 -Tyson, Cicely Madea's Family Reunion 2006 -Tyson, Cicely Why Did I Get Married Too? 2010 -Tyson, Cicely The Help 2011 -Tyson, Cicely Because of Winn-Dixie 2005 -Ruscoe, Alan The Fifth Element 1997 -Ruscoe, Alan Star Wars: Episode I - The Phantom Menace 1999 -Ruscoe, Alan Star Wars: Episode II - Attack of the Clones 2002 -Rivera, Geraldo Cop Land 1997 -Rivera, Geraldo Primary Colors 1998 -Rivera, Geraldo Contact 1997 -Young, Ric Kiss of the Dragon 2001 -Young, Ric American Gangster 2007 -Young, Ric Seven Years in Tibet 1997 -Young, Ric Indiana Jones and the Temple of Doom 1984 -Stanley, Don Lethal Weapon 3 1992 -Stanley, Don Conspiracy Theory 1997 -Stanley, Don Alice in Wonderland 2010 -Waddell, Avery G-Force 2009 -Waddell, Avery Road Trip 2000 -Waddell, Avery Spider-Man 3 2007 -Waddell, Avery Transformers: Revenge of the Fallen 2009 -Abustan, Jason The Break-Up 2006 -Abustan, Jason The Lake House 2006 -Abustan, Jason Fred Claus 2007 -Malahide, Patrick The Killing Fields 1984 -Malahide, Patrick Billy Elliot 2000 -Malahide, Patrick Sahara 2005 -Malahide, Patrick Captain Corelli's Mandolin 2001 -Malahide, Patrick The Long Kiss Goodnight 1996 -Malahide, Patrick The World Is Not Enough 1999 -Malahide, Patrick U.S. Marshals 1998 -Mahon, John (I) L.A. Confidential 1997 -Mahon, John (I) Armageddon 1998 -Mahon, John (I) The Exorcist 1973 -Mahon, John (I) Austin Powers: The Spy Who Shagged Me 1999 -Diatchenko, Dimitri (I) Iron Man 2 2010 -Diatchenko, Dimitri (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Diatchenko, Dimitri (I) Get Smart 2008 -Diatchenko, Dimitri (I) G.I. Jane 1997 -Willis, Rumer The Whole Nine Yards 2000 -Willis, Rumer Striptease 1996 -Willis, Rumer Hostage 2005 -Belushi, James Snow Dogs 2002 -Belushi, James Jingle All the Way 1996 -Belushi, James Pinocchio 2002 -Belushi, James Hoodwinked! 2005 -Belushi, James Underdog 2007 -Belushi, James New Year's Eve 2011 -Belushi, James Return to Me 2000 -Belushi, James Trading Places 1983 -Belushi, James About Last Night... 1986 -Belushi, James Wag the Dog 1997 -Belushi, James The Wild 2006 -Belushi, James Last Action Hero 1993 -Belushi, James The Ghost Writer 2010 -Gates, Alan (II) Step Up 2006 -Gates, Alan (II) Collateral Damage 2002 -Gates, Alan (II) Syriana 2005 -Chiles, Lois (I) Moonraker 1979 -Chiles, Lois (I) Austin Powers: International Man of Mystery 1997 -Chiles, Lois (I) Speed 2: Cruise Control 1997 -Chambers, Lossen Snow Dogs 2002 -Chambers, Lossen This Means War 2012 -Chambers, Lossen Double Jeopardy 1999 -Herrera, Roger (II) Why Did I Get Married Too? 2010 -Herrera, Roger (II) The Replacements 2000 -Herrera, Roger (II) The Blind Side 2009 -Banderas, Antonio The Mask of Zorro 1998 -Banderas, Antonio Evita 1996 -Banderas, Antonio Philadelphia 1993 -Banderas, Antonio The 13th Warrior 1999 -Banderas, Antonio Aliens in the Attic 2009 -Banderas, Antonio Frida 2002 -Banderas, Antonio Spy Kids: All the Time in the World in 4D 2011 -Banderas, Antonio Shrek Forever After 2010 -Banderas, Antonio Shrek the Third 2007 -Banderas, Antonio Puss in Boots 2011 -Banderas, Antonio Spy Kids 2: Island of Lost Dreams 2002 -Banderas, Antonio Spy Kids 2001 -Banderas, Antonio Interview with the Vampire: The Vampire Chronicles 1994 -Banderas, Antonio Shrek 2 2004 -Banderas, Antonio The Legend of Zorro 2005 -Banderas, Antonio Spy Kids 3-D: Game Over 2003 -Gilbert, Taylor (II) Spider-Man 2 2004 -Gilbert, Taylor (II) Twister 1996 -Gilbert, Taylor (II) Spider-Man 2002 -Gilbert, Taylor (II) Hancock 2008 -Gilbert, Taylor (II) Forces of Nature 1999 -Gilbert, Taylor (II) The Island 2005 -Vinson, Danny Talladega Nights: The Ballad of Ricky Bobby 2006 -Vinson, Danny The Curious Case of Benjamin Button 2008 -Vinson, Danny Walk the Line 2005 -Johnson, Cal (I) Hannibal 2001 -Johnson, Cal (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Johnson, Cal (I) Forces of Nature 1999 -Vazquez, Yul American Gangster 2007 -Vazquez, Yul Traffic 2000 -Vazquez, Yul Runaway Bride 1999 -Vazquez, Yul The A-Team 2010 -Vazquez, Yul Bad Boys II 2003 -Vazquez, Yul Little Fockers 2010 -Cygan, John (I) Horton Hears a Who! 2008 -Cygan, John (I) Cars 2006 -Cygan, John (I) Treasure Planet 2002 -Cygan, John (I) Toy Story 3 2010 -Cygan, John (I) The Lorax 2012 -Cygan, John (I) Cloudy with a Chance of Meatballs 2009 -Cygan, John (I) WALL·E 2008 -Cygan, John (I) Ice Age: The Meltdown 2006 -Cygan, John (I) Surf's Up 2007 -Cygan, John (I) Gake no ue no Ponyo 2008 -Cygan, John (I) Up 2009 -Hahn, Kathryn The Holiday 2006 -Hahn, Kathryn How to Lose a Guy in 10 Days 2003 -Hahn, Kathryn Step Brothers 2008 -Hahn, Kathryn The Dictator 2012 -Hahn, Kathryn Anchorman: The Legend of Ron Burgundy 2004 -Copeland, Julia Wanted 2008 -Copeland, Julia Fred Claus 2007 -Copeland, Julia The Break-Up 2006 -Bacalso, Joanna Snow Dogs 2002 -Bacalso, Joanna Dude, Where's My Car? 2000 -Bacalso, Joanna Bedazzled 2000 -O'Donnell, Steven (I) Shakespeare in Love 1998 -O'Donnell, Steven (I) Spice World 1997 -O'Donnell, Steven (I) A Knight's Tale 2001 -Harrison, Michelle (II) Paycheck 2003 -Harrison, Michelle (II) Capote 2005 -Harrison, Michelle (II) 40 Days and 40 Nights 2002 -Harrison, Michelle (II) Diary of a Wimpy Kid: Rodrick Rules 2011 -DeVeaux, Nathaniel The Butterfly Effect 2004 -DeVeaux, Nathaniel The Core 2003 -DeVeaux, Nathaniel Along Came a Spider 2001 -Araskog, Julie Se7en 1995 -Araskog, Julie Cheaper by the Dozen 2003 -Araskog, Julie Outbreak 1995 -Lifford, Tina Pay It Forward 2000 -Lifford, Tina Babe 1995 -Lifford, Tina Hostage 2005 -Headley, Shari Johnson Family Vacation 2004 -Headley, Shari The Preacher's Wife 1996 -Headley, Shari Coming to America 1988 -Slezak, Victor Salt 2010 -Slezak, Victor The Siege 1998 -Slezak, Victor Bride Wars 2009 -Slezak, Victor The Sisterhood of the Traveling Pants 2 2008 -Slezak, Victor The Devil's Own 1997 -Ashanti (II) Resident Evil: Extinction 2007 -Ashanti (II) John Tucker Must Die 2006 -Ashanti (II) Malcolm X 1992 -Ashanti (II) Coach Carter 2005 -Sadler, William (I) The Mist 2007 -Sadler, William (I) Eagle Eye 2008 -Sadler, William (I) Die Hard 2 1990 -Sadler, William (I) The Green Mile 1999 -Taylor, Lili (I) High Fidelity 2000 -Taylor, Lili (I) Ransom 1996 -Taylor, Lili (I) Public Enemies 2009 -Taylor, Lili (I) The Haunting 1999 -Curnen, Monique Gabriela Contagion 2011 -Curnen, Monique Gabriela Fast & Furious 2009 -Curnen, Monique Gabriela Lady in the Water 2006 -Allen, Tim (I) Toy Story 1995 -Allen, Tim (I) Wild Hogs 2007 -Allen, Tim (I) Toy Story 3 2010 -Allen, Tim (I) Jungle 2 Jungle 1997 -Allen, Tim (I) The Shaggy Dog 2006 -Allen, Tim (I) Christmas with the Kranks 2004 -Allen, Tim (I) Galaxy Quest 1999 -Allen, Tim (I) The Santa Clause 3: The Escape Clause 2006 -Allen, Tim (I) The Santa Clause 2 2002 -Allen, Tim (I) Toy Story 2 1999 -Allen, Tim (I) The Santa Clause 1994 -Allen, Tim (I) Cars 2006 -Smallwood, Tucker Deep Impact 1998 -Smallwood, Tucker Contact 1997 -Smallwood, Tucker Evan Almighty 2007 -Smallwood, Tucker Traffic 2000 -Smallwood, Tucker Like Mike 2002 -Smallwood, Tucker Presumed Innocent 1990 -Kendall, Merelina Robin Hood: Prince of Thieves 1991 -Kendall, Merelina Billy Elliot 2000 -Kendall, Merelina The Reader 2008 -Kasey, Paul Blade II 2002 -Kasey, Paul 28 Days Later... 2002 -Kasey, Paul 1408 2007 -Tyler, Deneen Contraband 2012 -Tyler, Deneen Big Momma's House 2 2006 -Tyler, Deneen The Curious Case of Benjamin Button 2008 -Tyler, Deneen Runaway Jury 2003 -Tyler, Deneen The Skeleton Key 2005 -Walsh, J.T. A Few Good Men 1992 -Walsh, J.T. Hannah and Her Sisters 1986 -Walsh, J.T. The Negotiator 1998 -Walsh, J.T. Outbreak 1995 -Walsh, J.T. Pleasantville 1998 -Filipensky, Jan Pavel Mission: Impossible - Ghost Protocol 2011 -Filipensky, Jan Pavel AVP: Alien vs. Predator 2004 -Filipensky, Jan Pavel xXx 2002 -Filipensky, Jan Pavel The Chronicles of Narnia: Prince Caspian 2008 -Detrik, Tom Twelve Monkeys 1995 -Detrik, Tom Snake Eyes 1998 -Detrik, Tom Philadelphia 1993 -Gaudet, Debby Deja Vu 2006 -Gaudet, Debby The Curious Case of Benjamin Button 2008 -Gaudet, Debby Failure to Launch 2006 -Gaudet, Debby Big Momma's House 2000 -Lauer, Matt Fahrenheit 9/11 2004 -Lauer, Matt I Am Legend 2007 -Lauer, Matt Tower Heist 2011 -Lauer, Matt Land of the Lost 2009 -Menendez, Gonzalo The Island 2005 -Menendez, Gonzalo 4: Rise of the Silver Surfer 2007 -Menendez, Gonzalo Blow 2001 -Menendez, Gonzalo Act of Valor 2012 -Fields, Christopher John Stargate 1994 -Fields, Christopher John Jurassic Park 1993 -Fields, Christopher John Alien³ 1992 -Fields, Christopher John Apollo 13 1995 -Fields, Christopher John The Game 1997 -Fields, Christopher John Fight Club 1999 -Rush, Deborah Bad Company 2002 -Rush, Deborah You've Got Mail 1998 -Rush, Deborah In & Out 1997 -Rush, Deborah Julie & Julia 2009 -Rush, Deborah American Wedding 2003 -Bartlett, Charles (II) Babe: Pig in the City 1998 -Bartlett, Charles (II) Babe 1995 -Bartlett, Charles (II) Happy Feet 2006 -Garcia, José (I) La vérité si je mens! 2 2001 -Garcia, José (I) Astérix aux jeux olympiques 2008 -Garcia, José (I) La vérité si je mens 1997 -Ford Davies, Oliver Star Wars: Episode III - Revenge of the Sith 2005 -Ford Davies, Oliver Johnny English 2003 -Ford Davies, Oliver Star Wars: Episode II - Attack of the Clones 2002 -Ford Davies, Oliver Star Wars: Episode I - The Phantom Menace 1999 -Milhoan, Michael Phenomenon 1996 -Milhoan, Michael Collateral Damage 2002 -Milhoan, Michael She's All That 1999 -Milhoan, Michael Tin Cup 1996 -Milhoan, Michael Pearl Harbor 2001 -Milhoan, Michael The Lost World: Jurassic Park 1997 -Yee, Nancy (I) Disclosure 1994 -Yee, Nancy (I) Enemy of the State 1998 -Yee, Nancy (I) Kiss the Girls 1997 -Travis, Stacey (I) Intolerable Cruelty 2003 -Travis, Stacey (I) Easy A 2010 -Travis, Stacey (I) Bandits 2001 -Travis, Stacey (I) Fun with Dick and Jane 2005 -Travis, Stacey (I) Traffic 2000 -Kamiki, Ryûnosuke Kari-gurashi no Arietti 2010 -Kamiki, Ryûnosuke La marche de l'empereur 2005 -Kamiki, Ryûnosuke Sen to Chihiro no kamikakushi 2001 -Kamiki, Ryûnosuke Hauru no ugoku shiro 2004 -Palermo, Chris (III) The Game Plan 2007 -Palermo, Chris (III) Paul Blart: Mall Cop 2009 -Palermo, Chris (III) 21 2008 -Palermo, Chris (III) The Town 2010 -Palermo, Chris (III) Ghosts of Girlfriends Past 2009 -Palermo, Chris (III) 27 Dresses 2008 -Palermo, Chris (III) Grown Ups 2010 -Fox, Matthew (I) We Are Marshall 2006 -Fox, Matthew (I) Speed Racer 2008 -Fox, Matthew (I) Vantage Point 2008 -Valentine, Steve (I) Spider-Man 3 2007 -Valentine, Steve (I) Mars Attacks! 1996 -Valentine, Steve (I) Clash of the Titans 2010 -Valentine, Steve (I) A Christmas Carol 2009 -Cravens, Rutherford RoboCop 2 1990 -Cravens, Rutherford Friday Night Lights 2004 -Cravens, Rutherford No Country for Old Men 2007 -Henriksen, Lance The Terminator 1984 -Henriksen, Lance Aliens 1986 -Henriksen, Lance Close Encounters of the Third Kind 1977 -Henriksen, Lance Tarzan 1999 -Henriksen, Lance AVP: Alien vs. Predator 2004 -Henriksen, Lance Scream 3 2000 -Henriksen, Lance Alien³ 1992 -Gordon, André Like Mike 2002 -Gordon, André S.W.A.T. 2003 -Gordon, André Daredevil 2003 -Gordon, André Old School 2003 -Moore, Mandy (II) Dr. Dolittle 2 2001 -Moore, Mandy (II) License to Wed 2007 -Moore, Mandy (II) A Walk to Remember 2002 -Moore, Mandy (II) The Princess Diaries 2001 -Moore, Mandy (II) Racing Stripes 2005 -Cranston, Bryan John Carter 2012 -Cranston, Bryan Little Miss Sunshine 2006 -Cranston, Bryan Magnificent Desolation: Walking on the Moon 3D 2005 -Cranston, Bryan Larry Crowne 2011 -Cranston, Bryan Madagascar 3: Europe's Most Wanted 2012 -Cranston, Bryan Contagion 2011 -Cranston, Bryan Red Tails 2012 -Cranston, Bryan The Lincoln Lawyer 2011 -Cranston, Bryan Saving Private Ryan 1998 -Cranston, Bryan Drive 2011 -Martin, Andrea (I) The Rugrats Movie 1998 -Martin, Andrea (I) Recess: School's Out 2001 -Martin, Andrea (I) Wag the Dog 1997 -Martin, Andrea (I) Anastasia 1997 -Martin, Andrea (I) My Big Fat Greek Wedding 2002 -Martin, Andrea (I) Jimmy Neutron: Boy Genius 2001 -Hicks, Dwight Jack 1996 -Hicks, Dwight The Rock 1996 -Hicks, Dwight Armageddon 1998 -Madson, Shaw Snow Dogs 2002 -Madson, Shaw The A-Team 2010 -Madson, Shaw TRON: Legacy 2010 -Tarantina, Brian Donnie Brasco 1997 -Tarantina, Brian The Brave One 2007 -Tarantina, Brian The Talented Mr. Ripley 1999 -Tarantina, Brian Knight and Day 2010 -Finlay, Sandi Star Wars: Episode III - Revenge of the Sith 2005 -Finlay, Sandi Moulin Rouge! 2001 -Finlay, Sandi Star Wars: Episode II - Attack of the Clones 2002 -Durso, Sue The Break-Up 2006 -Durso, Sue The Lake House 2006 -Durso, Sue Ocean's Twelve 2004 -Sullivan, Erik Per The Cider House Rules 1999 -Sullivan, Erik Per Christmas with the Kranks 2004 -Sullivan, Erik Per Unfaithful 2002 -Sullivan, Erik Per Armageddon 1998 -Sullivan, Erik Per Finding Nemo 2003 -Jerova, Lea Die Another Day 2002 -Jerova, Lea The World Is Not Enough 1999 -Jerova, Lea The Phantom of the Opera 2004 -Stef'Ano, Tony Casper 1995 -Stef'Ano, Tony Charlie's Angels 2000 -Stef'Ano, Tony Gran Torino 2008 -Stef'Ano, Tony X-Men: The Last Stand 2006 -Stone, Benjamin (II) Harry Potter and the Sorcerer's Stone 2001 -Stone, Benjamin (II) Harry Potter and the Prisoner of Azkaban 2004 -Stone, Benjamin (II) Harry Potter and the Chamber of Secrets 2002 -Adkins, Scott (II) The Bourne Ultimatum 2007 -Adkins, Scott (II) The Pink Panther 2006 -Adkins, Scott (II) X-Men Origins: Wolverine 2009 -Travolta, John Phenomenon 1996 -Travolta, John Wild Hogs 2007 -Travolta, John Michael 1996 -Travolta, John Saturday Night Fever 1977 -Travolta, John Hairspray 2007 -Travolta, John Grease 1978 -Travolta, John Primary Colors 1998 -Travolta, John Pulp Fiction 1994 -Travolta, John The Thin Red Line 1998 -Travolta, John Swordfish 2001 -Travolta, John A Civil Action 1998 -Travolta, John Magnificent Desolation: Walking on the Moon 3D 2005 -Travolta, John Look Who's Talking 1989 -Travolta, John Austin Powers in Goldmember 2002 -Travolta, John Domestic Disturbance 2001 -Travolta, John The General's Daughter 1999 -Travolta, John Face/Off 1997 -Travolta, John Bolt 2008 -Travolta, John Ladder 49 2004 -Travolta, John The Taking of Pelham 1 2 3 2009 -Kelly, Michael (V) Unbreakable 2000 -Kelly, Michael (V) The Adjustment Bureau 2011 -Kelly, Michael (V) Law Abiding Citizen 2009 -Kelly, Michael (V) Changeling 2008 -Kelly, Michael (V) Invincible 2006 -Kelly, Michael (V) Dawn of the Dead 2004 -Craig, Daniel (I) Road to Perdition 2002 -Craig, Daniel (I) Lara Croft: Tomb Raider 2001 -Craig, Daniel (I) Sorstalanság 2005 -Craig, Daniel (I) Casino Royale 2006 -Craig, Daniel (I) Elizabeth 1998 -Craig, Daniel (I) Cowboys & Aliens 2011 -Craig, Daniel (I) The Girl with the Dragon Tattoo 2011 -Craig, Daniel (I) Quantum of Solace 2008 -Craig, Daniel (I) The Adventures of Tintin 2011 -Craig, Daniel (I) Munich 2005 -Craig, Daniel (I) The Golden Compass 2007 -Hall, Albert (I) Apocalypse Now 1979 -Hall, Albert (I) Courage Under Fire 1996 -Hall, Albert (I) National Treasure: Book of Secrets 2007 -Hall, Albert (I) Malcolm X 1992 -Hall, Albert (I) Ali 2001 -Vaina, Chris Salt 2010 -Vaina, Chris The Avengers 2012 -Vaina, Chris The Amazing Spider-Man 2012 -Yonamine, Ace Memoirs of a Geisha 2005 -Yonamine, Ace The Replacements 2000 -Yonamine, Ace Lara Croft Tomb Raider: The Cradle of Life 2003 -Chalupa, Václav The Brothers Grimm 2005 -Chalupa, Václav Hannibal Rising 2007 -Chalupa, Václav xXx 2002 -Jones Jr., Roy The Matrix Reloaded 2003 -Jones Jr., Roy Little Fockers 2010 -Jones Jr., Roy The Devil's Advocate 1997 -Jones Jr., Roy The Fighter 2010 -Alazraqui, Carlos Happy Feet Two 2011 -Alazraqui, Carlos Hauru no ugoku shiro 2004 -Alazraqui, Carlos A Bug's Life 1998 -Alazraqui, Carlos Jimmy Neutron: Boy Genius 2001 -Alazraqui, Carlos The SpongeBob SquarePants Movie 2004 -Alazraqui, Carlos Space Chimps 2008 -Alazraqui, Carlos Gake no ue no Ponyo 2008 -Alazraqui, Carlos Open Season 2006 -Alazraqui, Carlos Cats & Dogs: The Revenge of Kitty Galore 2010 -Alazraqui, Carlos Happy Feet 2006 -Alazraqui, Carlos Toy Story 3 2010 -Evan, Kimberly Evan Almighty 2007 -Evan, Kimberly The Thomas Crown Affair 1999 -Evan, Kimberly Thor 2011 -Brown, Ralph (I) Amistad 1997 -Brown, Ralph (I) Star Wars: Episode I - The Phantom Menace 1999 -Brown, Ralph (I) Alien³ 1992 -Brown, Ralph (I) Exorcist: The Beginning 2004 -Augustine, Leslie J. Edgar 2011 -Augustine, Leslie The Curious Case of Benjamin Button 2008 -Augustine, Leslie Star Trek 2009 -Mollà, Jordi Knight and Day 2010 -Mollà, Jordi Blow 2001 -Mollà, Jordi Bad Boys II 2003 -Christy, George Die Hard 1988 -Christy, George Outbreak 1995 -Christy, George Se7en 1995 -Christy, George The Thomas Crown Affair 1999 -Christy, George Domestic Disturbance 2001 -McLaughlin, Jake Super 8 2011 -McLaughlin, Jake Safe House 2012 -McLaughlin, Jake The Day the Earth Stood Still 2008 -McLaughlin, Jake Cloverfield 2008 -McCauley, James The Manchurian Candidate 2004 -McCauley, James I Am Legend 2007 -McCauley, James The Jackal 1997 -McCauley, James Donnie Brasco 1997 -Scott, John-Clay Bandits 2001 -Scott, John-Clay The Fugitive 1993 -Scott, John-Clay Austin Powers: International Man of Mystery 1997 -LaPaglia, Anthony Legend of the Guardians: The Owls of Ga'Hoole 2010 -LaPaglia, Anthony Happy Feet 2006 -LaPaglia, Anthony Happy Feet Two 2011 -LaPaglia, Anthony Autumn in New York 2000 -Duchovny, David The X Files 1998 -Duchovny, David Zoolander 2001 -Duchovny, David Evolution 2001 -Duchovny, David Return to Me 2000 -Duchovny, David The X Files: I Want to Believe 2008 -Fortag, Sonje Happy Feet 2006 -Fortag, Sonje Beowulf 2007 -Fortag, Sonje A Christmas Carol 2009 -Fortag, Sonje The Adventures of Tintin 2011 -Cedric the Entertainer Lemony Snicket's A Series of Unfortunate Events 2004 -Cedric the Entertainer Madagascar 3: Europe's Most Wanted 2012 -Cedric the Entertainer Intolerable Cruelty 2003 -Cedric the Entertainer Big Momma's House 2000 -Cedric the Entertainer Johnson Family Vacation 2004 -Cedric the Entertainer Barbershop 2: Back in Business 2004 -Cedric the Entertainer Charlotte's Web 2006 -Cedric the Entertainer Madagascar 2005 -Cedric the Entertainer Madagascar: Escape 2 Africa 2008 -Cedric the Entertainer Barbershop 2002 -Cedric the Entertainer Larry Crowne 2011 -Cedric the Entertainer Dr. Dolittle 2 2001 -Cedric the Entertainer Ice Age 2002 -Harvie, Ellie The Cabin in the Woods 2011 -Harvie, Ellie Space Chimps 2008 -Harvie, Ellie The 6th Day 2000 -Harvie, Ellie Miracle 2004 -Jerome-Clayton, Whayne The Wedding Planner 2001 -Jerome-Clayton, Whayne Bedazzled 2000 -Jerome-Clayton, Whayne Bicentennial Man 1999 -Jerome-Clayton, Whayne Bringing Down the House 2003 -Penn, Richard (I) Inspector Gadget 1999 -Penn, Richard (I) Volcano 1997 -Penn, Richard (I) Doctor Dolittle 1998 -Penn, Richard (I) The Secret Life of Bees 2008 -Penn, Richard (I) Final Fantasy: The Spirits Within 2001 -Smith, Robert (XVIII) Cinderella Man 2005 -Smith, Robert (XVIII) Chicago 2002 -Smith, Robert (XVIII) CyberWorld 2000 -Moore, John (VIII) White Chicks 2004 -Moore, John (VIII) Dreamcatcher 2003 -Moore, John (VIII) Pitch Black 2000 -Jurgensen, Randy Superman 1978 -Jurgensen, Randy Donnie Brasco 1997 -Jurgensen, Randy The Godfather 1972 -Helmuth, Evan Garfield 2004 -Helmuth, Evan The Devil Inside 2012 -Helmuth, Evan Fever Pitch 2005 -Grace, Topher Mona Lisa Smile 2003 -Grace, Topher Spider-Man 3 2007 -Grace, Topher Traffic 2000 -Grace, Topher Ocean's Twelve 2004 -Grace, Topher Pinocchio 2002 -Grace, Topher Predators 2010 -Grace, Topher Ocean's Eleven 2001 -Harvey, Steve (I) Madea Goes to Jail 2009 -Harvey, Steve (I) Think Like a Man 2012 -Harvey, Steve (I) Racing Stripes 2005 -Harvey, Steve (I) Johnson Family Vacation 2004 -Bonfils, Khan Lara Croft Tomb Raider: The Cradle of Life 2003 -Bonfils, Khan Sky Captain and the World of Tomorrow 2004 -Bonfils, Khan Star Wars: Episode I - The Phantom Menace 1999 -Bonfils, Khan Star Wars: Episode II - Attack of the Clones 2002 -Bonfils, Khan Batman Begins 2005 -Kaling, Mindy License to Wed 2007 -Kaling, Mindy The 40 Year Old Virgin 2005 -Kaling, Mindy Night at the Museum: Battle of the Smithsonian 2009 -Kaling, Mindy No Strings Attached 2011 -Kaling, Mindy Despicable Me 2010 -Howard, Rance Money Talks 1997 -Howard, Rance Angels & Demons 2009 -Howard, Rance Universal Soldier 1992 -Howard, Rance How the Grinch Stole Christmas 2000 -Howard, Rance Cinderella Man 2005 -Howard, Rance Small Soldiers 1998 -Howard, Rance Apollo 13 1995 -Howard, Rance Gung Ho 1986 -Howard, Rance Independence Day 1996 -Howard, Rance A Beautiful Mind 2001 -Howard, Rance Mars Attacks! 1996 -Howard, Rance Rat Race 2001 -Gidcomb, Johnny Rio 2011 -Gidcomb, Johnny Garfield: A Tail of Two Kitties 2006 -Gidcomb, Johnny Eragon 2006 -Kennedy, Patrick (IV) War Horse 2011 -Kennedy, Patrick (IV) Munich 2005 -Kennedy, Patrick (IV) Atonement 2007 -Kennedy, Patrick (IV) Pirates of the Caribbean: On Stranger Tides 2011 -Molina, Alfred Chocolat 2000 -Molina, Alfred The Da Vinci Code 2006 -Molina, Alfred Spider-Man 2 2004 -Molina, Alfred Prince of Persia: The Sands of Time 2010 -Molina, Alfred The Sorcerer's Apprentice 2010 -Molina, Alfred Frida 2002 -Molina, Alfred Magnolia 1999 -Molina, Alfred Rango 2011 -Molina, Alfred Identity 2003 -Molina, Alfred Boogie Nights 1997 -Whyte, Joe Chicken Little 2005 -Whyte, Joe The Sum of All Fears 2002 -Whyte, Joe Meet the Robinsons 2007 -Whyte, Joe The Emperor's New Groove 2000 -Whyte, Joe Tarzan 1999 -Whyte, Joe Bolt 2008 -Whyte, Joe The Princess and the Frog 2009 -Whyte, Joe Home on the Range 2004 -Bohne, Bruce Patch Adams 1998 -Bohne, Bruce Jingle All the Way 1996 -Bohne, Bruce Dawn of the Dead 2004 -Bohne, Bruce Fargo 1996 -Angel, Jack (I) Horton Hears a Who! 2008 -Angel, Jack (I) Toy Story 3 2010 -Angel, Jack (I) Toy Story 2 1999 -Angel, Jack (I) The Little Mermaid 1989 -Angel, Jack (I) Ice Age: The Meltdown 2006 -Angel, Jack (I) Hercules 1997 -Angel, Jack (I) Monsters, Inc. 2001 -Angel, Jack (I) Sen to Chihiro no kamikakushi 2001 -Angel, Jack (I) Tarzan 1999 -Angel, Jack (I) Who Framed Roger Rabbit 1988 -Angel, Jack (I) Treasure Planet 2002 -Angel, Jack (I) Cars 2006 -Angel, Jack (I) The Hunchback of Notre Dame 1996 -Angel, Jack (I) Pirates of the Caribbean: At World's End 2007 -Angel, Jack (I) A Bug's Life 1998 -Angel, Jack (I) Lilo & Stitch 2002 -Angel, Jack (I) Artificial Intelligence: AI 2001 -Angel, Jack (I) Beauty and the Beast 1991 -Angel, Jack (I) Aladdin 1992 -Angel, Jack (I) Toy Story 1995 -Angel, Jack (I) The Lorax 2012 -Redford, Robert (I) Indecent Proposal 1993 -Redford, Robert (I) Charlotte's Web 2006 -Redford, Robert (I) The Horse Whisperer 1998 -Redford, Robert (I) Spy Game 2001 -Redford, Robert (I) The Natural 1984 -Graves, Richard (V) Law Abiding Citizen 2009 -Graves, Richard (V) The Happening 2008 -Graves, Richard (V) Marley & Me 2008 -Carey, Helen (I) Black Knight 2001 -Carey, Helen (I) 21 2008 -Carey, Helen (I) Julie & Julia 2009 -Macleod, Lewis Harry Potter and the Goblet of Fire 2005 -Macleod, Lewis Harry Potter and the Prisoner of Azkaban 2004 -Macleod, Lewis Harry Potter and the Sorcerer's Stone 2001 -Macleod, Lewis Planet 51 2009 -Macleod, Lewis Harry Potter and the Chamber of Secrets 2002 -Macleod, Lewis Star Wars: Episode I - The Phantom Menace 1999 -Macleod, Lewis Harry Potter and the Order of the Phoenix 2007 -Rivera, Emilio (I) Collateral 2004 -Rivera, Emilio (I) The Cable Guy 1996 -Rivera, Emilio (I) High Crimes 2002 -Rivera, Emilio (I) Fun with Dick and Jane 2005 -Rivera, Emilio (I) Con Air 1997 -Rivera, Emilio (I) Bruce Almighty 2003 -Rivera, Emilio (I) Spider-Man 3 2007 -Rivera, Emilio (I) Traffic 2000 -Rivera, Emilio (I) Act of Valor 2012 -McIntyre, Betsy Wedding Crashers 2005 -McIntyre, Betsy The Ring Two 2005 -McIntyre, Betsy Lemony Snicket's A Series of Unfortunate Events 2004 -Serpico, Terry Hannibal 2001 -Serpico, Terry Frequency 2000 -Serpico, Terry The Peacemaker 1997 -Serpico, Terry The Departed 2006 -Serpico, Terry Michael Clayton 2007 -Serpico, Terry Righteous Kill 2008 -Serpico, Terry Cop Land 1997 -Serpico, Terry Donnie Brasco 1997 -Serpico, Terry The Interpreter 2005 -Bravo, Michael Wild Hogs 2007 -Bravo, Michael The Hangover 2009 -Bravo, Michael Get Him to the Greek 2010 -Bravo, Michael Miss Congeniality 2: Armed and Fabulous 2005 -Bravo, Michael Ocean's Thirteen 2007 -Morissen, Alex Mortal Kombat 1995 -Morissen, Alex Swordfish 2001 -Morissen, Alex Austin Powers: International Man of Mystery 1997 -Morissen, Alex Artificial Intelligence: AI 2001 -Arenberg, Lee Pirates of the Caribbean: At World's End 2007 -Arenberg, Lee Pirates of the Caribbean: Dead Man's Chest 2006 -Arenberg, Lee Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Arenberg, Lee Waterworld 1995 -Vooren, Gerrit (I) K-19: The Widowmaker 2002 -Vooren, Gerrit (I) A Perfect Murder 1998 -Vooren, Gerrit (I) Die Hard: With a Vengeance 1995 -Davalos, Alexa The Chronicles of Riddick 2004 -Davalos, Alexa Clash of the Titans 2010 -Davalos, Alexa The Mist 2007 -Tucker, Burnell Star Wars: Episode V - The Empire Strikes Back 1980 -Tucker, Burnell U-571 2000 -Tucker, Burnell Star Wars 1977 -Tucker, Burnell Superman II 1980 -Tucker, Burnell Superman 1978 -Gordon, Zachary Diary of a Wimpy Kid 2010 -Gordon, Zachary Four Christmases 2008 -Gordon, Zachary National Treasure: Book of Secrets 2007 -Gordon, Zachary Madagascar: Escape 2 Africa 2008 -Gordon, Zachary Diary of a Wimpy Kid: Rodrick Rules 2011 -Ivey, Dana Sleepless in Seattle 1993 -Ivey, Dana The Help 2011 -Ivey, Dana Legally Blonde 2: Red, White & Blonde 2003 -Ivey, Dana Home Alone 2: Lost in New York 1992 -Ivey, Dana The Kid 2000 -Ivey, Dana Two Weeks Notice 2002 -Ivey, Dana Rush Hour 3 2007 -Hewett, Christine Die Another Day 2002 -Hewett, Christine Bridget Jones's Diary 2001 -Hewett, Christine Who Framed Roger Rabbit 1988 -Hewett, Christine Four Weddings and a Funeral 1994 -Hewett, Christine Star Wars 1977 -Villanova, Kimberly Invincible 2006 -Villanova, Kimberly The Happening 2008 -Villanova, Kimberly Rocky Balboa 2006 -Azaria, Hank Godzilla 1998 -Azaria, Hank Hop 2011 -Azaria, Hank Night at the Museum: Battle of the Smithsonian 2009 -Azaria, Hank The Birdcage 1996 -Azaria, Hank The Smurfs 2011 -Azaria, Hank Anastasia 1997 -Azaria, Hank Pretty Woman 1990 -Azaria, Hank Heat 1995 -Azaria, Hank Happy Feet Two 2011 -Azaria, Hank America's Sweethearts 2001 -Azaria, Hank The Simpsons Movie 2007 -Azaria, Hank CyberWorld 2000 -Azaria, Hank Along Came Polly 2004 -Azaria, Hank Dodgeball: A True Underdog Story 2004 -Lansbury, Angela Mr. Popper's Penguins 2011 -Lansbury, Angela Nanny McPhee 2005 -Lansbury, Angela Fantasia/2000 1999 -Lansbury, Angela Anastasia 1997 -Lansbury, Angela Beauty and the Beast 1991 -Lansbury, Angela About Schmidt 2002 -Yelchin, Anton Along Came a Spider 2001 -Yelchin, Anton Star Trek 2009 -Yelchin, Anton Terminator Salvation 2009 -Yelchin, Anton The Smurfs 2011 -Bragg, Erik The Princess Diaries 2001 -Bragg, Erik Raising Helen 2004 -Bragg, Erik The Princess Diaries 2: Royal Engagement 2004 -James, Arden Deep Impact 1998 -James, Arden Mighty Joe Young 1998 -James, Arden Halloween H20: 20 Years Later 1998 -Hounsou, Djimon Amistad 1997 -Hounsou, Djimon The Island 2005 -Hounsou, Djimon Eragon 2006 -Hounsou, Djimon Push 2009 -Hounsou, Djimon Gladiator 2000 -Hounsou, Djimon Lara Croft Tomb Raider: The Cradle of Life 2003 -Hounsou, Djimon Stargate 1994 -Hounsou, Djimon Constantine 2005 -Hounsou, Djimon Blood Diamond 2006 -Cusack, Ann (I) The Birdcage 1996 -Cusack, Ann (I) America's Sweethearts 2001 -Cusack, Ann (I) Stigmata 1999 -Joseph, Daniel (I) Epic Movie 2007 -Joseph, Daniel (I) Fever Pitch 2005 -Joseph, Daniel (I) In & Out 1997 -Burrows, Carl (I) Ransom 1996 -Burrows, Carl (I) The Good Shepherd 2006 -Burrows, Carl (I) One Fine Day 1996 -Burrows, Carl (I) The Devil Wears Prada 2006 -Miller, Jeanette (I) Austin Powers: The Spy Who Shagged Me 1999 -Miller, Jeanette (I) Legion 2009 -Miller, Jeanette (I) Four Christmases 2008 -Miller, Jeanette (I) Norbit 2007 -Miller, Jeanette (I) The Truman Show 1998 -Caplan, Lizzy Mean Girls 2004 -Caplan, Lizzy Cloverfield 2008 -Caplan, Lizzy Hot Tub Time Machine 2010 -Capron, Robert Diary of a Wimpy Kid: Rodrick Rules 2011 -Capron, Robert Bride Wars 2009 -Capron, Robert The Sorcerer's Apprentice 2010 -Capron, Robert Diary of a Wimpy Kid 2010 -Capron, Robert The Three Stooges 2012 -Nicholas, Thomas Ian American Wedding 2003 -Nicholas, Thomas Ian American Reunion 2012 -Nicholas, Thomas Ian American Pie 1999 -Nicholas, Thomas Ian American Pie 2 2001 -Blumenthal, George (I) A Perfect Murder 1998 -Blumenthal, George (I) Traffic 2000 -Blumenthal, George (I) Wall Street 1987 -Blumenthal, George (I) Wall Street: Money Never Sleeps 2010 -Hemsworth, Liam The Last Song 2010 -Hemsworth, Liam The Hunger Games 2012 -Hemsworth, Liam Knowing 2009 -Giarraputo, Michael Little Nicky 2000 -Giarraputo, Michael Big Daddy 1999 -Giarraputo, Michael The Waterboy 1998 -O'Bryan, Sean Phenomenon 1996 -O'Bryan, Sean The Princess Diaries 2001 -O'Bryan, Sean New Year's Eve 2011 -O'Bryan, Sean Mission: Impossible III 2006 -O'Bryan, Sean The Princess Diaries 2: Royal Engagement 2004 -O'Bryan, Sean Vantage Point 2008 -O'Bryan, Sean Yes Man 2008 -O'Bryan, Sean Raising Helen 2004 -McCoy, Sandra Scooby-Doo 2002 -McCoy, Sandra Like Mike 2002 -McCoy, Sandra The Hot Chick 2002 -McCoy, Sandra A Cinderella Story 2004 -Thomas, Alexana Fun with Dick and Jane 2005 -Thomas, Alexana Ocean's Thirteen 2007 -Thomas, Alexana Good Night, and Good Luck. 2005 -Cervantes, Gary Carlos Volcano 1997 -Cervantes, Gary Carlos The Ring 2002 -Cervantes, Gary Carlos Beverly Hills Cop II 1987 -Cervantes, Gary Carlos Wild Wild West 1999 -Cervantes, Gary Carlos Traffic 2000 -Spielberg, Steven Vanilla Sky 2001 -Spielberg, Steven Indiana Jones and the Temple of Doom 1984 -Spielberg, Steven Jaws 1975 -Spielberg, Steven Men in Black 1997 -Spielberg, Steven The Queen 2006 -Spielberg, Steven Austin Powers in Goldmember 2002 -Spielberg, Steven The Lost World: Jurassic Park 1997 -Gregg, Clark Mr. Popper's Penguins 2011 -Gregg, Clark Clear and Present Danger 1994 -Gregg, Clark The Avengers 2012 -Gregg, Clark Magnolia 1999 -Gregg, Clark One Hour Photo 2002 -Gregg, Clark Artificial Intelligence: AI 2001 -Gregg, Clark We Were Soldiers 2002 -Gregg, Clark 500) Days of Summer 2009 -Gregg, Clark Iron Man 2 2010 -Gregg, Clark Thor 2011 -Pereira, Evelina Friends with Benefits 2011 -Pereira, Evelina Ocean's Thirteen 2007 -Pereira, Evelina Rush Hour 3 2007 -Spindel, Tyler Jack and Jill 2011 -Spindel, Tyler You Don't Mess with the Zohan 2008 -Spindel, Tyler Funny People 2009 -Spindel, Tyler Paul Blart: Mall Cop 2009 -Moreno, Belita Diary of a Wimpy Kid 2010 -Moreno, Belita Clear and Present Danger 1994 -Moreno, Belita Diary of a Wimpy Kid: Rodrick Rules 2011 -Farmiga, Vera Autumn in New York 2000 -Farmiga, Vera The Manchurian Candidate 2004 -Farmiga, Vera Source Code 2011 -Farmiga, Vera The Departed 2006 -Farmiga, Vera Safe House 2012 -Rees, Norman Campbell U-571 2000 -Rees, Norman Campbell V for Vendetta 2005 -Rees, Norman Campbell Black Hawk Down 2001 -Rees, Norman Campbell Johnny English 2003 -Rees, Norman Campbell Sweeney Todd: The Demon Barber of Fleet Street 2007 -Rees, Norman Campbell Gladiator 2000 -Rees, Norman Campbell The Da Vinci Code 2006 -Pettiford, Valarie Why Did I Get Married Too? 2010 -Pettiford, Valarie Stomp the Yard 2007 -Pettiford, Valarie Like Mike 2002 -Ortlieb, Jim Running Scared 1986 -Ortlieb, Jim Home Alone 1990 -Ortlieb, Jim Contagion 2011 -Ortlieb, Jim Magnolia 1999 -Sobolov, David Shark Tale 2004 -Sobolov, David Spider-Man 2 2004 -Sobolov, David Fantastic Four 2005 -Holley, Brandon G. 17 Again 2009 -Holley, Brandon G. Pineapple Express 2008 -Holley, Brandon G. Cloverfield 2008 -Queroli, Joseph Invincible 2006 -Queroli, Joseph Limitless 2011 -Queroli, Joseph In Her Shoes 2005 -Bucaro III, Joe Underdog 2007 -Bucaro III, Joe Bad Santa 2003 -Bucaro III, Joe Drive 2011 -Bucaro III, Joe S.W.A.T. 2003 -Bucaro III, Joe Coyote Ugly 2000 -Bucaro III, Joe The Island 2005 -Bucaro III, Joe Zathura: A Space Adventure 2005 -Bucaro III, Joe xXx 2002 -Boyd, Susan (II) Mulan 1998 -Boyd, Susan (II) The Little Mermaid 1989 -Boyd, Susan (II) Over the Hedge 2006 -Carr, Jane (II) Blue Streak 1999 -Carr, Jane (II) Austin Powers: The Spy Who Shagged Me 1999 -Carr, Jane (II) Treasure Planet 2002 -Carr, Jane (II) Hannah Montana: The Movie 2009 -Carr, Jane (II) Garfield: A Tail of Two Kitties 2006 -Carr, Jane (II) The Da Vinci Code 2006 -Fischler, Patrick Twister 1996 -Fischler, Patrick Dinner for Schmucks 2010 -Fischler, Patrick Speed 1994 -Fischler, Patrick Something's Gotta Give 2003 -Fischler, Patrick Old School 2003 -Frewer, Matt Hercules 1997 -Frewer, Matt Watchmen 2009 -Frewer, Matt Dawn of the Dead 2004 -Frewer, Matt CyberWorld 2000 -Frewer, Matt Spies Like Us 1985 -Midler, Bette Down and Out in Beverly Hills 1986 -Midler, Bette Fantasia/2000 1999 -Midler, Bette What Women Want 2000 -Midler, Bette Cats & Dogs: The Revenge of Kitty Galore 2010 -Midler, Bette The Stepford Wives 2004 -Midler, Bette Ruthless People 1986 -Midler, Bette The First Wives Club 1996 -Stanton, Stephen The Incredible Hulk 2008 -Stanton, Stephen Spider-Man 3 2007 -Stanton, Stephen The Green Hornet 2011 -Stanton, Stephen Madagascar 2005 -Stanton, Stephen Pirates of the Caribbean: At World's End 2007 -Stanton, Stephen Madagascar: Escape 2 Africa 2008 -Stanton, Stephen The Lord of the Rings: The Return of the King 2003 -Stanton, Stephen Secretariat 2010 -Stanton, Stephen Over the Hedge 2006 -Notary, Terry The Cabin in the Woods 2011 -Notary, Terry Rise of the Planet of the Apes 2011 -Notary, Terry Avatar 2009 -Kagan, Elaine Coming to America 1988 -Kagan, Elaine Traffic 2000 -Kagan, Elaine Absolute Power 1997 -Hawe, Mackenzie The Game Plan 2007 -Hawe, Mackenzie Shutter Island 2010 -Hawe, Mackenzie Mystic River 2003 -Hawe, Mackenzie The Departed 2006 -Hawe, Mackenzie Underdog 2007 -Hawe, Mackenzie Zookeeper 2011 -Hawe, Mackenzie Bride Wars 2009 -Hawe, Mackenzie Grown Ups 2010 -Gadot, Gal Date Night 2010 -Gadot, Gal Fast & Furious 2009 -Gadot, Gal Fast Five 2011 -Gadot, Gal Knight and Day 2010 -Flynn, Jackie (I) Me, Myself & Irene 2000 -Flynn, Jackie (I) The Three Stooges 2012 -Flynn, Jackie (I) The Game Plan 2007 -Flynn, Jackie (I) Paul Blart: Mall Cop 2009 -Flynn, Jackie (I) The Heartbreak Kid 2007 -Flynn, Jackie (I) There's Something About Mary 1998 -Flynn, Jackie (I) Shallow Hal 2001 -Rooker, Michael (I) The 6th Day 2000 -Rooker, Michael (I) JFK 1991 -Rooker, Michael (I) Jumper 2008 -Rooker, Michael (I) The Bone Collector 1999 -Rooker, Michael (I) Cliffhanger 1993 -Veizaga, Juan Pablo Evan Almighty 2007 -Veizaga, Juan Pablo Eagle Eye 2008 -Veizaga, Juan Pablo Body of Lies 2008 -Stern, January Contagion 2011 -Stern, January The Lake House 2006 -Stern, January The Break-Up 2006 -Urban, Karl The Chronicles of Riddick 2004 -Urban, Karl The Bourne Supremacy 2004 -Urban, Karl Star Trek 2009 -Urban, Karl Ghost Ship 2002 -Urban, Karl The Lord of the Rings: The Two Towers 2002 -Urban, Karl The Lord of the Rings: The Return of the King 2003 -Friedlander, Judah Meet the Parents 2000 -Friedlander, Judah Along Came Polly 2004 -Friedlander, Judah Starsky & Hutch 2004 -Friedlander, Judah Date Movie 2006 -Friedlander, Judah Rio 2011 -Friedlander, Judah Showtime 2002 -Friedlander, Judah Zoolander 2001 -Friedlander, Judah Old School 2003 -Mercurio, Tara Dr. Dolittle 2 2001 -Mercurio, Tara Daddy Day Care 2003 -Mercurio, Tara Are We Done Yet? 2007 -Boothe, Powers Men of Honor 2000 -Boothe, Powers The Avengers 2012 -Boothe, Powers Sin City 2005 -Boothe, Powers Con Air 1997 -Henke, Brad William Gone in Sixty Seconds 2000 -Henke, Brad William Star Trek 2009 -Henke, Brad William Space Jam 1996 -Henke, Brad William Must Love Dogs 2005 -Henke, Brad William World Trade Center 2006 -Sweeney, D.B. Hard Ball 2001 -Sweeney, D.B. Brother Bear 2003 -Sweeney, D.B. Dinosaur 2000 -Sweeney, D.B. Spawn 1997 -Mullan, Kathleen Pearl Harbor 2001 -Mullan, Kathleen Fantastic Four 2005 -Mullan, Kathleen Blow 2001 -Reeves, Keanu Speed 1994 -Reeves, Keanu Hard Ball 2001 -Reeves, Keanu The Lake House 2006 -Reeves, Keanu The Matrix Reloaded 2003 -Reeves, Keanu Dracula 1992 -Reeves, Keanu The Matrix Revolutions 2003 -Reeves, Keanu The Devil's Advocate 1997 -Reeves, Keanu The Day the Earth Stood Still 2008 -Reeves, Keanu The Matrix 1999 -Reeves, Keanu Something's Gotta Give 2003 -Reeves, Keanu The Replacements 2000 -Reeves, Keanu Constantine 2005 -Williams, Billy Dee Star Wars: Episode V - The Empire Strikes Back 1980 -Williams, Billy Dee Batman 1989 -Williams, Billy Dee Star Wars: Episode VI - Return of the Jedi 1983 -Cyrus, Miley Justin Bieber: Never Say Never 2011 -Cyrus, Miley Bolt 2008 -Cyrus, Miley Hannah Montana: The Movie 2009 -Cyrus, Miley Sex and the City 2 2010 -Cyrus, Miley Big Fish 2003 -Cyrus, Miley Hannah Montana & Miley Cyrus: Best of Both Worlds Concert 2008 -Cyrus, Miley The Last Song 2010 -Woods, James (I) Hercules 1997 -Woods, James (I) Final Fantasy: The Spirits Within 2001 -Woods, James (I) Recess: School's Out 2001 -Woods, James (I) Stuart Little 2 2002 -Woods, James (I) John Q 2002 -Woods, James (I) Any Given Sunday 1999 -Woods, James (I) Scary Movie 2 2001 -Woods, James (I) Contact 1997 -Woods, James (I) The General's Daughter 1999 -Woods, James (I) Surf's Up 2007 -Douglas, Michael (I) The Ghost and the Darkness 1996 -Douglas, Michael (I) Disclosure 1994 -Douglas, Michael (I) The Game 1997 -Douglas, Michael (I) Wall Street 1987 -Douglas, Michael (I) Wonder Boys 2000 -Douglas, Michael (I) Don't Say a Word 2001 -Douglas, Michael (I) The Jewel of the Nile 1985 -Douglas, Michael (I) Basic Instinct 1992 -Douglas, Michael (I) A Perfect Murder 1998 -Douglas, Michael (I) You, Me and Dupree 2006 -Douglas, Michael (I) Romancing the Stone 1984 -Douglas, Michael (I) Traffic 2000 -Douglas, Michael (I) Wall Street: Money Never Sleeps 2010 -Douglas, Michael (I) Ghosts of Girlfriends Past 2009 -Douglas, Michael (I) Fatal Attraction 1987 -Plowright, Joan Dinosaur 2000 -Plowright, Joan 101 Dalmatians 1996 -Plowright, Joan Curious George 2006 -Plowright, Joan The Spiderwick Chronicles 2008 -Plowright, Joan Last Action Hero 1993 -Plowright, Joan Bringing Down the House 2003 -Wright, Marty (I) Any Given Sunday 1999 -Wright, Marty (I) The Replacements 2000 -Wright, Marty (I) Transporter 2 2005 -Rowlett, Cody The Last Song 2010 -Rowlett, Cody Killers 2010 -Rowlett, Cody Zombieland 2009 -Rowlett, Cody The Blind Side 2009 -Saunders, Jennifer Shrek 2 2004 -Saunders, Jennifer Spice World 1997 -Saunders, Jennifer Coraline 2009 -Patrick, Dan (I) I Now Pronounce You Chuck & Larry 2007 -Patrick, Dan (I) The Longest Yard 2005 -Patrick, Dan (I) Jack and Jill 2011 -Patrick, Dan (I) The Waterboy 1998 -Patrick, Dan (I) Just Go with It 2011 -Patrick, Dan (I) Grown Ups 2010 -Hollis, Ted (I) Daredevil 2003 -Hollis, Ted (I) The Green Mile 1999 -Hollis, Ted (I) K-PAX 2001 -Hunter, Holly The Incredibles 2004 -Hunter, Holly The Firm 1993 -Hunter, Holly O Brother, Where Art Thou? 2000 -Ferguson, Sharon (I) Malcolm X 1992 -Ferguson, Sharon (I) Austin Powers in Goldmember 2002 -Ferguson, Sharon (I) Just Go with It 2011 -Ferguson, Sharon (I) Shall We Dance 2004 -Principe, Frank Hannibal 2001 -Principe, Frank Contact 1997 -Principe, Frank The Jackal 1997 -Small, Cassandra L. Miss Congeniality 2000 -Small, Cassandra L. Where the Heart Is 2000 -Small, Cassandra L. The Faculty 1998 -Small, Cassandra L. Friday Night Lights 2004 -Thirlby, Olivia Juno 2007 -Thirlby, Olivia United 93 2006 -Thirlby, Olivia No Strings Attached 2011 -Bond, Samantha (I) Die Another Day 2002 -Bond, Samantha (I) GoldenEye 1995 -Bond, Samantha (I) The World Is Not Enough 1999 -Bond, Samantha (I) Tomorrow Never Dies 1997 -Kolpachikova, Elena Just Go with It 2011 -Kolpachikova, Elena Skyline 2010 -Kolpachikova, Elena Transformers: Dark of the Moon 2011 -Kurylo, Darryl Terminator Salvation 2009 -Kurylo, Darryl Speed Racer 2008 -Kurylo, Darryl Open Season 2006 -Marsden, Jason Sen to Chihiro no kamikakushi 2001 -Marsden, Jason Fun with Dick and Jane 2005 -Marsden, Jason Tarzan 1999 -Helms, Ed (I) The Hangover Part II 2011 -Helms, Ed (I) Confessions of a Shopaholic 2009 -Helms, Ed (I) Evan Almighty 2007 -Helms, Ed (I) Night at the Museum: Battle of the Smithsonian 2009 -Helms, Ed (I) The Lorax 2012 -Helms, Ed (I) Monsters vs Aliens 2009 -Helms, Ed (I) The Hangover 2009 -Roselius, John Con Air 1997 -Roselius, John The Truman Show 1998 -Roselius, John Mars Attacks! 1996 -Roselius, John Space Jam 1996 -Soong, Lucille Freaky Friday 2003 -Soong, Lucille Sky High 2005 -Soong, Lucille Just Like Heaven 2005 -Soong, Lucille Mission: Impossible III 2006 -Lipnicki, Jonathan Jerry Maguire 1996 -Lipnicki, Jonathan Stuart Little 2 2002 -Lipnicki, Jonathan Like Mike 2002 -Lipnicki, Jonathan Doctor Dolittle 1998 -Lipnicki, Jonathan Stuart Little 1999 -McGettrick, Trish Meet Joe Black 1998 -McGettrick, Trish Mona Lisa Smile 2003 -McGettrick, Trish The Siege 1998 -McGettrick, Trish Julie & Julia 2009 -Chianese, Dominic Mr. Popper's Penguins 2011 -Chianese, Dominic Out for Justice 1991 -Chianese, Dominic Unfaithful 2002 -Tracy, Keegan Connor Double Jeopardy 1999 -Tracy, Keegan Connor Final Destination 2 2003 -Tracy, Keegan Connor 40 Days and 40 Nights 2002 -Hammer, Betsy Click 2006 -Hammer, Betsy Bedtime Stories 2008 -Hammer, Betsy Jack and Jill 2011 -Vernon, Conrad Bee Movie 2007 -Vernon, Conrad Shrek 2001 -Vernon, Conrad Kung Fu Panda 2 2011 -Vernon, Conrad Shrek 2 2004 -Vernon, Conrad Madagascar 2005 -Vernon, Conrad Madagascar 3: Europe's Most Wanted 2012 -Vernon, Conrad Shrek Forever After 2010 -Vernon, Conrad Madagascar: Escape 2 Africa 2008 -Vernon, Conrad Shrek the Third 2007 -Vernon, Conrad Monsters vs Aliens 2009 -Vernon, Conrad Flushed Away 2006 -Vernon, Conrad Puss in Boots 2011 -Gaye, Nona The Matrix Reloaded 2003 -Gaye, Nona The Matrix Revolutions 2003 -Gaye, Nona The Polar Express 2004 -Gaye, Nona Ali 2001 -Corazzini, Jeffrey Shutter Island 2010 -Corazzini, Jeffrey Paul Blart: Mall Cop 2009 -Corazzini, Jeffrey 21 2008 -Corazzini, Jeffrey The Departed 2006 -Corazzini, Jeffrey The Town 2010 -Corazzini, Jeffrey Knight and Day 2010 -Corazzini, Jeffrey The Fighter 2010 -Corazzini, Jeffrey The Perfect Storm 2000 -Cusack, John Being John Malkovich 1999 -Cusack, John 1408 2007 -Cusack, John Hot Tub Time Machine 2010 -Cusack, John The Thin Red Line 1998 -Cusack, John Anastasia 1997 -Cusack, John High Fidelity 2000 -Cusack, John Runaway Jury 2003 -Cusack, John Must Love Dogs 2005 -Cusack, John Con Air 1997 -Cusack, John Identity 2003 -Cusack, John Serendipity 2001 -Cusack, John Stand by Me 1986 -Cusack, John America's Sweethearts 2001 -Vaughn, Ned Courage Under Fire 1996 -Vaughn, Ned The Hunt for Red October 1990 -Vaughn, Ned Apollo 13 1995 -James, Jesse (I) The Amityville Horror 2005 -James, Jesse (I) Hanging Up 2000 -James, Jesse (I) The Butterfly Effect 2004 -James, Jesse (I) Jumper 2008 -James, Jesse (I) Pearl Harbor 2001 -James, Jesse (I) Blow 2001 -James, Jesse (I) Message in a Bottle 1999 -James, Jesse (I) As Good as It Gets 1997 -Malkovich, John Beowulf 2007 -Malkovich, John In the Line of Fire 1993 -Malkovich, John Secretariat 2010 -Malkovich, John Transformers: Dark of the Moon 2011 -Malkovich, John Eragon 2006 -Malkovich, John Johnny English 2003 -Malkovich, John The Hitchhiker's Guide to the Galaxy 2005 -Malkovich, John Burn After Reading 2008 -Malkovich, John The Killing Fields 1984 -Malkovich, John Con Air 1997 -Malkovich, John Changeling 2008 -Malkovich, John Being John Malkovich 1999 -Wayans, Marlon The Ladykillers 2004 -Wayans, Marlon LiTTLEMAN 2006 -Wayans, Marlon Scary Movie 2000 -Wayans, Marlon G.I. Joe: The Rise of Cobra 2009 -Wayans, Marlon White Chicks 2004 -Wayans, Marlon Marmaduke 2010 -Wayans, Marlon Norbit 2007 -Wayans, Marlon Scary Movie 2 2001 -Hunt, Linda (I) Pocahontas 1995 -Hunt, Linda (I) Island of the Sharks 1999 -Hunt, Linda (I) The Relic 1997 -Hunt, Linda (I) Yours, Mine and Ours 2005 -Conroy, Glenn Love Actually 2003 -Conroy, Glenn AVP: Alien vs. Predator 2004 -Conroy, Glenn The Ghost Writer 2010 -Apollonio, Frank Law Abiding Citizen 2009 -Apollonio, Frank Marley & Me 2008 -Apollonio, Frank The Last Airbender 2010 -Auberjonois, Rene Pirates of the Caribbean: At World's End 2007 -Auberjonois, Rene The Little Mermaid 1989 -Auberjonois, Rene The Princess Diaries 2001 -Auberjonois, Rene Batman Forever 1995 -Auberjonois, Rene The Patriot 2000 -Auberjonois, Rene Inspector Gadget 1999 -Ochoa, Raymond Yogi Bear 2010 -Ochoa, Raymond Land of the Lost 2009 -Ochoa, Raymond A Christmas Carol 2009 -Rich, Brieann Blue Streak 1999 -Rich, Brieann Paul Blart: Mall Cop 2009 -Rich, Brieann National Treasure: Book of Secrets 2007 -Rich, Brieann World Trade Center 2006 -Mitchell, Mike (I) Catwoman 2004 -Mitchell, Mike (I) X2 2003 -Mitchell, Mike (I) Shanghai Noon 2000 -Mitchell, Mike (I) 4: Rise of the Silver Surfer 2007 -Mitchell, Mike (I) Timecop 1994 -Wilderson, Wayne One Hour Photo 2002 -Wilderson, Wayne Artificial Intelligence: AI 2001 -Wilderson, Wayne Independence Day 1996 -Wilderson, Wayne Evan Almighty 2007 -Ford, Deborah Smith Snow Dogs 2002 -Ford, Deborah Smith Ali 2001 -Ford, Deborah Smith There's Something About Mary 1998 -Ford, Deborah Smith Bad Boys II 2003 -Richings, Julian Open Range 2003 -Richings, Julian Saw IV 2007 -Richings, Julian Urban Legend 1998 -Richings, Julian X-Men: The Last Stand 2006 -Richings, Julian Percy Jackson & the Olympians: The Lightning Thief 2010 -Whigham, Shea Fast & Furious 2009 -Whigham, Shea The Lincoln Lawyer 2011 -Whigham, Shea Bad Company 2002 -Strauss, Victoria The Muppets 2011 -Strauss, Victoria Little Fockers 2010 -Strauss, Victoria Bad Teacher 2011 -Della, Jay Lethal Weapon 2 1989 -Della, Jay Lethal Weapon 4 1998 -Della, Jay Lethal Weapon 3 1992 -Della, Jay Conspiracy Theory 1997 -Gallegos, Reynaldo American Wedding 2003 -Gallegos, Reynaldo Spider-Man 3 2007 -Gallegos, Reynaldo Rambo 2008 -Gallegos, Reynaldo Bad Boys II 2003 -Lage, Jordan Salt 2010 -Lage, Jordan Body of Lies 2008 -Lage, Jordan Michael Clayton 2007 -Lage, Jordan World Trade Center 2006 -Snell, Don Never Been Kissed 1999 -Snell, Don Erin Brockovich 2000 -Snell, Don Traffic 2000 -Spann, Aaron Babe: Pig in the City 1998 -Spann, Aaron Chicken Little 2005 -Spann, Aaron Return to Never Land 2002 -Spann, Aaron Baby Geniuses 1999 -Spann, Aaron Dinosaur 2000 -Wilson, Brian Anthony Law Abiding Citizen 2009 -Wilson, Brian Anthony Snake Eyes 1998 -Wilson, Brian Anthony Limitless 2011 -Wilson, Brian Anthony Keeping the Faith 2000 -Wilson, Brian Anthony Bad Boys II 2003 -Wilson, Brian Anthony The Happening 2008 -Bedford Lloyd, John The Manchurian Candidate 2004 -Bedford Lloyd, John The Bourne Supremacy 2004 -Bedford Lloyd, John Trading Places 1983 -Bedford Lloyd, John Philadelphia 1993 -Bedford Lloyd, John Wall Street: Money Never Sleeps 2010 -Phillips, Bruce (I) The Lord of the Rings: The Return of the King 2003 -Phillips, Bruce (I) Without a Paddle 2004 -Phillips, Bruce (I) The Lord of the Rings: The Two Towers 2002 -Davis, DeRay Barbershop 2: Back in Business 2004 -Davis, DeRay Barbershop 2002 -Davis, DeRay License to Wed 2007 -Davis, DeRay Johnson Family Vacation 2004 -Davis, DeRay 21 Jump Street 2012 -Davis, DeRay Life as We Know It 2010 -Davis, DeRay Scary Movie 4 2006 -Davis, DeRay Get Him to the Greek 2010 -Krebs, Susan Million Dollar Baby 2004 -Krebs, Susan 28 Days 2000 -Krebs, Susan Funny People 2009 -Grant, Beth No Country for Old Men 2007 -Grant, Beth Speed 1994 -Grant, Beth The Rookie 2002 -Grant, Beth Crazy Heart 2009 -Grant, Beth Rain Man 1988 -Grant, Beth Matchstick Men 2003 -Grant, Beth The Artist 2011 -Grant, Beth Little Miss Sunshine 2006 -Grant, Beth Pearl Harbor 2001 -Grant, Beth Rango 2011 -Grant, Beth Doctor Dolittle 1998 -Grant, Beth A Time to Kill 1996 -Berkel, Christian Flightplan 2005 -Berkel, Christian Valkyrie 2008 -Berkel, Christian Inglourious Basterds 2009 -Hutcherson, Josh Hauru no ugoku shiro 2004 -Hutcherson, Josh Zathura: A Space Adventure 2005 -Hutcherson, Josh The Hunger Games 2012 -Hutcherson, Josh The Polar Express 2004 -Hutcherson, Josh Bridge to Terabithia 2007 -Hutcherson, Josh RV 2006 -Hutcherson, Josh Journey 2: The Mysterious Island 2012 -Hutcherson, Josh Kicking & Screaming 2005 -Hutcherson, Josh Journey to the Center of the Earth 2008 -Matheson, Tim (I) She's All That 1999 -Matheson, Tim (I) No Strings Attached 2011 -Matheson, Tim (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Blanchett, Cate The Lord of the Rings: The Fellowship of the Ring 2001 -Blanchett, Cate The Lord of the Rings: The Return of the King 2003 -Blanchett, Cate The Aviator 2004 -Blanchett, Cate The Lord of the Rings: The Two Towers 2002 -Blanchett, Cate The Talented Mr. Ripley 1999 -Blanchett, Cate Elizabeth 1998 -Blanchett, Cate Hanna 2011 -Blanchett, Cate Robin Hood 2010 -Blanchett, Cate Indiana Jones and the Kingdom of the Crystal Skull 2008 -Blanchett, Cate The Curious Case of Benjamin Button 2008 -Blanchett, Cate Bandits 2001 -Blanchett, Cate Babel 2006 -Blanchett, Cate Gake no ue no Ponyo 2008 -Holm, Ian Alien 1979 -Holm, Ian The Lord of the Rings: The Fellowship of the Ring 2001 -Holm, Ian The Lord of the Rings: The Return of the King 2003 -Holm, Ian The Day After Tomorrow 2004 -Holm, Ian The Fifth Element 1997 -Holm, Ian The Aviator 2004 -Holm, Ian Garden State 2004 -Holm, Ian From Hell 2001 -Holm, Ian Chariots of Fire 1981 -Holm, Ian Ratatouille 2007 -West, Billy (II) Dinosaur 2000 -West, Billy (II) Cats & Dogs 2001 -West, Billy (II) Shark Tale 2004 -West, Billy (II) Jimmy Neutron: Boy Genius 2001 -West, Billy (II) Space Jam 1996 -West, Billy (II) Open Season 2006 -West, Billy (II) Curious George 2006 -West, Billy (II) TMNT 2007 -West, Billy (II) Rugrats in Paris: The Movie - Rugrats II 2000 -Santoni, Reni Doctor Dolittle 1998 -Santoni, Reni Rain Man 1988 -Santoni, Reni Dr. Dolittle 2 2001 -Santoni, Reni 28 Days 2000 -Martinez, David Joseph X-Men: First Class 2011 -Martinez, David Joseph The Expendables 2010 -Martinez, David Joseph The Bodyguard 1992 -Giuliani, Rudolph W. The Out-of-Towners 1999 -Giuliani, Rudolph W. Anger Management 2003 -Giuliani, Rudolph W. Moneyball 2011 -LL Cool J S.W.A.T. 2003 -LL Cool J Halloween H20: 20 Years Later 1998 -LL Cool J Any Given Sunday 1999 -LL Cool J Charlie's Angels 2000 -LL Cool J Deep Blue Sea 1999 -McLachlan, Rod The Kid 2000 -McLachlan, Rod National Treasure 2004 -McLachlan, Rod Magnolia 1999 -McLachlan, Rod Conspiracy Theory 1997 -McLachlan, Rod Superhero Movie 2008 -Lombardozzi, Domenick Miami Vice 2006 -Lombardozzi, Domenick S.W.A.T. 2003 -Lombardozzi, Domenick Public Enemies 2009 -Lombardozzi, Domenick Phone Booth 2002 -Norris, Daran Hauru no ugoku shiro 2004 -Norris, Daran Bolt 2008 -Norris, Daran Madagascar 2005 -Norris, Daran Minority Report 2002 -Norris, Daran Dinosaur 2000 -Norris, Daran Team America: World Police 2004 -Norris, Daran Dr. Seuss' The Cat in the Hat 2003 -Norris, Daran In the Bedroom 2001 -Johnson, William (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Johnson, William (I) The Water Horse 2007 -Johnson, William (I) King Kong 2005 -Johnson, William (I) Ocean's Eleven 2001 -Lennox, Doug (I) X-Men 2000 -Lennox, Doug (I) Police Academy 3: Back in Training 1986 -Lennox, Doug (I) Police Academy 1984 -Leno, Jay Ice Age: The Meltdown 2006 -Leno, Jay John Q 2002 -Leno, Jay The Flintstones 1994 -Leno, Jay Space Cowboys 2000 -Leno, Jay The Birdcage 1996 -Leno, Jay Justin Bieber: Never Say Never 2011 -Leno, Jay Cars 2006 -Leno, Jay Robots 2005 -Leno, Jay Wag the Dog 1997 -Leno, Jay Contact 1997 -Leno, Jay In & Out 1997 -Leno, Jay Underdog 2007 -Leno, Jay Calendar Girls 2003 -Benedetti, Caprice The Devil's Advocate 1997 -Benedetti, Caprice Practical Magic 1998 -Benedetti, Caprice Shaft 2000 -Mabius, Eric Cruel Intentions 1999 -Mabius, Eric Resident Evil: Apocalypse 2004 -Mabius, Eric Resident Evil 2002 -Reitman, Joseph D. Lady in the Water 2006 -Reitman, Joseph D. The Perfect Storm 2000 -Reitman, Joseph D. American Pie 2 2001 -Harold, Joel Hannah Montana: The Movie 2009 -Harold, Joel Big Mommas: Like Father, Like Son 2011 -Harold, Joel Jack and Jill 2011 -Hollis, Tommy (I) Ghost Busters 1984 -Hollis, Tommy (I) Malcolm X 1992 -Hollis, Tommy (I) Primary Colors 1998 -Jones, Mark Lewis Troy 2004 -Jones, Mark Lewis Master and Commander: The Far Side of the World 2003 -Jones, Mark Lewis Robin Hood 2010 -Geschwind, Marc C. The Replacements 2000 -Geschwind, Marc C. Get Him to the Greek 2010 -Geschwind, Marc C. Hancock 2008 -Billingslea, Beau Hannah Montana: The Movie 2009 -Billingslea, Beau My Favorite Martian 1999 -Billingslea, Beau Halloween H20: 20 Years Later 1998 -Cooney, Kevin (I) Clear and Present Danger 1994 -Cooney, Kevin (I) Windtalkers 2002 -Cooney, Kevin (I) Rules of Engagement 2000 -Cooney, Kevin (I) Austin Powers: The Spy Who Shagged Me 1999 -Cooney, Kevin (I) Primary Colors 1998 -Cooney, Kevin (I) Dead Poets Society 1989 -Cooney, Kevin (I) American Pie 2 2001 -Cooney, Kevin (I) Independence Day 1996 -Cooney, Kevin (I) Charlie Wilson's War 2007 -Cooney, Kevin (I) Austin Powers in Goldmember 2002 -Cooney, Kevin (I) Legally Blonde 2001 -Cooney, Kevin (I) Con Air 1997 -Cooney, Kevin (I) The Shaggy Dog 2006 -Shannon, Molly Serendipity 2001 -Shannon, Molly Shallow Hal 2001 -Shannon, Molly How the Grinch Stole Christmas 2000 -Shannon, Molly Talladega Nights: The Ballad of Ricky Bobby 2006 -Shannon, Molly Superstar 1999 -Shannon, Molly Analyze This 1999 -Shannon, Molly Evan Almighty 2007 -Shannon, Molly LiTTLEMAN 2006 -Shannon, Molly Never Been Kissed 1999 -Shannon, Molly Bad Teacher 2011 -Shannon, Molly Scary Movie 4 2006 -Shannon, Molly The Santa Clause 2 2002 -Davies, Paul (XV) Harry Potter and the Deathly Hallows: Part 1 2010 -Davies, Paul (XV) Harry Potter and the Goblet of Fire 2005 -Davies, Paul (XV) Harry Potter and the Deathly Hallows: Part 2 2011 -Davies, Paul (XV) Harry Potter and the Half-Blood Prince 2009 -Davies, Paul (XV) Captain America: The First Avenger 2011 -Roberts, Rhonda The Hot Chick 2002 -Roberts, Rhonda Hairspray 2007 -Roberts, Rhonda Chicago 2002 -Devlin, Billy Con Air 1997 -Devlin, Billy Gone in Sixty Seconds 2000 -Devlin, Billy National Treasure: Book of Secrets 2007 -Devlin, Billy The Taking of Pelham 1 2 3 2009 -Devlin, Billy The Rock 1996 -Devlin, Billy Armageddon 1998 -Devlin, Billy Rush Hour 1998 -Celestina Norbit 2007 -Celestina Charlie Wilson's War 2007 -Celestina Alvin and the Chipmunks 2007 -Polo, Teri Meet the Fockers 2004 -Polo, Teri Meet the Parents 2000 -Polo, Teri Little Fockers 2010 -Polo, Teri Domestic Disturbance 2001 -Abadie, William Unfaithful 2002 -Abadie, William Resident Evil: Extinction 2007 -Abadie, William The Pink Panther 2006 -Luke, Ramsey Big Momma's House 2 2006 -Luke, Ramsey Big Momma's House 2000 -Luke, Ramsey Big Mommas: Like Father, Like Son 2011 -Irving, Amy Hide and Seek 2005 -Irving, Amy Who Framed Roger Rabbit 1988 -Irving, Amy Yentl 1983 -Irving, Amy Traffic 2000 -Irving, Amy Never Say Never Again 1983 -Polanco, Danielle Step Up 3D 2010 -Polanco, Danielle Friends with Benefits 2011 -Polanco, Danielle Step Up 2: The Streets 2008 -Mammone, Robert The Matrix Reloaded 2003 -Mammone, Robert The Matrix Revolutions 2003 -Mammone, Robert Vertical Limit 2000 -Donahue, Elinor Freddy's Dead: The Final Nightmare 1991 -Donahue, Elinor The Princess Diaries 2: Royal Engagement 2004 -Donahue, Elinor Pretty Woman 1990 -Dawson, Rosario The Rundown 2003 -Dawson, Rosario Unstoppable 2010 -Dawson, Rosario Alexander 2004 -Dawson, Rosario Zookeeper 2011 -Dawson, Rosario Eagle Eye 2008 -Dawson, Rosario Sin City 2005 -Dawson, Rosario Percy Jackson & the Olympians: The Lightning Thief 2010 -Dawson, Rosario Men in Black II 2002 -Flanagan, Tommy (I) Face/Off 1997 -Flanagan, Tommy (I) Sin City 2005 -Flanagan, Tommy (I) Braveheart 1995 -Flanagan, Tommy (I) The Saint 1997 -Flanagan, Tommy (I) The Game 1997 -Flanagan, Tommy (I) Charlie's Angels: Full Throttle 2003 -Flanagan, Tommy (I) AVP: Alien vs. Predator 2004 -Flanagan, Tommy (I) Gladiator 2000 -Leal, Julio The Santa Clause 3: The Escape Clause 2006 -Leal, Julio Dreamgirls 2006 -Leal, Julio Ocean's Thirteen 2007 -Leal, Julio Cloverfield 2008 -Swift, Tony National Treasure 2004 -Swift, Tony Wild Hogs 2007 -Swift, Tony Alvin and the Chipmunks 2007 -Swift, Tony The Terminal 2004 -Swift, Tony Constantine 2005 -Swift, Tony Kicking & Screaming 2005 -Swift, Tony The Island 2005 -Eisenberg, Ned (I) Million Dollar Baby 2004 -Eisenberg, Ned (I) Primary Colors 1998 -Eisenberg, Ned (I) World Trade Center 2006 -Eisenberg, Ned (I) Limitless 2011 -Eisenberg, Ned (I) A Civil Action 1998 -Fischer, Takayo Memoirs of a Geisha 2005 -Fischer, Takayo Moneyball 2011 -Fischer, Takayo Pirates of the Caribbean: At World's End 2007 -Fischer, Takayo The Pursuit of Happyness 2006 -Seddon, Harry L. Julie & Julia 2009 -Seddon, Harry L. The Other Guys 2010 -Seddon, Harry L. Righteous Kill 2008 -Seddon, Harry L. Get Him to the Greek 2010 -Seddon, Harry L. Cop Out 2010 -Badalucco, Michael One Fine Day 1996 -Badalucco, Michael Sleepless in Seattle 1993 -Badalucco, Michael You've Got Mail 1998 -Badalucco, Michael Bewitched 2005 -Badalucco, Michael O Brother, Where Art Thou? 2000 -Talley, Jill (I) The SpongeBob SquarePants Movie 2004 -Talley, Jill (I) Barnyard 2006 -Talley, Jill (I) Sky High 2005 -Talley, Jill (I) Little Miss Sunshine 2006 -Hanratty, Sammi The Santa Clause 3: The Escape Clause 2006 -Hanratty, Sammi A Christmas Carol 2009 -Hanratty, Sammi Pirates of the Caribbean: Dead Man's Chest 2006 -Field, Todd Twister 1996 -Field, Todd The Haunting 1999 -Field, Todd Eyes Wide Shut 1999 -Quaid, Randy Home on the Range 2004 -Quaid, Randy Brokeback Mountain 2005 -Quaid, Randy Vegas Vacation 1997 -Quaid, Randy Independence Day 1996 -Shaye, Robert A Nightmare on Elm Street 4: The Dream Master 1988 -Shaye, Robert Freddy vs. Jason 2003 -Shaye, Robert Freddy's Dead: The Final Nightmare 1991 -Shaye, Robert Cellular 2004 -Stiller, Ben Dodgeball: A True Underdog Story 2004 -Stiller, Ben The Royal Tenenbaums 2001 -Stiller, Ben Keeping the Faith 2000 -Stiller, Ben Meet the Parents 2000 -Stiller, Ben Zoolander 2001 -Stiller, Ben The Cable Guy 1996 -Stiller, Ben The Heartbreak Kid 2007 -Stiller, Ben Madagascar: Escape 2 Africa 2008 -Stiller, Ben Tropic Thunder 2008 -Stiller, Ben Starsky & Hutch 2004 -Stiller, Ben There's Something About Mary 1998 -Stiller, Ben Little Fockers 2010 -Stiller, Ben Night at the Museum 2006 -Stiller, Ben Meet the Fockers 2004 -Stiller, Ben Along Came Polly 2004 -Stiller, Ben Anchorman: The Legend of Ron Burgundy 2004 -Stiller, Ben Madagascar 3: Europe's Most Wanted 2012 -Stiller, Ben Night at the Museum: Battle of the Smithsonian 2009 -Stiller, Ben Tower Heist 2011 -Stiller, Ben Madagascar 2005 -Stiller, Ben Megamind 2010 -Sutherland, Kiefer A Few Good Men 1992 -Sutherland, Kiefer The Wild 2006 -Sutherland, Kiefer Marmaduke 2010 -Sutherland, Kiefer Phone Booth 2002 -Sutherland, Kiefer Monsters vs Aliens 2009 -Sutherland, Kiefer NASCAR 3D: The IMAX Experience 2004 -Sutherland, Kiefer Stand by Me 1986 -Sutherland, Kiefer A Time to Kill 1996 -Ryan, Max (I) The League of Extraordinary Gentlemen 2003 -Ryan, Max (I) Death Race 2008 -Ryan, Max (I) Sex and the City 2 2010 -Ryan, Max (I) Kiss of the Dragon 2001 -Call, R.D. I Am Sam 2001 -Call, R.D. Waterworld 1995 -Call, R.D. Babel 2006 -Pavinski, Dale Angels & Demons 2009 -Pavinski, Dale Takers 2010 -Pavinski, Dale Underworld: Rise of the Lycans 2009 -Ali, Tony The A-Team 2010 -Ali, Tony Watchmen 2009 -Ali, Tony Scary Movie 4 2006 -Ali, Tony Are We There Yet? 2005 -Channing, Stockard Where the Heart Is 2000 -Channing, Stockard Grease 1978 -Channing, Stockard Must Love Dogs 2005 -Channing, Stockard Practical Magic 1998 -Channing, Stockard The First Wives Club 1996 -Perrette, Pauley Almost Famous 2000 -Perrette, Pauley The Ring 2002 -Perrette, Pauley Brother Bear 2003 -Breslau, Susan Ruthless People 1986 -Breslau, Susan My Best Friend's Wedding 1997 -Breslau, Susan Rat Race 2001 -Breslau, Susan Superhero Movie 2008 -Breslau, Susan Ghost 1990 -Chartoff, Melanie The Rugrats Movie 1998 -Chartoff, Melanie Rugrats in Paris: The Movie - Rugrats II 2000 -Chartoff, Melanie Rugrats Go Wild 2003 -Schwartzman, Jason The Hitchhiker's Guide to the Galaxy 2005 -Schwartzman, Jason Funny People 2009 -Schwartzman, Jason Bewitched 2005 -Pfefferkorn, Martin World Trade Center 2006 -Pfefferkorn, Martin Keeping the Faith 2000 -Pfefferkorn, Martin Spider-Man 2002 -Ferrigno, Lou Hulk 2003 -Ferrigno, Lou The Incredible Hulk 2008 -Ferrigno, Lou I Love You, Man 2009 -Ferrigno, Lou The Avengers 2012 -Wolfe, Jeff (I) Green Lantern 2011 -Wolfe, Jeff (I) Zathura: A Space Adventure 2005 -Wolfe, Jeff (I) The Avengers 2012 -Wolfe, Jeff (I) Drive 2011 -Trump, Donald Home Alone 2: Lost in New York 1992 -Trump, Donald Two Weeks Notice 2002 -Trump, Donald Across the Sea of Time 1995 -Trump, Donald Zoolander 2001 -Gibson, Leah The Twilight Saga: Eclipse 2010 -Gibson, Leah Watchmen 2009 -Gibson, Leah Rise of the Planet of the Apes 2011 -Paolo, Connor Mystic River 2003 -Paolo, Connor Alexander 2004 -Paolo, Connor World Trade Center 2006 -Cleary, Katie (I) Iron Man 2 2010 -Cleary, Katie (I) The Break-Up 2006 -Cleary, Katie (I) The Lake House 2006 -Reynolds, Burt (I) Striptease 1996 -Reynolds, Burt (I) The Longest Yard 2005 -Reynolds, Burt (I) Bean 1997 -Reynolds, Burt (I) Without a Paddle 2004 -Reynolds, Burt (I) The Dukes of Hazzard 2005 -Reynolds, Burt (I) Boogie Nights 1997 -Taylor, Sandra (I) Runaway Bride 1999 -Taylor, Sandra (I) Batman & Robin 1997 -Taylor, Sandra (I) New Year's Eve 2011 -Taylor, Sandra (I) L.A. Confidential 1997 -Taylor, Sandra (I) Raising Helen 2004 -Taylor, Sandra (I) The Princess Diaries 2001 -Taylor, Sandra (I) The Princess Diaries 2: Royal Engagement 2004 -Horton, Michael (I) Star Trek: Insurrection 1998 -Horton, Michael (I) Dances with Wolves 1990 -Horton, Michael (I) Star Trek: First Contact 1996 -Abrahams, Doug Superman Returns 2006 -Abrahams, Doug Fantastic Four 2005 -Abrahams, Doug Scary Movie 4 2006 -Jarvis, Martin The Girl with the Dragon Tattoo 2011 -Jarvis, Martin Eragon 2006 -Jarvis, Martin Titanic 1997 -Holden, Gina Saw 3D 2010 -Holden, Gina AVPR: Aliens vs Predator - Requiem 2007 -Holden, Gina Final Destination 3 2006 -Holden, Gina Fantastic Four 2005 -Penn, Sean (I) The Interpreter 2005 -Penn, Sean (I) Being John Malkovich 1999 -Penn, Sean (I) The Game 1997 -Penn, Sean (I) The Thin Red Line 1998 -Penn, Sean (I) I Am Sam 2001 -Penn, Sean (I) Mystic River 2003 -Joshua, Larry Unforgiven 1992 -Joshua, Larry Spider-Man 2002 -Joshua, Larry Dances with Wolves 1990 -Joshua, Larry The X Files 1998 -Dean, Allison (I) Tears of the Sun 2003 -Dean, Allison (I) Speed 2: Cruise Control 1997 -Dean, Allison (I) Coming to America 1988 -Lo Truglio, Joe Gulliver's Travels 2010 -Lo Truglio, Joe Role Models 2008 -Lo Truglio, Joe Pineapple Express 2008 -Lo Truglio, Joe Superbad 2007 -Lo Truglio, Joe I Love You, Man 2009 -Akey, William Shark Tale 2004 -Akey, William The Parent Trap 1998 -Akey, William Madagascar 2005 -Jones, Gemma (I) Bridget Jones: The Edge of Reason 2004 -Jones, Gemma (I) Bridget Jones's Diary 2001 -Jones, Gemma (I) Harry Potter and the Chamber of Secrets 2002 -Jones, Gemma (I) Harry Potter and the Half-Blood Prince 2009 -Jones, Gemma (I) Shanghai Knights 2003 -Jones, Gemma (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Milder, Andy G.I. Joe: The Rise of Cobra 2009 -Milder, Andy Apollo 13 1995 -Milder, Andy Transformers 2007 -Milder, Andy Rumor Has It... 2005 -Milder, Andy Armageddon 1998 -Milder, Andy The Artist 2011 -Roberson Jr., Bertrand Star Trek 2009 -Roberson Jr., Bertrand Stomp the Yard 2007 -Roberson Jr., Bertrand Angels & Demons 2009 -Roberson Jr., Bertrand The Day the Earth Stood Still 2008 -Roberson Jr., Bertrand The Ugly Truth 2009 -Roberson Jr., Bertrand Cloverfield 2008 -Nathanson, Julie Night at the Museum: Battle of the Smithsonian 2009 -Nathanson, Julie Speed Racer 2008 -Nathanson, Julie The Tale of Despereaux 2008 -Farrell, Tom Riis The Stepford Wives 2004 -Farrell, Tom Riis Almost Famous 2000 -Farrell, Tom Riis The Devil's Advocate 1997 -Farrell, Tom Riis Sleepless in Seattle 1993 -Farrell, Tom Riis The Out-of-Towners 1999 -Albrizzi, Tucker Alvin and the Chipmunks: Chipwrecked 2011 -Albrizzi, Tucker I Am Number Four 2011 -Albrizzi, Tucker Hop 2011 -Graves, Anna (I) X-Men Origins: Wolverine 2009 -Graves, Anna (I) The Golden Compass 2007 -Graves, Anna (I) The Amazing Spider-Man 2012 -Cowgill, David Chicken Little 2005 -Cowgill, David Star Trek: First Contact 1996 -Cowgill, David Bolt 2008 -Cowgill, David Hauru no ugoku shiro 2004 -Cowgill, David Mulan 1998 -Cowgill, David Open Season 2006 -Cowgill, David Madagascar 2005 -Cowgill, David Fly Me to the Moon 2008 -Cowgill, David The Time Traveler's Wife 2009 -Cowgill, David The Princess and the Frog 2009 -Cowgill, David Meet the Robinsons 2007 -Cowgill, David The Wild 2006 -Cowgill, David Kiss the Girls 1997 -Cox, Veanne Sex and the City 2008 -Cox, Veanne You've Got Mail 1998 -Cox, Veanne Two Weeks Notice 2002 -Cox, Veanne Erin Brockovich 2000 -Gerena, Chuck Inside Man 2006 -Gerena, Chuck Spider-Man 3 2007 -Gerena, Chuck The Brave One 2007 -Gerena, Chuck The Interpreter 2005 -de la Reguera, Ana Cop Out 2010 -de la Reguera, Ana Cowboys & Aliens 2011 -de la Reguera, Ana Nacho Libre 2006 -Easterbrook, Leslie The Heartbreak Kid 2007 -Easterbrook, Leslie Police Academy 1984 -Easterbrook, Leslie Police Academy 3: Back in Training 1986 -Easterbrook, Leslie Halloween 2007 -Harvey, Philip (II) Star Wars: Episode III - Revenge of the Sith 2005 -Harvey, Philip (II) Stardust 2007 -Harvey, Philip (II) Johnny English 2003 -Harvey, Philip (II) Spy Game 2001 -Harvey, Philip (II) Batman Begins 2005 -Long, Nia Stigmata 1999 -Long, Nia Big Momma's House 2000 -Long, Nia Big Momma's House 2 2006 -Long, Nia Are We Done Yet? 2007 -Long, Nia Are We There Yet? 2005 -Long, Nia Soul Food 1997 -Douglas, Aaron (I) The Chronicles of Riddick 2004 -Douglas, Aaron (I) X2 2003 -Douglas, Aaron (I) Catwoman 2004 -Douglas, Aaron (I) Final Destination 2 2003 -Douglas, Aaron (I) Paycheck 2003 -Douglas, Aaron (I) The Lizzie McGuire Movie 2003 -Douglas, Aaron (I) I, Robot 2004 -Douglas, Aaron (I) The Exorcism of Emily Rose 2005 -Katarina, Anna Star Trek 2009 -Katarina, Anna The Pink Panther 2006 -Katarina, Anna Batman Returns 1992 -Katarina, Anna Angels & Demons 2009 -Katarina, Anna The Game 1997 -Katarina, Anna The Dictator 2012 -Ware, Tim (I) Road Trip 2000 -Ware, Tim (I) Remember the Titans 2000 -Ware, Tim (I) Confessions of a Shopaholic 2009 -Ware, Tim (I) Monster 2003 -Ware, Tim (I) Secretariat 2010 -Ware, Tim (I) Walk the Line 2005 -Ware, Tim (I) Transporter 2 2005 -Kapelos, John Tootsie 1982 -Kapelos, John The Relic 1997 -Kapelos, John Legally Blonde 2001 -Seitz, John JFK 1991 -Seitz, John Presumed Innocent 1990 -Seitz, John G.I. Jane 1997 -Eubanks, Shannon (I) Runaway Jury 2003 -Eubanks, Shannon (I) The Patriot 2000 -Eubanks, Shannon (I) Madea's Family Reunion 2006 -Dennehy, Ned Sherlock Holmes 2009 -Dennehy, Ned Robin Hood 2010 -Dennehy, Ned King Arthur 2004 -Dennehy, Ned Harry Potter and the Deathly Hallows: Part 1 2010 -Dennehy, Ned Reign of Fire 2002 -Montalban, Ricardo The Ant Bully 2006 -Montalban, Ricardo Star Trek: The Wrath of Khan 1982 -Montalban, Ricardo Spy Kids 3-D: Game Over 2003 -Montalban, Ricardo Spy Kids 2: Island of Lost Dreams 2002 -Jones, January (I) We Are Marshall 2006 -Jones, January (I) American Wedding 2003 -Jones, January (I) X-Men: First Class 2011 -Jones, January (I) Bandits 2001 -Jones, January (I) Unknown 2011 -Jones, January (I) Anger Management 2003 -Jones, January (I) Love Actually 2003 -Weiner, Andreana TMNT 2007 -Weiner, Andreana Halloween 2007 -Weiner, Andreana Red Dragon 2002 -Carr, Shana (I) The Departed 2006 -Carr, Shana (I) Fever Pitch 2005 -Carr, Shana (I) Dan in Real Life 2007 -Grant, Richard E. Dracula 1992 -Grant, Richard E. Corpse Bride 2005 -Grant, Richard E. Spice World 1997 -Grant, Richard E. Garfield: A Tail of Two Kitties 2006 -Grant, Richard E. Gosford Park 2001 -Cho, Smith Superman Returns 2006 -Cho, Smith Blades of Glory 2007 -Cho, Smith Norbit 2007 -Cho, Smith Bad Boys II 2003 -Galtsev, Yuriy Istoriya pro Richarda, milorda i prekrasnuyu Zhar-ptitsu 1997 -Galtsev, Yuriy Gitler kaput! 2008 -Galtsev, Yuriy Rzhevskiy protiv Napoleona 2012 -Masiello, Robert Shutter Island 2010 -Masiello, Robert Bride Wars 2009 -Masiello, Robert 21 2008 -Masiello, Robert Ghosts of Girlfriends Past 2009 -Masiello, Robert The Town 2010 -Masiello, Robert Knight and Day 2010 -Masiello, Robert 27 Dresses 2008 -Masiello, Robert The Game Plan 2007 -Wohl, Bess Flightplan 2005 -Wohl, Bess Must Love Dogs 2005 -Wohl, Bess The Shaggy Dog 2006 -Currie, James (III) Ali 2001 -Currie, James (III) Public Enemies 2009 -Currie, James (III) Hard Ball 2001 -Currie, James (III) Road to Perdition 2002 -Volok, Ilia The Curious Case of Benjamin Button 2008 -Volok, Ilia Indiana Jones and the Kingdom of the Crystal Skull 2008 -Volok, Ilia Air Force One 1997 -Volok, Ilia Charlie Wilson's War 2007 -Volok, Ilia Swordfish 2001 -Volok, Ilia Water for Elephants 2011 -Volok, Ilia Mission: Impossible - Ghost Protocol 2011 -Jeremy, Ron Ghost Busters 1984 -Jeremy, Ron Bruce Almighty 2003 -Jeremy, Ron Ronin 1998 -Fichtner, William Blades of Glory 2007 -Fichtner, William Black Hawk Down 2001 -Fichtner, William The Longest Yard 2005 -Fichtner, William Date Night 2010 -Fichtner, William Armageddon 1998 -Fichtner, William Heat 1995 -Fichtner, William Malcolm X 1992 -Fichtner, William Pearl Harbor 2001 -Fichtner, William Contact 1997 -Fichtner, William The Perfect Storm 2000 -Fichtner, William Mr. & Mrs. Smith 2005 -Dunn, Wally The Manchurian Candidate 2004 -Dunn, Wally The School of Rock 2003 -Dunn, Wally The Good Shepherd 2006 -Dunn, Wally In & Out 1997 -Diggs, Taye Chicago 2002 -Diggs, Taye How Stella Got Her Groove Back 1998 -Diggs, Taye House on Haunted Hill 1999 -Arana, Tomas The Bourne Supremacy 2004 -Arana, Tomas Pearl Harbor 2001 -Arana, Tomas L.A. Confidential 1997 -Arana, Tomas Gladiator 2000 -Arana, Tomas The Hunt for Red October 1990 -Arana, Tomas The Bodyguard 1992 -Arana, Tomas Limitless 2011 -Virtue, Tom Blades of Glory 2007 -Virtue, Tom Transformers: Dark of the Moon 2011 -Virtue, Tom The Ugly Truth 2009 -Virtue, Tom Return to Me 2000 -Virtue, Tom Kicking & Screaming 2005 -Dell, Charlie (I) She's All That 1999 -Dell, Charlie (I) The Out-of-Towners 1999 -Dell, Charlie (I) Date Movie 2006 -Dell, Charlie (I) Home on the Range 2004 -Dell, Charlie (I) Liar Liar 1997 -Dell, Charlie (I) Fight Club 1999 -Coppola, Roman Apocalypse Now 1979 -Coppola, Roman The Godfather 1972 -Coppola, Roman Star Wars: Episode I - The Phantom Menace 1999 -Acres, Isabella Yogi Bear 2010 -Acres, Isabella Cloudy with a Chance of Meatballs 2009 -Acres, Isabella The Three Stooges 2012 -Acres, Isabella Horton Hears a Who! 2008 -Burns, Edward (I) The Holiday 2006 -Burns, Edward (I) Saving Private Ryan 1998 -Burns, Edward (I) 27 Dresses 2008 -Everett, Rupert Stardust 2007 -Everett, Rupert Shakespeare in Love 1998 -Everett, Rupert My Best Friend's Wedding 1997 -Everett, Rupert Inspector Gadget 1999 -Everett, Rupert The Wild Thornberrys Movie 2002 -Everett, Rupert The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Everett, Rupert Shrek the Third 2007 -Everett, Rupert Shrek 2 2004 -Aboutboul, Alon Body of Lies 2008 -Aboutboul, Alon Munich 2005 -Aboutboul, Alon Rambo III 1988 -Kramer, Joel Terminator 2: Judgment Day 1991 -Kramer, Joel Total Recall 1990 -Kramer, Joel Universal Soldier 1992 -Dallas, Keith Final Destination 3 2006 -Dallas, Keith Percy Jackson & the Olympians: The Lightning Thief 2010 -Dallas, Keith The Sisterhood of the Traveling Pants 2005 -Dallas, Keith Marmaduke 2010 -Dallas, Keith Cats & Dogs: The Revenge of Kitty Galore 2010 -Dallas, Keith Romeo Must Die 2000 -Dallas, Keith Mission: Impossible - Ghost Protocol 2011 -Dallas, Keith Snakes on a Plane 2006 -Johnston, Kristen (I) Austin Powers: The Spy Who Shagged Me 1999 -Johnston, Kristen (I) Bride Wars 2009 -Johnston, Kristen (I) The Flintstones in Viva Rock Vegas 2000 -Johnston, Kristen (I) Austin Powers in Goldmember 2002 -Yuen, Russell The Incredible Hulk 2008 -Yuen, Russell The Day After Tomorrow 2004 -Yuen, Russell The Bone Collector 1999 -Destry, John B. Watchmen 2009 -Destry, John B. Are We There Yet? 2005 -Destry, John B. Capote 2005 -Ferrer, Miguel (I) The Manchurian Candidate 2004 -Ferrer, Miguel (I) RoboCop 1987 -Ferrer, Miguel (I) Star Trek III: The Search for Spock 1984 -Ferrer, Miguel (I) Traffic 2000 -Ferrer, Miguel (I) Mulan 1998 -Cedillo, Julio The Mist 2007 -Cedillo, Julio The Rookie 2002 -Cedillo, Julio Cowboys & Aliens 2011 -Morrow, Andy Guess Who 2005 -Morrow, Andy The Master of Disguise 2002 -Morrow, Andy Artificial Intelligence: AI 2001 -Summerour, Lisa The Sixth Sense 1999 -Summerour, Lisa Philadelphia 1993 -Summerour, Lisa Mercury Rising 1998 -Dreyfuss, Richard Down and Out in Beverly Hills 1986 -Dreyfuss, Richard Piranha 2010 -Dreyfuss, Richard Stand by Me 1986 -Dreyfuss, Richard Poseidon 2006 -Dreyfuss, Richard Close Encounters of the Third Kind 1977 -Dreyfuss, Richard Jaws 1975 -Bauchau, Patrick Clear and Present Danger 1994 -Bauchau, Patrick Panic Room 2002 -Bauchau, Patrick The Cell 2000 -Bauchau, Patrick A View to a Kill 1985 -Holbrook, Hal Wall Street 1987 -Holbrook, Hal The Firm 1993 -Holbrook, Hal Hercules 1997 -Holbrook, Hal Water for Elephants 2011 -Holbrook, Hal Men of Honor 2000 -Ellis, Nadine 500) Days of Summer 2009 -Ellis, Nadine Nutty Professor II: The Klumps 2000 -Ellis, Nadine Hairspray 2007 -Ellis, Nadine Iron Man 2 2010 -Ellis, Nadine Guess Who 2005 -Ellis, Nadine Charlie's Angels: Full Throttle 2003 -Ellis, Nadine The Hot Chick 2002 -Ellis, Nadine 13 Going on 30 2004 -Ellis, Nadine Starsky & Hutch 2004 -Ellis, Nadine Live Free or Die Hard 2007 -Ellis, Nadine Tropic Thunder 2008 -Amendola, Tony (I) The Mask of Zorro 1998 -Amendola, Tony (I) Blow 2001 -Amendola, Tony (I) The Legend of Zorro 2005 -Bulloch, Jeremy Star Wars: Episode V - The Empire Strikes Back 1980 -Bulloch, Jeremy Star Wars: Episode III - Revenge of the Sith 2005 -Bulloch, Jeremy For Your Eyes Only 1981 -Bulloch, Jeremy Star Wars: Episode VI - Return of the Jedi 1983 -Bulloch, Jeremy Octopussy 1983 -Chambers, Rick Eagle Eye 2008 -Chambers, Rick The Dictator 2012 -Chambers, Rick Unstoppable 2010 -MacNeill, Tom (I) Night at the Museum: Battle of the Smithsonian 2009 -MacNeill, Tom (I) The A-Team 2010 -MacNeill, Tom (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Carell, Steve Horton Hears a Who! 2008 -Carell, Steve Evan Almighty 2007 -Carell, Steve Knocked Up 2007 -Carell, Steve Get Smart 2008 -Carell, Steve Date Night 2010 -Carell, Steve Despicable Me 2010 -Carell, Steve Little Miss Sunshine 2006 -Carell, Steve Bewitched 2005 -Carell, Steve Dinner for Schmucks 2010 -Carell, Steve The 40 Year Old Virgin 2005 -Carell, Steve Over the Hedge 2006 -Carell, Steve Bruce Almighty 2003 -Carell, Steve Dan in Real Life 2007 -Carell, Steve Anchorman: The Legend of Ron Burgundy 2004 -Carell, Steve Crazy, Stupid, Love. 2011 -Tessier, Christian Underworld: Awakening 2012 -Tessier, Christian The A-Team 2010 -Tessier, Christian The Score 2001 -Tessier, Christian The Day After Tomorrow 2004 -Joles, Bob Van Helsing 2004 -Joles, Bob The Incredibles 2004 -Joles, Bob Spider-Man 3 2007 -Joles, Bob The Jungle Book 2 2003 -Joles, Bob The Wild 2006 -Joles, Bob The Ant Bully 2006 -Joles, Bob Fantastic Four 2005 -Joles, Bob Puss in Boots 2011 -Sikora, Joseph (I) Shutter Island 2010 -Sikora, Joseph (I) My Best Friend's Wedding 1997 -Sikora, Joseph (I) Charlie Wilson's War 2007 -Toda, Toshi Godzilla 1998 -Toda, Toshi Mr. Deeds 2002 -Toda, Toshi Pearl Harbor 2001 -Toda, Toshi Click 2006 -Toda, Toshi Just Married 2003 -Toda, Toshi Letters from Iwo Jima 2006 -Garrett, Brad (I) Stuart Little 2 2002 -Garrett, Brad (I) Casper 1995 -Garrett, Brad (I) Night at the Museum: Battle of the Smithsonian 2009 -Garrett, Brad (I) The Pacifier 2005 -Garrett, Brad (I) Ratatouille 2007 -Garrett, Brad (I) Finding Nemo 2003 -Garrett, Brad (I) A Bug's Life 1998 -Garrett, Brad (I) Underdog 2007 -Garrett, Brad (I) Garfield 2004 -Garrett, Brad (I) Night at the Museum 2006 -Boa, Bruce Octopussy 1983 -Boa, Bruce Star Wars: Episode V - The Empire Strikes Back 1980 -Boa, Bruce Superman 1978 -St. Pierre, David Hulk 2003 -St. Pierre, David Congo 1995 -St. Pierre, David Mighty Joe Young 1998 -Hodge, Edwin The Long Kiss Goodnight 1996 -Hodge, Edwin Die Hard: With a Vengeance 1995 -Hodge, Edwin Big Momma's House 2000 -Rucker, Bo The Devil's Advocate 1997 -Rucker, Bo Presumed Innocent 1990 -Rucker, Bo Superman 1978 -Shepard, Sam Black Hawk Down 2001 -Shepard, Sam Charlotte's Web 2006 -Shepard, Sam Safe House 2012 -Shepard, Sam The Notebook 2004 -Shepard, Sam Swordfish 2001 -Armstrong, Alun The Saint 1997 -Armstrong, Alun Braveheart 1995 -Armstrong, Alun Sleepy Hollow 1999 -Armstrong, Alun Van Helsing 2004 -Armstrong, Alun Eragon 2006 -Armstrong, Alun The Mummy Returns 2001 -Wilson, Rainn Almost Famous 2000 -Wilson, Rainn Monsters vs Aliens 2009 -Wilson, Rainn Transformers: Revenge of the Fallen 2009 -Wilson, Rainn Galaxy Quest 1999 -Wilson, Rainn America's Sweethearts 2001 -Wilson, Rainn Juno 2007 -Wilson, Rainn Sahara 2005 -Graue, Marc Night at the Museum: Battle of the Smithsonian 2009 -Graue, Marc Clash of the Titans 2010 -Graue, Marc Spider-Man 3 2007 -Cobb, Frances We Are Marshall 2006 -Cobb, Frances Madea Goes to Jail 2009 -Cobb, Frances Due Date 2010 -Dillon, Matt Herbie Fully Loaded 2005 -Dillon, Matt In & Out 1997 -Dillon, Matt You, Me and Dupree 2006 -Dillon, Matt There's Something About Mary 1998 -Dillon, Matt Takers 2010 -Maeda, Guy Norbit 2007 -Maeda, Guy Yes Man 2008 -Maeda, Guy The Little Mermaid 1989 -Smith, Amber (I) L.A. Confidential 1997 -Smith, Amber (I) The Mirror Has Two Faces 1996 -Smith, Amber (I) American Beauty 1999 -Thor, Cameron Jurassic Park 1993 -Thor, Cameron Hook 1991 -Thor, Cameron Clear and Present Danger 1994 -Thor, Cameron Windtalkers 2002 -Thor, Cameron A Few Good Men 1992 -Dzhigarkhanyan, Armen Shirli-Myrli 1995 -Dzhigarkhanyan, Armen Samyy luchshiy film 2008 -Dzhigarkhanyan, Armen Moskovskiye kanikuly 1995 -Burke, Marylouise Mona Lisa Smile 2003 -Burke, Marylouise Meet Joe Black 1998 -Burke, Marylouise Must Love Dogs 2005 -Burke, Marylouise Sideways 2004 -Goodman, Brian (I) Catch Me If You Can 2002 -Goodman, Brian (I) Munich 2005 -Goodman, Brian (I) The Fast and the Furious: Tokyo Drift 2006 -Goodman, Brian (I) Blow 2001 -Carson, Silas Star Wars: Episode III - Revenge of the Sith 2005 -Carson, Silas Hidalgo 2004 -Carson, Silas Star Wars: Episode I - The Phantom Menace 1999 -Carson, Silas Star Wars: Episode II - Attack of the Clones 2002 -Webster, Derek (I) Stargate 1994 -Webster, Derek (I) Godzilla 1998 -Webster, Derek (I) Independence Day 1996 -Tobolowsky, Stephen Groundhog Day 1993 -Tobolowsky, Stephen Wild Hogs 2007 -Tobolowsky, Stephen Freaky Friday 2003 -Tobolowsky, Stephen Memento 2000 -Tobolowsky, Stephen Failure to Launch 2006 -Tobolowsky, Stephen Robots 2005 -Tobolowsky, Stephen Basic Instinct 1992 -Tobolowsky, Stephen The Time Traveler's Wife 2009 -Tobolowsky, Stephen The Lorax 2012 -Tobolowsky, Stephen The Insider 1999 -Tobolowsky, Stephen Garfield 2004 -Tobolowsky, Stephen Miss Congeniality 2: Armed and Fabulous 2005 -Ferrera, America The Sisterhood of the Traveling Pants 2005 -Ferrera, America How to Train Your Dragon 2010 -Ferrera, America The Sisterhood of the Traveling Pants 2 2008 -Blessing, Jack Talladega Nights: The Ballad of Ricky Bobby 2006 -Blessing, Jack Open Season 2006 -Blessing, Jack Shrek the Third 2007 -Blessing, Jack Megamind 2010 -Imrie, Celia Bridget Jones's Diary 2001 -Imrie, Celia Nanny McPhee 2005 -Imrie, Celia Star Wars: Episode I - The Phantom Menace 1999 -Imrie, Celia The Best Exotic Marigold Hotel 2011 -Imrie, Celia Bridget Jones: The Edge of Reason 2004 -Imrie, Celia Calendar Girls 2003 -Wong, Albert (I) Enemy of the State 1998 -Wong, Albert (I) Armageddon 1998 -Wong, Albert (I) Rush Hour 1998 -Barberie, Jillian Project X 2012 -Barberie, Jillian Alvin and the Chipmunks 2007 -Barberie, Jillian Volcano 1997 -Duran, Richard L. Con Air 1997 -Duran, Richard L. Holes 2003 -Duran, Richard L. Back to the Future 1985 -Brent, Eve The Green Mile 1999 -Brent, Eve The Curious Case of Benjamin Button 2008 -Brent, Eve Garfield 2004 -Sawyer, Connie (I) Dumb & Dumber 1994 -Sawyer, Connie (I) Pineapple Express 2008 -Sawyer, Connie (I) Something's Gotta Give 2003 -Lake, Sean R. J. Edgar 2011 -Lake, Sean R. Ocean's Thirteen 2007 -Lake, Sean R. Horrible Bosses 2011 -Warren, Paul (VI) Sherlock Holmes: A Game of Shadows 2011 -Warren, Paul (VI) Snow White and the Huntsman 2012 -Warren, Paul (VI) Harry Potter and the Deathly Hallows: Part 1 2010 -Warren, Paul (VI) Hereafter 2010 -Warren, Paul (VI) Clash of the Titans 2010 -Altes, Steve The Peacemaker 1997 -Altes, Steve Hollow Man 2000 -Altes, Steve Die Hard: With a Vengeance 1995 -Haumann, Máté Eragon 2006 -Haumann, Máté Sorstalanság 2005 -Haumann, Máté Monte Carlo 2011 -Michaels, Gordon Air Force One 1997 -Michaels, Gordon Outbreak 1995 -Michaels, Gordon Scream 4 2011 -Michaels, Gordon The Lost World: Jurassic Park 1997 -Tisdale, Ashley A Bug's Life 1998 -Tisdale, Ashley High School Musical 3: Senior Year 2008 -Tisdale, Ashley Aliens in the Attic 2009 -Veduccio, Becky Maid in Manhattan 2002 -Veduccio, Becky Return to Me 2000 -Veduccio, Becky Mona Lisa Smile 2003 -Edwards, Laura (III) Hairspray 2007 -Edwards, Laura (III) Step Up 2: The Streets 2008 -Edwards, Laura (III) Footloose 2011 -Edwards, Laura (III) Alvin and the Chipmunks 2007 -Edwards, Laura (III) Step Up 2006 -Sutherland, Donald (I) Disclosure 1994 -Sutherland, Donald (I) Final Fantasy: The Spirits Within 2001 -Sutherland, Donald (I) A Time to Kill 1996 -Sutherland, Donald (I) Pride & Prejudice 2005 -Sutherland, Donald (I) Outbreak 1995 -Sutherland, Donald (I) Cold Mountain 2003 -Sutherland, Donald (I) The Italian Job 2003 -Sutherland, Donald (I) The Hunger Games 2012 -Sutherland, Donald (I) JFK 1991 -Sutherland, Donald (I) Horrible Bosses 2011 -Sutherland, Donald (I) Space Cowboys 2000 -Kelly, William James The Happening 2008 -Kelly, William James Law Abiding Citizen 2009 -Kelly, William James Invincible 2006 -Kelly, William James It's Complicated 2009 -Kelly, William James Safe House 2012 -Ciccolella, Jude The Manchurian Candidate 2004 -Ciccolella, Jude World Trade Center 2006 -Ciccolella, Jude Million Dollar Baby 2004 -Ciccolella, Jude Daredevil 2003 -Ciccolella, Jude High Crimes 2002 -Ciccolella, Jude Star Trek: Nemesis 2002 -Ciccolella, Jude The Terminal 2004 -Ciccolella, Jude Mercury Rising 1998 -Ciccolella, Jude Sin City 2005 -Wahlberg, Mark (I) Four Brothers 2005 -Wahlberg, Mark (I) Three Kings 1999 -Wahlberg, Mark (I) Invincible 2006 -Wahlberg, Mark (I) The Fighter 2010 -Wahlberg, Mark (I) Date Night 2010 -Wahlberg, Mark (I) The Happening 2008 -Wahlberg, Mark (I) The Italian Job 2003 -Wahlberg, Mark (I) The Departed 2006 -Wahlberg, Mark (I) The Other Guys 2010 -Wahlberg, Mark (I) Max Payne 2008 -Wahlberg, Mark (I) Contraband 2012 -Wahlberg, Mark (I) The Perfect Storm 2000 -Wahlberg, Mark (I) Boogie Nights 1997 -Davidtz, Embeth Matilda 1996 -Davidtz, Embeth Bridget Jones's Diary 2001 -Davidtz, Embeth The Amazing Spider-Man 2012 -Davidtz, Embeth Bicentennial Man 1999 -Davidtz, Embeth The Girl with the Dragon Tattoo 2011 -Davidtz, Embeth Schindler's List 1993 -Abergel, Rakefet Superbad 2007 -Abergel, Rakefet Just Go with It 2011 -Abergel, Rakefet She's All That 1999 -Rodriguez, Mel (I) Panic Room 2002 -Rodriguez, Mel (I) Little Miss Sunshine 2006 -Rodriguez, Mel (I) The Terminal 2004 -Rodriguez, Mel (I) Garfield 2004 -Rodriguez, Mel (I) Showtime 2002 -Ferraro, Jay Gulliver's Travels 2010 -Ferraro, Jay Percy Jackson & the Olympians: The Lightning Thief 2010 -Ferraro, Jay The Sisterhood of the Traveling Pants 2 2008 -Ferraro, Jay College Road Trip 2008 -Staunton, Imelda Nanny McPhee 2005 -Staunton, Imelda Shakespeare in Love 1998 -Staunton, Imelda Alice in Wonderland 2010 -Staunton, Imelda Harry Potter and the Deathly Hallows: Part 1 2010 -Staunton, Imelda Harry Potter and the Order of the Phoenix 2007 -Staunton, Imelda Chicken Run 2000 -MacKay, Michael Reid X2 2003 -MacKay, Michael Reid Batman & Robin 1997 -MacKay, Michael Reid Ace Ventura: When Nature Calls 1995 -MacKay, Michael Reid Se7en 1995 -Stolte, Christian Ali 2001 -Stolte, Christian Road to Perdition 2002 -Stolte, Christian Law Abiding Citizen 2009 -Stolte, Christian Public Enemies 2009 -Stolte, Christian A Nightmare on Elm Street 2010 -Doyle, Louis Harry Potter and the Goblet of Fire 2005 -Doyle, Louis Harry Potter and the Chamber of Secrets 2002 -Doyle, Louis Harry Potter and the Order of the Phoenix 2007 -Winokur, Marissa Jaret Fever Pitch 2005 -Winokur, Marissa Jaret Scary Movie 2000 -Winokur, Marissa Jaret American Beauty 1999 -Winokur, Marissa Jaret Never Been Kissed 1999 -MacDonald, James (I) Mercury Rising 1998 -MacDonald, James (I) Space Cowboys 2000 -MacDonald, James (I) Volcano 1997 -MacDonald, James (I) Phone Booth 2002 -MacDonald, James (I) Malcolm X 1992 -Hodges, David Alan The Heartbreak Kid 2007 -Hodges, David Alan Four Christmases 2008 -Hodges, David Alan Funny People 2009 -Hodges, David Alan The Pursuit of Happyness 2006 -Hodges, David Alan Moneyball 2011 -Robinson, Shaun (I) America's Sweethearts 2001 -Robinson, Shaun (I) Dr. Dolittle 2 2001 -Robinson, Shaun (I) Bruce Almighty 2003 -Reardon, John (V) White Chicks 2004 -Reardon, John (V) TRON: Legacy 2010 -Reardon, John (V) Scary Movie 4 2006 -Sturgis, Gary Anthony Volcano 1997 -Sturgis, Gary Anthony Spider-Man 2 2004 -Sturgis, Gary Anthony Spider-Man 2002 -McCourt, Malachy The Devil's Own 1997 -McCourt, Malachy Righteous Kill 2008 -McCourt, Malachy The Other Guys 2010 -McBride, Jamie (I) Transformers 2007 -McBride, Jamie (I) Collateral 2004 -McBride, Jamie (I) Babel 2006 -McBride, Jamie (I) The Island 2005 -Kahn, Karen (I) High Crimes 2002 -Kahn, Karen (I) The Pursuit of Happyness 2006 -Kahn, Karen (I) Mrs. Doubtfire 1993 -Crook, Mackenzie The Adventures of Tintin 2011 -Crook, Mackenzie Pirates of the Caribbean: At World's End 2007 -Crook, Mackenzie Pirates of the Caribbean: Dead Man's Chest 2006 -Crook, Mackenzie Finding Neverland 2004 -Crook, Mackenzie The Brothers Grimm 2005 -Crook, Mackenzie Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Bailey, Charles E. Black Knight 2001 -Bailey, Charles E. A Walk to Remember 2002 -Bailey, Charles E. Domestic Disturbance 2001 -Técsy, Sándor The Good Shepherd 2006 -Técsy, Sándor Burn After Reading 2008 -Técsy, Sándor The Sorcerer's Apprentice 2010 -Pink (I) Happy Feet Two 2011 -Pink (I) Get Him to the Greek 2010 -Pink (I) Charlie's Angels: Full Throttle 2003 -Idle, Eric Pinocchio 2002 -Idle, Eric 102 Dalmatians 2000 -Idle, Eric Casper 1995 -Idle, Eric South Park: Bigger Longer & Uncut 1999 -Idle, Eric Shrek the Third 2007 -Ray, Connie (I) The Time Machine 2002 -Ray, Connie (I) Thank You for Smoking 2005 -Ray, Connie (I) About Schmidt 2002 -Ray, Connie (I) Hope Floats 1998 -Ray, Connie (I) Space Jam 1996 -Ray, Connie (I) Stuart Little 1999 -Ray, Connie (I) Speed 2: Cruise Control 1997 -Blunt, Emily Gnomeo & Juliet 2011 -Blunt, Emily Gulliver's Travels 2010 -Blunt, Emily The Devil Wears Prada 2006 -Blunt, Emily The Wolfman 2010 -Blunt, Emily Charlie Wilson's War 2007 -Blunt, Emily The Muppets 2011 -Blunt, Emily The Adjustment Bureau 2011 -Blunt, Emily Dan in Real Life 2007 -Walliams, David Stardust 2007 -Walliams, David The Chronicles of Narnia: Prince Caspian 2008 -Walliams, David Marmaduke 2010 -Walliams, David Dinner for Schmucks 2010 -Ortiz, Laura (I) Horton Hears a Who! 2008 -Ortiz, Laura (I) Norbit 2007 -Ortiz, Laura (I) The Hills Have Eyes 2006 -Hay, Amber You, Me and Dupree 2006 -Hay, Amber Hot Tub Time Machine 2010 -Hay, Amber Ocean's Thirteen 2007 -Osment, Eugene Baby Geniuses 1999 -Osment, Eugene Pay It Forward 2000 -Osment, Eugene Minority Report 2002 -Osment, Eugene Artificial Intelligence: AI 2001 -Baker, Becky Ann Spider-Man 3 2007 -Baker, Becky Ann Nights in Rodanthe 2008 -Baker, Becky Ann Men in Black 1997 -Baker, Becky Ann Two Weeks Notice 2002 -Baker, Becky Ann In & Out 1997 -Karen, James Superman Returns 2006 -Karen, James Wall Street 1987 -Karen, James Congo 1995 -Karen, James Any Given Sunday 1999 -Karen, James Poltergeist 1982 -Karen, James The Pursuit of Happyness 2006 -Gibson, Chic The Sisterhood of the Traveling Pants 2005 -Gibson, Chic Romeo Must Die 2000 -Gibson, Chic Scary Movie 4 2006 -Jones, Cherry (I) Signs 2002 -Jones, Cherry (I) New Year's Eve 2011 -Jones, Cherry (I) The Village 2004 -Jones, Cherry (I) Ocean's Twelve 2004 -Jones, Cherry (I) The Perfect Storm 2000 -Jones, Cherry (I) The Horse Whisperer 1998 -Jones, Cherry (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Jones, Cherry (I) Erin Brockovich 2000 -Truter, Gregor Shakespeare in Love 1998 -Truter, Gregor Snow White and the Huntsman 2012 -Truter, Gregor The Count of Monte Cristo 2002 -Truter, Gregor The English Patient 1996 -Burkholder, Scott Gone in Sixty Seconds 2000 -Burkholder, Scott Bandits 2001 -Burkholder, Scott Con Air 1997 -Burkholder, Scott Primary Colors 1998 -Burkholder, Scott The Birdcage 1996 -Burkholder, Scott Swordfish 2001 -Lowe, David (VIII) Talladega Nights: The Ballad of Ricky Bobby 2006 -Lowe, David (VIII) Shallow Hal 2001 -Lowe, David (VIII) Black Knight 2001 -Lowe, David (VIII) The Patriot 2000 -Jones, Caleb Landry The Social Network 2010 -Jones, Caleb Landry Contraband 2012 -Jones, Caleb Landry X-Men: First Class 2011 -Jones, Caleb Landry No Country for Old Men 2007 -Webb, Bronson Harry Potter and the Prisoner of Azkaban 2004 -Webb, Bronson Atonement 2007 -Webb, Bronson Kingdom of Heaven 2005 -Webb, Bronson Robin Hood 2010 -Webb, Bronson Pirates of the Caribbean: On Stranger Tides 2011 -Beach, Cameron Black Knight 2001 -Beach, Cameron Road Trip 2000 -Beach, Cameron The Dukes of Hazzard 2005 -DiCenzo, George About Last Night... 1986 -DiCenzo, George Close Encounters of the Third Kind 1977 -DiCenzo, George Back to the Future 1985 -Touhy, Rick Barbershop 2: Back in Business 2004 -Touhy, Rick The Jackal 1997 -Touhy, Rick The Negotiator 1998 -Kim, Randall Duk Memoirs of a Geisha 2005 -Kim, Randall Duk The Matrix Reloaded 2003 -Kim, Randall Duk Anna and the King 1999 -Kim, Randall Duk Kung Fu Panda 2008 -Kim, Randall Duk The Last Airbender 2010 -Kim, Randall Duk The Thin Red Line 1998 -Caputo, Jay Congo 1995 -Caputo, Jay Rise of the Planet of the Apes 2011 -Caputo, Jay The Amazing Spider-Man 2012 -Caputo, Jay Spawn 1997 -Jones, Eddie (I) Trading Places 1983 -Jones, Eddie (I) Seabiscuit 2003 -Jones, Eddie (I) The Terminal 2004 -Jones, Eddie (I) Return to Me 2000 -Hunt, Chantal Sucker Punch 2011 -Hunt, Chantal Scooby Doo 2: Monsters Unleashed 2004 -Hunt, Chantal Mirror Mirror 2012 -Jones, Kelly (VII) Saw II 2005 -Jones, Kelly (VII) Saw IV 2007 -Jones, Kelly (VII) Saw III 2006 -Nakamura, Suzy Deep Impact 1998 -Nakamura, Suzy Must Love Dogs 2005 -Nakamura, Suzy Dodgeball: A True Underdog Story 2004 -Nakamura, Suzy Evan Almighty 2007 -Nakamura, Suzy The 40 Year Old Virgin 2005 -Tierney, Malcolm Braveheart 1995 -Tierney, Malcolm The Saint 1997 -Tierney, Malcolm Star Wars 1977 -Jemison, Eddie Bruce Almighty 2003 -Jemison, Eddie The Relic 1997 -Jemison, Eddie Ocean's Thirteen 2007 -Jemison, Eddie Ocean's Eleven 2001 -Jemison, Eddie Ocean's Twelve 2004 -Warshofsky, David Don't Say a Word 2001 -Warshofsky, David Unstoppable 2010 -Warshofsky, David The Bone Collector 1999 -Warshofsky, David G.I. Jane 1997 -Warshofsky, David Public Enemies 2009 -Warshofsky, David There Will Be Blood 2007 -Warshofsky, David Face/Off 1997 -Thomas, Leonard L. S.W.A.T. 2003 -Thomas, Leonard L. Coach Carter 2005 -Thomas, Leonard L. Malcolm X 1992 -Thomas, Leonard L. xXx 2002 -Thomas, Leonard L. A Time to Kill 1996 -Thomas, Leonard L. Changing Lanes 2002 -Thomas, Leonard L. The Negotiator 1998 -Thomas, Leonard L. The Shaggy Dog 2006 -Podell, Eyal Behind Enemy Lines 2001 -Podell, Eyal Deep Blue Sea 1999 -Podell, Eyal The Insider 1999 -Stewart, Kellee Hot Tub Time Machine 2010 -Stewart, Kellee Monster-in-Law 2005 -Stewart, Kellee Guess Who 2005 -Chuang, Susan Bewitched 2005 -Chuang, Susan Like Mike 2002 -Chuang, Susan Miss Congeniality 2: Armed and Fabulous 2005 -Callaghan, Andy X-Men: First Class 2011 -Callaghan, Andy Robin Hood 2010 -Callaghan, Andy V for Vendetta 2005 -Burton, Tony (I) Rocky V 1990 -Burton, Tony (I) Rocky Balboa 2006 -Burton, Tony (I) Hook 1991 -Burton, Tony (I) Rocky III 1982 -Burton, Tony (I) Rocky IV 1985 -Laresca, Vincent Romeo + Juliet 1996 -Laresca, Vincent The Aviator 2004 -Laresca, Vincent The Devil's Advocate 1997 -Laresca, Vincent Coach Carter 2005 -Laresca, Vincent The Fast and the Furious: Tokyo Drift 2006 -Laresca, Vincent Cop Land 1997 -Laresca, Vincent The Amazing Spider-Man 2012 -Laresca, Vincent K-PAX 2001 -Boyd, Billy (I) Master and Commander: The Far Side of the World 2003 -Boyd, Billy (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Boyd, Billy (I) The Lord of the Rings: The Return of the King 2003 -Boyd, Billy (I) The Lord of the Rings: The Two Towers 2002 -Bart, Roger The Stepford Wives 2004 -Bart, Roger The Insider 1999 -Bart, Roger American Gangster 2007 -Bart, Roger Law Abiding Citizen 2009 -Bart, Roger Hercules 1997 -Brant, Preston The Blind Side 2009 -Brant, Preston Road Trip 2000 -Brant, Preston Remember the Titans 2000 -Berry, Halle Gothika 2003 -Berry, Halle Robots 2005 -Berry, Halle X-Men 2000 -Berry, Halle The Flintstones 1994 -Berry, Halle Die Another Day 2002 -Berry, Halle X-Men: The Last Stand 2006 -Berry, Halle X2 2003 -Berry, Halle Catwoman 2004 -Berry, Halle New Year's Eve 2011 -Berry, Halle Swordfish 2001 -LeBell, Gene Rush Hour 1998 -LeBell, Gene Men in Black II 2002 -LeBell, Gene Rat Race 2001 -Heald, Anthony The Silence of the Lambs 1991 -Heald, Anthony A Time to Kill 1996 -Heald, Anthony Red Dragon 2002 -Heald, Anthony X-Men: The Last Stand 2006 -Clarke, Gin The Fifth Element 1997 -Clarke, Gin Star Wars: Episode I - The Phantom Menace 1999 -Clarke, Gin Star Wars: Episode II - Attack of the Clones 2002 -Brown, Spitfire Mercury Rising 1998 -Brown, Spitfire U.S. Marshals 1998 -Brown, Spitfire Batman & Robin 1997 -Brown, Spitfire The Negotiator 1998 -King, George (III) Hairspray 2007 -King, George (III) Jumper 2008 -King, George (III) A History of Violence 2005 -King, George (III) Nutty Professor II: The Klumps 2000 -King, George (III) Fever Pitch 2005 -Swanson, Hannah A Bug's Life 1998 -Swanson, Hannah Mighty Joe Young 1998 -Swanson, Hannah The Haunting 1999 -Irwin, Bill (I) The Manchurian Candidate 2004 -Irwin, Bill (I) How the Grinch Stole Christmas 2000 -Irwin, Bill (I) Lady in the Water 2006 -Edelstein, Lisa What Women Want 2000 -Edelstein, Lisa Keeping the Faith 2000 -Edelstein, Lisa As Good as It Gets 1997 -Edelstein, Lisa Daddy Day Care 2003 -Reiner, Carl Ocean's Eleven 2001 -Reiner, Carl Ocean's Twelve 2004 -Reiner, Carl Ocean's Thirteen 2007 -Maffia, Roma Double Jeopardy 1999 -Maffia, Roma Eraser 1996 -Maffia, Roma Disclosure 1994 -Maffia, Roma I Am Sam 2001 -Maffia, Roma Holes 2003 -Maffia, Roma Kiss the Girls 1997 -Linsley, Jonathan Pirates of the Caribbean: Dead Man's Chest 2006 -Linsley, Jonathan National Treasure: Book of Secrets 2007 -Linsley, Jonathan Pirates of the Caribbean: At World's End 2007 -Philips, Aaron Zachary Little Fockers 2010 -Philips, Aaron Zachary Just Go with It 2011 -Philips, Aaron Zachary National Treasure: Book of Secrets 2007 -Grenier, Zach Shaft 2000 -Grenier, Zach 4: Rise of the Silver Surfer 2007 -Grenier, Zach J. Edgar 2011 -Grenier, Zach Cliffhanger 1993 -Grenier, Zach Fight Club 1999 -Grenier, Zach Donnie Brasco 1997 -Grenier, Zach Twister 1996 -Grenier, Zach Swordfish 2001 -Williams, Kaleti My Sister's Keeper 2009 -Williams, Kaleti Pirates of the Caribbean: At World's End 2007 -Williams, Kaleti G.I. Joe: The Rise of Cobra 2009 -Prochnow, Jürgen The Da Vinci Code 2006 -Prochnow, Jürgen Air Force One 1997 -Prochnow, Jürgen Beverly Hills Cop II 1987 -Prochnow, Jürgen The English Patient 1996 -Evans, Troy (I) Phenomenon 1996 -Evans, Troy (I) Home on the Range 2004 -Evans, Troy (I) My Favorite Martian 1999 -Wyatt, Erin Ghosts of Girlfriends Past 2009 -Wyatt, Erin Confessions of a Shopaholic 2009 -Wyatt, Erin Wall Street: Money Never Sleeps 2010 -Duell, William In & Out 1997 -Duell, William How to Lose a Guy in 10 Days 2003 -Duell, William The Out-of-Towners 1999 -McKinney, Bill (I) First Blood 1982 -McKinney, Bill (I) The Green Mile 1999 -McKinney, Bill (I) Back to the Future Part III 1990 -Searcy, Nick The Last Song 2010 -Searcy, Nick The Ugly Truth 2009 -Searcy, Nick Runaway Jury 2003 -Searcy, Nick Moneyball 2011 -Searcy, Nick Eagle Eye 2008 -Searcy, Nick One Hour Photo 2002 -Searcy, Nick The Fugitive 1993 -Searcy, Nick Cast Away 2000 -Vega, Paz Hable con ella 2002 -Vega, Paz Madagascar 3: Europe's Most Wanted 2012 -Vega, Paz Lucía y el sexo 2001 -Proulx, Brooklynn Piranha 2010 -Proulx, Brooklynn The Time Traveler's Wife 2009 -Proulx, Brooklynn Brokeback Mountain 2005 -Vazquez, Alberto (IV) Wag the Dog 1997 -Vazquez, Alberto (IV) 'Crocodile' Dundee II 1988 -Vazquez, Alberto (IV) Saturday Night Fever 1977 -Vazquez, Alberto (IV) Michael Clayton 2007 -Bernthal, Jon Date Night 2010 -Bernthal, Jon World Trade Center 2006 -Bernthal, Jon Night at the Museum: Battle of the Smithsonian 2009 -Bernthal, Jon The Ghost Writer 2010 -Ganzel, Teresa Horton Hears a Who! 2008 -Ganzel, Teresa Cars 2006 -Ganzel, Teresa Toy Story 3 2010 -Ganzel, Teresa Surf's Up 2007 -Ganzel, Teresa Monsters, Inc. 2001 -Ganzel, Teresa WALL·E 2008 -Ganzel, Teresa Up 2009 -Gale, Lorena Fantastic Four 2005 -Gale, Lorena The Chronicles of Riddick 2004 -Gale, Lorena Snow Day 2000 -Gale, Lorena The Exorcism of Emily Rose 2005 -Gale, Lorena The Butterfly Effect 2004 -Gale, Lorena The Day the Earth Stood Still 2008 -Gale, Lorena The X Files: I Want to Believe 2008 -Cohn, Ethan (I) The Amazing Spider-Man 2012 -Cohn, Ethan (I) Alice in Wonderland 2010 -Cohn, Ethan (I) Lady in the Water 2006 -Stroma, Freddie Harry Potter and the Deathly Hallows: Part 1 2010 -Stroma, Freddie Harry Potter and the Deathly Hallows: Part 2 2011 -Stroma, Freddie Harry Potter and the Half-Blood Prince 2009 -Overby, Rhonda G.I. Jane 1997 -Overby, Rhonda The Replacements 2000 -Overby, Rhonda Enemy of the State 1998 -Overby, Rhonda Signs 2002 -Arnold, Tom (I) Exit Wounds 2001 -Arnold, Tom (I) Freddy's Dead: The Final Nightmare 1991 -Arnold, Tom (I) Austin Powers: International Man of Mystery 1997 -Arnold, Tom (I) Kicking & Screaming 2005 -Arnold, Tom (I) True Lies 1994 -Rocco, Alex The Wedding Planner 2001 -Rocco, Alex The Godfather 1972 -Rocco, Alex A Bug's Life 1998 -Frain, James (I) Elizabeth 1998 -Frain, James (I) Where the Heart Is 2000 -Frain, James (I) TRON: Legacy 2010 -Frain, James (I) Water for Elephants 2011 -Frain, James (I) The Count of Monte Cristo 2002 -Ejiofor, Chiwetel Salt 2010 -Ejiofor, Chiwetel Inside Man 2006 -Ejiofor, Chiwetel American Gangster 2007 -Ejiofor, Chiwetel Four Brothers 2005 -Ejiofor, Chiwetel Amistad 1997 -Ejiofor, Chiwetel Love Actually 2003 -McSorley, Gerard War Horse 2011 -McSorley, Gerard Braveheart 1995 -McSorley, Gerard Robin Hood 2010 -McSorley, Gerard Michael Collins 1996 -McSorley, Gerard The Constant Gardener 2005 -Bartlett, Erinn Little Nicky 2000 -Bartlett, Erinn Deep Blue Sea 1999 -Bartlett, Erinn Raising Helen 2004 -Bartlett, Erinn Shallow Hal 2001 -Bartlett, Erinn Rumor Has It... 2005 -Curtis-Hall, Vondie Romeo + Juliet 1996 -Curtis-Hall, Vondie Die Hard 2 1990 -Curtis-Hall, Vondie Clear and Present Danger 1994 -Curtis-Hall, Vondie Coming to America 1988 -Nicholson, Scott (I) Timecop 1994 -Nicholson, Scott (I) Snakes on a Plane 2006 -Nicholson, Scott (I) Cats & Dogs 2001 -Ward, Sela The Day After Tomorrow 2004 -Ward, Sela Runaway Bride 1999 -Ward, Sela The Fugitive 1993 -Minor, Jerry Anchorman: The Legend of Ron Burgundy 2004 -Minor, Jerry I Love You, Man 2009 -Minor, Jerry Funny People 2009 -Angelo, Hilary American Pie 1999 -Angelo, Hilary Charlie Wilson's War 2007 -Angelo, Hilary Bring It On 2000 -Kutsenko, Yuriy Rzhevskiy protiv Napoleona 2012 -Kutsenko, Yuriy Turetskiy gambit 2005 -Kutsenko, Yuriy Dnevnoy dozor 2006 -Kutsenko, Yuriy Nochnoy dozor 2004 -Kutsenko, Yuriy Avgust. Vosmogo 2012 -Jennings, Byron (I) A Civil Action 1998 -Jennings, Byron (I) Julie & Julia 2009 -Jennings, Byron (I) A Time to Kill 1996 -Cabot, Christina The Incredible Hulk 2008 -Cabot, Christina Hostage 2005 -Cabot, Christina Fight Club 1999 -Millard, Jody The Longest Yard 2005 -Millard, Jody Deep Impact 1998 -Millard, Jody The Birdcage 1996 -Millard, Jody True Lies 1994 -Millard, Jody Rush Hour 1998 -Blethyn, Brenda The Wild Thornberrys Movie 2002 -Blethyn, Brenda Atonement 2007 -Blethyn, Brenda Pride & Prejudice 2005 -Howard, Jerod Home Alone 3 1997 -Howard, Jerod My Best Friend's Wedding 1997 -Howard, Jerod Save the Last Dance 2001 -York, Morgan Cheaper by the Dozen 2 2005 -York, Morgan The Pacifier 2005 -York, Morgan Cheaper by the Dozen 2003 -Gregory, Michael (I) Total Recall 1990 -Gregory, Michael (I) S.W.A.T. 2003 -Gregory, Michael (I) Eraser 1996 -Gregory, Michael (I) Beverly Hills Cop 1984 -Gregory, Michael (I) RoboCop 1987 -Woller, Kirk B.R. Resident Evil: Extinction 2007 -Woller, Kirk B.R. Poseidon 2006 -Woller, Kirk B.R. Flightplan 2005 -Woller, Kirk B.R. After the Sunset 2004 -Woller, Kirk B.R. Big Momma's House 2 2006 -Woller, Kirk B.R. Minority Report 2002 -Woller, Kirk B.R. Hulk 2003 -Woller, Kirk B.R. The Ring Two 2005 -Woller, Kirk B.R. Mercury Rising 1998 -Woller, Kirk B.R. Swordfish 2001 -Morales, F. Valentino The Fast and the Furious 2001 -Morales, F. Valentino The Pacifier 2005 -Morales, F. Valentino xXx 2002 -Morales, F. Valentino Shaft 2000 -Moyer, Keith Enchanted 2007 -Moyer, Keith Rocky Balboa 2006 -Moyer, Keith Invincible 2006 -Moyer, Keith Lady in the Water 2006 -Marcus, Trula M. Forgetting Sarah Marshall 2008 -Marcus, Trula M. The Rainmaker 1997 -Marcus, Trula M. The Skeleton Key 2005 -Marcus, Trula M. Little Fockers 2010 -Marcus, Trula M. The Fast and the Furious: Tokyo Drift 2006 -Duvall, Robert Phenomenon 1996 -Duvall, Robert Four Christmases 2008 -Duvall, Robert The 6th Day 2000 -Duvall, Robert Deep Impact 1998 -Duvall, Robert Apocalypse Now 1979 -Duvall, Robert John Q 2002 -Duvall, Robert Crazy Heart 2009 -Duvall, Robert Kicking & Screaming 2005 -Duvall, Robert A Civil Action 1998 -Duvall, Robert Open Range 2003 -Duvall, Robert Gone in Sixty Seconds 2000 -Duvall, Robert Thank You for Smoking 2005 -Duvall, Robert The Godfather 1972 -Duvall, Robert The Natural 1984 -Aitcheson, Fraser LiTTLEMAN 2006 -Aitcheson, Fraser The A-Team 2010 -Aitcheson, Fraser White Chicks 2004 -Mayo, Billy (I) Clockstoppers 2002 -Mayo, Billy (I) The Perfect Storm 2000 -Mayo, Billy (I) The Green Hornet 2011 -Peter, Jesse Shallow Hal 2001 -Peter, Jesse Fever Pitch 2005 -Peter, Jesse Me, Myself & Irene 2000 -Novello, Don Jack 1996 -Novello, Don Atlantis: The Lost Empire 2001 -Novello, Don Casper 1995 -Ali, Karen-Marie Forgetting Sarah Marshall 2008 -Ali, Karen-Marie Ocean's Thirteen 2007 -Ali, Karen-Marie Alvin and the Chipmunks 2007 -Nolasco, Amaury Max Payne 2008 -Nolasco, Amaury 2 Fast 2 Furious 2003 -Nolasco, Amaury Transformers 2007 -Astin, Sean The Lord of the Rings: The Fellowship of the Ring 2001 -Astin, Sean The Lord of the Rings: The Return of the King 2003 -Astin, Sean The Lord of the Rings: The Two Towers 2002 -Astin, Sean Alvin and the Chipmunks: The Squeakquel 2009 -Astin, Sean The Goonies 1985 -Astin, Sean 50 First Dates 2004 -Astin, Sean Courage Under Fire 1996 -Astin, Sean Click 2006 -Underwood, Blair Deep Impact 1998 -Underwood, Blair Set It Off 1996 -Underwood, Blair Madea's Family Reunion 2006 -Underwood, Blair Rules of Engagement 2000 -Goffe, Rusty Fred Claus 2007 -Goffe, Rusty Star Wars 1977 -Goffe, Rusty Harry Potter and the Deathly Hallows: Part 2 2011 -Goffe, Rusty Harry Potter and the Order of the Phoenix 2007 -Williams, Jim Cody Pirates of the Caribbean: Dead Man's Chest 2006 -Williams, Jim Cody Traffic 2000 -Williams, Jim Cody Herbie Fully Loaded 2005 -Williams, Jim Cody The Dukes of Hazzard 2005 -Williams, Jim Cody Dodgeball: A True Underdog Story 2004 -Weston, Douglas Fantastic Four 2005 -Weston, Douglas Six Days Seven Nights 1998 -Weston, Douglas Flushed Away 2006 -Swinton, Tilda Michael Clayton 2007 -Swinton, Tilda The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Swinton, Tilda Burn After Reading 2008 -Swinton, Tilda The Chronicles of Narnia: Prince Caspian 2008 -Swinton, Tilda The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Swinton, Tilda Vanilla Sky 2001 -Swinton, Tilda The Curious Case of Benjamin Button 2008 -Swinton, Tilda Constantine 2005 -Bennes, John I Know What You Did Last Summer 1997 -Bennes, John The Patriot 2000 -Bennes, John October Sky 1999 -Gaffigan, Jim Three Kings 1999 -Gaffigan, Jim 17 Again 2009 -Gaffigan, Jim 13 Going on 30 2004 -Simmons, J. Nathan 3:10 to Yuma 2007 -Simmons, J. Nathan Wild Wild West 1999 -Simmons, J. Nathan Crazy Heart 2009 -Zucker, Charlotte Ruthless People 1986 -Zucker, Charlotte My Best Friend's Wedding 1997 -Zucker, Charlotte Rat Race 2001 -Zucker, Charlotte Ghost 1990 -Hutchinson, Harry (I) Home Alone 2: Lost in New York 1992 -Hutchinson, Harry (I) The Lost World: Jurassic Park 1997 -Hutchinson, Harry (I) Air Force One 1997 -Breitmayer, Peter Jingle All the Way 1996 -Breitmayer, Peter G.I. Joe: The Rise of Cobra 2009 -Breitmayer, Peter Changeling 2008 -Breitmayer, Peter Fun with Dick and Jane 2005 -Breitmayer, Peter Horrible Bosses 2011 -Cassavetes, Nick The Hangover Part II 2011 -Cassavetes, Nick Face/Off 1997 -Cassavetes, Nick Blow 2001 -Gambon, Michael Harry Potter and the Goblet of Fire 2005 -Gambon, Michael Harry Potter and the Deathly Hallows: Part 2 2011 -Gambon, Michael The Insider 1999 -Gambon, Michael Harry Potter and the Half-Blood Prince 2009 -Gambon, Michael The Book of Eli 2010 -Gambon, Michael Sleepy Hollow 1999 -Gambon, Michael The King's Speech 2010 -Gambon, Michael The Good Shepherd 2006 -Gambon, Michael Gosford Park 2001 -Gambon, Michael Harry Potter and the Order of the Phoenix 2007 -Gambon, Michael Harry Potter and the Prisoner of Azkaban 2004 -Gambon, Michael Sky Captain and the World of Tomorrow 2004 -Gambon, Michael The Omen 2006 -Gambon, Michael Harry Potter and the Deathly Hallows: Part 1 2010 -Gambon, Michael Open Range 2003 -Chung, Jamie (I) I Now Pronounce You Chuck & Larry 2007 -Chung, Jamie (I) Sucker Punch 2011 -Chung, Jamie (I) The Hangover Part II 2011 -Chung, Jamie (I) Grown Ups 2010 -Garner, Jerald G.I. Joe: The Rise of Cobra 2009 -Garner, Jerald The Terminal 2004 -Garner, Jerald Pirates of the Caribbean: Dead Man's Chest 2006 -Garner, Jerald Fast & Furious 2009 -Garner, Jerald Collateral 2004 -Garner, Jerald The Ugly Truth 2009 -Garner, Jerald Poseidon 2006 -Garner, Jerald He's Just Not That Into You 2009 -Garner, Jerald Takers 2010 -Moore, Joel David Avatar 2009 -Moore, Joel David The Shaggy Dog 2006 -Moore, Joel David Dodgeball: A True Underdog Story 2004 -Biberi, James National Treasure 2004 -Biberi, James Drive 2011 -Biberi, James The Brave One 2007 -Donnellan, Sean The Ant Bully 2006 -Donnellan, Sean Bolt 2008 -Donnellan, Sean Spider-Man 3 2007 -Wlaschiha, Tom Valkyrie 2008 -Wlaschiha, Tom Munich 2005 -Wlaschiha, Tom Enemy at the Gates 2001 -Stadler, Joerg EverAfter 1998 -Stadler, Joerg Spy Game 2001 -Stadler, Joerg Hannibal Rising 2007 -Stadler, Joerg Saving Private Ryan 1998 -Stadler, Joerg Harry Potter and the Half-Blood Prince 2009 -Dickson, Neil (I) Body of Lies 2008 -Dickson, Neil (I) Beowulf 2007 -Dickson, Neil (I) Eragon 2006 -Dickson, Neil (I) Garfield: A Tail of Two Kitties 2006 -Hall, Philip Baker Mr. Popper's Penguins 2011 -Hall, Philip Baker The Sum of All Fears 2002 -Hall, Philip Baker Rush Hour 2 2001 -Hall, Philip Baker The Truman Show 1998 -Hall, Philip Baker The Insider 1999 -Hall, Philip Baker The Talented Mr. Ripley 1999 -Hall, Philip Baker Air Force One 1997 -Hall, Philip Baker Rules of Engagement 2000 -Hall, Philip Baker Magnolia 1999 -Hall, Philip Baker Rush Hour 1998 -Hall, Philip Baker Enemy of the State 1998 -Hall, Philip Baker The Amityville Horror 2005 -Hall, Philip Baker Rush Hour 3 2007 -Hall, Philip Baker The Shaggy Dog 2006 -Hall, Philip Baker The Rock 1996 -Hall, Philip Baker Bruce Almighty 2003 -Hall, Philip Baker Boogie Nights 1997 -Ward, Kirk Forrest Gump 1994 -Ward, Kirk Austin Powers: The Spy Who Shagged Me 1999 -Ward, Kirk Showtime 2002 -Ward, Kirk The Island 2005 -Elwes, Cary Twister 1996 -Elwes, Cary New Year's Eve 2011 -Elwes, Cary Kiss the Girls 1997 -Elwes, Cary The Adventures of Tintin 2011 -Elwes, Cary No Strings Attached 2011 -Elwes, Cary Liar Liar 1997 -Elwes, Cary A Christmas Carol 2009 -Elwes, Cary Dracula 1992 -Elwes, Cary Saw 3D 2010 -Elwes, Cary Saw 2004 -Williams, Branden Charlie's Angels 2000 -Williams, Branden Halloween H20: 20 Years Later 1998 -Williams, Branden Never Been Kissed 1999 -Durell, R.J. Mr. & Mrs. Smith 2005 -Durell, R.J. Rush Hour 3 2007 -Durell, R.J. Austin Powers in Goldmember 2002 -Birman, Matt Exit Wounds 2001 -Birman, Matt The Time Traveler's Wife 2009 -Birman, Matt Urban Legend 1998 -Sewell, Rufus The Holiday 2006 -Sewell, Rufus The Legend of Zorro 2005 -Sewell, Rufus The Illusionist 2006 -Sewell, Rufus The Tourist 2010 -Sewell, Rufus A Knight's Tale 2001 -French, Dawn Harry Potter and the Prisoner of Azkaban 2004 -French, Dawn The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -French, Dawn Coraline 2009 -McCafferty, Michael (I) Bring It On 2000 -McCafferty, Michael (I) National Treasure: Book of Secrets 2007 -McCafferty, Michael (I) Changeling 2008 -Duke, Shaun Stigmata 1999 -Duke, Shaun One Fine Day 1996 -Duke, Shaun Sideways 2004 -Duke, Shaun Hanging Up 2000 -Nichols, Jonathan (I) Chicken Little 2005 -Nichols, Jonathan (I) Pay It Forward 2000 -Nichols, Jonathan (I) Bolt 2008 -Nichols, Jonathan (I) The Time Traveler's Wife 2009 -Garner, James (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Garner, James (I) The Notebook 2004 -Garner, James (I) Atlantis: The Lost Empire 2001 -Garner, James (I) Space Cowboys 2000 -Crosby, Douglas Hannibal 2001 -Crosby, Douglas The Departed 2006 -Crosby, Douglas Men in Black 3 2012 -Shafer, Tom Secretariat 2010 -Shafer, Tom Super 8 2011 -Shafer, Tom The Ides of March 2011 -Jeter, Michael Open Range 2003 -Jeter, Michael Jurassic Park III 2001 -Jeter, Michael The Polar Express 2004 -Jeter, Michael Mousehunt 1997 -Jeter, Michael Patch Adams 1998 -Jeter, Michael Waterworld 1995 -Jeter, Michael The Green Mile 1999 -Reaser, Elizabeth New Moon 2009 -Reaser, Elizabeth The Family Stone 2005 -Reaser, Elizabeth The Twilight Saga: Eclipse 2010 -Reaser, Elizabeth The Twilight Saga: Breaking Dawn - Part 1 2011 -Zellweger, Renée Chicago 2002 -Zellweger, Renée Me, Myself & Irene 2000 -Zellweger, Renée Bridget Jones's Diary 2001 -Zellweger, Renée Bee Movie 2007 -Zellweger, Renée Cinderella Man 2005 -Zellweger, Renée Shark Tale 2004 -Zellweger, Renée Monsters vs Aliens 2009 -Zellweger, Renée Jerry Maguire 1996 -Zellweger, Renée Cold Mountain 2003 -Zellweger, Renée Bridget Jones: The Edge of Reason 2004 -Twillie, Carmen License to Wed 2007 -Twillie, Carmen Norbit 2007 -Twillie, Carmen The Nightmare Before Christmas 1993 -Morgan, Tracy (II) The Longest Yard 2005 -Morgan, Tracy (II) Rio 2011 -Morgan, Tracy (II) G-Force 2009 -Morgan, Tracy (II) Death at a Funeral 2010 -Morgan, Tracy (II) Superhero Movie 2008 -Morgan, Tracy (II) LiTTLEMAN 2006 -Morgan, Tracy (II) The Other Guys 2010 -Morgan, Tracy (II) Cop Out 2010 -Morgan, Tracy (II) Are We There Yet? 2005 -Preston, Carrie (I) The Stepford Wives 2004 -Preston, Carrie (I) My Best Friend's Wedding 1997 -Preston, Carrie (I) Vicky Cristina Barcelona 2008 -Preston, Carrie (I) Mercury Rising 1998 -Oka, Masi Legally Blonde 2: Red, White & Blonde 2003 -Oka, Masi Along Came Polly 2004 -Oka, Masi Austin Powers in Goldmember 2002 -Oka, Masi Get Smart 2008 -Oka, Masi Friends with Benefits 2011 -Spence, Rebecca (I) Contagion 2011 -Spence, Rebecca (I) Public Enemies 2009 -Spence, Rebecca (I) The Break-Up 2006 -Ely, Kiara Nicole Drumline 2002 -Ely, Kiara Nicole Footloose 2011 -Ely, Kiara Nicole 17 Again 2009 -Watson-Johnson, Vernee The Kid 2000 -Watson-Johnson, Vernee Christmas with the Kranks 2004 -Watson-Johnson, Vernee Garfield: A Tail of Two Kitties 2006 -Watson-Johnson, Vernee The Ant Bully 2006 -Tuen, William Pik lik for 1995 -Tuen, William Rush Hour 2 2001 -Tuen, William Around the World in 80 Days 2004 -Garo, Armen The Game Plan 2007 -Garo, Armen Underdog 2007 -Garo, Armen The Departed 2006 -McGrady, Michael (I) Volcano 1997 -McGrady, Michael (I) Evolution 2001 -McGrady, Michael (I) The Thin Red Line 1998 -Parker, Nathaniel The Haunted Mansion 2003 -Parker, Nathaniel Stardust 2007 -Parker, Nathaniel The Bodyguard 1992 -Parker, Nathaniel The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Parker, Nathaniel Beverly Hills Ninja 1997 -Knapp, Alexis Project X 2012 -Knapp, Alexis Percy Jackson & the Olympians: The Lightning Thief 2010 -Knapp, Alexis Couples Retreat 2009 -Hoffman, Philip Seymour Charlie Wilson's War 2007 -Hoffman, Philip Seymour Capote 2005 -Hoffman, Philip Seymour Red Dragon 2002 -Hoffman, Philip Seymour The Ides of March 2011 -Hoffman, Philip Seymour Moneyball 2011 -Hoffman, Philip Seymour Almost Famous 2000 -Hoffman, Philip Seymour Along Came Polly 2004 -Hoffman, Philip Seymour Magnolia 1999 -Hoffman, Philip Seymour Cold Mountain 2003 -Hoffman, Philip Seymour Patch Adams 1998 -Hoffman, Philip Seymour Twister 1996 -Hoffman, Philip Seymour Mission: Impossible III 2006 -Hoffman, Philip Seymour The Talented Mr. Ripley 1999 -Hoffman, Philip Seymour Boogie Nights 1997 -Seydoux, Léa Mission: Impossible - Ghost Protocol 2011 -Seydoux, Léa Robin Hood 2010 -Seydoux, Léa Midnight in Paris 2011 -Seydoux, Léa Inglourious Basterds 2009 -Ray, Frankie (I) Blade 1998 -Ray, Frankie (I) End of Days 1999 -Ray, Frankie (I) How the Grinch Stole Christmas 2000 -McGrath, Alethea Star Wars: Episode III - Revenge of the Sith 2005 -McGrath, Alethea Knowing 2009 -McGrath, Alethea Star Wars: Episode II - Attack of the Clones 2002 -Sands, Roger Body of Lies 2008 -Sands, Roger National Treasure: Book of Secrets 2007 -Sands, Roger Step Up 2: The Streets 2008 -March, Craig (I) I, Robot 2004 -March, Craig (I) Along Came a Spider 2001 -March, Craig (I) Paycheck 2003 -Baldwin, Greg (I) Kung Fu Panda 2008 -Baldwin, Greg (I) TMNT 2007 -Baldwin, Greg (I) Cars 2006 -Stanton, Andrew (I) Cars 2006 -Stanton, Andrew (I) A Bug's Life 1998 -Stanton, Andrew (I) Toy Story 1995 -Stanton, Andrew (I) Toy Story 2 1999 -Stanton, Andrew (I) The Incredibles 2004 -Stanton, Andrew (I) WALL·E 2008 -Stanton, Andrew (I) Finding Nemo 2003 -Walton, John (II) The Matrix Reloaded 2003 -Walton, John (II) Australia 2008 -Walton, John (II) Nim's Island 2008 -Walton, John (II) Babe: Pig in the City 1998 -Somerville, Geraldine Harry Potter and the Goblet of Fire 2005 -Somerville, Geraldine Harry Potter and the Prisoner of Azkaban 2004 -Somerville, Geraldine Harry Potter and the Sorcerer's Stone 2001 -Somerville, Geraldine Harry Potter and the Chamber of Secrets 2002 -Somerville, Geraldine Harry Potter and the Deathly Hallows: Part 1 2010 -Somerville, Geraldine Gosford Park 2001 -Somerville, Geraldine Harry Potter and the Half-Blood Prince 2009 -Somerville, Geraldine Harry Potter and the Order of the Phoenix 2007 -Somerville, Geraldine Harry Potter and the Deathly Hallows: Part 2 2011 -Juan, The Bishop Don Magic Starsky & Hutch 2004 -Juan, The Bishop Don Magic S.W.A.T. 2003 -Juan, The Bishop Don Magic Old School 2003 -Carradine, David Kill Bill: Vol. 2 2004 -Carradine, David Death Race 2008 -Carradine, David Kill Bill: Vol. 1 2003 -Carradine, David Epic Movie 2007 -O'Brien, Philip Who Framed Roger Rabbit 1988 -O'Brien, Philip Batman 1989 -O'Brien, Philip Chariots of Fire 1981 -Bradford, James (I) The Aviator 2004 -Bradford, James (I) The Mummy: Tomb of the Dragon Emperor 2008 -Bradford, James (I) 300 2006 -Connery, Jason (I) Aladdin 1992 -Connery, Jason (I) Shanghai Noon 2000 -Connery, Jason (I) The Wild 2006 -Snyder, Eli Sucker Punch 2011 -Snyder, Eli Watchmen 2009 -Snyder, Eli 300 2006 -Shue, Elisabeth Hide and Seek 2005 -Shue, Elisabeth Piranha 2010 -Shue, Elisabeth Back to the Future Part III 1990 -Shue, Elisabeth The Saint 1997 -Shue, Elisabeth City of Angels 1998 -Shue, Elisabeth The Karate Kid 1984 -Shue, Elisabeth Hollow Man 2000 -Shue, Elisabeth Back to the Future Part II 1989 -Shelton, Angela (II) Superman Returns 2006 -Shelton, Angela (II) He's Just Not That Into You 2009 -Shelton, Angela (II) Spider-Man 2 2004 -Shelton, Angela (II) Cloudy with a Chance of Meatballs 2009 -Miranda, Albert Eagle Eye 2008 -Miranda, Albert Yes Man 2008 -Miranda, Albert Forgetting Sarah Marshall 2008 -Sánchez, Mario Ernesto Miami Vice 2006 -Sánchez, Mario Ernesto Bad Boys 1995 -Sánchez, Mario Ernesto The Truman Show 1998 -Gould, Alexander City of Angels 1998 -Gould, Alexander Finding Nemo 2003 -Gould, Alexander Curious George 2006 -Bridges, Jeff (I) The Mirror Has Two Faces 1996 -Bridges, Jeff (I) Seabiscuit 2003 -Bridges, Jeff (I) Crazy Heart 2009 -Bridges, Jeff (I) TRON: Legacy 2010 -Bridges, Jeff (I) Surf's Up 2007 -Bridges, Jeff (I) K-PAX 2001 -Bridges, Jeff (I) True Grit 2010 -Vasut, Marek The League of Extraordinary Gentlemen 2003 -Vasut, Marek Mission: Impossible 1996 -Vasut, Marek Van Helsing 2004 -Vasut, Marek Blade II 2002 -Vasut, Marek Hannibal Rising 2007 -Vasut, Marek Bad Company 2002 -Vasut, Marek xXx 2002 -Sobalo Jr., Joe Fever Pitch 2005 -Sobalo Jr., Joe Zookeeper 2011 -Sobalo Jr., Joe 21 2008 -Fisher, Stink Gulliver's Travels 2010 -Fisher, Stink Invincible 2006 -Fisher, Stink The Longest Yard 2005 -Macaulay, Marc 2 Fast 2 Furious 2003 -Macaulay, Marc Bad Boys 1995 -Macaulay, Marc The Truman Show 1998 -Macaulay, Marc Miami Vice 2006 -Macaulay, Marc My Bloody Valentine 2009 -Macaulay, Marc Monster 2003 -Macaulay, Marc Contact 1997 -Macaulay, Marc Dolphin Tale 2011 -Macaulay, Marc Marley & Me 2008 -Macaulay, Marc Transporter 2 2005 -Macaulay, Marc Red Eye 2005 -Connery, Sean Robin Hood: Prince of Thieves 1991 -Connery, Sean The Rock 1996 -Connery, Sean Catch Me If You Can 2002 -Connery, Sean Finding Forrester 2000 -Connery, Sean Entrapment 1999 -Connery, Sean The Hunt for Red October 1990 -Connery, Sean The League of Extraordinary Gentlemen 2003 -Connery, Sean Indiana Jones and the Last Crusade 1989 -Connery, Sean DragonHeart 1996 -Connery, Sean Never Say Never Again 1983 -Robbins, Jarrod (I) Angels & Demons 2009 -Robbins, Jarrod (I) Eagle Eye 2008 -Robbins, Jarrod (I) Changeling 2008 -Robbins, Jarrod (I) Step Brothers 2008 -Norton, Alex (I) Braveheart 1995 -Norton, Alex (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Norton, Alex (I) The Count of Monte Cristo 2002 -O'Keefe, Ed Mystic River 2003 -O'Keefe, Ed The Town 2010 -O'Keefe, Ed Fever Pitch 2005 -Sawa, Devon Final Destination 2000 -Sawa, Devon Casper 1995 -Sawa, Devon Final Destination 5 2011 -Edney, Paul Windtalkers 2002 -Edney, Paul Mission: Impossible III 2006 -Edney, Paul Ocean's Thirteen 2007 -Edney, Paul Battleship 2012 -Edney, Paul You, Me and Dupree 2006 -Edney, Paul Spider-Man 3 2007 -Edney, Paul Drag Me to Hell 2009 -Edney, Paul 50 First Dates 2004 -Edney, Paul The Shaggy Dog 2006 -Edney, Paul The Descendants 2011 -Edney, Paul My Sister's Keeper 2009 -Hoffman, Jackie Garden State 2004 -Hoffman, Jackie Robots 2005 -Hoffman, Jackie Legally Blonde 2: Red, White & Blonde 2003 -Gant, Richard Godzilla 1998 -Gant, Richard Norbit 2007 -Gant, Richard Nutty Professor II: The Klumps 2000 -Gant, Richard Bean 1997 -Gant, Richard Rocky V 1990 -Fega, Russ Inception 2010 -Fega, Russ I Am Sam 2001 -Fega, Russ Memento 2000 -Fega, Russ The Prestige 2006 -Sloan, Amy The Aviator 2004 -Sloan, Amy The Day After Tomorrow 2004 -Sloan, Amy The Heartbreak Kid 2007 -Sloan, Amy Gothika 2003 -Weathers, Carl Predator 1987 -Weathers, Carl Rocky III 1982 -Weathers, Carl Close Encounters of the Third Kind 1977 -Weathers, Carl Rocky IV 1985 -Mazar, Debi Batman Forever 1995 -Mazar, Debi The Tuxedo 2002 -Mazar, Debi The Insider 1999 -Mazar, Debi Malcolm X 1992 -Mazar, Debi House on Haunted Hill 1999 -Mazar, Debi Collateral 2004 -Flick, Scott Terminator Salvation 2009 -Flick, Scott Wild Hogs 2007 -Flick, Scott Cowboys & Aliens 2011 -Flick, Scott True Grit 2010 -Flick, Scott No Country for Old Men 2007 -Philbin, Regis Little Miss Sunshine 2006 -Philbin, Regis Little Nicky 2000 -Philbin, Regis Jack and Jill 2011 -Philbin, Regis Shrek Forever After 2010 -Philbin, Regis Pinocchio 2002 -Philbin, Regis Miss Congeniality 2: Armed and Fabulous 2005 -Philbin, Regis Cheaper by the Dozen 2003 -Philbin, Regis Shrek the Third 2007 -Hoffman, Rick (I) The Day After Tomorrow 2004 -Hoffman, Rick (I) Battleship 2012 -Hoffman, Rick (I) Cellular 2004 -Hoffman, Rick (I) Lethal Weapon 4 1998 -Hoffman, Rick (I) Hostel 2005 -Hoffman, Rick (I) Conspiracy Theory 1997 -Cooper, George Lane The Mummy 1999 -Cooper, George Lane Moonraker 1979 -Cooper, George Lane Batman 1989 -Kang, Tim (I) Rambo 2008 -Kang, Tim (I) Two Weeks Notice 2002 -Kang, Tim (I) The Forgotten 2004 -Lewis, Gary (III) Billy Elliot 2000 -Lewis, Gary (III) Eragon 2006 -Lewis, Gary (III) Gangs of New York 2002 -Shvedoff, Ivan Mission: Impossible - Ghost Protocol 2011 -Shvedoff, Ivan Enemy at the Gates 2001 -Shvedoff, Ivan The Bourne Supremacy 2004 -Lamkin, Kathy No Country for Old Men 2007 -Lamkin, Kathy The Texas Chainsaw Massacre: The Beginning 2006 -Lamkin, Kathy The Texas Chainsaw Massacre 2003 -Lamkin, Kathy The Heartbreak Kid 2007 -Sopp, Adam Harry Potter and the Order of the Phoenix 2007 -Sopp, Adam Harry Potter and the Prisoner of Azkaban 2004 -Sopp, Adam Harry Potter and the Half-Blood Prince 2009 -Corrigan, Kevin (I) Superbad 2007 -Corrigan, Kevin (I) Bad Boys 1995 -Corrigan, Kevin (I) Unstoppable 2010 -Corrigan, Kevin (I) Pineapple Express 2008 -Corrigan, Kevin (I) American Gangster 2007 -Corrigan, Kevin (I) The Dictator 2012 -Corrigan, Kevin (I) The Departed 2006 -Hardy, Donna The Cable Guy 1996 -Hardy, Donna Superbad 2007 -Hardy, Donna Universal Soldier 1992 -Hardy, Donna The Truman Show 1998 -Dempsey, Trish Ali 2001 -Dempsey, Trish Analyze This 1999 -Dempsey, Trish Any Given Sunday 1999 -George, Jason (IX) Clockstoppers 2002 -George, Jason (IX) Bewitched 2005 -George, Jason (IX) Barbershop 2002 -King, Cleo Road Trip 2000 -King, Cleo Dreamgirls 2006 -King, Cleo Dude, Where's My Car? 2000 -King, Cleo Pineapple Express 2008 -King, Cleo The Hangover 2009 -King, Cleo Magnolia 1999 -Greene, Ashley (I) New Moon 2009 -Greene, Ashley (I) The Twilight Saga: Eclipse 2010 -Greene, Ashley (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Lloyd-Pack, Roger Harry Potter and the Goblet of Fire 2005 -Lloyd-Pack, Roger Interview with the Vampire: The Vampire Chronicles 1994 -Lloyd-Pack, Roger Tinker Tailor Soldier Spy 2011 -LaSardo, Robert Out for Justice 1991 -LaSardo, Robert Blue Streak 1999 -LaSardo, Robert Waterworld 1995 -LaSardo, Robert Death Race 2008 -Morettini, Mark Road to Perdition 2002 -Morettini, Mark U.S. Marshals 1998 -Morettini, Mark Home Alone 2: Lost in New York 1992 -Rebhorn, James Meet the Parents 2000 -Rebhorn, James Baby Mama 2008 -Rebhorn, James Basic Instinct 1992 -Rebhorn, James The Game 1997 -Rebhorn, James Real Steel 2011 -Rebhorn, James Cold Mountain 2003 -Rebhorn, James The Talented Mr. Ripley 1999 -Rebhorn, James Independence Day 1996 -Meed, Geoff Little Miss Sunshine 2006 -Meed, Geoff Fast Five 2011 -Meed, Geoff Resident Evil: Extinction 2007 -Meed, Geoff The Day the Earth Stood Still 2008 -Davis, Geena Stuart Little 1999 -Davis, Geena Stuart Little 2 2002 -Davis, Geena Tootsie 1982 -Davis, Geena The Long Kiss Goodnight 1996 -Downey, Gerald Live Free or Die Hard 2007 -Downey, Gerald Eagle Eye 2008 -Downey, Gerald Evan Almighty 2007 -Downey, Gerald J. Edgar 2011 -Hazeldine, Sam Bridget Jones: The Edge of Reason 2004 -Hazeldine, Sam Harry Potter and the Goblet of Fire 2005 -Hazeldine, Sam The Wolfman 2010 -Chase, Chevy Hot Tub Time Machine 2010 -Chase, Chevy Snow Day 2000 -Chase, Chevy Spies Like Us 1985 -Chase, Chevy Last Action Hero 1993 -Chase, Chevy Vegas Vacation 1997 -Riposta, Angelina Bad Boys II 2003 -Riposta, Angelina The Waterboy 1998 -Riposta, Angelina Armageddon 1998 -Gildea, Sean Dumb & Dumber 1994 -Gildea, Sean Me, Myself & Irene 2000 -Gildea, Sean The Heartbreak Kid 2007 -Gildea, Sean There's Something About Mary 1998 -Gildea, Sean Shallow Hal 2001 -Alexander, Derick (I) Cast Away 2000 -Alexander, Derick (I) Evan Almighty 2007 -Alexander, Derick (I) Dreamgirls 2006 -Cooksey, Danny The Lorax 2012 -Cooksey, Danny Terminator 2: Judgment Day 1991 -Cooksey, Danny Meet the Robinsons 2007 -Driscoll, Timothy 'TJ' James Iron Man 2 2010 -Driscoll, Timothy 'TJ' James We Bought a Zoo 2011 -Driscoll, Timothy 'TJ' James The General's Daughter 1999 -Driscoll, Timothy 'TJ' James Live Free or Die Hard 2007 -McGrath, Tom (IV) Monsters vs Aliens 2009 -McGrath, Tom (IV) Madagascar 3: Europe's Most Wanted 2012 -McGrath, Tom (IV) Madagascar 2005 -McGrath, Tom (IV) Megamind 2010 -McGrath, Tom (IV) Shrek the Third 2007 -McGrath, Tom (IV) Madagascar: Escape 2 Africa 2008 -McGrath, Tom (IV) Flushed Away 2006 -McGrath, Tom (IV) Puss in Boots 2011 -Howard, Terrence Red Tails 2012 -Howard, Terrence Big Momma's House 2000 -Howard, Terrence The Brave One 2007 -Howard, Terrence The Princess and the Frog 2009 -Howard, Terrence Four Brothers 2005 -Mitchell, John (XXXI) Men in Black 3 2012 -Mitchell, John (XXXI) Marley & Me 2008 -Mitchell, John (XXXI) Sex and the City 2 2010 -Mitchell, John (XXXI) The Adjustment Bureau 2011 -Mitchell, John (XXXI) Law Abiding Citizen 2009 -Mitchell, John (XXXI) It's Complicated 2009 -Roberts, Dallas 3:10 to Yuma 2007 -Roberts, Dallas The Grey 2011 -Roberts, Dallas Walk the Line 2005 -Watson, Emily (I) War Horse 2011 -Watson, Emily (I) Red Dragon 2002 -Watson, Emily (I) The Water Horse 2007 -Watson, Emily (I) Corpse Bride 2005 -Watson, Emily (I) Gosford Park 2001 -Segal, George (I) The Mirror Has Two Faces 1996 -Segal, George (I) The Cable Guy 1996 -Segal, George (I) Look Who's Talking 1989 -Quick, Kristin Space Cowboys 2000 -Quick, Kristin One Hour Photo 2002 -Quick, Kristin Iron Man 2 2010 -Goggins, Walton Shanghai Noon 2000 -Goggins, Walton Cowboys & Aliens 2011 -Goggins, Walton Predators 2010 -Goggins, Walton The Bourne Identity 2002 -Lin, Lucy The Family Man 2000 -Lin, Lucy Scream 2 1997 -Lin, Lucy Rush Hour 2 2001 -Lin, Lucy Rush Hour 1998 -Andrews, Giuseppe Independence Day 1996 -Andrews, Giuseppe Pleasantville 1998 -Andrews, Giuseppe Never Been Kissed 1999 -Gong, Li Memoirs of a Geisha 2005 -Gong, Li Miami Vice 2006 -Gong, Li Hannibal Rising 2007 -Moyo, Masasa Johnson Family Vacation 2004 -Moyo, Masasa Angels & Demons 2009 -Moyo, Masasa Spider-Man 3 2007 -Moyo, Masasa Shark Tale 2004 -Moyo, Masasa Team America: World Police 2004 -Northam, Jeremy The Net 1995 -Northam, Jeremy Amistad 1997 -Northam, Jeremy Gosford Park 2001 -Burks, Jernard Down to Earth 2001 -Burks, Jernard The Hangover 2009 -Burks, Jernard Bringing Down the House 2003 -Burks, Jernard Snake Eyes 1998 -Burks, Jernard Four Brothers 2005 -Burks, Jernard Starsky & Hutch 2004 -Burks, Jernard The Preacher's Wife 1996 -Krupa, Olek Salt 2010 -Krupa, Olek Behind Enemy Lines 2001 -Krupa, Olek X-Men: First Class 2011 -Krupa, Olek Eraser 1996 -Krupa, Olek Burn After Reading 2008 -Krupa, Olek Blue Streak 1999 -Krupa, Olek The Italian Job 2003 -Krupa, Olek Home Alone 3 1997 -Krupa, Olek The Dictator 2012 -Bradley, David (IV) Harry Potter and the Deathly Hallows: Part 2 2011 -Bradley, David (IV) Captain America: The First Avenger 2011 -Bradley, David (IV) Harry Potter and the Goblet of Fire 2005 -Bradley, David (IV) Harry Potter and the Half-Blood Prince 2009 -Bradley, David (IV) Harry Potter and the Prisoner of Azkaban 2004 -Bradley, David (IV) Harry Potter and the Sorcerer's Stone 2001 -Bradley, David (IV) Harry Potter and the Chamber of Secrets 2002 -Bradley, David (IV) Exorcist: The Beginning 2004 -Bradley, David (IV) Harry Potter and the Order of the Phoenix 2007 -Pastore, Vincent Spider-Man 2 2004 -Pastore, Vincent The Hurricane 1999 -Pastore, Vincent Shark Tale 2004 -Pastore, Vincent College Road Trip 2008 -Pastore, Vincent Mickey Blue Eyes 1999 -Alter, Kirsten The Sisterhood of the Traveling Pants 2005 -Alter, Kirsten RV 2006 -Alter, Kirsten Juno 2007 -Reagan, Ronald (I) Forrest Gump 1994 -Reagan, Ronald (I) Live Free or Die Hard 2007 -Reagan, Ronald (I) The Jackal 1997 -Rolston, Mark Daylight 1996 -Rolston, Mark Saw V 2008 -Rolston, Mark Eraser 1996 -Rolston, Mark Aliens 1986 -Rolston, Mark Rush Hour 1998 -Rolston, Mark Lethal Weapon 2 1989 -Rolston, Mark The Departed 2006 -Rolston, Mark RoboCop 2 1990 -Vowell, Brian Four Christmases 2008 -Vowell, Brian The Heartbreak Kid 2007 -Vowell, Brian Hereafter 2010 -Fite, Mark (I) Godzilla 1998 -Fite, Mark (I) Independence Day 1996 -Fite, Mark (I) Fight Club 1999 -Dooley, Paul Insomnia 2002 -Dooley, Paul Hairspray 2007 -Dooley, Paul Cars 2 2011 -Dooley, Paul Bedtime Stories 2008 -Dooley, Paul Cars 2006 -Dooley, Paul Runaway Bride 1999 -Bomer, Matt The Texas Chainsaw Massacre: The Beginning 2006 -Bomer, Matt In Time 2011 -Bomer, Matt Flightplan 2005 -Johnson, Lauri (I) The Cell 2000 -Johnson, Lauri (I) City of Angels 1998 -Johnson, Lauri (I) The Negotiator 1998 -Leigh, Katie Barnyard 2006 -Leigh, Katie Despicable Me 2010 -Leigh, Katie Babe: Pig in the City 1998 -Tomei, Marisa Wild Hogs 2007 -Tomei, Marisa Anger Management 2003 -Tomei, Marisa What Women Want 2000 -Tomei, Marisa The Wild Thornberrys Movie 2002 -Tomei, Marisa In the Bedroom 2001 -Tomei, Marisa The Lincoln Lawyer 2011 -Tomei, Marisa The Ides of March 2011 -Tomei, Marisa Crazy, Stupid, Love. 2011 -Pigott-Smith, Tim Quantum of Solace 2008 -Pigott-Smith, Tim Alexander 2004 -Pigott-Smith, Tim V for Vendetta 2005 -Pigott-Smith, Tim Gangs of New York 2002 -Pigott-Smith, Tim Alice in Wonderland 2010 -Pigott-Smith, Tim Johnny English 2003 -Oteri, Cheri Inspector Gadget 1999 -Oteri, Cheri Small Soldiers 1998 -Oteri, Cheri Scary Movie 2000 -Oteri, Cheri Austin Powers: International Man of Mystery 1997 -Oteri, Cheri The Ant Bully 2006 -Oteri, Cheri Liar Liar 1997 -Oteri, Cheri Shrek the Third 2007 -Cavett, Dick Forrest Gump 1994 -Cavett, Dick A Nightmare on Elm Street 3: Dream Warriors 1987 -Cavett, Dick Frequency 2000 -Badreya, Sayed The Insider 1999 -Badreya, Sayed Three Kings 1999 -Badreya, Sayed Stargate 1994 -Badreya, Sayed You Don't Mess with the Zohan 2008 -Badreya, Sayed The Three Stooges 2012 -Badreya, Sayed Independence Day 1996 -Badreya, Sayed The Dictator 2012 -Badreya, Sayed Shallow Hal 2001 -Grimm, Tim The Insider 1999 -Grimm, Tim Mercury Rising 1998 -Grimm, Tim Clear and Present Danger 1994 -Grimm, Tim Public Enemies 2009 -Towles, Tom The Rock 1996 -Towles, Tom Miami Vice 2006 -Towles, Tom Doctor Dolittle 1998 -Towles, Tom Halloween 2007 -Steven, Joseph The Scorpion King 2002 -Steven, Joseph Star Trek 2009 -Steven, Joseph K-PAX 2001 -Steven, Joseph The Flintstones in Viva Rock Vegas 2000 -Steven, Joseph Pirates of the Caribbean: Dead Man's Chest 2006 -Antony-Barber, Paul V for Vendetta 2005 -Antony-Barber, Paul Hereafter 2010 -Antony-Barber, Paul The Golden Compass 2007 -Oh, Sandra Under the Tuscan Sun 2003 -Oh, Sandra The Princess Diaries 2001 -Oh, Sandra Bean 1997 -Oh, Sandra Sideways 2004 -Conway, Kevin (I) Mercury Rising 1998 -Conway, Kevin (I) Invincible 2006 -Conway, Kevin (I) Mystic River 2003 -Conway, Kevin (I) Black Knight 2001 -Einbinder, Chad Barnyard 2006 -Einbinder, Chad The Time Traveler's Wife 2009 -Einbinder, Chad Doctor Dolittle 1998 -Einbinder, Chad Night at the Museum: Battle of the Smithsonian 2009 -Cicchini, Robert A Civil Action 1998 -Cicchini, Robert Dreamgirls 2006 -Cicchini, Robert Primary Colors 1998 -Christensen, Hayden Star Wars: Episode III - Revenge of the Sith 2005 -Christensen, Hayden Jumper 2008 -Christensen, Hayden Takers 2010 -Christensen, Hayden Star Wars: Episode II - Attack of the Clones 2002 -Leung Chiu Wai, Tony Ying Xiong 2002 -Leung Chiu Wai, Tony Se, jie 2007 -Leung Chiu Wai, Tony Chi bi 2008 -Frye, Don The Ant Bully 2006 -Frye, Don Miami Vice 2006 -Frye, Don Public Enemies 2009 -Dennings, Kat Big Momma's House 2 2006 -Dennings, Kat The 40 Year Old Virgin 2005 -Dennings, Kat Thor 2011 -Cavadini, Cathy Jumper 2008 -Cavadini, Cathy Final Fantasy: The Spirits Within 2001 -Cavadini, Cathy The Lion King 1994 -Cavadini, Cathy The Secret Life of Bees 2008 -Cavadini, Cathy Happy Feet 2006 -Cavadini, Cathy Lilo & Stitch 2002 -Cavadini, Cathy Dinosaur 2000 -Cavadini, Cathy The Golden Compass 2007 -Dennis, Peter Shrek 2001 -Dennis, Peter Beowulf 2007 -Dennis, Peter Sideways 2004 -Dennis, Peter Eragon 2006 -Krakowski, Jane Fatal Attraction 1987 -Krakowski, Jane Open Season 2006 -Krakowski, Jane The Flintstones in Viva Rock Vegas 2000 -Krakowski, Jane Ice Age 2002 -Tangen, Tom No Strings Attached 2011 -Tangen, Tom Back to the Future 1985 -Tangen, Tom Magnolia 1999 -Tangen, Tom Erin Brockovich 2000 -Jordan, John-Eliot Me, Myself & Irene 2000 -Jordan, John-Eliot Fever Pitch 2005 -Jordan, John-Eliot There's Something About Mary 1998 -Jordan, John-Eliot Shallow Hal 2001 -Isaacs, Jason Harry Potter and the Goblet of Fire 2005 -Isaacs, Jason Black Hawk Down 2001 -Isaacs, Jason Harry Potter and the Deathly Hallows: Part 2 2011 -Isaacs, Jason Windtalkers 2002 -Isaacs, Jason Harry Potter and the Deathly Hallows: Part 1 2010 -Isaacs, Jason Cars 2 2011 -Isaacs, Jason Reign of Fire 2002 -Isaacs, Jason Armageddon 1998 -Isaacs, Jason Resident Evil 2002 -Isaacs, Jason The Patriot 2000 -Isaacs, Jason Harry Potter and the Chamber of Secrets 2002 -Isaacs, Jason Peter Pan 2003 -Isaacs, Jason The Tuxedo 2002 -Isaacs, Jason Harry Potter and the Order of the Phoenix 2007 -Isaacs, Jason DragonHeart 1996 -Wagner, Julie Larry Crowne 2011 -Wagner, Julie Moneyball 2011 -Wagner, Julie Mona Lisa Smile 2003 -Wagner, Julie Erin Brockovich 2000 -Wagner, Julie America's Sweethearts 2001 -Scott, Adam (I) Star Trek: First Contact 1996 -Scott, Adam (I) Monster-in-Law 2005 -Scott, Adam (I) The Aviator 2004 -Scott, Adam (I) Step Brothers 2008 -Scott, Adam (I) High Crimes 2002 -Scott, Adam (I) Piranha 2010 -Scott, Adam (I) Knocked Up 2007 -Hub, Martin Mission: Impossible - Ghost Protocol 2011 -Hub, Martin Titanic 1997 -Hub, Martin Hannibal Rising 2007 -Hub, Martin xXx 2002 -Hub, Martin Saving Private Ryan 1998 -Rady, Michael J. Edgar 2011 -Rady, Michael The Sisterhood of the Traveling Pants 2005 -Rady, Michael The Sisterhood of the Traveling Pants 2 2008 -Biel, Jessica I Now Pronounce You Chuck & Larry 2007 -Biel, Jessica The Texas Chainsaw Massacre 2003 -Biel, Jessica The Illusionist 2006 -Biel, Jessica New Year's Eve 2011 -Biel, Jessica Blade: Trinity 2004 -Biel, Jessica Cellular 2004 -Biel, Jessica The A-Team 2010 -Biel, Jessica Planet 51 2009 -Fonda, Peter (I) Wild Hogs 2007 -Fonda, Peter (I) 3:10 to Yuma 2007 -Fonda, Peter (I) Journey to the Center of the Earth 2008 -Fonda, Peter (I) Ghost Rider 2007 -Parker, Nicole Ari Blue Streak 1999 -Parker, Nicole Ari Remember the Titans 2000 -Parker, Nicole Ari Boogie Nights 1997 -Mitchell, Dave B. Kung Fu Panda 2 2011 -Mitchell, Dave B. G.I. Joe: The Rise of Cobra 2009 -Mitchell, Dave B. The Lorax 2012 -Mitchell, Dave B. The Amazing Spider-Man 2012 -Mitchell, Dave B. The Golden Compass 2007 -Lancaster, Carolina Ali 2001 -Lancaster, Carolina American Beauty 1999 -Lancaster, Carolina Austin Powers in Goldmember 2002 -Durkin, Brian F. Deja Vu 2006 -Durkin, Brian F. Madea's Family Reunion 2006 -Durkin, Brian F. Footloose 2011 -Everett, Tom Beverly Hills Cop 1984 -Everett, Tom The Island 2005 -Everett, Tom Air Force One 1997 -Everett, Tom Dances with Wolves 1990 -Everett, Tom The Curious Case of Benjamin Button 2008 -Everett, Tom Pearl Harbor 2001 -Everett, Tom Die Hard 2 1990 -Everett, Tom Transformers 2007 -Everett, Tom xXx 2002 -Unger, Shaina Tianne X2 2003 -Unger, Shaina Tianne Catwoman 2004 -Unger, Shaina Tianne White Chicks 2004 -Suttles, Darnell Space Jam 1996 -Suttles, Darnell Volcano 1997 -Suttles, Darnell Congo 1995 -Guinness, Alec Star Wars: Episode V - The Empire Strikes Back 1980 -Guinness, Alec Star Wars 1977 -Guinness, Alec Star Wars: Episode VI - Return of the Jedi 1983 -Bateman, Jason Tropic Thunder 2008 -Bateman, Jason Dodgeball: A True Underdog Story 2004 -Bateman, Jason Starsky & Hutch 2004 -Bateman, Jason The Break-Up 2006 -Bateman, Jason Mr. Magorium's Wonder Emporium 2007 -Bateman, Jason Horrible Bosses 2011 -Bateman, Jason Couples Retreat 2009 -Bateman, Jason Forgetting Sarah Marshall 2008 -Bateman, Jason Hancock 2008 -Bateman, Jason Juno 2007 -King, Christopher (VIII) The Devil's Advocate 1997 -King, Christopher (VIII) Across the Sea of Time 1995 -King, Christopher (VIII) The Mirror Has Two Faces 1996 -Hartsock, Charlie The 40 Year Old Virgin 2005 -Hartsock, Charlie Deep Impact 1998 -Hartsock, Charlie Crazy, Stupid, Love. 2011 -Hartsock, Charlie Evan Almighty 2007 -Hartsock, Charlie Superbad 2007 -Redman, Dean TRON: Legacy 2010 -Redman, Dean The Day the Earth Stood Still 2008 -Redman, Dean Rise of the Planet of the Apes 2011 -Brightwell, Paul Titanic 1997 -Brightwell, Paul Kingdom of Heaven 2005 -Brightwell, Paul Sleepy Hollow 1999 -Travolta, Sam Swordfish 2001 -Travolta, Sam Wild Hogs 2007 -Travolta, Sam A Civil Action 1998 -James, Ryan (II) Van Helsing 2004 -James, Ryan (II) Shanghai Knights 2003 -James, Ryan (II) The Illusionist 2006 -Mina, Mina E. The Chronicles of Riddick 2004 -Mina, Mina E. Mission to Mars 2000 -Mina, Mina E. Scary Movie 4 2006 -Mina, Mina E. Unforgiven 1992 -Mina, Mina E. The 13th Warrior 1999 -Wright, Aloma Johnson Family Vacation 2004 -Wright, Aloma Mr. Deeds 2002 -Wright, Aloma Bring It On 2000 -Wright, Aloma Thank You for Smoking 2005 -Smith, Cannon (II) The Sisterhood of the Traveling Pants 2 2008 -Smith, Cannon (II) My Dog Skip 2000 -Smith, Cannon (II) The Sisterhood of the Traveling Pants 2005 -Roy, Deep Big Fish 2003 -Roy, Deep Star Trek 2009 -Roy, Deep Corpse Bride 2005 -Roy, Deep How the Grinch Stole Christmas 2000 -Roy, Deep Transformers: Revenge of the Fallen 2009 -Roy, Deep Charlie and the Chocolate Factory 2005 -Roy, Deep Star Wars: Episode VI - Return of the Jedi 1983 -Roy, Deep The Haunted Mansion 2003 -Addy, Mark Down to Earth 2001 -Addy, Mark The Time Machine 2002 -Addy, Mark Robin Hood 2010 -Addy, Mark The Flintstones in Viva Rock Vegas 2000 -Addy, Mark The Full Monty 1997 -Addy, Mark A Knight's Tale 2001 -Addy, Mark Around the World in 80 Days 2004 -Cory, Priscilla The Wedding Singer 1998 -Cory, Priscilla Batman 1989 -Cory, Priscilla L.A. Confidential 1997 -Cory, Priscilla Never Been Kissed 1999 -Fanning, Dakota The Secret Life of Bees 2008 -Fanning, Dakota New Moon 2009 -Fanning, Dakota Push 2009 -Fanning, Dakota Hide and Seek 2005 -Fanning, Dakota Man on Fire 2004 -Fanning, Dakota Charlotte's Web 2006 -Fanning, Dakota The Twilight Saga: Eclipse 2010 -Fanning, Dakota Coraline 2009 -Fanning, Dakota Dr. Seuss' The Cat in the Hat 2003 -Fanning, Dakota Sweet Home Alabama 2002 -Fanning, Dakota I Am Sam 2001 -DeBonis, Marcia Bride Wars 2009 -DeBonis, Marcia The Devil's Advocate 1997 -DeBonis, Marcia Letters to Juliet 2010 -DeBonis, Marcia 13 Going on 30 2004 -DeBonis, Marcia The Dictator 2012 -DeBonis, Marcia The Truman Show 1998 -Roden, Karel (I) Mr. Bean's Holiday 2007 -Roden, Karel (I) Hellboy 2004 -Roden, Karel (I) The Bourne Supremacy 2004 -Roden, Karel (I) Blade II 2002 -Peroff, Justin How to Lose a Guy in 10 Days 2003 -Peroff, Justin The Time Traveler's Wife 2009 -Peroff, Justin Down to Earth 2001 -Brill, Steven (I) Knocked Up 2007 -Brill, Steven (I) Mr. Deeds 2002 -Brill, Steven (I) Batman Returns 1992 -Brill, Steven (I) D2: The Mighty Ducks 1994 -Brill, Steven (I) Big Daddy 1999 -Brill, Steven (I) The Wedding Singer 1998 -Brill, Steven (I) The Mighty Ducks 1992 -Wright, Tom (I) World Trade Center 2006 -Wright, Tom (I) Barbershop 2: Back in Business 2004 -Wright, Tom (I) Barbershop 2002 -Wow, Bow Madea's Big Happy Family 2011 -Wow, Bow Like Mike 2002 -Wow, Bow The Fast and the Furious: Tokyo Drift 2006 -Wow, Bow Johnson Family Vacation 2004 -Jenkins, Richard (I) Me, Myself & Irene 2000 -Jenkins, Richard (I) Cheaper by the Dozen 2003 -Jenkins, Richard (I) Absolute Power 1997 -Jenkins, Richard (I) Intolerable Cruelty 2003 -Jenkins, Richard (I) Friends with Benefits 2011 -Jenkins, Richard (I) Eat Pray Love 2010 -Jenkins, Richard (I) Hannah and Her Sisters 1986 -Jenkins, Richard (I) Step Brothers 2008 -Jenkins, Richard (I) Rumor Has It... 2005 -Jenkins, Richard (I) The Tale of Despereaux 2008 -Jenkins, Richard (I) Changing Lanes 2002 -Jenkins, Richard (I) Fun with Dick and Jane 2005 -Jenkins, Richard (I) Burn After Reading 2008 -Jenkins, Richard (I) Shall We Dance 2004 -Jenkins, Richard (I) The Core 2003 -Jenkins, Richard (I) The Cabin in the Woods 2011 -Jenkins, Richard (I) There's Something About Mary 1998 -Clarkson, Patricia Miracle 2004 -Clarkson, Patricia Friends with Benefits 2011 -Clarkson, Patricia Easy A 2010 -Clarkson, Patricia Shutter Island 2010 -Clarkson, Patricia Vicky Cristina Barcelona 2008 -Clarkson, Patricia Good Night, and Good Luck. 2005 -Clarkson, Patricia No Reservations 2007 -Clarkson, Patricia The Green Mile 1999 -Clarkson, Patricia Jumanji 1995 -Glen, Iain Lara Croft: Tomb Raider 2001 -Glen, Iain Resident Evil: Extinction 2007 -Glen, Iain Kingdom of Heaven 2005 -Glen, Iain Resident Evil: Apocalypse 2004 -Bullock, S. Scott Lemony Snicket's A Series of Unfortunate Events 2004 -Bullock, S. Scott The Incredible Hulk 2008 -Bullock, S. Scott The Ant Bully 2006 -Bullock, S. Scott Barnyard 2006 -Valentine, Gary (I) I Now Pronounce You Chuck & Larry 2007 -Valentine, Gary (I) Paul Blart: Mall Cop 2009 -Valentine, Gary (I) Jack and Jill 2011 -Valentine, Gary (I) Zookeeper 2011 -Huege, Janet The Stepford Wives 2004 -Huege, Janet Garden State 2004 -Huege, Janet The Pink Panther 2006 -Huege, Janet Spider-Man 2 2004 -Huege, Janet The School of Rock 2003 -Wrentz, Lawrence T. The Silence of the Lambs 1991 -Wrentz, Lawrence T. Congo 1995 -Wrentz, Lawrence T. Philadelphia 1993 -Gleason, Paul (I) Die Hard 1988 -Gleason, Paul (I) Money Talks 1997 -Gleason, Paul (I) Trading Places 1983 -Gleason, Paul (I) Arthur 1981 -Tiari, GJ Angels & Demons 2009 -Tiari, GJ Hannah Montana: The Movie 2009 -Tiari, GJ The Lincoln Lawyer 2011 -York, Michael (I) Austin Powers: The Spy Who Shagged Me 1999 -York, Michael (I) Austin Powers: International Man of Mystery 1997 -York, Michael (I) Austin Powers in Goldmember 2002 -York, Michael (I) Transformers: Revenge of the Fallen 2009 -Jefferies, Marc John Stuart Little 2 2002 -Jefferies, Marc John Big Mommas: Like Father, Like Son 2011 -Jefferies, Marc John Monsters, Inc. 2001 -Jefferies, Marc John Charlie's Angels: Full Throttle 2003 -Jefferies, Marc John Spider-Man 2 2004 -Jefferies, Marc John The Haunted Mansion 2003 -Earl, Shaun The Bodyguard 1992 -Earl, Shaun Coming to America 1988 -Earl, Shaun Austin Powers in Goldmember 2002 -Russell, Keri We Were Soldiers 2002 -Russell, Keri Mission: Impossible III 2006 -Russell, Keri Bedtime Stories 2008 -Murphy, Harry S. Charlie Wilson's War 2007 -Murphy, Harry S. Race to Witch Mountain 2009 -Murphy, Harry S. Evan Almighty 2007 -Murphy, Harry S. Nutty Professor II: The Klumps 2000 -Gardner, Roy William The Good Shepherd 2006 -Gardner, Roy William Enchanted 2007 -Gardner, Roy William Julie & Julia 2009 -Gardner, Roy William The Brave One 2007 -Gardner, Roy William Men in Black 3 2012 -Glover, Crispin Like Mike 2002 -Glover, Crispin Hot Tub Time Machine 2010 -Glover, Crispin Charlie's Angels 2000 -Glover, Crispin Open Season 3 2010 -Glover, Crispin Beowulf 2007 -Glover, Crispin Alice in Wonderland 2010 -Glover, Crispin Charlie's Angels: Full Throttle 2003 -Glover, Crispin Back to the Future Part II 1989 -Glover, Crispin Epic Movie 2007 -Glover, Crispin Back to the Future 1985 -Wayans, Shawn LiTTLEMAN 2006 -Wayans, Shawn Scary Movie 2000 -Wayans, Shawn White Chicks 2004 -Wayans, Shawn Scary Movie 2 2001 -Bezdek, Pavel The League of Extraordinary Gentlemen 2003 -Bezdek, Pavel Hannibal Rising 2007 -Bezdek, Pavel Mission: Impossible - Ghost Protocol 2011 -Bezdek, Pavel AVP: Alien vs. Predator 2004 -Lundgren, Dolph Rocky V 1990 -Lundgren, Dolph Universal Soldier 1992 -Lundgren, Dolph A View to a Kill 1985 -Lundgren, Dolph Rocky IV 1985 -Lundgren, Dolph The Expendables 2010 -Lundgren, Dolph Rocky Balboa 2006 -Cross, Roger R. The Chronicles of Riddick 2004 -Cross, Roger R. Double Jeopardy 1999 -Cross, Roger R. Final Destination 2 2003 -Cross, Roger R. The Day the Earth Stood Still 2008 -Cross, Roger R. World Trade Center 2006 -Cross, Roger R. X2 2003 -Karyo, Tchéky GoldenEye 1995 -Karyo, Tchéky Kiss of the Dragon 2001 -Karyo, Tchéky The Patriot 2000 -Karyo, Tchéky The Core 2003 -Karyo, Tchéky Bad Boys 1995 -Towne, Joe Garfield 2004 -Towne, Joe Garfield: A Tail of Two Kitties 2006 -Towne, Joe The Omen 2006 -Fisher, David (I) Bad Company 2002 -Fisher, David (I) From Hell 2001 -Fisher, David (I) A Knight's Tale 2001 -Marescotti, Ivano Hannibal 2001 -Marescotti, Ivano King Arthur 2004 -Marescotti, Ivano The Talented Mr. Ripley 1999 -Couric, Katie Fahrenheit 9/11 2004 -Couric, Katie Shark Tale 2004 -Couric, Katie I Am Legend 2007 -Couric, Katie Austin Powers in Goldmember 2002 -Leitch, David (I) V for Vendetta 2005 -Leitch, David (I) The Dukes of Hazzard 2005 -Leitch, David (I) Ocean's Eleven 2001 -Rothenberg, Karly Open Season 2006 -Rothenberg, Karly Pirates of the Caribbean: Dead Man's Chest 2006 -Rothenberg, Karly Kicking & Screaming 2005 -Williams, Jacqueline (II) Hard Ball 2001 -Williams, Jacqueline (II) The Lake House 2006 -Williams, Jacqueline (II) The Break-Up 2006 -Sharperson, George Double Take 2001 -Sharperson, George The Day the Earth Stood Still 2008 -Sharperson, George Showtime 2002 -Sharperson, George Role Models 2008 -Cheung, Clem Salt 2010 -Cheung, Clem Michael Clayton 2007 -Cheung, Clem What Happens in Vegas 2008 -Cheung, Clem Tower Heist 2011 -Bottitta, Ron The Adventures of Tintin 2011 -Bottitta, Ron Mr. & Mrs. Smith 2005 -Bottitta, Ron Pirates of the Caribbean: At World's End 2007 -Bottitta, Ron Pirates of the Caribbean: Dead Man's Chest 2006 -Bottitta, Ron A Christmas Carol 2009 -Bottitta, Ron Transformers: Dark of the Moon 2011 -Hunt, Bonnie Toy Story 3 2010 -Hunt, Bonnie Monsters, Inc. 2001 -Hunt, Bonnie Cheaper by the Dozen 2003 -Hunt, Bonnie Cars 2 2011 -Hunt, Bonnie Jerry Maguire 1996 -Hunt, Bonnie Cars 2006 -Hunt, Bonnie Return to Me 2000 -Hunt, Bonnie Rain Man 1988 -Hunt, Bonnie A Bug's Life 1998 -Hunt, Bonnie The Green Mile 1999 -Hunt, Bonnie Jumanji 1995 -Hunt, Bonnie Cheaper by the Dozen 2 2005 -O'Brocki, Chris Live Free or Die Hard 2007 -O'Brocki, Chris Step Up 2006 -O'Brocki, Chris Step Up 2: The Streets 2008 -Liu, Lucy (I) Chicago 2002 -Liu, Lucy (I) Shanghai Noon 2000 -Liu, Lucy (I) Kung Fu Panda 2008 -Liu, Lucy (I) Kill Bill: Vol. 2 2004 -Liu, Lucy (I) Kill Bill: Vol. 1 2003 -Liu, Lucy (I) Charlie's Angels: Full Throttle 2003 -Liu, Lucy (I) Kung Fu Panda 2 2011 -Liu, Lucy (I) Jerry Maguire 1996 -Liu, Lucy (I) Charlie's Angels 2000 -Friedman, Andrew (IV) Live Free or Die Hard 2007 -Friedman, Andrew (IV) Bewitched 2005 -Friedman, Andrew (IV) Max Payne 2008 -Chou, Collin The Matrix Reloaded 2003 -Chou, Collin The Matrix Revolutions 2003 -Chou, Collin The Forbidden Kingdom 2008 -Cotner, James Tin Cup 1996 -Cotner, James High Crimes 2002 -Cotner, James What Dreams May Come 1998 -Cotner, James The Pursuit of Happyness 2006 -Weiss, Gelsey 500) Days of Summer 2009 -Weiss, Gelsey The Curious Case of Benjamin Button 2008 -Weiss, Gelsey Starsky & Hutch 2004 -Daily, Elizabeth Rugrats in Paris: The Movie - Rugrats II 2000 -Daily, Elizabeth The Incredibles 2004 -Daily, Elizabeth Babe: Pig in the City 1998 -Daily, Elizabeth Rugrats Go Wild 2003 -Daily, Elizabeth Pee-wee's Big Adventure 1985 -Daily, Elizabeth The Flintstones 1994 -Daily, Elizabeth Recess: School's Out 2001 -Daily, Elizabeth Happy Feet 2006 -Daily, Elizabeth Happy Feet Two 2011 -Daily, Elizabeth My Sister's Keeper 2009 -Daily, Elizabeth The Rugrats Movie 1998 -Daily, Elizabeth Speed Racer 2008 -Daily, Elizabeth Cats & Dogs: The Revenge of Kitty Galore 2010 -Ferguson, Craig (I) Winnie the Pooh 2011 -Ferguson, Craig (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Ferguson, Craig (I) Brave 2012 -Ferguson, Craig (I) How to Train Your Dragon 2010 -Ferguson, Craig (I) The Ugly Truth 2009 -Ferguson, Craig (I) Kick-Ass 2010 -Smith, Roger Guenveur American Gangster 2007 -Smith, Roger Guenveur Malcolm X 1992 -Smith, Roger Guenveur Final Destination 2000 -Wingert, Mick Kung Fu Panda 2008 -Wingert, Mick Kung Fu Panda 2 2011 -Wingert, Mick The Princess and the Frog 2009 -Hampton, Sean (I) Norbit 2007 -Hampton, Sean (I) World Trade Center 2006 -Hampton, Sean (I) Transformers 2007 -Borgman, Eric Bruno The Cider House Rules 1999 -Borgman, Eric Bruno Mona Lisa Smile 2003 -Borgman, Eric Bruno Amistad 1997 -Borgman, Eric Bruno 21 2008 -Borgman, Eric Bruno Mystic River 2003 -Borgman, Eric Bruno Meet Joe Black 1998 -Borgman, Eric Bruno Me, Myself & Irene 2000 -Borgman, Eric Bruno The Departed 2006 -Borgman, Eric Bruno The Game Plan 2007 -Borgman, Eric Bruno Fever Pitch 2005 -Borgman, Eric Bruno Mr. Deeds 2002 -Borgman, Eric Bruno Underdog 2007 -Borgman, Eric Bruno 27 Dresses 2008 -Hawkins, Cole Changing Lanes 2002 -Hawkins, Cole Big Daddy 1999 -Hawkins, Cole The School of Rock 2003 -Hawkins, Cole Meet the Parents 2000 -Maclaren, John (I) The Sum of All Fears 2002 -Maclaren, John (I) Double Jeopardy 1999 -Maclaren, John (I) Capote 2005 -Maclaren, John (I) The Day After Tomorrow 2004 -Flower, Jessie Curious George 2006 -Flower, Jessie The Ant Bully 2006 -Flower, Jessie Meet the Robinsons 2007 -Flower, Jessie Over the Hedge 2006 -Brooks, Emerson Super 8 2011 -Brooks, Emerson National Treasure: Book of Secrets 2007 -Brooks, Emerson Terminator Salvation 2009 -Ginter, Lindsey Mercury Rising 1998 -Ginter, Lindsey S.W.A.T. 2003 -Ginter, Lindsey Transformers: Dark of the Moon 2011 -Ginter, Lindsey Pearl Harbor 2001 -Connolly, Tim (I) 300 2006 -Connolly, Tim (I) Meet the Spartans 2008 -Connolly, Tim (I) Just Like Heaven 2005 -Tompkins, Paul F. Anchorman: The Legend of Ron Burgundy 2004 -Tompkins, Paul F. Magnolia 1999 -Tompkins, Paul F. There Will Be Blood 2007 -Sidora, Drew White Chicks 2004 -Sidora, Drew Wild Hogs 2007 -Sidora, Drew Step Up 2006 -Roussounis, Jimmy Lara Croft: Tomb Raider 2001 -Roussounis, Jimmy Pirates of the Caribbean: Dead Man's Chest 2006 -Roussounis, Jimmy The World Is Not Enough 1999 -Spacey, Kevin The Negotiator 1998 -Spacey, Kevin 21 2008 -Spacey, Kevin Se7en 1995 -Spacey, Kevin Fred Claus 2007 -Spacey, Kevin Outbreak 1995 -Spacey, Kevin A Time to Kill 1996 -Spacey, Kevin Superman Returns 2006 -Spacey, Kevin Pay It Forward 2000 -Spacey, Kevin A Bug's Life 1998 -Spacey, Kevin American Beauty 1999 -Spacey, Kevin L.A. Confidential 1997 -Spacey, Kevin Horrible Bosses 2011 -Spacey, Kevin K-PAX 2001 -Spacey, Kevin Austin Powers in Goldmember 2002 -Thornton, Kirk Battleship 2012 -Thornton, Kirk The Amazing Spider-Man 2012 -Thornton, Kirk Ghost Rider 2007 -Speirs, Steve Eragon 2006 -Speirs, Steve Pirates of the Caribbean: Dead Man's Chest 2006 -Speirs, Steve Star Wars: Episode I - The Phantom Menace 1999 -Beach, Lisa Wedding Crashers 2005 -Beach, Lisa Scream 3 2000 -Beach, Lisa Scream 1996 -Fridley, Tom Phenomenon 1996 -Fridley, Tom The Karate Kid 1984 -Fridley, Tom Face/Off 1997 -Williams, Wade (II) Ali 2001 -Williams, Wade (II) Collateral 2004 -Williams, Wade (II) Erin Brockovich 2000 -Silverstone, Alicia Batman & Robin 1997 -Silverstone, Alicia Scooby Doo 2: Monsters Unleashed 2004 -Silverstone, Alicia Tropic Thunder 2008 -Grundy, Rueben Yours, Mine and Ours 2005 -Grundy, Rueben The Princess Diaries 2001 -Grundy, Rueben 40 Days and 40 Nights 2002 -Grundy, Rueben The Pursuit of Happyness 2006 -Podhora, Roman Chicago 2002 -Podhora, Roman Resident Evil: Apocalypse 2004 -Podhora, Roman Final Destination 5 2011 -Podhora, Roman K-19: The Widowmaker 2002 -Podhora, Roman Cinderella Man 2005 -Mohr, Jay Jerry Maguire 1996 -Mohr, Jay Small Soldiers 1998 -Mohr, Jay Pay It Forward 2000 -Mohr, Jay Hereafter 2010 -Mohr, Jay Are We There Yet? 2005 -Braine, Richard Finding Neverland 2004 -Braine, Richard Calendar Girls 2003 -Braine, Richard Bridget Jones: The Edge of Reason 2004 -Beltzman, Mark Home Alone 1990 -Beltzman, Mark The Wedding Singer 1998 -Beltzman, Mark Speed 2: Cruise Control 1997 -Diamond, Peter (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Diamond, Peter (I) Star Wars 1977 -Diamond, Peter (I) Star Wars: Episode VI - Return of the Jedi 1983 -Handler, Evan Sex and the City 2008 -Handler, Evan Ransom 1996 -Handler, Evan Sex and the City 2 2010 -Proctor, Phil Home on the Range 2004 -Proctor, Phil Fly Me to the Moon 2008 -Proctor, Phil Treasure Planet 2002 -Proctor, Phil Toy Story 2 1999 -Proctor, Phil The Princess and the Frog 2009 -Proctor, Phil The Rugrats Movie 1998 -Proctor, Phil Rugrats in Paris: The Movie - Rugrats II 2000 -Proctor, Phil The Lion King 1994 -Proctor, Phil Hercules 1997 -Proctor, Phil Rugrats Go Wild 2003 -Proctor, Phil Tarzan 1999 -Proctor, Phil Dr. Dolittle 2 2001 -Proctor, Phil The Hunchback of Notre Dame 1996 -Proctor, Phil A Bug's Life 1998 -Proctor, Phil Sen to Chihiro no kamikakushi 2001 -Proctor, Phil Racing Stripes 2005 -Proctor, Phil Beauty and the Beast 1991 -Proctor, Phil Aladdin 1992 -Proctor, Phil Barnyard 2006 -Proctor, Phil Toy Story 1995 -Proctor, Phil Doctor Dolittle 1998 -Proctor, Phil Recess: School's Out 2001 -Proctor, Phil Monsters, Inc. 2001 -Proctor, Phil Brother Bear 2003 -Raven, Elsa Indecent Proposal 1993 -Raven, Elsa In the Line of Fire 1993 -Raven, Elsa Back to the Future 1985 -Raven, Elsa Titanic 1997 -Page, Ellen Inception 2010 -Page, Ellen Juno 2007 -Page, Ellen X-Men: The Last Stand 2006 -Wilson, Owen (I) Shanghai Noon 2000 -Wilson, Owen (I) Behind Enemy Lines 2001 -Wilson, Owen (I) Meet the Parents 2000 -Wilson, Owen (I) Zoolander 2001 -Wilson, Owen (I) The Cable Guy 1996 -Wilson, Owen (I) Shanghai Knights 2003 -Wilson, Owen (I) The Royal Tenenbaums 2001 -Wilson, Owen (I) Around the World in 80 Days 2004 -Wilson, Owen (I) Cars 2 2011 -Wilson, Owen (I) Marmaduke 2010 -Wilson, Owen (I) Starsky & Hutch 2004 -Wilson, Owen (I) Armageddon 1998 -Wilson, Owen (I) Anaconda 1997 -Wilson, Owen (I) Cars 2006 -Wilson, Owen (I) Meet the Fockers 2004 -Wilson, Owen (I) Little Fockers 2010 -Wilson, Owen (I) Wedding Crashers 2005 -Wilson, Owen (I) Midnight in Paris 2011 -Wilson, Owen (I) You, Me and Dupree 2006 -Wilson, Owen (I) The Haunting 1999 -Wilson, Owen (I) Night at the Museum: Battle of the Smithsonian 2009 -Wilson, Owen (I) Marley & Me 2008 -Wilson, Owen (I) Night at the Museum 2006 -De Alessandro, Mark Daylight 1996 -De Alessandro, Mark Rocky IV 1985 -De Alessandro, Mark Spider-Man 2002 -Allison, Frankie J. Indecent Proposal 1993 -Allison, Frankie J. Miami Vice 2006 -Allison, Frankie J. S.W.A.T. 2003 -Allison, Frankie J. Daredevil 2003 -Allison, Frankie J. Ocean's Eleven 2001 -Facio, Giannina Body of Lies 2008 -Facio, Giannina Hannibal 2001 -Facio, Giannina Matchstick Men 2003 -Facio, Giannina Kingdom of Heaven 2005 -Facio, Giannina Black Hawk Down 2001 -Facio, Giannina Robin Hood 2010 -Facio, Giannina Gladiator 2000 -Facio, Giannina Prometheus 2012 -Dinklage, Peter Elf 2003 -Dinklage, Peter Underdog 2007 -Dinklage, Peter Death at a Funeral 2010 -Dinklage, Peter The Chronicles of Narnia: Prince Caspian 2008 -Cannon, Matt (II) Body of Lies 2008 -Cannon, Matt (II) Burn After Reading 2008 -Cannon, Matt (II) Syriana 2005 -Cannon, Matt (II) Transformers 2007 -Pape, Paul Saturday Night Fever 1977 -Pape, Paul Chicken Little 2005 -Pape, Paul Bolt 2008 -Pape, Paul Cats & Dogs 2001 -Pape, Paul The Time Traveler's Wife 2009 -Pape, Paul Bride Wars 2009 -Pape, Paul The Wild 2006 -Timmis, Conor The Sisterhood of the Traveling Pants 2 2008 -Timmis, Conor Indiana Jones and the Kingdom of the Crystal Skull 2008 -Timmis, Conor The Departed 2006 -Ineson, Ralph Harry Potter and the Deathly Hallows: Part 1 2010 -Ineson, Ralph From Hell 2001 -Ineson, Ralph Robin Hood 2010 -Ineson, Ralph Harry Potter and the Deathly Hallows: Part 2 2011 -Ineson, Ralph Harry Potter and the Half-Blood Prince 2009 -Aylward, John Bad Company 2002 -Aylward, John Water for Elephants 2011 -Aylward, John Armageddon 1998 -Aylward, John Monster-in-Law 2005 -Zerbe, Anthony Licence to Kill 1989 -Zerbe, Anthony The Matrix Reloaded 2003 -Zerbe, Anthony Star Trek: Insurrection 1998 -Zerbe, Anthony The Matrix Revolutions 2003 -Chao, Vic Pearl Harbor 2001 -Chao, Vic Rat Race 2001 -Chao, Vic Miss Congeniality 2: Armed and Fabulous 2005 -Jones, Tyler Patrick G-Force 2009 -Jones, Tyler Patrick The Spiderwick Chronicles 2008 -Jones, Tyler Patrick Minority Report 2002 -Jones, Tyler Patrick Yours, Mine and Ours 2005 -Jones, Tyler Patrick Red Dragon 2002 -Tabakin, Ralph Rain Man 1988 -Tabakin, Ralph Wag the Dog 1997 -Tabakin, Ralph Disclosure 1994 -Tabakin, Ralph Sleepers 1996 -Tabakin, Ralph The Natural 1984 -Ross, Neil (I) The SpongeBob SquarePants Movie 2004 -Ross, Neil (I) The Da Vinci Code 2006 -Ross, Neil (I) The Ant Bully 2006 -Ross, Neil (I) Back to the Future Part II 1989 -Ross, Neil (I) Spider-Man 3 2007 -Ross, Neil (I) Being John Malkovich 1999 -Ross, Neil (I) Babe 1995 -Summer, Laura Bride Wars 2009 -Summer, Laura Keeping the Faith 2000 -Summer, Laura Shallow Hal 2001 -Sheppard, William Morgan The Prestige 2006 -Sheppard, William Morgan Star Trek 2009 -Sheppard, William Morgan Transformers 2007 -Heap, Mark Charlie and the Chocolate Factory 2005 -Heap, Mark About a Boy 2002 -Heap, Mark Stardust 2007 -Andrews, Nicole (I) Catch Me If You Can 2002 -Andrews, Nicole (I) Christmas with the Kranks 2004 -Andrews, Nicole (I) We Bought a Zoo 2011 -Plummer, Christopher (I) The Insider 1999 -Plummer, Christopher (I) Alexander 2004 -Plummer, Christopher (I) Must Love Dogs 2005 -Plummer, Christopher (I) National Treasure 2004 -Plummer, Christopher (I) Malcolm X 1992 -Plummer, Christopher (I) The Girl with the Dragon Tattoo 2011 -Plummer, Christopher (I) Syriana 2005 -Plummer, Christopher (I) Inside Man 2006 -Plummer, Christopher (I) The Lake House 2006 -Plummer, Christopher (I) Up 2009 -Plummer, Christopher (I) Twelve Monkeys 1995 -Plummer, Christopher (I) A Beautiful Mind 2001 -Collins, Sean (V) The Game Plan 2007 -Collins, Sean (V) 21 2008 -Collins, Sean (V) 27 Dresses 2008 -Collins, Sean (V) The Natural 1984 -Collins, Sean (V) Dan in Real Life 2007 -Kelley, DeForest Star Trek IV: The Voyage Home 1986 -Kelley, DeForest Star Trek: The Wrath of Khan 1982 -Kelley, DeForest Star Trek III: The Search for Spock 1984 -Nelson, Douglas (IV) Night at the Museum: Battle of the Smithsonian 2009 -Nelson, Douglas (IV) Limitless 2011 -Nelson, Douglas (IV) Burn After Reading 2008 -Nelson, Douglas (IV) Body of Lies 2008 -McShane, Ian Snow White and the Huntsman 2012 -McShane, Ian Death Race 2008 -McShane, Ian The Sorcerer's Apprentice 2010 -McShane, Ian Coraline 2009 -McShane, Ian Shrek the Third 2007 -McShane, Ian We Are Marshall 2006 -McShane, Ian Kung Fu Panda 2008 -McShane, Ian Pirates of the Caribbean: On Stranger Tides 2011 -McShane, Ian The Golden Compass 2007 -Legeno, Dave Snow White and the Huntsman 2012 -Legeno, Dave Harry Potter and the Half-Blood Prince 2009 -Legeno, Dave Harry Potter and the Deathly Hallows: Part 2 2011 -Legeno, Dave Batman Begins 2005 -Legeno, Dave Harry Potter and the Deathly Hallows: Part 1 2010 -O'Toole, Peter (I) Stardust 2007 -O'Toole, Peter (I) Troy 2004 -O'Toole, Peter (I) Ratatouille 2007 -O'Toole, Peter (I) Prometheus 2012 -Hanley, Joe (I) Batman Begins 2005 -Hanley, Joe (I) Michael Collins 1996 -Hanley, Joe (I) The Count of Monte Cristo 2002 -Shulak, John Patrick Rumor Has It... 2005 -Shulak, John Patrick 50 First Dates 2004 -Shulak, John Patrick The Pursuit of Happyness 2006 -Stevens, Brody The Hangover Part II 2011 -Stevens, Brody Due Date 2010 -Stevens, Brody The Hangover 2009 -Bell, Bobby (I) Inspector Gadget 1999 -Bell, Bobby (I) Star Wars: Episode VI - Return of the Jedi 1983 -Bell, Bobby (I) Batman Returns 1992 -Shepherd, Sherri Madea Goes to Jail 2009 -Shepherd, Sherri Madagascar: Escape 2 Africa 2008 -Shepherd, Sherri Guess Who 2005 -Shepherd, Sherri Think Like a Man 2012 -Shepherd, Sherri Precious 2009 -Shepherd, Sherri Big Mommas: Like Father, Like Son 2011 -Shepherd, Sherri Cellular 2004 -Vaughn, Vince Four Christmases 2008 -Vaughn, Vince Zoolander 2001 -Vaughn, Vince The Cell 2000 -Vaughn, Vince Fred Claus 2007 -Vaughn, Vince The Break-Up 2006 -Vaughn, Vince Couples Retreat 2009 -Vaughn, Vince Starsky & Hutch 2004 -Vaughn, Vince Wedding Crashers 2005 -Vaughn, Vince Domestic Disturbance 2001 -Vaughn, Vince Anchorman: The Legend of Ron Burgundy 2004 -Vaughn, Vince Mr. & Mrs. Smith 2005 -Vaughn, Vince Dodgeball: A True Underdog Story 2004 -Vaughn, Vince The Lost World: Jurassic Park 1997 -Vaughn, Vince Old School 2003 -Horvitz, Richard Steven Snow Dogs 2002 -Horvitz, Richard Steven Cats & Dogs 2001 -Horvitz, Richard Steven Crazy, Stupid, Love. 2011 -Horvitz, Richard Steven Mulan 1998 -Horvitz, Richard Steven Hauru no ugoku shiro 2004 -Moore, Summer (I) Catch Me If You Can 2002 -Moore, Summer (I) I Still Know What You Did Last Summer 1998 -Moore, Summer (I) Just Married 2003 -Cass, Marc The World Is Not Enough 1999 -Cass, Marc Titanic 1997 -Cass, Marc Saving Private Ryan 1998 -Doherty, Matt (I) The Mighty Ducks 1992 -Doherty, Matt (I) D2: The Mighty Ducks 1994 -Doherty, Matt (I) Home Alone 1990 -Brooke, Paul (I) The Phantom of the Opera 2004 -Brooke, Paul (I) Bridget Jones's Diary 2001 -Brooke, Paul (I) Star Wars: Episode VI - Return of the Jedi 1983 -Brooke, Paul (I) For Your Eyes Only 1981 -Spinelli, Chris (I) National Treasure: Book of Secrets 2007 -Spinelli, Chris (I) I Love You, Man 2009 -Spinelli, Chris (I) Cloverfield 2008 -Spinelli, Chris (I) The Muppets 2011 -Spinelli, Chris (I) The Ugly Truth 2009 -Spinelli, Chris (I) Eagle Eye 2008 -Spinelli, Chris (I) You Don't Mess with the Zohan 2008 -Keating, Fred (II) Final Destination 2000 -Keating, Fred (II) The Core 2003 -Keating, Fred (II) Miracle 2004 -Keating, Fred (II) The Santa Clause 2 2002 -Pinkett Smith, Jada Ali 2001 -Pinkett Smith, Jada Scream 2 1997 -Pinkett Smith, Jada Madagascar 3: Europe's Most Wanted 2012 -Pinkett Smith, Jada Collateral 2004 -Pinkett Smith, Jada The Matrix Reloaded 2003 -Pinkett Smith, Jada Madagascar 2005 -Pinkett Smith, Jada The Nutty Professor 1996 -Pinkett Smith, Jada Madagascar: Escape 2 Africa 2008 -Pinkett Smith, Jada The Matrix Revolutions 2003 -Pinkett Smith, Jada Set It Off 1996 -Scott, Codie JFK 1991 -Scott, Codie Failure to Launch 2006 -Scott, Codie Big Momma's House 2 2006 -Scott, Codie Glory Road 2006 -Hayes, Deryl Look Who's Talking 1989 -Hayes, Deryl Double Jeopardy 1999 -Hayes, Deryl Rat Race 2001 -Wong, Vincent (I) Die Another Day 2002 -Wong, Vincent (I) Batman 1989 -Wong, Vincent (I) Kiss of the Dragon 2001 -Wong, Vincent (I) Batman Begins 2005 -Bernhardt, Chick Licence to Kill 1989 -Bernhardt, Chick U.S. Marshals 1998 -Bernhardt, Chick The Town 2010 -Langella, Frank Small Soldiers 1998 -Langella, Frank Red Dragon 2002 -Langella, Frank Wall Street: Money Never Sleeps 2010 -Langella, Frank Superman Returns 2006 -Langella, Frank The Tale of Despereaux 2008 -Langella, Frank Unknown 2011 -Langella, Frank Good Night, and Good Luck. 2005 -Coulson, Jordan Michael Night at the Museum: Battle of the Smithsonian 2009 -Coulson, Jordan Michael Transformers: Dark of the Moon 2011 -Coulson, Jordan Michael Step Up 2006 -Maklakov, Aleksey Dnevnoy dozor 2006 -Maklakov, Aleksey Rzhevskiy protiv Napoleona 2012 -Maklakov, Aleksey Nochnoy dozor 2004 -Joy, Mark Dogma 1999 -Joy, Mark Big Momma's House 2 2006 -Joy, Mark Black Knight 2001 -Joy, Mark Divine Secrets of the Ya-Ya Sisterhood 2002 -Chapman, Douglas Watchmen 2009 -Chapman, Douglas The Day the Earth Stood Still 2008 -Chapman, Douglas Fantastic Four 2005 -Ma, Tzi Dante's Peak 1997 -Ma, Tzi RoboCop 2 1990 -Ma, Tzi The Ladykillers 2004 -Ma, Tzi Rush Hour 3 2007 -Ma, Tzi Rush Hour 1998 -Ivanir, Mark The Terminal 2004 -Ivanir, Mark The Good Shepherd 2006 -Ivanir, Mark Get Smart 2008 -Ivanir, Mark Johnny English Reborn 2011 -Ivanir, Mark The Adventures of Tintin 2011 -Ivanir, Mark Schindler's List 1993 -Ivanir, Mark Mr. & Mrs. Smith 2005 -LeParmentier, Richard Octopussy 1983 -LeParmentier, Richard Star Wars 1977 -LeParmentier, Richard Superman II 1980 -LeParmentier, Richard Who Framed Roger Rabbit 1988 -Lewis, Vicki (I) Godzilla 1998 -Lewis, Vicki (I) Finding Nemo 2003 -Lewis, Vicki (I) Mousehunt 1997 -Lewis, Vicki (I) The Ugly Truth 2009 -Thomas, Preston Shaft 2000 -Thomas, Preston Shallow Hal 2001 -Thomas, Preston Fever Pitch 2005 -Thomas, Preston Me, Myself & Irene 2000 -Darbinyan, Arthur The Avengers 2012 -Darbinyan, Arthur X-Men: First Class 2011 -Darbinyan, Arthur Get Smart 2008 -Bamber, David Valkyrie 2008 -Bamber, David The Bourne Identity 2002 -Bamber, David The King's Speech 2010 -Bamber, David Gangs of New York 2002 -Richardson, Lori (I) The Incredibles 2004 -Richardson, Lori (I) WALL·E 2008 -Richardson, Lori (I) Ratatouille 2007 -Enoch, Alfie Harry Potter and the Goblet of Fire 2005 -Enoch, Alfie Harry Potter and the Prisoner of Azkaban 2004 -Enoch, Alfie Harry Potter and the Sorcerer's Stone 2001 -Enoch, Alfie Harry Potter and the Chamber of Secrets 2002 -Enoch, Alfie Harry Potter and the Deathly Hallows: Part 2 2011 -Enoch, Alfie Harry Potter and the Order of the Phoenix 2007 -Enoch, Alfie Harry Potter and the Half-Blood Prince 2009 -Byrne, Rose Troy 2004 -Byrne, Rose X-Men: First Class 2011 -Byrne, Rose Knowing 2009 -Byrne, Rose Bridesmaids 2011 -Byrne, Rose Star Wars: Episode II - Attack of the Clones 2002 -Byrne, Rose Get Him to the Greek 2010 -Baker, Troy (II) Quantum of Solace 2008 -Baker, Troy (II) The Amazing Spider-Man 2012 -Baker, Troy (II) Clash of the Titans 2010 -Tiernan, Andrew 300 2006 -Tiernan, Andrew The Pianist 2002 -Tiernan, Andrew Interview with the Vampire: The Vampire Chronicles 1994 -Crowley, Tim (I) Friday Night Lights 2004 -Crowley, Tim (I) Varsity Blues 1999 -Crowley, Tim (I) The Longest Yard 2005 -Batinkoff, Randall X-Men: First Class 2011 -Batinkoff, Randall The Peacemaker 1997 -Batinkoff, Randall As Good as It Gets 1997 -Batinkoff, Randall Kick-Ass 2010 -Sims, Andy (I) The Final Destination 2009 -Sims, Andy (I) The Curious Case of Benjamin Button 2008 -Sims, Andy (I) O Brother, Where Art Thou? 2000 -Adler, Charles (I) The Little Mermaid 1989 -Adler, Charles (I) Transformers: Dark of the Moon 2011 -Adler, Charles (I) Aladdin 1992 -Adler, Charles (I) The Rugrats Movie 1998 -Adler, Charles (I) Transformers: Revenge of the Fallen 2009 -Adler, Charles (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Adler, Charles (I) Transformers 2007 -Curry, Shea New Year's Eve 2011 -Curry, Shea The Princess Diaries 2: Royal Engagement 2004 -Curry, Shea Hancock 2008 -Hannah, John (I) The Mummy 1999 -Hannah, John (I) The Hurricane 1999 -Hannah, John (I) The Mummy Returns 2001 -Hannah, John (I) Four Weddings and a Funeral 1994 -Hannah, John (I) The Mummy: Tomb of the Dragon Emperor 2008 -Baker, Diane (I) The Silence of the Lambs 1991 -Baker, Diane (I) The Net 1995 -Baker, Diane (I) The Cable Guy 1996 -Baker, Diane (I) Courage Under Fire 1996 -Hoyt, Kerry Fun with Dick and Jane 2005 -Hoyt, Kerry Yes Man 2008 -Hoyt, Kerry A Christmas Carol 2009 -Heston, Charlton Hercules 1997 -Heston, Charlton Any Given Sunday 1999 -Heston, Charlton Armageddon 1998 -Heston, Charlton Cats & Dogs 2001 -Heston, Charlton True Lies 1994 -Heston, Charlton Bowling for Columbine 2002 -Laing, Richard (I) Batman Begins 2005 -Laing, Richard (I) Gulliver's Travels 2010 -Laing, Richard (I) V for Vendetta 2005 -Williams, Treat The Devil's Own 1997 -Williams, Treat Star Wars: Episode V - The Empire Strikes Back 1980 -Williams, Treat What Happens in Vegas 2008 -Williams, Treat Miss Congeniality 2: Armed and Fabulous 2005 -Nolte, Nick Down and Out in Beverly Hills 1986 -Nolte, Nick Zookeeper 2011 -Nolte, Nick Tropic Thunder 2008 -Nolte, Nick Hulk 2003 -Nolte, Nick Cats & Dogs: The Revenge of Kitty Galore 2010 -Nolte, Nick Over the Hedge 2006 -Nolte, Nick The Spiderwick Chronicles 2008 -Nolte, Nick The Thin Red Line 1998 -Grier, Pam Mars Attacks! 1996 -Grier, Pam Larry Crowne 2011 -Grier, Pam Snow Day 2000 -Grier, Pam Jackie Brown 1997 -Lacatena, Tim Black Swan 2010 -Lacatena, Tim 500) Days of Summer 2009 -Lacatena, Tim Step Up 2006 -Wincott, Michael Alien: Resurrection 1997 -Wincott, Michael Along Came a Spider 2001 -Wincott, Michael The Count of Monte Cristo 2002 -Wincott, Michael Treasure Planet 2002 -Wincott, Michael Robin Hood: Prince of Thieves 1991 -Neustadt, Ted Analyze This 1999 -Neustadt, Ted The Brave One 2007 -Neustadt, Ted Presumed Innocent 1990 -Goldblum, Jeff Cats & Dogs 2001 -Goldblum, Jeff The Prince of Egypt 1998 -Goldblum, Jeff Jurassic Park 1993 -Goldblum, Jeff Independence Day 1996 -Goldblum, Jeff The Lost World: Jurassic Park 1997 -Depp, Johnny Charlie and the Chocolate Factory 2005 -Depp, Johnny Pirates of the Caribbean: At World's End 2007 -Depp, Johnny Chocolat 2000 -Depp, Johnny Pirates of the Caribbean: Dead Man's Chest 2006 -Depp, Johnny Secret Window 2004 -Depp, Johnny Deep Sea 2006 -Depp, Johnny Sweeney Todd: The Demon Barber of Fleet Street 2007 -Depp, Johnny Freddy's Dead: The Final Nightmare 1991 -Depp, Johnny Alice in Wonderland 2010 -Depp, Johnny Sleepy Hollow 1999 -Depp, Johnny From Hell 2001 -Depp, Johnny Blow 2001 -Depp, Johnny Jack and Jill 2011 -Depp, Johnny Corpse Bride 2005 -Depp, Johnny The Tourist 2010 -Depp, Johnny Public Enemies 2009 -Depp, Johnny 21 Jump Street 2012 -Depp, Johnny Donnie Brasco 1997 -Depp, Johnny Rango 2011 -Depp, Johnny Finding Neverland 2004 -Depp, Johnny Pirates of the Caribbean: On Stranger Tides 2011 -Depp, Johnny Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Marshall, Barbara (I) New Year's Eve 2011 -Marshall, Barbara (I) Runaway Bride 1999 -Marshall, Barbara (I) Raising Helen 2004 -Marshall, Barbara (I) The Princess Diaries 2001 -Marshall, Barbara (I) The Princess Diaries 2: Royal Engagement 2004 -Dillon, Melinda Close Encounters of the Third Kind 1977 -Dillon, Melinda Absence of Malice 1981 -Dillon, Melinda Magnolia 1999 -Saldana, Zoe Drumline 2002 -Saldana, Zoe Vantage Point 2008 -Saldana, Zoe Star Trek 2009 -Saldana, Zoe The Terminal 2004 -Saldana, Zoe Takers 2010 -Saldana, Zoe Guess Who 2005 -Saldana, Zoe Avatar 2009 -Saldana, Zoe Death at a Funeral 2010 -Saldana, Zoe Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Presnell, Harve Patch Adams 1998 -Presnell, Harve Fargo 1996 -Presnell, Harve Evan Almighty 2007 -Presnell, Harve Mr. Deeds 2002 -Presnell, Harve The Family Man 2000 -Presnell, Harve Old School 2003 -Presnell, Harve Face/Off 1997 -Presnell, Harve Saving Private Ryan 1998 -Black, Claudia (I) Rango 2011 -Black, Claudia (I) Pitch Black 2000 -Black, Claudia (I) The Amazing Spider-Man 2012 -Mortimer, Emily The Ghost and the Darkness 1996 -Mortimer, Emily The Pink Panther 2006 -Mortimer, Emily The Saint 1997 -Mortimer, Emily Notting Hill 1999 -Mortimer, Emily Elizabeth 1998 -Mortimer, Emily Cars 2 2011 -Mortimer, Emily Shutter Island 2010 -Mortimer, Emily Hauru no ugoku shiro 2004 -Mortimer, Emily The Kid 2000 -Mortimer, Emily Scream 3 2000 -Mone, Bob Shallow Hal 2001 -Mone, Bob Me, Myself & Irene 2000 -Mone, Bob The Heartbreak Kid 2007 -Vann, Marc I Now Pronounce You Chuck & Larry 2007 -Vann, Marc Spider-Man 3 2007 -Vann, Marc U.S. Marshals 1998 -Melançon, Mei X-Men: The Last Stand 2006 -Melançon, Mei Double Take 2001 -Melançon, Mei Rush Hour 2 2001 -Mako (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Mako (I) Memoirs of a Geisha 2005 -Mako (I) Pearl Harbor 2001 -Mako (I) TMNT 2007 -Mako (I) Seven Years in Tibet 1997 -Whitaker, Colette (I) The Mummy: Tomb of the Dragon Emperor 2008 -Whitaker, Colette (I) Toy Story 3 2010 -Whitaker, Colette (I) WALL·E 2008 -Whitaker, Colette (I) Over the Hedge 2006 -Whitaker, Colette (I) Cars 2006 -Kelleher, Tim (I) Inception 2010 -Kelleher, Tim (I) The Birdcage 1996 -Kelleher, Tim (I) Matchstick Men 2003 -Kelleher, Tim (I) The Negotiator 1998 -Kelleher, Tim (I) Independence Day 1996 -Kelleher, Tim (I) Malcolm X 1992 -Mathis, Bud I Now Pronounce You Chuck & Larry 2007 -Mathis, Bud Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Mathis, Bud Pirates of the Caribbean: Dead Man's Chest 2006 -Roselli, Lauren The Silence of the Lambs 1991 -Roselli, Lauren Philadelphia 1993 -Roselli, Lauren The Manchurian Candidate 2004 -Jei, Julie The Interpreter 2005 -Jei, Julie The Devil Wears Prada 2006 -Jei, Julie Spider-Man 3 2007 -Jei, Julie Inside Man 2006 -Clark, Blake (I) Rango 2011 -Clark, Blake (I) Toy Story 3 2010 -Clark, Blake (I) Intolerable Cruelty 2003 -Clark, Blake (I) The Ladykillers 2004 -Clark, Blake (I) The Mask 1994 -Clark, Blake (I) The Waterboy 1998 -Clark, Blake (I) Little Nicky 2000 -Clark, Blake (I) Bedtime Stories 2008 -Clark, Blake (I) 50 First Dates 2004 -Clark, Blake (I) Get Smart 2008 -Clark, Blake (I) I Now Pronounce You Chuck & Larry 2007 -Clark, Blake (I) Nothing to Lose 1997 -Clark, Blake (I) Mr. Deeds 2002 -Clark, Blake (I) Grown Ups 2010 -Craven, Matt (I) X-Men: First Class 2011 -Craven, Matt (I) Deja Vu 2006 -Craven, Matt (I) Disturbia 2007 -Craven, Matt (I) A Few Good Men 1992 -Craven, Matt (I) Public Enemies 2009 -Silvia, Billy Shutter Island 2010 -Silvia, Billy Underdog 2007 -Silvia, Billy The Departed 2006 -Silvia, Billy 21 2008 -Silvia, Billy The Town 2010 -Savochkin, Igor Ironiya sudby. Prodolzhenie 2007 -Savochkin, Igor Dnevnoy dozor 2006 -Savochkin, Igor Nochnoy dozor 2004 -Bledel, Alexis The Sisterhood of the Traveling Pants 2005 -Bledel, Alexis Sin City 2005 -Bledel, Alexis The Sisterhood of the Traveling Pants 2 2008 -Franchi, John Shutter Island 2010 -Franchi, John The Town 2010 -Franchi, John Bride Wars 2009 -Franchi, John Ghosts of Girlfriends Past 2009 -Franchi, John The Fighter 2010 -Franchi, John Zookeeper 2011 -Bell, Jamie (I) Billy Elliot 2000 -Bell, Jamie (I) King Kong 2005 -Bell, Jamie (I) Jumper 2008 -Bell, Jamie (I) The Adventures of Tintin 2011 -Gibbs, Nigel City of Angels 1998 -Gibbs, Nigel Eagle Eye 2008 -Gibbs, Nigel Matchstick Men 2003 -Gibbs, Nigel American Pie 2 2001 -Arnett, Will Horton Hears a Who! 2008 -Arnett, Will Blades of Glory 2007 -Arnett, Will RV 2006 -Arnett, Will Monster-in-Law 2005 -Arnett, Will Ratatouille 2007 -Arnett, Will Kari-gurashi no Arietti 2010 -Arnett, Will Despicable Me 2010 -Arnett, Will G-Force 2009 -Arnett, Will Men in Black 3 2012 -Arnett, Will Monsters vs Aliens 2009 -Arnett, Will Ice Age: The Meltdown 2006 -Mason, Madison (I) Collateral Damage 2002 -Mason, Madison (I) Evan Almighty 2007 -Mason, Madison (I) Wall Street: Money Never Sleeps 2010 -Mason, Madison (I) Pearl Harbor 2001 -Mason, Madison (I) Eagle Eye 2008 -Mason, Madison (I) Red Dragon 2002 -Mason, Madison (I) Transformers 2007 -Byrd, Dan (I) The Hills Have Eyes 2006 -Byrd, Dan (I) 28 Days 2000 -Byrd, Dan (I) A Cinderella Story 2004 -Byrd, Dan (I) Easy A 2010 -Law, Jude Lemony Snicket's A Series of Unfortunate Events 2004 -Law, Jude Road to Perdition 2002 -Law, Jude The Holiday 2006 -Law, Jude The Aviator 2004 -Law, Jude Enemy at the Gates 2001 -Law, Jude Contagion 2011 -Law, Jude Sherlock Holmes: A Game of Shadows 2011 -Law, Jude Cold Mountain 2003 -Law, Jude Sky Captain and the World of Tomorrow 2004 -Law, Jude Sherlock Holmes 2009 -Law, Jude Artificial Intelligence: AI 2001 -Law, Jude The Talented Mr. Ripley 1999 -Restivo, Steve Raising Helen 2004 -Restivo, Steve The Princess Diaries 2001 -Restivo, Steve The Princess Diaries 2: Royal Engagement 2004 -Restivo, Steve Pretty Woman 1990 -Stewart, McKay The Island 2005 -Stewart, McKay Million Dollar Baby 2004 -Stewart, McKay Eagle Eye 2008 -Segalla, Todo The Peacemaker 1997 -Segalla, Todo A Perfect Murder 1998 -Segalla, Todo The Bone Collector 1999 -Segalla, Todo Sleepers 1996 -Williams, Harland The Whole Nine Yards 2000 -Williams, Harland Robots 2005 -Williams, Harland Wag the Dog 1997 -Williams, Harland Superstar 1999 -Williams, Harland Madagascar: Escape 2 Africa 2008 -Williams, Harland Dumb & Dumber 1994 -Williams, Harland Meet the Robinsons 2007 -Williams, Harland There's Something About Mary 1998 -Williams, Harland Because of Winn-Dixie 2005 -Olmos, Edward James Selena 1997 -Olmos, Edward James The Green Hornet 2011 -Olmos, Edward James The Road to El Dorado 2000 -Olmos, Edward James Beverly Hills Chihuahua 2008 -Kruger, Diane National Treasure: Book of Secrets 2007 -Kruger, Diane National Treasure 2004 -Kruger, Diane Troy 2004 -Kruger, Diane Unknown 2011 -Kruger, Diane Inglourious Basterds 2009 -Wineteer, Ray American Gangster 2007 -Wineteer, Ray Spider-Man 3 2007 -Wineteer, Ray Changing Lanes 2002 -Westaway, Simon Babe: Pig in the City 1998 -Westaway, Simon Happy Feet 2006 -Westaway, Simon The Thin Red Line 1998 -Gray, Rob W. Shutter Island 2010 -Gray, Rob W. Paul Blart: Mall Cop 2009 -Gray, Rob W. Ghosts of Girlfriends Past 2009 -Brogger, Ivar Fun with Dick and Jane 2005 -Brogger, Ivar Dreamgirls 2006 -Brogger, Ivar Ocean's Thirteen 2007 -Mungo, Howard Pearl Harbor 2001 -Mungo, Howard Angels & Demons 2009 -Mungo, Howard Tears of the Sun 2003 -Mungo, Howard Superhero Movie 2008 -Aghdashloo, Shohreh The Exorcism of Emily Rose 2005 -Aghdashloo, Shohreh The Sisterhood of the Traveling Pants 2 2008 -Aghdashloo, Shohreh The Lake House 2006 -Aghdashloo, Shohreh X-Men: The Last Stand 2006 -Wolande, Gene A Civil Action 1998 -Wolande, Gene L.A. Confidential 1997 -Wolande, Gene The Negotiator 1998 -Wolande, Gene RoboCop 1987 -Fishburne, Laurence Michael Jordan to the Max 2000 -Fishburne, Laurence Apocalypse Now 1979 -Fishburne, Laurence The Matrix Reloaded 2003 -Fishburne, Laurence 4: Rise of the Silver Surfer 2007 -Fishburne, Laurence Mystic River 2003 -Fishburne, Laurence Contagion 2011 -Fishburne, Laurence Predators 2010 -Fishburne, Laurence Mission: Impossible III 2006 -Fishburne, Laurence A Nightmare on Elm Street 3: Dream Warriors 1987 -Fishburne, Laurence 21 2008 -Fishburne, Laurence The Matrix Revolutions 2003 -Fishburne, Laurence The Matrix 1999 -Fishburne, Laurence TMNT 2007 -Olsen, Eric Christian Pearl Harbor 2001 -Olsen, Eric Christian The Hot Chick 2002 -Olsen, Eric Christian License to Wed 2007 -Olsen, Eric Christian Eagle Eye 2008 -Olsen, Eric Christian Cellular 2004 -Moss, Carrie-Anne The Matrix Reloaded 2003 -Moss, Carrie-Anne The Matrix 1999 -Moss, Carrie-Anne Chocolat 2000 -Moss, Carrie-Anne Disturbia 2007 -Moss, Carrie-Anne Memento 2000 -Moss, Carrie-Anne The Matrix Revolutions 2003 -Roberts, Mario Con Air 1997 -Roberts, Mario Heat 1995 -Roberts, Mario Traffic 2000 -Roberts, Mario Air Force One 1997 -Affleck, Rab Alexander 2004 -Affleck, Rab Gangs of New York 2002 -Affleck, Rab Stardust 2007 -Affleck, Rab Made of Honor 2008 -Leo, Melissa Hide and Seek 2005 -Leo, Melissa Righteous Kill 2008 -Leo, Melissa The Fighter 2010 -Cupone, Vince Out for Justice 1991 -Cupone, Vince Spider-Man 2 2004 -Cupone, Vince K-PAX 2001 -Cupone, Vince I Am Legend 2007 -Mantell, Michael The Ides of March 2011 -Mantell, Michael Ocean's Thirteen 2007 -Mantell, Michael Thank You for Smoking 2005 -Mantell, Michael Artificial Intelligence: AI 2001 -Ferrell, Will Elf 2003 -Ferrell, Will Step Brothers 2008 -Ferrell, Will Zoolander 2001 -Ferrell, Will Land of the Lost 2009 -Ferrell, Will Austin Powers: The Spy Who Shagged Me 1999 -Ferrell, Will Talladega Nights: The Ballad of Ricky Bobby 2006 -Ferrell, Will Austin Powers: International Man of Mystery 1997 -Ferrell, Will Blades of Glory 2007 -Ferrell, Will Kicking & Screaming 2005 -Ferrell, Will Bewitched 2005 -Ferrell, Will Starsky & Hutch 2004 -Ferrell, Will Wedding Crashers 2005 -Ferrell, Will The Other Guys 2010 -Ferrell, Will Anchorman: The Legend of Ron Burgundy 2004 -Ferrell, Will Curious George 2006 -Ferrell, Will Superstar 1999 -Ferrell, Will Megamind 2010 -Ferrell, Will Old School 2003 -Wilson, Casey (III) Bride Wars 2009 -Wilson, Casey (III) Julie & Julia 2009 -Wilson, Casey (III) Killers 2010 -Morris, Sharon (III) The Lucky One 2012 -Morris, Sharon (III) The Secret Life of Bees 2008 -Morris, Sharon (III) Green Lantern 2011 -Morris, Sharon (III) The Hunger Games 2012 -Morris, Sharon (III) The Blind Side 2009 -Morris, Sharon (III) Due Date 2010 -DiGiacinto, Mike The Adjustment Bureau 2011 -DiGiacinto, Mike Collateral Damage 2002 -DiGiacinto, Mike Wall Street: Money Never Sleeps 2010 -Miller, Frank (II) Sin City 2005 -Miller, Frank (II) RoboCop 2 1990 -Miller, Frank (II) Daredevil 2003 -Keen, Geoffrey Octopussy 1983 -Keen, Geoffrey A View to a Kill 1985 -Keen, Geoffrey Moonraker 1979 -Keen, Geoffrey For Your Eyes Only 1981 -Keen, Geoffrey The Living Daylights 1987 -Cosenza, Cheryl The Out-of-Towners 1999 -Cosenza, Cheryl What Happens in Vegas 2008 -Cosenza, Cheryl Zoolander 2001 -Cosenza, Cheryl You Don't Mess with the Zohan 2008 -Champeau, Isabelle The Aviator 2004 -Champeau, Isabelle The Sum of All Fears 2002 -Champeau, Isabelle Watchmen 2009 -Champeau, Isabelle Immortals 2011 -Champeau, Isabelle 300 2006 -Champeau, Isabelle Secret Window 2004 -Moore, Roger (I) For Your Eyes Only 1981 -Moore, Roger (I) Octopussy 1983 -Moore, Roger (I) The Saint 1997 -Moore, Roger (I) Spice World 1997 -Moore, Roger (I) A View to a Kill 1985 -Moore, Roger (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Moore, Roger (I) Moonraker 1979 -Howard, Ken (I) Michael Clayton 2007 -Howard, Ken (I) The Net 1995 -Howard, Ken (I) Rambo 2008 -Howard, Ken (I) J. Edgar 2011 -Howard, Ken (I) Clear and Present Danger 1994 -Howard, Ken (I) In Her Shoes 2005 -Meadows, Tim (I) Jack and Jill 2011 -Meadows, Tim (I) Mean Girls 2004 -Meadows, Tim (I) Aliens in the Attic 2009 -Meadows, Tim (I) Grown Ups 2010 -Breuer, Beverley Scary Movie 3 2003 -Breuer, Beverley Firewall 2006 -Breuer, Beverley Scary Movie 4 2006 -Breuer, Beverley Miracle 2004 -Hutchman, Rich Deja Vu 2006 -Hutchman, Rich Transformers: Dark of the Moon 2011 -Hutchman, Rich The Island 2005 -Hutchman, Rich Crazy, Stupid, Love. 2011 -Lamontagne, Cynthia Forgetting Sarah Marshall 2008 -Lamontagne, Cynthia The Cable Guy 1996 -Lamontagne, Cynthia Austin Powers: International Man of Mystery 1997 -Linn, Rex Clear and Present Danger 1994 -Linn, Rex The Long Kiss Goodnight 1996 -Linn, Rex After the Sunset 2004 -Linn, Rex Cheaper by the Dozen 2003 -Linn, Rex Rush Hour 1998 -Linn, Rex Cliffhanger 1993 -Linn, Rex Tin Cup 1996 -Watts, Naomi Babe: Pig in the City 1998 -Watts, Naomi The Ring 2002 -Watts, Naomi The Ring Two 2005 -Watts, Naomi J. Edgar 2011 -Watts, Naomi King Kong 2005 -Pitt, Brad Fight Club 1999 -Pitt, Brad The Devil's Own 1997 -Pitt, Brad Se7en 1995 -Pitt, Brad Troy 2004 -Pitt, Brad Moneyball 2011 -Pitt, Brad Twelve Monkeys 1995 -Pitt, Brad Being John Malkovich 1999 -Pitt, Brad Babel 2006 -Pitt, Brad Burn After Reading 2008 -Pitt, Brad Ocean's Thirteen 2007 -Pitt, Brad Meet Joe Black 1998 -Pitt, Brad Happy Feet Two 2011 -Pitt, Brad The Curious Case of Benjamin Button 2008 -Pitt, Brad Interview with the Vampire: The Vampire Chronicles 1994 -Pitt, Brad Sleepers 1996 -Pitt, Brad Ocean's Eleven 2001 -Pitt, Brad Ocean's Twelve 2004 -Pitt, Brad The Mexican 2001 -Pitt, Brad Inglourious Basterds 2009 -Pitt, Brad Spy Game 2001 -Pitt, Brad Mr. & Mrs. Smith 2005 -Pitt, Brad Seven Years in Tibet 1997 -Pitt, Brad Megamind 2010 -Huskey, Brian Superbad 2007 -Huskey, Brian Step Brothers 2008 -Huskey, Brian Land of the Lost 2009 -Aldridge, Jonathan Armageddon 1998 -Aldridge, Jonathan Enchanted 2007 -Aldridge, Jonathan American Gangster 2007 -Campbell, Keith (I) Rango 2011 -Campbell, Keith (I) Mission: Impossible 1996 -Campbell, Keith (I) Artificial Intelligence: AI 2001 -Campbell, Keith (I) The Aviator 2004 -Campbell, Keith (I) The Ring 2002 -Campbell, Keith (I) Windtalkers 2002 -Campbell, Keith (I) Men in Black 1997 -Campbell, Keith (I) The Amazing Spider-Man 2012 -Campbell, Keith (I) Minority Report 2002 -Howell, C. Thomas E.T.: The Extra-Terrestrial 1982 -Howell, C. Thomas The Amazing Spider-Man 2012 -Howell, C. Thomas Hidalgo 2004 -Halla Spider-Man 3 2007 -Halla Spider-Man 2 2004 -Halla Memoirs of a Geisha 2005 -Detwiler, Ted Must Love Dogs 2005 -Detwiler, Ted After the Sunset 2004 -Detwiler, Ted The Ring Two 2005 -Perez, Timothy Paul AVPR: Aliens vs Predator - Requiem 2007 -Perez, Timothy Paul Ocean's Eleven 2001 -Perez, Timothy Paul Are We There Yet? 2005 -Mastrolia, Joseph T. Knocked Up 2007 -Mastrolia, Joseph T. Anchorman: The Legend of Ron Burgundy 2004 -Mastrolia, Joseph T. The 40 Year Old Virgin 2005 -Eastwood, Clint Space Cowboys 2000 -Eastwood, Clint In the Line of Fire 1993 -Eastwood, Clint Casper 1995 -Eastwood, Clint Million Dollar Baby 2004 -Eastwood, Clint Gran Torino 2008 -Eastwood, Clint Absolute Power 1997 -Eastwood, Clint Back to the Future Part II 1989 -Eastwood, Clint Unforgiven 1992 -Eastwood, Clint Sudden Impact 1983 -Aldane'e, Paul Snow Dogs 2002 -Aldane'e, Paul Miami Vice 2006 -Aldane'e, Paul Confessions of a Shopaholic 2009 -Aldane'e, Paul Marley & Me 2008 -Aldane'e, Paul Red Eye 2005 -Zambrana, Maria Yes Man 2008 -Zambrana, Maria Alvin and the Chipmunks 2007 -Zambrana, Maria G-Force 2009 -Zambrana, Maria Four Christmases 2008 -Zambrana, Maria Ocean's Thirteen 2007 -Zambrana, Maria Rush Hour 3 2007 -Zambrana, Maria Funny People 2009 -Zambrana, Maria Cloverfield 2008 -Zambrana, Maria Iron Man 2 2010 -Zambrana, Maria Forgetting Sarah Marshall 2008 -Zambrana, Maria 17 Again 2009 -Zambrana, Maria Indiana Jones and the Kingdom of the Crystal Skull 2008 -Zambrana, Maria He's Just Not That Into You 2009 -Zambrana, Maria You Don't Mess with the Zohan 2008 -Footman, Reginald Ali 2001 -Footman, Reginald The Manchurian Candidate 2004 -Footman, Reginald Down to Earth 2001 -Keenleyside, Eric Dreamcatcher 2003 -Keenleyside, Eric The Interpreter 2005 -Keenleyside, Eric Final Destination 2 2003 -Keenleyside, Eric Firewall 2006 -Cramer, Rick Showtime 2002 -Cramer, Rick Live Free or Die Hard 2007 -Cramer, Rick G.I. Jane 1997 -Cramer, Rick Transformers: Revenge of the Fallen 2009 -Cramer, Rick Mighty Joe Young 1998 -Cramer, Rick Resident Evil: Extinction 2007 -Cramer, Rick Rat Race 2001 -Mirren, Helen National Treasure: Book of Secrets 2007 -Mirren, Helen The Queen 2006 -Mirren, Helen Legend of the Guardians: The Owls of Ga'Hoole 2010 -Mirren, Helen Gosford Park 2001 -Mirren, Helen Calendar Girls 2003 -Mirren, Helen The Hitchhiker's Guide to the Galaxy 2005 -Mirren, Helen The Prince of Egypt 1998 -Mirren, Helen Raising Helen 2004 -Petoyan, Chris Miami Vice 2006 -Petoyan, Chris Sideways 2004 -Petoyan, Chris The Fast and the Furious: Tokyo Drift 2006 -Kirkwood, Jordan Battleship 2012 -Kirkwood, Jordan Along Came Polly 2004 -Kirkwood, Jordan Forgetting Sarah Marshall 2008 -Kirkwood, Jordan You, Me and Dupree 2006 -Kirkwood, Jordan Tears of the Sun 2003 -Kirkwood, Jordan Windtalkers 2002 -Kirkwood, Jordan 50 First Dates 2004 -Flitter, Josh Horton Hears a Who! 2008 -Flitter, Josh License to Wed 2007 -Flitter, Josh Big Momma's House 2 2006 -Flitter, Josh Eternal Sunshine of the Spotless Mind 2004 -Flitter, Josh Hide and Seek 2005 -Van Gorkum, Harry Gone in Sixty Seconds 2000 -Van Gorkum, Harry The Karate Kid 2010 -Van Gorkum, Harry Batman & Robin 1997 -Van Gorkum, Harry Tears of the Sun 2003 -Blank, Brad Me, Myself & Irene 2000 -Blank, Brad There's Something About Mary 1998 -Blank, Brad Dumb & Dumber 1994 -Blank, Brad Fever Pitch 2005 -Xheneti, Evis Catch Me If You Can 2002 -Xheneti, Evis Almost Famous 2000 -Xheneti, Evis A Perfect Murder 1998 -Anderson, Pamela (I) Scooby-Doo 2002 -Anderson, Pamela (I) Scary Movie 3 2003 -Anderson, Pamela (I) Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan 2006 -Anderson, Pamela (I) Superhero Movie 2008 -Lister, Tommy 'Tiny' Next Friday 2000 -Lister, Tommy 'Tiny' The Fifth Element 1997 -Lister, Tommy 'Tiny' Little Nicky 2000 -Lister, Tommy 'Tiny' Beverly Hills Cop II 1987 -Lister, Tommy 'Tiny' Universal Soldier 1992 -Lister, Tommy 'Tiny' Jackie Brown 1997 -Lister, Tommy 'Tiny' Austin Powers in Goldmember 2002 -Cantone, Mario Sex and the City 2008 -Cantone, Mario Sex and the City 2 2010 -Cantone, Mario Surf's Up 2007 -Cantone, Mario Mousehunt 1997 -Osment, Emily Spy Kids 2: Island of Lost Dreams 2002 -Osment, Emily Hannah Montana: The Movie 2009 -Osment, Emily Spy Kids 3-D: Game Over 2003 -Osborne, Kevin (I) Mona Lisa Smile 2003 -Osborne, Kevin (I) The Other Guys 2010 -Osborne, Kevin (I) A Walk to Remember 2002 -VelJohnson, Reginald Die Hard 1988 -VelJohnson, Reginald Die Hard 2 1990 -VelJohnson, Reginald Ghost Busters 1984 -VelJohnson, Reginald Crocodile Dundee 1986 -VelJohnson, Reginald Like Mike 2002 -Diaz, Carlos (I) Saw 3D 2010 -Diaz, Carlos (I) John Q 2002 -Diaz, Carlos (I) Four Brothers 2005 -Carlo, Ismael 'East' Patch Adams 1998 -Carlo, Ismael 'East' Wild Wild West 1999 -Carlo, Ismael 'East' Eraser 1996 -Reivers, David Poseidon 2006 -Reivers, David Malcolm X 1992 -Reivers, David After the Sunset 2004 -Reivers, David High School Musical 3: Senior Year 2008 -Cross, Ben (I) Star Trek 2009 -Cross, Ben (I) Chariots of Fire 1981 -Cross, Ben (I) Exorcist: The Beginning 2004 -Farid, Zaid Role Models 2008 -Farid, Zaid Bowfinger 1999 -Farid, Zaid Showtime 2002 -Tena, Natalia Harry Potter and the Half-Blood Prince 2009 -Tena, Natalia About a Boy 2002 -Tena, Natalia Harry Potter and the Deathly Hallows: Part 1 2010 -Tena, Natalia Harry Potter and the Deathly Hallows: Part 2 2011 -Tena, Natalia Harry Potter and the Order of the Phoenix 2007 -Slate, Jenny Alvin and the Chipmunks: Chipwrecked 2011 -Slate, Jenny The Lorax 2012 -Slate, Jenny This Means War 2012 -Unitas, Joe The Princess Diaries 2001 -Unitas, Joe Bandits 2001 -Unitas, Joe Raising Helen 2004 -Arkin, Adam Lake Placid 1999 -Arkin, Adam Hanging Up 2000 -Arkin, Adam Halloween H20: 20 Years Later 1998 -Lucero, Mason Kicking & Screaming 2005 -Lucero, Mason How the Grinch Stole Christmas 2000 -Lucero, Mason I Am Sam 2001 -Peck, Anthony (I) Last Action Hero 1993 -Peck, Anthony (I) In the Line of Fire 1993 -Peck, Anthony (I) Die Hard: With a Vengeance 1995 -Peck, Anthony (I) The Hunt for Red October 1990 -Peck, Anthony (I) Die Hard 1988 -Scheider, Roy Jaws 2 1978 -Scheider, Roy The Rainmaker 1997 -Scheider, Roy Jaws 1975 -Arness, Andy Patch Adams 1998 -Arness, Andy The Matrix Reloaded 2003 -Arness, Andy Hulk 2003 -Arness, Andy High Crimes 2002 -Arness, Andy The Princess Diaries 2001 -Arness, Andy Bicentennial Man 1999 -Arness, Andy Hereafter 2010 -Ford, Harrison (I) Clear and Present Danger 1994 -Ford, Harrison (I) The Devil's Own 1997 -Ford, Harrison (I) Apocalypse Now 1979 -Ford, Harrison (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Ford, Harrison (I) Indiana Jones and the Temple of Doom 1984 -Ford, Harrison (I) Firewall 2006 -Ford, Harrison (I) Air Force One 1997 -Ford, Harrison (I) Cowboys & Aliens 2011 -Ford, Harrison (I) Star Wars: Episode VI - Return of the Jedi 1983 -Ford, Harrison (I) Presumed Innocent 1990 -Ford, Harrison (I) What Lies Beneath 2000 -Ford, Harrison (I) Star Wars 1977 -Ford, Harrison (I) K-19: The Widowmaker 2002 -Ford, Harrison (I) The Fugitive 1993 -Ford, Harrison (I) Indiana Jones and the Last Crusade 1989 -Ford, Harrison (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Ford, Harrison (I) Six Days Seven Nights 1998 -Handler, Chelsea Justin Bieber: Never Say Never 2011 -Handler, Chelsea This Means War 2012 -Handler, Chelsea Hop 2011 -McNickle, Jim Taylor Meet Joe Black 1998 -McNickle, Jim Taylor The Brave One 2007 -McNickle, Jim Taylor In & Out 1997 -Taylor, Dendrie High Crimes 2002 -Taylor, Dendrie Jarhead 2005 -Taylor, Dendrie The Fighter 2010 -Haemmerle, Chris Date Night 2010 -Haemmerle, Chris The Adjustment Bureau 2011 -Haemmerle, Chris Cop Out 2010 -Haemmerle, Chris Step Up 3D 2010 -Smigel, Robert I Now Pronounce You Chuck & Larry 2007 -Smigel, Robert The Wedding Singer 1998 -Smigel, Robert Little Nicky 2000 -Smigel, Robert You Don't Mess with the Zohan 2008 -McCabe, Richard Master and Commander: The Far Side of the World 2003 -McCabe, Richard Notting Hill 1999 -McCabe, Richard The Constant Gardener 2005 -Moses, Dushawn The Dictator 2012 -Moses, Dushawn Men in Black 3 2012 -Moses, Dushawn The Adjustment Bureau 2011 -Bergen, Bob (I) Horton Hears a Who! 2008 -Bergen, Bob (I) Treasure Planet 2002 -Bergen, Bob (I) Space Jam 1996 -Bergen, Bob (I) Up 2009 -Bergen, Bob (I) Ice Age: The Meltdown 2006 -Bergen, Bob (I) Cloudy with a Chance of Meatballs 2009 -Bergen, Bob (I) Toy Story 2 1999 -Bergen, Bob (I) WALL·E 2008 -Bergen, Bob (I) Hercules 1997 -Bergen, Bob (I) The Wild 2006 -Bergen, Bob (I) Star Wars: Episode I - The Phantom Menace 1999 -Bergen, Bob (I) The Lorax 2012 -Bergen, Bob (I) Tarzan 1999 -Bergen, Bob (I) Cars 2006 -Bergen, Bob (I) The Hunchback of Notre Dame 1996 -Bergen, Bob (I) A Bug's Life 1998 -Bergen, Bob (I) Lilo & Stitch 2002 -Bergen, Bob (I) Gake no ue no Ponyo 2008 -Bergen, Bob (I) Sen to Chihiro no kamikakushi 2001 -Bergen, Bob (I) Total Recall 1990 -Bergen, Bob (I) The Emperor's New Groove 2000 -Bergen, Bob (I) The Santa Clause 2 2002 -Bergen, Bob (I) Monsters, Inc. 2001 -Bergen, Bob (I) Surf's Up 2007 -Bergen, Bob (I) Brother Bear 2003 -Davis, Warwick (I) Harry Potter and the Prisoner of Azkaban 2004 -Davis, Warwick (I) Harry Potter and the Goblet of Fire 2005 -Davis, Warwick (I) Harry Potter and the Order of the Phoenix 2007 -Davis, Warwick (I) Harry Potter and the Chamber of Secrets 2002 -Davis, Warwick (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Davis, Warwick (I) The Hitchhiker's Guide to the Galaxy 2005 -Davis, Warwick (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Davis, Warwick (I) Harry Potter and the Half-Blood Prince 2009 -Davis, Warwick (I) Star Wars: Episode VI - Return of the Jedi 1983 -Davis, Warwick (I) Harry Potter and the Sorcerer's Stone 2001 -Davis, Warwick (I) The Chronicles of Narnia: Prince Caspian 2008 -Davis, Warwick (I) Star Wars: Episode I - The Phantom Menace 1999 -Stone, Emma (III) Ghosts of Girlfriends Past 2009 -Stone, Emma (III) The Help 2011 -Stone, Emma (III) Zombieland 2009 -Stone, Emma (III) Crazy, Stupid, Love. 2011 -Stone, Emma (III) The Amazing Spider-Man 2012 -Stone, Emma (III) Friends with Benefits 2011 -Stone, Emma (III) Marmaduke 2010 -Stone, Emma (III) Easy A 2010 -Stone, Emma (III) Superbad 2007 -Devereaux, Jan Changeling 2008 -Devereaux, Jan Legally Blonde 2: Red, White & Blonde 2003 -Devereaux, Jan The Shaggy Dog 2006 -O'Hara, Catherine Lemony Snicket's A Series of Unfortunate Events 2004 -O'Hara, Catherine The Nightmare Before Christmas 1993 -O'Hara, Catherine Where the Wild Things Are 2009 -O'Hara, Catherine Home Alone 2: Lost in New York 1992 -O'Hara, Catherine Monster House 2006 -O'Hara, Catherine Killers 2010 -O'Hara, Catherine Home Alone 1990 -O'Hara, Catherine Over the Hedge 2006 -O'Hara, Catherine Chicken Little 2005 -Washington, Sharon Malcolm X 1992 -Washington, Sharon Michael Clayton 2007 -Washington, Sharon The Long Kiss Goodnight 1996 -Washington, Sharon The School of Rock 2003 -Washington, Sharon Die Hard: With a Vengeance 1995 -Williams, Billy 'Sly' Gone in Sixty Seconds 2000 -Williams, Billy 'Sly' Blue Streak 1999 -Williams, Billy 'Sly' Happy Feet 2006 -Hamilton, Quancetia Fever Pitch 2005 -Hamilton, Quancetia Mr. Magorium's Wonder Emporium 2007 -Hamilton, Quancetia Saw V 2008 -Hamilton, Quancetia Exit Wounds 2001 -Elliott, Sam (I) Marmaduke 2010 -Elliott, Sam (I) Hulk 2003 -Elliott, Sam (I) The Golden Compass 2007 -Elliott, Sam (I) We Were Soldiers 2002 -Elliott, Sam (I) Thank You for Smoking 2005 -Elliott, Sam (I) Ghost Rider 2007 -Elliott, Sam (I) Barnyard 2006 -Kershner, Basil National Treasure 2004 -Kershner, Basil In Her Shoes 2005 -Kershner, Basil Rocky Balboa 2006 -Kershner, Basil Invincible 2006 -Kershner, Basil The Happening 2008 -Pilkington, Nigel Casino Royale 2006 -Pilkington, Nigel Wallace & Gromit in The Curse of the Were-Rabbit 2005 -Pilkington, Nigel The Brothers Grimm 2005 -Gamble, Nathan Babel 2006 -Gamble, Nathan The Mist 2007 -Gamble, Nathan Marley & Me 2008 -Gamble, Nathan Dolphin Tale 2011 -Pisoni, Lorenzo Cirque du Soleil: Journey of Man 2000 -Pisoni, Lorenzo The Adjustment Bureau 2011 -Pisoni, Lorenzo Big Mommas: Like Father, Like Son 2011 -Mulligan, Carey Drive 2011 -Mulligan, Carey Pride & Prejudice 2005 -Mulligan, Carey Public Enemies 2009 -Mulligan, Carey Wall Street: Money Never Sleeps 2010 -Zeskind, Rachel Flightplan 2005 -Zeskind, Rachel Kicking & Screaming 2005 -Zeskind, Rachel Cellular 2004 -Zeskind, Rachel Wedding Crashers 2005 -Zeskind, Rachel Ocean's Twelve 2004 -Zeskind, Rachel Rumor Has It... 2005 -Manzour, Dory Bad Company 2002 -Manzour, Dory Men in Black II 2002 -Manzour, Dory A Beautiful Mind 2001 -Coca, Richard The Mexican 2001 -Coca, Richard Selena 1997 -Coca, Richard Minority Report 2002 -Freeman, Kathleen (I) Nutty Professor II: The Klumps 2000 -Freeman, Kathleen (I) Hercules 1997 -Freeman, Kathleen (I) Shrek 2001 -Grimshaw, Jim We Were Soldiers 2002 -Grimshaw, Jim The Jackal 1997 -Grimshaw, Jim Remember the Titans 2000 -Schofield, David (I) Valkyrie 2008 -Schofield, David (I) From Hell 2001 -Schofield, David (I) Pirates of the Caribbean: At World's End 2007 -Schofield, David (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Schofield, David (I) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Schofield, David (I) The Wolfman 2010 -Schofield, David (I) Gladiator 2000 -Dean, Robertson Vanilla Sky 2001 -Dean, Robertson Money Talks 1997 -Dean, Robertson Star Trek: Nemesis 2002 -Blackburn, James (IV) Wild Hogs 2007 -Blackburn, James (IV) 3:10 to Yuma 2007 -Blackburn, James (IV) The Negotiator 1998 -Blackburn, James (IV) Transformers 2007 -Winfree, Rachel Evan Almighty 2007 -Winfree, Rachel Old School 2003 -Winfree, Rachel How the Grinch Stole Christmas 2000 -Winfree, Rachel The Flintstones in Viva Rock Vegas 2000 -Morgan, Bonnie Piranha 2010 -Morgan, Bonnie Minority Report 2002 -Morgan, Bonnie The Devil Inside 2012 -Morgan, Bonnie How the Grinch Stole Christmas 2000 -Lawes, Tim Invictus 2009 -Lawes, Tim Hereafter 2010 -Lawes, Tim J. Edgar 2011 -Folland, Alison The Happening 2008 -Folland, Alison Finding Forrester 2000 -Folland, Alison The Sisterhood of the Traveling Pants 2 2008 -Folland, Alison Good Will Hunting 1997 -Folland, Alison The Fighter 2010 -Rose, Pam Batman 1989 -Rose, Pam Star Wars 1977 -Rose, Pam Superman 1978 -Schaff, Andrew My Sister's Keeper 2009 -Schaff, Andrew John Q 2002 -Schaff, Andrew The Notebook 2004 -Foster, Jodie Panic Room 2002 -Foster, Jodie Flightplan 2005 -Foster, Jodie Inside Man 2006 -Foster, Jodie Anna and the King 1999 -Foster, Jodie Nim's Island 2008 -Foster, Jodie The Silence of the Lambs 1991 -Foster, Jodie The Brave One 2007 -Foster, Jodie Contact 1997 -de Almeida, Joaquim Clear and Present Danger 1994 -de Almeida, Joaquim Behind Enemy Lines 2001 -de Almeida, Joaquim Fast Five 2011 -de Almeida, Joaquim The Mask of Zorro 1998 -Lawrence, Steven Anthony Kicking & Screaming 2005 -Lawrence, Steven Anthony My Favorite Martian 1999 -Lawrence, Steven Anthony Cheaper by the Dozen 2003 -Lawrence, Steven Anthony Dr. Seuss' The Cat in the Hat 2003 -Wayne, Pleasant It's Complicated 2009 -Wayne, Pleasant 500) Days of Summer 2009 -Wayne, Pleasant Race to Witch Mountain 2009 -Bryant, Peter (I) Scary Movie 2000 -Bryant, Peter (I) Sucker Punch 2011 -Bryant, Peter (I) Jumanji 1995 -Bryant, Peter (I) Fantastic Four 2005 -Fante, Fabrizio Catch Me If You Can 2002 -Fante, Fabrizio A Beautiful Mind 2001 -Fante, Fabrizio Spider-Man 2 2004 -Fante, Fabrizio Two Weeks Notice 2002 -Jbara, Gregory The Out-of-Towners 1999 -Jbara, Gregory Epic Movie 2007 -Jbara, Gregory 'Crocodile' Dundee II 1988 -Jbara, Gregory Home on the Range 2004 -Jbara, Gregory One Fine Day 1996 -Jbara, Gregory World Trade Center 2006 -Jbara, Gregory In & Out 1997 -Calabro, Neill We Are Marshall 2006 -Calabro, Neill Batman & Robin 1997 -Calabro, Neill Austin Powers: International Man of Mystery 1997 -Florence, Carol In Her Shoes 2005 -Florence, Carol Twelve Monkeys 1995 -Florence, Carol Ocean's Eleven 2001 -Florence, Carol Ladder 49 2004 -Bernet, Chopper Spirit: Stallion of the Cimarron 2002 -Bernet, Chopper G.I. Joe: The Rise of Cobra 2009 -Bernet, Chopper Terminator 3: Rise of the Machines 2003 -Moranis, Rick The Flintstones 1994 -Moranis, Rick Ghost Busters 1984 -Moranis, Rick Brother Bear 2003 -Goodman, Dana (II) Barbershop 2002 -Goodman, Dana (II) Just Go with It 2011 -Goodman, Dana (II) You Don't Mess with the Zohan 2008 -Goodman, Dana (II) Bedtime Stories 2008 -Reilly, John C. (I) Chicago 2002 -Reilly, John C. (I) Step Brothers 2008 -Reilly, John C. (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Reilly, John C. (I) Gangs of New York 2002 -Reilly, John C. (I) Never Been Kissed 1999 -Reilly, John C. (I) Anger Management 2003 -Reilly, John C. (I) The Aviator 2004 -Reilly, John C. (I) Zombieland 2009 -Reilly, John C. (I) The Perfect Storm 2000 -Reilly, John C. (I) The Dictator 2012 -Reilly, John C. (I) The Hours 2002 -Reilly, John C. (I) The Thin Red Line 1998 -Reilly, John C. (I) Boogie Nights 1997 -Reilly, John C. (I) Magnolia 1999 -Pollack, Paige Babe 1995 -Pollack, Paige Halloween 2007 -Pollack, Paige Lilo & Stitch 2002 -Weintraub, Jerry (I) The Firm 1993 -Weintraub, Jerry (I) Vegas Vacation 1997 -Weintraub, Jerry (I) Ocean's Eleven 2001 -Weintraub, Jerry (I) Ocean's Twelve 2004 -Weintraub, Jerry (I) Ocean's Thirteen 2007 -Martin, Johnny (I) Titanic 1997 -Martin, Johnny (I) Inspector Gadget 1999 -Martin, Johnny (I) Money Talks 1997 -Frost, Roger (I) Shakespeare in Love 1998 -Frost, Roger (I) Notting Hill 1999 -Frost, Roger (I) Charlie and the Chocolate Factory 2005 -Frost, Roger (I) The Wolfman 2010 -Frost, Roger (I) The Bourne Identity 2002 -Frost, Roger (I) From Hell 2001 -Joy, Mary (I) The Rundown 2003 -Joy, Mary (I) The Ring Two 2005 -Joy, Mary (I) Fatal Attraction 1987 -Ouaou, Latifa Shrek 2 2004 -Ouaou, Latifa Puss in Boots 2011 -Ouaou, Latifa Shrek the Third 2007 -Ouaou, Latifa Monsters vs Aliens 2009 -Ouaou, Latifa Shark Tale 2004 -Sie, James Kung Fu Panda 2 2011 -Sie, James Kung Fu Panda 2008 -Sie, James Jumper 2008 -Sie, James Shark Tale 2004 -Sie, James The Golden Compass 2007 -Sie, James Spider-Man 3 2007 -Sie, James Ice Age: The Meltdown 2006 -Sie, James U.S. Marshals 1998 -Cormier, D.W. Paul Blart: Mall Cop 2009 -Cormier, D.W. Underdog 2007 -Cormier, D.W. 27 Dresses 2008 -Cormier, D.W. Knight and Day 2010 -Cormier, D.W. The Fighter 2010 -Cullen, Sean (II) Cop Out 2010 -Cullen, Sean (II) Cop Land 1997 -Cullen, Sean (II) Michael Clayton 2007 -Fukuzaki, Rob Coach Carter 2005 -Fukuzaki, Rob The Day After Tomorrow 2004 -Fukuzaki, Rob Godzilla 1998 -Purvis, Jack Star Wars: Episode V - The Empire Strikes Back 1980 -Purvis, Jack Star Wars 1977 -Purvis, Jack Star Wars: Episode VI - Return of the Jedi 1983 -McGee, Jack (I) Lethal Weapon 2 1989 -McGee, Jack (I) Legally Blonde 2: Red, White & Blonde 2003 -McGee, Jack (I) Moneyball 2011 -McGee, Jack (I) Coyote Ugly 2000 -McGee, Jack (I) New Year's Eve 2011 -McGee, Jack (I) Marmaduke 2010 -McGee, Jack (I) The Flintstones in Viva Rock Vegas 2000 -McGee, Jack (I) 21 2008 -McGee, Jack (I) TRON: Legacy 2010 -McGee, Jack (I) The Fighter 2010 -McGee, Jack (I) The Out-of-Towners 1999 -McGee, Jack (I) Open Season 2006 -McGee, Jack (I) Basic Instinct 1992 -McGee, Jack (I) Jungle 2 Jungle 1997 -Meyers, Eric (II) Entrapment 1999 -Meyers, Eric (II) 1408 2007 -Meyers, Eric (II) Reign of Fire 2002 -Meyers, Eric (II) Shanghai Knights 2003 -Shook, Carol Charlie Wilson's War 2007 -Shook, Carol I Love You, Man 2009 -Shook, Carol Eagle Eye 2008 -Pelzman, Richard Unstoppable 2010 -Pelzman, Richard Red Dragon 2002 -Pelzman, Richard Step Up 2006 -Scarry, Rick Space Cowboys 2000 -Scarry, Rick Wag the Dog 1997 -Scarry, Rick The Negotiator 1998 -Rash, Jim Sky High 2005 -Rash, Jim One Hour Photo 2002 -Rash, Jim Minority Report 2002 -Medrano, Frank Blue Streak 1999 -Medrano, Frank Coyote Ugly 2000 -Medrano, Frank Enemy of the State 1998 -Medrano, Frank Sleepers 1996 -Bowe, David The Cable Guy 1996 -Bowe, David Transformers: Revenge of the Fallen 2009 -Bowe, David Cheaper by the Dozen 2003 -Bowe, David The Rock 1996 -Bowe, David Kicking & Screaming 2005 -Bowe, David A Few Good Men 1992 -Pratt, Chris (I) Moneyball 2011 -Pratt, Chris (I) Bride Wars 2009 -Pratt, Chris (I) Wanted 2008 -Wingert, Wally G.I. Joe: The Rise of Cobra 2009 -Wingert, Wally The Ant Bully 2006 -Wingert, Wally Space Chimps 2008 -Wingert, Wally Madagascar 2005 -Wingert, Wally Scooby Doo 2: Monsters Unleashed 2004 -Wingert, Wally The Golden Compass 2007 -Wingert, Wally Madagascar: Escape 2 Africa 2008 -Wingert, Wally Return to Never Land 2002 -Lyndeck, Edmund Road Trip 2000 -Lyndeck, Edmund Big Daddy 1999 -Lyndeck, Edmund You Don't Mess with the Zohan 2008 -Lyndeck, Edmund Wall Street: Money Never Sleeps 2010 -Lyndeck, Edmund Enchanted 2007 -Murphy, Ron (II) Paul Blart: Mall Cop 2009 -Murphy, Ron (II) Ghosts of Girlfriends Past 2009 -Murphy, Ron (II) 21 2008 -Dickens, Kim Mercury Rising 1998 -Dickens, Kim The Blind Side 2009 -Dickens, Kim Hollow Man 2000 -Dickens, Kim Footloose 2011 -Dickens, Kim Thank You for Smoking 2005 -Hyde III, Thomas Tah Big Momma's House 2 2006 -Hyde III, Thomas Tah The Dukes of Hazzard 2005 -Hyde III, Thomas Tah Glory Road 2006 -Theerathada, Don Thai Around the World in 80 Days 2004 -Theerathada, Don Thai The Book of Eli 2010 -Theerathada, Don Thai Fast & Furious 2009 -Theerathada, Don Thai Rush Hour 3 2007 -Branagh, Kenneth The Road to El Dorado 2000 -Branagh, Kenneth Wild Wild West 1999 -Branagh, Kenneth Chariots of Fire 1981 -Branagh, Kenneth Valkyrie 2008 -Branagh, Kenneth Galapagos: The Enchanted Voyage 1999 -Branagh, Kenneth Harry Potter and the Chamber of Secrets 2002 -Heard, John (I) Snake Eyes 1998 -Heard, John (I) In the Line of Fire 1993 -Heard, John (I) White Chicks 2004 -Heard, John (I) Home Alone 1990 -Heard, John (I) Home Alone 2: Lost in New York 1992 -Lawford, Christopher Exit Wounds 2001 -Lawford, Christopher The 6th Day 2000 -Lawford, Christopher Terminator 3: Rise of the Machines 2003 -Kania, William (I) Unstoppable 2010 -Kania, William (I) I Am Number Four 2011 -Kania, William (I) My Bloody Valentine 2009 -Rocha, Kali Autumn in New York 2000 -Rocha, Kali Meet the Fockers 2004 -Rocha, Kali Meet the Parents 2000 -Spiner, Brent The Aviator 2004 -Spiner, Brent Star Trek: First Contact 1996 -Spiner, Brent I Am Sam 2001 -Spiner, Brent Phenomenon 1996 -Spiner, Brent South Park: Bigger Longer & Uncut 1999 -Spiner, Brent The Master of Disguise 2002 -Spiner, Brent Star Trek: Insurrection 1998 -Spiner, Brent Star Trek: Nemesis 2002 -Spiner, Brent Dude, Where's My Car? 2000 -Spiner, Brent Independence Day 1996 -Spiner, Brent Superhero Movie 2008 -Wilcox, Shannon Runaway Bride 1999 -Wilcox, Shannon Raising Helen 2004 -Wilcox, Shannon The Princess Diaries 2001 -Wilcox, Shannon The Princess Diaries 2: Royal Engagement 2004 -Wilcox, Shannon Se7en 1995 -Shatner, William Star Trek IV: The Voyage Home 1986 -Shatner, William Showtime 2002 -Shatner, William Star Trek III: The Search for Spock 1984 -Shatner, William Over the Hedge 2006 -Shatner, William Miss Congeniality 2000 -Shatner, William The Wild 2006 -Shatner, William Star Trek: The Wrath of Khan 1982 -Shatner, William Dodgeball: A True Underdog Story 2004 -Shatner, William Miss Congeniality 2: Armed and Fabulous 2005 -Mizota, Diane Memoirs of a Geisha 2005 -Mizota, Diane The Green Hornet 2011 -Mizota, Diane Boogie Nights 1997 -Mizota, Diane Austin Powers in Goldmember 2002 -Mizota, Diane George of the Jungle 1997 -Seyfried, Amanda Mamma Mia! 2008 -Seyfried, Amanda Mean Girls 2004 -Seyfried, Amanda In Time 2011 -Seyfried, Amanda Letters to Juliet 2010 -O'Neil Martin, Stephen 27 Dresses 2008 -O'Neil Martin, Stephen Ghosts of Girlfriends Past 2009 -O'Neil Martin, Stephen Mystic River 2003 -Hall, Rebecca (I) Vicky Cristina Barcelona 2008 -Hall, Rebecca (I) The Town 2010 -Hall, Rebecca (I) The Prestige 2006 -Bergschneider, Conrad The Hurricane 1999 -Bergschneider, Conrad Serendipity 2001 -Bergschneider, Conrad The Recruit 2003 -Bergschneider, Conrad Cinderella Man 2005 -Bergschneider, Conrad Four Brothers 2005 -Davis, Julie E. Mr. Popper's Penguins 2011 -Davis, Julie E. Salt 2010 -Davis, Julie E. The Other Guys 2010 -Pulido, Alex Step Brothers 2008 -Pulido, Alex Hannah Montana: The Movie 2009 -Pulido, Alex The Hangover 2009 -Folkes-LeMelle, Neisha Speed 1994 -Folkes-LeMelle, Neisha Norbit 2007 -Folkes-LeMelle, Neisha Malcolm X 1992 -Folkes-LeMelle, Neisha Little Fockers 2010 -Whitehouse, Paul (I) Corpse Bride 2005 -Whitehouse, Paul (I) Finding Neverland 2004 -Whitehouse, Paul (I) Alice in Wonderland 2010 -Whitehouse, Paul (I) Harry Potter and the Prisoner of Azkaban 2004 -Spencer, Octavia The Help 2011 -Spencer, Octavia S.W.A.T. 2003 -Spencer, Octavia Big Momma's House 2000 -Spencer, Octavia Drag Me to Hell 2009 -Spencer, Octavia A Time to Kill 1996 -Spencer, Octavia Blue Streak 1999 -Spencer, Octavia Legally Blonde 2: Red, White & Blonde 2003 -Spencer, Octavia Coach Carter 2005 -Spencer, Octavia Dinner for Schmucks 2010 -Spencer, Octavia Spider-Man 2002 -Spencer, Octavia Never Been Kissed 1999 -Spencer, Octavia Bad Santa 2003 -Spencer, Octavia Being John Malkovich 1999 -Spencer, Octavia Miss Congeniality 2: Armed and Fabulous 2005 -Reynolds, Debbie (I) In & Out 1997 -Reynolds, Debbie (I) The Bodyguard 1992 -Reynolds, Debbie (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Heavy D The Cider House Rules 1999 -Heavy D Step Up 2006 -Heavy D Tower Heist 2011 -Coster-Waldau, Nikolaj Kingdom of Heaven 2005 -Coster-Waldau, Nikolaj Firewall 2006 -Coster-Waldau, Nikolaj Black Hawk Down 2001 -Levine, Floyd The Hangover 2009 -Levine, Floyd Norbit 2007 -Levine, Floyd Coach Carter 2005 -LaRose, Erica Flightplan 2005 -LaRose, Erica The Social Network 2010 -LaRose, Erica 17 Again 2009 -LaRose, Erica Due Date 2010 -LaRose, Erica Knight and Day 2010 -LaRose, Erica The Last Airbender 2010 -Rock, Chris (I) Bad Company 2002 -Rock, Chris (I) Lethal Weapon 4 1998 -Rock, Chris (I) Madagascar 3: Europe's Most Wanted 2012 -Rock, Chris (I) The Longest Yard 2005 -Rock, Chris (I) Down to Earth 2001 -Rock, Chris (I) Madagascar 2005 -Rock, Chris (I) Madagascar: Escape 2 Africa 2008 -Rock, Chris (I) Bowling for Columbine 2002 -Rock, Chris (I) Beverly Hills Cop II 1987 -Rock, Chris (I) Death at a Funeral 2010 -Rock, Chris (I) Grown Ups 2010 -Rock, Chris (I) Me, Myself & Irene 2000 -Rock, Chris (I) Bee Movie 2007 -Rock, Chris (I) Beverly Hills Ninja 1997 -Rock, Chris (I) Dogma 1999 -Rock, Chris (I) Artificial Intelligence: AI 2001 -Rock, Chris (I) Doctor Dolittle 1998 -Rock, Chris (I) You Don't Mess with the Zohan 2008 -Stanton, Harry Dean Alien 1979 -Stanton, Harry Dean Anger Management 2003 -Stanton, Harry Dean Pretty in Pink 1986 -Stanton, Harry Dean You, Me and Dupree 2006 -Stanton, Harry Dean A Civil Action 1998 -Stanton, Harry Dean Rango 2011 -Stanton, Harry Dean The Green Mile 1999 -Stanton, Harry Dean The Avengers 2012 -Dowse, Denise Starship Troopers 1997 -Dowse, Denise Dr. Dolittle 2 2001 -Dowse, Denise A Civil Action 1998 -Dowse, Denise Pleasantville 1998 -Dowse, Denise Guess Who 2005 -Dowse, Denise Coach Carter 2005 -DuVall, Clea She's All That 1999 -DuVall, Clea Identity 2003 -DuVall, Clea The Grudge 2004 -DuVall, Clea The Faculty 1998 -Sterling, Mindy Ice Age: The Meltdown 2006 -Sterling, Mindy How the Grinch Stole Christmas 2000 -Sterling, Mindy Austin Powers: The Spy Who Shagged Me 1999 -Sterling, Mindy Spider-Man 2 2004 -Sterling, Mindy Austin Powers: International Man of Mystery 1997 -Sterling, Mindy Superman Returns 2006 -Sterling, Mindy Austin Powers in Goldmember 2002 -Sterling, Mindy Transformers: Dark of the Moon 2011 -Richwood, Patrick Jingle All the Way 1996 -Richwood, Patrick Runaway Bride 1999 -Richwood, Patrick The Princess Diaries 2001 -Richwood, Patrick Armageddon 1998 -Richwood, Patrick Pretty Woman 1990 -Lillard, Matthew Scream 2 1997 -Lillard, Matthew Scooby Doo 2: Monsters Unleashed 2004 -Lillard, Matthew The Descendants 2011 -Lillard, Matthew She's All That 1999 -Lillard, Matthew Scream 1996 -Lillard, Matthew Scooby-Doo 2002 -Lillard, Matthew Without a Paddle 2004 -Langston, Mark A. Mr. Popper's Penguins 2011 -Langston, Mark A. P.S. I Love You 2007 -Langston, Mark A. The Siege 1998 -Langston, Mark A. The Thomas Crown Affair 1999 -Kopache, Thomas Catch Me If You Can 2002 -Kopache, Thomas No Country for Old Men 2007 -Kopache, Thomas Stigmata 1999 -Weisz, Steven Salt 2010 -Weisz, Steven Cop Out 2010 -Weisz, Steven Enchanted 2007 -Weisz, Steven Michael Clayton 2007 -Weisz, Steven New Year's Eve 2011 -Weisz, Steven Sex and the City 2 2010 -Weisz, Steven Two Weeks Notice 2002 -Weisz, Steven Inside Man 2006 -Weisz, Steven The Other Guys 2010 -Weisz, Steven It's Complicated 2009 -Weisz, Steven The Dictator 2012 -Weisz, Steven The Interpreter 2005 -Weisz, Steven Tower Heist 2011 -Goodman, Trudi Ghosts of Girlfriends Past 2009 -Goodman, Trudi 21 2008 -Goodman, Trudi The Departed 2006 -Goodman, Trudi Grown Ups 2010 -Moss, Edward (I) Scary Movie 3 2003 -Moss, Edward (I) Scary Movie 4 2006 -Moss, Edward (I) Date Movie 2006 -Morales Myers, Elsa Funny People 2009 -Morales Myers, Elsa Takers 2010 -Morales Myers, Elsa Angels & Demons 2009 -Ruppert, Tait The General's Daughter 1999 -Ruppert, Tait Swordfish 2001 -Ruppert, Tait Domestic Disturbance 2001 -Dawson, Joseph J. Galaxy Quest 1999 -Dawson, Joseph J. Bringing Down the House 2003 -Dawson, Joseph J. Hidalgo 2004 -Dawson, Joseph J. Wild Wild West 1999 -Phillips, Mary Linda The Lion King 1994 -Phillips, Mary Linda Charlie Wilson's War 2007 -Phillips, Mary Linda Babe 1995 -Phillips, Mary Linda Lilo & Stitch 2002 -Phillips, Mary Linda Stigmata 1999 -Milo, Candi The Ant Bully 2006 -Milo, Candi Spider-Man 3 2007 -Milo, Candi Cloudy with a Chance of Meatballs 2009 -Milo, Candi Sen to Chihiro no kamikakushi 2001 -Milo, Candi Jimmy Neutron: Boy Genius 2001 -Zemeckis, Leslie The Polar Express 2004 -Zemeckis, Leslie Beowulf 2007 -Zemeckis, Leslie A Christmas Carol 2009 -Blake, Andre B. The Silence of the Lambs 1991 -Blake, Andre B. Spider-Man 3 2007 -Blake, Andre B. Stepmom 1998 -Blake, Andre B. The Manchurian Candidate 2004 -Blake, Andre B. Righteous Kill 2008 -Blake, Andre B. Philadelphia 1993 -Saïd, Sam Georges Wedding Crashers 2005 -Saïd, Sam Georges Syriana 2005 -Saïd, Sam Georges He's Just Not That Into You 2009 -McDonald, Michael (XI) Austin Powers: The Spy Who Shagged Me 1999 -McDonald, Michael (XI) Austin Powers: International Man of Mystery 1997 -McDonald, Michael (XI) Austin Powers in Goldmember 2002 -Stevens, Michael (XII) The Hurricane 1999 -Stevens, Michael (XII) The X Files: I Want to Believe 2008 -Stevens, Michael (XII) Watchmen 2009 -Stevens, Michael (XII) A History of Violence 2005 -Stevens, Michael (XII) Cinderella Man 2005 -Korey, Tinsel New Moon 2009 -Korey, Tinsel The Twilight Saga: Eclipse 2010 -Korey, Tinsel The Twilight Saga: Breaking Dawn - Part 1 2011 -Bailey, G.W. Police Academy 2: Their First Assignment 1985 -Bailey, G.W. Police Academy 1984 -Bailey, G.W. Mannequin 1987 -Bailey, G.W. Home on the Range 2004 -McCartney, Jesse Horton Hears a Who! 2008 -McCartney, Jesse Alvin and the Chipmunks: The Squeakquel 2009 -McCartney, Jesse Alvin and the Chipmunks 2007 -McCartney, Jesse Alvin and the Chipmunks: Chipwrecked 2011 -Sweitzer, Becca Austin Powers in Goldmember 2002 -Sweitzer, Becca A Cinderella Story 2004 -Sweitzer, Becca Tropic Thunder 2008 -Sweitzer, Becca Starsky & Hutch 2004 -Sweitzer, Becca Hairspray 2007 -Wallach, Eli Keeping the Faith 2000 -Wallach, Eli Mystic River 2003 -Wallach, Eli The Holiday 2006 -Wallach, Eli Wall Street: Money Never Sleeps 2010 -Wallach, Eli The Ghost Writer 2010 -Affleck, Ben The Sum of All Fears 2002 -Affleck, Ben Shakespeare in Love 1998 -Affleck, Ben Armageddon 1998 -Affleck, Ben Paycheck 2003 -Affleck, Ben The Town 2010 -Affleck, Ben Changing Lanes 2002 -Affleck, Ben Pearl Harbor 2001 -Affleck, Ben Daredevil 2003 -Affleck, Ben Dogma 1999 -Affleck, Ben Fahrenheit 9/11 2004 -Affleck, Ben He's Just Not That Into You 2009 -Affleck, Ben Forces of Nature 1999 -Affleck, Ben Good Will Hunting 1997 -Kline, Kevin The Road to El Dorado 2000 -Kline, Kevin Wild Wild West 1999 -Kline, Kevin No Strings Attached 2011 -Kline, Kevin The Tale of Despereaux 2008 -Kline, Kevin The Hunchback of Notre Dame 1996 -Kline, Kevin The Pink Panther 2006 -Kline, Kevin In & Out 1997 -Patil, Neil Thank You for Smoking 2005 -Patil, Neil Wedding Crashers 2005 -Patil, Neil Collateral 2004 -Brown, Chris (XXV) Think Like a Man 2012 -Brown, Chris (XXV) Stomp the Yard 2007 -Brown, Chris (XXV) Takers 2010 -Myles, Sophia From Hell 2001 -Myles, Sophia Underworld 2003 -Myles, Sophia Underworld: Evolution 2006 -O'Brien, Patrick Thomas Catch Me If You Can 2002 -O'Brien, Patrick Thomas Kiss the Girls 1997 -O'Brien, Patrick Thomas The Curious Case of Benjamin Button 2008 -O'Brien, Patrick Thomas Pleasantville 1998 -O'Brien, Patrick Thomas Stuart Little 1999 -O'Brien, Patrick Thomas Intolerable Cruelty 2003 -Boyce, David (II) Snow Dogs 2002 -Boyce, David (II) Exit Wounds 2001 -Boyce, David (II) Saw IV 2007 -Boyce, David (II) The Recruit 2003 -Blessed, Brian Tarzan 1999 -Blessed, Brian Robin Hood: Prince of Thieves 1991 -Blessed, Brian Alexander 2004 -Blessed, Brian Star Wars: Episode I - The Phantom Menace 1999 -Selmour, Ron The Chronicles of Riddick 2004 -Selmour, Ron Sucker Punch 2011 -Selmour, Ron TRON: Legacy 2010 -Selmour, Ron Blade: Trinity 2004 -Wilson, Patrick (I) The A-Team 2010 -Wilson, Patrick (I) Watchmen 2009 -Wilson, Patrick (I) The Phantom of the Opera 2004 -Wilson, Patrick (I) Prometheus 2012 -Nichols, Eboni Miami Vice 2006 -Nichols, Eboni Hairspray 2007 -Nichols, Eboni Dreamgirls 2006 -Nichols, Eboni Bedazzled 2000 -Ruginis, Vyto Phenomenon 1996 -Ruginis, Vyto Moneyball 2011 -Ruginis, Vyto The Insider 1999 -Ruginis, Vyto The Devil's Advocate 1997 -Ruginis, Vyto The Fast and the Furious 2001 -Ruginis, Vyto Cliffhanger 1993 -Garr, Teri Michael 1996 -Garr, Teri Tootsie 1982 -Garr, Teri Dumb & Dumber 1994 -Garr, Teri Close Encounters of the Third Kind 1977 -Botka, John Timothy Collateral Damage 2002 -Botka, John Timothy End of Days 1999 -Botka, John Timothy Apollo 13 1995 -Baker, Robert (II) Old School 2003 -Baker, Robert (II) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Baker, Robert (II) The Ladykillers 2004 -Traynor, Frank Rocky Balboa 2006 -Traynor, Frank Law Abiding Citizen 2009 -Traynor, Frank Invincible 2006 -Baker, Christopher (I) Serendipity 2001 -Baker, Christopher (I) Kangaroo Jack 2003 -Baker, Christopher (I) Nim's Island 2008 -Whiting, Al Eagle Eye 2008 -Whiting, Al The Waterboy 1998 -Whiting, Al Yes Man 2008 -Whiting, Al Three Kings 1999 -Willis, Bruce The Whole Nine Yards 2000 -Willis, Bruce Pulp Fiction 1994 -Willis, Bruce The Kid 2000 -Willis, Bruce Live Free or Die Hard 2007 -Willis, Bruce Tears of the Sun 2003 -Willis, Bruce Charlie's Angels: Full Throttle 2003 -Willis, Bruce Beavis and Butt-Head Do America 1996 -Willis, Bruce The Fifth Element 1997 -Willis, Bruce Mercury Rising 1998 -Willis, Bruce Hostage 2005 -Willis, Bruce Die Hard 1988 -Willis, Bruce Rugrats Go Wild 2003 -Willis, Bruce Look Who's Talking 1989 -Willis, Bruce Armageddon 1998 -Willis, Bruce Over the Hedge 2006 -Willis, Bruce Bandits 2001 -Willis, Bruce The Sixth Sense 1999 -Willis, Bruce The Siege 1998 -Willis, Bruce Ocean's Twelve 2004 -Willis, Bruce Sin City 2005 -Willis, Bruce Die Hard 2 1990 -Willis, Bruce Unbreakable 2000 -Willis, Bruce The Jackal 1997 -Willis, Bruce Twelve Monkeys 1995 -Willis, Bruce The Expendables 2010 -Willis, Bruce Cop Out 2010 -Willis, Bruce Die Hard: With a Vengeance 1995 -Vosloo, Arnold The Mummy 1999 -Vosloo, Arnold G.I. Joe: The Rise of Cobra 2009 -Vosloo, Arnold The Mummy Returns 2001 -Vosloo, Arnold Blood Diamond 2006 -Yuan, Roger Home on the Range 2004 -Yuan, Roger Lethal Weapon 4 1998 -Yuan, Roger Shanghai Noon 2000 -Yuan, Roger Batman Begins 2005 -Yuan, Roger Syriana 2005 -Milian, Christina Ghosts of Girlfriends Past 2009 -Milian, Christina A Bug's Life 1998 -Milian, Christina American Pie 1999 -Harrison, Matthew (III) Romeo Must Die 2000 -Harrison, Matthew (III) Watchmen 2009 -Harrison, Matthew (III) Night at the Museum: Battle of the Smithsonian 2009 -Harrison, Matthew (III) Night at the Museum 2006 -Matarazzo, Heather The Devil's Advocate 1997 -Matarazzo, Heather Scream 3 2000 -Matarazzo, Heather The Princess Diaries 2001 -Matarazzo, Heather The Princess Diaries 2: Royal Engagement 2004 -Righetti, Amanda Friday the 13th 2009 -Righetti, Amanda Captain America: The First Avenger 2011 -Righetti, Amanda Role Models 2008 -Luke, Derek (I) Glory Road 2006 -Luke, Derek (I) Madea Goes to Jail 2009 -Luke, Derek (I) Friday Night Lights 2004 -Luke, Derek (I) Captain America: The First Avenger 2011 -Sunjata, Daniel Bad Company 2002 -Sunjata, Daniel Ghosts of Girlfriends Past 2009 -Sunjata, Daniel The Devil Wears Prada 2006 -Kelahan, Edward M. Enchanted 2007 -Kelahan, Edward M. World Trade Center 2006 -Kelahan, Edward M. Confessions of a Shopaholic 2009 -Kelahan, Edward M. Hancock 2008 -Bancroft, Anne (I) Keeping the Faith 2000 -Bancroft, Anne (I) Rumor Has It... 2005 -Bancroft, Anne (I) G.I. Jane 1997 -Bancroft, Anne (I) Antz 1998 -Rathburn, Roger The Good Shepherd 2006 -Rathburn, Roger P.S. I Love You 2007 -Rathburn, Roger Burn After Reading 2008 -Benrubi, Abraham Twister 1996 -Benrubi, Abraham Without a Paddle 2004 -Benrubi, Abraham Charlotte's Web 2006 -Benrubi, Abraham Open Range 2003 -Benrubi, Abraham The Rugrats Movie 1998 -Benrubi, Abraham George of the Jungle 1997 -Benrubi, Abraham Miss Congeniality 2: Armed and Fabulous 2005 -James, Colton The Lost World: Jurassic Park 1997 -James, Colton Austin Powers: The Spy Who Shagged Me 1999 -James, Colton The Cell 2000 -Rogers, Cort Four Christmases 2008 -Rogers, Cort Just Go with It 2011 -Rogers, Cort Little Fockers 2010 -Simmons, Chelan Final Destination 3 2006 -Simmons, Chelan John Tucker Must Die 2006 -Simmons, Chelan Percy Jackson & the Olympians: The Lightning Thief 2010 -Walcutt, John Titanic 1997 -Walcutt, John Dinosaur 2000 -Walcutt, John Seabiscuit 2003 -Walcutt, John Mulan 1998 -Walcutt, John Little Miss Sunshine 2006 -Griffin, Eddie (I) Pinocchio 2002 -Griffin, Eddie (I) Norbit 2007 -Griffin, Eddie (I) Double Take 2001 -Griffin, Eddie (I) Deuce Bigalow: Male Gigolo 1999 -Griffin, Eddie (I) Armageddon 1998 -Griffin, Eddie (I) Scary Movie 3 2003 -Griffin, Eddie (I) Date Movie 2006 -Griffin, Eddie (I) John Q 2002 -Weston, Paul (II) Star Wars: Episode VI - Return of the Jedi 1983 -Weston, Paul (II) The Living Daylights 1987 -Weston, Paul (II) Moonraker 1979 -Gaver, Duffy The Rock 1996 -Gaver, Duffy G.I. Jane 1997 -Gaver, Duffy The Game 1997 -Gaver, Duffy Se7en 1995 -Dorval, Adrien The Chronicles of Riddick 2004 -Dorval, Adrien Shanghai Noon 2000 -Dorval, Adrien New Moon 2009 -Novák, Ivo (II) Hannibal Rising 2007 -Novák, Ivo (II) Mission: Impossible - Ghost Protocol 2011 -Novák, Ivo (II) The Illusionist 2006 -Cornell, Kyle The A-Team 2010 -Cornell, Kyle Percy Jackson & the Olympians: The Lightning Thief 2010 -Cornell, Kyle Diary of a Wimpy Kid: Rodrick Rules 2011 -Sikking, James Fever Pitch 2005 -Sikking, James Made of Honor 2008 -Sikking, James Star Trek III: The Search for Spock 1984 -Eglington, Holly Catwoman 2004 -Eglington, Holly White Chicks 2004 -Eglington, Holly LiTTLEMAN 2006 -Mazzeo, Stefano (II) Charlotte's Web 2006 -Mazzeo, Stefano (II) Knowing 2009 -Mazzeo, Stefano (II) Ghost Rider 2007 -Fletcher, Anne Scream 2 1997 -Fletcher, Anne Catwoman 2004 -Fletcher, Anne George of the Jungle 1997 -Fletcher, Anne Hairspray 2007 -Fletcher, Anne Bring It On 2000 -Fletcher, Anne Bringing Down the House 2003 -Fletcher, Anne Step Up 2006 -Fletcher, Anne The Pacifier 2005 -Fletcher, Anne A Walk to Remember 2002 -Fletcher, Anne Boogie Nights 1997 -Fletcher, Anne Titanic 1997 -Knightley, Keira Pirates of the Caribbean: Dead Man's Chest 2006 -Knightley, Keira King Arthur 2004 -Knightley, Keira Bend It Like Beckham 2002 -Knightley, Keira Pirates of the Caribbean: At World's End 2007 -Knightley, Keira Atonement 2007 -Knightley, Keira Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Knightley, Keira Pride & Prejudice 2005 -Knightley, Keira Love Actually 2003 -Knightley, Keira Star Wars: Episode I - The Phantom Menace 1999 -Ramírez, Édgar (II) The Bourne Ultimatum 2007 -Ramírez, Édgar (II) Wrath of the Titans 2012 -Ramírez, Édgar (II) Vantage Point 2008 -Skye, Azura Bandits 2001 -Skye, Azura 28 Days 2000 -Skye, Azura Red Dragon 2002 -Talman, Ann Serendipity 2001 -Talman, Ann Wall Street 1987 -Talman, Ann Limitless 2011 -Guardino, Charles Out for Justice 1991 -Guardino, Charles Raising Helen 2004 -Guardino, Charles The Princess Diaries 2001 -Guardino, Charles The Princess Diaries 2: Royal Engagement 2004 -Wilson, Dolan We Are Marshall 2006 -Wilson, Dolan The Dukes of Hazzard 2005 -Wilson, Dolan Walk the Line 2005 -Van Damme, Jean-Claude Universal Soldier 1992 -Van Damme, Jean-Claude Last Action Hero 1993 -Van Damme, Jean-Claude Kung Fu Panda 2 2011 -Van Damme, Jean-Claude Rzhevskiy protiv Napoleona 2012 -Van Damme, Jean-Claude Timecop 1994 -Davis, Kristin (I) Couples Retreat 2009 -Davis, Kristin (I) Sex and the City 2008 -Davis, Kristin (I) Sex and the City 2 2010 -Davis, Kristin (I) The Adventures of Sharkboy and Lavagirl 3-D 2005 -Davis, Kristin (I) Journey 2: The Mysterious Island 2012 -Davis, Kristin (I) The Shaggy Dog 2006 -Alexi-Malle, Adam Artificial Intelligence: AI 2001 -Alexi-Malle, Adam Failure to Launch 2006 -Alexi-Malle, Adam Bowfinger 1999 -Alexi-Malle, Adam Hidalgo 2004 -Alexi-Malle, Adam The Peacemaker 1997 -Alexi-Malle, Adam The Preacher's Wife 1996 -Maniaci, Jim The Rock 1996 -Maniaci, Jim Armageddon 1998 -Maniaci, Jim The Scorpion King 2002 -Kelly, James Martin Men in Black 3 2012 -Kelly, James Martin The Hangover 2009 -Kelly, James Martin Ocean's Thirteen 2007 -Stults, Geoff Wedding Crashers 2005 -Stults, Geoff J. Edgar 2011 -Stults, Geoff The Break-Up 2006 -Rhys-Davies, John The Lord of the Rings: The Fellowship of the Ring 2001 -Rhys-Davies, John The Princess Diaries 2: Royal Engagement 2004 -Rhys-Davies, John The Lord of the Rings: The Return of the King 2003 -Rhys-Davies, John Indiana Jones and the Last Crusade 1989 -Rhys-Davies, John The Jungle Book 2 2003 -Rhys-Davies, John The Lord of the Rings: The Two Towers 2002 -Rhys-Davies, John The Living Daylights 1987 -Blanchard, Rachel Without a Paddle 2004 -Blanchard, Rachel Snakes on a Plane 2006 -Blanchard, Rachel Road Trip 2000 -Lauren, Greg A Time to Kill 1996 -Lauren, Greg Batman Forever 1995 -Lauren, Greg The Wedding Planner 2001 -Lauren, Greg Boogie Nights 1997 -Lauren, Greg Batman & Robin 1997 -Groener, Harry Patch Adams 1998 -Groener, Harry About Schmidt 2002 -Groener, Harry Road to Perdition 2002 -Groener, Harry Amistad 1997 -Higgins, John Michael Blade: Trinity 2004 -Higgins, John Michael The Ugly Truth 2009 -Higgins, John Michael Wag the Dog 1997 -Higgins, John Michael G.I. Jane 1997 -Higgins, John Michael Fred Claus 2007 -Higgins, John Michael Evan Almighty 2007 -Higgins, John Michael The Break-Up 2006 -Higgins, John Michael Yes Man 2008 -Higgins, John Michael Couples Retreat 2009 -Higgins, John Michael We Bought a Zoo 2011 -Higgins, John Michael Fun with Dick and Jane 2005 -Higgins, John Michael Bicentennial Man 1999 -Higgins, John Michael After the Sunset 2004 -Higgins, John Michael Bad Teacher 2011 -Jason, Peter Kari-gurashi no Arietti 2010 -Jason, Peter Congo 1995 -Jason, Peter Seabiscuit 2003 -Jason, Peter Kicking & Screaming 2005 -Jason, Peter Dante's Peak 1997 -Jason, Peter The Karate Kid 1984 -Jason, Peter Mortal Kombat 1995 -Jason, Peter The Hunt for Red October 1990 -Gibbons, Leeza RoboCop 1987 -Gibbons, Leeza Last Action Hero 1993 -Gibbons, Leeza RoboCop 2 1990 -Barr, Steven (I) We Are Marshall 2006 -Barr, Steven (I) The Perfect Storm 2000 -Barr, Steven (I) Atlantis: The Lost Empire 2001 -McGovern, Terence Mrs. Doubtfire 1993 -McGovern, Terence Jack 1996 -McGovern, Terence Batman Begins 2005 -Shuster, Rick Bandits 2001 -Shuster, Rick The Shaggy Dog 2006 -Shuster, Rick Eraser 1996 -Lorio, Kevin The Curious Case of Benjamin Button 2008 -Lorio, Kevin The Dukes of Hazzard 2005 -Lorio, Kevin Glory Road 2006 -Mamrak, Raymond Twelve Monkeys 1995 -Mamrak, Raymond Men in Black 3 2012 -Mamrak, Raymond Invincible 2006 -Daniels, Anthony (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Daniels, Anthony (I) Star Wars: Episode III - Revenge of the Sith 2005 -Daniels, Anthony (I) Star Wars 1977 -Daniels, Anthony (I) Star Wars: Episode I - The Phantom Menace 1999 -Daniels, Anthony (I) Star Wars: Episode II - Attack of the Clones 2002 -Daniels, Anthony (I) Star Wars: Episode VI - Return of the Jedi 1983 -Gulbranson, Matthew James Salt 2010 -Gulbranson, Matthew James Body of Lies 2008 -Gulbranson, Matthew James Mars Attacks! 1996 -Gulbranson, Matthew James Eraser 1996 -Gulbranson, Matthew James The Rock 1996 -Gulbranson, Matthew James Burn After Reading 2008 -Gulbranson, Matthew James Transformers: Dark of the Moon 2011 -Mckeever, Hunter James The Green Hornet 2011 -Mckeever, Hunter James Dinner for Schmucks 2010 -Mckeever, Hunter James Little Fockers 2010 -Bryant, Joy Spider-Man 2 2004 -Bryant, Joy Showtime 2002 -Bryant, Joy The Skeleton Key 2005 -LeBlanc, Elton Meet the Spartans 2008 -LeBlanc, Elton The Curious Case of Benjamin Button 2008 -LeBlanc, Elton The Dukes of Hazzard 2005 -LeBlanc, Elton Failure to Launch 2006 -LeBlanc, Elton Big Momma's House 2 2006 -LeBlanc, Elton The Final Destination 2009 -LeBlanc, Elton Glory Road 2006 -Watson, George F. (I) Hotel for Dogs 2009 -Watson, George F. (I) We Bought a Zoo 2011 -Watson, George F. (I) Changeling 2008 -Watson, George F. (I) The Amazing Spider-Man 2012 -Watson, George F. (I) Horrible Bosses 2011 -Watson, George F. (I) Dreamgirls 2006 -Watson, George F. (I) Water for Elephants 2011 -Watson, George F. (I) Pineapple Express 2008 -Watson, George F. (I) The Bucket List 2007 -Warren, Darryl (I) Return to Me 2000 -Warren, Darryl (I) Spawn 1997 -Warren, Darryl (I) Domestic Disturbance 2001 -Jones, Tommy Lee U.S. Marshals 1998 -Jones, Tommy Lee No Country for Old Men 2007 -Jones, Tommy Lee Small Soldiers 1998 -Jones, Tommy Lee Volcano 1997 -Jones, Tommy Lee Batman Forever 1995 -Jones, Tommy Lee Rules of Engagement 2000 -Jones, Tommy Lee JFK 1991 -Jones, Tommy Lee Men in Black 3 2012 -Jones, Tommy Lee The Fugitive 1993 -Jones, Tommy Lee Men in Black II 2002 -Jones, Tommy Lee Captain America: The First Avenger 2011 -Jones, Tommy Lee Double Jeopardy 1999 -Jones, Tommy Lee Men in Black 1997 -Jones, Tommy Lee Space Cowboys 2000 -Kuchma, Anna Cop Out 2010 -Kuchma, Anna Get Him to the Greek 2010 -Kuchma, Anna Percy Jackson & the Olympians: The Lightning Thief 2010 -Kuchma, Anna It's Complicated 2009 -Taghmaoui, Saïd Three Kings 1999 -Taghmaoui, Saïd Vantage Point 2008 -Taghmaoui, Saïd G.I. Joe: The Rise of Cobra 2009 -Taghmaoui, Saïd Hidalgo 2004 -Yassukovich, Tatyana Quantum of Solace 2008 -Yassukovich, Tatyana Chocolat 2000 -Yassukovich, Tatyana Alice in Wonderland 2010 -Gilbert, Troy Cowboys & Aliens 2011 -Gilbert, Troy Phone Booth 2002 -Gilbert, Troy Blue Streak 1999 -Kravitz, Zoë X-Men: First Class 2011 -Kravitz, Zoë The Brave One 2007 -Kravitz, Zoë No Reservations 2007 -Nguyen, Johnny (I) We Were Soldiers 2002 -Nguyen, Johnny (I) Nu Hon Than Chet 2008 -Nguyen, Johnny (I) The Master of Disguise 2002 -Unkrich, Lee A Bug's Life 1998 -Unkrich, Lee Monsters, Inc. 2001 -Unkrich, Lee Toy Story 2 1999 -Unkrich, Lee Toy Story 3 2010 -Weitzman, Armen Role Models 2008 -Weitzman, Armen Ocean's Thirteen 2007 -Weitzman, Armen No Strings Attached 2011 -Phillippe, Ryan I Know What You Did Last Summer 1997 -Phillippe, Ryan Cruel Intentions 1999 -Phillippe, Ryan Gosford Park 2001 -Phillippe, Ryan The Lincoln Lawyer 2011 -Albrecht, J. Grant Spider-Man 3 2007 -Albrecht, J. Grant S.W.A.T. 2003 -Albrecht, J. Grant The Jungle Book 2 2003 -Albrecht, J. Grant Shark Tale 2004 -Albrecht, J. Grant Kung Fu Panda 2008 -Albrecht, J. Grant Happy Feet 2006 -Taubman, Anatole Quantum of Solace 2008 -Taubman, Anatole Speed Racer 2008 -Taubman, Anatole Captain America: The First Avenger 2011 -Tevlovski, Vladimir Takers 2010 -Tevlovski, Vladimir Salt 2010 -Tevlovski, Vladimir The Tourist 2010 -Isaac, Oscar Body of Lies 2008 -Isaac, Oscar Sucker Punch 2011 -Isaac, Oscar Drive 2011 -Isaac, Oscar Robin Hood 2010 -Thomas, Black Dreamgirls 2006 -Thomas, Black Stomp the Yard 2007 -Thomas, Black Step Up 2: The Streets 2008 -Trimble, Scott Bedazzled 2000 -Trimble, Scott Star Trek 2009 -Trimble, Scott What Dreams May Come 1998 -Trimble, Scott Flubber 1997 -Trimble, Scott Hotel for Dogs 2009 -Trimble, Scott Bicentennial Man 1999 -Ritter, Krysten Mona Lisa Smile 2003 -Ritter, Krysten Confessions of a Shopaholic 2009 -Ritter, Krysten What Happens in Vegas 2008 -Ritter, Krysten 27 Dresses 2008 -Surels, Ronn Knight and Day 2010 -Surels, Ronn The Master of Disguise 2002 -Surels, Ronn The Expendables 2010 -Den Dekker, Michael American Gangster 2007 -Den Dekker, Michael Inside Man 2006 -Den Dekker, Michael The Happening 2008 -Hülk, Sebastian Hanna 2011 -Hülk, Sebastian War Horse 2011 -Hülk, Sebastian Inglourious Basterds 2009 -Jutras, Richard (I) The Whole Nine Yards 2000 -Jutras, Richard (I) Secret Window 2004 -Jutras, Richard (I) Mirror Mirror 2012 -Vansittart, Rupert Johnny English Reborn 2011 -Vansittart, Rupert Braveheart 1995 -Vansittart, Rupert Four Weddings and a Funeral 1994 -Lambert, Steven Holes 2003 -Lambert, Steven L.A. Confidential 1997 -Lambert, Steven Traffic 2000 -Lambert, Steven Timecop 1994 -Lambert, Steven Ocean's Thirteen 2007 -Sickler, Rich Cast Away 2000 -Sickler, Rich Practical Magic 1998 -Sickler, Rich Bandits 2001 -Harris, Baxter Home Alone 3 1997 -Harris, Baxter JFK 1991 -Harris, Baxter The Devil's Own 1997 -Balfour, Eric The Texas Chainsaw Massacre 2003 -Balfour, Eric What Women Want 2000 -Balfour, Eric Skyline 2010 -Balfour, Eric In Her Shoes 2005 -Balfour, Eric America's Sweethearts 2001 -Ensign, Michael Seabiscuit 2003 -Ensign, Michael Ghost Busters 1984 -Ensign, Michael Titanic 1997 -Ensign, Michael Superman 1978 -Ensign, Michael Bringing Down the House 2003 -Ensign, Michael The Golden Compass 2007 -Lanza, Angela Spy Kids 2001 -Lanza, Angela Spy Kids 2: Island of Lost Dreams 2002 -Lanza, Angela Spy Kids: All the Time in the World in 4D 2011 -Garofalo, Janeane The Cable Guy 1996 -Garofalo, Janeane Ratatouille 2007 -Garofalo, Janeane Cop Land 1997 -Garofalo, Janeane The Wild 2006 -Garofalo, Janeane Dogma 1999 -Stevenson, Ray (I) The Book of Eli 2010 -Stevenson, Ray (I) Thor 2011 -Stevenson, Ray (I) King Arthur 2004 -Stevenson, Ray (I) The Other Guys 2010 -McCormack, Mary (I) Deep Impact 1998 -McCormack, Mary (I) 1408 2007 -McCormack, Mary (I) K-PAX 2001 -Hatosy, Shawn In & Out 1997 -Hatosy, Shawn John Q 2002 -Hatosy, Shawn The Faculty 1998 -Hatosy, Shawn Public Enemies 2009 -Robinson, Dawn The Rugrats Movie 1998 -Robinson, Dawn Batman Forever 1995 -Robinson, Dawn Shaft 2000 -Christie, Julie (I) Troy 2004 -Christie, Julie (I) Harry Potter and the Prisoner of Azkaban 2004 -Christie, Julie (I) Finding Neverland 2004 -Christie, Julie (I) DragonHeart 1996 -Douglas, Terri Chicken Little 2005 -Douglas, Terri Bolt 2008 -Douglas, Terri Meet the Robinsons 2007 -Douglas, Terri The Time Traveler's Wife 2009 -Douglas, Terri The Princess and the Frog 2009 -Douglas, Terri The Wild 2006 -Margulies, Julianna Dinosaur 2000 -Margulies, Julianna Snakes on a Plane 2006 -Margulies, Julianna Ghost Ship 2002 -Margulies, Julianna Out for Justice 1991 -Chappell, Katsy True Lies 1994 -Chappell, Katsy Yes Man 2008 -Chappell, Katsy Inspector Gadget 1999 -Li, Chung Chi Shanghai Knights 2003 -Li, Chung Chi Rush Hour 1998 -Li, Chung Chi Pik lik for 1995 -Robinson, Troy (I) Spy Kids 2001 -Robinson, Troy (I) Spy Kids 2: Island of Lost Dreams 2002 -Robinson, Troy (I) G-Force 2009 -Robinson, Troy (I) 2 Fast 2 Furious 2003 -Robinson, Troy (I) Ocean's Eleven 2001 -Bale, Christian Pocahontas 1995 -Bale, Christian 3:10 to Yuma 2007 -Bale, Christian Batman Begins 2005 -Bale, Christian Shaft 2000 -Bale, Christian The Fighter 2010 -Bale, Christian Public Enemies 2009 -Bale, Christian Reign of Fire 2002 -Bale, Christian Terminator Salvation 2009 -Bale, Christian Captain Corelli's Mandolin 2001 -Bale, Christian Hauru no ugoku shiro 2004 -Bale, Christian The Prestige 2006 -Smith, Jaden The Day the Earth Stood Still 2008 -Smith, Jaden The Karate Kid 2010 -Smith, Jaden Justin Bieber: Never Say Never 2011 -Smith, Jaden The Pursuit of Happyness 2006 -Geer, Ellen Phenomenon 1996 -Geer, Ellen Clear and Present Danger 1994 -Geer, Ellen Practical Magic 1998 -Trebek, Alex Charlie's Angels 2000 -Trebek, Alex Finding Forrester 2000 -Trebek, Alex The Bucket List 2007 -Zacapa, Daniel Phenomenon 1996 -Zacapa, Daniel The Mexican 2001 -Zacapa, Daniel Se7en 1995 -Papas, Loukas The Interpreter 2005 -Papas, Loukas World Trade Center 2006 -Papas, Loukas Men in Black 3 2012 -Papas, Loukas The Brave One 2007 -Papas, Loukas The Dictator 2012 -Papas, Loukas Enchanted 2007 -Riojas, Juan A. The Rock 1996 -Riojas, Juan A. Conspiracy Theory 1997 -Riojas, Juan A. In the Line of Fire 1993 -Malik, Art John Carter 2012 -Malik, Art Sex and the City 2 2010 -Malik, Art True Lies 1994 -Malik, Art The Wolfman 2010 -Malik, Art The Living Daylights 1987 -Austin, Jeff (I) L.A. Confidential 1997 -Austin, Jeff (I) Rocky IV 1985 -Austin, Jeff (I) Armageddon 1998 -Moreau, Marguerite (I) Beverly Hills Chihuahua 2008 -Moreau, Marguerite (I) Runaway Jury 2003 -Moreau, Marguerite (I) Wag the Dog 1997 -Moreau, Marguerite (I) Mighty Joe Young 1998 -Moreau, Marguerite (I) The Mighty Ducks 1992 -Moreau, Marguerite (I) D2: The Mighty Ducks 1994 -Burt, Kira Con Air 1997 -Burt, Kira Austin Powers: International Man of Mystery 1997 -Burt, Kira Vegas Vacation 1997 -Rapaport, Michael (I) Next Friday 2000 -Rapaport, Michael (I) The 6th Day 2000 -Rapaport, Michael (I) Dr. Dolittle 2 2001 -Rapaport, Michael (I) Deep Blue Sea 1999 -Rapaport, Michael (I) Men of Honor 2000 -Rapaport, Michael (I) Cop Land 1997 -Lambert, Joel Transformers: Revenge of the Fallen 2009 -Lambert, Joel Hancock 2008 -Lambert, Joel Transformers 2007 -Starr, Martin The Incredible Hulk 2008 -Starr, Martin Superbad 2007 -Starr, Martin Knocked Up 2007 -Starr, Martin Kicking & Screaming 2005 -King, Devon Marie Four Christmases 2008 -King, Devon Marie The Artist 2011 -King, Devon Marie Herbie Fully Loaded 2005 -Oleksiuk, Jennifer White Chicks 2004 -Oleksiuk, Jennifer This Means War 2012 -Oleksiuk, Jennifer Percy Jackson & the Olympians: The Lightning Thief 2010 -Perkins, Ron (I) Ronin 1998 -Perkins, Ron (I) Volcano 1997 -Perkins, Ron (I) The Prestige 2006 -Perkins, Ron (I) Spider-Man 2002 -Hamilton, Josh (I) J. Edgar 2011 -Hamilton, Josh (I) The Bourne Identity 2002 -Hamilton, Josh (I) Ice Age 2002 -Farley, Kevin P. Johnson Family Vacation 2004 -Farley, Kevin P. The Waterboy 1998 -Farley, Kevin P. Beverly Hills Ninja 1997 -Thornton, David (I) John Q 2002 -Thornton, David (I) A Civil Action 1998 -Thornton, David (I) Home Alone 3 1997 -Thornton, David (I) The Notebook 2004 -Thornton, David (I) My Sister's Keeper 2009 -O'Connor, Peter (II) Atonement 2007 -O'Connor, Peter (II) Tinker Tailor Soldier Spy 2011 -O'Connor, Peter (II) War Horse 2011 -Rose, Roger (I) X-Men Origins: Wolverine 2009 -Rose, Roger (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Rose, Roger (I) Shrek the Third 2007 -Rose, Roger (I) Babe: Pig in the City 1998 -Rose, Roger (I) Happy Feet 2006 -Riga, Peter Julie & Julia 2009 -Riga, Peter Righteous Kill 2008 -Riga, Peter Tower Heist 2011 -Starkman, Lora Return to Me 2000 -Starkman, Lora Blades of Glory 2007 -Starkman, Lora Save the Last Dance 2001 -Kolman, Allan Se7en 1995 -Kolman, Allan Meet the Fockers 2004 -Kolman, Allan Air Force One 1997 -Kolman, Allan Holes 2003 -Kolman, Allan My Favorite Martian 1999 -Herrmann, Edward Intolerable Cruelty 2003 -Herrmann, Edward A Civil Action 1998 -Herrmann, Edward The Aviator 2004 -Herrmann, Edward Double Take 2001 -Dali, Tracy Date Night 2010 -Dali, Tracy Back to the Future Part II 1989 -Dali, Tracy Get Him to the Greek 2010 -Dali, Tracy The Scorpion King 2002 -Friend, Ted X2 2003 -Friend, Ted Elf 2003 -Friend, Ted The Butterfly Effect 2004 -Friend, Ted Watchmen 2009 -Friend, Ted Miracle 2004 -Friend, Ted Scary Movie 4 2006 -McCorry, Marion Salt 2010 -McCorry, Marion The Thomas Crown Affair 1999 -McCorry, Marion Signs 2002 -Cox, Ronny (I) Total Recall 1990 -Cox, Ronny (I) Forces of Nature 1999 -Cox, Ronny (I) Deep Blue Sea 1999 -Cox, Ronny (I) Beverly Hills Cop II 1987 -Cox, Ronny (I) RoboCop 1987 -Cox, Ronny (I) Beverly Hills Cop 1984 -Overton, Rick Groundhog Day 1993 -Overton, Rick Cloverfield 2008 -Overton, Rick Fat Albert 2004 -Overton, Rick Gung Ho 1986 -Overton, Rick Dinner for Schmucks 2010 -Overton, Rick Fun with Dick and Jane 2005 -Overton, Rick Beverly Hills Cop 1984 -Overton, Rick Mrs. Doubtfire 1993 -Overton, Rick Bad Teacher 2011 -Flemyng, Jason X-Men: First Class 2011 -Flemyng, Jason From Hell 2001 -Flemyng, Jason Stardust 2007 -Flemyng, Jason Transporter 2 2005 -Flemyng, Jason Kick-Ass 2010 -Flemyng, Jason Spice World 1997 -Flemyng, Jason The Curious Case of Benjamin Button 2008 -Flemyng, Jason The League of Extraordinary Gentlemen 2003 -Flemyng, Jason Hanna 2011 -Flemyng, Jason The Social Network 2010 -Flemyng, Jason Clash of the Titans 2010 -Rifkin, Richard (I) Eragon 2006 -Rifkin, Richard (I) Hellboy II: The Golden Army 2008 -Rifkin, Richard (I) Monte Carlo 2011 -O'Neal, Shaquille Jack and Jill 2011 -O'Neal, Shaquille After the Sunset 2004 -O'Neal, Shaquille Scary Movie 4 2006 -Dauplaise, Jareb Epic Movie 2007 -Dauplaise, Jareb Meet the Spartans 2008 -Dauplaise, Jareb Transformers: Revenge of the Fallen 2009 -RZA (I) American Gangster 2007 -RZA (I) Scary Movie 3 2003 -RZA (I) Funny People 2009 -RZA (I) Due Date 2010 -Waters Willard, Maxine The Kid 2000 -Waters Willard, Maxine Wag the Dog 1997 -Waters Willard, Maxine Norbit 2007 -Waters Willard, Maxine Brother Bear 2003 -North, Nolan X-Men Origins: Wolverine 2009 -North, Nolan Quantum of Solace 2008 -North, Nolan Deja Vu 2006 -North, Nolan Pirates of the Caribbean: At World's End 2007 -North, Nolan Transformers: Dark of the Moon 2011 -North, Nolan Ice Age: Dawn of the Dinosaurs 2009 -North, Nolan TMNT 2007 -North, Nolan Terminator Salvation 2009 -North, Nolan Cars 2006 -North, Nolan The Amazing Spider-Man 2012 -North, Nolan The Golden Compass 2007 -North, Nolan The Wild 2006 -North, Nolan How to Train Your Dragon 2010 -North, Nolan Transformers: Revenge of the Fallen 2009 -North, Nolan Spider-Man 3 2007 -Currie, James (V) Sherlock Holmes 2009 -Currie, James (V) Robin Hood 2010 -Currie, James (V) The King's Speech 2010 -Knight, Jack (II) Catch Me If You Can 2002 -Knight, Jack (II) Moneyball 2011 -Knight, Jack (II) L.A. Confidential 1997 -Clohessy, Robert The Interpreter 2005 -Clohessy, Robert The Avengers 2012 -Clohessy, Robert 27 Dresses 2008 -Clohessy, Robert Tower Heist 2011 -Orth, Zak Romeo + Juliet 1996 -Orth, Zak Vicky Cristina Barcelona 2008 -Orth, Zak The Other Guys 2010 -Orth, Zak In & Out 1997 -Lindo, Delroy The Cider House Rules 1999 -Lindo, Delroy The Core 2003 -Lindo, Delroy Up 2009 -Lindo, Delroy Ransom 1996 -Lindo, Delroy Congo 1995 -Lindo, Delroy Sahara 2005 -Lindo, Delroy Malcolm X 1992 -Lindo, Delroy The Devil's Advocate 1997 -Lindo, Delroy Gone in Sixty Seconds 2000 -Lindo, Delroy Romeo Must Die 2000 -Cetrone, Richard The Time Machine 2002 -Cetrone, Richard Underworld: Evolution 2006 -Cetrone, Richard Underworld: Awakening 2012 -Cetrone, Richard The Book of Eli 2010 -Cetrone, Richard Sucker Punch 2011 -Cetrone, Richard The Cabin in the Woods 2011 -Cetrone, Richard Underworld 2003 -Cetrone, Richard The Scorpion King 2002 -Cetrone, Richard Thor 2011 -Bon Jovi, Jon Pay It Forward 2000 -Bon Jovi, Jon U-571 2000 -Bon Jovi, Jon Fahrenheit 9/11 2004 -Bon Jovi, Jon New Year's Eve 2011 -Tamblyn, Amber The Sisterhood of the Traveling Pants 2005 -Tamblyn, Amber The Ring 2002 -Tamblyn, Amber The Sisterhood of the Traveling Pants 2 2008 -Sheridan, Dave (I) LiTTLEMAN 2006 -Sheridan, Dave (I) Scary Movie 2000 -Sheridan, Dave (I) Horrible Bosses 2011 -Black, Mary (I) The Sisterhood of the Traveling Pants 2005 -Black, Mary (I) Elf 2003 -Black, Mary (I) The Exorcism of Emily Rose 2005 -Kestner, Boyd Hannibal 2001 -Kestner, Boyd G.I. Jane 1997 -Kestner, Boyd The General's Daughter 1999 -Kestner, Boyd Black Hawk Down 2001 -Kestner, Boyd Divine Secrets of the Ya-Ya Sisterhood 2002 -Riviezzo, Vincent Unbreakable 2000 -Riviezzo, Vincent The Happening 2008 -Riviezzo, Vincent In Her Shoes 2005 -Riviezzo, Vincent Law Abiding Citizen 2009 -Riviezzo, Vincent Like Mike 2002 -Riviezzo, Vincent Invincible 2006 -Riviezzo, Vincent The Taking of Pelham 1 2 3 2009 -Darling, Jennifer Police Academy 2: Their First Assignment 1985 -Darling, Jennifer The Little Mermaid 1989 -Darling, Jennifer Ice Age: The Meltdown 2006 -Darling, Jennifer Brother Bear 2003 -Darling, Jennifer Hercules 1997 -Darling, Jennifer Kung Fu Panda 2008 -Darling, Jennifer Sen to Chihiro no kamikakushi 2001 -Darling, Jennifer Treasure Planet 2002 -Darling, Jennifer Cars 2006 -Darling, Jennifer The Hunchback of Notre Dame 1996 -Darling, Jennifer A Bug's Life 1998 -Darling, Jennifer Lilo & Stitch 2002 -Darling, Jennifer Gake no ue no Ponyo 2008 -Darling, Jennifer Beauty and the Beast 1991 -Darling, Jennifer Aladdin 1992 -Darling, Jennifer The Emperor's New Groove 2000 -Darling, Jennifer Monsters, Inc. 2001 -Skyler, Robb Along Came Polly 2004 -Skyler, Robb Forrest Gump 1994 -Skyler, Robb The Hot Chick 2002 -Skyler, Robb The Animal 2001 -Skyler, Robb Deuce Bigalow: Male Gigolo 1999 -Bliss, Ian (I) Superman Returns 2006 -Bliss, Ian (I) The Matrix Reloaded 2003 -Bliss, Ian (I) The Matrix Revolutions 2003 -Serratos, Christian New Moon 2009 -Serratos, Christian The Twilight Saga: Breaking Dawn - Part 1 2011 -Serratos, Christian The Twilight Saga: Eclipse 2010 -Simmons, Johnny Evan Almighty 2007 -Simmons, Johnny Hotel for Dogs 2009 -Simmons, Johnny 21 Jump Street 2012 -Hayes, Keith Allen The Last Song 2010 -Hayes, Keith Allen Big Mommas: Like Father, Like Son 2011 -Hayes, Keith Allen Killers 2010 -Hayes, Keith Allen Why Did I Get Married Too? 2010 -Hayes, Keith Allen The Blind Side 2009 -Hayes, Keith Allen Life as We Know It 2010 -Minghella, Max The Ides of March 2011 -Minghella, Max The Social Network 2010 -Minghella, Max Syriana 2005 -Macy, William H. Thank You for Smoking 2005 -Macy, William H. Air Force One 1997 -Macy, William H. The Lincoln Lawyer 2011 -Macy, William H. Wild Hogs 2007 -Macy, William H. Sahara 2005 -Macy, William H. Magnolia 1999 -Macy, William H. Marmaduke 2010 -Macy, William H. Fargo 1996 -Macy, William H. A Civil Action 1998 -Macy, William H. Seabiscuit 2003 -Macy, William H. Wag the Dog 1997 -Macy, William H. Jurassic Park III 2001 -Macy, William H. The Tale of Despereaux 2008 -Macy, William H. Pleasantville 1998 -Macy, William H. Cellular 2004 -Macy, William H. Boogie Nights 1997 -M'Cormack, Adetokumboh Quantum of Solace 2008 -M'Cormack, Adetokumboh Blood Diamond 2006 -M'Cormack, Adetokumboh Battle Los Angeles 2011 -McNally, Kevin (I) Pirates of the Caribbean: At World's End 2007 -McNally, Kevin (I) The Phantom of the Opera 2004 -McNally, Kevin (I) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -McNally, Kevin (I) Johnny English 2003 -McNally, Kevin (I) Entrapment 1999 -McNally, Kevin (I) Spice World 1997 -McNally, Kevin (I) Valkyrie 2008 -McNally, Kevin (I) Pirates of the Caribbean: Dead Man's Chest 2006 -McNally, Kevin (I) Pirates of the Caribbean: On Stranger Tides 2011 -Núñez Jr., Miguel A. Lethal Weapon 3 1992 -Núñez Jr., Miguel A. Scooby-Doo 2002 -Núñez Jr., Miguel A. Nutty Professor II: The Klumps 2000 -Downs, Nicholas Pearl Harbor 2001 -Downs, Nicholas The Holiday 2006 -Downs, Nicholas Constantine 2005 -Villani, Michael Wag the Dog 1997 -Villani, Michael Bruce Almighty 2003 -Villani, Michael Volcano 1997 -Villani, Michael Dreamgirls 2006 -Carell, Nancy The 40 Year Old Virgin 2005 -Carell, Nancy Anger Management 2003 -Carell, Nancy Bridesmaids 2011 -Hartnett, Josh (I) Black Hawk Down 2001 -Hartnett, Josh (I) 40 Days and 40 Nights 2002 -Hartnett, Josh (I) Pearl Harbor 2001 -Hartnett, Josh (I) Sin City 2005 -Hartnett, Josh (I) The Faculty 1998 -Hartnett, Josh (I) Halloween H20: 20 Years Later 1998 -Yamada, Henry T. Memoirs of a Geisha 2005 -Yamada, Henry T. Starsky & Hutch 2004 -Yamada, Henry T. Pirates of the Caribbean: At World's End 2007 -Yamada, Henry T. Collateral 2004 -De Minco, Jennifer I Now Pronounce You Chuck & Larry 2007 -De Minco, Jennifer Made of Honor 2008 -De Minco, Jennifer Get Smart 2008 -De Minco, Jennifer You Don't Mess with the Zohan 2008 -Swank, Hilary The Core 2003 -Swank, Hilary Insomnia 2002 -Swank, Hilary Million Dollar Baby 2004 -Swank, Hilary P.S. I Love You 2007 -Swank, Hilary New Year's Eve 2011 -Highmore, Freddie Charlie and the Chocolate Factory 2005 -Highmore, Freddie Finding Neverland 2004 -Highmore, Freddie The Spiderwick Chronicles 2008 -Highmore, Freddie The Golden Compass 2007 -Bouchner, Vitezslav The Illusionist 2006 -Bouchner, Vitezslav xXx 2002 -Bouchner, Vitezslav Hannibal Rising 2007 -Canada, Ron Cinderella Man 2005 -Canada, Ron National Treasure 2004 -Canada, Ron Home Alone 2: Lost in New York 1992 -Canada, Ron Wedding Crashers 2005 -Canada, Ron Just Like Heaven 2005 -Vincent, Barbara (I) New Year's Eve 2011 -Vincent, Barbara (I) The Smurfs 2011 -Vincent, Barbara (I) The Dictator 2012 -Vincent, Barbara (I) Friends with Benefits 2011 -Vincent, Barbara (I) Tower Heist 2011 -Stiers, David Ogden Pocahontas 1995 -Stiers, David Ogden Atlantis: The Lost Empire 2001 -Stiers, David Ogden Lilo & Stitch 2002 -Stiers, David Ogden Hoodwinked! 2005 -Stiers, David Ogden Sen to Chihiro no kamikakushi 2001 -Stiers, David Ogden The Hunchback of Notre Dame 1996 -Stiers, David Ogden Jungle 2 Jungle 1997 -Stiers, David Ogden Beauty and the Beast 1991 -Stiers, David Ogden Lady in the Water 2006 -Correy, Mark Catch Me If You Can 2002 -Correy, Mark Christmas with the Kranks 2004 -Correy, Mark Fun with Dick and Jane 2005 -Asai, Woodrow W. Down to Earth 2001 -Asai, Woodrow W. 'Crocodile' Dundee II 1988 -Asai, Woodrow W. Zoolander 2001 -Romanowski, Bill The Longest Yard 2005 -Romanowski, Bill Jack and Jill 2011 -Romanowski, Bill Bedtime Stories 2008 -Romanowski, Bill Get Smart 2008 -Tucker, Jonathan (I) The Texas Chainsaw Massacre 2003 -Tucker, Jonathan (I) Sleepers 1996 -Tucker, Jonathan (I) Hostage 2005 -Genovese, Anthony Spawn 1997 -Genovese, Anthony Small Soldiers 1998 -Genovese, Anthony Message in a Bottle 1999 -Bell, Michael (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Bell, Michael (I) The Rugrats Movie 1998 -Bell, Michael (I) Rugrats Go Wild 2003 -Bell, Michael (I) Madagascar 2005 -Bell, Michael (I) Shark Tale 2004 -Bell, Michael (I) Cars 2006 -Thurner, John Spider-Man 2 2004 -Thurner, John Contagion 2011 -Thurner, John The Fugitive 1993 -Thurner, John Public Enemies 2009 -Burke, Kathy Elizabeth 1998 -Burke, Kathy Tinker Tailor Soldier Spy 2011 -Burke, Kathy Flushed Away 2006 -Murtaugh, James How to Lose a Guy in 10 Days 2003 -Murtaugh, James Malcolm X 1992 -Murtaugh, James Vanilla Sky 2001 -Murtaugh, James Invincible 2006 -Bedard, George (I) Me, Myself & Irene 2000 -Bedard, George (I) Dumb & Dumber 1994 -Bedard, George (I) The Heartbreak Kid 2007 -Bedard, George (I) There's Something About Mary 1998 -Colter, Mike Salt 2010 -Colter, Mike Million Dollar Baby 2004 -Colter, Mike Men in Black 3 2012 -Taylor, Rip Jackass 3D 2010 -Taylor, Rip Home Alone 2: Lost in New York 1992 -Taylor, Rip The Dukes of Hazzard 2005 -Taylor, Rip Indecent Proposal 1993 -Butler, Dan (I) The Silence of the Lambs 1991 -Butler, Dan (I) Crazy, Stupid, Love. 2011 -Butler, Dan (I) Enemy of the State 1998 -Thigpen, Lynne Tootsie 1982 -Thigpen, Lynne The Insider 1999 -Thigpen, Lynne Anger Management 2003 -Thigpen, Lynne Bicentennial Man 1999 -Thigpen, Lynne Shaft 2000 -Stellate, Nick Deep Impact 1998 -Stellate, Nick U.S. Marshals 1998 -Stellate, Nick Stepmom 1998 -Stellate, Nick Mickey Blue Eyes 1999 -Brody, Adam (I) Cop Out 2010 -Brody, Adam (I) Thank You for Smoking 2005 -Brody, Adam (I) The Ring 2002 -Brody, Adam (I) Mr. & Mrs. Smith 2005 -Brody, Adam (I) Scream 4 2011 -Brody, Adam (I) American Pie 2 2001 -Costanzo, Robert Total Recall 1990 -Costanzo, Robert Saturday Night Fever 1977 -Costanzo, Robert Die Hard 2 1990 -Hernández, Juan Carlos (I) Cop Out 2010 -Hernández, Juan Carlos (I) High Crimes 2002 -Hernández, Juan Carlos (I) The Devil's Advocate 1997 -Hernández, Juan Carlos (I) Tower Heist 2011 -Braugher, Andre The Mist 2007 -Braugher, Andre Frequency 2000 -Braugher, Andre Salt 2010 -Braugher, Andre City of Angels 1998 -Braugher, Andre 4: Rise of the Silver Surfer 2007 -Braugher, Andre Poseidon 2006 -McKee, Danielle Mr. Popper's Penguins 2011 -McKee, Danielle Coach Carter 2005 -McKee, Danielle Herbie Fully Loaded 2005 -Lakin, Christine The Game Plan 2007 -Lakin, Christine New Year's Eve 2011 -Lakin, Christine Race to Witch Mountain 2009 -Sowers, Scott Blue Streak 1999 -Sowers, Scott The Village 2004 -Sowers, Scott Erin Brockovich 2000 -Sowers, Scott True Grit 2010 -Cameron, James (I) Ghosts of the Abyss 2003 -Cameron, James (I) Aliens of the Deep 2005 -Cameron, James (I) Titanic 1997 -Armstrong, Valorie Pretty Woman 1990 -Armstrong, Valorie Mousehunt 1997 -Armstrong, Valorie Contact 1997 -Lindberg, Chad Mercury Rising 1998 -Lindberg, Chad The Last Samurai 2003 -Lindberg, Chad City of Angels 1998 -Lindberg, Chad The Fast and the Furious 2001 -Lindberg, Chad The Rookie 2002 -Lindberg, Chad October Sky 1999 -Alba, Jessica Spy Kids: All the Time in the World in 4D 2011 -Alba, Jessica 4: Rise of the Silver Surfer 2007 -Alba, Jessica Sin City 2005 -Alba, Jessica Knocked Up 2007 -Alba, Jessica Never Been Kissed 1999 -Alba, Jessica Little Fockers 2010 -Alba, Jessica Fantastic Four 2005 -Mills, Zach The Santa Clause 3: The Escape Clause 2006 -Mills, Zach Changeling 2008 -Mills, Zach Mr. Magorium's Wonder Emporium 2007 -Mills, Zach Super 8 2011 -Steffen, Samantha Invincible 2006 -Steffen, Samantha Signs 2002 -Steffen, Samantha The Happening 2008 -Carroll, Madeline Mr. Popper's Penguins 2011 -Carroll, Madeline Resident Evil: Extinction 2007 -Carroll, Madeline The Santa Clause 3: The Escape Clause 2006 -Kim, Jacqueline Volcano 1997 -Kim, Jacqueline Disclosure 1994 -Kim, Jacqueline The Mighty Ducks 1992 -DeNoble, Jane The School of Rock 2003 -DeNoble, Jane The Stepford Wives 2004 -DeNoble, Jane The Thomas Crown Affair 1999 -DeNoble, Jane The Manchurian Candidate 2004 -Soto, Gilbert (III) Salt 2010 -Soto, Gilbert (III) Law Abiding Citizen 2009 -Soto, Gilbert (III) Knowing 2009 -Soto, Gilbert (III) The Last Airbender 2010 -O'Brien, Gerry Pirates of the Caribbean: Dead Man's Chest 2006 -O'Brien, Gerry Reign of Fire 2002 -O'Brien, Gerry King Arthur 2004 -Millar, Brigitte Charlie and the Chocolate Factory 2005 -Millar, Brigitte The Wolfman 2010 -Millar, Brigitte Harry Potter and the Order of the Phoenix 2007 -Macintosh, Laird Rules of Engagement 2000 -Macintosh, Laird Alexander 2004 -Macintosh, Laird Saving Private Ryan 1998 -Larusso, Vincent Superhero Movie 2008 -Larusso, Vincent D2: The Mighty Ducks 1994 -Larusso, Vincent The Mighty Ducks 1992 -Johnson, Andre M. The Longest Yard 2005 -Johnson, Andre M. Dreamgirls 2006 -Johnson, Andre M. Spider-Man 2 2004 -Jay, Ricky The Prestige 2006 -Jay, Ricky Tomorrow Never Dies 1997 -Jay, Ricky Magnolia 1999 -Jay, Ricky Boogie Nights 1997 -Guttenberg, Steve Police Academy 2: Their First Assignment 1985 -Guttenberg, Steve Police Academy 1984 -Guttenberg, Steve Police Academy 3: Back in Training 1986 -Griffis, Rhoda The Last Song 2010 -Griffis, Rhoda The Blind Side 2009 -Griffis, Rhoda Big Momma's House 2 2006 -Griffis, Rhoda The Hunger Games 2012 -Griffis, Rhoda Road Trip 2000 -Griffis, Rhoda Runaway Jury 2003 -Griffis, Rhoda Walk the Line 2005 -Griffis, Rhoda We Are Marshall 2006 -LeJon Just Go with It 2011 -LeJon Pirates of the Caribbean: Dead Man's Chest 2006 -LeJon Pirates of the Caribbean: The Curse of the Black Pearl 2003 -LeJon Pirates of the Caribbean: On Stranger Tides 2011 -Martin, Brad (I) Three Kings 1999 -Martin, Brad (I) Alien: Resurrection 1997 -Martin, Brad (I) The Book of Eli 2010 -Martin, Brad (I) The Perfect Storm 2000 -Martin, Brad (I) Ocean's Eleven 2001 -Martin, Brad (I) Batman Forever 1995 -Foster, Ben (I) Contraband 2012 -Foster, Ben (I) 3:10 to Yuma 2007 -Foster, Ben (I) Hostage 2005 -Foster, Ben (I) Phone Booth 2002 -Foster, Ben (I) X-Men: The Last Stand 2006 -Bulleit, James Wall Street 1987 -Bulleit, James The Bone Collector 1999 -Bulleit, James Donnie Brasco 1997 -Thompson, Grant (I) Blades of Glory 2007 -Thompson, Grant (I) Bring It On 2000 -Thompson, Grant (I) National Treasure: Book of Secrets 2007 -Thompson, Grant (I) The Butterfly Effect 2004 -Michaels, Julie (I) Rush Hour 3 2007 -Michaels, Julie (I) Batman & Robin 1997 -Michaels, Julie (I) The Scorpion King 2002 -Sadler, Nicholas Twister 1996 -Sadler, Nicholas True Grit 2010 -Sadler, Nicholas Disclosure 1994 -Schoeber, Hans Quantum of Solace 2008 -Schoeber, Hans Spider-Man 3 2007 -Schoeber, Hans George of the Jungle 1997 -Donner, Richard Superman II 1980 -Donner, Richard Superman 1978 -Donner, Richard The Goonies 1985 -Donner, Richard Conspiracy Theory 1997 -Pergament, Annika Wall Street: Money Never Sleeps 2010 -Pergament, Annika Maid in Manhattan 2002 -Pergament, Annika Tower Heist 2011 -Gathegi, Edi X-Men: First Class 2011 -Gathegi, Edi New Moon 2009 -Gathegi, Edi My Bloody Valentine 2009 -Sanz, Horatio Road Trip 2000 -Sanz, Horatio Step Brothers 2008 -Sanz, Horatio The Dictator 2012 -Velie, Sean J. Edgar 2011 -Velie, Sean G.I. Joe: The Rise of Cobra 2009 -Velie, Sean Valkyrie 2008 -Worthington, Sam Terminator Salvation 2009 -Worthington, Sam Wrath of the Titans 2012 -Worthington, Sam Clash of the Titans 2010 -Worthington, Sam Avatar 2009 -Gauthier, Chris (I) LiTTLEMAN 2006 -Gauthier, Chris (I) Freddy vs. Jason 2003 -Gauthier, Chris (I) Watchmen 2009 -Gauthier, Chris (I) Scooby Doo 2: Monsters Unleashed 2004 -Gauthier, Chris (I) 40 Days and 40 Nights 2002 -Gauthier, Chris (I) Insomnia 2002 -Gauthier, Chris (I) Are We Done Yet? 2007 -Ganus, Spencer Lacey Spider-Man 3 2007 -Ganus, Spencer Lacey Ice Age: The Meltdown 2006 -Ganus, Spencer Lacey Happy Feet 2006 -Barry, Raymond J. Flubber 1997 -Barry, Raymond J. Training Day 2001 -Barry, Raymond J. Just Married 2003 -Harris, Jamie (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Harris, Jamie (I) Rise of the Planet of the Apes 2011 -Harris, Jamie (I) The Green Hornet 2011 -Harris, Jamie (I) The Prestige 2006 -Pesce, Frank Top Gun 1986 -Pesce, Frank Beverly Hills Cop II 1987 -Pesce, Frank Double Take 2001 -Pesce, Frank Donnie Brasco 1997 -Pesce, Frank Tower Heist 2011 -Pesce, Frank Beverly Hills Cop 1984 -Panton, Melissa The 6th Day 2000 -Panton, Melissa White Chicks 2004 -Panton, Melissa Silent Hill 2006 -Panton, Melissa Shall We Dance 2004 -Guerra, Saverio Blue Streak 1999 -Guerra, Saverio Shark Tale 2004 -Guerra, Saverio Bad Boys 1995 -Guerra, Saverio Sleepers 1996 -Paone, Nicol Eagle Eye 2008 -Paone, Nicol The Heartbreak Kid 2007 -Paone, Nicol Funny People 2009 -Grier, David Alan Bewitched 2005 -Grier, David Alan Return to Me 2000 -Grier, David Alan Stuart Little 1999 -Grier, David Alan LiTTLEMAN 2006 -Grier, David Alan Jumanji 1995 -Schellenberg, Kathryn Sucker Punch 2011 -Schellenberg, Kathryn Percy Jackson & the Olympians: The Lightning Thief 2010 -Schellenberg, Kathryn White Chicks 2004 -Wu, Ping (I) Pearl Harbor 2001 -Wu, Ping (I) Six Days Seven Nights 1998 -Wu, Ping (I) The Hunt for Red October 1990 -Wu, Ping (I) I Love You, Man 2009 -Yang, Jamison Bruce Almighty 2003 -Yang, Jamison The Green Hornet 2011 -Yang, Jamison S.W.A.T. 2003 -Yang, Jamison Transformers 2007 -Yang, Jamison Godzilla 1998 -Yang, Jamison The Ugly Truth 2009 -Yang, Jamison Million Dollar Baby 2004 -Yang, Jamison Death at a Funeral 2010 -Lashaway, Nick The Last Song 2010 -Lashaway, Nick In Time 2011 -Lashaway, Nick The 40 Year Old Virgin 2005 -White, Gerald (III) The Princess Diaries 2: Royal Engagement 2004 -White, Gerald (III) License to Wed 2007 -White, Gerald (III) Norbit 2007 -Lampley, Jim Blades of Glory 2007 -Lampley, Jim Rocky Balboa 2006 -Lampley, Jim Ocean's Eleven 2001 -Lampley, Jim The Fighter 2010 -Decker, Julia Almost Famous 2000 -Decker, Julia Vanilla Sky 2001 -Decker, Julia Bewitched 2005 -Stark, Peter (I) U-571 2000 -Stark, Peter (I) Sherlock Holmes: A Game of Shadows 2011 -Stark, Peter (I) Captain America: The First Avenger 2011 -Stark, Peter (I) Captain Corelli's Mandolin 2001 -Stark, Peter (I) X-Men: First Class 2011 -McGuire, Darren X-Men 2000 -McGuire, Darren X2 2003 -McGuire, Darren Blade: Trinity 2004 -Nolan, Paul L. Contact 1997 -Nolan, Paul L. Signs 2002 -Nolan, Paul L. Ocean's Eleven 2001 -Molthen, Michael Role Models 2008 -Molthen, Michael Changeling 2008 -Molthen, Michael Herbie Fully Loaded 2005 -Molthen, Michael Live Free or Die Hard 2007 -Molthen, Michael Eagle Eye 2008 -Nappo, Tony Saw II 2005 -Nappo, Tony Saw V 2008 -Nappo, Tony Saw IV 2007 -Nappo, Tony The Incredible Hulk 2008 -Nappo, Tony Jumper 2008 -Nappo, Tony Four Brothers 2005 -Washington, Ukee The Manchurian Candidate 2004 -Washington, Ukee The Happening 2008 -Washington, Ukee Signs 2002 -Washington, Ukee Unbreakable 2000 -Hindi, Moe Salt 2010 -Hindi, Moe Step Up 3D 2010 -Hindi, Moe Sex and the City 2 2010 -Hindi, Moe Tower Heist 2011 -Hindi, Moe The Dictator 2012 -Puri, Om The Ghost and the Darkness 1996 -Puri, Om Charlie Wilson's War 2007 -Puri, Om Gandhi 1982 -Lampkin, Sean Bad Boys II 2003 -Lampkin, Sean Big Momma's House 2000 -Lampkin, Sean Big Momma's House 2 2006 -Malil, Shelley The 40 Year Old Virgin 2005 -Malil, Shelley Holes 2003 -Malil, Shelley My Favorite Martian 1999 -Malil, Shelley Collateral Damage 2002 -Fricchione, Jason Horton Hears a Who! 2008 -Fricchione, Jason Ice Age: The Meltdown 2006 -Fricchione, Jason Rio 2011 -Fricchione, Jason Ice Age: Dawn of the Dinosaurs 2009 -Lennox, Kai Starship Troopers 1997 -Lennox, Kai Yes Man 2008 -Lennox, Kai Boogie Nights 1997 -Lennox, Kai Pleasantville 1998 -Lennox, Kai D2: The Mighty Ducks 1994 -Lennox, Kai 40 Days and 40 Nights 2002 -Lennox, Kai He's Just Not That Into You 2009 -Lennox, Kai Rush Hour 1998 -Biggs, Charlotte (II) Spy Kids: All the Time in the World in 4D 2011 -Biggs, Charlotte (II) Battle Los Angeles 2011 -Biggs, Charlotte (II) Tin Cup 1996 -Kimura, Hideo Beverly Hills Ninja 1997 -Kimura, Hideo The Game 1997 -Kimura, Hideo Austin Powers in Goldmember 2002 -Schultz, Armand Salt 2010 -Schultz, Armand The Happening 2008 -Schultz, Armand Vanilla Sky 2001 -Schultz, Armand Malcolm X 1992 -Schultz, Armand Burn After Reading 2008 -Lee, Mi-Jung (I) X2 2003 -Lee, Mi-Jung (I) TRON: Legacy 2010 -Lee, Mi-Jung (I) Watchmen 2009 -Lee, Mi-Jung (I) Snakes on a Plane 2006 -Lee, Mi-Jung (I) The 6th Day 2000 -Lee, Mi-Jung (I) X-Men: The Last Stand 2006 -Murray, Devon Harry Potter and the Goblet of Fire 2005 -Murray, Devon Harry Potter and the Prisoner of Azkaban 2004 -Murray, Devon Harry Potter and the Sorcerer's Stone 2001 -Murray, Devon Harry Potter and the Chamber of Secrets 2002 -Murray, Devon Harry Potter and the Deathly Hallows: Part 1 2010 -Murray, Devon Harry Potter and the Deathly Hallows: Part 2 2011 -Murray, Devon Harry Potter and the Order of the Phoenix 2007 -Murray, Devon Harry Potter and the Half-Blood Prince 2009 -Cinquanta, Matt The Lincoln Lawyer 2011 -Cinquanta, Matt Transformers: Dark of the Moon 2011 -Cinquanta, Matt Fight Club 1999 -Donovan, Jeffrey J. Edgar 2011 -Donovan, Jeffrey Changeling 2008 -Donovan, Jeffrey Sleepers 1996 -Donovan, Jeffrey Vegas Vacation 1997 -Thyne, T.J. What Women Want 2000 -Thyne, T.J. Erin Brockovich 2000 -Thyne, T.J. Something's Gotta Give 2003 -Thyne, T.J. How the Grinch Stole Christmas 2000 -Grant, David Marshall The Stepford Wives 2004 -Grant, David Marshall The Rock 1996 -Grant, David Marshall The Devil Wears Prada 2006 -Sommers, Michael X. Patch Adams 1998 -Sommers, Michael X. Bandits 2001 -Sommers, Michael X. Mousehunt 1997 -Fischer, Pamela (I) Deep Impact 1998 -Fischer, Pamela (I) Salt 2010 -Fischer, Pamela (I) Wedding Crashers 2005 -Fischer, Pamela (I) Contact 1997 -Fischer, Pamela (I) Step Up 2006 -Fischer, Pamela (I) The Replacements 2000 -Fischer, Pamela (I) The Recruit 2003 -Fischer, Pamela (I) National Treasure: Book of Secrets 2007 -Fischer, Pamela (I) In Her Shoes 2005 -Fischer, Pamela (I) The Devil Wears Prada 2006 -Fischer, Pamela (I) Enemy of the State 1998 -Fischer, Pamela (I) He's Just Not That Into You 2009 -Feingold, Jeffrey The Social Network 2010 -Feingold, Jeffrey Legion 2009 -Feingold, Jeffrey Crazy Heart 2009 -Feingold, Jeffrey Gran Torino 2008 -Feingold, Jeffrey The Town 2010 -Feingold, Jeffrey Grown Ups 2010 -Zane, Billy Zoolander 2001 -Zane, Billy Back to the Future Part II 1989 -Zane, Billy Titanic 1997 -Zane, Billy Back to the Future 1985 -Eve (II) Barbershop 2002 -Eve (II) xXx 2002 -Eve (II) Charlie's Angels: Full Throttle 2003 -Eve (II) Barbershop 2: Back in Business 2004 -Aguirre, Cesar (II) Killers 2010 -Aguirre, Cesar (II) Stomp the Yard 2007 -Aguirre, Cesar (II) Zombieland 2009 -Aguirre, Cesar (II) The Blind Side 2009 -Aguirre, Cesar (II) Due Date 2010 -Aguirre, Cesar (II) Madea's Family Reunion 2006 -Spiegel, Scott Spider-Man 2 2004 -Spiegel, Scott Spider-Man 2002 -Spiegel, Scott Drag Me to Hell 2009 -DeJoria, Eloise Wall Street: Money Never Sleeps 2010 -DeJoria, Eloise Friday Night Lights 2004 -DeJoria, Eloise You Don't Mess with the Zohan 2008 -Lacey, Aaron Michael The Good Shepherd 2006 -Lacey, Aaron Michael Clear and Present Danger 1994 -Lacey, Aaron Michael Forrest Gump 1994 -Lacey, Aaron Michael In the Line of Fire 1993 -Lacey, Aaron Michael Evan Almighty 2007 -Lacey, Aaron Michael The Recruit 2003 -Lacey, Aaron Michael Twelve Monkeys 1995 -Lacey, Aaron Michael Live Free or Die Hard 2007 -Lacey, Aaron Michael Red Dragon 2002 -Lacey, Aaron Michael Transformers 2007 -MacInnes, Angus Star Wars 1977 -MacInnes, Angus Hellboy 2004 -MacInnes, Angus Eyes Wide Shut 1999 -MacInnes, Angus Superman II 1980 -Percival, Michael (I) 101 Dalmatians 1996 -Percival, Michael (I) The Living Daylights 1987 -Percival, Michael (I) Harry Potter and the Half-Blood Prince 2009 -Crudup, Billy Almost Famous 2000 -Crudup, Billy Watchmen 2009 -Crudup, Billy Big Fish 2003 -Crudup, Billy The Good Shepherd 2006 -Crudup, Billy Sleepers 1996 -Crudup, Billy Public Enemies 2009 -Crudup, Billy Mission: Impossible III 2006 -Crudup, Billy Eat Pray Love 2010 -Blair, Jacob The A-Team 2010 -Blair, Jacob Underworld: Awakening 2012 -Blair, Jacob The Grey 2011 -Blair, Jacob The Day the Earth Stood Still 2008 -Blair, Jacob Hot Tub Time Machine 2010 -Hall, Darryl Reuben The Good Shepherd 2006 -Hall, Darryl Reuben Men in Black 3 2012 -Hall, Darryl Reuben What Happens in Vegas 2008 -Hall, Darryl Reuben Down to Earth 2001 -Moore, Angela (I) Snow Dogs 2002 -Moore, Angela (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Moore, Angela (I) I, Robot 2004 -Hammond, Brandon (I) Mars Attacks! 1996 -Hammond, Brandon (I) Space Jam 1996 -Hammond, Brandon (I) Soul Food 1997 -Clemenson, Christian United 93 2006 -Clemenson, Christian J. Edgar 2011 -Clemenson, Christian Hannah and Her Sisters 1986 -Clemenson, Christian Mighty Joe Young 1998 -Clemenson, Christian Armageddon 1998 -Clemenson, Christian Apollo 13 1995 -Boat, David X-Men Origins: Wolverine 2009 -Boat, David Legend of the Guardians: The Owls of Ga'Hoole 2010 -Boat, David Speed Racer 2008 -Boat, David Space Chimps 2008 -Boat, David Transformers: Dark of the Moon 2011 -Gipson, John Constantine 2005 -Gipson, John Big Momma's House 2 2006 -Gipson, John Liar Liar 1997 -Coogan, Steve Around the World in 80 Days 2004 -Coogan, Steve Night at the Museum: Battle of the Smithsonian 2009 -Coogan, Steve Marmaduke 2010 -Coogan, Steve Tropic Thunder 2008 -Coogan, Steve The Other Guys 2010 -Coogan, Steve Percy Jackson & the Olympians: The Lightning Thief 2010 -Coogan, Steve Night at the Museum 2006 -Christofferson, Debra Changeling 2008 -Christofferson, Debra Mousehunt 1997 -Christofferson, Debra Wild Wild West 1999 -Christofferson, Debra My Favorite Martian 1999 -Kain, Shauna X2 2003 -Kain, Shauna X-Men: The Last Stand 2006 -Kain, Shauna Dreamcatcher 2003 -Jackson, Dee Jay Percy Jackson & the Olympians: The Lightning Thief 2010 -Jackson, Dee Jay Paycheck 2003 -Jackson, Dee Jay Are We There Yet? 2005 -Jackson, Dee Jay Scary Movie 3 2003 -Jackson, Dee Jay Look Who's Talking 1989 -Jackson, Dee Jay Fantastic Four 2005 -Wilkins, Sharon National Treasure 2004 -Wilkins, Sharon I, Robot 2004 -Wilkins, Sharon Maid in Manhattan 2002 -Wilkins, Sharon Two Weeks Notice 2002 -Wilkins, Sharon Bad Boys II 2003 -Thornton, Billy Bob Indecent Proposal 1993 -Thornton, Billy Bob Primary Colors 1998 -Thornton, Billy Bob Intolerable Cruelty 2003 -Thornton, Billy Bob Friday Night Lights 2004 -Thornton, Billy Bob Love Actually 2003 -Thornton, Billy Bob Armageddon 1998 -Thornton, Billy Bob Bandits 2001 -Thornton, Billy Bob Puss in Boots 2011 -Thornton, Billy Bob Eagle Eye 2008 -Thornton, Billy Bob Bad Santa 2003 -Garland, Joel Lady in the Water 2006 -Garland, Joel Maid in Manhattan 2002 -Garland, Joel Limitless 2011 -Weisz, Rachel About a Boy 2002 -Weisz, Rachel Eragon 2006 -Weisz, Rachel Fred Claus 2007 -Weisz, Rachel The Mummy 1999 -Weisz, Rachel Runaway Jury 2003 -Weisz, Rachel The Constant Gardener 2005 -Weisz, Rachel The Mummy Returns 2001 -Weisz, Rachel Constantine 2005 -Weisz, Rachel Enemy at the Gates 2001 -Green, Eva Quantum of Solace 2008 -Green, Eva Kingdom of Heaven 2005 -Green, Eva Casino Royale 2006 -Green, Eva The Golden Compass 2007 -Challita, Eddy Salt 2010 -Challita, Eddy Step Up 2006 -Challita, Eddy National Treasure: Book of Secrets 2007 -Pinto, Freida Slumdog Millionaire 2008 -Pinto, Freida Immortals 2011 -Pinto, Freida Rise of the Planet of the Apes 2011 -Spall, Timothy Lemony Snicket's A Series of Unfortunate Events 2004 -Spall, Timothy Enchanted 2007 -Spall, Timothy Harry Potter and the Deathly Hallows: Part 2 2011 -Spall, Timothy The Last Samurai 2003 -Spall, Timothy Sweeney Todd: The Demon Barber of Fleet Street 2007 -Spall, Timothy Alice in Wonderland 2010 -Spall, Timothy Harry Potter and the Goblet of Fire 2005 -Spall, Timothy Chicken Run 2000 -Spall, Timothy Harry Potter and the Half-Blood Prince 2009 -Spall, Timothy The King's Speech 2010 -Spall, Timothy Vanilla Sky 2001 -Spall, Timothy Harry Potter and the Prisoner of Azkaban 2004 -Spall, Timothy Harry Potter and the Deathly Hallows: Part 1 2010 -Spall, Timothy Harry Potter and the Order of the Phoenix 2007 -Farmer, Lonnie The Cider House Rules 1999 -Farmer, Lonnie Underdog 2007 -Farmer, Lonnie Mystic River 2003 -Scott, Lorna Role Models 2008 -Scott, Lorna Freaky Friday 2003 -Scott, Lorna 17 Again 2009 -Scott, Lorna Anger Management 2003 -Scott, Lorna Primary Colors 1998 -Scott, Lorna The Heartbreak Kid 2007 -Scott, Lorna Bedtime Stories 2008 -Scott, Lorna Johnson Family Vacation 2004 -Scott, Lorna Wanted 2008 -Scott, Lorna Bad Santa 2003 -Scott, Lorna Just Go with It 2011 -Scott, Lorna Just Like Heaven 2005 -Scott, Lorna Cellular 2004 -Scott, Lorna Something's Gotta Give 2003 -Ross, Ricco Aliens 1986 -Ross, Ricco Spies Like Us 1985 -Ross, Ricco Mission: Impossible 1996 -Casados, Eloy Bridesmaids 2011 -Casados, Eloy D-War 2007 -Casados, Eloy Down and Out in Beverly Hills 1986 -Bellamy, Anne Cast Away 2000 -Bellamy, Anne Bringing Down the House 2003 -Bellamy, Anne Jackass 3D 2010 -Healy, Pat (I) Magnolia 1999 -Healy, Pat (I) Home Alone 3 1997 -Healy, Pat (I) Pearl Harbor 2001 -Cosby, Bill Malcolm X 1992 -Cosby, Bill Jack 1996 -Cosby, Bill Fat Albert 2004 -Johnson, Aaron (III) Shanghai Knights 2003 -Johnson, Aaron (III) The Illusionist 2006 -Johnson, Aaron (III) Kick-Ass 2010 -Michelle, Diane Minority Report 2002 -Michelle, Diane RV 2006 -Michelle, Diane Happy Feet 2006 -Rosemont, Romy Congo 1995 -Rosemont, Romy The Avengers 2012 -Rosemont, Romy Kung Fu Panda 2 2011 -Hicks, Mark (I) Fast Five 2011 -Hicks, Mark (I) Terminator 3: Rise of the Machines 2003 -Hicks, Mark (I) Batman Forever 1995 -Crawford, Thomas (I) Catch Me If You Can 2002 -Crawford, Thomas (I) Outbreak 1995 -Crawford, Thomas (I) Baby Geniuses 1999 -Crawford, Thomas (I) Air Force One 1997 -Crawford, Thomas (I) Charlie Wilson's War 2007 -Crawford, Thomas (I) Evan Almighty 2007 -Crawford, Thomas (I) Apollo 13 1995 -Crawford, Thomas (I) Dreamgirls 2006 -Crawford, Thomas (I) Transformers: Dark of the Moon 2011 -Crawford, Thomas (I) The Net 1995 -Bell, Tobin Saw II 2005 -Bell, Tobin Saw III 2006 -Bell, Tobin Tootsie 1982 -Bell, Tobin In the Line of Fire 1993 -Bell, Tobin Saw V 2008 -Bell, Tobin The Road to El Dorado 2000 -Bell, Tobin The Firm 1993 -Bell, Tobin Saw 3D 2010 -Bell, Tobin Saw IV 2007 -Bell, Tobin Saw 2004 -O'Donnell, Annie Transformers: Dark of the Moon 2011 -O'Donnell, Annie Double Take 2001 -O'Donnell, Annie The Artist 2011 -Jackson, Rodney 'Bear' The Hurricane 1999 -Jackson, Rodney 'Bear' Precious 2009 -Jackson, Rodney 'Bear' Inside Man 2006 -Mendelsohn, Ben (I) Knowing 2009 -Mendelsohn, Ben (I) Australia 2008 -Mendelsohn, Ben (I) Vertical Limit 2000 -Klingler, Rebecca L.A. Confidential 1997 -Klingler, Rebecca Titanic 1997 -Klingler, Rebecca The Green Mile 1999 -Walsh, Kate (I) Legion 2009 -Walsh, Kate (I) After the Sunset 2004 -Walsh, Kate (I) Bewitched 2005 -Walsh, Kate (I) 1408 2007 -Walsh, Kate (I) The Family Man 2000 -Walsh, Kate (I) Under the Tuscan Sun 2003 -Walsh, Kate (I) Kicking & Screaming 2005 -Q, Maggie Mission: Impossible III 2006 -Q, Maggie Rush Hour 2 2001 -Q, Maggie Live Free or Die Hard 2007 -Q, Maggie Around the World in 80 Days 2004 -Chowdhury, Shefali Harry Potter and the Goblet of Fire 2005 -Chowdhury, Shefali Harry Potter and the Half-Blood Prince 2009 -Chowdhury, Shefali Harry Potter and the Order of the Phoenix 2007 -Simon, Paul (II) Die Hard: With a Vengeance 1995 -Simon, Paul (II) Panic Room 2002 -Simon, Paul (II) The Thomas Crown Affair 1999 -Simon, Paul (II) Bedazzled 2000 -DeMita, John Universal Soldier 1992 -DeMita, John Halloween 2007 -DeMita, John Lilo & Stitch 2002 -DeMita, John Final Fantasy: The Spirits Within 2001 -Delahunt, Natasha Poseidon 2006 -Delahunt, Natasha Race to Witch Mountain 2009 -Delahunt, Natasha The Skeleton Key 2005 -Gutiérrez, Thelma Enchanted 2007 -Gutiérrez, Thelma The Birdcage 1996 -Gutiérrez, Thelma Bedazzled 2000 -Mahler, Bruce Police Academy 2: Their First Assignment 1985 -Mahler, Bruce Scary Movie 2000 -Mahler, Bruce Hook 1991 -Mahler, Bruce Police Academy 3: Back in Training 1986 -Mahler, Bruce Police Academy 1984 -Mahler, Bruce The Perfect Storm 2000 -Yansick, Eddie Bad Company 2002 -Yansick, Eddie Alien: Resurrection 1997 -Yansick, Eddie G-Force 2009 -Yansick, Eddie Speed 1994 -Chapman, Guy (II) Pirates of the Caribbean: Dead Man's Chest 2006 -Chapman, Guy (II) Red Eye 2005 -Chapman, Guy (II) Yes Man 2008 -Chapman, Guy (II) Fat Albert 2004 -Smith, Izaak Mirror Mirror 2012 -Smith, Izaak Percy Jackson & the Olympians: The Lightning Thief 2010 -Smith, Izaak Marmaduke 2010 -Curtis, Cliff Live Free or Die Hard 2007 -Curtis, Cliff Training Day 2001 -Curtis, Cliff Push 2009 -Curtis, Cliff Three Kings 1999 -Curtis, Cliff 10,000 BC 2008 -Curtis, Cliff The Insider 1999 -Curtis, Cliff Runaway Jury 2003 -Curtis, Cliff Blow 2001 -Curtis, Cliff Collateral Damage 2002 -Curtis, Cliff The Last Airbender 2010 -Curtis, Cliff Six Days Seven Nights 1998 -Preston, Kelly The Last Song 2010 -Preston, Kelly Jerry Maguire 1996 -Preston, Kelly Sky High 2005 -Preston, Kelly Nothing to Lose 1997 -Preston, Kelly Dr. Seuss' The Cat in the Hat 2003 -Bartlett, Tommy (I) Fred Claus 2007 -Bartlett, Tommy (I) Contagion 2011 -Bartlett, Tommy (I) A Nightmare on Elm Street 2010 -Bartlett, Tommy (I) Eagle Eye 2008 -Bartlett, Tommy (I) Public Enemies 2009 -Connolly, Kristen (II) The Cabin in the Woods 2011 -Connolly, Kristen (II) The Happening 2008 -Connolly, Kristen (II) Mona Lisa Smile 2003 -Connolly, Kristen (II) Confessions of a Shopaholic 2009 -Shafer, Alyssa Happy Feet 2006 -Shafer, Alyssa Daddy Day Care 2003 -Shafer, Alyssa Just Like Heaven 2005 -Shafer, Alyssa Fat Albert 2004 -Kyris, Marco Con Air 1997 -Kyris, Marco Face/Off 1997 -Kyris, Marco Matchstick Men 2003 -DeMasi, Kacee The Out-of-Towners 1999 -DeMasi, Kacee Tomorrow Never Dies 1997 -DeMasi, Kacee Primary Colors 1998 -DeMasi, Kacee Mighty Joe Young 1998 -DeMasi, Kacee Being John Malkovich 1999 -Jackson, Reginald (VI) Dreamgirls 2006 -Jackson, Reginald (VI) Norbit 2007 -Jackson, Reginald (VI) Fat Albert 2004 -Hemmings, David Gangs of New York 2002 -Hemmings, David Gladiator 2000 -Hemmings, David The League of Extraordinary Gentlemen 2003 -Hemmings, David Spy Game 2001 -Whitman, Mae The Wild Thornberrys Movie 2002 -Whitman, Mae Nights in Rodanthe 2008 -Whitman, Mae The Jungle Book 2 2003 -Whitman, Mae Independence Day 1996 -Whitman, Mae One Fine Day 1996 -Whitman, Mae Hope Floats 1998 -Ne-Yo Battle Los Angeles 2011 -Ne-Yo Stomp the Yard 2007 -Ne-Yo Red Tails 2012 -Caspe, Brian The League of Extraordinary Gentlemen 2003 -Caspe, Brian Wanted 2008 -Caspe, Brian Hannibal Rising 2007 -Caspe, Brian Hellboy 2004 -Caspe, Brian The Illusionist 2006 -Caspe, Brian Mission: Impossible - Ghost Protocol 2011 -Leachman, Cloris Hanging Up 2000 -Leachman, Cloris The Longest Yard 2005 -Leachman, Cloris Scary Movie 4 2006 -Leachman, Cloris Sky High 2005 -Leachman, Cloris Gake no ue no Ponyo 2008 -Leachman, Cloris Bad Santa 2003 -Leachman, Cloris Beavis and Butt-Head Do America 1996 -Silver, Leonard (I) Billy Elliot 2000 -Silver, Leonard (I) The Good Shepherd 2006 -Silver, Leonard (I) Johnny English 2003 -Bell, Kristen (I) Couples Retreat 2009 -Bell, Kristen (I) Forgetting Sarah Marshall 2008 -Bell, Kristen (I) Get Him to the Greek 2010 -Bell, Kristen (I) Scream 4 2011 -Starr, Mike (I) Snake Eyes 1998 -Starr, Mike (I) The Birdcage 1996 -Starr, Mike (I) The Natural 1984 -Starr, Mike (I) The Bodyguard 1992 -Starr, Mike (I) Dumb & Dumber 1994 -Pankow, Joanne Big Fish 2003 -Pankow, Joanne 28 Days 2000 -Pankow, Joanne Forces of Nature 1999 -Blake, Jerome (I) Star Wars: Episode III - Revenge of the Sith 2005 -Blake, Jerome (I) Star Wars: Episode I - The Phantom Menace 1999 -Blake, Jerome (I) The Hitchhiker's Guide to the Galaxy 2005 -Blake, Jerome (I) Star Wars: Episode II - Attack of the Clones 2002 -Blake, Jerome (I) The Fifth Element 1997 -X, Malcolm JFK 1991 -X, Malcolm Malcolm X 1992 -X, Malcolm Precious 2009 -Moss, Larry (III) Beauty and the Beast 1991 -Moss, Larry (III) Babe: Pig in the City 1998 -Moss, Larry (III) Happy Feet 2006 -Moss, Larry (III) Fatal Attraction 1987 -Stern, Selma Nothing to Lose 1997 -Stern, Selma Bruce Almighty 2003 -Stern, Selma Nutty Professor II: The Klumps 2000 -Stern, Selma Made of Honor 2008 -Smith, Logan Douglas Deja Vu 2006 -Smith, Logan Douglas Secretariat 2010 -Smith, Logan Douglas Green Lantern 2011 -Smith, Logan Douglas The Curious Case of Benjamin Button 2008 -Smith, Logan Douglas The Final Destination 2009 -Smith, Logan Douglas JFK 1991 -Tarantino, Quentin Inglourious Basterds 2009 -Tarantino, Quentin Pulp Fiction 1994 -Tarantino, Quentin Kill Bill: Vol. 2 2004 -Tarantino, Quentin Little Nicky 2000 -Tarantino, Quentin Jackie Brown 1997 -Arquette, Rosanna Pulp Fiction 1994 -Arquette, Rosanna The Whole Nine Yards 2000 -Arquette, Rosanna Hope Floats 1998 -Swardson, Nick I Now Pronounce You Chuck & Larry 2007 -Swardson, Nick Almost Famous 2000 -Swardson, Nick Bolt 2008 -Swardson, Nick Bedtime Stories 2008 -Swardson, Nick Blades of Glory 2007 -Swardson, Nick Just Go with It 2011 -Swardson, Nick Jack and Jill 2011 -Swardson, Nick Click 2006 -Swardson, Nick You Don't Mess with the Zohan 2008 -Wright, Bruce (I) Twister 1996 -Wright, Bruce (I) Speed 1994 -Wright, Bruce (I) Apollo 13 1995 -Wright, Bruce (I) The Negotiator 1998 -Jay, Tony (I) Beauty and the Beast 1991 -Jay, Tony (I) Austin Powers: The Spy Who Shagged Me 1999 -Jay, Tony (I) Treasure Planet 2002 -Jay, Tony (I) Rugrats Go Wild 2003 -Jay, Tony (I) The Jungle Book 2 2003 -Jay, Tony (I) The Hunchback of Notre Dame 1996 -Jay, Tony (I) The Rugrats Movie 1998 -Jay, Tony (I) Recess: School's Out 2001 -Andrews, Julie (I) Enchanted 2007 -Andrews, Julie (I) The Princess Diaries 2001 -Andrews, Julie (I) The Princess Diaries 2: Royal Engagement 2004 -Andrews, Julie (I) Despicable Me 2010 -Andrews, Julie (I) Shrek the Third 2007 -Andrews, Julie (I) Shrek Forever After 2010 -Andrews, Julie (I) Shrek 2 2004 -Yoo, Aaron Friday the 13th 2009 -Yoo, Aaron 21 2008 -Yoo, Aaron A Nightmare on Elm Street 2010 -Yoo, Aaron Disturbia 2007 -Sanchez, Johnny (I) Bowfinger 1999 -Sanchez, Johnny (I) The First Wives Club 1996 -Sanchez, Johnny (I) Transformers 2007 -Chase, Carl (I) The Mummy 1999 -Chase, Carl (I) Batman 1989 -Chase, Carl (I) Lara Croft: Tomb Raider 2001 -Chase, Carl (I) Alien³ 1992 -Beach, Scott Mrs. Doubtfire 1993 -Beach, Scott Stand by Me 1986 -Beach, Scott Star Wars 1977 -McBeath, Tom Double Jeopardy 1999 -McBeath, Tom Timecop 1994 -McBeath, Tom Watchmen 2009 -McBeath, Tom AVPR: Aliens vs Predator - Requiem 2007 -McBeath, Tom Along Came a Spider 2001 -DiAlencar, Elisangela The Game Plan 2007 -DiAlencar, Elisangela Fever Pitch 2005 -DiAlencar, Elisangela Confessions of a Shopaholic 2009 -Frazen, Diane Runaway Bride 1999 -Frazen, Diane The Princess Diaries 2: Royal Engagement 2004 -Frazen, Diane The Princess Diaries 2001 -Schneider, Pilar Deuce Bigalow: Male Gigolo 1999 -Schneider, Pilar The Animal 2001 -Schneider, Pilar The Hot Chick 2002 -Jovovich, Milla Resident Evil: Extinction 2007 -Jovovich, Milla Resident Evil: Afterlife 2010 -Jovovich, Milla Zoolander 2001 -Jovovich, Milla The Fifth Element 1997 -Jovovich, Milla Resident Evil 2002 -Jovovich, Milla Resident Evil: Apocalypse 2004 -Laren, Michael Dracula 1992 -Laren, Michael Mousehunt 1997 -Laren, Michael Angels & Demons 2009 -Laren, Michael The Artist 2011 -Stapleton, Christopher Rumor Has It... 2005 -Stapleton, Christopher Blue Streak 1999 -Stapleton, Christopher The Bucket List 2007 -Carrasco, Carlos (I) 'Crocodile' Dundee II 1988 -Carrasco, Carlos (I) Double Take 2001 -Carrasco, Carlos (I) Speed 1994 -Pidgeon, Jeff A Bug's Life 1998 -Pidgeon, Jeff Toy Story 1995 -Pidgeon, Jeff Toy Story 2 1999 -Pidgeon, Jeff The Incredibles 2004 -Pidgeon, Jeff Up 2009 -Pidgeon, Jeff Toy Story 3 2010 -Pidgeon, Jeff Monsters, Inc. 2001 -Pidgeon, Jeff WALL·E 2008 -Houston, Gary (I) Fargo 1996 -Houston, Gary (I) Watchmen 2009 -Houston, Gary (I) Eagle Eye 2008 -Castle, Jason Yes Man 2008 -Castle, Jason Four Christmases 2008 -Castle, Jason 17 Again 2009 -Castle, Jason G.I. Joe: The Rise of Cobra 2009 -Castle, Jason Fast & Furious 2009 -Long, Anni Phenomenon 1996 -Long, Anni The Lord of the Rings: The Return of the King 2003 -Long, Anni The Game 1997 -Strauss, Sophia The Lincoln Lawyer 2011 -Strauss, Sophia Little Fockers 2010 -Strauss, Sophia Hop 2011 -Maldonado, Chuck Dreamgirls 2006 -Maldonado, Chuck Step Up 2: The Streets 2008 -Maldonado, Chuck Indiana Jones and the Kingdom of the Crystal Skull 2008 -Dwyer, David (I) October Sky 1999 -Dwyer, David (I) Remember the Titans 2000 -Dwyer, David (I) The Firm 1993 -Dwyer, David (I) Runaway Jury 2003 -Dwyer, David (I) We Are Marshall 2006 -Dwyer, David (I) The Blind Side 2009 -Dwyer, David (I) RoboCop 2 1990 -Lough Haggquist, Catherine Paycheck 2003 -Lough Haggquist, Catherine AVPR: Aliens vs Predator - Requiem 2007 -Lough Haggquist, Catherine Scooby Doo 2: Monsters Unleashed 2004 -Lough Haggquist, Catherine TRON: Legacy 2010 -Nascarella, Arthur J. World Trade Center 2006 -Nascarella, Arthur J. Enemy of the State 1998 -Nascarella, Arthur J. Cop Land 1997 -Adler, Matt Ice Age: Dawn of the Dinosaurs 2009 -Adler, Matt The Day After Tomorrow 2004 -Adler, Matt Dinosaur 2000 -Adler, Matt The Peacemaker 1997 -Adler, Matt Final Fantasy: The Spirits Within 2001 -Miles, Scott (II) Remember the Titans 2000 -Miles, Scott (II) October Sky 1999 -Miles, Scott (II) The Patriot 2000 -Dixon, Jonathan (V) Star Trek 2009 -Dixon, Jonathan (V) Mission: Impossible III 2006 -Dixon, Jonathan (V) Super 8 2011 -Findlater, Neil Sherlock Holmes 2009 -Findlater, Neil Harry Potter and the Half-Blood Prince 2009 -Findlater, Neil Sweeney Todd: The Demon Barber of Fleet Street 2007 -Findlater, Neil Harry Potter and the Order of the Phoenix 2007 -Findlater, Neil Robin Hood 2010 -Findlater, Neil Sahara 2005 -Findlater, Neil The Da Vinci Code 2006 -Whalen, Sean (I) Waterworld 1995 -Whalen, Sean (I) The Cable Guy 1996 -Whalen, Sean (I) Twister 1996 -Whalen, Sean (I) Batman Returns 1992 -Whalen, Sean (I) Men in Black 1997 -Whalen, Sean (I) Never Been Kissed 1999 -Whalen, Sean (I) Charlie's Angels 2000 -Allen, Joan (I) The Bourne Supremacy 2004 -Allen, Joan (I) Death Race 2008 -Allen, Joan (I) Face/Off 1997 -Allen, Joan (I) The Notebook 2004 -Allen, Joan (I) The Bourne Ultimatum 2007 -Allen, Joan (I) Pleasantville 1998 -Goethals, Angela Jerry Maguire 1996 -Goethals, Angela Changing Lanes 2002 -Goethals, Angela Home Alone 1990 -Collins, Stephen (I) The First Wives Club 1996 -Collins, Stephen (I) Blood Diamond 2006 -Collins, Stephen (I) The Three Stooges 2012 -Garcia, Jsu Along Came Polly 2004 -Garcia, Jsu Collateral Damage 2002 -Garcia, Jsu We Were Soldiers 2002 -Garcia, Jsu Traffic 2000 -Bullock, Gary RoboCop 2 1990 -Bullock, Gary Holes 2003 -Bullock, Gary Racing Stripes 2005 -Cube, Ice Are We There Yet? 2005 -Cube, Ice Barbershop 2: Back in Business 2004 -Cube, Ice Are We Done Yet? 2007 -Cube, Ice Next Friday 2000 -Cube, Ice Barbershop 2002 -Cube, Ice 21 Jump Street 2012 -Cube, Ice Three Kings 1999 -Cube, Ice Anaconda 1997 -Basinger, Kim 8 Mile 2002 -Basinger, Kim Batman 1989 -Basinger, Kim Cellular 2004 -Basinger, Kim L.A. Confidential 1997 -Basinger, Kim Never Say Never Again 1983 -Basinger, Kim The Natural 1984 -Flaherty, Lanny Men in Black 3 2012 -Flaherty, Lanny Signs 2002 -Flaherty, Lanny Waterworld 1995 -Gray, Bruce (I) Starship Troopers 1997 -Gray, Bruce (I) Monster-in-Law 2005 -Gray, Bruce (I) My Big Fat Greek Wedding 2002 -Gray, Bruce (I) Evan Almighty 2007 -Gray, Bruce (I) S.W.A.T. 2003 -Gray, Bruce (I) The Peacemaker 1997 -Gray, Bruce (I) Water for Elephants 2011 -Short, John (I) Ransom 1996 -Short, John (I) Christmas with the Kranks 2004 -Short, John (I) Apollo 13 1995 -Short, John (I) How the Grinch Stole Christmas 2000 -Walters, Melora Matchstick Men 2003 -Walters, Melora Eraser 1996 -Walters, Melora The Butterfly Effect 2004 -Walters, Melora Cold Mountain 2003 -Walters, Melora Dead Poets Society 1989 -Walters, Melora Magnolia 1999 -Walters, Melora Boogie Nights 1997 -Fisher, Thomas (IV) Van Helsing 2004 -Fisher, Thomas (IV) The Illusionist 2006 -Fisher, Thomas (IV) Shanghai Knights 2003 -Fisher, Thomas (IV) The Mummy Returns 2001 -Serbulo, Mayra Apocalypto 2006 -Serbulo, Mayra Beverly Hills Chihuahua 2008 -Serbulo, Mayra The Mexican 2001 -Heathcote, Martin The Queen 2006 -Heathcote, Martin United 93 2006 -Heathcote, Martin The Da Vinci Code 2006 -Liufau, Sidney S. You, Me and Dupree 2006 -Liufau, Sidney S. Blade 1998 -Liufau, Sidney S. Batman Forever 1995 -Calderon, Paul (I) Pulp Fiction 1994 -Calderon, Paul (I) The Firm 1993 -Calderon, Paul (I) Cop Land 1997 -Sheen, Michael The Twilight Saga: Breaking Dawn - Part 1 2011 -Sheen, Michael The Queen 2006 -Sheen, Michael Underworld: Rise of the Lycans 2009 -Sheen, Michael Underworld 2003 -Sheen, Michael TRON: Legacy 2010 -Sheen, Michael Gladiator 2000 -Sheen, Michael Midnight in Paris 2011 -Sheen, Michael Alice in Wonderland 2010 -Sheen, Michael Underworld: Evolution 2006 -Sheen, Michael New Moon 2009 -Sheen, Michael Kingdom of Heaven 2005 -Sheen, Michael Blood Diamond 2006 -Tyler, Aisha The Santa Clause 3: The Escape Clause 2006 -Tyler, Aisha The Santa Clause 2 2002 -Tyler, Aisha Bedtime Stories 2008 -Margiotta, Tom Salt 2010 -Margiotta, Tom Sex and the City 2 2010 -Margiotta, Tom The Taking of Pelham 1 2 3 2009 -Margiotta, Tom Men in Black 3 2012 -Brainard, Cam Face/Off 1997 -Brainard, Cam Clear and Present Danger 1994 -Brainard, Cam The Net 1995 -Williams, Michael Anthony Rocky V 1990 -Williams, Michael Anthony The Replacements 2000 -Williams, Michael Anthony The Brave One 2007 -Otto, Miranda What Lies Beneath 2000 -Otto, Miranda The Lord of the Rings: The Return of the King 2003 -Otto, Miranda The Lord of the Rings: The Two Towers 2002 -Otto, Miranda The Thin Red Line 1998 -Truman, Jack Ali 2001 -Truman, Jack The Animal 2001 -Truman, Jack Pearl Harbor 2001 -Gleason, Joanna (I) Sex and the City 2008 -Gleason, Joanna (I) Hannah and Her Sisters 1986 -Gleason, Joanna (I) Boogie Nights 1997 -Gleason, Joanna (I) The Wedding Planner 2001 -Cambridge, Janelle American Gangster 2007 -Cambridge, Janelle Step Up 2: The Streets 2008 -Cambridge, Janelle Step Up 3D 2010 -Neilson, Phil Hannibal 2001 -Neilson, Phil Battleship 2012 -Neilson, Phil G.I. Jane 1997 -Emerson, Michael (I) The Legend of Zorro 2005 -Emerson, Michael (I) Unfaithful 2002 -Emerson, Michael (I) Saw 2004 -Crenna, Richard Rambo III 1988 -Crenna, Richard Rambo: First Blood Part II 1985 -Crenna, Richard First Blood 1982 -Henry, Guy (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Henry, Guy (I) V for Vendetta 2005 -Henry, Guy (I) Harry Potter and the Deathly Hallows: Part 2 2011 -McClanahan, Jaayda The Longest Yard 2005 -McClanahan, Jaayda Miss Congeniality 2: Armed and Fabulous 2005 -McClanahan, Jaayda Rush Hour 3 2007 -Welch, Michael (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Welch, Michael (I) New Moon 2009 -Welch, Michael (I) Star Trek: Insurrection 1998 -Welch, Michael (I) The Twilight Saga: Eclipse 2010 -Ellis, Greg (II) Pirates of the Caribbean: At World's End 2007 -Ellis, Greg (II) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Ellis, Greg (II) The Da Vinci Code 2006 -Ellis, Greg (II) Titanic 1997 -Ellis, Greg (II) Shark Tale 2004 -Ellis, Greg (II) Beowulf 2007 -Ellis, Greg (II) The Chronicles of Narnia: Prince Caspian 2008 -Ellis, Greg (II) Garfield: A Tail of Two Kitties 2006 -Ellis, Greg (II) Star Trek 2009 -Ellis, Greg (II) Mr. & Mrs. Smith 2005 -Ellis, Greg (II) Cars 2006 -Ellis, Greg (II) Clash of the Titans 2010 -Ellis, Greg (II) Pirates of the Caribbean: On Stranger Tides 2011 -Hackford, Rio Deja Vu 2006 -Hackford, Rio Fred Claus 2007 -Hackford, Rio Raising Helen 2004 -Sheen, Martin Apocalypse Now 1979 -Sheen, Martin Catch Me If You Can 2002 -Sheen, Martin Wall Street 1987 -Sheen, Martin Gandhi 1982 -Sheen, Martin The Amazing Spider-Man 2012 -Sheen, Martin The Departed 2006 -Sheen, Martin Spawn 1997 -Sheen, Martin JFK 1991 -Paetkau, David Snow Day 2000 -Paetkau, David AVPR: Aliens vs Predator - Requiem 2007 -Paetkau, David Final Destination 2 2003 -Palermo, Chris (I) Artificial Intelligence: AI 2001 -Palermo, Chris (I) The Perfect Storm 2000 -Palermo, Chris (I) Live Free or Die Hard 2007 -Maynard, Brian (I) Rules of Engagement 2000 -Maynard, Brian (I) Windtalkers 2002 -Maynard, Brian (I) Saving Private Ryan 1998 -Cheung, George Lethal Weapon 4 1998 -Cheung, George Mission: Impossible III 2006 -Cheung, George Starsky & Hutch 2004 -Cheung, George Pirates of the Caribbean: At World's End 2007 -Cheung, George Rambo: First Blood Part II 1985 -Cheung, George Austin Powers: The Spy Who Shagged Me 1999 -Cheung, George We Were Soldiers 2002 -Cheung, George Rush Hour 1998 -Cheung, George RoboCop 2 1990 -Cheung, George The Pursuit of Happyness 2006 -Arterton, Gemma Quantum of Solace 2008 -Arterton, Gemma Prince of Persia: The Sands of Time 2010 -Arterton, Gemma Clash of the Titans 2010 -Massof, Bill Bad Company 2002 -Massof, Bill The Bourne Ultimatum 2007 -Massof, Bill Burn After Reading 2008 -Calloway, Vanessa Bell Daylight 1996 -Calloway, Vanessa Bell Cheaper by the Dozen 2003 -Calloway, Vanessa Bell Coming to America 1988 -Bassett, Angela This Means War 2012 -Bassett, Angela Meet the Robinsons 2007 -Bassett, Angela The Score 2001 -Bassett, Angela Malcolm X 1992 -Bassett, Angela Green Lantern 2011 -Bassett, Angela How Stella Got Her Groove Back 1998 -Bassett, Angela Contact 1997 -Bassett, Angela Mr. & Mrs. Smith 2005 -Dupree, Monique Gata Step Up 3D 2010 -Dupree, Monique Gata American Gangster 2007 -Dupree, Monique Gata The Replacements 2000 -Bock, Rainer War Horse 2011 -Bock, Rainer Unknown 2011 -Bock, Rainer Inglourious Basterds 2009 -Silpa, Mitch Along Came Polly 2004 -Silpa, Mitch The Master of Disguise 2002 -Silpa, Mitch Bridesmaids 2011 -Kusatsu, Clyde Godzilla 1998 -Kusatsu, Clyde In the Line of Fire 1993 -Kusatsu, Clyde Rumor Has It... 2005 -Kusatsu, Clyde The Interpreter 2005 -Kusatsu, Clyde American Pie 1999 -Kusatsu, Clyde Recess: School's Out 2001 -Kusatsu, Clyde Dr. Dolittle 2 2001 -Kusatsu, Clyde Spider-Man 3 2007 -Ronan, Saoirse Hanna 2011 -Ronan, Saoirse Kari-gurashi no Arietti 2010 -Ronan, Saoirse Atonement 2007 -Sontag, Larry Ocean's Eleven 2001 -Sontag, Larry Ocean's Twelve 2004 -Sontag, Larry Jack and Jill 2011 -Ferrell, Conchata Mr. Deeds 2002 -Ferrell, Conchata Erin Brockovich 2000 -Ferrell, Conchata K-PAX 2001 -Pattinson, Robert (I) Harry Potter and the Goblet of Fire 2005 -Pattinson, Robert (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Pattinson, Robert (I) New Moon 2009 -Pattinson, Robert (I) Harry Potter and the Order of the Phoenix 2007 -Pattinson, Robert (I) The Twilight Saga: Eclipse 2010 -Pattinson, Robert (I) Water for Elephants 2011 -von Huene, Walter Jingle All the Way 1996 -von Huene, Walter Apollo 13 1995 -von Huene, Walter End of Days 1999 -von Huene, Walter Terminator 3: Rise of the Machines 2003 -von Huene, Walter The 6th Day 2000 -Neal, Elise Scream 2 1997 -Neal, Elise Mission to Mars 2000 -Neal, Elise Malcolm X 1992 -Neal, Elise Money Talks 1997 -Hundley, Chad We Are Marshall 2006 -Hundley, Chad Talladega Nights: The Ballad of Ricky Bobby 2006 -Hundley, Chad National Treasure: Book of Secrets 2007 -Hundley, Chad The Dukes of Hazzard 2005 -Hundley, Chad Secretariat 2010 -Bailie, David (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Bailie, David (I) Pirates of the Caribbean: At World's End 2007 -Bailie, David (I) Gladiator 2000 -Bailie, David (I) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Bierko, Craig The Three Stooges 2012 -Bierko, Craig Cinderella Man 2005 -Bierko, Craig Superhero Movie 2008 -Bierko, Craig The Long Kiss Goodnight 1996 -Bierko, Craig Scary Movie 4 2006 -McElhone, Natascha The Truman Show 1998 -McElhone, Natascha Ronin 1998 -McElhone, Natascha The Devil's Own 1997 -Rudolph, Maya (I) 50 First Dates 2004 -Rudolph, Maya (I) Grown Ups 2010 -Rudolph, Maya (I) Shrek the Third 2007 -Rudolph, Maya (I) As Good as It Gets 1997 -Rudolph, Maya (I) Zookeeper 2011 -Rudolph, Maya (I) Bridesmaids 2011 -Wilson, Reno (I) Transformers: Revenge of the Fallen 2009 -Wilson, Reno (I) Mighty Joe Young 1998 -Wilson, Reno (I) Transformers: Dark of the Moon 2011 -Wilson, Reno (I) Transformers 2007 -Atherton, William Die Hard 2 1990 -Atherton, William The Last Samurai 2003 -Atherton, William Die Hard 1988 -Atherton, William Ghost Busters 1984 -Esposito, Jennifer Don't Say a Word 2001 -Esposito, Jennifer I Still Know What You Did Last Summer 1998 -Esposito, Jennifer The Master of Disguise 2002 -Jane, Thomas The Mist 2007 -Jane, Thomas Magnolia 1999 -Jane, Thomas Face/Off 1997 -Jane, Thomas Dreamcatcher 2003 -Jane, Thomas Deep Blue Sea 1999 -Jane, Thomas The Thin Red Line 1998 -Jane, Thomas Boogie Nights 1997 -Blucas, Marc We Were Soldiers 2002 -Blucas, Marc House on Haunted Hill 1999 -Blucas, Marc Pleasantville 1998 -Blucas, Marc Knight and Day 2010 -McGarry, Mary Anne Red Dragon 2002 -McGarry, Mary Anne Rumor Has It... 2005 -McGarry, Mary Anne Must Love Dogs 2005 -Deutsch, Patti Monsters, Inc. 2001 -Deutsch, Patti The Emperor's New Groove 2000 -Deutsch, Patti Tarzan 1999 -Conroy, Frances Maid in Manhattan 2002 -Conroy, Frances The Aviator 2004 -Conroy, Frances The Tale of Despereaux 2008 -Conroy, Frances Sleepless in Seattle 1993 -Conroy, Frances Catwoman 2004 -Poésy, Clémence Harry Potter and the Goblet of Fire 2005 -Poésy, Clémence Harry Potter and the Deathly Hallows: Part 1 2010 -Poésy, Clémence Harry Potter and the Deathly Hallows: Part 2 2011 -Del Dotto, Lisa The Rookie 2002 -Del Dotto, Lisa Miss Congeniality 2000 -Del Dotto, Lisa Where the Heart Is 2000 -Leva, Scott X-Men 2000 -Leva, Scott Changeling 2008 -Leva, Scott Red Eye 2005 -Carroll, Larry (I) Clockstoppers 2002 -Carroll, Larry (I) Volcano 1997 -Carroll, Larry (I) Beverly Hills Cop II 1987 -Brown, Whitney (III) Hairspray 2007 -Brown, Whitney (III) Step Up 2006 -Brown, Whitney (III) Footloose 2011 -Tilney, Rebecca The Social Network 2010 -Tilney, Rebecca Terminator 3: Rise of the Machines 2003 -Tilney, Rebecca Domestic Disturbance 2001 -Tilney, Rebecca U-571 2000 -Mahon, Sean Mr. & Mrs. Smith 2005 -Mahon, Sean Eragon 2006 -Mahon, Sean Hulk 2003 -Cummings, Jim (I) Pocahontas 1995 -Cummings, Jim (I) Pirates of the Caribbean: At World's End 2007 -Cummings, Jim (I) The Little Mermaid 1989 -Cummings, Jim (I) Bee Movie 2007 -Cummings, Jim (I) The Tigger Movie 2000 -Cummings, Jim (I) The Lion King 1994 -Cummings, Jim (I) The Jungle Book 2 2003 -Cummings, Jim (I) Small Soldiers 1998 -Cummings, Jim (I) Tarzan 1999 -Cummings, Jim (I) The Road to El Dorado 2000 -Cummings, Jim (I) Return to Never Land 2002 -Cummings, Jim (I) Winnie the Pooh 2011 -Cummings, Jim (I) Hercules 1997 -Cummings, Jim (I) Anastasia 1997 -Cummings, Jim (I) Antz 1998 -Cummings, Jim (I) The Hunchback of Notre Dame 1996 -Cummings, Jim (I) The Golden Compass 2007 -Cummings, Jim (I) Who Framed Roger Rabbit 1988 -Cummings, Jim (I) The Princess and the Frog 2009 -Cummings, Jim (I) Shrek 2001 -Cummings, Jim (I) Atlantis: The Lost Empire 2001 -Cummings, Jim (I) Gnomeo & Juliet 2011 -Cummings, Jim (I) Aladdin 1992 -Cummings, Jim (I) Jimmy Neutron: Boy Genius 2001 -Cummings, Jim (I) TMNT 2007 -Cummings, Jim (I) Babe: Pig in the City 1998 -Walters, Bill (IV) Cop Out 2010 -Walters, Bill (IV) Enchanted 2007 -Walters, Bill (IV) The Taking of Pelham 1 2 3 2009 -Walters, Bill (IV) Two Weeks Notice 2002 -Ortega, Roxana (II) Larry Crowne 2011 -Ortega, Roxana (II) G-Force 2009 -Ortega, Roxana (II) Evan Almighty 2007 -Ortega, Roxana (II) Miss Congeniality 2: Armed and Fabulous 2005 -Weireter, Peter Salt 2010 -Weireter, Peter Bandits 2001 -Weireter, Peter Fun with Dick and Jane 2005 -Weireter, Peter The General's Daughter 1999 -Weireter, Peter Clear and Present Danger 1994 -Weireter, Peter Cellular 2004 -Weireter, Peter Hostage 2005 -Weireter, Peter Get Smart 2008 -Cormier, Sean Paul The Game Plan 2007 -Cormier, Sean Paul 21 2008 -Cormier, Sean Paul The Departed 2006 -Oliver, James (I) Lethal Weapon 4 1998 -Oliver, James (I) Lethal Weapon 2 1989 -Oliver, James (I) Lethal Weapon 3 1992 -Oliver, James (I) Conspiracy Theory 1997 -Anderson, Timothy (II) Johnson Family Vacation 2004 -Anderson, Timothy (II) Austin Powers in Goldmember 2002 -Anderson, Timothy (II) Starsky & Hutch 2004 -Anderson, Timothy (II) 13 Going on 30 2004 -Hines, Damon Lethal Weapon 2 1989 -Hines, Damon Lethal Weapon 4 1998 -Hines, Damon Lethal Weapon 3 1992 -Marino, Carl Funny People 2009 -Marino, Carl Contagion 2011 -Marino, Carl Hereafter 2010 -Weiner, Ken (II) The Terminal 2004 -Weiner, Ken (II) Cellular 2004 -Weiner, Ken (II) Showtime 2002 -Weiner, Ken (II) The Princess Diaries 2: Royal Engagement 2004 -Adams, Joey Lauren Dr. Dolittle 2 2001 -Adams, Joey Lauren Michael 1996 -Adams, Joey Lauren The Break-Up 2006 -Adams, Joey Lauren Big Daddy 1999 -Bahris, Fileena Battleship 2012 -Bahris, Fileena Hereafter 2010 -Bahris, Fileena Jack and Jill 2011 -Bahris, Fileena Just Go with It 2011 -Bahris, Fileena The Descendants 2011 -Bahris, Fileena J. Edgar 2011 -Bahris, Fileena Indiana Jones and the Kingdom of the Crystal Skull 2008 -Bahris, Fileena A Beautiful Mind 2001 -Galustyan, Mikhail Rzhevskiy protiv Napoleona 2012 -Galustyan, Mikhail Gitler kaput! 2008 -Galustyan, Mikhail Samyy luchshiy film 2008 -Coppola, Trevor Matilda 1996 -Coppola, Trevor 3:10 to Yuma 2007 -Coppola, Trevor Watchmen 2009 -Coppola, Trevor District 9 2009 -Coppola, Trevor Heat 1995 -Burdon, Catherine Frequency 2000 -Burdon, Catherine Resident Evil: Apocalypse 2004 -Burdon, Catherine The Pacifier 2005 -Reilly, Corinne Made of Honor 2008 -Reilly, Corinne 28 Days 2000 -Reilly, Corinne American Wedding 2003 -Reilly, Corinne Legally Blonde 2001 -Dorsey, Kerris Walk the Line 2005 -Dorsey, Kerris Moneyball 2011 -Dorsey, Kerris Just Like Heaven 2005 -Huffman, Felicity Magnolia 1999 -Huffman, Felicity Christmas with the Kranks 2004 -Huffman, Felicity Raising Helen 2004 -Quan, Dionne Rugrats Go Wild 2003 -Quan, Dionne Pirates of the Caribbean: At World's End 2007 -Quan, Dionne Rugrats in Paris: The Movie - Rugrats II 2000 -Brasseaux, Beau Battleship 2012 -Brasseaux, Beau Battle Los Angeles 2011 -Brasseaux, Beau 21 Jump Street 2012 -Purvis, Jon Failure to Launch 2006 -Purvis, Jon The Dukes of Hazzard 2005 -Purvis, Jon Big Momma's House 2 2006 -Arquette, Patricia Little Nicky 2000 -Arquette, Patricia Holes 2003 -Arquette, Patricia A Nightmare on Elm Street 3: Dream Warriors 1987 -Arquette, Patricia Stigmata 1999 -von Sydow, Max (I) Shutter Island 2010 -von Sydow, Max (I) The Wolfman 2010 -von Sydow, Max (I) The Exorcist 1973 -von Sydow, Max (I) Hannah and Her Sisters 1986 -von Sydow, Max (I) Minority Report 2002 -von Sydow, Max (I) Robin Hood 2010 -von Sydow, Max (I) What Dreams May Come 1998 -von Sydow, Max (I) Never Say Never Again 1983 -von Sydow, Max (I) Rush Hour 3 2007 -Bellamy, Ralph Coming to America 1988 -Bellamy, Ralph Pretty Woman 1990 -Bellamy, Ralph Trading Places 1983 -Cheng, Andy (II) Rush Hour 2 2001 -Cheng, Andy (II) The Master of Disguise 2002 -Cheng, Andy (II) Rush Hour 1998 -Armas, Adrian Starsky & Hutch 2004 -Armas, Adrian The Curious Case of Benjamin Button 2008 -Armas, Adrian The Master of Disguise 2002 -Armas, Adrian 13 Going on 30 2004 -Nordquist, Tim Ice Age: Dawn of the Dinosaurs 2009 -Nordquist, Tim Robots 2005 -Nordquist, Tim Rio 2011 -Nordquist, Tim Horton Hears a Who! 2008 -Evans, Ruby (II) Harry Potter and the Deathly Hallows: Part 1 2010 -Evans, Ruby (II) Harry Potter and the Deathly Hallows: Part 2 2011 -Evans, Ruby (II) Harry Potter and the Half-Blood Prince 2009 -Smith, Roger Craig Terminator Salvation 2009 -Smith, Roger Craig G.I. Joe: The Rise of Cobra 2009 -Smith, Roger Craig Alice in Wonderland 2010 -Thomas, Chris D. Public Enemies 2009 -Thomas, Chris D. Couples Retreat 2009 -Thomas, Chris D. Contagion 2011 -Martin, Sandy (I) Speed 1994 -Martin, Sandy (I) Marley & Me 2008 -Martin, Sandy (I) Napoleon Dynamite 2004 -Fontaine, Frank (II) The Day After Tomorrow 2004 -Fontaine, Frank (II) The Sum of All Fears 2002 -Fontaine, Frank (II) The Bone Collector 1999 -Fontaine, Frank (II) Journey to the Center of the Earth 2008 -Eigenberg, David (I) A Perfect Murder 1998 -Eigenberg, David (I) Sex and the City 2008 -Eigenberg, David (I) Sex and the City 2 2010 -Eigenberg, David (I) Garfield 2004 -Rodgers, Mic The Shaggy Dog 2006 -Rodgers, Mic Lethal Weapon 3 1992 -Rodgers, Mic Deep Impact 1998 -Walker, Kerry Moulin Rouge! 2001 -Walker, Kerry Australia 2008 -Walker, Kerry Babe 1995 -Walker, Kerry Peter Pan 2003 -Krutonog, Boris Lee The Italian Job 2003 -Krutonog, Boris Lee Air Force One 1997 -Krutonog, Boris Lee The Hunt for Red October 1990 -Maines, Steven The Negotiator 1998 -Maines, Steven Volcano 1997 -Maines, Steven I Am Sam 2001 -Lane, Diane (I) Unfaithful 2002 -Lane, Diane (I) Secretariat 2010 -Lane, Diane (I) Under the Tuscan Sun 2003 -Lane, Diane (I) My Dog Skip 2000 -Lane, Diane (I) Jumper 2008 -Lane, Diane (I) Must Love Dogs 2005 -Lane, Diane (I) Nights in Rodanthe 2008 -Lane, Diane (I) Jack 1996 -Lane, Diane (I) The Perfect Storm 2000 -Lane, Diane (I) Hard Ball 2001 -Cavanaugh, Christine Jerry Maguire 1996 -Cavanaugh, Christine Rugrats in Paris: The Movie - Rugrats II 2000 -Cavanaugh, Christine Babe 1995 -Cavanaugh, Christine The Rugrats Movie 1998 -Bell, Nicholas (I) Charlotte's Web 2006 -Bell, Nicholas (I) Mission: Impossible II 2000 -Bell, Nicholas (I) Shine 1996 -Sparks, Hal Dude, Where's My Car? 2000 -Sparks, Hal Spider-Man 2 2004 -Sparks, Hal Dr. Dolittle 2 2001 -Bjelac, Predrag Harry Potter and the Goblet of Fire 2005 -Bjelac, Predrag The Chronicles of Narnia: Prince Caspian 2008 -Bjelac, Predrag The Omen 2006 -Peterson, Bob (III) Cars 2006 -Peterson, Bob (III) The Incredibles 2004 -Peterson, Bob (III) Toy Story 3 2010 -Peterson, Bob (III) Finding Nemo 2003 -Peterson, Bob (III) Up 2009 -Peterson, Bob (III) Monsters, Inc. 2001 -Goddard, Trevor Gone in Sixty Seconds 2000 -Goddard, Trevor Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Goddard, Trevor Mortal Kombat 1995 -Haley, Jackie Earle Shutter Island 2010 -Haley, Jackie Earle Watchmen 2009 -Haley, Jackie Earle A Nightmare on Elm Street 2010 -Foster, Rich (IV) The Game Plan 2007 -Foster, Rich (IV) The Town 2010 -Foster, Rich (IV) The Fighter 2010 -Alicino, Veronica Made of Honor 2008 -Alicino, Veronica Garfield: A Tail of Two Kitties 2006 -Alicino, Veronica Lethal Weapon 3 1992 -Alicino, Veronica Hop 2011 -Alicino, Veronica Alvin and the Chipmunks 2007 -Stahl, Nick Sin City 2005 -Stahl, Nick In the Bedroom 2001 -Stahl, Nick The Thin Red Line 1998 -Stahl, Nick Terminator 3: Rise of the Machines 2003 -Ontiveros, Lupe The Goonies 1985 -Ontiveros, Lupe Universal Soldier 1992 -Ontiveros, Lupe Selena 1997 -Ontiveros, Lupe As Good as It Gets 1997 -Cooper, Chuck (I) American Gangster 2007 -Cooper, Chuck (I) Malcolm X 1992 -Cooper, Chuck (I) The Hurricane 1999 -Cooper, Chuck (I) The Peacemaker 1997 -Jean-Baptiste, Marianne The Cell 2000 -Jean-Baptiste, Marianne 28 Days 2000 -Jean-Baptiste, Marianne Spy Game 2001 -Jean-Baptiste, Marianne Takers 2010 -LaValley, Dustin Salt 2010 -LaValley, Dustin The Happening 2008 -LaValley, Dustin The Time Machine 2002 -LaValley, Dustin Vanilla Sky 2001 -LaValley, Dustin I Am Legend 2007 -LaValley, Dustin The Day the Earth Stood Still 2008 -LaValley, Dustin The Other Guys 2010 -Becker, Gerry Home Alone 1990 -Becker, Gerry Eraser 1996 -Becker, Gerry Mickey Blue Eyes 1999 -Becker, Gerry The Game 1997 -Becker, Gerry The Cell 2000 -Becker, Gerry Spider-Man 2002 -Becker, Gerry Sleepers 1996 -Becker, Gerry Donnie Brasco 1997 -Becker, Gerry A Perfect Murder 1998 -Becker, Gerry Die Hard: With a Vengeance 1995 -Mussett, Tory The Matrix Reloaded 2003 -Mussett, Tory Mission: Impossible II 2000 -Mussett, Tory Peter Pan 2003 -Devon, Tony Analyze This 1999 -Devon, Tony Step Up 2006 -Devon, Tony Keeping the Faith 2000 -Lew Tugend, Jennie The Goonies 1985 -Lew Tugend, Jennie Return to Me 2000 -Lew Tugend, Jennie Lethal Weapon 4 1998 -Nayyar, Harsh Men in Black 1997 -Nayyar, Harsh The First Wives Club 1996 -Nayyar, Harsh Gandhi 1982 -Nayyar, Harsh Beavis and Butt-Head Do America 1996 -Nayyar, Harsh The Peacemaker 1997 -Nayyar, Harsh 28 Days 2000 -Nayyar, Harsh The Devil's Advocate 1997 -Nayyar, Harsh Traffic 2000 -Nayyar, Harsh Hidalgo 2004 -Nayyar, Harsh The Preacher's Wife 1996 -Kennedy, JoNell Dreamgirls 2006 -Kennedy, JoNell Guess Who 2005 -Kennedy, JoNell Collateral 2004 -Dugan, Dennis (I) I Now Pronounce You Chuck & Larry 2007 -Dugan, Dennis (I) Jack and Jill 2011 -Dugan, Dennis (I) Grown Ups 2010 -Dugan, Dennis (I) Big Daddy 1999 -Dugan, Dennis (I) You Don't Mess with the Zohan 2008 -Barry, Thom Rules of Engagement 2000 -Barry, Thom 2 Fast 2 Furious 2003 -Barry, Thom The Fast and the Furious 2001 -Barry, Thom Air Force One 1997 -Barry, Thom Space Jam 1996 -Barry, Thom Congo 1995 -Barry, Thom Apollo 13 1995 -Barry, Thom Independence Day 1996 -Keaton, Josh Hercules 1997 -Keaton, Josh Terminator Salvation 2009 -Keaton, Josh Cloudy with a Chance of Meatballs 2009 -Keaton, Josh The Wild 2006 -Keaton, Josh Spider-Man 2 2004 -Keaton, Josh Spider-Man 3 2007 -Keaton, Josh Spider-Man 2002 -Butcher, Paul Meet the Robinsons 2007 -Butcher, Paul Over the Hedge 2006 -Butcher, Paul Barnyard 2006 -Butcher, Paul Ice Age: The Meltdown 2006 -Walsh, M. Emmet Snow Dogs 2002 -Walsh, M. Emmet Romeo + Juliet 1996 -Walsh, M. Emmet Wild Wild West 1999 -Walsh, M. Emmet My Best Friend's Wedding 1997 -Walsh, M. Emmet Christmas with the Kranks 2004 -Walsh, M. Emmet Racing Stripes 2005 -Walsh, M. Emmet A Time to Kill 1996 -Lazarev, Evgeniy Turetskiy gambit 2005 -Lazarev, Evgeniy The Saint 1997 -Lazarev, Evgeniy The Sum of All Fears 2002 -Lazarev, Evgeniy Iron Man 2 2010 -Kain, Rick (I) Hannibal 2001 -Kain, Rick (I) The Sum of All Fears 2002 -Kain, Rick (I) Along Came a Spider 2001 -Kain, Rick (I) Minority Report 2002 -Kain, Rick (I) Ladder 49 2004 -Kain, Rick (I) Unbreakable 2000 -Kain, Rick (I) Ocean's Eleven 2001 -Kain, Rick (I) In Her Shoes 2005 -Kain, Rick (I) The Core 2003 -Kain, Rick (I) The Recruit 2003 -Garcia, Eddie (III) Percy Jackson & the Olympians: The Lightning Thief 2010 -Garcia, Eddie (III) Bringing Down the House 2003 -Garcia, Eddie (III) Boogie Nights 1997 -Browning, Chris (I) The Book of Eli 2010 -Browning, Chris (I) Cowboys & Aliens 2011 -Browning, Chris (I) 3:10 to Yuma 2007 -Browning, Chris (I) Terminator Salvation 2009 -Wiig, Kristen Ice Age: Dawn of the Dinosaurs 2009 -Wiig, Kristen Knocked Up 2007 -Wiig, Kristen Date Night 2010 -Wiig, Kristen Forgetting Sarah Marshall 2008 -Wiig, Kristen Bridesmaids 2011 -Wiig, Kristen How to Train Your Dragon 2010 -Wiig, Kristen Despicable Me 2010 -Joyner, Mario Bee Movie 2007 -Joyner, Mario Down to Earth 2001 -Joyner, Mario Just Go with It 2011 -Griego, Penny Enemy of the State 1998 -Griego, Penny Collateral Damage 2002 -Griego, Penny Volcano 1997 -Mac, Bernie Ocean's Thirteen 2007 -Mac, Bernie Madagascar: Escape 2 Africa 2008 -Mac, Bernie Ocean's Eleven 2001 -Mac, Bernie Ocean's Twelve 2004 -Mac, Bernie Bad Santa 2003 -Mac, Bernie Guess Who 2005 -Mac, Bernie Charlie's Angels: Full Throttle 2003 -Mac, Bernie Transformers 2007 -Broadbent, Jim Bridget Jones's Diary 2001 -Broadbent, Jim Robots 2005 -Broadbent, Jim Around the World in 80 Days 2004 -Broadbent, Jim The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Broadbent, Jim Moulin Rouge! 2001 -Broadbent, Jim Gangs of New York 2002 -Broadbent, Jim Indiana Jones and the Kingdom of the Crystal Skull 2008 -Broadbent, Jim Bridget Jones: The Edge of Reason 2004 -Broadbent, Jim Harry Potter and the Half-Blood Prince 2009 -Broadbent, Jim Harry Potter and the Deathly Hallows: Part 2 2011 -Dapkunaite, Ingeborga Hannibal Rising 2007 -Dapkunaite, Ingeborga Seven Years in Tibet 1997 -Dapkunaite, Ingeborga Mission: Impossible 1996 -Willes, Natalie Chicago 2002 -Willes, Natalie 13 Going on 30 2004 -Willes, Natalie Austin Powers: The Spy Who Shagged Me 1999 -Willes, Natalie Starsky & Hutch 2004 -Krumholtz, David (I) Mr. Popper's Penguins 2011 -Krumholtz, David (I) Superbad 2007 -Krumholtz, David (I) The Santa Clause 1994 -Krumholtz, David (I) 10 Things I Hate About You 1999 -Krumholtz, David (I) The Santa Clause 2 2002 -Krumholtz, David (I) I Love You, Man 2009 -Krumholtz, David (I) The Mexican 2001 -Krumholtz, David (I) Guess Who 2005 -Hausserman, Mischa Eraser 1996 -Hausserman, Mischa The Thomas Crown Affair 1999 -Hausserman, Mischa Die Hard: With a Vengeance 1995 -Hausserman, Mischa The 13th Warrior 1999 -Stewart, Malcolm (I) Jumanji 1995 -Stewart, Malcolm (I) Timecop 1994 -Stewart, Malcolm (I) Eight Below 2006 -Stewart, Malcolm (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Stewart, Malcolm (I) Miracle 2004 -Loren, Nick Hairspray 2007 -Loren, Nick Wild Hogs 2007 -Loren, Nick Swordfish 2001 -Loren, Nick Ladder 49 2004 -Loren, Nick Domestic Disturbance 2001 -Loren, Nick The Taking of Pelham 1 2 3 2009 -Ford, Erica (I) Step Up 3D 2010 -Ford, Erica (I) Superbad 2007 -Ford, Erica (I) Minority Report 2002 -Emerick, Gerald Pleasantville 1998 -Emerick, Gerald Being John Malkovich 1999 -Emerick, Gerald Space Cowboys 2000 -O'Neill, Robert (I) Twelve Monkeys 1995 -O'Neill, Robert (I) Ladder 49 2004 -O'Neill, Robert (I) Superman 1978 -Murray, Bill (I) Michael Jordan to the Max 2000 -Murray, Bill (I) Ghost Busters 1984 -Murray, Bill (I) The Royal Tenenbaums 2001 -Murray, Bill (I) Groundhog Day 1993 -Murray, Bill (I) Zombieland 2009 -Murray, Bill (I) Charlie's Angels 2000 -Murray, Bill (I) Tootsie 1982 -Murray, Bill (I) Garfield: A Tail of Two Kitties 2006 -Murray, Bill (I) Get Smart 2008 -Murray, Bill (I) Stripes 1981 -Murray, Bill (I) Garfield 2004 -Murray, Bill (I) Space Jam 1996 -Murray, Bill (I) Lost in Translation 2003 -Ryan, Eric (XI) Paul Blart: Mall Cop 2009 -Ryan, Eric (XI) The Town 2010 -Ryan, Eric (XI) The Fighter 2010 -López, Irene Olga Indecent Proposal 1993 -López, Irene Olga Basic Instinct 1992 -López, Irene Olga Erin Brockovich 2000 -Tuione, Tyler Just Go with It 2011 -Tuione, Tyler Ocean's Thirteen 2007 -Tuione, Tyler Pirates of the Caribbean: At World's End 2007 -Bibb, Leslie Law Abiding Citizen 2009 -Bibb, Leslie Iron Man 2 2010 -Bibb, Leslie Confessions of a Shopaholic 2009 -Bibb, Leslie Talladega Nights: The Ballad of Ricky Bobby 2006 -Bibb, Leslie Zookeeper 2011 -Buckley, Andy (II) Bridesmaids 2011 -Buckley, Andy (II) Life as We Know It 2010 -Buckley, Andy (II) The Other Guys 2010 -Buckley, Andy (II) Alvin and the Chipmunks: Chipwrecked 2011 -Lynskey, Melanie EverAfter 1998 -Lynskey, Melanie Coyote Ugly 2000 -Lynskey, Melanie Sweet Home Alabama 2002 -Cox, Courteney The Longest Yard 2005 -Cox, Courteney Scream 3 2000 -Cox, Courteney Barnyard 2006 -Cox, Courteney Bedtime Stories 2008 -Cox, Courteney Scream 4 2011 -Cox, Courteney Scream 1996 -Cox, Courteney Scream 2 1997 -Holden, Beau The Rookie 2002 -Holden, Beau The Fast and the Furious 2001 -Holden, Beau Traffic 2000 -Holden, Beau The Parent Trap 1998 -Holden, Beau Yours, Mine and Ours 2005 -Holden, Beau Any Given Sunday 1999 -Babson, James The League of Extraordinary Gentlemen 2003 -Babson, James Hellboy 2004 -Babson, James The Illusionist 2006 -Babson, James xXx 2002 -Hart, Linda (I) Showtime 2002 -Hart, Linda (I) The Insider 1999 -Hart, Linda (I) Tin Cup 1996 -Elfman, Jenna Doctor Dolittle 1998 -Elfman, Jenna Keeping the Faith 2000 -Elfman, Jenna Friends with Benefits 2011 -Elfman, Jenna CyberWorld 2000 -Araya, Alison X-Men Origins: Wolverine 2009 -Araya, Alison Superman Returns 2006 -Araya, Alison Watchmen 2009 -Araya, Alison Mission: Impossible II 2000 -Anozie, Nonso Atonement 2007 -Anozie, Nonso The Golden Compass 2007 -Anozie, Nonso The Grey 2011 -Anozie, Nonso Nanny McPhee and the Big Bang 2010 -Victor, Teresa E. Star Trek IV: The Voyage Home 1986 -Victor, Teresa E. Star Trek III: The Search for Spock 1984 -Victor, Teresa E. Star Trek: The Wrath of Khan 1982 -Shaffer, Anna (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Shaffer, Anna (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Shaffer, Anna (I) Harry Potter and the Half-Blood Prince 2009 -Jian Salt 2010 -Jian Men in Black 3 2012 -Jian The Adjustment Bureau 2011 -Jian Eat Pray Love 2010 -Jian The Sorcerer's Apprentice 2010 -Jian Get Him to the Greek 2010 -Gibb, Donald Stripes 1981 -Gibb, Donald Hancock 2008 -Gibb, Donald U.S. Marshals 1998 -Chan, Michael Paul Batman & Robin 1997 -Chan, Michael Paul Batman Forever 1995 -Chan, Michael Paul The Insider 1999 -Chan, Michael Paul The Goonies 1985 -Chan, Michael Paul Spy Game 2001 -Chan, Michael Paul U.S. Marshals 1998 -McDiarmid, Ian Star Wars: Episode III - Revenge of the Sith 2005 -McDiarmid, Ian Star Wars: Episode I - The Phantom Menace 1999 -McDiarmid, Ian Star Wars: Episode II - Attack of the Clones 2002 -McDiarmid, Ian Star Wars: Episode VI - Return of the Jedi 1983 -McDiarmid, Ian Sleepy Hollow 1999 -Cole, Ted (I) Scary Movie 2000 -Cole, Ted (I) The Santa Clause 2 2002 -Cole, Ted (I) Watchmen 2009 -Becker, Paul (II) Chicago 2002 -Becker, Paul (II) The Twilight Saga: Breaking Dawn - Part 1 2011 -Becker, Paul (II) This Means War 2012 -Becker, Paul (II) Scooby Doo 2: Monsters Unleashed 2004 -Becker, Paul (II) Hannah Montana & Miley Cyrus: Best of Both Worlds Concert 2008 -Maaß, Hendrik The Reader 2008 -Maaß, Hendrik Valkyrie 2008 -Maaß, Hendrik Unknown 2011 -Dean, Calvin (I) Vertical Limit 2000 -Dean, Calvin (I) The Social Network 2010 -Dean, Calvin (I) Spider-Man 2 2004 -Dean, Calvin (I) Angels & Demons 2009 -Dean, Calvin (I) The Artist 2011 -Dean, Calvin (I) Star Trek 2009 -Lovitz, Jon Rat Race 2001 -Lovitz, Jon Cats & Dogs 2001 -Lovitz, Jon Little Nicky 2000 -Lovitz, Jon The Stepford Wives 2004 -Lovitz, Jon Matilda 1996 -Lovitz, Jon The Wedding Singer 1998 -Leyva, Omar Beverly Hills Chihuahua 2008 -Leyva, Omar Pineapple Express 2008 -Leyva, Omar Think Like a Man 2012 -Kroll, Nick Dinner for Schmucks 2010 -Kroll, Nick Date Night 2010 -Kroll, Nick Get Him to the Greek 2010 -Kroll, Nick Little Fockers 2010 -Kroll, Nick I Love You, Man 2009 -Peters, Robert (I) Legally Blonde 2: Red, White & Blonde 2003 -Peters, Robert (I) Catch Me If You Can 2002 -Peters, Robert (I) Air Force One 1997 -Peters, Robert (I) American Pie 2 2001 -Peters, Robert (I) Ocean's Eleven 2001 -Peters, Robert (I) Kiss the Girls 1997 -Peters, Robert (I) In the Line of Fire 1993 -El Santo Zavero, Niko Bridesmaids 2011 -El Santo Zavero, Niko Little Fockers 2010 -El Santo Zavero, Niko Transformers: Dark of the Moon 2011 -Boen, Earl Nutty Professor II: The Klumps 2000 -Boen, Earl Atlantis: The Lost Empire 2001 -Boen, Earl The Wild Thornberrys Movie 2002 -Boen, Earl Terminator 2: Judgment Day 1991 -Boen, Earl The Terminator 1984 -Boen, Earl Toy Story 2 1999 -Boen, Earl Terminator 3: Rise of the Machines 2003 -Conley, Jack The Cell 2000 -Conley, Jack Fast & Furious 2009 -Conley, Jack Apollo 13 1995 -Conley, Jack Fun with Dick and Jane 2005 -Conley, Jack L.A. Confidential 1997 -Conley, Jack G-Force 2009 -Conley, Jack Mercury Rising 1998 -Conley, Jack Collateral Damage 2002 -Conley, Jack Traffic 2000 -Henry, Dilva The Day After Tomorrow 2004 -Henry, Dilva Dreamgirls 2006 -Henry, Dilva The Terminal 2004 -Henry, Dilva Fun with Dick and Jane 2005 -Henry, Dilva Red Eye 2005 -Anderson, James P. The Departed 2006 -Anderson, James P. Wall Street: Money Never Sleeps 2010 -Anderson, James P. The Interpreter 2005 -Appel, Peter Basic Instinct 1992 -Appel, Peter Presumed Innocent 1990 -Appel, Peter The Happening 2008 -Appel, Peter Spider-Man 2002 -Appel, Peter Sleepers 1996 -Appel, Peter Coyote Ugly 2000 -Pine, Chris (I) Unstoppable 2010 -Pine, Chris (I) Star Trek 2009 -Pine, Chris (I) The Princess Diaries 2: Royal Engagement 2004 -Pine, Chris (I) This Means War 2012 -Getty, Estelle Stuart Little 1999 -Getty, Estelle Tootsie 1982 -Getty, Estelle Mannequin 1987 -Daniel, Chic Out for Justice 1991 -Daniel, Chic The Fast and the Furious 2001 -Daniel, Chic Traffic 2000 -Daniel, Chic Swordfish 2001 -Daniel, Chic Collateral 2004 -Daniel, Chic Face/Off 1997 -Wylde, Chris Coyote Ugly 2000 -Wylde, Chris Space Cowboys 2000 -Wylde, Chris Evolution 2001 -Miller, Penelope Ann The Relic 1997 -Miller, Penelope Ann The Artist 2011 -Miller, Penelope Ann Along Came a Spider 2001 -Burns, Heather (I) Miss Congeniality 2000 -Burns, Heather (I) Bewitched 2005 -Burns, Heather (I) You've Got Mail 1998 -Burns, Heather (I) Two Weeks Notice 2002 -Burns, Heather (I) Miss Congeniality 2: Armed and Fabulous 2005 -Ventura, Jesse (I) Batman & Robin 1997 -Ventura, Jesse (I) The Master of Disguise 2002 -Ventura, Jesse (I) Predator 1987 -Pelletier, Paul Me, Myself & Irene 2000 -Pelletier, Paul Dumb & Dumber 1994 -Pelletier, Paul There's Something About Mary 1998 -Casella, Max Big Mommas: Like Father, Like Son 2011 -Casella, Max Analyze This 1999 -Casella, Max Dinosaur 2000 -Torres, Lou Shaft 2000 -Torres, Lou Fantastic Four 2005 -Torres, Lou Spider-Man 2002 -Dustin, Jasmine Iron Man 2 2010 -Dustin, Jasmine Rush Hour 3 2007 -Dustin, Jasmine Tropic Thunder 2008 -Pankhurst, Patrick Rocky IV 1985 -Pankhurst, Patrick Evan Almighty 2007 -Pankhurst, Patrick Transformers: Dark of the Moon 2011 -Pankhurst, Patrick Mission: Impossible III 2006 -Ritter, Paul Quantum of Solace 2008 -Ritter, Paul Harry Potter and the Half-Blood Prince 2009 -Ritter, Paul Hannibal Rising 2007 -Baron Cohen, Sacha Madagascar: Escape 2 Africa 2008 -Baron Cohen, Sacha Madagascar 3: Europe's Most Wanted 2012 -Baron Cohen, Sacha Talladega Nights: The Ballad of Ricky Bobby 2006 -Baron Cohen, Sacha Madagascar 2005 -Baron Cohen, Sacha Sweeney Todd: The Demon Barber of Fleet Street 2007 -Baron Cohen, Sacha Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan 2006 -Baron Cohen, Sacha The Dictator 2012 -Beatty, Ned Toy Story 3 2010 -Beatty, Ned Charlie Wilson's War 2007 -Beatty, Ned Superman 1978 -Beatty, Ned Superman II 1980 -Beatty, Ned Rango 2011 -Ward, Lyman (I) Ferris Bueller's Day Off 1986 -Ward, Lyman (I) Independence Day 1996 -Ward, Lyman (I) Rumor Has It... 2005 -Cross, T.J. Showtime 2002 -Cross, T.J. Gone in Sixty Seconds 2000 -Cross, T.J. Bad Company 2002 -Uchaneishvili, Levan Air Force One 1997 -Uchaneishvili, Levan Blade 1998 -Uchaneishvili, Levan Independence Day 1996 -Ling, Bai Star Wars: Episode III - Revenge of the Sith 2005 -Ling, Bai Anna and the King 1999 -Ling, Bai Sky Captain and the World of Tomorrow 2004 -Ling, Bai Wild Wild West 1999 -Taylor, Matthew W. Open Season 3 2010 -Taylor, Matthew W. Open Season 2006 -Taylor, Matthew W. Surf's Up 2007 -Soergel, Tim Big Momma's House 2 2006 -Soergel, Tim Dodgeball: A True Underdog Story 2004 -Soergel, Tim Land of the Lost 2009 -Hill, William (I) Gran Torino 2008 -Hill, William (I) The Siege 1998 -Hill, William (I) Analyze This 1999 -Hill, William (I) The Peacemaker 1997 -Hill, William (I) The Devil's Advocate 1997 -Hill, William (I) Striptease 1996 -Hill, William (I) How to Lose a Guy in 10 Days 2003 -Hedaya, Dan Daylight 1996 -Hedaya, Dan The Hurricane 1999 -Hedaya, Dan Robots 2005 -Hedaya, Dan The First Wives Club 1996 -Hedaya, Dan Ransom 1996 -Hedaya, Dan Shaft 2000 -Hedaya, Dan Running Scared 1986 -Hedaya, Dan A Civil Action 1998 -Hedaya, Dan In & Out 1997 -Hedaya, Dan Alien: Resurrection 1997 -Simpson, Terry (I) The Day After Tomorrow 2004 -Simpson, Terry (I) The Bone Collector 1999 -Simpson, Terry (I) Gothika 2003 -Grady, Kevin (I) I Now Pronounce You Chuck & Larry 2007 -Grady, Kevin (I) The Longest Yard 2005 -Grady, Kevin (I) Mr. Deeds 2002 -Grady, Kevin (I) Little Nicky 2000 -Grady, Kevin (I) Anger Management 2003 -Grady, Kevin (I) You Don't Mess with the Zohan 2008 -Grady, Kevin (I) Grown Ups 2010 -Wright, Darrel W. Boogie Nights 1997 -Wright, Darrel W. 13 Going on 30 2004 -Wright, Darrel W. The Princess Diaries 2: Royal Engagement 2004 -Russell, Kimberly The Princess and the Frog 2009 -Russell, Kimberly Precious 2009 -Russell, Kimberly The Game 1997 -Anderson, Emily (I) Horton Hears a Who! 2008 -Anderson, Emily (I) Ice Age: The Meltdown 2006 -Anderson, Emily (I) Lilo & Stitch 2002 -Christensen, Jesper (I) Quantum of Solace 2008 -Christensen, Jesper (I) The Interpreter 2005 -Christensen, Jesper (I) Casino Royale 2006 -Kubr, Mark The Time Machine 2002 -Kubr, Mark Spider-Man 3 2007 -Kubr, Mark Cellular 2004 -Kubr, Mark Role Models 2008 -Kubr, Mark The Flintstones in Viva Rock Vegas 2000 -Kubr, Mark Iron Man 2 2010 -Kubr, Mark You Don't Mess with the Zohan 2008 -Kubr, Mark Collateral 2004 -Greenbury, Andrew Serendipity 2001 -Greenbury, Andrew Me, Myself & Irene 2000 -Greenbury, Andrew There's Something About Mary 1998 -Sandoval, Miguel (I) Clear and Present Danger 1994 -Sandoval, Miguel (I) Real Steel 2011 -Sandoval, Miguel (I) Collateral Damage 2002 -Sandoval, Miguel (I) Jurassic Park 1993 -Sandoval, Miguel (I) Blow 2001 -Felton, Tom Harry Potter and the Goblet of Fire 2005 -Felton, Tom Harry Potter and the Prisoner of Azkaban 2004 -Felton, Tom Harry Potter and the Sorcerer's Stone 2001 -Felton, Tom Anna and the King 1999 -Felton, Tom Harry Potter and the Chamber of Secrets 2002 -Felton, Tom Harry Potter and the Deathly Hallows: Part 1 2010 -Felton, Tom Harry Potter and the Deathly Hallows: Part 2 2011 -Felton, Tom Harry Potter and the Half-Blood Prince 2009 -Felton, Tom Harry Potter and the Order of the Phoenix 2007 -Felton, Tom Rise of the Planet of the Apes 2011 -Felton, Tom Get Him to the Greek 2010 -Kirk, Robert C. The Good Shepherd 2006 -Kirk, Robert C. Inside Man 2006 -Kirk, Robert C. American Gangster 2007 -Whaley, Frank Pulp Fiction 1994 -Whaley, Frank World Trade Center 2006 -Whaley, Frank The School of Rock 2003 -Whaley, Frank Red Dragon 2002 -Whaley, Frank JFK 1991 -Kelly, David Patrick The Longest Yard 2005 -Kelly, David Patrick Malcolm X 1992 -Kelly, David Patrick K-PAX 2001 -Nahan, Stu Rocky Balboa 2006 -Nahan, Stu Rocky V 1990 -Nahan, Stu Rocky IV 1985 -Nahan, Stu Rocky III 1982 -Tennant, Emily The Sisterhood of the Traveling Pants 2005 -Tennant, Emily I, Robot 2004 -Tennant, Emily Juno 2007 -Tennant, Emily John Tucker Must Die 2006 -Tennant, Emily Scooby Doo 2: Monsters Unleashed 2004 -Shearer, Jack Wag the Dog 1997 -Shearer, Jack Star Trek: First Contact 1996 -Shearer, Jack End of Days 1999 -Shearer, Jack Disclosure 1994 -Shearer, Jack The Negotiator 1998 -Guarnera, Michael Charlie's Angels: Full Throttle 2003 -Guarnera, Michael S.W.A.T. 2003 -Guarnera, Michael Bruce Almighty 2003 -O'Haco, Jeff Star Trek 2009 -O'Haco, Jeff Back to the Future 1985 -O'Haco, Jeff Indiana Jones and the Last Crusade 1989 -Harnell, Jess Horton Hears a Who! 2008 -Harnell, Jess Toy Story 3 2010 -Harnell, Jess Space Chimps 2008 -Harnell, Jess Transformers: Revenge of the Fallen 2009 -Harnell, Jess Up 2009 -Harnell, Jess Ice Age: The Meltdown 2006 -Harnell, Jess Casper 1995 -Harnell, Jess Transformers: Dark of the Moon 2011 -Harnell, Jess Scooby-Doo 2002 -Harnell, Jess Little Nicky 2000 -Harnell, Jess The Jungle Book 2 2003 -Harnell, Jess Over the Hedge 2006 -Harnell, Jess Cars 2 2011 -Harnell, Jess Cars 2006 -Harnell, Jess Robots 2005 -Harnell, Jess A Bug's Life 1998 -Harnell, Jess Transformers 2007 -Harnell, Jess The Emperor's New Groove 2000 -Harnell, Jess Lilo & Stitch 2002 -Harnell, Jess Racing Stripes 2005 -Harnell, Jess Gake no ue no Ponyo 2008 -Harnell, Jess The Wild 2006 -Harnell, Jess Finding Nemo 2003 -Harnell, Jess TMNT 2007 -Harnell, Jess Cloudy with a Chance of Meatballs 2009 -Harnell, Jess Toy Story 2 1999 -Harnell, Jess The Lorax 2012 -Harnell, Jess Underdog 2007 -Harnell, Jess WALL·E 2008 -Harnell, Jess Surf's Up 2007 -Harnell, Jess Shrek the Third 2007 -Parnell, Chris (I) Jingle All the Way 1996 -Parnell, Chris (I) The Dictator 2012 -Parnell, Chris (I) 21 Jump Street 2012 -Parnell, Chris (I) Anchorman: The Legend of Ron Burgundy 2004 -Kenny, Tom (I) The SpongeBob SquarePants Movie 2004 -Kenny, Tom (I) Hoodwinked! 2005 -Kenny, Tom (I) Transformers: Dark of the Moon 2011 -Kenny, Tom (I) Space Chimps 2008 -Kenny, Tom (I) Winnie the Pooh 2011 -Kenny, Tom (I) Dr. Dolittle 2 2001 -Kenny, Tom (I) Sky High 2005 -Kenny, Tom (I) Transformers: Revenge of the Fallen 2009 -Kenny, Tom (I) Meet the Robinsons 2007 -Kenny, Tom (I) The Ant Bully 2006 -Johnson, Raymond H. Hannibal 2001 -Johnson, Raymond H. G.I. Jane 1997 -Johnson, Raymond H. Evan Almighty 2007 -Johnson, Raymond H. The Jackal 1997 -Skarsgård, Stellan Amistad 1997 -Skarsgård, Stellan Pirates of the Caribbean: At World's End 2007 -Skarsgård, Stellan Ronin 1998 -Skarsgård, Stellan Pirates of the Caribbean: Dead Man's Chest 2006 -Skarsgård, Stellan King Arthur 2004 -Skarsgård, Stellan Mamma Mia! 2008 -Skarsgård, Stellan The Avengers 2012 -Skarsgård, Stellan The Girl with the Dragon Tattoo 2011 -Skarsgård, Stellan Deep Blue Sea 1999 -Skarsgård, Stellan Good Will Hunting 1997 -Skarsgård, Stellan Angels & Demons 2009 -Skarsgård, Stellan Thor 2011 -Skarsgård, Stellan Exorcist: The Beginning 2004 -Skarsgård, Stellan The Hunt for Red October 1990 -Bentley, John Eric Iron Man 2 2010 -Bentley, John Eric Transformers: Revenge of the Fallen 2009 -Bentley, John Eric Madagascar: Escape 2 Africa 2008 -Bentley, John Eric Resident Evil: Extinction 2007 -Fisher, Isla Horton Hears a Who! 2008 -Fisher, Isla Rango 2011 -Fisher, Isla Confessions of a Shopaholic 2009 -Fisher, Isla Wedding Crashers 2005 -Fisher, Isla Scooby-Doo 2002 -Bacic, Steve X2 2003 -Bacic, Steve John Tucker Must Die 2006 -Bacic, Steve The 6th Day 2000 -Rees, Roger Return to Never Land 2002 -Rees, Roger The Pink Panther 2006 -Rees, Roger Frida 2002 -Rees, Roger The Scorpion King 2002 -Rees, Roger The Prestige 2006 -Rees, Roger Garfield: A Tail of Two Kitties 2006 -Scorsese, Martin Gangs of New York 2002 -Scorsese, Martin The Aviator 2004 -Scorsese, Martin Shark Tale 2004 -Embry, Ethan Vegas Vacation 1997 -Embry, Ethan Eagle Eye 2008 -Embry, Ethan Sweet Home Alabama 2002 -Sbarge, Raphael Pearl Harbor 2001 -Sbarge, Raphael Message in a Bottle 1999 -Sbarge, Raphael Independence Day 1996 -Sbarge, Raphael Risky Business 1983 -Towne, Katharine Evolution 2001 -Towne, Katharine What Lies Beneath 2000 -Towne, Katharine She's All That 1999 -Towne, Katharine Blades of Glory 2007 -Molina, Rolando Bruce Almighty 2003 -Molina, Rolando Primary Colors 1998 -Molina, Rolando Next Friday 2000 -Molina, Rolando Rumor Has It... 2005 -Molina, Rolando Eagle Eye 2008 -Radcliffe, Daniel Harry Potter and the Goblet of Fire 2005 -Radcliffe, Daniel Harry Potter and the Prisoner of Azkaban 2004 -Radcliffe, Daniel The Woman in Black 2012 -Radcliffe, Daniel Harry Potter and the Chamber of Secrets 2002 -Radcliffe, Daniel Harry Potter and the Deathly Hallows: Part 1 2010 -Radcliffe, Daniel Harry Potter and the Deathly Hallows: Part 2 2011 -Radcliffe, Daniel Harry Potter and the Sorcerer's Stone 2001 -Radcliffe, Daniel Harry Potter and the Order of the Phoenix 2007 -Radcliffe, Daniel Harry Potter and the Half-Blood Prince 2009 -Freeman, Crispin Hauru no ugoku shiro 2004 -Freeman, Crispin The Amazing Spider-Man 2012 -Freeman, Crispin Pirates of the Caribbean: At World's End 2007 -Freeman, Crispin Clash of the Titans 2010 -Freeman, Crispin Night at the Museum: Battle of the Smithsonian 2009 -Freeman, Crispin Ice Age: The Meltdown 2006 -Freeman, Crispin Gake no ue no Ponyo 2008 -Firth, Peter (I) Amistad 1997 -Firth, Peter (I) Pearl Harbor 2001 -Firth, Peter (I) Mighty Joe Young 1998 -Firth, Peter (I) The Hunt for Red October 1990 -Kennedy, Robert F. Good Night, and Good Luck. 2005 -Kennedy, Robert F. Forrest Gump 1994 -Kennedy, Robert F. JFK 1991 -Szostak, Stephanie The Devil Wears Prada 2006 -Szostak, Stephanie We Bought a Zoo 2011 -Szostak, Stephanie Dinner for Schmucks 2010 -Evans, Luke (I) Robin Hood 2010 -Evans, Luke (I) Immortals 2011 -Evans, Luke (I) Clash of the Titans 2010 -Cruz, Penélope Sahara 2005 -Cruz, Penélope Gothika 2003 -Cruz, Penélope Captain Corelli's Mandolin 2001 -Cruz, Penélope Sex and the City 2 2010 -Cruz, Penélope G-Force 2009 -Cruz, Penélope Blow 2001 -Cruz, Penélope Vanilla Sky 2001 -Cruz, Penélope Vicky Cristina Barcelona 2008 -Cruz, Penélope Pirates of the Caribbean: On Stranger Tides 2011 -Danziger, Kenneth The Holiday 2006 -Danziger, Kenneth Stargate 1994 -Danziger, Kenneth Eragon 2006 -Danziger, Kenneth Garfield: A Tail of Two Kitties 2006 -Kravitz, Lenny The Hunger Games 2012 -Kravitz, Lenny Precious 2009 -Kravitz, Lenny The Rugrats Movie 1998 -Kravitz, Lenny Zoolander 2001 -Munafo, Tony Daylight 1996 -Munafo, Tony Rocky V 1990 -Munafo, Tony Rambo: First Blood Part II 1985 -Khan, Ali (II) The Adjustment Bureau 2011 -Khan, Ali (II) Sex and the City 2 2010 -Khan, Ali (II) The Last Airbender 2010 -Crowley, Dermot Octopussy 1983 -Crowley, Dermot Star Wars: Episode VI - Return of the Jedi 1983 -Crowley, Dermot Babel 2006 -Pierpoint, Eric Holes 2003 -Pierpoint, Eric Transformers: Revenge of the Fallen 2009 -Pierpoint, Eric Liar Liar 1997 -Fosh, Christopher The Da Vinci Code 2006 -Fosh, Christopher V for Vendetta 2005 -Fosh, Christopher X-Men: The Last Stand 2006 -Smart, Amy Starship Troopers 1997 -Smart, Amy Road Trip 2000 -Smart, Amy Starsky & Hutch 2004 -Smart, Amy The Butterfly Effect 2004 -Smart, Amy Varsity Blues 1999 -Smart, Amy Rat Race 2001 -Pryce, Jonathan G.I. Joe: The Rise of Cobra 2009 -Pryce, Jonathan Pirates of the Caribbean: Dead Man's Chest 2006 -Pryce, Jonathan Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Pryce, Jonathan Evita 1996 -Pryce, Jonathan The Brothers Grimm 2005 -Pryce, Jonathan Ronin 1998 -Pryce, Jonathan Bedtime Stories 2008 -Pryce, Jonathan Pirates of the Caribbean: At World's End 2007 -Pryce, Jonathan Stigmata 1999 -Pryce, Jonathan Tomorrow Never Dies 1997 -Kosik, Thomas Fred Claus 2007 -Kosik, Thomas A Nightmare on Elm Street 2010 -Kosik, Thomas Public Enemies 2009 -Kosik, Thomas Eagle Eye 2008 -Kosik, Thomas U.S. Marshals 1998 -Gallagher, Peter (I) American Beauty 1999 -Gallagher, Peter (I) House on Haunted Hill 1999 -Gallagher, Peter (I) Mr. Deeds 2002 -Jackson, Jeanine (I) Pleasantville 1998 -Jackson, Jeanine (I) Role Models 2008 -Jackson, Jeanine (I) 17 Again 2009 -Jackson, Jeanine (I) Red Eye 2005 -Jackson, Jeanine (I) Red Dragon 2002 -Moy, Lian Changing Lanes 2002 -Moy, Lian The Royal Tenenbaums 2001 -Moy, Lian Big Daddy 1999 -Moy, Lian The School of Rock 2003 -Moy, Lian College Road Trip 2008 -Mazur, Monet Austin Powers: International Man of Mystery 1997 -Mazur, Monet Blow 2001 -Mazur, Monet 40 Days and 40 Nights 2002 -Mazur, Monet Just Married 2003 -Mazur, Monet Monster-in-Law 2005 -O'Dell, Nancy Thank You for Smoking 2005 -O'Dell, Nancy Scream 2 1997 -O'Dell, Nancy Scream 4 2011 -O'Dell, Nancy Scream 3 2000 -Smith, Maggie (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Smith, Maggie (I) A Room with a View 1985 -Smith, Maggie (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Smith, Maggie (I) Gnomeo & Juliet 2011 -Smith, Maggie (I) The First Wives Club 1996 -Smith, Maggie (I) Sister Act 1992 -Smith, Maggie (I) The Best Exotic Marigold Hotel 2011 -Smith, Maggie (I) Nanny McPhee and the Big Bang 2010 -Smith, Maggie (I) Harry Potter and the Goblet of Fire 2005 -Smith, Maggie (I) Harry Potter and the Half-Blood Prince 2009 -Smith, Maggie (I) Hook 1991 -Smith, Maggie (I) Harry Potter and the Prisoner of Azkaban 2004 -Smith, Maggie (I) Harry Potter and the Chamber of Secrets 2002 -Smith, Maggie (I) Gosford Park 2001 -Smith, Maggie (I) Harry Potter and the Sorcerer's Stone 2001 -Smith, Maggie (I) Harry Potter and the Order of the Phoenix 2007 -Dawson, Bruce Allen National Treasure: Book of Secrets 2007 -Dawson, Bruce Allen Step Up 2006 -Dawson, Bruce Allen Live Free or Die Hard 2007 -Dawson, Bruce Allen Syriana 2005 -Campbell, Charles L. Back to the Future 1985 -Campbell, Charles L. Rise of the Planet of the Apes 2011 -Campbell, Charles L. X-Men: First Class 2011 -Campbell, Charles L. Mr. Popper's Penguins 2011 -McMullin, Chris (II) National Treasure 2004 -McMullin, Chris (II) The Happening 2008 -McMullin, Chris (II) In Her Shoes 2005 -McMullin, Chris (II) Ladder 49 2004 -McMullin, Chris (II) Limitless 2011 -Wohl, David (I) Terms of Endearment 1983 -Wohl, David (I) Saving Private Ryan 1998 -Wohl, David (I) Presumed Innocent 1990 -Darnell, Eric Madagascar: Escape 2 Africa 2008 -Darnell, Eric Madagascar 2005 -Darnell, Eric Madagascar 3: Europe's Most Wanted 2012 -Stephens, Richard (V) Unstoppable 2010 -Stephens, Richard (V) The Social Network 2010 -Stephens, Richard (V) Spider-Man 2002 -Stephens, Richard (V) Pirates of the Caribbean: On Stranger Tides 2011 -Canopii, Juan The Wedding Planner 2001 -Canopii, Juan George of the Jungle 1997 -Canopii, Juan Little Nicky 2000 -Canopii, Juan Mighty Joe Young 1998 -Barber, Gillian (I) Cats & Dogs 2001 -Barber, Gillian (I) Double Jeopardy 1999 -Barber, Gillian (I) Jumanji 1995 -Barber, Gillian (I) The 6th Day 2000 -Patric, Jason My Sister's Keeper 2009 -Patric, Jason Sleepers 1996 -Patric, Jason Speed 2: Cruise Control 1997 -Paterson, Bill (I) Spice World 1997 -Paterson, Bill (I) The Killing Fields 1984 -Paterson, Bill (I) Kingdom of Heaven 2005 -Alaskey, Joe Superman Returns 2006 -Alaskey, Joe Who Framed Roger Rabbit 1988 -Alaskey, Joe Rugrats in Paris: The Movie - Rugrats II 2000 -Alaskey, Joe Rugrats Go Wild 2003 -Alaskey, Joe Spider-Man 2 2004 -Alaskey, Joe Star Wars: Episode I - The Phantom Menace 1999 -Alaskey, Joe The Rugrats Movie 1998 -Alaskey, Joe Casper 1995 -Alaskey, Joe Fantastic Four 2005 -Alaskey, Joe Forrest Gump 1994 -Buzzington, Ezra The Hills Have Eyes 2006 -Buzzington, Ezra Me, Myself & Irene 2000 -Buzzington, Ezra Underdog 2007 -Buzzington, Ezra The Artist 2011 -Buzzington, Ezra Fight Club 1999 -Buzzington, Ezra The Prestige 2006 -Buzzington, Ezra Magnolia 1999 -Horsford, Anna Maria Set It Off 1996 -Horsford, Anna Maria Kiss the Girls 1997 -Horsford, Anna Maria Along Came a Spider 2001 -Horsford, Anna Maria Nutty Professor II: The Klumps 2000 -Horsford, Anna Maria One Fine Day 1996 -Horsford, Anna Maria Presumed Innocent 1990 -Horsford, Anna Maria Minority Report 2002 -Daehn, Werner Valkyrie 2008 -Daehn, Werner Speed Racer 2008 -Daehn, Werner Das Leben der Anderen 2006 -Daehn, Werner xXx 2002 -Daehn, Werner Enemy at the Gates 2001 -Stanton, Robert (II) The Stepford Wives 2004 -Stanton, Robert (II) Mercury Rising 1998 -Stanton, Robert (II) Confessions of a Shopaholic 2009 -Stanton, Robert (II) Striptease 1996 -Yip, David Entrapment 1999 -Yip, David A View to a Kill 1985 -Yip, David Indiana Jones and the Temple of Doom 1984 -Yungmee, Addie Like Mike 2002 -Yungmee, Addie Memoirs of a Geisha 2005 -Yungmee, Addie Collateral 2004 -Yungmee, Addie Bowfinger 1999 -LaMarr, Phil Pulp Fiction 1994 -LaMarr, Phil Terminator 3: Rise of the Machines 2003 -LaMarr, Phil Cloudy with a Chance of Meatballs 2009 -LaMarr, Phil The Da Vinci Code 2006 -LaMarr, Phil Real Steel 2011 -LaMarr, Phil Spider-Man 2 2004 -LaMarr, Phil TMNT 2007 -LaMarr, Phil Madagascar 2005 -LaMarr, Phil Shark Tale 2004 -LaMarr, Phil Step Brothers 2008 -LaMarr, Phil Madagascar: Escape 2 Africa 2008 -LaMarr, Phil Shrek the Third 2007 -LaMarr, Phil Cats & Dogs: The Revenge of Kitty Galore 2010 -LaMarr, Phil Bolt 2008 -LaMarr, Phil Iron Man 2 2010 -LaMarr, Phil Speed Racer 2008 -LaMarr, Phil Spider-Man 3 2007 -Borstein, Alex Catwoman 2004 -Borstein, Alex LiTTLEMAN 2006 -Borstein, Alex Bad Santa 2003 -Borstein, Alex Dinner for Schmucks 2010 -Borstein, Alex Kicking & Screaming 2005 -Borstein, Alex Coyote Ugly 2000 -Borstein, Alex Killers 2010 -Borstein, Alex The Lizzie McGuire Movie 2003 -Borstein, Alex Showtime 2002 -Borstein, Alex Good Night, and Good Luck. 2005 -Dern, Laura Jurassic Park III 2001 -Dern, Laura I Am Sam 2001 -Dern, Laura Little Fockers 2010 -Dern, Laura Jurassic Park 1993 -Dern, Laura October Sky 1999 -Lynch, Jalil Jay Salt 2010 -Lynch, Jalil Jay Hannibal 2001 -Lynch, Jalil Jay The Other Guys 2010 -Cameron, Earl (I) Inception 2010 -Cameron, Earl (I) The Interpreter 2005 -Cameron, Earl (I) The Queen 2006 -Ganus, Paul The Mask of Zorro 1998 -Ganus, Paul Rumor Has It... 2005 -Ganus, Paul Lethal Weapon 3 1992 -Martin, Troy (I) Collateral Damage 2002 -Martin, Troy (I) Rocky V 1990 -Martin, Troy (I) Bandits 2001 -Martin, Troy (I) The Princess Diaries 2001 -Smith Jr., Eddie Bo Barbershop 2002 -Smith Jr., Eddie Bo Ali 2001 -Smith Jr., Eddie Bo The Fugitive 1993 -Smith Jr., Eddie Bo The Jackal 1997 -Patel, Hash Pirates of the Caribbean: At World's End 2007 -Patel, Hash You Don't Mess with the Zohan 2008 -Patel, Hash Eagle Eye 2008 -Patel, Hash Rush Hour 3 2007 -Patel, Hash Fast & Furious 2009 -Warner, Aron Shrek 2 2004 -Warner, Aron Shrek the Third 2007 -Warner, Aron Shrek Forever After 2010 -Bello, Maria World Trade Center 2006 -Bello, Maria A History of Violence 2005 -Bello, Maria Coyote Ugly 2000 -Bello, Maria Secret Window 2004 -Bello, Maria Grown Ups 2010 -Bello, Maria Thank You for Smoking 2005 -Bello, Maria The Mummy: Tomb of the Dragon Emperor 2008 -Cooper, Bradley (I) Failure to Launch 2006 -Cooper, Bradley (I) The Hangover 2009 -Cooper, Bradley (I) Yes Man 2008 -Cooper, Bradley (I) The Hangover Part II 2011 -Cooper, Bradley (I) Limitless 2011 -Cooper, Bradley (I) The A-Team 2010 -Cooper, Bradley (I) Wedding Crashers 2005 -Cooper, Bradley (I) He's Just Not That Into You 2009 -Common American Gangster 2007 -Common Happy Feet Two 2011 -Common New Year's Eve 2011 -Common Date Night 2010 -Common Terminator Salvation 2009 -Common Wanted 2008 -O'Connor, Robert (IV) The Longest Yard 2005 -O'Connor, Robert (IV) Bewitched 2005 -O'Connor, Robert (IV) The Island 2005 -O'Connor, Robert (IV) Little Miss Sunshine 2006 -Stamper, Philip Salt 2010 -Stamper, Philip The Replacements 2000 -Stamper, Philip Enemy of the State 1998 -Mustafa, Isaiah Madea's Big Happy Family 2011 -Mustafa, Isaiah The Three Stooges 2012 -Mustafa, Isaiah The Island 2005 -Mustafa, Isaiah Horrible Bosses 2011 -Smith, Jacob (I) Cheaper by the Dozen 2 2005 -Smith, Jacob (I) Cheaper by the Dozen 2003 -Smith, Jacob (I) Small Soldiers 1998 -Smith, Jacob (I) Troy 2004 -Pasqualone, Rick Ice Age: Dawn of the Dinosaurs 2009 -Pasqualone, Rick Hop 2011 -Pasqualone, Rick Space Chimps 2008 -Szarabajka, Keith We Were Soldiers 2002 -Szarabajka, Keith The Amazing Spider-Man 2012 -Szarabajka, Keith Spider-Man 2 2004 -Szarabajka, Keith Madagascar 2005 -Szarabajka, Keith The Wild Thornberrys Movie 2002 -Szarabajka, Keith Transformers: Dark of the Moon 2011 -Smith, Francesca (I) A Bug's Life 1998 -Smith, Francesca (I) The Prince of Egypt 1998 -Smith, Francesca (I) Recess: School's Out 2001 -Wilkinson, Tom (I) The Ghost and the Darkness 1996 -Wilkinson, Tom (I) Michael Clayton 2007 -Wilkinson, Tom (I) The Best Exotic Marigold Hotel 2011 -Wilkinson, Tom (I) Batman Begins 2005 -Wilkinson, Tom (I) Mission: Impossible - Ghost Protocol 2011 -Wilkinson, Tom (I) Shakespeare in Love 1998 -Wilkinson, Tom (I) The Exorcism of Emily Rose 2005 -Wilkinson, Tom (I) In the Bedroom 2001 -Wilkinson, Tom (I) Black Knight 2001 -Wilkinson, Tom (I) Rush Hour 1998 -Wilkinson, Tom (I) The Green Hornet 2011 -Wilkinson, Tom (I) Eternal Sunshine of the Spotless Mind 2004 -Wilkinson, Tom (I) The Full Monty 1997 -Wilkinson, Tom (I) The Patriot 2000 -Wilkinson, Tom (I) Valkyrie 2008 -Wilkinson, Tom (I) The Ghost Writer 2010 -Dorsey, Kimberly (I) Righteous Kill 2008 -Dorsey, Kimberly (I) Baby Mama 2008 -Dorsey, Kimberly (I) Burn After Reading 2008 -Marsden, Matthew Rambo 2008 -Marsden, Matthew Black Hawk Down 2001 -Marsden, Matthew Transformers: Revenge of the Fallen 2009 -Marsden, Matthew Resident Evil: Extinction 2007 -Cranshaw, Patrick Old School 2003 -Cranshaw, Patrick Herbie Fully Loaded 2005 -Cranshaw, Patrick Pee-wee's Big Adventure 1985 -Cranshaw, Patrick Nothing to Lose 1997 -Zeisler, Mark The Thomas Crown Affair 1999 -Zeisler, Mark Shaft 2000 -Zeisler, Mark Two Weeks Notice 2002 -Tenerelli, Jacki Catch Me If You Can 2002 -Tenerelli, Jacki Raising Helen 2004 -Tenerelli, Jacki The Princess Diaries 2: Royal Engagement 2004 -Huston, Danny X-Men Origins: Wolverine 2009 -Huston, Danny The Aviator 2004 -Huston, Danny Robin Hood 2010 -Huston, Danny Wrath of the Titans 2012 -Huston, Danny The Constant Gardener 2005 -Huston, Danny Clash of the Titans 2010 -Koman, Jacek Ghost Rider: Spirit of Vengeance 2011 -Koman, Jacek Moulin Rouge! 2001 -Koman, Jacek Australia 2008 -Leonard, Joshua The Shaggy Dog 2006 -Leonard, Joshua The Blair Witch Project 1999 -Leonard, Joshua Men of Honor 2000 -Gauna, Lubella My Sister's Keeper 2009 -Gauna, Lubella Hop 2011 -Gauna, Lubella Little Fockers 2010 -Connor, James M. About Schmidt 2002 -Connor, James M. Watchmen 2009 -Connor, James M. Blades of Glory 2007 -Alterman, Steve Ice Age: Dawn of the Dinosaurs 2009 -Alterman, Steve Yogi Bear 2010 -Alterman, Steve Shark Tale 2004 -Alterman, Steve Bride Wars 2009 -Alterman, Steve Lilo & Stitch 2002 -Alterman, Steve Final Fantasy: The Spirits Within 2001 -Alterman, Steve Over the Hedge 2006 -Tyson, Sean The Pink Panther 2006 -Tyson, Sean License to Wed 2007 -Tyson, Sean Rise of the Planet of the Apes 2011 -Whiten, Richard Rules of Engagement 2000 -Whiten, Richard Why Did I Get Married Too? 2010 -Whiten, Richard The Island 2005 -Li, Jet Lethal Weapon 4 1998 -Li, Jet Kiss of the Dragon 2001 -Li, Jet The Forbidden Kingdom 2008 -Li, Jet Ying Xiong 2002 -Li, Jet The Expendables 2010 -Li, Jet The Mummy: Tomb of the Dragon Emperor 2008 -Li, Jet Romeo Must Die 2000 -Clark, Dick (I) Forrest Gump 1994 -Clark, Dick (I) Spy Kids 2001 -Clark, Dick (I) Bowling for Columbine 2002 -Clark, Dick (I) Precious 2009 -Jude, Christopher The Interpreter 2005 -Jude, Christopher Spider-Man 3 2007 -Jude, Christopher 21 2008 -Jude, Christopher Ocean's Thirteen 2007 -Jude, Christopher Eagle Eye 2008 -Connelly, Jennifer A Beautiful Mind 2001 -Connelly, Jennifer Hulk 2003 -Connelly, Jennifer The Day the Earth Stood Still 2008 -Connelly, Jennifer He's Just Not That Into You 2009 -Connelly, Jennifer Blood Diamond 2006 -Dunst, Kirsten Eternal Sunshine of the Spotless Mind 2004 -Dunst, Kirsten Wag the Dog 1997 -Dunst, Kirsten Small Soldiers 1998 -Dunst, Kirsten Bring It On 2000 -Dunst, Kirsten Spider-Man 2 2004 -Dunst, Kirsten Mona Lisa Smile 2003 -Dunst, Kirsten Anastasia 1997 -Dunst, Kirsten Interview with the Vampire: The Vampire Chronicles 1994 -Dunst, Kirsten Spider-Man 2002 -Dunst, Kirsten Spider-Man 3 2007 -Dunst, Kirsten Jumanji 1995 -Reardon, Noreen The Secret Life of Bees 2008 -Reardon, Noreen Halloween 2007 -Reardon, Noreen Dinosaur 2000 -Reardon, Noreen Lilo & Stitch 2002 -Reardon, Noreen Happy Feet 2006 -Sirtis, Marina Star Trek: First Contact 1996 -Sirtis, Marina Star Trek: Insurrection 1998 -Sirtis, Marina Star Trek: Nemesis 2002 -Scozzari, Frank Bridesmaids 2011 -Scozzari, Frank Angels & Demons 2009 -Scozzari, Frank J. Edgar 2011 -Scozzari, Frank The Artist 2011 -Holland, Todd (II) The Longest Yard 2005 -Holland, Todd (II) The Waterboy 1998 -Holland, Todd (II) Little Nicky 2000 -Holland, Todd (II) You Don't Mess with the Zohan 2008 -Klein, Chris (I) We Were Soldiers 2002 -Klein, Chris (I) American Reunion 2012 -Klein, Chris (I) American Pie 1999 -Klein, Chris (I) American Pie 2 2001 -Huston, Anjelica The Royal Tenenbaums 2001 -Huston, Anjelica Daddy Day Care 2003 -Huston, Anjelica EverAfter 1998 -Atkine, Féodor Alexander 2004 -Atkine, Féodor Operación Ogro 1979 -Atkine, Féodor Ronin 1998 -Phillips, Erica Vittina Superbad 2007 -Phillips, Erica Vittina Step Brothers 2008 -Phillips, Erica Vittina The 40 Year Old Virgin 2005 -Markinson, Brian Primary Colors 1998 -Markinson, Brian City of Angels 1998 -Markinson, Brian Charlie Wilson's War 2007 -Markinson, Brian Volcano 1997 -Markinson, Brian Apollo 13 1995 -Markinson, Brian RV 2006 -Markinson, Brian Enemy of the State 1998 -Hopkins, Anthony (I) Bad Company 2002 -Hopkins, Anthony (I) Hannibal 2001 -Hopkins, Anthony (I) Meet Joe Black 1998 -Hopkins, Anthony (I) The Wolfman 2010 -Hopkins, Anthony (I) Beowulf 2007 -Hopkins, Anthony (I) Mission: Impossible II 2000 -Hopkins, Anthony (I) Red Dragon 2002 -Hopkins, Anthony (I) Alexander 2004 -Hopkins, Anthony (I) How the Grinch Stole Christmas 2000 -Hopkins, Anthony (I) Amistad 1997 -Hopkins, Anthony (I) The Silence of the Lambs 1991 -Hopkins, Anthony (I) Dracula 1992 -Hopkins, Anthony (I) The Mask of Zorro 1998 -Hopkins, Anthony (I) Thor 2011 -Abrahams, Jon (I) The Faculty 1998 -Abrahams, Jon (I) Meet the Parents 2000 -Abrahams, Jon (I) Scary Movie 2000 -Longo, Tony Eraser 1996 -Longo, Tony How to Lose a Guy in 10 Days 2003 -Longo, Tony The Flintstones in Viva Rock Vegas 2000 -Shaye, Lin The Three Stooges 2012 -Shaye, Lin Dumb & Dumber 1994 -Shaye, Lin Snakes on a Plane 2006 -Shaye, Lin Me, Myself & Irene 2000 -Shaye, Lin Cellular 2004 -Shaye, Lin A Cinderella Story 2004 -Shaye, Lin There's Something About Mary 1998 -Shaye, Lin My Sister's Keeper 2009 -Hyde Pierce, David Treasure Planet 2002 -Hyde Pierce, David A Bug's Life 1998 -Hyde Pierce, David Hellboy 2004 -Hyde Pierce, David Sleepless in Seattle 1993 -Creed, Sam Sherlock Holmes 2009 -Creed, Sam Harry Potter and the Deathly Hallows: Part 1 2010 -Creed, Sam War Horse 2011 -Creed, Sam Hereafter 2010 -Nieb, Jim Star Trek 2009 -Nieb, Jim Meet the Spartans 2008 -Nieb, Jim Changeling 2008 -Paris, Julie Runaway Bride 1999 -Paris, Julie Raising Helen 2004 -Paris, Julie Police Academy 2: Their First Assignment 1985 -Paris, Julie The Princess Diaries 2001 -Paris, Julie The Princess Diaries 2: Royal Engagement 2004 -Paris, Julie Pretty Woman 1990 -Gagnon, Steven M. Rules of Engagement 2000 -Gagnon, Steven M. Due Date 2010 -Gagnon, Steven M. Blades of Glory 2007 -Gagnon, Steven M. Liar Liar 1997 -Gagnon, Steven M. The X Files 1998 -Akinnuoye-Agbaje, Adewale Congo 1995 -Akinnuoye-Agbaje, Adewale G.I. Joe: The Rise of Cobra 2009 -Akinnuoye-Agbaje, Adewale The Mummy Returns 2001 -Akinnuoye-Agbaje, Adewale The Bourne Identity 2002 -Akinnuoye-Agbaje, Adewale Ace Ventura: When Nature Calls 1995 -Flanagan, Fionnula The Others 2001 -Flanagan, Fionnula Waking Ned 1998 -Flanagan, Fionnula Four Brothers 2005 -Flanagan, Fionnula Tears of the Sun 2003 -Flanagan, Fionnula Divine Secrets of the Ya-Ya Sisterhood 2002 -Flanagan, Fionnula Yes Man 2008 -Flanagan, Fionnula A Christmas Carol 2009 -Marshall, Lori (I) New Year's Eve 2011 -Marshall, Lori (I) Raising Helen 2004 -Marshall, Lori (I) The Princess Diaries 2: Royal Engagement 2004 -Rubenstein, Phil Star Trek IV: The Voyage Home 1986 -Rubenstein, Phil RoboCop 2 1990 -Rubenstein, Phil Mannequin 1987 -Brolin, Josh Wall Street: Money Never Sleeps 2010 -Brolin, Josh No Country for Old Men 2007 -Brolin, Josh American Gangster 2007 -Brolin, Josh Men in Black 3 2012 -Brolin, Josh The Goonies 1985 -Brolin, Josh Hollow Man 2000 -Brolin, Josh True Grit 2010 -Chapman, Lanei Final Fantasy: The Spirits Within 2001 -Chapman, Lanei Rat Race 2001 -Chapman, Lanei The Secret Life of Bees 2008 -O'Connell, Deirdre (I) Eternal Sunshine of the Spotless Mind 2004 -O'Connell, Deirdre (I) City of Angels 1998 -O'Connell, Deirdre (I) What Happens in Vegas 2008 -Sonnenfeld, Chloe RV 2006 -Sonnenfeld, Chloe Men in Black II 2002 -Sonnenfeld, Chloe Men in Black 3 2012 -Sonnenfeld, Chloe Men in Black 1997 -Cox, Darryl Twister 1996 -Cox, Darryl JFK 1991 -Cox, Darryl RoboCop 1987 -Unger, Deborah Kara The Hurricane 1999 -Unger, Deborah Kara The Game 1997 -Unger, Deborah Kara Silent Hill 2006 -Gard, Cassidy Confessions of a Shopaholic 2009 -Gard, Cassidy What Happens in Vegas 2008 -Gard, Cassidy The Taking of Pelham 1 2 3 2009 -Blakeslee, Susanne Hauru no ugoku shiro 2004 -Blakeslee, Susanne Shrek the Third 2007 -Blakeslee, Susanne Kung Fu Panda 2008 -Blakeslee, Susanne Tarzan 1999 -Blakeslee, Susanne Coraline 2009 -Blakeslee, Susanne The Golden Compass 2007 -Collins, Joshua (I) Catch Me If You Can 2002 -Collins, Joshua (I) 500) Days of Summer 2009 -Collins, Joshua (I) The Fast and the Furious: Tokyo Drift 2006 -McKenzie, Abi Transformers: Dark of the Moon 2011 -McKenzie, Abi The Time Traveler's Wife 2009 -McKenzie, Abi Fred Claus 2007 -McKenzie, Abi Public Enemies 2009 -Vincent, Daniel (III) Deja Vu 2006 -Vincent, Daniel (III) The Curious Case of Benjamin Button 2008 -Vincent, Daniel (III) Meet the Spartans 2008 -Drocco, Johnny Catch Me If You Can 2002 -Drocco, Johnny Pay It Forward 2000 -Drocco, Johnny Blades of Glory 2007 -Drocco, Johnny Charlie Wilson's War 2007 -Drocco, Johnny Double Take 2001 -Drocco, Johnny The Family Man 2000 -Drocco, Johnny Rumor Has It... 2005 -Drocco, Johnny Evolution 2001 -Drocco, Johnny He's Just Not That Into You 2009 -Rouillier, Ross Because of Winn-Dixie 2005 -Rouillier, Ross The Curious Case of Benjamin Button 2008 -Rouillier, Ross Meet the Spartans 2008 -Rouillier, Ross Big Momma's House 2 2006 -Rouillier, Ross The Skeleton Key 2005 -Rouillier, Ross Glory Road 2006 -Pedde, Eileen Freddy vs. Jason 2003 -Pedde, Eileen Final Destination 2 2003 -Pedde, Eileen The Core 2003 -Pedde, Eileen Juno 2007 -Downey Jr., Robert Gothika 2003 -Downey Jr., Robert The Incredible Hulk 2008 -Downey Jr., Robert Tropic Thunder 2008 -Downey Jr., Robert The Avengers 2012 -Downey Jr., Robert Wonder Boys 2000 -Downey Jr., Robert Sherlock Holmes: A Game of Shadows 2011 -Downey Jr., Robert Sherlock Holmes 2009 -Downey Jr., Robert The Shaggy Dog 2006 -Downey Jr., Robert Iron Man 2 2010 -Downey Jr., Robert Good Night, and Good Luck. 2005 -Downey Jr., Robert U.S. Marshals 1998 -Downey Jr., Robert Bowfinger 1999 -Downey Jr., Robert Due Date 2010 -Byrne, Scarlett Harry Potter and the Deathly Hallows: Part 1 2010 -Byrne, Scarlett Harry Potter and the Deathly Hallows: Part 2 2011 -Byrne, Scarlett Harry Potter and the Half-Blood Prince 2009 -Wright, Nathan (I) Moulin Rouge! 2001 -Wright, Nathan (I) Zombieland 2009 -Wright, Nathan (I) Funny People 2009 -Dorsey, Omar J. Drumline 2002 -Dorsey, Omar J. Road Trip 2000 -Dorsey, Omar J. Starsky & Hutch 2004 -Dorsey, Omar J. Race to Witch Mountain 2009 -Dorsey, Omar J. The Blind Side 2009 -Scott, Christopher (XII) Step Up 2: The Streets 2008 -Scott, Christopher (XII) 17 Again 2009 -Scott, Christopher (XII) Step Up 3D 2010 -Scott, Christopher (XII) Alvin and the Chipmunks 2007 -Libby, Brian The Mist 2007 -Libby, Brian Heat 1995 -Libby, Brian Air Force One 1997 -Libby, Brian In the Line of Fire 1993 -Libby, Brian The Green Mile 1999 -Libby, Brian Eraser 1996 -Gerald, Michael (I) Rules of Engagement 2000 -Gerald, Michael (I) Gone in Sixty Seconds 2000 -Gerald, Michael (I) The General's Daughter 1999 -Gerald, Michael (I) Starship Troopers 1997 -Lerman, Logan 3:10 to Yuma 2007 -Lerman, Logan The Butterfly Effect 2004 -Lerman, Logan Percy Jackson & the Olympians: The Lightning Thief 2010 -Lerman, Logan The Patriot 2000 -Lerman, Logan What Women Want 2000 -Freeman, Morgan (I) Amistad 1997 -Freeman, Morgan (I) Born to Be Wild 2011 -Freeman, Morgan (I) Evan Almighty 2007 -Freeman, Morgan (I) Along Came a Spider 2001 -Freeman, Morgan (I) Batman Begins 2005 -Freeman, Morgan (I) Wanted 2008 -Freeman, Morgan (I) Se7en 1995 -Freeman, Morgan (I) Deep Impact 1998 -Freeman, Morgan (I) Dreamcatcher 2003 -Freeman, Morgan (I) Kiss the Girls 1997 -Freeman, Morgan (I) Million Dollar Baby 2004 -Freeman, Morgan (I) The Bucket List 2007 -Freeman, Morgan (I) The Sum of All Fears 2002 -Freeman, Morgan (I) Outbreak 1995 -Freeman, Morgan (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Freeman, Morgan (I) Invictus 2009 -Freeman, Morgan (I) High Crimes 2002 -Freeman, Morgan (I) Bruce Almighty 2003 -Freeman, Morgan (I) Robin Hood: Prince of Thieves 1991 -Freeman, Morgan (I) La marche de l'empereur 2005 -Freeman, Morgan (I) Unforgiven 1992 -Freeman, Morgan (I) Dolphin Tale 2011 -West, John (I) The Ides of March 2011 -West, John (I) Norbit 2007 -West, John (I) License to Wed 2007 -West, John (I) The Princess Diaries 2: Royal Engagement 2004 -Rice, Brett Forrest Gump 1994 -Rice, Brett The Blind Side 2009 -Rice, Brett The Waterboy 1998 -Rice, Brett Remember the Titans 2000 -Rice, Brett Monster 2003 -Rice, Brett Glory Road 2006 -Rice, Brett Super 8 2011 -Rice, Brett We Are Marshall 2006 -Rice, Brett Footloose 2011 -La Cause, Sebastian Chicago 2002 -La Cause, Sebastian Scream 2 1997 -La Cause, Sebastian Boogie Nights 1997 -La Cause, Sebastian Eraser 1996 -Squibb, June Meet Joe Black 1998 -Squibb, June In & Out 1997 -Squibb, June About Schmidt 2002 -Nash, Niecy G-Force 2009 -Nash, Niecy Guess Who 2005 -Nash, Niecy Spider-Man 2 2004 -Nash, Niecy Horton Hears a Who! 2008 -Foley, Dave (I) Sky High 2005 -Foley, Dave (I) South Park: Bigger Longer & Uncut 1999 -Foley, Dave (I) Cars 2006 -Foley, Dave (I) CyberWorld 2000 -Foley, Dave (I) A Bug's Life 1998 -Foley, Dave (I) Toy Story 2 1999 -Lutz, Kellan New Moon 2009 -Lutz, Kellan The Twilight Saga: Eclipse 2010 -Lutz, Kellan A Nightmare on Elm Street 2010 -Lutz, Kellan Immortals 2011 -Lutz, Kellan The Twilight Saga: Breaking Dawn - Part 1 2011 -Outlaw, Norman Live Free or Die Hard 2007 -Outlaw, Norman National Treasure: Book of Secrets 2007 -Outlaw, Norman Step Up 2: The Streets 2008 -Hickey, John Benjamin Flightplan 2005 -Hickey, John Benjamin Changing Lanes 2002 -Hickey, John Benjamin The Bone Collector 1999 -Hickey, John Benjamin Transformers: Revenge of the Fallen 2009 -Hickey, John Benjamin The General's Daughter 1999 -Hickey, John Benjamin The Taking of Pelham 1 2 3 2009 -Giles, Ronald E. The Bourne Ultimatum 2007 -Giles, Ronald E. Law Abiding Citizen 2009 -Giles, Ronald E. Wall Street: Money Never Sleeps 2010 -Giles, Ronald E. What Happens in Vegas 2008 -Giles, Ronald E. The Taking of Pelham 1 2 3 2009 -Giles, Ronald E. You Don't Mess with the Zohan 2008 -Brake, Richard Hannibal Rising 2007 -Brake, Richard Munich 2005 -Brake, Richard Cold Mountain 2003 -Brake, Richard Batman Begins 2005 -Brake, Richard Water for Elephants 2011 -Warn Pegg, Ann Snakes on a Plane 2006 -Warn Pegg, Ann Are We There Yet? 2005 -Warn Pegg, Ann Scary Movie 4 2006 -Love, Faizon Elf 2003 -Love, Faizon Life as We Know It 2010 -Love, Faizon Couples Retreat 2009 -Love, Faizon Big Mommas: Like Father, Like Son 2011 -Love, Faizon Money Talks 1997 -Love, Faizon Zookeeper 2011 -Love, Faizon The Replacements 2000 -Atkinson, Rowan Johnny English Reborn 2011 -Atkinson, Rowan The Lion King 1994 -Atkinson, Rowan Rat Race 2001 -Atkinson, Rowan Mr. Bean's Holiday 2007 -Atkinson, Rowan Love Actually 2003 -Atkinson, Rowan Never Say Never Again 1983 -Atkinson, Rowan Bean 1997 -Atkinson, Rowan Four Weddings and a Funeral 1994 -Atkinson, Rowan Scooby-Doo 2002 -Atkinson, Rowan Johnny English 2003 -Walsh, Wendy L. The Mask 1994 -Walsh, Wendy L. The Cable Guy 1996 -Walsh, Wendy L. Heat 1995 -Walsh, Wendy L. Independence Day 1996 -Walsh, Wendy L. Superhero Movie 2008 -Walsh, Wendy L. The Day After Tomorrow 2004 -Herman, Randy (I) Pirates of the Caribbean: At World's End 2007 -Herman, Randy (I) Confessions of a Shopaholic 2009 -Herman, Randy (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Herman, Randy (I) Immortals 2011 -Herman, Randy (I) Pirates of the Caribbean: On Stranger Tides 2011 -Seth, Roshan Indiana Jones and the Temple of Doom 1984 -Seth, Roshan Vertical Limit 2000 -Seth, Roshan Gandhi 1982 -Fields, Holly Superman Returns 2006 -Fields, Holly Shrek 2 2004 -Fields, Holly Spider-Man 2 2004 -Fields, Holly Shrek the Third 2007 -Lewis, Juliette (I) Starsky & Hutch 2004 -Lewis, Juliette (I) Due Date 2010 -Lewis, Juliette (I) Old School 2003 -Fisher, George (III) Jingle All the Way 1996 -Fisher, George (III) Universal Soldier 1992 -Fisher, George (III) Set It Off 1996 -Fisher, George (III) The Green Hornet 2011 -Fisher, George (III) Die Hard 2 1990 -Azur, Sybil 500) Days of Summer 2009 -Azur, Sybil Like Mike 2002 -Azur, Sybil Austin Powers in Goldmember 2002 -Messina, Chris (I) The Siege 1998 -Messina, Chris (I) Julie & Julia 2009 -Messina, Chris (I) Vicky Cristina Barcelona 2008 -Messina, Chris (I) You've Got Mail 1998 -Messina, Chris (I) Made of Honor 2008 -Peterson, Cassandra Encounter in the Thrid Dimension 1999 -Peterson, Cassandra Pee-wee's Big Adventure 1985 -Peterson, Cassandra Thrill Ride: The Science of Fun 1997 -Van Wert, Dan (I) Marley & Me 2008 -Van Wert, Dan (I) Invincible 2006 -Van Wert, Dan (I) Lady in the Water 2006 -Van Wert, Dan (I) The Happening 2008 -Clarke, Cam Underdog 2007 -Clarke, Cam The Spiderwick Chronicles 2008 -Clarke, Cam Shark Tale 2004 -Clarke, Cam Barnyard 2006 -Clarke, Cam Clash of the Titans 2010 -Clarke, Cam Fly Me to the Moon 2008 -Hutton, Timothy The Ghost Writer 2010 -Hutton, Timothy The Good Shepherd 2006 -Hutton, Timothy The General's Daughter 1999 -Hutton, Timothy Secret Window 2004 -Stoner, Alyson Step Up 3D 2010 -Stoner, Alyson Cheaper by the Dozen 2 2005 -Stoner, Alyson Cheaper by the Dozen 2003 -Stoner, Alyson Lilo & Stitch 2002 -Stoner, Alyson Step Up 2006 -Stoner, Alyson Garfield 2004 -McAdams, Rachel The Vow 2012 -McAdams, Rachel Sherlock Holmes 2009 -McAdams, Rachel The Hot Chick 2002 -McAdams, Rachel Mean Girls 2004 -McAdams, Rachel The Family Stone 2005 -McAdams, Rachel The Notebook 2004 -McAdams, Rachel The Time Traveler's Wife 2009 -McAdams, Rachel Sherlock Holmes: A Game of Shadows 2011 -McAdams, Rachel Midnight in Paris 2011 -McAdams, Rachel Wedding Crashers 2005 -McAdams, Rachel Red Eye 2005 -Warburton, Patrick Bee Movie 2007 -Warburton, Patrick Men in Black II 2002 -Warburton, Patrick Hoodwinked! 2005 -Warburton, Patrick Space Chimps 2008 -Warburton, Patrick The Wild 2006 -Warburton, Patrick Home on the Range 2004 -Warburton, Patrick Scream 3 2000 -Warburton, Patrick The Emperor's New Groove 2000 -Warburton, Patrick Get Smart 2008 -Warburton, Patrick Chicken Little 2005 -Warburton, Patrick Sky High 2005 -Warburton, Patrick Open Season 2006 -Warburton, Patrick Underdog 2007 -Lewis, David (IV) Lake Placid 1999 -Lewis, David (IV) The Day the Earth Stood Still 2008 -Lewis, David (IV) Paycheck 2003 -Lewis, David (IV) Firewall 2006 -Lewis, David (IV) White Chicks 2004 -Beringer, Scott Ocean's Eleven 2001 -Beringer, Scott 21 2008 -Beringer, Scott The Mexican 2001 -Clarke, Philip L. Beauty and the Beast 1991 -Clarke, Philip L. Aladdin 1992 -Clarke, Philip L. The Hunchback of Notre Dame 1996 -Clarke, Philip L. The Little Mermaid 1989 -Imada, Jeff Blade 1998 -Imada, Jeff Lethal Weapon 4 1998 -Imada, Jeff Little Nicky 2000 -Bronson, Greg Mars Attacks! 1996 -Bronson, Greg Independence Day 1996 -Bronson, Greg Set It Off 1996 -Burton, William H. Dances with Wolves 1990 -Burton, William H. Predator 1987 -Burton, William H. Romancing the Stone 1984 -Burgos III, Jaime Epic Movie 2007 -Burgos III, Jaime Meet the Spartans 2008 -Burgos III, Jaime Step Up 3D 2010 -Saunders, Kendall Romeo Must Die 2000 -Saunders, Kendall Scary Movie 2000 -Saunders, Kendall Shanghai Noon 2000 -Texada, Tia The Amazing Spider-Man 2012 -Texada, Tia Speed Racer 2008 -Texada, Tia Phone Booth 2002 -Fugit, Lanette What Happens in Vegas 2008 -Fugit, Lanette The Hangover 2009 -Fugit, Lanette Rat Race 2001 -Fugit, Lanette Race to Witch Mountain 2009 -Fugit, Lanette Any Given Sunday 1999 -Fugit, Lanette Get Him to the Greek 2010 -Fugit, Lanette Ocean's Thirteen 2007 -Acheson, Mark Elf 2003 -Acheson, Mark The Chronicles of Riddick 2004 -Acheson, Mark The 13th Warrior 1999 -Acheson, Mark Watchmen 2009 -Bishop, Sean (I) Monsters vs Aliens 2009 -Bishop, Sean (I) Shark Tale 2004 -Bishop, Sean (I) Over the Hedge 2006 -Bishop, Sean (I) Shrek the Third 2007 -Bishop, Sean (I) Bee Movie 2007 -Goldsmith, David (I) Beverly Hills Chihuahua 2008 -Goldsmith, David (I) The Shaggy Dog 2006 -Goldsmith, David (I) Rush Hour 3 2007 -Goldsmith, David (I) Hop 2011 -Campbell, Larry Joe Showtime 2002 -Campbell, Larry Joe Killers 2010 -Campbell, Larry Joe Wedding Crashers 2005 -Freiss, Stéphane Bienvenue chez les Ch'tis 2008 -Freiss, Stéphane Munich 2005 -Freiss, Stéphane Hereafter 2010 -Zahedian, David Pirates of the Caribbean: Dead Man's Chest 2006 -Zahedian, David Fast & Furious 2009 -Zahedian, David You Don't Mess with the Zohan 2008 -Burke, Robert John (I) Hide and Seek 2005 -Burke, Robert John (I) Munich 2005 -Burke, Robert John (I) Cop Land 1997 -Burke, Robert John (I) Good Night, and Good Luck. 2005 -Burke, Robert John (I) Limitless 2011 -Breznahan, Kevin You, Me and Dupree 2006 -Breznahan, Kevin Superbad 2007 -Breznahan, Kevin There Will Be Blood 2007 -Breznahan, Kevin D-War 2007 -Breznahan, Kevin Magnolia 1999 -Presley, A.J. Flightplan 2005 -Presley, A.J. The Longest Yard 2005 -Presley, A.J. Miss Congeniality 2: Armed and Fabulous 2005 -Presley, A.J. Yours, Mine and Ours 2005 -Presley, A.J. Herbie Fully Loaded 2005 -Mazzotti, Alister Speed Racer 2008 -Mazzotti, Alister Hanna 2011 -Mazzotti, Alister The Ghost Writer 2010 -Mazzotti, Alister V for Vendetta 2005 -Owens, John (I) From Hell 2001 -Owens, John (I) The Wolfman 2010 -Owens, John (I) Shanghai Knights 2003 -Noth, Chris Cast Away 2000 -Noth, Chris Sex and the City 2 2010 -Noth, Chris Sex and the City 2008 -Reeves, Phil (I) About Schmidt 2002 -Reeves, Phil (I) Blades of Glory 2007 -Reeves, Phil (I) Guess Who 2005 -Reeves, Phil (I) Evan Almighty 2007 -Reeves, Phil (I) Fun with Dick and Jane 2005 -Reeves, Phil (I) 13 Going on 30 2004 -Reeves, Phil (I) Sideways 2004 -McConnohie, Michael Battleship 2012 -McConnohie, Michael Fly Me to the Moon 2008 -McConnohie, Michael Sea Monsters: A Prehistoric Adventure 2007 -Nixon, Richard Forrest Gump 1994 -Nixon, Richard American Gangster 2007 -Nixon, Richard Live Free or Die Hard 2007 -Nixon, Richard Transformers: Dark of the Moon 2011 -Nixon, Richard Miracle 2004 -Nixon, Richard K-19: The Widowmaker 2002 -Nixon, Richard Frequency 2000 -Nixon, Richard Contact 1997 -Nixon, Richard JFK 1991 -Paul, Jarrad Bewitched 2005 -Paul, Jarrad The Shaggy Dog 2006 -Paul, Jarrad Kicking & Screaming 2005 -Paul, Jarrad 40 Days and 40 Nights 2002 -Paul, Jarrad Liar Liar 1997 -Paul, Jarrad Yes Man 2008 -Ashley, Akiko Zoolander 2001 -Ashley, Akiko Jungle 2 Jungle 1997 -Ashley, Akiko One Fine Day 1996 -Struffolino, David The Game Plan 2007 -Struffolino, David Underdog 2007 -Struffolino, David 21 2008 -Struffolino, David 27 Dresses 2008 -Struffolino, David The Fighter 2010 -Struffolino, David Paul Blart: Mall Cop 2009 -Posey, Parker Blade: Trinity 2004 -Posey, Parker Superman Returns 2006 -Posey, Parker You've Got Mail 1998 -Posey, Parker Scream 3 2000 -Fraley, Pat (II) Chicken Little 2005 -Fraley, Pat (II) I Am Legend 2007 -Fraley, Pat (II) The Ant Bully 2006 -Fraley, Pat (II) Toy Story 2 1999 -Fraley, Pat (II) The Wild 2006 -Fraley, Pat (II) Terminator 3: Rise of the Machines 2003 -Fraley, Pat (II) Monsters, Inc. 2001 -Fraley, Pat (II) The Haunted Mansion 2003 -Goldstein, Jenette Clockstoppers 2002 -Goldstein, Jenette Titanic 1997 -Goldstein, Jenette Aliens 1986 -Goldstein, Jenette Lethal Weapon 2 1989 -Goldstein, Jenette Terminator 2: Judgment Day 1991 -DeSantis, Stanley The Aviator 2004 -DeSantis, Stanley I Am Sam 2001 -DeSantis, Stanley Rush Hour 1998 -DeSantis, Stanley The Birdcage 1996 -DeSantis, Stanley Boogie Nights 1997 -Rosales Jr., Thomas U.S. Marshals 1998 -Rosales Jr., Thomas Collateral 2004 -Rosales Jr., Thomas Men in Black II 2002 -Rosales Jr., Thomas Superhero Movie 2008 -Rosales Jr., Thomas Heat 1995 -Rosales Jr., Thomas Speed 1994 -Rosales Jr., Thomas Universal Soldier 1992 -Rosales Jr., Thomas Ocean's Eleven 2001 -Rosales Jr., Thomas Con Air 1997 -Rosales Jr., Thomas Deep Impact 1998 -Rosales Jr., Thomas RoboCop 2 1990 -Rosales Jr., Thomas Face/Off 1997 -Rosales Jr., Thomas Traffic 2000 -Rosales Jr., Thomas Last Action Hero 1993 -Rosales Jr., Thomas L.A. Confidential 1997 -Rosales Jr., Thomas Act of Valor 2012 -Rosales Jr., Thomas The Lost World: Jurassic Park 1997 -Ishida, Jim The Terminal 2004 -Ishida, Jim Armageddon 1998 -Ishida, Jim Back to the Future Part II 1989 -Snell, Terrie (I) Rumor Has It... 2005 -Snell, Terrie (I) Home Alone 2: Lost in New York 1992 -Snell, Terrie (I) You Don't Mess with the Zohan 2008 -Snell, Terrie (I) Home Alone 1990 -Stafford, Jon Robert Shutter Island 2010 -Stafford, Jon Robert Grown Ups 2010 -Stafford, Jon Robert Paul Blart: Mall Cop 2009 -Page, Bobbi A Christmas Carol 2009 -Page, Bobbi License to Wed 2007 -Page, Bobbi Dinosaur 2000 -Page, Bobbi The Little Mermaid 1989 -Page, Bobbi The Nightmare Before Christmas 1993 -Page, Bobbi The Princess Diaries 2: Royal Engagement 2004 -Doran, Matt (I) Star Wars: Episode II - Attack of the Clones 2002 -Doran, Matt (I) The Matrix 1999 -Doran, Matt (I) The Thin Red Line 1998 -Henson, Elden Under the Tuscan Sun 2003 -Henson, Elden Deja Vu 2006 -Henson, Elden The Butterfly Effect 2004 -Henson, Elden She's All That 1999 -Henson, Elden Cast Away 2000 -Henson, Elden D2: The Mighty Ducks 1994 -Henson, Elden The Mighty Ducks 1992 -Melling, William Harry Potter and the Goblet of Fire 2005 -Melling, William Harry Potter and the Half-Blood Prince 2009 -Melling, William Harry Potter and the Deathly Hallows: Part 1 2010 -Melling, William Harry Potter and the Order of the Phoenix 2007 -Melling, William Harry Potter and the Deathly Hallows: Part 2 2011 -Annable, Odette Cloverfield 2008 -Annable, Odette The Holiday 2006 -Annable, Odette Transformers 2007 -Countryman, Michael Black Knight 2001 -Countryman, Michael Ransom 1996 -Countryman, Michael Michael Clayton 2007 -Countryman, Michael Burn After Reading 2008 -Countryman, Michael P.S. I Love You 2007 -Wynne, Christopher Sky High 2005 -Wynne, Christopher Back to the Future Part III 1990 -Wynne, Christopher The Princess Diaries 2: Royal Engagement 2004 -Wynne, Christopher Speed 2: Cruise Control 1997 -Wang, Vincent (I) Shanghai Knights 2003 -Wang, Vincent (I) Tomorrow Never Dies 1997 -Wang, Vincent (I) Spy Game 2001 -Copeland, Joan (I) The Peacemaker 1997 -Copeland, Joan (I) Jungle 2 Jungle 1997 -Copeland, Joan (I) Brother Bear 2003 -McNeil, Timothy Starship Troopers 1997 -McNeil, Timothy Forrest Gump 1994 -McNeil, Timothy Contact 1997 -Gibbon, Mark (I) The Chronicles of Riddick 2004 -Gibbon, Mark (I) Underworld: Awakening 2012 -Gibbon, Mark (I) The 6th Day 2000 -Walter, Tracey The Manchurian Candidate 2004 -Walter, Tracey Batman 1989 -Walter, Tracey Kiss the Girls 1997 -Walter, Tracey Mighty Joe Young 1998 -Walter, Tracey The Silence of the Lambs 1991 -Walter, Tracey Independence Day 1996 -Walter, Tracey Philadelphia 1993 -Walter, Tracey Erin Brockovich 2000 -Walter, Tracey Matilda 1996 -Bacon, Kevin (I) X-Men: First Class 2011 -Bacon, Kevin (I) A Few Good Men 1992 -Bacon, Kevin (I) Footloose 1984 -Bacon, Kevin (I) Apollo 13 1995 -Bacon, Kevin (I) Hollow Man 2000 -Bacon, Kevin (I) Sleepers 1996 -Bacon, Kevin (I) My Dog Skip 2000 -Bacon, Kevin (I) JFK 1991 -Bacon, Kevin (I) Mystic River 2003 -Bacon, Kevin (I) Crazy, Stupid, Love. 2011 -Durand, Kevin Real Steel 2011 -Durand, Kevin Austin Powers: The Spy Who Shagged Me 1999 -Durand, Kevin 3:10 to Yuma 2007 -Durand, Kevin The Butterfly Effect 2004 -Durand, Kevin X-Men Origins: Wolverine 2009 -Durand, Kevin Robin Hood 2010 -Durand, Kevin Scooby Doo 2: Monsters Unleashed 2004 -Durand, Kevin Big Momma's House 2 2006 -Durand, Kevin I Am Number Four 2011 -Durand, Kevin Legion 2009 -Durand, Kevin Wild Hogs 2007 -Keenan, Caroline (I) Nothing to Lose 1997 -Keenan, Caroline (I) The Day After Tomorrow 2004 -Keenan, Caroline (I) The Replacements 2000 -Keenan, Caroline (I) I Am Sam 2001 -Yribar, Jason Austin Powers: The Spy Who Shagged Me 1999 -Yribar, Jason Starsky & Hutch 2004 -Yribar, Jason 13 Going on 30 2004 -Voight, Jon The Manchurian Candidate 2004 -Voight, Jon Ali 2001 -Voight, Jon Zoolander 2001 -Voight, Jon Four Christmases 2008 -Voight, Jon Mission: Impossible 1996 -Voight, Jon National Treasure: Book of Secrets 2007 -Voight, Jon National Treasure 2004 -Voight, Jon Varsity Blues 1999 -Voight, Jon Tropic Thunder 2008 -Voight, Jon Anaconda 1997 -Voight, Jon The Rainmaker 1997 -Voight, Jon Lara Croft: Tomb Raider 2001 -Voight, Jon Holes 2003 -Voight, Jon Enemy of the State 1998 -Voight, Jon Glory Road 2006 -Voight, Jon Pearl Harbor 2001 -Voight, Jon Heat 1995 -Voight, Jon Transformers 2007 -Valdés García, Jorge Licence to Kill 1989 -Valdés García, Jorge Nacho Libre 2006 -Valdés García, Jorge Frida 2002 -Valdés García, Jorge Clear and Present Danger 1994 -Taylor, John R. (I) Watchmen 2009 -Taylor, John R. (I) Final Destination 2 2003 -Taylor, John R. (I) Sucker Punch 2011 -Watson Sr., John M. Soul Food 1997 -Watson Sr., John M. Groundhog Day 1993 -Watson Sr., John M. The Fugitive 1993 -Batten, Cyia Charlie's Angels: Full Throttle 2003 -Batten, Cyia Charlie Wilson's War 2007 -Batten, Cyia The Texas Chainsaw Massacre: The Beginning 2006 -Woodburn, Danny Jingle All the Way 1996 -Woodburn, Danny Watchmen 2009 -Woodburn, Danny The Flintstones in Viva Rock Vegas 2000 -Woodburn, Danny Mirror Mirror 2012 -Stoyanov, Yuriy Rzhevskiy protiv Napoleona 2012 -Stoyanov, Yuriy Gitler kaput! 2008 -Stoyanov, Yuriy 12 2007 -Harth, C. Ernst Dreamcatcher 2003 -Harth, C. Ernst The A-Team 2010 -Harth, C. Ernst Scooby Doo 2: Monsters Unleashed 2004 -Harth, C. Ernst Capote 2005 -Harth, C. Ernst Are We There Yet? 2005 -Gabrielli, Elisa (I) Shrek 2001 -Gabrielli, Elisa (I) Bride Wars 2009 -Gabrielli, Elisa (I) Mulan 1998 -Gabrielli, Elisa (I) Beverly Hills Chihuahua 2008 -Gabrielli, Elisa (I) Open Season 2006 -Gabrielli, Elisa (I) Madagascar 2005 -Gabrielli, Elisa (I) Madagascar: Escape 2 Africa 2008 -West, Caryl Shallow Hal 2001 -West, Caryl The Three Stooges 2012 -West, Caryl There's Something About Mary 1998 -Mahoney, Brian (I) Jarhead 2005 -Mahoney, Brian (I) American Reunion 2012 -Mahoney, Brian (I) The Adjustment Bureau 2011 -Mahoney, Brian (I) The Flintstones in Viva Rock Vegas 2000 -Burd, Tim Saw II 2005 -Burd, Tim Saw III 2006 -Burd, Tim Resident Evil: Apocalypse 2004 -Burd, Tim Saw V 2008 -Burd, Tim Cinderella Man 2005 -Cooke, Keith Mortal Kombat: Annihilation 1997 -Cooke, Keith Mortal Kombat 1995 -Cooke, Keith Beverly Hills Ninja 1997 -Fox, Michael J. (I) Stuart Little 2 2002 -Fox, Michael J. (I) Atlantis: The Lost Empire 2001 -Fox, Michael J. (I) Stuart Little 1999 -Fox, Michael J. (I) Back to the Future Part III 1990 -Fox, Michael J. (I) Mars Attacks! 1996 -Fox, Michael J. (I) Back to the Future Part II 1989 -Fox, Michael J. (I) Back to the Future 1985 -Shou, Robin Mortal Kombat: Annihilation 1997 -Shou, Robin Death Race 2008 -Shou, Robin Mortal Kombat 1995 -Shou, Robin Beverly Hills Ninja 1997 -Myers, Lou The Wedding Planner 2001 -Myers, Lou Volcano 1997 -Myers, Lou How Stella Got Her Groove Back 1998 -Myers, Lou Tin Cup 1996 -Wright, Robin (V) Forrest Gump 1994 -Wright, Robin (V) Moneyball 2011 -Wright, Robin (V) Beowulf 2007 -Wright, Robin (V) A Christmas Carol 2009 -Wright, Robin (V) The Girl with the Dragon Tattoo 2011 -Wright, Robin (V) Unbreakable 2000 -Wright, Robin (V) Message in a Bottle 1999 -Becker, Joanna Step Up 2006 -Becker, Joanna Step Up 2: The Streets 2008 -Becker, Joanna The Replacements 2000 -Johansson, Scarlett The SpongeBob SquarePants Movie 2004 -Johansson, Scarlett The Horse Whisperer 1998 -Johansson, Scarlett Lost in Translation 2003 -Johansson, Scarlett Vicky Cristina Barcelona 2008 -Johansson, Scarlett The Avengers 2012 -Johansson, Scarlett We Bought a Zoo 2011 -Johansson, Scarlett Home Alone 3 1997 -Johansson, Scarlett He's Just Not That Into You 2009 -Johansson, Scarlett Iron Man 2 2010 -Johansson, Scarlett The Prestige 2006 -Johansson, Scarlett The Island 2005 -Best, Ben What Happens in Vegas 2008 -Best, Ben Superbad 2007 -Best, Ben Land of the Lost 2009 -Vonlanthen, Philippe American Gangster 2007 -Vonlanthen, Philippe Inside Man 2006 -Vonlanthen, Philippe Bad Company 2002 -Vonlanthen, Philippe Maid in Manhattan 2002 -Sykes, Wanda Down to Earth 2001 -Sykes, Wanda Rio 2011 -Sykes, Wanda Evan Almighty 2007 -Sykes, Wanda Barnyard 2006 -Sykes, Wanda License to Wed 2007 -Sykes, Wanda The Muppets 2011 -Sykes, Wanda Over the Hedge 2006 -Sykes, Wanda Monster-in-Law 2005 -Sykes, Wanda Nutty Professor II: The Klumps 2000 -Harris, Rachael (I) The Haunted Mansion 2003 -Harris, Rachael (I) Diary of a Wimpy Kid 2010 -Harris, Rachael (I) License to Wed 2007 -Harris, Rachael (I) The Hangover 2009 -Harris, Rachael (I) Starsky & Hutch 2004 -Harris, Rachael (I) Evan Almighty 2007 -Harris, Rachael (I) Daddy Day Care 2003 -Harris, Rachael (I) Stuart Little 2 2002 -Harris, Rachael (I) Showtime 2002 -Harris, Rachael (I) After the Sunset 2004 -Harris, Rachael (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Harris, Rachael (I) Kicking & Screaming 2005 -Jay, Baron Artificial Intelligence: AI 2001 -Jay, Baron Minority Report 2002 -Jay, Baron Bedazzled 2000 -Jay, Baron Fight Club 1999 -Jay, Baron Star Trek: Nemesis 2002 -Wickes, Mary One Hundred and One Dalmatians 1961 -Wickes, Mary The Hunchback of Notre Dame 1996 -Wickes, Mary Sister Act 1992 -Romijn, Rebecca X-Men: First Class 2011 -Romijn, Rebecca X-Men 2000 -Romijn, Rebecca Austin Powers: The Spy Who Shagged Me 1999 -Romijn, Rebecca X-Men: The Last Stand 2006 -Romijn, Rebecca X2 2003 -Durning, Charles One Fine Day 1996 -Durning, Charles Tootsie 1982 -Durning, Charles O Brother, Where Art Thou? 2000 -Heard, Amber Zombieland 2009 -Heard, Amber Friday Night Lights 2004 -Heard, Amber Pineapple Express 2008 -Pacino, Al Insomnia 2002 -Pacino, Al The Insider 1999 -Pacino, Al Heat 1995 -Pacino, Al Donnie Brasco 1997 -Pacino, Al Any Given Sunday 1999 -Pacino, Al Ocean's Thirteen 2007 -Pacino, Al Jack and Jill 2011 -Pacino, Al The Godfather 1972 -Pacino, Al The Devil's Advocate 1997 -Pacino, Al Righteous Kill 2008 -Pacino, Al The Recruit 2003 -LaFleur, Art (I) A Cinderella Story 2004 -LaFleur, Art (I) The Santa Clause 3: The Escape Clause 2006 -LaFleur, Art (I) The Replacements 2000 -LaFleur, Art (I) The Santa Clause 2 2002 -LaFleur, Art (I) Speed Racer 2008 -LaFleur, Art (I) Hostage 2005 -Aguilar, G.A. The Stepford Wives 2004 -Aguilar, G.A. Meet the Parents 2000 -Aguilar, G.A. Conspiracy Theory 1997 -Ribisi, Giovanni Saving Private Ryan 1998 -Ribisi, Giovanni Public Enemies 2009 -Ribisi, Giovanni Cold Mountain 2003 -Ribisi, Giovanni Sky Captain and the World of Tomorrow 2004 -Ribisi, Giovanni Gone in Sixty Seconds 2000 -Ribisi, Giovanni Contraband 2012 -Ribisi, Giovanni Lost in Translation 2003 -Ribisi, Giovanni Avatar 2009 -Arthur, Michael (I) Anger Management 2003 -Arthur, Michael (I) World Trade Center 2006 -Arthur, Michael (I) The Bone Collector 1999 -Bassett, Kevin About Last Night... 1986 -Bassett, Kevin Running Scared 1986 -Bassett, Kevin Ferris Bueller's Day Off 1986 -David, Keith (I) Volcano 1997 -David, Keith (I) The Replacements 2000 -David, Keith (I) Final Fantasy: The Spirits Within 2001 -David, Keith (I) Barbershop 2002 -David, Keith (I) Transporter 2 2005 -David, Keith (I) Superhero Movie 2008 -David, Keith (I) Armageddon 1998 -David, Keith (I) Death at a Funeral 2010 -David, Keith (I) There's Something About Mary 1998 -David, Keith (I) The Chronicles of Riddick 2004 -David, Keith (I) Hercules 1997 -David, Keith (I) Where the Heart Is 2000 -David, Keith (I) The Princess and the Frog 2009 -David, Keith (I) Mr. & Mrs. Smith 2005 -David, Keith (I) Coraline 2009 -David, Keith (I) Pitch Black 2000 -Taylor, Erica (I) Rumor Has It... 2005 -Taylor, Erica (I) Showtime 2002 -Taylor, Erica (I) The Truman Show 1998 -Gomez, Selena Horton Hears a Who! 2008 -Gomez, Selena Monte Carlo 2011 -Gomez, Selena Spy Kids 3-D: Game Over 2003 -Gomez, Selena The Muppets 2011 -Alexander, Jane (I) Kramer vs. Kramer 1979 -Alexander, Jane (I) The Ring 2002 -Alexander, Jane (I) Terminator Salvation 2009 -Alexander, Jane (I) The Cider House Rules 1999 -Tolkan, James Top Gun 1986 -Tolkan, James Back to the Future Part III 1990 -Tolkan, James Back to the Future Part II 1989 -Tolkan, James Back to the Future 1985 -Stecklein, Tyne 17 Again 2009 -Stecklein, Tyne This Is It 2009 -Stecklein, Tyne No Strings Attached 2011 -Breen, Michael Patrick Couples Retreat 2009 -Breen, Michael Patrick Funny People 2009 -Breen, Michael Patrick Angels & Demons 2009 -Breen, Michael Patrick Yes Man 2008 -Woodlee, Zachary Hairspray 2007 -Woodlee, Zachary Step Up 2006 -Woodlee, Zachary Charlie's Angels: Full Throttle 2003 -Manoux, J.P. Meet the Fockers 2004 -Manoux, J.P. Bolt 2008 -Manoux, J.P. The Day After Tomorrow 2004 -Manoux, J.P. Scooby Doo 2: Monsters Unleashed 2004 -Manoux, J.P. Inspector Gadget 1999 -Manoux, J.P. Scooby-Doo 2002 -Manoux, J.P. The Island 2005 -Manoux, J.P. Galaxy Quest 1999 -Manoux, J.P. Transformers 2007 -Manoux, J.P. Knocked Up 2007 -Manoux, J.P. Ocean's Eleven 2001 -Ogurtsov, Aleksey Dnevnoy dozor 2006 -Ogurtsov, Aleksey Gitler kaput! 2008 -Ogurtsov, Aleksey Rzhevskiy protiv Napoleona 2012 -Charles, Nancy Linehan Dracula 1992 -Charles, Nancy Linehan Charlie Wilson's War 2007 -Charles, Nancy Linehan Minority Report 2002 -Troyer, Verne Austin Powers: The Spy Who Shagged Me 1999 -Troyer, Verne Harry Potter and the Sorcerer's Stone 2001 -Troyer, Verne Men in Black 1997 -Troyer, Verne Austin Powers in Goldmember 2002 -Troyer, Verne How the Grinch Stole Christmas 2000 -Troyer, Verne Mighty Joe Young 1998 -Sun, Joseph (I) Pirates of the Caribbean: At World's End 2007 -Sun, Joseph (I) Ocean's Thirteen 2007 -Sun, Joseph (I) Made of Honor 2008 -Turner, Kathleen (I) Romancing the Stone 1984 -Turner, Kathleen (I) Baby Geniuses 1999 -Turner, Kathleen (I) Who Framed Roger Rabbit 1988 -Turner, Kathleen (I) The Jewel of the Nile 1985 -Turner, Kathleen (I) Monster House 2006 -Turner, Kathleen (I) Marley & Me 2008 -Russo, Rene (I) Showtime 2002 -Russo, Rene (I) In the Line of Fire 1993 -Russo, Rene (I) Tin Cup 1996 -Russo, Rene (I) Ransom 1996 -Russo, Rene (I) Lethal Weapon 4 1998 -Russo, Rene (I) The Thomas Crown Affair 1999 -Russo, Rene (I) Outbreak 1995 -Russo, Rene (I) Yours, Mine and Ours 2005 -Russo, Rene (I) Lethal Weapon 3 1992 -Russo, Rene (I) Thor 2011 -Rains, Luce Legion 2009 -Rains, Luce 3:10 to Yuma 2007 -Rains, Luce No Country for Old Men 2007 -Martineau, Jeff The Social Network 2010 -Martineau, Jeff The Fighter 2010 -Martineau, Jeff Grown Ups 2010 -Martineau, Jeff The Town 2010 -Martineau, Jeff Knight and Day 2010 -Pedrad, Nasim The Dictator 2012 -Pedrad, Nasim No Strings Attached 2011 -Pedrad, Nasim The Lorax 2012 -Coltrane, Robbie Harry Potter and the Goblet of Fire 2005 -Coltrane, Robbie GoldenEye 1995 -Coltrane, Robbie Harry Potter and the Deathly Hallows: Part 2 2011 -Coltrane, Robbie Harry Potter and the Half-Blood Prince 2009 -Coltrane, Robbie Brave 2012 -Coltrane, Robbie Message in a Bottle 1999 -Coltrane, Robbie The World Is Not Enough 1999 -Coltrane, Robbie Van Helsing 2004 -Coltrane, Robbie The Tale of Despereaux 2008 -Coltrane, Robbie From Hell 2001 -Coltrane, Robbie Harry Potter and the Order of the Phoenix 2007 -Coltrane, Robbie Ocean's Twelve 2004 -Coltrane, Robbie Harry Potter and the Prisoner of Azkaban 2004 -Coltrane, Robbie Harry Potter and the Chamber of Secrets 2002 -Coltrane, Robbie Harry Potter and the Deathly Hallows: Part 1 2010 -Coltrane, Robbie Harry Potter and the Sorcerer's Stone 2001 -Taylor, Scott Alan Something's Gotta Give 2003 -Taylor, Scott Alan The Terminal 2004 -Taylor, Scott Alan Cellular 2004 -McDonough, Neal Minority Report 2002 -McDonough, Neal Captain America: The First Avenger 2011 -McDonough, Neal Magnificent Desolation: Walking on the Moon 3D 2005 -McDonough, Neal Star Trek: First Contact 1996 -Cassini, John Catwoman 2004 -Cassini, John Halloween H20: 20 Years Later 1998 -Cassini, John Paycheck 2003 -Cassini, John Se7en 1995 -Cassini, John The Game 1997 -Close, Joshua The Exorcism of Emily Rose 2005 -Close, Joshua The Day the Earth Stood Still 2008 -Close, Joshua K-19: The Widowmaker 2002 -Kilner, Kevin American Pie 2 2001 -Kilner, Kevin A Cinderella Story 2004 -Kilner, Kevin Home Alone 3 1997 -Kilner, Kevin Raising Helen 2004 -Leahy, Mark (I) Inspector Gadget 1999 -Leahy, Mark (I) Batman & Robin 1997 -Leahy, Mark (I) Me, Myself & Irene 2000 -Bell, Dexter Scary Movie 3 2003 -Bell, Dexter Scary Movie 2000 -Bell, Dexter The Pink Panther 2006 -Bell, Dexter Eight Below 2006 -Bell, Dexter Scary Movie 4 2006 -Washington, Isaiah Exit Wounds 2001 -Washington, Isaiah Step Up 2006 -Washington, Isaiah Ghost Ship 2002 -Washington, Isaiah Romeo Must Die 2000 -Gantt, Mark Ocean's Eleven 2001 -Gantt, Mark Volcano 1997 -Gantt, Mark Charlie's Angels: Full Throttle 2003 -Chamberlin, Kevin In & Out 1997 -Chamberlin, Kevin Road to Perdition 2002 -Chamberlin, Kevin Christmas with the Kranks 2004 -Chamberlin, Kevin Die Hard: With a Vengeance 1995 -Gajjar, Reshma (I) A Cinderella Story 2004 -Gajjar, Reshma (I) American Beauty 1999 -Gajjar, Reshma (I) 500) Days of Summer 2009 -Redman, Erich Captain America: The First Avenger 2011 -Redman, Erich The Illusionist 2006 -Redman, Erich United 93 2006 -Redman, Erich Saving Private Ryan 1998 -Redman, Erich U-571 2000 -Popplewell, Anna The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Popplewell, Anna The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Popplewell, Anna The Chronicles of Narnia: Prince Caspian 2008 -Lam, Larry Shanghai Noon 2000 -Lam, Larry Romeo Must Die 2000 -Lam, Larry The Mummy: Tomb of the Dragon Emperor 2008 -Grant, Erica Space Cowboys 2000 -Grant, Erica Changeling 2008 -Grant, Erica Million Dollar Baby 2004 -Castle, Robert W. The Manchurian Candidate 2004 -Castle, Robert W. Philadelphia 1993 -Castle, Robert W. Cop Land 1997 -Castle, Robert W. Sleepers 1996 -Gielgud, John Elizabeth 1998 -Gielgud, John Gandhi 1982 -Gielgud, John Chariots of Fire 1981 -Gielgud, John Shine 1996 -Gielgud, John DragonHeart 1996 -Gielgud, John Arthur 1981 -McCharen, David Fatal Attraction 1987 -McCharen, David Final Fantasy: The Spirits Within 2001 -McCharen, David Ice Age: Dawn of the Dinosaurs 2009 -McCharen, David The Lion King 1994 -McCharen, David Dinosaur 2000 -McCharen, David The Nightmare Before Christmas 1993 -Corley, Annie The Cider House Rules 1999 -Corley, Annie Law Abiding Citizen 2009 -Corley, Annie Malcolm X 1992 -Corley, Annie Monster 2003 -Corley, Annie Seabiscuit 2003 -Corley, Annie Crazy Heart 2009 -Keiffer, Dennis The Green Hornet 2011 -Keiffer, Dennis Batman & Robin 1997 -Keiffer, Dennis The Rundown 2003 -Keiffer, Dennis Mortal Kombat: Annihilation 1997 -Chaykin, Maury Entrapment 1999 -Chaykin, Maury Mousehunt 1997 -Chaykin, Maury Dances with Wolves 1990 -Chaykin, Maury The Mask of Zorro 1998 -Hauser, Cole Pitch Black 2000 -Hauser, Cole The Break-Up 2006 -Hauser, Cole Tears of the Sun 2003 -Hauser, Cole 2 Fast 2 Furious 2003 -Hauser, Cole Good Will Hunting 1997 -Smith, Kerr Final Destination 2000 -Smith, Kerr Final Destination 5 2011 -Smith, Kerr My Bloody Valentine 2009 -Wahlquist, Heather John Q 2002 -Wahlquist, Heather My Sister's Keeper 2009 -Wahlquist, Heather The Notebook 2004 -Ellis, Chris (I) Godzilla 1998 -Ellis, Chris (I) Wag the Dog 1997 -Ellis, Chris (I) The Island 2005 -Ellis, Chris (I) Live Free or Die Hard 2007 -Ellis, Chris (I) Apollo 13 1995 -Ellis, Chris (I) October Sky 1999 -Ellis, Chris (I) G-Force 2009 -Ellis, Chris (I) Catch Me If You Can 2002 -Ellis, Chris (I) Fun with Dick and Jane 2005 -Ellis, Chris (I) Bean 1997 -Ellis, Chris (I) Con Air 1997 -Ellis, Chris (I) Armageddon 1998 -Ellis, Chris (I) Domestic Disturbance 2001 -Ellis, Chris (I) Transformers 2007 -Aninsman, Andrew The Departed 2006 -Aninsman, Andrew Ladder 49 2004 -Aninsman, Andrew Rocky Balboa 2006 -Shonka, J. Scott The Lost World: Jurassic Park 1997 -Shonka, J. Scott Air Force One 1997 -Shonka, J. Scott The Perfect Storm 2000 -Osborne, Holmes D-War 2007 -Osborne, Holmes Larry Crowne 2011 -Osborne, Holmes Windtalkers 2002 -Osborne, Holmes Bring It On 2000 -Osborne, Holmes Identity 2003 -Osborne, Holmes Anchorman: The Legend of Ron Burgundy 2004 -Osborne, Holmes Cheaper by the Dozen 2003 -Osborne, Holmes Domestic Disturbance 2001 -Watanabe, Gedde Forgetting Sarah Marshall 2008 -Watanabe, Gedde Mulan 1998 -Watanabe, Gedde Gung Ho 1986 -Watanabe, Gedde Armageddon 1998 -Glover, Julian For Your Eyes Only 1981 -Glover, Julian Star Wars: Episode V - The Empire Strikes Back 1980 -Glover, Julian Troy 2004 -Glover, Julian Harry Potter and the Chamber of Secrets 2002 -Glover, Julian Indiana Jones and the Last Crusade 1989 -Hiddleston, Tom (I) Thor 2011 -Hiddleston, Tom (I) War Horse 2011 -Hiddleston, Tom (I) Midnight in Paris 2011 -Hiddleston, Tom (I) The Avengers 2012 -Darbo, Patrika Rango 2011 -Darbo, Patrika In the Line of Fire 1993 -Darbo, Patrika Babe 1995 -Darbo, Patrika Charlie Wilson's War 2007 -Darbo, Patrika Speed 2: Cruise Control 1997 -Darbo, Patrika Mr. & Mrs. Smith 2005 -Bay, Frances The Wedding Planner 2001 -Bay, Frances Inspector Gadget 1999 -Bay, Frances The Karate Kid 1984 -Oliver, Mark (I) Scream 2 1997 -Oliver, Mark (I) We Are Marshall 2006 -Oliver, Mark (I) Sweet Home Alabama 2002 -Khan, Marco Pirates of the Caribbean: Dead Man's Chest 2006 -Khan, Marco 10,000 BC 2008 -Khan, Marco Click 2006 -Khan, Marco You Don't Mess with the Zohan 2008 -Khan, Marco Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Ducommun, Rick Die Hard 1988 -Ducommun, Rick Scary Movie 2000 -Ducommun, Rick Groundhog Day 1993 -Ducommun, Rick The Hunt for Red October 1990 -Ducommun, Rick Like Mike 2002 -Ducommun, Rick Last Action Hero 1993 -Lavin, Peter Eragon 2006 -Lavin, Peter Mr. & Mrs. Smith 2005 -Lavin, Peter Beowulf 2007 -Lavin, Peter Garfield: A Tail of Two Kitties 2006 -Cox, Brian (I) The Bourne Identity 2002 -Cox, Brian (I) The Long Kiss Goodnight 1996 -Cox, Brian (I) Troy 2004 -Cox, Brian (I) The Bourne Supremacy 2004 -Cox, Brian (I) The Ring 2002 -Cox, Brian (I) X2 2003 -Cox, Brian (I) Rise of the Planet of the Apes 2011 -Cox, Brian (I) Kiss the Girls 1997 -Cox, Brian (I) The Bourne Ultimatum 2007 -Cox, Brian (I) The Rookie 2002 -Cox, Brian (I) The Water Horse 2007 -Cox, Brian (I) Braveheart 1995 -Cox, Brian (I) Red Eye 2005 -Ingleby, Lee EverAfter 1998 -Ingleby, Lee Harry Potter and the Prisoner of Azkaban 2004 -Ingleby, Lee Master and Commander: The Far Side of the World 2003 -Gonzales, Steve (II) Unstoppable 2010 -Gonzales, Steve (II) G.I. Jane 1997 -Gonzales, Steve (II) Man on Fire 2004 -Gonzales, Steve (II) Enemy of the State 1998 -Emery, Gideon Terminator Salvation 2009 -Emery, Gideon Takers 2010 -Emery, Gideon Invictus 2009 -Modine, Matthew Notting Hill 1999 -Modine, Matthew Transporter 2 2005 -Modine, Matthew Any Given Sunday 1999 -Brown, Jophery C. Universal Soldier 1992 -Brown, Jophery C. The Relic 1997 -Brown, Jophery C. Sudden Impact 1983 -Brown, Jophery C. Jurassic Park 1993 -Brown, Jophery C. Spider-Man 2002 -Brown, Jophery C. Rocky III 1982 -Harris, Neil Patrick Starship Troopers 1997 -Harris, Neil Patrick The Muppets 2011 -Harris, Neil Patrick Cloudy with a Chance of Meatballs 2009 -Harris, Neil Patrick American Reunion 2012 -Harris, Neil Patrick The Smurfs 2011 -Harris, Neil Patrick Cats & Dogs: The Revenge of Kitty Galore 2010 -Haynie, Jim Bringing Down the House 2003 -Haynie, Jim The Peacemaker 1997 -Haynie, Jim Pretty in Pink 1986 -Bailey, John (XXI) We Are Marshall 2006 -Bailey, John (XXI) American Reunion 2012 -Bailey, John (XXI) The Ugly Truth 2009 -Bailey, John (XXI) Angels & Demons 2009 -Bailey, John (XXI) The Hangover 2009 -Bailey, John (XXI) Thor 2011 -Applegate, Royce D. Seabiscuit 2003 -Applegate, Royce D. Doctor Dolittle 1998 -Applegate, Royce D. Rain Man 1988 -Applegate, Royce D. The Rookie 2002 -Applegate, Royce D. Intolerable Cruelty 2003 -Applegate, Royce D. O Brother, Where Art Thou? 2000 -Black, Rachel (II) Michael Clayton 2007 -Black, Rachel (II) Men in Black 3 2012 -Black, Rachel (II) Inside Man 2006 -von Roon, Alexander The Pink Panther 2006 -von Roon, Alexander Syriana 2005 -von Roon, Alexander The Island 2005 -Wilson, Chris (XXIX) V for Vendetta 2005 -Wilson, Chris (XXIX) The Da Vinci Code 2006 -Wilson, Chris (XXIX) Get Him to the Greek 2010 -Wilson, Chris (XXIX) The Golden Compass 2007 -Wilson, Chris (XXIX) The Bourne Ultimatum 2007 -Salley, John Confessions of a Shopaholic 2009 -Salley, John Bad Boys 1995 -Salley, John Bad Boys II 2003 -Wolov, Julia Lea Just Go with It 2011 -Wolov, Julia Lea You Don't Mess with the Zohan 2008 -Wolov, Julia Lea Bedtime Stories 2008 -Adams, Jane (II) Lemony Snicket's A Series of Unfortunate Events 2004 -Adams, Jane (II) The Brave One 2007 -Adams, Jane (II) You've Got Mail 1998 -Adams, Jane (II) Eternal Sunshine of the Spotless Mind 2004 -Adams, Jane (II) Wonder Boys 2000 -Yama, Michael Indiana Jones and the Temple of Doom 1984 -Yama, Michael Down and Out in Beverly Hills 1986 -Yama, Michael Bachelor Party 1984 -Yama, Michael Click 2006 -Randazzo, Steven Ali 2001 -Randazzo, Steven Malcolm X 1992 -Randazzo, Steven Autumn in New York 2000 -Gosnell, Bradley The Smurfs 2011 -Gosnell, Bradley Scooby Doo 2: Monsters Unleashed 2004 -Gosnell, Bradley Scooby-Doo 2002 -Gosnell, Bradley Yours, Mine and Ours 2005 -Elise, Kimberly John Q 2002 -Elise, Kimberly The Manchurian Candidate 2004 -Elise, Kimberly Set It Off 1996 -Suarez, Jeremy Jerry Maguire 1996 -Suarez, Jeremy Treasure Planet 2002 -Suarez, Jeremy Fat Albert 2004 -Suarez, Jeremy Brother Bear 2003 -Suarez, Jeremy The Ladykillers 2004 -Kleber, Rick Ghost 1990 -Kleber, Rick My Favorite Martian 1999 -Kleber, Rick Hook 1991 -Azad, Afshan Harry Potter and the Deathly Hallows: Part 1 2010 -Azad, Afshan Harry Potter and the Order of the Phoenix 2007 -Azad, Afshan Harry Potter and the Deathly Hallows: Part 2 2011 -Azad, Afshan Harry Potter and the Half-Blood Prince 2009 -Azad, Afshan Harry Potter and the Goblet of Fire 2005 -Campbell, Neve Scream 2 1997 -Campbell, Neve Scream 4 2011 -Campbell, Neve Scream 1996 -Campbell, Neve Scream 3 2000 -Meadows, Samuel Real Steel 2011 -Meadows, Samuel Source Code 2011 -Meadows, Samuel Contagion 2011 -Meadows, Samuel The Vow 2012 -Youcef, Ben Eagle Eye 2008 -Youcef, Ben Munich 2005 -Youcef, Ben The Bourne Ultimatum 2007 -Basche, David Alan Real Steel 2011 -Basche, David Alan The Adjustment Bureau 2011 -Basche, David Alan Sex and the City 2 2010 -Basche, David Alan United 93 2006 -Winslow, Michael (I) Police Academy 3: Back in Training 1986 -Winslow, Michael (I) Police Academy 2: Their First Assignment 1985 -Winslow, Michael (I) Police Academy 1984 -Griffin, Douglas M. Runaway Jury 2003 -Griffin, Douglas M. The Lucky One 2012 -Griffin, Douglas M. Deja Vu 2006 -Griffin, Douglas M. Green Lantern 2011 -Griffin, Douglas M. Glory Road 2006 -Scott, Esther (II) The Kid 2000 -Scott, Esther (II) Fun with Dick and Jane 2005 -Scott, Esther (II) Dreamgirls 2006 -Scott, Esther (II) Austin Powers in Goldmember 2002 -Scott, Esther (II) The Pursuit of Happyness 2006 -Scott, Esther (II) Transformers 2007 -Hitchcock, Michael (I) Wild Hogs 2007 -Hitchcock, Michael (I) Bridesmaids 2011 -Hitchcock, Michael (I) Super 8 2011 -Johnson, Jake M. Get Him to the Greek 2010 -Johnson, Jake M. 21 Jump Street 2012 -Johnson, Jake M. No Strings Attached 2011 -Glick, Danielle Salt 2010 -Glick, Danielle Confessions of a Shopaholic 2009 -Glick, Danielle The Taking of Pelham 1 2 3 2009 -Spink, Daniel The Butterfly Effect 2004 -Spink, Daniel Invincible 2006 -Spink, Daniel American Pie 1999 -Spink, Daniel American Pie 2 2001 -Hutchison, Doug Con Air 1997 -Hutchison, Doug I Am Sam 2001 -Hutchison, Doug Batman & Robin 1997 -Hutchison, Doug A Time to Kill 1996 -Hutchison, Doug The Green Mile 1999 -Hutchison, Doug Shaft 2000 -Dowd, Ann The Manchurian Candidate 2004 -Dowd, Ann Garden State 2004 -Dowd, Ann Philadelphia 1993 -Dowd, Ann Marley & Me 2008 -Dowd, Ann The Forgotten 2004 -Flanagan, Maile Rango 2011 -Flanagan, Maile Transformers: Dark of the Moon 2011 -Flanagan, Maile 500) Days of Summer 2009 -Flanagan, Maile Ice Age: Dawn of the Dinosaurs 2009 -Flanagan, Maile Evan Almighty 2007 -Flanagan, Maile Yes Man 2008 -Flanagan, Maile Phone Booth 2002 -Oldman, Gary Harry Potter and the Goblet of Fire 2005 -Oldman, Gary Harry Potter and the Deathly Hallows: Part 2 2011 -Oldman, Gary Batman Begins 2005 -Oldman, Gary Tinker Tailor Soldier Spy 2011 -Oldman, Gary The Fifth Element 1997 -Oldman, Gary A Christmas Carol 2009 -Oldman, Gary Air Force One 1997 -Oldman, Gary The Book of Eli 2010 -Oldman, Gary Kung Fu Panda 2 2011 -Oldman, Gary Hannibal 2001 -Oldman, Gary Dracula 1992 -Oldman, Gary Planet 51 2009 -Oldman, Gary Harry Potter and the Prisoner of Azkaban 2004 -Oldman, Gary JFK 1991 -Oldman, Gary Lost in Space 1998 -Oldman, Gary Harry Potter and the Order of the Phoenix 2007 -Riordan, Daniel (I) Jingle All the Way 1996 -Riordan, Daniel (I) The Tale of Despereaux 2008 -Riordan, Daniel (I) Dreamgirls 2006 -Newman, Jack (II) Down to Earth 2001 -Newman, Jack (II) Mean Girls 2004 -Newman, Jack (II) Superstar 1999 -Newman, Jack (II) The Santa Clause 1994 -McDavid, Laura The Devil Wears Prada 2006 -McDavid, Laura Spider-Man 3 2007 -McDavid, Laura Crazy, Stupid, Love. 2011 -Sherman, Don (I) Rocky Balboa 2006 -Sherman, Don (I) Rocky V 1990 -Sherman, Don (I) Rocky III 1982 -Rodriguez, Jose L. Salt 2010 -Rodriguez, Jose L. The Sixth Sense 1999 -Rodriguez, Jose L. Signs 2002 -Rodriguez, Jose L. Unbreakable 2000 -Stallone, Sylvester Daylight 1996 -Stallone, Sylvester Rocky V 1990 -Stallone, Sylvester Rocky III 1982 -Stallone, Sylvester Zookeeper 2011 -Stallone, Sylvester Rocky Balboa 2006 -Stallone, Sylvester CyberWorld 2000 -Stallone, Sylvester Spy Kids 3-D: Game Over 2003 -Stallone, Sylvester Cliffhanger 1993 -Stallone, Sylvester First Blood 1982 -Stallone, Sylvester Rambo III 1988 -Stallone, Sylvester Rambo: First Blood Part II 1985 -Stallone, Sylvester Cop Land 1997 -Stallone, Sylvester Antz 1998 -Stallone, Sylvester Men in Black 1997 -Stallone, Sylvester Rocky IV 1985 -Stallone, Sylvester Rambo 2008 -Stallone, Sylvester The Expendables 2010 -Moreno Jr., Carlos Happy Feet Two 2011 -Moreno Jr., Carlos Coach Carter 2005 -Moreno Jr., Carlos Four Brothers 2005 -Moreno Jr., Carlos Transformers 2007 -McKeown, Denis Mona Lisa Smile 2003 -McKeown, Denis The Devil Wears Prada 2006 -McKeown, Denis The Interpreter 2005 -Macnamara, Pete The Manchurian Candidate 2004 -Macnamara, Pete Changing Lanes 2002 -Macnamara, Pete Catch Me If You Can 2002 -Macnamara, Pete Spider-Man 2002 -Macnamara, Pete Men in Black II 2002 -Mitchell, Mike (VI) Shrek Forever After 2010 -Mitchell, Mike (VI) Puss in Boots 2011 -Mitchell, Mike (VI) Megamind 2010 -Mitchell, Mike (VI) Monsters vs Aliens 2009 -Haas, Lukas (I) Zoolander 2001 -Haas, Lukas (I) Inception 2010 -Haas, Lukas (I) Mars Attacks! 1996 -Haas, Lukas (I) Contraband 2012 -Tank, Hayden Freaky Friday 2003 -Tank, Hayden Rules of Engagement 2000 -Tank, Hayden Space Cowboys 2000 -Tank, Hayden The Perfect Storm 2000 -Genet, Michael (I) Presumed Innocent 1990 -Genet, Michael (I) One Fine Day 1996 -Genet, Michael (I) Wall Street: Money Never Sleeps 2010 -French, Colby Bruce Almighty 2003 -French, Colby Changeling 2008 -French, Colby Eagle Eye 2008 -Cressida, Kathryn Van Helsing 2004 -Cressida, Kathryn Bride Wars 2009 -Cressida, Kathryn Madagascar 2005 -Cressida, Kathryn Shark Tale 2004 -Cressida, Kathryn Tarzan 1999 -Cressida, Kathryn Fantastic Four 2005 -Mitchell, Kirby The Interpreter 2005 -Mitchell, Kirby The Birdcage 1996 -Mitchell, Kirby Charlie Wilson's War 2007 -Richards, Denise Starship Troopers 1997 -Richards, Denise The World Is Not Enough 1999 -Richards, Denise Scary Movie 3 2003 -Richards, Denise Love Actually 2003 -Woodruff Jr., Tom Alien³ 1992 -Woodruff Jr., Tom AVP: Alien vs. Predator 2004 -Woodruff Jr., Tom Michael 1996 -Woodruff Jr., Tom Evolution 2001 -Woodruff Jr., Tom Race to Witch Mountain 2009 -Woodruff Jr., Tom Bedazzled 2000 -Woodruff Jr., Tom Jumanji 1995 -Woodruff Jr., Tom The X Files 1998 -Woodruff Jr., Tom Alien: Resurrection 1997 -Woodruff Jr., Tom Hollow Man 2000 -Woodruff Jr., Tom AVPR: Aliens vs Predator - Requiem 2007 -Woodruff Jr., Tom Mortal Kombat 1995 -Woodruff Jr., Tom Zookeeper 2011 -Rhind-Tutt, Julian Lara Croft: Tomb Raider 2001 -Rhind-Tutt, Julian Stardust 2007 -Rhind-Tutt, Julian Notting Hill 1999 -Rhind-Tutt, Julian The Saint 1997 -Rhind-Tutt, Julian Tomorrow Never Dies 1997 -MacVittie, Bruce Hannibal 2001 -MacVittie, Bruce Million Dollar Baby 2004 -MacVittie, Bruce The Peacemaker 1997 -Wells-Gunkel, Wendy Miami Vice 2006 -Wells-Gunkel, Wendy Miss Congeniality 2000 -Wells-Gunkel, Wendy Top Gun 1986 -Wells-Gunkel, Wendy Rush Hour 3 2007 -Sutton, Carol 21 Jump Street 2012 -Sutton, Carol The Help 2011 -Sutton, Carol Deja Vu 2006 -Sutton, Carol Runaway Jury 2003 -Sutton, Carol Glory Road 2006 -Hoult, Nicholas X-Men: First Class 2011 -Hoult, Nicholas About a Boy 2002 -Hoult, Nicholas Clash of the Titans 2010 -Baird, Diora The Texas Chainsaw Massacre: The Beginning 2006 -Baird, Diora Star Trek 2009 -Baird, Diora Wedding Crashers 2005 -Baird, Diora Hot Tub Time Machine 2010 -Pickleman, Brenda (I) U.S. Marshals 1998 -Pickleman, Brenda (I) Save the Last Dance 2001 -Pickleman, Brenda (I) Groundhog Day 1993 -So, Lina Ocean's Thirteen 2007 -So, Lina Rush Hour 2 2001 -So, Lina You Don't Mess with the Zohan 2008 -Armisen, Fred Cop Out 2010 -Armisen, Fred Anchorman: The Legend of Ron Burgundy 2004 -Armisen, Fred Baby Mama 2008 -Armisen, Fred Confessions of a Shopaholic 2009 -Armisen, Fred Easy A 2010 -Armisen, Fred The Smurfs 2011 -Armisen, Fred Cats & Dogs: The Revenge of Kitty Galore 2010 -Armisen, Fred Like Mike 2002 -Armisen, Fred The Dictator 2012 -Umberger, Andy Unstoppable 2010 -Umberger, Andy Coach Carter 2005 -Umberger, Andy S.W.A.T. 2003 -Umberger, Andy Deja Vu 2006 -Ames, Christine Angels & Demons 2009 -Ames, Christine J. Edgar 2011 -Ames, Christine Bridesmaids 2011 -Picardo, Robert Small Soldiers 1998 -Picardo, Robert Pirates of the Caribbean: At World's End 2007 -Picardo, Robert Total Recall 1990 -Picardo, Robert Star Trek: First Contact 1996 -Eckhart, Aaron Paycheck 2003 -Eckhart, Aaron Any Given Sunday 1999 -Eckhart, Aaron No Reservations 2007 -Eckhart, Aaron Thank You for Smoking 2005 -Eckhart, Aaron Battle Los Angeles 2011 -Eckhart, Aaron The Core 2003 -Eckhart, Aaron Erin Brockovich 2000 -Smith, Michael Bailey (I) Men in Black II 2002 -Smith, Michael Bailey (I) The Master of Disguise 2002 -Smith, Michael Bailey (I) The Hills Have Eyes 2006 -Smith, Michael Bailey (I) My Favorite Martian 1999 -Lo, Chi Muoi Indecent Proposal 1993 -Lo, Chi Muoi The Relic 1997 -Lo, Chi Muoi Ghosts of Girlfriends Past 2009 -Halse, Jody National Treasure 2004 -Halse, Jody Sweeney Todd: The Demon Barber of Fleet Street 2007 -Halse, Jody The Golden Compass 2007 -Halse, Jody Pirates of the Caribbean: On Stranger Tides 2011 -Perkins, Ajani Four Christmases 2008 -Perkins, Ajani G.I. Joe: The Rise of Cobra 2009 -Perkins, Ajani Hereafter 2010 -Scott, Donna W. Deja Vu 2006 -Scott, Donna W. Enemy of the State 1998 -Scott, Donna W. Water for Elephants 2011 -Scott, Donna W. Austin Powers: International Man of Mystery 1997 -Feore, Colm Chicago 2002 -Feore, Colm Paycheck 2003 -Feore, Colm The Exorcism of Emily Rose 2005 -Feore, Colm The Chronicles of Riddick 2004 -Feore, Colm The Sum of All Fears 2002 -Feore, Colm Face/Off 1997 -Feore, Colm City of Angels 1998 -Feore, Colm The Insider 1999 -Feore, Colm Pearl Harbor 2001 -Feore, Colm Changeling 2008 -Feore, Colm Thor 2011 -Chieffo, Michael (I) Mercury Rising 1998 -Chieffo, Michael (I) Last Action Hero 1993 -Chieffo, Michael (I) L.A. Confidential 1997 -Chieffo, Michael (I) The Ring Two 2005 -Chieffo, Michael (I) My Favorite Martian 1999 -Chieffo, Michael (I) Disclosure 1994 -Roundtree, Richard Se7en 1995 -Roundtree, Richard Shaft 2000 -Roundtree, Richard George of the Jungle 1997 -Roundtree, Richard Speed Racer 2008 -Edner, Bobby Monsters, Inc. 2001 -Edner, Bobby The Jungle Book 2 2003 -Edner, Bobby Spy Kids 3-D: Game Over 2003 -Keitel, Harvey Pulp Fiction 1994 -Keitel, Harvey National Treasure 2004 -Keitel, Harvey Sister Act 1992 -Keitel, Harvey Red Dragon 2002 -Keitel, Harvey Little Nicky 2000 -Keitel, Harvey U-571 2000 -Keitel, Harvey Little Fockers 2010 -Keitel, Harvey National Treasure: Book of Secrets 2007 -Keitel, Harvey Cop Land 1997 -Keitel, Harvey Inglourious Basterds 2009 -Elliott, Chris (I) Nutty Professor II: The Klumps 2000 -Elliott, Chris (I) Snow Day 2000 -Elliott, Chris (I) Scary Movie 4 2006 -Elliott, Chris (I) There's Something About Mary 1998 -Elliott, Chris (I) Scary Movie 2 2001 -Elliott, Chris (I) The Dictator 2012 -Elliott, Chris (I) Groundhog Day 1993 -Calderón, Sergio (I) Men in Black 1997 -Calderón, Sergio (I) Pirates of the Caribbean: At World's End 2007 -Calderón, Sergio (I) Little Fockers 2010 -Reno, Jean (I) The Pink Panther 2006 -Reno, Jean (I) The Da Vinci Code 2006 -Reno, Jean (I) Flushed Away 2006 -Reno, Jean (I) Couples Retreat 2009 -Reno, Jean (I) Godzilla 1998 -Reno, Jean (I) Ronin 1998 -Reno, Jean (I) Mission: Impossible 1996 -Maronna, Michael C. Home Alone 2: Lost in New York 1992 -Maronna, Michael C. Home Alone 1990 -Maronna, Michael C. 40 Days and 40 Nights 2002 -Wolf-La'Moy, Christian The Wolfman 2010 -Wolf-La'Moy, Christian Batman 1989 -Wolf-La'Moy, Christian Snow White and the Huntsman 2012 -Wolf-La'Moy, Christian Robin Hood 2010 -Cantafio, Jim Live Free or Die Hard 2007 -Cantafio, Jim Million Dollar Baby 2004 -Cantafio, Jim Changeling 2008 -Martin, Rudolf Nochnoy dozor 2004 -Martin, Rudolf Bedazzled 2000 -Martin, Rudolf Swordfish 2001 -O'Ross, Ed Terminator Salvation 2009 -O'Ross, Ed Curious George 2006 -O'Ross, Ed Universal Soldier 1992 -Chapman, Brent Diary of a Wimpy Kid 2010 -Chapman, Brent Freddy vs. Jason 2003 -Chapman, Brent The Lizzie McGuire Movie 2003 -Chapman, Brent Miracle 2004 -Osorio, Rafael (I) Mr. Popper's Penguins 2011 -Osorio, Rafael (I) Ransom 1996 -Osorio, Rafael (I) Inside Man 2006 -Reed, Nikki (I) The Twilight Saga: Breaking Dawn - Part 1 2011 -Reed, Nikki (I) New Moon 2009 -Reed, Nikki (I) The Twilight Saga: Eclipse 2010 -Jackson, Richard (I) Alvin and the Chipmunks: The Squeakquel 2009 -Jackson, Richard (I) A Cinderella Story 2004 -Jackson, Richard (I) Fat Albert 2004 -Da Silva Jr., Luis The Brave One 2007 -Da Silva Jr., Luis Fast Five 2011 -Da Silva Jr., Luis 21 Jump Street 2012 -Maillet, Robert (I) Sherlock Holmes 2009 -Maillet, Robert (I) 300 2006 -Maillet, Robert (I) Immortals 2011 -Michalski, Jeff (I) The Cable Guy 1996 -Michalski, Jeff (I) Coyote Ugly 2000 -Michalski, Jeff (I) The Princess Diaries 2001 -Michalski, Jeff (I) Pretty Woman 1990 -Michalski, Jeff (I) The Princess Diaries 2: Royal Engagement 2004 -Wagner, Robert (I) Austin Powers: The Spy Who Shagged Me 1999 -Wagner, Robert (I) Austin Powers: International Man of Mystery 1997 -Wagner, Robert (I) Austin Powers in Goldmember 2002 -Baker, Sala Star Trek 2009 -Baker, Sala The Book of Eli 2010 -Baker, Sala The Lord of the Rings: The Return of the King 2003 -Baker, Sala The Lord of the Rings: The Two Towers 2002 -Baker, Sala The Lord of the Rings: The Fellowship of the Ring 2001 -Andrews, Naveen The Brave One 2007 -Andrews, Naveen Mighty Joe Young 1998 -Andrews, Naveen The English Patient 1996 -Chase, Cheryl (I) The Rugrats Movie 1998 -Chase, Cheryl (I) Rugrats Go Wild 2003 -Chase, Cheryl (I) Rugrats in Paris: The Movie - Rugrats II 2000 -Walter, Lisa Ann Bruce Almighty 2003 -Walter, Lisa Ann Shall We Dance 2004 -Walter, Lisa Ann Killers 2010 -Walter, Lisa Ann The Parent Trap 1998 -Sharian, John The Fifth Element 1997 -Sharian, John Lost in Space 1998 -Sharian, John Chicken Run 2000 -Sharian, John Love Actually 2003 -Sharian, John Calendar Girls 2003 -Sharian, John Saving Private Ryan 1998 -Harris, Jared (I) Lost in Space 1998 -Harris, Jared (I) Resident Evil: Apocalypse 2004 -Harris, Jared (I) Ocean's Twelve 2004 -Harris, Jared (I) Sherlock Holmes: A Game of Shadows 2011 -Harris, Jared (I) The Curious Case of Benjamin Button 2008 -Harris, Jared (I) Lady in the Water 2006 -Harris, Jared (I) Mr. Deeds 2002 -Leung, Ken (I) The Family Man 2000 -Leung, Ken (I) Inside Man 2006 -Leung, Ken (I) Keeping the Faith 2000 -Leung, Ken (I) X-Men: The Last Stand 2006 -Leung, Ken (I) Spy Game 2001 -Leung, Ken (I) Vanilla Sky 2001 -Leung, Ken (I) Rush Hour 1998 -Leung, Ken (I) Saw 2004 -Leung, Ken (I) Red Dragon 2002 -Leung, Ken (I) Artificial Intelligence: AI 2001 -Myers, Ken (IV) The Last Airbender 2010 -Myers, Ken (IV) The Happening 2008 -Myers, Ken (IV) Law Abiding Citizen 2009 -Mantel, Henriette The Animal 2001 -Mantel, Henriette Sex and the City 2008 -Mantel, Henriette Grown Ups 2010 -Hagood, Antwoin Sex and the City 2008 -Hagood, Antwoin Hancock 2008 -Hagood, Antwoin Baby Mama 2008 -De Zarn, Tim Gone in Sixty Seconds 2000 -De Zarn, Tim The Cabin in the Woods 2011 -De Zarn, Tim Spider-Man 2002 -De Zarn, Tim Pay It Forward 2000 -De Zarn, Tim Fight Club 1999 -De Zarn, Tim The Artist 2011 -De Zarn, Tim Live Free or Die Hard 2007 -De Zarn, Tim The Texas Chainsaw Massacre: The Beginning 2006 -Graf, Allan Total Recall 1990 -Graf, Allan Universal Soldier 1992 -Graf, Allan Any Given Sunday 1999 -Graf, Allan RoboCop 1987 -Graf, Allan Magnolia 1999 -Graf, Allan Poltergeist 1982 -Graf, Allan The Replacements 2000 -Graf, Allan L.A. Confidential 1997 -Graf, Allan Boogie Nights 1997 -Brewster, Jordana The Fast and the Furious 2001 -Brewster, Jordana The Faculty 1998 -Brewster, Jordana Fast Five 2011 -Brewster, Jordana Fast & Furious 2009 -Brewster, Jordana The Texas Chainsaw Massacre: The Beginning 2006 -Factora, Marshall The Interpreter 2005 -Factora, Marshall Meet Joe Black 1998 -Factora, Marshall A Perfect Murder 1998 -Factora, Marshall The Dictator 2012 -Factora, Marshall Sex and the City 2 2010 -Factora, Marshall You Don't Mess with the Zohan 2008 -Zager, Lynnanne Jerry Maguire 1996 -Zager, Lynnanne Fly Me to the Moon 2008 -Zager, Lynnanne Star Trek 2009 -Zager, Lynnanne Bride Wars 2009 -Zager, Lynnanne Madagascar: Escape 2 Africa 2008 -Zager, Lynnanne Fatal Attraction 1987 -Zager, Lynnanne Fantastic Four 2005 -Zager, Lynnanne I, Robot 2004 -Jaderlund, Henry The Dukes of Hazzard 2005 -Jaderlund, Henry Evan Almighty 2007 -Jaderlund, Henry Glory Road 2006 -Shen, Freda Foh The Ladykillers 2004 -Shen, Freda Foh The Mummy: Tomb of the Dragon Emperor 2008 -Shen, Freda Foh Star Trek 2009 -Shen, Freda Foh Dude, Where's My Car? 2000 -Shen, Freda Foh Mulan 1998 -Shen, Freda Foh Basic Instinct 1992 -Hoyland, William Hellboy 2004 -Hoyland, William Gandhi 1982 -Hoyland, William For Your Eyes Only 1981 -Hoyland, William Star Wars: Episode VI - Return of the Jedi 1983 -Williamson, Ruth (I) The Family Man 2000 -Williamson, Ruth (I) Evan Almighty 2007 -Williamson, Ruth (I) Legally Blonde 2: Red, White & Blonde 2003 -Cheshier, Lydell M. The Wedding Planner 2001 -Cheshier, Lydell M. Blow 2001 -Cheshier, Lydell M. The Cable Guy 1996 -Cheshier, Lydell M. George of the Jungle 1997 -Cheshier, Lydell M. Patch Adams 1998 -Wiest, Dianne The Horse Whisperer 1998 -Wiest, Dianne Footloose 1984 -Wiest, Dianne Hannah and Her Sisters 1986 -Wiest, Dianne The Birdcage 1996 -Wiest, Dianne Dan in Real Life 2007 -Wiest, Dianne I Am Sam 2001 -Wiest, Dianne Robots 2005 -Wiest, Dianne Practical Magic 1998 -Studi, Wes Dances with Wolves 1990 -Studi, Wes Avatar 2009 -Studi, Wes Heat 1995 -Nielsen, John (I) Transformers: Revenge of the Fallen 2009 -Nielsen, John (I) End of Days 1999 -Nielsen, John (I) Hereafter 2010 -Fogarty, Shawn Fever Pitch 2005 -Fogarty, Shawn Paul Blart: Mall Cop 2009 -Fogarty, Shawn Mystic River 2003 -Fogarty, Shawn The Departed 2006 -Fogarty, Shawn The Fighter 2010 -Fogarty, Shawn The Perfect Storm 2000 -Fogarty, Shawn Ghosts of Girlfriends Past 2009 -Fogarty, Shawn The Social Network 2010 -Fogarty, Shawn Knight and Day 2010 -Fogarty, Shawn Zookeeper 2011 -Eldard, Ron Deep Impact 1998 -Eldard, Ron Black Hawk Down 2001 -Eldard, Ron Sleepers 1996 -Eldard, Ron Ghost Ship 2002 -Eldard, Ron Super 8 2011 -Ferrero, Martin Heat 1995 -Ferrero, Martin Gung Ho 1986 -Ferrero, Martin Jurassic Park 1993 -Nicoli, Stephane No Strings Attached 2011 -Nicoli, Stephane Tower Heist 2011 -Nicoli, Stephane Water for Elephants 2011 -Nicoli, Stephane Crazy, Stupid, Love. 2011 -Nicoli, Stephane Austin Powers: International Man of Mystery 1997 -Perez, Eddie (I) Con Air 1997 -Perez, Eddie (I) The Book of Eli 2010 -Perez, Eddie (I) The Green Hornet 2011 -Wasserman, Jerry Watchmen 2009 -Wasserman, Jerry Look Who's Talking 1989 -Wasserman, Jerry I, Robot 2004 -Gillan, Lisa Roberts Mona Lisa Smile 2003 -Gillan, Lisa Roberts Mirror Mirror 2012 -Gillan, Lisa Roberts Maid in Manhattan 2002 -Gillan, Lisa Roberts Runaway Bride 1999 -Gillan, Lisa Roberts Raising Helen 2004 -Gillan, Lisa Roberts Eat Pray Love 2010 -Davis, Jason (I) Beverly Hills Ninja 1997 -Davis, Jason (I) Rush Hour 1998 -Davis, Jason (I) Recess: School's Out 2001 -Favreau, Jon Elf 2003 -Favreau, Jon Open Season 2006 -Favreau, Jon Batman Forever 1995 -Favreau, Jon Couples Retreat 2009 -Favreau, Jon Zookeeper 2011 -Favreau, Jon The Break-Up 2006 -Favreau, Jon Four Christmases 2008 -Favreau, Jon G-Force 2009 -Favreau, Jon Deep Impact 1998 -Favreau, Jon Daredevil 2003 -Favreau, Jon I Love You, Man 2009 -Favreau, Jon John Carter 2012 -Favreau, Jon Iron Man 2 2010 -Favreau, Jon The Replacements 2000 -Favreau, Jon Something's Gotta Give 2003 -Godley, Adam Battleship 2012 -Godley, Adam Quantum of Solace 2008 -Godley, Adam The X Files: I Want to Believe 2008 -Godley, Adam Love Actually 2003 -Godley, Adam Nanny McPhee 2005 -Godley, Adam Charlie and the Chocolate Factory 2005 -Godley, Adam Around the World in 80 Days 2004 -Szubanski, Magda Happy Feet Two 2011 -Szubanski, Magda The Golden Compass 2007 -Szubanski, Magda Babe: Pig in the City 1998 -Szubanski, Magda Babe 1995 -Szubanski, Magda Happy Feet 2006 -Faris, Anna Alvin and the Chipmunks: Chipwrecked 2011 -Faris, Anna Brokeback Mountain 2005 -Faris, Anna Alvin and the Chipmunks: The Squeakquel 2009 -Faris, Anna Herbie Fully Loaded 2005 -Faris, Anna Scary Movie 2000 -Faris, Anna Yogi Bear 2010 -Faris, Anna Cloudy with a Chance of Meatballs 2009 -Faris, Anna Scary Movie 2 2001 -Faris, Anna Lost in Translation 2003 -Faris, Anna The Hot Chick 2002 -Faris, Anna Scary Movie 3 2003 -Faris, Anna The Dictator 2012 -Faris, Anna Scary Movie 4 2006 -Griffiths, Rachel (I) The Rookie 2002 -Griffiths, Rachel (I) Blow 2001 -Griffiths, Rachel (I) Step Up 2006 -Griffiths, Rachel (I) My Best Friend's Wedding 1997 -Chen, Terry The Chronicles of Riddick 2004 -Chen, Terry Almost Famous 2000 -Chen, Terry Romeo Must Die 2000 -Chen, Terry Snakes on a Plane 2006 -Chen, Terry The Cabin in the Woods 2011 -Chen, Terry The A-Team 2010 -Chen, Terry 40 Days and 40 Nights 2002 -Chen, Terry I, Robot 2004 -Bumstead, J.P. Ruthless People 1986 -Bumstead, J.P. The Out-of-Towners 1999 -Bumstead, J.P. Changeling 2008 -Brosnan, Pierce Mars Attacks! 1996 -Brosnan, Pierce Tomorrow Never Dies 1997 -Brosnan, Pierce GoldenEye 1995 -Brosnan, Pierce Océans 2009 -Brosnan, Pierce After the Sunset 2004 -Brosnan, Pierce Dante's Peak 1997 -Brosnan, Pierce Mamma Mia! 2008 -Brosnan, Pierce The Thomas Crown Affair 1999 -Brosnan, Pierce Die Another Day 2002 -Brosnan, Pierce Mrs. Doubtfire 1993 -Brosnan, Pierce The Mirror Has Two Faces 1996 -Brosnan, Pierce Percy Jackson & the Olympians: The Lightning Thief 2010 -Brosnan, Pierce The World Is Not Enough 1999 -Brosnan, Pierce The Ghost Writer 2010 -Wadham, Julian Exorcist: The Beginning 2004 -Wadham, Julian War Horse 2011 -Wadham, Julian The English Patient 1996 -Hoskins Mackey, Katherine The Good Shepherd 2006 -Hoskins Mackey, Katherine Sex and the City 2008 -Hoskins Mackey, Katherine Evan Almighty 2007 -Hoskins Mackey, Katherine Step Up 2006 -Hoskins Mackey, Katherine Live Free or Die Hard 2007 -Hoskins Mackey, Katherine P.S. I Love You 2007 -Hoskins Mackey, Katherine Syriana 2005 -Basaraba, Gary The Smurfs 2011 -Basaraba, Gary Unfaithful 2002 -Basaraba, Gary Striptease 1996 -Basaraba, Gary The Taking of Pelham 1 2 3 2009 -Basaraba, Gary Charlotte's Web 2006 -Brandenburg, Larry Fargo 1996 -Brandenburg, Larry Mighty Joe Young 1998 -Brandenburg, Larry The Santa Clause 1994 -Quintana, Ana Maria Catch Me If You Can 2002 -Quintana, Ana Maria Almost Famous 2000 -Quintana, Ana Maria The Terminal 2004 -Quintana, Ana Maria Vanilla Sky 2001 -Quintana, Ana Maria Minority Report 2002 -Beard, Kevin (I) The Mist 2007 -Beard, Kevin (I) Collateral Damage 2002 -Beard, Kevin (I) JFK 1991 -Yeoh, Michelle Memoirs of a Geisha 2005 -Yeoh, Michelle The Mummy: Tomb of the Dragon Emperor 2008 -Yeoh, Michelle Kung Fu Panda 2 2011 -Yeoh, Michelle Tomorrow Never Dies 1997 -Yeoh, Michelle Babylon A.D. 2008 -Yeoh, Michelle Wo hu cang long 2000 -Kelley, Mikey Spider-Man 3 2007 -Kelley, Mikey TMNT 2007 -Kelley, Mikey Mystic River 2003 -Bennett, John (I) The Fifth Element 1997 -Bennett, John (I) The Pianist 2002 -Bennett, John (I) Minority Report 2002 -Robinson, Marcello Never Been Kissed 1999 -Robinson, Marcello Save the Last Dance 2001 -Robinson, Marcello Message in a Bottle 1999 -Hudson, Jennifer (I) The Three Stooges 2012 -Hudson, Jennifer (I) Sex and the City 2008 -Hudson, Jennifer (I) The Secret Life of Bees 2008 -Hudson, Jennifer (I) Dreamgirls 2006 -Metcalf, Laurie Scream 2 1997 -Metcalf, Laurie Toy Story 3 2010 -Metcalf, Laurie Meet the Robinsons 2007 -Metcalf, Laurie Runaway Bride 1999 -Metcalf, Laurie Treasure Planet 2002 -Metcalf, Laurie Fun with Dick and Jane 2005 -Metcalf, Laurie Toy Story 1995 -Metcalf, Laurie Toy Story 2 1999 -Metcalf, Laurie JFK 1991 -Tracey, Ian Sucker Punch 2011 -Tracey, Ian Insomnia 2002 -Tracey, Ian Open Range 2003 -Tracey, Ian Timecop 1994 -Robinson, Tia The Social Network 2010 -Robinson, Tia Jack and Jill 2011 -Robinson, Tia High School Musical 3: Senior Year 2008 -Atterbury, John Harry Potter and the Order of the Phoenix 2007 -Atterbury, John Robin Hood 2010 -Atterbury, John Gosford Park 2001 -Atterbury, John The Parent Trap 1998 -Robbins, Ryan (I) Catwoman 2004 -Robbins, Ryan (I) AVPR: Aliens vs Predator - Requiem 2007 -Robbins, Ryan (I) Paycheck 2003 -Kirk, John (IV) The Animal 2001 -Kirk, John (IV) Mr. Deeds 2002 -Kirk, John (IV) Little Nicky 2000 -Kirk, John (IV) Anger Management 2003 -Dorn, Michael (I) The Santa Clause 3: The Escape Clause 2006 -Dorn, Michael (I) Star Trek: First Contact 1996 -Dorn, Michael (I) Ali 2001 -Dorn, Michael (I) Star Trek: Insurrection 1998 -Dorn, Michael (I) Star Trek: Nemesis 2002 -Dorn, Michael (I) The Santa Clause 2 2002 -Dorn, Michael (I) Transformers: Dark of the Moon 2011 -Gonzalez, Rick (I) The Rookie 2002 -Gonzalez, Rick (I) Coach Carter 2005 -Gonzalez, Rick (I) Old School 2003 -Anderson, Nancy (II) Dreamgirls 2006 -Anderson, Nancy (II) Date Movie 2006 -Anderson, Nancy (II) Footloose 2011 -Anderson, Nancy (II) Starsky & Hutch 2004 -Anderson, Nancy (II) American Beauty 1999 -Anderson, Nancy (II) Miss Congeniality 2: Armed and Fabulous 2005 -Gisondo, Skyler The Three Stooges 2012 -Gisondo, Skyler The Amazing Spider-Man 2012 -Gisondo, Skyler Four Christmases 2008 -Gisondo, Skyler Halloween 2007 -Ramsey, David (I) Con Air 1997 -Ramsey, David (I) Pay It Forward 2000 -Ramsey, David (I) The Nutty Professor 1996 -Martindale, Margo 28 Days 2000 -Martindale, Margo Secretariat 2010 -Martindale, Margo Million Dollar Baby 2004 -Martindale, Margo The Firm 1993 -Martindale, Margo Hannah Montana: The Movie 2009 -Martindale, Margo Practical Magic 1998 -Martindale, Margo The Hours 2002 -Fernandez, Alex (I) Quantum of Solace 2008 -Fernandez, Alex (I) Transformers: Revenge of the Fallen 2009 -Fernandez, Alex (I) Final Fantasy: The Spirits Within 2001 -Spacek, Sissy The Help 2011 -Spacek, Sissy Four Christmases 2008 -Spacek, Sissy The Ring Two 2005 -Spacek, Sissy In the Bedroom 2001 -Spacek, Sissy JFK 1991 -Carter, Joelle The Horse Whisperer 1998 -Carter, Joelle American Pie 2 2001 -Carter, Joelle High Fidelity 2000 -Bean, Sean GoldenEye 1995 -Bean, Sean Percy Jackson & the Olympians: The Lightning Thief 2010 -Bean, Sean Don't Say a Word 2001 -Bean, Sean The Lord of the Rings: The Fellowship of the Ring 2001 -Bean, Sean The Lord of the Rings: The Return of the King 2003 -Bean, Sean National Treasure 2004 -Bean, Sean Flightplan 2005 -Bean, Sean Silent Hill 2006 -Bean, Sean Troy 2004 -Bean, Sean Mirror Mirror 2012 -Bean, Sean Ronin 1998 -Bean, Sean The Lord of the Rings: The Two Towers 2002 -Bean, Sean The Island 2005 -Worthy, Rick Collateral Damage 2002 -Worthy, Rick Star Trek: Insurrection 1998 -Worthy, Rick Holes 2003 -Bergen, Candice Miss Congeniality 2000 -Bergen, Candice Sex and the City 2008 -Bergen, Candice Sweet Home Alabama 2002 -Bergen, Candice Bride Wars 2009 -Bergen, Candice Gandhi 1982 -Bishop, John (I) Footloose 1984 -Bishop, John (I) Volcano 1997 -Bishop, John (I) Apollo 13 1995 -Oswalt, Patton Ratatouille 2007 -Oswalt, Patton Starsky & Hutch 2004 -Oswalt, Patton Blade: Trinity 2004 -Oswalt, Patton Failure to Launch 2006 -Oswalt, Patton Calendar Girls 2003 -Oswalt, Patton Zoolander 2001 -Oswalt, Patton Magnolia 1999 -Thompson, Fred Dalton Secretariat 2010 -Thompson, Fred Dalton Racing Stripes 2005 -Thompson, Fred Dalton Die Hard 2 1990 -Thompson, Fred Dalton In the Line of Fire 1993 -Thompson, Fred Dalton The Hunt for Red October 1990 -Amor, Jay The Mist 2007 -Amor, Jay Transporter 2 2005 -Amor, Jay Miami Vice 2006 -Eiding, Paul Up 2009 -Eiding, Paul Cloudy with a Chance of Meatballs 2009 -Eiding, Paul Monsters, Inc. 2001 -Eiding, Paul Sen to Chihiro no kamikakushi 2001 -Eiding, Paul WALL·E 2008 -Eiding, Paul Tarzan 1999 -Eiding, Paul Treasure Planet 2002 -Eiding, Paul Cars 2006 -Eiding, Paul A Bug's Life 1998 -Eiding, Paul The Golden Compass 2007 -Eiding, Paul The Mummy Returns 2001 -Langham, Wallace Little Miss Sunshine 2006 -Langham, Wallace Michael 1996 -Langham, Wallace Daddy Day Care 2003 -Langham, Wallace The Social Network 2010 -Davis, Mary Bond Coming to America 1988 -Davis, Mary Bond Hook 1991 -Davis, Mary Bond The Preacher's Wife 1996 -Miller, Matt (II) Seabiscuit 2003 -Miller, Matt (II) Batman Begins 2005 -Miller, Matt (II) Yes Man 2008 -Whatley, Don Invincible 2006 -Whatley, Don National Treasure: Book of Secrets 2007 -Whatley, Don Syriana 2005 -Whatley, Don Limitless 2011 -Sweeney, Ryan (I) A Walk to Remember 2002 -Sweeney, Ryan (I) Black Knight 2001 -Sweeney, Ryan (I) Domestic Disturbance 2001 -Bergman, Mary Kay Beauty and the Beast 1991 -Bergman, Mary Kay Hercules 1997 -Bergman, Mary Kay South Park: Bigger Longer & Uncut 1999 -Bergman, Mary Kay Toy Story 2 1999 -Bergman, Mary Kay The Hunchback of Notre Dame 1996 -Bergman, Mary Kay Mulan 1998 -Bergman, Mary Kay Star Wars: Episode I - The Phantom Menace 1999 -Bergman, Mary Kay Deep Blue Sea 1999 -Brown, Jim (I) Small Soldiers 1998 -Brown, Jim (I) Mars Attacks! 1996 -Brown, Jim (I) Any Given Sunday 1999 -Jenkins, Jane (I) Ransom 1996 -Jenkins, Jane (I) Apollo 13 1995 -Jenkins, Jane (I) A Beautiful Mind 2001 -Jenkins, Jane (I) Outbreak 1995 -Bowie, John Ross The Santa Clause 3: The Escape Clause 2006 -Bowie, John Ross Road Trip 2000 -Bowie, John Ross He's Just Not That Into You 2009 -Keaton, Michael Toy Story 3 2010 -Keaton, Michael Herbie Fully Loaded 2005 -Keaton, Michael Gung Ho 1986 -Keaton, Michael Cars 2006 -Keaton, Michael Jackie Brown 1997 -Keaton, Michael The Other Guys 2010 -Keaton, Michael Batman 1989 -Keaton, Michael Batman Returns 1992 -Thompson, Mark (VI) The Cable Guy 1996 -Thompson, Mark (VI) The Day After Tomorrow 2004 -Thompson, Mark (VI) Air Force One 1997 -Thompson, Mark (VI) Independence Day 1996 -Thompson, Mark (VI) Set It Off 1996 -Thomas, Ken (I) Sin City 2005 -Thomas, Ken (I) G.I. Joe: The Rise of Cobra 2009 -Thomas, Ken (I) Miss Congeniality 2000 -Roseen, Irene L.A. Confidential 1997 -Roseen, Irene Star Trek 2009 -Roseen, Irene Evan Almighty 2007 -Roseen, Irene The Family Man 2000 -Roseen, Irene Drag Me to Hell 2009 -Roseen, Irene Wedding Crashers 2005 -Gage, Melanie A. Chicago 2002 -Gage, Melanie A. A Cinderella Story 2004 -Gage, Melanie A. Boogie Nights 1997 -Van Holt, Brian S.W.A.T. 2003 -Van Holt, Brian Black Hawk Down 2001 -Van Holt, Brian Windtalkers 2002 -Wain, David Along Came Polly 2004 -Wain, David Keeping the Faith 2000 -Wain, David I Love You, Man 2009 -Wain, David Role Models 2008 -Kraycik, Michael J. Salt 2010 -Kraycik, Michael J. Law Abiding Citizen 2009 -Kraycik, Michael J. The Last Airbender 2010 -Kraycik, Michael J. Limitless 2011 -Kraycik, Michael J. The Happening 2008 -Grauer, Ona Catwoman 2004 -Grauer, Ona Firewall 2006 -Grauer, Ona Percy Jackson & the Olympians: The Lightning Thief 2010 -Grauer, Ona The Lizzie McGuire Movie 2003 -Pressman, Lawrence American Wedding 2003 -Pressman, Lawrence Dr. Dolittle 2 2001 -Pressman, Lawrence American Pie 1999 -Pressman, Lawrence Mighty Joe Young 1998 -Farnsworth, Freddie Joe Rules of Engagement 2000 -Farnsworth, Freddie Joe Primary Colors 1998 -Farnsworth, Freddie Joe Spy Game 2001 -Strickland, KaDee The Stepford Wives 2004 -Strickland, KaDee American Gangster 2007 -Strickland, KaDee Something's Gotta Give 2003 -Strickland, KaDee The Grudge 2004 -Strickland, KaDee The Sixth Sense 1999 -Strickland, KaDee Fever Pitch 2005 -Slattery, John (I) Mona Lisa Smile 2003 -Slattery, John (I) The Adjustment Bureau 2011 -Slattery, John (I) Iron Man 2 2010 -Slattery, John (I) Traffic 2000 -Slattery, John (I) Charlie Wilson's War 2007 -Slattery, John (I) Underdog 2007 -Slattery, John (I) Sleepers 1996 -Slattery, John (I) Bad Company 2002 -Slattery, John (I) Eraser 1996 -Sanchez, Lauren The Day After Tomorrow 2004 -Sanchez, Lauren The Longest Yard 2005 -Sanchez, Lauren We Bought a Zoo 2011 -Sanchez, Lauren 4: Rise of the Silver Surfer 2007 -Sanchez, Lauren Cellular 2004 -Sanchez, Lauren Fight Club 1999 -Sanchez, Lauren Fantastic Four 2005 -Sanchez, Lauren College Road Trip 2008 -Hostina, Emil The Wolfman 2010 -Hostina, Emil Harry Potter and the Deathly Hallows: Part 1 2010 -Hostina, Emil Harry Potter and the Deathly Hallows: Part 2 2011 -Hostina, Emil Italiencele 2004 -Norris, Dean (I) Starship Troopers 1997 -Norris, Dean (I) Evan Almighty 2007 -Norris, Dean (I) The Heartbreak Kid 2007 -Norris, Dean (I) The Firm 1993 -Norris, Dean (I) Lethal Weapon 2 1989 -Norris, Dean (I) Little Miss Sunshine 2006 -Norris, Dean (I) The Negotiator 1998 -Norris, Dean (I) Terminator 2: Judgment Day 1991 -Norris, Dean (I) The Cell 2000 -Norris, Dean (I) Total Recall 1990 -Malco, Romany Gulliver's Travels 2010 -Malco, Romany Blades of Glory 2007 -Malco, Romany Think Like a Man 2012 -Malco, Romany The 40 Year Old Virgin 2005 -Malco, Romany The Tuxedo 2002 -Malco, Romany Baby Mama 2008 -Lucking, William The Rundown 2003 -Lucking, William Contraband 2012 -Lucking, William Erin Brockovich 2000 -Lucking, William K-PAX 2001 -Lucking, William Stripes 1981 -Lucking, William Red Dragon 2002 -Walker, Paul (I) Pleasantville 1998 -Walker, Paul (I) Varsity Blues 1999 -Walker, Paul (I) She's All That 1999 -Walker, Paul (I) Fast Five 2011 -Walker, Paul (I) The Fast and the Furious 2001 -Walker, Paul (I) 2 Fast 2 Furious 2003 -Walker, Paul (I) Takers 2010 -Walker, Paul (I) Fast & Furious 2009 -Walker, Paul (I) Eight Below 2006 -Pastore, Garry (I) Donnie Brasco 1997 -Pastore, Garry (I) The Siege 1998 -Pastore, Garry (I) Cop Land 1997 -Watson, Kevin (I) Bad Company 2002 -Watson, Kevin (I) Something's Gotta Give 2003 -Watson, Kevin (I) The Pink Panther 2006 -Thomas, Charlie (II) Shallow Hal 2001 -Thomas, Charlie (II) The Three Stooges 2012 -Thomas, Charlie (II) The Heartbreak Kid 2007 -Baquerot, Aliane The Curious Case of Benjamin Button 2008 -Baquerot, Aliane A Christmas Carol 2009 -Baquerot, Aliane Poseidon 2006 -Stern, Daniel (I) Hannah and Her Sisters 1986 -Stern, Daniel (I) Home Alone 1990 -Stern, Daniel (I) Home Alone 2: Lost in New York 1992 -Nienaltowski, Kelly I Love You, Man 2009 -Nienaltowski, Kelly The Break-Up 2006 -Nienaltowski, Kelly Hannah Montana: The Movie 2009 -Winger, Debra E.T.: The Extra-Terrestrial 1982 -Winger, Debra Terms of Endearment 1983 -Winger, Debra Radio 2003 -Winger, Debra An Officer and a Gentleman 1982 -Kincannon, Jeffery The Fighter 2010 -Kincannon, Jeffery Grown Ups 2010 -Kincannon, Jeffery Zookeeper 2011 -Duvall, Wayne Disclosure 1994 -Duvall, Wayne Evolution 2001 -Duvall, Wayne Apollo 13 1995 -Duvall, Wayne O Brother, Where Art Thou? 2000 -Roebuck, Daniel Halloween 2007 -Roebuck, Daniel Money Talks 1997 -Roebuck, Daniel Double Take 2001 -Roebuck, Daniel The Fugitive 1993 -Roebuck, Daniel We Were Soldiers 2002 -Roebuck, Daniel Final Destination 2000 -Roebuck, Daniel U.S. Marshals 1998 -Horrocks, Jane Corpse Bride 2005 -Horrocks, Jane Chicken Run 2000 -Horrocks, Jane Garfield: A Tail of Two Kitties 2006 -Reitman, Ivan Ghost Busters 1984 -Reitman, Ivan No Strings Attached 2011 -Reitman, Ivan Hotel for Dogs 2009 -Warren Jr., Chris Alvin and the Chipmunks: The Squeakquel 2009 -Warren Jr., Chris High School Musical 3: Senior Year 2008 -Warren Jr., Chris Men of Honor 2000 -Olsson, Ty RV 2006 -Olsson, Ty The Twilight Saga: Breaking Dawn - Part 1 2011 -Olsson, Ty The Chronicles of Riddick 2004 -Olsson, Ty X2 2003 -Olsson, Ty Firewall 2006 -Olsson, Ty Lake Placid 1999 -Olsson, Ty Dreamcatcher 2003 -Olsson, Ty Miracle 2004 -Olsson, Ty The Day the Earth Stood Still 2008 -Olsson, Ty AVPR: Aliens vs Predator - Requiem 2007 -Olsson, Ty Rise of the Planet of the Apes 2011 -O'Leary, Matt In Time 2011 -O'Leary, Matt Spy Kids 3-D: Game Over 2003 -O'Leary, Matt Live Free or Die Hard 2007 -O'Leary, Matt Domestic Disturbance 2001 -O'Leary, Matt Spy Kids 2: Island of Lost Dreams 2002 -Curtin, Jane The Shaggy Dog 2006 -Curtin, Jane Antz 1998 -Curtin, Jane I Love You, Man 2009 -Boy, Big (I) The Longest Yard 2005 -Boy, Big (I) Deuce Bigalow: Male Gigolo 1999 -Boy, Big (I) Project X 2012 -Boy, Big (I) Charlie's Angels: Full Throttle 2003 -Ové, Indra The Fifth Element 1997 -Ové, Indra Interview with the Vampire: The Vampire Chronicles 1994 -Ové, Indra Resident Evil 2002 -Speedman, Scott Underworld: Evolution 2006 -Speedman, Scott Underworld: Awakening 2012 -Speedman, Scott Underworld 2003 -Speedman, Scott The Vow 2012 -King, Martin Luther Malcolm X 1992 -King, Martin Luther Precious 2009 -King, Martin Luther J. Edgar 2011 -King, Martin Luther Contact 1997 -King, Martin Luther JFK 1991 -Neill, Sam Legend of the Guardians: The Owls of Ga'Hoole 2010 -Neill, Sam The Horse Whisperer 1998 -Neill, Sam Jurassic Park III 2001 -Neill, Sam The Hunt for Red October 1990 -Neill, Sam Bicentennial Man 1999 -Neill, Sam The Vow 2012 -Neill, Sam Jurassic Park 1993 -Kilmer, Val The Ghost and the Darkness 1996 -Kilmer, Val Top Gun 1986 -Kilmer, Val Deja Vu 2006 -Kilmer, Val Batman Forever 1995 -Kilmer, Val Alexander 2004 -Kilmer, Val The Saint 1997 -Kilmer, Val Wings of Courage 1995 -Kilmer, Val The Prince of Egypt 1998 -Kilmer, Val Heat 1995 -Omilami, Elizabeth We Are Marshall 2006 -Omilami, Elizabeth Madea's Family Reunion 2006 -Omilami, Elizabeth Runaway Jury 2003 -Omilami, Elizabeth The Blind Side 2009 -Omilami, Elizabeth Glory Road 2006 -Omilami, Elizabeth A Time to Kill 1996 -Tygh, Ryan In Her Shoes 2005 -Tygh, Ryan Invincible 2006 -Tygh, Ryan National Treasure 2004 -Tygh, Ryan A Beautiful Mind 2001 -Tygh, Ryan Rocky Balboa 2006 -Walker, Erik The Italian Job 2003 -Walker, Erik Monster House 2006 -Walker, Erik Kicking & Screaming 2005 -Hartley, Lee The Lord of the Rings: The Fellowship of the Ring 2001 -Hartley, Lee King Kong 2005 -Hartley, Lee The Lord of the Rings: The Return of the King 2003 -Hartley, Lee The Lord of the Rings: The Two Towers 2002 -Noonan, Tom (I) RoboCop 2 1990 -Noonan, Tom (I) Last Action Hero 1993 -Noonan, Tom (I) Heat 1995 -McLean, Kinsey Thor 2011 -McLean, Kinsey Pearl Harbor 2001 -McLean, Kinsey Austin Powers in Goldmember 2002 -Ma, Raymond Lethal Weapon 4 1998 -Ma, Raymond Stuart Little 2 2002 -Ma, Raymond The Animal 2001 -Ma, Raymond Starsky & Hutch 2004 -Ma, Raymond The Muppets 2011 -Ma, Raymond Old School 2003 -Ma, Raymond The Karate Kid, Part II 1986 -Groh, Roger Four Christmases 2008 -Groh, Roger Eagle Eye 2008 -Groh, Roger Angels & Demons 2009 -Duncan, Michael Clarke The Whole Nine Yards 2000 -Duncan, Michael Clarke Talladega Nights: The Ballad of Ricky Bobby 2006 -Duncan, Michael Clarke The Island 2005 -Duncan, Michael Clarke The Scorpion King 2002 -Duncan, Michael Clarke Cats & Dogs 2001 -Duncan, Michael Clarke Kung Fu Panda 2008 -Duncan, Michael Clarke Armageddon 1998 -Duncan, Michael Clarke Green Lantern 2011 -Duncan, Michael Clarke Daredevil 2003 -Duncan, Michael Clarke Racing Stripes 2005 -Duncan, Michael Clarke Sin City 2005 -Duncan, Michael Clarke The Green Mile 1999 -Duncan, Michael Clarke Cats & Dogs: The Revenge of Kitty Galore 2010 -Duncan, Michael Clarke Brother Bear 2003 -Carrington, Debbie Lee The Polar Express 2004 -Carrington, Debbie Lee Men in Black 1997 -Carrington, Debbie Lee She's All That 1999 -Carrington, Debbie Lee Star Wars: Episode VI - Return of the Jedi 1983 -Carrington, Debbie Lee Scary Movie 3 2003 -Carrington, Debbie Lee Bedtime Stories 2008 -Carrington, Debbie Lee Batman Returns 1992 -Carrington, Debbie Lee Total Recall 1990 -Carrington, Debbie Lee Mighty Joe Young 1998 -Lucas, Matt (I) Gnomeo & Juliet 2011 -Lucas, Matt (I) Bridesmaids 2011 -Lucas, Matt (I) Alice in Wonderland 2010 -Carides, Gia Austin Powers: The Spy Who Shagged Me 1999 -Carides, Gia My Big Fat Greek Wedding 2002 -Carides, Gia Primary Colors 1998 -Fiennes, Ralph Maid in Manhattan 2002 -Fiennes, Ralph Harry Potter and the Deathly Hallows: Part 2 2011 -Fiennes, Ralph Red Dragon 2002 -Fiennes, Ralph Harry Potter and the Deathly Hallows: Part 1 2010 -Fiennes, Ralph Wrath of the Titans 2012 -Fiennes, Ralph Nanny McPhee and the Big Bang 2010 -Fiennes, Ralph The English Patient 1996 -Fiennes, Ralph Harry Potter and the Goblet of Fire 2005 -Fiennes, Ralph Wallace & Gromit in The Curse of the Were-Rabbit 2005 -Fiennes, Ralph Harry Potter and the Order of the Phoenix 2007 -Fiennes, Ralph The Prince of Egypt 1998 -Fiennes, Ralph The Reader 2008 -Fiennes, Ralph The Constant Gardener 2005 -Fiennes, Ralph Schindler's List 1993 -Fiennes, Ralph Clash of the Titans 2010 -Camacho, Mark Snake Eyes 1998 -Camacho, Mark The Score 2001 -Camacho, Mark The Whole Nine Yards 2000 -Boyle, Peter (I) The Santa Clause 3: The Escape Clause 2006 -Boyle, Peter (I) Malcolm X 1992 -Boyle, Peter (I) Scooby Doo 2: Monsters Unleashed 2004 -Boyle, Peter (I) The Santa Clause 1994 -Boyle, Peter (I) Doctor Dolittle 1998 -Boyle, Peter (I) The Santa Clause 2 2002 -Rabson, Jan Horton Hears a Who! 2008 -Rabson, Jan Toy Story 3 2010 -Rabson, Jan Fatal Attraction 1987 -Rabson, Jan Cloudy with a Chance of Meatballs 2009 -Rabson, Jan WALL·E 2008 -Rabson, Jan Hercules 1997 -Rabson, Jan The Lorax 2012 -Rabson, Jan Cars 2006 -Rabson, Jan The Hunchback of Notre Dame 1996 -Rabson, Jan Ice Age: The Meltdown 2006 -Rabson, Jan Gake no ue no Ponyo 2008 -Rabson, Jan A Bug's Life 1998 -Rabson, Jan Toy Story 1995 -Rabson, Jan Toy Story 2 1999 -Rabson, Jan Monsters, Inc. 2001 -Rabson, Jan Surf's Up 2007 -Rabson, Jan Up 2009 -Peterson, Alan C. Scooby Doo 2: Monsters Unleashed 2004 -Peterson, Alan C. Shanghai Noon 2000 -Peterson, Alan C. Sucker Punch 2011 -Zahn, Steve Stuart Little 2 2002 -Zahn, Steve Forces of Nature 1999 -Zahn, Steve Daddy Day Care 2003 -Zahn, Steve Stuart Little 1999 -Zahn, Steve Sahara 2005 -Zahn, Steve Diary of a Wimpy Kid: Rodrick Rules 2011 -Zahn, Steve Dr. Dolittle 2 2001 -Zahn, Steve You've Got Mail 1998 -Zahn, Steve Diary of a Wimpy Kid 2010 -Zahn, Steve Chicken Little 2005 -Ashby, Carole A View to a Kill 1985 -Ashby, Carole Octopussy 1983 -Ashby, Carole Chariots of Fire 1981 -Bynes, Amanda Hairspray 2007 -Bynes, Amanda Robots 2005 -Bynes, Amanda Easy A 2010 -Thurman, Uma Pulp Fiction 1994 -Thurman, Uma Batman & Robin 1997 -Thurman, Uma Kill Bill: Vol. 2 2004 -Thurman, Uma Kill Bill: Vol. 1 2003 -Thurman, Uma Paycheck 2003 -Thurman, Uma Percy Jackson & the Olympians: The Lightning Thief 2010 -Arens, Cody Anger Management 2003 -Arens, Cody Meet the Parents 2000 -Arens, Cody D-War 2007 -Harris, Barbara (II) Fatal Attraction 1987 -Harris, Barbara (II) Halloween 2007 -Harris, Barbara (II) The Secret Life of Bees 2008 -Harris, Barbara (II) Lilo & Stitch 2002 -Harris, Barbara (II) Dinosaur 2000 -Harris, Barbara (II) TMNT 2007 -Harris, Barbara (II) Final Fantasy: The Spirits Within 2001 -Harris, Barbara (II) Babe 1995 -Harris, Barbara (II) Babe: Pig in the City 1998 -Stonestreet, Eric Bad Teacher 2011 -Stonestreet, Eric The Island 2005 -Stonestreet, Eric Almost Famous 2000 -McKinney, Mark (I) The Out-of-Towners 1999 -McKinney, Mark (I) Spice World 1997 -McKinney, Mark (I) Superstar 1999 -Hahn, Archie Fly Me to the Moon 2008 -Hahn, Archie Doctor Dolittle 1998 -Hahn, Archie Guess Who 2005 -Hahn, Archie Small Soldiers 1998 -Hahn, Archie Rain Man 1988 -Hahn, Archie Alvin and the Chipmunks: The Squeakquel 2009 -Hahn, Archie Racing Stripes 2005 -Hahn, Archie Chicken Little 2005 -Hahn, Archie Barnyard 2006 -Hahn, Archie Alien: Resurrection 1997 -Hahn, Archie John Tucker Must Die 2006 -Arcé, Maria Next Friday 2000 -Arcé, Maria Dr. Dolittle 2 2001 -Arcé, Maria Paul Blart: Mall Cop 2009 -Lurie, Peter Superman Returns 2006 -Lurie, Peter Spider-Man 2 2004 -Lurie, Peter Star Wars: Episode I - The Phantom Menace 1999 -Lurie, Peter Fantastic Four 2005 -Lurie, Peter Spider-Man 2002 -Hope, William Captain America: The First Avenger 2011 -Hope, William The Saint 1997 -Hope, William Aliens 1986 -Hope, William Sky Captain and the World of Tomorrow 2004 -Hope, William xXx 2002 -Hope, William Sherlock Holmes 2009 -Hope, William Constantine 2005 -Lund, Jordan The Bucket List 2007 -Lund, Jordan Rumor Has It... 2005 -Lund, Jordan Speed 1994 -Ohtsji, Kevan Dreamcatcher 2003 -Ohtsji, Kevan This Means War 2012 -Ohtsji, Kevan The Butterfly Effect 2004 -Moseley, Mark (I) Shrek the Third 2007 -Moseley, Mark (I) Night at the Museum: Battle of the Smithsonian 2009 -Moseley, Mark (I) Shrek 2 2004 -Moseley, Mark (I) Mulan 1998 -Moseley, Mark (I) The Golden Compass 2007 -Diaz, Cameron Gangs of New York 2002 -Diaz, Cameron Knight and Day 2010 -Diaz, Cameron Minority Report 2002 -Diaz, Cameron The Mask 1994 -Diaz, Cameron My Best Friend's Wedding 1997 -Diaz, Cameron Any Given Sunday 1999 -Diaz, Cameron Charlie's Angels: Full Throttle 2003 -Diaz, Cameron Being John Malkovich 1999 -Diaz, Cameron Charlie's Angels 2000 -Diaz, Cameron The Green Hornet 2011 -Diaz, Cameron The Holiday 2006 -Diaz, Cameron What Happens in Vegas 2008 -Diaz, Cameron Shrek the Third 2007 -Diaz, Cameron Vanilla Sky 2001 -Diaz, Cameron Shrek 2001 -Diaz, Cameron In Her Shoes 2005 -Diaz, Cameron My Sister's Keeper 2009 -Diaz, Cameron Shrek 2 2004 -Diaz, Cameron Shrek Forever After 2010 -Diaz, Cameron There's Something About Mary 1998 -Diaz, Cameron Bad Teacher 2011 -Fehr, Oded Deuce Bigalow: Male Gigolo 1999 -Fehr, Oded The Mummy 1999 -Fehr, Oded Resident Evil: Extinction 2007 -Fehr, Oded Resident Evil: Apocalypse 2004 -Fehr, Oded The Mummy Returns 2001 -Grace, Paul (V) Made of Honor 2008 -Grace, Paul (V) Herbie Fully Loaded 2005 -Grace, Paul (V) Iron Man 2 2010 -Grace, Paul (V) World Trade Center 2006 -Gould, Jeannette Mona Lisa Smile 2003 -Gould, Jeannette In & Out 1997 -Gould, Jeannette Two Weeks Notice 2002 -Marshall, Garry Never Been Kissed 1999 -Marshall, Garry Pretty Woman 1990 -Marshall, Garry Chicken Little 2005 -Marshall, Garry Race to Witch Mountain 2009 -Marshall, Garry Runaway Bride 1999 -Munro, Lochlyn Freddy vs. Jason 2003 -Munro, Lochlyn LiTTLEMAN 2006 -Munro, Lochlyn Unforgiven 1992 -Munro, Lochlyn White Chicks 2004 -Munro, Lochlyn Scary Movie 2000 -Procopio, Alex High Crimes 2002 -Procopio, Alex Ocean's Thirteen 2007 -Procopio, Alex Traffic 2000 -Pellegrino, Mark (I) Capote 2005 -Pellegrino, Mark (I) Lethal Weapon 3 1992 -Pellegrino, Mark (I) National Treasure 2004 -Pellegrino, Mark (I) The Lost World: Jurassic Park 1997 -Smith, Kurtwood RoboCop 1987 -Smith, Kurtwood Dead Poets Society 1989 -Smith, Kurtwood A Time to Kill 1996 -Smith, Kurtwood Deep Impact 1998 -Smith, Kurtwood Rambo III 1988 -Evans, Terrence The Texas Chainsaw Massacre 2003 -Evans, Terrence Terminator 2: Judgment Day 1991 -Evans, Terrence The Texas Chainsaw Massacre: The Beginning 2006 -Abdoo, Rose My Best Friend's Wedding 1997 -Abdoo, Rose The 40 Year Old Virgin 2005 -Abdoo, Rose U.S. Marshals 1998 -Abdoo, Rose Bad Teacher 2011 -Abdoo, Rose Good Night, and Good Luck. 2005 -Pearl, Aaron X2 2003 -Pearl, Aaron X-Men: The Last Stand 2006 -Pearl, Aaron The Pink Panther 2006 -Susser, Craig Made of Honor 2008 -Susser, Craig Takers 2010 -Susser, Craig Ocean's Twelve 2004 -Wallace, George (I) Forces of Nature 1999 -Wallace, George (I) Bicentennial Man 1999 -Wallace, George (I) Minority Report 2002 -Black, Jack (I) Shallow Hal 2001 -Black, Jack (I) Gulliver's Travels 2010 -Black, Jack (I) Kung Fu Panda 2008 -Black, Jack (I) Nacho Libre 2006 -Black, Jack (I) Shark Tale 2004 -Black, Jack (I) Tropic Thunder 2008 -Black, Jack (I) Mars Attacks! 1996 -Black, Jack (I) The Jackal 1997 -Black, Jack (I) Kung Fu Panda 2 2011 -Black, Jack (I) The Cable Guy 1996 -Black, Jack (I) High Fidelity 2000 -Black, Jack (I) The Holiday 2006 -Black, Jack (I) Enemy of the State 1998 -Black, Jack (I) The School of Rock 2003 -Black, Jack (I) Anchorman: The Legend of Ron Burgundy 2004 -Black, Jack (I) King Kong 2005 -Black, Jack (I) Waterworld 1995 -Black, Jack (I) I Still Know What You Did Last Summer 1998 -Black, Jack (I) The Muppets 2011 -Black, Jack (I) Ice Age 2002 -Wetzel, Nancy Takers 2010 -Wetzel, Nancy What Women Want 2000 -Wetzel, Nancy Confessions of a Shopaholic 2009 -Wetzel, Nancy Daredevil 2003 -Campbell Bower, Jamie Sweeney Todd: The Demon Barber of Fleet Street 2007 -Campbell Bower, Jamie The Twilight Saga: Breaking Dawn - Part 1 2011 -Campbell Bower, Jamie Harry Potter and the Deathly Hallows: Part 1 2010 -Campbell Bower, Jamie New Moon 2009 -Campbell Bower, Jamie Harry Potter and the Deathly Hallows: Part 2 2011 -Panabaker, Danielle Sky High 2005 -Panabaker, Danielle Friday the 13th 2009 -Panabaker, Danielle Yours, Mine and Ours 2005 -Duff, Hilary Cheaper by the Dozen 2 2005 -Duff, Hilary A Cinderella Story 2004 -Duff, Hilary Cheaper by the Dozen 2003 -Duff, Hilary The Lizzie McGuire Movie 2003 -Stewart, Jon (I) Evan Almighty 2007 -Stewart, Jon (I) The First Wives Club 1996 -Stewart, Jon (I) Big Daddy 1999 -Stewart, Jon (I) The Faculty 1998 -Stewart, Jon (I) The Adjustment Bureau 2011 -Bagley, Tim Knocked Up 2007 -Bagley, Tim The Mask 1994 -Bagley, Tim Austin Powers: The Spy Who Shagged Me 1999 -Bagley, Tim The Day After Tomorrow 2004 -Kimmel, Jimmy Road Trip 2000 -Kimmel, Jimmy Project X 2012 -Kimmel, Jimmy Like Mike 2002 -Kimmel, Jimmy Garfield 2004 -Kimmel, Jimmy Hellboy II: The Golden Army 2008 -Groetsch, Justin Runaway Jury 2003 -Groetsch, Justin Big Momma's House 2 2006 -Groetsch, Justin The Skeleton Key 2005 -Groetsch, Justin Glory Road 2006 -Griffin, Dan (I) Jingle All the Way 1996 -Griffin, Dan (I) Keeping the Faith 2000 -Griffin, Dan (I) I Am Legend 2007 -D'Onofrio, Joe Mr. Popper's Penguins 2011 -D'Onofrio, Joe Men in Black 3 2012 -D'Onofrio, Joe Spider-Man 2002 -Linz, Alex D. The Cable Guy 1996 -Linz, Alex D. Home Alone 3 1997 -Linz, Alex D. Tarzan 1999 -Linz, Alex D. One Fine Day 1996 -Linz, Alex D. Red Dragon 2002 -Hulsey, Dava Christmas with the Kranks 2004 -Hulsey, Dava Old School 2003 -Hulsey, Dava Red Eye 2005 -Willis, Jack (I) The Out-of-Towners 1999 -Willis, Jack (I) The Talented Mr. Ripley 1999 -Willis, Jack (I) Toy Story 3 2010 -Nero Jr., William Fred Claus 2007 -Nero Jr., William Public Enemies 2009 -Nero Jr., William The Lake House 2006 -Nero Jr., William The Break-Up 2006 -Lilly, Evangeline Real Steel 2011 -Lilly, Evangeline Freddy vs. Jason 2003 -Lilly, Evangeline White Chicks 2004 -Lilly, Evangeline The Lizzie McGuire Movie 2003 -Isfeld, Justin American Reunion 2012 -Isfeld, Justin American Wedding 2003 -Isfeld, Justin American Pie 1999 -Isfeld, Justin American Pie 2 2001 -Ali, Tatyana Kiss the Girls 1997 -Ali, Tatyana 'Crocodile' Dundee II 1988 -Ali, Tatyana Glory Road 2006 -Jagatic, Joe Indiana Jones and the Kingdom of the Crystal Skull 2008 -Jagatic, Joe A Cinderella Story 2004 -Jagatic, Joe Burn After Reading 2008 -Rodriguez, Gary Clear and Present Danger 1994 -Rodriguez, Gary Sister Act 1992 -Rodriguez, Gary A Civil Action 1998 -Rodriguez, Gary Dude, Where's My Car? 2000 -Rodriguez, Gary Kill Bill: Vol. 2 2004 -Rodriguez, Gary The Flintstones in Viva Rock Vegas 2000 -Rodriguez, Gary Cellular 2004 -Rodriguez, Gary Clockstoppers 2002 -Rodriguez, Gary Training Day 2001 -Rodriguez, Gary Jurassic Park 1993 -Rodriguez, Gary Bruce Almighty 2003 -Rodriguez, Gary Swordfish 2001 -Rodriguez, Gary Collateral 2004 -Janssen, Famke X-Men 2000 -Janssen, Famke GoldenEye 1995 -Janssen, Famke Don't Say a Word 2001 -Janssen, Famke Hide and Seek 2005 -Janssen, Famke The Faculty 1998 -Janssen, Famke X-Men: The Last Stand 2006 -Janssen, Famke X2 2003 -Janssen, Famke House on Haunted Hill 1999 -Proops, Greg The Nightmare Before Christmas 1993 -Proops, Greg Brother Bear 2003 -Proops, Greg Star Wars: Episode I - The Phantom Menace 1999 -Urla, Joe Deep Impact 1998 -Urla, Joe Disclosure 1994 -Urla, Joe Sleepers 1996 -Urla, Joe The Bodyguard 1992 -Travis, Randy (I) Baby Geniuses 1999 -Travis, Randy (I) The Rainmaker 1997 -Travis, Randy (I) National Treasure: Book of Secrets 2007 -Fanning, Elle Because of Winn-Dixie 2005 -Fanning, Elle I Am Sam 2001 -Fanning, Elle Deja Vu 2006 -Fanning, Elle The Curious Case of Benjamin Button 2008 -Fanning, Elle We Bought a Zoo 2011 -Fanning, Elle Super 8 2011 -Fanning, Elle Daddy Day Care 2003 -Fanning, Elle Babel 2006 -Roché, Sebastian The Adventures of Tintin 2011 -Roché, Sebastian Beowulf 2007 -Roché, Sebastian The Peacemaker 1997 -Roché, Sebastian Safe House 2012 -Rich, Allan Amistad 1997 -Rich, Allan Jack 1996 -Rich, Allan Disclosure 1994 -Pierson, Geoff Jack and Jill 2011 -Pierson, Geoff Changeling 2008 -Pierson, Geoff D-War 2007 -Pierson, Geoff Behind Enemy Lines 2001 -Pierson, Geoff J. Edgar 2011 -Pierson, Geoff Get Smart 2008 -Bedelia, Bonnie Die Hard 2 1990 -Bedelia, Bonnie Presumed Innocent 1990 -Bedelia, Bonnie Die Hard 1988 -Nichols, Lance E. Snake Eyes 1998 -Nichols, Lance E. Runaway Jury 2003 -Nichols, Lance E. The Last Song 2010 -Nichols, Lance E. The Curious Case of Benjamin Button 2008 -Nichols, Lance E. Green Lantern 2011 -Nichols, Lance E. Contraband 2012 -Nichols, Lance E. K-PAX 2001 -Antoine, Benz Gothika 2003 -Antoine, Benz Four Brothers 2005 -Antoine, Benz Death Race 2008 -Antoine, Benz Romeo Must Die 2000 -Christian, Troy The Flintstones 1994 -Christian, Troy Something's Gotta Give 2003 -Christian, Troy The Parent Trap 1998 -Christian, Troy Rumor Has It... 2005 -Christian, Troy The Muppets 2011 -Christian, Troy Forrest Gump 1994 -Paltrow, Gwyneth The Talented Mr. Ripley 1999 -Paltrow, Gwyneth Shallow Hal 2001 -Paltrow, Gwyneth Shakespeare in Love 1998 -Paltrow, Gwyneth The Royal Tenenbaums 2001 -Paltrow, Gwyneth Se7en 1995 -Paltrow, Gwyneth Contagion 2011 -Paltrow, Gwyneth Hook 1991 -Paltrow, Gwyneth A Perfect Murder 1998 -Paltrow, Gwyneth Sky Captain and the World of Tomorrow 2004 -Paltrow, Gwyneth Iron Man 2 2010 -Paltrow, Gwyneth The Avengers 2012 -Paltrow, Gwyneth Austin Powers in Goldmember 2002 -Hirsch, Judd A Beautiful Mind 2001 -Hirsch, Judd Tower Heist 2011 -Hirsch, Judd The Muppets 2011 -Hirsch, Judd Independence Day 1996 -Pinnock, Arnold Down to Earth 2001 -Pinnock, Arnold The Incredible Hulk 2008 -Pinnock, Arnold Exit Wounds 2001 -Bach, John (I) The Chronicles of Narnia: Prince Caspian 2008 -Bach, John (I) The Lord of the Rings: The Two Towers 2002 -Bach, John (I) The Lord of the Rings: The Return of the King 2003 -Guiry, Tom U-571 2000 -Guiry, Tom Mystic River 2003 -Guiry, Tom Black Hawk Down 2001 -Skorstad, Ben The Lost World: Jurassic Park 1997 -Skorstad, Ben Training Day 2001 -Skorstad, Ben Takers 2010 -Wolfe, Michael-John Mr. & Mrs. Smith 2005 -Wolfe, Michael-John The Shaggy Dog 2006 -Wolfe, Michael-John Collateral 2004 -Wolfe, Michael-John The Aviator 2004 -Bergere, Jenica Yours, Mine and Ours 2005 -Bergere, Jenica Rat Race 2001 -Bergere, Jenica Superhero Movie 2008 -Nicholson, Scott (II) The Devil's Own 1997 -Nicholson, Scott (II) The Forgotten 2004 -Nicholson, Scott (II) Die Hard: With a Vengeance 1995 -McDade, Patrick Unstoppable 2010 -McDade, Patrick Law Abiding Citizen 2009 -McDade, Patrick Invincible 2006 -McDade, Patrick Snake Eyes 1998 -McDade, Patrick The Sixth Sense 1999 -Anderson, Stanley 40 Days and 40 Nights 2002 -Anderson, Stanley The Kid 2000 -Anderson, Stanley Runaway Jury 2003 -Anderson, Stanley Spider-Man 2002 -Anderson, Stanley Red Dragon 2002 -Anderson, Stanley The Rock 1996 -Anderson, Stanley Armageddon 1998 -Anderson, Stanley Legally Blonde 2: Red, White & Blonde 2003 -Gallini, Mo 2 Fast 2 Furious 2003 -Gallini, Mo End of Days 1999 -Gallini, Mo Get Smart 2008 -Kneeland, Katie (II) We Are Marshall 2006 -Kneeland, Katie (II) The Hunger Games 2012 -Kneeland, Katie (II) Life as We Know It 2010 -Phillips, Sally (I) Bridget Jones: The Edge of Reason 2004 -Phillips, Sally (I) Notting Hill 1999 -Phillips, Sally (I) Bridget Jones's Diary 2001 -Rosario, Marcio Collateral Damage 2002 -Rosario, Marcio The Expendables 2010 -Rosario, Marcio S.W.A.T. 2003 -Rosario, Marcio The Perfect Storm 2000 -Rosario, Marcio Fight Club 1999 -Rosario, Marcio The Scorpion King 2002 -Hervey, Jason Police Academy 2: Their First Assignment 1985 -Hervey, Jason Pee-wee's Big Adventure 1985 -Hervey, Jason Back to the Future 1985 -Momsen, Taylor We Were Soldiers 2002 -Momsen, Taylor Spy Kids 2: Island of Lost Dreams 2002 -Momsen, Taylor Underdog 2007 -Momsen, Taylor How the Grinch Stole Christmas 2000 -Tyler, Liv The Lord of the Rings: The Fellowship of the Ring 2001 -Tyler, Liv The Incredible Hulk 2008 -Tyler, Liv The Lord of the Rings: The Return of the King 2003 -Tyler, Liv Armageddon 1998 -Tyler, Liv The Lord of the Rings: The Two Towers 2002 -Vaccaro, Evelyn American Gangster 2007 -Vaccaro, Evelyn Enchanted 2007 -Vaccaro, Evelyn Spider-Man 3 2007 -Vaccaro, Evelyn The Brave One 2007 -Dolinsky, Joe Cop Out 2010 -Dolinsky, Joe The Interpreter 2005 -Dolinsky, Joe The Brave One 2007 -Dolinsky, Joe The Other Guys 2010 -Dolinsky, Joe Men in Black 3 2012 -Feliciano, Eric Four Christmases 2008 -Feliciano, Eric Tropic Thunder 2008 -Feliciano, Eric Alice in Wonderland 2010 -Feliciano, Eric You Don't Mess with the Zohan 2008 -Owen, Gary (III) Think Like a Man 2012 -Owen, Gary (III) LiTTLEMAN 2006 -Owen, Gary (III) Daddy Day Care 2003 -Cozart, Cylk In the Line of Fire 1993 -Cozart, Cylk Conspiracy Theory 1997 -Cozart, Cylk Eagle Eye 2008 -Cozart, Cylk Eraser 1996 -Biehn, Michael Aliens 1986 -Biehn, Michael Grease 1978 -Biehn, Michael Clockstoppers 2002 -Biehn, Michael The Rock 1996 -Biehn, Michael The Terminator 1984 -Viterelli, Joe Eraser 1996 -Viterelli, Joe Analyze This 1999 -Viterelli, Joe Mickey Blue Eyes 1999 -Viterelli, Joe Shallow Hal 2001 -Viterelli, Joe The Firm 1993 -Menville, Scott Star Wars: Episode III - Revenge of the Sith 2005 -Menville, Scott Bolt 2008 -Menville, Scott Despicable Me 2010 -Menville, Scott Open Season 2006 -Menville, Scott The Time Traveler's Wife 2009 -Menville, Scott Chicken Little 2005 -Menville, Scott Fly Me to the Moon 2008 -Dunn, Kevin (I) Snake Eyes 1998 -Dunn, Kevin (I) Godzilla 1998 -Dunn, Kevin (I) Transformers: Dark of the Moon 2011 -Dunn, Kevin (I) Unstoppable 2010 -Dunn, Kevin (I) Vicky Cristina Barcelona 2008 -Dunn, Kevin (I) Small Soldiers 1998 -Dunn, Kevin (I) Transformers 2007 -Dunn, Kevin (I) Transformers: Revenge of the Fallen 2009 -Hewitt, Don (I) Malcolm X 1992 -Hewitt, Don (I) Sleepers 1996 -Hewitt, Don (I) The Adjustment Bureau 2011 -Morris, Jane (I) The Princess Diaries 2: Royal Engagement 2004 -Morris, Jane (I) Runaway Bride 1999 -Morris, Jane (I) True Lies 1994 -Morris, Jane (I) Raising Helen 2004 -Morris, Jane (I) The Princess Diaries 2001 -Matthew, Curtis Babylon A.D. 2008 -Matthew, Curtis The Chronicles of Narnia: Prince Caspian 2008 -Matthew, Curtis The Omen 2006 -Campbell, Vernon Twelve Monkeys 1995 -Campbell, Vernon Die Hard: With a Vengeance 1995 -Campbell, Vernon Bad Company 2002 -Harms, John (I) Lethal Weapon 4 1998 -Harms, John (I) Lethal Weapon 3 1992 -Harms, John (I) Conspiracy Theory 1997 -Rhune, Tony Seabiscuit 2003 -Rhune, Tony Shaft 2000 -Rhune, Tony K-PAX 2001 -Miano, Robert Fast & Furious 2009 -Miano, Robert Little Fockers 2010 -Miano, Robert Donnie Brasco 1997 -Houde, Serge (I) Paycheck 2003 -Houde, Serge (I) Diary of a Wimpy Kid: Rodrick Rules 2011 -Houde, Serge (I) The Score 2001 -Houde, Serge (I) The Jackal 1997 -Houde, Serge (I) The Day the Earth Stood Still 2008 -Hudson, Kate (I) How to Lose a Guy in 10 Days 2003 -Hudson, Kate (I) Almost Famous 2000 -Hudson, Kate (I) You, Me and Dupree 2006 -Hudson, Kate (I) The Skeleton Key 2005 -Hudson, Kate (I) Bride Wars 2009 -Hudson, Kate (I) Raising Helen 2004 -Bogosian, Eric Blade: Trinity 2004 -Bogosian, Eric Beavis and Butt-Head Do America 1996 -Bogosian, Eric Charlie's Angels: Full Throttle 2003 -Iwanonkiw, John W. Wonder Boys 2000 -Iwanonkiw, John W. My Bloody Valentine 2009 -Iwanonkiw, John W. The Silence of the Lambs 1991 -Iwanonkiw, John W. Unstoppable 2010 -Iwanonkiw, John W. Gung Ho 1986 -Iwanonkiw, John W. Inspector Gadget 1999 -Newman, Barry (I) Daylight 1996 -Newman, Barry (I) Bowfinger 1999 -Newman, Barry (I) 40 Days and 40 Nights 2002 -Rubinek, Saul Unforgiven 1992 -Rubinek, Saul Wall Street 1987 -Rubinek, Saul Rush Hour 2 2001 -Rubinek, Saul The Family Man 2000 -Richardson, Kevin Michael Rugrats in Paris: The Movie - Rugrats II 2000 -Richardson, Kevin Michael The Princess and the Frog 2009 -Richardson, Kevin Michael Hoodwinked! 2005 -Richardson, Kevin Michael The Wild Thornberrys Movie 2002 -Richardson, Kevin Michael Star Wars: Episode I - The Phantom Menace 1999 -Richardson, Kevin Michael Lilo & Stitch 2002 -Richardson, Kevin Michael The Wild 2006 -Richardson, Kevin Michael The Matrix Revolutions 2003 -Richardson, Kevin Michael Transformers: Revenge of the Fallen 2009 -Richardson, Kevin Michael The Mummy Returns 2001 -Richardson, Kevin Michael Recess: School's Out 2001 -Richardson, Kevin Michael TMNT 2007 -Decio, David Quantum of Solace 2008 -Decio, David V for Vendetta 2005 -Decio, David Die Another Day 2002 -Decio, David Sky Captain and the World of Tomorrow 2004 -Decio, David Shanghai Knights 2003 -Decio, David Finding Neverland 2004 -Silvera, Philip J Indiana Jones and the Kingdom of the Crystal Skull 2008 -Silvera, Philip J The Last Airbender 2010 -Silvera, Philip J Cop Out 2010 -Guyer, Murphy The Devil's Advocate 1997 -Guyer, Murphy The Peacemaker 1997 -Guyer, Murphy The Jackal 1997 -Romano, Larry Out for Justice 1991 -Romano, Larry The Thin Red Line 1998 -Romano, Larry Sleepers 1996 -Romano, Larry Donnie Brasco 1997 -Kupferer, Keith Road to Perdition 2002 -Kupferer, Keith Fred Claus 2007 -Kupferer, Keith Public Enemies 2009 -Wall, Kim (I) The Mist 2007 -Wall, Kim (I) Glory Road 2006 -Wall, Kim (I) The Dukes of Hazzard 2005 -Wall, Kim (I) American Reunion 2012 -Folk, Alexander Death at a Funeral 2010 -Folk, Alexander City of Angels 1998 -Folk, Alexander Dreamgirls 2006 -Folk, Alexander Double Take 2001 -Folk, Alexander Inspector Gadget 1999 -Walker, Charles (I) Set It Off 1996 -Walker, Charles (I) Anchorman: The Legend of Ron Burgundy 2004 -Walker, Charles (I) Almost Famous 2000 -Walker, Charles (I) Nutty Professor II: The Klumps 2000 -Walker, Charles (I) Liar Liar 1997 -Goldfinger, Michael Home Alone 2: Lost in New York 1992 -Goldfinger, Michael Men in Black 1997 -Goldfinger, Michael Little Nicky 2000 -Ameyaw, Kwesi Blade: Trinity 2004 -Ameyaw, Kwesi The A-Team 2010 -Ameyaw, Kwesi The 6th Day 2000 -Ameyaw, Kwesi Miracle 2004 -Ameyaw, Kwesi Scooby Doo 2: Monsters Unleashed 2004 -Ameyaw, Kwesi Capote 2005 -Ameyaw, Kwesi Scary Movie 4 2006 -Garson, Willie Freaky Friday 2003 -Garson, Willie Sex and the City 2 2010 -Garson, Willie Groundhog Day 1993 -Garson, Willie Sex and the City 2008 -Garson, Willie Mars Attacks! 1996 -Garson, Willie Being John Malkovich 1999 -Garson, Willie The Rock 1996 -Garson, Willie Fever Pitch 2005 -Garson, Willie Just Like Heaven 2005 -Garson, Willie There's Something About Mary 1998 -Kennedy, Jamie (I) Scream 2 1997 -Kennedy, Jamie (I) Romeo + Juliet 1996 -Kennedy, Jamie (I) Dead Poets Society 1989 -Kennedy, Jamie (I) As Good as It Gets 1997 -Kennedy, Jamie (I) Dr. Dolittle 2 2001 -Kennedy, Jamie (I) Scream 1996 -Kennedy, Jamie (I) Enemy of the State 1998 -Kennedy, Jamie (I) Three Kings 1999 -Kennedy, Jamie (I) Bowfinger 1999 -Kennedy, Jamie (I) Scream 3 2000 -Banks, Elizabeth (II) The Hunger Games 2012 -Banks, Elizabeth (II) Shaft 2000 -Banks, Elizabeth (II) Role Models 2008 -Banks, Elizabeth (II) Catch Me If You Can 2002 -Banks, Elizabeth (II) Invincible 2006 -Banks, Elizabeth (II) Fred Claus 2007 -Banks, Elizabeth (II) Spider-Man 2 2004 -Banks, Elizabeth (II) Zack and Miri Make a Porno 2008 -Banks, Elizabeth (II) Seabiscuit 2003 -Banks, Elizabeth (II) The 40 Year Old Virgin 2005 -Banks, Elizabeth (II) Spider-Man 2002 -Banks, Elizabeth (II) Spider-Man 3 2007 -Silverman, Sarah The Muppets 2011 -Silverman, Sarah Evolution 2001 -Silverman, Sarah Funny People 2009 -Silverman, Sarah There's Something About Mary 1998 -Silverman, Sarah The School of Rock 2003 -Carter, Richard (I) Happy Feet Two 2011 -Carter, Richard (I) Babe: Pig in the City 1998 -Carter, Richard (I) Happy Feet 2006 -MacArthur, Hayes (I) The Game Plan 2007 -MacArthur, Hayes (I) Life as We Know It 2010 -MacArthur, Hayes (I) Are We Done Yet? 2007 -Cahill, Katelyn Paul Blart: Mall Cop 2009 -Cahill, Katelyn The Fighter 2010 -Cahill, Katelyn Knowing 2009 -Cahill, Katelyn Knight and Day 2010 -Cahill, Katelyn Grown Ups 2010 -Cahill, Katelyn The Town 2010 -Cundey, Dean The Flintstones 1994 -Cundey, Dean Back to the Future Part III 1990 -Cundey, Dean Jurassic Park 1993 -Caruk, Lisa Marie Final Destination 2000 -Caruk, Lisa Marie Snakes on a Plane 2006 -Caruk, Lisa Marie Miracle 2004 -El Razzac, Abdul Salaam Malcolm X 1992 -El Razzac, Abdul Salaam Terminator 2: Judgment Day 1991 -El Razzac, Abdul Salaam 8 Mile 2002 -El Razzac, Abdul Salaam Pretty Woman 1990 -Sumpter, Donald The Constant Gardener 2005 -Sumpter, Donald The Girl with the Dragon Tattoo 2011 -Sumpter, Donald K-19: The Widowmaker 2002 -Ubach, Alanna Legally Blonde 2: Red, White & Blonde 2003 -Ubach, Alanna Rango 2011 -Ubach, Alanna Herbie Fully Loaded 2005 -Ubach, Alanna Meet the Fockers 2004 -Ubach, Alanna Bad Teacher 2011 -Ubach, Alanna Legally Blonde 2001 -Waltrip, Darrell NASCAR 3D: The IMAX Experience 2004 -Waltrip, Darrell Talladega Nights: The Ballad of Ricky Bobby 2006 -Waltrip, Darrell Cars 2006 -Waltrip, Darrell Cars 2 2011 -Racster, Liz Eagle Eye 2008 -Racster, Liz Yes Man 2008 -Racster, Liz He's Just Not That Into You 2009 -Shaifer, Andrew The Cable Guy 1996 -Shaifer, Andrew The Wedding Singer 1998 -Shaifer, Andrew Race to Witch Mountain 2009 -Shaifer, Andrew Deuce Bigalow: Male Gigolo 1999 -Shaifer, Andrew The Master of Disguise 2002 -Benzon, Jørn The Lord of the Rings: The Two Towers 2002 -Benzon, Jørn The Lord of the Rings: The Return of the King 2003 -Benzon, Jørn The Lord of the Rings: The Fellowship of the Ring 2001 -Di Benedetto, John Donnie Brasco 1997 -Di Benedetto, John The Interpreter 2005 -Di Benedetto, John Mickey Blue Eyes 1999 -Di Benedetto, John Sleepers 1996 -Di Benedetto, John Frequency 2000 -Avari, Erick Charlie Wilson's War 2007 -Avari, Erick The Master of Disguise 2002 -Avari, Erick The 13th Warrior 1999 -Avari, Erick The Mummy 1999 -Avari, Erick Paul Blart: Mall Cop 2009 -Avari, Erick Stargate 1994 -Avari, Erick Mr. Deeds 2002 -Avari, Erick Independence Day 1996 -Avari, Erick Daredevil 2003 -Tennor, Adria The First Wives Club 1996 -Tennor, Adria The Artist 2011 -Tennor, Adria You Don't Mess with the Zohan 2008 -Lawton, Anthony (I) Invincible 2006 -Lawton, Anthony (I) Unbreakable 2000 -Lawton, Anthony (I) Law Abiding Citizen 2009 -Schneider, Rob (I) Home Alone 2: Lost in New York 1992 -Schneider, Rob (I) The Waterboy 1998 -Schneider, Rob (I) Deuce Bigalow: Male Gigolo 1999 -Schneider, Rob (I) The Longest Yard 2005 -Schneider, Rob (I) Big Daddy 1999 -Schneider, Rob (I) Around the World in 80 Days 2004 -Schneider, Rob (I) Little Nicky 2000 -Schneider, Rob (I) Grown Ups 2010 -Schneider, Rob (I) I Now Pronounce You Chuck & Larry 2007 -Schneider, Rob (I) Jack and Jill 2011 -Schneider, Rob (I) The Hot Chick 2002 -Schneider, Rob (I) You Don't Mess with the Zohan 2008 -Schneider, Rob (I) Bedtime Stories 2008 -Schneider, Rob (I) 50 First Dates 2004 -Schneider, Rob (I) LiTTLEMAN 2006 -Schneider, Rob (I) The Animal 2001 -Schneider, Rob (I) Mr. Deeds 2002 -Schneider, Rob (I) Click 2006 -Palmer, Jim (I) Batman & Robin 1997 -Palmer, Jim (I) Terminator 2: Judgment Day 1991 -Palmer, Jim (I) Battle Los Angeles 2011 -Palmer, Jim (I) Batman Forever 1995 -Palmer, Jim (I) Thor 2011 -Palmer, Jim (I) Charlie's Angels 2000 -Adams, January Men in Black 3 2012 -Adams, January Confessions of a Shopaholic 2009 -Adams, January Date Night 2010 -Adams, January No Strings Attached 2011 -Adams, January Precious 2009 -Adams, January Wall Street: Money Never Sleeps 2010 -Jones, Simon (I) Matilda 1996 -Jones, Simon (I) The Hitchhiker's Guide to the Galaxy 2005 -Jones, Simon (I) Twelve Monkeys 1995 -Jones, Simon (I) The Thomas Crown Affair 1999 -Jones, Simon (I) The Devil's Own 1997 -Rush, Geoffrey Legend of the Guardians: The Owls of Ga'Hoole 2010 -Rush, Geoffrey Pirates of the Caribbean: At World's End 2007 -Rush, Geoffrey Shine 1996 -Rush, Geoffrey Pirates of the Caribbean: Dead Man's Chest 2006 -Rush, Geoffrey Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Rush, Geoffrey Intolerable Cruelty 2003 -Rush, Geoffrey Shakespeare in Love 1998 -Rush, Geoffrey Elizabeth 1998 -Rush, Geoffrey The King's Speech 2010 -Rush, Geoffrey Frida 2002 -Rush, Geoffrey Green Lantern 2011 -Rush, Geoffrey Munich 2005 -Rush, Geoffrey Finding Nemo 2003 -Rush, Geoffrey House on Haunted Hill 1999 -Rush, Geoffrey Pirates of the Caribbean: On Stranger Tides 2011 -Cyrus, Tony Spies Like Us 1985 -Cyrus, Tony The Living Daylights 1987 -Cyrus, Tony Never Say Never Again 1983 -Sasso, Will College Road Trip 2008 -Sasso, Will The Three Stooges 2012 -Sasso, Will Beverly Hills Ninja 1997 -Sasso, Will Life as We Know It 2010 -Anderson, Nathan (I) Godzilla 1998 -Anderson, Nathan (I) Money Talks 1997 -Anderson, Nathan (I) Bowfinger 1999 -Ferreri, Mark J. Almost Famous 2000 -Ferreri, Mark J. End of Days 1999 -Ferreri, Mark J. Armageddon 1998 -Marren, Christopher Saw III 2006 -Marren, Christopher Resident Evil: Apocalypse 2004 -Marren, Christopher Saw IV 2007 -Gould, Geoffrey Failure to Launch 2006 -Gould, Geoffrey Dude, Where's My Car? 2000 -Gould, Geoffrey In & Out 1997 -Gould, Geoffrey Pearl Harbor 2001 -Gould, Geoffrey Alice in Wonderland 2010 -Gould, Geoffrey O Brother, Where Art Thou? 2000 -Arpesella, Peter Eat Pray Love 2010 -Arpesella, Peter Think Like a Man 2012 -Arpesella, Peter Letters to Juliet 2010 -Hayes, Sean (I) The Three Stooges 2012 -Hayes, Sean (I) Cats & Dogs 2001 -Hayes, Sean (I) Dr. Seuss' The Cat in the Hat 2003 -Hayes, Sean (I) The Bucket List 2007 -Hayes, Sean (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Sladyk, Ken Salt 2010 -Sladyk, Ken Confessions of a Shopaholic 2009 -Sladyk, Ken Julie & Julia 2009 -Sladyk, Ken The Sisterhood of the Traveling Pants 2 2008 -Sladyk, Ken College Road Trip 2008 -Herbert, Daren A. Dreamgirls 2006 -Herbert, Daren A. Hot Tub Time Machine 2010 -Herbert, Daren A. This Means War 2012 -Moreland, David Legally Blonde 2001 -Moreland, David One Hour Photo 2002 -Moreland, David Old School 2003 -Moreland, David City of Angels 1998 -McBride, Chi Mercury Rising 1998 -McBride, Chi The Terminal 2004 -McBride, Chi The Kid 2000 -McBride, Chi Gone in Sixty Seconds 2000 -McBride, Chi I, Robot 2004 -McBride, Danny (IV) Kung Fu Panda 2 2011 -McBride, Danny (IV) Despicable Me 2010 -McBride, Danny (IV) The Heartbreak Kid 2007 -McBride, Danny (IV) Due Date 2010 -McBride, Danny (IV) Pineapple Express 2008 -McBride, Danny (IV) Superbad 2007 -McBride, Danny (IV) Land of the Lost 2009 -McBride, Danny (IV) Tropic Thunder 2008 -Cottet, Mia The Tuxedo 2002 -Cottet, Mia Phone Booth 2002 -Cottet, Mia Intolerable Cruelty 2003 -Veadov, Alex Contact 1997 -Veadov, Alex Air Force One 1997 -Veadov, Alex Drag Me to Hell 2009 -Veadov, Alex Act of Valor 2012 -Herrin, Kymberly Beverly Hills Cop II 1987 -Herrin, Kymberly Ghost Busters 1984 -Herrin, Kymberly Romancing the Stone 1984 -Downes, Robin Atkin Lemony Snicket's A Series of Unfortunate Events 2004 -Downes, Robin Atkin Body of Lies 2008 -Downes, Robin Atkin Pirates of the Caribbean: At World's End 2007 -Downes, Robin Atkin Open Season 2006 -Downes, Robin Atkin Transformers: Revenge of the Fallen 2009 -Downes, Robin Atkin How to Train Your Dragon 2010 -Downes, Robin Atkin Fantastic Four 2005 -Downes, Robin Atkin Van Helsing 2004 -Downes, Robin Atkin Shark Tale 2004 -Downes, Robin Atkin Battleship 2012 -Downes, Robin Atkin The Tale of Despereaux 2008 -Downes, Robin Atkin The Golden Compass 2007 -Downes, Robin Atkin Garfield: A Tail of Two Kitties 2006 -Downes, Robin Atkin Prometheus 2012 -Downes, Robin Atkin Spider-Man 3 2007 -Downes, Robin Atkin G.I. Joe: The Rise of Cobra 2009 -Downes, Robin Atkin Meet the Spartans 2008 -Downes, Robin Atkin Ghost Rider 2007 -Downes, Robin Atkin Clash of the Titans 2010 -Smoove, J.B. Think Like a Man 2012 -Smoove, J.B. We Bought a Zoo 2011 -Smoove, J.B. Mr. Deeds 2002 -Smoove, J.B. Date Night 2010 -Smoove, J.B. The Dictator 2012 -Shaw, Vinessa The Hills Have Eyes 2006 -Shaw, Vinessa 3:10 to Yuma 2007 -Shaw, Vinessa Eyes Wide Shut 1999 -Shaw, Vinessa 40 Days and 40 Nights 2002 -Craig, Carly Role Models 2008 -Craig, Carly The Heartbreak Kid 2007 -Craig, Carly The Three Stooges 2012 -Welch, Christopher Evan The Stepford Wives 2004 -Welch, Christopher Evan The Interpreter 2005 -Welch, Christopher Evan The Good Shepherd 2006 -Welch, Christopher Evan Vicky Cristina Barcelona 2008 -Dench, Judi Quantum of Solace 2008 -Dench, Judi Chocolat 2000 -Dench, Judi A Room with a View 1985 -Dench, Judi Shakespeare in Love 1998 -Dench, Judi Casino Royale 2006 -Dench, Judi Home on the Range 2004 -Dench, Judi Die Another Day 2002 -Dench, Judi The World Is Not Enough 1999 -Dench, Judi The Best Exotic Marigold Hotel 2011 -Dench, Judi The Chronicles of Riddick 2004 -Dench, Judi J. Edgar 2011 -Dench, Judi Pride & Prejudice 2005 -Dench, Judi GoldenEye 1995 -Dench, Judi Tomorrow Never Dies 1997 -Dench, Judi Pirates of the Caribbean: On Stranger Tides 2011 -Perez, Gwenda The Princess Diaries 2001 -Perez, Gwenda The Princess Diaries 2: Royal Engagement 2004 -Perez, Gwenda Austin Powers: International Man of Mystery 1997 -Perez, Gwenda Raising Helen 2004 -Quinn, Al (I) Ali 2001 -Quinn, Al (I) In Her Shoes 2005 -Quinn, Al (I) Any Given Sunday 1999 -Quinn, Al (I) There's Something About Mary 1998 -Tyler, Steve (II) Me, Myself & Irene 2000 -Tyler, Steve (II) The Three Stooges 2012 -Tyler, Steve (II) Shallow Hal 2001 -Tyler, Steve (II) There's Something About Mary 1998 -Culkin, Kieran The Cider House Rules 1999 -Culkin, Kieran Home Alone 2: Lost in New York 1992 -Culkin, Kieran She's All That 1999 -Culkin, Kieran Home Alone 1990 -Ruff, Michelle Bride Wars 2009 -Ruff, Michelle The Amazing Spider-Man 2012 -Ruff, Michelle Yogi Bear 2010 -Ruff, Michelle Over the Hedge 2006 -Montesinos, Gino The SpongeBob SquarePants Movie 2004 -Montesinos, Gino Collateral 2004 -Montesinos, Gino Cellular 2004 -Montesinos, Gino Bruce Almighty 2003 -Shea, McKenzie New Year's Eve 2011 -Shea, McKenzie Evan Almighty 2007 -Shea, McKenzie Wedding Crashers 2005 -LaBelle, Rob Diary of a Wimpy Kid 2010 -LaBelle, Rob Watchmen 2009 -LaBelle, Rob RV 2006 -LaBelle, Rob Hot Tub Time Machine 2010 -Fabrizio, David (I) Superman Returns 2006 -Fabrizio, David (I) Get Smart 2008 -Fabrizio, David (I) X2 2003 -Suvari, Mena Kiss the Girls 1997 -Suvari, Mena Rumor Has It... 2005 -Suvari, Mena American Beauty 1999 -Suvari, Mena American Reunion 2012 -Suvari, Mena American Pie 1999 -Suvari, Mena American Pie 2 2001 -Steiger, Rod Mars Attacks! 1996 -Steiger, Rod The Hurricane 1999 -Steiger, Rod End of Days 1999 -Stoller, Fred Dumb & Dumber 1994 -Stoller, Fred The Animal 2001 -Stoller, Fred Open Season 3 2010 -Stoller, Fred Austin Powers in Goldmember 2002 -Stoller, Fred LiTTLEMAN 2006 -Stoller, Fred Daddy Day Care 2003 -Joseph, Aaron (I) I, Robot 2004 -Joseph, Aaron (I) Romeo Must Die 2000 -Joseph, Aaron (I) Along Came a Spider 2001 -Murphy, Kevin Kean Serendipity 2001 -Murphy, Kevin Kean Mickey Blue Eyes 1999 -Murphy, Kevin Kean The Royal Tenenbaums 2001 -Hemsworth, Chris The Cabin in the Woods 2011 -Hemsworth, Chris Star Trek 2009 -Hemsworth, Chris Snow White and the Huntsman 2012 -Hemsworth, Chris The Avengers 2012 -Hemsworth, Chris Thor 2011 -Lombard, Michael Crocodile Dundee 1986 -Lombard, Michael The Devil's Advocate 1997 -Lombard, Michael The Thomas Crown Affair 1999 -D'Alessandro, Richard Mickey Blue Eyes 1999 -D'Alessandro, Richard Analyze This 1999 -D'Alessandro, Richard Forrest Gump 1994 -Green, Will (I) Any Given Sunday 1999 -Green, Will (I) The Waterboy 1998 -Green, Will (I) Armageddon 1998 -Carrera, Adam The Fast and the Furious 2001 -Carrera, Adam Bowfinger 1999 -Carrera, Adam Coyote Ugly 2000 -Carrera, Adam Ocean's Eleven 2001 -Sands, Julian The Girl with the Dragon Tattoo 2011 -Sands, Julian Ocean's Thirteen 2007 -Sands, Julian The Killing Fields 1984 -Sands, Julian A Room with a View 1985 -Shalhoub, Tony The Siege 1998 -Shalhoub, Tony Men in Black 1997 -Shalhoub, Tony Cars 2006 -Shalhoub, Tony Primary Colors 1998 -Shalhoub, Tony Cars 2 2011 -Shalhoub, Tony Galaxy Quest 1999 -Shalhoub, Tony A Civil Action 1998 -Shalhoub, Tony 1408 2007 -Shalhoub, Tony Spy Kids 2001 -Shalhoub, Tony Spy Kids 2: Island of Lost Dreams 2002 -Shalhoub, Tony Spy Kids 3-D: Game Over 2003 -Shalhoub, Tony Men in Black II 2002 -Fey, Tina Megamind 2010 -Fey, Tina Mean Girls 2004 -Fey, Tina Date Night 2010 -Fey, Tina Baby Mama 2008 -Fey, Tina Gake no ue no Ponyo 2008 -Root, Stephen (I) No Country for Old Men 2007 -Root, Stephen (I) The Ladykillers 2004 -Root, Stephen (I) Bicentennial Man 1999 -Root, Stephen (I) O Brother, Where Art Thou? 2000 -Root, Stephen (I) Dodgeball: A True Underdog Story 2004 -Root, Stephen (I) J. Edgar 2011 -Root, Stephen (I) Ice Age 2002 -Root, Stephen (I) Ice Age: The Meltdown 2006 -Root, Stephen (I) Finding Nemo 2003 -Root, Stephen (I) Rango 2011 -Root, Stephen (I) 'Crocodile' Dundee II 1988 -Root, Stephen (I) Ghost 1990 -Sabella, Ernie The Out-of-Towners 1999 -Sabella, Ernie In & Out 1997 -Sabella, Ernie The Lion King 1994 -Sabella, Ernie Mousehunt 1997 -Chabert, Lacey Ghosts of Girlfriends Past 2009 -Chabert, Lacey Rugrats Go Wild 2003 -Chabert, Lacey The Wild Thornberrys Movie 2002 -Chabert, Lacey Mean Girls 2004 -Chabert, Lacey Lost in Space 1998 -Chabert, Lacey Daddy Day Care 2003 -Chabert, Lacey Anastasia 1997 -Anzur, Terry Wag the Dog 1997 -Anzur, Terry The Perfect Storm 2000 -Anzur, Terry Volcano 1997 -O'Reilly, Genevieve The Matrix Reloaded 2003 -O'Reilly, Genevieve Star Wars: Episode III - Revenge of the Sith 2005 -O'Reilly, Genevieve The Matrix Revolutions 2003 -Cheadle, Don Volcano 1997 -Cheadle, Don Rush Hour 2 2001 -Cheadle, Don After the Sunset 2004 -Cheadle, Don Hotel for Dogs 2009 -Cheadle, Don Traffic 2000 -Cheadle, Don The Family Man 2000 -Cheadle, Don Ocean's Thirteen 2007 -Cheadle, Don Mission to Mars 2000 -Cheadle, Don Ocean's Eleven 2001 -Cheadle, Don Ocean's Twelve 2004 -Cheadle, Don Iron Man 2 2010 -Cheadle, Don Boogie Nights 1997 -Cheadle, Don Swordfish 2001 -Rimmer, Shane Star Wars 1977 -Rimmer, Shane Batman Begins 2005 -Rimmer, Shane Gandhi 1982 -Rimmer, Shane Superman II 1980 -Rimmer, Shane Spy Game 2001 -Nelson, Trevor Doyle Varsity Blues 1999 -Nelson, Trevor Doyle Miss Congeniality 2000 -Nelson, Trevor Doyle Where the Heart Is 2000 -Edelman, Gregg Anastasia 1997 -Edelman, Gregg The First Wives Club 1996 -Edelman, Gregg Spider-Man 2 2004 -Camargo, Christian The Twilight Saga: Breaking Dawn - Part 1 2011 -Camargo, Christian National Treasure: Book of Secrets 2007 -Camargo, Christian K-19: The Widowmaker 2002 -Parks Jordan, Jonathan We Were Soldiers 2002 -Parks Jordan, Jonathan A Walk to Remember 2002 -Parks Jordan, Jonathan The Notebook 2004 -Harris, Johnny (II) War Horse 2011 -Harris, Johnny (II) Snow White and the Huntsman 2012 -Harris, Johnny (II) Atonement 2007 -Cheshire, Denise Jaws 1975 -Cheshire, Denise Men in Black II 2002 -Cheshire, Denise Mighty Joe Young 1998 -Delaney, Brian T. Quantum of Solace 2008 -Delaney, Brian T. Mr. Popper's Penguins 2011 -Delaney, Brian T. Kung Fu Panda 2008 -Jaree, Angie Van Helsing 2004 -Jaree, Angie Meet the Fockers 2004 -Jaree, Angie Catwoman 2004 -Trachtenberg, Michelle Cop Out 2010 -Trachtenberg, Michelle Inspector Gadget 1999 -Trachtenberg, Michelle 17 Again 2009 -Mehta, Ajay Happy Feet Two 2011 -Mehta, Ajay Serendipity 2001 -Mehta, Ajay Superhero Movie 2008 -Mehta, Ajay Spider-Man 2002 -Esterle, Amy The Butterfly Effect 2004 -Esterle, Amy TRON: Legacy 2010 -Esterle, Amy Hot Tub Time Machine 2010 -Moeller, Ralf The Tourist 2010 -Moeller, Ralf Batman & Robin 1997 -Moeller, Ralf Universal Soldier 1992 -Moeller, Ralf Gladiator 2000 -Moeller, Ralf The Scorpion King 2002 -Barnett, Craig (I) Eraser 1996 -Barnett, Craig (I) Transformers 2007 -Barnett, Craig (I) Liar Liar 1997 -Vadim, David G.I. Jane 1997 -Vadim, David Ransom 1996 -Vadim, David Air Force One 1997 -Vadim, David Exit Wounds 2001 -Gleeson, Brendan (I) The Village 2004 -Gleeson, Brendan (I) Gangs of New York 2002 -Gleeson, Brendan (I) 28 Days Later... 2002 -Gleeson, Brendan (I) Lake Placid 1999 -Gleeson, Brendan (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Gleeson, Brendan (I) Beowulf 2007 -Gleeson, Brendan (I) Michael Collins 1996 -Gleeson, Brendan (I) Harry Potter and the Goblet of Fire 2005 -Gleeson, Brendan (I) Cold Mountain 2003 -Gleeson, Brendan (I) Mission: Impossible II 2000 -Gleeson, Brendan (I) Troy 2004 -Gleeson, Brendan (I) Artificial Intelligence: AI 2001 -Gleeson, Brendan (I) Kingdom of Heaven 2005 -Gleeson, Brendan (I) Safe House 2012 -Gleeson, Brendan (I) Braveheart 1995 -Gleeson, Brendan (I) Harry Potter and the Order of the Phoenix 2007 -Walker, Amanda (I) EverAfter 1998 -Walker, Amanda (I) Captain America: The First Avenger 2011 -Walker, Amanda (I) A Room with a View 1985 -Walker, Amanda (I) The English Patient 1996 -Hanks, Tom Forrest Gump 1994 -Hanks, Tom Toy Story 3 2010 -Hanks, Tom Charlie Wilson's War 2007 -Hanks, Tom The Queen 2006 -Hanks, Tom Saving Private Ryan 1998 -Hanks, Tom Catch Me If You Can 2002 -Hanks, Tom The Green Mile 1999 -Hanks, Tom The Polar Express 2004 -Hanks, Tom Apollo 13 1995 -Hanks, Tom Road to Perdition 2002 -Hanks, Tom Sleepless in Seattle 1993 -Hanks, Tom Cars 2006 -Hanks, Tom Magnificent Desolation: Walking on the Moon 3D 2005 -Hanks, Tom The Terminal 2004 -Hanks, Tom You've Got Mail 1998 -Hanks, Tom Bachelor Party 1984 -Hanks, Tom Larry Crowne 2011 -Hanks, Tom Cast Away 2000 -Hanks, Tom The Ladykillers 2004 -Hanks, Tom Angels & Demons 2009 -Hanks, Tom Toy Story 1995 -Hanks, Tom The Da Vinci Code 2006 -Hanks, Tom Toy Story 2 1999 -Hanks, Tom The Simpsons Movie 2007 -Hanks, Tom Philadelphia 1993 -Joosten, Kathryn Wedding Crashers 2005 -Joosten, Kathryn Alvin and the Chipmunks: The Squeakquel 2009 -Joosten, Kathryn Cheaper by the Dozen 2 2005 -Joosten, Kathryn Bedtime Stories 2008 -Joosten, Kathryn Hostage 2005 -Eisenmann, Ike Race to Witch Mountain 2009 -Eisenmann, Ike Star Trek: The Wrath of Khan 1982 -Eisenmann, Ike Hauru no ugoku shiro 2004 -Cohen, Lynn (I) Sex and the City 2 2010 -Cohen, Lynn (I) Sex and the City 2008 -Cohen, Lynn (I) Invincible 2006 -Cohen, Lynn (I) Munich 2005 -Cohen, Lynn (I) Eagle Eye 2008 -Ingle, John Batman & Robin 1997 -Ingle, John RoboCop 2 1990 -Ingle, John Hostage 2005 -O, Henry Romeo Must Die 2000 -O, Henry Shanghai Noon 2000 -O, Henry Rush Hour 3 2007 -Novak, Nikki The Holiday 2006 -Novak, Nikki The Bucket List 2007 -Novak, Nikki Any Given Sunday 1999 -Xzibit The X Files: I Want to Believe 2008 -Xzibit 8 Mile 2002 -Xzibit Hoodwinked! 2005 -Boo Khoo, Ian Spy Game 2001 -Boo Khoo, Ian Notting Hill 1999 -Boo Khoo, Ian 102 Dalmatians 2000 -Boo Khoo, Ian Tomorrow Never Dies 1997 -Egan, Susan Hercules 1997 -Egan, Susan Galaxy Quest 1999 -Egan, Susan Sen to Chihiro no kamikakushi 2001 -Egan, Susan Spider-Man 2 2004 -Egan, Susan 13 Going on 30 2004 -Diamond, Reed (I) Moneyball 2011 -Diamond, Reed (I) Good Night, and Good Luck. 2005 -Diamond, Reed (I) Clear and Present Danger 1994 -Diamond, Reed (I) S.W.A.T. 2003 -Diamond, Reed (I) Spider-Man 2 2004 -Shearman, Alan John Tucker Must Die 2006 -Shearman, Alan Eragon 2006 -Shearman, Alan The Golden Compass 2007 -Shearman, Alan Happy Feet 2006 -Kent, J Parker Shutter Island 2010 -Kent, J Parker The Town 2010 -Kent, J Parker The Fighter 2010 -Henry, Michael Tyler Underdog 2007 -Henry, Michael Tyler The Skeleton Key 2005 -Henry, Michael Tyler The Shaggy Dog 2006 -Washington, Kerry (I) Save the Last Dance 2001 -Washington, Kerry (I) Mr. & Mrs. Smith 2005 -Washington, Kerry (I) 4: Rise of the Silver Surfer 2007 -Washington, Kerry (I) LiTTLEMAN 2006 -Washington, Kerry (I) Bad Company 2002 -Washington, Kerry (I) Fantastic Four 2005 -Sedlock, Gary The Lake House 2006 -Sedlock, Gary The Break-Up 2006 -Sedlock, Gary Public Enemies 2009 -Riehle, Richard Lethal Weapon 4 1998 -Riehle, Richard Deuce Bigalow: Male Gigolo 1999 -Riehle, Richard Home on the Range 2004 -Riehle, Richard Bandits 2001 -Riehle, Richard Wedding Crashers 2005 -Riehle, Richard The Fugitive 1993 -Riehle, Richard Bridesmaids 2011 -Riehle, Richard Mercury Rising 1998 -Riehle, Richard Mighty Joe Young 1998 -Miyashima, Joey Con Air 1997 -Miyashima, Joey High School Musical 3: Senior Year 2008 -Miyashima, Joey The Karate Kid, Part II 1986 -Eastwood, Jayne Chicago 2002 -Eastwood, Jayne Hairspray 2007 -Eastwood, Jayne My Big Fat Greek Wedding 2002 -Eastwood, Jayne Dawn of the Dead 2004 -Eastwood, Jayne The Santa Clause 1994 -Lenhardt, Michelle Four Christmases 2008 -Lenhardt, Michelle Step Brothers 2008 -Lenhardt, Michelle Hancock 2008 -Lenhardt, Michelle Role Models 2008 -Griffin, Laura-Shay We Are Marshall 2006 -Griffin, Laura-Shay Bruce Almighty 2003 -Griffin, Laura-Shay Takers 2010 -Sandler, Ethan The Princess Diaries 2001 -Sandler, Ethan The Bourne Supremacy 2004 -Sandler, Ethan Meet the Robinsons 2007 -Taliferro, Michael The Replacements 2000 -Taliferro, Michael Bad Boys 1995 -Taliferro, Michael Armageddon 1998 -Sullivan, Nicole (I) The Ant Bully 2006 -Sullivan, Nicole (I) Guess Who 2005 -Sullivan, Nicole (I) Meet the Robinsons 2007 -Sullivan, Nicole (I) Superhero Movie 2008 -Sullivan, Nicole (I) 17 Again 2009 -Lee, Jason (I) The Incredibles 2004 -Lee, Jason (I) Alvin and the Chipmunks: Chipwrecked 2011 -Lee, Jason (I) Alvin and the Chipmunks 2007 -Lee, Jason (I) Almost Famous 2000 -Lee, Jason (I) Alvin and the Chipmunks: The Squeakquel 2009 -Lee, Jason (I) Vanilla Sky 2001 -Lee, Jason (I) Enemy of the State 1998 -Lee, Jason (I) Dogma 1999 -Lee, Jason (I) Underdog 2007 -Lee, Jason (I) Cop Out 2010 -Lee, Jason (I) Dreamcatcher 2003 -Lee, Jason (I) Monster House 2006 -McDormand, Frances Fargo 1996 -McDormand, Frances Transformers: Dark of the Moon 2011 -McDormand, Frances Wonder Boys 2000 -McDormand, Frances Burn After Reading 2008 -McDormand, Frances Almost Famous 2000 -McDormand, Frances Madagascar 3: Europe's Most Wanted 2012 -McDormand, Frances Something's Gotta Give 2003 -Scott, Dougray Deep Impact 1998 -Scott, Dougray EverAfter 1998 -Scott, Dougray Mission: Impossible II 2000 -Wright, Earl Dreamgirls 2006 -Wright, Earl Save the Last Dance 2001 -Wright, Earl The Hot Chick 2002 -Benson, Jodi Enchanted 2007 -Benson, Jodi Flubber 1997 -Benson, Jodi Toy Story 3 2010 -Benson, Jodi Toy Story 2 1999 -Benson, Jodi A Bug's Life 1998 -Benson, Jodi The Little Mermaid 1989 -Wilson, Luke (I) Scream 2 1997 -Wilson, Luke (I) Blue Streak 1999 -Wilson, Luke (I) Blades of Glory 2007 -Wilson, Luke (I) The Royal Tenenbaums 2001 -Wilson, Luke (I) Old School 2003 -Wilson, Luke (I) Charlie's Angels 2000 -Wilson, Luke (I) Around the World in 80 Days 2004 -Wilson, Luke (I) 3:10 to Yuma 2007 -Wilson, Luke (I) Death at a Funeral 2010 -Wilson, Luke (I) Legally Blonde 2: Red, White & Blonde 2003 -Wilson, Luke (I) Legally Blonde 2001 -Wilson, Luke (I) My Dog Skip 2000 -Wilson, Luke (I) Anchorman: The Legend of Ron Burgundy 2004 -Wilson, Luke (I) The Family Stone 2005 -Wilson, Luke (I) Charlie's Angels: Full Throttle 2003 -Axelrod, Jack J. Edgar 2011 -Axelrod, Jack Hancock 2008 -Axelrod, Jack Little Fockers 2010 -Axelrod, Jack Super 8 2011 -Axelrod, Jack Transformers: Dark of the Moon 2011 -Kydd, Jonathan Harry Potter and the Goblet of Fire 2005 -Kydd, Jonathan Harry Potter and the Prisoner of Azkaban 2004 -Kydd, Jonathan Harry Potter and the Sorcerer's Stone 2001 -Kydd, Jonathan Harry Potter and the Chamber of Secrets 2002 -Kydd, Jonathan Harry Potter and the Order of the Phoenix 2007 -Kydd, Jonathan Flushed Away 2006 -Kydd, Jonathan Harry Potter and the Half-Blood Prince 2009 -McGinley, Sean Braveheart 1995 -McGinley, Sean Michael Collins 1996 -McGinley, Sean Gangs of New York 2002 -Jones, Albert (I) The Bourne Ultimatum 2007 -Jones, Albert (I) American Gangster 2007 -Jones, Albert (I) Salt 2010 -Rosales, Gilbert Holes 2003 -Rosales, Gilbert Act of Valor 2012 -Rosales, Gilbert Traffic 2000 -Rosales, Gilbert The Siege 1998 -Rosales, Gilbert L.A. Confidential 1997 -Rosales, Gilbert Con Air 1997 -Obradors, Jacqueline Deuce Bigalow: Male Gigolo 1999 -Obradors, Jacqueline Atlantis: The Lost Empire 2001 -Obradors, Jacqueline Six Days Seven Nights 1998 -Sullivan, Larry (I) Bewitched 2005 -Sullivan, Larry (I) Catwoman 2004 -Sullivan, Larry (I) Evan Almighty 2007 -Sullivan, Larry (I) Rush Hour 1998 -Huebel, Rob The Descendants 2011 -Huebel, Rob Bowling for Columbine 2002 -Huebel, Rob Norbit 2007 -Huebel, Rob The Other Guys 2010 -Huebel, Rob Despicable Me 2010 -Huebel, Rob Little Fockers 2010 -Huebel, Rob Life as We Know It 2010 -Huebel, Rob I Love You, Man 2009 -Cipes, Greg Spider-Man 3 2007 -Cipes, Greg John Tucker Must Die 2006 -Cipes, Greg The Wild 2006 -Cipes, Greg Holes 2003 -Cipes, Greg Fast & Furious 2009 -Grammer, Kelsey Anastasia 1997 -Grammer, Kelsey Toy Story 2 1999 -Grammer, Kelsey X-Men: The Last Stand 2006 -Chan, Kim (I) Lethal Weapon 4 1998 -Chan, Kim (I) The Fifth Element 1997 -Chan, Kim (I) Shanghai Knights 2003 -Chan, Kim (I) Gung Ho 1986 -Chan, Kim (I) The Devil's Advocate 1997 -Purwin, Alan D. Real Steel 2011 -Purwin, Alan D. The Cell 2000 -Purwin, Alan D. The Lost World: Jurassic Park 1997 -Purwin, Alan D. Hancock 2008 -Purwin, Alan D. Indecent Proposal 1993 -Shipman, William Law Abiding Citizen 2009 -Shipman, William Forrest Gump 1994 -Shipman, William True Lies 1994 -Shipman, William In the Line of Fire 1993 -Dick, Andy (I) Zoolander 2001 -Dick, Andy (I) The Cable Guy 1996 -Dick, Andy (I) Inspector Gadget 1999 -Dick, Andy (I) Dude, Where's My Car? 2000 -Dick, Andy (I) Road Trip 2000 -Dick, Andy (I) Dr. Dolittle 2 2001 -Dick, Andy (I) Funny People 2009 -Dick, Andy (I) Knocked Up 2007 -Dick, Andy (I) Being John Malkovich 1999 -Dick, Andy (I) Hoodwinked! 2005 -Dick, Andy (I) Old School 2003 -Gould, Harold (I) Patch Adams 1998 -Gould, Harold (I) Freaky Friday 2003 -Gould, Harold (I) The Master of Disguise 2002 -Gould, Harold (I) Stuart Little 1999 -Gould, Harold (I) Brother Bear 2003 -Burch, Jesse (I) Flightplan 2005 -Burch, Jesse (I) The Ring Two 2005 -Burch, Jesse (I) Evan Almighty 2007 -Rose, Charlie (II) The Ides of March 2011 -Rose, Charlie (II) Primary Colors 1998 -Rose, Charlie (II) The Da Vinci Code 2006 -Magner, Colm Don't Say a Word 2001 -Magner, Colm Frequency 2000 -Magner, Colm Dawn of the Dead 2004 -Endoso, Kenny Charlie's Angels 2000 -Endoso, Kenny Heat 1995 -Endoso, Kenny Blue Streak 1999 -Carhart, Timothy Air Force One 1997 -Carhart, Timothy The Hunt for Red October 1990 -Carhart, Timothy Ghost Busters 1984 -Gellar, Sarah Michelle Scream 2 1997 -Gellar, Sarah Michelle Scooby Doo 2: Monsters Unleashed 2004 -Gellar, Sarah Michelle I Know What You Did Last Summer 1997 -Gellar, Sarah Michelle Small Soldiers 1998 -Gellar, Sarah Michelle Nochnoy dozor 2004 -Gellar, Sarah Michelle She's All That 1999 -Gellar, Sarah Michelle TMNT 2007 -Gellar, Sarah Michelle The Grudge 2004 -Gellar, Sarah Michelle Scooby-Doo 2002 -Gellar, Sarah Michelle Cruel Intentions 1999 -Larter, Ali Resident Evil: Extinction 2007 -Larter, Ali Varsity Blues 1999 -Larter, Ali Final Destination 2 2003 -Larter, Ali Resident Evil: Afterlife 2010 -Larter, Ali House on Haunted Hill 1999 -Larter, Ali The Final Destination 2009 -Larter, Ali Legally Blonde 2001 -Larter, Ali Final Destination 2000 -Glover, Danny Lethal Weapon 4 1998 -Glover, Danny The Royal Tenenbaums 2001 -Glover, Danny Lethal Weapon 3 1992 -Glover, Danny Death at a Funeral 2010 -Glover, Danny The Rainmaker 1997 -Glover, Danny Dreamgirls 2006 -Glover, Danny Saw V 2008 -Glover, Danny How Stella Got Her Groove Back 1998 -Glover, Danny Lethal Weapon 2 1989 -Glover, Danny The Prince of Egypt 1998 -Glover, Danny Antz 1998 -Glover, Danny The Shaggy Dog 2006 -Glover, Danny Barnyard 2006 -Glover, Danny Saw 2004 -Kaye, David (I) Hulk 2003 -Kaye, David (I) X2 2003 -Kaye, David (I) Terminator Salvation 2009 -Kaye, David (I) The Ant Bully 2006 -Kaye, David (I) Up 2009 -Heslov, Grant The Birdcage 1996 -Heslov, Grant Congo 1995 -Heslov, Grant True Lies 1994 -Heslov, Grant Good Night, and Good Luck. 2005 -Heslov, Grant Enemy of the State 1998 -Heslov, Grant The Scorpion King 2002 -Heslov, Grant Dante's Peak 1997 -DeSantis, John (I) Master and Commander: The Far Side of the World 2003 -DeSantis, John (I) The 13th Warrior 1999 -DeSantis, John (I) LiTTLEMAN 2006 -Marshall, Paul (X) Star Trek 2009 -Marshall, Paul (X) Cowboys & Aliens 2011 -Marshall, Paul (X) Pirates of the Caribbean: At World's End 2007 -Lopez, George (I) Rio 2011 -Lopez, George (I) The Adventures of Sharkboy and Lavagirl 3-D 2005 -Lopez, George (I) Beverly Hills Chihuahua 2008 -Lopez, George (I) Marmaduke 2010 -Lopez, George (I) The Smurfs 2011 -Raider-Wexler, Victor The Pursuit of Happyness 2006 -Raider-Wexler, Victor Minority Report 2002 -Raider-Wexler, Victor Dr. Dolittle 2 2001 -McKenna, Joseph (I) Twelve Monkeys 1995 -McKenna, Joseph (I) The Long Kiss Goodnight 1996 -McKenna, Joseph (I) Shutter Island 2010 -Lasseter, John A Bug's Life 1998 -Lasseter, John Toy Story 2 1999 -Lasseter, John Cars 2 2011 -Scott, Stuart (I) Drumline 2002 -Scott, Stuart (I) The Kid 2000 -Scott, Stuart (I) Herbie Fully Loaded 2005 -Newton, Wayne Licence to Kill 1989 -Newton, Wayne Ocean's Eleven 2001 -Newton, Wayne Vegas Vacation 1997 -Wells, Mark (II) The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Wells, Mark (II) Sahara 2005 -Wells, Mark (II) Sky Captain and the World of Tomorrow 2004 -Morelli, Tony (I) Final Destination 3 2006 -Morelli, Tony (I) Timecop 1994 -Morelli, Tony (I) Scary Movie 4 2006 -Blommaert, Susan Confessions of a Shopaholic 2009 -Blommaert, Susan United 93 2006 -Blommaert, Susan Mousehunt 1997 -Spence, Bruce (I) Peter Pan 2003 -Spence, Bruce (I) Star Wars: Episode III - Revenge of the Sith 2005 -Spence, Bruce (I) Australia 2008 -Spence, Bruce (I) Finding Nemo 2003 -Spence, Bruce (I) Ace Ventura: When Nature Calls 1995 -Spence, Bruce (I) The Lord of the Rings: The Return of the King 2003 -Spence, Bruce (I) The Matrix Revolutions 2003 -Spence, Bruce (I) The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Rashad, Ahmad Michael Jordan to the Max 2000 -Rashad, Ahmad Like Mike 2002 -Rashad, Ahmad Space Jam 1996 -Lynch, Susan (I) From Hell 2001 -Lynch, Susan (I) Interview with the Vampire: The Vampire Chronicles 1994 -Lynch, Susan (I) Waking Ned 1998 -Wagner, Jobeth Role Models 2008 -Wagner, Jobeth 17 Again 2009 -Wagner, Jobeth I Love You, Man 2009 -Wagner, Jobeth Tropic Thunder 2008 -Wagner, Jobeth Hancock 2008 -Jupp, Miles Sherlock Holmes 2009 -Jupp, Miles Johnny English Reborn 2011 -Jupp, Miles Harry Potter and the Order of the Phoenix 2007 -Hyde, Jonathan The Mummy 1999 -Hyde, Jonathan Jumanji 1995 -Hyde, Jonathan Anaconda 1997 -Hyde, Jonathan Titanic 1997 -Ferreira, Louis (II) Dawn of the Dead 2004 -Ferreira, Louis (II) Saw V 2008 -Ferreira, Louis (II) Saw IV 2007 -de Keyser, David Yentl 1983 -de Keyser, David Superman 1978 -de Keyser, David Harry Potter and the Sorcerer's Stone 2001 -Gray, Macy Scary Movie 3 2003 -Gray, Macy Training Day 2001 -Gray, Macy Around the World in 80 Days 2004 -Gray, Macy Spider-Man 2002 -Sayre, Jill Spider-Man 2 2004 -Sayre, Jill Pineapple Express 2008 -Sayre, Jill Spider-Man 2002 -Lewandowski, Bob Law Abiding Citizen 2009 -Lewandowski, Bob The Last Airbender 2010 -Lewandowski, Bob Limitless 2011 -Wehr, Adrienne Unstoppable 2010 -Wehr, Adrienne Dogma 1999 -Wehr, Adrienne Inspector Gadget 1999 -Wehr, Adrienne Zack and Miri Make a Porno 2008 -Francis, Elliott (II) Atonement 2007 -Francis, Elliott (II) Harry Potter and the Half-Blood Prince 2009 -Francis, Elliott (II) Harry Potter and the Deathly Hallows: Part 1 2010 -Nam, Leonardo The Sisterhood of the Traveling Pants 2005 -Nam, Leonardo Vantage Point 2008 -Nam, Leonardo The Sisterhood of the Traveling Pants 2 2008 -Nam, Leonardo He's Just Not That Into You 2009 -Nam, Leonardo The Fast and the Furious: Tokyo Drift 2006 -Dratch, Rachel I Now Pronounce You Chuck & Larry 2007 -Dratch, Rachel Just Go with It 2011 -Dratch, Rachel Click 2006 -Cudney, Roger Licence to Kill 1989 -Cudney, Roger Total Recall 1990 -Cudney, Roger Rambo: First Blood Part II 1985 -Schoeppner, Shane Friends with Benefits 2011 -Schoeppner, Shane Moneyball 2011 -Schoeppner, Shane Crazy, Stupid, Love. 2011 -Shinkoda, Peter (I) I, Robot 2004 -Shinkoda, Peter (I) Paycheck 2003 -Shinkoda, Peter (I) Miracle 2004 -Neeson, Liam The Haunting 1999 -Neeson, Liam Schindler's List 1993 -Neeson, Liam Gangs of New York 2002 -Neeson, Liam Wrath of the Titans 2012 -Neeson, Liam Batman Begins 2005 -Neeson, Liam The Grey 2011 -Neeson, Liam Everest 1998 -Neeson, Liam Love Actually 2003 -Neeson, Liam The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Neeson, Liam Michael Collins 1996 -Neeson, Liam Star Wars: Episode I - The Phantom Menace 1999 -Neeson, Liam Star Wars: Episode II - Attack of the Clones 2002 -Neeson, Liam The Chronicles of Narnia: Prince Caspian 2008 -Neeson, Liam The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Neeson, Liam Battleship 2012 -Neeson, Liam K-19: The Widowmaker 2002 -Neeson, Liam Gake no ue no Ponyo 2008 -Neeson, Liam Unknown 2011 -Neeson, Liam Kingdom of Heaven 2005 -Neeson, Liam Clash of the Titans 2010 -Neeson, Liam The A-Team 2010 -Turman, Glynn How Stella Got Her Groove Back 1998 -Turman, Glynn Takers 2010 -Turman, Glynn Sahara 2005 -Turman, Glynn Super 8 2011 -Turman, Glynn Men of Honor 2000 -Tochi, Brian Starship Troopers 1997 -Tochi, Brian The Lion King 1994 -Tochi, Brian Forgetting Sarah Marshall 2008 -Tochi, Brian The Prince of Egypt 1998 -Tochi, Brian Jumper 2008 -Tochi, Brian Police Academy 3: Back in Training 1986 -Tochi, Brian Fight Club 1999 -Woodbury, Judith Lethal Weapon 4 1998 -Woodbury, Judith The Nutty Professor 1996 -Woodbury, Judith Conspiracy Theory 1997 -McBurney, Simon Body of Lies 2008 -McBurney, Simon The Manchurian Candidate 2004 -McBurney, Simon Robin Hood 2010 -McBurney, Simon The Golden Compass 2007 -McBurney, Simon Harry Potter and the Deathly Hallows: Part 1 2010 -McBurney, Simon Tinker Tailor Soldier Spy 2011 -Harris, Harriet Sansom Romeo + Juliet 1996 -Harris, Harriet Sansom Memento 2000 -Harris, Harriet Sansom Monster-in-Law 2005 -Meloni, Christopher Runaway Bride 1999 -Meloni, Christopher Nights in Rodanthe 2008 -Meloni, Christopher Twelve Monkeys 1995 -Willis, Susan (I) Mystic River 2003 -Willis, Susan (I) The 13th Warrior 1999 -Willis, Susan (I) The Faculty 1998 -Moore, Jane (II) Philadelphia 1993 -Moore, Jane (II) Mannequin 1987 -Moore, Jane (II) Dead Poets Society 1989 -Russo, James (I) Open Range 2003 -Russo, James (I) Beverly Hills Cop 1984 -Russo, James (I) Public Enemies 2009 -Russo, James (I) Donnie Brasco 1997 -Dempsey, Michael (I) Bowfinger 1999 -Dempsey, Michael (I) Changeling 2008 -Dempsey, Michael (I) My Favorite Martian 1999 -Dempsey, Michael (I) The Ring Two 2005 -Holden, Larry Batman Begins 2005 -Holden, Larry Insomnia 2002 -Holden, Larry Memento 2000 -Hansen, Daniel (I) Being John Malkovich 1999 -Hansen, Daniel (I) Meet the Robinsons 2007 -Hansen, Daniel (I) Stuart Little 2 2002 -Ursin, David Die Hard 1988 -Ursin, David Jerry Maguire 1996 -Ursin, David Space Jam 1996 -Miles, Peter (III) Sherlock Holmes 2009 -Miles, Peter (III) National Treasure: Book of Secrets 2007 -Miles, Peter (III) Saving Private Ryan 1998 -Rosario, José Ramón The Day After Tomorrow 2004 -Rosario, José Ramón Stepmom 1998 -Rosario, José Ramón Mystic River 2003 -Rosario, José Ramón Eat Pray Love 2010 -Rosario, José Ramón A Perfect Murder 1998 -Rosario, José Ramón Two Weeks Notice 2002 -Rosario, José Ramón Conspiracy Theory 1997 -Rosario, José Ramón Get Him to the Greek 2010 -Pearce, Guy (I) Memento 2000 -Pearce, Guy (I) The Count of Monte Cristo 2002 -Pearce, Guy (I) Rules of Engagement 2000 -Pearce, Guy (I) Bedtime Stories 2008 -Pearce, Guy (I) Prometheus 2012 -Pearce, Guy (I) The Time Machine 2002 -Pearce, Guy (I) The King's Speech 2010 -Pearce, Guy (I) L.A. Confidential 1997 -Macdonald, Kelly The Hitchhiker's Guide to the Galaxy 2005 -Macdonald, Kelly No Country for Old Men 2007 -Macdonald, Kelly Finding Neverland 2004 -Macdonald, Kelly Elizabeth 1998 -Macdonald, Kelly Brave 2012 -Macdonald, Kelly Gosford Park 2001 -Macdonald, Kelly Harry Potter and the Deathly Hallows: Part 2 2011 -Macdonald, Kelly Nanny McPhee 2005 -Russell, Clive Sherlock Holmes 2009 -Russell, Clive Made of Honor 2008 -Russell, Clive King Arthur 2004 -Russell, Clive Sherlock Holmes: A Game of Shadows 2011 -Russell, Clive The Wolfman 2010 -Russell, Clive The 13th Warrior 1999 -Ruggiero, Allelon Twelve Monkeys 1995 -Ruggiero, Allelon The Mirror Has Two Faces 1996 -Ruggiero, Allelon Dead Poets Society 1989 -Kanellakos, Alexander Patch Adams 1998 -Kanellakos, Alexander Moneyball 2011 -Kanellakos, Alexander Flubber 1997 -Kanellakos, Alexander Charlie Wilson's War 2007 -Kanellakos, Alexander What Dreams May Come 1998 -Kanellakos, Alexander Sister Act 1992 -Kanellakos, Alexander Contagion 2011 -Kanellakos, Alexander Bicentennial Man 1999 -Kanellakos, Alexander Live Free or Die Hard 2007 -Kanellakos, Alexander Rush Hour 3 2007 -Dennehy, Elizabeth Red Dragon 2002 -Dennehy, Elizabeth Clear and Present Danger 1994 -Dennehy, Elizabeth Hancock 2008 -Dennehy, Elizabeth The Game 1997 -Gyllenhaal, Jake Brokeback Mountain 2005 -Gyllenhaal, Jake The Day After Tomorrow 2004 -Gyllenhaal, Jake Source Code 2011 -Gyllenhaal, Jake Prince of Persia: The Sands of Time 2010 -Gyllenhaal, Jake October Sky 1999 -Gyllenhaal, Jake Jarhead 2005 -Pompeo, Ellen Catch Me If You Can 2002 -Pompeo, Ellen Old School 2003 -Pompeo, Ellen Daredevil 2003 -Cheatham, Maree The Wedding Singer 1998 -Cheatham, Maree Mr. & Mrs. Smith 2005 -Cheatham, Maree Rumor Has It... 2005 -Cheatham, Maree America's Sweethearts 2001 -Cheatham, Maree Hanging Up 2000 -Kilman, Buzz The Silence of the Lambs 1991 -Kilman, Buzz Philadelphia 1993 -Kilman, Buzz The Manchurian Candidate 2004 -Del Toro, Benicio The Wolfman 2010 -Del Toro, Benicio Licence to Kill 1989 -Del Toro, Benicio Sin City 2005 -Del Toro, Benicio Traffic 2000 -Rapp, Anthony Road Trip 2000 -Rapp, Anthony Twister 1996 -Rapp, Anthony A Beautiful Mind 2001 -Ermey, R. Lee Starship Troopers 1997 -Ermey, R. Lee Toy Story 3 2010 -Ermey, R. Lee The Texas Chainsaw Massacre 2003 -Ermey, R. Lee Toy Story 2 1999 -Ermey, R. Lee Se7en 1995 -Ermey, R. Lee Apocalypse Now 1979 -Ermey, R. Lee Recess: School's Out 2001 -Ermey, R. Lee X-Men: The Last Stand 2006 -Ermey, R. Lee The Texas Chainsaw Massacre: The Beginning 2006 -Ermey, R. Lee Toy Story 1995 -Huang, James G-Force 2009 -Huang, James Memoirs of a Geisha 2005 -Huang, James Skyline 2010 -Huang, James Deja Vu 2006 -Huang, James Eagle Eye 2008 -Vibert, Bill Saw IV 2007 -Vibert, Bill Saw III 2006 -Vibert, Bill Saw V 2008 -Lew, James Lethal Weapon 4 1998 -Lew, James Traffic 2000 -Lew, James Rush Hour 2 2001 -Lew, James Timecop 1994 -Hugot, Marceline The Dictator 2012 -Hugot, Marceline The Sisterhood of the Traveling Pants 2 2008 -Hugot, Marceline United 93 2006 -Hugot, Marceline Confessions of a Shopaholic 2009 -Hugot, Marceline Julie & Julia 2009 -Bacon, Daniel (I) Fantastic Four 2005 -Bacon, Daniel (I) Miracle 2004 -Bacon, Daniel (I) Eight Below 2006 -Bacon, Daniel (I) The Day the Earth Stood Still 2008 -Marshall-Fricker, Lily The Princess Diaries 2001 -Marshall-Fricker, Lily The Princess Diaries 2: Royal Engagement 2004 -Marshall-Fricker, Lily New Year's Eve 2011 -Marshall-Fricker, Lily Raising Helen 2004 -Bell, Lake Shrek Forever After 2010 -Bell, Lake What Happens in Vegas 2008 -Bell, Lake No Strings Attached 2011 -Bell, Lake It's Complicated 2009 -Shannon, Michael (V) World Trade Center 2006 -Shannon, Michael (V) 8 Mile 2002 -Shannon, Michael (V) Kangaroo Jack 2003 -Shannon, Michael (V) High Crimes 2002 -Shannon, Michael (V) Pearl Harbor 2001 -Shannon, Michael (V) Bad Boys II 2003 -Shannon, Michael (V) Vanilla Sky 2001 -Shannon, Michael (V) Groundhog Day 1993 -Smiff, C.C. The Wolfman 2010 -Smiff, C.C. National Treasure: Book of Secrets 2007 -Smiff, C.C. Prometheus 2012 -Offerman, Nick (I) City of Angels 1998 -Offerman, Nick (I) 21 Jump Street 2012 -Offerman, Nick (I) Miss Congeniality 2: Armed and Fabulous 2005 -Offerman, Nick (I) Sin City 2005 -Cort, Bud Dogma 1999 -Cort, Bud Coyote Ugly 2000 -Cort, Bud Heat 1995 -Fair, Mel Shrek 2 2004 -Fair, Mel Super 8 2011 -Fair, Mel Halloween 2007 -Koehler, Fred Divine Secrets of the Ya-Ya Sisterhood 2002 -Koehler, Fred Death Race 2008 -Koehler, Fred Pearl Harbor 2001 -Biggs, Jason (I) American Wedding 2003 -Biggs, Jason (I) American Reunion 2012 -Biggs, Jason (I) Eight Below 2006 -Biggs, Jason (I) American Pie 1999 -Biggs, Jason (I) American Pie 2 2001 -Curtis Brown, Robert Catch Me If You Can 2002 -Curtis Brown, Robert Bruce Almighty 2003 -Curtis Brown, Robert Spider-Man 3 2007 -Curtis Brown, Robert Guess Who 2005 -Curtis Brown, Robert Trading Places 1983 -Curtis Brown, Robert Bean 1997 -Curtis Brown, Robert It's Complicated 2009 -Curtis Brown, Robert Dreamgirls 2006 -Curtis Brown, Robert High School Musical 3: Senior Year 2008 -Curtis Brown, Robert After the Sunset 2004 -Curtis Brown, Robert Red Dragon 2002 -Duffy, Thomas F. Mercury Rising 1998 -Duffy, Thomas F. Out for Justice 1991 -Duffy, Thomas F. Varsity Blues 1999 -Duffy, Thomas F. Super 8 2011 -Duffy, Thomas F. The Lost World: Jurassic Park 1997 -Duffy, Thomas F. World Trade Center 2006 -Duffy, Thomas F. Independence Day 1996 -Alan, Terry Friday Night Lights 2004 -Alan, Terry The Longest Yard 2005 -Alan, Terry Glory Road 2006 -Stoll, Corey Salt 2010 -Stoll, Corey Push 2009 -Stoll, Corey Midnight in Paris 2011 -Brown, Brianna (I) Knocked Up 2007 -Brown, Brianna (I) The Animal 2001 -Brown, Brianna (I) The 40 Year Old Virgin 2005 -Brown, Brianna (I) Spider-Man 2 2004 -Parker, Tiara Drive 2011 -Parker, Tiara Alvin and the Chipmunks 2007 -Parker, Tiara Crazy, Stupid, Love. 2011 -Michie, David Superman Returns 2006 -Michie, David TMNT 2007 -Michie, David Halloween 2007 -Michie, David Final Fantasy: The Spirits Within 2001 -Michie, David Syriana 2005 -Michie, David Team America: World Police 2004 -De Banzie, Lois Sudden Impact 1983 -De Banzie, Lois Tootsie 1982 -De Banzie, Lois Sister Act 1992 -Eddy, Sonya Patch Adams 1998 -Eddy, Sonya Barbershop 2002 -Eddy, Sonya Inspector Gadget 1999 -Eddy, Sonya Daddy Day Care 2003 -Eddy, Sonya Coach Carter 2005 -Eddy, Sonya Matchstick Men 2003 -Eddy, Sonya Nutty Professor II: The Klumps 2000 -Herdman, Josh Harry Potter and the Goblet of Fire 2005 -Herdman, Josh Harry Potter and the Prisoner of Azkaban 2004 -Herdman, Josh Harry Potter and the Chamber of Secrets 2002 -Herdman, Josh Harry Potter and the Deathly Hallows: Part 1 2010 -Herdman, Josh Harry Potter and the Deathly Hallows: Part 2 2011 -Herdman, Josh Harry Potter and the Sorcerer's Stone 2001 -Herdman, Josh Harry Potter and the Order of the Phoenix 2007 -Herdman, Josh Harry Potter and the Half-Blood Prince 2009 -Cullen, Brett (I) Monte Carlo 2011 -Cullen, Brett (I) The Replacements 2000 -Cullen, Brett (I) Ghost Rider 2007 -Cullen, Brett (I) Apollo 13 1995 -Mallow, Dave Battleship 2012 -Mallow, Dave The Siege 1998 -Mallow, Dave The Waterboy 1998 -Mallow, Dave Eraser 1996 -Green, Vince Save the Last Dance 2001 -Green, Vince Hard Ball 2001 -Green, Vince Barbershop 2002 -Zaremba, Dianne Munich 2005 -Zaremba, Dianne The Taking of Pelham 1 2 3 2009 -Zaremba, Dianne Indiana Jones and the Kingdom of the Crystal Skull 2008 -Zúñiga, José (I) Ransom 1996 -Zúñiga, José (I) Mission: Impossible III 2006 -Zúñiga, José (I) Con Air 1997 -Zúñiga, José (I) Constantine 2005 -Zúñiga, José (I) Striptease 1996 -Renee-Preciado, Julene Titanic 1997 -Renee-Preciado, Julene A Christmas Carol 2009 -Renee-Preciado, Julene Beowulf 2007 -Renee-Preciado, Julene The Polar Express 2004 -Renee-Preciado, Julene Avatar 2009 -Riesco, Armando Fever Pitch 2005 -Riesco, Armando National Treasure 2004 -Riesco, Armando Garden State 2004 -Riesco, Armando National Treasure: Book of Secrets 2007 -Riesco, Armando World Trade Center 2006 -Testa, Mary The Out-of-Towners 1999 -Testa, Mary Eat Pray Love 2010 -Testa, Mary Sleepers 1996 -Finley, Greg (I) Dinosaur 2000 -Finley, Greg (I) Lilo & Stitch 2002 -Finley, Greg (I) Final Fantasy: The Spirits Within 2001 -Roeder, Peggy The Lake House 2006 -Roeder, Peggy Road to Perdition 2002 -Roeder, Peggy Groundhog Day 1993 -Roeder, Peggy Eagle Eye 2008 -Witty, Lynn Sex and the City 2008 -Witty, Lynn 27 Dresses 2008 -Witty, Lynn Confessions of a Shopaholic 2009 -Witty, Lynn What Happens in Vegas 2008 -Johnson, Lyndon (I) We Were Soldiers 2002 -Johnson, Lyndon (I) JFK 1991 -Johnson, Lyndon (I) Live Free or Die Hard 2007 -Johnson, Lyndon (I) Forrest Gump 1994 -McShane, Jamie Hostage 2005 -McShane, Jamie The Avengers 2012 -McShane, Jamie Thor 2011 -Mulkey, Randy High Crimes 2002 -Mulkey, Randy Blow 2001 -Mulkey, Randy The Lincoln Lawyer 2011 -Nichols, Nichelle Snow Dogs 2002 -Nichols, Nichelle Star Trek IV: The Voyage Home 1986 -Nichols, Nichelle Star Trek: The Wrath of Khan 1982 -Nichols, Nichelle Are We There Yet? 2005 -Nichols, Nichelle Star Trek III: The Search for Spock 1984 -Andre, Charles (II) Cats & Dogs 2001 -Andre, Charles (II) Timecop 1994 -Andre, Charles (II) Along Came a Spider 2001 -Carroll, Charles (II) I Am Number Four 2011 -Carroll, Charles (II) Disturbia 2007 -Carroll, Charles (II) Eagle Eye 2008 -Carroll, Charles (II) RoboCop 1987 -Altamirano, Pedro The Legend of Zorro 2005 -Altamirano, Pedro Romeo + Juliet 1996 -Altamirano, Pedro The Mask of Zorro 1998 -Altamirano, Pedro Collateral Damage 2002 -Sagal, McNally The Tale of Despereaux 2008 -Sagal, McNally Pleasantville 1998 -Sagal, McNally The Negotiator 1998 -Sagal, McNally Daddy Day Care 2003 -Greco, Marco (I) Angels & Demons 2009 -Greco, Marco (I) Sleepers 1996 -Greco, Marco (I) Hannibal 2001 -Chrest, Joe Battle Los Angeles 2011 -Chrest, Joe Secretariat 2010 -Chrest, Joe The Aviator 2004 -Chrest, Joe The Ring 2002 -Chrest, Joe The Skeleton Key 2005 -Chrest, Joe Erin Brockovich 2000 -Chrest, Joe Battleship 2012 -Chrest, Joe The Lucky One 2012 -Chrest, Joe Runaway Jury 2003 -Chrest, Joe 21 Jump Street 2012 -Chrest, Joe The Secret Life of Bees 2008 -Chrest, Joe The Blind Side 2009 -Chrest, Joe Ocean's Thirteen 2007 -Rombaut, Deborah Star Trek 2009 -Rombaut, Deborah The Green Hornet 2011 -Rombaut, Deborah 500) Days of Summer 2009 -Rombaut, Deborah You Don't Mess with the Zohan 2008 -Rombaut, Deborah Water for Elephants 2011 -Bell, Marshall Starship Troopers 1997 -Bell, Marshall Capote 2005 -Bell, Marshall Identity 2003 -Bell, Marshall Total Recall 1990 -Bell, Marshall Stand by Me 1986 -Starr, Joe Date Night 2010 -Starr, Joe The Adventures of Tintin 2011 -Starr, Joe World Trade Center 2006 -Prinze Jr., Freddie She's All That 1999 -Prinze Jr., Freddie I Know What You Did Last Summer 1997 -Prinze Jr., Freddie Scooby Doo 2: Monsters Unleashed 2004 -Prinze Jr., Freddie I Still Know What You Did Last Summer 1998 -Prinze Jr., Freddie Scooby-Doo 2002 -De Castro, Mannie The Social Network 2010 -De Castro, Mannie Killers 2010 -De Castro, Mannie Knight and Day 2010 -De Castro, Mannie Just Go with It 2011 -McGowan, Mickie Horton Hears a Who! 2008 -McGowan, Mickie Toy Story 3 2010 -McGowan, Mickie Toy Story 2 1999 -McGowan, Mickie Up 2009 -McGowan, Mickie Ice Age: The Meltdown 2006 -McGowan, Mickie Cloudy with a Chance of Meatballs 2009 -McGowan, Mickie Hercules 1997 -McGowan, Mickie Monsters, Inc. 2001 -McGowan, Mickie Sen to Chihiro no kamikakushi 2001 -McGowan, Mickie WALL·E 2008 -McGowan, Mickie Home on the Range 2004 -McGowan, Mickie The Lorax 2012 -McGowan, Mickie Treasure Planet 2002 -McGowan, Mickie Cars 2006 -McGowan, Mickie The Hunchback of Notre Dame 1996 -McGowan, Mickie A Bug's Life 1998 -McGowan, Mickie Lilo & Stitch 2002 -McGowan, Mickie Gake no ue no Ponyo 2008 -McGowan, Mickie Beauty and the Beast 1991 -McGowan, Mickie Aladdin 1992 -McGowan, Mickie Toy Story 1995 -McGowan, Mickie The Emperor's New Groove 2000 -McGowan, Mickie Surf's Up 2007 -McGowan, Mickie Brother Bear 2003 -McGowan, Mickie The Little Mermaid 1989 -Rajskub, Mary Lynn Legally Blonde 2: Red, White & Blonde 2003 -Rajskub, Mary Lynn Dude, Where's My Car? 2000 -Rajskub, Mary Lynn Magnolia 1999 -Rajskub, Mary Lynn Julie & Julia 2009 -Rajskub, Mary Lynn Firewall 2006 -Rajskub, Mary Lynn Sweet Home Alabama 2002 -Rajskub, Mary Lynn Little Miss Sunshine 2006 -Rajskub, Mary Lynn Road Trip 2000 -Coleman, Dabney Tootsie 1982 -Coleman, Dabney Inspector Gadget 1999 -Coleman, Dabney Stuart Little 1999 -Coleman, Dabney You've Got Mail 1998 -Coleman, Dabney On Golden Pond 1981 -Coleman, Dabney Recess: School's Out 2001 -DeMunn, Jeffrey Phenomenon 1996 -DeMunn, Jeffrey The X Files 1998 -DeMunn, Jeffrey The Mist 2007 -DeMunn, Jeffrey Burn After Reading 2008 -DeMunn, Jeffrey The Green Mile 1999 -Kelly, Brendan (I) The Devil's Own 1997 -Kelly, Brendan (I) Con Air 1997 -Kelly, Brendan (I) Malcolm X 1992 -Kelly, Brendan (I) Cellular 2004 -Kelly, Brendan (I) The Rock 1996 -Kelly, Brendan (I) The Lizzie McGuire Movie 2003 -Lustig, Aaron The Day After Tomorrow 2004 -Lustig, Aaron Clear and Present Danger 1994 -Lustig, Aaron Bedazzled 2000 -Lustig, Aaron The Relic 1997 -Lustig, Aaron Due Date 2010 -Lustig, Aaron Thank You for Smoking 2005 -Lustig, Aaron Transformers: Revenge of the Fallen 2009 -Campbell, Jason Thomas Starship Troopers 1997 -Campbell, Jason Thomas Face/Off 1997 -Campbell, Jason Thomas As Good as It Gets 1997 -Moussa, Tarek The Game Plan 2007 -Moussa, Tarek Sex and the City 2 2010 -Moussa, Tarek 27 Dresses 2008 -McCoy, Angelina The Social Network 2010 -McCoy, Angelina The Muppets 2011 -McCoy, Angelina The Curious Case of Benjamin Button 2008 -McCoy, Angelina Enchanted 2007 -Spencer, John (I) The Rock 1996 -Spencer, John (I) Cop Land 1997 -Spencer, John (I) The Negotiator 1998 -Spencer, John (I) Presumed Innocent 1990 -Guinness, Peter (I) The Saint 1997 -Guinness, Peter (I) Sleepy Hollow 1999 -Guinness, Peter (I) Alien³ 1992 -Gandolfini, James A Civil Action 1998 -Gandolfini, James The Taking of Pelham 1 2 3 2009 -Gandolfini, James The Mexican 2001 -Gandolfini, James Where the Wild Things Are 2009 -Porter, Ian (I) Gulliver's Travels 2010 -Porter, Ian (I) Mr. Bean's Holiday 2007 -Porter, Ian (I) Spy Game 2001 -Porter, Ian (I) Saving Private Ryan 1998 -Kimbrough, Charles The Wedding Planner 2001 -Kimbrough, Charles The Hunchback of Notre Dame 1996 -Kimbrough, Charles Recess: School's Out 2001 -Singer, Rachel (I) The Green Mile 1999 -Singer, Rachel (I) What Lies Beneath 2000 -Singer, Rachel (I) Fight Club 1999 -Brown, Lennox Blade 1998 -Brown, Lennox Enemy of the State 1998 -Brown, Lennox Blade II 2002 -Brown, Lennox U.S. Marshals 1998 -Roche, Jim (I) The Manchurian Candidate 2004 -Roche, Jim (I) Philadelphia 1993 -Roche, Jim (I) The Silence of the Lambs 1991 -Levy, Marty Back to the Future Part II 1989 -Levy, Marty Volcano 1997 -Levy, Marty Money Talks 1997 -Anderson, Caitlin Rose Ice Age: The Meltdown 2006 -Anderson, Caitlin Rose Brother Bear 2003 -Anderson, Caitlin Rose Horton Hears a Who! 2008 -Hyler, Erik The Wedding Planner 2001 -Hyler, Erik Wild Wild West 1999 -Hyler, Erik Inspector Gadget 1999 -Hyler, Erik Scream 2 1997 -Ramm, Haley Flightplan 2005 -Ramm, Haley Yours, Mine and Ours 2005 -Ramm, Haley X-Men: The Last Stand 2006 -Campbell, J. Kenneth Blue Streak 1999 -Campbell, J. Kenneth Guess Who 2005 -Campbell, J. Kenneth Mars Attacks! 1996 -Campbell, J. Kenneth Collateral Damage 2002 -Temple, Lew Unstoppable 2010 -Temple, Lew Rango 2011 -Temple, Lew Halloween 2007 -Temple, Lew Deja Vu 2006 -Temple, Lew The Texas Chainsaw Massacre: The Beginning 2006 -Lawrence, Martin (I) Wild Hogs 2007 -Lawrence, Martin (I) Bad Boys 1995 -Lawrence, Martin (I) Bad Boys II 2003 -Lawrence, Martin (I) Big Momma's House 2000 -Lawrence, Martin (I) Death at a Funeral 2010 -Lawrence, Martin (I) Blue Streak 1999 -Lawrence, Martin (I) College Road Trip 2008 -Lawrence, Martin (I) Black Knight 2001 -Lawrence, Martin (I) Big Mommas: Like Father, Like Son 2011 -Lawrence, Martin (I) Open Season 2006 -Lawrence, Martin (I) Big Momma's House 2 2006 -Lawrence, Martin (I) Nothing to Lose 1997 -Caan, Scott Gone in Sixty Seconds 2000 -Caan, Scott Varsity Blues 1999 -Caan, Scott Ocean's Thirteen 2007 -Caan, Scott Ocean's Eleven 2001 -Caan, Scott Ocean's Twelve 2004 -Caan, Scott Enemy of the State 1998 -Cottle, Jason Wag the Dog 1997 -Cottle, Jason The Wedding Singer 1998 -Cottle, Jason Act of Valor 2012 -Bay, Michael Bad Boys II 2003 -Bay, Michael Coyote Ugly 2000 -Bay, Michael Armageddon 1998 -Wilson, Lambert The Matrix Reloaded 2003 -Wilson, Lambert Sahara 2005 -Wilson, Lambert The Matrix Revolutions 2003 -Wilson, Lambert Babylon A.D. 2008 -Wilson, Lambert Catwoman 2004 -Frakes, Jonathan Clockstoppers 2002 -Frakes, Jonathan Star Trek: First Contact 1996 -Frakes, Jonathan Star Trek: Insurrection 1998 -Frakes, Jonathan Star Trek: Nemesis 2002 -Kasper, Kent Space Jam 1996 -Kasper, Kent Apollo 13 1995 -Kasper, Kent Rush Hour 3 2007 -Jones, Rashida Cop Out 2010 -Jones, Rashida The Social Network 2010 -Jones, Rashida Friends with Benefits 2011 -Jones, Rashida The Muppets 2011 -Jones, Rashida I Love You, Man 2009 -Kuravlyov, Leonid Rzhevskiy protiv Napoleona 2012 -Kuravlyov, Leonid Turetskiy gambit 2005 -Kuravlyov, Leonid Shirli-Myrli 1995 -Scott, Kimberly (I) I Am Sam 2001 -Scott, Kimberly (I) Batman Forever 1995 -Scott, Kimberly (I) World Trade Center 2006 -Scott, Kimberly (I) Guess Who 2005 -Scott, Kimberly (I) Batman & Robin 1997 -Scott, Kimberly (I) K-PAX 2001 -Ruebe, Leonard Jonathan Star Trek 2009 -Ruebe, Leonard Jonathan 17 Again 2009 -Ruebe, Leonard Jonathan The Ugly Truth 2009 -Giaimo, Anthony Striptease 1996 -Giaimo, Anthony The Birdcage 1996 -Giaimo, Anthony Bad Boys II 2003 -Pantaleo, Giovanni The Game Plan 2007 -Pantaleo, Giovanni Ghosts of Girlfriends Past 2009 -Pantaleo, Giovanni 21 2008 -Pantaleo, Giovanni Bride Wars 2009 -Lowe, Crystal (I) Final Destination 3 2006 -Lowe, Crystal (I) Scary Movie 4 2006 -Lowe, Crystal (I) 4: Rise of the Silver Surfer 2007 -Lowe, Crystal (I) Snakes on a Plane 2006 -Lowe, Crystal (I) Final Destination 5 2011 -Lowe, Crystal (I) Insomnia 2002 -Lowe, Crystal (I) Hot Tub Time Machine 2010 -Sanchez, Roselyn The Game Plan 2007 -Sanchez, Roselyn Act of Valor 2012 -Sanchez, Roselyn Rush Hour 2 2001 -Helde, Annette Magnolia 1999 -Helde, Annette Bean 1997 -Helde, Annette Star Trek: First Contact 1996 -Lynn, Sherry (I) Horton Hears a Who! 2008 -Lynn, Sherry (I) Toy Story 3 2010 -Lynn, Sherry (I) Toy Story 2 1999 -Lynn, Sherry (I) Up 2009 -Lynn, Sherry (I) Cloudy with a Chance of Meatballs 2009 -Lynn, Sherry (I) Hercules 1997 -Lynn, Sherry (I) Monsters, Inc. 2001 -Lynn, Sherry (I) Sen to Chihiro no kamikakushi 2001 -Lynn, Sherry (I) WALL·E 2008 -Lynn, Sherry (I) Tarzan 1999 -Lynn, Sherry (I) The Lorax 2012 -Lynn, Sherry (I) Treasure Planet 2002 -Lynn, Sherry (I) Cars 2006 -Lynn, Sherry (I) The Hunchback of Notre Dame 1996 -Lynn, Sherry (I) A Bug's Life 1998 -Lynn, Sherry (I) Surf's Up 2007 -Lynn, Sherry (I) Ice Age: The Meltdown 2006 -Lynn, Sherry (I) Gake no ue no Ponyo 2008 -Lynn, Sherry (I) Beauty and the Beast 1991 -Lynn, Sherry (I) Aladdin 1992 -Lynn, Sherry (I) Toy Story 1995 -Lynn, Sherry (I) The Emperor's New Groove 2000 -Lynn, Sherry (I) The Haunting 1999 -Lynn, Sherry (I) Brother Bear 2003 -Lynn, Sherry (I) The Little Mermaid 1989 -Miranda, Robert (I) Blue Streak 1999 -Miranda, Robert (I) Sister Act 1992 -Miranda, Robert (I) Eraser 1996 -Miranda, Robert (I) The Living Daylights 1987 -Miranda, Robert (I) Heat 1995 -Mitchell, Radha Finding Neverland 2004 -Mitchell, Radha Silent Hill 2006 -Mitchell, Radha Pitch Black 2000 -Mitchell, Radha Man on Fire 2004 -Mitchell, Radha Phone Booth 2002 -Seltzer, Dana Kiss the Girls 1997 -Seltzer, Dana Spider-Man 3 2007 -Seltzer, Dana Date Movie 2006 -Seltzer, Dana Epic Movie 2007 -Dodds, K.K. Being John Malkovich 1999 -Dodds, K.K. High Fidelity 2000 -Dodds, K.K. Spider-Man 2002 -Hinkley, Tommy Lethal Weapon 2 1989 -Hinkley, Tommy The Cable Guy 1996 -Hinkley, Tommy Ocean's Thirteen 2007 -Raffaelli, Cyril Kiss of the Dragon 2001 -Raffaelli, Cyril Astérix & Obélix: Mission Cléopâtre 2002 -Raffaelli, Cyril Live Free or Die Hard 2007 -Raffaelli, Cyril La vérité si je mens 1997 -Dean, Rick L. Water for Elephants 2011 -Dean, Rick L. It's Complicated 2009 -Dean, Rick L. Iron Man 2 2010 -Camen, Joey Superman Returns 2006 -Camen, Joey Space Jam 1996 -Camen, Joey Transformers: Dark of the Moon 2011 -Fisher, Frances (I) Unforgiven 1992 -Fisher, Frances (I) The Lincoln Lawyer 2011 -Fisher, Frances (I) Striptease 1996 -Fisher, Frances (I) Titanic 1997 -Fisher, Frances (I) Gone in Sixty Seconds 2000 -Lewis, Chauntal Coach Carter 2005 -Lewis, Chauntal Apollo 13 1995 -Lewis, Chauntal The Wedding Singer 1998 -Michaels, Norma Easy A 2010 -Michaels, Norma Wedding Crashers 2005 -Michaels, Norma You Don't Mess with the Zohan 2008 -Winn, Mark (II) Die Hard 1988 -Winn, Mark (II) Rain Man 1988 -Winn, Mark (II) Bedazzled 2000 -Winn, Mark (II) Hook 1991 -Winn, Mark (II) True Lies 1994 -Winn, Mark (II) The Scorpion King 2002 -Winn, Mark (II) You Don't Mess with the Zohan 2008 -Baker, Simon (III) Shanghai Noon 2000 -Baker, Simon (III) I, Robot 2004 -Baker, Simon (III) Journey to the Center of the Earth 2008 -Maxwell, Jeremy Happy Feet Two 2011 -Maxwell, Jeremy TMNT 2007 -Maxwell, Jeremy The Secret Life of Bees 2008 -Maxwell, Jeremy Halloween 2007 -Liotta, Ray Wild Hogs 2007 -Liotta, Ray Identity 2003 -Liotta, Ray Bee Movie 2007 -Liotta, Ray Date Night 2010 -Liotta, Ray Hannibal 2001 -Liotta, Ray John Q 2002 -Liotta, Ray Cop Land 1997 -Liotta, Ray Blow 2001 -Oliver, Lucille M. The Flintstones in Viva Rock Vegas 2000 -Oliver, Lucille M. Showtime 2002 -Oliver, Lucille M. Minority Report 2002 -Oliver, Lucille M. Rat Race 2001 -Leung, Katie Harry Potter and the Deathly Hallows: Part 1 2010 -Leung, Katie Harry Potter and the Order of the Phoenix 2007 -Leung, Katie Harry Potter and the Deathly Hallows: Part 2 2011 -Leung, Katie Harry Potter and the Half-Blood Prince 2009 -Leung, Katie Harry Potter and the Goblet of Fire 2005 -Sigismund, Katherine The Taking of Pelham 1 2 3 2009 -Sigismund, Katherine Confessions of a Shopaholic 2009 -Sigismund, Katherine No Reservations 2007 -Sigismund, Katherine Transformers: Dark of the Moon 2011 -Stallone, Frank (I) Rocky Balboa 2006 -Stallone, Frank (I) Fred Claus 2007 -Stallone, Frank (I) Rocky III 1982 -Behr, Jason (I) The Grudge 2004 -Behr, Jason (I) D-War 2007 -Behr, Jason (I) Pleasantville 1998 -Borbridge, Brad Jumper 2008 -Borbridge, Brad Resident Evil: Apocalypse 2004 -Borbridge, Brad Four Brothers 2005 -Markarian, Rachael Rush Hour 3 2007 -Markarian, Rachael This Is It 2009 -Markarian, Rachael No Strings Attached 2011 -Francis, Paul (II) The Time Traveler's Wife 2009 -Francis, Paul (II) Pearl Harbor 2001 -Francis, Paul (II) Tears of the Sun 2003 -Blaney, Tim The SpongeBob SquarePants Movie 2004 -Blaney, Tim Forgetting Sarah Marshall 2008 -Blaney, Tim Men in Black 1997 -Blaney, Tim Men in Black II 2002 -Blaney, Tim How the Grinch Stole Christmas 2000 -Blaney, Tim The Muppets 2011 -Metas, Christopher Lemony Snicket's A Series of Unfortunate Events 2004 -Metas, Christopher Charlie's Angels 2000 -Metas, Christopher Catch Me If You Can 2002 -Metas, Christopher Men in Black II 2002 -Metas, Christopher Bewitched 2005 -Metas, Christopher How the Grinch Stole Christmas 2000 -Allam, Roger The Queen 2006 -Allam, Roger Speed Racer 2008 -Allam, Roger The Woman in Black 2012 -Allam, Roger V for Vendetta 2005 -Allam, Roger Pirates of the Caribbean: On Stranger Tides 2011 -Howard, Cheryl (I) Apollo 13 1995 -Howard, Cheryl (I) Ransom 1996 -Howard, Cheryl (I) Angels & Demons 2009 -Howard, Cheryl (I) A Beautiful Mind 2001 -Howard, Cheryl (I) The Da Vinci Code 2006 -Graf, David (I) Rules of Engagement 2000 -Graf, David (I) Police Academy 3: Back in Training 1986 -Graf, David (I) Police Academy 2: Their First Assignment 1985 -Graf, David (I) Police Academy 1984 -Taylor, Matthew (IV) Speed 2: Cruise Control 1997 -Taylor, Matthew (IV) Takers 2010 -Taylor, Matthew (IV) Cowboys & Aliens 2011 -Park, Ray (I) X-Men 2000 -Park, Ray (I) G.I. Joe: The Rise of Cobra 2009 -Park, Ray (I) Star Wars: Episode I - The Phantom Menace 1999 -Park, Ray (I) Mortal Kombat: Annihilation 1997 -Hanner, Zach Forrest Gump 1994 -Hanner, Zach Black Knight 2001 -Hanner, Zach Runaway Jury 2003 -Hanner, Zach Big Fish 2003 -Hanner, Zach Domestic Disturbance 2001 -Hanner, Zach The Patriot 2000 -Gershon, Gina Out for Justice 1991 -Gershon, Gina The Insider 1999 -Gershon, Gina P.S. I Love You 2007 -Gershon, Gina Face/Off 1997 -Gershon, Gina Pretty in Pink 1986 -Ipalé, Aharon The Mummy 1999 -Ipalé, Aharon Charlie Wilson's War 2007 -Ipalé, Aharon The Mummy Returns 2001 -Schmidt, Kevin G. Alvin and the Chipmunks: The Squeakquel 2009 -Schmidt, Kevin G. The Butterfly Effect 2004 -Schmidt, Kevin G. Cheaper by the Dozen 2003 -Schmidt, Kevin G. Cheaper by the Dozen 2 2005 -Fonda, Olga Real Steel 2011 -Fonda, Olga Crazy, Stupid, Love. 2011 -Fonda, Olga Little Fockers 2010 -Wilson, Stuart (II) Vertical Limit 2000 -Wilson, Stuart (II) The Mask of Zorro 1998 -Wilson, Stuart (II) The Rock 1996 -Wilson, Stuart (II) Lethal Weapon 3 1992 -Wilson, Stuart (II) Enemy of the State 1998 -Tobeck, Joel Ghost Rider 2007 -Tobeck, Joel The Water Horse 2007 -Tobeck, Joel The Lord of the Rings: The Return of the King 2003 -Anden, Mini G-Force 2009 -Anden, Mini Tropic Thunder 2008 -Anden, Mini Ocean's Twelve 2004 -Doyle, Shawn (I) Don't Say a Word 2001 -Doyle, Shawn (I) The Long Kiss Goodnight 1996 -Doyle, Shawn (I) Frequency 2000 -Tunie, Tamara Snake Eyes 1998 -Tunie, Tamara The Devil's Advocate 1997 -Tunie, Tamara Wall Street 1987 -Tunie, Tamara The Peacemaker 1997 -Kress, Don Contagion 2011 -Kress, Don The Green Hornet 2011 -Kress, Don Little Fockers 2010 -Kress, Don Public Enemies 2009 -Kress, Don Eagle Eye 2008 -Tuan, Shu Lan The Muppets 2011 -Tuan, Shu Lan Kill Bill: Vol. 1 2003 -Tuan, Shu Lan Bedtime Stories 2008 -Tuan, Shu Lan Phone Booth 2002 -Fillipo, Lou Rocky IV 1985 -Fillipo, Lou Rocky V 1990 -Fillipo, Lou Rocky III 1982 -Billingsley, Peter Elf 2003 -Billingsley, Peter Four Christmases 2008 -Billingsley, Peter The Break-Up 2006 -Fiscella, Andrew The Final Destination 2009 -Fiscella, Andrew A Nightmare on Elm Street 2010 -Fiscella, Andrew Takers 2010 -Fiscella, Andrew After the Sunset 2004 -Hernandez, Jay (I) Ladder 49 2004 -Hernandez, Jay (I) The Rookie 2002 -Hernandez, Jay (I) Takers 2010 -Hernandez, Jay (I) Hostel 2005 -Hernandez, Jay (I) Friday Night Lights 2004 -Hernandez, Jay (I) World Trade Center 2006 -Laughlin, John (I) Footloose 1984 -Laughlin, John (I) The Rock 1996 -Laughlin, John (I) An Officer and a Gentleman 1982 -Friedman, Elizabeth What Women Want 2000 -Friedman, Elizabeth Almost Famous 2000 -Friedman, Elizabeth Artificial Intelligence: AI 2001 -O'Rourke, Tom (I) American Gangster 2007 -O'Rourke, Tom (I) Maid in Manhattan 2002 -O'Rourke, Tom (I) United 93 2006 -Fordham, David Michael The Animal 2001 -Fordham, David Michael G.I. Joe: The Rise of Cobra 2009 -Fordham, David Michael Mercury Rising 1998 -Fordham, David Michael The Negotiator 1998 -Fordham, David Michael U.S. Marshals 1998 -Boyd, Cayden Freaky Friday 2003 -Boyd, Cayden Mystic River 2003 -Boyd, Cayden The Adventures of Sharkboy and Lavagirl 3-D 2005 -Boyd, Cayden Dodgeball: A True Underdog Story 2004 -Boyd, Cayden X-Men: The Last Stand 2006 -Devine, Loretta Death at a Funeral 2010 -Devine, Loretta Beverly Hills Chihuahua 2008 -Devine, Loretta I Am Sam 2001 -Devine, Loretta What Women Want 2000 -Devine, Loretta The Preacher's Wife 1996 -Devine, Loretta Madea's Big Happy Family 2011 -Devine, Loretta Dreamgirls 2006 -Devine, Loretta Urban Legend 1998 -McDonald, Kevin (I) Sky High 2005 -McDonald, Kevin (I) Epic Movie 2007 -McDonald, Kevin (I) Galaxy Quest 1999 -McDonald, Kevin (I) Lilo & Stitch 2002 -Molinari, Anthony D-War 2007 -Molinari, Anthony Angels & Demons 2009 -Molinari, Anthony 21 Jump Street 2012 -Molinari, Anthony The Fighter 2010 -West, Red I Still Know What You Did Last Summer 1998 -West, Red The Rainmaker 1997 -West, Red Glory Road 2006 -Haley, Emily D. Battle Los Angeles 2011 -Haley, Emily D. My Dog Skip 2000 -Haley, Emily D. O Brother, Where Art Thou? 2000 -Haley, Emily D. The Final Destination 2009 -Woodard, Alfre Dinosaur 2000 -Woodard, Alfre The Forgotten 2004 -Woodard, Alfre The Wild Thornberrys Movie 2002 -Woodard, Alfre The Core 2003 -Woodard, Alfre Radio 2003 -Woodard, Alfre K-PAX 2001 -Woodard, Alfre Star Trek: First Contact 1996 -Cobbs, Bill I Still Know What You Did Last Summer 1998 -Cobbs, Bill Hope Floats 1998 -Cobbs, Bill Trading Places 1983 -Cobbs, Bill The Bodyguard 1992 -Cobbs, Bill Night at the Museum 2006 -Cobbs, Bill The Muppets 2011 -Aarons, Bonnie The Princess Diaries 2001 -Aarons, Bonnie Drag Me to Hell 2009 -Aarons, Bonnie Shallow Hal 2001 -Aarons, Bonnie The Princess Diaries 2: Royal Engagement 2004 -Aarons, Bonnie The Fighter 2010 -Wilson, Michael G. (I) Licence to Kill 1989 -Wilson, Michael G. (I) Octopussy 1983 -Wilson, Michael G. (I) Die Another Day 2002 -Wilson, Michael G. (I) Moonraker 1979 -Wilson, Michael G. (I) A View to a Kill 1985 -Wilson, Michael G. (I) GoldenEye 1995 -Wilson, Michael G. (I) Casino Royale 2006 -Wilson, Michael G. (I) Tomorrow Never Dies 1997 -Wilson, Michael G. (I) For Your Eyes Only 1981 -Wilson, Michael G. (I) Quantum of Solace 2008 -Wilson, Michael G. (I) The World Is Not Enough 1999 -Wilson, Michael G. (I) The Living Daylights 1987 -Rosen, Edward J. (I) Lethal Weapon 2 1989 -Rosen, Edward J. (I) Lethal Weapon 4 1998 -Rosen, Edward J. (I) Conspiracy Theory 1997 -Rosen, Edward J. (I) Lethal Weapon 3 1992 -Rosen, Edward J. (I) Constantine 2005 -Scott, Malcolm (IV) LiTTLEMAN 2006 -Scott, Malcolm (IV) Watchmen 2009 -Scott, Malcolm (IV) Sucker Punch 2011 -Scott, Malcolm (IV) RV 2006 -Rooney, Mickey (I) Babe: Pig in the City 1998 -Rooney, Mickey (I) Night at the Museum 2006 -Rooney, Mickey (I) The Muppets 2011 -Hornsby, Russell (I) After the Sunset 2004 -Hornsby, Russell (I) Terminator Salvation 2009 -Hornsby, Russell (I) Meet the Parents 2000 -Banks, Boyd The Tuxedo 2002 -Banks, Boyd Cinderella Man 2005 -Banks, Boyd Superstar 1999 -Banks, Boyd Dawn of the Dead 2004 -Curry, Jon (II) The Incredible Hulk 2008 -Curry, Jon (II) Shrek the Third 2007 -Curry, Jon (II) Avatar 2009 -Chester, Vanessa Lee 17 Again 2009 -Chester, Vanessa Lee She's All That 1999 -Chester, Vanessa Lee The Lost World: Jurassic Park 1997 -Maggio, Natalina Couples Retreat 2009 -Maggio, Natalina Get Him to the Greek 2010 -Maggio, Natalina Race to Witch Mountain 2009 -Maggio, Natalina He's Just Not That Into You 2009 -Carter, Larry (I) Body of Lies 2008 -Carter, Larry (I) National Treasure: Book of Secrets 2007 -Carter, Larry (I) Transformers: Revenge of the Fallen 2009 -Carter, Larry (I) Transformers: Dark of the Moon 2011 -Butler, Jennifer (III) Law Abiding Citizen 2009 -Butler, Jennifer (III) The Dictator 2012 -Butler, Jennifer (III) Limitless 2011 -Butler, Jennifer (III) The Happening 2008 -French, Bruce (I) Mission: Impossible III 2006 -French, Bruce (I) Mr. Deeds 2002 -French, Bruce (I) Star Trek: Insurrection 1998 -French, Bruce (I) Jurassic Park III 2001 -French, Bruce (I) Thank You for Smoking 2005 -Kimbrough, Matthew Catch Me If You Can 2002 -Kimbrough, Matthew Erin Brockovich 2000 -Kimbrough, Matthew American Beauty 1999 -Yannick, Scott The Interpreter 2005 -Yannick, Scott The Happening 2008 -Yannick, Scott Law Abiding Citizen 2009 -Yannick, Scott Invincible 2006 -Yannick, Scott Ladder 49 2004 -Yannick, Scott In Her Shoes 2005 -Travis, John (I) The Kid 2000 -Travis, John (I) National Treasure: Book of Secrets 2007 -Travis, John (I) National Treasure 2004 -Byers, Anna Me, Myself & Irene 2000 -Byers, Anna Shallow Hal 2001 -Byers, Anna Fever Pitch 2005 -Austin, Jake T. The Ant Bully 2006 -Austin, Jake T. New Year's Eve 2011 -Austin, Jake T. Rio 2011 -Austin, Jake T. Hotel for Dogs 2009 -Blackwell, Rus The Curious Case of Benjamin Button 2008 -Blackwell, Rus Dolphin Tale 2011 -Blackwell, Rus Monster 2003 -Blackwell, Rus Battle Los Angeles 2011 -Donn, Ray Lara Croft: Tomb Raider 2001 -Donn, Ray Charlie and the Chocolate Factory 2005 -Donn, Ray Finding Neverland 2004 -Donn, Ray Blood Diamond 2006 -Donn, Ray Batman Begins 2005 -Donn, Ray Robin Hood 2010 -Donn, Ray Notting Hill 1999 -Donn, Ray Bend It Like Beckham 2002 -Donn, Ray Sherlock Holmes: A Game of Shadows 2011 -Donn, Ray The Mummy 1999 -Donn, Ray Bridget Jones's Diary 2001 -Donn, Ray The Hitchhiker's Guide to the Galaxy 2005 -Donn, Ray Bridget Jones: The Edge of Reason 2004 -Donn, Ray Shanghai Knights 2003 -Donn, Ray Harry Potter and the Order of the Phoenix 2007 -Donn, Ray Good Night, and Good Luck. 2005 -Bays, Joe Indecent Proposal 1993 -Bays, Joe Spider-Man 3 2007 -Bays, Joe Space Jam 1996 -Bays, Joe Garfield 2004 -Bays, Joe Stuart Little 1999 -Hall, Irma P. Patch Adams 1998 -Hall, Irma P. The Ladykillers 2004 -Hall, Irma P. Collateral 2004 -Hall, Irma P. Nothing to Lose 1997 -Hall, Irma P. Bad Company 2002 -Hall, Irma P. Soul Food 1997 -King, Regina Jerry Maguire 1996 -King, Regina Down to Earth 2001 -King, Regina The Ant Bully 2006 -King, Regina How Stella Got Her Groove Back 1998 -King, Regina Legally Blonde 2: Red, White & Blonde 2003 -King, Regina A Cinderella Story 2004 -King, Regina Mighty Joe Young 1998 -King, Regina Daddy Day Care 2003 -King, Regina Enemy of the State 1998 -King, Regina Miss Congeniality 2: Armed and Fabulous 2005 -Bollo, Lou Scooby Doo 2: Monsters Unleashed 2004 -Bollo, Lou Final Destination 3 2006 -Bollo, Lou Cats & Dogs 2001 -Albright, Dan (I) Remember the Titans 2000 -Albright, Dan (I) Forces of Nature 1999 -Albright, Dan (I) I Know What You Did Last Summer 1997 -Jackman, Hugh X-Men Origins: Wolverine 2009 -Jackman, Hugh X-Men: First Class 2011 -Jackman, Hugh Van Helsing 2004 -Jackman, Hugh Real Steel 2011 -Jackman, Hugh X-Men 2000 -Jackman, Hugh Australia 2008 -Jackman, Hugh Flushed Away 2006 -Jackman, Hugh X2 2003 -Jackman, Hugh Swordfish 2001 -Jackman, Hugh Happy Feet 2006 -Jackman, Hugh The Prestige 2006 -Jackman, Hugh X-Men: The Last Stand 2006 -Chao, Rosalind Freaky Friday 2003 -Chao, Rosalind I Am Sam 2001 -Chao, Rosalind What Dreams May Come 1998 -Chao, Rosalind Just Like Heaven 2005 -Hamilton, Jennifer (III) No Strings Attached 2011 -Hamilton, Jennifer (III) Austin Powers: The Spy Who Shagged Me 1999 -Hamilton, Jennifer (III) Austin Powers in Goldmember 2002 -Hamilton, Jennifer (III) 500) Days of Summer 2009 -Davis, Youlanda Inception 2010 -Davis, Youlanda Death at a Funeral 2010 -Davis, Youlanda Bad Teacher 2011 -Coopwood, Jeff Spider-Man 2 2004 -Coopwood, Jeff The Wild Thornberrys Movie 2002 -Coopwood, Jeff Shark Tale 2004 -Coopwood, Jeff Star Wars: Episode I - The Phantom Menace 1999 -Coopwood, Jeff Star Trek: First Contact 1996 -Hernandez, Gina Salt 2010 -Hernandez, Gina Cop Out 2010 -Hernandez, Gina The Other Guys 2010 -Hernandez, Gina The Taking of Pelham 1 2 3 2009 -Hernandez, Gina Knight and Day 2010 -Hernandez, Gina Zookeeper 2011 -Brooks, Albert (I) Terms of Endearment 1983 -Brooks, Albert (I) Doctor Dolittle 1998 -Brooks, Albert (I) The Simpsons Movie 2007 -Brooks, Albert (I) Finding Nemo 2003 -Brooks, Albert (I) Drive 2011 -Asbury, Kelly Shrek 2 2004 -Asbury, Kelly Shrek the Third 2007 -Asbury, Kelly Gnomeo & Juliet 2011 -Matulis, Marti Star Trek: Nemesis 2002 -Matulis, Marti Men in Black 3 2012 -Matulis, Marti Land of the Lost 2009 -Warren, Steve (III) Drumline 2002 -Warren, Steve (III) Madea's Family Reunion 2006 -Warren, Steve (III) Big Mommas: Like Father, Like Son 2011 -Warren, Steve (III) We Are Marshall 2006 -Warren, Steve (III) Zombieland 2009 -Warren, Steve (III) The Blind Side 2009 -Warren, Steve (III) Striptease 1996 -Omilami, Afemo Forrest Gump 1994 -Omilami, Afemo The Blind Side 2009 -Omilami, Afemo Sweet Home Alabama 2002 -Omilami, Afemo Drumline 2002 -Omilami, Afemo Madea's Family Reunion 2006 -Omilami, Afemo Remember the Titans 2000 -Omilami, Afemo Trading Places 1983 -Omilami, Afemo The Firm 1993 -Omilami, Afemo Cold Mountain 2003 -Omilami, Afemo Runaway Jury 2003 -Omilami, Afemo Forces of Nature 1999 -Omilami, Afemo Glory Road 2006 -Murphy, Donna (I) Star Trek: Insurrection 1998 -Murphy, Donna (I) Spider-Man 2 2004 -Murphy, Donna (I) World Trade Center 2006 -Mortensen, Viggo Daylight 1996 -Mortensen, Viggo The Lord of the Rings: The Fellowship of the Ring 2001 -Mortensen, Viggo The Lord of the Rings: The Return of the King 2003 -Mortensen, Viggo G.I. Jane 1997 -Mortensen, Viggo 28 Days 2000 -Mortensen, Viggo The Lord of the Rings: The Two Towers 2002 -Mortensen, Viggo A Perfect Murder 1998 -Mortensen, Viggo Hidalgo 2004 -Mortensen, Viggo A History of Violence 2005 -Perry, Tyler (I) Madea's Family Reunion 2006 -Perry, Tyler (I) Madea Goes to Jail 2009 -Perry, Tyler (I) Star Trek 2009 -Perry, Tyler (I) Why Did I Get Married Too? 2010 -Perry, Tyler (I) Madea's Big Happy Family 2011 -Eubanks, Corey Michael G-Force 2009 -Eubanks, Corey Michael 2 Fast 2 Furious 2003 -Eubanks, Corey Michael Fast Five 2011 -Robinson, Harry (III) Harry Potter and the Sorcerer's Stone 2001 -Robinson, Harry (III) Harry Potter and the Prisoner of Azkaban 2004 -Robinson, Harry (III) Harry Potter and the Chamber of Secrets 2002 -Morrison, Rana National Treasure: Book of Secrets 2007 -Morrison, Rana The Matrix 1999 -Morrison, Rana Underworld 2003 -Morrison, Rana Minority Report 2002 -Morrison, Rana Miss Congeniality 2000 -Morrison, Rana Source Code 2011 -Morrison, Rana Braveheart 1995 -Morrison, Rana Limitless 2011 -Morrison, Rana The Twilight Saga: Eclipse 2010 -Morrison, Rana Speed 1994 -Morrison, Rana Phone Booth 2002 -Morrison, Rana The Faculty 1998 -Morrison, Rana The Fast and the Furious: Tokyo Drift 2006 -Morrison, Rana Meet Joe Black 1998 -Morrison, Rana What Happens in Vegas 2008 -Morrison, Rana Fast & Furious 2009 -Morrison, Rana New Moon 2009 -Morrison, Rana The Replacements 2000 -Morrison, Rana Coyote Ugly 2000 -Morrison, Rana Cellular 2004 -Morrison, Rana Varsity Blues 1999 -Morrison, Rana Clash of the Titans 2010 -Mostel, Josh Big Daddy 1999 -Mostel, Josh Wall Street 1987 -Mostel, Josh The Out-of-Towners 1999 -Coster, Ritchie American Gangster 2007 -Coster, Ritchie The Tuxedo 2002 -Coster, Ritchie The Thomas Crown Affair 1999 -Uhler, Ray Ali 2001 -Uhler, Ray My Best Friend's Wedding 1997 -Uhler, Ray Star Trek: First Contact 1996 -Uhler, Ray Old School 2003 -Michel, Karina Transformers: Revenge of the Fallen 2009 -Michel, Karina Takers 2010 -Michel, Karina Date Night 2010 -Taylor, Buck (I) Wild Wild West 1999 -Taylor, Buck (I) Cowboys & Aliens 2011 -Taylor, Buck (I) The Mist 2007 -Lanzisera, Nick High School Musical 3: Senior Year 2008 -Lanzisera, Nick Footloose 2011 -Lanzisera, Nick No Strings Attached 2011 -Anderson, Gillian (I) The X Files: I Want to Believe 2008 -Anderson, Gillian (I) The X Files 1998 -Anderson, Gillian (I) Johnny English Reborn 2011 -Faulcon, Kent Men in Black 1997 -Faulcon, Kent American Beauty 1999 -Faulcon, Kent Die Hard: With a Vengeance 1995 -Koteas, Elias The Thin Red Line 1998 -Koteas, Elias Shutter Island 2010 -Koteas, Elias The Curious Case of Benjamin Button 2008 -Koteas, Elias Collateral Damage 2002 -Berger, Gregg Chicken Little 2005 -Berger, Gregg Fly Me to the Moon 2008 -Berger, Gregg X-Men Origins: Wolverine 2009 -Berger, Gregg Small Soldiers 1998 -Berger, Gregg Pirates of the Caribbean: At World's End 2007 -Berger, Gregg Star Wars: Episode I - The Phantom Menace 1999 -Berger, Gregg Dreamgirls 2006 -Berger, Gregg The Rugrats Movie 1998 -Berger, Gregg Recess: School's Out 2001 -Berger, Gregg Tarzan 1999 -Evans, Amber Harry Potter and the Deathly Hallows: Part 1 2010 -Evans, Amber Harry Potter and the Deathly Hallows: Part 2 2011 -Evans, Amber Harry Potter and the Half-Blood Prince 2009 -Duff, John (I) The Rundown 2003 -Duff, John (I) The Game Plan 2007 -Duff, John (I) Race to Witch Mountain 2009 -Smith, Keyon Rocky Balboa 2006 -Smith, Keyon National Treasure 2004 -Smith, Keyon Marley & Me 2008 -Smith, Keyon Invincible 2006 -Koenig, Walter (I) Star Trek IV: The Voyage Home 1986 -Koenig, Walter (I) Star Trek: The Wrath of Khan 1982 -Koenig, Walter (I) Star Trek III: The Search for Spock 1984 -Henschel, Brandon (I) 500) Days of Summer 2009 -Henschel, Brandon (I) Starsky & Hutch 2004 -Henschel, Brandon (I) The Flintstones in Viva Rock Vegas 2000 -Henschel, Brandon (I) Bring It On 2000 -Henschel, Brandon (I) 13 Going on 30 2004 -Gould, Elliott Contagion 2011 -Gould, Elliott Ocean's Eleven 2001 -Gould, Elliott Ocean's Twelve 2004 -Gould, Elliott Ocean's Thirteen 2007 -Phelps, Oliver Harry Potter and the Goblet of Fire 2005 -Phelps, Oliver Harry Potter and the Prisoner of Azkaban 2004 -Phelps, Oliver Harry Potter and the Sorcerer's Stone 2001 -Phelps, Oliver Harry Potter and the Chamber of Secrets 2002 -Phelps, Oliver Harry Potter and the Deathly Hallows: Part 1 2010 -Phelps, Oliver Harry Potter and the Deathly Hallows: Part 2 2011 -Phelps, Oliver Harry Potter and the Order of the Phoenix 2007 -Phelps, Oliver Harry Potter and the Half-Blood Prince 2009 -Mulroney, Dermot My Best Friend's Wedding 1997 -Mulroney, Dermot Burn After Reading 2008 -Mulroney, Dermot J. Edgar 2011 -Mulroney, Dermot Must Love Dogs 2005 -Mulroney, Dermot The Family Stone 2005 -Mulroney, Dermot About Schmidt 2002 -Mulroney, Dermot The Grey 2011 -Cardona, Hélène Happy Feet Two 2011 -Cardona, Hélène Chocolat 2000 -Cardona, Hélène Inglourious Basterds 2009 -Cardona, Hélène Serendipity 2001 -Cardona, Hélène Hereafter 2010 -Cardona, Hélène Rush Hour 3 2007 -Coolidge, Jennifer Lemony Snicket's A Series of Unfortunate Events 2004 -Coolidge, Jennifer American Reunion 2012 -Coolidge, Jennifer Robots 2005 -Coolidge, Jennifer Zoolander 2001 -Coolidge, Jennifer Down to Earth 2001 -Coolidge, Jennifer American Pie 1999 -Coolidge, Jennifer American Pie 2 2001 -Coolidge, Jennifer Legally Blonde 2: Red, White & Blonde 2003 -Coolidge, Jennifer Date Movie 2006 -Coolidge, Jennifer Epic Movie 2007 -Coolidge, Jennifer Legally Blonde 2001 -Coolidge, Jennifer Austin Powers: The Spy Who Shagged Me 1999 -Coolidge, Jennifer American Wedding 2003 -Coolidge, Jennifer Click 2006 -Coolidge, Jennifer A Cinderella Story 2004 -De Bankolé, Isaach Miami Vice 2006 -De Bankolé, Isaach Casino Royale 2006 -De Bankolé, Isaach The Skeleton Key 2005 -Tomomatsu, Tadao Inspector Gadget 1999 -Tomomatsu, Tadao Independence Day 1996 -Tomomatsu, Tadao Godzilla 1998 -Moynahan, Bridget Battle Los Angeles 2011 -Moynahan, Bridget The Sum of All Fears 2002 -Moynahan, Bridget Coyote Ugly 2000 -Moynahan, Bridget Serendipity 2001 -Moynahan, Bridget The Recruit 2003 -Moynahan, Bridget I, Robot 2004 -Simpson, Tyree Michael Unfaithful 2002 -Simpson, Tyree Michael I Am Legend 2007 -Simpson, Tyree Michael The Smurfs 2011 -Simpson, Tyree Michael Phone Booth 2002 -Simpson, Tyree Michael World Trade Center 2006 -Fitzgerald, Wilbur Life as We Know It 2010 -Fitzgerald, Wilbur The Curious Case of Benjamin Button 2008 -Fitzgerald, Wilbur We Are Marshall 2006 -Fitzgerald, Wilbur Glory Road 2006 -McNeice, Ian Around the World in 80 Days 2004 -McNeice, Ian Bridget Jones: The Edge of Reason 2004 -McNeice, Ian From Hell 2001 -McNeice, Ian Ace Ventura: When Nature Calls 1995 -McNeice, Ian The Hitchhiker's Guide to the Galaxy 2005 -McNeice, Ian Valkyrie 2008 -Peña, Elizabeth Down and Out in Beverly Hills 1986 -Peña, Elizabeth D-War 2007 -Peña, Elizabeth Rush Hour 1998 -Peña, Elizabeth The Incredibles 2004 -Utt, Kenneth (I) The Silence of the Lambs 1991 -Utt, Kenneth (I) Philadelphia 1993 -Utt, Kenneth (I) The Manchurian Candidate 2004 -Filpi, Carmen Pee-wee's Big Adventure 1985 -Filpi, Carmen Mousehunt 1997 -Filpi, Carmen The Wedding Singer 1998 -Griffin, Kathy The Cable Guy 1996 -Griffin, Kathy Pulp Fiction 1994 -Griffin, Kathy Shrek Forever After 2010 -Griffin, Kathy The Muppets 2011 -Bush, Billy (I) Forgetting Sarah Marshall 2008 -Bush, Billy (I) Get Him to the Greek 2010 -Bush, Billy (I) The Stepford Wives 2004 -Ford, Gerald (I) Live Free or Die Hard 2007 -Ford, Gerald (I) Miracle 2004 -Ford, Gerald (I) Forrest Gump 1994 -Adler, Jonathan (II) Contact 1997 -Adler, Jonathan (II) L.A. Confidential 1997 -Adler, Jonathan (II) Independence Day 1996 -Adler, Jonathan (II) Mighty Joe Young 1998 -John, Elton The Queen 2006 -John, Elton The Road to El Dorado 2000 -John, Elton Spice World 1997 -Kino, Lloyd Godzilla 1998 -Kino, Lloyd The Cable Guy 1996 -Kino, Lloyd Miss Congeniality 2: Armed and Fabulous 2005 -Kino, Lloyd Mortal Kombat 1995 -Howard, Seth The Wedding Planner 2001 -Howard, Seth Hairspray 2007 -Howard, Seth Cheaper by the Dozen 2 2005 -Howard, Seth Bringing Down the House 2003 -Howard, Seth The Pacifier 2005 -Howard, Seth Bedtime Stories 2008 -Howard, Seth You Don't Mess with the Zohan 2008 -Howard, Seth A Walk to Remember 2002 -Gal, Natalie Salt 2010 -Gal, Natalie Sex and the City 2 2010 -Gal, Natalie Eat Pray Love 2010 -Gal, Natalie Fast Five 2011 -Gal, Natalie Wall Street: Money Never Sleeps 2010 -Quinlan, Kathleen The Hills Have Eyes 2006 -Quinlan, Kathleen Made of Honor 2008 -Quinlan, Kathleen Apollo 13 1995 -Quinlan, Kathleen A Civil Action 1998 -Adamson, Christopher (I) The Fifth Element 1997 -Adamson, Christopher (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Adamson, Christopher (I) The Count of Monte Cristo 2002 -Adamson, Christopher (I) Pirates of the Caribbean: At World's End 2007 -Adamson, Christopher (I) Robin Hood: Prince of Thieves 1991 -Adamson, Christopher (I) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Mueller-Stahl, Armin Angels & Demons 2009 -Mueller-Stahl, Armin The Game 1997 -Mueller-Stahl, Armin Mission to Mars 2000 -Mueller-Stahl, Armin The Peacemaker 1997 -Mueller-Stahl, Armin Shine 1996 -Mueller-Stahl, Armin The X Files 1998 -Ho, Steven (I) Mortal Kombat: Annihilation 1997 -Ho, Steven (I) Mortal Kombat 1995 -Ho, Steven (I) The Master of Disguise 2002 -Mitchell, Billy J. Superman 1978 -Mitchell, Billy J. GoldenEye 1995 -Mitchell, Billy J. Never Say Never Again 1983 -Mitchell, Billy J. Malcolm X 1992 -Mitchell, Billy J. Who Framed Roger Rabbit 1988 -Mitchell, Billy J. Indiana Jones and the Last Crusade 1989 -Pratt, Kyla (II) Dr. Dolittle 2 2001 -Pratt, Kyla (II) Hotel for Dogs 2009 -Pratt, Kyla (II) Doctor Dolittle 1998 -Pratt, Kyla (II) Fat Albert 2004 -Davenport, Madison Horton Hears a Who! 2008 -Davenport, Madison Gake no ue no Ponyo 2008 -Davenport, Madison Over the Hedge 2006 -Merediz, Olga Mr. Popper's Penguins 2011 -Merediz, Olga Changing Lanes 2002 -Merediz, Olga Evita 1996 -Merediz, Olga K-PAX 2001 -Collison, Frank The Happening 2008 -Collison, Frank The Village 2004 -Collison, Frank Hidalgo 2004 -Collison, Frank K-PAX 2001 -Collison, Frank O Brother, Where Art Thou? 2000 -Harris, Jason (I) Chicken Little 2005 -Harris, Jason (I) Quantum of Solace 2008 -Harris, Jason (I) Space Chimps 2008 -Harris, Jason (I) Despicable Me 2010 -Harris, Jason (I) The Wild 2006 -Davis, Vicki Mighty Joe Young 1998 -Davis, Vicki Final Fantasy: The Spirits Within 2001 -Davis, Vicki I Love You, Man 2009 -Bell, E.E. Air Force One 1997 -Bell, E.E. Herbie Fully Loaded 2005 -Bell, E.E. Water for Elephants 2011 -Bell, E.E. The Heartbreak Kid 2007 -Smith, Kevin (I) Dogma 1999 -Smith, Kevin (I) Daredevil 2003 -Smith, Kevin (I) Scream 3 2000 -Smith, Kevin (I) TMNT 2007 -Smith, Kevin (I) Live Free or Die Hard 2007 -Levine, Mark (I) Shallow Hal 2001 -Levine, Mark (I) Dumb & Dumber 1994 -Levine, Mark (I) Me, Myself & Irene 2000 -Good, Meagan (I) Saw V 2008 -Good, Meagan (I) Stomp the Yard 2007 -Good, Meagan (I) Think Like a Man 2012 -Riley, Jack (II) Rugrats in Paris: The Movie - Rugrats II 2000 -Riley, Jack (II) Rugrats Go Wild 2003 -Riley, Jack (II) Boogie Nights 1997 -Riley, Jack (II) The Rugrats Movie 1998 -Riley, Jack (II) Recess: School's Out 2001 -Chevanty, Jack Eagle Eye 2008 -Chevanty, Jack Hannah Montana: The Movie 2009 -Chevanty, Jack Funny People 2009 -Wilson, Andrew (III) Showtime 2002 -Wilson, Andrew (III) Charlie's Angels: Full Throttle 2003 -Wilson, Andrew (III) The Royal Tenenbaums 2001 -Wilson, Andrew (III) Never Been Kissed 1999 -Wilson, Andrew (III) Zoolander 2001 -Wilson, Andrew (III) Charlie's Angels 2000 -Wilson, Andrew (III) Fever Pitch 2005 -Magness, Kimberly The Sisterhood of the Traveling Pants 2 2008 -Magness, Kimberly Righteous Kill 2008 -Magness, Kimberly Baby Mama 2008 -Glave, Karen Frequency 2000 -Glave, Karen The Tuxedo 2002 -Glave, Karen The Day After Tomorrow 2004 -Beeman, Lacey The Social Network 2010 -Beeman, Lacey Coach Carter 2005 -Beeman, Lacey American Pie 2 2001 -Beeman, Lacey Legally Blonde 2001 -Sapienza, Al Saw V 2008 -Sapienza, Al Godzilla 1998 -Sapienza, Al Cellular 2004 -Sapienza, Al Lethal Weapon 4 1998 -Sapienza, Al Pretty Woman 1990 -Morse, Ralph (I) Star Wars: Episode V - The Empire Strikes Back 1980 -Morse, Ralph (I) Superman II 1980 -Morse, Ralph (I) Moonraker 1979 -Morse, Ralph (I) Star Wars: Episode VI - Return of the Jedi 1983 -August, Michael (III) Inception 2010 -August, Michael (III) Inglourious Basterds 2009 -August, Michael (III) Zombieland 2009 -Dye, Dale Starship Troopers 1997 -Dye, Dale Larry Crowne 2011 -Dye, Dale Knight and Day 2010 -Dye, Dale Saving Private Ryan 1998 -Dye, Dale Rules of Engagement 2000 -Dye, Dale JFK 1991 -Dye, Dale Outbreak 1995 -Dye, Dale Spy Game 2001 -Dye, Dale Mission: Impossible 1996 -Cosgrove, Miranda The School of Rock 2003 -Cosgrove, Miranda Despicable Me 2010 -Cosgrove, Miranda Yours, Mine and Ours 2005 -Roggé, Ron (I) The Animal 2001 -Roggé, Ron (I) Raising Helen 2004 -Roggé, Ron (I) Cellular 2004 -Brantley, Betsy Deep Impact 1998 -Brantley, Betsy Mercury Rising 1998 -Brantley, Betsy Who Framed Roger Rabbit 1988 -Brantley, Betsy Double Jeopardy 1999 -Germann, Greg (I) Down to Earth 2001 -Germann, Greg (I) Clear and Present Danger 1994 -Germann, Greg (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Germann, Greg (I) Bolt 2008 -De Niro, Drena Wag the Dog 1997 -De Niro, Drena New Year's Eve 2011 -De Niro, Drena Showtime 2002 -Ahn, Rio You, Me and Dupree 2006 -Ahn, Rio Role Models 2008 -Ahn, Rio The Hangover 2009 -Ahn, Rio Hancock 2008 -Ahn, Rio Letters from Iwo Jima 2006 -Ahn, Rio Yes Man 2008 -Velez, Ivan 'Flipz' Chicken Little 2005 -Velez, Ivan 'Flipz' Step Up 3D 2010 -Velez, Ivan 'Flipz' Stomp the Yard 2007 -Velez, Ivan 'Flipz' Meet the Spartans 2008 -Raimi, Sam The Flintstones 1994 -Raimi, Sam Spies Like Us 1985 -Raimi, Sam Spider-Man 2 2004 -Pahlavi, Shah Mohammad Reza Bowling for Columbine 2002 -Pahlavi, Shah Mohammad Reza JFK 1991 -Pahlavi, Shah Mohammad Reza Miracle 2004 -Godfrey, Patrick (I) EverAfter 1998 -Godfrey, Patrick (I) A Room with a View 1985 -Godfrey, Patrick (I) The Count of Monte Cristo 2002 -Carlyle, Robert (I) Eragon 2006 -Carlyle, Robert (I) The Full Monty 1997 -Carlyle, Robert (I) The World Is Not Enough 1999 -Roth, Eli Piranha 2010 -Roth, Eli Inglourious Basterds 2009 -Roth, Eli The Mirror Has Two Faces 1996 -Roth, Eli Hostel 2005 -Roth, Eli The Lost World: Jurassic Park 1997 -Winzenried, Eric Moneyball 2011 -Winzenried, Eric Austin Powers: The Spy Who Shagged Me 1999 -Winzenried, Eric Austin Powers in Goldmember 2002 -Winzenried, Eric The Shaggy Dog 2006 -Winzenried, Eric Dinner for Schmucks 2010 -Winzenried, Eric Tropic Thunder 2008 -Winzenried, Eric Zoolander 2001 -Winzenried, Eric Boogie Nights 1997 -Stepanek, Brian Lemony Snicket's A Series of Unfortunate Events 2004 -Stepanek, Brian Bolt 2008 -Stepanek, Brian Charlotte's Web 2006 -Stepanek, Brian Transformers 2007 -Stepanek, Brian Over the Hedge 2006 -Stepanek, Brian The Island 2005 -Rosenbaum, Michael (I) Bringing Down the House 2003 -Rosenbaum, Michael (I) Urban Legend 1998 -Rosenbaum, Michael (I) Racing Stripes 2005 -Vernon, Kate The Last Song 2010 -Vernon, Kate Malcolm X 1992 -Vernon, Kate Pretty in Pink 1986 -Stauber, Liz Almost Famous 2000 -Stauber, Liz Three Kings 1999 -Stauber, Liz The Village 2004 -Stauber, Liz T-Rex: Back to the Cretaceous 1998 -Middleton, Clark Sin City 2005 -Middleton, Clark Serendipity 2001 -Middleton, Clark Kill Bill: Vol. 2 2004 -Sweeney, Julia Clockstoppers 2002 -Sweeney, Julia Pulp Fiction 1994 -Sweeney, Julia Stuart Little 1999 -Sweeney, Julia Vegas Vacation 1997 -Wilson-Sampras, Bridgette The Wedding Planner 2001 -Wilson-Sampras, Bridgette I Know What You Did Last Summer 1997 -Wilson-Sampras, Bridgette Mortal Kombat 1995 -Wilson-Sampras, Bridgette House on Haunted Hill 1999 -Wilson-Sampras, Bridgette Last Action Hero 1993 -D'Onofrio, Vincent The Cell 2000 -D'Onofrio, Vincent The Break-Up 2006 -D'Onofrio, Vincent Malcolm X 1992 -D'Onofrio, Vincent Men in Black 1997 -D'Onofrio, Vincent JFK 1991 -Hill, Amy (I) Couples Retreat 2009 -Hill, Amy (I) 50 First Dates 2004 -Hill, Amy (I) Herbie Fully Loaded 2005 -Hill, Amy (I) Cheaper by the Dozen 2003 -Hill, Amy (I) Next Friday 2000 -Hill, Amy (I) Lilo & Stitch 2002 -Hill, Amy (I) Dr. Seuss' The Cat in the Hat 2003 -Mann, Leslie (I) The Cable Guy 1996 -Mann, Leslie (I) Knocked Up 2007 -Mann, Leslie (I) George of the Jungle 1997 -Mann, Leslie (I) 17 Again 2009 -Mann, Leslie (I) Big Daddy 1999 -Mann, Leslie (I) The 40 Year Old Virgin 2005 -Mann, Leslie (I) Funny People 2009 -Mann, Leslie (I) Rio 2011 -Edwards, Janine The Shaggy Dog 2006 -Edwards, Janine Percy Jackson & the Olympians: The Lightning Thief 2010 -Edwards, Janine S.W.A.T. 2003 -McGregor, Ewan The Ghost Writer 2010 -McGregor, Ewan Black Hawk Down 2001 -McGregor, Ewan Angels & Demons 2009 -McGregor, Ewan The Island 2005 -McGregor, Ewan Nanny McPhee and the Big Bang 2010 -McGregor, Ewan Star Wars: Episode III - Revenge of the Sith 2005 -McGregor, Ewan Moulin Rouge! 2001 -McGregor, Ewan Star Wars: Episode I - The Phantom Menace 1999 -McGregor, Ewan Star Wars: Episode II - Attack of the Clones 2002 -McGregor, Ewan Big Fish 2003 -McGregor, Ewan Robots 2005 -O'Shaughnessey, Colleen Horton Hears a Who! 2008 -O'Shaughnessey, Colleen Cars 2006 -O'Shaughnessey, Colleen Cars 2 2011 -O'Shaughnessey, Colleen Sen to Chihiro no kamikakushi 2001 -O'Shaughnessey, Colleen Spider-Man 2 2004 -O'Shaughnessey, Colleen Spider-Man 2002 -O'Shaughnessey, Colleen Toy Story 3 2010 -O'Shaughnessey, Colleen Gake no ue no Ponyo 2008 -Perrineau, Harold The Matrix Reloaded 2003 -Perrineau, Harold Romeo + Juliet 1996 -Perrineau, Harold The Matrix Revolutions 2003 -Green, Mary-Pat My Best Friend's Wedding 1997 -Green, Mary-Pat In Her Shoes 2005 -Green, Mary-Pat The Break-Up 2006 -Green, Mary-Pat Yes Man 2008 -Green, Mary-Pat xXx 2002 -Bell, Rini Jarhead 2005 -Bell, Rini Bring It On 2000 -Bell, Rini The Terminal 2004 -Bell, Rini Road Trip 2000 -Hill, David (XXXII) Transformers: Dark of the Moon 2011 -Hill, David (XXXII) J. Edgar 2011 -Hill, David (XXXII) Hancock 2008 -Hill, David (XXXII) Takers 2010 -Hill, David (XXXII) Angels & Demons 2009 -Hill, David (XXXII) The Hangover 2009 -Hill, David (XXXII) Eagle Eye 2008 -Hill, David (XXXII) Yes Man 2008 -Coker, David (I) Harry Potter and the Order of the Phoenix 2007 -Coker, David (I) Harry Potter and the Chamber of Secrets 2002 -Coker, David (I) Harry Potter and the Half-Blood Prince 2009 -Coker, David (I) Harry Potter and the Sorcerer's Stone 2001 -Ottavino, John (I) Malcolm X 1992 -Ottavino, John (I) Presumed Innocent 1990 -Ottavino, John (I) The Happening 2008 -Selleck, Tom In & Out 1997 -Selleck, Tom Meet the Robinsons 2007 -Selleck, Tom Killers 2010 -Martinez, Adrian (I) The Interpreter 2005 -Martinez, Adrian (I) Cop Out 2010 -Martinez, Adrian (I) A Perfect Murder 1998 -Martinez, Adrian (I) The Taking of Pelham 1 2 3 2009 -Martinez, Adrian (I) Kick-Ass 2010 -Baier, Robert (I) The Negotiator 1998 -Baier, Robert (I) Scream 3 2000 -Baier, Robert (I) Rat Race 2001 -Belcher, Patricia 500) Days of Summer 2009 -Belcher, Patricia Clear and Present Danger 1994 -Belcher, Patricia Message in a Bottle 1999 -Slaughter, Billy Battleship 2012 -Slaughter, Billy The Final Destination 2009 -Slaughter, Billy Click 2006 -Dennen, Barry Titanic 1997 -Dennen, Barry Trading Places 1983 -Dennen, Barry Fantastic Four 2005 -Huff, Neal Big Daddy 1999 -Huff, Neal Michael Clayton 2007 -Huff, Neal The Good Shepherd 2006 -Flynn, Colleen (I) Project X 2012 -Flynn, Colleen (I) Pay It Forward 2000 -Flynn, Colleen (I) Clear and Present Danger 1994 -Middlebrook, Keith Moneyball 2011 -Middlebrook, Keith J. Edgar 2011 -Middlebrook, Keith Thor 2011 -Middlebrook, Keith Battle Los Angeles 2011 -Middlebrook, Keith Bad Teacher 2011 -Middlebrook, Keith Horrible Bosses 2011 -Middlebrook, Keith Iron Man 2 2010 -Middlebrook, Keith The Lincoln Lawyer 2011 -Middlebrook, Keith Transformers: Dark of the Moon 2011 -Malthe, Natassia This Means War 2012 -Malthe, Natassia Lake Placid 1999 -Malthe, Natassia 40 Days and 40 Nights 2002 -Malthe, Natassia Me, Myself & Irene 2000 -Malthe, Natassia Percy Jackson & the Olympians: The Lightning Thief 2010 -Inoue, Eiji (I) Memoirs of a Geisha 2005 -Inoue, Eiji (I) Click 2006 -Inoue, Eiji (I) Austin Powers in Goldmember 2002 -Inoue, Eiji (I) Pearl Harbor 2001 -Jeffrey, Myles The Ant Bully 2006 -Jeffrey, Myles The Santa Clause 2 2002 -Jeffrey, Myles Face/Off 1997 -Jeffrey, Myles Babe: Pig in the City 1998 -Aramini, Rebekah The Sisterhood of the Traveling Pants 2 2008 -Aramini, Rebekah Me, Myself & Irene 2000 -Aramini, Rebekah Underdog 2007 -Alexander, Sasha (II) Mission: Impossible III 2006 -Alexander, Sasha (II) Yes Man 2008 -Alexander, Sasha (II) He's Just Not That Into You 2009 -Phoenix, Joaquin The Village 2004 -Phoenix, Joaquin Gladiator 2000 -Phoenix, Joaquin Ladder 49 2004 -Phoenix, Joaquin Walk the Line 2005 -Phoenix, Joaquin Brother Bear 2003 -Phoenix, Joaquin Signs 2002 -Mumy, Liliana The Santa Clause 3: The Escape Clause 2006 -Mumy, Liliana Hauru no ugoku shiro 2004 -Mumy, Liliana Barnyard 2006 -Mumy, Liliana Cheaper by the Dozen 2 2005 -Mumy, Liliana Cheaper by the Dozen 2003 -Mumy, Liliana The Santa Clause 2 2002 -Rankin, Steve Mercury Rising 1998 -Rankin, Steve Blue Streak 1999 -Rankin, Steve Men in Black 1997 -Rankin, Steve L.A. Confidential 1997 -Rankin, Steve Pearl Harbor 2001 -Rankin, Steve Apollo 13 1995 -Rankin, Steve The X Files 1998 -Long, Lisa (I) Cast Away 2000 -Long, Lisa (I) Legally Blonde 2: Red, White & Blonde 2003 -Long, Lisa (I) What Women Want 2000 -Long, Lisa (I) Yes Man 2008 -Abercrombie, Ian Wild Wild West 1999 -Abercrombie, Ian Garfield: A Tail of Two Kitties 2006 -Abercrombie, Ian Mousehunt 1997 -Abercrombie, Ian Rango 2011 -Abercrombie, Ian The Lost World: Jurassic Park 1997 -Gentry, Jake George of the Jungle 1997 -Gentry, Jake High Crimes 2002 -Gentry, Jake The Wedding Planner 2001 -Jinaro, Jossara The Interpreter 2005 -Jinaro, Jossara World Trade Center 2006 -Jinaro, Jossara Collateral Damage 2002 -Kingsley, Ben Rules of Engagement 2000 -Kingsley, Ben Prince of Persia: The Sands of Time 2010 -Kingsley, Ben Gandhi 1982 -Kingsley, Ben Shutter Island 2010 -Kingsley, Ben The Dictator 2012 -Kingsley, Ben Artificial Intelligence: AI 2001 -Kingsley, Ben Schindler's List 1993 -Noble, John (I) The Lord of the Rings: The Two Towers 2002 -Noble, John (I) The Last Airbender 2010 -Noble, John (I) The Lord of the Rings: The Return of the King 2003 -Branch, Vanessa John Q 2002 -Branch, Vanessa Pirates of the Caribbean: At World's End 2007 -Branch, Vanessa Pirates of the Caribbean: Dead Man's Chest 2006 -Branch, Vanessa Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Branch, Vanessa The Cell 2000 -Azlynn, Valerie Bewitched 2005 -Azlynn, Valerie Tropic Thunder 2008 -Azlynn, Valerie Poseidon 2006 -Azlynn, Valerie Constantine 2005 -Oyelowo, David The Help 2011 -Oyelowo, David Red Tails 2012 -Oyelowo, David Rise of the Planet of the Apes 2011 -Nesbitt, Michael L. Larry Crowne 2011 -Nesbitt, Michael L. Contraband 2012 -Nesbitt, Michael L. The Notebook 2004 -Danielle, Lisa The Replacements 2000 -Danielle, Lisa The Master of Disguise 2002 -Danielle, Lisa Austin Powers: International Man of Mystery 1997 -Danielle, Lisa Showtime 2002 -Danielle, Lisa Minority Report 2002 -Danielle, Lisa Spider-Man 2002 -Cohen, David (XXVIII) You, Me and Dupree 2006 -Cohen, David (XXVIII) Men in Black 3 2012 -Cohen, David (XXVIII) Contagion 2011 -Cohen, David (XXVIII) 17 Again 2009 -Cohen, David (XXVIII) Race to Witch Mountain 2009 -Cohen, David (XXVIII) Evan Almighty 2007 -Cohen, David (XXVIII) Cowboys & Aliens 2011 -Cohen, David (XXVIII) Ocean's Thirteen 2007 -Cohen, David (XXVIII) Eagle Eye 2008 -Cohen, David (XXVIII) Bridesmaids 2011 -Concha, Billy I Now Pronounce You Chuck & Larry 2007 -Concha, Billy Paul Blart: Mall Cop 2009 -Concha, Billy Jack and Jill 2011 -Concha, Billy You Don't Mess with the Zohan 2008 -Concha, Billy Grown Ups 2010 -Concha, Billy Zookeeper 2011 -Sontag, David (II) Jack and Jill 2011 -Sontag, David (II) Ocean's Eleven 2001 -Sontag, David (II) Die Hard: With a Vengeance 1995 -Sontag, David (II) Ocean's Twelve 2004 -Schwarzenegger, Arnold Jingle All the Way 1996 -Schwarzenegger, Arnold The Rundown 2003 -Schwarzenegger, Arnold Batman & Robin 1997 -Schwarzenegger, Arnold End of Days 1999 -Schwarzenegger, Arnold Predator 1987 -Schwarzenegger, Arnold The 6th Day 2000 -Schwarzenegger, Arnold Around the World in 80 Days 2004 -Schwarzenegger, Arnold Eraser 1996 -Schwarzenegger, Arnold Dr. Dolittle 2 2001 -Schwarzenegger, Arnold Last Action Hero 1993 -Schwarzenegger, Arnold The Expendables 2010 -Schwarzenegger, Arnold The Terminator 1984 -Schwarzenegger, Arnold Terminator 2: Judgment Day 1991 -Schwarzenegger, Arnold Collateral Damage 2002 -Schwarzenegger, Arnold True Lies 1994 -Schwarzenegger, Arnold Total Recall 1990 -Schwarzenegger, Arnold Terminator 3: Rise of the Machines 2003 -Gilbertson, Christopher Glory Road 2006 -Gilbertson, Christopher Windtalkers 2002 -Gilbertson, Christopher Million Dollar Baby 2004 -Van, Julie (I) Superhero Movie 2008 -Van, Julie (I) Tropic Thunder 2008 -Van, Julie (I) He's Just Not That Into You 2009 -Biggerstaff, Sean Harry Potter and the Sorcerer's Stone 2001 -Biggerstaff, Sean Harry Potter and the Deathly Hallows: Part 2 2011 -Biggerstaff, Sean Harry Potter and the Chamber of Secrets 2002 -Levine, Anna (I) Fatal Attraction 1987 -Levine, Anna (I) Unforgiven 1992 -Levine, Anna (I) Wall Street 1987 -Levine, Anna (I) Bad Boys 1995 -Chepovetsky, Dmitry Mission to Mars 2000 -Chepovetsky, Dmitry K-19: The Widowmaker 2002 -Chepovetsky, Dmitry Mission: Impossible - Ghost Protocol 2011 -Summer, Cree Atlantis: The Lost Empire 2001 -Summer, Cree Superman Returns 2006 -Summer, Cree Rugrats in Paris: The Movie - Rugrats II 2000 -Summer, Cree Rugrats Go Wild 2003 -Summer, Cree The Wild Thornberrys Movie 2002 -Summer, Cree The Rugrats Movie 1998 -Summer, Cree Fantastic Four 2005 -Cubison, Richard The Saint 1997 -Cubison, Richard The Best Exotic Marigold Hotel 2011 -Cubison, Richard Harry Potter and the Order of the Phoenix 2007 -Cubison, Richard The Jackal 1997 -Cubison, Richard The Living Daylights 1987 -Rich, Glendon Wag the Dog 1997 -Rich, Glendon Pulp Fiction 1994 -Rich, Glendon Amistad 1997 -Rich, Glendon The X Files 1998 -Rich, Glendon Jackie Brown 1997 -Hill, Jonah Horton Hears a Who! 2008 -Hill, Jonah Evan Almighty 2007 -Hill, Jonah Knocked Up 2007 -Hill, Jonah Superbad 2007 -Hill, Jonah Moneyball 2011 -Hill, Jonah Forgetting Sarah Marshall 2008 -Hill, Jonah The 40 Year Old Virgin 2005 -Hill, Jonah Funny People 2009 -Hill, Jonah Get Him to the Greek 2010 -Hill, Jonah 21 Jump Street 2012 -Hill, Jonah How to Train Your Dragon 2010 -Hill, Jonah Click 2006 -Hill, Jonah Night at the Museum: Battle of the Smithsonian 2009 -Hill, Jonah Megamind 2010 -Campbell, Desmond The Incredible Hulk 2008 -Campbell, Desmond Frequency 2000 -Campbell, Desmond The Bone Collector 1999 -Campbell, Desmond Snake Eyes 1998 -Campbell, Desmond Saw 3D 2010 -Meyer, Ralph H. Real Steel 2011 -Meyer, Ralph H. The Ides of March 2011 -Meyer, Ralph H. Scream 4 2011 -Boyd, Lynda Mission to Mars 2000 -Boyd, Lynda Final Destination 2 2003 -Boyd, Lynda Hot Tub Time Machine 2010 -Boyd, Lynda The Fast and the Furious: Tokyo Drift 2006 -Cole, Gary (I) One Hour Photo 2002 -Cole, Gary (I) In the Line of Fire 1993 -Cole, Gary (I) Hop 2011 -Cole, Gary (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Cole, Gary (I) The Ring Two 2005 -Cole, Gary (I) Pineapple Express 2008 -Cole, Gary (I) Dodgeball: A True Underdog Story 2004 -Elsen, John The Out-of-Towners 1999 -Elsen, John Meet the Parents 2000 -Elsen, John Shaft 2000 -Elsen, John The Thomas Crown Affair 1999 -Cho, Margaret 17 Again 2009 -Cho, Margaret Face/Off 1997 -Cho, Margaret The Rugrats Movie 1998 -Lorraine, Tina American Gangster 2007 -Lorraine, Tina Daredevil 2003 -Lorraine, Tina Artificial Intelligence: AI 2001 -Kreidler, Kitty Four Christmases 2008 -Kreidler, Kitty Eagle Eye 2008 -Kreidler, Kitty Changeling 2008 -Kreidler, Kitty Yes Man 2008 -Soomekh, Bahar Saw III 2006 -Soomekh, Bahar Saw V 2008 -Soomekh, Bahar Syriana 2005 -Soomekh, Bahar Saw IV 2007 -Soomekh, Bahar Mission: Impossible III 2006 -Palermo, Brian Thank You for Smoking 2005 -Palermo, Brian Kicking & Screaming 2005 -Palermo, Brian Daddy Day Care 2003 -Palermo, Brian The Social Network 2010 -Palermo, Brian Big Momma's House 2000 -Gervais, Ricky Stardust 2007 -Gervais, Ricky Spy Kids: All the Time in the World in 4D 2011 -Gervais, Ricky Night at the Museum: Battle of the Smithsonian 2009 -Gervais, Ricky Night at the Museum 2006 -Gervais, Ricky The Muppets 2011 -O'Brien, Liam (V) Terminator Salvation 2009 -O'Brien, Liam (V) The Amazing Spider-Man 2012 -O'Brien, Liam (V) Ghost Rider 2007 -O'Connor, Kevin J. The Mummy 1999 -O'Connor, Kevin J. Van Helsing 2004 -O'Connor, Kevin J. G.I. Joe: The Rise of Cobra 2009 -O'Connor, Kevin J. Amistad 1997 -O'Connor, Kevin J. There Will Be Blood 2007 -Poehler, Amy Alvin and the Chipmunks: Chipwrecked 2011 -Poehler, Amy Deuce Bigalow: Male Gigolo 1999 -Poehler, Amy Horton Hears a Who! 2008 -Poehler, Amy Blades of Glory 2007 -Poehler, Amy Mean Girls 2004 -Poehler, Amy Alvin and the Chipmunks: The Squeakquel 2009 -Poehler, Amy Shrek the Third 2007 -Poehler, Amy Monsters vs Aliens 2009 -Poehler, Amy Kari-gurashi no Arietti 2010 -Poehler, Amy Baby Mama 2008 -Parke, Evan The Cider House Rules 1999 -Parke, Evan King Kong 2005 -Parke, Evan The Replacements 2000 -Hoffman, Bridget Curious George 2006 -Hoffman, Bridget Hauru no ugoku shiro 2004 -Hoffman, Bridget The Princess and the Frog 2009 -Hoffman, Bridget Bride Wars 2009 -Hoffman, Bridget The Wild 2006 -Hoffman, Bridget Madagascar: Escape 2 Africa 2008 -Hoffman, Bridget Drag Me to Hell 2009 -Hoffman, Bridget Over the Hedge 2006 -Ciardi, Mark Me, Myself & Irene 2000 -Ciardi, Mark Fever Pitch 2005 -Ciardi, Mark The Rookie 2002 -Granli, Elisabeth L.A. Confidential 1997 -Granli, Elisabeth How Stella Got Her Groove Back 1998 -Granli, Elisabeth Wonder Boys 2000 -Granli, Elisabeth Something's Gotta Give 2003 -Cicco, Dominick The Good Shepherd 2006 -Cicco, Dominick Thank You for Smoking 2005 -Cicco, Dominick The Pink Panther 2006 -Cicco, Dominick Invincible 2006 -Cicco, Dominick The Brave One 2007 -Franklin, Vincent From Hell 2001 -Franklin, Vincent The Bourne Identity 2002 -Franklin, Vincent The Illusionist 2006 -Cleghorne, Ellen Little Nicky 2000 -Cleghorne, Ellen Coyote Ugly 2000 -Cleghorne, Ellen Old School 2003 -Cleghorne, Ellen Armageddon 1998 -Weaving, Hugo Legend of the Guardians: The Owls of Ga'Hoole 2010 -Weaving, Hugo The Wolfman 2010 -Weaving, Hugo The Matrix 1999 -Weaving, Hugo Babe: Pig in the City 1998 -Weaving, Hugo The Lord of the Rings: The Fellowship of the Ring 2001 -Weaving, Hugo The Lord of the Rings: The Return of the King 2003 -Weaving, Hugo The Matrix Reloaded 2003 -Weaving, Hugo Captain America: The First Avenger 2011 -Weaving, Hugo Transformers: Dark of the Moon 2011 -Weaving, Hugo Happy Feet 2006 -Weaving, Hugo The Matrix Revolutions 2003 -Weaving, Hugo Transformers 2007 -Weaving, Hugo Happy Feet Two 2011 -Weaving, Hugo Transformers: Revenge of the Fallen 2009 -Weaving, Hugo The Lord of the Rings: The Two Towers 2002 -Weaving, Hugo V for Vendetta 2005 -Weaving, Hugo Babe 1995 -Griffith, Gattlin Green Lantern 2011 -Griffith, Gattlin Changeling 2008 -Griffith, Gattlin Couples Retreat 2009 -McClelland, Charles (II) Catch Me If You Can 2002 -McClelland, Charles (II) Like Mike 2002 -McClelland, Charles (II) Sweet Home Alabama 2002 -McClelland, Charles (II) In Her Shoes 2005 -McClelland, Charles (II) Two Weeks Notice 2002 -McClelland, Charles (II) Syriana 2005 -McClelland, Charles (II) A Beautiful Mind 2001 -Jackson, Joshua (I) Scream 2 1997 -Jackson, Joshua (I) The Mighty Ducks 1992 -Jackson, Joshua (I) Urban Legend 1998 -Jackson, Joshua (I) Racing Stripes 2005 -Jackson, Joshua (I) Ocean's Eleven 2001 -Jackson, Joshua (I) Cruel Intentions 1999 -Jackson, Joshua (I) D2: The Mighty Ducks 1994 -Siemaszko, Casey Back to the Future Part II 1989 -Siemaszko, Casey Stand by Me 1986 -Siemaszko, Casey Public Enemies 2009 -Siemaszko, Casey Back to the Future 1985 -Moses, Mark Red Dragon 2002 -Moses, Mark Monster-in-Law 2005 -Moses, Mark Big Momma's House 2 2006 -Moses, Mark Letters from Iwo Jima 2006 -Moses, Mark After the Sunset 2004 -Moses, Mark Deep Impact 1998 -Shawn, Wallace Toy Story 2 1999 -Shawn, Wallace Toy Story 3 2010 -Shawn, Wallace Monsters, Inc. 2001 -Shawn, Wallace The Haunted Mansion 2003 -Shawn, Wallace My Favorite Martian 1999 -Shawn, Wallace Cats & Dogs: The Revenge of Kitty Galore 2010 -Shawn, Wallace Vegas Vacation 1997 -Shawn, Wallace Chicken Little 2005 -Shawn, Wallace Toy Story 1995 -Shawn, Wallace The Incredibles 2004 -Reid, Jesse This Means War 2012 -Reid, Jesse Watchmen 2009 -Reid, Jesse Rise of the Planet of the Apes 2011 -Frank, Gregory George Get Him to the Greek 2010 -Frank, Gregory George I Love You, Man 2009 -Frank, Gregory George Horrible Bosses 2011 -Creech, Don X-Men: First Class 2011 -Creech, Don Good Night, and Good Luck. 2005 -Creech, Don The Curious Case of Benjamin Button 2008 -Creech, Don The Island 2005 -Rolek, Grace Cloudy with a Chance of Meatballs 2009 -Rolek, Grace Meet the Robinsons 2007 -Rolek, Grace Horton Hears a Who! 2008 -Flemming, Wayne Lemony Snicket's A Series of Unfortunate Events 2004 -Flemming, Wayne Fun with Dick and Jane 2005 -Flemming, Wayne Fever Pitch 2005 -Flemming, Wayne Cinderella Man 2005 -Hart, Gordon (II) The Flintstones in Viva Rock Vegas 2000 -Hart, Gordon (II) The Polar Express 2004 -Hart, Gordon (II) The Wedding Planner 2001 -O'Byrne, Brían F. Million Dollar Baby 2004 -O'Byrne, Brían F. Bandits 2001 -O'Byrne, Brían F. No Reservations 2007 -Rourke, Mickey Sin City 2005 -Rourke, Mickey Immortals 2011 -Rourke, Mickey The Rainmaker 1997 -Rourke, Mickey The Expendables 2010 -Rourke, Mickey Man on Fire 2004 -Rourke, Mickey Iron Man 2 2010 -Trejo, Danny Halloween 2007 -Trejo, Danny Heat 1995 -Trejo, Danny Spy Kids 3-D: Game Over 2003 -Trejo, Danny xXx 2002 -Trejo, Danny Spy Kids 2: Island of Lost Dreams 2002 -Trejo, Danny Six Days Seven Nights 1998 -Trejo, Danny Spy Kids 2001 -Trejo, Danny Con Air 1997 -Trejo, Danny Spy Kids: All the Time in the World in 4D 2011 -Trejo, Danny Anaconda 1997 -Trejo, Danny Anchorman: The Legend of Ron Burgundy 2004 -Trejo, Danny Predators 2010 -Trejo, Danny The Muppets 2011 -Paroo, Zahf Firewall 2006 -Paroo, Zahf Scooby Doo 2: Monsters Unleashed 2004 -Paroo, Zahf Scary Movie 2000 -Hoag, Jan The Kid 2000 -Hoag, Jan Christmas with the Kranks 2004 -Hoag, Jan Evan Almighty 2007 -Robinson, Fatima Romeo Must Die 2000 -Robinson, Fatima Dreamgirls 2006 -Robinson, Fatima American Gangster 2007 -McDaniel, Charles The Goonies 1985 -McDaniel, Charles Absolute Power 1997 -McDaniel, Charles Conspiracy Theory 1997 -Drago, Nick Hop 2011 -Drago, Nick Alvin and the Chipmunks 2007 -Drago, Nick The Muppets 2011 -Monrovia, Marilyn Race to Witch Mountain 2009 -Monrovia, Marilyn Star Trek: Insurrection 1998 -Monrovia, Marilyn Mighty Joe Young 1998 -Rosenberg, Scott Gone in Sixty Seconds 2000 -Rosenberg, Scott Con Air 1997 -Rosenberg, Scott The General's Daughter 1999 -Rosenberg, Scott Fever Pitch 2005 -Rosenberg, Scott There's Something About Mary 1998 -Whitworth, Johnny 3:10 to Yuma 2007 -Whitworth, Johnny Ghost Rider: Spirit of Vengeance 2011 -Whitworth, Johnny The Rainmaker 1997 -Whitworth, Johnny Limitless 2011 -Wheeler, Ed Daylight 1996 -Wheeler, Ed Godzilla 1998 -Wheeler, Ed Mickey Blue Eyes 1999 -Wheeler, Ed Presumed Innocent 1990 -Wolfe, Dale (II) TRON: Legacy 2010 -Wolfe, Dale (II) Scary Movie 4 2006 -Wolfe, Dale (II) Watchmen 2009 -Ortega, Jimmy (I) The A-Team 2010 -Ortega, Jimmy (I) Traffic 2000 -Ortega, Jimmy (I) L.A. Confidential 1997 -Ortega, Jimmy (I) Just Like Heaven 2005 -Bellan, Joe Mrs. Doubtfire 1993 -Bellan, Joe Bicentennial Man 1999 -Bellan, Joe Hereafter 2010 -Bellan, Joe Sudden Impact 1983 -Speight, Lester The Replacements 2000 -Speight, Lester Any Given Sunday 1999 -Speight, Lester Norbit 2007 -Speight, Lester Transformers: Dark of the Moon 2011 -Prescott, Robert (I) The Good Shepherd 2006 -Prescott, Robert (I) Bachelor Party 1984 -Prescott, Robert (I) Michael Clayton 2007 -Prescott, Robert (I) Burn After Reading 2008 -Castaldo, Craig Elf 2003 -Castaldo, Craig How to Lose a Guy in 10 Days 2003 -Castaldo, Craig Godzilla 1998 -Castaldo, Craig The Departed 2006 -Castaldo, Craig Ransom 1996 -Castaldo, Craig Mr. Deeds 2002 -Castaldo, Craig Tower Heist 2011 -Castaldo, Craig Little Nicky 2000 -Castaldo, Craig Keeping the Faith 2000 -Castaldo, Craig Two Weeks Notice 2002 -Roxburgh, Richard The League of Extraordinary Gentlemen 2003 -Roxburgh, Richard Van Helsing 2004 -Roxburgh, Richard Legend of the Guardians: The Owls of Ga'Hoole 2010 -Roxburgh, Richard Moulin Rouge! 2001 -Roxburgh, Richard Mission: Impossible II 2000 -Sood, Manoj Diary of a Wimpy Kid: Rodrick Rules 2011 -Sood, Manoj Watchmen 2009 -Sood, Manoj Romeo Must Die 2000 -Sood, Manoj Rat Race 2001 -Miceli, Tate The Final Destination 2009 -Miceli, Tate The Dukes of Hazzard 2005 -Miceli, Tate Big Momma's House 2 2006 -Cedar, Larry National Treasure: Book of Secrets 2007 -Cedar, Larry Kiss the Girls 1997 -Cedar, Larry The Ant Bully 2006 -Cedar, Larry The Amazing Spider-Man 2012 -Cedar, Larry Constantine 2005 -Cedar, Larry The Master of Disguise 2002 -Judd, Ashley Frida 2002 -Judd, Ashley High Crimes 2002 -Judd, Ashley Where the Heart Is 2000 -Judd, Ashley Kiss the Girls 1997 -Judd, Ashley A Time to Kill 1996 -Judd, Ashley Double Jeopardy 1999 -Judd, Ashley Heat 1995 -Judd, Ashley Divine Secrets of the Ya-Ya Sisterhood 2002 -Judd, Ashley Dolphin Tale 2011 -Adelstein, Paul Memoirs of a Geisha 2005 -Adelstein, Paul My Best Friend's Wedding 1997 -Adelstein, Paul Bedazzled 2000 -Adelstein, Paul Collateral 2004 -Adelstein, Paul Intolerable Cruelty 2003 -Adelstein, Paul Land of the Lost 2009 -Lo, Ken Around the World in 80 Days 2004 -Lo, Ken Pik lik for 1995 -Lo, Ken Rush Hour 1998 -Panou X-Men Origins: Wolverine 2009 -Panou Underworld: Awakening 2012 -Panou This Means War 2012 -Panou Eight Below 2006 -Panou Rise of the Planet of the Apes 2011 -Gordon-Levitt, Joseph Treasure Planet 2002 -Gordon-Levitt, Joseph Halloween H20: 20 Years Later 1998 -Gordon-Levitt, Joseph 10 Things I Hate About You 1999 -Gordon-Levitt, Joseph Inception 2010 -Gordon-Levitt, Joseph 500) Days of Summer 2009 -Gordon-Levitt, Joseph G.I. Joe: The Rise of Cobra 2009 -Russo, Gianni (I) The Godfather 1972 -Russo, Gianni (I) Out for Justice 1991 -Russo, Gianni (I) Any Given Sunday 1999 -Russo, Gianni (I) Seabiscuit 2003 -Russo, Gianni (I) The Family Man 2000 -Russo, Gianni (I) Striptease 1996 -Russo, Gianni (I) Rush Hour 2 2001 -Russo, Gianni (I) Red Dragon 2002 -Russo, Gianni (I) After the Sunset 2004 -Faulk, Alison Along Came Polly 2004 -Faulk, Alison Austin Powers: The Spy Who Shagged Me 1999 -Faulk, Alison Step Up 2: The Streets 2008 -Faulk, Alison American Beauty 1999 -Schneider, Todd (I) Underworld 2003 -Schneider, Todd (I) Angels & Demons 2009 -Schneider, Todd (I) The Book of Eli 2010 -Ferris, Alex Diary of a Wimpy Kid 2010 -Ferris, Alex The Time Traveler's Wife 2009 -Ferris, Alex RV 2006 -Ferris, Alex X-Men: The Last Stand 2006 -Cho, Elliott Blades of Glory 2007 -Cho, Elliott Click 2006 -Cho, Elliott Kicking & Screaming 2005 -Elfman, Bodhi Gone in Sixty Seconds 2000 -Elfman, Bodhi Mercury Rising 1998 -Elfman, Bodhi Almost Famous 2000 -Elfman, Bodhi Godzilla 1998 -Elfman, Bodhi Keeping the Faith 2000 -Elfman, Bodhi Enemy of the State 1998 -Elfman, Bodhi Armageddon 1998 -Elfman, Bodhi Collateral 2004 -Zoli, Winter Ave Bad Company 2002 -Zoli, Winter Ave Hellboy 2004 -Zoli, Winter Ave The League of Extraordinary Gentlemen 2003 -Wasilewski, Audrey Shark Tale 2004 -Wasilewski, Audrey What Women Want 2000 -Wasilewski, Audrey Evan Almighty 2007 -Wasilewski, Audrey The Wild 2006 -Wasilewski, Audrey She's All That 1999 -Wasilewski, Audrey Miss Congeniality 2: Armed and Fabulous 2005 -Wasilewski, Audrey Tarzan 1999 -Wasilewski, Audrey Barnyard 2006 -Wasilewski, Audrey Something's Gotta Give 2003 -Wasilewski, Audrey Clash of the Titans 2010 -Till, Lucas X-Men: First Class 2011 -Till, Lucas Hannah Montana: The Movie 2009 -Till, Lucas Battle Los Angeles 2011 -Till, Lucas Walk the Line 2005 -Begley Jr., Ed Fly Me to the Moon 2008 -Begley Jr., Ed Batman Forever 1995 -Begley Jr., Ed An Officer and a Gentleman 1982 -Begley Jr., Ed Pineapple Express 2008 -Def, Mos The Hitchhiker's Guide to the Galaxy 2005 -Def, Mos The Italian Job 2003 -Def, Mos Talladega Nights: The Ballad of Ricky Bobby 2006 -Def, Mos Showtime 2002 -Louiso, Todd Jerry Maguire 1996 -Louiso, Todd High Fidelity 2000 -Louiso, Todd Apollo 13 1995 -Louiso, Todd Snakes on a Plane 2006 -Louiso, Todd The Rock 1996 -Louiso, Todd Thank You for Smoking 2005 -Hines, Cheryl Along Came Polly 2004 -Hines, Cheryl Space Chimps 2008 -Hines, Cheryl Herbie Fully Loaded 2005 -Hines, Cheryl RV 2006 -Hines, Cheryl The Ugly Truth 2009 -Clotworthy, Robert Mulan 1998 -Clotworthy, Robert Shark Tale 2004 -Clotworthy, Robert The Emperor's New Groove 2000 -Clotworthy, Robert The Green Hornet 2011 -Clotworthy, Robert Racing Stripes 2005 -Clotworthy, Robert One Hour Photo 2002 -Clotworthy, Robert The Da Vinci Code 2006 -Cohen, J.J. Almost Famous 2000 -Cohen, J.J. Back to the Future Part III 1990 -Cohen, J.J. Back to the Future Part II 1989 -Cohen, J.J. Back to the Future 1985 -Bolling, Angie RoboCop 2 1990 -Bolling, Angie Friday Night Lights 2004 -Bolling, Angie RoboCop 1987 -Kyle, Jack Intolerable Cruelty 2003 -Kyle, Jack Kiss the Girls 1997 -Kyle, Jack Outbreak 1995 -Kelly, Chance American Gangster 2007 -Kelly, Chance The Departed 2006 -Kelly, Chance The Devil's Own 1997 -Kelly, Chance Unbreakable 2000 -Kelly, Chance The Taking of Pelham 1 2 3 2009 -Schenk, Michael (I) The Reader 2008 -Schenk, Michael (I) Enemy at the Gates 2001 -Schenk, Michael (I) Munich 2005 -Essman, Susie Bolt 2008 -Essman, Susie 'Crocodile' Dundee II 1988 -Essman, Susie Volcano 1997 -Essman, Susie The Siege 1998 -Essman, Susie Keeping the Faith 2000 -Essman, Susie Cop Out 2010 -McCormack, Will Elf 2003 -McCormack, Will Syriana 2005 -McCormack, Will Must Love Dogs 2005 -Saldanha, Carlos Ice Age: The Meltdown 2006 -Saldanha, Carlos Rio 2011 -Saldanha, Carlos Ice Age: Dawn of the Dinosaurs 2009 -Arcoraci, Vene L. Dumb & Dumber 1994 -Arcoraci, Vene L. Minority Report 2002 -Arcoraci, Vene L. Enemy of the State 1998 -Tashjian, Warren Shallow Hal 2001 -Tashjian, Warren Fever Pitch 2005 -Tashjian, Warren Me, Myself & Irene 2000 -Tashjian, Warren There's Something About Mary 1998 -Escarpeta, Arlen We Are Marshall 2006 -Escarpeta, Arlen High Crimes 2002 -Escarpeta, Arlen Friday the 13th 2009 -Escarpeta, Arlen Final Destination 5 2011 -Levin, Matt (I) Starship Troopers 1997 -Levin, Matt (I) Tropic Thunder 2008 -Levin, Matt (I) Blades of Glory 2007 -Levin, Matt (I) Spirit: Stallion of the Cimarron 2002 -Levin, Matt (I) Dodgeball: A True Underdog Story 2004 -Levin, Matt (I) Zoolander 2001 -Lee Fultz, Mona Varsity Blues 1999 -Lee Fultz, Mona Hope Floats 1998 -Lee Fultz, Mona Miss Congeniality 2000 -Brolly, Shane Underworld: Evolution 2006 -Brolly, Shane Underworld: Rise of the Lycans 2009 -Brolly, Shane Underworld 2003 -Lenoir, Noémie After the Sunset 2004 -Lenoir, Noémie Rush Hour 3 2007 -Lenoir, Noémie Astérix & Obélix: Mission Cléopâtre 2002 -Overbey, Kennith Night at the Museum: Battle of the Smithsonian 2009 -Overbey, Kennith Watchmen 2009 -Overbey, Kennith Catwoman 2004 -McDonnell, Jon M. (I) Meet the Parents 2000 -McDonnell, Jon M. (I) Men in Black II 2002 -McDonnell, Jon M. (I) Unfaithful 2002 -McDonnell, Jon M. (I) A Beautiful Mind 2001 -Krull, Suzanne Race to Witch Mountain 2009 -Krull, Suzanne How the Grinch Stole Christmas 2000 -Krull, Suzanne Mousehunt 1997 -Strathairn, David The Firm 1993 -Strathairn, David The Bourne Ultimatum 2007 -Strathairn, David Good Night, and Good Luck. 2005 -Strathairn, David We Are Marshall 2006 -Strathairn, David The Spiderwick Chronicles 2008 -Strathairn, David L.A. Confidential 1997 -Nguyen, Westley Star Trek 2009 -Nguyen, Westley G.I. Joe: The Rise of Cobra 2009 -Nguyen, Westley Little Fockers 2010 -Bland, John Harrington Bandits 2001 -Bland, John Harrington Changeling 2008 -Bland, John Harrington Deuce Bigalow: Male Gigolo 1999 -Bland, John Harrington Blow 2001 -Bland, John Harrington The Jackal 1997 -Langton, Jeff Die Hard 2 1990 -Langton, Jeff Rocky V 1990 -Langton, Jeff Batman Returns 1992 -Bumpass, Rodger The SpongeBob SquarePants Movie 2004 -Bumpass, Rodger Ice Age: The Meltdown 2006 -Bumpass, Rodger Brother Bear 2003 -Bumpass, Rodger Hercules 1997 -Bumpass, Rodger The Emperor's New Groove 2000 -Bumpass, Rodger Monsters, Inc. 2001 -Bumpass, Rodger Sen to Chihiro no kamikakushi 2001 -Bumpass, Rodger Tarzan 1999 -Bumpass, Rodger Treasure Planet 2002 -Bumpass, Rodger Cars 2006 -Bumpass, Rodger The Hunchback of Notre Dame 1996 -Bumpass, Rodger A Bug's Life 1998 -Bumpass, Rodger Lilo & Stitch 2002 -Bumpass, Rodger Toy Story 2 1999 -Curry, Christopher (I) Starship Troopers 1997 -Curry, Christopher (I) Home Alone 3 1997 -Curry, Christopher (I) Transformers: Revenge of the Fallen 2009 -Curry, Christopher (I) Red Dragon 2002 -Francis, Alan (III) The Perfect Storm 2000 -Francis, Alan (III) Meet the Parents 2000 -Francis, Alan (III) The Out-of-Towners 1999 -Palmisano, Conrad E. Conspiracy Theory 1997 -Palmisano, Conrad E. Red Dragon 2002 -Palmisano, Conrad E. Holes 2003 -Roberts, Kim (I) The Tuxedo 2002 -Roberts, Kim (I) Saw IV 2007 -Roberts, Kim (I) Dawn of the Dead 2004 -Roberts, Kim (I) Saw III 2006 -Smith, Lois (I) Twister 1996 -Smith, Lois (I) Fatal Attraction 1987 -Smith, Lois (I) Minority Report 2002 -Massee, Michael Catwoman 2004 -Massee, Michael Underdog 2007 -Massee, Michael Amistad 1997 -Massee, Michael Se7en 1995 -Massee, Michael The Amazing Spider-Man 2012 -Massee, Michael The Game 1997 -Massee, Michael One Fine Day 1996 -Mackie, John (II) Pirates of the Caribbean: Dead Man's Chest 2006 -Mackie, John (II) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Mackie, John (II) 500) Days of Summer 2009 -Lipman, Jeff Johnny English Reborn 2011 -Lipman, Jeff United 93 2006 -Lipman, Jeff Sherlock Holmes: A Game of Shadows 2011 -Lipman, Jeff Batman Begins 2005 -Jiménez, Héctor (I) Nacho Libre 2006 -Jiménez, Héctor (I) Epic Movie 2007 -Jiménez, Héctor (I) Wild Hogs 2007 -Tingle, Shayne My Dog Skip 2000 -Tingle, Shayne Big Fish 2003 -Tingle, Shayne Remember the Titans 2000 -Tingle, Shayne O Brother, Where Art Thou? 2000 -Kingi, Henry Showtime 2002 -Kingi, Henry Predator 1987 -Kingi, Henry Batman Returns 1992 -Kingi, Henry Lethal Weapon 3 1992 -Kingi, Henry Last Action Hero 1993 -Kingi, Henry The SpongeBob SquarePants Movie 2004 -Gershin, Scott Martin Flubber 1997 -Gershin, Scott Martin The Texas Chainsaw Massacre 2003 -Gershin, Scott Martin Tarzan 1999 -Gershin, Scott Martin Herbie Fully Loaded 2005 -Peduto, Ralph The Rock 1996 -Peduto, Ralph Mrs. Doubtfire 1993 -Peduto, Ralph Patch Adams 1998 -Forster, Robert (I) The Descendants 2011 -Forster, Robert (I) D-War 2007 -Forster, Robert (I) Firewall 2006 -Forster, Robert (I) Like Mike 2002 -Forster, Robert (I) Charlie's Angels: Full Throttle 2003 -Forster, Robert (I) Me, Myself & Irene 2000 -Forster, Robert (I) Jackie Brown 1997 -Forster, Robert (I) Ghosts of Girlfriends Past 2009 -Stevens, Sally (I) Norbit 2007 -Stevens, Sally (I) Yes Man 2008 -Stevens, Sally (I) The Little Mermaid 1989 -Camp, Rick (I) Patch Adams 1998 -Camp, Rick (I) Four Christmases 2008 -Camp, Rick (I) The Pursuit of Happyness 2006 -Pais, Josh Phone Booth 2002 -Pais, Josh A Civil Action 1998 -Pais, Josh Scream 3 2000 -Pais, Josh A Beautiful Mind 2001 -Darrow, Tiger Spy Kids 2: Island of Lost Dreams 2002 -Darrow, Tiger Spy Kids: All the Time in the World in 4D 2011 -Darrow, Tiger The Adventures of Sharkboy and Lavagirl 3-D 2005 -Foster, Reese U.S. Marshals 1998 -Foster, Reese My Best Friend's Wedding 1997 -Foster, Reese Mercury Rising 1998 -Foster, Reese Road to Perdition 2002 -Foster, Reese High Fidelity 2000 -Foster, Reese The Jackal 1997 -Foster, Reese Interview with the Vampire: The Vampire Chronicles 1994 -Foster, Reese The Fugitive 1993 -Foster, Reese Transformers: Dark of the Moon 2011 -Foster, Reese The Break-Up 2006 -Brown, Garrett M. I Am Number Four 2011 -Brown, Garrett M. Fun with Dick and Jane 2005 -Brown, Garrett M. Kick-Ass 2010 -Wolf, Warner How to Lose a Guy in 10 Days 2003 -Wolf, Warner A Beautiful Mind 2001 -Wolf, Warner Rocky IV 1985 -Ramsey, Stephen (II) Rules of Engagement 2000 -Ramsey, Stephen (II) G.I. Jane 1997 -Ramsey, Stephen (II) S.W.A.T. 2003 -Ramsey, Stephen (II) Minority Report 2002 -Parker, Mark J. Step Up 2: The Streets 2008 -Parker, Mark J. Lady in the Water 2006 -Parker, Mark J. Wall Street: Money Never Sleeps 2010 -Parker, Mark J. Men in Black 3 2012 -Curran, Tony (I) The 13th Warrior 1999 -Curran, Tony (I) X-Men: First Class 2011 -Curran, Tony (I) Miami Vice 2006 -Curran, Tony (I) Gladiator 2000 -Curran, Tony (I) Pearl Harbor 2001 -Curran, Tony (I) Big Mommas: Like Father, Like Son 2011 -Curran, Tony (I) The League of Extraordinary Gentlemen 2003 -Curran, Tony (I) Underworld: Evolution 2006 -Curran, Tony (I) Blade II 2002 -Curran, Tony (I) The Adventures of Tintin 2011 -Farrell, Colin (I) S.W.A.T. 2003 -Farrell, Colin (I) Miami Vice 2006 -Farrell, Colin (I) Minority Report 2002 -Farrell, Colin (I) Alexander 2004 -Farrell, Colin (I) Crazy Heart 2009 -Farrell, Colin (I) Daredevil 2003 -Farrell, Colin (I) Phone Booth 2002 -Farrell, Colin (I) Horrible Bosses 2011 -Farrell, Colin (I) The Recruit 2003 -Gracie, Victoria Iron Man 2 2010 -Gracie, Victoria The Fast and the Furious: Tokyo Drift 2006 -Gracie, Victoria Fast & Furious 2009 -Gracie, Victoria Rush Hour 3 2007 -Thompson, Josh Robert G.I. Joe: The Rise of Cobra 2009 -Thompson, Josh Robert Yogi Bear 2010 -Thompson, Josh Robert Up 2009 -Thompson, Josh Robert WALL·E 2008 -Sorvino, Paul Money Talks 1997 -Sorvino, Paul The Firm 1993 -Sorvino, Paul The Family Man 2000 -Sorvino, Paul Romeo + Juliet 1996 -Schmidt, Mary Ann Armageddon 1998 -Schmidt, Mary Ann George of the Jungle 1997 -Schmidt, Mary Ann Starship Troopers 1997 -Schmidt, Mary Ann Jackie Brown 1997 -Bagley, Lorri The Stepford Wives 2004 -Bagley, Lorri Mickey Blue Eyes 1999 -Bagley, Lorri Ice Age 2002 -Kimball, Donna Catch Me If You Can 2002 -Kimball, Donna Jarhead 2005 -Kimball, Donna Patch Adams 1998 -Gabrielyan, Sergey Rzhevskiy protiv Napoleona 2012 -Gabrielyan, Sergey Moskovskiye kanikuly 1995 -Gabrielyan, Sergey Shirli-Myrli 1995 -Escobar, Daniel The Mexican 2001 -Escobar, Daniel The Lizzie McGuire Movie 2003 -Escobar, Daniel Blow 2001 -Settle, Matthew (I) U-571 2000 -Settle, Matthew (I) I Still Know What You Did Last Summer 1998 -Settle, Matthew (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Statham, Jason The Pink Panther 2006 -Statham, Jason Gnomeo & Juliet 2011 -Statham, Jason Death Race 2008 -Statham, Jason Collateral 2004 -Statham, Jason The Italian Job 2003 -Statham, Jason The Expendables 2010 -Statham, Jason Cellular 2004 -Statham, Jason Transporter 2 2005 -Dreyfus, Julie Kill Bill: Vol. 1 2003 -Dreyfus, Julie Inglourious Basterds 2009 -Dreyfus, Julie Kill Bill: Vol. 2 2004 -Lee, Reggie (I) The Fast and the Furious 2001 -Lee, Reggie (I) Pirates of the Caribbean: At World's End 2007 -Lee, Reggie (I) Pirates of the Caribbean: Dead Man's Chest 2006 -Lee, Reggie (I) Star Trek 2009 -Lee, Reggie (I) Drag Me to Hell 2009 -Lee, Reggie (I) Life as We Know It 2010 -Lee, Reggie (I) Crazy, Stupid, Love. 2011 -Lee, Reggie (I) Tropic Thunder 2008 -Dencik, David War Horse 2011 -Dencik, David Män som hatar kvinnor 2009 -Dencik, David The Girl with the Dragon Tattoo 2011 -Dencik, David Tinker Tailor Soldier Spy 2011 -Farmer, Bill (I) Horton Hears a Who! 2008 -Farmer, Bill (I) Toy Story 2 1999 -Farmer, Bill (I) Brother Bear 2003 -Farmer, Bill (I) Hercules 1997 -Farmer, Bill (I) Kung Fu Panda 2008 -Farmer, Bill (I) RoboCop 1987 -Farmer, Bill (I) The Haunted Mansion 2003 -Farmer, Bill (I) The Lorax 2012 -Farmer, Bill (I) Home on the Range 2004 -Farmer, Bill (I) Cars 2006 -Farmer, Bill (I) The Hunchback of Notre Dame 1996 -Farmer, Bill (I) A Bug's Life 1998 -Farmer, Bill (I) Ice Age: The Meltdown 2006 -Farmer, Bill (I) Over the Hedge 2006 -Farmer, Bill (I) Meet the Robinsons 2007 -Farmer, Bill (I) Beauty and the Beast 1991 -Farmer, Bill (I) Toy Story 1995 -Farmer, Bill (I) Space Jam 1996 -Farmer, Bill (I) Monsters, Inc. 2001 -Farmer, Bill (I) Surf's Up 2007 -Shay, Jimmy (I) Shallow Hal 2001 -Shay, Jimmy (I) Me, Myself & Irene 2000 -Shay, Jimmy (I) The Heartbreak Kid 2007 -Kerson, Chris Zoolander 2001 -Kerson, Chris No Reservations 2007 -Kerson, Chris Sex and the City 2008 -Grevioux, Kevin The Mask 1994 -Grevioux, Kevin Underworld: Rise of the Lycans 2009 -Grevioux, Kevin Congo 1995 -Grevioux, Kevin Underworld 2003 -Grevioux, Kevin Men in Black II 2002 -Grevioux, Kevin The Flintstones in Viva Rock Vegas 2000 -Grevioux, Kevin Bowfinger 1999 -Grevioux, Kevin Batman Forever 1995 -Grevioux, Kevin Charlie's Angels 2000 -Koyama, John The Time Machine 2002 -Koyama, John The Last Samurai 2003 -Koyama, John The Book of Eli 2010 -Koyama, John Six Days Seven Nights 1998 -Nighy, Bill Pirates of the Caribbean: At World's End 2007 -Nighy, Bill Pirates of the Caribbean: Dead Man's Chest 2006 -Nighy, Bill Underworld: Rise of the Lycans 2009 -Nighy, Bill Underworld 2003 -Nighy, Bill Wrath of the Titans 2012 -Nighy, Bill The Best Exotic Marigold Hotel 2011 -Nighy, Bill Flushed Away 2006 -Nighy, Bill G-Force 2009 -Nighy, Bill The Hitchhiker's Guide to the Galaxy 2005 -Nighy, Bill Love Actually 2003 -Nighy, Bill Underworld: Evolution 2006 -Nighy, Bill Rango 2011 -Nighy, Bill Valkyrie 2008 -Nighy, Bill The Constant Gardener 2005 -Nighy, Bill Harry Potter and the Deathly Hallows: Part 1 2010 -Campbell, Larkin Lethal Weapon 4 1998 -Campbell, Larkin J. Edgar 2011 -Campbell, Larkin Beowulf 2007 -Roberts, Julia (I) Stepmom 1998 -Roberts, Julia (I) My Best Friend's Wedding 1997 -Roberts, Julia (I) The Ant Bully 2006 -Roberts, Julia (I) Ocean's Twelve 2004 -Roberts, Julia (I) Michael Collins 1996 -Roberts, Julia (I) Charlotte's Web 2006 -Roberts, Julia (I) Runaway Bride 1999 -Roberts, Julia (I) Pretty Woman 1990 -Roberts, Julia (I) Mona Lisa Smile 2003 -Roberts, Julia (I) Larry Crowne 2011 -Roberts, Julia (I) Charlie Wilson's War 2007 -Roberts, Julia (I) Ocean's Eleven 2001 -Roberts, Julia (I) Conspiracy Theory 1997 -Roberts, Julia (I) Mirror Mirror 2012 -Roberts, Julia (I) The Mexican 2001 -Roberts, Julia (I) Hook 1991 -Roberts, Julia (I) Erin Brockovich 2000 -Roberts, Julia (I) Notting Hill 1999 -Roberts, Julia (I) America's Sweethearts 2001 -Roberts, Julia (I) Eat Pray Love 2010 -Kopsa, Michael Rise of the Planet of the Apes 2011 -Kopsa, Michael Fantastic Four 2005 -Kopsa, Michael Watchmen 2009 -Kopsa, Michael Miracle 2004 -Campbell, Bruce (I) Intolerable Cruelty 2003 -Campbell, Bruce (I) The Ladykillers 2004 -Campbell, Bruce (I) Spider-Man 2 2004 -Campbell, Bruce (I) The Ant Bully 2006 -Campbell, Bruce (I) Congo 1995 -Campbell, Bruce (I) Cars 2 2011 -Campbell, Bruce (I) Fargo 1996 -Campbell, Bruce (I) The Amazing Spider-Man 2012 -Campbell, Bruce (I) Spider-Man 2002 -Campbell, Bruce (I) Sky High 2005 -Campbell, Bruce (I) Spider-Man 3 2007 -Campbell, Bruce (I) Cloudy with a Chance of Meatballs 2009 -Remar, James Blade: Trinity 2004 -Remar, James 2 Fast 2 Furious 2003 -Remar, James Transformers: Dark of the Moon 2011 -Remar, James X-Men: First Class 2011 -Remar, James What Lies Beneath 2000 -Remar, James Pineapple Express 2008 -Remar, James Mortal Kombat: Annihilation 1997 -Remar, James Ratatouille 2007 -Keyes, David (II) 102 Dalmatians 2000 -Keyes, David (II) The Wolfman 2010 -Keyes, David (II) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Keyes, David (II) Pirates of the Caribbean: Dead Man's Chest 2006 -Donno, Eddy Blue Streak 1999 -Donno, Eddy Sweet Home Alabama 2002 -Donno, Eddy Beverly Hills Cop II 1987 -Scott, Bob (III) The Incredibles 2004 -Scott, Bob (III) Monsters, Inc. 2001 -Scott, Bob (III) Cars 2006 -Scott, Bob (III) Up 2009 -Clendenin, Curt Bruce Almighty 2003 -Clendenin, Curt Big Momma's House 2 2006 -Clendenin, Curt Coach Carter 2005 -Clendenin, Curt Legally Blonde 2001 -Clendenin, Curt Dreamgirls 2006 -Clendenin, Curt Rumor Has It... 2005 -Clendenin, Curt K-PAX 2001 -Clendenin, Curt American Pie 2 2001 -Hough, Adrian Underworld: Evolution 2006 -Hough, Adrian Rise of the Planet of the Apes 2011 -Hough, Adrian AVPR: Aliens vs Predator - Requiem 2007 -Hough, Adrian X-Men: The Last Stand 2006 -Walken, Christopher The Rundown 2003 -Walken, Christopher Pulp Fiction 1994 -Walken, Christopher Catch Me If You Can 2002 -Walken, Christopher Hairspray 2007 -Walken, Christopher Kangaroo Jack 2003 -Walken, Christopher Sleepy Hollow 1999 -Walken, Christopher Man on Fire 2004 -Walken, Christopher A View to a Kill 1985 -Walken, Christopher Antz 1998 -Walken, Christopher America's Sweethearts 2001 -Walken, Christopher Mousehunt 1997 -Walken, Christopher The Stepford Wives 2004 -Walken, Christopher Wedding Crashers 2005 -Walken, Christopher Batman Returns 1992 -Walken, Christopher Click 2006 -Bush, Grand L. Lethal Weapon 2 1989 -Bush, Grand L. Licence to Kill 1989 -Bush, Grand L. Die Hard 1988 -Minkoff, Robert Risky Business 1983 -Minkoff, Robert Groundhog Day 1993 -Minkoff, Robert Child's Play 1988 -Minkoff, Robert My Best Friend's Wedding 1997 -Minkoff, Robert Running Scared 1986 -Minkoff, Robert Sleepless in Seattle 1993 -Minkoff, Robert Ferris Bueller's Day Off 1986 -Minkoff, Robert The Jackal 1997 -Minkoff, Robert U.S. Marshals 1998 -Jones, John Christopher In & Out 1997 -Jones, John Christopher The Village 2004 -Jones, John Christopher The Hurricane 1999 -Luyben, Kate The 40 Year Old Virgin 2005 -Luyben, Kate Shanghai Noon 2000 -Luyben, Kate Intolerable Cruelty 2003 -Callahan, E.J. The Kid 2000 -Callahan, E.J. Changeling 2008 -Callahan, E.J. Inspector Gadget 1999 -Callahan, E.J. City of Angels 1998 -Callahan, E.J. Congo 1995 -Callahan, E.J. Mousehunt 1997 -Callahan, E.J. Wild Wild West 1999 -Callahan, E.J. Yes Man 2008 -Shackelford, Eric (II) Role Models 2008 -Shackelford, Eric (II) Spider-Man 3 2007 -Shackelford, Eric (II) Pirates of the Caribbean: At World's End 2007 -Shackelford, Eric (II) Angels & Demons 2009 -Hager, Dave (I) Catch Me If You Can 2002 -Hager, Dave (I) Traffic 2000 -Hager, Dave (I) October Sky 1999 -Hager, Dave (I) Double Jeopardy 1999 -O'Donnell, Keir Paul Blart: Mall Cop 2009 -O'Donnell, Keir Wedding Crashers 2005 -O'Donnell, Keir The Break-Up 2006 -Michaels, Bert (I) Enchanted 2007 -Michaels, Bert (I) Saturday Night Fever 1977 -Michaels, Bert (I) College Road Trip 2008 -LeBlanc, Cynthia The Curious Case of Benjamin Button 2008 -LeBlanc, Cynthia The Dukes of Hazzard 2005 -LeBlanc, Cynthia Failure to Launch 2006 -LeBlanc, Cynthia Big Momma's House 2 2006 -LeBlanc, Cynthia The Final Destination 2009 -LeBlanc, Cynthia Glory Road 2006 -Miles, Aimee Spider-Man 3 2007 -Miles, Aimee G.I. Joe: The Rise of Cobra 2009 -Miles, Aimee Drag Me to Hell 2009 -Haig, Sid (I) Kill Bill: Vol. 2 2004 -Haig, Sid (I) Halloween 2007 -Haig, Sid (I) Jackie Brown 1997 -Tomlin, Lily The Ant Bully 2006 -Tomlin, Lily The Kid 2000 -Tomlin, Lily Gake no ue no Ponyo 2008 -Izzard, Eddie Cars 2 2011 -Izzard, Eddie Ocean's Thirteen 2007 -Izzard, Eddie Ocean's Twelve 2004 -Izzard, Eddie The Wild 2006 -Izzard, Eddie Valkyrie 2008 -Izzard, Eddie The Chronicles of Narnia: Prince Caspian 2008 -Smyj, Brian Hannibal 2001 -Smyj, Brian Frequency 2000 -Smyj, Brian The Bourne Ultimatum 2007 -Smyj, Brian Live Free or Die Hard 2007 -Smyj, Brian The Departed 2006 -Smyj, Brian Gladiator 2000 -Smyj, Brian A Beautiful Mind 2001 -Smyj, Brian Salt 2010 -Lenox, Adriane The Blind Side 2009 -Lenox, Adriane Alvin and the Chipmunks 2007 -Lenox, Adriane The Sorcerer's Apprentice 2010 -Zurer, Ayelet Vantage Point 2008 -Zurer, Ayelet Munich 2005 -Zurer, Ayelet Angels & Demons 2009 -Franco, James Spider-Man 2 2004 -Franco, James Date Night 2010 -Franco, James Eat Pray Love 2010 -Franco, James The Holiday 2006 -Franco, James Rise of the Planet of the Apes 2011 -Franco, James The Green Hornet 2011 -Franco, James Nights in Rodanthe 2008 -Franco, James Spider-Man 2002 -Franco, James Never Been Kissed 1999 -Franco, James Knocked Up 2007 -Franco, James Spider-Man 3 2007 -Franco, James Pineapple Express 2008 -Kemp, Tom (I) Shutter Island 2010 -Kemp, Tom (I) Ghosts of Girlfriends Past 2009 -Kemp, Tom (I) The Departed 2006 -Kemp, Tom (I) Mystic River 2003 -Philmar, Philip Charlie and the Chocolate Factory 2005 -Philmar, Philip Sweeney Todd: The Demon Barber of Fleet Street 2007 -Philmar, Philip John Carter 2012 -Smith, Sean (II) The Bourne Supremacy 2004 -Smith, Sean (II) Something's Gotta Give 2003 -Smith, Sean (II) Transformers 2007 -Smith, Sean (II) Cellular 2004 -Brophy, Brian Armageddon 1998 -Brophy, Brian Kiss the Girls 1997 -Brophy, Brian The Waterboy 1998 -Andrews, David (I) Hannibal 2001 -Andrews, David (I) Apollo 13 1995 -Andrews, David (I) A Walk to Remember 2002 -Andrews, David (I) Fight Club 1999 -Andrews, David (I) Terminator 3: Rise of the Machines 2003 -Lichtenberg, Eric Ali 2001 -Lichtenberg, Eric Clockstoppers 2002 -Lichtenberg, Eric Collateral Damage 2002 -Ferlito, Vanessa Julie & Julia 2009 -Ferlito, Vanessa Spider-Man 2 2004 -Ferlito, Vanessa Wall Street: Money Never Sleeps 2010 -Ferlito, Vanessa Madea Goes to Jail 2009 -Phillips, Christopher (III) Body of Lies 2008 -Phillips, Christopher (III) Evan Almighty 2007 -Phillips, Christopher (III) National Treasure: Book of Secrets 2007 -Phillips, Christopher (III) Live Free or Die Hard 2007 -McTavish, Graham Quantum of Solace 2008 -McTavish, Graham Lara Croft Tomb Raider: The Cradle of Life 2003 -McTavish, Graham Rambo 2008 -McTavish, Graham King Arthur 2004 -McTavish, Graham Secretariat 2010 -Beene, Dan We Were Soldiers 2002 -Beene, Dan The Secret Life of Bees 2008 -Beene, Dan Walk the Line 2005 -Bacarella, Mike Fred Claus 2007 -Bacarella, Mike The Relic 1997 -Bacarella, Mike Running Scared 1986 -Bacarella, Mike The Lake House 2006 -Bacarella, Mike The Fugitive 1993 -Bacarella, Mike Soul Food 1997 -Bacarella, Mike My Best Friend's Wedding 1997 -Servitto, Matt Confessions of a Shopaholic 2009 -Servitto, Matt The Siege 1998 -Servitto, Matt No Reservations 2007 -Servitto, Matt Enchanted 2007 -Mottram, Mark The Bourne Ultimatum 2007 -Mottram, Mark The Golden Compass 2007 -Mottram, Mark Clash of the Titans 2010 -Hammer, Armie J. Edgar 2011 -Hammer, Armie Mirror Mirror 2012 -Hammer, Armie The Social Network 2010 -Boston, David (IV) Enchanted 2007 -Boston, David (IV) The Pink Panther 2006 -Boston, David (IV) Spider-Man 2 2004 -Boston, David (IV) World Trade Center 2006 -Boston, David (IV) The Town 2010 -Boston, David (IV) Home Alone 2: Lost in New York 1992 -Boston, David (IV) The Brave One 2007 -Boston, David (IV) The Departed 2006 -Boston, David (IV) 13 Going on 30 2004 -Boston, David (IV) The Bourne Ultimatum 2007 -Boston, David (IV) Mr. Deeds 2002 -Boston, David (IV) Two Weeks Notice 2002 -Taylor, Courtenay The Incredible Hulk 2008 -Taylor, Courtenay Van Helsing 2004 -Taylor, Courtenay Spider-Man 3 2007 -Taylor, Courtenay The Golden Compass 2007 -Morshower, Glenn X-Men: First Class 2011 -Morshower, Glenn Godzilla 1998 -Morshower, Glenn Black Hawk Down 2001 -Morshower, Glenn The Core 2003 -Morshower, Glenn Transformers: Revenge of the Fallen 2009 -Morshower, Glenn The Island 2005 -Morshower, Glenn Transformers: Dark of the Moon 2011 -Morshower, Glenn Moneyball 2011 -Morshower, Glenn Air Force One 1997 -Morshower, Glenn Pearl Harbor 2001 -Morshower, Glenn Transformers 2007 -Morshower, Glenn Hostage 2005 -Morshower, Glenn Good Night, and Good Luck. 2005 -Farley, John (I) The Waterboy 1998 -Farley, John (I) Little Nicky 2000 -Farley, John (I) Beverly Hills Ninja 1997 -Farley, John (I) Jack and Jill 2011 -Farley, John (I) Get Smart 2008 -Farley, John (I) I Now Pronounce You Chuck & Larry 2007 -Farley, John (I) The Animal 2001 -Farley, John (I) You Don't Mess with the Zohan 2008 -Coates, Kim Black Hawk Down 2001 -Coates, Kim Waterworld 1995 -Coates, Kim The Island 2005 -Coates, Kim Resident Evil: Afterlife 2010 -Coates, Kim Open Range 2003 -Coates, Kim Pearl Harbor 2001 -Coates, Kim Silent Hill 2006 -Coates, Kim Hostage 2005 -Coates, Kim Bad Boys 1995 -McCarthy, Andrew (I) The Spiderwick Chronicles 2008 -McCarthy, Andrew (I) Mannequin 1987 -McCarthy, Andrew (I) Pretty in Pink 1986 -Ferrin, Nick Couples Retreat 2009 -Ferrin, Nick Fred Claus 2007 -Ferrin, Nick The Break-Up 2006 -Ferrin, Nick Public Enemies 2009 -Ferrin, Nick The Lake House 2006 -Meara, Anne Like Mike 2002 -Meara, Anne Night at the Museum 2006 -Meara, Anne Zoolander 2001 -Csokas, Marton The Lord of the Rings: The Fellowship of the Ring 2001 -Csokas, Marton The Bourne Supremacy 2004 -Csokas, Marton Alice in Wonderland 2010 -Csokas, Marton Star Wars: Episode II - Attack of the Clones 2002 -Csokas, Marton Kangaroo Jack 2003 -Csokas, Marton Kingdom of Heaven 2005 -Csokas, Marton xXx 2002 -Csokas, Marton The Lord of the Rings: The Return of the King 2003 -Saito, James (I) The Devil's Advocate 1997 -Saito, James (I) Home Alone 3 1997 -Saito, James (I) Pearl Harbor 2001 -Saito, James (I) The Thomas Crown Affair 1999 -Saito, James (I) Die Hard: With a Vengeance 1995 -Coburn, James (I) Snow Dogs 2002 -Coburn, James (I) Eraser 1996 -Coburn, James (I) Monsters, Inc. 2001 -Coburn, James (I) The Nutty Professor 1996 -Hiltz, Nichole Something's Gotta Give 2003 -Hiltz, Nichole Austin Powers in Goldmember 2002 -Hiltz, Nichole Dude, Where's My Car? 2000 -Hiltz, Nichole Shallow Hal 2001 -Mara, Kate We Are Marshall 2006 -Mara, Kate Brokeback Mountain 2005 -Mara, Kate Iron Man 2 2010 -Gordon, Jay (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Gordon, Jay (I) Spider-Man 2 2004 -Gordon, Jay (I) Spider-Man 2002 -Gordon, Jay (I) Drag Me to Hell 2009 -Gordon, Jay (I) Minority Report 2002 -Rickles, Don Toy Story 3 2010 -Rickles, Don Toy Story 2 1999 -Rickles, Don Toy Story 1995 -Rickles, Don Zookeeper 2011 -Schram, James The Bourne Ultimatum 2007 -Schram, James Confessions of a Shopaholic 2009 -Schram, James Eat Pray Love 2010 -Schram, James Salt 2010 -Arias, Yancey The Time Machine 2002 -Arias, Yancey Legion 2009 -Arias, Yancey Live Free or Die Hard 2007 -Northey, Michael P. Alvin and the Chipmunks: Chipwrecked 2011 -Northey, Michael P. Catwoman 2004 -Northey, Michael P. The Santa Clause 2 2002 -Hobbs, Robert (II) District 9 2009 -Hobbs, Robert (II) Safe House 2012 -Hobbs, Robert (II) Invictus 2009 -Marshall, Dan (II) Shutter Island 2010 -Marshall, Dan (II) Knight and Day 2010 -Marshall, Dan (II) Paul Blart: Mall Cop 2009 -Marshall, Dan (II) The Adjustment Bureau 2011 -Marshall, Dan (II) Zookeeper 2011 -Marshall, Dan (II) The Town 2010 -Marshall, Dan (II) Wall Street: Money Never Sleeps 2010 -Marshall, Dan (II) Bride Wars 2009 -Marshall, Dan (II) The Fighter 2010 -Marshall, Dan (II) The Game Plan 2007 -Marshall, Dan (II) Ghosts of Girlfriends Past 2009 -Marshall, Dan (II) Grown Ups 2010 -Barry, Nina The Family Man 2000 -Barry, Nina My Sister's Keeper 2009 -Barry, Nina Puss in Boots 2011 -Vergara, Sofía Madea Goes to Jail 2009 -Vergara, Sofía Happy Feet Two 2011 -Vergara, Sofía New Year's Eve 2011 -Vergara, Sofía The Smurfs 2011 -Vergara, Sofía The Three Stooges 2012 -Vergara, Sofía Four Brothers 2005 -De Niro, Robert The Good Shepherd 2006 -De Niro, Robert Wag the Dog 1997 -De Niro, Robert Meet the Parents 2000 -De Niro, Robert Men of Honor 2000 -De Niro, Robert Stardust 2007 -De Niro, Robert Shark Tale 2004 -De Niro, Robert The Score 2001 -De Niro, Robert Meet the Fockers 2004 -De Niro, Robert Little Fockers 2010 -De Niro, Robert Hide and Seek 2005 -De Niro, Robert Analyze This 1999 -De Niro, Robert Sleepers 1996 -De Niro, Robert Cop Land 1997 -De Niro, Robert Fahrenheit 9/11 2004 -De Niro, Robert New Year's Eve 2011 -De Niro, Robert Ronin 1998 -De Niro, Robert Righteous Kill 2008 -De Niro, Robert Heat 1995 -De Niro, Robert Showtime 2002 -De Niro, Robert Limitless 2011 -De Niro, Robert Jackie Brown 1997 -Powell, Josef (I) The Ides of March 2011 -Powell, Josef (I) Brother Bear 2003 -Powell, Josef (I) Norbit 2007 -Gomez, Rick (II) Magnificent Desolation: Walking on the Moon 3D 2005 -Gomez, Rick (II) Sin City 2005 -Gomez, Rick (II) Transformers 2007 -Hutton, Rif Curious George 2006 -Hutton, Rif Rio 2011 -Hutton, Rif The Princess and the Frog 2009 -Thomas, Eddie Kaye American Reunion 2012 -Thomas, Eddie Kaye American Wedding 2003 -Thomas, Eddie Kaye American Pie 1999 -Thomas, Eddie Kaye American Pie 2 2001 -Hall, Justin Rodgers Star Trek 2009 -Hall, Justin Rodgers The Terminal 2004 -Hall, Justin Rodgers Big Momma's House 2 2006 -Hall, Justin Rodgers The Island 2005 -Hall, Justin Rodgers Dreamgirls 2006 -Hall, Justin Rodgers Coach Carter 2005 -Hall, Justin Rodgers Tears of the Sun 2003 -Hall, Justin Rodgers The Ugly Truth 2009 -Hall, Justin Rodgers I, Robot 2004 -Crichlow, Brenda Elf 2003 -Crichlow, Brenda Look Who's Talking 1989 -Crichlow, Brenda Firewall 2006 -Crichlow, Brenda Fantastic Four 2005 -Wright, Carl (I) Barbershop 2: Back in Business 2004 -Wright, Carl (I) Soul Food 1997 -Wright, Carl (I) Big Momma's House 2000 -Wright, Carl (I) Barbershop 2002 -Palmer, Teresa (I) The Sorcerer's Apprentice 2010 -Palmer, Teresa (I) Bedtime Stories 2008 -Palmer, Teresa (I) I Am Number Four 2011 -Roberts, Shawn (II) Jumper 2008 -Roberts, Shawn (II) X-Men 2000 -Roberts, Shawn (II) Percy Jackson & the Olympians: The Lightning Thief 2010 -Roberts, Shawn (II) Cheaper by the Dozen 2 2005 -Roberts, Shawn (II) Resident Evil: Afterlife 2010 -Brazeau, Jay Snow Dogs 2002 -Brazeau, Jay Watchmen 2009 -Brazeau, Jay Double Jeopardy 1999 -Brazeau, Jay Insomnia 2002 -Rodriguez, Ramon (II) Transformers: Revenge of the Fallen 2009 -Rodriguez, Ramon (II) Battle Los Angeles 2011 -Rodriguez, Ramon (II) The Taking of Pelham 1 2 3 2009 -Vera, Julia The Net 1995 -Vera, Julia Speed 1994 -Vera, Julia Blow 2001 -Elizabeth, Shannon (I) Scary Movie 2000 -Elizabeth, Shannon (I) American Reunion 2012 -Elizabeth, Shannon (I) Johnson Family Vacation 2004 -Elizabeth, Shannon (I) American Pie 2 2001 -Elizabeth, Shannon (I) American Pie 1999 -Elizabeth, Shannon (I) Love Actually 2003 -Newham, David E. Charlie Wilson's War 2007 -Newham, David E. Ocean's Thirteen 2007 -Newham, David E. Get Smart 2008 -Newham, David E. Eagle Eye 2008 -Bewley, Charlie The Twilight Saga: Breaking Dawn - Part 1 2011 -Bewley, Charlie New Moon 2009 -Bewley, Charlie The Twilight Saga: Eclipse 2010 -Caballero, Jordi Spider-Man 3 2007 -Caballero, Jordi Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Caballero, Jordi Poseidon 2006 -Pungitore, John The Game Plan 2007 -Pungitore, John Fever Pitch 2005 -Pungitore, John Mystic River 2003 -Rich, Nicholas Blue Streak 1999 -Rich, Nicholas Paul Blart: Mall Cop 2009 -Rich, Nicholas National Treasure: Book of Secrets 2007 -Rich, Nicholas Hancock 2008 -Rich, Nicholas Rush Hour 2 2001 -Rich, Nicholas Get Smart 2008 -Rich, Nicholas World Trade Center 2006 -Kazurinsky, Tim Police Academy 2: Their First Assignment 1985 -Kazurinsky, Tim About Last Night... 1986 -Kazurinsky, Tim Police Academy 3: Back in Training 1986 -Mahon, Christina Invincible 2006 -Mahon, Christina Unbreakable 2000 -Mahon, Christina National Treasure 2004 -Crane, Simon (I) GoldenEye 1995 -Crane, Simon (I) Titanic 1997 -Crane, Simon (I) The Living Daylights 1987 -Coates, Conrad Saw II 2005 -Coates, Conrad Percy Jackson & the Olympians: The Lightning Thief 2010 -Coates, Conrad This Means War 2012 -Coates, Conrad TRON: Legacy 2010 -Irby, Michael Flightplan 2005 -Irby, Michael Law Abiding Citizen 2009 -Irby, Michael Fast Five 2011 -Harris, Estelle Toy Story 3 2010 -Harris, Estelle Toy Story 2 1999 -Harris, Estelle Brother Bear 2003 -Harris, Estelle Home on the Range 2004 -Krishnan, Sean T. Changing Lanes 2002 -Krishnan, Sean T. Transformers: Revenge of the Fallen 2009 -Krishnan, Sean T. The Dictator 2012 -Travolta, Margaret Catch Me If You Can 2002 -Travolta, Margaret Mercury Rising 1998 -Travolta, Margaret Wild Hogs 2007 -Travolta, Margaret Michael 1996 -Travolta, Margaret High Fidelity 2000 -Travolta, Margaret Traffic 2000 -Travolta, Margaret Ocean's Thirteen 2007 -Travolta, Margaret Swordfish 2001 -Travolta, Margaret Enchanted 2007 -Paré, Jean Michel Snow Dogs 2002 -Paré, Jean Michel 300 2006 -Paré, Jean Michel Journey to the Center of the Earth 2008 -Bennett, Jeff (I) Enchanted 2007 -Bennett, Jeff (I) The Jungle Book 2 2003 -Bennett, Jeff (I) Curious George 2006 -Bennett, Jeff (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Bennett, Jeff (I) Open Season 3 2010 -Bennett, Jeff (I) Chicken Little 2005 -Bennett, Jeff (I) Bolt 2008 -Bennett, Jeff (I) Return to Never Land 2002 -Bennett, Jeff (I) TMNT 2007 -Graham, Kat Johnson Family Vacation 2004 -Graham, Kat 17 Again 2009 -Graham, Kat The Parent Trap 1998 -Morrison, Temuera Star Wars: Episode III - Revenge of the Sith 2005 -Morrison, Temuera Couples Retreat 2009 -Morrison, Temuera Vertical Limit 2000 -Morrison, Temuera Six Days Seven Nights 1998 -Morrison, Temuera Green Lantern 2011 -Morrison, Temuera Star Wars: Episode II - Attack of the Clones 2002 -Morrison, Temuera Speed 2: Cruise Control 1997 -Graham, Kas Sherlock Holmes 2009 -Graham, Kas Gulliver's Travels 2010 -Graham, Kas Sweeney Todd: The Demon Barber of Fleet Street 2007 -Graham, Kas Robin Hood 2010 -Graham, Kas The Da Vinci Code 2006 -Underdue, Towanda Body of Lies 2008 -Underdue, Towanda The Replacements 2000 -Underdue, Towanda National Treasure: Book of Secrets 2007 -Underdue, Towanda Law Abiding Citizen 2009 -Underdue, Towanda Step Up 2006 -Underdue, Towanda Lady in the Water 2006 -Underdue, Towanda Ladder 49 2004 -Tom, Lauren Kung Fu Panda 2 2011 -Tom, Lauren Bad Santa 2003 -Tom, Lauren The Wild Thornberrys Movie 2002 -Tom, Lauren Wall Street 1987 -Huff, Tommy J. Money Talks 1997 -Huff, Tommy J. Eraser 1996 -Huff, Tommy J. Speed 2: Cruise Control 1997 -Qureshi, Eliyas The Dictator 2012 -Qureshi, Eliyas The Interpreter 2005 -Qureshi, Eliyas Wanted 2008 -Qureshi, Eliyas Wall Street: Money Never Sleeps 2010 -Mayanja, Isaac Amistad 1997 -Mayanja, Isaac Face/Off 1997 -Mayanja, Isaac Batman & Robin 1997 -DeLisle, Grey Cats & Dogs: The Revenge of Kitty Galore 2010 -DeLisle, Grey Fantastic Four 2005 -DeLisle, Grey Beverly Hills Chihuahua 2008 -DeLisle, Grey TMNT 2007 -DeLisle, Grey Star Wars: Episode I - The Phantom Menace 1999 -DeLisle, Grey Happy Feet 2006 -DeLisle, Grey Robots 2005 -DeLisle, Grey Transformers: Revenge of the Fallen 2009 -DeLisle, Grey Bolt 2008 -DeLisle, Grey G.I. Joe: The Rise of Cobra 2009 -DeLisle, Grey Speed Racer 2008 -DeLisle, Grey Clash of the Titans 2010 -Fox, Edward (I) Lost in Space 1998 -Fox, Edward (I) Gandhi 1982 -Fox, Edward (I) Never Say Never Again 1983 -McNulty, Tom (III) Little Nicky 2000 -McNulty, Tom (III) Mr. Deeds 2002 -McNulty, Tom (III) The Animal 2001 -Turton, Kett Blade: Trinity 2004 -Turton, Kett Firewall 2006 -Turton, Kett Wrath of the Titans 2012 -MacNeille, Tress Rugrats in Paris: The Movie - Rugrats II 2000 -MacNeille, Tress The Rugrats Movie 1998 -MacNeille, Tress Bee Movie 2007 -MacNeille, Tress Rugrats Go Wild 2003 -MacNeille, Tress The Simpsons Movie 2007 -MacNeille, Tress Recess: School's Out 2001 -MacNeille, Tress The Ant Bully 2006 -Robinson, Bumper X-Men Origins: Wolverine 2009 -Robinson, Bumper Behind Enemy Lines 2001 -Robinson, Bumper G.I. Joe: The Rise of Cobra 2009 -Robinson, Bumper Brother Bear 2003 -Robinson, Bumper Cats & Dogs: The Revenge of Kitty Galore 2010 -Coleman, Brandi Battle Los Angeles 2011 -Coleman, Brandi Deja Vu 2006 -Coleman, Brandi Glory Road 2006 -Moore, Julianne Crazy, Stupid, Love. 2011 -Moore, Julianne Eagle Eye 2008 -Moore, Julianne Hannibal 2001 -Moore, Julianne Magnolia 1999 -Moore, Julianne Evolution 2001 -Moore, Julianne The Fugitive 1993 -Moore, Julianne The Hours 2002 -Moore, Julianne The Lost World: Jurassic Park 1997 -Moore, Julianne Boogie Nights 1997 -Moore, Julianne The Forgotten 2004 -Cross, David (II) Small Soldiers 1998 -Cross, David (II) Curious George 2006 -Cross, David (II) Alvin and the Chipmunks: Chipwrecked 2011 -Cross, David (II) Alvin and the Chipmunks 2007 -Cross, David (II) Kung Fu Panda 2008 -Cross, David (II) Eternal Sunshine of the Spotless Mind 2004 -Cross, David (II) Kung Fu Panda 2 2011 -Cross, David (II) The Cable Guy 1996 -Cross, David (II) Dr. Dolittle 2 2001 -Cross, David (II) Alvin and the Chipmunks: The Squeakquel 2009 -Cross, David (II) Scary Movie 2 2001 -Cross, David (II) Men in Black 1997 -Cross, David (II) Megamind 2010 -Cross, David (II) Men in Black II 2002 -Stone, Sean (I) JFK 1991 -Stone, Sean (I) Wall Street 1987 -Stone, Sean (I) Any Given Sunday 1999 -Stone, Sean (I) Wall Street: Money Never Sleeps 2010 -Jackson, Janet (I) Malcolm X 1992 -Jackson, Janet (I) Why Did I Get Married Too? 2010 -Jackson, Janet (I) Nutty Professor II: The Klumps 2000 -Bakaitis, Helmut Happy Feet 2006 -Bakaitis, Helmut The Matrix Revolutions 2003 -Bakaitis, Helmut The Matrix Reloaded 2003 -Kayani, Tanzeel Step Up 3D 2010 -Kayani, Tanzeel Cop Out 2010 -Kayani, Tanzeel Get Him to the Greek 2010 -Kayani, Tanzeel Anger Management 2003 -Pyle, Missi (I) 50 First Dates 2004 -Pyle, Missi (I) Along Came Polly 2004 -Pyle, Missi (I) As Good as It Gets 1997 -Pyle, Missi (I) Dodgeball: A True Underdog Story 2004 -Pyle, Missi (I) Bringing Down the House 2003 -Pyle, Missi (I) Big Fish 2003 -Pyle, Missi (I) Galaxy Quest 1999 -Pyle, Missi (I) The Artist 2011 -Pyle, Missi (I) Charlie and the Chocolate Factory 2005 -Pyle, Missi (I) Anchorman: The Legend of Ron Burgundy 2004 -Ramsey, Marion Police Academy 2: Their First Assignment 1985 -Ramsey, Marion Police Academy 1984 -Ramsey, Marion Police Academy 3: Back in Training 1986 -Morayta, Paco Romancing the Stone 1984 -Morayta, Paco The Mask of Zorro 1998 -Morayta, Paco Romeo + Juliet 1996 -O'Donohue, Ryan A Bug's Life 1998 -O'Donohue, Ryan Recess: School's Out 2001 -O'Donohue, Ryan Toy Story 1995 -Price, Joe Allen The Princess Diaries 2001 -Price, Joe Allen The Princess Diaries 2: Royal Engagement 2004 -Price, Joe Allen Raising Helen 2004 -Shale, Kerry 102 Dalmatians 2000 -Shale, Kerry Blade II 2002 -Shale, Kerry Yentl 1983 -Shale, Kerry Constantine 2005 -Shale, Kerry The Living Daylights 1987 -Tay, Sharon Eagle Eye 2008 -Tay, Sharon Independence Day 1996 -Tay, Sharon Fast Five 2011 -Fielder, Harry Mission: Impossible 1996 -Fielder, Harry The Jackal 1997 -Fielder, Harry 101 Dalmatians 1996 -Fielder, Harry Entrapment 1999 -Fielder, Harry Superman 1978 -Fielder, Harry Evita 1996 -Fielder, Harry Superman II 1980 -Fielder, Harry Star Wars 1977 -MacLaine, Shirley Bewitched 2005 -MacLaine, Shirley Terms of Endearment 1983 -MacLaine, Shirley In Her Shoes 2005 -MacLaine, Shirley Rumor Has It... 2005 -Chapman, Kevin (I) Unstoppable 2010 -Chapman, Kevin (I) Ladder 49 2004 -Chapman, Kevin (I) The Cider House Rules 1999 -Chapman, Kevin (I) Mystic River 2003 -Chapman, Kevin (I) In the Bedroom 2001 -Chapman, Kevin (I) Blow 2001 -Tatasciore, Fred Curious George 2006 -Tatasciore, Fred X-Men Origins: Wolverine 2009 -Tatasciore, Fred Enchanted 2007 -Tatasciore, Fred Pirates of the Caribbean: At World's End 2007 -Tatasciore, Fred Beowulf 2007 -Tatasciore, Fred Transformers: Revenge of the Fallen 2009 -Tatasciore, Fred Terminator 3: Rise of the Machines 2003 -Tatasciore, Fred Cloudy with a Chance of Meatballs 2009 -Tatasciore, Fred Batman Begins 2005 -Tatasciore, Fred Transformers: Dark of the Moon 2011 -Tatasciore, Fred Team America: World Police 2004 -Tatasciore, Fred The Incredible Hulk 2008 -Tatasciore, Fred Flushed Away 2006 -Tatasciore, Fred Van Helsing 2004 -Tatasciore, Fred Kung Fu Panda 2008 -Tatasciore, Fred TMNT 2007 -Tatasciore, Fred Terminator Salvation 2009 -Tatasciore, Fred Madagascar 2005 -Tatasciore, Fred Fantastic Four 2005 -Tatasciore, Fred Kung Fu Panda 2 2011 -Tatasciore, Fred Quantum of Solace 2008 -Tatasciore, Fred The Ant Bully 2006 -Tatasciore, Fred Madagascar: Escape 2 Africa 2008 -Tatasciore, Fred Robots 2005 -Tatasciore, Fred The Amazing Spider-Man 2012 -Tatasciore, Fred The Golden Compass 2007 -Tatasciore, Fred Happy Feet 2006 -Tatasciore, Fred The Princess and the Frog 2009 -Tatasciore, Fred Over the Hedge 2006 -Tatasciore, Fred The Wild 2006 -Tatasciore, Fred Speed Racer 2008 -Tatasciore, Fred Meet the Robinsons 2007 -Tatasciore, Fred Constantine 2005 -Tatasciore, Fred Ghost Rider 2007 -Tatasciore, Fred Charlotte's Web 2006 -Tatasciore, Fred Barnyard 2006 -Tatasciore, Fred Spider-Man 3 2007 -Tatasciore, Fred Clash of the Titans 2010 -Markova, Rimma Samyy luchshiy film 2008 -Markova, Rimma Dnevnoy dozor 2006 -Markova, Rimma Nochnoy dozor 2004 -Melton, Nikki Taylor Pirates of the Caribbean: Dead Man's Chest 2006 -Melton, Nikki Taylor Halloween 2007 -Melton, Nikki Taylor Ocean's Twelve 2004 -Manheim, Camryn Scary Movie 3 2003 -Manheim, Camryn Mercury Rising 1998 -Manheim, Camryn Sudden Impact 1983 -Manheim, Camryn Eraser 1996 -Callow, Simon The Phantom of the Opera 2004 -Callow, Simon Shakespeare in Love 1998 -Callow, Simon Notting Hill 1999 -Callow, Simon Four Weddings and a Funeral 1994 -Callow, Simon Ace Ventura: When Nature Calls 1995 -Callow, Simon Amadeus 1984 -Callow, Simon A Room with a View 1985 -Love, Darlene Lethal Weapon 4 1998 -Love, Darlene Lethal Weapon 2 1989 -Love, Darlene Lethal Weapon 3 1992 -Tsarouchas, Angelo Cinderella Man 2005 -Tsarouchas, Angelo The Score 2001 -Tsarouchas, Angelo The Recruit 2003 -Tsarouchas, Angelo John Q 2002 -Embree, James John Carter 2012 -Embree, James Shanghai Knights 2003 -Embree, James Lara Croft: Tomb Raider 2001 -Embree, James Johnny English 2003 -Embree, James Spy Game 2001 -Embree, James Batman Begins 2005 -Embree, James Prometheus 2012 -Embree, James Saving Private Ryan 1998 -Connolly, Billy (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Connolly, Billy (I) Pocahontas 1995 -Connolly, Billy (I) Indecent Proposal 1993 -Connolly, Billy (I) Gulliver's Travels 2010 -Connolly, Billy (I) The Last Samurai 2003 -Connolly, Billy (I) Beverly Hills Ninja 1997 -Connolly, Billy (I) Garfield: A Tail of Two Kitties 2006 -Connolly, Billy (I) Open Season 2006 -Connolly, Billy (I) The X Files: I Want to Believe 2008 -Connolly, Billy (I) Brave 2012 -Attal, Yvan The Interpreter 2005 -Attal, Yvan Munich 2005 -Attal, Yvan Rush Hour 3 2007 -Semenovich, Anna Rzhevskiy protiv Napoleona 2012 -Semenovich, Anna Ironiya sudby. Prodolzhenie 2007 -Semenovich, Anna Nochnoy dozor 2004 -Semenovich, Anna Gitler kaput! 2008 -Icey, Berglind The Hot Chick 2002 -Icey, Berglind The Master of Disguise 2002 -Icey, Berglind The Animal 2001 -Glekas, Nasi Enemy of the State 1998 -Glekas, Nasi The Replacements 2000 -Glekas, Nasi Evolution 2001 -Finnerty, Dan (II) The Wedding Planner 2001 -Finnerty, Dan (II) Starsky & Hutch 2004 -Finnerty, Dan (II) The Terminal 2004 -Finnerty, Dan (II) Old School 2003 -Finnerty, Dan (II) The Hangover 2009 -Parker, Craig (I) The Lord of the Rings: The Two Towers 2002 -Parker, Craig (I) Underworld: Rise of the Lycans 2009 -Parker, Craig (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Sussman, Kevin Almost Famous 2000 -Sussman, Kevin Artificial Intelligence: AI 2001 -Sussman, Kevin Made of Honor 2008 -Sussman, Kevin Changing Lanes 2002 -Sussman, Kevin Killers 2010 -Sussman, Kevin Burn After Reading 2008 -Sussman, Kevin Sweet Home Alabama 2002 -Rusk, Adrienne The Social Network 2010 -Rusk, Adrienne Water for Elephants 2011 -Rusk, Adrienne Hot Tub Time Machine 2010 -Capodice, John Speed 1994 -Capodice, John Wall Street 1987 -Capodice, John Enemy of the State 1998 -Capodice, John Independence Day 1996 -Cassidy, Katie (I) Monte Carlo 2011 -Cassidy, Katie (I) Click 2006 -Cassidy, Katie (I) A Nightmare on Elm Street 2010 -Castro, Mary The Longest Yard 2005 -Castro, Mary Cellular 2004 -Castro, Mary Epic Movie 2007 -Castro, Mary Must Love Dogs 2005 -Castro, Mary The Island 2005 -Newman, Paul (I) Absence of Malice 1981 -Newman, Paul (I) Message in a Bottle 1999 -Newman, Paul (I) Road to Perdition 2002 -Newman, Paul (I) Cars 2006 -Newman, Paul (I) Magnificent Desolation: Walking on the Moon 3D 2005 -Newman, Paul (I) Roving Mars 2006 -Dano, Paul Little Miss Sunshine 2006 -Dano, Paul Cowboys & Aliens 2011 -Dano, Paul There Will Be Blood 2007 -Dano, Paul Knight and Day 2010 -Dano, Paul Where the Wild Things Are 2009 -Foree, Ken Dawn of the Dead 2004 -Foree, Ken Halloween 2007 -Foree, Ken Water for Elephants 2011 -Houseman, Tyson New Moon 2009 -Houseman, Tyson The Twilight Saga: Breaking Dawn - Part 1 2011 -Houseman, Tyson The Twilight Saga: Eclipse 2010 -Hibbert, Stephen Austin Powers: The Spy Who Shagged Me 1999 -Hibbert, Stephen Dr. Seuss' The Cat in the Hat 2003 -Hibbert, Stephen National Treasure: Book of Secrets 2007 -Hibbert, Stephen Pulp Fiction 1994 -Posehn, Brian The Wedding Singer 1998 -Posehn, Brian 4: Rise of the Silver Surfer 2007 -Posehn, Brian Surf's Up 2007 -Posehn, Brian Brother Bear 2003 -Gries, Jon The Rundown 2003 -Gries, Jon Napoleon Dynamite 2004 -Gries, Jon Running Scared 1986 -Gries, Jon Men in Black 1997 -Renner, Jeremy Mission: Impossible - Ghost Protocol 2011 -Renner, Jeremy S.W.A.T. 2003 -Renner, Jeremy The Avengers 2012 -Renner, Jeremy The Town 2010 -Renner, Jeremy Thor 2011 -Marshall, Kathleen (I) New Year's Eve 2011 -Marshall, Kathleen (I) Rat Race 2001 -Marshall, Kathleen (I) Runaway Bride 1999 -Marshall, Kathleen (I) The Princess Diaries 2001 -Marshall, Kathleen (I) Raising Helen 2004 -Marshall, Kathleen (I) Never Been Kissed 1999 -Marshall, Kathleen (I) The Princess Diaries 2: Royal Engagement 2004 -Marshall, Kathleen (I) Pretty Woman 1990 -Anvar, Cas Source Code 2011 -Anvar, Cas The Terminal 2004 -Anvar, Cas Transformers: Revenge of the Fallen 2009 -Siddig, Alexander Vertical Limit 2000 -Siddig, Alexander Reign of Fire 2002 -Siddig, Alexander Kingdom of Heaven 2005 -Siddig, Alexander Syriana 2005 -Siddig, Alexander Clash of the Titans 2010 -Young, Damian Sex and the City 2008 -Young, Damian Unbreakable 2000 -Young, Damian Snow Day 2000 -Duggan, Matt Jarhead 2005 -Duggan, Matt Ocean's Thirteen 2007 -Duggan, Matt The Perfect Storm 2000 -Patton, Paula Mission: Impossible - Ghost Protocol 2011 -Patton, Paula Deja Vu 2006 -Patton, Paula Precious 2009 -Morse, David (I) The Long Kiss Goodnight 1996 -Morse, David (I) Disturbia 2007 -Morse, David (I) Twelve Monkeys 1995 -Morse, David (I) The Negotiator 1998 -Morse, David (I) Contact 1997 -Morse, David (I) The Green Mile 1999 -Morse, David (I) The Rock 1996 -Hall, Shashawnee Evan Almighty 2007 -Hall, Shashawnee The Amazing Spider-Man 2012 -Hall, Shashawnee Bruce Almighty 2003 -Canty, Patrick Bride Wars 2009 -Canty, Patrick 21 2008 -Canty, Patrick Ghosts of Girlfriends Past 2009 -Canty, Patrick Paul Blart: Mall Cop 2009 -Roberson, Bill Patch Adams 1998 -Roberson, Bill Forrest Gump 1994 -Roberson, Bill Radio 2003 -Roberson, Bill The Patriot 2000 -Harden, Marcia Gay Meet Joe Black 1998 -Harden, Marcia Gay The First Wives Club 1996 -Harden, Marcia Gay Flubber 1997 -Harden, Marcia Gay The Mist 2007 -Harden, Marcia Gay Space Cowboys 2000 -Harden, Marcia Gay Mona Lisa Smile 2003 -Harden, Marcia Gay Mystic River 2003 -Briscoe, Brent National Treasure: Book of Secrets 2007 -Briscoe, Brent The Green Mile 1999 -Briscoe, Brent Spider-Man 2 2004 -Briscoe, Brent Yes Man 2008 -Briscoe, Brent Double Take 2001 -Valenza, Tasia Spider-Man 2 2004 -Valenza, Tasia Star Wars: Episode I - The Phantom Menace 1999 -Valenza, Tasia Spider-Man 3 2007 -Berns, Gerald The Net 1995 -Berns, Gerald Eraser 1996 -Berns, Gerald Beverly Hills Cop 1984 -Berns, Gerald Rocky IV 1985 -Baker, Max The Time Machine 2002 -Baker, Max Constantine 2005 -Baker, Max Pirates of the Caribbean: Dead Man's Chest 2006 -Baker, Max The Island 2005 -Kirby, Bruno Donnie Brasco 1997 -Kirby, Bruno Stuart Little 1999 -Kirby, Bruno Sleepers 1996 -Clifford, Matt (II) Anger Management 2003 -Clifford, Matt (II) Cellular 2004 -Clifford, Matt (II) Primary Colors 1998 -Hayes, Phil (I) Curious George 2006 -Hayes, Phil (I) Unforgiven 1992 -Hayes, Phil (I) Miracle 2004 -Hurt, Mary Beth The Exorcism of Emily Rose 2005 -Hurt, Mary Beth Lady in the Water 2006 -Hurt, Mary Beth Autumn in New York 2000 -Hurt, Mary Beth The Family Man 2000 -Hurt, Mary Beth Red Dragon 2002 -Zien, Chip The Siege 1998 -Zien, Chip United 93 2006 -Zien, Chip Snake Eyes 1998 -Antoon, Jason The Sum of All Fears 2002 -Antoon, Jason Two Weeks Notice 2002 -Antoon, Jason Minority Report 2002 -Lychnikoff, Pasha D. Air Force One 1997 -Lychnikoff, Pasha D. Indiana Jones and the Kingdom of the Crystal Skull 2008 -Lychnikoff, Pasha D. Star Trek 2009 -Lychnikoff, Pasha D. Charlie Wilson's War 2007 -Lychnikoff, Pasha D. Fun with Dick and Jane 2005 -Lychnikoff, Pasha D. Cloverfield 2008 -Lychnikoff, Pasha D. Miami Vice 2006 -Daly, Andrew (I) Life as We Know It 2010 -Daly, Andrew (I) What Happens in Vegas 2008 -Daly, Andrew (I) Christmas with the Kranks 2004 -Daly, Andrew (I) Transformers: Dark of the Moon 2011 -Daly, Andrew (I) Yogi Bear 2010 -Kae-Kazim, Hakeem X-Men Origins: Wolverine 2009 -Kae-Kazim, Hakeem The Golden Compass 2007 -Kae-Kazim, Hakeem Pirates of the Caribbean: At World's End 2007 -Mears, Derek The Haunted Mansion 2003 -Mears, Derek Pirates of the Caribbean: On Stranger Tides 2011 -Mears, Derek Zathura: A Space Adventure 2005 -Mears, Derek D-War 2007 -Mears, Derek Friday the 13th 2009 -Mears, Derek Men in Black II 2002 -Mears, Derek Predators 2010 -Albuquerque, Philip Epic Movie 2007 -Albuquerque, Philip Meet the Spartans 2008 -Albuquerque, Philip Step Up 3D 2010 -Shapi, Hassani Star Wars: Episode I - The Phantom Menace 1999 -Shapi, Hassani Star Wars: Episode II - Attack of the Clones 2002 -Shapi, Hassani The World Is Not Enough 1999 -Beran, Ladislav Hellboy 2004 -Beran, Ladislav Blade II 2002 -Beran, Ladislav Mission: Impossible - Ghost Protocol 2011 -Beach, Adam Cowboys & Aliens 2011 -Beach, Adam Four Brothers 2005 -Beach, Adam Windtalkers 2002 -Jensen, David (II) Deja Vu 2006 -Jensen, David (II) Battle Los Angeles 2011 -Jensen, David (II) Runaway Jury 2003 -Jensen, David (II) The Mist 2007 -Jensen, David (II) The Skeleton Key 2005 -Jensen, David (II) Battleship 2012 -Jensen, David (II) The Curious Case of Benjamin Button 2008 -Jensen, David (II) Ocean's Eleven 2001 -Jensen, David (II) Traffic 2000 -Jensen, David (II) Glory Road 2006 -Kalugin, Alexander The Chronicles of Riddick 2004 -Kalugin, Alexander Final Destination 3 2006 -Kalugin, Alexander Miracle 2004 -Kalugin, Alexander Are We Done Yet? 2007 -Marsan, Eddie War Horse 2011 -Marsan, Eddie Gangs of New York 2002 -Marsan, Eddie Miami Vice 2006 -Marsan, Eddie Sherlock Holmes: A Game of Shadows 2011 -Marsan, Eddie Mission: Impossible III 2006 -Marsan, Eddie Snow White and the Huntsman 2012 -Marsan, Eddie The Illusionist 2006 -Marsan, Eddie Hancock 2008 -Marsan, Eddie Sherlock Holmes 2009 -Marsan, Eddie V for Vendetta 2005 -Wood, Tom (II) Apollo 13 1995 -Wood, Tom (II) U.S. Marshals 1998 -Wood, Tom (II) The Fugitive 1993 -Joffre, Dan Scooby Doo 2: Monsters Unleashed 2004 -Joffre, Dan Scary Movie 2000 -Joffre, Dan TRON: Legacy 2010 -Joffre, Dan Night at the Museum: Battle of the Smithsonian 2009 -Joffre, Dan The Santa Clause 2 2002 -Joffre, Dan The Lizzie McGuire Movie 2003 -Joffre, Dan Are We Done Yet? 2007 -Krop, Jill X2 2003 -Krop, Jill Catwoman 2004 -Krop, Jill Final Destination 2 2003 -Krop, Jill Blade: Trinity 2004 -Erwin, Bill Forces of Nature 1999 -Erwin, Bill The Land Before Time 1988 -Erwin, Bill Home Alone 1990 -De Lecia, Nicole Shall We Dance 2004 -De Lecia, Nicole Miss Congeniality 2: Armed and Fabulous 2005 -De Lecia, Nicole Percy Jackson & the Olympians: The Lightning Thief 2010 -Tate, Lahmard J. Barbershop 2002 -Tate, Lahmard J. Spider-Man 3 2007 -Tate, Lahmard J. Rocky Balboa 2006 -Huband, David (I) Down to Earth 2001 -Huband, David (I) Cinderella Man 2005 -Huband, David (I) Frequency 2000 -Huband, David (I) Police Academy 3: Back in Training 1986 -Law, Phyllida The Time Machine 2002 -Law, Phyllida Kari-gurashi no Arietti 2010 -Law, Phyllida Nanny McPhee 2005 -McGonagle, Richard Rules of Engagement 2000 -McGonagle, Richard 500) Days of Summer 2009 -McGonagle, Richard Spirit: Stallion of the Cimarron 2002 -McGonagle, Richard Pirates of the Caribbean: At World's End 2007 -McGonagle, Richard The Incredibles 2004 -McGonagle, Richard Mighty Joe Young 1998 -McGonagle, Richard The Bucket List 2007 -Wood, Elijah The Lord of the Rings: The Fellowship of the Ring 2001 -Wood, Elijah The Lord of the Rings: The Return of the King 2003 -Wood, Elijah The Faculty 1998 -Wood, Elijah Deep Impact 1998 -Wood, Elijah Eternal Sunshine of the Spotless Mind 2004 -Wood, Elijah Happy Feet 2006 -Wood, Elijah Sin City 2005 -Wood, Elijah Happy Feet Two 2011 -Wood, Elijah The Lord of the Rings: The Two Towers 2002 -Wood, Elijah Spy Kids 3-D: Game Over 2003 -Wood, Elijah Back to the Future Part II 1989 -Nikolaev, Valeriy Shirli-Myrli 1995 -Nikolaev, Valeriy The Saint 1997 -Nikolaev, Valeriy The Terminal 2004 -Isyanov, Ravil Mr. & Mrs. Smith 2005 -Isyanov, Ravil The Saint 1997 -Isyanov, Ravil The Jackal 1997 -Isyanov, Ravil GoldenEye 1995 -Isyanov, Ravil Holes 2003 -Isyanov, Ravil Along Came a Spider 2001 -Isyanov, Ravil K-19: The Widowmaker 2002 -Isyanov, Ravil Transformers: Dark of the Moon 2011 -Emmerich, Noah Frequency 2000 -Emmerich, Noah Cellular 2004 -Emmerich, Noah The Truman Show 1998 -Emmerich, Noah Last Action Hero 1993 -Emmerich, Noah Miracle 2004 -Emmerich, Noah Cop Land 1997 -Emmerich, Noah Super 8 2011 -Emmerich, Noah Windtalkers 2002 -Wiggins, Roger Public Enemies 2009 -Wiggins, Roger A Nightmare on Elm Street 2010 -Wiggins, Roger Contagion 2011 -Turturro, Nicholas I Now Pronounce You Chuck & Larry 2007 -Turturro, Nicholas The Longest Yard 2005 -Turturro, Nicholas Malcolm X 1992 -Turturro, Nicholas World Trade Center 2006 -Turturro, Nicholas Takers 2010 -Turturro, Nicholas Recess: School's Out 2001 -Turturro, Nicholas Zookeeper 2011 -Walters, Julie (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Walters, Julie (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Walters, Julie (I) Billy Elliot 2000 -Walters, Julie (I) Brave 2012 -Walters, Julie (I) Mamma Mia! 2008 -Walters, Julie (I) Harry Potter and the Half-Blood Prince 2009 -Walters, Julie (I) Calendar Girls 2003 -Walters, Julie (I) Gnomeo & Juliet 2011 -Walters, Julie (I) Harry Potter and the Prisoner of Azkaban 2004 -Walters, Julie (I) Harry Potter and the Sorcerer's Stone 2001 -Walters, Julie (I) Harry Potter and the Chamber of Secrets 2002 -Walters, Julie (I) Harry Potter and the Order of the Phoenix 2007 -Man, Method (I) Scary Movie 3 2003 -Man, Method (I) Cop Land 1997 -Man, Method (I) Red Tails 2012 -Man, Method (I) Meet the Spartans 2008 -Man, Method (I) Garden State 2004 -Parson, Chris (I) Made of Honor 2008 -Parson, Chris (I) Quantum of Solace 2008 -Parson, Chris (I) Jumper 2008 -Parson, Chris (I) Rango 2011 -Parson, Chris (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Parson, Chris (I) The Spiderwick Chronicles 2008 -Yoba, Malik Why Did I Get Married Too? 2010 -Yoba, Malik Cop Land 1997 -Yoba, Malik Soul Food 1997 -Baker, Rick (I) Men in Black 3 2012 -Baker, Rick (I) The Wolfman 2010 -Baker, Rick (I) Men in Black II 2002 -Baker, Rick (I) King Kong 2005 -Baker, Rick (I) How the Grinch Stole Christmas 2000 -Goossen, Greg Waterworld 1995 -Goossen, Greg Unforgiven 1992 -Goossen, Greg The Replacements 2000 -Goossen, Greg Behind Enemy Lines 2001 -Goossen, Greg The Royal Tenenbaums 2001 -Goossen, Greg The Firm 1993 -Reeve, Christian (I) Jarhead 2005 -Reeve, Christian (I) Flightplan 2005 -Reeve, Christian (I) You Don't Mess with the Zohan 2008 -Moretz, Chloë Grace Diary of a Wimpy Kid 2010 -Moretz, Chloë Grace Kick-Ass 2010 -Moretz, Chloë Grace Big Momma's House 2 2006 -Moretz, Chloë Grace The Amityville Horror 2005 -Moretz, Chloë Grace Bolt 2008 -Moretz, Chloë Grace 500) Days of Summer 2009 -McMurrer, Robert The Longest Yard 2005 -McMurrer, Robert Coach Carter 2005 -McMurrer, Robert Sky High 2005 -McMurrer, Robert Million Dollar Baby 2004 -McMurrer, Robert Yes Man 2008 -Hoffman, Robert (X) Guess Who 2005 -Hoffman, Robert (X) Step Up 2: The Streets 2008 -Hoffman, Robert (X) Coach Carter 2005 -Hoffman, Robert (X) Aliens in the Attic 2009 -Young, L. Warren We Are Marshall 2006 -Young, L. Warren The Blind Side 2009 -Young, L. Warren Footloose 2011 -Young, L. Warren Life as We Know It 2010 -Walsh, Matt (I) Elf 2003 -Walsh, Matt (I) I Love You, Man 2009 -Walsh, Matt (I) The Hangover 2009 -Walsh, Matt (I) Role Models 2008 -Walsh, Matt (I) Step Brothers 2008 -Walsh, Matt (I) Road Trip 2000 -Walsh, Matt (I) Starsky & Hutch 2004 -Walsh, Matt (I) Due Date 2010 -Walsh, Matt (I) Bad Santa 2003 -Walsh, Matt (I) Christmas with the Kranks 2004 -Walsh, Matt (I) Old School 2003 -Bostick, Devon Diary of a Wimpy Kid 2010 -Bostick, Devon Saw IV 2007 -Bostick, Devon Diary of a Wimpy Kid: Rodrick Rules 2011 -Bower, Michael (I) Evolution 2001 -Bower, Michael (I) Dude, Where's My Car? 2000 -Bower, Michael (I) The Flintstones in Viva Rock Vegas 2000 -Slater, Christian Interview with the Vampire: The Vampire Chronicles 1994 -Slater, Christian Robin Hood: Prince of Thieves 1991 -Slater, Christian Zoolander 2001 -Slater, Christian Windtalkers 2002 -Slater, Christian Austin Powers: International Man of Mystery 1997 -Reiner, Rob The First Wives Club 1996 -Reiner, Rob Primary Colors 1998 -Reiner, Rob Sleepless in Seattle 1993 -Kirwood, Tony Harry Potter and the Deathly Hallows: Part 1 2010 -Kirwood, Tony Charlie and the Chocolate Factory 2005 -Kirwood, Tony Harry Potter and the Deathly Hallows: Part 2 2011 -Gargano, Charles A. The Devil's Advocate 1997 -Gargano, Charles A. World Trade Center 2006 -Gargano, Charles A. Serendipity 2001 -Brandt, Victor Babe: Pig in the City 1998 -Brandt, Victor Dr. Seuss' The Cat in the Hat 2003 -Brandt, Victor The Santa Clause 2 2002 -Oparei, Deobia Alien³ 1992 -Oparei, Deobia Moulin Rouge! 2001 -Oparei, Deobia Pirates of the Caribbean: On Stranger Tides 2011 -Korman, Harvey Jingle All the Way 1996 -Korman, Harvey The Flintstones 1994 -Korman, Harvey The Flintstones in Viva Rock Vegas 2000 -Childers, Kelly Cole Bad Company 2002 -Childers, Kelly Cole Black Knight 2001 -Childers, Kelly Cole A Walk to Remember 2002 -Rooney, Ted (I) Cheaper by the Dozen 2003 -Rooney, Ted (I) The Flintstones in Viva Rock Vegas 2000 -Rooney, Ted (I) Legally Blonde 2001 -Rooney, Ted (I) The Master of Disguise 2002 -Revan, Alex Kingdom of Heaven 2005 -Revan, Alex S.W.A.T. 2003 -Revan, Alex Saw V 2008 -Revan, Alex Wall Street: Money Never Sleeps 2010 -Caso, Christopher The Lost World: Jurassic Park 1997 -Caso, Christopher Batman & Robin 1997 -Caso, Christopher Batman Forever 1995 -Lafferty, Sandra Ellis The Hunger Games 2012 -Lafferty, Sandra Ellis Footloose 2011 -Lafferty, Sandra Ellis Walk the Line 2005 -Barnes, Jon A. Ali 2001 -Barnes, Jon A. Training Day 2001 -Barnes, Jon A. Rat Race 2001 -Barnes, Jon A. Showtime 2002 -Keynes, Skandar The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Keynes, Skandar The Chronicles of Narnia: Prince Caspian 2008 -Keynes, Skandar The Chronicles of Narnia: The Voyage of the Dawn Treader 2010 -Kay, Dominic Scott Charlotte's Web 2006 -Kay, Dominic Scott Pirates of the Caribbean: At World's End 2007 -Kay, Dominic Scott The Wild 2006 -Kay, Dominic Scott Minority Report 2002 -Alonso, Laz Avatar 2009 -Alonso, Laz Down to Earth 2001 -Alonso, Laz Jarhead 2005 -Alonso, Laz Stomp the Yard 2007 -Alonso, Laz Constantine 2005 -Alonso, Laz Fast & Furious 2009 -Tian, Valerie X2 2003 -Tian, Valerie Percy Jackson & the Olympians: The Lightning Thief 2010 -Tian, Valerie Juno 2007 -Tian, Valerie 4: Rise of the Silver Surfer 2007 -Tian, Valerie The Santa Clause 2 2002 -Tian, Valerie 21 Jump Street 2012 -Tian, Valerie The Sisterhood of the Traveling Pants 2005 -Gornie, Albert Paul Blart: Mall Cop 2009 -Gornie, Albert Bride Wars 2009 -Gornie, Albert Grown Ups 2010 -LaBell, Antonio City of Angels 1998 -LaBell, Antonio Patch Adams 1998 -LaBell, Antonio The Parent Trap 1998 -Blanc, Mel Space Jam 1996 -Blanc, Mel The Flintstones 1994 -Blanc, Mel The Flintstones in Viva Rock Vegas 2000 -Blanc, Mel Who Framed Roger Rabbit 1988 -White, Neville Confessions of a Shopaholic 2009 -White, Neville American Gangster 2007 -White, Neville The Taking of Pelham 1 2 3 2009 -Murphy, Cillian Inception 2010 -Murphy, Cillian 28 Days Later... 2002 -Murphy, Cillian Cold Mountain 2003 -Murphy, Cillian In Time 2011 -Murphy, Cillian TRON: Legacy 2010 -Murphy, Cillian Batman Begins 2005 -Murphy, Cillian Red Eye 2005 -Sobchak, Kseniya Rzhevskiy protiv Napoleona 2012 -Sobchak, Kseniya Gitler kaput! 2008 -Sobchak, Kseniya Samyy luchshiy film 2008 -Marsico, Miles Stuart Little 1999 -Marsico, Miles The Haunting 1999 -Marsico, Miles The Wild 2006 -Church, Thomas Haden Easy A 2010 -Church, Thomas Haden Aliens in the Attic 2009 -Church, Thomas Haden Charlotte's Web 2006 -Church, Thomas Haden Over the Hedge 2006 -Church, Thomas Haden George of the Jungle 1997 -Church, Thomas Haden We Bought a Zoo 2011 -Church, Thomas Haden Sideways 2004 -Church, Thomas Haden John Carter 2012 -Church, Thomas Haden Spider-Man 3 2007 -Cudmore, Daniel X2 2003 -Cudmore, Daniel New Moon 2009 -Cudmore, Daniel The Twilight Saga: Eclipse 2010 -Cudmore, Daniel Are We There Yet? 2005 -Cudmore, Daniel X-Men: The Last Stand 2006 -Cudmore, Daniel The Twilight Saga: Breaking Dawn - Part 1 2011 -Hannigan, Alyson American Wedding 2003 -Hannigan, Alyson American Reunion 2012 -Hannigan, Alyson Date Movie 2006 -Hannigan, Alyson American Pie 1999 -Hannigan, Alyson American Pie 2 2001 -Pendleton, Austin Amistad 1997 -Pendleton, Austin The Mirror Has Two Faces 1996 -Pendleton, Austin Wall Street: Money Never Sleeps 2010 -Pendleton, Austin Finding Nemo 2003 -Pendleton, Austin Christmas with the Kranks 2004 -Pendleton, Austin A Beautiful Mind 2001 -Green, Tom (III) Charlie's Angels 2000 -Green, Tom (III) Superstar 1999 -Green, Tom (III) Road Trip 2000 -Marshall, Vanessa The Haunted Mansion 2003 -Marshall, Vanessa Spider-Man 3 2007 -Marshall, Vanessa Pirates of the Caribbean: At World's End 2007 -Marshall, Vanessa Shark Tale 2004 -Marshall, Vanessa Shrek 2 2004 -Marshall, Vanessa Lilo & Stitch 2002 -Marshall, Vanessa Constantine 2005 -Bush, Tommy Con Air 1997 -Bush, Tommy Indecent Proposal 1993 -Bush, Tommy Mars Attacks! 1996 -Bush, Tommy Rush Hour 1998 -Bush, Tommy Dr. Dolittle 2 2001 -Che-Mponda, Chemi Ghosts of Girlfriends Past 2009 -Che-Mponda, Chemi Paul Blart: Mall Cop 2009 -Che-Mponda, Chemi 21 2008 -Ashton, Al EverAfter 1998 -Ashton, Al From Hell 2001 -Ashton, Al Gladiator 2000 -Martin, Steve (I) Cheaper by the Dozen 2003 -Martin, Steve (I) It's Complicated 2009 -Martin, Steve (I) Baby Mama 2008 -Martin, Steve (I) Fantasia/2000 1999 -Martin, Steve (I) The Prince of Egypt 1998 -Martin, Steve (I) Bringing Down the House 2003 -Martin, Steve (I) The Pink Panther 2006 -Martin, Steve (I) Cheaper by the Dozen 2 2005 -Martin, Steve (I) Bowfinger 1999 -Martin, Steve (I) The Out-of-Towners 1999 -Claire, Julie Beverly Hills Chihuahua 2008 -Claire, Julie Bewitched 2005 -Claire, Julie I Am Sam 2001 -Buscemi, Steve Home on the Range 2004 -Buscemi, Steve Mr. Deeds 2002 -Buscemi, Steve Final Fantasy: The Spirits Within 2001 -Buscemi, Steve Pulp Fiction 1994 -Buscemi, Steve Monsters, Inc. 2001 -Buscemi, Steve 28 Days 2000 -Buscemi, Steve Monster House 2006 -Buscemi, Steve Spy Kids 3-D: Game Over 2003 -Buscemi, Steve Armageddon 1998 -Buscemi, Steve Grown Ups 2010 -Buscemi, Steve Fargo 1996 -Buscemi, Steve G-Force 2009 -Buscemi, Steve Big Fish 2003 -Buscemi, Steve Domestic Disturbance 2001 -Buscemi, Steve Con Air 1997 -Buscemi, Steve Spy Kids 2: Island of Lost Dreams 2002 -Buscemi, Steve I Now Pronounce You Chuck & Larry 2007 -Buscemi, Steve The Wedding Singer 1998 -Buscemi, Steve Charlotte's Web 2006 -Buscemi, Steve Big Daddy 1999 -Buscemi, Steve The Island 2005 -Landey, Clayton A Civil Action 1998 -Landey, Clayton A Nightmare on Elm Street 3: Dream Warriors 1987 -Landey, Clayton Footloose 2011 -Landey, Clayton Eraser 1996 -Burkholder, Max Fly Me to the Moon 2008 -Burkholder, Max The Ant Bully 2006 -Burkholder, Max Daddy Day Care 2003 -Ruck, Alan The Happening 2008 -Ruck, Alan Speed 1994 -Ruck, Alan Twister 1996 -Ruck, Alan Cheaper by the Dozen 2003 -Ruck, Alan Ferris Bueller's Day Off 1986 -Wilson, Debra (I) Speed Racer 2008 -Wilson, Debra (I) Over the Hedge 2006 -Wilson, Debra (I) Avatar 2009 -Wilson, Debra (I) Scary Movie 4 2006 -Amorelli, Jennifer Mr. & Mrs. Smith 2005 -Amorelli, Jennifer Kicking & Screaming 2005 -Amorelli, Jennifer Fun with Dick and Jane 2005 -G'Vera, Ivan Casino Royale 2006 -G'Vera, Ivan Terminator Salvation 2009 -G'Vera, Ivan The Hunt for Red October 1990 -Lewis, Algerita Wynn G-Force 2009 -Lewis, Algerita Wynn Hancock 2008 -Lewis, Algerita Wynn Crazy, Stupid, Love. 2011 -Knight, Lily Artificial Intelligence: AI 2001 -Knight, Lily Changeling 2008 -Knight, Lily The Artist 2011 -Dupuy, Louis The Curious Case of Benjamin Button 2008 -Dupuy, Louis Big Momma's House 2 2006 -Dupuy, Louis The Dukes of Hazzard 2005 -Dupuy, Louis Glory Road 2006 -Quigley, Gerry (I) Cinderella Man 2005 -Quigley, Gerry (I) John Q 2002 -Quigley, Gerry (I) A History of Violence 2005 -Grifasi, Joe One Fine Day 1996 -Grifasi, Joe Batman Forever 1995 -Grifasi, Joe 13 Going on 30 2004 -Grifasi, Joe Changing Lanes 2002 -Grifasi, Joe Presumed Innocent 1990 -Grifasi, Joe The Out-of-Towners 1999 -Whitaker, Forest Phenomenon 1996 -Whitaker, Forest Vantage Point 2008 -Whitaker, Forest Where the Wild Things Are 2009 -Whitaker, Forest Phone Booth 2002 -Whitaker, Forest Panic Room 2002 -Newman, Jaime Ray Catch Me If You Can 2002 -Newman, Jaime Ray Made of Honor 2008 -Newman, Jaime Ray Rumor Has It... 2005 -Smith, Ron Clinton We Are Marshall 2006 -Smith, Ron Clinton The Mist 2007 -Smith, Ron Clinton The Firm 1993 -Smith, Ron Clinton Life as We Know It 2010 -Voigt, Carsten Valkyrie 2008 -Voigt, Carsten AVP: Alien vs. Predator 2004 -Voigt, Carsten U-571 2000 -Yuman, Bernie Ocean's Eleven 2001 -Yuman, Bernie Ocean's Thirteen 2007 -Yuman, Bernie Vegas Vacation 1997 -Hurley, Elizabeth (I) Austin Powers: The Spy Who Shagged Me 1999 -Hurley, Elizabeth (I) Bedazzled 2000 -Hurley, Elizabeth (I) Austin Powers: International Man of Mystery 1997 -Hurley, Elizabeth (I) My Favorite Martian 1999 -Reyes Jr., Ernie The Rundown 2003 -Reyes Jr., Ernie Act of Valor 2012 -Reyes Jr., Ernie Rush Hour 2 2001 -Reyes Jr., Ernie Indiana Jones and the Kingdom of the Crystal Skull 2008 -Walters, Alexis The Last Song 2010 -Walters, Alexis Big Mommas: Like Father, Like Son 2011 -Walters, Alexis Life as We Know It 2010 -Goodloe, J. Mills Lethal Weapon 2 1989 -Goodloe, J. Mills Lethal Weapon 3 1992 -Goodloe, J. Mills Conspiracy Theory 1997 -Monkey, Crystal the The Hangover Part II 2011 -Monkey, Crystal the Night at the Museum 2006 -Monkey, Crystal the We Bought a Zoo 2011 -Monkey, Crystal the Zookeeper 2011 -Allen, Krista Paycheck 2003 -Allen, Krista The Final Destination 2009 -Allen, Krista Liar Liar 1997 -Allen, Krista Anger Management 2003 -Carroll, Earl (II) Autumn in New York 2000 -Carroll, Earl (II) The Wedding Singer 1998 -Carroll, Earl (II) The Lincoln Lawyer 2011 -Carroll, Earl (II) The Ugly Truth 2009 -Rawlins, Adrian Harry Potter and the Goblet of Fire 2005 -Rawlins, Adrian Harry Potter and the Prisoner of Azkaban 2004 -Rawlins, Adrian Harry Potter and the Sorcerer's Stone 2001 -Rawlins, Adrian Harry Potter and the Order of the Phoenix 2007 -Rawlins, Adrian Harry Potter and the Chamber of Secrets 2002 -Rawlins, Adrian Harry Potter and the Deathly Hallows: Part 2 2011 -Rawlins, Adrian Harry Potter and the Deathly Hallows: Part 1 2010 -Dorff, Stephen Zoolander 2001 -Dorff, Stephen World Trade Center 2006 -Dorff, Stephen Blade 1998 -Dorff, Stephen Immortals 2011 -Dorff, Stephen Public Enemies 2009 -Morris, John (III) The Nightmare Before Christmas 1993 -Morris, John (III) Toy Story 3 2010 -Morris, John (III) Toy Story 2 1999 -Morris, John (III) Toy Story 1995 -Canals-Barrera, Maria Larry Crowne 2011 -Canals-Barrera, Maria America's Sweethearts 2001 -Canals-Barrera, Maria The Master of Disguise 2002 -Newhart, Bob Elf 2003 -Newhart, Bob Legally Blonde 2: Red, White & Blonde 2003 -Newhart, Bob In & Out 1997 -Newhart, Bob Horrible Bosses 2011 -Lombardi, Louis The Animal 2001 -Lombardi, Louis The Hot Chick 2002 -Lombardi, Louis Battleship 2012 -Lombardi, Louis Spider-Man 2 2004 -Melling, Harry Harry Potter and the Prisoner of Azkaban 2004 -Melling, Harry Harry Potter and the Sorcerer's Stone 2001 -Melling, Harry Harry Potter and the Chamber of Secrets 2002 -Melling, Harry Harry Potter and the Deathly Hallows: Part 1 2010 -Melling, Harry Harry Potter and the Order of the Phoenix 2007 -Davis, Ossie Malcolm X 1992 -Davis, Ossie Doctor Dolittle 1998 -Davis, Ossie Dinosaur 2000 -Wilder, Scott (I) Speed 1994 -Wilder, Scott (I) The Book of Eli 2010 -Wilder, Scott (I) Takers 2010 -Elkington, Clive Harry Potter and the Order of the Phoenix 2007 -Elkington, Clive The Golden Compass 2007 -Elkington, Clive National Treasure: Book of Secrets 2007 -Pesci, Joe Lethal Weapon 4 1998 -Pesci, Joe The Good Shepherd 2006 -Pesci, Joe Lethal Weapon 3 1992 -Pesci, Joe Home Alone 1990 -Pesci, Joe Home Alone 2: Lost in New York 1992 -Pesci, Joe Lethal Weapon 2 1989 -Pesci, Joe JFK 1991 -Cattrall, Kim Baby Geniuses 1999 -Cattrall, Kim Sex and the City 2 2010 -Cattrall, Kim Police Academy 1984 -Cattrall, Kim Mannequin 1987 -Cattrall, Kim The Ghost Writer 2010 -Cattrall, Kim Sex and the City 2008 -Cattrall, Kim Porky's 1982 -Ha, Benita Catwoman 2004 -Ha, Benita Underworld: Awakening 2012 -Ha, Benita Final Destination 2 2003 -Ha, Benita Paycheck 2003 -Ha, Benita The 6th Day 2000 -Ha, Benita X-Men: The Last Stand 2006 -Randall, Ginnie The Mist 2007 -Randall, Ginnie Forces of Nature 1999 -Randall, Ginnie Madea's Family Reunion 2006 -Kruz, Alex The Dictator 2012 -Kruz, Alex New Year's Eve 2011 -Kruz, Alex The Avengers 2012 -Betts, Jack Batman & Robin 1997 -Betts, Jack Spider-Man 2002 -Betts, Jack Batman Forever 1995 -Krasinski, John The Holiday 2006 -Krasinski, John Shrek the Third 2007 -Krasinski, John Jarhead 2005 -Krasinski, John License to Wed 2007 -Krasinski, John It's Complicated 2009 -Krasinski, John Monsters vs Aliens 2009 -Krasinski, John Dreamgirls 2006 -Krasinski, John The Muppets 2011 -Raymond, Usher Justin Bieber: Never Say Never 2011 -Raymond, Usher Killers 2010 -Raymond, Usher She's All That 1999 -Raymond, Usher The Faculty 1998 -Atkins, Eileen Cold Mountain 2003 -Atkins, Eileen Robin Hood 2010 -Atkins, Eileen Gosford Park 2001 -Atkins, Eileen The Hours 2002 -Butler Harner, Jason The Good Shepherd 2006 -Butler Harner, Jason Changeling 2008 -Butler Harner, Jason The Taking of Pelham 1 2 3 2009 -Smith, Ebonie Lethal Weapon 4 1998 -Smith, Ebonie Lethal Weapon 2 1989 -Smith, Ebonie Lethal Weapon 3 1992 -Perillo, Joey The Manchurian Candidate 2004 -Perillo, Joey Philadelphia 1993 -Perillo, Joey Twelve Monkeys 1995 -Perillo, Joey Unbreakable 2000 -Perillo, Joey The Negotiator 1998 -Guzmán, Luis (I) Lemony Snicket's A Series of Unfortunate Events 2004 -Guzmán, Luis (I) Anger Management 2003 -Guzmán, Luis (I) Beverly Hills Chihuahua 2008 -Guzmán, Luis (I) The Count of Monte Cristo 2002 -Guzmán, Luis (I) Snake Eyes 1998 -Guzmán, Luis (I) Yes Man 2008 -Guzmán, Luis (I) Journey 2: The Mysterious Island 2012 -Guzmán, Luis (I) Magnolia 1999 -Guzmán, Luis (I) The Bone Collector 1999 -Guzmán, Luis (I) Runaway Jury 2003 -Guzmán, Luis (I) Traffic 2000 -Guzmán, Luis (I) He's Just Not That Into You 2009 -Guzmán, Luis (I) 'Crocodile' Dundee II 1988 -Guzmán, Luis (I) Boogie Nights 1997 -Guzmán, Luis (I) The Taking of Pelham 1 2 3 2009 -Jarrett, Phillip The Hurricane 1999 -Jarrett, Phillip Exit Wounds 2001 -Jarrett, Phillip The Day After Tomorrow 2004 -Graves, Cory Dreamgirls 2006 -Graves, Cory Hannah Montana & Miley Cyrus: Best of Both Worlds Concert 2008 -Graves, Cory Footloose 2011 -Peart, Mathew Mr. Magorium's Wonder Emporium 2007 -Peart, Mathew Fever Pitch 2005 -Peart, Mathew Four Brothers 2005 -Schlund, Stephanie Leigh We Are Marshall 2006 -Schlund, Stephanie Leigh Stomp the Yard 2007 -Schlund, Stephanie Leigh The Last Song 2010 -Zano, Nick Catch Me If You Can 2002 -Zano, Nick Beverly Hills Chihuahua 2008 -Zano, Nick Fat Albert 2004 -Zano, Nick The Final Destination 2009 -O'Connor, Frances (II) Bedazzled 2000 -O'Connor, Frances (II) Windtalkers 2002 -O'Connor, Frances (II) Artificial Intelligence: AI 2001 -Ross, Chelcie My Best Friend's Wedding 1997 -Ross, Chelcie Primary Colors 1998 -Ross, Chelcie Drag Me to Hell 2009 -Ross, Chelcie Basic Instinct 1992 -Lodge, David (IV) Battleship 2012 -Lodge, David (IV) Jumper 2008 -Lodge, David (IV) The Amazing Spider-Man 2012 -St. John Smith, Michael I, Robot 2004 -St. John Smith, Michael Blade: Trinity 2004 -St. John Smith, Michael The A-Team 2010 -St. John Smith, Michael The Core 2003 -McCarthy, Thomas (I) Michael Clayton 2007 -McCarthy, Thomas (I) Baby Mama 2008 -McCarthy, Thomas (I) Syriana 2005 -McCarthy, Thomas (I) Conspiracy Theory 1997 -McCarthy, Thomas (I) Good Night, and Good Luck. 2005 -McCarthy, Thomas (I) Meet the Parents 2000 -McCarthy, Thomas (I) Little Fockers 2010 -Schultz, Dwight Terminator Salvation 2009 -Schultz, Dwight Pirates of the Caribbean: At World's End 2007 -Schultz, Dwight Final Fantasy: The Spirits Within 2001 -Schultz, Dwight Fantastic Four 2005 -Schultz, Dwight Superman Returns 2006 -Schultz, Dwight Spider-Man 2002 -Schultz, Dwight The A-Team 2010 -Schultz, Dwight Star Trek: First Contact 1996 -Sagalevitch, Anatoly M. Ghosts of the Abyss 2003 -Sagalevitch, Anatoly M. Titanic 1997 -Sagalevitch, Anatoly M. Aliens of the Deep 2005 -Stables, Kelly The Haunted Mansion 2003 -Stables, Kelly The Ring Two 2005 -Stables, Kelly Hoodwinked! 2005 -Cannon, Kevin (I) Enchanted 2007 -Cannon, Kevin (I) Cop Out 2010 -Cannon, Kevin (I) Michael Clayton 2007 -Cannon, Kevin (I) The Brave One 2007 -Cannon, Kevin (I) You Don't Mess with the Zohan 2008 -Cannon, Kevin (I) 27 Dresses 2008 -Connor, Brendan Patrick Spider-Man 2 2004 -Connor, Brendan Patrick Miss Congeniality 2: Armed and Fabulous 2005 -Connor, Brendan Patrick Evan Almighty 2007 -Pjeternikaj, Nik Shaft 2000 -Pjeternikaj, Nik Unfaithful 2002 -Pjeternikaj, Nik Autumn in New York 2000 -Gough, Michael (I) Corpse Bride 2005 -Gough, Michael (I) Batman & Robin 1997 -Gough, Michael (I) Batman Returns 1992 -Gough, Michael (I) Batman 1989 -Gough, Michael (I) Batman Forever 1995 -Gough, Michael (I) Alice in Wonderland 2010 -Gough, Michael (I) Sleepy Hollow 1999 -Rippy, Leon Universal Soldier 1992 -Rippy, Leon The Patriot 2000 -Rippy, Leon Stargate 1994 -McGovern, Elizabeth (I) Wings of Courage 1995 -McGovern, Elizabeth (I) Clash of the Titans 2010 -McGovern, Elizabeth (I) Kick-Ass 2010 -James, Geraldine Sherlock Holmes 2009 -James, Geraldine The Girl with the Dragon Tattoo 2011 -James, Geraldine Gandhi 1982 -James, Geraldine Sherlock Holmes: A Game of Shadows 2011 -James, Geraldine Alice in Wonderland 2010 -James, Geraldine Calendar Girls 2003 -Winstead, Mary Elizabeth Sky High 2005 -Winstead, Mary Elizabeth Final Destination 3 2006 -Winstead, Mary Elizabeth Live Free or Die Hard 2007 -Winstead, Mary Elizabeth The Ring Two 2005 -Theobalds, Joanna Larry Crowne 2011 -Theobalds, Joanna Bridesmaids 2011 -Theobalds, Joanna Bad Teacher 2011 -Theobalds, Joanna Any Given Sunday 1999 -Theobalds, Joanna Horrible Bosses 2011 -Theobalds, Joanna Madea's Big Happy Family 2011 -Theobalds, Joanna Knowing 2009 -De Contreras, Alfred Bowfinger 1999 -De Contreras, Alfred Yes Man 2008 -De Contreras, Alfred Bandits 2001 -Mahoney, John (I) In the Line of Fire 1993 -Mahoney, John (I) Antz 1998 -Mahoney, John (I) Atlantis: The Lost Empire 2001 -Mahoney, John (I) Dan in Real Life 2007 -Pressman, David (I) Stargate 1994 -Pressman, David (I) Blades of Glory 2007 -Pressman, David (I) Starsky & Hutch 2004 -Pressman, David (I) Volcano 1997 -Pressman, David (I) Independence Day 1996 -Pressman, David (I) Godzilla 1998 -Pressman, David (I) Zoolander 2001 -Pressman, David (I) Little Fockers 2010 -Pressman, David (I) Tropic Thunder 2008 -Gainey, M.C. Wild Hogs 2007 -Gainey, M.C. Terminator 3: Rise of the Machines 2003 -Gainey, M.C. Are We There Yet? 2005 -Gainey, M.C. The Haunting 1999 -Gainey, M.C. Sideways 2004 -Gainey, M.C. Con Air 1997 -Gainey, M.C. The Mighty Ducks 1992 -Gainey, M.C. The Dukes of Hazzard 2005 -McCarthy, Jenny (I) Scary Movie 3 2003 -McCarthy, Jenny (I) John Tucker Must Die 2006 -McCarthy, Jenny (I) Scream 3 2000 -Culbertson, Zachary Funny People 2009 -Culbertson, Zachary Four Christmases 2008 -Culbertson, Zachary Star Trek 2009 -Culbertson, Zachary The Pursuit of Happyness 2006 -Culbertson, Zachary Moneyball 2011 -Pendelton, Charles The Happening 2008 -Pendelton, Charles What Happens in Vegas 2008 -Pendelton, Charles Invincible 2006 -Pendelton, Charles Trading Places 1983 -Pendelton, Charles Transformers: Revenge of the Fallen 2009 -Pendelton, Charles A Beautiful Mind 2001 -Dorfman, David (I) The Ring 2002 -Dorfman, David (I) The Ring Two 2005 -Dorfman, David (I) Galaxy Quest 1999 -Dorfman, David (I) The Texas Chainsaw Massacre 2003 -Romero, Jordan (I) Law Abiding Citizen 2009 -Romero, Jordan (I) The Last Airbender 2010 -Romero, Jordan (I) The Happening 2008 -Palminteri, Chazz Down to Earth 2001 -Palminteri, Chazz Hoodwinked! 2005 -Palminteri, Chazz Stuart Little 1999 -Palminteri, Chazz Analyze This 1999 -Palminteri, Chazz LiTTLEMAN 2006 -Cunningham, John (I) In & Out 1997 -Cunningham, John (I) Starship Troopers 1997 -Cunningham, John (I) The Jackal 1997 -Cunningham, John (I) Dead Poets Society 1989 -Cunningham, John (I) Shaft 2000 -Cunningham, John (I) Two Weeks Notice 2002 -Haeuser, Russell M. The Final Destination 2009 -Haeuser, Russell M. Glory Road 2006 -Haeuser, Russell M. Meet the Spartans 2008 -Skeoch, Charlotte Harry Potter and the Goblet of Fire 2005 -Skeoch, Charlotte Harry Potter and the Chamber of Secrets 2002 -Skeoch, Charlotte Harry Potter and the Order of the Phoenix 2007 -Warner, Rick (I) Evan Almighty 2007 -Warner, Rick (I) Twelve Monkeys 1995 -Warner, Rick (I) Kiss the Girls 1997 -Kravits, Jason The Stepford Wives 2004 -Kravits, Jason Blue Streak 1999 -Kravits, Jason The Adjustment Bureau 2011 -Kravits, Jason The Flintstones in Viva Rock Vegas 2000 -Regan, Vincent Troy 2004 -Regan, Vincent Snow White and the Huntsman 2012 -Regan, Vincent 300 2006 -Regan, Vincent Black Knight 2001 -Regan, Vincent Ghost Rider: Spirit of Vengeance 2011 -Regan, Vincent Clash of the Titans 2010 -Corral Kendall, Elaine The Net 1995 -Corral Kendall, Elaine High Crimes 2002 -Corral Kendall, Elaine End of Days 1999 -Corral Kendall, Elaine American Beauty 1999 -Chow, Yun-Fat Wo hu cang long 2000 -Chow, Yun-Fat Anna and the King 1999 -Chow, Yun-Fat Pirates of the Caribbean: At World's End 2007 -Tuiasosopo, Peter Navy Speed Racer 2008 -Tuiasosopo, Peter Navy The Fast and the Furious 2001 -Tuiasosopo, Peter Navy Batman & Robin 1997 -Tuiasosopo, Peter Navy Austin Powers in Goldmember 2002 -Tuiasosopo, Peter Navy The Scorpion King 2002 -Tuiasosopo, Peter Navy Charlie's Angels 2000 -Malone, Jena Contact 1997 -Malone, Jena Stepmom 1998 -Malone, Jena Sucker Punch 2011 -Malone, Jena Pride & Prejudice 2005 -Malone, Jena Cold Mountain 2003 -Malone, Jena Hauru no ugoku shiro 2004 -Ettinger, Cynthia The Silence of the Lambs 1991 -Ettinger, Cynthia Pay It Forward 2000 -Ettinger, Cynthia Deep Impact 1998 -Ettinger, Cynthia License to Wed 2007 -Ahl, Michael I Now Pronounce You Chuck & Larry 2007 -Ahl, Michael The Bourne Ultimatum 2007 -Ahl, Michael Failure to Launch 2006 -Ahl, Michael National Treasure 2004 -Ahl, Michael Evan Almighty 2007 -Ahl, Michael Minority Report 2002 -Ahl, Michael Invincible 2006 -Ahl, Michael Rocky Balboa 2006 -Juarbe, Israel The Karate Kid 1984 -Juarbe, Israel Indecent Proposal 1993 -Juarbe, Israel Beverly Hills Cop 1984 -Juarbe, Israel Boogie Nights 1997 -Juarbe, Israel The Net 1995 -Thomas, Rando Catch Me If You Can 2002 -Thomas, Rando The Waterboy 1998 -Thomas, Rando Bruce Almighty 2003 -Thomas, Rando Armageddon 1998 -Apostolina, Stephen Yogi Bear 2010 -Apostolina, Stephen Madagascar 2005 -Apostolina, Stephen Shark Tale 2004 -Andreu, Simón Bridget Jones: The Edge of Reason 2004 -Andreu, Simón Die Another Day 2002 -Andreu, Simón The Chronicles of Narnia: Prince Caspian 2008 -Prosky, Robert Last Action Hero 1993 -Prosky, Robert The Natural 1984 -Prosky, Robert Mrs. Doubtfire 1993 -Williams, Ty (I) Blue Streak 1999 -Williams, Ty (I) Mission: Impossible III 2006 -Williams, Ty (I) The General's Daughter 1999 -Seacrest, Ryan Shrek Forever After 2010 -Seacrest, Ryan New Year's Eve 2011 -Seacrest, Ryan Knocked Up 2007 -Seacrest, Ryan Get Smart 2008 -Knights, Christopher (I) Shrek 2001 -Knights, Christopher (I) Shrek 2 2004 -Knights, Christopher (I) Madagascar 3: Europe's Most Wanted 2012 -Knights, Christopher (I) Madagascar 2005 -Knights, Christopher (I) Megamind 2010 -Knights, Christopher (I) Shrek Forever After 2010 -Knights, Christopher (I) Shrek the Third 2007 -Knights, Christopher (I) Madagascar: Escape 2 Africa 2008 -Knights, Christopher (I) Flushed Away 2006 -Orbach, Jerry Universal Soldier 1992 -Orbach, Jerry Out for Justice 1991 -Orbach, Jerry Dirty Dancing 1987 -Orbach, Jerry Beauty and the Beast 1991 -Kristol, Grant Blanks Drumline 2002 -Kristol, Grant Blanks Due Date 2010 -Kristol, Grant Blanks Remember the Titans 2000 -Adlon, Pamela Chicken Little 2005 -Adlon, Pamela Recess: School's Out 2001 -Adlon, Pamela Brother Bear 2003 -Rivers, Victor (I) Hulk 2003 -Rivers, Victor (I) Amistad 1997 -Rivers, Victor (I) The Mask of Zorro 1998 -Hader, Bill Ice Age: Dawn of the Dinosaurs 2009 -Hader, Bill Knocked Up 2007 -Hader, Bill Men in Black 3 2012 -Hader, Bill You, Me and Dupree 2006 -Hader, Bill Forgetting Sarah Marshall 2008 -Hader, Bill Cloudy with a Chance of Meatballs 2009 -Hader, Bill Night at the Museum: Battle of the Smithsonian 2009 -Hader, Bill Tropic Thunder 2008 -Hader, Bill Pineapple Express 2008 -Hader, Bill Superbad 2007 -Winchell, April Antz 1998 -Winchell, April Recess: School's Out 2001 -Winchell, April Who Framed Roger Rabbit 1988 -Lane, Gary (III) The Patriot 2000 -Lane, Gary (III) Spider-Man 2002 -Lane, Gary (III) Jack and Jill 2011 -Ansah, Joey The Bourne Ultimatum 2007 -Ansah, Joey Snow White and the Huntsman 2012 -Ansah, Joey Batman Begins 2005 -Newton, Teddy Cars 2006 -Newton, Teddy The Incredibles 2004 -Newton, Teddy Toy Story 3 2010 -Newton, Teddy Ratatouille 2007 -Newton, Teddy Up 2009 -Newton, Teddy WALL·E 2008 -Fink, John (I) Bad Company 2002 -Fink, John (I) Batman & Robin 1997 -Fink, John (I) Batman Forever 1995 -Sontz, Joey Daylight 1996 -Sontz, Joey United 93 2006 -Sontz, Joey Julie & Julia 2009 -Boyce, Todd (I) Spy Game 2001 -Boyce, Todd (I) Behind Enemy Lines 2001 -Boyce, Todd (I) Charlie and the Chocolate Factory 2005 -Kitsch, Taylor Battleship 2012 -Kitsch, Taylor John Carter 2012 -Kitsch, Taylor John Tucker Must Die 2006 -Kitsch, Taylor X-Men Origins: Wolverine 2009 -Kitsch, Taylor Snakes on a Plane 2006 -Federman, Wayne 50 First Dates 2004 -Federman, Wayne Knocked Up 2007 -Federman, Wayne Step Brothers 2008 -Federman, Wayne The 40 Year Old Virgin 2005 -Federman, Wayne Funny People 2009 -Federman, Wayne Legally Blonde 2001 -Federman, Wayne Charlie's Angels: Full Throttle 2003 -Stoltz, Eric Anaconda 1997 -Stoltz, Eric Pulp Fiction 1994 -Stoltz, Eric Jerry Maguire 1996 -Stoltz, Eric The Butterfly Effect 2004 -Stoltz, Eric He's Just Not That Into You 2009 -Bamman, Gerry The Long Kiss Goodnight 1996 -Bamman, Gerry Home Alone 1990 -Bamman, Gerry Home Alone 2: Lost in New York 1992 -Bamman, Gerry Superstar 1999 -Bamman, Gerry Runaway Jury 2003 -Bamman, Gerry The Bodyguard 1992 -So, Jay Con Air 1997 -So, Jay Mars Attacks! 1996 -So, Jay Vegas Vacation 1997 -Kosaka, Peter Resident Evil: Afterlife 2010 -Kosaka, Peter Exit Wounds 2001 -Kosaka, Peter The Santa Clause 1994 -Walker, Patrick (III) Cars 2 2011 -Walker, Patrick (III) The Hitchhiker's Guide to the Galaxy 2005 -Walker, Patrick (III) The Incredibles 2004 -Gomez, Jaime (I) Philadelphia 1993 -Gomez, Jaime (I) Training Day 2001 -Gomez, Jaime (I) Clear and Present Danger 1994 -Ferrara, Jerry Battleship 2012 -Ferrara, Jerry Think Like a Man 2012 -Ferrara, Jerry Eagle Eye 2008 -Fein, Caitlin Chicken Little 2005 -Fein, Caitlin Deep Impact 1998 -Fein, Caitlin Matilda 1996 -Fein, Caitlin Baby Geniuses 1999 -Giannini, Giancarlo Hannibal 2001 -Giannini, Giancarlo Casino Royale 2006 -Giannini, Giancarlo Quantum of Solace 2008 -Giannini, Giancarlo Man on Fire 2004 -Stahl, Andy (I) The Mist 2007 -Stahl, Andy (I) 4: Rise of the Silver Surfer 2007 -Stahl, Andy (I) October Sky 1999 -Stahl, Andy (I) The Blind Side 2009 -Stahl, Andy (I) Big Momma's House 2 2006 -Stahl, Andy (I) A Time to Kill 1996 -Stahl, Andy (I) Glory Road 2006 -Stahl, Andy (I) The Patriot 2000 -Harris, Jodi Project X 2012 -Harris, Jodi Bring It On 2000 -Harris, Jodi Legally Blonde 2001 -Fairbank, Christopher The Fifth Element 1997 -Fairbank, Christopher Alien³ 1992 -Fairbank, Christopher Wallace & Gromit in The Curse of the Were-Rabbit 2005 -Fairbank, Christopher Batman 1989 -Fairbank, Christopher Pirates of the Caribbean: On Stranger Tides 2011 -Fairbank, Christopher Flushed Away 2006 -Mr. T Inspector Gadget 1999 -Mr. T Cloudy with a Chance of Meatballs 2009 -Mr. T Rocky III 1982 -Mr. T Rocky Balboa 2006 -Mr. T Rocky IV 1985 -Corone, Antoni Any Given Sunday 1999 -Corone, Antoni The Truman Show 1998 -Corone, Antoni Act of Valor 2012 -Corone, Antoni Bad Boys II 2003 -Corone, Antoni Striptease 1996 -Giannelli, Steve Stargate 1994 -Giannelli, Steve Godzilla 1998 -Giannelli, Steve Independence Day 1996 -Turner, J.T. (I) Meet Joe Black 1998 -Turner, J.T. (I) Mystic River 2003 -Turner, J.T. (I) The Fighter 2010 -Brown, Robert (I) Licence to Kill 1989 -Brown, Robert (I) Octopussy 1983 -Brown, Robert (I) A View to a Kill 1985 -Brown, Robert (I) The Living Daylights 1987 -McDonnell, Mary (I) Dances with Wolves 1990 -McDonnell, Mary (I) Independence Day 1996 -McDonnell, Mary (I) Scream 4 2011 -Bush, George W. Live Free or Die Hard 2007 -Bush, George W. Fahrenheit 9/11 2004 -Bush, George W. Bowling for Columbine 2002 -Thompson, Bobb'e J. Role Models 2008 -Thompson, Bobb'e J. Cellular 2004 -Thompson, Bobb'e J. Fred Claus 2007 -Thompson, Bobb'e J. Shark Tale 2004 -Thompson, Bobb'e J. Cloudy with a Chance of Meatballs 2009 -Thompson, Bobb'e J. Land of the Lost 2009 -Basile, Joseph Mr. Popper's Penguins 2011 -Basile, Joseph Confessions of a Shopaholic 2009 -Basile, Joseph The Fighter 2010 -G, Franky Saw II 2005 -G, Franky The Italian Job 2003 -G, Franky Saw III 2006 -Cauffiel, Jessica Road Trip 2000 -Cauffiel, Jessica Guess Who 2005 -Cauffiel, Jessica The Out-of-Towners 1999 -Cauffiel, Jessica White Chicks 2004 -Cauffiel, Jessica Legally Blonde 2001 -Cauffiel, Jessica Legally Blonde 2: Red, White & Blonde 2003 -Templeton, Michael A. Transformers: Revenge of the Fallen 2009 -Templeton, Michael A. Iron Man 2 2010 -Templeton, Michael A. The Green Hornet 2011 -Seldes, Marian Mona Lisa Smile 2003 -Seldes, Marian The Haunting 1999 -Seldes, Marian Home Alone 3 1997 -Rose, Nectar 50 First Dates 2004 -Rose, Nectar L.A. Confidential 1997 -Rose, Nectar Legally Blonde 2001 -Rose, Nectar Bring It On 2000 -Rose, Nectar Independence Day 1996 -Holmes, Katie Thank You for Smoking 2005 -Holmes, Katie Jack and Jill 2011 -Holmes, Katie Wonder Boys 2000 -Holmes, Katie Phone Booth 2002 -Holmes, Katie Batman Begins 2005 -Lohman, Alison Matchstick Men 2003 -Lohman, Alison Beowulf 2007 -Lohman, Alison Big Fish 2003 -Lohman, Alison Drag Me to Hell 2009 -Macfadyen, Angus (I) Saw III 2006 -Macfadyen, Angus (I) Saw V 2008 -Macfadyen, Angus (I) Saw IV 2007 -Macfadyen, Angus (I) Divine Secrets of the Ya-Ya Sisterhood 2002 -Macfadyen, Angus (I) We Bought a Zoo 2011 -Macfadyen, Angus (I) Braveheart 1995 -Heyerdahl, Christopher The Chronicles of Riddick 2004 -Heyerdahl, Christopher The Twilight Saga: Breaking Dawn - Part 1 2011 -Heyerdahl, Christopher Catwoman 2004 -Heyerdahl, Christopher Blade: Trinity 2004 -Heyerdahl, Christopher New Moon 2009 -Divoff, Andrew Air Force One 1997 -Divoff, Andrew Indiana Jones and the Kingdom of the Crystal Skull 2008 -Divoff, Andrew The Hunt for Red October 1990 -Collins, Greg (II) Bruce Almighty 2003 -Collins, Greg (II) World Trade Center 2006 -Collins, Greg (II) Cellular 2004 -Collins, Greg (II) Godzilla 1998 -Collins, Greg (II) Armageddon 1998 -Collins, Greg (II) Daredevil 2003 -Collins, Greg (II) Eagle Eye 2008 -Collins, Greg (II) Con Air 1997 -Collins, Greg (II) Fast & Furious 2009 -Collins, Greg (II) Collateral Damage 2002 -Collins, Greg (II) Gone in Sixty Seconds 2000 -Collins, Greg (II) Coyote Ugly 2000 -Collins, Greg (II) Independence Day 1996 -Collins, Greg (II) The Rock 1996 -Collins, Greg (II) Enemy of the State 1998 -Hardin, Jerry Are We There Yet? 2005 -Hardin, Jerry The Firm 1993 -Hardin, Jerry Hidalgo 2004 -Chiklis, Michael Sen to Chihiro no kamikakushi 2001 -Chiklis, Michael Fantastic Four 2005 -Chiklis, Michael 4: Rise of the Silver Surfer 2007 -Chiklis, Michael Eagle Eye 2008 -Mulcahy, Jason Ghosts of Girlfriends Past 2009 -Mulcahy, Jason Bride Wars 2009 -Mulcahy, Jason Zookeeper 2011 -Mulcahy, Jason Paul Blart: Mall Cop 2009 -Perry, Felton RoboCop 2 1990 -Perry, Felton Down and Out in Beverly Hills 1986 -Perry, Felton Dumb & Dumber 1994 -Perry, Felton RoboCop 1987 -Sciole, Jennifer (I) Superman Returns 2006 -Sciole, Jennifer (I) Tin Cup 1996 -Sciole, Jennifer (I) Poseidon 2006 -Dorsey, Christian National Treasure 2004 -Dorsey, Christian The Happening 2008 -Dorsey, Christian Invincible 2006 -Dorsey, Christian Law Abiding Citizen 2009 -Dorsey, Christian Transformers: Revenge of the Fallen 2009 -Knaus, Darren T. Tarzan 1999 -Knaus, Darren T. Mighty Joe Young 1998 -Knaus, Darren T. Home Alone 3 1997 -Hawn, Phil Lethal Weapon 4 1998 -Hawn, Phil Big Momma's House 2000 -Hawn, Phil Deep Impact 1998 -Hawn, Phil The Insider 1999 -Hawn, Phil Austin Powers: The Spy Who Shagged Me 1999 -Hawn, Phil Inspector Gadget 1999 -Hawn, Phil Never Been Kissed 1999 -Hawn, Phil Fight Club 1999 -Hawn, Phil A Civil Action 1998 -Hawn, Phil Magnolia 1999 -Hawn, Phil Enemy of the State 1998 -Hawn, Phil Cruel Intentions 1999 -Hawn, Phil The Out-of-Towners 1999 -Hawn, Phil Wild Wild West 1999 -Hawn, Phil The Green Mile 1999 -Hawn, Phil American Pie 2 2001 -Smith, Mary Jo (I) Austin Powers: The Spy Who Shagged Me 1999 -Smith, Mary Jo (I) Thank You for Smoking 2005 -Smith, Mary Jo (I) The Flintstones in Viva Rock Vegas 2000 -Gugino, Carla Michael 1996 -Gugino, Carla Mr. Popper's Penguins 2011 -Gugino, Carla Watchmen 2009 -Gugino, Carla Snake Eyes 1998 -Gugino, Carla Righteous Kill 2008 -Gugino, Carla New Year's Eve 2011 -Gugino, Carla American Gangster 2007 -Gugino, Carla Spy Kids 2001 -Gugino, Carla Race to Witch Mountain 2009 -Gugino, Carla Spy Kids 2: Island of Lost Dreams 2002 -Gugino, Carla Sin City 2005 -Gugino, Carla Spy Kids 3-D: Game Over 2003 -Gugino, Carla Sucker Punch 2011 -Gugino, Carla Night at the Museum 2006 -Nance, Richard (I) Where the Heart Is 2000 -Nance, Richard (I) Friday Night Lights 2004 -Nance, Richard (I) Hope Floats 1998 -Malcomson, Paula Artificial Intelligence: AI 2001 -Malcomson, Paula The Green Mile 1999 -Malcomson, Paula The Hunger Games 2012 -Wright, Jeffrey (I) The Manchurian Candidate 2004 -Wright, Jeffrey (I) Ali 2001 -Wright, Jeffrey (I) The Ides of March 2011 -Wright, Jeffrey (I) Shaft 2000 -Wright, Jeffrey (I) Casino Royale 2006 -Wright, Jeffrey (I) Quantum of Solace 2008 -Wright, Jeffrey (I) Source Code 2011 -Wright, Jeffrey (I) Lady in the Water 2006 -Wright, Jeffrey (I) Presumed Innocent 1990 -Wright, Jeffrey (I) Syriana 2005 -Monk, Debra In & Out 1997 -Monk, Debra The Devil's Advocate 1997 -Monk, Debra The First Wives Club 1996 -Jákl, Petr (II) xXx 2002 -Jákl, Petr (II) AVP: Alien vs. Predator 2004 -Jákl, Petr (II) Bad Company 2002 -Pollak, Kevin The Wedding Planner 2001 -Pollak, Kevin The Whole Nine Yards 2000 -Pollak, Kevin A Few Good Men 1992 -Pollak, Kevin She's All That 1999 -Pollak, Kevin Magnificent Desolation: Walking on the Moon 3D 2005 -Pollak, Kevin Cop Out 2010 -Pollak, Kevin Dr. Dolittle 2 2001 -Pollak, Kevin End of Days 1999 -Pollak, Kevin The Santa Clause 3: The Escape Clause 2006 -Pollak, Kevin The Santa Clause 2 2002 -Pollak, Kevin Hostage 2005 -Ansari, Aziz Funny People 2009 -Ansari, Aziz Get Him to the Greek 2010 -Ansari, Aziz I Love You, Man 2009 -Gyllenhaal, Maggie Crazy Heart 2009 -Gyllenhaal, Maggie Monster House 2006 -Gyllenhaal, Maggie World Trade Center 2006 -Gyllenhaal, Maggie Nanny McPhee and the Big Bang 2010 -Gyllenhaal, Maggie 40 Days and 40 Nights 2002 -Gyllenhaal, Maggie Mona Lisa Smile 2003 -Patino, Alejandro (I) Bowfinger 1999 -Patino, Alejandro (I) The Heartbreak Kid 2007 -Patino, Alejandro (I) Iron Man 2 2010 -Patino, Alejandro (I) Fast & Furious 2009 -Gault, Willie The Sum of All Fears 2002 -Gault, Willie Cellular 2004 -Gault, Willie S.W.A.T. 2003 -Babatundé, Obba The Manchurian Candidate 2004 -Babatundé, Obba After the Sunset 2004 -Babatundé, Obba Philadelphia 1993 -Babatundé, Obba The Wild Thornberrys Movie 2002 -Babatundé, Obba The Silence of the Lambs 1991 -Babatundé, Obba The Notebook 2004 -Babatundé, Obba John Q 2002 -Burmester, Leo The Devil's Advocate 1997 -Burmester, Leo The Legend of Zorro 2005 -Burmester, Leo Gangs of New York 2002 -Essandoh, Ato Garden State 2004 -Essandoh, Ato Nights in Rodanthe 2008 -Essandoh, Ato Blood Diamond 2006 -Essandoh, Ato Get Him to the Greek 2010 -Lang, Lex Transformers: Dark of the Moon 2011 -Lang, Lex Bedazzled 2000 -Lang, Lex Little Nicky 2000 -Lang, Lex Ghost Rider 2007 -Lang, Lex Fantastic Four 2005 -Chenoweth, Kristin Bewitched 2005 -Chenoweth, Kristin RV 2006 -Chenoweth, Kristin Four Christmases 2008 -Chenoweth, Kristin The Pink Panther 2006 -Chenoweth, Kristin Space Chimps 2008 -Crosby, Chris (III) Harry Potter and the Sorcerer's Stone 2001 -Crosby, Chris (III) Harry Potter and the Prisoner of Azkaban 2004 -Crosby, Chris (III) Harry Potter and the Chamber of Secrets 2002 -Guma, Tony Star Trek 2009 -Guma, Tony Traffic 2000 -Guma, Tony Mission: Impossible III 2006 -Guma, Tony Super 8 2011 -Hoag, Bill The Devil's Own 1997 -Hoag, Bill Godzilla 1998 -Hoag, Bill Garfield 2004 -Hoag, Bill In & Out 1997 -Jenkins, Ken (I) Clockstoppers 2002 -Jenkins, Ken (I) Gone in Sixty Seconds 2000 -Jenkins, Ken (I) Courage Under Fire 1996 -Jenkins, Ken (I) The Sum of All Fears 2002 -Jenkins, Ken (I) I Am Sam 2001 -Johnson, Christopher Karl The Curious Case of Benjamin Button 2008 -Johnson, Christopher Karl Star Trek 2009 -Johnson, Christopher Karl Step Brothers 2008 -Johnson, Christopher Karl Race to Witch Mountain 2009 -Johnson, Christopher Karl Changeling 2008 -Johnson, Christopher Karl Angels & Demons 2009 -Johnson, Christopher Karl Water for Elephants 2011 -Johnson, Christopher Karl Eagle Eye 2008 -Chan, Jackie (I) The Forbidden Kingdom 2008 -Chan, Jackie (I) Kung Fu Panda 2 2011 -Chan, Jackie (I) Shanghai Noon 2000 -Chan, Jackie (I) Pik lik for 1995 -Chan, Jackie (I) The Karate Kid 2010 -Chan, Jackie (I) Shanghai Knights 2003 -Chan, Jackie (I) Around the World in 80 Days 2004 -Chan, Jackie (I) Rush Hour 1998 -Chan, Jackie (I) The Tuxedo 2002 -Chan, Jackie (I) Kung Fu Panda 2008 -Chan, Jackie (I) Rush Hour 2 2001 -Chan, Jackie (I) Rush Hour 3 2007 -Davi, Robert Licence to Kill 1989 -Davi, Robert Die Hard 1988 -Davi, Robert The Hot Chick 2002 -Davi, Robert The Goonies 1985 -Alexander, Markus Clear and Present Danger 1994 -Alexander, Markus The Replacements 2000 -Alexander, Markus Minority Report 2002 -Alexander, Markus In the Line of Fire 1993 -Alexander, Markus Red Dragon 2002 -Alexander, Markus Forrest Gump 1994 -Thomas, Dave (I) Stripes 1981 -Thomas, Dave (I) Brother Bear 2003 -Thomas, Dave (I) Rat Race 2001 -Pickens Jr., James Traffic 2000 -Pickens Jr., James Sleepers 1996 -Pickens Jr., James How Stella Got Her Groove Back 1998 -Takei, George Star Trek IV: The Voyage Home 1986 -Takei, George Star Trek: The Wrath of Khan 1982 -Takei, George Mulan 1998 -Takei, George You Don't Mess with the Zohan 2008 -Takei, George Larry Crowne 2011 -Takei, George Star Trek III: The Search for Spock 1984 -Brophy, Jed The Lord of the Rings: The Return of the King 2003 -Brophy, Jed The Lord of the Rings: The Two Towers 2002 -Brophy, Jed District 9 2009 -Brophy, Jed King Kong 2005 -Berg, Peter (I) Battleship 2012 -Berg, Peter (I) Cop Land 1997 -Berg, Peter (I) Hancock 2008 -Berg, Peter (I) Collateral 2004 -Thompson, Kevin (II) Jackass 3D 2010 -Thompson, Kevin (II) Epic Movie 2007 -Thompson, Kevin (II) Star Wars: Episode VI - Return of the Jedi 1983 -Dean, Michael (VIII) Men in Black 3 2012 -Dean, Michael (VIII) Sex and the City 2 2010 -Dean, Michael (VIII) It's Complicated 2009 -Dean, Michael (VIII) Wall Street: Money Never Sleeps 2010 -Dean, Michael (VIII) Get Him to the Greek 2010 -Tull, Clyde Catch Me If You Can 2002 -Tull, Clyde Collateral Damage 2002 -Tull, Clyde The Sum of All Fears 2002 -Tull, Clyde Traffic 2000 -Tull, Clyde American Pie 2 2001 -Tull, Clyde Pearl Harbor 2001 -Tull, Clyde Minority Report 2002 -Mackenzie, Peter (I) Project X 2012 -Mackenzie, Peter (I) One Hour Photo 2002 -Mackenzie, Peter (I) It's Complicated 2009 -Bennett, Jimmy (III) Anchorman: The Legend of Ron Burgundy 2004 -Bennett, Jimmy (III) Firewall 2006 -Bennett, Jimmy (III) Star Trek 2009 -Bennett, Jimmy (III) Evan Almighty 2007 -Bennett, Jimmy (III) The Polar Express 2004 -Bennett, Jimmy (III) The Amityville Horror 2005 -Bennett, Jimmy (III) Poseidon 2006 -Bennett, Jimmy (III) Hostage 2005 -Bennett, Jimmy (III) Daddy Day Care 2003 -Reinhold, Judge Atlantis: The Lost Empire 2001 -Reinhold, Judge Beverly Hills Cop II 1987 -Reinhold, Judge The Santa Clause 3: The Escape Clause 2006 -Reinhold, Judge The Santa Clause 2 2002 -Reinhold, Judge The Santa Clause 1994 -Reinhold, Judge Ruthless People 1986 -Reinhold, Judge Stripes 1981 -Reinhold, Judge Beverly Hills Cop 1984 -Meaney, Colm Law Abiding Citizen 2009 -Meaney, Colm Get Him to the Greek 2010 -Meaney, Colm Con Air 1997 -Meaney, Colm Die Hard 2 1990 -Fontana, Joe (II) Deja Vu 2006 -Fontana, Joe (II) The Curious Case of Benjamin Button 2008 -Fontana, Joe (II) Road to Perdition 2002 -Reitel, Enn Quantum of Solace 2008 -Reitel, Enn The Santa Clause 3: The Escape Clause 2006 -Reitel, Enn Clash of the Titans 2010 -Reitel, Enn The Adventures of Tintin 2011 -Reitel, Enn Corpse Bride 2005 -Reitel, Enn The Chronicles of Narnia: Prince Caspian 2008 -Reitel, Enn The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Reitel, Enn The Golden Compass 2007 -Reitel, Enn The Full Monty 1997 -Reitel, Enn The Prestige 2006 -Reitel, Enn The Da Vinci Code 2006 -Krusiec, Michelle What Happens in Vegas 2008 -Krusiec, Michelle Sweet Home Alabama 2002 -Krusiec, Michelle Daddy Day Care 2003 -Siravo, Joseph Enchanted 2007 -Siravo, Joseph Shark Tale 2004 -Siravo, Joseph The Wild 2006 -Siravo, Joseph Maid in Manhattan 2002 -Park, Kelly Coffield Jerry Maguire 1996 -Park, Kelly Coffield College Road Trip 2008 -Park, Kelly Coffield Bride Wars 2009 -Park, Kelly Coffield Scary Movie 2000 -Park, Kelly Coffield LiTTLEMAN 2006 -Ekulona, Saidah Arrika The Royal Tenenbaums 2001 -Ekulona, Saidah Arrika Righteous Kill 2008 -Ekulona, Saidah Arrika The Taking of Pelham 1 2 3 2009 -Krall, Daamen J. The Lion King 1994 -Krall, Daamen J. Babe 1995 -Krall, Daamen J. Land of the Lost 2009 -Krall, Daamen J. Halloween 2007 -Krall, Daamen J. The Nightmare Before Christmas 1993 -Krall, Daamen J. Lilo & Stitch 2002 -Krall, Daamen J. Garfield 2004 -McKinnon, Ray The Blind Side 2009 -McKinnon, Ray The Net 1995 -McKinnon, Ray Apollo 13 1995 -McKinnon, Ray O Brother, Where Art Thou? 2000 -McKinnon, Ray Dolphin Tale 2011 -McKinnon, Ray Footloose 2011 -Pepper, Barry Magnificent Desolation: Walking on the Moon 3D 2005 -Pepper, Barry Enemy of the State 1998 -Pepper, Barry We Were Soldiers 2002 -Pepper, Barry Saving Private Ryan 1998 -Pepper, Barry The Green Mile 1999 -Pepper, Barry True Grit 2010 -Fink, Isabella Don't Say a Word 2001 -Fink, Isabella Fever Pitch 2005 -Fink, Isabella Cinderella Man 2005 -Davison, Barbara Ann Spider-Man 2 2004 -Davison, Barbara Ann The Dictator 2012 -Davison, Barbara Ann You Don't Mess with the Zohan 2008 -Paymer, David Amistad 1997 -Paymer, David The Hurricane 1999 -Paymer, David Drag Me to Hell 2009 -Paymer, David Ocean's Thirteen 2007 -Paymer, David Bad Teacher 2011 -Paymer, David Mighty Joe Young 1998 -Downey Sr., Robert The Family Man 2000 -Downey Sr., Robert Magnolia 1999 -Downey Sr., Robert Tower Heist 2011 -Downey Sr., Robert Boogie Nights 1997 -Fassbender, Michael X-Men: First Class 2011 -Fassbender, Michael 300 2006 -Fassbender, Michael Inglourious Basterds 2009 -Fassbender, Michael Prometheus 2012 -Jacobson, Peter (I) Failure to Launch 2006 -Jacobson, Peter (I) Showtime 2002 -Jacobson, Peter (I) Cars 2 2011 -Jacobson, Peter (I) A Civil Action 1998 -Jacobson, Peter (I) Transformers 2007 -Jacobson, Peter (I) Conspiracy Theory 1997 -Jacobson, Peter (I) Tin Cup 1996 -Jacobson, Peter (I) Good Night, and Good Luck. 2005 -Jacobson, Peter (I) As Good as It Gets 1997 -Maher, Joseph The Out-of-Towners 1999 -Maher, Joseph In & Out 1997 -Maher, Joseph Mars Attacks! 1996 -Maher, Joseph Sister Act 1992 -Nunn, Bill Sister Act 1992 -Nunn, Bill Spider-Man 2 2004 -Nunn, Bill Runaway Jury 2003 -Nunn, Bill Spider-Man 2002 -Nunn, Bill Kiss the Girls 1997 -Nunn, Bill Spider-Man 3 2007 -Schultz, Woody Beowulf 2007 -Schultz, Woody Date Night 2010 -Schultz, Woody Monster House 2006 -Schultz, Woody American Pie 1999 -Schultz, Woody Avatar 2009 -Rocco (VIII) The Out-of-Towners 1999 -Rocco (VIII) Primary Colors 1998 -Rocco (VIII) The Siege 1998 -Vincent, Christian (II) 500) Days of Summer 2009 -Vincent, Christian (II) Starsky & Hutch 2004 -Vincent, Christian (II) She's All That 1999 -Vincent, Christian (II) Miss Congeniality 2: Armed and Fabulous 2005 -Vincent, Christian (II) The Flintstones in Viva Rock Vegas 2000 -Carrara, Leslie Forgetting Sarah Marshall 2008 -Carrara, Leslie The Muppets 2011 -Carrara, Leslie Hauru no ugoku shiro 2004 -Young, Burt Rocky III 1982 -Young, Burt Rocky Balboa 2006 -Young, Burt Mickey Blue Eyes 1999 -Young, Burt Rocky V 1990 -Young, Burt Rocky IV 1985 -Carville, James Wedding Crashers 2005 -Carville, James Old School 2003 -Carville, James The Muppets 2011 -Carville, James The Adjustment Bureau 2011 -Watkins, Jason (I) Bridget Jones: The Edge of Reason 2004 -Watkins, Jason (I) The Golden Compass 2007 -Watkins, Jason (I) Tomorrow Never Dies 1997 -Musacchia, Rocco Mickey Blue Eyes 1999 -Musacchia, Rocco The Devil's Advocate 1997 -Musacchia, Rocco Sleepers 1996 -Musacchia, Rocco Donnie Brasco 1997 -Musacchia, Rocco Two Weeks Notice 2002 -Waters, Oren Wag the Dog 1997 -Waters, Oren Norbit 2007 -Waters, Oren Brother Bear 2003 -Waters, Oren The Princess Diaries 2: Royal Engagement 2004 -Frazer, Rupert John Carter 2012 -Frazer, Rupert Get Him to the Greek 2010 -Frazer, Rupert Gandhi 1982 -Bear, Bart the (II) Without a Paddle 2004 -Bear, Bart the (II) Dr. Dolittle 2 2001 -Bear, Bart the (II) We Bought a Zoo 2011 -Bear, Bart the (II) Zookeeper 2011 -Pullman, Bill Casper 1995 -Pullman, Bill Lake Placid 1999 -Pullman, Bill Sleepless in Seattle 1993 -Pullman, Bill Ruthless People 1986 -Pullman, Bill The Grudge 2004 -Pullman, Bill Scary Movie 4 2006 -Pullman, Bill Independence Day 1996 -White, Brian (XXXIV) The Game Plan 2007 -White, Brian (XXXIV) Stomp the Yard 2007 -White, Brian (XXXIV) The Family Stone 2005 -White, Brian (XXXIV) The Cabin in the Woods 2011 -Hawthorne, Nigel Tarzan 1999 -Hawthorne, Nigel Gandhi 1982 -Hawthorne, Nigel Amistad 1997 -Smith, Scott Alan (I) Rules of Engagement 2000 -Smith, Scott Alan (I) Bewitched 2005 -Smith, Scott Alan (I) Stargate 1994 -Smith, Scott Alan (I) Magnolia 1999 -Smith, Scott Alan (I) Mousehunt 1997 -Smith, Scott Alan (I) Deja Vu 2006 -Smith, Scott Alan (I) The X Files 1998 -Finney, Albert Traffic 2000 -Finney, Albert Ocean's Twelve 2004 -Finney, Albert Corpse Bride 2005 -Finney, Albert Big Fish 2003 -Finney, Albert The Bourne Ultimatum 2007 -Finney, Albert Erin Brockovich 2000 -Sircar, Tiya Hotel for Dogs 2009 -Sircar, Tiya Friends with Benefits 2011 -Sircar, Tiya 17 Again 2009 -Nakamura, Saemi The Truman Show 1998 -Nakamura, Saemi Contact 1997 -Nakamura, Saemi The Insider 1999 -Neary, Mariann Me, Myself & Irene 2000 -Neary, Mariann The Three Stooges 2012 -Neary, Mariann The Heartbreak Kid 2007 -Neary, Mariann Shallow Hal 2001 -Neary, Mariann Fever Pitch 2005 -Gold, L. Harvey Watchmen 2009 -Gold, L. Harvey Miracle 2004 -Gold, L. Harvey Rat Race 2001 -Dourif, Brad Halloween 2007 -Dourif, Brad The Lord of the Rings: The Return of the King 2003 -Dourif, Brad Child's Play 1988 -Dourif, Brad Alien: Resurrection 1997 -Dourif, Brad The Lord of the Rings: The Two Towers 2002 -Dourif, Brad Urban Legend 1998 -Sims, Jamal Step Up 3D 2010 -Sims, Jamal Hairspray 2007 -Sims, Jamal Hannah Montana: The Movie 2009 -Sims, Jamal Step Up 2006 -Sims, Jamal Step Up 2: The Streets 2008 -Sims, Jamal Footloose 2011 -Ullman, Tracey The Tale of Despereaux 2008 -Ullman, Tracey Corpse Bride 2005 -Ullman, Tracey The Queen 2006 -Ticotin, Rachel Con Air 1997 -Ticotin, Rachel Something's Gotta Give 2003 -Ticotin, Rachel Man on Fire 2004 -Ticotin, Rachel Total Recall 1990 -Ticotin, Rachel The Sisterhood of the Traveling Pants 2 2008 -Ticotin, Rachel The Sisterhood of the Traveling Pants 2005 -Day-Lewis, Daniel There Will Be Blood 2007 -Day-Lewis, Daniel Gangs of New York 2002 -Day-Lewis, Daniel A Room with a View 1985 -Day-Lewis, Daniel Gandhi 1982 -Kavner, Julie Doctor Dolittle 1998 -Kavner, Julie CyberWorld 2000 -Kavner, Julie Hannah and Her Sisters 1986 -Kavner, Julie The Simpsons Movie 2007 -Kavner, Julie Click 2006 -Berg, Greg (I) Chicken Little 2005 -Berg, Greg (I) The Wild 2006 -Berg, Greg (I) Toy Story 1995 -Berg, Greg (I) The Muppets 2011 -Berg, Greg (I) Transformers: Dark of the Moon 2011 -Mendillo, Stephen G.I. Jane 1997 -Mendillo, Stephen The First Wives Club 1996 -Mendillo, Stephen The Artist 2011 -Reitman, Catherine I Love You, Man 2009 -Reitman, Catherine Knocked Up 2007 -Reitman, Catherine Space Jam 1996 -Reitman, Catherine Friends with Benefits 2011 -Reitman, Catherine Thank You for Smoking 2005 -Watanabe, Ken (I) Memoirs of a Geisha 2005 -Watanabe, Ken (I) Inception 2010 -Watanabe, Ken (I) The Last Samurai 2003 -Watanabe, Ken (I) Letters from Iwo Jima 2006 -Watanabe, Ken (I) Batman Begins 2005 -Watanabe, Ken (I) Earth 2007 -Pikes, Christian Happy Feet 2006 -Pikes, Christian Jumper 2008 -Pikes, Christian Ice Age: Dawn of the Dinosaurs 2009 -Roth, Brenna Spider-Man 3 2007 -Roth, Brenna I Am Number Four 2011 -Roth, Brenna Zack and Miri Make a Porno 2008 -Rodriguez, Valente It's Complicated 2009 -Rodriguez, Valente Deep Blue Sea 1999 -Rodriguez, Valente 500) Days of Summer 2009 -Rodriguez, Valente Volcano 1997 -Rodriguez, Valente The Ugly Truth 2009 -Rodriguez, Valente Erin Brockovich 2000 -Wilder, Bates Shutter Island 2010 -Wilder, Bates Mystic River 2003 -Wilder, Bates Underdog 2007 -Seneca, Joe Malcolm X 1992 -Seneca, Joe Kramer vs. Kramer 1979 -Seneca, Joe A Time to Kill 1996 -Charles, Heather (I) Showtime 2002 -Charles, Heather (I) S.W.A.T. 2003 -Charles, Heather (I) America's Sweethearts 2001 -Charles, Heather (I) Anger Management 2003 -Borkan, Gene The Silence of the Lambs 1991 -Borkan, Gene Philadelphia 1993 -Borkan, Gene Se7en 1995 -Borkan, Gene Beverly Hills Cop 1984 -Whannell, Leigh The Matrix Reloaded 2003 -Whannell, Leigh Saw III 2006 -Whannell, Leigh Saw 2004 -Whannell, Leigh Legend of the Guardians: The Owls of Ga'Hoole 2010 -Strong, Mark (II) Tinker Tailor Soldier Spy 2011 -Strong, Mark (II) Stardust 2007 -Strong, Mark (II) Robin Hood 2010 -Strong, Mark (II) Kari-gurashi no Arietti 2010 -Strong, Mark (II) Syriana 2005 -Strong, Mark (II) Kick-Ass 2010 -Strong, Mark (II) Body of Lies 2008 -Strong, Mark (II) John Carter 2012 -Strong, Mark (II) Green Lantern 2011 -Strong, Mark (II) Babylon A.D. 2008 -Strong, Mark (II) Sherlock Holmes 2009 -McKane, Matt The 40 Year Old Virgin 2005 -McKane, Matt Superbad 2007 -McKane, Matt Knocked Up 2007 -Ashton-Griffiths, Roger A Knight's Tale 2001 -Ashton-Griffiths, Roger The Brothers Grimm 2005 -Ashton-Griffiths, Roger Gangs of New York 2002 -Baily, Kirk Open Season 3 2010 -Baily, Kirk Open Season 2006 -Baily, Kirk Over the Hedge 2006 -Baily, Kirk Yogi Bear 2010 -Taylor, Rocky (I) Batman 1989 -Taylor, Rocky (I) Titanic 1997 -Taylor, Rocky (I) The Mummy Returns 2001 -Taylor, Rocky (I) Never Say Never Again 1983 -Taylor, Rocky (I) Die Another Day 2002 -Taylor, Rocky (I) The World Is Not Enough 1999 -Taylor, Rocky (I) Tomorrow Never Dies 1997 -Beazley, Sam Bridget Jones: The Edge of Reason 2004 -Beazley, Sam Harry Potter and the Order of the Phoenix 2007 -Beazley, Sam Johnny English 2003 -Pierce, Wendell Malcolm X 1992 -Pierce, Wendell Horrible Bosses 2011 -Pierce, Wendell Sleepers 1996 -Ackland, Joss K-19: The Widowmaker 2002 -Ackland, Joss Lethal Weapon 2 1989 -Ackland, Joss The Hunt for Red October 1990 -Ackland, Joss The Mighty Ducks 1992 -Hewitt, Jennifer Love Garfield 2004 -Hewitt, Jennifer Love I Know What You Did Last Summer 1997 -Hewitt, Jennifer Love The Tuxedo 2002 -Hewitt, Jennifer Love I Still Know What You Did Last Summer 1998 -Hewitt, Jennifer Love Garfield: A Tail of Two Kitties 2006 -Hewitt, Jennifer Love Tropic Thunder 2008 -DiSanti, John Absence of Malice 1981 -DiSanti, John The Relic 1997 -DiSanti, John Running Scared 1986 -Gagnon, Sari Ghosts of Girlfriends Past 2009 -Gagnon, Sari Bride Wars 2009 -Gagnon, Sari Grown Ups 2010 -Gagnon, Sari Paul Blart: Mall Cop 2009 -DuPois, Starletta Pee-wee's Big Adventure 1985 -DuPois, Starletta The Notebook 2004 -DuPois, Starletta Big Momma's House 2000 -Koechner, David Thank You for Smoking 2005 -Koechner, David Talladega Nights: The Ballad of Ricky Bobby 2006 -Koechner, David Final Destination 5 2011 -Koechner, David Wag the Dog 1997 -Koechner, David Austin Powers: The Spy Who Shagged Me 1999 -Koechner, David Yours, Mine and Ours 2005 -Koechner, David Snakes on a Plane 2006 -Koechner, David The 40 Year Old Virgin 2005 -Koechner, David Barnyard 2006 -Koechner, David Get Smart 2008 -Koechner, David Anchorman: The Legend of Ron Burgundy 2004 -Koechner, David The Dukes of Hazzard 2005 -Robertson, Cliff (I) Spider-Man 2 2004 -Robertson, Cliff (I) Spider-Man 2002 -Robertson, Cliff (I) Spider-Man 3 2007 -Depardieu, Gérard 102 Dalmatians 2000 -Depardieu, Gérard Babylon A.D. 2008 -Depardieu, Gérard Astérix & Obélix: Mission Cléopâtre 2002 -Depardieu, Gérard Astérix aux jeux olympiques 2008 -Bush, Brantley Frequency 2000 -Bush, Brantley Blow 2001 -Bush, Brantley Set It Off 1996 -Costner, Kevin Dances with Wolves 1990 -Costner, Kevin Robin Hood: Prince of Thieves 1991 -Costner, Kevin Open Range 2003 -Costner, Kevin Message in a Bottle 1999 -Costner, Kevin The Bodyguard 1992 -Costner, Kevin Tin Cup 1996 -Costner, Kevin Waterworld 1995 -Costner, Kevin JFK 1991 -Costner, Kevin Rumor Has It... 2005 -Michaels, Rick (I) Any Given Sunday 1999 -Michaels, Rick (I) There's Something About Mary 1998 -Michaels, Rick (I) Bad Boys II 2003 -Denzlinger, Jeremy Spy Kids 2001 -Denzlinger, Jeremy Miss Congeniality 2000 -Denzlinger, Jeremy Any Given Sunday 1999 -Denzlinger, Jeremy Where the Heart Is 2000 -Denzlinger, Jeremy Pearl Harbor 2001 -Miller, T.J. Unstoppable 2010 -Miller, T.J. How to Train Your Dragon 2010 -Miller, T.J. Yogi Bear 2010 -Miller, T.J. Get Him to the Greek 2010 -Miller, T.J. Gulliver's Travels 2010 -Miller, T.J. Cloverfield 2008 -Weston II, James D. Flubber 1997 -Weston II, James D. Contagion 2011 -Weston II, James D. Transformers 2007 -Weston II, James D. Just Like Heaven 2005 -Weston II, James D. Hereafter 2010 -Weston II, James D. Transformers: Dark of the Moon 2011 -Lively, Ernie (I) The Sisterhood of the Traveling Pants 2 2008 -Lively, Ernie (I) The Sisterhood of the Traveling Pants 2005 -Lively, Ernie (I) American Pie 2 2001 -Andrews, Jasper Johannes Shrek Forever After 2010 -Andrews, Jasper Johannes Megamind 2010 -Andrews, Jasper Johannes Shrek the Third 2007 -Guest, Nicholas Fly Me to the Moon 2008 -Guest, Nicholas Pirates of the Caribbean: At World's End 2007 -Guest, Nicholas Star Trek: The Wrath of Khan 1982 -Guest, Nicholas Terminator 3: Rise of the Machines 2003 -Guest, Nicholas The Wild 2006 -Guest, Nicholas Rio 2011 -Guest, Nicholas Trading Places 1983 -Guest, Nicholas Barnyard 2006 -Guest, Nicholas Racing Stripes 2005 -Guest, Nicholas Over the Hedge 2006 -Guest, Nicholas Mirror Mirror 2012 -Guest, Nicholas Speed Racer 2008 -Sammel, Richard La vita è bella 1997 -Sammel, Richard Inglourious Basterds 2009 -Sammel, Richard Casino Royale 2006 -Ifans, Rhys Harry Potter and the Deathly Hallows: Part 1 2010 -Ifans, Rhys Little Nicky 2000 -Ifans, Rhys Notting Hill 1999 -Ifans, Rhys Nanny McPhee and the Big Bang 2010 -Ifans, Rhys The Amazing Spider-Man 2012 -Ifans, Rhys Hannibal Rising 2007 -Ifans, Rhys Garfield: A Tail of Two Kitties 2006 -Ifans, Rhys The Replacements 2000 -Hamilton, Linda (I) Dante's Peak 1997 -Hamilton, Linda (I) Terminator Salvation 2009 -Hamilton, Linda (I) Terminator 2: Judgment Day 1991 -Hamilton, Linda (I) The Terminator 1984 -Will i Am X-Men Origins: Wolverine 2009 -Will i Am Rio 2011 -Will i Am Date Night 2010 -Will i Am Madagascar: Escape 2 Africa 2008 -Murphy, Eddie (I) Showtime 2002 -Murphy, Eddie (I) Norbit 2007 -Murphy, Eddie (I) Hot Tub Time Machine 2010 -Murphy, Eddie (I) Nutty Professor II: The Klumps 2000 -Murphy, Eddie (I) Beverly Hills Cop II 1987 -Murphy, Eddie (I) Trading Places 1983 -Murphy, Eddie (I) Daddy Day Care 2003 -Murphy, Eddie (I) Dr. Dolittle 2 2001 -Murphy, Eddie (I) Shrek Forever After 2010 -Murphy, Eddie (I) Beverly Hills Cop 1984 -Murphy, Eddie (I) Shrek 2001 -Murphy, Eddie (I) The Haunted Mansion 2003 -Murphy, Eddie (I) Coming to America 1988 -Murphy, Eddie (I) Shrek 2 2004 -Murphy, Eddie (I) Doctor Dolittle 1998 -Murphy, Eddie (I) The Nutty Professor 1996 -Murphy, Eddie (I) Mulan 1998 -Murphy, Eddie (I) Tower Heist 2011 -Murphy, Eddie (I) Dreamgirls 2006 -Murphy, Eddie (I) Bowfinger 1999 -Murphy, Eddie (I) Shrek the Third 2007 -Lowe, Rob (I) Austin Powers: The Spy Who Shagged Me 1999 -Lowe, Rob (I) Austin Powers: International Man of Mystery 1997 -Lowe, Rob (I) About Last Night... 1986 -Lowe, Rob (I) Contact 1997 -Lowe, Rob (I) Austin Powers in Goldmember 2002 -Lowe, Rob (I) Thank You for Smoking 2005 -Nesting, David M. Coyote Ugly 2000 -Nesting, David M. Charlie's Angels 2000 -Nesting, David M. Shanghai Noon 2000 -Schneider, John J. Date Night 2010 -Schneider, John J. The Other Guys 2010 -Schneider, John J. Get Him to the Greek 2010 -Schneider, John J. Salt 2010 -Shepard, Maridean Mansfield Jingle All the Way 1996 -Shepard, Maridean Mansfield Bean 1997 -Shepard, Maridean Mansfield My Best Friend's Wedding 1997 -Thomson, Scott (I) Clockstoppers 2002 -Thomson, Scott (I) Police Academy 3: Back in Training 1986 -Thomson, Scott (I) Twister 1996 -Thomson, Scott (I) Police Academy 1984 -Rice, Tara Catch Me If You Can 2002 -Rice, Tara Austin Powers in Goldmember 2002 -Rice, Tara American Pie 2 2001 -Moss-Bachrach, Ebon Mona Lisa Smile 2003 -Moss-Bachrach, Ebon The Royal Tenenbaums 2001 -Moss-Bachrach, Ebon The Lake House 2006 -Waters, Julia The Kid 2000 -Waters, Julia Wag the Dog 1997 -Waters, Julia Brother Bear 2003 -Henson, Taraji P. The Karate Kid 2010 -Henson, Taraji P. Larry Crowne 2011 -Henson, Taraji P. Think Like a Man 2012 -Henson, Taraji P. The Curious Case of Benjamin Button 2008 -Henson, Taraji P. Date Night 2010 -Henson, Taraji P. Four Brothers 2005 -Katz, Claudia (II) Artificial Intelligence: AI 2001 -Katz, Claudia (II) Spider-Man 3 2007 -Katz, Claudia (II) Spider-Man 2 2004 -Katz, Claudia (II) Spider-Man 2002 -Katz, Claudia (II) The Princess Diaries 2: Royal Engagement 2004 -Dauber, Lewis Jingle All the Way 1996 -Dauber, Lewis The Island 2005 -Dauber, Lewis Something's Gotta Give 2003 -Badalamenti II, Peter Donald Bad Boys II 2003 -Badalamenti II, Peter Donald The Curious Case of Benjamin Button 2008 -Badalamenti II, Peter Donald Pirates of the Caribbean: At World's End 2007 -Badalamenti II, Peter Donald Pirates of the Caribbean: Dead Man's Chest 2006 -Hingle, Pat Batman & Robin 1997 -Hingle, Pat Batman Forever 1995 -Hingle, Pat Shaft 2000 -Hingle, Pat Talladega Nights: The Ballad of Ricky Bobby 2006 -Hingle, Pat The Land Before Time 1988 -Hingle, Pat Batman Returns 1992 -Hingle, Pat Batman 1989 -Hingle, Pat Sudden Impact 1983 -Nielsen, Leslie (I) Superhero Movie 2008 -Nielsen, Leslie (I) Scary Movie 4 2006 -Nielsen, Leslie (I) Scary Movie 3 2003 -Fagerbakke, Bill The SpongeBob SquarePants Movie 2004 -Fagerbakke, Bill The Hunchback of Notre Dame 1996 -Fagerbakke, Bill The Artist 2011 -Dance, Charles (I) For Your Eyes Only 1981 -Dance, Charles (I) Alien³ 1992 -Dance, Charles (I) Underworld: Awakening 2012 -Dance, Charles (I) Michael Collins 1996 -Dance, Charles (I) Last Action Hero 1993 -Dance, Charles (I) Gosford Park 2001 -Kartalian, Buck The Rock 1996 -Kartalian, Buck The Flintstones in Viva Rock Vegas 2000 -Kartalian, Buck My Favorite Martian 1999 -Eastin, Steve Catch Me If You Can 2002 -Eastin, Steve Austin Powers: The Spy Who Shagged Me 1999 -Eastin, Steve Matchstick Men 2003 -Eastin, Steve Con Air 1997 -Kirzinger, Ken Freddy vs. Jason 2003 -Kirzinger, Ken Ace Ventura: When Nature Calls 1995 -Kirzinger, Ken Journey to the Center of the Earth 2008 -Kirzinger, Ken The Day the Earth Stood Still 2008 -Marshall, Harper Harry Potter and the Goblet of Fire 2005 -Marshall, Harper Harry Potter and the Prisoner of Azkaban 2004 -Marshall, Harper Harry Potter and the Order of the Phoenix 2007 -Reiner, Tracy Die Hard 1988 -Reiner, Tracy The Princess Diaries 2: Royal Engagement 2004 -Reiner, Tracy Apollo 13 1995 -Reiner, Tracy The Princess Diaries 2001 -Reiner, Tracy Never Been Kissed 1999 -Reiner, Tracy Pretty Woman 1990 -Reiner, Tracy Raising Helen 2004 -Rhys Meyers, Jonathan Alexander 2004 -Rhys Meyers, Jonathan Bend It Like Beckham 2002 -Rhys Meyers, Jonathan Michael Collins 1996 -Rhys Meyers, Jonathan Mission: Impossible III 2006 -Bacino, Joe Kick-Ass 2010 -Bacino, Joe Ransom 1996 -Bacino, Joe Garden State 2004 -Pomers, Scarlett Baby Geniuses 1999 -Pomers, Scarlett Erin Brockovich 2000 -Pomers, Scarlett Mighty Joe Young 1998 -Roache, Linus The Chronicles of Riddick 2004 -Roache, Linus The Forgotten 2004 -Roache, Linus Batman Begins 2005 -St. James, David Contact 1997 -St. James, David My Favorite Martian 1999 -St. James, David Alien: Resurrection 1997 -St. James, David S.W.A.T. 2003 -St. James, David Evan Almighty 2007 -St. James, David L.A. Confidential 1997 -St. James, David The Lost World: Jurassic Park 1997 -St. James, David Transformers: Dark of the Moon 2011 -Graham, Lauren (I) Evan Almighty 2007 -Graham, Lauren (I) The Pacifier 2005 -Graham, Lauren (I) Bad Santa 2003 -Graham, Lauren (I) Cloudy with a Chance of Meatballs 2009 -Sarsgaard, Peter Knight and Day 2010 -Sarsgaard, Peter Garden State 2004 -Sarsgaard, Peter Flightplan 2005 -Sarsgaard, Peter The Cell 2000 -Sarsgaard, Peter K-19: The Widowmaker 2002 -Sarsgaard, Peter The Skeleton Key 2005 -Sarsgaard, Peter Green Lantern 2011 -Sarsgaard, Peter Jarhead 2005 -Lloyd, Christopher (I) Baby Geniuses 1999 -Lloyd, Christopher (I) Piranha 2010 -Lloyd, Christopher (I) Star Trek III: The Search for Spock 1984 -Lloyd, Christopher (I) Fly Me to the Moon 2008 -Lloyd, Christopher (I) Back to the Future Part III 1990 -Lloyd, Christopher (I) Who Framed Roger Rabbit 1988 -Lloyd, Christopher (I) My Favorite Martian 1999 -Lloyd, Christopher (I) The Tale of Despereaux 2008 -Lloyd, Christopher (I) Anastasia 1997 -Lloyd, Christopher (I) Back to the Future Part II 1989 -Lloyd, Christopher (I) Back to the Future 1985 -Miklos, George Ocean's Eleven 2001 -Miklos, George America's Sweethearts 2001 -Miklos, George The Scorpion King 2002 -Guilfoyle, Paul (II) Amistad 1997 -Guilfoyle, Paul (II) Ransom 1996 -Guilfoyle, Paul (II) Mrs. Doubtfire 1993 -Guilfoyle, Paul (II) Striptease 1996 -Guilfoyle, Paul (II) Primary Colors 1998 -Guilfoyle, Paul (II) Beverly Hills Cop II 1987 -Guilfoyle, Paul (II) Wall Street 1987 -Guilfoyle, Paul (II) Air Force One 1997 -Guilfoyle, Paul (II) L.A. Confidential 1997 -Guilfoyle, Paul (II) The Negotiator 1998 -Keaton, Kelly Ice Age: Dawn of the Dinosaurs 2009 -Keaton, Kelly Robots 2005 -Keaton, Kelly Rio 2011 -Keaton, Kelly Cheaper by the Dozen 2 2005 -Gordon, Jeff (I) Cars 2 2011 -Gordon, Jeff (I) NASCAR 3D: The IMAX Experience 2004 -Gordon, Jeff (I) Herbie Fully Loaded 2005 -Lenzi, Robert The Village 2004 -Lenzi, Robert Sex and the City 2 2010 -Lenzi, Robert The Happening 2008 -Lenzi, Robert The Last Airbender 2010 -O'Halloran, Jack The Flintstones 1994 -O'Halloran, Jack Superman 1978 -O'Halloran, Jack Superman II 1980 -Welch, Sean (I) Catch Me If You Can 2002 -Welch, Sean (I) Boogie Nights 1997 -Welch, Sean (I) Anger Management 2003 -Haley, Michael (I) Primary Colors 1998 -Haley, Michael (I) Analyze This 1999 -Haley, Michael (I) Charlie Wilson's War 2007 -Haley, Michael (I) Bedazzled 2000 -Haley, Michael (I) Jungle 2 Jungle 1997 -Norton, Edward (I) Kingdom of Heaven 2005 -Norton, Edward (I) The Dictator 2012 -Norton, Edward (I) Red Dragon 2002 -Norton, Edward (I) The Incredible Hulk 2008 -Norton, Edward (I) After the Sunset 2004 -Norton, Edward (I) The Score 2001 -Norton, Edward (I) Fight Club 1999 -Norton, Edward (I) Frida 2002 -Norton, Edward (I) The Italian Job 2003 -Norton, Edward (I) The Illusionist 2006 -Norton, Edward (I) Keeping the Faith 2000 -Jackson, Peter (I) King Kong 2005 -Jackson, Peter (I) The Lord of the Rings: The Return of the King 2003 -Jackson, Peter (I) The Lord of the Rings: The Two Towers 2002 -Jackson, Peter (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Wilson, Niamh Saw III 2006 -Wilson, Niamh Saw V 2008 -Wilson, Niamh Saw IV 2007 -Bhardwaj, Macéo 102 Dalmatians 2000 -Bhardwaj, Macéo Harry Potter and the Chamber of Secrets 2002 -Bhardwaj, Macéo About a Boy 2002 -Leavenworth, Scotty Baby Geniuses 1999 -Leavenworth, Scotty The Green Mile 1999 -Leavenworth, Scotty Babe: Pig in the City 1998 -Leavenworth, Scotty Erin Brockovich 2000 -Koon, Rebecca Radio 2003 -Koon, Rebecca Talladega Nights: The Ballad of Ricky Bobby 2006 -Koon, Rebecca The Notebook 2004 -Koon, Rebecca A Time to Kill 1996 -Clarke, Lenny Lemony Snicket's A Series of Unfortunate Events 2004 -Clarke, Lenny Fever Pitch 2005 -Clarke, Lenny Me, Myself & Irene 2000 -Clarke, Lenny There's Something About Mary 1998 -Campbell, Scott Michael Push 2009 -Campbell, Scott Michael Brokeback Mountain 2005 -Campbell, Scott Michael Flubber 1997 -Dafoe, Willem Clear and Present Danger 1994 -Dafoe, Willem The Aviator 2004 -Dafoe, Willem Inside Man 2006 -Dafoe, Willem Spider-Man 2 2004 -Dafoe, Willem The English Patient 1996 -Dafoe, Willem John Carter 2012 -Dafoe, Willem Mr. Bean's Holiday 2007 -Dafoe, Willem Finding Nemo 2003 -Dafoe, Willem Spider-Man 3 2007 -Dafoe, Willem Speed 2: Cruise Control 1997 -Dafoe, Willem Spider-Man 2002 -Baluev, Aleksandr Deep Impact 1998 -Baluev, Aleksandr Turetskiy gambit 2005 -Baluev, Aleksandr The Peacemaker 1997 -Knepper, Robert Hostage 2005 -Knepper, Robert Good Night, and Good Luck. 2005 -Knepper, Robert The Day the Earth Stood Still 2008 -Struff, David Knight and Day 2010 -Struff, David The Fighter 2010 -Struff, David The Town 2010 -Iizuka, Yoshio The Time Machine 2002 -Iizuka, Yoshio Windtalkers 2002 -Iizuka, Yoshio The Master of Disguise 2002 -Iizuka, Yoshio Mission: Impossible III 2006 -Iizuka, Yoshio Letters from Iwo Jima 2006 -Benton, Ephraim American Gangster 2007 -Benton, Ephraim Precious 2009 -Benton, Ephraim Mickey Blue Eyes 1999 -Colantoni, Enrico Artificial Intelligence: AI 2001 -Colantoni, Enrico Galaxy Quest 1999 -Colantoni, Enrico Contagion 2011 -Colantoni, Enrico Stigmata 1999 -Matthews, Dave (I) I Now Pronounce You Chuck & Larry 2007 -Matthews, Dave (I) Just Go with It 2011 -Matthews, Dave (I) Because of Winn-Dixie 2005 -Matthews, Dave (I) You Don't Mess with the Zohan 2008 -Roberts, Ian (II) Anchorman: The Legend of Ron Burgundy 2004 -Roberts, Ian (II) Step Brothers 2008 -Roberts, Ian (II) Bring It On 2000 -Roberts, Ian (II) Talladega Nights: The Ballad of Ricky Bobby 2006 -Roberts, Ian (II) I Love You, Man 2009 -Roberts, Ian (II) The Dictator 2012 -Fullilove, Donald Curious George 2006 -Fullilove, Donald WALL·E 2008 -Fullilove, Donald Mulan 1998 -Fullilove, Donald Back to the Future Part II 1989 -Fullilove, Donald Up 2009 -Fullilove, Donald Back to the Future 1985 -Fullilove, Donald Spirit: Stallion of the Cimarron 2002 -McFee, Bruce Hairspray 2007 -McFee, Bruce The Hurricane 1999 -McFee, Bruce RV 2006 -McFee, Bruce Police Academy 1984 -McFee, Bruce Death Race 2008 -Raven, John (IV) Finding Forrester 2000 -Raven, John (IV) The Devil Wears Prada 2006 -Raven, John (IV) Changing Lanes 2002 -Fischer, Don Collateral Damage 2002 -Fischer, Don Star Trek: First Contact 1996 -Fischer, Don Forrest Gump 1994 -Stewart, Patrick (I) X-Men Origins: Wolverine 2009 -Stewart, Patrick (I) Star Trek: Insurrection 1998 -Stewart, Patrick (I) X-Men 2000 -Stewart, Patrick (I) Gnomeo & Juliet 2011 -Stewart, Patrick (I) X-Men: The Last Stand 2006 -Stewart, Patrick (I) Star Trek: Nemesis 2002 -Stewart, Patrick (I) Earth 2007 -Stewart, Patrick (I) Conspiracy Theory 1997 -Stewart, Patrick (I) X2 2003 -Stewart, Patrick (I) Chicken Little 2005 -Stewart, Patrick (I) The Prince of Egypt 1998 -Stewart, Patrick (I) Jimmy Neutron: Boy Genius 2001 -Stewart, Patrick (I) TMNT 2007 -Stewart, Patrick (I) Star Trek: First Contact 1996 -Pauley, Wilbur Beauty and the Beast 1991 -Pauley, Wilbur Enchanted 2007 -Pauley, Wilbur Home on the Range 2004 -Monroe, Meredith Transformers: Dark of the Moon 2011 -Monroe, Meredith Iron Man 2 2010 -Monroe, Meredith Minority Report 2002 -Sher, Antony Shakespeare in Love 1998 -Sher, Antony The Wolfman 2010 -Sher, Antony Superman II 1980 -Hurst, Ryan (I) We Were Soldiers 2002 -Hurst, Ryan (I) Rules of Engagement 2000 -Hurst, Ryan (I) Patch Adams 1998 -Hurst, Ryan (I) Remember the Titans 2000 -Hurst, Ryan (I) Rango 2011 -Hurst, Ryan (I) The Ladykillers 2004 -Hurst, Ryan (I) Saving Private Ryan 1998 -Lafayette, John Clear and Present Danger 1994 -Lafayette, John Doctor Dolittle 1998 -Lafayette, John A Civil Action 1998 -Bill, Leo 28 Days Later... 2002 -Bill, Leo Gosford Park 2001 -Bill, Leo Alice in Wonderland 2010 -Bill, Leo The Girl with the Dragon Tattoo 2011 -Albanese, Dennis College Road Trip 2008 -Albanese, Dennis What Happens in Vegas 2008 -Albanese, Dennis Night at the Museum: Battle of the Smithsonian 2009 -Lerner, Michael (I) Elf 2003 -Lerner, Michael (I) Godzilla 1998 -Lerner, Michael (I) Mirror Mirror 2012 -Lerner, Michael (I) My Favorite Martian 1999 -Wise, Jim (I) The SpongeBob SquarePants Movie 2004 -Wise, Jim (I) Space Jam 1996 -Wise, Jim (I) Talladega Nights: The Ballad of Ricky Bobby 2006 -Witherspoon, Reese Four Christmases 2008 -Witherspoon, Reese Water for Elephants 2011 -Witherspoon, Reese Legally Blonde 2: Red, White & Blonde 2003 -Witherspoon, Reese Just Like Heaven 2005 -Witherspoon, Reese Little Nicky 2000 -Witherspoon, Reese Walk the Line 2005 -Witherspoon, Reese Monsters vs Aliens 2009 -Witherspoon, Reese Legally Blonde 2001 -Witherspoon, Reese This Means War 2012 -Witherspoon, Reese Cruel Intentions 1999 -Witherspoon, Reese Pleasantville 1998 -Witherspoon, Reese Sweet Home Alabama 2002 -Scott, Judith (I) Flightplan 2005 -Scott, Judith (I) Guess Who 2005 -Scott, Judith (I) The Santa Clause 1994 -Cumming, Alan GoldenEye 1995 -Cumming, Alan It's Complicated 2009 -Cumming, Alan The Smurfs 2011 -Cumming, Alan Spice World 1997 -Cumming, Alan The Flintstones in Viva Rock Vegas 2000 -Cumming, Alan Eyes Wide Shut 1999 -Cumming, Alan X2 2003 -Cumming, Alan Spy Kids 2001 -Cumming, Alan Spy Kids 2: Island of Lost Dreams 2002 -Cumming, Alan Spy Kids 3-D: Game Over 2003 -Cumming, Alan Garfield 2004 -Warner, David (I) Scream 2 1997 -Warner, David (I) Money Talks 1997 -Warner, David (I) Titanic 1997 -Ressy, Dawn The Stepford Wives 2004 -Ressy, Dawn The Interpreter 2005 -Ressy, Dawn Hancock 2008 -Lawrence, Mark Christopher Garfield 2004 -Lawrence, Mark Christopher Christmas with the Kranks 2004 -Lawrence, Mark Christopher Terminator 2: Judgment Day 1991 -Lawrence, Mark Christopher The Island 2005 -Lawrence, Mark Christopher K-PAX 2001 -Lawrence, Mark Christopher The Pursuit of Happyness 2006 -Connick Jr., Harry My Dog Skip 2000 -Connick Jr., Harry Hope Floats 1998 -Connick Jr., Harry Independence Day 1996 -Connick Jr., Harry P.S. I Love You 2007 -Connick Jr., Harry Dolphin Tale 2011 -Mead, Amber The Bucket List 2007 -Mead, Amber Starsky & Hutch 2004 -Mead, Amber Red Eye 2005 -Mead, Amber Monster-in-Law 2005 -Tierney, Maura Baby Mama 2008 -Tierney, Maura Primary Colors 1998 -Tierney, Maura Forces of Nature 1999 -Tierney, Maura Liar Liar 1997 -Tierney, Maura Insomnia 2002 -Del Sherman, Barry There Will Be Blood 2007 -Del Sherman, Barry Independence Day 1996 -Del Sherman, Barry American Beauty 1999 -Holden, Arthur (I) The Sum of All Fears 2002 -Holden, Arthur (I) The Aviator 2004 -Holden, Arthur (I) The Bone Collector 1999 -Holden, Arthur (I) Mirror Mirror 2012 -Holden, Arthur (I) 300 2006 -Wisniewski, Andreas Mission: Impossible - Ghost Protocol 2011 -Wisniewski, Andreas Mission: Impossible 1996 -Wisniewski, Andreas The Living Daylights 1987 -Wisniewski, Andreas Die Hard 1988 -Spader, James Wall Street 1987 -Spader, James Mannequin 1987 -Spader, James Stargate 1994 -Spader, James Pretty in Pink 1986 -Leigh, Coco Mars Attacks! 1996 -Leigh, Coco K-PAX 2001 -Leigh, Coco There Will Be Blood 2007 -Muniz, Frankie Dr. Dolittle 2 2001 -Muniz, Frankie My Dog Skip 2000 -Muniz, Frankie Racing Stripes 2005 -Hoffman, Jake (I) Rain Man 1988 -Hoffman, Jake (I) Click 2006 -Hoffman, Jake (I) Hook 1991 -Christopher, June Ice Age: Dawn of the Dinosaurs 2009 -Christopher, June Bolt 2008 -Christopher, June Doctor Dolittle 1998 -Christopher, June The Time Traveler's Wife 2009 -Christopher, June Rain Man 1988 -Christopher, June The Princess and the Frog 2009 -Davitian, Ken Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan 2006 -Davitian, Ken S.W.A.T. 2003 -Davitian, Ken Holes 2003 -Davitian, Ken The Artist 2011 -Davitian, Ken Get Smart 2008 -Davitian, Ken Meet the Spartans 2008 -Wong, Kea X2 2003 -Wong, Kea X-Men: The Last Stand 2006 -Wong, Kea Snow Day 2000 -Davis, Don S. (I) The 6th Day 2000 -Davis, Don S. (I) Miracle 2004 -Davis, Don S. (I) Look Who's Talking 1989 -Davis, Don S. (I) Hook 1991 -Davis, Don S. (I) Cliffhanger 1993 -Davis, Don S. (I) Con Air 1997 -Sossamon, Shannyn 40 Days and 40 Nights 2002 -Sossamon, Shannyn The Holiday 2006 -Sossamon, Shannyn A Knight's Tale 2001 -Gazarov, Sergey Turetskiy gambit 2005 -Gazarov, Sergey Avgust. Vosmogo 2012 -Gazarov, Sergey 12 2007 -Gazarov, Sergey Kod apokalipsisa 2007 -Wozniak, Michael Battleship 2012 -Wozniak, Michael The Curious Case of Benjamin Button 2008 -Wozniak, Michael Battle Los Angeles 2011 -Wozniak, Michael The Skeleton Key 2005 -Techman, Charles Mona Lisa Smile 2003 -Techman, Charles Philadelphia 1993 -Techman, Charles Twelve Monkeys 1995 -Weston, Jennifer Spider-Man 3 2007 -Weston, Jennifer Deja Vu 2006 -Weston, Jennifer Scream 2 1997 -Ratzenberger, John Toy Story 3 2010 -Ratzenberger, John Brave 2012 -Ratzenberger, John The Incredibles 2004 -Ratzenberger, John Up 2009 -Ratzenberger, John WALL·E 2008 -Ratzenberger, John Cars 2006 -Ratzenberger, John Star Wars: Episode V - The Empire Strikes Back 1980 -Ratzenberger, John Ratatouille 2007 -Ratzenberger, John Superman II 1980 -Ratzenberger, John Sen to Chihiro no kamikakushi 2001 -Ratzenberger, John Cars 2 2011 -Ratzenberger, John Gandhi 1982 -Ratzenberger, John Superman 1978 -Ratzenberger, John Finding Nemo 2003 -Ratzenberger, John A Bug's Life 1998 -Ratzenberger, John Toy Story 1995 -Ratzenberger, John Toy Story 2 1999 -Ratzenberger, John Monsters, Inc. 2001 -Novak, Frank (II) Watchmen 2009 -Novak, Frank (II) Rumor Has It... 2005 -Novak, Frank (II) Independence Day 1996 -Cohn, Lauren (I) Catch Me If You Can 2002 -Cohn, Lauren (I) Legally Blonde 2: Red, White & Blonde 2003 -Cohn, Lauren (I) Space Cowboys 2000 -Cohn, Lauren (I) The Bucket List 2007 -Damon, Una Deep Impact 1998 -Damon, Una The Truman Show 1998 -Damon, Una Spider-Man 2002 -Leonardo, Chantelle Silent Hill 2006 -Leonardo, Chantelle Shall We Dance 2004 -Leonardo, Chantelle Hairspray 2007 -LeBlanc, Matt (I) Lost in Space 1998 -LeBlanc, Matt (I) Charlie's Angels: Full Throttle 2003 -LeBlanc, Matt (I) Charlie's Angels 2000 -Guillory, Sienna The Time Machine 2002 -Guillory, Sienna Resident Evil: Apocalypse 2004 -Guillory, Sienna Resident Evil: Afterlife 2010 -Guillory, Sienna Eragon 2006 -Guillory, Sienna Love Actually 2003 -Thompson, Emma (I) Nanny McPhee and the Big Bang 2010 -Thompson, Emma (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Thompson, Emma (I) Nanny McPhee 2005 -Thompson, Emma (I) Primary Colors 1998 -Thompson, Emma (I) I Am Legend 2007 -Thompson, Emma (I) Treasure Planet 2002 -Thompson, Emma (I) Men in Black 3 2012 -Thompson, Emma (I) Love Actually 2003 -Thompson, Emma (I) Harry Potter and the Prisoner of Azkaban 2004 -Thompson, Emma (I) Brave 2012 -Thompson, Emma (I) Harry Potter and the Order of the Phoenix 2007 -McNamara, Pat (I) The Silence of the Lambs 1991 -McNamara, Pat (I) Sleepers 1996 -McNamara, Pat (I) Fight Club 1999 -Edwards, Shannon (I) Real Steel 2011 -Edwards, Shannon (I) Contagion 2011 -Edwards, Shannon (I) Public Enemies 2009 -Edwards, Shannon (I) The Vow 2012 -O'Toole, Chelsea Step Up 2: The Streets 2008 -O'Toole, Chelsea Transformers: Revenge of the Fallen 2009 -O'Toole, Chelsea One Fine Day 1996 -Mabry, Julie Twelve Monkeys 1995 -Mabry, Julie The Replacements 2000 -Mabry, Julie Angels & Demons 2009 -Mabry, Julie Hannah Montana: The Movie 2009 -Mabry, Julie Yes Man 2008 -Ure, Stephen The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -Ure, Stephen The Lord of the Rings: The Two Towers 2002 -Ure, Stephen The Lord of the Rings: The Return of the King 2003 -McEwan, Geraldine Kari-gurashi no Arietti 2010 -McEwan, Geraldine Robin Hood: Prince of Thieves 1991 -McEwan, Geraldine Wallace & Gromit in The Curse of the Were-Rabbit 2005 -Harris, Ed (I) Stepmom 1998 -Harris, Ed (I) Enemy at the Gates 2001 -Harris, Ed (I) Absolute Power 1997 -Harris, Ed (I) The Truman Show 1998 -Harris, Ed (I) The Firm 1993 -Harris, Ed (I) National Treasure: Book of Secrets 2007 -Harris, Ed (I) The Rock 1996 -Harris, Ed (I) Apollo 13 1995 -Harris, Ed (I) Radio 2003 -Harris, Ed (I) A History of Violence 2005 -Harris, Ed (I) The Hours 2002 -Harris, Ed (I) A Beautiful Mind 2001 -Kidman, Nicole Just Go with It 2011 -Kidman, Nicole The Queen 2006 -Kidman, Nicole Batman Forever 1995 -Kidman, Nicole Bewitched 2005 -Kidman, Nicole The Interpreter 2005 -Kidman, Nicole The Others 2001 -Kidman, Nicole Moulin Rouge! 2001 -Kidman, Nicole Practical Magic 1998 -Kidman, Nicole Happy Feet 2006 -Kidman, Nicole Cold Mountain 2003 -Kidman, Nicole The Peacemaker 1997 -Kidman, Nicole The Golden Compass 2007 -Kidman, Nicole Panic Room 2002 -Kidman, Nicole Eyes Wide Shut 1999 -Kidman, Nicole The Stepford Wives 2004 -Kidman, Nicole Australia 2008 -Kidman, Nicole The Hours 2002 -Wittenberg, Dave (I) The Incredible Hulk 2008 -Wittenberg, Dave (I) X-Men Origins: Wolverine 2009 -Wittenberg, Dave (I) Ghost Rider 2007 -Wittenberg, Dave (I) Pirates of the Caribbean: At World's End 2007 -Wittenberg, Dave (I) The Chronicles of Narnia: Prince Caspian 2008 -Wittenberg, Dave (I) Night at the Museum: Battle of the Smithsonian 2009 -Wittenberg, Dave (I) Alice in Wonderland 2010 -Wittenberg, Dave (I) Transformers: Dark of the Moon 2011 -Kudrow, Lisa Dr. Dolittle 2 2001 -Kudrow, Lisa Hotel for Dogs 2009 -Kudrow, Lisa Hanging Up 2000 -Kudrow, Lisa Analyze This 1999 -Kudrow, Lisa Easy A 2010 -Kudrow, Lisa P.S. I Love You 2007 -Malloy, Matt (I) G.I. Joe: The Rise of Cobra 2009 -Malloy, Matt (I) Role Models 2008 -Malloy, Matt (I) Finding Forrester 2000 -Malloy, Matt (I) Armageddon 1998 -Malloy, Matt (I) As Good as It Gets 1997 -Malloy, Matt (I) Changing Lanes 2002 -Malloy, Matt (I) The Stepford Wives 2004 -Malloy, Matt (I) Artificial Intelligence: AI 2001 -Malloy, Matt (I) Across the Sea of Time 1995 -Malloy, Matt (I) Calendar Girls 2003 -Roberts, Emma (II) Hotel for Dogs 2009 -Roberts, Emma (II) Blow 2001 -Roberts, Emma (II) America's Sweethearts 2001 -Roberts, Emma (II) Scream 4 2011 -Feig, Paul Knocked Up 2007 -Feig, Paul Bad Teacher 2011 -Feig, Paul Bridesmaids 2011 -Siff, Maggie Funny People 2009 -Siff, Maggie Michael Clayton 2007 -Siff, Maggie Push 2009 -Hoag, Judith A Nightmare on Elm Street 2010 -Hoag, Judith Armageddon 1998 -Hoag, Judith I Am Number Four 2011 -Clarke, Jason (I) Death Race 2008 -Clarke, Jason (I) Public Enemies 2009 -Clarke, Jason (I) Wall Street: Money Never Sleeps 2010 -Bana, Eric Hulk 2003 -Bana, Eric Troy 2004 -Bana, Eric The Time Traveler's Wife 2009 -Bana, Eric Hanna 2011 -Bana, Eric Star Trek 2009 -Bana, Eric Munich 2005 -Bana, Eric Black Hawk Down 2001 -Bana, Eric Funny People 2009 -Bana, Eric Finding Nemo 2003 -Anderson, Blaine Hot Tub Time Machine 2010 -Anderson, Blaine Scary Movie 4 2006 -Anderson, Blaine Final Destination 5 2011 -Vandecruys, Al The Aviator 2004 -Vandecruys, Al The Day After Tomorrow 2004 -Vandecruys, Al The Sum of All Fears 2002 -Vandecruys, Al Gothika 2003 -George, Brian (I) Pirates of the Caribbean: At World's End 2007 -George, Brian (I) Keeping the Faith 2000 -George, Brian (I) Cars 2006 -George, Brian (I) Inspector Gadget 1999 -George, Brian (I) Austin Powers: International Man of Mystery 1997 -George, Brian (I) Horrible Bosses 2011 -George, Brian (I) The Golden Compass 2007 -George, Brian (I) Night at the Museum: Battle of the Smithsonian 2009 -Kent, Peter (I) Total Recall 1990 -Kent, Peter (I) The 6th Day 2000 -Kent, Peter (I) Last Action Hero 1993 -Leong, Al The Scorpion King 2002 -Leong, Al Godzilla 1998 -Leong, Al Die Hard 1988 -Hulce, Tom Wings of Courage 1995 -Hulce, Tom Jumper 2008 -Hulce, Tom The Hunchback of Notre Dame 1996 -Hulce, Tom Amadeus 1984 -Heigl, Katherine Knocked Up 2007 -Heigl, Katherine New Year's Eve 2011 -Heigl, Katherine The Ugly Truth 2009 -Heigl, Katherine Killers 2010 -Heigl, Katherine 27 Dresses 2008 -Heigl, Katherine Life as We Know It 2010 -Miller, Mark Jeffrey Cold Mountain 2003 -Miller, Mark Jeffrey Runaway Jury 2003 -Miller, Mark Jeffrey October Sky 1999 -Miller, Mark Jeffrey Black Knight 2001 -Miller, Mark Jeffrey Divine Secrets of the Ya-Ya Sisterhood 2002 -Miller, Mark Jeffrey The Patriot 2000 -Williamson, Felix Babe: Pig in the City 1998 -Williamson, Felix Happy Feet 2006 -Williamson, Felix The Thin Red Line 1998 -Dancy, Hugh King Arthur 2004 -Dancy, Hugh Black Hawk Down 2001 -Dancy, Hugh Confessions of a Shopaholic 2009 -Lawson, Denis Star Wars: Episode VI - Return of the Jedi 1983 -Lawson, Denis Star Wars 1977 -Lawson, Denis Star Wars: Episode V - The Empire Strikes Back 1980 -Wallen, Ashley The Phantom of the Opera 2004 -Wallen, Ashley Scooby-Doo 2002 -Wallen, Ashley Moulin Rouge! 2001 -Fuller, Kurt (I) Anger Management 2003 -Fuller, Kurt (I) Scary Movie 2000 -Fuller, Kurt (I) Superhero Movie 2008 -Fuller, Kurt (I) Midnight in Paris 2011 -Fuller, Kurt (I) The Pursuit of Happyness 2006 -Williams, Katt Norbit 2007 -Williams, Katt Epic Movie 2007 -Williams, Katt Cats & Dogs: The Revenge of Kitty Galore 2010 -Orpheus, David The Wolfman 2010 -Orpheus, David Clash of the Titans 2010 -Orpheus, David Prince of Persia: The Sands of Time 2010 -Orpheus, David Get Him to the Greek 2010 -Dale, Alan (I) After the Sunset 2004 -Dale, Alan (I) Indiana Jones and the Kingdom of the Crystal Skull 2008 -Dale, Alan (I) The Girl with the Dragon Tattoo 2011 -Dale, Alan (I) Star Trek: Nemesis 2002 -Angarano, Michael Almost Famous 2000 -Angarano, Michael The Forbidden Kingdom 2008 -Angarano, Michael Seabiscuit 2003 -Angarano, Michael Sky High 2005 -Buffer, Michael Rocky V 1990 -Buffer, Michael The Fighter 2010 -Buffer, Michael Rocky Balboa 2006 -Buffer, Michael You Don't Mess with the Zohan 2008 -Hamilton, LisaGay The Sum of All Fears 2002 -Hamilton, LisaGay Twelve Monkeys 1995 -Hamilton, LisaGay Halloween H20: 20 Years Later 1998 -Hamilton, LisaGay Jackie Brown 1997 -Chubai, Dawn The Day the Earth Stood Still 2008 -Chubai, Dawn Mission: Impossible - Ghost Protocol 2011 -Chubai, Dawn Watchmen 2009 -Chubai, Dawn The Twilight Saga: Eclipse 2010 -Chubai, Dawn 4: Rise of the Silver Surfer 2007 -Chubai, Dawn Final Destination 5 2011 -Chubai, Dawn Cats & Dogs: The Revenge of Kitty Galore 2010 -Chubai, Dawn Diary of a Wimpy Kid: Rodrick Rules 2011 -Williams, Mark (I) Shakespeare in Love 1998 -Williams, Mark (I) Harry Potter and the Goblet of Fire 2005 -Williams, Mark (I) Stardust 2007 -Williams, Mark (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Williams, Mark (I) 101 Dalmatians 1996 -Williams, Mark (I) Harry Potter and the Chamber of Secrets 2002 -Williams, Mark (I) Harry Potter and the Deathly Hallows: Part 2 2011 -Williams, Mark (I) Harry Potter and the Half-Blood Prince 2009 -Williams, Mark (I) Harry Potter and the Order of the Phoenix 2007 -Williams, Mark (I) Harry Potter and the Prisoner of Azkaban 2004 -Simonini, Rico Max Payne 2008 -Simonini, Rico My Sister's Keeper 2009 -Simonini, Rico Bruce Almighty 2003 -Wade, Jenny Monster-in-Law 2005 -Wade, Jenny No Reservations 2007 -Wade, Jenny Rumor Has It... 2005 -Wade, Jenny Red Eye 2005 -Bellamy, Diana Police Academy 2: Their First Assignment 1985 -Bellamy, Diana Air Force One 1997 -Bellamy, Diana Outbreak 1995 -Ward, Jim (I) Pirates of the Caribbean: At World's End 2007 -Ward, Jim (I) Sen to Chihiro no kamikakushi 2001 -Ward, Jim (I) WALL·E 2008 -Ward, Jim (I) Night at the Museum: Battle of the Smithsonian 2009 -Ward, Jim (I) Home on the Range 2004 -Ward, Jim (I) Toy Story 3 2010 -Ward, Jim (I) The Lorax 2012 -Ward, Jim (I) Treasure Planet 2002 -Ward, Jim (I) Cars 2006 -Ward, Jim (I) Star Wars: Episode I - The Phantom Menace 1999 -Ward, Jim (I) The Chronicles of Narnia: Prince Caspian 2008 -Ward, Jim (I) The Lord of the Rings: The Two Towers 2002 -Ward, Jim (I) Clash of the Titans 2010 -MacDowell, Andie Michael 1996 -MacDowell, Andie Groundhog Day 1993 -MacDowell, Andie Four Weddings and a Funeral 1994 -MacDowell, Andie Monte Carlo 2011 -MacDowell, Andie Barnyard 2006 -MacDowell, Andie Footloose 2011 -Rivitz, David Shallow Hal 2001 -Rivitz, David Black Knight 2001 -Rivitz, David The Patriot 2000 -Ward, Justin (II) Starship Troopers 1997 -Ward, Justin (II) As Good as It Gets 1997 -Ward, Justin (II) The Thin Red Line 1998 -Ward, Justin (II) Conspiracy Theory 1997 -Imbergamo, Frankie The Game Plan 2007 -Imbergamo, Frankie Paul Blart: Mall Cop 2009 -Imbergamo, Frankie Grown Ups 2010 -Imbergamo, Frankie Knight and Day 2010 -Imbergamo, Frankie The Fighter 2010 -Womick, Brianna Star Trek 2009 -Womick, Brianna G.I. Joe: The Rise of Cobra 2009 -Womick, Brianna The Curious Case of Benjamin Button 2008 -Womick, Brianna Get Him to the Greek 2010 -Womick, Brianna Alvin and the Chipmunks 2007 -Marsden, James (I) Enchanted 2007 -Marsden, James (I) Cats & Dogs: The Revenge of Kitty Galore 2010 -Marsden, James (I) Zoolander 2001 -Marsden, James (I) Hairspray 2007 -Marsden, James (I) X2 2003 -Marsden, James (I) Death at a Funeral 2010 -Marsden, James (I) Superman Returns 2006 -Marsden, James (I) X-Men 2000 -Marsden, James (I) The Notebook 2004 -Marsden, James (I) X-Men: The Last Stand 2006 -Marsden, James (I) Hop 2011 -Marsden, James (I) 27 Dresses 2008 -O'Hara, David (I) The Devil's Own 1997 -O'Hara, David (I) Cowboys & Aliens 2011 -O'Hara, David (I) The Departed 2006 -O'Hara, David (I) Contraband 2012 -O'Hara, David (I) Wanted 2008 -O'Hara, David (I) Harry Potter and the Deathly Hallows: Part 1 2010 -O'Hara, David (I) Braveheart 1995 -Whyte, Ian (II) Harry Potter and the Goblet of Fire 2005 -Whyte, Ian (II) AVP: Alien vs. Predator 2004 -Whyte, Ian (II) AVPR: Aliens vs Predator - Requiem 2007 -Whyte, Ian (II) Clash of the Titans 2010 -Whyte, Ian (II) Prometheus 2012 -McDonald, Christopher (I) Flubber 1997 -McDonald, Christopher (I) Superhero Movie 2008 -McDonald, Christopher (I) Spy Kids 2: Island of Lost Dreams 2002 -McDonald, Christopher (I) Rumor Has It... 2005 -McDonald, Christopher (I) The Faculty 1998 -McDonald, Christopher (I) The Perfect Storm 2000 -Kivel, Barry Crocodile Dundee 1986 -Kivel, Barry One Fine Day 1996 -Kivel, Barry The Natural 1984 -Meredith, Burgess Rocky III 1982 -Meredith, Burgess Rocky Balboa 2006 -Meredith, Burgess Rocky V 1990 -Williamson, Mykelti Ali 2001 -Williamson, Mykelti Forrest Gump 1994 -Williamson, Mykelti After the Sunset 2004 -Williamson, Mykelti Three Kings 1999 -Williamson, Mykelti Primary Colors 1998 -Williamson, Mykelti Heat 1995 -Williamson, Mykelti Con Air 1997 -Williamson, Mykelti The Final Destination 2009 -Kove, Martin Rambo: First Blood Part II 1985 -Kove, Martin The Karate Kid 1984 -Kove, Martin The Karate Kid, Part II 1986 -Waters, Dina The First Wives Club 1996 -Waters, Dina Freaky Friday 2003 -Waters, Dina Striptease 1996 -Waters, Dina Just Like Heaven 2005 -Waters, Dina The Haunted Mansion 2003 -Waters, Dina John Q 2002 -McClain, John (III) Secretariat 2010 -McClain, John (III) The Longest Yard 2005 -McClain, John (III) The Game Plan 2007 -Crowe, Russell American Gangster 2007 -Crowe, Russell 3:10 to Yuma 2007 -Crowe, Russell Master and Commander: The Far Side of the World 2003 -Crowe, Russell Cinderella Man 2005 -Crowe, Russell Robin Hood 2010 -Crowe, Russell Gladiator 2000 -Crowe, Russell Body of Lies 2008 -Crowe, Russell The Insider 1999 -Crowe, Russell A Beautiful Mind 2001 -Crowe, Russell L.A. Confidential 1997 -Bates, Paul (I) The Preacher's Wife 1996 -Bates, Paul (I) Coming to America 1988 -Bates, Paul (I) Hannah and Her Sisters 1986 -Bates, Paul (I) Bad Teacher 2011 -Bates, Paul (I) 8 Mile 2002 -Hegarty, Susan Lilo & Stitch 2002 -Hegarty, Susan Where the Heart Is 2000 -Hegarty, Susan High Fidelity 2000 -Baker, Andrea (III) Pleasantville 1998 -Baker, Andrea (III) What Women Want 2000 -Baker, Andrea (III) Dinosaur 2000 -Baker, Andrea (III) Final Fantasy: The Spirits Within 2001 -Winbush, Troy (I) John Q 2002 -Winbush, Troy (I) The Replacements 2000 -Winbush, Troy (I) National Treasure: Book of Secrets 2007 -Dorr, Sabi Mr. & Mrs. Smith 2005 -Dorr, Sabi Munich 2005 -Dorr, Sabi Epic Movie 2007 -Dorr, Sabi The Negotiator 1998 -Brack, Suzy Fred Claus 2007 -Brack, Suzy The Fugitive 1993 -Brack, Suzy Public Enemies 2009 -Morse, Jim (I) Courage Under Fire 1996 -Morse, Jim (I) The General's Daughter 1999 -Morse, Jim (I) Windtalkers 2002 -Morse, Jim (I) Starship Troopers 1997 -Reilly, Sean Patrick (I) Jerry Maguire 1996 -Reilly, Sean Patrick (I) Sleepers 1996 -Reilly, Sean Patrick (I) The Sorcerer's Apprentice 2010 -Billings, Earl Con Air 1997 -Billings, Earl Fat Albert 2004 -Billings, Earl Thank You for Smoking 2005 -Lehmann, Edie Mulan 1998 -Lehmann, Edie Dinosaur 2000 -Lehmann, Edie The Little Mermaid 1989 -Lehmann, Edie License to Wed 2007 -Aldridge, Hunter The Blind Side 2009 -Aldridge, Hunter Zombieland 2009 -Aldridge, Hunter We Are Marshall 2006 -Nieves, Benny The Devil's Advocate 1997 -Nieves, Benny Double Take 2001 -Nieves, Benny Miss Congeniality 2: Armed and Fabulous 2005 -Lane, Jonathan (III) The Curious Case of Benjamin Button 2008 -Lane, Jonathan (III) Changeling 2008 -Lane, Jonathan (III) Ocean's Thirteen 2007 -Lane, Jonathan (III) Live Free or Die Hard 2007 -Efron, Marshall Horton Hears a Who! 2008 -Efron, Marshall Robots 2005 -Efron, Marshall Home on the Range 2004 -Efron, Marshall Ice Age: The Meltdown 2006 -Wilding, Spencer The Hitchhiker's Guide to the Galaxy 2005 -Wilding, Spencer Ghost Rider: Spirit of Vengeance 2011 -Wilding, Spencer Wrath of the Titans 2012 -Wilding, Spencer The Golden Compass 2007 -Wilding, Spencer Stardust 2007 -Wilding, Spencer Batman Begins 2005 -Wilding, Spencer Eragon 2006 -Futterman, Nika Ice Age: Dawn of the Dinosaurs 2009 -Futterman, Nika The Ant Bully 2006 -Futterman, Nika Open Season 2006 -Futterman, Nika Shark Tale 2004 -Futterman, Nika Barnyard 2006 -Futterman, Nika Spider-Man 3 2007 -Futterman, Nika The Wild 2006 -Futterman, Nika Open Season 3 2010 -Appel, Dale Paul Blart: Mall Cop 2009 -Appel, Dale 21 2008 -Appel, Dale Bride Wars 2009 -Appel, Dale Grown Ups 2010 -Appel, Dale Ghosts of Girlfriends Past 2009 -Evermore, J.D. Where the Heart Is 2000 -Evermore, J.D. The Rookie 2002 -Evermore, J.D. Glory Road 2006 -Evermore, J.D. Walk the Line 2005 -Chappelle, Dave Blue Streak 1999 -Chappelle, Dave You've Got Mail 1998 -Chappelle, Dave Con Air 1997 -Chappelle, Dave The Nutty Professor 1996 -Latifah, Queen Hairspray 2007 -Latifah, Queen Chicago 2002 -Latifah, Queen Pinocchio 2002 -Latifah, Queen Ice Age: The Meltdown 2006 -Latifah, Queen The Bone Collector 1999 -Latifah, Queen Barbershop 2: Back in Business 2004 -Latifah, Queen Set It Off 1996 -Latifah, Queen Scary Movie 3 2003 -Latifah, Queen Bringing Down the House 2003 -Latifah, Queen What Happens in Vegas 2008 -Latifah, Queen The Secret Life of Bees 2008 -Latifah, Queen Ice Age: Dawn of the Dinosaurs 2009 -Shyer, Christopher J. Edgar 2011 -Shyer, Christopher The Core 2003 -Shyer, Christopher Along Came a Spider 2001 -Symonds, Robert Catch Me If You Can 2002 -Symonds, Robert Primary Colors 1998 -Symonds, Robert The Exorcist 1973 -Hawkes, John (I) American Gangster 2007 -Hawkes, John (I) Hard Ball 2001 -Hawkes, John (I) Miami Vice 2006 -Hawkes, John (I) Congo 1995 -Hawkes, John (I) Contagion 2011 -Hawkes, John (I) Rush Hour 1998 -Hawkes, John (I) Blue Streak 1999 -Hawkes, John (I) Identity 2003 -Hawkes, John (I) I Still Know What You Did Last Summer 1998 -Hawkes, John (I) The Perfect Storm 2000 -Dunsmore, Rosemary Dreamcatcher 2003 -Dunsmore, Rosemary Cliffhanger 1993 -Dunsmore, Rosemary Total Recall 1990 -Stewart, Nils Allen The Mask 1994 -Stewart, Nils Allen Anger Management 2003 -Stewart, Nils Allen The Scorpion King 2002 -Stewart, Nils Allen Space Cowboys 2000 -Chun, Charles Rahi Mission: Impossible III 2006 -Chun, Charles Rahi Deep Impact 1998 -Chun, Charles Rahi My Favorite Martian 1999 -Chun, Charles Rahi Dumb & Dumber 1994 -Proval, David The Siege 1998 -Proval, David The Relic 1997 -Proval, David Miss Congeniality 2: Armed and Fabulous 2005 -Baker, Simon (I) The Devil Wears Prada 2006 -Baker, Simon (I) L.A. Confidential 1997 -Baker, Simon (I) The Ring Two 2005 -Scorupco, Izabella Vertical Limit 2000 -Scorupco, Izabella GoldenEye 1995 -Scorupco, Izabella Exorcist: The Beginning 2004 -Scorupco, Izabella Reign of Fire 2002 -Rex, Simon (I) Scary Movie 3 2003 -Rex, Simon (I) Scary Movie 4 2006 -Rex, Simon (I) Superhero Movie 2008 -King, Larry (I) The Kid 2000 -King, Larry (I) Courage Under Fire 1996 -King, Larry (I) Ghost Busters 1984 -King, Larry (I) Bee Movie 2007 -King, Larry (I) John Q 2002 -King, Larry (I) Primary Colors 1998 -King, Larry (I) The Jackal 1997 -King, Larry (I) Shrek Forever After 2010 -King, Larry (I) Shrek the Third 2007 -King, Larry (I) Enemy of the State 1998 -King, Larry (I) The Stepford Wives 2004 -King, Larry (I) Contact 1997 -King, Larry (I) The Long Kiss Goodnight 1996 -King, Larry (I) Shrek 2 2004 -King, Larry (I) Fahrenheit 9/11 2004 -King, Larry (I) America's Sweethearts 2001 -Newsome, Paula Little Miss Sunshine 2006 -Newsome, Paula Guess Who 2005 -Newsome, Paula Home Alone 1990 -Baker, Dylan (I) Road to Perdition 2002 -Baker, Dylan (I) Spider-Man 2 2004 -Baker, Dylan (I) Along Came a Spider 2001 -Baker, Dylan (I) Secretariat 2010 -Baker, Dylan (I) Hide and Seek 2005 -Baker, Dylan (I) The Cell 2000 -Baker, Dylan (I) Changing Lanes 2002 -Baker, Dylan (I) Spider-Man 3 2007 -Baker, Dylan (I) Disclosure 1994 -Robinson, Craig (I) Knocked Up 2007 -Robinson, Craig (I) Shrek Forever After 2010 -Robinson, Craig (I) D-War 2007 -Robinson, Craig (I) Hot Tub Time Machine 2010 -Robinson, Craig (I) Night at the Museum: Battle of the Smithsonian 2009 -Robinson, Craig (I) Pineapple Express 2008 -Robinson, Craig (I) Zack and Miri Make a Porno 2008 -Scott, William Lee Gone in Sixty Seconds 2000 -Scott, William Lee Identity 2003 -Scott, William Lee October Sky 1999 -Scott, William Lee The Butterfly Effect 2004 -Scott, William Lee Pearl Harbor 2001 -Wright, Ben (I) One Hundred and One Dalmatians 1961 -Wright, Ben (I) The Jungle Book 1967 -Wright, Ben (I) The Little Mermaid 1989 -Gilleran, Charley Jerry Maguire 1996 -Gilleran, Charley Munich 2005 -Gilleran, Charley The Terminal 2004 -Acovone, Jay Cast Away 2000 -Acovone, Jay S.W.A.T. 2003 -Acovone, Jay Collateral Damage 2002 -Acovone, Jay World Trade Center 2006 -Acovone, Jay The Peacemaker 1997 -Acovone, Jay Out for Justice 1991 -Acovone, Jay Terminator 3: Rise of the Machines 2003 -Acovone, Jay Independence Day 1996 -Palmer, Keke Barbershop 2: Back in Business 2004 -Palmer, Keke Madea's Family Reunion 2006 -Palmer, Keke Madea Goes to Jail 2009 -Hodge, Aldis Die Hard: With a Vengeance 1995 -Hodge, Aldis The Ladykillers 2004 -Hodge, Aldis Happy Feet 2006 -Hodge, Aldis Big Momma's House 2000 -Costigan, Kelley (II) Shakespeare in Love 1998 -Costigan, Kelley (II) Sleepy Hollow 1999 -Costigan, Kelley (II) Chocolat 2000 -Barrese, Sasha The Ring 2002 -Barrese, Sasha American Pie 1999 -Barrese, Sasha The Hangover Part II 2011 -Barrese, Sasha The Hangover 2009 -Barrese, Sasha Legally Blonde 2001 -Cherry, Jake Night at the Museum: Battle of the Smithsonian 2009 -Cherry, Jake The Sorcerer's Apprentice 2010 -Cherry, Jake Night at the Museum 2006 -Neuhaus, Ingo Dante's Peak 1997 -Neuhaus, Ingo The Rock 1996 -Neuhaus, Ingo L.A. Confidential 1997 -Adamthwaite, Michael Watchmen 2009 -Adamthwaite, Michael Sucker Punch 2011 -Adamthwaite, Michael Eight Below 2006 -Adamthwaite, Michael New Moon 2009 -Adamthwaite, Michael Final Destination 5 2011 -Campbell, Gregory R. Law Abiding Citizen 2009 -Campbell, Gregory R. Limitless 2011 -Campbell, Gregory R. Marley & Me 2008 -Adams, Lillian Bruce Almighty 2003 -Adams, Lillian Little Nicky 2000 -Adams, Lillian Magnolia 1999 -McArthur, Lynn Madea Goes to Jail 2009 -McArthur, Lynn Killers 2010 -McArthur, Lynn Why Did I Get Married Too? 2010 -McArthur, Lynn Zombieland 2009 -McArthur, Lynn The Blind Side 2009 -Vega, Makenzie The Family Man 2000 -Vega, Makenzie Sin City 2005 -Vega, Makenzie Saw 2004 -Vega, Makenzie X-Men: The Last Stand 2006 -Lambert, Kirk (II) The Bourne Ultimatum 2007 -Lambert, Kirk (II) Body of Lies 2008 -Lambert, Kirk (II) National Treasure 2004 -Lambert, Kirk (II) National Treasure: Book of Secrets 2007 -Lambert, Kirk (II) Syriana 2005 -Cecere, Fulvio Cinderella Man 2005 -Cecere, Fulvio Watchmen 2009 -Cecere, Fulvio Paycheck 2003 -Cecere, Fulvio Resident Evil: Afterlife 2010 -Cecere, Fulvio The Hurricane 1999 -Cecere, Fulvio No Reservations 2007 -Cecere, Fulvio The Bone Collector 1999 -Cecere, Fulvio Double Jeopardy 1999 -Cecere, Fulvio John Tucker Must Die 2006 -Lane, Nathan (I) Stuart Little 2 2002 -Lane, Nathan (I) The Birdcage 1996 -Lane, Nathan (I) Stuart Little 1999 -Lane, Nathan (I) Austin Powers in Goldmember 2002 -Lane, Nathan (I) Mousehunt 1997 -Lane, Nathan (I) Mirror Mirror 2012 -Lane, Nathan (I) The Lion King 1994 -Stashwick, Todd Along Came Polly 2004 -Stashwick, Todd The Rundown 2003 -Stashwick, Todd You, Me and Dupree 2006 -Christopher, Dyllan Stuart Little 2 2002 -Christopher, Dyllan Seabiscuit 2003 -Christopher, Dyllan Armageddon 1998 -Chambers, Faune A. Austin Powers: The Spy Who Shagged Me 1999 -Chambers, Faune A. White Chicks 2004 -Chambers, Faune A. Like Mike 2002 -Chambers, Faune A. The Curious Case of Benjamin Button 2008 -Chambers, Faune A. Epic Movie 2007 -Chambers, Faune A. Austin Powers in Goldmember 2002 -Wells, Claudette Barnyard 2006 -Wells, Claudette Mulan 1998 -Wells, Claudette Bride Wars 2009 -Wells, Claudette The Princess and the Frog 2009 -Mone, Brian Me, Myself & Irene 2000 -Mone, Brian Dumb & Dumber 1994 -Mone, Brian There's Something About Mary 1998 -Mone, Brian Shallow Hal 2001 -Leitner, Kurt Law Abiding Citizen 2009 -Leitner, Kurt Eyes Wide Shut 1999 -Leitner, Kurt Rocky V 1990 -Leitner, Kurt Dead Poets Society 1989 -Silver, Eric (I) The Amazing Spider-Man 2012 -Silver, Eric (I) No Reservations 2007 -Silver, Eric (I) American Gangster 2007 -Williams, Brian J. Holes 2003 -Williams, Brian J. The Artist 2011 -Williams, Brian J. Conspiracy Theory 1997 -Grant, Hugh (I) Bridget Jones's Diary 2001 -Grant, Hugh (I) Notting Hill 1999 -Grant, Hugh (I) Four Weddings and a Funeral 1994 -Grant, Hugh (I) Bridget Jones: The Edge of Reason 2004 -Grant, Hugh (I) About a Boy 2002 -Grant, Hugh (I) Mickey Blue Eyes 1999 -Grant, Hugh (I) Love Actually 2003 -Grant, Hugh (I) Two Weeks Notice 2002 -Korey, Alix The Hunchback of Notre Dame 1996 -Korey, Alix Anastasia 1997 -Korey, Alix Beauty and the Beast 1991 -Cobden, Joe The Aviator 2004 -Cobden, Joe The Day After Tomorrow 2004 -Cobden, Joe Source Code 2011 -Cobden, Joe The Vow 2012 -Kinsey, Lance Dreamcatcher 2003 -Kinsey, Lance Police Academy 2: Their First Assignment 1985 -Kinsey, Lance Police Academy 3: Back in Training 1986 -Simmons, J.K. The Cider House Rules 1999 -Simmons, J.K. Thank You for Smoking 2005 -Simmons, J.K. I Love You, Man 2009 -Simmons, J.K. Juno 2007 -Simmons, J.K. Aliens in the Attic 2009 -Simmons, J.K. The Ladykillers 2004 -Simmons, J.K. Autumn in New York 2000 -Simmons, J.K. Spider-Man 2 2004 -Simmons, J.K. True Grit 2010 -Simmons, J.K. Anastasia 1997 -Simmons, J.K. The Jackal 1997 -Simmons, J.K. Spider-Man 2002 -Simmons, J.K. Burn After Reading 2008 -Simmons, J.K. Cats & Dogs: The Revenge of Kitty Galore 2010 -Simmons, J.K. Contraband 2012 -Simmons, J.K. The Mexican 2001 -Simmons, J.K. Spider-Man 3 2007 -Simmons, J.K. Hidalgo 2004 -Simmons, J.K. Megamind 2010 -Simmons, J.K. The First Wives Club 1996 -LeMay, Addison (I) Salt 2010 -LeMay, Addison (I) Men in Black 3 2012 -LeMay, Addison (I) Captain America: The First Avenger 2011 -Belafsky, Marty Pearl Harbor 2001 -Belafsky, Marty Evolution 2001 -Belafsky, Marty Men in Black II 2002 -Belafsky, Marty America's Sweethearts 2001 -Douglas, Sam (I) Perfume: The Story of a Murderer 2006 -Douglas, Sam (I) Mission: Impossible 1996 -Douglas, Sam (I) The Fifth Element 1997 -Douglas, Sam (I) Batman 1989 -Douglas, Sam (I) Eyes Wide Shut 1999 -Cheek, Molly American Wedding 2003 -Cheek, Molly American Reunion 2012 -Cheek, Molly Spider-Man 2 2004 -Cheek, Molly Drag Me to Hell 2009 -Cheek, Molly American Pie 1999 -Cheek, Molly American Pie 2 2001 -Cordice, Louis Harry Potter and the Deathly Hallows: Part 1 2010 -Cordice, Louis Harry Potter and the Deathly Hallows: Part 2 2011 -Cordice, Louis Harry Potter and the Half-Blood Prince 2009 -Reevis, Steve The Longest Yard 2005 -Reevis, Steve Fargo 1996 -Reevis, Steve Dances with Wolves 1990 -Cameron, Cody Shrek 2001 -Cameron, Cody Shrek Forever After 2010 -Cameron, Cody Shrek 2 2004 -Cameron, Cody Open Season 2006 -Cameron, Cody Madagascar 2005 -Cameron, Cody Shrek the Third 2007 -Cameron, Cody Cloudy with a Chance of Meatballs 2009 -Cameron, Cody Open Season 3 2010 -Elias, Jeannie Jimmy Neutron: Boy Genius 2001 -Elias, Jeannie Over the Hedge 2006 -Elias, Jeannie Babe: Pig in the City 1998 -Elias, Jeannie The Wild 2006 -Electra, Carmen Bedtime Stories 2008 -Electra, Carmen Meet the Spartans 2008 -Electra, Carmen Starsky & Hutch 2004 -Electra, Carmen Date Movie 2006 -Electra, Carmen Epic Movie 2007 -Electra, Carmen Cheaper by the Dozen 2 2005 -Electra, Carmen Scary Movie 4 2006 -Electra, Carmen Scary Movie 2000 -Peck, Josh (I) Snow Day 2000 -Peck, Josh (I) Ice Age: Dawn of the Dinosaurs 2009 -Peck, Josh (I) Aliens in the Attic 2009 -Peck, Josh (I) Ice Age: The Meltdown 2006 -Randolph, David (I) Lilo & Stitch 2002 -Randolph, David (I) TMNT 2007 -Randolph, David (I) Halloween 2007 -Randolph, David (I) The Lion King 1994 -Randolph, David (I) Final Fantasy: The Spirits Within 2001 -Randolph, David (I) The Nightmare Before Christmas 1993 -O'Donnell, Rosie Tarzan 1999 -O'Donnell, Rosie The Flintstones 1994 -O'Donnell, Rosie Sleepless in Seattle 1993 -O'Donnell, Rosie The Flintstones in Viva Rock Vegas 2000 -Badalucco Jr., Joseph Ransom 1996 -Badalucco Jr., Joseph Godzilla 1998 -Badalucco Jr., Joseph The Siege 1998 -Badalucco Jr., Joseph Unfaithful 2002 -Badalucco Jr., Joseph Two Weeks Notice 2002 -Rietty, Robert For Your Eyes Only 1981 -Rietty, Robert Never Say Never Again 1983 -Rietty, Robert Hannibal 2001 -Somerville, Bonnie Spider-Man 2 2004 -Somerville, Bonnie Without a Paddle 2004 -Somerville, Bonnie Bedazzled 2000 -Somerville, Bonnie The Ugly Truth 2009 -McGoohan, Patrick Treasure Planet 2002 -McGoohan, Patrick A Time to Kill 1996 -McGoohan, Patrick Braveheart 1995 -Zajonc, Robert 'Bobby Z' Indecent Proposal 1993 -Zajonc, Robert 'Bobby Z' Ransom 1996 -Zajonc, Robert 'Bobby Z' Outbreak 1995 -Zajonc, Robert 'Bobby Z' A Time to Kill 1996 -Zajonc, Robert 'Bobby Z' The Cable Guy 1996 -Zajonc, Robert 'Bobby Z' Interview with the Vampire: The Vampire Chronicles 1994 -Zajonc, Robert 'Bobby Z' The Lost World: Jurassic Park 1997 -Zajonc, Robert 'Bobby Z' Jurassic Park 1993 -Zajonc, Robert 'Bobby Z' Collateral Damage 2002 -Zajonc, Robert 'Bobby Z' Face/Off 1997 -Olomi, Ali Eagle Eye 2008 -Olomi, Ali Mission: Impossible - Ghost Protocol 2011 -Olomi, Ali Charlie Wilson's War 2007 -O'Hare, Denis (I) Michael Clayton 2007 -O'Hare, Denis (I) Garden State 2004 -O'Hare, Denis (I) J. Edgar 2011 -O'Hare, Denis (I) Charlie Wilson's War 2007 -O'Hare, Denis (I) Changeling 2008 -O'Hare, Denis (I) Baby Mama 2008 -Isabelle, Katharine Snow Day 2000 -Isabelle, Katharine Freddy vs. Jason 2003 -Isabelle, Katharine Insomnia 2002 -Roehm Sr., David C. Unbreakable 2000 -Roehm Sr., David C. Changing Lanes 2002 -Roehm Sr., David C. How to Lose a Guy in 10 Days 2003 -Roehm Sr., David C. Ocean's Eleven 2001 -Roehm Sr., David C. Men in Black II 2002 -Weber, Ben (I) Twister 1996 -Weber, Ben (I) Coach Carter 2005 -Weber, Ben (I) The Mirror Has Two Faces 1996 -Wilson, Thomas F. The SpongeBob SquarePants Movie 2004 -Wilson, Thomas F. Rio 2011 -Wilson, Thomas F. Back to the Future Part III 1990 -Wilson, Thomas F. Back to the Future Part II 1989 -Wilson, Thomas F. Back to the Future 1985 -Lee, Michelle (XII) You, Me and Dupree 2006 -Lee, Michelle (XII) 50 First Dates 2004 -Lee, Michelle (XII) Pirates of the Caribbean: At World's End 2007 -Chambers, Jacob The Time Machine 2002 -Chambers, Jacob Enemy of the State 1998 -Chambers, Jacob Just Like Heaven 2005 -Chambers, Jacob Spider-Man 2002 -Ashborn, Clive Pirates of the Caribbean: Dead Man's Chest 2006 -Ashborn, Clive Pirates of the Caribbean: At World's End 2007 -Ashborn, Clive V for Vendetta 2005 -Rhee, Simon Lethal Weapon 4 1998 -Rhee, Simon Universal Soldier 1992 -Rhee, Simon The Italian Job 2003 -Rhee, Simon The Master of Disguise 2002 -Strange, Patrick Michael Body of Lies 2008 -Strange, Patrick Michael Live Free or Die Hard 2007 -Strange, Patrick Michael National Treasure: Book of Secrets 2007 -Strange, Patrick Michael Step Up 2: The Streets 2008 -Strange, Patrick Michael Burn After Reading 2008 -Strange, Patrick Michael Salt 2010 -Strange, Patrick Michael Ace Ventura: When Nature Calls 1995 -Strange, Patrick Michael He's Just Not That Into You 2009 -Strange, Patrick Michael The Social Network 2010 -Quock, Audrey Autumn in New York 2000 -Quock, Audrey After the Sunset 2004 -Quock, Audrey Rush Hour 2 2001 -Marshall, Scott (I) Runaway Bride 1999 -Marshall, Scott (I) Raising Helen 2004 -Marshall, Scott (I) The Princess Diaries 2: Royal Engagement 2004 -Marshall, Scott (I) Pretty Woman 1990 -Pileggi, Mitch The X Files: I Want to Believe 2008 -Pileggi, Mitch The X Files 1998 -Pileggi, Mitch Basic Instinct 1992 -Whitley, Kym Rango 2011 -Whitley, Kym Along Came Polly 2004 -Whitley, Kym We Bought a Zoo 2011 -Whitley, Kym Next Friday 2000 -Whitley, Kym Fun with Dick and Jane 2005 -Whitley, Kym Nutty Professor II: The Klumps 2000 -Whitley, Kym I Love You, Man 2009 -Whitley, Kym College Road Trip 2008 -Mulrooney, Kelsey A Bug's Life 1998 -Mulrooney, Kelsey The Haunting 1999 -Mulrooney, Kelsey The Negotiator 1998 -Estevez, Emilio Mission: Impossible 1996 -Estevez, Emilio D2: The Mighty Ducks 1994 -Estevez, Emilio The Mighty Ducks 1992 -Busey, Jake (I) Contact 1997 -Busey, Jake (I) Starship Troopers 1997 -Busey, Jake (I) Twister 1996 -Busey, Jake (I) Christmas with the Kranks 2004 -Busey, Jake (I) Identity 2003 -Busey, Jake (I) Enemy of the State 1998 -Dori, Sandro Under the Tuscan Sun 2003 -Dori, Sandro Letters to Juliet 2010 -Dori, Sandro Pinocchio 2002 -Mays, Jayma Paul Blart: Mall Cop 2009 -Mays, Jayma Epic Movie 2007 -Mays, Jayma The Smurfs 2011 -Mays, Jayma Red Eye 2005 -McGinley, John C. Wild Hogs 2007 -McGinley, John C. World Trade Center 2006 -McGinley, John C. Wall Street 1987 -McGinley, John C. Any Given Sunday 1999 -McGinley, John C. Are We Done Yet? 2007 -McGinley, John C. The Animal 2001 -McGinley, John C. Se7en 1995 -McGinley, John C. Identity 2003 -McGinley, John C. Set It Off 1996 -McGinley, John C. The Rock 1996 -McGinley, John C. Nothing to Lose 1997 -Sotelo, Eddie 'Piolin' Beverly Hills Chihuahua 2008 -Sotelo, Eddie 'Piolin' The Muppets 2011 -Sotelo, Eddie 'Piolin' Marmaduke 2010 -Calhoun, Jacare Dreamgirls 2006 -Calhoun, Jacare G.I. Joe: The Rise of Cobra 2009 -Calhoun, Jacare The Longest Yard 2005 -Gardell, Billy Bad Santa 2003 -Gardell, Billy D-War 2007 -Gardell, Billy You, Me and Dupree 2006 -Ufland, Chris Rules of Engagement 2000 -Ufland, Chris The Aviator 2004 -Ufland, Chris Showtime 2002 -Ufland, Chris The Insider 1999 -Klebba, Martin Van Helsing 2004 -Klebba, Martin Pirates of the Caribbean: At World's End 2007 -Klebba, Martin Pirates of the Caribbean: Dead Man's Chest 2006 -Klebba, Martin Project X 2012 -Klebba, Martin Meet the Spartans 2008 -Klebba, Martin Austin Powers in Goldmember 2002 -Klebba, Martin Hancock 2008 -Klebba, Martin Mirror Mirror 2012 -Klebba, Martin The Haunted Mansion 2003 -Klebba, Martin Men in Black II 2002 -Klebba, Martin Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Traister, Holly Wedding Crashers 2005 -Traister, Holly Anchorman: The Legend of Ron Burgundy 2004 -Traister, Holly The Terminal 2004 -Jones, Toby (I) Snow White and the Huntsman 2012 -Jones, Toby (I) Tinker Tailor Soldier Spy 2011 -Jones, Toby (I) The Mist 2007 -Jones, Toby (I) Captain America: The First Avenger 2011 -Jones, Toby (I) The Adventures of Tintin 2011 -Jones, Toby (I) The Hunger Games 2012 -Jones, Toby (I) Finding Neverland 2004 -Jones, Toby (I) Harry Potter and the Chamber of Secrets 2002 -Jones, Toby (I) EverAfter 1998 -Jones, Toby (I) Harry Potter and the Deathly Hallows: Part 1 2010 -Fehmel, Sommer Alvin and the Chipmunks 2007 -Fehmel, Sommer National Treasure: Book of Secrets 2007 -Fehmel, Sommer Anger Management 2003 -De Mornay, Rebecca Wedding Crashers 2005 -De Mornay, Rebecca American Reunion 2012 -De Mornay, Rebecca Risky Business 1983 -De Mornay, Rebecca Identity 2003 -Hines, Tom (I) New Year's Eve 2011 -Hines, Tom (I) Runaway Bride 1999 -Hines, Tom (I) Raising Helen 2004 -Hines, Tom (I) The Princess Diaries 2001 -Hines, Tom (I) The Princess Diaries 2: Royal Engagement 2004 -Trainor, Mary Ellen Lethal Weapon 4 1998 -Trainor, Mary Ellen Forrest Gump 1994 -Trainor, Mary Ellen Freaky Friday 2003 -Trainor, Mary Ellen Romancing the Stone 1984 -Trainor, Mary Ellen Lethal Weapon 3 1992 -Trainor, Mary Ellen Congo 1995 -Trainor, Mary Ellen Die Hard 1988 -Trainor, Mary Ellen Lethal Weapon 2 1989 -Trainor, Mary Ellen Back to the Future Part II 1989 -Trainor, Mary Ellen The Goonies 1985 -Kelly, Brad (I) Paycheck 2003 -Kelly, Brad (I) Sucker Punch 2011 -Kelly, Brad (I) X-Men: The Last Stand 2006 -Fernandez, Eddie J. U.S. Marshals 1998 -Fernandez, Eddie J. Cop Out 2010 -Fernandez, Eddie J. Limitless 2011 -Fernandez, Eddie J. Hancock 2008 -Brown, Sho Anger Management 2003 -Brown, Sho Date Night 2010 -Brown, Sho Red Dragon 2002 -Ironside, Michael Starship Troopers 1997 -Ironside, Michael Top Gun 1986 -Ironside, Michael X-Men: First Class 2011 -Ironside, Michael Terminator Salvation 2009 -Ironside, Michael Total Recall 1990 -Ironside, Michael The Perfect Storm 2000 -Myers, Robert (IX) Salt 2010 -Myers, Robert (IX) The Interpreter 2005 -Myers, Robert (IX) World Trade Center 2006 -Myers, Robert (IX) The Departed 2006 -Myers, Robert (IX) Two Weeks Notice 2002 -Myers, Robert (IX) Spider-Man 3 2007 -Myers, Robert (IX) A Beautiful Mind 2001 -Phifer, Mekhi Dawn of the Dead 2004 -Phifer, Mekhi Soul Food 1997 -Phifer, Mekhi I Still Know What You Did Last Summer 1998 -Phifer, Mekhi 8 Mile 2002 -Phifer, Mekhi Shaft 2000 -Faulkner, James (I) Bridget Jones: The Edge of Reason 2004 -Faulkner, James (I) The Good Shepherd 2006 -Faulkner, James (I) Bridget Jones's Diary 2001 -Faulkner, James (I) Harry Potter and the Half-Blood Prince 2009 -Faulkner, James (I) X-Men: First Class 2011 -Hammond, Roger Bedazzled 2000 -Hammond, Roger Around the World in 80 Days 2004 -Hammond, Roger The King's Speech 2010 -Lau, Kamay The Fifth Element 1997 -Lau, Kamay Lost in Space 1998 -Lau, Kamay Star Wars: Episode I - The Phantom Menace 1999 -McCarthy, Eoin Made of Honor 2008 -McCarthy, Eoin AVP: Alien vs. Predator 2004 -McCarthy, Eoin Tomorrow Never Dies 1997 -Bassett, Linda (I) The Reader 2008 -Bassett, Linda (I) Calendar Girls 2003 -Bassett, Linda (I) The Hours 2002 -Udenio, Fabiana The Wedding Planner 2001 -Udenio, Fabiana Austin Powers: International Man of Mystery 1997 -Udenio, Fabiana RoboCop 2 1990 -Morgan, Trevor (I) The Rookie 2002 -Morgan, Trevor (I) Jurassic Park III 2001 -Morgan, Trevor (I) The Sixth Sense 1999 -Morgan, Trevor (I) The Patriot 2000 -Verzhbitskiy, Viktor Ironiya sudby. Prodolzhenie 2007 -Verzhbitskiy, Viktor Turetskiy gambit 2005 -Verzhbitskiy, Viktor Dnevnoy dozor 2006 -Verzhbitskiy, Viktor Nochnoy dozor 2004 -Verzhbitskiy, Viktor 12 2007 -Vince, Pruitt Taylor The Cell 2000 -Vince, Pruitt Taylor Identity 2003 -Vince, Pruitt Taylor Monster 2003 -Vince, Pruitt Taylor Doctor Dolittle 1998 -Vince, Pruitt Taylor JFK 1991 -Vince, Pruitt Taylor Constantine 2005 -Panettiere, Hayden Remember the Titans 2000 -Panettiere, Hayden A Bug's Life 1998 -Panettiere, Hayden Dinosaur 2000 -Panettiere, Hayden Raising Helen 2004 -Panettiere, Hayden Scream 4 2011 -Panettiere, Hayden Racing Stripes 2005 -Panettiere, Hayden Message in a Bottle 1999 -Potts, Annie Ghost Busters 1984 -Potts, Annie Pretty in Pink 1986 -Potts, Annie Toy Story 1995 -Potts, Annie Toy Story 2 1999 -Lucas, Katie Star Wars: Episode III - Revenge of the Sith 2005 -Lucas, Katie Star Wars: Episode I - The Phantom Menace 1999 -Lucas, Katie Star Wars: Episode II - Attack of the Clones 2002 -Harold, Joseph Why Did I Get Married Too? 2010 -Harold, Joseph Due Date 2010 -Harold, Joseph Jack and Jill 2011 -Caccialanza, Lorenzo Just Married 2003 -Caccialanza, Lorenzo Die Hard 1988 -Caccialanza, Lorenzo Monster-in-Law 2005 -Matthews, Hillary Dumb & Dumber 1994 -Matthews, Hillary Shallow Hal 2001 -Matthews, Hillary There's Something About Mary 1998 -Walton, Mark (I) Chicken Little 2005 -Walton, Mark (I) Home on the Range 2004 -Walton, Mark (I) Bolt 2008 -Davison, Bruce X-Men 2000 -Davison, Bruce X2 2003 -Davison, Bruce High Crimes 2002 -Davison, Bruce Runaway Jury 2003 -Davison, Bruce Spies Like Us 1985 -Grubbs, Gary The X Files 1998 -Grubbs, Gary Double Take 2001 -Grubbs, Gary Deja Vu 2006 -Grubbs, Gary Battleship 2012 -Grubbs, Gary Runaway Jury 2003 -Grubbs, Gary Glory Road 2006 -Grubbs, Gary JFK 1991 -Thompson, Jody (II) We Are Marshall 2006 -Thompson, Jody (II) The Blind Side 2009 -Thompson, Jody (II) Life as We Know It 2010 -Thompson, Jody (II) Sweet Home Alabama 2002 -Lynch, Evanna Harry Potter and the Order of the Phoenix 2007 -Lynch, Evanna Harry Potter and the Deathly Hallows: Part 2 2011 -Lynch, Evanna Harry Potter and the Half-Blood Prince 2009 -Lynch, Evanna Harry Potter and the Deathly Hallows: Part 1 2010 -Gammell, Robin Contact 1997 -Gammell, Robin Skyline 2010 -Gammell, Robin Austin Powers: International Man of Mystery 1997 -Werntz, Gary J. Edgar 2011 -Werntz, Gary Deep Impact 1998 -Werntz, Gary Pay It Forward 2000 -Werntz, Gary The Peacemaker 1997 -Vander, Musetta Mortal Kombat: Annihilation 1997 -Vander, Musetta The Cell 2000 -Vander, Musetta Kicking & Screaming 2005 -Vander, Musetta Wild Wild West 1999 -Vander, Musetta O Brother, Where Art Thou? 2000 -Polcyn, Beverly Hook 1991 -Polcyn, Beverly Legally Blonde 2001 -Polcyn, Beverly Date Movie 2006 -Garity, Troy On Golden Pond 1981 -Garity, Troy Barbershop 2: Back in Business 2004 -Garity, Troy Bandits 2001 -Garity, Troy After the Sunset 2004 -Garity, Troy Conspiracy Theory 1997 -Garity, Troy Barbershop 2002 -Lautner, Taylor The Twilight Saga: Breaking Dawn - Part 1 2011 -Lautner, Taylor New Moon 2009 -Lautner, Taylor The Twilight Saga: Eclipse 2010 -Lautner, Taylor Cheaper by the Dozen 2 2005 -Lautner, Taylor The Adventures of Sharkboy and Lavagirl 3-D 2005 -Granville, Hollis Down to Earth 2001 -Granville, Hollis The Devil's Advocate 1997 -Granville, Hollis The Dictator 2012 -Potente, Franka The Bourne Ultimatum 2007 -Potente, Franka The Bourne Supremacy 2004 -Potente, Franka Blow 2001 -Potente, Franka The Bourne Identity 2002 -Dutton, Charles S. Legion 2009 -Dutton, Charles S. Se7en 1995 -Dutton, Charles S. Gothika 2003 -Dutton, Charles S. A Time to Kill 1996 -Dutton, Charles S. Alien³ 1992 -Dutton, Charles S. 'Crocodile' Dundee II 1988 -Dutton, Charles S. Secret Window 2004 -Horsdal, Chelah The Cabin in the Woods 2011 -Horsdal, Chelah Rise of the Planet of the Apes 2011 -Horsdal, Chelah The Exorcism of Emily Rose 2005 -Horsdal, Chelah The Pink Panther 2006 -Horsdal, Chelah Paycheck 2003 -Horsdal, Chelah AVPR: Aliens vs Predator - Requiem 2007 -Horsdal, Chelah X-Men: The Last Stand 2006 -Anaya, Elena (I) Van Helsing 2004 -Anaya, Elena (I) Hable con ella 2002 -Anaya, Elena (I) Lucía y el sexo 2001 -Duncan, Lindsay (I) Star Wars: Episode I - The Phantom Menace 1999 -Duncan, Lindsay (I) Alice in Wonderland 2010 -Duncan, Lindsay (I) Under the Tuscan Sun 2003 -Joy, Robert (I) The Hills Have Eyes 2006 -Joy, Robert (I) AVPR: Aliens vs Predator - Requiem 2007 -Joy, Robert (I) Superhero Movie 2008 -Joy, Robert (I) Waterworld 1995 -Radz, Marc Batman Begins 2005 -Radz, Marc Fred Claus 2007 -Radz, Marc The Break-Up 2006 -Blum, Steve (IX) X-Men Origins: Wolverine 2009 -Blum, Steve (IX) Pirates of the Caribbean: At World's End 2007 -Blum, Steve (IX) Transformers: Revenge of the Fallen 2009 -Blum, Steve (IX) Transformers: Dark of the Moon 2011 -Blum, Steve (IX) Kung Fu Panda 2008 -Blum, Steve (IX) The Lord of the Rings: The Return of the King 2003 -Blum, Steve (IX) Flushed Away 2006 -Blum, Steve (IX) The Amazing Spider-Man 2012 -Blum, Steve (IX) The Golden Compass 2007 -Blum, Steve (IX) Lilo & Stitch 2002 -Blum, Steve (IX) Spider-Man 3 2007 -Blum, Steve (IX) G.I. Joe: The Rise of Cobra 2009 -Blum, Steve (IX) Ghost Rider 2007 -Blum, Steve (IX) The Lord of the Rings: The Two Towers 2002 -Blum, Steve (IX) Iron Man 2 2010 -Blum, Steve (IX) The Lost World: Jurassic Park 1997 -Blum, Steve (IX) Clash of the Titans 2010 -Liska, Stephen Star Trek IV: The Voyage Home 1986 -Liska, Stephen Hotel for Dogs 2009 -Liska, Stephen Conspiracy Theory 1997 -Liska, Stephen Lethal Weapon 4 1998 -Liska, Stephen Beverly Hills Cop II 1987 -Liska, Stephen Star Trek III: The Search for Spock 1984 -Svenson, Bo Kill Bill: Vol. 2 2004 -Svenson, Bo Inglourious Basterds 2009 -Svenson, Bo Speed 2: Cruise Control 1997 -Evans, Paul (IX) Men in Black II 2002 -Evans, Paul (IX) Two Weeks Notice 2002 -Evans, Paul (IX) The School of Rock 2003 -Brown, Yvette Nicole 500) Days of Summer 2009 -Brown, Yvette Nicole Hotel for Dogs 2009 -Brown, Yvette Nicole The Island 2005 -Brown, Yvette Nicole Dreamgirls 2006 -Brown, Yvette Nicole The Ugly Truth 2009 -Brown, Yvette Nicole Tropic Thunder 2008 -Parker, Sarah Jessica Mars Attacks! 1996 -Parker, Sarah Jessica Sex and the City 2 2010 -Parker, Sarah Jessica Failure to Launch 2006 -Parker, Sarah Jessica Footloose 1984 -Parker, Sarah Jessica The Family Stone 2005 -Parker, Sarah Jessica New Year's Eve 2011 -Parker, Sarah Jessica The First Wives Club 1996 -Parker, Sarah Jessica Sex and the City 2008 -Roof, Michael xXx 2002 -Roof, Michael Black Hawk Down 2001 -Roof, Michael The Dukes of Hazzard 2005 -Margolis, Mark (I) Absolute Power 1997 -Margolis, Mark (I) Hard Ball 2001 -Margolis, Mark (I) Arthur 1981 -Margolis, Mark (I) The Thomas Crown Affair 1999 -Margolis, Mark (I) Immortals 2011 -Margolis, Mark (I) Hannibal 2001 -Margolis, Mark (I) End of Days 1999 -Margolis, Mark (I) Daredevil 2003 -Margolis, Mark (I) Black Swan 2010 -Margolis, Mark (I) Mickey Blue Eyes 1999 -Debbouze, Jamel Astérix & Obélix: Mission Cléopâtre 2002 -Debbouze, Jamel Astérix aux jeux olympiques 2008 -Debbouze, Jamel Le fabuleux destin d'Amélie Poulain 2001 -Hughes, Miko (I) Clockstoppers 2002 -Hughes, Miko (I) Mercury Rising 1998 -Hughes, Miko (I) Baby Geniuses 1999 -Hughes, Miko (I) Spawn 1997 -Hughes, Miko (I) Apollo 13 1995 -Hughes, Miko (I) Tropic Thunder 2008 -Shenkman, Ben (II) The Siege 1998 -Shenkman, Ben (II) Must Love Dogs 2005 -Shenkman, Ben (II) Just Like Heaven 2005 -Shenkman, Ben (II) Eraser 1996 -French, Patricia (I) Life as We Know It 2010 -French, Patricia (I) Footloose 2011 -French, Patricia (I) The Three Stooges 2012 -Vogel, Mike (I) The Sisterhood of the Traveling Pants 2005 -Vogel, Mike (I) The Help 2011 -Vogel, Mike (I) The Texas Chainsaw Massacre 2003 -Vogel, Mike (I) Cloverfield 2008 -Vogel, Mike (I) Rumor Has It... 2005 -Vogel, Mike (I) Poseidon 2006 -Bachar, Carmit Along Came Polly 2004 -Bachar, Carmit The Hot Chick 2002 -Bachar, Carmit Charlie's Angels: Full Throttle 2003 -Bachar, Carmit 13 Going on 30 2004 -Palmer, Alex Harry Potter and the Goblet of Fire 2005 -Palmer, Alex Master and Commander: The Far Side of the World 2003 -Palmer, Alex 28 Days Later... 2002 -Fisher, Carrie Star Wars: Episode V - The Empire Strikes Back 1980 -Fisher, Carrie Hannah and Her Sisters 1986 -Fisher, Carrie Star Wars: Episode VI - Return of the Jedi 1983 -Fisher, Carrie Charlie's Angels: Full Throttle 2003 -Fisher, Carrie Austin Powers: International Man of Mystery 1997 -Fisher, Carrie Hook 1991 -Fisher, Carrie Star Wars 1977 -Fisher, Carrie Scream 3 2000 -Shada, Zack The Ant Bully 2006 -Shada, Zack Space Chimps 2008 -Shada, Zack The Break-Up 2006 -Shada, Zack Ice Age: The Meltdown 2006 -Shada, Zack Charlie's Angels: Full Throttle 2003 -Kerner, Jeannette George of the Jungle 1997 -Kerner, Jeannette D2: The Mighty Ducks 1994 -Kerner, Jeannette The Mighty Ducks 1992 -Mead, Courtland A Bug's Life 1998 -Mead, Courtland The Haunting 1999 -Mead, Courtland Babe 1995 -Mead, Courtland Recess: School's Out 2001 -Kang, Sung Pearl Harbor 2001 -Kang, Sung Fast Five 2011 -Kang, Sung Live Free or Die Hard 2007 -Kang, Sung Fast & Furious 2009 -Kang, Sung The Fast and the Furious: Tokyo Drift 2006 -Giamatti, Paul Donnie Brasco 1997 -Giamatti, Paul Paycheck 2003 -Giamatti, Paul Robots 2005 -Giamatti, Paul Saving Private Ryan 1998 -Giamatti, Paul My Best Friend's Wedding 1997 -Giamatti, Paul The Ant Bully 2006 -Giamatti, Paul Fred Claus 2007 -Giamatti, Paul Big Momma's House 2000 -Giamatti, Paul The Hangover Part II 2011 -Giamatti, Paul The Truman Show 1998 -Giamatti, Paul Sideways 2004 -Giamatti, Paul The Negotiator 1998 -Giamatti, Paul The Ides of March 2011 -Giamatti, Paul Cinderella Man 2005 -Giamatti, Paul Doctor Dolittle 1998 -Giamatti, Paul The Illusionist 2006 -Giamatti, Paul Lady in the Water 2006 -Danton, Steve Gone in Sixty Seconds 2000 -Danton, Steve How Stella Got Her Groove Back 1998 -Danton, Steve The General's Daughter 1999 -Topic, Velibor Robin Hood 2010 -Topic, Velibor Cars 2 2011 -Topic, Velibor Kingdom of Heaven 2005 -Topic, Velibor The Saint 1997 -Gurwitch, Annabelle The Cable Guy 1996 -Gurwitch, Annabelle The Shaggy Dog 2006 -Gurwitch, Annabelle Daddy Day Care 2003 -Gurwitch, Annabelle Mousehunt 1997 -Coleman, Brady October Sky 1999 -Coleman, Brady Friday Night Lights 2004 -Coleman, Brady Varsity Blues 1999 -Davis, Essie The Matrix Reloaded 2003 -Davis, Essie Legend of the Guardians: The Owls of Ga'Hoole 2010 -Davis, Essie Australia 2008 -Davis, Essie Charlotte's Web 2006 -Davis, Essie The Matrix Revolutions 2003 -Clarke, Larry In & Out 1997 -Clarke, Larry Contagion 2011 -Clarke, Larry Transformers: Dark of the Moon 2011 -Deare, Morgan United 93 2006 -Deare, Morgan Mission: Impossible 1996 -Deare, Morgan Who Framed Roger Rabbit 1988 -Polito, Joe Law Abiding Citizen 2009 -Polito, Joe The Last Airbender 2010 -Polito, Joe The Adjustment Bureau 2011 -Cassady, Michael Daniel Eagle Eye 2008 -Cassady, Michael Daniel Transformers: Dark of the Moon 2011 -Cassady, Michael Daniel Killers 2010 -Parrott, Tomasina Along Came Polly 2004 -Parrott, Tomasina Starsky & Hutch 2004 -Parrott, Tomasina Miss Congeniality 2: Armed and Fabulous 2005 -Sinclair, Madge Star Trek IV: The Voyage Home 1986 -Sinclair, Madge The Lion King 1994 -Sinclair, Madge Coming to America 1988 -Ellsworth, Krystal Iron Man 2 2010 -Ellsworth, Krystal No Strings Attached 2011 -Ellsworth, Krystal Step Brothers 2008 -Thompson, Kenan Barbershop 2: Back in Business 2004 -Thompson, Kenan Snakes on a Plane 2006 -Thompson, Kenan Fat Albert 2004 -Thompson, Kenan The Master of Disguise 2002 -Thompson, Kenan Space Chimps 2008 -Thompson, Kenan The Smurfs 2011 -Thompson, Kenan D2: The Mighty Ducks 1994 -Toase, Suzanne Harry Potter and the Deathly Hallows: Part 1 2010 -Toase, Suzanne Harry Potter and the Deathly Hallows: Part 2 2011 -Toase, Suzanne Harry Potter and the Half-Blood Prince 2009 -Gillies, Suzanne Ghosts of Girlfriends Past 2009 -Gillies, Suzanne Confessions of a Shopaholic 2009 -Gillies, Suzanne The Town 2010 -Gillies, Suzanne Knight and Day 2010 -Gillies, Suzanne Paul Blart: Mall Cop 2009 -Schweiger, Til This Means War 2012 -Schweiger, Til New Year's Eve 2011 -Schweiger, Til King Arthur 2004 -Schweiger, Til Lara Croft Tomb Raider: The Cradle of Life 2003 -Schweiger, Til Inglourious Basterds 2009 -Bozeman, Terry Rules of Engagement 2000 -Bozeman, Terry Charlie Wilson's War 2007 -Bozeman, Terry The Amazing Spider-Man 2012 -Ellis, Mark Robert The Longest Yard 2005 -Ellis, Mark Robert The Shaggy Dog 2006 -Ellis, Mark Robert The Rookie 2002 -Ellis, Mark Robert Radio 2003 -Ellis, Mark Robert The Replacements 2000 -Ellis, Mark Robert Any Given Sunday 1999 -Ellis, Mark Robert Hard Ball 2001 -Ellis, Mark Robert Varsity Blues 1999 -Potter, Monica Con Air 1997 -Potter, Monica Patch Adams 1998 -Potter, Monica Along Came a Spider 2001 -Potter, Monica Saw 2004 -Afonso, Diana Knight and Day 2010 -Afonso, Diana The Fighter 2010 -Afonso, Diana Zookeeper 2011 -Rodríguez, Marco (I) Million Dollar Baby 2004 -Rodríguez, Marco (I) Due Date 2010 -Rodríguez, Marco (I) Fast & Furious 2009 -Ulmer, John Blade: Trinity 2004 -Ulmer, John Scooby Doo 2: Monsters Unleashed 2004 -Ulmer, John The Lizzie McGuire Movie 2003 -Pike, Gary Primary Colors 1998 -Pike, Gary Cheaper by the Dozen 2003 -Pike, Gary Ocean's Eleven 2001 -Pike, Gary Independence Day 1996 -Wiebe, Cainan Diary of a Wimpy Kid 2010 -Wiebe, Cainan The Twilight Saga: Eclipse 2010 -Wiebe, Cainan Sucker Punch 2011 -Maleki, Christopher Iron Man 2 2010 -Maleki, Christopher I Love You, Man 2009 -Maleki, Christopher Beverly Hills Chihuahua 2008 -Maleki, Christopher The Girl with the Dragon Tattoo 2011 -Armatrading, Tony The Saint 1997 -Armatrading, Tony Eragon 2006 -Armatrading, Tony Notting Hill 1999 -Graham, Stephen (I) Tinker Tailor Soldier Spy 2011 -Graham, Stephen (I) Pirates of the Caribbean: On Stranger Tides 2011 -Graham, Stephen (I) Gangs of New York 2002 -Graham, Stephen (I) Public Enemies 2009 -Fiennes, Joseph Elizabeth 1998 -Fiennes, Joseph Enemy at the Gates 2001 -Fiennes, Joseph Shakespeare in Love 1998 -Yeagley, Susan Intolerable Cruelty 2003 -Yeagley, Susan Almost Famous 2000 -Yeagley, Susan Coyote Ugly 2000 -Lyles, Leslie Mona Lisa Smile 2003 -Lyles, Leslie Wall Street 1987 -Lyles, Leslie Black Swan 2010 -Lyles, Leslie Ladder 49 2004 -Flynn, Quinton Cars 2006 -Flynn, Quinton Spider-Man 3 2007 -Flynn, Quinton Madagascar 2005 -Flynn, Quinton Fantastic Four 2005 -Flynn, Quinton Shark Tale 2004 -Flynn, Quinton The Italian Job 2003 -Flynn, Quinton Minority Report 2002 -Akerman, Malin The Heartbreak Kid 2007 -Akerman, Malin Watchmen 2009 -Akerman, Malin 27 Dresses 2008 -Akerman, Malin Couples Retreat 2009 -Jones, Joel Hurt Blue Streak 1999 -Jones, Joel Hurt Rat Race 2001 -Jones, Joel Hurt Showtime 2002 -Hallgrey, Johnathan American Gangster 2007 -Hallgrey, Johnathan The Adjustment Bureau 2011 -Hallgrey, Johnathan Sex and the City 2008 -Hallgrey, Johnathan I Am Legend 2007 -Hallgrey, Johnathan Confessions of a Shopaholic 2009 -Hallgrey, Johnathan Hancock 2008 -Hallgrey, Johnathan The Other Guys 2010 -Hallgrey, Johnathan The Taking of Pelham 1 2 3 2009 -Hallgrey, Johnathan Wall Street: Money Never Sleeps 2010 -Hallgrey, Johnathan The Sorcerer's Apprentice 2010 -Elrod, Lu Freaky Friday 2003 -Elrod, Lu Wag the Dog 1997 -Elrod, Lu Primary Colors 1998 -Elrod, Lu Kicking & Screaming 2005 -Lee, Christopher (I) Charlie and the Chocolate Factory 2005 -Lee, Christopher (I) The Lord of the Rings: The Fellowship of the Ring 2001 -Lee, Christopher (I) The Lord of the Rings: The Return of the King 2003 -Lee, Christopher (I) Star Wars: Episode III - Revenge of the Sith 2005 -Lee, Christopher (I) Sleepy Hollow 1999 -Lee, Christopher (I) Alice in Wonderland 2010 -Lee, Christopher (I) Corpse Bride 2005 -Lee, Christopher (I) The Golden Compass 2007 -Lee, Christopher (I) Star Wars: Episode II - Attack of the Clones 2002 -Lee, Christopher (I) The Lord of the Rings: The Two Towers 2002 -Brown, Artine Snow Dogs 2002 -Brown, Artine White Chicks 2004 -Brown, Artine The Lizzie McGuire Movie 2003 -Masten, Gordon The Day After Tomorrow 2004 -Masten, Gordon Source Code 2011 -Masten, Gordon The Santa Clause 1994 -Berry, Lloyd Scary Movie 2000 -Berry, Lloyd Jumanji 1995 -Berry, Lloyd AVPR: Aliens vs Predator - Requiem 2007 -Schiff, Richard Michael 1996 -Schiff, Richard Speed 1994 -Schiff, Richard Volcano 1997 -Schiff, Richard Se7en 1995 -Schiff, Richard I Am Sam 2001 -Schiff, Richard Malcolm X 1992 -Schiff, Richard The Lost World: Jurassic Park 1997 -Schiff, Richard The Bodyguard 1992 -Schiff, Richard Deep Impact 1998 -Schiff, Richard Johnny English Reborn 2011 -Schiff, Richard Doctor Dolittle 1998 -Schiff, Richard Forces of Nature 1999 -Polick, Jack The Dukes of Hazzard 2005 -Polick, Jack Jackass 3D 2010 -Polick, Jack Blow 2001 -Lally, Brian (I) L.A. Confidential 1997 -Lally, Brian (I) Funny People 2009 -Lally, Brian (I) The Lost World: Jurassic Park 1997 -Payton, James Robin Hood 2010 -Payton, James Captain America: The First Avenger 2011 -Payton, James Harry Potter and the Order of the Phoenix 2007 -Sanchez, Phillip (I) Forgetting Sarah Marshall 2008 -Sanchez, Phillip (I) Yes Man 2008 -Sanchez, Phillip (I) Epic Movie 2007 -Naidu, Ajay (I) Scary Movie 3 2003 -Naidu, Ajay (I) Hannibal 2001 -Naidu, Ajay (I) Bad Santa 2003 -Naidu, Ajay (I) Righteous Kill 2008 -Naidu, Ajay (I) Hotel for Dogs 2009 -Naidu, Ajay (I) K-PAX 2001 -Mukherji, Kevin Soul Food 1997 -Mukherji, Kevin The Terminal 2004 -Mukherji, Kevin U.S. Marshals 1998 -Mukherji, Kevin The Fugitive 1993 -Lynch, John Carroll Fargo 1996 -Lynch, John Carroll Gothika 2003 -Lynch, John Carroll Face/Off 1997 -Lynch, John Carroll Shutter Island 2010 -Lynch, John Carroll Gone in Sixty Seconds 2000 -Lynch, John Carroll Mercury Rising 1998 -Lynch, John Carroll Volcano 1997 -Lynch, John Carroll Crazy, Stupid, Love. 2011 -Lynch, John Carroll Gran Torino 2008 -Harrell, James N. Michael 1996 -Harrell, James N. JFK 1991 -Harrell, James N. Hope Floats 1998 -Harrell, James N. Varsity Blues 1999 -Oseary, Guy Charlie's Angels: Full Throttle 2003 -Oseary, Guy You Don't Mess with the Zohan 2008 -Oseary, Guy Charlie's Angels 2000 -Hochendoner, Jeff Unstoppable 2010 -Hochendoner, Jeff I Am Number Four 2011 -Hochendoner, Jeff My Bloody Valentine 2009 -Kawalkowski, Daru The Princess Diaries 2001 -Kawalkowski, Daru Raising Helen 2004 -Kawalkowski, Daru The Princess Diaries 2: Royal Engagement 2004 -Stewart, Thomas W. Moneyball 2011 -Stewart, Thomas W. Contagion 2011 -Stewart, Thomas W. Step Up 2006 -Ibram, Sam The Dictator 2012 -Ibram, Sam The Last Airbender 2010 -Ibram, Sam Law Abiding Citizen 2009 -Breslin, Spencer The Princess Diaries 2: Royal Engagement 2004 -Breslin, Spencer The Happening 2008 -Breslin, Spencer The Kid 2000 -Breslin, Spencer The Shaggy Dog 2006 -Breslin, Spencer The Santa Clause 3: The Escape Clause 2006 -Breslin, Spencer The Santa Clause 2 2002 -Breslin, Spencer Dr. Seuss' The Cat in the Hat 2003 -Breslin, Spencer Raising Helen 2004 -Breslin, Spencer Return to Never Land 2002 -Breslin, Spencer Meet the Parents 2000 -Quaroni, Guido Cars 2 2011 -Quaroni, Guido Cars 2006 -Quaroni, Guido Monsters, Inc. 2001 -Cooper, Dominic Captain America: The First Avenger 2011 -Cooper, Dominic From Hell 2001 -Cooper, Dominic Mamma Mia! 2008 -Kelamis, Peter The Cabin in the Woods 2011 -Kelamis, Peter Miracle 2004 -Kelamis, Peter The Lizzie McGuire Movie 2003 -Daraiseh, Ammar Jarhead 2005 -Daraiseh, Ammar U.S. Marshals 1998 -Daraiseh, Ammar Bad Company 2002 -Chong, Patty Percy Jackson & the Olympians: The Lightning Thief 2010 -Chong, Patty Race to Witch Mountain 2009 -Chong, Patty Get Him to the Greek 2010 -Armstrong, Neil (I) Fly Me to the Moon 2008 -Armstrong, Neil (I) Apollo 13 1995 -Armstrong, Neil (I) Thrill Ride: The Science of Fun 1997 -Armstrong, Neil (I) Contact 1997 -Armstrong, Neil (I) Forrest Gump 1994 -Murphy, Brittany Don't Say a Word 2001 -Murphy, Brittany 8 Mile 2002 -Murphy, Brittany Happy Feet 2006 -Murphy, Brittany Sin City 2005 -Murphy, Brittany Just Married 2003 -Garrett, Beau Made of Honor 2008 -Garrett, Beau TRON: Legacy 2010 -Garrett, Beau 4: Rise of the Silver Surfer 2007 -Redgrave, Lynn Peter Pan 2003 -Redgrave, Lynn The Wild Thornberrys Movie 2002 -Redgrave, Lynn Confessions of a Shopaholic 2009 -Redgrave, Lynn Shine 1996 -Disher, Karen Ice Age: Dawn of the Dinosaurs 2009 -Disher, Karen Rio 2011 -Disher, Karen Horton Hears a Who! 2008 -Esposito, Giancarlo Ali 2001 -Esposito, Giancarlo Trading Places 1983 -Esposito, Giancarlo Malcolm X 1992 -Esposito, Giancarlo Nothing to Lose 1997 -King, Bob (VI) Forces of Nature 1999 -King, Bob (VI) Friday the 13th 2009 -King, Bob (VI) Walk the Line 2005 -Brolin, James Pee-wee's Big Adventure 1985 -Brolin, James The Master of Disguise 2002 -Brolin, James Catch Me If You Can 2002 -Brolin, James Traffic 2000 -Boyle, Lisa The Nutty Professor 1996 -Boyle, Lisa Bad Boys 1995 -Boyle, Lisa Face/Off 1997 -Sharpton, Al Malcolm X 1992 -Sharpton, Al Mr. Deeds 2002 -Sharpton, Al Madea Goes to Jail 2009 -Romano, Lou The Incredibles 2004 -Romano, Lou Cars 2006 -Romano, Lou Ratatouille 2007 -Williams, Ellis 17 Again 2009 -Williams, Ellis Ali 2001 -Williams, Ellis Jackie Brown 1997 -Miller, Chris (LX) Shrek 2001 -Miller, Chris (LX) Monsters vs Aliens 2009 -Miller, Chris (LX) Madagascar 2005 -Miller, Chris (LX) Madagascar 3: Europe's Most Wanted 2012 -Miller, Chris (LX) Shrek Forever After 2010 -Miller, Chris (LX) Madagascar: Escape 2 Africa 2008 -Miller, Chris (LX) Shrek the Third 2007 -Miller, Chris (LX) Shrek 2 2004 -Miller, Chris (LX) Puss in Boots 2011 -DiCaprio, Leonardo Shutter Island 2010 -DiCaprio, Leonardo Romeo + Juliet 1996 -DiCaprio, Leonardo The Aviator 2004 -DiCaprio, Leonardo Blood Diamond 2006 -DiCaprio, Leonardo Catch Me If You Can 2002 -DiCaprio, Leonardo Hubble 3D 2010 -DiCaprio, Leonardo Body of Lies 2008 -DiCaprio, Leonardo Titanic 1997 -DiCaprio, Leonardo J. Edgar 2011 -DiCaprio, Leonardo The Departed 2006 -DiCaprio, Leonardo Inception 2010 -DiCaprio, Leonardo Gangs of New York 2002 -MacKenzie, J.C. The Aviator 2004 -MacKenzie, J.C. The Departed 2006 -MacKenzie, J.C. The Day the Earth Stood Still 2008 -Gage, Kevin G.I. Jane 1997 -Gage, Kevin Blow 2001 -Gage, Kevin Con Air 1997 -Gage, Kevin Heat 1995 -Smith, Kimani Ray Catwoman 2004 -Smith, Kimani Ray Blade: Trinity 2004 -Smith, Kimani Ray The Butterfly Effect 2004 -Smith, Kimani Ray The Twilight Saga: Breaking Dawn - Part 1 2011 -Smith, Kimani Ray Scooby Doo 2: Monsters Unleashed 2004 -Smith, Kimani Ray Scary Movie 4 2006 -Daniel, Brittany (I) White Chicks 2004 -Daniel, Brittany (I) Skyline 2010 -Daniel, Brittany (I) LiTTLEMAN 2006 -Bonta, Vanna Beauty and the Beast 1991 -Bonta, Vanna Something's Gotta Give 2003 -Bonta, Vanna The Core 2003 -Keener, Brandon (I) Catch Me If You Can 2002 -Keener, Brandon (I) Beverly Hills Chihuahua 2008 -Keener, Brandon (I) Traffic 2000 -Keener, Brandon (I) Zookeeper 2011 -Keener, Brandon (I) Galaxy Quest 1999 -Keener, Brandon (I) He's Just Not That Into You 2009 -Taktarov, Oleg National Treasure 2004 -Taktarov, Oleg Miami Vice 2006 -Taktarov, Oleg Air Force One 1997 -Taktarov, Oleg Predators 2010 -Taktarov, Oleg Bad Boys II 2003 -Taktarov, Oleg Righteous Kill 2008 -Vaugier, Emmanuelle Saw II 2005 -Vaugier, Emmanuelle Saw IV 2007 -Vaugier, Emmanuelle 40 Days and 40 Nights 2002 -Scarfo, Steve The Game Plan 2007 -Scarfo, Steve Fever Pitch 2005 -Scarfo, Steve Paul Blart: Mall Cop 2009 -Scarfo, Steve The Departed 2006 -Hinds, Ciarán The Woman in Black 2012 -Hinds, Ciarán Ghost Rider: Spirit of Vengeance 2011 -Hinds, Ciarán Harry Potter and the Deathly Hallows: Part 2 2011 -Hinds, Ciarán Miami Vice 2006 -Hinds, Ciarán Road to Perdition 2002 -Hinds, Ciarán Lara Croft Tomb Raider: The Cradle of Life 2003 -Hinds, Ciarán The Tale of Despereaux 2008 -Hinds, Ciarán Munich 2005 -Hinds, Ciarán Race to Witch Mountain 2009 -Hinds, Ciarán John Carter 2012 -Hinds, Ciarán The Phantom of the Opera 2004 -Hinds, Ciarán There Will Be Blood 2007 -Hinds, Ciarán The Sum of All Fears 2002 -Hinds, Ciarán Calendar Girls 2003 -Hinds, Ciarán Tinker Tailor Soldier Spy 2011 -Pickett, Erin Moneyball 2011 -Pickett, Erin J. Edgar 2011 -Pickett, Erin Just Go with It 2011 -Pickett, Erin Get Him to the Greek 2010 -Pickett, Erin Water for Elephants 2011 -Pickett, Erin Iron Man 2 2010 -Pickett, Erin The Muppets 2011 -Pickett, Erin Little Fockers 2010 -Chadwick, Mark (I) Daylight 1996 -Chadwick, Mark (I) The Hot Chick 2002 -Chadwick, Mark (I) Batman & Robin 1997 -Chadwick, Mark (I) Date Movie 2006 -Martz, Jamie Jarhead 2005 -Martz, Jamie Cloverfield 2008 -Martz, Jamie Eagle Eye 2008 -Ayala, Andrew The Dictator 2012 -Ayala, Andrew Men in Black 3 2012 -Ayala, Andrew Tower Heist 2011 -Kirby, Christopher (I) The Matrix Reloaded 2003 -Kirby, Christopher (I) Star Wars: Episode III - Revenge of the Sith 2005 -Kirby, Christopher (I) The Matrix Revolutions 2003 -Filip, Ota Hannibal Rising 2007 -Filip, Ota Hostel 2005 -Filip, Ota The Brothers Grimm 2005 -Dern, Bruce Small Soldiers 1998 -Dern, Bruce Monster 2003 -Dern, Bruce The Haunting 1999 -Fisher, Miles J. Edgar 2011 -Fisher, Miles Superhero Movie 2008 -Fisher, Miles Final Destination 5 2011 -Boorem, Mika Mighty Joe Young 1998 -Boorem, Mika The Patriot 2000 -Boorem, Mika Along Came a Spider 2001 -McEnroe, John Anger Management 2003 -McEnroe, John Mr. Deeds 2002 -McEnroe, John You Don't Mess with the Zohan 2008 -McEnroe, John Jack and Jill 2011 -Bardem, Javier No Country for Old Men 2007 -Bardem, Javier Eat Pray Love 2010 -Bardem, Javier Vicky Cristina Barcelona 2008 -Bardem, Javier Collateral 2004 -McAvoy, James Gnomeo & Juliet 2011 -McAvoy, James The Chronicles of Narnia: The Lion, the Witch and the Wardrobe 2005 -McAvoy, James X-Men: First Class 2011 -McAvoy, James Atonement 2007 -McAvoy, James Wanted 2008 -Meredith, Tony (I) Shall We Dance 2004 -Meredith, Tony (I) The Thomas Crown Affair 1999 -Meredith, Tony (I) Evita 1996 -Donovan, Kim (II) Righteous Kill 2008 -Donovan, Kim (II) The Ugly Truth 2009 -Donovan, Kim (II) Sex and the City 2008 -Mol, Gretchen 3:10 to Yuma 2007 -Mol, Gretchen Godzilla 1998 -Mol, Gretchen Donnie Brasco 1997 -Facinelli, Peter New Moon 2009 -Facinelli, Peter The Twilight Saga: Eclipse 2010 -Facinelli, Peter The Scorpion King 2002 -Facinelli, Peter The Twilight Saga: Breaking Dawn - Part 1 2011 -Mensah, Peter (I) The Incredible Hulk 2008 -Mensah, Peter (I) 300 2006 -Mensah, Peter (I) Hidalgo 2004 -Mensah, Peter (I) Avatar 2009 -Mensah, Peter (I) Tears of the Sun 2003 -DeAgazio, Richard Mystic River 2003 -DeAgazio, Richard The Fighter 2010 -DeAgazio, Richard Bride Wars 2009 -Johnson, Mark W. (I) A Time to Kill 1996 -Johnson, Mark W. (I) The Peacemaker 1997 -Johnson, Mark W. (I) October Sky 1999 -Johnson, Mark W. (I) The Firm 1993 -Field, Arabella Dante's Peak 1997 -Field, Arabella National Treasure 2004 -Field, Arabella Godzilla 1998 -Helberg, Simon Good Night, and Good Luck. 2005 -Helberg, Simon Evan Almighty 2007 -Helberg, Simon A Cinderella Story 2004 -Helberg, Simon Old School 2003 -Wilson, Ben (V) The SpongeBob SquarePants Movie 2004 -Wilson, Ben (V) Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Wilson, Ben (V) Blades of Glory 2007 -Ashley, Bonnie Joy Ocean's Eleven 2001 -Ashley, Bonnie Joy Ocean's Thirteen 2007 -Ashley, Bonnie Joy The Mexican 2001 -Eckard, Robert Law Abiding Citizen 2009 -Eckard, Robert The Last Airbender 2010 -Eckard, Robert Limitless 2011 -Knight, Wayne (I) Dirty Dancing 1987 -Knight, Wayne (I) Jurassic Park 1993 -Knight, Wayne (I) Kung Fu Panda 2008 -Knight, Wayne (I) Hercules 1997 -Knight, Wayne (I) Space Jam 1996 -Knight, Wayne (I) JFK 1991 -Knight, Wayne (I) Cheaper by the Dozen 2003 -Knight, Wayne (I) Tarzan 1999 -Knight, Wayne (I) Toy Story 2 1999 -Knight, Wayne (I) Basic Instinct 1992 -Knight, Wayne (I) My Favorite Martian 1999 -Knight, Wayne (I) Rat Race 2001 -Pinchot, Bronson The Tale of Despereaux 2008 -Pinchot, Bronson The First Wives Club 1996 -Pinchot, Bronson Risky Business 1983 -Pinchot, Bronson Beverly Hills Cop 1984 -Pinchot, Bronson Courage Under Fire 1996 -Pfeiffer, Michelle Hairspray 2007 -Pfeiffer, Michelle One Fine Day 1996 -Pfeiffer, Michelle Stardust 2007 -Pfeiffer, Michelle New Year's Eve 2011 -Pfeiffer, Michelle I Am Sam 2001 -Pfeiffer, Michelle What Lies Beneath 2000 -Pfeiffer, Michelle Batman Returns 1992 -Pfeiffer, Michelle The Prince of Egypt 1998 -Hodges, David U. The Fugitive 1993 -Hodges, David U. Batman Forever 1995 -Hodges, David U. A Time to Kill 1996 -Kassovitz, Mathieu The Fifth Element 1997 -Kassovitz, Mathieu Munich 2005 -Kassovitz, Mathieu Astérix & Obélix: Mission Cléopâtre 2002 -Kassovitz, Mathieu Le fabuleux destin d'Amélie Poulain 2001 -Di Maggio, John Transformers: Revenge of the Fallen 2009 -Di Maggio, John Final Fantasy: The Spirits Within 2001 -Di Maggio, John Transformers: Dark of the Moon 2011 -Di Maggio, John Bee Movie 2007 -Di Maggio, John Spider-Man 2 2004 -Di Maggio, John Dr. Dolittle 2 2001 -Di Maggio, John Superman Returns 2006 -Di Maggio, John Little Fockers 2010 -Di Maggio, John Barnyard 2006 -Di Maggio, John Bolt 2008 -Di Maggio, John Underdog 2007 -Di Maggio, John TMNT 2007 -Stewart, Lynne Marie Rain Man 1988 -Stewart, Lynne Marie Pee-wee's Big Adventure 1985 -Stewart, Lynne Marie Clear and Present Danger 1994 -Stewart, Lynne Marie Bridesmaids 2011 -Stewart, Lynne Marie Barnyard 2006 -Kelly, Joseph Patrick The Rock 1996 -Kelly, Joseph Patrick Coyote Ugly 2000 -Kelly, Joseph Patrick Pearl Harbor 2001 -Kelly, Joseph Patrick Gone in Sixty Seconds 2000 -Kelly, Joseph Patrick Enemy of the State 1998 -Kelly, Joseph Patrick Armageddon 1998 -Kelly, Joseph Patrick Con Air 1997 -Clooney, George Batman & Robin 1997 -Clooney, George The Descendants 2011 -Clooney, George Intolerable Cruelty 2003 -Clooney, George One Fine Day 1996 -Clooney, George The Ides of March 2011 -Clooney, George Three Kings 1999 -Clooney, George South Park: Bigger Longer & Uncut 1999 -Clooney, George Michael Clayton 2007 -Clooney, George Ocean's Twelve 2004 -Clooney, George Burn After Reading 2008 -Clooney, George O Brother, Where Art Thou? 2000 -Clooney, George The Thin Red Line 1998 -Clooney, George Ocean's Thirteen 2007 -Clooney, George The Peacemaker 1997 -Clooney, George Good Night, and Good Luck. 2005 -Clooney, George Ocean's Eleven 2001 -Clooney, George Syriana 2005 -Clooney, George Spy Kids 2001 -Clooney, George The Perfect Storm 2000 -Clooney, George Spy Kids 3-D: Game Over 2003 -Graham, Campbell Bridget Jones: The Edge of Reason 2004 -Graham, Campbell Harry Potter and the Goblet of Fire 2005 -Graham, Campbell Bridget Jones's Diary 2001 -Dreher, Page Body of Lies 2008 -Dreher, Page Contact 1997 -Dreher, Page Hannibal 2001 -Dreher, Page Traffic 2000 -Dreher, Page Mars Attacks! 1996 -Dreher, Page Live Free or Die Hard 2007 -Dreher, Page Burn After Reading 2008 -Dreher, Page Enemy of the State 1998 -Dreher, Page Step Up 2: The Streets 2008 -Dreher, Page Step Up 2006 -Schwartz, Scott L. The Scorpion King 2002 -Schwartz, Scott L. Ocean's Eleven 2001 -Schwartz, Scott L. The Flintstones in Viva Rock Vegas 2000 -Schwartz, Scott L. Starsky & Hutch 2004 -Schwartz, Scott L. Fun with Dick and Jane 2005 -Schwartz, Scott L. Spider-Man 2002 -Schwartz, Scott L. Ocean's Twelve 2004 -Schwartz, Scott L. Epic Movie 2007 -Schwartz, Scott L. Ocean's Thirteen 2007 -Aaron, Caroline Just Like Heaven 2005 -Aaron, Caroline Primary Colors 1998 -Aaron, Caroline Sleepless in Seattle 1993 -Aaron, Caroline Along Came Polly 2004 -Aaron, Caroline Cellular 2004 -Aaron, Caroline 21 Jump Street 2012 -Bloom, Orlando The Lord of the Rings: The Two Towers 2002 -Bloom, Orlando Pirates of the Caribbean: At World's End 2007 -Bloom, Orlando Black Hawk Down 2001 -Bloom, Orlando Kingdom of Heaven 2005 -Bloom, Orlando Pirates of the Caribbean: Dead Man's Chest 2006 -Bloom, Orlando Pirates of the Caribbean: The Curse of the Black Pearl 2003 -Bloom, Orlando The Lord of the Rings: The Fellowship of the Ring 2001 -Bloom, Orlando The Lord of the Rings: The Return of the King 2003 -Bloom, Orlando Troy 2004 -Zabriskie, Grace License to Wed 2007 -Zabriskie, Grace An Officer and a Gentleman 1982 -Zabriskie, Grace The Grudge 2004 -Zabriskie, Grace Gone in Sixty Seconds 2000 -Zabriskie, Grace Armageddon 1998 -DuMont, James (I) Speed 1994 -DuMont, James (I) S.W.A.T. 2003 -DuMont, James (I) Catch Me If You Can 2002 -DuMont, James (I) Primary Colors 1998 -DuMont, James (I) Ocean's Thirteen 2007 -DuMont, James (I) Seabiscuit 2003 -DuMont, James (I) The Peacemaker 1997 -DuMont, James (I) Along Came Polly 2004 -DuMont, James (I) Miss Congeniality 2: Armed and Fabulous 2005 -Carson, Terrence 'T.C.' Star Wars: Episode III - Revenge of the Sith 2005 -Carson, Terrence 'T.C.' U-571 2000 -Carson, Terrence 'T.C.' Final Destination 2 2003 -Dempsey, Patrick (I) Made of Honor 2008 -Dempsey, Patrick (I) Scream 3 2000 -Dempsey, Patrick (I) Outbreak 1995 -Dempsey, Patrick (I) Transformers: Dark of the Moon 2011 -Dempsey, Patrick (I) Sweet Home Alabama 2002 -Dempsey, Patrick (I) Enchanted 2007 -Jarret, Gabriel Apollo 13 1995 -Jarret, Gabriel Rumor Has It... 2005 -Jarret, Gabriel Poseidon 2006 -Pierron, Martin Role Models 2008 -Pierron, Martin 17 Again 2009 -Pierron, Martin Constantine 2005 -Huss, Toby (I) Beavis and Butt-Head Do America 1996 -Huss, Toby (I) Jerry Maguire 1996 -Huss, Toby (I) Bedazzled 2000 -Huss, Toby (I) Cowboys & Aliens 2011 -Huss, Toby (I) Vegas Vacation 1997 -Gutierrez, Kerry Bride Wars 2009 -Gutierrez, Kerry The Time Traveler's Wife 2009 -Gutierrez, Kerry Yogi Bear 2010 -Coraci, Frank Click 2006 -Coraci, Frank Around the World in 80 Days 2004 -Coraci, Frank The Waterboy 1998 -Keogh, John (I) The Constant Gardener 2005 -Keogh, John (I) The Ghost Writer 2010 -Keogh, John (I) The Pianist 2002 -Keogh, John (I) Around the World in 80 Days 2004 -Ryder, Winona Alien: Resurrection 1997 -Ryder, Winona Zoolander 2001 -Ryder, Winona Autumn in New York 2000 -Ryder, Winona Dracula 1992 -Ryder, Winona Being John Malkovich 1999 -Ryder, Winona Black Swan 2010 -Ryder, Winona Star Trek 2009 -Ryder, Winona Mr. Deeds 2002 -Plazinic, Sandra Artificial Intelligence: AI 2001 -Plazinic, Sandra Dinner for Schmucks 2010 -Plazinic, Sandra Rumor Has It... 2005 -Plazinic, Sandra The Ugly Truth 2009 -Plazinic, Sandra The Island 2005 -Smith, Tasha (I) You, Me and Dupree 2006 -Smith, Tasha (I) Couples Retreat 2009 -Smith, Tasha (I) Why Did I Get Married Too? 2010 -Flaherty, Joe (I) Home on the Range 2004 -Flaherty, Joe (I) Back to the Future Part II 1989 -Flaherty, Joe (I) Anchorman: The Legend of Ron Burgundy 2004 -Flaherty, Joe (I) Stripes 1981 -Saccoccio, Dylan Angels & Demons 2009 -Saccoccio, Dylan Valkyrie 2008 -Saccoccio, Dylan Date Night 2010 -Antonio, Jim Catch Me If You Can 2002 -Antonio, Jim Pleasantville 1998 -Antonio, Jim Outbreak 1995 -Theron, Charlize The Cider House Rules 1999 -Theron, Charlize Snow White and the Huntsman 2012 -Theron, Charlize Men of Honor 2000 -Theron, Charlize Mighty Joe Young 1998 -Theron, Charlize The Italian Job 2003 -Theron, Charlize The Devil's Advocate 1997 -Theron, Charlize Prometheus 2012 -Theron, Charlize Hancock 2008 -Theron, Charlize Monster 2003 -Burrows, Saffron Frida 2002 -Burrows, Saffron Deep Blue Sea 1999 -Burrows, Saffron Troy 2004 -Burrows, Saffron Peter Pan 2003 -Ruivivar, Anthony The Adjustment Bureau 2011 -Ruivivar, Anthony Starship Troopers 1997 -Ruivivar, Anthony Tropic Thunder 2008 -Ruivivar, Anthony In & Out 1997 -Owen, Chris (I) October Sky 1999 -Owen, Chris (I) American Reunion 2012 -Owen, Chris (I) The Mist 2007 -Owen, Chris (I) She's All That 1999 -Owen, Chris (I) American Pie 1999 -Owen, Chris (I) American Pie 2 2001 -Owen, Chris (I) Hidalgo 2004 -Sedaris, Amy Elf 2003 -Sedaris, Amy Chicken Little 2005 -Sedaris, Amy The School of Rock 2003 -Sedaris, Amy Shrek the Third 2007 -Sedaris, Amy Maid in Manhattan 2002 -Sedaris, Amy Bewitched 2005 -Sedaris, Amy Puss in Boots 2011 -Sedaris, Amy Six Days Seven Nights 1998 -Leacock, Viv This Means War 2012 -Leacock, Viv Hot Tub Time Machine 2010 -Leacock, Viv Freddy vs. Jason 2003 -Leacock, Viv Are We There Yet? 2005 diff --git a/test/perf/kernel/indexing.jl b/test/perf/kernel/indexing.jl deleted file mode 100644 index 1ffc422fa51f7d..00000000000000 --- a/test/perf/kernel/indexing.jl +++ /dev/null @@ -1,19 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function add1!(x,y) - x[y] .+= 1 -end - -function devec_add1!(x,y) - for i=1:length(y) - x[y[i]] += 1 - end -end - -function devec_add1_logical!(x,y) - for i=1:length(y) - if y[i] - x[i] += 1 - end - end -end diff --git a/test/perf/kernel/json.jl b/test/perf/kernel/json.jl deleted file mode 100644 index 8f992508614b3d..00000000000000 --- a/test/perf/kernel/json.jl +++ /dev/null @@ -1,184 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -#JSON Parser -#Adapted from http://www.mathworks.com/matlabcentral/fileexchange/23393 -#Original BSD Licence, (c) 2011, François Glineur - -function parse_json(strng::AbstractString) - pos = 1 - len = length(strng) - # AbstractString delimiters and escape characters are identified beforehand to improve speed - # esc = regexp(str, "[\"\\\\]"); index_esc = 1; len_esc = length(esc); #TODO Enable for speed - - function parse_object() - parse_char('{') - object = Dict{AbstractString, Any}() - if next_char() != '}' - while true - str = parse_string() - if isempty(str) - error("Name of value at position $pos cannot be empty") - end - parse_char(':') - val = parse_value() - object[str] = val - if next_char() == '}' - break - end - parse_char(',') - end - end - parse_char('}') - return object - end - - function parse_array() - parse_char('[') - object = Set() - if next_char != ']' - while true - val = parse_value() - push!(object, val) - if next_char() == ']' - break - end - parse_char(',') - end - end - parse_char(']') - return object - end - - function parse_char(c::Char) - skip_whitespace() - if pos > len || strng[pos] != c - error("Expected $c at position $pos") - else - pos = pos + 1 - skip_whitespace() - end - end - - function next_char() - skip_whitespace() - if pos > len - c = '\0' - else - c = strng[pos] - end - end - - function skip_whitespace() - while pos <= len && isspace(strng[pos]) - pos = pos + 1 - end - end - - function parse_string() - if strng[pos] != '"' - error("AbstractString starting with quotation expected at position $pos") - else - pos = pos + 1 - end - str = "" - while pos <= len - # while index_esc <= len_esc && esc(index_esc) < pos - # index_esc = index_esc + 1 - # end - # if index_esc > len_esc - # str = string(str, strng[pos:end]) - # pos = len + 1 - # break - # else - # str = string(str, strng[pos:esc(index_esc)-1]) - # pos = esc(index_esc) - # end - nc = strng[pos] - if nc == '"' - pos = pos + 1 - return string(str) - elseif nc == '\\' - if pos+1 > len - error_pos("End of file reached right after escape character") - end - pos = pos + 1 - anc = strng[pos] - if anc == '"' || anc == '\\' || anc == '/' - str = string(str, strng[pos]) - pos = pos + 1 - elseif anc == 'b' || anc == 'f'|| anc == 'n' || anc == 'r' || anc == 't' - str = string(str, '\\', string[pos]) - pos = pos + 1 - elseif anc == 'u' - if pos+4 > len - error_pos("End of file reached in escaped unicode character") - end - str = string(str, strng[pos-1:pos+4]) - pos = pos + 5 - end - else # should never happen - str = string(str,strng[pos]) - pos = pos + 1 - end - end - error("End of file while expecting end of string") - end - - function parse_number() - num_regex = r"^[\w]?[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?[\w]?" - m = match(num_regex, strng[pos:min(len,pos+20)]) - if m === nothing - error("Error reading number at position $pos") - end - delta = m.offset + length(m.match) - pos = pos + delta -1 - return parse(Float64, m.match) - end - - function parse_value() - nc = strng[pos] - if nc == '"' - val = parse_string() - return val - elseif nc == '[' - val = parse_array() - return val - elseif nc == '{' - val = parse_object() - return val - elseif nc == '-' || nc == '0' || nc == '1' || nc == '2' || nc == '3' || nc == '4' || nc == '5' || nc == '6' || nc == '7' || nc == '8' || nc == '9' - val = parse_number() - return val - elseif nc == 't' - if pos+3 <= len && strng[pos:pos+3] == "true" - val = true - pos = pos + 4 - return val - end - elseif nc == 'f' - if pos+4 <= len && strng[pos:pos+4] == "false" - val = false - pos = pos + 5 - return val - end - elseif nc == 'n' - if pos+3 <= len && strng[pos:pos+3] == "null" - val = [] - pos = pos + 4 - return val - end - end - error("Value expected at position $pos") - end - - if pos <= len - nc = next_char() - if nc == '{' - return parse_object() - elseif nc == '[' - return parse_array() - else - error("Outer level structure must be an object or an array") - end - end -end diff --git a/test/perf/kernel/laplace.jl b/test/perf/kernel/laplace.jl deleted file mode 100644 index 9c8365872a18cd..00000000000000 --- a/test/perf/kernel/laplace.jl +++ /dev/null @@ -1,55 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function laplace_iter_devec(u, dx2, dy2, Niter, N) - uout = copy(u) - for iter = 1:Niter - for i = 2:N-1 - for j = 2:N-1 - uout[i,j] = ( (u[i-1,j]+u[i+1,j])*dy2 + (u[i,j-1]+u[i,j+1])*dx2 ) * (1 ./ (2*(dx2+dy2))) - end - end - u, uout = uout, u - end - return u -end - -function laplace_devec() - N = 150 - u = zeros(N, N) - u[1,:] = 1 - Niter = 2^10 - dx2 = dy2 = 0.1*0.1 - u = laplace_iter_devec(u, dx2, dy2, Niter, N) -end - -function laplace_iter_vec(u, dx2, dy2, Niter, N) - for i = 1:Niter - u[2:N-1, 2:N-1] = ((u[1:N-2, 2:N-1] + u[3:N, 2:N-1])*dy2 + (u[2:N-1,1:N-2] + u[2:N-1, 3:N])*dx2) * (1 ./ (2*(dx2+dy2))) - end - return u -end - -function laplace_vec() - N = 150 - u = zeros(N,N) - u[1,:] = 1 - Niter = 2^10 - dx2 = dy2 = 0.1*0.1 - u = laplace_iter_vec(u, dx2, dy2, Niter, N) -end - -function laplace_iter_vec_sub(u, dx2, dy2, Niter, N) - for i = 1:Niter - u[2:N-1, 2:N-1] = ((view(u, 1:N-2, 2:N-1) + view(u,3:N, 2:N-1))*dy2 + (view(u,2:N-1,1:N-2) + view(u,2:N-1, 3:N))*dx2) * (1 ./ (2*(dx2+dy2))) - end - return u -end - -function laplace_vec_sub() - N = 150 - u = zeros(N,N) - u[1,:] = 1 - Niter = 2^10 - dx2 = dy2 = 0.1*0.1 - u = laplace_iter_vec_sub(u, dx2, dy2, Niter, N) -end diff --git a/test/perf/kernel/laplace/c_laplace.c b/test/perf/kernel/laplace/c_laplace.c deleted file mode 100644 index d0721f330d3ef7..00000000000000 --- a/test/perf/kernel/laplace/c_laplace.c +++ /dev/null @@ -1,33 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -#include -#include - -main() { - int size_mat = 150; - int Niter=1024; - double u[size_mat][size_mat]; - double dx=0.1, dy=0.1, dx2, dy2; - int i, j, k; - - time_t t1 = clock(); - - for(i=0; i -#include "parameter.h" -//#define N 150 - -main() { - double u[size_mat][size_mat], u1[size_mat][size_mat]; - double dx=0.1, dy=0.1, dx2, dy2; - int i, j, k; - int Niter; - - FILE *f; - f = fopen("data_C (pure, parallel update)", "w"); - - scanf("%d", &Niter); - - for(i=0; i -#include -#include "parameter.h" -//#define N 150 - -main() { - double **u, **u1; - double dx=0.1, dy=0.1, dx2, dy2; - int i, j, k; - int Niter; - - FILE *f; - f = fopen("data_C (pure, parallel update)", "w"); - - scanf("%d", &Niter); - - u = ((double **)malloc(size_mat*sizeof(double *))); - u1 = ((double **)malloc(size_mat*sizeof(double *))); - for(i=0; i -#include -#include "parameter.h" -//#define N 150 - -main() { - double u[size_mat][size_mat]; - double dx=0.1, dy=0.1, dx2, dy2; - int i, j, k; - int Niter; - - FILE *f; - f = fopen("data_Cilk__pure", "w"); - - scanf("%d", &Niter); - - // initializing the array - u[:][:] = 0.0; - u[:][0] = 1.0; - - dx2 = dx*dx; - dy2 = dy*dy; - - for(i=0; i= 0 - d = sqrt(disc) - t2 = b + d - if t2 >= 0 - t1 = b - d - return t1 > 0 ? t1 : t2 - end - end - return Inf -end - -function intersect(s::Sphere, i::Hit, ray::Ray) - l = ray_sphere(s, ray) - if l >= i.lambda - return i - else - n = ray.orig + l * ray.dir - s.center - return Hit(l, unitize(n)) - end -end - -struct Group <: Scene - bound::Sphere - objs::Array{Scene} -end - -Group(b::Sphere) = Group(b, Scene[]) - -function intersect(g::Group, i::Hit, ray::Ray) - l = ray_sphere(g.bound, ray) - if l >= i.lambda - return i - else - for j in g.objs - i = intersect(j, i, ray) - end - return i - end -end - -function ray_trace(light::Vec, ray::Ray, scene::Scene) - i = intersect(scene, Hit(Inf, Vec(0.,0.,0.)), ray) - if i.lambda == Inf - return 0 - end - o = ray.orig + i.lambda*ray.dir + delta*i.normal - g = dot(i.normal, light) - if g >= 0 - return 0 - end - sray = Ray(o, -1*light) - si = intersect(scene, Hit(Inf, Vec(0.,0.,0.)), sray) - return si.lambda == Inf ? -g : 0 -end - -function create(level, c::Vec, r) - sphere = Sphere(c, r) - if level == 1 - return sphere - end - group = Group(Sphere(c, 3*r)) - push!(group.objs, sphere) - rn = 3*r/sqrt(12) - for dz = -1:2:1 - for dx = -1:2:1 - c2 = c + Vec(dx*rn, rn, dz*rn) - push!(group.objs, create(level-1, c2, r/2)) - end - end - return group -end - - -function Raytracer(levels, n, ss) - scene = create(levels, Vec(0., -1., 0.), 1.) - light = unitize(Vec(-1., -3., 2.)) - # f = open("output.pgm", "w") - # write(f,string("P5\n",n," ",n,"\n",255,"\n")) - for y in (n-1):-1:0 - for x in 0:1:(n-1) - g = 0. - for dx in 0:1:(ss-1) - for dy in 0:1:(ss-1) - d = Vec(x+dx*1.0/ss-n/2.0, y+dy*1.0/ss-n/2.0, n*1.0) - ray = Ray(Vec(0., 0., -4.0), unitize(d)) - g += ray_trace(light, ray, scene) - end - end - # write(f, trunc(UInt8, 0.5 + 255. * g / (ss*ss))) - end - end - # close(f) -end diff --git a/test/perf/kernel/simplex.jl b/test/perf/kernel/simplex.jl deleted file mode 100644 index f5f33d1f52a3a7..00000000000000 --- a/test/perf/kernel/simplex.jl +++ /dev/null @@ -1,70 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -const Basic = 1 -const AtLower = 2 -const AtUpper = 3 -const dualTol = 1e-7 - -# Adapted from https://github.com/mlubin/SimplexBenchmarks. -# See that project for a suite of cross-language benchmarks. - -# This code performs a two-pass "Harris" ratio test used within the -# dual simplex algorithm for linear programming. -# See the thesis of Achim Koberstein, -# "The dual simplex method, techniques for a fast and stable implementation" -# 2005, Section 6.2.2.2. - -# Data taken from sample greenbea iteration -function doTwoPassRatioTest() - n = 8000 - - candidates = zeros(Int,n) # don't count allocation time, assume reuse - thetaMax = 1e25 - pivotTol = 1e-7 - - red1 = [144.96711464551225,1.1799262694258228,15.258941028685781,0.0,74.21362490887168,8.771366223499031,0.0,0.0,6.819776136699029,0.0,-25.47923898089684,2.5194527603132846,74.99857065834307,0.0,0.0,88.42327610251432,0.6820330826047487,3.3715482573829685,0.0,0.0] - var1 = [3,2,2,1,2,2,1,1,2,1,3,2,2,1,1,2,2,2,1,2] - tab1 = [-3.823733185508287,0.7857013769778555,9.347700223333298,-0.0,-24.57958470726409,3.549760868834472,-0.0,-0.0,-0.0,-0.0,2.276570692386853,-3.1513940897258808,6.600120188297597,-0.0,-0.0,2.483577554811755,-0.5411982936821893,-0.20714710316669951,-0.0,-0.0] - - redcost = repeat(red1,400,1) - varstate = repeat(var1,400,1) - tabrow = repeat(tab1,400,1) - - t = time() - for k in 1:1000 - ncandidates = 0 - for i in 1:n - thisState = varstate[i] - pivotElt = tabrow[i] - if (thisState == AtLower && pivotElt > pivotTol) || (thisState == AtUpper && pivotElt < -pivotTol) - candidates[ncandidates += 1] = i - ratio = 0. - if (pivotElt < 0.) - ratio = (redcost[i] - dualTol)/pivotElt - else - ratio = (redcost[i] + dualTol)/pivotElt - end - if (ratio < thetaMax) - thetaMax = ratio - end - end - end - - # pass 2 - enter = -1 - maxAlpha = 0. - for k in 1:ncandidates - i = candidates[k] - ratio = redcost[i]/tabrow[i] - if (ratio <= thetaMax) - absalpha = abs(tabrow[i]) - if (absalpha > maxAlpha) - maxAlpha = absalpha - enter = i - end - end - end - end - - return time() - t -end diff --git a/test/perf/kernel/stockcorr.jl b/test/perf/kernel/stockcorr.jl deleted file mode 100644 index 991578de021c27..00000000000000 --- a/test/perf/kernel/stockcorr.jl +++ /dev/null @@ -1,38 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -## Test case from Issue #445 - -#STOCKCORR - The original, unoptimised code that simulates two correlated assets -function stockcorr() - ## Correlated asset information - CurrentPrice = [78. 102.] # Initial Prices of the two stocks - Corr = [1. 0.4; 0.4 1.] # Correlation Matrix - T = 500 # Number of days to simulate = 2years = 500days - n = 10000 # Number of simulations - dt = 1/250 # Time step (1year = 250days) - Div=[0.01 0.01] # Dividend - Vol=[0.2 0.3] # Volatility - - ## Market Information - r = 0.03 # Risk-free rate - - ## Define storages - SimulPriceA = zeros(T,n) # Simulated Price of Asset A - SimulPriceA[1,:] = CurrentPrice[1] - SimulPriceB = zeros(T,n) # Simulated Price of Asset B - SimulPriceB[1,:] = CurrentPrice[2] - - ## Generating the paths of stock prices by Geometric Brownian Motion - UpperTriangle=chol(Corr) # UpperTriangle Matrix by Cholesky decomposition - - for i = 1:n - Wiener = randn(T-1,2) - CorrWiener = Wiener*UpperTriangle - for j = 2:T - SimulPriceA[j,i] = SimulPriceA[j-1,i]*exp((r-Div[1]-Vol[1]^2/2)*dt+Vol[1]*sqrt(dt)*CorrWiener[j-1,1]) - SimulPriceB[j,i] = SimulPriceB[j-1,i]*exp((r-Div[2]-Vol[2]^2/2)*dt+Vol[2]*sqrt(dt)*CorrWiener[j-1,2]) - end - end - - return (SimulPriceA, SimulPriceB) -end diff --git a/test/perf/kernel/stockcorr.m b/test/perf/kernel/stockcorr.m deleted file mode 100644 index 687402b401f3e0..00000000000000 --- a/test/perf/kernel/stockcorr.m +++ /dev/null @@ -1,37 +0,0 @@ -%ORIGINAL_CORR - The original, unoptimised code that simulates two correlated assets -%Mike Croucher (http://www.walkingrandomly.com/?p=3604) - -%% Correlated asset information -CurrentPrice = [78 102]; %Initial Prices of the two stocks -Corr = [1 0.4; 0.4 1]; %Correlation Matrix -T = 500; %Number of days to simulate = 2years = 500days -n = 10000; %Number of simulations -dt = 1/250; %Time step (1year = 250days) -Div=[0.01 0.01]; %Dividend -Vol=[0.2 0.3]; %Volatility - -%%Market Information -r = 0.03; %Risk-free rate - -%% Define storages -SimulPriceA=zeros(T,n); %Simulated Price of Asset A -SimulPriceA(1,:)=CurrentPrice(1); -SimulPriceB=zeros(T,n); %Simulated Price of Asset B -SimulPriceB(1,:)=CurrentPrice(2); - -%% Generating the paths of stock prices by Geometric Brownian Motion -UpperTriangle=chol(Corr); %UpperTriangle Matrix by Cholesky decomposition - -for i=1:n - Wiener=randn(T-1,2); - CorrWiener=Wiener*UpperTriangle; - for j=2:T - SimulPriceA(j,i)=SimulPriceA(j-1,i)*exp((r-Div(1)-Vol(1)^2/2)*dt+Vol(1)*sqrt(dt)*CorrWiener(j-1,1)); - SimulPriceB(j,i)=SimulPriceB(j-1,i)*exp((r-Div(2)-Vol(2)^2/2)*dt+Vol(2)*sqrt(dt)*CorrWiener(j-1,2)); - end -end - -%% Plot the distribution of final prices -% Comment this section out if doing timings -% subplot(1,2,1);hist(SimulPriceA(end,:),100); -% subplot(1,2,2);hist(SimulPriceB(end,:),100); diff --git a/test/perf/kernel/ziggurat.jl b/test/perf/kernel/ziggurat.jl deleted file mode 100644 index 1ed2529ba05d03..00000000000000 --- a/test/perf/kernel/ziggurat.jl +++ /dev/null @@ -1,148 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Based on http://m.seehuhn.de/data/ziggurat/gauss.c - -const PARAM_R = 3.44428647676 - -const ytab = [ - 1., 0.963598623011, 0.936280813353, 0.913041104253, - 0.892278506696, 0.873239356919, 0.855496407634, 0.838778928349, - 0.822902083699, 0.807732738234, 0.793171045519, 0.779139726505, - 0.765577436082, 0.752434456248, 0.739669787677, 0.727249120285, - 0.715143377413, 0.703327646455, 0.691780377035, 0.68048276891, - 0.669418297233, 0.65857233912, 0.647931876189, 0.637485254896, - 0.62722199145, 0.617132611532, 0.607208517467, 0.597441877296, - 0.587825531465, 0.578352913803, 0.569017984198, 0.559815170911, - 0.550739320877, 0.541785656682, 0.532949739145, 0.524227434628, - 0.515614886373, 0.507108489253, 0.498704867478, 0.490400854812, - 0.482193476986, 0.47407993601, 0.466057596125, 0.458123971214, - 0.450276713467, 0.442513603171, 0.434832539473, 0.427231532022, - 0.419708693379, 0.41226223212, 0.404890446548, 0.397591718955, - 0.390364510382, 0.383207355816, 0.376118859788, 0.369097692334, - 0.362142585282, 0.355252328834, 0.348425768415, 0.341661801776, - 0.334959376311, 0.328317486588, 0.321735172063, 0.31521151497, - 0.308745638367, 0.302336704338, 0.29598391232, 0.289686497571, - 0.283443729739, 0.27725491156, 0.271119377649, 0.265036493387, - 0.259005653912, 0.253026283183, 0.247097833139, 0.241219782932, - 0.235391638239, 0.229612930649, 0.223883217122, 0.218202079518, - 0.212569124201, 0.206983981709, 0.201446306496, 0.195955776745, - 0.190512094256, 0.185114984406, 0.179764196185, 0.174459502324, - 0.169200699492, 0.1639876086, 0.158820075195, 0.153697969964, - 0.148621189348, 0.143589656295, 0.138603321143, 0.133662162669, - 0.128766189309, 0.123915440582, 0.119109988745, 0.114349940703, - 0.10963544023, 0.104966670533, 0.100343857232, 0.0957672718266, - 0.0912372357329, 0.0867541250127, 0.082318375932, 0.0779304915295, - 0.0735910494266, 0.0693007111742, 0.065060233529, 0.0608704821745, - 0.056732448584, 0.05264727098, 0.0486162607163, 0.0446409359769, - 0.0407230655415, 0.0368647267386, 0.0330683839378, 0.0293369977411, - 0.0256741818288, 0.0220844372634, 0.0185735200577, 0.0151490552854, - 0.0118216532614, 0.00860719483079, 0.00553245272614, 0.00265435214565, -] - -const ktab = UInt32[ - 0, 12590644, 14272653, 14988939, - 15384584, 15635009, 15807561, 15933577, - 16029594, 16105155, 16166147, 16216399, - 16258508, 16294295, 16325078, 16351831, - 16375291, 16396026, 16414479, 16431002, - 16445880, 16459343, 16471578, 16482744, - 16492970, 16502368, 16511031, 16519039, - 16526459, 16533352, 16539769, 16545755, - 16551348, 16556584, 16561493, 16566101, - 16570433, 16574511, 16578353, 16581977, - 16585398, 16588629, 16591685, 16594575, - 16597311, 16599901, 16602354, 16604679, - 16606881, 16608968, 16610945, 16612818, - 16614592, 16616272, 16617861, 16619363, - 16620782, 16622121, 16623383, 16624570, - 16625685, 16626730, 16627708, 16628619, - 16629465, 16630248, 16630969, 16631628, - 16632228, 16632768, 16633248, 16633671, - 16634034, 16634340, 16634586, 16634774, - 16634903, 16634972, 16634980, 16634926, - 16634810, 16634628, 16634381, 16634066, - 16633680, 16633222, 16632688, 16632075, - 16631380, 16630598, 16629726, 16628757, - 16627686, 16626507, 16625212, 16623794, - 16622243, 16620548, 16618698, 16616679, - 16614476, 16612071, 16609444, 16606571, - 16603425, 16599973, 16596178, 16591995, - 16587369, 16582237, 16576520, 16570120, - 16562917, 16554758, 16545450, 16534739, - 16522287, 16507638, 16490152, 16468907, - 16442518, 16408804, 16364095, 16301683, - 16207738, 16047994, 15704248, 15472926, -] - -const wtab = [ - 1.62318314817e-08, 2.16291505214e-08, 2.54246305087e-08, 2.84579525938e-08, - 3.10340022482e-08, 3.33011726243e-08, 3.53439060345e-08, 3.72152672658e-08, - 3.89509895720e-08, 4.05763964764e-08, 4.21101548915e-08, 4.35664624904e-08, - 4.49563968336e-08, 4.62887864029e-08, 4.75707945735e-08, 4.88083237257e-08, - 5.00063025384e-08, 5.11688950428e-08, 5.22996558616e-08, 5.34016475624e-08, - 5.44775307871e-08, 5.55296344581e-08, 5.65600111659e-08, 5.75704813695e-08, - 5.85626690412e-08, 5.95380306862e-08, 6.04978791776e-08, 6.14434034901e-08, - 6.23756851626e-08, 6.32957121259e-08, 6.42043903937e-08, 6.51025540077e-08, - 6.59909735447e-08, 6.68703634341e-08, 6.77413882848e-08, 6.86046683810e-08, - 6.94607844804e-08, 7.03102820203e-08, 7.11536748229e-08, 7.19914483720e-08, - 7.28240627230e-08, 7.36519550992e-08, 7.44755422158e-08, 7.52952223703e-08, - 7.61113773308e-08, 7.69243740467e-08, 7.77345662086e-08, 7.85422956743e-08, - 7.93478937793e-08, 8.01516825471e-08, 8.09539758128e-08, 8.17550802699e-08, - 8.25552964535e-08, 8.33549196661e-08, 8.41542408569e-08, 8.49535474601e-08, - 8.57531242006e-08, 8.65532538723e-08, 8.73542180955e-08, 8.81562980590e-08, - 8.89597752521e-08, 8.97649321908e-08, 9.05720531451e-08, 9.13814248700e-08, - 9.21933373471e-08, 9.30080845407e-08, 9.38259651738e-08, 9.46472835298e-08, - 9.54723502847e-08, 9.63014833769e-08, 9.71350089201e-08, 9.79732621669e-08, - 9.88165885297e-08, 9.96653446693e-08, 1.00519899658e-07, 1.01380636230e-07, - 1.02247952126e-07, 1.03122261554e-07, 1.04003996769e-07, 1.04893609795e-07, - 1.05791574313e-07, 1.06698387725e-07, 1.07614573423e-07, 1.08540683296e-07, - 1.09477300508e-07, 1.10425042570e-07, 1.11384564771e-07, 1.12356564007e-07, - 1.13341783071e-07, 1.14341015475e-07, 1.15355110887e-07, 1.16384981291e-07, - 1.17431607977e-07, 1.18496049514e-07, 1.19579450872e-07, 1.20683053909e-07, - 1.21808209468e-07, 1.22956391410e-07, 1.24129212952e-07, 1.25328445797e-07, - 1.26556042658e-07, 1.27814163916e-07, 1.29105209375e-07, 1.30431856341e-07, - 1.31797105598e-07, 1.33204337360e-07, 1.34657379914e-07, 1.36160594606e-07, - 1.37718982103e-07, 1.39338316679e-07, 1.41025317971e-07, 1.42787873535e-07, - 1.44635331499e-07, 1.46578891730e-07, 1.48632138436e-07, 1.50811780719e-07, - 1.53138707402e-07, 1.55639532047e-07, 1.58348931426e-07, 1.61313325908e-07, - 1.64596952856e-07, 1.68292495203e-07, 1.72541128694e-07, 1.77574279496e-07, - 1.83813550477e-07, 1.92166040885e-07, 2.05295471952e-07, 2.22600839893e-07, -] - -function randn_zig() - sign = 0 - x = 0.0 - - while (true) - U = rand(UInt32) - i = 1 + (U & 0x0000007F) # 7 bit to choose the step - sign = U & 0x00000080 # 1 bit for the sign - j = U>>8 # 24 bit for the x-value - - x = j*wtab[i] - if j < ktab[i]; break; end - - y = 0.0 - if i < 128 - y0 = ytab[i] - y1 = ytab[i+1] - y = y1 + (y0-y1)*rand() - else - x = PARAM_R - log(1.0-rand()) / PARAM_R - y = exp(-PARAM_R * (x - 0.5*PARAM_R)) * rand() - end - - if y < exp(-0.5*x*x); break; end - end - - return sign != 0 ? x : -x -end - -randn_zig(sigma::Number) = sigma*randn_zig() - -function randn_zig!(A::Array) - for i=1:length(A) - A[i] = randn_zig() - end - return A -end diff --git a/test/perf/lapack/eig.jl b/test/perf/lapack/eig.jl deleted file mode 100644 index aeea0559fd72d0..00000000000000 --- a/test/perf/lapack/eig.jl +++ /dev/null @@ -1,40 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Real -function realeigtest(n, iter) - local d, v - A = rand(n,n) - for i = 1:iter - d,v = eig(A) - end - d,v -end - -# Symmetric -function symeigtest(n, iter) - local d, v - A = rand(n,n) - A = A + A' - for i = 1:iter - d,v = eig(A) - end - d,v -end - -# Hermitian -function hermitianeigtest(n, iter) - local d, v - A = rand(ComplexF64, n, n) - A = A + A' - for i = 1:iter - d,v = eig(A) - end - d,v -end - -problemsizes = [(2, 10^4, "tiny"), (2^4, 10^3, "small"), (2^6, 10^2, "medium"), (2^8, 5, "large"), (2^10, 1, "huge")] -testdata = [(realeigtest, "realeig", "Real matrix eigenfactorization", problemsizes), - (symeigtest, "symeig", "Symmetric matrix eigenfactorization", problemsizes), - (hermitianeigtest, "hermitianeig", "Hermitian matrix eigenfactorization", problemsizes)] -include("../perfgeneric.jl") - diff --git a/test/perf/lapack/factorizations.jl b/test/perf/lapack/factorizations.jl deleted file mode 100644 index a0894c74aefb03..00000000000000 --- a/test/perf/lapack/factorizations.jl +++ /dev/null @@ -1,58 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function svdtest(n, iter) - A = rand(n,n) - B = svdfact(A) - for i = 1:iter-1 - B = svdfact(A) - end - B -end - -function schurtest(n, iter) - A = rand(n,n) - B = schurfact(A) - for i = 1:iter-1 - B = schurfact(A) - end - B -end - -function choleskytest(n, iter) - A = rand(n,n) - A = A'*A - B = cholfact(A) - for i = 1:iter-1 - B = cholfact(A) - end - B -end - -function qrtest(n, iter) - A = rand(n,n) - B = qrfact(A) - for i = 1:iter-1 - B = qrfact(A) - end - B -end - -function lutest(n, iter) - A = rand(n,n) - B = lufact(A) - for i = 1:iter-1 - B = lufact(A) - end - B -end - -problemsizes = [(2, 20000, "tiny"), (2^4, 1000, "small"), (2^6, 100, "medium"), (2^8, 5, "large"), (2^10, 1, "huge")] -qr_problemsizes = [(2, 100000, "tiny"), (2^4, 5000, "small"), (2^6, 500, "medium"), (2^8, 5, "large"), (2^10, 1, "huge")] -lu_problemsizes = [(2, 100000, "tiny"), (2^4, 10000, "small"), (2^6, 1000, "medium"), (2^8, 100, "large"), (2^10, 2, "huge")] -testdata = [(choleskytest, "choleskytest", "Cholesky factorization", problemsizes), - (schurtest, "schurtest", "Schur factorization", problemsizes), - (svdtest, "svdtest", "Singular value decomposition", problemsizes), - (qrtest, "qrtest", "QR factorization", qr_problemsizes), - (lutest, "lutest", "LU factorization", lu_problemsizes)] -include("../perfgeneric.jl") - diff --git a/test/perf/lapack/perf.jl b/test/perf/lapack/perf.jl deleted file mode 100644 index c856be899bbfe4..00000000000000 --- a/test/perf/lapack/perf.jl +++ /dev/null @@ -1,13 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -include("eig.jl") -include("factorizations.jl") - -# The test below is not a perf test but it takes too long for the normal test suite. -# This tests a work around for a bug in LAPACK where the work space is truncated -# to a too small number because the number is too big to be represented as a Float32. -# See the calculation for lwork in our sgesdd wrapper in lapack.jl. -println("testing work space bug in sgesdd") -svd(rand(Float32, 9537, 9537)) diff --git a/test/perf/micro/.gitignore b/test/perf/micro/.gitignore deleted file mode 100644 index 19727ca0afb5ab..00000000000000 --- a/test/perf/micro/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/perf.h -/benchmarks.csv -/benchmarks.txt -/benchmarks.html -gopath -mods/* diff --git a/test/perf/micro/Makefile b/test/perf/micro/Makefile deleted file mode 100644 index c811c3e46e1dcf..00000000000000 --- a/test/perf/micro/Makefile +++ /dev/null @@ -1,156 +0,0 @@ -JULIAHOME := $(abspath ../../..) -include $(JULIAHOME)/Make.inc -include $(JULIAHOME)/deps/Versions.make - -NODEJSBIN = nodejs - -#Use python2 for Python 2.x -PYTHON = python3 - -ifeq ($(OS), WINNT) -MATHEMATICABIN = MathKernel -else ifeq ($(OS), Darwin) -MATHEMATICABIN = MathKernel -else -MATHEMATICABIN = math -endif - -#Which BLAS library am I using? -ifeq ($(USE_SYSTEM_BLAS), 0) -BLASMANIFEST=$(shell cat $(JULIAHOME)/usr/manifest/openblas) -BLASDIR=$(JULIAHOME)/deps/scratch/$(BLASMANIFEST)/ -LIBBLAS=$(BLASDIR)$(LIBBLASNAME).a -endif - -FFLAGS=-fexternal-blas -#gfortran cannot multiply matrices using 64-bit external BLAS. -ifeq ($(findstring gfortran, $(FC)), gfortran) -ifeq ($(USE_BLAS64), 1) -FFLAGS= -endif -FFLAGS+= -static-libgfortran -endif - -#Which libm library am I using? -LIBMDIR = $(JULIAHOME)/usr/lib/ -ifeq ($(USE_SYSTEM_LIBM), 0) -ifeq ($(USE_SYSTEM_OPENLIBM), 0) -LIBM = $(LIBMDIR)libopenlibm.a -endif -endif - -DSFMTDIR = $(JULIAHOME)/deps/scratch/dsfmt-$(DSFMT_VER) -RMATHDIR = $(JULIAHOME)/deps/scratch/Rmath-julia-$(RMATH_JULIA_VER) - -default: benchmarks.html - -export OMP_NUM_THREADS=1 -export GOTO_NUM_THREADS=1 -export OPENBLAS_NUM_THREADS=1 - -perf.h: $(JULIAHOME)/deps/Versions.make - echo '#include "$(BLASDIR)cblas.h"' > $@ - echo '#include "$(DSFMTDIR)/dSFMT.c"' >> $@ - -bin/perf%: perf.c perf.h - $(CC) -std=c99 -O$* $< -o $@ -I$(DSFMTDIR) $(LIBBLAS) -L$(LIBMDIR) $(LIBM) $(CFLAGS) -lpthread - -bin/fperf%: perf.f90 - mkdir -p mods/$@ #Modules for each binary go in separate directories -# $(FC) $(FFLAGS) -Jmods/$@ -O$* $< -o $@ $(LIBBLAS) -L$(LIBMDIR) $(LIBM) -lpthread - $(FC) $(FFLAGS) -Jmods/$@ -O$* $< -o $@ -lopenblas -L$(LIBMDIR) $(LIBM) -lpthread - -benchmarks/c.csv: \ - benchmarks/c0.csv \ - benchmarks/c1.csv \ - benchmarks/c2.csv \ - benchmarks/c3.csv - cat $^ > $@ - -benchmarks/fortran.csv: \ - benchmarks/fortran0.csv \ - benchmarks/fortran1.csv \ - benchmarks/fortran2.csv \ - benchmarks/fortran3.csv - cat $^ > $@ - - -benchmarks/c%.csv: bin/perf% - for t in 1 2 3 4 5; do $<; done >$@ - -benchmarks/fortran%.csv: bin/fperf% - for t in 1 2 3 4 5; do $<; done >$@ - -benchmarks/go.csv: export GOPATH=$(abspath gopath) -benchmarks/go.csv: perf.go - #CGO_LDFLAGS="$(LIBBLAS) $(LIBM)" go get github.com/gonum/blas/cgo - go get github.com/gonum/blas/blas64 - go get github.com/gonum/blas/cgo - go get github.com/gonum/matrix/mat64 - go get github.com/gonum/stat - for t in 1 2 3 4 5; do go run $<; done >$@ - -benchmarks/julia.csv: perf.jl - for t in 1 2 3 4 5; do ../../../julia $<; done >$@ - -benchmarks/python.csv: perf.py - for t in 1 2 3 4 5; do $(PYTHON) $<; done >$@ - -benchmarks/matlab.csv: perf.m - for t in 1 2 3 4 5; do matlab -nojvm -singleCompThread -r 'perf; perf; exit' | grep ^matlab | tail -8; done >$@ - -benchmarks/octave.csv: perf.m - for t in 1 2 3 4 5; do octave -q --eval perf 2>/dev/null; done >$@ - -benchmarks/r.csv: perf.R - for t in 1 2 3 4 5; do cat $< | R --vanilla --slave 2>/dev/null; done >$@ - -benchmarks/javascript.csv: perf.js - for t in 1 2 3 4 5; do $(NODEJSBIN) $<; done >$@ - -benchmarks/mathematica.csv: perf.nb - for t in 1 2 3 4 5; do $(MATHEMATICABIN) -noprompt -run "<<$<; Exit[]"; done >$@ - -benchmarks/stata.csv: perf.do - for t in 1 2 3 4 5; do stata -b do $^ $@; done - -benchmarks/lua.csv: perf.lua - for t in 1 2 3 4 5; do scilua $<; done >$@ - -benchmarks/java.csv: java/src/main/java/PerfBLAS.java - cd java; sh setup.sh; for t in 1 2 3 4 5; do mvn -q exec:java; done >../$@ - -benchmarks/scala.csv: scala/src/main/scala/perf.scala scala/build.sbt - cd scala; for t in 1 2 3 4 5; do sbt run; done >../$@ - -BENCHMARKS = \ - benchmarks/c.csv \ - benchmarks/fortran.csv \ - benchmarks/go.csv \ - benchmarks/java.csv \ - benchmarks/javascript.csv \ - benchmarks/julia.csv \ - benchmarks/lua.csv \ - benchmarks/mathematica.csv \ - benchmarks/matlab.csv \ - benchmarks/octave.csv \ - benchmarks/python.csv \ - benchmarks/r.csv - -# These were formerly listed in BENCHMARKS, but I can't get them to run -# 2017-09-27 johnfgibson -# benchmarks/scala.csv - - -benchmarks.csv: bin/collect.pl $(BENCHMARKS) - @$(call PRINT_PERL, $^ >$@) - -benchmarks.html: bin/table.pl benchmarks.csv - @$(call PRINT_PERL, $^ >$@) - -clean: - @rm -rf perf.h bin/perf* bin/fperf* benchmarks/*.csv benchmarks.csv mods *~ octave-core perf.log gopath/* - -.PHONY: all perf clean - -.PRECIOUS: bin/perf0 bin/perf1 bin/perf2 bin/perf3 diff --git a/test/perf/micro/benchmarks/.gitignore b/test/perf/micro/benchmarks/.gitignore deleted file mode 100644 index 72699f7d10b0be..00000000000000 --- a/test/perf/micro/benchmarks/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/*.csv diff --git a/test/perf/micro/bin/.gitignore b/test/perf/micro/bin/.gitignore deleted file mode 100644 index 4ffaa45ccb003a..00000000000000 --- a/test/perf/micro/bin/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/perf* -/fperf* diff --git a/test/perf/micro/bin/collect.pl b/test/perf/micro/bin/collect.pl deleted file mode 100755 index 93f0231be25f18..00000000000000 --- a/test/perf/micro/bin/collect.pl +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env perl - -while (<>) { - chomp; - @_ = split /,/; - $_{"$_[0],$_[1]"} = $_[2] if - !(exists $_{"$_[0],$_[1]"}) && 0 < $_[2] || - 0 < $_[2] && $_[2] < $_{"$_[0],$_[1]"}; -} -print "$_,$_{$_}\n" for sort keys %_; diff --git a/test/perf/micro/bin/table.pl b/test/perf/micro/bin/table.pl deleted file mode 100755 index 44057332743958..00000000000000 --- a/test/perf/micro/bin/table.pl +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -while (<>) { - chomp; - @_ = split /,/; - $_{$_[1]}{$_[0]} = $_[2]; -} - -our @benchmarks = qw( - iteration_pi_sum - recursion_fibonacci - recursion_quicksort - parse_integers - print_to_file - matrix_statistics - matrix_multiply - userfunc_mandelbrot -); - -chomp(our $c_ver = `gcc -v 2>&1 | grep "gcc version" | cut -f3 -d" "`); -chomp(our $julia_ver = `../../../julia -v | cut -f3 -d" "`); -chomp(our $fortran_ver = `gfortran -v 2>&1 | grep "gcc version" | cut -f3 -d" "`); -chomp(our $python_ver = `python3 -V 2>&1 | cut -f2 -d" "`); -chomp(our $matlab_ver = `matlab -nodisplay -nojvm -nosplash -r "version -release, quit" | tail -n 3 | head -n 1`); -chomp(our $R_ver = `R --version | grep "R version" | cut -f3 -d" "`); -chomp(our $octave_ver = `octave -v | grep version | cut -f4 -d" "`); -chomp(our $go_ver = `go version | cut -f3 -d" "`); -#chomp(our $lua_ver = `scilua -v 2>&1 | grep Shell | cut -f3 -d" " | cut -f1 -d,`); -chomp(our $lua_ver = "scilua v1.0.0-b12"); # scilua has no run-time versioninfo function -chomp(our $javascript_ver = `nodejs -e "console.log(process.versions.v8)"`); -chomp(our $mathematica_ver = `echo quit | math -version | head -n 1 | cut -f2 -d" "`); -#chomp(our $stata_ver = `stata -q -b version && grep version stata.log | cut -f2 -d" " && rm stata.log`); -chomp(our $java_ver = `java -version 2>&1 |grep "version" | cut -f3 -d " " | cut -c 2-9`); - -our %systems = ( - "c" => ["C" , "gcc $c_ver" ], - "julia" => ["Julia" , $julia_ver ], - "lua" => ["LuaJIT" , "$lua_ver" ], - "fortran" => ["Fortran" , "gcc $fortran_ver" ], - "java" => ["Java" , $java_ver ], - "javascript" => ["JavaScript" , "V8 $javascript_ver" ], - "matlab" => ["Matlab" , "R$matlab_ver" ], - "python" => ["Python" , $python_ver ], - "mathematica"=> ["Mathe­matica" , $mathematica_ver ], - "r" => ["R" , $R_ver ], - "octave" => ["Octave" , $octave_ver ], - "go" => ["Go" , $go_ver ], -# "stata" => ["Stata" , $stata_ver ], -); - -our @systems = qw(c julia lua go fortran java javascript matlab mathematica python r octave); - -print qq[\n]; -print qq[\n]; -print qq[\t\n]; -print qq[\t\t\n]; -printf qq[\t\t\n], scalar(@systems); -print qq[\t\n]; -print qq[\t\n]; -print qq[\t\t\n]; -print qq[\t\t\t\n]; -print qq[\t\t\t\n] for @systems; -print qq[\t\t\n]; -print qq[\t\t\n]; -print qq[\t\t\t\n]; -print qq[\t\t\t\n] for @systems; -print qq[\t\t\n]; -print qq[\t\n]; -print qq[\t\n]; - -for my $benchmark (@benchmarks) { - print qq[\t\t\n]; - print qq[\t\t\t\n]; - for my $system (@systems) { - printf qq[\t\t\t\n], $_{$benchmark}{$system}/$_{$benchmark}{'c'}; - } - print qq[\t\t\n]; -} -print qq[\t\n]; -print qq[
$systems{$_}[0]
$systems{$_}[1]
$benchmark%.2f
\n]; diff --git a/test/perf/micro/java/.gitignore b/test/perf/micro/java/.gitignore deleted file mode 100644 index ea8c4bf7f35f6f..00000000000000 --- a/test/perf/micro/java/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/test/perf/micro/java/pom.xml b/test/perf/micro/java/pom.xml deleted file mode 100644 index 125d5e14674915..00000000000000 --- a/test/perf/micro/java/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - 4.0.0 - julialang.org - javaBenchmarks - 0.0.1-SNAPSHOT - javaBenchmarks - micro benchmarks for Julia done in Java - - - org.jblas - jblas - 1.2.3 - - - com.googlecode.efficient-java-matrix-library - ejml - 0.23 - - - - - - maven-compiler-plugin - 3.0 - - 1.7 - 1.7 - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - - java - - - - - PerfBLAS - - - - - diff --git a/test/perf/micro/java/setup.sh b/test/perf/micro/java/setup.sh deleted file mode 100755 index 0e8065660e3177..00000000000000 --- a/test/perf/micro/java/setup.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -# This file is a part of Julia. License is MIT: https://julialang.org/license - -mvn compile exec:java -# requires maven and java 7 diff --git a/test/perf/micro/java/src/main/java/Complex.java b/test/perf/micro/java/src/main/java/Complex.java deleted file mode 100644 index c1b712fea4dcfd..00000000000000 --- a/test/perf/micro/java/src/main/java/Complex.java +++ /dev/null @@ -1,21 +0,0 @@ -public class Complex { - private final double re; - private final double im; - - public Complex(double real, double imag) { - re = real; - im = imag; - } - - public static double abs(Complex z) { - return Math.sqrt(z.re*z.re + z.im*z.im); - } - - public static Complex add(Complex a, Complex b) { - return new Complex(a.re + b.re, a.im + b.im); - } - - public static Complex mul(Complex a, Complex b) { - return new Complex(a.re*b.re - a.im*b.im, a.re*b.im + a.im*b.re); - } -} diff --git a/test/perf/micro/java/src/main/java/PerfBLAS.java b/test/perf/micro/java/src/main/java/PerfBLAS.java deleted file mode 100644 index f446b9417430c1..00000000000000 --- a/test/perf/micro/java/src/main/java/PerfBLAS.java +++ /dev/null @@ -1,75 +0,0 @@ -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.util.List; -import java.util.Random; - -import org.jblas.DoubleMatrix; - -/** - * Benchmark tests that call BLAS. - */ -public class PerfBLAS extends PerfPure { - - public static void main(String[] args) { - PerfBLAS p = new PerfBLAS(); - p.runBenchmarks(); - } - - private double randmatmul(int i) { - DoubleMatrix a = DoubleMatrix.randn(i,i); - DoubleMatrix b = DoubleMatrix.randn(i,i); - return a.mmul(b).get(0); - } - - private double[] randmatstat(int t) { - int n=5; - DoubleMatrix p; - DoubleMatrix q; - DoubleMatrix v = new DoubleMatrix(new double[t][1]); //zeros(t,1); - DoubleMatrix w = new DoubleMatrix(new double[t][1]); //zeros(t,1); - for (int i=0; i < t; i++) { - DoubleMatrix a = DoubleMatrix.randn(n,n); - DoubleMatrix b = DoubleMatrix.randn(n,n); - DoubleMatrix c = DoubleMatrix.randn(n,n); - DoubleMatrix d = DoubleMatrix.randn(n,n); - - p = DoubleMatrix.concatHorizontally(DoubleMatrix.concatHorizontally(a, b),DoubleMatrix.concatHorizontally(c, d)); - q = DoubleMatrix.concatVertically(DoubleMatrix.concatHorizontally(a, b),DoubleMatrix.concatHorizontally(c, d)); - - DoubleMatrix x = p.transpose().mmul(p); - x = x.mmul(x); - x = x.mmul(x); - v.data[i]=x.diag().sum(); - - x = q.transpose().mmul(q); - x = x.mmul(x); - x = x.mmul(x); - w.data[i]=x.diag().sum(); - - } - - List vElements = v.elementsAsList(); - List wElements = w.elementsAsList(); - - return new double[]{stdev(vElements)/mean(vElements),stdev(wElements)/mean(wElements)}; - } - - private static int mandel(double re, double im) { - int n = 0; - Complex z = new Complex(re, im); - Complex c = new Complex(re, im); - for (n=0; n<=79; ++n) { - if (Complex.abs(z) > 2.0) { - n -= 1; - break; - } - - // z = z*z + c - z = Complex.add(Complex.mul(z, z), c); - } - return n+1; - } - -} - diff --git a/test/perf/micro/java/src/main/java/PerfPure.java b/test/perf/micro/java/src/main/java/PerfPure.java deleted file mode 100644 index 25e26a5cfcdc50..00000000000000 --- a/test/perf/micro/java/src/main/java/PerfPure.java +++ /dev/null @@ -1,345 +0,0 @@ -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.util.List; -import java.util.Random; - -import org.ejml.simple.SimpleMatrix; - -/** - * (Below excerpt is printed on the website and repeated here) - * - * These benchmarks, while not comprehensive, do test compiler performance on a range of common code patterns, - * such as function calls, string parsing, sorting, numerical loops, random number generation, and array operations. - * It is important to note that these benchmark implementations are not written for absolute maximal performance - * (the fastest code to compute fib(20) is the constant literal 6765). Rather, all of the benchmarks are written - * to test the performance of specific algorithms, expressed in a reasonable idiom in each language. - * In particular, all languages use the same algorithm: the Fibonacci benchmarks are all recursive while - * the pi summation benchmarks are all iterative; the “algorithm” for random matrix multiplication is to - * call LAPACK, except where that’s not possible, such as in JavaScript. The point of these benchmarks is to - * compare the performance of specific algorithms across language implementations, not to compare the fastest - * means of computing a result, which in most high-level languages relies on calling C code. - * - */ -public class PerfPure { - - protected final int NITER = 5; - protected Random rand = new Random(0); - - public static void main(String[] args) { - PerfPure p = new PerfPure(); - p.runBenchmarks(); - } - - void runBenchmarks() { - - long t, tmin; - - assert(fib(20) == 6765); - int f = 0; - tmin = Long.MAX_VALUE; - for (int i=0; i=0) { - d[j] = rand.nextDouble(); - } - quicksort(d, 0, 5000-1); - t = System.nanoTime()-t; - if (t < tmin) tmin = t; - } - print_perf("recursion_quicksort", tmin); - - // pi sum - double pi = 0; - tmin = Long.MAX_VALUE; - for (int i=0; i elements) { - double m = mean(elements); - double total = 0; - for(Double d:elements) { - double dif = (d-m); - total += dif*dif; - } - return Math.sqrt(total/(elements.size()-1)); - } - - public double mean(List elements) { - double total = 0; - for(Double d:elements) { - total += d; - } - return total/elements.size(); - } - - public double stdev(SimpleMatrix sm) { - double m = mean(sm); - double total = 0; - - int i = sm.getNumElements(); - while (--i>=0) { - double dif = (sm.get(i)-m); - total += dif*dif; - } - return Math.sqrt(total/(sm.getNumElements()-1)); - } - - public double mean(SimpleMatrix sm) { - double total = 0; - int i = sm.getNumElements(); - while (--i>=0) { - total += sm.get(i); - } - return total/sm.getNumElements(); - } - - protected void quicksort(double[] a, int lo, int hi) { - int i = lo; - int j = hi; - while (i < hi) { - double pivot = a[(lo+hi)/2]; - // Partition - while (i <= j) { - while (a[i] < pivot) { - i = i + 1; - } - while (a[j] > pivot) { - j = j - 1; - } - if (i <= j) { - double t = a[i]; - a[i] = a[j]; - a[j] = t; - i = i + 1; - j = j - 1; - } - } - - // Recursion for quicksort - if (lo < j) { - quicksort(a, lo, j); - } - lo = i; - j = hi; - } - } - - protected double pisum() { - double sum = 0.0; - for (int j=0; j<500; ++j) { - sum = 0.0; - for (int k=1; k<=10000; ++k) { - sum += 1.0/(k*k); - } - } - return sum; - } - - private int mandel(double zReal, double zImag) { - int n = 0; - double cReal = zReal; - double cImag = zImag; - for (n=0; n<=79; ++n) { - if (complexAbs2(zReal,zImag) > 4.0) { - n -= 1; - break; - } - - // z^2 - double zSquaredReal = zReal*zReal-zImag*zImag; - double zSquaredImag = zReal*zImag+zImag*zReal; - - // +c - zReal = zSquaredReal+cReal; - zImag = zSquaredImag+cImag; - - } - return n+1; - } - - private double complexAbs(double zReal, double zImag) { - return Math.sqrt(zReal*zReal + zImag*zImag); - } - - private double complexAbs2(double zReal, double zImag) { - return zReal*zReal + zImag*zImag; - } - - protected int mandelperf() { - int mandel_sum = 0; - for (double re=-2.0; re<=0.5; re+=0.1) { - for (double im=-1.0; im<=1.0; im+=0.1) { - int m = mandel(re,im); - mandel_sum += m; - } - } - return mandel_sum; - } - - protected void print_perf(String name, long t) { - System.out.printf("java,%s,%.6f\n", name, t/(double)1E6); - } - - protected int fib(int n) { - return n < 2 ? n : fib(n-1) + fib(n-2); - } - -} - diff --git a/test/perf/micro/perf.R b/test/perf/micro/perf.R deleted file mode 100644 index fe5c163e5634b6..00000000000000 --- a/test/perf/micro/perf.R +++ /dev/null @@ -1,180 +0,0 @@ -require(compiler) - -assert = function(bool) { - if (!bool) stop('Assertion failed') -} - -timeit = function(name, f, ..., times=5) { - tmin = Inf - f = cmpfun(f) - for (t in 1:times) { - t = system.time(f(...))["elapsed"] - if (t < tmin) tmin = t - } - cat(sprintf("r,%s,%.8f\n", name, tmin*1000)) -} - -## fib ## - -fib = function(n) { - if (n < 2) { - return(n) - } else { - return(fib(n-1) + fib(n-2)) - } -} - -assert(fib(20) == 6765) -timeit("recursion_fibonacci", fib, 20) - -## parse_int ## - -parseintperf = function(t) { - for (i in 1:t) { - # R doesn't support uint32 values - n = floor(runif(1, min=0, max=2^31-1)) - s = sprintf("0x%x", n) - m = as.numeric(s) - assert(m == n) - } -} - -timeit("parse_integers", parseintperf, 1000) - -printfdperf = function(t) { - fd<-file("/dev/null") - for (i in 1:t) { - s = sprintf("%d %d", i, i+1) - writeLines(s, fd) - } -} - -timeit("print_to_file", printfdperf, 100000) - -## quicksort ## - -qsort = function(a) { - qsort_kernel = function(lo, hi) { - i = lo - j = hi - while (i < hi) { - pivot = a[floor((lo+hi)/2)] - while (i <= j) { - while (a[i] < pivot) i = i + 1 - while (a[j] > pivot) j = j - 1 - if (i <= j) { - t = a[i] - a[i] <<- a[j] - a[j] <<- t - i = i + 1; - j = j - 1; - } - } - if (lo < j) qsort_kernel(lo, j) - lo = i - j = hi - } - } - qsort_kernel(1, length(a)) - return(a) -} - -sortperf = function(n) { - v = runif(n) - return(qsort(v)) -} - -assert(!is.unsorted(sortperf(5000))) -timeit('recursion_quicksort', sortperf, 5000) - -## mandel ## -Mod2 = function(z) { - return(Re(z)*Re(z) + Im(z)*Im(z)) -} - -mandel = function(z) { - c = z - maxiter = 80 - for (n in 1:maxiter) { - if (Mod2(z) > 4) return(n-1) - z = z^2+c - } - return(maxiter) -} - -mandelperf = function() { - re = seq(-2,0.5,.1) - im = seq(-1,1,.1) - M = matrix(0.0,nrow=length(re),ncol=length(im)) - count = 1 - for (r in re) { - for (i in im) { - M[count] = mandel(complex(real=r,imag=i)) - count = count + 1 - } - } - return(M) -} - -assert(sum(mandelperf()) == 14791) -timeit("userfunc_mandelbrot", mandelperf) - -## pi_sum ## - -pisum = function() { - t = 0.0 - for (j in 1:500) { - t = 0.0 - for (k in 1:10000) { - t = t + 1.0/(k*k) - } - } - return(t) -} - -assert(abs(pisum()-1.644834071848065) < 1e-12); -timeit("iteration_pi_sum", pisum, times=1) - -## pi_sum_vec ## - -pisumvec = function() { - r = 1:10000 - return(replicate(500, sum(1/((r)^2)))[1]) -} - -#assert(abs(pisumvec()-1.644834071848065) < 1e-12); -#timeit("pi_sum_vec", pisumvec, times=10) - -## rand_mat_stat ## - -randmatstat = function(t) { - n = 5 - v = matrix(0, nrow=t) - w = matrix(0, nrow=t) - for (i in 1:t) { - a = matrix(rnorm(n*n), ncol=n, nrow=n) - b = matrix(rnorm(n*n), ncol=n, nrow=n) - c = matrix(rnorm(n*n), ncol=n, nrow=n) - d = matrix(rnorm(n*n), ncol=n, nrow=n) - P = cbind(a,b,c,d) - Q = rbind(cbind(a,b),cbind(c,d)) - v[i] = sum(diag((t(P)%*%P)^4)) - w[i] = sum(diag((t(Q)%*%Q)^4)) - } - s1 = apply(v,2,sd)/mean(v) - s2 = apply(w,2,sd)/mean(w) - return(c(s1,s2)) -} - -timeit("matrix_statistics", randmatstat, 1000) - -## rand_mat_mul ## - -randmatmul = function(n) { - A = matrix(runif(n*n), ncol=n, nrow=n) - B = matrix(runif(n*n), ncol=n, nrow=n) - return(A %*% B) -} - -assert(randmatmul(1000)[1] >= 0) -timeit("matrix_multiply", randmatmul, 1000) diff --git a/test/perf/micro/perf.c b/test/perf/micro/perf.c deleted file mode 100644 index 71a5a30ee99c52..00000000000000 --- a/test/perf/micro/perf.c +++ /dev/null @@ -1,389 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -#include - -// include header file generated by make: -#define DSFMT_MEXP 19937 -#include "perf.h" -#include "randmtzig.c" - -double *myrand(int n) { - double *d = (double *)malloc(n*sizeof(double)); - dsfmt_gv_fill_array_close_open(d, n); - return d; -} - -#define NITER 5 - -double clock_now() -{ - struct timeval now; - - gettimeofday(&now, NULL); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; -} - -int fib(int n) { - return n < 2 ? n : fib(n-1) + fib(n-2); -} - -long parse_int(const char *s, long base) { - long n = 0; - for (; *s; ++s) { - char c = *s; - long d = 0; - if (c >= '0' && c <= '9') d = c-'0'; - else if (c >= 'A' && c <= 'Z') d = c-'A' + (int) 10; - else if (c >= 'a' && c <= 'z') d = c-'a' + (int) 10; - else exit(-1); - - if (base <= d) exit(-1); - n = n*base + d; - } - return n; -} - -double *ones(int m, int n) { - double *a = (double *) malloc(m*n*sizeof(double)); - for (int k=0; k 4.0) { - return n; - } - z = z*z+c; - } - return maxiter; -} - -int *mandelperf() { - int *M = (int*) malloc(21*26*sizeof(int)); - for (int i = 0; i < 21; i++) { - for (int j = 0; j < 26; j++) { - M[26*i + j] = mandel((j-20)/10.0 + ((i-10)/10.0)*I); - } - } - return M; -} - -void quicksort(double *a, int lo, int hi) { - int i = lo; - int j = hi; - while (i < hi) { - double pivot = a[(lo+hi)/2]; - // Partition - while (i <= j) { - while (a[i] < pivot) { - i = i + 1; - } - while (a[j] > pivot) { - j = j - 1; - } - if (i <= j) { - double t = a[i]; - a[i] = a[j]; - a[j] = t; - i = i + 1; - j = j - 1; - } - } - - // Recursion for quicksort - if (lo < j) { - quicksort(a, lo, j); - } - lo = i; - j = hi; - } -} - -double pisum() { - double sum = 0.0; - for (int j=0; j<500; ++j) { - sum = 0.0; - for (int k=1; k<=10000; ++k) { - sum += 1.0/(k*k); - } - } - return sum; -} - -struct double_pair { double s1, s2; }; - -static void randmtzig_fill_randn(dsfmt_t *dsfmt, double *a, int size) { - for (int i=0; i pivot) j = j - 1 - if (i <= j) { - t = a[i] - a[i] = a[j] - a[j] = t - i = i + 1 - j = j - 1 - } - } - if (lo < j) a = qsort_kernel(a, lo, j) - lo = i - j = hi - } - return(a) -} - -real matrix quicksort(n) -{ - v = runiform(n, 1) - return(qsort(v)) -} - - -// mandelbrot -real scalar mandelarg(z) -{ - c = z - maxiter = 80 - for(n = 1; n <= maxiter; ++n) { - if (abs(z) > 2) return(n - 1) - z = z^2 + c - } - return(maxiter) -} - -real matrix mandel() -{ - rr = range(-2.0, 0.5, 0.1) - ri = range(-1.0, 1.0, 0.1) - nr = length(rr) - ni = length(ri) - M = J(nr, ni, 0) - for(r = 1;r <= nr; ++r) { - for(i = 1;i <= ni; ++i) { - M[r, i] = mandelarg(C(rr[r], ri[i])) - } - } - return(M) -} - - -// pi series -real scalar pi_sum() -{ - real scalar sum - sum = 0.0 - for(j = 1; j <= 500; ++j) { - sum = 0.0 - for(k = 1; k <= 10000; ++k) { - sum = sum + 1.0 / (k * k) - } - } - //sum - 1.644834071848065 - return(sum) -} - - -// random matrix statistics -real matrix rand_mat_stat(t) -{ - n = 5 - m = J(n, 1, 0) - s = J(n, 1, 1) - v = J(t, 1, 0) - w = J(t, 1, 0) - for(i = 1; i <= t; ++i) { - a = rnormal(n, n, m, s) - b = rnormal(n, n, m, s) - c = rnormal(n, n, m, s) - d = rnormal(n, n, m, s) - P = (a, b , c, d) - Q = (a, b \ c, d) - v[i] = trace(matpowersym(cross(P, 0, P, 0), 4)) - w[i] = trace(matpowersym(cross(Q, 0, Q, 0), 4)) - } - s1 = sqrt(variance(v)) / mean(v) - s2 = sqrt(variance(w)) / mean(w) - return((s1, s2)) -} - - -// largish random number gen & matmul -real matrix rand_mat_mul(real scalar n) -{ - return(runiform(n, n) * runiform(n, n)) -} - -end // end mata - - - -program fib, rclass -args n - if (`n' < 2) { - return scalar fib = 2 - } - else { - fib `= `n' - 1' - local x = r(fib) - fib `= `n' - 2' - return scalar fib = `x' + r(fib) - } -end - - -program parse_int -args t - tempname r n m - forvalues i = 0 / `t' { - scalar `r' = runiform() - scalar `n' = floor(2^31 - `r') - local s = string(`n', "%21x") - scalar `m' = real("`s'") - assert `m'==`n' - } -end - - - -// quick sort -program qsort_kernel -args a lo hi - tempname t pivot - local i = `lo' - local j = `hi' - quietly while (`i' < `hi') { - local idx = floor((`lo' + `hi') / 2) - scalar `pivot' = `a'[`idx'] - while (`i' <= `j') { - while (`a'[`i'] < `pivot') { - local ++i - } - while (`a'[`j'] > `pivot') { - local --j - } - if (`i' <= `j') { - scalar `t' = `a'[`i'] - replace `a' = `a'[`j'] in `i' - replace `a' = `t' in `j' - local ++i - local --j - } - } - if (`lo' < `j') qsort_kernel `a' `lo' `j' - local lo = `i' - local j = `hi' - } -end - -program quicksort -args n - drop _all - set obs `n' - tempvar x - g `x' = runiform() - qsort_kernel `x' 1 `n' -end - - -// mandelbrot -program mandel - tempname vr vi ri - forvalues r = -20/5 { - forvalues i = -10/10 { - scalar `vr' = `r' / 10 - scalar `vi' = `i' / 10 - local j 0 - forvalues n = 1 / 80 { - if (sqrt(`vr'^2 + `vi'^2) > 2) continue, break - scalar `ri' = `vr' * `vi' - scalar `vr' = `vr'^2 - `vi'^2 + `r' / 10 - scalar `vi' = 2 * `ri' + `i' / 10 - local j `n' - } - di %4.0g `j' _c - } - di - } -end - -// pi -program pi_sum - tempname sum - scalar `sum' = 0 - forvalues j = 1/500 { - scalar `sum' = 0 - forvalues k = 1/10000 { - scalar `sum' = `sum' + 1 / (`k' * `k') - } - } - di `sum' -end - - - - -// arguments -local fib 20 -local parse_int 1000 -local quicksort 5000 -local rand_mat_stat 1000 -local rand_mat_mul 1000 - -set processors 1 -set seed 200897813 - -tempname results -file open `results' using `1', write append - -// RUN MATA TESTS -qui foreach test in fib parse_int quicksort mandel pi_sum rand_mat_stat rand_mat_mul { - timer clear 1 - timer on 1 - mata : `test'(``test'') - timer off 1 - timer list 1 - file write `results' "stata,`test',`=r(t1) * 1000'" _n -} - -// RUN STATA TESTS -qui foreach test in fib parse_int quicksort mandel pi_sum { - timer clear 1 - timer on 1 - `test' ``test'' - timer off 1 - timer list 1 - file write `results' "stata,`test'_stata,`=r(t1) * 1000'" _n -} - - - -file close `results' - diff --git a/test/perf/micro/perf.f90 b/test/perf/micro/perf.f90 deleted file mode 100644 index 1661cb77f6467c..00000000000000 --- a/test/perf/micro/perf.f90 +++ /dev/null @@ -1,437 +0,0 @@ -module types -implicit none -private -public dp, i64 -integer, parameter :: dp=kind(0.d0) ! double precision -integer, parameter :: i64 = selected_int_kind(18) ! At least 64-bit integer -end module - - -module utils -! Various utilities -use types, only: dp, i64 -implicit none -private -public trace, mean, std, init_random_seed, randn, assert, stop_error, & - sysclock2ms - -contains - -subroutine stop_error(msg) -! Aborts the program with nonzero exit code -! -! The statement "stop msg" will return 0 exit code when compiled using -! gfortran. stop_error() uses the statement "stop 1" which returns an exit code -! 1 and a print statement to print the message. -! -! Example -! ------- -! -! call stop_error("Invalid argument") - -character(len=*) :: msg ! Message to print on stdout -print *, msg -stop 1 -end subroutine - -subroutine assert(condition) -! If condition == .false., it aborts the program. -! -! Arguments -! --------- -! -logical, intent(in) :: condition -! -! Example -! ------- -! -! call assert(a == 5) - -if (.not. condition) call stop_error("Assert failed.") -end subroutine - -real(dp) function trace(A) result(t) -real(dp), intent(in) :: A(:, :) -integer :: i -t = 0 -do i = 1, size(A, 1) - t = t + A(i, i) -end do -end function - -real(dp) function mean(x) result(t) -real(dp), intent(in) :: x(:) -t = sum(x) / size(x) -end function - -real(dp) function std(x) result(t) -real(dp), intent(in) :: x(:) -t = sqrt(mean(abs(x - mean(x))**2)) -end function - -subroutine init_random_seed() -integer :: i, n, clock -integer, allocatable :: seed(:) -call random_seed(size=n) -allocate(seed(n)) -call system_clock(count=clock) -seed = clock + 37 * [ (i - 1, i = 1, n) ] -call random_seed(put=seed) -end subroutine - -FUNCTION rnorm() RESULT( fn_val ) - -! This subroutine was taken from: http://jblevins.org/mirror/amiller/rnorm.f90 - -! Generate a random normal deviate using the polar method. -! Reference: Marsaglia,G. & Bray,T.A. 'A convenient method for generating -! normal variables', Siam Rev., vol.6, 260-264, 1964. - -IMPLICIT NONE -REAL(dp) :: fn_val - -! Local variables - -REAL(dp) :: u, sum -REAL(dp), SAVE :: v, sln -LOGICAL, SAVE :: second = .FALSE. -REAL(dp), PARAMETER :: one = 1, vsmall = TINY( one ) - -IF (second) THEN -! If second, use the second random number generated on last call - - second = .false. - fn_val = v*sln - -ELSE -! First call; generate a pair of random normals - - second = .true. - DO - CALL RANDOM_NUMBER( u ) - CALL RANDOM_NUMBER( v ) - u = SCALE( u, 1 ) - one - v = SCALE( v, 1 ) - one - sum = u*u + v*v + vsmall ! vsmall added to prevent LOG(zero) / zero - IF(sum < one) EXIT - END DO - sln = SQRT(- SCALE( LOG(sum), 1 ) / sum) - fn_val = u*sln -END IF - -RETURN -END FUNCTION rnorm - -subroutine randn(A) -real(dp), intent(out) :: A(:, :) -integer :: i, j -do j = 1, size(A, 2) - do i = 1, size(A, 1) - A(i, j) = rnorm() - end do -end do -end subroutine - -! Convert a number of clock ticks, as returned by system_clock called -! with integer(i64) arguments, to milliseconds -function sysclock2ms(t) - integer(i64), intent(in) :: t - integer(i64) :: rate - real(dp) :: sysclock2ms, r - call system_clock(count_rate=rate) - r = 1000._dp / rate - sysclock2ms = t * r -end function sysclock2ms - -end module - - - -module bench -use utils, only: trace, randn, std, mean, stop_error -use types, only: dp -implicit none -private -public fib, parse_int, printfd, quicksort, mandelperf, pisum, randmatstat, randmatmul - -contains - -integer recursive function fib(n) result(r) -integer, intent(in) :: n -if (n < 2) then - r = n -else - r = fib(n-1) + fib(n-2) -end if -end function - -integer function parse_int(s, base) result(n) -character(len=*), intent(in) :: s -integer, intent(in) :: base -integer :: i, d -character :: c -n = 0 -do i = 1, len(s) - c = s(i:i) - d = 0 - if (ichar(c) >= ichar('0') .and. ichar(c) <= ichar('9')) then - d = ichar(c) - ichar('0') - else if (ichar(c) >= ichar('A') .and. ichar(c) <= ichar('Z')) then - d = ichar(c) - ichar('A') + 10 - else if (ichar(c) >= ichar('a') .and. ichar(c) <= ichar('z')) then - d = ichar(c) - ichar('a') + 10 - else - call stop_error("parse_int 1") - end if - - if (base <= d) call stop_error("parse_int 2") - n = n*base + d -end do - -end function - -subroutine printfd(n) -integer, intent(in) :: n -integer :: i , unit -open(unit=1, file="/dev/null") -do i = 1, n - write(unit=1, fmt=*) i, i+1 -end do -close(unit=1) -end subroutine - -real(dp) function abs2(z) result(r) -complex(dp), intent(in) :: z - r = real(z)*real(z) + imag(z)*imag(z); -end function - -integer function mandel(z0) result(r) -complex(dp), intent(in) :: z0 -complex(dp) :: c, z -integer :: n, maxiter -maxiter = 80 -z = z0 -c = z0 -do n = 1, maxiter - if (abs2(z) > 4) then - r = n-1 - return - end if - z = z**2 + c -end do -r = maxiter -end function - -integer function mandelperf() result(mandel_sum) -integer :: re, im -volatile :: mandel_sum -mandel_sum = 0 -re = -20 -do while (re <= 5) - im = -10 - do while (im <= 10) - mandel_sum = mandel_sum + mandel(cmplx(re/10._dp, im/10._dp, dp)) - im = im + 1 - end do - re = re + 1 -end do -end function - -recursive subroutine quicksort(a, lo0, hi) -real(dp), intent(inout) :: a(:) -integer, intent(in) :: lo0, hi -integer :: i, j, lo -real(dp) :: pivot, t -lo = lo0 -i = lo -j = hi -do while (i < hi) - pivot = a((lo+hi)/2) - do while (i <= j) - do while (a(i) < pivot) - i = i + 1 - end do - do while (a(j) > pivot) - j = j - 1 - end do - if (i <= j) then - t = a(i) - a(i) = a(j) - a(j) = t - i = i + 1 - j = j - 1 - end if - end do - if (lo < j) call quicksort(a, lo, j) - lo = i - j = hi -end do -end subroutine - -real(dp) function pisum() result(s) -integer :: j, k -do j = 1, 500 - s = 0 - do k = 1, 10000 - s = s + 1._dp / k**2 - end do -end do -end function - -subroutine randmatstat(t, s1, s2) -integer, intent(in) :: t -real(dp), intent(out) :: s1, s2 -real(dp), allocatable, dimension(:, :) :: a, b, c, d, P, Q, X -real(dp), allocatable :: v(:), w(:) -integer :: n, i -n = 5 -allocate(a(n, n), b(n, n), c(n, n), d(n, n)) -allocate(P(4*n, n), Q(2*n, 2*n), X(2*n, 2*n)) -allocate(v(t), w(t)) -do i = 1, t - call randn(a) - call randn(b) - call randn(c) - call randn(d) - P(:n, :)=a; P(n+1:2*n, :)=b; P(2*n+1:3*n, :)=c; P(3*n+1:, :)=d - Q(:n, :n) = a; Q(n+1:, :n) = b - Q(:n, n+1: ) = c; Q(n+1:, n+1: ) = d - X = matmul(transpose(P), P) - X = matmul(X, X) - X = matmul(X, X) - v(i) = trace(X) - X = matmul(transpose(Q), Q) - X = matmul(X, X) - X = matmul(X, X) - w(i) = trace(X) -end do -s1 = std(v) / mean(v) -s2 = std(w) / mean(w) -end subroutine - -subroutine randmatmul(n, C) -integer, intent(in) :: n -real(dp), intent(out), allocatable :: C(:, :) -real(dp), allocatable :: A(:, :), B(:, :) -allocate(A(n, n), B(n, n), C(n, n)) -call random_number(A) -call random_number(B) -!C = matmul(A, B) -call dgemm('N','N',n,n,n,1.0d0,A,n,B,n,0.0d0,C,n) -end subroutine - -end module - -program perf -use types, only: dp, i64 -use utils, only: assert, init_random_seed, sysclock2ms -use bench, only: fib, parse_int, printfd, quicksort, mandelperf, pisum, randmatstat, & - randmatmul -implicit none - -integer, parameter :: NRUNS = 1000 -integer :: i, f, n, m, k, k2 -integer(i64) :: t1, t2, tmin -real(dp) :: pi, s1, s2 -real(dp), allocatable :: C(:, :), d(:) -character(len=11) :: s - -call init_random_seed() - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - do k = 1, NRUNS - f = fib(20) - end do - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -call assert(f == 6765) -print "('fortran,recursion_fibonacci,',f0.6)", sysclock2ms(tmin) / NRUNS - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - do k2 = 1, NRUNS - do k = 1, 1000 - call random_number(s1) - n = int(s1*huge(n)) - write(s, '(z0)') n - m = parse_int(s(:len_trim(s)), 16) - call assert(m == n) - end do - end do - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -print "('fortran,parse_integers,',f0.6)", sysclock2ms(tmin) / NRUNS - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - call printfd(100000) - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -print "('fortran,print_to_file,',f0.6)", sysclock2ms(tmin) - - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - do k = 1, NRUNS - f = mandelperf() - end do - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -call assert(f == 14791) -print "('fortran,userfunc_mandelbrot,',f0.6)", sysclock2ms(tmin) / NRUNS - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - do k = 1, NRUNS - allocate(d(5000)) - call random_number(d) - call quicksort(d, 1, size(d)) - deallocate(d) - end do - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -print "('fortran,recursion_quicksort,',f0.6)", sysclock2ms(tmin) / NRUNS - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - pi = pisum() - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -call assert(abs(pi - 1.644834071848065_dp) < 1e-6_dp) -print "('fortran,iteration_pi_sum,',f0.6)", sysclock2ms(tmin) - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - call randmatstat(1000, s1, s2) - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -! call assert(s1 > 0.5_dp .and. s1 < 1) -! call assert(s2 > 0.5_dp .and. s2 < 1) -print "('fortran,matrix_statistics,',f0.6)", sysclock2ms(tmin) - -tmin = huge(0_i64) -do i = 1, 5 - call system_clock(t1) - call randmatmul(1000, C) - call assert(C(1, 1) >= 0) - call system_clock(t2) - if (t2-t1 < tmin) tmin = t2-t1 -end do -print "('fortran,matrix_multiply,',f0.6)", sysclock2ms(tmin) - -end program diff --git a/test/perf/micro/perf.go b/test/perf/micro/perf.go deleted file mode 100644 index 077a0bc7827a63..00000000000000 --- a/test/perf/micro/perf.go +++ /dev/null @@ -1,343 +0,0 @@ -// Implementation of the Julia benchmark suite in Go. -// -// Three gonum packages must be installed, and then an additional environment -// variable must be set to use the BLAS installation. -// To install the gonum packages, run: -// go get github.com/gonum/blas -// go get github.com/gonum/matrix/mat64 -// go get github.com/gonum/stat -// The cgo ldflags must then be set to use the BLAS implementation. As an example, -// download OpenBLAS to ~/software -// git clone https://github.com/xianyi/OpenBLAS -// cd OpenBLAS -// make -// Then edit the enivorment variable to have -// export CGO_LDFLAGS="-L/$HOME/software/OpenBLAS -lopenblas" -package main - -import ( - "errors" - "fmt" - "log" - "math" -// "math/cmplx" - "math/rand" - "strconv" - "testing" - "os" - "bufio" - - "github.com/gonum/blas/blas64" - "github.com/gonum/blas/cgo" - "github.com/gonum/matrix/mat64" - "github.com/gonum/stat" -) - -func init() { - // Use the BLAS implementation specified in CGO_LDFLAGS. This line can be - // commented out to use the native Go BLAS implementation found in - // github.com/gonum/blas/native. - //blas64.Use(cgo.Implementation{}) - - // These are here so that toggling the BLAS implementation does not make imports unused - _ = cgo.Implementation{} - _ = blas64.General{} -} - -// fibonacci - -func fib(n int) int { - if n < 2 { - return n - } - return fib(n-1) + fib(n-2) -} - -// print to file descriptor - -func printfd(n int) { - f, err := os.Create("/dev/null") - if err != nil { - panic(err) - } - defer f.Close() - w := bufio.NewWriter(f) - - for i := 0; i < n; i++ { - _, err = fmt.Fprintf(w, "%d %d\n", i, i+1) - } - w.Flush() - f.Close() -} - -// quicksort - -func qsort_kernel(a []float64, lo, hi int) []float64 { - i := lo - j := hi - for i < hi { - pivot := a[(lo+hi)/2] - for i <= j { - for a[i] < pivot { - i += 1 - } - for a[j] > pivot { - j -= 1 - } - if i <= j { - a[i], a[j] = a[j], a[i] - i += 1 - j -= 1 - } - } - if lo < j { - qsort_kernel(a, lo, j) - } - lo = i - j = hi - } - return a -} - -var rnd = rand.New(rand.NewSource(1)) - -// randmatstat - -func randmatstat(t int) (float64, float64) { - n := 5 - v := make([]float64, t) - w := make([]float64, t) - ad := make([]float64, n*n) - bd := make([]float64, n*n) - cd := make([]float64, n*n) - dd := make([]float64, n*n) - P := mat64.NewDense(n, 4*n, nil) - Q := mat64.NewDense(2*n, 2*n, nil) - pTmp := mat64.NewDense(4*n, 4*n, nil) - qTmp := mat64.NewDense(2*n, 2*n, nil) - for i := 0; i < t; i++ { - for i := range ad { - ad[i] = rnd.NormFloat64() - bd[i] = rnd.NormFloat64() - cd[i] = rnd.NormFloat64() - dd[i] = rnd.NormFloat64() - } - a := mat64.NewDense(n, n, ad) - b := mat64.NewDense(n, n, bd) - c := mat64.NewDense(n, n, cd) - d := mat64.NewDense(n, n, dd) - P.Copy(a) - P.View(0, n, n, n).(*mat64.Dense).Copy(b) - P.View(0, 2*n, n, n).(*mat64.Dense).Copy(c) - P.View(0, 3*n, n, n).(*mat64.Dense).Copy(d) - - Q.Copy(a) - Q.View(0, n, n, n).(*mat64.Dense).Copy(b) - Q.View(n, 0, n, n).(*mat64.Dense).Copy(c) - Q.View(n, n, n, n).(*mat64.Dense).Copy(d) - - pTmp.Mul(P.T(), P) - pTmp.Pow(pTmp, 4) - - qTmp.Mul(Q.T(), Q) - qTmp.Pow(qTmp, 4) - - v[i] = mat64.Trace(pTmp) - w[i] = mat64.Trace(qTmp) - } - mv, stdv := stat.MeanStdDev(v, nil) - mw, stdw := stat.MeanStdDev(v, nil) - return stdv / mv, stdw / mw -} - -// randmatmul - -func randmatmul(n int) *mat64.Dense { - aData := make([]float64, n*n) - for i := range aData { - aData[i] = rnd.Float64() - } - a := mat64.NewDense(n, n, aData) - - bData := make([]float64, n*n) - for i := range bData { - bData[i] = rnd.Float64() - } - b := mat64.NewDense(n, n, bData) - var c mat64.Dense - c.Mul(a, b) - return &c -} - -// mandelbrot -func abs2(z complex128) float64 { - return real(z)*real(z) + imag(z)*imag(z) -} -func mandel(z complex128) int { - maxiter := 80 - c := z - for n := 0; n < maxiter; n++ { - if abs2(z) > 4 { - return n - } - z = z*z + c - } - return maxiter -} - -// mandelperf - -func mandelperf() int { - mandel_sum := 0 - // These loops are constructed as such because mandel is very sensitive to - // its input and this avoids very small floating point issues. - for re := -20.0; re <= 5; re += 1 { - for im := -10.0; im <= 10; im += 1 { - m := mandel(complex(re/10, im/10)) - mandel_sum += m - } - } - return mandel_sum -} - -// pisum - -func pisum() float64 { - var sum float64 - for i := 0; i < 500; i++ { - sum = 0.0 - for k := 1.0; k <= 10000; k += 1 { - sum += 1.0 / (k * k) - } - } - return sum -} - -func print_perf(name string, time float64) { - fmt.Printf("go,%v,%v\n", name, time*1000) -} - -// run tests - -func assert(b *testing.B, t bool) { - if t != true { - b.Fatal("assert failed") - } -} - -func main() { - for _, bm := range benchmarks { - seconds, err := runBenchmarkFor(bm.fn) - if err != nil { - log.Fatalf("%s %s", bm.name, err) - } - print_perf(bm.name, seconds) - } -} - -func runBenchmarkFor(fn func(*testing.B)) (seconds float64, err error) { - bm := testing.Benchmark(fn) - if (bm == testing.BenchmarkResult{}) { - return 0, errors.New("failed") - } - return bm.T.Seconds() / float64(bm.N), nil -} - -var benchmarks = []struct { - name string - fn func(*testing.B) -}{ - { - name: "recursion_fibonacci", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - if fib(20) != 6765 { - b.Fatal("unexpected value for fib(20)") - } - } - }, - }, - - { - name: "parse_integers", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - for k := 0; k < 1000; k++ { - n := rnd.Uint32() - m, _ := strconv.ParseUint(strconv.FormatUint(uint64(n), 16), 16, 32) - if uint32(m) != n { - b.Fatal("incorrect value for m") - } - } - } - }, - }, - - { - name: "userfunc_mandelbrot", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - if mandelperf() != 14791 { - b.Fatal("unexpected value for mandelperf") - } - } - }, - }, - - { - name: "print_to_file", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - printfd(100000) - } - }, - }, - - { - name: "recursion_quicksort", - fn: func(b *testing.B) { - lst := make([]float64, 5000) - b.ResetTimer() - for i := 0; i < b.N; i++ { - for k := range lst { - lst[k] = rnd.Float64() - } - qsort_kernel(lst, 0, len(lst)-1) - } - }, - }, - - { - name: "iteration_pi_sum", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - if math.Abs(pisum()-1.644834071848065) >= 1e-6 { - b.Fatal("pi_sum out of range") - } - } - }, - }, - - { - name: "matrix_statistics", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - c1, c2 := randmatstat(1000) - assert(b, 0.5 < c1) - assert(b, c1 < 1.0) - assert(b, 0.5 < c2) - assert(b, c2 < 1.0) - } - }, - }, - - { - name: "matrix_multiply", - fn: func(b *testing.B) { - for i := 0; i < b.N; i++ { - c := randmatmul(1000) - assert(b, c.At(0, 0) >= 0) - } - }, - }, -} diff --git a/test/perf/micro/perf.jl b/test/perf/micro/perf.jl deleted file mode 100644 index 93ef57e124a75a..00000000000000 --- a/test/perf/micro/perf.jl +++ /dev/null @@ -1,160 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using LinearAlgebra -using Test -using Printf - - -include("../perfutil.jl") - -## recursive fib ## - -fib(n) = n < 2 ? n : fib(n-1) + fib(n-2) - -@test fib(20) == 6765 -@timeit fib(20) "recursion_fibonacci" "Recursive fibonacci" - -## parse integer ## - -function parseintperf(t) - local n, m - for i=1:t - n = rand(UInt32) - s = hex(n) - m = UInt32(parse(Int64,s, base = 16)) - end - @test m == n - return n -end - -@timeit parseintperf(1000) "parse_integers" "Integer parsing" - -## array constructors ## - -@test all(fill(1.,200,200) .== 1) - -## matmul and transpose ## - -A = fill(1.,200,200) -@test all(A*A' .== 200) -# @timeit A*A' "AtA" "description" - -## mandelbrot set: complex arithmetic and comprehensions ## - -function myabs2(z) - return real(z)*real(z) + imag(z)*imag(z) -end - -function mandel(z) - c = z - maxiter = 80 - for n = 1:maxiter - if myabs2(z) > 4 - return n-1 - end - z = z^2 + c - end - return maxiter -end - -mandelperf() = [ mandel(complex(r,i)) for i=-1.:.1:1., r=-2.0:.1:0.5 ] -@test sum(mandelperf()) == 14791 -@timeit mandelperf() "userfunc_mandelbrot" "Calculation of mandelbrot set" - -## numeric vector sort ## - -function qsort!(a,lo,hi) - i, j = lo, hi - while i < hi - pivot = a[(lo+hi)>>>1] - while i <= j - while a[i] < pivot; i += 1; end - while a[j] > pivot; j -= 1; end - if i <= j - a[i], a[j] = a[j], a[i] - i, j = i+1, j-1 - end - end - if lo < j; qsort!(a,lo,j); end - lo, j = i, hi - end - return a -end - -sortperf(n) = qsort!(rand(n), 1, n) -@test issorted(sortperf(5000)) -@timeit sortperf(5000) "recursion_quicksort" "Sorting of random numbers using quicksort" - -## slow pi series ## - -function pisum() - sum = 0.0 - for j = 1:500 - sum = 0.0 - for k = 1:10000 - sum += 1.0/(k*k) - end - end - sum -end - -@test abs(pisum()-1.644834071848065) < 1e-12 -@timeit pisum() "iteration_pi_sum" "Summation of a power series" - -## slow pi series, vectorized ## - -function pisumvec() - s = 0.0 - a = [1:10000] - for j = 1:500 - s = sum(1 ./ (a.^2)) - end - s -end - -#@test abs(pisumvec()-1.644834071848065) < 1e-12 -#@timeit pisumvec() "pi_sum_vec" - -## random matrix statistics ## - -function randmatstat(t) - n = 5 - v = zeros(t) - w = zeros(t) - for i=1:t - a = randn(n,n) - b = randn(n,n) - c = randn(n,n) - d = randn(n,n) - P = [a b c d] - Q = [a b; c d] - v[i] = trace((P'*P)^4) - w[i] = trace((Q'*Q)^4) - end - return (std(v)/mean(v), std(w)/mean(w)) -end - -(s1, s2) = randmatstat(1000) -@test 0.5 < s1 < 1.0 && 0.5 < s2 < 1.0 -@timeit randmatstat(1000) "matrix_statistics" "Statistics on a random matrix" - -## largish random number gen & matmul ## - -@timeit rand(1000,1000)*rand(1000,1000) "matrix_multiply" "Multiplication of random matrices" - -## printfd ## - -if Sys.isunix() - function printfd(n) - open("/dev/null", "w") do io - for i = 1:n - @printf(io, "%d %d\n", i, i + 1) - end - end - end - - printfd(1) - @timeit printfd(100000) "print_to_file" "Printing to a file descriptor" -end - -#maxrss("micro") diff --git a/test/perf/micro/perf.js b/test/perf/micro/perf.js deleted file mode 100644 index cc6f81525ac781..00000000000000 --- a/test/perf/micro/perf.js +++ /dev/null @@ -1,451 +0,0 @@ -(function () { - 'use strict'; - - var tmin, i, j, t, n, m, s, a, sum, a0, v, r, C, filename, fd; - - function assert(t) { if (!t) { throw new Error("assertion failed"); } } - - // recursive fib // - - function fib(n) { - if (n < 2) { return n; } - return fib(n-1) + fib(n-2); - } - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 1000; j++) { - assert(fib(20) === 6765); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin = t; } - } - console.log("javascript,recursion_fibonacci," + tmin/1000); - - // parse int // - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 1000*100; j++) { - n = Math.floor(4294967295*Math.random()); - s = n.toString(16); - m = parseInt(s,16); - assert(m === n); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin = t; } - } - console.log("javascript,parse_integers," + tmin/100); - - // for (i=0; i < 5; i++) { - // t = (new Date()).getTime(); - // filename = "/dev/null"; - // fd : StreamWriter = new StreamWriter(filepathIncludingFileName); - // for (j=0; j < 100000; j++) { - // s = j.toString(); - // fd.WriteLine(s + " " + s); - // } - // t = (new Date()).getTime()-t; - // if (t < tmin) { tmin = t; } - // } - // console.log("javascript,print_to_file," + 9999); - - // mandelbrot set // - - function Complex(real, imag) { - this.re = real; - this.im = imag; - } - function complex_abs(z) { - return Math.sqrt(z.re*z.re + z.im*z.im); - } - function complex_abs2(z) { - return z.re*z.re + z.im*z.im; - } - function complex_add(z,w) { - return new Complex(z.re+w.re, z.im+w.im); - } - function complex_multiply(z,w) { - return new Complex(z.re*w.re-z.im*w.im, z.re*w.im+z.im*w.re); - } - - function mandel(z) { - var c, n, maxiter; - c = z; - maxiter = 80; - n = 0; - for (n = 0; n < maxiter; n++) { - if (complex_abs2(z) > 4) { return n; } - z = complex_add(complex_multiply(z,z),c); - } - return maxiter; - } - - function mandelperf() { - var a, r, re, i, im, z; - a = new Array(26*21); - r = 0; - for (r = 0; r < 26; r++) { - re = -2.0 + r*0.1; - i = 0; - for (i = 0; i < 21; i++) { - im = -1.0 + i*0.1; - z = new Complex(re,im); - a[r*21+i] = mandel(z); - } - } - return a; - } - - a = mandelperf(); - i = 0; - sum = 0; - for (i = 0; i < a.length; i++) { sum += a[i]; } - assert(sum === 14791); - a0 = a[0]; - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 1000; j++) { - a = mandelperf(); - assert(a[0] === a0); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin=t; } - } - console.log("javascript,userfunc_mandelbrot," + tmin/1000); - - // numeric vector sort // - - function rand(n) { - var v, i; - v = new Array(n); - - for (i = 0; i < n; i++) { - v[i] = Math.random(); - } - - return v; - } - - function qsort_kernel(a, lo, hi) { - var i, j, pivot, t; - i = lo; - j = hi; - while (i < hi) { - pivot = a[Math.floor((lo+hi)/2)]; - while (i <= j) { - while (a[i] < pivot) { - i = i + 1; - } - while (a[j] > pivot) { - j = j - 1; - } - if (i <= j) { - t = a[i]; - a[i] = a[j]; - a[j] = t; - i = i + 1; - j = j - 1; - } - } - if (lo < j) { - qsort_kernel(a, lo, j); - } - lo = i; - j = hi; - } - } - - function sortperf(n) { - var v = rand(n); - qsort_kernel(v, 0, n); - return v; - } - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 100; j++) { - v = sortperf(5000); - assert(a[0] < 0.99); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin=t; } - } - console.log("javascript,recursion_quicksort," + tmin/100); - - // slow pi series // - - function pisum() { - var sum, k; - sum = 0.0; - for (i=0; i < 500; i++) { - sum = 0.0; - for (k=1; k <= 10000; k++) { - sum += 1.0/(k*k); - } - } - return sum; - } - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 10; j++) { - assert(Math.abs(pisum()-1.644834071848065) < 1e-12); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin=t; } - } - console.log("javascript,iteration_pi_sum," + tmin/10); - - // random matrix statistics // - - function gaussian() { - var k, i, j; - k = 2; - do { - i = 2*Math.random()-1; - j = 2*Math.random()-1; - k = i*i+j*j; - } while (k >= 1); - return i*Math.sqrt((-2*Math.log(k))/k); - } - - function randn( a, sub ) { - var subLen, len, i; - subLen = sub.length; - len = a.length; - - for (i = 0; i < subLen; i++) { - a[i] = sub[i] = gaussian(); - } - - for (i = subLen; i < len; i++) { - a[i] = gaussian(); - } - - return a; - } - - function transpose(dest, src,m,n) { - var i, j; - i = 0; - j = 0; - - for (i = 0; i < m; i++) { - for (j = 0; j < n; j++) { - dest[i*n+j] = src[j*m+i]; - } - } - } - - function matmulCopy( dest, A,B,m,l,n) { - var i, j, k, sum; - i = 0; - j = 0; - k = 0; - - for (i = 0; i < m; i++) { - for (j = 0; j < n; j++) { - sum = 0.0; - - for (k = 0; k < l; k++) { - sum += A[i*l+k]*B[k*n+j]; - } - - dest[i*n+j] = sum; - } - } - } - - function randmatstat(t) { - var n, P, PTransposed, Pt1P, Pt2P, Q, QTransposed, Pt1Q, Pt2Q, - a, b, c, d, aSub, bSub, cSub, dSub, v, w, i, j, k, - trP, trQ, v1, v2, w1, w2; - n = 5; - - P = new Float64Array( 4*n*n ); - Q = new Float64Array( 4*n*n ); - - PTransposed = new Float64Array( P.length ); - QTransposed = new Float64Array( Q.length ); - - Pt1P = new Float64Array( (4*n) * (4*n) ); - Pt2P = new Float64Array( (4*n) * (4*n) ); - Pt1Q = new Float64Array( (2*n) * (2*n) ); - Pt2Q = new Float64Array( (2*n) * (2*n) ); - - a = new Float64Array( n*n ); - b = new Float64Array( n*n ); - c = new Float64Array( n*n ); - d = new Float64Array( n*n ); - - // the first n number of elements of a to d - aSub = new Float64Array( n ); - bSub = new Float64Array( n ); - cSub = new Float64Array( n ); - dSub = new Float64Array( n ); - - v = new Float64Array( t ); - w = new Float64Array( t ); - - i = 0; - j = 0; - k = 0; - - for (i = 0; i < t; i++) { - a = randn( a, aSub ); - b = randn( b, bSub ); - c = randn( c, cSub ); - d = randn( d, dSub ); - - P.set( a, 0*n*n ); - P.set( b, 1*n*n ); - P.set( c, 2*n*n ); - P.set( d, 3*n*n ); - - for (j = 0; j < n; j++) { - Q.set( aSub, 2*n*j ); - Q.set( bSub, 2*n*j+n ); - Q.set( cSub, 2*n*(n+j) ); - Q.set( dSub, 2*n*(n+j)+n ); - /* - for (k = 0; k < n; k++) { - Q[ 2*n*j + k ] = a[k]; - Q[ 2*n*j+n + k ] = b[k]; - Q[ 2*n*(n+j) + k ] = c[k]; - Q[ 2*n*(n+j)+n + k ] = d[k]; - } - */ - } - - transpose( PTransposed, P, n, 4*n ); - matmulCopy( Pt1P, PTransposed, P, 4*n, n, 4*n ); - matmulCopy( Pt2P, Pt1P, Pt1P, 4*n, 4*n, 4*n); - matmulCopy( Pt1P, Pt2P, Pt2P, 4*n, 4*n, 4*n); - - trP = 0; - for (j = 0; j < 4*n; j++) { - trP += Pt1P[(4*n+1)*j]; - } - v[i] = trP; - - transpose( QTransposed, Q, 2*n, 2*n ); - matmulCopy( Pt1Q, QTransposed, Q, 2*n, 2*n, 2*n ); - matmulCopy( Pt2Q, Pt1Q, Pt1Q, 2*n, 2*n, 2*n); - matmulCopy( Pt1Q, Pt2Q, Pt2Q, 2*n, 2*n, 2*n); - - trQ = 0; - for (j = 0; j < 2*n; j++) { - trQ += Pt1Q[(2*n+1)*j]; - } - w[i] = trQ; - } - - v1 = 0.0; - v2 = 0.0; - w1 = 0.0; - w2 = 0.0; - for (i = 0; i < t; i++) { - v1 += v[i]; v2 += v[i]*v[i]; - w1 += w[i]; w2 += w[i]*w[i]; - } - - return { - s1: Math.sqrt((t*(t*v2-v1*v1))/((t-1)*v1*v1)), - s2: Math.sqrt((t*(t*w2-w1*w1))/((t-1)*w1*w1)) - }; - } - - tmin = Number.POSITIVE_INFINITY; - for (i=0; i < 5; i++) { - t = (new Date()).getTime(); - for (j=0; j < 10; j++) { - r = randmatstat(1000); - // assert(0.5 < r.s1 < 1.0); - // assert(0.5 < r.s2 < 1.0); - } - t = (new Date()).getTime()-t; - if (t < tmin) { tmin=t; } - } - console.log("javascript,matrix_statistics," + tmin/10); - - // random matrix multiply // - - function randFloat64(n) { - var v, i; - v = new Float64Array(n); - - for (i = 0; i < n; i++) { - v[i] = Math.random(); - } - - return v; - } - - // Transpose mxn matrix. - function mattransp(A, m, n) { - var i, j, T; - T = new Float64Array(m * n); - - for (i = 0; i < m; ++i) { - for (j = 0; j < n; ++j) { - T[j * m + i] = A[i * n + j]; - } - } - - return T; - } - - function matmul(A,B,m,l,n) { - var C, i, j, k, total; - C = new Float64Array(m*n); - i = 0; - j = 0; - k = 0; - - // Use the transpose of B so that - // during the matrix multiplication - // we access consecutive memory locations. - // This is a fairer comparison of JS - // with the other languages which call on - // custom multiplication routines, which - // likely make use of such aligned memory. - B = mattransp(B,l,n); - - for (i = 0; i < m; i++) { - for (j = 0; j < n; j++) { - total = 0.0; - - for (k = 0; k < l; k++) { - total += A[i*l+k]*B[j*l+k]; - } - - C[i*n+j] = total; - } - } - - return C; - } - - function randmatmul(n) { - var A, B; - A = randFloat64(n*n); - B = randFloat64(n*n); - - return matmul(A, B, n, n, n); - } - - tmin = Number.POSITIVE_INFINITY; - t = (new Date()).getTime(); - C = randmatmul(1000); - assert(0 <= C[0]); - t = (new Date()).getTime()-t; - if (t < tmin) { tmin=t; } - console.log("javascript,matrix_multiply," + tmin); -}()); diff --git a/test/perf/micro/perf.lua b/test/perf/micro/perf.lua deleted file mode 100644 index 07ac5216f4dce9..00000000000000 --- a/test/perf/micro/perf.lua +++ /dev/null @@ -1,200 +0,0 @@ - -if jit.arch ~= 'x64' then - print('WARNING: please use BIT=64 for optimal OpenBLAS performance') -end - -local ffi = require 'ffi' -local bit = require 'bit' -local time = require 'time' -local alg = require 'sci.alg' -local prng = require 'sci.prng' -local stat = require 'sci.stat' -local dist = require 'sci.dist' -local complex = require 'sci.complex' - -local min, sqrt, random, abs = math.min, math.sqrt, math.random, math.abs -local cabs = complex.abs -local rshift = bit.rshift -local format = string.format -local nowutc = time.nowutc -local rng = prng.std() -local vec, mat, join = alg.vec, alg.mat, alg.join -local sum, trace = alg.sum, alg.trace -local var, mean = stat.var, stat.mean - --------------------------------------------------------------------------------- -local function elapsed(f) - local t0 = nowutc() - local val1, val2 = f() - local t1 = nowutc() - return (t1 - t0):tomilliseconds(), val1, val2 -end - -local function timeit(f, name, check) - local t, k, s = 1/0, 0, nowutc() - while true do - k = k + 1 - local tx, val1, val2 = elapsed(f) - t = min(t, tx) - if check then - check(val1, val2) - end - if k > 5 and (nowutc() - s):toseconds() >= 2 then break end - end - io.write(format('lua,%s,%g\n', name, t)) -end - --------------------------------------------------------------------------------- -local function fib(n) - if n < 2 then - return n - else - return fib(n-1) + fib(n-2) - end -end - -timeit(function() return fib(20) end, 'recursion_fibonacci', function(x) assert(x == 6765) end) - -local function parseint() - local lmt = 2^32 - 1 - local n, m - for i = 1, 1000 do - n = random(lmt) -- Between 0 and 2^32 - 1, i.e. uint32_t. - local s = format('0x%x', tonumber(n)) - m = tonumber(s) - end - assert(n == m) -- Done here to be even with Julia benchmark. - return n, m -end - -timeit(parseint, 'parse_integers') - -local function cabs2( z ) - return z[1]*z[1] + z[2]*z[2] -end - -local function mandel(z) - local c = z - local maxiter = 80 - for n = 1, maxiter do - if cabs2(z) > 4 then - return n-1 - end - z = z*z + c - end - return maxiter -end -local function mandelperf() - local a = mat(26, 21) - for r=1,26 do -- Lua's for i=l,u,c doesn't match Julia's for i=l:c:u. - for c=1,21 do - local re, im = (r - 21)*0.1, (c - 11)*0.1 - a[{r, c}] = mandel(re + im*1i) - end - end - return a -end - -timeit(mandelperf, 'userfunc_mandelbrot', function(a) assert(sum(a) == 14791) end) - -local function qsort(a, lo, hi) - local i, j = lo, hi - while i < hi do - local pivot = a[rshift(lo+hi, 1)] - while i <= j do - while a[i] < pivot do i = i+1 end - while a[j] > pivot do j = j-1 end - if i <= j then - a[i], a[j] = a[j], a[i] - i, j = i+1, j-1 - end - end - if lo < j then qsort(a, lo, j) end - lo, j = i, hi - end - return a -end - -local function sortperf() - local n = 5000 - local v = ffi.new('double[?]', n+1) - for i=1,n do - v[i] = rng:sample() - end - return qsort(v, 1, n) -end - -timeit(sortperf, 'recursion_quicksort', function(x) - for i=2,5000 do - assert(x[i-1] <= x[i]) - end -end -) - -local function pisum() - local s - for j = 1, 500 do - s = 0 - for k = 1, 10000 do - s = s + 1 / (k*k) - end - end - return s -end - -timeit(pisum, 'iteration_pi_sum', function(x) - assert(abs(x - 1.644834071848065) < 1e-12) -end) - -local function rand(r, c) - local x = mat(r, c) - for i=1,#x do - x[i] = rng:sample() - end - return x -end - -local function randn(r, c) - local x = mat(r, c) - for i=1,#x do - x[i] = dist.normal(0, 1):sample(rng) - end - return x -end - -local function randmatstat(t) - local n = 5 - local v, w = vec(t), vec(t) - for i=1,t do - local a, b, c, d = randn(n, n), randn(n, n), randn(n, n), randn(n, n) - local P = join(a..b..c..d) - local Q = join(a..b, c..d) - v[i] = trace((P[]`**P[])^^4) - w[i] = trace((Q[]`**Q[])^^4) - end - return sqrt(var(v))/mean(v), sqrt(var(w))/mean(w) -end - -timeit(function() return randmatstat(1000) end, 'matrix_statistics', - function(s1, s2) - assert( 0.5 < s1 and s1 < 1.0 and 0.5 < s2 and s2 < 1.0 ) - end) - -local function randmatmult(n) - local a, b = rand(n, n), rand(n, n) - return a[]**b[] -end - -timeit(function() return randmatmult(1000) end, 'matrix_multiply') - -if jit.os ~= 'Windows' then - local function printfd(n) - local f = io.open('/dev/null','w') - for i = 1, n do - f:write(format('%d %d\n', i, i+1)) - end - f:close() - end - - timeit(function() return printfd(100000) end, 'print_to_file') -end diff --git a/test/perf/micro/perf.m b/test/perf/micro/perf.m deleted file mode 100644 index 28742ff44a3d32..00000000000000 --- a/test/perf/micro/perf.m +++ /dev/null @@ -1,234 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Main function. All the tests are run here. %% -%% The functions declarations can be found at the end. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function perf() - - warning off; - - f = fib(20); - assert(f == 6765) - timeit('recursion_fibonacci', @fib, 20) - - timeit('parse_integers', @parseintperf, 1000) - - %% array constructors %% - - %o = ones(200,200); - %assert(all(o) == 1) - %timeit('ones', @ones, 200, 200) - - %assert(all(matmul(o) == 200)) - %timeit('AtA', @matmul, o) - - mandel(complex(-.53,.68)); - assert(sum(sum(mandelperf(true))) == 14791) - timeit('userfunc_mandelbrot', @mandelperf, true) - - assert(issorted(sortperf(5000))) - timeit('recursion_quicksort', @sortperf, 5000) - - s = pisum(true); - assert(abs(s-1.644834071848065) < 1e-12); - timeit('iteration_pi_sum',@pisum, true) - - %s = pisumvec(true); - %assert(abs(s-1.644834071848065) < 1e-12); - %timeit('pi_sum_vec',@pisumvec, true) - - [s1, s2] = randmatstat(1000); - assert(round(10*s1) > 5 && round(10*s1) < 10); - timeit('matrix_statistics', @randmatstat, 1000) - - timeit('matrix_multiply', @randmatmul, 1000); - - printfd(1) - timeit('print_to_file', @printfd, 100000) - -end - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Functions declarations %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function assert(bool) - if ~bool - error('Assertion failed') - end -end - -function timeit(name, func, varargin) - lang = 'matlab'; - if exist('OCTAVE_VERSION') ~= 0 - lang = 'octave'; - end - - nexpt = 5; - times = zeros(nexpt, 1); - - for i=1:nexpt - tic(); func(varargin{:}); times(i) = toc(); - end - - times = sort(times); - fprintf ('%s,%s,%.8f\n', lang, name, times(1)*1000); -end - -%% recursive fib %% - -function f = fib(n) - if n < 2 - f = n; - return - else - f = fib(n-1) + fib(n-2); - end -end - -%% parse int %% - -function n = parseintperf(t) - for i = 1:t - n = randi([0,2^32-1],1,'uint32'); - s = sprintf('%08x',n); - m = sscanf(s,'%x'); - assert(m == n); - end -end - -%% matmul and transpose %% - -%function oo = matmul(o) -% oo = o * o.'; -%end - -%% mandelbrot set: complex arithmetic and comprehensions %% - -function r = abs2(z) - r = real(z)*real(z) + imag(z)*imag(z); -end - -function n = mandel(z) - n = 0; - c = z; - for n=0:79 - if abs2(z)>4 - return - end - z = z^2+c; - end - n = 80; -end - -function M = mandelperf(ignore) - x=-2.0:.1:0.5; - y=-1:.1:1; - M=zeros(length(y),length(x)); - for r=1:size(M,1) - for c=1:size(M,2) - M(r,c) = mandel(x(c)+y(r)*i); - end - end -end - -%% numeric vector quicksort %% - -function b = qsort(a) - b = qsort_kernel(a, 1, length(a)); -end - -function a = qsort_kernel(a, lo, hi) - i = lo; - j = hi; - while i < hi - pivot = a(floor((lo+hi)/2)); - while i <= j - while a(i) < pivot, i = i + 1; end - while a(j) > pivot, j = j - 1; end - if i <= j - t = a(i); - a(i) = a(j); - a(j) = t; - i = i + 1; - j = j - 1; - end - end - if lo < j; a=qsort_kernel(a, lo, j); end - lo = i; - j = hi; - end -end - -function v = sortperf(n) - v = rand(n,1); - v = qsort(v); -end - -%% slow pi series %% - -function sum = pisum(ignore) - sum = 0.0; - for j=1:500 - sum = 0.0; - for k=1:10000 - sum = sum + 1.0/(k*k); - end - end -end - -%% slow pi series, vectorized %% - -function s = pisumvec(ignore) - a = [1:10000]; - for j=1:500 - s = sum( 1./(a.^2)); - end -end - -%% random matrix statistics %% - -function [s1, s2] = randmatstat(t) - n=5; - v = zeros(t,1); - w = zeros(t,1); - for i=1:t - a = randn(n, n); - b = randn(n, n); - c = randn(n, n); - d = randn(n, n); - P = [a b c d]; - Q = [a b;c d]; - v(i) = trace((P.'*P)^4); - w(i) = trace((Q.'*Q)^4); - end - s1 = std(v)/mean(v); - s2 = std(w)/mean(w); -end - -function t = mytranspose(x) - [m, n] = size(x); - t = zeros(n, m); - for i=1:n - for j=1:m - t(i,j) = x(j,i); - end - end -end - -%% largish random number gen & matmul %% - -function X = randmatmul(n) - X = rand(n,n)*rand(n,n); -end - -%% printf %% - -function printfd(n) - f = fopen('/dev/null','w'); - for i = 1:n - fprintf(f, '%d %d\n', i, i + 1); - end - fclose(f); -end diff --git a/test/perf/micro/perf.nb b/test/perf/micro/perf.nb deleted file mode 100644 index 8c01a74495b8a4..00000000000000 --- a/test/perf/micro/perf.nb +++ /dev/null @@ -1,296 +0,0 @@ -(* Benchmark script *) - -(* Set up output stream *) -SetOptions[$Output, FormatType -> OutputForm]; - -(* Test if system has a C compiler and if so set target to "C"*) -Needs["CCompilerDriver`"]; -If[ Length[CCompilers[]] > 0, - $CompilationTarget = "C" -]; - - -ClearAll[$printOutput]; -$printOutput = True; - -ClearAll[timeit]; -SetAttributes[timeit, HoldFirst]; -timeit[ex_, name_String] := Module[ - {t}, - t = Infinity; - Do[ - t = Min[t, N[First[AbsoluteTiming[ex]]]]; - , - {i, 1, 5} - ]; - If[$printOutput, - (*Print[OutputForm["mathematica," <> name <> ","], t*1000];*) - Print["mathematica,", name, ",", t*1000]; - ]; -]; - -ClearAll[test]; -SetAttributes[test, HoldFirst]; -test[ex_] := Assert[ex]; -On[Assert]; - - -(* recursive fib *) - -ClearAll[fib]; -fib = Compile[{{n, _Integer}}, - If[n < 2, n, fib[n - 1] + fib[n - 2]], - CompilationTarget -> "WVM" -]; - -test[fib[20] == 6765]; -timeit[fib[20], "recursion_fibonacci"]; - -(* parse integer *) - -ClearAll[parseintperf]; -parseintperf[t_] := Module[ - {n, m, i, s}, - Do[ - n = RandomInteger[{0, 4294967295}]; - s = IntegerString[n, 16]; - m = FromDigits[s, 16]; - , - {i, 1, t} - ]; - test[ m == n]; - n -]; - -timeit[parseintperf[1000], "parse_integers"]; - -(* print to file *) - -ClearAll[printfdperf]; -printfdperf[t_] := Module[ - {i,fd,filename}, - filename = "/dev/null"; - fd = OpenWrite[filename]; - For[i=1, i<=t, ++i, - WriteString[fd, StringForm["`1` `2`\n", i, i + 1]]; - ]; - Close[fd]; -]; - -timeit[printfdperf[100000], "print_to_file"]; - -(* array constructors *) - -test[ And @@ And @@@ Thread /@ Thread[ConstantArray[1, {200, 200}] == 1]]; - -(* matmul and transpose *) - -ClearAll[A]; -A = ConstantArray[1, {200, 200}]; -test[And @@ And @@@ Thread /@ Thread[A.ConjugateTranspose[A] == 200]]; - -(* mandelbrot set: complex arithmetic and comprehensions *) - -ClearAll[abs2]; -(*abs2[z_] := Module[ - Re(z)*Re(z) + Im(z)*Im(z); -];*) - -ClearAll[mandel]; -(*mandel[zin_] := Module[ - {z, c, maxiter, n}, - z = zin; - c = z; - maxiter = 80; - Do[ - If[ Abs2[z] > 4, - maxiter = n-1; - Break[] - ]; - z = z^2 + c; - , - {n, 1, maxiter} - ]; - maxiter -];*) -mandel = Compile[{{zin, _Complex}}, - Module[ - {z = zin, c = zin, maxiter = 80, n = 0}, - Do[ - If[ Abs[z] > 2, - maxiter = n-1; - Break[] - ]; - z = z^2 + c; - , - {n, 1, maxiter} - ]; - maxiter - ] -]; - -ClearAll[mandelperf]; -mandelperf[] := Table[mandel[r + i*I], {i, -1., 1., 0.1}, {r, -2.0, 0.5, 0.1}]; - -test[ Total[mandelperf[], 2] == 14791]; -timeit[mandelperf[], "userfunc_mandelbrot"]; - -(* numeric vector sort *) - -ClearAll[qsort]; -(* qsort[ain_, loin_, hiin_] := Module[ - {a = ain, i = loin, j = hiin, lo = loin, hi = hiin, pivot}, - While[ i < hi, - pivot = a[[BitShiftRight[lo + hi] ]]; - While[ i <= j, - While[a[[i]] < pivot, i++]; - While[a[[j]] > pivot, j--]; - If[ i <= j, - a[[{i,j}]] = a[[{j, i}]]; - i++; j--; - ]; - ]; - If[ lo < j, a = qsort[a, lo, j] ]; - {lo, j} = {i, hi}; - ]; - a -]; *) -qsort = Compile[ - {{ain, _Real, 1}, {loin, _Integer}, {hiin, _Integer}}, - Module[ - {a = ain, i = loin, j = hiin, lo = loin, hi = hiin, pivot}, - While[ i < hi, - pivot = a[[ Floor[(lo + hi)/2] ]]; - While[ i <= j, - While[a[[i]] < pivot, i++]; - While[a[[j]] > pivot, j--]; - If[ i <= j, - a[[{i,j}]] = a[[{j, i}]]; - i++; j--; - ]; - ]; - If[ lo < j, a[[lo;;j]] = qsort[ a[[lo;;j]], 1, j - lo + 1] ]; - {lo, j} = {i, hi}; - ]; - a - ] -]; - - -ClearAll[sortperf]; -sortperf[n_] := Module[{vec = RandomReal[1, n]}, qsort[vec, 1, n]]; - -test[OrderedQ[sortperf[5000]] ]; -timeit[sortperf[5000], "recursion_quicksort"]; - -(* slow pi series *) - -ClearAll[pisum]; -pisum = Compile[ {}, - Module[ - {sum = 0.`}, - Do[sum = Sum[1/(k*k), {k, 1, 10000}], - {500}]; - sum - ] -]; - - -test[Abs[pisum[] - 1.644834071848065`] < 1.`*^-12 ]; -timeit[pisum[], "iteration_pi_sum"]; - -(* slow pi series, vectorized *) - -pisumvec = Compile[{}, - Module[ - {sum = 0.}, - Do[ - sum = Total[1/Range[1, 10000]^2];, - {500} - ]; - sum - ] -]; - -(* test[Abs[pisumvec[] - 1.644834071848065`] < 1.`*^-12 ];*) -(* timeit[pisumvec[], "pi_sum_vec"];*) - -(* random matrix statistics *) - -ClearAll[randmatstat]; -(*randmatstat[t_] := Module[ - {n, v, w, a, b, c, d, P, Q}, - n = 5; - v = w = ConstantArray[0., {t}]; - Do[ - a = RandomReal[NormalDistribution[], {n, n}]; - b = RandomReal[NormalDistribution[], {n, n}]; - c = RandomReal[NormalDistribution[], {n, n}]; - d = RandomReal[NormalDistribution[], {n, n}]; - P = Join[a, b, c, d, 2]; - Q = ArrayFlatten[{{a, b}, {c, d}}]; - v[[i]] = Tr[MatrixPower[Transpose[P].P, 4]]; - w[[i]] = Tr[MatrixPower[Transpose[Q].Q, 4]]; - , - {i, 1, t} - ]; - {StandardDeviation[v]/Mean[v], StandardDeviation[w]/Mean[w]} -];*) -randmatstat = Compile[{{t, _Integer}}, - Module[ - { - n = 5, - v = ConstantArray[0., t], - w = ConstantArray[0., t], - a = {{0.}}, b = {{0.}}, - c = {{0.}}, d = {{0.}}, - P = {{0.}}, Q = {{0.}} - }, - Do[ - a = RandomReal[NormalDistribution[], {n, n}]; - b = RandomReal[NormalDistribution[], {n, n}]; - c = RandomReal[NormalDistribution[], {n, n}]; - d = RandomReal[NormalDistribution[], {n, n}]; - P = Join[a, b, c, d, 2]; - Q = ArrayFlatten[{{a, b}, {c, d}}]; - v[[i]] = Tr[MatrixPower[Transpose[P].P, 4]]; - w[[i]] = Tr[MatrixPower[Transpose[Q].Q, 4]]; - , - {i, 1, t} - ]; - {StandardDeviation[v]/Mean[v], StandardDeviation[w]/Mean[w]} - ], - {{_ArrayFlatten, _Real, 2}} -]; - - -ClearAll[s1,s2]; -{s1, s2} = randmatstat[1000]; -test[0.5 < s1 < 1.0 && 0.5 < s2 < 1.0]; - -timeit[randmatstat[1000], "matrix_statistics"]; - -(* largish random number gen & matmul *) - -timeit[RandomReal[1, {1000, 1000}].RandomReal[1, {1000, 1000}], "matrix_multiply"]; - -(* printfd *) - -(* only on unix systems *) -If[ $OperatingSystem == "Linux"||$OperatingSystem == "MacOSX", - - ClearAll[printfd]; - printfd[n_] := Module[ - {stream}, - stream = OpenWrite["/dev/null"]; - Do[ - WriteString[stream, i, " ", i+1, "\n" ]; - , - {i, 1, n} - ]; - Close[stream]; - ]; - - timeit[printfd[100000], "print_to_file"]; - -]; diff --git a/test/perf/micro/perf.py b/test/perf/micro/perf.py deleted file mode 100644 index 1081cc1960dfa1..00000000000000 --- a/test/perf/micro/perf.py +++ /dev/null @@ -1,199 +0,0 @@ -from numpy import * -from numpy.random import rand, randn -from numpy.linalg import matrix_power -import sys -import time -import random - -if sys.version_info < (3,): - range = xrange - -## fibonacci ## - -def fib(n): - if n<2: - return n - return fib(n-1)+fib(n-2) - -## quicksort ## - -def qsort_kernel(a, lo, hi): - i = lo - j = hi - while i < hi: - pivot = a[(lo+hi) // 2] - while i <= j: - while a[i] < pivot: - i += 1 - while a[j] > pivot: - j -= 1 - if i <= j: - a[i], a[j] = a[j], a[i] - i += 1 - j -= 1 - if lo < j: - qsort_kernel(a, lo, j) - lo = i - j = hi - return a - -## randmatstat ## - -def randmatstat(t): - n = 5 - v = zeros(t) - w = zeros(t) - for i in range(t): - a = randn(n, n) - b = randn(n, n) - c = randn(n, n) - d = randn(n, n) - P = concatenate((a, b, c, d), axis=1) - Q = concatenate((concatenate((a, b), axis=1), concatenate((c, d), axis=1)), axis=0) - v[i] = trace(matrix_power(dot(P.T,P), 4)) - w[i] = trace(matrix_power(dot(Q.T,Q), 4)) - return (std(v)/mean(v), std(w)/mean(w)) - -## randmatmul ## - -def randmatmul(n): - A = rand(n,n) - B = rand(n,n) - return dot(A,B) - -## mandelbrot ## - -def abs2(z): - return real(z)*real(z) + imag(z)*imag(z) - -def mandel(z): - maxiter = 80 - c = z - for n in range(maxiter): - if abs2(z) > 4: - return n - z = z*z + c - return maxiter - -def mandelperf(): - r1 = [-2. + 0.1*i for i in range(26)] - r2 = [-1. + 0.1*i for i in range(21)] - return [mandel(complex(r, i)) for r in r1 for i in r2] - -def pisum(): - sum = 0.0 - for j in range(1, 501): - sum = 0.0 - for k in range(1, 10001): - sum += 1.0/(k*k) - return sum - -#### Is this single threaded? -# def pisumvec(): -# return numpy.sum(1./(numpy.arange(1,10000)**2)) - -def parse_int(t): - for i in range(1,t): - n = random.randint(0,2**32-1) - s = hex(n) - if s[-1]=='L': - s = s[0:-1] - m = int(s,16) - assert m == n - return n - -def printfd(t): - f = open("/dev/null", "w") - for i in range(1,t): - f.write("{:d} {:d}\n".format(i, i+1)) - f.close() - - -def print_perf(name, time): - print("python," + name + "," + str(time*1000)) - -## run tests ## - -if __name__=="__main__": - - mintrials = 5 - - assert fib(20) == 6765 - tmin = float('inf') - for i in range(mintrials): - t = time.time() - f = fib(20) - t = time.time()-t - if t < tmin: tmin = t - print_perf("recursion_fibonacci", tmin) - - tmin = float('inf') - for i in range(mintrials): - t = time.time() - n = parse_int(1000) - t = time.time()-t - if t < tmin: tmin = t - print_perf ("parse_integers", tmin) - - assert sum(mandelperf()) == 14791 - tmin = float('inf') - for i in range(mintrials): - t = time.time() - mandelperf() - t = time.time()-t - if t < tmin: tmin = t - print_perf ("userfunc_mandelbrot", tmin) - - tmin = float('inf') - for i in range(mintrials): - lst = [ random.random() for i in range(1,5000) ] - t = time.time() - qsort_kernel(lst, 0, len(lst)-1) - t = time.time()-t - if t < tmin: tmin = t - print_perf ("recursion_quicksort", tmin) - - assert abs(pisum()-1.644834071848065) < 1e-6 - tmin = float('inf') - for i in range(mintrials): - t = time.time() - pisum() - t = time.time()-t - if t < tmin: tmin = t - print_perf ("iteration_pi_sum", tmin) - - # assert abs(pisumvec()-1.644834071848065) < 1e-6 - # tmin = float('inf') - # for i in range(mintrials): - # t = time.time() - # pisumvec() - # t = time.time()-t - # if t < tmin: tmin = t - # print_perf ("pi_sum_vec", tmin) - - (s1, s2) = randmatstat(1000) - assert s1 > 0.5 and s1 < 1.0 - tmin = float('inf') - for i in range(mintrials): - t = time.time() - randmatstat(1000) - t = time.time()-t - if t < tmin: tmin = t - print_perf ("matrix_statistics", tmin) - - tmin = float('inf') - for i in range(mintrials): - t = time.time() - C = randmatmul(1000) - assert C[0,0] >= 0 - t = time.time()-t - if t < tmin: tmin = t - print_perf ("matrix_multiply", tmin) - - tmin = float('inf') - for i in range(mintrials): - t = time.time() - printfd(100000) - t = time.time()-t - if t < tmin: tmin = t - print_perf ("print_to_file", tmin) diff --git a/test/perf/micro/randmtzig.c b/test/perf/micro/randmtzig.c deleted file mode 100644 index 1e867d659ef32f..00000000000000 --- a/test/perf/micro/randmtzig.c +++ /dev/null @@ -1,822 +0,0 @@ -/* - A C-program for MT19937, with initialization improved 2002/2/10. - Coded by Takuji Nishimura and Makoto Matsumoto. - This is a faster version by taking Shawn Cokus's optimization, - Matthe Bellew's simplification, Isaku Wada's real version. - David Bateman added normal and exponential distributions following - Marsaglia and Tang's Ziggurat algorithm. - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - Copyright (C) 2004, David Bateman - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Any feedback is very welcome. - http://www.math.keio.ac.jp/matumoto/emt.html - email: matumoto@math.keio.ac.jp -*/ - -/* - Modified by Viral B. Shah for julia to support dsfmt and only __LP64__ - systems. 52-bits of randomness are used from the mantissa of random double - precision numbers generated by dsfmt. - */ - -#include -#include -#include -#include -#ifndef _MSC_VER -#include -#endif - -#include -#include - -#define DSFMT_DO_NOT_USE_OLD_NAMES -#define DSFMT_MEXP 19937 -#include - -typedef ptrdiff_t randmtzig_idx_type; -typedef signed char randmtzig_int8_t; -typedef unsigned char randmtzig_uint8_t; -typedef short randmtzig_int16_t; -typedef unsigned short randmtzig_uint16_t; -typedef int randmtzig_int32_t; -typedef unsigned int randmtzig_uint32_t; -typedef long long randmtzig_int64_t; -typedef unsigned long long randmtzig_uint64_t; - -/* Declarations */ - -extern double randmtzig_randn (dsfmt_t *dsfmt); -extern double randmtzig_gv_randn (void); -extern double randmtzig_gv_exprnd (void); - -/* ===== Uniform generators ===== */ - -inline static randmtzig_uint64_t gv_randi (void) -{ - double r = dsfmt_gv_genrand_close1_open2(); - return *((uint64_t *) &r) & 0x000fffffffffffff; -} - -/* generates a random number on (0,1) with 53-bit resolution */ -inline static double gv_randu (void) -{ - return dsfmt_gv_genrand_open_open(); -} - -inline static randmtzig_uint64_t randi (dsfmt_t *dsfmt) -{ - double r = dsfmt_genrand_close1_open2(dsfmt); - return *((uint64_t *) &r) & 0x000fffffffffffff; -} - -/* generates a random number on (0,1) with 53-bit resolution */ -inline static double randu (dsfmt_t *dsfmt) -{ - return dsfmt_genrand_open_open(dsfmt); -} - -/* ===== Ziggurat normal and exponential generators ===== */ -# define ZIGINT randmtzig_uint64_t -# define EMANTISSA 4503599627370496 /* 52 bit mantissa */ -# define ERANDI gv_randi() /* 52 bits for mantissa */ -# define NMANTISSA 2251799813685248 -# define NRANDI gv_randi() /* 51 bits for mantissa + 1 bit sign */ -# define RANDU gv_randu() - -#define ZIGGURAT_TABLE_SIZE 256 - -#define ZIGGURAT_NOR_R 3.6541528853610088 -#define ZIGGURAT_NOR_INV_R 0.27366123732975828 -#define NOR_SECTION_AREA 0.00492867323399 - -#define ZIGGURAT_EXP_R 7.69711747013104972 -#define ZIGGURAT_EXP_INV_R 0.129918765548341586 -#define EXP_SECTION_AREA 0.0039496598225815571993 - - -/* -This code is based on the paper Marsaglia and Tsang, "The ziggurat method -for generating random variables", Journ. Statistical Software. Code was -presented in this paper for a Ziggurat of 127 levels and using a 32 bit -integer random number generator. This version of the code, uses the -Mersenne Twister as the integer generator and uses 256 levels in the -Ziggurat. This has several advantages. - - 1) As Marsaglia and Tsang themselves states, the more levels the few - times the expensive tail algorithm must be called - 2) The cycle time of the generator is determined by the integer - generator, thus the use of a Mersenne Twister for the core random - generator makes this cycle extremely long. - 3) The license on the original code was unclear, thus rewriting the code - from the article means we are free of copyright issues. - 4) Compile flag for full 53-bit random mantissa. - -It should be stated that the authors made my life easier, by the fact that -the algorithm developed in the text of the article is for a 256 level -ziggurat, even if the code itself isn't... - -One modification to the algorithm developed in the article, is that it is -assumed that 0 <= x < Inf, and "unsigned long"s are used, thus resulting in -terms like 2^32 in the code. As the normal distribution is defined between --Inf < x < Inf, we effectively only have 31 bit integers plus a sign. Thus -in Marsaglia and Tsang, terms like 2^32 become 2^31. We use NMANTISSA for -this term. The exponential distribution is one sided so we use the -full 32 bits. We use EMANTISSA for this term. - -It appears that I'm slightly slower than the code in the article, this -is partially due to a better generator of random integers than they -use. But might also be that the case of rapid return was optimized by -inlining the relevant code with a #define. As the basic Mersenne -Twister is only 25% faster than this code I suspect that the main -reason is just the use of the Mersenne Twister and not the inlining, -so I'm not going to try and optimize further. -*/ - - -// void randmtzig_create_ziggurat_tables (void) -// { -// int i; -// double x, x1; - -// /* Ziggurat tables for the normal distribution */ -// x1 = ZIGGURAT_NOR_R; -// wi[255] = x1 / NMANTISSA; -// fi[255] = exp (-0.5 * x1 * x1); - -// /* Index zero is special for tail strip, where Marsaglia and Tsang -// * defines this as -// * k_0 = 2^31 * r * f(r) / v, w_0 = 0.5^31 * v / f(r), f_0 = 1, -// * where v is the area of each strip of the ziggurat. -// */ -// ki[0] = (ZIGINT) (x1 * fi[255] / NOR_SECTION_AREA * NMANTISSA); -// wi[0] = NOR_SECTION_AREA / fi[255] / NMANTISSA; -// fi[0] = 1.; - -// for (i = 254; i > 0; i--) -// { -// /* New x is given by x = f^{-1}(v/x_{i+1} + f(x_{i+1})), thus -// * need inverse operator of y = exp(-0.5*x*x) -> x = sqrt(-2*ln(y)) -// */ -// x = sqrt(-2. * log(NOR_SECTION_AREA / x1 + fi[i+1])); -// ki[i+1] = (ZIGINT)(x / x1 * NMANTISSA); -// wi[i] = x / NMANTISSA; -// fi[i] = exp (-0.5 * x * x); -// x1 = x; -// } - -// ki[1] = 0; - -// /* Zigurrat tables for the exponential distribution */ -// x1 = ZIGGURAT_EXP_R; -// we[255] = x1 / EMANTISSA; -// fe[255] = exp (-x1); - -// /* Index zero is special for tail strip, where Marsaglia and Tsang -// * defines this as -// * k_0 = 2^32 * r * f(r) / v, w_0 = 0.5^32 * v / f(r), f_0 = 1, -// * where v is the area of each strip of the ziggurat. -// */ -// ke[0] = (ZIGINT) (x1 * fe[255] / EXP_SECTION_AREA * EMANTISSA); -// we[0] = EXP_SECTION_AREA / fe[255] / EMANTISSA; -// fe[0] = 1.; - -// for (i = 254; i > 0; i--) -// { -// /* New x is given by x = f^{-1}(v/x_{i+1} + f(x_{i+1})), thus -// * need inverse operator of y = exp(-x) -> x = -ln(y) -// */ -// x = - log(EXP_SECTION_AREA / x1 + fe[i+1]); -// ke[i+1] = (ZIGINT)(x / x1 * EMANTISSA); -// we[i] = x / EMANTISSA; -// fe[i] = exp (-x); -// x1 = x; -// } -// ke[1] = 0; -// } - -// Tables for randn -static ZIGINT ki[ZIGGURAT_TABLE_SIZE] = - {2104047571230236, 0,1693657211688499,1919380038164751, - 2015384402142420,2068365869415708,2101878624030987,2124958784087614, - 2141808670783638,2154644611559370,2164744887580145,2172897953690771, - 2179616279367521,2185247251864556,2190034623104318,2194154434518163, - 2197736978772008,2200880740889623,2203661538008543,2206138681107245, - 2208359231804928,2210361007256700,2212174742387166,2213825672703393, - 2215334711001466,2216719334486539,2217994262138197,2219171977964129, - 2220263139537873,2221276900116549,2222221164932202,2223102796828387, - 2223927782546019,2224701368169460,2225428170203747,2226112267247709, - 2226757276104752,2227366415327922,2227942558554233,2228488279492093, - 2229005890046815,2229497472774805,2229964908626691,2230409900758245, - 2230833995044249,2231238597815812,2231624991249884,2231994346765634, - 2232347736722468,2232686144665663,2233010474325699,2233321557544631, - 2233620161275830,2233906993781039,2234182710130112,2234447917093281, - 2234703177502812,2234949014149981,2235185913274123,2235414327692697, - 2235634679614740,2235847363174420,2236052746716668,2236251174862705, - 2236442970379808,2236628435876608,2236807855342616,2236981495548416, - 2237149607321006,2237312426707072,2237470176035519,2237623064889274, - 2237771290995262,2237915041040474,2238054491421185,2238189808931596, - 2238321151397547,2238448668260322,2238572501115061,2238692784207837, - 2238809644895031,2238923204068302,2239033576548092,2239140871448347, - 2239245192514865,2239346638439450,2239445303151863,2239541276091355, - 2239634642459413,2239725483455210,2239813876495104,2239899895417414, - 2239983610673598,2240065089506859,2240144396119109,2240221591827156, - 2240296735208897,2240369882240222,2240441086423317,2240510398906937, - 2240577868599239,2240643542273660,2240707464668327,2240769678579424, - 2240830224948918,2240889142947021,2240946470049710,2241002242111632, - 2241056493434688,2241109256832545,2241160563691345,2241210444026824, - 2241258926538069,2241306038658085,2241351806601384,2241396255408737, - 2241439408989263,2241481290159988,2241521920683014,2241561321300414, - 2241599511766981,2241636510880914,2241672336512567,2241707005631317, - 2241740534330669,2241772937851645,2241804230604542,2241834426189118, - 2241863537413270,2241891576310240,2241918554154426,2241944481475803, - 2241969368073032,2241993223025259,2242016054702647,2242037870775672, - 2242058678223188,2242078483339294,2242097291739004,2242115108362739, - 2242131937479636,2242147782689690,2242162646924702,2242176532448058, - 2242189440853303,2242201373061504,2242212329317384,2242222309184204, - 2242231311537365,2242239334556685,2242246375717338,2242252431779384, - 2242257498775863,2242261571999386,2242264645987166,2242266714504423, - 2242267770526080,2242267806216682,2242266812908434,2242264781077261, - 2242261700316790,2242257559310117,2242252345799249,2242246046552055, - 2242238647326588,2242230132832599,2242220486690050,2242209691384432, - 2242197728218658,2242184577261284,2242170217290794,2242154625735654, - 2242137778609814,2242119650443302,2242100214207531,2242079441234882, - 2242057301132111,2242033761687055,2242008788768083,2241982346215658, - 2241954395725333,2241924896721420,2241893806220494,2241861078683807, - 2241826665857576,2241790516600019,2241752576693859,2241712788642894, - 2241671091451056,2241627420382213,2241581706698751,2241533877376746, - 2241483854795259,2241431556397014,2241376894317324,2241319774977796, - 2241260098640839,2241197758920517,2241132642244683,2241064627262631, - 2240993584191722,2240919374095516,2240841848084869,2240760846432212, - 2240676197587764,2240587717084761,2240495206318733,2240398451183547, - 2240297220544145,2240191264522592,2240080312570135,2239964071293311, - 2239842221996510,2239714417896679,2239580280957705,2239439398282173, - 2239291317986176,2239135544468183,2238971532964959,2238798683265249, - 2238616332424332,2238423746288075,2238220109591870,2238004514345197, - 2237775946143192,2237533267957802,2237275200846732,2237000300869931, - 2236706931309079,2236393229029127,2236057063479481,2235695986373225, - 2235307169458838,2234887326941556,2234432617919425,2233938522519742, - 2233399683022654,2232809697779175,2232160850599794,2231443750584617, - 2230646845562145,2229755753817960,2228752329126507,2227613325162477, - 2226308442121145,2224797391720369,2223025347823800,2220915633329775, - 2218357446086993,2215184158448627,2211132412537323,2205758503851011, - 2198248265654920,2186916352102052,2167562552481677,2125549880839429}; - -static double wi[ZIGGURAT_TABLE_SIZE] = - {17367254121656703e-31,9558660348275145e-32,12708704832820278e-32, - 14909740960986864e-32,16658733630346416e-32,18136120809053487e-32, - 1942972015219358e-31,20589500627632916e-32,21646860576118966e-32, - 2262294039150043e-31,23532718913376864e-32,24387234556800803e-32, - 25194879828681465e-32,2596219977196592e-31,26694407473112964e-32, - 2739572968463095e-31,280696460019946e-30,28719058903642897e-32, - 29346417484275224e-32,29953809336344285e-32,30543030006769113e-32, - 3111563633851158e-31,3167298801818414e-31,3221628035016365e-31, - 32746570407564125e-32,33264798116476e-29,337718034169968e-30, - 34268340352771636e-32,34755088731390227e-32,3523266384567022e-31, - 3570162463362898e-31,3616248057128073e-31,36615697529342477e-32, - 3706170277693123e-31,37500889278448874e-32,3793361940125627e-31, - 38360228129389374e-32,3878102586096749e-31,3919630085297984e-31, - 39606321365983254e-32,40011337552278087e-32,4041158312387907e-31, - 4080727683070036e-31,4119862377455137e-31,41585816580575855e-32, - 41969036444492247e-32,4234845407127582e-31,42724230518658345e-32, - 43096517956924877e-32,4346546035489394e-31,4383119410062289e-31, - 4419384856424202e-31,4455354660935343e-31,4491040505860591e-31, - 4526453511835132e-31,45616042766683e-29,4596502910863464e-31, - 4631159070186941e-31,4665581985579899e-31,469978049067346e-30, - 4733763047137822e-31,4767537768070579e-31,4801112439606964e-31, - 4834494540915173e-31,4867691262722585e-31,4900709524503576e-31, - 4933555990446197e-31,4966237084303158e-31,499875900322208e-30, - 5031127730640677e-31,5063349048324261e-31,5095428547615612e-31, - 5127371639960692e-31,5159183566767805e-31,5190869408652579e-31, - 5222434094116442e-31,52538824077020155e-32,5285218997665102e-31, - 5316448383199491e-31,5347574961247755e-31,5378603012928409e-31, - 5409536709607314e-31,5440380118638932e-31,5471137208800966e-31, - 550181185544408e-30,5532407845376661e-31,5562928881503102e-31, - 5593378587232605e-31,5623760510674315e-31,5654078128633358e-31, - 5684334850421336e-31,5714534021493849e-31,5744678926926726e-31, - 5774772794741848e-31,5804818799092685e-31,5834820063319006e-31, - 5864779662879593e-31,589470062817121e-30,5924585947241581e-31, - 5954438568403615e-31,598426140275769e-30,601405732662843e-30, - 6043829183921996e-31,6073579788409578e-31,6103311925942512e-31, - 6133028356604082e-31,6162731816802865e-31,6192425021312213e-31, - 6222110665260248e-31,6251791426074554e-31,6281469965385542e-31, - 6311148930892342e-31,6340830958194888e-31,6370518672595733e-31, - 640021469087503e-30,6429921623041988e-31,645964207406601e-30, - 648937864559066e-30,6519133937633505e-31,6548910550274845e-31, - 6578711085338253e-31,6608538148065851e-31,6638394348791179e-31, - 6668282304612498e-31,6698204641069389e-31,6728163993825439e-31, - 6758163010359885e-31,6788204351671041e-31,681829069399439e-30, - 6848424730538249e-31,6878609173239948e-31,6908846754545526e-31, - 6939140229215998e-31,696949237616333e-30,6999906000319335e-31, - 7030383934540792e-31,7060929041554193e-31,7091544215943653e-31, - 7122232386185626e-31,7152996516734219e-31,7183839610161045e-31, - 7214764709353755e-31,7245774899777502e-31,72768733118038725e-32, - 7308063123111988e-31,7339347561166714e-31,7370729905779203e-31, - 7402213491755235e-31,7433801711637146e-31,7465498018545449e-31, - 7497305929126601e-31,7529229026613742e-31,7561270964007667e-31, - 7593435467385694e-31,7625726339346621e-31,7658147462600412e-31, - 7690702803711903e-31,7723396417008341e-31,7756232448661274e-31, - 778921514095401e-30,7822348836746627e-31,7855637984151357e-31, - 7889087141432085e-31,7922700982142658e-31,7956484300519808e-31, - 7990442017147628e-31,8024579184911813e-31,8058900995263265e-31, - 8093412784812165e-31,812812004227522e-30,8163028415800651e-31, - 8198143720697359e-31,8233471947596931e-31,8269019271079405e-31, - 8304792058796362e-31,834079688112767e-30,8377040521411316e-31, - 8413529986789175e-31,8450272519715296e-31,8487275610177406e-31, - 85245470086869e-29,8562094740097588e-31,8599927118319072e-31, - 86380527619967175e-32,8676480611237092e-31,8715219945465259e-31, - 8754280402508787e-31,8793671999012706e-31,8833405152300122e-31, - 88734907038049e-29,8913939944215902e-31,8954764640486935e-31, - 8995977064883017e-31,9037590026252085e-31,9079616903732087e-31, - 9122071683126914e-31,9164968996211253e-31,9208324163254476e-31, - 9252153239087913e-31,9296473063078686e-31,9341301313417584e-31, - 938665656617903e-30,9432558359669126e-31,9479027264644209e-31, - 95260849610588e-29,957375432209002e-30,962205950628746e-30, - 9671026058815726e-31,972068102289435e-30,9771053062699983e-31, - 9822172599183368e-31,9874071960473548e-31,9926785548800904e-31, - 9980350026176626e-31,10034804521429213e-31,10090190861630543e-31, - 10146553831460223e-31,10203941464676316e-31,1026240537260681e-30, - 10322001115479755e-31,10382788623508751e-31,10444832675993878e-31, - 10508203448348659e-31,1057297713900341e-30,10639236690670377e-31, - 10707072623626628e-31,107765840026618e-29,10847879564397177e-31, - 10921079038143372e-31,109963147017795e-29,11073733224929686e-31, - 11153497865847152e-31,11235791107104895e-31,11320817840158973e-31, - 11408809242576976e-31,1150002753783406e-30,11594771891443527e-31, - 11693385786905373e-31,1179626635295029e-30,11903876299277459e-31, - 1201675939253847e-30,12135560818661637e-31,12261054417445396e-31, - 12394179789158183e-31,12536093926597603e-31,1268824481425016e-30, - 12852479319091384e-31,13031206634685398e-31,13227655770190893e-31, - 13446300925006917e-31,13693606835124475e-31,13979436672771461e-31, - 14319989869657897e-31,14744848603594667e-31,1531787274160907e-30, - 16227698675312968e-31}; - -static double fi[ZIGGURAT_TABLE_SIZE] = - {1.,.9771017012827331,.9598790918124174,.9451989534530794, - .9320600759689914,.9199915050483614,.9087264400605639,.898095921906305, - .8879846607634008,.8783096558161477,.869008688043794,.8600336212030095, - .8513462584651245,.842915653118442,.8347162929929313,.8267268339520951, - .8189291916094156,.8113078743182208,.8038494831763903,.7965423304282554, - .7893761435711993,.7823418326598627,.775431304986139,.7686373158033355, - .7619533468415471,.7553735065117552,.7488924472237273,.7425052963446368, - .7362075981312672,.729995264565803,.7238645334728822,.717811932634902, - .711834248882359,.7059285013367979,.7000919181404905,.694321916130033, - .6886160830085275,.6829721616487918,.6773880362225135,.6718617199007669, - .6663913439123812,.6609751477802419,.6556114705832252,.650298743114295, - .6450354808242524,.6398202774564395,.6346517992909606,.6295287799281287, - .6244500155502747,.6194143606090396,.6144207238920772,.6094680649288958, - .6045553907005499,.599681752622168,.5948462437709915,.5900479963357922, - .5852861792663006,.5805599961036837,.5758686829752109,.5712115067380753, - .5665877632589521,.5619967758172782,.5574378936214867,.5529104904285204, - .5484139632579217,.5439477311926505,.5395112342595453,.5351039323830201, - .5307253044061945,.5263748471741873,.5220520746747954,.5177565172322012, - .5134877207497434,.5092452459981365,.5050286679458292,.5008375751284826, - .49667156905479676,.4925302636461491,.4884132847077125,.48432026942891204, - .48025086591125016,.4762047327216842,.4721815384698837,.46818096140782267, - .4642026890502793,.460246417814924,.45631185268077407,.4523987068638829, - .4485067015092144,.4446355653977281,.4407850346677702,.43695485254992955, - .43314476911457434,.42935454103134185,.42558393133990086,.4218327092313535, - .41810064983968476,.4143875340427069,.41069314827198344,.40701728433124823, - .4033597392228692,.399720314981932,.3960988185175474,.39249506146101104, - .3889088600204649,.38534003484173424,.3817884108750316,.37825381724723833, - .37473608713949164,.37123505766982157,.3677505697805964,.36428246813054976, - .36083060099117586,.3573948201472906,.35397498080156936,.35057094148288126, - .34718256395825153,.3438097131482915,.3404522570459456,.33711006663841303, - .33378301583210873,.3304709813805373,.32717384281495887,.32389148237773235, - .3206237849582305,.3173706380312227,.3141319315976305,.310907558127564, - .307697412505554,.30450139197789644,.30131939610203423,.29815132669790145, - .2949970878011627,.2918565856182811,.28872972848335393,.28561642681665805, - .28251659308484933,.27943014176276515,.2763569892967811,.27329705406967564, - .2702502563669598,.26721651834463167,.2641957639983174,.2611879191337636, - .25819291133864797,.2552106699556771,.25224112605694377,.2492842124195167, - .24633986350223877,.24340801542371202,.24048860594144916,.23758157443217368, - .2346868618732527,.23180441082524855,.22893416541557743,.22607607132326474, - .22323007576478943,.22039612748101145,.21757417672517823,.2147641752520084, - .21196607630785277,.20917983462193548,.20640540639867916,.20364274931112133, - .20089182249543117,.19815258654653795,.1954250035148854,.19270903690432864, - .19000465167119293,.18731181422451676,.18463049242750437,.18196065560021638, - .17930227452353026,.17665532144440646,.17401977008249914,.17139559563815535, - .16878277480185,.1661812857651097,.1635911082329826,.16101222343811727, - .1584446141565199,.15588826472506426,.15334316106083742,.15080929068240986, - .1482866427331284,.14577520800653765,.14327497897404687,.14078594981496803, - .138308116449064,.13584147657175705,.13338602969216254,.13094177717412792, - .12850872228047336,.12608687022065,.12367622820205106,.12127680548523516, - .11888861344334545,.11651166562603685,.11414597782825504,.1117915681642454, - .10944845714720981,.10711666777507266,.10479622562286683,.10248715894230599, - .10018949876917177,.09790327903921535,.09562853671335306,.09336531191302634, - .09111364806670041,.08887359206859394,.08664519445086755,.08442850957065445, - .0822235958134955,.08003051581494733,.07784933670237201,.07568013035919481, - .07352297371424082,.07137794905914183,.06924514439725017,.06712465382802392, - .06501657797147035,.06292102443797778,.06083810834975175,.05876795292113793, - .056710690106399425,.05466646132507786,.05263541827697361,.05061772386112175, - .04861355321603513,.04662309490208967,.044646552251446515,.042684144916619336, - .04073611065607874,.0388027074046569,.03688421568869112,.034980941461833046, - .033093219458688684,.031221417192023686,.02936593975823011,.027527235669693315, - .02570580400863265,.023902203305873237,.022117062707379908,.020351096230109344, - .018605121275783343,.016880083152595836,.015177088307982065,.013497450601780796, - .0118427578579431,.0102149714397311,.008616582769422912,.007050875471392109, - .005522403299264755,.0040379725933718715,.002609072746106362,.0012602859304985975}; - -// Tables for exprnd -static ZIGINT ke[ZIGGURAT_TABLE_SIZE] = - {3985772928715748, 0,2742928985168065,3438700186803721, - 3744780257810519,3914896975372863,4022625697542798,4096776410635450, - 4150853606149210,4192001604687417,4224344877584101,4250427292531740, - 4271901371161554,4289886428824118,4305167164135199,4318309783140431, - 4329732973408940,4339752937704679,4348612900760388,4356502988721768, - 4363573953227346,4369946852445020,4375720012348349,4380974119031481, - 4385776001930298,4390181484145305,4394237557465219,4397984061535398, - 4401454994146430,4404679543790856,4407682910787985,4410486965794400, - 4413110782053579,4415571068741702,4417882526198713,4420058138987325, - 4422109419110772,4424046609003130,4425878851844253,4427614335173868, - 4429260412563040,4430823707156475,4432310200160197,4433725306767517, - 4435073941555377,4436360575016074,4437589282595121,4438763787369085, - 4439887497305303,4440963537889317,4441994780778252,4442983869033585, - 4443933239400428,4444845142028910,4445721657973833,4446564714759241, - 4447376100252993,4448157475061632,4448910383626429,4449636264176642, - 4450336457674983,4451012215872352,4451664708573597,4452295030203006, - 4452904205747010,4453493196141906,4454062903166143,4454614173889474, - 4455147804725090,4455664545125435,4456165100957688,4456650137590828, - 4457120282722585,4457576128971459,4458018236256245,4458447133983073, - 4458863323057847,4459267277740095,4459659447352586,4460040257859578, - 4460410113325310,4460769397263133,4461118473884710,4461457689257740, - 4461787372379910,4462107836175980,4462419378424319,4462722282618581, - 4463016818769709,4463303244152965,4463581804004301,4463852732169940, - 4464116251712773,4464372575478779,4464621906626490,4464864439122178, - 4465100358203284,4465329840812355,4465553056003596,4465770165323939, - 4465981323170417,4466186677125455,4466386368271563,4466580531486827, - 4466769295722448,4466952784263502,4467131114974006,4467304400527265, - 4467472748622447,4467636262188208,4467795039574164,4467949174730939, - 4468098757379442,4468243873170018,4468384603832024,4468521027314373, - 4468653217917530,4468781246417428,4468905180181701,4469025083278642, - 4469141016579234,4469253037852582,4469361201855066,4469465560413474, - 4469566162502383,4469663054316032,4469756279334881,4469845878387080, - 4469931889704995,4470014348976986,4470093289394551,4470168741694984, - 4470240734199652,4470309292847996,4470374441227332,4470436200598525, - 4470494589917605,4470549625853344,4470601322800852,4470649692891185, - 4470694745996980,4470736489734116,4470774929459349,4470810068263924, - 4470841906963074,4470870444081369,4470895675833821,4470917596102651, - 4470936196409614,4470951465883737,4470963391224346,4470971956659198, - 4470977143897542,4470978932077904,4470977297710362,4470972214613072, - 4470963653842747,4470951583618802,4470935969240827,4470916772999009, - 4470893954077117,4470867468447603,4470837268758338,4470803304210460, - 4470765520426769,4470723859310029,4470678258890503,4470628653161980, - 4470574971905457,4470517140499614,4470455079717082,4470388705505446, - 4470317928751818,4470242655029689,4470162784326669,4470078210751556, - 4469988822219058,4469894500110287,4469795118907000,4469690545797298, - 4469580640250319,4469465253557163,4469344228335006,4469217397991048, - 4469084586142556,4468945605988875,4468800259630802,4468648337332217, - 4468489616718259,4468323861903709,4468150822544456,4467970232804102, - 4467781810226787,4467585254506222,4467380246139658,4467166444954116, - 4466943488490515,4466710990229518,4466468537640691,4466215690034133, - 4465951976190801,4465676891744455,4465389896284247,4465090410142477, - 4464777810826750,4464451429049612,4464110544301482,4463754379904174, - 4463382097472202,4462992790697122,4462585478355953,4462159096427753, - 4461712489182116,4461244399078944,4460753455289386,4460238160612098, - 4459696876515553,4459127805983956,4458528973779075,4457898203649722, - 4457233091920646,4456530976767892,4455788902331217,4455003576616607, - 4454171321891082,4453288015951104,4452349022232651,4451349106194827, - 4450282334707462,4449141954247903,4447920242480611,4446608326137821, - 4445195955871677,4443671225661690,4442020220072463,4440226566619900, - 4438270861888260,4436129927556552,4433775834104270,4431174602388627, - 4428284451100006,4425053392146958,4421415870372502,4417287970124084, - 4412560416174562,4407088078325945,4400673742272494,4393042098597073, - 4383796248451589,4372341169422858,4357740343059956,4338425130125967, - 4311541827049177,4271262897902398,4203411844498905,4061213381260384}; - -static double we[ZIGGURAT_TABLE_SIZE] = - {19311480126418366e-31,1417802848791084e-32,23278824993382457e-33, - 30487830247064326e-33,3666569771447489e-32,4217930218928974e-32, - 4722256155686277e-32,51911915446217885e-33,5632347108395505e-32, - 6051008260642765e-32,645101650967275e-31,6835264680370054e-32, - 7205993957468906e-32,7564981553739299e-32,7913664396195108e-32, - 8253223556351894e-32,8584643616885051e-32,8908755486564743e-32, - 9226267962966373e-32,9537791450529272e-32,9843856087455926e-32, - 10144925809006294e-32,10441409405585343e-32,10733669323436384e-32, - 1102202874567019e-31,11306777346479334e-32,11588176009705533e-32, - 11866460730417886e-32,1214184586569436e-31,12414526862326387e-32, - 12684682560606153e-32,12952477151912284e-32,1321806185153881e-31, - 13481576335745447e-32,13743149982367625e-32,14002902946807862e-32, - 14260947099321287e-32,14517386844829297e-32,14772319842763584e-32, - 15025837641447456e-32,15278026239101652e-32,15528966581595696e-32, - 1577873500545958e-31,1602740363335091e-31,16275040728083524e-32, - 16521711010420076e-32,16767475945078279e-32,17012393998770646e-32, - 17256520873568226e-32,17499909718432365e-32,17742611321380505e-32, - 17984674284430714e-32,18226145183195818e-32,18467068712763576e-32, - 18707487821298258e-32,18947443832625902e-32,19186976558915997e-32, - 19426124404443042e-32,19664924461299023e-32,19903412597830144e-32, - 20141623540485899e-32,20379590949693882e-32,2061734749030844e-31, - 2085492489712377e-31,21092354035891528e-32,21329664960238294e-32, - 21566886964838972e-32,2180404863516701e-31,22041177894111562e-32, - 2227830204572395e-31,2251544781633135e-31,22752641393233694e-32, - 22989908461180186e-32,23227274236804366e-32,23464763501180916e-32, - 2370240063065339e-31,23940209626069303e-32,2417821414054771e-31, - 24416437505894123e-32,24654902757768304e-32,2489363265970225e-31, - 2513264972605797e-31,2537197624400795e-31,2561163429461499e-31, - 2585164577308239e-31,26092032408240577e-32,2633281578133145e-31, - 2657401734414762e-31,2681565843657999e-31,2705776030362351e-31, - 27300344111887955e-32,27543430965657624e-32,2778704192254128e-31, - 2803119800875143e-31,28275920234049704e-32,2852122960639331e-31, - 28767147146315804e-32,29013693901073754e-32,29260890958589514e-32, - 29508759461219033e-32,2975732061937252e-31,3000659572501474e-31, - 3025660616507079e-31,3050737343476251e-31,3075891915089994e-31, - 31011265065151543e-32,3126443307731675e-31,31518445248623523e-32, - 31773323815073683e-32,32029091200858335e-32,32285770031865573e-32, - 3254338314930261e-31,3280195362345436e-31,3306150476760074e-31, - 3332206015211484e-31,33583643618764577e-32,33846279295240445e-32, - 34109991609932597e-32,34374805306980633e-32,34640745461620167e-32, - 3490783749585068e-31,3517610719444983e-31,3544558072136013e-31, - 3571628463647465e-31,35988245912849274e-32,3626149195437003e-31, - 36536050613905045e-32,36811950211971757e-32,3708921955595139e-31, - 37367887959883854e-32,3764798526487784e-31,37929541860172334e-32, - 3821258870488753e-31,38497157350504876e-32,3878327996411799e-31, - 39070989352498183e-32,3936031898702075e-31,3965130302950038e-31, - 3994397635898684e-31,40238374599574693e-32,40534534149283966e-32, - 4083249221007178e-31,41132286819038357e-32,4143395688089474e-31, - 417375422017632e-30,42043083524385856e-32,4235062256482152e-31, - 4266020205071558e-31,42971865761233266e-32,43285658568752094e-32, - 4360162648241568e-31,43919816693657415e-32,4424027762380992e-31, - 4456305897392361e-31,4488821177692617e-31,4521578845226347e-31, - 4554584286317242e-31,4587843037674623e-31,4621360792696427e-31, - 4655143408087069e-31,4689196910809916e-31,4723527505395548e-31, - 4758141581628553e-31,4793045722637247e-31,4828246713412587e-31, - 4863751549784512e-31,489956744788614e-30,4935701854138577e-31, - 4972162455791703e-31,5008957192059114e-31,5046094265888434e-31, - 5083582156411624e-31,5121429632123542e-31,5159645764841062e-31, - 5198239944499494e-31,5237221894847848e-31,5276601690109886e-31, - 531638977268369e-30,535659697195905e-30,5397234524338979e-31, - 5438314094559637e-31,547984779841163e-30,5521848226975234e-31, - 5564328472492872e-31,5607302156013967e-31,5650783456960506e-31, - 5694787144776348e-31,5739328612839635e-31,5784423914835991e-31, - 5830089803810586e-31,5876343774140057e-31,5923204106690931e-31, - 5970689917460091e-31,6018821210025236e-31,6067618932170007e-31, - 6117105037089722e-31,616730254963062e-30,6218235638068533e-31, - 6269929691993326e-31,6322411406934211e-31,6375708876439426e-31, - 6429851692413595e-31,6484871054618903e-31,6540799890364481e-31, - 6597672985544566e-31,6655527128343343e-31,6714401267106488e-31, - 677433668409101e-30,6835377187051274e-31,6897569320906848e-31, - 6960962602074885e-31,7025609778445959e-31,7091567118449584e-31, - 7158894733208553e-31,7227656936438121e-31,7297922647529085e-31, - 7369765844191243e-31,7443266072160415e-31,7518509020832513e-31, - 7595587175337749e-31,7674600557578427e-31,7755657571215791e-31, - 7838875968622858e-31,792438396157355e-30,8012321502113083e-31, - 8102841765913146e-31,8196112877806125e-31,8292319928581809e-31, - 8391667344146798e-31,849438168364877e-30,8600714963334941e-31, - 8710948629387904e-31,882539833807214e-30,8944419748519865e-31, - 9068415597131669e-31,9197844409811865e-31,9333231329422952e-31, - 9475181706524984e-31,9624398345658476e-31,978170365478442e-30, - 994806847238388e-30,1012465014428832e-30,10312843657756166e-31, - 1051435160404455e-30,10731281954224043e-31,10966288068517408e-31, - 1122277490935032e-30,11505212963006663e-31,11819635283304206e-31, - 12174462832361815e-31,12581958069755114e-31,13060984107128082e-31, - 13642786158057857e-31,14384889932178723e-31,15412190700064194e-31, - 17091034077168055e-31}; - -static double fe[ZIGGURAT_TABLE_SIZE] = - { 1.0,.9381436808621746,.9004699299257464,.8717043323812036, - .8477855006239896,.8269932966430503,.8084216515230084,.7915276369724956, - .7759568520401156,.7614633888498963,.7478686219851951,.7350380924314235, - .722867659593572,.711274760805076,.7001926550827882,.689566496117078, - .6793505722647654,.6695063167319247,.6600008410789997,.650805833414571, - .6418967164272661,.6332519942143661,.6248527387036659,.6166821809152077, - .608725382079622,.6009689663652322,.5934009016917334,.586010318477268, - .578787358602845,.5717230486648258,.5648091929124002,.5580382822625874, - .5514034165406413,.5448982376724396,.5385168720028619,.5322538802630432, - .5261042139836197,.5200631773682336,.5141263938147486,.5082897764106429, - .5025495018413477,.49690198724154955,.49134386959403253,.4858719873418849, - .4804833639304542,.4751751930373774,.46994482528396,.4647897562504262, - .4597076156421377,.45469615747461545,.449753251162755,.4448768734145485, - .4400651008423539,.4353161032156366,.43062813728845883,.42599954114303434, - .4214287289976166,.4169141864330029,.4124544659971612,.4080481831520324, - .4036940125305303,.3993906844752311,.39513698183329016,.3909317369847971, - .38677382908413765,.38266218149600983,.3785957594095808,.37457356761590216, - .370594648435146,.36665807978151416,.3627629733548178,.3589084729487498, - .35509375286678746,.35131801643748334,.347580494621637,.3438804447045024, - .34021714906678,.33658991402867755,.332998068761809,.3294409642641363, - .3259179723935562,.3224284849560891,.31897191284495724,.31554768522712895, - .31215524877417955,.3087940669345602,.30546361924459026,.3021634006756935, - .2988929210155818,.2956517042812612,.2924392881618926,.28925522348967775, - .2860990737370768,.28297041453878075,.27986883323697287,.27679392844851736, - .27374530965280297,.27072259679906,.2677254199320448,.2647534188350622, - .2618062426893629,.25888354974901623,.2559850070304154,.25311029001562946, - .2502590823688623,.24743107566532763,.2446259691318921,.24184346939887721, - .23908329026244918,.23634515245705964,.23362878343743335,.2309339171696274, - .2282602939307167,.22560766011668407,.22297576805812017,.2203643758433595, - .21777324714870053,.21520215107537868,.21265086199297828,.21011915938898826, - .20760682772422204,.2051136562938377,.20263943909370902,.20018397469191127, - .19774706610509887,.19532852067956322,.19292814997677132,.1905457696631954, - .1881811994042543,.1858342627621971,.18350478709776746,.1811926034754963, - .1788975465724783,.17661945459049488,.1743581691713535,.17211353531532006, - .16988540130252766,.1676736186172502,.165478041874936,.16329852875190182, - .16113493991759203,.1589871389693142,.15685499236936523,.15473836938446808, - .15263714202744286,.1505511850010399,.1484803756438668,.14642459387834494, - .14438372216063478,.1423576454324722,.14034625107486245,.1383494288635802, - .13636707092642886,.13439907170221363,.13244532790138752,.13050573846833077, - .12858020454522817,.12666862943751067,.12477091858083096,.12288697950954514, - .12101672182667483,.11916005717532768,.11731689921155557,.11548716357863353, - .11367076788274431,.1118676316700563,.11007767640518538,.1083008254510338, - .10653700405000166,.10478613930657017,.10304816017125772,.10132299742595363, - .09961058367063713,.0979108533114922,.0962237425504328,.09454918937605586, - .09288713355604354,.09123751663104016,.08960028191003286,.08797537446727022, - .08636274114075691,.08476233053236812,.08317409300963238,.08159798070923742, - .0800339475423199,.07848194920160642,.0769419431704805,.07541388873405841, - .07389774699236475,.07239348087570874,.07090105516237183,.06942043649872875, - .0679515934219366,.06649449638533977,.06504911778675375,.06361543199980733, - .062193415408540995,.06078304644547963,.059384305633420266,.05799717563120066, - .05662164128374288,.05525768967669704,.05390531019604609,.05256449459307169, - .05123523705512628,.04991753428270637,.0486113855733795,.04731679291318155, - .04603376107617517,.04476229773294328,.04350241356888818,.042254122413316234, - .04101744138041482,.039792391023374125,.03857899550307486,.03737728277295936, - .03618728478193142,.03500903769739741,.03384258215087433,.032687963508959535, - .03154523217289361,.030414443910466604,.029295660224637393,.028188948763978636, - .0270943837809558,.026012046645134217,.024942026419731783,.02388442051155817, - .02283933540638524,.02180688750428358,.020787204072578117,.019780424338009743, - .01878670074469603,.01780620041091136,.016839106826039948,.015885621839973163, - .014945968011691148,.014020391403181938,.013109164931254991,.012212592426255381, - .011331013597834597,.010464810181029979,.00961441364250221,.008780314985808975, - .00796307743801704,.007163353183634984,.006381905937319179,.005619642207205483, - .004877655983542392,.004157295120833795,.003460264777836904,.002788798793574076, - .0021459677437189063,.0015362997803015724,.0009672692823271745,.00045413435384149677}; - - -/* - * Here is the guts of the algorithm. As Marsaglia and Tsang state the - * algorithm in their paper - * - * 1) Calculate a random signed integer j and let i be the index - * provided by the rightmost 8-bits of j - * 2) Set x = j * w_i. If j < k_i return x - * 3) If i = 0, then return x from the tail - * 4) If [f(x_{i-1}) - f(x_i)] * U < f(x) - f(x_i), return x - * 5) goto step 1 - * - * Where f is the functional form of the distribution, which for a normal - * distribution is exp(-0.5*x*x) - */ - -/* NOTE: This is identical to randmtzig_gv_randn() below except for the random number generation */ -double randmtzig_randn (dsfmt_t *dsfmt) -{ - while (1) - { - /* arbitrary mantissa (selected by randi, with 1 bit for sign) */ - const randmtzig_uint64_t r = randi(dsfmt); - const randmtzig_int64_t rabs=r>>1; - const int idx = (int)(rabs&0xFF); - const double x = ( r&1 ? -rabs : rabs) * wi[idx]; - - if (rabs < (randmtzig_int64_t)ki[idx]) { - return x; /* 99.3% of the time we return here 1st try */ - } else if (idx == 0) { - /* As stated in Marsaglia and Tsang - * - * For the normal tail, the method of Marsaglia[5] provides: - * generate x = -ln(U_1)/r, y = -ln(U_2), until y+y > x*x, - * then return r+x. Except that r+x is always in the positive - * tail!!!! Any thing random might be used to determine the - * sign, but as we already have r we might as well use it - * - * [PAK] but not the bottom 8 bits, since they are all 0 here! - */ - double xx, yy; - do { - xx = - ZIGGURAT_NOR_INV_R * log (randu(dsfmt)); - yy = - log (randu(dsfmt)); - } - while ( yy+yy <= xx*xx); - return (rabs&0x100 ? -ZIGGURAT_NOR_R-xx : ZIGGURAT_NOR_R+xx); - } else if ((fi[idx-1] - fi[idx]) * randu(dsfmt) + fi[idx] < exp(-0.5*x*x)) { - return x; - } - - } -} - -/* NOTE: This is identical to randmtzig_randn() above except for the random number generation */ -double randmtzig_gv_randn (void) -{ - while (1) - { - /* arbitrary mantissa (selected by NRANDI, with 1 bit for sign) */ - const randmtzig_uint64_t r = NRANDI; - const randmtzig_int64_t rabs=r>>1; - const int idx = (int)(rabs&0xFF); - const double x = ( r&1 ? -rabs : rabs) * wi[idx]; - - if (rabs < (randmtzig_int64_t)ki[idx]) { - return x; /* 99.3% of the time we return here 1st try */ - } else if (idx == 0) { - /* As stated in Marsaglia and Tsang - * - * For the normal tail, the method of Marsaglia[5] provides: - * generate x = -ln(U_1)/r, y = -ln(U_2), until y+y > x*x, - * then return r+x. Except that r+x is always in the positive - * tail!!!! Any thing random might be used to determine the - * sign, but as we already have r we might as well use it - * - * [PAK] but not the bottom 8 bits, since they are all 0 here! - */ - double xx, yy; - do { - xx = - ZIGGURAT_NOR_INV_R * log (RANDU); - yy = - log (RANDU); - } - while ( yy+yy <= xx*xx); - return (rabs&0x100 ? -ZIGGURAT_NOR_R-xx : ZIGGURAT_NOR_R+xx); - } else if ((fi[idx-1] - fi[idx]) * RANDU + fi[idx] < exp(-0.5*x*x)) { - return x; - } - - } -} - -double randmtzig_gv_exprnd (void) -{ - while (1) - { - ZIGINT ri = ERANDI; - const int idx = (int)(ri & 0xFF); - const double x = ri * we[idx]; - if (ri < ke[idx]) - return x; // 98.9% of the time we return here 1st try - else if (idx == 0) - { - /* As stated in Marsaglia and Tsang - * - * For the exponential tail, the method of Marsaglia[5] provides: - * x = r - ln(U); - */ - return ZIGGURAT_EXP_R - log(RANDU); - } - else if ((fe[idx-1] - fe[idx]) * RANDU + fe[idx] < exp(-x)) - return x; - } -} - -#ifdef STANDALONE - -int main(int ac, char *av[]) { - if (ac == 1) { - printf("Usage: randmtzig \n"); - return (-1); - } - - int n = atoi(av[1]); - time_t t1; - - dsfmt_gv_init_gen_rand(0); - - double *p; posix_memalign((void **)&p, 16, n*sizeof(double)); - uint32_t *u; posix_memalign((void **)&u, 16, 2*n*sizeof(uint32_t)); - - t1 = clock(); - dsfmt_gv_fill_array_close_open(p, n); - printf("Uniform fill (n): %f\n", (clock() - t1) / (double) CLOCKS_PER_SEC); - - t1 = clock(); - for (int i = 0; i < n; i++) p[i] = dsfmt_gv_genrand_close_open(); - printf("Uniform (n): %f\n", (clock() - t1) / (double) CLOCKS_PER_SEC); - - t1 = clock(); - for (int i = 0; i < 2*n; i++) u[i] = dsfmt_gv_genrand_uint32(); - printf("Uniform 32-bit ints (2*n): %f\n", (clock() - t1) / (double) CLOCKS_PER_SEC); - - memset((void *)p, 0, n*sizeof(double)); - t1 = clock(); - for (int i = 0; i < n; i++) p[i] = randmtzig_gv_randn(); - printf("Normal (n): %f\n", (clock() - t1) / (double) CLOCKS_PER_SEC); - for (int i = 0; i < 10; i++) printf("%lf\n", p[i]); - - return 0; -} - -#endif diff --git a/test/perf/micro/scala/.gitignore b/test/perf/micro/scala/.gitignore deleted file mode 100644 index c58d83b3189090..00000000000000 --- a/test/perf/micro/scala/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -*.class -*.log - -# sbt specific -.cache -.history -.lib/ -dist/* -target/ -lib_managed/ -src_managed/ -project/boot/ -project/plugins/project/ - -# Scala-IDE specific -.scala_dependencies -.worksheet diff --git a/test/perf/micro/scala/build.sbt b/test/perf/micro/scala/build.sbt deleted file mode 100644 index 794c50491c323a..00000000000000 --- a/test/perf/micro/scala/build.sbt +++ /dev/null @@ -1,18 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -libraryDependencies ++= Seq( - "org.scalanlp" %% "breeze" % "0.10", - "org.scalanlp" %% "breeze-natives" % "0.10" -) - -resolvers ++= Seq( - "Sonatype Releases" at "https://oss.sonatype.org/content/repositories/releases/" -) - -scalaVersion := "2.11.1" - -showSuccess := false - -onLoadMessage := "" - -logLevel := Level.Warn diff --git a/test/perf/micro/scala/src/main/scala/perf.scala b/test/perf/micro/scala/src/main/scala/perf.scala deleted file mode 100644 index c6ed3797d86178..00000000000000 --- a/test/perf/micro/scala/src/main/scala/perf.scala +++ /dev/null @@ -1,274 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -import scala.util._ -import java.io._ -import breeze.linalg._ -import breeze.numerics._ -import breeze.stats._ -import breeze.math._ -//import com.github.fommil.netlib.{BLAS} - -object PerfBreeze { - final val NITER = 5 - - // print results appropriately. times are in milliseconds - def print_perf(name:String, t:Double) = { - printf("scala,%s,%.9f\n", name, t/1e6) - } - - // time fib - def fib(n:Int):Int = { - if (n < 2) n else fib(n-1) + fib(n-2) - } - - def time_fib() = { - assert(fib(20) == 6765) - var tmin = Long.MaxValue - var f = 0 - - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - for(j <- 1 to 1000) { - f += fib(20) - } - val t = System.nanoTime() - t1 - if(t < tmin) tmin = t - } - - tmin / 1000.0 - } - - // time parseint - def time_parseint() = { - val generator = scala.util.Random - var tmin = Long.MaxValue - - for(i <- 1 to NITER) { - var rand:Int = 0 - var rands:String = "0" - var parsed:Int = 0 - val t1 = System.nanoTime() - for(j <- 1 to 1000) { - rand = generator.nextInt() - rands = if(rand < 0) "-" + abs(rand).toHexString else rand.toHexString - parsed = Integer.parseInt(rands, 16) - } - val t = System.nanoTime() - t1 - assert(rand == parsed) - if(t < tmin) tmin = t - } - tmin / 1000.0 - } - - // time mandel - def mandel(zin:Complex):Int = { - val c = zin - var z = zin - val maxiter = 80 - for(n <- 0 to maxiter) { - if(z.abs > 2) return n - z = c + (z * z) - } - maxiter - } - - def mandelperf() = { - for(re <- -20 to 5; im <- -10 to 10) yield mandel(re/10.0 + i * im/10.0) - } - - def time_mandel() = { - var mandel_sum = 0 - var mandel_sum2 = 0 - var tmin = Long.MaxValue - - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - for(j <- 1 to 100) { - val mandel_arr = mandelperf() - if(j == 1) { - mandel_sum = sum(mandel_arr) - mandel_sum2 += mandel_sum - } - } - val t = System.nanoTime() - t1 - if(t < tmin) tmin = t - } - assert(mandel_sum == 14791) - assert(mandel_sum2 == mandel_sum * NITER) - tmin / 100.0 - } - - // time quicksort - def quicksort(a:Array[Double], lo:Int, hi:Int):Array[Double] = { - var i, l = lo - var j = hi - - def _swap(i:Int, j:Int) = { - val tmp = a(i) - a(i) = a(j) - a(j) = tmp - } - - while(i < hi) { - val pivot = a((l+hi)>>>1) - while(i <= j) { - while(a(i) < pivot) i += 1 - while(a(j) > pivot) j -= 1 - if(i <= j) { - _swap(i, j) - i += 1 - j -= 1 - } - } - if(l < j) quicksort(a, l, j) - l = j - j = hi - } - a - } - - /* - def checksorted(a:Array[Double]):Boolean = { - for(i <- 0 to a.length-2) { - assert(a(i) < a(i+1)) - } - true - } - */ - - def time_quicksort() = { - var tmin = Long.MaxValue - - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - for(j <- 1 to 1000) { - val A = DenseVector.rand[Double](5000) - quicksort(A.data, 0, 4999) - } - val t = System.nanoTime() - t1 - if(t < tmin) tmin = t - } - tmin / 1000.0 - } - - // time pisum - def pisum() = { - var sum = 0.0 - for(j <- 1 to 500) { - sum = 0.0 - for(k <- 1 to 10000) { - sum += 1.0/(k*k) - } - } - sum - } - - def time_pisum() = { - var tmin = Long.MaxValue - var pi = 0:Double - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - pi = pisum() - val t = System.nanoTime() - t1 - if(t < tmin) tmin = t - assert(abs(pi-1.644834071848065) < 1e-12) - } - tmin - } - - // time printfd - def printfd(n:Int) = { - var stream = None: Option[PrintStream] - try { - stream = Some(new PrintStream(new BufferedOutputStream(new FileOutputStream("/dev/null")))) - val valid_stream = stream.get - for (i <- 1 to n) { - valid_stream.printf(i + " " + i) - } - } catch { - case e: Exception => println("Exception caught: " + e) - } finally { - if(stream.isDefined) stream.get.close() - } - } - - def time_printfd() = { - var tmin = Long.MaxValue - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - printfd(100000) - val t = System.nanoTime() - t1 - if(t < tmin) tmin = t - } - tmin - } - - // random matrix statistics - def randmatstat(t:Int):(Double,Double) = { - val n = 5 - val v = DenseVector.zeros[Double](t) - val w = DenseVector.zeros[Double](t) - - val g = breeze.stats.distributions.Gaussian(0, 1) - for(i <- 0 to t-1) { - val a = DenseMatrix.rand(n, n, g) - val b = DenseMatrix.rand(n, n, g) - val c = DenseMatrix.rand(n, n, g) - val d = DenseMatrix.rand(n, n, g) - val P = DenseMatrix.horzcat(a, b, c, d) - val Q = DenseMatrix.vertcat(DenseMatrix.horzcat(a, b), DenseMatrix.horzcat(c, d)) - val V = P.t * P - val W = Q.t * Q - - v(i) = trace(V * V * V * V) - w(i) = trace(W * W * W * W) - } - (stddev(v)/mean(v), stddev(w)/mean(w)) - } - - def time_randmatstat() = { - var tmin = Long.MaxValue - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - val (s1, s2) = randmatstat(1000) - val t = System.nanoTime() - t1 - assert(0.5 < s1 && s1 < 1.0 && 0.5 < s2 && s2 < 1.0) - - if(t < tmin) tmin = t - } - tmin - } - - // random matrix multiplication - def randmatmul(t:Int):DenseMatrix[Double] = { - val m1 = randomDouble((t, t)) - val m2 = randomDouble((t, t)) - m1 * m2 - } - - def time_randmatmul() = { - var tmin = Long.MaxValue - for(i <- 1 to NITER) { - val t1 = System.nanoTime() - val m = randmatmul(1000) - val t = System.nanoTime() - t1 - assert(0 <= m(0,0)) - - if(t < tmin) tmin = t - } - tmin - } - - - def main(args: Array[String]) = { - //println("BLAS: " + BLAS.getInstance().getClass().getName()) - print_perf("fib", time_fib()) - print_perf("parse_int", time_parseint()) - print_perf("mandel", time_mandel()) - print_perf("quicksort", time_quicksort()) - print_perf("pi_sum", time_pisum()) - print_perf("rand_mat_stat", time_randmatstat()) - print_perf("rand_mat_mul", time_randmatmul()) - print_perf("printfd", time_printfd()) - } -} diff --git a/test/perf/perfcomp.jl b/test/perf/perfcomp.jl deleted file mode 100644 index cb40d70c15c5f5..00000000000000 --- a/test/perf/perfcomp.jl +++ /dev/null @@ -1,49 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# usage: perfcomp.jl [] -# This will run the specified suite (default "all") and compare it to stored -# results in the baseline file. Only test names present in both will be -# compared. -# The file format is the output of running `make` in this directory. - -function readperf(f) - Dict(rstrip(l[1:19])=>[parse(Float64,l[20:27]),parse(Float64,l[29:36]),parse(Float64,l[38:45]),parse(Float64,l[47:54])] for l in eachline(f)) -end - -function main() - baseline = readperf(open(ARGS[1])) - torun = length(ARGS) > 1 ? ARGS[2] : "all" - e = haskey(ENV,"J") ? "JULIA_EXECUTABLE=$(ENV["J"])" : "" - io,p = open(`make $e -s $torun`, "r") - newp = readperf(io) - - names = sort(intersect(keys(baseline),keys(newp))) - - means0 = [ baseline[n][3] for n in names ] - means1 = [ newp[n][3] for n in names ] - - change = (means0 - means1) ./ means0 - - println("test name old new % speedup % st. dev") - println("-----------------------------------------------------------") - for i = 1:length(names) - print(rpad(names[i],19)) - print(lpad(string(means0[i]),8)," ") - print(lpad(string(means1[i]),8)," ") - dev = baseline[names[i]][4]/means0[i] - @printf "%7.2f%% %7.2f%%\n" change[i]*100 dev*100 - end - println() - - minname = names[argmin(change)] - maxname = names[argmax(change)] - - minstd = baseline[minname][4]/baseline[minname][3] - maxstd = baseline[maxname][4]/baseline[maxname][3] - - @printf "min %7.2f%% (std %7.2f%%) %s\n" minimum(change)*100 minstd*100 minname - @printf "max %7.2f%% (std %7.2f%%) %s\n" maximum(change)*100 maxstd*100 maxname - @printf "avg %7.2f%%\n" mean(change)*100 -end - -main() diff --git a/test/perf/perfgeneric.jl b/test/perf/perfgeneric.jl deleted file mode 100644 index 4e7dba0fa80514..00000000000000 --- a/test/perf/perfgeneric.jl +++ /dev/null @@ -1,8 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -#Generic benchmark driver -for (testfunc, testname, longtestname, problem_sizes) in testdata - for (n, t, size) in problem_sizes - @timeit testfunc(n, t) string(testname,"_",size) string(uppercase(size[1]),size[2:end]," ",longtestname," test") - end -end diff --git a/test/perf/perfutil.jl b/test/perf/perfutil.jl deleted file mode 100644 index b13d372d0d3ef1..00000000000000 --- a/test/perf/perfutil.jl +++ /dev/null @@ -1,122 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using Printf, Random - -const mintrials = 5 -const mintime = 2000.0 -print_output = isempty(ARGS) -codespeed = length(ARGS) > 0 && ARGS[1] == "codespeed" - -if codespeed - using JSON - using HTTPClient.HTTPC - - # Ensure that we've got the environment variables we want: - if !haskey(ENV, "JULIA_FLAVOR") - error( "You must provide the JULIA_FLAVOR environment variable identifying this julia build!" ) - end - - # Setup codespeed data dict for submissions to codespeed's JSON endpoint. These parameters - # are constant across all benchmarks, so we'll just let them sit here for now - csdata = Dict() - csdata["commitid"] = Base.GIT_VERSION_INFO.commit - csdata["project"] = "Julia" - csdata["branch"] = Base.GIT_VERSION_INFO.branch - csdata["executable"] = ENV["JULIA_FLAVOR"] - csdata["environment"] = chomp(read(`hostname`, String)) - csdata["result_date"] = join( split(Base.GIT_VERSION_INFO.date_string)[1:2], " " ) #Cut the timezone out -end - -# Takes in the raw array of values in vals, along with the benchmark name, description, unit and whether less is better -function submit_to_codespeed(vals,name,desc,unit,test_group,lessisbetter=true) - # Points to the server - codespeed_host = "julia-codespeed.csail.mit.edu" - - csdata["benchmark"] = name - csdata["description"] = desc - csdata["result_value"] = mean(vals) - csdata["std_dev"] = std(vals) - csdata["min"] = minimum(vals) - csdata["max"] = maximum(vals) - csdata["units"] = unit - csdata["units_title"] = test_group - csdata["lessisbetter"] = lessisbetter - - println( "$name: $(mean(vals))" ) - ret = post( "http://$codespeed_host/result/add/json/", Dict("json" => json([csdata])) ) - println( json([csdata]) ) - if ret.http_code != 200 && ret.http_code != 202 - error("Error submitting $name [HTTP code $(ret.http_code)], dumping headers and text: $(ret.headers)\n$(String(ret.body))\n\n") - return false - end - return true -end - -macro output_timings(t,name,desc,group) - t = esc(t) - name = esc(name) - desc = esc(desc) - group = esc(group) - quote - # If we weren't given anything for the test group, infer off of file path! - test_group = length($group) == 0 ? basename(dirname(Base.source_path())) : $group[1] - if codespeed - submit_to_codespeed( $t, $name, $desc, "seconds", test_group ) - elseif print_output - @printf "julia,%s,%f,%f,%f,%f\n" $name minimum($t) maximum($t) mean($t) std($t) - end - GC.gc() - end -end - -macro timeit(ex,name,desc,group...) - quote - let - t = Float64[] - tot = 0.0 - i = 0 - while i < mintrials || tot < mintime - e = 1000*(@elapsed $(esc(ex))) - tot += e - if i > 0 - # warm up on first iteration - push!(t, e) - end - i += 1 - end - @output_timings t $(esc(name)) $(esc(desc)) $(esc(group)) - end - end -end - -macro timeit_init(ex,init,name,desc,group...) - quote - t = zeros(mintrials) - for i=0:mintrials - $(esc(init)) - e = 1000*(@elapsed $(esc(ex))) - if i > 0 - # warm up on first iteration - t[i] = e - end - end - @output_timings t $(esc(name)) $(esc(desc)) $(esc(group)) - end -end - -function maxrss(name) - # FIXME: call uv_getrusage instead here - @static if Sys.islinux() - rus = Vector{Int64}(uninitialized, div(144,8)) - fill!(rus, 0x0) - res = ccall(:getrusage, Int32, (Int32, Ptr{Cvoid}), 0, rus) - if res == 0 - mx = rus[5]/1024 - @printf "julia,%s.mem,%f,%f,%f,%f\n" name mx mx mx 0 - end - end -end - - -# seed rng for more consistent timings -srand(1776) diff --git a/test/perf/report.jl b/test/perf/report.jl deleted file mode 100644 index ed65d7955f8796..00000000000000 --- a/test/perf/report.jl +++ /dev/null @@ -1,9 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -using HTTPClient.HTTPC - -env_name = chomp(read(`hostname`, String)) -commit = Base.GIT_VERSION_INFO.commit -flavor = ENV["JULIA_FLAVOR"] -json = "{\"env\": \"$env_name\", \"blas\":\"$flavor\", \"commit\":\"$commit\"}" -post("http://status.julialang.org/put/codespeed", json ) diff --git a/test/perf/shootout/.gitignore b/test/perf/shootout/.gitignore deleted file mode 100644 index 2211df63dd2831..00000000000000 --- a/test/perf/shootout/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.txt diff --git a/test/perf/shootout/Makefile b/test/perf/shootout/Makefile deleted file mode 100644 index cbdc6cd30374e1..00000000000000 --- a/test/perf/shootout/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -JULIAHOME := $(abspath ../../..) -include ../../../Make.inc - -SHOOTOUTFILES = knucleotide-input.txt regexdna-input.txt revcomp-input.txt fasta-output.txt mandelbrot-output.txt nbody-output.txt fannkuchredux-output.txt pidigits-output.txt knucleotide-output.txt revcomp-output.txt spectralnorm-output.txt regexdna-output.txt meteor-output.txt - -getall: $(SHOOTOUTFILES) - -%.txt: - $(JLDOWNLOAD) http://benchmarksgame.alioth.debian.org/download/$@ - -clean: - rm -f *.txt *~ - -.PHONY: getall diff --git a/test/perf/shootout/README.md b/test/perf/shootout/README.md deleted file mode 100644 index 25976401cacb1d..00000000000000 --- a/test/perf/shootout/README.md +++ /dev/null @@ -1,9 +0,0 @@ -This directory contains the Julia version of the "The -Computer Language Benchmarks Game": -https://benchmarksgame.alioth.debian.org/ - -The source code for all the benchmarks are available there: -https://alioth.debian.org/scm/viewvc.php/benchmarksgame/bench/?root=benchmarksgame - -See specific Julia discussion here: -https://github.com/JuliaLang/julia/issues/660 diff --git a/test/perf/shootout/binary_trees.jl b/test/perf/shootout/binary_trees.jl deleted file mode 100644 index f81469ea00a3f5..00000000000000 --- a/test/perf/shootout/binary_trees.jl +++ /dev/null @@ -1,61 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# -# The Computer Language Benchmarks Game -# binary-trees benchmark -# http://shootout.alioth.debian.org/u32/performance.php?test=binarytrees -# -# Ported from an OCaml version -# - -abstract type BTree end - -mutable struct Empty <: BTree -end - -mutable struct Node <: BTree - info - left::BTree - right::BTree -end - -function make(val, d) - if d == 0 - Node(val, Empty(), Empty()) - else - nval = val * 2 - Node(val, make(nval-1, d-1), make(nval, d-1)) - end -end - -check(t::Empty) = 0 -check(t::Node) = t.info + check(t.left) - check(t.right) - -function loop_depths(d, min_depth, max_depth) - for i = 0:div(max_depth - d, 2) - niter = 1 << (max_depth - d + min_depth) - c = 0 - for j = 1:niter - c += check(make(i, d)) + check(make(-i, d)) - end -# @printf("%i\t trees of depth %i\t check: %i\n", 2*niter, d, c) - d += 2 - end -end - -function binary_trees(N::Int=10) - min_depth = 4 - max_depth = N - stretch_depth = max_depth + 1 - - # create and check stretch tree - let c = check(make(0, stretch_depth)) -# @printf("stretch tree of depth %i\t check: %i\n", stretch_depth, c) - end - - long_lived_tree = make(0, max_depth) - - loop_depths(min_depth, min_depth, max_depth) -# @printf("long lived tree of depth %i\t check: %i\n", max_depth, check(long_lived_tree)) -end - diff --git a/test/perf/shootout/fannkuch.jl b/test/perf/shootout/fannkuch.jl deleted file mode 100644 index 97ce12ae594f17..00000000000000 --- a/test/perf/shootout/fannkuch.jl +++ /dev/null @@ -1,75 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# -# The Computer Language Benchmarks Game -# fannkuch-redux benchmark -# http://shootout.alioth.debian.org/u32/performance.php?test=fannkuchredux -# -# Based on the Javascript program -# -function fannkuch(n) - p = Vector{Int32}(uninitialized, n) - for i = 1:n - p[i] = i - end - q = copy(p) - s = copy(p) - sign = 1; maxflips = sum = 0 - while true - q0 = p[1] - if q0 != 1 - for i = 2:n - q[i] = p[i] - end - flips = 1 - while true - qq = q[q0] #?? - if qq == 1 - sum += sign*flips - flips > maxflips && (maxflips = flips) - break - end - q[q0] = q0 - if q0 >= 4 - i = 2; j = q0-1 - while true - t = q[i] - q[i] = q[j] - q[j] = t - i += 1 - j -= 1 - i >= j && break - end - end - q0 = qq - flips += 1 - end - end - #permute - if sign == 1 - t = p[2] - p[2] = p[1] - p[1] = t - sign = -1 - else - t = p[2] - p[2] = p[3] - p[3] = t - sign = 1 - for i = 3:n - sx = s[i] - if sx != 1 - s[i] = sx-1 - break - end - i == n && return maxflips - s[i] = i - t = p[1] - for j = 1:i - p[j] = p[j+1] - end - p[i+1] = t - end - end - end -end diff --git a/test/perf/shootout/fasta.jl b/test/perf/shootout/fasta.jl deleted file mode 100644 index 2f0f233792a1ea..00000000000000 --- a/test/perf/shootout/fasta.jl +++ /dev/null @@ -1,61 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -const line_width = 60 - -const alu = string( - "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG", - "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA", - "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT", - "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA", - "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG", - "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC", - "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA") - -const iub1 = b"acgtBDHKMNRSVWY" -const iub2 = [0.27, 0.12, 0.12, 0.27, 0.02,0.02, 0.02, 0.02, 0.02, 0.02,0.02, 0.02, 0.02, 0.02, 0.02] - -const homosapiens1 = b"acgt" -const homosapiens2 = [0.3029549426680, 0.1979883004921,0.1975473066391, 0.3015094502008] - -const IM = 139968.0 -const IA = 3877.0 -const IC = 29573.0 - -function gen_random() - global rng_state = ((rng_state::Float64 * IA + IC) % IM) / IM -end -function repeat_fasta(src, n) - k = length(src) - return string(src, src, src[1:n % k]) -end -function choose_char(cs) - k = length(cs) - r = gen_random() - r < cs[1] && return 1 - a = 1 - b = k - while b > a + 1 - c = fld(a + b, 2) - if r < cs[c]; b = c; else a = c; end - end - b -end -function random_fasta(symb, pr, n) - cs = cumsum(pr) - line = Vector{UInt8}(uninitialized, line_width) - k = n - while k > 0 - m = min(k, line_width) - for i = 1:m - line[i] = symb[choose_char(cs)] - end - k -= line_width - end -end - -rng_state = 42.0 -function fasta(n=25000000) - repeat_fasta(alu, 2n) - random_fasta(iub1, iub2, 3n) - random_fasta(homosapiens1, homosapiens2, 5n) -end diff --git a/test/perf/shootout/k_nucleotide.jl b/test/perf/shootout/k_nucleotide.jl deleted file mode 100644 index d132efe2100495..00000000000000 --- a/test/perf/shootout/k_nucleotide.jl +++ /dev/null @@ -1,88 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# The Computer Language Benchmarks Game -# http://shootout.alioth.debian.org/ -# -# Contributed by David Campbell -# Based on the Go version - -import Base.isless - -function count(data::AbstractString, n::Int) - counts = Dict{AbstractString, Int}() - top = length(data) - n + 1 - for i = 1:top - s = data[i : i+n-1] - if haskey(counts, s) - counts[s] += 1 - else - counts[s] = 1 - end - end - counts -end - -function count_one(data::AbstractString, s::AbstractString) - count(data, length(s))[s] -end - -mutable struct KNuc - name::AbstractString - count::Int -end - -# sort down -function isless(x::KNuc, y::KNuc) - if x.count == y.count - return x.name > y.name - end - x.count > y.count -end - -function sorted_array(m::Dict{AbstractString, Int}) - kn = Vector{KNuc}(uninitialized, length(m)) - i = 1 - for elem in m - kn[i] = KNuc(elem...) - i += 1 - end - sort(kn) -end - -function print_knucs(a::Array{KNuc, 1}) - sum = 0 - for kn in a - sum += kn.count - end - for kn in a - @printf("%s %.3f\n", kn.name, 100.0kn.count/sum) - end - println() -end - -function k_nucleotide(infile="knucleotide-input.txt") - input = open(infile, "r") - for line in eachline(input) - startswith(line, ">THREE ") && break - end - data = collect(read(input, String)) - # delete the newlines and convert to upper case - i, j = 1, 1 - while i <= length(data) - if data[i] != '\n' - data[j] = uppercase(data[i]) - j += 1 - end - i += 1 - end - str = join(data[1:j-1], "") - - arr1 = sorted_array(count(str, 1)) - arr2 = sorted_array(count(str, 2)) - close(input) -# print_knucs(arr1) -# print_knucs(arr2) -# for s in ["GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"] -# @printf("%d\t%s\n", count_one(str, s), s) -# end -end diff --git a/test/perf/shootout/mandelbrot.jl b/test/perf/shootout/mandelbrot.jl deleted file mode 100644 index ccefdc340b38dc..00000000000000 --- a/test/perf/shootout/mandelbrot.jl +++ /dev/null @@ -1,45 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# The Computer Language Benchmarks Game -# http://shootout.alioth.debian.org/ -# -# Contributed by David Campbell - -const ITER = 50 - -function ismandel(z::ComplexF64) - c = z - for n = 1:ITER - if abs2(z) > 4 - return false - end - z = z^2 + c - end - return true -end - -function draw_mandel(M::Array{UInt8, 2}, n::Int) - for y = 0:n-1 - ci = 2y/n - 1 - for x = 0:n-1 - c = complex(2x/n - 1.5, ci) - if ismandel(c) - M[div(x, 8) + 1, y + 1] |= 1 << UInt8(7 - x%8) - end - end - end -end - -function mandelbrot(n::Int=200, outfile="mandelbrot-output-julia.txt") - if n%8 != 0 - error("Error: n of $n is not divisible by 8") - end - - M = zeros(UInt8, div(n, 8), n) - draw_mandel(M, n) - - output = open(outfile, "w") - write(output, "P4\n$n $n\n") - write(output, M) - close(output) -end diff --git a/test/perf/shootout/meteor_contest.jl b/test/perf/shootout/meteor_contest.jl deleted file mode 100644 index 5783451b848fce..00000000000000 --- a/test/perf/shootout/meteor_contest.jl +++ /dev/null @@ -1,246 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# The Computer Language Benchmarks Game -# http://shootout.alioth.debian.org/ -# -# Contributed by David Campbell -# based on Python version by Olof Kraigher - -const width = 5 -const height = 10 - -# directions -const E = 0 -const NE = 1 -const NW = 2 -const W = 3 -const SW = 4 -const SE = 5 - -const rotate = Dict(E => NE, NE => NW, NW => W, W => SW, SW => SE, SE => E) -const flip = Dict(E => W, NE => NW, NW => NE, W => E, SW => SE, SE => SW) - -const move = Dict( - E => (x, y) -> (x + 1, y), - W => (x, y) -> (x - 1, y), - NE => (x, y) -> (x + y%2, y - 1), - NW => (x, y) -> (x + y%2 - 1, y - 1), - SE => (x, y) -> (x + y%2, y + 1), - SW => (x, y) -> (x + y%2 - 1, y + 1) -) - -const pieces = ( - (E, E, E, SE), - (SE, SW, W, SW), - (W, W, SW, SE), - (E, E, SW, SE), - (NW, W, NW, SE, SW), - (E, E, NE, W), - (NW, NE, NE, W), - (NE, SE, E, NE), - (SE, SE, E, SE), - (E, NW, NW, NW) -) - -const solutions = Any[] -const masks = zeros(UInt64, 10) -const masksAtCell = Matrix{Any}(uninitialized, width*height, height) - -valid(x, y) = (0 <= x < width) && (0 <= y < height) -legal(mask::UInt64, board::UInt64) = (mask & board) == 0 -zerocount(mask::UInt64) = 50 - count_ones(mask) - -function findFreeCell(board::UInt64) - for y in 0:height-1 - for x in 0:width-1 - if board & (UInt64(1) << (x + width*y)) == 0 - return x, y - end - end - end -end - -function floodFill(board::UInt64, fixme) - x, y = fixme - if !valid(x,y) - return board - end - - if board & (UInt64(1) << (x + width*y)) != 0 - return board - end - - board |= UInt64(1) << (x + width*y) - for f in values(move) - board |= floodFill(board, f(x, y)) - end - - return board -end - -function noIslands(mask::UInt64) - zeroes_ = zerocount(mask) - - if zeroes_ < 5 - return false - end - - while mask != 0x3FFFFFFFFFFFF - mask = floodFill(mask, findFreeCell(mask)) - new_zeroes = zerocount(mask) - - if zeroes_ - new_zeroes < 5 - return false - end - - zeroes_ = new_zeroes - end - - return true -end - -function getBitmask(x, y, piece) - mask = (UInt64(1) << (x + width*y)) - - for cell_ in piece - x, y = move[cell_](x,y) - if valid(x, y) - mask |= UInt64(1) << (x + width*y) - else - return false, UInt64(0) - end - end - - return true, UInt64(mask) -end - -function allBitmasks(piece, color) - bitmasks = UInt64[] - for orientations in 0:1 - for rotations in 0:(6 - 3*(color == 4))-1 - for y in 0:height-1 - for x in 0:width-1 - isValid, mask = getBitmask(x, y, piece) - if isValid && noIslands(UInt64(mask)) - push!(bitmasks, mask) - end - end - end - piece = [rotate[cell_] for cell_ in piece] - end - piece = [flip[cell_] for cell_ in piece] - end - return bitmasks -end - -function generateBitmasks() - for i = 1:length(masksAtCell) - masksAtCell[i] = UInt64[] - end - - color = 0 - for piece in pieces - masks = allBitmasks(piece, color) - sort!(masks) - cellMask = UInt64(1) << (width*height - 1) - cellCounter = width*height - 1 - - j = length(masks) - 1 - - while j >= 0 - if (masks[j + 1] & cellMask) == cellMask - push!(masksAtCell[cellCounter + 1, color + 1], masks[j + 1]) - j -= 1 - else - cellMask >>= 1 - cellCounter -= 1 - end - end - color += 1 - end -end - -function solveCell(cell_, board::UInt64, n) - if length(solutions) >= n - return - end - - if board == 0x0003FFFFFFFFFFFF - # Solved - s = stringOfMasks(masks) - push!(solutions, s) - push!(solutions, reverse(s)) - return - end - - if board & (UInt64(1) << cell_) != 0 - # Cell full - solveCell(cell_ - 1, UInt64(board), n) - return - end - - if cell_ < 0 - # Out of board - return - end - - for color in 0:9 - if masks[color + 1] == 0 - for mask in masksAtCell[cell_ + 1, color + 1] - if legal(mask, board) - masks[color + 1] = mask - solveCell(cell_ - 1, UInt64(board | mask), n) - masks[color + 1] = 0 - end - end - end - end -end - -function solve(n) - generateBitmasks() - solveCell(width*height-1, UInt64(0), n) -end - -function stringOfMasks(masks) - s = "" - mask::UInt64 = 1 - for y in 0:height-1 - for x in 0:width-1 - for color in 0:9 - if (masks[color+1] & mask) != 0 - s = string(s, color) - break - elseif color == 9 - s *= "." - end - end - mask <<= 1 - end - end - return s -end - -function printSolution(s) - for y in 0:height-1 - if y%2 == 1 - print(" ") - end - for x in 0:width-1 - print("$(s[x + y*width + 1]) ") - end - println() - end -end - -function meteor_contest(n::Int=2098) - empty!(solutions) - fill!(masks, 0) - solve(n) -# println("$(length(solutions)) solutions found") -# println() -# printSolution(minimum(solutions)) -# println() -# printSolution(maximum(solutions)) -# println() -end diff --git a/test/perf/shootout/nbody.jl b/test/perf/shootout/nbody.jl deleted file mode 100644 index 9d32837ca51b60..00000000000000 --- a/test/perf/shootout/nbody.jl +++ /dev/null @@ -1,135 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# -# The Computer Language Benchmarks Game -# nbody benchmark -# http://shootout.alioth.debian.org/u32/performance.php?test=nbody -# -# A straight port from the Java version -# - -module NBody - -# Constants -const solar_mass = 4 * pi * pi -const days_per_year = 365.24 - -# A heavenly body in the system -mutable struct Body - x::Float64 - y::Float64 - z::Float64 - vx::Float64 - vy::Float64 - vz::Float64 - mass::Float64 -end - -function offset_momentum(b::Body, px, py, pz) - b.vx = -px / solar_mass - b.vy = -py / solar_mass - b.vz = -pz / solar_mass -end - -function init_sun(bodies) - local px::Float64 = 0.0 - local py::Float64 = 0.0 - local pz::Float64 = 0.0 - for b in bodies - px += b.vx * b.mass - py += b.vy * b.mass - pz += b.vz * b.mass - end - offset_momentum(bodies[1], px, py, pz) -end - -function advance(bodies, dt) - for i = 1:length(bodies) - for j = i+1:length(bodies) - dx = bodies[i].x - bodies[j].x - dy = bodies[i].y - bodies[j].y - dz = bodies[i].z - bodies[j].z - dsq = dx^2 + dy^2 + dz^2 - distance = sqrt(dsq) - mag = dt / (dsq * distance) - - bodies[i].vx -= dx * bodies[j].mass * mag - bodies[i].vy -= dy * bodies[j].mass * mag - bodies[i].vz -= dz * bodies[j].mass * mag - - bodies[j].vx += dx * bodies[i].mass * mag - bodies[j].vy += dy * bodies[i].mass * mag - bodies[j].vz += dz * bodies[i].mass * mag - end - end - - for b in bodies - b.x += dt * b.vx - b.y += dt * b.vy - b.z += dt * b.vz - end -end - -function energy(bodies) - local e::Float64 = 0.0 - for i = 1:length(bodies) - e += 0.5 * bodies[i].mass * - (bodies[i].vx^2 + bodies[i].vy^2 + bodies[i].vz^2) - for j = i+1:length(bodies) - dx = bodies[i].x - bodies[j].x - dy = bodies[i].y - bodies[j].y - dz = bodies[i].z - bodies[j].z - distance = sqrt(dx^2 + dy^2 + dz^2) - e -= (bodies[i].mass * bodies[j].mass) / distance - end - end - e -end - - -function nbody(N::Int=1000) - jupiter = Body( 4.84143144246472090e+00, # x - -1.16032004402742839e+00, # y - -1.03622044471123109e-01, # z - 1.66007664274403694e-03 * days_per_year, # vx - 7.69901118419740425e-03 * days_per_year, # vy - -6.90460016972063023e-05 * days_per_year, # vz - 9.54791938424326609e-04 * solar_mass) # mass - - saturn = Body( 8.34336671824457987e+00, - 4.12479856412430479e+00, - -4.03523417114321381e-01, - -2.76742510726862411e-03 * days_per_year, - 4.99852801234917238e-03 * days_per_year, - 2.30417297573763929e-05 * days_per_year, - 2.85885980666130812e-04 * solar_mass) - - uranus = Body( 1.28943695621391310e+01, - -1.51111514016986312e+01, - -2.23307578892655734e-01, - 2.96460137564761618e-03 * days_per_year, - 2.37847173959480950e-03 * days_per_year, - -2.96589568540237556e-05 * days_per_year, - 4.36624404335156298e-05 * solar_mass) - - neptune = Body( 1.53796971148509165e+01, - -2.59193146099879641e+01, - 1.79258772950371181e-01, - 2.68067772490389322e-03 * days_per_year, - 1.62824170038242295e-03 * days_per_year, - -9.51592254519715870e-05 * days_per_year, - 5.15138902046611451e-05 * solar_mass) - - sun = Body(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, solar_mass) - - bodies = [sun, jupiter, saturn, uranus, neptune] - - init_sun(bodies) -# @printf("%.9f\n", energy(bodies)) - for i = 1:N - advance(bodies, 0.01) - end -# @printf("%.9f\n", energy(bodies)) -end - -end # module diff --git a/test/perf/shootout/nbody_vec.jl b/test/perf/shootout/nbody_vec.jl deleted file mode 100644 index 657f67c33bbd49..00000000000000 --- a/test/perf/shootout/nbody_vec.jl +++ /dev/null @@ -1,114 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# -# The Computer Language Benchmarks Game -# nbody benchmark -# http://shootout.alioth.debian.org/u32/performance.php?test=nbody -# -# A vectorized version of the Java port from nbody.jl -# - -module NBodyVec - -# Constants -const solar_mass = 4 * pi * pi -const days_per_year = 365.24 - -# A heavenly body in the system -mutable struct Body - pos::Array{Float64, 1} - v::Array{Float64, 1} - mass::Float64 -end - -function offset_momentum(b::Body, p) - b.v -= p / solar_mass -end - -function init_sun(bodies) - local p::Array{Float64,1} = [0.0, 0.0, 0.0] - for b in bodies - p += b.v * b.mass - end - offset_momentum(bodies[1], p) -end - -function advance(bodies, dt) - for i = 1:length(bodies) - for j = i+1:length(bodies) - delta = bodies[i].pos - bodies[j].pos - dsq = sum(delta .^ 2) - distance = sqrt(dsq) - mag = dt / (dsq * distance) - - bodies[i].v -= delta * (bodies[j].mass * mag) - bodies[j].v += delta * (bodies[i].mass * mag) - end - end - - for b in bodies - b.pos += dt * b.v - end -end - -function energy(bodies) - local e::Float64 = 0.0 - for i = 1:length(bodies) - e += 0.5 * bodies[i].mass * - sum(bodies[i].v .^ 2) - for j = i+1:length(bodies) - delta = bodies[i].pos - bodies[j].pos - distance = sqrt(sum(delta .^ 2)) - e -= (bodies[i].mass * bodies[j].mass) / distance - end - end - e -end - - -function nbody_vec(N::Int=1000) - jupiter = Body( [4.84143144246472090e+00, # pos[1] = x - -1.16032004402742839e+00, # pos[2] = y - -1.03622044471123109e-01], # pos[3] = z - [1.66007664274403694e-03 * days_per_year, # v[1] = vx - 7.69901118419740425e-03 * days_per_year, # v[2] = vy - -6.90460016972063023e-05 * days_per_year], # v[3] = vz - 9.54791938424326609e-04 * solar_mass) # mass - - saturn = Body( [8.34336671824457987e+00, - 4.12479856412430479e+00, - -4.03523417114321381e-01], - [-2.76742510726862411e-03 * days_per_year, - 4.99852801234917238e-03 * days_per_year, - 2.30417297573763929e-05 * days_per_year], - 2.85885980666130812e-04 * solar_mass) - - uranus = Body( [1.28943695621391310e+01, - -1.51111514016986312e+01, - -2.23307578892655734e-01], - [2.96460137564761618e-03 * days_per_year, - 2.37847173959480950e-03 * days_per_year, - -2.96589568540237556e-05 * days_per_year], - 4.36624404335156298e-05 * solar_mass) - - neptune = Body( [1.53796971148509165e+01, - -2.59193146099879641e+01, - 1.79258772950371181e-01], - [2.68067772490389322e-03 * days_per_year, - 1.62824170038242295e-03 * days_per_year, - -9.51592254519715870e-05 * days_per_year], - 5.15138902046611451e-05 * solar_mass) - - sun = Body([0.0, 0.0, 0.0], [0.0, 0.0, 0.0], solar_mass) - - bodies = [sun, jupiter, saturn, uranus, neptune] - - init_sun(bodies) -# @printf("%.9f\n", energy(bodies)) - for i = 1:N - advance(bodies, 0.01) - end -# @printf("%.9f\n", energy(bodies)) -end - -end # module diff --git a/test/perf/shootout/perf.jl b/test/perf/shootout/perf.jl deleted file mode 100644 index f53182c579b012..00000000000000 --- a/test/perf/shootout/perf.jl +++ /dev/null @@ -1,46 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -rpath(filename::AbstractString) = joinpath(@__DIR__, filename) - -include("binary_trees.jl") -@timeit binary_trees(10) "binary_trees" "Allocate and deallocate many many binary trees" - -include("fannkuch.jl") -@timeit fannkuch(7) "fannkuch" "Indexed-access to tiny integer-sequence" - -include("fasta.jl") -@timeit fasta(100) "fasta" "Generate and write random DNA sequences" - -include("k_nucleotide.jl") -@timeit k_nucleotide(rpath("knucleotide-input.txt")) "k_nucleotide" "Hashtable update and k-nucleotide strings" - -include("mandelbrot.jl") -@timeit mandelbrot(200, rpath("mandelbrot-output-julia.txt")) "mandelbrot" "Generate Mandelbrot set portable bitmap file" - -include("meteor_contest.jl") -@timeit meteor_contest() "meteor_contest" "Search for solutions to shape packing puzzle" - -include("nbody.jl") -using NBody -@timeit NBody.nbody() "nbody" "Double-precision N-body simulation" - -include("nbody_vec.jl") -using NBodyVec -@timeit NBodyVec.nbody_vec() "nbody_vec" "A vectorized double-precision N-body simulation" - -include("pidigits.jl") -@assert pidigits(1000) == 9216420198 -@timeit pidigits(1000) "pidigits" "Streaming arbitrary-precision arithmetic" - -include("regex_dna.jl") -@timeit regex_dna(rpath("regexdna-input.txt")) "regex_dna" "Match DNA 8-mers and substitute nucleotides for IUB codes" - -include("revcomp.jl") -@timeit revcomp(rpath("revcomp-input.txt")) "revcomp" "Read DNA sequences - write their reverse-complement" - -include("spectralnorm.jl") -@timeit spectralnorm() "spectralnorm" "Eigenvalue using the power method" - -maxrss("shootout") diff --git a/test/perf/shootout/pidigits.jl b/test/perf/shootout/pidigits.jl deleted file mode 100644 index 175445d4248c07..00000000000000 --- a/test/perf/shootout/pidigits.jl +++ /dev/null @@ -1,64 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function pidigits(N::Int, printOut::Bool) - """ - See http://shootout.alioth.debian.org/u64q/performance.php?test=pidigits#about - - Transliterated from Mario Pernici Python's program - - - INPUT: - - - N -- a positive integer giving the number of digits of pi to be computed - - - printOut -- a boolean specifying if we want intermediate printouts of digits in packets of 10 - - OUTPUT: - - - returns the last ten digits anyway - - - prints all the digits in packets of 10 iff printOut == true - - """ - - i = k = ns = 0 - k1 = 1 - n,a,d,t,u = map(BigInt,(1,0,1,0,0)) - - while true - k += 1 - t = n << 1 - n *= k - a += t - k1 += 2 - a *= k1 - d *= k1 - - if a >= n - t,u = divrem(n*3 +a, d) - u += n - if d > u - ns = ns*10 + t - i += 1 - if mod(i,10) == 0 - if printOut - print(ns) - @printf("\t:%d\n", i) - end - if i >= N - return ns - end - ns = 0 - end - a -= d*t - a *= 10 - n *= 10 - - end - end - end -end - -function pidigits(N::Int=1000) - pidigits(N,false) -end diff --git a/test/perf/shootout/regex_dna.jl b/test/perf/shootout/regex_dna.jl deleted file mode 100644 index 5a8863040e5290..00000000000000 --- a/test/perf/shootout/regex_dna.jl +++ /dev/null @@ -1,58 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# The Computer Language Benchmarks Game -# http://shootout.alioth.debian.org/ -# -# Contributed by Daniel Jones -# Fix from David Campbell - -const variants = [ - "agggtaaa|tttaccct", - "[cgt]gggtaaa|tttaccc[acg]", - "a[act]ggtaaa|tttacc[agt]t", - "ag[act]gtaaa|tttac[agt]ct", - "agg[act]taaa|ttta[agt]cct", - "aggg[acg]aaa|ttt[cgt]ccct", - "agggt[cgt]aa|tt[acg]accct", - "agggta[cgt]a|t[acg]taccct", - "agggtaa[cgt]|[acg]ttaccct" -] - -const subs = [ - (r"B", "(c|g|t)"), - (r"D", "(a|g|t)"), - (r"H", "(a|c|t)"), - (r"K", "(g|t)"), - (r"M", "(a|c)"), - (r"N", "(a|c|g|t)"), - (r"R", "(a|g)"), - (r"S", "(c|g)"), - (r"V", "(a|c|g)"), - (r"W", "(a|t)"), - (r"Y", "(c|t)") -] - -function regex_dna(infile="regexdna-input.txt") - seq = read(infile, String) - l1 = length(seq) - - seq = replace(seq, r">.*\n|\n" => "") - l2 = length(seq) - - for v in variants - k = 0 - for m in eachmatch(Regex(v), seq) - k += 1 - end -# @printf("%s %d\n", v, k) - end - - for (u, v) in subs - seq = replace(seq, u => v) - end - -# println() -# println(l1) -# println(l2) -# println(length(seq)) -end diff --git a/test/perf/shootout/revcomp.jl b/test/perf/shootout/revcomp.jl deleted file mode 100644 index 966d661c222500..00000000000000 --- a/test/perf/shootout/revcomp.jl +++ /dev/null @@ -1,61 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# The Computer Language Benchmarks Game -# http://shootout.alioth.debian.org/ -# -# Contributed by David Campbell - -# FIXME(davekong) Is there support in Julia for doing more efficient IO and -# handling of byte arrays? - -const revcompdata = Dict( - 'A'=> 'T', 'a'=> 'T', - 'C'=> 'G', 'c'=> 'G', - 'G'=> 'C', 'g'=> 'C', - 'T'=> 'A', 't'=> 'A', - 'U'=> 'A', 'u'=> 'A', - 'M'=> 'K', 'm'=> 'K', - 'R'=> 'Y', 'r'=> 'Y', - 'W'=> 'W', 'w'=> 'W', - 'S'=> 'S', 's'=> 'S', - 'Y'=> 'R', 'y'=> 'R', - 'K'=> 'M', 'k'=> 'M', - 'V'=> 'B', 'v'=> 'B', - 'H'=> 'D', 'h'=> 'D', - 'D'=> 'H', 'd'=> 'H', - 'B'=> 'V', 'b'=> 'V', - 'N'=> 'N', 'n'=> 'N', -) - -function print_buff(b) - br = reverse(b) - l = length(br) - for i = 1:60:l - if i+59 > l - write(br[i:end]); println() - else - write(br[i:i+59]); println() - end - end -end - -function revcomp(infile="revcomp-input.txt") - input = open(infile, "r") - buff = UInt8[] - while true - line = readuntil(input, UInt8('\n'), keep=true) - if isempty(line) -# print_buff(buff) - return - elseif line[1] == UInt8('>') -# print_buff(buff) - buff = UInt8[] -# write(line) - else - l = length(line)-1 - append!(buff, [UInt8(revcompdata[Char(line[i])]) for i=1:l]) - end - end - close(input) -end - diff --git a/test/perf/shootout/spectralnorm.jl b/test/perf/shootout/spectralnorm.jl deleted file mode 100644 index 3b812141650d17..00000000000000 --- a/test/perf/shootout/spectralnorm.jl +++ /dev/null @@ -1,54 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# -# The Computer Language Benchmarks Game -# spectral-norm benchmark -# http://shootout.alioth.debian.org/u32/performance.php?test=spectralnorm -# -# Based on the Javascript program -# - -A(i,j) = 1.0 / ((i+j)*(i+j+1.0)/2.0+i+1.0) - -function Au(u,w) - n = length(u) - for i = 1:n, j = 1:n - j == 1 && (w[i] = 0) - w[i] += A(i-1,j-1) * u[j] - end -end - -function Atu(w,v) - n = length(w) - for i = 1:n, j = 1:n - j == 1 && (v[i] = 0) - v[i] += A(j-1,i-1) * w[j] - end -end - -function approximate(n) - u = fill(1., n) - v = zeros(Float64,n) - w = zeros(Float64,n) - vv = vBv = 0 - for i = 1:10 - Au(u,w) - Atu(w,v) - Au(v,w) - Atu(w,u) - end - for i = 1:n - vBv += u[i]*v[i] - vv += v[i]*v[i] - end - return sqrt(vBv/vv) -end - -function spectralnorm(N::Int=100) - approximate(N) -end - -# @assert spectralnorm(100) == 1.274219991 -# @timeit spectralnorm(500) "spectralnorm(n=500)" -# @timeit spectralnorm(3000) "spectralnorm(n=3000)" -# @timeit spectralnorm(5500) "spectralnorm(n=5500)" diff --git a/test/perf/simd/axpy.jl b/test/perf/simd/axpy.jl deleted file mode 100644 index 69cd62c84a81eb..00000000000000 --- a/test/perf/simd/axpy.jl +++ /dev/null @@ -1,26 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Compute y += a*x using @simd for vectors x and y -function simd_axpy( a, x, y ) - # LLVM's auto-vectorizer typically vectorizes this loop even without @simd - @simd for i=1:length(x) - @inbounds y[i] += a*x[i] - end -end - -# Run axpy(a,x,y) m times -function flog_axpy( m, a, x, y ) - for j=1:m - simd_axpy(a,x,y) - end -end - -# Run axpy for Float32 and Float64 -for t in [Float32,Float64] - n = 1000 - x = rand(t,n) - y = rand(t,n) - a = convert(t,0.5) - bits = 8*sizeof(t) - @timeit(flog_axpy(100,a,x,y), "simd_axpy_$bits", "SIMD BLAS axpy for type $t", "SIMD") -end diff --git a/test/perf/simd/inner.jl b/test/perf/simd/inner.jl deleted file mode 100644 index d8113958560f2d..00000000000000 --- a/test/perf/simd/inner.jl +++ /dev/null @@ -1,27 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Inner produce of x and y -function inner( x, y ) - s = zero(eltype(x)) - @simd for i=1:length(x) - @inbounds s += x[i]*y[i] - end - s -end - -function flog_inner( m, x, y ) - s = zero(eltype(x)) - for j=1:m - s += inner(x,y) - end - s -end - -for t in [Float32,Float64] - n = 1000 - x = rand(t,n) - y = rand(t,n) - bits = 8*sizeof(t) - @timeit(flog_inner(100,x,y), "inner_$bits", "SIMD inner product for type $t", "SIMD") -end - diff --git a/test/perf/simd/perf.jl b/test/perf/simd/perf.jl deleted file mode 100644 index ebcb1de7738841..00000000000000 --- a/test/perf/simd/perf.jl +++ /dev/null @@ -1,8 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -include("../perfutil.jl") - -include("axpy.jl") -include("sum_reduce.jl") -include("inner.jl") -include("seismic_fdtd.jl") diff --git a/test/perf/simd/seismic_fdtd.jl b/test/perf/simd/seismic_fdtd.jl deleted file mode 100644 index 2386115b162767..00000000000000 --- a/test/perf/simd/seismic_fdtd.jl +++ /dev/null @@ -1,51 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Finite-difference time-domain seismic simulation in 2D using a staggered grid. -# The intent is to test performance of @simd on the inner loop of a 2D loop nest. -# -# If @simd ever supports forward-lexical dependences, then the kernels in updateV -# and updateU can be merged. - -# Update velocity component fields Vx and Vy -function updateV( irange, jrange, U, Vx, Vy, A ) - for j in jrange - @simd for i in irange - @inbounds begin - Vx[i,j] += (A[i,j+1]+A[i,j])*(U[i,j+1]-U[i,j]) - Vy[i,j] += (A[i+1,j]+A[i,j])*(U[i+1,j]-U[i,j]) - end - end - end -end - -# Update pressure field U -function updateU( irange, jrange, U, Vx, Vy, B ) - for j in jrange - @simd for i in irange - @inbounds begin - U[i,j] += B[i,j]*((Vx[i,j]-Vx[i,j-1]) + (Vy[i,j]-Vy[i-1,j])) - end - end - end -end - -# Alternate updates for given number of steps -function flog_fdtd( steps, U, Vx, Vy, A, B ) - m,n = size(U) - for k=1:steps - updateV(2:m-1,2:n-1,U,Vx,Vy,A) - updateU(2:m-1,2:n-1,U,Vx,Vy,B) - end -end - -for t in [Float32,Float64] - m = 200 - n = 200 - A = fill(convert(t,0.2),m,n) - B = fill(convert(t,0.25),m,n) - U = rand(t,m,n) .- convert(t,.5) - Vx = zeros(t,m,n) - Vy = zeros(t,m,n) - bits = 8*sizeof(t) - @timeit(flog_fdtd(10,U,Vx,Vy,A,B),"seismic_fdtd_$bits","2D finite-difference seismic simulation for $t", "SIMD") -end diff --git a/test/perf/simd/sum_reduce.jl b/test/perf/simd/sum_reduce.jl deleted file mode 100644 index b6bf05dbebc543..00000000000000 --- a/test/perf/simd/sum_reduce.jl +++ /dev/null @@ -1,25 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function sum_reduce(x, istart, iend) - s = zero(eltype(x)) - @simd for i = istart:iend - @inbounds s += x[i] - end - s -end - -function flog_sum_reduce( m, x ) - s = zero(eltype(x)) - for j=1:m - # Try different starting and ending indices. - sum_reduce(x,j,length(x)-(j-1)) - end - s -end - -for t in [Float32,Float64] - n = 1000 - x = rand(t,n) - bits = 8*sizeof(t) - @timeit(flog_sum_reduce(100,x), "sum_reduction_$bits", "SIMD sum reduction over array of type $t", "SIMD") -end diff --git a/test/perf/sort/perf.jl b/test/perf/sort/perf.jl deleted file mode 100644 index 515d6b50252627..00000000000000 --- a/test/perf/sort/perf.jl +++ /dev/null @@ -1,99 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -import Base.Sort: QuickSort, MergeSort, InsertionSort -import Pkg - -Pkg.add("SortingAlgorithms") -using SortingAlgorithms #Provides the other sorting algorithms - -include("../perfutil.jl") - -sorts = [InsertionSort, QuickSort, MergeSort, HeapSort, RadixSort, TimSort] - -randstr_fn!(str_len::Int) = d -> (for i = 1:length(d); d[i] = randstring(str_len); end; d) -randint_fn!(m::Int) = d -> rand!(d, 1:m) - -# If we're reporting to codespeed, only do a few tests. -if codespeed - for (T, typename, randfn!) in [(Int, string(Int), randint_fn!(10)), - (AbstractString, "String_10", randstr_fn!(10))] - for size in [2^6,2^16] - for s in sorts - if s == InsertionSort && size != 2^6; continue; end - data = Vector{T}(uninitialized, size) - GC.gc() - - ## Random - name = "$(typename)_$(size)_$(string(s)[1:end-5])_random" - desc = "$(string(s)) run on $(size) $(typename) elements in random order" - @timeit_init(sort!(data, alg=s), randfn!(data), name, "") - - name = "$(typename)_$(size)_$(string(s)[1:end-5])_append" - desc = "$(string(s)) run on $(size) $(typename) elements pre-sorted 10 random elements appended" - @timeit_init(sort!(data, alg=s), begin data[end-9:end]=randfn!(Vector{T}(uninitialized, 10)) end, name, "") - end - end - end -else - for (T, typename, randfn!) in [(Int, string(Int), randint_fn!(10)), - (Float64, string(Float64), rand!), - (AbstractString, "String_05", randstr_fn!(5)), - (AbstractString, "String_10", randstr_fn!(10))] - for logsize = 6:2:18 - size = 2^logsize - for s in sorts - if s == RadixSort && T == AbstractString continue end #Radix sort not implemented - if s == InsertionSort && logsize >=14 continue end #Too slow - println(s, s==RadixSort, s, typename, typename==AbstractString, logsize) - data = Vector{T}(uninitialized, size) - GC.gc() - - ## Random - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_random" - @timeit_init(sort!(data, alg=s), randfn!(data), name, "") - - ## Sorted - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_sorted" - @timeit(sort!(data, alg=s), name, "") - - ## Reverse sorted - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_reversed" - @timeit_init(sort!(data, alg=s), reverse!(data), name, "") - - ## Sorted with 3 exchanges - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_3exchanges" - @timeit_init(sort!(data, alg=s), - begin - for i = 1:3 - n1 = rand(1:size) - n2 = rand(1:size) - data[n1], data[n2] = data[n2], data[n1] - end - end, - name, "") - - ## Sorted with 10 unsorted values appended - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_append" - @timeit_init(sort!(data, alg=s), begin data[end-9:end]=randfn!(Vector{T}(uninitialized, 10)) end, name, "") - - ## Random data with 4 unique values - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_4unique" - @timeit_init(sort!(data4, alg=s), begin data4=data[rand(1:4,size)] end, name, "") - - ## All values equal - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_allequal" - data1 = data[fill(1, size)] - @timeit(sort!(data1, alg=s), name, "") - - ## QuickSort median killer - if s == QuickSort && logsize > 16; continue; end # too slow! - - name = "$(typename)_$(logsize)_$(string(s)[1:end-5])_qsortkiller" - data = data[1:size>>1] - data = sort!(data, alg=s) - data = vcat(reverse(data), data) - @timeit_init(sort!(qdata, alg=s), begin qdata=copy(data) end, name, "") - end - end - end -end diff --git a/test/perf/sparse/fem.jl b/test/perf/sparse/fem.jl deleted file mode 100644 index e43c4eeb0321b6..00000000000000 --- a/test/perf/sparse/fem.jl +++ /dev/null @@ -1,49 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -## FEM benchmark from https://github.com/JuliaLang/julia/issues/9668 - -# assemble the finite-difference laplacian -function fdlaplacian(N) - # create a 1D laplacian and a sparse identity - fdl1 = sparse(SymTridiagonal(fill(-2., N), fill(1., N-1))) - # laplace operator on the full grid - return kron(sparse(1.0I, N, N), fdl1) + kron(fdl1, sparse(1.0I, N, N)) -end - -# get the list of boundary dof-indices -function get_free(N) - L = zeros(Int, N, N) - L[2:N-1, 2:N-1] = 1 - return findall(L) -end - -# timing of assembly, slice and solve -function run_fem(N) - Ifree = get_free(N) - # assembly - A = fdlaplacian(N) - # boundary condition - B = A[Ifree, Ifree] - # solver - lufact(B) -end - -function fem_perf() - # run tests once to compile - run_fem(10) - - # run - @timeit run_fem(256) "finite_elements" "" - - # runs the tests - #NN = 2.^(3:8) - #TT = zeros(3, length(NN)) - #@printf("(All times are seconds)\n") - #@printf(" N | assembly | slice | lufact | slice / N^4 \n") - #@printf("---------|------------|-----------|-----------|-------------\n") - #for n = 1:length(NN) - # t1, t2, t3 = timings(NN[n]) - # @printf(" %4.1e | %4.2e | %4.2e | %4.2e | %4.2e \n", - # NN[n], t1, t2, t3, t2 / NN[n]^4) - #end -end diff --git a/test/perf/sparse/fem.m b/test/perf/sparse/fem.m deleted file mode 100644 index 1eccb1dd06a55c..00000000000000 --- a/test/perf/sparse/fem.m +++ /dev/null @@ -1,44 +0,0 @@ -function fem() - - % run tests once to compile - run_fem(10); - - % runs the tests - NN = 2.^[3:8]; - TT = zeros(3, length(NN)); - fprintf(1, '(All times are seconds)\n') - fprintf(1, ' N | assembly | slice | lufact | slice / N^4 \n') - fprintf(1, '---------|------------|-----------|-----------|-------------\n') - for n = 1:length(NN) - [t1, t2, t3] = run_fem(NN(n)); - fprintf(1, ' %4.1e | %4.2e | %4.2e | %4.2e | %4.2e \n', ... - NN(n), t1, t2, t3, t2 / NN(n)^4); - end - -end - -% assemble the finite-difference laplacian -function F = fdlaplacian(N) - % create a 1D laplacian and a sparse identity - fdl1 = spdiags([ones(N,1) -2*ones(N,1) ones(N,1)], [-1,0,1], N, N); - % laplace operator on the full grid - F = kron(speye(N), fdl1) + kron(fdl1, speye(N)); -end - -% get the list of boundary dof-indices -function f = get_free(N) - L = zeros(N, N); - L(2:N-1, 2:N-1) = 1; - f = find(L); -end - -% timing of assembly, slice and solve -function [t1,t2,t3] = run_fem(N) - Ifree = get_free(N); - % timing for assembly - tic; A = fdlaplacian(N); t1 = toc; - % timing for the boundary condition - tic; B = A(Ifree, Ifree); t2 = toc; - % timing for the solver - tic; [l,u,p,q,r] = lu(B); t3 = toc; -end diff --git a/test/perf/sparse/getindex.jl b/test/perf/sparse/getindex.jl deleted file mode 100644 index 64595ea50dbdfd..00000000000000 --- a/test/perf/sparse/getindex.jl +++ /dev/null @@ -1,202 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -## getindex -const rep = 20 -const reps = rep^2 - -function sparse_getindex_perf() - ## create some sparse matrices (need to be square): - seed = 1 - srand(seed) - - small = 10^3 - med = 10^4 - large = 10^5 - huge = 10^6 - # # 1 entry per line - # ss = [] - # push!(ss, sprand(small, small, 1e-3)) - # #push!(ss, sprand(med, med, 1e-4)) - # push!(ss, sprand(large, large, 1e-5)) - - # 10 entries per line - ts = [] - push!(ts, sprand(small, small, 1e-2)) - #push!(ts, sprand(med, med, 1e-3)) - push!(ts, sprand(large, large, 1e-4)) - - # 100 entries per line - us = [] - push!(us, sprand(small, small, 1e-1)) - #push!(us, sprand(med, med, 1e-2)) - push!(us, sprand(large, large, 1e-3)) - #push!(us, sprand(huge, huge, 1e-4)) - - # # 1000 entries per line - # vs = [] - # push!(vs, sprand(small, small, 1.0)) - # #push!(vs, sprand(med, med, 1e-1)) - # push!(vs, sprand(large, large, 1e-2)) - # #push!(vs, sprand(huge, huge, 1e-3)) - - ## using uint32 (works up to 10^9) - uus = [] - for u in us - push!(uus, SparseMatrixCSC(u.m, u.n, map(UInt32,u.colptr), map(UInt32,u.rowval), u.nzval)) - end - - # test performance with matrices in us, uus and ts for - # - integer indexing - # - range indexing - # - ordered array indexing - # - disordered array indexing - # - 1d indexing with integers and booleans - - # setup: - # - indices - intinds = nothing - logicalinds = nothing # needs to be generated for a specific matrix size. - rangeinds = 121:237 - orderedinds = Vector(rangeinds) - disorderedinds = orderedinds[randperm(length(orderedinds))] - - inds = [(intinds, "integers"), (logicalinds, "logical array"), (rangeinds, "a range"), - (orderedinds, "a ordered array"), (disorderedinds, "a disordered array")] - - # - matrix sizes - sizes = [(1, "small", "Small sparse matrix"), (2, "medium", "Medium sparse matrix")] - - # - matrix types - mattyp = [(ts, "10 entries/column"), (us, "100 entries/column"), (uus, "100 entries/column uint32")] - - # - functions - funs = [(integer_indexing, 1, "indexing"), (one_arg_indexing, 1, "1d indexing"), - (row_indexing, 2, "indexing rows"), (col_indexing, 2, "indexing columns"), - (row_col_indexing, 3, "indexing rows & columns")] - - # performance tests: - counters = [1,1] # for small and medium matrix - # integer indexing - for (sz,s1,s2) in sizes # size of the matrix - for (mt, ms) in mattyp # type of the matrix - m = mt[sz] - c = counters[sz] - @timeit integer_indexing(m) "sparse_getindex_$s1$c" "$s2 with $ms, indexing with integers" - counters[sz] += 1 - end - end - - # range & array indexing - for (sz,s1,s2) in sizes # size of the matrix - for (mt, ms) in mattyp # type of the matrix - m = mt[sz] - for (fun, nargs, funstr) in funs[3:5] # indexing test function - for (ind,indstr) in inds[3:5] # type of indices - c = counters[sz] - if indstr=="logical array" - # make a logical array of the right size - ind = sprand(Bool, size(m,1)..., 1e-5) - end - if nargs==2 - @timeit fun(m, ind) "sparse_getindex_$s1$c" "Sparse matrix with $ms, $funstr with $indstr" - elseif nargs==3 - @timeit fun(m, ind, ind) "sparse_getindex_$s1$c" "Sparse matrix with $ms, $funstr with $indstr" - else - error("Something is amiss here.") - end - counters[sz] += 1 - end - end - end - end - - # linear indexing - for (sz,s1,s2) in sizes # size of the matrix - for (mt, ms) in mattyp # type of the matrix - m = mt[sz] - for (ind,indstr) in inds[2:5] # type of indices - if indstr=="logical array" - if sz==2 - continue # logical indexing with medium size sparse matrix takes too long - end - # make a logical array of the right size - ind = sprand(Bool, size(m)..., 1e-5) - c = counters[sz] - @timeit one_arg_indexing(m, ind) "sparse_getindex_$s1$c" "$s2 with $ms, linear indexing with $indstr" - counters[sz] += 1 - else - c = counters[sz] - @timeit one_arg_indexing(m, ind) "sparse_getindex_$s1$c" "$s2 with $ms, linear indexing with $indstr" - counters[sz] += 1 - end - end - end - end - -end - -function integer_indexing(A) - # index with two random integers - nI, nJ = size(A) - rI = 1:nI - rJ = 1:nJ - tmp = zero(eltype(A)) - for i in rand(rI, reps) - for j in rand(rJ, rep) - tmp += A[i,j] - end - end - tmp -end - -function row_indexing(A, rowinds) - # index rows with rowinds and columns with a random integer - nI, nJ = size(A) - rI = 1:nI - rJ = 1:nJ - tmp = zero(eltype(A)) - for j in rand(rJ, reps) - tmp += sum(A[rowinds,j]) - end - tmp -end - -function col_indexing(A, colinds) - # index rows with a random integer and columns with colinds - nI, nJ = size(A) - rI = 1:nI - rJ = 1:nJ - tmp = zero(eltype(A)) - for i in rand(rI, div(reps,10) ) - tmp += sum(A[i,colinds]) - end - tmp -end - -function row_col_indexing(A, rowinds, colinds) - # index rows with rowinds and columns with colinds - # we need: - (maximum(rowinds)+rep < size(A,1) && maximum(colinds)+rep < size(A, 2)) || error("bad rowinds or colinds") - nI, nJ = size(A) - rI = 1:nI - rJ = 1:nJ - for i in 1:10 - for j in 1:10 - tmp2 = A[rowinds.+i, colinds.+j] - end - end -end - -function one_arg_indexing(A, lininds) - # This is for 1d-indexing and indexing with one array of logicals. - # Both return a nx1 sparse matrix. - tmp = zero(eltype(A)) - if isa(eltype(A), Bool) - tmp = sum(A[lininds]) - else - for i in 1:rep - tmp += sum(A[lininds]) - end - end - tmp -end diff --git a/test/perf/sparse/getindex_skinny.jl b/test/perf/sparse/getindex_skinny.jl deleted file mode 100644 index 94d48cdc55ce68..00000000000000 --- a/test/perf/sparse/getindex_skinny.jl +++ /dev/null @@ -1,37 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Test getindex for skinny sparse matrix -function sparse_getindex_skinny_perf() - seed = 1 - srand(seed) - - # matsize = (size(A,1), nnz(A)) - matsize = [ - (2^12,1 ), - (2^12,2^6), - (2^18,1 ), - (2^18,2^9)] - # indsize = (length(I), number of repetitions) - indsize = [ - (1, 2^12), - (2^8, 2^8 ), - (2^16,2^4 )] - - c = 0 # counter - for (m,nz) in matsize - A = sprand(m,1,nz/m) - for (n,p) in indsize - c += 1 - I = rand(1:m,n) - @timeit indexing(A,I,p) "sparse_getindex_skinny$c" "" - end - end -end - -function indexing(A,I,p) - J = [1] - for k = 1:p - A[I,J] - end - nothing -end diff --git a/test/perf/sparse/perf.jl b/test/perf/sparse/perf.jl deleted file mode 100644 index 6fd0bba1c370bb..00000000000000 --- a/test/perf/sparse/perf.jl +++ /dev/null @@ -1,13 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -## Sparse matrix performance -include("../perfutil.jl") - -include("getindex.jl") -sparse_getindex_perf() - -include("getindex_skinny.jl") -sparse_getindex_skinny_perf() - -include("fem.jl") -fem_perf() diff --git a/test/perf/spell/perf.jl b/test/perf/spell/perf.jl deleted file mode 100644 index 8fa1e8426f32b4..00000000000000 --- a/test/perf/spell/perf.jl +++ /dev/null @@ -1,161 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Peter Norvig's Spelling Corrector -# based off of the python implementation at http://norvig.com/spell-correct.html - -# I've attempted to keep this close to the python version, although in some cases -# the python version is tighter because of some syntax that is not available in julia -# (e.g., guards in comprehensions). -# -# The python version, at the time of original submission, is also 5-6x faster than -# the julia version. -# -# @kmsquire, 2013-11-29 -# - -include("../perfutil.jl") - -words(text) = eachmatch(r"[a-z]+", lowercase(text)) - -function train(features) - model = Dict{AbstractString, Int}() - for f in features - model[f.match] = 2 - end - return model -end - -if !isfile("big.txt") - download("http://norvig.com/big.txt", "big.txt") -end -const NWORDS = train(words(read("big.txt", String))) - -const alphabet = "abcdefghijklmnopqrstuvwxyz" - -function edits1(word::AbstractString) - splits = [(word[1:i], word[i+1:end]) for i=0:length(word) ] - deletes = ["$a$(b[2:end])" for (a,b) in splits[1:end-1]] - transposes = ["$a$(b[2])$(b[1])$(b[3:end])" for (a,b) in splits[1:end-2]] - replaces = ["$a$c$(b[2:end])" for (a,b) in splits[1:end-1], c in alphabet] - inserts = ["$a$c$b" for (a,b) in splits, c in alphabet] - return Set([deletes; transposes; replaces[:]; inserts[:]]) -end - -function known_edits2(word::AbstractString) - xs = Set{AbstractString}() - for e1 in edits1(word) - for e2 in edits1(e1) - haskey(NWORDS, e2) && push!(xs, e2) - end - end - xs -end - -function known(words) - xs = Set{AbstractString}() - for word in words - haskey(NWORDS, word) && push!(xs, word) - end - xs -end - -function correct(word::AbstractString) - candidates = known([word]) - length(candidates) == 0 && (candidates = known(edits1(word))) - length(candidates) == 0 && (candidates = known_edits2(word) ) - length(candidates) == 0 && (candidates = Set([word]) ) - - maximum(x->(get(NWORDS, x, 0),x), candidates)[2] -end - -################ Testing code from here on ################ - -function spelltest(tests; bias=0, verbose=false) - n, bad, unknown, start = 0, 0, 0, time_ns() - if bias > 0 - for target in keys(tests) - NWORDS[target] = get(NWORDS, target, 1) + bias - end - end - for (target,wrongs) in tests - for wrong in split(wrongs) - n += 1 - w = correct(wrong) - if w!=target - bad += 1 - unknown += !(target in keys(NWORDS)) - if verbose - @printf("correct(%s) => %s (%d); expected %s (%d)\n", - wrong, w, NWORDS[w], target, NWORDS[target]) - end - end - end - end - - return Dict("bad"=>bad, "n"=>n, "bias"=>bias, "pct"=>round(Int, 100. - 100. * bad/n), - "unknown"=>unknown, "secs"=>(time_ns() - start)/1e9) -end - -const tests1 = Dict("access"=> "acess", "accessing"=> "accesing", "accommodation"=> -"accomodation acommodation acomodation", "account"=> "acount", "address"=> -"adress adres", "addressable"=> "addresable", "arranged"=> "aranged arrainged", -"arrangeing"=> "aranging", "arrangement"=> "arragment", "articles"=> "articals", -"aunt"=> "annt anut arnt", "auxiliary"=> "auxillary", "available"=> "avaible", -"awful"=> "awfall afful", "basically"=> "basicaly", "beginning"=> "begining", -"benefit"=> "benifit", "benefits"=> "benifits", "between"=> "beetween", "bicycle"=> -"bicycal bycicle bycycle", "biscuits"=> -"biscits biscutes biscuts bisquits buiscits buiscuts", "built"=> "biult", -"cake"=> "cak", "career"=> "carrer", -"cemetery"=> "cemetary semetary", "centrally"=> "centraly", "certain"=> "cirtain", -"challenges"=> "chalenges chalenges", "chapter"=> "chaper chaphter chaptur", -"choice"=> "choise", "choosing"=> "chosing", "clerical"=> "clearical", -"committee"=> "comittee", "compare"=> "compair", "completely"=> "completly", -"consider"=> "concider", "considerable"=> "conciderable", "contented"=> -"contenpted contende contended contentid", "curtains"=> -"cartains certans courtens cuaritains curtans curtians curtions", "decide"=> "descide", "decided"=> -"descided", "definitely"=> "definately difinately", "definition"=> "defenition", -"definitions"=> "defenitions", "description"=> "discription", "desiccate"=> -"desicate dessicate dessiccate", "diagrammatically"=> "diagrammaticaally", -"different"=> "diffrent", "driven"=> "dirven", "ecstasy"=> "exstacy ecstacy", -"embarrass"=> "embaras embarass", "establishing"=> "astablishing establising", -"experience"=> "experance experiance", "experiences"=> "experances", "extended"=> -"extented", "extremely"=> "extreamly", "fails"=> "failes", "families"=> "familes", -"february"=> "febuary", "further"=> "futher", "gallery"=> "galery gallary gallerry gallrey", -"hierarchal"=> "hierachial", "hierarchy"=> "hierchy", "inconvenient"=> -"inconvienient inconvient inconvinient", "independent"=> "independant independant", -"initial"=> "intial", "initials"=> "inetials inistals initails initals intials", -"juice"=> "guic juce jucie juise juse", "latest"=> "lates latets latiest latist", -"laugh"=> "lagh lauf laught lugh", "level"=> "leval", -"levels"=> "levals", "liaison"=> "liaision liason", "lieu"=> "liew", "literature"=> -"litriture", "loans"=> "lones", "locally"=> "localy", "magnificent"=> -"magnificnet magificent magnifcent magnifecent magnifiscant magnifisent magnificant", -"management"=> "managment", "meant"=> "ment", "minuscule"=> "miniscule", -"minutes"=> "muinets", "monitoring"=> "monitering", "necessary"=> -"neccesary necesary neccesary necassary necassery neccasary", "occurrence"=> -"occurence occurence", "often"=> "ofen offen offten ofton", "opposite"=> -"opisite oppasite oppesite oppisit oppisite opposit oppossite oppossitte", "parallel"=> -"paralel paralell parrallel parralell parrallell", "particular"=> "particulaur", -"perhaps"=> "perhapse", "personnel"=> "personnell", "planned"=> "planed", "poem"=> -"poame", "poems"=> "poims pomes", "poetry"=> "poartry poertry poetre poety powetry", -"position"=> "possition", "possible"=> "possable", "pretend"=> -"pertend protend prtend pritend", "problem"=> "problam proble promblem proplen", -"pronunciation"=> "pronounciation", "purple"=> "perple perpul poarple", -"questionnaire"=> "questionaire", "really"=> "realy relley relly", "receipt"=> -"receit receite reciet recipt", "receive"=> "recieve", "refreshment"=> -"reafreshment refreshmant refresment refressmunt", "remember"=> "rember remeber rememmer rermember", -"remind"=> "remine remined", "scarcely"=> "scarcly scarecly scarely scarsely", -"scissors"=> "scisors sissors", "separate"=> "seperate", -"singular"=> "singulaur", "someone"=> "somone", "sources"=> "sorces", "southern"=> -"southen", "special"=> "speaical specail specal speical", "splendid"=> -"spledid splended splened splended", "standardizing"=> "stanerdizing", "stomach"=> -"stomac stomache stomec stumache", "supersede"=> "supercede superceed", "there"=> "ther", -"totally"=> "totaly", "transferred"=> "transfred", "transportability"=> -"transportibility", "triangular"=> "triangulaur", "understand"=> "undersand undistand", -"unexpected"=> "unexpcted unexpeted unexspected", "unfortunately"=> -"unfortunatly", "unique"=> "uneque", "useful"=> "usefull", "valuable"=> "valubale valuble", -"variable"=> "varable", "variant"=> "vairiant", "various"=> "vairious", -"visited"=> "fisited viseted vistid vistied", "visitors"=> "vistors", -"voluntary"=> "volantry", "voting"=> "voteing", "wanted"=> "wantid wonted", -"whether"=> "wether", "wrote"=> "rote wote") - -@timeit(spelltest(tests1), "spell", "Peter Norvig's spell corrector") diff --git a/test/perf/threads/laplace3d/README b/test/perf/threads/laplace3d/README deleted file mode 100644 index 67553fc52ecaea..00000000000000 --- a/test/perf/threads/laplace3d/README +++ /dev/null @@ -1,14 +0,0 @@ -Laplace 3D - -This is a simple 7 point stencil on a 3D grid. It is bandwidth-bound. -The C version gets 60 GB/s on a 2 socket SNB-EP. The code doesn't -handle corner cases at the grid edges, so each dimension must be 4n+2 -for SSE or 8n+2 for AVX. - -E.g.: - -$ ./laplace3d 258 258 258 1000 avx 0 - -The Matlab/Octave versions are enough slower than the C and Julia -versions that they use only 1/10 the iterations. - diff --git a/test/perf/threads/laplace3d/laplace3d.c b/test/perf/threads/laplace3d/laplace3d.c deleted file mode 100644 index 99f83fcfff5b1f..00000000000000 --- a/test/perf/threads/laplace3d/laplace3d.c +++ /dev/null @@ -1,371 +0,0 @@ -// This file is a part of Julia. License is MIT: https://julialang.org/license - -// GCC command line: gcc -fopenmp -mavx2 laplace3d.c -o laplace3d - -/* Laplace 3D - - orig: simple serial version - naive: simple parallelized version - auto: some ninja knowledge, using icc directives - sse/avx: ninja-optimized - - Requires Sandy Bridge and up. - - Note that the SSE/AVX versions do not handle boundary conditions - and thus each dimension must be 4n+2/8n+2. Try 258x258x258. - - 2014.08.06 anand.deshpande Initial code. - 2014.08.06 dhiraj.kalamkar Padding and streaming stores. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(__i386__) -static inline uint64_t rdtsc(void) -{ - uint64_t x; - __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); - return x; -} -#elif defined(__x86_64__) -static inline uint64_t rdtsc(void) -{ - unsigned hi, lo; - __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi)); - return ((uint64_t)lo) | (((uint64_t)hi) << 32); -} -#elif defined(_COMPILER_MICROSOFT_) -#include -static inline uint64_t rdtsc(void) -{ - return __rdtsc(); -} -#endif - -void l3d_naive(int nx, int padded_nx, int ny, int nz, float *u1, float *u2); -void l3d_auto(int nx, int padded_nx, int ny, int nz, float *u1, float *u2); -void l3d_sse(int nx, int padded_nx, int ny, int nz, float *u1, float *u2); -void l3d_avx(int nx, int padded_nx, int ny, int nz, float *u1, float *u2); -void l3d_orig(int nx, int ny, int nz, float *u1, float *u2); - -double cpughz() -{ - uint64_t t0 = rdtsc(); - sleep(1); - uint64_t onesec = rdtsc() - t0; - return onesec*1.0/1e9; -} - -int main(int argc, char **argv) -{ - int nx, padded_nx, ny, nz, iters, i, j, k, ind, p_ind, verify, - nthreads, pad_size; - float *u1, *u1_p, *u1_orig, *u2, *u2_p, *u2_orig, *foo, - error_tol = 0.00001; - double ghz; - void (*l3d)(int nx, int padded_nx, int ny, int nz, - float *u1, float *u2); - - if (argc != 7) { - fprintf(stderr, "Usage:\n" - " laplace3d <#iters> " - "\n"); - exit(-1); - } - - nx = strtol(argv[1], NULL, 10); - ny = strtol(argv[2], NULL, 10); - nz = strtol(argv[3], NULL, 10); - - padded_nx = ((nx + 0x7) & (~0x7)); - iters = strtol(argv[4], NULL, 10); - - if (strncasecmp(argv[5], "naive", 5) == 0) - l3d = l3d_naive; - else if (strncasecmp(argv[5], "auto", 4) == 0) - l3d = l3d_auto; - else if (strncasecmp(argv[5], "sse", 3) == 0) - l3d = l3d_sse; - else if (strncasecmp(argv[5], "avx", 3) == 0) - l3d = l3d_avx; - else { - fprintf(stderr, "don't recognize %s. naive, auto, sse, or avx?\n", - argv[5]); - exit(-1); - } - - verify = strtol(argv[6], NULL, 10); - - ghz = cpughz(); - nthreads = omp_get_max_threads(); - printf("machine speed is %g GHz, using %d threads\n", ghz, nthreads); - - printf("laplace3d: %d iterations on %dx%dx%d grid, " - "verification is %s\n", - iters, nx, ny, nz, verify ? "on" : "off"); - - /* pad for aligned access; non-naive only */ - if (strncasecmp(argv[5], "naive", 5) != 0) { - pad_size = (((1 + padded_nx + padded_nx * ny) + 0xF) & (~0xF)) - - (1 + padded_nx + padded_nx * ny); - printf("using padded_nx = %d, pad_size = %d\n", - padded_nx, pad_size); - - u1_p = (float *)_mm_malloc(sizeof (float) * - (padded_nx * ny * nz + pad_size), 64); - u2_p = (float *)_mm_malloc(sizeof (float) * - (padded_nx * ny * nz + pad_size), 64); - u1 = u1_p + pad_size; - u2 = u2_p + pad_size; - } - else { - u1_p = (float *)_mm_malloc(sizeof (float) * (nx * ny * nz), 64); - u2_p = (float *)_mm_malloc(sizeof (float) * (nx * ny * nz), 64); - u1 = u1_p; - u2 = u2_p; - padded_nx = nx; - } - u1_orig = (float *)_mm_malloc(sizeof (float) * nx * ny * nz, 64); - u2_orig = (float *)_mm_malloc(sizeof (float) * nx * ny * nz, 64); - - // initialize - #pragma omp parallel for private(k,j,i,ind,p_ind) - for (k = 0; k < nz; ++k) { - for (j = 0; j < ny; ++j) { - for (i = 0; i < nx; ++i) { - ind = i + j*nx + k*nx*ny; - p_ind = i + j*padded_nx + k*padded_nx*ny; - - if (i == 0 || i == nx - 1 - || j == 0 || j == ny - 1 - || k == 0 || k == nz - 1) { - // Dirichlet b.c.'s - u1[p_ind] = u1_orig[ind] = u2[p_ind] = 1.0f; - } - else { - u1[p_ind] = u1_orig[ind] = u2[p_ind] = 0.0f; - } - } - } - } - - // run optimized version - uint64_t t0 = rdtsc(); - for (i = 0; i < iters; ++i) { - l3d(nx, padded_nx, ny, nz, u1, u2); - foo = u1; u1 = u2; u2 = foo; - } - uint64_t gold = rdtsc() - t0; - double elapsed = gold / (ghz * 1e9); - - double grid_size = nx * ny * nz; - double gflops = grid_size * iters * 6.0 / 1e9; - double gflops_sec = gflops / elapsed; - - double traffic = grid_size * iters * 4 * 2.0 / 1e9; - double bw_realized = traffic / elapsed; - - printf("laplace3d completed in %.4lf seconds\n", elapsed); - printf("GFLOPs/sec: %.1f\n", gflops_sec); - printf("BW realized: %.1f\n", bw_realized); - - if (verify) { - // run serial version for verification - uint64_t st0 = rdtsc(); - for (i = 0; i < iters; ++i) { - l3d_orig(nx, ny, nz, u1_orig, u2_orig); - foo = u1_orig; u1_orig = u2_orig; u2_orig = foo; - } - uint64_t ser = rdtsc() - st0; - elapsed = ser / (ghz * 1e9); - gflops_sec = gflops / elapsed; - bw_realized = traffic / elapsed; - - printf("laplace3d_orig completed in %.2lf seconds\n", elapsed); - printf("GFLOPs/sec: %.1f\n", gflops_sec); - printf("BW realized: %.1f\n", bw_realized); - - // verify - for (k = 0; k < nz; ++k) { - for (j = 0; j < ny; ++j) { - for (i = 0; i < nx; ++i) { - ind = i + j*nx + k*nx*ny; - p_ind = i + j*padded_nx + k*padded_nx*ny; - - if (fabs(u1[p_ind] - u1_orig[ind]) > error_tol) { - printf("ERROR %f - %f [%d, %d, %d]\n", - u1[p_ind], u1_orig[ind], i, j, k); - goto done; - } - } - } - } - printf("verified, no error\n"); - } - - done: - _mm_free(u1_p); - _mm_free(u2_p); - _mm_free(u1_orig); - _mm_free(u2_orig); - - return 0; -} - -void l3d_naive(int nx, int padded_nx, int ny, int nz, float *u1, float *u2) -{ - int i, j, k, ind; - const float sixth = 1.0f/6.0f; - - /* compute on the grid */ - #pragma omp parallel for private(i,j,k,ind) - for (k = 1; k < nz-1; ++k) { - for (j = 1; j < ny-1; ++j) { - #pragma ivdep - for (i = 1; i < nx-1; ++i) { - ind = i + j*padded_nx + k*padded_nx*ny; - u2[ind] = - ( u1[ind-1 ] + u1[ind+1 ] - + u1[ind-padded_nx ] + u1[ind+padded_nx ] - + u1[ind-padded_nx*ny] + u1[ind+padded_nx*ny] ) * sixth; - } - } - } -} - -void l3d_auto(int nx, int padded_nx, int ny, int nz, float *u1, float *u2) -{ - int i, j, k, ind; - - float sixth = 1.0f/6.0f; - -#if defined(__INTEL_COMPILER) - __assume(padded_nx%8==0); - __assume_aligned(&u1[1],32); - __assume_aligned(&u2[1],32); -#elif defined(__GNUC__) - if (!(padded_nx%8==0)) - __builtin_unreachable(); - // third argument is the misalignment - u1 = __builtin_assume_aligned(u1, 32, sizeof(float)); - u2 = __builtin_assume_aligned(u2, 32, sizeof(float)); -#endif - - /* compute on the grid */ - #pragma omp parallel for private(i,j,k,ind) - for (k = 1; k < nz-1; ++k) { - for (j = 1; j < ny-1; ++j) { - #pragma vector nontemporal(u2) - for (i = 1; i < nx-1; ++i) { - ind = i + j*padded_nx + k*padded_nx*ny; - u2[ind] = - ( u1[ind-1 ] + u1[ind+1 ] - + u1[ind-padded_nx ] + u1[ind+padded_nx ] - + u1[ind-padded_nx*ny] + u1[ind+padded_nx*ny] ) * sixth; - } - } - } -} - -void l3d_sse(int nx, int padded_nx, int ny, int nz, float *u1, float *u2) -{ - int i, j, k, ind; - - float fsixth = 1.0f/6.0f; - __m128 sixth = _mm_set_ps1(fsixth); - - /* compute on the grid */ - #pragma omp parallel for private(i,j,k,ind) - for (k = 1; k < nz-1; ++k) { - for (j = 1; j < ny-1; ++j) { - for (i = 1; i < nx-1; i += 4) { - ind = i + j*padded_nx + k*padded_nx*ny; - - __m128 pSrc1 = _mm_loadu_ps(&u1[ind-1]); - __m128 pSrc2 = _mm_loadu_ps(&u1[ind+1]); - __m128 pSrc3 = _mm_load_ps(&u1[ind-padded_nx]); - __m128 pSrc4 = _mm_load_ps(&u1[ind+padded_nx]); - __m128 pSrc5 = _mm_load_ps(&u1[ind-padded_nx*ny]); - __m128 pSrc6 = _mm_load_ps(&u1[ind+padded_nx*ny]); - - __m128 sum1 = _mm_add_ps(pSrc1, pSrc2); - __m128 sum2 = _mm_add_ps(pSrc3, pSrc4); - __m128 sum3 = _mm_add_ps(pSrc5, pSrc6); - __m128 sum4 = _mm_add_ps(sum1, sum2); - __m128 vsum = _mm_add_ps(sum3, sum4); - - vsum = _mm_mul_ps(vsum, sixth); - - _mm_stream_ps(&u2[ind], vsum); - } - } - } -} - -void l3d_avx(int nx, int padded_nx, int ny, int nz, float *u1, float *u2) -{ - int i, j, k, ind; - - float fsixth = 1.0f/6.0f; - __m256 sixth = _mm256_set1_ps(fsixth); - - /* compute on the grid */ - #pragma omp parallel for private(i,j,k,ind) - for (k = 1; k < nz-1; ++k) { - for (j = 1; j < ny-1; ++j) { - for (i = 1; i < nx-1; i += 8) { - ind = i + j*padded_nx + k*padded_nx*ny; - - __m256 pSrc1 = _mm256_loadu_ps(&u1[ind-1]); - __m256 pSrc2 = _mm256_loadu_ps(&u1[ind+1]); - __m256 pSrc3 = _mm256_load_ps(&u1[ind-padded_nx]); - __m256 pSrc4 = _mm256_load_ps(&u1[ind+padded_nx]); - __m256 pSrc5 = _mm256_load_ps(&u1[ind-padded_nx*ny]); - __m256 pSrc6 = _mm256_load_ps(&u1[ind+padded_nx*ny]); - - __m256 sum1 = _mm256_add_ps(pSrc1, pSrc2); - __m256 sum2 = _mm256_add_ps(pSrc3, pSrc4); - __m256 sum3 = _mm256_add_ps(pSrc5, pSrc6); - __m256 sum4 = _mm256_add_ps(sum1, sum2); - __m256 vsum = _mm256_add_ps(sum3, sum4); - - vsum = _mm256_mul_ps(vsum, sixth); - - _mm256_stream_ps(&u2[ind], vsum); - } - } - } -} - -void l3d_orig(int nx, int ny, int nz, float *u1, float *u2) -{ - int i, j, k, ind; - const float sixth = 1.0f/6.0f; - - for (k = 0; k < nz; ++k) { - for (j = 0; j < ny; ++j) { - for (i = 0; i < nx; ++i) { - ind = i + j*nx + k*nx*ny; - - if (i == 0 || i == nx - 1 - || j == 0 || j == ny - 1 - || k == 0 || k == nz - 1) { - u2[ind] = u1[ind]; // Dirichlet b.c.'s - } - else { - u2[ind] = ( u1[ind-1 ] + u1[ind+1 ] - + u1[ind-nx ] + u1[ind+nx ] - + u1[ind-nx*ny] + u1[ind+nx*ny] ) * sixth; - } - } - } - } -} diff --git a/test/perf/threads/laplace3d/laplace3d.jl b/test/perf/threads/laplace3d/laplace3d.jl deleted file mode 100644 index 7bf7164c4de6d7..00000000000000 --- a/test/perf/threads/laplace3d/laplace3d.jl +++ /dev/null @@ -1,135 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -## 3D Laplace equation - -using Base.Cartesian -using Base.Threads - -const sixth = 1.0f0/6.0f0 -const error_tol = 0.00001 - -function stencil3d(u::Array{Float32,3}, k_1::Int64, k_2::Int64, k_3::Int64) - return (u[k_1-1, k_2, k_3 ] + u[k_1+1, k_2, k_3] + - u[k_1, k_2-1, k_3 ] + u[k_1, k_2+1, k_3] + - u[k_1, k_2, k_3-1] + u[k_1, k_2, k_3+1]) * sixth -end - -function l3d_orig(u1::Array{Float32,3}, u3::Array{Float32,3}, - nx::Int64, ny::Int64, nz::Int64) - @nloops 3 k u1 begin - if @nany 3 d->(k_d == 1 || k_d == size(u1, d)) - @inbounds (@nref 3 u3 k) = (@nref 3 u1 k) - else - @inbounds (@nref 3 u3 k) = stencil3d(u1, k_1, k_2, k_3) - end - end -end - -## @threads 'call' form -function l3d_threadfun(u1, u3, nx, ny, nz) - tid = threadid() - tnz, rem = divrem(nz-2, nthreads()) - z_start = 2 + ((tid-1) * tnz) - z_end = z_start + tnz - 1 - if tid <= rem - z_start = z_start + tid - 1 - z_end = z_end + tid - else - z_start = z_start + rem - z_end = z_end + rem - end - - for k_3 = z_start:z_end - for k_2 = 2:ny-1 - @simd for k_1 = 2:nx-1 - @inbounds u3[k_1, k_2, k_3] = stencil3d(u1, k_1, k_2, k_3) - end - end - end -end - -#= @threads 'block' form no longer supported -function l3d_threadblock(u1, u3, nx, ny, nz) - @threads all begin - tid = threadid() - tnz, rem = divrem(nz-2, nthreads()) - z_start = 2 + ((tid-1) * tnz) - z_end = z_start + tnz - 1 - if tid <= rem - z_start = z_start + tid - 1 - z_end = z_end + tid - else - z_start = z_start + rem - z_end = z_end + rem - end - - for k_3 = z_start:z_end - for k_2 = 2:ny-1 - @simd for k_1 = 2:nx-1 - @inbounds u3[k_1, k_2, k_3] = stencil3d(u1, k_1, k_2, k_3) - end - end - end - end -end -=# - -## @threads 'for' form -function l3d_threadfor(u1, u3, nx, ny, nz) - @threads for k_3=2:nz-1 - for k_2 = 2:ny-1 - @simd for k_1 = 2:nx-1 - @inbounds u3[k_1, k_2, k_3] = stencil3d(u1, k_1, k_2, k_3) - end - end - end -end - -## initialize and run -function laplace3d(nx=290, ny=290, nz=290; iters=1000, verify=false) - u1 = Array{Float32}(uninitialized, nx, ny, nz) - u3 = Array{Float32}(uninitialized, nx, ny, nz) - @nloops 3 k u1 begin - if @nany 3 d->(k_d == 1 || k_d == size(u1, d)) - (@nref 3 u3 k) = (@nref 3 u1 k) = 1.0 - else - (@nref 3 u1 k) = 0.0 - end - end - @time for n in 1:iters - l3d_threadfor(u1, u3, nx, ny, nz) - # @threads all l3d_threadfun(u1, u3, nx, ny, nz) - # l3d_threadblock(u1, u3, nx, ny, nz) - # ccall(:jl_threading_run, Cvoid, (Any, Any), l3d_threadfun, (u1, u3, nx, ny, nz)) - foo = u1 - u1 = u3 - u3 = foo - end - if verify - u1_orig = Array{Float32}(uninitialized, nx, ny, nz) - u3_orig = Array{Float32}(uninitialized, nx, ny, nz) - @nloops 3 k u1_orig begin - if @nany 3 d->(k_d == 1 || k_d == size(u1_orig, d)) - (@nref 3 u3_orig k) = (@nref 3 u1_orig k) = 1.0 - else - (@nref 3 u1_orig k) = 0.0 - end - end - @time for n in 1:iters - l3d_orig(u1_orig, u3_orig, nx, ny, nz) - foo = u1_orig - u1_orig = u3_orig - u3_orig = foo - end - @nloops 3 k u1 begin - if abs((@nref 3 u1 k) - (@nref 3 u1_orig k)) > error_tol - error(@sprintf("Verify error: %f - %f [%d, %d, %d]\n", - (@nref 3 u1 k), (@nref 3 u1_orig k), k_1, k_2, k_3)) - end - end - println("verification succeeded") - end -end - -@time laplace3d() -#ccall(:jl_threading_profile, Cvoid, ()) diff --git a/test/perf/threads/laplace3d/laplace3d_devec.m b/test/perf/threads/laplace3d/laplace3d_devec.m deleted file mode 100644 index 38473d9f04025e..00000000000000 --- a/test/perf/threads/laplace3d/laplace3d_devec.m +++ /dev/null @@ -1,38 +0,0 @@ -% 3D Laplace equation solver - -nx = 290; -ny = 290; -nz = 290; -iters = 100; -sixth = 1.0/6.0; - -u1 = zeros(nx, ny, nz); -u2 = zeros(nx, ny, nz); - -for k3 = 1:nz - for k2 = 1:ny - for k1 = 1:nx - if k1==1 || k1==nx || k2==1 || k2==ny || k3==1 || k3==nz - u1(k1,k2,k3) = 1.0; - u2(k1,k2,k3) = 1.0; - end - end - end -end - -tic -for n = 1:iters - for k3 = 2:nz-1 - for k2 = 2:ny-1 - for k1 = 2:nx-1 - s = (u1(k1-1,k2,k3) + u1(k1+1,k2,k3) + u1(k1,k2-1,k3) + u1(k1,k2+1,k3) + u1(k1,k2,k3-1) + u1(k1,k2,k3+1)) * sixth; - u2(k1,k2,k3) = s; - end - end - end - foo = u1; - u1 = u2; - u2 = foo; -end -toc - diff --git a/test/perf/threads/laplace3d/laplace3d_vec.m b/test/perf/threads/laplace3d/laplace3d_vec.m deleted file mode 100644 index 43767dc3527747..00000000000000 --- a/test/perf/threads/laplace3d/laplace3d_vec.m +++ /dev/null @@ -1,34 +0,0 @@ -% 3D Laplace equation solver - -nx = 290; -ny = 290; -nz = 290; -iters = 100; -sixth = 1.0/6.0; - -u1 = zeros(nx, ny, nz); -u2 = zeros(nx, ny, nx); - -%Boundary conditions -u1(1,:,:) = 1.0; -u1(nx,:,:) = 1.0; -u1(:,1,:) = 1.0; -u1(:,ny,:) = 1.0; -u1(:,:,1) = 1.0; -u1(:,:,nz) = 1.0; -u2 = u1; - -i = 2:nx-1; -j = 2:ny-1; -k = 2:nz-1; - -%Main -tic -for n = 1:iters - u2(i,j,k) = (u1(i-1,j,k) + u1(i+1,j,k) + u1(i,j-1,k) + u1(i,j+1,k) + u1(i,j,k-1) + u1(i,j,k+1))*sixth; - foo = u1; - u1 = u2; - u2 = foo; -end -toc - diff --git a/test/perf/threads/lbm3d/README b/test/perf/threads/lbm3d/README deleted file mode 100644 index c7ce696941bade..00000000000000 --- a/test/perf/threads/lbm3d/README +++ /dev/null @@ -1,9 +0,0 @@ -3D Lattice Boltzmann (BGK) model of a fluid (http://exolete.com/lbm/) - -The Matlab/Octave version is from the website. The Julia version is -rewritten in devectorized form with threading directives applied to -the parallelizable code. - -The circshift! implementation needs work to support arbitrary -dimensioned grids. - diff --git a/test/perf/threads/lbm3d/circshift.jl b/test/perf/threads/lbm3d/circshift.jl deleted file mode 100644 index 144ba82754c467..00000000000000 --- a/test/perf/threads/lbm3d/circshift.jl +++ /dev/null @@ -1,110 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# An in-place version of circshift. Needs generalization -- currently -# works only on a 3D hyperplane of a 4D array and supports only unit -# shifts. Code needs refactoring to reduce duplication. - -using Match - -# a is the 4D array; index specifies which 3D hyperplane; vec -# specifies the shifts (only 1 and -1) -function circshift3d1!(a,index,vec) - nx = size(a,1) - ny = size(a,2) - nz = size(a,3) - for i = 1 : length(vec) - @match vec[i] begin - 1 => shift1!(a,nx,ny,nz,index,i) - -1 => shiftm1!(a,nx,ny,nz,index,i) - end - end -end - -function shift1!(a,nx,ny,nz,index,i) - @match i begin - 1 => shifti!(a,nx,ny,nz,index) - 2 => shiftj!(a,nx,ny,nz,index) - 3 => shiftk!(a,nx,ny,nz,index) - end -end - -function shiftm1!(a,nx,ny,nz,index,i) - @match i begin - 1 => shiftmi!(a,nx,ny,nz,index) - 2 => shiftmj!(a,nx,ny,nz,index) - 3 => shiftmk!(a,nx,ny,nz,index) - end -end - -function shifti!(a,nx,ny,nz,index) - for k = 1:nz - for j = 1:ny - t = a[end,j,k,index] - for i = nx-1:-1:1 - a[i+1,j,k,index] = a[i,j,k,index] - end - a[1,j,k,index] = t - end - end -end - -function shiftj!(a,nx,ny,nz,index) - for i = 1:nx - for k = 1:nz - t = a[i,end,k,index] - for j = ny-1:-1:1 - a[i,j+1,k,index] = a[i,j,k,index] - end - a[i,1,k,index] = t - end - end -end - -function shiftk!(a,nx,ny,nz,index) - for i = 1:nx - for j = 1:ny - t = a[i,j,end,index] - for k = nz-1:-1:1 - a[i,j,k+1,index] = a[i,j,k,index] - end - a[i,j,1,index] = t - end - end -end - -function shiftmi!(a,nx,ny,nz,index) - for k = 1:nz - for j = 1:ny - t = a[1,j,k,index] - for i = 1:nx-1 - a[i,j,k,index] = a[i+1,j,k,index] - end - a[end,j,k,index] = t - end - end -end - -function shiftmj!(a,nx,ny,nz,index) - for k = 1:nz - for i = 1:nx - t = a[i,1,k,index] - for j = 1:ny-1 - a[i,j,k,index] = a[i,j+1,k,index] - end - a[i,end,k,index] = t - end - end -end - -function shiftmk!(a,nx,ny,nz,index) - for i = 1:nx - for j = 1:ny - t = a[i,j,1,index] - for k = 1:nz-1 - a[i,j,k,index] = a[i,j,k+1,index] - end - a[i,j,end,index] = t - end - end -end - diff --git a/test/perf/threads/lbm3d/lbm3d.jl b/test/perf/threads/lbm3d/lbm3d.jl deleted file mode 100644 index 0dd6059d1bd04c..00000000000000 --- a/test/perf/threads/lbm3d/lbm3d.jl +++ /dev/null @@ -1,219 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# 3D Lattice Boltzmann (BGK) model of a fluid. -# (http://exolete.com/lbm/) -# D3Q19 model. At each timestep, particle densities propagate -# outwards in the directions indicated in the figure. An -# equivalent 'equilibrium' density is found, and the densities -# relax towards that state, in a proportion governed by omega. -# Iain Haslam, March 2006. -# -# Julia version: devectorized and threaded. The in-place -# circshift implementation is needed because of issue #10317. -# Despite that, GC time is ~22% of runtime. relax! and -# calc_equi! are broken out because of issue #10718. The -# threaded call form is used and the for loop form is is -# commented out in both because of issue #10527. - -#using PyPlot -using Base.Threads - -include("circshift.jl") - -const t1 = 1/3 -const t2 = 1/18 -const t3 = 1/36 - -const prop_shifts = tuple([ 0 0 1], [ 0 0 -1], [ 0 1 0], - [ 0 -1 0], [ 1 0 0], [-1 0 0], - [ 1 1 0], [ 1 -1 0], [-1 1 0], - [-1 -1 0], [ 1 0 1], [ 1 0 -1], - [-1 0 1], [-1 0 -1], [ 0 1 1], - [ 0 1 -1], [ 0 -1 1], [ 0 -1 -1]); - -const fourths = tuple([ 6, 8, 9,12,13], [ 7,10,11,14,15], - [ 4, 8,10,16,17], [ 5, 9,11,18,19], - [ 2,12,14,16,18], [ 3,13,15,17,19]) - - -function relax!(F, UX, UY, UZ, nx, ny, nz, deltaU, t1D, t2D, t3D, sSQU, chunkid, nchunk) - outerrange = Base.splitrange(nx, nchunk) - for i = outerrange[chunkid] - #@threads all for i = 1:nx - for j = 1:ny - for k = 1:nz - density = 0.0 - for l = 1:size(F,4) - density = density + F[i,j,k,l] - end - fs = Vector{Float64}(uninitialized, 6) - for l = 1:6 - fs[l] = 0.0 - for m = 1:5 - fs[l] = fs[l] + F[i,j,k,fourths[l][m]] - end - end - UX[i,j,k] = (fs[1] - fs[2]) / density - UY[i,j,k] = (fs[3] - fs[4]) / density - UZ[i,j,k] = (fs[5] - fs[6]) / density - - if i == 1 - UX[i,j,k] = UX[i,j,k] + deltaU # Increase inlet pressure - end - - t1D[i,j,k] = t1 * density - t2D[i,j,k] = t2 * density - t3D[i,j,k] = t3 * density - sSQU[i,j,k] = 3/2 * (UX[i,j,k]^2 + UY[i,j,k]^2 + UZ[i,j,k]^2) - end - end - end -end - - -function calc_equi!(F, FEQ, t1D, t2D, t3D, U, UX, UY, UZ, sSQU, nx, ny, nz, omega, chunkid, nchunk) - outerrange = Base.splitrange(nx, nchunk) - for i = outerrange[chunkid] - #@threads all for i = 1:nx - #tid = threadid() - for j = 1:ny - for k = 1:nz - - FEQ[i,j,k,1] = t1D[i,j,k,1] * (1 - sSQU[i,j,k,1]) - - # nearest neighbors - FEQ[i,j,k,2] = t2D[i,j,k,1] * (1 + 3*UZ[i,j,k,1] + 9/2*UZ[i,j,k,1]^2 - sSQU[i,j,k,1]) - FEQ[i,j,k,3] = t2D[i,j,k,1] * (1 - 3*UZ[i,j,k,1] + 9/2*UZ[i,j,k,1]^2 - sSQU[i,j,k,1]) - FEQ[i,j,k,4] = t2D[i,j,k,1] * (1 + 3*UY[i,j,k,1] + 9/2*UY[i,j,k,1]^2 - sSQU[i,j,k,1]) - FEQ[i,j,k,5] = t2D[i,j,k,1] * (1 - 3*UY[i,j,k,1] + 9/2*UY[i,j,k,1]^2 - sSQU[i,j,k,1]) - FEQ[i,j,k,6] = t2D[i,j,k,1] * (1 + 3*UX[i,j,k,1] + 9/2*UX[i,j,k,1]^2 - sSQU[i,j,k,1]) - FEQ[i,j,k,7] = t2D[i,j,k,1] * (1 - 3*UX[i,j,k,1] + 9/2*UX[i,j,k,1]^2 - sSQU[i,j,k,1]) - - U[1,chunkid] = UX[i,j,k,1] + UY[i,j,k,1] - U[2,chunkid] = UX[i,j,k,1] - UY[i,j,k,1] - U[3,chunkid] = -UX[i,j,k,1] + UY[i,j,k,1] - U[4,chunkid] = -U[1,chunkid] - U[5,chunkid] = UX[i,j,k,1] + UZ[i,j,k,1] - U[6,chunkid] = UX[i,j,k,1] - UZ[i,j,k,1] - U[7,chunkid] = -U[6,chunkid] - U[8,chunkid] = -U[5,chunkid] - U[9,chunkid] = UY[i,j,k,1] + UZ[i,j,k,1] - U[10,chunkid] = UY[i,j,k,1] - UZ[i,j,k,1] - U[11,chunkid] = -U[10,chunkid] - U[12,chunkid] = -U[9,chunkid] - - # next-nearest neighbors - for l = 1:12 - FEQ[i,j,k,l+7] = t3D[i,j,k,1] * (1 + 3*U[l,chunkid] + 9/2*(U[l,chunkid]^2) - sSQU[i,j,k,1]) - end - - for l = 1:19 - F[i,j,k,l] = omega * FEQ[i,j,k,l] + (1 - omega) * F[i,j,k,l] - end - - end - end - end -end - -precompile(calc_equi!, (Array{Float64,4}, Array{Float64,4}, Array{Float64,3}, Array{Float64,3}, Array{Float64,3}, Array{Float64,2}, Array{Float64,3}, Array{Float64,3}, Array{Float64,3}, Array{Float64,3}, Int64, Int64, Int64, Float64)) - -function lbm3d(n) - nx = n - ny = nx - nz = nx - omega = 1.0 - density = 1.0 - - # Implementation note: setting nchunk to nthreads() is a hack - # to simulate the previous implementation's use of parallel regions. - nchunk = nthreads() - - tprop = 0 - trelax = 0 - tequi = 0 - - F = repeat([density/19], outer=[nx, ny, nz, 19]) - FEQ = F - matsize = nx*ny*nz - - CI = [0:matsize:matsize*19;]' - - BOUND = Array{Float64}(uninitialized, nx,ny,nz) - - for i=1:nx, j=1:ny, k=1:nz - BOUND[i,j,k] = ((i-5)^2 + (j-6)^2 + (k-7)^2) < 6 - end - - BOUND[:,:,1] = 1 - BOUND[:,1,:] = 1 - - ON = findall(BOUND); # matrix offset of each Occupied Node - - TO_REFLECT = [ON+CI[2] ON+CI[3] ON+CI[4] ON+CI[5] ON+CI[6] ON+CI[7] ON+CI[8] ON+CI[9] ON+CI[10] ON+CI[11] ON+CI[12] ON+CI[13] ON+CI[14] ON+CI[15] ON+CI[16] ON+CI[17] ON+CI[18] ON+CI[19]] - REFLECTED = [ON+CI[3] ON+CI[2] ON+CI[5] ON+CI[4] ON+CI[7] ON+CI[6] ON+CI[11] ON+CI[10] ON+CI[9] ON+CI[8] ON+CI[15] ON+CI[14] ON+CI[13] ON+CI[12] ON+CI[19] ON+CI[18] ON+CI[17] ON+CI[16]] - - UX = Array{Float64}(uninitialized, nx,ny,nz) - UY = Array{Float64}(uninitialized, nx,ny,nz) - UZ = Array{Float64}(uninitialized, nx,ny,nz) - U = Array{Float64}(uninitialized, 12,nchunk) - t1D = Array{Float64}(uninitialized, nx,ny,nz) - t2D = Array{Float64}(uninitialized, nx,ny,nz) - t3D = Array{Float64}(uninitialized, nx,ny,nz) - sSQU = Array{Float64}(uninitialized, nx,ny,nz) - - avu = 1 - prevavu = 1 - ts = 0 - deltaU = 1e-7 - numactivenodes = sum(1-BOUND) - - @time while (ts < 4000 && (1e-10 < abs((prevavu-avu)/avu))) || ts < 100 - tprop += @elapsed begin - # Propagate -- nearest and next-nearest neighbors - for i = 2:19 - circshift3d1!(F, i, prop_shifts[i-1]) - end - end - - # Densities bouncing back at next timestep - BOUNCEDBACK = F[TO_REFLECT] - - trelax += @elapsed begin - # Relax; calculate equilibrium state (FEQ) with equivalent speed and density to F - @threads for chunk=1:nchunk - relax!(F, UX, UY, UZ, nx, ny, nz, deltaU, t1D, t2D, t3D, sSQU, chunkid, nchunk) - end - for o in ON - UX[o] = UY[o] = UZ[o] = t1D[o] = t2D[o] = t3D[o] = sSQU[o] = 0.0 - end - end - - tequi += @elapsed begin - # Calculate equilibrium distribution: stationary - @threads for chunk=1:nchunk - calc_equi!(F, FEQ, t1D, t2D, t3D, U, UX, UY, UZ, sSQU, nx, ny, nz, omega) - end - end - - F[REFLECTED] = BOUNCEDBACK - - prevavu = avu - avu = sum(UX) / numactivenodes - ts = ts + 1 - #println(avu) - end - - println("ts: $(ts)") - println("propagation time: $tprop") - println("relaxation time: $trelax") - println("equilibrium time: $tequi") - - #zcut=5 - #quiver(UY[:,:,zcut], UX[:,:,zcut]) - #xlabel("y"); ylabel("x") - #title("Flow field at z = $(zcut)), after $(ts)") -end - -@time lbm3d(36) -#ccall(:jl_threading_profile, Cvoid, ()) diff --git a/test/perf/threads/lbm3d/lbm3d.m b/test/perf/threads/lbm3d/lbm3d.m deleted file mode 100644 index c7c7d9f228a9b3..00000000000000 --- a/test/perf/threads/lbm3d/lbm3d.m +++ /dev/null @@ -1,93 +0,0 @@ -% 3D Lattice Boltzmann (BGK) model of a fluid. -% -% From http://exolete.com/lbm/, reproduced here with the author's -% permission. -% -% D3Q19 model. At each timestep, particle densities propagate -% outwards in the directions indicated in the figure. An -% equivalent 'equilibrium' density is found, and the densities -% relax towards that state, in a proportion governed by omega. -% Iain Haslam, March 2006. -nx=36;ny=nx;nz=nx; omega=1.0; density=1.0;t1=1/3; t2=1/18; t3=1/36; -F=repmat(density/19,[nx ny nz 19]); FEQ=F; matsize=nx*ny*nz; -CI=[0:matsize:matsize*19]; -BOUND=zeros(nx,ny,nz); -for i=1:nx, for j=1:ny, for k=1:nz - BOUND(i,j,k)=((i-5)^2+(j-6)^2+(k-7)^2)<6; -end, end, end -BOUND(:,:,1)=1;BOUND(:,1,:)=1; -ON=find(BOUND); %matrix offset of each Occupied Node -TO_REFLECT=[ON+CI(2) ON+CI(3) ON+CI(4) ON+CI(5) ON+CI(6) ON+CI(7) ON+CI(8) ... - ON+CI(9) ON+CI(10) ON+CI(11) ON+CI(12) ON+CI(13) ON+CI(14) ON+CI(15) ... - ON+CI(16) ON+CI(17) ON+CI(18) ON+CI(19)]; -REFLECTED=[ON+CI(3) ON+CI(2) ON+CI(5) ON+CI(4) ON+CI(7) ON+CI(6) ON+CI(11) ... - ON+CI(10) ON+CI(9) ON+CI(8) ON+CI(15) ON+CI(14) ON+CI(13) ON+CI(12) ... - ON+CI(19) ON+CI(18) ON+CI(17) ON+CI(16)]; -avu=1; prevavu=1; ts=0; deltaU=1e-7; numactivenodes=sum(sum(sum(1-BOUND))); -tic; -while (ts<4000 & 1e-10true, :displaysize=>(24, 80))) + replrepr(x) = repr("text/plain", x; context=IOContext(stdout, :limit=>true, :displaysize=>(24, 80))) @test replrepr(1:4) == "1:4" @test repr("text/plain", 1:4) == "1:4" @test repr("text/plain", range(1, stop=5, length=7)) == "1.0:0.6666666666666666:5.0" diff --git a/test/read.jl b/test/read.jl index c71bd58d904c37..a88308d9570875 100644 --- a/test/read.jl +++ b/test/read.jl @@ -1,7 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -using DelimitedFiles -using Random +using DelimitedFiles, Random, Sockets mktempdir() do dir @@ -400,17 +399,17 @@ end test_read_nbyte() -# DevNull -@test !isreadable(DevNull) -@test iswritable(DevNull) -@test isopen(DevNull) -@test write(DevNull, 0xff) === 1 -@test write(DevNull, Int32(1234)) === 4 -@test_throws EOFError read(DevNull, UInt8) -@test close(DevNull) === nothing -@test flush(DevNull) === nothing -@test eof(DevNull) -@test print(DevNull, "go to /dev/null") === nothing +# devnull +@test !isreadable(devnull) +@test iswritable(devnull) +@test isopen(devnull) +@test write(devnull, 0xff) === 1 +@test write(devnull, Int32(1234)) === 4 +@test_throws EOFError read(devnull, UInt8) +@test close(devnull) === nothing +@test flush(devnull) === nothing +@test eof(devnull) +@test print(devnull, "go to /dev/null") === nothing let s = "qwerty" diff --git a/test/reduce.jl b/test/reduce.jl index e5071f2745d1da..ed5734dc879b2a 100644 --- a/test/reduce.jl +++ b/test/reduce.jl @@ -222,9 +222,9 @@ A = circshift(reshape(1:24,2,3,4), (0,1,1)) @test extrema(A,(1,3)) == reshape([(5,24),(1,20),(3,22)],1,3,1) @test extrema(A,(2,3)) == reshape([(1,23),(2,24)],2,1,1) @test extrema(A,(1,2,3)) == reshape([(1,24)],1,1,1) -@test size(extrema(A,1)) == size(maximum(A,1)) -@test size(extrema(A,(1,2))) == size(maximum(A,(1,2))) -@test size(extrema(A,(1,2,3))) == size(maximum(A,(1,2,3))) +@test size(extrema(A,1)) == size(maximum(A,dims=1)) +@test size(extrema(A,(1,2))) == size(maximum(A,dims=(1,2))) +@test size(extrema(A,(1,2,3))) == size(maximum(A,dims=(1,2,3))) # any & all diff --git a/test/reducedim.jl b/test/reducedim.jl index 53435f454d464a..e50a66ae222014 100644 --- a/test/reducedim.jl +++ b/test/reducedim.jl @@ -51,14 +51,14 @@ for region in Any[ fill!(r, -1.5) @test minimum!(abs, r, Areduc, init=false) ≈ fill!(r2, -1.5) - @test sum(Areduc, region) ≈ safe_sum(Areduc, region) - @test prod(Areduc, region) ≈ safe_prod(Areduc, region) - @test maximum(Areduc, region) ≈ safe_maximum(Areduc, region) - @test minimum(Areduc, region) ≈ safe_minimum(Areduc, region) - @test sum(abs, Areduc, region) ≈ safe_sumabs(Areduc, region) - @test sum(abs2, Areduc, region) ≈ safe_sumabs2(Areduc, region) - @test maximum(abs, Areduc, region) ≈ safe_maxabs(Areduc, region) - @test minimum(abs, Areduc, region) ≈ safe_minabs(Areduc, region) + @test sum(Areduc, dims=region) ≈ safe_sum(Areduc, region) + @test prod(Areduc, dims=region) ≈ safe_prod(Areduc, region) + @test maximum(Areduc, dims=region) ≈ safe_maximum(Areduc, region) + @test minimum(Areduc, dims=region) ≈ safe_minimum(Areduc, region) + @test sum(abs, Areduc, dims=region) ≈ safe_sumabs(Areduc, region) + @test sum(abs2, Areduc, dims=region) ≈ safe_sumabs2(Areduc, region) + @test maximum(abs, Areduc, dims=region) ≈ safe_maxabs(Areduc, region) + @test minimum(abs, Areduc, dims=region) ≈ safe_minabs(Areduc, region) end # Test reduction along first dimension; this is special-cased for @@ -68,9 +68,9 @@ r = fill(NaN, map(length, Base.reduced_indices(axes(Breduc), 1))) @test sum!(r, Breduc) ≈ safe_sum(Breduc, 1) @test sum!(abs, r, Breduc) ≈ safe_sumabs(Breduc, 1) @test sum!(abs2, r, Breduc) ≈ safe_sumabs2(Breduc, 1) -@test sum(Breduc, 1) ≈ safe_sum(Breduc, 1) -@test sum(abs, Breduc, 1) ≈ safe_sumabs(Breduc, 1) -@test sum(abs2, Breduc, 1) ≈ safe_sumabs2(Breduc, 1) +@test sum(Breduc, dims=1) ≈ safe_sum(Breduc, 1) +@test sum(abs, Breduc, dims=1) ≈ safe_sumabs(Breduc, 1) +@test sum(abs2, Breduc, dims=1) ≈ safe_sumabs2(Breduc, 1) fill!(r, 4.2) @test sum!(r, Breduc, init=false) ≈ safe_sum(Breduc, 1) .+ 4.2 @@ -91,37 +91,35 @@ let R = [2] @test prod!(R, A, init=false) == [1440] # min/max - @test reducedim(max, A, 1) == [3 6] - @test reducedim(min, A, 2) == reshape([1,2,3], 3, 1) + @test reduce(max, A, dims=1) == [3 6] + @test reduce(min, A, dims=2) == reshape([1,2,3], 3, 1) end # Small integers -@test @inferred(sum(Int8[1], 1)) == [1] -@test @inferred(sum(UInt8[1], 1)) == [1] +@test @inferred(sum(Int8[1], dims=1)) == [1] +@test @inferred(sum(UInt8[1], dims=1)) == [1] # Complex types -@test typeof(@inferred(sum([1.0+1.0im], 1))) == Vector{ComplexF64} -@test typeof(@inferred(Base.sum(abs, [1.0+1.0im], 1))) == Vector{Float64} -@test typeof(@inferred(Base.sum(abs2, [1.0+1.0im], 1))) == Vector{Float64} -@test typeof(@inferred(prod([1.0+1.0im], 1))) == Vector{ComplexF64} -@test typeof(@inferred(Base.prod(abs, [1.0+1.0im], 1))) == Vector{Float64} -@test typeof(@inferred(Base.prod(abs2, [1.0+1.0im], 1))) == Vector{Float64} +@test typeof(@inferred(sum([1.0+1.0im], dims=1))) == Vector{ComplexF64} +@test typeof(@inferred(Base.sum(abs, [1.0+1.0im], dims=1))) == Vector{Float64} +@test typeof(@inferred(Base.sum(abs2, [1.0+1.0im], dims=1))) == Vector{Float64} +@test typeof(@inferred(prod([1.0+1.0im], dims=1))) == Vector{ComplexF64} +@test typeof(@inferred(Base.prod(abs, [1.0+1.0im], dims=1))) == Vector{Float64} +@test typeof(@inferred(Base.prod(abs2, [1.0+1.0im], dims=1))) == Vector{Float64} # Heterogeneously typed arrays -@test sum(Union{Float32, Float64}[1.0], 1) == [1.0] -@test prod(Union{Float32, Float64}[1.0], 1) == [1.0] +@test sum(Union{Float32, Float64}[1.0], dims=1) == [1.0] +@test prod(Union{Float32, Float64}[1.0], dims=1) == [1.0] -@test reducedim((a,b) -> a|b, [true false; false false], 1, false) == [true false] -let R = reducedim((a,b) -> a+b, [1 2; 3 4], 2, 0.0) +@test reduce((a,b) -> a|b, false, [true false; false false], dims=1) == [true false] +let R = reduce((a,b) -> a+b, 0.0, [1 2; 3 4], dims=2) @test eltype(R) == Float64 @test R ≈ [3,7] end -@test reducedim((a,b) -> a+b, [1 2; 3 4], 1, 0) == [4 6] +@test reduce((a,b) -> a+b, 0, [1 2; 3 4], dims=1) == [4 6] # inferred return types -let rt = Base.return_types(reducedim, Tuple{Function, Array{Float64, 3}, Int, Float64}) - @test length(rt) == 1 && rt[1] == Array{Float64, 3} -end +@test typeof(@inferred(reduce(+, 0.0, ones(3,3,3), dims=1))) == Array{Float64, 3} @testset "empty cases" begin A = Matrix{Int}(uninitialized, 0,1) @@ -131,30 +129,30 @@ end @test_throws ArgumentError maximum(A) @test var(A) === NaN - @test isequal(sum(A, 1), zeros(Int, 1, 1)) - @test isequal(sum(A, 2), zeros(Int, 0, 1)) - @test isequal(sum(A, (1, 2)), zeros(Int, 1, 1)) - @test isequal(sum(A, 3), zeros(Int, 0, 1)) - @test isequal(prod(A, 1), fill(1, 1, 1)) - @test isequal(prod(A, 2), fill(1, 0, 1)) - @test isequal(prod(A, (1, 2)), fill(1, 1, 1)) - @test isequal(prod(A, 3), fill(1, 0, 1)) - @test isequal(var(A, 1), fill(NaN, 1, 1)) - @test isequal(var(A, 2), fill(NaN, 0, 1)) - @test isequal(var(A, (1, 2)), fill(NaN, 1, 1)) - @test isequal(var(A, 3), fill(NaN, 0, 1)) + @test isequal(sum(A, dims=1), zeros(Int, 1, 1)) + @test isequal(sum(A, dims=2), zeros(Int, 0, 1)) + @test isequal(sum(A, dims=(1, 2)), zeros(Int, 1, 1)) + @test isequal(sum(A, dims=3), zeros(Int, 0, 1)) + @test isequal(prod(A, dims=1), fill(1, 1, 1)) + @test isequal(prod(A, dims=2), fill(1, 0, 1)) + @test isequal(prod(A, dims=(1, 2)), fill(1, 1, 1)) + @test isequal(prod(A, dims=3), fill(1, 0, 1)) + @test isequal(var(A, dims=1), fill(NaN, 1, 1)) + @test isequal(var(A, dims=2), fill(NaN, 0, 1)) + @test isequal(var(A, dims=(1, 2)), fill(NaN, 1, 1)) + @test isequal(var(A, dims=3), fill(NaN, 0, 1)) for f in (minimum, maximum) - @test_throws ArgumentError f(A, 1) - @test isequal(f(A, 2), zeros(Int, 0, 1)) - @test_throws ArgumentError f(A, (1, 2)) - @test isequal(f(A, 3), zeros(Int, 0, 1)) + @test_throws ArgumentError f(A, dims=1) + @test isequal(f(A, dims=2), zeros(Int, 0, 1)) + @test_throws ArgumentError f(A, dims=(1, 2)) + @test isequal(f(A, dims=3), zeros(Int, 0, 1)) end for f in (findmin, findmax) - @test_throws ArgumentError f(A, 1) - @test isequal(f(A, 2), (zeros(Int, 0, 1), zeros(Int, 0, 1))) - @test_throws ArgumentError f(A, (1, 2)) - @test isequal(f(A, 3), (zeros(Int, 0, 1), zeros(Int, 0, 1))) + @test_throws ArgumentError f(A, dims=1) + @test isequal(f(A, dims=2), (zeros(Int, 0, 1), zeros(Int, 0, 1))) + @test_throws ArgumentError f(A, dims=(1, 2)) + @test isequal(f(A, dims=3), (zeros(Int, 0, 1), zeros(Int, 0, 1))) end end @@ -165,9 +163,9 @@ A = [1.0 5.0 6.0; for (tup, rval, rind) in [((1,), [1.0 2.0 4.0], [CartesianIndex(1,1) CartesianIndex(2,2) CartesianIndex(2,3)]), ((2,), reshape([1.0,2.0], 2, 1), reshape([CartesianIndex(1,1),CartesianIndex(2,2)], 2, 1)), ((1,2), fill(1.0,1,1),fill(CartesianIndex(1,1),1,1))] - @test findmin(A, tup) == (rval, rind) + @test findmin(A, dims=tup) == (rval, rind) @test findmin!(similar(rval), similar(rind), A) == (rval, rind) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end @@ -175,9 +173,9 @@ end for (tup, rval, rind) in [((1,), [5.0 5.0 6.0], [CartesianIndex(2,1) CartesianIndex(1,2) CartesianIndex(1,3)]), ((2,), reshape([6.0,5.0], 2, 1), reshape([CartesianIndex(1,3),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(6.0,1,1),fill(CartesianIndex(1,3),1,1))] - @test findmax(A, tup) == (rval, rind) + @test findmax(A, dims=tup) == (rval, rind) @test findmax!(similar(rval), similar(rind), A) == (rval, rind) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end @@ -189,9 +187,9 @@ A = [1.0 3.0 6.0; for (tup, rval, rind) in [((1,), [NaN 2.0 4.0], [CartesianIndex(2,1) CartesianIndex(2,2) CartesianIndex(2,3)]), ((2,), reshape([1.0, NaN], 2, 1), reshape([CartesianIndex(1,1),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(NaN,1,1),fill(CartesianIndex(2,1),1,1))] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) @test isequal(Base.reducedim!(min, copy(rval), A), rval) @@ -200,9 +198,9 @@ end for (tup, rval, rind) in [((1,), [NaN 3.0 6.0], [CartesianIndex(2,1) CartesianIndex(1,2) CartesianIndex(1,3)]), ((2,), reshape([6.0, NaN], 2, 1), reshape([CartesianIndex(1,3),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(NaN,1,1),fill(CartesianIndex(2,1),1,1))] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) @test isequal(Base.reducedim!(max, copy(rval), A), rval) @@ -213,9 +211,9 @@ A = [1.0 NaN 6.0; for (tup, rval, rind) in [((1,), [NaN NaN 4.0], [CartesianIndex(2,1) CartesianIndex(1,2) CartesianIndex(2,3)]), ((2,), reshape([NaN, NaN], 2, 1), reshape([CartesianIndex(1,2),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(NaN,1,1),fill(CartesianIndex(2,1),1,1))] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end @@ -223,9 +221,9 @@ end for (tup, rval, rind) in [((1,), [NaN NaN 6.0], [CartesianIndex(2,1) CartesianIndex(1,2) CartesianIndex(1,3)]), ((2,), reshape([NaN, NaN], 2, 1), reshape([CartesianIndex(1,2),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(NaN,1,1),fill(CartesianIndex(2,1),1,1))] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end @@ -235,9 +233,9 @@ A = [Inf -Inf Inf -Inf; for (tup, rval, rind) in [((1,), [Inf -Inf -Inf -Inf], [CartesianIndex(1,1) CartesianIndex(1,2) CartesianIndex(2,3) CartesianIndex(1,4)]), ((2,), reshape([-Inf -Inf], 2, 1), reshape([CartesianIndex(1,2),CartesianIndex(2,3)], 2, 1)), ((1,2), fill(-Inf,1,1),fill(CartesianIndex(1,2),1,1))] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end @@ -245,104 +243,104 @@ end for (tup, rval, rind) in [((1,), [Inf Inf Inf -Inf], [CartesianIndex(1,1) CartesianIndex(2,2) CartesianIndex(1,3) CartesianIndex(1,4)]), ((2,), reshape([Inf Inf], 2, 1), reshape([CartesianIndex(1,1),CartesianIndex(2,1)], 2, 1)), ((1,2), fill(Inf,1,1),fill(CartesianIndex(1,1),1,1))] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end A = [BigInt(10)] for (tup, rval, rind) in [((2,), [BigInt(10)], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end for (tup, rval, rind) in [((2,), [BigInt(10)], [1])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end A = [BigInt(-10)] for (tup, rval, rind) in [((2,), [BigInt(-10)], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end for (tup, rval, rind) in [((2,), [BigInt(-10)], [1])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end A = [BigInt(10) BigInt(-10)] for (tup, rval, rind) in [((2,), reshape([BigInt(-10)], 1, 1), reshape([CartesianIndex(1,2)], 1, 1))] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end for (tup, rval, rind) in [((2,), reshape([BigInt(10)], 1, 1), reshape([CartesianIndex(1,1)], 1, 1))] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end A = ["a", "b"] for (tup, rval, rind) in [((1,), ["a"], [1])] - @test isequal(findmin(A, tup), (rval, rind)) + @test isequal(findmin(A, dims=tup), (rval, rind)) @test isequal(findmin!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(minimum(A, tup), rval) + @test isequal(minimum(A, dims=tup), rval) @test isequal(minimum!(similar(rval), A), rval) @test isequal(minimum!(copy(rval), A, init=false), rval) end for (tup, rval, rind) in [((1,), ["b"], [2])] - @test isequal(findmax(A, tup), (rval, rind)) + @test isequal(findmax(A, dims=tup), (rval, rind)) @test isequal(findmax!(similar(rval), similar(rind), A), (rval, rind)) - @test isequal(maximum(A, tup), rval) + @test isequal(maximum(A, dims=tup), rval) @test isequal(maximum!(similar(rval), A), rval) @test isequal(maximum!(copy(rval), A, init=false), rval) end # issue #6672 -@test sum(Real[1 2 3; 4 5.3 7.1], 2) == reshape([6, 16.4], 2, 1) -@test std(AbstractFloat[1,2,3], 1) == [1.0] -@test sum(Any[1 2;3 4],1) == [4 6] -@test sum(Vector{Int}[[1,2],[4,3]], 1)[1] == [5,5] +@test sum(Real[1 2 3; 4 5.3 7.1], dims=2) == reshape([6, 16.4], 2, 1) +@test std(AbstractFloat[1,2,3], dims=1) == [1.0] +@test sum(Any[1 2;3 4], dims=1) == [4 6] +@test sum(Vector{Int}[[1,2],[4,3]], dims=1)[1] == [5,5] # issue #10461 Areduc = rand(3, 4, 5, 6) for region in Any[-1, 0, (-1, 2), [0, 1], (1,-2,3), [0 1; 2 3], "hello"] - @test_throws ArgumentError sum(Areduc, region) - @test_throws ArgumentError prod(Areduc, region) - @test_throws ArgumentError maximum(Areduc, region) - @test_throws ArgumentError minimum(Areduc, region) - @test_throws ArgumentError sum(abs, Areduc, region) - @test_throws ArgumentError sum(abs2, Areduc, region) - @test_throws ArgumentError maximum(abs, Areduc, region) - @test_throws ArgumentError minimum(abs, Areduc, region) + @test_throws ArgumentError sum(Areduc, dims=region) + @test_throws ArgumentError prod(Areduc, dims=region) + @test_throws ArgumentError maximum(Areduc, dims=region) + @test_throws ArgumentError minimum(Areduc, dims=region) + @test_throws ArgumentError sum(abs, Areduc, dims=region) + @test_throws ArgumentError sum(abs2, Areduc, dims=region) + @test_throws ArgumentError maximum(abs, Areduc, dims=region) + @test_throws ArgumentError minimum(abs, Areduc, dims=region) end # check type of result @testset "type of sum(::Array{$T}" for T in [UInt8, Int8, Int32, Int64, BigInt] - result = sum(T[1 2 3; 4 5 6; 7 8 9], 2) + result = sum(T[1 2 3; 4 5 6; 7 8 9], dims=2) @test result == hcat([6, 15, 24]) @test eltype(result) === (T <: Base.SmallSigned ? Int : T <: Base.SmallUnsigned ? UInt : diff --git a/test/reflection.jl b/test/reflection.jl index 38efa48b72f57d..dbb544b2e8ac15 100644 --- a/test/reflection.jl +++ b/test/reflection.jl @@ -738,3 +738,12 @@ typeparam(::Type{T}, a::AbstractArray{T}) where T = 2 @test typeparam(Int, rand(Int, 2)) == 2 end + +# issue #26267 +module M26267 +import Test +foo(x) = x +end +@test !(:Test in names(M26267, all=true, imported=false)) +@test :Test in names(M26267, all=true, imported=true) +@test :Test in names(M26267, all=false, imported=true) diff --git a/test/regex.jl b/test/regex.jl index 67bfd8616dcb83..7db1e282907b2b 100644 --- a/test/regex.jl +++ b/test/regex.jl @@ -4,22 +4,21 @@ function collect_eachmatch(re, str; overlap=false) [m.match for m in collect(eachmatch(re, str, overlap = overlap))] end -for f in [matchall, collect_eachmatch] - @test f(r"a?b?", "asbd") == ["a","","b","",""] == f(r"""a?b?""", "asbd") - @test f(r"a?b?", "asbd", overlap=true) == ["a","","b","",""] - @test f(r"\w+", "hello", overlap=true) == ["hello","ello","llo","lo","o"] - @test f(r".\s", "x \u2200 x \u2203 y") == ["x ", "∀ ", "x ", "∃ "] - @test f(r"(\w+)(\s*)", "The dark side of the moon") == - ["The ", "dark ", "side ", "of ", "the ", "moon"] - @test f(r"", "") == [""] - @test f(r"", "", overlap=true) == [""] - @test f(r"aa", "aaaa") == ["aa", "aa"] - @test f(r"aa", "aaaa", overlap=true) == ["aa", "aa", "aa"] - @test f(r"", "aaa") == ["", "", "", ""] - @test f(r"", "aaa", overlap=true) == ["", "", "", ""] - @test f(r"GCG","GCGCG") == ["GCG"] - @test f(r"GCG","GCGCG",overlap=true) == ["GCG","GCG"] -end +@test collect_eachmatch(r"a?b?", "asbd") == ["a","","b","",""] == + collect_eachmatch(r"""a?b?""", "asbd") +@test collect_eachmatch(r"a?b?", "asbd", overlap=true) == ["a","","b","",""] +@test collect_eachmatch(r"\w+", "hello", overlap=true) == ["hello","ello","llo","lo","o"] +@test collect_eachmatch(r".\s", "x \u2200 x \u2203 y") == ["x ", "∀ ", "x ", "∃ "] +@test collect_eachmatch(r"(\w+)(\s*)", "The dark side of the moon") == + ["The ", "dark ", "side ", "of ", "the ", "moon"] +@test collect_eachmatch(r"", "") == [""] +@test collect_eachmatch(r"", "", overlap=true) == [""] +@test collect_eachmatch(r"aa", "aaaa") == ["aa", "aa"] +@test collect_eachmatch(r"aa", "aaaa", overlap=true) == ["aa", "aa", "aa"] +@test collect_eachmatch(r"", "aaa") == ["", "", "", ""] +@test collect_eachmatch(r"", "aaa", overlap=true) == ["", "", "", ""] +@test collect_eachmatch(r"GCG","GCGCG") == ["GCG"] +@test collect_eachmatch(r"GCG","GCGCG",overlap=true) == ["GCG","GCG"] # Issue 8278 target = """71.163.72.113 - - [30/Jul/2014:16:40:55 -0700] "GET emptymind.org/thevacantwall/wp-content/uploads/2013/02/DSC_006421.jpg HTTP/1.1" 200 492513 "http://images.search.yahoo.com/images/view;_ylt=AwrB8py9gdlTGEwADcSjzbkF;_ylu=X3oDMTI2cGZrZTA5BHNlYwNmcC1leHAEc2xrA2V4cARvaWQDNTA3NTRiMzYzY2E5OTEwNjBiMjc2YWJhMjkxMTEzY2MEZ3BvcwM0BGl0A2Jpbmc-?back=http%3A%2F%2Fus.yhs4.search.yahoo.com%2Fyhs%2Fsearch%3Fei%3DUTF-8%26p%3Dapartheid%2Bwall%2Bin%2Bpalestine%26type%3Dgrvydef%26param1%3D1%26param2%3Dsid%253Db01676f9c26355f014f8a9db87545d61%2526b%253DChrome%2526ip%253D71.163.72.113%2526p%253Dgroovorio%2526x%253DAC811262A746D3CD%2526dt%253DS940%2526f%253D7%2526a%253Dgrv_tuto1_14_30%26hsimp%3Dyhs-fullyhosted_003%26hspart%3Dironsource&w=588&h=387&imgurl=occupiedpalestine.files.wordpress.com%2F2012%2F08%2F5-peeking-through-the-wall.jpg%3Fw%3D588%26h%3D387&rurl=http%3A%2F%2Fwww.stopdebezetting.com%2Fwereldpers%2Fcompare-the-berlin-wall-vs-israel-s-apartheid-wall-in-palestine.html&size=49.0KB&name=...+%3Cb%3EApartheid+wall+in+Palestine%3C%2Fb%3E...+%7C+Or+you+go+peeking+through+the+%3Cb%3Ewall%3C%2Fb%3E&p=apartheid+wall+in+palestine&oid=50754b363ca991060b276aba291113cc&fr2=&fr=&tt=...+%3Cb%3EApartheid+wall+in+Palestine%3C%2Fb%3E...+%7C+Or+you+go+peeking+through+the+%3Cb%3Ewall%3C%2Fb%3E&b=0&ni=21&no=4&ts=&tab=organic&sigr=13evdtqdq&sigb=19k7nsjvb&sigi=12o2la1db&sigt=12lia2m0j&sign=12lia2m0j&.crumb=.yUtKgFI6DE&hsimp=yhs-fullyhosted_003&hspart=ironsource" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36""" diff --git a/test/rounding.jl b/test/rounding.jl index 57872c617175de..fe6779e382cc2e 100644 --- a/test/rounding.jl +++ b/test/rounding.jl @@ -312,18 +312,18 @@ end end end @testset "rounding in other bases" begin - @test round(pi,2,2) ≈ 3.25 - @test round(pi,3,2) ≈ 3.125 - @test round(pi,3,5) ≈ 3.144 + @test round(pi, 2, base = 2) ≈ 3.25 + @test round(pi, 3, base = 2) ≈ 3.125 + @test round(pi, 3, base = 5) ≈ 3.144 end @testset "vectorized trunc/round/floor/ceil with digits/base argument" begin a = rand(2, 2, 2) for f in (round, trunc, floor, ceil) @test f.(a[:, 1, 1], 2) == map(x->f(x, 2), a[:, 1, 1]) @test f.(a[:, :, 1], 2) == map(x->f(x, 2), a[:, :, 1]) - @test f.(a, 9, 2) == map(x->f(x, 9, 2), a) - @test f.(a[:, 1, 1], 9, 2) == map(x->f(x, 9, 2), a[:, 1, 1]) - @test f.(a[:, :, 1], 9, 2) == map(x->f(x, 9, 2), a[:, :, 1]) - @test f.(a, 9, 2) == map(x->f(x, 9, 2), a) + @test f.(a, 9, base = 2) == map(x->f(x, 9, base = 2), a) + @test f.(a[:, 1, 1], 9, base = 2) == map(x->f(x, 9, base = 2), a[:, 1, 1]) + @test f.(a[:, :, 1], 9, base = 2) == map(x->f(x, 9, base = 2), a[:, :, 1]) + @test f.(a, 9, base = 2) == map(x->f(x, 9, base = 2), a) end end diff --git a/test/runtests.jl b/test/runtests.jl index 3ab2adb505823a..f4630e82b80b2f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -109,11 +109,11 @@ cd(dirname(@__FILE__)) do local stdin_monitor all_tasks = Task[] try - if isa(STDIN, Base.TTY) + if isa(stdin, Base.TTY) t = current_task() - # Monitor STDIN and kill this task on ^C + # Monitor stdin and kill this task on ^C stdin_monitor = @async begin - term = REPL.Terminals.TTYTerminal("xterm", STDIN, STDOUT, STDERR) + term = REPL.Terminals.TTYTerminal("xterm", stdin, stdout, stderr) try REPL.Terminals.raw!(term, true) while true @@ -194,7 +194,7 @@ cd(dirname(@__FILE__)) do foreach(task->try; schedule(task, InterruptException(); error=true); end, all_tasks) foreach(wait, all_tasks) finally - if isa(STDIN, Base.TTY) + if isa(stdin, Base.TTY) schedule(stdin_monitor, InterruptException(); error=true) end end @@ -243,7 +243,7 @@ cd(dirname(@__FILE__)) do Test.pop_testset() elseif isa(res[2][1], RemoteException) && isa(res[2][1].captured.ex, Test.TestSetException) println("Worker $(res[2][1].pid) failed running test $(res[1]):") - Base.showerror(STDOUT,res[2][1].captured) + Base.showerror(stdout,res[2][1].captured) fake = Test.DefaultTestSet(res[1]) for i in 1:res[2][1].captured.ex.pass Test.record(fake, Test.Pass(:test, nothing, nothing, nothing)) @@ -287,7 +287,7 @@ cd(dirname(@__FILE__)) do println(" \033[31;1mFAILURE\033[0m\n") skipped > 0 && println("$skipped test", skipped > 1 ? "s were" : " was", " skipped due to failure.") - println("The global RNG seed was 0x$(hex(seed)).\n") + println("The global RNG seed was 0x$(string(seed, base = 16)).\n") Test.print_test_errors(o_ts) throw(Test.FallbackTestSetException("Test run finished with errors")) end diff --git a/test/sets.jl b/test/sets.jl index 554cb4c2d03dca..8e1dc64a862693 100644 --- a/test/sets.jl +++ b/test/sets.jl @@ -556,7 +556,7 @@ end @testset "⊆, ⊊, ⊈, ⊇, ⊋, ⊉, <, <=, issetequal" begin a = [1, 2] b = [2, 1, 3] - for C = (Tuple, identity, Set, BitSet) + for C = (Tuple, identity, Set, BitSet, Base.IdSet{Int}) A = C(a) B = C(b) @test A ⊆ B diff --git a/test/show.jl b/test/show.jl index a08c1ddf8c85c1..0ffda8661e1e72 100644 --- a/test/show.jl +++ b/test/show.jl @@ -480,15 +480,15 @@ end @test_repr "Array{<:Real}" @test_repr "Array{>:Real}" -let oldout = STDOUT, olderr = STDERR +let oldout = stdout, olderr = stderr local rdout, wrout, rderr, wrerr, out, err, rd, wr, io try # pr 16917 rdout, wrout = redirect_stdout() - @test wrout === STDOUT + @test wrout === stdout out = @async read(rdout, String) rderr, wrerr = redirect_stderr() - @test wrerr === STDERR + @test wrerr === stderr err = @async read(rderr, String) @test dump(Int64) === nothing if !Sys.iswindows() @@ -496,7 +496,7 @@ let oldout = STDOUT, olderr = STDERR close(wrerr) end - for io in (Core.STDOUT, Core.STDERR) + for io in (Core.stdout, Core.stderr) Core.println(io, "TESTA") println(io, "TESTB") print(io, 'Α', 1) @@ -531,13 +531,13 @@ let filename = tempname() @test chomp(read(filename, String)) == "hello" ret = open(filename, "w") do f redirect_stderr(f) do - println(STDERR, "WARNING: hello") + println(stderr, "WARNING: hello") [2] end end @test ret == [2] - # STDIN is unavailable on the workers. Run test on master. + # stdin is unavailable on the workers. Run test on master. @test contains(read(filename, String), "WARNING: hello") ret = eval(Main, quote remotecall_fetch(1, $filename) do fname @@ -762,11 +762,16 @@ let io = IOBuffer() @test sprint(show, ioc) == "IOContext($(sprint(show, ioc.io)))" end -# PR 17117 -# test print_array -let s = IOBuffer(Vector{UInt8}(), read=true, write=true) +@testset "PR 17117: print_array" begin + s = IOBuffer(Vector{UInt8}(), read=true, write=true) Base.print_array(s, [1, 2, 3]) @test String(resize!(s.data, s.size)) == " 1\n 2\n 3" + close(s) + s2 = IOBuffer(Vector{UInt8}(), read=true, write=true) + z = zeros(0,0,0,0,0,0,0,0) + Base.print_array(s2, z) + @test String(resize!(s2.data, s2.size)) == "" + close(s2) end let repr = sprint(dump, :(x = 1)) @@ -1125,6 +1130,9 @@ end # Issue #25038 A = [0.0, 1.0] @test replstr(view(A, [1], :)) == "1×1 view(::Array{Float64,2}, [1], :) with eltype Float64:\n 0.0" + + # issue #25857 + @test repr([(1,),(1,2),(1,2,3)]) == "Tuple{$Int,Vararg{$Int,N} where N}[(1,), (1, 2), (1, 2, 3)]" end @testset "#14684: `display` should print associative types in full" begin diff --git a/test/spawn.jl b/test/spawn.jl index 231c1ded60aee5..a468df6741de59 100644 --- a/test/spawn.jl +++ b/test/spawn.jl @@ -4,7 +4,7 @@ # Cross Platform tests for spawn. # ################################### -using Random +using Random, Sockets valgrind_off = ccall(:jl_running_on_valgrind, Cint, ()) == 0 @@ -45,7 +45,7 @@ end @test read(`$echocmd hello \| sort`, String) == "hello | sort\n" @test read(pipeline(`$echocmd hello`, sortcmd), String) == "hello\n" -@test length(spawn(pipeline(`$echocmd hello`, sortcmd)).processes) == 2 +@test length(run(pipeline(`$echocmd hello`, sortcmd), wait=false).processes) == 2 out = read(`$echocmd hello` & `$echocmd world`, String) @test contains(out,"world") @@ -55,12 +55,12 @@ out = read(`$echocmd hello` & `$echocmd world`, String) @test (run(`$printfcmd " \033[34m[stdio passthrough ok]\033[0m\n"`); true) # Test for SIGPIPE being treated as normal termination (throws an error if broken) -Sys.isunix() && run(pipeline(yescmd, `head`, DevNull)) +Sys.isunix() && run(pipeline(yescmd, `head`, devnull)) let a, p a = Base.Condition() @schedule begin - p = spawn(pipeline(yescmd,DevNull)) + p = run(pipeline(yescmd,devnull), wait=false) Base.notify(a,p) @test !success(p) end @@ -93,7 +93,7 @@ end @test_broken success(ignorestatus(pipeline(falsecmd, falsecmd))) @test_broken success(ignorestatus(falsecmd & falsecmd)) -# STDIN Redirection +# stdin Redirection let file = tempname() run(pipeline(`$echocmd hello world`, file)) @test read(pipeline(file, catcmd), String) == "hello world\n" @@ -166,7 +166,7 @@ let r, t try wait(r) end - p = spawn(`$sleepcmd 1`); wait(p) + p = run(`$sleepcmd 1`, wait=false); wait(p) @test p.exitcode == 0 return true end @@ -215,26 +215,26 @@ exename = Base.julia_cmd() if valgrind_off # If --trace-children=yes is passed to valgrind, we will get a # valgrind banner here, not "Hello World\n". - @test read(pipeline(`$exename --startup-file=no -e 'println(STDERR,"Hello World")'`, stderr=catcmd), String) == "Hello World\n" + @test read(pipeline(`$exename --startup-file=no -e 'println(stderr,"Hello World")'`, stderr=catcmd), String) == "Hello World\n" out = Pipe() - proc = spawn(pipeline(`$exename --startup-file=no -e 'println(STDERR,"Hello World")'`, stderr = out)) + proc = run(pipeline(`$exename --startup-file=no -e 'println(stderr,"Hello World")'`, stderr = out), wait=false) close(out.in) @test read(out, String) == "Hello World\n" @test success(proc) end # setup_stdio for AbstractPipe -let out = Pipe(), proc = spawn(pipeline(`$echocmd "Hello World"`, stdout=IOContext(out,STDOUT))) +let out = Pipe(), proc = run(pipeline(`$echocmd "Hello World"`, stdout=IOContext(out,stdout)), wait=false) close(out.in) @test read(out, String) == "Hello World\n" @test success(proc) end # issue #5904 -@test run(pipeline(ignorestatus(falsecmd), truecmd)) === nothing +@test run(pipeline(ignorestatus(falsecmd), truecmd)) isa Base.AbstractPipe @testset "redirect_*" begin - let OLD_STDOUT = STDOUT, + let OLD_STDOUT = stdout, fname = tempname(), f = open(fname,"w") @@ -243,7 +243,7 @@ end redirect_stdout(OLD_STDOUT) close(f) @test "Hello World\n" == read(fname, String) - @test OLD_STDOUT === STDOUT + @test OLD_STDOUT === stdout rm(fname) end end @@ -260,7 +260,7 @@ let fname = tempname(), p unsafe_store!(convert(Ptr{Cint}, handle + 2 * sizeof(Ptr{Cvoid})), 15) nothing end - OLD_STDERR = STDERR + OLD_STDERR = stderr redirect_stderr(open($(repr(fname)), "w")) # Usually this would be done by GC. Do it manually, to make the failure # case more reliable. @@ -272,7 +272,7 @@ let fname = tempname(), p import Base.zzzInvalidIdentifier """ try - io = open(pipeline(`$exename --startup-file=no`, stderr=STDERR), "w") + io = open(pipeline(`$exename --startup-file=no`, stderr=stderr), "w") write(io, cmd) close(io) wait(io) @@ -292,7 +292,7 @@ let bad = "bad\0name" end # issue #12829 -let out = Pipe(), echo = `$exename --startup-file=no -e 'print(STDOUT, " 1\t", read(STDIN, String))'`, ready = Condition(), t, infd, outfd +let out = Pipe(), echo = `$exename --startup-file=no -e 'print(stdout, " 1\t", read(stdin, String))'`, ready = Condition(), t, infd, outfd @test_throws ArgumentError write(out, "not open error") t = @async begin # spawn writer task open(echo, "w", out) do in1 @@ -369,7 +369,7 @@ let fname = tempname() else "cmd = pipeline(`echo asdf`, `cat`)" end) - for line in eachline(STDIN) + for line in eachline(stdin) run(cmd) end """ @@ -414,7 +414,7 @@ end @test Base.shell_split("\"\\\\\"") == ["\\"] # issue #13616 -@test_throws ErrorException collect(eachline(pipeline(`$catcmd _doesnt_exist__111_`, stderr=DevNull))) +@test_throws ErrorException collect(eachline(pipeline(`$catcmd _doesnt_exist__111_`, stderr=devnull))) # make sure windows_verbatim strips quotes if Sys.iswindows() @@ -445,11 +445,6 @@ end @test_throws ArgumentError run(Base.AndCmds(``, `$truecmd`)) @test_throws ArgumentError run(Base.AndCmds(`$truecmd`, ``)) -@test_throws ArgumentError spawn(Base.Cmd(``)) -@test_throws ArgumentError spawn(Base.AndCmds(``, ``)) -@test_throws ArgumentError spawn(Base.AndCmds(``, `$echocmd test`)) -@test_throws ArgumentError spawn(Base.AndCmds(`$echocmd test`, ``)) - # tests for reducing over collection of Cmd @test_throws ArgumentError reduce(&, Base.AbstractCmd[]) @test_throws ArgumentError reduce(&, Base.Cmd[]) @@ -504,22 +499,22 @@ end ## Deadlock in spawning a cmd (#22832) # FIXME? -#let stdout = Pipe(), stdin = Pipe() -# Base.link_pipe!(stdout, reader_supports_async=true) -# Base.link_pipe!(stdin, writer_supports_async=true) -# p = spawn(pipeline(catcmd, stdin=stdin, stdout=stdout, stderr=DevNull)) +#let out = Pipe(), inpt = Pipe() +# Base.link_pipe!(out, reader_supports_async=true) +# Base.link_pipe!(inpt, writer_supports_async=true) +# p = run(pipeline(catcmd, stdin=inpt, stdout=out, stderr=devnull), wait=false) # @async begin # feed cat with 2 MB of data (zeros) -# write(stdin, zeros(UInt8, 1048576 * 2)) -# close(stdin) +# write(inpt, zeros(UInt8, 1048576 * 2)) +# close(inpt) # end # sleep(0.5) # give cat a chance to fill the write buffer for stdout -# close(stdout.in) # make sure we can still close the write end -# @test sizeof(readstring(stdout)) == 1048576 * 2 # make sure we get all the data +# close(out.in) # make sure we can still close the write end +# @test sizeof(readstring(out)) == 1048576 * 2 # make sure we get all the data # @test success(p) #end # `kill` error conditions -let p = spawn(`$sleepcmd 100`) +let p = run(`$sleepcmd 100`, wait=false) # Should throw on invalid signals @test_throws Base.UVError kill(p, typemax(Cint)) kill(p) diff --git a/test/statistics.jl b/test/statistics.jl index eb650907806278..3d7f2c846c8f56 100644 --- a/test/statistics.jl +++ b/test/statistics.jl @@ -32,15 +32,15 @@ end @test isnan(median([-Inf,Inf])) X = [2 3 1 -1; 7 4 5 -4] - @test all(median(X, 2) .== [1.5, 4.5]) - @test all(median(X, 1) .== [4.5 3.5 3.0 -2.5]) + @test all(median(X, dims=2) .== [1.5, 4.5]) + @test all(median(X, dims=1) .== [4.5 3.5 3.0 -2.5]) @test X == [2 3 1 -1; 7 4 5 -4] # issue #17153 @test_throws ArgumentError median([]) @test isnan(median([NaN])) @test isnan(median([0.0,NaN])) @test isnan(median([NaN,0.0])) - @test isequal(median([NaN 0.0; 1.2 4.5], 2), reshape([NaN; 2.85], 2, 1)) + @test isequal(median([NaN 0.0; 1.2 4.5], dims=2), reshape([NaN; 2.85], 2, 1)) @test median!([1 2 3 4]) == 2.5 @test median!([1 2; 3 4]) == 2.5 @@ -55,8 +55,8 @@ end @test mean([1.]) === 1. @test mean([1.,3]) == 2. @test mean([1,2,3]) == 2. - @test mean([0 1 2; 4 5 6], 1) == [2. 3. 4.] - @test mean([1 2 3; 4 5 6], 1) == [2.5 3.5 4.5] + @test mean([0 1 2; 4 5 6], dims=1) == [2. 3. 4.] + @test mean([1 2 3; 4 5 6], dims=1) == [2.5 3.5 4.5] @test mean(i->i+1, 0:2) === 2. @test mean(isodd, [3]) === 1. @test mean(x->3x, (1,1)) === 3. @@ -68,7 +68,7 @@ end @test isnan(mean([0.,Inf,-Inf])) @test isnan(mean([1.,-1.,Inf,-Inf])) @test isnan(mean([-Inf,Inf])) - @test isequal(mean([NaN 0.0; 1.2 4.5], 2), reshape([NaN; 2.85], 2, 1)) + @test isequal(mean([NaN 0.0; 1.2 4.5], dims=2), reshape([NaN; 2.85], 2, 1)) # Check that small types are accumulated using wider type for T in (Int8, UInt8) @@ -76,7 +76,7 @@ end g = (v for v in x) @test mean(x) == mean(g) == typemax(T) @test mean(identity, x) == mean(identity, g) == typemax(T) - @test mean(x, 2) == [typemax(T)]' + @test mean(x, dims=2) == [typemax(T)]' end end @@ -93,10 +93,10 @@ end @test isnan(var(Int[]; mean=2)) @test isnan(var(Int[]; mean=2, corrected=false)) # reduction across dimensions - @test isequal(var(Int[], 1), [NaN]) - @test isequal(var(Int[], 1; corrected=false), [NaN]) - @test isequal(var(Int[], 1; mean=[2]), [NaN]) - @test isequal(var(Int[], 1; mean=[2], corrected=false), [NaN]) + @test isequal(var(Int[], dims=1), [NaN]) + @test isequal(var(Int[], dims=1; corrected=false), [NaN]) + @test isequal(var(Int[], dims=1; mean=[2]), [NaN]) + @test isequal(var(Int[], dims=1; mean=[2], corrected=false), [NaN]) # edge case: one-element vector # iterable @@ -110,10 +110,10 @@ end @test var([1]; mean=2) === Inf @test var([1]; mean=2, corrected=false) === 1.0 # reduction across dimensions - @test isequal(@inferred(var([1], 1)), [NaN]) - @test var([1], 1; corrected=false) ≈ [0.0] - @test var([1], 1; mean=[2]) ≈ [Inf] - @test var([1], 1; mean=[2], corrected=false) ≈ [1.0] + @test isequal(@inferred(var([1], dims=1)), [NaN]) + @test var([1], dims=1; corrected=false) ≈ [0.0] + @test var([1], dims=1; mean=[2]) ≈ [Inf] + @test var([1], dims=1; mean=[2], corrected=false) ≈ [1.0] @test var(1:8) == 6. @test varm(1:8,1) == varm(Vector(1:8),1) @@ -146,8 +146,8 @@ end @test var((1,2,3); mean=0, corrected=false) ≈ 14.0/3 @test_throws ArgumentError var((1,2,3); mean=()) - @test var([1 2 3 4 5; 6 7 8 9 10], 2) ≈ [2.5 2.5]' - @test var([1 2 3 4 5; 6 7 8 9 10], 2; corrected=false) ≈ [2.0 2.0]' + @test var([1 2 3 4 5; 6 7 8 9 10], dims=2) ≈ [2.5 2.5]' + @test var([1 2 3 4 5; 6 7 8 9 10], dims=2; corrected=false) ≈ [2.0 2.0]' @test stdm([1,2,3], 2) ≈ 1. @test std([1,2,3]) ≈ 1. @@ -155,14 +155,25 @@ end @test std([1,2,3]; mean=0) ≈ sqrt(7.0) @test std([1,2,3]; mean=0, corrected=false) ≈ sqrt(14.0/3) + @test stdm([1.0,2,3], 2) ≈ 1. + @test std([1.0,2,3]) ≈ 1. + @test std([1.0,2,3]; corrected=false) ≈ sqrt(2.0/3) + @test std([1.0,2,3]; mean=0) ≈ sqrt(7.0) + @test std([1.0,2,3]; mean=0, corrected=false) ≈ sqrt(14.0/3) + + @test std([1.0,2,3]; dims=1)[] ≈ 1. + @test std([1.0,2,3]; dims=1, corrected=false)[] ≈ sqrt(2.0/3) + @test std([1.0,2,3]; dims=1, mean=[0])[] ≈ sqrt(7.0) + @test std([1.0,2,3]; dims=1, mean=[0], corrected=false)[] ≈ sqrt(14.0/3) + @test stdm((1,2,3), 2) ≈ 1. @test std((1,2,3)) ≈ 1. @test std((1,2,3); corrected=false) ≈ sqrt(2.0/3) @test std((1,2,3); mean=0) ≈ sqrt(7.0) @test std((1,2,3); mean=0, corrected=false) ≈ sqrt(14.0/3) - @test std([1 2 3 4 5; 6 7 8 9 10], 2) ≈ sqrt.([2.5 2.5]') - @test std([1 2 3 4 5; 6 7 8 9 10], 2; corrected=false) ≈ sqrt.([2.0 2.0]') + @test std([1 2 3 4 5; 6 7 8 9 10], dims=2) ≈ sqrt.([2.5 2.5]') + @test std([1 2 3 4 5; 6 7 8 9 10], dims=2; corrected=false) ≈ sqrt.([2.0 2.0]') let A = ComplexF64[exp(i*im) for i in 1:10^4] @test varm(A, 0.) ≈ sum(map(abs2, A)) / (length(A) - 1) @@ -170,10 +181,10 @@ end end @test var([1//1, 2//1]) isa Rational{Int} - @test var([1//1, 2//1], 1) isa Vector{Rational{Int}} + @test var([1//1, 2//1], dims=1) isa Vector{Rational{Int}} @test std([1//1, 2//1]) isa Float64 - @test std([1//1, 2//1], 1) isa Vector{Float64} + @test std([1//1, 2//1], dims=1) isa Vector{Float64} end function safe_cov(x, y, zm::Bool, cr::Bool) @@ -226,12 +237,12 @@ Y = [6.0 2.0; @test c ≈ Cxx[1,1] @inferred cov(x1, corrected=cr) - @test cov(X) == Base.covm(X, mean(X, 1)) + @test cov(X) == Base.covm(X, mean(X, dims=1)) C = zm ? Base.covm(X, 0, vd, corrected=cr) : - cov(X, vd, corrected=cr) + cov(X, dims=vd, corrected=cr) @test size(C) == (k, k) @test C ≈ Cxx - @inferred cov(X, vd, corrected=cr) + @inferred cov(X, dims=vd, corrected=cr) @test cov(x1, y1) == Base.covm(x1, mean(x1), y1, mean(y1)) c = zm ? Base.covm(x1, 0, y1, 0, corrected=cr) : @@ -241,29 +252,29 @@ Y = [6.0 2.0; @inferred cov(x1, y1, corrected=cr) if vd == 1 - @test cov(x1, Y) == Base.covm(x1, mean(x1), Y, mean(Y, 1)) + @test cov(x1, Y) == Base.covm(x1, mean(x1), Y, mean(Y, dims=1)) end C = zm ? Base.covm(x1, 0, Y, 0, vd, corrected=cr) : - cov(x1, Y, vd, corrected=cr) + cov(x1, Y, dims=vd, corrected=cr) @test size(C) == (1, k) @test vec(C) ≈ Cxy[1,:] - @inferred cov(x1, Y, vd, corrected=cr) + @inferred cov(x1, Y, dims=vd, corrected=cr) if vd == 1 - @test cov(X, y1) == Base.covm(X, mean(X, 1), y1, mean(y1)) + @test cov(X, y1) == Base.covm(X, mean(X, dims=1), y1, mean(y1)) end C = zm ? Base.covm(X, 0, y1, 0, vd, corrected=cr) : - cov(X, y1, vd, corrected=cr) + cov(X, y1, dims=vd, corrected=cr) @test size(C) == (k, 1) @test vec(C) ≈ Cxy[:,1] - @inferred cov(X, y1, vd, corrected=cr) + @inferred cov(X, y1, dims=vd, corrected=cr) - @test cov(X, Y) == Base.covm(X, mean(X, 1), Y, mean(Y, 1)) + @test cov(X, Y) == Base.covm(X, mean(X, dims=1), Y, mean(Y, dims=1)) C = zm ? Base.covm(X, 0, Y, 0, vd, corrected=cr) : - cov(X, Y, vd, corrected=cr) + cov(X, Y, dims=vd, corrected=cr) @test size(C) == (k, k) @test C ≈ Cxy - @inferred cov(X, Y, vd, corrected=cr) + @inferred cov(X, Y, dims=vd, corrected=cr) end end @@ -306,11 +317,11 @@ end @test c ≈ Cxx[1,1] @inferred cor(x1) - @test cor(X) == Base.corm(X, mean(X, 1)) - C = zm ? Base.corm(X, 0, vd) : cor(X, vd) + @test cor(X) == Base.corm(X, mean(X, dims=1)) + C = zm ? Base.corm(X, 0, vd) : cor(X, dims=vd) @test size(C) == (k, k) @test C ≈ Cxx - @inferred cor(X, vd) + @inferred cor(X, dims=vd) @test cor(x1, y1) == Base.corm(x1, mean(x1), y1, mean(y1)) c = zm ? Base.corm(x1, 0, y1, 0) : cor(x1, y1) @@ -319,26 +330,26 @@ end @inferred cor(x1, y1) if vd == 1 - @test cor(x1, Y) == Base.corm(x1, mean(x1), Y, mean(Y, 1)) + @test cor(x1, Y) == Base.corm(x1, mean(x1), Y, mean(Y, dims=1)) end - C = zm ? Base.corm(x1, 0, Y, 0, vd) : cor(x1, Y, vd) + C = zm ? Base.corm(x1, 0, Y, 0, vd) : cor(x1, Y, dims=vd) @test size(C) == (1, k) @test vec(C) ≈ Cxy[1,:] - @inferred cor(x1, Y, vd) + @inferred cor(x1, Y, dims=vd) if vd == 1 - @test cor(X, y1) == Base.corm(X, mean(X, 1), y1, mean(y1)) + @test cor(X, y1) == Base.corm(X, mean(X, dims=1), y1, mean(y1)) end - C = zm ? Base.corm(X, 0, y1, 0, vd) : cor(X, y1, vd) + C = zm ? Base.corm(X, 0, y1, 0, vd) : cor(X, y1, dims=vd) @test size(C) == (k, 1) @test vec(C) ≈ Cxy[:,1] - @inferred cor(X, y1, vd) + @inferred cor(X, y1, dims=vd) - @test cor(X, Y) == Base.corm(X, mean(X, 1), Y, mean(Y, 1)) - C = zm ? Base.corm(X, 0, Y, 0, vd) : cor(X, Y, vd) + @test cor(X, Y) == Base.corm(X, mean(X, dims=1), Y, mean(Y, dims=1)) + C = zm ? Base.corm(X, 0, Y, 0, vd) : cor(X, Y, dims=vd) @test size(C) == (k, k) @test C ≈ Cxy - @inferred cor(X, Y, vd) + @inferred cor(X, Y, dims=vd) end @test cor(repeat(1:17, 1, 17))[2] <= 1.0 @@ -374,11 +385,11 @@ end @testset "variance of complex arrays (#13309)" begin z = rand(ComplexF64, 10) - @test var(z) ≈ invoke(var, Tuple{Any}, z) ≈ cov(z) ≈ var(z,1)[1] ≈ sum(abs2, z .- mean(z))/9 + @test var(z) ≈ invoke(var, Tuple{Any}, z) ≈ cov(z) ≈ var(z,dims=1)[1] ≈ sum(abs2, z .- mean(z))/9 @test isa(var(z), Float64) @test isa(invoke(var, Tuple{Any}, z), Float64) @test isa(cov(z), Float64) - @test isa(var(z,1), Vector{Float64}) + @test isa(var(z,dims=1), Vector{Float64}) @test varm(z, 0.0) ≈ invoke(varm, Tuple{Any,Float64}, z, 0.0) ≈ sum(abs2, z)/9 @test isa(varm(z, 0.0), Float64) @test isa(invoke(varm, Tuple{Any,Float64}, z, 0.0), Float64) @@ -409,23 +420,22 @@ end @testset "Issue #17153 and PR #17154" begin a = rand(10,10) - b = deepcopy(a) - x = median(a, 1) - + b = copy(a) + x = median(a, dims=1) @test b == a - x = median(a, 2) + x = median(a, dims=2) @test b == a - x = mean(a, 1) + x = mean(a, dims=1) @test b == a - x = mean(a, 2) + x = mean(a, dims=2) @test b == a - x = var(a, 1) + x = var(a, dims=1) @test b == a - x = var(a, 2) + x = var(a, dims=2) @test b == a - x = std(a, 1) + x = std(a, dims=1) @test b == a - x = std(a, 2) + x = std(a, dims=2) @test b == a end @@ -443,9 +453,9 @@ using .Main.TestHelpers: Furlong # Issue #21786 A = [Furlong{1}(rand(-5:5)) for i in 1:2, j in 1:2] - @test mean(mean(A, 1), 2)[1] === mean(A) - @test var(A, 1)[1] === var(A[:, 1]) - @test std(A, 1)[1] === std(A[:, 1]) + @test mean(mean(A, dims=1), dims=2)[1] === mean(A) + @test var(A, dims=1)[1] === var(A[:, 1]) + @test std(A, dims=1)[1] === std(A[:, 1]) end # Issue #22901 @@ -461,9 +471,9 @@ end @testset "Promotion in covzm. Issue #8080" begin A = [1 -1 -1; -1 1 1; -1 1 -1; 1 -1 -1; 1 -1 1] - @test Base.covzm(A) - mean(A, 1)'*mean(A, 1)*size(A, 1)/(size(A, 1) - 1) ≈ cov(A) + @test Base.covzm(A) - mean(A, dims=1)'*mean(A, dims=1)*size(A, 1)/(size(A, 1) - 1) ≈ cov(A) A = [1//1 -1 -1; -1 1 1; -1 1 -1; 1 -1 -1; 1 -1 1] - @test (A'A - size(A, 1)*Base.mean(A, 1)'*Base.mean(A, 1))/4 == cov(A) + @test (A'A - size(A, 1)*Base.mean(A, dims=1)'*Base.mean(A, dims=1))/4 == cov(A) end @testset "Mean along dimension of empty array" begin @@ -471,15 +481,15 @@ end a00 = zeros(0, 0) a01 = zeros(0, 1) a10 = zeros(1, 0) - @test isequal(mean(a0, 1) , fill(NaN, 1)) - @test isequal(mean(a00, (1, 2)), fill(NaN, 1, 1)) - @test isequal(mean(a01, 1) , fill(NaN, 1, 1)) - @test isequal(mean(a10, 2) , fill(NaN, 1, 1)) + @test isequal(mean(a0, dims=1) , fill(NaN, 1)) + @test isequal(mean(a00, dims=(1, 2)), fill(NaN, 1, 1)) + @test isequal(mean(a01, dims=1) , fill(NaN, 1, 1)) + @test isequal(mean(a10, dims=2) , fill(NaN, 1, 1)) end @testset "cov/var/std of Vector{Vector}" begin x = [[2,4,6],[4,6,8]] - @test var(x) ≈ vec(var([x[1] x[2]], 2)) - @test std(x) ≈ vec(std([x[1] x[2]], 2)) - @test cov(x) ≈ cov([x[1] x[2]], 2) + @test var(x) ≈ vec(var([x[1] x[2]], dims=2)) + @test std(x) ≈ vec(std([x[1] x[2]], dims=2)) + @test cov(x) ≈ cov([x[1] x[2]], dims=2) end diff --git a/test/strings/basic.jl b/test/strings/basic.jl index 92273526fa442a..a63d618c2633ce 100644 --- a/test/strings/basic.jl +++ b/test/strings/basic.jl @@ -66,7 +66,7 @@ end b = 2:62, _ = 1:10 n = (T != BigInt) ? rand(T) : BigInt(rand(Int128)) - @test parse(T, base(b, n), base = b) == n + @test parse(T, string(n, base = b), base = b) == n end end end diff --git a/test/strings/io.jl b/test/strings/io.jl index 28f7d9bdf5e4bc..cb928f65f001cc 100644 --- a/test/strings/io.jl +++ b/test/strings/io.jl @@ -80,15 +80,15 @@ "\uFFFF","\U10000","\U10FFF","\U10FFFF"] c = Char(i) cp = string(c,p) - op = string(Char(div(i,8)), oct(i%8), p) - hp = string(Char(div(i,16)), hex(i%16), p) - @test string(unescape_string(string("\\",oct(i,1),p))) == cp - @test string(unescape_string(string("\\",oct(i,2),p))) == cp - @test string(unescape_string(string("\\",oct(i,3),p))) == cp - @test string(unescape_string(string("\\",oct(i,4),p))) == op - @test string(unescape_string(string("\\x",hex(i,1),p))) == cp - @test string(unescape_string(string("\\x",hex(i,2),p))) == cp - @test string(unescape_string(string("\\x",hex(i,3),p))) == hp + op = string(Char(div(i,8)), string(i%8, base = 8), p) + hp = string(Char(div(i,16)), string(i%16, base = 16), p) + @test string(unescape_string(string("\\",string(i,base=8,pad=1),p))) == cp + @test string(unescape_string(string("\\",string(i,base=8,pad=2),p))) == cp + @test string(unescape_string(string("\\",string(i,base=8,pad=3),p))) == cp + @test string(unescape_string(string("\\",string(i,base=8,pad=4),p))) == op + @test string(unescape_string(string("\\x",string(i,base=16,pad=1),p))) == cp + @test string(unescape_string(string("\\x",string(i,base=16,pad=2),p))) == cp + @test string(unescape_string(string("\\x",string(i,base=16,pad=3),p))) == hp end @testset "unescape_string" begin diff --git a/test/strings/util.jl b/test/strings/util.jl index aa53554e742351..f6e727a110f1ed 100644 --- a/test/strings/util.jl +++ b/test/strings/util.jl @@ -75,81 +75,88 @@ end end @testset "rsplit/split" begin - @test isequal(split("foo,bar,baz", 'x'), ["foo,bar,baz"]) - @test isequal(split("foo,bar,baz", ','), ["foo","bar","baz"]) - @test isequal(split("foo,bar,baz", ","), ["foo","bar","baz"]) - @test isequal(split("foo,bar,baz", r","), ["foo","bar","baz"]) - @test isequal(split("foo,bar,baz", ','; limit=0), ["foo","bar","baz"]) - @test isequal(split("foo,bar,baz", ','; limit=1), ["foo,bar,baz"]) - @test isequal(split("foo,bar,baz", ','; limit=2), ["foo","bar,baz"]) - @test isequal(split("foo,bar,baz", ','; limit=3), ["foo","bar","baz"]) - @test isequal(split("foo,bar", "o,b"), ["fo","ar"]) - - @test isequal(split("", ','), [""]) - @test isequal(split(",", ','), ["",""]) - @test isequal(split(",,", ','), ["","",""]) - @test isequal(split("", ',' ; keep=false), []) - @test isequal(split(",", ',' ; keep=false), []) - @test isequal(split(",,", ','; keep=false), []) - - @test isequal(split("a b c"), ["a","b","c"]) - @test isequal(split("a b \t c\n"), ["a","b","c"]) - - @test isequal(rsplit("foo,bar,baz", 'x'), ["foo,bar,baz"]) - @test isequal(rsplit("foo,bar,baz", ','), ["foo","bar","baz"]) - @test isequal(rsplit("foo,bar,baz", ","), ["foo","bar","baz"]) - @test isequal(rsplit("foo,bar,baz", ','; limit=0), ["foo","bar","baz"]) - @test isequal(rsplit("foo,bar,baz", ','; limit=1), ["foo,bar,baz"]) - @test isequal(rsplit("foo,bar,baz", ','; limit=2), ["foo,bar","baz"]) - @test isequal(rsplit("foo,bar,baz", ','; limit=3), ["foo","bar","baz"]) - @test isequal(rsplit("foo,bar", "o,b"), ["fo","ar"]) - - @test isequal(rsplit("", ','), [""]) - @test isequal(rsplit(",", ','), ["",""]) - @test isequal(rsplit(",,", ','), ["","",""]) - @test isequal(rsplit(",,", ','; limit=2), [",",""]) - @test isequal(rsplit("", ',' ; keep=false), []) - @test isequal(rsplit(",", ',' ; keep=false), []) - @test isequal(rsplit(",,", ','; keep=false), []) - - #@test isequal(rsplit("a b c"), ["a","b","c"]) - #@test isequal(rsplit("a b \t c\n"), ["a","b","c"]) + @test split("foo,bar,baz", 'x') == ["foo,bar,baz"] + @test split("foo,bar,baz", ',') == ["foo","bar","baz"] + @test split("foo,bar,baz", ",") == ["foo","bar","baz"] + @test split("foo,bar,baz", r",") == ["foo","bar","baz"] + @test split("foo,bar,baz", ','; limit=0) == ["foo","bar","baz"] + @test split("foo,bar,baz", ','; limit=1) == ["foo,bar,baz"] + @test split("foo,bar,baz", ','; limit=2) == ["foo","bar,baz"] + @test split("foo,bar,baz", ','; limit=3) == ["foo","bar","baz"] + @test split("foo,bar", "o,b") == ["fo","ar"] + + @test split("", ',') == [""] + @test split(",", ',') == ["",""] + @test split(",,", ',') == ["","",""] + @test split("", ',' ; keep=false) == [] + @test split(",", ',' ; keep=false) == [] + @test split(",,", ','; keep=false) == [] + + @test split("a b c") == ["a","b","c"] + @test split("a b \t c\n") == ["a","b","c"] + + @test rsplit("foo,bar,baz", 'x') == ["foo,bar,baz"] + @test rsplit("foo,bar,baz", ',') == ["foo","bar","baz"] + @test rsplit("foo,bar,baz", ",") == ["foo","bar","baz"] + @test rsplit("foo,bar,baz", ','; limit=0) == ["foo","bar","baz"] + @test rsplit("foo,bar,baz", ','; limit=1) == ["foo,bar,baz"] + @test rsplit("foo,bar,baz", ','; limit=2) == ["foo,bar","baz"] + @test rsplit("foo,bar,baz", ','; limit=3) == ["foo","bar","baz"] + @test rsplit("foo,bar", "o,b") == ["fo","ar"] + + @test rsplit("", ',') == [""] + @test rsplit(",", ',') == ["",""] + @test rsplit(",,", ',') == ["","",""] + @test rsplit(",,", ','; limit=2) == [",",""] + @test rsplit("", ',' ; keep=false) == [] + @test rsplit(",", ',' ; keep=false) == [] + @test rsplit(",,", ','; keep=false) == [] + + #@test rsplit("a b c") == ["a","b","c"] + #@test rsplit("a b \t c\n") == ["a","b","c"] let str = "a.:.ba..:..cba.:.:.dcba.:." - @test isequal(split(str, ".:."), ["a","ba.",".cba",":.dcba",""]) - @test isequal(split(str, ".:."; keep=false), ["a","ba.",".cba",":.dcba"]) - @test isequal(split(str, ".:."), ["a","ba.",".cba",":.dcba",""]) - @test isequal(split(str, r"\.(:\.)+"), ["a","ba.",".cba","dcba",""]) - @test isequal(split(str, r"\.(:\.)+"; keep=false), ["a","ba.",".cba","dcba"]) - @test isequal(split(str, r"\.+:\.+"), ["a","ba","cba",":.dcba",""]) - @test isequal(split(str, r"\.+:\.+"; keep=false), ["a","ba","cba",":.dcba"]) - - @test isequal(rsplit(str, ".:."), ["a","ba.",".cba.:","dcba",""]) - @test isequal(rsplit(str, ".:."; keep=false), ["a","ba.",".cba.:","dcba"]) - @test isequal(rsplit(str, ".:."; limit=2), ["a.:.ba..:..cba.:.:.dcba", ""]) - @test isequal(rsplit(str, ".:."; limit=3), ["a.:.ba..:..cba.:", "dcba", ""]) - @test isequal(rsplit(str, ".:."; limit=4), ["a.:.ba.", ".cba.:", "dcba", ""]) - @test isequal(rsplit(str, ".:."; limit=5), ["a", "ba.", ".cba.:", "dcba", ""]) - @test isequal(rsplit(str, ".:."; limit=6), ["a", "ba.", ".cba.:", "dcba", ""]) + @test split(str, ".:.") == ["a","ba.",".cba",":.dcba",""] + @test split(str, ".:."; keep=false) == ["a","ba.",".cba",":.dcba"] + @test split(str, ".:.") == ["a","ba.",".cba",":.dcba",""] + @test split(str, r"\.(:\.)+") == ["a","ba.",".cba","dcba",""] + @test split(str, r"\.(:\.)+"; keep=false) == ["a","ba.",".cba","dcba"] + @test split(str, r"\.+:\.+") == ["a","ba","cba",":.dcba",""] + @test split(str, r"\.+:\.+"; keep=false) == ["a","ba","cba",":.dcba"] + + @test rsplit(str, ".:.") == ["a","ba.",".cba.:","dcba",""] + @test rsplit(str, ".:."; keep=false) == ["a","ba.",".cba.:","dcba"] + @test rsplit(str, ".:."; limit=2) == ["a.:.ba..:..cba.:.:.dcba", ""] + @test rsplit(str, ".:."; limit=3) == ["a.:.ba..:..cba.:", "dcba", ""] + @test rsplit(str, ".:."; limit=4) == ["a.:.ba.", ".cba.:", "dcba", ""] + @test rsplit(str, ".:."; limit=5) == ["a", "ba.", ".cba.:", "dcba", ""] + @test rsplit(str, ".:."; limit=6) == ["a", "ba.", ".cba.:", "dcba", ""] end # zero-width splits - @test isequal(rsplit("", ""), [""]) - - @test isequal(split("", ""), [""]) - @test isequal(split("", r""), [""]) - @test isequal(split("abc", ""), ["a","b","c"]) - @test isequal(split("abc", r""), ["a","b","c"]) - @test isequal(split("abcd", r"b?"), ["a","c","d"]) - @test isequal(split("abcd", r"b*"), ["a","c","d"]) - @test isequal(split("abcd", r"b+"), ["a","cd"]) - @test isequal(split("abcd", r"b?c?"), ["a","d"]) - @test isequal(split("abcd", r"[bc]?"), ["a","","d"]) - @test isequal(split("abcd", r"a*"), ["","b","c","d"]) - @test isequal(split("abcd", r"a+"), ["","bcd"]) - @test isequal(split("abcd", r"d*"), ["a","b","c",""]) - @test isequal(split("abcd", r"d+"), ["abc",""]) - @test isequal(split("abcd", r"[ad]?"), ["","b","c",""]) + @test split("", "") == rsplit("", "") == [""] + @test split("abc", "") == rsplit("abc", "") == ["a","b","c"] + @test rsplit("abc", "", limit=2) == ["ab","c"] + @test split("abc", "", limit=2) == ["a","bc"] + + @test split("", r"") == [""] + @test split("abc", r"") == ["a","b","c"] + @test split("abcd", r"b?") == ["a","c","d"] + @test split("abcd", r"b*") == ["a","c","d"] + @test split("abcd", r"b+") == ["a","cd"] + @test split("abcd", r"b?c?") == ["a","d"] + @test split("abcd", r"[bc]?") == ["a","","d"] + @test split("abcd", r"a*") == ["","b","c","d"] + @test split("abcd", r"a+") == ["","bcd"] + @test split("abcd", r"d*") == ["a","b","c",""] + @test split("abcd", r"d+") == ["abc",""] + @test split("abcd", r"[ad]?") == ["","b","c",""] + + # multi-byte unicode characters (issue #26225) + @test split("α β γ", " ") == rsplit("α β γ", " ") == + split("α β γ", isspace) == rsplit("α β γ", isspace) == ["α","β","γ"] + @test split("ö.", ".") == rsplit("ö.", ".") == ["ö",""] + @test split("α β γ", "β") == rsplit("α β γ", "β") == ["α "," γ"] end @testset "replace" begin @@ -261,6 +268,14 @@ end # Issue 25741 @test replace("abc", ['a', 'd'] => 'A') == "Abc" + + # for Char pattern call Char replacement function + @test replace("a", "a" => typeof) == "SubString{String}" + @test replace("a", r"a" => typeof) == "SubString{String}" + @test replace("a", 'a' => typeof) == "Char" + @test replace("a", occursin("a") => typeof) == "Char" + @test replace("a", ['a'] => typeof) == "Char" + end @testset "chomp/chop" begin diff --git a/test/subarray.jl b/test/subarray.jl index 211e6bd24563e2..e81b387baee078 100644 --- a/test/subarray.jl +++ b/test/subarray.jl @@ -524,7 +524,7 @@ let foo = [X] end # test @views macro -@views let f!(x) = x[1:end-1] .+= x[2:end].^2 +@views let f!(x) = (x[1:end-1] .+= x[2:end].^2; nothing) x = [1,2,3,4] f!(x) @test x == [5,11,19,4] @@ -588,9 +588,14 @@ end @test sizeof(view(zeros(UInt8, 10), 1:3)) == 3 @test sizeof(view(zeros(Float64, 10, 10), 1:3, 2:6)) == 120 - # PR #25321 # checks that issue in type inference is resolved A = rand(5,5,5,5) V = view(A, 1:1 ,:, 1:3, :) @test @inferred(strides(V)) == (1, 5, 25, 125) + +# Issue #26263 — ensure that unaliascopy properly trims the array +A = rand(5,5,5,5) +V = view(A, 2:5, :, 2:5, 1:2:5) +@test @inferred(Base.unaliascopy(V)) == V == A[2:5, :, 2:5, 1:2:5] +@test @inferred(sum(Base.unaliascopy(V))) == sum(V) == sum(A[2:5, :, 2:5, 1:2:5]) diff --git a/test/syntax.jl b/test/syntax.jl index f861b84de34b27..28afb15ba3b1e2 100644 --- a/test/syntax.jl +++ b/test/syntax.jl @@ -176,13 +176,21 @@ macro test999_str(args...); args; end @test_throws ParseError Meta.parse("(,)") @test_throws ParseError Meta.parse("(;,)") @test_throws ParseError Meta.parse("(,;)") +# TODO: would be nice to make these errors, but needed to parse e.g. `(x;y,)->x` +#@test_throws ParseError Meta.parse("(1;2,)") +#@test_throws ParseError Meta.parse("(1;2,;)") +#@test_throws ParseError Meta.parse("(1;2,;3)") @test Meta.parse("(x;)") == Expr(:block, :x) @test Meta.parse("(;x)") == Expr(:tuple, Expr(:parameters, :x)) @test Meta.parse("(;x,)") == Expr(:tuple, Expr(:parameters, :x)) @test Meta.parse("(x,)") == Expr(:tuple, :x) -@test Meta.parse("(x,;)") == Expr(:tuple, :x) -@test Meta.parse("(x;y)") == Expr(:block, :x, :y) -@test Meta.parse("(x=1;y=2)") == Expr(:block, Expr(:(=), :x, 1), Expr(:(=), :y, 2)) +@test Meta.parse("(x,;)") == Expr(:tuple, Expr(:parameters), :x) +@test Meta.parse("(x;y)") == Expr(:block, :x, LineNumberNode(1,:none), :y) +@test Meta.parse("(x...;)") == Expr(:tuple, Expr(:parameters), Expr(:(...), :x)) +@test Meta.parse("(;x...)") == Expr(:tuple, Expr(:parameters, Expr(:(...), :x))) +@test Meta.parse("(x...;y)") == Expr(:tuple, Expr(:parameters, :y), Expr(:(...), :x)) +@test Meta.parse("(x;y...)") == Expr(:block, :x, LineNumberNode(1,:none), Expr(:(...), :y)) +@test Meta.parse("(x=1;y=2)") == Expr(:block, Expr(:(=), :x, 1), LineNumberNode(1,:none), Expr(:(=), :y, 2)) @test Meta.parse("(x,;y)") == Expr(:tuple, Expr(:parameters, :y), :x) @test Meta.parse("(x,;y=1)") == Expr(:tuple, Expr(:parameters, Expr(:kw, :y, 1)), :x) @test Meta.parse("(x,a;y=1)") == Expr(:tuple, Expr(:parameters, Expr(:kw, :y, 1)), :x, :a) @@ -190,6 +198,8 @@ macro test999_str(args...); args; end @test Meta.parse("(a=1, b=2)") == Expr(:tuple, Expr(:(=), :a, 1), Expr(:(=), :b, 2)) @test_throws ParseError Meta.parse("(1 2)") # issue #15248 +@test Meta.parse("f(x;)") == Expr(:call, :f, Expr(:parameters), :x) + @test Meta.parse("1 == 2|>3") == Expr(:call, :(==), 1, Expr(:call, :(|>), 2, 3)) # issue #24153 @@ -1306,3 +1316,38 @@ end #@test Meta.parse("\"x\" # # f(x) = x", 1)[1] === "x" + +# issue #26137 +# cases where parens enclose argument lists +@test Meta.parse("-()^2") == Expr(:call, :^, Expr(:call, :-), 2) +@test Meta.parse("-(x,)^2") == Expr(:call, :^, Expr(:call, :-, :x), 2) +@test Meta.parse("-(x,;)^2") == Expr(:call, :^, Expr(:call, :-, Expr(:parameters), :x), 2) +@test Meta.parse("-(;x)^2") == Expr(:call, :^, Expr(:call, :-, Expr(:parameters, :x)), 2) +@test Meta.parse("-(x,y)^2") == Expr(:call, :^, Expr(:call, :-, :x, :y), 2) +@test Meta.parse("-(x...)^2") == Expr(:call, :^, Expr(:call, :-, Expr(:(...), :x)), 2) +@test Meta.parse("-(x...;)^2") == Expr(:call, :^, Expr(:call, :-, Expr(:parameters), Expr(:(...), :x)), 2) +@test Meta.parse("-(x...;)") == Expr(:call, :-, Expr(:parameters), Expr(:(...), :x)) + +# cases where parens are just grouping +@test Meta.parse("-(x)^2") == Expr(:call, :-, Expr(:call, :^, :x, 2)) +@test Meta.parse("-(a=1)^2") == Expr(:call, :-, Expr(:call, :^, Expr(:(=), :a, 1), 2)) +@test Meta.parse("-(x;y)^2") == Expr(:call, :-, Expr(:call, :^, Expr(:block, :x, LineNumberNode(1,:none), :y), 2)) +@test Meta.parse("-(;)^2") == Expr(:call, :-, Expr(:call, :^, Expr(:block), 2)) +@test Meta.parse("-(;;;;)^2") == Expr(:call, :-, Expr(:call, :^, Expr(:block), 2)) +@test Meta.parse("-(x;;;)^2") == Expr(:call, :-, Expr(:call, :^, Expr(:block, :x), 2)) +@test Meta.parse("+((1,2))") == Expr(:call, :+, Expr(:tuple, 1, 2)) + +@test_throws ParseError("space before \"(\" not allowed in \"+ (\"") Meta.parse("1 -+ (a=1, b=2)") + +@test Meta.parse("1 -+(a=1, b=2)") == Expr(:call, :-, 1, + Expr(:call, :+, Expr(:kw, :a, 1), Expr(:kw, :b, 2))) + +@test Meta.parse("-(2)(x)") == Expr(:call, :-, Expr(:call, :*, 2, :x)) +@test Meta.parse("-(x)y") == Expr(:call, :-, Expr(:call, :*, :x, :y)) +@test Meta.parse("-(x,)y") == Expr(:call, :*, Expr(:call, :-, :x), :y) +@test Meta.parse("-(f)(x)") == Expr(:call, :-, Expr(:call, :f, :x)) +@test Meta.parse("-(2)(x)^2") == Expr(:call, :-, Expr(:call, :*, 2, Expr(:call, :^, :x, 2))) +@test Meta.parse("Y <- (x->true)(X)") == + Expr(:call, :<, :Y, + Expr(:call, :-, Expr(:call, Expr(:->, :x, Expr(:block, LineNumberNode(1,:none), true)), + :X))) diff --git a/test/threads.jl b/test/threads.jl index 4aedadaf0a036b..a05415b4dfe9ce 100644 --- a/test/threads.jl +++ b/test/threads.jl @@ -27,7 +27,7 @@ function test_threaded_loop_and_atomic_add() # and were unique (via pigeon-hole principle). @test !(false in found) if was_inorder - println(STDERR, "Warning: threaded loop executed in order") + println(stderr, "Warning: threaded loop executed in order") end end @@ -463,7 +463,7 @@ test_nested_loops() ret void \"\"\", Cvoid, Tuple{Ptr{UInt128}, UInt128}, unsafe_convert(Ptr{UInt128}, x), v) end - code_native(STDOUT, unaligned_setindex!, Tuple{Atomic{UInt128}, UInt128}) + code_native(stdout, unaligned_setindex!, Tuple{Atomic{UInt128}, UInt128}) """ mktempdir() do dir diff --git a/test/tuple.jl b/test/tuple.jl index 4cb6a95b6da15b..3afdbbc6e651b4 100644 --- a/test/tuple.jl +++ b/test/tuple.jl @@ -189,11 +189,11 @@ end for T in (Nothing, Missing) x = [(1, T()), (1, 2)] y = map(v -> (v[1], v[2]), [(1, T()), (1, 2)]) - @test y isa Vector{Tuple{Int,Union{T,Int}}} + @test y isa Vector{Tuple{Int, Any}} @test isequal(x, y) end y = map(v -> (v[1], v[1] + v[2]), [(1, missing), (1, 2)]) - @test y isa Vector{Tuple{Int,Union{Missing,Int}}} + @test y isa Vector{Tuple{Int, Any}} @test isequal(y, [(1, missing), (1, 3)]) end @@ -425,4 +425,4 @@ end @test findprev(equalto(1), (1, 1), 1) == 1 @test findnext(equalto(1), (2, 3), 1) === nothing @test findprev(equalto(1), (2, 3), 2) === nothing -end \ No newline at end of file +end