From c49a041113123274b2bc2a1c883106406ae23894 Mon Sep 17 00:00:00 2001 From: Tom Duffield Date: Wed, 7 Feb 2018 16:18:18 -0600 Subject: [PATCH] Refactor License Scout This is a major refactor of License Scout that modifies it's operating model to drive more configuration from external configuration managed by YAML files rather than by configuration stored within the gem itself. This allows teams to add exceptions, fallbacks, and other configuration based on their needs without requiring us to release a new version of the license_scout gem. Signed-off-by: Tom Duffield --- .gitignore | 1 + .rubocop.yml | 7 +- .ruby-version | 1 + .travis.yml | 9 +- Dockerfile | 2 +- README.md | 193 +- Rakefile | 9 +- appveyor.yml | 26 +- bin/license_scout | 60 +- bin/mix_lock_json | Bin 0 -> 995338 bytes bin/rebar_lock_json | Bin 795138 -> 810604 bytes lib/license_scout.rb | 2 + .../canonical_licenses/BSD-2-Clause.txt | 19 - .../canonical_licenses/BSD-3-Clause.txt | 27 - .../canonical_licenses/BSD-4-Clause.txt | 31 - .../canonical_licenses/Chef-MLSA.txt | 5 - lib/license_scout/canonical_licenses/ISC.txt | 14 - lib/license_scout/canonical_licenses/MIT.txt | 20 - lib/license_scout/cli.rb | 99 + lib/license_scout/collector.rb | 102 +- lib/license_scout/config.rb | 94 + .../data/dependeny_manifest_v2_schema.json | 62 + lib/license_scout/data/exceptions.json | 306 ++ lib/license_scout/data/licenses.json | 4653 +++++++++++++++++ lib/license_scout/dependency.rb | 84 +- lib/license_scout/dependency_manager.rb | 24 +- lib/license_scout/dependency_manager/base.rb | 116 +- .../dependency_manager/berkshelf.rb | 77 +- .../dependency_manager/bundler.rb | 110 +- .../dependency_manager/bundler/LICENSE.md | 23 - lib/license_scout/dependency_manager/cpanm.rb | 170 +- lib/license_scout/dependency_manager/dep.rb | 60 +- lib/license_scout/dependency_manager/glide.rb | 59 +- lib/license_scout/dependency_manager/godep.rb | 49 +- .../dependency_manager/habitat.rb | 126 + .../dependency_manager/json/README.md | 392 -- .../dependency_manager/manual.rb | 67 - lib/license_scout/dependency_manager/mix.rb | 102 + lib/license_scout/dependency_manager/npm.rb | 111 +- lib/license_scout/dependency_manager/rebar.rb | 64 +- lib/license_scout/exceptions.rb | 45 +- lib/license_scout/license.rb | 126 + .../license_file_analyzer/any_matcher.rb | 37 - .../license_file_analyzer/definitions.rb | 219 - .../license_file_analyzer/header_matcher.rb | 34 - .../license_file_analyzer/matcher.rb | 46 - .../license_file_analyzer/template.rb | 45 - .../templates/Apache2-short.txt | 11 - .../templates/Apache2.txt | 170 - .../templates/BSD-2-Clause-bullets.txt | 18 - .../templates/BSD-2-Clause.txt | 19 - .../templates/BSD-3-Clause-alt-format.txt | 24 - .../templates/BSD-3-Clause.txt | 21 - .../license_file_analyzer/templates/BSD.txt | 24 - .../templates/Chef-MLSA.txt | 5 - .../templates/EPLICENSE.txt | 286 - .../templates/GPL-2.0.txt | 339 -- .../templates/GPL-3.0.txt | 674 --- .../license_file_analyzer/templates/ISC.txt | 2 - .../templates/LGPL-3.0.txt | 165 - .../license_file_analyzer/templates/MIT.txt | 9 - .../license_file_analyzer/templates/MPL2.txt | 373 -- .../templates/Python-2.0.txt | 47 - .../license_file_analyzer/templates/Ruby.txt | 52 - .../license_file_analyzer/text.rb | 46 - .../{license_file_analyzer.rb => log.rb} | 10 +- lib/license_scout/net_fetcher.rb | 105 - lib/license_scout/options.rb | 47 - lib/license_scout/overrides.rb | 997 ---- lib/license_scout/reporter.rb | 202 +- lib/license_scout/spdx.rb | 123 + license_scout.gemspec | 20 +- native_parsers/mix_lock_json/.gitignore | 24 + native_parsers/mix_lock_json/README.md | 21 + .../mix_lock_json/lib/mix_lock_json.ex | 20 + native_parsers/mix_lock_json/mix.exs | 31 + native_parsers/mix_lock_json/mix.lock | 3 + .../rebar_lock_json/.gitignore | 0 .../rebar_lock_json/README.md | 0 .../rebar_lock_json/rebar.config | 0 .../rebar_lock_json/rebar.lock | 4 +- .../src/rebar_lock_json.app.src | 0 .../rebar_lock_json/src/rebar_lock_json.erl | 0 .../LICENSE} | 0 .../src/github.com/dep/b}/.gitkeep | 0 spec/fixtures/habitat/plan.sh | 11 + .../license_analyzer_licenses/eper-mit | 19 - .../epgsql-bsd-3-clause | 11 - .../esaml-bsd-2-clause | 21 - .../gen_smtp-BSD-2-clause | 22 - .../license_analyzer_licenses/gproc-eplicense | 288 - .../hoax-apache2-short | 13 - .../recon-bsd-3-clause-alt-format | 27 - .../spf13-afero-apache2 | 174 - .../COPYING => mix/deps/earmark/.fetch} | 0 spec/fixtures/mix/deps/earmark/.hex | 2 + spec/fixtures/mix/deps/earmark/README.md | 762 +++ .../mix/deps/earmark/hex_metadata.config | 35 + spec/fixtures/mix/deps/earmark/lib/earmark.ex | 399 ++ .../mix/deps/earmark/lib/earmark/block.ex | 574 ++ .../mix/deps/earmark/lib/earmark/cli.ex | 97 + .../mix/deps/earmark/lib/earmark/context.ex | 151 + .../mix/deps/earmark/lib/earmark/error.ex | 12 + .../mix/deps/earmark/lib/earmark/helpers.ex | 67 + .../lib/earmark/helpers/attr_parser.ex | 58 + .../lib/earmark/helpers/html_helpers.ex | 60 + .../lib/earmark/helpers/leex_helpers.ex | 29 + .../lib/earmark/helpers/line_helpers.ex | 40 + .../lib/earmark/helpers/link_parser.ex | 111 + .../lib/earmark/helpers/lookahead_helpers.ex | 171 + .../lib/earmark/helpers/reparse_helpers.ex | 55 + .../lib/earmark/helpers/string_helpers.ex | 25 + .../lib/earmark/helpers/yecc_helpers.ex | 18 + .../deps/earmark/lib/earmark/html_renderer.ex | 264 + .../mix/deps/earmark/lib/earmark/inline.ex | 319 ++ .../mix/deps/earmark/lib/earmark/line.ex | 252 + .../mix/deps/earmark/lib/earmark/message.ex | 58 + .../mix/deps/earmark/lib/earmark/options.ex | 40 + .../mix/deps/earmark/lib/earmark/parser.ex | 77 + .../mix/deps/earmark/lib/earmark/plugin.ex | 139 + .../mix/deps/earmark/lib/earmark/scanner.ex | 148 + .../mix/deps/earmark/lib/earmark/types.ex | 17 + spec/fixtures/mix/deps/earmark/mix.exs | 79 + .../mix/deps/earmark/src/link_text_lexer.erl | 498 ++ .../mix/deps/earmark/src/link_text_lexer.xrl | 31 + .../mix/deps/earmark/src/link_text_parser.erl | 770 +++ .../mix/deps/earmark/src/link_text_parser.yrl | 57 + .../mix/deps/earmark/src/string_lexer.erl | 405 ++ .../mix/deps/earmark/src/string_lexer.xrl | 17 + spec/fixtures/mix/deps/earmark/tasks/docs.exs | 44 + .../mix/deps/earmark/tasks/readme.exs | 108 + .../random/LICENSE => mix/deps/ex_doc/.fetch} | 0 spec/fixtures/mix/deps/ex_doc/.hex | 2 + spec/fixtures/mix/deps/ex_doc/CHANGELOG.md | 390 ++ spec/fixtures/mix/deps/ex_doc/LICENSE | 118 + spec/fixtures/mix/deps/ex_doc/README.md | 122 + .../formatters/epub/dist/app-bbb6f0765d.js | 2 + .../formatters/epub/dist/epub-612b95d9a4.css | 1 + .../com.apple.ibooks.display-options.xml | 6 + .../formatters/epub/metainfo/container.xml | 6 + .../formatters/html/dist/app-480ffdc169.css | 1 + .../formatters/html/dist/app-9bd040e5e5.js | 8 + .../html/dist/app-9bd040e5e5.js.map | 1 + .../ex_doc/formatters/html/fonts/icomoon.eot | Bin 0 -> 3096 bytes .../ex_doc/formatters/html/fonts/icomoon.svg | 18 + .../ex_doc/formatters/html/fonts/icomoon.ttf | Bin 0 -> 2932 bytes .../ex_doc/formatters/html/fonts/icomoon.woff | Bin 0 -> 3008 bytes .../mix/deps/ex_doc/hex_metadata.config | 65 + spec/fixtures/mix/deps/ex_doc/lib/ex_doc.ex | 188 + .../mix/deps/ex_doc/lib/ex_doc/cli.ex | 163 + .../deps/ex_doc/lib/ex_doc/formatter/epub.ex | 174 + .../lib/ex_doc/formatter/epub/assets.ex | 22 + .../lib/ex_doc/formatter/epub/templates.ex | 89 + .../epub/templates/content_template.eex | 50 + .../epub/templates/extra_template.eex | 8 + .../epub/templates/head_template.eex | 15 + .../formatter/epub/templates/media-types.txt | 18 + .../epub/templates/module_template.eex | 78 + .../epub/templates/nav_item_template.eex | 9 + .../formatter/epub/templates/nav_template.eex | 25 + .../epub/templates/title_template.eex | 14 + .../epub/templates/toc_item_template.eex | 8 + .../deps/ex_doc/lib/ex_doc/formatter/html.ex | 326 ++ .../lib/ex_doc/formatter/html/assets.ex | 26 + .../lib/ex_doc/formatter/html/autolink.ex | 601 +++ .../lib/ex_doc/formatter/html/templates.ex | 292 ++ .../api_reference_entry_template.eex | 6 + .../html/templates/api_reference_template.eex | 37 + .../html/templates/detail_template.eex | 34 + .../html/templates/extra_template.eex | 5 + .../html/templates/footer_template.eex | 23 + .../html/templates/head_template.eex | 20 + .../html/templates/module_template.eex | 82 + .../html/templates/not_found_template.eex | 11 + .../html/templates/redirect_template.eex | 11 + .../html/templates/search_template.eex | 6 + .../html/templates/sidebar_template.eex | 55 + .../html/templates/summary_item_template.eex | 8 + .../html/templates/summary_template.eex | 8 + .../deps/ex_doc/lib/ex_doc/group_matcher.ex | 48 + .../mix/deps/ex_doc/lib/ex_doc/markdown.ex | 184 + .../deps/ex_doc/lib/ex_doc/markdown/cmark.ex | 29 + .../ex_doc/lib/ex_doc/markdown/earmark.ex | 46 + .../mix/deps/ex_doc/lib/ex_doc/retriever.ex | 562 ++ .../mix/deps/ex_doc/lib/mix/tasks/docs.ex | 302 ++ spec/fixtures/mix/deps/ex_doc/mix.exs | 90 + .../BSD-LICENSE => mix/deps/inch_ex/.fetch} | 0 spec/fixtures/mix/deps/inch_ex/.hex | 2 + spec/fixtures/mix/deps/inch_ex/CHANGELOG.md | 9 + .../deps/inch_ex/LICENSE} | 5 +- spec/fixtures/mix/deps/inch_ex/README.md | 196 + .../mix/deps/inch_ex/hex_metadata.config | 24 + spec/fixtures/mix/deps/inch_ex/lib/inch_ex.ex | 77 + .../inch_ex/lib/inch_ex/docs/formatter.ex | 78 + .../inch_ex/lib/inch_ex/docs/retriever.ex | 223 + .../mix/deps/inch_ex/lib/inch_ex/env.ex | 21 + .../mix/deps/inch_ex/lib/inch_ex/git.ex | 44 + .../mix/deps/inch_ex/lib/inch_ex/git_hub.ex | 21 + .../mix/deps/inch_ex/lib/inch_ex/reporter.ex | 17 + .../inch_ex/lib/inch_ex/reporter/local.ex | 54 + .../inch_ex/lib/inch_ex/reporter/remote.ex | 47 + .../mix/deps/inch_ex/lib/inch_ex/setup.ex | 14 + .../inch_ex/lib/inch_ex/setup/readme_badge.ex | 33 + .../lib/inch_ex/setup/travis_after_script.ex | 37 + .../mix/deps/inch_ex/lib/mix/tasks/inch.ex | 60 + .../deps/inch_ex/lib/mix/tasks/inch_report.ex | 10 + .../deps/inch_ex/lib/mix/tasks/inchci_add.ex | 33 + spec/fixtures/mix/deps/inch_ex/mix.exs | 43 + .../COPYING => mix/deps/poison/.fetch} | 0 spec/fixtures/mix/deps/poison/.hex | 2 + spec/fixtures/mix/deps/poison/LICENSE | 13 + spec/fixtures/mix/deps/poison/README.md | 121 + spec/fixtures/mix/deps/poison/UNLICENSE | 24 + spec/fixtures/mix/deps/poison/VERSION | 1 + .../mix/deps/poison/hex_metadata.config | 14 + spec/fixtures/mix/deps/poison/lib/poison.ex | 85 + .../mix/deps/poison/lib/poison/decoder.ex | 62 + .../mix/deps/poison/lib/poison/encoder.ex | 341 ++ .../mix/deps/poison/lib/poison/parser.ex | 268 + spec/fixtures/mix/deps/poison/mix.exs | 47 + spec/fixtures/mix/mix.exs | 33 + spec/fixtures/mix/mix.lock | 6 + spec/fixtures/nested_hab/habitat/plan.sh | 10 + .../appbundler-dependency-licenses.json | 39 - .../ruby_bundler-appbundler-0.9.0-LICENSE.txt | 202 - .../ruby_bundler-mixlib-cli-1.7.0-LICENSE | 201 - .../appbundler-dependency-licenses.json | 32 - .../ruby_bundler-bundler-1.12.5-LICENSE.md | 23 - .../appbundler-dependency-licenses.json | 32 - .../knife-opc-dependency-licenses.json | 24 - .../appbundler-dependency-licenses.json | 32 - .../ruby_bundler-appbundler-0.9.0-LICENSE.txt | 202 - .../ruby_bundler-bundler-1.12.5-LICENSE.md | 23 - .../ruby_bundler-mixlib-cli-1.7.0-LICENSE | 201 - spec/fixtures/output_no_manifest/README | 1 - spec/fixtures/test_licenses/LICENSE | 0 ..._for_all_the_supported_implementations.yml | 786 +++ ...of_Dependencies_found_in_the_directory.yml | 234 + ...of_Dependencies_found_in_the_directory.yml | 584 +++ ...of_Dependencies_found_in_the_directory.yml | 786 +++ ...of_Dependencies_found_in_the_directory.yml | 216 + ...cies_only_if_they_are_the_same_version.yml | 280 + .../detects_all_transitive_dependencies.yml | 557 ++ ...ith_license_files_and_license_metadata.yml | 280 + ...ies_with_license_files_but_no_metadata.yml | 280 + ..._license_metadata_but_no_license_files.yml | 280 + ...ects_dependencies_with_no_license_info.yml | 280 + ...s_with_multiple_combined_license_terms.yml | 280 + spec/license_scout/collector_spec.rb | 334 +- spec/license_scout/config_spec.rb | 102 + .../dependency_manager/base_spec.rb | 64 + .../dependency_manager/berkshelf_spec.rb | 210 +- .../dependency_manager/bundler_spec.rb | 199 +- .../dependency_manager/cpanm_spec.rb | 171 +- .../dependency_manager/dep_spec.rb | 155 +- .../dependency_manager/glide_spec.rb | 152 +- .../dependency_manager/godep_spec.rb | 150 +- .../dependency_manager/habitat_spec.rb | 151 + .../dependency_manager/manual_spec.rb | 124 - .../dependency_manager/mix_spec.rb | 100 + .../dependency_manager/npm_spec.rb | 245 +- .../dependency_manager/rebar_spec.rb | 327 +- spec/license_scout/dependency_manager_spec.rb | 39 + spec/license_scout/dependency_spec.rb | 161 + spec/license_scout/exceptions_spec.rb | 38 - .../license_file_analyzer_spec.rb | 66 - spec/license_scout/license_spec.rb | 94 + spec/license_scout/net_fetcher_spec.rb | 135 - spec/license_scout/options_spec.rb | 102 - spec/license_scout/overrides_spec.rb | 169 - spec/license_scout/reporter_spec.rb | 119 - spec/license_scout/spdx_spec.rb | 63 + spec/spec_helper.rb | 51 +- 273 files changed, 25380 insertions(+), 8879 deletions(-) create mode 100644 .ruby-version create mode 100755 bin/mix_lock_json delete mode 100644 lib/license_scout/canonical_licenses/BSD-2-Clause.txt delete mode 100644 lib/license_scout/canonical_licenses/BSD-3-Clause.txt delete mode 100644 lib/license_scout/canonical_licenses/BSD-4-Clause.txt delete mode 100644 lib/license_scout/canonical_licenses/Chef-MLSA.txt delete mode 100644 lib/license_scout/canonical_licenses/ISC.txt delete mode 100644 lib/license_scout/canonical_licenses/MIT.txt create mode 100644 lib/license_scout/cli.rb create mode 100644 lib/license_scout/config.rb create mode 100644 lib/license_scout/data/dependeny_manifest_v2_schema.json create mode 100644 lib/license_scout/data/exceptions.json create mode 100644 lib/license_scout/data/licenses.json delete mode 100644 lib/license_scout/dependency_manager/bundler/LICENSE.md create mode 100644 lib/license_scout/dependency_manager/habitat.rb delete mode 100644 lib/license_scout/dependency_manager/json/README.md delete mode 100644 lib/license_scout/dependency_manager/manual.rb create mode 100644 lib/license_scout/dependency_manager/mix.rb create mode 100644 lib/license_scout/license.rb delete mode 100644 lib/license_scout/license_file_analyzer/any_matcher.rb delete mode 100644 lib/license_scout/license_file_analyzer/definitions.rb delete mode 100644 lib/license_scout/license_file_analyzer/header_matcher.rb delete mode 100644 lib/license_scout/license_file_analyzer/matcher.rb delete mode 100644 lib/license_scout/license_file_analyzer/template.rb delete mode 100644 lib/license_scout/license_file_analyzer/templates/Apache2-short.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/Apache2.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/BSD-2-Clause-bullets.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/BSD-2-Clause.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/BSD-3-Clause-alt-format.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/BSD-3-Clause.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/BSD.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/EPLICENSE.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/GPL-2.0.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/GPL-3.0.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/ISC.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/LGPL-3.0.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/MIT.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/MPL2.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/Python-2.0.txt delete mode 100644 lib/license_scout/license_file_analyzer/templates/Ruby.txt delete mode 100644 lib/license_scout/license_file_analyzer/text.rb rename lib/license_scout/{license_file_analyzer.rb => log.rb} (72%) delete mode 100644 lib/license_scout/net_fetcher.rb delete mode 100644 lib/license_scout/options.rb delete mode 100644 lib/license_scout/overrides.rb create mode 100644 lib/license_scout/spdx.rb create mode 100644 native_parsers/mix_lock_json/.gitignore create mode 100644 native_parsers/mix_lock_json/README.md create mode 100644 native_parsers/mix_lock_json/lib/mix_lock_json.ex create mode 100644 native_parsers/mix_lock_json/mix.exs create mode 100644 native_parsers/mix_lock_json/mix.lock rename {erl_src => native_parsers}/rebar_lock_json/.gitignore (100%) rename {erl_src => native_parsers}/rebar_lock_json/README.md (100%) rename {erl_src => native_parsers}/rebar_lock_json/rebar.config (100%) rename {erl_src => native_parsers}/rebar_lock_json/rebar.lock (97%) rename {erl_src => native_parsers}/rebar_lock_json/src/rebar_lock_json.app.src (100%) rename {erl_src => native_parsers}/rebar_lock_json/src/rebar_lock_json.erl (100%) rename spec/fixtures/{license_analyzer_licenses/ej-apache2-license => empty_project/LICENSE} (100%) rename spec/fixtures/{no_dependency_manager => godeps_gopath/src/github.com/dep/b}/.gitkeep (100%) create mode 100644 spec/fixtures/habitat/plan.sh delete mode 100644 spec/fixtures/license_analyzer_licenses/eper-mit delete mode 100644 spec/fixtures/license_analyzer_licenses/epgsql-bsd-3-clause delete mode 100644 spec/fixtures/license_analyzer_licenses/esaml-bsd-2-clause delete mode 100644 spec/fixtures/license_analyzer_licenses/gen_smtp-BSD-2-clause delete mode 100644 spec/fixtures/license_analyzer_licenses/gproc-eplicense delete mode 100644 spec/fixtures/license_analyzer_licenses/hoax-apache2-short delete mode 100644 spec/fixtures/license_analyzer_licenses/recon-bsd-3-clause-alt-format delete mode 100644 spec/fixtures/license_analyzer_licenses/spf13-afero-apache2 rename spec/fixtures/{manual/random/COPYING => mix/deps/earmark/.fetch} (100%) create mode 100644 spec/fixtures/mix/deps/earmark/.hex create mode 100644 spec/fixtures/mix/deps/earmark/README.md create mode 100644 spec/fixtures/mix/deps/earmark/hex_metadata.config create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/block.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/cli.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/context.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/error.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/attr_parser.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/html_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/leex_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/line_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/link_parser.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/lookahead_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/reparse_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/string_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/helpers/yecc_helpers.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/html_renderer.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/inline.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/line.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/message.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/options.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/parser.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/plugin.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/scanner.ex create mode 100644 spec/fixtures/mix/deps/earmark/lib/earmark/types.ex create mode 100644 spec/fixtures/mix/deps/earmark/mix.exs create mode 100644 spec/fixtures/mix/deps/earmark/src/link_text_lexer.erl create mode 100644 spec/fixtures/mix/deps/earmark/src/link_text_lexer.xrl create mode 100644 spec/fixtures/mix/deps/earmark/src/link_text_parser.erl create mode 100644 spec/fixtures/mix/deps/earmark/src/link_text_parser.yrl create mode 100644 spec/fixtures/mix/deps/earmark/src/string_lexer.erl create mode 100644 spec/fixtures/mix/deps/earmark/src/string_lexer.xrl create mode 100644 spec/fixtures/mix/deps/earmark/tasks/docs.exs create mode 100644 spec/fixtures/mix/deps/earmark/tasks/readme.exs rename spec/fixtures/{manual/random/LICENSE => mix/deps/ex_doc/.fetch} (100%) create mode 100644 spec/fixtures/mix/deps/ex_doc/.hex create mode 100644 spec/fixtures/mix/deps/ex_doc/CHANGELOG.md create mode 100644 spec/fixtures/mix/deps/ex_doc/LICENSE create mode 100644 spec/fixtures/mix/deps/ex_doc/README.md create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/app-bbb6f0765d.js create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/epub-612b95d9a4.css create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/com.apple.ibooks.display-options.xml create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/container.xml create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-480ffdc169.css create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js.map create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/fonts/icomoon.eot create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/fonts/icomoon.svg create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/fonts/icomoon.ttf create mode 100644 spec/fixtures/mix/deps/ex_doc/formatters/html/fonts/icomoon.woff create mode 100644 spec/fixtures/mix/deps/ex_doc/hex_metadata.config create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/cli.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/assets.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/content_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/extra_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/head_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/media-types.txt create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/module_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_item_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/title_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/toc_item_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/assets.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/autolink.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_entry_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/detail_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/module_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/not_found_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/redirect_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/search_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_item_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_template.eex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/group_matcher.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/cmark.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/earmark.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/ex_doc/retriever.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/lib/mix/tasks/docs.ex create mode 100644 spec/fixtures/mix/deps/ex_doc/mix.exs rename spec/fixtures/{test_licenses/BSD-LICENSE => mix/deps/inch_ex/.fetch} (100%) create mode 100644 spec/fixtures/mix/deps/inch_ex/.hex create mode 100644 spec/fixtures/mix/deps/inch_ex/CHANGELOG.md rename spec/fixtures/{output_metadata_errors/ruby_bundler-bundler-1.12.5-LICENSE.md => mix/deps/inch_ex/LICENSE} (91%) create mode 100644 spec/fixtures/mix/deps/inch_ex/README.md create mode 100644 spec/fixtures/mix/deps/inch_ex/hex_metadata.config create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/formatter.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/retriever.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/env.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git_hub.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/local.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/remote.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/readme_badge.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/travis_after_script.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch_report.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inchci_add.ex create mode 100644 spec/fixtures/mix/deps/inch_ex/mix.exs rename spec/fixtures/{test_licenses/COPYING => mix/deps/poison/.fetch} (100%) create mode 100644 spec/fixtures/mix/deps/poison/.hex create mode 100644 spec/fixtures/mix/deps/poison/LICENSE create mode 100644 spec/fixtures/mix/deps/poison/README.md create mode 100644 spec/fixtures/mix/deps/poison/UNLICENSE create mode 100644 spec/fixtures/mix/deps/poison/VERSION create mode 100644 spec/fixtures/mix/deps/poison/hex_metadata.config create mode 100644 spec/fixtures/mix/deps/poison/lib/poison.ex create mode 100644 spec/fixtures/mix/deps/poison/lib/poison/decoder.ex create mode 100644 spec/fixtures/mix/deps/poison/lib/poison/encoder.ex create mode 100644 spec/fixtures/mix/deps/poison/lib/poison/parser.ex create mode 100644 spec/fixtures/mix/deps/poison/mix.exs create mode 100644 spec/fixtures/mix/mix.exs create mode 100644 spec/fixtures/mix/mix.lock create mode 100644 spec/fixtures/nested_hab/habitat/plan.sh delete mode 100644 spec/fixtures/output_metadata_errors/appbundler-dependency-licenses.json delete mode 100644 spec/fixtures/output_metadata_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt delete mode 100644 spec/fixtures/output_metadata_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE delete mode 100644 spec/fixtures/output_missing_files/appbundler-dependency-licenses.json delete mode 100644 spec/fixtures/output_missing_files/ruby_bundler-bundler-1.12.5-LICENSE.md delete mode 100644 spec/fixtures/output_multiple_manifests/appbundler-dependency-licenses.json delete mode 100644 spec/fixtures/output_multiple_manifests/knife-opc-dependency-licenses.json delete mode 100644 spec/fixtures/output_no_errors/appbundler-dependency-licenses.json delete mode 100644 spec/fixtures/output_no_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt delete mode 100644 spec/fixtures/output_no_errors/ruby_bundler-bundler-1.12.5-LICENSE.md delete mode 100644 spec/fixtures/output_no_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE delete mode 100644 spec/fixtures/output_no_manifest/README delete mode 100644 spec/fixtures/test_licenses/LICENSE create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_Collector/_collect/when_one_or_more_valid_directories_are_specified/collects_all_of_the_dependencies_for_all_the_supported_implementations.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Bundler/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_habitat/plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Mix/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/dedups_dependencies_only_if_they_are_the_same_version.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_all_transitive_dependencies.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_and_license_metadata.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_but_no_metadata.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_metadata_but_no_license_files.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_no_license_info.yml create mode 100644 spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/handles_licenses_with_multiple_combined_license_terms.yml create mode 100644 spec/license_scout/config_spec.rb create mode 100644 spec/license_scout/dependency_manager/base_spec.rb create mode 100644 spec/license_scout/dependency_manager/habitat_spec.rb delete mode 100644 spec/license_scout/dependency_manager/manual_spec.rb create mode 100644 spec/license_scout/dependency_manager/mix_spec.rb create mode 100644 spec/license_scout/dependency_manager_spec.rb create mode 100644 spec/license_scout/dependency_spec.rb delete mode 100644 spec/license_scout/exceptions_spec.rb delete mode 100644 spec/license_scout/license_file_analyzer_spec.rb create mode 100644 spec/license_scout/license_spec.rb delete mode 100644 spec/license_scout/net_fetcher_spec.rb delete mode 100644 spec/license_scout/options_spec.rb delete mode 100644 spec/license_scout/overrides_spec.rb delete mode 100644 spec/license_scout/reporter_spec.rb create mode 100644 spec/license_scout/spdx_spec.rb diff --git a/.gitignore b/.gitignore index a8dda5c5..567a20e2 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /tmp/ /spec/examples.txt /license-cache/ +*-dependency-licenses.json diff --git a/.rubocop.yml b/.rubocop.yml index ad1cef93..a140a506 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,5 @@ AllCops: - TargetRubyVersion: 2.2 - Excludes: - - spec/fixtures/**/* + Exclude: + - 'bundle/**/*' + - 'vendor/bundle/**/*' + - 'spec/fixtures/**/*' diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..437459cd --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.5.0 diff --git a/.travis.yml b/.travis.yml index 5d15e166..4b6e23b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,14 @@ language: ruby sudo: false +cache: bundler + # do not run expensive spec tests on PRs, only on branches branches: only: - master -before_install: gem install bundler -rvm: - - 2.2.6 +before_install: + - source $HOME/otp/19.3/activate + - erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell + - gem install bundler diff --git a/Dockerfile b/Dockerfile index 8f472386..b87689d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM devchef/chefdk +FROM chef/chefdk COPY bin/ /usr/src/app/license_scout/bin/ COPY lib/ /usr/src/app/license_scout/lib/ diff --git a/README.md b/README.md index d10b30f1..125324c2 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,188 @@ -# license_scout +# License Scout -LicenseScout discovers and collects the licenses of a project and its -dependencies, including transitive dependencies. +License Scout is a utility that discovers and aggregates the licenses for your software project's transitive dependencies. -Currently supported project types are: +Currently supported Dependency Types and Dependency Managers are: -* Chef - Berkshelf -* Erlang - rebar -* Golang - godeps -* Javascript - npm -* Perl - CPAN -* Ruby - bundler +Dependency Type | Supported Dependency Managers +--- | --- +chef_cookbook | berkshelf +erlang | rebar +elixir | mix +golang | dep, godep, glide +habitat | habitat +nodejs | npm +perl | cpan +ruby | bundler + +## Dependencies + +* If you wish to scan for `berkshelf` dependencies, you'll need to manually install the Berkshelf gem in the same Ruby as License Scout +* If you wish to scan for `mix` or `rebar` dependencies, you'll need to install Erlang OTP 18.3 or greater. ## Usage +License Scout's default behavior is to scan the current directory and return a breakdown of all the licenses it can find. + ```bash -$ bin/license_scout /dir/to/scout/successfully/ +my_project $ license_scout + ++------+------------+------------+---------+ +| Type | Dependency | License(s) | Results | ++------+------------+------------+---------+ +... +``` + +LicenseScout will exit `0` if it was able to find licenses for all your dependencies. Otherwise, it will exit `1`. + +Under the covers, License Scout leverages [Licensee](http://ben.balter.com/licensee/) (the same Ruby Gem [GitHub](https://developer.github.com/v3/licenses/) uses to detect [OSS licenses](https://spdx.org/licenses/)). In addition to using Licensee to scan your source code for licenses, License Scout will go a step further and attempt to determine if the metadata provided by the Dependency Manager specifies which license each dependency uses. At the end of the process, License Scout will provide you a Dependency Manifest following information: + +1. The name of the license(s) (the SPDX ID if the a recognized open source license). +2. The name of the file where the License Scout found the license. +3. The contents of the license file (if available). + +In addition to the printout provided to STDOUT, License Scout will also save a JSON manifest of all your dependencies to disk. + +```json +{ + "license_manifest_version": 2, + "generated_on": "", + "name": "", + "dependencies": [...] +} +``` + +For more information about the structure of JSON manifest, please check out the full [JSON Schema](lib/license_scout/data/dependency_manifest_v2_schema.json). + +### Result Types + +License Scout will provide a summary of the licenses it finds to STDOUT. These results are intended to provide direction as to which actions may or may not be necessary to generate a Dependency Manifest that meets all of your compliance requirements. To do this it categorizes its findings into the following results. + +Result | Description +--- | --- +Flagged | License Scout was able to determine the license for this software dependency, and it is one of the licenses you have explicitly flagged. You should either remove the dependency or [add an Exception](#dependency-exceptions). +Missing | License Scout could not find any license files or license metadata associated with this dependency. You should contact the maintainer and/or specify a [Fallback License](#fallback-licenses). +Unpermitted | License Scout was able to determine the license for this software dependency, but it is not one of the licenses you have explicitly allowed. You should either remove the dependency or [add an Exception](#dependency-exceptions). +OK | There were no issues. +Undetermined | License Scout found a license file but was unable to determine (with sufficient confidence) what license that file represents. License Scout was also unable to determine the license using Dependency Manager metadata. You should contact the maintainer and/or specify a [Fallback License](#fallback-licenses). + +## Advanced Usage + +### Configuration File(s) + +You can control License Scout's behavior by providing one or more YAML configuration files, available either locally or via HTTP, to the `--config-files` option of the CLI. + +```bash +$ license_scout --config-files http://example.com/license_scout/common.yml,./.license_scout.yml +``` + +License Scout evalutes these files in the order they are provided, allowing you to hydrate configuration by composing multiple files together. For example, you can have a single organization-wide configuration file that specifies what licenses are allowed and project-specific configuration file that specifies exceptions and which directories to scan. + +#### How multiple configuration files are handled + +License Scout uses [mixlib-config](https://github.com/chef/mixlib-config) to handle it's configuration. When loading multiple configuration files, mixlib-config (and thus License Scout) will not perform deep merges of Arrays. That means that License Scout will not merge (for example) `allowed_licenses` (or `flagged_licenses`) from two different configuration files; it will only take the `allowed_licenses` value from the configuration that is loaded last. This logic does not apply to the `fallbacks` or `exceptions`, because those are defined as [`config_contexts`](lib/license_scout/config.rb). It **does** apply to the individuals types specified within the `fallbacks` or `exceptions` however. + +### Allowed and Flagged Licenses -$ bin/license_scout /dir/to/scout/unsuccessfully/ -Dependency 'gopkg.in_yaml.v2' version '53feefa2559fb8dfa8d81baad31be332c97d6c77' under 'go_godep' is missing license information. ->> Found 41 dependencies for go_godep. 40 OK, 1 with problems +License Scout provides you with the ability to provide a list of licenses that are explicitly allowed, or a list of licenses that should be flagged for further scrutiny. + +- When you specify a list of `allowed_licenses`, License Scout will exit `1` if it detects a dependency with a license other than one on the list. +- When you specify a list of `flagged_licenses`, License Scout will exit `1` if it finds a dependency with that license. + +To add a license to the list of allowed or flagged licenses, you need only provide the array of licenses as a string in your configuration file. A configuration may have a list of allowed licenses _or_ flagged licenses, it cannot have both. _License Scout does not support regular expressions or glob-patterms for `allowed_licenses` or `flagged_licenses`._ + +```yaml +allowed_licenses: + - Apache-2.0 + +# OR + +flagged_licenses: + - Apache-2.0 ``` -Detailed instructions for fixing licensing failures found by license_scout are now provided in the script's output. See [bin/license_scout](bin/license_scout) for more details. +License Scout will compare these string values to the licenses it finds within the dependencies. License Scout does its best to resolve everything down to valid [SPDX IDs](https://spdx.org/licenses/), so you should specify licenses using their SDPX ID. + +> _Warning: Because we cannot control how maintainers specify licenses in their metadata, there may be a situation where License Scout cannot correctly detect the intended SPDX ID. In this case, you may need to temporarily provide a temporary Fallback License in your configuration. If you encounter this situation, we encourage you to [open an Issue](https://github.com/chef/license_scout) with us._ + +### Dependency Exceptions + +If you specify a list of allowed or flagged licenses, there may be a dependency that does not adhere to the specified license(s) for which you wish to make an exception. License Scout allows you to specify Exceptions to these lsits as part of your Configuration File. + +```yaml +--- +allowed_licenses: + - Apache-2.0 + +exceptions: + ruby: + - name: bundler + reason: Used only during .gem creation + - name: json (1.8.3) +``` + +Exceptions are organized by `type` (e.g. `ruby` - see Table above). There are two elements to each exception: a `name` and a `reason`. + +Property | Description +--- | --- +`name` | Can be specified by `dep-name` or `dep-name (dep-version)` where `dep-name` is the name of the dependency as it exists in the Dependency Manifest and `dep-version` can be a traditional version, git reference, or type-specific version specification such as `$pkg_version-$pkg_release` for Habitat. +`reason` | An optional string that will be included in the Dependency Manifest for documentation purposes. + +Simple glob-style pattern matching _is_ supported for Exceptions, so you can have an Exception for a large collection of dependencies without enumerating them all. + +```yaml +--- +exceptions: + chef_cookbook: + - name: apache2 (5.*) + reason: Allowed by TICKET-001 + habitat: + - name: core/bundler (1.15.1-*) + reason: Only used for .gem creation + ruby: + - name: aws-sdk-* + reason: Exception granted by Bobo T. Clown on 2018/02/31 +``` + +### Fallback Licenses + +In situations where License Scout is unable to determine the license for a particular dependency, either because Licensee was not able to identify any of the license files or the Dependency Manager did not provide any metadata that incidated how the dependency was licensed, you'll need to provide a Fallback License in your configuration. Like Exceptions, Fallback Licenses are grouped by `type`. + +```yaml +fallbacks: + golang: + - name: github.com/dchest/siphash + license_id: CC0-1.0 + license_content: https://raw.githubusercontent.com/dchest/siphash/master/README.md +``` + +Property | Description +--- | --- +name | The name of the dependency as it appears in the JSON manifest. +license_id | The ID of the license as it appears in the JSON manifest. +license_content | A URL to a file where the raw text of the license can be downloaded. + +In addition to including any files Licensee identified as potential license files (but couldn't identify), License Scout will also include the Fallback License you specified in the Dependency Manifest. + +## Configuration + +Value | Description | Default +--- | --- | --- +directories | The fully-qualified local paths to the directories you wish to scan | _The current working directory._ | +name | The name you want to give to the scan result. | _The basename of the first directory to be scanned._ | +output_directory | The path to the directory where the output JSON file should be saved. | _The current working directory._ | +log_level | What log information should be included in STDOUT | `info` | +allowed_licenses | Only allow dependencies to have these licenses. | `[]` | +flagged_licenses | An array of licenses that should be flagged for removal or exception. | `[]` | +exceptions | An array of Exceptions. | `[]` | +environment | A hash of additional Environment Variables to pass to [mixlib-shellout](https://github.com/chef/mixlib-shellout) | `{}` | +escript_bin | The path to the `escript` binary you wish to use when shelling out to Erlang. | `escript` | +ruby_bin | The path to the `ruby` binary you wish to use when shelling out to Ruby. | `ruby` | +cpanm_root | The path to where the cpanminus install cache is located. | `~/.cpanm` | ## Contributing -This project is maintained by the contribution guidelines identified for -[chef](https://github.com/chef/chef) project. You can find the guidelines here: +This project is maintained by the contribution guidelines identified for [chef](https://github.com/chef/chef) project. You can find the guidelines here: https://github.com/chef/chef/blob/master/CONTRIBUTING.md @@ -36,5 +191,5 @@ Pull requests in this project are merged when they have two :+1:s from maintaine ## Maintainers - [Dan DeLeo](https://github.com/danielsdeleo) -- [Serdar Sutay](https://github.com/sersut) -- [Ryan Cragun](https://github.com/ryancragun) +- [Tom Duffield](https://github.com/tduffield) + diff --git a/Rakefile b/Rakefile index 9cd428b5..76493654 100644 --- a/Rakefile +++ b/Rakefile @@ -17,6 +17,7 @@ require "bundler/gem_tasks" require "rspec/core/rake_task" +require "open-uri" task default: :test @@ -36,4 +37,10 @@ rescue LoadError end desc "Run all tests" -task test: [:spec] +task test: [:spec, :style] + +desc "Refresh the SPDX JSON database" +task :spdx do + IO.copy_stream(open("https://spdx.org/licenses/licenses.json"), File.expand_path("./lib/license_scout/data/licenses.json")) + IO.copy_stream(open("https://spdx.org/licenses/exceptions.json"), File.expand_path("./lib/license_scout/data/exceptions.json")) +end diff --git a/appveyor.yml b/appveyor.yml index 3e2b9702..5a893e57 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -os: Windows Server 2012 R2 +os: Visual Studio 2017 platform: - x64 @@ -7,13 +7,29 @@ branches: only: - master +cache: + - bundle + +environment: + matrix: + - ruby_version: "25-x64" + install: - - set PATH=C:\Ruby22\bin;%PATH% + - systeminfo + - winrm quickconfig -q + - SET PATH=C:\Ruby%ruby_version%\bin;%PATH% + - echo %PATH% - appveyor DownloadFile http://curl.haxx.se/ca/cacert.pem -FileName C:\cacert.pem - set SSL_CERT_FILE=C:\cacert.pem - -build_script: - bundle install || bundle install || bundle install +build: off + +before_test: + - ruby --version + - gem --version + - bundler --version + - bundle env + test_script: - - bundle exec rake spec + - bundle exec rake diff --git a/bin/license_scout b/bin/license_scout index fa797817..87f8e501 100755 --- a/bin/license_scout +++ b/bin/license_scout @@ -18,62 +18,6 @@ $:.unshift File.expand_path("../../lib", __FILE__) -require "license_scout/collector" -require "license_scout/overrides" -require "license_scout/options" +require "license_scout" -project_dir = ARGV[0] || File.expand_path(Dir.pwd) -project_name = File.basename(project_dir) - -# Create the output files under a specific directory in order not to pollute the -# project_dir too much. -output_dir = File.join(project_dir, "license-cache") - -overrides = LicenseScout::Overrides.new - -opts = LicenseScout::Options.new(overrides: overrides) - -collector = LicenseScout::Collector.new(project_name, project_dir, output_dir, opts) - -collector.run -report = collector.issue_report - -unless report.empty? - puts report - - puts <<-EXPLANATION - -How to fix this depends on what information license_scout was unable to -determine: - -* If the package is missing license information, that means license_scout was - unable to determine which license the package was released under. Depending - on the package manager, this is usually specified in the package's metadata, - for example, in the gemspec file for rubygems or in the package.json for npm. - If you know which license a package was released under, MIT for example, you - can add an override in license_scout's overrides.rb file in the section for - the appropriate package manager like this: - ["package-name", "MIT", nil] - -* If the package is missing the license file, that means license_scout could not - find the license text in any of the places the license is typically found, for - example, in a file named LICENSE in the root of the package. If the package - includes the license text in a non standard location or in its source repo, - you can indicate this by adding an override in license_scout's overrides.rb - file in the section for the appropriate package manager like this: - ["package-name", nil, ["https://example.com/foocorp/package-name/master/LICENSE"]], - - If you know that the package was released under one of the common software - licenses, MIT for example, but does not include the license text in packaged - releases or in its source repo, you can add an override in license_scout's - overrides.rb file in the section for the appropriate package manager like - this: - ["package-name", nil, [canonical("MIT")]] - -See the closed pull requests on the license_scout repo for examples of how to -do this: -https://github.com/chef/license_scout/pulls?q=is%3Apr+is%3Aclosed - EXPLANATION - - exit 2 -end +LicenseScout::CLI.new.run diff --git a/bin/mix_lock_json b/bin/mix_lock_json new file mode 100755 index 0000000000000000000000000000000000000000..f60dfeaa5d3df6756a6711bd5a233e45feb57695 GIT binary patch literal 995338 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

coh8;og5$)R5;V1G$ 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�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%0D#!~5vHpuEQ0X;SS0j^st~TZu>~ylX?1fo{cv#zq zmjQbnBI+};E}ohx9YTKyCIBHji;z@&@~5T=;ELW#j5qzf3+K8^x^WHBE?p%zb9uEA zHsSbzMKWZ`;B>zWOSs=qY`{Opsi1eMbjB}Mx-~7l8}Tw*z805Ac}^#YR3A@dO&s1O z;n$-T^RCaJ3Hfw1Xz6SKKBid>Hf##$kv$Zpwka`&5laDA8&_``_WX{XmX4KnHF+JD zk_~{>>mM8?Z2t-%g#wEF@%m3}lyHNAj^LtRGMLGzAz6X^#@@TUQEc>7zYpuws#(2; zxEf@1CTnH%0&0{6-ln-Q*|{WFX;~J8Wz4YxlkMmvaVe$`*}MONTKIM|`~O~X_*3biu<1&2N@o*%X5;pq%_ z$Rf)f zO0v-8^E`*H{Hy|1t1+ZXNnhiz(baps0IVzQ>ySqkq!az@)FAgFy4k`p2zi@d@t|IP zUa4&MM&3-wKw~j0IgBw2`2}>sfHV^P9grjhy^!1o{s{vrs*rowAQMtGH=evqEHR;^ zu`ov=iEe`J(HD?|S5bE{pDqYH2NF2`Ot-)_TN}9K1^1sL$nepP)jQTm={u*2N$Ws# z7kGtrtNQXX?Nlh=N72ho$+ueA6YdRz#W7(=Y880o?DZ29$BSiTdF6LD)-uQUQp4K_ zZD8py+VXPUjg_UFjin_#waF)t<8Sv|H0_PYIiibGHo622pX?O8-u?OUr+cGq7EOH;qQTDSY}uMm0;R6{(o$p zbCBo2*Y3x*ZSC0h>|n>XZQIs&$F^qm6N1Wsr-{pPIsTDKaZFvmdcbo>_HdPkfG$iFgi<}q^FZRn& z;Aa`ZyTejj!CRU9=OUp(*Bk~h?9xWikR?ahAE%dR{`4H}y1lS`TAW4ii|%~&N(;iK z1`JqKxqo3X;9S3=%_Egq1LXRT6I>dU?A_7uON3E9=^NEqI?1AwFB>6Th?#GM2h`?5 zx8b;2v9CPBUl5DzJLIe!>R-+n`>=;JKHzu&Ilwq(Sp3${@@@>axRvNzMO%tdiKjy& z0PdOaEP?J?ExBL&C8p4AeIji_cDJDq7=KpI9OwR;1_*yR-{g1h99!P9Z_tE;dL6+@ zh)??!519&AfqClTEvKFC&cKmmuFnpJ%?`dl|KO$gQo%QTbjjwe$v(6FaSF_1)}XsU zkz=GcfvpZ)2an}jE`xJ*Zhj%~1u?DuiamxYDhq>KtGU$You*k@CH|7sxp-)5UV|4I zwZ-OLWL)^d0wZF>(6A<0JncUl#9b79bB5EM`%_YIpjc>?N3nHcHxH^yttw9yZrZ+O zNSV8eH$sk9Le5PXlW-9_CpTD!FKLlXExo$T#;uH3I@^@w#;h0A4tLT%$*)H33^9%d z6Er02NL!ysTff*W0fOtW-Jh-J3be9N8;3HNIILEo&6G$l4n}RqBea zJ%DJ|1HV;_csUrNsl$VNSWt^Wn;mXkd(y?KPkvp-;PJ}Pc z70C{|AothAo+j78azPg!JlcFT5)h|H2Lp{h3}nM9$P^}#fht>{q51 z;j%sop?HLH!DnT?dcf=xS%A)jB?o{R>>Ml_&LZArPJ;KS9!VoFT^#W5xM(VFctxyr zgmG(60HK1AXBNV3>)-?M{M!7#t)v{GA*um?UR6Ai(wUfP@O57(;-_`&0=q{O^IFAOS!JPvF5M zLfox}{=k1p@=t(}XidGoy8Q`9Z-eMCi2}f)NOZh`u;dY*S4aI@SvSgx84Tqc&Ihm3 zZXVImi2ENGtjj~gSfV0N4FDFL~Dd+q6dehoYS$&#TCt)@fuCgI9!~pR`F;mm{XT<}f%LUc4B%w=zL=v$je@X%IRYCAY%j4~yXO|sz}lLH+@g9A^1GPpInAQ-SBw1vc3MuX4y9)!&O4Oe%D;F zj1Cav3<*`ek^nh|_#=Zw+}SYhfiIHd>wQ-EK2I9`E>it^HVhuz2aes3cihFMQA(>Y z0oX`>e(i$lr6i*pJNetC3acvy8o_7~uJMfgYHy{*l^ryAYcR=eu}d|2e-8N7qt{d@ zl5@$o^g0EUvVmOtAc3Jr1GtqRYv@PDe-WvS?N3r!_tISsiR=a$(_R8$v)qa#mQkevpqD z3&c#iU<+%hT5qM=stL1s%AcAo9>GAO%}?*We@`4rCsQJ3%GmXv2i|xEYq`1zC@HAW zGJ%~%-2=HJN9skJKHyk$_azt|K=oSc>+;A*)Fe=}%O?(HT9KL zW1T4EP6-)0&_w7IknZUIxLcRhHYtE^`O3U^P&Qqa#D>2T)3ULODnO>&qohAori`b2 z2R3u<15-7lu6d1~PypXbWKA6bb)!!MaND#Yrf|^3UKB<>)}PFQbsW4e1z;Bzg)QwZ z=<=1I^T+Y1b9h_VuB;K;TIBb%VM}e>W^Aw1S-Zwn%~@O^bE%Mtp`?reXJnG+Q%@H` zZ(h9FBks;MLPV>jfZe~j-11XLo{to5LS181wlHO&2GnEhIl$EOPnV_u9k_KZgDb5} zhQ#K&wtzxE=u4lBEV<@@J#NNI@mzZ z*c)H1?MeA$g*;fYA*&RXq5O`uVVz5c0s&Ml!c!Zei=B%KP95@29aYD!dB?7b|8;UD zfA7lC!B=QYsOt0{o9?E5$voQ)Z@H~eux&zBAR6z+YsJTV#;;YE=j_Xca>!T6OFmCi z`z5I0@$qY$a8bSK-s8pf{I{gFnPRi}$7yZmD}E~o{B(ySn!#vkE3xnEJ5hV7Dfk3{!U13ci0`&Z{eT{DeX2;WIuEeE5jg929OIg zlut&+)W=MzKm)TFFRR+pNz}05b%7a(Z@7)I9#?g1QqE0Kzpj`Mw*FFPn?U`98-ErE zd$MP(OG~0Fpm|V)c?lw&10o&LSXa$UO`|oK&rL_*6W>YSz6!Dl zm%!ok&C3)7G#)|{kquaW_O&U3=G2g+EY5auoJH}x(*k)`TqF;w&GCZ8IjlH+vQ3nx zo-w|12f|77Mu}EpD#U#tx^N`th7oyY!Hbhpkr=fH7w!~bdh*fCQNKOYH%+u5lY7rr zoly^I3;7&~g_5gDal%l+e-OPT@jbakauTk!)~?;jynp6C3$s{!Lr%AkOnWTl{jyS{ z_pBsa3yXsxPTJ?%Ft^Ni0G$sF{w)=#)8b4`L$>l+dIX)V#C=$y&XsS$8CN9F(!0Ic zyPmN;HoOjY$9=&CkwdnQgYJ=o?&BCn9D}O|rX31n+S6IgbMxAYixM>@V5|IaRN=$z zh{>A;@Nl*$Sp^N%Ej$-J&8xkW!5Mteps_T3;LxY9tk&XVAK0g$K>~k`e43?|-nTBf z7M%qN`W*Ooa=Sq$x|x-g`hj+j-y|9JceL5cex2R}c5Y?~W|Q_z#d}iz^rT!#t-;RT zigI`vG`z)|0p4)sni$9;+=cV)=EyTw=r|HR$)Z#*rSCJQ&cEI5(nNbDQE!&|RmOW*EevPjO>idu@x*M6ZXXlm7R^ zEtRYe7u(w+LN1No$-!QjPP~M`BIM*dipZe zAA*ySZc+fNlkW!&$@_Ec8+qL4x?xK|zZ236t}WP5O{&n_nMYuTj};Sq#f;G-;p4eL z*kYb_4G$q?re4T%1>n=kfoZ`nbn!a;%+2d8pR4_&1|6sZQ-9TOsp7j283*dhZy@Z; z=7kyr&z7t&>f@nJ`C0Sf{!h`%JE&!Tm-C;-??d52`j~|FOTzgt85o1HsV`K;9?Tvd zA3fUN{>HKSA=*5j$fK3nwAti5j5fWojJ#O3Obn<_=tf{-&|>6bNvSb?oD!4JGc?(# zjBr9hPXwyJPj2#Gkwx!G!Lte&ErapE1T;UoV5TTx@X{e8Pgl_Uf<#$M(5GVP`k`St zqsBz<>qNa>fHQ)a)NZ(e4}Jp+KpSE#lZ>C^!w@Oyynt-B7ZSNI=`CCeGoH!qYu;f0gmP7I!(x5t1h(Rzz=)_ z-eXfcz_uiT?fO&6-3ip3j}M)~^b-y7&T;s^gLDSErDq(088BHd=hic9Fw% z!2DVsQl)Qi8+*T{XK{nCk#7VdN~C%Tk)5+KXM{d-I`DejwMR*yUt|NG!)J|^je1QJ=sXlQ%w3sx-J3S^}=a`Mewsqm<2ho<=|^dAm%` zq2EZ`rtbB=ZD03WPHL>OlS@0U3mOnUSDfAS7FBk9zWa*IFmy9@-*R3{wE5UHU9K%U z^lZOcjr)SVFc3DIoFw=2$YFbQFyMSUMryuIp57a_bzHwEhh?PTcdmAddcqr3Q>6Jm z&#v#)s7!i3-VPqcr}2Dd+N8wzJWp@~CT!DRrgmn0b|-pAPi(iJR!1Lsbkpxw%7sOJ zhQ8lSuNt=>)CfM#jFhgw-qs2T_`KfuMzSyY9^Kk7bMRlz?hzktHM-1HXPP%wLil^y zE#5M}uC8wBO6W>`i!V~pW1=|?KSg_5o36LgTax|!{(NxUUh@OAnJk}uAU}PU`kfS? z^`85~x%{{yVr=l7;vVmpj^=7|K3UoLIr%@|#=};0+PqGZ>u;SHUOp7B$}Tv(8}9}t zMS29TZwu%(?B^692|P!dgQ9bs6Ta)*{F*3lr!oDuoSW+Rwxuf_#Q1n$YB+T38Ss+s=3F1x$-!jCJm0o#fqW4RqZ)oS-_WJ^MBJvP z_O!>yVZ5u<{p|L9Ku(1I;v34|`o*L!yy*xN1a470ZAUm%gcAnZpxciNfr7}so_Pw5 zpaj{o>uZx5`b&E@`RheGB<;G?^%ivfzz&h`o+G%1mR_+ip}of$tiZo4>%xv{n3ls| zVg9NZ+6i@{P90%&fs{ZNNR6V7NI-GTpj?BMq&rZEg-n#uu$J_!6t1J9J5z;;23xZ* zY7TW03^1I^Up+>?mJSOOhn>WIDywWtN!nLw$H{FlSWKaResm)aCttly6$w4w;T#+{ zq|j$=WQj#NGPuEio)8dE_v^UaPh9)`@;Y+3bNBe`9qV1|-N^d~VeFAP1^0-eO(S}= z;fU)_`}OxLnMd~~Jwu{gf|8@=^ytJx4JHa-Y-2$t-HrN zQxAYQz`Me`!@I>hrc_5ZHOLj}V-S^W^F zOn(CZKN2h@XGaTLGkOto14k$N-v-YA?GtMXlJ>u2rxgF&IdSZ|*rlODEKkB5VV_(E z7j1B&kf|!byr7w2YwMqFd{jo3^A7?q9Bn9QR|tlWHj(736)+n_DT>@lwXa9?1wIUb z6v|w)wu*)Gw%hJ}-R^u2wR3n~#{)7q$BIMCnB$BwDM0bW!ypZ8e~oF05w*vFN)yCZL|{_(GGh@Vwm7v+Qmr^*x_ zl9d`@?^XVV)zGHi4OYIpyYK+&xv@oI_TLEw7e)TU3jK|RD*h%|>G7mN}+3ATQwz4!59K&SVT zLv!yySUGOaIY-}vxxd0=lV+|Zm$r!0?oQ-=wFjo6NnO2i8(8%E^7>@}uUQ*`lWEQm z21*u#nNj=yah-$x<&QA^b9L+|aQ@Ru|J&>Ex5@wXI{Ysn6z~`*`^SGIBreK2)*H%b z-7Bsrlz_9UELI!r(FKHb&8OTpl%q56vJ205;;Ba)w6X95x8>aiWEFHXF!(!G z!xzQqFH@Yb+6z2P_JJW{TP<4j7t{-(b5I|%E#51PhO%9I?C7wa-Ya!ev1<#r+3GMs z7=Vo}6=Qmqa^G0yzZ5sB=2)cPX|ledJiligj8qnE>Q^JrnpeAga;O5l*BUgI zZc}yOKm;V}n}=|`5t)W}t~K=m$B_pufwsqgCY-mx7c?!)ebr3bhv_UglIchus189~ zU~_H392n?2(NBFmhxaVG9Yr@X!2eP?ZlC`wrw}K1&m-mP8ITVUvME zFG7eLoeIj2ADdgu%`Z|0SH`i()zG0WYK&J#1Fur2Hs2>QM-9Fa8gUdOCz`xNDRe}# zEzLDHP?N;ihofm*3}^m(q;02nXWxQ#C!xj{S9iRYf0QXm zpfhusX>t;NWCw5hNiJf&3zc5VE4B*7veYC=qcdFZe*tlA@AF~o?1n>ATN!$`1gop= zM{GVL;wN?=Z_lr|;!m+GJd^^53aj<=OB?^0dJ$-<%mQHhxjC zhhI&n-l8ewp&->dA#R1?65ZGaK1+*&1w zVb7bs4XnBz-r%VuXT(64s0>IS;1{%x5N3TX*^nlM{D71MTL|X`1lT-iHN-SlG*&lG zpYpm~7sJ%w^@8jX{!09ag8xtT829anK)_F)^8N|r|NI4%UF`px1_$g767;|2Czbz| zpV-c1(~C2rG#`loUFu2gnnOV;GFFL_+9Ec2PxTq5B@PQy|LW5ugE2_5VF)BO5kdLT z5F>Z{`~;D}86sa0sT3ARhO)DO_2c)x0++q}2+b zAZ@GdtS=8J5TG2fiC3#p+_@=Vc90fsEmZ{!L+ z>88`!21Nk(DxVrQj}QdGyoE928O!HN1{7w==h;q(-+v5^p|DO`3DOHLB(Am? zj)N;D{Hk>Z!Y`N9tQ-hGPp8HJX z$Cu*Rqrv&JUJWcTKdm{guY$_UO}r3oqP&aQPHcg#5+ZOKUBoSaHkCRDqAn#*==1<)ff##nig3UJbkI1fF{F0MG zy$#$ITrBOM@jCh~P#uTPt&IykedWLVp1dMy5@TP59UAiFI^}@3;*dBDx$5KF$eaAQ zqEu$~JiI*NS?$|pz*dY~0XWU;s;&Fea?+93_0}RHhbVCFT{N_mv$fOHymReZ)5!}QtJ+fxwX2g}y@*LzXuSpiul-@_T#CZ8_$v1_QID~u<4V;3=X<)z&J|H)doy8`Wk z3_w6kKY{X}_WIMe`bkv(Uwol9v^$#UQ;w{hu!)2bB|a3?c`sNhF)N((AQ)PPv@i-W zQdaK15DJ9|7Sx|fX*6Y49AyXwBxjqb$iVj7-+j1Aj~EP{H|lCSZhWe4U9MX$E-Rnk zx^7d_M}nVU-g+e!dR?B6|2$Q;1~x-RWSlrP3?OhmagakMfJEu#l7)SB2_nt#(u ztNHlQZqH#yudE;*B~okhsF}F@PUjwoBfIs8i(ZzPh&8vWFf$k8WJ}NJI9Vw$a9jab65daci!w6fp8=B;SW?X&Pps z^WVg=8Pi@~MFGHBL=N{y;mb^lX}6pHCOj*~Gjmu%#p6w)lU~UNr7Z(wyZbVpT2%h2f?zgs<_ebKyPOqff(T; ze7Iap>lw~!az7%WWa{l9zJblf1Yq#;kH^y>w18tE3@j;*ZgwrBY9Pk}jD$KPwbX^f zaMr2pAV)O0xCWD^*<_`1v8=D-oMDMAM-1T(&>Y}Lot~Tj9VTfTL-ubPPHu9kBw3$Z zcGn_Uk*%#N0(Z60hN*^@b($?K<8n;!M}szOCY>j+2v(-E3e}WjuijiHPzy1WO2-3I zG;$h(tmt4M!-#2o4sjkP!51N+L%xf#esJ!;*G#XUW-o=i2^17> z3@rimcsuQSx|*Cn<%=`^ZXrzhOUqUp$4Ozp6~4p53nG(upDbTvBA?MDY@&NyrvDz4zep zaG|Kz>&zQprlkGk@jyvf@_Z$OqU6jeC&}XBIbQs5kBe{`eR+ z_u*eO8ZPIHl`I~Zi#5&|Xuf>#fc89wB+116H%!zLd zLCO30+`CL>YJ-qu9}Up(s8jzwwOj%sF_m0GDHW~^1P7#{-f8=%Z51e1Z{|0gs~AE( zkD{-0tnGp%J*H1i$+K7X@^#wBEPa9ELLtzCVlw(UQ+3=~kZ=h+jEqukP&p^LOFaeJ zKBrD+@$t;LwO!zC!VoQ&qbll;NN;cts+n!?IxeI%LnZ9<+B1xFAm)84-jbX7Zn!Ld zqemi}oPnCLm{3=h_%%v0tnyE2TtH7#XeG8s{h9i%s|0*;dfduh?0S?Wx{uCs0ksX@ zu_`>*j&fGCtcWW+k8%(9N|g#X4GY|w(cwhfwDtqSZAH=Z7|V6SmPx$`O@fNt?G%AX z!u@7?Bf1k7fw1Bht5LVL`BOp}PQ0sY@dks}Ix}00xYy<8f;-=d_EM|Rx1 zY9h`rvSZ6~lvS0&8~&wUJn5FBLp@2&WE`PIgg*q`t`Uh1z_*ku&@_*rR25&uSIk2? zlXQ{tl*CIn69?KCUlPRiwaz8fHanXcD$WA(TI`ptS$;S!J}zk+u=ln4o%LX#*i1sM z=5$nc^#voBrya*&<+SBkL{pfCUlYk!T`8G@9qWthGDn2i6imYMo152cmF)Ruy64bO6{^iillzytm(!%s z>POIMND99K^-6W59}&e2lKQA$YjRVc*OqtS#s zMSpB3I756aw)OjAW>p;*LU-hBT>XYS*&Y8PFO+hG@h^~c zqMdn2sP^V1JCSGJh&@D<;nZfI3ZIF9;=;}!kID#^)= zf^syyCU(Cx+an`E9||RCV9Sg|RhuBbf)bLQ17hcx5QI#Ugd-3iS}|FARcEe|Jx1!! z`msAIpi_q9#TfbGQSW9~nsmN!Q?vM3-S9c3^p4&eNQo=I$NAOz)U)-O$IvTN`?xK(Wkadc*g zrM6AN(?Iv6xk@6cu{^FO z^Xf<)@#KlrQpd!mmG1F?Qc|taZYX=frKFNb`B)sLvd%g^>RCXY8F|cEK(~Wko}MdkDnN3)W&I1*YWUp z<)V&LsE-m2$KwnW3qHp2BJh*ObI0ehHE>+oyvMCquuPfir6lJbsXoJxaHVN3I3wPuS_Cobu?N;;QGM(TdY61T#@n zC_`B^-FHl}n2j!m07ht~fIY9h2`VlaD$tm6Oo-BmC{!@07s)lk=g!VJxXHMbm-JPU z@KrfGR4Y`rtd79A&Sh_#H>w{9E!9D(XuMPoQAm6$mk}HDg5i$l8omBkeiQ7^~-2Kh2IAks^DWs4iX6gdfkOdxWpD3%DC4v}Q1wHZDjYqv zc0g)U-$3neC|_Nu1db$X!06%62Kyl?VF(+~eM19aO?8ShnGRt*aX`^h&!@ecjrW&z z6g#I?wbTJVQjb{DTz^(>r%;86x&v~|RlqEq)UL=}pszDZ*zyQ+B@{2rbIAWL(uP|FE|9g|PI1kn*a%tAYi~!FSw5dPuD=z*bMf<{rg*JpSD6@$G}qU*JH65$DL1*s z)OmCuZx{wIWB0ZG2*Y_@LRF)i`c}mtRVx5GgW>G+^|(Y0 zDU0EM&T9vmdkwL6jU(vj6_V8XlB>fC3|VX!WQ#j-|LQAmBP zuh}DyCZooi`A~Sq)Jw3F;78#*q*cK@$_V>qUE7ne$H0y&Hj`Q))49`*B{hEL^aP4( zT$0t7i9>@r{;_TL zWS<&qGB_oC$?^i6)6E~=H9rnWeWe$hGj9$ zOo20uEFdG{{lfCq5e^iWR+S6{ZKNG3B_~`omk}gj<_)39;QGC#R?bR#&8FqSAb5!# z;`#-yYQUm|>^()hLY*zYYED&$lRIJxSG;c5HfCxNsv#k)a7b{NsVdU^!Dn0}5F(bl zYAn9)Q5?m(Du$!Ir>6SHT6BGCV{~eRmO~Gk!!B-BlIAg#Dv3x#NC=qO%>c<@>RwO^ zh4fkwtK#jvGb$NVEg5U1&1`uwAf;ky9Qr4ZHA>s-c)`ct$1M`I>HdrqDT8 z(Bi_L8aMfJoazjAA%U|H8&fG2eO)TK_bNvBbmZt=EON^}46)*>jddM~W7yz+Ax5P8 zjB5gT-#a(YTGDgW%asQYk&BsLQkFrPbq8__iJMNUb66@vGf7H?oK%HfM-@Mb^IPOq z@*ATWxSAdp;#Qjl0d>f1k$iO^bKe~{MFoXPHTxQq{IP<1*-9dHMcsCdY|XQ;2^*bY zg#xgg^0f2OFS9%nZY@Kzr>gMje$~j#ZIO5AgsF@Z#=9~kjTm^s>`FeOHjX7SEBS;> z8Fb}xZ^PH1WjQMucEZ0?V&+*&<&{I{9m~`U!s?y_z9u&2suCKo!*_{JeVd~C)?I_s z_{&S(yw%#~VIfV_i`WJ)YVcQADB%Oat*__v$L0b0b&k5R?soNt{6P40g0_3S_)(ES zT8Nk7(+TRB@@$tY<^pgn=IIwH(4ZS^5m}f~Db%>5eeAJ8S=Vaxv8%6Vnk76M7wW(( ziP7Zd#D{tI!T}3D!5|Ij19AIP)|@p<78Jse^kSnoLR<|(5g6{!KeS*+`36dTn({aHRNCKP9(7~qyATi`_wgu4h7Tkp^Ac`U9p7 zJmZZht}FPq#&;6mx<|OYZW;~{7YVzmRU9L$;Ho;8*11VBrGnU5M+LuZpzjhqY-Vi_ z-~kI!R!6af4t#4&90M9Ut3r{4tia69BIUMZ;bTphw2IHjUv(7*0!aMmqMb$k5vp84hp^}* zuOwI13shGm?-@QiubMOohC4k&#!}`l81=mYVR{XQfTIJ!8o3nyL>AoO%r@|us2fMP z)@5Uf&PS8a_92TIUL$` zKzQ>*Q7Z@}7VZX{h|Iv;(`^nTo$i!tbn_RsRBYTnjIMW~2LJTuROB5j0h* zoVX|jQabRr-PMrATJI8WIg9IO*GIRr3fPg@QM{oX{8n=vdO#QAJGPAKu?EY)+PtKa zyyTHKNio2lG~L{U3xBlzK`0wsmCYEUU!TtNVfHh<Q&RmR%3|SBvX8%>0X;PAF_rqB2tZaz`BiA@Qf zk*=x4NHAqrP3V0eNa!QZr^?8~!6B+cgfN9C-u;>nS&heF2FXrWuhaO}-IRc&EoSsM z;Ix%E9Pdt8uFW^Vmckv}it&kpX~}^36g6|)KiDepn@;B`RdSr$U!`#$Zx#tzh`38c zQT$4kyj5jQ&g)dg^JX&3@PEO3-KQ%qmkJ+%X>nHycys*ts(r;XXBLo8?w65I0Iy@D zvXlaQlbEucXU>;DV(=suV{TsAY{&MqM3x<~^U;RcCxn7_kFB*d+vF09kH1MCo{5kmNC;3!7a(32*tKc@US;vDWink47|`78)^YpIDd zuF;6^`U153T&2EA%gRPlw6b|{9l(* zSu6v1#>P5+$)fBU6Sm`oC!k^WTn`L+0szm_&A{4=0RRCgZRtyeZAi@P=e>QO{e2$* z01;tw=)I?R2r|h2HgAj`0uxY6_Q@pvh>A&Izjvj;4}wYfxVKNbzfTGP2;ipzVtjud z1K&TCBjXC)%1O}vqCOikV?VdS^ggOn@`DIUy;LO1_CGF}vPL4F&7bp^c{h79FkGbonIP$Uib)5l9bA6#Fzs(Uub*+_P1A<8@l-qMLE^t6U?ykld;Wee&8-RC5cZ4KxgcS2=8Y6S1 z&@GPe+Wm7!cHpCzRKDN0A;Rm|%2BKzV!Vhi=#Qc_U%QA+oZec{>ZIOCeisb;?9 z_Th#Q1|zk=;dH0&(CQA{?ZU+IE%TK`XX=UNUvqn@ZE2y=eFDA-55DT|_LYWQFFwHG zVpt)n$-!>Ke1=Qz?^hQ|)9cuPi1`U=Qxv6G#*P{}yzPRHyPA=u7zWJSqxu(|H!1!- zmrv@P8wC7Q)NQ;39nk4yVI9dhe(3~j!Y2fpWyJljOFoGer^X1+>Mn{qXT}0?wZ7K% z9ET({*B}ucFZZ?tQ+I`qC~1D(yWRX|IC=M z<^N@JW7>jL!y;r`Id;ktVG??XFHXtLs5Z-O)DpdzzDB$2F6~NcpH6I?r$0kF$F^O4yhE|I_NTMU$_QW;zQl>q|K>{iE{Y$Y z+bssqSpiFDJ*O@UzF8|Wgo76#6dmB!RbVwkf2we&tfQ;kX-2jqqmVi28Wb=0DBkJz zME+uz?^Vw-vl`M#Edj`{ksm@*D!^?O4gH3S>i6PX7DEj~)Amnvwlyd&L`SHpP9z-3 zH}F9mFpVw% zgg<)&HKt`#&(kN5CrwBSCJsJ4-O#~}taUH-pm~D>w?|Mv?SB%Ser}$C;3#1hAWW)` z@Zdq+#TdJn27DZ^b2x{La~RZd|xbWRMqi&1>Ip8p=@ zapl=t*AqZ@-~b*>3}OzWs1V%LL>a|SLa;={Y(wKRL`gYH_@5@OE_%@3CKx06Euj;_ z+*C%H+DKBrW|5$#1c?^t3H8^rnk@<_Ho$df!Z6fW8!X{8EJWIogXqZLEO;U0V1FiY zkrp4DXDeg3RrMv_%C);x?y40(|1Hk3imFtc+m^h55u=phlQbnrl&j{qSXp*t$mUTO z`fKmSHSv>fFrqN=ukIG|uX`9@3mZ2mKq6eZ=EfeDz{h&0(0PQ7{R_&(?3Jv;YcWW| ze=^JJZA0Yzpb_I`Bx79VvaNq-+81W!0Z$+dT9a+*pa-dAk$hm=JhT$#`U>SDrrY5z z3ToIAn317LW!Z7;5tg&fd+fgVjdx}v)1i}We-q5{nD4K{DUj%710C$x!MK)A-~))>qAN%l)VKM6KF*D-L@Se?_sQ02fp)7h%NePFj}5HlRS zto6{h|3g6ZXF7!JBr-npLZRiZM#b2wWo<{FY>q1xIxnyEAARAdvhs((uXxx@z+7QL zH88hl@A90-YLy@|Zf?PS9Uzaba>E!A#F+_Yo;y1>@W~DH3HTuBA)j85!6!?I6SC_q z7>9vzO$5sY+VHsF_u?35%qwn;Ky-z)c4N2N$BSIIL>XIU*^YUd*yx z{Z5zGI6usTqMa;j=E~WnY>WVSZlZ6>dq$p~Z_sxIc>g4MSZ3ZJ3Xj67M3r z(k@cLwVebbwll-=1J}a3WdW)$sBf0^UYXgmduYJ3Cy1za+Em@F!8~h9Af=(&KZFB^ z$xO5q7vYGD5uRt7@bwkln}u<7SPNqH1$kpwE!~=9a0~26kDSU6c=&7hUpvTnPdc;U zd4+9r#&&{d<-yz5EOT3lMZI`HC$@9-ucaE$junkd&r?x=Ue7ekM1dZpQq)R~i^>^a z{Ih0LU#+gViV8&dfqzo0mm^+ik^w;wJ+5*z5o``}d~|igg*N?IK{MG(#-)ROEqG{0 zA5^HhN|Ro6*kPrnN!sC-We$)|gtjkf_@*)QTmLJyeJ7ntM8>6?h%)=Sv0UYpv%05@ zZ+Q;y=aVhRS^}0?zmF~byxpAkD;I(QD=1@Eu^fg^qf|p`mx=#*P9t{rlCfOCEF00o zMz?P((tzjHwiWTT4Vr~!-s9b{=Gz(DtWxsxj)BMb)s62WdP@mk7ZO{^VOLOpp87PM zZp~X2@>t?0T1*s=%o8icSpdR6luA87b;niph5jc#sPMIg)ty(>*md9Gv&6R7Ti9Bc zFfISo$%aL}nc#!xWQ$blwYu|`S-shu3+Qo&U$6HJ^2IO987E7`RBMJ%Yw#vWa7*PN zK4Z5nC`-hYQ!jUf9n|r%p+Ho6N+T`o2`G&B$C3Vq{x>6}W6n=xs0OV&e#14V8uFup zk;w6%Rakm>oV)Z}XZfksg*c*jOhX<(uH#KqLu%3%4yebY7Kwff1D(Jcfqs=J86i z(n-&B%Ysedra6{nMO0Y^Hip>T8R1zoQK6iph|`c9x!*HC%77nyArs>C4M-4~hpj&u z!)iRQT|H*sKf3VguBl1{5#3ti77~74+BvIRB)hCihZdfFLl(_$g!%TF*| z(hZR$orU4x3xL7ziQR9LxbGCd;}w$a6sE{lUlX7ehIQ?0mNlu}+m_kyiYaU4&`#6( z6yURvbv=f;XQ!s?lcfP)WyJS^FXKmf3|Bjvxt-PG#df#JwdMs2A4DbToDG)~Ezg~Z zGF{^C9k3m{NbjCMo-x=V#9v&}zOm6Ek!OHZqg^gLw2Su^1^zX>{7z&ztSuo@QtQ^c zLt1@_Z4RN--x~sgjVU&B+stbkNQdlLhgXW9bd%r7m(vcVgMpvZ-?Z=de%Cw{8<3M5 z2BmJ0wg5l7dbK$(NVL1{+>Jbe)Jry^&4|5gzyNS_%P?W;r3=v}crfBSNhd-uQ~Yxb zg%>CkPdnMQ_=5w2=@|l6ovjF9Zh9QGn1Svnc8*SK2iyJIxSk`x4-x81V>P13LhiY4 z?5W^ccl81Fa?mcZGbjC$PS6$Pn+3`x>+lmWwhdv7NtE+!a%Ph;ib>%G3H1!TSA*pk zarl`rwheyhE7*O>bEu;gStI@AMZ^nq;ghA?dx=V81O#dzAGct?Wj=zB#ZfAee1TwmwX^yofvpFVVh^^>lO z4wqf~YSi!Aki)nAdRhx4-{JTBZTn5S`A>YUYPtN+OwA4Fd+=#YFPXsC43NOr?9;(_ z`lX!yKZTbaIZ(vc-9V&IKZ3QiFzdjyE&s3-cYJd;J z${$3AxUB*Tl)%^CD)(4^=#An(eX=Y+OUE~BrfeK%fI?Ex9HVR!b1!F(#&8*qX?>4i zZi!0SInl0B^UUoFTx0yi4(}|a$h4_zpik$@q-_%86M2RTcGHe6C zbxjr!i6&4av9wDm`EA&7$OB~ZLp67A;25JD_wcb(HA{xT1d)ahJ4uzWv`btd-9R|o zzEMB`&+>m?r#e)N}r`st<;xrDZv2Nl9_ao9H9J_$M>f0A93JI0$#gi2_U7KVv zo$3g-km}C#TSXOvZ#^y9#+c6XVZvRrR29@W?l*&(JN>3oMd{a74svQ5_QddcB;Q#uy=RYS z^4+`2w}7ul;J{#IWnsZXy1ss?i>-m`RCE4!Xe)}Yj{SK)yo1ZrvvA30*zrSS9oxo& zgchk(cL{-e-jWq@ASr?dRtl3m^6y<|HB82nA>~K_ikb<#+_q<}eMag|)1y?H8kUQoiEmZ0#@Q$+l zS2sXtmpAh4Q2Az9S$%$ZkhiFe{@a8k3GH&2AkZy4O z>K|`P>-M1f_


oj>c-JGa-5uDW~Ax<#M$T>`kNnS1iPc0oxWC@l}?#M$w?7fxLa zE*r|e^e0_`tt0>Dxc$K$&_5ivrv5#V_}18NxnKK0hg(cs*oL0dPr1ESY^Jg#@9~=2 zvAm25`qUt1$IJB_>|B#7vcUyJ&O5pEkRu1o`cH8K?{Y$V4d*9`+gYJ_eR#6&ffRpo zkFJA?bn!nBOLNcaOqgXpt>OZ{FH4|(!c9@_bU?msJMpqp9ke4NZx8GY`ow_+Y#cHL zy9)c~{@saRb!Aut*iRf@OWC~?=i-hW(m^1H$bzPsqXvzKL0(ZUb+)kat zAJnzZll4{u2y{4bY?$^0_ZJ9H>Y;+YCPb!cr-Hw>;r?Xr)%>@;f1T;{1oy1z#Ji5~ zZZF$kyYIYtT(^8wr2DhY&%trUi=n)AG7EXK7QvO%iF=YwBG6#!rG27r*%!GNxL513 z!owaJ05{S*({~1e+?#eMc6RCdD;Fti>IK<{K;gDGXJER&TPx3nB;14dT!#!!DEI8w z(i|>CHbUFyprerJzuxHie2zNtJQw8fd5{L}pXtN5d0tM{f4R?vZ6y!ZDP#mv7Pnqj z-MlJk9!N)b+#B&|&oOsi<%Agw6Fxsim`2_$!F#j!Qg`fOuQiaVez-vLR<`Lyq_To< z4eyAPQD3k2?YKBGVPEsL>#F6d!#>;az1tB!^F=$?S+E)XvWXI9TNrrqOdR?@E|+IjWc_K!=W1P)Cgf!}@8hqhg)^dE=Qi!&HgOU% z{mE@SF`dzI3KBljMlR(z5(ob@Qw(?B-zE3;XVTC_!|E2T|cciD==y9PGqX8p-7nxEu;Idb9_JcaWb-QGpSBc2O_+SwQ zXhFZWbnQFT|Jdpq(CM}1b+Bx!^E`~g)$@^abkgggK| zeKNUgT_;`j_&L}eZk#0btUVo{zQ-BK#r3!zMRgkFT)#r0#CkuT^LQE5yy)XD=|ojA z_c9>jS>*Ja7*sJ0WvEnN!Pn$oJrJ6VtnPtmXhejuo16k#PHLrLKxCL^! z-C83NHo;%e9IaIw!4cKA^&bdEaztqbMA&40*=&qb$@EeqY)ZAhp!y4%BfeZ5;cfoW zU$FHBS{4z_LH~h7EK;knN6us>ro|$s0$mHOo$vV5(b}8Vhuqz4PW(CHzU%0v8Gf#B zl=Y8cJHe5Z<%Y&Sr_r#+m#(75LhdYA;kWiS-^OPxUI&_;=W)->XDi2*2hyGS4xa42 zBwtl-lp?O|c`6=C?ztnq(5!$82^SvSboBV7obJsftJ&Ka%5Y!rszq;0b%Gi^2P6h9 z9akAwMJ(rwv0^%niTD;tPr3R#dTk2jhno}ZG!erKy{f8c^9>XzT7h|7k|wqqelQ z&cpZ0Xf|}#q_9+6DRxN$TOvL_=X)n5YY2xnv+1%tTydWJ{kNdT)qyn+ZfHMCU(63X5MNQ3-id4#vbk818#3|h3)Zo<->X-_Yro@H-j0%G>3ed<2bxtOiYYl)swt%`+;>4x>3MwP z=Q%*9K(2J{6Z083Y8}4!3HDn}FQ-cHf5(TEA-z_h7=wX57=eL(|Nne@346EylWiZP z2ji=%jy-)Qx1$VOQpBnYsd^C%VrK6vGUNcrMnBi-+`F_EGgu`yH8TwSD&RhiC}_)R ziD;`plNgGPYIDqs@VV-KTDl6j>||mJW!(8Io;e` zQLImNR#phNNH*qFiB2r_o9aTHkgX8IJ9YYF1sG(DZrV~nH7PG&4CPG$z32?@)3dvy zRyVh&6>LuTC&ayOduDbrf@RTPE@B?(XYH z9`v?^SXagVTW~K7iBmb~=dlRbm$mOPdQTi&b?7Ge+dg-8H3^#Vo8h-%C6+p8$W!)At{V9)*N;dv%MXt2x0j@?4m#4?TCI}EK1+tL@ni*R9F#(!{ zhM9wvtu?_Q;-*k-K|vWsoV}lkkBh(=z&>j^Td23VwA@YlXOWB1`&(R%lgbIPByMZ; zzm!NAhEpEP57#EE%NkPduqJvt>yx53N7hSF$n)FFAZJl`VQEe>ygc-rRhjlV=`u>j zc1vApu}#^Fna;qtW2>J(Uh`l;M9pDJF&}wUj2rChBwl_~o6}A~%71k#o-kNh5u3x; z_?74p@yR+M59i^=TompYZ9!maFt@U(KeINsqPyK)S6yyq`I8Uh?2^28Rrzu>ynZKz z<7*8iD@?{i$zxIzhTMC(7nU#$N$1{W~_$Os1A6}>T+Gt|%zm&tcQR&$Wbqv9Yoq@?UZwS(j zIkVE-VC?2r5>rxV6V;^og^_zZKNmUp{OWEi9ICqSL$C&5Sz#Flh@vn=n3P`|sJ*-$ z|L8^64A(ORGeRX3X2G>Yl zOm1A!LTRA!DXly_GSWgfl~shoWF@8*9Jo)a({9|4B&3qz$GAsyQiA9X4g*PRZOKz| zJNc}!-)HsgO7tPVwJpIM9*bNIwz>K1i+yyIQsZBwiQ%V~X)l(JBEtcYs0IS_;<)d+B%|{{j zbf9vQjE;zh9Et(us4$`8nMmXwqYOGNs98c?zO9nN16f?sI4_G)PnQ>Sn8zuv0}9uG~o#)xziv z<~qz~m2~6ETyVcqbW;g$|2}A#8!uoGuquzUs?e}$FEmYH)Uv$NExUyx>WAqj?DOa+t8VO3g%0tv&;rs=%(Rbzoap!WP3dLPc+n?B zvPC$Vvh?HPro$P7h{G9}GMhz48UGn#Jd#jV8~ghcYJbd?9ct;Du1=33Y(@EO^G>qsu`t{Xhvj`s*fvW#RPJs@LAilp)5&}Q`#;M zNs_0AI_1g$T=`>B;y7zkC^Fl@(BLh9jUlu#yaj2hqp@#;ba4cK(r!fB&k)aW8pvM* zXuHIsW3@7o$P)??|9}|LDzFgY#40nZZ)R?FNhvFk6i99XkF*Al6|C|aGV0~gi3R)C zs*z6VYk|P)1Ix*^ree$A#Rc>~hsf=)>q$AxB_oncoNER_UDX2o^$pGSl|Ha3Z=2^& zI1D|t^0V|m6||Q!zM}JFILgP`e_OY^i_2+Cm(2U(S^`t#bt>ZVv+O6gNwJfu>PZHK zWhbw!1{>tX$F8!{a<;ufldY0kp89VSj(uKLJCw*$%t%$9veLE$Dz7O#lB~^s)YGH0 zY$;IEd4)D>p-)N7VcD#njyW&P8Z)#r`qiiCI#{#nG$K3wCS^;gHqN!hOk$Y|iCXxM zN1~y!EI7%_nLWD{^6qTmVxlDXLsPru@@eduw@;7xYFbG=jevQQgH5Yo*Z_NLQF(1vNj<*U z%++o4<6mT>qR|4CqD<&J4eB00pH-yTQqx}+Id$zv+O>TO^827)RB)f!>y+%d7}=TRG$LeT^7<)7Mj?tDP?Az0 zD1OC%>}Z6ViNG6RzY0XEQ`Eo|*&Q~jC7acf3Q?&Szw(r?EjV0v4Ig?D5FnTd4@+1G zR{d2`PwA$u0Xz<56j_fmiOai){MVj|(EL;-)6rf1V=_xanN2sj^x*sG~ z%g{T@)D)eF^5nlP(+1D!e5ZjjBPbW`EAc^;1tJ6xg=>Fj&f9wdEVk zxVH<}vY}0@93r1IuROQ3uU}=vwQ5|=;=J3o&a|6h&Qv%}%?e|17`#;cdm*5fLrcU< ztH$Z&oxG2vzHXX|0e`Ubxt4GaADe)*j^C$)*-55aV_taw$7)J5-m#Dxs!82 z&e%z%Mtg+Un#MKpSHw8$fBli(?=h>%$Ux!G=auKc9wPd2_ z6m`E^>WYdlPWEHMuI;JxR2vxTY0lx(E%tcftX%HoCt1b59nB|2F{x<|Z#wGhqDc^6UyGg#c zhIZqw*W|aHO}5PWkO(!8Kk;^vobZ{bZbd+7N~>gvNaaUNbAspUw@$8@KMnh{wTMXP z)5q7flNURt@nQVFFpaFG#)s#YToHr9(hYU*r+oAaH31gI9J|Cc)w*M>?mcryfh7!J zN|goH{R2}*&_vr5k2scik0ZE%RIw{tOFyQC!{1$J*$}S4{w_$#D^7rWDQ}$;63rR~ zaN=WcEsEjX`bN*kOJO#_OyyV?p325-x^RVfsyOVShBB4?ElzJ=#D2v7cf&YyY38-# z-<{-qYp$!3Wh*ueDz_qx3;~vFcMc%xcNR2KcLd&Ha4#;gEi*2RW!odQ)g3}iTATx% zpUi748Y;tK@RH+X8$7psVF9e+s#VoMiW*%ZRL8IAux#2e5lr;~8d02R3 zaf5;GK9Kl6zt<{?&eH)ter0QP6#~D@1!Mu8g8)gf!Kv^0&;-RY*6~KxN`}_);cI&o zX1==Gm<*H&1rre}y@leGNr0_!fP2uW-k-c=Udk~ji2+-C%Wt=~cxSH0?Iuib8>=w_ z-yb=FdNZb)wMCwC1WCHL%$eA;5VQ^~aJj5vtC;d3zfowtpuGr^D2ArXEqT4t=H(J= z&dojeIDveRiKW~S4L%*VE()pHIVw_r)S0o2rMOA#h~9t*U_CEvff_Kx=0RbsSi8gd zNzSgj2<`mAqH*vt>BiLd6~aQQ<^4sME4e!@M2_o9Dvt=5=W)W& z>mMXU9dPwdqtIVsB}C2(!sqN_xG>s;t^x%1fe50`%AQGot*ATcwsh3ge?-CP`s8tw z0Y@Gx6M?j1G?cuMlaQO_8ZM-u>RJ578Z@cqebGKKD3szaEj+$1J^bJAJ9hb`L(2BdUkqCbU{MreG32bq zW!g8U2@)o5z2}{NlvJON@x$~>=dpZa&Cy_L4GX?;f{w1*^BJkojks0)kzc=AGx0S~ zXY|&8CFaLyW@R&9{t4kz-gEV-ja>uEVb zemf>lecA{qenVqnDO5I3+Hf`%AYAhBkCeAu-L%jUJci7NXf)Q3B zwu**_a}<`0y1&~cZv5?GhMBcwg^{O`z?}LAVwn0T3oz1@xPRw5a1R!jsLlS0=knmU za|qjhjq^c!g=s4P=t)^JkPK-E;ZlX2pY|X3k2VEfp6&MEv3-T%oxe~vG&on{8v~!{}y#CaAAQp$aPQ24x*fn4tXM)9g{T z^ETA}BxehS*v_iK`SO&0d449OHZ*+D_;=?dkw0^JL%?qY?J%xC2bbu zN`hSwOO%P%^stlfaai+sWa-v7G1MKwR!eBZP2e8Vj3&jqNck6Ub*#MYiN^>_)V9>G ze-M#2s`f<%XpCZQXi`?k(dO-vn1FD4cT| z@C+V^Ya#KYqe6;ApLMl%xRq6~9(WX~buP42Abn|x-}PzV3r-<5 zI2a4FOuvT89`xTb#wYTz9kce0RgcsH;USg!ozsw7li*s=e97UdGOC}N`I=F#L&3YZ zE{*5kd(vR0N3hq{$j#F8)e^)MS%B~V5@f!6R2*_=hdrDWiiXA={N7`i(VoKE7_$n_ z0=@or?%1w}Amke|Q_%#}4?4-_%faq$ev4!KJ~*Bf?CBM{hcClZI6WIpEcoSUq>h-D zhrDqniJ0A;Am{afJ+^q@o8k<{xoKzp`91jNyiR2z$kU57LgW&O&WD^sKI}cqd89q? zU6(H6i7WV7R}2o-{0Mi9-B1I1VhV+~;Ff)LkIqRvkplRY>`*LIH#CBLHRjl|d=DZO zvWfAUZ|W=K7CTUu{W1S$EO3w1xKl-i5si3*?Oz+t_Zpe7y25^^_9ESlqc+6v`lQ01 za3XEA;5$FSMVqve#gD!R`OEa~si61&20ValzX#pS)fKS9E|U{OzBDi|1sD&Q!ZI;= z=z_!6))8kJiF$_StD%O3gzx~Ti15?sDio!re`g~ax1}d z*YxF>tFcZ!V8-E*A7luQJp6gl0Y9>VJ8F&;n4|``Xwu3QKjIGdx9i>GML(JYJe1gS z2j6tmHDIqV#>oCdynQf|kh4yUxkH*@*J;|aq=xwe@(a8b{^OLy&mNFDF?^!1q$`*? zd2seG#cfx&Cl30Zmos%cru_{|rd`{m>MpNaiuG=s!In4IQsKzniB~A0#6>Udb19!J zW6C6q6$S*k6Z`X9-1_%#FxgpG`ZPXTeXltP0|$9#FIx(PspBUPQ?5Q02i8?!G6(Cs zC))t)^d%4BGd}U^E8^;_z$N<;Z%hBqqAD(6u+mg(w?(RUUwe-ERyU1`=^c*nPjEeZ zE}&SM&n|C>8`F4|kEWY4M@mDY>#m|$c`&N#jHB2eC$5I=&6*uWkH|g7)Iqe1 zjlLfY2Qo&@XU z2ZW@l+=RlcPaOy^Sp5KGg7ddH4OFP&rW*@CqNT{tTS~A-8Ax+<@W#mYJN-bH-lC1p z38!35C+{fVian8Ba+)XHu>eEf#1&jHcLM#9BpjJ1HYpzlsqnPI=!5=UeX6jzo&8fX zc}={r#FR-Xc+PL7Fw&poi}A9W@0Kd>sAV4!WgxO55Sjc#Ea2TpX0?o$koH!3Ecm*S z=bi|@`1p+(b+?xj9Lsrw>^QiG3vZ0Y(GUv52Y3){GI{aO#RM+@w+tEhEUUGM}AFL2g=h%*B6%jTKJ({Vr?{f`!d+oO7{$lcF*XoBwzIgarwy z&pz5nG~<3*D#Zbmh6A;c#=&iy)@-aXiRdHdRI{F2mpFuum1lnUsb@OKE0M`F4=a`p zpw9~A+%*bX^TZKBUhJM|_8B^Hb1~6_G@Ue-!5|lCi#TwzcNJ^ zsF(6TII!G;as$53p?fwmFICewn9QG|f8G%K-|k}43j2<5nPFa{{YO$M5Bu=bf^Wv_ zRC0oN$_zr2X?U1F*8p)`ET6-G4lpSs=Fb#&sI<7m)ZSF!6=HEFZQ%S9_y`KH`ZF0w z^n7elN^E3ieOiz+nJ92xWS7V+^I=IHO=64X{X+BaS-T{M{Pg&X1g{Ny=%-Cs@2Zi) zEFxFUev3CZ>R|liCHAYJk9`YbzpX5KGbV6)hnJg}b4U zy>VnQvzw3x7Au*8KVl=)385MW$d2WPInOotX719{$`|bj5%1Q1H^_Xy@OV=kCyuHP zKs+#YWx;#+gl^{d(xPsUPB`ZRnk__ADl=tN8#b9Isb!|^e_szXq3d<-rhZhMux`q~*a$0_usgs^hqSN-6k@X~Ud( zLr%VPl9wTk2hPEld;&@W!0(w779d0d>|isHDJ&O^{1tY__z({eBeK68gu^ruB#bmE z|LzF>2YQFdV6&6QRI}uht!PxDYp7k4Bp(KHLYTNN*$jC(Yu@-y7p; zj9o(~#l{BHNNFDr=NsZ_+@!>Kl45Dxit@9dOi+UA3xn3uid+sFE%?5zS*HKZGsV2c zc;HQ}^}Y}ui!tQ|~` z2(i-x9hseWh@%`Y*#zl8bT>H4UT=L~!n$F=L`+)-&ujR6H?YTn6fHi#dKx zV5w1BFSKkvq>&vA2{$%=8l1Woa3_b}+DxL>YAVn1uWpNw5LGV&@o5^17v)5j4;h(J z5?JR2xKoD>`-CK)?rW5X8=vOjaAK@1Y5~$LCc>OiQ`98*>-B6i{`#H<#d3gG7eye4 zFrXVia#Hx|(8%L6rE%xTtL;%@u_5$TM1@$0;B40_Fe7DQ5t zJiSK(NlRm3^}C}rUl*Pw9Kx_R0Sg(?GD&4#^!_ir9g$4-LaBnJ&NZA>pVTwZOdi1! zkV3)`cz(A0X09{iQUt{e8W_t0Hi4b)*Es{?n(E^7b;Fd=7a;xwqND{HAY>Hhm0Uc{Np@F6L=<-=7C*F#Xp2 zopUt~3erX0>(68~r<~}dO($M;lEomvLh%c8chLMY^-+FX11z6uEQnpwT_tL7w+D5ez&a z$PY&}eE8SxPdFipmf2(C=vQWlwW|hX$MTw`idQ9QnZL9Cj_ZgWQ5ufqfqHD~0tHx% z+@^hqEgU&U)XRu1G=)}{*!UNuf1tENRA^fp70Ho09dBMOAF25tSP67-v8xW7Uny}^_<+pP_g0fRc5urUb7aDFh zK8rS=F8_)EX&!+UO0~ii-#eyGcM;)gDM56XOH+bJT*;^qE#ZqzXjd?_RHW%8RYLsb zavaOuRN{=4c+23oDU<#&Wz)?y@m=tTl{#lv=K)iLh4|$k`^}~`={7$Q&4it3`M^UY z#oFP*xcaZXz^mcL>yK$=?9k4IDDyZ<4>m1Bmnh38{dDNgbD36za?c(9rg_ZfQHX6p zdHMHZab5^;2q7 zPpyVw*igroK)05S<)ksJr_z+S%^}- zQR6G7jMNc6pCtGnHk>c`#TUG8V!ctvH#{PKhLieVSLIkxd#Ge(J5b|+StDG>>S!jC zEvcJch$b*G13M$WC3@yNZv4<#TlJmWg^#@pK^BqnKzXF)`}vd7g;5LApqd@%Gb0%D zhz)0xiR|Rk0H2JFH`YBEPFcA^n^O%=-O#sbRWVq{E!d6{j?Tcy0(_lm!*pguvP}Kk ze|qL$)#IMHFdkC)0R!EctT)c_%@Vi2KFk~t#d@r()!Fr@T92eW)x#>xt@W2T)H<$6 zFyq9Y0Hh}hF04F+8hHg^WjWPHh1unC`4Rw6Mjp(sYwb}4o z8}4$jZ+1SvB>wRUh@4H)aDu9Y&ObPxKMo7EsZAO1My`C53E(lLR{Bnqu>mZ3{u{JA z&Pwgyn9mbZILes z24h}t-u&eBojH8`PT)~recI^W+Cx*eDe@JVW6(Koasj&fgTlUL9rbnepd(Q)aSE$~ zdd2}c!J#7qhn;fGKDudISNU)cIcOL9n#P`Kl3RRPjGg?`$irr-+Qt?ahXs(3uB<7u z*-`U~nr3BfGKVrCL9x{ou3eaWw*bI8IZCMsc05y_z&~^*KBG?+h!hx5Q@CGcGmIZt zm%ZHqfphtzAwk2HByQxQ#ijhqhgqR?-urm)`2tn*AaEU`53%%R9hO^da+;fD_U^#@5>y` zqXJG?Rs8|QaL*Rxr!d3=w+;|F zwvI)KAWA3Gotv%8b34{{-VD#AOV}-R5o6fGkzBK#jLP=DN-ImbgGj}$Jo>9fh88c1 zcOPIYY=wf_-ecvMe;DR&2Db2&;PBG}a$cVu=+W1WG1G-HqhB)n+)~s-KRA;Pev#a? z`DX_HLP5r_Sjp!bUB_|==B7-T zupe2~{ox8ymlgF@I^B9J;(;HI4@8U~Us-pmcjC!6_l|c)zD@s9!=}f$q8>6`4bb=U zTf3cx-=G>dC|Mso!``Fit%Cc=JAL^k%(5VIKj`nxKtK}Z%J|Qk};}RdpMW+5SFG|oGp~%B{owL7lVN?BG za=x#qdzB|GxaKiI(7@#9SIEQK(QW~zOYLN$fnp%Q!bhG~X zG;cPX6jEDYX#&_!Ya7Ctu|$EnQ@z z3?ZZh`2$KsY4b;J*e#hFHyqDZZQdi(4~-?L=3cr|bxt>!=77_Z#cD0}iuVgT9JYzh zF!?Ey*L-`WvcF&30IJwJB9Gx3;FY=ONFe+lajdbTDArzRZwMtHcJO5R0h|gpr1=3L zcuA^|8s;JOF>?Rp@DO*gWV! zf_|{%X8|ffSTHLrMmhBOy#aXNU;A=Nw7GK$Z~>+Zagtl7P(iJVzi0C>tD0wzgV#$J zu&#Pjo&~}T`-oKV;;m0-FNcP`+^>-kEQjIA>NH&?U!wln1O^arC) zlWBRo@PiFD^zcFhBEoGpgU8;di3M|RlOBGzX?bz)HPwaEc*(LD3{f-k(6PAm5>x9s6A(~- zKk*$z%?7BM5TrogE30!>zXi%K%o-Ily#jRy?9rG)>OT$l&lQ7*sz2coJXnDNM(5>q z0Y`#ObQ)uBVo+Sj&-Kw zV|y9omsM2GN%0OU^2M2VRoBTLb9^9a?S*}rJ1b-&@=&zE?~*I49I7P@)p|&x0xvaR z@{hN;42LyUcpq8x$1)HhVdTa4D4 z6w>ptGL~g0>55GArU553o%1_h0m8Y6i@GjZvh`|gs}pefL6}S6u{x%NGig7)1p+Bw zacBjYJb1&@iSuAW3u)ZQQ!;&|IYfA04B1fm-n0m2#^=!{hT;8$%1gSGYK4Q+Y01;d zfrcff^30aZ6k)mwdsa6Q;CLu+8ngBlYSctSHsdR?@Kek)=LpTc-46Zh!H^T zO$)QI$J8<;UH=%mmaSrVI5Er~{@K?&zp7@&#RL;}a%qA6^PCsS&2<+-{6edeQA&G#%=C=Ihro0F1)z>>(wotVsTe7gwQY`N@(^s7RQFSQX z6wg!&OSlO*=^JYNQIx?W(yc+bv>GU&=Q6riN|wvp()4Jw$4^E+&7t;W`{emfysGH2 zGEMzhPZdEYHhHb2XIYcAokuiBvxqO=?6TL)re(*rI3;3NZLnNFI7B&Rft>GTJEGxI zmw$;YF%?D{4*Aeds4_UefbYyA5vZbz?Ik%1rN>_+mtBtVur%R)*SKY_)v=(RkJ*;dkC_r8EfyV^MA>On6QsqvI` zQL?}CuY!>qX0;yHrmpLGbBE)TW*JZSwc|caIUoA{TJhbo{P6mOG1H-AT$^X}peFP3 zmQ%qaw4=1sS`&DR)Dz?q=2pXwGT{l*Q^r4i49_qRIXw*9Hy2|dX^c;Z&ZaYZL|mSL zPUmH;u&;4ff31v`axGXUo2cwx!I^~mL)*;F+AP7gMy`X;qc3DFN$7-eK*48rl!m8_l|F@vcqj^LW52hpZn|Ec^X*J_S0tUQ8hTO18iy5#vc@`26)YwHp?M4R-K}Fo$4Cd{P)sd zk`UzhkyYmV9FSC=%q>t)w++ zSA+&D!(vwVnCt33e?9hrtqziRy|y+&YRn&(tausl6fQ`&)9nHoFa!Z=Kl$Ko73~F7 z@U$xRf_?BBTra=u*WR(dA}~yi?=#IzUo97w^x9AEFfmIGjMWYWz55zg?CH<0W|34e9f9%JrvlPfDd^lsHWVai*SD9z#23kZL3! zr?&Bja2eREW&GrPH$G2dq?u)+SVR1nh_S_56=PCktv$Zk&1o2~@}Q--<^Jtg-kiG1 z)x%j^(Cj7LEALAy*nl6Uzf@`f2ct*AeGKnBb6}-3w5*$RtLFQakEg?^WB+mE%Yb8a z5LZ;XYg2H6BzsE_{QXCV=4vuOd816;o7oHF+S`xQc7$VfCFvWz}X%Y z|4mJIz4k6#>`Ky1x#btw)LH+SfGx3b`LpzwXmp*kgY*2C3Y}QHAQ(UNZevb(H&sY> zCPv>ANZ@)jHq0Ar=q)gRs^lsY@j;mTOhs+8>g3+HtjAtWdd?&i#Go?CaNbgv;pYFY z(RNNr>}5lui^C@1T`AK+b5ef&3IVb^IcgixIR2{PI_RG7*U<$;PAhuO8C&jN!4OFP zs4Z`Mt9IL{z$+lmMVEOCRfAAkU);xZT$LVDWZU09$4$3||=Hg61Wzx_8-JYjx zJDvc}i7=~Qd&G5YZ{jI<)l4?v4**4^G<84~FBlYjSa=Ky{%zC7W?JSJIr6bGp&x$n zBzdED(5LcFVnZ#szf6>O6^`V_D6S8lm?`@pRdp%_x*th^B$DIruMpB`_bU5HD**Ak zW%R5{9Ng6Om%zU(mz%S>w<)Mh7RKb48_J`voWT$O3wSeRvNlp7n!gW6Wtc|PzLXWT z^*-!XYn3G~ncr~9ZI?7KIGLeMAsst8*%2ph4AAt5JvrSt0sx^OL27rlxjjggFGnGZ zZ!S$4+n`>JJIhXvCu>6d>4&rF5zV{I&-g|DHU8-|B88umh1PhL-shiMlf8hNURZ#E z{KlPa*(dI~n(WKar!ldvyk?om0dZqeuVBo|MVL2t>h!Phz*ga8*<1HN0iCk^Kq2|5vZ0&i|9H@v=dg>s< zu{%&6Pi26k5pTw}gjctZ#A(tOsN446WMD7O?^s8pS;b#=|YihqC_STTFLXUjSzn!S4 zTF^u7WM2DFAi? zS1;GX9@t+u*c755kPqCG%j9{kUo^Z@(NOCm|9t`Oxo<`1ikCSC{vJ|-& zyx?EF@Vz81>Om75_h=j+uAKGQr159D=8uZVQKSr5B<_-_^S}+3elUyFW$=$_EsFau` z?Sq=$Eu;mhd8A<<9_0_=s(6nRl@aT5&Tju=J&V;36DsevERr^RZ5`#l@B{Io0LK zP9?z&)1q`U>?y9o8kPKN+x(hpxNZfS=iH87M$Bw#hcuvzf7c~$+lWxMb)hZo%yLuD zk=0DDof6Y(!@(LtjP4}1jjz%=|6A9F$4{YM55UEG0*k)ksZaY;*M{978=TnfY^V%h z_;@SDZkVsFWyw>Q79kJ+_bI>4!>b6fB(;5Gz`8rs9Y^Tf@T(VV@v2jwEtMW$0%|qF zjPINp4{Kz}SVXI#DET2J-nY3^YP3Mh9{Hl#lor=wf9$!~3yEgs*tTmUdf z##Kr_XK^!`Bbl}+yWfBL25TksOlcA{G96pC8eWr{?m;*E5PHCFClw^03g!wYT@7Bk zJgo2PorDWYU7z0Qt|KUaQQ?m$}fxUD*Gx!dtV&;4W?4OCky)x zNbP(>(;psWdJXj(T7&UKqK!k{3f^n6U-nb5^zWJc(U)OdRub=0jc55QxI7f`by*@EQ4G8LJ+oki!sAT68@f zk+BJl%Phoh(W#e`rI3RWP{uF%^}lX-cOMwOB6h+(U5o^|W4}fDz zv=H!j?y<*&@iR>n^>9w5Fip+{Y`Y3F38mahMuvcuuU z9c!!50$_Uj@?v1F%dZ7)E+DP7HP6*k!-1%;>m9>0ZsPQ!Fs(H=tTle>{pdZ za3Tob>q*PAbBo9-uoaKqfouQTy)b|7tSd*tN#CmoYRlee#QJ}@I_KC>qORT7wr$(C zZQHhOTc@_|p1M7?ZQHin+xNRSd2hbStYl|0f6ZQ5Gy9pnp5Gcs*Pw2!iHB50A2QgI8zJXy=pdJWTw&Cp;|7 zbPS8oP4_nDG$V}UeBd=`X0ApdoOhnL&E~E~;LiJO91YB6$noZKK7frKL5bHma+g3{ zTi+7!*{jB!4dmg-=$KTN^|(VrM~Ni>t`!p(F5W}Z-KxKBJoH+rJNX=eW3Qt~Y2o_p zDX*dqkBx(vR_SM^3&yUv8}zMovd%|RO)JP4KJ4C3kQdNyX9+1FywzoQ&sDl$25jOyX6V5>%pul&!qf9}G)Xo7G0E5(DiB$mms%R1F zM*s~o3iN@8FAA6R@jAc=b&@6`{wA=URUv?w_l9HclmquxVMkU5?OIm4Qw|fxZK!vs z+e<(_wdXuy+6UD&L-mK+*itqt#RcAx6^mM7*B=zRS*TkV7#;WlC-2p#+y7?25Kgz# zk+%TDuEi5vl^L9z;an_FJe&BPpl7>>gkDl{PHUMLCkWn*S)%`lF9UA5($)R>Ni3t1 zCTf+!6Yk#Z@|-=gDKEkHGxJ)DE9*eow>M?^2bLKQ?4DIH?=8yL2j$BfwJd$2ZO^{Q znC~BzdqbeG$hZuaiK?TK7qdsUV_E)~`Z<%o2KIme9kMq4NIIZ9iJm8XxTWdq2>&pI zzT3`TMSpGF^NQ5d#$QH{XVCKs)yM`$41at(Bv$^N&wr2LbC+-w9q#nHZz#-4@Mev| z4tswdE?EaDakY2@_&?@gmCO7_kSHSZALoWURZD0dX|Ug{E_v>5Ka;5zk# z0qZ`9?f+e~({%2P8op%xYQ`i#Vf)%giLHn-_Qq^ZN<4D~|S*Y1B7##iqCtuaOKL7r`A@BO6BWK6|UJ_g$=^G{I{8te29LaxA z`R{EJ=wtzB*T;;aSNML1!cPzH4QbaWBi(eISYIVb;Vf6rvMNjO%!Vq~M^l}_4I@lD zIohsR%`aSW;$U>Hiv2AEA@~ORR=w7ALQkIxxUyG9_{Ckhq7I|uC;!n^&864y^cyt%LtW;00ay4JPSf_HyNw z*1x7V(G%HZ@h5kwi+{8W((U#$W2vh*-Sds%<|h02YhV%^MDqu%=r7Lk*F~zA?RPne zyEv(xUR}yo*EWx^F6>zFoJ?HSinaN%qOTv@gBLjCLs)>h!|w>yOixha95-pAYa7UH zTVWInD+X@DPS1tn5$8Cb%OH1vX(n-?YcK2`j|5)WF}(PJ^@vx?Miknz0o4^PCXTB_ zk9>D{Y{-aYzzE!ck%}Cx2op_i6bm`#It4hI z@t+a7zl*s+LsRI`G-v(lkiuVKC&H-CRB?A_*~mEA!^rtl4Sm5G25sANB$Bv-~OH{c>`TQAbe;nJg^E3*;1uw96hVN+2D_pp3up4@5(G-i!$V+bYHFq%{0Abmo0tXc8wx8zZ;JJ6*0fS}LxnD+`YG#EaYL6o+>zaf z#{Cvqi`r)0Yy1B}sEc}jRX=vCI! z>~(X7`T;*;Lq1j7Io|a2Y-GI4kWy7v*D)q>J~TD96AS})I{Cf3CqlOJ zZAa&y5tTQ@Wo*kZ$H^RGLTeW0@{_t9&4RFD%`{-~n6PY& zTQBiPO@45mp$Z^}7)}T#vb|-TuNkK*SW`Ot8o)34F<{{g?O8MH$*~qSVcF9Ea~?O^ zC;`#JO=Zf$8Lx?e&iFT)B@bw_VaD4yiA>u#kxY;w6I_%VJf7mL9a7{wHuHPIG>$Q< zv2l`#vvDpf*oPe|py*YRf!(c6EZH7r zao@6eW{JWJ&G5JR8p=f=tqCCuX#TUqO#E9HnU58L`vEXM318H?uc z!pD$)gE^uNK{45X;+IN$>1pKB$52aW@6>#kPr|Lg?dQFCX( zzJ9TrQfuM5)I?DwHj6|psT8%WD(_aWiRu>8DykH-E{0&_tNF{;0@@;;kpHX~iAf?B zad`4EbCdnTc~blE>3HM2?QA(AmSK#R(aaYEhtk2tFz}(H2Tm52dceoJ>@zZIAJ*H? z9BS8f1F1h}G<})7U76BGB#Ad)tp24%wg>;X`_^5Fe#*UYhZp~@`~dUhrO31lS$=X} zsSJt?GGAqw;{sQ0q^>XjzK*et?dIFzJ%wW|?lbf82IaLDo;B#vpjJ0rrU6fVF*jZ75BC!Gd}>CG>oSQm?_m|! zSHK&%Pb+e(vQHf4-<$UlJ+m-dXo<o#AwBPCaCZ=d?;j`F{WhNZ~wc0MzYW zquA>s1-)_D^0N}L0GnM~GXyoB$J=CUUpjrnGx#*uaLul@iqd9}rfaGbg7>(5g?-z; zd1xv|wx};i%UpM*4S!d1j#v59V1?1U)_oH46_&b7+uc49Z^p8}X7a_slk9E=!GL(^ zt)C`AVZoVl)I9U?J|_IVDV&FqP?uC#aVu1C-xxevZ)i~?3uld{i2}H5A}XA&9M^l> z?6!$#OPEU*gi_t0iWV~f#&auitH=|mx1;FYi9QnRuZqd57%kZVTx~ z;y2}TGubG|*gZc<+cMZ7Il!P8*dbv$@plBTtai4}n;uqr=RzWSY$S(K)^M@SCoyYO zv)iqSHGAy3A#RSj7+@Qc!WM5N$3LX_%Uu;W!8>S9=)){fMrM4X<3BdW0H-Tw#&{4< zVgDS(AjC(5H@o+bVx)iF3;Y&s>ZX~}t$%NSMBR5n5boM0`-lmG&OJ>GUPD(F$>OJp zYEJ%$td?(XJf={k(wJ1w^1A%^1xSU^lkvLgMJg+|CNOC@L9V$0GYPei*o3cY3@ZVAspdKa?jx2B)DJqaEY%9J8nM~ zY-5978X>4u%ej%?FBy#KjOe27MbfX1pKm9m(*8+qIN|RI)#!5?%-s&<2~h%va|mF! zADu8rHQ896F0YR-r6mw&h3fJX4}R$4_tAWMY?qK5JtH^g?-x5tD9s{e)IDo1)!1Wc z@R*~W<>+m5oTs$keLq2sr@j#(n?%;WYNxtRV{!Hi@h|{%dE=P@*A{)7i4Kud9+~d4 ziR>`XYCCvk{tz-!%GhAab4CA2njt?>`BaBYsT`;~Vup${&8b5o5Q5Fmc)=K}z|oGW z;z+RedOJ2TePdKzCYTrg6n^wil`~A75M6ijsk>oRZdU>+WV00q8q#cJ07qJx)|n>& z-W0D{Lgh;f2c6`m5W5r)(f&@fo;0sHPIe5^hTz@@s^k45YB9owM2fX|Q1N%_lyeDi zE(JRp+2)np)wjj^m9;228g}M*8YQZ1#Z~uw-XZto-PJ73l`pOi#!?Nv^s7U~Wz3sf zzEvOyn0Nh#{FLzF{mBYNUMyTo=Ubu+PIpCVBusEhyw3eIgL^V3kP`dkRyJ)Guy%Tj z%^pGIu5{;d{LaKL{wccU3gjz6=MN7~uWUKZ(qVvb zx6X>S8VIj}TP|`JTmPhBIBy_68BkT0HLZOLIaQCE;`)3NJW|Kbz)&-zKd;-h9P&Ux zHIzNm#;Fp+xQ3YN7j!U|r?1P2{_dmdF}p_Ec7o%}9^3aSRY&4%r``Z~avyT_UOD$l z^kBTN=u~#!yZgm2&#gC`uj~{`g4$JQBO=YcTerIZ;7ybGF3dw>`9=QYS~ix5pX!Fe z-~5xLLbXDmG6(Hr_#dwoxIo~#G`ks z?1!Er8_=rDeE@XYkQ_A`XP>2M=a%r%3wQiVW-yJ#QE4t)BuDW8N)`B&v6qr*&~d{!s6E7w0~tU*1jfKWv5*Fme5 ze*Wc?`?8Ehyt{FaCcV)Pe#L}+ZR4YBH(B$O8>~wsiD`!zT|+Ttp?JdL>-mS(a}<_U z9@qA9FUa=qPW;EdQ+4B-ZI)$3m)?~p8UyhPE^mnV#lt+q-D7?(CX@-UAEH0 z>!Rr^o8~ki3;YIieIZnbhX^7Rt6aacIw@r1+K@Vxuu-E+}|~Ro_q^A{X~G zhTH1jCr2K@Y$W_@Bp%}vnZGUVE;RuD_ESr$>Xp;DaT$~K4JTz-Z_AEZ^{vY2Q>*DD+&uR7lW@H+>g4K0HVt(*EX8nJZ0o{8O;C;}(x zz&e{z`{M;N*Avws-WK;n7K!ugz1wwq-tDwGG$lm<<#(wrL52!35H)Dv_%r6##$U;; z!r+rq7?wFb6#3j?-=Ddctm3?wNR@7FsBWFz4K4k0h5}@PD7TnYOpiiVcA9hBZwy>} ztsw-9TJaB-$pF|{eN6(hW-k2`-wLzGC1imC&*0v25`h8b?IwRpHas~&Mpuu1P*0(~ zLPkxh1%}D`JP|eX1yEhCYU%Xr=q;LJB|m=k)02;O`Zrb2O$4Q;3ZKd)1NxUMBwpaI zs&VG0;iet-(6E+6!u<6RPUmdC&ktA+IU4pJkW_q##ZC@9w`!xZHMBs0$X1Ov#$%r6 zzE?}HV=TzN8aHnF6Kvyo7kkoaYUILF*VP@TYRhX5i=QYhS~2g;5F748(04j`T%R12 zxAFe2=~j{z!WMm&0Rr1P6?8P88+VG8c3YzIrnPxZTgbQXgnnAY9_=;7F$tk`LJtYO#DRNl)2(GqTKq-E&`s=-K+8S;>?vqqA($oTy=>3jXFJi-St#-D_tnS?%$o#3MXz$C$_^zZ8 zAIQ--!0!oyonigBu}H4i_2uO}%qUs0(>0m!N|qa{Q=a7bpFhW}8G#9*vC^_0KW=}v zEvIL!pFBd>wetkpOkBBC#xe+rJ=i3E-6M8rL)AA{Ua#lGTl8`>z*m;UIQpw?Ui(p= z`;e1E0h3d=g%2Us!oq9I@MN0D#Cbp8Rp80+p&;t$5NOr{8hpZ5P$1N-Io1n|h#i{6 zm?AjId_k<5w4jc(z=yu6<{&1BJS)TXH$fqu0&fLW$?Gn*+JU8)N>Dir4&6q_+(rW~ z7~Jg73!ZU=e+eRsEw4B_`F~%JgoQJX**^_^e67PRhok{i2&zZOo;bD|coHl65E1q@ zYQ>>X3y;t2spYzk84M4OprIi*%$)UI!e-l?FpRd8GJCNWm&{VNQ9dzl{bKGZHtxy> zRFOhh5xdPdjRmG)z_5wG)QR|eULBqvCferL1wZv3-^C~|O%LsNPFts~pS@V=vz|%q zpWhV~EGMmY2hKoO`kkL<#7BMv;~i<)mwWN#|JtCuQkVNr!fcz9F0pReuej<_y)S|Q<0X5e1JIN$*UU(aR__5O6 z+}yrMX;XXQ8fBwhFZ~m6l^aXFDn@Vr%z+zxOI|;TQS%yE4w27&FRhY#fzK2WkEt$> zQ?D8W%i}p(lc)%aRqt(8gUq3_M7F<5R9<69)B#;vC%#ObkH5$*RB}lq#+-^S6<7k2 z?!SciP`ThgBgn(zzgi!&+7n9*MgPlK#cSUy?K@l5sd#LUx3n*`fWhp3$CXiOYuS9sp^GvulE!~KX~t*J%fNwq9Qv5@*@QCx6m zSZ6=fJ`viV%;IxUjNa2(iROIonRtp&TZ-DxWb(%MrtD;1JU6B4vohShyb}GvKVM9t zNMFoZ3cDs3x3V~$TB*$%459i$)~C(_v@35l)`6;h10%>10mqeJTh}*pJEJ(m*E~in z_7R6CRffd7vJ8X2BpJ>gCe!kw{-y`E$!XrQ7mo`jOc;Ag{PUSZSCjCF4qpU6-y#8j zZ|md2GfvP%94Sw>$oTE}bKq||=3`FIiR znGvdYqzyO~Ruus-cYkGivhlY&{ALO3`WU^^k#4r%IUF1>TGWFYCPaiTSF<>3?`U9R zWjQ8@Ihb`l9yMzWi}vWk>PXsLhV5a_<11m(J$A0XstB?#6+GB0j9?fvt~>Y@IhI3X zBvMSgtT-NOH_mH4H*ac-v=Xa)$Rc*qo;WkBDgINY&64UkP1=}v+@ArR-pZG2DEHH1 zV1UU-Ti$?CrmLJ4iykQ6CTV{3tB#z6x$PyrZY|o=5FD<3nFyvVYCWPd;Sv<^?*Ond z=AMC`jWrDoUoB8)VRxjf9-We&J|hBd0Bfa{IL&7b;Lqe8Xz$E-o$HT0H#|%<#{}An%M0@cxW{v;*Y_Za*-Ia+ z{B#gAu8)vcRU;c=B z!~e`RFk^_4F3gZh#;JTsrtJo95v%qAWQEWCEFlezPw_S7_3N0z#b+6JSdC;+?{TgW z;kgG!qBe+bkC>Vk%tuk=6LTp@xuO&S@(o2)Y16KPLgJPFNMz9c(?cQ+H{7WYJmjpS zj##qtw4=e_-WvxDv3Sr18jg8kJ{XicyM_Y;zl7?8>#9M(qiokhoUgN?SuC)SxquSj zm+X}!i+^04H3zR`alqA$&&oO9DIn}N0({d8wh%K^{;;99#?e5>!37D}qD51U@%IS2 z*p}K}k7degSS9--t&X(@5~&S9E*3$l#j{rbI?O-Zg$wMop=8IAL}J+21PC|lM^gkB zmB2hGK8CTo*t_ZEX-Y0}>MS?Ap$EcHG~B zQoBmCQQ z%+zGSF9C($xew3e865@#)nmyZ_^h;(B`FpFOJa%6nRqpj2(lT95|X7AU@`j2E>@AP z7Md7&BDp@RgSU_rXnl|2Lr4F`@Pq}hoVbU_KxDiQGyRkp^%c zY;~wdut&$7Ea@L%)@1hY%-Xj26~JgoqlaD_jakxYK9;?N#Y~5-;w$38W7dE)H@8q3 zMo+u$9D4pkJTNU`8Eu~HxeK3Vs)stmRZ%wZpl#tfgOdY^b8r}6p@H)M{QPc9Shi6G zZu%*!5GaR@BJnGhDl?j3I+(`!=YkNz>o0l?o-awI9QMIXbjnE`OE=QdnV5v^Xpn3& z6)F8RK=JgP()sLWfy-kmBeE`-yOv7;b=nX7R#Or!m+LIoDlNKYGWyzIH|OxZIfd*$im6rb)NnW8YmW<) z)>ms0cs_E@*QOL<8VMrwG`NpTOS**1l))XtD)}gLLD(Ma{XakgpJuGq zO-H6cTB%N_A&U^HO+ZULAz6&3c7#0CU}80%TRE~o^ARt=uOmY!rb6A4I@PBpcz^<_ zox39wzg4iefdDj+4zNZ~`jkQQ^^!WLCV5$m63dz37b0b_UE_Z_pTMqlwte1EKFecE z<6~UV-PlkBu$C^za@(2%u`$bAsP}o;1$Af*tKqvwi zrd)7-It=^+aCvo=L;l8<62|S3AsRw- z$87OFoMw2=gt%x-+U$JlQ(DLGX8o#T3t5p|{XJbw|5qK{dmzhav*stOWIJ!u@KV=Q zrB{EL5NizU`#R$=U`6$QI$f!{}Z7U<7{3+w`B$SAu>A2pI35MxO#EcXNpl{`P% zA(JoWRc;70aE)PfKkv7R+%rkR`T388xI|5Z_6x>}s7*lP{OLn7G>PEai;7P^#3$3> zJaDwt^B&ymMEM1Wl)1#KydCbOeW!M!G|8oam7#sz&Y?Fw)4e3d}?c!<4UoV&{j zDhZ%P+xDYBGSl^Z=^UW`*M|j-=7b9pLTn{2&x43ek2F-=Mj29!&q;2`*f;^Ie0k^w6l( zvTw8Rx57^dSm;HUn@bm8+t7mT*gQ3AO*LjeGB1+0Sm9s8}y> z-(>yh+9rd*$Jylb;L&DW8SjORIcH1Y(bRpXR^nl*El@~StMoa3EbsCgX%O{EruQhi zY7RHJq|JQZ071h_+}Lg8>hWBaN-Hri)S}+6h+Ns|tI_tBZSn|(lnNqO6Q{~siG83p zm&+b`@mjoNPhK8Ya~=PgRR3Z0l+?PcqKQ{L;KidklSlZM`Ia5(_COFGxk;9Q_B1h@@{fGR)5x~<%_^N&fUN^$32%q z@AJjSQGxSbJ==JzS@2gRLPrCZKk0&#eSY)vdQim;gNr+dB(1CLb^0y7s`mk(ys#*! zsCNM08yA*;lxQ|J^*M4Cd7XTOOPh@UJ=+-`#kBg%7Pb1T=34`acK7{k=ATt>+U{Kl zxNt^W>G!UTN&124^ze?=2O4$cW0hBKRz#{xPt$ogwP z<8aqM9{HI+(hy$TrCEOPZ67yCcO|0}jmvp9(V<>bsyj{A4V zUbJi@$L+$}%r(f}4x4Vufx1dVQWH}{QUjt?Sg*0LqP|1Iu$~9hc^uB|w9o;#CP)F+ zz%i>a!7+(yVQPOwI4`YC`K^3Yz94Rocn%NPrN@KhP9zVfjmb6hx>&bS40b@)k#QXY z(=3FWdy)}*XE(rO)l2Kx^cp<0#wHv`nIx=b*(I`sFOJfqsM5`I@WWo=o)t?0Oy6j# zp2o-I#I$jERb2C3uJ$(9mWf7U3|24HOx2(H#tJ5s>lf$@hM*%T>+VzzE8+rnD-_!a zCCNEO3*WI(H{wU2)q5NEj?$fYuL_F^p+ne^|5U`!+$?g)<|+63KWaP!I=@Zx|59aJ zWp)2JYZwG(AOotps>gFwBB+NW`3JUB2~LZ(N`I?0=-{qoL=|l`_UFMeq;kt;%>D6q z0FsJ_=9BIy?I2uVIO-(T)a8%qROf}H*5!7XmH6)1XCObEl=CRdTVv&xEM1(ZZDT3{ zj#S>r?XjXNufpQ$(gxyQKB~CKC(6mq9$Y5u>l4m7D{&IVu~FkAM5TV}K@0{v!qIyf zcBOE64S2ycrce?(Cu6iIjkK>dM_Wu_roO^eK_}-QUZU0IR7f(URmyxi(K==SW}2Pp z@aEpUM&>l*Y!r4I4e?AKB^Nsoj)mTR08zD~aur>5-5c@cH1 zZM)!8X3ehspwFo)-7p~?bMIepR?D?r1gEigCuw4OZF}dYG^Ju&HO5>xdu@=j`Ict5 z`JR2}=3oBWny$|plbZS36_9xakV+(`1}tft7C`t_U!o>?+S_sN63uaiMxoE1e$r_& zt@EhiN7;l$%~skD>piKLWqR99snm3Q(^Kupoy;}bN|HDByta^|=aM3osNqiyO=VYt z*9Dx1=l7B#97j_-#3u=v4Bp+B%q$lY9d=LJ3v|63ep7UQE~~!zVf6w3oH+p$Tige> zJj`_7O^M|8!?U2}LCDlZ!M@9%*ny55A`U0W-~j?QP0FCE(QRxlM;lCh*uib~uG@4r?{ z61aj^SQTf*ab!=bN@WRL$%~rBUf@r<`&AKjWUTRvL&bE&uGAHx#eVYVmP-Bve%Y^( z`{a>n$aMsI(p_;Lym$JMKVpFh`=EpTq&>N>V*A>W=*T;ApUz4*NYDt;1jl6p6rd_l zAQT9KfyXEw2|)0O-XW{_ku606+E60O`MjW9TtSwjs~ZZtH|6U)1@!XjnpG# zN!T(p*cvnkowDEJL}|h_Xd1)@v68*Q7IBN^NL@3%2fEMb9PBtGr<>%ul6OToYp%TG zX7sH64dVYYUn05{UfE6-`ChKyHU?**}%4VY3f$jsxeo!qgtwEp-)C1 zlQs=*TJ+e;F%-oV4U-u+%}vk3)b1?9UsOG!RZnA{6?2|V1DNMCkBq+t2mpZeH*o(8k5G1Tva~a&6SgpPa;B59batULGBvaX zBn4Xk!jFddz3=w`wpHr3Ul2g?H(y{W#m9-uS23#R>f0}sAShtsr~!&Hk$OFi%2|(d z?z;&naqQU{ zqFz}BQ0Y>v(W!M<2MkC9iYBi_JVQ3qJBb-AXkW9cA8eNFkB$@GCv(NAS&QbCv&cr_ zf{mXmMyM}G3>WVY;Kn_FDI_o+50PVc$_BD$K%{oVJX$PDTraL>DVfr_PTpdX%OQ!L zl1)JYwo~FqFe3;sY*q>^0%C?J%Ri;Yz&x^b)!ou-oX*}VFKl#$TtsT55xsPkrq%4o z>`w(8m2D_wj_EiOxD6(K`5yQ(uiMV&?V~6lU*>M;t>=sSvbCakXOH149!48Jt+IK9 zo}E#ow8;;i3|2&xXHftg1hpR}w9ct*E(1~FtP&6uKuky1KoCIoQ@Jwtp?;w~cFfKr zY(3!7G-l(UId(nLY=BI2orX;RI?280=($+7_Z9qjZuIr~K6FU$$>Ze5;q$UdH@w>3 z+Gweo%5qohI=DSs-Qx#fdouYZT&wTrL_U5Bme?*VdCk8jYxopk44Vnw;fG7T@RlFj z6?*m6wU-Y1i`?53W)*;N(l*(KL{})1VTdlN)QkvU7=N{2V2aAN-Kq+%+65~u)qLqCG<%FYtjm_GXDz&1{u;ZcCki(mVSrV5 z`%$s@)=$vxKzCQ3nCycfwB7W!&p*#`ITVIqnonsx$&R%IDOhFJ5a4=+8G{?noV!_I z27c9w%8U>iNC^SW%z)bNysX z9Kl+D;Lg-_i|K4gF3XbF&oh#+PsPUR+plDRlXVd1_A&rIgzyE@d9y+ngh07V&&?qa zm>qqI9iyR8vA znihBG|2Wp}8t4T-$GgSYKI#4EqhAhrA< zBh__Us*8g>bwLFcHEzvYQk5RHn}k{k?192`iX`}b4K`|9%4`*mYAZh_87Yt2Nz8+6 zMufD+S#Fq^R|s8&NDG(Z2WCEU^-KUM&$vruFt_*^g^zuxgor%NGxF{e3LjjjmWKX- z+=#!x1d1#5>{0ptT)EK9)i*W2LQ`nu4P{R>vZ<>rPmNl~s8fNvoK`NX{=k#r#GMiq zo|t*FKx8nm`Y%Q5$B=OZceRn`m{J?AB#-1mjxzJ6;GcF0YvxilOK3Y2PVdDzrF3I(R3(5*|_`P#7b} zri0XsVk6S~%C0<#UR&&}Q4{J}CqXxXWP*wb@EI^C>cyP@Id~tVc;r)rGgippyTB#> zS+K5Sm=W)LG_kJZ;_3?reeTZrqH^3z5u-c9vSK#z${%L*k?EjfV?VB8B3{RmE4_f>Yfja@@i9YIQXI9!^ge7k-YNc){EBd zT+7#JW15FEmm7Eet*mbx^6%HT%|A`^@W6GgdfkylRSfy4D2*Cb#tqB(& z{nrWu0MPgw{~rxW#nRUF{}!1>7}?va#lcVqb5qp`hXl^X;>%jaGaAn=5=nV$YpQsc8b z&4VyZSyM4+$$@8-!nv*t>cJ_CW)yP*T?y60m^qo&V&h5r!GcB_C^!GG{N;hcQRDi6PP+YsVwtF4cX4-r3qPy zQV14eJjr-95~TB>3*{7laSlp}ExBT}*GL&yx<^Jc;wG=Lkd^XokF|hb+V&p!YtHH#GMS7~vU9cWzO_Mr_ z-84C=>gjRySj(s;fc+2hR#@0+I0P~Sv#2&vgAXxJ6-%_!Q^8OY`Rp#EB-f~^(O|gf zY*J60jGwrd-X4n*TTztDjO-a>h)KYf%q(SYV1sKa{y9#KK(%W7TxO{8ElS9Z#SDvd z9)|SZY^XeuMTR&XlNF=X3f4i{D9S%RASQ^$fHd0C15L8J&|a|HLYh`@85P686~`!H z(&#e49D^9sJ7Gwtj^VPNl#_=uY-&FN#5dVZ*$93{g(Rjc_0R+ggL4E^G7Sus^AIK! zB}U~^^tW}tgW7e>AL}VwObUR}2|&{7L=tskv}p9wF&(68P*Q0$MK9#YXd;P$dS_3` zrPxfTk!r0Y?fmvLm849E$%Nc~hG|2GUY2S5N@`gR0W&(H7v@{y4+77d9At@3gd#?B z&IOMR_c$95WU_cVuc@Rpg7>l#4qjhPz4C|%BrlMXx6bV#C?}CeuuzM9x#CwL$|ay8 zkRTbn9+St|;6)b!KcR;_#FBVOCh)E+P?sD_o5z zoTyMw0@gTtH*5uTi^7KV&&G)`reOh`51p|g+o!|4j40vKd`?nZ-!BFZUZP@HPD@JX zGNnK{R}X;Nr%W3ExiW%cy#6vJON2dA-?|R!#14rUL`k>djF5Rf)5fqI5j;65&&nFZ zidEgPJ=55T6{YI=VaN*6`l#)X?1Da#>%Ys&}5NS%#1ViWoUI<(UiRVF4 z#o>lIM8Qx&N?tVwY)CQ*1O>z538O(Hlqyw8aT5uvXUm#p61hz^O$jGJqt0@u746Bh ze&ZDptbUGsGW`A>jU62N*MEk7ol6r2+xvMO@g}B7tpQ1TMI^69NRp-16?2=brS*k8 z3%SeAW?JPQewbRvOPidzPmaP)^*E+s(b<95LK5IJ0DtH0=-99&eaFYz3iq(}UkA(^ zZOA8@kwy-bZnZgQiN&I3E#A3&QWy%ySnZFwq=Vi3U-lj>BVh#$f?SwA+G*tqle#Ma zl49vFI)}CeQdurV#4)1ihklpJK_@CS6x8tF4~$HW+Q4Uk4zYRVX1c#^Rz{#6vVM+? zH2p@!>XKa5z%;!mAXp;x=Yxo-9{?5b;DOUpv-?)rhKz^kS%xAHkBu!6Q;iJp9H6f{ z^|b&+Ys7$bQ~OqixnK-5lmkn{PPEP74zwk0|JJ2y0;*tl1=i8jPe4Zf8h}eLDa@t7 z4W+`TQrrxnU@XZ^RSicktICbo_ufDsDau5?(3ScJuBZ?LX9EWNpOGW-k%6q5RuxR8uKHW%Y%-T`ChxCdU z<(ba6jNmgTuS3h=WOrPUg_$K%7$lphaKdC1`HR7@p+B%35N>DcQs6#B`Dp@seU`qg zC}ObxA!_{HmDb_v11+TaL`w5>IBVr7QR33O-UmT1_wp@qshp%4V~`>%+7&$>$YJ9I zgs@o#b1%dG^;y1e#ujr)n^}_eIH$csS+3te4g-BWm}O{e$u-*Yf{&n{BWVb-J<_%K zvpVKfMI#p)Y7=CVcHZT-^b zlmAkOV``f6I?mD!uOliamW>h&`{VbSn*ZBJ1O6Bh6`^LwdEBdKZDoYM3N8>U)pex!3lbB z8|AYn4#Gj{;^XKK!CIq-6XX--D~ZA!cEYJ*imT#?Z~&271{Bb?8-kh8wRe;zTxN=B zX^2W3)oX227nJd5Xl9&!_*DZ?k@*^$Zc>3>}@`jfQ`z z;zK&R>M*I1uYHJrSPiWV0!aq)@uLO_d+#B@OuLDDP)Ee}a5yTGdJfDdBu>ii<3rfv zf|5W*{q6jnV;eRpCMb-~S$i9M7I)ktXNr?KVN9u#WX#@sRbp$lmlM<#Lfb04SyV+a z7~>p1)5U+fx%U{ABuK;~)p=6o%wc*B=ED^k#oIog*5?f*#X%va<(hwYOn{=6nly#kftm}Sjr&)RuM;0hJGS{ zV4qLdRWY}`1Uugma|Mr`6Y!OYRXJY}`5hN1;oo;Aye}$m3HqZeQ+)))|L7?o=?<|(DCs6){-wm{*k^&V{W#Zbq~EXzomrrzjSEM zE;2Q6d7T%m>`8MUJ2lt7*Zcj^p|&$y5Ao37U$EGCmHy`k@Y`MYGh)ZTd?$5p&*LRn zdKh>epS`ENlWRD4cDju=m$Aq)eE&}8gUnuDO^4R;-kX~^{^w-qu+ATsUv(%I*}i=z za*>z4=REcszTG{mW5@eX_syPf>zC7yAZw$E#mHCukLSm99iGnZsqp^I_Nv#s`(9wp z=KkzgxS!%d1vl4|@0EF-%^5$I&-P&5O3%Yt)i-yK`(b!fJa5zS&G`pDXcj+*!~I4l zxHkOfX)E#y|Ib`_UWB@ma3{Yf+wBOxH{LIw*z8dtZHH8*KK59je7)s0>fgBh#`o3h zlf%gnvGUc%HRkJKIgG_G#v&s6-$j+1A> zN6rGh5NtTpol-3B%A!V@>&~osCg-ayUjj*LPMjjx)mYh;n3mD@=R_yD9fvWW$K5!r zw4cL~;7+ZsaAY%J4m`txKQ|?~CVa0(v=yXnTI%BUa!>76*;bveFn2NT3f_{O6}^@6 zx_xt6b6Sg7jimLmSF@fitACh(l7Ezcrhgd!MBYK((aeMY?#}+t;D~3i{JrHB>y_(N zmFmOK97gOB{N2m_#2cy)`++Q(*t)cRquafc6*C#Ypg-Uay+95N%Ku*EjMT+$OcMeC z^!^6Ye+8BQr`r8Ts{0?S*Z(ea{&+$Ape#N8$e6LWYcd%oMG6798Wd)jGS}Bfk_e2F zNNWIN00Am0Bu$wiqp@`wx&!Z(2>Kx00czo^gIYGPt62A$`>KkF7A+}VRP{uuTDL~6 zYiVD}U)*?`n?vMuH#}Sdipy9l;M4-d!5dT*kY^UBi%RbrfFl z?&XhhuJ3GbBb{4Bf^dID&b|}ejNg-oNKj<2EF(j;wz`D$?-|6bEEu7I7$+KVkfTJp zg9Ary{*8?^kmhNoq<9_JBZ@9#TV7j0jUhQVZm^(XU&V%SW0t)Xe5M-=(p93sf*V4n zjkJ)~rr3|SMOhcVXi_exMY!5Ng?Q~0hV;h(M)x)MQ||iazp2=CII@XIz(my+)WIDiCPqO~;3PCey-L#s%#(#)v)vD?E*( zTwdk=-1BfqS?cARU-+|tdT9kcZ1sNtb3ly0Y>8M;(B9=w1Xc^xQ>$|#Q4`N;^S8G} zqv0$}ygeAeTww6mT=(35;F>DdW=yi zBeyV?VR|AMvzrJcY=|(c=C=3XJ>X9S9m7IuZ2ri`no+@ZJt0^X)2b079qn1w)%K21 zES|_ss~#8E_+!zQb~xA%-(-WeGqKvnG_!}-^u!Y+5%Y(_@I-bv4v%!p-*r!2Ea+dG z2fV8#9Q3z?G`h>bHkg`vOLr{To|On^o7S$$v$`$`b_RP-=<;uD17EbOJA~-&_Oppa zMj!Vsb!~)Epk7BuFcyS@Y40wC!a|q7Tl|hAawE}Lml=p-zpG|rnjRCn{p~rHs-u9X z)y`vhdan7*;&B%7p-6kM*D)NTHFnr3mdL7}ozoqQ27 zIGupCfj}@G7m&uIExxq8{Pa6))Dh|(evS8Z;8jY$rZuw1m@~3trVm8Z-os6CI6vrU zX+c|0Akoq?Y-d!EpwJbH*xF;!ZXw>&WjE)QKU^I)ZivR(ZEQ40D&~Uzz-p2Xvy5UD z^mk?Vpa6y2^GpL+L1s7AA@QEJR6ZqG3PihXJ&BIWd@Fb@T3&+XgFn{7YRM?;h2c3p zsSGb<1b-mG{EcSTy(Fj2>Yy-yNpo6L4s(V5G^S6vOV3co^B%l6F$mteEl9C_=$lB28}3 za=Eg5x><&1o0Y9bG9N9&6RjDQQQHgkwB4tAbgT!uTOX$%AO2IPTTR9KacMSn+W*lq zO)t_%%ERzL9Os1zIZj=S^-1DVe|tHO@5Qr|mnfH2I7#9a_cCFYuxyMmy`rw3cN;!V zka@$%!f%ry$VQ<+xkiQKTd9;)7*qJ}(u)P2N?YxUB*vp`#OBsXm}czKImF$6VgmsLr|Z>}cEU3M8pkx5Dm_`Z&Rm%^pqcrS8Dk+i~ zqDXRqTu@X{Ligt=`y@rG$IJ`eGEWNW!K^|@vBVR(LM#;WC5ax%k@i=KMZ!#gQYUb> zIzbZXQCO{&9!<^SV0sppF!lRvoIIj@p@dnnQzb7Y;}JS6LM=@7sw{ALPj-_ynI}$4Ca}&; zJelkgT`G?Rz?iN|QI~7w=738qYZgRAx8bqX4+Lc70wpJ50)>)Wny1J7Nn!RRX$f^;LQ)2aU(J7}yO`+rzXfO@xPpuN&@ca}($#c8m{1O&>hH5ip zM239gy7ad5YkZeJVzuM#&_M?t#;$!x@yQ z(7mWiEQg$O7GaX?58VvLncnaEV>uxW2iZkV@MkR3)R_W1w$l$Jvxj zX4zCti3{_a0SnG?i8V6jgjj~DYAVEP*|cd{s+@(LLO^P2ou_zwj!Iv1y(bGDrslZG7?ujigp>memX#(}ONkqTt01_pO00(^Y7rQU z1Y;DLfx$A=jEXAJi`IFjom4b=P^Va(@PJ_&B#gCURq!zjR*Q3a;&p+4fG2Z}A{nK> z4npc(5HMh{<%GB75;$y+735u8(->nwT!bRFh$o8>!q8wbPnxiX@MQ7#vv~%PNGakt!J;vvi*enku=K6wNW&B%WuvU=;+iXA31WVHX3HxfLi< zd^}J5l*|IL76RJn{zhdVPXd(828l&jdxaRlN)wcs>ttIems-y#sU`}UfPsRH0UMV& zJn5ih4!X@nx6Ty1;iyN^sIe*H9V}z<#>}PKEE=-tB%6>j)M`qwe{uLQWav1fuYu9K zesqYg<;fZs_z|LOtHdz+M$En`F<}>8Q~v0(tP`Q6mOZ1C)IozYpg}iKSm$J(tfRyW zVgu$BbBS@b(7IW8#LL74oaPdH1g3Jr@EMHUlh5`AaPVBL{TQVlMU0#xu%#J`?+>(i zm|cp7Cp6Dyh*wsL8=&=uk;HI`>#?{sA<#Y}S5dRw;)OifW>Jyw7wY0R6(DN>o{}@MZ`fs5y-_<# zyQjx0^5S2=}KF{X?)k}b4Q>UEx6O37mMTa3YWxW!A^j_gu%5801BZ6_hkHE`ujmmWo%gRck3$ ztzDjpvWdaR1+ukm@yO8Pa-Lj8$uhL;k{Qpk@A6>k9wEiHi;}b0(AW~}t`x5k^4v|e z0(S1$wyOx*<+dihvP!%b?!9&-E~~_!6wL%Ebw!*|S0s5{;?*A1hO@D@Phu;<*^q~w zkGYj9GUb)9wR$(Ec{L^HKzE6qNKzR1thHD0d03BTb%gzza&ebXCGPUf1h`TB>O5R? zokt3=g4gT|z=l7eWX1dJ;x;z~^F4xlhdDNlY*Njr$=A-D$f48su0+1Aa&{Es6XB|&xy)x=-m zxPje{fnk0@NeA207YPD8+u6)rx=m&qL$u(4=N9iSpH(j2ji^6UywkBtyo)Dyn%f2e z+5bzP+-08ZN}%U2Dd{9qAB5jc$?Ey#JoyzRA?VWrCHEV?ZkAN{@ZatlNLE%+Jor*>q_wfNP7U%9)Pq5z9TJNXC9&?igEq$%EK=4 z5gd`Q--SgV(Zz>^Qt=`40s;Uxpb5|o&;iweGXduTx&T`NC4h3kT)m0qX!$0CND1fK`A9;Cz4!Fbl8%uoAEquo*BJFcUBzumZ3KunC|6DgkEz&IYUo z^a4r&GXOroazH0w1K?CZ1)v_V3=jnL044#Z1L^=v0BwL6U@D*nun5oshyuz03jtxk zY{0pIEdVE=0T2RI0nPzz1e^w#2j~EJ0L_3nKmizlR`E%m9NHj0g&h(OH)wWeCwJc{@i5Um zRorXeHdl+!@Z>PI#mzi`MCQvO7@#IDzDP)#CF!c@8{ro;+VB{(p4)@MsQTCf zhp~=OvcY0A8&$T%_}F@Y#@|!Y3qc)7@|TP(4>I&+p8UZgq9DCoA^t)Ap^CT>W!i~V z{Z)2Kc?Cy`S9tOYCbL6wQ?kh>>5b-H59)&lC6kiP#2}L)qEcu z*_|Bw#mV@Olw7dI&Y9!&VdshAfo!!aiY$1Uekn!yX13zCif=;38pViwf8Arwg+IC)LhVPVEni_Cj9%>h34_I z*<6X)&7MpA6DnA>_zq9r&XZbysF5e{z)3>@?$Lrx`DQqvY~*yj+ovmn%~7Vg?Jmnh`G_L&isx zT*<_t_s5#}i6<2=$5QcfEFCY$hU4W}97A5kF5f)tf{tOSc<~qkb4+;t*!Sb*Gc#U3 z<;f>M5HFvZ@$zXpUOqFe^`q{8|4zv+Xzxb%e;l_B`y8d`iywWa`6o|4cYz;gntvKu z=Isc^{KDFf{fm;_5EDgF`?qy``HClBT2xr^D_#5&$Cod$b@-AUU#|W!$Cvab=0B8N zgK@ec@PB|}v#0aqYf65?h!FXWE`AN8U;BR_Uy?leFD2KZUkv@eb?F=|d$agod5_M? zV-$zav0!fsi>qb2pgIz~#?Xshx-2yc%=aDcmf&n^OLH>cACq1lw| z*=px-))CNehlGRr9#~-tC41RU+9sHrNpm=JY1oU#sg&Hp8cT{&Uqr}05ZzTefo4P) zzSpDVr%-=d>X2o~CDuD0H`pZ@3wv(%0Y%G!;Sq`&!9X}BX}Opxdpal?VE%UV+9;Qv zr}CDa@-%%k9(umYTNhaDF89`y?+T$qVW#gy%Xc``Y9hOOwz2dyv*or_mjZMtNOhs) zXQm^I;7PMbeyQ%jURE2e=?;iPp^}GJ+uO~rVC44nXE0r|zJr;kM7S1;OQvi#%L2$_ zvnqtDY_^bf2WD3z@fx(h1F12c*G{11=ZvWE+KEOM;$9!iYhx%GWJC-%_GZ0U-V0!H z?s4hG9>>xOy;xxLGSAMG{G!oK5PHSs`Z%>hA0w3M9CMnW>*HljKgs;C*vM-qvG-Cy#bL^1qlYB*{ zlTM-J9!S`1@S5V%C$bZWK2gOMPoLx|Fu#{+6HUBApCp(EJd-vl&uv(nCl;LdBE6PY z=_;b3B=ZXRK6XW6D?n}YvON$ig*kdlb|@0sY?vb((YiF$5O5{J0A!jzXQMJ-pGwL7 zP;d*BKP}}}jn_&oB21)N$2e>6{6NaG-}AtOX%E_f(sXG{7rUaO$wF-F0hPp9NJ|BqE9ThW*E+6+n_2miJv zUaPFqXQ(p)N}kbFr*h@&V#$+=goB6#txB(gzB4l;;R!Pm%7qk$T4d$|3ZomL@Pthf zfA_sF09us`V+>dkTY`W!K%5B~EG}kIatQidh#Ac`9NS^4CmR(qgV(Alc?t~|qhStE z6o*P)tD)p+5HA7IsL*R*VTe79l3F!GuT2@Rwo0E1t>>EO5>soOOFV9Ut~^WD=fc6V zUgzl7y}VW@?K7|I9hdn$^@4AoY<^SP>BBP4EdC6JooPN`c<*<4_aDdmY>M|;lNZa- zVK%jTN`|296;O6wYHH76YO{FFN6GVOxC#wtQ1V+$Z8onpQ1SwZyFr{!$%`OX^V$MR ze#eOL?m|kAp!*zNJCl;%gLn-%8`-vq9b8x-zl0d8Dbp7TjuO;5p<0KJ7aryfM#PjKpyS@-7jo!QGsGy`InQt}Ek z*aUQ$>4H~rusX*s>F060b`~YCu}0{;JbgR&x=qnnBA@Jv-hxhNQ}Rc!Gyy#asClKU zt)S!$Mnu1r!xy&Nxs<#K>N>EV2h`j?X{#uCixI)vGQ2s`S}A!O)a$_N2MX3&UTdS| z9T2YvF_6$Z1c?)N>OnlV>+M1xawx!S?VAN0%eCM}v~#H&8?D1C9G#T>3H@(C|J4aS zgpTq~JtQmKM*MQA{vnHZ4f`(?2ZasRrvB4JB6YkLPEj#HSLVN(|~eo$@#>$)nv8&TXXDDd#`zfX{(Ia1&E6D*dx)V>-0;wg<1l)MYd9#DF+CGjy{ zTTe+fD0^YD4Z|0&>=Ti|aa?mEwiFL7*vtL_GuW>9mALsIX-c=ho&6h_5)7OFby%i! zMiVoYhOTb#3mW=(0d_z(Aj`r@2A*f(A|M~YTlCQuUH~Y}pvxI}QN}nYWYABv=wkq5 zEqokcd|~eRpNhuRadX%8;Apzc#~<*Jbdtyx{A5&3s|D z_5ou^(^Xd9j7h!Sg~3pN(gqHRkCS&gd*pF0km6@!XQ~ z6|Y%1qq97;@`;}?;#+>~NL=tIj>H1b>O#!o8D-(j_TK`!E&Lk`XMXq}K-7wnuPmJL z{F@ue-G2Zg7Ecn;W#JzH!WRB6V6BC}&W*(Q%NEY)F9F)D@gKKvHvVIPR*UCB3uip{ z16nNlJr>UB`?-<)yMr64JwF4iu<)O9Bem@oZX}QQa3i_S;;7NWFR^gO&vIj-CHF!L z&$9fMt|cs&7Falo_XdlH**jf_n2miF&T7D1i-*;SItypDqt?QiJq(MV*+8}ECvhXS zdA#+`=*;iM7M-mPxfb2QjpTOLyq*ZF4=kQo&h1UL@vM%pKc4r$@jJ^dEPi^dew;o2?Yl}DfXYW9nHPmg_b+5=y% zJK^#Jw|sF|tEb!j(dAwFH_np29$oiR!SjzsK4`w+=Z=>zThRIByQeLGiNF3|V<)_N z@uuBXuaAAixkB&F&kxLg?oh|nw_f@EwY$aA4`3 zWxqe#bgcHzPY1nY2Fe!wYlZOd%6F&Fx-YI?8>-vv%_%RUhW6{b=CnTgm-C*f6wb|S zY<_NY*Zs+oJ+_m*gVWyK{z={%K5_k5Hhtzlodcl{F5UY|_JZ>_`rde8!n58*jrEIn zcdluFd_hNfk!Rdx#iO6T{E~a_yRWA5z=u!V{`6(vT=lPT`{rBjfAHS(?-dfO-+A&# z;H9>=+N-Wt7eBxI_E~pmgKG{AUD>p1`;hI^F@K-4B>LNJV;_}nJA8TDYjdx!tNrI2 zg}3$l>jxq`_8+@#(&21RnYS~4`+|t`)BFGZvU~6Q!jwn1pY`}-M^C73T=mq&GkcHz zD!Z!Z%D;NPG0uAJl8Zn6`-b;g%FSuyz_**~yh(C7s7Zb+r z|3l4x$fw_oo}65AT4?#-ZkqZh>6kujb^u`0vmApT95>Pe%W^=lqAN-j2~b=Z#AA{&#f4mYrX63!?$V z5zq2dIWCqn<2N&AGvhQfHm|YhEa$hSa)YnLb8{+gc{V<)d2EgPm`l|*hQA32TDidD z-EZZ~!+`Uwm>&czv*>IM)2!UvZQ+dPN^WEi#Mauy7C&2m=Wru?h1r%YrspgRXZ5AZ z!dV@eVd1P_g(a)f!r3@%&GA?~tX595=u<6V{F5zQu=LWok^R;vi-+w|bF6W4Y7+@o z>$L4`1>jd_wR6Jyc*J~(NZduYyz{_4Gv7M-n})L6K0aqw*_t&ALlM}G|A-s@GuLLe zZt#UeI|kn!{7Zjs|JeQs{bGN9e?fm?|04~Z4XYbMgXR4n4^|FV4bJF)H2?qr|NjBM z0YLtlpOlkha=&$Q$&ZpBCqGSop8VI)&cU5Smk%Br{A6(U;G98YaPDCJpl{GS^vcj1 zLvIefHT3r2eS^J&8~XS4-{$<-dCd8V^G@e|4U7689(rNu#RjnoLuH;0Z5ed2t? z`B*W@FD9dli8Q#r!4>+S(AWK3zrCLi9S%Jk8VY?D`bX$<=hoa0bCbEB=YEp=pX8Ux z|0KWe@96LBU(>&~e|5vIhHDzGYq-AQriQ(t$qk=3d=VNKnh-iEq&FOFc(UPe!!r%f zH@w(?bN{4%wISM&Xy_SgAL<-hJG5@7cWBel=Api!Z9^9hZ6CU5X#9{eqz;t~Ih|vj zVQ0h{b;g|=oW0JC&P~pv&JUb@&h5^NoIi8k?!3eK^Pyi1{c7mm(40_xXkPNYp{qkb4c!`A8VZDB zp=}M-gV}>(F)0{a$cf=l+tk$YXiBh``(G`SKRrY@002-+0|XQR000O8@QRE~5gn`p zlR5wZggO8K5&!@IWo&79X>wm>cyM8EWG-T5VQl~aAphSViwFP!000001D$;dcoS9E zaHf;ClSv2Crlsrzra(d&2qZuQ6sAc-2x}!(M1;1a0fw$LDLYarYE{5OSsbVcRCZYe z1rZk%aYs>*S8xLr_l3<}U%zwiOxkJj|Nj5^ecs8PIdks0=bU@)S?-ln?D=#Q5j8hszUf#6gvS3kO9@U-7)DImxY#7~r z;bLQ6UO}-`5Dta&@?sV)juD2@rBX4gQYa}X=alYw;YdYgFw#nW5iBmKgg&t)1(D#) zD0ZlHPFzW-Vn%3A?DT@-aLA;>r%4g$EtSq-Ra!t+59C7n=~8h>4^LrwMktb0SvnKm z7KaM+3Mwkf=H``^H%bD}6=8OISw)F*PxXl-oTp*X3eysRP;QxJ|Vmco&+ zp(r%JBvdjjRMDm&oF|p$l~fi-Bt_J`U_o(ld|sY++--Sz3F-)y5ve%L02g`1QfVj- zex&L1kK9_+$wR>ih!!j>DF>dGtl0Pxa|DlVoVq0!U;);KSU$)M+}&`0K%hj8t{6i+Xs!8xTy zvC83sNsE#-5Wj-L#7!$G1pUSmACs(lt7&Cr#i0Tid}b(E1m+5}SsIQ)W6L5lLlyDR z4*{uB2iL;e7*#l$Bee)t7R*dIln@;N{jwQ+4Y<_eP#9=eO2vh+R$E5_U=6SYiYYN6 z3Mq(0DvZ$wn2V@ug?TkL-G+_uD!Le9kygS@Mf5!`b`va6sYF^3ipql;fR4!(p}7?> zC_##Pd;Q#*p;GXt;Semb(z3jQl4;V6%CgEZEc1kB4`t=*ODQrxrmQF`C|LqYO*Ryr zfY=$81r>#DqtipsV1nkTej@502|S#jE*0_=jZV!MmCAg)+O~@lRW5sV>o zfn^SLMr;DH7=VT&umX}A!GvNMeGo7M9JXqdj;sepZNpK0l3uN&zE+6@;doWM@zFp; z;z=|t#gZWnQ3BzF0!SS4)BqQ!gz30QSrJ696ecjZF;!=&m9K6%jM?(h{bk zDq6?`e^}n+K+qrH94k;2v(c*%Xy+!oRxJRAAXD9}Q{!s_Z8TZ%TWBaG)4@h67u_uMH@7LnJE^=so>F|vruuX5-A)8 zXr8ieKvoD!XfmNf6+~mkIIB!5HLBB#+_c89u6b@FXxZr7Pk;#)>_W28WLJIrtH8EG zb8GDDP+!DL=v&K5Ita~{bl(9&aWHMF9jMxc)=lwI;3+E%>2%ppKj=(4<-bi(J3J4qlQPMsn51qN z%HrZ?(?e-)cB*I}VByLsyPMYWZrbE<(-x2YGCzdBoXVK`d)<{2?wPi>V%yTER-fGZ zJ|$+{>dEp1g3eG-4A60w?o^I5l0ly)u;m`?qI^i=7 z;W=|^KHKSMw)4+ym!GLCt@4j&a7mzb+T-Nz_Mno@dNI)~(!9u8fR$vi+9@8&7WrKH zc)Y#b&Q;MvXs#+1q~%O(5|>CZCeS6}J2|%|$0VQDu+9_KPZQReMA7LGvw1PsBPN?g zeLzg3WAnME@+l?>#tw=x9?={S9cHoGA@a0%h*#g5U0fS}FxP{(yLnx}&6|R5-V#pd zdIV6s9^tHTb)AdrQ4J{7c6YU|!Ch@S|G(f4#syp+!lk0(($IkUQ0oR#? zoQq&$hhUDAMMs(#bc$!P<%{vADwExW(@*=7VfqnLi?U<`qF%ldZ`o|;mZA=p5*;Li z4pJy48Fc_C$=NlcNoGu-gGMrXv?7>aCIys%M#m(^gUvB!lh+wTOs>Kg5zGPnv8VK*xqZu-7fNxmOT#wX?Y-cW&?ZUNZJ8_-ZUYvzZrOGL8JtyFQCvG^Nr7&f)|7>qGM_BcX=1=BhO=cR2^Li@&Wn?l8MEFZ^mTE|z-*V1 zC4)ArCn^BcWW7m95q)-;Vu#3fhN<)b-835CQhJq6yaz+t0~jGCWf6d z)0XH(Zzl4!Q}j{;^3@Re0wA9U&6@3E7Jd0VxFk@h%(Pb&aUUSwr&UA;r)W+So#?vI zl`(Z#aPEE?|@-JppezRG1(VCS-QQrd~+ygh8 zRo7-_)k$MkT@`KK5B=`fYO`}TMiDl}Eb<<7EUF=O19Z#Hy6D{8koe}h=+sOXyrPRP zH|e5Nqb@A47L{-bal!{I&@e_<1SVKSaN*!q>bY*_O>m`JSO=ZXb)ydgFPR)qG2KvK z2f;z2TGHa}7b%7~Og(WjOn0pp($|FUNca)pZQxLa-{sH79BBqhyO%{XxBE-sD)yzc5V`Sut}**TXraCV>7u-b{IE|9nNL5A~%Z7;zqM>ZVc<; z#!`_fdEMrcTFBKTI!Cw&BjOr|j-e^0 zk4Q(5BXGOySa@w$IO+==J*4I6Au~G`etC8r(kfJR(vKKOzjzY_aW=`E$vG*eFJR$_ zgk}`6ze3dxR99%Jt}wH0hi^PwY!dztb5xQt(W0}kCLcW8pm-6pq1C|2YQhPk z#9F#Ta^=z_k4%Qfgb$DujLA@Pu)(lmf`hoBfdqTLn&}0U72`-I=H^m_9RfqF(F(hU ztQaCwn%V)d2LpDp>9h%*AUo2R=H+8}a?!lvFNcC?yuu{-(;+~IXb2MX8pZ#}%#h~m z4VfLHIE$fLnTFmh(@;gG%qFiesnIJ$L;CTXLwaU3CPBh3vJ-*OFc2dJRSlx)F*}XT z;XV^7W>}OmYOS90fH(J;!T*h_X77Lm)Kh&eof{rLm|)2#Yz7o3I9#)0CpU9~!xg!P zqq_=V)Ds=KxB$Yil0{O-xIypkCcOi|3;?s;ZPq#5W|PNlwgl{)+W}Vq6W4%Rm0?-| z)sdr6X0o8>_=JqlgH_RD1U&)|qi4liFoRr+$?IB>B8kHUHj84!Xab)bsmZs3~irh$w@kZwXrUX>J&OF47ui0tbh;E#ZVn&$2Y`hLdS{|bD zL9dxsL=Tdb-mEHOIL?Hkh}@)dP=pWb9G-?{QBE-~t;vkUbpXa(NbXHlBCRLyoY8m5q{sp@h6 zoXJ}t40m*K^kFJ!`qtkgu1(A*BJc5!j_fK=bu zUENn=CJ_P~;oU}s08tGTtuXQ(Fd2SRxlWCH$zEQMaSyA+8asH<$*5K}OJ_Y00~@`d z1tvOx6P;jJCptN5Ssul*?rgGRQvFO}>`-h_Om01QD+Hihv78tMO1m|14U*}bN|0L- zs12M`HTyBeO5mKT1kT&)xe!pCgcREZ24TOPe6^NiQliD2C%W&(SO*a>}8TxD{ zx^|+;D60!tfcjNt3YD$2M*-(iSWw5Cw$ebeX+FJ|R<}<^G^v|UvV%q@qV#A-We&n& z2&4z|zP)h<+O(K~=`Chp2Fw5tGcZZfS6*}m@^A+7pb*XTw5rY7#65<4YZJq4d61nQ z5b0&2Iil_wg3}16;liUy5DG#NnyCrX5G8Rqo(9J*GZGjN=v?2MyCdzOvQ*K@%tCM` zH<@DY0In!zGG@GmiUTTALi<(>?ORD`zY{|H6pFdiWPxy82n%{D#Y{o-g;){6oH8+) zgl+IF#SpghNgh45o@;2*o&ep3{;WDL|t_7XuZ30z*8fHT_G95G! z@+9QvBSVmrs3Pkd<&~Mz7Q(^`)D!n7^iT(`X-)3OcQ^tEt9pO}Sr*_M*uhW-H0YG~6I?iXgJg zQ~U-yCnp`s;3SBTC(b~7ChN@S*8z6Do|9l@ zNMvOgLI0A`bkKD1ir2R}NP9nz3447^yKopcHMfGR3ga~3jgM(B2FbSX2~gNwbX-2S zmttoA|BMo)?PEHq19l8IjuY05vP2z4iVEuFN)NfXS=E_b5yi~1bEVZ3Qv^-JAg&DN zp%lF00kIl)O3*%~^4&t;tc<7=A2|fB=h~6{oP5Bs3N`OqtJSLy9 zf(t5!q3e_pY86-1iL9M!eUsx2!btNQ9TJ@g9(@5Bcoz)3OS>IbV#bOBZC-YC`_rM%`&n*h9LvP6O4G5hRNz?%knOT$uiujQaZ@Y5)JmUMrUt(?<|(LERkBwuOR7SnyeHy1+)8v$KYaoWa7Mb)G+|BLF&4XyRfMVv^x%tZ7`~loT zh+Yd?ra}v~mQ(Y;NK&InvPia!1Uif5d~EKLbFf(=Z^oudK0XSXyJhD7Q9+7XDqq3J zYMDvKx65S4jO{%tx9kHx+^~lnyf?+%D>EJO<$W^K9@`q3X@~9oGSd~?2V{nf`=HG9 zLZZuMM!_s|TOt3z{tZpSV-leV|Cr1y9|?1@4Pq)HZHJhT?GEst*m);78EkifTf=rYtW<3G zz>>iBahX{Wlf*8E*ti!`3{uY0xmf7n)<>G?zye8TRuY$Z2v*M_&B=mUNvIwIRs=iu z1V-~GNOrUj5{>;7v(LozB0-p43D%d?c>3mJx_apt-kZzwUiKkgJ*|!L@!(F>GC2(% ze4EqE2mxGhG|G#9*GOWH?Zi zkkwfWDMB9?cM!xmNaOjmws`dF)xtefo9O0%j-LQgQMU(y0_yG%=mpy+Wo8xVuoiUq z6lD0AltF41APHwQsL9M~<#gsS40^aRo(0Gr53j@?C<12WD+lW`QwK?L7l>hpp(hS< zL}u2&AgdtPcshf7hR&ir0T*}FGZ-$r+oKD*J*KeRW2sK(jt1G)8Qjt8tm?W3XdAK` z>L3Uo#Ve3tuO(HiS*#}64vm?!%&b)^wPV2CG0;f9<{%wrZ#5p-ducpE1FuS)FXVGa zN%0;;T0vepkjJnZ0CMX_TU^|;Ky6ccs_%BiRi+~y%0!%WDrlAqn}bRGBMi|z{m+LBMz@wsXmA- z&qE-2A)#EcecUr7-OXfkD4^_UZ6I_`0-ckM=1=CWP&wWPl#O~j_o|CK4md9p90yq< zY0AzY8bEzhp{U1GSs0H%!3k$_FH+3$bm)ou?k|#}BAX;Sg;^~ z_hwxt_ZG#x3CMLZ6!VrTzn0K{*jJ78J%s)#pl=5HWdAkjHeVM5!1o6k+<7ow-r?lVI}&tuQnEFWaX*A{KLnf2(fTH{Heotn z&s~6o=|VJNy1-v+%7n^Ep#pB?F?1s^)P<&ZRgHNKWD2~RA8k_{z(+9bN80@8Bgl_F zx;a1E{_pwGhrm9{_z@7q_G6jZ0kYNu1D{~B(Dd!gBOvKco4zD7yMXW}aFCzbxl0&%E|K!~bBI1)Q_SbBu(oqzt;{Q{Z#Plv z_b}G?jnm01yK&_G9wjDx2MFI01U(=mV^P7vnq?maejmqU3_JG?j`j^1?F$&~ON#k| zR2_SjF!(LL{+7JHth~Og))o8oChn(9?kkGIqNhV4C*Z8Ru zn*yaNbl4Vzxw2M$)+}4t6BGRzHur5`fpy&!bG$?tlgA z+biL%fI+H0Xd&>NI0Kj`0P}?1eM0xS`-J5>V13Ra+V!mKMw2lS?u?09#zbS1(G1AO zq`~-OcN>#*#$@=l7*i0OjNoJdC+m!D;MZbI1xm&?Y)5QTeM~nbl#*pkF}5|f!yaw1 zM_cI8R%dJvzZPQ$1h+?UdjPlB89TzS#n=fcbW{j+@-aLT>X2pZVC-z{g0L<=CJkZj zvW)GF7GqbWVnHevpkmP(yTPx;h$=I7LvS|$checu;MZd8jug@q;@wr^e3p?n_AvHD zSWh2*5^}}Z6@Sd|0~Ps|Ls^H6R-+9;Hh2tX1&zIo={P_y9H18r&`W3R4ZkL%0KXPv zAEebA)oSdMW$a_@YqaBi-z>Q6XY7w%`(f99(6yh==s%|fJBceUaXg4~I0}w!d z(&2|ktj@R-a0S>knV5FW0I$&s77I+%wAY9!myc+yL{x zq4gFw%bYMXo4DT{_;Cs>p5HwO z6YQe8gXd5`KLBnIYsTA&RhT*+I+Vl8c)xGr{zNjPJVQL(pQ++C?hkes_XoxNfg4z; zEe%D;*=6Pk60HKFxHS$+Ak=q566aB=<2LOPpbm`wxd|8rbvOd-Ku;?%UuK?O6r0a< z<%1@BIZ6Ks%d}pJWkEd8_CN%98m7aJ?lHRWc2wB__zULeubaNbOxAvjiJt8*=zzZG zZ<%=pRJIq=oB!5xe+M?fg|dcQ9jKC-V~b*|n64ftRwBV{^3_S9$VWu;GLc>*h99$Y z|Byn3oZLODIk|fP009600fZWR<+jDi-LvY+os;YoMH)};*1)^xl#{z;ol|foK)Y^( zi8-;YiEU>xv2EKnCbn(+i)~vI+cv*AIXUOluKm~EUDX#|ef#!RKhIiz$Qr9D9ywto zvk&^M8Hz5WLnNK8lki=GAW20GgU5^?gCnDEhOIR|+IEjQ0z?W?RcrM;?5S%OYd8JoUVR$=e`V=c|UkzY9P%ugd=^kgJ+f6iA3^+|>OM(uv+0ts_s*{_33I~D z;yV8jlyLu9!Yw8e77+6m(D#z4i40gZEuv`lC0WxgNW>UWRj+U9X~-!u-`~bwM*K-B zmLSBPDSU#C**=5%19yCay!UBNRF=4UR}e{jlOtAnciEzP;KB23_?^xlJ9{2;)FMfaXZ9D&4Q{%L0GQbQ=#dNLKMe`zz%xS>K<6iw17~ zC0X-9O6Nk#;DyP!I7RUUe-XN~`RA zr^cAtLRATZ)ay=|-UjXD2rK{A{)1;SJiAH-d1jhns37E>DR?nP zZ(Z|kY?8d!7k5M2FLf5F_Kgkw<5XB+WG?6(&qTqvP&A;Lov=#;=IP;wMp=^V z8Id{d6_)-U+z4`EeV|-8674!eJ8}o@Ab@qkk8_9FSKPd)kmkD2o<<2bX89J|XZ#y2 z&#^xX;AbnaWY@C-&dG6PzSks=5#s4YXZq~8bStRt$C>upq3_7YAuroel!2z6F{ZyD zQoQOAF>jE&3z8GGzv!{T5confxC;(G{cy;L6V(`k?<@2Mp>j_`0)dco3Fwl9uRPW? zp1Jly5$Y2Bhr4M-%Es;sAAAHxfCs*bly_}FPmFt0&vyJ2OX2=l z#6mK;uRD~7I-`fMJ`h+B2^#urfpkLfbd^;AZhA?17ag+`lHa)f4r5CIa*&7d#L8<+ z;Dpf<=))jlpO^)q$)@G7ygT=!Ay7H^AdlH8c=Qy!fPYHWojxjq$B1S0aw>+2lyF>) zUJX|OWN$IhHN7pwkC8kI1eP@8t1n6PyS7cmoGAY3DoWbWU0$DY6lw7SrL4+vmnM@a zVp|zXYk_qFmF2)7jnGW0uW#)`1lCMyas;W~uc3bT32y+e&?AKf-nNleqCHI?^|wL< zD-kw@5fIioYj^ZKj0-Dk6dG9e3GH}olDNyg8W+pE;27t`IB00!NI)5K_|hVD@?B;)hssdFrc1~4 z6ONT13@7m{n8$w@9|yhF0&k#J88KTNlGIC}v=+_YdyB|#~WdJ<57tNmB zoL8yWy~I4)Op@)~1y-q-vBdu`D_+2xh^v95&cnIJs6BuQC-ON-J&5g3UD&T8>X9gy z3QHM}`eaBCdg0I1+&EH-v&E?&cdJp>iz4*Akw2)3P%6m?AT0M3^w|&kY6wWI=C}OW zWKmNX*k=9#9OC#&17G0^GQpQD>e&cFzTiWUJ|}LXT-^hiz4N)fiLtwDhipEz-mI>K~(Nf;4|_jJPH zI;}Kf?qT&QtiGbeXz8J8yL3hdq0q%uv`KYJL5@HJ1NOIk`Mxc>pw-x5=(lM3F;zIH zmHB>c*Lud-Db%9|rC^8)a|7ZIS@l7BR1Bph#RP8DC7a$rz}vAv!XrP zs6A)f7#3tf9px-h1w1LIEFqAyiapvtSy(JW=a5YQ=7UoH5}{vKo9YE|;7ED7w$ugz zepajy26e1{K})SJ2U`N2cKLw`@&o*I8#A9&yuG%l1jaPMht_%q5FJYD5*n$kK_p>j zqKIBJ9asn!^~sdD+J6sD)WR)5NV3#^t>1cP04e5M>0&S1{JU6poH`uua}<>u%VLVgp94^PBIW$MJDSP zVV`u>kAtFw4XNU4Nnq6VrDO`AOGLf!gF2+$O_U}pGw_Op!!%-HHau^>>|iHWID)*W z&Y64hAjyxqk{$_K@eyNown}g!T_p3SR#;x$g)_;F>_hS`kUvuPQ|JMQ_gESO3f*T+lLbBfM zc1lFUYDGuk2e=a2{g@cTVjAatox4*m?)T8)+M^6$qWRhjv5pjo+pCo$MD8pCL9k^$);?`)yI zHw2C~mxl72m>aujuKChDqOL5_@A0oTY727pJ)n%JX+Wi=P38uK!B2eN@f=P#w~Tsz zdX`ww10??o^3^Z?Rcf%E8OQPVZE`&Sstb^@@qT^F#nb-3H;S^23wxj4TnHTcV4ilh zIDba_B{8QaS0B_&J@3R!EuLZM$XK8*`cYXaBMzsy_m6pn9s;huX#P^pHsdzDm-%>Q ze0160Ukn#o`x7LkcLc7E z6dQ-Yw1PFhy9m2de4azAOY9w`$?lgnsdCP}3Qm|3sG7P@4%D)D^yhIIC)|!Ev|5#? zUh!S*t6s(4zWS5p>sC!n@C}p-fqV-38Q)!c`EHMF@b%ww2lQ^F>W{P5m8U$(FJx`G ziYI74$-+dl1qX+%TosEyF0z$3sk;$s9$unD9_ZD}%G_c1Db-`X1T1nByU04+sI$bRnoQnQBDDqp_UO_q7waOf5xTr(8EyCqq0JDV?-@S zt^E{Rz;b3@_=)!HhrX#Kw(t_x|D}4$TYSbXdCY+BE8Y}H^)8n@?W=O6j{X@M(W92V zPxX0CjdvOOuh&o2r5-{v5YksD&FH zRd3#xnb@z+ZOOrPJ3X%Bd!@hZa!A-Hmp?`@-}Rd^6Qst=22;hW$kK(%YZL^cXhGKLTA$|A7ysc9Aa@vKLpq?Y*3q zMs$WQ%dqD*i2?zHt)D3tVly$VNgTc(c4D^Y_VlIpA9ZkJPdb}G&D`AOE#@nhRSnJU z_Ngd0+U#pQt(((E4n;{--3+dE?!);U9_CLfPHh3tuOM3i0OE8Or zgRf^_TPcNf_Xp64Z=CS+G&tXTZM9|p$+%lfUhDSKt+G9PgT-#{=`uw2Wux2nusQna zbI$2FA#&9&<;wGAqlhN4g}{9Pt7>}Hfw=p8rCP2;Hawcat=qXu4fwYuM@zdol(25< zV|_`DAD@f!A%WAc^s29SZF1dkZ?i?_#of3FYbT=aEAq;9VMur3ZL>iG8W*eVS<3M0U`$+W}m4s%ttAi=O%$8~0jJmYZIS zU8b5K(BX8yUNaucor-Z0JO7n9E_YfyW$V@Yt`M`mRc7tH+f29dUzAdi*q$yCo1i%JxnIDLZSHM zv7dK8KgSYVra$ht`sc%+Hg^cu*2Qv*wQdAU%@6=mGqw!W5#DJZ-|51$Gwt~VDAef7 zl$;m$+Q&1FFYQCAYzA?v45G?jz8r_oZB$ z2PB=2y(!xsXFgZ!i(b_cJM}koZ`B^w)~ki+0w#ejB24E@R)J)?OKh#C- zzx1u}$az!Zc2ipnu5X9)JAWBjO20%Hu8Ex+YWRl1IZeJNZ$#qa@Si^mo@381AH_`D zJQ}qCuGlVd=VBZar*OBXGx;vWKU4Rs5pq2T`fAE^YqpR=W8a|WjFM`u2z|@A_G#o$oQpZ~4_*vU^KBCuiwdv@uc$zuikMaTc(?32} zUHwkZ)BO-XYS%l&D30~q)t?_F=8p&~F_NMsPv7<50_;+Uj=f29FLhRieCi&e3Ea@L zJJ(-;NG@aBc787mS0k9NvddH5on;U42+Hmz;EQJ4^V@b@?v`i8S_0x83$r}GfNc)H zQW|VCGG5Hr-w6eJE_Bnk_hW=;+P!D_pLh941pvvqZOgvxoc~&Z4T1&>AZH2}w`=bXvMZdK-P`^jM0h_4o_l3yqnAb)Z zhV^0tJ}pY;oMa{)_;tqx;S>!2;CD&RgO$g)3x}G8Q3R&*A8o?a%^^(jnnFAvOblPE*-- zJWIBxeWD#%PId;r%~;vBmd@tG3#OHqs<+<}y&a#xzWTI3gH0~}Jm2T>oRi;7me_X3 zS2m(U>bl0r*Jp_fVUqZR97neU{~QOS!+3I500ALn4&P}uchN(v-KXv2Mvc}{b#5}B zKCo(PqUY5SQh?TM@ulKGNzX;kk+0#*+KdV1e&Qk|IyAKi$b-qvXAI1-Mg7Y6t+d?6 zL=CGa8mvp(;!a?(GV*QUtcku{bFYrxU26qIFRndTMUVAR-)38y|4eLhP{;M^QNA`a z_@R2uH1Z~WNC$l>`p8eXCbv+>NckmR9NzW{@krqGe1GOsoq@UgK{uPDbUh;ErP?)u zv#XPQWN*H$y8DsOSKO~qOsUdVE9)WD)gt(oHLgWzzPJ(I-}zGJnG1IL6I}piZQzV= zNlC8E$bcVh%E_LB@O_7N*LEg)xITgbV7MwF16!%A@Hj|nOr%`G?9GEgOwaT1-{ry!yAkHH zYZjYTlrrp#`=qbVz8~5OR4^M{vU5v*Y5rveom{8+iM}`!84fotB(`=)2fP%#%1-$R zt}T-^JiPl!uMD8gfi zOb8%k1ik|y78i((h#iBI!;!_Vh8`#bZX7S-bL59G@fECRo7Hky!O3Tx!2oQhS%n-H*NT= z*|pjMEr6Qcgk6?(x@MT>b?ZbMx3xQ)dF$Y2Z1yo#W16Pqb&NHPb=B1~Yg}twn@sCW z8!c-d>kgYYn@}4u>zS39Ro&VyYp+dUPM^WPHJ=Svvs3fe%Je$@YIm(p^M`qdVTWah z!P_FRD``VB|@C(H+`HSGI>+|h{?Gx%9={5Du>VxLP<&*6*^ds{_>s{+({oU)` z>*MYH?L+Q0_m1#U;M{N8Z{w@rOXW-JQ|Z&~{rYw0b>@ZPSpev_+jH`@_7(Ug_I-)) z#qhcP?)Ur!)Vuwn|CgW}k-SIt$BSrSl$R^GLsaYo{j=w2SWpj0o>RkW2rgpdR& zK|e<4QDkiq#Hxuy8l5~W)iwv1`+e$qifGZDM5!VnWC3VY`|cwZeaumu@}ClvYid%{ zC16M@6^+fI&Lz$fpJJbuu}V=VEJ=A4ZO;8VML1Yw zJgsfik-V{cx_-E>^|5$c1AZF~*NJr`TS-=0R=+%ibLB|)?Zbmnom;^|Wo$pWIlAShu zj^l zp;Y=~IL1)Szf~ep#n? zxcBhOYhjT&;LiH^=BRs={i)X`gT})O#c*m&TE`;LMtw?IV-e(kWYVRMLM`*T^tcmQJynX-jgH`6X z_PBq~_lN!pDLJNp+T7C1A85*iEjwUDX+dm*;6 zGYD0-tbt#B9Y%l$AWOuW`7N~}y&<_FYYj5xM3bmG)8fJ%b%QkLL7sB*zg&pu2h^1d z-%~&Hy|Mp$^5qSj&FR%Ftc{Hf9RGiZ8*~PY@joU$`oAWA)ti;@(zyiyjh+HIL@hC| ziqr&E8qfOMFnWz7%sKH&cFu;Q!@yO^v5Z7gs4ozj0E1VYL6`5eFB0>X;sY+?frwx+ z5ejL#1T~5S%9q7%%j@2Ykfp)<nn6wyh$1mDN^a$k^4~(B>i2_btoiA3VB0} z6jUO{$rq#v@qymb^ZkL$Bo%mZSknv_W2r!6z_;KduFlgJ3Ex2p6UnGQ8fSl6cuycHoXXs%kbC_|1TWK`SIuj0%=7 zHtmy_{Nb7d!mxw9%~RAb8j@rVO8)VArGIp}fRJdqmbG0=$3ZRvM@peupQ1i7ffQCQwaZ!N=#Nalo*3G?sIiT2lnyv zbh^Pxcgy(6e0Y9*Q$YZLh{KyFc*mV<`PUDHakFu!!ehM-MMviv>4`a}otr#ODsjz={pu< zU!P6*gVdjLq{rW}SQl$a12c-27J!Mn8s?BHY6Q2L_KhP}G~n(gIY6-BU71*j#m-A^ zr~r%WWj44|7rK)Y!oUdH;!Ca&(QE25;Q}21bPLzQE&QWwkqt+9DlhmgpAnzoB0Rxq z;;g?{jqF&6j&6$Y<2Gck*S_W{*I5(EE_wR@^LID@Zi!w4$6zb55$o?Bmc9 zNVhOvF*2f{FlO&g{bp-+a=*J8`E)al%+8Gn6Eo(lt-Ya>Wax?4%ttRlB1@hq6)4>s zY#}Fu5PCVJagpHI0%32ZW|xFXaCE#NBA5; z*vZ&l;@9fhF;as&=yP+@9Qj$U#Ay8V!+fhZ5%RQfvV6u3q<*T4s?4ByB#PInu_#y2 z5*f0zu@FqtYaW(y&LGya36#vXZ&_0k6*^Z=R6f|D@n%RG)DQ@{=i|xxWmG6?bRTfv z6_cNze->%yTRrik?C7IU%3D`&w6HQV;ICgH|7O%Avtn9^_6vNz36>&$(VyyKyaRb9 zjGurSD|jGg~HBdNCbP=M!lhxU$x&h=4JevGOQ$OnC~7%r?X+#hz zGfI4c5f@f7ljSbWmfcaA#dtWsqevJ+hv~~_2@J!S6)*|Jy$M2=0B>Xh^P#FX0`{YQxU84Uqf~s4l<5nPoOn) zY{?`h0!?l<@cE2??%;oC1a2R@j1Lj{r2J5m$~5QmBak@Yz4nkQxd^#q>k@r^7p`*cKiYHs7`TI|*)X6D+>uGMG=_r?y)U$AuyC->p*^4l~HYWzfI7?t76;+WDXb{;WFzZrw>+Cb6 zKE)fX0GQ!oi&nK~IF1MEk9HP;7l{_O&7P{44Lt*;X|2Uw+jvNcs938r7!Wy{hs(nJ z6ZDl}FRO&RsTE`#2(&w4^DZHb6+vc+T|Jf!M1j7UmtAv<9acsL+nKeF7&p%*jQ03xCp>EiBLN@y6Bg4G=8ohh+DEqWM78 zWHF!?a}b7AFn6TceJ1TOvvjc`*->(-;u5avj<8p;WUczi@WLWq`tJ}NR8%pKu+s4-v`qm%LwGzHCFOioWqP7+u`?eA7y627p zz!#<`PGBX#qH`j*|F9xL2Bnvlxo*&;Z}u>EW^_Xrw*t#LS(qB zQ5p1s^+gCcvn-jM*-VwDR>eIb2Ubw#Ku!F7^xhIalcphF43k02(s%Xzg1%X%Io8Du z(Jz$CLpnx?02pg>t8%Af3PMTtH=Ca=LP-NdH>LHK+R@{AjKtSPSEN_0B zh5TODSb+I?G;=ZcbLeaMb;X2R@Rfv3wJng##0r%PO zc8%SyS1KQX5`^WgMBR>|id<1TLivdF7b)ak2AtT`xKmumm&5!iPsOYge+$cWZ+))I zl#cjEf5zDXBm^o%;>6jv@d}cBK?ntvk6?%@La;aNOdkvt2_H@Le8rmKHrpR183h+^ z2&xIJ80Qf2&?7>gtzBCZ!Ux_29wD@<2uw;a^vs$7z4{+aFRv5Ya?b^v2AsIHmpL5; zxq8}XF{RNs1HfKt#g7=Ira_Sl#wd=oYN}w+K$2M3Xl1g%xqaO1-w$Zi6)JPsBuPk< zv!tDHRB!g`dAufinQ28)zo~%=V;g{JeF^hC6bgAkIfcs2+_S0KY?PS;(>eteclXbH zvq_>oZM4w(>`jPA((~exE&d{oAbS3z8*B8ApP5MmKd9atJ1<}E)PFBySe4L-6s^qB zf;BMype4Y-iStFKDrg!mJrNKozX#X*W6PzQ`~7gZOH)wHd&Si}HW9 z6BIsNC^-AY_#ie12C}!)^?1pvZ<6qVBMuVcM)hS)^Qdp-r@S`XlEgFvaspj}>QB4n zv9WCu`k40FKR71b0V#?Q)9ynsAc$`k&y4YYwi*~N{v?&@q~U*(6O8R6KV*})-xY6I zc?A?9ne8iJ2#_LfsmAJMfNoauZl?}r2>2O;pvfYe?ik7ZYfu@ZSR;bJX_&u>=2cWi z0}#dQi3A6oB>t$WOB%>>1D9R}jr(vwQL0)v*)1p@`s<1-9;r+hpf+4Si5oh^#WO{&UWnFXo) z$Flz&7ynM)hH`4s*@WvcWcT`9uCJSn?iUl`D8Vn#u{uP>vCK>&Od97L7Snng;4I=v z7{^y`0VVt0-2ve^P*0g-ls5Q?r&_^cz8rhi2E%#1atJ>uF|8M@1?`)E4`)l5T)vU? zS2}30H`#A}+3j#)sCb0Ozm1%oXRv9(-zb0_PT-<5MTRgxSfMv{Sc7j!ZKX7Mrrx1H zi4*bH=#e!a(!_r4XwQka)$Rv?S|X9ftzU>-9uEI*VX`k$xAe47kFzqLiuzQ7!Dz4u z`Luk-a`efEI1f=?WvBNq?VxX!=XCWWlf(d9q>^2*`W#w$q?+W+E6m&BK}vf5FwY@u z_``70JGNsAt?XxU)Bb39R6Edw?r?{#6bi5jO08Y$w;Bxidkbg2?G%Z zRQzqiVQpIe1u{m$SVsL_D18I$+FAS(neM%y`n{syN@E6kV^)C@4zbXuR)}RQSR@{I z$~1H=E%qW2CPkvGE-M}ylo|Tfz;fPm$|qAG?6o%rgRiz?+S%Ei;pkgeLp5bSi=X$` z1-q`f0_Wl4?NH;B;QHH7<>OIzm0ud2tk-VrmCKE&Ta4oR?kV1JZh{VB zGf*WptTH9Ce7nd;DB^gx!ZU3}2FgtUTTyE$Qh>%)i}xCQx2 z4g{0X^soi%ER$|0G7CNZffp%DJdwID;1Upi21cEH?rl`^_f>K0Kv6fH^@Wb2C70T+ zXOv9i-_c5QW<5O(Id!{)rnRNS3W@bUu--x<5oXfF5 znURdmU`%a|@%~{cP*6IkMqbCHFVKH{=z`@Y<#7=I&U6bT`?LTlnhi+3wO~=UT(EGm z{`F2*St@#ZLVi3s!tESijKibqLvF^%86>=4Y>O_uAV{IjQmv}<$SHF9ggvrXP zn7Olcuf*AtYEKyl7ti`v1gK^c8C@I*V8_)WzsIzR(l7!>u15a2te1_IG1r`H%e?Eg z_?WVzE+0M5e&|P8w;G`Et3|ipH7f)8wSQx6pNWQ>AZfc?8IkjV`e4*^YzY`vu>Y?1z60u)8psjcWR?5tO_Z^m z5)7!%EqqN@*T<#+@Y3(p8nCXF9{!S^JG9~o!c`!1wMR_E2m3vnRe z4wGKmfVaC)W4PQ{saiiiViRJne;--Q-dyqA^7gb8ve%(HBrwk?mQbk9yQ0p>vYB+r ze1lAnLJhKVI~QNcr6TDl5<=X|E^rP3F(n!CkJ7s=dtG`A_KUpFB_gUGGNgpwU->Cn z;CZOaV<5#IPlL&=n?ojJGJ5Y$3t?{7B-;JA%3$T*!S8%?B-bme0PkQ!Um^m{)4{jaMcS)PZ((%!-Kw`$Sk~0 zxD97NiNU5mv-Xl~Fn$>n+WvUgbe(4uvBR_GBa35dg^sRcG?qhN5l64l{ znO%?r=D7@F_ML`OL=BH-=dTICJ)9#Oo`mALY+6DzNbROIcJ=qwhh0cv-4auQ5gce*~afH=x+0MUn-!Q@T zlY7Z%GRh$^-zzrOhSH$k3H{s2{hs1>PV2OXBW+V>p)OP}4tTud^{#R#3^NdIP7NPO zMYsKoG0`YA*OXj_^@~4D<5pE)HCEPnI{}T%IGU)(*yvCb+3uaS?|=2SOqZnRzMP)r z#HlC;yhE*O+G9+*#c#p&NQv<$z5e~AFcj7gJX8iL_Tl(iS}g2$u|jViix-+V-YdUb zmkKPn=nQX#+89T*1$>GjzQ5I=x}=`UxeoUFttwiqygc_S!RrPV=F>oZhqy$sD z1_#FO$cWzRK71lu)8k|Iuas7m zoYE%r;azo0s^8)g+r4V!na#RGVre18c$+a9q&0G^m>BF4-kP*!q=E=D=S1uO6&=`F z>_mo>1vVwU)(vQflvkhp-PG#UDu=6w@b+92Ws)61+Pe@lKTOZ{fGV{&;H=X9ck_qZ z)-|b8wRH6#4wKU}2)Rg&b=wKk)#)jD6D{#jdm855-BKi|QbgE){B~`=bCdZO6NpFr z7>|fjW1*v$P$8O|k`sspaOu-JEgVUtw>2}I>;^V_vx24vyfdgiah%>FTF~{F6*hUk zxW10cZ$2sjs@Ey{67qRFSVS-pnYMy8fmJ(`lBBS}LdfFxX!K917DU@=oY{U6R&$Q> zXvzb^cM$dOzUz-f+hE*}Ga$<;uGnjHata!vdwJ~V+J0MfD>ez;)p2Cs{n>YBXNO|Y zaqd%eJin4rD8Wev@z3QW4P1OhrjkNN&r1@zc9IT8fV>R{{<3!b4~*FJ>?T1=BHX5i zUL5iVDe`G(sisqwE(;8^f!3N^kHz?QlfK@1!x(mPb|95T6c%-ktEVBdtY)|}l4>?4 z_7Hw#2yLl>;?CHEY0X?nr9N^Wli6BOn4ijx&k8W3VT&c10!F?%UOGON`=iTK3Y(%B zAUNfvk@fS#>BYSuqEv3|-G1|Wu;^}u1@9;4N3qaFS4K-@Qc^fMAyDG-u)NT(L+mSs zi{mAOH8gdmc;0WGbU#h2F_iNVoA|>zW=$#i@7P16TLJ_}{tu*``?=Dqar^$1X@LwE zTJd&GUk5UolWM)V>~ku=f;eZf&f**uj$#XRYUsBnQxiN|^8vXUcN~b?0>C+`4Zp1` zsy`g27YrZP&WBUfF&vKBiBFmkfk`KOC~e6GrP_^eU7%PslvbM0?am! z3Vc`_RClb)Q;!-56Q&DEv(zwvMs%f{b3e_MZ7C)G^qeT_K%#6w%BnJO*iOAXO}^+6 z9R)V*6>K|li4+h17Llun3Fz}_PCr7KXQ^~jlOoGZVO9zrw7T%%DBinq10Q0++F$zJ zbu4t)QN9dyJjDrg6qg8F8)+xp_B}4kWm>zdf3UffC410PxCPdk!D9$39CwCXfzR{6 z8IiggQ&F@c(h`eGL}0v9ewc@*XtMmZ5{JU+?&Fcer3>ECrmVL*dZmOYIrqB3KidY* zi=5i9)8Ey2)Dix?>9N)y>iPreLBQ9>T!4vk#{9w)Bei!NzO@TJosid~^bgjA-&5MI ztB2Q%;~F<$@lsWW6otU`0`9~@M`o*B#AMglBB3U>`$>Pqt$B3v+9B;a_-TN-asY)3 zF$7x`$CXB#Ww%f=%>;FEQX?LfLG}DGUT)RNE@!zD$w%P#s0A-giIx>M66esY>t?q@ ze>ZYMtvmaUQU>2O{ZixHDB+mpt8ZUMACev?K0YGA;1OZ`u^H;lBT$=$!(&9P z21W|cJ_)sWdEaCKaxA4+lKji3n2>D#(TUCriZ!u(l;{w)*Xoy@BM-hJW1Z!KPo?Tt zi7Qf_AJ54KdHDdxphNc`AD=?z`SuROqlXZP=`IDl(GIgFA&<7v$}dSgj+-?rqK)J4 zEL+Oc*fqXb3%X%1E{_mOpJ7_QC|m6Y3a_4mv3`k*KAL(ebE&WFORvnUbe-0p!T3PV zk)=QrL4l0V?b?;BH3HE(k2=;*;4EDtRMAN*ejI&IUy|H+&_(yRP50(&>pF&Qd zytTUZmN#WuulOGx!EiA@p^@L;jw|74s4k_ao`1Gf8M^#WUIrB;fREJZ zLq3b#>GC0ZmrI?<8$9&EcSvtmrhh#wZd4)82z<4C-cC&D$j7{ESS}Km=D+|AmB+0b zXz3mdjTI)RSpwHP6uz^=^2}}h;+s7(iwED-?gud9*H=Hl7f)4P`RdFX(Aggot-6;Y zJd*`i<(IWngc)`4=T}`!Bx{Ob_L11Fw?-ie@8ycodXwkFG`7{f%~3kK4ot}}@5lU$ zaHRCnnilB~*qV5Y-_Va%*=J9$wF5~|=tuS`hz{c+@LZ7idGAC1({V{~?inxlKeQuR z^dR)SE!U`90mF8&&>O&n2uTXx1jFnTZe4W#%a)RMEL zTbsF}N#W*wNojmhn4;;m34L9;Kvl6R7D;Vi@$rB5>0K|4F=x)1nf_<^?_sT(n(qNS zg>=0fd}D2TZhFseOK|%`{i5=pnG4&Ui0k#IE5bO(!`k9$EGl6Xs$Ai^^jJfNkvYXq zMr=zy#fnUO-UW)$U*~!54xf?^v6nnSWy!M8_)w*WsB#a}d64Jz3*}1VH4Otw&FTpF zS{;P>W#Bi}!iW&idBxd}X6AQlZ#L@;@S)_kxZL~Ne-e$xQp^DL^|^Q-k*nt?SfkF= zIeCQGJMQCFp}10T8ZnBY)w65nSWdVK(we;XU}+_ns0Uaq(9mrx96X1R>l9}=W8O2X zJj7x9sYn_EPe+mGHZ{jbJ$Qiy?;1(45?2H@ty5=yIue5T`X4d~RCet!Km>xuG2%yM#vx zkr^4&gl2n5-Yjz=6%K4qBZw>1Fey5@@@{@i{VTY$QYuY- z{;f6AVWrtA-PrZ}(INrF%JHjP#QbUY_Ndy$b$ysd`@t-%NThv2Uh^{@RkiBgp^8))i7bcs zXxslC>=pl`W^;5K#=WHIqd-$-mNq-Xj-mxwY0) z%^gJ<+Sa0a9{v0D$|r&tiT)KQB`~Y=rn)LVRY`vse#FmPBm`{pc>=YZ#_law;ZSX> z3&{ujqVNmu|5_)qmn|4^8-g4_D_99ZIyV>)5t!+qP}nwr$(CZQHh;?AXbUbN4u} zao)W(YW7xjsxkjH`T3<+f&$Fe3a4AVJafvyoY<=rap~9fSlu5IN^Ymme?JBoU7dJ}~z;rOhbwt<>aJyiQa$9Loom(oOQH!&kllYF&Dtk$)muPR7TGxXb7${ zl4Rm!znTg57+rdEzTzn4kCx}xvVQdxoN{nketS`MNZ6}9mATM8S$*1@u^pDf+ORH9 z#we|m6_yS{szu+^)Omkmx{BuYSlMx%5^UYehs)sxv!pt0!KQEs3>BzZNXEx@R4R9odAR3GL!g(_!@an-p;O8)WKY3+jgYa827)ka->4i&orb`0DhvNV#&eO z+9qUGZ<(ASRVRR+7}^zvEgteJexi#ET)kBMo{-+q17NMgo%I93@`T{D@i# zu8;DgaAX+-btSi}XaYqQ2)d6>g2JnCep5fy*WH3~^ui_~l*f5wfAyv#96V1NJs4IA z0jA!h(0KFqJX>9nC+Ch-*S*ATQ20<(IG?JyB zdgTR0D&K#jXygS=DH}LKMacz@QQp7d8+@Utnv8s# z4(+eS2?wpMfYX+oBp%qp*mwMFa)ZF`$s4CB!icd0y#a0SS3gaG7@*fU_e)>RZ1;2PPMY;h*$r9z5J@G_wVtNC+^hU@2`B^{QCX+Q-j56 zXQ#*TsCp09Z>G*p3oL#wN?z}SqdW7Txs>fuZ8skM-NuX66i(-*)i_?4>4!7yP#;vLa60DJ$SC0gw7mWoA|OgUV+ERUDv)%BC1)hZ>T26%WndS#|d)gF1;+YOx8{R3`ti(nHn{KB*x?PQDzzL8F z&Gzj}f}I#O=^C1lqrVao1BiX`7P#ozaS@TiPs~HL`YrzVyB}=c@QPpRs{!+;XlF>V zdDulN;~-mj%o;heX0UhOYsnyXwT}4XVE#~jE7Y1xv{1BK2<}YnGnVHWMpovWp~Op- ziWz1a^gzhvjMNF zxQuFj@veg#30~X`Ir>H-^dav#3CI>#J^&JWne5Fv^w^@J)lU7Sy826pT<6oJFKQvE zc&so&@_2N;A2`|T}qIEKSsY6tK4A$mqsj|6 z!TNMx8m`0;+rR1grR;|rK1VFn_)NpW^n@>!SLnV(s@^HBuV%wXnmJn=>KS*5Th{~d zU?@52N9fN$Z;Jw+b%89Ak z6~J#Il#%#^iMo7Psx*R_leTRfTWNjw{jQM<&NV?mzgsQ#nZ&R}SiEu#dIsLF1jNjZ*b4T)>m&p?8 zHdj$k4rDerDv@r~#$M=>+1GUc3VsTEAn#4jdOQA=#qmQ*rOFZhD$hU7Q>%>^W~quo zwP;3B zJKvWM?Lpe;7Y4?t;~nqg;zPV+!YE25I;z3P-@pm~`U^AhgZsf0DcA`fW`7}%ih!7S z%FcFQGDHVOO8Se^pH=BFcIjpV)iFT!NBs1`IV2cNO)p?jG6?YQN}K+)SdkdwX;55?I8eAErm99zg~dIBEB683X_-ey2cCx zuD;AEh5gq&87-uumFitdY(E_bvIai6lBW)lNkdMSwDDqk&b`#PEOk4NSu;O~|G$c; zOKs{NrjWf7a@RCx3FzQbraUvUp^zyS)|HB@Q(*Fh2YpFj*2X`D@q6dBE`3Jj!78Y&)c1lsRj9l zi)Pw@rlWnrjCxLpM>qp4ATI}{^^dt!?od3O12#gALZnRs>bj`+=I?|z#N)-)bZ zC?I$c{x%;}I?000wJt+GjaxJDMu&*62pvxv0Yo&wX?kya>E1w>eUa|+&=)!cK-E8< zSoTgUs|ngK4)KIBf$a7A1J6YRuf*3s<|6vezCE2s-3V<*MrEd*t8Qv}lW+IX_9lzs ztc1U79tGlrACJ_KNahU6v2bSVP`pZ?7enD|hwHtK5@lJAPfE@5R+cQ~JN7HX8YAym zd+~p2HFrGaqI__2mV&8{3Il?}V%7hOdqkPRJ6)5)*I=aZCk(>8E&;!qI~G;!(4_9o z5`&}Vw3{f1cSz!^)>mJr()*Yq9oT)&$ETOoNOvsoSp3YdLv$!cZ?8%PmFRLXowrb6 zF`1&K?I>!Fyng@{eufNBQDaKXLP!ne^v z7UrZRi+Rq9Q8C*>{ue3fjs&zHc2?*)0Et}QD;FY!JFrC?IKvoDayC5)6ivPAp6I8( zm6_cGg_~;x*V8?eD;{6>N#vG!aeg+Oak*UF0&L@ex0}eLWD)H;>L_VH69al?EBhO| zQ~YxXh}#fv-^xy9GuAu9YiF~{K0NmQ>L=~be$s`|6BQk9f0$EP1B1mr#sJGFxz6m9 zu?1JYw1^DXw@sRDx(oXNp$j9oIZ6iWX5O9#ujp z(R!KBL{yZVKMikPjy-40Q^nm$*Dcz5v2edfVxHgwbj!De_e*e>X9J6>%g8g6>RS1B z3Z@5XivsofHZZh+DXuO#Y3cPF0lk&gaC>d(?~#$mBq~EIx61jp51c)$#C{Tie2Y07 zJM}j&*&&5%4N+`~A8^f)eX7Vergaxi;SiL}oL|SASwnW+U&x)%AwL*I0}RBhK(3dR?77DcO?Df+AFL$fZHFPVKCVQ<8kN$?pt|MHN|hgExUNO9g#|X^ zCn~L0vuAh37w)AvH4<9Z<}ik5G;4f-Hh=aNCDj9F11bE$)0c}%zQdLbx4=cFsJk=n zd-a>BRt=`=N7W&*J`|Pxj%j?rwqSce{{rF0SL_RHFbRd-+{F1pNs~$Q5e=}zd^Vz) z(Hl`NH<2bKxr?HC?eH6uLnBj7JQ~Jp4NBh-{TZ@|6^J-ibJ#O7M4?GQ+wa?6-OQv6 zf;(0F>LI!IfIUepKxk>qT0b#Ij!8EewhMsVikdb)Dm&Ok1H{5K-B5=?XWt4?0*dz| zu;dn#E=nOb35+Dy95-rDn`L$37Yiy$jjZ2u_hRtLbMF_Ml@sh`iS)SZ z?kDko{3r0d?P_I>{ewd(ap#ZW_aPE`%uh(yjAv=;6kTy^3oZo2hJG7_u!7@+sZ3`- z)0>IV#MwbB@ecYA673t|O+y*yk#m0EaU0r4h)UB=roY|Ue`DI7qIZp=ci1pouvpr! z)UvQ-wJn6J+Ob@&=}Bd;C*%xqWMrx2a%4o{h!>yS$RtK`9}_Ul&8q*y~;|y&8HpZBd@L&AFb-eE4?$Zr#408^n>p{WX4Krv+AokZt&u3WMLuy>ZED1^x3IUhKPzt z4G8)tlXtPMv{Rnst1gSy9zwiXLO=EvaR3^PmeD{~Z`-^`35MbazgT9^_faO?$|!4i0VSqh7Yzsdqu4R zDs_pbu17y~=9-HNe}$%d-c+?&=obO&u%-C@L&O~~TE~#q;?K%%0^ZU7kv`&xwv*pb zjCI;u^Zdl{O3Ycmv#Wrh7D5S44f&Q>ULHOQS6}15qpZ;`!Jy;Q>^aUM4Nq49gwQDQ zCc`<6H+H0Y!=L@}hpHvY!|Py`OwTc`rb-lp@bltn$~lq=pf$B&OZ1+|2l7t;tBlgD_uN{f z@>!$1mAl2et-D{=voBYN3xm&#!Ii<8q3o)qzNlo~{ZtJ~uJUm0X zJWs^*yca)N#6N3o$tI5i98QL|9<%TVaU+GE@6hd| zkVViTD_Tk$5>7@2h8Kf+G%QLY!7>I8LQIl?5lq2nfWm-?e;+u4;RAx4 zH!x!VdR7Ozdy@TqmVNi>yMMQx*?EP(*9k`WE@WS3t{rckijbry46#UxDV)D{Gl!?` zJ}y18`h>aNX2Y4jJj+O(9v$Opwzo>V44K-}W6McshMlEpL&L#t2AL2N-u9T#FDyM)-1$znX%Fy6wP%i?Dnjzz`_#+1r7-jAb5C?a+Ym))k`fztaZrG&0w&{C^e4j z`jQoQpn-T7k;c-Lyo8(c-nJ%j?i6;`S)<7~PM4S9Bo#Vq+R7%}WgHeYV^C+!92G<8 zjo>-G;L;iB1Tx_tqLw1TBT0g#7u$ZQJA0+|%9~k93s*oRQH2%YI3fy_HIUkZTXd-p z3X;TzBy|-K$eQ^lMWQ*HLea5FC}=|2u^~bt>si^9fCE9nQA+m6g8{DkkmZ6eo;`28 z1)aDQJy~VFoKkfVvPy!SFg)u>F61#rvW99^GqfVfsUonl|R?e%R$erPTqR1+`B73OGYaDgm_i%)RgA?c1OOKSW@KHT)%4QgbN$(q+`Fc zQ&2k{7I{()PCV@xxsl|KNUJnP@wB@VyN+VxG{X&LF3l2$3EV9woOG)&<3+_W zXfKjxOO=ioV!XQ)4)to-HWELO{tU%lzXEBE+Zk~ZP`ODNl4s2SSg!17e;uEdLC@R#1mb+Y?b7u!wVVxN_m8{pyj{$-a{m>w0Qz=y z9#@}5js@@6e|ZVZb9QgP?ka=T>1>qpexDgkOC8l7m&=~l<8i(`>TUXPIJhH&rpeJ( zshwxroti-DlUaeA8yVRGLJqm6PQ-a$xwVfJj5-42NL%Kw#z5h~RrSAdZ9wLmoM(jv~asUvW0KPX|3F`!kn&m-n>$l>5od-SKx)7J~E- z_~Wsu zq4qqZ&6bX%yBV)4*4DP;!Ek5Q9jZ4ODm>NnmkUGU2y2-XvhNgtip%#;!7b-IY z2c%$c8Y;&AbIrwrqB5Wg-dGiOyUW0;mlLm(D9xASH2Z-SX>=${6kFzJ&9*;wqga3s z4O&dVZ3$-)r{E7r&6)#loupw2J$P%;1t0ckHn1f0!N8uB zzOw3$VO2|-8N%xw$b~**G;6CL+Og+J zA41TxhO@SctVl1-MesM;BDF0Q1ah=0i_5h8xdNL&wPLt4#*BZ}2l1^zgtM=SJC=eF zMLPM$Kkclz?WEU<6`h1rV2Vya6(y%qRnS#>r&x0m1V@D)L94D0K-`6IYk^xPRozGD zDY->+gi>~Y73V&klu_$gR14KPkwT|HO{*WhdWk?w3v}#a%lHVt%iNzxD-lEUW+b5^ zp-NiTENGIo8!iyHrEq-dB?^7)ODR%QTDO;U8@#)Uc7Z|ng#VD1Mk^$ZGpfp4X4p4gB^8Mx z?jkJq($)%wpov;E?6(0F02M5as^BXu)&ZuPywFzF8TzJ!sUDEu{oDC_dah%+xejsI z0%e)AECHs-Ck$9daA@FX++=lIjc>?1~P z#yIAK&;u~|YGb@O(vnxeVFy{g>8t1>6|2NGUylm|ET_~@d5QAu{fk(%oOV0T2(w`y zorGm*Byo6b*1;1_y-Id}AD8QAIqe_4pFca!w%y+5{=S#>wf*^@?<=k9abenF>OM|SGw0a;w;na# zMkiBqH}tqS9(S#*-hIA*DqPRsUBg#l@ooKFF4OV%ykE!pKk%r?{VPwCAAYbS&Cks6 zJ43~GjszRQ{$5#GT)+dt=XvY5aWWxN6Y`vLe~CIlc)8!tl>;Z^>+$%;=G@Be_AyT4 zCK=ldFA3hDEBQ(}F#>N&ygd=@J zqlLrPZ$SQExpC@JM3#d6Co}&H`JddF{zq=~O`UA?U7S4sUo0UC+x7TgsR`BawLuw2 z?eEpx=8i^RYY(4IH=M=GAM?239WZB@+4Z`c2|v8gv`=~R>>VI|-96<)lE@lEj1>8h z6wY?pE^$Iyl%lP*u&825MM7FCld290VNps_BTZeZQY~E)kx=~*|1fj6%^y^Shvoh} z``+vMoBh|!40oS-;qZwyFBWt0$AXjp?5T0whi`webIsz_q%ET@s`$d`K_!JzKo3!u8s zy_1W>uL;UFof?gq53Fj98T8CNukrMj>hRlXG!XbBIX!C*M1|t|Kz}94=KVZR74HW6kwTB6+;}lNl$r{OYEaYuKCVSdH-}PHPh- z^D&;r83~$v{8pwqkDnHf(}qI{;N_(s8N;w6gNGHGJ$!&a=7?9BNvfoF_aomd(&izM z$g}rs9JJ*l9WX^YeKV%g7fz)NR`1*1mo;0*?#hx@(nO9x%cQ7F=-+du|Wg7Mq>Jwe}Xv+Ge}Y9M3%YDr&o)c~{{UY%PWrByGZ66R^hZx7M|40@m5) z%g@Ja@a^xE8}=jm-p-eK!?Q#p+AiX2)G;~r)*z8eaG@?mMvQDZw05)JQP`s8tLt1cFI zX-28c+(uQ7$?RWbQ080n`hO(XJ^d;Alh?cA`lIx`lxltWv_6!o#M>$5k(eZy2b)Aq zm;|+r?8+3mBeKh$NQJZrE5CMBm6w2ILnPo58G?e9iPA*hB%*=#j^XMbqq4w4iCBL=FsFe$XC>a`oX$P^DzFESM{|G?LFb4!bgft`*fNyo$qQ$9Rk4DzZ7!1%{ucQuw z=qg<8M24!)I*-X$kg#wfk_Fr)SB{uGP?`rp_7!%UeqN%?Ts1TLaiRdcjX=T$8)RXa zblGaZ5;++`FsP%nT0}KSS11@IC2{qUinjW!qG2Hsi9FdsMe4zbD0lw^J4uh(MS>|I z#M^I97aT?=7twA-uyBA)I--LbE`kNH4-!1F@I`ZoE>R*%_$6fGY?R9-;>DU3BbZB2 zKqWeKF0&*a9tMR-2tWsx0D~y!C3!P$3X(zrSP^*jDk_nU{R;9mANi{KVbRbThKn=| zIsoOHevSQ%*wPumKR_?ZwDT3Q0Fj2B8!7`hZC1UIaU`m0!9s`+xUEr725A(D2ePJO zh**-_Pyv}HU~!Zk3JSAMq6cP_0@BY?NRGq@0gL&?1kxFd1QpSOXGl0qOMo@gqkw}B zd$JCrwv1C{qCpdDriQRu5md*tLzJEDMgh~laTau70&Unq`XaeBfP_+J3OrpK0&&^e z`CdbTQ&gvlyeSb0!zuECOB9?k5vCyg7E`liDD@AQwZqf9N01;uKx&*MA1zsgmwcik zLo^`TJVswunI<&i!l59eBtSEL z2^kCOv#c~ypNLY5D%9LLdY#ZfMN|W@uO{<876z(Wq#c3(0znHyjx1SRFE=>AMdxTm z3X*}a0>$p%q=C||K>#n@LiC0TIlF*dgr}|y=|?)@N_?^&n{q2$ji? zJh)NdbakKA(4d64N>WQlTNvzaZCeN0qY3=JSp~)00_K&~ar&iYh`UeK@^BUM;*-5F zSC6jJr+a>&T9|x?z|yA-@s!mN2oH_@4m(8VSG+K4k3{5?zA!8PuME}R5PG;aOUfh* z+Gw=c%eK&$!g_Bn$R0N2TYXL(WFWc zy|j!*X?~Cb9caNC;Wlt)4uV{z{6u3CadtgBXCiR%;iVdu1<>uVLNpP=np`$m3OCBw zyoTtRW-39QZEadve|s?}o?8Woq$=_iw9>M>3SU4W$DZTSib@Cki?jg zK$fi7E9(8-;`Zov6Q|v>UEUgQw|?6rs-3$=w^LWUTeQnq%j?(emSF{K2v9JUOBYKg z*hm@FvI()pfQ(facB#Ao+bqbgWHF86V$9m&4%KDJc3zgbP-j)a2pT&Bc9R8pQx`T? zUXX1bEM_Lut|E-AypXq9u*+PiU0vv_ykPt9>-mr*tMgY%3m3NYw9Ew!R+n)Um3-JO zU~*R8vGy$;`fCI3!kxBNWYj5Gt5~ztqddN`mAc01UDlXMU1Es!jH+01CKk~mbM9T1 z5&*#Mk+UO%ZhRYY^XA+RSMf_{8|NbH9>EWPVL0O zmFoHG8}HFV0%0i*O+UCD9+H6fs3U3|aR)7>T<-vY6BO7OO!hXQS+an#4o-S5w6|m6S33t+4u`g_MmCsDd#5hIKfY}oWT{9PE?xXT;D!YC4i6amGgP!e?9xRirpqE{qRS-2~e#5~>)L2r75gXlVJvYx;U zh<`*>nrttgn;iw2PSPN-Y-8sS*9(;(7i{VJdt5-yy70Z{AnQLhab(O3xjHc#SbQp7 zPaw!68EJ&CvuiCFbod+|0>s)3#7v}hAmWB-myEckNbs$Y<^W2RbfD&eX&)L+g4wrr zU^EHTyqlARZJ6ji!Uc1roxr%2(BOc;2fi1~qCyA10Ka@~1oG7jU_-}(t_8zVtqdL$ zd=fq`oPGFsSpcz!A-BIjL24-=FW(T&!?ki|Y|(=6-dQf^s;>G7R^1q+dS|MazriVF zi%pK3ujc)vgm2%zTHdFF7asraZZfU<1*)*+crST**?+9BDoXVD3=iH68+;tM&+)&% z@pr=A=KnH#!`3F#>v{M36`<+5kUFf5KO@o~`5Rta--qgX(m8-$=kFGN?;yV&IIb64 z|6Tk(l~3pMaTa!`<8_ywjnDTM_ck*cjgR3E>)ww;u6FI4(sjSvJPRBz4L@h?ab79z z{WILx{+FH~{b$YbXQDhee*e1rp%;EKJ02{bA6@HX1zX=Je}lKde_lF2d}dhq?st2l zF2?^yayKv-_^R*mZ~Cpt-qmuDvQCN3+uFWusU04_LGL?|OXiy*NX8aM-lz z(JN~giddtNzY*}e%2S;5oQv%SKN{D;{ym?Y$m@MR&c^%SzgyYRf<%j$eXM0!!CJ3;CPsvUszBS?DD>&LMk$hTvRJ*eUiKz|Q+Jpk}Whc`xy z-$1{hzli+ceqs3I=?|gb#^1!>$lv&U=;@BT9pU`(e*yR-^M~Y*&F_)lw%-_i;QUej zVe<#$kCxvIzeK+X`hxU_`^V~!_Yd|D-S1hy=*arUlooCB-`me#?w`NWgW=~XGtmBT z=;d2fR?aOC06_H5kp7$LlQwm-Gqw3oF3;}tC0BR3h90K7q3Bc=qwd$qnbxEyOt5)r5 zb=azQKYLSB!{&GY_t*EwZ+foJ^XaUY{jS%OnOn2_^?Fx~EZc{fvb4Fkxx7V#ta??C z%($tQQnYTd?y=%_?h(lxacasb^(5WQwDOT!3I|W!GIG10V_Z@1^3^>J{WJw-h0ejN zDN6c@Dk=wrd0>yT(_Ov~b6MtM!jb!Q7U{GW8Fdy388xyNIZq+Rg3&IBhe}GAv+3ARHE)Tgy?jSisbC8C*wL(0*ElyS zr>F=aYNfNMplCz$NRpDCo>rYxoIA%f!wSI!hs`gXC5#QBC|9O$q*xCMja z1!cX%$Db}Kr>XHb)IT0Lp@5{NC%37E?ac$6TloQ8jJT(`$d!FGF`%BT*XjAnCvG3; zoYGJ{p{~|2;wonuOy%7(7YXQRl#f!pURv3LEJ&$38Or~f+D=l?DV&^ku@XJx5~;^` zX&9)ZQF3l;X!w;LhmAT^3EcCVCoUYTAX%z6E+!Qh(?~u2I89AOjh{K~+M9RSm+ZtX zGne&!D&(uBq?&t>B3>Ss4g-tmnx>qlc(oEq1Rev_b6pgQm88U~bVxOe^iqfgqXe|_ zm6Q~(^>1gY9XNoea*1ou#FD4PXWend_0KY8_BdO*qq;guRq;!a>8q7Th9Hv@VAVf#Ok|DuOEo$1Y<5QHj&#g9-)tZ=;+h%EOQ693;(MwmDrds^^+pph z4%OnODCr;2u|0zeb0_LX8|lV@`_i-l_l_zlsF8pb05%}txb%wU9?Sl0SHn+x~249+zSGNE9ia7qT&^Kr+MuB z9Sy#wr*iS;G5Qtjc;pG60oQIHV=6zTg6Bj*=XM@({4-J>rEq`VJz99V)G5vAp#zNG zpdC5~ZKR@A9ncA}lpZ6HGqLys{JET^5Kx|?rJQ*JI|Nu`uPgxuQW$LgJBA^a-{9aG z>*nG^q{ zzx_eTh9H43Ej8Wnkk||_p`o00zLXlwj|x=H{}D-(o~FDrQucp9qu6T-5Q+nu(t@Bg z9YA_h>MTd@DCsp%=i^msYC?#c+W=m*%Rm)fe?_XfM+iDWqZpcU*0C!u+R>B=_U}v< z_?i-Y<|*CQOo8{8dbFtBRz0Aal3H8K=mZv|h0Ex9*jO95I(qq_+c12bmX2=Lxn0_D zD`T6rIw-!a~(vKw1ZC&1@7({Q=aWo^t)}!Q6#l`M2G1$=}@CVOAq=xSkW~-&~7PE9co*o~ zTM!XwuHA02cpwV6!T>C?Zg=*Fl7=3a^e@UHWDZrnhnfN`LfFcypvc8nfJ7v)rv=$r zIJBwMmwIIWxAe4=!PFYk-=N5P3UngYM^u9~B3K{`zYOX@Adjn{4=yy??WG8$A+!q+gDZ<#`lN9Y9KGQEwd3mzVp5H;^$(b| z2p{ew$o0j51K<_I(m_x+bvOM&+h5cu(n96T__Fmtq`P0hD_|OkHuVYhx~s` z^sjz(%#W^~Seqg71?$x+I^PbOOd>{^G~1n-GG)k-e`^yaPs|Veauy+(JRO{IjTv4P zN2otmnp@Ltk_mFB3Of11Pf}prO9XbOkqqEEI7-a3GmZni8 zy@DByvW{LhEXU@=oSmLqOmy2wM{QWoyR%T%-qku)@9K}`nUY;L!%%uxpP@YJ3=+WW z85yd9z6-d|9kLCQ!0{Ow!hybFKpf;6CW7m;GpxBrvXo++M59)V6kJ#_YvTi>ghEPy zM+{o3Tu}-Fps_wbmYCr~T|67OCI$#{6L<&b4Twe*6BNJ>3~+;kLM4yCT?DWSybS5W zfSe*4pc0lvPq>EI0ImRa)HzbjCd?Fg4{-#93Os!eu~_JdXEhHA!+`XF0WS)^Ng92H z0YL>taVsoH3JzF?b--BB67URMWnrv_tg|lgla!c~+d3hv?Ut}aGZ@9NsfL7%TWCczqF=Yth-yr| zY0XU(sB3MKDom^RT!D9D1B8HFst@Wz7vujj+bCm5e?N=m;{CiXT||FB8|ZxuUNi;z zU6Li6Kmo2cGC;*tfQy7GmIw4#y>f{*<_no6P=Xb|UJy|!)L|EJi~QsnBa|~{(1?|a z;u95k0d`rdZaIuX*=7{w3F20@pQA=@L4buCR?HP$SuJU=($-umR0CCksN^R=v;$D_ zq)cLaDJ$D70UIiHK}!}HPQ56t8K(8SOc<#fZ?z(fPV0zz!t^^ zU;#3~1lR(9Cs@2s&=iaT!~!Ts{ERb*L=7*9R2~!4I#IB~G87QhqiGqd1CWAD2gt<) z3{APb}-?k8@E7u z#m*2A5W8Rm^(yV^U6ThET*h*UUNXb30a-yVcm!wx zXvv4Tp(#)YkO8nz%57`z1JWgv?IM)GKn0#JkxJG_he04iSs1{k5fqE&RdsA#Rg z0;1HdSe9qBWFkPcX1)mc*{Zve+tP!%vRZmmAE$2Z0bG}~3W>UdX;!yXE;Pcr<3QoM z8z;a9li-FQ#Su%4S8fnVjw5y)+a+$Xgm&QuceSr?2{uhU_%W&Qs~{G(QU}rK0?;Z| zHp9n;h`UNZwkL}&f?AVMY!%(Yy!1@ifSIuc->*WyT@DuD0Yxognpp9VgdGuBw7D>9 z)i@Idk!znUFhG?SgI&Nh8Fwt%M1r*?(H27WyWGG7$VD%{UIXEfSREFUqezq&3N8xj zf~;@}gkv#L;7a|%08v@Hq6k1z1das`ZZDi$VU0*?Biq}{qAX7r*;PWwfpeeRDwb39 zd`tmAc2i=cPy!7@HpB-Q7%8}iDr~C@*b=N2iIHr)A}eTDGz3Auuv>y3Pyj9fI&S$H z$bL_dn1V1f1!IzmTYO@!vc=NvB9*jf3}z^yrkRum%m9+DY+OmRRS#8-^pyZ}0fVBz zu6PTy2OqTrqv9Sgky4s`kc7@*6ynyXZx6fzIxvhWz(8r z)B=HVGNwovke#K&9S*=uMUziWw^u9^nv57fQAaGG1saZ8Kno9$A-B?jp$ZW~%&-dL z7@>1$#JFWF6@^?L!eD`g5|q|^air)q0_eacY6vG=S$Bk$MT{XZX@sA7-W(BT#oq*J zhyXQ4fDBn6LN<*8Nr5za2X2reHBJj$E77=#D_$eQP>m`?Zs1mK;6k=CT|e9hjN%~{ z(t|$O;vMp<)W1Y^Dmx2B0Cp{j^x^bbV*N(Hy6pZtMV;A;~C9PBQ8;BDB+! z)w)>i8|Kbtha0LLQ0*`zIb>6k9J&QiJw-hhrhfASSe}fkd;U63rqK%>s#nSCQ;w zD0B@RQZ^Q(81*$cR%ctS*GQb13C;eE;YtS0A`CwShPxAnyAy`r6i^RfxG{{%TLQAf zaBU-_HCsSw0M7wI=EP~|LR_8ejjIN8gm$h`og1s23j!o(z&)dLhQl4LoeLb-FH1=l zIZJWC5GceEP&+V(zA>;Ooo^Iym_$J|PR`X$GDsz(h)^?6Ks|w>JaCfv(2L271*7Nd z#fpNZBW*=`X)kK0S4#^7gjWXnAlyQY4!i~&JzaDxZ0CL^?IO^}+Y}3WTqMa+38K~ZCThs*#KZ|xPP+BaYUVvT*=u0#@6Zo0MiU7$7#Ct;?)dINIkyVNn)qzY?i7ge? z#d5+}4I`Wyt*Bo0vjUGZ;e0qrM)Bk%2q*)3DS{4{>aJm3VS4rP>PYWxrMDth(hgcJ z6Hq3!DhA%FB%)+eQ6Omu(SsN(fa-FJYGKd{jmcs$D=o$l5?2Ve7zjcj5QO0H*ark_ zNkYsj2r(;hh)EYi%xVU$#863yNyj0kFEP7Scy^*8rY{aLt1ap>5>=Fn83r9jGoe;E z%T$8F_Cp55!HBF8P=Daf1H7%(lv%_y!=jJ27&9?yGb2m{kT+TMc>)@MlSPXn)RIRk zaE>()KqU}*^pUW{~T~bXF0MMOD zyV)3T)NUp@<2p#i-eJ%>BJ_F&y(6F@0Ww&U07IELNLuun0vZb9MBp_^CX81oO%4!Q zXEA8KMUiRJZow(%7D96a(A>zN4Upym(M=56DBuJyG6XWDO_*>OpxR}I$s(XEi1EDc znrK*|*sK(I(W6L-_IA>c*p3DI*({*!Zm{6n;vJK5R`qx*jA9NMlXpR68}#rVXa?Wk z7f>!}djc56R}3PkAU(3eKMf$jn(cUyApBQJ?0K@8IsJhj3l$p5ux3aq1Huf_axWK zE(7&h9560<#HORg1%VUi*kCdy?FpP_pCDtg55{6YgZAOX85>bPSVdH#_5%j(hi3+T z08_0=donaWRC|&%_z)T#VbF&r?GXj$G}=h46t^u%w#o`%DV}po>8|R8L1{l2B`x6r;k})c}!viZv7>s#u;1D`>M7H8MlU zHK&A_%_It?T8&n-1uv35VbBqrtyr+-euCpwCZ3j2V>&Ag6T`I?H4&e2yfP9G&aBd& z20@NSgHAgptEWNYeKc9!vW@mAI5}Q>f*P^^3uqV&NNe3BuLn@8Z;GuxQTr)_j)E8I zX{f+?;&9QeKL@>iPV@$>eM$!9ICOX{x;jhxj6ugRv__T$$}1wuJ5I7BF_IKv^?e2j zB6)y;*$h)RaAbuF^Yc zIrhuXK?Zz3EuhkF(F{5xAiSY99US4TIDO(Np}AKRMmh(a6VM1in*nI&y`DFshUZ-X z&-;R6fh%2*c;1Mbo>%Ghyo&-V2lSbM{$;H8BK5qB;CUCNo_CRW-o<2HdKt}39C+Tw zbEFYW*$wLF4fxo%4EhFUSZrpO81yX^ zTYyq7=}>bWom-oWbE_4#6em{#Yy~L;j0=a&FwBVmhLgV$0e?HiXm3Y@48BqdW1@+Q%T!eC=KJ0_`IP-L2Bz1A%__3Ur@AKV#6V z0!<{%?_q%`X)M-6?6dbF*i>mB0F_@bm4%|?KV;A^7%CyOu$s^V3&snfvQk11aqP6B z)?%hH5t)z~M(q(!Ktdp+F$w53rH-$IV-XZd2;#Mh4saP@_QuHt*{;M}kfC%2m-w)W zn4Sqt;xVRZMQy~eJqZX!M{0j3yGFm`T_Y^narSjA=5IO_q{B-R1#oTFQ;`D3 zL*n3nM*YL2eF`l7$)KkZe1JmEpg%R1bg=Yfi1x(3jiBx+L^_4CS_@OL7EF8)%)xvR zi4V`zop^r+JtJZLFOc`SBr|=%pywF+YGyi(i2Ro%Go6M-eu3j&v|gNSrh#+C#A*MA z$>VRVPn|wO`*)}sJP|zO@4`^+OHuD{V78Kq?jliQyUIYP^!+7$Wx!>|*3uUd8+A zSHK0*uSiy}1R8$H>S*|DRyTc>jKW7oQB8*7AkfbE7f)>`@l+O__IYY!bc-anp(24e zUu%fSwD}vj-K0>No;Jd{y4c?#^7kCW`3bTjBgsxVe{9*HJhB2X2&hstT^%S;2Tp7EyN9&_PJW%)%adpK(mI!9TrQK_&G>GZ$kFK1qL|RurSrm027LSb_@ZZJc%&=)5b!MX(}F zfbJTT*A$C!rOrT7K>V75Ya*Z}(D%D0hHGl#4OnJF9N!9fXhnE10}sg&d@Hls7RxtF z?wp+Ah~S%LsNaj=n>*wT*Q|;+8dt!DqXzJ1%uu&vxaMS^nKRB3Y3&SN=BXu-G_Knkj0c`=vIx}2Hjm|=0 z#OvOL>8>+$2qkbh3n;#mfZhX%lAvf2(EIqc6A3Au1+*35`(YrG#I&AllXA%d!Y|N2 z0C<;L78q~5Ujs04kGhKQs#w9NRKM%xtqhlfp|8GH+fFRLtN5aKJ2rPKd86rjo3}%Z zUA=Ma>P=#o4PsX+!`bk-gu>(_pq*sx&Ua(DRDdvCw^+VAB-MIFK{j6AlfeT68v<(T z9>@0p15A_pN}68H#`0;zSK!HP&4wr9F>!oa1|Vk`k}_oOqzv5@sCKLCL$#x`W5HUe zUI5h#3`q-QJChdZK7s0;>Uz<9+FH!q6ousz;BFV@4l@x#ciM5nv0DUUNI}`FO!fc@ zig+cTj?;YJ4l?&-I6K}oA~R}Q1fQ-{M>AYcygZJU?y9!;ZVGYfReUeSa=2g&>Z|Lm z5KAld5qvMb`a|!VJaEuhQ1Tu!FYO^?(aT#WpuOavz`lRU9^RBpcyDqXo#n_Jw~x@; zM`-ni@xv2IhJf~iwHyFz$<&x|K*WikF|=TkbmMV`4r2ZXN`rO|R!oTKavy@rC4ryy z5zql3aS%xK)mThHboKBETAL6-XUObh>0JJJ$f+l=%HZc z*$g){j?dC}fD6BnATN1Me3lumWR1+^-Bb9ayN(3>EOBDRQO%0tVLXp^*TL%CyGIbO z_i^M~^uMy)=dvYaKc!@I1au5|JPbVM{^!>b`kF=({I9PgIER3a1Fa(vQ}bX3^f&PN z4CkakFzNjEyi;GxV8Fhh{sct$41z*3-gV~-A$%5Khy7FxpDu1pDTIFulofXQnDZwTlTpnL^Qr$f75 zq}>bwT?XLS0IURHZvvbtpzi?q4FG2WFoOW!6wvno{1$+30WgyQXA9^G051V>4gmWQ z;9LP+1t6Zv=LzT`2zX@DlUUTFEH`*6>vecoNwgdf)sDQ>ZOrHpElzeNFr#Y)XrWDJ=w3dYj=E;t<;02y4D1FpwK%I-QB^C5Kp*-oryT5MH-4 z+}n6(gInZ100030{{R3W|KE&3c0I*8;ySUj#R9qstbGTzvLsE0`Z1g!pdSJ9JxH-s zK)0|I{fQLI1auoJt^n049ja#{o1qFTN+fH*$KEAiNAb{?j&8+@8+Fp7gWPff{RD)r z!kDdq#AyJ-trXB5fLsH}Du4`RxYYu>3y>cGvL=FGi%*@I4CG{4OG0BU_F24p`ZJ`) zk0o})4z%;c!mfrx$N^(Xl zzY!8Ryhz&UNY)u9r6e1T7PsD#q40-B47VYg->ASywG5Wd`ec|>e<3IH(zhkUoUG83 zlX)Y=gL&z&lrQ6UiSu%@MSUH=ue2ls&%c0^4#Met2wwGKFD4`M02X&f@s>zNRBu&^ z$Ix)3+z7Fj3TTGMO#;HFB5#5qu(W#*xHrPeZxgKiHW>|?bW4!Z`%2uB5n@Ruuky@Y zO#GG%oh2KO2A&){Su+y(cNuPrZf-WA{i8Jl4{0Z(hye?ISbM#THHoL|N5C0OAdmi; zj5MpxMGV}B)u{-U8n?spPV%jw$QE3v0w_M7;HOKE4kD>n7l>$GW>_GiJtn*S*`mqb z2CGrx%{!un_oDet*cjgz&=U~$KAwl&xp_9w}V4&;diR<^1B#r zr^Zl5vMD{@Pjf&N{~biws#_&?EWS6S(|?k0Z)Dd$TK(}KTP6Ei?H15eVDe{>d=C{D zWCbn%39|0{pJm-Epl6s2$ht3r->*<_iRJf-?-=;~An|_5I|hD#hWc(azdu=rnw6zE z2>CAF&G(e*W5cNHKTZ@ZXd;ZIa9Ej#Wg7gUQrwHgT@R1>K`~ZOsD#o z{zTvuK>t2WR!3E6DCYQ6fm31-%vQ$)&JX6|EHYUg7dU@_j|TW>0vCYa@Dun6fkOcQ z1>h&+_!F=UJyCrC5$~Qw@F(>1@tJ!o>Smw4N^H&fH@0_0;R+7!K!H=2zM6n@D9v5fztr7M?ma+ z1pfuuh4=!W9`3AHm<3KtOpVk2i>XQCF$%WD`pya3y5X4yw>(7tf&qQeonq`wPbS5L6!zQkp5bK@(so&Q?0$uhU*77tgOZk>E3qDeMcR=t9$ zqnKYu^WWed6M+kY`5)FH-_&Tft$P253#R)&-wGT)>HjN?TD4@`J$Do#1Cm*9V!gLzw}uZkh?@ zFx+*4s|QF=0qI7KjXJx}PU?$xatp+|ReeAvmcK=u%EaF?#vA!tWN+doB!)jS+)W({ zO7CjOzzKpfB}1N(Vzp#sbTv7MyJkSN%pg1W*j+OqT)=XH@WhfSlD^|_=C$WEpHu&+ zyOs_U_kSY?wES?aV7ObrJzjI%7Ptl=<)0wsPsCP2@NS-7S#Stj0N#sH%rM9Vt|6qk zxp2dK=*<-3{^lKl!zcQm!8qTgnI6|DKz9uOLerC9z$!-8(--hX#Os6_}355VI=+# zxMuhbxTgFF4HH=vpD`aDEYZp$g7N17^wPlCK>cA5P4gL>pTLF7gTrMe#^xVq z_tSTP%eTQ3VfQnuTgTe{#1|BHKYSTu?0&Fv0BR9wI#j^e0t7A+NGN~=in9j*i2x~y z074>wk_f<;Q6tMH6nL1Y3gL!y$OW9L1TG3F`2!_&oLvQ!R8mSRLP<) zZ7FfBz?p$~AP}z=XV(I8t(3Ty5Z6-TT6}@dv{+{_3bh3;8X9Y$u`bSD8yeS^Hm*$? z*QSkYy|=k88AxPA*!6@&9dS~$*MUn9lGJg~jFyW9hDzWD3>5%Fb#Oga zV+Q%L2Nws`rI5JMA5JNyp{bvDpU+lT;5q;w!N5noID1{-qwcGG)Fph>r+n0R$JpyT zaGK~KImS8fNa+MF9!9FH`mGt4@XAOgh$ERuRajqR0&elr8*g`C^CB7qt|K6hsQ%Fx zS#2xD0}34eb;5A(yr}fLWPh)7+gO3KfJAzbs6m{a1&P>KC1Qz04XH#8;bK9v4IMbByh>lVF+~CIL_V(I&Ac6hmA;wO=yQrK!r^l^hK`` zXm`OQiO-{fX+SJ#qA}2JN#IWL^=$O^jE`6=Fg8S!rUKU$x~~HbL338%zMQc&6F3_N z0#D5aE)~)nH)AsjTsHvL1kgP6#@0gMdSD=6wiGx!U{)};Rsxp>zdL)tU|=S~9&z=X!c+Ijrq z$rxehA>IxG32;hb<1OO5Q(Kh4Wdf;&AQLEyzOb{$nZxZSqsmSG=7ibfj4B6XGu6_W zV(ihP`uc!^#`5+K%6O%{L%nR3!`?=fV{fZ++s%xv4bE1><$An-7tX-=;#1b+@cTWk zFEXIpAV%UMKP0+j@D(Hs;B$Gc&gy-@sRP^<4LzM&}}>DwmoBusXmoB z#A~BNeO}kDx;E>dwe7u@6$|3y6<@Yq3>tCd=L{$ZSnN+$3jJ|LVe24p1G*_0TfD#x z>}F(a2?93=rkbO`cOuzaw|8P}9VrmB+ew2nH~gBZ;Gr+&^E25yL!Cw724gfBOd{6KZ3xP!?JAzUR}02Lla$iUUR5IVl!IN7@b zHS!8{CHak$-OAWfFjVpzrpf$(e_lB zm~E*Ry)U=V0z+-i*t!W^Hdt2^P)c`EDR#!zL*Q~S5Xjg~_A~`q8Ll)+TIY_?L62!w z_8y9Ats&j3YU?R*4j|MNsHY2D9vI{V#@0*VoB%Wcu(!bFLykO=WCs}nR{-#4&@Pkg zjeEm#u9#QY`UqShAT$SrzBLdW6rrEMxd6ck2>ojyAhJ1pTQe9yClx50NOenSiQe1R*4e%gY4 z75LtnS28xpL&^YdwlFqVoPD^W16(-6Oop|81^|))kZejymN}A=4ekj0a0jd$?Ze%j z-BT7s*oRF~?}5JytjHN_9|mD|?M}Gw?7Z`n3(@vr7j)_8x*C$L>burYQj+zsO6+8` ztX25KN{+D&11bwTFIc-X+CCg#xU(sN_TjL|obpMeefTG8TaBmRbm`j&u`SlMgxC~H zXn3@}M32uBD3mewBGIgi8CwxCqY>n|l&x4YIgY?Dkhu~6<@8jtWW%7bZGiXm6l!T3 zS>yN=S55*#IdPT}jivfWEEYwyz`2z={*uY=#^dV7t5bWaI@%5sMQMz^jQjx5K7z58 zk;MUi!!2+gk>e3i`j>r-t`fFFY`MNIv$nP>3q)mow3kc;k+R}nNJL0TMA*)Fe^QUT zQ;;Kd-W|6$@K)QTXc;{^hR>UGBZ;&liL~XqbXiJts2*>W>#ZU9ZLiG@BEurf<`KA2 zU{=v!ZWT3F^!dIO{b;hHw~q#s8!cJU+eeEldi!V`-$xUjjRc*+oHr6QLzdon)lF6m z8TiGugDhG)cQrWhQlG5E@z&h`veqB-e_!j{M&X6L(&$^u+eQQ5SiUg=Hx}fJ0r|$d z?PKr>9m#?o1=U>9j}uq)<0LD3+c<$64;0!#C>c+W$aCZIQc*6Rkhf2S?j}$q=w@Q| z33(AuK~79_6O;zN5k1MFB%4DhSga#mPk@vlf#`dp^auUJB|qr5y(Vz4K`-rrl}TP! zUXz~Ix4#a&OcuCF7z=oLJGid6qd zj@WUN@h_q=*FkumEihZcV?mbJ11xCLD?j_S)PC5gt$HiRom2*)~JqrUP;UsJAl4J`;mx>axl5yijbANE^%&xEX-i z5w!oN#1dwJcIk^Gh=2HqDrwaTx57z#B}9|SvG%t}0vKn13r6iNy#Yoogcu8$s$QJb z1#TuXq1S=yx1f~`OnkP$&4M12pvO7n^(J|3u&u_61S@j=x0eXEx%e|M;mI(Y&lA7& zqC-;{+k6oUf-jJM0>-uw7=el|(CgcA_T>;9mMaXJY!mrn1365o>q0g`$qPJ1rog=k zB2JC8SK(h@DE6EL*K8GRp#rR0o0IrSwHS>`(`Um#0=*i05M9|+tcXgL5{erPe8 zMYZ~y_)NxjK;RZb)j+8F2q1kK+d%~iX)~+- zwEDzH5MVG)xs2_ofYw3nP^kS>QoBy9JtiQ`Ocu~T9%ugyM)9-i!`Tt`&x~ptOgbrg zJRvUuRnB5;pPB3@B%gla1Yqh-#&!ZYIVqqnKrI`1JQZg@4b)C647CgvF=y3fgxNpO zFzPJXM%Nl*tq;3ram5 z4CLFAZUaX?O&k@4KT{lLaE`{`fi&cndI}A0S02=RN)5SA1O42gI}%DGbBbJf2J*31 zgYWC12KSf}PtNE_!Hkj-060^@CVsSN=iML zTIq17p|zp3!h`!Wh#y`9IC=7ZRjoDsfE;P#c6ucJT6~m-Va_ELnCa42NPsL3{Czem zs58%CGL)7Z+8A=^ca{zL@MwuN5EXf4g-SQ6z~5KQ@j#)utE4&T!b9n}4LJt-1w!8A zDs~$12hcF#8bG3PLurY@QwR^PfpT66>BIDIy4kiJ8&~F!JSuzV< zZo{b3iXy>DHD z@dwow5GA;l)Uzm<*o62A~fI0S(_rNyr{sOExtgikC? z>Yw&Pj7c;a&~~Jh5VZ*du?gH47KnVCj*^k37MFpa`md77WN*Rc2bVuwa#{|Ql(mv_ zkfa<87b7Wq;d)6qM1m6{f!CqshHy2K;54S?rf?Y~@Mg5!94?~-&Piy7(=rcNlmu>) zl-tsB3|#GKITo%s2~Gz|IbKq>Ncv5pW!zUXg>`vFmaeqi4X*BRDJVQmLNiSQ&!FW# zaP_5a`@=PW!ZDqJ68eK^8SBtRX_mlMDk+bkZOh?uOZ4N#$8;)W;=hq_jgs&)n$jNw z*H}qkuhX_~P<%P1KTAS$HZ5bG=Te$)!?j2v%VLVN1TI0+?^213%P3A2T+1cpRTKy7 zYJ&uSqeO38DE|9!ZI$5cpndIuYd0<9y1f)1!}m$}{78axl;V5_*9l4aq(t^plD3zeL^? zNx7>8ry12-54h}mlS5o) zjFb+<9;P`hLmX$QKIECzx|jE^9uqm}f@wl=?6i#Gc+Q~lM&5~*F+8!_F680W_9Ex1 z?MU9T+P>tW)pjRuUTu$Z;DrgHaF}-)JuQPhF~PJ9w3*tp47f}!T84T?L(5?IOdu^o zJ%eZ&>KT7p247+nw2Z_dCS_bt{Z)=_kNUA3+b#8PT$KGK+9vZiEn}PdQ|5~Y42~Di zDEv2C#_+pv|C7Rhg8Nfi#&PO*TK)mNU+ib5!~ILj!!((1eqg4^eDek~S>~HhnAc>!d4`!F^UXiZIGJx=VsI`% z=PL%!{d68#t!2LXpTxvi!vQjwCr@Z+r&P@|2 z9FLVZN5e1MHJ-m|d?R-ah2uNT1;{;smc4gON8Yuf z1jqNAB7G)X9A7!k1@S+*|I#WLMbBR@{tF%&*j>{tFNrRl{VLgAlKzP#|kVte^v zu^*TrMfe~}|6`dr7klZ`HH7>_8C~a5_&^H($SV(p_or~|mq2|`t`yyD1GcBS_%DL6#gC^8!w#NtsJibYD?hVDSRCrS1-I9 zg|DIG?(Nq`PONk6?GQhG z-IQs+oLL>Y`|9GCTj%Zh>+H|VhwnIdFskX`#kJo*l{BvB-<{^xt`+*(?AO0fOz5%f z@8w%?K_zx|Y1r|0ti39n69__Xgm)75nwm_Wy{tHEVi4KI8Xda$_VWV)jgjrwT;A%B~EpqA5!!3^`bQ^zu z8>2PO2~zzX+_%N0rHf|2{=?HYjW4AC5F)J5r|Kqbw5QHpeY4et)puvsRvbTbCHY9+ zH*a{lB;Oqrog9@W@7ecxli!X%>XJEhd2mGDlXc%OnQxq#ZR_55O2YB=H#28`l6ijr zZS%63SJrT2pY^b}%ILRRVG)I4(6Z&zv_P}xHd6V;?-kf@If4j*I$`X4etqo7g@8YyRwtT4^`Y1H7 z)%Da?zlXkl?vuTt9jhAunKExd&fYKY9z47I5R)~fe8!nCxAa~Ypx8b2$Hzri7op&@ z&F0;^+G1vppADzmoh;dszFae%U>J$K*uEA=|E^&Vh-$3+JkS?GPPz;n0HQ zjZ1Y+H;&jp|MB9!W3Jl!^f|Kp%bmABPfLh?yqhH-zbWi^HixacP#JB#s_tHvz z>P_c>^r&?o4D4rn+dMMi$?W;DL!WOS|`0weRwy}%i7eqBUv@B}tj1A|$h!@hY+T(Zi9Mb>!sKnbBRRMpve#)5h z@$IK;0?&M(yJ}<48@)S4g=Azde=?`;k=ti2nyyD@al=xNyMM6m-Z%EZ<$RSc`d7=+ zu!Ap(*GyS*F+6YX!W*8#7iD|4wNH3{_FluT3ua!4T|6rPyLC&}rx&ePoyr(Fw##2_ zQj(8sxZEVqnAO%^5?PqH^!-LVTVHwo@So$NW~cQmoAGzirQlAZ@}HD$_+rnoWxe}y ztK_}5$$OrW&rGW)|1Qj+{HXA!!%Hk_y9N$Dy6wW%{CX=}pL@1^KsWir>4A^H0!o&>o#cj&4lCfj|v){-}zbn&I`f zV_rU#t$eMurO@iSaqB-->9w{qspb-JX3V^2TP{ zXw&J)J#};k|H_F?TYquRgEyLert0=^obCgQ!CGw0fBtZ|W>cGyvp1E_MMryk`l+Lj z3%|^H`D;P@<(AT$qccBKhMc^2BubY!BdR|)Ja_!AlBJ_M{dwf#H;q=W=z2Q6N6O6I zt9Nf%JbBq4&1d%Z9}@OpSns^#sdt5`2X!k;Vk+yN+k0xQ@a$se%BLxoHK;0WN_|`C zLe+Wa+*!kaFR7oF_f0ek+ng}&>qGsv=FV-@OR<(+*+U7`)mLJj}`0RR61 zA`jj0n4NPQ<`$YGMmv(4>!bg8&mDP#4_4|@mKj^UdA;6A*Sg28ci;Qw?2S-uk9pSl zcZY22@oh+az}N0s4Y~}N(nBl%qsb(++B!CP{-Gfs6y7Qv&{p^Tn3#+625vk)`B~n; z&OOfM{rE$yY)xrafa~1Bn;qj5AOG^*rQ6$YH2Zb@oQHa%?i z*XJK?k}X>B<&-JQnx7kR{Kvh&FX??FA}ap*^A6>2w_2F;cz=sk<0Xr4eDmk9YvEI-#T{(9F8xgAn6Kg@ zcQ^QaNay~0Tl6p=DO9HJUZ{NX`|yc(7N37NWY6H+Eq08EdUMO$+n%L5-ue48Cg}X9 z4Y$7hudV?8b|xMwAu#o&I1^qAiC-nLB%fK6!kxk_>x-(@FMa*!mI2JtaT(nfl4;%7WVWPpjt( z8K1XU_p^>~bxdZgdujLVPagHJ@8|dK2#GKv#V)?Vc zgk@_R&D{0Qp8bY3OV;+BkW*D}#rhV{z?bQI&JwOZu^+)8y{}i8OpRhxxKK&+Oz0ZBiGdn_caF# z`)!tg|S>n^(dP zhK*{%^tv+qLD!|XH?fBNJ7HtaJ*+zR&XJj&UY;9n9yK`q*8cZT7k|6uy%rFkA(Ocliz6dPHu#K$F%5f2ik60 z^~u(POEEiJSnXwdr>rb?P7WPf$JFS|z|q(8gZ4fd7um1Lxs2n@uPm6`-x}@d9zC}8 zDNWzf#N;_EBby~Y9M|C5$RXVupB}KQZ1siGm18DOd+~Ph#51w2CQmx_LF|O{8~<48 z9@(#Q#_ZXPogKS%9KGRQ>ZlFhwZ3?7>JM?tZr|uKrRY*+io47&RM-G5hbe~sF6@!n7M4*O-?KYjb@ zie+!N?smFC%V$s97Oc4cqrK>pH`Gmar^cqa!k34A@z(E}^|pt5ZuTn-<8!B6jk(@> zL&5wV_j8qLM{`~q^Tp;5Bl9=!8J*oYIep{6de0wx@O1U>U52(ecs96cU!lv>st-n- zZ}e#WXQQ%q%o$R?wqa(E7xz{j+8nM*-P!5FzSe!JIxSW_Nz!j^xbnpF(x`&ULk;_7 zw|rj5J)mXgthGJ%&wbfp-2VLhO{=HfemShc@v5USWxDr=eY@t-%a!TQ)-S%X-8ar3 zw&=;&YlD7Tmt}uzUYo=5swTI}&K!yl*zjHR71rX3U$6gZ(Wtu}-ann!@SO+ahVIISr-MIflQO@BTO-IyIEPqYd z>!`bp>loOja%G1%YIRy>uRBe4U|Gv|z7DyRGC?+H>*CUP`d&XQd=#@F{k(I^7lW$e zOBep)dhq?ETZ6U?Db7^w_$}(Lp~e&L5pOX6xO)1AlSU{`Q60{_&mz2U^qk1jVKeZTglkKZ+a_@1@0_RdvDBDgB`ut&4Le)j0=r^R9S z9=|bg>8I`6=eLdC_|B-^>+P}Wv(9(_@UxFra4o+I+PAB399OveS;4cd>R*4o1J`H9P955Iv+3cYFWzs~yyaiNc0Or35Pjy4%%?3f zD<+Kpy8h0m*YCH;>{b44e$sA)KK#;x;_CI>`mW-_sa|u2|Jm=(`KNy!uhiY!P;uz} zM0uws%P(uk6utgo;^mVU|2W>HVel`ny?6HLi=%b@WBM-~ffhDtXWkw&abVr!&o;s_`4i(F z#-)6FGGOoMPWqW!M+_Vq?*HO)!qG#rxLM&>P9|;W@y901Pgjmi>aX9}cXz$zV=wf0 zIKI`AEsMIHjZEwLvT64oyt(tQW%UW0UhLAs|P-A9n_5lHtD zqw$bUiO!!%Nrg(zUvDea<9MI+bvv`%v;Xplqgka6!2R z#lbo_O51h@P(zB}8p`!4P9)ra70V3XgMBRGFnAyJ7YfJk{qBi$m?N}|aq#}j&lJ9o zmN6W^=lY4lchEA1uDLo@t(zD+7|EG9inACh9A>19-o7>jK|>s zEo0qpqda4|-lcH-4q_9fkN45up*VPNZ4TW-!u@+heq?Lm$`jkl=EIdEwk5dK#$vPve*QUz&$^=%un^hlT)gQC!gRJ@!R(;g8;B5 zE3cgxaw7XgUS)aZB33ntRZV79ud}K*SXCvfdW%)fW>s@p)l5~KsspRZV>QEB&4W$p zs#H}s)d1B%HrS61_Gg0w*kBDCtYw31tK2FNtCq29hE>Z|Z>XlT!SE2rs;#WLkX5@? z%T+5_O$4jyz-l+Jx?QYpH(Tomw)RQ3_9?dZ=WOlMtoA;u{e{&&V6~4}?PFH^C#!wN z){?Q>-&pNSR(qM%-eEQSSJY0ESk*FCwVYM0VO8(2sx7Q)E34YZsv>n)uBzbHq~Z>^=xnm8(b%h36rzBDXeZPtDDB^=CGP4 ztQPoGZkoSo!KTG*-~={sB8$eeXu_R$@4RK&PHt4H7ql1Xjoy`xUlhI)57M2eI9n2 zRk2}9!`6kpAGR;-NZ5B_-?M>>*g$~|TpIREsytP}s=B4tOO0f;Em>_itA&Dz)tXst zG^-6@wY6BSjzw>=XfBHuuxJH~mau3Ii`KDdBa1#|(M}faV9{O{O=i(l7ENbSWorA> zqQuN2V@FtxTQC28FOeb=V*e8&tstEoFn2u|WYRv|j*`QQ5s2dy9oek>22Bot>y;$7~R`)j>#IQjh zut6WPK_91XOWmG&JoU5GA5(9ozDWJsRnJx573FHpYGYY#92<0r4Z6+--C~1&WP_ft zK{wc-yC=?`cy{9XiI;Z*PTV{3%ZUfB4z76D02lZ~V^$TwqGzr$*9h0^t|_eQ3aidz z(FqoP#iB1+bcsbE^;H&q&!Qw2C9}wSr}$0@s~gGcMzOj{tfm{Q>A`B!SWQn>(~H$y zol}gc(Xy@Ewr$(C-M!kjZQHhO+qSvdwr%UKo++VE7dJ$SR%8InBJxPstW#CEb`30l`cN5>>P%&L2d{;*=;LD3pY-76h_F zi9%8El>`S`C<78`_ur~0yYj=UwN-R{s&2QsI!~RRI;*D_H=P$dpTErH=gnEX>|$PM}&0&F12*Y|s_eS5GW))DG${ANZZE61|q0}>P% z^3A{}q55msm$;^mL8N+SvG;8&XtB<3pa^8-(OyEsyN9nWL6fcR{LKlYMLRYIf0=M( zL<|kX@@A}Kq}5v1GF92@;=g(SD9?c#Zxro_m}yR^rk|!q8EY{t?LUrkEvV|kD9)Il zJ&hg=39#YID99B|VdHi%Vo1FiUF&QYh%jI=NeudMe{g&t5}~9_D}A zhvtb9Gy3IoAH^(}j-=zmyi2CJHQ~EVGB$`?!vqdb%a+@@0m;g)r?&365AL#ViA+|T ziXOCz*e&Jt&|?R&Eb#4Pq4wzwG@?g`b50E%v&_5 z%diG_Z#(!Q+m=QzfZ1_e#T|nU-IwpC+YV2OkX~3c6JZg+fMf_<41kk z?5OKk)huF59a-PGTED!SVjDvKu@e{LBsSI;W&!CMf$f3pL*!OO=>`md012mGSO&F? zIvw_D&}T7tw0jPHV0L`6jT+{XC}ZD&gR!*HSLAmDK0VH2(f2~}XXNCyh{G5ShX*HQ z7x`dxB-)0QfYuUcP_2TApM#0j4kgcY4*JREaY74I@dF2>9!82MROE8X^n_ZRfXa;$ zi(dX}-=A}BMxcQ)YD;f4Bs;by5ZB)L3mafrZH&FxJb&TM=f^`QKn1;HuKeWcj8V|L z9s0-a(aR@CWByvh#3TdNPIZYos5(CWN5N~luY?=p@wBu~zXmozLIMCAJ}R)2#?$d2 z0xsRyE(#R+XMbKDB%_tt?C6asVMeg8hP$DGX?NOm+KPUuey}-t-kjp>vG672$G)2z z>;@)eBO?WZ3yOH9l@bUs$gN-xEP^l)dI570i0jy0c%bG-(<2^1{X^g{M}OCluQbYn z43j}G{G77D;_tailln=STFl?LGCN@fZl9g_VO#Dm>_w&U>L(N`JA+>qS;KZvl;_dI zBJiVW7~(E8e{BM(*oe$7TCmusF_6DO!`xlSxCu7<&28x7K!6hcHaS1({1|gP7#Fc_ zCs~AJL>+8ZO~mNcamRez^O#ZAP5UhDIQIsBa81vlidqKPvN@%L2$oGP%CsFVioob+ zvTdrTR~B?F0qBn#{4K@JaxJIMH5tLoy(p027~(JpnSApTG&SnkihV*^4lxWd=E{hC zHz-MK{*J=V=yy;$wF>?!cTLGluKG-(rjd;ltY&&RQWa}#FjSjXJ5gzt{v(V4=Tau^}e*8F!?+)$!h9H?xJe+ujEsoin(2D7d zUpNPxKBU?vcg_hDRJlZtcRAB@kbR6^vEX~(Ktv+R`gqIKskCv=K)=X;?3Y<>eZ4|9pfn~Wz=4JtsB+%sw7X< zeFtdT2|uDa~3n%0f0 z1nUtxY^Q)3H#6$&EwjU9=BAQDJ~;+@0X2c#G5^1KDso~0(bbc(Y=VDF3{B#uNk1Kz zpC_s!aE{-QCx$da79>*mGYUZm2{A}JSte;?TD!~xx;A8?_jG@BsY;oCTW%6ib+Cw! z+HDUbs=bukv8{Gc0n|dsLnep?Y_lhkN#&qJ0;x31kE$xy%vMp^u@-1Sj*c3%-!G`R zq|$+f|M{B=Jq24y~`CK!|jUEEfDW_B7{L7L=CQ{;378`)DFlnSB z9gmUCO$euo+0YIJMPmq2BpCn51I0K_G_Jc0rkk+vq7N3&|S~N1E zTjYawnu{gM0K;Mr3^UJsAeoOq0W+aMg6hvPg~NSO8|lk|SC*;$VW+s6HAWn-8+gE2 zLr{m8Dn6?&6kbvR5xb+{g5u61rwg9sV&4VDZ0INU;1Tcwv&NoE(%>S>yfPK=A!wQr z7*{=qk6*Ukiz*B(WENZsA+Qw11256<(Rmd~Aql7qGq_=zLc`3fRk>@EQ|+ubbePo4 zF(QR7LRma+CdmMO()8as?<|v__+x=8PnBfMCKTYHLaIZw1nKG)$hPKETad-Z(yUA1 zWP@d6US(SZOWLU}b{dXVvp<2Otpi`hr~a(+8Lh%!gBIjWCtv9{KqavTjSdHebf-C* z)B&c6+1eWR)aC`xa zsqUl1V++7~bmwYT7AP5#4*OolK5!%)bDy-_rq^bf7kzE+>nA?@Pj5jhL~ zo(1!c{RE~kFqA|V45wPKrEK6U7UHNpP$WGSEt(?ZpRF6s*#qF{2`GxM6M7 zsxh2o3Zfz8Pyv1+7$WITsL1L?Ss}0xrRZ!i%0KiK@_dPHc|cWvhFLzdTEKwX;}Hyq22TeR zuSaLa9@S7%6@veXZcZUD+m%Ib)%&})tp;Xq%D9_N;MMm|0IE24x zXn*IB@dLr2)oq~G5)kXLK%dIaI!gV=6#6d;K(@^9s)_;KayHTB=O6VSwNdKf5mw)x zIFjh&Zv(OBEmp$iio~1^WBQ3L^5=NQE=t5={6jY(SqJI%I0Xlo5=dAH@}bUqAQ!nI z&T)?<5tv#+UGI&RK)0=#ZH0K&r{&n%jfmuh7&dcgFK|}DYdmf8{_wdkm^@WNJXJEh zRJNGbMLv*3D@X^ZNA+0dTI7buhP$Vxhn+-}p1q4+6+`C-t&4`btU#56Q^0y!Q$QAKFO9?`Lk?1~}ZhQL*r zi)3PHHRNR;W;M5#p2rnEw`^T8Vy@Dl4d-poG-*KQJ;zi?RbP35187X%-~$*x_{LFv z0|+)JfrJ64bBzYRuOw$<0Yp)&jrMFXLo-o zbO!HDCr2kVxBskUHrdXx&~rIUiBfu+{M`(={Lum5F)CglHKo!q{C8w1cY50YyS8e% zCD_u-&QA#}NG~Sp&L&ACvZyb3DlJSgC9V_|ri&`Y1as}926xZP zII08`82!E=u>i=c18ooB5$*L;E+q(K+Op&dh$dlMT84V z(tdJqZ!V2HbRyXXhfiF6IMUQU49DGDH2_@?ljd13lg8H9Lbj)2rB6yS<|B}s?*mN) z1ijTZrqT}O(6c?~*Attl`~fDj1(ITQ=9jOPMw$cg#7oLO{pGAnbW!!hD;`Vw=7ML3 zCdkI!ivx!AT#CLc8r9e{|Ddr)nFA6pXt8?oWR!vz9P1U2o(Fe#WzBE?IJhoH4$h z9GiXO%&jrGF`*m2qKCoME)hm39LWdCf>!#OBc3?p+m=Qi_ESf7Idc6Zrf`a;@B){+ zWv)`xuX-AKN(X8=O5`4kX~Yv~%Z5KFL@;f5NqlC=ASc$nqkh#{D& zi9HI{JiPQqrURAL;tFZ$&CD}tfUF6WTv~Fb6rO$qZ?J-|u&pIWXe2E*YTg$uUBg7j zYSImB+>L6o1;n&7o1}$koZtXGxn?=(o<(QFXksmjX=ldNn#sf$6K;Xorf%GAG;ZGx zJ-9#X%&|3-#ErjMeLERE#ANL47Ri?c8K%yKlM0Ip_X;!d$+zcYm-+h5(}6A+ z~-4 z2#fJIN4GY=F1>6)@8Jm5l}g7ZSIQ5viIB^mW567c&Kl4dXnokzzreRioKbh@%M#&~ zmF!e4;E{3keHrS*D(TUR=biP?yL956H63=uqdVl$-El%8TMvKuo#qAWTK1~kPC(oz zh}=&3?{0dv{M`|I^s{EtGh{mKz{im9EcpbkFrzQ>8HgOi@eUTr$a=mXrNlj*)IFQT zJ)8VaZT@Y#;#Vs9Ed%9BhT<2R>2KdTKBiQx8!&kW!fgS^ zO{6bS!i(hZlpy-INQLSdxjm6ZXX{5iQ46LcGnKwCe_(36;*}>QAfJ8 z_g>e%%99eqYMH8&Pvpr5%5=$m(gMr}qP$${BK)<0dGx#fLxJs>9NHV!H{kj=B2CPQ z+tp~+Iouu#G@US}P4&o((F8x37Qim-Pa2{QK`y?WZ4+VhPjJCAWAMrt&pQT34DQ~Vo9cOOD74L@kh-N&wEBckP;X#G>hyCbV8KRVnzKlC@ez2E*s9wOHpAe}ze zgHw|S$lpjm#sXU&6#s+bejbQ?RN#&aNpC+HsP!o=5 z*%Q6{Bj{kw^jonL!KC-Jf3lO_G>BqA&0g1^GI_ z2m&nMVe>a~ks*GM2l=mWz&vMPW1Y%zBkFool>MondfA)WLVnrcb?)tWWB9eB<`z0Rq|(*5DW>S_3;3_v0i=BM%T} zsyFI>gs{n2t~?YAV;$oT9X;2+S8ft-pZ$rC-!uYmM4+d86hyf#zyB;C=9l#J-{Q+~ zgPA)#B01L?#so!x3K)88Q00R8KuPBxpDa#vL&;QFD^T~Va1qFL9vqaVx}~UH5c8K8 zd%|a%Y({jg&`^CQ`}f~s@I)_2Bl^o0jF*^@b#Fhn80mzo{}#}Z_z;S^>U}Juq$3=F z9e8tt2VG0QyH{;;Y4iOcp$!gNvdUX;wOCd^_bB1gL5WKG;%TNBj$Q8-H@XhXK=7=j z1#%Re1r=K8vVZ~7tpcKPK|K~_wwYpjxpdWxS@>i8I0=Ivor>xS{p zA1nf?k8-atadXASez&9sI18nKZ4~3S(Q@I;AU7Go@{mKUBlq432dY*i)v#IdT)3i# z^%#9_d_2@DLX>RDMqn6cc6A%9_68wp;K4-?am@Z1g0PcrqjFz{j=l&yR~fli1*TEP zMGl}_|LSZQnHG|BV6cC9DD!fkz0{6w;LdeWfNp$$y2n!$oz59=-7eG@U40+juKqXC z6+oMFp|uA98MC1!=Q?glSD-rxfT{a2TFBjp8y0yKZb5%6gnS}NSHM|eeC>Hi+&>9rsWfn0C->lQ%$K{`^b8c{JVbfLbnEgOsibSu;KSmLSg*4Z9)slH1B zi#R1C14ft$o`lj{$I0Et3Xd28c%cWHIr^5D*UM=ccgxRRDVo*brpR27L5U&iv`N6R z3q&G(gg(abtIgE}jjHXAai!Tr0Rz^U(Gfutkb zZY_qk{vmSr1RX9RvbTv?gNi*wue_UkBbhwCohQ-^qwg)?&fga|46r9TS)HyMW%;t@ zKzSmawj=FnuxG#tx7ukp_4Q(R+Gx&LGz9>yAx``o_=ESzOx@B^A^wlOjOF`XA!>Ai z(?VK^g|AUDn%4URm*OK_Z29Y&LRVdyuz@Wi@CLis`$0f+1o42Xx$gAt9r5N{gR>ZcBhAhL*a@Swl6+4$i{->vCq ztJb~2qxnLe0HdL4pBC?O7+e`WNTO;M9$D%xF~0z!i$%wR(7aCS-)k6bo2Jzo-g6jk z3_o_D5Bb2vG4Y!B@LSF<+otoH?>uLTHW{bB;z3V6pugHde}JHNmxA6$L^+w$;Ib~e z2T$CiIGu5e?t!z2WBP{L!)N$|<_Dk0?1;1GjC}=k${4XA<}!D2M>XG(r=twI&1>(e z+n@M<=rNGzGQHkMtn>Q!<`_89nKCWD$}n-^4>LmfNA}L7vp|19g4h|diudCf-@2pu zW#5WmV*fqN0l(k@MzsjgABG?`rq9xSc*b|eQ&Q+}FAQ%mvy~>6FJG{+ueqjve0}?B z$|az_kO6TgQ(BoJJF|!AkV|_b+rc=7FUQ%h8|D~4<{|uvj20HyzKDT&w-B_R8&l`M ztC65T96_rCEflbNI5PS$-axgT?c~cX-6xf9+7GXJU)PU^bGxexdc41vQ)uR9ph{NQb-OPsw9K|Xdj~yzmw0`5k;|WQJRhk}S7t*$Z%gHBzbp6J z%SEE3_{Y4fAMR5c%u%zN?`PCXrQROLLGx3oG89;!Q&ITzI}b%hJB6D!l07{(msPWQ zm5y}0^@XoR@zju1y?xR7k zx}S&RxHj@}e(vDxAMWCk&jE<2Z9evwQ{ct_49CPF;8VVQ_dB9mk$PTll_yS}Y{#|K z^EY4my>`o)t-|s5(`ZKr(>^)y~pe=vzG9EQVw ze$tsgi&;-=JZxudtoXE?)-u~x)*4T0Sk-FYEoLOG@HCzJGu2kMnoi1CS86;=W_YcB z)SXQ6hX!zD7`GeXw)#)f3DL7Sw%8dwXL`hDb}SDtTzqhYZbKZ{R(B6)^&d^LHPRe( zL5&Dkcm1Y1ewe3a*z$%mT(C~v;ToIXF)$7>aHlU5tYce9<1YEm88sX185_dO#OoAN|@7YZkC8Ys=T0BeZZ}gyRm=oHG1)Mj>7_dKIh@ z(;{mQTn>Ei^W6oyb!8&eBB_U$4V9xKwhyT8t?se!weIT<+-47F(R1oJ_1t>*yeHqI zA2m*$X5DgbIe+)Oci#ilsV@wR)<`^uPr&nj@30+;-HY7Souhu8Pq@Okp>qzim9iJJ znX}6{&A7=qPdTk}VrETGEl)k~A@3#cG4D0*Depb*W$)V#>PA+FS4Yx@(?-;W;YW6( zZlls7(>U2V;kn?sU%6hn=^b=$y8An(I%d`{w{E((J<1*#PfZ&XtC3E_mk)3c5a;Pq zBb7wTIApU4bLnpo=n?2q+#)t}?6`IvbwMqCQzuMpTH0UMNH96<~ALNl^rej^wc(V+$(fych-8IQV> zVL1QWAy7Ea`%?f80FeE!F#gXWAZTV{>rAI);^=DP_&*+jY;dEu|L_Q?T3O?$q2{i4 z#bq>%b#yhg9;)%Yd|;CAG^~2K(^fWYKO15hR>?wD0$twU#PCksOdFf7I7lgH2uLYH zVzE+Ph!B9P-GQq(R)y+`La8F(2c?2g1;ob}mh(di5s8XIKvraPbJwOR3`m%rYDEoht_0lJ*AcDGz~HofQA~B7HezhtzOTcqZ+ms%^`TjtZ5hIW0%bc z1@P;zM%LP5$u$?E+AKyObyZ_hd#Q$Nm8X|jX1t}siZ+Qrji{&-5kAtCPIVS^b*j># zv^a8VHXRdW+u^e{Lq()UG#u2j`Kv)5D0GosKnw{jQ(4dnGDNQ|h09hyfOc1>K(RSg zwf<3GoK!(_)n43)*=slOjKVCn!z;zWx(o>Sc`hpT|17jYi#Q~xx*+PZ3>Fh3$^`up za!{d9gNhZ63_P@K)uOl@)tJ?&=_GyZMr?}UpVAtxH3vJQKZqN;0gV!w%X-l;bX#gj z3X_qjtx0P>W=a?f9fG6G+c8Q)-FAqOl>*I7VVIF$(p=77c8FbgHUJmMBWe|#WZce= z*Yl7lLqccV_8 zNkIjg{}LS0*ax%|WzVOBb5TQ3UIVQ;zBG+2J z7iQ*E{qqQusICG#;PXc`F;f7~N!xUd6g~{8bx@Otn3|K4q=NEj!a(C{7%DfZWN%nAzGyy*uM}N$yo_1ZfNZRnMlIph@RAd@``>0AKGJPE-&&F zB|;1!ktJk_3D81!i?QoH&$KJ!q_~{urCxhs6N)t0G~+mvd;|?(?Z7E$X>U4wEfGnR zAp1g%HmG~kMFm;YEvQAr#3B7yv&Rd;n%=adr`cVh1Kfb7wTe))j5_@u&&PJTgDoxy z4RNEtp(kMg4;}tc%>o+o8Ul<_;}88Z4L1)RV5*KkI?@KHdsqAdh0?gBKTc@mtdO#c zD$r1Rb)|uMesX3o1Eib=NE=;TQtXs8P21dIB7#(?Y}Y-~Yym={hSX6=E>Al9Zun7w zdJVRaU6!+`1f-8p9|;UZkiSrE2OK5M>S8fPH)z(=yiLgW-z~{FtB48gqyvC{?ELfL zh2S;nd$fb3w3evk^VKo}o5m5e+fkl410#ye8)FiEVTds`>WIG~|L+%T`J z7_s$RzIpo+xI?aa2ANDUN}=HD_XJb8YX_K3 zu|Vchw6Nx9N)>;2fKbLVkFZAUc}L{(4nP#L*9tgvi_#4`9P$i9+2lBqCks#}N#mVC zJNf8??9^m@{ZR?R&b$=8LdXe7w%-(N4r#2tF+Q+VWB<}uGK|!3&2Ok7^BZ+gY zwcc1orkiPhf_R7NEoi4H)1)OEuO@#hQOZYeG|*2?si?8Zblgl!nH?EwRB?&$)p0hO zWLbGeB;!E?g-!fI9JHU`&p{6|JfcP!da`rS6A}DNAIoQ7IwyjFUI1LsVDGDwy9E<; z`I!B(w@3T4o6z|V9KZ*a2zRjPLHc)0kjdo{IlvdixRDNSWcp;qhYnpZcyGF>bzQ&= zsLy)O4dX~6f5;D$82kn0bw{9V?xa7IFAK=`2^0EBy-lGS zKF_!QI}8~=^>9ws_}AmS>mwjF@9SjgH6Bd-mOQ18*L-V)Q--#On z|Lm*za^p_>O*KQaHdG2m(+P%4A9lK$H@k!Ver1ZjyVA$xum`WtYe-KZ1rmo<9kN>|+Vj^qu{H(ve`ihmT}H)*VIPwU;syUq0`>&w?S zIPa*bXYrBw5&Dt*G%tsr*={B;>-Xb}i8$r?xLNGCV==aGhC;*az!~WTs!M6Q5Aeo$ z(z6}r` zI-D+=WiwB8H;yvN94yJDH$t=zIOP_br!HW@oH=5BB)8vJXHQ$PO`?JYfC+1`u`g>> zQDXFfWy_P;ehk7b6+*!zf*5VS5}}BIU}cj5g*OE5d`_jWtW$eWZ$Ecl$4)=LdtaX) zpRUV7Ic&$6mF_2ylT0i69lrcHW3fr^y>EnOF*p+F$X$@j6gv(SDN~SAD@UR;s8OkD zL!3t`R5YE5^XTYq)mLVe3zBP2T(lO`q*P>zG8vUBY+}pY8#K)spR8Gn>^S&qu|;`r zXHcn4c#WW#|m119>I6sF5lL@VR>{kiB)Vhrq2dO#?PqCraFo`6^i!N zWzNdG&z*~fjA%%mQgdlc9?Nb^ph}Y!uO?O%_oGvtJPaoOp(=jph&%^3Vwk_aXrFoN z`C#LAc4;WgLbjy{y`en|5#3G~5dH36rCB!xd0Q$?+DlcLWLX%QRGgsLGprbg;ue$= zL$jyZ(W_JHu z|NEs*S>=>nkFK6j<)<2O1F|s`g?5_w62Swz8xmXC6}Yj#U%`RDf`pUkA?q~Yq$}J= zMi|8{$>}?Qq?0&sZ$e8r*oEpv`H8VrPv&B>B2Uo zZKs~&1&Hebs8A_9sVu%+q_5VTDY1OIP7p@cK#Ir&5m+MWl3IGn{kgtiWcVJXh^X=%L9F8$ORR1qstI;( zdBYfw-!hUJg5OLb-NdTYyPDPN{Dlk3Qgpby;zzAGNgqZi3t&g-xayiTdi5P@9Cn1@ zMN&M; zib6?Pct)gN_9{y8$ks}?T6b~BahT|=roB?*CKdm&q(XSPponlHN5)uTo=_8zCX9YZ z4XP<%h_mp$f#9koNTPPf0i^X_aOI&Yqi# z1jt(iNsu)&FcE3VwLdc%u(B0wzie~@02fg6ys0YXr6n&gJgE^;9PkQOGDe%mDuF8b z@P-Dl4FYv|Ahg&txu~}np*929ejoxJMNs=e5>s!FB!U`=I|(W+u@$0mk7uIpv4cG- zjx~^tk-%nuV+~;Q44CD1`&kA(u=3}>P@iJl3Aq$IYr`#gj7?U(v~Ah$sZK}+%KojI zj^tE^^SygK=qMSC6NfR1g7LZ#a>PiXa}D?-Tj(~=^OmCUs}Q_v;+$T(g^5Eshg>6a z;&}TJ6Lu_e9iAO%-UElU722jDBvHJ(y8Cpo3A|y;$dROjDjqlu^+5k^e?z^P;C%H0 zv0lPdJBSBZ)(2R@-r3lCub^X3ClvG8#uiSF`VK8TG||>#_Pq`lB_mMn`dUF-8~-B! zf^~i=&xAZh3EV_iEq62Cb3E>U*x@HYJp6j-iB>ImW%O7!Y6gr~F-i6XZ(at;ddq!+ zw=2;50jxiS+${+?SP9ufp_}pxRy;RNcXWSMIq~o-jZj+ebWb4SVN@j4ZJ&ok3@cpLTO*xd7+u09 z!b61dU+mWgKl_F8-NU03DUePJ_@FXN8-js+;wBuSK~5c5q~M6Vz9P5x4WQkEwh7l1 ziHnZVj^LYUmuFg0riHqH+bL#;v|~sR+#}iz>L)eXH|dD=9i)?CR@;{%Z!{QIKLG)l_@&?$^y z-zj#Gk8KAM-SmhY_K0kko#*bOyC-O-zm$=_C5>dwynzfH))pN-d@`QiaEBnm4KZlM z$^<-biZyPEGGY6b$~R2c@ic8`?-y4*plWFIR#z}e5%W&$dwRyP;g&1_=tpl~(S@hl;Am4x;Y6l{fghO1W zZ=cf$o(2>|4FrSB5N&`X&7 zY&=7*i+C5bc{72zw@H$GX_#8}<1@=1&pML(OyAVI7*e=7!p>r$Z)6@H)Y63O9=e)r zOE3F%DE0;yZjP@F7}xa+*Dlfz#(X?M9ykQ|-3E@1EDuN#*LQqBW7dDDX^t>oS3KU9MX;GRZy{@0rb%S`X`j^vfTi@MqEPW33PSTIp zY0^X<-;ej+=dLI1({z_z_jf<{&~4m|wwKkl{43A%OVO!UXP2)-lRM`3ty&#F%h%QC z>Cvrk$5XEK=3~Q4hhpe)qRWe%Q!g+aKj6~sosk@We9`9V`1%gl-kmkQqIlWReunpJ zu?1FjTHZ|4MXrMhr*o}hGrDMk*YWv1_^wxt-Rk39O<&%<50}Twm3A$}uV1@($LMJ@ za#~uj?mnS`sJqNtNU{$Rh#!;9cZ_O?4DUAwdr6F9mlE-l9oM0oaPqrEn}2@g z)>EgbpqE{VZJfXK0RF$g_Zl$i&*h-NI4N#o5Bz z>3?+PHx$r+=t>v$ZKuUG)HE7U=|OgiKN1jmK)`_62;^`Gz>tlyhU!8P80v$*<3g#( z$Xbr1Cg@z(FpJZ2_#1K=vSwWy+u&dy;0%9#*3#g*rum*qhOEQZ)jGMamGIA6eJ+GQ zyBdLXH#{A^=XhUpcW<+u_({w@wn7j?&p)husodC3xnV>1+n8Y%CDflcVlu1fKU+G< zSz#7koHxzYFKOCr*PtPRom_V3FInf}N)#bC7Wi7AVTah!UCJil8Yp+%(rRKW|Gd%| z7_8e<*N?$=0R=V9I?%2m_b*ws+I6)4iQ|^t?ptquvx-%^W!TE>8&|U5amJF}X}Xds za~X1jU0fCBi1TxsZ|qvJj>XRKTA|Txvh7Z{;+A7Rp^;=*@$Rv8_XP)iJ*a(-J@!;B zv%*B}(X7&{At+xlty)(p8*03)pdJ6lne6$$WxXSGa32XJj^C2$v8UI-8*`c1rDxe9qs#wJ)| zjUAUQGko^Of7YB~+sd+PW=;lHrFYgd!*UrOU2pMRrM|zg5L_*jpOZQ7EWR|G%jp(b zmYZXrChfUNmsoCS0JpX#FcwRBOLRdlsf-Uj#-=}|(NIMmc}UaQTs;42fXU)rQ_*Ra z<*LDh{6II(t&3NFm>(b=ue zjw9u`#YUuRb>$Y{vqX7_SXjc@+?axm<^30IQ5Z(4e}OrAct1BjV};zGM(9I>Gu~*s z%UD&G!7+c-MC=fyX59X-3I>RV$(nO~tV=6>`WO%(S(oDh{S19X3*vk?E>Ri#1WZslbT@*Og@T7rge(4V+$3^ z2T?gC%`++EgGk17{WHkSy>*b>7>xz!+#T24o%k~LgYy`7&rSDC!Z<4Vd+n%#G}m^F zksD}Rz%Kl?tWin+w8LcM)F*0j!t?Gy@z&K?jo)ESL(hl*ak+4GFvpbd71KFZ!xTO^I_4lF8(f zQ_S%RiH@GOn#Yj~sfGnvfcralUIgwxSPNU|5Nj6;w)NL#)F-XJDJ>V3gbX z5^ey_l&T#58u{4PW!PW%&J}lF2;<3i6bPLIZRpm9_Tl2pXPqeBS(80POZU82nOBIt*yvEvx?y^!20e{ic>{dM& zNTln6tn*ycaC`+~>jw>D#?HtDdxMf=^A~G~w(l=_tt`=cpV&CCAie?c!QL8(k2tnl z#*iCjAaAHLlffoW+CBMYCsF2FzJj zFGwdUOI(--DFPd$(N5S!rb&@i>`Pq@NC>-zYrqP8C<_)(%0_9KY?>IiAgbVI*z+|^u zbDnS;1g6WOcuH3D*kR0~0J5?21&N z<2YeL=RFRY)+7Sn-uqGx6Ym;G!}0nSw`+K{X+$kDR>LS;D<$fff~p&K?_iG7DqW_} z3+n;v2*w1=37rv=9W*UCD@+$(rI$dx8&9oh0ec$h8mC2`Bwft_KO9CYqS6_DFC9M> zze=b^@Q85XhWY?@Bs;DZ-$uw)48usUN^!HSYOo_g?6>9asi(m-k);^YO{#HZqw3z2 zVqLIQDK;Py6;{y}DCJ3!S$4u}%6dETs!*y@5xJ*I;6A&vdUFpQJ$jgnIry$vk7U;p z066>vUqwSW)V;da6-!w_E7p}w)#8mrnadX9 z`BE$E!nvn)tYJ~>&$!%bJNrTxVFZL;;4pDcoF*4JTaUF~^o6`l%y=(?0rS0|3lfWT z!gl1wUp}SB3cG+4mqX+xZ9287W3$y?1=?Sq_1mwT%h=mm@9g)xfgr7jJ$kL>UB9>Y zx?XqZ{qMcQxL$Xb-}$;z{&vs%BzQIMbX+s!J_A#nM?>YQShWN5)7HaZv5;&KHncOz72+VWz$pg z1~xsNzfbIc5ZNO(hrbWoRu1e{0QMD)4|cToIDe$>A*-kk2!4#W@aM&^ch8F_Q9;M#u4PxFsgGJXMc z?|O5e{%K+bX zLlR-w{O;J6%gE6%GyODTNzMm}Nk`fM+G#mtG49qVC^I#ku1{WgX zljL!8m7o+SNM(ku2m6}m?R43+6aU35o_yu$@Cnc zdJvq-K4>k{I*GT@YR#UxIB8Fr86B%K9RO`ZragsfJr?P(IhtOWL~?5~sZwWcpHpts z7;C8lWzW(n5X zjf}f5+^GSxx#e)&eeBUumm2*C8&#C56xGcqZ z`Y>WG?mPzS0_Mhv6?_Ju7XgLR@k4r#@2p^Jo89uz=b?@YE*Ysk&+aI62!UUlt zxhTYNv&68RxF$@`ND|{glH8o2JkJEOa`Hu)aB_(`Uw@InP-)4bE%Yy?4s#}$nGm*& z1(iJ*Tc0(REUR{JMvVcxKO9a!QSPmJE7 zuZ&Vo1ej)+`mQh(v=*{RCwyNn8nIEL4A1p%m#*f zVg(1FXvqP}s9`lwSw7`VVYDu2sShM-Ae&SploDd&pX{iGgH_Iw51cwAvbIkoSpnIkd|BIADTTqPhHDX}=GTM}W^7iIuHm5$`8Gzi(OKyPVK2;4WVkc7B1AY) zVF02ax;th7FtouhL1<3bKwSjQ_DKa09;p1lEl3OKXVh%9iPyPaJy1=YLF7hmFn^2T zm1kx`a7{di74R01b>Nyn|0QNR*4H@HLqwR@20_3rAgt>6w9$7X_)ly=RN;-T0MieM z&w|j#<6P@ylyQQd<3Hu=9C%O()^ER(C^iX4}zn_u~HGkKe=7X6HfR zee1SYSF}*p{c&;@WBYO8-D0!Bvcc?CaCZM&;7L!?$JxWhd!?Vm?{qE>CYFbh*9Z;$ z4_u&s)M0*Vl7-kO%dZ>{ueMMx+BoDQkBX7w;(T7ewVV36pZRp+JM#PXH=mYtNs zumNYhMIk9Z`<-C)aMhmKe%~!HY#)QcKd|Ls3X~kGsEPzBKNkD#k1m0Sd$Y6YEiRy0 zsoMIs4$MYwpxty5KJDAh7M#h$j1w+(3p>y0$;vfFX|k2NdSxml%Qy8?=AJcuj+y|r zkDOkX&vS<*C>d9?R^GA+RQRVb4eA1Dn0FDDUAGdX`gpBLnPDjpgR5_!#tXouvO;x1 z^z7ucsmFD6LIT|}z-h~dRjCMVe4`X&oc#eWf)9vr#s&h2b9yJJZ!MBjoa>z^HlSF} zs2nHD0@yZo&YHvNm&L4U0A#W1{s*^Mh!rJ>HFv-fq>Ofe;eZ3@4i?SLHQtY;5S_nN zBKtl20g|_P#K)iDEYU4;uS_VKDzOR($3u!@;-0w>%rd99p&Ims9j8(a!frtAZC3aijxq?i65D+#lbZNw8(_=0N`zWsPFlhK6zS+KI% z>w8NZg2*e*R3V?r2ETY?!c>U;HsRD%?e1_Eq#b~97WxQ~)A3MeAr3Tro)Y7hpJ~d3 zX{V0f3;#gyzK5fiL*YUM|KpT9_lLq$#zx8qO&ocR(yfg!*Acv!neCwKCyGB4ET|to z|J|T<3mHy+PALQZ?8xp4#=G;&@e;?MxDNz>eS!5VC}E?CHFkHMW#|r89393w-9j(^ zjjaX@6RGm=*ngq9Tgb29^+Gdo{wx1e@QU`9&h~cnVs`)a6yij$;^Jg#X#3w~PXxC8 z@t?AHRa3IS6~oM3Yu~V;Z*{YCPm;-$X?hNNv|?BrMuinhFSe1lUd*S1M7yDP_Z|!D z+%mPVBR7z-pi;jjLiN$SBZ3aV3V#$*6)i{eQ4%5;;yrEpzLYzsa^2g>csu^+ z`TjP4{`&2E{ni9Iwj9~@Z_??|9kIU*QF!53=hb!F-et#)o3H)yGq&FXl(~MmaM`v} zrP_-1+tRs1)d?H%%1eh+**4^7?PbVSN2{mJLPRBA&zdz4R1%L%klP<=Z9hthC&cFz z!bg&xy;e1($~wOH-rmNfXeUH&rRIs zZ00lMH?|q(_D-xT`ma<|*89P{SBlg*sIOoN8MF+c`P59724Q1xZgh30ROu%&-ICpk zDs6EUxM~ZniSZK53_~mtbFqGWdSS+JL!nvJiRg1!=LWEdmAcXjF~OVzaKoXHF%QXL z8)E+H_)S?I9Oe}Q4cA85M|M_Zs*N7MfCpcZSCN?MnsN4p^d7KbuT9;uH)Q)vY-zy!|yV%x#kt!ij< z3p5}jxVbaT*4H$HHZ(2tr*c7{8TlX_8b91Mr3&>RxJ7aBP|;!;Bd+L^gf;+!4?6+v zrISARBy!GM&Zm@GY@(m%LLvwlXWblfLC?4YK4F>;PM!gRI0N%T#drfesZ#77R2g8^ zv!=t62jZdZ?CfSkPOk#xV!U#$hV*isw52Nqp@BQp#`QHCP>)>YkOJ5mILMwUhH#;D z)dt7#-k@TL`UsFQ^JJ>{;;iW*FGFtm=96YAsswKRNT16>365VgaUAvS`ldHxv}?f4 zY<+|6{n;AS$I;;t4&oM~0D!t4!)d*3Kd!%Sh9AZJ-|PFMANIZ->Hbb%tk_>)tt~z$ zVh`Y4&Lgky#~4-XU3p|K_L|?mQ}#NzoN;}xFU~r#g^0rlcFkOkWNb+7^G~lJ-l)1s z-`uTEUmYs1jrlR3Z7Dm)A$xGJmiITD;QzbHtZ7)Cs{<>$QP zFIYC7hhyJ=$1nKi65O|&bMmp){Hp?s?!`0XlTO(*(~g^dyvfqJ^2h5R`;IJm5_1;J zdUiT4F3z5@i$f3znWTBeWWWAbrSaBsNbHeOM zO_Q#&7m6K>G?T-PWHf*&opo6?iiNjotX3=eoQ6pYe$VCP)qius>(bMiBJDcl8pgS? zSz7zSBcwCJ>`70>iJmn2IV>krI@>Now5=J;=5P7t{muI-+ZL?$N6?Nm*iWeQP|m`% z?Mm~iNz;dB##Hr^c+s$xy2XB7tHp7 z1^^w{l!574w3C^ZQScqiEK4lMSn={6Lsfv>-DpeZ5cK1wSVh0;tO)aMXW{#2h zL3Z}9TfaQ{ZEI~&L*yz96Q zno-h?cj+;3CSe|l+bEpKJ9xb$rMNq>!NO<#YIH+D->F)e`92*dxaAmlA=O285o`Q| zq;+@`Z>~|!S=^aS{kih*vM3b4_3lcw1PGucNper` z@o?G^AXeA|W^gtfiVSxA2S{>JeEN%F(b?DZ2TXz| zi>6>a0Jl`?p@WXvG-QZ0X>mwtFf>Ec1N`4;0+Ff)%*FV z0}9V(HG+^FuST4Spg3+&$fPZ`NWJ%XHweW9woTG_$GY-Ya3VSbavF6+8|_}Y0GTMo zI&agV4a#4RQTw*@4pFK?UK=2GDg2@0#SnjEhypBoH^B0UZdy_dlrd$Ydy8p9r3x6S zV97)Kih*RI1Eq)H;(47{x582`L(PEy{rf;8m0BYt?Y zeuS@@Or1QUEHb2n z{rTYIgnSYW_9_(OLn3RDz89er?IWD@$RmzjILQ%3n2;n@S}B39ec{r%5%E8F;1kqE zP+Zvv@<`gX-BaS3Ls;h#jVU_*4SlsxzPZl>&~BA@|4yccbHAfBDS~4x zzbm%}Mi9LGWOWsBJ$PTl+?E?BN5#qPRpje*`L(z#0v`9YYX|wBPnbq+fk=@2H-0b3 z9~bv5Ok&iAPtj+Sj}Lv&mv!kSMWrjy$zxJHh72Bn1sLevyH$n}0!H_ISQry6NPF4o59)=gw{D|Txc&kp41Hl|*A`;D!3bQlY=ZX_JxSf(O?>>(iaM-A0E3qBx9 z*}C63hSM^bK9irHm9m*Wo1LHiL?9vj+$4TjG{_NzZL=x(EeAf?t0q;Y$S$GO?Ew4w z`MrLij-MNF4`iS3M8<@~BMoSY3SxFRVO-v%)ff}>Fj8VJg@qSBU0IpVzOG7yJ4v)V zNpELD$zL2OU0^8jP9$lbSKor0{-xi#9*5|Vi0?5!akzJ3c4!sgR3AaS)Epg55n)OJ zk#{f$d9>@i<&o@EZwUpF6={OCbo(H~x!Rl_EPMO*%Lmth`+9fRalG%~=NB!4c?Byz zhmxqw&9Cq(%&wduieelk2GTO2GC=~-3K2p#j2FW+LHeOI38N54iNP92wTW;JltP5r zmt*2;z}J}IdTur2yXwhDV=)#|-#Sa1Z41X{MWOummDc^D7&pW>#GC6pAB`}3z!1j6 zpW`JMe%%?4rYnQ6t7J`~*|c!muov1#vMcc0*ydlfsB~^rY$Zh{)|^gEuzNwncM5S9 z_cTI`7sCUmFYf? z8XQ@+!itE}M;|TV#tu=_6YxDlOfT2ga@iE;*}jb?$vZ?5_4KhIL?zBbLW-<|Y@q+g zj7pAInH>`pw=MgZP7Li((+N78jE&T;CPzQ;e zO_Rg2h&|mB;;ljo4?L0G3IHq+F3+&L(3_%>!vMqC5U&_8i;kz&ZuCm*rF5M zJkQkHl&naVsz@bSzBnHu9s1V~(GV-eXvdf8^;#yu*e(*+S>-Z)LkeoXoi<_`*?QXe znl?`PF`Z{4X5le?qn$K@JL+VvIgCXnwml~*DICfS-2pg&iZiiXFsYnSEq;bPjS{hAhF8QaGS!8k=1Y8l(lI%1G%%s2%s>kL-P1+uWIZ8&~s5!;`9@nc+J zFmAo-MVnsD)~8C@4aexeqH4`;Iqg3GFW3K({g!&KF2*fpbabX@!O#ahSNImp**u8z ztejnU(Msc2l^lH4*K#V^QfZd+bL+lgfly&*FXHN**8MAFv@>qIx;H}~ zflWVI4ChJJ+G60|JH9ozzF2b|B#2=bbjVxC@zY33S#P^QFMJXP=gRoGV8o7tKD8x3 z%}&TZlx}rzH3+YUFE-|e35gWUwE9QUUpIB`KZgkQ@PT+Nam0uQ0u06CpcKN05TKBi3V8b@q`iA5 zG6a3EhwX-4_#sn29AeT#>}hcDXfsp^%YzY7-wHeQ*6o9@Ta^rZT6vzmy{$JJcEJA_ zEAkKs0fFVj*}6ai0qqn1M(9K0Dn_8Z9cs^&$Xh*Sl)VC=JjGC7W%i0yZ(@$zVMMv# zUp?}xu`49eII|Fqm^eXotK?2LWYuvgsSw8^To;*E) zQtwjgF_B{~UXB<&rVh@VV4OcUKFR#+PL?PoKi3>aUE+>E8+u}}Fwa zH>tw-lVWwt-Ewo}9l06k0)_7)1D{xB<~=KYYW@}74IuxnAdHev1^+2};>KPpTxIx) z7wb1>Cv_sfOmXkGyt8+jwomrnnNP$n|Gp(ladzW&DrEB))m~~wPr{!d0gGF%{^*)H z+l`6mL@V!KcJOlFu)g~%8(d9JjDnE0@c~M;!Z1o~Tb}FdQFQRCrGanI6L^ao$wm@# z?b2kP6}il?E(G)$(=kSbrNDxJFpceE$pLAqo`szS`|pvaJA8J(lH#NoKt}gVIzI-^ z&za<#`W@A;wPG=!SH$(6Ts_La{%zMY&Fg(6Ul{Q8n?5%Wxt)NiYnR)olWvc<>6x3U zx1G)Ak7aWL`DZ7Nx2(X}CW>09G{2H)ywCmXn`nQew~<#WDHgnFeJmk#|6|8%XVNsVt!KIGWNf?@F4RdEjwF7lWc|yM- zry(j1)iz9|I;z7doy7te>b1va6(qzB5gFCB!Fe`(ZJaV1&Gg(_)Hse@DG|$PvV}Mu z=OnAi(xf+wZimRxy5n|{g0lFqx^T45DqwGPO%~^clu}1pU-Ea!kk9I7Ihn72xG1S& zue;x?4G=V!tHDD&ZW+v9TRG0S5^8PBIPGY{Ki3o!dlyhhB~*l6%sr9>`bv*p{Vb5!swxv8nR zR}lTt=PSmx0$^*PoQH5%OqXLVDL)J=#N=W1nE&g(0}SVtzbt*L)|G24S)aQ;p**QP zrM`qQ01inlij#@-xVc5545mw7GagV@o5 zqHMFp@~g~*1%WJPAOorL+ zW6iML%8QTb7T}p=G-CGOiJhIuns(18o1%}MT8!I0Dbju)0B~70l}C+!am*NXTX8hO zmIBxY=$rncWbp6TXV>t})K^|e?U=1ncaWKJ>fs}`q??;|`^Deglnqn#-x1%NpW@pnCnFs6B6_})^@&P;R zPhOeUk5B~}M#CcNKpTl7O-qALuYLJ%(Q#OiG4RInr!miTb0+1nTE+)<> zTT&p@|BPJ5Gl+JnPVAxOJO7XpUH>FF)ec7 zBirLB$+DLUm2}~vlN_XpN3EL`Bwm*VqiR4;SZE;SM@e#oiD?N4W_ZwGoz{qFeTF!4_X{lYfk(kh^(nXEm@|^QH%YzNT?N``34-@A{>%> zPDFMBW+|cu<@tvlU#}wO#-cd}TKU7E8uYn(V1p(94?qvG7+!b`6Mj^>8Ra3Si&iox zR|3Ps1#XzTuV~>xvXA~HSQtE1c177#RJ@3US&I6zF|mK#0@@B(;AZ9Z4x?)!TNJEAnbOLv%I6%3*Td(wU7W4&^skNVMirU9wG*XVG3f&Je;d zGfa15>*}rXs<2c#b+Hj=!Mw6PrCDUUiR3I|>M~GSGFoJV$2krnm{exVnz>oRYBthV zMqsh(H28%iDt7yt z2yl&Gv^v2*OJLTIcTtgUrX7h}&oJMQ`X2lhh+*B}5rSJ+UAUX`2l;P)%nfWORNeqT zW#_gVnSh6=GKB6H9xqv%s}I$M-k7 z)7%n*j(2;rmT7$d!;gaNDGmFZi`Rb{2mt5bH{V4b&w4LuzG>+GU;C%3M>RMk{_Hu3 zTO8`8&pIF0S$;=b({U#X{7+Y|pIvhl3K2Ul|5kHfJ8#%CSsy-dtky>ha$o8XG;edc zOP!}|@&j)F+TJ4c5uSz?*)lyHJ+!+0eVg&!IH@H+X%jNZoT_}tJk!qA0!~;b0IYvz zWQipGfLARLHT=K-@u4E4(4h3lZ;FbplzyD2!PgSVe!&#Cps@cqL;WvWI3{2(4EqPx zM*B&W|FC3IcFqnzwD5oPVrby!Z~sBCU4I-9eq=ehYisjY&8<1tEnD4`3+T|HS8gBs zYWWNOEr{B*zPrJr^_SbWWs}o3=H@aqU{Pp&h$x~_^p=RI(U@q5cc2ka{6U0sh$IC9 z@d06&aD{;ZUxerFTb6X7c237WC!Hs`&es{<=Jp3DwrHp+tn0fq_7y8jh+Br z3HKsS1_!7wEaT@*wn@iRh9m)Py}*7BRfesCbKm=d0<9dv3Tqgrc-k{noIM<)>vrJD z9c|piI0I*~O>CFFS6DqrTA*0F!yQXXF9dA7wW*o%Z4Vh1O4Z7uVCdV1Md1B@A|b7y z-4W$q{N;S>!7;gnrR&HaM!v=LaM0(BKQLm=T$dD`9(5BQb|is2R?Fr*r7YSi&=G5c zvP5_`%Pn=rTxS^ zV}+tZ$@Vgy{LQ!VZ{NudW5+{V#xnP$V$+L6{Cpu znK<^CFGrT{M^Q>`js3S-!lDopf({bhqXjxzq@IPz3Qb||!Z>@V*3o4(xQ~Dbf~K{H z@$bp)M%k%QK?LZ{mM{v!d4L0M?ubEdFu%;P&-7fHxFUWN!Qhzx$!$KbL=9*Pr)|5y z_Fw0?BgB!?BA4aZ%W6=rRoLV{vqD*R7}Ey%Lz5;Y_N-v1Rh?uReT-G!@DD)mad4v} z2v5qXOCTNLI(_{@xEmxb)le!?eW<88v<=dn7RYbeW)*`nlpMNxmhfq$RpdhFUvA`c zo-m61B=t>@(=YiI0Wwgz+z4nuxpEGDkeT2f@O=v{MELbl2Hmh|AoL_{voVoColx{v zLPG%)Q1rEe3&7rxxq6{yK(#-I3&^N}b)+03dexEmk{;u0jx9E-QDadst)rWq(yXyq zanzN9rPtcalUq`p3@a1NGgm$3)ESH&J+gS=$?<$pxMF!d*4a0vh1$57@cWm7uB7)o z`wY?2qcQD|W@!Vd(5q+L*QtquBksC*Uy~E$`ssrX?GUJgUt-4zFN{>D>4osu)$#ow z*k@MV8q}gaSCpD-n7eH`Z!02`5DUHL-Hdi&-Q(ffiBZWrum_~`j8Q)?`XT7R=L%&{rCM$VB>zl ztVPwI^?lKKzx}>bXeDZ`rQg+;j6_7qapk;gU`5aNn;o&!wcWc+gPY&S{h@aWhKFBw zzTWM%_x{6G1Vj7Z%a_*sM=4E_bH}mEpW0^LkHbH?+dNJlE6WgDGkMwHSx+tlwNcjS z7^yk_Cs_;s5-RlF@VVU&4|~1L-`C;JPIj{PUM;Wv`n$K;0Bi(n^}T&aB72c+Tw$g#=}# z){{HtO>*UmE8OBI5mv5jE14jZFH$IGbH5TB$MQ7Z*1gQ-5sidWu*SoFQG@R{bDvjt*1c7ZOJ(pB2pbENPDKc2!|4=-YXL$S}N?m%-1~7nwRuaP1ovB zuP?w=#0rO>67xBXqNPxgk&=d39a&2E!hzr`*ikjfmaSYVgWe6-|kGZw)r3bGH6sU z{(kwodEvkIwD4$-GIZeQ#%w1uI%I|&;2UL}q}vu!l6F}W9Op=2$5lY%KB}Xv<{PUZnniDNSZ#Q+m!MF3$a~eJTzbRiq|RW0 zXhNzo0!x>X*j`;&TRKK7@;6rljl@xy$!wNX)dB$@;QL*FA*wu~j+V65W+pvhIxf6b znVrLKR>|C0OHpQ;ypU{3mZiFtH1^2kxt%m+nNbYw0~t_UiuqvI$vlO#?n7Kc4%6{B z(oLtbEV1KqvBI1@L&D9l*zA<2JW3k6GeDf70#UA%BzarC@0TI>P4i~rWGBp<%X~Z+ zW(yy}m<_j52)jC0$wd4gSO}^*t;Ft8wTr(5%g4rU+U(jV`FVgv0npe!%5j4mr^NUe zxFuRs2$CkG@5Y6A7Ga#aAVY;?r%H(NecDAjZ}9>ld2~D_dIoDLlCt(FyFU|l#_WoZ zPUJ?V+IcH*TuF*4(MHwMM}kR(*VfV?JU1z!HrlzB&E|F6d$gvS?2_(|uJ#VRv9p9^ zGm5p?SEev$a)3t7=&3voZ>W^TuL3O^K-n4&Gp2vj5I5sV{Qs6QSjoMjxtMr0> zBQo}Hpz1#jmS|hjq3u!3q;4TsM)2-rHrz!a*78x!ITKQfp*>8KH)j(_1gm8b1UVKwY zlwy&JaN%A21qdUu)50&4W&x=A^69hqzS*ScJG8V7`xVm2ham0JOaWINGZh05xace? z#IW+XGb|D``o9f)4oK}aII$;`{E_~(10C<4oek@hCK^Ky#1vgOwG>&D0m$Al4H>jO z2uA3&i~A>544$R40=Tw2u~}GZd$jwg&4e928%FiAT>tnE-eH;))~(Qq!-Y48l`kpU z@(T1N0j*6Bcs5)3sE@{*m@`uU#Q1xhZ2oq3}P>_#_Feu`PiA^ioyd1`f6WRB{O(jpM zXDKFIpZkE~*995)DNGWztb!_&&U}xv|IaIHVSFJafL(Ie^5_9J z3Y$u_`d=BEkGoc{^=}T;U&Rxdfnaux=!Ajd{lv)VZcd$C1v?B#hQ^Ak(}gjNd%)?p zii)QQkH7MvJm0cH$o+y5cOzzp?NM9qE?3X*n6!QQ5XF`_d2h5gGhqD4hy zX|el_m)Gpohl4jm{DXFo4_ad_ePCP&%7>AQi9>aklj#4A;1>)j{Y)UT)2eV#v?!2j zekJQxvpC)ep`*0|XI#W+?6d7B@77(NER+*Oi5eVMRxBm1V8WB;D~!uIL)V^`G$ypB ziDKV51&i^jaFoHa1=Oe9ptdwxT#Q40!X}#&n?C}G?)Q{Uq6WPUmzuRPuJ(*D?cxtQ zb+CK3w!LhZqDezJtrMn~_RXu^{_<);+S@u$M~G#`ypmnb_yk+bY_eZO!b!&)GZxUVmN8)${R z*3VA8K=Wv#HpW{>#45rW`Cx$A19t6T-o_nbZVucRHr+ML-Jos|*5p6~ZbIO9ZvpV= zZ+!jqn(lmmNkiVkXD1{=`T5B&&F1K-=;uBcNrogWuu}I?nlDrKJ++_JSVFF`RUxV- z{h+_<8G%ODfiP(CtQoN-*Ab*>dmS)d>45zhNclz)(9m{tiM6bgs%a80ffM;S5*IT6*CvyH(4PK2r38xMm*2`;<&pHrX17eJqXI0jXZ6k*jJ8@p< zyi>@_4@lbo6RUuizEh#{^~aR|$&}ZwY#Z9mIRnA%9ChdT&@=w)yYO{a%3H^>?AsS! zVzOdEAFO(AkI(=vRzYMf{jY(V{MNxDR#~;fEp%Joe0K-lWq?ZRyWwV87Xy#Gd?W(5 zBkd3ZHMs7;)$C(hQk;NOt$q4MrQcajRl;m`fej_1EC1}}%JjifaCe>W*yW2r8}e)qj#x&9*9cK>>Pka!XJDvPRH=5zZx=Yx1^g+J?gspLqS)>_xVM0@;!^Wp=@robJb#+D?y>xP^ZVq* z%v}HVb;AAo5oe{2gS~6%W%6Qv`>=Pr>_gAHlVR~q>0%K5vt=i@M-IO$1(V}R=WArC zY9L}_nIZxv@87?iEEII#;fr!Q=B9f`G@@?at);@2uKMWr&$#-lS|5r(aWU zGAwP6Wq)1tCa0Mp_P_#{H!_ZP6fJcH7FZ+N=Qd5QSpics8NZyzvsrr# z;4_q(R(P$pZQ#>AAKJLA@mbWIbNecp*Vrh!aZ5gSme5gagyF$=GF!-XkheCJ9VuMwRqIZPh9?vHKV6xY$ zGtc`!j;AKGZbt5>b=o|@fB?=Z_w9|lbU+?-hL|bwu39?HMe;niqK@1Ae21L0Rt_Ur zcGcp!2E6Bo+H4HRIXZ}dKNg-wT!`{fA616&)JwtYJTADKyN>dUMxFwTvF*F~2ryc} z86G~~HM|#fB(}#qK|Dkkko|4ii!IZI+JE_V^f3Y#3|ByPUYOQ+bkfBoY$ZjDq*~KX@KGnsu)bZ&I@XMbj62KjE50P0 zbkyE-JlMe4s=ufrM9aT;jnRCH*15mrs{Ng7^Qzg5zRC#Qy1kS!)JX9@)2Y>jqfJ5lU5;1;7X$lylGlCn?_YwQ&R6@6XPG@)ia{HG_2M$7evC>6!uKl;TFmFO zp_LNZ;^G~F_ty(G9i8vxK!9`B6m?Yc3Vi>Ly{Ky?HO{l1_xd)(0Z|pfw5%>{$1O}Z z>pr~8|4*zAePj!|@`Jz4|K$JRUH)%{3fY*O8aWyMca_eg&|Urqj*HRubwH6wUGX68 zWOGYu7+D1efyKHb3c2gm#N5DKPqi%o>K6h>PK==&ZbV8Y6C=Tql-*y&A>8?y1|aL8 zNiqFGjsxSL>k+?Y0T#O|8aSyk1kS~6Nf@2_k6;^f`g>fY|nx6t2zsUBMC)^q0f zxqajNc#(^Awc%dv$a!f0dp)z2&0GZ(9)iG?6StFQ9r-T!Zt`4lUUKB|^88p--^QLi zvZG^vY+F?$t<#;c!u+73ScwyHiG`|&F;z-5$#>;(s8JWRBDYU;a^FQfNqjS73U>JT zkkn3p3pX~T_Ds$cyl|~{TejJrFmd8g}gB_l% zX)aiIxs7P5zm+eC?X@(FT=W;|{+K2bS>m0j5cR=%40*Js5-n0uByFt8iNcB?tLJD+IKp64sCN+`=v*@mI184B4Pg%7;dzXC zj9m6i*NY+PaSUCxBsQ0A-h-!#@aOdxS6N>Z&qE@)-x^*`H0Jgt9*Q!1s?|r zs$MXIToIMNQSqlQ8*rdxMqu6Bb4jYx*BSe$L2GKd7 zTd@zL_Fjp`439>8R|9=k<2J(>L%yP}yXvF*doA>4rJD|8u4H+Vb#JZ3*gg|>e#9nC zoeYc3@V(mFiE3S4F0HAIZXs;js0L1kF`6pdm!;~O*k?0iteG0CA4Rx2#>qDHkoD`Fqo{|_9so6dm zT%upMt--g*R0nbrnr;qTrJ9PVNbRgxDY9I&QJdiv=*c;*4hN)^ATP;MyGn=CuX)E} zYBp&lyP<>%r0LxDZm7whIpaU>GD=*&N)@DOAUz8{7@$F?-;wtHC7T#S7^ZrZQJOi$ z82YLtUZO)r#Y{m%(!`UWGfKPfrC-GQJ_*V9$qdA*;@Tb%x8v`>@F+nkMar22a6z49 z(>cHo!QxT+eNGn}pfELJm<&{1gQ@o7PdhQOjub5;q@{C07$~q6JmS`LN!?lRH9@Xm z95Wa((j3d9lOIeg2ZNR|B956B#H={>a*o3n0xyP;8g$iy`u`eu&MwqS zC+`Q#7v9oiX;k7;bBw@@hYS$|j+ghGxEsVdSyeo#5_&l)!rS^UM+zE zm649Wo|27T62ZGFEg~Z^sA8aV6?{WaVw9IXpW1=|mbYm`HIOOLoFTRGe_*iVfu+Gi zDuHH^q$NT;TNDD9L*JUq_zQIjh1=EW;ul5>-ek`Tr9q&D?0*5!U+?}Xqv%Z*SXUrM z5T(=#cZ>>mI3zdHgB2%+s%8pNPZ6fv$4h%kmfS?SBp_%|A|4D8C)Bh}0xTpE;UG(F za)B8{xQod6eef7)0~;WnG7Yck#AItl)bxmdnLVsU@u==Q9s004o~NJgPMNz!s^7eD~FL#lR^FYm)6 zwvyV0DL-X3r1A)A1PQJ-O(i_LxZI!N<_xCFY3!;lqw0R_hph5QaN?-~*FSCWjbhXx zl8)uIqVfyO1)NfXL|(m(8pKFbq7P;thnTM>T@lB@`6=-5ODxrJR2`N2-jBO*ufjOKkjAN_B(kN7SZCC{*TNw%Lk&g|DRrk%{ZINdb)}l!I zpfszRt1_P$mrJQ+5!=52uw$fm zpp+D^z~RtmGXH=$mTR_HW#eZ9r$(PrN2(lxOYD00LZJ)Wtq$9@(TZ#BD^+RM{;SqB zF{BQv&p=0&0L4ds3Lh4dU^7PZ!*F+8{)M|838MBQz#gq^JWe+@i zn*=U^L>~rPO~||x8`4S9@K1|ipfKmyHcV&Vvo5)EIZnRzwO*WeikTS9;(@Lt->5^44A8=23~BJ(a;~> z<+1)^(!)d>sgv$$JZ07&$l+}IvW0!Dre3Op(}iYC&OJqQ1%~pDR8jth!UD^KPo%0` zqR@0h%Kk@jmmohmzjZaDWE{(BRCqK{n?MD6esKSDb(Bi5fMUtM<@J_R9qK&I-4c7* z)LV6Cg1-t?#6qMN$&DDQZGds+E|qOIT4iHn15VVKRTd;$_(w?r>;)blv8>hx5i5`4 ziO|Vior4izdm0+E0GU>ef00-svV4X+FEb(YdryaPPI^PwBmR`@@GuT3A$B@wU1a>> z#JB0h*dMqBvR>oJpl-Ym93UGYqCS;6|2xW^YWWZ5Q${&zP%{&smVQ>;2e- zD1N*^OQ7;4fkvAORREKh$MeOypkLJTQZdN#T1zBc(ppJRZ3LAP0;&j6zmciQDB)Z} zt91-Qi}ja7sMV$33lb-dQ;G?w$9&c|OpA8taXy=E7-Mjy-yC|tLW!p6zZ8F6W(jmm ziCP1_YX{`s8G^=k5EdMWM~E~}Kfpsit`on({tH!Rx=bwdAUjG#RSN1UDP-ME+`SU( z5OcY7g!)2)NU_#+Xe6H(yyp(@H;AxUA_3M@k9SM?2$NNX$#(7a>;(YGrsEKT5N>v7 z`;2%esc#vpdI#Kob?2ZDY|s(lW0zC|&hHps9ad|52RzX{JW4?jPSkey{zCuP+IrnU zfUO4nMlEg&&FvLX4EhRBZ;PP-KP==Pwo@A>0#k?x>|T6~Lp1T<31N>DO4F_;d<5Wr zBAh)%{Qd&05D`yEz&#@T&ocJ^dh=)HsJI7)iWdhTiMZemB0#+I4pHY7_+`t+EqXe3 zy{Twok3sf3Uc><$LFvISy)#&2db96_DS-f_86U(YBy@fp=3A|R*Q(I9R|}!@G@W1v zhTkhd6l@x&Y$; zY{&2Qp^pVh`?{bB@`5){<4wiuVqI0B{2TPS!w;ZRE0 z3MaIAD44UmpI(IoxXs$I3KtGf2;^{(fA5GR&R6n|wo+7L$rL2~R!y0t~JSJ=WdC4}ms z8U%Yl;sad&*FCy>_OEcL*DGacc1Zz%=z^-#ffXY7P{7T#vSpi7mvFg)d$IeKx$r`^ z>J6{ceIQa~&;xemPr|9hzH?mt&-7B@dRI`TsT8uC(06mQxUO*$A9)ZB5RJP(KUf5m zZbH976D=i9=p9GwFSz0$GH?r96yAZn9O=Cj(h8~#yYv7%7R$!nPN}E#S>YVYOeQ;3 zF3YVY9bm|w{ybH&5@8RZ3kZ^&(8%F6@2Y1lo60h=Pv&inF8{di_x(DDj;jHLm zy1iM`!Wj{`JF}`@d1!9p@nOPopZ=sD%5k4mp*mZ~eOHO{V{Jmqt`2K3_~PJXgs;eYk93UD=(`a&qp&>3bq};xu;N zu;zJX<+6%x-5`J+r>NL%2k&-H2_w%qv z?#8o<*)_Np1mg{aGY$O<`N=c!nS1b@`$MHxsD1G5+TC1f=-8dgpAHDAAvv>z!orcA zP%q<4s@EnJ8nYdkHmgl?z2Zm{FZDw*y^F)0XjBhDJIu2(sB8PQH>Wox|&w);F??oUZ>jKwXhwUGq+)odu1+M;>W+bsf7{!iVJ!I)bb<_^{@L+#?UA z^DF)XOGg-%{eI<1&H_xB>iwmM7XF6y|Q+vg{9%v{CoaK&0HL{)OMZBTRg97(KA$Z|ppYp;)@ zxuFM#Xv^^p*xIuRS*W3dU{p8$dNQ|_CRP``M(P}%JM&?i{~Bf*i%x2&K1R_7f`(5q z=CRn(+pUI(SUbtLbY<%}c8SmF`irv2wKUaR0X!7!Y=HAT4I}&Ui z(s;iOnqKw1hWhg1sI?zo`nH`_1bd>J?EQTDy!kY`C9uh+S#PvC1}>}o$UAX8Te{MD zdv0ElUDPhs_y`J)2*4%!xqUpRjROBKM_xYSRyyAYEj7dSK*?7#5C5A8h zQoHNt(e?2b^?jPCd5%30n_2$7J!YW9Ju#g%xhR`kW$ZIri+LTjGV+X*M;oXzXwW{% z&|sU)_<1;sN;U#2ZE}y?95XL6wMMg4XAorq+)|S}()R;P{EUc_6G3Hj|K;({_G9kL z+x&sc)}8J9`D4kBs>_`G=$Pqq=%l&-_MeOKuzj+*MYe5d8PYt~Mrx;QBzMv*WoqPF zM1%ovp_g60ZE#XbFX5%C2ZD&)rqsQL&?6d2w zXY=dgGx06<@~SiQ?Q8Sv&u5iu%*v_uRjJtE({gRTI!e5S*iFI;lV9a4J-`}(mp|H0HKZ(d!HaK{6&%pU_UUM|#IatVA1n+nlN17M&|F+}*`kxPpda1gJ56|s6dc68%*FH?7IvDt3FZ(nt7 zWuY&J=_9H47pJ;Ys%?IdG=!)Uzp$n%jFz`YObpycn4T2p5b^ zy0K!Tjg&Cj^Q29ome1F@@oJXN-c+K+MknRT&fLP*^a7~HhcM7xHep;6fCK0A&4_E zQogq)#a)cD`+Jh)0c+7bM@-rrthXTepevo)Tu|hJ25fThmPuKI2!Fyn1_W`%x~qkK z*sv_XWaUm#BYF)jT6Xw$+N=?%xfMTpeZ&Af2C5)YLtg|zVb;)4E=-9rYw?hD5aHln z&{;5&e4*|)lgchdoI@WlToZRw<`gHpq+ADsl7NJX;#h!==o0RkU%km4T?J;RO>x)w zy#uPbQuGiqc@tJ>@{H+SAw76XnN)xF9E=AVkc`E`sH&n1XfQu(9<<;T`L&iPbWHkNk>z>? z`_~Nj`*R{jwn)P+Q31yzAoF;w=8xByoYjM>veViVBtML}UVHw6MZKCO};rz)?hh^|Byg zwK1|Cing_L07CtP)+60vKJ z5WJy!38N{;&`-u=h=^XJjv?FRP&x!ioW??V!{l(O?wP!xI`XqPo`m->A@oA^4#L=j zAVY)_OO;+?g_yBcodl%#89hUrA99X3cg-HA4FRJPCU>BovS zW37|caPcNttomf&#T2kXd2aEZp#7BV*qDd*d%W%Afh0-rR1TvAATe^L_2a)Z55=m| z4Sl#GTh%wu3TU&30;)s{gE6F(c{=qfisUIzn!yA1#0U`^A>Suyna=ff&Vk7I%bOA} zWA24dE=A|BL9`uXn!||~-&nV<;kNFn*D0Ijl)d6!3G%tR1zaQWJzxQrGLGK?zcKzA zER*5A@bEzKO{4(1uqI<+RPp$L$2bjvTx+bxN91(K_(w+O@9))`2mVdK8R$~nEx~MSc_$+I>Spk|^MzX+N(kv_S9<|VhRsJE>EN6)a9btP4$`iz4)eiLeco zP{*2ZhmwD@BUYm}X(PU{OH$rLs#yy4tPOCZEy()$`PaZXt^Rg|m@U>(71>b|%;Z)H z=(KWJt?j~xe=Q=1$dmel0Qp6vlV6ww{KbUGAS6szBSAdxk(M@pVNW7NE*B!wv85Ry z#v0}O>Fb&fr=J)Q?lgdLRy=SQF(?~6F9f1(;=z}1P7)FcI$#1N49;a9u{8+5g+#-| z3`RHqaE9S|iZ3j<>wpx`lX1Eo(112=8hK2fS;gCamEV9C-_=Aj0&qEU9cY~1)8_Ti zqPgMs|P^ea)j#rXgB7&LzkRarh%49e49)-&&k(!Oy?HK zK(Ck*wH<`xpUhL31Py~r8sfGyEY_`+yeF*b!ND+Gn=lAA1=6ILZpSp)ngy9`bH!ZI z>(>FDm=GX{)>8wmxhZ3>_umd@gKHsSZb5BKsE!4MCBUWBmr?w6yh#5qbZ7zwXh&nz-|VUmxu_=m zFB&k{rFH#&0xERkMu!Q)-yengb?_U|Z55R~Ko`Ijw6rv2oIv6(f4-9JFp+uTVtesh z5eByYtPsaB_u#XL5p#1PSB8$XpHfsSCY79~df^w^FSoJoDS=G0_B3qm7Z@UygkDM0 zTgB)dVM4Qa@%V7gk7k~oXiq=fvjax-_YLBTEsUEX7dmoHiSg{Ki;2Uc=(%JU^Jc*& ziCh`#x>^+-3{y71+gLZ0*IN^Zujvqr2w)xfk_nHtvS$MZf9K)?>T!bvuD6Ae+BWLj zq;UZ9ftBUSN6#61_rSr*!dap01z{v)B zX&GVTlU50hJsjHH`5XCix};{?N)`{SBK3O>v^|M19;bVWxv zR!p*Qhzk$5DI4_XMhMBU9Bg8PpcZMg2aSU5`{)44Ie-8Xi{J|<&H^;6X)X!ei|~y> z2#R$~=tkv;#?dh2nZfzyu$ zrUcDOXnX@(3SNnqo4~#1j>L4@LL`RRM8eHhfid8~yd0N7s$!c>k-iwtR^0H>U8lG$ zT?XEu?EK~YR)o|vI4frYMv}+8)D!3M#*dKTiPlJ$D~ zt>&L)cWOOBM{}noPcs)aTm=$8e9rQMUeL{cZSx&wpoYEjwq07hk*s*j@%{*%;dB4a2*tP9{`9%S`FfFgj8=Oh%lW*8 zB(UUpeNDbxAo#fdsJQ!De|tU&wUuG>alLO_Gi}jfU#YuX7>Us?F_2tIUOR9$3U^q-M6VKoso;Wd#xX#0CXsi+GEg6~<+o;P?mGkYC-8GD+7 z+Eg6PORt4_F2Mh^rT@oMP29%G*z~{SGnqjq z{=unmR+Ro1r^3f{rC8l6!(31kEVzhVM9ffRFm|9AxhP>-??T*;Z7r)1hm}d6krGKj z_*8&~0{jOoenc*$>`-716hNml>=pJMTJ#k(b1e$H5P|#dX7bMG{C4t1G9?x`H8@zo zzKlW*7HC_{2q7uI7UR|{I2cd#j`VMX-}O5Htx&*i-C0P(wAym1V-bU>AWNy@uj8^f z627uI@d9DLbzLq_yl@$a#>J?!V*dEyciMWI9&h9%=f0xna{6o~T^azI2MZylTF-{I zP}#@(OAgD=QGxi)m&#wC-XL5&94W|%PM0S?8Y%~vY+L6PSi{PLWWkd8aBYJxz*f?qq zL-~X}_bO0nRg@1IqJSBnN)MzG%14ByZPlXUp*E<@BS}mg(}R!5Kg3PxFR8~bM=bBy z2Yjc=)@cSZhH{pIbVbhsT$rTe*1@@L;+?zB-aD#$rgbU;3IZ&y)vJ-3UosDGu51_Y zOGhj|cLt6w#@NkV%RCfJxJ3iu8h4&%(U#lm+ed5IP2EgxzB_=4jxC)0! z?$2B_A7Apz9{OF4I(WSyO4O$2S7ZHyfM!7?ueSN&h=RO@ebDrR<9+xCSvM`{NT1%Y*%2l$^~6Tqaa z*n7=(RbqM368Uy^R<|XW|6QGEyi_al1SEoi!k99%f2+nB) zmStL%zom24nmfQST=RH+`3m(y=~;oRBFb}Zoz<i2lW{`=K|NWbOmS-BEGLkci1(>Il8;G=}0b zyNv51@pidVAkeVTr0#ybn~hHrL21FiN7>cM1P;d8)%Z!IU(1*gaiK=pNy+WGF+@#Mwbv4p4spet+vz)yq4R!fC{2SZA4K(%=;$++5~c z^u3bAh9IB^#n+J67woLDNgEmuuu_i=@P7($%OJrS7DnzGfQq92sa$2*2bb8s4Vw(r z|KpX$9TChycc}`{+Pdc<8_3Q!^8zw01VV^E>%W*vx#?#fwRtiohYkAKi8s=RQViK{ zXukMH=LS%H>r8y?~2UE7&H+S zhkzvESf8wz;}EdAVbmZjXyRH1!J^d>h2dQhwG-QoI{~435;wEV5l*-j6_?R>w}f%w z*qKp%c|`E&U`g@{N0jmGXntv{1dFHl=&#ELW1&q7l=LiR8a^p4J3A^gL8ZWT%s|)P z$cwPaa0;3WVC{qBnN%GXE!BS1I-M|Zp!rE?XMbbDuH$B6iG_sCX2ZCwYCZAJ) zI%`kyX<_l14jt&@TY^`#+$yYE3ou>b#Srp6v^Ee82s6;XWT*#EXh5L(exiQ6BQ)0+ z!9F@mvR)a-WM24}DPF$FwW}>0#|iDJaaXzsYVybA-BTY`pB~TJ5^a1;hgDyc{Ft?i z$7)9#@8%$b-aSe!+o?Ik&zu83UaK`DAO1coyYJfFHA7$4B119owv{DN!RYXwKnb6T2^p=iz2y9PglBoTp&USpv+#8 z4GZh z4y^*x_Gu6%FS{s%kcJUS-wGV**|*=Zf5Om#K>$&fxfweLO}RHjwtIw04nTw74;68_ z#CHx$fQt0mlmTdg6k3rZCIs_TG`^2;O;R58R43x3b>Fh?=ecSsJ0(CyW*KL9KTH|P~_V%wEoqLRr5gQMJ2HC6EMZS8dy2Q(CVBS1%8fdV#-EcU&H|$1{E5QnC zw1UL1veRg3Zk23d3qI9y9Ycms&I~zUK$HVh05SIu;#bj=1A@jy!9@0BfE?+j;`g}K zh|P)lkoT`^ow0w(N&1Man(m%puq8P{7~u_jI*Yvnt^2XZ@wVsVeN&l`sAkq)e=KRA z8EHwP137P-+0kYdoN(9H+qHaQQKqy`k%Yf0yBj?+l5)4U5gIDFBg*tLFko5Kva_@C zW@Nr}o0P=*UdqE_cQtW^?*oBCPSBOTFn!bzer1{;U)uUM<=YXfLy52DnL4xn0*e3P z5;w!Ut^YKl(RX@mIg_pXb$4WWyi%=;`{sACRaT{9@;G;2hIC!SX|D{mtNiof#GUz0 z3-fjFX|bfa(u&Li$Qs;++>XKRc&W#CR9#lZ_to^oM?~4D%fVRPt6A6{x6{p`PE<}= zN2SyOL~o;9N@Lq-_C-$SI+^10hee0rjW+e$=f3e1PDOcMT&<3WA7jxJ@ zdGbOL1~f$JRtLb+Uh#2p6gQB8!C^!p!1E?i5* zV(UrPG^9D{l0gR>r`x!R`WT;7{V96ne$!q$HxZL|A3S;16hqQ%zQJeDNlL8tjI5H`6oGfE}J?~3scQL^}F1WwiBh$nX6wSI9I2VznNew!5TNSDFHD2i~xb1b5| z0)CrH=_!|eH-1!^Frb0t&@6ZzNl24ft$h0TgR<%6$7zTxl^QV`m_i>_8O5QLgtE#nj?fpv+ER2rfx{{8 zUdDrM-d^krEwUaGTO{_h(T&fM%(K3BI<4w6!PxiAAMi4xIERKwF;b%_w?!s=51scN z>qB1&jPa)i8VTV$gl%n7pf_r;@dvG(g8KMI!83}LXyOj}j7$fOBsJxjeN{z1$pYhc;>^Tq{V%n^m&6d1*c?O62=2baGCiHu8BcU5bGr$t!suMW-| zY#t051Ue9m-^i!OkDpB*&Imk=#7hOHOMbW91>h88jc(t{Lw61%CV0YqRL+@GTiX&y za&|6!ve~V%cn9<~ZRcq+UE@n223Dv%Xokdz{Gt)WqoZmY*ee!bD*XIQnAhe9oF`fA z4z*R*-WrjYyj|lRj$0$NXGX91CU0>Et|#)r-_5e)SltM1nHuhPpNIa)8Lcy}_pRoA zHpid3KXROByyQL~49-Hj4yG^sBQ;}k9rIp(Cf0nYyx$bJmprXM*ERbxb<}ju-ij#( z`aHeCc4W7^7aw@FJ~TXaw>$2o^t5byyuJ7HwXkM!u0I~_1(UbvdU-2acJO>!?}mOJ zG;IY2$H;zawR&6bztu!p^?c`bd)sQat7By6{k;TjL&|#qit+pI+9Fc@*k%GL1 znqepNjh6~As=v8ASd-L6<+bsG>`CHu@#7LEUu$G7(9FK*I7BM*X{|6l?geIsD1mk% z5Sr+zwwT#3@QvOU8Js0wS&YHK<-R8{S~jGz`j1u)RDj#%<{K+I|E_=hT}zw0N!c1& zO8m=+Ur0*)zlNCSASnL;inJ4ZY!~=ZN3Oig_n5^!qwfmD;OOGz; z?mWF;zO1#>I(VZK5zzj=op2wq00eadhYOeKJHdN;teqrR{XIHtHkQGdkjyW~K58#2 z?|X<*cZQp=ddo;Ew{H4q-zrUgm}|c*m9AJeKlu>TZ7@g`$hI;cTKUU<5w9|2b7rw{ zQVu_gx3>*mkoRWQrGQeoqcK;0O5|NJFSik6o%-Of!^kDwQ?RVz#bzNGbVl<5t*Rw}@IAZ!i-$mF zD2<}};Xq_K^Z*sSw~&>SB9jSCTaPY?5FkE6AOIp5Jt9c|CO)ue+l6-xgCCGQ|K2O% z4?5?!7pxV7O}=64K}Yab`~%j#ie6{^JVOt6nOpD7Hxm5F>wcY9D|Q_z^ik&=6&7jD zl}4RAJRc=qd0rIWj-LJPHR#Ba3h2YWiA@w5ul25e1F?6^-$+{Z0zQ9w-UkBl5Aa4p zoNsjo6m4Kxgqzn*d<_*EAKZO(v)$^dKDlwP4*8^PtbW6zd|Eo;e_+)K$QGcySh^DM z`o29tMzBO_G6in_|0_`6cJL?XY1`%lD_8x z^y01!*2z{T;`PQ|Vb6|;+`j`t#eM+7cEtxJ9~6cfO1~ji5el7-;BD_j(Jdjo=k1Kn zr>?XovYkUqrV>PCwvjtSMMK~U;-F^WwZ2Zn7OS7C2F){@THCY@5r>EDBJ<80RgBuQ z${98swP|PMXC`ZgKJ&M@3)-BWM&KS<%IPs^4DJG5e@;9Y>3K%Q;bXxoCvoe>J3m2x z{tYj9?=D0eLiS&26kc&@FE8HL3^$SE@f;26#HaV3bCJGUz6s30ZwXxMZP+Txjw#j~ zm5c*_g5{t6gaQ8WqmvRO85IJnSnqVx$t1`vFde>AD*z{u>13XgzE8bXw=fWjd{ zGK$>|F#+DeroZG>^L#(&=mv!YubE%b%bEY7ryE>O=&O8FoJ_<&6$iY3+_H7Syf%g54rF_LOnr{Q*(h3 zQXlc;4H5ZY_)A$(WG@wdWWqsDj%{i`sb86ncHL-8^X$oob*rZPY`?kwdH`=RlyJq| zbjdY>`b;zLdRTT@VTPDvl0Kp6P~+1gJmFim3`AEuUOW!`vbYqzD0cO%XJz&*48nNd zv@mviK2Y*8b)7GfW!=_&{yf@$o#AL~q8iYpslV0Y#=wRJ`LP-4iJ)e$UP@>`x()D z8~9LFu4LSjMX6D{dPM%-w#fas6NST>lqEi0^dqK=eLid&r_R7zlQzf))Es$}ee^#N z++Tz}HgVrqBfsk(Tfu)bTK?C}AQIH+A7^`GCF!UQVbtvKi$Tj}{k=8m$Dftvt!hc= z3oyVMMA90;waU3jMHq2*nMU?v%KZ=kcBdx*3HsybYfgnm_>bvN(M*W zN}jw3u-1cyO$_wLzQd-9yQa@=3Ro)8E$9JBI69?*x&i*gCn+UTIN21k;* z{2gOrv8v}prZAxaHB5y5Z7vw4vxsCfL{b0__Cp%MOUFXn`{^h&$0vmR96`<&D0VM) zjg8(1{|xKGG@yrd2}Ev5(A?pAqKgmpwnRY=`ZInCN$+Et*Z+pD1EfG|wIG~w@Q4F= zLSvFKJ^xg#_^n*j7F0qiuOumWTwIx}ie@^43`JN4DYdru#L!-mWQV*dqMs#yWGYi8 zRjdXH1Xx?!$RL=K6uZSpkz7qDEHt+p%jRE501;V(>bikfzg`$VOUU=j6AkiLidymZ~3WTW7TC$fkcfbcb=!3pF0A~u!|hx%#K0h<-){iyXrT|oLkiFY z5K)#c_%5-R77kyoqRjqTS*$`ukq7gOtbz<(mgKwCKsa(%gWr)`&w@qMxk|<9yPqv< zGS2Y(`XBxGqWj4|f3}^y_Z6<1Rw_R9&IW@G6w5<#W_HRY){kDdX^|d!#=k47aXiLgAEC;3LbADkwNfvhY+B_*Io&9OAiersv`F_7Sq*r!FL$_mvHz zM>kfDl@digth`@;lYG;B(|zM_k9VkD^5N#8Xm!o-3W>0GnehA{JC)IJQ|&G<5YXIr z{R^J^cM!Uht);PzxyQf9en3EkUpxN;&t-W-d!YgDCo5qOVWeS z3)*imOM^myY6=6N#zR2;W@Y_TtVT)bCK%WsVP-k>#(xH`W7aiW1Cy^S+j;$1k$$djB?!D!rI8wDB|OOz#6Y~=PLcl-Y@joXIBbQ*05ESY3{{|WBvm<( zTx))JwTpAQuYGS%BLLY<4ZSk(Z%8fCd@Xkzx&>4aC_FU?+UKkB1c-CIT}Wh9N`){s zkf4pbm6~HM1TQ281n8FCAE$%&2WQy8$W*(fe*U3+{zBQ@yykKnq$D8>bW}3*eqY5C zs$RO;S-G7!wH{_lTrJc}mb0utXFuiA?q(|F%9=AAH8k_m+h4C>XVeyfOWx?qY%~=S zn0A2s(x&Le(!r+a5K6^jnIcC=M@73^Kln7$oc6}b8sJ9A1 z{|IAcqCj7JWn9Yunbq3*^1PTbn9#Eiw1>RG{xYjV3v<0g140|!EQ-n7_VSRWYcy)X zxF`QL{$!;cAW9VVO++ZYJQ$$r!I}7^hg23Y3nEE`<-S>@F9R?{b-ey!?}7Moiy%2P z|3#=1kz}^GA1o6UwTe5&6P7n9C|6i83E3Ze3q)E_I%c(kAXTxeY%1Sm zm~g3qy|<8^w6```EnH~%yT6Zyv$VIcr>qWKV;Q(Rh~U%0L?kG@f4YY+yRz>Olr@+P z&uj4JY$y(>y$Q#w^ zyBp;Z7jTNzhNAPRm|CdvbU((5JH?8cf4;73=!p!~zhVdQyA^gz85CBjVMWngwk5n~ z&66-FZ163oi}?)I^RsI;QS|TV}JXQ~z06RTFVvR$X3Zp|ic3>oLDg}s)F z}3F}!fSt?V0l}zae`=f9qO-VNid{Boz4zNOQvyS?X922)rm8ueuVmrM!NEa{+ zrP?o03GdxHurna8e8gAFzwfA6GBprVDG-3Ia;d!X5Pt2Jh{kekZvjh2Mb(KXL>y_> zNuD!i+Ra~@E#|KhrwQl_Wy7TQ`q~E4Jfw1WrA^_A#j~|!l=1Cx7E+mp4dSAWh>vCWplbAg`(@VCeScjpo54f#xzNwlRGe<$ZIcUa{r zV|7^N!?HS`)rarQ)`mN^g;*qLnptE>Z9LGi&DHbBKIqqUIrVMZbUog(v7D23;TLMy z=Xx_*$6XyCmY6ry*9;k1FeZhZUpl!abIoNPvv$DSXwV%WB3Eb$k&hJ!E($C$Mi(Pg z5anh@zsfcD=PvW!Qv3~C2UF&aVBlyyJ_TspNN&Oy*Y{VA>Os^Swlcerj5M6JeOdvV z8d`61yP&F$Wlw>xHfhDt9wgT*wra4Zz}BhINimos&~51+{9rq_JJolA>tw-T`L*$f zc049NE5gck{2a4mQ|77c_p6*#dwUfFrBPk6dWZM@{)kb;AG}O;NE3tx;y==mCNcHI zh8MqFfSD?)N`P?Iz$<$KH>CVHTG7Cw0&(Va7Psf1-A(0>=k~`op)`NplbHM}7$b|v z@hfN~DM53LTD~m z#G;m%sWS>+oGReZq=Ox0NK(>5QX-Vc$N_)bh-))AhAx&MO(Jb6Zq7;c3;x!=;d~OL zjh_fY9>O2t7nlu{pse7o6A{~QgOFS~dLj8_{FhHky?t632C7<#33F6Z z_$DYbsvNSlkIdUbWCMyegc*p1r;&|E#%S?^H!&mX!n90&XCZq|p|-^bQLmqg#W&<@ zoz|$tPejz;8Puo)*r>)~>Q>|dY@FlO(OoezM-KjZXPgu!QN2}!?~@`vF6-=djt=DH z04DGVBrv)ZdX%2((?U#!(1{BmxBz7Vw<|#?VL@j~{P?}~B!n%@)<{4#+ z!-2ex8=H-EncPsaD(&z=3+S42$ZQPU9Fx+MW*~>m_^63^zZLK)il9-Mw)?V*ETbFz z-mXQ_c{-hIqp1unq&ThW(C2Ov3@muGEba#ARaycR*$|uu8bjMqOB9Q%9LS}u;2e|3 z3t7ml1IuP_kngu#(z^!?y)z!VT_8(N*rlTY=%?vWb2rHR>#o>h#0GKe&SLI7gwpnQ zC=YAW=XxdmIPzB4F2A$N8NCeWp(CBi@P77DkjpSdkg|^3d;f;!5gof=kfAT<+)-H=5az>=lI4Jg?ql)>P6*|BS^;+tuX2F>M z&XS-i`L-kFO3Gz!(j;x91Z>U3I74#J#3+w59OM<@R?tL5BP59cj^P?$38NDl1GV`X zhRX5=s22ES#y=SpRPd9tSn9Lf7`(DK(}HXQUK{zY%Ar=Q2t@t-yZ97FHpnu{Z_NXi{4j@;zXcj0x< zl4Up!%Ve88ic_6U)QQhPGAUBq#{#(8z<~g9s~+$d9VM)2McjmMPO2F`b1EMEriTT| z6q`UADrE$PXFVEyu$^nZoQ@oavye)l zHOZu;oO9vSIVK^^88UCl(C}tw1I5JSO2a9o-&*xQ8V3wd^G9V#F~EA{$56z?W<&S% z`Rz!)Y;O4NY?SP=k;Lr8vHJ+^J;T3z_0{ZMJxg;E`v?K|9N)FM0`<7c4B4vT_UPNc zhYa1|Jbnf09_| zcs7g{$XLdIFbEzJ=3)PlZn2~0Tm```y8FJxQE5Pk+V+YHe=fprM83B`)L3+I={anh zX0LR?1I-^(z@arb7Zq=_{|I%bIo|}ETO#nBnRwxuJE`uT#h-4%N{Ue(Zr@#@o_`ER zC%2igua9hzprA@B49cyZ(I1%9$XIZ&g}%rk1GgB75igSQ8M&=Z%UBd!YP05L6A%~p z)QeRa#T7`Wmig3_dJJjy~!q82kwy|{o>Fuu_d@v9L~TM4SxENm<~a?yXXtyL>u;@p?~*lTD}4kzI(rG+pu zcu;GOLu8x08HN87WO^PbP%$Ig&(VmS-XW@Q?}8jhOzk)L0cfoWhTcE8i|>0ucVaN`_|mKbRuT_b)|7r*_1j@uBrL2_#;GqTSnrD;@OrZYAJB?Qb7|WOA4fzVbEBS)n@-FkrAjosc8{iFQqkQY ziyRWkad`<*JV0DGwM;&*Cc)mU3Eih6_Q&^S$$0}>zJla=aN~XIZUf4etK;yeV|~ly z*nD$pkLEhcJU@sr9$nHZ4AzukKw5)CHcNsB8|zFR)~RM}E4^ztZ!8n1YvK@CF#-ma ziz01VuvSj9Uw5q-19X_3*fc-+)#h6gm=Nnnj8-Yl4(N!#pC|2NJ9JCb%8?qa1O|m& zXoO)FGZcciZ}dXPk8l|qR^tJTg_&kz)mbo^Y04*{C zHP(1HTg(2QAF*~946XZ~p|G{sXiHD)i0msq6()gM2+|2kB798STof;hUoK9|>x%P*QZ^$~J^^LCX$8l@7#2lcEZ1 z@3D@lh#7%hPaIa0e^^74tZY#Hd(;I+GuU%Fs~`_d0wu*4^JKtEB#b;r^gpvI!DQ5!vlm=JRtkxG8)<>(NqXeH4<18obbhel9W+6Xrj8% z3~7zO(B$E_J|kiD4hUS^A#%^l#Qx&#Bd)^WZf0-A8NEeqtAZKUR}Er7*r0Mqp~Tea zqaM^x3Ew<~xrNm6XHALROoGXPr3|O3X2&b*XHY;R1pQv{?p;i~67d}pee4c6{=P}0 z+Es+d-%yl@4cDK^M|z2oW+ntS4%SVq=PvC74b(;Cx!P=yRrL4`0jHrDdW-NAtY2x! zIEQf92BD+cLSZhnz;4l_7bKPjw<_)XQRuG@OLe8hZX8`FR=m4`zu~zFAfM_gRAQrjJEHj z(N|BxJwD>be9T7iE};!#2R6S(A(&eiQL`ZivzYC?EkXx2s>;o?bZ0;mvtRs92TOBTUS1z*< z9eua&ukZ}D?-r)yOhZ-X$Dv4EDEnE zav1cC3Nm>vekf-yezW}4jyz*94U^LmLBy1P?&(v@SNfc{(!%eBZ4ccWP|6be1_cmU z*W2f9lxcP#$Paawg?0Tov`LI(+#a{_i{WW}7?5u8c={&cwi*}w$qfG|$KMJMNE#>_ zxdR^_80M+yS&%VgNS$4J>Tc))4l1T=_uVIJhR1J#E1O8w;YqU|a4S4Kkd2VRUVCHQM9X3ASp%i@ox)Z@5 z*^gfGbv3Ey$wVOnPVuAepy?kln*%U53*3`O)Fl`gd&jE#WyRx}mT^UIw{5b$V_$_O zi8%v2L4mf3O$#X0yW7rg3WBw6V#Z$W!~{S4tc)|OICwR^?}~$h7}mwJ(pE}d?O30} z`Za`Ydg`+b@cYaL3HW|2HdC5lOX1q>DfV73RPS3Qr7fizEtttlG%iIfp2M&dz93SZ zr?d*WA$n8n6LO_-^~UVs8y-8#;{M6jcWg7=Xg#Jl@(c7_R6l@YBX2r=Y18J4=I@m()5?cRg7XY8rcFAL{pTcr)!WCeBG+*wCW802;Aj_nhIG8I?@~2BNj8DhcS1VUXqyqKy>WgOK3dyDeA_yniScW%bK8Xe{R%I~ z&MxcKXPszMmg_eW!T+P{o`NKcqBQ}RZFE^(Ho9!vwr$(CZQHhO+qTWAxib+L6Z5b$ zA`$tNv2vev_WJ(4Y|De}{8UmLUMy-bZWODD1Gwgl=C@h4!>wx)7yYtH3wiO5IB0x) za3y27>%d#H_v>8dK?S$Xg{hy}C$l6rypu|oD64uWAg{0A7ch7gNDuOCHOgTh*FiDK z8gQvNs_M7!SxoxCRZo;y0V)aptx?V~XIY^5b5e5 zbzU?}U;;BEc``!l@S-y}IAYEXquK!Q+valNSATdA_{CgoX%WhMSLi%pHNpoV zr-t+tP$=?c5u1MhGlu3s@L{4d+&HrZDkg)#5?t!b<_{T&)U}K&mV`9ksQ*M{f-Mu*Ncp1C>7_|go*uolMJ*2evBaDluE}F-#SUC z!ji+`urRa`Ja!pKJ{kN!Tb%sS zE=!w&RG%_Qrt{n=wMOmyg;Q6YniSsnr>Z5K>!|nRL$cW@;=@@&{S=qSMiAXaZD#wL zSVWz=2GHDtqx2|^bW4f@a3p^rtD`zoy-6*T%@21=LyS@3WlFZq3P62*LNj>`|UcL(R z+X<|`{$M*yrYU>etVXGKjAL669)8Nt(%2a9PxN^2keC|4gWhPlNx9ExysP`E!Nk6i zm8Ae9-T58a7pZ{Do%4{_=VEvCoo)Fvzt{KXahTyxoFt6!w~qP`{548u`Y-Zht|W}G zs+clK-ShN|cAVXQ#a9Cj(o%+8aAtFuEU*NaEuhf3be; zoWA;zPls6P${&8CKg7jYGk!-OMFAiF$Cgs|h*8Bb)HM@jH*OpTE68vIvJoDeGOxFc zFUZ~UY52TP{^uWf{rD96D0?q%j$2dkbzs-akWHhJ z_FGS!*sg(~MS*!h3dSn~)n)?KNPl!px}Xlw%6O#Pd8FBel3B$?&(a-zG8-ckj>TXO zjKSg{NF-u(L9Q1uI0_x5zKa|~8zSZ1D|j-gi-P+?2PgjH`XisLC}e|-09BbHj9c80 zC$|L?m|!eZ1t7+o2+S|ma2bdoEQD8dp8z5Ly-Acr{FD^SWG+Y^lQ`9|0H{z*A&n_Y zjAU3b`ws_l1)z3X$B^Lq7Tc956%wHpJHv$ZwD|2QE}dG$q(2pyRPls?r^ZH>4Oo=T zk;yLBYK2p-8E8YX*$Sc*p-X31wP#SvwbHCj%f)GyT%4O=znf@2i5D62|y?aSp`pMzov__vL_{Hfc4y_6}X zCo5hm1{W|RR9L=I#F^BVdMaWDp#>n5;++VF{FO=w+uU%VSPa=D!De1VLM`k!Pu%LH zo{h#~EabKltyTiOS09R7VBjvIzqE^3I*-~8%IfPUuUW{5CSstS3hv?_y^;iLbyPk>3mE(YFs533)7d52 za@WXV>`w+v)fl;DvQo?)A0)=3f+_*BaUd0X8G{M{^mK!qKa&oo0ktowqNP+VnuZr$ z1^u&Q2ID&08hO-kQ1;T_sQf@GqyvZo#p7{|KgIyWk;-Wmy)B5trWWTER#K1@4otq> zc&(J|M0_XJvy;c{g==&9rXC>z6jx;Dr<~`pB)HVHVnVmBrv81S#z9dCM6@3`JUZqL7p`<^AB3b90fn)!+^5Mt>7NVsHB<{7CSd-5=vSd!q348l`rCR64mtk|x47 z%`A5)QyC;;a9R0^LXZ%$qn3lh#uZOF3e%A=iyF{;#x@)?=o;RQv3$lNoRg#TMTJxx z$>v%d^4u<TcT|<+1QmOoZD0$h+1O!x*GX%t7u}l0Rn(- z9U0rkn&y4F1f;YaMHo|X4ROBW`ZQ2>QI;hjajSerZ^QO>>LWp3+2@{_sC!~;<3Bml z6X&eVv>(Cgc|$X>Txu6{w_`bK9b3%_kpRYyjXQhI`ZC#jS$_^SiU4;pAL@jP1ik}T zK{IuZ?HCDZ%EalsK(n!VM^h$gpDehl-rVee%JqrD`VYJ)<_*Q0S*aC6)rm%1Sb&Wsx@pQUxw!@rV6AzH12%|jRe&8}}+rtD#8|J65JNO5P--Y0vons9 zQROWw1QD-GsW#rFhZSm;h>c&j7G5q-d&|(0cOXXKBI$>Ujk@s~HM%?aj-=+)FsuZG zrSFJCq9GhU6^ZFfd5d9kR!bO_4eW8WBEV&u%3mGDk5!lRL*e9O}C2*aKl(5YhUfJ<2q z)&6T8Y3HXTy}-=1@xGqwR~$fc)xx&>({YMaPivJ4)2)VLlJV=@<;7z+H=f?)_268XShMk`_c0gBWakTY+V&nCQMNZa>?+4|F%N1 zqq)qOR0KtOa|Hl=p}!+4$+{$hw5r#s6GONxSWee&#Wz3+*`e0Zw$}Xe?DuBsBfD8% z42B@(*gU^+ZU1)>ig*N>UY=%^Y=6GkyuN8|Ydi-3M?%riq%O}#N{=j*e7}C%x(sAr z-8>TLYs2CWKcs}@1{F=SZ}HQWnQ>@$Dz6FvyM#lby2%8H8Aet-fZjU4s-y=WISkX9 zB*-1$y09q_W7XB%`5#lJOUA0?BT=X6WHEVIW~DTZz85U-bYrKxKP`Jx7d9GF4Ni0I^DQ&!!5X6Cyb$<LQuy3r@+^m4bfoj}^pcZGr&=riX@jZGm|Gq!hK;EjBF}MKXO7Lk^ipLRT zuefZX>NA)kw0FSNFDBAfi9FQeP7RpnGzKFn7Yt9wEeDwOMq%kqov{$^a)6|{u#hPE zYx|mZs5OTe4dv=66rg+}5|d$YqPJ$G<_Tk$&8x!A6 zi46aoN~JEVk}xU)J#=I$~lmJ=ME5SXVx(Xqi${6pyeu>qLadInKBpo>5CLWH8aL= zDY^OgTFCV_Pm;M(46{a}wV%K&+fU3T{aq*(>RJR-=z@WiMH7&~X)3R4Tf#(b5do=R z_`xS+J(j}Ue~V=nLB4pkqV3%24IP(E^5ML>fySJfO`2gFAj(Hi-~oqu3Kt;M4#c2P zG?qFT=?i+a01rJs`km>liO)EoX=dQVhA1PpIZ2ng3*1`djxIy#n&L+aPcuxl2wzte z%2ClToC;umE5(aa_-LF+h?-4Jg z%D#|PX>UY&Cyw!wNOE;?V1=SF&oeMa>pH=e@6wqfwtR$q;p+gKd_)hdHa>!NG>HWD zq%I|>-y1WjMIRoy_y)Nimg2iXU zRaPT29b**xhGepMN&;z*m+~Y0oT^r(zDTwsYL!s&O6g>QuN5%an+49ib#HQuczn2b zVmbj{oO82S2bo^UZ#9{piBt5*7&|8H#MpHP3e;i`+Czn`G?rMos}xFfexS>^;05{c zT~+9}wjHcwjY+>bNgrPJC~U6pwHWkZPAp z?tN&@vsh|0`|ui65Z;N#)`etw*2J(94B+H*E|Lpiweu_5vwOhRwYVtzTkS-r^zJCc zH$Ar{4b%pE%kS4AW|R%`Nr-QI1$PGLC1FsL1sbyd$BXCAI4H{|UVz5AdkGG5TY2|m zwa{6-6(gO(@e^z7YGGT|XSC@-_UsP_Y?!|odP^*|Xs-s*ne&HXha*S*$ujd9vv}(g z!B#cASI4|@IgB689;6XiZ~L=A$%d}{Z|a0Y%fVam78Fupfh~AsT$sUT83VXoJpO!`$m{&*9fF%mxfU`f0re=4{Xqcc(Sj*#4e3^EBHHtTL`Bn%5YbtM;2X# z$5$%j0*Mag-58(#rd$gSSf`4BZq7I->;X-P-Hn52Oneie7<{h99dGcYvgk`g8xmF2 z2hKbogD*bUu8CD_{oAgABQpup9&n?ZhnNn8m;M%BsFRE6#}fulZ3~gahY{(8`O5w8Y0=1{t^%!CTuWoC+hYsk2R$_& zK}h)VCEpi;{Ks0I7gD^uz>vCvoY#b3-0#D#?&hYq5Lx-N!BE7S)2iIksSeN|wfY_1 zSPrM*i=6}Skut?@Ymxpsjz zmo(2PjYN${d_hu>E(ZN@B<1i(RK_>WH<6_p=$|OnEy2FODVJ_nM_Qbg@+%}$-tu_D zwoI|AifsGuWR81-LV{Se6cj*zBf;X8QRB%kHeih+0jk zBWVr|Q1XshX-Juh$)4NN@$xOC+6Q_i%Y^Lwz-jDDRY3f)dJsA&f6w44711_`i6V6j zUhWAR5T8qoB)2q89bQ1VHWb)G9q>2HnY1qde+g>HF+$J=Tw9mf3TY~O&K7#kGaQ8i z@0W0EaYeMX3HZnCn-eJ6C4p%6wZxKpvD`rdt}9ojM7I&7;*vz}@q4@UmS6PK>M4^i5) zf!?$)f)6_&QPTZ4~rx?4N8qBh7E zG@>^5mT~xB8CerA4QjI(KrsocJB$_Mo#4YSs@;!ptzkEVv?IG!JpWWhsj*pwZ=ut~ zDfOtO2~9eTT_S=>-pzkV1QeshXJWy5XOd4>4rum!EzEIXdWcPW`VQ@uzKb);EgyQG>fBo zFtgTQt~pzjS%NeF8l9-0M!dHINo?C)dL+z~oKgcZAZG@oU{-h^nU|Unx-km zg>6EK-Hv~Gx@FU3+~>|l$o3=>WN4DItnaaaSa64c^>xZ7OL*r=QlD1d=EWf9WQO@4 z#cczm*B2DLxHl2&kH-kB4qvQtf+XMO;ZG;Nd=YnjD2i;z_jt6TH{o|jk0f>gO7SZH zz$QZSe(ADk`;Yvf3wy&M(S@(Z(BcQbL#9AoZ+eB%7Lz1QWSTk|#dSzGQpOy&tWx14 zq4RhJWqXxc5S$T!$|x_e(1k9kQej1yb-QdSjixmi;pYJAZY+xi#o0FynE z`v6erdCPO4yi5KrIiqjj#%+j*mlAFg8!qBc6{Bvybg2!py%X#+v?6w)?d0HK)B*a= zVz|clWKCv%mUoVTu?`dl19?hFCt<)-WY@6J(mxf|>XpVYD6oveVa!Qy*_yKRH6Bl- zD}(j=&{rvS^EKas=n8mqHleWZz;NXZqsJ@<{2j z%0xGw>)CxRuGDU185(!(?V%~d?Et5+vof-9m|$LhfcBZJBHW85E*Zcx}A9#CB1_qIGgz9v2&^Lep0K1CRX!v zs%Z6S{scG!8qf1UnXKmh>A-`btl|V&uSM6OGdctQ3Fl3(`7O!L-U(jyNR@bA{fG{1 z!+fqTq~aXI`?vih^e#Q4ob1g&$j6i^#y37s?Q}IGZ^8;NmdmObX`I^8RRXuSa~9hC-MX37RMO2+oC3%^R_`a@nm0IuTlG`3Cp zf~uJJYglpxRn(_DYRjMTc_lxfP`Om%m^kiJs81n|R90EGL$d$x0|j z$4$M0@%IytDYB4b7`11(TDO0t^?<%8RDTnYRm*zy{h9Qdv1<0HqzF1AcNtq(>0~-q zAz zUk0r78yuKKj7_VLX%2KlG1PYw(k#(`3xb*RxlTHNWr;o2A(K5!+d5Mvz)5l~>8>f# zV5PrW03BEIgw_z0bP=d`AtE^fX?;miIB3a_t$05OmLIWi=uDW_Cdjdp_2Zdlgiuv` zm*a16;8x*QYNzhtM!u922liaKfr`C3tDuCzW4PCy2jvhf*&S zsb~yepZm8z3Wy0O4rY7x&h|dlipi0!m@6swu z>XkwW2(1RcH26sy0RCWgvJGSHnFW==W@mJ=DXPI?O3$`7I%`lu!_0I z08f?VonZr8?#XIXlWO!wsx3g3W6U;y{S*Lq?b{rnf|Uq| zB?v^i6t!=b2q<)s3Wf$)&(w)gEV|rE%+31V&6b^z4rA;$sesp3xsc&F+N5O0 zJans&%9Cd;C?CkZwQK{w{jfUYM}%*{fG9_dZbgJ;F`v@ zR!U;Pnvn3`{_oy<-W6#uYblcp4h$ojOW8{np+0^8C@N4aHTUu;5Yq((ByPnZKv$K3 znMQucM*{n-Xa}vK4h?0Okd6f}lpb^&aG$a*BlrM)bl;E?A09;t%AuZiU+^$Nez(~^ z4Bu19j2F$q>oyGgrj@OI>Vol24a>SRn7}{Z+Qst4Pyx3yUa171aA}QFUJW#28K^FMOsZ&B$4_1s*^jIusKLYT*q6%#{)nVMEyvr{Satn$ z_6JiOz>UW+QXA}@|3d2~@1|?(YZZfEf+rpq_8A0Fg$Lak5zmJ_(CHFmr#_R#@pnSC zM_p)Y;kjUQC{%fKZ-Rpu7WT5Fm;vs)8v2qakEzKa|1gp=+q9u73b0Y-dUQ6ZcQ%xF zHSmf}G9OFGC&WQYsQ4v&Cf^7Cf!5&BE0`DC!Zxw1a|yax3BI zP%xzC4SRH*VAb4e0~AaK5wo`pakOBHv-CFfbIiE5xpdp*yzn1*-EP9mfO8t(0F_^Q zuDt^IckwbG>%&dlNKc-O4d12Cq(r6YdFNSn0zZJ(&jq`IwpnN?mq97_9`n&zDixDJ z&oy$w%3PZBBmgUnrR$mHkC!Xyp)`6y(7gFOT`e$8busBs!OHn=?g0uMKr0K;tH}6;89JYms>r~iOc&eS>(hy=}98?+6 z9xF&PFZOy;ISS15@>*mYP_v2L(G-m*AGxLMHl8c;fw0B^Wx9v32s+GS>tc+4hi8lh zv4yqQ%?2rgbi%L7e|h;**U5EDf&PrrS!+1Q|Yt@P;CUH6xyvjrNIMX`ljO za{>zg%L(QhznizWw<{JzikR*FzH=Luw9uZk(2?|JZPcKR3o(Q5`ri8wJ)2-_Ju)z4 zenQP1VVUZ!YqFu^$;mn3Y<^<3ThS)K$fbqZXzSg*ed*<9*;~5h-EC_e zm7QDl*(E?>p-L)O<163#DWW4OU~8S~LRovRYHHm2sX~T)$Kj@>pLQIi{U!($3V{3?T66L z_1Jx3v*DEv%S*uxuDjJja~^689@oVRwFR?OrQ0t^Q*H3xGlI9n%1WKtbanuaeY0>v z-1%tAfB2l$2Ysx`jNg7x$wk@%=XxjVxP5fs-C_4C^Hu%*)`G|3a@R34?zypYyYKzL zl=m`Sv%Pr}0Z;AmZ+Pn6Jm`L!{^kn)#`9`Z#pLUGYK9}*)xWzZr*pr5WAJqJec!DI zmXY|e05|PnXj6ueBWivdtGmbhVa!6gD4WCg&2uH4I^Y|7LEq=>`Q+NmDfzbPpeUwW zJY$D-zyGcpoCkMcC$`7@Wfauv>%@fCefM}`F?q{l#BtlJih=Oyc~H%0;~~V-)n(v8 z<@)<5u1e+Qfu&qzhxJxH=fOn+9)2B1{bA`f@1SSXR!hrZUSmg+i2>5EPo7p_aMQv$!gF@ z<9gS&J0I)9@_s*VYvX_`qDkX;DEs1opX#umnHHe@b~voRODQJyR(}yb>Bf8Me%&9u zAo*isycl2hfm!of$Q|>uAO7xA{o!oW?;~>EVfAbhv-ZC8CeeqNM(SV8l|%J**p~90 zsZ4rAyz_1CZPtHsaYNz#d0Fzj=*2*{iLveQGWH~(?b@_|#&fO7Q+t(tgO=JHqt^8{ z-GEoVt+qSUY5Yw2yxS_|0^dH_Pt1M0-b;?Bgj<=~eVjaaM(fEr*m%8yHuB^CMCuf5 zaZY=$(fwn1>uIChSB>SPC2wn&13W`j5>5NU<@VU{Fy2af(`xeYdXo~(@w_}@!}(yp zl=C^xgNI=^ksPBijklp(cbFlBXCCrEAPWBhs= zQ`2GwC3uzNM(2*z$8A5X>*mP8AxGwY!28znzQ`=*#W#QV> zWGX6!B4PXU;Vi5yp?}0)$4%6|%>Fmd9Nf9OgYF=o>&b_4y6WQ~N~4D(u3OyQsBOi2 zVib|Kq%&s-JL3EKM5IARQ;WT|-u#geJc0J@```BCDJ}GI&r@KRna*)mN|p9k2gk?M zPL@h*K+g|Z4ea$lXX}m6C!v|DkF&wB@%I&4SC^qlE1Sn2Rwt`#Jf;!mrjYOl{_pZ> zF^-xpyI6O(GbT#tKRR~{6Eilh=35ubK{B-359($f!?{g4@QR*ggeS1wRWr|pB{d&U zq8}|E2@&r`(G~Ys(375*Un4u#t?jh|-f!!29NFBrC+PxZBHlfBFL*cJR%8COJ7Zq1 za~Cd)JFA_xEA=aa4KBNEMIzsu4pYY`-mMco?yIX~H9L225GTYuJ~81n+wksWc4#Q1 zS@{*XOA}AAc(W4{1U{;?1=c>Y3m#!gu{LuTbK09#DJJ~h8O0jN5d=L-H90VE)b4EX z_s(6G0iGpr3qWs8?rx>p!mOqOE~f4*h*ye?eyit#jcwHK9*Z|B7f-^YE$3cxDmqXy zI_TFfqbz*`{BI_sEa&cDq@x*(uZt_OH7k$oPB8bvUEfNhD`!W)rz$E^azZ?#w7sG3 zkKA`Y@MBJoIvyFC``kj9ILo+VSx#AZHEHKJbgEMHv=>ohSI)fRwwv6s23^XSMa)qT zB_5v%Mk}74M{C5pB0t+@@m#nMUjed8q49a}aKXk;Z8A$*TKKs&YVg3^+O(&AJ&U=m z84kI-BAXvIx4yriW?-x;K~UIgtSNiuCRV}DJfoRY0%@OaR<{*V!tkX6e-H6DvDT6J zX(Lt>(mE9f=HOvF+Af5VJP)%0u4%iTy-6fzB3A~uk!Z&w{D?T6JLJu;MXVlOVm60u zO1{dhgTGOH3Nu7}%KH=-(K>)V+iW$LaCt z@fh{!_UQi%WFsgDcC3bUi7|#A2x5I8bmVa1OCv!K^2`0n(l29`%B0Drd>^#8i)K~n zl&wVh+UKVyTMkDHL$oVu6}Cjl7&NwPaBXufYL)1e?o{iP>J;fz@l^HX<^0=C!%gZO z{)4oGvV#O)*Rgi7rnOIh2YlE1TJ}o(QR|xY8u4238uFS#+GlV}zsB0uwI<|zA5%z4|kLqN$^!-_-2iStZW zwg(qZHaI7|8}1$UBj=IZ^h5j!=#1Ws+{{Jx3+D(Yo;&xw=hfTLL&eF9uDmTT9bqa4 zHV!t%B;>lkTi@sIVJ@7f^fD-xf1WN;D@7}NE5R!ECi*6dCRQi=DpDtjtCg*Zt;%it?)C0dAC|vWUxvR6 z_zfgC$|jm8S})j*4SbM&hD7KJrV1CvQbqtoUxqy}^gdrNlDlYiAi^YjkpW;;nkE+Fya51`#;OM#%}|HNCG&P0qdenquF}$Y!2yghw=zS5QvI6>_x}kBtMDb9286={=;xIAa0eC(VvREYE?bP=66EBNf zgUxp5i^t82v$3=52=oOa5)aNK3@3{&7I9!;3Ie~QnXrP1VgqRbM^Uz9ndOYJ}glOv_7{C%+=Xj&P$dtK4!rR5kIE2aY%;aa6phV=HdaSG#aFr>2W zJ=J+yGrfX|y693B!^FnkX600U@;lf-crh_&4q(G+VybnAQ{b9pc9PpSz`=uTm|C*D zA!0>knX|Kc6X_5(88*=+pyk$HjFUrUiNd&UaNh<@0$kn@vot^y4ib44AF5;cdaE@s18teh^y-q);-fB6hX>V8CqDA@!d$nxrX zH1QtQVQj)?m~1w^pHUfm1%g^E9Ed3tX_RjwQFZpMBf1Pi8A_~gCZo1+2QbTttbS&) z7U+ZOgL4PgYTD$QBl@kty=rt)n?<6iC`m=#gHee2@2h`b~IwQc4M}vz~a3e8JX}_@|Yz zcfZOWVP;9T0sE*cxoN9u_)GJ`;a`s!m@1fa6Ayg=CqhaMA?I#i@UQj9uSa}sb2_~g zeEk?&)0+2f_gls)*MC7#%}07Ap?aK~%3fI8*PC4Nu=~=^1E!@L$c&D<1o7ckR?4-?<$z3!$!_b{!Hi z%UTeLdj*V6R5#WXISHJYk&!Geu#@kX$;1`!r#bm}1KZj5c4;9&wn6OIvsq!`DM2Mg z66Uaa5Yk;x<7#fqSx<U$PJiW>7H)p`L?1=|r-0Z9uOJy%+gJB= zy)q+J8JIINWFM+LNoA5Br}2D2AOt6)K+y(|eMmAwXWmhLiIF84@STtkS48xZz49Um z+RUO1#*06NSDhCKpAP{qbo7Q20R{QlZ)poP-W&*R>3{vOc&GQ9@WaVU08mYRU z+mhMEU%Sbt-?&h#o3%%rCrbMqP)+SqfX>8F)gTidv z@TOjYX^L62?4M`5+$G##tmtn%WsVN*Z2H}4g+ld!2#iXZM3#bKk*uLqVBBFB80i2l z9PsvnWqF-bgHjQ!Xqil{_>b~if1z;(9Bs3gdNWLk-C$YV&)LzOG(DQYt!}&W55enD zey8QS1cLV%Ye@M}uuq+89n2U_Ha!q(fpT*SW3}hJb$ZkN?4W#|S@ z3PB{0VPju_J?pee2>hTPd3LD99Sy%$Hb|Q)-~vS^{j|-suDoeLBil6?SEi#8{IE?n zUg&Swuke+z@n77inj7mCiQFYJRI7r9jSj7!r}==hyUx^H1)zCBaj)CVV$lM`Lx_;ZN;W?oq)r}wcy*_p8!+>b_q-x zzf>Cid(2TnEumYOB1Od~LO%%8KPAdqd{eM8MVIu{-RGq)gmzN|-J#ghp*LFY&|2T< zPe^R>n=f|q%cm%Qhc!Ch&`;H4anSaQ@hw!NT%%ku(eX{kopF(fr%^SAQ_UeF^QtAhmD$~_&FE&>Va~jr^(D|lbU3Xv~t2(QZFj! zDfN@O3+FHnCqc(3gv8S4O{Gid1ryrpp>^Sc4E7XRPZ)cn8}3VWx_~qjB`9~*fC&*1 zL;P%&{m(1@MmGu>^BR&=nOen_hBi6HkqMPG))RvlH;BiC{$`M~b*~;&dJZv9xt=b* zCkMe*-e7D;G+g6OPFC-_rHD_-d$xD^?P?8nSxagV15j01BHt|>S6m|9N#nPU!l11k{TeMuZ9fTvxuju$nhwCzQ%Ii0 zS%NHnqnRZ8Thpke#omASyCuYV+F^j5m1M^0x$+)KMH0k$CSNE7w~HGRm_wYjRR z!(3;C3HppJ_?)KHKIA=bHydz+!*eV=j8Gn^d{4abcV$ev-fffy>juK3nTc~}^*i+n zjzB6>(G_7B0o-T{Hlu}g9XArq>k{i#W++<1Tx&K;9Y zS?*mTD%k0r0q6>(ks`AqQ5=(lV^x|9@^mW}X@#BH2GpwyV9#^N4!q)p*InRpG$jNC z5xynH33Wg$*3^OE40!ti7thfezz2Pt83SKDCsd&_@(|>A?*0fNag3lv5@6^6Bp^e8 zLhfO-M2;;?m0pik0FDE8R!j~NZ;Y%U_h0zvuo;v&lA=l^$zG%3h=H4W(YYaiM!57_ zF;RBuMjjj-_*S?SWg3bUU?t(-X#l{jC_)Wz zNw7YR)S!`WI0@4VssV){L6NR7=Jl{`NIU*wGhWh)Y6MkbH`DGhko0(XK55KTuYokM zxB+~772z>JbT)thIv6JaLdYz@n!ZNrW-wQYVL0k=V=%!o z(r${G6c5@AGhd!nwv^(QI+br$_jDF6*9g;pojPdlhoV}#LUE$yQdre%wOOdbP!*)# zu*kHYjPW;tIz!ED2XsuWz^qONtlmu(JB^agvsU?sL4UAI@n4T|RBg^A zF1ugE;hcHEl@iQo72PKt5S=F-T_gewh(K^1VDP9Bv%NcVM}+$;MM+EF>aWTjKfwK)x#)O_NLZ03?mtOQk#t4TT5t3OV{t-GTG z28?Qs{_Z<;9-nAE;zU;}0bCD(Pj7A*gC5dqIA)j~x|Wh&2z&3)1)!f7yKeYy;fjwdkY?9^-YY zW)@zrpEe12uCM5OWBr2zc&~1P`aPZ=c&=TK<(?$$&pnBlp?eYVoF@Mv1w2ldo*J7U z8}7G5K>+DP7uwOabAp{UJfri1pH1ewwY`*`9uHM%v>VTt4WAi9otn;vipR@`dw=Wf$Oe&w}{?lC^XYG#xix6jRH!i~O{r%l6 z$`_ySy@@HCSDs4l&!8F+9-o$NhdY~>4H;_dj!$RaI_WR#6bq8<-i|gG>XWELrTcgN+kp2x?-q0 z9xkRtZuhH?hPts&)zg?$Mr4R7EQz58jh!0|tc{ta z9yZqS@cwKWrVE-;k4qV)e+x$Oc-75sU0qwU>oNSBoE`>I^#3b-OMoIM>{S|m8UQ~8 zo@cW!AcTO(cPoV${`wbIRra>efz&0Vs1e%ac$#JBZQ5n}a+2$5(m@0flht`%-P4@@ zeg&}~4UvDyZo-K<%hq_vg}s}_z)h;hDCFOSG^xBf(}=}KlX~&iQ~ED~nf2&ifbpKy zh|>;h<7B!NZGPchaj_1WKw1fIU6mY-NwBHlKO6H|d=uY{7rogqo6GCg)tIGwhTm9V zdI4y6lG*iCkJk)wia2AZa232!cSLr%ZZ=}Erk(h_aTSfT7a}?vRX94d^hi8n5vXCm z0N)Ju@foG^LOD6DqE))mw)(uK%*vs{R3Xsy$3m)Q?rN2s1Li9hm#FvaeD2%}HCp** zKV2y>J5VA}6zo`X?wdB)72$7$StL=FXq{d*De35&9P`Vl7<7guBqGi~l0Lg2#4Ix+ zVHqrl6$1)0f+0UM;2qqmp6}x%7oKkv8(@Kvj!OwvZKIvuJ9SIZbs4a4_dS#TWHNl7 zW0-(A&IQO1Efc}$DZqei{1y>4=T~FpjxZkswJ6SNdCv$VCx6s&$_e6RQgVeQm`a!t z7)Gf|(_;3@oY^J4(Iq9WiZZv#Q?>={WDN2KOKlV4ekfuxa3x7H%7)9(X*x8CSl6Q^ z6eh@02TmDPayWN}@+?9qhRQ`ST!=(p?P3jx;L~0Dp8HiKn zrqOt@${2_`!+Z^i*%D!=%0q|6!zT&DBq*h{OIZ|fe2YOqBSyL7v-YGm05gbr;n##Q z>A#iO>p9$8!{eviqILGIKV@VFkldgN7(B(&v6*@_NZSdWH(%4(2k&eG|9HLh`Lc*` zoaz+;GHkiTE{cVS^v`q)K^`v|W5FY}DkXI#d5&a(4DReY4!g7rIGEg=L^rHl=lol7=-4NJ9 z0sHU}&~+qA+HqGj5mEsO1SFxk!aSLNz<T21cH>Ro7g3;mVP+mOQX6Jr=`^dq@FviA z&S0X0-O>HFjn;tWv-AFvgoX9X__i79SX;7svq+j!JKj{`@0E8^6RwG|>g?ZUWgU8t zg(0pQsh9eQsA&jHM1$|>K7z2n-r>HnU|6JWr2R1bC>Dwr=PMtISM$$?UTCJnB3-Fz zSO!0n@c#hMV`A&@g8$DVmmMCR(nksaQ2)D7{u2W=vbWT+)pKz8kIMExEKn~`NKcfb zw;yX`G2>t_y?8Y^P(8grljvxFoZ~E6GcS!B1Q83csz}9FsR%HcEu07PO5ehiPchtRx)#+tR{nch~sWwN=&j?5R!h*lhB!brlrZvD7ul zwb5lS*-e{r<}`C(xbc7?(@wfUfa1=g{AfI%R_%nL=Oj~O;-#V&WpcM)BoU;Brm5=O z7bI_SQGT8M*j80#Z(-5t{dPY%R#jzG(Qr>zPj9gSea3{EmBw%3!Ax0caZ_b48-Hzm zGhuRn-FD5E?JTP?mqcyI{;zBQyxX#Ub}0e%c2{j9d%{E6#fW3veH!N^6;}6PrRBv~ zrVc?rWk#a?S|dAj>qJ8}wA;ygLgK-Z&LVcG;L?Rs)uvKimmP`SoR=H*#*C?wOD z6kdGVLg0qd(doo!doA5cC*uyq{R2PY`TDvp4Yn8_=^tAkcy zdG22@3!m);L)V+6n(bNY($&^mWbD;BjZVhd)ns9oWNf4reWaO=*65>hX2zQ6q&q_@ zV=}T9^TU|mpm zbfUTSv@v7%x@VlDigga(noi1{@Vld~v?i{g$y7-j8<`td#>VRFaYvU%W9G&ZXdu{H z(YjUD5zEUU+`qb-Vg>4A0oXM}@Gm533w=7G9ru3)SKVpQt3+QOjl%A_sY*J{9goi~ zDOd2A*B7@p*sOb6K40flEV_e28C%KP$G0V`JGiXmmfM*XOjWA*R9E`b{}%v?Ky|;3 z_OS82nL=N0Hs89cr>8s9o>fNyljgV5f|SE{x;nE`n#gJ;h2UKlfQc5+l639n!w=oe zS;=ewl61k++5Ch9NAhL{R)EhQ<5|BZldU{}w2q###X&6jxsX|3w%i)&kQ&y`lkLf7 zl+mUK ztJiujtE&@Mb!97HYVCd9g{t(Lc48i8LOMj6QEtr|i&3q%y^h0kd+)~Lh)KPf^ZL4a zGkF;4YFcEnGI)w|YnW8RtQ19yme#K9>K=E{lkYk|vtRo`4TX)ljHfT#Rd7hkvI;f9 zwS7*CL!T1|?RjRm)u+=L@~J(o7H$~-`rfWWMuJ^gbO|uz^6pHwv#>_ws{@HD=xy&_ z-@Y+#PxIQ~P9VoK)_!SjFRUrzIX=^y&2$%g64}1Bo^yI2(5`Ggmq{1M=3A*@?Ao4= zzU~ZXdpx-i$NLe%LoCzWa1eSEoEQA2-cWE_@KBmDcRuf4@Xg(kZ|)9%bNBpj?wMD7D}rO%QOp(}9(tx$`im`k*nR2EE_F!2cMy-=G=6L%118 ze00R*;QkJ;#Pk2?2nE&Aj*|2bZVNl5vL8(d1o?DdW(@ao2Twc{g84yT(T)(GO5W<= zf%Ag#o{o&m6+RYuiQ=;UnJ$<6c+_=n#Z=0wX8PU!D4Q+Rp@d?BON$9gI41bxAvQx> zq_OFf#K8OovBb%lRhRYNx%sW_AKw1=hgsG0Y{Jjkq~Ej2pR>bcg&i(evMF*En<}g9 z2-(M`xkFJlU9CeIim9$tOjXh~Ya>{V%l!0-f zA!AT5!T~en@z08~8t_yj_`#D0Jo$`(U>ZPV2r3>8HNfALoldldmXs$Z1B9DM(2~BY zkm_!>@Z<*~Z2G`BqunH&5Cu6R9}syuU4}<9B5Gx1ixM*1Dnd$>9gQJJ z^C2pR1PmVt@R>OxpkHY;R6;8xeHL0Z86dQ6CC(u@NYcSOo1T{sNB2Pez~C^t2hlwk ziVeC(VuSu&(Y}$ozL8LD#I+|j;@?}-w@02*+qbuV?-yg0+P<+${a9se<=Co7AC+AI zGh9DBRvqg@14=s7H?}g^H&*o;qOa0pd;w;C#@Nb$F;LIa`OK}v zj_9)lIu-l`8bc815qOF;8sVfoE$IPs8tf?wAq-w1j7hwPY5TG&uAr2A_r;ZLoM@M3+e^*Rx z-V;-|?uC?xxxS8Yea)i`di(cb;fz7m7!Zs-9#R7}Vh9aJzQx$vVeBfHJ3M~2QVA)I zel6LO6bz3F8ES&Lv%(KMn+L(oE9rq&!{({-Of+j~)2s78Zeq&m#q z6-EdOTNyAvAg+y3eeI~Zt{~4c)Pf;&aDBrJb06V11kGqs4PO{7TiX2Qz6!&LvJjAm z1i#Xz6!AAU3rTr41SlT~c4S|qwOv}Y<*xax@LGd?(>4Xpu8=7i_wJnNb zTq2mFQW0wAoWfkdsVb1YZdF45;|*0A}i zJi!nGSO7x~f##4=51M^MvshKs(SWTwlkp_03C*K%MV-fefJU5!EzY1$JBz-;Qf=}T z^OBrVOXobK#=DFBI(>$b*SMz(8!5HiV2`;!IMgUFJc|mI;`AEweB#|m1&n;e6em=K zaz-R<1T@1FH+<@tX12m`?{k1j)u-|U5ON+u&ii9|*I+EK3`2VdHzF!!62UV_4(lu zJi|tnfum96DF3Z9hE?dh5!Xy{k|)Flmas~@abTx(`)?`^SsU%cB z7F?U+WE$=kE6GFqgi4Tj7}Vkltl${`EWcZNylK$F%B(P0nP7G z*ec9h!hCKK+PhGYqn7W8pm&B1rA%;(K3YE^O!h5L1T6+Q2ir3%LOY42QPdhu@^F?s zoF%Oyv^&abfxXs&9bQIlFvY-rp-~KQdPd3!I55r*uk`Y*b1GzdC zW}*pI&8l0R;9MrJ(FW|K$TqnP1j}if;w(-vmubY7>1@cfhE241H+&jGsNWCSnc|V0 z_C=t5QHgdRdMJGmt4H&P=b=}gqW|%Onu*W_LyiHIg+k|8iwkm8h5rMtZnW%35YRw) zmIBYx5}pWOp_&S1Uz9CD&yvygjP7(`(t4QlrW`U^(lD)Ekj%-AA%K41ISz$+znA?0E$tH<|>y%h$|1J zF{Ep-Mp_9pdkl7WlpTv1$Ck{3go&77it|W44h#t5VGD^dRU_PCp*+N1c8iA}*!Hkn zoI-8m{G3bjPxGyq5Cg8*LAiz)cI1qW2QK>5A}C-eQ;Ps2V0V3##Q`vWFu(;4fXM>^ z9b^RN*EA*B8gO4IuTE&8$)?(guFbFr&kZDWgwZx zfUqH-00&nMgElIVR4aZZ;Xx~w9F2y2qQ*_Gp7)6fYd_FT*piWiTBh=4J&971gjS{| zB4rv%7$D+_IEqk~!h5>W00k@Hl_SZHMq_}a>`Ug8Wr=~Zd}A}-PsV#1K{t<w>p}d)W>K12V*#@W=IS#@>o~Jf(%ag_UdL4&FIgYPan6HhraZAOTFucjJpMpc9kkVjlB`GsjH9#9MH2TE}#cdV|1+Ld&gvji~*$bI2jH3ko zc%(tc^ZkH^G$>rdj@Mw;6mfku?8vY@vD3eVRlCI_VY8jEl4^326q(6(#u)4rQ168y|%_=|h$L>OzPg|W~Hi-+YHvm9oUbC^k(w8lMZ8ZHoblvnX{r_)%Wh!bu9 z3jb8}uQg_98S;Xo%{HonW;0cD%zmoo8c9FT)D>}(TMU`|sBxaTldAbvpU>(Gn_{xb zEkcNu)VTopA=SqqX`y-{5}xBw*CLIe_b4(Xs_T$vQN0Kun(D=-xNMo`7MCDk()&_` zRH~0f?4a5})S_@K|xB`H-RZB%mjbPX?J(rvQd(xVMuafm02)cuFn%7SB+k z?9_N2N+=e0rDJh_zJ{HemcLcYPDN@zfE54K!TP}gINMXHq`XQ$g(++RX)^-~PPQV` zX`t^kX9{wfTCaxVsO=o^w6x-HON7ZDJ;(x0F$MKM^I$bT)f+-apC$}xjfZRxtw;(| zYdId4c{&iC4s-FB%q5{x#3I3y;lUWc6=5v`Md@US$2iJ@PdPNU)4%{p=5#=(`V3P% z6%slP=6hx>J4;ZS{q=$d7YL_#IxG_I0)ev}u-xKV5q1WN9AM5i#cyHS8JM=xGE+)t zp)vBA(8JUC7NHe{w>h^6ZK`}`G5ojUm8ZMbYa1q!nYEkZ>419{lD}0^mIj10k60>2 ztQwY9|K*`Os8WozKb))XC?AC7Dd9GTZ|@TfCOGv-;^dM5G{ zD;?$;+?keZ>IA}0XO_Dfv3WH=7Z7ULYJprLKMe3#fFS3y4s{qHuC@&FEXyD}fq;a) z#%ev&YV9(`vqAStEZ{kF*}1|J*5ek>4Y6+Pse1uiYdx)<$FkN__5_v#oE|TB^$@uR zty;;=@;nfJ9+V`+mBew3DCWHW5b>^AM+&W_eHrJwmCx?Q?B0WIt&InegLpd+NQs+X zOs6_;itXT|74nA&`yl^5XCUd*=rE}dA;jzVTM?zxuyQ?9TqVMoFtLyNkecy?u(P?? zowmEznPLY}v_VwsYuSac<8VB}Ht@`p%fX=dlHtr;1ZFNe&|YW@IR;rU^lC$tZNe^L zQ#e%ICB(vh~sLa_nYaBRRoQo}Y4 z&qptO#jZW*-G$y=q1Z0h-qAVgZ7ILrrpPBhaAo)dc1yqUXm}tNLw&EEg1cP(f zs{27c)t3Mb)tgQ6Tr7Ay791(?rF_AoY%|tv^Zx5r!#1brtY)+Ayf-6Trt_K2BY5VE zgXcY7V>hu2M?9<=yDW(X3;{vE8+)TGqwF$pb(s)S#3?1V;BmqUAM#AfU&8S)&xLDY z2w`NOl+lD6{b*TWztbocZ6S(qkz|rA*Gy86oeFr>U zwcmCGX|#|?8iK$x>sn;i0_{*#czHR>Bk^}?Fh!0kJ6%Y#F}9h;s*bUgCMVnY*sFkv zeD>9*m;*T--~?E=0qeHnjS6wHO^emCZQ=Sbh2Culz1v1ZFFI27DLPx*1{2!`A#CG9 z7={pFV%vtX8`?Gk!F+1J5L_2Psv7vT_0!7ZMjNMrO!w=B$7D+(q{nx1d6SRfDooN-wyqtgrm|& zJCXH>3WrCT2{O%6sB9?iL^e>Ox108Pe8bk*9Hz~cU~R6f?7o4YmVFPhQJI3^q^}JkGavt~UYKO=O*wN--DUJ8L>vP(dk`;y%v9QSlp=I5rZr_9loXle-Zz zrurrTrut@6yZ{T?1;xE3%5H}C-Rv~Mn>BJQH*?KJ%@2bk>}L4R97RxMYH1ITshc3v zIq-6vX+c#vZM9@7Tz|fAiWdUSIY4vkxMG+y#fzYYQ=)7LybYBSW&vV0#ft&(DC-E* za;$e^?hvLB)wh{qKfraP>Gmia2Gzr(RHFeI%P>Dph}W>;xIBgDKB|3+L5C-o0QzkE zKE+oI>_q6WE&G9n1fpKU?$$b^Cj%OQ)4Y=yCMEF*7Q@*R!#{|y zJ2VT{U8Z;`VD-QU-d)RnXeZ$Jzzf_{^a4sAo?xJc-IJDcwd@{#+JSnwet2Y8gx#~t z+rN{W55M9xw1}ZL7^xN`-(idtOz|>HiVr}F4>-0Z*a#PB=V62~=5kA8@5h+?9cS7z zRbz%`RADKuKuSNAqF+I+ENoG7yal23KFqj}&*CDBo)Ha2$@&mkIMgUMWr0B{YJ*u#9s zy0A?IpkE!(FGJ%|!Baf%itzJ^d-z6z@8#mwrUTY`mBsrG(6WQm5~n>m?H)XQa~2QS z2X0qeL_dgu4<2wv|6NYyRwd!Hqd^iI1EH8?(u)5u!tNq9;@271tN=>4crOG&`g$Lv zN%j3$2&x~zqEY=Ia8kVkL{j~bDQ<^^CjhV{Pd0 zxM-_x1Gk#TnZLP>?kWTiCvcs0+GwPJ&!nUn3c)QlJgO*9fNoNaC&4Y%Phml*e%cgo zBo&6LfTyRSx=)9Ppt^CWE>z{|ICi4_ZM5c<0lK>edtrWQXf1yVzUn6AZabswS;*sA zo<;H7J1i{328wRxs*&QEdKm7?2*lBjnVoHPK}T`EgD$?sTdY%x9|6vfgwk1@b)W+- zUIG_C!YHEpSzx95$ENswP`?3Ppx}7~mgh(JaR@GmC(rY}+;eex<2c3DnWMd0fAMDi zeCHnVIgG`Qk49~!QA5R1&CXHJj|=&u>;+(Y!NOF-UZ7(~L`Zof-(k~%^sRiW?x|tB zd~(5%&&O8yCvI_FB0^(p53-w}Lo~iV=@q^Qo;Am4;>Y^sYfb>)Jt8zif@$8)UJ9>X+injss zCU~)zqwH09i&u-E6(|tkt6_Px=CRFxKuCi(kdy`-6G*HM5Ter5lVuYBvy)=DukO;top?KR3l6kRbZq;+`7zPFn6?z}`uDbNys;c`neDeF|@A*4_DC zh;Z+R*e_{E@JqfU_yu+ZZ@I-^@C)R-_mA3m6{pel6A`tU$3ps^WPp1cxj*Sy!rpd^ zZ`rrc_v}9zuj2G?m@I?rxB1}~OuK=9&Jqd3#%axSZt)#&Kiwp#9fro82ckksF!I=4 z1mL47H`3rmenqm%`?c&h{40$R`;EFtWxv77T+V(iU%`Iu z7JqHXQOYoXLtzs2Z%y$5%-aI*1qIv--uI5~LPKmXebcuW0KUzBCtt~a?-qYo%l6v2 z{a!nI??v?9>x|xe2jnZ!&7*gO?WKZEDF2v*j;bGowtq-VP-fk`*i9cFd}j9hA~HZo zd0lkZYl`&A)Q6?Bkun-f_a1w_E(H)x@gWB+XogT6@CQ?T7_5E=tbXWq!P$@SlbJt) z=RflGwub!?9b_FJnc^cDeiep)9AzJ2)JIOqd_t1>giGd6^409mZt+jG>=RoupV+&e zPr!DLADe*3M~N=WM#m6^Zt>5>85o&Tnwxnfy&92NKTms`dDtXfkMm7{05y9YR{M2` z{fhwni(BnqVYU0*;$KNQ8$jGFpx9@n9hao?cC5yeR!a2`^!=k4 zdHtI85r`>1HJX#r3tf@6m2ODsqcoUbfDVETdCSAgu_ARj*e?EeVdiZJY!`t z0V}8Xl+n?QMx#*p&1PeB+R9(z$X~29&B}3n{I~|Y{`kT7lo7tO{)~(7+M@VS+n-u} z&OfyhBIIrJwi7hPA6Z}5B|OQk8jyBZCFuC5!B5&Eu<-_l|&lP%71|A1za75@{;OZC5? z_v9!4jn$#|FHP~q<67L}e?UF8{};ld_OBpds{fxUz64{t0ap5TH0ToQP)au{Xi(AM zhzUVgSe{ZFbXlL*1zncv1YHBB_|r{e`o$TVMkmiHp*$2Ub62}8FI??5#h($Dkh{7p z6ci!9pg3trz9uNh-$OBj9{I-L82P4Pxw~4Z35qc9CBX`JwTD07%%8{b=UezQpo?(% z0Ak2D2P@?7Q)7kY>Z?T?sbso<^H!I;TBdEhYlR|e?&`5ttKzQqlJ@WpzZh^=GgEvS zJ-30zapl;fxU0vT;wxym-S4he%Kfw4)s?3BDjJ3{q{!dS{;gYEf$

=Zl>)2TXXm*E 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 U2*87dz$%nMAP!E0@dD!i0I7xO4gdfE literal 0 HcmV?d00001 diff --git a/bin/rebar_lock_json b/bin/rebar_lock_json index 4f7d05f25f0683c85f650a3bf804c70eadee89f8..a51a496d211f494a8204dc50e3913d4cfa07084d 100755 GIT binary patch delta 562681 zcmY(~Q;;TIkOttkrj2Ra_Oxx=wrzgXwr$(CZQHi(oj-PO_U4JIt5Xq`=Tt_%QT~Gr zmz|8U%wTR2kiU2F;XR-0o00pU;r0pX{lKK;T27@8Q^cx!lgV=rap+$CI^ z?WIJr5Rs85L_!sXkFhI;W+A#S@A=t7(@Y1ehqJgQj>c1sK@&o!rV@9#E(FixCO7BN z@>pcxJ+8WLT+X?+(Awk{Z3TRJzZ!k;{apThe09a4gcOXKvD|dMb?x|cos4x{V=gsb z?5BMW;-YK;jx&pcc=IeYdFlZ_o8Bc_)i}5B8@dJOO(B{`t|J-SdRB=WV#IyM#i}pt zUo7KJ+x$(-#cmiI?YgBK*)I@XV(q#GN>+bfza7N{p1iI++ZeIW+;wWMr#zyneU(Dx zVVk=gRSYhz@H7Q(&O{rycos74lm~P>wyY79)17Dml_6&1Pth%orrio>AWzOky4g4G zd!AJbSFnv;19 zReLHQ@e*6`Gb|TN@4MdxI(F?!UW*q9u|elYvTW_zgfKRR%W2nF@VM5?SO(xo**7d3 zTfP*4I<4#|x6Z#7f0wb6Ogp0592~$LHk^)Zd)C>phHD-9<<5x-X`DaCw{E4Yw$ADu zyYR06K3(${l1^*?-Nb~U z+U03ez5KL}q~54NyOIG{bHm?MqeYI=(vc?w*q)o7jejd)?8q;HMfO$M$gsi-Ue`Q= z;V#J{HHGmzjZ2>IkG;WpYPq-?>m8r@aZ^W!2%3x2>sU!M3lV8(ZfA ztlz(LZMjx4PB3N_dxSCs9d|Gr4e-bSWxPPmf>@^WR<}0FE*c)X55BQf^6gwN!g~$e z=qf7S7d_2tw=Ef@Rs|YTg@CB%!@F_(TO-5_ct5<&)Fpefi*Z3)LMvse1_#=Bos&~> zM^EC?so56WLG<-oQ;p;8JkG>)u%sOTf(b5e9VjikQOgqkavJL4aE4s`M0{hPTXkk4 zt{O#yAmS}Z(6e)Y3Kg%=tntKRGqu9V(zv_x%l#X2#-)7^+ow(@*>;S#V`uCl+Rotm z)N$0Y5I5d*(@ij#T&OuR!{CHIS@+gN&pIP7rFmz9gt@4q&R0siq~%jkkH!da`iq)I zsJ>MXi-D!UL^@f}cEhCFs9*w zMuK90fXUbN!Z{Tuuyc* zplkPFCG5f^Ec4}|l<8n>Go=t95{UMz(!heiU|c-$?F6FI-*=jC2R$M+*;n`Mfc_o) z2ZWaWUF*QEHp{LSB(~@;O@=oy8g@MR81lSvA?5FswZ@;{sXrR`Kk6j5;{8+i&`{`Y z@o#o0-z_E}hgatNiF>2a$4;P3CLgJUNxAVw#{OB3EZ$HONKYQly%c+Z6l_|Vli(Sn zUDKvT4`*rZ2{Lt8OKp;RHd7J9R^zZ#;_7(Au4$vRO4TvrsAyv3Bpo#Gq&U|8$VxP| z^GzHo8pMI>Mw1Yv9m>(zWF?NAjNEr0Pt5(G!cb;4L5+@~+UWxrUYl`Ys@f%!S_ZZ3 zCxV(!>eqw5Z1yW?T|G%axXQ$6r6+pY%j$eV@q@uw@?R$!*dR1#-=+A=w8|!TiSL!6 z^HI(^)su?6xiA#6`!~ig>FRD4v?b}ESgGfNT%K?Dwh zYrNgYAIZ~I(X~R@OH>)G6jgzvcyscN7~mb)whi%y#2#88+szUu*h%E1yAm0m*^M|E zK5_jf`PyH+`6R=Grhx~h>?@{6+Gy;m^Zqkc2YW$IYos?YlW9|9 zvUi#eQPal1vkl=eP7?O9o{3CiwYf9sO?QqkSLBb!yEYKmuvIB@nrt|R-s|!otQPwJ z@-Zo$;NQN98pli}PuF0hYpuz0lNK^#pTSbfm?jujY~i7-n32~jq4B5wW%z}ubYU!Q zg`~$78oPiBn1%WhL1Ce&r?wb#oDamd!>XlYH%z=TG;~(aM#YaD6j40E7e0!$2nWHW z%BCU+TMGp@rypJBK6@Bk*z40`u^}v}>ndrYHI(X43J$b*pY-lGo)c!dda#0sY;o=; zO|>q5q!T3=9IXeV7xl#C6~|o(risHthtI_^#RLZh{IvkdY)s8?y5gp$qK;-tgJ=H$ zau`mg0!zhagwX`rg0xM}Jpg`mxe4s%rENA%v9g8H%m~jD{G$wQ@i&c=3padtp;)*@|{d!8F+zEMO(<}IpIFrCY0fQ-5V_)k3;Vm_aWOT3( zk=wHeh&LP_a;Q6rsFkh1x@`kZt9EmSXLRKUMBhl`HV8{1I`m1D<+W^vxXWQ z`K+`vpacp(j`vF;7HOPCUN;T3V>P1Qd_3Wg2N9{g#_-71IC{7u8|8&+02-cLxWhOb zK<6+cixa=+6|+;#i+~E!h45oqw~eBnA+k01L1&KLd*XzRU#ud2U-XYVEJ|6!fx&_H zv~_Tr1;eK(+#ht))00)*gGZsg(Pwbl7Ol(Ww(iu1YzXs`rgarQPG`(IZ zw}uuitr{n6giA&fQ$~XMT?|)^vGTL8fUw$Oqp(t$Pc;>874Y_l{M)+;0rGeT4P!Ay<8q!Q6PN6~NHtPc6R&7BSR6ax z=#cS0lG_O{Z*=Z67_rjPVIh;y%t=F9q%57(C`r?Xn%s@-%9{K-LKhG-Vpy_e0Mumx zm<}Y9OS_KzQP_b@bdd$m{@F`0nXAy&0cY`=GM(mDBXe+Uj?2>o=9;LTF;?TyA>#<(RP|nl|rJ!rRq}#4|a&isTto`y&DSdm3-3##B8y-a}#+0<3%Fr0peQ zI6i#1q03y^!_M1ddji}8UrpmQD>;Uhi*_(%-|1;<74@2Meb{7|lZe?Bl6J@g?O}FEO$sK;kJDZ!&9wqZQTxNmbz8-Yk+?g-` z*Re25b(876~=*n+mcG%1OqZIY^^Eo%&^Y24)3ubn?BVKu?mVfB;!Zt{)djdP6U(R~toi>e$tI7$(mAa@bc~RDS-$S0h|hOB$C+ z?n!6DIqi4}=tLFq%1p^(SSBZ5ZRmBw{zFG}$Wa^E1>7YK1gZ*IK{c{am_aC|j4>tl z0wcdmzDB60TI>X695IErEnQRI zSg4sdZxeaRgNAwfB>+gZ*lp@WQ|)oHgU zWR?k6krt%@;7UmeU-xI-$~LE_F}QSdCAwa9B)6*qMTKd`R4|5xAl zaH@HkWK;`GXQR2_o2lo2n^vZ&G)&Xj^o$~*{s;_E;05!IsKZ^D*5uqk{Oq4(+It}c zTtj=7J#s13cR4WM^>=MsKX~(t;k5^o5CIp@4?c$G$pW0@g}CgGZ++ZrD!Vm;Mi8`D zxnK!IaBwMC(4ew_Vfu>4O0DKw84N0uT$n`qqQm$R&yhjFZY&CuCYufnc_kiZysYyX z)X+RYYmnGAXXZtu-@9q5IYO-Wl!eS{|Jc?+`6NcZv=!MnT9Hp|N(Z|ALs^j*N}l8&kSN6$Vr&n^qOhNXy9JN;gi)t@MI(=bR@Otvwp5K#+1F1q# zRnD)W;^(Z$jdX7EmB0z`ulEf#=J1H4lP3c?Lf#(g-9G9qmV5W+vrZqnEh8KtkkKir zEAcNx6p<|@P}Uo`|9!`@n2b8ZfUdD?AyOPO1gq~YI>hEdg(WET;E|-wY8|Q;S0D#? z+XVH)f$}yM9{{!tUZ?f;hR5eSf6(xrJYadKYkXxV_5$7;St>gNqWJkpeGR;K&RKz- zAbd!tsnHD9wC8(<22!;Dikd+HSt2>jP2-YL^+v7<`W5lGfsoG0=M!HGm_G>tIs>^^ z(z&zNzcB;#qBpGlO9Gw2$3??OISmWY+>e}|*=2!4&6$5|fEgE|OHh_;TJ7n-* z@6H{g`Os;Tx12kTp+r9TK#C`%mVr8xftDs>yg*x7^KcR{aJ=*JIne8fjo1xfAmW`! zY~QGT;OuPeTM^R9>C*Lv59D&g@(!5hI|-eE)Yti|6Qzc5`M~eCeDV*r*{)U{Z$Aoe zgAn$Jt&lpeuIZlB2V$UBNFY5;1E4WtP|*uVgno1KDJq3 zTVy@VP6cl?o70t9ZGg^+9w6>oOZcQ>-sj(>A%Tv~{MH3FpXD`p20!Z;HkS31KE`h& zzf<~;PYfv3yk5KLh?KY?JykOYE+fveLie@ks@lT#WMQzai03!nPzM}aOOE}H!D+V; zsko1!7NVDMr?|k^=;de0aY|DaFd_EugP{HtyO8|~`_v07=yA1wM zuGF%l8xWo>+3u5vk-pWCSo0n}GF^q07KuB_W!l0aY9-)@nn$TSp{$?YlV3nZnV$oU zcc9?uzxmPysfwJ~*=Od98fJ3-qWe4;!v8>zew&LYQ!GI+kl~&mp(1}vfS1voP$bLc zzkiWX`c5KKp?s!xGXPwEis%x2p~io9A4C}L7#u(4bP@T2W_UeH25ho^7Ek01zzly* zA4-4~{TTs&$b75&owPGY&Qb&4JTx=Sm=ufeJaYH~Vr3Z8KND&U)WD~oW|)S(;dq^+ zrhiD)!K(qJs*8{jcFS+{-o7w;+=!nhYM=fZs6{=7=k}t262M>Dt6VFNpul^RPJdH> zy^cj0Zj?V!v8K=IQ0)x?%phAeAXPuu$dFKzhTs~^6`c6(V-cmpUBvJX=;gzts@W8o;XY}k;)3;@IKC3FIijo?Gh{<(eg+~ok{ zdy`8Wm&C?x%g?;p;{HyVVFSvAzj?cHxFhSol|c)p1OyUt2C^wJS`OBq*T{a#469po0GfT#;RkvT5kKj{PZ)_g0KsHa5hr#G8`~5jKuBZUfs(q z>_!}jFf)z^TQ%azP;m=Ouhmn|rW<26z{I`G^ePkh@B<74^z$>6=p&Enf-&*}FYilC zsn2l00MHE1ML?4ZPtmj-jnE~01z{FEY;$YzoWS*(yuwQlkLEN81{Tr}P(WD=wL^_J zIrt^Q4w7FOm1{A7C@qnk#G0<2z|(VKuzm-yG~;d9`TEXI={jk7K>;&JB!H?5g-#0` zjKhnO7M&D_VhZ{+C-GyMiDEenN1gd13Gnr20mP(*gT-Z=-X_4g&_L`6-gQnh2X|8j zyI16?6%(2gp3#tO?9wxR4nqgOdjxa7p*G;uVH#crb54Ie%3n)fm();B6Y`-t$X`Ow zf4;+FN;Qck9JBVv>W3o~xm1hIdLmY3gpA%+aIgq{Ulu>nm&L4Ys?=lO;Ei`lKY{ob z1M(j>JIr0G%II|#vzD?^b!%rFT@^GpPyI1-((&F09&f{jP0&P^II!WjrV*yH-fYBl zC%b2ZyQ|pb)Fye;>Ai7C)Fmz1N=j_nm34kU3wQ|$csbcBimBXhf3eYDb|#>1<8Qq$ z4K;?*ZmoT!WVSEQYk%`^V6H5V#5{^U1JrcKtgXVt?R|PoR7E6nTx)M$t2JD*oL1N} z3gDG{TpfKEBGn{iZM=;Lny+k)u8w^cw21fBYBI2wRE#)$jqaAGi@DUi4E1j8Ffaf& zBRnXoGacOog4W)LRoRVx^P{g`6IPHYyyMyW8_OBr9$UNBQa7Dy**PRt(-{vZfTK+6 zG29~T08P)Qi`O}KTy{_;v}uEVA19{i`q<;;2nv=9r_hK`=25Eq4#c!a31je~Mk0Fo zuL5!4CB8^*xp%~Pp*ERO#qlGr*1*S(QNww-QK!O-I5Wx?cn$t1|eYsMfOiOW}(N7@cbs|`9#l#`}`)h z7%Q=&^H#_UrPgb7sUs6!02L0OO3~UUr2f z=OW=|G^uX>Qn_X+-i(n8`wbY@8mje6-=PE4tb56^n>of6y7em&UzwEJWQq;6BsUh0 zEWuVPv@y-P!`Q4pUqgl(zi23I`xrOv^4@TSx>VuZ=tW%IKV>~ib8J#S&>;S_f<4%W zYzc;vGEzEVz4*HniMvMi0t!42RVdYA67q{MC<$vn(pPSrMs53E@F%x!Qz<^UUlAng ztT_2%nbFW@Ae6FhZ-!=4Qr<#v$CevpteL5ej;y)7l2q!cRHrOgWtT^vYrCxZxO(9m zj4q+LX6R}oDnqhNsxDEMhu1a8FHF@|SzWWfdTncS*61(Qp0PWI01#_>mv~?T45|94 zfqfWIAyA=#kc2S#1~`MgB%uLgK({0$1J3TKc%Vq8{R<2TiiDuQ1%De47>))N#ez-{ z;3xluQ~e7@C*KQ)N8xXHJD{l!iJc2OZos812)8JRyEu?B3)GPZy&Yo84u#*($PRBa z3$J63HQmo~8Xz@`K&>~xc8mK7*0TF&vo5{T)T-7ck`<);mG2pbZQo8_3KR?#2nYxY z=)d%$0Rap0e{+l$cPN7We2~ zpk`w>E_SoLM|N%O7SSIom;WLkY>y$T(n~WZu=J%M6F6#lqXO(nFz$ znRG88$AFQx0zvy^V_$=lXYr?d!xJG8z}>C*(c#kyLtZGON7kDytkGR?vBiOP|Jow) zP?ARUB3D8*@G0!u;3vrK6lhB>MYQFJAoeU z6Ok*hiq8kXRJ=m9eSsohlYBj#*w|_Kx-he@)o{&?`9L7gNJm z4sHo-)*Ed-&y*v%3ywBfYZjgV;4+)(u_7~O-lG=g_G`cu8L#%)GsWTyz{ z(Mc~T_tz6=40A9AKg>>-**fqTZpZQc6uc(IH?Yg>U`+2Z*0NWi6iZG%Qp7L9$=}VI zLDq#=AxKn;>ofxcDWjqQ-JU7Nd;#d|lb-%+kF*{TmkVfU*Jc&N;)h7zW1bG$KgW$PsFCPh&2tsRN{Lx zbe@3nx~UV@G`&@SonxrmZulx|~N8prMwmuNTCv>y$SD8f_d0hDCbcj$@o! zo149Kcs?I7&4e9FzNCcBeI&A0`a0F z?BS9r_Dei$q(G4w9;MDfZa+|*GKmi-f+ZE~BGMb#aZ2rM$wKwU#G>j{OA{dgJn&hTcXyr)jMT5W(oOf87nyCD=8x(@a==hNu36$Qw8v~<0@zg% zx}R}p!s>M=!!@xzLk__a-zhhysYnx6i?!Rnho}nAR4f!66c)VuSZM2?-cZh?h$Q(n zGbw>KQhe^=^|U(Vc@tlbl$g9W+D=2NNBVNV~x`I72DM>i%ht)b_z$8=jk zQQKCS2n#kxWhDQgQD{^<4g)9SxLga$EE{u*0gr)3O>(#(X6}Zgq;U${Urz8J@ zhtgX}nW@K{x*I0#JMbWduvaJa7CEr70(9y)mVA9XsRVUo`?bM(Rb>RNK|1sy`5Y%LgDd9G&nW(2OtjfH!&t8>9O2qIx zIvjFlC2`>E+!jdOBIIcDp%5d77#zi;k$wzwN_l_Kw1p{kjE0s5o2%q0tPYv4rTE~O z*;K|pJK5(c?q-t6(kyRt3hdh4wHszzRO^Wm0j?G>UBE8lwT>Z>L2Pbe7`(RGCS6(6F_ZAB^X*MP+n z3(Wf$;YYx;L!iKHNBS3!UDES*OxuUC=aQ;`Mr4Nr>Z*~~mN8=e#Ace6~TG>3c33x{wK3b~s`^7Ht0R#w`= zN7B(Lb$O(~vH(6d<8{aZ31M$`*qEJAOoAD#JV1id?GGb> zARUognbb}7?9USAe%9aGd6}JW^+7|hS0uTd-0OssniuQUau92Fr^sy# z)t<^Nxmc5@r^XysVSXi%%()sROymy}<)(^_H;hi-z8UPob_it>0t3>ko}HR+6BKyy zyKnX^!+mcv7RR(;<LbRDbTZcbr{@6s z0bjJvoxUGhh1%;7Fq^nOg4{?BJu6cg-ux}czsCx_%-XGvbvU0eV1^pZS9N>g@xo|jQi=*;7YGOmB+%qEaofcX1>T5~slgWL(dA{1zW4Xh{v^aAmH z;kGQQu`R>r=NyB4r$;AORba6%Jw6n19`ha3WRS2l8WR?M=?akY@+SFeLxk&K4$n7W zs_5`jn+vqQDn8Wa>D9ejOoXy}kiF6LooWeGO9|t`vFpuY^=FshY$G$ET7#yjo234%# z^bvAKk`RvNSO^;w{RO7aqQFM#-U4Moe!tqF_#D(~&`}mDXAg2P$Y=uq&Lq-G%28S} zc!`_^DrKpuc=^W0J1j7T;>l7b;wyMC>1hi2d#ZC0BKDY{Onz@hmVii^oxXz<4JVa* za+xNXm-6XLZOtDnwx@+VcNOlhMja!thjj7mU2(G&SJL)H1tJ|7%w_IpuClYs$~qAP z#FMVApbjL9wqIcnqwR)(6nbUC&U$&7%4s!f)XU1PUOH`gp$4V6SsTstXHRKc?et#C zWkl$lrF38^&=-BBYvBT3v`fT4JGv3~@MEc|UMJG}57V_#d2k5!zhS}NKZ)Hg7ml#}= zD4CaT7v5-8eU^3r!eq+8g_Ue5ytJoHo3K9P`ILrdf-Mu$uXALdZ3z#$%*;ieh+I7w z5Xb;qMzjnd+S*s>DDb}@BP%p=-I#75`w_&EwSty%fK7+=>l_6G50B?|B7%>-8Y;*8 zu`tgqtCgHf(XqNt!)6_2Vh73$iuZvvYTX^fmeYlDV**k@s9sF0cMxOx@+K|$YS9>9 z*OAAgwXF4cFvG9NO6UWZDBmOS9o#3!(I^P6aCZwA#M_mJ+A(g4-`4PMX5XbNxmZf7 zcEx3`LcVE~U6y}Ac;czXJm0ixNdBzgcj%wwQXEA8e#pL$ zaz@z1Px2=KOpStz5l-BFB$ufpGxGp9xE1rcup^?gAIcvIV+%`+NTV^o%JizCkMWm~ zrP%0%+)Sn&K##2VOK542T%Yr&1kh+FMf>{+9!r?T#e`g~7#VGYrTW8Z1PcWASoV$K zB$&{}$GD;TOdnlo?zF|6UNpMkG)#LY`VInw}7wwZ>soMaRhL=;g zh}QTxVep?W#EyfDVU3SG=iZTf0Uhf~Vo6uhg4E&B>@bEMxFuLY0a$ ziuXhV@C%{~Y;#B3(oFE-94%-Rfj(=Bzm{UC6myjP-nOAu+xA zT#8mEFtx5X;G-bA6YJkK>LM#Ew|x4q`Z()*VCUiY`G>+A-&{MBZs9&Me&0;qA- z1nGFt6K~U-(1|Uf*>Ll)$lkxd5N%6rKk5Nq8;&20l(Yl#n+3`W0?r{NUDiejA_;aS z4tk5`+hTQmHQPJBxmXGIG79}#Y*YnwAJ`gyfUnzon~a?aTQ#=nf}4ak)*mx3-d$Br zFQ6=#xPYQzjZ)@~tnrJ&HXn5rJMEE^fp$l?#k=IWpW$J5Cw#EhpC$Z~)~?k7cZ1&+7y4Gh9tKEM!KSKt zBTG6J^Bno+4FwjK_abfS@T-w%6DV#{R_j1150)Rq6R^{zPQNSWx7Qh+sO{VvQKCG^#pvX)Xpb5y9c5(>-5sC`6$Xx<*Qf219O8 z^pG-DJQ~N`$z2MjW{x`V{TF~1TG_Jpy`pz3q=TeD%PpCA6*u{G53sMwf?$GJmZNUW zui$LT4_m&bVI`E2ZT ztLR3e@6O`@ER>=-GX*;K7IDhTQS-0z3rq#FuqzAbQ1Y~5PYG)PGz#O$$OsO8r819fP zTJnN1LjOU&AXuM$vpAt)`DE_ZhS|`%pQ~U(11+PGMYf;%NTxp*w^7Y%BQ*kz-G+L) z()Alb!Udf9P7YL}9+I?wOcr`>ce_fw6$U;#>z`R~17O2^JM{qChx{W){ZqjaTq-7C z+O=_|-WHB#y$;)w!8Qrq)!o*b^eN`Fs}_dwX;zFRgthK+%n5SL732SflocqGY`EOykC{lIa((!Ywc{v#RYvBKW-= zCS7HtdLaOhBCs!&>9-7O5KbK1U4Ms?nv2qHKBUPiekOXvb4G^YOu^G_&Jj4n*em(M z*{^7zJbY0v&B3!McVcy}8bwN-fIIeKC6VEPIT`7mYG$Ebwm#Ku7YD2p2KpDa)UF|f zhW58g`DEJufgqUZi~!(Ic=x%=xJ)S59xSYRjAB4L2L9#rmL{*`g!!^5gS7+!an7N= zh9NSxD8hy%9J(=oY&1?SC!K0vzc-O_I`;CtQmvZO(4U^ifFLi?$mN8DmDruWkj$jy~#H{_-g1CVitnVGZsQAL)1= zmnneej?aJ|h|Zl$wuNoP`5R@$sp=tIzQa)cQA>}D%k2E?SpuogIo=jn*2iL*?!?qr zmgY`z4>#_eXJ!w?f`gkP+PLU=Gn=K=I=vIH;=6gm3)<>m50wH zv;$#_UA&xVh7op;RO~+@#t08%UX)~n-yMLl?yDATG`8OSs~I>k7UurE?kNz$Mtw=}IL<P19^G7e{v7n-tp4flBAkn2Wo_xiQ?RwX8f(k4gl-AL5 zDoT0ht5JcyK3EgDCJ5v7#eaz3Yd-@%6;^gF^)o}*{7!}64W7O6NsAQ*Q3nB@w&2uJ zP2_{HR7D1>ld@`wU?E`IcIcM%VHLkwz255yAaj_{niIiEWNAdQWtn375O{%FmmEbc@`+>;Fj@#HyF+Q~T_0YwYe&+J5%1-k*>V6D^v*sW zcS@)7l5OD2amF;s1xARC<${dWSk98xk4kw2(;Z87_b9Zu{ zbo$5jNM_0Y1@^-5141#dlW;&9_@niVM<}{TNMTgD-e~GEXneH43=oinx$^dj@=*d8 z(6~15w^59i>5Q=DY#5~UAtFMiV+;wy(g!OSs$HP@*-P8^U;D6_MSk)cF{60u@Zwhd zml`@-o6`>t}i}R5}15E+hK$^ z8j~HqA!#eA^Tc%Vcq?EPO3saWD11TCTu(@JnC{*W&K|QBD6ZP${%u*PCss{j#B#at zt3;D;@T&rZQ1J+!Fj0w#Me5A&NHHuA88b;k03*P#n2KOKl8EgxCLyGi!{ z+SD7Ffoq95r4gn|SFU}116N8iiL86+;DiqIK>OYL)=vxNEZN2(xz`f(d&+cU@#{hi zj`!S8kqCkl>@T1|sk{GGcsnlSvDP&|)~e76R6(Ag$Vdr<;XGKK7ka!#ri93A$xd9= zve1XywMyvbHFDt*b=kf!xH!kZm*-0tF$;G>VWI4+`ibyx2}1l^Qv9TW`Q?1lCn8E} z7=aRlcQ0L{GPp@UDX43w$S+II`BpOv2gM_XEsO{vZwwHwnX1zjWx--EY?m_Et<=oH zq|Zl`81Lan+ETDfyx_Jd`BSg7IVMII-fm=_#BRhgLf^OCf`nyO(Ij}T5hwA+ZoTF6 zpv_$p-O_X%PCWndDQ5S*H&pI-zEGxa&WINoH3-OGeO_&d5e z13Ime-3Fjixf)Ds3VMQ!gEaeHn!$+$AS;`Rq`g76XVHUWMq1`K41vq~4Pms)*@42x zsO(ldSh2}NTSo2-@ZE5;BlV)iu7|+qj4iaf)yV8N9~1X8#u|`gJ@-fJ$eDtCIy}gU zW;cxA;)vec#<<3+3-^%ajIX) zLC=v?0~d5%lJRG3(!#ijzc0g>@t(`&f#yThGj0IxQ$CBQX5F_ds6|Iz5P=>Dr({I( zZ#uO)IuKCqw-JzqoLmfG^8%^_U`xVfYy|)cXInhtLqHeg2R+E_v+`Pa;7fvnFS?Wz zf`rsCLC5|VLcZhkocDObs8(Zq2E{*8 zsRIDhlP|eBz5yq&+^&P;qu;M=A?Fr1uysN$AV3Vwvrdq>ZKJakQn<= zx1V}|7l0As>irJXINY7RBapb3029y8mIkXA`Y0bA@a+%$de5(q8YHQopR?;9p#LAt z#X+2iJ=_8VX{T(w0-FM#w+Oxg*W$N4V1WF~(!SaM6I$axQ9b?>KkYxM+WwPu?LYb7 z{!6Z4N{%!yKzf4XMk_|_*5pSy$dJbG7ks@slxmo}!-z;{n z0DBUa45N!QAFNIIhNnFgc}@zk>t%aGKQx{})O}3nqWk67wWnE@&b021?vBRChMeA! zN)LS5qybp(@nmpo);YU$T~rN`XyLi{QZ{(=wQt@7Ng2B{`M-&PG=oz=K({4HaNG%{ zE7xu4&Sus$EhSxq$l5E12D%bNsx3kzzHwbc>P2fSsi2>=@X~)1xg@*wRZaP3TcUQJ zE&4}4Wf22?p%V4<wir z&XSkMK%=!H(bX?+Y1`Thpx9S|NL2jzlK)GId{W>xc+YXy6?(h>Xm74wvF~0kq@w*6 zN)W<601xc*NRJ55*`+tHR*DQz+UBSQ zm7y9(#y0eN-FCcAzfWqE_O8*>-GWR3oX3MQ<*`eCP+$8E-fd_G;I^j#W_GErx@ws( zolU6Xw2E`u*7tC-R8MvBQ*~C+n0(PmjL$*5a>xtq^~F=Aa3S@bU$~#B%hVC?dEI?F zH~~~E!YmJAa6cH5u|&@}tkm}OWtA>D z)kt~q3{W@b@<=Q^2A69tC@|k`+(;dOTtCM$A5;!mzpA%-oBH-UZf{XLd-uD~?heRa z_}_I62$FtTtaEBN24S8Fv$2%lLnzo`{6XmpMH)#Kh^gZMG$(rt0MJBCRPqgI)Z@Z6 zu)mX~OL|O9MTv-$nKA1#V{3ph*7E$_9gPDNko~>PYZ=U@vo}G<#B3aY^PyP>NTK4E zgvkr@A9H~j=a{?h!BVbx2D}PR$&_m}prxf-}ZqRJ=wE}UD%MeZI zJ`*mtQor+#dQv-&v5V}v*M5mxP{zKr4?JF459k#DjMS?`dvFpTU3v+G@X|p}*VpHy zpNZ=7Fx$r+l<$j0hO7)-vgfiM>hH&a5Vn;wB%^H*rz#&h#_*gb;oWG^0A%o{EndoY zJsEnJPZDTyb|;2MZpZ_QJxho+orWAm9ej{PE>RNmGjm7hUINaTo?3ieU*IL|M^5_d z&m7kP&bl(bEAarQ#Jnn{LZ_9E4KI^Cvp-==KJw83K~(MrtZ zm7W7cT}bN#P=Ti*`A)>MZ|w7BW_WW8x~14xg?>AR?{MF-w|DfS8&Oub)v6yjSvs-% z@^l?my)zi>kY?$Ta*KThaQ?jvSobmP+Nl-+gs4Z=wZ4o|E3!)N6ENi>ipRLo#H+}s zh>-h-ymzM++G2NQql14ajkSVC+@xi)T3;_jaQ{=-O1g?Ct)0zAz8IYUpAB zq9k-0jqP(wd5>yqc`NMXE9z=RyeLZL0*j#_DN%$DmOGArwVrWrL+ygz{(^SUb`94Ic>*wUO>q zV&pC6qVlhJm4o}zrcM#@o9BL(i%9gFdJS;k)T5n+O%cm#>qEz*Bx~Bg=NGc#TB~bx z0corgWFq}8g5!xB&UQBkd2OsDz%=Nf?|v}dBh=+?mvCjYN>v*cYF9I{h-c!X*U*rl zVSc0k12*6!xbd zI%D)GQ7a+IN-clHt9akPXpQ3mapETS3{tm*?7*_V2#ipprf66xrgP$u53LXHKBkb+ zf5inWbaJB18`vLd3`vYR;EqIp%}yYMZ0-FdCLvRz@PG6hscGELp9p;Go}v|P@N>(s z$z1B`STeQ@SWOVOgt7oG=xzslK$bD^3gPK|Gd)Rb%dPEjRqb<~#FGd4MBElWP6kh~ zAVVd2?2}`{s1YK=e<@X;V{3F7%WlJ`sz612oD<7E(EJ+;N;v9SA7ztt_257v3>hWs z!A5)e!7kA*L%pLJR;L7AUQ4J&lRyJ_x5vx)a*@;%=Yi2Wkz+?Y{Uol#*e8cC>IQ@%hB9 zZu69vKfYb}S%5i^ZtFw7&$KCDxPwLKof^QTy2Gg;K@oEU~~7;&v!lGzFs zpW})YA095Pw5$XQb`DG;KkDpgfkp=>AJN;ueJiBUDBXg!9MXRD# zO6W$pwy%Aeqa?RY-|^NGN3b99rar2jW*2x*S!^XL(qwQ}wvtu_5W|-aj%f*9mK1HQ z%OkHy*W_1@zB|tZ$2fzDm8wml#ckl>aoEgy?(cpb?-8b?h|ImWg!o_c)sxiej;UnG zR&iB^+gt%eIR-d_mtf;j(g-G!gd#I?&NE_OFW8hNoT0-OwKS zznJY7e7DSMWy>h|{s(G6mA_$?gbuPFtv(vtKi83nSfO&b)LCn6ebHN{(r6m$#0{-t z;NvnAKqb#nLyoHg%!!@S{BxI9Ya0xIbw?i3CuFi4O#8rof4?jqWDUAjZ)gRZjwk>OUIRfN&nO9gghkVWIzMWRA$53kK9{lKMg2?K%e-{ITOpI)? z^vs`2N%b#CQlB2O;dY{rpz~Ro4W>OJf9Ku&T@GO}Jqlv2ox7@8b}TZIF>Y}o0@=F>tkCO#8rQ+@LZkUoq?EiE z^`OR!$4Q(V3m{%*6^oB8TOJ4nI&n+s?_v#YY67Sbm7K-O98*xOZsAP=_TA>>DGxXP z*EqMOaFt2M?P@y}>tr$w@6g#(3RPUBU-pHI?gAvUf9U7giAM|E<;L=vd3l=y2j0`* z=)Huoq40QekKRqWT3~(Vh+UZ$fwK(AeSSI;pT8;@;N|N#&QuXd^>Xz~JgP0gT@NLh z&r7>t=N6|h`Y~LMP{C3nbE|2OR#fT+krJ2mHtpbbJHp0F;S|s%uw2YDXe-!ueHV@J zhM*^+e*=3WeE5VylB7U%&}hceZ)=ygs8(=w@_HGApH-qUW}?-<>Xli-Qv~>g<3YeM zx?2ttYLZGlJ0pDCIW+v)W+IxqX$xNW_a{lXVh=u3?G2?^Fn5`*K92IXjfPLFz$_(9 zCTskvA5aA_`nwu`>1FxF=O&+eJdBty8xIb_>qbgr+HyUi_sxjGw zF}ms)pKx$Dwst_A;Z!&f)C($|*WfHye|q{lKLS#qP)^Cv*5$z1>`W}ZD|OmTHpX$l zc0(sE6}mW0sF3J$d$dq3F>U(=Ter&;ET4APQJp}kyVJWRKOpPU8Z}vGf`03z$aJAb zEJlYsbZv0KiiJBJyH|xi=)5MX4v#=~zxS6R-fVdf;`iwto82=l07xAcxj1Xyf9#ua zPr~c;5V>U=DkvZsqn|VMb}cYJuppJr31mAeJHu&0&XlK{$i=ukf7nxr%d8XXg}iSn z;^1|Ty5sFg&#l^f*|G<^{?Bk3@#^=|U(C@6xd`cGUyb0}E=fVxhOhU}N;q-(N-0YZ z0IvFXsupd-(g(C)?YpZbpi?=`f6s>qIqkBg1rdXzEVs%p6b_KbBc03|aqt;H;64(H zp7E?OVc31$Dc;cCwM-BF^xE{E8r9veBev~nLe4W@&0VGZzv`4OY7@B1&6+=)Xwa)& zszlc?Su0yU!++NA@-jO47R8dCK@kzxpp5Zs(JYBnN7|voq0aTuH|QX^e?ps+v`~>D z+`ytON0cLn(A*s?LRaJ>cY3x`$}>E}XtP^NrBZ)L8sgYt3PH+cuYXE>^&5G2D#){dB z!wUS5ux@B~R~tAA;PGFN``_Hc6K;k2le>Z7u8zn*`)cimDfzRvS_o(O?+^v}zeDzC zY5y35;{VqV0f7GjP)h>@6aWAK2mp7Bj7*mj>I40McZ-Zn*%K_Oqz?c93>N?Z4*&oF zV`eX9VrgzKV`eU5Wnpc-mv>kbS@*{$1;`+SA)yLL0O?XyIv7esSVU0}6d@!bfl!i= zgrX}DMKs_lxTp{-vfx@*QCzT~=&QJ{t_JMb0aq-GSP?{hZ{iHR@cVmzd7ksko%{LT zbIzTAJ9F>Jthw{uA;^dr%m|tjBo$^s5Yzz72+!eZh{Sw>6weoG@`U0nmQ<53WM=Z& z6F9<5VUCz7<%+W=utcIvK8Gdc3k6!KTq%<)$i)jY;2c2;m&X@yQ}9BGCg=yN7*ri42oOPG?A$z}2dJfS96 zoXHZTPE>{ZpKg$Fh%kibZesGu$J3AI#DfcRmdU;IHjT$PtgXcJk}wT=>(!eNrdX@1S$|| z&=AnyuXwBy&~PNO4n$M*6KM!V(N7|OCqp=ro`MACu1y7y;*Eq8f(X{roRHbpaG^Ic zds@)6kOj`j>=3^YWVTT7}|Ys4QeM8a?+DiACPTELMwA^IGc>5b@1f+WS2PKW_j zTc2J@&;(I%B>kyK0Jz7I41gbw9|!m$*}_c35RO9};XK3%4nd~E9K;!(gSfzdS%@nf zjJUyU#2sFQc)&}MX>b@a9Zp4N!1EDLSd4hV@rXB^kNALOeBmU-4@WWtiKs(^2*rNI z-y_5!M!>r<@NNRUPXgXefp;_D-5hwI47^(a?=;}u5_q=)-mQW6DZsl8@NNsd+X3(P zAX5h%$w&vP0W(sN^i+?IOeZsc!pHGayrT;6VS#9^iY9+9VW0GC!nAL zdrV+8A|O#!3M_;JCa_iuXlf7Nk)sYIqf16!FBPJp$O%J~5#)xVsTiV;AUcYiF{D3& z=Ap<1Lk1%#8AYxbG8{o76uDu@Xavbnl=))Ja+Fa}=7+H< zql}6&|Is}&P`xV#0Oj|MGH`T%B!iu6CfK#;V8;pqyHzmQsY1Xm6$*AJ2H2fu;Yc&F zAU2~x^wA)6jMzBygtjLD(*cG9h5*w=+bYdO)Q2803fga|s;S1c@r-U;j;%Q`&<=y9=W81Q)+%EePI!6mWTRWVTc4Cc_2OciG;M zPl_hIc%3+l8&m!w+I(Ngu|3X@gtt#_-;y%$cJ7h&b=EIPzVT~r8*fe5)0f%-;3hUVE1&pLhL z!KK{2VrHa&)2`_B^pJ1?54c>c))Q5FEulzNj!IM=8mbOWVU9F~FV29LxW-DjVu>p# zb6q*0UUcQ8ae1zwe&q@zT&9ErbglwW%jR;KB9>S!6?54vF*8%h$zY~SgaTJ4JBOc{ z;tHx;R!*iAjAgrWc&=PFUyuT6r*PRhsp^7M6&A;T&wvvCt%wpa2aCb{w_@-GoXngQ zE*2;5Uy75iUbI}G2dkC=X?VK0xlB{_5vBYrZki?=d{td6B1?y5$TDR)s8>`1{(x|} z84&wle7@k~0{(8KLr@S~A_bq{*W!5)@U}DtxYja;wEf8cwzOF9}F`a+n@Kmj*QkHeCQN=GyDdB zi^cwj1BDjM_OEL@5+8?KAEc6=ob?$|-&K&31eIBS}a7 zsZCK+x0>|zHNE;Rr}=gBjz^!xn}ZIfn&n;VkGGUIZ0q*?x-7T5^K^#M?$5iw@$TJ! z>L@+rQNQx}-Kevlbo)Nt+dO>oCGVlVfphoC8fAoU!+g&rMbH1-`O$xQ%aB&yuho|| z{1*A`-@W0Q>7n7G-%j4z@t@9RPY*F?#J9FNwPpDAEQ_ET@51N*wNG*P9e%BHC{`Jv zJK=hg_vtws@8~?X)wtgSd2wY4#-a&-TOP3Y{nMLC++(|{?lZ9>!M|s-&Rb{y7ba~@ zjlK8y(UYH>OW(O1n00-r*PJzfbwr%y`SCjQ%V*{6E+1$tANV;ikZxho+;i@rMf0q{ zE7RG#sgJ6o9y%O9k=lSSRR|)}uWX$DzM`$%3qk4^E#egIY%$k)wEF&?I}QGS4;(lC zvhWwbuX=Vi^HPr|`=nnfV=sOe@p*8s%yGySN%hh$PIUR=Y}BzTombm+!moX0%@y4r z^EPU~s^=OVkRC3$c`=ETy>*eb>83xAm>01Q2Kz5En`;=s`*O9cXW9084}{y*ay98n zF6-hSeMf3%ejQ$*yQp(R{Xcns6AL{*9^Dm~@H>lV>qB|-@<8;BFBOTC$^vXI1wA)& z*XyGw&zm{FvYbkl9(%(%d*|vJ!kVF+H^riVT_#oQ!XCOT zV_0RSynXd@M{Ko2@W;V`7mb!x(|fvB=SR36ASa(bTm31vPrt0K=Z7}Ot*ok+p{r9) z*tX|H?QCqjU-iMFpR3HHKO5NW{+5wpdyz8LvDDhWeZGx-34Ga%W#a3?39hyCDd>vZ zJ%yXj-2AgyYc0Y363#h)hi2>3Gh268cSvNgblr8k!ZjOvDmpD9!q+FaZ>a8(Z}z2B znn|WyRK9VywN%C1JJ~ZQ^6H-rJ^e!(QT_YBtZL~jdUwdH_vHn+V!M2BuKXta`#Ib; zF>YIM_pjbiZ3gAbqYaN7vS-H1cCeI3;oc15GR>M)wsIOf$CeO(@Qi+K*BgmWgmg~r zONu$(+b(gt6TZ0>x1_?(`S`kb$7Rc1&JQlBh;m68jA>r(*cy9wkepcgVi&WdIZodv z#x0GDAMztE#wp8;V^{{JdrntFQ<@%~-*C;Q>Y9xxv1_^fw{U6xbtYxt2ZnBy@q4jX z!&&jC!U@;T*&I%PDqCbAXlQsb;WE8(rRkdE4Cw`iR3k0U+e($S#fC=)*=Od5W|ssV zvW-5qyIZ7jAdbDTBq8&_&^ZtC!N+YZfnK6SFOkqWW4*k0OK6_;nT)Q&gYvFP#Yt=I z2u0ziG;d|N??314xv+p`B3~%#c59OFTM`;e-`^z%X}#ZnX??~q`;cSp9=0+)-=p6< zX2mf_UTpJ)wtcQs3GLbfv%d|a*R9>7nKr{ruYE@8Y3krj`Hyq-7)bH0bCnIH@fod) zsYe~}vpF}7Hm^w2@Y0p6-E)-@qt)oE&gYw?C(f=fhoPUNvv}fM&B<$g58t|QK)dNq z{D%@QZSmQEb^p0@Bw8YfuY}I{NB^wr22zl zyzu|zpRIQcI#{CCKdJ0C%oaM-rm>U@^F0d7;}cptDdV5dUyK`?jh^41kHgyx>cH<- zWuBT@V7^-Ta3m}_#)#5p>Z;p zaCoWi&JP3fALr^ZCKi9prDo{p7oB=Q=-5$z9rL6l{IeO~!uK_2eyyF2?{dLiyS@Sq zzD4Cn!u;XrM2p#<+4D<`Y|TY=gx=+{@X{R{d;3kU$eJhW*AXIpNweQv)Fsf&<>3ZN z)$dnW7s#$!xH+^}Qp^i?4%6>j=+{lGes4*;a3;6_>d~=-dc@ z>8A&GDw-!6)P+R)>dby)$|u!@s5R@oJM^T1=e}!vibC&)X?N(^nrqa33cIIQvHpCW zwrk|j9~%OLpOsf{RLySYQGd!nn8tH!+XCRI>3KPQ$lf+KpVi?W=DYgp#qXj=Me9mG z#|Qbg)pg7Ci!Qrsb~LExztg+Ju6G!Jt`skeA1H11caZPc)jG{(YDdAjRN8VwY9RG> zs>u_(_5BMPpHiLr3CD*tnBmb$wXv?1+R@ismG9OzKQm&#wR$-yIqWq2?POrcgKNVU zcYpC2oap?v#Bh*uw=mr9bcc_3%-?6O&*X7$4!3NsbpKlQd1n37p{Jm(=L@)hps2nH zjsC)bxu}YB3hV?=g+1VDuqW&dbKn#>4d%n?umBdq*{~Rv!W-ZUxEx*&uY-Sr*TQ9R zDJ+NAz^maBcokd>uY^~?GI%*$2ycNEa5Y>7Z-zI)8{tZLJ6!YsQRjh4{1;G50|XQR z000O8cZ-Zn{Y%%eeJlU~j7|WT-TDK5f4O`?r*E+@8H;3PWi5oyVTT3!RwaY+2pi~5 ztO~@!vG^g$_)ze#ecjG!w2{SIS@$1oSd_Dbf2d_^ z#4^?+&Seo1U;`q-R*Q>SKwQWA#TGUqo?$`pAC?q*S=2g|4O)#XWX)$6SW8&1wVZWY zLo95Kup#RjcD{8jae=s6U#+_X#JRn05ZBH|I$7Xr(hhGrd>tzT4c6F7HVi1>3nVrG zO0cBI3T*Ig*t7-ECT79AExs+=f40LK+q~OgjR_Vwl?`3NMs8)Ehgj1Ktoc2%3}$Wj zZQr#AX6^FsLP=|bEH*^C;LRT2p1nL9mfOqv0rG4g&*nKi7oPAOwnje6_3>Pu$MfZ* zJQk9V@_js?7w|&)sDMR1*2TQg#|wE8FP4vrm?gi8{aN#^>&PIC_xQ8re{ghC7kIQw z{w`I1$dn&2<;P6H$5BF_CLy6o2u(T` zsJzL$301a4K5G=kgytK5)((DO0DCGTv_O*|(@h#SO&T*z8aGX9rJB@|CiU_n6x=Kd znOhVRTBuxXEAFib?KOepVvV1Krr%m!KX`fNKK-Pa952s7F{`Z*e-KbYXo(b)>)(k> zmueJ7GzyzEBe^ss0JZK{!oq;qjVqR+cm0Xua)+Fd6f+_3)DSvT6AeDlwqLZRiEef< zmrGQzR#8o8g+n%QiAvTastB#z#}2&R>)nfQ=UP`Xpo!2br?)NewpqTd-XA=)1~)}9 z}1 zCG<#>DVh(d!D55L1?8j(%0)Ajk5-V}#yZ7ZC?Ose7W06Zf1?StQlm!m%CLZ%B#t7q z(Tt*`8AU-eF=DLgi4oj5!b^R;l$Y^x`KV0gjdGPM=}{^IXf7g`8PY@3QYL9Cvo>>< zrcI`-q$vw_xh_3@$ge_smFDTLlCE*w)Hq_&ht`^;Pg<+Y%gaW-7WWY`WT1&9Kcq*GBn> zJT@voG|xtbh>o^V5hAY{0^`s;9Rq>e0i^iZ8b}-onK+J_R@rwja^n;=Vgf>BK19{A z5OK#rl(j>2`5<%_5ISGg40~_K+DPr~I2#osYPV4de$kNbS4B)W6NtKVVug zW?C?8S}Fz#SMIjh3QD|jWZl3Y}Jc_lhwk5~xJ>mouI$|+SoUd5}qOwhbqDOKa+ zHN2MB$w#%)J34utkJs^8T&7k&OL<4VpO)fwJ0X?wI+aTo$#In$`%M~JO&Z!v8Up{X zBjYTce+FRYlYKPEN0o}1$!$w!s=d70X6ATc=0rk|H)%knbQ*w}6L`Ik*Ynw278gES zF*9e9nG+-%^@@!X<+w(TPtuA?w^mf58G4maS}!+cRfvg`q5oV==*f1bE<=45+o&AT z5>=CDB3PcNzx7HK7LR-u2P}S#(l~D4} zB6MYXGj;X;r7fd{nSd7Q6o~p$fritdzMc-ze+FclGYLIKCvn(LQkA&#Q?U`FD({`9 zKsAEX6;RX8P@o3EnF`b*IP0L)YzH;Z2KCM%^z2M(os%m3T*EqDV4d@z`R;~pp@-1( ze>7HmH4DWw{SummEX~;lotnFVSOpzR7on?C`(zc|mhD}2sAZSEfmw*Um3yhY+M_@{ zf`GA`-C(y~$k0K^(0$Mh4zO;q8g>{3qT+=1W;hlNYr9M8>|;BsEF09;NNTNf5L-rd z9P3M;H)Ssv*O-hLyG?|v{@mQg>G>yj1_tQDJ{Ax|*fTr?*#*29)A)P1;=8X^3?w4WUB~csQ|exnTvA)HMn;A{fcwkd}k5 z1jJe>1{V^#*1=cQ3HCx5Z<(wR7pYwxh2Ua`b6QNS1I4d~P`n1h^IAgJrF(BmC?zyY z#WbG`Yo-ZKud?k1x$7YSE`@Zke*xrQ4kh~vFgKhy#Z`o^Kftj=u2kUV1?rqCE`eW; z5_(Ak9t|j7{?JhyH6gmxT(K|1ikC6BxQx)t>@}KkjSaRFxe;A%Bh@NiVWSpAS1P2A zu2(6b4h2`IpY>Dh9@kioI3)$;N!KXjwj#Jzfi?u!Ia+!Q3jV#2jPD1Fe?LIzn8P_a zDy|1J+(YQ~no0@7701CsHvmJMpqk&p+Qc2e)ZK*M;M^kYOPix0{ziz!jUeS_I3YmK zaHHde7M+V5+2~ZXB5<(i6*m!jlRejib8kLi9-ORbYVA#$u5O159DCv|9><%Wlv)rM zx59>QgN@xz=&hMHblX8He|dYVB6mzfkjv z+08?6ujcgqnuo2?oId0^&`r!jaUWYC#tFSoi8~r4j4R+paDQreJb*xT0b3l};iz~J za?sO+KBy@f)0B*O(yog#HiOV2h=;%;k3-pbiqMCgT-hZah5&kuf6#}gEM6}02;{X# z34J6rcgZPvUY=)P;H_hDdM5Ny+hoV!J|9yCSLx?*-QELJ$Qy+Y{RxQYCzwY($>xbC z34KCa^hq1dNA#2;{8$7}E5eUM@QgzWii)j}dbUFk_%Gn(--K?}$R5(j9@NMl)I1{K z;1QO17Rv8Cgg$E$e?0->o&y%Qfk|G0oxRC=AcxEoZxi~Q>G+W5LxgUdf+3mto`=l$ z0<8BUF!d5x=w(8mH!F+BJPMDPN8y&#qp*}y;^if{BaanfE(`jq7i`Y)e;D*d8~G5u zWTOR$UbayOqE|9F)vMrlZxH&bskZ9?YHOGEbH!`G!Rv&+f7YO`OctW#*KO2^=nY$| zMTp)s?-5+479&%Z@|7`Hc;T-=UY=1MSY= zVLyKm`kv{ue_i0T@58S?Vo|&{7;1b zXwO}WbAPgt>JWc+t~tLz$o@*`F9!(36!Jz{E7X`~__V>tEo;rMnxx$-!c?vKO@ZYI zepg_He+2&n00960v{-puQ^)qt1%zBfkTt9-h{CNnYyk|!g$S|;RRmN(6tY4fB$$K% z7A1(d#;T|+3QvD3P?uT(cdZYLqOw_@t!sUKEv`kVh)aFe`kUMvs@I_Q{ZT%j`(eH_ zXU;iu&UelkpmuuzO?No;lgVH$LcL9ZI2_!;e?clfzRLodW=`|vZU8iw*_VOFHW>A# z-$PmSUl8g&xY*6<9-x`S9RsL8gfw#w&75XIvxGA=3p7AGWyzsg(yVCKPzBA3O|!z4 z@agwa1^od+y|0zD9(3e^4#nf>7u=IzeB1-a&EeEJICuy_NI2CR2fYNCi-SIB(Us%M ze++@vm~1Arm5OH3e}(q?Q6>E`Lj4sAgm6OQ_)s8@9fv!U0|L-I`Xhw;2&&?TQ|IBT z`U$-WICx9|fP(=&BWhGge}anXuhCp!fM$VV2=&PjhBE0-Q91oLg!&XN@;Q7(FP+0$a{?sdf8e(vwsGk%;0b?6s4w7RF{gObF1TY8s)T44 zXIEo0M2)C$Fpm&jM&;zhWwF4DKNF|Tk_DS)f$R38{}-nFB|`nLHZPXp)Fj-EmpU{b zN57Noib-~*L-2=7e}&5Ee<0LX1nZJL^EJzwHNgA!l2bJm{RQaBRra}YO(10yWwjF|5zwMe;foxAT;JBI-E4)I%6HBpdHXEdDO*&aowDQ5>}d8h2kn$SaittM zGzXd^%}Hy{kxg^dU8%9C9~g&VW3`e_;Zz>(-#8uOLbaXCE5*MYAeL_eJsAud0GL`^A)nu-rJ5KmI$Qhc=9Knd|XVa}WkmLM1) z8n_7e##65%!xstgg4qg0FfYAIyaO(J!@T>VO!!hzfr;>Tun^3fbP5^i6w<*)^j1~& z2LA9$`5>4NQHaxUe_wn_TBIZ`3Q{b@gVz*~1<=2jsWAUcn14U$ryqhbb-4`1?fB^s z!2y3i=t8isAuQnmaL6Zy6NzS*j*GAeAjU!92TF^QhZhV7!+TFI0?!1L8(Z8)BC?2!Xpo5iEq* zCBY>_36O<@>7;o157EE9K^RmLj$mN~Q;3{}6M%S^L=f*nDGnkDAj8270%YSLilF@> z97Gd9j)PALf1tp@%pooW7tDh3jX|(k|I6L|VD8oMX}lCogI_NElwc`>#Sm`z;%>~= zbE65;ITkV{1@01}89)wq!Da@O2o^iUi)kW=gGrr>U~wcby-8m3KjLLDDgg0N)f@zi zCkUy;y_-XT(Kwj`obi9KIkGl0$%Csqg0QBhP68;6gg^5R6OQK!OfD z0uXfIf5ReLOcYVUU#A|SAs5#m)bltM)+-UbF%n1@8G?z1_~VZc(ohk|M6k3WN|6kt zLxBtgODFMBLTafpa$x29frXt;?5B+_al8zolo5}(OrqB0;Xv|%ekl0BpQHM3iFfaS zO#co@^dC<${l}ABpX=~AS=!?`5XX^f$9BY6fA)b^On#Q+z2^Xbw&GxzmTVaPMF^Iy zYrI5|7U>W{YdNX3rjhJtlk8`cnBz+@Cm&a$@Obmz5KKvc#W=_rtfz32iTCL@#)Kqe za+0yEk5)()P{I3@i(o2`KmSLA<-XOi^GK$}A7~*tB-43%52sXEa`K_EN!+2+Lq2Ek>}#EU@$~jsaa3KEr+ej7&h;Un;^Z z{UR(!umUZe7zCY`XvfyXcqtrr6T?EHjrilH)dVQOK@kC#;9!}@oBzpS#W)~d9m`4F z^BjtM0iXm1Yz2aq=wD|~U7cKtD_f!Uf6<(9Y$ZXeLVRHrT-Zg-uZHuk;Z!v~zlH!s z2)343)dWw|{#sW_F|drKAlT=@mWGv-ndWe~9-o7M;BN>vv?8XR%?&AWN_jj5{zPVF zYkxbz&j5bL@H2rQ^48d3dLAx=!OswW!-#ccgKn&apX>H(_ZdWsl~CTm4leiQe^t$i zZ)@1*ZCca2vPuzTVzGsaSa?&*_D5y-}9{Jck zvb6l4<+snwkR1q0THp2G?@qXU<7F}BjuBX;NYGzw@B-YN`xATQl$IH&l@xiC7 zJmMA~TO2Wko)oueud2;OvY@VLUA4inC(c*7&1)ts>^khw8g}2Ue!1Vi!~0hS{qXe5 z)Ag}Z!|Y+l)ZO=TlS4M!j;hX_J9+l13VW2nMph&R|DLq0I>FLEo4MlRfA$Ph-_lyg zv_*NFCVl5RQ_b`zo z`j6w|mW)uDq`Lf=x4fgcfAZ+WOUExwHoKEDt8Xtj6I-?={nm?#yAMtghc~B0TsjwSG#4h*Yr1jKY5Vmys#V{uyJow+{3g9m z<6pFG(`w;wpKqUL9N%}n&9*iD7v|X46F4J6qbB>d)u~>NJaH>Sf1Y;RF!TlqiwZe^&_>GNWkW3GOL7FlK|AyQCOa8;(o|3$e`YO{GAzK;+morCGg6AP zgz3gSSap8p8gWgz46Y;h6Fj2|S&p19%%r6Kjq!!QQj|h@mZwlI$)Ip}3MGYNomw12 zp@?_qRh8VzDd=ut3`+%ZCu2k{w}KWuWL+#fc@sz~kMHqWB)H&UDXV<*^Rh3wtznbG z?bq#BQ@*PCe`;4(x?gGaz=@UaRgop>g=v0sC)n)lk4;O7YFSh@`^~`$U_}$Kg!0Jdp_tHJ-e}QqOOZXlA@rru$@c>e-F$g-7eozm^E% z7k`uBe;QRHZ>Y1dLz^P5R(=ueY%RY0+B3qn(r@_g*$0@iIltWh&$pQII^*<1J(|_E z9#6gqWAaSR`N?Ue;YLXlR{F1)%`bB3X?@XNdva&d>13x3^``bF7g+O-T(Y@*@HOkm z>%41)r+T6TUYb0KG5Eh=-}y-9q((QjKX->sf9(|`QHSA`Ne7s7fvCM%lYge-Ds$@^ z#oE;NHqGkPXk~SNMws*VNHud~;HIWZ!OSD~j;W)07X-m>Cp+(_yWF%iUFKbh#sydK zPK1^OPqmAy@EL74aIxLI=IXZvrWK>rFFJ$?;}4gxZ>TG_ThJ)=>L;NSA|2}~RtzI9 zf9JvK1fPvw#*6!Zp1;AKR#d+s+SuQ9L)-alza^}iO*1@vP%~ovnBK$+m$j6JRaKRC zy_=`o9mFVWPjni6oyUGL_Bh687>axX+5H6v?AE9c+F3D7xQi+u@0;elQB$)kP|ZmD z){+8T>aG_*$}UT7DNUX5z_F6yT_$LWe@&fmC#XBqSbQ-yI?-Ws&7IagFXxRUwS=ID1;aPd`gnR2YdUp!je7O1MWzT0uu_DX_`J(-lmf;IM zlA4|OH!Zi}By?p?ªn=aaK)G}kC$Czuj9zI;5`P^qo7ThKEzRbA@-{wc>f93)k z(f;8rd;je{5jwCpx^j4Hyex0}GFE$?FVDgJ@+q#Tk@&pdiv7kHGX9+}ZXRfGurhEq zIyEJWe{Woq#?5tS_yz|w_VD=m%2-G@W@!eyFtWal}ySJsnLhrGuc zMO?@UJ4+jPZSq;wh~_?SBJ+IIf9+=s(aWRX{PCqIp}qH)S=|fvY(Xu|$JE-!S9JM~ z+&~SvK@ksZe3~YqMmUDtK*Z&zBbHBNHQl`a$H;?)D^1bH!X1;1Lrq+34Sl{28+$@s z(YfmTqJ#yEDXU{xt32wyw?Al1$-LlSOUXRz(4JtW@n6@K;d4dMl9alCf82UUe^>MM z-TnK|RUJN)IRC)&y>Xp2{YXYu?S8}7poZc5JdlQ}`71d+28RyxMB7uk`18xTJ;;%N z^h8UVDh`d>BvSh||C+Vsk;@`ug=iTwZd8He$Q!kl?Mb8eKQ(!lZ;^K6sl6XnCUe;^}46a zY}B7FbY$`a>>8I8CqHSdtViv(RiNJXbzdzC;GV4wmW)5TJM^mGm2KO6xlHo_rpXwC zCA$vWGXqTcisP=|Ys`WJ(k?L6lG#}i;}=B!eEA8Z{hFl)bY%Cof8Mo#~{rqD6wNLO=gN$#b9_UnwQtd1?0FMofN)^x=5 znwh${JL=3pZsM2P*W7Q3FA6eflH?NMqVYqv; zK)P?n9@c^4XQ>g^8@?!vDd`KC^aU2j+i})mvnrk!y}H;^e-;yz{c3dD41>*~#l9oA z7{!(D7%TL=KmJI`#kIX-tzw;b3m)dy%|NQ=$C=(Y*b&wFmBABGXd7|@c~Hha&avz2 zSmpQs00030|3y-JJQMEspScxlMm1CJa^H+C63S)fQY*KVYuL;p*A3CdB}$pgm}F5H zky0A_R8&G?e?~6jBZ^3_BP4RE@!RM7&+mD?&g(hP>%7nVobx^pB$(mUa0TJ!bx+}# z|7tdlt^FJ)G%hArYPcf3zsT7pn=JBvW33h|8#2J+9%QK38Vh2lH?xnBpbIvvn_ z`2>z3Crt(>oNBM_5A_?Gg3%?lB0j5w>{mc@;^pVMe=}9T<(s^r{6^uy5XxiQLqo|+ zDbt2bfNisem-yBvr7Qw50Vob^o*6`N@ z1{$q?=x0AQ<~GoV?t1=7{-?OB+L&r^V4cvtJ-&eK(K6Pici)Mc{n1k*3NR}vEuKtd zqNI||l3XN#G5(mstrH7Z_@WBY5GzSzc2&*5e*vjnBvuAL&}^kN(mQtN4D9us|Fj~o zTTQg+Y&1BayL4PpPk;a2^CfAhaYFzYEk6snH2oe%F*QsplxEBLF;%)_ErGF?HsBPQ z*BY?MLjZfOhfCAtDCLflGJx5Mtum>Osl2u*@;*YA#PkJ5)MJpGJ$eGBnw8@?q5+)L ze?Hc3IOXA-wYL9AaobEKfk9T(Y2SQ{-?uRG9Y(P*Z122R$qi(hp3Ne0b|)2$UqXPl z_QImnA=+C%I5}=t)iI}mlZWb$os~r`I^o+o{EK|hHm6=qm@*V9lcG+HHu*IbwPd(8 zoBk7<(0V~ijiN_5EjrEia%(wd>RH^Df6?D;>MK!gVHoQ@UDnSaOX!d|Wes}1^|e^D z6i3qa=!&k;VFQczq}tJ*>!UrnYb6WaL9=xQktVxHCo6;c>!WoY8(GH+6=ss6vOpX6 zk|Qd60yyV*>t8OFha3tp@-142`E}pI;GjvHoOU{2hgOue{Og5 z?xl$AH4yt|<9YUs_#f1wjh(O902Wp0u3IEwfd9~H<+HGNV=~G}!$4$0j)IrkkGk*M zl5|q!)qqco#Pds>hqwk%d1n{gIgerNZ18aTMT~-*f#eh!?VSE^>-WP}1|-h@B%c5< z7Xx?e*pF+FE7$)>n=ivGp3w3Ue{XRoTOFORajwC0{!Q{hTq~^Gxw;xs;Umg5CUxR_l3B1a8Ld`9ewY4Xvg(0f+t(?0D*^Ud`MNtn-+W0Y{fjD%_ywS1 z+f94$NJak7&AHtb7Q4ChHS`Tce6E61^3OAGHLFPv@ZA0q3*V)HuSh5Kj6&pt91VV^ zLY7n^J~vzbnje^*$MQ$=>r9V0AGH;TmF7D0+G*Mh*}kH;|M<8h3mHA%nHA1Fjc zRxL~IJum*vJ?wV1iF$t8?Q@J@2TW@i2D*1oP(!nxdDmWfMR|f2Zr|WWcuAQkdNv(GTXw zlP}g^g8ejrENzJ$&v@5)YdtBhM|)W^f5~X#n(EiP!J((Yq~`VEMU|#S6^<^VU~I{8n*sZ6zrGu8~c>X zt!Hl%;v*aVyYG%)oimd*G5bwf*A#sRT-Ntg((#yUrT)Hf7+mKm(7@KU6pBBC!-%r4L(`D zq9p+EWKdwq6RSUGB`XBGK4(9x1B3)t{n7Z909?}k#IWFC=Cy+apuwJ%H&dR2E&_B} zf(T#!6C)9Vz4Al8O&~Q=L;hDbOOam#`n#uT%!kDFhp@(Azs>#Mb+YFI7GQ}au1d*Y z7fU+xfAG&}s%62NwnrkEz0niC6FBJSFK}1cX{!}1Od%@-dp?hedbhnR+bQ(iNm}c% zq9*n)%hYX)&yQ^l9f3aFCJrQ83AE7-_TOk**)XHw7KN@0EQ98Z>SFKb0ic6gmzwn2 z+VjH+B5CNzIHht?+)GvxZI+2m?0%7n8s*y9f3#7dzNBx-tNh;Ij#ZSiN%nn~}0q*+|f2NC!Xa9QhCU%#}IkPou2tkujx1ru{n z+Vny4cR`_De{c4~1{U_Fq5^`iXHWc6TBoYumIhZqY|)+QMThR4XBK+mIQf0dM7I#W ze}13zZDLn}*@vzReeX&ShI5_;GSC%Z7TT-2xSYGAR06-%HlRkeqi&z*r0eT$%7bG1 z!VreG0~h*ML(RSvmhMJ2+_;g#K7eTGURGDaz@H1@b#~MW_d$Et(UunLgiPp1$V*EG zUkfV33uQn0NKM@+dl(+@O?AkQ`V9Tdf1`WY7#d38)56NI@dx zaOkoRE!y&eUUloiOz702$lm-+p@i9GSc+GFKW4dKfA&9m z+brluf3$0o7hI=(KuzDC8WK}0nJ5^-TL)%AeTPju?;634g%MMGYHfy5FO4pFvd<`H z7q5>w_cvih?wlpt0a7WXqzPmb#^L&~M{JyZq5_>AIS`S;;>UtTc zbp5gr&D_SNIl`-iv1)rNS-9f3LjO8>FB4 ztV1epX@)9@v*y+JV_}`EMlrY6`j{i??ow3)*0ljltr8!$wH?B9S zBDkK_t{a5ILZz(3X;9*A*Vai_sk1GsSslC-p~k7~A=MYDaCIsK72_bw!>7RbkJ!A; z6zpz>S^4hZD4IjW5BM3*fZ90+>K^>XY@K6p-$CE*lg75$#bgEuE5D6&IJQ51ua1{795hLQ`^K)K-hsCx z1#_dwpY=94M5Vv0>QdE$oSCt9Xrr{K#mUa6Hp+`z8|xh@&51FHE&ArJpWU5s7C7US z22xrgN)`8CC}*TGROU*KcrftYb8BzAce+hDj2husz;wZ5hP^c~Tpj8q7dGcC7SZ%{ zd!8Dcp)#1mbZF^UpxPY(j=fp@Fxn%lV=TYV=B={euY3B{>HX0b_2Gnh_u;%kF(PE4 zO~1$LlBlzHCZCh8g>{;sU~CwE42Gqe_^l3^vX;OPOa~J4w_`brsY#4fpihj^Byxco zB?mX^cXv6?oAPJYMPu%7m!=1pyE~v4MM_i2P)LTrf6z8p9qc6m3n%BRWCyx7SBrO! zvejPat8SeFe-~DaE{qjg*y$8@x8)WawrB6S`y&c8QcZ_XlaLg>;knKRO<9{^jvT%> zKRl8eCH~wI)HCspG5n~6bVYe#T;EsI{3Tezi$x|+hzod_R%3eo>Nc+u79fPh0@$m@V8Z;D6ZV7Iw*zf z8uK6VUpgV1xFUO8ZH6WqwCbA?69+$5f8c5Z?O!%L)+#a#k{|lVYIf*0gXL=a@8|Lp z?iYtpss}~AB3Fs!TF;%U5=Top4)eD2P^-l4g_B*NT31&AIkaIu-OR%Ml$88nFx!7g zATL`;l{vhS(^}xK$QWgfZ@I;fsF@>vOOcolBO?|42S*}8#hv!V9^Q4QlnlgIry3XN z`UL8y-@&VKUQ7Pg8CE+7V70cOL`9`b*KA>MiqyFije?0iXr^u+dFW4#*dywNSQwTa*%>BSHWH|IUh+iV$Ecvtjdi)8f zA%$^p{o_m-(#UM231Z-%F#mfTxv?df3R3hx04*4lI*nD090^T{1)7wZ z)8IlwFSPbPY z?o3VHRcMnHAqmGvmvlo#ITPz;(|sA^CUsBJvob1=kYZMg3bXlShtKuq1Z|FGA2fNh z30nZ?lS=){Q6jdwY&@CS za@)Tb%!iy`e(Rrkq1}oXS1D=nYfhvh>m(djYoXx5#A61`T& zaelEGFc#enJA=P@7Gtio`du}*>*efkD}%QLan=nd64zH|jT1IS#w0VCQ~pS(uXmiG z9b4rumQhSJUYS};khfFQd%XT?BZzRI>q0AS+ z?~KE1An3HAPH}0Ix2Jct<4?p_($t7jgTWb+-QNq-G$7BV%Qia^@2iG^irvZr3u4*X zmv)p0>oTLwC76tgk07Gcntqqyz`2!Ja2};iId`3-Wx0G+ALV&~Lb%kNfjii#GF-=E z*(*zP9XgHGk+|f_oleWp^0eSJCw~O2hT3Qr<7mH6wSFq25RQiy!Yo!=gM)t|MO+w3 zVpAZ-i5(b)*hiz|2y9e_{C+)CM3`Qn*=)D$>fWqqdlYeyBz_1N0~H&+F2T3Ipha!K zQ#Qpi?g7F^OqN0k!?Ql48FW>GflT2n3V7)rvpx=9Qy#Xb zVNCnF7)96aCF0Bk6}^kBn;@2T95uDd2ooLTEQ3p^x$kV+$w0ik7w8FW{NzHmQPo2p zT#U<)5X7qZX5DO4_)GQXRM~Qb^Ettl7J3eA85r&N2Uaj5V+$Z=zPS=^)eN&(pGEZm;)t9T4lqyD9lexI?G^S9}VcaaKIK0QZ&@of}uB*$TYSW;vwLZ zABnH%adWq<^|cv-jK*>PZTE~Kk9YV}C&HFOnYns`8D`8OdjQgnNESjQ1a#?{v$sHX zXDMuX7daOhI!yW?T?8___=U)Pi8Sa>Y_E^dUBk*?2KWIX^O2}Np02$O!pkhYI8pd} z`tlL0Mb@=r^CQi15Mw&b`j6U8Y~x5{AC{IXvFSYemOaG>vK`gwk?~L~gfoO~0lN1OL z@O(JN<6pWe+43YHMofiO__RyNnOHQ41bEnbbra}Cm8vZ-zUhPw25gWgxL1zI)fK)G zDXj&Kc{QkH{BqVs?82}h_$e1OM$v$D$uvALXSsTt=MJnU;VXEBo>npabI8%3`_Q#( zlTP7kz)}ryBaK3~E=3OuVrCC9CPlQD-_QeN0$Ph=LyRF4Xas_e6!a|K$k9IUB8}{y0a+jvH3dYb?EF{dM4bh}>Be5oCN{xg2TaaF6Q9v*mrNS#C|W$v8yeXX@c|<7 z;uV0KcUxpR{#xbqILX?%#fSayXw#&TQ}wqkyBuQ{FB$?=8N|{33ix#wTP!((>FdRR zwh-}%dB}S8(D-4`FDszzShF9>UnB5lCM6%Tidze*jA~&f0&JE*$4RpAWQO>YM!^9L z<`}-)2QM)UPKo3-L6uZ1Z$&{jWeK1=D@R~+-H|K(WE(PY0aL#= z-C<0FstxtPk=E6(CoV(^l5V~k|FVjT`CQio9+&lJ*{=y6PDa&_L4~4jZ@@iu z13aEuJdD(2jOB_`SY8k28+{v{5imU z7>!lLr_k2KDwlREY~C!#V|XKoz3erkwU_Y3jr;FSqWmS0s9&d0;l>!2tSt$@xZ@0h zT}Lo`D#wqLkf1L8*|kfTHzXWwJ)4%$EA|Bijw}OJbvEQEfP%u|%PROP%kLOx&QmKK z5kWeKb7LQ-M?>FBbAACFq1cktH$$NNku$9(@FfGgi?TDisO6CF1sQ($DWhFIJOO>Q z+rC-1UjY8kJL9ju`AM)(u(|0LQ}smT9nL*i?$Zl*{?iV9R$HQIbV&fKgi>{I;vYk^j>^JsFHLI;?4jrz7uL} zNVHYjJ}Y4&SG6VCHyK4;=Gt1up|Dv5zLlSyi7tryHqdNK3PWReu+FhHNpjG;ZeJwg zbMo`4y-~FZQ-@$1(1P^!(VA&nf}#dympJ^ngD_(ZSq~{kJLFc1J0qV|Bu0z#0@tI8 z5ktr~b+1c3_Q2Q= zJdK2FRJxFi5VS2#CvB@Bw3R8?Khi9PZ|{99A2g>yo2V;cr?!W3R-P}y=5Bl~EkV)y z+!sc8zevjWXD&mNz*Ac~_G6Gf^;knLelxqBlQ@kc2YA5JY{S@ z)cS>7tu*$V0gIk-rsxsy>ra_-e!IHYQ*V&uQDk9Mb8iIFXo0|a+CrZ7yXx)`JFPX&bPlLR$52+g|5E!xUr00Gi)pm>Z9ZGU3Pycd(s=Y4m zyaXXN{Elet3uX@phUl6S6@T+;%@pW2^)$m*6~HPa9t=ef>&3 z0`~c;#@8VH>#Iv=3p@udrr6^Nwe|wSi zw{7Q+;n5AaURiqMr!Fiq9!`syETPyRm3fc9XG%HS?H3vO{C|P|rG}&EgGdq~H}65gli9PoT-hHE z`mg5*TFCFa$pn!{f_F6z$?p93iB(shi-7;_Qw_YT zYoQ*wey?IThOh41cXLk$zUGqQeB6g-`4t;2>^?(r$puRqUF7-o{xiVX{znN zYabpSOMYhy!K>GiJ&f%&=buAS{Y*o^JFwE9zkj9wm;4131pIAfoBiAX-fJ)4_JlfB zJoS9fQ%S1c`!1L^d*%f>eEp1urh6VvgRVB-M-NH-@y)`4D=pnynwVn>A)G}|UcsSb zW>$X#;$GaR6Dk%vAucHv6z+eCk#aeb{y`$aP`V3x!9*ldMzOV6)Ydy7qPRtx9=Qh=d2dgDu>kvTf%E zh8tiuy!KD)mMI-il{=Al62-k(ySUEfkb4mZqd;0r(*Hv^aNJ}GNzo;LsGuOZRC+e%sRl`eQi zUxxW)9dDNz--|Pgxe{#2htkZ|Yd1cXuM$rWZW}4Rmd4O`~uI86da{oE$J%KXs zhwq7ATkcElE$^>DKKD3E_o?>~uW0XS{<5DP`c^g8D9!Vaua9Am%06;$8;@QW2y0D` zp%+9KbZdMk9Is@rIQKB0SE!#T|GV6QFLZ!12@M8zp1R8e$qh_u>f5a^VNtqSMgNjp)ct;mS0+?oc=m+#}E*(2PG$1o?>;`Wm4$Yq#Kk~64(~2q0tY+ z?}gcR4m2YQ)ap?gumvZaRC=_a`cLS~HEw1GnqRT#mDnuG2I`ideSA+P z0R^sVEdJQW{8D4>o|#j{*R=BN39OfyXg(AZC6!leEd#;5_i-m{0(9+afsKfp&543D ztM-$e%L;tp5c8a8#TewaM6ZnVcX~{CZGl5@s4L#RC7p`PH3L(B9M@n|bhoU*U^aph;O#&76OqAAS49ct$ zu^8Wl7e?j=I7#$& z3F0)+$CF@4(hmxUPfb8zGlw_JCdcyn3;Wi+#iF);aeOKKBHeazYu-Z3W0QnoZWxmHiqzjK4D(!&zsDHV(nq z*s_bBS1*V{R5O?eX~_%nPsbT`wE?ri1yvdg%bY`TC?hsfTLhZa37ZuNtM>?l%mXI2 z6tQbW{aoW`{si<#Na%Qbg}kaQq#=0h*{CQWOxG9vuL$PCz!Q}lXLX4mh)sMW%qi|Dq?ERDOy}ck4Fmo;O%ntDu^1ycrtO`< zl6+-mLg)cpO=AeU@8Irgd$96TDn|Xs3%aoWxRHS#f$zdo3j~#$Ujltw8G$(aINYCq zKIlmKM~LG}z6qRJiYPB!MKU7_t>kYn&u)_#BL|HTz0Srw7pVL#S@j!azQfUN(-0Pq zi-+}LKW(^T{)s-w2gyn}$c-Cqisk_6kM~8-_jCuL&Ign8hO1oO>(shj|Fg|1CD04obk5v|*PX2{00>!rf-?6e_NE#2 zc|SWK2P0A*5*@xgnj>|!QFVtXV=S@ zmZ|;P$7k7Gqo?=wGQgFQx!kA$9XECq(QV(RPy+=qh@&-sdU}pm0w1_#Gl+r9f62LW zaSG&v+%rW6ZLC!Cv)s|jQQX35{Iq$sx>6-R?LAv_rVVx_zk7B1$kTIQ8IZ0BFJEBmam1UCI zjx$Ixh)s@{=JP5s>#`zFROvj4=DJkK7M3yuhN6*%xk`o_P4tANdsW!`wcrzl zlA{@+-upECG~ zN1|gdKs|V-P^9BfgopE25Z(6g-;8RfO7PSiY6(!B;8_m|ppD9T9UTVO?pS0T3?gab zuoA;K{8A~i&)d}w*I|`*_*1?jT^SKIRIY4FuGx3jZ^`2j1zU3>j_wnB<)(uR$Z%bS z($IJ=p_pnqvi^kFLNX-|ph^`K{5hz&c}mqsik{v++PG4X|DlQQ7?NbojS*3ugMLn| zO*EfCJ48FUM6O%`jUIlfZLw}uQC)^V@<;K6dWa37qlLzq&*o%_+6~|g?a*qV*IE?6 zYDocu;TX{q-~ksIwUGJqPf{^jdV7?=|{X;{t8ZJZ^g6x)*Phf(%Mn zra`>VgSGdSzTl0Qd#M9!cejY8yE|F~YvZ>R%JYM~MA&B!w}j78!EXQX8<~f6J4iFr zQ6Pdtifc+xCfVz%YWQSES}2?g8OD)Z7cztkvuWRtGGT1FO)yrJgDEVaP4|>C4l3fI zNJgAQk)a~CSX13rP2#9nR+mJvDhqtG_f6UW2OvgydEw2zX9~Of&Cd8-DmcK< z((Hvi%H3LGgo&||GdxBT}Brq95GwYTr{=f<;f>}I0Mr382hI6d1@X{#N0l1gAAX%na zIR96rQNfoCU%75F;+G@90A2LI_)N(1_K+p3S4d!BR)k<+H2>-QWxXK41A{s~o|uPi zxvQ(>chQLQ?iLu*(zx}z=%V!y1Q401X=baH8=}&A{rT;y=ZXmwJ}w^Ev(2J`f_pd6 zOSA<`k~G9QChJ*C-^+eTG-@X`@0>tY%p}cgRx~Rx?9~;O`1P#Huy$n5_1N9f2vq)-fm5K@g@}d9 zvZDWdn4j&<`_kdJgYDO36oX|WjCVU#n=@Y@^n%45YVK_U*KV{98kpPWR1BmV?%rp?x6@GD}axH9xmco>OgG~L(&A* zN;F&-5Cf*V%-oJBTzRX42-cWd5^U+rWf}t!!FpgF67*Mi48@mdOL684T2qZQPGc}7 zbzY6MHu+vBfs+0S^RRj`17B7HMsd{P_a zGUH9R0m-3Ub7Yc3OYHHeqC)e^W#S02$J%U?`#*L?zec9}gW@iEddnEHK{4U&H`z1# z1nz+*j{S`N(U5bpYiz27jz;3hixBxs7{2q3U6-4KI3T5V#UOdaSTTWl{R*xk<%vlH>yP;`aHbULjOjU?#{GbG;q9Cv!{6E9 zSupQ&^zSEYusdHs)1~I)gdLl9=@oF|HZEwsnR54FV^50lyyj!HZ`=kJ=Sk;iW?D_0 zHdw1Rs{qyQnpHftQwKK_I?Y&Q#x~wBhWEY>!%EM=oRF5$m5~ro>!*N=9TI0qnwL{OQN&9A<N&H#EsP(8+#w*FVt7ZL?~TQ}zY-bp0IF$1G($(44y@{Mdzv>YRYyp?Fm|0>`XDL5xHQQgpf}FR z5^aYe!<0t*FtV8>uVL%zg|=L<>;${@B}j6b9vx#D^Za*S!k4^(q;s%F6T~8$Ro+1B zl!_M<5sMU&`ecbce?1@ge{41g#L*A7W1=J<51TI{~w$t6*Nl=QQ@C`&WN zq)uczt}osVebu4*(sNBftqe<5`+&+yX%JF^!Ov~86-xr;5OG2aVs@#M5!4(Jql>Dr z-3HZ8tpKiU$jO=t^Ru!We*QfDY;(gbk$Z8+xa8WL#3JKy()}_oV}a#LmIUxHXV0ne zeV!{?{xhEVYfar}KXmXleyi!>wf3$L9$~%*i`!N_$0aLQq-PSqbQAd%;r>DV#n#E! z^BVGRC9FXO#5}5zY5wjC{GaQ$_+|)g%YZM?q4KH^FETuL3C>646vC>SWHdD4^+{r0 zD#(X}i7JeNNLq~Me;2q8l#5FsJbwrt57AGtQ4_s{XW<+=8kp=wg_~L;jrW2bHKQd-Ev$vg!+lSvu{>$?&&rxvLLb#+ee7>IB^)ybq_GBXrR=4l~QBd30(QSjrbzuU{F2%c|OmDYv8d#Tudcd61YlywxH@ z{jv~!3G?az7Tb{fZgq%GYeekpd`-kFXK&z&uZP1+FRQrTkQ7+WE4GF_KZScp%gj0S1<&{>1E{ zbxIy6m^&J&TWYCl(Kav9CT#TrqUU{MJm0X&FseeR7-(O8WS9vzM}6>u*qVCD;hps= zi0;krC8&fej3EwFp7EZ(H0zR0s{FpSjW>er$SE{o%u)-XlE*}kqbgJ%Ka}?@%|p{VihIVo*{f?1m*PuUYs>4=Fi1v zKk#nLD7q9|Vd?#D$Uk3#fF9<7Uh#e6eL3NjjQdUKn5#^AUWTFfTf+6TsJ92wY|3@U zL?vH`o6DJ(TyPrbRipD3f~RLo3hAOit-uL@{oFDz3GWFPBWi;MWvf?C#17h?%jBQt z$Z}_}cy0Gg9l{a`uVNDuLMqIt6Sc5+WZFiLMQMDk7T!yTu-4CYm@Ieo*?ahm)uTHS z+g`v<$kEJUf98Fud^mTDv*Pr+I2ZGG1H~dxeA)T3d%|WY)MGI{q&9`}sr|AD>Rx zXcR8y-Qy2;sYSIX*N@9j1D=PzJ2`i5sqZ5$=1e5peD~3NTnB&NaG2gt#|TEpaO_(f z?3|Xv#9%&ddoHtKg#L;@H69nYwIl(IUh>+0=kxP|J!)qyQ$B~Y9+#De8N{Bi_ht2g z7?uo7f1h{0J}SwzsJHriEN_JtaOGZPK5cca@v+%-ODrna5WNO1Ej~UDcR$}<;GBgK z*!tJL-p0eMaea<;e@;R_A>6{uC3<{TdLE~Ad@MbIPOByB%{MC9VPwIFvqKyqr!=0IjY9#C%1=Ap=d+wClo-MLWj~Zlf%U)Yw`0yXQ|X0o zBSCW2li9(CY|UG$Pmgjngm1UOvA|tX&Bpw&(CmHFr3;RrQr)MJv)9?`>0D;_wSDk@ zW-=Fb?GQ^ z8~Aj82)S;X&vX}ho(~*2_E+D0ca!ydl#BnzexlFrKE3qu>3%=o$(i;ta2c|HJI@Nr z=(~uWtdj~SQ9T#p2a&v-?LiGIlKWft_#W8Cde)G5KEhDhbNjzh+5pE$$C5ohJ!f&p z%D}Q;_t3nOyPnr8-LM1E`#?ngosu5u(opa-UYf&%dN_+%6=_5C8@}n*jju*axefZ+ z)vujRaJip(%_SzU--ghpOM*8_IJ-MP(+ilKiz;Z-eysCXnD`la*Hk+UzDhW~<0O_j zfqh=GVk#n|`%Nj(Pyp%9Du~{RbDS1Vu zcvZs02V%A}-V4#yQo6IlDyX5#LJ@h?vZPoS!Y#jbXQ*a>SW&HoKIV0S*g(jxe6LEb zIPCKs0sc4aE9NiTVzu|MJuf2LIRNe|J$TYQGtL z{Z~#3`PWHd_)o$Zt@dw5)L}y$)4yTgZtWrg(On%5JVC-o_&a)sn}|ZICy}{UGQ2n( z7T1KQJLj2xP1nSPWR?1_IY&?+#5XEALR0}K2#Ks#$K8-PWs1ur1g#H93%wToe1rLz z`_XNF;HvB8=IB9ir2}%Nljy>A`>fmq9t?&3{7ydFr0*nv5-&Cx$ZI3SHfiTA5M`X0 z7Bt2#&{@Lt{Z4JKLR8j=nKL^v7x<^mnkDUw+ggx5L(hy|NLyfs)_}RE`=e)O>+m5; z|L@8ZW7XRk-5O0wi?f8okWR)9O?KBUV)!oq^4^kKox#jk9C)J+Tt~3RnkUJfS!&xY z@j`N>Hzb@kI!3%Ipo_?)!j<9Hw%wuw`F7YgKNJZ;uE*Gr(#j)opCM)dHWA>$@0`X5SxH3gq^8p?{p%Cekt|O zDB${S&DS|KtIoqm@RI5s;l0METP?n$iy3rf9rUKi^ygg~n9u9E$WtO@r^`16U_gpi z`{-L#0o~>FkbVRv$MLfipzygLD=4t9ho`x%7YU5bOUR^+Sw102m-T1(RiR?Tv|?R; zdkI7crkUKJSUMqNn0NCH-H<$BU3hHMe2*!fAi&u07s_OyLFUxNQ$$#ilVU+tAhxHN zsf20M5mP4coh>6fGx;hLU%No#t;r_Msra#MCi7VG^LrK9gGbYnXoJNe*R$^AKgV5GnPGgVf(|9D+r|;wJ!1nO|h3$(n(_!nJ zu4Iqig!=b`+h6%Q6N{u+7`WbC)!O0Jx%ugoBl=8~ z=l!Vr1-6)qw}nZuQ-ti^IX;39Nh7-y*%IFcd9akvV(cIDclR2vnr^H0X$V79j>m0T z-B0Iy*j@P@+qmt&)Q^btlw3BSb_hIqZpB?;huNKQDg#*Z8#=__5Fx6d0IU z>XarVIk0U@C_$Lp)kea%yzcJoBg3dLZ`UEC26s}`HK)qL-Ni0YVU1MfhiZHE_;}=; zY3Clh+0}>@Dy;(lit4M36N#BCE)q!!`>G5Nb(4Qkl;G8ONP?94~?bFQabMPmAMpsgr7YIdNOKj|Kj^!&(w7yMQb?f&hwGrgX zv>4cJO0nk4In$GO*=E@cop|AVY9orPMsQv~oQ%R+B6RpF9j=L_H#ZY17xUJA92p38 znFw{c^bGGYP-xB@quejtuPfWa53C}FN^mt2nFoe9VO?@{_98PCdt>VoSTtC4(B+ti z0nNupL+$o6yD6LXUTlkUq8YO52-U}TNv1Hyan1ZVjn?ZGJnp8EwRQt0b~s<4$s1F> zP&3Afpjb-Bu7;$C{F3`(NX(z-~aSZ#8n@~8E^biGyL^y zzNN@^hR0RS+*@Y_?rweVp)A))ekW)4RiGf+>Z8?_syrAi(JaF>Y8Rq1NQY$3?x3MxVUu@yO)B{VrtfPi$UBVn4P;ytkgFP@U13zH$-GFF{5wN~ zDj8frH|?J?whauCJpE#LmRCMq6NpII=<#$_#rq@5Rcax^-Ybpq6b4Op07C70Zf6xg z4%B#}6^k(MPRLM^moR z_dPv%nDo#z?7M>IgH5`*RG$%ZL6u5a3?A-^sM~ox^a~E#{i(4z&dRyBwj-%Jsd~Zh z-_8<6Y*-q6NQKCS_Uf)?8h|Uly6c51IZFB{oO%sD#yz2uLLMA%KDZ2u^>yn^)Aw@0 z{M}_$+hyir0^3?=ejm8~RWKuPMFuJBG!}`RpCvyq!$wP{!Fm`khN_7Qm|dvcO76ITrVIe-RGzudryCB zveUX|#sS7DAAVwz*g%sS@vN(N{y)6+PH!LD-*Ph38pL*WVE(%8MrhP5dv$diZzpW| z9S?78tTr&!J*5N(rvgLU+gy#WtH&gE)-|VRAald?+)p!BHrM?}lAg*>KcXT<*7xb{ zqsybDjyAg8tE)c!k_!GLpKr%?td=gxh*@(Vni#5 z;lxO)eVBMeR~6aO4B$2lhC_eUyK1~%uU~BoCT-mfjB54xm;g>rN3H8YMP0M=RH1_V zZhvmj`AO#txa`(G&~1{ZAU9BC9nDhcJzG*MIUSM-*Z1suZ3Cg&6A&!t;lo{~uVnnT zmV2Ht&Bka6XL+7Zs|cX z0-DNad`IxxSJ++~n7W(0YKN2#_FN~mgC8>U(xDdV-JDsh>UnG&3 zs5X_=z$)zZ%@My+UH1uWGU-7lI zb&t+1+8(2+PH|!%GfkJM;C#J@WY#gM1}?~D4%Py53%Sj>B8aH!xK^uJa-=bTwpXs3 zuozfcqvfpmgQAQKBg;<|kWZ+NdIB7(N{Ie3|2w_Kc30$Sd7 z8(F$gy%4|Np!pJGA=Mx{LOV(;vuTi9#^vdZ!>aX-u*Y}Sz@_j=ow=ynDi?B<^6F;K z|Kh07#b9Tv#+BBdq>pc8&$q6geO-ffP@vi`=P3NHJ*F8MX7lLe2V;vAWd%{;?G`SZ z67x$o)W8h}u=R^=uuxeHxv+ac2e2>A1>!hE^zXV2dTMNuh$cB*-SWMGlqlN@Y<4EZ z#qm{6E#T)_tkeR@Jge4n>2=;K?n05sU+Q(}i{n*+_`i0rOp`d??}N%6uR&+{dRinu zFJ-@5_xnbl)kvuus{OVnki$1%WRi>2F5xF1PqOV9a~J9hs0AKIhqeMwbm4Eo;P` zg*BjFe(KQf^X^R67O_&KS8n048BqwgC5&S9QuYekq|o+ON7d6MA$ldI%LhmWdYp?| zqxW!-EtIgPi*_MC>|0pF1FprAZpGBTPewFVWOBdL^-`KN@^VH{*)@zniP(L3?Y}vp zUb2nR$4cns!@a7gM(`U&jM3r$`Lse~ul0UW`|E{oc%1oU(lUHSEDS9jzydb4Z$eB0 zMhFS(^)VyuZ$b`0k{-Pjc=+nfhl#Cf)sY0>CEsO~Dd|rS3eG zM&6N+bJ&-$?$U?u@LnoI*G zZ%vYHSTvk)WR`zcdX0K{z1(hA99!h*cfF0zyRa!qG(P*x>iya{BXjvI;mIv#+0g1n zXmydgN8OSY{U8mY1zt~bS50xI{O+!&wn=hdt&U?Kp{b}DmYkaZmXe@Y5$_$BA9s|I zgev;lnwsvKtU%XoLua5n&`1gxD0u!J!3ZtQ_4e=l^>^)i|6U>VuyJjh@bc2W0hNHB}V!oo{Y_MPzz^Lwq~hby_| zMj7{T_7k)&m2F`5alL}8PfvH)n(iloML=EPk*>_x_8^u}$hPS{nYT;!3ZK|dRSlbn zeBZnYnqm{0yRnk7h}(2$1s%0+)U$=CwC)cV^LIhpqo80Gbi>DQ6tTm-d| zahyKm!MW~8oqWCh8(ziYh;vgtVI9$Wg3VO&RG6iw=ImLm-m(*!7UFV@`UOQvfgJ-U z9g&=5Ro@-0$>J|Y9{bH}aZ8FdZTE~O=RYo)*nv|fliwR`_>fQ;1??o;8oMO@P|-ycP+hDP`cXB8+pSGb9;Pl3n2&e38jRF+rDR) zd@cUKyWc%!W}M^1IzraT)?s|y3T@0;k zOC_rWV4Bd+{);9)qL&hr(whF88|XeRs`gujjUpO{CTdct;v4GagPd?4*#=HVdkG80 zU%DYpDh1C?k(ewE#t_fox=bWtgw5Y zelz;Wmh~ud%lPHPHm2!ve!W8svLIyz>jEPmu)@d}a_#^5gA{Bv-(80*u4_9%;-bF% zQ#fifXzZF$;5w~x%6rWmrExrlwDN@n9DF3EaeN6vhrY$tXUz@ewN)zW9eaok7WS4GQl4-l;-f&*FiXqLI1NHkjLiEHhIbl_WTqAJ z9-OS-xeh9*>SxZC5*uFS4~JRf&z4XEpm|sl(-v-#jLpMAwR2vk9E;3O&!ORWlk+QK z?@ry6bj+KZoS*V)%C5JZm7GA3AaMW)5)(Cf*%%I?K8db0At_Q?wmOeaRUW!M_QjJa zEouN=QE?8#=vLeo&P}`jAJ&+ffnHDeSv-ifijK2rri^<_LC-ru9c&paGJqH8h13JX z1Y-iT0CTw~?^lEKmi?*|q7gOKG4pE3lItgYCEzKsJ z0X~NqXA$t9BhtTiK`!9dL&I-^>wW5>rLo+r5ZtCY_8t%g5lTfu2xS#@AyPYD!u1u(Eo42sbz)`gJ9C3-7w}U>MbP1OKBv0$)Y@* z`<+5JVH*((!>6%=6|8Mh3zutqa@c%-o0kgH#Sc0ZVM6itni&r^ApXBc{cR}*f(vx- z4qfkoTOSNvqK!1lJ zOGvxQ{Dv>Uaxjj-q!O&QBd+Jv@U_MXe%QiY)xs|G;*bBs)i=Os7HsQw_q1)>wr$(S zv~A;`wr$(CZB1+1wr#&Y=O#C~FR4_evUgJ1$jN1~VY~^(0pWmnT2{ zgW<>bSA|o?&@P7mBF;mo`(YfvxFgk3L|t#D zG$Jsz(V3t0p8dYE>id=ugsl^}5Wrdb1w%v-O91f@;@Y+VDXpmh>?J&12m~Dl6!UYA zH6x7*a?N3Z?KASBtZMym3%>QQ`@8Sh7sI%Pu{1o}h&fVdqzBtPJe!$jzvdHj$XFBX z3$yz%bmH}WoX?9mk_)hphS?u9`tXSqh^jR5rvHbq*Qge2oehjy+hdj@T`XPxVED=* zQ_O)Z@R8i)d8rfqh~)e+`Miy0@B4B-ANyX@dmDUh_wci)Zxu~HhIx)TLy?MVBchaVS zSymfC!0Dj#cX{0}(r_&Gys$h!+JBg)x_sXqURZiVQEtQBk?{5|XgyZMZ0`8WswtJnoEuW7bubKqms zh)BhW$)=`fuLLwZRoKvBO=mzDW2iVV1X~xY9V{!y$!R$_9yXNeqMNLj=|rmyHcg0K zuT?BsxL!EC!nvK>X`}!C(ARFJi7uF<1W%o>9y*Jt`w->j&}}5s^d=5aTd!i9RF`S` zAQfeR=ro1{AAHh8;?BWZ9$nx?zpZe!=IVfaKU5GOIsve|;dn>a8=kXfl~`-j3?x%L zVk*b_c}I&pAD#|}j3NYTz1062_8uq{@N2<4U=WYeCC()WFORQ00QU^{3HHg}Am1j% zIq*JsKae<}yF9DTFT z{THEx35xoIRQ#WW$jw6_=j*3TrU~;Smhj&r0>IeL?Y{=;!|HN2KV@h9TK7g4OY-cM z%~T_XZvZMjVb>(oE+ZhNy_dv8ZwVhKDC%ySBRqaPmu z%yV-eFW`cL79jJ#$P1Ggv@)l2vN`BxG?{RJucn-HnT=aRXBL!L|CLVMO=7bqGvkc8 z9K!9iI;|F4n9sW8B~6uEUZ1porI2m9Vo0@}9&{B1(p-!#*c}=a)s7S>fm%5Civ;&N zhgX2FU|y)Xhwxu2)#EQNuuX-Vj_{HPEQZlpn=XfC+U0m-t`PzadiXziwbX<4HK|+8 z@!_=S)8Q}{ntESH>>lFyxQr~p1r-7v5tX?WyfVEc@pi@?9c>c zluxiYHLGNI@)|)#mRFR~hx?KLjZ*{~)i8);B9CZL9Pc4(VH8U){Q8Z%R)(trI7+We z?4)ZkOIqAT$d^Dv@gw@nd{mbdA8c(sXv`sIeo@lJ>c+yIPcGVvY+hjiMfnA@`2>swDO%>G?DppMd{fmXTpTejDKm&dTn|Mw0 zBbY=w<^Q*uTJVdJw7w4=j5n?bn)4E-iqMcu<~eYozK_ry5CR{t(B4N4fNue0rKu8WfHNp_zvV5aE?V zfbtj^eHS#ufXsS0QKG-0&JJ)&wzW7zj*(xmsoucMP6&s1rufhT+zcJT3#u4JXT?JN zX~f|y<@2K5;U(Ie(^;SW#}zBLuupUhl}TfkX>)~oBg^?9D(N#ndK1m@ z40Kx#%Qr1j>Z}^9w%yxj2dP=jm)w7YloJrjd`=>H@{6@px*!&Pg$_6uDxl9v9qo{? z<{|=8?;%UZr`G=x5P7ZZgHvg1bj(4`>lb*0n$VfEQ2Al}KvGM1bb*CFHjcum| zoR(up^w*Vb-{<#0{A+co%Tw^DxyV#4S6vRHA9NMZ(1M{JQ4Xjz!mSY_)zF|}HPO%Z zggDTJt}l?KBZFCL6s5yzcaxK zXL&UISkt%$_}qH2G<;dTT?XiNpx)(a%{b>_`8G~rX^?OubLdqbX~KTKZUqYXP00D) zI_#txMAvS2x3#z(b%B{n9@yFXB*n(Aqs;^vr$OxT&YEcOZMrPQr}tc7$7F^yQt1WU zQ|M{4r7V~N8cj57;@xE!>1{1@+AR-gGE{KRFvX_FQ!nSe{HB|$U3xUxCcU&nQ%kj< z2wT%a3P07RneNEEjekv)z;OzDY6&ePH8#NwR$GvX%y_S(4OY8fII_whAc*2g2^#j- zpB}Ms7`#hBf@hptJf>T?Wh-|ZzNVwHRx7tx;5-%p-Wn-8)V+DwiLmrzT~RZoO_dXQ z(I2PajGN0LuP1%!Dw-|uv}@hkp3d6b7OAk#$9&aeiSRyDO7g62TTZ+_GTRKbZ)$^j zL=yk4hq=t#RD3jMB#@fU$kE1yycgbxL5yZuY zDbys=DU6jKu&3*b+QE#4=F!Se%U zE8zY}EBfLqDg@v(f&CpqRDlC4Dk}^4Jea}Vm%67Vjve)*e;tYnoqMi7PA8u6y5BD&BztxJJjLw6)A)PCyJsfFcoT*=OO4cmeSQb+F;Y{&@qd3YH|;9A^KKo7}#cu zP+E&+%1*jEN_u(8&3Y|P`8O*KtXt5!!&wOJ;zO|wHXRdUy7e~L!;b4^^>)@Zow}_$ zkk^=goGGR-#Cd7ShuY{j~OysB)nP1Ot2v!Xek z*8NkIzV%iew9=(d1zkl8#J*-%=N>A-u_f)Sj{HtK*6;=8`lyEZ75L36Im1Sq{BEwx zb)i@l`$@zibYC^KsinTiPbsRFLa`5Pe{k4kR*hAq#tAqPniI3(HMZLJ;F9C7Ilv_$ zAHTL`TH$`-_vH*ADnwk|P)T+$QY`EnUNs;f7lIiS`7lgExV~se%2qUC-^devm`^HB zk$&>Hv5R%M@C8*tnPl}PU6(z1rlhDGHJvjfJ1r}XKXX$4xN%|rAFFa{NjOV_noN6D z;tcnEQecfN*TIqGQ-m+4_tK=O_L$t(B&29TYSdKeffh0#b+9W7+Pi^pyd8^QU?ItY z+%H5jJ>9_q1o5s4HI+gc=vf{nec?eLRVv;g9W&gyfr8+;eL8LVMmxBxG#(wjz5_g39Mjc~(NTDNrQ$3bFAR2L@99ppExW91e% z;&S)9-~};Y15bJ*ZwSKYO9bRhL=gQWuJGK28+GMcT zY==4_G_D3i(go2MF>}k^8?phx-#iv~pU)*COmTdx4_do-YV=nqX^V3K=w{$?-ca~^ z0NXVn{L>FfijsI$SCm;Zpqx=bBRvh2P%bUNUpNRUtZq9Re}`-cfQYvv7Lc+FHSUPt z_e<{0fAT{J=PwhOh|V27hMf>0e+@8t>nG$ZXe3=bOzCVx%DX ze`l)Sc%<+k`lu!Rh)AG;4upS1dD6DTdp%14*PyGzHxGdP?BTp8O_Y+rQ&uyI1#h7@ zOm~hk{EJka7 zokCAce83HJEhGe%Fm16S`_bd)A11cR3V z!bbb0z4c?4R3{ih84Lln$l*PoddVv9jp*2r^`6(8q32&L1Y19lwkv}{gC2T?9{0+^ zjt^ph^TFfTEK(Hd#txU|RKpLoCLo9CtevjU#oA1{$L2kR7 zlcVEXkQVS613$m)ZGf7)>!eGWP+o|7IJ zBYzmhjZxO{%v|J{A+NCC!SWIy?f3=j~}&tU3g<8I_+YG9mtsr$1DnHag4{x^HcO8-{DS#Iug zZ646=%JP_l9!e$OGRf8iHgKrjyJNZcdk)*)QkdE&xJf#ldcVzfz7Fs=Oy!+9x!Ur+%DLw{ z-spa&y#jdd4+*87FMeNMTzPbpWM(+DZ|Kpd(x}@}fJ=llKE=$bdi~~{L>b(FIv8_! zOFtby0OQHV!Y7y_r?}8dERPIaO-hsgG(ULgHz8m2;&iFAvEt0Gf0eXS+_)GsSr{K@ zib0T7kXt>?#t0crB-z_-nA^RLx*RVly=3OemIoBSt{PFT8kLTQQjAVC9M6|WCKrz1 zR%PS!re;lc-2#3GnCjCoixvT>*JnIlN&m{>XRdb%xl+(x$e_V~E?aAr1B&^Yq4q-EiDnIM!} zLwb=ghEFD@_d9xfRLr+WwBu*FIZBv$xv;*dbjFrLPK@61W!rh5s9S zXp7#Q`&Yxn!_!tnAQQbpzdQ$~E0ZDfMboBxA#n4Cy8xZB{vI$AB`w#8s?bmA-cBpl zx>0hdG$Gud%8E`MNABjs>Wn zW?zT3To%qQq1mvss+V6lxvodPb>Kz6j(zuva?p*XsJh|i0Y4x73*Tid0(PD@Py+31 zcdZqz7b#0)yKvs5aBjQcMagW7&s6%Uexh;?lR|OOCbMef(zw2-kMjHsEn;V{ZTyUP zUBd1Kp@!|P*%qP#+k*NUy7h$cAP-={ow+-Fm<<_^1tnHxszI~s>?R1oto1UZG)bpR z*)pa273_WZ(x$_(agWJp-kheMs=uhb82pLY6;=&CBc3P3RUjC+&D@6*U^UWhUE{A{ z9|+F(uiSXUB`VYIVc!P@LJrytBrv_-@Fz(T!2~dUJnl32_riWTjma@eYXElr+R>qf zs^@D2tGB&?zK~C%&b7xDjVW(yJR;p8-+Rbep9NOZ0LvkY1*6~i1bI+fZTcRXHCj;` zwezmj;+RHDkn!^85(7hC!bJ;ClANJ|M!2xn*+v?UG^!udyS0*Im^WOx$?L|Z+Eu?b zjHK$8QM|jisfDJ0l^J)5cLI*i>K{C0d=xe?u8E};bTRB+dSSmM`szC3}_r`*E<&~nPSFSC_TZ+uGcX@xse#*VzHS# z4!ev!-p17U>pH2>g#-}q(SQA9#d=djywhEuW-+nnBP?w2A(%wOH5XE@j1$nuJYcKI z$2c=$W}Yo}IpJXfJT#dxF|UqcbVtKp7>OBp3oXH}?k&F2fK@C9xA!s7WLd2;QrMe~ zNKRNq@R^C&e~tEn)B@<2-=MpWtkT(wbiIz0pCV+a90c4-lg4V~WiaseGfpToOyj`$ zVr2T5(SBTf%L>&`%GS#Y{kmh`=v?d6@VueBfZc!jR2$d?YZZ$y4OTmlZy?1ywhokk z#e9i^*QUqF+SQ=F9dRE;+*i-?Y%}%Ng)I-q3?C+wpXk+C3<9>KMIpJvwu0;#zmVk~ z-OK!%)vHzVIdUV*U8Czb)E$AmTaD3#n)yM2n|t)CL;q}3_Un&47o6m1)$3H7^9mxA zKaw@)aGpv3TLPp~hkD>$X)Xo)E^o$^%}ri0M$@5HJ8w|k7W4;98-v1i8Dd`3;EQ!K z=%W(!1ks@itjU0@FH3G9*6#OIE8%byuuJ_T7q&I&a>TP*_(pit3V*B81X>rd)sI~R zC2FR}SN@R-eS9|*C;&I?)t+>?$k&#Ek+6mA2X4;SvjzP56@+iX8>Z~Pg&6!R>be!b z3@(a*kk3j)%9gPEk<1EbiO0yRDrkoKN(f>Wihx@wQl3{r-a-asQ{)D@8_b>82XFah z5QIPr0cy#Nvuvqd45!rsvDPK0%zAWK175VE|a`#>Sa<0GLusOu{8LW z@s;FCI|yKQI#0AaPjsr>UA)9MT)Js6Tq;5>ikk}$lM64COKi>GEPbFZ%s=(A>w5$J zh8m<1!FjH)6wu226#+WhseaoA8Vh+d*3uX4y5kM`X}N=hRsipj31pwRGskvAg8TvL z-^#Srg0RK}BV-|Qb3*-sG_p>{xrK)mD|1r@6brC}`FMrf>1jK*+?hl7np8bOe28{X zt%{3TMEfme6W?)+G!qZ9IfrvqqN8wK*1GPKAbUMJ~lplJV1384Ek%yrtiKwF6 zHXBJ#Iu^Xeh7rSrpGuFLI5-fjzbkz0rn_>lhCa<QdoRL>aGZ(U6xs-B%Zva>wt;`kF*kOQf@YbnD&=T}`M=WoJdW&%B zdE%0|b3B&hr;j<<{~NynTU)7SH#b6ux>p=~yG-JMt1;ntHJrRxY{U@q+NMd>(5Zqj zaH|Ovqj3>KRK2WR=|V%{V7y1GjcBgq-`f=9wxFyj;oXI`rRky~g6bOydMgh4h6pII zKaFpXGM<#2l>jXed3vAqBUo)ssT!VMg7LXdq-|82MAyEu4zd5+UQRSgaWrH zm)rI^M!TnpM3+lASs;?4kavh;!sW7_v2NJj_e&?!G^9izIo343~|0#HFdQEeJ!w$M`GSpoHTXe^UO{?tc1>93rFwuhg#2fn}1 zM+{dr&I?}SEUf+C&hq?VPp=&Gqs-*|(50>zvX0~%O|jhOKQJ{~E2-Ny5p}U<&pXS6 z)r||vhgkW{%dp$iZRJGC=FEViyUt|st%<6NsaI&;HmO|6WQ51Lr#g>=pl_eG)^X`i-`*1S0+L$Lq^@B>=B_!1WP zdf~zWw~b4`JQE3nX~=wT#Z#D$Noa~E;#Sm_Z2Q6d49~0G7drV02GWL_p_b9xjNz|- zltGc>rrV-5UnwO!TZWpK9--UXSK$ojB zFGzB=ZoNgLgqOc8emzJdV*Dz5w41C(S+}=@vWC(sd%VM`UI{;v_2t8xMYC0@C)O-v zTPLVb)O5#fYc3t=FOv$~S{xVZRA}=tC@KTtRHvd|)8VaT`|Cph&fyo-2~z%j`$$h@ zD!RCN1u>D{rOSBTaqA0-$$)Z!XqAJk|WaW@s*a^z(pd_?=()lLA3_oh+$(E-F zOWC)M*iWq2dV$8L`q}|g;u^~k7^`NTCQ%=**k%4jf&iI{UcJXbGUA@TmtgTWO7#I# zqzO3`dS*W+$m<<|bQ`UDfBoydEMikt}1x z-@iFYWqL`%n(@}ZVGM$?`r!GF4L|ii&qc5lN;>1uy!5abg99&_k?tMsW3f!%ASFi- zge%`d6aZ8|EGm)fTy;7h5N`fCOZRChf&7hVtij?hk$X2*g8Eie9Uu_MABeWGc77qU za%11us>hnCS^UZko8CjwdY_qC`%WxPxwl=HzK_*5WJmGWlD)5zbf$;om;%};Td@`2 z5x;=m7!!yvx^*^&uWZ55Y#xVKOX5HV9@DrOVFA2~Bib2xdZJ8DLT(IMU7LNyhu_=H zi*S_xL&5VpG5gIhEn}hLNj%szY>Z49%E?h&pd&m-_unR zPd!SHA=VZXF=>x z)JMcY=Nc{IC^b|1OuQ&K=={U{W(5+Elhgt+Ra1Jw+7}ShLfaRB>6>v@P7%RcngbgF z(4U_O1NkW>H4snSlzo!z_r@hZF#Niy1Org%2&OYY_nLiZP~J0rodfx_(3(zCR@w#3 zs8);GCR=nDEQ+0@*t$YRz3Vo*bucw!bHsL4H>`#poTAE(xv?gZY}x&i?r39 zzk6pc)Mc~3VkiD^MQxb_zeL}B!@tJrjM$C<0=*&jTYuen3QNy=(}DmdUye25m;qnw zK&Z~j35iVac>7{ljoV;5kp)R;rc-`1FBr^by$F5TU{oaAw}l7rXv*&DWk@+&KTSxX zzpY!;j?SwCV?(D6l`QqfsabYkZQ^)hX=@Xzk08k1eY`W6@+1CMKobES^V=BcD=7~7 z!Hx+UVD_P~6eu?Gjr*tfpoo+LKzye$@=Z*9w+ysFCk^!$(mA{dR@5!Cex~Pia0UI_ zpi^PxKIf{y8|6+Z+((sIBZ}Am)eh*3JncBV9W&TF>U-Kt(d0uP=!=YqEc}1`>$9{x zeQ<^!mpu+m$e;QqoT`ANlr#e&hDe~D!f;76we)GAxNs+dk?DDGVgL?7obW+3JA{zC zR=@0I78g`)E#FU%pZz%w6BRz2-kkk z(^JpB+nJt?jm*|3v9~kGZwdVW6i&>+t`!;`z^)188bfr$p3OsV=NTBJatR-&@>qL-?yTl7%rS{mRHpndrz2BtkeE262!~lEoqSO-zC3{qjJQJav z`P!Ake}8~ZJHZQh+h84iw4wZ1ixxN@|#+JZ%WI$139%1)0eAoZ-_0wa4-Ff;F8_s zZymKL1Z3_%wg9ytcxe8l#&xHaBZS+0-XkXqU43fR^RvbpwWY;aE_}@7a;#fyuB^qX z0!&M>zcs%}lfv@F81>|s^{f=xlB_iBLO^GmP1RXu(Hi3UyR1CyBxC!m2K8cPxX^iL`Cp_erFHMXQmIV6SPSeB&_wzzF)%C18g74BiPvc7u7lhQAdd=jQxJ zXZ>t4&UHX1HjV)GRY6YksJ4`6RD9;7Ib;p6Xi!cR3+;lg6SV$kDD($<=`Ub>?}LMO z2r#4lO0XjRC9yO$ss-~6p)>eBy%Z2y4IW(lr~XlKIAOB^oM?V0P8%i>4*#J7d;Btl#_+l;|ei#upW2$qz9=FryhD zmOrwFCajof+GgHmcL_)I1eV_`J_G;i zlZXX&P!4iu=F>2qPaf)`Xq+e_mt#9Snyi&ZDGWe4484?mF^UQzfOj#B5NAr*Zdm+q z4~qE>u}&mlQ{eZNaT(W}Vn%Z_?luN6m~2q9a_Ez^yMKT53;keYTQSz@z?-y(SxHdJ zabLN!oI;)9vGJtg@TA~)#kJN5EEI2mNEgQ~=^EbL-}}nOzF<7Eu#n<$n=oo;f!9c3Uq|=@TJ}$na2abv~PS8 zO>Ea~1i#=wwX7j)o+H16kku`*?Zql-?o?HQIhoS+B{%1ML#19DKz*XHYgg3I*|1iR zuzk$fpnb#S17hwtvQ2u@%|fs*SQ6gj+Lw*|7Nl4BH3q(r4<)jZBo=G}*$QUZ_R9X- z*Cv7pQ~s$Azhg50NMrK_82^2UHa)zh4PkyKBX@wKrnF8J~MnPpOW%GmdF7=34pzrnMM* zuHLVxuHp?gSc}xFi8}!mtG(dbj#ee}?`WUeYrR3}zI`i+0&u)AH(I8CliFQ;S2`Qd|d>+3m4O!1}9f-5zaA5y4j7@N*|7Ye6^xv5dU+I4yMd6*& zTuD+?wdp$!KVB0%Rv&&FP5*(2{YItiWS&sqoRHUab{J4{8^{RUk7?Ln!o_t@!fQR+ zc}Z#j>{A>Y{;R%dV}mHH;o>y1#N+!ZhD2D%0U6Pisl^Sjp$0RX!%xiH(D8FQE2fCK zDjrPQ)oN_8X-@{O$dUC=Gi`5?P3$oTtdr+Xif*e9e=nY)*l08IVNT(i36k~j zDwtm~w>xj;=%z+Kg3+%*>qBMjhy1J~Z99Rf40? zgENekVwyhbRAQ=i(2!-S)n}S65R6_1sP>X!jL&kmLl!{O)7w&-$yIX^z$Z_wRkB1w zGB-boXsF;KmK3eSM}PYirG@S1nlOZ91t>3v2c$S(K!|EXTA8k|ewkGAQ?6TGhQjKF z6U6!ClyZN#*+Kz4x+urQev zGS?yOw+ldDf}>e6(+p;*&)9^vc0kdI3|&%pgQzmr$&bGLgQ^2|d7-Zv>phxm!=pPa z+m^8jfwLmN64vMe*NIm%9R0@4yP-dG6@;_WJnPT4E+wk>%jS+@u-7orKyFv$Y#w!D z-WAcP?GNN!(p?&c;23TahBCx403o9^xYhKeLho>$drC-bx$90br%Vh5f9!jPJI?ixh)8Zt#~xa@mN=E*yvkK zTc~!J*-~5_EHUXx_LSF!rqX*`PVbjP#y#sboqjJIF{o9Xo3^A*;xSwZ_Q4o;5A?|cFuOuF$DA@!8i0l-5;YnHunR3mAgObT&umIBEqFYCo6Dp5x zGF06fXpDwZ87j1rfVt>&+5NQ(vBGe1mZ|4cU%8Ueb(4xkIkP(TW&F8Mo`)f`?p8eo zj`Ph&IwP{xY*`9#78e+=ZXJyeFBbgCjLTz+e@csGbPKRPtyuaWmCFYTw-IwSl;Vwh z+v`Y6i7xo~dv?QIl`X8x+8N!68MR;bY@rZEN3>Q~64P9IfXe2(-`|K^wJQQ4&)foG z?uA>Ve80dp)TR4EsDRt9^TFLq>_;)}8|=kUdK^RQ-KW$~b-Q*~crJ95BCO5wR;*NP z=-8gtutv5lW4lpCujtvII@nUW*=E#&jy5Y>+Hpz!*R?oJMkcV=X=oLnn<8C zkv$6fnU$lG041vs8Gog_7ejH!RI6#4y$bk6I?eYXg7=1{1W+h^A^7v*X5R7i#a1gr zSRQJW`Ps)&REAvj2Lkvs${&JUUlFQ0nX=V93aP7a5$mz6{n~|xqOm$q1f&l*UgY2$ z3L9X*2a+q+iaffoyb$1_%R1JOpD4Pe4CX14#}zVuJg0xP@C;O_exSBaKwQak7f5`@r+IM5*Jxa2Ay_5-)>$*h628f_<29zDVO0%4((4B`>3 zRJg2ei|X87|ApNQmcuY!VE==c;3Q#~lntlHfAZV;mH}uTW6(|g*CtGUW*Gg{j+WDd z8|XdR2|&C~FaQs7i>O}@>y0o$JnrENybUI>R|d*CmcHgj9qe zL8d`B*qhOxhouQ(bZLLZ8^}#si04;f-whV+d`2!B)$y^w(d z5HGziAAa6_jz2|iXsLcc>2g00#$YG6kpTwpexNyq@HJtVH%Au*{59F0lnLkRTwE%mZ9VG{79`pUiBeVL0fuxWi8;RHqv7OdKYCqZ?A9 zR7McogRsLz^}r=#apdXoEpy}Vdec9AlP~|`fZ;O)@q?az6?!?b8ynd*7Bz`07Ha4s z=x2uF|C6T_fFKY3i5MV5_QDvD21+0Va7YLBg``j2@dWJvB@jbQC5+6I3Wz0=l)Slx z^#u*47t7D>n;1Zzn3cHv6yD+|F_6;tA7% zt?&A)Qo7_h8-ZR(-zJ3}kRqgq{otXh)}7x~__vT(v1X5EsAe96`N2_j;g1zRU=@gA zCj%e^m5blB>?5N&*vy}10t4zJJ;(eIuJ`l1^(rK~*5;R3u}V#Y{P^o~DO^!M!>Sr{ zLBzkRJRRlHtejG0BzQO}+!;j;ca%d;`Z?Knz696ybXe(L zJ2R*-tGKAx)`LtHD?%G=0Knc^Y?&z6(Mh$qiwTA+SQ7vO%uB7TbVVF|h8m;|3XQKq zL%HVwODraaYnJ7&^kI9C>HhJ{!QAiFckB6c>-w4f`gy5{15kL;3)+?7G|=VkbU1cz_P7Wfq1pBj8c-tklc3B8RO3 zD$dS6Y!fKm8R$89C7Mi}UCDfl;I{z;6UNXlEiH)05mn=S{s9yBI{koT;4$>hEz}%I)5OOqSutwU9iko}4?R3X=rsJPz952R zl71IMNZO2sisup=(8#%yPqsIpI>?D%Y`l_#x7hNt4h10))|^s<HsX`K1Ouv2*SSVgQs?D&GKd!SDT#o35JR z25w#u0ZW%yoc=uv_{YtHvaQ&kHG$8?(igjO{k_y;9lTHG+{GM4LOg@V0KFactIkfEQwY+>D*}IMS$UJU*0`?FnlAo6 zg;(DxkkJ6P03Cbl5&3Fds{l5BNEb4W>of!R_h<8i_SVKgyuzL+&sZADQ+&N${j?^o zw}XUGp3)0E9j51@za{fgrF44F3iK6JK2GAR=~2T!mj-66)vISTk5^^Vy5~5Tn@kM# zg|CFUnjYgm<&@==cO9>(sOxtd(d>r-o$uYT58J(JfQNCIZ2z+$9rwG6)C+;GozdRM z89Kkikiy1kt`^g+hPL@{A)(Yq>UU2wm-=%UmCk#M!Ix9twM2I@^8nFGzZ{y|Af;-=% zWhQzjvr{8GrttR0luVtj#R(_h@3ZN4nQ2QJ^KZYo)l%A)-7M$seQ`IxX_dq`giJU4 zrAyL6&a3roywDPZ$g>{zaUZVFnQ`;$MOJzv!0+{rMR51G&Enm{i*{$XH4cZIDU*rN zzGG#6ApX!h{u>m^YhZz#JNg@ADvkgSr7aLY*h96QMyg&|KUUMnccus@x|jH*#U6a2 zRfsL=c4Qy)!wA52u6(!q(T!%Rw6}J*&S3v<%WLwv9`(mGUa|PTRJzBCN@@}haRZu2 zz?mQgcDn059$R%y;rMzFb^Q>4i=$B*?qnD&S-Mws8kTOSOZZGxz5-2Oc6!&yu-1o( zQ1bVz2EAm%@a6NNdO1dNSlwt?O%66Vn^=-Sp2tT)6|@o`*QZeMv!HyeYYMD&b;P#0 z>$_+FSq&<6m42)aqG>-_C(&POr-)K@fCCt3IfW|n1lRcCV`rtFT7yAT$3!4LgZ*JJ zH2sO1p>4ZbTo(+dltX`vkKz(_lDBAcRm?F~;n*uES6@5WR&n3cp#(}dnf!qszW~7l zG%pGalxQrcftzE4OdM%1D*S^gOLDB~Ov8bn>g>BFw3lcr#~4g(#9eHmg+ibhU~%BL zMXVLMQ`E2-R<`Xlo&F+@g0mIZf4uvsBj8E*TWk81cw8T4X4_5-qZ zSV|t61(_FIwYc>xcN6|%A)N&Wz)Eyo3B^jBpm6_$)Jg*GgqAzDM_BKKxFf2j;QR#K z%+Y=W0io~KgAqSsfoVi*B}8J^krU&17eqIxbnmxrfccK{2dy9eO#l9^(MEud6tUC* zU^kRB_(T#LOZtH{0hU7P04hL|{8WbVG}?aW{Dr#bPp1RL7d9Z2=f=_p5Mh$YWCGd~ z2pDd?rSm~C7&#vIVD^_C8kGd5A{8r2lO!CJSLI-4(mUN<;DYCuJ3PLs{8-Xa3WYuO9$$Q%1`*Cy#2pGu+&ps zP?S`{Y*45lTR#Q+eNoih`s|^^md={Z5&+fKC0LoZxt3uwny{TlbyHaoh#qNMTMVCF z7UzD|caaN1+3&?)tL5eVPCKX$kV89v=Mez3sQW z6FvP_zaH+rAKjjCBAeYhb-Lnot~6^ zh6eyQ-KY0=27ZFV>9`B-0fGRiB&J4X65wKg8X{b#JH&qVC5 z2VQQpwd=a#g=t`J1Yz&Qc`AtzeQlrxIKKg)J&14u$lyi=@-`q>>h0R~BO;gMjJ;z&2q;|mkoQ3N!`4S8%!6jZ50BAg;}E%XN^kzxJ~<)ANY%B&0p3gmMVG&(0{mq zfwO|@NnExj=c*n@xq$5iI-KP$Pya=ZSF{@#cJ=92iYv_L%d-L-!$MfZa<$8=Z?^7gQoc=~I^xNa_ zz~X9q{YvMWItDb&DzUiqfLwxbKAr?XBfE0sY@%2<_t+(fHA!!9n@)S*B8W_|IyCRU z-%{&b>oitKTyvXs|39$!$6GPxEaCBw}Ie;?W z_ovd_^;3f4)|{5$UzYPJ>j?Y2SZ%Ks1!-hPQyT|mn|=>zV2BrogeAl=s(U$rx{`o0 z$O7EsbOLfbRBZ+2j3V?X^2xyKmX+6$G^WAb0iLF}7D;lFG5 zn-)nBHuN|yS%ef*&8I+@z3KT4f6cNIwqMH2{U6TcVw>-K61R2dx_{!QmKr0 zNu=L1rg^iy!2cIVYW|1BcH}2~Y@}}Lf)e~EWPqm1&qgeQeow^R~D5w)AF*f=I_i{tywx9}-7d`6Ze( zGz^gwMQjEY8-!_G08V-(WK2wiE$4IVqlZ=Z!khWAws4=l{hD3N$G7>o_re}Dzm4h+ ze~ks-%`JQaK>3rDUt+gvX5n44J5$535HZ)#T~fP#)f6f>=r|Fg1>>;LeA0BOEaPz6 z&pt9c_!NP3!p2QAHLJ)-TN(Wpv-{Ttl(h)HT7|>r-g47gX$nLqWTB|Mk6(6OM8W-n zaA=`NBeojV1d97SXVJx?Y6Fhy@%>6^ypdA)V_A^}AT%if>Va98LxQwBECES@z)xng zEFMSbSfL)&h(6xMDc{EAS~@Eh#!hc3Os$L)W?_;_9i1ehOcFp2MI7H&F1aseaD?qi zjaF8KPF93UmOvxzWEn?&NY7ewh&nxENk)bJLyotj&)6F-WOio;$Wr6#40E;&aALDy zM>(hTB1v^J*t18x%#VISrQ-IGL{$VOkc3PWDV9yt&Kqw3A#LfO8PgA?o z^_HQcYcQev3ze{v4NI2(o);EbRIZZ|TPGKV`6>EcnYpB6)Q)Xjek7=BYO5U~CrOR4 zQVmmgBWrk76K%^l(#gk@&&la`(L0~!_=HFT!1@9$nN3VPm-k6qSKStVCxvi0|Cp1$ zMp2>ySt$uBD-lX7#W@FJDS_maP$js@%sB}sU2zHiS-~k5)9?B<)Zg#uYWe%b^68VfFoAbRSz^YrIz#K#N> zpbDX0313y__CPyn7iP*K2AM{znaQRUHVXrqz}s{IY7K)D``JL77e2c^iS6Ou-Cq;? z3sevy@19==#Nm1M(Vc5{=blO^d&CCA%?47G1t7A_8)nI=#_QjBcqxtbGdQyi#%;FzQx>*DtAa0lO zVU@*i(+Ew?0|u(PFWO!=fWDj|RKs4k_jc{lyqD*0a9W^pao)}yd*X{fMxp-2t+v0! zxDWSoYVL?lWb(;+>~9aMqQKYy=X3^RZi88{ygA-_k)7aUUr<|>b&y-+8Qfs3h_5!g z&*tq^hCUoGM`dbei?OLu3$`2u0Mw2PM&u!HS7r0z%r$O$zTuKt>u&?1V>CA$c8C-m zUzY9c&XsVfeVaNnBOR$Q$g-O`2;LF>qwkCXe3Nxq134Q+kEh107K+e1TXu=qb%eGx zk#=-vA()9pEVlOZLmYRKagVCSvSo2K?5ESDB$l3dZ~dwVv0XNhUp0BPMgE}mBX$GA z$95=TK}5);&{$8j(o62(p^VG*O2QPh{1A4|Q0)$t%?@?VF1g(K=-z3|5fACLxy91N*OJ=)P&$8J zIofiaOvmLiLMxF4I)=(j`q0!WGd<$+fFZ;BhAEk)k97T|jV-aJ)8tssS#9HCh(!ek zqw!O|7?b@nz-Sugrinef71o>UFhvIL3Oc}+1RW6DakWZ2_pEW%~pw^*$Cb0WI?AcJ4u-8?R^q%U{DP9hJUU*{bjYlTG<09p zXYAgVxkYG}CAQ1ooUtdT4u3I(I;(BQ*ufz4N-WyagB3NFxlx7Hl;z3b@Ut>>%j4+A z7C}n!A9)jK{70vRK`WweA?@m`I49u`k^syXQy_ijx?!$xiAL#U0C^ycLZ>CPXflCh zRsLfV+O*W+CL`0}CgaGPyjwlgq)%Mj05PHFX7;kAi1Po()mg{n5q@bKE$&WncXxM} z;_ehF?#|%uQi?kiin~)N?(Y8L?k>wOyWf}WCX>nhIhjmmp68r%UsqIWIBFD`kkrz@ z3{zS?6G4OUN>~AI58+<9TUQ*mGaL@>#&b8`-(8u^I%Ntyzj-VSxLf=c3R_=lTQEA; zjUk+qxB!Cg*01fk6-uVuv&&O&61>D`j^xD^!%ow@JmG9weqJJ*5I;cQm67M0hdXpf zhjZ`~TYGd&HY@Uw5wZ%#>0VNoE&NJ^1xIY!80TEzt53LJ-B#4%;a;;!LywJSAFnr> z&BSXr5}E2BDurB%G-q#r{ia81n>s%#V6dA#hXr0j`NyAQ9ac9Fs!x!jHkjsq8(Fi0%o%_v4Om9%T)5Pg@T39^<^)DZ@y6bn-eDT|fNL(9n`Fu(}*U(;!O05A_rA z@Awx)Fk2)AtNX)tVHU`Eq6Um|W(U+MpG4WXO5lfGRm-%n-oYO$Y%Z(J+EgLIIH17s zQGq;gFbXfJa!}+Li;y>B@Z1q=gx06AO%F|jFy$CrTBrXg36pZ1q1$_{j_5uFFIS^O zFM%LX+tK=Vq=m!FA>^2NM8JBWWG!w8zw3yzj$`o3ywihQomj)z2h#Q=s6aaZv(9v-n3S?YF4J@7IMEx`9>U~nm|RMPuiv*QQA*PuxxN&< zgaHx!c3}dLcevRxtc*{g-j*N5O0QIO-;!;jdprl&r6$Z|k59S;}iBC?Qv_C<`PR-B>{#uQc1WaTe!azgVX#KsR4r=K@5Sg94F5tzdmEK zj%NWSGIlu&(>%bWzG$WD`R)ms3`{!HCtd{A3ndUkf4l_*oDhNayMe8N+7`*_`sU$4 zoGqIB0yA{Zs(3&Da9#`cfZnfHo4+G(=^B+MULXuf?85lp+U0plE$peV76Adq9K*Dq zw(>wc@iJ6ZDarn7nvrAQOx(HqZ)pva@zd3dLLYwJ(krC!NDx9>lLJk#64elLs@Sj8 zst1Y4zc#&LZ}X&^g7598gfM>=LkjSoCK8eyK}Vh^KEkDg9VSTgi7uf)3ZEucVbED` z4M#}32RVX;NK@b`C-RhwKmf8>uddSSJk>QK$eys00)qd*_>L0|j2lrZ2A+$Gzz&D! z<)bOe$=M@659-T9q$3{XI8Eg|X^y{k_$dSVUZDAXH(8L}ZC-_QArk3!o@)#>$QyRW zNdd=HgI;jKQ7ugFHlmzE18IP~JyPzng$O2_Z+h^&(o`Ajz7PH$=%Z@_$Q2J`(nGYJ z@RdD_P_B6qpA_at5~L9Y`!2cC56UMlO-bJpv{eS*2Yf$#BBU0AKdj>s1Kv=VauMfD z92${JYyWewa~G)z^jJ)ShF-u?o_}?r2>19U{QW}gCw%Kco|k)lhpc{4J_{C2I_bSj z(joxyCagB<TKD^JXi;D15I*q;~i zfBwO63D&<3cAk4Tg!+pR`u=r9g|N!P9h|*AAg$M>=~h5F=O0>N;+Oe@yYyoTBQQHe zp1nl00KD+dR`6le*H$429xdaZOk6hBCix?WkVfq=6&}FRyk3NuMyNW8aRfDoo=|z7 z=GS*E*FFcLG#I5!Vv&^x4(zpp3{^(i0diT`9}qz!?(*`#CRA_M9Vl+%RnJ|l-^H!B z{b)Z*8ip{`N_n$xvXm6{58N{P-9$_A^l$hSL2bX)AQvg)3HmQ}e^YI_^pJzLj-Wj0 zs?@J=8*G4+JoBCk-5&X|UU|d=l(Cc(XC4vz*cZu^olAWmr~Q1&^F?{3j^y<>Qk1P0=x=)=$Rebk9pQS1d9ct2QE zjKW3G7cKb4cv38M#75=5+?}?iATbH60dmh_5C@cdMs+TM@71>jV0b8SuyIJa2nt!k zV4_PnFGb%&{D#S?!M5>m7yiWi&6BBpYqSfb+Dw@*ubCK(-45^2416^V`v-+O3E_hz zG^TvL%SWJ-khSP_EvMf`dMmcFb@CyMtfz=W?RfG29?-TJ;6{SrMt+YR>ZWc$GX6KR{j{bfGg>MXT12-_zGERS;Aqv5%PLwyU>rA=LWFG{ysCg;iACl;-ds$W=vFAevR zJi)clAl^~aP6&=sS0)I>`n3@eYT%br;ylq8#_aUeS7FwRV$!UxV7|reNLFvWj~?nf@Ch&81I$I3P4Jjr zqm)vSR<#<(8%#>!i^o)dOw;N_s<$OEn`7v(TdKn|EtO!D7_^u#SMUyq14K2#aCQ2EVA@_b8?tyxBOjxG%6}Q{VCTq<#bxU_ zX?xNk-)NS68_u9ts#pGZ1QZAp;`HDSm_`0su9sh(k7k=5#~BZG#NXee7w7m9OJ$Zk zeH0(3R=$Mi66unw`4#;Xm^P?sjtHkX+sYnM+-1a=5aDiq_D;_x?8>?S)CCI*N`xP& z@F~U5%03Hpir`q~bcxskF0@0C*CeDL!9bZ?t#o5 zJ<#e7|ISql_C@5wzzYcSD%eR-2$MKAzCRpPdByci{OJ1Djfom{^Z!V!|HBJDT(r4Lr{6DaJ;_3%8DkHa3U%R9))X}J@lp8eYzj=AfRB34p z3X+I=u2$;XCsshIXX_k)NmGcnBtk;^WJn~jTBTp11HWdK%Mr9_$nav^^(Au0LF&B+ zu*|G_y>~vmbaI21uR0%yD@a1R*O&CWyK_Ro#SWEgT1Ahw$J@@BNnym*b)|gE7lRCCvPTor!qBj@L3R6?kQ$a+e3P_R$xp_T4R(?yCecvS z2{w(qm3oX7>iuDWykEw*QHyX1tJ0wUTW+RD!>qpkfG=+NduA7Ax^iOj0Yzw`qQ_YH z`4`V#RCZ$2^%{Rlsx-L?3yTl)fPuiM^RA&sTPc}E!#}`gF zf;z{S*;&tpOoVVdIVAq%)!Bw<+~&n~p76VJay*6t(ASe}z(oqC0pGTdh%iW6q+0Gk zTyB2u+CmaED7MS(bylFfyCWwtU1S-JLz1NYhVzO`!Sp1nwV?{(n~# z-z);yMz7QrKYd4babOve=sD~f>4h22RNISHB15yGa#1G-=s7U7uw#J>z1iDdUPub3 z%Fy?gSoZ^Sbo=E4PIyfsQis75D_G3F^oJ2oP`0>;02xhgHuN@5kF$;~l){K3WoBrZ zPTb{SU6xZ#q>yi2JpX(e`+6yR@^-<(*~eq+xODX`Z)X497>-$$vbgcySnl~B-ucDo zL*-F#Ouu-GF73(6E;nS0_iy{r1c;hLufAN-iS3Ku+x_0gzt@H`#6{^z54#_pTC7y> zR#3}A0XO#tT_U=?IK!R4B4HwFt={iSyZ!GLlZiKIfRESq#AD_cvcNg((Q_{oZn;@~ z4#bDF6W&N1Hh#Xf&F=Poe3E;g@^qXO)g`oPZ7@o3%zySf-YQ?c2LAn$ss&%n-~PL9 z%)_|C;yanoP@;J%lGAhAccSvgOxpT~#EHB46OcdKbPr0v)9gHXs@k3jTff8DT0m-f zM?Q_vRlcZSu>m_%)h!(r4{A{B{WZDa2PU?z1M0_Y~wSOY{Lm2Zeq7AD{qB zMCV8QCjreD?h|JNmbRl0g`Z~ohJXn4YeqZFf8rp|T37A3nX=Y5Iwg{OT}jy6al(22 zrk}^PU#HZzg5e*wHF=yYtQxLvfJcP|$j6}fl1FHeNKiWbqkem71z z*yvUt-qiTJat}#oI*M~OVVtNyFYLS}$wqd)jds;$Fdn(9M1ZPtFu8 ztB8Mt1Q8yJuVnT6Dn#ZOQ8rOC2V<7(ix+{DdS+Tico|c5Y+N%2op2674WR@})?=uZ zLIUn02Jst?nV6K-e!*YBM|fZSA+b%=KA7ZsNe^YNgmBLL^2iR{6t6K9wurMo5{;D= zKkDFjry-FT;qCp*l^yNz9FGv?oCJyPx|gFksAP05L1Youlx|1|ljp)%on(t9*qVvF z$>~=c&DPHVaz}9HpwOQ{ga^FUrTAl;p7v=_h!H4}8_LEZf|OPw*7mQt;IPDBgndV; zF*By*Er$o1V_R$cqi+^{bXZBpKlW;uNZcP`2GzkZ($ryh%C<<--;D?^zQSaHiw1ewty=k=tuPxwsGA?o@u3VNtuW zyr|Gz9cR0yy}$pqbs%ESo98}VUEJ4>Hs6zfn+#R_Izrs4{+6H_ukcMTP^s?ICCpfQ zHqcoUBEivGdk}xxDtoartQD`ZNYvd_`F=u-GVh^|DH{$9#}(rk;#IA8ld(JcY1|ik zzoO2&cG_)*-li6&RcCb)5)z?x%Ymdov!M7x2ZP2@e}lK-B5tD;GwCagu@Yz>50tFU zm71eHHMrU$Lu6&LRt;p!^>O@XA>V$Z|h{hfNvoN#;!*pF_9fw}pwp`wG_k z)`Jwt_79-zX)kxxozvfnCX(6SO;W3g`9-kSW!O?&xWoJQz$REaKD(p#$7A7bc5m_O z>;46b!gRdg^9BT)-9ci>Ok(ofTNRLGs}wKPT8gLmHAhb(0k zns~1EDkL+D!tD!J=1Q{e`DcU?3aiJ}S?U$)Y=7YR=4jHc4xfAM=myTVd4V3~P_qZw zijFSK5J}3M(a{ao6+Zg$$18qQ9*Oaw)N zu2YxG`Y_5u%+f9Is7+SQ{SI6aK7;X_U8Pc59xBm!v)h8VYI5GVVFYMXO5oVnNAk{PKB*mcE#An2SfL+^E z2|JA65Q!~{9qb#YrxPpmtI54cSfo|3eJ0+=l!J2m&Rd#|$JrQ`A${5MeONwqD)jFG z#z$X;g@wB>hHnHNe4B2-MOH5=tL>`sc)vVK?AaJl(QgcN}9~acHR;qG_#Feaql49v7>&PTF}+O-KY!J<{BV zqm)6hxDHje?%d4KtfIix4Ac3vq*!JPRu>_;_mhU0&#%084bQKIopkn4{G=I%f)qbZ z+%iE*3b{8GOnh|SgYof~NWQmxXF#dH)aE0rZAe`4{^K?WfL9ov#+(0O_ijY@<3_mZ zoGXY}{B~7(a_F9YEwE<`|=Ki120TP|C0qQ=v|v{-~q4;oOhjox%FtYOdfl| z;s~M+*q@vQ)4D9XD16Gh*9mUo_VP0z-XmQ{Au@rk( zee8LBzEQxwO8tp(zroIl&d#$)M(IbV@X)65bk4DdSVW5>k^TopoZHQI(MG9*brec??Jmt+jkf zoIe*V@k|;S?wgV7$VHHju0!M?Hoo!{>qZae|CBPCksIjbkz=2c^K^*d_?@Py z$APd?=gPMLG9gl9Hf0ooJGqp~scZy7vmX|9dG-EO1J*i8Y7OJ!QK;|8_f~l)q<_x? z*L%WPFmH%@n`*u$sN=ZxuhrGkuZ7ud8PxvyrTFzCo?P!#%l4&Ef1O9=j1fymue`R- z+tlx@>Ni!LBXB42w(zEc^%kWvIB5D|hLsy-_RDb45+t?W$l=kCUaGol=>~F^*uB>6 ztGRqS1}Gz}#C=JXM0Y}Y)W$ZCAB%Y$<_vr(nJ{lsW8K6%td`ofbJ3Zx>iM8!cS@rOd@oCd1bgn5X-g0wbVAkg#GOm0^Ct9szd+4JubDG?MA0PjyBgp-h<p+igX(1Gea~@$C~@i{M&Wq&U#qTpf`rd- zcMuyVqB`MRr zl4p84E*VhV&>%fp+**}}gIZz&TQclx$;nsdyHRM`65WW)|wt@UWoP$A_kHR5ny${Q-sprb3Z+=p>@h(e zOdZ97-$+wYTSt=APEROqrg$<=$u-rH$e|AIpezT(` zUw!YMjABmf9FA3<(A>!cRl~dQSORnM?ISgCt(u4N-D9(gIJD&mpg$%|x>zn(<-a64 zk{PPFou33_b(t<2NmF{V^cNgkE;-}G)ZgOrmQy=U=^dazU#=mX?AGSeEEIp-+5w0dPye{{=t zi~DbL=IdpABNA4u_v&YccdJil-Znxe1^qT)3>}DgVK<2ceFsx*5rF&oq1xi?#cO|* zhJjKv#RL)9_+TuB2mYb_1p-*15gOza$7ftW(957~JJqyQcPR?pjHBWUWlwD}TtYLE ziU!Yzi4Kcc5#yHZ!xHVJU&1fQdrNSW^B^Oz;1p0Q%fC&iNEaYX8C^OP} z8%{L1ZkkzBr;^!QmF^ON#SO$D4<5mDal*}{uo9THe=oUEJ}FY8MHEGgXy5gfe~`W^ z)?2D#v71f}Qmn-D|2d%Gg~^j&8{w#?cuQ6#O$5VKSXPFcLyRb+q}J$uGV?!HA-u*1LRdF8{zyx=moz%NJXj zS_%eXzwQioL$Q5$jGRl4r@AejVD5(dlO?zxL}nGn;2)P?dqZ&ofo^`_p&eHf+#7?L zi!K_$BK{4YNw4nw=Q++5mN(R zV~WGbmjI@O3K*HgWs((yBCEmy)1+)@5>IY1G@gu%U!qs=$GgZUKYk#7tyafNt7tCf zUxS9OwmI$_rY}Y|&ZIaY=V;(ltkmOZ(y8+g3Iayu8u!^66F;OY>6h_k4#U<$h#R9h z-1E&XF;E|)`T79WrI4J2)2yZdI;jQmo<-VJ2?|PdZ<>EFiHSJ!O+P&o1A?7lUicAWICX#FoGEFF--2Ld^D@_EAkx!)5V|q4f$xgDPE{kTSsioArC^JHT z9pWdR>T5(M+P$L3QhG?6`u-t0Cr3I8pe<-K*Zj&x(J=so2n+aApf8>fbDyg;WN{?6 zEls&h`DzG+Q>)v83i0Ldu1sQMZ)aUFmE4s7CZ8oC>F3)pFfMzCyy@dQNrt2L8u(k_ zSe=d-`g1lIK-=-VT27CdtOqp_T0GhcoL%yIwoMcLgKPN8_dO;jZp)l<6*YfgpbEke zrTPfXME*{osZhFZsVgBdk}O1Ymmo?0LJZeTH2i|ID0c|CArq>26|3g#*x$c+peoUp zJVr9jk{{-&k&DiIh{`26sUM5ljkf$GduY@qS-{L;FRgqOiV&zyv&E2DMfD@pfEr2= zu2LctFAb2{Z_vR&?l$a}I9Pm$G7xAFjkjj7(GHw8jxK|TVsfyUKn#gV)Ki?o-X8;Z z6_n5qP3RV7!zup))+XxOS~(;a+o@6q1-^X}i*u8yk7k&QZm$`_?5Icm$cWz#S7|qA zXPvakupBBOln>PEnZ7Qld%lr$bMmK*FM?hdI(}P93hmvj=B|L+fjztrrVEO432p%Qv209W&rw?YgW3Bx-h{uvJSi~sQTjLH%Wh7%aut6Ad zCq?L)yBJTEkIi8>fzOT`JYcSZ9V&Iv7x3f6jnj-@9)QsO_;wgoR-wn_CK_WhJ0$IPSbHR%=rN^aubqZK zUff@5Ux)$%5nx9HF9#;ZrteD~=iubLTr;3KFB4SVFjpz<7H;M~<36e>iR3yXGQwc3 zvq{vXUVwA!?l9ywW44R51`2&1XC!oYxTvJq5_!P}jj3*({Ax_HmClBG!Uei_P8-&W zCI{t!!t_v75Yu&R6%A)~Rc%#}`D)NN19*E7bnMv*Va$~P7hDeaKO9vPTF0*C-|)q- zW%eX5ObGZ_ny@E1kZY@i;NO-GD?+K@3Cy5Fvw)bZg3n*zY%Li9J(EX;CyB4hV4q5@ zBcC-*{IOM+&F{+QU*Rz^=4s8mrJw#**5T5z|2)ib5&tEQgk-g+nn3ClYEN0pPOIUl zwj<&l^_a8-8~FKofhE-tW7CzZQGXC4Tt3P1w82Q7x)}BQlC#ryt2)y;@fS7EEj}bT0q5yHQqKV zd++KPuEVeG(XDLrLeb#OvX~{MWLK}*HDF_Z>{~OuL-5TJSG1d`WivDqQpPEjOx3qe z8|J&J&bfAr=F3%1E(E^es$0s;;}#ZK@^D1)x<5Y=)@x}}#<~n7;ivwj_gjH4Aw113 zohO{)Ke9j(pNF8Fg_TW6GS}6odVW7uicpo8^3>KUF+czlO2BhC-+Lfwc(D#RF9pD# zv7zZZETI00s4@Q*qgSO+m@KC z_S9ePXRu+rSp(nf&W@Y4Zy6^{w~#1` zVB|7Q0(4qtgUkIhbtM*d@+iKN1GsiX7gI~CRyUsQLRq`v-=M?Qu?~MjgkVM=-u*JA z##~>`OnpV}s~K7logn>}bc%%PhMg^hzPi&OM4WUQMlbTHG`s-|DUJ5#gL8wGykpSm zOY}}$l1EgM*R{IyV12qyAMC9y392Dn8$wb0h9qsT*bK~R3W`kw~fFkE16Ja+`qyNAo{Wl$CG48|9nUxKct28 z?<3kp$WwS~7XaUa8~p|NKZab1xvW<@c(8!a9+@5C zNZl|tdGbY9-Q*1r1^t~P0a|D;VWEhwpdo5W;*Ma4{yk=3G2Y${k$eOQnjf45zXsbM zysjmD6zZvui{a4(-S;`vO1)LOI5PhA{qc(kY z;?7dK9^BeD8&Slu7a|13x0;A&vGmU}aW3|C!p2hb#e2p2k@N^#frRI` z6-4wGx@DH=J_`M}fj?rCq}}Lx4i;%dexpqyP|VyR$*J04J{E}q9!qGTgBxGo`xx;R=qiAT!R*J*WWq?M`Lu1n zTT`5rx((JK))d!ZuNJ!ZV4GE0ZQUng!QcenCdR(1%vY|3)u3Q6+YHCxVY;fM*V<}l zizouFdj)=D$VPBVHAtwd1O=RpF^s;cJK}wDcT>2o)*SMhGfRWsPlISF(#Ct_qnVrJ zBY&h>Vw$c1WvkOfp?B6;zmD9TToP_QD|FXb0=9jM)ia-GyrD-#foyB@bH8%Mh!fEsT z6}%>yWTE}EG{-}=bOjA1UY3RSQnNB{_mg;<7ITeur{FDZM2kxYl$n7A+234E_hLN- zpX1FPu3wnS_aT1VijHh$1gSjDrLuQZ>p-$q^@ID94s=@`lV#=qcrgu^tfrj9&7EIL z^M29-oM@E4l?aKZKYtGgc>i@5)H1)MKSRY<_hWxR%e;&nCHshFuVLWoQRqKiOAvn~ z4Roz2Pj052y8pWL-tAq)4*zQy>(`kk44taHgP5zI1EWl5tz2GA0eZNhetBHvyjK?% z>?U0%O!yfFx2bShs@VM}-&zP#bn;Pi8xF~&KYOp53^iWMjxwgC`UDs?py>$4O zVfp2W+tHgV^ko&_2Rp>IYcuI|ya?Rn!#znDrgoCHmI)nEEA(LP1?I^^!PZlp>KUF8 zK5lV~VO6UNCU!00dfM33)q6#~(-B9*58|niai$mZUa`?U{>ICc! zVCqD-A*Jswtrbo=wGaB&c0u|0;I_A==g}(~>z8XtEgHM2OFQABO#%Gc6%N18{7PNUM8V&}oMK`LoESVuorW#tQar{htOd<`zcyhx>&hUnhkVF< z$$Ro{_$!RP-iG*h+=b(wS_qT+v2?dwOxw0{;2rS^WekbsV^S}%1pfs=9gf5S>deR; z3K6Xf&F#khG~$HhrqoJDWCLo~i1JAptuVKI5f1Y`*=peLI^voU^^@$D64SOJAQ29A zj=l9xHEaZR-cPx%{es#Tf znqP!@U|2DHOj$>|i+4uk$s^qNy|`iQ#2=S1SdvOJR{e zPi_+qpqqslo&;XhRKH+ausynyW_@JsmZBc3`A33an&Q;n7o4ObbeaJ9Z2*q_>n$|F zcsIq9d>#;ah}8S`g&*IM$o$PF>Ep|3x5_EkPwa}6n-?)MkbC+7!NQpOisDHj?P^Kv ztWu`&2RB2Tac;;V;K2E~$Z=1+Q~*v3ah)5m_NVrvw+d+pQ*N)Dwox(7G!oupx`3Ij0k!x^l@H4=M~a$YEHQt z?!etTRT#FB@;n1JGAqozMOZ5r9lw5=C6d?MOp1ZIt9;ZFmCRey*7x}Lb8`&^@6y-1I;zf6BgQyNMVW}QB=I2Yu=|X90#~U;l2|6S109$5nd}4 zk||_M^FjQnBl!5}*Ya^x-^1$W_K-cdCt5S-R!(48Mm?8aI_-rJ6KSDHxLoGAmZITY zK4sdK=V~85r=p;{2>;8&BPmg>s)t65S+0Eo3En6&nEs4E=uXg}{)hanuyBW`@@&e) zyQ}lyr?SOk+Bq=BY6%?pcDr=lJYsX|OfpV!{F^`E!VE7H+F>Oap{Zo48urd9n;52b zqU@-v!uISm=3XOG6BSz6NIxn5Z{pb4#%d0d!-UahxafaPCW zaiH~-ox|2+qxnbmbog2Di*2}hXWp6-lx--t@k?vJrZ%w6oN!kl_r5t@qKlMHNy?5i z7hBj7jnxdH)L-(A$mjh+oGTXQGW# z3-pS2EIa_B*bfb>yTH3)_v+*1JJu3!s0wjo!c1YgJ6)Yk({g3-HgK82w}e}3lFHP( zA8LMI2&A@tX_5G0%g}%K>nJ0FK3O-eY?V4@pEm;cM#*cee-$c5>su|7>7tTE0N?uZ z_l)rpU(vp-b-2XTqC2!EvlFWhPthM#TK{2(hH0^Q=audku( z+4;ejk%rbFWV0f;^CdA(-fmLLq~N>WnUp{0)V})>3I8N?{iil zG4m>3QlH zn^Fe(7z;v($Z0~2{t!b1bMEBZ!TVjWPIn$R>?`;fDJ&cG73vVj?ZIOu!~sE|Wllmc z;Iyuj*^TEmp+<7}6cjHWv4?p(9W)sa?bn)Djd`u(Ww37h#*{ySMha7!XL%W?&y0O( z0?v%?s4;Z|mHjcU!;^L9LvZUvLeDaY@cU*`ngrwO{Ey0klV)H_Knz5BB;TNAUQX~G zqm=Kl+Y`1~#g_`=hjfNHXY}JW=|O%cAeV33-?s@Kty(l2WO(|SvZ#CE#eNySqRVgY zfMM#8$2)%QBAUbMNRDcwnrnnTDbK4mFk7u6(TZba42JvN8hp@q;9ng&I*axx+?Ru%(SH6`B=s3YbMzUxT|~PCO3@tt9|1pt1=_Ddo}Dkskz|tN7-py`kMJ+ z-)G}kW$O#&#C$)$zZ~GUb)&|xC4MN3ZP~kzCy_Oos&}bOt_(eq99xQdaHC0giAXZx z*QzMmLF`0SuYV|y4!T~WhsuEhb~>n2g8=3oU-xpT4z7PP;GeEC%5gPje_4Yxh(=E@{g?+_LaZ*`(#Tfz6={V%YZbkx+lEdDmw!T;c zZxVI>YG>YT6$cu_-k`cSJG1n?Ungzb;)xRz6WW#smctLbZx6{qAln7C?rMFzQycjM zCKuY11LozFV?5kLJV)9;UsM?do9pj$DAllq{ZD(_wXljs*1O1Vo0p2odoWO>nFalh zwu5IT5cDRhHq=P$cr^fjrKFW4w20zMuWg6u$M*<_xW|cz&#RmWhloe}2#3%|p$Law z?4uQalJl;Xi=DV=AI9^#mhPR2C?C4>l9u=#<%Z1hndbJce7kQ;jaK8o6ijeLwNEnmud~Q&WUkzVGvB^+!XQ2-#Eyv#tcHeSi z`7X{B=DYwZGV1DZl*#Kgn{NlL>Sh&^H|%&qD9`t{mhCPDNo*-f=G_z=*1KaX|H4bU zffpZ8JeQIuVEplvlVgz)u(9Wxa_8ar(P0jRQDRsl?>doi^ZtsgQ?KrWpr5H#=Sz^i zhb9}gVn98Lt3>G2q4+5?$Tx#_i9ped$Ax)vh*DZtRi>@QGmoY$<<0LsGc1u;Xp_)i z7-(f{;K`B`SZ@%hP1i-573C(8E-j!+{Y=OwyUn}FIJ8W(M{gP?V{3AAq_&qH9AX;UoV~MA>o5BvK<|jFE%*~;d?fUY>z5)Vt~@h)i}Xz8 z7yTaCCB9j5F^h7Pdq{i)b8Gf&`Aqv3~ zQV&-V)>zxF9Yd+juQ$9`G3x$=eJX5k(=NB57ytv?)degn#T6=p z%@j1O_Q;#U5NAwDw>}wJ-Q^>1Mo!J7eQD0@_u@)_nvtK3kySLj!~OxbIswR#Um&Hz z(GJA}Y;oalNwryQ<3ppn5Ldr((A;xjBHgnX;|7`f;eJ7UVUlc(`uf0%;W$?K;xggU z<#WEBXvs7|wAVuTAp_)Q2nny(oe&HT^2G7e=vj2>&}ohToT{n1)w|nUXzU3sNH(gg zimbF)J+8*IiK86TV{A2PzQ$@_r$Nyk*R5sU+|;#N(F!qb9ZUO?p}B5YYu@BmtZk!L zp!Qb9xm0)4SU#IXuh@QW{dO8ZYgB8qmjO#0XUiEKm&)8!eGMoYRcn1U9d0@)aBEyi zl4~qzRj<@fUX4|))vTwhBvrQ2JiyTnxT9wYz zk3v)7NSacI{uDRRHV&?fwn9;M3V#aN`{+O#Du{Kk8d8=3-&xbi+?0aQ{ssl1X0N!8!r zHZ%82mbyXZ3P>%XU4I>14OPQ=*A1}Ut~H~eLS)gP3fF-_b92L_$@f%eRA#1CW&`oQ3rF2ct zFOa#${h$UwFDU1kR8c9UY&4=y!!lgi+c-k-h5K$RLQ2Ja<}Q4SfJlqGB>o}-Uv@cT z_<#{(H@MVgM;Z#>um5DE` z)x|QnA}Fw}+o&~kqEHNE+C8Zd5#nlMBeaQlSkG4g($`*AhWn?l9+X(_?#8&_#9GwD zJp6jdmeK4gPE>Rg62&D-1C6w?G4V5Q=y>>~(w?++ibin>G@mGP)H1Z9^cs3-{@rY_ z5)2|Q9&pL%MDY~{Br0p%+V6*LQ@P}6j`rax^HT~+H%gRQNEZF+2>~ElXxF@GDVdn; zF1cjj>%NEUm@wqc$8>#45v>FO38w1TR#P0Hj%!R)hPJ4LZmu?_jv#Yo2`~5;a5QV=wth`%~Schw?FpO|>*d z2vys@@{9CUV1L_Us$83~bRN#(FRu?iPs)u<#Ni-eyd~*>@>J=#L@M&(lbP&2SRR*A zwiAm2U5Kr(26}&4o$y7NQxlrYS-nJEz~j5cga>trYU<}^8qk61`E#<%Y3PmhRl%0U#Tp|keQONLl8T2N&(cN6(#FJ_T!wHu zd}dUqFL-88;jm_5blFC)&+#xHmy5?|J+)xV76txr57P^B@7|4(Tft3z)$Fh(=&(h? zRUaSAksYPbr%eGmb{=?lM1Sk$C%q*KH=5(tMPJz7+UP(F#_JCBoJ}>otid6g^1|BQ zR$Q2JvO2`XyhFw3TMt2?7P}5&Rj97tIggk_+_9M5W!3V|;IupK1+Dx;t9oPAy#14s zc8#XW0@XA;&9#xRQ3B_H0hwxk0oSvsK3Ec@+A^_$d5X-oLjcSXgE0;SFyv#lG1rA~ zrynZ()IWkPSPIXyFOk9H?hJ94yLyqPBh%E1Ds)aKk^ncz{UD4dzNK%Yf$gHQ#p#e! zkL!^Nx*qG;ljA!9?=hg1+&9?>^2&CzF_}YiwQbw1CG2l+E!f4p7ZbVSgLdT@!*7O% z&51Y3oqP$Rrv!|hh3&;TrGAFoVe0fE8LgC?GvJAn)7C}2>aWoW<2V$C$p*q?@7~Nh zQ(10}>Xw$&-Y@^DV7Nle(+<%}i7c)h>6;O!;)nYbk6pi0C6E0VSLYO-X|S!^*zDN0 zZQHh;bZqC3ZQJO$W2+*ZP+j^>I&6@8RI4o_&s7^K^Gq&?TqSwik z#PDaJz3Sl~XGxPI&t-K@$K~Lj z{dO&m(aLUbo?{f3G3lvjU(byzxYDunfgK)--d#xOHwRD9h;rCr0S7(^3EeaB&~SqO zC8`xsm$tq^n0s=fsl9=kNEBB-%8H(2iHW8+(o&7+s2bbp=TuTny*HtQcqP}cpJZ-1 zL&GtEYXnF%6i&!P5~xrZ4B%5HF!g{`JiXk{w=a9mP@Kd_J(Pib?sbcpLR+TPvH{{cb;EsfB#4?KD*qZ@N}AG#eq3x^0gua z_=*&mjv9ad@;`1B*nX;Wu=&t!VmqFW(enjN)1ty03JY0%v^g|ua(woUgf5E}B}~FRY9R8)TrUXG6UI<3Odq*^cPu;i?C` zKaUP_&>O5jHi$I~(rdvErc`X&d5w?Z)=lufBPuM~p=K?kW3X6YhZkHkY}KDT&eQ8SI`>r!SgXzd=2YKes-xecY_6bD_iI~u zNM)~9uFI%hJyQ0Yt;4zXDc7q`**61JD%&h;ujoYTOs@UB5sziLbs@AkR;t=Ew)nJ7 zP{kN;I;BRHs!g@j(CNs#??sr`DLs9AsvLnZ&ir9N%JG>U)tM~ayr8Y3cZ7`tZ4V;vWBdhryK>n0WjESiJy{U~!No3GX894~p-IH{z z@>r3oRJnF*_L)@Ve; ziLbV7>2jre;xs(gS7t9l^PaH5z1!%&zu$DGpYGaQXoCfWan)c9{+eZ(6)zcZ{8+~w zhBqcjtHCKjD_T;YTsjMFWs+}joaD=+LtT&2X426|f=w|l*plR+K5Y}`($TTat6h*@ z4K>}IGgMAGzRYN5oqR@qfcQ0zTfkG*WXnwV+v%86FoHn~( zT@%hys#F8~{wLh;fQIwoSg^v#eH1+e-%kmvRH4ts)Y+Jn43 zGNCl?OyuCSJ3sG@%zm^0;R9V5k19R6yF&3iJoz(271_SSo`R5oBLlS$EffKrjVde2 zv`NRy;8eOs6j?|uPo=CZNzSGBt229`vIrxq^bL>|NzL(-YUMcb7K>OuH51=sIf@?F zL3st7r4vQtq_7WRPYhcz zeES2)$b~qiqT{f-9sA2%Dp-I7A%Oh!P#yrS>z$MTq~am-V z9lFPnurlzgxh`04VX$|jr8gKH7RldAs6^(&TV9n(YLYEsQWaPWGhWV)aNZed>KzEc zP09y^IQle$D57}Pyc=rU3RGPN?LHUEV^ydRf#FHlnG_h3vHR(?^SAIS%d%tqy=nx& zE-Kn5$}<%S6E`rc02U#kN4|D?_k{_zC9h;8=-xI6>_(=6ck`a!7$?nVTcLw=;w6?C z;nvaF1MKW+4KZOM*BC~1RS;<+iaZ1eV8>um@*!N&97=kl^$3d$)DvhpZ@GButJ$_% zMs)kk8vh15g=lc?%K}E)WIfG<^Mp&hG@_F9GS|yx*K>xZK1GRzF0R%1&VHy$(&IgY zPSjro_iCWWfAm^2H#eJE6KQ%!ZBt zZqfZZ@ZMGzGlCtRzB{r{9oN?fmF3<^7Dj&Vze`YK7A#{DEZfzg@WZdOBZ9Ssxec@s zxCFDzN1OEvwd{#N00O~!Kwt&X@Q)b7Yp2ZTJ7qRFVXMl&&qYF}>-E;-0CymlZ9=WY zaMJKYU5D!33P}tGHSPh&ELo;5QHoMv6eht|B^lv^2OjLus`65b3?h21RaEVTl`k1p zpqXm-5n>gh5fq{cuu65cm2;$=m8)JO&GUdEWTFxLR`*HQ6RF1H8DR#LHb(}@`n0O~ zghxma5;e|YlO}H!Ai@cCdlPOKO-3R%bi%i&@(vUiq()XM-hxs`%vgz@u*Oy;74dT4 z2@b~9M@ncTm&47bM<9R(>ZeHT=S0HjTNy}@&~8Y|q|KzOS_hz;&oL$m>#iWqQtqsk zB|=A97it(#4D(YAd%6Ik?eOd(tx+BDELzF69b=ev)h2>Y-ccK39lR! zhAD98am!3r)TlJMs5Cn|29A(eW|^QmQ9wlU)A2aXA#>*nwW$HigmtPZl>!pRk8E~m zHMo{Q$vOGSH z4X{1ql)cU7B#{T4J{0eVTD`ei&xe}hD6{SolVXsXHm~ro5LitDaKNqT9x6scqFsV7R4{=#V?^CJI%>k|C*z=atLc2 zQZY)Db&b3T20KOrqhOj<>Zb(LK|^Dj-I$dR_5Wy_$x#4%M{4GH2bNl36lZ1k>raO6#-( zL89a_wG~cl(^$wQ`;UAgz3K*Mw~$P0CQMsf?@{X#-Ffody`lz#cVHQk$y5yn#PvIZ z4IBs1r&|JGbg6$#9HQpHripkU=5dKp|G+$>B`_pL!7VxB0`ACAa)1uIZa#j7Y3N<4 zrB$7*+X;h2P;!E!s|DGJOq7M2Xq2z$H@~7L{MJE?K5`xnjLQ=oRzDq(Q^pn;m zg6GiQQua80k(0qw$|s+}jYoS+KWc5AwmE2D3DD77Tb}^&qgmuRjAI=z7yu$11k6%rB@49Fa+d} zB2d(Mac_~>(?4`smspT^4xm;#C>)>XzxW=yNjadW6$hKPq~RFV%WfxT&3N@L61Hl`#FugC&4#+10oVY4 z%K8sV388OD*cSgx{+nd${O3p^qc*k;Of2|N2OAFg8}zsP%}SrQ4d0l(>rG+MGxtLW z-rXj`D?a44`^km-2-UUphAC$c=mIpWp@97g?`I|O<=;c4{LAJZiPLK*Z@Ya#zGfd( z$>vv3!Nkey29wr{V;!5^sj{D!uH6wp(z#24P@S0nFAjq#GiEI55_gvC&VB6HllRBk z*J}iUca^)jj{6J&7?OnR#mBaZt~3@2^O`4z4nTNZPR+re&wDq0NZX!DcKR`q63#q4 z77LT&yGlWC+gCHf!PGMUH`^~<#k|QpkTtV=3V*jXA6%%_k7mmvA!ja+N=Y(6R1Ggh z)xx-qB6?f*m4Lz9Lx#*H;Qb~>;TSQ`%hrm@ubvkXiQn|iu3}rMoE;{`DF=r8PkvYZ z#t6pm6HOrKjmIB3~7^(x>SG7&wMJ7|g#1aaJ=Erqra#pm3OvV9c;nr;oYnvgxoM zf3sU0%*QNNDB1JhEYu%%e(F(9d-e&nDeC_zYj|XRXEdimuW^n-1b6OAwT7VOPxcRS zs%g#U$P~IqBsuw|gZCuSb*{UfVC1U#LtrgZWJX^_`{4dU`(pD0{YL*r_{Q%E`}P;;1@r;_5$r15Y~Kpp zSiI!Dzg4n7K-<7d2KWX9^nM94GNR6a6a|O`+LG3W z1&j%}GY$C_42P6TW+{=dt+0l*ywVmLEPxCOx&;VU50}dfZPCbdI0a4TmfS8)@f8dM zV5;g~nxRi#^vAI*r!>dU;u%Pn$wpkEZ(=w1bISc|{q-A=);lvhD<8XV_=xy~chw*b z9t-;szu!tVDoasmz8k0|m8z0bp>?Zpbazx3nK4FsI-$W$;DDZKJ*eBB%tUfpu1c2D zJR!|ym6C|kW?bRaHi}l)9?z{&K?>UjFph|9m{W1NniAHmJ(7N?F%F4r3e*}c$;mRL zHprFcnio?iQ>&6sr3UZ5$df(1>#ML@92*VPqJ%D0LyJ5bByUJmKx+_gGY_FQ-;!06 zv*@AYr9kwhi7F{B{A$&2 z)aK6Zs+9YrseuV?@zkZ0rZwpRCWa6K0jS@)hV{wQ2cNIHvo_LccTK_x_6E9?X1_h# zE$SN=BK~cBj-Bvk;OWhdYBN=crHS#0ySOl`{#l3&2z1U=1DiE2>lx@;sMcI#q&>Bv zI4Y@+SeGT`J~j;-GK~~WjKKrh!;M|)pI5|Xq)AZ@ku7G9eIj@F^n9oT?69vCB&QU6 z8qF@E%?=|L_rXY^%>is$V6UEoX2v{DQz&oTLXDJvuo{U+s38=;NQQKHf)WXhmP z0oT-SWILk^A37>|tZpkbGoKs_WNly9(SeJlgL9{Y`xX%9F2X75DJaFVK1Qi)&kIKb z5UXEAXzD2pcrg<+{Xuo*%+l>Y6^mI~m7XpO)OGN-OcZn4ioJRz_LDQW;YZ3t{E1Mv z7viP~>Kt)eA-=T@v=QL!$1y(LrQv*l5rN6S_t^1m!z&z{VG13M;!MK2F(!M^y ze1PrJyuZMz0UA)J3rDTX=0C!}Lgn#i!VT{Yhn6Vs1BuJM`L7*vZC2JM6G>al7M!_U z^YrbYOXzdOHV*nHn7>%_7B+Jbmsv(r-4~!h?Q-lODk(&{2j)LsP z@dLO+k;^(FPMakutUw$ts}WdZbVRJ3Gis(^=4atTfVkd#3C2GWBD`2GddvqBjiAF8 zq?6=2=;5Uhw<0~aKDh2Ej4S@s*bkrVt1tx3edR`3HXXm>&5h8gwb1H=GrfDsF9~fV zK=3CL(FwzB>hUB|br9w$f|-bU9?@;puO1>L9H1mRxd6dWjBh6+iGNZ2N%F74&WhMq zfw{2j0cNIYFSOJi$rRIWQ6`!=dcu`RQuDL4n|{s=U+>k;6)n z!#T>TN|8)J)Ie&d8f~II)GL@FF|$a zLf8al@WhxbVA_TCM$!EnChVs^RE(ebF#lq#0OFWMa%7mbC~7yc>&4arH54`o`j?`e z@^ecgcnSD-2g$I+re#(Rc)CQbz6c0LC6M@h+r{A?(w&A$nDP3!a~bia^BaP|SZ2i? z7YAOQS|oH`ds<*`RU9)Ghdc9pdsC>Ws!G!>x*h_PPOlc=?s=C=O1Z%0BWGC4U3Hl3G^gun5u(xG^FQBjGbSP%(y$Z3ziElUiBh zl~*p2*d1xuSq-Bsj7zqoyB^1GO zyCDZ!NpzVe5mEAil%(-V!&f}OsCk7@`zoObOeSIIm1v+VzF8e#quCS-8`O{bLGeY_ zzrvMDkp9{oy>8uU04h7xft6oLN6&6<+h&Le+my+>_p1PK*OI*>Qpc`rH;pp7#Tp;0 zy)7w(Dh(h%2cq-Hk_sEF^PkVf2DnWsA2U{?U|rL&MeK~SQNGNar*X0L?3nHV|2et+!`Z9qvz6lf%c+Kg zD(~h14TF;ld`GQu4n6mWqW~F@4RMFvut(mo_q~2h71*xTJ;0}7v3*y`$^%_oL z;1YlV)VT{}-`)yq%r{;TF_BkN=p6$CApc9atTSfYdV#W4+>oz-*gBMng774Y7U19U^kW1e}Od z20=}-QvrsO+;w}w9M<6Iv4x3cKbByUw#NDEhFAo6y7O>cEsgym-2K_IUB;`#_%diJnx!L~-Hwh!_fsGI?QgtACug zkr$v~0)azh#B;gAsX(jK$bUzTX4QG8ULR)ro_juSjb{0<1vJ;j3Jl-iTxbs~G`ugT z+q-^%^;@J@yMA!?8<;;W-kQMm4DIO-OJMn>I8XP)3XI=a!R__MF@LaNM)AHNn{S&% z6F&YBKr!u%XrFcZ-h1(>!p4hsHAPTH6v#II=ZokxBdq+FD zrCS!bp24<9)nNm}7o2PzXV(wU(Cq=u!@e@iFWaf=N$y;;7Y?Q+j~l5_K#sF@OKcWg zPfXoXkOd}xR9#Ih!I&27_SG)ulCIbLgf#)!wbfh`K#!oy`*R`AAcLs~oXWQxA+ZXWNn#Wi*K4 z_i*P882)-)Qn22BixSw(cuP79li+_F5-;*=Uj~vyYwdhAYiW){IhM@E$DoV;_>a zRuiU6CXE+m)#rCyQB~Bh0!RJaYur>PB2>vT7)quorqyHyV-G~>(xzQZCq`B2?2WEP z!?Z>XWYs22f2vs$CA|0Yo5d(r8#i zvGp$lTk)HXJaT?P8n}iLal1h zVlh(5Tj~Oq{^N=Hn?!4`m^hY6wp3|`S*(A^=_Vo^$3ILI-92WF)-g6ahp6=l=QM9# zLCMkbRnsU6-hH<9i<{6Ep95Hf*FFWm`!EBaeSeWyPV>BJALF>^&V4Qhk5QHOMvoB^ zb@o<)z$5bI45KrF9tHT?@qI=r8};G6Ah-TMDE~hUBiD?zSrifo=m7rzDHqZzzhQsu zRA~k_xDr^s?)J;>EEWp&-F)xHJk85(&KCn*+e7S*Un`?4qpQK3G3(@n`40Nq)t61z zZVDaVQgBewD)}X>Fvu`#6%})TkiSJ!#8XaW6zj%7g~e=3q`}dUi98DY|A{DqGx&6H zP#A3Rh9z}p+52sCZ0D`EJ$jr?puBSdVtqI>aya>RwaH@l4GuYL1PYIxYt(g-ac!Fl zEIDgXv?zbqRAv$N!!T&NNjZa0YC-eV*rrDnT4i{VOgMx43RR+Rj&z!#xlY1mrOb8O zL6&x!bTwn*b7Fr!$y{Kykw01j1M2u zi^oxJ}IF0|Ho2nDY`QLQs-e=D@JuO%~bX7ZkODC!nz3K&XM`?&%! zGH9;*>T*z6{o!ZH*8h`k#kQGPW1TeniC7|nSn|6a+djOyDi5BIaXr)eB;fIVHF`f* z2RvtgK;WNqQtR0;XaD3Hz}f+ zQWd?DAJyj%r8g>7YW#U#WNmpwgd16lV5sgx=b23LD-aiDB1f{K!5 zezDx%a;Foeo5*f0D|o^mB!lGiG)~$5fV6)G&r5{y|F)Iw$0QE2BHGq_0QvyHe(lE( zzDC&I9{vM?r95xKGcAL1bLDsYv0i|aD!$a2?}!TlbHb79uXRG^xXdin6!IW!3$1_c z*h)6@yw9WP@ts!m4Fiuyt?qc*!4q^vr1Ykex)4%NK_haiw&+&O@`tEs;^@olc3Bc5hOZ@n<9vt-VF+fC#5m56O{IuvaXplKI4)E-Gp*?67R9%wO25b0FovX56EN zEqFTJh3lRv}#l^5%90*K?Uz+#%?b7s}& z28(h)i&Z+Qsr(4y9prBmX-|O05ZUcWS2!u#Sbz-E6r_Y$^bo5e1$@-pcPc#okfBDA zlj1+(l6HhZ3(1#C5%7A>r3pIPBvI-L zh%xUJh>EuVD+(~#BdS;6ge#PV$>tS&8lBDYi%ti-dJnvA4098#k`HI&6lQMH%up(P zD;iV2dgi=2+w))*H3=N%BiB2gbwK+!hx}~=uG=ykQm!3xK;j2@m7;Ck==OKHZ&d4RZsL0_M`zbDa>$5%da}Ijew1bo~it znAW$SwT86^JOFbkJ&t-w0?#3uj!}SgPUN~=Hhhg=nwDS02>@Av+{zI{Afcg1Fp8WEj2&34D>zE%U3y;7^=Si9?ow$_q?^Oe ztP=>lEA8D_%&{o0M5jDkcOnQk^M<{3)ox$E@zrcEzjak@_q_2{ZkNfIA_g|H_##RM zp7K?Ze|t8`wbooNyO*EnqzQw|b6%(S4J5Z(0KC86!yGrWc{AX@KNWDcx#~K7K8o9b z6m~y*4IVy8)K}SP=Wm4uAdM>b(BZs8SeTD-H{F;WawZOT?Gi^BPGK_&6PD#9rnx+C z#?v#cvzMLCCJ}UPef1lh#b|mGb=+uKlCo+s2Zc-B?gP$^A!?#9Sarg5Ov}NnShzP( z0H2LM1-(+G>Oc7M)MZ#M_ogZyHj$$03~;wJ8V4pQ!+&PeqgL|rEw?pYMya|Umac|+rj zA}MZB`9lbX4F4hm^OFB=($Md6MAX34D7qN+60fSOnQeusfMy zgZ>GA-aF3mdNlb=p25-JYjKSY#4?Se^QiMkdIbuEFP%-JycY|`b3Km$zz?~N?;x@s zhUil|FquOciU)7RW5yN~k81>zzS9*z2t}Su7aJp)K%mE+8Th1tXW#c9dm|u4!fa73 zq-829Ks`MInWG+G-mRDio0Kc&g~k zddxlo_tN%+ehta~5tSl~yk&$I-U2P?VxYumZj6yT=w2%pS$9MIH3sGip1_;6ONy)H z?(ZpnxG=mCV?5^!=pZ(4K1b}Q{9BT8!zg{AyPZ13^)I`f^y;~!O71hBN{bE($hcKu z5C{dkb#&A}aF`$@~i*lp7ho zlxS^ogDEkogwM2{LhNU zYFR}EcL9cXkBXKxTbUma`(c_&rfH-9bjK3?ICFvJ%;xceiHUe+a?}FJ3o^H3MiM zTEuGTxQS6$V=;n-{0OhYg$VDAYN@b(udE?+F`YDitdDhKd*s33if-C)hWlt-dVIy+ zg~H$zpoW3m%pvRThIv9cITMOrHA8LRf0%6Q^PGj39@{_Z1FPSUY-OkM%cLFgTusp7 zY&~_Z*@oz}Zg)f}!YdLdhio7TK>`%uR1>^I21reE#Uck;(y4!tv=d@7yS)8Q&5CDr z@ZLIF1kJYcYO%1{lLNY94W>D|$J9{n{2|eGHnStzxk>s2C&_ z41N)3Aaa)K$^oGqT9N%rBN?MI{AAl2Psb5`{cM%nlb~jrQhUC=<8Q`|{u2aUc{P9N ztL;un&9hL!wP45TU({;g)(U_{R^6h!S(E)BRX`H`Ow_zZi9mueSJJAYLDwl#WJ>Mz zMHldbq`{8JGoPppFN{%zLou{GG7B<vSmHL7B^#@C7& z10&2p)0zEu%~C@&k-kthr3A}NY-vrtAfTq%J+)I_flp#?zHjUj}F8g5ZyqdN;q3uQKrg{XtilB`E#l;nU~|r)5fK->#$)GnolERzz=1U1@%$=VH4B_wE|RMEdV*jfDxuxUW2aH zi@sCmlchFAQppo{jaesiM%{ zVdm9hJ1ge59XIH*9*s@?)k_{ zS74~Ja}}SK+^#lo2D(|BlSG{56h2apK_mcIp?uo&D|9Si`$E}=L9G4 zpCq3qzIyK8%MU;w|5Zx04B>*40we$Dn3*kpAx*&n0)AJig(9_`Fcc{bm= zxDWMY$?!GeOMKlbgOg5=M;mTys^IjB%6adND=Pz6xqrTlK!eGGopEjdHYu21aGN}M#SaO!Il zwr~pB^P$hlYu_oB36NznpygR*n^81|r8b=^m!Cw9dIb_~XzT2EQO~J?Jr!oZmYw8u zZVOa)rCy9}bE;FnJFd50i5x%mnS@3i*D|-5v}xmr5mIG|JVq~$mbLIVgPO2CBu2SY;B5c)J*v%P;I%1drOmUX#A=mgw#{U?!#FR(>KW&TN3}?TH5MlO zD;lk!iaVB#AW&7YF&LS8jCb0wizfaJfP1cq&vk#}GpZX99RU~>(VJ88rHlvu-LRRW za#xRRavIY55yuujcurS;{RV^(k4M77n?yRZX)GQ^tzv^HQG$peBkNz&*_r5Cr*N*y z6P=*7n4D72Pf9GYN4yQ(-x`lcU#XXuk$9Fvxa+t$%tpo@VQp5=`Pug^Myvc5Zo5Lh z4NXyto4BwgIGsX0K32NkiuQj#Q%Xp$MXa)ddc#qm@c3#jv<&yW7Y2}Nd?bYPa`RSj zYsggnGHM8NryK)GJo=oJ!T`CCCM%O=oE%lfdd{HsK}eocbIBLBuT~@|*XYiyl=VFP z%^Jh)y1Z0PyR&I=sE4Xw<}OkxR8cK5$L%cdS)qM!IY)qC?@*&Y?q65vG$s<{7fPCU zUWLxU9WtiP(C-wox(DDsa+`l28Yz0Lb2k9%L8hs%Q9{Y^X;*h-7t^jly}!$t@q~4! zVMel|x(SVyPk4PSk>e|8DiN65czEKU9DFCn(|ubJqDiDQ$IG*CAb8I_LiyI!73gb{ znA4ry?%1TrXg0W7NK8D;^jIccPj&6kaI4-gRmgO(1=#B*l>$2GCR0VOM0>+JcI6>` zO6h3aBwOr9?5GU2n{iF;1yU{zNA!XPbryzXynb_;6@R?c77J6YE*6eP zD)k|KKxy8G;ZYJ zjIKmQd^_+^j0&}??Su=x_+tl&HpG0YB#UhpYB&Xi4;UotLdt+kAbK_oja}AbS|dT+ zryexR!!PA~W6sKV@EOj9D%*w{3bDrOLePiJl|r<5hz6S8KOjX80`SP2>op1QM`GbBw4AQ$iq_BZ3( zE6UJT2C!=yKVtF`y+g^`LTQ!+6I;{9N&dhS{_Tmsa3B?Z5*8S+3kfsQTPsC9K}rNR z0(#XUPrO`FHVG3R^-66e&~zY|6BZkaul*o^piXwaSs zMr{<#%JE0o7;5i;;)V;)qKg$lCg9VrMwT7F0OnCVxCirOdAkTfR*dGH{o7~B*8SJO z8nW6ARYF_V$?84*?NUr!U^`ccb!d}sKyuTe=F#;wm&#V3T1(0nF3Sz2ff;#V9wp6P zlQzyladejECx5NB2YmAHCL-B@8BJX<%W+O92Rc^vuOT?-l<|kcuKp6Q@l*Qw; z08Zq6May`&Le>}XP#IfRAriq;A(0z>nXs8d9qX_Y_d_EdU`Hv5S;|j@*qsT?uYOUr z;-R)4NZr(Nh`SrE#=bGbj=MF|niOo&rGoeS7uy-n8u^6Q@duXa!_$X}eqHXpwup3I z95L|h&fV9GLg>{)ie3a0FO1sxVro#;07%4Kc(9ktP>kAnTBGxVxmV0q=|oqR4$Om{ z(VDzH#L7DqY4gv^{aqQv^T70W(c1s9R#kTB*1H$j_yWdkwx;J+4E-$f7g3-yhYc>;b{kxUNH$=r!jnRlY7S0YwuJFtSg8r;$60jT{7 zirUIQOr(UMOJA`#=S{j?u(iLjN`o_UAb=>kY`cYf#+a&K<|43X6Po()Gxm*Q6QSqw zKU7M7W$`}o)5C+A{}ghSG~ABc=)LrpK`@?U5p-u1NAxcPE#xE0>zfDm^$Z^hq;+ND zS{lrv$8L}@{v)xD*ywKL$Z5zQ46q8`A|nZZhk_M~qZ~`{7i$#1LhLv|y1)zWO2EVm z?b>bULr*hm9LVP%Rz8ZC5ocn7cqwA?f?`3uh5Gq0niZK%pyV4s`O+foq)V_cd2les zOhZ$!Ou7xuP&zf5W6{!z(z$LP%`)<8t-l1~^Jy5TUG1aX=P6oGqE%`I$V^kS<5@^m z|6Os{WJN$nRQYM`>m($~z91KPb1OvmpRgG)4Iwk%9^D+xHZENK%S}cyvkpqB?381k zx)KTKn(JiT1}2iwbppdD2pqnpmODvh@QR5Q^TmJvy1-n0|`ehl@s6v1m_qV zZuQYz!*rSm#u^)#bBiel2<$JmaZ9tANe7BaYUVeGYL`Lh2rX)%5C z2#z%(yh_|3aL4f$g2}}dtHyU7g;sO|yWqtrlGt6GP5Fs7Tkc6{%?S`ZhWq8Z;^aPb zPRcIa=UV=COeEuPpq{>+#FsxSAVV>8fN8`kpd3OvyWZ~& z5(%y*_oOjdztBPgSj<9ai=GVlf8y~yIeY064{Ij<8@0rBGx%fQjw=-xzkydmLF$x^ z=ij>$HPR}4o{hmIK}<1F9(-MWtUZ^w!znej_{wlQk4j$Obx)SN6YWWF@(O-|(mRH| zBbC+(=dMins2ZIMR!)&6B?g+N1u9U^pz~mAOe&;M=s@BEP{u1RBV#^g@@-#-m>0Q- zzZdcQLsIMC=;!y(3r!FZjH8LyYg-^fay}@v#88?$ya3-Ra21H6vSWeBM^Y&g^bk$D zKYP<*%8iHpP;w}A**VX2g0ldDTxNCYA7Ro`DpwZHZ)wg$$PQUu9(yVTOI!N7EAlZ# z>+&)p-XFyb*a|2gn$x_6Omb3`4>j$MB20i@7qZZF3N}r>#gd&Q^pinXCL&QLqEX(3 zyN+T15IFw@NsA8}#V~N9_1B}hjU#t4&5>QyJ9wNv!}iuaHVykm-|+ObL^pQd8mtBJ z-U&{*3!~>GaoO;iQ+u)P%IbolEQ23<^DCJ0Gsnoayc&Oy1Pt0&x$RJ}9^neDv z`dE)i9Z{h1?_rS$TD~e=AI%;m-Fs_^%{Py6v4$tj6iqVhFf0U<#BXmhcx@=K+fWyAgR@ ztu)=C2^LCj3h@Tc28(lxCumi5_QKt04MZH2WwaYLpp`622mB}LsS=pcE1 ztJ8)LWkOrZzzW>18hz(ZqV-=VboH6MYEz_$YDg`o22UNv>o>3K(#G2(3w zV1UftNIV_AEkQ{;QPL6o4F%KSK(Bh>Utel83HHo8yMZe-o<9SP%)#6kv)e~!Us_5R zyfiWnsuxFda@ON#1X}a#O9iU$K0`q;S5Pv{w@(& z0AI0Ilz)h=4n}65guw((yEyc(P=aOgRQASM?RL+v&on&9=`S$|gBbG%3 zMW6O{p5)iRhGP|GAX;iJ1&Lo?S4qTjQ5RoM$NX_iIZ$2WeRGW8J3$ES*qRm8|8=;2 z^*Kl7<^7#6lf>j>9|>s*iN9t&1E|$4`V6VKA@{vjy=LvP=yj35m`Fb_^n3_dV2huw z|I!-3eL_wkMph8O`3{VcIk(lnwSWEJLEQ z=R*+;q`uQk^6&U(u<{aY*@`?@#^t{^xw*I#gwazAe*A^sjK_RY!fCfSJMr^nbGdFR zc#rvM@wW=tNjzu8iL@B_1751xUAzZ-?Q5qtud70@KG|J*)?<&Jd08PuOgtJs-!=B(l>?DVetMFB?8p)dM(VYpF!Ex_o*-j6D?1iPdUL71N) zWbYw1!fIW=v4%_;vE|Ni5B_eMIIs$!H4&?JLH7|9<)ov3X6K9w0FHGoAXkh9l1Cu- z;*@P3p(>S|-xSVL$kp#ZPtH@Nc~qY-t*^2sacrC2`}gUm>)wt z)y2=%zp5g}i1;6>X4XKR0b5lVK2iroZ#Yq8Ja&E?e7kiV0}9@NzSTWQo~bPZ70Q#WRbuE@8807#lzBDzVOEij?<~5eioK5VrJ+{Yr&5EnWS2G<= ztb@kO^4>OIX0%8yXr9NYrVZ)-XQ{F$j@NfL6_*GxR~mr^wPQli_e^RKG}BF-Z3(kF z;toe;%2=80$=4~e%lAg?l>vSjJ(b|c`R|i2TUVFwZtQj)z|Y?z=uLRb&uMZO4)FGG zFWh!V;JqFVYZgRxdzSA8?DqAwU^Y8(6({L$0MP%SBGn^wP?pj2Oo=Ci0s|DAT%!WV zm1vX%ks}cZ388)u!lwyKLO{s`YR#yhbq5hkRx1sFqd64p$$wHujyqd7p{Fh7s8`Dj zE-%e##XM}6_rYajm3P&`12 zH1^C;yg+)Ib4(HWgC#%oE6gE1Ht+ucZa|U0ID|`bFSi9+nXuYjqZQQ((Z|~%eB-JT zx~ep)NU$o@OH?Y#XoPMmkubA(J~CPuu22(F&}>x6gijqpe*+1!n3!waITcAFhD=^2 z9zH=z2Oq|(eflUJ>S!UB-1>z1_(za2LZuxY7LlNj((uv#(FtChS|&J%7tLy|gCp^l zaWY|@=*2s@kt)GgCX~Kn$tvqbUj1r9BXpMuWe(vAnJFMeY#6NE$OjW>+_hRyML5rS zhx004RQrlPe!Zn3TX%cybL-^K}TdC4;kqS8}Q$sTM9yu9{~K;d)*x zPH3;-TgtyqJnXa~(ZUFx7ZpBY^c{68tx_V{Y@|FdSBq}TiSre*L=Ty;$stT7Ijtb` zn}d{FTADCeS*{Ky(73C#;cAYwn&_vJ$eU>d1&4 zVil75wt3J^@@^^S1}%nm!fhofkQ8&%RU`IMR`6~CqFV>vOG8{ML~kEaK{Jih$b?FV zaEk;g5@kY_yH@m6(7yPqTekf6t7s(59oikb)x4aK^d<45g*cMvUD6d2N_6ujH;rT| zk@so2f1l5bKE&<&7E0Z+AiqRIn%1b$DnlK@52VKq;oirjogEdPuZrC65bl#qib+yC zJTw}S_ZHP8>;qTTXp%#kNIUFJYJ4DQg`PyTlbA$bLRzqkJlTOf$0gV-V>xogWap4k z_5(3{5s(>9&d`d$g?n|mI@v(r#x&ISWVRQ9f0{tXe7#w`w+Pxg+3lF7BS9w?vok># z76%D>JL&r{J%%*V$I{6NA@(pIb)DCgd3}HOA!=3C1rlD&Mchbi=#ff#Q zaRk#)K92FPd-6Jm1gBovoZ{G>d~=;Nvz_>bPWnZRUqZ0dNt5rS$#>%0Iql0Tnor~m zf4bLP4qIm#^IOksdaWaPhxt+ex1H)}&uk9@C9?$r1&iat{A7%ivzYQIyNRxw$9h)G z=60}o89!p3FByxNUlofXXM7=BYa8=>%@;6!0~=rSCG36|i^owu&S)b!@MKS2@6RY* zIBs&nH=?(PrOxeieDbpyRin4vIJr2;fBk&WuS&ajmySuonboJZty^<*V#l)Sl@ zd+}3`>mA;`zv;`erqW+Ne(_UGO5&A;QlfSG<><0N-`UY|FZ*}(EH$_BxP3zB)%Ek8 z<=Vf8REj zE$z?Ey}9D|_x+D#o6b%$ez~?^`Ajc=UB#3^Nm0*YI^PH>{9fx~Jr$x%FKzh5t<##Y zJ((u+ox!03`Js*#pP<3d)gX}ude?qhmHv+R zo#`7>mB&{7(PnSt@;-;7c7L>`DWKLe{K?j$u2Zd+jobk9Mr*K?e^}&70XV25xCcA_#YrH6hs}4WE zyyxz@-Y3s{cAcQsMcwQ6Yw?_~Q+p4rdfIyKam79%{b`@i{=NIyQU}U+S9dzrFlzU8 zVLVhGz4n)7-U6KM_D+{ye|Pr3bG}tg+VY_4xYDD0qaLrY?dUsxsbbOd>cOG*1<5rh z9=6;6a>Qvz&jIVRil@~F3}|CmwC8b;lG>nMpNCGGCf`(cY64d|=v(QsOjqLh=;?rLKRgYq7M{X$|eR4^{aZm4%BgwZy^Y^)jUUU>IlXtva`{jwjS;|uE{mcQMa3YXCBhL2(Wt_%r{Qwxtv)LYY3lxK4d%wY{0;=k=fUV zo~sGm9%t6m??xp#UOxXgbI#}6`Aj>X;}z_TZ~n(QUd;G4e*_B{znUP4*|P{HGtCTw zNzA72(uvGA5lmn?WD<;LzD9y^%$5koGQFN)Bzu1)Gn@J*62vnNjTg=AF$BX{9Qw`= zV?6yvgtB_02;O5F`h6M9Y&svr^z?fa$ZX2_GY#eXvm7X=Wj5vfn4XUPnEft652oqG z_Ji6Q2CC^0e`d2;Xg%|@=xn;&!11|O6TOj{RNVb9{_6Wh;h5g?tohz64OU|Y6+nuV zuFEx=?Uojqf%A~;CZjDW%V@PpCdrbKLFkAWQz{8~s3op~y1ANjY(}%mN{LpKa539$ z2BRgD%kUd#l`K|2n>pK0Z#GDN`gAGPFUzQxOjaq$f2t=sKazA1jMl1epOvUN5a^^sDHCc3W7VBl0HUAAP+ z(di{alEJ9ASz9KInVj*>z$s^jUU;^mciUdrV1-q=nsGRI<0vq)BJKgp7n z5td@5|H-&Gqlvr|=m-5_01Sfe&|fiMV#VGs?& zAqHY065=2pM#3m~A0|Q~jDZ9g3*%r4Oob#!e}yziha8v&*pc2d>3+Sc>bh3^!moZo#d%4J)t`On2fgtj5o9H`d^OJb(xB5Z2=7ScgZk9*?6M zz40wC1s{KFbX(Px*7cR_W8vdm`O0zL+~f)pkVS4Hg;-7k z$CecZLJ|=AUG8(*fENUTrB1 zlbJRAoyB6!{Fz_#?Q)!L&dw+ZH@9cBV&E_3D*SK7j1^w~9ZGC^$;)Ki9 z+~IP$%FUy>YOz$ES4x*FxuJ9+JCqsAW%f1|_j=@uXFOl2R$4}i#2^Fiw8Wpa=BP;Dd+a*FzVT#9-qu9LC;8fypn5!trFD!%!}}?1HhOG|Y@*h>UhrO5^$JoUTO|N)&Pjt2E@UmM3!^&Uj_4SgzJ4ct-N& zO4Uu%7GF3zBd!zJp#pkly;ef=)1^`l{Q#Vv9Ip#iTH)M8Zen+?tfzmoGjTeQua1$} zk_-A8Jh)&mKLIZ@c?qH=U#R9rbLE!Z#o~A_UFfKXeHPQzmz2*JGUePvu24|rOcc*`|FnU?OLiUF!BkHE!O>MQdLp3xU&Y)`^8jS%^3&mvJ3rRP^|23)&GNb!s-hzx_Zt?MTWl zPo`2z7d&#AEv{3X5+!Q`dEw-@-N|;{t$Fph*V@f_dhTX2F8OO?aMv0^soa;^A3>HVr^2G{9pqwCDxb*9m8 zx^$tM!mSF^ZCh?*S8$!W7R?S#S1kGwwrJ|;HBw;RToKPPmzopfuVgiv*o z)!m~m;nshBZhN@JaOM3ShOP|n@e5t0w~}3I>L?q^)cQ$B{xtyeKBMVo=ou4p>?ya# z|7X)TlxZ}SlcLEKN?0@jSPaUcblRQ#)KPkBk3V=;eK~qo?>(y<{kkjMuWPa3+3@M; z*;wz{m{Bu%#&(UHI=!8EVCAR9~ucG{}9G)(~1p`;MM?CCIfC zt)a;OzS3rt5DJm;+o#+H-)Wy}p*WhtFC8`g$2ARohNTT_n+-kTPN!tQEK!k%-1$t5_&*{bp#7)gc=c<0g)QC&%n&KDDO~vxxXPt+^@eI z<$iw?y=GDj>cUh-!1M)tgZ4SM#c#9E9r0+w?F$RPNm&?(iHPb+embnM4hXBCYlbU6 zh%t9q1m+Cukq=^RnnejeFI_w@U92Tiwl3-%^V?@`R29}~f7aCD)eMErkMd5v7k`uq z6PXBGe2KZi3D51lCwCR5g>`HO={e&>hXjIt}uQrJR7yV>CL z6}G5d6T&B%P9hyGRw>GtBH~NcB%ZHXmW`Dk<#pwo=LG z7HU>xRFU$F7-$p`=77)#ZPtagb9Iy(aK@1I$-tqC2*iXxB_d&B&VVVhs%MH{0bPd3 znqrMkm4PjgVORl4lfpp6Gt7R~3I~7r^00S7kejAkGmN+n9nb_d(3&L{LD6zKJll^s zYKlgOxrN~s7zPK2UBn}=p70ZqPA8D%g)Q2Y!c3SaG6ih52yQM!*A;D3Q$o)Qb5H^_ z$=eFt_KQ?N#3CX*Ak3=G7E9DCfqE68Hh|i~a#^MOgZxUY z;Y;?o5H?$iWi%w56@u&pYAZx2Y$en+f}d5iOe$Ih6a@Y%n_Uj@i;%XfscNZuv&Fj= z7POf`{g%SId-yeapB|0{c_`evsZC1~En_*%gr5rzL?p zm8d4vcxr|kZlZ?I?Th#Ze1pC$O-0cTbW8#J+C70F538rOX%|JZN^F0S8B%8gd!-C) z*eTm269J=qgTjxhS3PbeZMG7oGqdTc7qq0p*4b>;mVm;pg;$i8^)|Z-p;`(W_J~YH zc$a0Gr+BZzqBgsl24JbThxb+5rl@E1#7t^-BDF!+zmm@3iX)Hf|7Isr0cIQ z6|J^ZHpr#YZyu{Jm6?B~2fGxRYQ)hUDr2H6VX3z&m zuAwMy;@2zey14_ZF)*gE>*YEKlLvt2y*xuo8$A&4;NlD0k|}@ei|}ZrIr*u=`Vlrt zN6cnx5Oo9T7>M#1m>UCgr%T{%1-v~vH{L{A$>gdydaRpoiGj0g!P%IO)Zo>j?N*}g zR-$bjwB4excn`m^PTS3(D#1pO^kXzAzc&$2e`uyz^@+)S)ZG_dyA1+0xo zmlF_lg)Y%+vV7d zxApL(+NYY~DBpoo!wxgqZ)&lA(?|vRju>%tM~Z&8>xyPsLyx97QdUAb9a{j zZEpXZ-=%-B+rgMS=y(@VeVBIL3|I8T0Js8R;6oA??;t+hIm3s6i&U}eB_Hl|_&_pu z(S8#kM=~f>cLN1w?H-%qQ0=`E*oUJ09$>#mO|}cd9wzK#5k5Q%K8!uGuK`t{hAPq_ zU}1PqB*@b z-@aWtr?CCmnL`X8|PVKRSM zE`&p$^ZOKb2+Lefyw_P__X+QM=u5TW#I3Ny5G3v%vDqN}>Ot2Ry7~QTVoLr_%iojo z_muoS6Xa8B0x0i?3DP%pnTPq*#CdxEqRn^i6-)$8N{i2|OCco^lH9mu+?jOkRiJoM^{&ligWQ z>0Ojki$6;ipQYXJX=Lvig*}bbdXQB}JR?*1Z0%&}U7t{;wY!`we#K^YL-qA|eXfVw zsNp)!&bHnf!m-qG+;$$%+w3096qxx!5C5v1xr)E2w_5mZjp{S=Uvxl!HNtr{Bo>wCLYjr(;XR~4G=|}9p zA-pjYC*p4^?C))sre0LfZ(96YW}9INU2c?N)wx{TY&YuV_Zse8yAinGIybd&+#NPW zg3Z^lRzYcfxIk5PFQX#iW5S4CHX^dbPno z?ve&ZY6iXo1F_~L|E|LR(PpD$09(R$+pMI}Q=}g&z zm>;{Q3ik?bS7^l%j$K6!=qvf@)`fIs6s-pBW;QFf7_8G~r6V3~+8w}9SVZVcju_DC zn&yujw}7?;A71O>-$(wD8SJnWxP5LTbRD_icP_rN)}AJD$odD43-G;6g7nZr8|oM3 zmul0A-QS09x+DLy%_@KJ>jwDs8nFQ93#2DeB68ZS3Xt=i6wyZ;YA0*omeAQm-vk#z{)dFH9t5Ka%`YJX!$C(BiFz3Nr_sxM6cR zc*J8MU*<~wLo=coR$L9Fgc%ko$2aE`$6tq)AKL5?O~#oEw+4SiHvUooJc5aP=~js7 zxSPzl3K0kf!n1-uitr!kJ^aTYeUjX*-6iiMDIijD3xkJEIyvc=LLkDAA%qJhupZt{ zpKX3(vmkbqyi!|nGr<<9@zxO1(0ZrbAAZ)& ze~!D4HYMWW`rv=u89x_I^!SCve-&%jL^nSJWkeGbn7@FE)TN!FuPtmLE^!-JCgK4<$fu7{*sb^E&fYc0jH$YaD!CClwTnZ4#ZzKK>T8Zp+$8=cU~Ij zue|RK zNc0=+AQuV>kskbf2+QjCQT`SZ{?_c5M)1Ukb@?y`--+@!G5DrhJBQKtx#Ls`Xu;5R zL_Kb}Z1#xT3gM3Z2-6Ig!rp`|EylNCfS$jz*`u((9gFh!J^T-9o3Q#+tRz*|Hd;oH zVHthUP&TQ)6UI!gF-2~hNhv4TQBK&u1 z?NX!5OU>JmB{1h~_5{G}0GM}r_`52q1i<)ZcAs>VzX#>-T|)UgQ2uU&pPQ@vJ;;*s z_iZ)}75zm{YOX^jD2jg zr(u6=CxV8!ehgzDt46yub2zuzGlxBb`BAh~+C?Q9o<)^jpp~@E7JYA)*B3K^NJC|Z z1*M?=?@hz$OFlz)QT<|n3w+h(|ayY1oskvhW953_~(^2|zpUd^-%+@YU4;u)US zsVqBh^huHaLqeo<=Tid)K!E@1;r}VmCpLexk9e$Ue?)cOgz5u3BXY~5fY{EK_dI=d z_s=N9DEerK^7vA1v$1UU0=BuZ^DUVzRpWu$dZ$ew5YDMsU&~x zdx=VERZ!%dA`s7Jm2St*+k_LkWebZAQjicX2OMBb!0MDkJA4Uv=#?BQSDK(UmxhO4 zBX|~~#6gtkDk0=9CihW2siFMInf!*Jg%GKlL`^L@R0UZ2 z?&MxP^oGL3O{WojlzfPIsMm%3mf#AA=0(71c@Zdtda0{1j7 zL5q&MH=`m%4&p#i205rh!h!RzWN&bw7KFOgP zl+VONpV=^u;7MR{+*sr~dAN`~TuC0rLtm`P-&uF@(69y#B&EeBf2D))5h}>- z;6J&!lfU7iuMRLUPX*b0LkLvVl@>u6xB_W@2Zl#2#2bIz{+^&r#g)Z>W5H4vueSVkzHT{!4(kN85Y_Z&`X2`f;glKB(&B6ReX0A`e+44g3W3=(ReLPLLm3o4iM+qW8ORuSrG zoa2CXG%s~IbOPiR4N@kvVNEa`R5}c6Qr)PqrXn~E5F9wvV8i3-o^%$+8XnIgEk!tV zgp>_>&jRCULI6Ifc*c0t0hk6K$P`oq*2Oa@qXKkHKvNE#oB^CpkVEyTQ&3DQ8`c4K zIiU<#i$n693~PUr=5Z95hvFq1JVT2CPvnr8=&K8G4{$V|p$)2wW`~5*M{Q5EhIKep zGGHU2L@recO;rw^A~Ink3X?LOM)e{3fOac(7DGp!hA1`%K~d)hFaYQz6Tu#!ps%!$ z|JIo#hfbqGgA(hqVFS=Y76??2g$Aupn#WRL9*UQ+@C<)F25i7WgVraxu&hxGg4X|g zGO45WF+it~N(5I`4mJM&p&H7eGr(;OaBIYdX>@faQ9^D$IQ>RRZ>2#969J-vX%-lrRBuu~oYhW1sM-kY=SAZ!2 zaAfWbGYIMwiXytJAUYE!Y(;P*z*aiQd)PwF0G^CzSWsvW@7%s`CSAh6Yd?qm?L zB7FuEwgmj^iY3Xgr2M@DQRy2&KpM}m0_M@NvX+12fa?U1g$*)+Ajbh6Q#=D6-I*o?vDmqd^q`|D;>ROmG4JbJ{z>cW0mw%qlm1i(*cG+qE{D>9 zS}I82gAGp`O4aNoR0uC}|G!k#{*+XxN+5{gW`dvTj1Fq05RmuuHgA3HrahNU-0cIs2 zH6J!SL$TRhU_YuWpb#%A*rik^#|8G~xWj&UhOZ6m$5ET4PC?L%1=ec_D1gt{I{JTs z0~Nr-GiErz(+N}p4i_qu%*KHqzZ5Ze;+p`p0Hh2^1&|UT2oMPn9^vJ2*_y+f7}@CGA1^6jPDJIJI0sK zm^ghgdDP~NF}eX`Y=(~E&lw{hHYR_U@G&y;#^}z+a3mH3D#HU5J0`X`+~^M~6F)|G z;lJ>2`{OVy29$r{!i ze2GcPGu&AhsL5pFlw_PrChfu#laW;<0dtLEK;-Gm8vDF%-ka7;@0?}6t)^w@`5CEA zZavj2GQ~RW?9N5H*X!+sfu2WgOSVeV{Pr1Fdc5mj*tko%`5`;{@P}w)ho%z~m(D79 z{gNPtMvU5XQjzV})KzKb5Bh(O*&pxBH+R37rgE*9d3vpZXYj8WC3b%LuJCm$>|>Vi zQcBVI_Ld}8_kDWD)#mNg z&*s->4g8|@;3Jw(MU+b&38lFBkMkI?zW$;z;mD@@twsBP#utx>FO`43JhABD*SVJI zFYHP)k}Cs5d{7gm-JnKnKoYEvKL4s=DuzA4GX;}z1JC5q-r=3WGZB+P?~f3ZVS=Xs z!{*@0$J&A3$rw!62t1=PtczjLV>}hZs4f{i7hrs4Y_8Cm`3xum>-iv{x!7EEV;G%{ z*MMeY@-G0*!uaigW@3N3PXL8r_yM3`O#UvQAPnCI6o~2Gz%VL*4Uj*E8v*%YF`UFO zs(T!pe-t0V<{Xtd2*?xDtpJ2zxCGEN4DSHsf#EHHreZOy2jqs~KLEL6GOMs&qIek~ z7?VNotqsOU`)Q5w(R)4_!)SjjusG4$n`0Q=HFQh{t)B^o(HeiyaHIDV-7AK;(L3sj zVO1;^ecb5IN9REgvuT52G#)EJx|lBNQwP&E#-3=cG(2T8bUuS~(5X{es1%1IWJpud z7knxOSCm0o^{v-v1)`GQ>@y_1n}`ai@X}=qMG}Qf9FCfp&Pz=cA$(DaAUT;QwG~Mc z5)*M8zf`aT30r>@c8RE(sz@voic+O0gQ~D2N|(h6B}up#yE#&UL~17!rP%RBaRNL3 zLP5M;vXC!Gl?tMzd?06+%99B*1kqxiL?J2>#PTH3$s&GIbfQ$0Y8M@wE=-QIixb52 z(vxLCH`XpeAOjxl1hK-@I2>gWPm&s)o|-Nd#6@QSBXNJY@d}n;u~;OLMe~xAe+x+$ z^5R5`Frf)!^@J&?Y#dH&EHgemm5=5Xhtp87V}pHukZRjMradxIAy;iCVSZIMd&zy0w4mwtq){N(gF z!Eayl|A)R5mqRrJ=ztz2;gp?hnYJvHN0bRu1PfKb-wLXoJR(n>H<72$vs7FGsVH5- z7bM{l|Hrk)pshfXoQU&`mCC@MRe3ofIQ$Iz#if78vq?oo59Ar?b3`i;@!EYo70vaB zp*nwW`&F^Kyfd_wwPr1o&2f%uk9shB&aG}QF`ei&{XS#HCaHtPnsIAXCVTsATuuy_ z!f1Axc?}Ml;Pg{B|HeB0$8#@!)t=OQ)!|ZJd%E#URK@q_OV150`>1G2N@-2rTX)ab$NxIIx;(1mhXt5(dDRu*kR7;|24xrCs06W`Es#K}Q@1e(uwl(cV`)m^I&I zXjV0 z^do#cy|}Q|qFlYzJ~+o~PHS_HXU{K-vkhwTw6<&})zWGs44LV!Gq23iz~_Io-8=FJ zvNiM*xzhAr;cBt{@No6Yci)HC=eGyvC_Nl*E^PVEQU9RJ6726UtztEOly}OMmK#sB z)=xLs;HKfskL3Mz(BO+fbKJ(8f0p#Pa671%3W9eQPVXq3z9VRh+Sj%n9gtwBX4<~X zob`vv5As(hI%u*_JX*rt85n;fpH7J>y576vdT;z|QG#1T?Af5OVfU!cFR~^()<^_1 zrpe~vgQy^V(}-%8Mb<w0~??pG`2gPgTvibNqAJ7o3QTb(+bkF2%3@1 zOoO$%sxX|pS2(o4yeFu|)`mX8J|K)1GSnA7)I2;*^{?g0P0N>f&d+~b&_FK{!7Xbo z%LoEL-rVL3H9PkD3?B{X^#0ZpDDFOXu$S^sx^-c}5*MEb<0jMIbQzQ^Xl8l54E|`u z-M*k~yM8V*WcIAW-t^nKT?_wO9vk`L7Nh9vp5uS1UbdU;8FBhL)L~Mx`RlOU&up)- zJh6ALXZ(!*hBX%RlWc!K6!&d7G0Vl2(D~D}X}<01hJw3Un)&hB>TOP{LTAgmlJMlO zX-PM?n6_;jpVl2L+TeKbPP1XgP<{@$_q=2L-SzCf>1hG|o#NXo1&!f_ z?_y2)6Z(2LFTAXG%*tLmVxBtfMc*=WaiM>f@ix81bosZ$OP-{Ov-f0wSbc8&_M#@e z4F#?q6VtP%b`F1w{qj`x4&}Rg#H_gWb-=gZVN&vS+!RNbQ2%#TXk(eS7u z^MTs^<)*1lGyA8JK2}3ZUA!LY>4w?qq>E>&K6 z#ac_&uxb}oq{nH}eiU6xxznqrT$WoKdgGqSpjAh!EYW|k18TJ&=v|{<^8R`2GhB;z zbHGaBlA7XPy}E#~mHStpF`-r-YAf!Oq!mg9mqTy{VO;k^Q!?AS9)E35;hsD6l=1lP zy7`NfU;;sk8Dr6XQ8&-pJM|pm`hsH-O>!OQORi^Z18Qa)bmln8G=(wu#aM+bl2`H|>6W$oZZ-2VEjt1}-hauQB? z+Wx{`r6o3P{W@vqbZKNoX_$>ozN@OO>*|jCrBHQE%Gu|S=UU0{+eE2%nmtn^IWkql zFR027TLe~FuL+>-;yjjBJt*|KAP`R>e| zJYrlUPIn`u%{E&ar zM^uGJtT}wIr&=p^8Z)`zL~!S4nHqzq>KNE}&-2lWqs4Xl<8l4|>T-Y6Dce)7H->+B zb?dFt8^?`XkY9L8<-tDj@erSGwRU0=-@PhU7NGUvR*PT>qExqFcgJf}rPphkE@K6d$_ zM!j@f-Q>-eR$tP1&{}pvqhq(H)-!)(_7XySaQ(^}N$QG-Zt^~Q;IhD(QT9utoX)Se z@+CUCw)OVi>}K_L*tlFj?VI&{=fbyt`0^>I&raRG(EGr!zNvd`;~CQYFBW+ZOX|}_ zojFAA^?GOg&eN8W=Xd;Zqctce{v4^q-C%spsZ~|hH@V@trSw^y_rm@BSp|RiUmDRq z7j|DioA<0cT~oei%^m+!ivRpd&%$dudx)9QdVcxjqw4x`@{3QWG%NmJpxs*Gxh+p6 z;;Q=58uyuw29C;FxSz$c)~VHy|M}P$UFTO*YS##gbwwL)FP2)Q?G|0#y!0F6$-8)N zn6oshy(vANb@J8i`x~64-J*ZFZx>sicy&-sbW-v>wX3n+>e0Ko;cGJ{r)qx^E^dJ5 z4x}7O6x}l0FvYqz;E8*k+TMB9kJgxUIpvK!HEkZg_$@>2@k#3Sv+ehXH%8^Y4)BX& z257{uT3PaZFg2^x*>&Qp4DXtg&H)XV?*;l!>`FiB=GfG~?V7{(TaSNVNvhQM^v?{k zh+Omi+WM7qLpOz7*RkQWMH&TD_t}UG5!T+_eGc=Chb3kMl4><4QYo?c?NYOMzsegb zj+my_d9~eByCRr-+1A+QgIf67%h4Bh@su~-*S`7j#DrsYvv@-DjTg6OJ=;plByA^I zXT}~aUi>w&ct?#z!Hs`JcGsclhP_4S<^=|b&l#Cp{HdK%Gm*OG+-iT{$6*KRPK4*Q zO?>^>X>&`h=JrWR_itA?Zu4HU{_N%OUCDQ9X1@RCm^G5)yx!TqEheW%^YgSe#&_dJ z>&GMEgwNAD@43Oxo)!2#w-iegyz6F#UA$ekLcd8P+^N#>MpS>*xce91oE^7uiO!cE zTIZl?e8aff1DDROJe=k8YOwxQd#+{E`Suw|J2{{8YkBVJ5#O#6pWG4SPcf|z>)vUw zl`=bm?zyk{=swA0D2?SRvy}vYysX1`SJC8EwpVrhsedCNCX{nR_lKL9$;yq?P$qpBO;qPfbWIeE~%Axh6Z;gXU*+QEf)njLcCx~%@XZpRK znbHlN_wj$qLlYsguq9nzF*`Ddofe0RRC1{{R3W|KGlWt89a+vJHQb9&E3PzagI1Ar+wb4F*{o{=N}> zi6ixH;A!(CC~fAOT}~azogWc%=SOhvT!(7Z-1!kbcdpP)*t=#uqGDlt{th7IZp1rh8v92F8m|E)UXe*~3lXSJ_P0kzasKgQTSWJ}dM?Fqg z>W^c{d7S38k4JMU!JADnQ=2l0|HCxS7_5(%dS(S8e>PIpMN83OO-SSy=3@NU*} z`ptm3D5u}-pav+X_qzkepP`0*1}|!!p-GY{s7>QV%`<=tpW$cVLsYO`u(DxZ@oe1p zS$RwBS!v_Yof)2mO)#&|a>sa9&~#`Ye& z2#ApFcp}`c#Oih)tJ{BhtZwJAx}C=Ac0Lhqr(m@`oCwJrw^TabtnhV551*fvc5I%@Un zm>3h~Hv}qwgI|3laQWM~;cqp#{4EKW-wJRkw6U$we~Ta!vj2atI8FLj{~;>E_0D*p zopLU)Q#(Y&T~B0(h$OX4L5l1&aVI%W+bNtT?&RUMlZV&ND4oFSc%4}Db#>y~6*t(@fHr3w}3^6f4m)=^lf#i7rXo09Ns}uxMA`( z=9^#~i=k1M9xe zt^0mBRK(Z&s1EV=v?y-8^g9O|u4g9=RuK zw#TR-pyq#_Cq~}0C-xrGrf>Kbdi3sk6(kWdl#4Tyyb52Y?x;K-6!ZfjUzX=mH8u6do@`w5%zd}IDU>Nf&0i@yDx*Ei;srbAGg^r zryu*Z^aFQg>4z@wej)wXFQgm$x$o}hzPn%Cz4(8KDBvTUY(S^_IEIOjBdQ;hbm(J> zULS|X4`0Lhe?+qf;=vEdnmwRx@*DuMcL3||0G!N)aq7y2$kkCVJJ4!XYhBJVbK9LqeV?w6UM9 z9>Ra>JwyTVP$oKC71PPNhQ}(LQSxV2>2XZZi6@mog?uOz4y7#igKA|XrDvV_W`Wob z*6>U>6oT!me0f@IFU8s+DetHRRd7>9XichY3QKAVWBp)_zQ^J=NLd{yjzq65I?)Mw zOX);VMc^PT#fSh(0Vo8eXtM=S1t}XGi*A3ibac42)yN{%>QmnJkYu$kS+yuxwJ2G& zC|R{2Sv8UjvRl*AR+Kp?vPat7+FIG9^>nKD+A_gwb-`;z!D~gqYem6p1;J}YlLn>m zadfYkw84*!1%=XXn_E?f+@cOFfBfH2?{#bu6qJgaZ()y!n-Gk=3MWb0S&y3BHuZmG zE{e)(Af`fa@g%T(1m2%XG{8kR4O644bVFGg}|Jbs82jyY-<Jt zc2eEyzOZdyUq}fi`uSah)rwalxyFA0q{#u9#0lIr(6JhtOa|!4GeGo!0ip*C5Itak z-~j{pY61-AzHdV9eH26;m|9Nnml>EN~*pSOdAS28OsJS!*C|+VeGY&_Po9z*xUj zJ;yWk950PT}U zGB2(WyzWHN>rNEF=0thAahrd-h)9~oYd~U{2JSfx+G&Ve`3=iiEC`5!9sKUCy@DBFKd_DZq;4P`nV zDrAjA+17GU%2TSL@^m{?OsR&-5H%EJ4Lln-E!YY6{-)c*K_T2B4vNqwu}=rO+-b<= zPOGq69JGPg5bKoamN8@~C$3qBaby}6CLmr_KSC8KP-b={chQr+&X6=rp{8WbCzWl zeHO;ZvzW%uqWk~i$l@tLSSMiQSs8K;5EKgYz*(XZ&k~JzmVSRG;8ve49ZQ?(U!1E*^76pqAze%VuW@KP=aSwV{AICCVo2x zJc1F#?HG(XW3YeO$1n^S19y)i7RS)NJiP`GV$V=V1F)=TjEvV_;}G@Wrso(Z!Ja^I z%P-(|xgbNX=m-kMhoIfM3%M3A#G_ou)OMk$whL9Yu^K=~RNIB3+Ab6(1yhz{X`&A} zV-XKydvI$?(9Rzu&aF&Q)o{`#MegeGik&K^-ix?;FM@xhF7hRHGNh0RdXX+@6B4wk zhk`Z!WADOnPd&&Lk>Y)2+ULb0t#Yl|A>JD}|x1)c1q0 zVrY65?0FSq5>(EBWEq~$#_6bVg5W9GIBw=J9GxS?%^VR&=SVwebL3Uw91$Al$T{R3zLuV&IK40E zcTfm?2Zg|YcPbsNeMjc_I~o0GEzQ9yP4-&A`uLK zL~AYFMOtjfGWbc1*2CR!Y?ULa70pNj*ya(~THpJBkx)0Up>Dn+>gH{zn^#abZwJr3 zin@o>k)v**hpNFYP>6ygcC7-#+k)U)1rcux65bZ%NH2(ZTj0Q2V9^hdtBWJod@Rp= z=85wq~X^qeo>Jxk?gpl_+wRROBinYGn&@l{p@jW#p1u zRz$9UGSg>SaIZ4i6y&h5*bWO2ilmk8Vht7+3oBb3iHmKpu-G2Oi`DQyoQ^#Fm-J8t z*!z}5wutSsgoXbS!9GjG@LwW@{}MS|mWbiM#F|81kDU5?e$4RwjN$tg{J)>@azA>6 z5%cq7#?Ozn8DKqfiS?ElU_Hn6_3{iLx2!M&tgkc!Jcwoh9HsQigP^?(@(&6ZA7IdY zP{-*9D@+1mSNAtQ^?i_hEuCTUL$Xvf*d7vW^AK~Rhg?@BXAh>VPa14s3wx`7KMA@~ zk9wH3d^l|B)o{mp7zzKd|2Z-Dr%p-W=ciE}cZiM1A;Kl0G~aL3Tw$YazTa5E)El9f z=+)(jeMlL-`NulOpD>pk2SB_jVz|D?qg$J^#+RDW4Xp65Bw z&s*eqA=*$UbpD06{TJJR=KG7p7hXhNUo>^b+z#=D7sK3%59aom>tr0|m5rAfsJ<*c zY49=*I8gI{qxfNS>NYf|LidtVtZmx7x=p)VDyWp-d*24vNqpMdE;EFcvz-z1p5ING-~izDjyki$KR; zOVobNsr_1{_Um@jCI3~DtIOuyU5X6o{u|!?H)8kS7}?H{mriyCFMl2&a+u2oKloliBclOA6Q{=pcL{5AG zVZ4ZXlTE#E3hS9SEq{xsH}y35EtCYjRq4T#w}g@3QZnPWd1m~!oEg8Z^Y`zl|G&F$ zXqM6e33jV}&_v|s9nQ@=@(Si1ott-2|93NqV+}WX@BPEpa1kSN^{&Fzdz`EHq=n3T zI#2JT-tT7;M+2TbLLx`+D;#~mZ2p0i==rz)p-eC0;rCJg%YS3}4=9%DtA0{A|3M4q zKU56oKd9mShl=6+2YWdGQDdIIE%8SoqW{Qr{6`_K{%DElKkEMQCuEC1_27NVKM8~X zNpX+e++laiLA{%?7)%IzOhvwcU(4HrDDJ5o=6e+W_HzFA%3;1&<8Pn9-#$cfpU#s zr)Br#AZ&P0+dVl*R?G*HRu9U%CkJi2CkMmblQ`Qs6sJ&d>_dp?p$eNQhv24zosNC? z0uhqj%(-;lKxijvj;rdj=OHmmU+3;aU05R z--~MAaw-$XSA(Cf+cOR?}9!F9Mu)2<Vl7Ro$>Sso^7jthcCrPJ6W%+3l{O0=XSLvQ@+%2$ zx$PkXx4v(oyWG`XcGt#Pr&A?MJmWacGX`SKko+w z_J3gN`Ul-l{y`VWt!nDbOfq^<^8aK55~KlwOEo0bpfk{*Gtht;pkws}cTSaXr+=E` z&Z!#ioQiR$npWCy=Tzygk?1=*UJK@6rxJCL;p9*9=%k?fR8pkEih8HoQIBZ^5tc7Q zhs>xtG#U2ix&=u#T@o5KlwUfI~!lMSlYi(KS9qx6=@URENV+1?U}Of!-kudPgwt8liJN zLYH-f?p*;vmst&!(e-V~Mu^Jr!T%(^0*+KEyfx~)HDcZ<8$AK+krH6na5x#M0rp4? z*fq4$2G}Dj0yevx%j=^7_DCCG%cL~G9;pHLIV$3w!!F1|?i`= zqmbOAICPKFp?j1ax<~2IeIDZJJT%~Wm7)7QU32H@`aaJF-4!_E(49PtQ6Y#zR6kF| zC4842(S@`Zp6ZKhu#<_ z${5{C#*nF22$Tzu3tUjyDKF56yMVg~h?5J%S6z~0t!^M}XpGg|U@YCxpl&dh>29pW z4aRD2FxKt{V=GR1G9TJJH5P4q&>G#NE>g9LJ?bK6;)`?>U!)_zMSs%bwi=z7CYxY~ zCd0C*PP3?)gD_v2}Yaj%u_2Qx6jdjU!2EzTJCS~)j<#{Ls#-R`} zO=~;6Ml5q37crc}V_gheU2NujR|&#M7o(9(!#=KA(*AIspCsE_+^S2Zh1LXlbACd` zz4;RVhR2O=0b~f*V1Kow(0h2v3C=*#j1wV|iAIb|^BMQmS?}(8DDXrw4NpW0m?&ML z=9c!#bi2=uIAy+FG*MtV+UlR^G!V;7LbKl_NNJLxbcuU0w()0IJ*2KaC@vv^(0y}m zvtx0H!KpI^j53KDWs+)?NrHr+P7A+D!n7ajVKQtwIg|LBZ-23D21=RiX!hGeozb4i z*0`!JAQk~*eQP$KEjqsKDWN(+?~{SvapE!sHk%S7hpmlj-YJ3t=)!XHW0a{?0i zGT8Jo*`}AF0Dr&C>20OJ)eX|n%j5)P21-B_bx4WG3@s6vQ7I9b!C=jF={wn3NahVd zus=DIC#k>;drmT=VooBmq~;_u)SP67H7A)_QNcI}XEHaO$rObvHBX#bdFy=^3XNIT z&_IjdS&XL`_-94=3}~%=Ccv$dcw`&nR3nFHVgC7Dy4+HzZ z00LknZxs>1y|A*Fy)IiUWr5}*@(^%ZO@0J;ZH-NvBjqXa>g8k`({LNpFwj&Rj^{SS zS{osQE(sJ1BtJC8{nDxzwn4ncK7|iUI(qI?9X5$O@DF1A4l`Xs6?71eu<;p(g7G`3 z@qaO+qIo-%(ClQQcDl+{W$na2Xg}2`ow`x-Lp*N?j09e6d3pv60WY!&671`xMc<9G!`{dp_C^sVZmi_7HzKdOk$5bv9nNd{ z_%;F!*4pz)EmZT3RIVf3zug;v;td?kj(=C2b-*#!S`tmUy4?5r&Yc0~pGQN1ZMF7`Z7`Wadfa@(1xZWaw>n$?4 z-ck`;)h_1^k#qe@uisi&_Xn*Z+UdzX~ z5oq{320x$FLMtq%Qrn$&x#+ZXz%ka^ITdPwOE0Gmy+StY3U1aF5;Cu-WYrajn-xT{ zw08L6)-vX7{Tu!c&dw*b(BvzqO6(?IA)1^HIL2B#r$Q|-`3h?Cl^UwAw4nM*G{j1x zEn0g%sfF5FNyoHnYo(|yI)C68Yc0~pN{;G3V59yZ-cMH07F~4hws%umQ361V-yWCz zA*kgW40mSGExqX3Ica0zPHki1PTNbP?kJX{y*uqsow44q20lDWw|XaV7Vp!~cuiIBrtXq)t2h-SXL##y zcDRm_UzbUIZL+fv?(m;Z>ic+)qIr)OoQ|%^@To_BZJHhrzBk}qbv@58=I!nA2Q1cc z!Qj^NI(!nljvS?}$A5yYXM(NIB>EGybT3jaAF* z1ue(2J^-6OAfFuvtUrKQe}F!52b*pnThkj**A3#<^akN*CV0AM10hbj4e%c}Px~dXEKT+(7o2XBO zJPaE?9L>VhvwsWmV?F5m0B*wpaOz8!O?#F`Jq#Yvz@z>YHv6ejsEe*_%%7q$O|$;~ zn4WgU5r3+V_%l4Y{EYe4&+L9`;a z9fBYwbLmt8hoRxp$N&<9%8!(g5b2OoQo37_kS+m1Qj{K$7Vz_X>#cXz*?aAE_BsFT zwGJ-K-GAa~PrP+;i+`+jPdSc|?kf7$5Sf9g#>`;wvDbsA6Urh=182`_{(1JA-*fAJ zU$5JYkY(;z-4hJc3s##Y{PB(c$6F85L{`SsOyN-=)7m~kuq(Ic#UcIViOI>mfKq}7 z`3Tph3K47myfUGclANxkN$1&jL2blOEyi$@41Wpx@WgCruz^T_V>soup`VlD-g{ zHVg~VobZ=bA$Yy51bR9sfcD!t%SHqr%YW-BBNgRKdxy?47`u)c2rDt?ysFzGtaTm6 zG#2P;wQZ3H&Wpv~T6Ed&p?}@%u50xUbKO^K^}j9G>W4WdNguVjT;z*sH+-i@|G;)o z3aWieU}#LVI-5h6KqJ>>6yVja+6VzIi+95UQd9vBz*$0FQe+I7B$ zjQldg_uy04`mwfOSIB8gRmtHUx_=+Oz9v6>-T%SCjJqP;uRFfgZJ&Kt&8S)D*-vMt zRryGwU|zqr1RR_F>0e6egg@b|*C?q*d55E+spAM-Jn8%7hn86%r)^AysTD*H_;zb$3tyfo($@HfOr(EMF_cDScFKc%0uH+CCQXhddjZi0%W}m@ESMNKC zzd>zm+`l}PUWPnve0ONRe1A(&GY~KD{_1}C?ujF9+g{znZuMY9DlAG1ii+_te5hp;MopV zNaRlZR&S;nE&r=!Mt?H+*M|Mt;I_C}1+ju~PvI!F09L@3cD~|VmwmO?P^ODhx!~6k zOUV4b6m&A$ydyK=J@hlSdbGM)J@qQ9uEay~yUv$iHs60=-WuOi;EL9q9+SI7dw+-SQL$aT)Im1c4v1F5V!jFi z(I5|dj+*iG9{q%fpxe)PF25?x2B%K5B|cPS$=Jy_y<^a}jcpn>jKzf%PRPBa7A~>K zkGJ6Suc)&+(AIHmHg=qUUw>d^IhVPec7N-!!Rwo=Cdb#mB(#gSZ2AIiq>qs5rE;{T z{+h47GJm~Zd+Dq>ZG6OS>D}+qcH|}3-m6#&T$!=)@AI`Xwct1N)4SWl^-0LaRLlKq z zsb7C#h;243voCb^0#_ zwj{79zApFsd1S?U=C2aoInq7<&zE#}pAQ-q^3v35ZOIAY87H}nF?}}HGJ87o$(@>( zSCV~r{uT;~C>WnD4nUlKY<3TL*VM13o3zTTvB|tvrp#g%Z)d6y@8JHbg0HXI88g}D ze}Ad@kX!~z_`qw7_E&M|2xc}(Uf(YL=Qi}2C9TU#UwU7ct$k-A6RqP@AWn)>&*jyj zr04a>`*G1dNa*_QG10I???EbK5+91yd7_AoiHm}Rl%Jhho7CHdE67#aS7~zipxWcn zBG6@pLFL>5D!y#Dm&tx(bP6XyE)=i6Tz{zOqDn~M$87Pv(P>77wkm>P0K=|?aAp1? z>-Ay)zK{Xq`p3Y#>6?4&X$AwE`l_E*h$!wg`YsG2ZLJqg#;7)_rDTv2G%Br_%s~NG z)0G`bnW%K<1lxSoH;rNrl178XNTCMyu$?8|t$MqdiXOa|Y{y>Cdw2g!-`b8krGGe) zAuk9LU!OKaq7rv`G%+-LGQ1`I%Si2jf%Tb5gV{g~PSBp4WMu>8QZgvXY z|8=Cd=}n>C<8Y3R$IJ0koPS#0Q_SJIGK1;EuIhsYgs1HMpZbONA`0+Kl>9ow*RS5_ zEiTc1{=;aB={jq4792clJbHgO*A;N@&Osz7qL;UWDI<&kJUU&cJ7K{cAbHT_tL7Lyp)ptE@J0eB2f1xNkDhSXVe1`U_Py(a;p3A zwjM=i#_XjIX<$F!?GO#)RkDhK1~s~YDh7+>7TwTKK}eLvTN_EVt#gMOo0F8#A|6K{ zZGm^bjhewNC(oB6EPwiOYl-qBtkJ1?Tuq-MVp2)hP(6LE8d~iKx=d>oEzGY3#t!TW zI1ET7E;$h5N;y(W-%Im!5<|syZ4QGFY{;;9q*rd>L|W(GKOHE4yfa0D1p zQL~`q)9LC+s09iI*W5y1TNosmYy%5?bi#!*bWZ~*n(-tLr+-?0Vt-5p(&|?TN^oTq z7FQ$}PO)MsM%|6U`kca|nPi%xfxDRL0ojMy<%5#u$Zo;pfK&;-q1I$k@XS6Z)S#ho z*(A-)q#P$1F705Yq)9pjE?B;Mgl{iQ>+eEUAvx`sQbK?>A;L@7Ry4wYw}mGeS1mn^ z?J@iTXRt3!Hh;Agn@{_)7=LwW05&B9`oEkdq;h|-8JNesE>Ap5))y*v4VXXD7Nnm{ zPd0d%RJOSa-*6{D7xS9gkQJoplnkeop3N#&+P}vX`8{9pZz5}G7xvg@W1!1b zLF3%@pCKd#C2+)%b}L#?%?xdCHRd?TIF+X z$Xn|=s(+HBk+VK$ZB^kMe2E1ztS&_iQ`+B*wk>)i=pR)&_{`T=i+X_*?((@-I;_>_ zM;11=9kR3h)KpXKo47&x85Z-bcw_ujfxf)D>BNZ#eJnb6;*>i{vMaCAj)Uitx}wC{ z8``?V4CxtP(lSKGbGNhf@7NT-)-Ui9YbP9ll!k3W zOzT=2GI=~`z>|tikL}mJADtaLL&{W(8wk79V9{zjSrv)6ouptW)pGRNeWDLrpF8sU zc^D4(Vfv;n`ix|f(mk0r6%^G?7R?v1TyPa26s_-vJ!3SDDs+u1o+EcgD~=veHxk0U zhJWBWfgPF3FVT<}61^Q=QIXLdMg5N3S-uU7Ir;-|t#9STB&bmQK1<2+r<+tEQZvh$ zDwiVD*=I{5b5d|VOLBZ;ht9nu`f-Qn12Sx_cf$k1nsmprOEvBrAjAsvW&)4#Z3aR zD0%;t?fxRjkZKtUz=G0b4y+yhXx`c5D0-F=84NA*?ox;U31Ar4hDL|7XoI zlfpZUnHA%njra(qp(eyzO@Z3ERIvpyTE|p3YY~&?{MH})?|Qge3)N&R-{LIaOn)J( z8;4@e8QUvjKgFCjj*~Z)NN$F5DkPKDDWXgktKR-m9sZ@r_V$%ua(O=6xm#nJ8OE~a z<=%6)I=Xs1%I4?)-k1ixylNcHIL*q&OjotSNGKWop`;f*8;fk_Y!8?tMYn8}WCRJa-n8W;gGBZwnJy4iuO>=IP$H zn9ybXQPHBzj_FzT5jm8Rl8ulrQd)M?FJo;-+Og!!6fH~_WLe)V{%}3gg%0QTdGnV9 zmH%L+`%k4-w-Lon=v11DoqwU-{=wV9oMh@(f&5x_7qI+27YF1^L-XE}^8B=$nkY>T zlxC}TeoOB~rgGVW92RF;TgJ6rMli#@P&w$0haL{Iau1A`QF0!sV)bsGKg_VwfF=g0 zXwo?!1nTTZ(uneOsZ_r0ChkIFaQh!BfuCi3CshFz<1ymunBAdIN&$1 z1MGn}Kw^*tqz4&67JrZx?p1v4_hYbeyb3l99Jo%s1Cl0nYPtb0jcCKg_A5RYi+SV6#vq#uF zINJESVgB9PBAgsBo?aM)&l9`@6bS$T00;ngi;PT{t(XP=4R?!- zOuZ$(8a53809=>2nFS<&-xD{Qc-do$zG?Fy+s=*5pp;VI==5n-*4CT`}_RfYd+U=-=F(_p6C9|_1y2`xXaTR z0MOp{4t8#KTvikS0B2xG3rBEROh|+VQCT!dV$~skcMz;dVTjFtX0cHr6j~I8OAQx+ z*bE9YOezfGk~v%oHImDwP$6M9h0cN2aoKTe6Gb5APm6tbR>R*-@hBFJ$AHLmW++Qq zu+&dJ0FdAe06-w%+R(uFiw{E?#ySwqMwfR{Z9P1T3I;4G>oM8(-t0ggQton#Ir*(GI{m_a4PY#|~?mQNG~&}bam zK?tcul*JM~k$fV`2!{jr@d1VwRl!3KL z%3v*F{7;>v3@lGlh6J-e36zxa668{0_9u;!GT%i?%KT7S^?y`Wt*S)H{8uIl!*7Ch zqOkm@2uu%u8brwolwNel8G$G{{s_#$>GErY0v|wN-T@$LJrRTC1MX-dh*DhT;E75^ zB=$Rv^FRWC7nkiVH~`L3(Sp$xh6oHe0wC5P3InxvP6W2tT3iB#_)j^~FuaeVCf#paV%x7EFj-%>RV*5QbYvFnHdT%(Y2Z{ zB*+(KMRVyaCPzT56A&US9+yUEM*?Jm4+mm%2yojI1RY4AhC`tQ2Av8qIS`pch4TnZ z3YQ*#1CgUC?A25@6hdK>87yifSnpvY5{DXS3?4vWX8 zLXklDzxzjjw+!JYO9WsS!r{X0B9`O<0CVN+$jID_jUV$twi#CbKQ=A z=jDg+iz6=z&-%;aPylK!Qi_i29P(V$5%lN=Dv&*lv)gG31PC{%uSM=A* zcteO0Z`?im?T}QNfB)wR-HB}{+fKu!o=E0GskZ*11(k7y>1FC) z{r_q(RZhtNs;x?!Nf>EWQ?E0%Q9a&&*i~|NTbVN9mR*aUm z^N!=#Z;A){XX}hGG-v6cnQ8ajz2+vqA|GU})tnnXk{;?)A>vk#Zp&%Q;beb*_n7LD z<~!RgvZsHGYi`yFQw8hzNZtJ^YC#;_OK(L2tm7s_SYOYOwOXk@o!C*Jo5 z>$U6(EEIZr5FD*GniXH+_gJWtF0rrbU_ELl_RWT;Y1+ZZ4+oSFZO|KK96c55-|i9{ zbMl(SjOOh7o==6E;;5J~rPd06c|Gd9b?!`e(X0um<976AWtK@T0cT4Dfyj-{rf7QgOIIRH_j_+_B z)%-(9NzNB%HL&mLul2j0nMm+Xml_-+rnj8))Xw~%D^INPDf1dULa6S4GN#uZz2w*G z45>wQJG3Z`78j)Ogr?kYcexYCDZ;%d3bP zFLqq#TOCb5Y=;YQ(hKyeF|y~CiXXY0e5w72*0(JAbv53wmFq;mJZG2Th+EI{71=q@csV|yA`!i`{@XL69gZZD*<#{<0aal7oP$F7<*SPW zU9sU0|EaC)FN)A7KD--s^{R^k{d91ro2$WiYxmBF+(xq(gr+ynK}Ak{+qocc>XzQd z?t2yV{-P!e@bWjOmvdtVuGJ&Q9m3K_HraMAC>D5~tNJ!GtNbF;PbB|F%hQ{(8fiDG z9Q-aj_=Tq3kWIUPF~DlR6fpY+9BZ8w-a8&3b)n;tW6}13fv|x+BU6WbGJ8vHo(DLV zpA1{%=?G8N%QraAaw`6|=rN!la1TfMrjD-&Ut95gpn{{!4LY5!R=)z2N94;c>-A)} z79E-IxLTg5a3(Rp2b-l(_h)1(Kt6$#1-HC~Qp>^y#lL!g_NvC=2knf^ zl*l61Up`+G10i?kP7%)sE+^r(EyqVox^zDC*s5WFm(bYGmdLujm6&f>x9#(#DMBYt z*!%PID+f=4T=93~n}X();-5D>DC_S~p0uW8dyvhqmX&|InJ1I@rCtLmHqnpptdzd^ zYJs{j#jZr{o*s>rk8Y^^__lZU&Ih^Rn@%><;nn=a?kE$hpb4h)HK%La+wFQXhXR>b z`ix|McA9;uB1&?cdogso{a&0hv6$0N#`+c~t0)6~MQqcajaciZ(2nG$FE4^w_AB>H z!TUM`X`}7x`^Cp_)i0kwn}EUE*qdom?;;0lR6dc4N1tqJE(|=g%_QNj$wfA% zZ9FC@Kb?A)*TzI%*x+1%J{y!%V@nBEtNo0BzMEFr05reeI{nVq9WpoWQK@+Pa)HzO zau&N@)hFr0FJBvSP#Vh-OJdy@4vfnYZa%ujn7pt+%s=irbW~@(l#1=gg9G!lm5p=p zwS@R}=^wgQ9<~IAy)(yZKH9qQ)m+E1%|=P}kEPo-HuG-psc+1vJGGT=nH)P9cf(_U zE}+@&H6hPkS$pX~=EZEAwn!gc^TxNFQKzc2o+Xd(J!@&M@NifhR`ku+Q8=X?Rh-T)4*NPRAB4f@0eV6N&P?-D5NHw89aKSv9ySg?bU;FNP-XnM-C3*C$$3 z9Q*D-6;UCZ14@VP4EdHod(wTEB5EanuJ0b*dOHPTN_IU}>O0w2Rf`K8?W;OfN#O@R z)C?qr?TM1_Rg!(K?#(Lu6q_7l+!9r6dT}_UB4^@!qmCXi*JY+v2M1AqEeGF!ekI>V zi<#k?_uUzsDUXUd#;~BPhixcLkFoD7jjC`9xjtArRO`pwd>^_#I2rgj_;xRYLmwW^ ztDWn)<96khVTxW zXUj~oc4c*3otxadr$p0Vt?hMLN1j&#F|G9NjQ75Ol$J&Pyqg3cE3WX%Fg)Y~|GR#C zqktH(MZ5%l10I8y!Ykl)@%ngc{2n|BZ;Ri7_xt~QaRdGXP)h>@6aWAK2mp7Bj7+}R zS;Y@F005+y45tMpe+zIN)s^j@HzU0n^h|47wrp(7$So{cA8YK9KeB9i(r7gJ%h)6S zHuLFeStE~ThVCBAKf&NJ=4TQa@oT_D*f9owh#+CJTS;XNWs-6#MI7%Yy9EpDqJW~H zc8khZwzf94#opK5vV|j|RHabWo4$STyZ7CD-o5Xm?!I-)e-e)Cda*Oqv9UwX4RD;} zE{@|?SM+PStP)EpaxSHmSr6CFM5drPv&t?VB{CULLRAyHW9+pem+V($J!W>e#(rS} zM{b8_urIAET0S8wE=^CUy2qC9P~?o@x30vr^d1s&Z z>8!47SJbj>VIZlfqV*W(#+Z@Wlkj4yqUn4C-&kb}e|y!0tfzBXQ#xldrl~T^mMFXO zxoqOH%sG(I`%peNc+Eg!2cTo(?9vPQjDiLdc@XC{cdwcoh%sm@Kt(e#1bt%9Qg2QL zBTkqsO@K+y4aQ_$&BWwB=!^4eF3&VQnxZQiWkAX5*9_!Rg^U7G_2#bKuIRA|?~qtQ z0E^>hfBhqn0%!dh(B6bLhZhXN;awo`KI#z5d?DU%_~6~gQ+*loaj0|~Dpm+SikwtL zG|Y*H-{~XAs6(P*AwZXk6a}dhxgtam_{e^=W*HwhsKeVC;q$tJA{-k0J&J58a?zFV zN*$7{wS6kDmOrhgzK8s8@x@M=L!Gi9`9DSNe+anAr`6;9un;MRL`m-UiQ!~erkX^f zs0>EnM+I8!_RC>4EQTd2ixWg+>tmOhmVjRPng7L}sF*X&QSc(BcHTY63lTFM5;5vr5E=ifv?`xLPDN01K)1les*u z?i9IbrzpsNQp3ipsgA!xW+%y<{p30x&xY8+${HTev8Vu#ud}F)Jf1tQ+bR0AM$lJj zFiHbKDg{{l&@E0nc{~qHi|uUG_(gL4e^N64V{!wJucwko0}>4e$|zaPn*YWYO&W6FEYix_|;<35;vIh*H|J=Fr$>@dE5k0kOe$$Hbx!Z zivYr6oitk@_$?3`NlVbZtwdTT8gy9pT1$4v?xR(-M%Q4kr;|f64a}O%raA0K_e8k zvce8JX`qTqwZ>SvAkbQgRs|>$sWV7hp|%SU%kuq5z}1mZ&=Cv;f`O0}kf27z5E4;0 z6~kT_0)@l=kmx|H);zPq@I+xxby$SFSYe!Xcs~X+D|NEMf@IY=ByBMMGtahIA$IZZb!@d5}|3cNh|M3M43VYc-EM zj7tu$8s~ARPS&9~hYrA_e>ghGUf2*7`FN$XlFbPXw9;r74far!Y9s5TtDw=&C?|JD z{ZQWPWzTFsS+BKgWPNqfGlv8{*O6||ToU%oBe(E4*jGim*c^MVhsD}yd{yrArK{GE zwLI?XuWBSAV(K8Fyag!Y~xQry4WVfwoU;)%jR`@cjvfSr4e_6Kxi^pq)xX|s7 z!ZM4(wV`OMM0?B)qAN&K<^};JvW{iZoOmeeh=zjEDezMnevv8gTQB&{DS{Q-z+PCX z@dg8n4)1=L;f*?pSTh_MuZsw)i-=hlo7_X>RvvFEfwU<2&ANCeELxKcHF2vcm{1cU z%Rs9vusCHFMy4wae}+dmK1Dd24P52$dVJvh7M*N1H%t<>vh2#L4QY+os(l-eqbz?m z^SH;rGnpb}&}};DWf@dp4+vXsCbHZv6B)wZN^XbsHo@cD2SJ)=W@p6X2A;Lg73W0R zB=Q{6fEaQWsjSH+m8Wv0Oi>S&TB$5CGJL)+Xf7SikfB$Y<|GMe)FHEj~kF7suo)#UoyZ2jw})5pT(2JW>D z%%9dk<>Urpwt*X_HQ=4xKzu)xfsgWNpG)9+#GDI>0)pR40S&kip2J!0n`U}KPKOw( z62(w0v{q9^2U~v$hJ}@hlfGAS2 zirr+GEeRm2GxgJ;|8Jn5ZsY#_Yv9%o!0{7If86DA3j*h~9$+^s`udKGhuD)tyWznZ zco9s`u*;g9qCGjSoOsv;i&hs*MS%9e)COr4+W@x|d7L(IgO#sw-Oks8kg3&NF~uQs zPW4c&<4S(^d?QC|8K}dP=4cUM?Kg1a-)MYvO5-~$q#05f8>yzhaj>x|2g?|^`LBdl ze;9?u@$O7BC0~F7N-m z1f_RBk9S&pB-fL{sCx%vdcPa?6uAsC9=m{N9xHQ+3km4cN;8$OJOlAiZ3IJ8b-2BQRMcE)=C0y?J?2X zTO#|wgd{Vk&C4l7x{pD%i^oF-4#3cjF!cR88M1~hT0=LI2W0o+5_tf$qp}@4e;+8z zlM;^~Fl`r0{}9T9eXRg` zK!v|V4zSQl_2huYLObAYgLQuSkZZUovCtSbj5M2Kp^Y;Gm9XAQw1g~Q4w$|?R08`9 zsycFz4;XlbiP89Nnnr_Ej#|)we+Su&&40~@WQQDz%HOuoHnEwzG{ww4Y~Ym;UNgY= zh)y0xaRI`6%7SkX;+n|_J1CC8K~W)(xWMMJQqpj@jTpFn$Te0B zvXo@hFdDHbmXbm05u@}NvcfXVu%0i0Sug{8{R>f#I3oi7t{!rY76UZkkM-DSwdd&EG0kS@k!aa*TsTOF3I;MKNXRmqvCsdgIFPLHddw$+wcYF$^Wy?@q9&M?dXo09-i zC1P$07kGTiehZp!r|q{c^X-g4eK3zw2tl!UW&uA`?z_a}*9{IZZHIFF5%nU2+a!F& z<1vc~W4*yfHu*l74KAvyJsii)EMzijL1AAfR=J6%0&i_uu(be!wF7x3zW}Wg+O_uo zyLo6;OwXnne?ByaO@H4ofv&OXdC(R>LpEQUpnKzl{);Bi4K}?PT8m8wptVlWT{XdG z^#p$P1UsuI@EPq0?K0zHcAU`KZTTBE&HjF5>pSc|4!e(ILt1CLr{MMIt{3HaTu8>_ z7y93euT5OqxOU@vx2}ESw=MOLwglEC;_q#2x+M|cxc)bbHh*nQ#Ml4&H|v{DI#2fQ zcuy&EZ+}+tN>$nG=Z+pd_v`=p`9DAQWYg$qM4K_3a-JXiB=yV2m{BsR^W}N!mb^7SDZ#?$V*@pjhp8EXS;aBUQ@AD2zjwdf2Sm!UU{Np9x zCmYsnSmZc(|9@uB9tg1S!^FRE8**}w<-R#*%j|fLLG#=65opcO+|Zu0=`v`KKx=|l z4y^>O(dOR|t=^`0L#u=4g2vKjp^aG{TCL6RgXXjQ-)7T{zXck$>5cX{tWPJj3Y)(M z+6>#~N?Y!-bAj0W#daPz?cDO%eFU4w=<*I-SDD|X41b%=J_nqucWPPlB`a{riyw)N z4gdFkgQD*ndT!hM{r$nU*qS@cc`j=bZl{CiiFh*Ifpr_L64ldSmo2IB*i=G>3 zVIR|4K^cikP@5{ts2))b_7aQA+P zF=?tiK1}jE944KWGli5gKGfac-BA5zez32)kbfXMIM?#U{>1^tbL!~%7}!ykQe=ec|4{rSe)KdgW1+~Z9*f3WBN^FMCRe01%+6aNqx+WyK5#(%zi zVt+g0_jeR$I}g2dhr9Pc^VpF)h5rsUb^r4ApVy@JAL1T-`;m>AWc8P)_Wt>!ldIN$ z`1<^tzxIFl)=U326g#r&rzd}Q;ulSum)3vzlXs7N@!8ftymtQGdmi|w$d)aC>>6s? zeDSyEKYjE37tg%-mSCEq$<_S0WvGJk7(&%N5a;)B%-o=wl&JhJxhrT#BIe7};M zzwZA500960RGDQ=99*!5ad&sO;tq?I1r}d)aay22afbqh;_k3e+}(;xDHLZH_eBe| zc!A=j`0dyG5`tJ%&@%_&bLxI5h2?;VqN4GJ(s_kA}H!pgy>xa*NsqfajUiVo1 zFfeE>gJ!o%*Z_E^+eF1WZ>zhLl7EokJg28NEm|sh38YS{;`bjj-cPzsb|q%#(M~Vz zsVu2fpV3F627t~DD~pH0vCj)zy<$|XV{YS+O7rBm4V2k89rhcWbN--N!Qc(cBIS-I zQysj$=X|+d@jR|xv4g$R(8_0em*mQusIy8+PjJQ2P~8XGp)Exmjqf)(WPccKi=1Ar zUQqpQ7V+SQ+7fl}PKHL=B`BB(^py!R%NR*^`LT+aQ9|cWCr~?C<>#SC#OO8|6vldW z712+nyYVu_y>1Qo_5;e~9a{c1Hm;bggU&oOa^ZpPBxFChxhU@#^MATE-ZzcSR}QbnZ5#7Sf$5pHBP4@`6_btMwOL2~#X2Mp zTg5|?A^x?{YcS)XxS}FYE!2T?4LK!fHKf((*V~qCXUKfjA&*K|QX_?T^6t7bYmV$2 zdf_6-duj77f|9vBuOY)1VPI?S;qyNU2bttowxkT#51n_bl%KT|o8oGskm6 z1xED+lmbd{dkl8w+=UhS)~AYm#EFgyr zCfQj%Xz7V<-36yJvA>5*U0Ct5SE~YCCBXtp+9xGIEUn~Y3x5u0#qfBY#&GAM-kSKB z8KYO7-dv;%AMrN{J!_^T9O=vq|5~uUdsud$D8x8ApdYnPKRO^nGJxuIH7tP3s&J^< zilH+1Xv@YVeHf}R!)QYEXcUu6bJxIyCVOv@itkG9w(T0ec2MCp#Y6JL2qgxcq<=7Z zQ_(0I(fX5p^M80xCR^?`Ig3JU`E!l)@0ve1Trd`c z(|^8HcLs6qUrQOmr%Dx?4(h{gBo?N*uqU_}sCt36ayOpJ3H&vW_ryjjZ6q~E22g#8~>5~8FdF)Id-_vp*j*>Zbh&8mL747i}EZW z{CFk(1ez+z@T1rh!ul3S-*qc>x_9K6vQ+;q@Dy2;VBZIAB#XE{UA;OhV4e{tiS7ZHt$#?!Sr0WkW`dp4C^HuzhRrz+6t6-1qRXB@YcSCHlICC#<;xb zZ_y;^H_Vx#B?_6PxPz@c9Xv!8m-nA;34bg~rQ|TD1-v+NXMXhVYL9AjK zI}z8t96_N+NMSkA6FTLGwM|i5qC4g1bxhG9q>dr<9yJ621G^9d>AafwkT!z;J8Rw< ztNQ3h#APFb$M`7!$*>VI?tfHoRS(lzB!8{^nW}${VSGehcTL=gU^Na-K$ogh!*WW~ z4uyKAl!+;;Ia{R}XDLx|;G2A+5iPg1h zRF&wI_&isy1{9YgxX~NpnJw-UJQ`6aH+eC-i4?GY7S;-OoRB=S2tJ%33tDao3SR)vl>nvOP8P%d|;uSHFcS4!y0n1x0t znH})Qm;_bqN=bt9d?MAl0N^=dM=(wIE1T8mEV~rF3#&bif_%5z!R(J_>97+KgK2vL z{;yYc!budPD)HB@s|uYi!1Z=2k_3wK#*av^xauj``Br#4K|cqNrPAt&Mt=<%Mh)pl z5lvy&&hhjq^`3WzPE2O8JoWGlL)4UdoMJ-?xFKHI(u7xq0Q5+*9Z0w4N4Mrpw}zH< z_%RBDhi+}>$^{|WPHeQA!sCKLw?-!K!kgqmrP7=2{=XH9bZh=}Yl|XEUwqMAkS)LD zb$p}gd-p?8`l9$7lI0hL3V+!jsm1hz%b$V|s*Gv9>7<#G=w*`VabN^?VdP0;%>+(# z(lLbe@Mr?mq}6+akl4thI~^Dw?F*Bmu11wbMv)B-o`1+^!pyczTt#~` zgJv^>hU!R4hEk$t+ciACw?&FTOTQ);qMkbC7~<(qis*CdjU~XqwT0@=U!X7jfnX@QU&@jfxM=NC-hV;bW-3kjud36Isu3iG z>eH4LBrm`qy&OlKM+j&R^6o@?c?I~QZue~RkNSBD%YsB%kt=&ihXDZ!3vP)SiG zrCaoKhmcU3I)5(i3{+`PBkD(^4yw?dsYs2jD2}ZF&ZGy-rv%LJz*1`j;@WvXsfssA{?iuOg*qTCo_JIav7j!~G0|^SzGD zg+7Y#m1E3V%*i@REtiJD=+Zc~>~1O#M`S#tI$na4mwy#2L;~R6+YG|r8lyD@I-@7# z<-(LaFeZH8o&g=BaP&kTAfMe+a+nuXl6q8zD$98_D#ZVdR=bXx*SB}z&yIv=vB896c$Q(KnJ^{rqf zv-;dK4}V=>SxiEW+OA2%^P`Y$9{Kq!!h}mA59BpyQqe#gN}X^NK+*Emj(X{ackr&j z!2N@-P*JGZ20Cdfe^8=twb+KOKgvA&=t(oep3$znq%ppT2-AWSB62RFzAGOqpy-G-V3Bc7gRXppX)h|%Cim%6|G#!gI>yZEG1sAK@?goC_QN z?T_}+AM2w#9nsns^2gV?u2*cUiOz>_v40LZM0`uLzkrdy&<^Lja#)JEsP_FDIk7J4 zVYc+$o+M4eL=u8Lsu5m&oc&X8i3PZ# zY4q8j1UXpv1V59Lw0z2z3#BKt=5og#B@i|486Vy8>`|{FCWv&!0&y1K=Eju_qJO*^ zUX{3NXdX=9$s*y6mnb%H)2rQRZT$(h9n2l7kqD=}YSCz1>+3!|Hy?Q};di5>YGXIL z59plR4C~n_;qS3MoHKK*>4?#A`+iERziIg_o$gk|=*FLwEp;n?d@b&C;iAF0X{g@= z&I`;9@{)R~S)L`BdE&kSsvPdB0DTPsW)En=!?D4dn3a7X0C*? z?|CIvqFRRVFa0=H3WI?u2Z#3z{&5A+G;amY3mZxf?FGW)9E@e@Plk<07n&pnG-7bTDgpVg zGs43%y{ApEe&?O(XZw9IfxAlJCaz5?{9*u+5va$@vYjA?QT46rJ)Vu>$Bej%_b`RQ zr>4fOr*j6Nycx@Bzv?wZu;)#I&6Vs?Bde)lcbZo-KnG z=yiB+?;&!U3OFV8+ECf+E)+D!<9%}-nOslNbZ2TK({4I+I1Zs=?g9~)m<`3ars{gf z7?fc@s{9y5-lxkf5z}znOH~ zobJ0hivfw%F#BUb zR8!kKp8E9bd|vN9%UmmXKa=#}`^p=0+SymA7OaLJBQC6W$6&najN3bp)*pa5lFo5SxbaLUd1Bvv`@Huu`(ipHD&1q_Vl=up7n)*X zGm=hw*0R@AkW{Q8q}M1^V;;P+|3kQP#rRsk!8iC7+xUVX1J$@+Dz83^$=lB^ z{7_N>o>rGM_s^QQUnktBd+^XFY?XAzLyF40b|ZQDIDcY7KShQaGwOhm=T)682u97O zpdIGmmUU_?(1s`A^rB?c>=WF~mB|gj;s#*;hc-iVE7gVkQpqS!f+J3rGTaP#)T|%c zp#W|f5SD33x%|YH(@h@NO^$J4$aG;y^pCS0W{r4eLT|pD?t!X`5Qm8FjFj#S8GoKd zQJ#E9o_`C&F@GZp@P;~QLmkzhhuEJ7`yc)nDdoc{m|YZL2Knoc_7{epJN02Z^*=_< z$}3EE7fe$-)Th4G{MBDv7*fN{BH?DBe+)yTdHJGbX4>p8kZL+W(2h7(H!(IhG3^aU zu}Mcx7tn?y;PmI;;p*XLE=+D>EN)`V|M8-(HZLq`nBDl;-1xLNOvNTmIqg6jrhwDc zzb$LwW=>3Qd@OE!%>VfREmt!CwFF)u&Ufnd=j$$mkcPs#eLOdO{!XEl$|*(Ytj77c zZGVw88B%WNIA;C{<%urJp}Wo-SXJLV1IbPpBuw3D5{&m{J`rbDZWM8gKq(!DC|i+u?s4G!aciqL$(&i+Fxdd`VGr~+&+a&L}Y!Ojx5 z;am>;Z}|>tHU7=pRZBbAW-8_7$>XMq2vqEhV@pJGbdskU)sv^pSj?k!W)HfDS4tFw z{nSoRUxE*AZn(0U3rUIVvjZNq6MqXyZ_~dtKZ{kkD^WP$N?&@-d5lle@^P|(lc+c5&wSPt)oxBNy zh4YdR{yu7>pGfAie}^pk#mGv;u05ysJY`4cH$I~W3g5CYrU`zqs4Ba_9WNvCZVJe{ zRWQAebiW;jg+yDBQBWT+l5WVoy%%K*`J?w@N25GN0GDS+!|^CHR0(O$0vH>}{`BZo zk*Etdf-qZPzrXpo^|ckXYJV8@xK~ZUt@qKBD=|z7;pXqE`?c?NW zSR0Q@sV-WAvcW@}h@=8Tk;pmG)uO9sudYpywPeX34xRYdAuQ7pJLkV?HwN9V_=jaT z!agZi4GPE~%%?ycXctz+pAO&Au10hS0r2Oec0||Q@2TwF;12DnlYiKW2ZP;-(f+h& zC!l~7APj|;SeWx5!i&Q=){{dtzd)p)Th?xs0-3KYY)^A7&xKnTMc|zD> z%buAW!n&4!qE5BNj(>o6=&)|qbPgSxZO(l-GV646cy!>LLm_N^=E&G5*f}LoF3_Z9 znWpdjfY&Mk_fmC*UWeOlgmjnEw=X*GgIsDIr%PP*1CIwbG5Ddcxi z03@^n>4WdS@WIoV=*`sq+S8fKMc<0c)K@VpuO<|1R#PH7asQd<$WER&%)in`P6zhc zif{yQjAJR#X&@G4jp`O;Us%>78fQRF<16KcD1K_w3h%;OQnsSqN8OT6-cHNEwcw* zo;JzNE-NCI7+SyncHgID2|3ZdAOc72e#0+R+5R5=mZuTCfwaN@1@>%Q_o-4=%fVt| zuJ{{n@wf4p^1m{|kK0BZ1cdAbgzX!UD|>J%d&DJA41a`l6v6+D`TvEFK}v;2M}Dy zb*qM??0wDMcF`6R&ggfS$9aSQn+6DGj&gAc}? zF-s5@SL15!_cOO`uhD@3Re3;+JOHlyh<}=p^^z&_F{JV~RPz!wXAe`K#2?F6 zAv%jK%|S5@uK4fHv86`;aSxBWmX(YUQPatQg*ObwveD>kvsq;ns4~R4lPf5ajw((u zXUP6_n7Gn-?SiGRN0)2}Tke;?M;tmeM}Pis?7nloYIVu)YkcAvJ<9J(b?h0<`tI}K z1b@Hpa_2a`_}>)wm!}F23ogkjE4P&2N4oE=C@k(kV@O3L&{4U&$y`-R~~b50&i{7)a&=pt?e8;wyl(E8!=ER8_gr-)7>G+Xw-?K5|XxHre%-v=fuz$(C z@Nu7eFO)ZwcG>kcW$N%W^+1bdHeZxCTHg_nr=Gq(T+F&{kU@7sW=dMw7+RSgs>fH^ zsuHe0w51Q<(l_r0;F|y@VY&03Df0-T!V!i%Wuih3ib7?ILUH*(WndtOu4e#J)7l0b znL`Y~ZY#(gL+Mduc|ink*-o@^nty11nrVJIOJUB0C~e}xy++4eYJ8-;MUdYhl!hjA zDrbAnggkR9t<#%gsJtcBquR1w$T8ox1Yu&mAmtQeYKN;_?-dz}iAk})V0x_yfJJ}u zN_+4^n9v^ZJ)Npu4BU{jEKotd42)5?g!#*EOE=gB?)R_0)E54FX*%M|kQ4mc z4?k*QRd=S1SmXL*OvL41%=5k?vHOK4&r|L&QP%BxBaa`Vq|Bq2=J6A0^D}AlTLMO> zB?7!;$YrCIPQ&ySM7?w!_J2xt3EYW)AyJ0n@V_DAM;0d}g&cgDzf!e{-l<8Dbv zF4>)@*e$2nO97cNfXoy?CP~zG-uQvc4`Hvo!B%D%Ak*W&r$ln8nC4?N*`?$Ws&G4Nu@Qn@(kx0S>K9dmgv+Il;|`?;yi=RH4Gfz)=bdJ zL%!CCr_?4nWl)CjC$IXRFTPup`fY)3wOb=pXU=Z5%Ze|d8*0)ET<;29@9J*~ zB5e+W+C5g3oK@_aV!k?-n{wCBc|V_Xor^S+tBi0X@pEPIbAP?4Gm4kM@qNyxzX9s! zKNYD`(~-^aneKR6S)ajwQYyUKiI0hurw39i$2^{I=-^7@IyGIYfg=K6SJr^?z{jL{WujNrmU{hyDiS60Qzh`DSZ-HGiQJE?DPBmDrLz)Y7~#T~`Va z9uq?gB`6_|B`Pr)bRrUj${j{U0!$zVCR|D@KPFKt=>U~psPH%07mzf zhG1_vEyU95YEboRJMTm#|HO`|vA0#)dBx(HA=%X@*wQB$y7)+XS8OQx150K&-ro6~ z|4)Wd(0?aoPNQVp@myh-9YkM){(d=7A8v`WsE2j0k98kSl%|N^@GfNWv+_&7PsHA3 zDzw1Jpsra$qcqf{MpD2q7WV{<4v0D^n_$7y@FuKXl$yH80=}$e^1t7YIgl)^R|AgT zX9JcBckVC&purV(!jiouvflXY08Q18Kq6{Pntu*hXx9YB>c)b*?1}YHc{()=^*&`up>;%unT8 zI)9~GI-6w=3}~d#a+WY20+Y@>p&QeB9aH7ITvq0dWn}4)jbQYsB>}Xb4BG#GtoTFX zMlEfL1RcxkuXzp#Rfe$t0RRC1{{f@~Tl+*X1d~35_hATKqC@z5g+Tp7fxAOZ+x$?n z%@4&E4JF(BP_)g{xyUv@G-8_{3I#nh4}V$;l~HDfQf7u4)H;kT@?mt555r;`7A3Y} zJW<0aQC`aznx9W*oAChDr(x8mVKBih4=;7Rx}U&%9lwa)u9;inJ2tGa5nUAA~5SQRyC2RJsR7CDJPfD8u379vVLGVZ+BgK&Qe=8EQeSx+jcPG`RfK z|xgmJGL4K2lc@lxb>li`3lFd4U<3^x%s9B(J6 zGMc#Il(^w6al;wnC~w2fr+*Z~&6NI(^}hl!`ZE#&ex?)hGmTCB~gj||DRrGm;{GLG9 z(EXs{{e{-h{XRMsVD;RO8gRe4Yu?+40cNu9_sJp~%>z^w4?tBsKz~*70Q1wo`dkml zzmuhxyow6&2Rn6SAHehVPd3McvqvKM{B#^a4}xJHEJVdoo=Y|53x-CV#dsw^8uxkHU!SVbJ5@LgIRu5!b`0L2=?D1`xs@_6a9~`UNrW z7ozi@lknW)7jTEsU4I13{785bK~?w&fAj#(ogNA2j%tA)jvw*7^4`0dTJQa%ss95j zni`q_08D9aWdHyH5C8xG0000000000X8-^IMF0Q*0TKyM36~h$1u8AM3AhQj3APEf z3A72b39<>X3AzcV38)FH39Jdk3B?J@3Cs!23C;=73DXJHmr>jWBS07_8Yv+uBPl2; zB`GQZZ!cAIWpZ;bbZ>1hV{c?-FJowBW-n}MV`Xl0WnXh+Z*_DpZeet3c4c31VRCb2 za&woV?h7QBeHR80B4lM_Z)9aIWpZp#O9KQH000080C$UwOiqG7f$KT|0O(7X4W|Vc zmml2)4Sx%C6W5h9ev0wqzuk z*nApeCxk*uOh`&6O^690EX{7=gm$;P`IL~RJw2Q~q0PzRYE1UpG7=^^T^&Eoz4zUF-@W(Ud*?m5X~U)(j(=No!{cpO*N{$ha~vw?IBsLngQ-M3 z8jQvxiH>N#@vy|Bed(fbG8yg2nJJ^chNE#NuEl?7RgW_06a7?Eqo$QTTcZR!C;6!g% z7jUGbozdiNnTb2Q65*^xE#2XsQ~{vOmi$yY8H;yXn5yD1L@CR-j&M4fj&(;1VyQ&! zQl+Li*Z2uL6UlB++#d}m3)}nCQQZ^1%74n(QiUD8JzcQ~s36;!)#8XAtm{n)YkHtG+wTZW_3#R*fAPD*<7;a3=MApP@ zsc1T5Wp6rS?Mi?@7)CS>88ICaVh?0NxGSj3u*fk69V;JG1?0|Tv@?;6h2xoU^7RND zo)8bGL4%$y6S@-}y7uu$Zr7G$NwF7VA7&9g67_)zVKsF*4Z z$f>%C;H-BNp_EF!%6oi|$I1CUP9dTY!N1%O^pNM#O=sKR<_BC)N2u(iqJKveB9S@~l^rxvK~~*I&@41bs&A9e;#D0YGor#tU3ye0f5Wu} z35wJtA>WfeQRGLdPe9smfxz)t&_-4}d0e7h%(GviJhr>ZR8&W1Ai;w;2>uKe5LNQ1 zV5Z8VK7&PlMk)O@5pR;oJQj78VV$f+Cl8xj+!K%YT#?_gf_i$qB0{ z3*sTG$O!`uPTXd-l?-r*TEI}GUA8FESfjmJ$ZqKpW>DC^eN;M4O3)&{n90*3TZd~s(3(VH1oKOMPdqz#FVdz#LaP$pkEh>DYqjr z74{G+hj7$R!XMZ%1Aknr)i^ytc4Os2V}@SDp99QMSs;u)_f((2cb9h|gA`AR94*}yI9?yYdi9oTW++=Q~4u%3i3V@UX47+(e z*WjB6icmdbiX<{$AouWiJ}WxNKYfil7$Ca94}hPELY>|N4CXQmo+XufC^PA-VX;66 zF;^_meMG4JJz#d_GO`dE>n;@VBGeo$>1))U0HY|;Ee{pihtpo0pG0QserG6&LDUZbcW5)84By* zt1$z(7_ixB7~aAvWONSzM6X3eheL{nrxggWY13$-aQ6a%O*CtSZD&@QxV}D_Y!b_+ z(A~3XiH4`IQhB`8NT=y~IxW+1IqbSD@VIs!amPM_nez1lB!RmaUL$yh-Xmu2w+h2Z z1b^UwRT^m!MdLI<3l&BykS+=mM8bmX0<2S~VK{c!=7Y-RRiue^yrxp@I8N#hk`=qj zyKkUymDD%Fo|O77vS$PJU1m=Y z^<866mHKY5XCw8EvZt5&u)u&O4bNIHTz}@VPs6jppao#isw#3H%7?w>@qLSk59xNp zNyvvwz;SuKbdATWHCzGgRlvTclB`8ME!@WRt(`~K@u-M{sLX-w-@s%GD-p7DFu6{r z&xJVMK%i;v7(AcXfoSixvOKz0Ejqo}Z6KYy>` z%1kDjnXKbN$VfcMH9ev9xI?#H2rJaU-fdh$HbE!#^LUd&HbV>X8=Z8sn{0t1+mdPA z6v}CfItX8W+u~}n1=g#AE+S>Rh}Vbhu-SSqvGaI~n*^XQ1hV@=0Ln9PXI}_FUkK#( z1vhDdl>_?9Z^6p%R+7M5gHlOj%76H~R0?;i2tXl-2 zTLdog3rXNzTe)FVz);+h?NSSKsl|VV^=N2((4)-*uM+~e$O3Y1vJD*BraPh^I~1}_ zTrQGrrSuiD^+|F+kGBenk~v2x5Z?QtRkDUDvv-!+Gh4o)6l+*1V)5>^xPJ}oSPlEK zUBlI|XHM9&)-;K;Zr)FJAP&fxZmyUAop19Uy`&RSIMS+BWT(1ZB|A&8aGbRLiUd!S z(3>QDkhB-Jl1O1S=_s5{K%#Ak>|}2V1&#@V`I>;78+%U#&H0*~dHdLW$edrCGw&Fi z51aGOocYOP^X=xmD`&oJY=1st&M(QCpE@?*Va_kjnV&v3A2sKf<;>3*o8P$)*<3vC z>?IE(S^|NqBr%omB{9^zTj2ad01V6{5BLiu4c8v9hH#0$MAfi+f)(3UA9es-2dWjW z8C3gQDVADbA<#qp<_ZsJcsbj&5L;WnZ}`Vnj~S~!ctqc0bqF2<6n{babVKfT>$wXT z5dkhD-4V#$?v$;xNC~mmwdkP!iuq)hoBPXOz=rw*)@CfK2a#@NGqf$%xO6KKScyyy zhg!(E4HorIN9xBMi9n1@M^MI}2y~7v9`Dki74zsxs~SmIQA9x9R>Xxkbi&H1X_7#p zvZ4^`WdKXV3=m;J4}SnD1`Gf&)DHls+cL~-xx-w89J$j(gPbafnB)kMBN_5gNy;Rr zfDG`x;7|yzZZbDC-l5x+i1A3#At=2rc2{%gC9Pi=TcMu2HF(|dXxQ|503BjJvm!hW zUNZqdGBz|mh`yoroqFw0x_j*>2EpwWtH6XF4a2S5=7#Fu4S&Zp4L4*R;V|5iDrgDZ zgOQO3Fb%D1{~czh!0e=kJ$ZHys7ck5G!mL=148~LDdO|^{N9Kt8m%(zB1u#vQP#qE zIipl%NyU$;HzXeSYPb=stONCXbSu5tR?Zz~rS~pY_JNfTX}BrR zz6sRy)slYmK!3j%ULSi^NeG3^17500QGH2Y3Jh0u!#DD{-$nL*t>I1ChR@43eDBxq z&?bF@Cf|L7_G#D$4lf5w_q)kHsL*|xw@V1#F8kQq<$#|D&I1}=Wt2Q(KTP2HfV18) zN%q4Yui6jbWKqlzMZW=3s9KTzf{`zgK^}ig!}q~*_kTi&9(I!fxef;V-NEURL(ruL zoUq)0%Clb~s8cj#2H0;TJZmodd3;dAt3km^a2Z~xkF)pKmTyJd1q0gdE|?Q63LzcnuT{H6u5G?}5_>cm!wXwLq^m={*_xqZ(ePcMXFc%FqvK zc)flzHGk;M8Tw-y-k@Jd4LZ%x4{Nv?=w&8d$EIe%_b$&C{%PurTvcX@ogik$P$ zhrt&MAvbwWtb@_x5jj*zoI!*^$4}{Mo(DD0XVg4zsM%;;;HVhemEejIw-sO zjRO$|PE#XLfoE0QWI>^NoYZ*yk|7b&CC&*{GB`6_?FQH1XdF~#Gq9YeK<3s9xSYp7FsR_&%gk4O z0*-gcpH6P(IIeDC9s4(n{$CdMPk)x#t?AZeYrJ)5YkO;JYjx}F)?P)~zGL43n{?-g zM30UdlF=$Q$_24eyY-h?M+!GZ~kFdSL*DOvDT7zT8DO(eO0IZtVTZ3kZ2rkebrj}e%rr2 z@#V2=H-tam{NQTv>2pWl_en}|e(t|k{@|zAKl$?GpPVo7{$|~U>&yP`{JaC( zFKqwmYhR`Jeeo}Ax1ajY3oq5T|Lza(?fuseum1kppFVl>51$XcJG0>2%4HAv{ycK* zWPdys-yILfzZH+i_r!O`_r|ZDU-8UuZf^g{#nP)aU+&-kdC~e$R)5F;{hv<{eR-;Q z&z?7e8`LdNZCg~huI!5a*l43P`}pCtc;n&Kt{23J?K|ggxlaB3-M*1bZt<$no%eDw`$E^@f^*6g;Q9qlWrzUj?H9yvK`Z@aRludw?4Il0K= zCvPoo`}x(rDb*iDbCCKs#k>B!Hn?@v*7jy)pY_6xNx8_8t+y7mz5R0EqzgB<HCLZ)u#`)JX1F<`QuOi7@YCx$N!W_T#xMd@QXvgY=8aL_2Kj0CB1LF z`g%*^cSr5_Zr||vUw*jZ`qkKv>a_Sj{?8oW;w^uFxYw+~hhZ!?YhgbOs|m9nR%gO{%qJTu7;Y2Z4Z~@|tuSg#nAPGU zbKMOvs!W*G`T`SP1!KMmv-M>YX8l7l^)TJ#Cd~R!kqO&P+u6u(NT-wk2LJ&7|Fm~! zFr42THc6By(R&a?FH5k97A;y>b@i;aSXN&pY7i}2qJI-DdRav8L??Q$t0joGS`ht} z-#hQTUy_gind>}r&fTv2I_J!sc`z_AID+697#Nr~_bf5)ySqC4w{RfFP=3hjMol31 zWPHR{u<_aUrmd}kfk4zqwdxI!VW7I$#~2QviB9SU(WbNMgS1!`{Q0)abP*gB`4%V&^ zGgk=I#l_LZ)e?i~j}Zd(baHe-K+NE9OANCAEPrkeh&N79ONa~9!qLU@u4$M99OeN1 z(?90jl2{!Ckyn;^WnieF1<}?}ko(U8v%`4(Kh)&vV)6fI%>RcpFb4~`nZ>jH4BiKb8vRPP9AMl~j#ptqau&#%$ayB&O?F;xlEF&ce{tc?*CkL%q z#MFLYf$uOL@?-jU%4eB$Fk4CvxH>GYr=*=@a3D|A?l-n=+cr10ZQIstY}@&Vn`C1< z8{4*Rb93|Fs`tbFe5<-^(0#gQzRXme)6eq*5I`lKV%}c(A`6?dIe`a50X_+znF1ag zdH6`1a!^MD4HjhRT_!IY#);|e-ZNQ?z$DJz+{f%WlB(I|8v>oYi~;1^^!sM@c~V*` z0V%q75VK##p$WOxT?xPSn?fX5lqgz{L%VY6v{oqV7(u2*DL+3O&zj`mdPoR3$`I{= zNluj~kGGK_96b^-gt8Vz`_AeldraC{Gx(0#!f} z=a@gbkI#qOf>wQHo{qFrXuu!w#fJY|Ia>Q>UKW369qi zL4qPafWZfktnlobVVr<{URVM&C#QuJ&JTYg8y|}$29Y?a8|=V07v{=g^aMoi_uCFRGG_+c|E)AOqUqZ&Z9>hQ6js+#`D!Z!7 z%kZ*>e#GINp!57?kIJ|^7D6Qgs3m?k)!``hsH;?!#?8R2s{-PE4nxUA_6gi-C8a(U zisO@=DjjT`&kjM~Hz#^}RVxn3l8&m7-9}>Q{{g zZYYCE#?B4wd4vU(jCYq$St5DY+o4bDhDiUoyJnv}>$TEuFUoGWybg>0GQX|ZYFnol zUz_e|Ya~JTdJOQNb<2Is?#=b9mt{`MkeZI9cXt_9tW6B3#uDHD5nphNPZxW=71}w; zKb&qqW7SqsC9CawPyOSl=P?)`?>|k( zg8mUdj2*#G>OTZp8fSiDvS-Y-t=;dshFYjOPm7ih%-sV#upUnSA*SfL4TFeUIi;2x z@Ie?m^~rcjI0|faxO4e6AwJKlv8p_V{;pN*&|Ls6UdR4F*Hdd~9s7&6ZWZpfF+Vm( zLP@vFz87Tz1bkSwAo&W(DUbA7ccVib0YG?sS$T8pT(6-(>gVnc6@9bb_#^@XK2)Oo zjp4=bVhcbAt?9zif9`?ar6?!GQH`M|&j{;!js%Gc1^j#)GuP*NtW~%{>KlYAF6^#C*2o~h8iKK*q00&^-YlS?Vb{fANTY`%aj?c7(_`(uw#AuUmA zyZ9k_y^iE`9UWA}MLkbq*CaBVkr)$X54{3^9U2Yt`kmcu8{t31$Qv6(vBmuOO;_ zF^@br4tRyqI9qHH)Vhw`4}!e3)pvS+l$a%G6Y zv=`5mFUvVR4B}!c$l12b1|$ln-n%ANVW+dVi; z%`+~K=O?_g9Y2CJ+l6}MMo%3gH~qoRa`7klXaTNpdBLEGGfRVCDcGF%FhB=?@EaWD zBXeZqtZCUyx5AtHDd;PAk}0Ns^b9OgN0vy+yf{xbc_P|MP$b`nEp(v5#=B&Wks zHf8vTRva;Sz5A)oguL+?Nb7$$o2fqUNbXBSPwZ+!3}`w{g{nODCmZ^HoB4(lK2xq9 zzR>s<1Jj|dTS$LAHKeyF06>*vw$BgW)hJi9KEg|hcg9HLZL(ES?s`DG z*aAG-bYRRq?33F2%r?C5=UMs8G}oEL@tFe>?x=x9WPZYjT8(O*DG6hyBgW=BW zLV?Yqd7oa-_TR>-XDv8?vEI|b=~lfrGHEzI@@^QPDJX*|(}&s{U*O&BRF=L-azOpF zPajK!QfO)&1mSp!5RvL*?nLrL=kO^ze7i^bZO6|t&`A6#2pE zHLR8UhU^~B*Zb9#U{%T?=m4i1+xq)7aCgMg=^A2wT zP>Q4_dJd#$R}X{W3Zl;}4mx%a8BBU}rY}0b z&H&c^>xxIjV#`&z?}M{ zmQz51wB8h=M-Md@EortQk4&#OxKw{bHyN5)!=oBmoIyEPTPwM`CvlJz(6bAbKbL8K zr`bgK2dILd$9}VPoeLN25oG1E7EHEz{gs?ebbYs1IE_lhMM+Pqa=UYR09SD5);g#IU zGDGE(@&6dbI7U>;m5ed&%X(PA)Y-dxG64QeULz;@Dw{>D^yqArZ%rENNBxmVJ-F)f z0CFVr53U$!6kFK>PKh5!*aO!Vq#jn-D$K*CoQPmD+@TOSCh(qafkPpt2JIx4KG#g z*W4X;(eigP0&7`V)0x9U`50B5Kn{WzlTcqe_M1FIw>h3rw|UYg-*>vE`3@-z*snpk zC7n&=EknBu9FDXRhdTa?JU4C`@EqYz!Y9*G1tZzLah`6sbd>Y+VaRa0`%9y!ljw5^ z_jSofg>PkT;pv&~zh1{OY1xd$Eo|K@x&^kaXd= z7s#Iyc{^Hdny~-X#d46=6h~@10FizdOH~+C3JIx3H!U?`$B+PFDw~;T>3Z0I^yaf1 zbJYve#q{0^|1J8FStstbMo|uw&$qq92K>S&<%TGE-3U;!6&EO+%4mE0_;@;Mm_Cn8 z>rI>(1G#kU%XPpulg$>jX|T35!Ou|~iy+aj0DZ;bBYnti0Xavj1|sRQ?dBkq z8<%nnhHWYkDnTuTOBk8?`(U%)lIU}w)2Ixi+5OTHjOd9tQ>4IuY`q$t-gTqRy3snlJxVmzRXOCj zNCJwRrfL1|-l&C&NIEbYC)>F~ql?9yo0&-BO-n=)RI_&z;-yVuenr|4+!9W=jlrc8 zc3Ku=t5k9Xy;55m0$mOQ(@tF$)f%qfy!I{9{*Bnc!^dqRCGCHh|F~IHX0al6qA%AD zE$WuH6w!n@Q6Ci0@Qxe=#eT%!)TYaLA$nlpOwP9V;ngVmV9NgbJs8ZTYIZHe_9yB| zY=SP)Uyvi~Po|TuJNn84(Fshwa(lh!o?v&qt{dIA50=#XEU?i}SxUn!V5_OiGO90l zjQF<)$9L73OW?@`zjEYRI*i#r^+=0Kp*5g@H~x+BlPWrS z5nmWoIg%c?yl`$W!7^|WYa`WMF8X%Oh(G@HF;1tv&2RbRNAXbYhoCuCp-s({UL9~p zzN9Yp!v4wM0Qg*QBE?RnP9b!2G>Ki6kCq9~-8<)u-LiiQnK5WXwC5L&z|xXXTP}N)vSlrfDJ`EDKl*2>jF6o zjqN4>`EH|t4wIhk?d}`<>#m~NwYgIloTkl9GQnNw0P}SNFBE+rj4qg~C$I1|AbM@s zUWc%?mjG?D-#~+?O7_Uy|yX^J8S@DbCr` z&YxeAO`|D}MszP|L|zEglQ_?M4Fs||hnN~}KJMIBhAV)axsy~o3JA>z8AlAmsESk- zfmmXPYZo$+JArjZUQ^7nZ1b@Z{G+v=->Vb>8Z+?pj>0Ze5X9;tLql!u22C6I0&JtO zE`0}nx)p!&oXF;^QwIkz9r+$`F^rcN_jNlHhKlvvJoA(3q#a8`7;lyCmis@eo3^rU z_}9#`UX_YB*!Skt?P`E+BM~3qTYe>YH0OOu6=GQdHklXiNzcC>+1|$^8_t%<47@gyHGOkLjx^m$H--lee^u^erhz+3;c^Mc33A@ls53mg0U zwj^M$`?cNdH-TxYLvMKc^`|%Ie;swGklTtD@7C)9X2kyU6SZenBJ(Qo#WtR1iXze1 z0X_Q^0*;X{g#i?feOJT$XmO=C*fQ{Xum%=iOLdCP0G9;s(|$_%hbYS0kLRgz04e0% zaO$wRxoBYv8Nzh1)N_20Zj!_>)jp2Mg zP|$g=cvx9+h*J4|sS4}I9^$PDu$-5_=W~%%K#RT`^o?9a5Z$Y5+EP5HH`&q|*m+{b zkID;cy9@|L7~S^xPfc)-c$38w&+6{ zt?CH7$H=fVlkG?Ii}rT_SwMEl3M8vZ1rUBT_0tR>BnY7T!KRaRTIV_ZtX+Q!`y}Jz zs69ImRaka?W%336>z|J2AW-9$FI*Zb5~N-Q0gdTTz!XpsOA9`E zh=e)f_ZB<$(y5{3#>7^4Dah?Xqt8BC&h}oAOA< zmT&}@`s})(E%pQ;iuR7@>jpqTTI_d2MfIiaw?-G(TQdm1@~}M9h~op7JM}_MXnYAr(%9S#n@%Bsf!UB6EUa zl;T|Tu3|`i(3#CM;*GQW+Xulq_U4{n zSE@h^O4x-zaM01}cx^-osmxKb&9EkrAa;pGGnoScd`@7^&)lyIj>rEtff33oqvk3WFf+FzuFa(bza(~^JtD%&T%VL;)kO(` z6tCvGCmpIsotVl8nV=T6;omEfR|#Z44Cm=4NvdlHQ}OuMoMr-vC2o|7$4XtqtF)_Q z!d>OvC_s%aFggG|E6}s3D^VZ}0&E*Uq=x*)M zfC6!tQ2*nc_2_7Eaor^ZC)`!-CAlT_=LJD^_n$ixQ;ZI<+t!C$+7uPw+F`z z>iVu$Kq10ao2wo|kipjT+sqe56H#dsKG>`36P(l7JYQ{-XX{552~KWmpTqaQ86bH< zcY>_{{OE}mBc9yy7_*Qu#&eH^UzwW#CSza>|E`#R8ns8^wX{QoEMv!G=i-74!s;lV z*D|>kmI`g%6dNDi3R9HkQ)8iFAQb2YLm92iz9~ah;#1o}van!Qx;TxSbk@I7DLytk z$M|9|ZLLm)LXPR$^+8l_Rje!H3X}e;J7FyS!V}S0a%}@Qe!aW>!>hP0srVKvClMgj z1w&Hf`3LH#wbIq>3H(%vdbsQAL2F9103iJS!96{Ou@3&*)v@gBApOMq2&=}G0veLO zAeKqLWZGGHn~&Z*ipTv|dluhRuk1{V8Gn$zW6^J;e#s{HBz!?0Z9ku+ss1B6921fz z`s!Z{`>HWb`bQr7iX?COwH9F<@b#^ilYTp9iG;T>`BxO)oX~UoWo_)uocv0}SO^d% z4?F)223k!bzMSJ7;ie#*zY^8{J(IslBf07JyvraeI~#(GdZxpL9fctsTj?;eF7%&P z>8F2z{ZIK30EW`*iR|Iw z^hs#;Eq`eCmS>jFG|jCLGxKwHfW}W&-w-KHnbA+tH|vY(h+l)+{K90zV6eDLrpe!d z8ybRLoO?R(3eWwVdLXo%LT705%fUHCA-tTgF;boN-G*8rt2efoVQhlYUSwu4_R;EN z&THyCy*-pyjO#r8+j**d50p~TIr`M!mr71&=l%H}JC;|>>pWG@JV!pA$3xl27kX+p zI9t3c#kwzD&gbfi8Qdzo>tt$1m-MaSTJvpKN2VdyRasb`gtxb$iS*G%eS~aL%o3w< z?_+Bqn{ExCYS{E?NOqNmI$4=PhR))^o6Ns_-m)9IuzRGy)WA~$mIxE3hS2U-NkwNf z#=NzQ9_U@QrcnV}g>%)Tm$wuip6|X=Hlh5E9&DiCFY^%=#!zxI$%HT~KQVfxcXX0F zp7UqQJg&zzGr7#Q4RvJyuP+67L^+GQx>??@*>cT7)tZO!6FrI34U=_>9C;=4>gq8) zcQ?pW?V@`l2H$vw6>nBh5SI63cXZJ@z8d4D|D$=}Al{nMmur2LgxZQ4_x({Q}_HADLT zGm||Zg?F1vZF)KE>~(7z$-S8X#jn7+nROK5 zeWR$yL|=sqGm-K$VwV`K?G`RF0#Rw|y*`DQfP-7%3o7W5Q_G#`R-kz()H>mO&d!@q zVOLw*$|~t&f%}^ldX&Gs5Dp#^OFtliX|bWwhHS|N_oz$zn6$=_3YQwCUtjo@HWoTl zRp2%%189I8=E)?GT$hJ{?&XbzCgZ}(l|QR777JZ4%Dl=FjJ>^x&Lb=r;6c?3ep9E1 zq3Rv%iO>7dPgTEfyr%8mqoqYR-J#7r@x!Ka=;zHRb@~1&nD)jk|nxrVW2w74gtOc7omgK zG|LlVJl5JG#UTa)tfTDDrXKPK=ntJ39BCgM+D#K=q=`Sb z2g63;)!er$YpduVyY9QYNK-IYICM_A7e!YPh3^J*D?Hx2X9gHluY4!4(!s9B6FtG2 zu#jt~QHQnih9k?Vqk|70Qp9KJv5EoR^l-yxr@Yfc+%fGFSY~sGER%w#RL~Ox56K2X zXjhE`E=vfu?>21z4Cw_@se{MY;dR;4*YTwLpVsCasXc^lan+0=sG4)$wwB1WJ0=#fN>Sd)p@bL}ZZ2iHQS%HjQtxp2d4*?;E^Z@|sDz$nnw zgVbX%d3ny}>T8}xz&ffaYT1p-W@?@^KfAvOK1%z60LqfZC9lD{T>W72DMNL>IrHo7 zlpeekqTTy!%^kz30hX>NscVS#i?}7Kyp7iPxTK^xWyD~Tl<$bHB=Q>q!G$Eptd{LPhRD3JZvDY?@Z$Gq#?`t+kGIn8$tkJ1|hnVUWE<&8k~(9b0QXDWy9c<0nxC zQM7a>QDtuEA{V1`&S6tU+CWjX1Y5Ke*XTYqV!g;)Ym@7+$omvK3Jg@Z8&odQe8=15 z*4k`J=`P1~T2w(bES+0aS?2f1P3T;6*mix#H!Q(5EX6mvPmkCyPZ}*xw(D~>D7sR5 zY+f{-TZmi8dTi2Pw0jrZkHvh1ZGwhv7UFrpy*pT$tS}h#J1Cnqo2@YP)#^&Dl}=gx ztw%6gh1{%1xTpk5BhB$T)9jVLC#*smuZATyTeIn~*pp>6qfjB?74a}n$#B+dj}FDC z4@odV;iV4g?im&B80|}~Kj37NbK8c-UOj(X;FTD1g&F3kQ_5toh@I}$6>JsY*z$a6 z1>F_=quh40R%O{2`INT{)?8KE3c(x8UO+gMw=>W$odzPPWy9r1=RnG|T3#m(jNS1j za{IUz{=`*SCA#s=-+Qpldg=xecWug`$%d~V&WQ-|Q{VK1wXoRd>E7^ECvZ$N$Q`wU z@>UmoH*UmF4Qij3OSph^2aU^oO8#~p)@h!!)eBxTSLM8#Q94lrqf;5q1uzSjUyh-& zVp+0&fD7simcpl;)t6b|qGDl(w$x)Z=vrD05C{wV`?@{4W{`;@*$jbL8|>r3_=h49 zWS^r)m?1l(nBkRM74!01O_h{c?vI0KQhfs`Gu_=5!rkcAW`;>Fampg@Ovk7w$EZSK z+inpEzYq*lvJg|5lMGZ(IT!*}83phSNE!AaK;}EVRgxDwn_@NMn$1eV)q|M6t|qBO z{6IoPVPSE=ljDDnT{tBX;fccn_3jRefU z!s+(MXItnXMhJ8~@NK3$O~OO4-Z3AnRZ1vFB|oNQ#U4Ue?vWGyFp-Li`l2)_qvN7b z2{4oknofQ|)ca{l`#~kL1|_ogk(q;&nGZB-z-N_Mc*{!T;7=S**|yxQPfC~-#8|ne zNKtvr@!-P1$-2XBUV5gePBzc<>H^tZEoGYbYna;H>$bY+HTEdq4~a`%aBJ1J9kjuR zITmLJcX=v{q^X+rXM=XE%B78QtF4KrKtZdb-i$L>J#?yqdImSQK$tT(Is0->TmAG8 zjoXrv!{pDhza5gcVZy01S@hZRR`Mi`l(3Bw)YJ*`C*)z4*%IvNHo?KMs6ZEt9;-kp zvp^U^oO3DK{BVwZmRkb_A;{24>WluxGsfKKk<7ciXP^`^7=#*6R?BcP!Ri*FYNx>W za!2+`#Ovz}$w-U@;nM3~Uc?oNY*TAEiVni!7(t5O zcfX=3e~x$P*Dta^t4#c~**<<_b`O!SNYjT9}>dU$>TVqWoDQb=$E-xhl; z4+=UI=GzOI7BXoSls^tbYaFZ6T0)VcV=$?|vYJE(0$yZsASuy7snmR_)Ig~cdSQrX z$dFg({^S0$S7!o+z{04@2d>M9O~dDBmk9@?KdFY5{pVx-TZ0K|kv#9e=*>j#%Db;W zpUe=Vf_;KTYIyLoO4l0ym|`swWB*s#D)Yax*6(A{cQ^T8WveQT8jLQCF^m}zGmH~VFiZ$cG)w|aVtP9!B$MpKx3u*f<{st_<`(7#<{IV-<`U+D z28IS2<_YE*<{jn}<{u3R4Fe4$4GWDp4F?S;4G)bJjWmrMjS`I(jV6r-jXI4QjVg@_ zjdD6H79;_uGmYE-k0_S%|MKXMw;=iT!GHYlORvR(B>R>!`OE35qxW2=Vsi5SwnLAI z4!Sjs?lWaWAApAoVZrPb4a6qs?yi|z?(WvzmIMp1PoyyhAxAHRz$DXk8{p9oVp%6O zy^n9Ro3h4aA0gFc)>Y%gLX{+yxb}sRu;~EcnRqU{dft6|T(1O%_xnzcb>4`X!Z3ptPJ54=cx+997C(S z3l)3G)PpZBfB?6I(1_7Div-?=;RoDF1jM>2*B>DM*D5BM6Rk=xrNJSR)fZmk?ugvl zR)R6zke7Jn)N1kIuZh;yyhd)wXgxoa;Yx4ueJrwuCPWs-^l0}s##crYf2{fnuIzm1 zmQbS8i?M)(wg$87)0u#J;HItdIp6Vw>b)mm8hXO?sNsj&Pl; z9eRKn+*~=^s1QPK@savC3DI9^wQkYtA+YSM3zx+DbizFiYPlBN-~a*l&P(mC5T2E~3mj<;OYa#~zn+a?Il|e5zoN0({ zEL!y=;jWHpXtZzP`v|}zF50#=B=}^2H&~k-FCLq4_ zqX;siprW?(01SSX+BHe8V4nng;V1M^e;Z7oCAadCRHg{OXfe9rNFs>LTsf+wDk?xD zJS6F3PK`=lbq6Y2o0F{q0nsIkCM&N%$(@CzU7L1j)g(;o10 zq$2YfyA!u5?`h%6)`3;snAhP$0&h#T`QD5%t&0!Hugf!aY0S9G1sJO`bCmsly~z8u zA7S~>c-iu2J=D=Kr@`_-{jf9JHv7&^0so^YKCii(g)@i8V17YaN$m2))eDFd2zV*5 z-`*E}60TX-RB`LmWxg>#L6_cOcFY<1qV^ux=k~b!du}NjU(%h&s`@neq4%YWWXZb@ ze4R?gI`<#c6zo6Aci#%$R%YG@=ZyvZO*}7p#L#Yrz_Me6e>^D8P)IG~sY{$b?-uxQ zJ-YZe9iVON8kcs6xs>bJO%J#u;hRW6310X=QuFVORDRaE(%P=q^6%$4b$9x@T;yAp z3aMAY0bDs+T(ka1``>WL^EfIhyKiJT`KSDW9op+C9bZoktiR@*`T(0i`tTv&(CA)@ z?qcWf&1bycP0LdSh%eCpSAzfg-;wFy_ZKw}H+xTzSzox9e14teY%uY3bTu4r=HwpEc{ZR60~TEE+U_RxDn3 zCc_K`y!(AE9(!kcPUUR3<==N3{cGIYWnGmT%Sh+r;Myrq1x9b|Su^c48kdi?58Q49 zg|3dyF+AdfqH?B)t^e z!rUo3-$3l1J3S(RZK+C=6zyXC^;T5*^2RS?-YVnTRGDUv?}hqZd&ywHS65i zjXdyY%&ve`OR=gxT&4zW@aD;Yj?5?^=~(JYSk)P$%w)T!Dy zRbC~gUHWl1PZR;(Ai`C~tpf>5%>DwP zev!*;D8!Yd&tqmry8_Xg3)##P5pQ)6P-#+?FVO{k+v?r_#N z?1p%7<9MH##w8HxHcQ}El z#%t%lbf};aMy2dINqwP|i3h^u=JW}BPXDQsrxGXOQ?oNRMyJ4#MB!rbibV;EMGl8D zCMMw)KJSzvRSzR1) z5ALlej2Qn7mGTNz7@gNsDl!l*;Y%?9(2Q)u-EN~sfO~H|qf013vSLn$QIG)Gv1u^~ zA`vUZlqkj#+<_+uGH;+!oC!9<mF{G8!SZHVc?^G&01H5_N|Wg}+2W!bD)BLiCWL3Omt%9@6+m z=aXX3A>Oe=)(c_Je~Bdg^(F|J1dnX88vVBu2RopRo+B}tsgj;hu9u7m5XqIAa9bW( zDL`o;#+m5MDpnAXsWcr3ht_jZ4G$*;Gn)|qj)EWy6H``_6=z>#slsNFQbbfJ;fB>Q zNDj9xpc@mJQ3^T*1)!q;{dzo0MJGe@&DVf~wgfSQa%t}QUGDd!u7LaMNB5;S-9U$W;lI{|aHG(F_{W6kVvtlKn z#P}wa8$}D75&sbd`w1-~;=(Iy@Qyr{5PaV`mZ~ zd~)b4m{7p>UF_f_?R1m?uT&wHz*Hf?{tqicxquukC5Anr=$9}06nLrqeM(Pei#E4@;)+`R&KU< z)`^~uC2N9&KIb3CA_WVUGwKfI<=y2ZiD*`wfHmir|89SB0l!qpEDM8!_L7p&gNOKEjOAR#9BNjZ}LJTeZ^PGVCg=1wSr z;z_O_8BNLoO;ANn3eIX4PEj=qEIby5OsNq*5KW-^@1N$57d}KiY|tE)@qn2C56T)8 zO$I5lgc363$T%q69 z8TYI@g0m&)+qc6SvK|`LkQ_2kVmnLR2c-a(SaKeMl;||yjb`#9QejGkYZ|#oKkMa++G&U;3T{*T)?0O`MXDZ zPU3i`7$Ipaamk_{pX|?XtDQc{6xXAtohe8s^e)&yYRLcEkOh1(wdE_dAlHaFxRVA% zL+gwJ!KtvNpr~C0m5M2H8&W9#5WNPo|GQ!d!iqp;W>EffjiWS!U~PuMs7OY) z3s9p4la?h~xk9~gvPGRH+4P`SbXm}AhoYpOxMTVZM$j^1#8SESi6U1#nn7&ba4*Oz z)WW~k3KLrdBT+)j#YPnlxcVXf0=xOa=c9=cnKnUz4O*=mBAWo>DJb`Za{JykZaVHDzBu@c1-;>g!9U$nRDW?}tpuJxarOQx zH_{=F)+3(+1=EId*Oz2tL5FikkeCpWAQosn@OyEq0CORqVKzz3dnj62{AnRXG*(~FwWeoNSA3yKqhRRy!lfwTrD zggHeHvUkW$l@E3m#4{6Qa#z8VEC5q6w88q<7(~0?;JLsj?g>g{C2-IzgacOOT6plr zdL(eIgkQul5_>xYf3zX_lm7S(p}#@q++4z7PZ7KFt}G{sGls8|p~Y;%Mr^{~ZuF8k z&8^mf%FAK1Q$knL9ZUeN<|Hi`m z*hsMR)SbM3Q4H4VS0%AHIif|}?ZjwkDW%xJ(^Kv>sEc30{f`-e&08jFe|a zqZ!_a6xq7m*cNRC^dySv$sT}j0Ac^PFy#E)N1zQca+?^L6Ilq1f6a=RE6_Vzw1op! z?x0t!24bSoc2pkM?1(a%Rb$XcIfUW20*`Nnu$u7nb9%t);3TYDs$%HxRhTsFA90SN zw}a+sziPlgMFq;2;1unc>^N$jv|zQc|43;m*B;bLX|c>bqicl>1U~_vAIA-%$%@t{dx5_gr4sqUxGz(w9}d4V&^B z9fh{bs6mNXe1g^9SdDAZ+BP-Z(hGcKw{lcI{oQh|?T&GxpEn?rM3R0oi27x78Y%ri z8rh@m6ZTRjeH}kqyp?oa=M$e^3o!Q}9i#?c`nNF(1$E_n3 zmBR0H&v9?nHeb)iBj{uQhMg>H*Zj@F7NVZ})u@KRRIGG(!kaMfTib5`$y~0fZ~3n5 z;pa70wQN93EhmRbi@o2+{PZRMd(9=6i3Z`sI_K%Ab2tEW^10T(8H`rEoD;gpEzSDU zA%5L2ZRR6=S=zq#5|-Rw5+zot+kLL)P+(oKsZ`09oz8r>` zr!H&WE%_~Pm%Zty%@8@!UX{y7XxjdMp_7*G-oORN5=1~e-@K0Uu^SI-$(Q~QJMp97 zp8Y!vg_fVCZZ{b2>U%^ri5?T$WR)+$81Md12^C{PTB-B)o{Ky$3GMYl8k?Xj|3w=? z;Z!Ax$BY@VxkZ#hbKAb2jlgCY7_OsprdFjhta7SNG;gaOH{5fuUK0^LKsn-cPB#&^ z^Z`f$iLGupZi&ZY{mp3i>4MsJchyQGFS+~rU=kh>`M1)cZSDr*D3!L5M^V8aOTk@w~$oTY-uiu;OxACZ_ z`z#si`}}(g7r^>z_HVhRyL??fF4^Yqxp7mP9UVEXl>Y=yhSkN$|V#1rkQFyVlnZ~j#W(i@l-j-0;@BJ<%4N#^cgH1Q& z%lqBlGPR}b_I7GJY^e3{zWzGi%5EF%zCGjW>GWYVT?h*K?7=_l%yQc~Sr+(8G&QU>eM<`w z($ztP(2y5O^I2nFem#0%0J!L&J~@&cySlDVi(Qj@a_)3K31c1Uo@|!6PU(a`ZH_pa ziA(%c*2B_Xa>{5Sr(K%}aXL6%qQ^YfoK>3qJobipifVv%+xsQ+Eceq$*Y3E@rpgBT zeXOllm&OLC>vlo{{jWH#|8_d0iYNbyHn$rP$h; z3QbP)C$0#_>*b|=8;%1l=e?zamngI4*6Ea!HrqQdHS*ZRY6iX_hJ*RK{@32 zEzg^Vah!`B*PV;r(rxTrP3HYAaJpM&R2P>Y^6QH(A0_<_71IcGzK#28qvf799(kXA z?Z+_|%RTYe+3(H^g&eMHh=W%+svlFolyP9bKFSXizQ$Fr0gOyevFZHxX8wO|Nykv~ zF2iNwmj7;AFYY=yrZpYc+HJZHjrLEcqPvM8FL5x1UIsHtz5;CSY6Gvh!c=va)zv(e zbFM6$JqH~3)Lh$a@ip0NZXz9i z4%hfSYfZGj01_snUAwcs?^V(hov!A(pLvn?RU05@Gn2v>UCY1UKWohY@GtGZ_TPH8 zAZR;NUlx|UHLV+BA7zK!p7T~rtgRjc22Q&r0f?&ZW0_}?@lT}X7d=gCCFKG34u#wH zZ`~|!(~Ff`=NAn>Z;|Fth&-njm!>CU1$-z!kDKX+fYS2EWlMxEud_;XO9rk=Duypb z$?NEGx3ly2eaj*EZr>f7(RIo8EyI9MVZ5iF@4V{wt}ASe<1^)DQ^ybo+w@^kXicl52*Gz$y4LOM|U1}pG4QfZtt`}Bbs>90J>;2U$F{Z`UWVzA61K=u+NAde~5q6E`5x36Jz1CWTT5#)s zFI_Eeh&|)db$KWgfL?|Q*9k&3azR+txN9KyT^{Z{xi~Fj>)J})5}5oS&b}!)lW2`L znb@``wr$(CZ6_1_u|2Uhv2EM7ZJRge)V&Yq^>(eU`l_oRd)NMY?e(pt3sP%j3V)uC zT48--C<^HU2k{?NGB%*Aoe+&RB9bm0C{)P`mPS*DSyztejQ41p(^M3oc|$tl1%)*N zIK$4B2=jqaCtR_M=&)}n+QiiDDvUQY?At2D7rUN}c^?8xn0+hcZ;g33<%41>nlUOK zcT7gB7};{MiFxqJAN#kBFfCOl3i7H5Ikd&(I{kZ+iXpYBT;7lOm44Cq$H-T;Z zGA^$z{CHnhdu;t!)V!K+Q3kk5Dt!Y0>^MU9A8ReX0Ya*L31=?EQ4P^^bTNz3YeQlN zmHr);TIu`?bX3!wEtv2|?G=so;8Ih;icRFjN{O8Hp6$IeUDmWf zZ7dlBGP^m&n$2B`EL_9Nk%v-}B{U4S4&JDUG{uV{4mwOOVtm%lf`A7k*=gvr)!-9P@9OT(B=wobf zE^sB^Ojs_k2Xf3RC8671Mp{tDuW?zTtc+iWMRBOSqD*u<|H3>eV}etND)|<|Qt~{i z&1;#WG{djXk<~&p)k5Yqv5G1HuCR|VquU)UJuuX<$G*mirDVTfXs+xkUD^4W zvH7xR+b5$oZSn3mY{5yYHulRxr7PwSy&QCYtdF7PqIvnchXq>5x%k*!?$v&O_rr;u z*Pt9gWGPm1QrXbb9)K7F0H{lo1!fF+t5R;}N(qhg^YpTauV#wJ>vp)UkC*SDvhLJj0q{<3& zM=Df$tI;3LakjG~O(eh9h1_dzUw7301`$SqgX-!^7K$=%`b76{_Dc>ko`xW`YgmlnNK4>e~(>NJ>T+ZMe{>NWzEa z#+pay?Z*%v=@;8KWM>vd$o@M{5)&M{hztg5fb4+FYqaU+8N@Ja#C#hDd>#Y^$^*QnImL?7F{m;PC+bYuQbK~KSbG$9_sV|Uu;~Ric^i8khgdq;y^Er2vY9}~O z-#A5YY_in$K`~V+Zp>>&iY~if#j5;TB1odOCZ*>|h$+KBMtT|Sv;!BG>a#GaQGRXA zpoq_$On@Sc;r)QKfwDMLxc2e-XJdGQ#czLiID|>Iz!aCYyUzgtX77GR^v%ZOOWhZ| zyWBQj-47_pDGT$Sh0`e*NHgET`x1JrU)PAS@{s*<`@M z%;GOh=9);v0TkghN6oCMUqkjT#oGg~My;>wBQ0EfUzMzn>pKhf%!JMHrQ6Bg+}`U7 zW^a?M<~`bpa6j5sCT=a9%BbW?p-x$l%@FemfR&9P`$)6l8Xz?74bKbU&Fx~*?r6{+ z2k+spVHPJ-@%GEJL4>k@een!s`p^w;d+hL1IPGagU0ZThAP?(zAV_ggk6UAYE>UE9 z^5q2GnWX9kn8DB*GF@Wwkcp)ZlQDlD z;11P9OtR+?DIFL?Kwt=7W(ZztC?>?@f}!9-;!lE^_-`!vj4gR$CY9x4%KTzagdDMF zbq9tEmEIW}uzoq7H94*yq$j6~h8vp}3pO!Rinx*0-9?>#!V>(}ASM;bt`$1KTKZ=m zCru&dW*Fn97~@t8?#_B(k#cLOu5-AQ`7!cU4}2UDAdd5)%Gd$%L9>{-onGG{Z42<_x1?1h;Eo zYFGNSc!+*Ba5yD_+^CwBEj6HXDaO%$pK`@|WL4VT& z=y@Bm`(4BLnUt@$gMN4Pzz6EM|J|rKBFX}m>7Iftc~vj-^F)oJBLN_VT_&$LOD)t< z)g6!$roQ5;EwOF~9gPuB#t}oRcv}`8p^h@M3$s`L2a>{wF1(ry1HIZ%U$0)aD;fID z73A%a(cgCyf7i7u)0_8SrZ@5Jpd5AecF%sdVeB`!^cqeoi`Lu4a>V=QL~FdLvB-Tr z0bS*LwDbEVNcX3cD-|Fyz@j$%NCdy&TAo*I+n!eYeY9@TgkBpHQm-kjk-o$(+sqE8yp@Gkd~wvbE?|-(z_R;3%K>=YGUp-hd@pkg`#AaaSIw5cEXYY*mX!0OhcFtgA zRFdCb>v|0aclbc%ufRNT5Ph|shbJ*xz?M_hV6(cs%&ia;2lxujz@xvyRVyyx@KQN^ zfZh!!@L9|d>VN?yG`K1agQKp91kiXU5;6-c11FN)5^GRjfpHu(!Lt$88Nw}B!#`to zi#ydrMRAEr5gcD?{>wz-<4UA?Dj`K`8LqK`Il!sGWL~U_3$inE`6E zzclY1_}rd3a}|N%p5SMC3l|vX3#k$igsW0ob}F%7b{clO2U(dO!@w~2hZ$@E>6|SR zIZ%7&I}xDp5fuFmD_=usPGB^}Cv$KiTmlk;)~&VV)d&P_gUe;l$JFJUn9fc>dN?WW z^5ZPy{29A)M1bUUl%o3j2@@lk5F@V0Mdn))LUN?Y#u!Vcmm0Gc?#V*R7^{U5S752> zk!Z3zyFkOU)FYc1JA5NW{U)c#+=kr&Ls4*!IRY3lu7SviAI2u=#%0FGtC#Pwp%7gO z`9*~KWv%q(9p&@EF*qEXhaT1uyYJWJbcnLwPafW}f6HGx3?X~VfcRb9@?D&NGER#5 zk~kR$ke-a&rw~@^UJ|K0;K(2yMyWq&$s!$At~+Q+A|0Opc{rM|U#jV31Y4Ca!|89n z3jp=$A%@OHA(WI8FlCdJW06Zh8OlSs2tEb{>~i*sR)}~gm1mk~~Me_~y|VaXqwD*zwtnM=05vdI3hELhx>)QhBJkMW@GR6n7{)Hgf8+fA%oY;@+zhmMR9h$gJBr zyB8Et^%t0n1$ms6;xrIKlf^B89Ijp?)b(Gt7mOsFZ)B4CDHz~Y~Ww-K#q&@d4+o_hXL$Ke`8EIONpeByH zLc^M7Wf+{I~czA<%0T^5GmnUIq* zB4EJmRI2tIXCiO-omhX68(1Z2M*Egkf0HR-%KkQFfzr$w2#Jqlo0qm(U_XpeDd`y) zAfZMj&wJ;x5&-TR0bew60-W|RnHtrZx;WXm!1ChAteNC*In0rrpM%1kI9Iry;vRDE zzo8C2QYM2aw=l8T8DLtN_!%2OE836rp!Nf4;lOXACjIuzG=G9>wQQ=V-Sq7*SPvoHSkEkkP%0?ciw;!$YTd1qf~ znar~Uxu<8OfmRv823ey27e58`FUNcD@vT=yd+CAwoR}MV`!GNo>()czPR>*dqb?B< zrK7*=W*d-OJK<@YtACrFq9N*@MHI}f?X&`DyDlWU!*8=+-+d$!7y+OL(pgxkChvI- z3gNrHA%mY$0Fo`_WJ)=dr#KaF8EKINGVKQ0P%zJ8=`Z0r`I|D0%GoBWPb+b$ zmi*IJm1Nt^bTQlV>t)ixnwa-A)>7uTugsBp9A>1t01h)EaI;!%&wI1lE8vTm&rc&a zp7#Se)|F8AvS6Ng)M|EA4Wo+bfb(=ic58Y=%@x{l6UXFZ{)|M~Rk8DBeWwhA_tq(e z#R&4**GyKc4OOr|sF$z&tk*94a$9P_)F`90$<{3 zo8?UTpVdh@+H;e8;@1Rn0&xWJUX-&syYrEB@s<0o4>6q`)BbP69r_mvErU)MD}ut1 zKTD$af-O#dN`}Cl*2vbQDPZA^@Z;$pMRlIv06w`g_g1hbn!F2K{XKLApOv ztmvYQp!ru28*O*$c1Is|IpquQQo$XqfUnuKPa^(11l@-^Uz&jH^WopPuCigXqCvBw zCHKESn(Sz#JYFem@Wy1YXk*ptmOOYBDZej<}rf3(a zNX<#iJD<_0gBrBc9O0(7S)V3!jqlx~vlbagz6;7XugR0?2a8cyO(Bo*U9b&A7#fP`px3Q zO`DeN;=*8No!3pcXJ$(}L>UeRfR7Ovjj4=V9s1xm>A{wAp}P2C>3DkSzvd>T<$9%} z#x#Lk<3aW85gzF0FxVzod9GO4E?Cm#adHk|q`@7jZhyc~qxX;gZo^O@qpfOGNLaAt z^h0WA-kP}Tp!-?^zs?GOoCt<_T|73EyMA6`jYSbu27lj-t%EQ=myF8KbM`clQ>1zL zpL-y1l6T=({85^`?;pRo+xrIM_|Sy;q5J-C8k6i#`TwripTanWNDMp`1d$Rdr9%uH zM?#QNh*FqRMKV{t1<;s(?0%iijdUS5_KWU!KqBQ``-dUCV{>y?s4DAF=BnZ7?5aUuQU9Z*Ygp z$-oB@4sR3Z_o4L3hTuX5U?GCGavdRu@I*tCM>+i^S_TNPV?)kkMnjRKl5L=qyFmM( zPfo|0jfkOg;pJ?#0^=#2Gom#X^%#EBCD`rfOYU1>eBa@qv z4Z>}_1Fi7RIOp%}-apzKm%t-R#(e_&Cz#w|8H??|GZfr7CtAR{9=Ze|@oN%rO#gT$Yrb_-B~=0h ze1Ol;9~{(!$Cf(2&j2qZbge8{MJ$&)8V!hOe0fDq-IZhNQCM>n3=@Zpj13|V$W=%# zHUJ0O77P%DBrL<$Ktw=+6s!>a6p{K5UVxWCQyK9K0^5GG`QaC4GR$cWiwp8#LdMP_ z?1qDBn%)I!{w+C93tPQKq+*WfjgnNM`DK>y<6t?Q(hCbbY5)>WCy>t&bQs71ka)?> z=8@+0CutI$Gm-j1!ZOe}j+sYi5(#KRhq$B>h-BYvf_H$XG6m6J@t_)7p`s62$o1a? zDJBknagMoRzC<)gC1~o1V|T|>KtT2ZBmt2DlrVjq1}7h4$}h@+!jmW=6sd>O@nCVV zbR&n*PT|5D{!2Q@aneSUV9|hsy#SrP*;W$b)`1`Q;Z!s~2PDY19+5%?`VtoMl(r#| zm0vT!Hb53Y@IW->vag&#Hx%#DfC~zK)A{^6T268hAhIyq&TF&AQsc}<{=?!yYZ(=9 znx2UdD^oGC5GrEf{L`t_@(~Hd*KCv=Ao0vSNIx7-F6J=*J3 zWKx7t`(B~0; zGsk51;&ayP4QC~rQW-!Ur0g--gA0v+C{CJoR&2~rn9~N%?5~utiLjJo8Ilc`Q4Lyn zlEEh$HO8(LXZ|v~0_%x(jMl?uyY6rftUBc!jP!rEY*RRkU6ybNLOs%jtEp zoHf=AkAXkZWQffcOdKevB43;2-$44hNznR}s(>m71rF*BG-a9sTb5KP(rmc2ZJ*ge zz;_%J&^DbG!+9TbG#SHl5&CG4bQgVho13rJ9{p@b2gIO3 zGOB~eA-9$E$08st{F>GE;L|GS$x1ZY?#Ns)=k54n?4-(-<`jb}Tdmxhy}RwWzzjeh08k%`?bUn#ES}odF^*Ob|a{ zE{&g!rYnVKWSD&57-+tv>ucD@kEZf!CF>;2W^>MvA zXbSHW`k6ygG#u@pKO4#dBOY#A!gN_>Q@AuuKLFa9#rn2?vrgc-nsqn3kJ6fzwNZw{ zbzd%)qD>(PLaO1VBsDSL_UG)oRE?Pn$)CA7{=A@HVYMw9V?4sftj&6vIXj=TzpSp7 zJ%;)I{hoaPl8&jg0o0c1@k|+S1bjqAU90E3u-Tsrrumw255lGltN4el- zkO4YMUo0))>?=bRy(V1?ravnWt&_XD2Yti_{TXb{`}vqV4Ncwc9!Woz5$tk4`X2Qj z4fLEhiv~SkdG%k`P<=KRm3aBv`-+dn_A_}+y^2Y6E<6(VZx3z;R`%LWBZiN{sCDPc z)^~LD716dhYv=c0+&9!WGq#BB{}g9tx&r8{!r2m)<_Ppxx-F&6^<71lj(WSg*T7y^ zGny;;8P!soJ}P!SeW8};$vbx>HI0{jMosr`_L380&K0k!f0K>aTJz4QWUfVWGCBV> zTERd@K7_e9aA4D0_x&7N)`o@sae%}-e!yR&2V8OPb+LI(Qmz_4*Glv>@@M=6dja^6 z+voS^#q?jyHrgOw#+k|IW0vu_5t=P_lcfo|t8f%_(sH`399m|j(WCD+@(nwNz}07O z1Dmwjx$o9s*zngnDMisMle54no50WhpwCDrvsLP^-+b&gETw2)9aPw)G|AaeoQ|80 z9`80hKSn7vBic8x;Gd=%Z#zcJ<^ha69frMZ{B-Nyo36*B`E%a)N4frlWnVLH(u#b4 zA0i- zi8qPe-lEYBE<#@z?@Ml8!5tg*-nr-fn`e@B*O}Ck?bOG4)bP$_%Bx9( zE{96abL`tbq^&6#=xkcJ1+5oFF9*8e8a*>znVUFEACwHFiIO766a=`WknyF;qP^5J&&r3xUvBXdD!0I`%y_VB6w zutwm_=8Wddj7PX;G|FR9=3}Y%sg@G}2If>QGk9k{=J2!|fYvL~3IG3g!|%m29yw4z zKplXepj51%j@-%A$k2)2)X36~-q^)L-|2_b@TB|CcvGjkwGFO1T6Rh&^Lp09AM;C| z%wdvxH+*ZaVXWcD6eY6f?7V)W(H~yq^JaJK?&M)KXdr+i(R?2@zE!i5p@SP{rO@768~?!N<iL4)JNw1i#D>>Z>oNB+xBJz^ zBtbhM({M(fxpj4V@~slQ-@zO!BrTriTV%A+=NW0L^l{CubB>3OjVh9j;ux&>^o92) zLd3RozGC%WZobN~a?oSFQQD+pp=mQ=+0mQ(Y_&_b8OLq@x>mROkm@q|c-v?}9B{Nc zxi*~cVc{BSRe8T}S3ci0s9vIdOubO?j8?|cz12OHW$)FcdVBHZ+El(~QLcGcIp;lC zI$zX$(qQaR?ed|vvRcCj?TM$eP3|yLiHNhr{JUCO_s+I?m&M=CaI17Ze!oe-4!4@}G++U5`gtII-D;US8!-J(sZVI!5*lyXjk9=>d)o;IjsL9%246al0NHE3 z=?`|3*G94>LS1Ot_N>JsmuugQH?>hCwr$PzqZZzB-9I)#LJef71CxJSwZyE$aKuEd z9-VUKD(+=S%Y2sY*_${CJEKpfZeVj~Pgf+)%YF~BN*@m|7MoIhh5fn&rhvN2^ht*J zV*}aWMei^IF@82CiheCGbOU9KGi68&vx<7E(6_&0(fFn)D)3KqK75k~Ex-joB_AZjO_s~G7Jp?c{TK4wsc=HQ+fhza*0xc$}8-Fq;y~S zX7m~A(Wm7@Izt983#wh%!kE^-*whr&AClG!FHx5yw|B>m6`&L--<>9{aVZLdx9cSgaXh77VrT{RDhfy zRQd721A!E6AOL+@1HaWT!j<6aL_VE}W*-fNa_YXTBu4u~K1PuNnay*hPWrDvfPDJZ zlaeA>6;rkrL$&VZQrd%`OqS1BA?;K~`FAFEaB4?S(i%$l41zu-tfcm=87gm$$p@BT z;onxYpd~5lvFBzZN&}`OtUQD`1ChRX2*PgV;as!{sSu}uK-=)Fc`V#OjefD<5D6_N zhBjIvq9rS_ks_EEWXO23i*VqILC%&UW?cyejWg&}^bPJApFy*MPLRuZrZCZxqp=n+ zXo(4G>TZ=zTHH-VbF^tL{rpZwqq*nbN$HVW&rq8#}5K85*TRoEsgg66TZr1Bhti<}w90E8b6q5dPv_fp>Gm>Pe2aCsENJaHPU- z6cej$;L(XX`c;TJ$`jg==m2qh$#TMt7WSJ&C1$cgVp!&q+sgD0jYaIb==m>^)t1{*ko55)cG9K^z(S43yab2I-E>M5$&J#lroSNGuq7<1K!u zb4u%m0H{*Prrb=RcL70F2Nwhl`^Xb&jywZ@{sJcd7T)|W&>oX=6gWSwU*R&Kd+?C% zpnbfE#tMXGh-13E5>w0-99Uu8h7PFU*XaqxubO(ZGM>m0ETt!f5+;MDsEsA#%AyS_ zQ)rxkY(!Jkx*&?^YcTx^4p!2PwF)!OA{(uF!aqYs$;{|nDYXkJ%5|-tcHbnbib435ek;og%?Y_3ar^(8X{0-Vj6IdX8VTAm$ zQ_cn!GxzXGnuV>#M!6HDEi%HDwdN?hKk!!qOg@^AEIo@4IGUt(F<|)W+)2fzLhnHst`!+x6XtMoeJs2QiQ4zg!FIW4yfuutK$r! z>sdk)BDr%GBjN&Umq6ZW$gG8Kg6P?iY$Zp07P2BMbhD7^BCi+^iefD+-}H$K{BVQ? z#1Eq7U%-5(D8?Koc1#5tSLFsFT-fyZ6|70U)-Vtqdjy-O=3ny(=uJGctsVGc6(WF& zVfuH~OL9wHi(CO2T59LnqM494ZiD3m6n&6QETTUdAjNInlt1<2d|WbLBo#A035T%X zp{)2NFFDV?t60B^?Jb>Kl@0X(;NgLVr!R(UWZkeM@MQ$#+hi_ZdTZzwIv^_Dc!fD< z&3+^$z9@r;C6`pOP;Z~aGq>EO*(YoYoie6L+n9^eDq&q1g`r2ZGu+{6+-ENUl3{fL zU(d5wh;CNj;dQRJw^{;o{gc=JoFaW*uP<*lrVMWH*KP4@0$lIo(_<7L{@3Nd$MU`} z19v#=zK(&E^%MME&wJ*v7ZP2F-@C0IAMO~>K1UGtx;!l!zWldCwcQi2ybryh>rEe@ z>;#=p_W(Z6$IoT+GlCCWquT;N+vJIeb2fltRs(7Vw-4?nTt3lXLRle$!rOJ zVHI4q3yN80EO-SqAxyk=!94ShyXJHDE@FNaF2i!m4!G#GCVzfblZW~OT%X>Hzy8$B zch|&qHgh5*`j9tZg!vRMK4q!R6G!OfpV+#3zmVvejGaR4-mgpd&r;d;HruRm8BQ0U z$C$G7wjXF3q=X=N9T)0asc+0IG?t?^tJrHs{sXIClu0SWE7p_lXDpv9eP?K1V`ZFk zTeL)GX;L#reEoP@LmRIGBz=glHK`l#A*gQ@>F(QRz|gczfnG){i9GnQLTQSMF&v zqYPVWJ<3h$4Zh9U4roD^%g8Y+9Eld0JIN3*hsoV!h4|z*Lz^c)Qwfo(VU@tDJ%vi= zdTD8yU^l0oKTH<9VP?)_V45|Zy_zUH+Sw;vvyR z?ycz|>OuEZlQM2fn*J+C`IF#(JH1-6drZtK>9__%lt~=k&w^7r{K3U$A$^1U7F!jcoOP zbD_S${qJ`}=IS+y@ne(N`NNl^rV!nMqX6g(9UT58PuuMiA`V^qM3gLxDym=F{o}1# zz|gp)Eu)DVhKB|R<*>zm+;sndz!{c{YM&wsnRv!B8~Si6(t?>P*_T2Fp=3RY8{x0Jy6QvG3UC3cU;hm{ydq|qY%sZk3WreAIitZ+ z4+rbkNtFf%l`1*UdNGnZ>pg&gNRwd|?>zvMjV4i+Zc7Zo2tRfa=&BhG4Yk=VUV@Gk zbTbFQjqBWu_A-92;DQlP2XNB_r~;Av_ zB{GImx-F36{a2+Xe`_Igq|A*APQPlVZDn&Io83)hiU%sYo|_BiOLgA@GF(HX0ZyD0 zjRNu8My8?bZ!_LmdlLfw#{d@0krBJ2W53R@4iHSJ0F4x=Y-H(5!cWSn2}y3z3rViG zY!1+?XgA9$wj!U)KI0<5xNFj0|6h>IkxTaW)(RTdUU!sO`v5=BbNH@0y;iof5#|a6 z$@#jzfx6G=i6%F-1+>Fg%28@bOw3_tIjyt#sG>>Fh(_br0F;!SHh_Osm-})L+urit z{Wpe#at?if-IN8m2lWF8l6g<_5P5c#@~t`~r>myySm|I`Dz!_zL?>BCz!DlCtCu-q zd!Hd~pgC^WPweR`8V^~ugGHWC#w7IxmxnxN=a3QaKrtEc#QXPkbseuBARySEvncfcuAr1FP*`w4r>2(&s%mnzlh#I{}6wcDoGmFL$L=dqf5`g*cFc^IRMv2s6P4xAT>IPBsP zRPbUxtRDiZ0eb+EitN3DPeI-MJD`QOD&&YT(Q8ZBL#k3F-u9=QA$qC zLU-xSSr#mzXuM6xG9nu#u|QGOl*Wl=_8gkbh>;UNAwRxl4^u&fHX-cTDloljpirWN zT+lvYkpnCfeujFqbW#%#9|Xceny^xr3<6Ji>wkgISw>l9Au>j z{UlrjEn0F=SPB6X3NBKRq*g^n>O|5~AW}KE?}_=Jc>darfd-x$wtr#DGvHe4KHR z2!iFK@Etjx1Ec~Z9`R(7&Gl$+=eM9H1T(xhnV+Dcf+~<%lobiZCaQrgd4B1Zgbohy z10QKg@v?^l%+&aXW&Ml zs}M`_F8`6hbWf3G?#~yF&zH99t`nP^t!mq9IRDH<&E9Qc|tU>v8EiJ(cO;m)A{ zeKcGF;oiwE*|5%*B8(4<`I(q-Pe@h?KzjbEjdj$bt_#AikN`*n6Vy#t z?B}owPTv4&w92kGxf(vmO?OCBZtsmFYO60TU}jH-{3n1DVvPyTYz#N)%9jW$*dk>( zhP0FeOblzxF^Z+5*6R`Q(BgOID8PS|4moH3;x`s=gg+c?If!U^g@M%86j^qj&l8Q> zo8o#47#B@oT0)CA+^J%CRcCRS=_NkR5(jxXeF66G0) zw5yg-er>4j-@Om>>fE#UG)Bl)YH*ArTRHtb7#QZbuzQy@Un` z5Y%TqjgO2LHZ{AmiHRTRFUH{waZB#5;u5nzNsFx!DdQ9$2(rCy$cqe{T+72I7U;_! z?zap>Me}4N5Fla~MFrOtu%+m?BsHsPRexZd(C@BQNF{nKqW9qL)k|7CXPY}~09_Eq zi@U$W$I4F+LZe|8)gQ>A9MJdcwTFKRAhJozHQp0kN~rRS=e5xWNfn}hB3mrtKDkzu zhi}=t`2>s%fdLKEA~R69!+)s1-&QCih_@PR&Z)0e#Q3)Kv_H=xVg_0@A@O=rjr^(_es$6Ou*9MJ+>1y7WUy<}UAdm~+@Y0Mml$ z1lXpxd2}Q&qIUyQ0UXLdf>7uK*OCyJ$rxTRe~*X2FqbmdDbasy?iH3ZqG&J3j9h6P zjs>nsJW{3fWE&XgXNCxKT;8S~cOp7i7DN?DI~*$wL4${{DKTBP_TP>*Gxr#00-kWb zVrHm?ld#nLGthzW3>)4YmrQ*Dz;QFN?+-YMt9VeA`EY`T3xUtyZ$kSdLDHLyC{+XF z%uzOQuf3rz6=Ur1p%CfS+ahA--ha0*z?Oc_F3E>0pcgBk^R>thu!K~M^#c=`*pMUI z(*gJh6_PA;N?Ox@Bw4zu7j(RcR)`Q5^l2&R(XyoNkL+mgJUNj4iMs}S035&9x zDE)k+0i0vSlq$S-BQ2(?_bhCiaS-{ae2dwWK73BzKcyS zRJH(VBBn=ldvoi`x|s-VsVBibX8XS$9VhX(kOr0X*svkq}a|t9DHSDhLuXeo1(_X}ZpilN{U~W&x80J~nuC zBG_j)4eC6gu8>n4*A0U}<=}|#Uf=~)`k?-DrKZ-o3sy|$UEpV1t>}p04Cun@U90)G0p~-XaaQ@1WutJ1 zJK`K($pVu}z+J4lXas*M{k3|I{t$$p>EIJwq3VrI4E{54DT~dDbat#ti>xQYIF7Sm zE5U}}EXWpdHqe690-Q1SnV~Q$P@7<3rov!5xJ@!E;9$lPQXsX6DPB16=w>9&_b+?&-=Gg;?lr3 zg!O6Ts{r4}FQJiwl!93OMRDvk5~I*kffWU_ov(P1(`of(0gUZk1505joUMY9q{sF< zKc&ki40Sq)Ce&BqRG6^Xm+Jf53p5B!guY6(OaccLG5vIQY?9?#yT0O+^((=8$$nC| zUr9GsHhA@wz>+;<2n-5M2U^Nbd9H#u7Fk#gkT7lGQ&I$1mYn;HN-t}snjEUvY43#x2-;7)7FoGmAw#ms< zlx_h`3qxVPLP0eePwh4L8NQLO=Kv7g13A&vxUh0(I|&hMfS*k2XbK@-X%Ef8U9 z0C++6i`tSMWqLk5=l;O6Qh43V0ewXD!GxQMHpux_1`5oE&rKo-aBq1+3CvaoohRSy z&xtzEJ6n92p-ZZTVc+zS5 z9N<#Mda)VnF=Tc;zi2Yq(SKssFg2Z-e{H4iH|LqQT8nbdeql5`e30|%Ud~2w<4NGf z2-n^&cEopCb(Gkbu`<=o6IpDIEz29At92Rqai~ZHru zz1(yQcLgV2x7lF5R|@t#4F^F7cmf+{F2-$dM~4Fo0{1O-EIoWlz@Q@VbsP?-c9+VT zZoj)(B^D-+z{hNHyGoOvlIt?JnXh|}MPpT0%cS?_Z8^T$uk>pBI=t~m3f0@b>k{i^ zH0+b!EPHuaA5Pcv{@BRwBagUV|9qXgqz1HHu@8NnN3tiYw`P)G9fz1lED%@?Q|0r^WgJmnVJ*f(3TnclRr-TlHAh&F{n7C;HY-?Wauc_PZ@+ zi1l;z27at`^*S$6lCdVhfh+&>X7e*D7Yv`Gd!@Jgqfx;_c&Ym7-b`jrr?Rmx{s5wT(0X9f456%ae}?k-a%_*d#uPdQt_o0O4jSuRT}-3?B{83WMsMg*G?%2 zLA1MWD)&=4)H?xJyNmGX`06%l=VQA4@hNxC$IV;PtG)+1`o=K;^UqRaVN2`&X(-!q z=5x2+XU{qyo9S#aJihlB0C;$7y1Pg?D#q>pHo0Es&Ya$OzWaD&HY3P++x$xac+?vI zVuq=^?rgKac-Uw=zpgrMJx^La$N%2zD!-Rb=g;(c$S5$^lDEbA9PVFFbiI9!iT1s} zYiw@bay*=f)rtZr=H*;`H4kd5ZGNV0-FhfX+svgn>tT8x=jdO(Uk4Uv&-X7%*U2Zy zs}gXwUH{N~d>+&;S6w)oP}ll$J`SHEOVNSsnceSu-CF2V98BlY#noho)7b#uyDt4E zJh#po=WBaF=WV>H`=#$O`2aD1quxTFX@-d=jpH`<8V*4FHeMW?#c|EUId;Fh)pm{S zJ&AX`y|MKh-j@I7+%l*7%`UQjjo0S4>$`uuch$T#+4i84(zWlf zxypPQ_zv*R-e|lcvXpvB*uV6u+J2n7JpyQbTL6a1AwqNhJX94|vA82*co-Zh^3^KQ1@iu$y+I$Ei6l1_`m6cBB=v!QUWmzvR4XJiq+% z_i9={B3Q~j*KoV5qBw#z4~G1}DQyjN9;jXOG6O`vU-@suA`G_}91>gUZ-0p1;v@R> z927Hl_kWF|qc|}Tk;l&oBQ@rnRGrMBs+P~7)IxvMyNNPXJgA5e3zAk*CZL0MMYL3i zgWn)*m5ru<*^AZapUorRLQ}>?hzO%S$+r>W)M!vqCkl|nRL18a_U`JZH5THk2qo~P zssI`g75%13W_?QJfPzlemW2rrE~X=DxkS z#(E|(%-u$MhI*!Y#=iX>gB|^urgRJdqb{>9!z!lbv~NQ@$RGjeL;)Cy5i|}WeZWre zuRIA%%0$S2Lct286R2iTtU{Fx+9eofkoTa9H&8G^WODM_k8cen0J(w(|6HSlNC?lFk z*BeOJB{PG#;>p92MVZ{mx#c!{UvG+hb6vAIMp-q@iZ5q=Ngf+IbT9wWZ6_10!P06f z>e&Ii!nOep0oALo5>~tLyw+PwDLedyD_FJ0h$>;muLo3IA z4@1%74qHZt@Ks`Q+N#lO1JBR>AFj?RxDqDX!m({lY)ot?GqG*kc5-5CV%xTD+qP|- zB=@iTc5hX`c2)0}?&`hQ`W6D6I&BIz*j*N@>tV3n5+<#WU%h|iak^2vMK;=lR{0U* z8S949_(k}X<*|t5EJJdDGW})9)|3*rJtm!LfYpC8t$d3&b62`lLCvx-;*{SSBMExy znieJ}OXfj#NlkzUo4zH6?jlC8JTKAO6uJHOgC@JA{t5jWt}L%@CfX5O?Zt|DkcNe{ zS`2^qEX`lq9rYSTEnW30b|47J6(LmUY z@Ts}BEgb&TdsSF}m`i1to*$cKU|O7F(~C}CK12F?S*8FebStJF90H>@$}RcLXH?}* zj;3rK0$B&U!te*4 zc9-u4S!XST4jYTBiwgdf+Frh{bE~k%HAd*hcFYEWfJ8o+~wFSJ}T`= zaeQTBpM81Fr{E!NnEDfpxKL9XNE6cFnbQip3*`XqxZcf~%h_|JA%}MhE!J#3n8#$J zb$Q>U$i*|0dX+J2vHXZw#9!<@PBCmM%(dLB!KAOOM>7Ih;Hbs_+Wqe|%a@aRe$m!vR3hLP(!MI5Pz*hWff z)%%C6hLqhh#p;LHAW3W$EHsI_#SPXk%^iDD3AfXflB8V*z2~PG=h2DhQeq(ToMM;) z&a7n66zi`wUv|1o#N`6y6hkP2Ls9uFG=FUrhlx>5iL4|ava*hfHCk~Jkb|T=P>=wU zq3tRx^s?lGQiSB?$&}4f1AGy%e41A)Ql2egJLNRn^_y9_l4>fu*w|2=YtPO!n@Q;UBT>O$GZ z>B{5sAd8d;=Q4=XH7rTZsW*~@j7R`RViE#&Wb5EuHxMyJ5-=d6sj46ZPN1!zdmM~= zY9L!$;9DPteU*O52J7%#2|y|37XnCrl6aNyA=0CJE@p9?rjAf; zn8bfLu;b)8q^NWFnw0*X%fs8CZMc(x;7Vaq|f3fsz4y!O&8&w~Rm?GM#dW6{3jWTd@ zTVl;u;qh#a3kXSGnd$*@&R_jr_|>4o&}lZroSu8ZwoO=E*_uR=Z1Se3l*83c*M?)1 zB5zy~!jP-|kmp#Ok6=xm6efT|-Y=z;I|cEaF(#Zy{R~nc7^{l~huZ}ozAU7WLxp;* ze2PC}LQQ%KL$*r@R*Zv?YeLgt?h`J&f8Vgez*EWVNMyha*ToD!Frb-(!{3rwVe9d| zmV7(KE7llplZJ29&@>qAx@g?q=SKV-mD3L3f;wa7Jd)dYj#6hpSvmlxV3n+V)!|tY zw`i?zb0rym*vqLUTqPLyw66Uo>lTfL`A&Aiy5nXqS&A%V0!_tSxLJV>cG@mwv~h;N2oeC62x~M>7HZ{~^nZSB zSnw(-!bBT!Y=FLq?$Hurw?2~BMa|s1rT7}O%4iXP;-o!&s5^n>nn+zWQc3ZF<&^Byv9niwB2I!?I+%oKERye;B0|`7P z2a1Bku#%A3(IZSMZlETG8qX!r1rlP-XZ(i=Vd{3i)(i@}nFPi8Hyw%U250DFK`}`J zyiLqIM*3$*g1JD4v%0qH>>QPPEDOI%FIAghJCe8orv)4G;#2$57U;6#_aigfO0!u6z5z4v|9 ziKW6uKa=!zrq94KjFJf1bm-L44Ng!bs6XKsF>+;(moV)EHIzKEUR-3rva-mr8GcOl(IMZMm!%sQf{ zFiZY;>~v~`$nSm%*@b|k)gZ<8SqOgG1TPMK@09$cLgVHxRPMj+RRuJr%qR86&ckIr z%Lsy%CJwK`m?w(&M!oMI^o!W4mdKwA#C>xBM&kM-Sijx4c=>p~ax}oBOK_kx=_hv2 z$B*sAlyf`NiKNiQl)nt){3g)pj{6f|)?&TRqDv`1`JX_|r0d8?y%$m3N=Sjof2L z?B866x4p-U$G4`lxS{nWf&*8H2w{Unj9O2z{x!GygnoYaI=lV7l(Ocx9=?Mi*n-#S zQu5N{X~xKe{P!Je54hN$OCO_$n3(^LkZAw@dfM|M$k^ld6jM41K5wrl z>2uKWc2=AFHWDzJ^PNcZKA>;+HDur8)!QrZ^Rm8A)Ybd4^Vz#}SINph7{>_cTKN9^ z@O;rm&Ue3coP1V7##sHcaW4I%sMqnmb04+(Q}8OYO+>_t;gKl#)0(==_5STn)ZX-v zxvl;Ew9)4dSa3h1`gtyUZ+s8ydE5cidVf{7-}WwiZ>h)n38>=;RhF3%FdhG+!m(J-TRxYDfj1Io? z4$2cob(4HuMG5BkmflT}fg}6UJ*MaWJeKx66++*9GQ2viV#hikCiDH5K4nAbRCVIw zM)Wk*(7L+w?d8og;_~8KR=OjA#Oxo?)V zT3sXR`H^tit4+*rJt+a|Rl*xua}0Q|D~1X_TC-{BzT3T^>Y6)CIm+?OhgG`ca8LT!$Ew?+Z%8wZlB$%p)1@9X?<-dDHMZU$J`4 zoMN7Vsya)jcqN9@+j9`rlG@d-R=zVZX~`61wTuqQaqTOLv(|toy>04gWcf@iUHik~ z1|-(5e`k%sMXoq_jZsz)&{PN9*?sgkwr}!pa38E661@>XuwcyWVd`D(e(F6Y zP!{+L$Pe@df=dHMf$nd&_m^)(cY+7GhrRu^2a|7?Z<0Wa9{=3_StI;jf5rppx5+nd z;M0%yIoAyU^#6V+Zyi@!QU8l-;)6+b{D8tv^?^iyN#%2gf&-LfRV5#j%Vto{YZ6H4vI;75rLnAP;ZIylw#LyvBH{3+O}QzGXUUGgi3bFo5xz zA%S@T5Bv)BO*&s0626t*+QL=4Pupu}L zUx%2p8JjY`XbMchC!`!#bxG6F9BO8I3PRnq`H`Go;WLgeE)Wzo=uv??t!E&AMus=MBw&Yz7e8jAX^cru;25TCs$>c(f zHREr+?*S-xAD*e6w*Sr&+wO-p(r(mSds8@Pbg5@}CYxWXO63qx`;gXUEA}Hro91b~ zPhXgI{U`Aya%H^&aFvm9oGY_8RzeNSP~||SOyRQ1qoh=IM390^(sW!9f~9mmK){$B zGVy~-muuI;#HR4p*Fkv%vEhUWD4K+4>WPnIR0BYkOMsW7JfaXp1#0YRfQ`xuS0FyZ zBvJ^Q32Q@Lrw}_MKH?;r1_)_|;L^nw!!I$(Gim;c*lRSUY`4ojKXXjE85`WaqH6d; zclebD&gRN!{F@n)npO`CWq8ux@_3nQWsd4b{UP$8(Vv^$ozMZ?Kl!xepcOq7Sd02MR z0wsL5suB~>Uj6S_FQz$ALTs=nZYul*SH5i2hx1dwa7#ReK1RW_O}af(T_UG5h!EgZ z>!eLEQ5|`xYnny;Fc2_1QlFz|SY_uoDVhepx+SViRJ*)-BUv2}>D!`h(|_tC2k#O( zvq+&es~@2F>o)%zGuQQcnb8%|FH6@WSDP>K_E`<3Ul8moKu^$JWxFq>-l7VpHRiw6 zs~Gk}(L?k@8a8&>y1@VeF`!IU z^oF7VXjnVouey#n2_L`>C`teR!%shH4Vplq94`c#AR(2M0zoaY6oqA}*eb76@X*?M@ZfvAR(0l6mNlnM zcBxUAOevkVQm*OR8dW=V97xm6F5GtxW&nY*w7|+q7f~?~s^d z$)-??UHaLjSSyDbV_M6(UZHZ;M-~0S+U)U9dm0@aMT}RzhPE1=`lY3j{y$bKI0{x> z07L4f3DzM94SS>I@8PH~9p!hM%YyTeg+J@klx&&HR_zxQIemZHd6LUZxl3Ft6e=;L z-k(&sSE(~5uc1>{m8cK7cZ?E0OQ)=Mj#AzXBuf;l80}S@?nE;_{RvbUj;1oQI4|k) zIz4`O`&&2fW{b9h>8JJibtmN1Bx_Nz0*VQeBCn5=5p@0?R&+htYjy_^r?ra>%PRzF zldevAMQJjaNxhdy6qPqNW;b$+aJh$FhfBHQ#R^SD{@qOcjptYlrn%q`X~td_hbz z-Y#hbKZLZk?Sw9=gmqZN4tJMCrtwj)DpNJ#@@kC2c|=?U)q_Ks`lKP8DtqFm$O&i?-3MT#qvcodx=&ezIZI{60&W$dd|m4M^)lPvC? zu_!wQ`cu;?)mNH4C}H}^sr3%cihhOZY6{&+HF!*NHyYO1DrR%+F9qv#meP^w3LV;2 z-)ASDAhTs2B!G}`_Y@t6(9eRAJ!D*Yb{_c#jqSrE+(YMOH`xJs--}048lvE4b2r@r zrY7?|wP`zR$(GkxjS& zH_Xw%y3aXXux^$ET2A3DOigDZH$|^W56aZ?lio-MJXkTT&pj|F*`uDFt~&JaqX~H0 z?jtMx_Wn*c=^6SASJpi%26k*$wt@}DC^t{O2&b7RkBuL!*TjqZ9{_z7uLi1Q^HRwR zVnx=-+2RtAE(V2qGu=x*Ih0p+y?5iT_TQ$eEFSo5JiRJ? ziSUz_YRAH2yf=Q-)qH4+xOEi^5V`AI|22oL_F}$YA|X9=+b9?R#?X5(uYU6JpmfD*)jH6Ah~%^ zpNW)+;uU)T8?cv!*Ssc*kzW_CpzR^I%uqrmVWq;KXH8=dm*mu0BbnPb6x8sPK1?{m zO~hO@n_OQue_{)dSFcExbi|ECN%(W3vL^9YR16`-*55Q968Wy0VeLN=%^EB>uih(? zQe=p)BGf16z(roRG}dPDU{w*c!vMz&X(AIDn^nDdA7HtEHs2A$$(S`w?O!mt+`pzZ zEQeZ-1d@q%t|Q8g16xVLbcP+n;u!5j9TffvT^62FB<(9jZI6V;d=~0dO{$?<$LRH} zhXkicF)A{nh;pn=IQ_q26f0ObgrTq|(t)%=ETmW*B92jiiA}4?D8!Vyj>3r{Yzyl) zG|`IaEdlUaHoRj*d(a>P!eO@f`+89g%q>V28w@Lu)txR8mH}luBd+;tYe-q&!k_hi zB(U^YWNb7PfKpN& zCw>~kc#@H97)-P{8IhbUS>eF2+=XPlF~HO{s{qhouVAe_d7H&VQ}|*NFcAZ{#cE*U z@1ODA9=ky(=kTW!$c0d2d)-WLhMCkutmVi#BKjuQ^exDE2&zWb;4W77eh38&ExG?? zeP4lNv4(>*U1D{}_Y7EmKq3OUK{7z+s;F3-Q8ZD|NLn<&RCR~I&5y5g z!2s=!^LunnL{Fj7l(urO8a61WgMg9-S;7c@lX`H4q(HgtJEA2m7Yh3NFoqPc7nC}D zgrE4nPGT_{oqh2jvd^Yq7=SgJWy9rH7V!} zPvVk{YlSE5r)&=}WHj0bfUx4+j3|XX2dM2coN;jx9y;Q^c&?d&pCTv$tT~dZ721Z4 z;!qj;#AyH`S?M_PcNxW#5ixh0G=Ek@u)7-euAA1V?+XrEXxpyxxKjRDlAJq+3Nx@H zkP%UtZ^kk3t-t#Y%MDa5VtEH19A1o4Pb#l*o7Pjk%kha}k~}&|$M&I48&AkB0knpU zxEEVDgPAup$O8F*!MUOloz>sZA$=swi zE5xBKdes+zXHaqEl}CWe5}m6UG5?IWp~2&lW$Xh)IM586bfWm9fIDLKk&l~wKNxb! zVl+0T%5YnYeKG58D7vEs#%6tZ08CRBq&8_C63sr|z9>-tV~|lDUDqV3*`g8geWJgB zrZot?Ll-eD=`XH|BGwo4vH4|@Vxz8 zkZou9vF*;}fIOa){cYad0S2m4V5M?i`2m+V`N}Ukpuih8T7jDLW_2!zuO>(!@(ja@Wa$#0u+}2ROuelg+@>c_( zL3}-qZKL*F4iEI#V=WX9sEY`Zgu#|%S;M}5lraY_?K2VXc>!klMpd>61OckH zh^K^TPV|UHwhcjSYU4M4(;D|seK;5|in43@wMHd_fTrU^m)1|Z zE(c4}(C*bYoWAD@!h+>}fZOu!6vDci=adnnkQJiu8P}~SqlmU3;Ta$J8DE-#-oQ6o zlYp4kIg&>@9D7YxJW1+_kz3#;46f?hBi!%t>v#?$&pu9Y0BWIFr;TT9IXy}Js4e}A zJR0)uoTieIe4f40DZx|Lg<4J$=JwpD>CP0iXgOWJa7@XAvKym->8nv^E~5^E^OF0! zD$S-DKdyRCfxn>XDV5VBUuu4%a0Gu07E;Kp=>ECgar!65415TcZ3tDb(!Og4*cM!F z1l?@HfO#r4fX|XnM*9j1L(hMpo{)m<)#$wKnyDd-xdFP}+Wvtq_F>xfzc{4uPQxht z*0o9$chrLhekr5_Cw(mU%gUkSlyL85EOR3R|2FBh+&ny(b?`N7t~b!n`r+R}CuJ@oPFWJfAGH2)}yDN@L7q$kq$4aV6ul=_#N^o(W= zAHYu_0Vb~O1_0zo&tpVyCsff3FPl{+)xd|pcPrjWnh>^F!i(9n9E?Q1hU=LsWs0U^ zJ7jdM7V?KugSl!Y6e}p#ylD?kt+I~`V!wMJ!~V!nZBNG>LKgAC%X@`MzrQG#DII^y|21CB6HZKHLD-b$lP z8ESd=hf{|Ws5+u8U= z4R_`W%Szk>@SO1YRDAJo!?MpmcyXL!0mLnwdEud1nRVGt`>L1VS#KP)uPH`<3UR!$ zBh-ERpvJ$RWM6f4h_Jlv&r_Y_Q~!M}4!&N+X?q-hKD}eR`4WX~9spB-0dE3WxgEl% z#us4+%CGEnaMmZN9h=(|UC~B$lUgPD@Ck)2=qY|;ce#0603PbN zrOLu5@YVcsxSR)FfAM+~dd3v;Ju}c&gZH`&2)}grTlaZJYzGi&$Np*~K**cz^u8^2 zT_`5T18FM<71b=>_o>tJZ}$bB`%~uyrAL1cRt{!| zd?j!46k6w$=c*z1Kn5^c7u)GUlL-5criv;=2HFjH>w3=Pt1t8G4Hp}j zG^sw@VZ?Uw;5_nI@F>vv_ZkM%ygb|vtA=@qtxF9}DllO(Y_{E_@^`l@0DH@!zwxyn z>DCG~arbwph1xDQ+31P7F2|PBeyazT^ErDUw0XH4zcXRyh*@w~B3Oywh9D`hSG8~G zr_5h+$E->etXHxx7#Tjz#I8>YR%29)&VbV5oo9|(I2QxuWebbN9#*@k>)t@E@B;X7>n z${O~aFvm$UbH2w2_faMO#23&@d}mBJ{{sUkQYgg%66wJ=+P@;+a{qRRbkjAt<&68? z>Gv$ZY5H=bU&}Gly}J7aetvtC^?kBy-}zl@54;)u`P|yf1~k_LJ_H3nhr@EbW!1lr zsqDW`;sksS=X$%{_j5m9 z_YY`5i!*iaG%p$8XP*f0W)5h#eZl|C#px|g9sSu~4cpDV;F*7~tjUf2Ihwh8<-Y}d z%o4c(X9nGGx}Lq3SY~a3Z8=w2M}t5+gmRNTrRzh}SWr(vgq zPJr>0-~PL&B^oNX(u|T_mu&mf&wsF)pP%8R>nKcBf>FTic6a9_c8d?GuDUXsY%hwt zTI=>g6N|L2u5Jt=Mv&vpl;-VLSh}Iv4dNubE4;cQMs@s|q;x;DRB)gI{go_Z!I1g~ zZJkn47-#oGc5nNyb4Crkw?6xx(@)-A)>8s88dnXPWl{o`COGJjFOkeT^)++8TNq;z zJsfu9^d7)w^l>m}aBEBso_@*b0AZnc2~}m~!0$wDG`9>d4IE}d^)VeD>KiM_A z3t5rDCH#<~BP7`T`PKBUt4_5H&&?2leTu|QG8?9D$bIfbUTKe&C05yN&yJ8{v0F5( zOix0zj~IdBsmxAhspN`eRpG8VJJFLgOyemaWU)v4&esMPRQ z=sBO7j#HlMRG)Q!k#ET9+-n9TejwV4%WXA{bes*jvAfW@al?X7{$Ba2F!%IYD_2)O zXZQwKpEtYABR4cI#?eFd#2xy+I?OSj?)xlbakE*YONyjU4>KiGAx7-^Rs7sq+CXH?8X z8|yqF6Y2;%I|}d)yH-c8|NOgtXUVQ=$U6jBX)-WUt_unyegvd+0;4`|+sU$Ke!rQ> z470fy@^mnRv)(hA86we7i82z7S|J!9hTg$(9ICF}wgu?l!ne)D{F)ndtf})gTw_;1NEV6ZvNk_rEaVD zfD97^WQ;P^Fb;|mpzVXdoWAODboS@PafFZ?8$CgCgdD|?MJ&_<4Q(XFmV$(Qq#aGf zWF2oa(o{0~DA+-^4GN50M+(=D9m7I86>Y+;bJK29=v-jYcdPVD;8yg-aQF2mn;UPk z37GQcUU2Jk`uV+ktz&-Fr(sXtaDK6O*Vhf+{GdaQ_7x`qAXl<{+=|FbomQn?7qP6U zO4(wa_c3h1s&#H?K7K6j;#H+?e=k%2y_!+#G+eQXb~e2VH+=D+#m%coecaV3d%TXr zGc3})!lFNZYGv1=Q?9x^aph8_l$HBCsbZ2&uU!Oe`FPQe!J9`t%RRMSk6As#PKr_+ zd~MvxvVtiaz;*2vQr_5*noaBN+^*GhGTk{@+VzmdgpQ0cCgn5pTml|+U!m|ph3XWdCOfF?VB!do% z7mHQZ9K0xrYUV+y9qK2(tgMfm$Vfs9DUEg@Iw21ZP?}NM+;G~02BSHy)-4$d^`~}& zz=R?Wn3dk2w?my=E$0;?#US=&WJs!37D=L(YKiLC-b`?jzg%cZK#xV~+$_>w1ZfDP zqu8C2L8T;vH{Fa|>r=u$=Avd&!+k3^CC`Z56nSikX{$+bO43|yTI-*161l#(tYjS& zLo50ZFb-DWNVi_#y}?ic!>pE5t5`NQ?1K7dm@bPl(A%z=?^d>BePcbclRl3|f>r|F zkIH;&T(gYRcmU&p4$GRvNQ116Z5yu(hVp6Vns@Vvk9L*z=sdDrq@0OUQ2o{&?uxz* zbo9AmPEH2HIk8a%jZ;6hss{egj~TT>dCTk(ph8n7*=D8^v&1Q}%uJ#_LT9;H!IW0G zd5j*Ffvlq4Ihpj}E`_Aub2W<0Wi~s9@uUkA1252@xi;Rta{hfo1)yDb)1cwPU3Jl- zBOu=dVF#~rF|5I%OD}&EIjwwb)U%f0{`e?dvz2zL1Y@V&lVxkbnCW~Xg@dYxYtT zvQoluZb-|l?YQ*n>5MmYROF+?_9ajFeY!1SavZgG*d%c`EB?vZMDq8sxg<6Qb=YE& zvCqf?ih(F!|UU z+|?jjPM-W$)o@P=X>kmzDh(z0ivPKO<#n))0AKy-0S_wz7yXF?KkRTCHfN&}ORlU= zo`13MF6iD=e59^Pyl`F+jrANezuvt?y3{y8UhJLC2O>L_70~T|(9bX3Hy7(zyH>rF z8B;2_i$l7Zs~nyt{8WB-GIgQ-=U}%L#%F$#5t}R<^hy*kN=uIh-B?=A)={p3A6Jd9 z;(^Vk4x+*+`S%FBZOM}TGw^niW@=fOq0l0ME2`Mc?uILWvqisFAD1@uVv<#iZ2>{aCAic$7+&$(}$m z91N|38;NfJFriwBLtycQ?Bb(-<^K5P6eLmYPf6vb*I8S@X)oi=XT3q;T*u<7+xBQ} z&#ab> zkAfw1CF09P46A23{t*xK%%513v~i#W&uKZwvjjw*hr6=M4ilH-mrYhV3+bOWX6E<8 z9(iTf27PzT&8ZqxRpN^*+mQ(4Y#2PoplspbZCD`jbVxeC*9z?b8g_X~>tclewS<$V z3rLH2vR1ilZUr~sYPExbG};|g=59*`)-{ZuWRkRTH#KlKJz)BK2PaPlBoi7Qo8@jp z9cSkIL`^3u$Vr(FB}hGxKcG4ef&GnX8Hu*H?SWL%#VUb@C~vkTf=5#!Yc=Vc4A6P1r~H*^fY zQ9GL>r~_;49M) zYnVNuAuh%%S;@1484`Zp=qHyy50dmVx2jsk5vP~y5_e|-9F`=iWe36LZlgBV@WP@~ zTD(54XDdeiz;xdu*~XXT zefpXux*M!>+=jV-?L(Y#?oYe2mCXuKkh*1d1&$SxX!u!M)i*MC+6URhyS?l@zX(TyD$!rJ8VPaR$^{q!z{>buR>prj|>@BK?o_wK~k#!&uTATWHfY$8xpgm{I9&!h*K#bmwzsw z{_1%hrag*&%lNU|!QDPBq6^Ij zOW448p|Y?~aN}%QaesM!u9DdW>>`hdCgZ?r90{`X+3+aB$^~M7=HQijuN*LC4qXOS zw*JK-7>Y*#Z|z23weHEqPHW}1W&SGchi&!Z{~t>D+e4$#@rZg$Vs7h)_CO`Nr+AiC1s?Z##RLn+W&Y?06C2idNaBFh zCk}BJJR2*r1A139O+_q-3YHr*^XC`WZKE+cjKS)OC(McHo(~L=*8di}Pg#H$=^YeA ze$xl;L7C(Z%%$X_k5$0i9|BaT?i~RFU@o$kj`9W%l8e$;>hnT;v!9nTojw<}Vr0$uY)FaBRm zV<(s}Y9f15Fu+`p9F)GCSxS;zD2L?}!lQ1KH$0av9*1djPc(?Tu4!wOs*qE_w`<0ZN`izq-MQoe19y;r{%U};rcU$c@vTKmd0EPZfi6k909Qe1PzEoxnvr?=yIsDD37?+Jz{!LmhlO zVU7W^L;j-*VH?3^b{!~rCV+dv(y_>=iG1HROG_SslH2g^DUpLL%14yq<;hFWM{f1i zG|NYQ1@*+r0lcV+RF%bnmk4+w6(!h zi(VT2`Y_GSrjQisHF``Xd3S>OdLU)HUW|h|lNRvCfO`e`XqaXc-d`Yf0nm3fBYT&GWZzo6pUY$6cbD|E-Mx9)v3ZJa0!x*x2jS>2)c9f!AyJyNE4 zyxs4+TmX=l>2cv>HR6oq`}tNpAb{C=&*@M;{NwP=8uFE}fK7ygp3(3|mJ#sZ#f!O( zzYAepxX6GMZ-+V<7nH;>SIY8&EZ_}4BTrg3t3@Ue826ASm$+kdH(O8Ocih;@d_&qc z`}tn0s)8O@0^vK7htU%R=cWym&XChzaOnsKGc@u53SOnOJ`l-2|xb=qFFGbWAt3^FlZW?>M?ApO6j6Mp1k z?2-2TR;@ISvT2k=)X&|GQ<`Ib2>q-GQ!OG^dM!x#i{zT zfn`O6z?H>8Cicp4cKsf4u@x+jvo4j@eQ^Q|AuTq7w8We=#ou-GO#j4-|L8VIUP}wj zJQYx#C(8ogm=t@Jdo?lMZju^IYgi$^*MPU=eWk=L^%Hk%g zlsjf%*OEUFQ7k2(w66E*zE)K?<`2?Jm*^9T*Q^d?uPkhQYk?v80(q|@YtyksWRW&` zw}{^;<+@uFQh8w^MG-O^;`*GsN%nbg?j2IWvr&}0u^yWhmL&Si zOL=@N&imW)VIP!6^tuEJn5YzL#66Fq-a=9n0mZ}U8j)i)b}a*b^541$&Dum{8HVbp z1T7VLx*IgI19G0}S}ZEPv?i1Q0KLM_#XF}KiApD|O^)L~MI^Dg6K~*N+>69_R08EUWYc!SPgYUH4}zB1Lv8}w{cL`W#0PAX zp`>6a2l+A4Kel@!F=^@VuA&J2zxYYOu>Ur*Y81{?vj2WN@BaWoO%9>b!wb@vx@hKhc222LMt$dFOMK#f+J48O4u zS@pUVTlp+_x$WoecYFKAf69I8x${e8OiDxoLX<}oN|apmKcEMHh+#-MRp!=QB2G%C z5Az^jD0QgEBEGQ|RGeAc^iimJ>^S032J^rZ?v}>Czo4G*QGnO@0efGZ4Bp%GsXVi(lw7(hN6Fmix2ahu$mt-5JXt zs_&uuWV7S?1b{IB5IBBwvQm^rxWRV=DKpDU~Pqm ztl9`ZvuNgQ+cvV&`nVEu*w=ihpxpgs0;zQZE#4w3d zptOsV9zYVsRJO?y?9q{>Ryw(0dbZNAl6J#$`9u{WZn~O=#k>)kyf(-=TuxwbS+nNL zUK)vNgJQi5Yu_RMPx@;_MlSZBFxlFdsEi;DxBCkEab9-(+VwxGswxauDSSg5nYG2` z1JyhOHY@*3`tcpYTdiy}hqZ3*lIS#%@EgO1jsRw+=Epc%O~2p&s8?mjx7EH|_z?o2 zbBD~sYW+(fRD_>UTvNPlJ3M=LDaYj~q*c1@lnho~4tEWcP5x~kB99AR@`hp^I%ykF zB?-~I2|*#ctRen~|5_5^=R@?)2YnGHBk;%GL+OGDBY`2|0;?TVujRa1n!3Cl|>tHkQQFmvaT|i|Eq%B!=#TL)D*|K*;ozKBtz1G$PixYJwGgVsy-9~5@47c@Sj=Q)x9h6?bq6dT(`1ojgQ941az zxY+%i-}K>R>mpUK3VLc(AE9rs`rM=QTxRLE^bj zKegE@q7qGVMR*flvPcUT8A4cSD!0tJ73{nA)pWI)trriV$CO8#39(+Q9M^=_dV@uW zpZ_3Tspm{AKLnUGN}bUh3HUd2OjkK$2LGZY)h(JfLT^vFaNsUk`$PnFL>zs{FW0AT^s=2DNn|Qt?zyoiPc~zC0l};8)0#W@DSpM%hKcDcn~Au^u}w$Kb~2r3sdVzY4ZE$m=ey4i+v9M0C}3xWPt3QXd1f*6dA~~G z6qX{Db*8otqtyJ7wJ}sv7Q9jbUTMgv++uE>{z)o7K8K~@(d`ct+azA(MaW7SCz}(u zm8F;dqPKpL$o@_sAy;+Chj;T%%}#Lx!nKW-hJY^JgQ*K8$g4`+<~AQgjML|0)Qn%n3tH!u)bU`e5_hq#qu|6KdnrIR*^e>l^!vL zEyvR|hQ^SRnx3Aimy3)HxzRI0ZDAQT`8`@aMKe%2jaUn}mA19Htbo{M3{Jmgq9&HH z9Qe1kf~6l?2JEcOvE{dLn4j_ZE@z;93nk7X6^D4{aAbUF>y#TR3TFf}i;m=2-dzOqd*hq^ksrtZZw!(Jlx)S!Iz< zw|t9Xub#wd_t5rz45 zbhNHyL&KG*qMG2TIRv0aO>QA-%Fpyr{{py^xq@ncpSe#hOHEp&`+m)9KSA^4Z)t`Q z`!yO+hUrG01a{C(kRb?L67?tomhX~#>+V;w?h~Ws%m(hR%EVv{T!NB@KX(|s%@j;5eXO=yz@gJRwU)u+0(yUZ14z8I>E z+bSo2brxuNwq>b2LQv)=(__rknO|WkKMSW|Yb!AFBzS-9x0)=bGc)$vj9cp#_WYkM zT>rmV*n=Q-y*$|lCAf{Xj3nw;eUvKSV&$}?J=Y#ln17gMK-u)BJ)JEh#y*a zYndng-m={=N(4pejdoN5Fi2P`XOVzgCGGf-Nry!?!b2IP+l3*zOHiW%r$hzW-$QpP zo)EhYvG}fYHYR0R(Fzg z@gy=x2SCk0vzh@^BZ4osf*v%SCp#cW7TE@tt*Sp(u|i6B)WS4BZ-k0`gi=cv)8QMNQi4g1>$u+RN*Z-KGLTyT>o% z3!L#Rk%SQU1G=6iGJtLebORplBurG|hm`Mxu)-lp1}qZU56@kYOMD-+$POrl7@SZ; zcq%F)9Ty(LKPh+ad$N8`pTUXOKpfApiyq8iodqL4!i0YI+ZUjfQc& zm$4RbtV5Xec$E&P%3SJ6x;I5+?i@VIp3#e3iY3YlOI-Bhz>b05UEteBc!)B6d>4%g zBZA_OP&ftyXa`&X$e^gvqr-F`PlkIy476KfQDHHN`p~_Vy_Zt5mcg=*B~m=uH%Q}< zASL#F@CvxKSUB zJrT#=6&QO*AV_f>dl5iJA;U1^_CsLy*8|f-_e15&Nv=t70LG$4#=zRGa8T@rZD`v8 zizL9d38<@sgLE83j4#DjqvOhMg^qVJ&oO$)qte4XIV7vvsNV&tz6z@MgU8!=a`+zc z1`rR_iQ}@0mp&lg0^-4cI`N1_4uQVoP^xNw=Dkne%_Q^4e903y^g*Hg- zq7N%xO&wAEmJMo++HnVx{#GM&6l zkMm@*agRKi2t0U?)WGiJSYY*gBn05$2tB5-+X5_{0Fh|hBNhjyo#J@%DC-a`?ubl6 zJbA261s_ggG1?0%0STv|(qQE@tU!;Y?H=1kPb-PLc5Lfc2)hF@7tZaUoQ9QFpz$Of zp{Gzicr*cW(r{RRW_Qsk0WPB>0-PHD1-!Q|#F(;xSJ#CUoWDzVA_WS3Ld;OO_2}4o zIH2JOR`3X(gzMAf<)mEa$Tq8=iclSu>W%vFWFW2+Q1Ni)#!^8_4l+D{TmKDZskpttD=Py0&`MP+ zlkjl;;a-kAFkc4TbrIfo0N}FAffj&P2X_My2loK9HSsKK;#uBA$KQ86Ks!K(gZlth zG~p|o@JSVlgz;;e8{nF55Ta4`yRmeHsSl4bg?FUqzR8cU^D6(14uY> z_5&Pfl6jzs|6mh-$ib0++`*3mBpsP4fXODF69A%<)5jbhjQQga;EmjMH|d&cipilS zejRy6&tn~OR{$u$DQEqpgX7<$022-!eTX@-F}_=W9a;SVYq@&eu5|E5t`vt~c5sw~ zwJSMv;`qjMOLZ?ev_?<3#%e{hvr!K@=Q-=x$a7!4b`zdiXRqPNb0Ph3z6yJJsDJ)X z&%ZFb*nd>$_dfOGmwQKD6HhK?u66z7@|Ue|zAOlz`QEuFVzbXba^T3<4?Xws6E9p@ zSpU|4e|`8$=jMaoc=p))?_WQ0=#T$;=xe7x+WlVX2d96zcd+l$bC+gTJpKGoXS_7} zt-rhJ^FH-4`Qqn4&tLzmmLuN2SD#;h({&;9g>NkK-qzQ?^5L!aU2CQ`_#a(96RMqg z^QjlRm%Y}tJC*Z+1d_n#A+em(H7*Y|v-|J~KO%kR$JJau_+{{3Tbo;vsBAAN3r z?)bhpuGjtmf^@i~V{8%iJP_OFc&45FAnmjh-^ZQ$a5*)5+~LPsKJ4TW`y&kJ$S+i)r6lKoa)_U^I;GL^Ky_;Tm`uqpVnKQ8i#c5Fc zg3T`?zq?e%4`U`0T9MFNs#SCO${d$}2^}|$iW#bw=0kcZXN2@wV>(pG>qgNu(xwi4 zp<=e0KWn7z&u+ll_?WBDrO%k9VkkXT%NKH?oH3oP6{@gzs?HJ);g@LC#^-XJjGy1k za#lBT_NPoU$93Sh;e2t%OlQsdw@B0G&d+h_Ptz>3qBr#DpQfICQ7_bTMnl(s$xl(& z89U2oVGpEvj%(T3r}c%ACRX$F#%wFhIrqP0#jH2GGP@?b-7bOpx79h${FGxIdf>lR z`ix59%*d2k#o=@~UxfbQHE!weywfjyhZL3~(x5aXF)1b;lE$S8>6mm>nv@=sPD)v6 zO46kn>8$iw=?l^qrDr8edRe-EDqWLamA)yxBK?K*UFrMMkEEYUe=q$^`bX)XrMIP@ zOYcg*l-`rxm;O!qcj;Hse@MTU?n-y052O#JkAp%`4D!LY;PRjxRD!gRx*-x+LwE_WZvD@V^02O9KQH0000J2mp7Bj7%?! z1SMb#005X1001MGA@T+km#wn~6n|@M+tw8(MOwO4#D+HIN8%)=O~sDl*rF{Ze&ul` z*;bl|>sZ;3t!QORq8-|@q>+@+VFl3KrX@RxdegtT<6-Cpg zUHfNk0WU!J=uoT}I<#2PZRe6yt7PrZUaQCKvzylUj~s;T7)m6fVq(hSC^mHnDgQp=0J{(janY8q!~g_>dNs~T4| zD%Fy1S|+!sS-DlURMR%NAT>)bnZX6UT+A&1j(J<*gjQJ2l~mKptyGGL_~$E?5~?ic ztXj3C`6|mBG{dMEZnMeJ#eap0v7%Zzx5KQ|i~^aSOiWbE8>MHB|XpAL(vy>tr#$ub?_-}uvCMDMw}4&Meq<|gedG%MK8A) z+Dc{BL0_qqb5+$k(PRP(miWINL!o*Mnp!yF2R5{_)l}5-wM8$DQh#NU0cle66~p2i z(=|7Gt&^%z*2{~ge??o#LmCd@XhmIylwomnGqbcl!b`8woPh7=zz!1QtrFWohLNKvxZt(aQ^!jfAF#cIUti z!N=kQr9$LxB{npm41a8dI182zq!dbO&D1{IcL;ok2801O9%#TQ80^z4`~Xy8Y}7L} zd#z9L{du(r>z1w*HHzYfp_T>8{jouggKVM&Tky5?U|I@E7&BokGFTRIoVBHZL}6CO zVX;Z!H%qi)E8tkAG0sq?e@&xjZ48DrdOmb^t(nEleOR<`Mt^|83^v2K5W(35PETUy zIF^g{EP-Q0oRJt$X8{_|$vDs0^8rP`tcV%;jIf4}Gj=tgNVq84Yplf2fSGh&g2-6= zY(P?QB9151I3nZYSpZpd;w-}OIJTH3ynT(X+UI;NuS)b33)7022?`n3 zg%L#hqWzw)CD<&{mu)1>NSMB6qh_##XX$n2_4Gvg^>#e>&tNOxOurYJ#e}FyLUKHe zQfRb!l$V$gR+0>pAe_LWh!FhN!_pYv z$&B;c7%9b2Vu}&uetw&H9m^2#Hdf#hxEZvrfN-`UK4_kEQ)8xBD58ua0{_7t$5Xku zkME*Urvji848N@%xaGH8=eN>mivuRz2qxVOhJQZ+lj>kwoq^pq4($H?D7xzdw~-o; zI76VuQ4cF!5hOAM+-F4`6u?;qXK=7l1o9meBx;H!-SeNIZ3hP%^#-WRH0mN~q=p!> zdohiq1iy*F*BL01ZX5Lh-@UL(Jy?{nPxLGN9vVR%?Erfp*dy2{gRz%J+iesjMp&HQ zkbk0(iW13A8R7e69NZz|ZumrD_MHLc+CF{ye?m8?f z{4PTKE}*@YkIwNsX%xkoDzlI8r_oOAV`$V*NDPxr2s!M50CvI1L(nl`qXCF%5GrnP zl#fA~iSigfERKUnDUph&L?PYJ566STD1SdJC*^Dby0g%ol~P&COl5`B&}{}|34XW` zg4H?=2h$pZ)4=^8*$==y>k~-@X3jE>ZM|WSG(o+=+%W)U_A>l%JC=Aw;fH9X)T{Gz z!U1y{%xNW+reH@5XC0FaCRs|!Q~^wdU<{`jKP)kghU#!BMv6n97!*PRhN342G=GXY zb(xpRqXZ!ll7^6tLzSvBWcQ6=g0%*O-el=HcwMDIjD7 zw0*dRv8fpWwa{q4YXuq)km7VYBm}Hu8;wKH80?+oD4%vtzA-)pD+`>#)qe^h0eb?J znCyfEc}>8TGVR@MVc7R!=Q!RA=XBDkKgPLVP|7_pVUf}aev+*4q5oF1$Nj zBH=2U0TO227Rk=}Bcd_6V+lS>lAFUp%n(2U!F`l%Om&T9%1~6+GJnY5N!0BtRrt~o zP&+`Nhhjl|AOR5M**K7(rxSa~^JxJQJ-rR29fSti4ASY@iN2-5zRlAKX7^40M3+G# z4fAgI{AaPG8_T3HkJsu_*GkTNm^K`+}_uVvh$4x%;)IEeNs_5}D z;^7_ebjrhM_Qny8Hh+4267G1)3Be)wVMBW=M|YWaJokI%pKICXgK%AFUV$g2-CyN+syo?RIE(!D4C+IIfY z?{~lP^q*V1?tl8%Q-k!|_@RGaxca+w=IR^Q*u;gGH_nWI@#jY>1(Mq}kLLp(KQlLR z)X2+(w}#UoW1fG~YL=ZwS%08jn0#3JyS|Uwb5~dMJ4ceM zOH1k7%L@Q`&hcl7f1pw&PcD-f{KVj|)GT;4FH`feFPIuUyWr^`E5Ms625<9)SV=Ev zWqA3U1@McNRSO>Y@Q5`W*ZN}>p72X%r5wxUYkH{|D{2dBtz^O2yz3H=X?eX&W}}Nm zN+6GBvwx}a z3S(fIm#L;bgUVo>*jP(n(N6gDaEx46Sv91#sh#SOQv&Wk0G6qfx0vhLXZ$N^P%}zP z$-HTibLog)hPOH$qCWk(+uOf%3%8%c+zh93MSpIAJHah+W$s??E8J=BKJI?*0q#NW zTim1EW8Am73*1k*pK_PDC%I?1-*8vB=eZZTtK7@n3*0N*tK9Fo*SOcYH@J1~Pux4) z-?(?V54n%HkE3j~DH@E5(Qvdi+8*tQZjN?FH$+3x+qf@t2KWCX=f6-(0|XQR000O8 zcMOY+OtN*EIusB90Q{FBzXm0Le{d7`mEYCM)^}xn%~~sL3>X$x283d|Sz6h$Wl7P>zaR+)axK?nt|Tc*wwFn0XcDHGX$VX@m)>MbCr58`x#ZlW zH0>pqa_Oaa>0Jirnhcq8P40bHD^PROKU2>aoC!rz$yj{U0S|2|kqu>1sjSU>L9uv3O@=2`>v$@j%IY&?~;jjGv@ znw&0HGl_6=lxeSTFN%eK6Pjw%avRocW=gdZJ8TYeA~nhYSyB^AW-{@tdK*A-JQYgB zM~Y*q%w#xgB`kYRge)C7b|{?9W;B$Z7!8euwJ~gR$y(J)Cc|?hDgd6G4BInmIGU4o zsPpKi}AiBT}k(#+(E|3ouvQrdQN2W%L`vZHs`v!^wyL-F3m0~TD ziKnw=8Fex>t%h=MAqWbQIwWQ+BN~FjFf2Hd>P!d{5RE5CwW3%m5lwKAxM&FYiMdcX z8dalZkuepDp@8H3f1FTBE-gkzSV(0qskRAqj+nEl33XC`O=e5-X@KlmQd%*bGE`&9 zWGXrZ>5M01sU_s#3*J}NeHl)DV_hQRJ}lKY)HT#CiA^OVq~t@9M0iS5|D<>Wh)Z>j zx)BW)pad@^u%C~;vaaA53Oq=4fmBqbD94-7-yD_u(Sc3^2{fm37Ux=u797A8tQ1Za zao9)Ek}g?)oQ)hUJ19<8C|;Ls0+rk9)B7yW5sn@%=5Q08)`u<53`ftGN}Qgy0;~B& zri0-{-x;y#3@=+m`2{ukeDOr@Vfi3p8B`$f8vaxMZ)p_Gz!e>GM|V z1NyA&;$^ESyG^wVzAKDV;_1u!=^ln&(9c?&4^i}gwNj3fpW@|^!3{AW7zE#L4z@#>w$CD$}p^SZU|R1jpwC4(^HAh?38JV~0$O$GYxM42HSeT%dVS)0;{4KFEbL{g3I|SzVvS`E0Wn(->eNW^6@ys}s5qtPlKUP;7O>!=FEpt_LY;H3QdtO9R; zYja0XB;fU6WQ~qigWwuiu7y@;#v+8ui0#--BRKnNI2$)nAQe>wZUiKyDH>JlXbluA zTBoD6pzekuSl^62peuS?@CLCJNb-wRz%O$Beo=@3vmcoKlE0tQ{QcZXf4}f>4c?&H zs~y8<`gG*B666=SE}2*C)rw1T zE7mSaR5}%2@dZVOarQw1HaIw0_JR^bU2SN5p&^`y;|R ze?+=egBwoTt81`y$-a?0d!bA6k{mp&oa>SzO26V&v|xniA)Un#0*xeY@$#RL=@Pu~ zaw+H)#arSHoX{8a7U(zn@Fs?T)DNG_V6qQJXqk(w1-!Ebx5G)b-#)1t+|Jv}+i@F>T4ZH^AvdZTZNh>9 z$!p`TNq9Tc#^CK_ZsJxLoLgzsnk%z1D>3ZL8Qunlw-p-R28LCK2+ zga&8_JS4DfpiZ9K!58TfSw~wS(9IBNM>F=Dqa*;MB)|(`39gwA8u@)#W&jSU%K&%U zs5AQ(g(taoDva^kq(F6lHrY4?raE=h3|3pfanOgmcu?zdNCJ#T{#L`b=Eh-*O-kqI zPb*~4=qWcD0>+`XL97E1{3%Y*(N;(koH6mLTqBii1q7m^EGn*`$mgO~bkq*6+W^Im z7OX&yl-oIyu)??TSb@}T!QJ+)xQ9mFoFD~7GN}*;7`7Rss^>O;vkaKq4dxv>lEHL4 zM70wOa5wQTKn~MX1TiPvecM2^!zRf9z6`MYZQP;>*S;Mf8jU9^b{U|Hcl_`O?4odDGjS?D8G zrlVl5fSfeiqoXc=*yx0fy}245rHsl`Y!u=RETVA-?m!Z9L8SdU>IQ`!upDqua0oqc zBGb?YN1zS%>F5sF?1s(37CgjkW$;jiAmRNq+7I|eKO?}zJpeQ0fLDMS5~#&P0edx# z4nW%y*rMVs7VtqD4dotxp`)E(um=ntY{4;NFjg@v<2xmPd|1FEG`cfy*3U>Vo?_l6 z91DUsY~J^co*Cb>2A32Pc?+_^e=8M}0YqQLvaOw3q;kG>UM;5~(z?z$BSyQ4j!=G*XS%n1m-`XbQ&7 zum`$zDfzTl#v3)T*CwIzT09E!I_fVeLKO`RQ-jACnnt6XM45)IhNUr1rh-=EqZFxs z9$J(#KG>lF(gJplaZ(@_hch9AW*pKt-IvRwk*bNnzf{)7JjZC)vu(_-TrvWW|NX~gn8^7<;DG=Wa;u+b==u|IfG26&~h40K~clb02JMHGoE1_f&d>gTtydj*rmj zZXcc_-tK`m1;hIR_`NOo9w>}^n0(E6jq6{Oz0msydL^`yM#o^ng7^^Nm~X}>3>+o+ zIGi%?t-;5=bis!)V-y#9Kc4eGPoon)e2n3L8H(!9W(LR~G~JVFc+$hLtOBwE6#-d* z;It@gu1kTI6!6P{zzXF8T57JB0acnZ%Yjyy>$O0lDU)9l{(7JdK(x88G1tV`CUZ^j z)EDq2Q?~)A(d2u9d<8Pi=9*yWFy)DzfVmC=b(w$95xdDWDRdy{2B)T$7&+P@Bo$0n}1pW3$O8@zk1Y5_5$q z!von&J_0H>*TrTG`CM8|UzV<^B*C-N+}m&N-D~bsMNgD&*cs1~+W0rv`sM87`}Xd- zpYL$3JlAl_Zr_AzK1&|0EZ+a)R}Oc7zI|xuzNIIQ3_bF+_YdphZ-%lr+>SNc#}#vn zUktSetf{M4pa0&?t4D)-RxS;G{NHc?aMn4y#=o!ao%7Xyt6Y2L*{ktSV;c_aiZ2Vcf^x7PoDVI?`n@I5AkpRRWdE=nt#j#qu{^e!1%U zlfVA_!#AFPbf%_k{|B$j+pH~rFa7K4zU#-Ik#Bsyr@D&!Xg((2c&+2+vh?7U)(ual z?{0A4lrMhs;$z*(&gZ=*(Z11JM;NRzyF`# zz811D*G5R;ry>KnQZV{|dC07b`7hPRpvgZ1G+^?lfp(i^lLG27`3Hfz&Gn#J(-u>& z)3ifs-*2u-Z?&5;qz~&%KItWoS;u4+tTXv!Ubv~-vt*6QCo@Jc<;iok$tUw|6?J2Ssn&3{E3nFx(*sbqaM8w3F@qur=%mmxot`8;ugsQd60T zIzgqs;#}7k{u^SGnn{e4OJhVM_YAc&o>ZZZo2c7Aq<6`G{X{!iFY9BQ*%o#i+sOvm zLAHw>X2a|V8)GAEhSk_v_8#^qdxX7@{Tlmq_5t><*>AGnV$ZOTvrn?;*z@dn+2`4d z>?QU^_J{1t>}B>R>_4z?u|H$4vhT3(vhT6i*k7~%&i;n|kX>XyWq;3p;jwy(JjEWn zr^JIj%RH4zp5>m^o{gRwPrawnBYC!Xnmk)QJ)Qy2PS2g5h-ch0;YoQk&k@ft&%CGM z&!0-_{{T=+0|XQR000O8cZ-ZnhjLBYdk6pkWDb`fj|Uf*aL)z{e|>BlOV0VK+vXO#g|t8~b{vb+57V?-2QALozNDAfXLDx<*q5?wMcpd2G}4G} zV_RWV>n3dk0UH`<>okGJ5UisEsaBoUXlL zqgYOl7b`}ttsb`0nTM8a8}(v3uV)&^i)KMBFR%G_Hzp9nf3j*`XWx+1GL;Ej-DSQw zLBn8RbzIMDR^|ZI!evgtp3!nweLP2~RlO z%J5h(+FgZMF` z6c>{T7OP^ZCM4R5S3Eg*guabF(yEA>T%pEdG~#14e;aMDa;1FZ){)#(O8(}guNuQC}ftZe`dx6Z< zVAX9Ba#e<*xa{f_#RO$mh;ECrLaP#E`2iNFJgfr8B?tjQ@q$~y$IXzU4AX&On_1x# z=RgBk33zR$#mAjcXn{=7A|VNMzv0%FsNxJw-a>Z%)3S8`%15qIlS0$SS*X{!{;5h_Zg zYWIm(N#@rSZG-&b6fo^Jv)U7ki4?Q?e^$1OW>X>@fq*bXhoTBUTy2pVw?)=Kiwv@B zLR(>ou@DksA~CV1=6Tc)(`-lz@?bA zhXu9+%1-tx`9y}(g+aC(%F|t6o^Dc}Zc?6g^DJ1ct2_89NLwUnM{8+zObTH(e?-p? zvYq@^HpGiD9%{&QaX=&f5d4q(yEqwDJ%k(&oq+QGZkq}D5EHnSmFOXwmj+o0Jb-WT zAb|()B7zqw5(7qjC_b8vvQicRDFnwWK@;KTT;aMvIBw1f;_pp{NTGsBx*C&rVoHj? z+c~+jK<{Q`CJ37k*(fhn*Sn%@e>=^|BC(lI@_@kpq$wz1kInSJr^0%UVtNPJ9+0bN zNv<&4!}|g5g9h%Cpe^NE4<{nkUQ?1MAY$)sQK6VVPLvap2e3uJ`W$S%jlg>tQA}6~ z(l*-7F%W!16@{1^N!gtRkr8M#S~mBQ5B@s~C3sR~x&lTc`3`{Lap%iWe|3>On_$rH zyxHX}cfUhCb+$Er(B%uR@0x9k%OU($*OuTbU3?XcHurm}9meW9|7%>%S{Uo1(D?hG zzd2Uf_387^Tzu)&llM%Yzxbt#@xIObcKpRS?>p7}+rdjaDxdy%>Z3{)mGf53aQN4map>^A-f z7jBtNUpeOa&FSr<<;(Zq@_xtO$FnO^?3o>vPW*oBeV2YG9{%|^Hs3$9<&!_Yy5-jg zc5m-^>T55ao8Q*(0shm%ySrZY9D4nce?0uz7oPv`-N_jH?qi4ALvKIzQSWnqjlH$0 z>4$Gt_IIVvj@rIwf6w}QJ1_R>Z@b7%EQ24^KRhO^eU%WgK`~KyVze48|^LKzi zJB!(UuBK?HTsDcuU(FM>4|{Tmp0*6<#o*An-`|tDxbTx-e)8hU()c_7`tIap{7z#W zBwld%Uc&cPZ(J4u8VS%?tdw)QIfcgh_gipb?1w9Ge-`dRfBo6R+IW9n&uWIHrL8RR z`VF=lb2NG1z9Rlt{mp(G3!f%H zYS^+#-V`C2f48g`w8M=VIL7a(UbRVWQQKA7X#uNPF|*nfGH$Zg{YyWoHo@wP z%A~J%>IU4q(c5V0FY10SQ9-;OZ^U8TkMF=kIEE8AiFe>#_;dJPd=MYP_u(|o;c;wY z3zu;Pe-VEke;Gf3kK$u^9v{b#;syLI{B8U=K8a7^B}M!+e&+w3DEc2zO9KQH00008 z0C$UwOkdnEgEtxg0Mso2040|p@&*={@7D$te_L}CNtRZ*$|zMNZnck9N~0xr&AemQ zEOUiS);(6r*Xw4vebgM88utj?Qe|9*hQ_8!rE0!DftrRoTeUq+H)>rD!>UZx3TAe! zSTeKa{G^Fkk9S7$7Vo%0niFc3N}Y8)f95@~Zxt)$wweiUR!jMUseDu^me-iIQocOi zIc@@QJzuz0uK`OQo2<7L#?}anzDd)v^5bT5? ztJN%{Z)5+BfOlD|Y8JBj+BmnIoh(}5Utwb7BL5XuJ7ARVcR&DYd4byDIKgz*FDkYu zZECgG!Xu2Ay<4nLWCf76NT^KJ9U5_LaLu}D)jL^O*;Gf1EJUPOzLPH%`Q-V8$w;y6 zL}H2u5if>fv^X~AUmRIeRkOy!f4+<~!U)K`$42JuK;;fw)oPU`UsI|RRwv8iS+1~! zB79;nCyNOIVJ)8ptgu5Piy?3b&9&n}P@O^9yzOzi=Iyo4f^rGaXa?FUJ}|w@dFoVo z$}&fpS#Q%VSU9V5DO0krCwx`5ZE9tq1T(pVTPTot{0m4mvp!WT2a1!`e_93NlV!Wo z3Fo@Si4@CYi_`N!7=)6qnZ6_DME*_@Hdk9u53ZC;_p|1`YN=Q#);sv9%r-+w8L7Z# z1#ND+i$|?e%knH++8~H)SjBMx)LaAwR@ZDF%a<&ZZ}V)mV)1;iHuE7EGz)c@Pir=L zU^#gzSsnFk(Q>G3rpgbBf7LK<(FB1-Cju=d9HJXmp;*qB+#~r>7G(Z~;7c_$Ua5%g zxLT-`AP{WenJA7=l%Un69&DM_d@Wx$`D%Gs{op;Xs8PZ|$7E%63Q7};_F7g}mW{i6 zU+2<+gT19f@MZ|Uq23L>D=O@PL%onAz=5KisEnE}*M|RwE^&!}e>Sv#ht?$#o3#16 zbxHRUoodRsiz)_9xwIMLvUPXJ)puC#KP>BUnaFks5#o|UwtiZcs7>4aBOxi>m(==` zS}3lOa9q<9eaUctGOWkLu1q{k3VlhVKWXT3!)3({@~~&h%5BESfR>=PlN|JJ$f1Ffg&8N^5Sj;K<*LKcLbdm;EL_4L+sbESg4*JuYl>2CqP(7)& zg_Cj^oYpn^sccu>p%DE~jRs_U+O5-8MW$BmoPIP>|BPybRMu!lrimaeM5sJWACB6O z+w zCg_XM)HKNYS#*%U8J%Q5hz=T z^s=uZ_cvJPxHQNfBh=6av_==Ysc!vWbsHwCj(zHO98kOQdey-1sX@F^-GMi$JMm_9 z7v7@o##_}rc$>Nx>uL|)uI|I#YA-g_{Wz!|z&q3sf8MDc#Jki(c()qHd(;Tts~*NZ z>Jhw8J&JqPDBiF3;R9+v4ygn9pn41+Qjg=XdIBF&PvWC0#Zfhe`_wq@R}*+Z9mL1f zBtEX5!Y9-eKB=C@R6T=Z>JW~rXK_M3htEjg_BD+Dh7lsU5TtY%QaTYg^h`1XflWYQ z!?1Fxe>r)L{ktsy6zYr@}4uSr97z zNTWb#j>B>Kb3xZ44OrZlvL>NGw9yK>?v0?|3gvYxK@ky*^(&#eI8?OpF!pfvNu=?_ z8=9lDGPM+%3D7WP?k0uct7N*lqvd2kq%UClf8=)k>yU)HUa{sE*4|rbZNnQKN19OC z@CsHyFgC8hYAkm=+ISLsGXE^vcouv1;+tsWo7gwsb&zPIgTy*Whpz*I+~N0Dk)K)` zn_fnt;Q*C`bUs2~4ASq0X@_srMw=BK|FpTm#9Xx*C?qMgPUc+L(is{wXe3Mn8XZiq zeSEc9q2to8P{rbYMiw9rLb z=&Nuh(s)MZ7LxOAuUoWDV$rt$e{nVoobJ`*gkMP{hOCY_3*(z{?tHbfq z1!p_MD$Vl?NH}66gDsJWI9!C-7z)_ZQP0N(GAA}UD`pBWXzWB~K5SzdLnXB1f9+1p z#%AZA^)=@E8}p&~yz3b+ozIy+&ty8gSUrO)oC$*Q8?UdXx>HSezRfV0A=7io*|wES zxm|>A*AG(e7RtMSkg_3^_xvE`pitiXW@T%Z2m8rYp4X-}Uj)6>|2S+j%DD0Pyz*Yav${vtRfUdmV2;@ZzuI z9TPlo!tjz1V?!!M@gTS)Yf(I;#WW)m!9y8BLrG)Nm*a47?}9V_I8I7v5cu#+L??i_ zTOt1;p=1c3RR$D%wrg6we}GS^7ja5WL%W1eOX$?nRpF#FrPLCMI;7J}q?kiGLv-c? zBgKW=LpItol#tL_8|@uZBy`S3J@7)i440epefV6WADZsXrQ-?La6CZ<*)}l(@c5)M z9E$rO#vg_7mEb@SU+K!J8GHe}Osm8Al7uew;ERzqqPvm-ZZW}}f5=JbB7023g(f1; zq~R*l3uoESmc8vka?o)%4Pw3kyl96(*hc%ABvT$_%D#vXZcYcd_Okss%n_1~txIql z--j9BMIUrx=7wLKz`KgTvh2gH3mr z(kkV+J8YvvLr^cSf7mEI6qL~WHi|$juLA3;mk_v5*yu2eSQKAZVv1%&@ik+~;Ascu zS_EHTMn2<^uiNMdTcMxW=qR9G1JaEs&dM=aGx~5=>xUMKYw(oR;3=u;kaJnXtLNBH zDZIAXDC#EPhH#EWA;+We0Yu?L34H)&hM?lzl+cIJJqvTVf5{wBzyY`fX%PE9<~Q)p z!Q;Nqt-lnPj~PP5(2*9NX1y*T_qz!^a&cbnhZcf&KA;RZDCYrXz(Gl&3ycGISO|6w zoMa))gZ^pwj@alJO!fmng?HWrpKKJ58kC3TqR8RV2%a$b4^%Rb@o}*1TXs7-!KXdW zrajK5ZNjw2eKx7y5xSP=uFzGq?xQQOclU%+BPimfhFyiF|Mq!Wc{4#_F+4DmL<}zRmE(RO= z;-Y^mf-440b`1zhs01VSoSy^}EM#Tyf_*DCN-}?|e>OS={$@e(b}z27C`@(b4&vH& zZ253qLN&0I0WhdK?C2X7-8yuyi0%|qTT00HMbz)uC%6VPx?Uzt_QN)?>nm-^pP#@2SCvzoTIE z!c&Hke|U_;@H>xAbmU8R5boYp;okkXn60&#Ew-4=x0oGiFt_e>bEQRj6pnPnj(-68mTp)f*HG`@n+L{oame40QIs=RXFn-1vqYmTeHW~tk z2^ab4Ui=H0)p4kJg82)t9-?x98Y11#LIVA!e-D2O8}C#816w#QlLY(W*2iBfi2&cW z=M;*6X`}NX{a32MhCDB_>r+5r`SZ|57r^8gJX(Gk#lMF2O=LoN#uza04D6y2{Fyq6 zeJOg!+ZJZfqrIXNDIFYf@ zrBB*($gcrTCd~KarIo6m+vqX`W&&dMn<)O=+0dVBp4}9VgEpv5VG2t_@$V$`TN`DV zEClg)QT%%z#3=qP+zHsE9v9#qF`Y~pe+GNuWgMN~NAP1=2qiMT_;F$&fgi(;+K2z( z*@GWR=nql+MJASE2wxODI=j3YyvAElpXKBa8TrOC@}D^Q1S20?M*fnM_b~GAW#m6|@-9Z+ zwT%21PVQ#p?q%e!h@Rt1&?MM4x(aJng!TO^oMez?H(+;MbHmQ&*OV0cKm&s?YZuJ= zUu+i$--5I2U#VZVT^9%nNa$~Ze+m$PXT_T{bhJ)F|9~nDoJru!Me#pnxEI7^c4#H| zuTG1V;zOB{ntu!6`#R3fk>!c_&j|hpOW=RA(RIKqLveUQjW8=5pau8-&=uL`%G7Ja z?2kHUCadt3ywF__4LB~v`LfmyO>+8fr|*HLIy9z-p|wHlgtpe{v%eYne;j$%_p|>0 z0RRC1|HYSgR1;|z#uG|#C{mRsB2r}Ny$J|{6hTlxrH7Cr2_eBW%FZZDV!pq+{D= zM;+U?ZKpc6ZFSJGZQHhOJLml`&v&)!X5ZD=RpZ%f%?aflUs@zTHzf*nuuB_kcW>+Q zg&>~`A1;F0uDs{tNv0(AtYxxo)y6(=SXwe>?4r9{15?d%3K%gO@1zg>d`20Pw5o*v zN!{eB)^d35F54E%N!edk_Ol!yt|6mrag?3!pMP~$lu6L+b-pgImcar)Unnu-akTY; z#@Yt`EL3b3m*vOa9@_lCk;P;e??u}Lr5(5WPu6$DOCl#Y;@KI+Q!IXR^01cKa-KJP zfw<{pSU%Dk4qzukgU*Rb{y+gG&dr(4z?lzC;Owtk!EAO)dMv&g{p)pu$)=wW77ufn zo5bQ#zLth!>rG+dXCQ3euPTDaO4FWC~Ahqq)&fTK4Ra4VoPT?_Yk4f4N?h+IMhycx-v_ZcDf5rRwSSWGowWC-~nR zc~_IuWB}9+DJQ)AH~(8o2i4Pp$m)2xngpBTjghY$o_4QgW*c-py-f#Sw1uU#y!t+vk3lmcg&&xN>0!E-Iwf^-~O%`SGkUA?KTd*m1|H>wKh1_l*e z?{i_D5ibX(cM;brc6BXRRakfQv5-sTmbQD5C%~dp>M>wVaqV7IM=8Xhmg(IbE`wH`T z38JFAKBhwNsp}yB_@?;-iFxD0b5szxw`=zgOs|fy7PD*#3IW3hZ3cu2iS^bQj)E^9 z9-z#T@b#1Vt{rr{k(V|0c#N>P!7Av=!u4Xj%ls-8F)5_ zmne|~2k%E^1v|TQ@ng&5|F)-225^mW73cXpe-168xlS$W{S|!$yU$QeFC%-V}2CqFu8-rUTaktRx$s`Sr@8+PdkLr}_J3@=x)%mEofrW&H zuh0=)F=KhvV-GAfDG8smP-Cp5SNtgVC>8sCyCg@-->K&UXcmMh<7!A_s3*vOy4ResP0DMShds^$7|9BO%+p*xp zAYI(9?(#DyD2botO5SH&=E7O!H?kVUf<@EXO`V?9SD`WV4<5%s!>hK_=H%%!e7zjv zuq&X=bHGF*o*mh8_CFQDXd#2|Ym;qH6KK~=$BH?eJy#V2> z+TtyOKg2iQOA8Y~fLxk#t9Ua%If%U2+}Zd{^71y~+sT6x%)V=hC0P8s2<@Y2qG@%( zqqVUzTpad?(_x#~rBdqppV)8A#D^9p5Jrz+k)HuNcawWM@`jBw&>{A zx7xU-F=t-!3;X}vgc8{Z{mzAFBDfiiDlE%=S33Pk3h!ZuJ7n|P{Iv5YTmqKhK=!H^ zT>Jx-c1J-w{(Ge^aN{3EZq=P1y?h1(w(Gg$s~=tGo#o5-KAFdT8g8O{w-TQbqs_1+ zH4IVgJ1t4h6hwE-?xm6_UFe=WT#h-=spC*SAvj;r?^;VcKQBCwb=rSslsU)}EOiu* zS~!t5GA}~Gh^qCX>;ta@b>I+`8ojY4eML$UHM!sVXxfPj$Wa{dmpbG)3H$AyacdS~ z?aGNwMqh4FuvT^{``${v2FupFdGlP-OcyK(d!bcFFhc7_o}8Zi{Fy|-W-??V$Z7rY zM63+KOP*?-eTAj`h+g z>M>LBL#%cfaEklRmiR8K9sig@J9X`|q^--TEM;WN&y?#YNhupOGW6Y3omMG{n%}JW zvGp$9>GZk5!uqLJo;E0*pi_0hXR2B&x1Bo7&~+Z@_vqe|#mDRV^joX=$MU}fr%7ew zBVPTo%jb)Kw9VT1FLBaTwU_qUn~xS=GAB9#m$S)(0CqIDQN_cHg-^78#sJ8FN7Hb1 zcWvE5mo=~HcC8pu)<2CYzb^Ryv^}n$N3081-Mlx1#bMqNao_fmlWjMP8?gV?2adUOy3qw_r z!&u8@0fbNv9^IH7{ z>E6~}evt$#BZT)8i&CW_^YNnx4(`uHg(>jiha&&zpP>>RqvpXC5#P6DqlxZ1q<|uw z5p>pc!F|f*S;^H5mFP`K=lT$A^zk#IpIg#46LQX5#*5lvpPQSVJ09@B9zga%ra?Y) z28NmWu!Sb%qUe5`pHu!SVX@TkVItY16trH6CN&yCiTA+G_*E2afUV_$i}U7G0e%WE zCvqk8_t!Sb9noGlDdt!AA9QdsP|IIXanR_0I{&cLAk9EDfY||`z>V$X|DaVnU^WX4^MwXHZL1_i|u%2=OvkF z>n4zlvzyLa!*$o0qla<^_`J5Q-8X{FpLN!6joN}>-2=|1_2E*Uh6Db z>y&VesY-mqr4Vhxi;rg>y9&1;*bWRBF`!LC(z8GR3$$fa4>3UAqA_JNz%y%evB9Oh zD}l}%rcb84TK&7+B^ z-znR2GY!28F?usVDROGrM=Op|kRMe|#w8~r968TYS547FMWio{O#V&KmOD1HC>Ky_ zMVKxAS>Xm8&PR4gRW?G*eq{Xmi_o1)#QXO*1NGe#*7`|8KvVZxN;yTfr&xp)1F z6f)Oe*C$x&Lst#Z(MqbWCbVv($e1-`Rg8jF9uwtn{QE$u6#PAgxpzP>>NFnfyx4sM z{W^ToMKMAxG*0wwDBM~?oDRT5V$PbGe50s^jS1cXNJKkm->^Zr}Oy8))v+Ubql+H2d~d^hhjTS~$q8*CAdtx~lkg z9M^_%K%!{*QhfQGbh&q!9by7(!E8t+2Q_0)spC}T(pofEmx%(z$l zkr86pnGOWn=nfSU;$(v$Y+ov5>Qx*1M8iQIySNNyj|m-I+)jN z#P{9(MA!iFn1LHAxMvgraDIpx)IVn9b9hoTa6w}b25TD?Ax;W3w&DyToJK2m79Fjo zmN`S2CBGp=@C2YmCWJFI2^fPu$f?NnQ{XJnMqBIWG+)aLMIo{NI{CnHSj2RJ1|Jjx z1LnPW&_82;jL(4~)WUeftf&#K8;L39J6g@O;MsJeW?{E&N^=wDwpHyh6O@OtNCo52 z_jW0RXv6U zBKaxv*k?g>Oa2HklmgewMAi2*7twVt#1>CTMP(6`2XhrFvdIae2sG#?>Q={t6mSCS zvrFpzOZGSar7v7^n!XV9A3*mO=<_ANib+4Xi=jlp)!B5p?cPeEt>LUi)d~bW&^$`6JTd zyF=CP+wzGQknsK5oCW}&>t$$8yAIFQwP1AsX9qGuex-BgO$x!$Ds0`ide!ZzRqK`? z%Whw+#RT)GLoN-+)5IpphP&*4uDNE=mI6rk?abmW)+`WQy?q`xWBu;kH8sWR=k;u} zTFWck&lu?IB@u~#7JV48zxOj`V<4U?hS0kUS)z0Y|i_|3%~Any*XR3`IQOlF?gKw z{OlumeXmq<`Hp0F0JLCi%s3d?7ZhM{Pkj;$JF=>%53_plq%Mzo3@PBun$$;06&JKM zIt|9vsp_grC%b4aQ`|u=S~$UkJgr%TpiwMFuxZW=u?D+vBxct=`Lf%3b+Mi1EZvd! ziAtvzNI6-p*2tV^s2K)Pvf9<)qx7xfRBF{WWsU`(nRJ=V0?|!hA;Mdw*wJE*TvcZX zXz2m@ZM0sh=_wi4 zT9zb&qcx2db`+8wkWS)4<4eP5hH&*I&UTpjDvFVZU`}aGrtsUcPJ?-8WW52Vs%~)AM}?FXmC`;N_Mvds zUdC9XmX=h8-URxc`9fCFuqw5Oi>ulq!eWyWTD=?AVZ+0<^H0T^(J}OGdURH2Huc~y zIxxrJ{(+f#HNVWo)`%R*WrCk&A;s!GUPlkIm_iY{~c z?SfL(XYp{e*RJtM21l-l2JX-DBG}3}(nXv{KQk=d=p1$;sy++MLz)yt)NB^-6naH< zS}J}5`bpPKBMG<0N~mhJJIF%rOlr#_K3aBg&h__-+B+uN9$3Ns5=xiKw5cS8rHEqA z(zdEoz=bc7)_i66HZL>1`x1?=MQUxP%uB7YvL?m8{MEyGxQ{(b{XSUd{WMCi&6TvW zH}3oS6(Pl4_GYR~QIA$r_g{)xaPLUoaE&D=n#+`*P$qf}<|)k^%s++$Y1R`A?Q)Ap zROc-2)AC_9j7A-dt$MPJUYiAe#>*;3c@t%KfOy@N26uG@|FX-tKx>Spdu~;@*s9c) zy%Z&Uu{XtK86jO8o$G#-Cc31cNR!f0lD@<#>xFfKExaC(shBo?yh)&L{m4coe2`2a zX_?Fu-$N(PYk?#;;Fo+-7IDznD>Pd;Bt*K4kcR`SfPheTl-`@a^&}>S5Wao=MS?61 zxJ?g38QotRv$==GsGlA{`jH9b%8-fI@4hOQ4IS5qS2zmr+0TT(e7p|49_t}a3yQPe zzNVrvc7M5fe7R~xPj_c~ya%4|z9Lx=3jq9%pYs&deBacS4^y0yomLX3@Kn?c5ZziE zM`4t>DoRQQH=cenu!ERSNonhN#+i0NlRDxwrE>3$4;A?)iJl&^;4qP5rtcJ~SaK5T z4&!P(&A<3Ro}*|g7d~mJk`AJKjG1E${@q4;j;{d8t$H?@o~v{@266ERgxQc)j?Sa# zFy3l;%EkN9dmP-|@`Uw!0O<$9eaQHC?Eu>7u%uKOo{|7!nrHyJAKJf(+rNVV89hU{ zI@ri{8i^nJFQcIj)QaqKP0}w&=K=dwQUxr7J)xY2I=F(KzZiRdWH3nxS|$l%AdP=) ztPzEs%O%&cIBwn`pOE>mFj8T_16uy--ZG%BciQe5#;0-Nha4~iI9LkZg-Jr44BvSKCVey0^N0buj{MRoX zywelf@RT|tQRe4-XPI;8I7eA7=!KxvU%2FM8G=8YVqIG0FOc7A14O{Euu=aiXk5T} zs1FRrD3G8_@3E$YMVomKA~q$AmF^sa@tyv8KwQzWOu(2~2hD8U7vb3evRZ`U`c@Y( zG&E1+8K}3CLB(J+lQkrf;pElQ$zVo_M&wl1$;vBcl+}0dY5qdzgviW|5)rlUG)M~n z$k+}oW*CU=T%^#vyc7H(W^Kh#p$Vb~?r>?#P(iL}=3XheB=k)acb>F>fSsa=g}O?1 z-g_N%^_a3*6WTsU84_O#IQSOyNhG01A%^PAwD!7Dz_UqDKqb0}h-109YwteR+}Nas zLHNW*Uo%TWv@G_B(djfGE`#YT42j9sp|r5~*j9+O!YWo(Pf{?4RLW9>Go!bWG%@8# zREyKpukcppV+Nd<$=_Hh_rKc--AGfJS4&<6Wx-=)TCX*G{IymD9RIMt{(4X2q}w{( zB(l48i*(G{uqjww4~LPG^XJd@pl@bCZRe|Q|}>B zG3TRrc@%gIlEs4!K`~qYT``d)Li_3gBLWqo!h>tMp&k0Gjl~garzD9EH%o70dydfz zC%|B_Xa}Pid_~-j5F(opbk5w;)ydJ_L_E|R{38;6`>7)vfcy?6h>yV^Q5hqnKDh{< z!gq8mNsP&E8A&KKbTnuA8^zOgxidOtMs1ORkHi6i0{^k*h`CSzQk?87b`y0Bo4_IZ z)8WJoemN3#YF3VqZYUIgoFVZdVAHRq=I5aQ*MH<<Y2Mr9`3Jg4^M=0^ac&vaA=h2Z%_kK_zjUzd zfVYejNR3br;%kB8gf}Ma9;|En0nuG|14pwsN)HQ1j-o`W?{vdn0on5oSmTsU`OMrH z0eM}AIv*XCZh&9}qM*&EfKh@-4J*WVtk$OIOG*%;Yuv>(IbMIaqFUwwCp=$xl&45Cq@@rktVsNzxyb+sR?l<8|)n(}=|q!iqP1x%K*7av&Z?fTXlC957*%iud#k`k{b!3+x zkT9QZ)$Q0MJ}Q1jj`0Ew?l)EJGp!X`a8R_^>Ms~dOpuJ=a!}2&P@FY*4mT7UTj@e# z%BD2sh$g#*kJ?gi$8bqZ;`=W#%h|?O%5ChcJU^pu?av{jWLBjr<3y;#3#PXCHCF5q zTM!yUjEm2$wY>1lWTP~4g9A_;*^RD=VoB~+89BAO`t<^WF)AaJAD znIUz&?O<YwXm1kI5bP&w!d_?41rPVV4%yL;)i?TxfOZNAUZNRb7;OZJ3g|^;|%k@5-JNJ|= zv|@f%o;=qGUbtb7zqn+Bw8H-2&H5SXegYNxWPlPnob&JgbkM5L$?)~eA|G-3#hvQ~ zMD5(xV@N-waU)+uBYSE)o1GuN8`D}h`@#!)`h+0VEN#Tr%jzTARlueU*tf4LysoHk z9L&cN&>Oxk-``eE&8IuSdOtO0yrAl~$2 zw#{pi$wwCv2jBVT*$BTn@=z52`)?s>H2cxa#F9t$rj2gZ!um>11KXdpI*uVvFbtM|=9>(UgqS+^QKYV6N2hnit8ahBs}JgTLNxGx`ibfW#-uP3O?Mk*#fF=)eUQ_DmQHR~Wp zG=o&*ZFZp0!fT7J-yUSz*22%Y{nVI5ob)INv~)XJd$n+Ru>+11Z*{%zFx0Rfn#wJ& z#?MCFpF8nwD`UE9-Jc<^L!8F|FUH^YH(mTlh~H(_+ueTOqgUs{WzLGEbh5kk^psAH*NBWO;CC-W0~t+uUFoI@%!Ch^H71gX}QZyl^rP?_eB?X>RVjz zzwTMFcm=(D`_+MTT$u~OkH_Y<0Y<^Cufpy}mE0C39~-AxaYCQn=IxfR3Cw44@9+K2 z?h*R0hmrKd%v9SBw@-CSXuo*C{k3@;xSi~&``)?}0*3p$&aJ=l?=E=buP9^uw(s`| zzn=PY^;f&UR;zu>?@x=4?qdB|AJ1Y=TfVaepFZx_rYh|})lXVe_1+Y(wU@h}@76k5 z&lbu*H+8kUoKLXyTgLBqhg7uuJ_+T!|9+0Q3*vw3-zMLYjuFt0dp*@9o_8cJm(&*H zy*XCE0+h$G2BvslI2ELbx~^~8k1V`MB8cBqOL_f*2M=_GtDe`cE>}GfPCuN<&PG_c zSMxb3X)v-M4`0FdWm=uGn5>g3LK6mbKME)Ejj`odo9=&0FJRod1Lf&OSQM4U1^K$J#{IbqSsij22NP89C7LW^agAs&)J zsjSm&iQeK;*3ylF-`1i?V$F;G=jcDQbgO)@RmY#Gk)`{usP+Gc10L8)$32u$n=D$* z^d=qFw70o0k|fP$o?D_d>K8sXZ+S33P02U6cB{)R%J!kwEGf15 zU~|&gXk3k^I$Ym4Z}d&OXVnkBpIWtrgq%X*=4V91LM|naE-=5)IBACl= zE7s2klv)v`vv+gI;CxWxFC)20H56cf|Z$IC7 z-vsNV?UFK0VtqpCM(OMH_2?Mmc@G#o8#m~mM^LzF>=WJ({9YM6e{Ip&rz+q55_k>s zQQ2aQ9ico(yldejKR*0#SZw+#;HkEB2z^+8C&H54`8{3q@;{d(t2h!7#LyrhFR4|A zu-K`qaL`D=pxS?uA9Z}-*uCkR`@e>Wcf(RhFHM5sJl(ELdZnEe~u1OWaF7N#6jHszl+RCuou29u?wSY1_ZBWWQ+e z*MolbJZI;M4}4>!bX{+~`w4DuPhWT5y%TarC@g0K!j@MPS=VgHdtH&p87Vr>lJ4c~ zvJLp_|I#xqD|m7USvTA4s&A4O7ncwg3*Hj;-xTdJ zhD5p6y!szr+Kj7_d4k66YBb7uWVfAc?JGd>Y@oH|Y3(-@uzkZqMN%x6 zWkhAN%dqn)IH)tI?n<*{$XSY}_2OiiDI>491y}nL z3`Q@q@CWjPyzr$y2pjl9zob99WOP|pLMPI+iS%8RS`SOfoF=DIV-y}$#~q#!SFnlP zxIlzRQ`A4v!(`0F32PM1aw0qnbBu6p_#@JP(=+qPQ|57ooP)$Dp zDidAUjQ9mca=UWzc(yD=4o^uwCT}#t?(k%=-%g;?9VtT@S%?h&RGGdQ*Aloi>$-i{ssMYau-z%3>xam3Gw`OEbT)8 zt?eiY+tlNiOH+IcOIQ5fC@LjGZlbscKv1_#kvcNA&=-+9g{L|u$QK9NmNjguCHzbH zs8UKmOCS>7BclAJqXK%9(bB8dPl`@-0g1j7 zRWf>F5q(Hpicdrc_nv)_y`aubnBYlehyR2RV)HaK6A1xqNOQjaabP>hGSH0?6xQ)k zDJPJvK5DuLL7)C{P|OWF*k|!%0UikBYjVHaf5dIItW8Ap`v|S~Qp08;nh&CMpvj3- z#Xu|M=Gg=^p~8F`Sil!Uuec#Y0ef>rn#|ybBMsyEZ^9JbHVT-eJ&+Lo75=`^m`6z%kkgE1N)Jv zf7!sOFUuN9N@Yi`Bs4atnSP^XAR=?6gZarx?}B6}S2+i)nFSmdst6v?u45wxLT>Ym zBZVeLQ+(NQw>c;16*++=%7+{_d&*KdK}w78e$Eh{GV9Am}X#*U0p#ek|zJz zh3q1M;Tydm7WWHw{1EIMXUrCtiVbDXHLI0lepTcs>Bfs2dC`q3we6$oyNhHJjGs@D zx9x(W>D$j0yid2U#2~o(GI6ZC>7&(hIv$q?R3e7=mzKT!-21w3fu(o9FA@1J4nLp$ z>gug9itfH`-+e;)d{7tP;mwbC@M#}afZE>Y^tDn1I2GVtd*1NQrBCgC@oD<-zJDUr zchP&%etSZ*@47$Qxy(!ze2C87dKn#`?$Ssn_|mwEr|kYb&Iv9zeMc~^q56358@vWS z9`(OZo$ecx`-i81obqYD*5Q|h*PMUQ0zNz5>f&&dV~t0G*L-eP2UzR&_TRgE>+*sc zZyT>w?p--QyPvX4{N5+krD8vz;100aN^sBjQPg7TNMjbgY}Ap^IS7q{H1wfYvYy&w z4c}IB@*dY&kKY-5CYK+O#bz!>gN;ILu>V+z!6lS3Fu1{AcM^sevVuQ-9v+%_}m-TigCC_?xTogFA3* zKUX5u`woLOIH&$RUu2)IbzUq=QLR4QSuJQj6F6aLB!10mHCbKwsa{S@?Gwi43SMRT z9bSC8s1VTwAkldbmY?ad`{;QPuW5-ddgG)V}el z%E%(VH}TIRJsveSiBB_0uSjrJ`u;WvodN!b*x_yb%X1J41SIdj8toet7GP@U#$aS> zXxpjwZI368k=x1b?LK|%akW&N%?A7PKVv8RRQ9E`gNVrU2f1`9ns7#du+)^dx3%|W z=jQoUP9pL@4XZgu!Cwe1rL-7^M0N>f5qRWfsK|Y`q$GZz;Q7CBRWVy&-oRah<1LZl z?4LMN-=X^?uP2Z1k0v|PIRWQ)vuP|OHxiX+sq0^6`a_LyFwE6NK~1+!DascWW^$q` z+R8f7eQkBKj{c#Q1?LcYo|{Kb5rwZr)fo7M@aG|BG?3A%PKdVL>vcM7%GEJeXDzBu zzTIsFinz0~gu}n#X-lv*7g<6dQLKpF>EYlDLQ2aqBA|4UqYY2E*8m>HL8iKx%D15G z85{BD39U&EbmzZQ+`Bz_6?TZ)hKpm?j|R|3R!=nrRyIuH9usqu1|m|5$1$32TeIC& zj-(lxsy41kC5VR>?)L`gM-l@|bwWLHm4@vmOX%q8_@=Vs_UCYFT_zTOFHk({81`4C z6X_RcObbng|4huq%YZ_|7LziDi8NJ&q5})|3|nnC!U}w1oq&7d(vSOJ5XdRS1h9kJ zu%y3X;~iGeGy}-!Bn)*(5s@hli}JKh{<7=HB;7=iiH1|wF1Sl-^=^TtgsBvf`2^k( zpA^8ou#ZL3#g~HlrQb=W;N`)+;Ea`Mu!v&ZSdN)%DE)YB+}zB+GhsltMjI zWE7JNB6WHbYWC=BOhW3&FX)5BqJ^DYf7OT+*^q9M<+B9LPv;dRY3B;!RUlkzbM_=J` z;!|ln8*(*;r3`(2~lFbUxigG+pP_Tqwbv@YRE=2E37!-yMbw%k!5>qo)IFh~O$(m2cSB z=@Vwe42vy@_Ad){>>$v8p#LiSZ2oW~ca0JJ>vL7*(h5E=zsaE4PzaX9h=EM=L&62` z;0Ox_+t6vuNdc(_*Cc#V`1tjQ6H0(MPToJPSML<~uvM*H10$>&%Ux?$s!C&m%Y@weU1`W zQgQ(IIdPHdEswUV*lq#G3#D>Cjg7|r+0K$}tDi=x$8z|%7-lyz^9#<+Pid9mg_YtZ z&*|0O+YB~dm*z-ccec&WkJi1`$qGOx8#mzycJifrU#(kyv!bBpV(Pm3PkiOzryL*(}l~T<6-O*roHaUFt zai*L7j{p4nWY0g(t{(v;OzL><3%`||cfEc{mw)Hj)G%~D-vVE5@BK$#{ft?74S-6< zGjt&9I_g34R;sM3yMc&7^<+zx>}M{!#kB=h>`jpI+W^@~-_Y%{8>quA0 z7U9qHb!)`_nd{dt!?WqWKoFV~5roDCg&!CMH0xZrQUa&H{AK#?NhHthQKeoT=4MnU zgE#{V1N7%qbbN)!F)`NN>9I8Wm4M-T;}}zl`ql)ygG5hT4Qd>QsL5pAwnQyCPD?h5 zT=5_Q)+`eAN1r8r#f2=s2ts8Ww6cao)vOAAG5l?9Lh;r2RyvQ!jp)LyX|A?^xJ4aq zoJ;ZV*wzz*hdcjRW31fl$USD!qA*Z641ocEOo#uN< zfkF2>T_4WeBljEL*XbMn57G|?f&S;a&ySvOPug$r{~!LqN$V>q`ycoLPx(J54G0K` zlc|xR6QgM=?Hv?c>Ms;%G(g?jd0owm0z!hX00tJFYCF59V2?}yLpVe#M zE%3O4gO){j$Smir_d`#ls!n%j;$*F9eceu{eW?}85~W1ee@RL6zCelDtLm`*V)>(7 z`*{2+C#ITbNw3or!`G-x#S)aFZB4Dq5YfH8zYbTzC{B?G4c0|fyRaiu2m$y~h zrx7jkB#o-&i$K{{trq_crZ5bg;n2lQ%T`cmF>$ z&IDaso}7JcQOf1(HRBWf0eRx`A*(9$S6)l13Rf`mF?R`>$Eri`s%7{Elgk&s;S$xA z`%V+~FAB zATIll;>Bhg8kLG-Xrfh~@p5^ym)i!Q+*u{NxrW7uX)beF7`5(zpZTay0b9v8Y-_hj z#4z&E@fGg(3vux--lW>r7D-gqwnTcTHamYP8c3E6@6QHhbeO)KNgmnfqDH@pQsxfl zY%oU#vx0g6L7-(=9BqLsjhKbDT`Ec2m}a6mkU@owACgIL@A^4(nIM9q1&gclk29d- z+<#3(IOHz9NZ_I{_n>a-(rV?rDGN6K>xEzb(waOtwZVi5g=CWo_pBF`1*18yBJ=mlhs+Ao4r6MOM{emgwcQfcVIHRf6Wu?hwQk+}^_ zAle5$WN^zu!T&`03{ut)nhU-493&3rra=VGukO_kE&i95w@YrhCbkWY0Q#Rp{G&t$ zcgJD(@a)S+$!iyD9Xu|GX7yO)&~v*85rSeHv)v|dV=<9*782I7dE?0Y!Orue9wq)Q8C(W6mOb8<6)?rKsjq#F@vlz5NF@E?M43b(=%z|2 zt1O6gE`GP0hwu2%iZ-Tg!1667@f?lJpI4o)rCvdX_t68Hkc&CgVxKE1ca56A(YcC? zwV@uXGSKCR{Oq71uY|dP7*>0ZR8fkfv~1CoUx+$A#<$pu+6QciUig_YSEi zd8)G&wuG+yNmyB~%PN%&RF9Mw#m}7qNopQq^Wjz^|H)Jm3MRg#k4XdaGC8=LA5U_O z(1Fj`~%P$*ReBQKDn#I`y^VJfMM78lCV;H2(z5I zN8o>pK#s%UHsTIjf=8HBSEsQy5;=F$42{;=4qIWv_8aERb3?OgKi4@epM-9W)|F82 z`J1@ZvB4H};@!3~Q4;M?Em z)uVPMu}W8-CLt(<|w$r=;f+Ey22b;`)K;RcQ6eOiVFr@f@frk9sF!-o{ zGa}CvPk3ltlJg@CN2+`W#QhaYgYBU?R&#P=nAilS ziG3q2rx4pMvO-C3Us%#{CK(;b!o-(<;YF&hUX~S z#3&ZGcytk|% z>V{9eCieI7L+k|w2C#kZ!D;S>i`|colX<%P%*1Yb1i{cu#R_Wjr%Ch&a6Pw}t8c;s zc0EhWvx_CL>INhZ%6ZZQeo(H%uy?`9VXER zyJoK0>K2c}9_T{BRg2olj>H51BwMRQFMK_m`&9Ik8As2`OLHU7#?x8PaKby`jZ+uY z$=oQ6I05bqBg)?V6YiT0h-qh2SH0h&s0FWKmHp1)og`j)HRZN&*eiMOkRwb1uuCWi ze@37!6Zr*${$tU#&;0kv-0IRB+mjeH08j5Gopcj zx3Wm{=tQrGvmG;=ve=*Sh1w#d_`nxI-K1?rK|kmlmmta{=+d;yqu0N1Xi68)Y*-0U zXcCR<_-Dx*Uf9_14eqhh{dkyJ*(hiODb>LK1xc5fx$U1w@pVk(BNXLB1I}F7MbyoX zmde;kq8{d@6g-CNr0TBEcm8_3KPBuJG9E{j9I>4 zMK@VCm^pp%e=E)B*Aw>cz^vsN+1gB6IoJGKs&ecVzU}l&r7Q8Ba7;^sUkm?B7Z8G8?zgbn9&+u{7EmhgB-*W zJe=hKC8DIKihKmen>CS1pTWtT_@mccVkoP_x?s}Y-!aF0YGj^T^aPb{be>|1p&yDS zq9|-LB>6mS@uy~g*yVmYLbf!dz>ih>zuy?jx)jo>!A16cN((cY5(f!hVn$R0Zajk# z-mSKYji~LY+ml2<90z~H(|Y8Ys>$0K(R{GyV;Q2t*m!{^ucIxw&ifK~E!#>tjL^OK z0(MH+gC@40>Wg_#x#^0uUcP?&&6)9ELs!L4sN`kiByCalV1i>K+=NJ5WKjVYX^%a3*Q*#&?_6hb& zKw{H3W%J;HPn1~Ch|;vr5{%{GBiYc$j<(uwK;s5*MK9jf0GXSaWGp3;xyaY?1g+{W zT9rUkF4Do{NgX&`UJ!Tra^=PAF49j}8Frb?9f#mQRHYT_a*FclDc%5wZBg!lG#7zC6$s3!{pFUeL#9KtfB)Z`0X=&0 zy1tuyguYzO69h|b*7%_br&bT!5zE&Cre`FPpdWm{dZ0(~LC?q7WcE8l&`jc@8V2VE zq#{dL+Xm&GKFF>=-|JucuY^Ad+(L0tHJ<=N2_r+9&dIjULN_-21NA)*HejVcSgGc7 zHrkG#01$z1GVW>D8>kY9<iJD#>lVC8r(`d|zxuHvNXZFhq~mTU_l)#1|Ty$)1qH_N(KQFqh%bZvr+=tPUW$#+~KZ>64TpMK7{P)NVnW+#e$b8e(%!5Yi}}NT96Z7XfknAK#EJ zE~HP4GdBoTN}CtBUCJ6KZ)!%>pxZmq=YfZ6!UnaLTikb`$d*8JdCr zY^mEav1=%O%h#)XAvJqqs&P7&t%|=W^K!_ok!QlQ)(s?pT;fTE;?b^?Iq{7${VuVq zF%N}Gk4Nm6l}_POj&o_@1`by+I&!3I2l=;b2j?y1Es3sUoG$l6f7k@^&2x|NFB!7d zs?^yC8d%rHf`2-iYZf}NcKX!&X4qr~cYm2{PMh!%H67Zlt>4L8=xn8j{I$}GXBG37 zb}{$X#H>o)_eju_`DtpjV0c&oIiYicbD|(!Eyp}lI3V{^H^oDF?N*W+OWLl))&RnoXn<124KM7-73U(!MFT5U6UAQX zrD`PoCd-o2nWCMbha0bsqi1WKAE&tbtu2oDE+5eJHlVI6+nnfc0se+`h-dp5dHSiHNChbxyNf`Z+LG*Khyh*qM zG`1d{Pyw7!fn&ugZ_hj;6_%HD6_s;Ob}pb`1CB8!^ju!!>rRZBkw%iR-oB0xZ@xYU zdiMn0BZBnK0vNptte;M|ty#5V)=EJkC0)yPlYY^P4^?}%c^csh#uwljhN18#=1LC* zC-;tnVF&HWAX`Kd~{nZ$X5G*nkf1xy?3vuNfKan(Mudb>57k?my6!_NkrAoTz8DIKvYFe;5D#bn2 zHPYKae7fn`t_8A8V*?i{u)pYg&*sR>DN!pJ&Zp1rAj+L7yiqHv{@j1bPk{$^NRMFW zj{nfUwUOiIhn)76${JT5*ijhG8d@mK^{wR^YhV=5NWZwRP}jk|;LWLz}HKIR8 zBePK^1k@7yI(^#yTV+bgNlM8~qBSh+3m=5iS2al(kDGw6xHN^hv}$5k5@Of*UIui} z=p2h5LVboWvOsut*uMR<))jj;uW6qTc#k6->*Y^9os1C39EUKVX{<3AU<>0CW1H8%&i*`SFcj zd~wRK8U9XqPY8Z%3I5*z{69;mYeTnbOmCF`%IHyNHx&QhD1t2mU5mIjjK5YY&oX?m zB&GuqjYw?RJ$}Cmvwd!@%||vhJCGee*F=vtYEeD@_cD7D9I+!UYUR7MyhP4J0vg<& zht@XB8{gwLA~cAelf;h*!ZT?fr{4E6pHDNtDTc|LH&R#bP%xjZYp+9RpVJ9TMy?X@ zR2bwH{ou!_>7Vp+I%Ha*D+IK3(%Z@3T`pVOcQHGzgmy~)G5UX>`ZCfLKKst3Z#|3P zcnJ`%TKpLU4_gg9#T~eF{*hHS4%{50%aX4ukE;8dQ|rFW5br9*D7yK8j-jZomZ18S zj^lQ+Gpxi8@q216O60886G3AWRcSwCjCkaM`4pn^FsCae60Wze`az6lpAR3QoIOH# zbylA${#>_lZGWah&&j(_G2Is24b8pTKb^^MP^UJ)GHRy;3r;}ZM2Xdwong_|4tCdN4d(F z;t9_>T}&XcTK}KWBE+I02$+|Df*o{O)?hX8F(eWCdwfQ$d=cUqpflU68#0E!79X$~ za%0#qq7b(zUGpkT(bh*XR+JVUG>#Nk`bQ>Ha0tCYY{~)crI`qps0rKr&Q|GU*GauRLBog1bUQR&NiT$;BBAn znhZE9&D!qce2C#!k#IYzI6FwBUW;=!((`(g*f`;5c0OdL`wD=>5bIu(cf1RM893VU z+B?jUoS_rDQF>Yaz+E25cRjQ!0-L_(4dE)jZm7nyXPyG!al?zFZoBBfTjB1pXIHD_ z(J!(Sm8(PfkZDQ_fIhyE29g}ARVl8(lUk4vo`lv=7DiB)AJ%X_jf`jYy&Wl(VXMFQ zeg_U5=iE!EQFTD9jW@PQX3*9?Fe54`^2P2_LcTk*UQ&;vo1UtEida^Y?o=rEyrTEK zP8ep-`DHXQ9kIfz^#Ujr0#e#vo~D4TS4AIg?g?DOueb+*l-*aWrdx>X=AQm(*^id6 zdUBXz#GO0+vU<*gqk1GDV4F8aRyPUIZsCE~hyJfTq zW)Lc7#%4b!VpZe%UgAkbl-+#ofB?3QZY^$FtImox;7HbF# z#$#JhVQf;fsbSCMPT0_w3o6quv*TP798?YZ5d#Pb;C7#~oa|aB>db6#pi=7=wfSE} zqO8Yj<~Dl2Rt*JuBNH4d*lVK@m(mZVM=M=M7zIK#yAN?Xnve^A zae~h~4DJ_-fcm8MSjd~84(#|@evijcz81BxEDgQL^nODKBoW)w^z4T8t0*Z#_uRIT z@1Qr^2O{+pqDgmvQ=GwpiZFQ1kd@0zLQ*#YnnL{47$x0_3}tEy+3iq|8DhPHsO&XF zZCEx&{|*R)I^m4YAK8Wy9EuPl4UwJru|=U(z-1Hzp`lQr?_d`qg@@^dHXUqGcOX$ZIsxJ(^O9$r zuqPcTv=Ejj^%U%Wu>M@!bPxWerqW#)QgDIs=>L)F2Bdm_p9dKR^@a{h2uS2w&E>}v z7gPNnH4ogiP_%Y#b32I?I3*;lkoW~HXU;`#cyyuydqqQ^W80UTtBtiqw;I0!bd52; zU|On4Lm`o$4^3d{L2a{au8SRF1aD@FL&=K_iRN`ueMFpGU|zwGHebC*>PeNYo92yCRL+~-*c>W;8mm0 zggnC(Bg4k%d6Q)B$JjJ4(z*NZS0j?CorE22R$;>=Q?WKfiCqFpr*(6zvGZnBec?Wr z^O)tYtUDBYQ{NClzad`4I6IAyF!{(56cWbgk}KO&fqtL^8f!z0qL|v9QXDD{FH-sL zY&FQg5@g%=^|#)9*9D|3N`=aDKU+M=b*0ahDxy5H=#xu|b)vqmkQ!khAo4hW7TmTx zqR$dN_%zHl()9h$nT{f8MLx)ql8sX_7xtl!$vm5|zZ3M$pjLCB+VEWw)IF6G##TPX zHi~W+c%EAh)XXHBq{~ywj}2_inOyr0dp+zZ{~7`ctd(0nw3=@>mUe_a0g3INK<1I`T3@uctSK>AIA1gV;tw%whsXfZ(se{s=~QEZ zZkWqv)P-Pk0m0E2VMTUF92}b>Cvw zE%l}<#J3VJ#=0acV(+BYv2|T=$h<87M3ruate0iUmt|F}aFCW|0j8Ii0-K>;HZ;)# zbJE96s|e*^XZeZ-p2a;X`w0frZNAuFGtp6GrwfQvFO60)B z;`9}#q6#_qM7p)%?1FHO`!;>xrR1{pCvIvB>Gcn?qMxnT1du9W@B9h-sIf0B}xfct_9D#d)1Vs{PGpZxGlk^r$vT9j0IU((|eM9jYpS8y9C!LmGPCtb^-GseM|+ zIxC_Y_sIe`2+xUcj%kUh+|QOr^Z*f;gcGWn&??DtU#e2ylCnf-p~pZ3KgGsrB(FbD zfoK}w+=yNYKo>VTEFzf!0Zj#&tZ}LIiP7gCYI0jY1*1qhdIMM9H;FD(FY`m{+^+@_ z3F)ODbD+eTStsJSlwOGlen|&BMzw_D&JFZ8)6ok6I|)^(a#d63L37~oRN3LM0XrGI zc|thr-|*p{0URiS5U)afd0x?=F8JZ?RJ{jUkdIyx$}aOOVhnQhqu zmwsKYW<$-(@W7s8;|t~Ju#qEQ4PS0qdA7=PExLB&Q-Vxej7D3`a$A;cTULb&A4*%6 z=?$8zL2;KT7{{tx8NT*%;+qQ}4!q>D3OOEpxK+t~x}rsm^0DeDKHZuoZzXa@SIp9i zmPD>D5S)|!5B}{`i77IGzuX{&fZ&LgTw>J<7vkW`AC`m&UVz@9|D^68!X-#;Y(vRG8|qsOXbJWm%8aSx2SyR zh;stzv3M^pDi169iKPV!vUO-V@o5G@(tnUzsaxK;P{}5+Jm~_COM$(b_hZT!=`%=4s zpS63-JBo`F%at{W#+z=ErLzNrx=)YxOJ~qz53kBhhNj6P-Ge`tGUC*#!%jFBd0YR}Qd{;8ozh$e6Lv?W?-IP5EGFCRFHS zSgB^IoXafaLp( za@l#ouVbmwq3Z%xzI@&_0byXj*YV#A?A}H}2karYLhX!h4wo<&gS5Awl&8niqO#B5 z2V(?|0xv*=@ae#A?t9cRdrCfvp!j1E&)T_I+-|qbM$~%mJfi*^XBcKqKS$GN%CSS# zhcadgf6}TmlS;uRVh~qH%KMDuGL(mJkk_6pk)F4D9p{*Hakx~&868-*P#u8%`lR05 zE_P(daw=H`CQlD^xbI7FlDctj^$Qg8U0WWaUaV9TBcBUAZB+wp2+Jfe-VdoyOW7BN zkFWMhzZcvs0ltimyU=<UeW4!G~W_+43*aHggyM|GSZ;MN_2imwL-xY;F z$?tf{ZU+m#Q}?yPtMfXHr@7mXke2cDn%i&hrVEZJM5EXN4aBGLi|hq#omoDn^0DKK zosY_+vfO`tnQ(lY<8P3dPg`m2_2&yQ*co$^oEPi%tcXEZ3fn5&)8DE`gL@M*1YGL^ zW2^f2zV%~SpCQ*NDg^U|S_2ALLqyw$c3sYS#_MMWv=UuyyJKx-sP)sIcS*;jZdIwj z9!%GJvX|F@=}UXR&5b-W;lJtckGu2x^%$FdprP^)oTq&GEf4>O|3qzM^fx9t#GGR) zqM-VEY?g@0tXov4az0fu(!pdJoEf+{if{Wiv%B#BE;Vt|p8C|%e~ffHs`1Yp(m+(m zZvL7+sGHYVN;>Cu^Q+&TSsas#-0MW+z5HDE_G|413IuO2uZhy1dM18qAlaUDyC_+j z_`YFQ$DIE>nnWDmVA>Lp@+~b}E=%8)2(ka7VWx2`oOaqi^gTuo3dT6vv?^J_aA7aJ z?vmTplbA5zGkcnpSdM`5T z8&54P%y(U+7(D~~JZ|?oR(pH%UAnm3!J<3^tYbqq?a_3W+dBpyp2u{~rw;$Ay;xQ5 zfh9mi>#QChDm-puns>%C8?E+!7PTcngT}W~4oy~0!M1x>`yM}^4Ip`MycR>@|Naw(AN><@KTCfNd|c^;CgB{ z^g%Bv)SZ!iU>Es0HAhSC8)dLfjCNA_;$IOXCXty+@|n)^86J`!QA=@E=4RyJAc6>7 zH*NbN$LVJ9)_mH@Oa&&;PRt9jYb56;YQtX7BF52cU$^RtXcI7H8O?qgRa=Cu*J1uk z>*8nU=7=kIWN&U^%0oDmPU3=j1k1|9t$Mx|kwvq%%Ug*lJ-;@VT?8}vFwe^hRWZ4$ zMZ_E(X*w=J<%=df%unyUUdxCjo;g&xC(A*Hv|jUBI+aVWKs^VbZnc8lJ5igJ_KmWY zu6^=k%)}?b^H(JEe-5I9F}72fqX--BLv;QSqIxZ>Ey@B5$&#H70__0mC9((uZ$`Wg zgi82J_-Sk}w#Gl3X|}9s6JrgO9m@smt9#L2`D`RgksPbSFU>6^N^ZCMG`neo0|te} zht;uo&pv7$24zHmccd5#UwU8E#DMXtYEdorzn;C+;MCM;3T7VX8d3J>!Wz|oLo6$@ z?6HS6gSId_Q~zo)Y$iKMm)~69`gx$gj%q3Qo+@c691}}c`3`(!M zS43qRZP(LQq0SH0L z6ZmN%jT6vK5^OJFjuXgSWT@(%Z6lBV~zpKqT)u>H5>& zqUi?P{ARW9ovuYjGDaaBcBsKtFoYrOt#)L*>SuHW@a%^PJP@Z%F!Xz^J3`nrLz{0A z*>{Lm!k!y3wPh;*9#y_t`)T7FwB_)*lMhOqHg+nYcGHEQh9(ALJ- z&A|_MjZ@%Z=6%QXFRL{0q{j1Q@l=EfgPRcH5x|N#t)xlph9?e~=O<=bCIdCbkQ0fh ztzbAwtkxQCXFPt!vRt-muioBdTOUtu@?JBcS$S0D^oCkp|LCqyFYtF3%hjN5kn_R)#IT%)a$Jf}d4!S#{EA-E=s^5a2V`fcJfhGY{jIT{|Nk6qFO2gqGPOEeP9Tb2g+#wKIhC1W|=J#}O- z^%&9=74vc?s)Wa4^W4=npV;uv3q-%aCF$PLmV&Zrjf_!nlC-gsUH7z8_|{f1B-_eR zhbQqAANA<0s5^a{iJgWeoU4rA8nG@x%tC6B{wTxp3L=Y$h51DkM#7co?13k${2MMW z2=GZDlHxUkm5+%-W>gwMr}nRmk2A>guo98HBT?~EM3$VraP-(GrJh6`R5eT-c%Pu6 zxKaY6XPN6DRd^}@Hn|A5QwWNFbf~BE%xJhNdV@oMC{q?kC_tc(#S~~S^`O}F{$t9HRbdsSfyB818`MnS z2^Dq7=SREu?u_n;E=z=}-=5zeW)PUD> zis(+^e^*tqrh$ll0A*+gssbXoA0w%Pzo$oZnhPYkAo8e;{j9WLPg(YK0qx~YuC5D4 zjDXl?kJy7yim)UsaV(N?fyFUoaNlCvzoHwi9=Q}3Htfn{$uyg6(eYVRHC01CQXU=S z|Darf^|Rre-JGM_{R-;QZMd4(*uZ%EN5wRTA+2t-ZDDzMC8-r7W!R=4G-I&XZ{sO$ zqojgYD_O9Lp+28^O(a8S`U+#*NHBF9qrdZ-gf-l7@rbybkM4a2Bc!cBclR0}$=&a!QwEcJ@Sr$Cxp6QXke zlA0KWTUF0ege|?)G-RZq9K4p=jSNYbs;N+0QgN4(_RlEshg z=+IDm_R~Kq9Sc)S`DPW}|K*HtV=hha%Rj^B=pfM^z-kBEyErXtuRtAW_eqI1Prq%v z3_}RRW(REkEM^)DUkd$22n7gKROR6b&a)hZ&a0CpAf`aP)Flz0ijPLh8WV5`&B=)& zd*$J{{|$!w6&j{5vL42mqz3N!(FJh;DlCYO3?sVlJ=Ens_GjaXe`wqer((a+%!7Cv zzGLjj0$dH8%hoR@dKqN0@l`vg4d;Vbr)#zAnyDMRWbp~~Jc9KDeiIntX=~PTtOTWj z)V99nSm*V_^*^)2->wd@OK)^7a@wu&9L604Nk0%WoOTdsv-sv%a2LIbucnwroW%2r z$XdMZUslIYVI=x=*xWrXZ~)p3x`4;}DcXC7ES|>qW->B93vQcj{Pyls zrMvmEI&vbiz4>|(U!E>7GVd*qc#IeO`D%9L^o@2n&B*t*wFz*h6LQyG{(iqZJC8Z= zJq|YDeGVt{1r9gb$+~UmFT@BOE+S$aw7h%Wcdo1I);OL8?w9T<4X8@0`TNYC>{`w@ zR?CMK@G6&qt(Rn-lfoAng}Qh47^0PA1xDWIUhpZr?CePUtM8Lh1$Q*}{& zg)8nV1)uQ9%Af3Op8@BMBYyjB3=QX+Cd+GQ`~TU&fSQjhx~qUBGO3(OuPN;VPUFd) zuSi;TM(bRK{4=6W_)PiYcJ;%zo(U3}tiC&WHU}ze`C&n7DCxxj&_IQdFer}Gx*}+! z3AjBg${%PF22ADTrYQxaUSJ0Sttq*-e~qB#=w?e{5RSSVs*VEUJ%mPo21>Ous*m92 z;4wx70Rc|Bqr3AXrU^SYf`!LMGcwv}5n1FN>&DuMMR0tm^O5@r_ENMsq)wEZbBzNF zT;V*PF$prJa8jOU70_2ZTK~~fbcCSCGDxJmwrH9{n8b0${$$WZqXjwhiVtqoj%mut zHfZN?{xJXXh(_+69X&0Rk2(-pylXZFBWUd6^t&giR{guUFO-~(P zU;!A~ff^motZ~&pI_*V%ePddBlIjBb%~1 zF^~#D#`^jFj102}{J)Qm&Mi@8A}kP)7D^Bh;{Wue|LY|)wz5y|HiCgp)`fvb0(`XA zz0uX0uBBb)(tqO7lpfI}2VDL5uLfz0cOlj$4?4n(mb$6R>{3k#>C)PS$%zT1GWo42 zBvF7)&=KoCgd%b56q3q1HR#AYapK9PkTHCJ)c*l`-0XIV7<`AY-K^5Sv}IGd-FDHb z&bID=qkVl}$-TVZ?P_S#seJdE2DoNVa}=(svzrtT!-~=JX)&VP)So})x>PAw$zh)R zkwPEH)SIniw3pU(57KB*2i#lp#)v} zf3C<8+5_9#hIP6lYIo}1_M|2jPBm5ksuJt8`2@qHY;wh+e#M$au#FouQ&xHkE4}eB z1(@Z=+h$zi{@lQ;vu>4L1f-8?6SZ1CzDA`tohmDI4vW?XbTu@sx@m0y zIImn@^;8ODan{D-c1mIn`jPd&)@>=JFdW6h7t&JLo4VzgaIWIz4J%PKt0sOa-f;v} z==ZHrnGR1=V8?OBQ;_ccNTU1KAfa=rql+J%? z&xJ6ukvtAlrnGLpr=aa1ZRgR<(p(;O@IzG#Rm&dzJer_Ffu~FERT{OpFsu!*YSX9E5(@hRC*8xo9ErWYPQ7No!FrgX zR<2?D`CjmlpCT4os30VreD)tIa-!2_Ioc zDPM&ayBOe=q&|@U+*2e@x3lr7OQ}ue4Bko8D?6a1cxm1L9evEV;HlNqhLCBJcsQkb zj4zboY3I;^=^X!Ve7+P|;2!ZX^uc0hbo@7Y4jz!PbF!`YU1LSMjUN5>_WRAZ>vhh}&7FaIMz(dt#2`dStxnU9VVAX$&kBA+Jyi^TVte`Q)rB>3tlVNF% zG&P?TIXb;~HNB|W-=)78CLypK+hARUqcK^t&4o83&Zctn{7%9LNp6v0YU&Xj2}>-{kM&8Pz*^q_m8n>Wmc2-mB&9AG15GhrE6P8x>G6*UQGi8Z(_1Hl3I z;~o+cVD$Vz%u4bfgapl(1{xhERb|~*`u>1chcM|JaJ)od8_3Tj!=1>0`lj~%>l?BX z0i0KiyNB|VNc`$v?c|KcM?$dwFhUEEu;IHQ#8pAgVMuL(YPkQ1e(6L;8HUdCGv$?wRou8eetcOaNrokp?A=&xmIKels_GZbt&#b4pr}1`z&&{k_gxWn5b5!9DAIOpq;9oy5sov1 zH-&l1G}K| zFk6ptEu7HR^(k5Qx#Mxv^g3AS$Iz_Ln8Z?BI0Okji4o-D*{3 zdvXD0M>q7*W+RZNk_5Jv7L8~rt+c+zp|i%}Gs^c|@15QIVjZ4lwH{J%G>b6Q?hhYd z&G8UdK9g~JX$&VFLlpKO6mSGGsF5&GqX9W4(!!eb2^1>1uyaF>%+k$0K$gVBGrLc= zwhcu{lavrkj*Uc;<4;3U%rkq3tok)pi*a&&^uXWK@*wurcB} z=DRB^YEdHYe)BMT6Wf?KS<6%$vk@yvNj~hk-ne@JZg_fl4bB;Bvymq@XPU$-z2+5K z9J`E1fn#Ki1=ec4%t}21@bo}yn+`Gqb^KuHjB*C5NnKRD5EAOYjuq_98Rff^m>_^qH8>yTigaHcRe? zz$oID%D6*>)%eqhCK5{#Q|`xEejAmBJGbq+eDGyJVG>9?ijdb8;P2suNc{59v1;@w z8C5ChD|3EQ!gay%E^N+g9D){2zDjsgYbM42gEKJNnzaPUs;C-Bw;6e$V!0;;DF~wA zF$~9?FF8W`ua?|Q!cX#-{S&a?G#}eT@md+zwrq2tFBvnqAx=U^*NP#k3y#uB4`v>E z8L&-V{n6&JNv}@=Xxl|{+9LTh^NxlRyA^=C9lRSd`a25#>3l6SRC1EYQ6bk#@1_^U zA!*p$>mv;L*bVtG@|6T3C{m+3&FI83pTB1h-GnWECQEm4 zAc%?wV~yfYVNxp?jVt*>l54-Bf*^6ijcun3Z4HE3lW?j4+s2O7Oy<|JY#q@~BSy{O z;y;J3^L};96uc5h-t%C%L4Q!s-y!by*olI8py|3RuRmr+hUTstxx>)A8!Vc+D<2^k zJ7Fy({B`HKAk=InaG&C{uUr-hOYgt>E3PErwEY~(V*}1d|EtjA0>|}owB@N_G^?TJ zSbxPiyYH$H_>oV0D)E{T!**jHoV1~KyR}^MViiWwk&ieI?f@%BpLpOY%6V<&?wQ3f z#H;pU`|lV%q%B=yb21cRVe`d0D>6Ik&c_FH#knr+*o>_i-(2VpkuKWxHek)#Qb%pE zlFXz9J&K$tw9R+RxkiCVdz`Yb$$XBa*m6H7KQBK4ND*PO!?)NpLYo*?&moQt6q=;5 z4Y-n0m4E4o+xb_a^PUqzw{cwq_WNSUdKUf)rg^|a%ZMWMl8mOV7Jr|@+E)7aC80hH z;!Rl}O{L|qzk2A>r(nBNkz<{aqO18LJR-587zB;aV9Yy#dccQ}Wg{PC1H4i^d3M0A zioSpX5T9L)nWCkSx0eW8F6PO1;n0xc%Kb!L6e{+lsu|@fcy)lWP*xx>1e5C9WAqH( z!}Q^TOhkRsLa4Yx61pl1(F47KIRvj9T>`q)sPvVSCQOuJd_PkqP*4NSoQb4_6fPdP zw$I%tZ20Bh|C8jHU6$x47j=^$R`et~er<#oUzIu*1U!| z-{s=`?ZS>|G@eEdpzC`sq$9?jX|cjr^Zglr;U@VON~3sVx^wgc%Q6t<0WNAJa(;qG z4@35&FuAlLftJ7=5%f~_sUUhMSz)07VUz?<*tH<5DllKa9{A->8?f<++Hodez1t$Q zL1upQjwytwoXqWU|K=~OL4)y|8+1j#o5dpfOMf@Y@D=szR%-7e^3I~Sb>JdVJm57I z0#N^Zemmrqf!uaJJ(p&Vt-18xUsmunU?c#x#tZLLHR~gQczB-h@oVm=;h8BDDC&1f zL!2)q`ReGCS4z5}A1^8;aqcHmcE(*r?w@qTpUHMusGR?gPB-GX!fc5jIE00Zo83Yu z7?in{JXZ6vSrZqAMet-&6BGC-iv>tQ^62>@@-TE=#>_u%pKPuwbACuUnh9_@-wK?v zH#4d@(_S^PB0nkzbW>e7CD#T6EDyzq-mnork^AeNWlb$1GPC-#FzvR|RT;O?ANMd8 zA~i6cBB-h~>J)gZ^n+GeY`xU~0GK=8FE+5=YQMik zJ;WC{I|cG&#y-Tu0r?Uy`H}?9WAsw-7&}A6~a*kGBYIPI9taL0HsqTLB(kUlT?a zJEvg0pKb}+5@VUqemL31U{3lce$Z{(8Y?_2g(k`N4`(mzON~YsXX_i3Zmu`(wfB6% zo$J<72?~2OX^Nqp|3yOrhr=^63yCenfhai{uTDVqBFEVlKB6~{zGn78Hpo0>^wkC0 zM#f$F$tM6!-X{Q(5{v!>3W}pned8FkR}4}|G9*Bj?DrD{2+9d~lKTPtr`Z6A z>~Gpd_<2b#D|jsjQ{u0Ti?&GLnnpx=R?F!#1P0@Pzc5z#oq@{p4IJaM4#RV`<*td6 z_q58Rc+kl+uIPycr#5OxS{{_)M#`umN?r42>_;lk5yAEIHDwrP=DGnGC7(br2UR;zK1l(`Cb-RwL+yy`_s-$jP6*vePkQ{}+D1hE?(dQKdf+bLx1t#Cw!EZmY z*cB3n+G;BBZq(E_4%6La*!TZPvVNd02JBPeFMNaLJJ&E@8p<~qOCz=4hc(YRB~V3? z=`YLH`4stZE&ZLoTM{|;VYd#FyBws4-=Kxxsw)Db7Q0VKL@&|#FL<`*>8czB-{dfD zAA0*DBfv>QZ}BBj#3hke6F?6{4L;zVY!sIDyLt!tg>7k-?X9{X&Xb2k><%k3nHxbI zc3=dKzv4%=V#{IMVP7W1eqA$?pFZ#_TxG}B3eI5}(f#Z8Pn@90`jk1`=+Pwc)G!X> z^U@f7wT@zQlK1*Ajwzoob=liCT#9=#osVUo5a0^GURmj>86_*08PlToUE0~CJJsR+ zBH`ljGTkCS?!@+;Lke_Se(LYR+x0=l*C(cl?3_W*$oQ)>HV#+uccPRGp9J$&(nCLX^XO|ocE8it zpN#qLK{5cPSvYK!wm{oa=C2yw!qWNLZ@4!zu%h+o7H!bChy6y-DHU z=o6o^yIhrCQcF@#&lsGCI>l#fLiK+*8_Bn8JeKgTV#Q)_L#~+bqCkt782E**7%T6^ z%wbHnQpV5go#>d&2S1{Vb%SHPVZag~5OlmAMyzpjzm^%*i@&eVMG|SYcPK6G$ zKi~9pa{5!H_lN$ZWu!)APR=&>=Mg?uZgeT$9uC0r*X2^=o37g%C}@an;ZL1MlFH3z z@?}#e>xJuVojmyT?U!wUHwA%xuZ*+`EHg+7yu8O_EwZV(2g?kvZ;B*U^2CH3dng$5 zC`?sHb!VS8b1@2#@&F^FxaRrweFhC7mG3jHs<&)Lp5z%pT134g_ZS$ z0?)iIWgKoZ0{!cCViPmB(cO7}acMtw;KX57?nIx7Ctty;N?5-kr#KIm@{ zRRFCKwGhesCk)_U_e2IU(y8)e-jt7e%(lrwcH6jt=P`zRj9O$bl;6X>>_b}GHQ5Z1 zm=t{r(lHLEr?<As&*Y>E^**K5r^;A7R^dkA&Q5Z& z=BM07Ap!Z=ZD0w8D2)~VEJ*iS<5%cYBW3jFQ&f<(dCZevB9`Q=S|yw@7NdGiO5c2l zga>MDw1=u2ahnoW&IGfZgWEV_jC)6w1Ie*#J~3d|Lf~$Qc(l*(f$nYsO4x%+ zH)!Vcfgiia%OO8F^wug}rJMg0DAz~QiaoVn+GRD<>aZVRL;@|!NsDT?UVw!;4K>ntefIPz zm-Er{%NOCX`_$;dWGY8Eu{he(TACKXR;$P%6vrJvym5+Bx`=n%@NSY7hK?{umREoj zG{AsruKYow(6gO3hZ*7GZ88c9{K8~wfb6JELC4R#8#MV6Tp$+{bI`nd5x!meb8s3S zYOMT=8hvqCJ-F}y<143r|Fh|Ih|@FY&Iz>7*;PE%&-5hfkMWB8Mr zG(O&g38w;!M=_n~rE?QCB1jlu=4FBq8N)j<$tuAXC#coLe);InGY(xqK#X7OxD}*J ztB{mam;GN{on=fWL6^31XK-h5cXxMp7~I|6;lTzQ+}+*%!QI{68Qk4r=iU9X$+tIy(JniCdf20 zZ*XkHtxLpRB`JXqHacwFxNF#8Mru!uB^B&0Y#2y#8UhGZfYM#QhJzZY0|=r_Yy`l& zu+MbJL9}zvv6s=?@ghz9DxC0EW{^6*aawv;5IJS~nj7Y7CqQp0mHK@z za=cI{6^=0%X<@xlhWkt}t2x4fW*LAa+8Uc!u|Tw4w42McSa20nWfV2X2$V}iAcAPV zCx}?I48X$nK_fphDyQ;>-8ikA)2Cp<$^z-%(55l6p%v8F7&VpAm(0|uWMQ67uAmd? zRiz;1D}HZIEYBE+*=JtSOjaM1NMzR7C)X<&iXx>^7YAk&?*(pxDb+=X4Fl-zjHt3C znQ~7std_qpfS??J^Hy=knFKR;%&3iiG|l*0hu8P(3rXi;J^mQCDnCqU)h_L=x5E4w zRwqBz4O%F^Z6>>E-b_H+Zgr(UbZQ`}F>Xjiu!wFPX6s9vhQp`k(&6H^-PJ+&U$&Zb zOmO3ay<*~CbIn=$eb|jtR0B}l&PcMyw_moS-1k0kq^l zE@`hm7PCl03E|Oqs$5u0HQp}SQ1_o!cA7S7;e`Qi^@V?MdlbLxmKaX@_NBRLKHF9x z4|j9GuFmL43q#bVj(5}nJpzF^sm8g?8&+W8S|9!D3Z;n{vo%^0r2qqq^+v;t-OZsr z?!!P7BF8svKU6InV(z|II$CVWxI5v0>~a4*AWU(UAqfyB#8=Ltgw?D+ZBsJg6rz&% zg;gkCO{G9hz|OFR#ax~sPe5w?6Wifi{^p6+Q$Ap&$PC&JtSTzKx07hqD=G;kcx~@H z`r`!y#!wg}(~_wY2CxUIfP@40loeV>iD>0h-1LTvAw{)rgOfse33-t?@d+hHIX@uqH)KsiQLja)G}NQ#?FE<@$s|IuX+^MU zaoq%=zS!7H0aiBSDqHtf1MnJz{?Xp>)b{-$c1QeTq9g*rhgo>oSTJZZ(CRfKBZig` z4sl)<4qX|j2$IV@(QW9`WMcQNxiZ1M&9+kK3&jj44Iw$HR|BvrOa&JTlF<3p&{4QOj+%q9t(x^_=(07=PaXO03yaM^Ik>uOc>U*@Teo$FoQzL z6>bH4WWOw0xTD1tYL-)qFvJFNCaJ2kjzAba5E&I+Y{_L^lq}~@<|J|m3PlS8Bf)8E zhNjaW-4%#1E?62iaUZcmkCS1y$EeYeb$*bxj9StWS zJ1J4+1Eg4f(Aw1}7u_-F@^GP@OqfDy)()d;+JX4vLqws#G@G8~o5E52a8EVOA%G9M zhb|IobE8cdx2o(2VsOp8v=?dWNT*W7icBWaOItIZ%!7|gfABQHhR2LFa5wZ^oEB>LRdzQ2&bK|tt-zL6Zw!|f;8q6K54M37=7HD;B~Trrhth%9;e^|otlnM? zYgP+)ok=f8U%p7+prP2HGuisKJFi}?wq<=8P)wOT1i%|*)~oC%tLc~7tcYKOG*{C{ z5|IK?E(|KeLFo6VMdt3^R}$ia3QqfX{{v&N$+unRQLcGEz2aPWi6WpvRd@-22zB^D zJ~OE#G=+^|eN-(pr6jCwfK(s=Di#b^V8j$YY;ZS82RT^PM`XSOH%NyuXtxramI%^c z9OP(J9aMqAwvUE_3tM|k1NZMz5B1_)Y5C1eyU1WRIXYTRFe5~=J?A3L7i`w%usLU> zB2J?l>*^0SPk~{zKp)4TR0Lp@5^BG}iUVtw<^8l%ZqY}m(?Xf^Weu33>BYsN4>Hr1 zKZ*0B5``JI)|>@`o*S=zv5Z?mC#9T56r1q~$U2_khUr=ISXCv>p_bXW!7<|F1^iS% zVbQkUopTH*jZ=V*@bsxno@1Fk2Jv$foeJ^h!G(NFp@q(aQd)^?-2iaxZnX%n*%{Rq zS)9e8Vc#u+qp%FroGQm)um;o%pjdP{SCy^AU_6f3gL&6WMA_37pL4=-l&yOc!@;hD z*-yzy310U$ru0_7;E;qogY)Z}8fx%EPl2#IKFsE)2i2=&S3nD`PD9nfJV&#j_HAoB zK31uLHH<=&`{;9Dk^oBMo8TQT8oj(@eoSf1+%PO_hAGZlP6v>?&)b6gIew$s8det_ zpB5w3>erm9QKfA|Ce(Mgu~>uqDa>*@U?X{nYbTjVaOnPZ48pPKg>$9h0WxZAUO@pFXNjNlOf18kZ`i1{PNDy3Pn?PqnE>WySRORI1=Q&Kf-s^% zD-?Xo`O5TYoQ@K-1^OXXgCRH(Df>qr7$6r#kXxCUi{O_Q6O}>064b>xPiK9FK%P|= z5jjy}f3PPnO!Y2hjV@IY*xu5kL&pvPm6{CUk>E*TEP8F-qz}3#3ogxsJOA*`X)ZOw zgCcDMGR@HYKLI3l*w26ZyjBlnP0^uZIr}lY*)Z%Cb}9mVug;zE?`oX8eNb|Lj-8`3QJ#+EZQ^J1+ZCd|;mml&|U zZ+-_aRR(6~9ogx&E%2(*y;i|V)e<;)Gvnh_W2-Gx5dnP2lcI7DLTr9}a|}OA;FW$M z*Fj<>tII@b_ioTfY}@06&sq1TK~{D`O4WCCvS@>A9{=Z;-MSm^P0#$uNoG!bvr{vA z4e^>C5wRA5)~G5ihl1Lu7j`3VRG@(rNyNTF^Vka=^(AKLUrg}Q?7h2EgX15+r^ECk zbD?^X8bGMjpJ3jC$|+f@_OHMVROnj)wdO&+bu;w+2`3;uL@8gqfnKfAJ|*!;GXb+4 zw+ljie#;26Zd{{=#R@gYVOjmSl~wjL;O49je0NvvA^5TN8sd4cTb82t@SX?`lsG#n zVhv$@Dc{}=6AWeWN<%*_9||pm7c)H;aFen26A-EoL=E+teV9$iCl{6tG!F;`&`Qiw z+1ZA0h`o13g>tABO0Hj9dQOV43WLjw{b-6`$6h$57{xD+zU|b)GwCX1=l1lM>t8L1 z9ub~cF^vi15YEhnsg@cD9T{5hMAR;)AY4$C#r|bw0;(M?5j*k(F}Z-oG_yGTIE%}s z2f&`8n*yYny9epHpblT14@)=G)_+GxOkH`czvpob13)dC*ZG#2r3ctC*BucViyvid z9!7*HUSUHV`o_aJINg3LC~yw>^lYmqZn`pDjuowRdl`*1r0%esU|r`vLK}1P97_ot zyu8ePs!tsIdO9UsUYHc-0`V3A?HevH0P^~~>`OHGZJn*B9p^(JzrnVj(b5Dj_4VC0{l_9kMp#fl(I;tGsv_&yV4mJ6t_2e&S0$wYFXg{`EXf zM$!}OkfGDd5xUYN9@n`??*4xJ@0K?g-B`<==z_GJE?(uJ)?-12JO`j~5m| zJjIq3!dKs=bRsWiyZ3F%g5)y5y|wbwVY9qW$`4Mz@{{Y?& z&&zmVjL~3*xY_af0Cb6y-7D5eb_MTx-Qf4>zeqFn=yPFYh`A{9wi^dr=YD&}GW%RV zSp7YoL(84r`KlXM9r${6Z91Mm?D=9k2I2wI-cBSbuhw#DIp|(kUYj!jN9aFSeUJ4g zZv1i|d>zY^_1w;~fBAHe3%YN#tDc*DUt9}57%tsMlX93{eO~21d))anDn!JNd|!M7 z;XGL{`#*my)z-dW)TRS`;Am`SR{WfHq7Wf@%bI`le>dBynu2en|8ge=5UvT8<^VJ52O77LKR1MzRZ4ug-Xk>}=P&!+5<)o+gz~&k+1GiHxAk>j4K=%^qXAkg{4EDGK4JKsC}?B) z+KPCRzcY&0<}z}VFCHbecTh9Pr`+ z*Ks)?bhU3rdLjTF-4~Ub^0rQ4x@BbtX?H%7 zyek|o<7)}MSueNUC*BWEguePDopZb|GO=VBK1PJmTc6XzC}+Iu-?B?qdIUDV_e$Mf zi?OaKKKEnIMqKna?rRy_7*jrPhjLrL26S@QZVrgwGjjpeyiaf1Bu`f@4V(m?HXF0B zhx`DpnO+C|UA7bF7HvS4VB}9-lk@4u3KAd@OL~^}ew+jC3Z5*yHhKy?t>Y?o_}` zw!dC4UI`d+X~vy{n<`!ci`CF^?9zmrDxce3-=95`{n=z~7iFUlnSTYUnxAa-K(5^- zJ%9F~X-BZ)rjR*P6){B8Dq%N>L0e8bCK=Z?N8~>XiL)=HvfR$NNn0}2c6T({gYM8; ziH4?Btr7-YA&itnXCY)(`y^t!;csX}1JA~>1qTGiQaL}SO(DY_%&05##RpNUh}@>l z5T24~M`jkNkZI$?yJ7ty&Q+sxm$DlI?V*A!OrWFz({q}|yMLA;IOIi%`{B!v-ockW zr&PCE=o?70+-(f%P$^?fo1*ekAm=(fQjfMK6c!JlPRRmR(K#WT-sUj}Y zS^qdJI8wPUhg4&2PSTd3FV&`sur4%K%Q`FWS3|i8U%^I@3biqR!u+*DE6+!3c9ROodU*(=cdq%u@)7lPoh}e*L z8fRi?XqiX5xvv(>MDss!@5YhFaPK9tPPgqw+Ss=pls; z6A!jTmoLz2f-qaVioRz7@~dpDN*Qcf$*{;bjdd#PZ;+&FrBRv{dW$~GW=DvWs#JEU zrvlT}l;ex)qvWaS=0A=l07dfNrQdFn3A7fS^jRF$!^OhLzW>KE0%!RqkrojI#1s<* zggCX&2O1;w{Xd<(Lz+I0cuSA^Rx8W;lIK-T=UndkHWSiOhnjd3?zY?t%PRQsyVz($ z#IY?61U5P?MHuVq1c*)c2_pWT8FBLs)Z{oSX;$k$W`$%880 z1xxYCh4HqYmP}d6>g1`>V`?f9(VAgUV^w^HiWAPdh{r6q;S^XCYo=uUQY9GCizLBA zbGBqZ@n|9^<~E7O!=!0~$=GBjj{fc!Wf3ffMkc_jtJ+yJMDn`ouH`7u#B(+CC&+I= zp-OY7ho_7Jtk_eN2X4idE21VxN5-upimX$YG|5QAOhn_WWK5o2$;cPx!mV8+(PXf% z7zvab%EQg^q$Jqn6*h=| zqXAEQT9-9NqxDa56n)}DRiB`kPg5gNPm-2EJ;h-LkS9lg?CNq@sjIQ1L?-_1{;`o) z6&M9h*BvC%E4d^@x|WgrXHkwNKY2gB(|)xcMsoV5d~~`De>f;0pk4|!tXb4oefS(K zl%D!JPPIV>kv4)YTOA#7Av0cOpPMK_3WBkuUp4_LXU~5UDQv_ODnA}gGH61 zHEFJSafFmmDURA%PIPR_EnCZ=oqY}|3(z4vK0gqMxi}69=$Khr&471>5@CMUgc;g0 zsV6eRB8MiA@BCXmM~<&aLQOsDjH-CnmDI}yXeBI^Du>#57ZbS-%m2-ztRfayl(vSt?o^c8<=P<6>;#W z9Iml4%q3087WmWbldSJmI_0dO$`ng7L60xuXGexqDmpsXslUpO1De+JmYS05&eotT zpwh9-uPem=FN@)O@v*c8qXoAy7ORSFk;IrN?q#)9&*YaU^@9X0j-XAeg&-RyfL1#`W29;8+Od|J>A(kJZ zW+MA-KSG=3`Y{@`EmM*qdM)pu8WMz40Pcn@QNjDg6v5?UCr$S(zD?lZNqGm0lC`0R zSqd&177?ONv%Yu(!o|$GZDdSlB&-u6slxI?{B@w5173KS#*8Hg`^AQglv;W!5s67) zNecII>B-?sBo=DF>J0Yv0`jCxJ;QlzXkgGaMqw6*)k1wIv*LDf+`KfGYms zN$Tro*29kUH4kPC%=S%&n0+{KlqKA3hQ|7Y%yik5q&@FKi@*X|;t24Pal3!fN%^x= zVTOZFzo56WfA|S+r^{AwLtHzW=Cp#C8~VB|J_yILya^WPV=87J8NE%>(9Jt0dJE~f z3iF>C*Q;>DgxO(~XL6HcNb_tXpj0%|MktdL(oP?=>2)EGo+^L>dp3kt7!NX)23&i| z)pF@qfJSnd2J_F1i2x1&oVGk@)9-)tXaZVR16p2WW}kv(t3j*Xd73I~K&m;AsvBUJ zKO)7|p3}wIMi`zDQq8A#08lctqn0XoQ7$5zU$ zUe92pL{%uWD)og$P;5R>jmA@n_#eoXkaU<~1?`@+y{SP5yNw9Fcwzjzt~gwJdVR1f zi}KYRds27@L1>HOa7VX*Q)gC&A8K@gq*LNDebT84z_r0!jgpKDGVZjRBPCqAU!@c9 zBSOtshrQ#1IB93dGC>&UQRP0pDu_0U$2q~0eLUft^U6YsjUZFd0ralyw79Va2}8n~ zKj*1?g&|=7>1lNu6T-#XeIkrajX{H;`#(g<*ZcPD1Lank%qf`w#s~yD`&=(P@-C2R zJYA@4w&N4#5NsDX;)&?^VK*>ESf@=8(&t82n5-pvNf^OLMDmm;T8@o^v7yI~KoCR@ zf%xn<%_l!PBe|fHW+HF9{FCO?KLmM0PW>V)XAd-0!|FU+ki97ZxNcEI0r(%3tK&qc zXQ!({*mzca<-0}zX#+d^AR_)hgBk>O{=pFN_0Y8;dPGsuz4}P2=kWC_1~Go}`ftvj zm~)N7+07jB<~le)Wno8l>(U4(=qN%u(>QqV=&*P^UFJ3K>~1K7)Du_EILtuTfl{eo zAnR@m($8{~ewQOfw9>X130Kr)TlZQ;J_z#!M3>ZLmu*=9S4LX^bXA&UY3;zSc(y*$ zE?$08N=m~8@(|mZ>u6a|0t<^U&f_u{LQmQWw<>h5flHH1oDIEF$xil$kcYE2~@v@7%dK?muy7`~%d_Tn_kdHUK#HVk!87B_1nw{ADJYbqg6Yo&aoU!}2JY}T znj_G?<)3333Sr>Nh9)kpK^ zq_15V(M!87rJ-`FaJ;Kj-KrRpY^v4?#;daCS#m2$G%V;7wQxw&1=I(np*#)vuL;|e z6w!fiB->fKS@Yd*s97nO&PDuOtFN#+k%PS3qZc|>sH+1{4D%k;b^Haw9bRCsg??Wb zyc{85vzBGVY1`Vxm$*rsBBwHM3FDuY3L>H?Olc+;(Kceq3*|Kex0W%*z&recAi=&!nNRXkHx>epO+58d}oo($q8AKL>y zzk>A&pTlef+h4B#q({{@U-r%Vyk`Wv&3xJdK3UyHE=rrPKl>i9?&miqc6@T4t*^J4 z-`gtD!rTS@<#(s=EA`iW^3CN0pQcLv{m(exce-hPL}yk2o32}u!0YO_=V4pl`>E%w zSI1Xc=xxt~uN}g>&-0wI(9B%_=1#!-*d6L+!u?v$=iBmLe0?L*)_VQkCqSUR*ws^U zX=tuDVj5a<%);aBWDQvB_jyBV`*$d^d$1sJ=F8r*?{*tWf84g*?`Y=y3h>Z@MOmae z#aqotu=O?IHX<`!!eP6q>wj_RLbdL`*V6bbfrMZSXIl<9PR)PT_pGoG{|)F+^xrM^ z(*x%v=y=(8P)%JOC_a#l@wFJ*QlxKhBYrL<@lLxgoqNyd_grN6}?| zx%Xzz_TG9m6vSUYcyYk5>hMMvs=?a~$4XlESALfs?gd|Mh+B+4neS4dp4b9y!AwVw|K@;uzN$A4un5(jA zi%3`g^Cv<=r{$*48I3{y%n?wZt{{+?_A-{yeHsk?3#!P1lDJTTuVJ!#EG^kI$iZ#f zi3qwLRafyL}$P-cx!!$-2= zWo^Kv%zAN?CE+g%CAI#Fj+>2I3{32c}o;zNm5aJGlRRr)?z@nNz*Sl+t$Rbgx zEL&N9Ak52ygkF@{12xz8Dxd}9SL?m}U!g`NcISLtwHWh4I5w;)N%*(`%=}8FpQv*x zf5qi3>D!^IMfp#(7o)x72_coRw4;M8G1_rom3YsDXlG@b@TDzrv|~leknF@(3K1>Q z)`MCK81oqO84L87BJ;3ug+8f%&r1p8B#G0E=U+;R^3J8sMW4`GqF+jM%ubzPJ^)TM zTzS{Sx&wdYb@H~7MQNuhL{QoB^b88i!HvVB8_>lew<6!CFVB_-t zFb;aQcv=`ax6KE<3vw(^T;K9Mm#tO_9JfX8fcb}Gju;bn;DxsQc&uUl2y5bC1gnYp z@aa>845Zz53*CjiMKcn{ALM;SFX5YB(fk07x}+6{=W-%<3+bnDUz1d@;-g2J|HyV)} zsm~7YTGLyKl8hKcXk6Dl&`xplK?EJ@bQ|f$-(P*Ob_32Z1260vJI_{i4ke}CYS*Vz zj*`Jg^w>Le0k!HK+AJ}cc#Gk3tjDbrbpmiWM(y&wu5>kOLPDOTOOB0mUIeQc*grhcz6p1IKj~y^R7pM%*KO z5SUrHNP;0I10C;7B|%z8{_Rb6nzT9&os%D8yKz6o^&%}w?A7k$lrBaN;M7KmnbmCS z?Oh|`qD@-;S0+gCt?$=|j1vh@!hcN=BY}Gabl{t2$-jFXSW`cv26ZN2M06?Kg8UKx zyYr{A4h28>msrwbjOHET;2~5r#BG7Fon`uPrEkaJ_5-u);U`>2=DRY1HgP?$9dDK( z02fE>-w`quBKr(e7p2TtG^bbVEBan+ay(R@)RF;8OIF{ksEL(Rz%9k%wFx!D71W&? zK(|v|l_e;LT7u;Apu5$VGwBdaiy>~S@HaM<5kw`lYqCg0QtbNy3+6EdN;X&m7BVS4 zk+L$Raz-kIQ@~AO&%p>m!}DMQ+;$2K&E0z>?a)v`LVy}nK|ve>^S+ss6;aK8Nb7_v zHm+=gnjGd_0z$!D!QX?v*6_rOU=T?YKq<+aCk)v?-Y-=>_VTA92_~g4AHMY60m+|4 z7ZETPIimS#N6@h~$f6@8c-V*?PD-g)RiOsY=B7A{6s)@fea)D>pco}$_#&YgaVS)L zFYRG!Oj+Y%wNXi)BoeCUmL!k~Du^7q`c_2@C~DN;fWf5M8A41b%}vD@QWdNy0M#F1 zzMl=jdrAF{V7OXhcYShwdHc*fYW>Klv~t9V!Y;_JC>d%=#o4F}BKCyhF*hbuV<1qX z5Qo}@Eu@tKp$C87gP0SSvE$x71yh`Q#`lc~2?KO30)M8Xg(fdVGVuwi8P(EVnA~pL z7cfxCxeKGXz(;2N2*r=#Y*GLn1wg9_OWaGv>i_QSH>cVXo)KQL4cjdS-oae+Tt772Pcd0J+eYUYSgrn1{g8TyS{+^ zj*`^$MGgR+!jbauRY(&ljb{>{<06AcqZ5D#1_x(N{xuDgNS70!WlgWeCp{yF=_XuG zmqYTQ#Z~uG*8@L2t*+_&w}>fv_lPU@0i!^dRO`3y#5}x)b_ulB%mRFoAM@NnCtmGt z*MoCVChQeuFUnOZMk{UzDPY&0hjMZjgw+v%iA*$t2BBlh7m01Y=Av-|`8}usF0jT^ zXCjnmR3Lh;)w!by@MS&{fYf#&}v6=J5XK*U`YWUdFR0RVnrm@7vs!eA9r3X}MK( zNb>@}g~+Gp36gksGT>8Ws*r;-!2f&GhOw)y=NY;JyMt0bD@ON=hW7!>mor+m*8g_z zW@4xFqtW2g`6ZXq0C3vY^0Mw>@VcROWHMPT_;vI&z>)C2s0P?vx3Wn?cjc1vMh$}5Dht`c6oGhVj73}8(7u79t4LFV3jh1Z7OxSbt zEpov8(-P&U8aBBV!-Q1!kqRxFn?YBdSSilB8atN5k@OUJq;;m4FRp_{x~^@uN%ty6 zzF|!~;Z&dzQj=F=#Lrx1iv~5!M{AuU?_U@(JAU*P05_Y@^>BAKY|s^Zp7yq})mWT! zxe>)-oR|0}r|vWF2O)zpts4!CD<;B^Y|9;+G2r)Pgl>?mGj&bu`7u-*v3(le;czQ> zR)4fh;wBsCfEibE=3#?w4Da-mOKDpp{vMoeyibBpq|P3LQ|{lK&z{r~rf;zS&54je zJpM$(s&sOL)xjqD$_l& zYC|QDK3uvoVZOwQs#<7&_i?=uk5b>KzDrt`F~1BI3|2k7Kzn}{o>S;I+P)fbAdPaK zND!WiIxMk0q*|-vZtMzm{H``#SN64_!`J)0#pShyLiToWobUb393VZBHGW4-sx<(4 zUb@%X+_2R@m`i`Kb2ei7S-bljdN}yKCS<{`MZ3l%J^sL_4eAfVQMKuZ+5D5Oh6kUy z#Rn6-zoW^D0S5n$$$r6t=H&064JV!oWHlLq&>CCU#=^VMdK{I_cq}J)DW~mpap`87 z@|hMP{4J4Q=6nGY8h|ueu38iJWj~zCoa%Ssg{XhK?Wlg;Eq2mTk_oVt2i$b$bj?5< zhV@Hx+Vhvt^Tme8rQV1%O%GiP%96gRE3!g`MLyec+m7~oPHgbEWr*fsihrz1V3->LIKEM$kRf?*|bnvBl%+DY2HoC~ELWwDZ zX-BTnkrBg(ngHII-!``*B{!KAx;tX*kt5}i)c$NWkuv_zYTZbL{jc4D&E1R=Jy`zh zE(Wc_W{`r(zd|qI?}%wya2(}K><|5j5%`;DT6y;jBqb~?jQR)>#nT%NX2 z@g1Wh_fNUY=;R|sj*8tdE+=f^sDPa(Rik(Mvc<4?{3s)`s&7i4>1&unJVhrgVg)%( zx;OD`5eL_u&G$A@`)k!%LtW37wxFGj2BkBH3Z^`F z<{nV|88B7O4}q=lN*Z8C{f!ck@-_leyhs3Tt9ZE;;EWq~U#cPqEahB%3r*Xc#^+D{ z`|%@>(r*RkG(+a?M}{165f57V)JQh9g(O_k5qrC^3(=H~4P4Td7gKa0n769G2hSZX z>#-Og=ZWk|f7^4F^`ipDEDaRnw=X@6{*Z=8hYbK}jEz)14Q!9+^Nw-Nxj0em>r!i^uk0D}>S6f7;7 z=v+-$hqrKp(-bl*M<4YP%mHm+&9o`>t*d%|oeSobbU_)Lh{GZq6Yu35Nhc6@JZj|} znnlhShZP}QF-V44FP%+?8pbC5r&CS@H6EkkP0-=g;eQvA|6W7TEwEZ}?7y=gX5e0{KkZM}mO%z<>7U?U}OOymHXB%+Un$3zB+T|+m!y1uaGXCqOuyV@^YI`1?rlqNl_C3av(m*R ztSoJA6@!a9J>Zp0&ep|EhTDoni;h{sTmvFW%L=Sey+*{tle^kaB*zs2hmM@B=3TYS zmQ2Qt`)Zl(a{5J+iG}2eg^vQia@IKVW^XB9_4>Io{qdE)jPoSBT9bTz`d_~=Ck_F= zjX4gjZb}U(0B>vxL`;xS^ttG-#H%q%m_uF0{N}@xW67A18e8x{iZV3 zfF-qh1_3Fsu?t;7&;BUW_AUA?ki=gOTs@J0yio6;(A>a;?w{9ksO- z32ov-jl8Nd<9s0blnzTKr|)?gnf|>6=~fN(cAf^pQUU_gU#ytSNY4!iv33WV{p{8P zO_YIl*vbX~z4e)f*kkP&4^CrI(xYfH!+1h+!Y5wc$xaG}^H9PP5FOChgSI69ZLe1U z(a~_14#1*LA=-Yt7H|Kq2!9TZppciUh^L6;5m8g0DH9ndv$kdvUnHO{`Ji5Y^tct) zFX+RaRu#c&j5xNNyz|KPfXtlV7gHEjp%j2)o z%p)!3H`)3qAS`hrBF)GH*qh-Oo6EHF;4{?H5odwuTauMHRVvo%Z7Owa!Q!n@>5zJ2 z`~qj712(-k+KCTk&{DA|z)6O>+&YBlWwK>(47`UqZEco_WB@e^L??qa$BDrq?hrc& zJ7Kj$53U|A3>Z$AXSbW1MS^ssNE_z`ZG)W4=rF(higpH`y3E!WOJhr(Xg{hqr}_y@Wt$ zCtdM$Lg$3@Qx54%FlUR((xk0qhGn?8em?m#SeUq_(^Ek9T_AJI_H# zE@Vxc7F?YT^6irbSY7uyS>6WUaDc}Nx1#_jkpZEK2FQSHN86EZm_V(8{^30}rW1A_ z@*cHEvD=Y_LRiM1eLCP--Ks~pFzi)G6YcFdAr2@*sCGtlhv%=ev{38Gq@ac&#Rw6$ z%99&wGSQ?i8)2YmKoWbRXBB_`4f>~}@Qr`Gx(W)0U&|5+yc{u&^yfO{`jj`yxkwpj z1)pb=2f(lCd5)G>u1o2Q^e0?8nphLG^Uj89tF*UChtUOb7s(l7cC~;d!EU=KC3Nq| zHn^#f8F$0#ss33k4U#;I7&ktc@w=2kRW1mrUl&=qxMqMf1&fq8lyFh*L$Icb*k=>Q znUGEbW|qPvkt|`lR1b79K8Pg9HF#v+c>#KzG$7ZpEWuR}A<*Y-^SThU%oCOE2SOr> zrL}~0971KJy*w_;dL}QiKMLZAJgpRhWfMk<+p*OGXUv`lBg(z zgijUZ>9SarU3-wtXvD;UNxclyXy#y3AG*XSok7$&&tc>S9MSX%Z13_^)5dx~r$(bG zX23J~luY1zUs+JQ9E)^$y6MGF2=5;eCwVNia;Fju9BB&_i0Rq3mM_R7#Izsgzq3sd z77k*nY&PRdwTeTM!G=S@3{)3a(C^tnyIDvwl;HZ4#(c?Jfx_m538R{OKsr*j!;qMW zlN%zO;-VMJZzo6y3Sx5YIBG}9TyDajAb^t4fO66S(@@rARtdwC%h|9oW;YRfuR5im z-w8R?uq&+OhZ>CO-8s>jK>Ap{T9=08r79hv4W_ML8R2vm_4P032x)aVp5X@tXEvYg zlSW`Q_tf}!(!hC}P9hZRUZJa$D%2LtLXpn(i9$k0j#&nf?VM*}^5}>H@#aF<1%Trv z#|kFa%pQxFfR7&;grW6gL9$SBu=TTj{p9X{DlW73)hZEGPITZL9SqSg8lIkCJM zpgf^m4!Ct=Lpy$0|v{0IgF@XR)#Ki)5pz_%rj6j^Yu&`A>~6ocpsz2{r; zUrV?O`(8zWVt|;0dQnuxMAc{1J-{Xcm~i;ZT{>nVGbEo=L}ju?g#aj!Fpf>CrnOv9C^S~g*~UOO^cIX^YuV)mGJc3;>N|LL7EJhr);cTZZRL+xb)JP$l?wl{VUq2C}6u>sw9QuTFwFMt;aPuyMej3%Ng z_&z<`1o(%-N3c&KienSKzn$UQAoBw2Q0j0w$4`uo0Ia=63_1eHKdDa%oLYGf4MIJj zfdsGCc{{t24$h*fpBs4qgoj#$#7b0OG)1W!aVI=nubDfm4&k2XSEFD|f-H_V9ACFM z-4r$HG@EwHQ-E(tDggHe9gRs3UNne!ApC}VUy(VaIsoPP8e&+cTj6+%*q1%E)P3ca z`{#KZU$z6xsXfBj$%pjq<>t{3Y+lhP52r1CY#&kg$vEH01GXb@#Ys|M0o07x(4)3l z-_SD!{UTl1RHH$|i{mH#U6;3OuQz~H4KR6TgS!^?Hvg7;2;fLnLp9a&{+!lyb~XVW3aWp20;ALxa+{z5i_#T|=~>y$z1B@fN$ zuSA0mcmF$RAK*)}?d#+5@wg?J{dL1=@RFJZ=vH|l`HEkD-R6Dnd2CyLJ>-1`yxx`) zy28ineux{D=ofH&A&CBViW>1bgq`m147EY65#<_Ys@==__rMKvk9)*2xxoO9oDywyxFdJA3p)qy1I2= z`Z_<}IBauyF!1W>fFxeCdZmv`o+G~5%YG+Sr{$w>072 z;JU0YrIDSWcYo3O3#`qwdewD$!C+aJ0{4SVvpN;?{pf}CQ$ZlIp=W0OJ&R(ip<2x@`Ld;UB`3eurE2^k%$n-HV79(z=R#3g&Ynm1X-#3ZV{Yb;Gqb*~ z>ZTIDp-yila5JHcYB7g-W$ZBb;N1@Bt&o-mcs@x-H_yV&VvOIGz6996SGk)&dKe+r z4&&WYbYeIRz}oI!dO~miM%qQO-6Nacv+_mA?f2>ouk?gnas1h_IzaCWYB2ok*6qXY zj&f)^cU6_(ih$rDgf!7 z@kO#V;EyLkYJIf9Agd<=(npUK80!Cp%KIpyF$Mi={N%$*CAj-1yg9f!8W=e`{!^LrY(WUXE2!O{eQiB5(b;Et7) zG$!gk9C6V3cTl0BKGTxLJ$v1$kgImM8IL{DlcM>ICqsIx{8FPnldC!-Dj~*(^HlC` zYwLFe)$2JdSC|jrY4g7QUs;l_?%*BCey_D9XRkiLOVr&g=0Kzxe`E@#gt;(tEmCjl zY{{DIS9&F;?69#SoOFvOgBsZ|I?;@_IfKpNr14Tov-36;`h$ zFOP0WrV4ZE#*j=~u`(&|udx-G(4iR}Gi`R-*#_G`)41-K*6gIFnd~OmqPl-S~u zApM3Y%OSdH%n5I5_ziM+n8gd@G3{;aB7!wYN)>iQh;f`0jGDy@+iuIyPqGZe#-db< z;4#z0Oek)ERaWywq!qGBiKcl*h+X_8k86PnUD(=B!w77%N^@K}Bj$;KeEVOTf0d>f z9{%XtGbq?QUzSdhu(&`DiE#X)-jG;pF*KmUHc#~1tjfZa!Qj8Xve4(G&!29UAZ|fA z^P*Qb_d@0Y~VGPyRyU9oHvyKZeA4H`q)PTEUU{pxCy}stvRPka71$(MKp$* zGEtT}Cc~YEIow(lY1PUL6mmE=fWUtDX$|RYSa^B9mvm5+B z8N4k496HS+`JNPKmyp`O_igW^a#p6+>i!g}{~&b%uE-BejKj?w)3wYO&4A>H6L{Ni z%W7V8Yy#amt^|{>=oZJbtu0vBk(GbBaunpAUC|w)dX$yZ&uacH2qrPAf0SUKfiGwtEzCH-}5v&bfKnitWa~OaRNH&Xhm?P6a5RJjdZ2OB1P=ddW!NnXh zt(|ZX#8+yLE4qzb?&sB(!bq{{4Ee1&nhrO?vfTXp(F9PZKjdu~xz%zbe;0e$%Y3ZM zSy<+u=^hNIS{UG| zS+adEwTHd%%IYz{*#!22X7@XhF-x(re~A{<*$IW;1{1aA1kwy5>xVa6q1=|nrx8Kb zJi#-YNlC{FaUyOt@njwSKr9{F{4cJ~DLBw3TD!4r+cqbh*tTt3Z=6hQ+nm^TGO^8> z*mm-NbUGI=xldUj@jY&4sE1Wp}RgNMpQ7AFzhwGn4`D?cchSy_lA~n>JUz&J6^QmcbMt$9 z8~F1RzO$pJvm^0*8K{rwqfN@96Pq=W0#dWNLoF(K^f6Z zPU4~!E8FKKN1%yHohR*;XadVvEb1<=1x2#BK|_r14m0x?UPt2RUR=E&kot*T*EA<( zE8{l4Q7~6N}+2~a7-b}L-%A61KFJxO@&n^t=l@*g|R^6O~Fq| zyTIc#&_eLX3#|%Em6L=7p!lFg5_(B1&X%wd)!6qCMENZYLTH%&6x6tu4JHXvc{v=@ z!AuJkxiA)YfjskPRtZauB#H;R($lB{dQ|8Vy1<~$N^qo8^3SB3E$G>EEGmPe4CqaZ zz4jD+v4u`$t@x41@iFtYT5M(~gqG`ln$|5ZjLbo(2)Dso5CTU%pnIrEv!gG&mZSHnL)#BrG*0Z$`EtF{n8> zw&-79kr&}c3BrN$4%Rs*ztJD;+t4PKj=f=!lcyjj9-E=Vb+^mld=M97hqdy{2pbW# z70J$t(%h%~p~Rm$lk@E&q{jm1qF2uEb(m=%q!W7{i|3O7E&zr5?J?}sF-HZ1>KxY3#|3XyEs;<02+T3T;{nkmQGLCDJ=J#GfemGXAd&0Qu zRl^nAQN){!w!m((rbU36@$;`|V%L8gV}O}DWmF<`sro`MHG{10SLucQi7aOuRFlw4 z&CUCx&_*i(3n-8k**q5WhFAO&Vy%s6o^oeC-hVqY{x8M>WkMd5E!c0(fTbvW&3%gW z@7f~cNt5%l^glt_R21KwBm}#a*Yxn6?XdSpyA-OMWnt%h?Nf;CQuK_{uIA8#r(=jW zbMP$-f<}B)oq?+;6S246=RMeT462uqqETa*TT{jhR6y}YAW*KTiTglHq5ascZD`8WvQ3o?`9zX&b`D2+I>tpF?}XwBQaN`J4=`fK#U0*+Bx z5EVCbGuNS&rvtz8Gt0!>dIhlzmvO=NsbGOQW`cjp@1%K{0C7zhUd{8s8^{q|T%cxH zh`=BQK420-&`3<=M!`vV7$}k@FZ3*I3R&TPfM!ibo41@OWR|^nA-g-Qhq<~(qlGyf zB3ckQ%gudbtb~FA%6RuWLgEsF^f$fnIxVZdY9d1X`dtbS)GYz{>F<+0jfR_m7DZ=HAm+y6;qn53%#*a+U|0?K+pF0=m zeXe{*_Ita6&cE({h>h#Idf&Ko#E8;wBA%Jb=e_SAcHi5a*lst#dOYf29Gu z9zvbYjY+0!eF#yzO7S)EpF#L%%GbIplWi{_UOxc`+X{Ss-DJVtzvrxika&;w>+9S5 zlgS03ecWr>*S06K1`hjjrGEZgvKsFJYZr-rdHU%uZ-WW;+3gN5M!x`ULgXXfCy9w3 z+GxF_Lfx5l+%umT% z4NJz8EVU{6nX-pBy8Nm94j3w>CNng;5-Wd1nAKM<54sa;&&sNG0PbY|OaWu{Kb049 zwOW75?<7R(Qtj4eyy$>ajCcLnBFH;$1+#0MnyNhZJMDM7<@!6loSrY5G|So=2k+}6 z2F)(7q{-f7Yi*0)MAXj;qqJ$Rr8+wmW1W|TG46x4cR%cuj*|6M4bwMLEgBQ_bJ*j! zO|QZXmw)=GIWB9SZ9BkwIr=KNl8pRBA~T-qtE&4Ra2 zT5ozlU|zB3Lf1*eiR4Mo1NuYq!{P(`QX%qu#3}g$^J)6&-v{~!*f;ez&NqrrtWT~_ zB>yNudFJ`Pav|Z8Z(+ldZ&Aatx;da+s8Fa>sJL!1fAPC$^@RCk_0(`)@*APwdFvYV z|MtF=E(ucO{ww1G(~ZiYDgXPn=kK(62Dq!i#*J^Q(_@w-DcjSErbSfNL^Q`bdTPk*6#JyE-%-FG zRVkK~tUja+-$w{Hj^oaL%dxPa)A3N&onvg~LfH}-r8#_n&oOApa`92FJKOQDwL0}% zt~uSw5!BS}cZVOj1A{)GWsdT$O`$)_y&C48?k)_Y%s?*0OwtH29Cz{_6I>4~g<@_l`_Dy0xm! z0&kNHs-W(is{g|{UUCc?x*rl?+nM?mlnphHHLLN&;laITXsnM$G(1^l!_9F^!#K0L zm9v=Zz5^SjxubQg2Xv>i5AQ)$4OwccyjhdkPF`mmQNpGmrTy zM(5O#urzNND}c(8;h%eTmi9u``VX%`&PcYcc~`$my#-x>oMsVXxiAxcyrUX3`h1Hg zzey&|vsZ5lGvs%;M0)`E`Fcz#GpOtDBHf_ZM%be>v+NibsNhAl)!JhBB-h1GwVCCp zWcUi@d)wSNdSDi}9%UcFDexCsHbFDh?bzt+pZ&%Yd%h$?(c-Vs*0BV*3}9ahurvm+*T}vPX*-Y|@ix=4~-% z>Smf1+{z|(8|ed^oLw%Frj8r*c?m+}^=;r}>{H+T;)bQR9qfau3}~0OATYle;J7A* z>FstQgf`#9u&zkP-x)%&3KBIaWe!^vshm*C-+?fe{y}#wH5l;WUAjbjxJTEq@)?OR zl(zH?1q>yt3~Yj4sS=C?j=^LWJ;+3@L~RTYCeg=etaqw8$y%b_#s-*NxW7<9|Kh{Jq9yhZgOOJqgc2x9E+jDha)SHiYM{O*s?|I%!D!@w zo&juPB&cUWhJo91**yMACxy(%6vuCQ9X217c9N#(4LHq6S@6qp#g5oW;DcA*v@1q5 zY9M5AfUTgDBY~q_Wwr|&w>u;$BZHtuVwEdPB4WaX7PKZq1)y=(VSW*#ZD=>Er(~)@ zRFMi??rcD`X)PHr!#8KHgpvH0kHkvd*bHPHhasV*1siAKG#}Pm-H>7)%q#DWn1_!J zFqf03_|XvNCv-g2Hk%dK3Oa|0v*DB}?^qOjXoZ3ywRNcn^7$R8AA7|*IUignN%?35 z-6ZjBrTCvsR}?s%YX9NS`Ryb!=Wze4P5Q0z-_)*xEkxWwZbf~FE+HBjL+~NvkUpRl ze~_HG#_Tp2%!iM?L|Y5xZApom9~t~9icQjqhpN9oXN5UO*JK(s6-x`DV-2~o1k3gF zfr6}()SrJ3@8#mgS2?=4^mYq&O+!ka&ObF-#du=BuPG5oAL^Uj?@QJ-R~A#l#p_#k zTdO=$c;48}J|Y}J(qf7|Qpk{))d%Wfe0I!>^-;D3BON^1YwNCjBE*fY=SNG$OVyP% zRAt`qYJ}d1a0|LNNt^x~*}DGm(mfHyGtS%~62dDSkQ9TyLSI3}im4T~AGKF^n1xWeAf zQ{)jaG*%{41HF2O??5I44w1=x?NdOWfA00xdHZk)F%eJ@c*Q1AY(I@7Bpl@)tRdsi z*0b&~BZzuIIm%KFDoRDQP4_YLpaN^^w9ccD2L?*f@ z+_1ZCreU0%$Rp`q&q9O=)voK5@G&$jq@{_xCa0X3vrm$s9a@77tXCkn$M*|zAiSe+ zpi+!)Zz2hs7-y5DOmJ-s4LG5A%m!p>e+9A(#=0aWp-7|%8jGQ+cNpjK*YM`JTZm>nKZ&KFnI1EbaI2HiW#BDc`U|o5n3Fmmzz-Ob4~%UQ zUG?Zh+g7tx5|AZ=f9>)3lNB3VriW=;JC~wPl%kRRbsN3(wT$7(zAg-pD{shy;JYys zSLGt>{{fjW^f`#ZJr1jCFNPIYF{q41=-r1?M$vcS)(q_d%<>y~K4ipjHJ+T{L2R%Z zL_ms(E@DPl5O+P_{$xH?7y)%8TC%1HE@g#C3+!jbrwp33z#;P7rT>UHLtb}=*)FSK zna-T~V!7;2g%J_nv1DhlL?arYmWpi3G$q@ZD$4A{y2>xP%Ef2f7%Wmv;AnTnu{r1P zw^^{%^G}uomYeQLre{LzhcN`%sJCW|;xDj>_6j+@C)Sy%Kw8u>XOxz3vxeT~_d&6? zkwbH0??HumL!h@!?veSIB`%|3^5QIw#K6B3Vi$z}(Qup$QRGp|CNOgvt+Ih9$|r?LnCR3K+A zAaOhbZ%7PKupmNSL}{;MBO%Z{#?*Ef04Ki%`EHHjIoOuPqC&ej^-Y_KT7HYpF_W=IX{h8XRM#6R6bFQWo#eeDvGdw z>j^nO+@vWxOVcLwU6@3?=pR}71MiFRzCEkteZC!^@5%We`-z^0-e1s;NS}A__i=DhRZmR`zM`j7av~o|nxE2;S$){@L~n$n`OQM*hCFoNQ5)`L4ryL8p-jB8z3+T4r`5ayx`}pi`{L$yz zeF~#-)qL~2;$ioC3L^gaN;X}YFs%J}A{JU+e||Nz19-ST*4BbO?~o1O(j@_|ylwLq zBwKy%=wmK_jPF(AmPaPUkCQ9(HV+1FAw1qs^!>J8)=pc~%^OL>ufeBpg@AYFnb6hm z3!!{L;0;@J|FG+PCT+u@&j0+nb=w}`kl!%;%FRzBdh;f61}79$nOX3uV0rv3ZXm+5 zEnvNl?I1Eedq=KyUYO&)WCFsUo~bPWhGqW%)XV`8w zS-w+Yfd6hXUGEkorpMFnF+0Vjhi})CuEsllczZ?+{O#ZLhsgp?qXWR0oLY`CVM<#( zZqaFgb3Hyw@RG}Cms!Hko@6Ea{B5M(%<$Rn)KH|$OXX(3E_<`O`^QS-Q#JIkAXc2} z-gu#L>LM%uBI0z6#yq+ur}yZ5D&nMi&uslOxNY3a_qoFNKy6GjmQrAsV~nMj*tQ#M zPN!vhL$Dm8#$|fyEEg|Y3CtJO6Sk``kL3nfEZ4Ne4aFCmpOFN~7 zCo##7hlKJS zd6K$(;MgR`0_#MhnsCOP!Vb&2E-U`mM(o!v3AW@w*p$<7v-IOIx{C@yLM^|_?Z06= zs-VwQ(%|NbCte>j^|R=Q$lGBt>6EvBS`^1xh0cy6iKIgzVpZv(=E>}tYT?TNrV0p7 zCrY5m_-qS}Gg3T8F7{N#FadTCZ>j0XB%A1odAsXjI~5|C$s{<9H?h(>oNUMqvn&iu zQ>8=$C%i4_FqOU}LYl#@4t%aziy1|Fq`Cj1zBKni6FP;j3iZ<--zL7TYKByN~{i3BA{(bdv1$$_Z-6&OOL z3BYKaI&g$R`I3uh+vZe8tfDT|V;v>x-?$aDkzXwZ^N)#O$# z{o87gfA`X9sw4Snb_W~dgDD4RL`sLVd~s-bAt|=8;HmD>9W&(gC)JFUJ461~nIVHX zUkm5cu(E*d%{=_r;p@$`;1Rje)tvxS(VDdpx?4V}u)nQ!%vY zd;j}M7APp&iL_IM&yLrGCW~|shzd|f9dPy3=d~m;{i5AVt*UDVEQPZgd*T z=pwOz%^#5u#hvbJwNIv6Fh;a+Q2Yz^DC_W8$6yb6;g52S|CD#@yX;|%-{><;}8IF%oTr!}xf8Tr#u=$MeZ@^v+P+!xS z^AvF^^}`#-xp(I3&t&XnNZXit?1Byq!GlT#5qHte*=?|;sm{rPfw@ugL70H;n$z3{ zp#k~><~1N>P=xxV`mw020_64`2t_5uHAxm*mUS7}chjmeaT<=#ZsIJwpSTsGTa*j|=dLZ4Rl z^F8WlFkc>Nzuf$dN12R4u_y2virBU%AO<|V27@#Nw+61zVPai2JBAE=;9z-RJd>Hg z{K8Tc?|wc}hj~fd!1{sELCq)EI)G^MOvA5L&j5laGgt|jLIp>i6z=eNDXgdn4WkQ0W_B}bn2e0 z@VANIK(p9@c9pa&BaZ%98#iXhU1UMg(Xxb3kt#0R>_F#Z1@}xzXQBkhp>)tVx%=5> zoDz7aQkFgNvyxLdt5TrQ7JWdvXXg@3{5XpizyYY@yxNl#~WxS9DcYe{c8RE(3<4@(p= zMiS|g+l0U~dB;1sc7rpOL2zuo_s?AciKoL)Ar8^dg3k|!7Kdtu<@!#9fdGKn^Ggqc z^<#uCze$b2xxvhN5Uv50!W7;H*Ad`bq6}<5C>2m~ZD1)8=Q%)d>}|7U1Jc4I6N9i96|;cXCZ)M zrHC^j8Rqr4V*4_q8Exl@jRqzOx`}eO{bLl1k2ZLtFr|bP5-`!kc%`j8W3$SsE5QaU z#}!o|;R$vVOW_jw*E7Hc56<;svyip5N3|-v3zi@wh&c_5yX&bz=(@!PXDZ{h(C##0 zUvv=yA^#{SIZ#bEhtsA}Y!*<&9o1vodt4}-4^*NB5*+1^x%F7$)5*3?QJ5QdqtV5Uo z%*cZC73|>(a2m@u#1~q!sM>?UALBiQ3SC+AU&4?u+VD$|)??%elJ>88xzRSp$sWDB zM-6Y$v162z=ccklBrnk|-9jm}h`E1d%`cuZs-8wv3aNF=VFVIpkD$j`IY36?Z%C>a zEBFG3-~z`7$-taCQ9%9!NV$de5MQkw`mG)27Q0~<^c)MZV1G1^(AC#VIYt)Dqll#a zB=`9VagPs19Q5e(a|s_&S&?;#V^DPYZ#wmb4hn|xDqcVAg-)>q=f9SbflXoBUbssQsXf6q1eol=0mG+$j1H8FR&IfEtQH|i z--IlDiK#rRoF7&~7fy=D%ZWx!bBmZ)h=ZVP1cO@BEu9!+Q2LM0_z084Wz3`S1bUo1*Z+}g9>fvvMdXRZG8># zHO`ntvGK#Fyw7*yTq425pk*d(0m`uU3>@T#AX1e-p%w`Gx4CvWX}8z@f_#X3gC<>^6g2c8icR%e+aKD=T*KZMQ>U$&ENO#OOc zxopysxx0bx9bvASHkQS;*fa(|YxjHlU z{O}Ne%u|%dHg_9Lv7w(vlZ7BkT^{X^F}uH4DliKK;QnQioyemd;jT{xz2mhc9aONf zbZHc8fGQ&NuPBQN=a~h{u%B2(ocsxS;JdNb4{!s{Z(bwpe}|jdg~E8V$xU;ybuvM( zKH{}NHIIteQd=!ov?K^;6cg^P*?o{9+FwcqC%Fd(!7*=(=V21qBCazbsON4JD4&Z= zDmb~4KM+G`g64S!o4VQ|^x&pAE>tk>DFvFk3iL>Sv#BUL9%g$16?r>oHgN7Tpl^JY zFl7LCbUb2)Fssmtmf(Z3vjxQR=^z= zwRaf98P_PUNxSjDD8gnpL25}4b0-e*^}9?t`@TJJY;VwevkWyMh2h_^&w#kiFkX0; zWnn9RS3(sGSEP>X|tYlZ0%JJhD*q4YEPG|`U zA$ZC#iww?(IEsZKsbpP)5^MO7qeWl^zErUx9b*cDKSYuch@{WisR7!kCOYh#+ZN1- zJ!oFlk1n4vV@BSt9#Eap@#~N$2*xfE+3vg@5iDoT=KfVtFRxUxp7iPDWqSmK9t?mV z%#CTW1o-Rlaq#7lSPy>_!4lCF^ z=rE9Tpyc-1o|>U%1~QuSnR*~AM>0L*0YghwK38j&BRLN;n*DJqT;2FeGqcxd1G;*2 zNfmz5@s2sPW&B@d1SW^|)S}TH_aLB?b3BWdJSxaMeP2HD@eNw`lPdOAS1ylB3v4E{ z(zW9h{K?fkuht{^DzJrV)**eO4|Rn~^&3k|SN=1@QkO_S4ZF_l>bd`H`tK?GDPjGa zd@k(Z%QtkI{D4fhM}uSL4{grbwt?ysg4sFsFQYdqEpF3JcNkNN)%e>)PIo{|4)0qZ z*|w!4-nM?Q1Usu^_^rD>E%W`}2s8Uj5tY6H5l|l#tEORYBmtA10mb_i3Y2>*3>5|<-9t3Xdgpyo2 zzFtOnXFf@;v9U?ldM{1~(7;bcq0PR#a7~MA!Q8jujpqf~>#c|5yaCzSZEc?~&k%MW zXeKl6yM=k+?J|y-SpL2oY}h=^cnyAV-Kjc+ID$%VB`96xECAmqabjd-nAhCwVLbm_hFk@ zzUR2r(xH!JNdoEN#}R+P7d0hk^zN+1Zh)(y_I2pqZC3iXm(|x7^{W4}lZVPk(}AmL zX`A2E?hOBifop!AE8y~Vd$YqYsPDEHmK`rn>3b^Kk}jyH^T50DEw$!e>2ZI3O`PF9 zvD1FAl$6Qn`PDgjEAn}{XuwY_@DkFtHm2IP<1|^RNvx+pZ0q|p%>TeW>|xSy*ELd^ zFL?8qlKczX?^(citv4CZ#h{nR<8|s9e_214cn2fD!RpOd7m(T6e7%pyZUwrVU+E8- z9@g`pgg&JzClC6pM@D^_HUc_L^4^KWm7%^mzsHexyY90a;=wjs;E%-~iu>fXK3|Rp z(i}r$$y1rRm*unCL^9<+$g;MwyfVJ;&KZv5;smDzeS981`85AkZmb%(t^Mvg2Z+92 zI^f%OyzZQQ0rd5kwy0gXZ|M|6m8TJs#cxk|&mDJ@^N?eQuUX*R=B@|$#@=N2-FeHr zdmZ4%?%nn*m8zuI8BsbbW3sDkub;{px*rojTgxYM}7` zNX(8$-jvM;Zi$a_s(rstueMJr>vlfQmpuD$vQK@zTnGBLyWX$NWr6pv`$OAf10MbQ z!)SFyj?Ze{JnnPFu3hIx|KyJ5XZP8k=~se1!17YiJJT0yqszRJy|2umfNLVlkwL)h z1=lISQ$w8LHmm-byvrUn(S*CAki28{=Wm~a7Hje-JB!Vq->jD4M~2paO!@3)V5UMW zodQ{A@;{nD@=;Tdz7VtykK~M|eY*{pN~*kiYj;A5=}zb)QD2DfUPhD5A}0->a^&jP zYr1_ub4X&cyVRlA{QeDfX%rqHO$>;!eIB zpjWmO4OIZMh$I;e$)a^HG7Z9H-(fpZ$n}bWgSxchTZ&eTUn4M3-)u!C;?i;AOZ&}0 z%`go17bQjBg*sUg+B_ht>UQNNg!(GDt-_`<6Zhc1@r$}tjEm~n&i<3g{&cTCyRYB@ zy)_Kp5B|ezwrUjmU$1C?^C$Q`9oDbpkyDdcBv5eH&*8o2obxkVz`%gS5{*BytRi^U ztwCTnDH{cg(NIpMU{yqBBZCF zH(OysF#1`+4@pNmB!tY9G5WyZJn*hVo~a$1R%ein7J4#r56Hr6Vx6VxizGxqh-hirJX!Rn)u!QvnXI2yuF!3^ zYCHB?2A#dCR1U3z^*U5r6l*k17N}O+Vam3Wui7GZVK>upE4OMkU+ADzS1a}6C;FNb90)((}gl2Cb0dX!JDPvkIK6jXfA!>cOBr!? zLuQRXO7Gp6Vsakd%u4Hpv5n?GG3~2O+e|nMhSvrQK6P4Ds`)RwfTyc6{d3XJw8O7| z=mN6lNtEojf81>7cylS9s8))!-c3qrm9k_!>^c8X4Nhd0`VBQ~8YR&gnivO$C0_Wu zOb3bIfWosjS(sKSjTL!og*YX}E81kyLvTg?DLN8pIfQc)?xf355P^3tB7S&*s5A6D?z3+D6LMIl zdL(!3>SkNgsr>(G=$6}@pMMpeA7uIRqrAq_9km~9gNr|h00lOICL+gB&p$${-la+I zsP(sm2HmJAGt!)e?(K>$5=X(D(-ODFL_!MD4HFXdilAaSLm9#C)+zT3@`lu5HHTo+ z#eyX;SJ~_HXoa zoJ;2Vy0A57YbHN(U@Qms8jy{q{pqFwy3=DybbOgvp-wclCK!nLEwjg`*A(2n?@omc6f;U`Q;l$4m^v1%N zH)|6WCSKGfV$(w>XNW09BcN_*a-u*6o3nzld6B}BKHsU~PFzr4;!_ZHT(kQ9=CAQsa^drNp!;Fk3 zp&|=h3e=jGTv`_EMTfPy-aQ(ZfrF|rN~BX=Un{Awn_kYekU}asZwV#M9hMI-7H1DT zX}(aL0*tYr8p9sVhtoQeV#69o3o3^Sw>3u=P)YDWNR;exj+1n(?36V!Od@iOF@n=$ z3u6Z%4>DzuM_8ziF4?5CzRA)MN6S|ADRoU+*i1H+iU0k8BNH#>Q(qmvP%ScgS+zi& zWbpI!=t4Q&te+2j#Xq;|jPrp*nD>t;ZQm6;NTH*`X#^~;U2cL1qZ`zXq}q5hu|eq^ zK(J?0=-uywbzxDx^Q*BD>I3&?-jN1;L0cO4#Mm>%bT#EK8Lx-ZXpRRwSC{4lZw&>! z6e=hI@iXTK4fx&(+LAMh@V=@iWS}5(q* zw-&Fn1a2b9HYDslVUQoRP8_PElrxh#FoFCdNf{08hvJ}H2s9KTfk1IiQo*m2AZvVv z-wm-mZn4&|0K8a3BCJ*F64W~=gMxVqs~g*q{13a@Ij}3Nim3vrQDdQ?WB5S(gP5cr z!(1O2T#nx@CbAYO&Tjm$me5{WW@OUSw5l6FP;wqGx~arwZO@?Iq=xiLLCa;20Q09= z-jTpOya<62a?rc}dP~r>xJ4S@U5FfsWy)it5JEc=sZB|vKz@R2+SF579g<#(5pNg& z0GCCl4X|c&8d05jOI0277q(^Hqu2+TW;+~kt z1Q>?zIDl|phsle~yhF0TD$`kdPQxY@yb5Y0Ch&sIeZ}5?IH@NzoiG0> z{yX31VDC=-cZ9p6?U^Cd3hJg};MdJYmjzQgJxshHa|`fw6%q=3X?#m+oE58T5((ls z*7;u(S_(C=l7D{CvoAz%uC^Nd+76)6|91MU_6#$B>MGpqyTbk=lN9{oX$f#X7=cFC zVE%S~T#Owdkm;cPIey*e1 z^wiiT{-oh-W%>ZlW}Ar9-a|)#S<$0(da8r2N!uNrt`(n_qZOUH6}*;}L$Es58D?}O z%Mb5;r!V%L>%ULqV}Vp1f-^snpVwQI>Q?8*vMHCkQR^YBXK8(z&DCGdhqNu5|Hjs$ zyZNC?+Za3c zsz->v^pNQ?T^DQGV-P)RxJ((oUgx#mRnzppJCe6O=nmCZy7tQUS~DZg(bgQ^=uR?IeR_NN!ND@sG4L~&1_Vz-Rx*Mw42bV7OmYsHF6)@5xd1+4=t>32 z6KOsf#d%yl+2d1fpEyBD!va~iFoUA>Q_MHC9tq1ni9UtZQ|?oG4q4Zw5-i3!`_7-T zZs}>K)k}rG4^;odATw>3JI-;RBA+0i#-9+rVSTc07p$I6rp&YQDI~ikl~ssDSY3Y? zN(J8#|KFxH3X34q3haL=?x^Xv0&Sz~R^gjrxgt41{jss{3&Klrp_fNDw~zuEV$-TUrYU^VwM?z)GO z3g)3{{$+fcyfqUWVwM>~1jkT=O~r>+n}Ja7tfR(3dR=tox9f8FAI8ZQd+=$T*0G%G zNpr@{s%$RT%$#^udWlB~+H!1*4?Z4+4U43PA3Z$*9_F^;zKa&U8Pm8%dVh3PHl}b8 zc~xgARM&$I_!!I)=r5a)fQaahTH&PnIaIIISu(}hd;d4&7fWXQ|dto?nsj)kY zsef)A326&HOq%&Kr{b)5mlkxNs;=Le=WEu9}$ep3^$Y zHcqRlMrZWc`H-|5zcn3ac+CDGRu`)LF>7V9XEH6V)Q%uCye)2k5yMs{cQLchr$oTh ztk)r176zRy^}SNt2RetpsfanX7#47h!*q%`B-SVx8PnBelWS6BP)3b3APNQH?q$OM zE=1jmnXt6#cK^pjM+Iu0}YG z?x%&>GD@osk8E|vgm~#n)vY$4P(uj;(OJYMyr>k1OMRG(k{vWL`CWv3j`y==UgW_4Of-(?;?2=F-eJn zS173dnMM`7b_P-VE{ji>xAPN0Q^CAD=lfn{;-YJ8XPvJWu)t0M%j82TVo@8FVr)*?KiP=LAw^Yg|r`$f?vNVnl^=V= zZ$Wr!@OlX(v|SRQo}ua;8zGkxrjYMFl783 zMfLjRB>02`VcGn~WkqhHxT|}GD_TadxOvhf6-pK)F@f%OvIWQ@UgR*+yIWZ}*;=sb zQJdT-N|_M>R{UN#kjUVV9CMTh@+`Q4F#sqVj8sG<_s|gNIFoQI$O6SdZ5*7i9_DRp zZIE$BoN-CN)x(fg3@8aW34L*+(|d*7Vo%WirfNWKMeKx*(83_gj~mg;`2}z!4a$}p zD35+w@_O(cJQ<_$Rm?S}1JWwEzi`2x$rwu{Qy`0dJM&z_e8RHq)i4Ar|*hv=ioML2IBCi8~3*Fnn;w6}UABYRAkA(Qjy; z9hkU%FZhR81Y>V7GI!M6-CcPG4+4Tk6hr(W^BkoEl(S1dju4G*Xz6!4Ho zo{BQQD;{rM3oTqe;)L=IbNZe~!ZOfQuj~m`mXp(G4##S^iQg`!1_w)ja{~rAm!I}l z$1St@pH`Qr(8L|~M}I$sl8IJV1^rpwNSquVi1)d_1B_4hf2PlDwS0eS?tWgpN)iKa zY1DA#r&p=5hwDQ^J#V9&r{nCs$X|H2h5@Z>_en-=$h~iVzGG!`AD!sOo!=w^^L$z_2TOD3L8gRbGx^$|=jiFXpPTd{L7$Z0lG{M{+*5UWyho4QW94(+*Vp?yzozzC zQ+)E5;m-4{u8`r!lkTp+v&r@LF#tRb^1rgr%Jq6Yy-Z53d|sWY0ueg_C%wK7J}UnA zVlO(o@W=+AcgNq}ceUHA0R;T_JJg=v?}LQLz{82a(Q6R20ZOQVg%7c#{{8Bk-sa{; zz{-VkF&JKO^Pvoy3pUq7oKogxnOc1Cq-QBD8Jke#%l@nbdQ@-`*gZK-16=Bb50Z#H ziVfStauNj>OJhy|C#HYX!3NNb>l zxh1!l37k?Iqme2vNOC1Inq>@6@T|)_kok^Jn=yB!UXbsSdM42(QPG+tSi1yHCGjRv zLz2L==!ihk3jj<}~tu7W-uSq(fq-p>O!KKAWg4?b1PvM~K%?XdsH)j4&C z8Ep$Rwr$%^8Z}m9+jbf?{Nl#8ZQE#UTa9h|^xU_5#@PE0?1we>(wq;Ni60FV;CNjA z1}Lrtvq31kLm;q9prR}{xVk2hVY6n4VlM?x%_^F*?`=0!28UZ$zE7FX!~!Mw*=uW{ zAOfTACEO);1qdLl031kYOS+6cM{u|n`hbjhtlAGY>+o+qViC`J+K zhfUD3CM6oIa{ZY{W8!5LkMv9L>rfTV~QEq1K5&aBQ@h_1L(sb}9cX;kUc^l-PuEUu_J$hGQB zm(YwQ(jO5BfEkqVIIKDd0zV*@oR$e*>i2_aZybVTT#bmI1VfN?tG`*jdGbCE8ypVV z35CFH3Q6Cj$!vXU{|hOfklk>Fu_?vj{p)IB!ky@4bP^q=8E$@yR8v%(N|uT2GEV<3 zg47MdL}OHuIjk>k~@5x4Bb+FPfdNx3z02V@R#E%=z za)vVjokricqA);N80k(*@xlYgi^T4od0_)DsoV!i$~A08Q_Xyc@FwhVcc06CDvADp zI;=SL&m^Zlljf2@RG%SYixod*=|>ncu!th{Q!9CAw~&3uLXtE>O)5^zq!47lg`Fwe zRAqz~z0-?m+%?3g9G-Nv1Z1>?q`zcERtJZz&+M6(odP@NTY@hSlCxZksXIc)q0|u? z+XNb@%bl(}+~gqZ_77eSeD8gAly7rsmqx$C0HFoY;{|mPvR+4}IZy$|0GI(h3JNgz zYxOgJKIzBR!+-PRT*>s$e9Q<^}pf zA<>H$N}8A4bj{YsSXADr*SKoD7>uF{FfZlhz$mO1Z75A!LDNeJMUvued2|;0g41~Qq@>~+Lg(X(Pn!4ARGs7W zAH5yT0;}172+S(X%z9Ixd%sgE8%ycZFk$kYD)frfNGi)1J`v=&?tcHAQ*10K*O5J9 z#Q%cgD&sA0G6dVO=aHNouHlnunTt5)@j>oN*B33ZjP}ixpGTg{x+lNq<-O~%|NB4L zKGr62*Wf>U%|gn~^1nr6AKQgP+?FfX%kw>g%)5iYAQWigAV=w`ooWsgF!_AP-sjL< z5*!_-sa5Gr9(Rp(>@hgHf-{LCHDkKUTN-UDiAA6|*t*oFLr!T~ElZPnP1#k-tWdAy zk7A4MnV{if z6QGID)`U7Jdo+2{XsqO^-jddtma(KZ+4zpDqGD^OglfF{_cw-`Tnb3{MxnxFFk4$0 zEoDV9rt?I(>aE8fi$vsUh0Xrfk-yyz+Xo&r) z6<>D4cv&TX-eYYyHs=Po@bvV~-ET^3} zoB6G1#mYV0VE7mnU{#O7+=HNOv+6`}$Kor`AQ{5HPSXxf;&#bkBBf_3!DMN&Dpe^H zfz;tr{%B>=Iu@MMYC?E9;e*QmHGIKikZ`6{Xc&`znt06S1ygpaQ$8rmNPQ6n>v~vaJ8igzHl8^N&C@ zK+*(@r2Gc_z6(xqE=1Yo!BzShE)3?-mUS&_j{Gx8J?L-gV9lqZ<=Xi*KHc ze8c@467iF?PgZE8hA)aMcfP4!F_wt@j*_-+-kW7Ydd?iQC}1Zs)Rll9@sX4i6huXy zM5{1!6~uia?EtFHaBvi+M+-%T29pp)m}8L7xsioDjyfyNE;Q3A+HPl5OL8k<5gSsnoW-VPM{+`mnkZ`8i+_Bt>IdS3Nd&k-ulXx zXc_B%T<*uQJg8ovKMuYc!aM98hkNM#0ggTp4-4Y!E`wOSUZygV~%X z-WWPJBIta4A$Y8=g*Cn^l3!K)ikL6%^%|8vi3@ySA}ODSlm@_P3R(YB;yr zDvGXf^iY2qONE1%@=}6GQKeH*U2s}c_Y!%S+$R4&aCuF%s+H0ex@$vNVTBsht6UqZ ztlwIp+9o(K+NEs23FlB zD8Kc`S}^XPoEtAE-uAi|+>7_lZ#u}loO4R6i}0_RWFY^I*;y*%-xx*wyA(*u0v8EU z0dg1k!k|mn>5bx=#C5`;vQ4dJP{Pff>hAM|_``d8IzP9R_WlH{8?R z_oH&a?UAI)cdu%n(xZ&uSeG;g;i{eZzdpjo5k(ROO|IT=w#lcT4Opr-Ja5nWbPj>ICg1b5IR^v7CxFnZoAv^EVObB`0HH^G+2QST!ep8L$d|S2dSoq_dHU=4 zRdKp3Ch|8ockz&UPKCG6UOjX$e1b-`{@T&^?usw5(?6f+DL~7o`9X{Rx--+di0{qV zT-&8PvTpjto3!&M{t+;v{xxl}ef;q^@pWP+=`82`n^*DCdD-_XZNRtM@p9^+fjuP} z0m9zmbv(3%Liz)C)@!`?Ds)f20IzD?F6zlF0{z+}&E~D$?!K15v;_k+m z`aeIdaEc~(Kdj*NX;JyUcM{v#M83_Z9-ZhZJLp%fq zd$>IKgY0{2mK!td+DmhD>QIh1mBwfD+PpQXOpPwuFB^ zJ??FXXiBxi&i)GQ|I8rs13(NjsKdgW2$dzlhG}$i=7v7VAy9uAb+&;A~+1}i4wK9euuU%;r zQ3qs0DpPp(H#h>RA;lw3BeQEqUA77)+un>fW;dn(sH@T|D94pjBKQ~P$ZQfXPPSUY zk8rrommCL_i+NiyQCE+{Vix^*jx7tP1`g&zJmNl72}9EO#OJfk)N_!t(C@uN~Lj!W93ZbE@`qq+~#q zGYJLy1L1g#VsMAgp05pGoG%bzIl(y3Im*9_1p&*6Lw*t8Pq@7Aq^h6{s|4~3Zz`6W zB_BpvFZSOIAGF1vS$VF?qt~(vq+aJiztbJ?M)1=elEsW-l0^luBF#%Y&f|MSH?qR& z$?hL}>=ngUHS_(wq_+u(PGnlwyoEqWIn%r_o}Y!SGv&AIL8rjTKpYR8Ur@hTX(Abv zp%IXwB3S=aq3$^APMYAfRa2SF+auoTW*>uB3x=|eJtV}it}S91VzfWvMAlXN5)A!H z$?@xJ^B$slr-(#Lq4r2d>nLV#V%~}}IG=jc!*6|~{rO^xo!9}y*mxz=aXkW}JDdw; zQ$FL#$P4qBzFwn2R{j>ug6C_m+~0x8%%`3=EW&LsSECO}X!x-&x(yUtz0KOrUms~7 zn1)QLb$OX!qXzEb>^+C?74TeNjVBpDW-r^c#P6b`E7sp0ci1J%c^^5rk!@GqeHYK( z?u$RSJfe=O6@PShZgl6@*ct-Ee2Bqs#NY47;78Ys&U_=de7Dp!eD)*;hv}0uw^lc1 z-7TC=*Rq%uw=4VMk$sxZd}r%)a=Q6;P9Cz5L%5=IUiX5N+n|R(R(&e0CX+J~iWpt7 z<-LDihGlwnP+wV2@Hu-*HfC~Ndre&^{*i+UWX5gim?*v?pa z7TsKiD)3yk!p;F29?J$$IzO&T{LUQ5-fl$SZjSm#5{CHFuN8Di=tt@3A4L8j9pBLV zme_@md{VWzSaZ_8_*$mIu;zHN6TzsWlcmyAWm(G>7e)#(v{r{;Qw&V>@~CBrx%e@Z za2mWYiBUGc^w76PQkmAp^=bT(c;Q@84$h5%e;Mgq*Mdx05)KLw!p=CJ$mUeI6Ioyx zpB}43wRCC}ndC{6N}(S(P5`deFxG#N6m+*HL(ud>2Ey_^RDYH^8Y^NTe1Y6>r$kbO zwbnj$n)iMiARW6|t|L^HWXRx1FA5LoasCT_eT*Na! z206FJ@c5()KcZMQ&Mw=(>f` zndKwN;r_I$#?ai3wV2Mz4N?-^3uLG{+;-HltW~h9(l*Iv+P<5z;K4mXN!SSt=}_Luk2_Zdg2ej`x{*=5mEqvV*C%r68kArG)AeVX(hskIcrG7RZL$)22_F zP0*L3rN3#+01!1ANeD)aH2H3WL1kEeGTdy%1`R*!S+xfl)caiR=&gnl?7mUDF`!;q z{%BOIUYI(6HZDm$j3T#)Hl|XPY7G(sp+tl|B1NsBQ(?i7Z+h|gJuuCN(P+U$L(ab zA^R1soSy45>o_K3L>nneGeNl##C%V2P$&bt!K){os{}h-D1VN0%c0q20(F(yH!FZ6 z{`e2-YXp*kV?kYg>GC_+GQi^il0v$!uyKaY^--z^P894?+Q^Z`iT8GOsOUvZSvrJFPf_ML*T>AK-ieU^ao}q7RE#3fvs(|t zq?>K^^y?KF3)47-J4DN|lv7wQPQ)c$$VUlb@Rk(sP`=&xfgII-jc_BP?XDWDoUsZ zYf}aGx(f4H?iuTZY*$RP3Va^tVBk~+PT>KptA!lr51+6mU;j*^dMP4QUx#sEEDCMJ z0Qe^^Llf8%jo6^IgQ2&Tp<)OQ7*nYbLI(_(ZGa{!ZIB*^&>#wRHEkYBbBJ77D+*>` z6|jVvVOYf27v`$h=ShGgt9rMI1IYhDr6owv=F_Xw$~7)rh*77d6sD`JHXpHz!T`Mh z)vPhfKzoJDngUOs0L$7XaHcd8FlQ6W@lo^^5 z%lmfr%aR#>Voy2lA*&Axp$Bn%o^~7V2FS=If5==pMiQl5&l@VPHe?S$M0UNd#VuP= zT)V6+8O&-=Z)js*3GK(pBOUgP?Bf4G_jo>d3|NB!qYs7N5gHSEClOQ_u5jGlIUvE@ z^3sG=KB!`c^?011IzK^;<;-?Kl&bo@9LVwOSHqJa^IgqHBJ=#Re`EESMOVpp7@)py zJm~~qAp5rvmlxMKZ~waRE)miZ=GyKH8~@49xNDuhO8|uWjjhh$_Tcpv?UDk8hlky* ztqnh+hbxB%&so;-N$2pO%eLUAk+VNRD{`^91=1znt?Nv|d~2+`Z+mU5m8~~ZhK+se zRQ3I9YU7{iDut=@;igxG`)P{6!})UW_kKi- zfdS9c&(Eg$jzj&NubcaM>h6!663MHL_Vnira$53{vi0X>8M@f5)0x=6sF?Jdt(zvCu_ILpWU@q?HN_6PQqoyeQ4 z*#knemw=hTzYJOj8tv}dI<~Z=;akfuu0H$Wy1(46bi-6^hbpMqjfjuExEPaa0yoF& z4jb0|ycP0#uYTD$7Eq>Q_zBdm4ThMLsuWDyx|jw#MIy2znE3s_c2pNxyMWT~0XpjaWh-WqQI7!*=g;y4Cwu zJG`5FDbQ*@i#UHn-@tSA*VvDG%aBQr>QaT|e%xhHl;U|l(RkLHOz+McE@pqz2|bL7v2uX87s-oMxl`!cZlyb zi0hD8SgMu&?x#?79R7ir6Z}f87Y1X*`P;_Xb4m5?h2wYpE228WN9ra8?!Vc=_PI$4 zzn^->gQXD5D61$WmJ$$6$ydeV3;%&Kd8A{J>a)&CGDhuh`B_dV!S_LMDSnTjctjFV z`A~>I#{1sF{8PQX^(6kD`T8ID2?QRcwIw?Uh>!*d2xSWCEfhuy$`=eoisc0~8gS-} zua>OQvA*Q0vuxi%$mhTtCj}-^h>mMZjkD%Pa3f>vNYbxj|ASF7tPpFniUJ8jghUpm zruRD4{CCy_LdSMFNM`2<-Ea}J^gdqHeTtvGm`b}t3Vy@Erd`p#baV`+)y3ih2qK~+&((_<7u8KpTwtPF9iFme2dEHl*%xwj z+={8Pgi0#^K4Y6`DC_UGmrxX*LeVxjUX*Q2!rhs?dZhQ1-_viiGH$$H-T9c*fm9(ZUvu4Gzix9SSu!n)#dE9;tf3>W3pRIws)G2XtaXbrYD zYhs>TJNl*8(M=_HAO35Mvtt(eL!3|1huZJOwd2sTs`XhIqfxaDY&dQwT<7U6Q^s-Y zhG#dZ@mt)kDxXMHNDjl248-rg-i9+l+Tw=p@RodVme#1P{0K{mIDmN#C%iX+MuREL zR`qnyx?!JYU%>!_NWwb2`Rcyf!@gnmjGNw{Jn)-%GzM6UA$Y0uw7>2)?%KlnH~*F` z`s|;Zh%0oav1sa0og+F20Xk*WR>3Tk^uGT3Z?V|9tOwxkpt6rByQ=ULjsILD^zxJb zHD)`aXx;NQ2o#7st^jcw##!QKkR5Bf*HntKDOK7JbNUp!nk@xaQjkFs(M}3x-ZPBb zY};lFW066)y6QD?>H|Kt@cK}Xdfg^)3PsWpRuPsyc}z2j+LpE>6ka$dhz~5u$(tpz zGfnh*pJn*h6Y&{nRM3v@XuJSOdFeqmU&7nv56$FS{Y_nDFo2${D9((ZDco{Vl8i1J zp$zY@QWc0D2-@s>AI-nts_OVCkD_%MVZ%;!wrFCWjGj;xj#!j<6wgRbw`BzAK`@M# zaNedg4PR)V5UwY9oEZ>`!?zSTnCm=hLLxygqcF+jd0Fa^lEp(8jKwP6-7G?x1cfz~ z$?JOPvU9$B3#5<0V=1*=QP5@DAz@Fi=BU z(4y~?H?7NfY08^7@*lZqXVSqT&%|KJMfflq5V~6 zrnIvRUUkg11YfZLA@=Rn8o}GK%_W=l(l`CmMg^H z*Y$~hmRcIe6J0A3MR}{vV|DHdMl=Z|@yQ}OUaUnez$+`(CMN{|W4t|ZR# zmlbrPsu@+#?Kwq@%>W|st9lLCUFX#PM@MgoAV3!(XREyHR8`G-OzD(E*5&DE-but| zz@L*CFg4hvw;3$fZ<=K%VaZ@1Af0sD-bI=`#0%x+#FgOwM}&z!qqLr9QMrEJh1yq% zQ%+t*U?%Kgu^_@A)`jeN`DEGs1z-<1u-uBv%P)s~AogbX-n zFaYakMy<093)X!w3q*0ptun3&IEl|akgkHHF;X^ z2APa8?fB~J*M(hl#+~$U+*y~7^4A2TpTL!uxf{z5OOgBhgG*a?QONCLRM87A#mcqb zjbF_+P>sP-NjJ93i8fdF6I1rn_R%ZVg%69FYvp?v6K+#Z16~Px8ZG%!NG=EpMW<^; zbyb~p9jT)bVZXQ>#@%!!*VOH&-3+GI@J&{y-mLhb!yt9p(85MHpOI$JW_wuTVu4S{ z9%d=+(uc_NWeV~ltK`a{kbJY8xzy?`j{Eo7&d$;!^jl;7gd3J)qq+Y4VKf1CQy!Wv)Ap$*DdDhw{^v~6XUQx`oPj0y4*)dQu62kpY&wvi-_Q(c%zM7Vbxb`e~0uu zhr`(LLB`$^^Ryk$T)a7zJRaLUJ$VRIm1cpdZp}?i$O6fqhwICPdKc=>yH z&h&-_LMxk}eah~qru6giKitiICkWnHO(rbRZoMVuseKb25G;-v@YN%~(w`MxLU_b~ zKOMW^uyQoTM*XcUx}8S<1+?T_^(;s6kS{*EGt1)_eU)nA0i5yGw_`I%%$jH+N^LQn%5Eek#? z+tR3HLwbq$-Ex8OxyQc-itUb1GVYUVkhbB<<6XTxc4Y1hnBKXdJiJiZ4VgKg5?OqA$V*bg!g2 z0m7;hOez3ZnjPr_bD1 znD3QSKUI7Zi2)_zJxR5QqlIsRWm9**7a%`t2QD)XRmPpi#lMf2gbzo=*3S`NzrFbg z&KevdOPznh3LYE*O9(cs(;QhKv(P$}T%=qpj*aYdb$3FI1(JLPgnX-y>w&b+gWBpK zzVsI{$egw?e%{?$qT`BDCs zq?bJVLzAqDJDoJ*OLM`k(azc=kMN&qmm~Z46yK%#kwFBa(&*~`JvmruHpE>W1|H+U zm{P=qB*18|?jjx0UKspsD8}J>n8Gd7TqD~qFjrCuyy98OYqgXi!#i8^DC_~X?^S9; zkXSUnOpSTWgNsV?j8#boYimeOP!js+`0qIsplaN(rW`QDd0WhI`fplRm7mzANr#^3 zmZPuLYGds$lQ&^ac>lF?T(c2v;6MQl(_7RB{R#IQf6_u`q;@-IkImiGXuj|pfAH7 zEkIPCF!MkV@HM~zP+g+`I7a`G<+F?M5XQboPxD1ROD117eK(KhrF@`Jr#C*x0F;+9 z0#yT+T3fPD=xAPJ`wGnN;8Za}=bvgW0-)^Km*ozkJmJQ^odv01hZALqMsfH2>!^B) z`mw>q)RqwLY}xkgm*>XbKk4_aDyzUUiOrH6(k&exl9#E^O;3Pe!4iI zbSM(G#-}@Y$C*_C!MoBC*a%!W$F6-UVz%Iy*zyUZd1wmBzXn0ur_v7N!*U|dK-dn0XXSNo1}>v+XE z*Sxe0UwtHdcz26Ntp(xlF2Q}LtW6ryV|r(JZx2TOcJC`^XSeJ(kmMQV5Yi{eR7auf zxiuNl_Xt$!u-8!{mM*c6fqi;l0a2ZXxyJTdgYr>kLqb2qZhPW3U_c*I+!&Gj)>@T;qFMrC9(!iA;Wfr{hetWXoD%wiW;XE^{I8;50@U1R_0ZM1 zvi(4`21(dT-*Gq_zP6Y+ zgS{_pnder9P29H$y>hU4cD=7X%Mv(mf7ZTOeCA74T^0w~3W0myfJuYSlk2_65=P{9 zAVxB^c$N!oU8Mzf&EEo3AWQ$O!hTkJ7rd>Mi4)joHP z?0V>p%UwSia)tyDOcwvx6(M@~ovo{Toq`zw@bo+Mr>|$_$hMp$oIJL=25$dJnR`R) zfTW6?S~qqX!^v7Wn@#v6Y~RKX_Qs#1i6jm>hrksGP6M_yQ>11Z> z<%4VqANi%g$phncHDo_u5WZmCyfIc;`@YXD29p1XeMj~G2;z?v)c|ejS1LLji5qpf zH@n%19}vvmCoWVe#zZu^@wnx6N#$T+sFUjRKFU+nr8 zlx|n4_s;2k1DW%PSUuC0?28!BK15-apuH=Q zmM@GLI?u0v#vaUoYc+Zp10|Hw&Yp0wcnE9ct3LpycgHLtgP0&dT%S?9kN1-(Jb?1Y zNF=u_>gCg#c_-yWF4O%w61#mIF8jMp>1TV<>zVp{PxL_H9ziFwYE1m;_uji6_*J{o zZlp!vSlNeD`9ru++b>|GVfNyvpTgC_%#ODCFZo8(E{`_>?j2&}OR?DmH={|n)gUSP zHXAT|C`f9fxDAN;eEE!A_9nI{%>lN0#x)WtD+;6Gu|6S2_a(^?uiKg1MsA0_0Jmw* z-Z5h5XW7He8)WL&?Ebd0k@tx}S2h1asb}{3{MWwu z`f}0oFvJjFQYe9@8M8Vr1m7vn1Lqj{11#Z^COE2^qv7$h;B_)%U@~K1Yix>s=l%tu z_wkGsbD@WjH z{`#nII)9q8;VP*o@a8@9b(tEHn*i+?T-!9+)FQ4Rek##J-oNP=`Jo?O3FEJ{5FCN$ zWPt+Nb;%+%MIK$r)?L|t=j5`10=RV@Ebi=;PpWgxtPTU0m!=)KXWt?{<)eO5ID{}g z33>9?W>e~AGv;hq3v^9*rcc*rv#!j`q*+k(jK)lh5^}u8#m8B zg2v9QJCpu>`chE-9Q1`MR00#MLy1V{Ju$^)jq0i1$+93*A}b$3((@`pQ;GUyLv&Tx zv(rf7Lv8va4Mrl#-|GLIqiEu@_C+Ku{eZP@R&!?JK(_P^(_yS^If1Ddj4N)=$FGA% zt8U6R|Kn{|&P*_`Y{saOmjpB?du?b>dGgU3F)AEDPrfw?kMBf)np=UaSN>g+5m=TP zcDwLwSfM|z$7`>oKr(^vEe{od;rqbdKP`mk>yug&LMEl^p47DYo5Q*GU28tXVwp!y zNFX=c23mMYRMX3iN#8R%k)GYGyb^-#kQ(f4F|rAXZRuZlKN^g5Rsl$f(UVDEM`&r8 zjp1Fkn~powB~f|lwB$uR%}{kxVFoU=y&ED}bRnh*sv|FhsZd<~*k`ZbT@Se8BQ?fjznjqI)~$xh?68j`50XZ|`{wDUyEwZizmA zOsU^G8qUoxeq*nJY`^G+I(UP5FR#<{&baKLII>5KhE*wwux0W`4$n_yi>Yt%W*y z0Zc9A@M1Opq7D9WV{t3HW8}Z*>QD9+?)he8Qy`o8K(dK9cai-F)R4D3qe4+Q=2|;( zZ~KBzQ9V-?fw{Iv?l%ou=TpvfBQl33LY&gd=Jt=3Md)a~yEBvRibl6M9~!<4jI1&1 ztNs(9G0=@H;MnjP#2T#!9*g9&KeS4mVJj@Cb{$R^oApZ7&|!g(v_Q8udZ`pBk2BaQ zG0P6mO5ua742cKLxg0@LxGezrw`CX3pojAX~ktIlnSd(Yl(hkI5R$+}RK?}*h2 zW@%gWfErx#I46-=VUo8lX-U!aJ$i+z)C(DST&GrB!j`WmrIB9Xb+x`DG08yb#J!W6 zi*)NfY!(np`_=IHs{hN!!K>zq^1laws{!n573P;Lhz1?C^cot;AL%ZTw6*e6MG!l* z<302j@vc}iRJ&hgxzdUdNd#*eAOGO8MJ)~uPf){*G0!axBTX4)X&L*p>^~Ic0;_Xa z1%+2wb1iePXsFygTd6u<5$qDcG?X!#*^I?lQblcLRR(r`Z$4Lf9YK) zKhHw#ew!WrS=px0OJSqfzj-4l+Ou&yH}ZVZSv<4QH-}d zju(px{k1|Sk(ru6M@Nd zD1;*NoiwX(hq_#h8hKa)Fp+SXP}|!xcNSNv|K=r8bj&ljlMj9-U{Z`iXudXIQ z31=m99Mtwo8>KHP#r}>|Zc@La{f*o|K>8r3(N@g<3xkQik0_m&8}Rd%Sd;)qNbV1_ zTRMupsT*s=u7L94UAx?W)up4n+vO{Q6yXr3Q)o;xd1f%q5qoA zImyGWXEu*n!M>Q@Vpd&3(VMjPUK7!D5r>JW#`qJ!9Ttd?qY+-+ctKlqGN$ShA`iXO znV{ePt=H{YnG&tcO}R_j=#8=f(e`NwUIF6tbfWj;qX&9kVoW% z*psLXM)@|#d)d82dQfT;2zTbNRzw+&yxW1_U0@v|=0j#G>fd}?kgG;WO_@mWV@%3& zpnH%DF3CnoiU|q*A-YV%Z}m|)f>N6-dGs7bd9V8UWC5|UPKd{6rBb*~@3 zb#RP`q!M*y7y&9CvQ2LMHrt92CC~xkX2B(l4fWkng*cC`wjk+6$&R$OHelE0RGGKN zHz1dsJ^wrZOb)*x_}l8WS5kzpxx_uEWLiG6eQ&;d;IYYb7d$uQ?6R~=!6^~xX?P&2 ztIw^Sma5kRFqJdVq5-unmG!LrG9VdlBDPJGpR)6GCcXWU2UnjMb9bAgIiaFC;TLC| zi@Ti3Sm-uF=eqL(&%i;Z|Ir(XBdd+Xl;VG_%Q|wsxJhQyPL$sH4@sxGPHUiwGljys zB8BT4yh$dF``abJ0!nG@J~tn|;<)cPa1D!ZWk>WD@bJF=8r?hQ!+}Qi4G}vxnEA9C zNX|hOHCo6sN7;5$o}qz8IWaAjp^lQGR$((v1@DD*Y|4pqJx|jb&I;6b2AOhda1JLL znW`g>Sm~*`oSEC5WHF)RoDX{^%f} zT92^Y4XJyqJ2{c#Y+SZM&_70<$8RQ35r+s;r^JP)i2OV3L-uda-x}el#iS9iM6=Cf zfGF!o`Y{vddtBT$q>q8nc6sw-|IC(JlLgtf#9M@A%~U8t@;`J*7#{R^<;^axHCfO8 zDUvWe)70aB?v{$XWzE*T6crL-kJu;y=1WoR3z}(k^bgqWyx+ue!SA;3*MW2C8YZ$@ zB_uFnjC62HI!q~HtX0O9J2C!c67U4nfC;5Tn1L^iX}eJjvE4J(uqxPR1-5$GejU zq$=gr(;Qq7#@xN>!hF9I`HM_tp*yvwi?U?uHZ&6-6kX(R?>T$0M3Rf>(D&{cpc++9 z(#;4wLUnfcDex;M+5D#;o%Q=C>zRx`{8E%wVlLXbU+M+*3tcU^NpsD29d=zo{2x@?e0}#A9qHR3&i(kK=LxAzs5~({{+9EqB-RSn42b z3(|QXD?EG`g8G1M+5TA{Qp_qEFv@O-9HzD61im8F@J0bZZset}GrmYT{wExkjxOZ*jgGK>5h6M=8j zA(eDDrf$^XDaAIFed6IfuDX&}sxyYxdrn*pzjf?5XHVi%7F;|p2YC2P{4re-P zW3?X=0-phBW4d{Us!)dOHlD~dZEgW4Z@5cqr(g8kv86~2eXb4%ZwSSPy3qE*@k(qD z<`jKy1}EK386q)rZw5yuK-pITcPtTg2(zg#WH4(CGMfc6GwDN(Rj>M+OD zd&WsX*IEeDQ@L{k$Hdrs#=-Be9`6EoErUp$=h^a7#(T~Wc^&smfJxPXdEM0hHY+3Z z1g2ZC6DA|$0jgiQV}h|!08%sS2wugu+5l3sbX^B`spdCq`OHHJ6uN^FRqRMWKGF78 zaPUj_`M}pMT;IT5YWUf3dIto&VgIcRQBY+;lAXt0&LxV$^o|dJUhrzgsQ2fwiVlC* zE*x!%ql!TqFiXr}rnlJpM^%eM#u&a<%lGGwFnNJ;BG_iad%* zhdLa<6BW8AlqoMp9?Bk?3b89o77fjs7K$#EDLxQJGDWouP@t%U^57196UzkK)g_aM zbRt46@lTZ*I3by$-bFycMscDFg%3+b*d-&I0&`+TwFpd=7{EYDL2*I~{Sn54J>Wt% z1@454sv`Uz5_%^*L9z>ml7j9;8oG_E{K}q_e_YI67Vd5Ixqb0 zA3E+LaFbCAz{vZ;9K0fESxbnw)^p)}9^eI^0Y6I0tQ}YDLIB8e$;QrzWcrE$H5b@Y z&O6S7JRUctH-oUDiaC+8dp=#*833BDWV@jD4)F`QRUX6x*>#Y(3WO4`dYj1p4{SNs zSLjBjT1_Tt#~SIH*|6CFXDME_l>xfm9>)&b!3;PMl_N^Lkf)JRb<>b-AgNL7hTLv; ztfo;MK2b57W9?@{lHvOWuiyE}e ze%<1u=Deq%EvTKI>J|b<1@O}@oVTsFGmOK zB%&IyE71V2m1sZ8hjiK-%}i?a3L8e$FZ*D)x1EZ$Jil@n+7(epY;s;n=j2?uE2nrv zMJ=_aI4fT&$?!n2sQ*V!J4P!6aMtEXsQfN@EyMeG3DHX39% zY@VNv^<22AdNjm2yq)mg-QB&uCKo?D)~~OAM07|Uy;0^^#w%t#u)IT)alwwA2eRFj z4+JU>6-F$2_X8}9M7f{HCq&yuK>CZCF{$UTvPez8{{V(SdA|$a0uSm+-1*dBfGL=F z5`>q*+y4@c}+O!WiCJwktunR??+KuS5) z@E1pHJX(K(s*eU@35Jb_=ldA`l96IDX}UD}UjP6A|Nq5Ud0b6f8{Vf9i_oBOsZf7t zrHMo+={9JouAxav$C;{gs&nd`(;TWRkwg=cOu3OH8A3%|Ty)(^anm4_3K<%tD13X@ z>a)N5|NVXE_j_8;d3)Bo)_T{w+wa>LV;SYK1Bwit!i+J-zbKATX6T&H7&C`74wA+T ziqVQTV1}$L{vniAu>o6DWL0FHq+)+(g8ZO>Kys9$xF-oY5~D~kNXU~IO+p6qvDiMI z!~_zuB$P-fV@_!%VZAB|HQHP`Ja;mQDa7z+8j0z6JxZ^MHM%6`;kkMw^f5OeVMyaf zSigXTF^w;z?Pn3TQ+}*5r{>zw>~^%hAiigU3~DsDW?DZ4jqEnk{XK3^B%0Bcrx~xN+ON6w{+V6 z571(gL5uT2%qdMK?Tm-8AIg7c7UtBwAE9ZoX?#28zmdqncR~3-h5b|ZlQc~(?JQ@p zW-5t7;zw>=p!vB-lSCQTQ2ck|M=mwc{5N3xGZN2fnirT;`!u2H zTWN84Mf`8hkIe0&ovR1)PbB(icl4RE+k{bnTZk3J@H3t>{Ch_5kNAHvs5{gmems98 z`6Y+_Qe4J1SV;O|m=VMIGKl?*#Ey_#B2V4@0Je|Bcf|e$+s|U3BliB`?~F4zrVMQF z#P&?Qj}iNO>?Z@CXT(nj)~Dh-8qvSOb}DyA)AX;goyzYqG$Dndz9L0aJ{VDbzL5>O|ejNBxGKTWxy-#QkJM^2Ihp5qdQb^7AIs9Xj zBVvlGU~7tNzO1gZO*YEc1 z%Fj_}pDpoOG$uA&QLgV7@t}F?+1WR3T`~(R(pyutP21CgYoLEulf}%>SFP(z$DJK) zOk-D0ii39;ii_l$t!(}49z8PnGO@8FaalnUZ*8mYxJ7;@DZMI6%f=L3^bS0FFXE}r z^rnwRc})e4x9cu0{$k5YnR9n?t-G7^SM2i>)~T(?FU*ac>)xp`T`zcv zd&s&cwk>%^+CF~;SyHvjXQq~%61>?tt3>poCI5*{j@b3VyhBm3sRNZKDl#{?vzo8u zD*bwDne5B>&AM$`6+E@Z`T{?vvN?zMA9pEAT(jV{QhLIXq8*{pS3(X>xL08n60#)N zgX45p_k4x(t}|Y80<9Vs=gY9TNAxOZV~U8_`b(Q@VefxdR_)!aw-Zjj)l*0=0f(jI z=li6u3(aixo2nYbPX1%V)d)4^1GhVjByCC>8ZTG_ZW)VL4Vn}zSMt`|8?alq%kSY) zXRX;M?wJhqP3yd6E;%KzEIy+%{_*+KH&&)^W1mX1%gQ_a{_S*i^*H^GpPg2RD62GN z8SL7#WLJNm$0xJ*Pj0n72{@!=T2Q5#R~*y-_vp>$A$)6-)ND^1PUp?E&wAkO*+UJ^ ztxLKaG-gF5MBPA7iM(~31q0tz-=A~pIO!_$eeNaxnk(bSF4$MpV$x&Yu~f6Nwl2>Y zDSJMNG?`NRW&YA9ni?xQKePQkPjdrYUJBed1Rj64i=8&FsW;Zd@29s$CPaUl>|Uf4g$0G^Hx@?dyXt(1qaYY3uK+ zB!_<$ADHx9;umy6J3ew(x@X#^)sG5&a^0KEP-XcF`PV;v-MBXUPiyt~++Ga9^fkJv-lKoKc`kb??;+gJN|Tnx74(KzTcv# zP+Rau=5TrW0+sX61u+U8x<~TugjQmwB;O0KgPeWsrMn~Kz5Lwj?;Y^GFP_g{(r77fHwR_;rBRoO!#KpIo9Mi?$xZ3$iTC<`p+#h%xIi4e3+81tja6@(UNB?}6 zxO0=EY)=zFGn^VGDBJBrE>(q1F?k&g~HB~iDcivt_%a3=qop&+tab45mG`jm$oI_$s z>jz+)AUAn!sp*u`+d(^8;;rJ6q`Auab#WR!9(-jpkLnKsb3y&JYTa2m3A}&h-9I1y zQ?-`qU*n(tJ~yn3Z8T+qCefv&*taFcVD@B7W5$kGzAI}ktnQsmY-x+Ry;gZi?&noq zOwFdd@uAEv+ad))sCVWPZ6BG7qSKbO&hspzWbeDl#!X8nHr9VA4$}P7RiAflok`r~ zCrS#pi?@$usD{dSAMirG{EUC+3(6L%^dFe(AgyS!f0^-qk}#+>Tj63vczOOT*Xhe# zK#dsPk6ck&5<6qLKBIp^J0rmBs?0vaBKH}k4z4au8C%r*W(P7qUeSIiml9rPXQE)B zDuo+9yclrjip^K(7nvwLmZCR4w-rYfg}3H|AOYs1fLO!CU;UPX9+;K(7Vp?|=F`zYX)9 zY6tV(% zl0bhJhsR|~!vlE|E}q@5&!)#$o`)( z^uH}-pblmO4KNqzf_Xp>=mR4#A1niAz#OaqmcSa=0ej#8Rs$#C2G#?2umN}gPp}a% zffrx_9`FZ3AOPM#0)jvw2nP`$5^M%rK@5lmJ3#{24fcQ|;3UWbnIHq~2k9UcB!hp8 z;1VbT#h?US2W8+U_#NB^<=_$c8$1A&pc%A)4)7Ly0NtPm^n=gf3m5={;2Ttg%1{MP zf>Yo$s17yYET{#w;T)(B4WJQR2ufin+u=@_2zSFIxCbV~G?)(e!Tm4;9)ibU4m<@< z!#sEvUWAum5xfdZ;WbzWZ^1jT0#?F@uo~9DN3ago!$#NypTXy_8Fs+;uoHH}9@q=} zU_bnh2*g0LNDj#(fE1AuQbsCB6{(?VXgX3y8b}k(Kr@jR(nfQTJ~Bi`$OL~aMy6;f zT87Nga%6#4AWO6o*&&4Nkt14-T#zeTkJ!iu`Jwsc8iM!_P)h>@6aWAK z2mp7Bj7+>bQFXo&0000Y001GEA@T+kmk|F51eXmT2n>I;S$S|9*Ler9An`@@YX^>|V@(>mk+zPE2BP}U^=$C`PJHTbwLec{6Mktn!?aU7WIV zrtQ>bZPO^5b3Hky47%RPgi?9GNgO zFlUY0MrlkI_GgMV%!-I7sbu@Mj}?m(j%-&788VDNg-b=J933+p&NA$>HDYATPR)ps zcT8o{avZBLdV^nM+IG>dHSN4n7_BLf*~RnWvRyGFIdjCQ*!DvT5(#Y!2j+D*3{st%Fj zvCMnQwn4H^P2O_Kj${-rgo~xJGsh2@J@1g?f6GBOg3uL=Ni#fNvt{fbB^qV4+_Zdh%xMtMRTaE ztb$=*VCNBttYPOAPcgaZm25a$%GmRr3zK=PFo7b=5K@@_V-#h=i{{L{3G=LxjF5k; zL&yXf<{|VX0PYm?sDD2J%qJQOR2q5f-kW6bqF3;k=1D zvbY?IplDmB6M?g)ksYgtYQqVfk3nkq!RG{xmZtPtqUry5^7kb1mpFJqDx^t9gy63L<#7Us)wa(N&tUPaYfOT zopCj7rzKsL8UkuibG1;zLrPGeH>BuKs=9R8)g$q^F7@f(Q1!!-JBTNDD57Y3pX8Pz zicZYwh%%^4DI#Yg%8)KK6Zv#RDd|#-$mb%;v@Rv}W>t?Rz|fO1_ocA*ik_09Dff+t zGSgX+x++q||Jr;{7 zFLfS~y38uWOtr2_nbCH}rF7lWbb`Xyke2x4vb5^5#)$GpaInRc>f(QT-Aa|?EZ`wb zcp=mihh4UibLcVZJzXa$HSaL`c=s3KTBh7iUWFX(g`oOT>$Vw}kVab6FEm)@s3*^hA=3N=mhw z{CMyUmo3G{IxTp;Ue|x3VajJhqWq}{$+C#Tq7+x8fGx*EgC0h8B(9+lD5fhA)2(_8 zfka598cklI1>bd99EdGikSX<=MpZ$8VO@>6Y-L!HALBUI7Npj;ty{>;rR_o$&EXY)D>l)Y^ z(?dwiS_n2mLrq-12*8+bOAT=~$QprxAhQK7TL)$B*jt#A7pd6C?xJ}*^fn_JE?W=1 zimvoGhtz&al{kZr(Z@nfZXy$!U_xA83^SGl*<#eU%Qj$p5l=;06ORi316MdwjF4J5 zGfu7AA5QDwZ1jJy>BEC*r5-|bVk*^WD+1ml0#3V|n8udqK`gkX!|*29MQ$y1SsUDH zgj>t1VyN*x<;P<@U)W#nvdtul$gij$)TkY(O(<#2yt&$8Op{ks2|Yci>UBFL;%aOu zvhK1ZuaXq{yq7mu-yz<)66{SyhS)ONs?!s?)XVwUrc-}g_!b$p73Y`xLa|=nnSF;~ z1&Q5p1EKp?gbsl~4MzRe$-4{1(d88t5Qx1E6|jQD!V*=^c1*EOIUei6iuc3V5FQ_a+y=rL$cz}Q|4vJL+5j=QW6Bg21G#3Rk?1n;Rn zR6|?|vV_a}p`{OGGn$|_F0To))h^pfOk{jbhrCv**W%q0^?8_QDvcz-x-@J!)G4o% zy0GF%Iwp&(5ZH}yC#p;yxM4C{a1FGt zP06e2#e>kSgF?(Ww%%oXU|Sly8*WtVs3LlOuh;9X)M%}|*IUqR8-uKcidd1`aBQO< z^7^_J^3(vETy{4>A_i^V%g|-}Xe!{t^HGD38jVv$5{mZ2w+dyW+P6XOTNtBckij$H zX@Gwqt2evs08}gitGzyebQ}bJbEljHaH?uf%c)=S@;Jn6BMCvgKInbS&~*pNi!ClY z3>CXjFI%g66WK_3!|4cAuJ%6GP>oYx9QAngv1X&ZEhZ`PKz}M-lA>__7!4TScE>@j z)#U9I*6n0_M;=PBfEeUNo{ za5G%&v?q4jKb}fI4bU?l_l#%J4zg$mx2O{qbp=_cC;A*j&w8R~`GCZYApMdz2{V|C z7=&GDdFsd^ubhXxRNsk=+=+756_J#_{`4DavOj%2DdA259G4jYIOp9lfPvXKIT(Lr z+i0#1A|cxmFG|P`SV^CE0-I{!E|(1>LHm#(U5@J-8X47#S8}pnO2VwH82kM(ypS>a z!>ZT0IWG+=?^_dvwEs|gsP2UU-0=8lPC%%DhO<)gZppW1H*d5e;;|lv3;>3L zya(v?xfce|=iM$V!PWx^**?Fw&q3ctO+G+=AK-rPhu=uyejZ|*DXbOpgQS0nrt$$C zA-@m0%mLOB>>VPk^t&p@E2DTf(O?Zxj`%RH@T-JB%IE|xaZ@;a47MJbM{^4mejbLj zkyK3L&-d`>m`YTfY5orIF7W%`1%&i?i+mIz^=^T&bePBDDE7$PV=lWFN=`!GanIY) zI1kf(2-9Y8Pq^%U2%H9avO|A9D|Jh1qE$YtZd2v63-vjsd}>ZsJ{@GITI92dG*foS zXM*gs_Ye)TGYA%?`Ya|ZeP-MM(9Q&cY)EgA+`vACwFjBuaiL?FT;LmVmJG72%O1c^ z20J-F8J~hrCpCGLk}=AYVImnLL1yx@p=$(dz&&CJnYoCU)>0fE@iTujiu072G1Lcu z4FuQfkjEu-1m0K)x=5lW68$Q#Ag}fl{7!^4#dvq|x}qCPSn@E(Q}P7)HsRlm>xTK^ zI7JenSyP(K(3QDcK=dXBMpC!Itsz0<4KxRXXG; z@8ur$E*AjY&+no`un{-UG*eZ6ljX1H{eA%XbnpYn--OjpO{L`Xr2YIX?fX6L_qgmq zXdi+03-wBz7x#nSR|lRI@jN}ZhHdcy@5NODXU1^mz7F|*VX=QVXy}?jUp8peg+n)O z-F4e!^BYOEt@o$o2gue3X4$&Sv-MLhdkA_h=)Kq>PfM6@C@QWu;dTB)z+3o{h!FQ; zwU+6W{2*z0aF&*bJS`8o>=Lw$L(3&UB9|y46aqvj?`2K7@`HvqzxunE z2O5We7V5paaeFA)P*ghKf2!m8?02RH{w(*?|9h|g3(F2Z^~5V(7eD;Phn>$VJ%9Z0 z%zuCV;a@uk?yhJNlo?p8Z;5 zD)Q{VE#LCx5BL4=vw!tZ*WX$4ukV)&-+F)l%)M>j-~a8?GxzI zeC03pE@{7%Exnfh$y9F7-&qfQd(TkUd-97%U*0qPw(>{%=eyUR`r7w?d-H>1f7DhnoNK)t4*9-)Q{)LA&?uZ@l$YRU3GI#XJA7=)!-c zJum+J#iLhJ^Z)WYW0P;LntnWY^~Z0$eEqiu{-yLm=elFB9sAjyE05OwbUN~*eJ^~o zbE@t2&z<>2;GF|sv5>4{mf|~uaIeHFh}=DnH7W8zGb}IYN3bS@%;j5hYzg`z)|jC0 zyCvVIperKJgmVrnD`?Vb2pQ{^nmB(g=#ydvMJ*o_@<+t-d+LCossHv1nY5ruSC7~u zTF2TYXzFRd_uIu8qT2*bI5hM61iePkLD3_<0%w&tPck&4HVT?%XN!=bdAv^0H1pRA zy1u(ywn^V5ihO7+lnY2xPJySPpaf2Q_w_G+>D=4zy|?ji$Nu?;No$-0<_v$EW5$$K ztk_&E7hwMHspI2;-rWV{A@n7V7bfvYu|z+wIK-$WMs2ZD&RO@Oq?C|M3Qah zuvH*!!CWq&(C=hU$;g_yO!XdM%bt~78p%NJ1+qT z)srm~BwKrgjDD2HmlL4SmhNYj624_s`d!b)6> znc3g!tl62(ysUB{MO2&+2W{e}6_L_ZT)c$1sED*KO&sh&B)w2+x%JXbN&EwzO6q_j4k#X$E@8 zo^Lu$DoIdP&I)pZAr6!02)!KRI0a5{l2bU8I71nq3K0o4&e6|#E^v`c3~-q%T;&>rT;~Qixy5bn zaF-#5xyOA*807&EdBhlxdBQjoJmWbpc*!eX^M<#)W0LoL;3I!iO!J8uKJ$e-U-`y& zelW*R=2_quzgd(OvQk#bYFQ&|Wu2^-4YE<1q**peR$64Uv`M?P$`;wmEKdpO!^Pq> zM^&l|%MT=BMZ00qXt&Rl8iTtgh>aDyVVdZ`{@-UQwFFR00|XQR000O8cZ-Zn?P};; zX&?XqWHtZ*9{`v2JqZ_=pD+jve|dBp)z#N{BiAqz~9!AXRYaV(N3>%_J! z0wfp`D5Zcrmd1(_SrS@80)z%w0~@)i?Jiw`|)|D~i$VH=(vVZE)+k~m|8~1lWTSRf2nkjk$gMi9`SEh8QVR&K_!RD;D{9EenHN62G1fl9oHEC6SR z=Z18xB%pB5%tFb|f5PEXaY%-Z);mCH@RE70PNiTMbL}=Vlj!7*mS{8x{TZiPRid-Y zl{{>1SQy;n>>tY)vn}~jBiuDg5}39xM6w|^SKHONKL4y%+1(^Ouc|S zhO(MnKu$w^t^+EZ9E|r6bbOC3FjgvL3!P=Bl5vVPN+`K6e>6i0AfbzyS<+GfboTkl zMn459AgFD?P|MfyrD7mcC{>-HJz6Cf=uLalRX80S!7(VWIYqBRD1E1sIgoWm>$%y4 zpzLK`z7nXS!fL^4eU$L?b4seitEPRKf{16UOf^PXn{~?7&~z$PXVuGDTU1!~oNe%I zHJEkA?0TUVf67d32EfY4a+i!>T{#z&pXEVQUfO*$nY-aG69 zYB{?k^s+BFS}IX-`gb{n@+?_8!YdtA z(M{i7v4%5O_QuBQ#h4ij$7Z6kvd<%`8`o`|7ds~~D_4oN-dHO-94f5UDVC7H3xB{> z$aLS@e+%(utj*bnOspa+JFr!xXF5}`>s9Ccvdvh~$%q7K1ty?8zi<=6dt+^IE<$cs z_Aic|rw%-kt789ZwfA4Hnz1>}tJBmAV&5zBX-C0z@7eX%{m3A=J*Cs&OYCwEY5w+ zC;z!VpVETo6^iC+EnOFDiqWoVmg;v6zs5h+n63>OdTLclP3kG1noMabehm6C>Bpj< zVfq{Q?nuxy&APf?tsD9|7<|G|&RP>{m!T`)x|0ykGp|szsuFjvks1as=dvp;=~s#Mjp!(FT$OEo!n4-b)=+-80*b5rxgs z3@xd)fHbMPX9a1l`)y0tX^5UT8=KXzm73D67MQkBb(t14%YfmsPDJn%mv!M0e}R{C zKHxj1X)e=)#=$6`uTE&DZ^%#)7=M=r1Lk81Ze$m@EDY=h6fE!}#O4IG$pl{nI~FzD zu}GgFUt1CAo9l<`qI{t`A)|94_AdmPL@t5^dM#J<48 z?y`k`AD>F_B>=Fb8Nd<%i0ER^ea?k05vz+JR4`l! z4e!cyr4NH|mr-=tMfk{BVOl{*??6Zm=pZAO01iDbc9{WVA}}VxHL}K^^ruc??~YsvpxI>+W}Jb*ZfqbOmp}|Xe=l`eH^l@n zV9!#$-RHAXXQbz%kbVhyu0>QATRM}Y?9!m`Y?LooCvt`m-y>qb446`9rJYM*=jE2# zM|MM6Shf1FZ<*iZmuVx~kg2CqXH))EIH{{L&zC_8L0S&!^o+V}IYBcOcG+4U)7yv5 zPX88tFm6S{mI_0n0>etufBCI$4MOK-LE~GB0KLZ$f!-)zL2lBmZctVbBJH4-9BkC(}?~d^P2`DvEYBh-B>=2&Ly*m#u~VHLyA%D=cRExAsfzC@Nu5s(j!azVvJDWu0fAoMZkSZOI%TfQHd482mX`Fl z=t)&qJ3-q70n~IV>awjwhR7?|@~hP?YNRj0w<58(MhqnO01|sgf?qYT4*!k* z0WA~dS7j8dPnG+x0`m?q?=bpz_%i)Fv?>TX2)fa)`wsQ%+G8%e@<3pUEk2Y{8?TR5 zb27!V2r^lgalj_Fg8T>#Q{X0VHV3cD7&D7@FX>>B9X z3Vl0fm*L!`qUU05SD9^#Wz}NT(qU@@NpAW-XQ5%0Ll)i zy_u4Jejy`0G1YG=|)--)lB@I-QJEL3+dgK5OE<0Hwl72SGKZx zXVzsu5sJ=|t0+;`WH|`AOcVc84#6(txfA0b6W;pCBWYqO0zd;oZ^JdCLoaEQT zvp2Zxmb(HPTcT2^e&n)S!M+XbH_oOJfdE_t0BPwYKU@Qf(V$Q_M`KxnL6Kdo5)_@@ zblJmx?6MI^+YV_rai8o#!h_T*ZO<#9T|%2Kl`|y!iOWW@X#qlfvt}8>LS5kK!LCs; ze<T?F*uhZep#f>A{dxkXiB%Ml!3)@0nBLkgrk*mQUykxUX!pb`Xtzn)ZW;(!Opaa^e)GJF7Q*`=OKxnyP<`idw_tR1%RaIIPlZ6 z2z%*Sa#}3ujRMtTXgD}C3MUZdcI{?Uf1;ZM~pDFhQ4mh1EhT=wC_b~(yzvr zQw78&iR{=XY%?Y8c1gP(w78m^e-dLjhLe3_6x%B}d*$S_Uvkz3ZIz_mA!#-E`viQL zJ0<40I~zwgJarfKq8Y#RVbcMD>_7uqSdvIiRmhG@+TD^?k+YY$yOiOI+v2>W%br{T z6FI610rac^5IySvOV7QqgPym;OnUBv3+TDuWj}>u(~x$D%)jQ&eo%Jye*;LE1Jv26 zPuxSLN$r)4p1{Y4sCqFyv{1{ULcAO^*a%h+;ecJr?+p8=r~2+L6JYP`;dg;}N)R!! z(ycQzKc&*y)RoeS8d`~Cn0W7U+2O4UI{+|*_imRR0bUzL`qMZ+NTweYg?$u0jLL^* zEz#-CV3&CWJa8Z*|L$?wf4$hAg}Jx_9nwRcG<(r-?#SvohU+GNVb=dNrm_3PG)7ky zyrU$ZaM}G>f0R1UnZ{l10ceX&PcjpLcgUOWLpdq=XW&=?=d9M{JI3D!ynUk|vQ!e=*fPG{GNM*h88@Qypnv>rMPmGP4Yc50lAsT1`SG4RDXR>?vrw z4Qr2j2L@6ECq@e*f!hG1iy;Q4r@>S~VmwY$o({Cn08yW)S8s;@xyzmfQyolCAQY`8 ze@bCby6ib3!jn&}<p6MLdd~Z64jiwF zf%SRm`{(gSUipQ~egW9~Q4~|Sq`GVh*PAs7ejKhp-t7A0!?MT+M8>_?G*8p_ai}20zjWCPP<$7h_|j}D5!A+u-ibGJGe0iw zAjicWe|op^H>P*sq_?Tpg^qytFyOosq!vOANEFVyU^saW!@FRJ^7s9rBT@dI8aiT~ zloj=!_&(-$9IogQf1EK9>q3t8mrbzK0iQkVK z+J57*525W|X!}HX>7%B*^+w3~NFEx$b=k+@e>()ePiNy&dm2l>fznfS3JUW+kzanP z{|*6(avYo)ZfO+n}(2LrcWUgGjD_$L;WOh5ZK(0#F_T zZq%^l`z>M&o6 z4)eze{%3{#(d1u6)<^hPpgqF>6nd1Oe^J<v!UBo9ML>I!{e>#xHRKe$zNezlI%DYJUM8Rz3zf z->l_-pKkj&@guVB{~qRUUdI21WE!Nui23E&{Rc?9*W~}8IR1l<)W4nNe^uCDf5Flj zxBedh0RR8RS9@3!*Am}kgX}?4SAvhC($r}6D3T}^1*@(gprRB(tcnUD2{i%8#`gxXF0=5<#XAf813<57tQ|za&Vw($^Jb1LftcLc(1ZTuiX`lrzuu zmvH60k`H2~3c+PHH8?`TRoJ=3Qa6`1yo9>~FpTE{B-~Xyw-A(eP*x6>Ut?W)egw

rb!Jb1h|P=1wouCj9kp!FRq_EW;~v2BvH(^I!Jh`d z8KOAIa~vN_w#Np!vn<4;Sg2%#5NBUht)ucioWtYijXRyf#l$h zu#epC+PPxj=7GO^e)7A(y-T>f3LaGOpi%~?7@q(Y9|#HsC=|*71rr&d;B|KHw{)ju zu3MxJ>wvmI1+PgCR;ohS5QU&34({8zXmGFzf_dOL;t(zrmi!*3e~guI5AEDUc)u9} zsPmK8Ljd)VQeFx1sz^$~ik&+vQ_81`GJ1|=RLE2i1aEkuHMfvgu-y$7{J|+>!DIbD zifUqOQ8n1PaPXK9?;rWe8^B{jOM2KgygW+6J+^cH@VWqAKY4@a?c8}NtC3(xU}ZtF z5N<43y5P)jYWd4`f9918(Y9|rk&>1dC2*LX;V_@tIbSff73%Dns|M=K9ikUpwy6Y{ z?FxbIVdpM7Yq%gkc@qTD#F9NLNbdW}n-uc}m5<;KJ0@R_;N!lKSK7HtGL3wQpS%(1 zjbeHu&>=OXj{k(zjDmy&YZM{wa11g*!MZ8oAR1vgsg5S_e@gDncCHr$w*&V19Ci+$ z;D79#3N(dq6o0$6l%Bx4+qqKM=5Q>3!G_fF0u$seRRqZtEEKSvD}(Lw8a`O52x$mm zi6>HrFQBwqT)wn(m%-ppUecR^uT&r(X*pO6_Uk8M{Xt%Bp`S$IqUHrnkPOaI#j4;O z$HB4ng=AN7f0|^lAQ9%1ub7RrStc-WjZR92J39$r2#5^C2}A2e9YO@DOPm13G=|ypG5G=xd=vv~-mHHxU zy{Mkp???HB<4y4Z5Fg4X`hgS^{=0N7vF|I|`(TRwe?a_2c7}-XP?4|q=pILa1W-M} zfz&?1L83TAD1VeFS42NXw05irhf_>A5h7nvRR00UBx;A?$s(ImMEYn^&ZmlOP8aFp zM0%abPCWCf9%hL0W)yLfMEg~X@{>%l6~rdOsUkdE{#l3O_zC_3WG(Zm4%dld-Xe-YNzaAYFCzM&H1d5hdJqm| zG3B13m|Q18I#Inl72>l!2v4yq#e_q?L&tX`qwfip2B(<7mt;L%yR%gl5O$ zkgoZgu9Hyx4*L9@zIX7q(mg$+cPZ5uQ2rAde}{vgPxX(O)?VV!Z>DzZnAZAn_}xVL z517_|UQUo=M!`|BzHI!Id)|4X``YMNiizSdCw6{fY< zIrz(|{ok3^{^zj2jOvR)+KKc_ss1!QyB0fRjW#$V8T39bD{cMKsB7j5Uw&fAJH`Xv zf49qbB`iJ^E0tZ&xg54!ULg(YT$Nh!b9tL-)0?lKcS|bXHga`-dFS2@D>FWRD>pw; z*GzW$xQlz{I8ld~c+I;WlZ$a`0n-@Uuj zpVvO|8a%IWWvTsaPXF)vwCmX9adOP`sA*5PEw>IR++005vr$;aN*YX zrDr~yG}1RBMf<4HZB4&no(cW``ekBVmz+Hn{>`%IM+Xn|Dh{>Hz&^eg`h567_PTxd z2hHyK%C957sYgE+(3b%%KdNQQvc0NoldHZUnf33nfJa65Y zO4+T855u~Qn6x0dpv1F!PQbgS?hjJ^^ZY~eR@a4XAA0(ccef3D-srvg+Pw5mjpy=L zPhOEzd}#HMW5e%WL`7pV>t-K#Rx|Ep&DEyRr>9O94X^#R`IL5G`}dX>O#Q_F^rs1X zUL^kDTX6Q=^I7@+f1;Y(uBx8v`DFdDJL3~O%cJ~r1HWClKX%BS6|O~Be=IqO zeT%xb*?VH4baun4uMT*v>w4-?$PNN`Qo`9pD4@L<|#Lf%x;%- zD7bdWqG^G%veBY`HJOo5s^SAPgj*{XkC@Y^Agcc|wb#r1>8j&{e|q{{*qU-{x4K8U z&*Q-S-3==Tv8Qw2-nQac?aQytlP49fcyrZ3&&X?@-BU|1_3P5<3>!W+DY%WSN+mYNSAFOG1(ZR@b?mxV{R9N#B><~}TU&Bq;we)|1)n<{s` zdCH_d>a=!Q*4Cm&e@?b9muK&E+jy`1Y;=a+#k8;3)#KBzx`e)fH(hs(ym#%=*GosKFB4y3C) z2d~=@U6}OX+3)Wam7Q{3G^Heb&#qDW4bp*q%PuT39(~dFe@yPjHGk(s%~;xgbkO!M zx=+5dUnTMCwde7a9E4nRGIx^79=Y?eP&P4Lhb*x!OW;4=Th1dGIxQC1TwzyY|`?I(wi~F#+_lopPy6CrPunWxMzy{WDZ^XBS;p-$3PZPd=w;`;v*oRQhWepKE?Y$ zGAZ5-GLPCPIs2GmlBYRL>qT;qLgQRZv6Sw^LNS>SW>K3fLCh4B*&>myB{AwLpTwf2 z95SQCP(7Jrrcq4hp@|fK2r_~4iH%5#$s9JG;#iRPe<>!jnqy`pGh7(elR0l3#bg!? zrI^f!qbZ-*4yKr_8%gmPiV2_0qyp6w?r`SSOyrnz$s9b0c{L;VryMd*JLYbpQ&PSc z#e_rVdllu7dw1s5+^3|N?9Y|rP9tnKauy+3B-_#%Qa!__T216ZV&a(rLz0H(n+C0Y zH+W>nf26$|t7j4diZjg6rW(yDT%A*JX5qH3!;YPF?4)Dcwr$%s{@AvYj&0lO*tTus zWUqB`&OZ0^V$P~r^?fzQ`@B!e?~I(?1ezn|f-U`YjzlONn*a^f_U@sasG01^G1h`r zW6}s#;o0FV!+C5PDCtVham!luMOLQ-O|vEJg?7vkcb9wxGkOg;236dfg+Eo3X_jFU zOPZRczlE}vkQ2?9NCzhxGi1)vT2YPib*tC_gH}q&HnptP$$JH?gP1adnZh+@?uo2p z`Z7yrux}XaS;m1X)2)+Bn$n{4p-UK5EW`SBX*5f}n;HDWU)cugHJ#!4+5z*ivxQR9 zv)DM@`QIXXG$OlM&{jKXC>UgVcF`>evt!o7Bm+^bH&qS@!Unk8P|gd@2Ff#_|9WSu zmF}tkvzATO2o5jm^H!c47GVSg&mYtQ5x%eB#{7RsqJQARVVE1DP7Jy}sawXZNVWas7pKnO>$jerz{k5X?o3<$Ft@Uu=+^@fHv-;} z_`};f7~H?a_Q*eg@ghfdpB?zweX%R--5zj0AvOh<<(O=#oJD86hmyD5RCboNza1Ak<*mr)kU&S7{~C zh#3H{)dD=AsE^y+grQkEv{rdS7SXJwih9XA18Amn`_9(%K+2S)IIzUtb3 zZ*>E>@ycE0Mk*%#%V;H|Mchp)qO!PV|DCK5t+uQ@iqKp%eyq3MEmzQ3jLa}# zMTeDXYE)GlYxF}X9Wt!0-l?E|k3j2|XM(M=M!F5qotx+t98y=P$}+`3E6}JpkbLuQ zpt?tQY0y->enM{oZ&IyS-%Hk5pw88`(3}NCiNK|X8%liFAJrs3{`@5@R-zI#bh;&i z8ypo0nalsm9a{9LEU0#xh8Cz}ZCru&y8r$y&R4Be$&_rjNGH%qUxr;`wA7pr&}3w3 zuB!R$xP9aK%Vq_cuwU^ju}qnW+Ty z&+==`N0?Tt(g;4PpI?tqGQbJCHNWrFRE{3{Q}VDJ=+HMub*TNfa7p@-5(Zt=J{Ye4MWw#A zU_>kuZMx^YTwsUDM8Aq0`ZBb8kK!3%28s)2S>loT9L##(h_T}lY>-S5Q76JDM-i1* zJK@7^^3ON^*u+;6wK$4G6e$gnbf&)QMezBqaW7-F!BF_4$PLDzym#V;k%fX$ ze>lY5Kc^}7T`>06IS2ifdLJc;BByToDV$NKY5GO5=HJ8ZUpts<2w{zQ^&v6<1wIrs zO7rxaNf92LU9QOx8QsVetov#qB6)nBp2!}xNR0y#Fr<*OhX2H9)Mt)fmP&t2y!a|Q zRy5+ZdUl<{47w#$_`@oYF;OimbR9R_r7zfW0r78r?$ek|VcOC8=@oL=Vi36=&O0*E zyzRvAK5`m^K2e+ZL2e&|2ah8FCnQdll}-7tKKKY~zirnP019*weF8Fx5DEUV1(@eK zaHUY80zE+jzc`dU1pA~mEy!6As%yIuwhN&HoU{<@8c?xLFZ5P<9-Ka#C&dbD8c1!l zFbqy(QR}00Mm#bFEj5@iDUF|D0BI8n5$oCk`t+zagcIn1OCuFcW~&Q;W>cFhdWj;Q zGe^3>)eSXjVltu1UYK)Y$Dc^lQ|d;{aI?PJby4IADSEmXN1lF+ICfh3xz=7X zS9_jtpc-;yP|Q{Gz2jVfg}M;q0oq&;tT1$R9zPh8Ihfxi<}NEtCwcoM6AX&hQ+NaO z8uz#h3>SEH2TzTC!l;O`Elf1Y^4~PSRngEcHO`A*moU9u287Jf3ClM4E`>cNwD z?I>P!BPm=^!?7sGu5=(iDSJl!6#%L1_wn9C2YVMu2!ky>VJsP-6m%b|j(!jh&-^sn zF)+Q?nnip~K|(l5P%-|GHS^A~9w{6TFl1nA1f{WtKU96p2@ff?KqT0JfO#2VkGH^4 zh=ddz7tJCB&7xcZuSxm%#ojOT1q2_#0$|>0vqWBsf8x@v0YUCKIM%_4286#P!W62x zP~?-OZp9_AMY{9>33*%}J$sO|fEmDb7W`(TF2cL16*RYw$h@OpMO&@FH=eg+JDXNSr98tKrzdS@Q^NBmMi5 z^tY>POLdQ9=F)3f_PE&}mNH)5)(-_7u^D(}3biE^YLti|D0?2_ZtG|#uBv5{0|ix) zWvFb8w)AH`bV)>}k(LF;wJW`H8FPhlPNq^Y%_Bi8<4q|k6+jrq4LwV)(}SWZ%D-}o zj#L^o&<6o9un8Sxq_Ev{G{jXSJ;I5Nmi?2k!S0X{e2<0b3e;~Lk=Y(a5I6r^F4Tpj zPdR1+)f;UO48#u&RIIcilL{=T2Ev{yLfk7OaU}|3-=G8ju26a*9kG6l(^9aZYXK_` z8#dl5Y%)x$8$cy6#_lFW1nXAfeWxg3*6Uo8Kwt&n5i0PJu;ugL+*YqC*Q(awLZ}|* z|4u<=8?k595J|x~I=K2WA8%74j>>kURjxC$3KqG*|q(4sB z0N%UiFX-XE9g&Bi4*Y-sjw@347!gPBJjw;+^m??d?g;_-zvw*obtNL+qx{~2*+-E?0t zkhu;0Gg`^SzjeQp0%~%1RD?OWtqhfN-!`uDo{7wiGO@D_4Ham(e&%H?(8?2vLOgXXrGA?-&tS1n!X(cr&H($k(P$jC>W@_q=Cs(K`#_6Ia=Si1&U643@UBxn>|Z0qPI7qf#|VHo zuO8oXH-x6HuR*x!?zs%k+r;I-=cRyb+)!Ju5}VI`sZcwc;gR~#5$Iz#YFyePJ3W{Y z1iXn0-p@I@=pJ!C-}6(zp;O70&ufGKHZ4z!GrRZG{_4$Xtlm$rZ^zbMWGLWa2Jt<6 zD_SSK5Cu$)bSC{Gk#~ug3%qu8dJPugbvIkFM0Ped z)_E{y5M7EFyL}KHE}JU$=zDf|03shshTv&Lbliy(*13qCh$mw4k8y{~B_AMc8v7Q3 z+F+S7=0|(KAcfB7v->c_wNCr>KD6BZGCWuyB@8@mCAO&2rO1TSL==2BJyb+W$)uwT zlqZJ6ol^QvrE(|C5T2I~nL)(@qpSQ+nb&nRNX#5I$A{q#J_;?y5~eOecV@geg$X7P zovI?GyZo@ce7Cgyx>~WQHVdG|NOh=g+g+R*!Ejv%)qGzqNmShD6yshHDH1`3z}8Uy zyU{R)duDG3Wid(S z67%P~c|vxh;E>rP z$L`>|!(I<|+~8I2Fi-7Rcr$H9KJRmQLvBad4YcfY-E#8=+^Y}3xFgZ+qiGMLS?^)t zjbwh~zbY*NfdA)qijMjNn?nM*MMg`7tzySdf|3B<`k0vB0V5+jq-PO#- z2=-~E;}5veb=sypJyE-_t$R?beo3@>J>GQGr27a{X1WH-oVW`XDIuJAv4WLd~d8IYRQ19Y?3J+1hhj^82(PL}{o;YmrgM)pAhv;JgmNX~h`zkK zb#&oL1$9$3N-M-tStw0H#-YKH_nN-hq-~{y(g>Frt${R^_K>V-w)PQZGa=@>OcP(U$-N4wz?QYwbO`G* z?bN5NwoTUE%tZHa>62GHo=t0~^fEFsg(Bl_mh;KAsprG%fX!M{axpfb9o~Pz0gzU`PCfm)kcX z!in?{642dX4rmvPTZtqG#*f}l9L0u{M0UUu(&ZgB!ih8zW$(S$&576DA+?kj-boC< z1K~M<+l)L>u=|7fnN)J$If{_y=f}i-XX+Lq^bo~{9u|_1%%jCaB9bN!TL2bA95ttY z@+=GXsvvFz0GTuGWD=m1o0H>b2Ac_TqadF|l){>m^MVoZ{XG&SKA~kiXba6zwpr|_7g z#^El30rZR|5|1?N9W%DXG|Y-9$fPJCN$nss z-Z~I-Qy4RLV*jH#6ZG=(zPwc{D=NbBtToNl1hO~o)I_}5XK^jiSY>IsdKiJYy$AO~ z2ou@pk|V_ix%Kb<=*JiHR>DTk&Hz(vcLl64K%y-dXbF}?M;#TnD=9OfyE(9EM3p-f ztJ-fiY!3-6RHbzHUyNFHG$IXDJkZFUk@>4C>=E3SWIf^yGNilrp8%Ih!;JP{iiBMb<4X?}UI?)9);P^t?@PJ&KiQ&oZYbQzH=Hi}zEEwCtD z0B+o|B%Am-Gw}~0NC^jw=hEfR{ru!nK|!ld?X&2S^gKrdXGkLj;;V`@+*JtbXv0m{ zQ*;~L`vD^>#fq8?kb8BLMU82Dg4F+@blV1j@yfRpC8>UaKd-3rFQ6fXZNxnw+hp7b2H@nEvO*Uku6)_37FnwP*X{JSo>L8eoSI zP}@EA!VrdsL7g`6gWA&_ndsyiL2&(C( z`*s}7FK=OXIi99?XnXqJdO5j-4)>H{wz1{kt5x&xK8|Y5tI6_y$sHcs0dhZg7G0*d z=DR*0uR?Np>>ssaH+ddspPuo$6_wD%gW<0}ZZ?LJWpfXcY2i#lBovubXw=J%v}YdjkC*yf%U@TVVJ ztKp_65`PI?!Ih#0^aW6xCzd#lnEL9yUrsHueP?houNSMxAOo=#UnZBhV30@9CmW{z z=^2wKx2xcQk2#9?!T>?g^kB?qAC#AXO{VAR<4-IQO(ce&NR+_f10+IE5J;p|4JU?F zn->?D;DXyrD7ijbR51&KG%|x>rX>86nVBWiDb{BF_eC;bBb-!nCQ zyH+?9Vjv)Aj#LG&U+Dj_WCM&X46HpoO&tF-SPN3ua{lpUCu^IWx96WHX-j5>qEN;Q z3gVC^i*si|C|gqn0QK>^^BHUWJd~soq3nnUM(^+E|0~MlH?vIM-}I}T9EqNiMgVHQ?oH zAcqS*{NXx6nCP2vrM5&W+OUg3ud$r;_=2N@P|Zq3uKB`L!(yr(u10+F%X1*RM$@%m zRn2yVbXpgU+S=26L@GrE7Tj|q(Z_XwVv&-En3yL8#)ZiiKycZL28FNch+|&GmRxVO zI^;Q)X*0f{97F^-OY!Vl4e{dKZSMTh#!M;Wc9^qa*$Opjx|C>!Ebe7lHQ{&>JaDDS zIk*43kY^Eh@bR!qQkrN zs)c_X38~g%J=x;Le73@!OpXJt)ZbTqiR~;NwrD`oEf$SddR^C@^=+X~^QzVAe3c}h z2gx9!u+(78Y#fhH)z||XC^31Xq{k9%F6ur*0$ILtreVl12riV{n{eDOv)<}ItW&aT zxE0!#>RkuP4VF{3$`|~tYK>@)Z9MvHKpX>pCnHj&z#_5is}C=y8XX4c75?U(M@#yk z`=bER5bYK)2@xTAOpqZ{7%tM&pO(>5`KC9nK2rl|=urxiE?_7@6Pt@T7BstNz7_6} z!(uqwN#-5QwxNtF3;X zrNB3+%n%=u4WVRT>>iHxd19E4$!?KXjS2^(749%yZPIUno)J^X6at_P)orHO+rn0p zbg0;*AURR?l51ipaOD^#F&e9=rN`m67)#twW|Ve}&bhk>uk=D}fl zvdqUVf?}vKWK#tn3EpWWZ`S#|Ob2|sNqIe)$R{w09=#ttH6OB?R{NoyXFI-0fZmIS zOg7?#PL26f5jS%T`Dmu42Nr4EkS70qdI4>q8bkmAiD<${{#T=-lD94^?8t4g(TLp&+U)BX=Et62_ z$)8G<&;@o&OZ-Fs!(ySJ;sanR7M)=;c_2DDEw_Xe`3F9>P}mpto8@CHr_U$86f=}b z$+&^O=v7I2nRr&BXN!sbcereNaC@Q1`Iq4IPVT}TGjECt?Od6=K8;sgM+hOkG0tt(WQ1E`=TkrscfX2+M2w>f zSE+-G`S{DmN7dK#tdx-^Nn~4P{n1Rz?7!?S&4=#7t+e78Yz&ULp>lAOlkH@e@3P8o z)zurD2PzkfyD(a`r08IWwOf4w=G-)8_D47XE$?Nt5EM+EimMa7K1JenF!=lVSuYz<9l@ZRhg`C~XY?uHLR~W? z*wX`Qdo8gyR@uhg#NTgcf#LZTNE70fOn+NdhxT?9cyj^3nqh$bbEcd5Hm$sq7YdPl zyHHi&0#Dks#o^BKRvydAaXm0!)%7K42$eMJaYv;V!x~TFH`xXkY6`5mqBdwnR^i=+ zde~m9$(lRS*H<|F_WDF23D#a{N!pPX;=x?PYrvaDQ4-VBz9z}H;rQHYUMy}lg~vCA ziWw)|Xzl^=KHzq$db7zp#;{W7XOZ!iC$}MmhcGfZiw0nO&Lmo3Cl9sp*^eTK@ z-KGN{JBq^z6;5vvU|1nVb>*wqb@8r4#A8R3ucM2RN+P`|m#F_1MJeEhz<2VGEp}we z8XIzEW$$lDsPBoEYmECnmSH1CMDvLC@yC2Z0Ol3oR4{ED6c38gPGO71uRflxiS-I^ z7Sb;{YMZZ^CbVxF_zrU!8C3= zoK*-L%A}FO@amM-2EGQFp^zKhUlbU&{soKz=2!D>@WgVlsSFR5JNf`T4n!^i6c5T^ zNLCE6yOhR9ohP>(x5=&(GK3Wdv49UJm0<9tTEH*VQ8;FGwhh+JO&27wM`f0yD-Xdi z2EGR`<=F>2Bf*CVfbe$3$iWXehS*1Gw}Aw0<)RmDhQ2hD(XO9 z%LQidFDC|0nU7>3gh4`|FqaQ+A0tRh_t7O*32v<+zO@?su4Cwt86EzR51)0_|FI94 z(FmWhN672R#4LSM_@x)qckJbF`}Nzm12q>+3_*&30s}fn60sG6po;AU7i<_8Xy4aY zcy$^^!8M2|wQwfz(Zjk!Usj(f5%MP65aJo+8_pm+H?DNN5@HHLoEaRfw&iK~3UnI3 z=tt51EJeAyc*(&FY`eqRcjZSFbgux&-9*U64|;bCX?kL}mW{bH8cj6XG&#gbPBzM~ z+-RD(j;ZeueW^>jlULtfLa%)RRuH@jK?`~^DCPMTYhec1{Nm(4CAHkO6KqMKZ7$C*noaB6Z7o8>Ks@%6W}76ev`5e;7>byTsjtl9h9avEuDU5O)&=QAu1{y3zp_mX1_RvB_@VazO5+l?RPeb9 zM=#PztL1oOWL|MSP?Q$~wQfWqk<#{Fsv(1qt7c@u15Elx@*I@*kwiS_Ob}DceiACE z%^Vl(EaSNB=gwT`aSiYsULaFBQS~SXq|pA3&}UY?Tt1W0+1aSu@Qn#o9Jy_^i@n8` zw|T-=3BBF$L0`lpI%Sc7jDw={2Bl*!m1dba z5bG`TvE#03C=~atqTmc1+i>o=mV!}Vhx=8%+L+K!CUXNJ8hBoQ7rmip_p7YezFl= zVVzoq>w^A8oNWE6{n)!irg|)~ky;5m9CGrLz< zbc=!ODc9L?X1;GX(0&pIdL2x;IUNZ6SRI+?$xA~~*P`cf3tYJ)AUBG=YYQgFgD!IFUEmlk_qFyJ>!J%Q#~2?B-GZZ& zBJmAj=n@vU9BofD6O~P~^u>SL7ZR;TXvpg3+4JSSeF@^0+-uVe-{1@m@i@9QT&w{{ zcMK8mg%3U*KZ8qDEvQmr5(^RZBmj9+E#+ zY1p$To|37d_%QxAB4{|Ac9GCGtIw)_I{svU+;F8|m@?@yE>HIaxhMv_$3KYr*n#U) zLdoblGfh$F(A4(rsvJ;1BQ4*x?knd9kvncT!o@a%Ug*Et7qh(?<=?4vp0 zo$~ds-xc~c%w`V%0G&9f5-|ulr46Axm?qGa>a9)Kb(b3OqfqWAc&9fE>KD1U?3c;S zmJ~|nK+Epol$XO{`0KxFw|{i&*F)80M>PSYj?XCf%a^GM?o?kHOEZz8Nj_!gWiQ0J zpTBgwqK`&UdGAaFpz}`}wuzLzV818;o8x?FEq79_$pB=NRO!Rbse%hPfw31J*8BAK zLc{C#1YpMNUyXg)K>A2Yt4|e2HT^4J{?K8qo)D=iJ%1wHx(?;}zkwe08mY3B;|3^S z!^OjU`W7D@*Gs*V6<#R|08}}Od-$yv*VU4wb1xLE(jK2ixt~aBouT4Bzq{oCUpdvI z>#xV78#qJChu)(K43y-M<`i!K_xXYa-`O>(O(x?qvA}*H2QVCN=8H#hY zv+-`7wm@T;zX?S$t~4p)fN;c?%6NO7W!mlObXmUpuJ7$-JKdUR?%d=1PQHJyS<@a< z9#O9;L=3S!c}9^@)Zkho+^m}cNT(}?M)9>->pyz!ol^l^EfBdD3HJ*^v0Vd(69KOk zL6Y5<;jFY8BPoB~;oG5~ij2_|reBk!OcY$b8fkrQNTzqBSKgu*fGPCVClu2N@ND6% z1*P$4o&{*&R!rv9}cQffJPRHL73vW>tY?7I?_5sf6mMgQUI@gpe|05wW4mP`C~@HE$SEi zlJBma2|;OvbOPTG2Ipo)|7c`b3hjo<5-8+7C?1y{gm?XYB*1c)Q86o*CPqnU!c8h4 z{-nF}n9>dJk)@9ib-a7bd{EgKbPxW%6#aNg1$a0d1o^otdNe`L#l*ELxC z-hTwW^&|GV!}A)Po+AahbYB8ez)~BsfN)uf^9e7?86Wno5qyB3gHRAo*!~FYbnj^W zJuWe_;Rffxd5XToX)l_dM`-Y^5)a6tH1URdJDRRJxS}evYCxQ9H$C2#*e39=20KJu zxUxI&UX}wYAO{yJM7H_6fER{WT=bY=$GkOXxemZ@ib=nZ{=j5AvD)u$N!ViWR(2FP zzOw~=rIi!O9$%siYh!u{zIGI^x4^JN3qyqFkm8NIPiz=^zp`ga!z>QvkPjd*(DAUQ zNJ7go7Sf{M(>xChdqO7y0$tO!{Pr=-FpwPJ8P z?o5F#k=a)mEGW-et6Bi?guZM#L4o)JLS`&~~W$6ix z@c}ckp+j3r@N0VWLm=3}=Y9f~ZY)C0`s{lI0O`dNE=kA8EdiSy&Quz5xRN-_(6|%A zsgxMy@@Fy8SBL69i;wUIuQ&9%Q{N?fI>PIMSkZN-uKY`J0=hSQ1HTs@Spq%BA$eBL z)kc_7o#0?r+vgx*i_jLXgb24O$~D%iAc+?q>84KtUoc_bI$&v3r(Pfb*sH z$q{#sa`d5{^olY;L44oHCNg-3VAd>3>+g_dqClyA2_lXFNdpxF;q}7yf|l>F2a7Vh7HL=|V{0`oFM5WQpBf55V%l;SIfmMQb$ z(huR=hf%}c#ElV^V%y# zZ;s@FW+K?{!{bemZ~yJ?I^23XXM({;)wHSoUU?S0?(wn9aJ6}fhOT#>G3-k2rC{`FD{oT%oD<&u$wHOgOk$_;^apV1GE(-q%a<;# zsj7#r;yfpp(ZS*~TuFBeDEWP?HkHxbF{s6H@GM}FFla^vF&^;yV>tKaPigaWl@QfY zF^lz6rsckat$P1PKG{BNBO1E5JO0a4_lr%QR!NIv2a$xpPASd$f>Lukj}494-8sp~ zoRku4Fk{b;KYE*rVfC)bF2G^l{9U)^p3Z0OaKCHs6%GIJ$!6OSFw)(ee)??2CQ+K& z_WFGJdr77og(0^ji%YTXYsM~H=p&}wIknNs)_W&`lV>W;b^KT-?r>s8>$QqY`qiS- zrIW}*GQH@`GIPAqE+5J0ef6V#dA4C1Z88U;AmA#v5*Fu6DWl@xyf>6Wl6C*0ww#J# z3q47+g;@mr7QopI7;>VOVZbh!ZJKP$(?NHm<>lmUabon_4%a+Kw`y&bMrv6gO|9B&&RY@ZK;J)yTh(CIW z7oSemnF80o+24%6c8X;?bF!{E`kY$Gi7Z!=Vp~d*Ax}OAq&S|I(}d5e-}D_IbQ=aEp2Ff?_OlZc6|)Z+gUH@HsrKk+J46^b<)}(=xMmHt~LaI zeiid-<*Xd5dG-oY%DEZq+L*)j6m4E9*YLbjSLl$Fbaq z4}kOIE);z^Cl+e!$>o{oSns#1m3sDJ58Ldf>F8z6eznE~yf6JjH6^i=O;#;+0|{4E zOT{xFW=}6BbA3c?`iz6a%^M{{S6aq`JW(#g zk{Z@)ea1^8ZSSDN%;9rO!p4wu0bP6YnL!VrN%W?!Z<)POmnYSd^B7oEaD=Nh>Mi%p z_!dI>?7NPr5aIdiDzV_#%9@#TNL{V*QYPTT!`AAl(fz%+tLJ6erFh4^taH)9;V!Q3 zqCXauefiJH&H13CmGqZ+wwetx$>&3^_tzrJUvMZmqvGg{91LsHw_0YqlR4K4)30Md z_t?LZqbfx%8>Vv?>MiGbd!OHlx#xTU?U&;A3KcGJ*($4=DIKmUZ#ixLgG}>tKO>t^ z1WbF+J@*!`eN7)^Q@YA^t(*Lb)ehh1&gK-Y&Nn&)-R`#SgAX%lhc0&Mi_`Vs*p- z*-NN z?KjGMZqv^dWjiTDwdU*$WQ~`~*N4Pnww>yVt;X)dYWe2wSAz=_9)y@l%5gSs z#|1m~f|;khfa~Fv7*=r0%jqaU&y$YNLUsPdNy}f$=&JCtCr#N0a}fOH<507e*kk)c ztF9QlY3~NOBc`T(+unKUoYm-l3Km~YWwe4(?xg#m*6ccDK&WIzTU_pulIA+xCk6FD zYvctj2w#)C%Wm6FlExF2;mxxI>d$V+)`iSOZn|&p_uqrr;2yN6_ks+7qbIdN>d-p3 z=gPI#wRtMcUc@ME8Ivvddwv5-&J^Vdx7&b8McEwMTC2a0F371H(oQo=V&^a3mjQUa&e?Tu?pn{ES{Q>1EQ7- z4C9Ewf4H+SDU<|sq7@&%qM$aVam!T7RTP8`BvFgc%x%IHnKGdopJNrx^DmmtIG*~> z5QBZ}(+pF5f*95RMks;_gM&`%k}gvkp#sM{M(30(fQ_*LfRWC2R)KdFER%is5*{Qyi=#Ni=4?c*yhAF z4#ey_RSq!#k}350*u~!sbz8!g6t^UVnHGLjXSrHKR+M|X<&1h_76xEKNe|%-@8DtC zzu}N(8v*&F?*W(<$`pBeLh0Y{x5m=<@405-YlKi|A)NU+rRZ3pAG5;DP%@%QGtSI# z7V@YO0uJVQnnAyRxHLQ(0Vr~)|H5g%szlCb0e>E_B}KJnuEj%}^Kr@1E=9e5q)#DF z1%c$CCi%qV*tjA;pjNhU@CitJScE(Sr9jaMa(h&DzEvsCCO=v!vPuEh32l3*<&4h* z(2x7=1hZUhT7lRzcq_kW*6RU|#Q?=RLSq9uvKFm*7?-(u&$pG&b(q#2 z!0tMP^E9Ztf*m{5?T+&_uzw475lglw;m(*7P_mn@9wTH=4nN{l3q3th#|}R|0&^qS z2}w8n-FM55M7E=M3*Cua(_e9`*$Hpg+p{~#j(L9Lnib%-%iM`zwj-St9lPhP?I*X# z^g`Vo7HLmGJHloUUOmX>fL1;1<^b0Xh_!OS^$pA2@%+GH+f#e7`@jSA;@^^efCGlM zO+*>HC#3(xY5cP`zBI-)$u`b5LDpc?kkg>kz}L`AS2iU(r^6<}rp6|6N{Ehgc!9GG zUEiNt`PI^wf?)v6I`X>|_Opit@BaUT+l&c84_?55fC!+0K!9-mZ+sYFZ18iBLQ9Q=%+#KB`uTbqlgrKw!lK3?HZm&7e_qIET{lA>%N!C0Yw~YO<%Or4 zqDW(2TTCnF$zD?VO_sL&;OI5AYDAaI6#BLaf6ov7 z9VYjSR#+gpQ!%v3W*W}x%BLHRq^DFBV8C)5PJby~83b^lMA3%?awW1mJ`$e57AA1~7Sthkky-w2i zyZZq3xujij{6c(!CAfHFaKI(5USN+HaUvBB#N}ooRJ}FC9aM3ZPplqSOPH5gE<+p& z&SIHXVggJ(7{wXJGYQ!a!AEi(L=r^65dpIZA<#7woYW3o_Ja-G!DA1eMX(QrdS)7+ge2 zg%JQVhjM?^0uBBK4iv>O=+CCj67%g`VGN~NmsYaopbgFv3WfJh~9F0Z7m+(hWk(y*Zxa2pv)!HySM`@am4$x%QM;0(A3!GLFe$8OpBoX z9Y%#e@!5%6eRutBupD6oRaCKSXIcMvnc#%7 zeZ{_!=DYilet)c~=B>!oXk~vmDr|ppkqZbc`Pk7x?DndI&GL5nUcqL$4T&y^u@%ep zaVXduPLT`s#qzv;N-ZL*PR+si`1-hu@1No#4qlU~uKx@qwws+hPc137{nTw9UVptG zFVn&f+2*KUQg43WPG_P^X4Y%>eOTD+?_1{W#KLUVtf}qakmgfW^;{tdjS65hfemveTo{LpqpOgO57QBpyU@q96$e{3> zqzm5Ct*ukJ9_E+*9sB1fD!z_Is09$#D+Q)ou&v76fZ#mTtmU3Kc;gvHddtO;a-q;+ zL_t$_mO`l^VU0d-qJ=GA6lHBH<8)4BLh@dy`)|fbF<(!Lg2Amse_ME}khS;^bGC2+ zDtKO7SDyG&PLw4D!Aqz0Sw;+cw)LTERC3eOn_pv`g@!33K3Q9w12a$hnHpfhyAl@$ zgNh4v0_dsF<_Z+t%5smTNmz7UQ}gon&yC&{TYAc;W0^K#&3KGoa0yx2lm7%ru8Z}T znIha5?dg!xN?fh=U4Z$#^9L@FY@pY&;xmshcpE+XZoW3!Gf+#ESDe<=P-|$LW_66# z@Duk5c3MJYlgvkO6fKV`-K zzR5<0$IBEWKLMDSmYtS)f5H;n*hUl-dun}4I7`8G>#DSJ4Q8Vr zK*wFyWni4Z;GN>AIaFgvqs{&s$R~psqu7Zu>~ZjXZ|0q z&M7z(U|XZHZCexDwr$(C|Jb%|I}_VZCbpeS?Bve5FQ@LU>X&}%r>?HOdw*+%{V~SL zyKPmqQ(@8h%(BT(@3-x!!YQk}i@SbPlB=(BTSBz^<2Uq(g07-b+o|%ckV4maxnW;p z-DOi{U=LLrrpF#zx`MA)Rpt%UUN!2xy*$+1@W>epB^uG&U6RvS)ZlgVy{}yyj!r|#+iu=V>6O4w&^adJ6FmdIez0^ zir@iS(jOIMDzmszt+2tpVvdcvz-=3u^Z#pFSz48qH~V3)7Y~P643dLS>Q!tfA@1bfxDdIardi6w(9gtUe=q z@v9wg=>D2x$}cJO0K#Q6a)x4EeTq;cKFX(rt50Zf%+fq#;Dl&k<|XFS2B=J)lU5CL zeHG3`>1nXl0h-izQ;b!1o>li0TRA;i{2oo^d-9M6auP&?VM7lU=<7*Zp$QWEh>s}e z#l#NyBr#d{XdG0I;OxYb5~Q2SKWe^@)av(G6JD~5LmFm`fKpS7CFD#DXaxIQ^*R?F zQR3zdD>OW)kjgqpVG!98=yrUOkY!2fL2c$L+xFJ2;l%-QCwqt>xC)`rE;q8g{w2=b z?5N~NB_i^C@lf9^TDUPOAsmv~gPQIDt+Pc%^B{$Mom6C+N+EGn!11x+aCb_)j66Ws zYSY5fO$|HPGcc79O|V4Qh$RPlH9e4m3-D10-o$cVfJ|tu!erD=0$C+pD|>;n@I{c^ z;g%wy>>0sgXujzW)ovXgoZF?8ZV0~uA;RI023M?aGb;m42g~q4!833Hy_|V?nXK&C zm$#RXyIy(fZOq%m9m3n=5CU&tN)BSTo)$^m`b`MvklqRs*V}G?x&$BjGaJp+Xzc~W zkZ;6s0G9q1_%2-|=G##gsKO0a1D~L6B;-MWc7S#u2{A*cFRo$@G^)da6KWqv$~p(> zLWx3{FOQ-`#Uv%_vu^@;g@bu#LDx`79vzL)qkukNe+XJch9tSH<< zT;J#UJn@y%pz}3u?Z@%OMkHL>@<*DMB zzY~4W>rT}BpL+kTZU6hmm*?&#ubVdsz-lkE{r8dMhr_qO$w4uP{mGsN5!+tDIn?oop8-tdp204en_*-;EbNPYeO0re$rgom#g!V-O2u zSBskwhMvC{D)+dnN6!`pZx*L8pb;|Oa(WzBotptxl56-%>gtO7C2HUz={V1x0Eqa( zD`3o$F|=CQ1?yG63_kS*VPRt$F90&=s`O{ z4~D}@Yp;>!T3N43`wVT096`g|MFg_+g><-RuR~UNWcO;HIPJj3!GF97K6vuE>N+#c zDShm+xKY*vw)s(N>fM*qJ>s^QL2Ow>-4FrQ1GROB11(RQ z3HJ`i%A@uritqx5ntp60zIA<;T}uGuw#tG=qEEU@?%Qsn58UW3I&06-+trXG%!!0& zci8s_E=-?`uCi?8^?^SV9YVxQ6y$L5K>;TjLbO*SQ69?aaQH})r#desv%e-Dvcw1z z6RG)#)1Cia1LxfjC)zv5|9!cWAY(k;QGtN){<&Gm{#)v$$EH9b{<9SOxT2|L)n8PV z+}bHC=2}BJaJwQILs>1tyLw65fpJVE6O93Ir(lAd_H~qG)edu3b z&eTI!vOp8_;JiF@+IAA#zN;Xe9G{-$oTcWsa5Xgtw0EN5nusfoIZ51YiV+zOIbjP<>F0^&uwknDMphTYp}qB%2+A` zHC3n1MiOH%X01)`AH6Xgr8sfmW0BUBzuGLNBSx9yWP(Cm%|nVgQZH61&77r17s|z& z3LTkoV9J-?@GGw57kI6Bmq`sL(sC3@@MM^!vt-0uZ#0#o0Wf^pZKkU7+_lM$yaZ9! zRy~?i!$T7UI%=t<9OKs{9;3!*2=#r((hFzuS z;(A2KWl`7L@Qn|c_-xjp4F)Q0;Ha>f(iReLG<8h^*3zTMql>gP>c(ar?=;gzWG*_U zk9p4>+uAjw0U;z4z-1&cpPUlU#uJiTu8k2^E78v0)XA-C8kl1lbb2G(m9iu`tsY}T z>osY39D`*qgTtnCXFg=9l9m%!ma?s)^k}n>XU~oli@3P+<5Yu1EjlPy7!vChWa^NO zs?2}z!z31pY#k`rEM?A(-8HmPT_)BP7Yu37tI;!u01+g@Q$#FLu4pKo%9%`w`c(76 zk*caR6CcRTsEW)Pk!EZ%z}xsTrwb-Yl?&Qf(J+idC>M)^(7Be94AGT*Tcz2F7Enwe z6Yips*OC|#d4(b1T&zh7ZKd#LEc=U7gZ4#Hoho;hTgVDpac8EC81dqRnN;|0vj}gp z)u!*504egss2YBVHKYJp*(I@l@5H>gu_iIN9EUkeP)nNFqxV)l+H&&g2vh1x^2K$% zl+;qK`B^2ZlneHJlMGZPy6Ch1SXNQ->5#J;ttIo+3Gr^?w)s#>T?y}S+Q)rKdaxq zS9A3gnX1%N%BnF=3;4JwNtL!r9-MVH#_Y*Uqi&~3$jt{NcaHL_lk}0*m2^lCZoc|o zM;C+R`sQyX7eQ!xZ7hxN%7Y9pWt?T%WyYojdMOtRiv#p<;NYtfRfoTwvKbA`=zr!6 z0nHdT6b!gcwXS8;T{5Ox=%Pb(&NIwPM;PrWHSjPqQF4|D&LIA#&xhs$`p?Bp`Rqbg z2=3HD`>j(s)KpbecnMr0tzBm8Hj`KgFjXWe&M>!Z8@8pbc=c5SEd_t=#LH_R8>T(t z?1B#{NbS_bc&hDD@L+tn?9!J4a}*h<2mrHN{G^@vTJDJX>cQb)y!9I3m?HVjQ$S*{ zvZwftQJzkO#-8bhx(!ofs!G83LEC;sH}Xbzxj|h*dnph?&#K#%aMc7ORxqT_0R0K# zH>A}AjG#CxALlsVeY2!# zgN6o|#KR}jyuZMAVR((cQm-Q6)R{j$|IqnJq*d9K#-TGS zOkR{!4k`;}DVBAXM(SIkC{XA#y9FI&P;~V`aZF)w=S=HFlRcO&Ldga1J$ng3{tyo~ zDra43lFRK+{EHA~1N^8^;`=qnf?Fx(xR391q1WzCJj#R%_cUv>CMN^(^T!leB>3Pqn*U@h(ABj|Oh%CPwzi5vKb3VZ$v6WXyA&3{UQ6;O`Lj- z%(>VF9r?mA07p-bRcAuhaEpT7VBtiWCJEw7G6E$SP85)SrvI?gaG7)}G7?>f4+K zeltOc6p&1LUdkq&9Ux4Cw(14spS14iZ;k2$Co9qz05skP4g>jYiyF(krIP}NCz2Yd zPwKNBnDCQy$A}s0@oY897vDZ11Jq;8UbsoAcxZ%jFfZ zv{k@)fIq3fH#PABg;O~O8>=$`SE9(G3jW$G6aU0PeJzrV)jnU^nbRi|D8VfvshBIY zY_;d(@m6APK^4KjC-AUZripL`m%*#5qs)HIBp*X`Kx9CfR+0a9Z2+?mNss)59;9b9 zMXjm?)_)Na?h#@S=7&kg0Z}d{YVAl=;0&9!1t_BnP|v&4NS0|zTwu7Dyk}lRtXsQV zqYCe;V!cyTtF#aNn-!Z?%-*ILoU*p#fxBS6rHJD4@+e5YKfM~q?hMYgXqvRQn;|ie zmocP}HETy+ib(LPqnU+iCgq+%T^$-OwBVJ4?6!y1n$LrWf^JfCXr+`7tF57693Fxa z1jrss$v}(a*G#7O&Y2|8KPn4q)2u{Cm1}EHm7Q!br_Lq?{UNPAl0wSP^NvS69ndDs zMNd#?UEyex_`4!M^|iPmDX49yzg$(a46|uqr&P~gsiE_yTBueWtfT}!Qx|x2G~kal zQ(IO{ErtmVR=QNRXA_DvuMjgGQEemCDuC)wFh{gwY<${-DSFfbO4r6eQnO>VP|;P# zC=rfN9h>9}bt2^@++wicV_*w>YfCJp25t#vhQHxTF$AXMb%dKO0NKrD>q+vNJ(Xp% zCz$d&x&$7CnHB$`3^DLj3UbGMua+>grYflpIc!FK3kVu&i*3ztk^={il}s@r8=$&H z!-@8zn`b*~Qs@C&P2e&lSLM~TOyqP`($Gvtbj^sLPh+QXLqAZuL7K5lAmLK#HJ^e32< zlTr*HG-))M3PGS1f^b2v{el@|i`u!G+laX0Q8w z$r#Zu_wciskDwEL*3b?qIt610siAOUumT36C)n4I2ymdaPr9`$QjBRiD1f;^VUm9z znu$_`NsZtjy`&^q$q_j;uAGYmct&%%qTnLKNM=Bakh^fdJ(MJ5NlfM>w^ex)*3@>v zURLRNtV?Nbtk8kE3);FJ8dGdPM50y43@^U!Zw~5&tFYnRH(nDc^H1fd^LhBBz&O77 zM0m*#WKyNfFdcEWz(`XB`Hi-ZX3-1L0_Y-AQcpCc$cY*OC85kC5lT<=jLJfAHUn-IH;T>- z{Sm3Ed1rPYJ}umleV;2`vvvH%Z~1YXhlit$sm0pUr5?<5Ago?QHGr>PZVTq2cYQ!# z84qMoVeJQZ7bi^xB)YXgxe$Ab42a^#`9T_8DEyirD zNvlCKz(cbkgl*-(2vE(_2o^o61{BY*muom+rin`TmfS$0^ZH9ug^srjMZ4QGi-j%z11ub+!bv{+?8eU`%PHe-q9$^2d8AQAy&xl-7b_?3wOy8aW4uDQS&-Nh8$BRGs90y_} zH>=6`L3YD)yC$Q>TX#`FymR`!ZL^_{4E@BBZ0pX8md~md^Y4EnV?DKvwAEhYsFa9) zJPW<%xz+mec$Hl5AGqE$-Wpf@-hbQUB(zhU(9zp{~E0K*>7w>$ZD z1X~YNn?Ef+0Ko6hA=FV!5yWr%q0tM;&yL8x*GQ-3_Yc5Bu!e(m&tb*wLiFyhN*4l8 z?w1e~or0TFGYMM(uk)>i;a7&sof-kaXDQF=7RMGo;JCCb`LL`t9Ie%S%5E3XOY5h~ z_jvZT{vPhX;is{%t6wnYz~lTJm8{cdOGP^Mk$>C!0Qlpw#ItkZ(|ru}a{dVDy}6px z_qqEs+2`du`F%*EU+du3{c!(}{`$E1gV)`0KXhuaiWqKy7MG9ru|2vWHACk|c>Q)C zfBPl=W`9_GdE-6xvQ9~9&~u)~0J!T~J9qvd@atWwao-EbU= ze?i>k2YkdXIqdv>9kI9}0-WhQ_Mggx|JHbudy)5CY@?*etLJ}J9Vvn3*g5HD(Cq#U zADcsz-}V@*9!zhZwc~R;oc-bBxx0BAtsUcN;pcoXzTLy_eE(ZHJLD36dP_=}Z!mmn z-}rMHee_&u!u%rZbD2uHqyN5k_tA^`u!Zwl0r>R6H7H={el{5L*?j`E?F|&_{M4TP z(z%tQ?{;}#$c#Oh8my;AoXN{|c^~8NZe{kg-s|;?9?SQ82i?a0`HaTg;b%6RoX8H( z+xi@b)*xy2_<1q-Ea*HeROnl7dz^@kmosiyO)!AteQiH+&HhS}WaP9;n$3ad^(SY}| z!^)s?z^0Y}cX-2Ond&le8zX0Q!)&1D1`tmB8_}kG1h?_bv$|ddqZ__@H)vIdm-Gw! z@ctotrl^9vd?3lJ`Mqwc$b!Yrl)uRfv*`>}bCd2O`F$JIef}YcT_%H+9Cgu38l4M_w8EXuZvLrzt9Pp)DC7P)G5PpbOEW z$eqI^CBZ){_AcV*O|6A`F*$Ou0LZFX!Ji#z-n*Vmezjg}$1IDD7w5|K!(3R}kHCO$ zWDxaEp}~i^lcDb^1{9gHoM&|5`?s~i>uEDFmQRa@PFJfznqc5DQl)khAwJVWp39T!zIn&+{ z=a`psW!V;PU&3b<<*~|eUn1C$F<}+*ScIEd#KSM~Ics%g*p>)CpLx`I#PCko5&Fp^ zD3hoVieCT}y(|(g0t$bm0k`F2=g{v+Urc@}{Nf6WlxM%*$@t{*%jV`!&tMxJ!pk}2qsTk-SIl?dccQ=ikL-`~gxUsmsI-rnlbKSf z=6OX5^_Y5Gb&eue*mtCUiNPZ5xRoCuX@_ru(ml_sO1q#|Mp@u7d;zlRj4t1rNw>*^Q~3H?K)K@Xn6et zhk&@nsmP!J0a7>6lLG`r^3{n%wut&Q>S`$%Q$!7PPvekSW6U){f@qUl^f<*wvlm#*sBE-cCA$2oCe=8X==r* zxTRcmMPETs6_Zl7G_ZXvER{W;WW};ZP@{ocM{y;uW4+&{xhg}wCs?X4A=9MjMXBQB4i9+$|Ar`y>L#VQX z76)jQsKIqU&VCDwpy;mr1K%AurBUUC-z~SBYU9^1>67Dn8=;Q3)+afv++NDre(=Od zqmyhU={x|g6ZK`~j+^kJ8u*ApZI3$OO*!+~au1?8WV>9SEzo;ciOQVHRm2FOm$%tq zC7D)|0W|bh7xS6XCN|`~LT3?AL8P;hgqxYvfnuvC_r`;yFcT9o4uSe*j)D)P#(M3F zk8-0t+hKv`{DvrMb`Q)bgdngmA&}J#8__GUGduvb%K&`Rmx#$RGx{-t7E4gqma$nJ zYm4NS7b=Ss?Fy_=0cit`fY%scn_+fIdy7B+<67`*qM`ZIDGkxv%Y%I z67i-hN|gu1GzQm?_58{g?m-Zhb$K9|+ z^zyNY$9eTK(9Ompsn#D;*s5efGw2;!6xLk@0+o;WR$uBt7y677}oT$&ccQAIO=5`D4w43?7z~kzac4PbJ_9ip!sQoh}~Ei z@yHLb^M7Lv>kR-r3@Zrw;~zb3rN#lgN>J?Ubl_b-F;059MewiPa3Md^{#DO_Rpb0y zIJ-=KYn2$+Qrbmroiyf7JP|J35Bc1zM$sV2Q+G&{AH`O)MgZ1^nEXYJ^sqy>-~tL| zZ)nV=TBy)l>FPfA-I|!9XGdK_9oen=hnJ~((+ugTcd$e!q74Nk6v49k-#5U7-BduR$+z7+uIab19O^dNABuau-f`cZV@vGKCKHCIKJ6B&V+<<|XL z>GU@Q9;OKgwq@iPJ!riCUrp}Su*3b*sr}MuBoN1}vAX^PX|f@Mm&3-lt)zcL;lsjMNIuPyA1F;py$EvTVwY$ZrTBj%-I zgH1krTwsMo<%Gg@autBKG_nEXZHwQAE4SbWcURCL!bdKrX?qc(G~03LlvZ3VEW;DSW(sp6;eG*02e>9{NZ< zd}5W_Hg+s55(+SD^YO}!z6GgjjJT6+_^%{hpd(b`t4&64Q9DaiPk`~_S=;;D31%Qt z1!S8)rflfNS0VMgdrEk%Mnki2td5j<(A1W~yI7F1S6G{sjv{~wi`kv@*+4-)@4ER4V(mzx zCC)hZrWyPbLj_q`#kQAvRc5$T4&9CVx)Jv{Q~i>px^1$?s&s>2?e{VY6Vx+)(pK+) z38~|N++V^^$Mp%$!?tin>X8BN3c8gkebLP zDl47=OUN}u$~QN0f$!{K@qQfEN6#1o3%O9H<$l0}Q$cs`WGi(TF*b%r0q0J_Q8qEa z#fET8*3Z$Uon?fh5WWnp4LW--Yo_R{@-J-AaFBL#LUvJPh#sYg4@-vfP|uEu0EKSD zI=tVfIO)|IsCajH5xe}c+%%4da{oaf9KO^&onWI_QN$hHS>K=jbqtUkMbb5YOt?m2 zPj-N%5m<6q4=_R}(?I>dA5ywk;W@b1A_xnz-P*mb)(H=qJMwNFvx21*Hke)v;)h}r zv@xH@1#{PN5|apH_vEoAJH6^cHEj&{_}GD`^qNDCsUYtMSueQnzN$kyf~f&{p8ZMW z7|2cZwiy#IMSDoI4_%eCqfPk2bXbp4F&w}yagL;v0KKJ9@D^7fBLmqR0#$c$<=?on zK^`((ZZWV%~Ma4ES$5U&R&~Ke;RGSDq)1xP zI)?OV|9~k}j?5DS+%Be~i+3g972rgMGW{FZe2b2<1Z&sMYO2A+Bk5L1|2EMJ|IkM; zZK7?=#HYPzo~q`o(Ql7Aus`SO&_f3lqcsjD%TA1SGjZTIf*3XFrGzK=iqu~ei14OC zX`?RT!u;ZmAf1S@XVP~Dmjoj$dM5eA(*#t=AOr_8FZ9={=G4J_(%>Sren7x+gMOh9 z6=wO8h~pIBy)OKz_0LO36pLu9yRwl7r6;n=Ie&#)$6ytbY_K|f%$e59noxz7;4H`c zt3OSSJ48((m|TC_Xy*9gPMtvXJ^LhIlUbwCr47zoP~xLXTO@ZxA7 zl(|0~uRE;Od*JLW1IX)VNJi^h5y_SZ-u{;Dg5-ThlGjMIUGn=ZT;DN&?TPh;+!gQz zz2QX!xgDzYBrLnE{S7?J-Y9`Qk9dF@K>CV8cWsAbKp_1WGR6_;8s6MTlC>Px{4kt2 zuKPaXAMT(Hr-5%{jF7`poeMF0jDXxQ9(XNM-Hp2EZS`kGj3~%fO;Cp7NEH zrGNmrKpskQV+7NkTi6rC8G2uV?->he#pr`F=@ZQsV7>CpE?`#M{#tpnv_bt%Hu* z`NL_Y1}}qmC?H(_u4a%InPZ+f5oU7Y3%cL8O)9osIp3v>3M&tiNBPo%fCsqsd4CGl zpIedO^ABN1RvAz1Era(J^acz~-pwJy-1~TbEblYfHVvL#pHMwT*9FWsN?6}7EpmNp zw-GBwFRlRtR?q&xOXZqP!DbyvjoxzMcP#ZIF7_g5IEF?bqfaLBL(^qXB?sqeoC*yY`@L_aw%ifWHw+6fC4c2@6WX$WXt#5hYsy9EXC>$^SE>lq7@&;M*3aQ9D0{}k;)HWEr&Fq<_ zbT#9?{(~&rD55>%!mx77J%4f?K;)jF*XGt10ivQA#*F@GkS!rbo`(mWe;B^&g!Uj} zWK8=*p7q(qNfH8qVPA^m6rW1WhfSUecwMPgya7Fb$Nh%VZr%1CKSjCjLQ00$5JIV?j!d3iw>P{q@J{o`XT1t$Ku2o;b-zI#d8V z1PBD(<)b}IRAp@_0NQoZJS@?Z2Krkbr zE@5V5^d_L9Qj{_bmppPw&z-`2@LrWvGU+HW*%$Qou_bR>UKlg_;|5=9obD>}2S+ft zvhd-x(^`xt9Q-8h0oX;aeO+j*%LjWO0c#9_;nJ5HexJL(yaor0Po=+IWA_$Ap>Jdc zpGy0mH1@d58~VZ|Xc7%Y3kK1`t*Ckzl$@eHCE%Q?s5gm@^=Jvh7T>a8kXwc*eK*#`iPwO!-S%M(Q-rNpfhvQM5*jbfOOF06<)u7TJk0K#b0 z3lVvsP0ILL1#y%17RU}NhpRv=O0$(K{gvvl8oIV%?$5up(a+C_x{s#nGKRnq_Wo6| z1O!C0FB_+*EwXtCFqnaaS4o?}^8z{!7Q_wsj6HLJI=(r8Yh4lBCIc zp&vzJXy39hE*5wR&ItPnNxgI#*6qUIy0ET!+ygT%9f}fd>&~!He(JR9Q8q~2=4dDu zVnKn9dfnZ-P+QfJau`Vc503ez8ofP>tf69Lm1k)4Pf`trPH#`cxh)y!UlUL0v`xMu68UtGaw!%0bc13e6QTlB$F5o7 zK$pmN4^cdz0TxtN zg6xB?yAMT3f_p5CT<@#uqRBq;ln}dc^s9>Odrgd7gToUJR8Qfv6#%dN^^qE4n|Hhx zV2iMp>{Liv5H$s`c9`h`W5>eWz|g(}?NCw?WxR3CBv+7H!+m7%^rR$M|P z!(L|~=M-?psbiqB3X+N#wqTBt|i1?|OL`k91TS*hY%oil*)EhIXGC!4CjTlPA2nkHyA}hX=+`mrDPp zX+lr(P`sZk;o~Ipx|O~_l*to08XDjs@iMoh{#!-PAa+FB&qM9yl;k0M4@Y7Ev!jrN zNpvqVP@Tvtkoa%wG@%mJ4cm=6tm1@S6+%|AYE+d$%Mq(n81s(Lazx9 zmbEnQi^M37bMvJSQS2nu@GT>R;_ZRoksAr7b80x-~e&nzT|lOv>HyN8Hpsy z%{m;d0JD!Kq(5)o%;sp88%XT$nBCz+F*x4oLorc7@uH3dNvi1#3_&~&9*Z^H^}CtT z3tV=mH(2_x7h+aAIp0me{)l85%!V`n`5N#WxF+dIZQvDw{st4P9cL8U6fehw?awRh zo9JY(VZY-Mj2f7ms}rbUe>zZ4v52ZI+*-3dqEh7>W2*kG`sP?gDE2rlKYbkooHl6l z>!b#qA~IOf=l-(x_^AXxt>jSCqXB<)oW#Nh#5+XAzW7qhMzP2n zf>{13*`U;vQ_EZF$BM6TA)R)tkO-(f#nO^jZ)>ZewV+YBk1782%=8ahqN4CF8y^i@ zY+N_wLcx?v?c8vfgblexQMjCy<)sH3~Nx=tn(5%}Z4#k_kY8u@CN% zcS-OTrc#)_iAMXFTv3oRfqs^BJW1~8H80WEmN~sQIm=H!MmjHLTf_=wz%MWOOlRH6 zKCz88kUIqL6tBIb`L(+eonj#L*7jZI3x2%0#OCopT7xh@EllWDm(^+OFMUAMT4WIa z0M36d;GHRUeN_<|`+-QHSq$*n2DC88{@QJ%>tL$in=&Cq(>fv4_x&sN`p!x`>FTVd zc1Q4Wd_gtUy`A|Wyf}?`>j5yF-d0|+QO#f*_gLE7d-K|)S5?^hCL=X8Z6LSa+&A0Z zvdnO)jMJK&u2AMDRAcM5H&Jb#>kWa>D9*PTUXQv@q*<~<<=ydNz6FS%D@#P9e$eXt zNS&VRODG5BJ{M1{Z}z?N(zY!+`kqV&Qk@E3`gwazujNML#z zA-Yx=DB-;?ukE5zllmY6cnaw4C))J@k56B(&9e%qqutHM19|A>#s)K5t)Dw8V@c54 z>IZo=m}J{3rFOj--hj39&LqO6mQt&=)X*h=o=k3Y3;E?vI^4t9AI?;5-}MYlx^ z3~_`!z8il4kN!Q$JwxR-7anv1Oy9m*8#6n8lW*VvxWlCKb4QJ@*^T8pO!eF4>s-fC zpPwVY@N%o1m(=!7@ju;j+Z;7N!tH?L^Mi4rxAXNK{h!~z4*{FsCUkuE;JQj?W%e_* z(0E#jn<*R{ytH?P@pB%Bqp{RDhaDD2`~51t4|dgMAM)32_d)H{_pu`!s1S71yqrDc zMT7q`^6T9$nr=oT)IY@wW9?-%D`au?@a=iuZ|-hwm3Qy6xN-GW3T1SCS3j0h9%c^) z4P^)hY?N=`4*-Hj$eIfip{Zy5Z`V;E9R-Uf8m1XG|G~B{mp&~Ghc(OTzj4{ghgZH{ zq6a*DQxpbsjB0U`zjRbSmCt^wc8PmIYG}ygmEg5gn|iKhBQtaps(TxLjmSZsa`k#e zHtK1ga^|_6&FQH4VKQiq+4bzHs5g2hJ*kgjDj!nklL6MeVVt0sLND{;>T~%uS}}Y? z>yJt{bJcZ?gzpi`%(5vqx@I_T@;6N$+(r!Oy0Y=u4)Zp5fARN!2l(7?Xv;azZSFKz z>AQGey^YA~9sm{Ee zyn03YfCAhIVF-1xdm?w&4(-jSs`Fs&qFIqY1iFTIcN7n_T0OtU*!uMK`AzH(4^vu1 zCM#qLT@>_u{Zm{fz6J7k9(r9)7lM$%wT^V8y{m2kPo3R;$9#0RCSDAaADTN|Q|Dif zn6}U(bdU06uT58VpXj#yJ%m*QCrY|vOdSf;1Av|KyWQZKB2UaU9yA9KpX^ZwAfISs z<=t#F)awz}ADAeeTNTKW=>99#u(Kv5Ufi01SvFAG_|asCnA9DUqfM5~(d3t8OE|B5 zu`%hNqvW`gdz}QmGL}O+R-nDAhJYNfgLMD1O4sGCpWRw&E=#0!OV*{r)!`mpFdEVCwwx|h+6@8L{4AcJCfGcY+Bvx6* z=gP$(?+1K1)ichOW5N?h+6jtzRCuOQ^wrz2(ouDWoCCt=1iF&$nti^<+piz|nRPNC zGwrgBs2XtjY@X?9$I!MQlInHisabR5aKQ0Uo+qu#sY;S#eUNZ?E77hzl!CA)1}DCG zHC_0`d~BnRt$S`UkwUtfVcS_#nI^@#bFJ1ta0dBy9=KDdZ}O0~sT2e2`c@&kOxZ+Q zo=!q)a-JQ-_-d&IcWsAx?mF|t(X?Ctn(Qw!U5km9ljL&@$R+F2MGk zc;Se>xo@;wo3G8csZZxbo_*swjIFyz3tPC<50BZpomTCG=~wQ9=0me{uDQ&mZYAJQ z_eNx24a~$a+a<$2vG9G~aqt)Z3hxw}!kI*UG(~A;@Hv-?hDyc<)Y|@|sg^U=$8Pru zYv;UrioMf`4t^nqj{WnVEKf&t1^{`*7dA(2vHDR#=>0Dyh_4a{T0m#9;2&7 zWGa*=v4si&oB#+CWO$)FDqwgK(gn*$YH9IbmT)-Hqs7ovu*U^b<56WqEKQ`4&PB$L z5Zy&p!Qc+?znqyD81+U?+zy$Z%tP_B~0w z(2v7FPb7jElYheG15sWSO28r0D;qC1=D}(sD5eSJH>E$W!Wj8)w7KEtJ3L-YKmg_* z;@v-H1t4VVj?$Cs8&6}e)e~Poo@3A9&b=G-KSDb5Zg7nQ(BCkG!#;N}uT=bDfI+rb zvbvG-zgE5wtNY%*1RQ%ZugtwcxOZw>A@%#_TS4`QxUUqwvEfC zZ7|ZSQVNO5QaZNt=*5|<8(sUGxmkDf+YRa!YtjwgiV~_iv<>B2l2Fa@=)yEjG~zwN z3z75UAcs;~}gg6`P6?$R1yzT6%Uq*1M4>*eQYh@V0J&g6;+vWw%@}t(tTso*ye7KEPnMbCi zDF!+xzlhS6L8O^i!Bqo$k7ySO5?=BwJKMPZAL#`$O?wy`kI&EtmGHmeeS-=EK!8UT8GxO+mJbPQ$_flv0IwU6kRUdM}h=iAHO z+&DZm9pXQ-$B|T>{>b}!8`Vm>VRs)7gI%y zxY@R^(h^>|p@{ha8R7I0`RqgmP55bT7G1Pn@{QqpQ9W&a@bp^lJIDUUA-=+95VS-L zcj4iUMR}J$l^QNpIS^@w>{8q9zPjQw-ek|6_!9`QU1SLhXuFV%g7DKKM@GAmaiJL> z{k%b%fh2bDW!5B31 zL||}H_+v9z7_tLILn)$rNiXam;Rq_j2tlx*q9PCX@`i8VVX4_Im%fK>msvg+=Udr4 zCKogy)79asy_SMHGNAr201yz&N2PIyMn}oUBwOTNiChwSu56WbHCaT}NkkP%eY77l znVf_-Jp+_31F(ki?}8)oRMDVx@Hh=zw(yEkuMQ>-dMoa78oc-*F7U=cg^{N%2r;?8 z+>}*SMcibe(K5&q5Y3qjPEt-KBH;J9hteVOF4D^BXqih%#wjd(0B#&He52=-QI4pR zS(`@JjSeXP6trJ7+^Yp8rbdqJHBN~mIn$J)bQ2O{KHTB_&|;D!V)9A2Dc=-aHVA^H zBoRP+UKR34rUamon31T#5W{>5A~Ca}3FNl6P)HEhApzu6E8;Z)Kr@z5*qoVV!qyRn zzXn06VwkYDn$e7H0RlL54>&cbi)JLqWK;%PxeRBps%d4^$m#HFF%789*dDY`o+nSl z{j)j6jgD56;T7UvCQ}^PGJaN3hCLyPEdxCXz{yr1rF&2FXlbS*35==i#qcjV|HIWe zwPyl!Su}RXwr$(C(Xp+L`Nr?J)Tv$jtQDfkQ)r0huVNEM z9`$s}8fnYUzMqW?RYz}aT^vUgMNfgp4$m#b7YTUR5uhWs>BVSG#_d zj|PZk*Lht<&(K1_U}E@6 z9=S6fqMnGbK678pcb=*|tm&;+Nrtb~c?0}zO=}sSvrX1l8MY?Fd+kFfa(T^1aO>jq z73Tm|;Tfu*dU|{70fid>J$tK9eyLmXaC+X*t&$sVQT=dz z{W^cP_jMkBTv#%7V|dh;2E6;>vYNto8^oS35AI&(c=~D_zM(YnC?xXgtUf>GSpyCm z0yb5rSKgOxQS`RVp1&H+CtnU~%UOtDy^)IpNGCw-@ zB0nXP{!P9oe;|9(a~dfcPMuCMY3r0!d+Vm?JjSrQ94_M3oNj8=*z?{@1qFyOK81UB zSMGGoi%eI;BYfU%7Tl#rnyXa?lr3I6$D}neyh$%_HJ?>MM&k-FULV|?kpS}2!71)P z%zsaT-TJ!N<9_p2Ui;d=UI>`JZ-quj6H$DZs^vF$^-#t0p07Voo<;Ht>1xbkda~Hn zr#k>6R;Am>Gh%_*1bVS(tGJi7dhh!86hAt%W`Hphv)@+5$1BgX0=Ig`%pRF3YSD2J zO5n_W*^qChah0&4IHdZCNC8d*3Wo%{dgMjSYX~+$z9_jBK4;16`Uq0;^DDzM(ZzUs zCeD>BM#wzaqL9pnpKQ3f3p?EhvqQM6-*$YFzS@P9Y~y%jM<-YEl6|S4M!|pqhn27 zOo@W71^F06DgnKPb0|wv>Zf@#Sic!7XjIzX=LgWbH#6dbS!!lv# zikUioHDMBBX!i8C;rM0>_Sz%OZR!jB{k>efdE)5eE%T3t&*P$7kE-RvMFJ#A+-FLt zxIDjay;4?;XudWvAa3OG(#4Hhe|qsOvQ2r=`e6J}XST}2s!Z9+rhKs?vM68snH$E1 zW7~lPazxO&_13#C)tb0b?RYIh4L7~o4#r_@5lg&4bMiDe*mJXr70Rn!)wPS0{CHEC zB&BAt^F-LTIGdsUa{jgcxE`ye&LvMBEKo-UeJhi+|F3Wp;N-~ab*OTAcWL}}Ojg^? zO~SAYXztRkORwr)nvG%^8*iMgysa!)xeYU?dg=K7Z|1-%xBgwHvMEFmjMFQYn+l!& zv(DbUR`pS2TRV@+9rk06vg5pw)+6pDLNmgCXTPy?6y1mt-MWyzF9dDdfi8fKgb7Sz?!EgJKFi;TCf(a(fw-?fJ(6n{iwN;Mzk+i{qFwiC_aT| zqCL3nOjyKr0b|2rHfxF@5r@g9)zl5YE^p2-xrWxZxE97gVX)^D)$OstLvPMp? zX)AVSg?nfTokcLI{dZMgyxinj#&WZa3w@O|N`ZWigZOU@ud#4CBcg)-l+9R7D-fx>jmU8e7L}N4lciRY0*5kA zBR5c@tA5`-id%B)Tex4m^xjV1FYbXWH9tFqHFlM-4SFF2@A&Wm+^7ko^kXxMhZ4(VzuTS|_H z$tpND|ClUiHG_tfW%Fo^Z%u^US1sb^ew&{Yc0+n0^I1sZ#I{8W7W77l)}PSCjXY^R zi18tRykdTb-}>dhduku^>oV=P)2C8rLfuc6;v-EUQftqWXr{H>ofj1EF5r;^;FhqM zP}f`5xob`$Eb!-l&6PR9<=^QO(Z(PJda&3iM3`Gt zb>BO}utE&_n7%VgbqmBIR1wtyW8d^vdQbMC*L`2ttG&FIv(JvP%08$yH{6#ZwmG9aY8d zy&{J35Hg2ijoY}xCHVYv&CWH-vZEuYjLgQiqaVeZ+p;4MwV8hSYL463&05?hCOOK* zavgQ6EaNF`(F|(Xg#Vh?cuTdl4x#~=g_O1p0>zJv%to8nD52aN2kzBe_k^T!64P-g zz;9izX}%c=OXNK-gSu9Hl@E~=P}M12dB<}-W(aMMdpo%z1P~$P3mRp z*Uh-!b?l8USPPH>iZ|L#7IL>XN0CK;8}tf2bjSE{hhcl7;>)HZQBWM2z9|xJIb%F= z7BcPreaFs#;cPNGmJFrVi>p|RkFT5aMKXU`%vwkR_k@yo6nhe2FZx>Oaq- z|BWM{NQ_w~Zke5)P_SGuTydUOd)Ld`PB;LPX%h#7Js)D$+9b$n+)s(hEf)6!KMhFK zmz+30*O)N#wY&6F7xQ8xURK56jmKNK7;9A3mRU}^cxLh8wadU0NcMVG7Uv37At|4E zX}{Fq?EbwMsr#oll2Z7=zB}c^-$NilP)@aRHh*PIk>=K( z8|Q8ULRlFVj``4C+$2=YQ&>~X@iAnYKoI0RqB34Oa@P^rDW4EKWW+sj+X#!AuT*a- z`q}!q0T>P`Lu(7^|5#8%6jMW!|mx@+rgP7U}tt^bjS|5&?{IVp1o*`egX&gdL!{nXj>g( zp$V6zqbOk+Sa{gRqjDzg{YagV{%+2)yO8?{#;8sxH#H+;VJ*x7zurF(9~dc*LUtoq z(WSI;Oaf(bg5cX-DcMUOsXi22T%CzsWlf?6zyj6)$5^!+X4arVTtE{-biXd5`sds6 zh{{;x%bk#g%}rMDA$BhZ^h{ZbQ-RQO2!O-swa+P#KjQ}sV>$D0{uziQ@vzk~L&y+- zZ$;OpGY8QTt3vLQ0IL%>D0#w(*kqOD6aNxrO{Jg#e!Y1||9n)YGxJlq-qHs`S@lk>cM~clZ z1a%6_repqDbUZTosA9_FV4y35m10`|BBlUE!-WQr$D10a8Ne^3=N8=k4Yk3E)?jf)hLHlTEVYme)K5e zLyjSG#*S&_APBW81)Vyyup13TgQtM!m=lfZ_P-A0mW^JM!w$&j8382L!W%{7T%?{b z7yX8`s_*%r&X95ta%Nxkf@9vi!5+ekP->(O4MmcX^~9qPA}@j@F?{%`7uD(F1S_5Z zZ75={D{Gc>pN&yB61m@0!2-;wi9obK-m1GXOHK1qOtjkEx?(RR76|rKABp_vSZEVe z+$dAE38$5P=Osd^s=gD)F~Wrnh^LNskhnk`Q6<4iXxU^@H6tDROvsDzzQS-OkpX#r z{URj`OqT{d>>=^Yc%jqA` zVc+?@vV>M?QD=uTKzZN?^iAh2k>QTYZE-~-ddc+C^pU$m(vzeEQeQJ!>2Iym6uaTL z*!`lN?BdzEVZw;N|MjOL!o9{LM9Jsq&DBH66$dom5R*+tGD~C&NAp$zZc6%%2efen^2kgkrAQa{7h8}9<# z{ErDSBTwT4l14~Fir^antv#w8O&FM>@b2jIckv4NR8rMqQf=tBuO9hP=>d{F2)gj> zpw8ezEK$geJH!}bEEvmjtB_;vEO;~IY4>t1>}C0| z!w{fx6n!+Qhd%r<#`7o8DvsK@LCXGlG^XIphc=UB1?_XC;FwK-(whKQ9ki$I^*JZ2 zgP7$04&i55;WZKT#ML?@;l&ig6f7zzOSOx}+ih@;Im5MM7buoM>tk8m7Wu-42llH_ z{%65+#hqU{90p{(=u-&}#~q@&8Gnw;??{~!eCtp9%pg0gfQxL50A+XX!|Fw~YB}3cH${(Qd z15`6u((T;Q)l1Adw(Q*%f5h}{RxW=^~@9{MfnBDB(*RzON{T^IKN4x)b`17*+F_;Zum9TMZm znk`3Ibz+?<;SHt(Id8Y;yzbT}O2lLf8yH9*`y0Zp6a6 zO4`UD<|0^;ofgEboR*(aazY_TV{l31Z09xvm|$DRmHU%B0yF{5{MMhKfrY_T~utfLxW@Rq7&lS-|6wMxMR zA#H8)LQ|=IV#IC57cuP);h>t4gp}Ib_I?Kcn=#CbuVz(=Zt79}5TdL{cCN^~7@gbp zOeG9&(5}B=o)ixJY95WP20o3aFNUY?1246tkI@eRFUsPJn6PX&P<#F07BpY2Io}2? zNCxgQ!9!!1p1u2L`65(bGzm)V88MBK!eu|9?VOhnpVTL0oe%Uj&WAHdx!3-IZwKA( zhp>n@Brm=f-H-q`v=%09ubhjgZq`{C*@xzSjod+Y7^MLUJ>K3AsPY|wn45j1;2t`o z6d_Xpz|bJp^v2SHiEY= zD7CIoFJPrp#TWUZR3Yq%Vy>kk7ofXa!K@F6xD2(ugs|O?trP$m8;1F&{78%ZhQp*_ zZ*l5NSGzRU`dw3lwu&?9>8rGKzXQd46CMW8HSq`2{9K3;Y_^{HGS5$VMbc4sZ2DsL z6E@0;qUVt1FTBZl|4_N;3|^mQcx#%D0)}HU5rq*6x%!25v`F-?n|>}QQuw#GUhZ-K zqNAZMnwE^amgDBR=Au012a9ehiFgKEKkbSa_?&mdT)Nr|!!17WYm4C&z!JTlIGktL{>7$r0D5`+U=3`VJ_a({Jz~*g_~MI| zx`H74k#VHJt2_@0A_q9XM-}xYkp2KvE4=fG7zmoEeM#37&C$Kx7AB2ev#i;NkM_KK z6Hs~s6@8OL$HSSXeYl7V^}T_Mc1Ya)`uhZ#a}E9!y7N5Df2nZ(@$?n8jsF&0nzWt6 zyhaeVO_yU28my-H;*|50;sTSiJD{&k`Jw!^#|{kxzik)A**VTA9u>Q$&%6ep%YQ8ZB0gDJ`Rx4IZF+nWU|!o!?Hj^*gno;AoqfgbzF?A-V8RTE$TMg(b~b1<9AIP*eFt0q z?alb(3rCqEAaV-j zEMda8_Rq1}bs=AfI}t$Y&l$k9k6X1&Q)t|w_c`O3pW-!RKo;@5y ze`9Fs%`ng4KZAPAg1aqYgrR$gbbk8zK=|*5X|k6psv7RFxrWIr5fm{N40WlcfSCHA zsGK*6RcyK-`cC@=9An4$1am{A-yh0t${=NO{$9jw>{ckVGKwmwI91gE<0DuC579vh zsx0M>z~%YuuV>a{?V5ARK81wS4P-0Uu5vs+CQ`-rx_oM4+x@V z!>ke5x+!uH(MUF%kDfc$F-?*1kRd&l7x{ZMP0#?o=(s&HcR9)qCsm6~ASQMhcUga4t$BU?HE5 zuckI~u3bFlOJ6jflsNMr@l9G(R4Y9s>T=T|6-{7hF*X}oe7*GYHt zz>vcndplei<_mg{G}JKkt8us(>PH^pkBQ+ltVsvY4ozaq{3}|{N)7Llvhv*k_IvaB zqX~&C4q`yCfCM@L-Zt+L|5JdI%n5Ft_l`E2zv1HYzV+f?fX0MHtDA-MN?FD9_n2M1 z^^q-o1yoHvfTgv{%)0Ny+N-^WXUjGB^+u`q&|>b|96hzLN#NxQR~4;`%&NVZ^XB0d zB`L|_Jd?lrL>|z5nzFW(doB=iQMEpMIFnz(QUM@NGrBwu^sP4ZBGCLS^cDG0<X?xE9s>+U4FH7~W2vhPHJ>vQb2iwb*kyI*|&q zc6YI^hsY~TR8YIWKh>@zc(vncrIfYnxfKxcbtF93CA=s9T3It+9(#|}bX|F-*~^7h%-kMkd2dF~pO4!e20%XgAgxwbLV_LR6SJ$VIa%WT^`9u%J$ z??dQjtPO~ULCk4Wvz#{R1%a%U=p!x7w8q!|sM3V_|BipnKYOTdi)o5I(tWRjM*Cc^ zoJW>QjAn`Pja_3o1E}`B%hxF*^toD;Edg|gHZpnmhaT~z)luQB3LyRk_;^JmLaXB} zr=D9R6NErS@%aP0L5$cjB(jC(B9ufyM@m!4gaIKlDTtEGh`pVh_KB^}U=?awZZAfr zNoOW(TFkON8~AOR*DV zR+F9nC?@h0IAIDjCsp3qB@HJO|&VcEooIIcKxt2 zwaGF&;6>>XrdSF>IsK#PUH--{O8_`niiW6V?=I3C;rPn=ac=o|Q7JpOdvft->J&1W zkQ5iVntFH!%n9~nFD;rUv?VKh7&+`T5&nkoQ%+(FNyXZHF0EHo`qi|DwqmX8LbrLh z`S-KX#uh)>_Tk>N)CrA`>aum>qEmOF=CesNym74qLV0GKG-&AhyYGPT9RPSef||=j z&oZBI+}x%fBZROawQL}iJBC>=tvkX`o?&DF?+wJA3Mrn7P!%zf;JB0TE7ze)o>Yl)$m4R^m^9n%2+ z?<0Neuf|^N4;r5mE=A}TiYO%;>3`7p00&$(Jb>4Ae3zSCM#_32oz!pkHpSeOgK9ZC zQsLDP-h9i9BMETmhSl|T(hM8dnhq~1lvt^Cf#1DTg=zz8i56AOFA64L1y#1>f?~t7 z3oxb*XQHHIaCqcau*Q(MJzg#Tl>0e&ZdXp%@7>q;-P_k*_Rl^&bR9g+gn-0h4%X%C z%9g)|L8%x>!gVgi@v*W@rqN;PL^A26XUTMy>H3Rm8HKXOqH@&5Ni-P|CNvfGHU=xw z*@?0d<6t>V2Qt|F|L)d}smRP#7pP%GRR*j_VAtiq+Q2Ufu zllE!n#4Ver{)?wGD?Tg_DFu{;Z&cDV8Zekcq~%#<6Fq&*#c_zt3LJRn)I#={7^qhu0@tqudD0&9l+IN_*E;Bq9& z{62+o4MWYTkQpgnZjmA~F~?P~3+Q+;IQBJn9H1O!Cy>1J0uzzy=QCZ=Z<{t-t8wms zVLHayU3n16bM;}M9|3CT$A^qqLw>u%k$(`4{lpm?Qgy0fl$?^moH=rsif~zYgmo7SPKH$6D7#oz%hD4o{(5SV}(!FT% zgadPyMDz~T1Jf|Kt~ZJ&V4Nqd-_F^0rEQ2$q+8>rPh^TGcCtJ+vYhyxBzh~jA-T=F zAdJ5U?qG$%=>b3u)+}Z!nKW%?6uq>JOKo_|m!7q>th)i^6b`U5DOMPcn|l$87+ejm zOgb%?dKORx=^-~Z#v<Cw}hY9`gGhkvjEDETk=#Y8*6Uj8-RQ+>Jf&h-oN6GU%tz`sBU0- zO;OXoay-S342M2bwfxkC8o-W${NCLIcF%1K!}Kf@ERi_gk}B4t*B5aodc)f zZh+xQ7A!M#Z){g~>n+xp3mo)C(R_khAOeJ1SzpQ*I0-g!)dZ&{Duc3)NFJHGr8z2r z#R7MO3;`>=Iv&MzW9h`F-bsVz^r6_kngLvBc$2>#@z{)G=S{xU#@)qbd>Zs1!qnAg#k+34$INrtQ1_0!>YoDlYA!MS*-2v zm#`j(VEI;kg#D1G#j}^)xPTF&TJ-r9o|?+oS4`f7I<3E1cw(}akBuIL)#@0hyIG_k>n$aio+B~Xo)+8MMj$6%p60t^dY;#3@6Gdl^tl`@6^H6r*bU9~{&UjCGW;!S9Lz?*(9)RcjXx^$_LHkYQ=QZ0@qx*SW)WNV#lUZIW z;QI0yX|f+P>b;sgn|*vy!a%Rqh3Iv#Dx(qe{K;0&`D*g$)x*>M3`t?eF1F3T{^xe7 zrpLM129j$;63{ceyr-}Kdy!TkuV?L%5+2`o|L-fGw!+IW!(|56=aJe~)*}J8KHziw zFnX#(q4;81p#QkrHuq9gG>+box zKcAg0mtExQ?hbDM5VPgi(t0zr?MLiU_Lv_-_)S<*2cCFIsnePCtWyz-w)S^x7du|s z`)RHWA+)I=w$k6mv^+8;gEmi0T!84`Do+B;H@%_k?V^U*U^S5z9kJ?)5w`>hAK`yooTxKt+-!5t7VSO@cVN_H_C7* zWnF|!mFxjd>+WS@3dQ#);hFnQU~JDy5;O1-dfb(vhMiJ3@0IQCK&zW04Uvi*N0O>7 z!G=7ERJu9#x3a_)(Q}-a6eznTsoa6@oHW10+K7C8Mq>hBVTQLquOL1t!nZ!gv;BXf zwK@{}s>Ob8@URrYTPQX__A1ZQMCJ04r&-qv(n#!~*6`LKd^mv=mhoyN3gZxFQCZ&p zYMS-+N(0OIL?uDKauzGY?}$ul(KJ7+sCddoxx*RdGGc^K!3y*yO(d5*gtOd2;$LdD z$Pv;R&2Fy4FlviAr6fL1)0yv^PFHQm7uoCGRbG5TsDJIPtXJ0nd#RQIgx|u5qMORF zWTrA>n*ZYMsO#xXSwNF3iKSUsLnk$lYKw`-=~Zb-c}gj#oAGEvP1KUmp@E$!bJKz6 zi!l&j-Oid^T&3>UhT0}{{yj4UcNNg5X z5XYf>tbWU@W=qP5wt0M7COmyeGERz9P{Ft!gt=*AmMW8HP&slvZKN2B$J?fCzNvMO zZ0+@TG>*JO)(-XBa%f1RJ6yEF#NVx$ZU&5`&W3&+u<^oB!bpln0YKG)BEn#ulKv$` zyF-@1{hT%cjF+G!AYug00E+!;%pLr|!c_eu*V&+%RutAtuzqsEn?;`2eIt-NBSPwI z5IX|An17tJ^guQNdxQ$EhWmCQAx3NaqbYj`Qc&HHf9x6}@lq-o(w-leO=rs9t6<3>_2HxbUOd)$7zd*Kr14-1YhGI+eA}Q+~ao# zL(04hKv@#`}J`{bq{qP%Ux zHxHja_QApL!7b=dsrYDr<{W3bdUymGg3$+Hh%cmQ7**aKvSC{L^qezx@6=QcwZ5YR z-q~7CtUsITw4Zife_x+t915;m(7VpYkX%ityx0GH*}1l(C)zJ3fNHZst`qeH z57y28TfMY*Q?Cl8Xirs35!qb75Kwr;jp)5*HyQXho5bhkYTMPmchJ2}iNO&5>l*NG zO~9H$;JG0^cm&_}oR;!La1q_@{8f+x_%gZifk?_tt%m~P_psZ(L!q%p&B}!TtlHg3y1njv8g+`>(qGqbwYTIH zl6xZ6^RhRpb@96R2xY^;nJzYqm&mz(-&|v9;3%WX)8csb?2ny3;OFCIOWBgocI*&u~ZqIhKmtU_ ztv8&{rFC4%A0%zJb&+T|db)1jt7ig1G#Q|7(R!7Yk=J%@-y0oO(>iCH>&Uhq<|fbG z90YFav%M{gx+=E{BJe5&sl^ z%kTMWz@-pDc60Wky)6Gn;H$plrHVr0WT+zLhhVcEVel8_E7fb24A5Ko#3O)3V9i3E;# zYnC?GnNfpANTJX=tC2E*x#H9cuEm3^g2&yKS)nY3XhWCJzOWp5<~+bvTs@ZB;~7$$ ztQBdM*}=MrY<23{g=csv1nSh)ZoD~BOknKtp#Uo)TWvPKW^4U~Mg#SMQ7>?wR}^(a z8>gn~**USGNU5Ar3h}`-Enei0Xm$MgAF|jUKR6^W`+Ke7ui;0N26X*C2<`ah{m)(7 zJ`GXcOmcoe{?|9<=nuOL&jzg{S$9~yp~(iX!@nyAZB?DU&(4fz1#&fXrOJk)d|X znPNKIgsGsYTtr_xi}=+DW#!zC4=CIi9}364mB34ALLwzJN+002{y;G@V!K1NLeejZ2|9JndL?r~ze)hOb5KkN|rPs09Yl#!1K7LByl3m&~{+xfe$kcO3K zlO0jo@ZKFt+)hg4?rhJdd`)lD@ ziU;3(72TVE()u17XdUG2>ktB1xCj32<4GTeJ1$f6>G?M?XDiK8 zlZp#Py0FP|n5@p&gQKH(m|0HzLf4YvlVZOV88nmoXKFn$xg@s^hu#st^Nvk79f7+I zV4+aS2-jSh6RIPtS*31U9Z3k7QeFwM9KMhF_kE7=nUWRnCL z#VsL5yMz-)uu<c7X8BBOa-pbD0x!O z%#keERZ6(}+?6%3!+RADtfE0Gm(&ByaU&3-3q=5#phwKUQz&Hi(gj%5soJ>+@NQr|UPT{6!wzK^- z23Xomym$rX#w6??|EV3#CDK1h6yvY?q6dXM-t!03Dr!J zhE;;;)r>t5{jdjtfC-BW$V&47l@YOXAZZmAY<22YNoH(OYUR-Nzb7%6DzPuOf)gYU z^9eCHtQWg*g21Ix-oe`hw)|M15ryzqatH>xf@F<<4dd|X-U$k!tY_^;5U+%Yj|47y z3$*Z|)&%ZhQo>(P$9z<_c9*3(x2iZ6rW1gG2_uO11%CALwXOxJVS=~<5TWE_p-6#T zfKC0GscM`@I#g^B6stiK6qvdMeabR>NP^*`($A~}2UYoF-?j(fN?c!fTt4mHqgP=X z>5}X(Z^mD7xL;-y8GtV(KmWW=!Dn!Mg-jQI=uJ)Y51t2FU@uEXOqTFUThHW-kr8qo z4lbY{vxH`bt$QFecPV56%xX5~y)uvFFS=~9H+&Dq%zvwVMoeXSeA#2bZ*o3RTmxck zKAkULP*SEh-e=ngiWybE0udN;o+a+}d)S`E{&nqNm*{`(x1m5%RP#Q?Xy~s$U4MIL zzT2M`Wn^O{=g-BJeMD~IH2g!L{Qhpe{S361htJ~t98vYSnATfhKZmGcV(|_M)WzJ(#R(>5PKMeZV$2X&T5L*^S>m(C`=m z*Pz z?^9z#%2ICA5VHD*WTvWxD8W?SjrU5f)>iZd4kn{`(1yel&^{`RQ>Kvaf9xKaXBcuB zjzw-^4vw|VT*+9={;9b<7qhQrH*S{Ejo%g09Um(E8x+st9_FmwL*I0pG$lN)VJx}c z#r=_=LyW~7K6N<_Wt3zF|C@%gb*PE{`;Enp!2680;M5cIc6>K>zpn+v6XWx4J!#7& zpxi=QX|>o!NJBg+zFuUt>_XX<#w)RFtWa6aPTfxFiDrJRYRq;lYfKmBlMh));Q#Fv z7Q7HS%E1Bwr6Q-`-$7ucAbvyr7)dof98i|AwimT4efnXot89#?nhs%2w5>^TMs;X# zh@80SCA0|%$LH4cXk{YQnf-wr_hOq9oTVj&8)V^&+tN+qXUKzCEtS&?C4SGvPJk7& z>IAdf!t_Z=oBc`hwQqvxJJ2Uje|7D7?z;Z$-uKx~$VS&|>5R+2;Q1Zs4>0wY{o|KU z%b|kGmLfy58RyKIgbzoN_%|wDkwsQ^HlH&|9=@E3tO`wZUYfKZYLdzdYX_F3PSahr zFaDxsAU=5ZpjVI-307jRYb~|4+?3V2r@l-=ZeZv^bT8dVDFK{s^g)o6g+DY=2}0Qs zNQQ(_Cp80x=G2+l_AfcgZvcBXm14qf>l$BluCDTOrKKt2hVsw@>3$uj`$ht8h3T9X z^#)4JgO%oDKM=Z_QGcmS8B}RTHkJx$YvL}+l^XMIpCoU^jtz0KUx#$mXkkOdq$a9- zG4tBWxXu0x?sh?OA6YD8_y|z%Uusm!Q+Lu??bLfttZ2bvyx;nNi~*SVr=5hDzd|es z47dnyK&T`>vd755Y+#uf~NJDtPS9gK4nej-`_+AE0$Q#TK@)Dy+Sprgm>! z98}46C27%NBLxp0Zu_&A#*0JVqXFR^)x7t0<9zGlXYz{AaXO*urHPLO!{Rc9qz3U< zi`S``>8KZr6`?9b&=T{w>T)jW24&ssb@6DBH~s^4>SciJ_s|74=-%!g{+p8cr-w)n z?HrNn$XvfO13=I*loAlUu;I8sWfFt`x0IJzMFir3yfFR;D;`{&z<(Dt%@J9uD6|zO z@&T!0<8&?5uE6GCc@pE2AQuKHb8F2^amoDn~QQ0>IzifC32B30dS8)AdZjXBSa1hJ9JqBHW=ic zL_dTnOlil3)V4WP8FC6EMf%g%JBF;j2K?rlMHgIzLYa;hg?b&_1`SazVm@wA4%Zmr z^P>~}Zj09eb|AyoVc<~$UVxZPM!owP7OhdF+7KzQf-X7*8;bO%{CD_-%qf7kM0;sy z3VV-70qVXnIT=B}{X~(wZ8G4NN;C(%=a z#vKxGX{Mr~&Ei?-yt6Gy&;BEfNu~f>x{b|K9iL6%`~30YYT3 zuBnBwlYRcPm{Q68H)-l4DG#)u+5E%?ZKXQ+qIKxDR(DbT3z3RW&x}xLvC`;l)H~VO#uX#C*V!ySCDXuiI0Lon z8-r`)(eLh0MJ$^z#f}UHm8Z3r4keu6&j^d??Y9F7CNMd*C&ok>n{0e(04Sby>K+%a z7s3}g35}Z-qT@aXKS|r!u)*L6b(RdHBWH2)J36yLnea4l#cwp_nVkAbhhp7@0L1TY zuNLroM=4{-7>I4^>AwV@?h)|rYyGd0<58NyE~c3;TJG-126N|`%N1c@_(k&MN_u5c zGKpYK!h+9sBrModQ35W5O;F(4M*0~O@14+VFZu0eE!O>iYMfK+g3NZ)*KJ~Y^rHE? zaEFjk{DPVwaZB?T%A7NTd!dC4fO{uAMOwU}I1vBa874e=ZP+kA!Y9cp{PL>Be>E15 zVM?i14bZp@CA~(BFm+Xa_e=xwehn7v1II1WHb^hVsn>)VfrRdj#0h#*-MJXQ3P;|3 z2zd}eSs}t8sDbK1v}Cu;#)d)AK!|c31^4Cf?y~evj5w>~F^;R~M)zgp0Js4HqlpT@ z=~mTM5apxuIoZS0BlDK*hXuTG(?mU?(7rd~B;u=4Rig{K7Iy~?y-_*r#{J~eshUA8 zv=ih|(aVXilh4d3f%R4lZM%mok1474BHgN!y}#c`9L!&a-jfc;I=QMe|$#&X!iK%2!<7UW_zB3wT@Mvk4pePh8b=if#;VQ{Fhw5 zwe+4(*+bKwIbZJ9_u(CTbuPi6(;Z*wVctH+0s5J`Jt}R_)k#gZryMZ^bYB~9HiN%1 zG?J%hw(#Fi9@^vA7AnFKrayNyFziZGeI1rpYn~T3knM54zlu|y0hRm>K7d69^=5}f z^B3F8nxwCmWKXwaP>!o+U1$E;o5Q})wU(2onW^)4a`{b-Z2lsyW{5HrwX*Z&N_7Oy z9L|rS<7=jGPR7e%nB%=J`x?HC*IQ%ltnl_C>nraa$v&*Bm|c>p&-JIAvujRnhwbry zHI_Y9FkAIqpD%s)fak5-l1&K$%UeL}A>jDPch2dhd2s*RseLaYd0pdocOxD?7q&%b zSI1Ej*Ezv^#@u_u4J1w4ai}rL70-05d=uVt_wP=#xR$GF@KAl{D}d8tq`)%jjZ;grmeS{v%kHF+#X~CPt-+v3_fC^)T%AUlsK+QB|I|etF`2u8|1}K#Cx=Wt zPl!$k!a1O1X^SYgCfnCM%g6dU?!NCYfh{3StM+Lm0Iq!0W=%0t>EcAq`5#2Ntx`Uu zpDT_#oKg$<-;P*uFmO@D*a%{(Q0jx?KA0h$HIOc4|BnsxQCWi;4;gT=SRbqSM2M8kkHMme#B-#wlTF zUKN0v+j6kyHwf9>!=gq@L8bMDI5JBCF^qBjl2Rthg|k1jl5&dj2Ne#TeVvY)7q22A zsbLO9)m-iISaHpA@|`akA0geZN=C2jW@E@~Kvd){>%~BlJA~^lx6WVd+8}cy2D^S= zUWDmkVBCJZRy?=8>z(V}MR&Sx{F;B8oDpanfohopRF%7M_yZX~91tY?zLq^hZ=9_N z`(d{oJa>w2$m^l!{m>gw_t}kdmCH{w4AQZj`gPN_}j}@g^RV-mvr(4u5B*6D$;z@tOxHx=4eYt{=&TTuFbCT zw-(Xe0!`A1@^SvD$koH6>B>f3dsbG>|=*lCg#3aEN{Gg!1 zf$Xn_4u}Va!;-cpGB~b3w{m{_DBX)lR9f(Z3m-HRasm?N-Y=U`SkzY|y#mxjjIf^d2S{h-Ti(ywbxdy0V`sT># zDivkT)unoaC76%Bjow5KiSd>dTXmwVw^mlUnAykfRO3o6gDlj=1n$F$^;W-ebO6(h zf!~6|cnZsMbOzSt84q~ZZ}8SQ5(&-MqAiEv zrj;*Y^qD~iIeJWL%T0x_#^fiQQO9Wq(`TEOal7o0R_Yt#44NuC8aRUD#?8lFcrvD4 zw-6(l5e8ZDc+McB%^ytcC#X5*7y;O$;&dY$$52KC&R?Ow`DrlI_i)&HquR@laVpU; zZxqbr658%hxxZ1*26!#pI2fQJ(V+Z!8h_w+TQ|VC2 z&_j5!OqgX843p7d#WYO*dE=6#p_xYefRJcPVIJc=#h`0xnW#vb+~wg)@d5r~wVhID zMjJyv{9EOmx=uG7)?#uRmW47{;k83^naF2wB`PaaqczG2l%Y=*?I+>$kYroV&ss{8-pDqs5F`K@!IhX@yw28!p zwGKAQ3{H+KlOty*0K_AMv0>@Q?Uq1JB4RQr_S!d!FKqX=y5fga@euuY#B8)AIUi0a z0vinY1|M1?`46$9>~x{9?m;10u!PBANWr`W+rG#UoXrj1VM;zpe}p+1L3lGfElD*e ztHm#1ed>dS9Tyf8H)N^SUNMn2Hx&P~%=lz%K75iDd=a>909DBflFTl8@U;a@Utz|< zY^>BVR`)M$(ATQizT(X>T^GdI#uU-CE?R=kxQnSq>m-&P4$_!#;%(NXp2?doBuJ4t z%xd35w%Sf|VhJ*CHXXkdNiyYnWN_l+bkjfI-sbftIUD+Zi0Xo*xW0Pw>3;9(R^xYf*e0CG`8;OX&f$4z zK%H^=zC6*&(dNy|dYk)`;%fam?(Y2BeEl;HI`h^4Zhz<_F1WtI0i~d_?rD-e*5VSVPJImNn^k@(cCuhA))(8&zwVKIPJ$^CkX}I?tMa zYFRF79xtug6hD&lF8?`fExIaXSa_I<^|{QwYrZAA(WmD#L9QT0#;?2YmcfXOnhQDx z5LorFJ+K;*K(^F)`9;IsQC zjQ;Y+LLSWY$j#72pE@$};wW~olNmL)OFn2M72`BbOE-8A-m}b2X;|#dWKSHf11+Co z*>q?uXFle3k)>Lc`SE)d)2Pw{UP(>|P#185PJ8Y}%{d2JH<`THRbscJ;5owU{V6Lb zH_dPvQd916$G*W`GeM_fXQAC*So$<$Ux+ccRMlZ$^5(Te^=3^ck!8SBLBq$LMvOth z#!O}17q0~CnMPERl_}M+$Z2nw1L1RuF;SlTkg0aQ>Z!>Zu!GDH-Y4fLA{;2xGEbf|zz~c3JxQb_ooGRv0#DE->o* zLu-|=FdV*X3TOY@&B{Pu3a4yuKX~G@tpk(KiVh>QZqd9fw_cM5 zZEmR!O*1Wg5jm6D8sAd*98+17nydMrLZ+bo2iALMhv#kM2|$|V{)+ed{>x|PzI)~! zz%$eDLU&z59{TZlnPok(=42d6R7&qp^ya8+PMIH^aOTE=J;%;{7+A@jR9Kx?SROgS zB(bQipb~yEj|N+IN@V)Su+9!=N4}ZE5Qb1?c$frQ{*SUuco6AXXfk>VtBxc5guRYp zLkPMvZGH&3ii&bdW#Il@?8LlG9n!8ifVoWJrnftRg56YPejv_`hle1ngpAHoJ#1ue zwU&ok)ESl^L!zCGl|Ukrqr9TwhWNK+(jHoBN$^3SBW1osVzF43gbIPHqW)mW9} zz8y!{@cC|PCCRxLQ5&$)mp}A})JS2W33YEZbdnWVbUcrZ@X zhN3o30Bd3|apVN|j^d8)02e}K@o_H#>Dki*+U{lGl&1{2;e2gotl<^0XqZ%7;KWv+ z2~~C`bMc^}Jr(V*;3V7|S(YPFz}I9KxW(tsfvTA31LE^lPX|Yq{G;isvK3`BUqSyk z-8XkT%+&bHQj}KS)M!KTcO>F<{1o@i%Yt9F$j#T7*66Iv)?6X|Oir9>bMum|8qmq4 zk}fP*MyS*}(S~L-f3frxpCt#%GMWF0yy1;VNNzSq{~L?Gm9K)B1H|zSKzd)CIAdRA z+#E_a+Iq(<`yAy(UMKYI0AJZOGgVz3axHB{>JI*mn6M8_fUpg>g2jWij2T5cr;(6jgaaf{dHbloEANAtCP1dL% zAJ2+IHcWTC6$rSjUz{Oxz*5`AQ6dukhMr?Om$Ri7^)Hf{0pcG5z#|lo`+TlrpHiN< z?4;3sDOB+~*sXwgroR;)0q%`ydQ;`+D(y&LWL$WE@ zl9X;KUlkMj>R#?i!Jx;lL9qjxp(J>SOFz1#^b*G(^|!mXA!rhLH*I`MPx1h0$xAw3 z`nzU4rg+dY#i0)!fC^C@e3`kj?2va-Z`jg^Ic_*dhRjFod#*#zE*fC!n(dySmT?RK$Agy24bevPSAZCBj zy8!Jd1rZC(=EmF@-iENBKZb~ZVF`{CG7wYAEEt9{2qI7|U=#!c+ldLt6sUFu45Onh zL9brj3RnuR9n4n+h?dolJPjiTq;?P_8QX~p$P}7PCwmGyb`&WrE;p^mxUm)$4hljC zA$Aq0>;;4*9jVV>n&kw>R~dBh8N6^NP`ZIA3E~oT6wgLaa2JX z0jv>W($JGQRjbr-$og!{>2w%rhN-L?4G?iuA*(!=s^&pmtLg5d#c(EcOOsU0qKp|a zrg)oE0O!YB;$q6dNyH!up-GVQDt+n+=|k{JCzrd#qKA-J3>X~*CRpJu3FEe~LQc4< z%zqeKYuc68ssCV-mjaq1el?LNCy%VDB&;b)oe!;HnY~u?>4lCpHM+YYdXymQ3UCt- zM?rJ}<*&ggWa0kBEqg^;@ip#)&jw>M`!pww8Dqvd zC1B;>-*!!b<^jP@5lIgT!9oS8ry>d=V_^8oM+OBECFCA?ha;4goV#d+VqiTUqq*zdNXj++XhTkL3Q+(9GhNM3sM9w zfl5$0q*yq0^z2OJ989z_aq~j`P(kV-ML4#U<8>kEKoX_$m>y)G5N3C$Df)HsyJcax z97Bi8V5UUCo*YhidfSjWys`0i0UR8U0Pu(g5F8vk58s8HKB{*@S#aZKzDW&e2Kyaa zQ2V4+G0qd>pqD8GR_Nu%wN&53LwyH$wlQu$zNioYEtC^7-%FtLRg)NsK8=9p@+5*l z4Q{Q6PAvY;@%@DWurfghLA(X8L=9$|kJm3y5+%V~v^qsKwOv3i9kx_I!z#QXfC=tb zBrO&h93~t)TnHUYvky$9l~xYuK7`g&?~XOLQ70p1Mn+2CR0|V0W3kCj$!e-3RyW)a zGuY^zwRs9CGIy$KY6bL3C1Fz?ugRM7?pzCE`SMwKB-M`=+j*!TItk8`PiY%Rf7& zZBrUXH6@P|7q8Twyj9nA$DdE`;#z=$s_Ta5xFv?B$F3*$`L|f>o{?y|HJ=h|%=-=O zm#4^=Idkur%KZ&bVD0MFr~LuX6dDHbwuR&O9IjP8R+f-t8pmw+{ChG@K<0baR@6q3 z|FY)S%M0$G7x=lj%6B$zx8ubIDS~^|qnvWLuY!gdUAnfzl6M!pjh20O{%uWfugfVF zONOr3^-srZpGWoRmfzQXM(!0Ic*9*Y&sSgPsB#2+PjpB7C!~iRGjyvjr+M4oZ&_;* zhjLwj>$SP`sEn3tI(YgHz{%UwT-kMXJK5IV#f(S!^!E4C`T~Icz9GM_W9jN$Q1m=! zyY+F;h@pAA-L_JHfyOm^%}0O7>yYwUUP$LH0l@b>Sba0!@a^_dQcCseYsY0 zS+R}D!M3$`X}ziW{?Tp_T z$;r8G;uYa(z1T@Q&Ea=Txo&#rr`wXrGRn3;GN!P4-%AIv>ZJ2`D5#j}5#5445-sJT7{^x{8f zsc+>Reu=W?E$3q2%C_3<9gh~v=DQiPs#e$b1 z?#v*r;9^H0<9+EDkdrDVp00&$iX)({^pKtms&%a1b1;jI-X0$pX(2APsGg*^t=P%juHUH zbsAikdthq?RGu~VcKKQN(hX)~@IvLf4be(9{$B7k-AeHxO zfq-h)$uLty7`e&**?ltO`6_)4_m5)pQq%S~5F(sy-<|!Giwp&He4VKYHM7!4wd9EP z$Zw}@=>R#SY0F@`*7ZC5&8lCLMaon6$B*(2UfcH_)^eZ)SIw1(Lcj4o4=fT;nwJk( z1hGPWwPOD|Y_ViS7p>Y%od-BHMnCqhyjM=F4_nB%O5>wuR9m|hFIEgBo87z zy3i&m^39Q{<|4(FpM=fx1-1ckRC%hBvNJSqiE)$hXs!QZyF{5;ETQnJi3T+6p_F7 z#9Tx)?Ec!AW1O0K%#7pU&6*}fAVkPos*n>26(F)f?5e6p1&W(fNiTh+Asz6qX98?QWMa2!XAINs> zP-PF>S;?GKo~G@D{oCmm@pstS_9Ssjb|`COO*cxa^n}-8j%3F-?Zl(Bfp8C5E?+b zZhL`lZOH1|0)v1-3*gCP%CpOZK!H9En({&?p3O?Q-gws`4x1WsHcSn7!X-w$dVS>V z8sX0)TVB3Dq*+##j%qFV? z;LLcEZH>1*lfMD~pqGS2_S@M9+r61$_6VvX4l7F(Ct>RthJQV=ZIaqsHE*FArL92z ziblxh(GRieAwqaw3$x|p^IpzVQ+D_|by&uI?`SR`KYSN!`A~X0dj{N+zZQ9xXZT!% zYE`L)Y&jE1O?n>_o=1Nl*-|~IJ(PPgXnHw5I4%|8Cny10^w4I$4GbyS-voZ7!sZu} ze2;cF6DcNVa=HW@9xtY9Gns%lYlp*h=8vlhhK;(1py%=!!mZDG`yHj4&gLh>)0k)8 zcdOT+;nk2WYM%Seo02v{9{a=n9#1D@(;JVkg%o}c`-fNC&sWQ5et_N6_-Bugj$?Hu zmB~G3j4UAA?eFu^F<vf?c?6{_E*c}Ats^c&Fo}e8sra~y6Z@5$d(^nXWjiY z0dVSl6!GoR;97VyusdI18O#8`slz3e^S*#P5#lQPwhdW>z*8x#gy05ozAEk&&E?t5 zca*?1V`t6`=k2D(x6k;X-Y@bYv{Mg$jPlTx6bG=B^VwJX)BjH`dAO_J)-(;IT65$9 zeBJVmjulm+qQS!j<8t+Qsdo;Q4gjKrX|T1%n3|TG0o`uE+^?M}%yJk5VFyY%U`5?P zr4rnxLBri_(B@avH)|f#vWL9RV(<$DlD%TiJw3!j;X~m&3yc9B|3j(#lQ3a#rMGur_|w;l z0Ma0uzYC$^|5?W)FJhrR36=;hGhY_aDVb}81m>QPG&JCcnQvwL$h;NTmHJ15q&f`Id)J zt4z-(60MY4mPWIo5SFJFjSZEl7+SQ!4TiIU%mZ%AB^s*oIVbxEsuFqrV$0bjG-7vL zv?);=&}=yf5qn5Dr?w-gciu+&K%waWk3qf^px2w` zBY0sUR~Sobip8mlSb|`3@H@Vv{!2y`hfF(FJQxopV+))hL7Ms8F*Rv|H;n8IoER7c zx0XVqv*edwU$|wztUfVYf=H?$Uy9+7@Sp~U;`B>qZ}`X#e*h|Wj#R@-WM*&^+&{`R zUSH9i3dk?VT9GPb=}0=!;kP@$H{ zVZq#nLIjuwR^QZ7D4uArGSd%1Up(DV2V5)~EUGWeZY%NzVi3b0KS-*uo9=I&hekYH zU${1D7TU=>D+WgWFazEZ6_%Ku>I?b%aQx*;#V*Mh1xy@8B4zm@Ef zcz#&xFp|i2D)tCmwQYyfjBawOJXqeEb^fm)cfrn*!|Ig?4a%(Q%&Hh4!TIn6;HFS2cN#*F2o4Hf z5fTMFERc(EZJ#I%Nvd0L3`e@%#8x;o4R{{wjod>il-R?u)m7DvZ|>MPl$ZiEzUnqc z=>1sWDEN&h_LcRR56K5JY)iM{+0TxD^<6(IN89WgXe@+lcLCdw;!%QslQmV8^#e2H zg`9|&^(k5YmuVFdAa$`rVw#Hc;aAXmx=hcVqqGeDN~b#~0gu$GctI_sLWjqQVDVrF_|G3Zm`z*x~ZD z&vns=>!z9KiNkd}-OF1(=?vSKJ3Fts>q$$_Z-wjb1qQ7S!0{3=U{vF@OM z;Cf1HuV{eoA+&(yyxL!ZhI34U~sReiNK)si2S)*C-vT?wiMOa)&3sCkjzI} z?Jeqgv@_g5h`X9Kv(a_)8k}^W^Zwa(XUcp3&3L&Jw!r_vs@2J=cFnPV+tPxW{q@#7 zKS#q}?ZD3k@Mioxt45sdu+*gntZ`n~v0!fVJxD6j7=4-&r4wo3=Ee%4xUz@>{lDu z%g7we=gIj|@K1ZUxAkFbh1|<&T&E!kB2A-lN#}^e4QnbQanx}C zrCFHHg3$k{oilCI-!nN<_%|K;iTQ8A+A&^L}wZ5)n;!<-AnP*4zmPay-Xp=-Tk0>f=bsi#V zIrs*t5FoD%HisyR_Ag((NO6wCu_XkY9}?5Y_PFb_>-lM_lYIekG6po)%gxr@Vp|#Q zH!uL`nn{~o+72C=hKw#kACWZNc-fUSjp`C!5KH6tVDn+y@Ax#a#aJ-9<-R~_wm!=K z0A2u2oihPv^y05jL18Cscwu|if~$KaRD@T{jqY%8MYO;%$0%U z^JNflRK(W^;RufUYNl&wyvehdU||2P1V#WHGaMA7pP>O7j0b^`Qamc}fVu{}?760U zH*L~y1?nWfL9hd%a_X?GBD`{XZ4F=w>H|ebY-A)d1>i7 zI~bT^cb^Ik1XiVVMh0;S<7rx$q`!i+A231Sr33L~7ACK?iGhyoRDsY)ux%hn2pIry zDqzQ25}pMX!Cms~I?F{&G9ZG;Q6Jq6X_kZQ5NvfOUvFRs&6fBzuwdGNaUy0b>1Sct zXETl_%a0Ew9{^qQ+U5(zHh=I>u5(JYAdV+x6OFkQaTG(brTtQrTPCXXRI?tB!@=Jx zFJ!*k)03pkc*6xp> zPLGO^_+FoLV}!U_@J}}1Q$G+7f2a57O-GK5PxtHT#N|TIhs%g-$xQZ#!!=-Jp`#mM zU{UopcYpjfjA}{_e?%E*jW1jvu2|PsSx+p^!u4kJvZYLJgSS@TP8f@5M~% z{`&j6$n~pKr87{|1}TAl3V8Jk@87xpOr)NXU$pc7SZ20C!vO@}Aw&>vB2hG6%I{u( zd*Av~=9N$!wsY$N-G0^qM{B@^l9fWnEgYe!4XhS1iH?PBVrQ?7x--s8uu7E93=^KV za2+PownYrH!A|-4y_Nqy&`AMBF>!sJk!Va%Dp#%@6!P{XW?7J#EuMMGC7W+kc8_S- z=8RE|DZz3}*Gk`~c1)#FwT;qW&B+jaM^Ly69GYkuy9~TGna)Dx)lzL;5$5p%88a4~ z>t-P1%^xGI&}H|UsBi68qYIm=hVGjA(C6>U^Ly?`%9rP{=j&wuc8M+xe1$)YRc9`b zOW&uaz&{b#QvZJ>Lp+5SO50DB4??8e@qzh6AV6$bp{z{7uGeDM7z`7KBiR)7SIOT&gO}?46y-We$bIo%b0v zk6|nBoPOqOx;`~DCl0f{`(iRXefCp^G{4Xu|9@59uHJ_n)6ky+`zr?j-DALlxWlr% zM%kkp0Gavn!h!d3(9hkm<#qz-{Wo}nIW*q3ZvXncms) z9J&5>Iw_bSL@~dOk(p3K;O}}qW~gA->wdU8i%D=*>rUrwdA{qSJGKF2dVDs%_rK}| zi!G1Smx4`O)x-=@l3b|xOzf*nM$pG{{X2&33)wO3wAykr|2__}-NyMof48mq-Rh?) zeD4AYX&s;1mfOP)90ifOvA?X5n;^lHmSMVrw%c2hDbJAyb~!p!2wgr5JbpB;UtrF0 zp^ZDuQ;tjE5-S%cif;lieQ^oo9)d*ry2EXqrfIj|9 z9c?xhd*<|WZXkkBsWE`Y1vnVn**ZA=Uv80_w=&u?dd_M~Elcm7k*NaG924wqKrcQ0 z_@Aj$AQGR5JyWX&IF_G3(X^GRiGtC>&L6FP3D3&lMpProGHdC5$l@gms;JyQMlp3h zO>4!h)G|0d6{>OtBZXZJkz?5(*Qc5Hp4ZdfJ+9Z@u2)+0O2>d{1_~%wRTY`T3rXQ9 zBrx|tqEM1biKtGDaEnV~neg)T-9+@&+=BEq`iS`AU$E(exQb^)GVB7f`=U$_u{-kX zc=_oRrEyR-p~SkDO9~y;WJ9lIUcYgY!M9>nh8AhD^VrOdHT`AfU?$r0xSek%PH3Ek z!+pW?MA^vtLd^k+^@Tz1MVyPe@ktb{o5}0MY_&UR$_n|vRak}cE8F@V3Rsmu2$Rv` zmgkMat(aczMq^2TgnO{*c&tJSTW0p777hvJqHd(tb}$m@#TH}rI3O&i82o=r?f%NB zrt8QUY%!9NlaE_+ow#>RQp6%~0}!8C!61oBua?+jTFe2HddU$RrN zyrg?61*pShE^c^&CD`DN5IEa3LDDK=QSl5perd))yBRSd?3B?eRVQ0tywrRO*kL&HI4^EI2xnRO9t4lz_r6M)4c87 z!`=Huf7_J~cJ7emXz_CI#wu9OBNrw!gmqbOM6F#Z_SS9GGPIQgVS-N_c`CqOGR ziPQqZ`xaH;wDh)4D^4E3H$?P=lVXs{z0_;&>MSjngm$TOjI$EKx?_9K_$IgN!M zZAoGXr?NLCO6@YiT)}~CW}es(R=~k+F-AwfOIJofo6<)>K7O>9rJ&lGHk7b13tP9m zB*56_H z7mN%z9vDHZ*t%=TdHs#}sjKCI0LTb1k=D%HpB%F4fI+mLOqVf$>P4(I4IEi}86zD_ zr&l@U4!6_rtnPD+p`LtQp8;Ys6>cOa>l#Z&g4bj1odFD}hm zm-9Y(UuLn@?P{jE3)qhFeAoPX1+93F=<1nB#H7qYNQ4>r?vhj&+k6{-bHDD~{dnzd zJbwN#+k4rY8%uAy?0`q z3^u^+s3^nd-Pz!jR?SRnQ^Z+Mi^IYn^sQC&k$$b!pc20HZtm|pTN^<3M$gB-lqv4> zIk#E|dlv7&p>#DJVRnj63)kf;%^!wlyo}FHrJnAum+3IhudeDMDRx3H2a}QM(Wh@O z-nACVr>kCYDQ2AO%FS3DgZAgvKW%&`?w@4`qAe^}g;ww9uA0%C9V^W5YjImcm+?Pr zOPZXE6W*_bPAy1Fi|-$9M3v(+_m%24eruhrwFU0m)2g$S=hG4W8h%Edxt`kFWgENj zgsz@L=|jS;meJ{E4WH}h=KAWLXGl@q7@!l2^R@havuEzOW~L+kajG{GF*>K)>+*hU z<|#S5!}G0A!f5^nuk6cLInKVEakH7&mAZ}r^!=>QoxDxgLV&NeDbtPYnJ|ezp!`8X zsYNiVyi@hpN_jejs-KZ9mJ98e`zTk_sezjKS$5ZAs}7Py24;-Q)$m$LOM6Jr6_0hg z;^3(44jnNYrEWJnvwCQqFKf-bRTzFYiJC7i8d2u<>EiN;xMfSK`5x`_V8PA9mz;F% zQc=V2WKwZfRDk%!RA6{n+_@dSQemV05Y=hhM**KaQHwiaBXX+QoD-0n518K?mx`2I z^+3+GL9i7XyT%^%|L`~6=FNwCq_dnPUr&_T)#FEk~<+zD?n=}Ix_pPVso zTcO3Z)+(Km-9jsQlgtDxy;L%8!wN`-w|P^$R8_M_LAh4F20m)<1%ke?0f-5cJ}9(C z@R&5)ufV`qIHuUxNzVHKe#hyL1H0*uthDRy@@7d0vE$C_=c|tAj`NO3Np2UtbzB&o zJHmj0_3ACvnq*-B@e_ZZ{7F|^Gi!1a3#%vfzO;H#ykaHVx#X6E!zF76m&&A8^Fne% zmDOhYejS(dBzOI*SMk`aVwTmI8uxI83#ZnMdb3W`dibJr8OPGmoF;gqcJ0|^l;jo; zgKA|bwOLxFj@=q2#1G$lg1;& z+E@HbANMDn2=h0JRTbt$^5$70Z3V^9u}8B?rTGk>Gs=~EQRG5t8P-k7iSlLJO^G%c zJ4@RSL@+bjD!r9$A&PR*jwn>@Nu+xb3T>X%91%;Sp&@C|aUF0t`uOIDu**TBLaFW& z!je^GOi`cYHCE3ZM>=k2Q*UGHsA{=|V~MuLt6dA2!14mAL;H%>kljRdfS2W_jSx7h zN-sDncb_Pr`mG|`G|OC()BrhL8M!I2u7|bb$r38Z|!l?vQ3trCX``pxvY$eCgYQPs4C#9z7%It0RaE%;755vIC{HMPhaN zE9V?wE!$*pOdGCV6?o^kMn#bwW~ACod)BT!#V*MK&LNS;mDH|e8#Z*5Sib6I0*Bpz zNO@>g$Gm*+QmI*GTHlnuaELY$g>sm1Cn#R7G$E_TtZZf>*X)nCSkX+njN`l|{HHFJ z&e$Qe;tUgRFW=pMOt=Iy6JfUi6A`c25PuPH{wl*Y#>Xs>k>^$kGsT@AvPQ28vm4(; zxOh34Wq`h()#q&9BgAj;p{{{Pf?RM@=WRP87x>?V-Nz$Cj*o|&CaU5-%9gKi#qTE3HTin0PAhG0MfOY$BLSsT zzLyWdSgO9_A=A$&@M|cW>DF@zy5bbI_aN%7-%eOob6BT29xmbc-a0NFRki#7tnh3Z zifc7okeS5@+nyG}j?lcd*_en>)#rey7yZZjFJ}*i?5=Hr>wyLaK1_-ON_w*sjf2~BuWW2b0V;Gy z4a3W3B*6N(e8XKsH<3^EnMv5GNb{hW(wh07qLeCTU4BQ(#6S?qKe0vDv>AXugqj5W z--A;i*SP`0AqnZD@h{8M=WTzz-gU3P8&&4 z)W5i2r#O52(Yl~rP}HkR9cFE zsZ8PC$T2_&3cj&`2_pH9@Qeju+)sb4s#J@O|Oi4ErhzfmQL8%eXw_;n4BOX3>?Knfd20$6W+|iRt zU|^DHlU5S)lIkeSpw86SF)$)?QB*zlE0D6+a8<{}=b*Obp~ekx5GPD*GP@}C5obZY zEVdF$!iVOqnwFa|cLw;i!Q6QaD(9QLiT6P7F9rz{SOiA>`+W+vL!VNFI_p2uL7%Za zUqufsVLJH$t&uX_Zp8;B^%Ld!ClWY%TD4OvR_SMR7hy zmP5EGJ@7AsSdmf$L?7Ijo(NUjBrvL>IG<2VHsU+zQF3SpwobUI_XspzT5G3Xh4EBK z*bsL4MzsEKIVONu*GeJ8AXcSa8oV#x;4%VBj}~A|5Z?iR!N8^m@mEg$ecrg@+8myV z?yerr`o@d6Ho5fzq*pgz!m3P7nGsP!3o?(@Ai#O(h53+%+8=g+c&RIhA!UWRhn613 z5)LOhBjV@-?!t2S6`!eFi0{B1%V-U{m*m5840ym8Qy8Fx!lbhrHqf^R6zK-j=M4>l zvtRMo9%O|YNu2Vm-Wh2PNXj#?AiRu}6FPLd04L()uXs)T4q->7oIL5M1V713cjzDH z(N*xd$DPktk-!?ZMYMl5zKHizx|8%luL%T9qJxGagSL-+gQ|joI&46d;A@mw67K4K zZ84*zcPxN6gYwuZW+t)~A*D^~Y0i#bV_budFs#bF+46NKgL#TTXJp>rWFwYnRxF9^ zh95$&u}ED=Xb#^bDb~P)j6_QwBY8-7=|Y9MVG<&2o)6XHnA2m%c5l^aF=68ow-Jv| zFg^vR4JL1}b69~#>WeWYND2wp>$ z?wUV=5bYr%W(d=P#eV`JOOo=QYcD7DrR=Ba?N=E;+EBhK&!Noe*MV=0L3xO62a%?R zlwFBRD`9ocE!xm|VISjxNP`NNjm<-^{oM!$#}4G;E+@*?<5Fjr@e?mxS7pU7f<+vv z4Tu2#al7KMRI|=An>2wP<`{ERq0-S zOXp{gFHzL#$aiy?FDJ`xC+eGcMQrmRYfS)F>tu3R?=9YL^1aNe5U%hGh!>d|DV=7_ z+jj6~D))MB{G|NHw=cZUrN?&{aUZs{70P zA2xw_Wh;T!9yTtkGV;ze^^HZOXwTu#`IJG(wj?>{L>gSCOnf4c$22u#2w~fo^thlK96P~53Y<0V3yjpf744V> zVz73<;B{D^t!O*SyE@1)4EiDFCI2?a34(V|r-}rK`;m`mEs<#a2y*{^k zyYHp7x}>5Qd_k5o3PRedPzHKQWw-Ba==IRXfCAoZvb;^56!Uaga!Pt`}yXq6F45Wy#}<&CU8SFvH^90rj3&Zcuc}SH%b7?a(g8V z1+KIwm=b))0#mn|Y8J(eZpx+~RE>3Yjbj>o8rR?I=WS#2=8cAG;B&lfE)U~>!0bo$ z5Ck=$cUk=xuO{5t!+YwePY@}WkQZqBw$ish97aetvF*zHNf4GkTjrN4ln!%w#7D%l zVR?VkU^e($t()weqn5Jw*C_x>N1HIqRH@aI@Eq`6vIUH_;@}}hJQU-GJKsPRK_eU5 zehXsR0!jybrL}(i$|Z1H$8^dB*$cc!NHP%wKAdaL3}gBM`z$`mdA;Y(F0dO%@}B7S z0Q8-mKhGrgM!dSs@XrGy0}ozE$Ue#hDwFBcMAFy3@5&zt@o0k0huL1x$uI;H5h7LyWGh)W(4nW}}Z8$@Rnu+?S^ zP8j?Rb+nap@hgR!%68#BwUut)#2HYHcqQKcVyOqB3Upa@>qW<&N0F1lNP(~#I3Bv! zlrds&x~E|O=V&r{BY@jJ!5HEA(Vz0ok0O^+AC3nbX!k?iI5@D zD+4)HN_kPpG4pf<*HzM4XQam9@3>w9aH|dD7-CI1cA5|SS$gCwx+!t^s%7^Wk%pgn z`3bC+0Bosoo8V8zW!;ih3}nFNoUxq8ls!M|pT*nu{V%CkV1P#FkA@72%Z))760%pS zuWiA2J0Lzpu>bIo0K28r+Tr(}t2Og?8BG&bPX-XWfA7#EJ>xcA?zO}nxA7Tc>h^hk ziQhvgRoy!m94h%=vAOCTL9utkkKBvRV}yBQjl95x2t}u=g1+iU{1kl9@dCTISTmj( z519`i<-yN}bifPs!`euC*OL#UV#-(bM0UW-J`#XvwrEpBhYKgsYu0#1cn?~f=Rhiy z-rFl#98o0ODjd&6IF`eIb-<+MBG|>eQqM5PO?ih$lG$)TUm}b*Sl$S7JM+RmvtAg* zv)`D(_wF~Pod2Eg;El$Uw|qA6p=T}+SzU=dQ!XC(A>b4ZAST9Yoj^s%Ktgm5T67<; z#>Egek6h!~?@ck5lV6D^$__s1NQ5tSd;GC=SJ{m`kZNu<^Hf12Kmg)Cx|7by%z?JX z!clm59ZADzXu`VR?x_;lA4CVW`85-yqMt_T-o;*wdB1P5EmR`c^m-yIb0-wo59j z1Cmf2D1rQ4aVHAZnRxK)q+(l`$NtLDQQHpJDqv7|m@b+ z?rboEdgV-4<}PKdcll-ytY1oiBW=%i?*oV!1Q3SW8ej6U%!A*FT5C(xCpVGt*9Rxc ziU1&7b-PUd)V@+Juse(e099kVMtEk1%7A#G`uAD3!}^d2K=eTus+sl1L~Q>bvd%F! zkg#prwQbwBZQI=1HmA0>Hh0UdyS29N*0#5{-M)SDB~S9c->*p~lRNWkGS`{&I*u3F zGel-m>YbMy*$+HjFE}1|2Bn-6yFRFy?M>H}s=8+i`#}D|t*q-8%`+z?ZwJt)^TMS| zif8>W;1%4UKj;byB{1p=NgiQqyEgcSibfdBqHG}WtRbZ^7i^!p(15nSU^fQ#uMI&i zz_!rxZF-`kiJ9_&NGM+fz|Z|enDjt<%^EX;-X~P~fJ_yNey0~A6nzHmHVw?*?MdgC zLNkQ>rBsYIZkoV9jeb52HkO4_Pv+Ot}jJN0x*@rekzi!fag|6!@+QT?_^(gPHq&xZQh6YJht^$7IhC8FE6vws?<*4{tK^>d6bR z6wXU}q;Do2u$w|RNf*M2oM&9{$LsWga{D#gL;zYnI}fXB|IqSnVQZ)Z}D-r zYU~+aPjO$NgEzA2V|GE?8U4p0T)GIA7viU$RDy zsYi~DDITzYT%9Sv`E_CB=jHV!e(zJBr1sDL2mD+PgmV9TY;1+Qd5ZhNoxvEnb6LbD ztb7eb4J}T65_Mul1EP>6_g=Nt0ZjD(#q*ZAA<}upn%{9j0sk1MfW?dP5f^{}S%N9v zXWb8D*7R-s&(YPP#N|K|YdcH(`)A3l!0zqQM~X9+3B!X+v{hD*^zFV7@`N_zfgou9 zLhy5TuYdIvaepfh3I3xG8cx?oCvwSFOCvA!$2}kk- zz#D1Yxe$Q2=L&SA@5P9$*8n%i7NIe<7mg6z-#bXvQ||s|n!8|7fyBr(IRcF)*#NVY0HddJfnNo&}cN4qgdDNSa_m zP)I3Y93*hWBDP6r!oXhhVX~i66QwD>0XTgGuY6IOI@F}e_4%$>SYVZ>`(W*NWRx?x3v%J^RK8=&*S&l>qp3VOi4oU$pdl74bzslCx3^t zuRIr^3|vz&k6ql9*U#?R49?}`<(lzLjc@MnVm$u7?dXZ>Z&H68ghle+lwb1m= z?)&S($xkF{D%Be}(fT_u8p8c8`>xZSpZauwF}Tt2uYqd4Yh~*-X;7{H)whd{1|O}t zRev|JRa&zQ3RlC2aa<j#cc(GA(MoOm5}z)IaF z7d+N47YX33FKzEvg&Hb-f`6B^kNgp_(D-q2TyN;N)iURDYBH6U&sWB6*lqWmQx@xg zR*79t)sS3KwHdk4WD%R=>y2#75MT;m>%RJABIoRINIky%b{k%VtLo-s-3XjXGD4j) zSn{1rzrX)(z@E{d4sggvyj}H$-yu;q`*r=6k&V}T7_l1td25JVrF98^-t3ht=6+3Z zH&jq?CfBLwDj2HH+F&ZSOH#J%lP`ZGV3*>1ha`M>wuI^?Wr-iOZ5HtpO0on1E9JL~ zjiLXTGbz@-^X{HrZu-p=pfiGZ%XGN5DRsHm|*CrPlU~-}S|EU$XM!@cHH=@7Zm zO+J>Jj;53SLT_q*;NDO8B!1L~Muz_A{?Yr!@e4K6*_qV>CN-{?T30OCN$st?cihKr zu{TvQCv-Q&XOv3Rnzwq#^kcJz5(^KLI-$O4^Wt^3<-mL+9U9ljLCFPhOgLX{$v-Ht z_a-QnwEx?(Qc}QH(f&xB2jcQbNVhqw`{4C+EgSFnmFqELsq0Uv^zR6Z9GJ!2CFGah z(E{4mH>Smh)zf4~+U^?VvkI4p-+}D>_B^7C<0p3lmzN=t#)^t*Y3B}kem`0V@9op| z=M1YNW)y$V857wNJFt)fOLK95$Fn=zryCuF+4(&!Z70_P9u5}7moi#@6hz4#wG6ucg2oVoyJR)B0lqTr=eM(mhw=@yk z8qx5(0d`5Tc`{#2V^?9L=cL)Pdhyp(_SX_VlHKAap-y8!s_BI9pibkV7HU4Y-vOp+ z!984^<+m&emsh) zAUbN)<=|sfLEUB4)u1n4AM|O3H-gr!OV6*5^e6X&MqjW#0Q9oodp*Bvh{WD`2!R#V zN{WQRc?joo$PxjibeT8~CnTUtmkzT7nLlO!Y%`BkK_^P!_iP_8Sb&S>3>$6Caunuwrq8(p zeB|s@opEwWfTFs=IYC1OPL6=mGcCDkK#JjP3JevODlVON-u;t!MN?W@~V-y3UACK?djCP(b8X+FD&v+n-qhFhr?AbIt>|boZ46QK}dJ2X( z91iQ>YuX|?EJe6fv36m(6f#oAB>Dl=5N9dTYe=%+fCAHwyiA1(qjphqu`(*Z5N)#R znYA7otceUPxvUf|MhaRmot7*cTAy`WQmMHH4LJ%MSaK;Q$6P_WBuWS~FJlB2avb?b z^49rhV`Pe|xCN;$YR&`ax##u41O4c3ZK6I8X0Wex7tTTlq@ z9t^z=`vmVEYE_8b331sgtOD;^$n{T*Xg;`I1sRM7=0qHv2Ln&k%o7n!F(|r1IH`UJ zn{% z;{P?1H1(|sG;xHiEE{uVn^#f@9cU=|vWH|G*wD52em3PPuG`1t#5Nm|G^MO$HIABF zSw&>6aAFdNG^1%KFeCHfNqi?uLmNCvVW#Aus;7xb{q}pc3F4)Y1WJM!AwMhc+m#^C zmCNMw!z=Uc)br;#p??E<5DsuM`Qvr2Mi&gEQ+YbG&c&#ia;!!sfxd&M7&m)Nr&)JK z!=7Jta44+0wh~OzKugm`TqH|Uj?=7$_BeY_EgP3H(^J-SZ$YxJ*ofi)Xvu%;b!E)tNHYAO$nH8xaYK4B@W24gsWuXi#GrP8$u&NRGjQZ zJ~D`kb{v%n*)%+ef?}f;H?0oiEfyy(Bhp2X^SiNWWLCCU><@ayzgUvyNiXqrw-kV=A+0tM~`_`sJvSe6DJ}DZmNPkcViV)8AotwN|gV2liLFs(J zdu3T={l0-9{z(B1-R=Mag+NE+dlLm?*~A{ z_wW9a3H(%+2?#<${L}-&gnDhKPxtLP{r@PRik|k4Yd!=W=&{p{y1yy+xO_in zPdg6R7*ndlS2&xR2y9u*7^+I~Fg`QR6}YzaCviJ4IGvzA`@o(gZ0+PvYg_cXJ>1*q zA(kc1d9q&qOk`UcK{@>JbsqQPrpfZgcIbZ==cQB6{a;8yYdQt!8+gsmylm zf2&$aGCY8c<%6nZjKtgQ9qG_YxFphyIA#0$HClaUGXgfx_^uKO zV{7|)u2#;F1g?G<1`v~2OWB`OThh>3r+depdoKduq-D6~o}su`mnqAc!m^h9a|6!f zOr>dUkv3)*W)E-7qaWb^`wJ2t7OLO>RbU>0`Y*2^BBKBk0p_d4d}&7@iIe|6qxj&e zIAqvHQ)FR78uRTzj3Y*68K=gIqAP+UJf_dm$%|>Fqie&%@*>$^rRwJ_GMSv>DOY+- zU`0>eF*Yq0gBt0vbTv&lN4X~5OGQi!4d2(Q!V5G6cD|R@X29lQURJ=?N(bPJ1F}Ec zA6_3|#!(6W)naB_?-(&`BvG;4w$1{>digPBGf@(Q3bTFM~P6A0Z%M)fQsam4-LIvN1z+^B{r?_GE z;eMXH7L{ZTnf`l-^LCh9fLqk+r)#1#k?CpAB#7v%EY8>aG{dq47dOMhNnwe}C!?3d z*0+1KE=|YINmdlbsujUdSdwr=F>wIwF)iyn0DJ?Hn#` z8(c~^HaHJpLN3?>h;uW4JU(9Vybr(+Z+%wIzXF9Egh_tPwZ!M2oKOCH)!`FXTvJgQ z94dUyZzpYyr_f$+)-@JP8ns<-f5ZKt9yk2Wectkfp^@T+t{#ZZGGHl;*RRK@fp;O_ z+eyJgA)fnby_=(WZl~%1j$01CfMQnfoAKu~FKwf)2CMfR%DoljKUPb%M5Bh|0v>m3 z3xL^}@OoFhZ}Nq|eN#Per$DEBHSwpxOERN3o2wO{6`vHXW$o_wpi66`yP$ar(gGM# z2ypH0&x-bjIu~;M_w-jK?5fM!dM@1;wAoi9TVco3q8>Q&}HIzFD=pPv)Gnuu3Xgr$l|q-IJeHKOkK z$LOau%@uIk{dPoAVLhKAV&0bDOi}=d^h? zdHQ~`?F$0H1#T?NJ*O$jD}#&VfrD_6h$qBKF_^^-+bb@h)9TG^M6w33ZR94q29 zSdT*TX4>oo7SYJoQwB*Z`%n@EVaulJx=&suc z=ceIJR}qKN5rxA_NN!h1s~;}AArq^`(4sJ7R*42Y9=PXL|Ktb|bHg_GkSr;ts%XFu z8l}8*$FnoVonf({rNSdGWhSRm+l^8H8!L~o$vTU&9~_cgFp8OI##k_C6vWczm{~qg zGuLeXhlw6xI_kAfKaxBolUq8RbgM9Kxo?4cYp>4zE2N2OWf@me{={fSMbg0>lJ&QO z;mj4Vg%p{CKQA%CO}=xF_#MhgPifd9v>8EvQa+}V)^D#k%uMHd)95#ZVJ7(s;my2H;f(c>9F_p%9TsBS>r%1DW2-$Hc$?!8MF03fw<{ZTPF#ANLf88<Jfep1p;qa&6P>?{gKz6gE1XZca0RFQ@l z+EO1tGPVaNIc!@bGYEMCZbpF%q_h>-B&NA$P;?n918bu&O$LYIRftX${wyFY1BW5! zv2sEGfn)yzqhpLbhL#aRCh7tfc1Cv6B&2(Uz-H#R7J%X@#-wqH>^if91+Y+fyK053 zG>?O37GbH33yOj86%sS5jd$@N!>s54a>b&c{*M)%7liPZX))z5`KyBsjKf4xo;7r6jjD|yQiLtc94YPw9 z-zwbi!`v3wCKoPN=@=H6^8NQXnGS>)?7F8PTQh$<797QCc0$0jv9z0m=oYCPXK!>jAz?CO%ic4s;Xs7IRCh{1&0|D*^$(H9d~cZ}&w* z#6-UD56}Je>WP|&T{lyQ!igVMtdJdnSMdd29Az~Io{LTj-NH)B=N*X%T=2eMm`hV?>(I|+VcG8{5s>U`eG%0s6@c~ zG#lUkE_cU_&!njR_UFQ{VHfcpd&?=%P26&UJth9InK6*1Wgn=$rN?soXfserV48Q> zLS9qaTCT7E$QY%qKOGUC&tuNrxVx@B!q@WXyyf2dUBLe!!^_$D^L%$se~DmA*2mFt z_3fzzn%MtZKM~pG*l_Oh{OMm?hLGQWBf3X{Kga7DGpGGl;LZCOF|)se^`Dy43n$>5 zpSj!rz+QbW#R-58Q8w_so5jkF5)u@>(LK!n&c`kN&;Hu6W`vi)?NGJM0{4k9K#p=m zH4$RFwcK`I!j_nqB(Uknr9X8T4XqAkk^39&>lKLy+JNUzP z&e`fDPG*4FkNT`5YkAqRl1(0vZlCX1@Pmb|YW9DLK+y~G!*anE4L47(u;tgJ3=-mZ zQkHSK8E@Q9)j14=gSmV2BHtcE{+UBBqcz7dTAVKbKI3c7cQDOaLHsf;LN6;d=LAHZ zoA|9Lp7q-c^N%>be};kmANeA@!hMw=svjB%2oKSJ_KOGrXY>CK@w$HQ7@FC&f6srM za?zH%bM7D#wxhB{Tudv<$cQ=49&;puAQEc)n>lvZOqP4G(DXo?zBWgox!|);%~~KL zu#m9K{jQ1hWI!BSyvIieeO*YO!2atmU&18Alb#pRMPN%i7~e=ov(QX@&b?gAkRcpIACmT_Jh0s3$sd*7oF%!p!GGX~6lSw}{wRkTsn@EL1 zcR_Bq5@FuOhf6Wi!$u*w*bG7P_=AjAa5EJx_Ho$Pyjmm84?|JAMT$}~FG&+~S(THQ zuF6)Ak-bep&p-|n-@Qg(cBDc_t@-X}S}KqxM48HzlRMi`sQ?MuaKSNYC-=h-1)+){ zQB6uz*2XpWhVqrtP|5NP8@yOgCGl5|rMU-X5onDBNBZapZ5>tVV?tzr?c(&JHAB@S zmb|NW^KkltIVT*MnlCI4#c=XqMAWX4;nYBNrN4vLqC5N`$cSlj@K6I{P{y6P`WlcL z=b)nLzCw~QVoR2O!g?1(zW3ga7dtlSTboV9aIRD}nwkHo5}ll&2J4f}bHGeVIV!Fy zZuC6JK`WRk_rpxBqFC~`JynX9hi=1>trpWo0wqUV6L#jEdp`bXyXBK_5z*-`Gnxk3 z=vUuPRgQ?^;!D&h0efFn>DJpeT?hQ)FQo|cFP5O>Edft_4#Eyf<6dSBa z%}U&iWV4O-U+pa#ew}q+TvQ+_-8>@eih==>>N6wMMKEskR}y;6StI14E*%Vnu1u6D zZ<*#d7_?}}a||4BSGW*uYquCu&akMcv$zpow@tFwcrf`PFSstkS6JH#)T-@Y{L$&T z5|da1QH(OqKFTroyQ8xIrhPRn`}@jUCZffr!VNUi1;dW!qLY@N1e<}BFo^H1D54(* z%O`hzks>l9v}nR~w}*Ve5c(AVFlE2TE}zk4)cf|gnb3n%M`z-5;;avF$x;;6#WoeM z8&z?Oi{+7tCajBAxwSe%>ox3wHT@+lmNQ6LN2O<{Lm|caOCmoF+9%#mR<9`Cwx{vO zhQ3jo2dPUsa8iHHwLnV!+NBnkx=x`+{dI%xl3Xz0ir&)CbZFjuyKkLo z9}XR{+^M1Fv(rxz>fqX%#Fe#Nc`QIVtO%M0FS@TGV;#chx~`Eu=?|#~wijaI4>=Hj zKslj#wZkFPX(TL6KdcBXy@Cl4UWSoRhTv`IVKlg*sXhZX)K6Iq+=xiyAa;_dWO4=< z1l;{H#?aFQhv>OEu&g?^J7wr=WZv13yP(H+R5YrN#hKJ%Hm*p!ShCP3CQ3eyJa`8tvqLbbIZ zvZYa>bC&>#XhmUBN8By03Vl1=TviAD%7e<28R*;@G0{vyJm9@;g{i2$Uo{$V zbBE(%jv|P*rD>MsUO~7gqHyb*E-1tj^kvAcMqkZIX~K37{dp&$kJk8g zk<>P!{{{r*yMvwZC}Phj8f=?mN0Xz~Cj|lI!_R*p*-xG%dppWej>yVsA`_p$IleQZ zo_y>o1+tp7NjgVaN+>4iL;TeWZ5T}RXKX+fHa@M~vjdm^hGKMt&;pU^EiW>y2R4bi z+Xx}uON4k9jlG<*XA8$rQN4d^_%mzLQo9qJK$Z+j3wuz`-{(?}*YR4eEW;_NbdVbm zVb!?x;9~9x+dqj~ljbuRKqUzTcdrWO?RS-DI+Gbn;AmFAJhTIGM+~ZgMKNLi<_Tt5 zyC@}rSHkm;GX6XLkMM!QF=_TnP!ts}?t@mnt6sdT-dVnGRDOJwr~aPbNV?$Ezs10x~7>iI3CGTIXS zpqJk&$4{#AOk;>aW<8I{Awh2)r8ONm*dmr0!muO$YI$Il7F_jXI8s`EZ0Z3Qm|q5h-pB>#GDy5d5bm zR)&mQ!P(zocA}!>zwzix3@wqtfs%;$lYxR=$BX!ricE)rZGM*%LaVQ)p)8rl&X$ov z=!rt|J-iWpb!zZ_ZhNLDM`h#%5_(U+<<)7kgq}t;n-$gH&n=UgQ=@FaG%fk}TwLAS z*>o<6t3$_Wi;>j)+TROet@-nd(~i8uWOJj_Z_9+4cuTt{F%jRf3vPXN&{g}-fk_~T z|BvUZnWbnu{_A6jRGGq12|d|$WvTUl4*-Q1qJmx*(?@2acaZa6Py@}k+s)wiq}+E*6OnTfselywus z8rStA0YQn1cti5fh^@g}VNTm6t>2;fxy_&ByIEMI=$`G!T3y0=hPVYhB}3OTk&~c6 zY$$*5)mNj-LUuMSg4JXG1v*0PA5k|Xe}EhZEtx@xh|E4o>t1A^`X}MwOM?vloDDhr zX&4}?w`QE$OgrX;3*NQ@()K(x5HT6M;VgRA@Tq#HhSKqMZ~s(;NtpRO8-7;nP10uO zTw}7F6ww?-et43_y&)}vq808rfJ3;bds`y&QLN{bL+Ok#Y^u%y*kjp4e?YqpI7WVk z+sZ&|NECB6!!|1ah&3*!6314Qc#41+YZb{AtslXZn9g*_0r~Jhf@{=O3K1gd|A~MW zz&>x`MOZ5mtHsoGq-W&9+2J3o*S&OjnAS^Xget$Ymc(qVcaBB9b$RHA(v^eDyJTir z580iEi=C}W(6wC;5UjJO-I9&d*P2cSkie4IgTlQ3_J_MRs%^xbStIC_W6&U2$GzEI z1?4d?n`_GZ8Q(51vO%fKBx+2Gq=68$U70p6JR_4$16hXBB=Xx&)cEgLj8$nH+9`>BKHHfcM|E8mb1HM;j(&<>l=Bp~l@&BHMIGynuM#a;8$(tpfr@*KfQmR~ zD4Wp^{l^{$DD5;;f-uzeyK|7M0gUU5W3&ocaKZsQfMFQwBvl(!!%qyw)I$RSNy2figscP z?Qcvh{VBU2dp|b$Gk*NW9Lo9(wQwpp_?ynRI+hrd)Lxp9V3TEq7jGPN1-^GDomeOpiW8dsi@g?^0-{?}|fR7^=LI&-YgQ>aVi$!T}8_Pk~ z*8|<7>acroDZ|kHPP51DrQf<*gUS{MWS2Z3?GIH$j zj% zcD^^Qzn7O-l<%%LDq0m6T=<;kW$&(_=ljb8{9I288?`6Cn>_B{cE=*SS8w*Gvm@6o z3^?uw>S}v-(rHh*4Idl7=eeaD)o$?EZS)8Mm(o8UFUB>(44eo!*})A7&_S;{AS>ygdXf6C!WsR`@=30OXfj z8k=>edpBlVxVp>t$CKJUnKw^UOKHrln!tm8*=EOXi3{+Hz>)8Mb1H>+RmetV;}L1= zp6nKW-sh-+`am%6gW~PX6L&cAEctKUDI<;5EOCG1wYT6Q4zZ+gAV zA^u=sn}4)B99V1OwdncvEbBivY0(o{&PLM1>iTWH1{s;S>#=JO;AXy(wJ1GCh9+y# z2+YzQ7dFy(Pw61m_fM=nelc4JaKhLK@V!$gaZr6FWGBP)_c@4*YA;m;B94fs&8iF z(Dqcw&Y$7A1p3i$2)L`)yT0puC3;N-o-Lo-zV9oyP*o-;GClPRcfXue*yU`x_;;>! zGv2?^cYG|ry#k3B-iOdVK0sCXPAIkC$*J)Xya3Nr?-w%uGjJ-J+3_j;Y5LGmy1)n6 zEOkqO_FVs12zWIXzSbP=u-@A1;M=?8?0Wd~F5F&mnZ-?yw7%>%bziW>{XU-!t}Mv@ z@$~r0ILu_n=hASU;&AyX|3mIRkgFwuSG)Um->K{M;I;hUVmZnU1n^9yFFTJG@2j_a9^gxfH@#kAZnV#LRf;FO(5`Y}R3mR6<~yl$fK+wF2~p)MNOPoWtBM|=+u3(6GyYY$O0|7|*neIbFJP*1sBJ%_Z}49`y>zhaE#Ix&k+ z@%Zt)=9@)_&F6J$R@wW-V?a;AW#VJN)+69}e6+G5qMBw_ea^_Qe|H8USr1Jc!*@25 z`n?rv%qFE?%uyqj8k4KK)FXGUA?5f-@xDA-Hri5}Pr88-bUR1B!jL6oOv9e!R~j** zq%ffQZTNR*a@^qW83FdnBYU;ceR&KPBa3NNU#BfIoOQOCc@@gFZWbA+xi%BUz5lXygdf%RsqmJCm^$q)z=fPRz)3 zv}wq8c8QcnRrgNd^HyC1vT=|39l6?}gTsO4Mn77kIT`hPFQ zI3y+XtJp+153jon~QS4ef5Lvq2)GwHc_brmfN&R&BW&Jv2j1f3^c zX#>k#R%98DB8AZ6TWW7ujkST2dN2N99OD$$orZOH+8YjoI6=%HXH7221xXi>6pLES zgE{pN^FhZzT|RI1_THW;U6l&cj~0$@X9&&gSOIOFDNBV)3Ij2PS0@`H75dFYV_(OG zE=SfZoiWayERgvz;0OpShm|s4Y*)4Su%NH|l9=h| zIe!D*nkV4Rx~079XI1aBoGnH8AniqqkdVBf-7L0RpZz!K^s#n?;SW8NI$Tey=2$R& z)?rq?qcFXVGow!-G2uj`RG2Zla)rZJsrOSsE(lVX6ZrnBD{%Q(@;*j@r4FwgYsAqm zZ5FC|I`5!*#6L72qg{Rp(n?8O-EV(sg3}S&%Fl%I(+?j*^m1lScLz&T6rL!^o7pr} z5^h2a{-vzpm@QMvvh8IsPq4XC_0vla>Q1JPqM9@BUE|F$sdAO-=Fgc^kw8Q8(mns% zVsRz0&UKURx{4%De-Cj15-^2HSqg!f!Na)N!iMh>(^Mm(LzyO$N_D8K{veFdokN&f zyMOnKgT|%Ig;`!r7W+eHPS03c$}4)q;7dQn==)!7p&(l_GJYU^k8bZ$HP)>adHfrK z92W|@g3aL=5`S+=fDkSI;Db2O@q_l}qy|MnD<@ch$wki*e#EE%Ac#xiISx$J_GGq1 z&^W*oqL#M6?*;Dzn?Zh&0Ym&p$$UX4q7Ub^PsK5!(fSlSa7&W3-N*B%sR_G%0QV-N zXZ8n+$slSRnRP?KlbakGViQaLdiprNU85HZWUbjODt_@2Oc>|xS)^&+-%{;J>diTOgtEO*{brZZwB zqTenrAt30M!;R2so8lFY{p=ZW<=U%nc~gTg13_LT`C>`S{11K(4tcWC}9Jy23fx+iw{#%rSPC& zNkRsH20=F9p+-@YFv`LlcYh+CdEEh>+wY~vY7-I(g*1lcNtP(NQJZ0~BeqBF)s=L% zZH1%qMM^fH3Ymf9^_^kx@dAfv#e1s->5-ycfgf5VL1l#S!oss=Byq$kohe4qo=8j*BgUwnG(SbGv9NWa>}KRL8+2 zFrZqinS+}LSP=8H65XZGJICUBWnx!&628Su!VtY<6r^nAfc{)`pC%?*IEqhl7!xzV#W9qMQ$sBW!bxzfMk1o05H*nbbBGW4e@JlP z-b)`pK->xkG3!n+mW8){$fftB4Q$!`T~GZeS87+&O|5?{SK)&6sd?+PLrnjgT&V)v z?BYMImMU#Y$}U)b;qn}S_JE}u%M%7Zcdys}bY=P0jzwxBdMleG{*#B_Jx z$Xb%60_oMPl~GHx^c73eJdav%t0)|+H6QS0w8Mi0!HOnsbit4H#AgRnRBW2E?}T91 z4k=BX!roCr2;o=HKgecL1p{ZlGRd4FM{+cvGt|Hky#=Xvk(Fd}$}<`%I=Vp>^raHw zx(2k7V)8c>+;^U(U@D(lRu%MtH3WXMfanpA+44mZlWluQB|@8h$!@f)(06U8!ig~C ztnXq5BG#y6?}`Qi6bRyU=Y)>&DzL6dl-pks8cdrojdY=fWBn95iG&8Ni>M`gKV%W$ zr|E)t!LlS%0@WbAs&h*dOmtxt^XD6LJf5P^@d=8ULZf+JsoZlt3z9{2w=j2Ef?oK^(`r%9DZ$&h9xb4_bUzDm^hokdyh(^O)j4e0 zROrXOdi|Gelb~Xff^>pW$n+Km93ticCzo7^bu1n@onQ_+({@A@ec4kB+@Z7h9MKRL zzkRY(4|ovNtsF!+29J=LYFAt{l@4zRtrlGa7#XUI9CR{0r4lTWh^%vxIlNsm1b5vd zQ=>U?Q#J)pZuv=n9r(unz(3z*lI+a3SGfFGT02NN9Z(kF@P3OYg8XhIb6p8$Y5_2|^ zjqpeySEa7Wz;(gnf3h^Qa!R5 zfpggML~{QW>h8CsHF>dh@CcbGzr(O)hwxTpB;_j);-_}u0m5%QGw$gC1HMgqMzN49 zNAl|k(=Fdoqu!al#~ImS?c7l?3AaQX(gf>4OB^AG3Np?bvWE}Nz~K0pD7u#pOn;Id zB;7P!)OWlK=P;&yiw1PCx>Z4jHdY=5f`}}%?HL-Ze@JL%{ZJ>6>)=87$S$z>UJ%aG zxvk`G&VIVC_s-i1I;}1M9%aZn%OAzQcX;PW5N%i&S}3NyI(?m6N3OE`3H@wzddz>x z5GEK*9zo71C_`cf*;&dc5F;aGZpYCzKF4k+rJ?IIGlF1`GSh+(^6W&r8dY)QU2uqV zA_1kyzdU&EboI&PPblpc<)Kb2LZrSH8rhKU*>=jYZxc?Ms-W5cg8Cdt9yR7RUU?l8 z#vN5NJbylfYim-++3}`<{cuaAGSxsLZ4yyPiW-!{??!MNi|t-n!UVa^a9TB-c#2SM zB}u3;CriIUZ^+B-$e@*9go6#B!7XX9pb$%Npq{%l%;%Q>c&#=3WZ}`b41QmWxe{dg zOK=ks%G6?k)u&?)oH7Ng+N_bYEg(JH>PL()H$FocH$9J;kmU5B4bkQFKn>}wVMSLD z1?$?)4Se$H=a0;lClDk6PwKoh&+1vNm*$2qA`g*rwoFb{!+OZ8Q~2JPou9+^gfo}B*y%a0 z!f!uzJ#L9Vu0bApfUAG8Z9txnZ4t0BQ}OZV0Xm16zLQnxZk)>E&v1sL;WF3z6liU{u8kevF9ntvB`}?2`dsgdr#W@s z|4Ua?CJ^3y{PG0D&O5V)JMfq9Z;Mtf<-j`juaMmlDjCA0ZjpyqlMX2koXE3wTp-eA z`XKQSPJ<2P5NJ+9|FYAZgi}Gaymu(q#$y}adE@cq)WVTxj^pnwSi*=I%Q;fNS`>Z! z^DeQ6aPv8dh`UV793y12SjN53`rw9_O)~w+vlUnUgpriZw$)PXrX#*l$-5lfK3sY^ zwQ+MJO6I1&>WO!T7ktlmRiAgndBFVE=k)}%u%H;kRTLXmfr1r$Hf{Qk>9dv_a_MrJ zjBK#NMk*rt0mBu7XNoN9IJ7>RQLH<2J^ZqWQ|Q~6^xCCH^!sRgwF>1p+KLwizM^s; z%5>!*gDyO7VfLJY8xi-1S4UF;Pl^J~Q#0~#cPd>cfCyp(Rh~knHtvU}DG>ifo!oqb z%8aE>HCGV+u6`q18Rx&ISXJ_@Bj6NpG?_Dd>_YdT*`Bt9*64|5{4=j9djuo-@2~2j z+Uay%j2hYLU<;zM816+`570id`@1kUEjBR1XKoiRBfQ!u?IFrWh#M6_Sc_ab|G~DJ z&pzODo>uPwhQN{BCodP1ADE>(b8Am%zr6(YyPUP~hBb<*a%QaQzvl^AbLLOjRay^k z*>hYE^>ZQKjDNibAsXidi{ z?(Z33f8zK`6k^M+xUU3t`h7YdKWT$8?zjGTHC?j5PS5JAn*QxS1brreApZ-SZ-0@U z;5Q9}Y4H17Omf$Q46W_SP?7;Wt5J>?Mzx^>^F}!Jq$^d zACxDd3)J_DqNt*%c%K8>oKb_^f3ms+X`ToOo|d=#Unedfb9Qocy?2*|K;p`XatZ?c zxhx4mdhNijkd#iM{0ujN$Coha)NnpT8+%XQQ*{QM{zHgC3gKzV`Y3o9Gbb7qUH!pv z86d+=H$g1)8YxDwk9QBs!bs$FC}_+J=K^w|#3U3q44TGZrA^HAlFK*2gv_^t=@mTm zJIp^wDU3{!g?4N@Pf#)Kxed5!G=AvdDojJeuS@0%O8Rz);VDz<^Vd@q`N z8ayp{8n^jEYEu=SPQtUx%Gq}%?ZE%x>KtPOYyP+2t+h3_Tie#w-P*Qo+h^;oZQHhO z+t${${(XM$?kAaKl1b*xOeW{de6Q>JU_!uuljg^iGy23Tf=vcBT={?n12D!IQ!`>>7k*3_@QhI#I>!t$O=&u`dK}!}G8<;K*zJ&-RYX-* zzVp_;o~|xNhRq#FJ~`Fq@Yy{dJ|0Ak*SK<-##QiLa)XogOfe_nb2#5f-4hygy5FaF zHRxwNT`ZC5R(Q8R?xwujdP#Jye(GJn1@qx`n!b&ZcWHm*04{D9{*u(ETW=j7O9?zf ze#dQ;7wk&=9x?zS>DI6hnt?fDnH>v z{HYhHI{Wc~qFRh$Z5CztdLOjW5EOx{sRq@T1koPbXU!>_a_!__E3u$;GO5L~>QO~Z z@FKyP)(ze3Kuk3uinjFau|lTdhMF3CYycsQ|Gj~fJNA4!YRpvwab?6FoGqtM983D2 z7n1P5n9l-70ThMayUxh61^#O&3|;39L>Qbp9im`odb9i;1Q?d5VB#x;&Ob*jU)>bfE zOL=N9Kui#cXI(IH)`sH%lWPjy{UA`Py-ju+V8PN!v%`RZ~#WQpb^or=Prw&j8P?lS}oE z%$hDQ+6Sd%+#MrES{s?1E3Cb$r!f&k`HMEMP!yF>cp)^e6lH{JPMVMwZW%XZpw}JJ z(_o&awP0wuON-ylrR_CjV~>($(EHSg<3Fm{O0m zoa90fED;#Y=OE|r#FA~6GQ^CLeeB3)DNWg|3BEMdO3nO(SmMI5hENH|gJsB-jBA|+ z!qOrN_AbtQC+2bX+us=v_*Ej3&8uI%K&91wGZlv%6CbP5l>`9h5?as^ssE;o(XCrY z^zASasSSs#ky~TL3ezo)RUwJgLeli2luEzN5s6J!vjswMv3oLy!>Y zMM+eVlG;ZB-7oe-jHKpSAYLVYF560kCdW87riObl4q$Jz(Wky07I`Nhs|aHfhv8Xk z`M5){Dh?EnuZ-cty2Qwtyf~KXN36JzfWZCd?}%`vMBBh8P*Mi-6gN}ap&(tMdoz{1 zA4x`B92odPKLXl(4HL2whn!X`Bq>?ettX#AaX6h2k2S)Qsd!K3r2_$bcsr{R_!(MT zTEg63d=Fp=-_YLyzhiV7k9Lub^L6EM)me*_d|;Z)56X(?XOmc#^XW+yg$!e59MG_k z?WQ^UUxA6r47Ad(NsqD$WAAZsU}-6<@o|Zev_j!+Y62O@O=JhgQj0MDFs4s}@jhrn zn08CM>ZeElMnI@I2`VC6-fQlRkQplM{Paz>&kWoK-{xvA1~n}9oHunE|2Bn?64BS; zX*)4Yjg$)};f$|wUtgW)B9+3`So>uZ=t&OG0A$rxntyZfx!;kFgZp8v3DxzYZrbU% z+(k?vR(#n-E?q*o>9IUy0@bSH8U3VZU(bvYZ`fLdf)+e@_Kbv5Dq?j}_dQhbT|-fL z-BLQ!ovv{1rChGR6bB0P=0)@0@ekyheC-ozUa*Sh$+^H+`Vu)McwXiZVs3v3Fy9JP z0jUD^A}(&mZE`2mQ(Oh`%6q93Czu&;&GbX9hr`NN<_R)x>Cl&Mer4xutL)dt6KGCGnDu@rFN58SuRQY`pyv zv^2!^)$L7z=wO|};Hm{_F$aGLJk>Mefu6me+|X7lGPguqgR2l6^H8zVUnH4~nUEo! z#op!2L_sW->WfbhHb@hD|WqOYtXhP%gb~n zb~mz6EliEblKDQ*%}hIJy+v^x&`+SLeE#;4ie3vt3AIH=OUnGpp5HTDR3It1fvJ(K zBU$2}&1g$XssTxAh%2V}&?Iy@a!e2fshzNQ_x4 z%-fpKoeFi)M&J5{6))?n|1MF+GI2x8f)9#F?9lYe$fMs;{>z8ed<NBbnOf!GFPet(v-U2IB+#8NGksei+EzeXM zuf#<%sXLWWhvu7GY7nL;*cju`iM<0IaDp5G0!<)0YqI3XtPhSwf?h3vn~@hsdR2lK zIr-heQO_QMx|P%dt)SPl+I_{6lRTRxskbiWcO{BfLSUvcY*8U*jJgiuDX@1~Q)$sD zYmpQnhic*NgU0_F5^WfiT_JFhoHq{}td`o01+f<&9jPqJ>gz8LBKZFE9#XhWfu0AMrI;(7_S(JQ?*(=wA^{636SWvkZ zcd!F;tl_ZJV)|Q{F@`-06L3+H`vuQamu}%!62(DKz+B^Y$*GXgljNyawaj=kcVa;= zI8YYNho6NL0O76hl?~fyhX!_u$O2?eLc~lA+f$PwdqODD^*|yY7I2#XiE&xh1Tgl!hEt*r!;4t( z7Z*5T{P6txe432ZL?}JVcA0v!<3x%@QpyDmrc%xV+}I!N<3*>__%k!6U~D@zGtolU z3Bu`?MlAka{t;!hv6`C3FUpG*dHgbVAq>DbiZ;~-5g{3JdadFlFA#afI}r&Ec@&p@ zcR+a{s6p8p!i=nI1peS=M8)y{xu2ec7GloO$d@6fjotuR;g2r!x5BkZn;PrIu5L6y zDQ9q)lgNY8VcFLBYYpB^#EXEha+3f3uM9yYj01I!DJix6xGKjr6-yJBF#M#8VR0;E zMnHBR9H*ZRl^#B_DUO)7(CVd8Nlm67#WJtDJ%E_LC`h0 z#1oxf(&;9pklwF-lc0)yM4F)y528zh9DBRhB!6!eMF+>p&eEwC*_tZ}eK{a6Jh*~Y z5CNaOuJZW_O^c_tEQ$51c9NvS?;G1`KB`5d0r^$eSJqQqtmY_GpTFMp@UGB;IHrZE zPP8S&+-eE&FfdesUTP-o3AXqzw#5ZapBkEhHW=D=GNfUepT~A?ge-YI5_$0=(a1wB zPfjpjDH_bl>;xQ&rv%;smtkK1#{|L-TD6W|he22pOugIlB4lM=LrViWtN6MK-^3G@LYx!zo#RB218V%C@~!1z@P%X4GSe_wb_>d)pcMAI#DP zW!2KL(d`Qi_VM%x2Is-zX+G5E<+sZq$jY&`v+wngEtUMliR&nO8k(R6vXcCM3zaHM zI$jUWy?THB2&q~Jq$K07r`7b4)Yi@i?k=sj*=i@sx4%1N2oS5dhW+^t>tz{6@bJ_; z`KPQZ^Ar$5;`GF6pO?Ob&Xg;gQO5qQSK;YTzJJ0Nox!;xk+)G0XMM^*!F~+CZX*EU zJl1@`pv|3POPnT6Q`;5D*7h4|1Qh$&S2O$0FwM?-ZT|Q$yGWBVLuYWO5f|)C1HUQ3 z`F`ZyPbn8(8Zt}_BN2F3xm2t-g zwp_g{FlP915QcBqA*Un=QYai)R@*`9fEI76`eL)&G&0lQD_Z8mTLOn>x!u?^szk}e zu}ZWgJ7q^fw%FrD>9AlZ0gweoctXzs-Mxc~3?sS&ee*0q#aT zNbBj&Ec9}xXfn#(4(-eY4|t1l2GHH7`_9=Vga;;snc-}q*)gMLvR{L_c`yDjrhf%d z)6g?nBWT44zyopAm&XT$^Xsaeo($>}26 z-MU$aT)g^Hl%@-LfAE-XXv{c-3!rgeUmn))j2eX`SPPZknxk_U^p&$LE}Ed0JI0nv zb@ynSM`bFu=7F?suZ|B_BcD*)`b&)~g~$IRlEsd_&L&3m`>$}HpT8s9QC#7qUunfW zS=oK(w~UBU?+Sgn2=;A9bp^bN6Nv+1x>_>ZVp2OHLjT#dp}PWVoZyn8*g*4|nifd-v)VMjTUrXjN1%J{EN!Ta4RHv(fk43WLj#+#2 z6+Oj*zJ-H+DA1JZbl<35(Ud#DWkx9LUr!CBn)bwt)^7)@h0(mnca8Qcy43_0y(FP+ zdt+q2*fj*|Mk*_UNMaxcTEZEDK{TqUT}hN%!fuPe75a=q*lB)ip9E&bpPSJ7P16Fq z5G+M~C&j)2`5=5<{71v+Zliob&eMKXLoXsdIyTvF)=*|L-}%gW(`a5W;0l2aH8`3# z7MdgoE*ej?#-<|$r74au)Ad~Mx!Imy7@gPnZf8vnX^(v-JEF87{_YtVK3N0o79$7u zMl^4{V^Q3^)+0p~@4)^&yyhENxO$!Y2O%83;kd`}o?#+hDp>4N9b?P@-g#U0%eL>U z&M{BgOW;|Fmt6r)=c`Jv>1ldWlvh+2Ykm2%`YV3AY4Qxa0oc*chwtrPLuq`QH!epz z*V32mZ+nyXU0f$wohLr${^YV|`0M>;Ojw>?52%sk@7OAt8vu&dTiV0kW4QI|cEsjw zPtGSLhVAPGhwRF;$z;Lj>TPf3?dnNgkw+VoG=AsxQN$1iI_bxNyJ!a6(cEaJ=$)Zq zW7fsy(`?P%gr<$9*Y^7MmBORtX{KiR`iGp?0ddUA)Z5?Jg+|+s`?hUa$y8UHSVum< z*@^b;Gi$@`l6;K!?kxRwHWJwT zY@Gdk8)|Wjr-wL~sUn)OZgkXM#KDst?WV_u zLutvM-lRo3ZuQp{UGEpvO`m;%MWMje@;k7`uHF7#r;QJ=9L+gBgb2&lNXG4k;=dmY zU7k#dWHsN;riL`BDB+x|j}(Z=ZIQoSzrboi`sq9?p=`M>1f~ z$#WV4!^w5!)lmqVSB&L?DjRqMoO(T?mH(=GGpWwzK@oLf$# zm3z$xiYcaYldz(nmJtwhw|WT>bB=jEyG3;so4s?6g^?+oVQ(0jnX)=zSxx`$s`^){ z-yPXa>!|L{d;jid^9)w!X@qtzD*)VzO)m+lmh-MHsC#1%_}oiwb4bR?FX-cXVT>f7 ziYL=ZbE`1|Z|9FcUvT0#QYL?N$;$~b3ZoS{uBZv%n!H#vT7;G^7|jv04kFUc{5H-e zOZiJhDGg&Of3=WLw9-%U&faNJeFzvtAOr{3JC%~HXGxM6vM$QTMW3^)g95B~x)1ZI zv>1j@N=8C6OfkhM%s#*845ZXQiYDxYm;tc`_=|o9)DO;$*?F@~nY+{aI5FY4mgLx` zhEvOWV>F2O5jDZo;FR2iv4Vqdp^iqV#G`tQ9+U2byMLRB>xdkQW92~)Wo`PxUzB~` z@j*a9K0h0xrzFwrarjMn?g36%=V7$d>T^@aN6m|cXaqljBm~^^vGFrkvqp21_sMXY z`H9E^azq^^3L<&GY{BU$$>7{vf*F5d9Y1~~zidf^?^I8iPum-t$H()sH&O#O7&1RM zT&yjuO3Sac%JTZVN;J(;sLv1d=ar;Uo899}DDEEOf+Q*cxu)~{3qTEZJ|aS6(wKfC z-H%$|3a7{@T@V9yuUCP+=-&}MPkO;P2Nkq3WU;+(82qf>UrBi8UJ6w#!}L=#ZZ9oR zcw|(y)qSVt3EaZwF`f(N2^z=ox?y6xt7Otd_d(bx_a17Uo1jOpZQ`t_aZDBUJ$kOQ z8(E22(xLt4^ys)*V(p>=S&sr5>v0m8jLo$ns)nwsA$v|4l23*q?jbC zHJ)}jYQZ2dNciyJ@Cw~fn9$Rptf6;$1W?~>5WZ{7V`6fk1j)Nrm<+ZovDi<);m&byk|37 zKB(;5|9a-2YOl>)Y4a7oThhUuWiQyY$@GQdY$*!hEi^ZYtLQsDlet2*>GuwYKFRgj zHqcB}s`pqV4>o1+H@I`5js7_ekWX%C86(a-P#uukiO`s{*Z5I+*w94fZe7Jol<|VGo%GKmT5HDOhRQ#|AVlc<90B~H zDD;>39ndyS11OUelYeIq9AX%J%85#?WV-s!8O9Qzl?ny9hli1RCZ|^4z_7Sf9BZ!? zRi+&wnM)HHDpTc>gbf$xI}PbnO(m19k6RA3!0+Y(?(KU;AnBr=)q*`OFggPb9+EW9jN$$}yPTty3k~ zx1mdaffcoZFZ^sXD~31*RLUd!EC!-4;IV=z>RbF$=!Q00(ryuQ>SYYj4!_C1oQ8tP=ygrnaBS&h>pi-1SEnpCNgwk{0CaLNpb5jrEOav$JJ8JbWldVA6mjYoNXw_D9Bu zcBLo5qMPdnZ-IeLF{)Dt8CqmobLrSGS!eNyp_9!e!VEm(VHZ$w3*Q6#a5@EN1;29= zm2CzpKT^1$R!N00Boq~y9#{rS&^Uu$Atmgq{5Lqxg13Nc`jf}pR z`Kx@jB@+le6p0XLAbd02&-nUVmTiN6yq4VKA3Y?F_eS(@qk6Xvv!)o--|5cHxfZoYMh#UFJN4M!T{dMo@=fKHWP+94O#-~3pg(k5C^zNIX$^_nu{=il z^Zung>|e#Db$z`1FI3gLMz!mgS7mWsvi98Xfz!hQ?VzeWT8TLfMuCKIk96xT*k%P@ zqyevW@aGCG-&{4ZR-;U?R`JXN+-R*pD$jny)sI-(9g$7ze9kWyR|I#eRxWTwS|(X< z)^pl`ciz((HIAP~lGlniMiiSV_BJkTyU?~S9_B>cT&np(RY<7S_1ZWhk(rr-E$EO` zFqqu|H!M0vcte)WxM`0L9q*uy734)UoP@s)zq8og$sJ6WSC7QZ?OLvIzKwoZjVwm9 zT1aa!k5D7MWMucSM?d;mYWr;Z;QMu2;7%;{iFrj~;vjlZ-huD{qaB}WnP|fll(CFV zGGxOfE5a^uJVx}4!@RXw@xzk)$~R0YM8*#E(c{sE`@cAZW#X8PGSi94I9@+D(O$^^ z`{i`nqpr>SDv(3NCh12(VkSWq!5{(?QENhI_-oJ0E~?f)ziyyBG&}^+rT4uUB>kjq z#w8j8zu_RjQQ~TNR(`pdl&4(VJSq^{`@-dp>9<)wgFVSUp}1CxiQ%+3oML+_qO6H~ zuEgjVbUmg$dR|UoPqn}HOj<%`2y3pTUD{Idia@sz+&lWU3hDhOl?@P`YH5@dxR3LVWctvw#5Cb#b`>_xI z*O(7?yph`43%Z zS}w&(Hk!K_6nx7g_Q9HuE^q_DZ{8`AU~s;!#hZMfJ=YMVBy%}QCUXX6k$WbsgWuc> zaleBrs@>-+>Ee~~weMH^jo0Nu0=4b?<5qSCUPHW%-1k)x%bqg&T4>zH6|=R-)cOH%S2tbODP5l1(ZS9cW9s zmXSUjHtSSVSGfWKJNXks`J!?L3Ga}&<>1~#tK5fl8*@Hy)CK@f*fI&NqN7@K^;w$5 zxDA@HIbAfqI?z*JN+5KnPas^tC4*zd*`$tHqV^Q6_B7sTNqrq)$hBOgq=tp}2U`Bg;KiRW}BgrXt05S=xXf)9!CgsX`ZefAsZ zkpJz}b&%7xkS`#blCS3R$MJ`J58ePHG9}B}!V6fWXe={Sn>f;Qq%0Ik2->(a^Kg)$ z_VABo_$|@z+A>(EQ7^||5G~fn5Iv-(exY3!`jlLMq@6iVkm&4VURS}QrQa!0))@HtiPa^bM0XqIz%n^@O(3KQ4BKy$>7Zb!G z)@GlG=|bv+PT4!q!b>gMyU*lx%W1>^9_69ys?8cq5Rhidq)T&1%)}q?uz;1ir5EZ_ zLK1haGjiwT*Kaxu47^wX(hkEQs3$=HW1}1acsL;p$+xcpy9j}#0HTh2yl5P!t$@I+ zqyVfqwD?+m{+ej&c_WGS%c`~D+_??@@y9aaYsP!^mm%gNe9#Zg2Q#C^aq<(GY&q%- za!w0w^X?qLTq1kDJg-V11H3vH*SvYRK912nSro-pEmKk}(9Xf;(vP${QE-|pkI#Iy z$)i&r`Ll$L>KqA*doDi* zNJP5dUA>BBLFmQ>AQYD@R);3)pf8NLB(obbm3w+ zVODy>8ug*SSX;hWggH<7=S4IPcx>sYP$72*GR(gn%qBD|TuD z*zuraYk(Scbg4qu4DPUOJe)OZfmVkeb;@o|%1Wp-%a47p#ko=!xtiSkI!{Y2ffPnfv7a)Qr<6`T6HkA@ zS^Mjv0~V4;pjo?I-?zS>Sutus>&kz zGDUTXXz-fz#w;k>E;>k?cnC$sU{UL5xzimAhljjYU|!ItLYqF4w309VKBgiV=ViPI zG|(~>N?Eb^`Qu~EFHm3axhh#pStVC|)VCqDlXY^zcjqAnIiM6?VZ zwN<)$k{|{g8o7#B9(-;(FH?Exct%M=8X|T^%qe3tPU4u7bOm*x`)8!|Nupj%wvBw^ za(Ff;+9w}rzQ#9W1y=AhEG5zMWQ<4{Hh{V~2}Uc17%d_YdC*Ei1wI7!S4b=D-!^nU zMPr2JhByx?06 zN~3;V8ey}?b8k{{KAV2_?`iN8o)seu!4y)`$4WV{pND>rWLa4g{}}#oiPj0Qg8`m8 za(tFIDPmVv!lFJghO9r2>KdlGsY@#k>)x!$@DieJ8bC}F3kbb<{EXMRlb@6C!*BH zMKL%>;n@H@22va+ZtrIg#V)i6qhLir^$a#j^8fs)_2 zGAE^aVP?h8IHu(gZ4o8J+gbjYEPvSH8h_9YFqkwYd*LatPSFDM2D0f>eK=R@(ETSp zVw-sL^eJ9+^@nWaPL)!{%r=fW!riy&qs`hXL3C>AYVdq%wl_b{3=t#|)gXag?nUPH zN(AJwKPJL4H>9y<-_Y_VgyfU{ig~jx(r{FWLbe=BG@f$1oNADjDLVhPmQqJQZDS9 z8cp)=P`$2=eS3;Q>@k=q!|%NSXn_0{=>CN?0)Sf zd%jtvXsx343S@c~tJM_B9i%YiH>mlNm!KxcjiH^es1;c}EgmQH!zp~@@CX5CztSmy zr-Q+*EqBU7Dt+QKuNH13)I>|mMPRDXt^T0JJbjBp6tJJB-uYbx1eiO(kD}l?Nw~=+ z+9_0%gsbKP86$BFG9EO>ASBo{ls$_vL{=AU&mI(&k7|paG|NTm61C;7Y6`K&{(7!` zZs;$UjL(oiY_HTrK&o?kYUQi%^P$r`r8|*Bu{(%<{zkSAM|ixEP91AR1ji;>BeT*K zuNXS*5Ph)0up*uYE&_fT-AwSWoy{Qlx;Xl~gy}uT5}5@{ccO=Cc5F9#^caJ*i-X!a z`>m1q_hEEl4VKLSStCt7ZfQdfpdf2MX&&L&ghH#`yZ6^}nl}trE^5-jt}sSwH}qGC z)Lo$2;P=|5KeI<%yWN6^956t*e$pVqG$x?w-&T*f3fLC`L$z~;&mi4vBx5qc#%V?? zq|4q6I{q-RY)^C*NtdCsSd^>3hH74G`X1-Z8FEL2_k5JD;p3vfRdQR7|ob8C~Bcdjd1=A))-)S(98WVs17Hb?~{!6@<;1~F; zG3YfR6x>n(7!pfNr{i|VP)Ea0$WE`LTR|0`jq~y*{*yKP>n#QMT@A*Vb?e;J(4JQY z+e!#Vv^RMJk*JvGW}-P^y8R;9&k5S|ug=Sgjik6*&hOP#dx8kU*x(w8s8=%usA#ye z6t0*sbtfH>vlt38u*tDFs@VE59_FzDW_q=sIaPuZz(f7(l?%A!y;ZtdH3_C2*($Xf z`n#3Dg7?S|`MF)4ZX}F~!y*O0 zFT|1ns{$l^1>-CDn4blhR!OoKzC-&IHI+u>BWq|Wm0Bd)j^f0=GKEUVmug6V=q_%o zN{`JCXfZ!w>$NhyI`xbArbpcW-tqQF06P=qN0GL4wS8e7hnpkFv7Lt6l)!8vZrj{P>_$%5&Ym?U{8lpr?>U)SB0eL7c3Z`UoIY8boKk# zhDZBpMY2txH%M6B8{5B^Q+%R=Or39`m!j9o~I<8~jluTRIor zGOt2_qb}>SJq6z5{|4h6WzEh@Ni#qM1251Kc7VA&!KePD^a`Jq6^pn!BTZ+kEC8(> z62I~HTk1$w0HUnNq)uR+EL(a8TDeT9-2-KutbqM2cCNVX-@=kVoAioL^?FcxcKH3K zQXeevnGexb-T#guZ|eMTNrVabOm9qcp2~yYzFHRuFNtp!<{87?W$*_a8G!dPQ9pLK_MXTfR5^Zj*EcS#W%=C*}r)@BMRBRsDFO*QH+2!zC!eaUQL zm(UL=2H3x?w$2&uHW+$*2njXT~CJJi{jD@F= zU<%@h<~-eGl$pU5tX9pRMP|h^4;?ciV50F000{8qb*5-TX z9S1di1fS`P;KOt%3`F`~GQoOR2Sk+{`hs}j00}?PX^iD2q zS?};yZgrTpbobX$=3Rq?B-_zGUB@<58QGe|kdkCOd*Gi~()qGTtVpo@Pwx1i18BV| zr%37REQD_WQ4b$sfNYEzffUG2lJ}dcB6O8*@HV_CYHt>iLFhx5uCPcI6;39|-L~ZEpB}-<}^=ScxYWPOVX7(DA*-^?d#dnodWTK+!eZ|hlr$#ZV44Z^T@Hp!i^n9VvrS@&aGI!A2l;#JjIp6?nyDEM@Y zXnQxpcYH0`*m=M*+o)XkPqf=Ym9a%N$y$^3skA@vsc)!67#S)2hz}FLc`0nZFb7V$ zmd^17)@JAV&JG`c*Js%9jjW~ZYfHbFV+P-(+dB%>gtOh7YJ10?lew3}n6^`HYQ;@v zp6+8T1t*fdg;J}|SS&@9#Bx)d9uXO#(q4YC38?3?vRLeW5Uu+MUg=i*D&Oc<1uMNa z6U09&$biXKru#16#=dg^*E*6K4p1e_P~B)(_$(>J=?ZxGv-U}}`d;}4y6Ro|mQEe_ z!ECm+{!#StRipm=>_~8zLlZ?CgxbF%l+RJ(zJ@N~WuyVEL}twG!|@=tFwF)EBG(yTUnWeHufP z)E6=Vf?L)A5CKfT&?~%K)a1fvw_cLNDWlXE#(RaJ-y3_NZm}BAl z8!_){k~*6Z;e_j1cx;SqfPBn*0__40m*(lq(`4V?(d-*uVs*j6<}l7)>u##MVBFb% zF;#ufdAsA6GGE&wUEX~c8(&Pk%W;`$C@J|p&C=lv`}Q<*zO`}S5OA%VfX6{;zTJrC zfP2{N+?DsNZHZFd$WV@wcq?yg>FJEB#Bd4^6B zmNm0yb1~U(8;rP?Hm$Q}#&dpgInOqSbWf0NZz=kgUCDRB#Vo1|%f;OKzmoDJgj- zpkf9GHkqPVbYdm$TKryvaT(PV9n$2T@LHxm8a&KhgtCPw zDB`LR%To5St=8@5)ov`1Pirl$_HeQoZWtS*LfzFo0g}){fikGI%ip4LKqu21)ZR+_ zqbbFz4Q3m>hGN@k@@*?ulqT6?qpF4#pT-Z1jIB~z)fO^|zM!iF(y=q@Lo-u^1cs8Y{wJf>&#l%hg=q7{xbsN+yZ=m?Yt46=i z@0VqNAR&|=K3_@Xo5_-^v*dzhZqnuEbv>J@g8Xg4Ry^$dzLT26lQL)x%23x# z{I2iA#N|4VFX)!`{El^ZGLem?$~NnI%DZA!_$f@B7w6B5bQF7R$#v_(a!G+T;YTt$ZC9+&y5hD>}*rmml; zfTkf13{lsMzi9>jp1#Q)FEgSYp%iLR7u!=7X((Z~*k!ed8znHmFEvs}L8pokX84E3 z=~KCCz!2Ax3J`U|>Ja~}PmPcnx<^}}Y`0Rfbk7(~*WWkBJ>t~0MuD);ELRw#+BAxl zaxm4Hb}VIo)~FSKEscDTUPKnE=*ivFT}XWgAT3E{x*XIR)d5H6AkUi55Xx0`t2?nlt@f3Kq*?E_XhzO6CoT1 zAjr1=2l2@dAFWqH4MO;e!|R)Fj|D}Lb2UVx0Hswht{eh-HTDBP`h2%fu|MQ5(4uVQ z)NCw`Zdkq^;b!m(JM_vP=Vq9$?kYRD3x23||KKa=%x?TEa&G^wZH{&!E~mkZe|{Zy z3B@E*1BzLn%Zj&gw(^VtYT z`Y0#z0>qV^DICYhG-UbB$L4yPV!THi1IV6$ZKq3K-P7dZarvLNX zbtwI|L}UCRZDP{I+`4*frHPn}OJgCMkq`<^B&A73;Y_=l$vtjjTD!55Ass}bd9Q*N z<%gEPPv*ytNOZS9kVWtTirgORab?BCC3%Wi3>Nixa6qcd^c<`Cc%l0(TSHS_v$Kun z9|*{mihk>$9rl;A6-bP=E)!K$z#Txv@(G7ZR)sh>?4>0|u`YHMf zoehnOXMHn`omr>7Y@a+IyTXAW*{sVBKli7>_GgTXAbge%_(!QHPL|W1J1?^orh4p7 z#I3OiF6SrlM)=DxIKDBJIqU8!CieC%x;M((LTrJxgtj18gVErJ_;u?S?CA#*xlpKV zZA2bLzrr=Y2jEW3DTgO-4y`pS%|a0od~H6hooASp+#?INb&MisZ#1S^rFPI9LT&IO z#;x>j>AofDP$BJ0vOyu*@k9 zq{0m)G4`H@ZTw}zEq8#|UmE1s9LDuKaj-PgzTfZw4jSbcA=05A_Vgc{5zB=rkBm4{ zL$G-wILt-1KH2>8!*DIywu^)lTQW&Esn|w5&cLsb{y3alaJMKV;*+2&=xb4_oq}|8S1I>sxh965kGe?f{9eO<4bJlcD)>TD9U7D}kS7}t2n0M)plkTRI zE&rY-Nsnslu0E4sKS2L`D3)N%(B0v_0_Cb{{~zEGGfDghJVMf+UKnCPqW-sLr#R9N z1%}@sJvn_hIdhBpT(t+p#I`5{HFcZBk&7doBZt*0Axq+m;%Hpr#=tVwg35ub>WAOE z4kEvw#!96z`pn$i<=acgQkCgYrRS387nu~k0P+&AJgJBW5C1Tec}e;F+RC}!MpiX+ zrBz#5@}YCGoo6%o%taLlJrGC#%oq@;(7Baffg*z~@H!G|RI6)~Jb3vh)FMCnIDHZx z{WFXCyuNI~VIhe+$s)qQdncc#jU~0ovc)1tfj(aHb~Uq&a4v|53qM`3lU=jId9NrM zmtH{Hon8p@X5z7$))w=;Ra#}SPSNFP)2c=vijWd+AdlJWOP&AaOz>)4oufb}$W5e; zT!fo*QO)7jpb2-CjxU>AX|)BVI&~=-tHh`)7&(P4Xyq{nqarF@@N_sB^|jDi4l668mHj0YU2JwX13$5y4qMOj!1KqU0tgl`(B`CQGRVsKJ%n_ z)uKWEB!IGoXY(3x@Rsc^C|M{AoXyAVnp-uh;YK($)v~nF=#*P9;deB**bEVvxu}&i zZd1CfR2oBX$=e91>JK@(jwFdV9Ba`~t+en@K}K!a@fZ7fBx{NozLxh|yD)3!(!O3S zN!}5gFXxvn(5d+05fU&a%0v{FeEaP}i^KNu@WH5T1t%A%SQMyp1UlAg zYk?%AWmo#KUFVo*6m9DPTQ?&?PE)+NB9(pcAeD5xIWz`gwd!*-sYxLnfAm}1d=_sY zm1k;GmvEeV$g?}a{R<&S+|(zFnR2xKCn7BRz-TAjx>T&@p- zvD@~lIdky87hg*we3d`!DoF_AJfnxzyWLU%K?irHuP(@l!mD>${J%A&;*5dokW=aCea}+P z#EgKm+h4;U$ zU(zbp4ogpek`AX$GWt?l?;X~a^JLH&ulAu(O@Ejzyeh<=(1df|Yj8~)({>E&=_r^& zX>VGEmAyh&E;tuDdjCgLE(Sar;R4pbsm?{9691FB`LCo{Q+qwSa=HJn>Jj00Cs&+{ zcc{u|&gG6?f6!2v)?*k#4>bk&dsXKON#H?sGuK@i+jy_Sg8i5t5gn?+dWEWs5X=ZU zpMSy6wPgHfUJt*4-h0&(nue*t=eyHRJZTEkoh#7GLJmV9_;qNWALC2ZLDh`JdC1&q z@=%|!_yU9XDQrPNh#}LX4w+hL$TSckCK(v*489)As~Mx>uF)%^?Nd?^{Vv`-j(p~V*|Y#~G? zu$Tb9E~08MD%I;!{jj#fkm_fYFCuanpJ`(e8J8#Yxh5|LHDLC(DVYB`3YJ7UZGwu& zrErJPz20F9fNq~hVK?*~@;Iyy+p;3g4R~qDNUX!lyu%jyJR;7Q;q|iF0L2R(FMo6k z@f~T!H(r`}XqNz-Wno6i@DuOLZYpTN*`HW%ug@YHhR2Uho zhEpL^O?g3;#D5h3BSdYeBAh%Sgu@m~p2gsq4KB9Cr&TnzNP6yHmR3`G+EV4ja3Pb= z%hS=B=N0J?p7kAunf9B&%5+nOEq{Z{$Yy2$5*n8~Y$<>W1E>`}nn$DstQm&w*ZYh^ zalQt?teFMI;%oFRI$zT#E^*VplHaH>(`6Y0%MFrc6(^EeaLj!GM{xO&R2qKWm}2hD|P>x7++})nvn#?#9$(mi}IB@%^IV65r0W%dNufS zqpSW5>V(%}hO}TcWUX$uU^Q8=T3T?EwBROTMufi~jOR_NF%j@C_gSbu|L64zyw)s< ze6!+^+La=G!F^f&U`&1nU5dyjfub{d}G2-+zEIL$!+CEKFT=xMhjm#H`EMuXT_{nvfYQp=l#Dt&j02 zDv6E=w)Cw!wqquipL+vu=0 z(7$O|VVmN7BV604T7k+iyi3Bn97;)z4u_gNRdTvWc-n*qU)JDpDhOc5$x4B#my!fFs@@MfQOMH8qYW;%((K^38h$m?PxK}C0%4^|X* zi^JBz#yBvF^=MLX`Xb=m4F7PPUY0u7L*_P%Z&A0Xd<&vw3y=G^^34j1YlbJ~r33h~ zF8tfTvw>M2$l8pMa(}~M3)pEhwmK{VMYm#co80!OPy0-&yQ0#>U^r5?1EcL%*V^s6 ze`SnsN5CgCQNEr2BO(E&jXsS9WBgXRv1>usjR?L~__w;Du^ooGPpBT7pgVz$7>w~@ z&}VXSzALje!*@|23|Ty_u%V%hr#6()j#_+IZA%SHV}Iibe}6CjlRT-ggvhB~Kuuvu zK4zQ|3G^pP*_?z$E+me6Q%4Dj&txmYZlPWzNk@>wV%VhnF~Hv5I7bV^?`hBIdvNLt zD`j?2{nOF9q!|^-I55$-@f`|FfkySixg8>EieyBD4x{cqZu-icc@8$Cy{~sshc7HJ4bz(a?Ax#XzA|WkQle2CO zUgg%HbgQmAYzVaPP^6MWD$S)gcfy-YyEhr~CNsyI(2O^UmN$2TM(*WZn($C&dQm&V zqAoM@SORS;ZR#0?-5sc$m$g6_M^!2fXu(h&a!GO4tqw`)!w4))!S?xaz7rOWv|BWS zz#4M{D}UcQP}zJ~vx6bDko`MB17k$kq|y*Yv?kzUvo!2-u@=C3SX6*@O(c?NjAV@p ziJUi8gW!xxjxK1Xf0|H+G<4X2GTACLNW9@F7wW7;4{E9D$)GhL_C9xyZX<3g9F(;8 zAYrI*+>7|3F$3gj9D%fUC*B|94}Zu$v7hfYyAQ_r?#N&yfwpRQqWd7V zbsf6Ms9hF+NMXAJnxK0Hor-r5g1Adi+aZh915th-Rqh8Jb|+--vK01Ej6Vq35%hHr zN4lSi@rUJ!i&>`osen*ftHhdp>KrSuVy7djt~qxwr`(^G8X;%pKwYWY`XS4B{TZ1!yfWSJ{J5U_vtTNKX<0w7P%Je2q)MC2 z#~EaT|0@og0>2IZD%m6VXtCR76n{yC!=_>02W{q+V4gu2V1vI0wwlArkT8kIy2Trm zI*mB50fWlCPPRO#(wn^w`wEB(Ale7i-c{IshgE6Qk-7(B{F&wzZ$C=IeiQfS){QJG z>-x;CEE1B3NljippT>S2qE126Eq;ia#6x|DaNs@Rf1DrmPw^-HMgEk+o_|1*#r=XV z73AC!Js1u~QIjbQ>oN=}FDZCXq7Kd$?xpR7jjIWtoF%-zopA5fgin1A;l8U0pYDe@ zN3=0dt5*xB%=YzXqI`ezCU*!BQ2jgXu>AmW8a3*O#Saq%hXFy69|a7@0K;*>@T|g) zQUVcz5sG^HqJn)qAVE9<5Pwg!2mJ}1I$N2T#{wQpcDYYr%W*+G3EGqGv?p~slb=)A z@fPJlm+}-SPqkB?YEeGhqI}Y&JPpdz?Ubi=IvJm9<=qJwN_lq@R?v6~I%qr%2{bg@Fk1Ctgx46ZG1!bSB1YO?`a{EgdvPyp4+m5rXJ_#=<~oi z5`w1e6@{IpxbElYRDTUS>#)NN=LMKwX~sJu`5d*_=jgigDy}=PDeP6vGFqR3sLH-Z zwUDk~N8rP_?p6A*DTAGU`h#J(+so(A$cUZV88?i0x77@ zIqc{iro!F;5;XrihaE$Z?E^|*4+smrDR4r+t41Am92VS!XtMZQp)Dc)R-ZV+zu_O} z-&EK)`uVrjBMSSbh{DfjLAbJ?e+QjLKR+MxkK@W8hDQbL#!rsI>%#k<$ zZ)0t_`w`%+=9%U{n8ta28g{Q%*xS%SSbPVbP}Kds!=48wPXe}g0-7P~;tL>M134?) zQ~w22*nWiNKYutLP(A~L|54zA>e;EWwF>(u_bt}{nSxR-7;Hdc-*woFSUHT9cVqlQ z^TPT)eKY=zfJL{@Fm9hJ6q)XaDp>g<{J*)aM1K_}``zZ3BQJdrocSE|J%p@VfGb zSJx>#eiY-sZX*4w7Sf>^q~(VNhrN0=(jSBKSAQX^j7Imh&}me%j)kYUBK4lz&2;e{$IC;CvCBe~$70Y9`!Y zkbiK0LBh$;J=A&rF8}}l|Nq67c~lfv7RIZ)8tB)6wlqf2L{JueU}&TTal=AI78i&L zK?K{PyMTsXpcj_GQE+7tBZ7(uIv|{gqM{CQP$Z7Xs1uRkD54-5ag1@$WW;S$aPl5L zPx|D4&(t};(;v6Ky7$(rx4;Ao9VJY#(0|p1q3uhByREznJ#9N_kq0B7^Tgs(VW~iD zdqW%{p6@IP7O8^;K@ys_6H9o)PUNsa_ndjcn~V!>i6l>WYl>|Ljc#_83it5sMB5mi zu-nF&VQ2xeFfvr3Yym~G34-Y$i9K!SjQqDth2_X!=*<)M_}kv0ZM?k$X_+g2NPptO z$Rv!5V5q-xf%i^^mN5beWADPaqLi+A&f=lCZI9Sl93&v!-I-#07dLVj2Wh^95pATA z&B|HmO)oX-mr>{n)uf_degu+}5dwq-f<{;(tjx5%nI1{B1HzGde~m_rLGX#^Qv?t3 z8DcEaZU}ecnTUWS&m_d>L`xCg#D9-_vL#xEm_j^L5&k4T8^I8bdk7@?v7STXL5TTg zJp>aE&J#v7uC>Ul{|K}GzcABFhzE~fq*>18q_;T4O0&3}`0;zOzl+l(kJ3yhnAJ)$ z>rHDG*AbnHNF&dh5a}eIiO4e3e=r-*43ZP)u`%oCk3_FQtR^|JC&#RAj(^#>ts{Da z+53LT$q&lJ^J?h3;Q6$c+&@e-z7CN(I7baaL_C%xhUX%GzDbMoe3(nyNW7cmpe!sk zYZj`E$U~#?we-p?-?=PKCkeLi*}cI|yfNxtW5wk!CG_%1OijK=SG#+7kZ?qcb@S+7 zR%UOG`+m~15f|tD*KO^=;eP{X_Bqx`g2OiUpKyA$FZ<`xQ;F`OMQ=lk2F}RcXTPg5 z!H%3aUG3HLpL^{0EKXE)IUWh$*Vx%DetbZ>~`$qu$vHV&1 zsxy8Mt`u8u+B@}7ZDh&TtM0D4xqVl1jXP8wC3KA3Y1!!s9{sx(9cn4$od)gS#4{(` zt1KUKqs6vAOrYA<#x8KGfAs1U%v-;u~Wqt^Xt@>qK;DpZG;s!t{p~ z_lG%X2kVB76**qom46fCzhzs;;QmPW%VlA;Pb0F`?QWCbzAJv!a_p#oM*{VePx7wx zAUDIn>hs^9ondh;IpW)}#^#W#wY#g`dNK}&MAyn3Gtyk+0#|%(=P(fQaO|-NF0^J~ zazT5^UqZriC5vVjzi6s7R<6ie@cT{dT^X9QBZ|aWbM}Ol)jxkr;{+Tnf>}KY~ z3#?OlVSaD5TJ+>VWs~oSwEfY)$k`j`ieKl-_RHkXr;cwO6nRcu*V6SlTHAsh4v$*+mttD;jALTBuXty%tofebt+TJl+Pi_+O7t~E z0nzPu@#8h`JrtBA(=RuG+nh#?y1izYgO)Z&pG zQAFc?eksxTJP0Sf;T(%eZ`eDR?2q`&3LySjh-pOQGtQ5A@UJiR+dl3^G(J0B$#ys% zF^Xt>=1NE{d|rpI<)Y7hu1YF4d^gX$?4Fi3658lToSCr%3aiL8?|MIIV$`8x+VV)v`uaIwwzM^+Q%Y7tiYDYMmlQo@~%*rSf=_O0ASC zxdhgvHlkSA3|W_?UH6T7}xA5MJh|;!Kn@gu1sq5L zYM=pHpaXhf0vTXE*a)&fHdqacKrz?>c7Z*h9F&0yPzm;fDo_m$fEsWR)Pj2O4freg z8@LQwK|A;X+ylMfK6n8B4f?=i@P7n61vfw^=msyrIWP$R2lGsnVNeY1 z;Yc_Nj)tGXvCs*Qhi=dvLg)oOpbwl1{oyPa0B6HMI1dKFP`C(2!euZV#=VGTSAkHdO+5}t;KVGH~_j5db~xEMyj zB`^v`!x%Un%AhZt0zKg*;P-#|q!jflP)h>@6aWAK2mp7Bj7&I`p?n`6004Y5mmiM@ z7nhFR2`wvJWGIw2vLdY=5m^$_io`%b#GwQzZCaqs(pxB;-YLlsDTm&1bJ~~Y z-3cLoZMSdJw75S!y8D*hetAaIB5!D#cEqT9`?J+dz2;ThYks!scX-uewlv+ItyGG$ z?X^nwP$@#Qyy{ICYQ9(PQp+;sx^IM|O1bJAg%YNwvN^A2bf3{eE_d1~9eyeYJ{oH{}v0SdS-&gnQ9xHi=BBOWRI1y2b>!pLG@}ZKlqN7x<&SZ;! zU09J(E<_F%ip2{;i=MwC8u0%HfJyshn%8diXv=ikMfP>e!#n*9y}{p`59D z&{^}_{R7qVp$oAuGnLOwd*vC=C(PhoCRZ-`)pD_;=#{4Z13lzu#xG~~7YNpNuUaiv zMZTO_7RJ?(LY6C*YhGu~^UD>#)=koX7e({t+FBQo%H$4Yt2IvZK-P=Elv-!5T&&NO zYHj6%T{NMVbc9MfprBaT-;E_jFBfj=td|PF*^AP`Yz`SvTeeaxu2fQ#yn4wm6g#Iw z(>j~hT(Il}889=GE#)ut4p;EVEQYZQnNU%g6Rp+v*ZhKC_q|NXo6b_E)jH~b$gg6) zeJWe5d1mf_mphn2UKR2gQWUBCQv(LjYGR^HQEAszFXg={IFe^WJBGR!u^PQRGr@~&sa%?!Dc5V5S`$vKdW+_jL}WD0`8S597XBB1XqukH^J?7; z%(lMEG~Jddjdhrh>26@-g{jMd?QA!*oPq65kLm7q;*PYKj9Y=*>1xwjAUjP{GE44f z(uxG*owh9_tk1Oc@nEv8@2I9v%9N=jR)R`f-xp22(PNs^X3$u%@x=1R6TzvrzHgfP zscy}buUNr+r|k}&W;;%QGkch6)-W@j{?pbgve%MlS@343E6<%Z%)!&nj?<1k>}c^} z$4vI0j-TCjI%(SOsME&!G)teC;q%R4p{>v8HT8vUZ?kT)DI$$NOBxmn-tV->VO8)! zr#XpdyD6~l{eYXa!`46OhS4kv`7=! zo3znbhh6KjE81x{q_F|tHsaeFeCs;Fx=vUDzo^qbC5=sZySCGuhj9U4r>s%l^Yye* zscW}|W$U~z;1@%SjiE*6!8R5R_=ZmHOf*9HnQuPxMZ!g#adUa)A`yZsKq6g;YbITe5BJ{(D}N>nPFzf)$HYi zVuP~-e-w)(Vv+6_8xI=^_u zjBLISxZSC}FIlXKP^<-^*djvkbpzoLU&H|~Ho{J3Tq%uz%@%@u+_VFJX{Y_cqP%ER zUbIDClvXwozXVv_#B~0VfL{hUufnTMJrc;rBufO`(Yd`=T*U^(WWY{Y zSL*!IMYslq1CTbiB&^sRH?GE~l~`l6bMq|g7nd>PqcUm97(4DFn_`_d@1+t_rffo9 zT_#iGmP|5#W%T8k?xSo@Of^`c)~9Wl1zlNnpdji#(C&XI-KZgvbev>?oH7ecOV z!kJL(q|Re2Bfc5=&@V2J8{7KD6;5JEY}WbZYPd$mv468llPi{d>L;IC65O~#pdV!E!EsZOo{_0MXTRQJIE0WU3 zNyW!pmNG6+St;aAe>nTmfPWN`OhDEabc7os;u_iJ$gVu0om&R_f(-;=l>wIUo>C(~T z!2d+V6k7(x5Zi%2yXmzGWD>YW6q?t!tlxg_dTsUkAyaDV)j%p$X}-I`l;aA>B>lsG z$)_Tq%*^V1mzu?nT`6NjDv6iZ>0B^H|l(tN&=@r zzeqA;R3_sx%{rubT<1yIhK$ciD=CdJ3$LY+|6VJ{m?=`^bpZhk3G3+-=3v?*G1ed zSM`fM%ou0^tO3Am0JdjY5Nhs5b9{14V#SEUB9#u&xTzHlRCsO)5eYQ*0*#w>zSo?r zjEygWn@Xp0;qIGd?mS@J)CA*})v||~tgVoLtFc$yqw`x^P}?JJ19B5OzpdMUZ2-0L zrrSA7)e%F$g4bZYP4BcJl3EkbRVnUVv$rUT^F)NL+ zNvznrglno6BKxWHVK>ai=lX$vpRw1JC#V*%JT-T20QNQm@M$b&#?7kotPWc|rt^K~ zDVN%caZ3tkcASi}nnuP`4lK+7IqE8t0lywynumK9Ik+E|Kt(PgCRsSl2mA(qXxRlV-gYs? zE;J`yW!7yerg~sx%ub>Q#>t1IMICSvRn-Q<)-V+^rfG_z1?9V_{p)<1f^uMGP!60Y zD20Ga7%`3`=H3BOQWV=2GuBQ^%&3e!h>R@i{9w1{DtfgWE$m*?Hb+w@nBuLxxHvVu zG$>I34i0$@hZWuv&?7!`+fem{zTb{4&JgE(Z|iN8Jc z@({f3fLS^}oDj1NbcH;eg>m$JAmBGa*C(Lvb@7v9j z<${+R=?NfzCg8V2(mgn&AMYNQ@CREg%QV<)=0q9xGwy!E1n`(pMtANaoiXX zPwM=*(&9!GifHx7+Y$e2S1UIK}elq0NtTs#dT^khqR zz1dv)6!en2pAGmOFj8XK)7_16A}+nK%%>ViCS-hnM6wBKq44h{{jT^5S@{(ekk26? zpV#^4XjMe_@%we-Zrs zWGjC^srdUzE5D{icA8{QimyTT7cr>_wps#$eY~NC9Q!Wf*r|oEmY-S4uTO$s8{#Ct z#7TC4@sHqWIhjnaLA4X5G-9cEUjuudJ(ojc-?f9{x#SM~*~3WG{=we;Qe_ zZ&K%9>!~P8a~8+P*K@dWu)MS;=q`l}NmGUdd|!A4Qd%aImb^*>5Yn$V*Eerh=_qcQ zGM23@m&!U&Vmk>jomcxF*eM8Sg;Pbf7guy2HSl*#ZGaw_0| zS(u+e*LuMhrD@3eMd>bY7J)M6$EOKzy@1m%G6XH9G6@@+0SAhlJk!^G>lOy@#leoBf0K%pR z4o*<=G1sEiEQJme9#r3zBkHb)V8oiicpAa@9>5Iv6t-O|bw|Ds{#-GQ!~car@iS2T zGc7*_i8GclIUvqByB*>ZXX2QS+rx2iiMWYmIFsv5h%?E6A2`xJ$v35Y*?{LpHwd#Hgr-#E*6Uqkxx=v}-(;?`6JtHEPn*S1lXB zLH4UwmuYJBB1F){$!z6E9db8H4$HRH-sWNPkNd?uAsw?6%o5(0SK(QI{!l#U2~XOo z_ElD)cHc_W?)y;GUJiJ5HDa%Yh`kab_KHI66+-MMI)8{Jb%9Us}QSyC}O8g`VleTBKAXt z-oFaYLo4At^r3M640VWqJ{j=C55f1#>9?xGN7_vuW4#QW)fYb}AP$S4Q^_5}gRsS? zFWv}IeS?`1;4z0mgIcXMqKuqvdNmr0rbkoUOvkD3wj5vILcjYthP@-lOjSA7Ke3Mq?qB5;$6=;hC+5)D0G(0KaroQ{OB3Hk`Y57~7 z|E85(&4uLZEk&;0I+tA0G5QvrYdGLyX*y3Y%h7ont)C)m79JR9$?&s^Z~YF3#_x6h zJL%&rPs(GCoJh-Oky|+mNk#n6yv~0g@XzS{4{OC=!MYZRbuAF<`lBoUEX7}R{>Nq3 z^(U~dg;v(Jpjg)eQ7UMFY-qq`6{<){jg&ORKcVDLSf%KH*TN$Gns3st$6M*wpI6ea z1x3FWmg(2RD*82#J%2fuek~~a^)BewyNmSeT}8hZR#2zo=c8YZfIp#lQ)}p=Ds+*S z(7hW98_AK^$r`!r%#r)?X9x;%|3&!{Yo8Z?gZm5X#2Kz`)pOUt2q2gbbzfn@K02mEQ+ zdl1h5v*$!Z5xlv6@vk`|ct}8>eqRZ5GdUvT6Vkzd72tDY2sj0LZ<^>RvhSG6 zKG4X2VekI|00960y;f^<6jc)LPEV5VCJmkRkO1K^qyzLNbY@^OKnRdaCS zY2EdI>@POw)O6jtU)5K)s&03%lE8s$6ddGm+=;n-Tv>$u<=9(=)lib}m+s=TFz3L5 z8U^QbmZ3n}?-1Sa%ZYBBuizpMJBt>1YLfh7*v`cHUhMSaA{BF$xLm=GAg<6?pplEe2z$%1T7?zJWhwad z#ZCn@hf6w-%YjA3AwT96Tvdr3T&4rIqL}4BFHICn$GDN4bSwwEq=O#mFv}k-;~1qt zI;MzffpjP&R={tScvZ1tD&MoC|={2|De<-fpOVo_91^2^ehJ#tj8a47+Q zad^N{;Zf;R32<2DvSc{KVH&uMlhrcLY~dqQ{1R@Hg>CivVjwuJ}#lmlWjVK4(wQ7AW=Y4zD(N)K9~V=3S@duP(s!JAW0HTE z<-f_1PI1Lj8|`Bo?c)iL^exMuXfJoMbW$B5wW+Q$mGPFTvcEuT^NIuESIO^xii==6 zVER<-58`}C8%`X@Aue^U^eJR{5>Tq>v9My6f`L29uTFQ(1q}|zWjd4mBgQmCBnVJ$ zoV&`H=8!SX5a!!ow!RH!OO)F9UaDW%b)5_ zf4{SlJ^H`MPIqiN|6}tE)OI|7jP2PZ{}^%LV$65Q1j%uO$B@WDVvXbwMF2^f#=eyn(Zv0q8U($6e^ zA<3_yXt=#Ud!!3Wi6UKq`RFEH6vygaSpFgy)e_Y(j*~8lxq3RwUjn1I#A_KZgAsTy z`*emIrL(NY43jQ!tj1=@@@R*iLJyeapMv8KV6~J|$1vSxOuEMTbO(5(vYNy6NHsmu zOpm8ck2LDhmrIrPkus})rQ4}>9;h=|jrZvS1QJg*1&jSExyV%N*tII&$jn(8|#Ij~hUf_x)hy&jldmTY)!z)&%cu9Ie7#L@9~1Z-6lx%= z^`XE4CeVcgd=?a9Q@Z>ReZXeR>hqm zd!QAJxG(P&iH#S`SAXXa+ z^sqAvc7_etM{rR3F`VKUpbr-=EA+)6$k2nAA!8jr3}d+fpRJ4y@Hq;!x0uz21BBIz z&2NbD2H8aqBfI3W4$e$yM3Fv}=3kQJUje4sz%+8WKDvWx6lF4tzuPGHD9YOragT%E zGF!yaMS2N;jaZtT3jyzhfSAGqd^ax5^*yVNNn)_i0ee}R{1L}6Ol2Zg1rJt&A2K5f zddeVB3qk0%!+KIlr8rAZ2T8H?3`_3}(#3{%+Av*hzS%Z=51ZbLG5@IE+peX&|?oSk`ChbV=(gS~2L8x6YczboAC?>tRYoON7QOvTSp# zm}S;~KASpba5s3~Y1y$A!>~_iNPsVV)R>gnGgmKIvTM@o9{El8)%%y9x_5Es$De2R zItog>lW%w+PuY3@y}`gX^&YwM(rxb*_LErOy!e?@2hQ%~<`y%nx2F6pbHS4JsSA#G zT3Nn(_YaF2Pr4@`YFWPF*}SFK&Gb%On*Y{+<@0k-7N1$NcJc9D%4eM&Ig?VAyiG6e zO%C1?-tpSPL2FhH-q!YHUgIN${LUe-9r>i>>WBV0evP_p@2a&G(S2M=OYnu4UHe=k z&ep#b+N7<#s%d)u+p8{ao$>s7*NS&a%HzB5-E(@&p<|oF8y|aEPrmC|`QGVudYPzy zPT92L#2b~59h|dl+x(i~j(N4QTVI@b*O6VFpWeH%{|DRa$G4uJy=-dpKU$YvR4-fQK`7wzEt+O_dR+6nx2{Bx2JYp;&GBfqWhPS&U2IbtphWoga+J9YRqn||J zy^*rgz&j{Dy*Zj_XpY3GA&nZ+np+Z~hS+qb#yuq-j>X-H<{9o_b13W%)`zFLn;L@Q zNIYB}4+72|sZBJrhO48sF#{TZ3)j`gs+*dF)2kcf%@KEXT}wk#$Q=q#t8HmYfNz}% z@w&rx4H3%5hC+-SshtsyM{9%OP<3KfG#n2xS-025A`OvSToR99E%(1hUrZ8 zl}sxh3%2tFuOv@HB-qpv3b%9JbOpH@jV`x>543qYlRC7}Q|P5ON1|bWMz}r=?os;T zT1Rb0ZFX&L?GR%G;>|6wV0bzcxx%%!&@JFu7>+eHGGprE^n1iiXo$f5N=aop{w{#* zp@W?z6bgfdBEcsN6^eyX!f2sX7%Nl=To!9VlD zC&HV;UxoLCgTi6tLVeLlgi!!ZK;zLwbS;{KD$!(g9h!>5Xd0?VjVOZRD2isGyU^We z9=Z?x0sRpzMJv#QXcc-GtwS5oX0!$EM0?O{=ylQq{T+RP4xyia&;@i6T|!6EH|R7v zi_Vc0!jmpUCRs#5AEHmte)J>y3Y{dWL_{BxUZgk4BL!p-DI`P4P~szgGL}@3Nn|p) zp4>=oCby7!QbR(dj!YwsWCn?l7-=Ol$s97DEF_D_qvR>_5qX2WPj->rWDnUwo*^5_ zcJeWKmwZ58B`=UT^<)#-LH3dT@6aWAK z2mp7Bj7;<+*}l*#004YSm+xr?7nj}`3<`gISnG2eRhCz)CF@%Db=qzj=K-Wcn>z459C+%`P$cr0H$FM`*~? z9QCT5vz4l6H)~cS<~3V(eAcQ$zTy_FW^pdswB=^29mwV ziP@^#dV%C(u3ep_{c2Xd6m@^+xNx#C zhgH>X_BbuC(em2Ms576Ot<*~eKxn%O`mI)GlCw@VB&`!%`-oj^dDcwTjyf(QM%}8} z$-3oL7J^p}=IbHk9pB7+u!`SBCG=iqkRcAY2{?Y%YQ6S?;{s zLqVt2Or>r$k9ID1X?w_S+=`YUJG*FUhG}94z>`ggjq*GmVsmt+@_tZ z0**q_Y1O^%HYQC(G*Jb2sds?t{t~# z;Mbjj+)ULf&eM_X(rS4G(`njPaV{l<3zgZ`lF62fG`7k(ti0gX*cWdzM?Jeh71X`@fnm)Gk<9qf6%U@t1YP;*zY1_IF==$t6at95HO3@d*~yvMz{rn5-Rrs_D2 zSjqCNc-^s`svP{ycG*WNo~X8#+cjfbq6%tG34Nkk@z@MNri$%u2Z0JDiC!9t3Ft{6 zPP#5ztW--yt6Ac$I9hTYjU`NGufH0uoFv z)=F`tLZyykp09s9i}kLMQvj#KwQI-_xeWhAN`c*2mm0C*ls-_*7r^B?W;@%*7d~vQ)oa?SrY{DHoK&Aq4?bo|n4IoLyS+e_^cFkEp zUN_M}h)_T>&Ba^P3wn#l(mG0fnJ%spdWmK-%njcedV_yxYF+4X1$19ZG___Oov~3P zB^T}&M2F_2J?Bx`T1~eDE0ho~SDhKF8WvmFD#8UGZma5vLg;lvLUYXf-Qw)C-!3(Cnf;LhW@eWC3~rJQSzs2;RF9YpVfl&_vx-xInp} z#tW~v9M6AtH{6U^ShTJAZo2vks4!e5E)yX|Rd=^v=o;%q|0t4u#D(rJyVN6KB$o?T z3vQHbLOZ!a5jWt%$wA62@vtpnxXzVy(5xxqcc%y~O z1V~hoAxYPn#rcWSpIMc-I8|V{(<%iKv^K2alaV1|FO^vt z3zvhcX52X(#+t<>MZOvEEh%QxV%2eNC19_dX?-S~iLt|VO8u)CE8>v}q+%qp{l6oT zh!P3@`S?D#i05HR@s()bU5cc2M-*R6C=q{CR?RK4uQ5%DNQQ4j`(_l$B(4drZzkiK zEc+(IR??I|747>(lcq<$Qo9XpOx07QuFIwxGvz^l`f+8nB|q@3tc}YNbzD~T^tbAg znNrP|Z0dt&G{tYkG+WV>$(StnDXP>kzLodN-wv2p-dj2^od`tZnr%quf_Kt6alL=e zrQv5)_gT5ujLNEX*`Iz)mah5dqJ96NNZ)lUiYdqZOR)&=GjkE$jH$g?CJe*i3M_GD z!2Iz)lgfWd-i^M5_V#}{^e+2vNs~Jz8)>&U&Br~WXk^zFP~#?GubEm z-zOB4JnGD()ZP@9+ElQV$!GsNrcHlo5>x#juvI^{O7$p_xft&^bBgRU1=^LE&w7u? zmFahYF6(7VLy=hj;aHmACMVb9S50m(ll|cJK^niyvVDQ2`SfUx0kN@Q7ZaKQpXsX@Wq=(9V4&`tzpQ;(@Z#FU49 zwwd5DmC4~~2+eee!sZZ~!PU@c0-A;ji{!}`0nHWx&0R3}IpL7Z$ilv!(3nCP41%@` z%7XzRMuY%ApWPjTH!SzUnY#nBOdTQC$VL3cwXi?X2i4P@tlxx~{~_&pNa5efz^Fgbs!lRQO#IAO5uwiHfH69%Tv@s^((3)T9cKC}zXUib|mPz#7E|ZlQQ@ zw_=#8EOhp+(b+3>R$4o|ZL~b9BKOnJDpY1=Wu=Nsq zz-JFa>|u!QHTXUt^dJ};B(~3I58-X2#P<8lgh&n|4~l=>7=z76;|e!{*+V`X2lEjy z%@Ljxn2qpBeN4|zbn!8^saMSh&uno3lR#|0C!fd{B{tT@#|53%S&5Bz@rQ|@PxFV> zyu>CHZE8}TkUL;OVh^YJfvnoCOqmnGi6>y)Tz%rnVSYeYG;LC)>x>;Bw8G~4@LJj2 zFn@@I9`V^E+c(9I?^WG=G6IkT@^E zmky0TC$SfY`Lil+e-K~t*;Cl+=_!f5Jj`EF@uyQ9C$hwS#o#ZIyDyD-uqo*L8hI3HSFO7z}?xe2O(VsKo z2kTQGh(BOp64h05hU~uN<22*0+ zSli$<461=aRouh*z?uc;9|6cS*pr?`pFIPF@&Fru`xmi)QCuF_SjmE*f}m<>5EEz+ z`B7d5aTW+XD$Y zB~~8gb9wPLw}V%*`8A3aC}#89xR=ig#lxe#4$JdUsYz_!XU~WBckrsbR=G-6q1?&` zR%@hxyq}}U>o^gde<5%g%1%~ZqwH+suV(>FV-5ZFZG1sSUucGOJ(tgAL3e%j;-eDt zeD)F^EuX!N$AZsZ!DG>9uL9g>P=iO%qs-hjg#9%X%AGzd9E&S#vn-3D31QxyqcRZp z)={5LL+u5qy^-c`;1m54BZO^hK3zzhohV;VtHSQKfoogb59iWw2p zM2e<~@4{)K#Ef&uj$_13fjNjik^3GD8y#i~ILCc93)?Tl_FHNG_KNMd!x5a7$#z*2 zeQ6F__~>9Kd{%+htH`2vx;4$r{eW!DQWMI`g@~{}zPf@|0LcuBg-5>c$iM`u@ zb|prBG9`3$9*$zSlPg>}%6h@6lBZyu!j{x7-t$=vwqHZf`U%EyGg-hE(-5o!Xxx;i zk<+JFeYx<{YI3)@wHzA#X-<>_181O}WB3eU4pafN!<1{-_B8gQS~=sh1}v3u;P-np z8UuayI-!9F!9L2*!q!>YAY0q{+0I^ncw(#O5avP)yEZXC+`XTFAhEM$K>Y!}96nqb zvfY@LIaY~@yY<7vF?gZ|BjtLidI20i^;ruZkoM1LhC=V{#Neq1{Vyg=woMG2F#&E$OzSx|082;c=;Ct9vGuwshl-SFM;X+AVEUZT z-hdZ}fy2jyLym1A8yi)D$eW1sDE|ydoL`OldG*H;eqP+bcutH>Wb-5Z)BISz=#KDD z+%fm$r^EdGr<5?on0XQ#9m8n1ebvRbyiUm?p~M=eIADmuB&Z)k?-Oj~ij5$3e2v!e zRa(%=No_4MpFg8TOloRxt&)O&Odv(I`58_kCl$KYQc=QY6Qth`Q}R4cPbv9xpPc|e zFCuq7?~WiPUxd&*_};^K;)D1LpS=ry6#)7p{DK%y()@zjc?c^3QHEcj=5nE(W+#zm zJLroqm1DQ7lR0*Ws!qzPOdN&XQeOQ%4gr=nIQJ&Irp5|NB4U&iDy(A(Q66lylUvP9Kj)*sj=6yJbm0oLbIl zoPIY>|4W~p2}F9=ikt~WF2Yd)=pTIcJ^)w*=@Rt|`fmoD@+?kir1`I4Z*$qCJ2a&t zB0l>7l`|CNA~lB(FzHi&Y2?_JEPn1nC;E_b6VU#ueYz!|{S+qN0LK3~%6|u3mR94k zM7S&sTuQ#lf1T9%SIJ}eJI;TTe2f29V!uxFCH+cys@VhKe>n%|q}S5Xn~^S>s~^1n&!uaH#- z`^8+UpTSsNge(5zn)tHTX;#ITH4gQ+P!89)5V=5Un4%AVa42DUqsHH%p(j6R?~mq7 zo&F2@4>MLhRgsn zL7+2}$#9!B;Sf-QQ4U!V2=3y!-lB_us9-Cg;L{pRTWWZU?Nvh83k{o%l$Ue@c-%oPn4@9;! zmwrFB+3d6||5KXCmSrfKCHX8>ve}$;g@q#Wa;ZpvQuTa!x$3i$EKi-J2$qiJm(n#B z2B($k(jD+%3hO9{Y&n#>OCtNsW-pUrMPw^71ceK~;tIdQg;&~aE`*+j&?*So>{aaB z$$dod;9{$7_8P>Vf!G??)>W|eI&4MpfKVZX*4pe12n_|eBi zBW}ol5Hw5GElIWfIgpr_9-LN3kk>)ybDO;dspol~H0BT(CG0~M6FtDRMOd$#3oCvWuU$Xi9WF(Pl*i}X+&&v;QhREB3+QCX-G&&s08 zP*qsoUKN$Mg$gmWSV)j!Aw>{V&K{M7Bu@Y9*SU^d(g* zpjvsry?_PTwLrSr@=2EJ8?ls5pk^(k+#}|}; z_eSNf;lJHp|LrFK?Z&Bd}wMf?KvX_|2;c`D;Gul^V8}lk8V7^&w^D}UoKZ(k{>P`u zHBtE}M2~vUc$Cg~)X9-=aLz*_`v&rs|5Y7sx7qvS6y)|H%m0#;rNHdBo#Z1@11mT( zEFZRXA7!GHXR{BG&|OA_EgvF;&HhUcZ6kk&gJ)ULI(%C=U;bY5=ipcM=ZfrqyHt;u zlgx7@zPE+H>Z(H?q0R6-3ee=7V>bIAobx*TbzBxoos9F}n^Y5elI3Hw50U*{qw)!y z>_qL!^5qk%zn$fO!>N+wQr%{Yk(=F6P$!^6jo_rsK7!$Y!EgJ-$H^dPgM z@+p`+<289k^(nz1Z*IEdkW=7)O4W|9K86#D^5xT#e?H>e#&y`~+HUA`7-wLfj`f4h zKEdt_;NG*Q{DVa81G%0FLrZa@SRKV23a~%g>{Ey>gxEPNO|7fR7esd6X3K~PU4n>Q-PCf)&N_=V`VMP^W{rY0GvshV6$~T#f)2X-8#Hv1z>$WI$;UGUbfi= zSpSbE8bZYMNg0|}Btg?@;wDu`Tg2&ect062>$ol66xAea7dAy*abvG00|}ilf58+1 zmc)oDIXx|GriH?0o%pYRa%qr5XF^SyB$(zbjxY$FczK19+ZWLlH9raN=dAnGx?CH#4%WdZx+hwK4so!6If| zwMeb3ikcafg&0~!=>xG!p*U8lgeg%&)RC+zl+-4;F)QD!CsiwdW6?XpdWjZF7AN&Y zD36>^z)D4&6Q)v<#~v78k;?xRU3FhKdN$A%JDbi7jr76emUzvjGo)i~uNcMbi>$ zo|K7GY^_BUCPaaM6e3GBWLMTASt|tLZ6rKaN#yyQ!;(TM;5Jo9p#cDJE za1=8Lhcv}LXuC!;n;in46~NQHK?T}wxy`!n+01W^%y#hg$fS?!%!a#t4 zT7j5eio`igF7`Af%*WDgp`1$C(#tauhVST7rm!r3q*t1nNV1@+CL~o#luHt3?eQDN zD0XHAlA7?T(xeK(wcY2BHw;6gi&|C%s1`Q+9tT>5Gqwzxy5uCx5rTx1w?qVVlun3# zT7>WuhHH-YwODJ>0Q6(fTn)`uzme$xnd7d^RW>^TnKh7U{TrE%kU8nf7&fbc%v!kg zYFs3LZFUM7aV-VffqIS2PGfl;Oys+70?WT1uNvL*k45y)pqBdv&9=DXnQgPJYO~E; z(-e(1&Wqs(wC?MmXgagAn3ZDI7Ftv%?QHfVEPoDGFl@G$cy6_CpeSy;fM)^ooZBr5 zc(*9v-J&3le&ht~JiPT6FgGTDLkTGj7&jtiE3o-_yuYudM^T2(v?H|WK%Hy>Cbz(3#LALv zp|8TqMI-8Rv3DV5nX{m=exlJCuExqXIR4s**-gp_{`x|rYtcmj2?R}xJZq6>yUaCz zyNX5^x(()~k#{<&nR%AKDL|jXjo(VWb8v+=y8dR?Eo>H%Yc0#4E0JY|^%spIr~Ttz z>EG^{(AWUch~XU!P+tOWJYp8(7N`Ieyu1!d1Kom*W3f1F#>iv>uYbtz1gnIaR+2?j zr*r-6eiQuywT@1wx&-P5%m0;oXSj@iWj$&p;pQG*H}@bnqY`zWZ3xg9gh?i75xuEb z7qh!)Bq2o3cll`~BO2YQ>lqR?<0*6-$6Z!k31OatbI4k7~4Cepafjr|a$Q@Kmt0J0x{>{2lDBz#oaMgzxIs&({-F$%)~fTHI>+h~YmeS>h^ z5HSbg2B$a)PiJVzoj*xY+{ul#E!k*@;NL*m>XV#{u`wuY4kQN-whaXq55eM)hdXfJ7Il5RF@HLk05)n8P76!Zre!9>sJdNLOZ*Z8QS& z82ox$)EuoAVra5b5saxqD5ffL#13!Bcp?-}<)Y4Wu`%UhnwtRG^nnP&qZJFcoisfm z>28f1jocdlt8L_9pX1nn=k};M2K$UrHPXhd#K=W+Y9Sh9{-B)WD&JunS3vm$a&s)* z)g=1HG{)IR6L3$0J071I?}Xau50sSM4mk^gzUX z2x_5t)O;{hh(Z6|D2s(~CoBtDdX*K|t*Ut4Qu9&Kc+iSVuJwn)=EDF&*W`Oe7XSX;q5G44V`@$`Bl&DuLa6{rq^H3hs_ye*0vdC?`2qc!8TgE zW?!@!D(M=30nAwub9SxSoZp$vhS^zOv$MnIi@+-gWfR7i3;64C`&c}E?}5Ap11o|L zL*#TFj5LgN4958~MgzW1e3kQw4tV4nd+2N~(*)y6!ToE7(VW|9fzgu75S_>QG+KH1 ztvxoc_R!aGn<-u5x5p^pX9#12xSb9d9X)4^aQQ-ijLw{QEk+lQ{TQc<{3&G;ZK$A$pKUcL=A4Vcg8=%HQD}&SlB|NY1BtjpBQg z%xG@=c8oE6FY?J9oIe(0oaZd#IbDS@!L!$$oF@L?I8A<@$ZZmiyM)?2dCcSgDV*-d z_f6w}{HY%M(>(H1J@j-BozkUPKg;M zIFI7B&J(-!9y?!fnsVk=E>HAkkDs@CY;N^`@N+!;9M8FScx>+S&|iDx_ju&@dVICd zL+|&{2R-<|{~hL3-u~pl_6x}*CQ|Q8qdceD-s0+sg`B1-)%GS%him;L=Ht26wI@;^ zS;P6%UsiLP`pzm&Q*Ta;Wl&e^A5*Lm=p5+I~%R zTFISb;0N(Nu6xm46QAMsg!Hx%I{O9APxZJI|2*eUPTA!Ab1qKtNsc!qe}>E7&2gmo zCpe#KrH+Sxn)4@e{3-q^&Zi!o?%~&PKJ|3w;h*IE@!TgV{&9|z>ecVTe~j~gZ^N^` zhkw*Pzc@1GXU;#u`NO&2Q~d8ZpK`N-hkuy!>7Ccm!#}`rUXQ2Z;qT<~C8<~wzxSvK zbk704^j#BYz20wcRg(@%|ARk|xq4V(#-p#iTzAWk9&g(}%xgP)W5LEX!MxcUn>SoC zWz*~l?@xbsLYMCk%y{GeHQhdc|KP(R2d33L()>jK`MXbcy>IcL(8^}*SH93XcTQ+| z?wZC~PhYGqoxb6U(KUmNr}{1^PoH%D^dqsxtKOg1_wrL45@$c3zl`$PU!kLU9qZ{Kox=SymrnVI*i``7jAc&=^n(lht1h*ckd+C1;$Gn;4J zRQ+Ph_a8kuc*}squ=;b~QPU3REnc{1)YR_#dnMNo58YnAe#aNRt6wiuZf`aC(p1ht^+k_;b^VG%FSna~Z0PXC+0zeS?lySM z6>HxZG3%xM@tNR6UVw9A2;uGtktsoC%R8b z8#y}CwO#Asiv}&|bGk#)*!0+&2Ua)!`i&NEh1$26xZvH4O&^u&_Y^PP zGi?6wq6y7DooLDX9{IBEwzcEBz4pilub0dynDge+rlVd>9-4H2vdceKPA%U*sX_H^ z!uafK%9hRB*k|?Xr3?1$+E!YcUTN^rPpDth^r2@PZ=HPh z-n@GYz8QDb^yR%fPd{2P@8aqsmtHLI?)yIg00960y_AVxRM!>9pX}FQRg6ocjge24 z97`AiA;g8chH!#^NL0Oc52+vblk|12_E-?0i1I`F`ho&b#N$yLaZIsr`J3;`8`u<@vm}pt-L&XiJWF z&p5gFuNyozc^!OxTZ+SEj4Lev%bhJfHamXw$Vw7Ng!yHEw#+zeetn$(T){9h_Qc4w z4d!DJ=F&gzkMw(Y)Le-ntB`{?vp+sHsaQX>!|hhb1F6jU)aA9s&5ixJ9!0J;eH(LXXB9T(eo_98bLzO3 zD}i!gj(p#L>9gfor!v>~f2ZtyakKG;kAv&*##Rt)-BM;;{zO@HZ5de{V>nXV_tw93 z8DAHT@)aIc-fdp5%xx44-0CiUzwTFT$ha`RI*iDe%P^^*Ehw@X?uaXacrfKCbKOxgEdyMJ4-`yTR*{8tO*10l|ir3Ld3KWVp1eQF9mvaq=!yTT!~bEYCaDR0t)`G<;ocW3)7 zp;ccl3`mF;7M*!IGq|*40ohl-vMT58F6Hfi^q@aIx1L<!Pv`U%{+~;8<5+CdjcVaxrd+ZrYxm)(_z@QI2n*#2ZXOJ`a-G!f6HgLDBv7Yyouq1OYW-$-W5{|JX zaX-qE$UUDWf%jY1*7N#KmMHF9Si*RJk7bR;+%3;GaPSNWp)3Ks{t?SU?iTv-b!N{o znJoMIX7a$4NGq*i9WNUOJ{U#_XPg68_dWdQ@;(05XT3@F-KeN}XwX^C^FY6irQcqP zHBreRTMBlTf}Ip+(o$oz5UvQ8MWd`RNihnIq!ksKNKvQIQ;lelMWw7^eF}qr%0%Nu zWvt3L&}tObDx*>_X`+=;vSd&w)p1m>RcJ+>Do$@=*Qy6wJQbpv8Z6U>Xtlx!gDOUp zV^tbat2C{O6=kj9l%O&is3AgDs$`{TG)hK!pqoYu%9nXtvQhK<9L>v|Lk${zoL2mO zR_IHd6*aKS@$4G5&C!DGyKe4(Zl0E!jfuvHk#_7iY~QM~Q8}u{sK%?_9ykKB6lc_k z(Sr1npEd7}Gf}>+ze9@$5}CdbHeQc6mHNEs<7733Ro znpBc1a-N(e-;p}iY=Nzi1v_9D?1enY zhaxxtU%??b4#jW+N}(KoD&P#9gBqxXdbkGHp&44>7PP|8@C)37c6bQg&;xxa;81i# zCme-i@HKn`-@>UlA3wy!xCBFRDTbjE!%>TB)L{fl7>g@VMia(k0k==pU#P zeU*--uh9u~B7Kv(Q%~wmr&AvabS|Ao=Tkq5bRk_t185)(qKj!T4WUbE7+p@osftF> zNE$^ARH8C9(FD4ZuAxaZnVM-T-9$5JCf!UEu^W4^7awCE_Ty7(M+Is{t??!{V+;O- zZFmpc@iung15C#@G~A4t=#L990N+PnoR043g3joPUhpma1NOrda3MdCi)8=*{gD3# zP)h>@6aWAK2mp7Bj7*oOCJOBhcZ-ZnZct(1&jSDeOqZc23Ne3GU5Fc16uvWelI&*F z-Mg7|t5nM1tfg48GwYJ-F8)j=W{1L7Q)5B*!R%z_CVP{~%s4YyR*;giQ2HRa50x^u z{#FEwhzP#;AXf0HFaCfEK3PRUk@}!02;#lTY%S~iI`DD7^WAgLIX8!Mv;62|^8jQX z)~n?c<;d#+0N#J65T^p%G=qlYS=~k_^jx855;r#zEzfO{_B36>z7vgnTExLAhlEiG zd#0aaM{pXumS%>dLMlT^T|agEQv zhd6Dq1eZ!s)gcgdh-4i~3yUTBez|l&Q%`A_tLZYR=rXG7vSb}CRX$!USxY5L(k&3` z7TP*m3O|3(soPo|YFmP~P|(ELcrAl84T_pT3lL(TT4-zrElZ+dAOluK9uB!=2vre| zxM~y_uNoQ^Sn10WG-eGkuZrB-ttIHP8qzYd2#p;aFejsCg!FRsfNU6RhE>_m5%*D= z{+OU11&_1l9PjyTeS#uG0VxCuj`fQoO~EI7V~IXakxleTim60rJim+c)y-l2BT4M( zWIvm5ki_K^onP*|%>RzW7LzrX_=42TllQEUi23*wS2i#8p1YbINV&7d?fXxn-%fvK zzV&~`;nng1<-^S{E`Eyt`rCU54i142Ho?S$w_Ts_yjZ;O)la_i$uEU(x2uMwkGzWdSxf8KpeIrpP;);<(H_41o<$0xqKQCT_--nr}N70=qKjo($< zM8bt~6b0b2s0^jGAKW=|qOPx9Y%@5D79=`T^r&BrZwrIGELw|w! zXFNY5bgXX*X|EsIB7z-ixH2VQ*tM z=waI2E=V1lQ|A_#CPbu%*V9cpWY%$YOhLG#{W<3q0>Shx$G-K#e2*5>H{LI;$a zVZ>%{g}C%>2baLV-@fE+;PNNUr_a1LE{+%e-)jE>P)h>@6aWAK2mp7Bj7+zyD+;gy z4R?!-OyS}p=4TK90A!bFEeafee|!^Fw$F6ZW+rrSnkh|N3Z0TtI;20+rt~*u+B6L< zl(uQX9}A>uGHpZi%S-|l-g8+>mFKTlU;#(LMFeGCAJkuft}FvKA;5DGO`N)s5Ac11<_D0i~BK zE($Gw&hGcST@HH?8Hz!BAQ&eE+;(qQj9#yF`|M79spwUKKUl8X& zUcpHQ+`Tq13<|hcSQhW_c|3Nn)8>Y`IEUTs76LI&pR&{C7Q!fwWzIN<&)ezhBHg|& zn_E~axQT$z7qmHD0mAL-Ku=Na3kCh5u#EJ7L0SQqQxIdje2_~VQ~`wq53k)L#3T0( zkJDxkbct&8r!X80g+dkmg2RTY5g$p`7OvBHmv^b%?E(`A%KGLIEMOSt@_|W5;+Qlb z1VaI@4F(~B^ap%PA(Viq>U7(KLBUH0LS7qM7aL4D1X08xD>ZmUApxs&c{_cvPN5@z z)I}lHn*i!?+~Go~B5{Z*j&8xxBS$5|WFR0of?fcP?ew{w?vx(@*dV1b-EcG>yB`ON zmjkgm1;3~gBPFN0VNKkEEmBt8?sq|8uAowcHj0mijYn%VHc+}ees_F8@cROC>6G1e zcW|7?=L`WDO6?Y;A2sH3|7DQ*g}HWrug`mz#}^WF3v+*}X2DO^G~_0tXrPCqlMuPw ze_7WbnUh{wmkcUaQAW{tIS^ZeE0`Lb))^?8sbDBt%UkDn?7*6TK|u!! zI<`g!3OZWJ2XLNAlz0_O8?NFN_*E^xO?Ykt*3Ks~{2^RwMiZxC;*^$uF0`#5^Ya#( z;VrB#L79-45OLkEf-o!wT=J`E!^{`4mAnR*R;p;8W))@&LdwLEvNWJ#n|URZpp*ub zER_PP12PO4Y*o?iym|tI_(2ta>n}Tpm!JDS75zEJO0x#DE(Y8;vws!j)=gcy+Q4>L?AV3rX#tgy zM!_eMC=oRBvl1gF@M0h6#=$&BBuPX9k`G{nmL_rs>e%%bHEZcJuaD^q^BI;_^ZLHl zI=0WEo?^kxeXUTAR*PDHXEB*uao|lBb*9B(Hp%={i+GdIvKS-0(W0Ja(V307F3e|J z7_$+AwD_4gST&4DmIw`sg2jlGcm*pFjEX&2Mx{ZO7ilHk(ibt;8iFX&yU- z5xSdAH2^YgSe6MM!8|?Me5z5yoA5ZAf~=>;E1G#DbW)BEWD=3=r)icp<8o^f$pkwD zxn$jh-U`B$F!Z#4vB+z1)~JW*)rNSQM?GLvN<^xP9zjS-Fv69*Wf1Hps@NgA9iii9 z%R!tmD;azZtq3cR@-YlB5qH@Vkp?9*Ldm%CEY0K4MUzxCLGzX&2C*!Wz$XIYUb-J zK9w*KNf1W9L}Y>5Oi(k#8`uOT_yk4R*b*@<;!N4a0)7I7k`38tk%AKMGRQIxWXW&> zt)Zc7r^6tBWh_=bn5Rla4m>96sRG>E#nT2FohVidK)`V)5xFV|W6U5AG}FS#>0lgd zpo|bz0U)6LTPP9v5NM47Ba8;B5VdHb77iP#NNu8uF`}r9ngIcDAf8CAiQ1FoBgz1t*MaxahzDeiUN}VA51fo5`5M$?rN|3y zP@qG9+-gy3Xvno3*#Qm%IORXWsR-lnv^g`zXvU3zMbJ0F%EKWm@i0mSbP7BwA$WA= z%#?^qC}2Gluf}LLtwXBY=WwovYq(+b$*&3t5RAZ!D4OF$M!bDYTc?~s7%~3o? z%mSrWP-|c4sLV5!aD0S+U*kHts52qLDPynH|Knv!)nEiK5mnJB zRsV!i^%GF4C1O@I%B+7vnT1d=qDF2I9yPduGQ-QCGDGv4C=)brEk>BY9=#=r+DMyL zL!0WL)6HOmDqANhps;hGaV_Xwu7JMH#E97uDeU5UqjvAw1Ct>o5miFQpiN zF&FkJNalg0Q6g$UYcfX6gAEPBCJ;7Bgb9Rj%s0c)0Kyh<-lC^k8EZU^HW8#K5w)nl z^^_G?Tj_ytJE?Om${&6rg!{tETO$q98flO=i7*3bD?~b9BI+ReX*l|aDHv!&A7=F) zKRmIsz-9xXDJ4)05CKHWJd#uLb3D+0EkKz3eU~8f8X!j2NAkodog`U4W{da~pi~(X z@oBPrGElnw-N*q=m*x3Uwgpi!pg0R<9^n+p{0yLCSs(EwGG7KXDN4UQiZ6)5tdwIz zd{tCUW<|xoN98g_wngz*M`5PPd@Yb!=8>%>3TJjy%q6nl0y)mH_~T?bs&hksRL$r9 zh#$jjj*2Z@D|0VeYsJ3-se$ImcJ(r^kYmb` zWE$%ygc(y8@{Yw23)Cvh=gWRD)k^7Mc(%y7w#f5i@+KK;>^UZ%CyyItyD@pAET1FC zp+NGvt{}vqv_lGudpCy`Eb2*rD@ok)$U9#Z-(5e8aBXdQ#HtzG+s~`BlIONIEPiCi zytnVQ7N1V}^Fx)XuA!sbuRWK4_a)PJfnyswmv-$P|M1lf!C>(6@%^{17yfc4r(*ft zPdt}%ZQD27Uw`PC=0{3aU0m+a{^jv67JMRXx!!x~zJ(k0=k>34Ke*w4wb!u0RTbEy zE52Gh{YcWP-2SAED_ZEQ8SIv~U-_L%to^ok?)&7$?Z>aZU;Fu$6aFL5W~Ay?ZNjmx z$KKm9np2W`|H3854w@^y=U(Z4@>1i}5pM6QSnWRR$0y(Qbsqoo(8hO)Do^&6m7n|k z#kiOM){sP;xb^HE-Pf3ZCTU{qvk8A39Lmeh-#X#-3u~GhM?Iro)ZF3y#NK<)UoY$& z*Zal^_2K(o-~a6I{=Ggs>Eq-Z!;J@ic{EACV9h$!xu;s5Y1p~()==SnZcWj~9ZBXb zXQbP$S*3q?;Lv35r8VP!TYh@QaOLlF)F0o;EnHjj@gs|bRnsqjY}+zYyt_8xdf&jM z=RAvokDpt)CsbIs`h!oI)YtA`b)%*CrC%+4p|5n_HxHlp|M#bL1vy)G?0BNTVETFQ zRm)U9@h;QcIR&%dehQnUy7$?&Z!Nn-PTlX&Gq*9Dn}*v~oAOE)9<9BrT*zOM)cu)f z&FRKp-~QHy3#&hW^gTZL#4`K9E|s51y?^SG5k%QHynZ1)^q+^+KME1lN!`@c@v)4!cNcJbBi*FL@F54)bf z*0!sFfAj2rjkw#m`F|Q<%A2p8dgX6RXZ0`Jv}e+tdopxM*1eW(-`)0xwxPE1p_e-! z`s(?kFK;^D&iTw?hCZXu!hwBel&EK?b?d$%0@@-X{ z%4e>7^1K-R$b4XLhWZHqB@1i=HF9oWRag0DSWw`;ULgw>iJxo5&jWW+w2ZI54X7{;~q&vo`K=+y9ftOZ) zh+htEO4fa28s53{-6SJ3x@3u|-rEU~hr;?wq_2ux3yMfUB0-!l6m+@*J&MKo^F<*b z<_CSAe232|COSYb-)j%LmI{$OQ&0^E9rl3D?Q`_lmWV!YzO5tV zay#>#LZ?0C4uWk*KDus@VdNRqRlQwuJT04#N|cTv|$TZk7Ci!myZ~5jCryD zd|q5$hdboFna}M%o2Mn=#*nYudla$7d4@bAk|~2OkI)_00WaYX?Mi#RJ;^?Q(XJ17 zjpz#n972zx^JlGcn8_0Y?j`Vn)*%Mb_rP3OW9WBM@%_&&?=MV4=97hF5m`)Dawe{p zB9N@-q1id5yeI-XOo@ zNKVa7;F35km&&Dc8Qc_3$7OOzS==-(o14xVxB{+_Gjc^-F;~Ksa}}J0Yv3BWX3omB zaTB>@ZX7vEUits34J7^#P)h>@6aWAK2mp7Bj7*Vf_k$4;000CYmytUQ6qleH3qR4W0ev7CX<02Fl8_}pV8E-{-I26t zzr3?6gkxg@c1u!+;NuW?Y~n+E4x#R`9ZDU?_Q`4KNn6LUTf04N;?iQ1Hf?REt#Nal zCQjV+zL{BRh3lOD<5QjUv~Pa*w^1C}~Y?1haTrjcHR#I-NVVkN^jc?8QP!C6q=| zOU%Sd#Z=lckyeUDHH)?BRGwOBE_F7ME+vfxw5p^UFHPEV(^UqqC7N0+P7GsjD^ImiqUEU1ZMu5g@WbFsLpWXufDc`xU@Iz>Z>SDP-el1QkUmdZ}LGb!V9 z-quqx(@0~^DTaq7r7Q%grE*!-cy_3!y{nvF8U~&V#ZKMuDJ^CZEE<`0fShK31jQB2 z*kG*ALguO0+DWJf@B&)tR6;2NWH5Cka#@r9o%H)zI$N|n5 za(ScvFs&lcFR8ecO{x0nYt}^v&&Zrz z_HvW(Dady23@-vI^0Hlj0JKW{Gm({a$>u5Wth{+6SIv_X?65A|Jg0be+{N=?JqgM_ z*(T`2ND_HAuaDb2S9$j2V(`Lw^}K_Zc#)5AQHG-rGF`~aK?M5AIT6p%2bp>UD?Vbk z1tZ>|;q@GN71?w8MVrUTi|j=gFUo>_QZnO(seZ-ItDq@!J^=K8Yep1T^fy4?Ewb0< z_&Pm4*(nH=_f3a1ED<-?%@KDk2>#Yt^Uv%Xld|j;++O{bLmY=+e7@&H_ND>J&76*S zyLgGcB{vI{6>{4}G8G~`XUIGb{v=H#oeK{B9F4^*z@zK~T`%YgG)dGK%`mF5OJsaL z5oqcBMhurXf~T;5c#)Twevykh8=`g(FR+N`$N7Fyhue;;ShUnn>U>TQpJ)0dA?j?7dZYF^P9kuEy{Qq-h>Yxm6_z{1TTm~QJ0t_B za2^J9mKmCLur{S%ucH;fWG#?t=p^;r7LL@{$|7l$$SM{!&PP;FBdV{x2$3{7TgY-} zD_P-OM?|N8pR8n26WIE?U`TyFCfMiW!+kz+)KBVz&SqX7kBkEMFk~<)Ltx^Nh+w_t zWgF4OP%{C{IJw}{(aL*xhD9rQQHuDWPNTzMw8}IR=fH6QeI~ea4$K4CY=W!GvG;Le za4!Cn&h^CSY$L0k5?SMHCu>>c^ONSFbHkjEli*{2wdn(5mjUD=K^prx5Ueo;tEnIe z0v{Dz1i@NUux8H96#!dIaP1s;4Zv0tY|+s=$b1lLs8u2@G`tqrzYtmH+(`T^S|>-} z;9#fx&_e<&xI~+W6L&51N05gxDtmmSVQGM&-SumdIfiw$Of|b_G z(OaBN8kbpFtXK5W;OB?NAXLSk&G@g1%l~ zFbvv3&<;v{L1wfs$S3-OqUI;TQRkKr35Ml_aniLQ9QG=iY?N5EfzL}uK}%74)MpfQ zk9A0c{5WG2us`ZuAPDJb1BAa-X3<91uxy5ZA8eL=A(`8*qhOf?bRXw7AQEzjsK!q= zan3%YL6|OOXAjpyHnV6GJ>Jd+I1rn8N$eMWQ7#Jk>*Smb@^;Scb%W21&<48wq=RB1 z=vB0PR!O9Hm_;3)VTh>{j-4^-($OXeE)2Qt?jTzQmkjys6@1OKQTRBSgXlLK{Q>cR z0-cIC4FD~ry_~ZN5ie~K9cG8uQ74FMC9;k7-)*%2k}b{}(!-)H%(bf>@G6;fX8#ts#AKFhBL>Yx0=yk~wq>u~A0;CWWcbILq+ss-Y&6>4R zJFL_^*L3JgeMYeevJI|_oe=gGhlG}Y$y~6E?c(Gh`06p>5bS=CUY1-K3cziL)Hb^z z9a|m4sIHSlpwJ?fg%+WO76HzUBn-v2okd}OTr&2r#j2HZ9NT$GvO2%d03tftMv3<8 z4DcL)mJ*dcoX!mKsGdbTOcc)3PP+MqKtv5J+NC47ubo4%d%HWxAlJ+Jf}Lc409w@m zv?@`CR>eW98il(-9u*93GL%M*ai1DDl+SD2Mikvm?`u298CTJO9OSA2W6@xU4AG7Z z;E-{nLvwKMf#k`M@kSQyfm;V+7={>zJIHF8=%U-B|o~9l$%Ayh3*$4R;rB|yP3a<~gWVu8RP~!vi?jU=i zw)U}TZ~1kG3`2G7GoQ|gymc2=a@rpv2Pus)=yCmgI124MyerJ21G00Jqf78;1&amg2Cov}YCo_V?;uIoTiUP^(6ACgvD~oyBr)o2a1H0- zNF?Y%fSk)=v$6EkWLgDJUtap*>_RThcPY1>0!B_%np4%tsRB8Tvq&*ad~%33jd5ri zap){Mih{$HAfhu7t)i}fDZB$ z5So@yCz*y)oUSazY07*WnD>wrl;KeprJ&H|Fyv;J@zyrCSG!<;uNur}w;>fT_K;~7 z9qlBUP!|lbF9cpgJapm==WLXPkePOa-){OsS;=qO6hhHXLB~snNS1QU0D)a07G)Q( zbDQjPMh`dyz zODxiimAvLPTcl)veZX#TA@{*~?nbX%onv!gU9@gv+qP{xouuQuF+1+q=8lbyZQHhO zqhs5~?Q`#^bE{U>`U9)>o;Bw)$G{2lTkZ|)D^%se(>CXD&X_|nskCM%*P$m`m;ntY z@3mZoEgH6Q&*(ov{}JLv2cpJT+fz zd?)BNzzIF|;ai7~cBYNITA339K?lh`Awf7ugNVUp#Cn<+26Ov;cVi*W@;I<#uxeP#Qf{C+P}|qbl9{{- z8K}t@X$UaX9jP8Q38iSenr^JaWtn2$w?{OcG5SO>*W55`JGEbpN4(O>0-RBt%O6NM zpjHYt+!`;ZrKxV(_t7lvRc#0bEA>TREjsQHlHWFbnN3%=^seQ?ny4EF!8yYbJlBoR z<_eN@cWdUm74&;0_jPce;FvFcaG!M>_8FKe9>CuY!$G65GkmJy_O<`4U>4rhdR?eM)_qyQM}BG{ z_YPVgU?78IuWd;kJ6@N6l$UM=9oh%8i>YG;&js4~6w^BeYG^S?W_E6MTw+b-nj|H%jA;I*t`%rlY>$ zE+g-tX)xbD8r1&P0wGzW47r! z7+bOHEh^Rf^1wVt^8TBl0T*H^8ciRp$(NEEL%8I))~wl?C_}vwe-@-H zgWbo4M0dKz#hE=m-?VBHUzVoaD=sEovJbavQRFS8L6cl0@CiujOwhw};?fh%RA_6} zmgbryEI*$}4;z0Hi$v0mTqJsnuU2p<6CA`hWu9Y^ydiYk zGx}&r>XUdHZ3Rep3M2ITieD}~huqC*4Ywx(Zn0nnuZSZ}&wwp@F)t&Z_NuDMAka6~hA7wXiU>ZP9}Ln~#;R!bEr*Hd9i1Z=%t zWe!Ih6E`!TqhM-f)WcShXN9CnMFx<-AofK-MfE|=De(^?*WDpI2Yi;Qrs9Z+mj?w6 z#y-1TJgGm~@t&?-3j$lm?_2M_KF?RZQn67ez>krF*Zvo&VL~T=l2JTS6r;s?#iT^f zu0q@fDz-&vo!^*$)dw0PiWefA|0}0Yu4*n#Hr2KPtv(2ve67u6C`DbG$K3ysQN>qY z%~To^NJ3+&y$(C2^niwg@cX}u_)E=nhXC~oN*z5-)vD1-3q~5GinR9M{FEaMY9xc6 zrGW8%2;mE8xrKU%vP+{xld8(OtLh3JmTydSZ8h%w9AbWait&#DLrl1oC3_CRd|b{^ zx^j^zP|CF5o#irrf~(RbBh8waQ=3AnJt1xR^7x9V_=P&_B!92e{*oso9*aVVMX*b^ z!TFP7kyze7U%S*Hq6K0aNsoi@jU8mJSt=shn9rN-WuIwN%MsLN)xteaA zgMSUA>8My4@W9&!`fEEeDeFO;nOlH*hHjWE(}>_C+G)MeBFOkX%8)=FTXIF3e{w$i z{HB!Mmr{}mny3suJU9JEys<%0{AZo9!3T2@#CMF`AMB~h}{hKVB0sK6+0Svl;T_K#^cy?o&C`4RL$ znRQdMe4~iRZ^XY@%BUT5i*PoXw2(jd(uJ02-_JF2@ByrvJNI%({sgi4LPdn|x%6F^ z4wMu&cZ-hI2W1{xX@#_sIrqw~Od$%~Qq<@TbcI;y+4$_s@69mx>aH|_sR>t%&)-wT zC>|vqp|pgA0aq!KX(`%4Bnya7741cYS`2K-$OEy7mExzt*0OG_XOl*3Q)M1>?Zexk z_zhze%GJEUKQM^`1Yy=gvJOs2fCe-ZU={y76G}M?B*6-}8rh_XfRRftZ0=Z8zX<&? zkJgYy46ZePZy)3C$}wX`eb*_FbzD;J(QSSF`nJZ=px2mRL0@OjKm^E+74Ui(DOXRA zy2?w&c)Mz4`_31=>8!E+qJ$2mI8Jl1RtVrdO{sq3uuR>1|ZcSVS z9fl$`&{H(27`gU7UG#1Y^jo!quXhBFT&oRJlH?LMbJ07EQX(}}P;l1oLL}?8qGs#2 z$|)E8;S>1TPjvXi+VP*1I*t_CQ?_kf$_vFJw8Vamoc*gFf;fOZkgYXh6L#+iXHcdo zU@o4UDFvIRMux)w#*##}ZnrpzM{m^d|^L`eI|`r&~PE z%QgknR>olOJH@We#yb`1VJd6p;Hp}${^ME zbJ)XY9aWaqJUP(ay*3hhbB*;=5xuxYdV9~9<$IZ`$3BI~at|3(VOQYRm<)9O+Su)t z@5>}(S&{qDSNLa2jUD*u11qim$QNi1_d!k8%_mP!>-F~Dd7(c3^*i@F-|4-CkMNVr z%U9~Q{(KGp+4-u}`-`hSb%r-1iJ|^T&MfIv-}@t4FB(w7lnr@z6roZ1bdOl{pW+ZdxiL>>+Tt8oj;n^?x zgo(Ax-|vhzCiFdbRyWsrF0RcxzPgO1gy-%vI8ABtaG({heVLq^jwRoN`&yK@fy=-I zefQgqIw0BO9`jk8+V`eT7Q0)>_g1^U@jSS~YjZ{a`zp35BjxMqd0PSitWH)>?u576 zg}A#eC)<*r0OI=Zhx-Y^F8#H)Y4Yt4>N*}z7;O8|$~~Rw8pQ{zP3ZUsmygPs>yg^) z0W(szD;})PYyOJ;5~n;oe`uK*7R|kA0JQ}P@O?{jtL_%`ad^f@Jv$f+4;*F)`tBbH zW$j+7+|QdFM#AGK`#s=K>X^-w&1*R@nBxB*i%M`CgG!c)8GF0B8X^wVCEX5N$ew)q z)(;pZ*(w@!Y3_>qqJ(A(6Pcut;uSVd7j=shq(OC%{G9Ppmd3rNQSIoTleE1`YR+Bx zfJo-w(iQm$*z9_D>*jMAwW_4d(6e$v0rM7&f+OTC&Hyi^I)u~|8v#DAget@&b0~z) za_qb*^qfw&$5nMsO^G(Q3Uf&{yG7fT`&+N(dFg9|m;En+xq34**JGNeU_u+wtVmUu z{KpV9^?aF<`HI3W72^!Vit=gnVZlpBp!oHBMd5`T@*88AzB#Z51*z}Xz$Ko;aRadl zOb-Hq&p)#VaS45+^oDbwkOUC&E1$SH<#c8)r-ZnKc~)^&zc431rx+m!M_}-J;DF0N!I^w zO`_#xk1>*#GgsO8HxN%U9g=j=*wEAfHC}x_z?Bk$9M%H#9_6P1MA*{B)la-e=9!C# zl4$G62`F$^Ez9c6r~VfCdX53DZ`O4|CDqfxnI_2uZ#QNo>2_CJSFsE z-wjBvJkkExZEL=KPA*v{9;nq~>fXsI!(gR_oEP5a%1aqfe@yYTb1?gb!eEG7hl@|-}(8{-(o4hC~?6{O#skrmXUJ(p= zVrR)Q*4WOOP8w3iF)A&YKJ7M4^UCV8)S%1-6s7l`KwWy&a04r( zI$HtuvHBW8Uaf-%abZ|-K`I-XLZOjN9HuuyHLbMX)CGM^F&Zok;iNQOCmQDhD%mus ze6g*6XOgKW>X0lFmZ}CB1q%@mr&nq*KaR~ zu%f1DungMJ{m%i(OzKBYtup2luBr~*iMzD#g->;ejJa?CxAERg2=tG$s3`QUk+3Y! zfOw*m24N!PAv;Cvtfd!kE2e3PBMCkT@`9c=@wa?8syeZ11LsA*|G=B|+hiF(lZe96i;{HnVpW~%K8y6oGPpLacw84xm}x$V{RPnl`Z)>5 z*w0{aTnZ6jJ8y9G#bjQU$?nJ;ZkgDUa%75c7k=XEOBOdA2NZ5DKpfcKv*>0>q4*SL zS{?oLSab1xYrwAlv2`@@9hh?qt1k-SOGRs#gSL5vR40-s27s9ru5|cZ6tTu+uuIY& zuj7o2;F{4Kzu`#jML8wj-~L+|XV1fWj4W4a&R~&m=4L)OfH;%~R z5*;eRj=)g`bSO(Mqg>Y~rSD97>Es+%C0 zproxy{%$ZYK0u*Frfw6Uj6qBBFXs1A{xcb1(J)-17N=#Dv2*Xz-ln88s&a;<#UXnm zdKQ-VhC&^lIhJlCbnNFiigm!H#EWx=s>!h;b>yH13=Y`DixE4Ku+Jb9c3jdH^PaQJ zB9zP?lK)Ca*<$-gAEkSRGy#pIql9i%+r@bEF(DUz1YY@R8N6ASu+a5+IuPw7f*8jvxP=G>JGJaoFtPuLbn7Vp$vLue zM5bZG;t*@jWrc76Wh2BLY3XCa|LEq0n?5r`BGetTc>7og+B|~R?ay)Ni{@uDKgdiv z<;`ocn-YKMO|I1k{ga-U!p0k2Ym7T#>4U8v$hITJe>p6S)EDKdALZ7vmt~-sLO?b2Hw7bvQXT-LlG(?nOVV$D7aR&v7{d6qY_blk`cv5S7=2>0_3 z0LQR|SbPR2+w`oy^q71m(NYSPb`Dhz7KOGDFq91GTbs*lCQ96tyWZG~+~ojoDe_{% z1mdw)Pq7`bUenm`7KzzZjOk*mzNn+l07>t9Sh*@uWzJHi3D@O7|3TvYKwoKIsIHWR zm`o}wmqcU%4cwT+2gK_7g1ANbZ~ONhSn?BeeTpXBAKQ#IgG5#dW zrH=o%6maq%cAnJVdM>htQjdU;L;dC2JuJitCp-#SaRiRRJI=w~CV#l#qdXz{`in`16qngbIhi$63w&G9{c5t=zp956A; zVXoj+<4*KENZs)P_wXQHu(KNAz?;#0-z|LkPiky2N`^B(kRL2>5Ar|-2u#V zZn@MK$FqHnf7A0N?|#+`W@46q+w&`JV%7_aI?t``@lJ<3_Zcfj^jh*fIwJvM*1h4i zxQtb<-68X#wiMrl3YJtASQcxpFCDp(=l06TJBH1>!>W&#(D5!z`K8lk`uV|EpJWHA zEeqW&)@i0WZ5#MIc*AgPPe20eWbsLX8?5V(FL4I7 z#;9~Qpwg}*pm`z*F!fNY(TGX-G%5w3v5wbF z1Zj0eN2+ZGOP;0F4EWN4OlZ?CXE?}Fl9jGyqTP*}A$r>6LkP4G#tqOrY_?<{ZyONV zAo2T)BEl%*Y>#0pJ4enLCLt7W8h1tQX75ZMRtxR98tiLnoJ470)f8X?kQvs^me1{DTg?|aSgeKp7J_&Ua9s_$VeYAE!p3UsR605%}iVx*JWZ*-n~wW>HKi zk$(9NlGqT%0fEBZ9qii3ovT#tl?sJCL&(l&3Np27Kg(n##Q>&P!Wonhny zkafe@ZL5~kYoc6Qk0-2yQud6=siMy?MyG$1=1-_Ccf{;^!iHeh9j`c*I-_x#Hr7wiv^uA|q++DL;x1oT?aet2>|J`{s z^T&H&=&y3Z*UygzyX~HXVKZzXQQM)$zVh;A;B8l!fYImrzq@-`X8nxMNM7O34`L|* zD{K8Ox;H7i!oQ7JP(@fX@2NuPmyWlZaD$(>tM9?4zoJgYcE?@I^T%PR9f2oL>oN6a z5%p+aRgL%Y!M7`c=66;`$@|so(YtUtZ_oZ5JnX%0#Km)2|=2iZhez-$0aNFJeDr075MqrKq-1_OX z{r6L3$@l54+kVZ~?Q^&AckX8q_4m{o&Q%}nK+@KY0Z=q)?|tnc^K z-ki0&A!S-_lJ&SdJ%*si5}iZ{+z!0Aqj&Xu$_^~eFmLPEPrUC_3wb-6wtfjSSHJGp zn@ZLAx;_r@xBC*ib@!OgwcC8DE)3+@Y}3lM<)7imeRS1dD zbD+~^$K?ZdcXB3ky!?HQ}rTy1#`}#w+mVhs#5vg!1sd1l%Mr$d`unQI zjIt=s6fe*+Cg5Y9qyUbBj8dneUp^KRGl+8YC){S|{MJ#lf61++IeAM%P5-{-1R-UY zO22ijX67NW`{?Hgw_{CN#PtXx&iA%p>Kt%>5X=WMcTvKjKa64t{$?w(cTQv*i&modfu68#jfB9=gb_2 zzNP7gCmtBNmGW4>k_PPtY5H+F&Rj?f>P*~h+#y^VY!^Th>-zd^pig<`*v zghP6Qd!mW^%ye!8Ur0X~e3A4=zN5b}d;EcLAlS}b;=}5r`k#h(2l@u`L+{^Qr+8&w z@1W|I=?SV+ev9kc@>Y0*O^{sOrg_Jt`52Vz`Pnw5J*&QqS%oJ1t1g|5T!wE5DnuAByXnb7lK1)zI4Jyp z9UlySt$RC<9yU^BGqhyJD_*L6AT7?}BS%2HHk}^#$|O$Fnl4tU1z(1I7XfF|@3e%r zMeB8zA>|?gl{#=r&9ukgpK|TqOV*Q^?5{HFifMpkaUL7HX(HU?0;RoV{hM{U()gKG zDml22JZpubda+8|p6V&*XR$FG`~7?Yb{!@LZVq z6*F0<5qV}6bFe>?K_}C;=*iZ0l)H|YvPB~i(xgWt*DO75PQ`Qj-(xh~s&MVBRqxIP)?7R?&f3gO zR7QyRHYJwi6?Li>bcgcMdUaGyS*?+&U*~TGT>q*6usdOYb(W+?nQ|PPUCI3|I#{V? z&GHCF5MKIrs+%?iQ)vpf)*iohLNP3jHE<2!+MT$=mN@}Z?V5Dcm@=3R;+Hp5iE_2J zC()xsWGzYQEWW&}^K}%hrcdYmSQD7BcWJXp)zeG@npUB|nChYvxsKFlRq|Gr>dFQh zjFWloPE$GZ4zesw{9C;eWJy*CTCQ-W>B6197#fAetqv(=%dOU!ZeeM^gaFFD6&Qc8 zt(Cfq;0H?)=p>%Ge&){ zU?WLUe&AriqCC>}TG#!gU&IWnQ8`5gc?n50P~J>V{7)7>XAeT> zK2ew?+}cs7o(IAmtN$2!=9s&bEU4)V6cYcV|H}kr{)c*_i6(IILVS3Xs<3HM(e0MP z9N*?i_J<=Mg-uSa!HjKREv4i}onuE!@rIUsOF^-Px&PIU^iR)1q%yHP>@jn;QRTUK z49)Qz>Ocv(Hp0lBEyV$W zwMgFVAkpi_hk9=@Z4UD|66NaKLc-mK@e2@vF(bCyDsCz7dX0NZ0OhVO@Y!$nZdVTa)T_6$4^IV`2^(B^C zBhxzhRSBzu;3Xz`qhi#&_#WswGf`pakgeyBi@bE40&pYd=tv(9QlfmRAzwZkqGItq z)N~9^&rE7)qlX_rA+~(DRO=4`vgn}`OkDJOw3IeE-Q-CY!8k4R{un~^#vny@(LE&9 ztB%#ND6`{CQvOdm*hSmgz+Y~#t@wc*g8^Jewrv#xr@tgjBd7)GD>!J;(^o0k4N!Bk z{_2f7RWuaUJ~Gtfi`1yK;GDU}>OoIR!l<|W{Y9d$5h?HlL~s_tx=zOSdEhLq9AAib>lA&Cm#v~ED_;#++ZYA@+i6ZnK6*>ZdQVn&O4 z*EgK(OQjqnqf`H@+i|w5hS*`yTC{vKS|0Ll_~KcW*IaH05u#&-2(8W;)vr{>8C7HH z4id6qiHKeS;1LDwK4}jWRN%P|uxMKGw3ZtpBZxPJh}UpoAR8Y;+3c^5d(q<-kB}Kv z?C+(n46&|AR5Z9VV{QLu1z0c5U+Od$y{Wr83&@4)gW*24O?c*jry26z~|4g!ue0V$Eivnq6iyJNJO zx5hmC>{~-}3|z?YPI=N@C8ju*jHt6m|L`kD#P?#4NtK{)Or2C~@Gc;CS2*&!j~RE} zw<;IWIhG4pC#S~`2#N~qC#1VE5wrWXYbx-ca*+|=u-?UJ+-Qnr49WySY5uk(+Fx7>H zD;D1`N0=kc2Bv7Vd4)@?L%_Wei#fmRoyx)#!>=pn7YWOZjUE*VJ3NFxa|)T=+1DBd z=f+{r+R27pu*ES9=~Bs+WK7pJimnvg;`9RmQ#(fMGM5nmEk}zgce>Ai#}Ym+I?EJK zqBY0OC}#~VN0&|To=-5Lx?T`ti+oK)H^CDv?h-B5`j^K%(BdC$$R<&&AvoZ*BRU41 zR$%TGbnK(FwnqlJnpCzYC$hKW@uLDYpNBV(2TeEeo8Iu7CimknFRWv}`ft_QlWQMX z9S31v)sMrjz$hR)j`Q~r$=2Ar-wb@|e8Blb%uqF2gEH2V`em7Cagc^TX52wGlE2;} z#pvj&^huhJb|qkV+mc^&SJ+v?uv=eOLp-Udu(;_T3MGI)=T6aa4U<+`exI=toR^ z&MP&IfSEi$XpKUz=HNbCc2QkRlVfG{!3K7r8hc!`0u!ZF(pcf!H<^Ym8@Q$|BMv&zop(Ny2ogJ8}HUtnEr8XL&fG zVHD$nX-D0wD)iULqZX3uLO_(%ids5$elxAuL<9flUxD`=*GqEmz#bI6j2unP1%zYsj0Pk+u8 z{Bpew*HiO@g*Mm%<$?FRX7P*P6sN!QBZzWdkU_z0QWeOcZqH}NjSqG(Gl+jHt zOFo`UfTG?^yR(k|L(P{Vf93xe?a&s5|p&K-(`1oO_WeN{-JKM{>B^uhHk$>y}frH zzx_LV6P_!28aE{~pmAJ{zdSJCqU!45O65ch|p9QY> zDd2GuO~*ojF+4u3^+bMm+mG_K?^O}xkIkO6@5pO6#U)R<*{yA5VkBcXR)%`dL zjjc$mrx#p%ujRe$*Pspd94S2=E+S`_klFa`SL3S>hepGh575||K%%w{@_)?VRH>`S zQ6Hk$KT=oEqf!F(N8{9U3LYlc?InVDVH+AQ?kV5g0(Ye&GpT@-(D~RY<%*(OkL5en z@j>>OUE3WdHvaKAt%h(k*Y23c?=;;Zfy=SKYAx3fgA)%mPLVEZMtp(XT2mVziv{xS zGuN$b@9(JE9p~izjLY5IS;mfkm5N3`O#W&{Ts1K366+3h_ZU6u*&j2mRP*IH9Sb|Y zpLs76ey>K4WD5gn^bJkEAx}3)1B3uOiEn|-;|x^xCeg=Iu-OOjynW`|=i@>4ecY9k z^F{SAmeTXKvTaTKJwv>`0SD*%dbq6rm0;Vs-E-w}UqnrO3Cx}7>wLM6gmlaMgaUt= z3xz)-f!CgSJ2&s!6@Kn<{aD|x4&kpW=I<}y`}IiJ7x2Eku=+wCiQb*t>goE8C4~3A z=hY*;@kLB{T(#}{k`sOXt@qwT{#t}E@Mtx?M*Rz^)8Y8xhkQ`3ZPN$}A?Pk^m8-8O#!V*bzmcnE|?1}ye2n&0` zRl1=kA}fWy-OtS>f_Tg|xE6cBu0)J2uK1<)pIQyBu}xH6Fjf;5JVQEzB?I33p5{h} zlUy=m+PdEq4W61u>2KGTyj3;rdh0tQuTA}vR3Lry_dB%eda;MnZprw^TPaFt9GfZl zct|@N<}@qT2@zN=y!_g;Yqll4R>}i-6QE4+C6FuS;-w@JJIqx$yCC z`9gvfSutE5|DX3ihPjp-FnG^km{kw8IYoPqOk1aRoM;7Y_vMsne(+^KanWaE7x((0 zwgL`iB$JH=|2bi{zS8_GgwdP;tyU|QjGBn1Z;WZI%LApyvKq z9yFdJebbVYSFSd$9`s)$syZ$&S3`%D>B?C>BW9>aT-iNN1u&t~89sAdNhQ?o)1G9Hs$P)%Is%rj5fIQis3)!c6y=nBlJ-^0GU4KvCd#?FHEJ687bIU6%_!q5TOeu?siV7IDi0SFyjkmYEG@hEkt-riuu01|{x9`2O zwyy~uuR7|Nj&+{x0S(3Dt!Yb#{$nfmrQ>_Ty~B^Z#W1yUjC<&+I}b=Jx+KODSz`wN z%<^Q$3S~R_#PS9C)3`WQ+ALf}GuEUTweqC5IU`>RpxaFJ@j*qT;vgb8#Ji41NUK~p zby`t7dVkrOQ_%L6UcJe2%e;*zj;s`_B2y8&-i49zvEbA@<`_zN!`n=Qv)%hghdjiC`wctC zeLXQvW!y%GRppp`8oh64nr%Fo^+;+}{RDj)f8Ytw3yU3>fI8hi`ZgD*uYk%!PN`u2 zS*DqYG|cl%o=S#{ibm|3^P3Oq`aV#y_-8Eij*c%43bI z^RXurP3ts#G3lt>P(4**&_zl)DP8I2gE$k^NlFig=;j$ERh)GgWC{OAkT%Gofy1~i z<26iAw&lYm36NV5#GQuknNZH-dE`it*OT65*V}D!gt8Hkf?ID2K=uEJ$g#-$T-H+#Hrb*+e5nZ&snVx8=bzVo8-E&bFX$Bt6KVpEGqkrNWss{7im zlr%9lQMj38UrHZs+ihdz3N=wP*&0hdj(FDRCPOSc0J^6I%aTXm306F8wFr5sK}E2c zhsH-cDIg%`+m^UiysG%H{v(e`-D+EkbCW(}8LWh-$#s~g{*#X%vOs?7s16_#*~xLV zGkjxrqiS6hrJD6)ZZ*BKUdUodG340o!Y=X-9e=-G9} z^9U$@Ym1*+LzMXSV>0=w*zGHcF@w~HRSEUWl<#PI^=z|jX)ug5h-(6We>=|-;Gjx< z!1YWfsx{yTI7b@eFct5Tgaq#Kg!FJ7rt*qG0DC_QiidI%Te@wH%X=4ferXVMKOR*| z_Cu&OXhB!-teNB7z8_STm=;K`Qd-R=FP!b)F1#%-v@aKlQxURdDIlb?t`Xd1%>8yK z|Buzet%u+tlHE7DN4g-DAS%2eTKnIh7T<=2_PKP*aU`YCn6czgMCtUIcY!rMIR;%( z6F>?Hoa)oGS7Isp4%a2Ed^jOw{FKvtNy~mZGo>O=YTA`L2=n9a86l z`{jxUIgm}a0HMO)^wQfGRC%BNc8-~N{W;V|JT`nYUM|$dEZJ(h&|%>q6RO;ZF8vW%0OvDp359E! z0k)wnI&j1V*W9egOU^1@>yjF2RNWM87Z1+b5Cid-V)aevuyQazzy?GVAI2y^Z?lBu zVI9J%@8GvHH#aRD#SC5|(V1!{t*dlF-rx(?8bW2FI9zWtjd;w7PP}6cm5O=klURoV z>Q3VT!7WuVn(}hcdVt@$C_uW;Q{^X)-l|I@7*!j z>{izO1OEEw$!}HL*_TJObNj4Xah8LgUap;A&A}P9Ui6Ew(v#NvSz&2R;VyXI(D@bc zi?DrM{_Wt4e;v9L$SkNY7maUzMN?BQFPPBS9^H}~^utvC-pH8K?!F)R&)2MT)#=TM zqZkk{E|&(_G7}R9vDs=Z>=L-37ly4eLRWs@XUNouemJt}@+(Wf>=M-fB`WL7Jjhz>hj}uB ztCbOQe9+nx{%l#Ru9Ai8AqxI^Sp$Xnxorh;9<<)2^uA7oJ|-YqEjOy<--&9&^{Clw zf?Y||Ke~-BVH(xPsz)(P~$l}jN03bTzg!j!gWR3z_1B)>KNb0PT$g^{BBKZ*f{_#GTHV$<^^OVL>N(bd3T2+2RK2Z<=M{7sQvjr`zPERkJ#11q%!SEKvb z!lTy$C$dDRi7xsK+6Hawp}n&DS_MxAK-9?fRZ3+!cjm;%YKNoBi?eg>x=cR*m*_tZh_q+DCk3-G=mqxIlX!tpUWZ=hdT zwj12ihVfrwx}{%f`tkY|+!;X&Q`FJQ?co`Zypi&cFL?$ELzBya2mk1jsI{tHBD(Oj z;uj`!8!sn1b}QA>nd3MxT-#~c-6Tj}wXykdEpg+AIeFO@9r>>9L$>+=N8^v`iVLz$ zT7@=%iaUhwMP|x|I0+V!$t4?sf)_8wi-^2JRa@G<-5xOH&iLcFr;d47@^hJ6+&GogOM0eEe^GB;>X#~`J?w=yTgBv5n>)^ z=otJ{gAgkKTC*^fCLY-XdApEw#>y!o)pz3H6{dCSQJkyL(zI{^nZ8STcxpy1N%U1J zjT6v@cHG)j;1O^wv`M4$Qu66fk1-|EUC1G+R;X1C&Br1f9ep(O7n_ZA*UaeSml`XA zhBcu|5A!OFNuPMAPjWV|YkQ;q5B4G!uYOqbK8APRfgpo|9bCU(IRz>O=!#E;??;AO zp=b92(f*bws`_E~@2Drw8~!m9&!2O>Xas<&H2@?St|q&oHyQB$=%Wi1{_)=pO1{W3 zG6`BYO&zp>=Ej14<39YzHPyQ_QK&!B1Kx=!UsjWH!QO*az(3(7rw;jwa86**h^VYx zEb03tYAfGqPMiIl5V8?;L}4hz#KJRj5b_(rjr4^fI|V%Pm3Rf^6Qvo}$lFAa9W!8V z9Xh}XcF-;u&5j&2D0DC)N0-O4wI(2{^!%D1%5Pg=P zNdbO6{P!ca4(jC`z3ulM8qEDC${ChRZ3xb}<?u*fpEf0e#;Svu{(xf213CwG;yA4o$^yvCvIM!XTTS6t9g@-9DWGj{cl zZS%+lAn6C#-5~`)=>>Kl_t0Cbb|wc;P+=hY=zJ6O&jp14l?!wf9`j5m&Q9i6bI{P2 zQQJO?ERY$4_lsS>NVWU3&zI0wov1foF-1g9NZqf-T))(CpZgTjB2<^u9i9NP6YD}+ zLEp79A^qsvnm>A9U}aD+7MeTE`yaICHyE#RiM@~-b%Y*AnPSefI$_0|Vhg8T;jZRKkf!BQe1l9Ga=(Cmu_zvia#ct<}J{}{v$e&H%Y zOl}5cDWFUJAFj?ZHn6DQ`kmUH+U?Y~ZQJJ5w%b$Nc00AEwmG%!scrk6=icN=-ka>? zoV`DtFDKbq|FzZ+1P1Ruz%gyd;CgDni{R`_`ph9$UZL3*<&C40xQ;cT_-f)^nQVn_ zitP*CX@I5~w;PVbN5ObojnzP5<%&0`+q^wTqgROi)4el4KpkZ5Y5fIhpIihOsDoZF zEBiCCMZoQoe>pFI9TF@1{Ezghbi zP6C|6eVKcI33n!uA|e@=&Mw}E8=xM9by8Oun*r?W{x8lyfatXVvJKI9X+e*|oG%v) zqa9xGw-!Q%euba!6v5YoyYK*rU8vHQ%~4Ofee(K`W9^_Gu@aB*YAt~vEHULX4{6?nFPM|0EH`18X z@6vv%79NfdgNVI+9%x@+a|&Q7yt?r`B`C>5?NWXx{{x6Azo%h=egSAEpSIaOF}1)t z;u~eXc0Y_SOJtdwpQZPDRn%OHv_=k8Am7V&KX^Zp}=1@%lUWlUzaI^rWTDca7t6Owil*X~N)N3F`P} z+AB<)4Ie$>d?D2Sdx8l|#Bl1zn%dERscfm%GiOY9e z%6l)f;dv{wTKI;7G(|f3gh$--w&mdK+^hFhzh2rCHY@Ay2OzB>y60_L=;)o>5_k{u z`dK_Yn->n-BgYBoY_R>Cu{W>f^vu{Uls;?j&nf3Q|M75B7n zje-t&ZZ-80xnH4M$hQ z8lK+jx&*v7T(t(%ev~2kmX$h`e#e+!z$o-^DXiT@$~<$qoY1=3;Bhx|o7y;&o(U8E z75*c*HkvMBOAy)s10%QqMQDgad9W!OTnIL?V8$jQ*V&gn?4ujuJ>C5C4wxDTrl5%i zvpF7PXX!{`2gwQ~8*BBAJ_?#5y+3=s!mq-cvjP3X&pXkM3sYa3IOovxEL?*+exZ?U z{=tv1a8EbHB@WczgP5WcQ#}z6)8SLupUh`a;V)cWgLedE?IjPNE4cYik-3Cq;;YVK zD}VMjh;cff1j3{FdQeGpzl2H8+k^&n4Je2ob;+!B4RR9z{yU$k7n?gz#D*jAojdLx zB7k?PC%bOj=dh;M+(-QICHoHh(3#-xE7&es^)?0j^|N<4rsrfwTXU{^IOgD{^Bwz5 zXRCL!+xL&oT#bl_^A^vVy|u#_-tNg~uIdY~yo0uLoVV6yYptQ5{32ERUI=yB-g%^6 zT2~k2^~slU=d}h!#k$vG)&ruGVP!fK+d#+lLZa^*As%j~$KQG_w_0VbDC7eJ&c%Do z-#vWt^*>^x(TmX6cD)XvEY)lrA!FoYl7`rZqkJzsO!>}(14>B>_4X2`BUCY18?(w9 zE#+LLitVtx)mn^qM;v7ye%#|5AXR#$E7?cT?vxeE2$>vN-T2m(Rat;5gcwOFn&>$1+ z+`!eCSiRqv$~pL=GP|?_N8rvrfwxsoYZkRks6rup7v>6MdHd--zVRyciNH+ymf5RS zKRI-@QthfsjW{-in259T(n{joMIbqc70=Z-C!MqC;Nh6HD!e&jC6Y6_DC9+Oxmy1Pk6M{Ea&w z4x*p06cxq!OiD?K#sgUWW3=$&WO?*+T30k-bg41aQ7W~)^sBK|0<+NApZf)+)D6_tD}K{&{Cwa#KQ^!@FPL%r_FpQsg{s%_LNlv4;7 z%vv6o?JnHgy^B&oK`T!y?685~URW2>c zH1WH^*)nwL6mh+biiIlS8xNx*8=;Whi2hb!(Q0ulWX!{QwIZ4$wk29^yzqcr_qVp~ zLYfCdF7|`srqu#w%wh$qr!xIU8Ta%M0XA)UT1ASOI+H;Q`SsGNT_c;3*+K-y-v*x~ z-y&721$hpG;;p{}>#Id-Y0VJh2$tRsoyZ$Y<6{UktzBs`997rhi>=f3)U*BjMQYf< z_?W}ot1 zD;Tgw3+JTH?*zs9Iav1iG(ur(!qHj%Y*E>QLR4v$PX{|!%4C{+v&`z0%fF%Tab1^F z?KZ4tijDh;b>-3t*+~qk za4N26m94B2j}=AJW|DNO6)E$mi{;$kHON1vR?FU0wKMPEIn0|}`!liXtg4g&+hCj~ zDr?KRyGJ}{jE);yf>^duPohA-25lSZdf|in0@Ni-%nsKgM(wf~h6&M%=@Jmtd;867 zUCKIMIoDw>-0nyhjOAyqR=rrLZVW0hwJ)!t{pITY)1oid$tbe3ixa)?GFhmF2cxT~ z(IKlb8M?Nq)KybsC(`6$I!wBvT65WnRn;Qz-dpGoFn>rIZylYFwta!G>hIo}&s(2CZ485#3Bz#)FNS zl>i*&hit67ox1oxE|bU~Pr2r%TG}jGCXp&J^h{dIdYlm~q9NJANi1t%b}1v#k~T)d zbP=LSPMCMZ3-R?k68FC$2X7V89rhAE&0H-Xo=p#>OwwjvUGB7xPac)M8-Q~4LR$Se z4CV#s%3J3hx18p=q!Z@8rMVZeL@g5iYamV~Vw;?BvH5VeotS{sysDgoU>Pa0ObYn} zW=3lVnbMr@OI~Gpi_HZL1kxs@V2=lY;Xg z6KjXR&^e$wng5Lu1!>}qqe{rBD)b$pO;qDtrteWQi`JKbj74Ox9-Daf(G;-{CGA3? zZaY?M-B_!+24s)!O**~AXtf9s87%hF&Fj#;V3&9%9%odu*=hzP2vR*J4lguy0-B05 zHUHRDpC?d|b=x!?_sZDB`H1i0Zxa7$WHyDXsHd5e8fIb~V=96j(iUi6|AO#6TlAoni!8A! zj_O8!w%i10%SOq$>2A$s7d2m7zz*kWi7X0KPC>yH95KA~N(UOIeY}92Mi{2$2wZr_ zC>|N(jlkbRTBE{w4?H*BvxgkQuXGiIO}~u`jj0_$MQqiEtWma2?y_pTkk|F7>ZBqn ztnyHnmC(xZ699X}@w7i|!?LS~IYtllRb1@#HY33OZrQpIm}0xXu?w8uNuT0dieRTf zf~$y4tOOYOd4ng)SWh&RnxP+@zP_+qt08S6c#2SpX^Ks}G|x8P;skpcvWSbaaphJi z&52zd#9tj~T|}j;zqsFS1CL_$6B3_OS51$6D~Z}&t>kzYA)mOq*h&-^IefJmsc3;n zL_>i2v=(ij-i4l{(~MCbS-jQ1GK@8$7z%<+oGuoZNX^H*T7mL>^Y1UgUJe|Hg5krg z9TKn?ck7npm?y)D#ud9dxvPI4{UBIvkQS9M`IG4PW9dICZ=+AMip@CFI}P=-hB>b2 zm6pGq^NAOJJKk|*PC?qSR}`!~SsP0|S0xZszZ`Az3w+(~j!y9>%|h!WS1Y%tQ0Y87 z|9+ED_u@s+$SsXe@IK3wa zK{tZbz6XyyCbC?1->3hix6m4x9P=zl_HUjremU$+$lb?yD*2s0Q?4I3LRs68r#gU8 z4thxi5ephvMuO1|r_lH|9bWG2@_ zI#HwZVfi4G(R|T0s+)C$IykL{2G1i&O8UdYVvdETStT%28#qsVgk1M=jm-@i7hrKkO>T9x#T_u*ZgdAEMxYO!F4of_X4L??D zO+3-Q*QTssfY7r=&FEaU=Ve8P8+`(=jJMoD)@~?#oxn03Vo_nHN>?Y!apW)R)`9ZC zw=&p7LJ=2X2j>lho+}b682lYOrXg^QM;<|u*aByNw7F%I@aqdi-Kij4|3Dx#2?7Q( zx=RFQdbZe2(A~*`f|XtgIy@F(B0iVHXsVil`N+Qt(R{Am?l4*1M&>=A=<)BMatUGm z3;y-FZTR?(og=jCUVH&Pf!$K^w%2ub&dkJ2gBM6-_9aZm0=d?7q^uvtU-CmjKibQ8ERW^;m?Qj95W9~gwT_45P zsT+=b!hKYUe8hB2O+-!R7=I|;2PhU!WA?ZTD%xnny) zmOv0CsmLx(`&lRXQ{7?#-T+)-agN9g7bQm!_X4b|60igZL{ZsNl1u#XjC(8Cj^*zZ zl7leXqS_e=@It|ATjan^{p6F#<&S;&BGChy{YwMEOTUqv>+#=M1=3EH&ij|{2l55_ zf_4~|ZwMj_Xs?euTt}#*zudaLJ!1GjkGUQ4Uv83zCN)PHuM8KIvi`G>~_ zs#Aa{c0`&d;)f{}il26|csH3X>zC8Lo9sQfc+ZG_kuE-Cvo|ou&qafIjO(53fIh;? zdv5KYw4I&M1*uJnoU>V#tr)6$0XWTL2UglU#0UU&Wrhd}zZ)H)j9ox{t9Kym+P(Fc z{~-wPHDKGG7C)a;iL1wS=KxBtiK!XqvG&vu>Y*KBld49CiqzIEq~nz-)||d|HvgA& zm^TOxzZOaO(_ML2OB~ZUG=6R|*e>SMwQiJb@#GqF1YU!2_Y(39;IJ@Sg_vX(1x-J9n&OX6H zV@jG2UefP@Vx}+FehVM{-vuaE4A%0%fWKG^ohIQN8)l5$J=mSIjdPi{kTkxNf92j_ z1#f3|e|>g$HT1dV=sI3Icm)akV4kB$3o^HDe%7i0xKzm2u)3oJtv zztDU1oCJFJtU&ZMm3~tWE+8x#G}TZVDeP$Fi%BQQRdYWK`}3VXGqUv7ROCHX^)ts8 zlCx0pP(;M1DBK_Ofz}|THcxOx<9YE_awOJ>KeJwhML`GydLO3=?4IQI0yW7)dYw@( z0=eI!4@B(8znL3p^bnRzr{~HW0+4Be7Madn{`^diG>z#s^G% zW?txSbZ!6lyzbL)`zNEv$t06;y+Z8U$tTZtHpk3ocW>5z6jVm% zNFOY$hj&x2Mo)WrK!Qo#<7~gsls~V@`;OgSGPj0=UneM+zOSzwcJ!6O9sm~B-)53f zp*Qc_10?!%zM8^jbp;N88{FnjK9Fp^#qn_^w)lum! zr)T(F=h%KeO6uXceNHhiP20F0jTNme`#c%d_^jX05jg+Sq}Kxc4sp)P&G|j5Z}f-r zbO_%*@;+xWU!Py16fVbI?4O?sr@uZ2(zf|qE(PMgR9<0T;=Yi8|JVbEl0WRx#IS~s z*7i;d^UdX6ASxp4O^dpI+fr#$9SFV}%SZ>WajcozxmRy?bZt5tyqd}O&O^pDA_$YR zYm-C@2QK|67s6>W{GOSwNoIjVr-n)_1*5dbVCDPByx5a}lc;dJdF7MmX=Y|_Z$2#d zRHMiLwdQe^sjv&E#QCOZ{8Z0&&q`I3Kb)Y80T+JK_jyl4)hQ(p%^a|sk6Z1~v9D%W zd2_z{l-V5msWA*CkVUBZ@GqsL?O^&e(U)OZemm7PAE2Q#_KNh7hwpJJdpYqE*k-=` z1hH+=adi9#iNWCcvd=o;3{YUVqwGw0-Fa=hI*X?DbH4;u-DSjaSl;A=1zzjjnmrV5 zRvcU&0&ZqccuJ0L!?ahsQ^E`~-mUYGeWmwqR|moh0Gi6*L_8BTCZz!qBz2H;nT-bo~*X6#8OiJhS>QM|w{ z(Y&xcL2m#O1`>pVM>3O+Yp4X<{_Us*xGt#GKojDQc$|bQp^A{JA8N#3q{>vxF#Afs z*i4c%ktEn*FLES8${v<<=x_DET>GD11&F;oeaC{gqIqeVw>FR>))?#6O*-3Tf*%hl zQ9P%Uf*(8MXF?2UQQ)xN0wHo znac`ugQ=ZXiRqp^tH?5ZZuQJ=k?qanPn|Jg%w`WgR*_k~hwTqm2JKSKS7R3=h^=T& zEoB^Pcy#aF?OBvg7JmR=t6^d~wf?{cVjNJ|##wiv3mKMrD#)!jIpM1xOKL9PyEPeF zOiDcrZY>^`dp$vVf{U)7{R$+m>AjHNhh{_rSN-f$4 zf=XN47h-oD6yyN%*!QCodRj!F$PkkkVc?p)6GGxIWhc}>5z+@1)d7cm2UIs$<{Chl z=rwHxZE!&M3)!ap#h)pZHmh?2+n%^3ad&K$sW5)b-JYR7Yo#sI@*f)}c8p?(6HYOH zV{Ym^tQY2Fam%a?PEp2!LW6}reZcmP&NJv#FV!&!0%xNj&AGqZ3h2YvdK>EP|KZYP z4}PM=L;XweBBV7G!IAB{?mN zxL%sr(na`dXypmX)-@xCY!+$Nnr3M00fLZNLta>nXl>_n$+ zUv|eO7dk03cP;C-3hw7l-Xakk)aW$OHtsP^I5uIHQ0Vsaw-GP~?sC?PZgfcq&6Tki zcGqu$6BQSlv@Za$gPY)e#!QWlZDlB`X7<^Ox}tl3GiOIw;A5wia=x6D(C%IC7EiVB5Ci0U^XSo--n!h_zW*&9B zcCj9MPc4<$bf-6~y&isWWc>UkLTX38QLW|Mwv-F9@~teLrAws5Dz<>$yF^UMmgCn` zx|I)cKEpTH8P0yHn?~7je9a|NvzR%o6O0n#jFg?If%Jk!Nx2CAlBT;OMIMa9;{!>V z2z%q#wR2dYJzU+3wXM2aY#9TYjE=ZUwo3BKNQ;h|N{U8_Qrk}}^(5!;ggCKOaPM4-{0nAkYCExsLblCE})TPvazF6K9o5#m~~LJgH~Pb7vUtyuO0~*_kXsD%@2iFqWuz6#Vp$F{irm6(fiiELeQWOgXF`>+H;X9QlcH#k!cIx{PU zJal5><(fO&w;2>s$}yBl)7t1L%2gM9Y8b&{Z;If{@)Ek%o)AZuv~Td8(P<{-$(M9Y zVlYGia*!v7zB=kJ!Db1xAPc=sJjuP{QRYA5Z$}Z;E=^cj(Ktv^`Aq8A zX`)3a_n>~sLhr>lmgFBZMWvA-Hau&;>yZQk_;W$^I> z4F_XXE#)m!g+pNB@h`V6HhOl-OCn0(HxnHPrM@Zy1|*{71SJ}Su|v|Oq=pNIO|XGD z0)C|N2IRB=SR|nk3Pe4R>Zl>_24Mo&Z2Jq>-2IfW&ia1rWB1s@slS=+MbgD@WFYBIX*YVA zSvJr@7qm=K2e*8gS)jC>SV7OF4A8(){159}P-QH+vEGg_=3c$O?ON~t!SO_&h#`Vw z)1(JH9CQ=C9Y1_i_?%}W6 z$34P+{xz!BCLgx9S<(Jj`Dlu`iag&Dk|DWMN67MJi7^8pQT)CiX9NqtkhWZxYP-l& z@b+n-$Of`(6bN_)E08ts(cRh*3xFk)-0rGpkGmueNEUeii?T>S7^8Z!OsA)w+Rdk) z!;N}T)fJv#0zEKiqQpJ%hJ(OurJJNp57_U>HQOF{ zf2wag)(zm%N;fICU$4!*^HMpsyPIBgpN|sa%0^T2#+-|oF9jTl+il<%8KpBTM%>EgQM-F`A zwp?baM(oy`KSK+TuWe0t?&sYK$e)u2Ju3tT20cDQdJrQD#=fD)4f-+gc;Aq(MQ1J- zMbZt~%a&nj0uG=cu+RZG^mJ_4l(QwPzB-yzTup9x^@rNOIKR3qPuK?H)O;&#p4<1- z*zX^Do#DLN?0C$+k@J8ZveeQAMK-9_8m1C=Tg(@=SL6CCGU1il`0FXwEbZ97bwR54RAWjup!LgP3qf@G}F%X+BW7}*1g+df_|;C{s?LmpoG zHZ8jglOI0%zE-(Qdr{w4h+*0}Nv@-*w@J64WEeLZ#kH!tC9kbCADnSw6=Dv>n{Qg4amzlSR`GNvuFx(pK z;D4fjo^|#?`HZkFzYyMKz2m+keBysXz0(6(U&ug0-b>Gsu+kUAe+P*FJ3qYR<=p=l zv0!CLL$>>elrzAChxr$=@bo}E@yxrCdgk zA>9{(Hi=PBWICshXqZVQx0E?8y0~|d&YHUHF6`*Sq%t2wZnEi2nCDpXWOgM}nb)gz=t`;OEQI(lsdUq?E=H<09&ukd z5vfc_6|Yt#H&o`#yY*GC{i;%_QXS9msas>xAj(jtQk$4q`32|ZI@KKY&oRtF>rd<~ z@5$XHy5Nd_b^zq;QcFgrM9F)K(?Zaj-G(R*RZpcVvph!6>;19Hh@2F{d`ki*FKIca zQdX7CyEW^^)j*YXyDC)Oq(gj)wLN3|RN0(=8G2VqYgR`VGl%@};8uJ8y;8GlU!n-@ zlvZ6odAw4TJf`oI9oYptX0@10r3NNeYB3J2)TkoQ#RlvpU&ue3vxs4lL#kno~SdtYCpS#%<>>*VUlsi9ue zj*D(>m;lbCax(^34aKgCug7JN7M#MPQ&JUP=(?H|o8FU{I`Mv}XtD&;5fxVfm|}gx zN^~3ShFo49|L3KKR|Nlfb_^~bojW@`%EieT+YVeSH9Ir=W z&`qNdMMjG-@^^X6-vt{sgEAN6p~@8F?;NEI3GUph3*)L9v5Yh1UY#*hHibMZ;>+9O z%K-WO=P&m5KKAwjTbHo4keQEC-(T#)%}XHmR8j*CaKp$ZnFCprx(e{`U3$;axI*+ zj3lw(389QcH7#&#JkUZET&)PGUP9(74Mz>Ljd-!pi|lVY31BMMQ7S{rPtBhT-^bC* z6emm3h6UKmipyDlgn-c_SQy}Bri7Z46?V^5*QZ(P-ZBi2vMVRK#h3dBqqV7F@(%JV z4f!B(?;Chl=WsQLM+Y~vb z7!N5?;UUDei*l7CjOrAVBz881S>2M0Y|$plO*AQNRfKxQj_HWjuOhK=6I&|b%&g8i zqIZe(Q?P|l?}b`PEtR30@`*Ih=!^W^JGFn#{Evbefcq)>Hb(P?Vt2kN(MV2fm z3matowE8h>oX#z0%p)m8O(;wiwtEYrQ~W5bG-RtcmgBX&vuNl@;D|-jU?Q-ec+}@e zp-DKJz{mKT6Y=V!;aQ~kuZH@mQvPCJg~5gRJkxZ%$Tbj*7<{?V9ai?_5+ z?uC1=FW8FdtCcS$PJ(7lzI&^54?}YwF5^}APVim&P!b&Fyc0kEJmf($kGEP|yk)l( zTF%)ob%$&uQUGyF^+2uvQ(D?}O*O8=gyN@Pw%P~4S=nwnGAwHB$%Q9@XtObFPZKKR z)w>F*c#A6SJVXdy&z)PM zAU@ksitt|nqEo7Geih84qvL2d{l#ZIZ$P~QE5|E1uI@Qc3W>ER1i7IXyiCu2BG&GG zq0kh7pGr~ZS}MxS^`i%V6OEnlD(OQHHm}YEKTAvLeC1=%12iq|=dH|KybrbX#XN+pBg3AT(l44g924fS!cRSLX1K^*KIza2WqrH5C zCxv&SZ)HgdAA%`YhczABbV>XPk0Oak?<3^p_$d+<+V_8u4tPkE+XdBc^`_QIAKRyJ zw5*!OU&m*Q=gd#K%2)m(33Ad_I5tDE+Rr+CAx~f!iZY4E53j8iJE$m3&m(CTBDb1;J@F+J5>&^pr!6)WGMIn2`i$M1VSTM zHcV)TT{WWr3Xz5DzVL^`WOl|=iYUl?LQ6B521Y6C)kW-}W%Q8|a5{;@#POQ7uT1qqc zgP)zO+7my2FZ5PoVtuT*Nfdeyrccb42~Fsw+?pB1%>7{LgsM<*IKYG8RxgzX2frK^R55nlFAw!5tricm)+mRpmvr8Ri}m)`Jsf{WfdaoVvb}IGjP-;0 z@6+B6pw}#$=g}emW`g)Kf50MrmO98@gjA18<8G30ke*9qXg#{Yr?Y}?>HNI#)vsSNS|uzin;I3mlg9Bl0e4~1avgp`PW%p0a;eLLfJ8b3k+j;@2?*qdGjhG zw{E46ilhP~H{-o|2hYy*T!?)%-+c%U1@`;y`~^DAkkwv@fu`JF)Ga@rP=qs}5&PIU z5wPrfsd^>B3amtJ1(Rb$algBgSmQFD7LOq#f=Qz1O(Vc6U1OD*(#8xq#_VSHv&F!w zDg}5>-to+-2JHDk_ywE48=1I38Bjxa|4l@V_W@5N#81Y2Pu0HGvFfughv+HB__q<1 zp=-1#PtunG=zd&dcJ&g9{bl$qW!;HWRqXJWdk6D}1iM%7^_&64qN`-y{lX7OI$%+f zTY~*2cSYCz-g|fO?O`y&l+UrhW+d(=(g&Uu$bRZo@EADT!}?}-w)2p*v4?v7Om%rP zPtOI>M?v(A{kWHx-M`Fwx_RBlC5Bdy0Tq$=Ffqpnym573XvLl>A^RxEd%k_5Z9gHz zmioj-(Q_dz!|V3IKi?5_f_StLSO#I9utqJQ?KTqbV(L0U@@qZ6@8;(@p++%5cQ6`!=K>&&}iJ zzl1lyaI@vELF1wMn^c`wt)X~=}>E?=m~Xyqdq)|SGfGfwECri*a!Vn%Ma@>v*e|x zH(Za?sJN;%>`~hT@e5gvrYG82+VVypcC$24tix3gVO(=k;(Wf`fW(N?ve;)4YvJ14 z{7gO?WD|9?!eC(#M!uyF_3e>#gfr``$qcFX&WXXQ&Zg(*^7&tO$L71b4f$B{Rd|pj zJv_PcpYvO^2yvmM{qrqNi7o2cEE}7K=_KB#An%XtcW2gp_S-0aOtG8-D_2L9W9h`e z!natju5y9{XFaK9t=?V>{mPypZK$*=Q}(5PtZ*7jg(HPNJna0!&a+a@zS)QKl`ont zv+n50_sZWKcQu|A2{g6O52+Lh+kZQ{{MB2x%Y9Wydrop>&Hi5Nj4O~Mts?Ib@euPe z?$<=@2e^xRtel2lHzBz(dmiV>`en@nl!1S)u7BNi;PLeK4BuQi>w28#uiq#MXfRrvhg32Jd>?;k^aV0PK?|_judc2me{B^br7vU!Y?D zok=iEx3v9rh5j5x^_iD>|HosW9!CYj$UYHe-gQFXZ4-RPW!`htBY?Lcvd`GO=N<LhxIeTA!pXYnOMsHMNj{?4;_T0HX;jg{%zBq>MLBEh{Num2qns|pk zN#34iVcchX_aJrgThp}%7lDY%ae%y4{pIz0^`hMLrX0J|{2lprD4+dfUJLuEx8ue2 zg;uuj=Uu?pKhgbP9Y<=EimEHxFc9_3Sr7ni5%G)kIXFa7Xcqokp8qpEiSE^3gP6tj161kIXXh0j=mFPZdYp#ghg&6PctZvY3^P}DOwWZuYJFQE)kh>dIj=6ol z^^eb%_jTRNgtlk6OuBkEo~*A=dy)NDnpF&IOKd0?{FLK}N0EXZ99ueWSj#FFV6i_3 ztfAM4R046f@2Ztr^^y4B(nk&E$2#6?;9j7fbNA)0P-Aq!0=y$!1pQD&W z_PsAspUk&(vV*_(;S%f*PvxIwMz;T+3O$4FXE`vC=0*A7qt;Qs*z8+75Rx&7>JKkQ zU2Bb4-@ubH^gb{QG}IDJix3RnCHjy%B}K5L_(0y0$!2%#&&R)|ha-$SI{?2sQEo^) zFsA0Yrzx4IZ-8U_11r`W!mv*=*};nYyf_~c)Env--hJHkXy?AD_?}S{dT9MXA0E^f z;uo6MYFk~fk@m=0fJTG%#vtY$liW%1mV2Kgql_xCM%XWB^c}qu<3&MszjU7_!Qf{B zqGUJdiyFC;&aH;yXIe%Xh12Kw>=z2EtI#Wh$ktejAn>fbPba%TIcgoB_p=~YNo*wKYj!`QN!XWUS5%odIN#IsQ z_8x82bss9D?02H|$P>S)hRgnTs5OCp0G#ocr4D`?JLT)Rupfq{~x6)wU9zLnMPm(zo-m$&N0mC7tT z)r0Jn0$F}W^25Wz)CP&$H}cQfm9>rQN!OQT3deR`bxsPgPA44!SDt( zrZ>2u`=s5U?n=PN6W>#*Mri3tZ0KRazSzMF$cov-N?a#A4ExpF0m zx3Ep@F5>X}ByJ`RtAK_43~zp&!d}iF&KPT)aaKRei8;>VI;p*cKR;r4aI9IoE#iuO zQy!Jq1TY&Y_>vx_w0SJMir5k#71mfR0lt#|Ioh+-EB(*Q8m^^45nucx-`bf4P{YFbi5qa0=FzwGxSD?4hx&)#Zbo1V@_kxLfmH5p^g-zC5@M%@AU8ku77+X~CSl&}+ zQ*lkFzcgP?_AixoeMT=FSX9i3+_^rjmX-)9w{{C-IlgJXuxnC<@dA6-qj0}jT2U*N zX!uj#wn^KryJO%$rC+16bCn^~W55A=YZ+YftU6!Qs@g(QyHJyPE0q4r!Y)j~9jdD$ zOH7?6^l)}eHq4k?bzlYoNU9ku^yJH2y9q5#OmW%rk{uwEP~x^ni#xo9+>BdpsGS$D zIEId<{)CK+mR@qTaguh*91;d2$kX16DYbpVl`fl;iBN*1EaWcuvk(+2^VUdiwXAgnKe@%!8ld}bot zl78BB+^r1{NWh~zw!ua*$8SBevf zZU*sbhv*#+=`UzwKiM+@{Q%W7WaiEfABZqRmQI8#LG5F;OWrV zj5xU=$c%|d86Xky?-al#Vbpb{DPlA=OIvo*7s&rF88_=8l4yW|fHbD*_rsC{d^UJu zXt|qB(;Sh@Tj!>>Nvss`;h^3OPCw?bCCug7>rI5w5(7a~S2u4wuMW-BSsEVOgdk

;q#HXi%BEb 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

jV}9h8P>9%eAY`V))L! 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 delta 547007 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 tu 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 z%0ABd+)~%$xsJn7R2zStS$_23y~0?j@&oOoD#)a-j# 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

fB4DRTFPNYy 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 z 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 "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 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. diff --git a/lib/license_scout/canonical_licenses/BSD-3-Clause.txt b/lib/license_scout/canonical_licenses/BSD-3-Clause.txt deleted file mode 100644 index 8b3988d7..00000000 --- a/lib/license_scout/canonical_licenses/BSD-3-Clause.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) . 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. Neither the name of the copyright holder nor the names of its contributors -may 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 HOLDER 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. - - diff --git a/lib/license_scout/canonical_licenses/BSD-4-Clause.txt b/lib/license_scout/canonical_licenses/BSD-4-Clause.txt deleted file mode 100644 index 2822938a..00000000 --- a/lib/license_scout/canonical_licenses/BSD-4-Clause.txt +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) . 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. All advertising materials mentioning features or use of this software must -display the following acknowledgement: This product includes software developed -by the the organization . - -4. Neither the name of the copyright holder nor the names of its contributors -may be used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER "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 COPYRIGHT HOLDER 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. - - diff --git a/lib/license_scout/canonical_licenses/Chef-MLSA.txt b/lib/license_scout/canonical_licenses/Chef-MLSA.txt deleted file mode 100644 index f77f3b7a..00000000 --- a/lib/license_scout/canonical_licenses/Chef-MLSA.txt +++ /dev/null @@ -1,5 +0,0 @@ -Use of this Software is subject to the terms of the Chef Online Master -License and Services Agreement. You can find the latest copy of the -agreement here: - -https://www.chef.io/online-master-agreement diff --git a/lib/license_scout/canonical_licenses/ISC.txt b/lib/license_scout/canonical_licenses/ISC.txt deleted file mode 100644 index 4504dece..00000000 --- a/lib/license_scout/canonical_licenses/ISC.txt +++ /dev/null @@ -1,14 +0,0 @@ -ISC License (ISC) -Copyright (c) 4-digit year, Company or Person's Name - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/lib/license_scout/canonical_licenses/MIT.txt b/lib/license_scout/canonical_licenses/MIT.txt deleted file mode 100644 index bb4cf986..00000000 --- a/lib/license_scout/canonical_licenses/MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -MIT License -Copyright (c) - -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/lib/license_scout/cli.rb b/lib/license_scout/cli.rb new file mode 100644 index 00000000..3388ee1f --- /dev/null +++ b/lib/license_scout/cli.rb @@ -0,0 +1,99 @@ +# +# Copyright:: Copyright 2018, Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "mixlib/cli" +require "license_scout/config" +require "license_scout/collector" +require "license_scout/reporter" + +module LicenseScout + class CLI + include Mixlib::CLI + + # + # These config values should match values available in LicenseScout::Config + # + option :config_files, + short: "-c CONFIG_FILES", + long: "--config-files CONFIG_FILES", + description: "Comma-separated list of local (or remote) YAML configuration file(s) evaluated in order specified (priority goes to last file)", + proc: Proc.new { |c| c.split(",") } + + option :directories, + short: "-d DIRECTORIES", + long: "--directories DIRECTORIES", + description: "Comma-separated list of directories to scan", + proc: Proc.new { |d| d.split(",") } + + option :log_level, + short: "-l LEVEL", + long: "--log-level LEVEL", + description: "Set the log level (debug, info, warn, error, fatal)", + proc: Proc.new { |l| l.to_sym } + + option :only_show_failures, + long: "--only-show-failures", + description: "Only print results for dependencies with licenses that failed checks", + boolean: true + + option :help, + short: "-h", + long: "--help", + description: "Show this message", + on: :tail, + boolean: true, + show_options: true, + exit: 0 + + def run(argv = ARGV) + parse_options(argv) + + LicenseScout::Config.merge!(config) + + LicenseScout::Log.level = LicenseScout::Config.log_level + LicenseScout::Log.formatter = proc do |sev, datetime, progname, msg| + "#{sev.ljust(5)} #{msg}\n" + end + + LicenseScout::Config.config_files.each do |config_file| + if config_file =~ /^http/ + require "open-uri" + + LicenseScout::Log.info("[cli] Loading config from #{config_file}") + + Dir.mktmpdir do |dir| + local_tmp_file = File.join(dir, File.basename(config_file)) + IO.copy_stream(open(config_file), local_tmp_file) + LicenseScout::Config.from_file(local_tmp_file) + end + else + full_config_file = File.expand_path(config_file) + LicenseScout::Log.info("[cli] Loading config from #{full_config_file}") + LicenseScout::Config.from_file(full_config_file) + end + end + + LicenseScout::Config.validate! + + collector = LicenseScout::Collector.new + collector.collect + + reporter = LicenseScout::Reporter.new(collector.dependencies) + reporter.report + end + end +end diff --git a/lib/license_scout/collector.rb b/lib/license_scout/collector.rb index 022cad4a..53c6ac97 100644 --- a/lib/license_scout/collector.rb +++ b/lib/license_scout/collector.rb @@ -15,101 +15,51 @@ # limitations under the License. # +require "license_scout/log" require "license_scout/exceptions" require "license_scout/dependency_manager" -require "license_scout/reporter" - -require "ffi_yajl" +require "license_scout/license" module LicenseScout class Collector - attr_reader :project_name - attr_reader :project_dir - attr_reader :output_dir - attr_reader :license_manifest_data - attr_reader :options + attr_reader :dependencies - def initialize(project_name, project_dir, output_dir, options) - @project_name = project_name - @project_dir = project_dir - @output_dir = output_dir - @options = options - end - - def dependency_managers - @dependency_managers ||= all_dependency_managers.select { |m| m.detected? } - end - - def run - reset_license_manifest - - if !File.exist?(project_dir) - raise LicenseScout::Exceptions::ProjectDirectoryMissing.new(project_dir) - end - FileUtils.mkdir_p(output_dir) unless File.exist?(output_dir) + def collect + @dependencies = Set.new if dependency_managers.empty? - raise LicenseScout::Exceptions::UnsupportedProjectType.new(project_dir) + raise LicenseScout::Exceptions::Error.new("Failed to find any files associated with known dependency managers in the following directories:\n#{LicenseScout::Config.directories.map { |dir| "\t• #{dir}" }.join("\n")}\n") end - dependency_managers.each { |d| collect_licenses_from(d) } - File.open(license_manifest_path, "w+") do |file| - file.print(FFI_Yajl::Encoder.encode(license_manifest_data, pretty: true)) - end - end + dependency_managers.each { |d| collect_licenses_from(d) } - def issue_report - Reporter.new(output_dir).report + LicenseScout::Log.info("[collector] All licenses successfully collected") end private - def reset_license_manifest - @license_manifest_data = { - license_manifest_version: 1, - project_name: project_name, - dependency_managers: {}, - } - end - - def license_manifest_path - File.join(output_dir, "#{project_name}-dependency-licenses.json") - end - - def collect_licenses_from(dependency_manager) - dependency_manager.dependencies.each do |dep| - license_manifest_data[:dependency_managers][dep.dep_mgr_name] ||= [] - - license_data = { - name: dep.name, - version: dep.version, - license: dep.license, - license_files: [], - } - - dep.license_files.each do |license_file| - output_license_filename = [ - dependency_manager.name, - dep.name, - dep.version, - File.basename(license_file), - ].join("-") - output_license_path = File.join(output_dir, output_license_filename) - FileUtils.cp(license_file, output_license_path) - - license_data[:license_files] << output_license_filename - end - - license_manifest_data[:dependency_managers][dep.dep_mgr_name] << license_data - + def collect_licenses_from(dep_mgr) + LicenseScout::Log.info("[collector] Collecting licenses for #{dep_mgr.type} dependencies found in #{dep_mgr.directory}/#{dep_mgr.signature}") + dep_mgr.dependencies.each do |dep| + @dependencies << dep end + rescue LicenseScout::Exceptions::MissingSourceDirectory => e + raise LicenseScout::Exceptions::Error.new("#{e.message}\n\n\tPlease try running `#{dep_mgr.install_command}` to download the dependency.\n") end - def all_dependency_managers - LicenseScout::DependencyManager.implementations.map do |implementation| - implementation.new(project_dir, options) - end + def dependency_managers + @dependency_managers ||= LicenseScout::Config.directories.map do |dir| + LicenseScout::DependencyManager.implementations.map do |implementation| + dep_mgr = implementation.new(File.expand_path(dir)) + if dep_mgr.detected? + LicenseScout::Log.info("[collector] Found #{dep_mgr.signature} in #{dir}") + dep_mgr + else + nil + end + end + end.flatten.compact end end end diff --git a/lib/license_scout/config.rb b/lib/license_scout/config.rb new file mode 100644 index 00000000..e1794b39 --- /dev/null +++ b/lib/license_scout/config.rb @@ -0,0 +1,94 @@ +# +# Copyright:: Copyright 2018, Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "mixlib/config" +require "tmpdir" + +require "license_scout/exceptions" +require "license_scout/log" +require "license_scout/license" + +module LicenseScout + module Config + extend Mixlib::Config + + # Inputs + default :directories, [File.expand_path(Dir.pwd)] + default :name, File.basename(directories.first) + default :config_files, [File.join(File.expand_path(Dir.pwd), ".license_scout.yml")] + + # Output + default :log_level, :info + default :output_directory, Dir.pwd + default :only_show_failures, false + + # Compliance Specifications + default :allowed_licenses, [] + default :flagged_licenses, [] + + config_context :exceptions do + default :chef_cookbook, [] + default :elixir, [] + default :erlang, [] + default :golang, [] + default :habitat, [] + default :nodejs, [] + default :perl, [] + default :ruby, [] + end + + config_context :fallbacks do + default :chef_cookbook, [] + default :elixir, [] + default :erlang, [] + default :golang, [] + default :habitat, [] + default :nodejs, [] + default :perl, [] + default :ruby, [] + end + + # Runtime Parameters + default :environment, {} + default :ruby_bin, "ruby" + default :escript_bin, "escript" + default :cpanm_root, "#{ENV["HOME"]}/.cpanm" + + # + # Helpers + # + + class << self + + def validate! + if !allowed_licenses.empty? && !flagged_licenses.empty? + raise LicenseScout::Exceptions::ConfigError.new("You may specify a list of licenses to allow or flag. You may not specify both.") + end + + if (allowed_licenses.empty? && flagged_licenses.empty?) && dependency_exceptions? + LicenseScout::Log.warn("You have specified one or more dependency exceptions, but no allowed or flagged licenses. License Scout will ignore the depdendency exceptions.") + end + + directories.each do |dir| + unless File.directory?(File.expand_path(dir)) + raise LicenseScout::Exceptions::ConfigError.new("The '#{dir}' directory could not be found.") + end + end + end + end + end +end diff --git a/lib/license_scout/data/dependeny_manifest_v2_schema.json b/lib/license_scout/data/dependeny_manifest_v2_schema.json new file mode 100644 index 00000000..6034c02a --- /dev/null +++ b/lib/license_scout/data/dependeny_manifest_v2_schema.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "LicenseScout Manifest v2", + "description": "A breakdown of all the dependencies (and their licenses) for a software project", + "type": "object", + "properties": { + "license_manifest_version": { + "description": "The schema version for this document", + "type": "integer" + }, + "generated_on": { + "description": "The timestamp corresponding with when the manifest was generated.", + "type": "string" + }, + "name": { + "description": "The name to associate with the manifest. This is useful for configurations that include multiple directories.", + "type": "string" + }, + "dependencies": { + "type": "object", + "properties": { + "type": { + "description": "The Depedency Type", + "type": "string" + }, + "name": { + "description": "The name of the dependency", + "type": "string" + }, + "version": { + "description": "The version of the dependendency. Can be a traditional version, git reference, or type-specific version specification such as `$pkg_version-$pkg_release` for Habitat", + "type": "string" + }, + "has_exception": { + "description": "Whether or not an exception was specified for this dependency", + "type": "boolean" + }, + "exception_reason": { + "description": "The user-provided reason for the exception", + "type": "string" + }, + "licenses": { + "type": "object", + "properties": { + "id": { + "description": "The license ID. This can either be the null (if no license was determeind), the SPDX ID, or some other license name provided by the dependency maintainer.", + "type": ["string", "null"] + }, + "source": { + "description": "From when the license ID was determined", + "type": "string" + }, + "content": { + "description": "The actual content of the license (if available)", + "type": ["string", "null"] + } + } + } + } + } + } +} diff --git a/lib/license_scout/data/exceptions.json b/lib/license_scout/data/exceptions.json new file mode 100644 index 00000000..ea5cb117 --- /dev/null +++ b/lib/license_scout/data/exceptions.json @@ -0,0 +1,306 @@ +{ + "licenseListVersion": "3.0", + "releaseDate": "28 December 2017", + "exceptions": [ + { + "reference": "./389-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/389-exception.json", + "referenceNumber": "1", + "name": "389 Directory Server Exception", + "seeAlso": [ + "http://directory.fedoraproject.org/wiki/GPL_Exception_License_Text" + ], + "licenseExceptionId": "389-exception" + }, + { + "reference": "./Autoconf-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Autoconf-exception-2.0.json", + "referenceNumber": "2", + "name": "Autoconf exception 2.0", + "seeAlso": [ + "http://ac-archive.sourceforge.net/doc/copyright.html", + "http://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.gz" + ], + "licenseExceptionId": "Autoconf-exception-2.0" + }, + { + "reference": "./Autoconf-exception-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Autoconf-exception-3.0.json", + "referenceNumber": "3", + "name": "Autoconf exception 3.0", + "seeAlso": [ + "http://www.gnu.org/licenses/autoconf-exception-3.0.html" + ], + "licenseExceptionId": "Autoconf-exception-3.0" + }, + { + "reference": "./Bison-exception-2.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Bison-exception-2.2.json", + "referenceNumber": "4", + "name": "Bison exception 2.2", + "seeAlso": [ + "http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id\u003d193d7c7054ba7197b0789e14965b739162319b5e#n141" + ], + "licenseExceptionId": "Bison-exception-2.2" + }, + { + "reference": "./Bootloader-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Bootloader-exception.json", + "referenceNumber": "5", + "name": "Bootloader Distribution Exception", + "seeAlso": [ + "https://github.com/pyinstaller/pyinstaller/blob/develop/COPYING.txt" + ], + "licenseExceptionId": "Bootloader-exception" + }, + { + "reference": "./Classpath-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Classpath-exception-2.0.json", + "referenceNumber": "6", + "name": "Classpath exception 2.0", + "seeAlso": [ + "http://www.gnu.org/software/classpath/license.html", + "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception" + ], + "licenseExceptionId": "Classpath-exception-2.0" + }, + { + "reference": "./CLISP-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CLISP-exception-2.0.json", + "referenceNumber": "7", + "name": "CLISP exception 2.0", + "seeAlso": [ + "http://sourceforge.net/p/clisp/clisp/ci/default/tree/COPYRIGHT" + ], + "licenseExceptionId": "CLISP-exception-2.0" + }, + { + "reference": "./DigiRule-FOSS-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/DigiRule-FOSS-exception.json", + "referenceNumber": "8", + "name": "DigiRule FOSS License Exception", + "seeAlso": [ + "http://www.digirulesolutions.com/drupal/foss" + ], + "licenseExceptionId": "DigiRule-FOSS-exception" + }, + { + "reference": "./eCos-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/eCos-exception-2.0.json", + "referenceNumber": "9", + "name": "eCos exception 2.0", + "seeAlso": [ + "http://ecos.sourceware.org/license-overview.html" + ], + "licenseExceptionId": "eCos-exception-2.0" + }, + { + "reference": "./Fawkes-Runtime-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Fawkes-Runtime-exception.json", + "referenceNumber": "10", + "name": "Fawkes Runtime Exception", + "seeAlso": [ + "http://www.fawkesrobotics.org/about/license/" + ], + "licenseExceptionId": "Fawkes-Runtime-exception" + }, + { + "reference": "./FLTK-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FLTK-exception.json", + "referenceNumber": "11", + "name": "FLTK exception", + "seeAlso": [ + "http://www.fltk.org/COPYING.php" + ], + "licenseExceptionId": "FLTK-exception" + }, + { + "reference": "./Font-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Font-exception-2.0.json", + "referenceNumber": "12", + "name": "Font exception 2.0", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-faq.html#FontException" + ], + "licenseExceptionId": "Font-exception-2.0" + }, + { + "reference": "./freertos-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/freertos-exception-2.0.json", + "referenceNumber": "13", + "name": "FreeRTOS Exception 2.0", + "seeAlso": [ + "http://www.freertos.org/a00114.html#exception" + ], + "licenseExceptionId": "freertos-exception-2.0" + }, + { + "reference": "./GCC-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GCC-exception-2.0.json", + "referenceNumber": "14", + "name": "GCC Runtime Library exception 2.0", + "seeAlso": [ + "https://gcc.gnu.org/git/?p\u003dgcc.git;a\u003dblob;f\u003dgcc/libgcc1.c;h\u003d762f5143fc6eed57b6797c82710f3538aa52b40b;hb\u003dcb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10" + ], + "licenseExceptionId": "GCC-exception-2.0" + }, + { + "reference": "./GCC-exception-3.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GCC-exception-3.1.json", + "referenceNumber": "15", + "name": "GCC Runtime Library exception 3.1", + "seeAlso": [ + "http://www.gnu.org/licenses/gcc-exception-3.1.html" + ], + "licenseExceptionId": "GCC-exception-3.1" + }, + { + "reference": "./gnu-javamail-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/gnu-javamail-exception.json", + "referenceNumber": "16", + "name": "GNU JavaMail exception", + "seeAlso": [ + "http://www.gnu.org/software/classpathx/javamail/javamail.html" + ], + "licenseExceptionId": "gnu-javamail-exception" + }, + { + "reference": "./i2p-gpl-java-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/i2p-gpl-java-exception.json", + "referenceNumber": "17", + "name": "i2p GPL+Java Exception", + "seeAlso": [ + "http://geti2p.net/en/get-involved/develop/licenses#java_exception" + ], + "licenseExceptionId": "i2p-gpl-java-exception" + }, + { + "reference": "./Libtool-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Libtool-exception.json", + "referenceNumber": "18", + "name": "Libtool Exception", + "seeAlso": [ + "http://git.savannah.gnu.org/cgit/libtool.git/tree/m4/libtool.m4" + ], + "licenseExceptionId": "Libtool-exception" + }, + { + "reference": "./Linux-syscall-note.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Linux-syscall-note.json", + "referenceNumber": "19", + "name": "Linux Syscall Note", + "seeAlso": [ + "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/COPYING" + ], + "licenseExceptionId": "Linux-syscall-note" + }, + { + "reference": "./LZMA-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LZMA-exception.json", + "referenceNumber": "20", + "name": "LZMA exception", + "seeAlso": [ + "http://nsis.sourceforge.net/Docs/AppendixI.html#I.6" + ], + "licenseExceptionId": "LZMA-exception" + }, + { + "reference": "./mif-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/mif-exception.json", + "referenceNumber": "21", + "name": "Macros and Inline Functions Exception", + "seeAlso": [ + "http://www.scs.stanford.edu/histar/src/lib/cppsup/exception", + "http://dev.bertos.org/doxygen/ https://www.threadingbuildingblocks.org/licensing" + ], + "licenseExceptionId": "mif-exception" + }, + { + "reference": "./Nokia-Qt-exception-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Nokia-Qt-exception-1.1.json", + "referenceNumber": "22", + "name": "Nokia Qt LGPL exception 1.1", + "seeAlso": [ + "https://www.keepassx.org/dev/projects/keepassx/repository/revisions/b8dfb9cc4d5133e0f09cd7533d15a4f1c19a40f2/entry/LICENSE.NOKIA-LGPL-EXCEPTION" + ], + "licenseExceptionId": "Nokia-Qt-exception-1.1" + }, + { + "reference": "./OCCT-exception-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OCCT-exception-1.0.json", + "referenceNumber": "23", + "name": "Open CASCADE Exception 1.0", + "seeAlso": [ + "http://www.opencascade.com/content/licensing" + ], + "licenseExceptionId": "OCCT-exception-1.0" + }, + { + "reference": "./openvpn-openssl-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/openvpn-openssl-exception.json", + "referenceNumber": "24", + "name": "OpenVPN OpenSSL Exception", + "seeAlso": [ + "http://openvpn.net/index.php/license.html" + ], + "licenseExceptionId": "openvpn-openssl-exception" + }, + { + "reference": "./Qwt-exception-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Qwt-exception-1.0.json", + "referenceNumber": "25", + "name": "Qwt exception 1.0", + "seeAlso": [ + "http://qwt.sourceforge.net/qwtlicense.html" + ], + "licenseExceptionId": "Qwt-exception-1.0" + }, + { + "reference": "./u-boot-exception-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/u-boot-exception-2.0.json", + "referenceNumber": "26", + "name": "U-Boot exception 2.0", + "seeAlso": [ + "http://git.denx.de/?p\u003du-boot.git;a\u003dblob;f\u003dLicenses/Exceptions" + ], + "licenseExceptionId": "u-boot-exception-2.0" + }, + { + "reference": "./WxWindows-exception-3.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/WxWindows-exception-3.1.json", + "referenceNumber": "27", + "name": "WxWindows Library Exception 3.1", + "seeAlso": [ + "http://www.opensource.org/licenses/WXwindows" + ], + "licenseExceptionId": "WxWindows-exception-3.1" + } + ] +} \ No newline at end of file diff --git a/lib/license_scout/data/licenses.json b/lib/license_scout/data/licenses.json new file mode 100644 index 00000000..8c6245ef --- /dev/null +++ b/lib/license_scout/data/licenses.json @@ -0,0 +1,4653 @@ +{ + "licenseListVersion": "3.0", + "licenses": [ + { + "reference": "./0BSD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/0BSD.json", + "referenceNumber": "1", + "name": "BSD Zero Clause License", + "licenseId": "0BSD", + "seeAlso": [ + "http://landley.net/toybox/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./AAL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AAL.json", + "referenceNumber": "2", + "name": "Attribution Assurance License", + "licenseId": "AAL", + "seeAlso": [ + "http://www.opensource.org/licenses/attribution" + ], + "isOsiApproved": true + }, + { + "reference": "./Abstyles.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Abstyles.json", + "referenceNumber": "3", + "name": "Abstyles License", + "licenseId": "Abstyles", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Abstyles" + ], + "isOsiApproved": false + }, + { + "reference": "./Adobe-2006.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Adobe-2006.json", + "referenceNumber": "4", + "name": "Adobe Systems Incorporated Source Code License Agreement", + "licenseId": "Adobe-2006", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AdobeLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./Adobe-Glyph.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Adobe-Glyph.json", + "referenceNumber": "5", + "name": "Adobe Glyph List License", + "licenseId": "Adobe-Glyph", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph" + ], + "isOsiApproved": false + }, + { + "reference": "./ADSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ADSL.json", + "referenceNumber": "6", + "name": "Amazon Digital Services License", + "licenseId": "ADSL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./AFL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-1.1.json", + "referenceNumber": "7", + "name": "Academic Free License v1.1", + "licenseId": "AFL-1.1", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-1.1.txt", + "http://wayback.archive.org/web/20021004124254/http://www.opensource.org/licenses/academic.php" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-1.2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-1.2.json", + "referenceNumber": "8", + "name": "Academic Free License v1.2", + "licenseId": "AFL-1.2", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-1.2.txt", + "http://wayback.archive.org/web/20021204204652/http://www.opensource.org/licenses/academic.php" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-2.0.json", + "referenceNumber": "9", + "name": "Academic Free License v2.0", + "licenseId": "AFL-2.0", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-2.0.txt", + "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-2.1.json", + "referenceNumber": "10", + "name": "Academic Free License v2.1", + "licenseId": "AFL-2.1", + "seeAlso": [ + "http://opensource.linux-mirror.org/licenses/afl-2.1.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./AFL-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AFL-3.0.json", + "referenceNumber": "11", + "name": "Academic Free License v3.0", + "licenseId": "AFL-3.0", + "seeAlso": [ + "http://www.rosenlaw.com/AFL3.0.htm", + "http://www.opensource.org/licenses/afl-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Afmparse.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Afmparse.json", + "referenceNumber": "12", + "name": "Afmparse License", + "licenseId": "Afmparse", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Afmparse" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/AGPL-1.0.json", + "referenceNumber": "13", + "name": "Affero General Public License v1.0", + "licenseId": "AGPL-1.0", + "seeAlso": [ + "http://www.affero.org/oagpl.html" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0-only.json", + "referenceNumber": "14", + "name": "GNU Affero General Public License v3.0 only", + "licenseId": "AGPL-3.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/agpl.txt", + "http://www.opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./AGPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0-or-later.json", + "referenceNumber": "15", + "name": "GNU Affero General Public License v3.0 or later", + "licenseId": "AGPL-3.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/agpl.txt", + "http://www.opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Aladdin.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/Aladdin.json", + "referenceNumber": "16", + "name": "Aladdin Free Public License", + "licenseId": "Aladdin", + "seeAlso": [ + "http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.01/Public.htm" + ], + "isOsiApproved": false + }, + { + "reference": "./AMDPLPA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AMDPLPA.json", + "referenceNumber": "17", + "name": "AMD\u0027s plpa_map.c License", + "licenseId": "AMDPLPA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AMD_plpa_map_License" + ], + "isOsiApproved": false + }, + { + "reference": "./AML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AML.json", + "referenceNumber": "18", + "name": "Apple MIT License", + "licenseId": "AML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Apple_MIT_License" + ], + "isOsiApproved": false + }, + { + "reference": "./AMPAS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/AMPAS.json", + "referenceNumber": "19", + "name": "Academy of Motion Picture Arts and Sciences BSD", + "licenseId": "AMPAS", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD#AMPASBSD" + ], + "isOsiApproved": false + }, + { + "reference": "./ANTLR-PD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ANTLR-PD.json", + "referenceNumber": "20", + "name": "ANTLR Software Rights Notice", + "licenseId": "ANTLR-PD", + "seeAlso": [ + "http://www.antlr2.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Apache-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-1.0.json", + "referenceNumber": "21", + "name": "Apache License 1.0", + "licenseId": "Apache-1.0", + "seeAlso": [ + "http://www.apache.org/licenses/LICENSE-1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./Apache-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-1.1.json", + "referenceNumber": "22", + "name": "Apache License 1.1", + "licenseId": "Apache-1.1", + "seeAlso": [ + "http://apache.org/licenses/LICENSE-1.1", + "http://opensource.org/licenses/Apache-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./Apache-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Apache-2.0.json", + "referenceNumber": "23", + "name": "Apache License 2.0", + "licenseId": "Apache-2.0", + "seeAlso": [ + "http://www.apache.org/licenses/LICENSE-2.0", + "http://www.opensource.org/licenses/Apache-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./APAFML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APAFML.json", + "referenceNumber": "24", + "name": "Adobe Postscript AFM License", + "licenseId": "APAFML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM" + ], + "isOsiApproved": false + }, + { + "reference": "./APL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APL-1.0.json", + "referenceNumber": "25", + "name": "Adaptive Public License 1.0", + "licenseId": "APL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/APL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.0.json", + "referenceNumber": "26", + "name": "Apple Public Source License 1.0", + "licenseId": "APSL-1.0", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Apple_Public_Source_License_1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.1.json", + "referenceNumber": "27", + "name": "Apple Public Source License 1.1", + "licenseId": "APSL-1.1", + "seeAlso": [ + "http://www.opensource.apple.com/source/IOSerialFamily/IOSerialFamily-7/APPLE_LICENSE" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/APSL-1.2.json", + "referenceNumber": "28", + "name": "Apple Public Source License 1.2", + "licenseId": "APSL-1.2", + "seeAlso": [ + "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php" + ], + "isOsiApproved": true + }, + { + "reference": "./APSL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/APSL-2.0.json", + "referenceNumber": "29", + "name": "Apple Public Source License 2.0", + "licenseId": "APSL-2.0", + "seeAlso": [ + "http://www.opensource.apple.com/license/apsl/" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0-cl8.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0-cl8.json", + "referenceNumber": "30", + "name": "Artistic License 1.0 w/clause 8", + "licenseId": "Artistic-1.0-cl8", + "seeAlso": [ + "http://opensource.org/licenses/Artistic-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0-Perl.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0-Perl.json", + "referenceNumber": "31", + "name": "Artistic License 1.0 (Perl)", + "licenseId": "Artistic-1.0-Perl", + "seeAlso": [ + "http://dev.perl.org/licenses/artistic.html" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/Artistic-1.0.json", + "referenceNumber": "32", + "name": "Artistic License 1.0", + "licenseId": "Artistic-1.0", + "seeAlso": [ + "http://opensource.org/licenses/Artistic-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Artistic-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Artistic-2.0.json", + "referenceNumber": "33", + "name": "Artistic License 2.0", + "licenseId": "Artistic-2.0", + "seeAlso": [ + "http://www.perlfoundation.org/artistic_license_2_0", + "http://www.opensource.org/licenses/artistic-license-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Bahyph.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Bahyph.json", + "referenceNumber": "34", + "name": "Bahyph License", + "licenseId": "Bahyph", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Bahyph" + ], + "isOsiApproved": false + }, + { + "reference": "./Barr.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Barr.json", + "referenceNumber": "35", + "name": "Barr License", + "licenseId": "Barr", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Barr" + ], + "isOsiApproved": false + }, + { + "reference": "./Beerware.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Beerware.json", + "referenceNumber": "36", + "name": "Beerware License", + "licenseId": "Beerware", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Beerware", + "https://people.freebsd.org/~phk/" + ], + "isOsiApproved": false + }, + { + "reference": "./BitTorrent-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BitTorrent-1.0.json", + "referenceNumber": "37", + "name": "BitTorrent Open Source License v1.0", + "licenseId": "BitTorrent-1.0", + "seeAlso": [ + "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/BitTorrent?r1\u003d1.1\u0026r2\u003d1.1.1.1\u0026diff_format\u003ds" + ], + "isOsiApproved": false + }, + { + "reference": "./BitTorrent-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BitTorrent-1.1.json", + "referenceNumber": "38", + "name": "BitTorrent Open Source License v1.1", + "licenseId": "BitTorrent-1.1", + "seeAlso": [ + "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./Borceux.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Borceux.json", + "referenceNumber": "39", + "name": "Borceux license", + "licenseId": "Borceux", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Borceux" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-1-Clause.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-1-Clause.json", + "referenceNumber": "40", + "name": "BSD 1-Clause License", + "licenseId": "BSD-1-Clause", + "seeAlso": [ + "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision\u003d326823" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-2-Clause-FreeBSD.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-FreeBSD.json", + "referenceNumber": "41", + "name": "BSD 2-Clause FreeBSD License", + "licenseId": "BSD-2-Clause-FreeBSD", + "seeAlso": [ + "http://www.freebsd.org/copyright/freebsd-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-2-Clause-NetBSD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-NetBSD.json", + "referenceNumber": "42", + "name": "BSD 2-Clause NetBSD License", + "licenseId": "BSD-2-Clause-NetBSD", + "seeAlso": [ + "http://www.netbsd.org/about/redistribution.html#default" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-2-Clause-Patent.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause-Patent.json", + "referenceNumber": "43", + "name": "BSD-2-Clause Plus Patent License", + "licenseId": "BSD-2-Clause-Patent", + "seeAlso": [ + "https://opensource.org/licenses/BSDplusPatent" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-2-Clause.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-2-Clause.json", + "referenceNumber": "44", + "name": "BSD 2-Clause \"Simplified\" License", + "licenseId": "BSD-2-Clause", + "seeAlso": [ + "http://www.opensource.org/licenses/BSD-2-Clause" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-3-Clause-Attribution.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-Attribution.json", + "referenceNumber": "45", + "name": "BSD with attribution", + "licenseId": "BSD-3-Clause-Attribution", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-Clear.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-Clear.json", + "referenceNumber": "46", + "name": "BSD 3-Clause Clear License", + "licenseId": "BSD-3-Clause-Clear", + "seeAlso": [ + "http://labs.metacarta.com/license-explanation.html#license" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-LBNL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-LBNL.json", + "referenceNumber": "47", + "name": "Lawrence Berkeley National Labs BSD variant license", + "licenseId": "BSD-3-Clause-LBNL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/LBNLBSD" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-License-2014.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.json", + "referenceNumber": "48", + "name": "BSD 3-Clause No Nuclear License 2014", + "licenseId": "BSD-3-Clause-No-Nuclear-License-2014", + "seeAlso": [ + "https://java.net/projects/javaeetutorial/pages/BerkeleyLicense" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-License.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.json", + "referenceNumber": "49", + "name": "BSD 3-Clause No Nuclear License", + "licenseId": "BSD-3-Clause-No-Nuclear-License", + "seeAlso": [ + "http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam\u003d1467140197_43d516ce1776bd08a58235a7785be1cc" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause-No-Nuclear-Warranty.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.json", + "referenceNumber": "50", + "name": "BSD 3-Clause No Nuclear Warranty", + "licenseId": "BSD-3-Clause-No-Nuclear-Warranty", + "seeAlso": [ + "https://jogamp.org/git/?p\u003dgluegen.git;a\u003dblob_plain;f\u003dLICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-3-Clause.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-3-Clause.json", + "referenceNumber": "51", + "name": "BSD 3-Clause \"New\" or \"Revised\" License", + "licenseId": "BSD-3-Clause", + "seeAlso": [ + "http://www.opensource.org/licenses/BSD-3-Clause" + ], + "isOsiApproved": true + }, + { + "reference": "./BSD-4-Clause-UC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-4-Clause-UC.json", + "referenceNumber": "52", + "name": "BSD-4-Clause (University of California-Specific)", + "licenseId": "BSD-4-Clause-UC", + "seeAlso": [ + "http://www.freebsd.org/copyright/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-4-Clause.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSD-4-Clause.json", + "referenceNumber": "53", + "name": "BSD 4-Clause \"Original\" or \"Old\" License", + "licenseId": "BSD-4-Clause", + "seeAlso": [ + "http://directory.fsf.org/wiki/License:BSD_4Clause" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-Protection.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-Protection.json", + "referenceNumber": "54", + "name": "BSD Protection License", + "licenseId": "BSD-Protection", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License" + ], + "isOsiApproved": false + }, + { + "reference": "./BSD-Source-Code.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/BSD-Source-Code.json", + "referenceNumber": "55", + "name": "BSD Source Code Attribution", + "licenseId": "BSD-Source-Code", + "seeAlso": [ + "https://github.com/robbiehanson/CocoaHTTPServer/blob/master/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./BSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/BSL-1.0.json", + "referenceNumber": "56", + "name": "Boost Software License 1.0", + "licenseId": "BSL-1.0", + "seeAlso": [ + "http://www.boost.org/LICENSE_1_0.txt", + "http://www.opensource.org/licenses/BSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./bzip2-1.0.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/bzip2-1.0.5.json", + "referenceNumber": "57", + "name": "bzip2 and libbzip2 License v1.0.5", + "licenseId": "bzip2-1.0.5", + "seeAlso": [ + "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html" + ], + "isOsiApproved": false + }, + { + "reference": "./bzip2-1.0.6.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/bzip2-1.0.6.json", + "referenceNumber": "58", + "name": "bzip2 and libbzip2 License v1.0.6", + "licenseId": "bzip2-1.0.6", + "seeAlso": [ + "https://github.com/asimonov-im/bzip2/blob/master/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./Caldera.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Caldera.json", + "referenceNumber": "59", + "name": "Caldera License", + "licenseId": "Caldera", + "seeAlso": [ + "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./CATOSL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CATOSL-1.1.json", + "referenceNumber": "60", + "name": "Computer Associates Trusted Open Source License 1.1", + "licenseId": "CATOSL-1.1", + "seeAlso": [ + "http://opensource.org/licenses/CATOSL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./CC-BY-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-1.0.json", + "referenceNumber": "61", + "name": "Creative Commons Attribution 1.0", + "licenseId": "CC-BY-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-2.0.json", + "referenceNumber": "62", + "name": "Creative Commons Attribution 2.0", + "licenseId": "CC-BY-2.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-2.5.json", + "referenceNumber": "63", + "name": "Creative Commons Attribution 2.5", + "licenseId": "CC-BY-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-3.0.json", + "referenceNumber": "64", + "name": "Creative Commons Attribution 3.0", + "licenseId": "CC-BY-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC-BY-4.0.json", + "referenceNumber": "65", + "name": "Creative Commons Attribution 4.0", + "licenseId": "CC-BY-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-1.0.json", + "referenceNumber": "66", + "name": "Creative Commons Attribution Non Commercial 1.0", + "licenseId": "CC-BY-NC-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-2.0.json", + "referenceNumber": "67", + "name": "Creative Commons Attribution Non Commercial 2.0", + "licenseId": "CC-BY-NC-2.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-2.5.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-2.5.json", + "referenceNumber": "68", + "name": "Creative Commons Attribution Non Commercial 2.5", + "licenseId": "CC-BY-NC-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-3.0.json", + "referenceNumber": "69", + "name": "Creative Commons Attribution Non Commercial 3.0", + "licenseId": "CC-BY-NC-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-4.0.json", + "referenceNumber": "70", + "name": "Creative Commons Attribution Non Commercial 4.0", + "licenseId": "CC-BY-NC-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-1.0.json", + "referenceNumber": "71", + "name": "Creative Commons Attribution Non Commercial No Derivatives 1.0", + "licenseId": "CC-BY-NC-ND-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nd-nc/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-2.0.json", + "referenceNumber": "72", + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.0", + "licenseId": "CC-BY-NC-ND-2.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-nd/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-2.5.json", + "referenceNumber": "73", + "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5", + "licenseId": "CC-BY-NC-ND-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-nd/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-3.0.json", + "referenceNumber": "74", + "name": "Creative Commons Attribution Non Commercial No Derivatives 3.0", + "licenseId": "CC-BY-NC-ND-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-ND-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-ND-4.0.json", + "referenceNumber": "75", + "name": "Creative Commons Attribution Non Commercial No Derivatives 4.0", + "licenseId": "CC-BY-NC-ND-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-nd/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-1.0.json", + "referenceNumber": "76", + "name": "Creative Commons Attribution Non Commercial Share Alike 1.0", + "licenseId": "CC-BY-NC-SA-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-sa/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-2.0.json", + "referenceNumber": "77", + "name": "Creative Commons Attribution Non Commercial Share Alike 2.0", + "licenseId": "CC-BY-NC-SA-2.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-sa/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-2.5.json", + "referenceNumber": "78", + "name": "Creative Commons Attribution Non Commercial Share Alike 2.5", + "licenseId": "CC-BY-NC-SA-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-3.0.json", + "referenceNumber": "79", + "name": "Creative Commons Attribution Non Commercial Share Alike 3.0", + "licenseId": "CC-BY-NC-SA-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-NC-SA-4.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-NC-SA-4.0.json", + "referenceNumber": "80", + "name": "Creative Commons Attribution Non Commercial Share Alike 4.0", + "licenseId": "CC-BY-NC-SA-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-1.0.json", + "referenceNumber": "81", + "name": "Creative Commons Attribution No Derivatives 1.0", + "licenseId": "CC-BY-ND-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nd/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-2.0.json", + "referenceNumber": "82", + "name": "Creative Commons Attribution No Derivatives 2.0", + "licenseId": "CC-BY-ND-2.0", + "seeAlso": [ + "https://creativecommons.org/licenses/by-nd/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-2.5.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-2.5.json", + "referenceNumber": "83", + "name": "Creative Commons Attribution No Derivatives 2.5", + "licenseId": "CC-BY-ND-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nd/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-3.0.json", + "referenceNumber": "84", + "name": "Creative Commons Attribution No Derivatives 3.0", + "licenseId": "CC-BY-ND-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nd/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-ND-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-ND-4.0.json", + "referenceNumber": "85", + "name": "Creative Commons Attribution No Derivatives 4.0", + "licenseId": "CC-BY-ND-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-nd/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-1.0.json", + "referenceNumber": "86", + "name": "Creative Commons Attribution Share Alike 1.0", + "licenseId": "CC-BY-SA-1.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-sa/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-2.0.json", + "referenceNumber": "87", + "name": "Creative Commons Attribution Share Alike 2.0", + "licenseId": "CC-BY-SA-2.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-sa/2.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-2.5.json", + "referenceNumber": "88", + "name": "Creative Commons Attribution Share Alike 2.5", + "licenseId": "CC-BY-SA-2.5", + "seeAlso": [ + "http://creativecommons.org/licenses/by-sa/2.5/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-3.0.json", + "referenceNumber": "89", + "name": "Creative Commons Attribution Share Alike 3.0", + "licenseId": "CC-BY-SA-3.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-sa/3.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC-BY-SA-4.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC-BY-SA-4.0.json", + "referenceNumber": "90", + "name": "Creative Commons Attribution Share Alike 4.0", + "licenseId": "CC-BY-SA-4.0", + "seeAlso": [ + "http://creativecommons.org/licenses/by-sa/4.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CC0-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CC0-1.0.json", + "referenceNumber": "91", + "name": "Creative Commons Zero v1.0 Universal", + "licenseId": "CC0-1.0", + "seeAlso": [ + "http://creativecommons.org/publicdomain/zero/1.0/legalcode" + ], + "isOsiApproved": false + }, + { + "reference": "./CDDL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CDDL-1.0.json", + "referenceNumber": "92", + "name": "Common Development and Distribution License 1.0", + "licenseId": "CDDL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/cddl1" + ], + "isOsiApproved": true + }, + { + "reference": "./CDDL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDDL-1.1.json", + "referenceNumber": "93", + "name": "Common Development and Distribution License 1.1", + "licenseId": "CDDL-1.1", + "seeAlso": [ + "http://glassfish.java.net/public/CDDL+GPL_1_1.html", + "https://javaee.github.io/glassfish/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./CDLA-Permissive-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDLA-Permissive-1.0.json", + "referenceNumber": "94", + "name": "Community Data License Agreement Permissive 1.0", + "licenseId": "CDLA-Permissive-1.0", + "seeAlso": [ + "https://cdla.io/permissive-1-0" + ], + "isOsiApproved": false + }, + { + "reference": "./CDLA-Sharing-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CDLA-Sharing-1.0.json", + "referenceNumber": "95", + "name": "Community Data License Agreement Sharing 1.0", + "licenseId": "CDLA-Sharing-1.0", + "seeAlso": [ + "https://cdla.io/sharing-1-0" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-1.0.json", + "referenceNumber": "96", + "name": "CeCILL Free Software License Agreement v1.0", + "licenseId": "CECILL-1.0", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-1.1.json", + "referenceNumber": "97", + "name": "CeCILL Free Software License Agreement v1.1", + "licenseId": "CECILL-1.1", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V1.1-US.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-2.0.json", + "referenceNumber": "98", + "name": "CeCILL Free Software License Agreement v2.0", + "licenseId": "CECILL-2.0", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V2-en.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CECILL-2.1.json", + "referenceNumber": "99", + "name": "CeCILL Free Software License Agreement v2.1", + "licenseId": "CECILL-2.1", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html" + ], + "isOsiApproved": true + }, + { + "reference": "./CECILL-B.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-B.json", + "referenceNumber": "100", + "name": "CeCILL-B Free Software License Agreement", + "licenseId": "CECILL-B", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CECILL-C.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CECILL-C.json", + "referenceNumber": "101", + "name": "CeCILL-C Free Software License Agreement", + "licenseId": "CECILL-C", + "seeAlso": [ + "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html\n " + ], + "isOsiApproved": false + }, + { + "reference": "./ClArtistic.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ClArtistic.json", + "referenceNumber": "102", + "name": "Clarified Artistic License", + "licenseId": "ClArtistic", + "seeAlso": [ + "http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/", + "http://www.ncftp.com/ncftp/doc/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./CNRI-Jython.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Jython.json", + "referenceNumber": "103", + "name": "CNRI Jython License", + "licenseId": "CNRI-Jython", + "seeAlso": [ + "http://www.jython.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./CNRI-Python-GPL-Compatible.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Python-GPL-Compatible.json", + "referenceNumber": "104", + "name": "CNRI Python Open Source GPL Compatible License Agreement", + "licenseId": "CNRI-Python-GPL-Compatible", + "seeAlso": [ + "http://www.python.org/download/releases/1.6.1/download_win/" + ], + "isOsiApproved": false + }, + { + "reference": "./CNRI-Python.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CNRI-Python.json", + "referenceNumber": "105", + "name": "CNRI Python License", + "licenseId": "CNRI-Python", + "seeAlso": [ + "http://www.opensource.org/licenses/CNRI-Python" + ], + "isOsiApproved": true + }, + { + "reference": "./Condor-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Condor-1.1.json", + "referenceNumber": "106", + "name": "Condor Public License v1.1", + "licenseId": "Condor-1.1", + "seeAlso": [ + "http://research.cs.wisc.edu/condor/license.html#condor", + "http://web.archive.org/web/20111123062036/http://research.cs.wisc.edu/condor/license.html#condor" + ], + "isOsiApproved": false + }, + { + "reference": "./CPAL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CPAL-1.0.json", + "referenceNumber": "107", + "name": "Common Public Attribution License 1.0", + "licenseId": "CPAL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/CPAL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/CPL-1.0.json", + "referenceNumber": "108", + "name": "Common Public License 1.0", + "licenseId": "CPL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/CPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./CPOL-1.02.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/CPOL-1.02.json", + "referenceNumber": "109", + "name": "Code Project Open License 1.02", + "licenseId": "CPOL-1.02", + "seeAlso": [ + "http://www.codeproject.com/info/cpol10.aspx" + ], + "isOsiApproved": false + }, + { + "reference": "./Crossword.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Crossword.json", + "referenceNumber": "110", + "name": "Crossword License", + "licenseId": "Crossword", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Crossword" + ], + "isOsiApproved": false + }, + { + "reference": "./CrystalStacker.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CrystalStacker.json", + "referenceNumber": "111", + "name": "CrystalStacker License", + "licenseId": "CrystalStacker", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd\u003dLicensing/CrystalStacker" + ], + "isOsiApproved": false + }, + { + "reference": "./CUA-OPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/CUA-OPL-1.0.json", + "referenceNumber": "112", + "name": "CUA Office Public License v1.0", + "licenseId": "CUA-OPL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/CUA-OPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Cube.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Cube.json", + "referenceNumber": "113", + "name": "Cube License", + "licenseId": "Cube", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Cube" + ], + "isOsiApproved": false + }, + { + "reference": "./curl.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/curl.json", + "referenceNumber": "114", + "name": "curl License", + "licenseId": "curl", + "seeAlso": [ + "https://github.com/bagder/curl/blob/master/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./D-FSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/D-FSL-1.0.json", + "referenceNumber": "115", + "name": "Deutsche Freie Software Lizenz", + "licenseId": "D-FSL-1.0", + "seeAlso": [ + "http://www.dipp.nrw.de/d-fsl/lizenzen/", + "http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/de/D-FSL-1_0_de.txt", + "http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/en/D-FSL-1_0_en.txt", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/deutsche-freie-software-lizenz", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/german-free-software-license", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_de.txt/at_download/file", + "https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_en.txt/at_download/file" + ], + "isOsiApproved": false + }, + { + "reference": "./diffmark.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/diffmark.json", + "referenceNumber": "116", + "name": "diffmark license", + "licenseId": "diffmark", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/diffmark" + ], + "isOsiApproved": false + }, + { + "reference": "./DOC.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/DOC.json", + "referenceNumber": "117", + "name": "DOC License", + "licenseId": "DOC", + "seeAlso": [ + "http://www.cs.wustl.edu/~schmidt/ACE-copying.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Dotseqn.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Dotseqn.json", + "referenceNumber": "118", + "name": "Dotseqn License", + "licenseId": "Dotseqn", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Dotseqn" + ], + "isOsiApproved": false + }, + { + "reference": "./DSDP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/DSDP.json", + "referenceNumber": "119", + "name": "DSDP License", + "licenseId": "DSDP", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/DSDP" + ], + "isOsiApproved": false + }, + { + "reference": "./dvipdfm.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/dvipdfm.json", + "referenceNumber": "120", + "name": "dvipdfm License", + "licenseId": "dvipdfm", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/dvipdfm" + ], + "isOsiApproved": false + }, + { + "reference": "./ECL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ECL-1.0.json", + "referenceNumber": "121", + "name": "Educational Community License v1.0", + "licenseId": "ECL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/ECL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ECL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ECL-2.0.json", + "referenceNumber": "122", + "name": "Educational Community License v2.0", + "licenseId": "ECL-2.0", + "seeAlso": [ + "http://opensource.org/licenses/ECL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EFL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/EFL-1.0.json", + "referenceNumber": "123", + "name": "Eiffel Forum License v1.0", + "licenseId": "EFL-1.0", + "seeAlso": [ + "http://www.eiffel-nice.org/license/forum.txt", + "http://opensource.org/licenses/EFL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EFL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EFL-2.0.json", + "referenceNumber": "124", + "name": "Eiffel Forum License v2.0", + "licenseId": "EFL-2.0", + "seeAlso": [ + "http://www.eiffel-nice.org/license/eiffel-forum-license-2.html", + "http://opensource.org/licenses/EFL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./eGenix.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/eGenix.json", + "referenceNumber": "125", + "name": "eGenix.com Public License 1.1.0", + "licenseId": "eGenix", + "seeAlso": [ + "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf", + "https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./Entessa.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Entessa.json", + "referenceNumber": "126", + "name": "Entessa Public License v1.0", + "licenseId": "Entessa", + "seeAlso": [ + "http://opensource.org/licenses/Entessa" + ], + "isOsiApproved": true + }, + { + "reference": "./EPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EPL-1.0.json", + "referenceNumber": "127", + "name": "Eclipse Public License 1.0", + "licenseId": "EPL-1.0", + "seeAlso": [ + "http://www.eclipse.org/legal/epl-v10.html", + "http://www.opensource.org/licenses/EPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./EPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EPL-2.0.json", + "referenceNumber": "128", + "name": "Eclipse Public License 2.0", + "licenseId": "EPL-2.0", + "seeAlso": [ + "https://www.eclipse.org/legal/epl-2.0", + "https://www.opensource.org/licenses/EPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ErlPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ErlPL-1.1.json", + "referenceNumber": "129", + "name": "Erlang Public License v1.1", + "licenseId": "ErlPL-1.1", + "seeAlso": [ + "http://www.erlang.org/EPLICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./EUDatagrid.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EUDatagrid.json", + "referenceNumber": "130", + "name": "EU DataGrid Software License", + "licenseId": "EUDatagrid", + "seeAlso": [ + "http://eu-datagrid.web.cern.ch/eu-datagrid/license.html", + "http://www.opensource.org/licenses/EUDatagrid" + ], + "isOsiApproved": true + }, + { + "reference": "./EUPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.0.json", + "referenceNumber": "131", + "name": "European Union Public License 1.0", + "licenseId": "EUPL-1.0", + "seeAlso": [ + "http://ec.europa.eu/idabc/en/document/7330.html", + "http://ec.europa.eu/idabc/servlets/Doc027f.pdf?id\u003d31096" + ], + "isOsiApproved": false + }, + { + "reference": "./EUPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.1.json", + "referenceNumber": "132", + "name": "European Union Public License 1.1", + "licenseId": "EUPL-1.1", + "seeAlso": [ + "https://joinup.ec.europa.eu/software/page/eupl/licence-eupl", + "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl1.1.-licence-en_0.pdf", + "http://www.opensource.org/licenses/EUPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./EUPL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/EUPL-1.2.json", + "referenceNumber": "133", + "name": "European Union Public License 1.2", + "licenseId": "EUPL-1.2", + "seeAlso": [ + "https://joinup.ec.europa.eu/page/eupl-text-11-12", + "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf", + "https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt", + "http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri\u003dCELEX:32017D0863", + "http://www.opensource.org/licenses/EUPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./Eurosym.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Eurosym.json", + "referenceNumber": "134", + "name": "Eurosym License", + "licenseId": "Eurosym", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Eurosym" + ], + "isOsiApproved": false + }, + { + "reference": "./Fair.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Fair.json", + "referenceNumber": "135", + "name": "Fair License", + "licenseId": "Fair", + "seeAlso": [ + "http://www.opensource.org/licenses/Fair", + "http://fairlicense.org/" + ], + "isOsiApproved": true + }, + { + "reference": "./Frameworx-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Frameworx-1.0.json", + "referenceNumber": "136", + "name": "Frameworx Open License 1.0", + "licenseId": "Frameworx-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/Frameworx-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./FreeImage.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FreeImage.json", + "referenceNumber": "137", + "name": "FreeImage Public License v1.0", + "licenseId": "FreeImage", + "seeAlso": [ + "http://freeimage.sourceforge.net/freeimage-license.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFAP.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/FSFAP.json", + "referenceNumber": "138", + "name": "FSF All Permissive License", + "licenseId": "FSFAP", + "seeAlso": [ + "http://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFUL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FSFUL.json", + "referenceNumber": "139", + "name": "FSF Unlimited License", + "licenseId": "FSFUL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License" + ], + "isOsiApproved": false + }, + { + "reference": "./FSFULLR.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/FSFULLR.json", + "referenceNumber": "140", + "name": "FSF Unlimited License (with License Retention)", + "licenseId": "FSFULLR", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant" + ], + "isOsiApproved": false + }, + { + "reference": "./FTL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/FTL.json", + "referenceNumber": "141", + "name": "Freetype Project License", + "licenseId": "FTL", + "seeAlso": [ + "http://freetype.fis.uniroma2.it/FTL.TXT", + "http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1-only.json", + "referenceNumber": "142", + "name": "GNU Free Documentation License v1.1 only", + "licenseId": "GFDL-1.1-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1-or-later.json", + "referenceNumber": "143", + "name": "GNU Free Documentation License v1.1 or later", + "licenseId": "GFDL-1.1-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2-only.json", + "referenceNumber": "144", + "name": "GNU Free Documentation License v1.2 only", + "licenseId": "GFDL-1.2-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2-or-later.json", + "referenceNumber": "145", + "name": "GNU Free Documentation License v1.2 or later", + "licenseId": "GFDL-1.2-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3-only.json", + "referenceNumber": "146", + "name": "GNU Free Documentation License v1.3 only", + "licenseId": "GFDL-1.3-only", + "seeAlso": [ + "http://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3-or-later.json", + "referenceNumber": "147", + "name": "GNU Free Documentation License v1.3 or later", + "licenseId": "GFDL-1.3-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Giftware.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Giftware.json", + "referenceNumber": "148", + "name": "Giftware License", + "licenseId": "Giftware", + "seeAlso": [ + "http://liballeg.org/license.html#allegro-4-the-giftware-license" + ], + "isOsiApproved": false + }, + { + "reference": "./GL2PS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GL2PS.json", + "referenceNumber": "149", + "name": "GL2PS License", + "licenseId": "GL2PS", + "seeAlso": [ + "http://www.geuz.org/gl2ps/COPYING.GL2PS" + ], + "isOsiApproved": false + }, + { + "reference": "./Glide.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Glide.json", + "referenceNumber": "150", + "name": "3dfx Glide License", + "licenseId": "Glide", + "seeAlso": [ + "http://www.users.on.net/~triforce/glidexp/COPYING.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Glulxe.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Glulxe.json", + "referenceNumber": "151", + "name": "Glulxe License", + "licenseId": "Glulxe", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Glulxe" + ], + "isOsiApproved": false + }, + { + "reference": "./gnuplot.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/gnuplot.json", + "referenceNumber": "152", + "name": "gnuplot License", + "licenseId": "gnuplot", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Gnuplot" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0-only.json", + "referenceNumber": "153", + "name": "GNU General Public License v1.0 only", + "licenseId": "GPL-1.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0-or-later.json", + "referenceNumber": "154", + "name": "GNU General Public License v1.0 or later", + "licenseId": "GPL-1.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-only.json", + "referenceNumber": "155", + "name": "GNU General Public License v2.0 only", + "licenseId": "GPL-2.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "http://www.opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-or-later.json", + "referenceNumber": "156", + "name": "GNU General Public License v2.0 or later", + "licenseId": "GPL-2.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "http://www.opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-only.json", + "referenceNumber": "157", + "name": "GNU General Public License v3.0 only", + "licenseId": "GPL-3.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-3.0-standalone.html", + "http://www.opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-or-later.json", + "referenceNumber": "158", + "name": "GNU General Public License v3.0 or later", + "licenseId": "GPL-3.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-3.0-standalone.html", + "http://www.opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./gSOAP-1.3b.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/gSOAP-1.3b.json", + "referenceNumber": "159", + "name": "gSOAP Public License v1.3b", + "licenseId": "gSOAP-1.3b", + "seeAlso": [ + "http://www.cs.fsu.edu/~engelen/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./HaskellReport.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/HaskellReport.json", + "referenceNumber": "160", + "name": "Haskell Language Report License", + "licenseId": "HaskellReport", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License" + ], + "isOsiApproved": false + }, + { + "reference": "./HPND.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/HPND.json", + "referenceNumber": "161", + "name": "Historical Permission Notice and Disclaimer", + "licenseId": "HPND", + "seeAlso": [ + "http://www.opensource.org/licenses/HPND" + ], + "isOsiApproved": true + }, + { + "reference": "./IBM-pibs.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/IBM-pibs.json", + "referenceNumber": "162", + "name": "IBM PowerPC Initialization and Boot Software", + "licenseId": "IBM-pibs", + "seeAlso": [ + "http://git.denx.de/?p\u003du-boot.git;a\u003dblob;f\u003darch/powerpc/cpu/ppc4xx/miiphy.c;h\u003d297155fdafa064b955e53e9832de93bfb0cfb85b;hb\u003d9fab4bf4cc077c21e43941866f3f2c196f28670d" + ], + "isOsiApproved": false + }, + { + "reference": "./ICU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ICU.json", + "referenceNumber": "163", + "name": "ICU License", + "licenseId": "ICU", + "seeAlso": [ + "http://source.icu-project.org/repos/icu/icu/trunk/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./IJG.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IJG.json", + "referenceNumber": "164", + "name": "Independent JPEG Group License", + "licenseId": "IJG", + "seeAlso": [ + "http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev\u003d1.2" + ], + "isOsiApproved": false + }, + { + "reference": "./ImageMagick.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ImageMagick.json", + "referenceNumber": "165", + "name": "ImageMagick License", + "licenseId": "ImageMagick", + "seeAlso": [ + "http://www.imagemagick.org/script/license.php" + ], + "isOsiApproved": false + }, + { + "reference": "./iMatix.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/iMatix.json", + "referenceNumber": "166", + "name": "iMatix Standard Function Library Agreement", + "licenseId": "iMatix", + "seeAlso": [ + "http://legacy.imatix.com/html/sfl/sfl4.htm#license" + ], + "isOsiApproved": false + }, + { + "reference": "./Imlib2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Imlib2.json", + "referenceNumber": "167", + "name": "Imlib2 License", + "licenseId": "Imlib2", + "seeAlso": [ + "https://git.enlightenment.org/legacy/imlib2.git/tree/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./Info-ZIP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Info-ZIP.json", + "referenceNumber": "168", + "name": "Info-ZIP License", + "licenseId": "Info-ZIP", + "seeAlso": [ + "http://www.info-zip.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Intel-ACPI.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Intel-ACPI.json", + "referenceNumber": "169", + "name": "Intel ACPI Software License Agreement", + "licenseId": "Intel-ACPI", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Intel_ACPI_Software_License_Agreement" + ], + "isOsiApproved": false + }, + { + "reference": "./Intel.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Intel.json", + "referenceNumber": "170", + "name": "Intel Open Source License", + "licenseId": "Intel", + "seeAlso": [ + "http://opensource.org/licenses/Intel" + ], + "isOsiApproved": true + }, + { + "reference": "./Interbase-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Interbase-1.0.json", + "referenceNumber": "171", + "name": "Interbase Public License v1.0", + "licenseId": "Interbase-1.0", + "seeAlso": [ + "https://web.archive.org/web/20060319014854/http://info.borland.com/devsupport/interbase/opensource/IPL.html" + ], + "isOsiApproved": false + }, + { + "reference": "./IPA.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IPA.json", + "referenceNumber": "172", + "name": "IPA Font License", + "licenseId": "IPA", + "seeAlso": [ + "http://www.opensource.org/licenses/IPA" + ], + "isOsiApproved": true + }, + { + "reference": "./IPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/IPL-1.0.json", + "referenceNumber": "173", + "name": "IBM Public License v1.0", + "licenseId": "IPL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/IPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ISC.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ISC.json", + "referenceNumber": "174", + "name": "ISC License", + "licenseId": "ISC", + "seeAlso": [ + "https://www.isc.org/downloads/software-support-policy/isc-license/", + "http://www.opensource.org/licenses/ISC" + ], + "isOsiApproved": true + }, + { + "reference": "./JasPer-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/JasPer-2.0.json", + "referenceNumber": "175", + "name": "JasPer License", + "licenseId": "JasPer-2.0", + "seeAlso": [ + "http://www.ece.uvic.ca/~mdadams/jasper/LICENSE" + ], + "isOsiApproved": false + }, + { + "reference": "./JSON.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/JSON.json", + "referenceNumber": "176", + "name": "JSON License", + "licenseId": "JSON", + "seeAlso": [ + "http://www.json.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./LAL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LAL-1.2.json", + "referenceNumber": "177", + "name": "Licence Art Libre 1.2", + "licenseId": "LAL-1.2", + "seeAlso": [ + "http://artlibre.org/licence/lal/licence-art-libre-12/" + ], + "isOsiApproved": false + }, + { + "reference": "./LAL-1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LAL-1.3.json", + "referenceNumber": "178", + "name": "Licence Art Libre 1.3", + "licenseId": "LAL-1.3", + "seeAlso": [ + "http://artlibre.org/" + ], + "isOsiApproved": false + }, + { + "reference": "./Latex2e.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Latex2e.json", + "referenceNumber": "179", + "name": "Latex2e License", + "licenseId": "Latex2e", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Latex2e" + ], + "isOsiApproved": false + }, + { + "reference": "./Leptonica.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Leptonica.json", + "referenceNumber": "180", + "name": "Leptonica License", + "licenseId": "Leptonica", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Leptonica" + ], + "isOsiApproved": false + }, + { + "reference": "./LGPL-2.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0-only.json", + "referenceNumber": "181", + "name": "GNU Library General Public License v2 only", + "licenseId": "LGPL-2.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0-or-later.json", + "referenceNumber": "182", + "name": "GNU Library General Public License v2 or later", + "licenseId": "LGPL-2.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1-only.json", + "referenceNumber": "183", + "name": "GNU Lesser General Public License v2.1 only", + "licenseId": "LGPL-2.1-only", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "http://www.opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1-or-later.json", + "referenceNumber": "184", + "name": "GNU Lesser General Public License v2.1 or later", + "licenseId": "LGPL-2.1-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "http://www.opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0-only.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0-only.json", + "referenceNumber": "185", + "name": "GNU Lesser General Public License v3.0 only", + "licenseId": "LGPL-3.0-only", + "seeAlso": [ + "http://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "http://www.opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0-or-later.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0-or-later.json", + "referenceNumber": "186", + "name": "GNU Lesser General Public License v3.0 or later", + "licenseId": "LGPL-3.0-or-later", + "seeAlso": [ + "http://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "http://www.opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPLLR.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LGPLLR.json", + "referenceNumber": "187", + "name": "Lesser General Public License For Linguistic Resources", + "licenseId": "LGPLLR", + "seeAlso": [ + "http://www-igm.univ-mlv.fr/~unitex/lgpllr.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Libpng.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Libpng.json", + "referenceNumber": "188", + "name": "libpng License", + "licenseId": "Libpng", + "seeAlso": [ + "http://www.libpng.org/pub/png/src/libpng-LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./libtiff.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/libtiff.json", + "referenceNumber": "189", + "name": "libtiff License", + "licenseId": "libtiff", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/libtiff" + ], + "isOsiApproved": false + }, + { + "reference": "./LiLiQ-P-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-P-1.1.json", + "referenceNumber": "190", + "name": "Licence Libre du Québec – Permissive version 1.1", + "licenseId": "LiLiQ-P-1.1", + "seeAlso": [ + "http://opensource.org/licenses/LiLiQ-P-1.1", + "https://forge.gouv.qc.ca/licence/fr/liliq-v1-1/" + ], + "isOsiApproved": true + }, + { + "reference": "./LiLiQ-R-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-R-1.1.json", + "referenceNumber": "191", + "name": "Licence Libre du Québec – Réciprocité version 1.1", + "licenseId": "LiLiQ-R-1.1", + "seeAlso": [ + "http://opensource.org/licenses/LiLiQ-R-1.1", + "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-liliq-r-v1-1/" + ], + "isOsiApproved": true + }, + { + "reference": "./LiLiQ-Rplus-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LiLiQ-Rplus-1.1.json", + "referenceNumber": "192", + "name": "Licence Libre du Québec – Réciprocité forte version 1.1", + "licenseId": "LiLiQ-Rplus-1.1", + "seeAlso": [ + "http://opensource.org/licenses/LiLiQ-Rplus-1.1", + "https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-forte-liliq-r-v1-1/" + ], + "isOsiApproved": true + }, + { + "reference": "./LPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPL-1.0.json", + "referenceNumber": "193", + "name": "Lucent Public License Version 1.0", + "licenseId": "LPL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/LPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LPL-1.02.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPL-1.02.json", + "referenceNumber": "194", + "name": "Lucent Public License v1.02", + "licenseId": "LPL-1.02", + "seeAlso": [ + "http://plan9.bell-labs.com/plan9/license.html", + "http://www.opensource.org/licenses/LPL-1.02" + ], + "isOsiApproved": true + }, + { + "reference": "./LPPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.0.json", + "referenceNumber": "195", + "name": "LaTeX Project Public License v1.0", + "licenseId": "LPPL-1.0", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-0.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.1.json", + "referenceNumber": "196", + "name": "LaTeX Project Public License v1.1", + "licenseId": "LPPL-1.1", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.2.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.2.json", + "referenceNumber": "197", + "name": "LaTeX Project Public License v1.2", + "licenseId": "LPPL-1.2", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.3a.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.3a.json", + "referenceNumber": "198", + "name": "LaTeX Project Public License v1.3a", + "licenseId": "LPPL-1.3a", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-3a.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./LPPL-1.3c.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/LPPL-1.3c.json", + "referenceNumber": "199", + "name": "LaTeX Project Public License v1.3c", + "licenseId": "LPPL-1.3c", + "seeAlso": [ + "http://www.latex-project.org/lppl/lppl-1-3c.txt", + "http://www.opensource.org/licenses/LPPL-1.3c" + ], + "isOsiApproved": true + }, + { + "reference": "./MakeIndex.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MakeIndex.json", + "referenceNumber": "200", + "name": "MakeIndex License", + "licenseId": "MakeIndex", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MakeIndex" + ], + "isOsiApproved": false + }, + { + "reference": "./MirOS.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MirOS.json", + "referenceNumber": "201", + "name": "MirOS License", + "licenseId": "MirOS", + "seeAlso": [ + "http://www.opensource.org/licenses/MirOS" + ], + "isOsiApproved": true + }, + { + "reference": "./MIT-advertising.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-advertising.json", + "referenceNumber": "202", + "name": "Enlightenment License (e16)", + "licenseId": "MIT-advertising", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-CMU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-CMU.json", + "referenceNumber": "203", + "name": "CMU License", + "licenseId": "MIT-CMU", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing:MIT?rd\u003dLicensing/MIT#CMU_Style" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-enna.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-enna.json", + "referenceNumber": "204", + "name": "enna License", + "licenseId": "MIT-enna", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#enna" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT-feh.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MIT-feh.json", + "referenceNumber": "205", + "name": "feh License", + "licenseId": "MIT-feh", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT#feh" + ], + "isOsiApproved": false + }, + { + "reference": "./MIT.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MIT.json", + "referenceNumber": "206", + "name": "MIT License", + "licenseId": "MIT", + "seeAlso": [ + "http://www.opensource.org/licenses/MIT" + ], + "isOsiApproved": true + }, + { + "reference": "./MITNFA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MITNFA.json", + "referenceNumber": "207", + "name": "MIT +no-false-attribs license", + "licenseId": "MITNFA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MITNFA" + ], + "isOsiApproved": false + }, + { + "reference": "./Motosoto.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Motosoto.json", + "referenceNumber": "208", + "name": "Motosoto License", + "licenseId": "Motosoto", + "seeAlso": [ + "http://www.opensource.org/licenses/Motosoto" + ], + "isOsiApproved": true + }, + { + "reference": "./mpich2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/mpich2.json", + "referenceNumber": "209", + "name": "mpich2 License", + "licenseId": "mpich2", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/MIT" + ], + "isOsiApproved": false + }, + { + "reference": "./MPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MPL-1.0.json", + "referenceNumber": "210", + "name": "Mozilla Public License 1.0", + "licenseId": "MPL-1.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/MPL-1.0.html", + "http://opensource.org/licenses/MPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MPL-1.1.json", + "referenceNumber": "211", + "name": "Mozilla Public License 1.1", + "licenseId": "MPL-1.1", + "seeAlso": [ + "http://www.mozilla.org/MPL/MPL-1.1.html", + "http://www.opensource.org/licenses/MPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-2.0-no-copyleft-exception.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MPL-2.0-no-copyleft-exception.json", + "referenceNumber": "212", + "name": "Mozilla Public License 2.0 (no copyleft exception)", + "licenseId": "MPL-2.0-no-copyleft-exception", + "seeAlso": [ + "http://www.mozilla.org/MPL/2.0/", + "http://opensource.org/licenses/MPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MPL-2.0.json", + "referenceNumber": "213", + "name": "Mozilla Public License 2.0", + "licenseId": "MPL-2.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/2.0/", + "http://opensource.org/licenses/MPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./MS-PL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MS-PL.json", + "referenceNumber": "214", + "name": "Microsoft Public License", + "licenseId": "MS-PL", + "seeAlso": [ + "http://www.microsoft.com/opensource/licenses.mspx", + "http://www.opensource.org/licenses/MS-PL" + ], + "isOsiApproved": true + }, + { + "reference": "./MS-RL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/MS-RL.json", + "referenceNumber": "215", + "name": "Microsoft Reciprocal License", + "licenseId": "MS-RL", + "seeAlso": [ + "http://www.microsoft.com/opensource/licenses.mspx", + "http://www.opensource.org/licenses/MS-RL" + ], + "isOsiApproved": true + }, + { + "reference": "./MTLL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/MTLL.json", + "referenceNumber": "216", + "name": "Matrix Template Library License", + "licenseId": "MTLL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Matrix_Template_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Multics.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Multics.json", + "referenceNumber": "217", + "name": "Multics License", + "licenseId": "Multics", + "seeAlso": [ + "http://www.opensource.org/licenses/Multics" + ], + "isOsiApproved": true + }, + { + "reference": "./Mup.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Mup.json", + "referenceNumber": "218", + "name": "Mup License", + "licenseId": "Mup", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Mup" + ], + "isOsiApproved": false + }, + { + "reference": "./NASA-1.3.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/NASA-1.3.json", + "referenceNumber": "219", + "name": "NASA Open Source Agreement 1.3", + "licenseId": "NASA-1.3", + "seeAlso": [ + "http://ti.arc.nasa.gov/opensource/nosa/", + "http://www.opensource.org/licenses/NASA-1.3" + ], + "isOsiApproved": true + }, + { + "reference": "./Naumen.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Naumen.json", + "referenceNumber": "220", + "name": "Naumen Public License", + "licenseId": "Naumen", + "seeAlso": [ + "http://www.opensource.org/licenses/Naumen" + ], + "isOsiApproved": true + }, + { + "reference": "./NBPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NBPL-1.0.json", + "referenceNumber": "221", + "name": "Net Boolean Public License v1", + "licenseId": "NBPL-1.0", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d37b4b3f6cc4bf34e1d3dec61e69914b9819d8894" + ], + "isOsiApproved": false + }, + { + "reference": "./NCSA.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NCSA.json", + "referenceNumber": "222", + "name": "University of Illinois/NCSA Open Source License", + "licenseId": "NCSA", + "seeAlso": [ + "http://otm.illinois.edu/uiuc_openSource", + "http://www.opensource.org/licenses/NCSA" + ], + "isOsiApproved": true + }, + { + "reference": "./Net-SNMP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Net-SNMP.json", + "referenceNumber": "223", + "name": "Net-SNMP License", + "licenseId": "Net-SNMP", + "seeAlso": [ + "http://net-snmp.sourceforge.net/about/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./NetCDF.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NetCDF.json", + "referenceNumber": "224", + "name": "NetCDF license", + "licenseId": "NetCDF", + "seeAlso": [ + "http://www.unidata.ucar.edu/software/netcdf/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Newsletr.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Newsletr.json", + "referenceNumber": "225", + "name": "Newsletr License", + "licenseId": "Newsletr", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Newsletr" + ], + "isOsiApproved": false + }, + { + "reference": "./NGPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NGPL.json", + "referenceNumber": "226", + "name": "Nethack General Public License", + "licenseId": "NGPL", + "seeAlso": [ + "http://www.opensource.org/licenses/NGPL" + ], + "isOsiApproved": true + }, + { + "reference": "./NLOD-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NLOD-1.0.json", + "referenceNumber": "227", + "name": "Norwegian Licence for Open Government Data", + "licenseId": "NLOD-1.0", + "seeAlso": [ + "http://data.norge.no/nlod/en/1.0" + ], + "isOsiApproved": false + }, + { + "reference": "./NLPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NLPL.json", + "referenceNumber": "228", + "name": "No Limit Public License", + "licenseId": "NLPL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/NLPL" + ], + "isOsiApproved": false + }, + { + "reference": "./Nokia.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Nokia.json", + "referenceNumber": "229", + "name": "Nokia Open Source License", + "licenseId": "Nokia", + "seeAlso": [ + "http://www.opensource.org/licenses/nokia" + ], + "isOsiApproved": true + }, + { + "reference": "./NOSL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NOSL.json", + "referenceNumber": "230", + "name": "Netizen Open Source License", + "licenseId": "NOSL", + "seeAlso": [ + "http://bits.netizen.com.au/licenses/NOSL/nosl.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Noweb.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Noweb.json", + "referenceNumber": "231", + "name": "Noweb License", + "licenseId": "Noweb", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Noweb" + ], + "isOsiApproved": false + }, + { + "reference": "./NPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NPL-1.0.json", + "referenceNumber": "232", + "name": "Netscape Public License v1.0", + "licenseId": "NPL-1.0", + "seeAlso": [ + "http://www.mozilla.org/MPL/NPL/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./NPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/NPL-1.1.json", + "referenceNumber": "233", + "name": "Netscape Public License v1.1", + "licenseId": "NPL-1.1", + "seeAlso": [ + "http://www.mozilla.org/MPL/NPL/1.1/" + ], + "isOsiApproved": false + }, + { + "reference": "./NPOSL-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NPOSL-3.0.json", + "referenceNumber": "234", + "name": "Non-Profit Open Software License 3.0", + "licenseId": "NPOSL-3.0", + "seeAlso": [ + "http://www.opensource.org/licenses/NOSL3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./NRL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NRL.json", + "referenceNumber": "235", + "name": "NRL License", + "licenseId": "NRL", + "seeAlso": [ + "http://web.mit.edu/network/isakmp/nrllicense.html" + ], + "isOsiApproved": false + }, + { + "reference": "./NTP.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/NTP.json", + "referenceNumber": "236", + "name": "NTP License", + "licenseId": "NTP", + "seeAlso": [ + "http://www.opensource.org/licenses/NTP" + ], + "isOsiApproved": true + }, + { + "reference": "./OCCT-PL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OCCT-PL.json", + "referenceNumber": "237", + "name": "Open CASCADE Technology Public License", + "licenseId": "OCCT-PL", + "seeAlso": [ + "http://www.opencascade.com/content/occt-public-license" + ], + "isOsiApproved": false + }, + { + "reference": "./OCLC-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OCLC-2.0.json", + "referenceNumber": "238", + "name": "OCLC Research Public License 2.0", + "licenseId": "OCLC-2.0", + "seeAlso": [ + "http://www.oclc.org/research/activities/software/license/v2final.htm", + "http://www.opensource.org/licenses/OCLC-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ODbL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ODbL-1.0.json", + "referenceNumber": "239", + "name": "ODC Open Database License v1.0", + "licenseId": "ODbL-1.0", + "seeAlso": [ + "http://www.opendatacommons.org/licenses/odbl/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OFL-1.0.json", + "referenceNumber": "240", + "name": "SIL Open Font License 1.0", + "licenseId": "OFL-1.0", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web" + ], + "isOsiApproved": false + }, + { + "reference": "./OFL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OFL-1.1.json", + "referenceNumber": "241", + "name": "SIL Open Font License 1.1", + "licenseId": "OFL-1.1", + "seeAlso": [ + "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web", + "http://www.opensource.org/licenses/OFL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./OGTSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OGTSL.json", + "referenceNumber": "242", + "name": "Open Group Test Suite License", + "licenseId": "OGTSL", + "seeAlso": [ + "http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt", + "http://www.opensource.org/licenses/OGTSL" + ], + "isOsiApproved": true + }, + { + "reference": "./OLDAP-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.1.json", + "referenceNumber": "243", + "name": "Open LDAP Public License v1.1", + "licenseId": "OLDAP-1.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d806557a5ad59804ef3a44d5abfbe91d706b0791f" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.2.json", + "referenceNumber": "244", + "name": "Open LDAP Public License v1.2", + "licenseId": "OLDAP-1.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d42b0383c50c299977b5893ee695cf4e486fb0dc7" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.3.json", + "referenceNumber": "245", + "name": "Open LDAP Public License v1.3", + "licenseId": "OLDAP-1.3", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003de5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-1.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-1.4.json", + "referenceNumber": "246", + "name": "Open LDAP Public License v1.4", + "licenseId": "OLDAP-1.4", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dc9f95c2f3f2ffb5e0ae55fe7388af75547660941" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.0.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.0.1.json", + "referenceNumber": "247", + "name": "Open LDAP Public License v2.0.1", + "licenseId": "OLDAP-2.0.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003db6d68acd14e51ca3aab4428bf26522aa74873f0e" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.0.json", + "referenceNumber": "248", + "name": "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)", + "licenseId": "OLDAP-2.0", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dcbf50f4e1185a21abd4c0a54d3f4341fe28f36ea" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.1.json", + "referenceNumber": "249", + "name": "Open LDAP Public License v2.1", + "licenseId": "OLDAP-2.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003db0d176738e96a0d3b9f85cb51e140a86f21be715" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.1.json", + "referenceNumber": "250", + "name": "Open LDAP Public License v2.2.1", + "licenseId": "OLDAP-2.2.1", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d4bc786f34b50aa301be6f5600f58a980070f481e" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.2.json", + "referenceNumber": "251", + "name": "Open LDAP Public License 2.2.2", + "licenseId": "OLDAP-2.2.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003ddf2cc1e21eb7c160695f5b7cffd6296c151ba188" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.2.json", + "referenceNumber": "252", + "name": "Open LDAP Public License v2.2", + "licenseId": "OLDAP-2.2", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d470b0c18ec67621c85881b2733057fecf4a1acc3" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.3.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.3.json", + "referenceNumber": "253", + "name": "Open LDAP Public License v2.3", + "licenseId": "OLDAP-2.3", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dd32cf54a32d581ab475d23c810b0a7fbaf8d63c3" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.4.json", + "referenceNumber": "254", + "name": "Open LDAP Public License v2.4", + "licenseId": "OLDAP-2.4", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003dcd1284c4a91a8a380d904eee68d1583f989ed386" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.5.json", + "referenceNumber": "255", + "name": "Open LDAP Public License v2.5", + "licenseId": "OLDAP-2.5", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d6852b9d90022e8593c98205413380536b1b5a7cf" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.6.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.6.json", + "referenceNumber": "256", + "name": "Open LDAP Public License v2.6", + "licenseId": "OLDAP-2.6", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d1cae062821881f41b73012ba816434897abf4205" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.7.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.7.json", + "referenceNumber": "257", + "name": "Open LDAP Public License v2.7", + "licenseId": "OLDAP-2.7", + "seeAlso": [ + "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d47c2415c1df81556eeb39be6cad458ef87c534a2" + ], + "isOsiApproved": false + }, + { + "reference": "./OLDAP-2.8.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OLDAP-2.8.json", + "referenceNumber": "258", + "name": "Open LDAP Public License v2.8", + "licenseId": "OLDAP-2.8", + "seeAlso": [ + "http://www.openldap.org/software/release/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./OML.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OML.json", + "referenceNumber": "259", + "name": "Open Market License", + "licenseId": "OML", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Open_Market_License" + ], + "isOsiApproved": false + }, + { + "reference": "./OpenSSL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OpenSSL.json", + "referenceNumber": "260", + "name": "OpenSSL License", + "licenseId": "OpenSSL", + "seeAlso": [ + "http://www.openssl.org/source/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./OPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/OPL-1.0.json", + "referenceNumber": "261", + "name": "Open Public License v1.0", + "licenseId": "OPL-1.0", + "seeAlso": [ + "http://old.koalateam.com/jackaroo/OPL_1_0.TXT", + "https://fedoraproject.org/wiki/Licensing/Open_Public_License" + ], + "isOsiApproved": false + }, + { + "reference": "./OSET-PL-2.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/OSET-PL-2.1.json", + "referenceNumber": "262", + "name": "OSET Public License version 2.1", + "licenseId": "OSET-PL-2.1", + "seeAlso": [ + "http://opensource.org/licenses/OPL-2.1", + "http://www.osetfoundation.org/public-license" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-1.0.json", + "referenceNumber": "263", + "name": "Open Software License 1.0", + "licenseId": "OSL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/OSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-1.1.json", + "referenceNumber": "264", + "name": "Open Software License 1.1", + "licenseId": "OSL-1.1", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/OSL1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./OSL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-2.0.json", + "referenceNumber": "265", + "name": "Open Software License 2.0", + "licenseId": "OSL-2.0", + "seeAlso": [ + "http://web.archive.org/web/20041020171434/http://www.rosenlaw.com/osl2.0.html" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-2.1.json", + "referenceNumber": "266", + "name": "Open Software License 2.1", + "licenseId": "OSL-2.1", + "seeAlso": [ + "http://opensource.org/licenses/OSL-2.1", + "http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm" + ], + "isOsiApproved": true + }, + { + "reference": "./OSL-3.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/OSL-3.0.json", + "referenceNumber": "267", + "name": "Open Software License 3.0", + "licenseId": "OSL-3.0", + "seeAlso": [ + "http://www.rosenlaw.com/OSL3.0.htm", + "http://www.opensource.org/licenses/OSL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./PDDL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PDDL-1.0.json", + "referenceNumber": "268", + "name": "ODC Public Domain Dedication \u0026 License 1.0", + "licenseId": "PDDL-1.0", + "seeAlso": [ + "http://opendatacommons.org/licenses/pddl/1.0/" + ], + "isOsiApproved": false + }, + { + "reference": "./PHP-3.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PHP-3.0.json", + "referenceNumber": "269", + "name": "PHP License v3.0", + "licenseId": "PHP-3.0", + "seeAlso": [ + "http://www.opensource.org/licenses/PHP-3.0", + "http://www.php.net/license/3_0.txt" + ], + "isOsiApproved": true + }, + { + "reference": "./PHP-3.01.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/PHP-3.01.json", + "referenceNumber": "270", + "name": "PHP License v3.01", + "licenseId": "PHP-3.01", + "seeAlso": [ + "http://www.php.net/license/3_01.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Plexus.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Plexus.json", + "referenceNumber": "271", + "name": "Plexus Classworlds License", + "licenseId": "Plexus", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License" + ], + "isOsiApproved": false + }, + { + "reference": "./PostgreSQL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/PostgreSQL.json", + "referenceNumber": "272", + "name": "PostgreSQL License", + "licenseId": "PostgreSQL", + "seeAlso": [ + "http://www.postgresql.org/about/licence", + "http://www.opensource.org/licenses/PostgreSQL" + ], + "isOsiApproved": true + }, + { + "reference": "./psfrag.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/psfrag.json", + "referenceNumber": "273", + "name": "psfrag License", + "licenseId": "psfrag", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/psfrag" + ], + "isOsiApproved": false + }, + { + "reference": "./psutils.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/psutils.json", + "referenceNumber": "274", + "name": "psutils License", + "licenseId": "psutils", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/psutils" + ], + "isOsiApproved": false + }, + { + "reference": "./Python-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Python-2.0.json", + "referenceNumber": "275", + "name": "Python License 2.0", + "licenseId": "Python-2.0", + "seeAlso": [ + "http://www.opensource.org/licenses/Python-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Qhull.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Qhull.json", + "referenceNumber": "276", + "name": "Qhull License", + "licenseId": "Qhull", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Qhull" + ], + "isOsiApproved": false + }, + { + "reference": "./QPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/QPL-1.0.json", + "referenceNumber": "277", + "name": "Q Public License 1.0", + "licenseId": "QPL-1.0", + "seeAlso": [ + "http://doc.qt.nokia.com/3.3/license.html", + "http://www.opensource.org/licenses/QPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Rdisc.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Rdisc.json", + "referenceNumber": "278", + "name": "Rdisc License", + "licenseId": "Rdisc", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Rdisc_License" + ], + "isOsiApproved": false + }, + { + "reference": "./RHeCos-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/RHeCos-1.1.json", + "referenceNumber": "279", + "name": "Red Hat eCos Public License v1.1", + "licenseId": "RHeCos-1.1", + "seeAlso": [ + "http://ecos.sourceware.org/old-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./RPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RPL-1.1.json", + "referenceNumber": "280", + "name": "Reciprocal Public License 1.1", + "licenseId": "RPL-1.1", + "seeAlso": [ + "http://opensource.org/licenses/RPL-1.1" + ], + "isOsiApproved": true + }, + { + "reference": "./RPL-1.5.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RPL-1.5.json", + "referenceNumber": "281", + "name": "Reciprocal Public License 1.5", + "licenseId": "RPL-1.5", + "seeAlso": [ + "http://www.opensource.org/licenses/RPL-1.5" + ], + "isOsiApproved": true + }, + { + "reference": "./RPSL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/RPSL-1.0.json", + "referenceNumber": "282", + "name": "RealNetworks Public Source License v1.0", + "licenseId": "RPSL-1.0", + "seeAlso": [ + "https://helixcommunity.org/content/rpsl", + "http://www.opensource.org/licenses/RPSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./RSA-MD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RSA-MD.json", + "referenceNumber": "283", + "name": "RSA Message-Digest License ", + "licenseId": "RSA-MD", + "seeAlso": [ + "http://www.faqs.org/rfcs/rfc1321.html" + ], + "isOsiApproved": false + }, + { + "reference": "./RSCPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/RSCPL.json", + "referenceNumber": "284", + "name": "Ricoh Source Code Public License", + "licenseId": "RSCPL", + "seeAlso": [ + "http://www.opensource.org/licenses/RSCPL", + "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml" + ], + "isOsiApproved": true + }, + { + "reference": "./Ruby.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Ruby.json", + "referenceNumber": "285", + "name": "Ruby License", + "licenseId": "Ruby", + "seeAlso": [ + "http://www.ruby-lang.org/en/LICENSE.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./SAX-PD.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SAX-PD.json", + "referenceNumber": "286", + "name": "Sax Public Domain Notice", + "licenseId": "SAX-PD", + "seeAlso": [ + "http://www.saxproject.org/copying.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Saxpath.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Saxpath.json", + "referenceNumber": "287", + "name": "Saxpath License", + "licenseId": "Saxpath", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Saxpath_License" + ], + "isOsiApproved": false + }, + { + "reference": "./SCEA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SCEA.json", + "referenceNumber": "288", + "name": "SCEA Shared Source License", + "licenseId": "SCEA", + "seeAlso": [ + "http://research.scea.com/scea_shared_source_license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Sendmail.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Sendmail.json", + "referenceNumber": "289", + "name": "Sendmail License", + "licenseId": "Sendmail", + "seeAlso": [ + "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf", + "https://web.archive.org/web/20160322142305/https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SGI-B-1.0.json", + "referenceNumber": "290", + "name": "SGI Free Software License B v1.0", + "licenseId": "SGI-B-1.0", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.1.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SGI-B-1.1.json", + "referenceNumber": "291", + "name": "SGI Free Software License B v1.1", + "licenseId": "SGI-B-1.1", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/" + ], + "isOsiApproved": false + }, + { + "reference": "./SGI-B-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SGI-B-2.0.json", + "referenceNumber": "292", + "name": "SGI Free Software License B v2.0", + "licenseId": "SGI-B-2.0", + "seeAlso": [ + "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf" + ], + "isOsiApproved": false + }, + { + "reference": "./SimPL-2.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SimPL-2.0.json", + "referenceNumber": "293", + "name": "Simple Public License 2.0", + "licenseId": "SimPL-2.0", + "seeAlso": [ + "http://www.opensource.org/licenses/SimPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./SISSL-1.2.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SISSL-1.2.json", + "referenceNumber": "294", + "name": "Sun Industry Standards Source License v1.2", + "licenseId": "SISSL-1.2", + "seeAlso": [ + "http://gridscheduler.sourceforge.net/Gridengine_SISSL_license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SISSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SISSL.json", + "referenceNumber": "295", + "name": "Sun Industry Standards Source License v1.1", + "licenseId": "SISSL", + "seeAlso": [ + "http://www.openoffice.org/licenses/sissl_license.html", + "http://opensource.org/licenses/SISSL" + ], + "isOsiApproved": true + }, + { + "reference": "./Sleepycat.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Sleepycat.json", + "referenceNumber": "296", + "name": "Sleepycat License", + "licenseId": "Sleepycat", + "seeAlso": [ + "http://www.opensource.org/licenses/Sleepycat" + ], + "isOsiApproved": true + }, + { + "reference": "./SMLNJ.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SMLNJ.json", + "referenceNumber": "297", + "name": "Standard ML of New Jersey License", + "licenseId": "SMLNJ", + "seeAlso": [ + "https://www.smlnj.org/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./SMPPL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SMPPL.json", + "referenceNumber": "298", + "name": "Secure Messaging Protocol Public License", + "licenseId": "SMPPL", + "seeAlso": [ + "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./SNIA.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SNIA.json", + "referenceNumber": "299", + "name": "SNIA Public License 1.1", + "licenseId": "SNIA", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/SNIA_Public_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Spencer-86.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-86.json", + "referenceNumber": "300", + "name": "Spencer License 86", + "licenseId": "Spencer-86", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Spencer-94.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-94.json", + "referenceNumber": "301", + "name": "Spencer License 94", + "licenseId": "Spencer-94", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Spencer-99.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Spencer-99.json", + "referenceNumber": "302", + "name": "Spencer License 99", + "licenseId": "Spencer-99", + "seeAlso": [ + "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c" + ], + "isOsiApproved": false + }, + { + "reference": "./SPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/SPL-1.0.json", + "referenceNumber": "303", + "name": "Sun Public License v1.0", + "licenseId": "SPL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/SPL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./SugarCRM-1.1.3.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SugarCRM-1.1.3.json", + "referenceNumber": "304", + "name": "SugarCRM Public License v1.1.3", + "licenseId": "SugarCRM-1.1.3", + "seeAlso": [ + "http://www.sugarcrm.com/crm/SPL" + ], + "isOsiApproved": false + }, + { + "reference": "./SWL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/SWL.json", + "referenceNumber": "305", + "name": "Scheme Widget Library (SWL) Software License Agreement", + "licenseId": "SWL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/SWL" + ], + "isOsiApproved": false + }, + { + "reference": "./TCL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TCL.json", + "referenceNumber": "306", + "name": "TCL/TK License", + "licenseId": "TCL", + "seeAlso": [ + "http://www.tcl.tk/software/tcltk/license.html", + "https://fedoraproject.org/wiki/Licensing/TCL" + ], + "isOsiApproved": false + }, + { + "reference": "./TCP-wrappers.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TCP-wrappers.json", + "referenceNumber": "307", + "name": "TCP Wrappers License", + "licenseId": "TCP-wrappers", + "seeAlso": [ + "http://rc.quest.com/topics/openssh/license.php#tcpwrappers" + ], + "isOsiApproved": false + }, + { + "reference": "./TMate.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TMate.json", + "referenceNumber": "308", + "name": "TMate Open Source License", + "licenseId": "TMate", + "seeAlso": [ + "http://svnkit.com/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./TORQUE-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TORQUE-1.1.json", + "referenceNumber": "309", + "name": "TORQUE v2.5+ Software License v1.1", + "licenseId": "TORQUE-1.1", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/TORQUEv1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./TOSL.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/TOSL.json", + "referenceNumber": "310", + "name": "Trusster Open Source License", + "licenseId": "TOSL", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/TOSL" + ], + "isOsiApproved": false + }, + { + "reference": "./Unicode-DFS-2015.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-DFS-2015.json", + "referenceNumber": "311", + "name": "Unicode License Agreement - Data Files and Software (2015)", + "licenseId": "Unicode-DFS-2015", + "seeAlso": [ + "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unicode-DFS-2016.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-DFS-2016.json", + "referenceNumber": "312", + "name": "Unicode License Agreement - Data Files and Software (2016)", + "licenseId": "Unicode-DFS-2016", + "seeAlso": [ + "http://www.unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unicode-TOU.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Unicode-TOU.json", + "referenceNumber": "313", + "name": "Unicode Terms of Use", + "licenseId": "Unicode-TOU", + "seeAlso": [ + "http://www.unicode.org/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Unlicense.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Unlicense.json", + "referenceNumber": "314", + "name": "The Unlicense", + "licenseId": "Unlicense", + "seeAlso": [ + "http://unlicense.org/" + ], + "isOsiApproved": false + }, + { + "reference": "./UPL-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/UPL-1.0.json", + "referenceNumber": "315", + "name": "Universal Permissive License v1.0", + "licenseId": "UPL-1.0", + "seeAlso": [ + "http://opensource.org/licenses/UPL" + ], + "isOsiApproved": true + }, + { + "reference": "./Vim.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Vim.json", + "referenceNumber": "316", + "name": "Vim License", + "licenseId": "Vim", + "seeAlso": [ + "http://vimdoc.sourceforge.net/htmldoc/uganda.html" + ], + "isOsiApproved": false + }, + { + "reference": "./VOSTROM.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/VOSTROM.json", + "referenceNumber": "317", + "name": "VOSTROM Public License for Open Source", + "licenseId": "VOSTROM", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/VOSTROM" + ], + "isOsiApproved": false + }, + { + "reference": "./VSL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/VSL-1.0.json", + "referenceNumber": "318", + "name": "Vovida Software License v1.0", + "licenseId": "VSL-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/VSL-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./W3C-19980720.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/W3C-19980720.json", + "referenceNumber": "319", + "name": "W3C Software Notice and License (1998-07-20)", + "licenseId": "W3C-19980720", + "seeAlso": [ + "http://www.w3.org/Consortium/Legal/copyright-software-19980720.html" + ], + "isOsiApproved": false + }, + { + "reference": "./W3C-20150513.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/W3C-20150513.json", + "referenceNumber": "320", + "name": "W3C Software Notice and Document License (2015-05-13)", + "licenseId": "W3C-20150513", + "seeAlso": [ + "https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document" + ], + "isOsiApproved": false + }, + { + "reference": "./W3C.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/W3C.json", + "referenceNumber": "321", + "name": "W3C Software Notice and License (2002-12-31)", + "licenseId": "W3C", + "seeAlso": [ + "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html", + "http://www.opensource.org/licenses/W3C" + ], + "isOsiApproved": true + }, + { + "reference": "./Watcom-1.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/Watcom-1.0.json", + "referenceNumber": "322", + "name": "Sybase Open Watcom Public License 1.0", + "licenseId": "Watcom-1.0", + "seeAlso": [ + "http://www.opensource.org/licenses/Watcom-1.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Wsuipa.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Wsuipa.json", + "referenceNumber": "323", + "name": "Wsuipa License", + "licenseId": "Wsuipa", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Wsuipa" + ], + "isOsiApproved": false + }, + { + "reference": "./WTFPL.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/WTFPL.json", + "referenceNumber": "324", + "name": "Do What The F*ck You Want To Public License", + "licenseId": "WTFPL", + "seeAlso": [ + "http://sam.zoy.org/wtfpl/COPYING" + ], + "isOsiApproved": false + }, + { + "reference": "./X11.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/X11.json", + "referenceNumber": "325", + "name": "X11 License", + "licenseId": "X11", + "seeAlso": [ + "http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3" + ], + "isOsiApproved": false + }, + { + "reference": "./Xerox.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Xerox.json", + "referenceNumber": "326", + "name": "Xerox License", + "licenseId": "Xerox", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Xerox" + ], + "isOsiApproved": false + }, + { + "reference": "./XFree86-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/XFree86-1.1.json", + "referenceNumber": "327", + "name": "XFree86 License 1.1", + "licenseId": "XFree86-1.1", + "seeAlso": [ + "http://www.xfree86.org/current/LICENSE4.html" + ], + "isOsiApproved": false + }, + { + "reference": "./xinetd.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/xinetd.json", + "referenceNumber": "328", + "name": "xinetd License", + "licenseId": "xinetd", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Xinetd_License" + ], + "isOsiApproved": false + }, + { + "reference": "./Xnet.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Xnet.json", + "referenceNumber": "329", + "name": "X.Net License", + "licenseId": "Xnet", + "seeAlso": [ + "http://opensource.org/licenses/Xnet" + ], + "isOsiApproved": true + }, + { + "reference": "./xpp.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/xpp.json", + "referenceNumber": "330", + "name": "XPP License", + "licenseId": "xpp", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/xpp" + ], + "isOsiApproved": false + }, + { + "reference": "./XSkat.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/XSkat.json", + "referenceNumber": "331", + "name": "XSkat License", + "licenseId": "XSkat", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/XSkat_License" + ], + "isOsiApproved": false + }, + { + "reference": "./YPL-1.0.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/YPL-1.0.json", + "referenceNumber": "332", + "name": "Yahoo! Public License v1.0", + "licenseId": "YPL-1.0", + "seeAlso": [ + "http://www.zimbra.com/license/yahoo_public_license_1.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./YPL-1.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/YPL-1.1.json", + "referenceNumber": "333", + "name": "Yahoo! Public License v1.1", + "licenseId": "YPL-1.1", + "seeAlso": [ + "http://www.zimbra.com/license/yahoo_public_license_1.1.html" + ], + "isOsiApproved": false + }, + { + "reference": "./Zed.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Zed.json", + "referenceNumber": "334", + "name": "Zed License", + "licenseId": "Zed", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Zed" + ], + "isOsiApproved": false + }, + { + "reference": "./Zend-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zend-2.0.json", + "referenceNumber": "335", + "name": "Zend License v2.0", + "licenseId": "Zend-2.0", + "seeAlso": [ + "https://web.archive.org/web/20130517195954/http://www.zend.com/license/2_00.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./Zimbra-1.3.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zimbra-1.3.json", + "referenceNumber": "336", + "name": "Zimbra Public License v1.3", + "licenseId": "Zimbra-1.3", + "isOsiApproved": false + }, + { + "reference": "./Zimbra-1.4.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/Zimbra-1.4.json", + "referenceNumber": "337", + "name": "Zimbra Public License v1.4", + "licenseId": "Zimbra-1.4", + "seeAlso": [ + "http://www.zimbra.com/legal/zimbra-public-license-1-4" + ], + "isOsiApproved": false + }, + { + "reference": "./zlib-acknowledgement.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/zlib-acknowledgement.json", + "referenceNumber": "338", + "name": "zlib/libpng License with Acknowledgement", + "licenseId": "zlib-acknowledgement", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement" + ], + "isOsiApproved": false + }, + { + "reference": "./Zlib.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/Zlib.json", + "referenceNumber": "339", + "name": "zlib License", + "licenseId": "Zlib", + "seeAlso": [ + "http://www.zlib.net/zlib_license.html", + "http://www.opensource.org/licenses/Zlib" + ], + "isOsiApproved": true + }, + { + "reference": "./ZPL-1.1.html", + "isDeprecatedLicenseId": false, + "detailsUrl": "http://spdx.org/licenses/ZPL-1.1.json", + "referenceNumber": "340", + "name": "Zope Public License 1.1", + "licenseId": "ZPL-1.1", + "seeAlso": [ + "http://old.zope.org/Resources/License/ZPL-1.1" + ], + "isOsiApproved": false + }, + { + "reference": "./ZPL-2.0.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ZPL-2.0.json", + "referenceNumber": "341", + "name": "Zope Public License 2.0", + "licenseId": "ZPL-2.0", + "seeAlso": [ + "http://old.zope.org/Resources/License/ZPL-2.0", + "http://opensource.org/licenses/ZPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./ZPL-2.1.html", + "isDeprecatedLicenseId": false, + "isFsfLibre": true, + "detailsUrl": "http://spdx.org/licenses/ZPL-2.1.json", + "referenceNumber": "342", + "name": "Zope Public License 2.1", + "licenseId": "ZPL-2.1", + "seeAlso": [ + "http://old.zope.org/Resources/ZPL/" + ], + "isOsiApproved": false + }, + { + "reference": "./AGPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/AGPL-3.0.json", + "referenceNumber": "343", + "name": "GNU Affero General Public License v3.0", + "licenseId": "AGPL-3.0", + "seeAlso": [ + "http://www.gnu.org/licenses/agpl.txt", + "http://www.opensource.org/licenses/AGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./eCos-2.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/eCos-2.0.json", + "referenceNumber": "344", + "name": "eCos license version 2.0", + "licenseId": "eCos-2.0", + "seeAlso": [ + "http://www.gnu.org/licenses/ecos-license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.1.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.1.json", + "referenceNumber": "345", + "name": "GNU Free Documentation License v1.1", + "licenseId": "GFDL-1.1", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.1.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.2.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.2.json", + "referenceNumber": "346", + "name": "GNU Free Documentation License v1.2", + "licenseId": "GFDL-1.2", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/fdl-1.2.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GFDL-1.3.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GFDL-1.3.json", + "referenceNumber": "347", + "name": "GNU Free Documentation License v1.3", + "licenseId": "GFDL-1.3", + "seeAlso": [ + "http://www.gnu.org/licenses/fdl-1.3.txt" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0+.json", + "referenceNumber": "348", + "name": "GNU General Public License v1.0 or later", + "licenseId": "GPL-1.0+", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-1.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-1.0.json", + "referenceNumber": "349", + "name": "GNU General Public License v1.0 only", + "licenseId": "GPL-1.0", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0+.json", + "referenceNumber": "350", + "name": "GNU General Public License v2.0 or later", + "licenseId": "GPL-2.0+", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "http://www.opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-2.0-with-autoconf-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-autoconf-exception.json", + "referenceNumber": "351", + "name": "GNU General Public License v2.0 w/Autoconf exception", + "licenseId": "GPL-2.0-with-autoconf-exception", + "seeAlso": [ + "http://ac-archive.sourceforge.net/doc/copyright.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-bison-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-bison-exception.json", + "referenceNumber": "352", + "name": "GNU General Public License v2.0 w/Bison exception", + "licenseId": "GPL-2.0-with-bison-exception", + "seeAlso": [ + "http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id\u003d193d7c7054ba7197b0789e14965b739162319b5e#n141" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-classpath-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-classpath-exception.json", + "referenceNumber": "353", + "name": "GNU General Public License v2.0 w/Classpath exception", + "licenseId": "GPL-2.0-with-classpath-exception", + "seeAlso": [ + "http://www.gnu.org/software/classpath/license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-font-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-font-exception.json", + "referenceNumber": "354", + "name": "GNU General Public License v2.0 w/Font exception", + "licenseId": "GPL-2.0-with-font-exception", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-faq.html#FontException" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0-with-GCC-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0-with-GCC-exception.json", + "referenceNumber": "355", + "name": "GNU General Public License v2.0 w/GCC Runtime Library exception", + "licenseId": "GPL-2.0-with-GCC-exception", + "seeAlso": [ + "https://gcc.gnu.org/git/?p\u003dgcc.git;a\u003dblob;f\u003dgcc/libgcc1.c;h\u003d762f5143fc6eed57b6797c82710f3538aa52b40b;hb\u003dcb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-2.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-2.0.json", + "referenceNumber": "356", + "name": "GNU General Public License v2.0 only", + "licenseId": "GPL-2.0", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "http://www.opensource.org/licenses/GPL-2.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0+.json", + "referenceNumber": "357", + "name": "GNU General Public License v3.0 or later", + "licenseId": "GPL-3.0+", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-3.0-standalone.html", + "http://www.opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0-with-autoconf-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-with-autoconf-exception.json", + "referenceNumber": "358", + "name": "GNU General Public License v3.0 w/Autoconf exception", + "licenseId": "GPL-3.0-with-autoconf-exception", + "seeAlso": [ + "http://www.gnu.org/licenses/autoconf-exception-3.0.html" + ], + "isOsiApproved": false + }, + { + "reference": "./GPL-3.0-with-GCC-exception.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0-with-GCC-exception.json", + "referenceNumber": "359", + "name": "GNU General Public License v3.0 w/GCC Runtime Library exception", + "licenseId": "GPL-3.0-with-GCC-exception", + "seeAlso": [ + "http://www.gnu.org/licenses/gcc-exception-3.1.html" + ], + "isOsiApproved": true + }, + { + "reference": "./GPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/GPL-3.0.json", + "referenceNumber": "360", + "name": "GNU General Public License v3.0 only", + "licenseId": "GPL-3.0", + "seeAlso": [ + "http://www.gnu.org/licenses/gpl-3.0-standalone.html", + "http://www.opensource.org/licenses/GPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0+.json", + "referenceNumber": "361", + "name": "GNU Library General Public License v2 or later", + "licenseId": "LGPL-2.0+", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.0.json", + "referenceNumber": "362", + "name": "GNU Library General Public License v2 only", + "licenseId": "LGPL-2.0", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1+.json", + "referenceNumber": "363", + "name": "GNU Library General Public License v2 or later", + "licenseId": "LGPL-2.1+", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "http://www.opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-2.1.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-2.1.json", + "referenceNumber": "364", + "name": "GNU Lesser General Public License v2.1 only", + "licenseId": "LGPL-2.1", + "seeAlso": [ + "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", + "http://www.opensource.org/licenses/LGPL-2.1" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0+.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0+.json", + "referenceNumber": "365", + "name": "GNU Lesser General Public License v3.0 or later", + "licenseId": "LGPL-3.0+", + "seeAlso": [ + "http://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "http://www.opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./LGPL-3.0.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/LGPL-3.0.json", + "referenceNumber": "366", + "name": "GNU Lesser General Public License v3.0 only", + "licenseId": "LGPL-3.0", + "seeAlso": [ + "http://www.gnu.org/licenses/lgpl-3.0-standalone.html", + "http://www.opensource.org/licenses/LGPL-3.0" + ], + "isOsiApproved": true + }, + { + "reference": "./Nunit.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/Nunit.json", + "referenceNumber": "367", + "name": "Nunit License", + "licenseId": "Nunit", + "seeAlso": [ + "https://fedoraproject.org/wiki/Licensing/Nunit" + ], + "isOsiApproved": false + }, + { + "reference": "./StandardML-NJ.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/StandardML-NJ.json", + "referenceNumber": "368", + "name": "Standard ML of New Jersey License", + "licenseId": "StandardML-NJ", + "seeAlso": [ + "http://www.smlnj.org//license.html" + ], + "isOsiApproved": false + }, + { + "reference": "./wxWindows.html", + "isDeprecatedLicenseId": true, + "isFsfLibre": false, + "detailsUrl": "http://spdx.org/licenses/wxWindows.json", + "referenceNumber": "369", + "name": "wxWindows Library License", + "licenseId": "wxWindows", + "seeAlso": [ + "http://www.opensource.org/licenses/WXwindows" + ], + "isOsiApproved": false + } + ], + "releaseDate": "28 December 2017" +} \ No newline at end of file diff --git a/lib/license_scout/dependency.rb b/lib/license_scout/dependency.rb index 5f29eed3..707cfea1 100644 --- a/lib/license_scout/dependency.rb +++ b/lib/license_scout/dependency.rb @@ -16,18 +16,90 @@ # module LicenseScout - Dependency = Struct.new(:name, :version, :license, :license_files, :dep_mgr_name) do + class Dependency + attr_reader :name + + attr_reader :version + + attr_reader :path + + attr_reader :type + + attr_reader :license + + def initialize(name, version, path, type) + @name = name + @version = version + @path = path + @type = type + + if path.nil? + @license = LicenseScout::License.new + elsif path =~ /^http/ || File.directory?(path) + @license = LicenseScout::License.new(path) + else + raise LicenseScout::Exceptions::MissingSourceDirectory.new("Could not find the source for '#{name}' in the following directories:\n\t * #{path}") + end + + fallbacks = LicenseScout::Config.fallbacks.send(type.to_sym).select { |f| f["name"] =~ uid_regexp } + fallbacks.each do |fallback| + license.add_license(fallback["license_id"], "license_scout fallback", fallback["license_file"], force: true) + end + end + + # @return [String] The UID for this dependency. Example: bundler (1.16.1) + def uid + "#{name} (#{version})" + end + + # @return [Regexp] The regular expression that can be used to identify this dependency + def uid_regexp + Regexp.new("#{Regexp.escape(name)}(\s+\\(#{Regexp.escape(version)}\\))?") + end + + def exceptions + @exceptions ||= LicenseScout::Config.exceptions.send(type.to_sym).select { |e| e["name"] =~ uid_regexp } + end + + # Capture a license that was specified in metadata + # + # @param license_id [String] The license as specified in the metadata file + # @param source [String] Where we found the license info + # @param contents_url [String] Where we can find the contents of the license + # + # @return [void] + def add_license(license_id, source, contents_url = nil) + LicenseScout::Log.debug("[#{type}] Adding #{license_id} license for #{name} from #{source}") + license.add_license(license_id, source, contents_url, {}) + end + + # Determine if this dependency has an exception. Will match an exception for both the name and the name+version + def has_exception? + exceptions.any? + end + + def exception_reason + if has_exception? + exceptions.first.dig("reason") + else + nil + end + end + + # Be able to sort dependencies by type, then name, then version + def <=>(other) + "#{type}#{name}#{version}" <=> "#{other.type}#{other.name}#{other.version}" + end + + # @return [Boolean] Whether or not this object is equal to another one. Used for Set uniqueness. def eql?(other) other.kind_of?(self.class) && other.hash == hash end - # hash code for when Dependency is used as a key in a Hash or member of a - # Set. The implementation is somewhat naive, but will work fine if you - # don't go too crazy mixing different types. + # @return [Integer] A hashcode that can be used to idenitfy this object. Used for Set uniqueness. def hash - [dep_mgr_name, name, version, license].hash + [type, name, version].hash end - end end diff --git a/lib/license_scout/dependency_manager.rb b/lib/license_scout/dependency_manager.rb index b055c1d9..d5f76f0b 100644 --- a/lib/license_scout/dependency_manager.rb +++ b/lib/license_scout/dependency_manager.rb @@ -15,20 +15,34 @@ # limitations under the License. # +require "license_scout/dependency_manager/base" + +require "license_scout/dependency_manager/berkshelf" require "license_scout/dependency_manager/bundler" -require "license_scout/dependency_manager/rebar" require "license_scout/dependency_manager/cpanm" -require "license_scout/dependency_manager/godep" require "license_scout/dependency_manager/dep" require "license_scout/dependency_manager/glide" -require "license_scout/dependency_manager/berkshelf" +require "license_scout/dependency_manager/godep" +require "license_scout/dependency_manager/habitat" +require "license_scout/dependency_manager/mix" +require "license_scout/dependency_manager/rebar" require "license_scout/dependency_manager/npm" -require "license_scout/dependency_manager/manual" module LicenseScout module DependencyManager def self.implementations - [Bundler, Rebar, Cpanm, Berkshelf, NPM, Godep, Dep, Glide, Manual] + [ + Berkshelf, + Bundler, + Cpanm, + Dep, + Glide, + Godep, + Habitat, + Mix, + Rebar, + Npm, + ] end end end diff --git a/lib/license_scout/dependency_manager/base.rb b/lib/license_scout/dependency_manager/base.rb index 71e68b35..4ee4986f 100644 --- a/lib/license_scout/dependency_manager/base.rb +++ b/lib/license_scout/dependency_manager/base.rb @@ -15,58 +15,90 @@ # limitations under the License. # +require "licensee" require "license_scout/dependency" -require "license_scout/license_file_analyzer" module LicenseScout + # The DependencyManager module (or more accurately, implementations of it) are responsible for recognizing + # when a dependency manager such as Bundler, Rebar, Berkshelf, etc is managing dependencies for source code + # in the given directory. module DependencyManager class Base - POSSIBLE_LICENSE_FILES = %w{ - LICENSE - LICENSE.txt - LICENSE.TXT - LICENSE.md - LICENSE.mkd - LICENSE.rdoc - License - License.text - License.txt - License.md - License.rdoc - Licence.rdoc - Licence.md - license - LICENCE - licence - license.md - licence.md - APACHE.LICENSE - MIT-LICENSE - MIT-LICENSE.txt - LICENSE.MIT - LICENSE-MIT - LICENSE-MIT.txt - LGPL-2.1 - COPYING.txt - COPYING - BSD_LICENSE - LICENSE.BSD - UNLICENSE - } + attr_reader :directory - attr_reader :project_dir - attr_reader :options + # @param directory [String] The fully-qualified path to the directory to be inspected + def initialize(directory) + @directory = directory + @deps = nil + end + + # The unique name of this Dependency Manager. In general, the name should follow the `_ is the value of DependencyManager#type + # * is the name of the dependency manager. + # + # @example Go's various package managers + # Name Reference + # -------- ----------------------------------------------- + # go_dep [`godep`](https://github.com/tools/godep) + # go_godep [`dep`](https://github.com/golang/dep) + # go_glide [`glide`](https://github.com/Masterminds/glide) + # + # @return [String] + def name + raise LicenseScout::Exceptions::Error.new("All DependencyManagers must have a `#name` method") + end + + # The "type" of dependencies this manager manages. This can be the language, tool, etc. + # + # @return [String] + def type + raise LicenseScout::Exceptions::Error.new("All DependencyManagers must have a `#type` method") + end + + # A human-readable description of the files/folders that indicate this dependency manager is in use. + # + # @return [String] + def signature + raise LicenseScout::Exceptions::Error.new("All DependencyManagers must have a `#signature` method") + end + + # Whether or not we were able to detect that this dependency manager is currently in use in our directory + # + # @return [Boolean] + def detected? + raise LicenseScout::Exceptions::Error.new("All DependencyManagers must have a `#detected?` method") + end - def initialize(project_dir, options) - @project_dir = project_dir - @options = options + # The command to run to install dependency if one or more is missing + # + # @return [String] + def install_command + raise LicenseScout::Exceptions::Error.new("All DependencyManagers must have a `#install_command` method") end - def create_dependency(dep_name, version, license, license_files, dep_mgr_name = name) - # add name of the dependency manager `name` to the dependency we are - # creating. - Dependency.new(dep_name, version, license, license_files, dep_mgr_name) + # Implementation's of this method in sub-classes are the methods that are responsible for all + # the heavy-lifting when it comes to determining the dependencies (and their licenses). + # They should return an array of `LicenseScout::Dependency`. + # + # @return [Array] + def dependencies + [] + end + + private + + # A helper that allows you to quickly create a new Dependency (with the type) + # + # @param name [String] The name of the dependency + # @param version [String] The version of the dependency + # @param path [String] The path to the dependency on the local system + # + # @return [LicenseScout::Dependency] + # @api private + def new_dependency(name, version, path) + LicenseScout::Log.debug("[#{type}] Found #{name} #{version}#{" #{path}" unless path.nil?}") + Dependency.new(name, version, path, type) end end end diff --git a/lib/license_scout/dependency_manager/berkshelf.rb b/lib/license_scout/dependency_manager/berkshelf.rb index 48994a0d..e4541fc9 100644 --- a/lib/license_scout/dependency_manager/berkshelf.rb +++ b/lib/license_scout/dependency_manager/berkshelf.rb @@ -25,14 +25,16 @@ def name "chef_berkshelf" end - def berkshelf_available? - begin - require "berkshelf" - rescue LoadError - return false - end + def type + "chef_cookbook" + end - true + def signature + "Berksfile and Berksfile.lock files" + end + + def install_command + "berks install" end def detected? @@ -40,14 +42,13 @@ def detected? end def dependencies - if !berkshelf_available? - raise LicenseScout::Exceptions::Error.new "Project at '#{project_dir}' is a Berkshelf project but berkshelf gem is not available in your bundle. Add berkshelf to your bundle in order to collect licenses for this project." + unless berkshelf_available? + raise LicenseScout::Exceptions::Error.new("Project at '#{directory}' is a Berkshelf project but berkshelf gem is not available in your bundle. Add berkshelf to your bundle in order to collect licenses for this project.") end - dependencies = [] - cookbook_dependencies = nil + cookbook_dependencies = [] - Dir.chdir(project_dir) do + Dir.chdir(directory) do berksfile = ::Berkshelf::Berksfile.from_file("./Berksfile") # Berkshelf should not give an error when there are cookbooks in the @@ -59,56 +60,30 @@ def dependencies cookbook_dependencies = berksfile.list end - cookbook_dependencies.each do |dep| - dependency_name = dep.name - dependency_version = dep.cached_cookbook.version - - dependency_license_files = auto_detect_license_files(dep.cached_cookbook.path.to_s) - - # Check license override and license_files override separately since - # only one might be set in the overrides. - dependency_license = options.overrides.license_for(name, dependency_name, dependency_version) || dep.cached_cookbook.license - - override_license_files = options.overrides.license_files_for(name, dependency_name, dependency_version) - cookbook_path = dep.cached_cookbook.path.to_s + cookbook_dependencies.map do |dep| + new_dependency(dep.name, dep.cached_cookbook.version, dep.cached_cookbook.path.to_s) + end.compact + end - if override_license_files.empty? - dependency_license_files = auto_detect_license_files(cookbook_path) - else - dependency_license_files = override_license_files.resolve_locations(cookbook_path) - end + private - dependencies << create_dependency( - dependency_name, - dependency_version, - dependency_license, - dependency_license_files - ) + def berkshelf_available? + begin + require "berkshelf" + rescue LoadError + return false end - dependencies + true end - private - def berksfile_path - File.join(project_dir, "Berksfile") + File.join(directory, "Berksfile") end def lockfile_path - File.join(project_dir, "Berksfile.lock") + File.join(directory, "Berksfile.lock") end - - def auto_detect_license_files(cookbook_path) - unless File.exist?(cookbook_path) - raise LicenseScout::Exceptions::InaccessibleDependency.new "Autodetected cookbook path '#{cookbook_path}' does not exist" - end - - Dir.glob("#{cookbook_path}/*").select do |f| - POSSIBLE_LICENSE_FILES.include?(File.basename(f)) - end - end - end end end diff --git a/lib/license_scout/dependency_manager/bundler.rb b/lib/license_scout/dependency_manager/bundler.rb index bcd36bff..846cebbb 100644 --- a/lib/license_scout/dependency_manager/bundler.rb +++ b/lib/license_scout/dependency_manager/bundler.rb @@ -16,8 +16,6 @@ # require "license_scout/dependency_manager/base" -require "license_scout/net_fetcher" -require "license_scout/exceptions" require "bundler" require "mixlib/shellout" @@ -32,6 +30,18 @@ def name "ruby_bundler" end + def type + "ruby" + end + + def signature + "Gemfile and Gemfile.lock files" + end + + def install_command + "bundle install" + end + def detected? # We check the existence of both Gemfile and Gemfile.lock. We need both # of them to be able to get a concrete set of dependencies which we can @@ -42,13 +52,40 @@ def detected? File.exist?(gemfile_path) && File.exist?(lockfile_path) end + def dependencies + dependency_data.map do |gem_data| + dep_name = gem_data["name"] + dep_version = gem_data["version"] + + dep_path = if dep_name == "bundler" + # Bundler is weird. It inserts itself as a dependency, but is a + # special case, so rubygems cannot correctly report the license. + # Additionally, rubygems reports the gem path as a path inside + # bundler's lib/ dir, so we have to munge it. + "https://github.com/bundler/bundler" + elsif dep_name == "json" + # json is different weird. When project is using the json that is prepackaged with + # Ruby, its included not as a full fledged gem but an *.rb file at: + # /opt/opscode/embedded/lib/ruby/2.2.0/json.rb + # Because of this its license is reported as nil and its license files can not be + # found. That is why we need to provide them manually here. + "https://github.com/flori/json" + else + gem_data["path"] + end + + new_dependency(dep_name, dep_version, dep_path) + end.compact + end + + private + def dependency_data bundler_script = File.join(File.dirname(__FILE__), "bundler/_bundler_script.rb") - Dir.chdir(project_dir) do + Dir.chdir(directory) do json_dep_data = with_clean_env do - ruby_bin_path = options.ruby_bin || "ruby" - s = Mixlib::ShellOut.new("#{ruby_bin_path} #{bundler_script}", environment: options.environment) + s = Mixlib::ShellOut.new("#{LicenseScout::Config.ruby_bin} #{bundler_script}", environment: LicenseScout::Config.environment) s.run_command s.error! s.stdout @@ -57,55 +94,6 @@ def dependency_data end end - def dependencies - dependencies = [] - dependency_data.each do |gem_data| - dependency_name = gem_data["name"] - dependency_version = gem_data["version"] - dependency_license = nil - dependency_license_files = [] - - if dependency_name == "bundler" - # Bundler is weird. It inserts itself as a dependency, but is a - # special case, so rubygems cannot correctly report the license. - # Additionally, rubygems reports the gem path as a path inside - # bundler's lib/ dir, so we have to munge it. - dependency_license = "MIT" - dependency_license_files = [File.join(File.dirname(__FILE__), "bundler/LICENSE.md")] - elsif dependency_name == "json" - # json is different weird. When project is using the json that is prepackaged with - # Ruby, its included not as a full fledged gem but an *.rb file at: - # /opt/opscode/embedded/lib/ruby/2.2.0/json.rb - # Because of this its license is reported as nil and its license files can not be - # found. That is why we need to provide them manually here. - dependency_license = "Ruby" - dependency_license_files = [File.join(File.dirname(__FILE__), "json/README.md")] - else - # Check license override and license_files override separately since - # only one might be set in the overrides. - dependency_license = options.overrides.license_for(name, dependency_name, dependency_version) || gem_data["license"] - - override_license_files = options.overrides.license_files_for(name, dependency_name, dependency_version) - if override_license_files.empty? - dependency_license_files = auto_detect_license_files(gem_data["path"]) - else - dependency_license_files = override_license_files.resolve_locations(gem_data["path"]) - end - end - - dependencies << create_dependency( - dependency_name, - dependency_version, - dependency_license, - dependency_license_files - ) - end - - dependencies - end - - private - # # Execute the given command, removing any Ruby-specific environment # variables. This is an "enhanced" version of +Bundler.with_clean_env+, @@ -142,22 +130,12 @@ def with_clean_env(&block) ENV.replace(original.to_hash) end - def auto_detect_license_files(gem_path) - unless File.exist?(gem_path) - raise LicenseScout::Exceptions::InaccessibleDependency.new "Autodetected gem path '#{gem_path}' does not exist" - end - - Dir.glob("#{gem_path}/*").select do |f| - POSSIBLE_LICENSE_FILES.include?(File.basename(f)) - end - end - def gemfile_path - File.join(project_dir, "Gemfile") + File.join(directory, "Gemfile") end def lockfile_path - File.join(project_dir, "Gemfile.lock") + File.join(directory, "Gemfile.lock") end end diff --git a/lib/license_scout/dependency_manager/bundler/LICENSE.md b/lib/license_scout/dependency_manager/bundler/LICENSE.md deleted file mode 100644 index e356f59f..00000000 --- a/lib/license_scout/dependency_manager/bundler/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -Portions copyright (c) 2010 Andre Arko -Portions copyright (c) 2009 Engine Yard - -MIT License - -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/lib/license_scout/dependency_manager/cpanm.rb b/lib/license_scout/dependency_manager/cpanm.rb index d3561f0a..77261cac 100644 --- a/lib/license_scout/dependency_manager/cpanm.rb +++ b/lib/license_scout/dependency_manager/cpanm.rb @@ -15,146 +15,96 @@ # limitations under the License. # +require "license_scout/dependency_manager/base" + require "ffi_yajl" require "psych" require "mixlib/shellout" -require "license_scout/dependency_manager/base" -require "license_scout/exceptions" -require "license_scout/dependency" - module LicenseScout module DependencyManager class Cpanm < Base - class CpanmDependency - - LICENSE_TYPE_MAP = { - "perl_5" => "Perl-5", - "perl" => "Perl-5", - "apache_2_0" => "Apache-2.0", - "artistic_2" => "Artistic-2.0", - "gpl_3" => "GPL-3.0", - }.freeze - - attr_reader :unpack_path - attr_reader :overrides - attr_reader :metadata - - def initialize(unpack_path, overrides) - @unpack_path = unpack_path - @overrides = overrides - end - - def to_dep - parse_metadata! + def name + "perl_cpanm" + end - Dependency.new( - name, - version.to_s, - license, - license_files, - "perl_cpanm" - ) - end + def type + "perl" + end - def parse_metadata! - # Packages can contain metadata files named META.yml, META.json, - # MYMETA.json, MYMETA.yml. META.* files are created by the authors of - # the plugins whereas MYMETA.* files are created by the build system - # after dynamic dependencies are resolved. For our purposes META.* - # files are enough. And for no good reason we prioritize json files - # over yml files. - @metadata ||= begin - json_path = File.join(unpack_path, "META.json") - yml_path = File.join(unpack_path, "META.yml") - - if File.exist?(json_path) - FFI_Yajl::Parser.parse(File.read(json_path)) - elsif File.exist?(yml_path) - Psych.safe_load(File.read(yml_path)) - else - raise LicenseScout::Exceptions::Error.new("Can not find a metadata file for the perl package at '#{unpack_path}'.") - end - end - end + def signature + File.exist?(meta_json_path) ? "META.json file" : "META.yml file" + end - def name - metadata["name"] - end + def install_command + "cpanm --installdeps ." + end - def version - metadata["version"] - end + # NOTE: it's possible that projects won't have a META.yml, but the two + # that we care about for Chef Server do have one. As of 2015, 84% of perl + # distribution packages have one: http://neilb.org/2015/10/18/spotters-guide.html + def detected? + File.exist?(meta_json_path) || File.exist?(meta_yml_path) + end - def license - @license ||= begin - override_license = overrides.license_for("perl_cpanm", name, version) + def dependencies + Dir.glob("#{cpanm_root}/latest-build/*").map do |dep_path| + next unless File.directory?(dep_path) - if override_license - override_license - elsif metadata && metadata.key?("license") - given_type = Array(metadata["license"]).reject { |l| l == "unknown" }.first + dep_data = manifest(dep_path) + metafile = dep_data["metafile"] + dep_name = dep_data["name"] + dep_version = dep_data["version"] - # Normalize the common perl license strings to the strings we commonly use - LICENSE_TYPE_MAP[given_type] || given_type - end - end - end + dependency = new_dependency(dep_name, dep_version, dep_path) - def license_files - @license_files ||= begin - override_license_files = overrides.license_files_for("perl_cpanm", name, version) + # CPANM projects contain license metadata - include it! + unless dep_data["license"].nil? + Array(dep_data["license"]).each do |license| + next if license == "unknown" - if override_license_files.empty? - find_license_files - else - override_license_files.resolve_locations(unpack_path) + dependency.add_license(license, metafile) end end - end - - def find_license_files - Dir["#{unpack_path}/*"].select do |f| - Cpanm::POSSIBLE_LICENSE_FILES.include?(File.basename(f)) - end - end + dependency + end.compact end - def name - "perl_cpanm" - end + private - def cpanm_root - # By default cpanm downloads all the dependencies into ~/.cpanm directory - File.expand_path("~/.cpanm") + def meta_yml_path + File.join(directory, "META.yml") end - def dependencies - @dependencies ||= begin - deps = [] - - Dir.glob("#{cpanm_root}/latest-build/*").each do |dep_path| - next unless File.directory?(dep_path) - - deps << CpanmDependency.new(dep_path, options.overrides).to_dep - end + def meta_json_path + File.join(directory, "META.json") + end - deps + # Packages can contain metadata files named META.yml, META.json, + # MYMETA.json, MYMETA.yml. META.* files are created by the authors of + # the plugins whereas MYMETA.* files are created by the build system + # after dynamic dependencies are resolved. For our purposes META.* + # files are enough. And for no good reason we prioritize json files + # over yml files. + def manifest(unpack_path) + json_path = File.join(unpack_path, "META.json") + yml_path = File.join(unpack_path, "META.yml") + + if File.exist?(json_path) + FFI_Yajl::Parser.parse(File.read(json_path)).merge({ "metafile" => "META.json" }) + elsif File.exist?(yml_path) + Psych.safe_load(File.read(yml_path)).merge({ "metafile" => "META.yml" }) + else + raise LicenseScout::Exceptions::Error.new("Can not find a metadata file for the perl package at '#{unpack_path}'.") end end - # NOTE: it's possible that projects won't have a META.yml, but the two - # that we care about for Chef Server do have one. As of 2015, 84% of perl - # distribution packages have one: http://neilb.org/2015/10/18/spotters-guide.html - def detected? - meta_yml_path = File.join(project_dir, "META.yml") - meta_json_path = File.join(project_dir, "META.json") - - File.exist?(meta_yml_path) || File.exist?(meta_json_path) + def cpanm_root + # By default cpanm downloads all the dependencies into ~/.cpanm directory + File.expand_path(LicenseScout::Config.cpanm_root) end - end end end diff --git a/lib/license_scout/dependency_manager/dep.rb b/lib/license_scout/dependency_manager/dep.rb index 5ee883c8..a9522678 100644 --- a/lib/license_scout/dependency_manager/dep.rb +++ b/lib/license_scout/dependency_manager/dep.rb @@ -26,48 +26,43 @@ module DependencyManager class Dep < Base def name - "go_dep" + "golang_dep" end - def detected? - File.exist?(root_dep_file) + def type + "golang" end - def dependencies - deps = File.open(root_dep_file) do |f| - TomlRB.parse(f) - end - return [] unless deps.has_key?("projects") - deps["projects"].map do |pkg_info| - pkg_import_name = pkg_info["name"] - pkg_file_name = pkg_import_name.tr("/", "_") - pkg_version = pkg_info["version"] || pkg_info["revision"] - license = options.overrides.license_for("go", pkg_import_name, pkg_version) + def signature + "Gopkg.lock file" + end + + def install_command + "dep ensure" + end - override_license_files = options.overrides.license_files_for("go", pkg_import_name, pkg_version) - if override_license_files.empty? - license_files = find_license_files_for_package_in_gopath_or_vendor_dir(pkg_import_name) - else - license_files = override_license_files.resolve_locations(gopath(pkg_import_name)) - end + def detected? + File.exist?(gopkg_lock_path) + end - if license.nil? && !license_files.empty? - license = scan_licenses(license_files) - end + def dependencies + Array(gopkg.dig("projects")).map do |pkg_info| + dep_name = pkg_info["name"] + dep_version = pkg_info["version"] || pkg_info["revision"] + dep_path = package_path(dep_name) - create_dependency(pkg_file_name, pkg_version, license, license_files) - end + new_dependency(dep_name, dep_version, dep_path) + end.compact end private - def scan_licenses(license_files) - found_license = LicenseScout::LicenseFileAnalyzer.find_by_text(IO.read(license_files.first)) - found_license && found_license.short_name + def gopkg + File.open(gopkg_lock_path) { |f| TomlRB.parse(f) } end - def root_dep_file - File.join(project_dir, "Gopkg.lock") + def gopkg_lock_path + File.join(directory, "Gopkg.lock") end def gopath(pkg) @@ -75,12 +70,11 @@ def gopath(pkg) end def vendor_dir(pkg = nil) - File.join(project_dir, "vendor/#{pkg}") + File.join(directory, "vendor/#{pkg}") end - def find_license_files_for_package_in_gopath_or_vendor_dir(pkg) - root_files = Dir["#{gopath(pkg)}/*"] + Dir["#{vendor_dir(pkg)}/*"] - root_files.select { |f| POSSIBLE_LICENSE_FILES.include?(File.basename(f)) } + def package_path(pkg) + (Dir[vendor_dir(pkg)] + Dir[gopath(pkg)]).first end end end diff --git a/lib/license_scout/dependency_manager/glide.rb b/lib/license_scout/dependency_manager/glide.rb index 97fa4b42..db552156 100644 --- a/lib/license_scout/dependency_manager/glide.rb +++ b/lib/license_scout/dependency_manager/glide.rb @@ -15,7 +15,7 @@ # limitations under the License. # -require "yaml" +require "psych" require "license_scout/dependency_manager/base" module LicenseScout @@ -23,57 +23,46 @@ module DependencyManager class Glide < Base def name - "go_glide" + "golang_glide" end - def detected? - File.exist?(glide_yaml) + def type + "golang" end - def dependencies - unless File.file?(glide_yaml_locked) - raise "Detected Go/Glide project that is missing its \"glide.lock\" "\ - "file in #{project_dir}" - end - - deps = YAML.load(File.read(glide_yaml_locked)) - deps["imports"].map { |i| add_glide_dep(i) } + def signature + "glide.lock file" end - private + def install_command + "glide install" + end - def add_glide_dep(import_field) - pkg_import_name = import_field["name"] - pkg_file_name = pkg_import_name.tr("/", "_") - pkg_version = import_field["version"] - license = options.overrides.license_for("go", pkg_import_name, pkg_version) + def detected? + File.exist?(glide_lock_path) + end - override_license_files = options.overrides.license_files_for("go", pkg_import_name, pkg_version) - if override_license_files.empty? - license_files = find_license_files_for_package_in_gopath(pkg_import_name) - else - license_files = override_license_files.resolve_locations(gopath(pkg_import_name)) - end + def dependencies + # We cannot use YAML.safe_load because Psych throws a fit about the + # updated field. We should circle back and see what we can do to fix that. + YAML.load(File.read(glide_lock_path))["imports"].map do |import| + dep_name = import["name"] + dep_version = import["version"] + dep_path = gopath(dep_name) - create_dependency(pkg_file_name, pkg_version, license, license_files) + new_dependency(dep_name, dep_version, dep_path) + end.compact end - def glide_yaml - File.join(project_dir, "glide.yaml") - end + private - def glide_yaml_locked - File.join(project_dir, "glide.lock") + def glide_lock_path + File.join(directory, "glide.lock") end def gopath(pkg) "#{ENV['GOPATH']}/src/#{pkg}" end - - def find_license_files_for_package_in_gopath(pkg) - root_files = Dir["#{gopath(pkg)}/*"] - root_files.select { |f| POSSIBLE_LICENSE_FILES.include?(File.basename(f)) } - end end end end diff --git a/lib/license_scout/dependency_manager/godep.rb b/lib/license_scout/dependency_manager/godep.rb index b718d442..e6def223 100644 --- a/lib/license_scout/dependency_manager/godep.rb +++ b/lib/license_scout/dependency_manager/godep.rb @@ -23,7 +23,19 @@ module DependencyManager class Godep < Base def name - "go_godep" + "golang_godep" + end + + def type + "golang" + end + + def signature + "Godeps/Godeps.json file" + end + + def install_command + "godep restore" end def detected? @@ -31,41 +43,30 @@ def detected? end def dependencies - godeps = File.open(root_godeps_file) do |f| - FFI_Yajl::Parser.parse(f) - end - godeps["Deps"].map do |pkg_info| - pkg_import_name = pkg_info["ImportPath"] - pkg_file_name = pkg_import_name.tr("/", "_") - pkg_version = pkg_info["Comment"] || pkg_info["Rev"] - license = options.overrides.license_for("go", pkg_import_name, pkg_version) + dep_name = pkg_info["ImportPath"] + dep_version = pkg_info["Comment"] || pkg_info["Rev"] + dep_path = gopath(dep_name) - override_license_files = options.overrides.license_files_for("go", pkg_import_name, pkg_version) - if override_license_files.empty? - license_files = find_license_files_for_package_in_gopath(pkg_import_name) - else - license_files = override_license_files.resolve_locations(gopath(pkg_import_name)) - end - - create_dependency(pkg_file_name, pkg_version, license, license_files) - end + new_dependency(dep_name, dep_version, dep_path) + end.compact end private + def godeps + File.open(root_godeps_file) do |f| + FFI_Yajl::Parser.parse(f) + end + end + def root_godeps_file - File.join(project_dir, "Godeps/Godeps.json") + File.join(directory, "Godeps/Godeps.json") end def gopath(pkg) "#{ENV['GOPATH']}/src/#{pkg}" end - - def find_license_files_for_package_in_gopath(pkg) - root_files = Dir["#{gopath(pkg)}/*"] - root_files.select { |f| POSSIBLE_LICENSE_FILES.include?(File.basename(f)) } - end end end end diff --git a/lib/license_scout/dependency_manager/habitat.rb b/lib/license_scout/dependency_manager/habitat.rb new file mode 100644 index 00000000..61bba2c2 --- /dev/null +++ b/lib/license_scout/dependency_manager/habitat.rb @@ -0,0 +1,126 @@ +# +# Copyright:: Copyright 2018, Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "license_scout/dependency_manager/base" + +require "open-uri" +require "mixlib/shellout" + +module LicenseScout + module DependencyManager + class Habitat < Base + + def name + "habitat" + end + + def type + "habitat" + end + + def signature + File.exist?(habitat_plan_sh_path) ? "habitat/plan.sh file" : "plan.sh file" + end + + def install_command + "" + end + + def detected? + File.exist?(plan_sh_path) || File.exist?(habitat_plan_sh_path) + end + + def dependencies + tdeps = Set.new(pkg_deps) + + pkg_deps.each do |pkg_dep| + pkg_info(pkg_dep)["tdeps"].each { |dep| tdeps << to_ident(dep) } + end + + tdeps.sort.map do |tdep| + o, n, v, r = tdep.split("/") + dep_name = "#{o}/#{n}" + dep_version = "#{v}-#{r}" + + dependency = new_dependency(dep_name, dep_version, nil) + + license_from_manifest(pkg_info(tdep)["manifest"]).each do |spdx| + dependency.add_license(spdx, "https://bldr.habitat.sh/v1/depot/channels/#{o}/stable/pkgs/#{n}/#{v}/#{r}") + end + + dependency + end.compact + end + + private + + def license_from_manifest(manifest_content) + /^*\s+__License__:\s+(.+)$/.match(manifest_content)[1].strip.split("\s") + end + + def pkg_deps + @pkg_deps ||= begin + plan_path = File.exist?(plan_sh_path) ? plan_sh_path : habitat_plan_sh_path + + c = Mixlib::ShellOut.new("bash -ec 'export PLAN_CONTEXT=\"#{File.dirname(plan_path)}\"; source #{plan_path}; echo ${pkg_deps[*]}'", LicenseScout::Config.environment) + c.run_command + c.error! + pkg_deps = c.stdout.split("\s") + + # Fetch the fully-qualified pkg_ident for each pkg + pkg_deps.map { |dep| to_ident(pkg_info(dep)["ident"]) } + end + end + + def to_ident(ident_hash) + "#{ident_hash["origin"]}/#{ident_hash["name"]}/#{ident_hash["version"]}/#{ident_hash["release"]}" + end + + def pkg_info(pkg_ident) + $habitat_pkg_info ||= {} + $habitat_pkg_info[pkg_ident] ||= begin + pkg_origin, pkg_name, pkg_version, pkg_release = pkg_ident.split("/") + + base_api_uri = "https://bldr.habitat.sh/v1/depot/channels/#{pkg_origin}/stable/pkgs/#{pkg_name}" + if pkg_version.nil? && pkg_release.nil? + base_api_uri += "/latest" + elsif pkg_release.nil? + base_api_uri += "/#{pkg_version}/latest" + else + base_api_uri += "/#{pkg_version}/#{pkg_release}" + end + + LicenseScout::Log.debug("[habitat] Fetching pkg_info from #{base_api_uri}") + FFI_Yajl::Parser.parse(open(base_api_uri).read) + rescue OpenURI::HTTPError + pkg_origin, pkg_name, = pkg_ident.split("/") + + LicenseScout::Log.warn("[habitat] Could not find pkg_info for #{pkg_ident} - trying for the latest version of #{pkg_origin}/#{pkg_name}") + FFI_Yajl::Parser.parse(open("https://bldr.habitat.sh/v1/depot/channels/#{pkg_origin}/stable/pkgs/#{pkg_name}/latest").read) + end + end + + def plan_sh_path + File.join(directory, "plan.sh") + end + + def habitat_plan_sh_path + File.join(directory, "habitat", "plan.sh") + end + end + end +end diff --git a/lib/license_scout/dependency_manager/json/README.md b/lib/license_scout/dependency_manager/json/README.md deleted file mode 100644 index f9cd95d5..00000000 --- a/lib/license_scout/dependency_manager/json/README.md +++ /dev/null @@ -1,392 +0,0 @@ -# JSON implementation for Ruby ![Travis Widget] -[Travis Widget]: http://travis-ci.org/flori/json.svg?branch=master - -## Description - -This is a implementation of the JSON specification according to RFC 7159 -http://www.ietf.org/rfc/rfc7159.txt . Starting from version 1.0.0 on there -will be two variants available: - -* A pure ruby variant, that relies on the iconv and the stringscan - extensions, which are both part of the ruby standard library. -* The quite a bit faster native extension variant, which is in parts - implemented in C or Java and comes with its own unicode conversion - functions and a parser generated by the ragel state machine compiler - http://www.complang.org/ragel/ . - -Both variants of the JSON generator generate UTF-8 character sequences by -default. If an :ascii\_only option with a true value is given, they escape all -non-ASCII and control characters with \uXXXX escape sequences, and support -UTF-16 surrogate pairs in order to be able to generate the whole range of -unicode code points. - -All strings, that are to be encoded as JSON strings, should be UTF-8 byte -sequences on the Ruby side. To encode raw binary strings, that aren't UTF-8 -encoded, please use the to\_json\_raw\_object method of String (which produces -an object, that contains a byte array) and decode the result on the receiving -endpoint. - -## Installation - -It's recommended to use the extension variant of JSON, because it's faster than -the pure ruby variant. If you cannot build it on your system, you can settle -for the latter. - -Just type into the command line as root: - -``` -# rake install -``` - -The above command will build the extensions and install them on your system. - -``` -# rake install_pure -``` - -or - -``` -# ruby install.rb -``` - -will just install the pure ruby implementation of JSON. - -If you use Rubygems you can type - -``` -# gem install json -``` - -instead, to install the newest JSON version. - -There is also a pure ruby json only variant of the gem, that can be installed -with: - -``` -# gem install json_pure -``` - -## Compiling the extensions yourself - -If you want to create the `parser.c` file from its `parser.rl` file or draw nice -graphviz images of the state machines, you need ragel from: -http://www.complang.org/ragel/ - -## Usage - -To use JSON you can - -```ruby -require 'json' -``` - -to load the installed variant (either the extension `'json'` or the pure -variant `'json_pure'`). If you have installed the extension variant, you can -pick either the extension variant or the pure variant by typing - -```ruby -require 'json/ext' -``` - -or - -```ruby -require 'json/pure' -``` - -Now you can parse a JSON document into a ruby data structure by calling - -```ruby -JSON.parse(document) -``` - -If you want to generate a JSON document from a ruby data structure call -```ruby -JSON.generate(data) -``` - -You can also use the `pretty_generate` method (which formats the output more -verbosely and nicely) or `fast_generate` (which doesn't do any of the security -checks generate performs, e. g. nesting deepness checks). - -There are also the JSON and JSON[] methods which use parse on a String or -generate a JSON document from an array or hash: - -```ruby -document = JSON 'test' => 23 # => "{\"test\":23}" -document = JSON['test' => 23] # => "{\"test\":23}" -``` - -and - -```ruby -data = JSON '{"test":23}' # => {"test"=>23} -data = JSON['{"test":23}'] # => {"test"=>23} -``` - -You can choose to load a set of common additions to ruby core's objects if -you - -```ruby -require 'json/add/core' -``` - -After requiring this you can, e. g., serialise/deserialise Ruby ranges: - -```ruby -JSON JSON(1..10) # => 1..10 -``` - -To find out how to add JSON support to other or your own classes, read the -section "More Examples" below. - -To get the best compatibility to rails' JSON implementation, you can - -```ruby -require 'json/add/rails' -``` - -Both of the additions attempt to require `'json'` (like above) first, if it has -not been required yet. - -## More Examples - -To create a JSON document from a ruby data structure, you can call -`JSON.generate` like that: - -```ruby -json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10] -# => "[1,2,{\"a\":3.141},false,true,null,\"4..10\"]" -``` - -To get back a ruby data structure from a JSON document, you have to call -JSON.parse on it: - -```ruby -JSON.parse json -# => [1, 2, {"a"=>3.141}, false, true, nil, "4..10"] -``` - -Note, that the range from the original data structure is a simple -string now. The reason for this is, that JSON doesn't support ranges -or arbitrary classes. In this case the json library falls back to call -`Object#to_json`, which is the same as `#to_s.to_json`. - -It's possible to add JSON support serialization to arbitrary classes by -simply implementing a more specialized version of the `#to_json method`, that -should return a JSON object (a hash converted to JSON with `#to_json`) like -this (don't forget the `*a` for all the arguments): - -```ruby - class Range - def to_json(*a) - { - 'json_class' => self.class.name, # = 'Range' - 'data' => [ first, last, exclude_end? ] - }.to_json(*a) - end - end -``` - -The hash key `json_class` is the class, that will be asked to deserialise the -JSON representation later. In this case it's `Range`, but any namespace of -the form `A::B` or `::A::B` will do. All other keys are arbitrary and can be -used to store the necessary data to configure the object to be deserialised. - -If a the key `json_class` is found in a JSON object, the JSON parser checks -if the given class responds to the `json_create` class method. If so, it is -called with the JSON object converted to a Ruby hash. So a range can -be deserialised by implementing `Range.json_create` like this: - -```ruby - class Range - def self.json_create(o) - new(*o['data']) - end - end -``` - -Now it possible to serialise/deserialise ranges as well: - -```ruby - json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10] - # => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]" - JSON.parse json - # => [1, 2, {"a"=>3.141}, false, true, nil, 4..10] -``` - -`JSON.generate` always creates the shortest possible string representation of a -ruby data structure in one line. This is good for data storage or network -protocols, but not so good for humans to read. Fortunately there's also -`JSON.pretty_generate` (or `JSON.pretty_generate`) that creates a more readable -output: - -```ruby - puts JSON.pretty_generate([1, 2, {"a"=>3.141}, false, true, nil, 4..10]) - [ - 1, - 2, - { - "a": 3.141 - }, - false, - true, - null, - { - "json_class": "Range", - "data": [ - 4, - 10, - false - ] - } - ] -``` - -There are also the methods `Kernel#j` for generate, and `Kernel#jj` for -`pretty_generate` output to the console, that work analogous to Core Ruby's `p` and -the `pp` library's `pp` methods. - -The script `tools/server.rb` contains a small example if you want to test, how -receiving a JSON object from a webrick server in your browser with the -javasript prototype library http://www.prototypejs.org works. - -## Speed Comparisons - -I have created some benchmark results (see the benchmarks/data-p4-3Ghz -subdir of the package) for the JSON-parser to estimate the speed up in the C -extension: - -``` - Comparing times (call_time_mean): - 1 ParserBenchmarkExt#parser 900 repeats: - 553.922304770 ( real) -> 21.500x - 0.001805307 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 224.513358139 ( real) -> 8.714x - 0.004454078 - 3 ParserBenchmarkPure#parser 1000 repeats: - 26.755020642 ( real) -> 1.038x - 0.037376163 - 4 ParserBenchmarkRails#parser 1000 repeats: - 25.763381731 ( real) -> 1.000x - 0.038814780 - calls/sec ( time) -> speed covers - secs/call -``` - -In the table above 1 is `JSON::Ext::Parser`, 2 is `YAML.load` with YAML -compatbile JSON document, 3 is is `JSON::Pure::Parser`, and 4 is -`ActiveSupport::JSON.decode`. The ActiveSupport JSON-decoder converts the -input first to YAML and then uses the YAML-parser, the conversion seems to -slow it down so much that it is only as fast as the `JSON::Pure::Parser`! - -If you look at the benchmark data you can see that this is mostly caused by -the frequent high outliers - the median of the Rails-parser runs is still -overall smaller than the median of the `JSON::Pure::Parser` runs: - -``` - Comparing times (call_time_median): - 1 ParserBenchmarkExt#parser 900 repeats: - 800.592479481 ( real) -> 26.936x - 0.001249075 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 271.002390644 ( real) -> 9.118x - 0.003690004 - 3 ParserBenchmarkRails#parser 1000 repeats: - 30.227910865 ( real) -> 1.017x - 0.033082008 - 4 ParserBenchmarkPure#parser 1000 repeats: - 29.722384421 ( real) -> 1.000x - 0.033644676 - calls/sec ( time) -> speed covers - secs/call -``` - -I have benchmarked the `JSON-Generator` as well. This generated a few more -values, because there are different modes that also influence the achieved -speed: - -``` - Comparing times (call_time_mean): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 547.354332608 ( real) -> 15.090x - 0.001826970 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 443.968212317 ( real) -> 12.240x - 0.002252414 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 375.104545883 ( real) -> 10.341x - 0.002665923 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 49.978706968 ( real) -> 1.378x - 0.020008521 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 38.531868759 ( real) -> 1.062x - 0.025952543 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 36.927649925 ( real) -> 1.018x 7 (>=3859) - 0.027079979 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 36.272134441 ( real) -> 1.000x 6 (>=3859) - 0.027569373 - calls/sec ( time) -> speed covers - secs/call -``` - -In the table above 1-3 are `JSON::Ext::Generator` methods. 4, 6, and 7 are -`JSON::Pure::Generator` methods and 5 is the Rails JSON generator. It is now a -bit faster than the `generator_safe` and `generator_pretty` methods of the pure -variant but slower than the others. - -To achieve the fastest JSON document output, you can use the `fast_generate` -method. Beware, that this will disable the checking for circular Ruby data -structures, which may cause JSON to go into an infinite loop. - -Here are the median comparisons for completeness' sake: - -``` - Comparing times (call_time_median): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 708.258020939 ( real) -> 16.547x - 0.001411915 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 569.105020353 ( real) -> 13.296x - 0.001757145 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 482.825371244 ( real) -> 11.280x - 0.002071142 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 62.717626652 ( real) -> 1.465x - 0.015944481 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 43.965681162 ( real) -> 1.027x - 0.022745013 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 43.929073409 ( real) -> 1.026x 7 (>=3859) - 0.022763968 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 42.802514491 ( real) -> 1.000x 6 (>=3859) - 0.023363113 - calls/sec ( time) -> speed covers - secs/call -``` - -## Author - -Florian Frank - -## License - -Ruby License, see https://www.ruby-lang.org/en/about/license.txt. - -## Download - -The latest version of this library can be downloaded at - -* https://rubygems.org/gems/json - -Online Documentation should be located at - -* http://json.rubyforge.org diff --git a/lib/license_scout/dependency_manager/manual.rb b/lib/license_scout/dependency_manager/manual.rb deleted file mode 100644 index 81c97646..00000000 --- a/lib/license_scout/dependency_manager/manual.rb +++ /dev/null @@ -1,67 +0,0 @@ -# -# Copyright:: Copyright 2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "license_scout/dependency_manager/base" -require "license_scout/dependency" -require "license_scout/overrides" - -module LicenseScout - module DependencyManager - class Manual < Base - def name - "manual" - end - - def detected? - !options.manual_licenses.nil? - end - - def dependencies - validate_input! - - options.manual_licenses.map do |d| - create_dependency( - d[:name], - d[:version], - d[:license], - resolve_license_file_locations(d[:license_files]), - d[:dependency_manager] - ) - end - end - - def resolve_license_file_locations(license_files) - LicenseScout::Overrides::OverrideLicenseSet.new(license_files) - .resolve_locations(project_dir) - end - - def validate_input! - if !options.manual_licenses.is_a?(Array) - raise LicenseScout::Exceptions::InvalidManualDependency.new("Invalid manual dependency is specified. :manual_licenses should be an Array in options.") - end - - options.manual_licenses.each do |l| - l.keys.each do |k| - if ![:name, :version, :license, :license_files, :dependency_manager].include?(k) - raise LicenseScout::Exceptions::InvalidManualDependency.new("Invalid manual dependency is specified. Key '#{k}' is not supported.") - end - end - end - end - end - end -end diff --git a/lib/license_scout/dependency_manager/mix.rb b/lib/license_scout/dependency_manager/mix.rb new file mode 100644 index 00000000..0a7310ee --- /dev/null +++ b/lib/license_scout/dependency_manager/mix.rb @@ -0,0 +1,102 @@ +# +# Copyright:: Copyright 2016, Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "license_scout/dependency_manager/base" +require "license_scout/exceptions" + +require "mixlib/shellout" +require "ffi_yajl" + +module LicenseScout + module DependencyManager + class Mix < Base + + attr_reader :packaged_dependencies + + def initialize(directory) + super(directory) + + @packaged_dependencies = {} + end + + def name + "elixir_mix" + end + + def type + "elixir" + end + + def signature + "mix.lock file" + end + + def install_command + "mix deps.get" + end + + def detected? + File.exist?(mix_lock_path) + end + + def dependencies + parse_packaged_dependencies + + # Some dependencies are obtained via 'pkg' identifier of rebar. These + # dependencies include their version in the rebar.lock file. Here we + # parse the rebar.lock and remember all the versions we find. + packaged_dependencies.map do |dep_name, dep_version| + dep_path = Dir.glob(File.join(directory, "**", "deps", dep_name)).first + + dependency = new_dependency(dep_name, dep_version, dep_path) + + hex_info(dep_name)["meta"]["licenses"].each do |license| + dependency.add_license(license, "https://hex.pm/api/packages/#{dep_name}") + end + + dependency + end.compact + end + + private + + def parse_packaged_dependencies + mix_lock_to_json_path = File.expand_path("../../../bin/mix_lock_json", File.dirname(__FILE__)) + s = Mixlib::ShellOut.new("#{LicenseScout::Config.escript_bin} #{mix_lock_to_json_path} #{mix_lock_path}", environment: LicenseScout::Config.environment) + s.run_command + s.error! + + mix_lock_content = FFI_Yajl::Parser.parse(s.stdout) + + mix_lock_content.each do |dep| + name = dep.keys.first + version = dep.values.first + + @packaged_dependencies[name] = version + end + end + + def mix_lock_path + File.join(directory, "mix.lock") + end + + def hex_info(package_name) + FFI_Yajl::Parser.parse(open("https://hex.pm/api/packages/#{package_name}").read) + end + end + end +end diff --git a/lib/license_scout/dependency_manager/npm.rb b/lib/license_scout/dependency_manager/npm.rb index c7b01e7f..160d02b5 100644 --- a/lib/license_scout/dependency_manager/npm.rb +++ b/lib/license_scout/dependency_manager/npm.rb @@ -21,10 +21,22 @@ module LicenseScout module DependencyManager - class NPM < Base + class Npm < Base def name - "js_npm" + "nodejs_npm" + end + + def type + "nodejs" + end + + def signature + "node_modules directory" + end + + def install_command + "npm install" end def detected? @@ -32,33 +44,26 @@ def detected? end def dependencies - packages = all_package_json_files.inject(Set.new) do |package_set, package_json_file| + all_package_json_files.inject(Set.new) do |uniq_deps, package_json_file| pkg_info = File.open(package_json_file) do |f| FFI_Yajl::Parser.parse(f) end - pkg_name = pkg_info["name"] - pkg_version = pkg_info["version"] - package_path = File.dirname(package_json_file) + dep_name = pkg_info["name"] + dep_version = pkg_info["version"] + dep_path = File.dirname(package_json_file) - license = options.overrides.license_for(name, pkg_name, pkg_version) || - normalize_license_data(pkg_info["license"] || pkg_info["licence"] || pkg_info["licenses"]) + dependency = new_dependency(dep_name, dep_version, dep_path) - override_license_files = options.overrides.license_files_for(name, pkg_name, pkg_version) - if override_license_files.empty? - license_files = find_license_files_in(package_path) - else - license_files = override_license_files.resolve_locations(package_path) + case pkg_info["license"] + when String + dependency.add_license(pkg_info["license"], "package.json") + when Hash + dependency.add_license(pkg_info["license"]["type"], "package.json", pkg_info["license"]["url"]) end - package_set << create_dependency( - pkg_name, - pkg_version, - license, - license_files - ) - end - packages.to_a + uniq_deps << dependency + end.to_a end private @@ -79,7 +84,7 @@ def dependencies # package metadata is removed). def all_package_json_files all_files = [] - package_dirs = [project_dir] + package_dirs = [directory] loop do break if package_dirs.empty? @@ -98,69 +103,9 @@ def all_package_json_files all_files end - def find_license_files_in(dir) - root_files = Dir["#{dir}/*"] - root_files.select { |f| POSSIBLE_LICENSE_FILES.include?(File.basename(f)) } - end - - def normalize_license_data(license_metadata) - license_string = - case license_metadata - when nil - nil - when String - license_metadata - when Hash - license_metadata["type"] - when Array - if (map = license_metadata.first) && map.kind_of?(Hash) && (type = map["type"]) - type - else - nil - end - end - select_best_license(license_string) - end - - # npm packages use SPDX "expressions" for their licenses; Thus far we've - # only seen a single license, optional multiple licenses like "(MIT OR Apache-2.0)" - # or mandatory multiple licenses like "(MIT AND CC-BY-3.0)" - # - # If there are multiple options, we want to pick just one to keep it simple. - def select_best_license(license_string) - return nil if license_string.nil? - options = license_string.tr("(", "").tr(")", "").split(" OR ") - options.inject do |selected_license, license| - if license_rank(selected_license) < license_rank(license) - selected_license - else - license - end - end - end - - # Rank licenses when selecting one of multiple options. Licenses are - # converted to integer scores, the lower the better. - # - # We prefer Apache-2.0 since it matches our own projects, then MIT, then - # BSDs. Everything else is considered equal. - def license_rank(license) - case license - when "Apache-2.0" - 0 - when "MIT" - 1 - when /bsd/i - 2 - else - 3 - end - end - def root_node_modules_path - File.join(project_dir, "node_modules") + File.join(directory, "node_modules") end - end end end diff --git a/lib/license_scout/dependency_manager/rebar.rb b/lib/license_scout/dependency_manager/rebar.rb index b7314a90..281e3997 100644 --- a/lib/license_scout/dependency_manager/rebar.rb +++ b/lib/license_scout/dependency_manager/rebar.rb @@ -16,9 +16,7 @@ # require "license_scout/dependency_manager/base" -require "license_scout/net_fetcher" require "license_scout/exceptions" -require "license_scout/license_file_analyzer" require "mixlib/shellout" require "ffi_yajl" @@ -29,8 +27,8 @@ class Rebar < Base attr_reader :packaged_dependencies - def initialize(project_dir, options) - super(project_dir, options) + def initialize(directory) + super(directory) @packaged_dependencies = {} end @@ -39,19 +37,29 @@ def name "erlang_rebar" end + def type + "erlang" + end + + def signature + "rebar.config file" + end + + def install_command + "rebar get-deps" + end + def detected? File.exist?(rebar_config_path) end def dependencies - dependencies = [] - # Some dependencies are obtained via 'pkg' identifier of rebar. These # dependencies include their version in the rebar.lock file. Here we # parse the rebar.lock and remember all the versions we find. parse_packaged_dependencies - Dir.glob("#{project_deps_dir}/*").each do |dep_dir| + Dir.glob("#{project_deps_dir}/*").map do |dep_dir| next unless File.directory?(dep_dir) dep_name = File.basename(dep_dir) @@ -59,10 +67,10 @@ def dependencies # First check if this dependency is coming from the parent software. # If so we do not need to worry about its version or licenses because # it will be covered under the parent software's license. - next if File.directory?(File.join(project_dir, "apps", dep_name)) + next if File.directory?(File.join(directory, "apps", dep_name)) # Or skip if the dep name is the project name - next if File.exist?(File.join(project_dir, "_build/default/rel", dep_name)) + next if File.exist?(File.join(directory, "_build/default/rel", dep_name)) # While determining the dependency version we first check the cache we # built from rebar.lock for the dependencies that come via 'pkg' @@ -74,22 +82,8 @@ def dependencies git_rev_parse(dep_dir) end - override_license_files = options.overrides.license_files_for(name, dep_name, dep_version) - license_files = - if override_license_files.empty? - Dir.glob("#{dep_dir}/*").select { |f| POSSIBLE_LICENSE_FILES.include?(File.basename(f)) } - else - override_license_files.resolve_locations(dep_dir) - end - - license_name = options.overrides.license_for(name, dep_name, dep_version) || scan_licenses(license_files) - - dep = create_dependency(dep_name, dep_version, license_name, license_files) - - dependencies << dep - end - - dependencies + new_dependency(dep_name, dep_version, dep_dir) + end.compact end private @@ -99,12 +93,12 @@ def dependencies # determine the version of them via git, we try to parse the rebar.lock # file and remember their versions to use it later. def parse_packaged_dependencies - rebar_lock_path = File.join(project_dir, "rebar.lock") + rebar_lock_path = File.join(directory, "rebar.lock") return unless File.exist?(rebar_lock_path) rebar_lock_to_json_path = File.expand_path("../../../bin/rebar_lock_json", File.dirname(__FILE__)) - s = Mixlib::ShellOut.new("#{rebar_lock_to_json_path} #{rebar_lock_path}", environment: options.environment) + s = Mixlib::ShellOut.new("#{LicenseScout::Config.escript_bin} #{rebar_lock_to_json_path} #{rebar_lock_path}", environment: LicenseScout::Config.environment) s.run_command s.error! @@ -115,7 +109,7 @@ def parse_packaged_dependencies source_name = source_info["pkg_name"] source_version = source_info["pkg_version"] - packaged_dependencies[source_name] = source_version + @packaged_dependencies[source_name] = source_version end end rescue Mixlib::ShellOut::ShellCommandFailed @@ -139,24 +133,14 @@ def git_rev_parse(dependency_dir) def project_deps_dir # rebar dependencies can be found in one of these two directories. ["deps", "_build/default/lib"].each do |dir| - dep_dir = File.join(project_dir, dir) + dep_dir = File.join(directory, dir) return dep_dir if File.exist?(dep_dir) end end def rebar_config_path - File.join(project_dir, "rebar.config") + File.join(directory, "rebar.config") end - - def scan_licenses(license_files) - if license_files.empty? - nil - else - found_license = LicenseScout::LicenseFileAnalyzer.find_by_text(IO.read(license_files.first)) - found_license ? found_license.short_name : nil - end - end - end end end diff --git a/lib/license_scout/exceptions.rb b/lib/license_scout/exceptions.rb index 3eed5b0a..fa8f7ddf 100644 --- a/lib/license_scout/exceptions.rb +++ b/lib/license_scout/exceptions.rb @@ -18,48 +18,7 @@ module LicenseScout module Exceptions class Error < RuntimeError; end - - class ProjectDirectoryMissing < Error - def initialize(project_dir) - @project_dir = project_dir - end - - def to_s - "Could not locate or access the provided project directory '#{@project_dir}'." - end - end - - class UnsupportedProjectType < Error - def initialize(project_dir) - @project_dir = project_dir - end - - def to_s - "Could not find a supported dependency manager for the project in the provided directory '#{@project_dir}'." - end - end - - class InaccessibleDependency < Error; end - class InvalidOverride < Error; end - class InvalidOutputReport < Error; end - class InvalidManualDependency < Error; end - - class NetworkError < Error - - attr_reader :from_url - attr_reader :network_error - - def initialize(from_url, network_error) - @from_url = from_url - @network_error = network_error - end - - def to_s - [ - "Network error while fetching '#{from_url}'", - network_error.to_s, - ].join("\n") - end - end + class ConfigError < Error; end + class MissingSourceDirectory < Error; end end end diff --git a/lib/license_scout/license.rb b/lib/license_scout/license.rb new file mode 100644 index 00000000..21a4539b --- /dev/null +++ b/lib/license_scout/license.rb @@ -0,0 +1,126 @@ +# +# Copyright:: Copyright 2018, Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require "license_scout/spdx" + +module LicenseScout + class License + # A class that represents the components that make up a license. + class Record + attr_reader :id + attr_reader :parsed_expression + attr_reader :source + attr_reader :content + attr_reader :spdx_license_data + + def initialize(license_id = nil, source = nil, content = nil, options = {}) + @id = LicenseScout::SPDX.find(license_id, options[:force]) + @parsed_expression = LicenseScout::SPDX.parse(id) + @source = source + @content = content + end + + def to_h + { + id: id, + source: source, + content: content, + } + end + end + + attr_reader :project + attr_reader :records + + # @param path [String, nil] A path to give to Licensee to search for the license. Could be local path or GitHub URL. + def initialize(path = nil) + if path.nil? + @project = nil + @records = [] + else + @project = Licensee.project(path, detect_readme: true) + @records = [] + + project.licenses.each_index do |i| + record = Record.new( + project.licenses[i].spdx_id, + project.matched_files[i].filename, + project.matched_files[i].content + ) + + # Favor records that have identified a license + record.id.nil? ? @records.push(record) : @records.unshift(record) + end + end + end + + # Capture a license that was specified in metadata + # + # @param license_id [String] The license as specified in the metadata file + # @param source [String] Where we found the license info + # @param contents_url [String] Where we can find the contents of the license + # @param options [Hash] Options to control various behavior + # + # @return [void] + def add_license(license_id, source, contents_url, options) + content = license_content(license_id, contents_url) + @records.push(Record.new(license_id, source, content, options)) + end + + # @return [Boolean] Whether or not the license(s) are allowed + def is_allowed? + (records.map(&:parsed_expression).flatten.compact & LicenseScout::Config.allowed_licenses).any? + end + + # @return [Boolean] Whether or not the license(s) are flagged + def is_flagged? + (records.map(&:parsed_expression).flatten.compact & LicenseScout::Config.flagged_licenses).any? + end + + # @return [Boolean] Whether we were unable to determine a license + def undetermined? + (records.map(&:parsed_expression).flatten.compact).empty? + end + + private + + def license_content(license_id, contents_url) + if contents_url.nil? + nil + else + new_url = raw_github_url(contents_url) + + begin + LicenseScout::Log.debug("[license] Pulling license content for #{license_id} from #{new_url}") + open(new_url).read + rescue OpenURI::HTTPError + LicenseScout::Log.warn("[license] Unable to download license for #{license_id} from #{new_url}") + nil + end + end + end + + def raw_github_url(url) + case url + when /github.com\/(.+)\/blob\/(.+)/ + "https://raw.githubusercontent.com/#{$1}/#{$2}" + else + url + end + end + end +end diff --git a/lib/license_scout/license_file_analyzer/any_matcher.rb b/lib/license_scout/license_file_analyzer/any_matcher.rb deleted file mode 100644 index f508f8af..00000000 --- a/lib/license_scout/license_file_analyzer/any_matcher.rb +++ /dev/null @@ -1,37 +0,0 @@ -# Copied from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -module LicenseScout - module LicenseFileAnalyzer - class AnyMatcher - def initialize(*matchers) - @matchers = matchers - end - - def matches_text?(text) - @matchers.any? { |m| m.matches_text? text } - end - end - end -end diff --git a/lib/license_scout/license_file_analyzer/definitions.rb b/lib/license_scout/license_file_analyzer/definitions.rb deleted file mode 100644 index abe96dac..00000000 --- a/lib/license_scout/license_file_analyzer/definitions.rb +++ /dev/null @@ -1,219 +0,0 @@ -# Copied from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -require "license_scout/license_file_analyzer/matcher" -require "license_scout/license_file_analyzer/any_matcher" -require "license_scout/license_file_analyzer/header_matcher" -require "license_scout/license_file_analyzer/template" - -module LicenseScout - module LicenseFileAnalyzer - - class License - - attr_reader :matcher - attr_reader :short_name - - def initialize(short_name:, matcher: nil) - @short_name = short_name - @matcher = matcher || Matcher.from_template(Template.named(short_name)) - end - - def matches_text?(text) - matcher.matches_text?(text) - end - - end - - module Definitions - extend self - - def all - [ - apache2, - bsd, - gplv2, - gplv3, - isc, - lgpl, - mit, - mpl2, - bsd_3_clause, - python, - ruby, - bsd_2_clause, - erlang_public, - chef_mlsa, - ] - end - - private - - def apache2 - matcher = AnyMatcher.new( - Matcher.from_template(Template.named("Apache2")), - Matcher.from_template(Template.named("Apache2-short")) - ) - - License.new( - short_name: "Apache-2.0", - matcher: matcher - ) - end - - def bsd - License.new( - short_name: "BSD" - ) - end - - def gplv2 - License.new( - short_name: "GPL-2.0" - ) - end - - def gplv3 - License.new( - short_name: "GPL-3.0" - ) - end - - def isc - License.new( - short_name: "ISC" - ) - end - - def lgpl - License.new( - short_name: "LGPL-3.0" - ) - end - - def mit - url_regexp = %r{MIT Licen[sc]e.*http://(?:www\.)?opensource\.org/licenses/mit-license} - header_regexp = /The MIT Licen[sc]e/ - one_liner_regexp = /is released under the MIT licen[sc]e/ - - matcher = AnyMatcher.new( - Matcher.from_template(Template.named("MIT")), - Matcher.from_regex(url_regexp), - HeaderMatcher.new(Matcher.from_regex(header_regexp)), - Matcher.from_regex(one_liner_regexp) - ) - - License.new( - short_name: "MIT", - matcher: matcher - ) - end - - def mpl2 - header_regexp = /Mozilla Public Licen[sc]e, version 2.0/ - - matcher = AnyMatcher.new( - Matcher.from_template(Template.named("MPL2")), - HeaderMatcher.new(Matcher.from_regex(header_regexp)) - ) - - License.new( - short_name: "MPL-2.0", - matcher: matcher - ) - end - - def bsd_3_clause - substitution = [ - "Neither the name of nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.", - "The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.", - ] - - template = Template.named("BSD-3-Clause") - alternate_content = template.content.gsub(*substitution) - - alt_format_template = Template.named("BSD-3-Clause-alt-format") - alt_format_with_alt_content = alt_format_template.content.gsub(*substitution) - - matcher = AnyMatcher.new( - Matcher.from_template(template), - Matcher.from_text(alternate_content), - Matcher.from_template(alt_format_template), - Matcher.from_text(alt_format_with_alt_content) - ) - - License.new( - short_name: "BSD-3-Clause", - matcher: matcher - ) - end - - def python - License.new( - short_name: "Python-2.0" - ) - end - - def ruby - url = "http://www.ruby-lang.org/en/LICENSE.txt" - - matcher = AnyMatcher.new( - Matcher.from_template(Template.named("Ruby")), - Matcher.from_text(url) - ) - - License.new( - short_name: "Ruby", - matcher: matcher - ) - end - - def bsd_2_clause - matcher = AnyMatcher.new( - Matcher.from_template(Template.named("BSD-2-Clause")), - Matcher.from_template(Template.named("BSD-2-Clause-bullets")) - ) - - License.new( - short_name: "BSD-2-Clause", - matcher: matcher - ) - end - - def erlang_public - License.new( - short_name: "Erlang-Public", - matcher: Matcher.from_template(Template.named("EPLICENSE")) - ) - end - - def chef_mlsa - License.new( - short_name: "Chef-MLSA" - ) - end - - end - end -end diff --git a/lib/license_scout/license_file_analyzer/header_matcher.rb b/lib/license_scout/license_file_analyzer/header_matcher.rb deleted file mode 100644 index f108936d..00000000 --- a/lib/license_scout/license_file_analyzer/header_matcher.rb +++ /dev/null @@ -1,34 +0,0 @@ -# Copied from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -module LicenseScout - module LicenseFileAnalyzer - HeaderMatcher = Struct.new(:base_matcher) do - def matches_text?(text) - header = text.split("\n").first || "" - base_matcher.matches_text?(header) - end - end - end -end diff --git a/lib/license_scout/license_file_analyzer/matcher.rb b/lib/license_scout/license_file_analyzer/matcher.rb deleted file mode 100644 index d1a1299b..00000000 --- a/lib/license_scout/license_file_analyzer/matcher.rb +++ /dev/null @@ -1,46 +0,0 @@ -# Copied from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -module LicenseScout - module LicenseFileAnalyzer - Matcher = Struct.new(:regexp) do - def self.from_template(template) - from_text(template.content) - end - - def self.from_text(text) - from_regex(Text.compile_to_regex(text)) - end - - # an alias for Matcher.new, for uniformity of constructors - def self.from_regex(regexp) - new(regexp) - end - - def matches_text?(text) - !!(Text.normalize_punctuation(text) =~ regexp) - end - end - end -end diff --git a/lib/license_scout/license_file_analyzer/template.rb b/lib/license_scout/license_file_analyzer/template.rb deleted file mode 100644 index e688dc18..00000000 --- a/lib/license_scout/license_file_analyzer/template.rb +++ /dev/null @@ -1,45 +0,0 @@ -# Copied verbatim from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -require "pathname" - -require "license_scout/license_file_analyzer/text" - -module LicenseScout - module LicenseFileAnalyzer - class Template - TEMPLATE_PATH = Pathname.new(File.expand_path("../templates", __FILE__)) - - def self.named(name) - new TEMPLATE_PATH.join("#{name}.txt").read - end - - attr_reader :content - - def initialize(raw_content) - @content = Text.normalize_punctuation(raw_content) - end - end - end -end diff --git a/lib/license_scout/license_file_analyzer/templates/Apache2-short.txt b/lib/license_scout/license_file_analyzer/templates/Apache2-short.txt deleted file mode 100644 index 51fca54c..00000000 --- a/lib/license_scout/license_file_analyzer/templates/Apache2-short.txt +++ /dev/null @@ -1,11 +0,0 @@ -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/lib/license_scout/license_file_analyzer/templates/Apache2.txt b/lib/license_scout/license_file_analyzer/templates/Apache2.txt deleted file mode 100644 index 0e35d806..00000000 --- a/lib/license_scout/license_file_analyzer/templates/Apache2.txt +++ /dev/null @@ -1,170 +0,0 @@ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause-bullets.txt b/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause-bullets.txt deleted file mode 100644 index e41cb004..00000000 --- a/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause-bullets.txt +++ /dev/null @@ -1,18 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * 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. - -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 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. diff --git a/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause.txt b/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause.txt deleted file mode 100644 index f9922097..00000000 --- a/lib/license_scout/license_file_analyzer/templates/BSD-2-Clause.txt +++ /dev/null @@ -1,19 +0,0 @@ -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. - -THIS SOFTWARE IS PROVIDED BY THE "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 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. diff --git a/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause-alt-format.txt b/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause-alt-format.txt deleted file mode 100644 index 68cc5602..00000000 --- a/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause-alt-format.txt +++ /dev/null @@ -1,24 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 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. - - Neither the name of nor the - names of contributors may 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 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. diff --git a/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause.txt b/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause.txt deleted file mode 100644 index 59bfe129..00000000 --- a/lib/license_scout/license_file_analyzer/templates/BSD-3-Clause.txt +++ /dev/null @@ -1,21 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * 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. - * Neither the name of nor the - names of contributors may 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 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. diff --git a/lib/license_scout/license_file_analyzer/templates/BSD.txt b/lib/license_scout/license_file_analyzer/templates/BSD.txt deleted file mode 100644 index f9818edf..00000000 --- a/lib/license_scout/license_file_analyzer/templates/BSD.txt +++ /dev/null @@ -1,24 +0,0 @@ -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. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by . -4. Neither the name of nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY ''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 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. diff --git a/lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt b/lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt deleted file mode 100644 index f77f3b7a..00000000 --- a/lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt +++ /dev/null @@ -1,5 +0,0 @@ -Use of this Software is subject to the terms of the Chef Online Master -License and Services Agreement. You can find the latest copy of the -agreement here: - -https://www.chef.io/online-master-agreement diff --git a/lib/license_scout/license_file_analyzer/templates/EPLICENSE.txt b/lib/license_scout/license_file_analyzer/templates/EPLICENSE.txt deleted file mode 100644 index e906c74f..00000000 --- a/lib/license_scout/license_file_analyzer/templates/EPLICENSE.txt +++ /dev/null @@ -1,286 +0,0 @@ -ERLANG PUBLIC LICENSE -Version 1.1 - -1. Definitions. - -1.1. ``Contributor'' means each entity that creates or contributes to -the creation of Modifications. - -1.2. ``Contributor Version'' means the combination of the Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor. - -1.3. ``Covered Code'' means the Original Code or Modifications or the -combination of the Original Code and Modifications, in each case -including portions thereof. - -1.4. ``Electronic Distribution Mechanism'' means a mechanism generally -accepted in the software development community for the electronic -transfer of data. - -1.5. ``Executable'' means Covered Code in any form other than Source -Code. - -1.6. ``Initial Developer'' means the individual or entity identified -as the Initial Developer in the Source Code notice required by Exhibit -A. - -1.7. ``Larger Work'' means a work which combines Covered Code or -portions thereof with code not governed by the terms of this License. - -1.8. ``License'' means this document. - -1.9. ``Modifications'' means any addition to or deletion from the -substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a -Modification is: - -A. Any addition to or deletion from the contents of a file containing - Original Code or previous Modifications. - -B. Any new file that contains any part of the Original Code or - previous Modifications. - -1.10. ``Original Code'' means Source Code of computer software code -which is described in the Source Code notice required by Exhibit A as -Original Code, and which, at the time of its release under this -License is not already Covered Code governed by this License. - -1.11. ``Source Code'' means the preferred form of the Covered Code for -making modifications to it, including all modules it contains, plus -any associated interface definition files, scripts used to control -compilation and installation of an Executable, or a list of source -code differential comparisons against either the Original Code or -another well known, available Covered Code of the Contributor's -choice. The Source Code can be in a compressed or archival form, -provided the appropriate decompression or de-archiving software is -widely available for no charge. - -1.12. ``You'' means an individual or a legal entity exercising rights -under, and complying with all of the terms of, this License. For legal -entities,``You'' includes any entity which controls, is controlled by, -or is under common control with You. For purposes of this definition, -``control'' means (a) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (b) ownership of fifty percent (50%) or more of the -outstanding shares or beneficial ownership of such entity. - -2. Source Code License. - -2.1. The Initial Developer Grant. -The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: - -(a) to use, reproduce, modify, display, perform, sublicense and - distribute the Original Code (or portions thereof) with or without - Modifications, or as part of a Larger Work; and - -(b) under patents now or hereafter owned or controlled by Initial - Developer, to make, have made, use and sell (``Utilize'') the - Original Code (or portions thereof), but solely to the extent that - any such patent is reasonably necessary to enable You to Utilize - the Original Code (or portions thereof) and not to any greater - extent that may be necessary to Utilize further Modifications or - combinations. - -2.2. Contributor Grant. -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: - -(a) to use, reproduce, modify, display, perform, sublicense and - distribute the Modifications created by such Contributor (or - portions thereof) either on an unmodified basis, with other - Modifications, as Covered Code or as part of a Larger Work; and - -(b) under patents now or hereafter owned or controlled by Contributor, - to Utilize the Contributor Version (or portions thereof), but - solely to the extent that any such patent is reasonably necessary - to enable You to Utilize the Contributor Version (or portions - thereof), and not to any greater extent that may be necessary to - Utilize further Modifications or combinations. - -3. Distribution Obligations. - -3.1. Application of License. -The Modifications which You contribute are governed by the terms of -this License, including without limitation Section 2.2. The Source -Code version of Covered Code may be distributed only under the terms -of this License, and You must include a copy of this License with -every copy of the Source Code You distribute. You may not offer or -impose any terms on any Source Code version that alters or restricts -the applicable version of this License or the recipients' rights -hereunder. However, You may include an additional document offering -the additional rights described in Section 3.5. - -3.2. Availability of Source Code. -Any Modification which You contribute must be made available in Source -Code form under the terms of this License either on the same media as -an Executable version or via an accepted Electronic Distribution -Mechanism to anyone to whom you made an Executable version available; -and if made available via Electronic Distribution Mechanism, must -remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a -subsequent version of that particular Modification has been made -available to such recipients. You are responsible for ensuring that -the Source Code version remains available even if the Electronic -Distribution Mechanism is maintained by a third party. - -3.3. Description of Modifications. -You must cause all Covered Code to which you contribute to contain a -file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that -the Modification is derived, directly or indirectly, from Original -Code provided by the Initial Developer and including the name of the -Initial Developer in (a) the Source Code, and (b) in any notice in an -Executable version or related documentation in which You describe the -origin or ownership of the Covered Code. - -3.4. Intellectual Property Matters - -(a) Third Party Claims. - If You have knowledge that a party claims an intellectual property - right in particular functionality or code (or its utilization - under this License), you must include a text file with the source - code distribution titled ``LEGAL'' which describes the claim and - the party making the claim in sufficient detail that a recipient - will know whom to contact. If you obtain such knowledge after You - make Your Modification available as described in Section 3.2, You - shall promptly modify the LEGAL file in all copies You make - available thereafter and shall take other steps (such as notifying - appropriate mailing lists or newsgroups) reasonably calculated to - inform those who received the Covered Code that new knowledge has - been obtained. - -(b) Contributor APIs. - If Your Modification is an application programming interface and - You own or control patents which are reasonably necessary to - implement that API, you must also include this information in the - LEGAL file. - -3.5. Required Notices. -You must duplicate the notice in Exhibit A in each file of the Source -Code, and this License in any documentation for the Source Code, where -You describe recipients' rights relating to Covered Code. If You -created one or more Modification(s), You may add your name as a -Contributor to the notice described in Exhibit A. If it is not -possible to put such notice in a particular Source Code file due to -its structure, then you must include such notice in a location (such -as a relevant directory file) where a user would be likely to look for -such a notice. You may choose to offer, and to charge a fee for, -warranty, support, indemnity or liability obligations to one or more -recipients of Covered Code. However, You may do so only on Your own -behalf, and not on behalf of the Initial Developer or any -Contributor. You must make it absolutely clear than any such warranty, -support, indemnity or liability obligation is offered by You alone, -and You hereby agree to indemnify the Initial Developer and every -Contributor for any liability incurred by the Initial Developer or -such Contributor as a result of warranty, support, indemnity or -liability terms You offer. - -3.6. Distribution of Executable Versions. -You may distribute Covered Code in Executable form only if the -requirements of Section 3.1-3.5 have been met for that Covered Code, -and if You include a notice stating that the Source Code version of -the Covered Code is available under the terms of this License, -including a description of how and where You have fulfilled the -obligations of Section 3.2. The notice must be conspicuously included -in any notice in an Executable version, related documentation or -collateral in which You describe recipients' rights relating to the -Covered Code. You may distribute the Executable version of Covered -Code under a license of Your choice, which may contain terms different -from this License, provided that You are in compliance with the terms -of this License and that the license for the Executable version does -not attempt to limit or alter the recipient's rights in the Source -Code version from the rights set forth in this License. If You -distribute the Executable version under a different license You must -make it absolutely clear that any terms which differ from this License -are offered by You alone, not by the Initial Developer or any -Contributor. You hereby agree to indemnify the Initial Developer and -every Contributor for any liability incurred by the Initial Developer -or such Contributor as a result of any such terms You offer. - -3.7. Larger Works. -You may create a Larger Work by combining Covered Code with other code -not governed by the terms of this License and distribute the Larger -Work as a single product. In such a case, You must make sure the -requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Code due to statute -or regulation then You must: (a) comply with the terms of this License -to the maximum extent possible; and (b) describe the limitations and -the code they affect. Such description must be included in the LEGAL -file described in Section 3.4 and must be included with all -distributions of the Source Code. Except to the extent prohibited by -statute or regulation, such description must be sufficiently detailed -for a recipient of ordinary skill to be able to understand it. - -5. Application of this License. - -This License applies to code to which the Initial Developer has -attached the notice in Exhibit A, and to related Covered Code. - -6. CONNECTION TO MOZILLA PUBLIC LICENSE - -This Erlang License is a derivative work of the Mozilla Public -License, Version 1.0. It contains terms which differ from the Mozilla -Public License, Version 1.0. - -7. DISCLAIMER OF WARRANTY. - -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN ``AS IS'' BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, -WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF -DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR -NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF -THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE -IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER -CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR -CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART -OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER -EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. -This License and the rights granted hereunder will terminate -automatically if You fail to comply with terms herein and fail to cure -such breach within 30 days of becoming aware of the breach. All -sublicenses to the Covered Code which are properly granted shall -survive any termination of this License. Provisions which, by their -nature, must remain in effect beyond the termination of this License -shall survive. - -9. DISCLAIMER OF LIABILITY -Any utilization of Covered Code shall not cause the Initial Developer -or any Contributor to be liable for any damages (neither direct nor -indirect). - -10. MISCELLANEOUS -This License represents the complete agreement concerning the subject -matter hereof. If any provision is held to be unenforceable, such -provision shall be reformed only to the extent necessary to make it -enforceable. This License shall be construed by and in accordance with -the substantive laws of Sweden. Any dispute, controversy or claim -arising out of or relating to this License, or the breach, termination -or invalidity thereof, shall be subject to the exclusive jurisdiction -of Swedish courts, with the Stockholm City Court as the first -instance. - -EXHIBIT A. - -``The contents of this file are subject to the Erlang Public License, -Version 1.1, (the "License"); you may not use this file except in -compliance with the License. You should have received a copy of the -Erlang Public License along with this software. If not, it can be -retrieved via the world wide web at http://www.erlang.org/. - -Software distributed under the License is distributed on an "AS IS" -basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -the License for the specific language governing rights and limitations -under the License. - -The Initial Developer of the Original Code is Ericsson Utvecklings AB. -Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings -AB. All Rights Reserved.'' \ No newline at end of file diff --git a/lib/license_scout/license_file_analyzer/templates/GPL-2.0.txt b/lib/license_scout/license_file_analyzer/templates/GPL-2.0.txt deleted file mode 100644 index ecbc0593..00000000 --- a/lib/license_scout/license_file_analyzer/templates/GPL-2.0.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. \ No newline at end of file diff --git a/lib/license_scout/license_file_analyzer/templates/GPL-3.0.txt b/lib/license_scout/license_file_analyzer/templates/GPL-3.0.txt deleted file mode 100644 index 20d40b6b..00000000 --- a/lib/license_scout/license_file_analyzer/templates/GPL-3.0.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/license_scout/license_file_analyzer/templates/ISC.txt b/lib/license_scout/license_file_analyzer/templates/ISC.txt deleted file mode 100644 index e2f6a930..00000000 --- a/lib/license_scout/license_file_analyzer/templates/ISC.txt +++ /dev/null @@ -1,2 +0,0 @@ -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, -provided that the above copyright notice and this permission notice appear in all copies. diff --git a/lib/license_scout/license_file_analyzer/templates/LGPL-3.0.txt b/lib/license_scout/license_file_analyzer/templates/LGPL-3.0.txt deleted file mode 100644 index 02bbb60b..00000000 --- a/lib/license_scout/license_file_analyzer/templates/LGPL-3.0.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/lib/license_scout/license_file_analyzer/templates/MIT.txt b/lib/license_scout/license_file_analyzer/templates/MIT.txt deleted file mode 100644 index e234baad..00000000 --- a/lib/license_scout/license_file_analyzer/templates/MIT.txt +++ /dev/null @@ -1,9 +0,0 @@ -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. diff --git a/lib/license_scout/license_file_analyzer/templates/MPL2.txt b/lib/license_scout/license_file_analyzer/templates/MPL2.txt deleted file mode 100644 index 14e2f777..00000000 --- a/lib/license_scout/license_file_analyzer/templates/MPL2.txt +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/lib/license_scout/license_file_analyzer/templates/Python-2.0.txt b/lib/license_scout/license_file_analyzer/templates/Python-2.0.txt deleted file mode 100644 index 3700cee3..00000000 --- a/lib/license_scout/license_file_analyzer/templates/Python-2.0.txt +++ /dev/null @@ -1,47 +0,0 @@ -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained -in Python alone or in any derivative version prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. \ No newline at end of file diff --git a/lib/license_scout/license_file_analyzer/templates/Ruby.txt b/lib/license_scout/license_file_analyzer/templates/Ruby.txt deleted file mode 100644 index f6488ba2..00000000 --- a/lib/license_scout/license_file_analyzer/templates/Ruby.txt +++ /dev/null @@ -1,52 +0,0 @@ - 1. You may make and give away verbatim copies of the source form of the - software without restriction, provided that you duplicate all of the - original copyright notices and associated disclaimers. - - 2. You may modify your copy of the software in any way, provided that - you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise - make them Freely Available, such as by posting said - modifications to Usenet or an equivalent medium, or by allowing - the author to include your modifications in the software. - - b) use the modified software only within your corporation or - organization. - - c) give non-standard binaries non-standard names, with - instructions on where to get the original software distribution. - - d) make other distribution arrangements with the author. - - 3. You may distribute the software in object code or binary form, - provided that you do at least ONE of the following: - - a) distribute the binaries and library files of the software, - together with instructions (in the manual page or equivalent) - on where to get the original distribution. - - b) accompany the distribution with the machine-readable source of - the software. - - c) give non-standard binaries non-standard names, with - instructions on where to get the original software distribution. - - d) make other distribution arrangements with the author. - - 4. You may modify and include the part of the software into any other - software (possibly commercial). But some files in the distribution - are not written by the author, so that they are not under these terms. - - For the list of those files and their copying conditions, see the - file LEGAL. - - 5. The scripts and library files supplied as input to or produced as - output from the software do not automatically fall under the - copyright of the software, but belong to whomever generated them, - and may be sold commercially, and may be aggregated with this - software. - - 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. diff --git a/lib/license_scout/license_file_analyzer/text.rb b/lib/license_scout/license_file_analyzer/text.rb deleted file mode 100644 index 811cc2ba..00000000 --- a/lib/license_scout/license_file_analyzer/text.rb +++ /dev/null @@ -1,46 +0,0 @@ -# Copied from https://github.com/pivotal/LicenseFinder -# -# The MIT License -# -# Copyright (c) 2012 Pivotal Labs -# -# 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. - -module LicenseScout - module LicenseFileAnalyzer - module Text - SPACES = /[[:space:]]+/ - QUOTES = /['`"]{1,2}/ - PLACEHOLDERS = /<[^<>]+>/ - - def self.normalize_punctuation(text) - text.gsub(SPACES, " ") - .gsub(QUOTES, '"') - .strip - end - - def self.compile_to_regex(text) - text = normalize_punctuation(text) - regex_source = Regexp.escape(text) - regex_source = regex_source.gsub(PLACEHOLDERS, "(.*)") - Regexp.new(regex_source, Regexp::IGNORECASE) - end - end - end -end diff --git a/lib/license_scout/license_file_analyzer.rb b/lib/license_scout/log.rb similarity index 72% rename from lib/license_scout/license_file_analyzer.rb rename to lib/license_scout/log.rb index 0c01a5f2..df589057 100644 --- a/lib/license_scout/license_file_analyzer.rb +++ b/lib/license_scout/log.rb @@ -1,5 +1,5 @@ # -# Copyright:: Copyright 2016, Chef Software Inc. +# Copyright:: Copyright 2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,12 +15,10 @@ # limitations under the License. # -require "license_scout/license_file_analyzer/definitions" +require "mixlib/log" module LicenseScout - module LicenseFileAnalyzer - def self.find_by_text(text) - Definitions.all.detect { |l| l.matches_text? text } - end + class Log + extend Mixlib::Log end end diff --git a/lib/license_scout/net_fetcher.rb b/lib/license_scout/net_fetcher.rb deleted file mode 100644 index 2997586c..00000000 --- a/lib/license_scout/net_fetcher.rb +++ /dev/null @@ -1,105 +0,0 @@ -# -# Copyright:: Copyright 2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "open-uri" -require "tmpdir" -require "digest" -require "socket" # Defines `SocketError` - -require "license_scout/exceptions" - -module LicenseScout - class NetFetcher - - def self.remote?(uri_or_path) - !URI(uri_or_path).scheme.nil? - end - - def self.cache(uri) - fetcher = new(uri) - fetcher.fetch! - fetcher.cache_path - end - - attr_reader :from_url - - def initialize(from_url) - @from_url = from_url - end - - def fetch! - download_file! unless exists_in_cache? - end - - def cache_dir - File.join(Dir.tmpdir, "license_scout_cache") - end - - def cache_path - File.join(cache_dir, url_cache_key, File.basename(from_url)) - end - - private - - def exists_in_cache? - File.exist?(cache_path) - end - - def url_cache_key - d = Digest::SHA256.new - d.update(from_url) - d.hexdigest - end - - def save_to_cache(file) - cache_directory = File.dirname(cache_path) - FileUtils.mkdir_p(cache_directory) unless File.exist?(cache_directory) - - File.open(cache_path, "w+") do |output_file| - output_file.print(file.read) - end - end - - # This method is highly inspired from: - # https://github.com/chef/omnibus/blob/master/lib/omnibus/download_helpers.rb - def download_file! - retries = 3 - - begin - options = { - :read_timeout => 300, - } - - open(from_url, options) do |f| - save_to_cache(f) - end - rescue SocketError, - Errno::ECONNREFUSED, - Errno::ECONNRESET, - Errno::ENETUNREACH, - Timeout::Error, - OpenURI::HTTPError => e - if retries != 0 - retries -= 1 - retry - else - raise Exceptions::NetworkError.new(from_url, e) - end - end - end - end -end diff --git a/lib/license_scout/options.rb b/lib/license_scout/options.rb deleted file mode 100644 index 65d2b1a0..00000000 --- a/lib/license_scout/options.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Copyright:: Copyright 2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "license_scout/overrides" - -module LicenseScout - class Options - SUPPORTED_OPTIONS = [:overrides, :environment, :ruby_bin, :cpan_cache, :manual_licenses] - - SUPPORTED_OPTIONS.each do |o| - send(:attr_reader, o) - end - - def initialize(options = {}) - SUPPORTED_OPTIONS.each do |o| - data = options[o] || defaults[o] - instance_variable_set("@#{o}".to_sym, data) - end - end - - private - - def defaults - { - overrides: Overrides.new, - environment: {}, - ruby_bin: nil, - cpan_cache: Dir.tmpdir, - manual_licenses: nil, - } - end - end -end diff --git a/lib/license_scout/overrides.rb b/lib/license_scout/overrides.rb deleted file mode 100644 index d3881dab..00000000 --- a/lib/license_scout/overrides.rb +++ /dev/null @@ -1,997 +0,0 @@ -# -# Copyright:: Copyright 2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "license_scout/net_fetcher" - -require "pathname" - -module LicenseScout - class Overrides - - class OverrideLicenseSet - - attr_reader :license_locations - - def initialize(license_locations) - @license_locations = license_locations || [] - end - - def empty? - license_locations.empty? - end - - def resolve_locations(dependency_root_dir) - license_locations.map do |license_location| - if NetFetcher.remote?(license_location) - NetFetcher.cache(license_location) - else - normalize_and_verify_path(license_location, dependency_root_dir) - end - end - end - - def normalize_and_verify_path(license_location, dependency_root_dir) - full_path = File.expand_path(license_location, dependency_root_dir) - if File.exist?(full_path) - full_path - else - raise Exceptions::InvalidOverride, "Provided license file path '#{license_location}' can not be found under detected dependency path '#{dependency_root_dir}'." - end - end - - end - - attr_reader :override_rules - - def initialize(exclude_default: false, &rules) - @override_rules = {} - instance_eval(&rules) if block_given? - - default_overrides unless exclude_default - end - - def override_license(dependency_manager, dependency_name, &rule) - override_rules[dependency_manager] ||= {} - override_rules[dependency_manager][dependency_name] = rule - end - - def license_for(dependency_manager, dependency_name, dependency_version) - license_data = license_data_for(dependency_manager, dependency_name, dependency_version) - license_data && license_data[:license] - end - - def license_files_for(dependency_manager, dependency_name, dependency_version) - license_data = license_data_for(dependency_manager, dependency_name, dependency_version) - OverrideLicenseSet.new(license_data && license_data[:license_files]) - end - - def have_override_for?(dependency_manager, dependency_name, dependency_version) - override_rules.key?(dependency_manager) && override_rules[dependency_manager].key?(dependency_name) - end - - private - - def license_data_for(dependency_manager, dependency_name, dependency_version) - return nil unless have_override_for?(dependency_manager, dependency_name, dependency_version) - override_rules[dependency_manager][dependency_name].call(dependency_version) - end - - def canonical(shortname) - File.expand_path("../canonical_licenses/#{shortname}.txt", __FILE__) - end - - def default_overrides - # AWS Ruby SDK - aws_sdk_gems = %w{ - aws-partitions - aws-sdk - aws-sdk-acm - aws-sdk-alexaforbusiness - aws-sdk-apigateway - aws-sdk-applicationautoscaling - aws-sdk-applicationdiscoveryservice - aws-sdk-appstream - aws-sdk-appsync - aws-sdk-athena - aws-sdk-autoscaling - aws-sdk-batch - aws-sdk-budgets - aws-sdk-cloud9 - aws-sdk-clouddirectory - aws-sdk-cloudformation - aws-sdk-cloudfront - aws-sdk-cloudhsm - aws-sdk-cloudhsmv2 - aws-sdk-cloudsearch - aws-sdk-cloudsearchdomain - aws-sdk-cloudtrail - aws-sdk-cloudwatch - aws-sdk-cloudwatchevents - aws-sdk-cloudwatchlogs - aws-sdk-codebuild - aws-sdk-codecommit - aws-sdk-codedeploy - aws-sdk-codepipeline - aws-sdk-codestar - aws-sdk-cognitoidentity - aws-sdk-cognitoidentityprovider - aws-sdk-cognitosync - aws-sdk-comprehend - aws-sdk-configservice - aws-sdk-core - aws-sdk-costandusagereportservice - aws-sdk-costexplorer - aws-sdk-databasemigrationservice - aws-sdk-datapipeline - aws-sdk-dax - aws-sdk-devicefarm - aws-sdk-directconnect - aws-sdk-directoryservice - aws-sdk-dynamodb - aws-sdk-dynamodbstreams - aws-sdk-ec2 - aws-sdk-ecr - aws-sdk-ecs - aws-sdk-efs - aws-sdk-elasticache - aws-sdk-elasticbeanstalk - aws-sdk-elasticloadbalancing - aws-sdk-elasticloadbalancingv2 - aws-sdk-elasticsearchservice - aws-sdk-elastictranscoder - aws-sdk-emr - aws-sdk-firehose - aws-sdk-gamelift - aws-sdk-glacier - aws-sdk-glue - aws-sdk-greengrass - aws-sdk-guardduty - aws-sdk-health - aws-sdk-iam - aws-sdk-importexport - aws-sdk-inspector - aws-sdk-iot - aws-sdk-iotdataplane - aws-sdk-iotjobsdataplane - aws-sdk-kinesis - aws-sdk-kinesisanalytics - aws-sdk-kinesisvideo - aws-sdk-kinesisvideoarchivedmedia - aws-sdk-kinesisvideomedia - aws-sdk-kms - aws-sdk-lambda - aws-sdk-lambdapreview - aws-sdk-lex - aws-sdk-lexmodelbuildingservice - aws-sdk-lexruntimeservice - aws-sdk-lightsail - aws-sdk-machinelearning - aws-sdk-marketplacecommerceanalytics - aws-sdk-marketplaceentitlementservice - aws-sdk-marketplacemetering - aws-sdk-mediaconvert - aws-sdk-medialive - aws-sdk-mediapackage - aws-sdk-mediastore - aws-sdk-mediastoredata - aws-sdk-migrationhub - aws-sdk-mobile - aws-sdk-mq - aws-sdk-mturk - aws-sdk-opsworks - aws-sdk-opsworkscm - aws-sdk-organizations - aws-sdk-pinpoint - aws-sdk-polly - aws-sdk-pricing - aws-sdk-rds - aws-sdk-redshift - aws-sdk-rekognition - aws-sdk-resourcegroups - aws-sdk-resourcegroupstaggingapi - aws-sdk-resources - aws-sdk-route53 - aws-sdk-route53domains - aws-sdk-s3 - aws-sdk-sagemaker - aws-sdk-sagemakerruntime - aws-sdk-serverlessapplicationrepository - aws-sdk-servicecatalog - aws-sdk-servicediscovery - aws-sdk-ses - aws-sdk-sfn - aws-sdk-shield - aws-sdk-simpledb - aws-sdk-sms - aws-sdk-snowball - aws-sdk-sns - aws-sdk-sqs - aws-sdk-ssm - aws-sdk-states - aws-sdk-storagegateway - aws-sdk-support - aws-sdk-swf - aws-sdk-translate - aws-sdk-waf - aws-sdk-wafregional - aws-sdk-workdocs - aws-sdk-workspaces - aws-sdk-xray - aws-sigv2 - aws-sigv4 - }.map { |aws_gem| [ aws_gem, nil, ["https://raw.githubusercontent.com/aws/aws-sdk-ruby/master/LICENSE.txt"] ] } - - # Default overrides for ruby_bundler dependency manager. - other_gems = [ - ["debug_inspector", "MIT", ["README.md"]], - ["inifile", "MIT", ["README.md"]], - ["syslog-logger", "MIT", ["README.rdoc"]], - ["httpclient", "Ruby", ["README.md"]], - ["jsonschema", "MIT", ["README.rdoc"]], - ["little-plugger", "MIT", ["README.rdoc"]], - ["logging", "MIT", ["README.md"]], - ["coderay", nil, ["README_INDEX.rdoc"]], - ["multipart-post", "MIT", ["README.md"]], - ["erubis", "MIT", nil], - ["binding_of_caller", "MIT", nil], - ["method_source", "MIT", nil], - ["pry-remote", "MIT", nil], - ["pry-stack_explorer", "MIT", nil], - ["plist", "MIT", nil], - ["proxifier", "MIT", nil], - ["mixlib-shellout", "Apache-2.0", nil], - ["mixlib-log", "Apache-2.0", nil], - ["uuidtools", "Apache-2.0", nil], - ["cheffish", "Apache-2.0", nil], - ["chef-provisioning", "Apache-2.0", nil], - ["chef-provisioning-aws", "Apache-2.0", nil], - ["chef-rewind", "MIT", nil], - ["ubuntu_ami", "Apache-2.0", nil], - ["net-telnet", "Ruby", nil], - ["netrc", "MIT", nil], - ["oc-chef-pedant", "Apache-2.0", nil], - ["rake", "MIT", nil], - ["rspec", "MIT", nil], - ["yajl-ruby", "MIT", nil], - ["bunny", "MIT", nil], - ["em-http-request", "MIT", nil], - ["sequel", "MIT", nil], - ["reel", "MIT", nil], - ["spork", "MIT", nil], - ["rack-test", "MIT", nil], - ["rework", "MIT", ["Readme.md"]], - ["rework-visit", "MIT", ["Readme.md"]], - ["source-map-resolve", "MIT", ["LICENSE"]], - ["source-map-url", "MIT", ["LICENSE"]], - ["moneta", "MIT", nil], - ["mixlib-authentication", "Apache-2.0", nil], - ["mixlib-cli", "Apache-2.0", nil], - ["ohai", "Apache-2.0", nil], - ["chef", "Apache-2.0", nil], - ["ipaddress", "MIT", nil], - ["systemu", "BSD-2-Clause", nil], - ["pry", "MIT", nil], - ["puma", "BSD-3-Clause", nil], - ["rb-inotify", "MIT", ["README.md"]], - ["chef-web-core", "Apache-2.0", nil], - ["knife-opc", "Apache-2.0", nil], - ["highline", "Ruby", ["LICENSE"]], - ["unicorn", "Ruby", ["LICENSE"]], - ["winrm-fs", "Apache-2.0", nil], - ["codecov", "MIT", ["https://raw.githubusercontent.com/codecov/codecov-ruby/master/LICENSE.txt"]], - ["net-http-persistent", "MIT", ["README.rdoc"]], - ["net-http-pipeline", "MIT", ["README.txt"]], - ["websocket", "MIT", ["README.md"]], - # Overrides that require file fetching from internet - ["sfl", "Ruby", ["https://raw.githubusercontent.com/ujihisa/spawn-for-legacy/master/LICENCE.md"]], - ["json_pure", nil, ["https://raw.githubusercontent.com/flori/json/master/README.md"]], - ["aws-sdk-core", nil, ["https://raw.githubusercontent.com/aws/aws-sdk-ruby/master/README.md"]], - ["aws-sdk-resources", nil, ["https://raw.githubusercontent.com/aws/aws-sdk-ruby/master/README.md"]], - ["aws-sdk", nil, ["https://raw.githubusercontent.com/aws/aws-sdk-ruby/master/README.md"]], - ["fuzzyurl", nil, ["https://raw.githubusercontent.com/gamache/fuzzyurl/master/LICENSE.txt"]], - ["jwt", nil, ["https://raw.githubusercontent.com/jwt/ruby-jwt/master/LICENSE"]], - ["win32-process", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-api", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-dir", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-ipc", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-event", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-eventlog", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-mmap", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-mutex", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["win32-service", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["windows-api", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["rdoc", "Ruby", ["https://raw.githubusercontent.com/ruby/rdoc/master/LICENSE.rdoc"]], - ["rest-client", "MIT", ["https://raw.githubusercontent.com/rest-client/rest-client/master/LICENSE"]], - ["rspec-rerun", nil, ["https://raw.githubusercontent.com/dblock/rspec-rerun/master/LICENSE.md"]], - ["amqp", "Ruby", ["https://raw.githubusercontent.com/ruby-amqp/amqp/master/README.md"]], - ["fast_xs", "MIT", ["https://raw.githubusercontent.com/brianmario/fast_xs/master/LICENSE"]], - ["word-salad", "MIT", ["https://raw.githubusercontent.com/alexvollmer/word_salad/master/README.txt"]], - ["minitest", nil, ["https://raw.githubusercontent.com/seattlerb/minitest/master/README.rdoc"]], - ["cucumber-wire", nil, ["https://raw.githubusercontent.com/cucumber/cucumber-ruby-wire/master/LICENSE"]], - ["minitar", "Ruby", ["https://raw.githubusercontent.com/atoulme/minitar/master/README"]], - ["enumerable-lazy", "MIT", ["https://raw.githubusercontent.com/yhara/enumerable-lazy/master/README.md"]], - ["rack-accept", "MIT", ["https://raw.githubusercontent.com/mjackson/rack-accept/master/README.md"]], - ["net-http-spy", "Public-Domain", ["https://raw.githubusercontent.com/martinbtt/net-http-spy/master/readme.markdown"]], - ["http_parser.rb", nil, ["https://raw.githubusercontent.com/tmm1/http_parser.rb/master/LICENSE-MIT"]], - ["websocket-extensions", nil, ["https://raw.githubusercontent.com/faye/websocket-extensions-ruby/master/LICENSE.md"]], - ["websocket-driver", nil, ["https://raw.githubusercontent.com/faye/websocket-driver-ruby/master/LICENSE.md"]], - ["dep_selector", nil, ["https://raw.githubusercontent.com/chef/dep-selector/master/LICENSE"]], - ["overcommit", nil, ["https://raw.githubusercontent.com/brigade/overcommit/master/MIT-LICENSE"]], - ["github_changelog_generator", nil, ["https://raw.githubusercontent.com/skywinder/github-changelog-generator/master/LICENSE"]], - ["pbkdf2", "MIT", ["https://raw.githubusercontent.com/emerose/pbkdf2-ruby/master/LICENSE.TXT"]], - ["rails-deprecated_sanitizer", nil, ["https://raw.githubusercontent.com/rails/rails-deprecated_sanitizer/master/LICENSE"]], - ["rails-html-sanitizer", nil, ["https://raw.githubusercontent.com/rails/rails-html-sanitizer/master/MIT-LICENSE"]], - ["compass", "MIT", ["https://raw.githubusercontent.com/Compass/compass/stable/LICENSE.markdown"]], - ["railties", nil, ["https://raw.githubusercontent.com/rails/rails/master/railties/MIT-LICENSE"]], - ["coffee-script-source", nil, ["https://raw.githubusercontent.com/jessedoyle/coffee-script-source/master/LICENSE"]], - ["omniauth-chef", nil, ["https://raw.githubusercontent.com/chef/omniauth-chef/master/README.md"]], - ["rails", nil, ["https://raw.githubusercontent.com/rails/rails/master/README.md"]], - ["unicorn-rails", "MIT", ["https://raw.githubusercontent.com/samuelkadolph/unicorn-rails/master/LICENSE"]], - ["hoe", "MIT", ["https://raw.githubusercontent.com/seattlerb/hoe/master/README.rdoc"]], - ["rubyzip", nil, ["https://raw.githubusercontent.com/rubyzip/rubyzip/master/README.md"]], - ["url", "MIT", ["https://raw.githubusercontent.com/tal/URL/master/LICENSE"]], - ["mocha", "MIT", ["https://raw.githubusercontent.com/freerange/mocha/master/MIT-LICENSE.md"]], - ["sslshake", "MPL-2.0", ["https://raw.githubusercontent.com/arlimus/sslshake/master/README.md"]], - ["inspec-msccm", nil, [canonical("Chef-MLSA")]], - ["inspec-scap", nil, [canonical("Chef-MLSA")]], - ["aws-sigv4", "MIT", ["https://raw.githubusercontent.com/cmdrkeene/aws4/master/readme.md"]], - ["slack-notifier", "MIT", ["https://raw.githubusercontent.com/stevenosloan/slack-notifier/master/LICENSE"]], - ["parslet", "MIT", ["https://raw.githubusercontent.com/kschiess/parslet/master/LICENSE"]], - ["blankslate", "MIT", ["https://raw.githubusercontent.com/masover/blankslate/master/MIT-LICENSE"]], - ["xml-simple", "Ruby", ["https://raw.githubusercontent.com/maik/xml-simple/master/README.md"]], - ] - (aws_sdk_gems + other_gems).each do |override_data| - override_license "ruby_bundler", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - - # chef_berkshelf - [ - ["apt", nil, ["https://raw.githubusercontent.com/chef-cookbooks/apt/master/LICENSE"]], - ["chef-ha-drbd", nil, ["https://raw.githubusercontent.com/chef/chef-server/master/LICENSE"]], - ["private-chef", nil, ["https://raw.githubusercontent.com/chef/chef-server/master/LICENSE"]], - ["chef-sugar", nil, ["https://raw.githubusercontent.com/sethvargo/chef-sugar/master/LICENSE"]], - ["openssl", nil, ["https://raw.githubusercontent.com/chef-cookbooks/openssl/master/LICENSE"]], - ["runit", nil, ["https://raw.githubusercontent.com/chef-cookbooks/runit/master/LICENSE"]], - ["yum", nil, ["https://raw.githubusercontent.com/chef-cookbooks/yum/master/LICENSE"]], - ["compat_resource", nil, ["https://raw.githubusercontent.com/chef-cookbooks/compat_resource/master/LICENSE"]], - ["yum-epel", nil, ["https://raw.githubusercontent.com/chef-cookbooks/yum-epel/master/LICENSE"]], - ].each do |override_data| - override_license "chef_berkshelf", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - - # Most of the overrides for perl_cpan are pointing to the README files - # inside the modules we download to inspect for licensing information. - [ - ["Scalar-List-Utils", nil, ["README"]], - ["perl", nil, ["README"]], - ["IO", nil, ["README"]], - ["ExtUtils-MakeMaker", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["PathTools", "Perl-5", ["lib/File/Spec.pm"]], - ["Exporter", nil, ["README"]], - ["Carp", nil, ["README"]], - ["lib", nil, ["Artistic"]], - ["Pod-Escapes", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["Pod-Usage", nil, ["README"]], - ["base", "Perl-5", ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["Encode", nil, ["AUTHORS"]], - ["Moo", nil, ["README"]], - ["Sub-Quote", nil, ["README"]], - ["Role-Tiny", nil, ["README"]], - ["Try-Tiny", nil, ["LICENCE"]], - ["Module-Metadata", nil, ["LICENCE"]], - ["constant", nil, ["README"]], - ["Module-Runtime", nil, ["README"]], - ["ExtUtils-Install", nil, ["README"]], - ["File-Path", nil, ["README"]], - ["Getopt-Long", "Perl-5", ["README"]], - ["ExtUtils-ParseXS", "Perl-5", ["README"]], - ["version", nil, ["README"]], - ["Data-Dumper", "Perl-5", ["Dumper.pm"]], - ["Test-Harness", nil, ["README"]], - ["Text-ParseWords", nil, ["README"]], - ["Devel-GlobalDestruction", nil, ["README"]], - ["XSLoader", nil, ["README"]], - ["IPC-Cmd", nil, ["README"]], - ["Pod-Parser", "Perl-5", ["README"]], - ["Config-GitLike", nil, ["lib/Config/GitLike.pm"]], - ["Test-Exception", nil, ["lib/Test/Exception.pm"]], - ["MooX-Types-MooseLike", nil, ["README"]], - ["String-ShellQuote", "Perl-5", ["README"]], - ["Time-HiRes", nil, ["README"]], - ["Test", "Perl-5", ["README"]], - ["parent", nil, ["lib/parent.pm"]], - ["MIME-Base64", nil, ["README"]], - ["Sub-Identify", nil, ["lib/Sub/Identify.pm"]], - ["namespace-autoclean", nil, ["README"]], - ["B-Hooks-EndOfScope", nil, ["README"]], - ["namespace-clean", nil, ["lib/namespace/clean.pm"]], - ["Test-Deep", nil, ["lib/Test/Deep.pm"]], - ["IO-Pager", "Perl-5", ["README"]], - ["libintl-perl", "GPL-3.0", ["COPYING"]], - ["Storable", "Perl-5", ["README"]], - ["Test-Warnings", "Artistic-1.0", ["LICENCE"]], - ["Test-Dir", nil, ["README"]], - ["Digest-SHA", nil, ["README"]], - ["Test-File-Contents", nil, ["README"]], - ["Digest-MD5", nil, ["README"]], - ["Algorithm-Diff", "Perl-5", ["lib/Algorithm/Diff.pm"]], - ["Encode-Locale", nil, ["README"]], - ["Hash-Merge", nil, ["README.md"]], - ["Clone", nil, ["README"]], - ["Clone-Choose", nil, ["README.md"]], - ["URI-db", nil, ["README"]], - ["URI-Nested", nil, ["README.md"]], - ["Test-utf8", nil, ["README"]], - ["Class-Singleton", "Perl-5", ["README"]], - ["Devel-PPPort", nil, ["README"]], - ["Digest-SHA1", nil, ["README"]], - ["JSON-PP", nil, ["README"]], - ["MRO-Compat", nil, ["README"]], - ["MouseX-NativeTraits", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["MouseX-Types", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["MouseX-Types-Path-Class", nil, ["http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt"]], - ["Test-UseAllModules", nil, ["README"]], - ["Variable-Magic", nil, ["README"]], - ["Class-Data-Inheritable", nil, ["https://raw.githubusercontent.com/tmtmtmtm/class-data-inheritable/master/README"]], - ["File-ShareDir", "Perl-5", ["lib/File/ShareDir.pm"]], - ].each do |override_data| - override_license "perl_cpanm", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - - # erlang_rebar - [ - ["sync", "MIT", ["https://raw.githubusercontent.com/rustyio/sync/11df81d196eaab2d84caa3fbe8def5d476ef79d8/src/sync.erl"]], - ["rebar_vsn_plugin", "Apache-2.0", ["https://raw.githubusercontent.com/erlware/rebar_vsn_plugin/master/src/rebar_vsn_plugin.erl"]], - ["edown", "Erlang-Public", ["https://raw.githubusercontent.com/seth/edown/master/NOTICE"]], - ["bcrypt", "Multiple", ["https://raw.githubusercontent.com/chef/erlang-bcrypt/master/LICENSE"]], - ["amqp_client", "MPL-2.0", ["https://raw.githubusercontent.com/seth/amqp_client/7622ad8093a41b7288a1aa44dd16d3e92ce8f833/src/amqp_connection.erl"]], - ["erlsom", "LGPL-3.0", ["https://raw.githubusercontent.com/willemdj/erlsom/c5ca9fca1257f563d78b048e35ac60832ec80584/COPYING", "https://raw.githubusercontent.com/willemdj/erlsom/c5ca9fca1257f563d78b048e35ac60832ec80584/COPYING.LESSER"]], - ["gen_server2", "Public-Domain", ["https://raw.githubusercontent.com/mdaguete/gen_server2/master/README.md"]], - ["opscoderl_folsom", "Apache-2.0", ["https://raw.githubusercontent.com/chef/opscoderl_folsom/master/README.md"]], - ["quickrand", "BSD-2-Clause", ["https://raw.githubusercontent.com/okeuday/quickrand/master/README.markdown"]], - ["rabbit_common", "MPL-2.0", ["https://raw.githubusercontent.com/muxspace/rabbit_common/master/include/rabbit_msg_store.hrl"]], - ["uuid", "BSD-2-Clause", ["https://raw.githubusercontent.com/okeuday/uuid/master/README.markdown"]], - ["ibrowse", "BSD-2-Clause", nil], - ["eunit_formatters", "Apache-2.0", ["https://raw.githubusercontent.com/seancribbs/eunit_formatters/master/README.md"]], - ["erlware_commons", "MIT", ["https://raw.githubusercontent.com/erlware/erlware_commons/master/COPYING"]], - ["getopt", "MIT", nil], - ["relx", "Apache-2.0", ["https://raw.githubusercontent.com/erlware/relx/master/LICENSE.md"]], - ].each do |override_data| - override_license "erlang_rebar", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - - # js_npm - [ - ["ignore", "MIT", ["https://raw.githubusercontent.com/kaelzhang/node-ignore/master/LICENSE-MIT"]], - ["hock", "MIT", nil], - ["known-css-properties", nil, [canonical("MIT")]], - ["buffer-indexof", "MIT", nil], - ["stdout-stream", "MIT", nil], - ["thunky", "MIT", [canonical("MIT")]], - ["core-object", nil, [canonical("MIT")]], - ["css-parse", nil, [canonical("MIT")]], - ["denodeify", nil, [canonical("MIT")]], - ["detect-node", nil, [canonical("MIT")]], - ["ember-cli-normalize-entity-name", nil, [canonical("MIT")]], - ["ember-cli-string-utils", nil, [canonical("MIT")]], - ["ensure-posix-path", nil, [canonical("MIT")]], - ["handle-thing", nil, [canonical("MIT")]], - ["hash-base", nil, [canonical("MIT")]], - ["heimdalljs", nil, [canonical("MIT")]], - ["hmac-drbg", nil, [canonical("MIT")]], - ["hpack.js", nil, [canonical("MIT")]], - ["http-deceiver", nil, [canonical("MIT")]], - ["icss-utils", nil, [canonical("MIT")]], - ["inflection", nil, [canonical("MIT")]], - ["ip", nil, [canonical("MIT")]], - ["karma-source-map-support", nil, [canonical("MIT")]], - ["loader-runner", nil, [canonical("MIT")]], - ["magic-string", nil, [canonical("MIT")]], - ["matcher-collection", nil, [canonical("MIT")]], - ["minimalistic-crypto-utils", nil, [canonical("MIT")]], - ["node-modules-path", nil, [canonical("MIT")]], - ["obuf", nil, [canonical("MIT")]], - ["rx-lite-aggregates", nil, [canonical("MIT")]], - ["script-loader", nil, [canonical("MIT")]], - ["select-hose", nil, [canonical("MIT")]], - ["selfsigned", nil, [canonical("MIT")]], - ["silent-error", nil, [canonical("MIT")]], - ["spdy", nil, [canonical("MIT")]], - ["spdy-transport", nil, [canonical("MIT")]], - ["vlq", nil, [canonical("MIT")]], - ["wbuf", nil, [canonical("MIT")]], - ["copy-to-clipboard", nil, [canonical("MIT")]], - ["toggle-selection", nil, [canonical("MIT")]], - ["isarray", nil, [canonical("MIT")]], - ["array-filter", nil, [canonical("MIT")]], - ["cssauron", nil, [canonical("MIT")]], - ["path-parse", nil, [canonical("MIT")]], - ["semver-dsl", nil, [canonical("MIT")]], - ["chokidar", nil, ["README.md"]], - ["set-immediate-shim", "MIT", ["https://raw.githubusercontent.com/sindresorhus/set-immediate-shim/master/license"]], - ["process-nextick-args", nil, [canonical("MIT")]], - ["buffer-shims", nil, [canonical("MIT")]], - ["brace-expansion", nil, ["README.md"]], - ["verror", "MIT", ["https://raw.githubusercontent.com/joyent/node-verror/master/LICENSE"]], - # From the json-schema readme: - # Code is licensed under the AFL or BSD license as part of the - # Persevere project which is administered under the Dojo foundation, - # and all contributions require a Dojo CLA. - ["json-schema", "BSD", ["https://raw.githubusercontent.com/dojo/dojo/master/LICENSE"]], - ["tweetnacl", "BSD", ["https://raw.githubusercontent.com/dchest/tweetnacl-js/master/LICENSE"]], - ["assert-plus", "MIT", ["README.md"]], - ["sntp", "BSD-3-Clause", nil], - ["node-uuid", "MIT", nil], - ["ms", "MIT", nil], - ["jsonpointer", nil, ["https://raw.githubusercontent.com/janl/node-jsonpointer/master/LICENSE.md"]], - ["has-color", nil, ["https://raw.githubusercontent.com/chalk/supports-color/master/license"]], - ["generate-function", nil, ["https://raw.githubusercontent.com/mafintosh/generate-function/master/LICENSE"]], - ["extsprintf", "MIT", nil], - ["dashdash", nil, ["https://raw.githubusercontent.com/trentm/node-dashdash/master/LICENSE.txt"]], - # The link here is what's included in the readme - ["async-each", nil, ["https://raw.githubusercontent.com/paulmillr/mit/master/README.md"]], - # README on https://www.npmjs.com/package/indexof just says "MIT" - ["indexof", "MIT", [canonical("MIT")]], - ["querystring", "MIT", nil], - ["timers-browserify", "MIT", nil], - ["shell-quote", nil, ["https://raw.githubusercontent.com/substack/node-shell-quote/master/LICENSE"]], - ["querystring-es3", "MIT", nil], - ["xtend", "MIT", nil], - ["source-map", nil, ["https://raw.githubusercontent.com/mozilla/source-map/master/LICENSE"]], - ["randombytes", nil, [canonical("MIT")]], - ["public-encrypt", nil, [canonical("MIT")]], - ["parse-asn1", nil, [canonical("ISC")]], - ["evp_bytestokey", nil, [canonical("MIT")]], - ["cipher-base", nil, [canonical("MIT")]], - ["asn1.js", nil, ["README.md"]], - ["minimalistic-assert", nil, [canonical("ISC")]], - ["bn.js", nil, ["README.md"]], - ["diffie-hellman", nil, [canonical("MIT")]], - ["miller-rabin", nil, ["README.md"]], - ["brorand", nil, ["README.md"]], - ["create-hmac", nil, [canonical("MIT")]], - ["create-hash", nil, [canonical("MIT")]], - ["browserify-aes", "MIT", ["https://raw.githubusercontent.com/crypto-browserify/browserify-aes/master/LICENSE"]], - ["ripemd160", nil, ["https://raw.githubusercontent.com/crypto-browserify/ripemd160/master/LICENSE"]], - ["create-ecdh", nil, [canonical("MIT")]], - ["elliptic", nil, ["README.md"]], - ["hash.js", nil, ["README.md"]], - ["adm-zip", nil, ["https://raw.githubusercontent.com/cthackers/adm-zip/master/MIT-LICENSE.txt"]], - ["after", "MIT", nil], - ["agent-base", nil, ["README.md"]], - ["angular2-cookie", "MIT", ["https://raw.githubusercontent.com/salemdar/angular2-cookie/master/LICENSE"]], - ["angular-embedly", "BSD-2-Clause", nil], - ["angular-feature-flags", nil, ["https://mjt01.mit-license.org/"]], - ["angular-restmod", "MIT", nil], - ["angular-spinner", nil, [canonical("MIT")]], - ["angular2-router-loader", "MIT", ["README.md"]], - ["ansi", "MIT", ["https://raw.githubusercontent.com/TooTallNate/ansi.js/master/LICENSE"]], - ["ansi-regex", nil, ["https://raw.githubusercontent.com/chalk/ansi-regex/master/license"]], - ["ansi-styles", nil, [canonical("MIT")]], - ["ansi_up", "MIT", ["Readme.md"]], - ["are-we-there-yet", nil, ["https://raw.githubusercontent.com/iarna/are-we-there-yet/master/LICENSE"]], - ["arraybuffer.slice", "MIT", ["README.md"]], - ["asn1", "MIT", nil], - ["async-foreach", "MIT", nil], - ["aws-sign2", "Apache-2.0", nil], - ["babel", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-code-frame", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-core", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-generator", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-call-delegate", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-define-map", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-function-name", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-get-function-arity", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-hoist-variables", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-optimise-call-expression", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-regex", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helper-replace-supers", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-helpers", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-messages", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-check-es2015-constants", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-syntax-async-functions", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-arrow-functions", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-block-scoped-functions", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-block-scoping", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-classes", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-computed-properties", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-destructuring", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-duplicate-keys", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-for-of", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-function-name", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-literals", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-modules-amd", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-modules-commonjs", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-modules-systemjs", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-modules-umd", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-object-super", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-parameters", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-shorthand-properties", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-spread", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-sticky-regex", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-template-literals", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-typeof-symbol", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-es2015-unicode-regex", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-plugin-transform-strict-mode", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-preset-es2015", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-register", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-runtime", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-template", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-traverse", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["babel-types", nil, ["https://raw.githubusercontent.com/babel/babel/master/LICENSE"]], - ["backo2", nil, ["https://raw.githubusercontent.com/mokesmokes/backo/master/LICENSE"]], - ["balanced-match", nil, ["https://raw.githubusercontent.com/juliangruber/balanced-match/master/LICENSE.md"]], - ["base64id", "MIT", ["https://raw.githubusercontent.com/faeldt/base64id/master/LICENSE"]], - ["batch", nil, ["Readme.md"]], - ["bcrypt-pbkdf", nil, [canonical("BSD-4-Clause")]], - ["better-assert", "MIT", ["https://raw.githubusercontent.com/tj/better-assert/master/LICENSE"]], - ["binary", nil, [canonical("MIT")]], - ["bindings", nil, ["README.md"]], - ["blob", "MIT", ["https://raw.githubusercontent.com/webmodules/blob/master/LICENSE"]], - ["bluebird", nil, ["https://raw.githubusercontent.com/petkaantonov/bluebird/master/LICENSE"]], - ["browserify-cipher", nil, [canonical("MIT")]], - ["browserify-des", nil, [canonical("MIT")]], - ["browserify-zlib", nil, ["https://raw.githubusercontent.com/devongovett/browserify-zlib/master/LICENSE"]], - ["buffers", "MIT", [canonical("MIT")]], - ["bufferutil", nil, [canonical("MIT")]], - ["builtins", nil, ["https://raw.githubusercontent.com/juliangruber/builtins/master/License"]], - ["cached-path-relative", "MIT", ["Readme.md"]], - # https://www.npmjs.com/package/callsite - ["callsite", "MIT", [canonical("MIT")]], - ["caseless", nil, ["https://raw.githubusercontent.com/request/caseless/master/LICENSE"]], - ["chainsaw", nil, ["https://raw.githubusercontent.com/substack/node-chainsaw/master/LICENSE", canonical("MIT")]], - ["chalk", nil, ["https://raw.githubusercontent.com/chalk/chalk/master/license"]], - ["cli", nil, ["README.md"]], - ["cloneextend", "MIT", [canonical("MIT")]], - ["combined-stream", "MIT", nil], - ["commander", nil, ["https://raw.githubusercontent.com/tj/commander.js/master/LICENSE"]], - ["commondir", nil, ["https://raw.githubusercontent.com/substack/node-commondir/master/LICENSE"]], - ["component-bind", "MIT", ["https://raw.githubusercontent.com/component/bind/master/LICENSE"]], - ["component-emitter", "MIT", ["https://raw.githubusercontent.com/component/emitter/master/LICENSE"]], - ["component-inherit", "MIT", ["https://raw.githubusercontent.com/component/inherit/master/LICENSE"]], - ["constants-browserify", nil, ["README.md"]], - ["cookie-signature", nil, ["Readme.md"]], - ["core-util-is", nil, ["https://raw.githubusercontent.com/isaacs/core-util-is/master/LICENSE"]], - ["ctype", "MIT", nil], - ["custom-event", nil, [canonical("MIT")]], - ["delayed-stream", "MIT", nil], - ["des.js", nil, ["README.md"]], - ["dom-serialize", nil, [canonical("MIT")]], - ["domelementtype", "BSD-2-Clause", nil], - ["domhandler", "BSD-2-Clause", nil], - ["domutils", "BSD-2-Clause", nil], - ["engine.io-parser", "MIT", nil], - ["esprima-fb", nil, ["https://raw.githubusercontent.com/facebookarchive/esprima/fb-harmony/LICENSE.BSD"]], - ["falafel", nil, [canonical("MIT")]], - ["filename-regex", nil, ["https://raw.githubusercontent.com/regexhq/filename-regex/master/LICENSE"]], - ["font-awesome", nil, ["http://scripts.sil.org/OFL", canonical("MIT")]], - ["get-caller-file", nil, [canonical("ISC")]], - ["get-stdin", nil, ["https://raw.githubusercontent.com/sindresorhus/get-stdin/master/license"]], - ["has-ansi", nil, ["https://raw.githubusercontent.com/chalk/has-ansi/master/license"]], - ["has-cors", nil, [canonical("MIT")]], - ["hat", nil, [canonical("MIT")]], - ["https-proxy-agent", nil, ["README.md"]], - ["inherits", "ISC", nil], - ["invariant", nil, [canonical("BSD-3-Clause")]], - ["invert-kv", nil, ["https://raw.githubusercontent.com/sindresorhus/invert-kv/master/license"]], - ["jasmine", nil, [canonical("MIT")]], - ["jasmine-core", nil, ["https://raw.githubusercontent.com/jasmine/jasmine/master/MIT.LICENSE"]], - ["json5", nil, [canonical("MIT")]], - ["jsonify", nil, ["https://raw.githubusercontent.com/substack/jsonify/master/readme.markdown"]], - ["keymaster", "MIT", nil], - ["loose-envify", nil, [canonical("MIT")]], - ["natives", nil, [canonical("ISC")]], - ["ng2d3", "MIT", ["docs/license.md"]], - ["object-component", "MIT", [canonical("MIT")]], - ["options", "MIT", ["README.md"]], - ["over", nil, ["README.md"]], - ["parse-diff", "MIT", nil], - ["parsejson", nil, ["https://raw.githubusercontent.com/get/parsejson/master/LICENSE"]], - ["parseqs", nil, ["https://raw.githubusercontent.com/get/querystring/master/LICENSE"]], - ["parseuri", nil, ["https://raw.githubusercontent.com/get/parseuri/master/LICENSE"]], - ["regenerator-runtime", nil, ["https://raw.githubusercontent.com/facebook/regenerator/master/LICENSE"]], - ["rx", nil, ["https://raw.githubusercontent.com/Reactive-Extensions/RxJS/master/license.txt"]], - ["sass-graph", nil, [canonical("MIT")]], - ["sauce-connect-launcher", "MIT", ["README.md"]], - ["saucelabs", "MIT", ["README.md"]], - ["slash", nil, ["https://raw.githubusercontent.com/sindresorhus/slash/master/license"]], - ["socket.io-parser", nil, ["https://raw.githubusercontent.com/socketio/socket.io-parser/master/LICENSE"]], - ["stable", nil, ["README.md"]], - ["strip-ansi", nil, ["https://raw.githubusercontent.com/chalk/strip-ansi/master/license"]], - ["stubby", nil, ["https://raw.githubusercontent.com/mrak/stubby4node/master/APACHE.LICENSE"]], - ["supports-color", nil, ["https://raw.githubusercontent.com/chalk/supports-color/master/license"]], - ["tmp", nil, ["https://raw.githubusercontent.com/raszi/node-tmp/master/LICENSE"]], - ["umd", nil, ["https://raw.githubusercontent.com/ForbesLindesay/umd/master/LICENSE"]], - ["underscore.string", nil, ["README.markdown"]], - ["utf-8-validate", nil, [canonical("MIT")]], - ["w3c-blob", nil, [canonical("MIT")]], - ["wordwrap", nil, ["https://raw.githubusercontent.com/substack/node-wordwrap/master/LICENSE"]], - ["ws", nil, ["README.md"]], - ["delivery-web", "Chef-MLSA", [canonical("Chef-MLSA")]], - ["visibility-web", "Chef-MLSA", [canonical("Chef-MLSA")]], - ["compliance-ui-components", "Chef-MLSA", [canonical("Chef-MLSA")]], - ["angular2-moment", nil, ["https://raw.githubusercontent.com/urish/angular2-moment/master/LICENSE"]], - ["array-differ", nil, ["readme.md"]], - ["babel-polyfill", nil, [canonical("MIT")]], - ["boolbase", nil, ["https://raw.githubusercontent.com/fb55/boolbase/master/LICENSE"]], - ["caller-path", nil, ["readme.md"]], - ["callsites", nil, ["readme.md"]], - ["capture-stack-trace", nil, ["readme.md"]], - ["charenc", "MIT", nil], - ["clipboard", nil, ["readme.md"]], - ["closest", nil, ["README.md"]], - ["coa", nil, [canonical("MIT")]], - ["codelyzer", nil, ["README.md"]], - ["color-convert", "MIT", nil], - ["compression-webpack-plugin", nil, ["README.md"]], - ["configstore", nil, ["readme.md"]], - ["crypt", "MIT", nil], - ["cssbeautify", nil, ["https://raw.githubusercontent.com/senchalabs/cssbeautify/master/README.md"]], - ["csslint", nil, ["https://raw.githubusercontent.com/stubbornella/csslint/master/LICENSE"]], - ["css-color-names", nil, ["README.md"]], - ["css-loader", nil, ["README.md"]], - ["css-selector-tokenizer", "MIT", ["README.md"]], - ["delegate", "MIT", ["readme.md"]], - ["enhanced-resolve", nil, ["https://raw.githubusercontent.com/webpack/enhanced-resolve/master/README.md"]], - ["electron-releases", "MIT", ["readme.md"]], - ["errno", nil, ["README.md"]], - ["es6-promise-loader", nil, ["README.md"]], - ["es6-promisify", nil, ["README.md"]], - ["esrecurse", nil, ["https://raw.githubusercontent.com/estools/esrecurse/master/README.md"]], - ["exit-hook", nil, ["readme.md"]], - ["exports-loader", nil, ["README.md"]], - ["expose-loader", nil, ["README.md"]], - ["extract-text-webpack-plugin", nil, ["README.md"]], - ["extract-zip", nil, [canonical("BSD-2-Clause")]], - ["fastparse", nil, ["README.md"]], - ["faye-websocket", "MIT", ["README.md"]], - ["file-loader", nil, ["README.md"]], - ["good-listener", nil, ["readme.md"]], - ["html-comment-regex", nil, ["README.md"]], - ["http-proxy-agent", nil, ["README.md"]], - ["icss-replace-symbols", nil, ["README.md"]], - ["imports-loader", nil, ["README.md"]], - ["imurmurhash", nil, ["README.md"]], - ["inquirer", nil, ["README.md"]], - ["is-npm", nil, ["readme.md"]], - ["is-path-cwd", nil, ["readme.md"]], - ["is-path-in-cwd", nil, ["readme.md"]], - ["is-path-inside", nil, ["readme.md"]], - ["istanbul", nil, ["README.md"]], - ["istanbul-instrumenter-loader", nil, ["README.md"]], - ["karma-webpack", nil, ["README.md"]], - ["lowercase-keys", nil, ["readme.md"]], - ["macaddress", nil, [canonical("MIT")]], - ["make-error", nil, ["README.md"]], - ["matches-selector", nil, ["Readme.md"]], - ["memory-fs", "MIT", ["README.md"]], - ["mime", "MIT", nil], - ["multipipe", nil, ["Readme.md"]], - ["ncname", nil, ["readme.md"]], - ["ng2-gravatar-directive", nil, ["README.md"]], - ["ng2-pagination", nil, ["readme.md"]], - ["node-libs-browser", nil, [canonical("MIT")]], - ["nth-check", nil, ["README.md"]], - ["parserlib", nil, ["https://raw.githubusercontent.com/CSSLint/parser-lib/master/LICENSE"]], - ["phantomjs-polyfill", nil, [canonical("ISC")]], - ["postcss-modules-extract-imports", nil, ["README.md"]], - ["postcss-modules-scope", nil, ["README.md"]], - ["postcss-modules-values", nil, ["README.md"]], - ["progress", "MIT", nil], - ["raw-loader", nil, ["README.md"]], - ["readline2", nil, ["README.md"]], - ["require-uncached", nil, ["readme.md"]], - ["rework", "MIT", ["Readme.md"]], - ["rework-visit", "MIT", ["Readme.md"]], - ["ripemd160", "MIT", ["https://raw.githubusercontent.com/crypto-browserify/ripemd160/master/LICENSE"]], - ["rx-lite", nil, ["readme.md"]], - ["select", "MIT", ["readme.md"]], - ["source-list-map", nil, ["README.md"]], - ["source-map-loader", nil, ["README.md"]], - ["source-map-resolve", "MIT", ["readme.md"]], - ["source-map-url", "MIT", ["readme.md"]], - ["stream-cache", "MIT", ["https://raw.githubusercontent.com/felixge/node-stream-cache/master/License"]], - ["style-loader", nil, ["README.md"]], - ["tapable", nil, [canonical("MIT")]], - ["throttleit", nil, ["Readme.md"]], - ["timed-out", nil, ["readme.md"]], - ["tiny-emitter", nil, [canonical("MIT")]], - ["tryit", nil, ["README.md"]], - ["ts-helper", nil, [canonical("MIT")]], - ["tsify", "MIT", ["README.md"]], - ["tslint-loader", nil, ["README.md"]], - ["tv4", "Public-Domain", ["README.md"]], - ["uglify-js", "MIT", nil], - ["uniqid", nil, ["Readme.md"]], - ["uniqs", nil, ["README.md"]], - ["update-notifier", nil, ["readme.md"]], - ["url-loader", nil, ["README.md"]], - ["utila", nil, ["https://raw.githubusercontent.com/AriaMinaei/utila/master/LICENSE"]], - ["wallaby-webpack", nil, [canonical("MIT")]], - ["watchpack", nil, ["https://raw.githubusercontent.com/webpack/watchpack/master/LICENSE"]], - ["webpack-core", nil, ["README.md"]], - ["webpack-dev-middleware", nil, [canonical("MIT")]], - ["webpack-dev-server", nil, [canonical("MIT")]], - ["webpack-sources", nil, [canonical("MIT")]], - ["websocket-driver", nil, ["README.md"]], - ["websocket-extensions", nil, ["README.md"]], - ["xml-char-classes", nil, ["readme.md"]], - ["zip-object", nil, [canonical("MIT")]], - ["component-closest", nil, ["https://raw.githubusercontent.com/component/closest/master/README.md"]], - ["component-matches-selector", nil, ["https://raw.githubusercontent.com/component/matches-selector/master/Readme.md"]], - ["component-query", nil, ["https://raw.githubusercontent.com/component/query/master/Readme.md"]], - ["webcomponents.js", "BSD-3-Clause", ["https://raw.githubusercontent.com/webcomponents/webcomponentsjs/master/LICENSE.md"]], - ["web-animations-js", "Apache-2.0", ["https://raw.githubusercontent.com/web-animations/web-animations-js/dev/COPYING"]], - ["electron-to-chromium", nil, [canonical("ISC")]], - ["debug", "MIT", ["https://raw.githubusercontent.com/visionmedia/debug/master/LICENSE"]], - ["performance-now", "MIT", ["https://raw.githubusercontent.com/braveg1rl/performance-now/master/license.txt"]], - ["cli-table", "MIT", ["README.md"]], - ["process", "MIT", ["https://raw.githubusercontent.com/defunctzombie/node-process/master/LICENSE"]], - ["rrule", "BSD-3-Clause", ["https://raw.githubusercontent.com/jakubroztocil/rrule/master/LICENCE"]], - # jszip says it is dual licensed under MIT and GPLv3 - ["jszip", "MIT", ["https://raw.githubusercontent.com/Stuk/jszip/master/LICENSE.markdown"]], - ].each do |override_data| - override_license "js_npm", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - - # go_godep - [ - ["github.com/agnivade/easy-scrypt", "MIT", ["https://raw.githubusercontent.com/agnivade/easy-scrypt/master/LICENSE.txt"]], - ["github.com/antonholmquist/jason", "MIT", ["https://raw.githubusercontent.com/antonholmquist/jason/master/LICENSE"]], - ["github.com/aws/aws-sdk-go", "Apache-2.0", ["https://raw.githubusercontent.com/aws/aws-sdk-go/master/LICENSE.txt"]], - ["github.com/beevik/etree", "BSD-2-Clause", ["https://raw.githubusercontent.com/beevik/etree/master/LICENSE"]], - ["github.com/blang/semver", "MIT", ["https://raw.githubusercontent.com/blang/semver/master/LICENSE"]], - ["github.com/BurntSushi/toml", "WTFPL", ["https://raw.githubusercontent.com/BurntSushi/toml/master/COPYING"]], - ["github.com/codegangsta/cli", "MIT", ["https://raw.githubusercontent.com/urfave/cli/master/LICENSE"]], - ["github.com/codegangsta/inject", "MIT", ["https://raw.githubusercontent.com/codegangsta/inject/master/LICENSE"]], - ["github.com/codeskyblue/go-sh", "Apache-2.0", ["https://raw.githubusercontent.com/codeskyblue/go-sh/master/LICENSE"]], - ["github.com/coreos/go-oidc", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-oidc/http", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-oidc/jose", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-oidc/key", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-oidc/oauth2", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-oidc/oidc", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-oidc/master/LICENSE"]], - ["github.com/coreos/go-systemd/journal", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/go-systemd/master/LICENSE"]], - ["github.com/coreos/pkg", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/pkg/master/LICENSE"]], - ["github.com/coreos/pkg/capnslog", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/pkg/master/LICENSE"]], - ["github.com/coreos/pkg/health", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/pkg/master/LICENSE"]], - ["github.com/coreos/pkg/httputil", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/pkg/master/LICENSE"]], - ["github.com/coreos/pkg/timeutil", "Apache-2.0", ["https://raw.githubusercontent.com/coreos/pkg/master/LICENSE"]], - ["github.com/ctdk/chefcrypto", "Apache-2.0", ["https://raw.githubusercontent.com/ctdk/chefcrypto/master/LICENSE"]], - ["github.com/ctdk/go-trie", "MIT", ["https://raw.githubusercontent.com/ctdk/go-trie/master/LICENSE"]], - ["github.com/ctdk/goiardi", "Apache-2.0", ["https://raw.githubusercontent.com/ctdk/goiardi/master/LICENSE"]], - ["github.com/dchest/siphash", "CC0-1.0", ["https://raw.githubusercontent.com/dchest/siphash/master/README.md"]], - ["github.com/dgrijalva/jwt-go", "MIT", ["https://raw.githubusercontent.com/dgrijalva/jwt-go/master/LICENSE"]], - ["github.com/fatih/structs", "MIT", ["https://raw.githubusercontent.com/fatih/structs/master/LICENSE"]], - ["github.com/gin-gonic/gin", "MIT", ["https://raw.githubusercontent.com/gin-gonic/gin/master/LICENSE"]], - ["github.com/gin-gonic/gin/binding", "MIT", ["https://raw.githubusercontent.com/gin-gonic/gin/master/LICENSE"]], - ["github.com/gin-gonic/gin/render", "MIT", ["https://raw.githubusercontent.com/gin-gonic/gin/master/LICENSE"]], - ["github.com/go-chef/chef", "Apache-2.0", ["https://raw.githubusercontent.com/go-chef/chef/master/LICENSE"]], - ["github.com/go-ini/ini", "Apache-2.0", ["https://raw.githubusercontent.com/go-ini/ini/master/LICENSE"]], - ["github.com/go-sql-driver/mysql", "MPL-2.0", ["https://raw.githubusercontent.com/go-sql-driver/mysql/master/LICENSE"]], - ["github.com/golang/protobuf", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/protobuf/master/LICENSE"]], - ["github.com/gorhill/cronexpr", "Apache-2.0", ["https://www.apache.org/licenses/LICENSE-2.0"]], - ["github.com/gorilla/handlers", "BSD-2-Clause", ["https://raw.githubusercontent.com/gorilla/handlers/master/LICENSE"]], - ["github.com/hashicorp/errwrap", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/errwrap/master/LICENSE"]], - ["github.com/hashicorp/go-cleanhttp", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/go-cleanhttp/master/LICENSE"]], - ["github.com/hashicorp/go-multierror", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/go-multierror/master/LICENSE"]], - ["github.com/hashicorp/go-rootcerts", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/go-rootcerts/master/LICENSE"]], - ["github.com/hashicorp/hcl", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/hcl/master/LICENSE"]], - ["github.com/hashicorp/vault", "MPL-2.0", ["https://raw.githubusercontent.com/hashicorp/vault/master/LICENSE"]], - ["github.com/jessevdk/go-flags", "BSD-3-Clause", ["https://raw.githubusercontent.com/jessevdk/go-flags/master/LICENSE"]], - ["github.com/jmespath/go-jmespath", "Apache-2.0", ["https://raw.githubusercontent.com/jmespath/go-jmespath/master/LICENSE"]], - ["github.com/jonboulle/clockwork", "Apache-2.0", ["https://raw.githubusercontent.com/jonboulle/clockwork/master/LICENSE"]], - ["github.com/lib/pq", "MIT", ["https://raw.githubusercontent.com/lib/pq/master/LICENSE.md"]], - ["github.com/lib/pq/oid", "MIT", ["https://raw.githubusercontent.com/lib/pq/master/LICENSE.md"]], - ["github.com/manucorporat/sse", "MIT", ["https://raw.githubusercontent.com/manucorporat/sse/master/LICENSE"]], - ["github.com/mattn/go-colorable", "MIT", ["https://raw.githubusercontent.com/mattn/go-colorable/master/LICENSE"]], - ["github.com/mattn/go-isatty", "MIT", ["https://raw.githubusercontent.com/mattn/go-isatty/master/LICENSE"]], - ["github.com/mattn/go-sqlite3", "MIT", ["https://raw.githubusercontent.com/mattn/go-sqlite3/master/LICENSE"]], - ["github.com/mitchellh/go-homedir", "MIT", ["https://raw.githubusercontent.com/mitchellh/go-homedir/master/LICENSE"]], - ["github.com/mitchellh/mapstructure", "MIT", ["https://raw.githubusercontent.com/mitchellh/mapstructure/master/LICENSE"]], - ["github.com/nu7hatch/gouuid", "MIT", ["https://raw.githubusercontent.com/nu7hatch/gouuid/master/COPYING"]], - ["github.com/open-policy-agent/opa", "Apache-2.0", ["https://raw.githubusercontent.com/open-policy-agent/opa/master/LICENSE"]], - ["github.com/patrickmn/go-cache", "MIT", ["https://raw.githubusercontent.com/patrickmn/go-cache/master/LICENSE"]], - ["github.com/peterbourgon/mergemap", "BSD-2-Clause", ["https://raw.githubusercontent.com/peterbourgon/mergemap/master/LICENSE"]], - ["github.com/philhofer/fwd", "MIT", ["https://raw.githubusercontent.com/philhofer/fwd/master/LICENSE.md"]], - ["github.com/op/go-logging", "BSD-3-Clause", ["https://raw.githubusercontent.com/op/go-logging/master/LICENSE"]], - ["github.com/pmylund/go-cache", "MIT", ["https://raw.githubusercontent.com/patrickmn/go-cache/master/LICENSE"]], - ["github.com/sethgrid/pester", "MIT", ["https://raw.githubusercontent.com/sethgrid/pester/master/LICENSE.md"]], - ["github.com/Sirupsen/logrus", "MIT", ["https://raw.githubusercontent.com/sirupsen/logrus/master/LICENSE"]], - ["github.com/davecgh/go-spew", "ISC", ["https://raw.githubusercontent.com/davecgh/go-spew/master/LICENSE"]], - ["github.com/gin-contrib/sse", "MIT", ["https://raw.githubusercontent.com/gin-contrib/sse/master/LICENSE"]], - ["github.com/gocarina/gocsv", "MIT", ["https://raw.githubusercontent.com/gocarina/gocsv/master/LICENSE"]], - ["github.com/pmezard/go-difflib", "BSD 3-clause", ["https://raw.githubusercontent.com/pmezard/go-difflib/master/LICENSE"]], - ["github.com/stretchr/testify", "MIT", ["https://raw.githubusercontent.com/stretchr/testify/master/LICENSE"]], - ["github.com/ugorji/go", "MIT", ["https://raw.githubusercontent.com/ugorji/go/master/LICENSE"]], - ["github.com/tideland/golib", "BSD-3-Clause", ["https://raw.githubusercontent.com/tideland/golib/master/LICENSE"]], - ["github.com/tinylib/msgp", "MIT", ["https://raw.githubusercontent.com/tinylib/msgp/master/LICENSE"]], - ["golang.org/x/crypto", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/crypto/master/LICENSE"]], - ["golang.org/x/crypto/pbkdf2", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/crypto/master/LICENSE"]], - ["golang.org/x/crypto/scrypt", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/crypto/master/LICENSE"]], - ["golang.org/x/crypto/ssh", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/crypto/master/LICENSE"]], - ["golang.org/x/exp", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/exp/master/LICENSE"]], - ["golang.org/x/net", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["golang.org/x/net/context", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["golang.org/x/net/netutil", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["golang.org/x/net/context", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["golang.org/x/sys", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/sys/master/LICENSE"]], - ["golang.org/x/sys/unix", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/sys/master/LICENSE"]], - ["gopkg.in/bluesuncorp/validator.v5", "MIT", ["https://raw.githubusercontent.com/go-playground/validator/v5/LICENSE"]], - ["gopkg.in/gorp.v1", "MIT", ["https://raw.githubusercontent.com/go-gorp/gorp/v1.7.1/LICENSE"]], - ["github.com/go-gorp/gorp", "MIT", ["https://raw.githubusercontent.com/go-gorp/gorp/master/LICENSE"]], - ["gopkg.in/go-playground/validator.v8", "MIT", ["https://raw.githubusercontent.com/go-playground/validator/v8.18.1/LICENSE"]], - ["gopkg.in/olivere/elastic.v3", "MIT", ["https://raw.githubusercontent.com/olivere/elastic/v3.0.68/LICENSE"]], - ["gopkg.in/tylerb/graceful.v1", "MIT", ["https://raw.githubusercontent.com/tylerb/graceful/v1.2.13/LICENSE"]], - ["gopkg.in/yaml.v2", "Apache-2.0", ["https://raw.githubusercontent.com/go-yaml/yaml/v2/LICENSE"]], - ["gopkg.in/olivere/elastic.v5", "MIT", ["https://raw.githubusercontent.com/olivere/elastic/v5.0.41/LICENSE"]], - ["github.com/pkg/errors", "BSD-2-Clause", ["https://raw.githubusercontent.com/pkg/errors/master/LICENSE"]], - ["github.com/grpc-ecosystem/grpc-gateway", "BSD-3-Clause", ["https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/LICENSE.txt"]], - ["github.com/inconshreveable/mousetrap", "MIT", ["https://raw.githubusercontent.com/inconshreveable/mousetrap/master/LICENSE"]], - ["github.com/spf13/cobra", "Apache-2.0", ["https://raw.githubusercontent.com/spf13/cobra/master/LICENSE.txt"]], - ["github.com/spf13/pflag", "BSD-3-Clause", ["https://raw.githubusercontent.com/spf13/pflag/master/LICENSE"]], - ["golang.org/x/text", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["google.golang.org/genproto", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["google.golang.org/grpc", "BSD-3-Clause", ["https://raw.githubusercontent.com/golang/net/master/LICENSE"]], - ["github.com/schollz/closestmatch", "MIT", ["https://raw.githubusercontent.com/schollz/closestmatch/master/LICENSE"]], - ["github.com/fsnotify/fsnotify", "BSD-3-Clause", ["https://raw.githubusercontent.com/fsnotify/fsnotify/master/LICENSE"]], - ["github.com/magiconair/properties", "BSD-3-Clause", ["https://raw.githubusercontent.com/magiconair/properties/master/LICENSE"]], - ["github.com/pelletier/go-toml", "MIT", ["https://raw.githubusercontent.com/pelletier/go-toml/master/LICENSE"]], - ["github.com/sirupsen/logrus", "MIT", ["https://raw.githubusercontent.com/sirupsen/logrus/master/LICENSE"]], - ["github.com/spf13/afero", "Apache-2.0", ["https://raw.githubusercontent.com/spf13/afero/master/LICENSE.txt"]], - ["github.com/spf13/cast", "MIT", ["https://raw.githubusercontent.com/spf13/cast/master/LICENSE"]], - ["github.com/spf13/jwalterweatherman", "MIT", ["https://raw.githubusercontent.com/spf13/jWalterWeatherman/master/LICENSE"]], - ["github.com/spf13/viper", "MIT", ["https://raw.githubusercontent.com/spf13/viper/master/LICENSE"]], - ["github.com/satori/go.uuid", "MIT", ["https://raw.githubusercontent.com/satori/go.uuid/master/LICENSE"]], - ["github.com/teambition/rrule-go", "MIT", ["https://raw.githubusercontent.com/teambition/rrule-go/master/LICENSE"]] - ].each do |override_data| - override_license "go", override_data[0] do |version| - {}.tap do |d| - d[:license] = override_data[1] if override_data[1] - d[:license_files] = override_data[2] if override_data[2] - end - end - end - end - - end -end diff --git a/lib/license_scout/reporter.rb b/lib/license_scout/reporter.rb index df1314fa..f5bf4b32 100644 --- a/lib/license_scout/reporter.rb +++ b/lib/license_scout/reporter.rb @@ -16,96 +16,190 @@ # require "ffi_yajl" +require "terminal-table" require "license_scout/exceptions" module LicenseScout class Reporter - attr_reader :output_directory - - def initialize(output_directory) - @output_directory = output_directory - end + class Result + class << self + def success(dependency) + new(dependency, nil, true) + end - def report - report = [] + def failure(dependency, reason) + new(dependency, reason, false) + end + end - license_manifest_path = find_license_manifest! + attr_reader :dependency + attr_reader :reason - license_report = FFI_Yajl::Parser.parse(File.read(license_manifest_path)) + def initialize(dependency, reason, did_succeed) + @dependency = dependency + @reason = reason + @did_succeed = did_succeed + end - license_report["dependency_managers"].each do |dependency_manager, dependencies| + def <=>(other) + dependency.path <=> other.dependency.path + end - ok_deps, problem_deps = 0, 0 + def succeeded? + @did_succeed + end - dependencies.sort { |a, b| a["name"] <=> b["name"] }.each do |dependency| - dep_ok, problems = license_info_ok?(dependency_manager, dependency) + def dependency_string + dependency.uid + end - if dep_ok - ok_deps += 1 - else - problem_deps += 1 - report.concat(problems) - end - end + def license_string + dependency.license.records.map(&:id).compact.uniq.join(", ") + end - if problem_deps > 0 - report << ">> Found #{dependencies.size} dependencies for #{dependency_manager}. #{ok_deps} OK, #{problem_deps} with problems" + def reason_string + case reason + when :unpermitted + "Unpermitted" + when :flagged + "Flagged" + when :undetermined + "Undetermined" + when :missing + "Missing" + else + "OK" end end + end - report + attr_reader :all_dependencies + attr_reader :results + attr_reader :dependency_license_manifest + + def initialize(all_dependencies) + @all_dependencies = all_dependencies.sort + @results = {} + @did_fail = false + @needs_fallback = false + @needs_exception = false end - def license_info_ok?(dependency_manager, dependency) - problems = [] - if dependency["name"].nil? || dependency["name"].empty? - problems << "There is a dependency with a missing name in '#{dependency_manager}'." - end + def report + generate_dependency_license_manifest + save_manifest_file + detect_problems + evaluate_results + end - if dependency["version"].nil? || dependency["version"].empty? - problems << "Dependency '#{dependency["name"]}' under '#{dependency_manager}' is missing version information." - end + private - if dependency["license"].nil? || dependency["license"].empty? - problems << "Dependency '#{dependency["name"]}' version '#{dependency["version"]}' under '#{dependency_manager}' is missing license information." + def save_manifest_file + LicenseScout::Log.info("[reporter] Writing dependency license manifest written to #{license_manifest_path}") + File.open(license_manifest_path, "w+") do |file| + file.print(FFI_Yajl::Encoder.encode(dependency_license_manifest, pretty: true)) end + end + + def detect_problems + LicenseScout::Log.info("[reporter] Analyzing dependency's license information against requirements") + + LicenseScout::Log.info("[reporter] Allowed licenses: #{LicenseScout::Config.allowed_licenses.join(", ")}") unless LicenseScout::Config.allowed_licenses.empty? + LicenseScout::Log.info("[reporter] Flagged licenses: #{LicenseScout::Config.flagged_licenses.join(", ")}") unless LicenseScout::Config.flagged_licenses.empty? + + all_dependencies.each do |dependency| + @results[dependency.type] ||= [] - if dependency["license_files"].empty? - problems << "Dependency '#{dependency["name"]}' version '#{dependency["version"]}' under '#{dependency_manager}' is missing license files information." - else - dependency["license_files"].each do |license_file| - if !File.exist?(full_path_for(license_file)) - problems << "License file '#{license_file}' for the dependency '#{dependency["name"]}' version '#{dependency["version"]}' under '#{dependency_manager}' is missing." + if !LicenseScout::Config.allowed_licenses.empty? && !dependency.license.is_allowed? + unless dependency.has_exception? + @results[dependency.type] << Result.failure(dependency, :unpermitted) + @did_fail = true + @needs_exception = true + else + @results[dependency.type] << Result.success(dependency) + end + elsif dependency.license.is_flagged? + unless dependency.has_exception? + @results[dependency.type] << Result.failure(dependency, :flagged) + @did_fail = true + @needs_exception = true + else + @results[dependency.type] << Result.success(dependency) end + elsif dependency.license.undetermined? + @results[dependency.type] << Result.failure(dependency, :undetermined) + @did_fail = true + @needs_fallback = true + elsif dependency.license.records.empty? + @results[dependency.type] << Result.failure(dependency, :missing) + @did_fail = true + @needs_fallback = true + else + @results[dependency.type] << Result.success(dependency) end end - - [ problems.empty?, problems ] end - def find_license_manifest! - if !File.exist?(output_directory) - raise LicenseScout::Exceptions::InvalidOutputReport.new("Output directory '#{output_directory}' does not exist.") - end + def evaluate_results + table = Terminal::Table.new + table.headings = ["Type", "Dependency", "License(s)", "Results"] + table.style = { border_bottom: false } # the extra :separator will add this - manifests = Dir.glob("#{output_directory}/*-dependency-licenses.json") + results.each do |type, results_for_type| + type_in_table = false - if manifests.empty? - raise LicenseScout::Exceptions::InvalidOutputReport.new("Can not find a dependency license manifest under '#{output_directory}'.") - end + results_for_type.each do |result| + next if LicenseScout::Config.only_show_failures && result.succeeded? + + modified_row = [] + modified_row << (type_in_table ? "" : type) + modified_row << result.dependency_string + modified_row << result.license_string + modified_row << result.reason_string + + type_in_table = true + table.add_row(modified_row) + end - if manifests.length != 1 - raise LicenseScout::Exceptions::InvalidOutputReport.new("Found multiple manifests '#{manifests.join(", ")}' under '#{output_directory}'.") + table.add_separator if type_in_table end - manifests.first + puts table unless LicenseScout::Config.only_show_failures && !@did_fail + + puts + puts "Additional steps are required in order to pass Open Source license compliance:" + puts " * Please add fallback licenses for the 'Missing' or 'Undetermined' dependencies" if @needs_fallback + puts " https://github.com/chef/license_scout#fallback-licenses" if @needs_fallback + puts " * Please remove or add exceptions for dependencies that are 'Flagged' or 'Unpermitted'" if @needs_exception + puts " https://github.com/chef/license_scout#dependency-exceptions" if @needs_exception + + exit 1 if @did_fail end - def full_path_for(license_file_info) - File.join(output_directory, license_file_info) + def generate_dependency_license_manifest + @dependency_license_manifest = { + license_manifest_version: 2, + generated_on: DateTime.now.to_s, + name: LicenseScout::Config.name, + dependencies: [] + } + + all_dependencies.each do |dep| + dependency_license_manifest[:dependencies] << { + type: dep.type, + name: dep.name, + version: dep.version, + has_exception: dep.has_exception?, + exception_reason: dep.exception_reason, + licenses: dep.license.records.map(&:to_h), + } + end end + def license_manifest_path + File.join(LicenseScout::Config.output_directory, "#{LicenseScout::Config.name}-dependency-licenses.json") + end end end diff --git a/lib/license_scout/spdx.rb b/lib/license_scout/spdx.rb new file mode 100644 index 00000000..1c105d8b --- /dev/null +++ b/lib/license_scout/spdx.rb @@ -0,0 +1,123 @@ +# +# Copyright:: Copyright 2018 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +#     http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This library was inspired by (and pulls some logic from) librariesio/spdx + +require "ffi_yajl" +require "fuzzy_match" + +module LicenseScout + class SPDX + class << self + + # Try to find the SPDX ID that most closely matches the given license ID + # + # @param license_id [String, nil] The license ID + # @return [String, nil, false] Returns either the SPDX ID, false if the + # license_id was nil, or nil if we could not find a valid SPDX ID + def find(license_id, force = false) + return license_id if force + return nil if license_id.nil? + lookup(license_id) || find_by_special_case(license_id) || closest(license_id) || license_id + end + + # Right now this just returns the license keys that are present in the string. + # In the future, we should handle a proper compound structure like + # https://github.com/jslicense/spdx-expression-parse.js + def parse(license_string) + license_string.nil? ? [] : (license_string.tr("()", "").split("\s") - spdx_join_words) + end + + # @return [Hash] The SPDX license data in Hash form + def licenses + @@license_data ||= FFI_Yajl::Parser.parse(File.read(File.expand_path("../data/licenses.json", __FILE__)))["licenses"] + end + + # @return [Hash] The SPDX license data in Hash form + def exceptions + @@license_data ||= FFI_Yajl::Parser.parse(File.read(File.expand_path("../data/exceptions.json", __FILE__)))["exceptions"] + end + + def known_ids + @@known_ids ||= licenses.map { |l| l["licenseId"] } + end + + def known_names + @@known_names ||= licenses.map { |l| l["name"] } + end + + private + + def lookup(license_id) + return license_id if known_ids.include?(license_id) + return spdx_for(license_id) if (Array(license_id) & known_names).any? + return license_id if (parse(license_id) & known_ids).any? + end + + def find_by_special_case(license_id) + gpl = gpl_match(license_id) + return gpl unless gpl.nil? + lookup(special_cases[license_id.downcase]) + end + + def closest(license_id) + spdx_for(FuzzyMatch.new(known_names).find(license_id)) || FuzzyMatch.new(known_ids).find(license_id) + end + + def gpl_match(license_id) + match = license_id.match(/^(l|a)?gpl-?\s?_?v?(1|2|3)\.?(\d)?(\+)?$/i) + return unless match + lookup("#{match[1]}GPL-#{match[2]}.#{match[3] || 0}#{match[4]}".upcase) + end + + def spdx_for(license_name) + licenses.find { |n| n["name"] == license_name }["licenseId"] + end + + def spdx_join_words + %w{WITH AND OR} + end + + def special_cases + { + # Pulled from http://search.cpan.org/~dagolden/CPAN-Meta-2.150010/lib/CPAN/Meta/Spec.pm#license + "agpl_3" => "AGPL-3.0", + "apache_1_1" => "Apache-1.1", + "apache_2_0" => "Apache-2.0", + "artistic_1" => "Artistic-1.0", + "artistic_2" => "Artistic-2.0", + "bsd" => "BSD-3-Clause", + "freebsd" => "BSD-2-Clause-FreeBSD", + "gfdl_1_2" => "GFDL-1.2-only", + "gfdl_1_3" => "GFDL-1.3-only", + "lgpl_2_1" => "LGPL-2.1-only", + "lgpl_3_0" => "LGPL-3.0-only", + "mit" => "MIT", + "mozilla_1_0" => "MPL-1.0", + "mozilla_1_1" => "MPL-1.1", + "openssl" => "OpenSSL", + "qpl_1_0" => "QPL-1.0", + "perl" => "Artistic-1.0-Perl", + "perl_5" => "Artistic-1.0-Perl", + "ssleay" => "OpenSSL", + "sun" => "SISSL", + "zlib" => "Zlib", + } + end + end + end +end diff --git a/license_scout.gemspec b/license_scout.gemspec index e58836aa..5675d28e 100644 --- a/license_scout.gemspec +++ b/license_scout.gemspec @@ -22,22 +22,28 @@ require "license_scout/version" Gem::Specification.new do |spec| spec.name = "license_scout" spec.version = LicenseScout::VERSION - spec.authors = [ "Serdar Sutay" ] - spec.email = [ "serdar@chef.io" ] + spec.authors = [ "Serdar Sutay", "Tom Duffield" ] + spec.email = [ "serdar@chef.io", "tom@chef.io" ] spec.license = "Apache-2.0" spec.summary = "Discovers license files of a project's dependencies." spec.description = "Discovers license files of a project's dependencies." spec.homepage = "https://github.com/chef/license_scout" - spec.files = Dir["LICENSE", "README.md", "{bin,erl_src,lib}/**/*"] + spec.files = Dir["LICENSE", "README.md", "{bin,native_parsers,lib}/**/*"] spec.bindir = "bin" spec.executables = %w{license_scout} spec.require_paths = %w{lib} - spec.add_dependency "ffi-yajl", "~> 2.2" - spec.add_dependency "mixlib-shellout", "~> 2.2" - spec.add_dependency "toml-rb", "~> 1.0" + spec.add_dependency "ffi-yajl", "~> 2.2" + spec.add_dependency "mixlib-shellout", "~> 2.2" + spec.add_dependency "toml-rb", "~> 1.0" + spec.add_dependency "licensee", "~> 9.8" + spec.add_dependency "mixlib-config", "~> 2.2" + spec.add_dependency "mixlib-cli" + spec.add_dependency "mixlib-log" + spec.add_dependency "terminal-table" + spec.add_dependency "fuzzy_match" spec.add_development_dependency "bundler", "~> 1.12" spec.add_development_dependency "rake", "~> 10.0" @@ -45,6 +51,8 @@ Gem::Specification.new do |spec| spec.add_development_dependency "pry" spec.add_development_dependency "rb-readline" spec.add_development_dependency "chefstyle" + spec.add_development_dependency "vcr" + spec.add_development_dependency "webmock" # We do not have berkshelf as a dependency because some of its dependencies # can not be installed on uncommon platforms like Solaris which we need to diff --git a/native_parsers/mix_lock_json/.gitignore b/native_parsers/mix_lock_json/.gitignore new file mode 100644 index 00000000..51d21ea8 --- /dev/null +++ b/native_parsers/mix_lock_json/.gitignore @@ -0,0 +1,24 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where 3rd-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +mix_lock_json-*.tar + diff --git a/native_parsers/mix_lock_json/README.md b/native_parsers/mix_lock_json/README.md new file mode 100644 index 00000000..655a02c6 --- /dev/null +++ b/native_parsers/mix_lock_json/README.md @@ -0,0 +1,21 @@ +# MixLockJson + +**TODO: Add description** + +## Installation + +If [available in Hex](https://hex.pm/docs/publish), the package can be installed +by adding `mix_lock_json` to your list of dependencies in `mix.exs`: + +```elixir +def deps do + [ + {:mix_lock_json, "~> 0.1.0"} + ] +end +``` + +Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) +and published on [HexDocs](https://hexdocs.pm). Once published, the docs can +be found at [https://hexdocs.pm/mix_lock_json](https://hexdocs.pm/mix_lock_json). + diff --git a/native_parsers/mix_lock_json/lib/mix_lock_json.ex b/native_parsers/mix_lock_json/lib/mix_lock_json.ex new file mode 100644 index 00000000..b51a15b0 --- /dev/null +++ b/native_parsers/mix_lock_json/lib/mix_lock_json.ex @@ -0,0 +1,20 @@ +defmodule MixLockJson.CLI do + def main(mix_lock_path \\ "") do + mix_lock_path + |> parse_mix_lock + |> IO.puts + end + + defp parse_mix_lock(mix_lock_path) do + {:ok, lockfile} = File.read(mix_lock_path) + {lock_deps, _} = lockfile |> Code.eval_string + + Poison.encode!(Enum.reduce(lock_deps, [], fn(i, acc) -> + case i do + {name, {_, _, version, _hash, _, _child_deps, _}} -> [%{name => version} | acc] + {name, {:git, _path, hash, _}} -> [%{name => hash} | acc] + _ -> acc + end + end)) + end +end diff --git a/native_parsers/mix_lock_json/mix.exs b/native_parsers/mix_lock_json/mix.exs new file mode 100644 index 00000000..9cfd4f5f --- /dev/null +++ b/native_parsers/mix_lock_json/mix.exs @@ -0,0 +1,31 @@ +defmodule MixLockJson.MixProject do + use Mix.Project + + def project do + [ + app: :mix_lock_json, + version: "0.1.0", + escript: escript(), + deps: deps() + ] + end + + def application do + [applications: []] + end + + defp escript do + [ + main_module: MixLockJson.CLI, + path: "../../bin/mix_lock_json", + app: nil, + embed_elixir: true + ] + end + + defp deps do + [ + {:poison, "~> 3.1"} + ] + end +end diff --git a/native_parsers/mix_lock_json/mix.lock b/native_parsers/mix_lock_json/mix.lock new file mode 100644 index 00000000..faec082f --- /dev/null +++ b/native_parsers/mix_lock_json/mix.lock @@ -0,0 +1,3 @@ +%{ + "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"}, +} diff --git a/erl_src/rebar_lock_json/.gitignore b/native_parsers/rebar_lock_json/.gitignore similarity index 100% rename from erl_src/rebar_lock_json/.gitignore rename to native_parsers/rebar_lock_json/.gitignore diff --git a/erl_src/rebar_lock_json/README.md b/native_parsers/rebar_lock_json/README.md similarity index 100% rename from erl_src/rebar_lock_json/README.md rename to native_parsers/rebar_lock_json/README.md diff --git a/erl_src/rebar_lock_json/rebar.config b/native_parsers/rebar_lock_json/rebar.config similarity index 100% rename from erl_src/rebar_lock_json/rebar.config rename to native_parsers/rebar_lock_json/rebar.config diff --git a/erl_src/rebar_lock_json/rebar.lock b/native_parsers/rebar_lock_json/rebar.lock similarity index 97% rename from erl_src/rebar_lock_json/rebar.lock rename to native_parsers/rebar_lock_json/rebar.lock index f1dadba3..db316aa5 100644 --- a/erl_src/rebar_lock_json/rebar.lock +++ b/native_parsers/rebar_lock_json/rebar.lock @@ -11,11 +11,11 @@ {<<"providers">>,{pkg,<<"providers">>,<<"1.6.0">>},1}, {<<"rebar">>, {git,"https://github.com/erlang/rebar3", - {ref,"4725d363c5b5583c9910f078da38c5b3a1d97aab"}}, + {ref,"86e883b8d8d1d16487e245fff02eba8c83da2cdd"}}, 0}, {<<"rebar3">>, {git,"https://github.com/erlang/rebar3", - {ref,"86e883b8d8d1d16487e245fff02eba8c83da2cdd"}}, + {ref,"cb743f76cbc26ac780066d285329e8a6c8330605"}}, 0}, {<<"relx">>,{pkg,<<"relx">>,<<"3.22.2">>},1}, {<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.1">>},1}]}. diff --git a/erl_src/rebar_lock_json/src/rebar_lock_json.app.src b/native_parsers/rebar_lock_json/src/rebar_lock_json.app.src similarity index 100% rename from erl_src/rebar_lock_json/src/rebar_lock_json.app.src rename to native_parsers/rebar_lock_json/src/rebar_lock_json.app.src diff --git a/erl_src/rebar_lock_json/src/rebar_lock_json.erl b/native_parsers/rebar_lock_json/src/rebar_lock_json.erl similarity index 100% rename from erl_src/rebar_lock_json/src/rebar_lock_json.erl rename to native_parsers/rebar_lock_json/src/rebar_lock_json.erl diff --git a/spec/fixtures/license_analyzer_licenses/ej-apache2-license b/spec/fixtures/empty_project/LICENSE similarity index 100% rename from spec/fixtures/license_analyzer_licenses/ej-apache2-license rename to spec/fixtures/empty_project/LICENSE diff --git a/spec/fixtures/no_dependency_manager/.gitkeep b/spec/fixtures/godeps_gopath/src/github.com/dep/b/.gitkeep similarity index 100% rename from spec/fixtures/no_dependency_manager/.gitkeep rename to spec/fixtures/godeps_gopath/src/github.com/dep/b/.gitkeep diff --git a/spec/fixtures/habitat/plan.sh b/spec/fixtures/habitat/plan.sh new file mode 100644 index 00000000..f61456ac --- /dev/null +++ b/spec/fixtures/habitat/plan.sh @@ -0,0 +1,11 @@ +pkg_name=fixture +pkg_origin=chef +pkg_version="0.1.0" +pkg_maintainer="The Habitat Maintainers " +pkg_license=("Apache-2.0") +pkg_deps=( + core/glibc + core/musl +) +pkg_build_deps=(core/make core/gcc) + diff --git a/spec/fixtures/license_analyzer_licenses/eper-mit b/spec/fixtures/license_analyzer_licenses/eper-mit deleted file mode 100644 index 35e30602..00000000 --- a/spec/fixtures/license_analyzer_licenses/eper-mit +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2008-2013 mats cronqvist - -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/spec/fixtures/license_analyzer_licenses/epgsql-bsd-3-clause b/spec/fixtures/license_analyzer_licenses/epgsql-bsd-3-clause deleted file mode 100644 index 402c2034..00000000 --- a/spec/fixtures/license_analyzer_licenses/epgsql-bsd-3-clause +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) 2008, Will Glozer -Copyright (c) 2011, Anton Lebedevich -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * 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. - * Neither the name of Will Glozer nor the names of his contributors may 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. diff --git a/spec/fixtures/license_analyzer_licenses/esaml-bsd-2-clause b/spec/fixtures/license_analyzer_licenses/esaml-bsd-2-clause deleted file mode 100644 index f8a4d472..00000000 --- a/spec/fixtures/license_analyzer_licenses/esaml-bsd-2-clause +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2013, Alex Wilson and the University of Queensland -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * 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. - -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 HOLDER 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. diff --git a/spec/fixtures/license_analyzer_licenses/gen_smtp-BSD-2-clause b/spec/fixtures/license_analyzer_licenses/gen_smtp-BSD-2-clause deleted file mode 100644 index 07533c9e..00000000 --- a/spec/fixtures/license_analyzer_licenses/gen_smtp-BSD-2-clause +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2009-2011 Andrew Thompson . 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. - -THIS SOFTWARE IS PROVIDED BY THE PROJECT ``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 PROJECT 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. - diff --git a/spec/fixtures/license_analyzer_licenses/gproc-eplicense b/spec/fixtures/license_analyzer_licenses/gproc-eplicense deleted file mode 100644 index 5961ccf4..00000000 --- a/spec/fixtures/license_analyzer_licenses/gproc-eplicense +++ /dev/null @@ -1,288 +0,0 @@ - -ERLANG PUBLIC LICENSE -Version 1.1 - -1. Definitions. - -1.1. ``Contributor`` means each entity that creates or contributes to -the creation of Modifications. - -1.2. ``Contributor Version`` means the combination of the Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor. - -1.3. ``Covered Code`` means the Original Code or Modifications or the -combination of the Original Code and Modifications, in each case -including portions thereof. - -1.4. ``Electronic Distribution Mechanism`` means a mechanism generally -accepted in the software development community for the electronic -transfer of data. - -1.5. ``Executable`` means Covered Code in any form other than Source -Code. - -1.6. ``Initial Developer`` means the individual or entity identified -as the Initial Developer in the Source Code notice required by Exhibit -A. - -1.7. ``Larger Work`` means a work which combines Covered Code or -portions thereof with code not governed by the terms of this License. - -1.8. ``License`` means this document. - -1.9. ``Modifications`` means any addition to or deletion from the -substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a -Modification is: - -A. Any addition to or deletion from the contents of a file containing - Original Code or previous Modifications. - -B. Any new file that contains any part of the Original Code or - previous Modifications. - -1.10. ``Original Code`` means Source Code of computer software code -which is described in the Source Code notice required by Exhibit A as -Original Code, and which, at the time of its release under this -License is not already Covered Code governed by this License. - -1.11. ``Source Code`` means the preferred form of the Covered Code for -making modifications to it, including all modules it contains, plus -any associated interface definition files, scripts used to control -compilation and installation of an Executable, or a list of source -code differential comparisons against either the Original Code or -another well known, available Covered Code of the Contributor`s -choice. The Source Code can be in a compressed or archival form, -provided the appropriate decompression or de-archiving software is -widely available for no charge. - -1.12. ``You`` means an individual or a legal entity exercising rights -under, and complying with all of the terms of, this License. For legal -entities,``You`` includes any entity which controls, is controlled by, -or is under common control with You. For purposes of this definition, -``control`` means (a) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (b) ownership of fifty percent (50%) or more of the -outstanding shares or beneficial ownership of such entity. - -2. Source Code License. - -2.1. The Initial Developer Grant. -The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: - -(a) to use, reproduce, modify, display, perform, sublicense and - distribute the Original Code (or portions thereof) with or without - Modifications, or as part of a Larger Work; and - -(b) under patents now or hereafter owned or controlled by Initial - Developer, to make, have made, use and sell (``Utilize``) the - Original Code (or portions thereof), but solely to the extent that - any such patent is reasonably necessary to enable You to Utilize - the Original Code (or portions thereof) and not to any greater - extent that may be necessary to Utilize further Modifications or - combinations. - -2.2. Contributor Grant. -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property -claims: - -(a) to use, reproduce, modify, display, perform, sublicense and - distribute the Modifications created by such Contributor (or - portions thereof) either on an unmodified basis, with other - Modifications, as Covered Code or as part of a Larger Work; and - -(b) under patents now or hereafter owned or controlled by Contributor, - to Utilize the Contributor Version (or portions thereof), but - solely to the extent that any such patent is reasonably necessary - to enable You to Utilize the Contributor Version (or portions - thereof), and not to any greater extent that may be necessary to - Utilize further Modifications or combinations. - -3. Distribution Obligations. - -3.1. Application of License. -The Modifications which You contribute are governed by the terms of -this License, including without limitation Section 2.2. The Source -Code version of Covered Code may be distributed only under the terms -of this License, and You must include a copy of this License with -every copy of the Source Code You distribute. You may not offer or -impose any terms on any Source Code version that alters or restricts -the applicable version of this License or the recipients` rights -hereunder. However, You may include an additional document offering -the additional rights described in Section 3.5. - -3.2. Availability of Source Code. -Any Modification which You contribute must be made available in Source -Code form under the terms of this License either on the same media as -an Executable version or via an accepted Electronic Distribution -Mechanism to anyone to whom you made an Executable version available; -and if made available via Electronic Distribution Mechanism, must -remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a -subsequent version of that particular Modification has been made -available to such recipients. You are responsible for ensuring that -the Source Code version remains available even if the Electronic -Distribution Mechanism is maintained by a third party. - -3.3. Description of Modifications. -You must cause all Covered Code to which you contribute to contain a -file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that -the Modification is derived, directly or indirectly, from Original -Code provided by the Initial Developer and including the name of the -Initial Developer in (a) the Source Code, and (b) in any notice in an -Executable version or related documentation in which You describe the -origin or ownership of the Covered Code. - -3.4. Intellectual Property Matters - -(a) Third Party Claims. - If You have knowledge that a party claims an intellectual property - right in particular functionality or code (or its utilization - under this License), you must include a text file with the source - code distribution titled ``LEGAL`` which describes the claim and - the party making the claim in sufficient detail that a recipient - will know whom to contact. If you obtain such knowledge after You - make Your Modification available as described in Section 3.2, You - shall promptly modify the LEGAL file in all copies You make - available thereafter and shall take other steps (such as notifying - appropriate mailing lists or newsgroups) reasonably calculated to - inform those who received the Covered Code that new knowledge has - been obtained. - -(b) Contributor APIs. - If Your Modification is an application programming interface and - You own or control patents which are reasonably necessary to - implement that API, you must also include this information in the - LEGAL file. - -3.5. Required Notices. -You must duplicate the notice in Exhibit A in each file of the Source -Code, and this License in any documentation for the Source Code, where -You describe recipients` rights relating to Covered Code. If You -created one or more Modification(s), You may add your name as a -Contributor to the notice described in Exhibit A. If it is not -possible to put such notice in a particular Source Code file due to -its structure, then you must include such notice in a location (such -as a relevant directory file) where a user would be likely to look for -such a notice. You may choose to offer, and to charge a fee for, -warranty, support, indemnity or liability obligations to one or more -recipients of Covered Code. However, You may do so only on Your own -behalf, and not on behalf of the Initial Developer or any -Contributor. You must make it absolutely clear than any such warranty, -support, indemnity or liability obligation is offered by You alone, -and You hereby agree to indemnify the Initial Developer and every -Contributor for any liability incurred by the Initial Developer or -such Contributor as a result of warranty, support, indemnity or -liability terms You offer. - -3.6. Distribution of Executable Versions. -You may distribute Covered Code in Executable form only if the -requirements of Section 3.1-3.5 have been met for that Covered Code, -and if You include a notice stating that the Source Code version of -the Covered Code is available under the terms of this License, -including a description of how and where You have fulfilled the -obligations of Section 3.2. The notice must be conspicuously included -in any notice in an Executable version, related documentation or -collateral in which You describe recipients` rights relating to the -Covered Code. You may distribute the Executable version of Covered -Code under a license of Your choice, which may contain terms different -from this License, provided that You are in compliance with the terms -of this License and that the license for the Executable version does -not attempt to limit or alter the recipient`s rights in the Source -Code version from the rights set forth in this License. If You -distribute the Executable version under a different license You must -make it absolutely clear that any terms which differ from this License -are offered by You alone, not by the Initial Developer or any -Contributor. You hereby agree to indemnify the Initial Developer and -every Contributor for any liability incurred by the Initial Developer -or such Contributor as a result of any such terms You offer. - -3.7. Larger Works. -You may create a Larger Work by combining Covered Code with other code -not governed by the terms of this License and distribute the Larger -Work as a single product. In such a case, You must make sure the -requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Code due to statute -or regulation then You must: (a) comply with the terms of this License -to the maximum extent possible; and (b) describe the limitations and -the code they affect. Such description must be included in the LEGAL -file described in Section 3.4 and must be included with all -distributions of the Source Code. Except to the extent prohibited by -statute or regulation, such description must be sufficiently detailed -for a recipient of ordinary skill to be able to understand it. - -5. Application of this License. - -This License applies to code to which the Initial Developer has -attached the notice in Exhibit A, and to related Covered Code. - -6. CONNECTION TO MOZILLA PUBLIC LICENSE - -This Erlang License is a derivative work of the Mozilla Public -License, Version 1.0. It contains terms which differ from the Mozilla -Public License, Version 1.0. - -7. DISCLAIMER OF WARRANTY. - -COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN ``AS IS`` BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, -WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF -DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR -NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF -THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE -IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER -CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR -CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART -OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER -EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. -This License and the rights granted hereunder will terminate -automatically if You fail to comply with terms herein and fail to cure -such breach within 30 days of becoming aware of the breach. All -sublicenses to the Covered Code which are properly granted shall -survive any termination of this License. Provisions which, by their -nature, must remain in effect beyond the termination of this License -shall survive. - -9. DISCLAIMER OF LIABILITY -Any utilization of Covered Code shall not cause the Initial Developer -or any Contributor to be liable for any damages (neither direct nor -indirect). - -10. MISCELLANEOUS -This License represents the complete agreement concerning the subject -matter hereof. If any provision is held to be unenforceable, such -provision shall be reformed only to the extent necessary to make it -enforceable. This License shall be construed by and in accordance with -the substantive laws of Sweden. Any dispute, controversy or claim -arising out of or relating to this License, or the breach, termination -or invalidity thereof, shall be subject to the exclusive jurisdiction -of Swedish courts, with the Stockholm City Court as the first -instance. - -EXHIBIT A. - -``The contents of this file are subject to the Erlang Public License, -Version 1.1, (the "License"); you may not use this file except in -compliance with the License. You should have received a copy of the -Erlang Public License along with this software. If not, it can be -retrieved via the world wide web at http://www.erlang.org/. - -Software distributed under the License is distributed on an "AS IS" -basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -the License for the specific language governing rights and limitations -under the License. - -The Initial Developer of the Original Code is Ericsson Utvecklings AB. -Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings -AB. All Rights Reserved.`` - diff --git a/spec/fixtures/license_analyzer_licenses/hoax-apache2-short b/spec/fixtures/license_analyzer_licenses/hoax-apache2-short deleted file mode 100644 index 858392ea..00000000 --- a/spec/fixtures/license_analyzer_licenses/hoax-apache2-short +++ /dev/null @@ -1,13 +0,0 @@ - Copyright 2013 Matthew A. Campbell - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/spec/fixtures/license_analyzer_licenses/recon-bsd-3-clause-alt-format b/spec/fixtures/license_analyzer_licenses/recon-bsd-3-clause-alt-format deleted file mode 100644 index 0d37c318..00000000 --- a/spec/fixtures/license_analyzer_licenses/recon-bsd-3-clause-alt-format +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2012-2016, Frédéric Trottier-Hébert -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - 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. - - 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 HOLDER 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. diff --git a/spec/fixtures/license_analyzer_licenses/spf13-afero-apache2 b/spec/fixtures/license_analyzer_licenses/spf13-afero-apache2 deleted file mode 100644 index 298f0e26..00000000 --- a/spec/fixtures/license_analyzer_licenses/spf13-afero-apache2 +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/spec/fixtures/manual/random/COPYING b/spec/fixtures/mix/deps/earmark/.fetch similarity index 100% rename from spec/fixtures/manual/random/COPYING rename to spec/fixtures/mix/deps/earmark/.fetch diff --git a/spec/fixtures/mix/deps/earmark/.hex b/spec/fixtures/mix/deps/earmark/.hex new file mode 100644 index 00000000..2c7d9ede --- /dev/null +++ b/spec/fixtures/mix/deps/earmark/.hex @@ -0,0 +1,2 @@ +earmark,1.2.5,4d21980d5d2862a2e13ec3c49ad9ad783ffc7ca5769cf6ff891a4553fbaae761,hexpm +mix \ No newline at end of file diff --git a/spec/fixtures/mix/deps/earmark/README.md b/spec/fixtures/mix/deps/earmark/README.md new file mode 100644 index 00000000..950dd778 --- /dev/null +++ b/spec/fixtures/mix/deps/earmark/README.md @@ -0,0 +1,762 @@ + +# Earmark—A Pure Elixir Markdown Processor + +[![Build Status](https://travis-ci.org/pragdave/earmark.svg?branch=master)](https://travis-ci.org/pragdave/earmark) +[![Hex.pm](https://img.shields.io/hexpm/v/earmark.svg)](https://hex.pm/packages/earmark) +[![Hex.pm](https://img.shields.io/hexpm/dw/earmark.svg)](https://hex.pm/packages/earmark) +[![Hex.pm](https://img.shields.io/hexpm/dt/earmark.svg)](https://hex.pm/packages/earmark) + + +## Dependency + + { :earmark, "> x.y.z" } + +## Usage + +### API + + * `Earmark.as_html` + {:ok, html_doc, []} = Earmark.as_html(markdown) + {:error, html_doc, error_messages} = Earmark.as_html(markdown) + + * `Earmark.as_html!` + html_doc = Earmark.as_html!(markdown, options) + + Any error messages are printed to _stderr_. + +#### Options: +# +Options can be passed into `as_html` or `as_html!` according to the documentation. + + html_doc = Earmark.as_html!(markdown) + + html_doc = Earmark.as_html!(markdown, options) + +Formats the error_messages returned by `as_html` and adds the filename to each. +Then prints them to stderr and just returns the html_doc + +### Command line + + $ mix escript.build + $ ./earmark file.md + +Some options defined in the `Earmark.Options` struct can be specified as command line switches. + +Use + + $ ./earmark --help + +to find out more, but here is a short example + + $ ./earmark --smartypants false --code-class-prefix "a- b-" file.md + +will call + + Earmark.as_html!( ..., %Earmark.Options{smartypants: false, code_class_prefix: "a- b-"}) + + +## Supports + +Standard [Gruber markdown][gruber]. + +[gruber]: + +## Extensions + +### Github Flavored Markdown + + +GFM is supported by default, however as GFM is a moving target and all GFM extension do not make sense in a general context, Earmark does not support all of it, here is a list of what is supported: + +* StrikeThrough + + iex(13)> Earmark.as_html! ["~~hello~~"] + "

hello

\n" + +* Syntax Highlighting + +The generated code blocks have a corresponding `class` attribute: + + + + iex(11)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] + "
   [] |> Enum.into(%{})
\n" + + +which can be customized with the `code_class_prefix` option + + + iex(12)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] , %Earmark.Options{code_class_prefix: "lang-"} + "
   [] |> Enum.into(%{})
\n" + + + +* Tables + +Are supported as long as they are preceded by an empty line. + + State | Abbrev | Capital + ----: | :----: | ------- + Texas | TX | Austin + Maine | ME | Augusta + +Tables may have leading and trailing vertical bars on each line + + | State | Abbrev | Capital | + | ----: | :----: | ------- | + | Texas | TX | Austin | + | Maine | ME | Augusta | + +Tables need not have headers, in which case all column alignments +default to left. + + | Texas | TX | Austin | + | Maine | ME | Augusta | + +Currently we assume there are always spaces around interior vertical +bars. It isn't clear what the expectation is. + +### Adding HTML attributes with the IAL extension + +#### To block elements + +HTML attributes can be added to any block-level element. We use +the Kramdown syntax: add the line `{:` _attrs_ `}` following the block. + +_attrs_ can be one or more of: + +* `.className` +* `#id` +* name=value, name="value", or name='value' + +For example: + + # Warning + {: .red} + + Do not turn off the engine + if you are at altitude. + {: .boxed #warning spellcheck="true"} + + +#### To links or images + +It is possible to add IAL attributes to generated links or images in the following +format. + + iex> markdown = "[link](url) {: .classy}" + ...> Earmark.as_html(markdown) + { :ok, "

link

\n", []} + + +For both cases, malformed attributes are ignored and warnings are issued. + + iex> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> Earmark.as_html() + {:error, "

Some text

\n", [{:warning, 2,"Illegal attributes [\"hello\"] ignored in IAL"}]} + +It is possible to escape the IAL in both forms if necessary + + iex> markdown = "[link](url)\\{: .classy}" + ...> Earmark.as_html(markdown) + {:ok, "

link{: .classy}

\n", []} + + +This of course is not necessary in code blocks or text lines +containing an IAL-like string, as in the following example + + iex> markdown = "hello {:world}" + ...> Earmark.as_html!(markdown) + "

hello {:world}

\n" + +## Limitations + +* Block-level HTML is correctly handled only if each HTML + tag appears on its own line. So + +
+
+ hello +
+
+ + will work. However. the following won't + +
+ hello
+ +* John Gruber's tests contain an ambiguity when it comes to + lines that might be the start of a list inside paragraphs. + + One test says that + + This is the text + * of a paragraph + that I wrote + + is a single paragraph. The "*" is not significant. However, another + test has + + * A list item + * an another + + and expects this to be a nested list. But, in reality, the second could just + be the continuation of a paragraph. + + I've chosen always to use the second interpretation—a line that looks like + a list item will always be a list item. + +* Rendering of block and inline elements. + + Block or void HTML elements that are at the absolute beginning of a line end + the preceding paragraph. + + Thusly + + mypara +
+ + Becomes + +

mypara

+
+ + While + + mypara +
+ + will be transformed into + +

mypara +


+ +## Integration + +### Syntax Highlighting + +All backquoted or fenced code blocks with a language string are rendered with the given +language as a _class_ attribute of the _code_ tag. + +For example: + + iex> [ + ...> "```elixir", + ...> " @tag :hello", + ...> "```" + ...> ] |> Earmark.as_html!() + "
 @tag :hello
\n" + +will be rendered as shown in the doctest above. + + +If you want to integrate with a syntax highlighter with different conventions you can add more classes by specifying prefixes that will be +put before the language string. + +Prism.js for example needs a class `language-elixir`. In order to achieve that goal you can add `language-` +as a `code_class_prefix` to `Earmark.Options`. + +In the following example we want more than one additional class, so we add more prefixes. + + Earmark.as_html!(..., %Earmark.Options{code_class_prefix: "lang- language-"}) + +which is rendering + +
...
+
+As for all other options `code_class_prefix` can be passed into the `earmark` executable as follows:
+
+      earmark --code-class-prefix "language- lang-" ...
+
+## Security
+
+  Please be aware that Markdown is not a secure format. It produces
+  HTML from Markdown and HTML. It is your job to sanitize and or
+  filter the output of `Earmark.as_html` if you cannot trust the input
+  and are to serve the produced HTML on the Web.
+
+## Author
+
+Copyright © 2014 Dave Thomas, The Pragmatic Programmers
+@/+pragdave,  dave@pragprog.com
+
+Licensed under the same terms as Elixir, which is Apache 2.0.
+
+
+# Details
+
+Given a markdown document (as either a list of lines or
+a string containing newlines), returns a tuple containing either
+`{:ok, html_doc}`, or `{:error, html_doc, error_messages}`
+Where `html_doc` is an HTML representation of the markdown document and
+`error_messages` is a list of strings representing information concerning
+the errors that occurred during parsing.
+
+The options are a `%Earmark.Options{}` structure:
+
+* `renderer`: ModuleName
+
+  The module used to render the final document. Defaults to
+  `Earmark.HtmlRenderer`
+
+* `gfm`: boolean
+
+  True by default. Turns on the supported Github Flavored Markdown extensions
+
+* `breaks`: boolean
+
+  Only applicable if `gfm` is enabled. Makes all line breaks
+  significant (so every line in the input is a new line in the
+  output.
+
+* `smartypants`: boolean
+
+  Turns on smartypants processing, so quotes become curly, two
+  or three hyphens become en and em dashes, and so on. True by
+  default.
+
+So, to format the document in `original` and disable smartypants,
+you'd call
+
+    alias Earmark.Options
+    Earmark.as_html(original, %Options{smartypants: false})
+
+
+
+
+## Plugins
+
+Plugins are modules that implement a render function. Right now that is `as_html`.
+
+### API
+
+#### Plugin Registration
+
+When invoking `Earmark.as_html(some_md, options)` we can register plugins inside the `plugins` map, where
+each plugin is a value pointed to by the prefix triggering it.
+
+Prefixes are appended to `"$$"` and lines starting by that string will be rendered by the registered plugin.
+
+`%Earmark.Options{plugins: %{"" => CommentPlugin}}` would trigger the `CommentPlugin` for each block of
+lines prefixed by `$$`, while `%Earmark.Options{plugins: %{"cp" => CommentPlugin}}` would do the same for
+blocks of lines prefixed by `$$cp`.
+
+Please see the documentation of `Plugin.define` for a convenience function that helps creating the necessary
+`Earmark.Options` structs for the usage of plugins.
+
+#### Plugin Invocation
+
+`as_html` (or other render functions in the future) is invoked with a list of pairs containing the text
+and line number of the lines in the block. As an example, if our plugin was registered with the default prefix
+of `""` and the markdown to be converted was:
+
+      # Plugin output ahead
+      $$ line one
+      $$
+      $$ line two
+
+`as_html` would be invoked as follows:
+
+      as_html([{"line one", 2}, {"", 3}, {"line two", 4})
+
+#### Plugin Output
+
+Earmark's render function will invoke the plugin's render function as explained above. It can then integrate the
+return value of the function into the generated rendering output if it complies to the following criteria.
+
+1. It returns a string
+1. It returns a list of strings
+1. It returns a pair of lists containing a list of strings and a list of error/warning tuples.
+Where the tuples are of the form `{:error | :warning, line_number, descriptive_text}`
+
+#### A complete example
+
+      iex> defmodule MyPlug do
+      ...>   def as_html(lines) do
+      ...>     # to demonstrate the three possible return values
+      ...>     case render(lines) do
+      ...>       {[line], []} -> line
+      ...>       {lines, []} -> lines
+      ...>       tuple       -> tuple
+      ...>     end
+      ...>   end
+      ...>
+      ...>   defp render(lines) do
+      ...>     Enum.map(lines, &render_line/1) |> Enum.split_with(&ok?/1)
+      ...>   end
+      ...>
+      ...>   defp render_line({"", _}), do: "
" + ...> defp render_line({"line one", _}), do: "

first line

\n" + ...> defp render_line({line, lnb}), do: {:error, lnb, line} + ...> + ...> defp ok?({_, _, _}), do: false + ...> defp ok?(_), do: true + ...> end + ...> + ...> lines = [ + ...> "# Plugin Ahead", + ...> "$$ line one", + ...> "$$", + ...> "$$ line two", + ...> ] + ...> Earmark.as_html(lines, Earmark.Plugin.define(MyPlug)) + {:error, "

Plugin Ahead

\n

first line

\n
", [{ :error, 4, "line two"}]} + +#### Plugins, reusing Earmark + +As long as you avoid endless recursion there is absolutely no problem to call `Earmark.as_html` in your plugin, consider the following +example in which the plugin will parse markdown and render html verbatim (which is stupid, that is what Earmark already does for you, +but just to demonstrate the possibilities): + + iex> defmodule Again do + ...> def as_html(lines) do + ...> text_lines = Enum.map(lines, fn {str, _} -> str end) + ...> {_, html, errors} = Earmark.as_html(text_lines) + ...> { Enum.join([html | text_lines]), errors } + ...> end + ...> end + ...> lines = [ + ...> "$$a * one", + ...> "$$a * two", + ...> ] + ...> Earmark.as_html(lines, Earmark.Plugin.define({Again, "a"})) + {:ok, "
    \n
  • one\n
  • \n
  • two\n
  • \n
\n* one* two", []} + + +## Contributing + +Pull Requests are happily accepted. + +Please be aware of one _caveat_ when correcting/improving README.md. +Parts of the README.md are automatically generated by the mix task `readme`. +The generated parts are delimited by comment pairs like + + +## Dependency + + { :earmark, "> x.y.z" } + +## Usage + +### API + + * `Earmark.as_html` + {:ok, html_doc, []} = Earmark.as_html(markdown) + {:error, html_doc, error_messages} = Earmark.as_html(markdown) + + * `Earmark.as_html!` + html_doc = Earmark.as_html!(markdown, options) + + Any error messages are printed to _stderr_. + +#### Options: +# +Options can be passed into `as_html` or `as_html!` according to the documentation. + + html_doc = Earmark.as_html!(markdown) + + html_doc = Earmark.as_html!(markdown, options) + +Formats the error_messages returned by `as_html` and adds the filename to each. +Then prints them to stderr and just returns the html_doc + +### Command line + + $ mix escript.build + $ ./earmark file.md + +Some options defined in the `Earmark.Options` struct can be specified as command line switches. + +Use + + $ ./earmark --help + +to find out more, but here is a short example + + $ ./earmark --smartypants false --code-class-prefix "a- b-" file.md + +will call + + Earmark.as_html!( ..., %Earmark.Options{smartypants: false, code_class_prefix: "a- b-"}) + + +## Supports + +Standard [Gruber markdown][gruber]. + +[gruber]: + +## Extensions + +### Github Flavored Markdown + + +GFM is supported by default, however as GFM is a moving target and all GFM extension do not make sense in a general context, Earmark does not support all of it, here is a list of what is supported: + +* StrikeThrough + + iex(13)> Earmark.as_html! ["~~hello~~"] + "

hello

\n" + +* Syntax Highlighting + +The generated code blocks have a corresponding `class` attribute: + + + + iex(11)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] + "
   [] |> Enum.into(%{})
\n" + + +which can be customized with the `code_class_prefix` option + + + iex(12)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] , %Earmark.Options{code_class_prefix: "lang-"} + "
   [] |> Enum.into(%{})
\n" + + + +* Tables + +Are supported as long as they are preceded by an empty line. + + State | Abbrev | Capital + ----: | :----: | ------- + Texas | TX | Austin + Maine | ME | Augusta + +Tables may have leading and trailing vertical bars on each line + + | State | Abbrev | Capital | + | ----: | :----: | ------- | + | Texas | TX | Austin | + | Maine | ME | Augusta | + +Tables need not have headers, in which case all column alignments +default to left. + + | Texas | TX | Austin | + | Maine | ME | Augusta | + +Currently we assume there are always spaces around interior vertical +bars. It isn't clear what the expectation is. + +### Adding HTML attributes with the IAL extension + +#### To block elements + +HTML attributes can be added to any block-level element. We use +the Kramdown syntax: add the line `{:` _attrs_ `}` following the block. + +_attrs_ can be one or more of: + +* `.className` +* `#id` +* name=value, name="value", or name='value' + +For example: + + # Warning + {: .red} + + Do not turn off the engine + if you are at altitude. + {: .boxed #warning spellcheck="true"} + + +#### To links or images + +It is possible to add IAL attributes to generated links or images in the following +format. + + iex> markdown = "[link](url) {: .classy}" + ...> Earmark.as_html(markdown) + { :ok, "

link

\n", []} + + +For both cases, malformed attributes are ignored and warnings are issued. + + iex> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> Earmark.as_html() + {:error, "

Some text

\n", [{:warning, 2,"Illegal attributes [\"hello\"] ignored in IAL"}]} + +It is possible to escape the IAL in both forms if necessary + + iex> markdown = "[link](url)\\{: .classy}" + ...> Earmark.as_html(markdown) + {:ok, "

link{: .classy}

\n", []} + + +This of course is not necessary in code blocks or text lines +containing an IAL-like string, as in the following example + + iex> markdown = "hello {:world}" + ...> Earmark.as_html!(markdown) + "

hello {:world}

\n" + +## Limitations + +* Block-level HTML is correctly handled only if each HTML + tag appears on its own line. So + +
+
+ hello +
+
+ + will work. However. the following won't + +
+ hello
+ +* John Gruber's tests contain an ambiguity when it comes to + lines that might be the start of a list inside paragraphs. + + One test says that + + This is the text + * of a paragraph + that I wrote + + is a single paragraph. The "*" is not significant. However, another + test has + + * A list item + * an another + + and expects this to be a nested list. But, in reality, the second could just + be the continuation of a paragraph. + + I've chosen always to use the second interpretation—a line that looks like + a list item will always be a list item. + +* Rendering of block and inline elements. + + Block or void HTML elements that are at the absolute beginning of a line end + the preceding paragraph. + + Thusly + + mypara +
+ + Becomes + +

mypara

+
+ + While + + mypara +
+ + will be transformed into + +

mypara +


+ +## Integration + +### Syntax Highlighting + +All backquoted or fenced code blocks with a language string are rendered with the given +language as a _class_ attribute of the _code_ tag. + +For example: + + iex> [ + ...> "```elixir", + ...> " @tag :hello", + ...> "```" + ...> ] |> Earmark.as_html!() + "
 @tag :hello
\n" + +will be rendered as shown in the doctest above. + + +If you want to integrate with a syntax highlighter with different conventions you can add more classes by specifying prefixes that will be +put before the language string. + +Prism.js for example needs a class `language-elixir`. In order to achieve that goal you can add `language-` +as a `code_class_prefix` to `Earmark.Options`. + +In the following example we want more than one additional class, so we add more prefixes. + + Earmark.as_html!(..., %Earmark.Options{code_class_prefix: "lang- language-"}) + +which is rendering + +
...
+
+As for all other options `code_class_prefix` can be passed into the `earmark` executable as follows:
+
+      earmark --code-class-prefix "language- lang-" ...
+
+## Security
+
+  Please be aware that Markdown is not a secure format. It produces
+  HTML from Markdown and HTML. It is your job to sanitize and or
+  filter the output of `Earmark.as_html` if you cannot trust the input
+  and are to serve the produced HTML on the Web.
+
+## Author
+
+Copyright © 2014 Dave Thomas, The Pragmatic Programmers
+@/+pragdave,  dave@pragprog.com
+
+Licensed under the same terms as Elixir, which is Apache 2.0.
+    
+    
+
+or
+    
+Given a markdown document (as either a list of lines or
+a string containing newlines), returns a tuple containing either
+`{:ok, html_doc}`, or `{:error, html_doc, error_messages}`
+Where `html_doc` is an HTML representation of the markdown document and
+`error_messages` is a list of strings representing information concerning
+the errors that occurred during parsing.
+
+The options are a `%Earmark.Options{}` structure:
+
+* `renderer`: ModuleName
+
+  The module used to render the final document. Defaults to
+  `Earmark.HtmlRenderer`
+
+* `gfm`: boolean
+
+  True by default. Turns on the supported Github Flavored Markdown extensions
+
+* `breaks`: boolean
+
+  Only applicable if `gfm` is enabled. Makes all line breaks
+  significant (so every line in the input is a new line in the
+  output.
+
+* `smartypants`: boolean
+
+  Turns on smartypants processing, so quotes become curly, two
+  or three hyphens become en and em dashes, and so on. True by
+  default.
+
+So, to format the document in `original` and disable smartypants,
+you'd call
+
+    alias Earmark.Options
+    Earmark.as_html(original, %Options{smartypants: false})
+
+    
+    
+
+Please modify the associated docstrings instead.
+
+## Author
+
+Copyright © 2014 Dave Thomas, The Pragmatic Programmers
+@/+pragdave,  dave@pragprog.com
+
+# LICENSE
+
+Same as Elixir, which is Apache License v2.0. Please refer to [LICENSE](LICENSE) for details.
+
+SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/hex_metadata.config b/spec/fixtures/mix/deps/earmark/hex_metadata.config
new file mode 100644
index 00000000..9b1135be
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/hex_metadata.config
@@ -0,0 +1,35 @@
+{<<"app">>,<<"earmark">>}.
+{<<"build_tools">>,[<<"mix">>]}.
+{<<"description">>,
+ <<"Earmark is a pure-Elixir Markdown converter.\n\nIt is intended to be used as a library (just call Earmark.as_html),\nbut can also be used as a command-line tool (run mix escript.build\nfirst).\n\nOutput generation is pluggable.">>}.
+{<<"elixir">>,<<"~> 1.4">>}.
+{<<"files">>,
+ [<<"lib">>,<<"lib/earmark">>,<<"lib/earmark.ex">>,<<"lib/earmark/block.ex">>,
+  <<"lib/earmark/cli.ex">>,<<"lib/earmark/context.ex">>,
+  <<"lib/earmark/error.ex">>,<<"lib/earmark/helpers">>,
+  <<"lib/earmark/helpers.ex">>,<<"lib/earmark/helpers/attr_parser.ex">>,
+  <<"lib/earmark/helpers/html_helpers.ex">>,
+  <<"lib/earmark/helpers/leex_helpers.ex">>,
+  <<"lib/earmark/helpers/line_helpers.ex">>,
+  <<"lib/earmark/helpers/link_parser.ex">>,
+  <<"lib/earmark/helpers/lookahead_helpers.ex">>,
+  <<"lib/earmark/helpers/reparse_helpers.ex">>,
+  <<"lib/earmark/helpers/string_helpers.ex">>,
+  <<"lib/earmark/helpers/yecc_helpers.ex">>,
+  <<"lib/earmark/html_renderer.ex">>,<<"lib/earmark/inline.ex">>,
+  <<"lib/earmark/line.ex">>,<<"lib/earmark/message.ex">>,
+  <<"lib/earmark/options.ex">>,<<"lib/earmark/parser.ex">>,
+  <<"lib/earmark/plugin.ex">>,<<"lib/earmark/scanner.ex">>,
+  <<"lib/earmark/types.ex">>,<<"src">>,<<"src/link_text_lexer.erl">>,
+  <<"src/link_text_lexer.xrl">>,<<"src/link_text_parser.erl">>,
+  <<"src/link_text_parser.yrl">>,<<"src/string_lexer.erl">>,
+  <<"src/string_lexer.xrl">>,<<"tasks">>,<<"tasks/docs.exs">>,
+  <<"tasks/readme.exs">>,<<"mix.exs">>,<<"README.md">>]}.
+{<<"licenses">>,[<<"Apache 2 (see the file LICENSE for details)">>]}.
+{<<"links">>,[{<<"GitHub">>,<<"https://github.com/pragdave/earmark">>}]}.
+{<<"maintainers">>,
+ [<<"Robert Dober ">>,
+  <<"Dave Thomas ">>]}.
+{<<"name">>,<<"earmark">>}.
+{<<"requirements">>,[]}.
+{<<"version">>,<<"1.2.5">>}.
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark.ex b/spec/fixtures/mix/deps/earmark/lib/earmark.ex
new file mode 100644
index 00000000..d0985328
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark.ex
@@ -0,0 +1,399 @@
+defmodule Earmark do
+
+  @moduledoc """
+
+  ## Dependency
+
+      { :earmark, "> x.y.z" }
+
+  ## Usage
+
+  ### API
+
+      * `Earmark.as_html`
+        {:ok, html_doc, []}                = Earmark.as_html(markdown)
+        {:error, html_doc, error_messages} = Earmark.as_html(markdown)
+
+      * `Earmark.as_html!`
+        html_doc = Earmark.as_html!(markdown, options)
+
+        Any error messages are printed to _stderr_.
+
+  #### Options:
+  #
+  Options can be passed into `as_html` or `as_html!` according to the documentation.
+
+        html_doc = Earmark.as_html!(markdown)
+
+        html_doc = Earmark.as_html!(markdown, options)
+
+  Formats the error_messages returned by `as_html` and adds the filename to each.
+  Then prints them to stderr and just returns the html_doc
+
+  ### Command line
+
+      $ mix escript.build
+      $ ./earmark file.md
+
+  Some options defined in the `Earmark.Options` struct can be specified as command line switches.
+
+  Use
+
+      $ ./earmark --help
+
+  to find out more, but here is a short example
+
+      $ ./earmark --smartypants false --code-class-prefix "a- b-" file.md
+
+  will call
+
+      Earmark.as_html!( ..., %Earmark.Options{smartypants: false, code_class_prefix: "a- b-"})
+
+
+  ## Supports
+
+  Standard [Gruber markdown][gruber].
+
+  [gruber]: 
+
+  ## Extensions
+
+  ### Github Flavored Markdown
+
+
+  GFM is supported by default, however as GFM is a moving target and all GFM extension do not make sense in a general context, Earmark does not support all of it, here is a list of what is supported:
+
+  * StrikeThrough
+
+        iex(13)> Earmark.as_html! ["~~hello~~"]
+        "

hello

\\n" + + * Syntax Highlighting + + The generated code blocks have a corresponding `class` attribute: + + + + iex(11)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] + "
   [] |> Enum.into(%{})
\\n" + + + which can be customized with the `code_class_prefix` option + + + iex(12)> Earmark.as_html! ["```elixir", " [] |> Enum.into(%{})", "```"] , %Earmark.Options{code_class_prefix: "lang-"} + "
   [] |> Enum.into(%{})
\\n" + + + + * Tables + + Are supported as long as they are preceded by an empty line. + + State | Abbrev | Capital + ----: | :----: | ------- + Texas | TX | Austin + Maine | ME | Augusta + + Tables may have leading and trailing vertical bars on each line + + | State | Abbrev | Capital | + | ----: | :----: | ------- | + | Texas | TX | Austin | + | Maine | ME | Augusta | + + Tables need not have headers, in which case all column alignments + default to left. + + | Texas | TX | Austin | + | Maine | ME | Augusta | + + Currently we assume there are always spaces around interior vertical + bars. It isn't clear what the expectation is. + + ### Adding HTML attributes with the IAL extension + + #### To block elements + + HTML attributes can be added to any block-level element. We use + the Kramdown syntax: add the line `{:` _attrs_ `}` following the block. + + _attrs_ can be one or more of: + + * `.className` + * `#id` + * name=value, name="value", or name='value' + + For example: + + # Warning + {: .red} + + Do not turn off the engine + if you are at altitude. + {: .boxed #warning spellcheck="true"} + + + #### To links or images + + It is possible to add IAL attributes to generated links or images in the following + format. + + iex> markdown = "[link](url) {: .classy}" + ...> Earmark.as_html(markdown) + { :ok, "

link

\\n", []} + + + For both cases, malformed attributes are ignored and warnings are issued. + + iex> [ "Some text", "{:hello}" ] |> Enum.join("\\n") |> Earmark.as_html() + {:error, "

Some text

\\n", [{:warning, 2,"Illegal attributes [\\"hello\\"] ignored in IAL"}]} + + It is possible to escape the IAL in both forms if necessary + + iex> markdown = "[link](url)\\\\{: .classy}" + ...> Earmark.as_html(markdown) + {:ok, "

link{: .classy}

\\n", []} + + + This of course is not necessary in code blocks or text lines + containing an IAL-like string, as in the following example + + iex> markdown = "hello {:world}" + ...> Earmark.as_html!(markdown) + "

hello {:world}

\\n" + + ## Limitations + + * Block-level HTML is correctly handled only if each HTML + tag appears on its own line. So + +
+
+ hello +
+
+ + will work. However. the following won't + +
+ hello
+ + * John Gruber's tests contain an ambiguity when it comes to + lines that might be the start of a list inside paragraphs. + + One test says that + + This is the text + * of a paragraph + that I wrote + + is a single paragraph. The "*" is not significant. However, another + test has + + * A list item + * an another + + and expects this to be a nested list. But, in reality, the second could just + be the continuation of a paragraph. + + I've chosen always to use the second interpretation—a line that looks like + a list item will always be a list item. + + * Rendering of block and inline elements. + + Block or void HTML elements that are at the absolute beginning of a line end + the preceding paragraph. + + Thusly + + mypara +
+ + Becomes + +

mypara

+
+ + While + + mypara +
+ + will be transformed into + +

mypara +


+ + ## Integration + + ### Syntax Highlighting + + All backquoted or fenced code blocks with a language string are rendered with the given + language as a _class_ attribute of the _code_ tag. + + For example: + + iex> [ + ...> "```elixir", + ...> " @tag :hello", + ...> "```" + ...> ] |> Earmark.as_html!() + "
 @tag :hello
\\n" + + will be rendered as shown in the doctest above. + + + If you want to integrate with a syntax highlighter with different conventions you can add more classes by specifying prefixes that will be + put before the language string. + + Prism.js for example needs a class `language-elixir`. In order to achieve that goal you can add `language-` + as a `code_class_prefix` to `Earmark.Options`. + + In the following example we want more than one additional class, so we add more prefixes. + + Earmark.as_html!(..., %Earmark.Options{code_class_prefix: "lang- language-"}) + + which is rendering + +
...
+
+  As for all other options `code_class_prefix` can be passed into the `earmark` executable as follows:
+
+        earmark --code-class-prefix "language- lang-" ...
+
+  ## Security
+
+    Please be aware that Markdown is not a secure format. It produces
+    HTML from Markdown and HTML. It is your job to sanitize and or
+    filter the output of `Earmark.as_html` if you cannot trust the input
+    and are to serve the produced HTML on the Web.
+
+  ## Author
+
+  Copyright © 2014 Dave Thomas, The Pragmatic Programmers
+  @/+pragdave,  dave@pragprog.com
+
+  Licensed under the same terms as Elixir, which is Apache 2.0.
+  """
+
+  alias Earmark.Options
+  import Earmark.Message, only: [emit_messages: 1, sort_messages: 1]
+
+  @doc """
+  Given a markdown document (as either a list of lines or
+  a string containing newlines), returns a tuple containing either
+  `{:ok, html_doc}`, or `{:error, html_doc, error_messages}`
+  Where `html_doc` is an HTML representation of the markdown document and
+  `error_messages` is a list of strings representing information concerning
+  the errors that occurred during parsing.
+
+  The options are a `%Earmark.Options{}` structure:
+
+  * `renderer`: ModuleName
+
+    The module used to render the final document. Defaults to
+    `Earmark.HtmlRenderer`
+
+  * `gfm`: boolean
+
+    True by default. Turns on the supported Github Flavored Markdown extensions
+
+  * `breaks`: boolean
+
+    Only applicable if `gfm` is enabled. Makes all line breaks
+    significant (so every line in the input is a new line in the
+    output.
+
+  * `smartypants`: boolean
+
+    Turns on smartypants processing, so quotes become curly, two
+    or three hyphens become en and em dashes, and so on. True by
+    default.
+
+  So, to format the document in `original` and disable smartypants,
+  you'd call
+
+      alias Earmark.Options
+      Earmark.as_html(original, %Options{smartypants: false})
+
+  """
+  def as_html(lines, options \\ %Options{}) do
+    {context, html} = _as_html(lines, options)
+    case sort_messages(context) do
+      []       -> {:ok, html, []}
+      messages -> {:error, html, messages}
+    end
+  end
+
+  @doc """
+  A convenience method that *always* returns an HTML representation of the markdown document passed in.
+  In case of the presence of any error messages they are prinetd to stderr.
+
+  Otherwise it behaves exactly as `as_html`.
+  """
+  def as_html!(lines, options \\ %Options{})
+  def as_html!(lines, options = %Options{}) do
+    {context, html} = _as_html(lines, options)
+    emit_messages(context)
+    html
+  end
+
+  defp _as_html(lines, options) do
+    {blocks, context} = parse(lines, options)
+    case blocks do
+      [] -> {context, ""}
+      _  -> options.renderer.render(blocks, context)
+    end
+  end
+
+  @doc """
+  Given a markdown document (as either a list of lines or
+  a string containing newlines), return a parse tree and
+  the context necessary to render the tree.
+
+  The options are a `%Earmark.Options{}` structure. See `as_html!`
+  for more details.
+  """
+
+  def parse(lines, options \\ %Earmark.Options{})
+  def parse(lines, options = %Options{mapper: mapper}) when is_list(lines) do
+    { blocks, links, options1 } = Earmark.Parser.parse(lines, options, false)
+
+    context = %Earmark.Context{options: options1, links: links }
+              |> Earmark.Context.update_context()
+
+    if options.footnotes do
+      { blocks, footnotes, options1 } = Earmark.Parser.handle_footnotes(blocks, context.options, mapper)
+      context =
+        put_in(context.footnotes, footnotes)
+      context =
+        put_in(context.options, options1)
+      { blocks, context }
+    else
+      { blocks, context }
+    end
+  end
+  def parse(lines, options) when is_binary(lines) do
+    lines
+    |> String.split(~r{\r\n?|\n})
+    |> parse(options)
+  end
+
+  @doc """
+    Accesses current hex version of the `Earmark` application. Convenience for
+    `iex` usage.
+  """
+  def version() do
+    with {:ok, version} = :application.get_key(:earmark, :vsn), do: version
+  end
+
+  @doc false
+  def pmap(collection, func) do
+   collection
+    |> Enum.map(fn item -> Task.async(fn -> func.(item) end) end)
+    |> Enum.map(&Task.await/1)
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/block.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/block.ex
new file mode 100644
index 00000000..5cd9bfde
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/block.ex
@@ -0,0 +1,574 @@
+defmodule Earmark.Block do
+
+  # import Tools.Tracer
+  use Earmark.Types
+  import Earmark.Helpers.LookaheadHelpers, only: [opens_inline_code: 1, still_inline_code: 2, read_list_lines: 3]
+  import Earmark.Helpers.LineHelpers
+  import Earmark.Helpers.AttrParser
+  import Earmark.Helpers.ReparseHelpers
+  import Earmark.Message, only: [add_message: 2, add_messages: 2]
+
+  @moduledoc """
+  Given a list of parsed lines, convert them into blocks.
+  That list of blocks is the final representation of the
+  document (in internal form).
+  """
+
+  alias Earmark.Line
+  alias Earmark.Parser
+  alias Earmark.Options
+
+  defmodule Heading,     do: defstruct lnb: 0, attrs: nil, content: nil, level: nil
+  defmodule Ruler,       do: defstruct lnb: 0, attrs: nil, type: nil
+  defmodule BlockQuote,  do: defstruct lnb: 0, attrs: nil, blocks: []
+  defmodule Para,        do: defstruct lnb: 0, attrs: nil, lines:  []
+  defmodule Code,        do: defstruct lnb: 0, attrs: nil, lines:  [], language: nil
+  defmodule Html,        do: defstruct lnb: 0, attrs: nil, html:   [], tag: nil
+  defmodule HtmlOther,   do: defstruct lnb: 0, attrs: nil, html:   []
+  defmodule IdDef,       do: defstruct lnb: 0, attrs: nil, id: nil, url: nil, title: nil
+  defmodule FnDef,       do: defstruct lnb: 0, attrs: nil, id: nil, number: nil, blocks: []
+  defmodule FnList,      do: defstruct lnb: 0, attrs: ".footnotes", blocks: []
+  defmodule Ial,         do: defstruct lnb: 0, attrs: nil, content: nil, verbatim: ""
+  # List does not need line number
+  defmodule List,        do: defstruct lnb: 1, attrs: nil, type: :ul, blocks:  [], start: ""
+  defmodule ListItem,    do: defstruct lnb: 0, attrs: nil, type: :ul, spaced: true, blocks: [], bullet: ""
+
+  defmodule Plugin,      do: defstruct lnb: 0, attrs: nil, lines: [], handler: nil, prefix: "" # prefix is appended to $$
+
+  defmodule Table do
+    defstruct lnb: 0, attrs: nil, rows: [], header: nil, alignments: []
+
+    def new_for_columns(n) do
+      %__MODULE__{alignments: Elixir.List.duplicate(:left, n)}
+    end
+  end
+
+  @type t :: %Heading{} | %Ruler{} | %BlockQuote{} | %List{} | %ListItem{} | %Para{} | %Code{} | %Html{} | %HtmlOther{} | %IdDef{} | %FnDef{} | %FnList{} | %Ial{} | %Table{}
+  @type ts :: list(t)
+
+  @doc false
+  # Given a list of `Line.xxx` structs, group them into related blocks.
+  # Then extract any id definitions, and build a map from them. Not
+  # for external consumption.
+
+  def parse(lines, options) do
+    {blocks, options} = lines |> remove_trailing_blank_lines() |> lines_to_blocks(options)
+    links  = links_from_blocks(blocks)
+    {blocks, links, options}
+  end
+
+  @doc false
+  # Public to allow easier testing
+  def lines_to_blocks(lines, options) do
+    with {blocks, options1} <- lines |> _parse([], options) do
+      { blocks |> assign_attributes_to_blocks([]) |> consolidate_list_items([]), options1 }
+    end
+  end
+
+
+  defp _parse([], result, options), do: {result, options}
+
+  ###################
+  # setext headings #
+  ###################
+
+  defp _parse([  %Line.Blank{},
+                %Line.Text{content: heading, lnb: lnb},
+                %Line.SetextUnderlineHeading{level: level}
+
+             |
+                rest
+             ], result, options) do
+
+    _parse(rest, [ %Heading{content: heading, level: level, lnb: lnb} | result ], options)
+  end
+
+  defp _parse([  %Line.Blank{},
+                %Line.Text{content: heading, lnb: lnb},
+                %Line.Ruler{type: "-"}
+             |
+                rest
+             ], result, options) do
+
+    _parse(rest, [ %Heading{content: heading, level: 2, lnb: lnb} | result ], options)
+  end
+
+  #################
+  # Other heading #
+  #################
+
+  defp _parse([ %Line.Heading{content: content, level: level, lnb: lnb} | rest ], result, options) do
+    _parse(rest, [ %Heading{content: content, level: level, lnb: lnb} | result ], options)
+  end
+
+  #########
+  # Ruler #
+  #########
+
+  defp _parse([ %Line.Ruler{type: type, lnb: lnb} | rest], result, options) do
+    _parse(rest, [ %Ruler{type: type, lnb: lnb} | result ], options)
+  end
+
+  ###############
+  # Block Quote #
+  ###############
+
+  defp _parse( lines = [ %Line.BlockQuote{lnb: lnb} | _ ], result, options) do
+    {quote_lines, rest} = Enum.split_while(lines, &blockquote_or_text?/1)
+    lines = for line <- quote_lines, do: line.content
+    {blocks, _, options1} = Parser.parse(lines, %{options | line: lnb}, true)
+    _parse(rest, [ %BlockQuote{blocks: blocks, lnb: lnb} | result ], options1)
+  end
+
+  #########
+  # Table #
+  #########
+
+  defp _parse( lines = [ %Line.TableLine{columns: cols1, lnb: lnb1},
+                        %Line.TableLine{columns: cols2}
+                      | _rest
+                      ], result, options)
+  when length(cols1) == length(cols2)
+  do
+    columns = length(cols1)
+    { table, rest } = read_table(lines, columns, Table.new_for_columns(columns))
+    table1          = %{table | lnb: lnb1}
+    _parse(rest, [ table1 | result ], options)
+  end
+
+  #############
+  # Paragraph #
+  #############
+
+  defp _parse( lines = [ %Line.TableLine{lnb: lnb} | _ ], result, options) do
+    {para_lines, rest} = Enum.split_while(lines, &text?/1)
+    line_text = (for line <- para_lines, do: line.line)
+    _parse(rest, [ %Para{lines: line_text, lnb: lnb + 1} | result ], options)
+  end
+
+  defp _parse( lines = [ %Line.Text{lnb: lnb} | _ ], result, options)
+  do
+    {reversed_para_lines, rest, pending} = consolidate_para(lines)
+
+    options1 =
+      case pending do
+        {nil, _} -> options
+        {pending, lnb1} ->
+          add_message(options, {:warning, lnb1, "Closing unclosed backquotes #{pending} at end of input"})
+      end
+
+    line_text = (for line <- (reversed_para_lines |> Enum.reverse), do: line.line)
+    _parse(rest, [ %Para{lines: line_text, lnb: lnb} | result ], options1)
+  end
+
+  #########
+  # Lists #
+  #########
+  # We handle lists in two passes. In the first, we build list items,
+  # in the second we combine adjacent items into lists. This is pass one
+
+  defp _parse( [first = %Line.ListItem{type: type, initial_indent: initial_indent, content: content, bullet: bullet, lnb: lnb} | rest ], result, options) do
+    {spaced, list_lines, rest, _offset, indent_level} = read_list_lines(rest, opens_inline_code(first), initial_indent)
+
+    spaced = (spaced || blank_line_in?(list_lines)) && peek(rest, Line.ListItem, type)
+    lines = for line <- list_lines, do: indent_list_item_body(line, indent_level || 0)
+    lines = [content | lines]
+    {blocks, _, options1} = Parser.parse(lines, %{options | line: lnb}, true)
+
+    _parse([%Line.Blank{lnb: 0} | rest], [ %ListItem{type: type, blocks: blocks, spaced: spaced, bullet: bullet, lnb: lnb} | result ], options1)
+  end
+
+  #################
+  # Indented code #
+  #################
+
+  defp _parse( list = [%Line.Indent{lnb: lnb} | _], result, options) do
+    {code_lines, rest} = Enum.split_while(list, &indent_or_blank?/1)
+    code_lines = remove_trailing_blank_lines(code_lines)
+    code = (for line <- code_lines, do: properly_indent(line, 1))
+    _parse(rest, [ %Code{lines: code, lnb: lnb} | result ], options)
+  end
+
+  ###############
+  # Fenced code #
+  ###############
+
+  defp _parse([%Line.Fence{delimiter: delimiter, language: language, lnb: lnb} | rest], result, options) do
+    {code_lines, rest} = Enum.split_while(rest, fn (line) ->
+      !match?(%Line.Fence{delimiter: ^delimiter, language: _}, line)
+    end)
+    rest = if length(rest) == 0, do: rest, else: tl(rest)
+    code = (for line <- code_lines, do: line.line)
+    _parse(rest, [ %Code{lines: code, language: language, lnb: lnb} | result ], options)
+  end
+
+  ##############
+  # HTML block #
+  ##############
+  defp _parse([ opener = %Line.HtmlOpenTag{tag: tag, lnb: lnb} | rest], result, options) do
+    {html_lines, rest, unclosed} = html_match_to_closing(opener, rest)
+    options1 = add_messages(options,
+                            unclosed
+                            |> Enum.map(fn %{lnb: lnb1, tag: tag} -> {:warning, lnb1, "Failed to find closing <#{tag}>"} end))
+
+    html = (for line <- Enum.reverse(html_lines), do: line.line)
+    _parse(rest, [ %Html{tag: tag, html: html, lnb: lnb} | result ], options1)
+  end
+
+  ####################
+  # HTML on one line #
+  ####################
+
+  defp _parse([ %Line.HtmlOneLine{line: line, lnb: lnb} | rest], result, options) do
+    _parse(rest, [ %HtmlOther{html: [ line ], lnb: lnb} | result ], options)
+  end
+
+  ################
+  # HTML Comment #
+  ################
+
+  defp _parse([ line = %Line.HtmlComment{complete: true, lnb: lnb} | rest], result, options) do
+    _parse(rest, [ %HtmlOther{html: [ line.line ], lnb: lnb} | result ], options)
+  end
+
+  defp _parse(lines = [ %Line.HtmlComment{complete: false, lnb: lnb} | _], result, options) do
+    {html_lines, rest} = Enum.split_while(lines, fn (line) ->
+      !(line.line =~ ~r/-->/)
+    end)
+    {html_lines, rest} = if length(rest) == 0 do
+      {html_lines, rest}
+    else
+      {html_lines ++ [ hd(rest) ], tl(rest)}
+    end
+    html = (for line <- html_lines, do: line.line)
+    _parse(rest, [ %HtmlOther{html: html, lnb: lnb} | result ], options)
+  end
+
+  #################
+  # ID definition #
+  #################
+
+  # the title may be on the line following the iddef
+  defp _parse( [ defn = %Line.IdDef{title: title, lnb: lnb}, maybe_title | rest ], result, options)
+  when title == nil
+  do
+    title = case maybe_title do
+      %Line.Text{content: content}   ->  Line.matches_id_title(content)
+      _                              ->  nil
+    end
+
+    if title do
+      _parse(rest, [ %IdDef{id: defn.id, url: defn.url, title: title, lnb: lnb} | result], options)
+    else
+      _parse([maybe_title | rest], [ %IdDef{id: defn.id, url: defn.url, lnb: lnb} | result], options)
+    end
+  end
+
+  # or not
+  defp _parse( [ defn = %Line.IdDef{lnb: lnb} | rest ], result, options) do
+    _parse(rest, [ %IdDef{id: defn.id, url: defn.url, title: defn.title, lnb: lnb} | result], options)
+  end
+
+  #######################
+  # Footnote Definition #
+  #######################
+
+  defp _parse( [ defn = %Line.FnDef{id: _id, lnb: lnb} | rest ], result , options) do
+    {para_lines, rest} = Enum.split_while(rest, &text?/1)
+    first_line = %Line.Text{line: defn.content, lnb: lnb}
+    {para, options1} = _parse([ first_line | para_lines ], [], options)
+    {indent_lines, rest} = Enum.split_while(rest, &indent_or_blank?/1)
+    {blocks, _, options2} = remove_trailing_blank_lines(indent_lines)
+                |> Enum.map(&(properly_indent(&1, 1)))
+                |> Parser.parse(%{options1 | line: lnb + 1}, true)
+    blocks = Enum.concat(para, blocks)
+    _parse( rest, [ %FnDef{id: defn.id, blocks: blocks , lnb: lnb} | result ], options2)
+  end
+
+  ####################
+  # IAL (attributes) #
+  ####################
+
+  defp _parse( [ %Line.Ial{attrs: attrs, lnb: lnb, verbatim: verbatim} | rest ], result, options) do
+    {options1, attributes} = parse_attrs( options, attrs, lnb )
+    _parse(rest, [ %Ial{attrs: attributes, content: attrs, lnb: lnb, verbatim: verbatim} | result ], options1)
+  end
+
+  ###############
+  # Blank Lines #
+  ###############
+  # We've reached the point where empty lines are no longer significant
+
+  defp _parse( [ %Line.Blank{} | rest ], result, options) do
+    _parse(rest, result, options)
+  end
+
+  ##########
+  # Plugin #
+  ##########
+
+  defp _parse( lines = [%Line.Plugin{prefix: prefix, lnb: lnb}|_], result, options) do
+    handler =  Options.plugin_for_prefix(options, prefix)
+    {plugin_lines, rest1} = collect_plugin_lines(lines, prefix, [])
+    if handler do
+      _parse(rest1, [%Plugin{handler: handler, prefix: prefix, lines: plugin_lines, lnb: lnb}|result], options)
+    else
+      _parse(rest1, result,
+        add_message(options, {:warning, lnb,  "lines for undefined plugin prefix #{inspect prefix} ignored (#{lnb}..#{lnb + Enum.count(plugin_lines) - 1})"}))
+    end
+  end
+
+  ##############################################################
+  # Anything else... we warn, then treat it as if it were text #
+  ##############################################################
+
+  defp _parse( [ anything = %{lnb: lnb} | rest ], result, options) do
+    _parse( [ %Line.Text{content: anything.line, lnb: lnb} | rest], result,
+      add_message(options, {:warning, anything.lnb, "Unexpected line #{anything.line}"}))
+  end
+
+  #######################################################
+  # Assign attributes that follow a block to that block #
+  #######################################################
+
+  def assign_attributes_to_blocks([], result), do: Enum.reverse(result)
+
+  def assign_attributes_to_blocks([ %Ial{attrs: attrs}, block | rest], result) do
+    assign_attributes_to_blocks(rest, [ %{block | attrs: attrs} | result ])
+  end
+
+  def assign_attributes_to_blocks([ block | rest], result) do
+    assign_attributes_to_blocks(rest, [ block | result ])
+  end
+
+  ############################################################
+  # Consolidate multiline inline code blocks into an element #
+  ############################################################
+  @not_pending {nil, 0}
+  # ([#{},...]) -> {[#{}],[#{}],{'nil' | binary(),number()}}
+  # @spec consolidate_para( ts ) :: { ts, ts, {nil | String.t, number} }
+  defp consolidate_para( lines ), do: _consolidate_para( lines, [], @not_pending )
+
+  defp _consolidate_para( [], result, pending ) do
+    {result, [], pending}
+  end
+
+  defp _consolidate_para( [line | rest] = lines, result, pending ) do
+    case inline_or_text?( line, pending ) do
+      %{pending: still_pending, continue: true} -> _consolidate_para( rest, [line | result], still_pending )
+      _                                         -> {result, lines, @not_pending}
+    end
+
+  end
+
+  ##################################################
+  # Consolidate one or more list items into a list #
+  ##################################################
+
+  defp consolidate_list_items([], result) do
+    result |> Enum.map(&compute_list_spacing/1)  # no need to reverse
+  end
+  # We have a list, and the next element is an item of the same type
+  defp consolidate_list_items(
+    [list = %List{type: type, blocks: items},
+     item = %ListItem{type: type} | rest], result)
+  do
+    start = extract_start(item)
+    items = [ item | items ]   # original list is reversed
+    consolidate_list_items([ %{ list | blocks: items, start: start } | rest ], result)
+  end
+  # We have an item, but no open list
+  defp consolidate_list_items([ item = %ListItem{type: type} | rest], result) do
+    start = extract_start(item)
+    consolidate_list_items([ %List{ type: type, blocks: [ item ], start: start} | rest ], result)
+  end
+  # Nothing to see here, move on
+  defp consolidate_list_items([ head | rest ], result) do
+    consolidate_list_items(rest, [ head | result ])
+  end
+
+  defp compute_list_spacing( list = %List{blocks: items} ) do
+    with spaced = any_spaced_items?(items),
+         unified_items = Enum.map(items, &(%{&1 | spaced: spaced}))
+    do
+      %{list | blocks: unified_items}
+    end
+  end
+  defp compute_list_spacing( anything_else ), do: anything_else # nop
+
+  defp any_spaced_items?([]), do: false
+  defp any_spaced_items?([%{spaced: true}|_]), do: true
+  defp any_spaced_items?([_|tail]), do: any_spaced_items?(tail)
+
+
+  ##################################################
+  # Read in a table (consecutive TableLines with
+  # the same number of columns)
+
+  defp read_table([ %Line.TableLine{columns: cols} | rest ],
+                    col_count,
+                    table = %Table{})
+  when length(cols) == col_count
+  do
+    read_table(rest, col_count, update_in(table.rows, &[ cols | &1 ]))
+  end
+
+  defp read_table( rest, col_count, %Table{rows: rows}) do
+    rows  = Enum.reverse(rows)
+    table = Table.new_for_columns(col_count)
+    table = case look_for_alignments(rows) do
+      nil    -> %Table{table | rows: rows }
+      aligns -> %Table{table | alignments: aligns,
+                               header:     hd(rows),
+                               rows:       tl(tl(rows)) }
+    end
+    { table , [%Line.Blank{lnb: 0} |rest] }
+  end
+
+
+  defp look_for_alignments([ _first, second | _rest ]) do
+    if Enum.all?(second, fn row -> row =~ ~r{^:?-+:?$} end) do
+      second
+      |> Enum.map(fn row -> Regex.replace(~r/-+/, row, "-") end)
+      |> Enum.map(fn row -> case row do
+           ":-:" -> :center
+           ":-"  -> :left
+           "-"   -> :left
+           "-:"  -> :right
+         end
+      end)
+    else
+      nil
+    end
+  end
+
+
+  #####################################################
+  # Traverse the block list and build a list of links #
+  #####################################################
+
+  defp links_from_blocks(blocks) do
+    visit(blocks, Map.new, &link_extractor/2)
+  end
+
+  defp link_extractor(item = %IdDef{id: id}, result) do
+    Map.put(result, String.downcase(id), item)
+  end
+
+  defp link_extractor(_, result), do: result
+
+
+  ##################################
+  # Visitor pattern for each block #
+  ##################################
+
+  defp visit([], result, _func), do: result
+
+  # Structural node BlockQuote -> descend
+  defp visit([ item = %BlockQuote{blocks: blocks} | rest], result, func) do
+    result = func.(item, result)
+    result = visit(blocks, result, func)
+    visit(rest, result, func)
+  end
+
+  # Structural node List -> descend
+  defp visit([ item = %List{blocks: blocks} | rest], result, func) do
+    result = func.(item, result)
+    result = visit(blocks, result, func)
+    visit(rest, result, func)
+  end
+
+  # Structural node ListItem -> descend
+  defp visit([ item = %ListItem{blocks: blocks} | rest], result, func) do
+    result = func.(item, result)
+    result = visit(blocks, result, func)
+    visit(rest, result, func)
+  end
+
+  # Leaf, leaf it alone
+  defp visit([ item | rest], result, func) do
+    result = func.(item, result)
+    visit(rest, result, func)
+  end
+
+  ###################################################################
+  # Consume HTML, taking care of nesting. Assumes one tag per line. #
+  ###################################################################
+
+  defp html_match_to_closing(opener, rest), do: find_closing_tags([opener], rest, [opener])
+
+  # No more open tags, happy case
+  defp find_closing_tags([], rest, html_lines), do: {html_lines, rest, []}
+
+  # run out of input, unhappy case
+  defp find_closing_tags(needed, [], html_lines), do: {html_lines, [], needed}
+
+  # still more lines, still needed closing
+  defp find_closing_tags(needed = [needed_hd|needed_tl], [rest_hd|rest_tl], html_lines) do
+    cond do
+      closes_tag?(rest_hd, needed_hd) -> find_closing_tags(needed_tl, rest_tl, [rest_hd|html_lines])
+      opens_tag?(rest_hd)             -> find_closing_tags([rest_hd|needed], rest_tl, [rest_hd|html_lines])
+      true                            -> find_closing_tags(needed, rest_tl, [rest_hd|html_lines])
+    end
+  end
+
+  ##################
+  # Plugin related #
+  ##################
+
+  defp collect_plugin_lines(lines, prefix, result)
+  defp collect_plugin_lines([], _, result), do: {Enum.reverse(result), []}
+  defp collect_plugin_lines([%Line.Plugin{prefix: prefix, content: content, lnb: lnb} | rest], prefix, result),
+    do: collect_plugin_lines(rest, prefix, [{content, lnb} | result])
+  defp collect_plugin_lines( lines, _, result ), do: {Enum.reverse(result), lines}
+
+  ###########
+  # Helpers #
+  ###########
+
+  defp closes_tag?(%Line.HtmlCloseTag{tag: ctag}, %Line.HtmlOpenTag{tag: otag}), do: ctag == otag
+  defp closes_tag?(_, _), do: false
+
+  defp opens_tag?(%Line.HtmlOpenTag{}), do: true
+  defp opens_tag?(_), do: false
+
+
+  # (_,{'nil' | binary(),number()}) -> #{}jj
+  defp inline_or_text?(line, pending)
+  defp inline_or_text?(line = %Line.Text{}, @not_pending) do
+    pending = opens_inline_code(line)
+    %{pending: pending, continue: true}
+  end
+  defp inline_or_text?(line = %Line.TableLine{}, @not_pending) do
+    pending = opens_inline_code(line)
+    %{pending: pending, continue: true}
+  end
+  defp inline_or_text?( _line, @not_pending), do: %{pending: @not_pending, continue: false}
+  defp inline_or_text?( line, pending ) do
+    pending = still_inline_code(line, pending)
+    %{pending: pending, continue: true}
+  end
+
+
+  defp peek([], _, _), do: false
+  defp peek([head | _], struct, type) do
+    head.__struct__ == struct && head.type == type
+  end
+
+  defp extract_start(%{bullet: "1."}), do: ""
+  defp extract_start(%{bullet: bullet}) do
+    case Regex.run(~r{^(\d+)\.}, bullet) do
+      nil -> ""
+      [_, start] -> ~s{ start="#{start}"}
+    end
+  end
+
+  defp remove_trailing_blank_lines(lines) do
+    lines
+    |> Enum.reverse
+    |> Enum.drop_while(&blank?/1)
+    |> Enum.reverse
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/cli.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/cli.ex
new file mode 100644
index 00000000..d5955bd0
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/cli.ex
@@ -0,0 +1,97 @@
+defmodule Earmark.CLI do
+
+  def main(argv) do
+    argv
+    |> parse_args
+    |> process
+  end
+
+  @args """
+  usage:
+
+     earmark --help
+     earmark --version
+     earmark [ options...  ]
+
+  convert file from Markdown to HTML.
+
+     where options can be any of:
+       -- code_class_prefix -- gfm -- smartypants -- pedantic -- breaks
+
+  """
+
+  @cli_options [:code_class_prefix, :gfm, :smartypants, :pedantic, :breaks]
+
+  defp parse_args(argv) do
+    switches = [
+      help: :boolean,
+      version: :boolean
+      ]
+    aliases = [
+      h: :help,
+      v: :version
+    ]
+
+    parse = OptionParser.parse(argv, switches: switches, aliases: aliases)
+    case  parse  do
+      { [ {switch, true } ],  _, _ } -> switch
+      { options, [ filename ],  _ }  -> {open_file(filename), options}
+      { options, [ ],           _ }  -> {:stdio, options}
+      _                              -> :help
+    end
+  end
+
+
+  defp process(:help) do
+    IO.puts(:stderr, @args)
+    IO.puts(:stderr, option_related_help())
+  end
+
+  defp process(:version) do
+    IO.puts( Earmark.version() )
+  end
+
+  defp process({io_device, options}) do
+    options = struct(Earmark.Options, booleanify(options))
+    content = IO.stream(io_device, :line) |> Enum.to_list
+    Earmark.as_html!(content, options)
+    |> IO.puts
+  end
+
+
+
+  defp booleanify( keywords ), do: Enum.map(keywords, &booleanify_option/1)
+  defp booleanify_option({k, v}) do
+    {k,
+     case Map.get %Earmark.Options{}, k, :does_not_exist do
+        true  -> if v == "false", do: false, else: true
+        false -> if v == "false", do: false, else: true
+        :does_not_exist ->
+          IO.puts( :stderr, "ignoring unsupported option #{inspect k}")
+          v
+        _     -> v
+      end
+    }
+  end
+
+  defp open_file(filename), do: io_device(File.open(filename, [:utf8]), filename)
+
+  defp io_device({:ok, io_device}, _), do: io_device
+  defp io_device({:error, reason}, filename) do
+    IO.puts(:stderr, "#{filename}: #{:file.format_error(reason)}")
+    exit(1)
+  end
+
+  defp option_related_help do
+    @cli_options
+    |> Enum.map(&specific_option_help/1)
+    |> Enum.join("\n")
+  end
+
+  defp specific_option_help( option ) do
+    "      --#{option} defaults to #{inspect(Map.get(%Earmark.Options{}, option))}"
+  end
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/context.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/context.ex
new file mode 100644
index 00000000..be496fc9
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/context.ex
@@ -0,0 +1,151 @@
+defmodule Earmark.Context do
+
+  use Earmark.Types
+  import Earmark.Helpers
+
+  @type t :: %__MODULE__{
+    options: Earmark.Options.t,
+    links: map(),
+    rules: Keyword.t() | nil,
+    footnotes: map(),
+    value: String.t | [String.t]
+  }
+
+  defstruct options:  %Earmark.Options{},
+  links:    Map.new,
+  rules:    nil,
+  footnotes: Map.new,
+  value:    []
+
+  ##############################################################################
+  # Handle adding option specific rules and processors                         #
+  ##############################################################################
+
+  defp noop(text), do: text
+
+  @doc """
+  Convenience method to append to the value list
+  """
+  def append(%__MODULE__{value: value} = ctx, prep), do: %{ctx | value: [value | prep]}
+  @doc """
+  Convenience method to prepend to the value list
+  """
+  def prepend(%__MODULE__{value: value} = ctx, prep), do: %{ctx | value: [prep | value]}
+  @doc """
+  Convenience method to prepend to the value list
+  """
+  def set_value(%__MODULE__{} = ctx, value), do: %{ctx | value: value}
+  @doc """
+  Convenience method to get a context with cleared value and messages
+  """
+  def clear(%__MODULE__{} = ctx) do
+    with empty_value <- set_value(ctx, []) do
+      %{empty_value | options: %{ empty_value.options | messages: []}}
+    end
+  end
+
+  @doc false
+  # this is called by the command line processor to update
+  # the inline-specific rules in light of any options
+  def update_context(context =  %Earmark.Context{options: options}) do
+    context = %{ context | rules: rules_for(options) }
+    context = if options.smartypants do
+      put_in(context.options.do_smartypants, &smartypants/1)
+    else
+      put_in(context.options.do_smartypants, &noop/1)
+    end
+
+    if options.sanitize do
+      put_in(context.options.do_sanitize, &escape/1)
+    else
+      put_in(context.options.do_sanitize, &noop/1)
+    end
+  end
+
+
+  @link_text  ~S{(?:\[[^]]*\]|[^][]|\])*}
+@href       ~S{\s*?(?:\s+['"](.*?)['"])?\s*}  #"
+
+@code ~r{^
+ (`+)		# $1 = Opening run of `
+ (.+?)		# $2 = The code block
+ (?])},
+        autolink: ~r{^<([^ >]+(@|:\/)[^ >]+)>},
+        url:      ~r{\z\A},  # noop
+
+        tag:      ~r{
+          ^ |
+          ^<\/?\w+(?: "[^"<]*" | # < inside an attribute is illegal, luckily
+          '[^'<]*' |
+          [^'"<>])*?>}x,
+
+         inline_ial: ~r<^\s*\{:\s*(.*?)\s*}>,
+         link:       ~r{^!?\[(#{@link_text})\]\(#{@href}\)},
+         reflink:    ~r{^!?\[(#{@link_text})\]\s*\[([^]]*)\]},
+        nolink:     ~r{^!?\[((?:\[[^]]*\]|[^][])*)\]},
+       strong:     ~r{^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)},
+       em:         ~r{^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)},
+       code:       @code,
+       br:         ~r<^ {2,}\n(?!\s*$)>,
+       text:       ~r<^[\s\S]+?(?=[\\,
+
+        strikethrough: ~r{\z\A}   # noop
+      ]
+    end
+
+    defp rules_for(options) do
+      rule_updates = if options.gfm do
+        rules = [
+          escape:        ~r{^\\([\\`*\{\}\[\]()\#+\-.!_>~|])},
+          url:           ~r{^(https?:\/\/[^\s<]+[^<.,:;\"\')\]\s])},
+         strikethrough: ~r{^~~(?=\S)([\s\S]*?\S)~~},
+         text:          ~r{^[\s\S]+?(?=[\\ Enum.into(%{})
+    end
+
+    # Smartypants transformations convert quotes to the appropriate curly
+    # variants, and -- and ... to – and …
+    defp smartypants(text) do
+      text
+      |> replace(~r{--}, "—")
+      |> replace(~r{(^|[-—/\(\[\{"”“\s])'}, "\\1‘")
+      |> replace(~r{\'}, "’")
+      |> replace(~r{(^|[-—/\(\[\{‘\s])\"}, "\\1“")
+      |> replace(~r{"}, "”")
+      |> replace(~r{\.\.\.}, "…")
+    end
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/error.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/error.ex
new file mode 100644
index 00000000..468e4309
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/error.ex
@@ -0,0 +1,12 @@
+defmodule Earmark.Error do
+
+  @moduledoc false
+
+  defexception [:message]
+
+  @doc false
+  def exception(msg), do: %__MODULE__{message: msg}
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers.ex
new file mode 100644
index 00000000..68d831e2
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers.ex
@@ -0,0 +1,67 @@
+defmodule Earmark.Helpers do
+
+  @doc """
+  Expand tabs to multiples of 4 columns
+  """
+  def expand_tabs(line) do
+    Regex.replace(~r{(.*?)\t}, line, &expander/2)
+  end
+
+  defp expander(_, leader) do
+    extra = 4 - rem(String.length(leader), 4)
+    leader <> pad(extra)
+  end
+
+  @doc """
+  Remove newlines at end of line
+  """
+  def remove_line_ending(line) do
+    line |> String.trim_trailing("\n") |> String.trim_trailing("\r")
+  end
+
+  defp pad(1), do: " "
+  defp pad(2), do: "  "
+  defp pad(3), do: "   "
+  defp pad(4), do: "    "
+
+  @doc """
+  `Regex.replace` with the arguments in the correct order
+  """
+
+  def replace(text, regex, replacement, options \\ []) do
+    Regex.replace(regex, text, replacement, options)
+  end
+
+  @doc """
+  Encode URIs to be included in the `` elements.
+
+  Percent-escapes a URI, and after that escapes any
+  `&`, `<`, `>`, `"`, `'`.
+  """
+  def encode(html) do
+    URI.encode(html) |> escape(true)
+  end
+
+  @doc """
+  Replace <, >, and quotes with the corresponding entities. If
+  `encode` is true, convert ampersands, too, otherwise only
+   convert non-entity ampersands.
+  """
+
+  def escape(html, encode \\ false)
+
+  def escape(html, false), do: _escape(Regex.replace(~r{&(?!#?\w+;)}, html, "&"))
+  def escape(html, _), do: _escape(String.replace(html, "&", "&"))
+
+  defp _escape(html) do
+    html
+    |> String.replace("<",  "<")
+    |> String.replace(">",  ">")
+    |> String.replace("\"", """)
+    |> String.replace("'",  "'")
+  end
+
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/attr_parser.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/attr_parser.ex
new file mode 100644
index 00000000..53251036
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/attr_parser.ex
@@ -0,0 +1,58 @@
+defmodule Earmark.Helpers.AttrParser do
+
+  import Earmark.Helpers.StringHelpers, only: [ behead: 2 ]
+  import Earmark.Message, only: [add_message: 2]
+
+  @type errorlist :: list(String.t)
+
+  def parse_attrs(context, attrs, lnb) do
+    { attrs, errors } = _parse_attrs(%{}, attrs, [], lnb)
+    { add_errors(context, errors, lnb), attrs }
+  end
+
+  defp _parse_attrs(dict, attrs, errors, lnb) do
+    cond do
+      Regex.match?(~r{^\s*$}, attrs) -> {dict, errors}
+
+      match = Regex.run(~r{^\.(\S+)\s*}, attrs) ->
+        [ leader, class ] = match
+          Map.update(dict, "class", [ class ], &[ class | &1])
+          |> _parse_attrs(behead(attrs, leader), errors, lnb)
+
+      match = Regex.run(~r{^\#(\S+)\s*}, attrs) ->
+        [ leader, id ] = match
+          Map.update(dict, "id", [ id ], &[ id | &1])
+          |> _parse_attrs(behead(attrs, leader), errors, lnb)
+
+      # Might we being running into escape issues here too?
+      match = Regex.run(~r{^(\S+)=\'([^\']*)'\s*}, attrs) -> #'
+      [ leader, name, value ] = match
+        Map.update(dict, name, [ value ], &[ value | &1])
+        |> _parse_attrs(behead(attrs, leader), errors, lnb)
+
+      # Might we being running into escape issues here too?
+      match = Regex.run(~r{^(\S+)=\"([^\"]*)"\s*}, attrs) -> #"
+      [ leader, name, value ] = match
+        Map.update(dict, name, [ value ], &[ value | &1])
+        |> _parse_attrs(behead(attrs, leader), errors, lnb)
+
+      match = Regex.run(~r{^(\S+)=(\S+)\s*}, attrs) ->
+        [ leader, name, value ] = match
+          Map.update(dict, name, [ value ], &[ value | &1])
+          |> _parse_attrs(behead(attrs, leader), errors, lnb)
+
+      match = Regex.run(~r{^(\S+)\s*(.*)}, attrs) ->
+        [ _, incorrect, rest  ] = match
+        _parse_attrs(dict, rest, [ incorrect | errors ], lnb)
+
+      :otherwise ->
+        {dict, [attrs | errors ]}
+    end
+  end
+
+  defp add_errors(context, [], _lnb), do: context
+  defp add_errors(context, errors, lnb), do: add_message(context, {:warning, lnb, "Illegal attributes #{inspect errors} ignored in IAL"})
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/html_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/html_helpers.ex
new file mode 100644
index 00000000..60bdf36b
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/html_helpers.ex
@@ -0,0 +1,60 @@
+defmodule Earmark.Helpers.HtmlHelpers do
+
+  import Earmark.Helpers.AttrParser
+  
+  @simple_tag ~r{^<(.*?)\s*>}
+
+  @doc false
+
+  def augment_tag_with_ial(context, tag, ial, lnb) do 
+    case Regex.run( @simple_tag, tag) do 
+      nil -> nil
+      _   -> add_attrs(context, tag, ial, [], lnb)
+    end
+    
+  end
+
+
+  ##############################################
+  # add attributes to the outer tag in a block #
+  ##############################################
+
+  @doc false
+  def add_attrs!(context, text, attrs_as_string_or_map, default_attrs, lnb ) do
+    with {context, {text, _errors}} <- add_attrs(context, text, attrs_as_string_or_map, default_attrs, lnb) do
+      {context, text}
+    end
+  end
+
+  defp add_attrs(context, text, attrs_as_string_or_map, default_attrs, lnb )
+
+  defp add_attrs(context, text, nil, [], _lnb), do: {context, text}
+
+  defp add_attrs(context, text, nil, default, lnb), do: add_attrs(context, text, %{}, default, lnb)
+
+  defp add_attrs(context, text, attrs, default, lnb) when is_binary(attrs) do
+    {context1, attrs} = parse_attrs( context, attrs, lnb )
+    add_attrs(context1, text, attrs, default, lnb)
+  end
+
+  defp add_attrs(context, text, attrs, default, _lnb) do
+    {context, 
+      default
+      |> Enum.into(attrs)
+      |> attrs_to_string()
+      |> add_to(text)}
+  end
+
+  defp attrs_to_string(attrs) do
+    (for { name, value } <- attrs, do: ~s/#{name}="#{Enum.join(value, " ")}"/)
+                                                  |> Enum.join(" ")
+  end
+
+  defp add_to(attrs, text) do
+    attrs = if attrs == "", do: "", else: " #{attrs}"
+    String.replace(text, ~r{\s?/?>}, "#{attrs}\\0", global: false)
+  end
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/leex_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/leex_helpers.ex
new file mode 100644
index 00000000..fadad0f7
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/leex_helpers.ex
@@ -0,0 +1,29 @@
+defmodule Earmark.Helpers.LeexHelpers do
+  @doc """
+    Allows to lex an Elixir string with a leex lexer and returns
+    the tokens as needed for a yecc parser.
+  """
+  def lex text, with: lexer do
+    case text
+      |> String.to_charlist()
+      |> lexer.string() do
+        {:ok, tokens, _} -> tokens
+      end
+  end
+
+  def tokenize line, with: lexer do
+    {:ok, tokens, _} =
+    line
+    |> to_charlist()
+    |> lexer.string()
+    elixirize_tokens(tokens,[])
+    |> Enum.reverse()
+  end
+
+  defp elixirize_tokens(tokens, rest)
+  defp elixirize_tokens([], result), do: result
+  defp elixirize_tokens([{token, _, text}|rest], result), do: elixirize_tokens(rest, [{token,to_string(text)}|result])
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/line_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/line_helpers.ex
new file mode 100644
index 00000000..aefed66c
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/line_helpers.ex
@@ -0,0 +1,40 @@
+defmodule Earmark.Helpers.LineHelpers do
+
+  alias Earmark.Line
+
+  def blank?(%Line.Blank{}),   do: true
+  def blank?(_),               do: false
+
+  # Gruber's tests have
+  #
+  #   para text...
+  #   * and more para text
+  #
+  # So list markers inside paragraphs are ignored. But he also has
+  #
+  #   *   line
+  #       * line
+  #
+  # And expects it to be a nested list. These seem to be in conflict
+  #
+  # I think the second is a better interpretation, so I commented
+  # out the 2nd match below.
+
+  def text?(%Line.Text{}),      do: true
+  def text?(%Line.TableLine{}), do: true
+#  def text?(%Line.ListItem{}), do: true
+  def text?(_),                 do: false
+
+  def blockquote_or_text?(%Line.BlockQuote{}), do: true
+  def blockquote_or_text?(struct),             do: text?(struct)
+
+  def indent_or_blank?(%Line.Indent{}), do: true
+  def indent_or_blank?(line),           do: blank?(line)
+
+  def blank_line_in?([]),                    do: false
+  def blank_line_in?([ %Line.Blank{} | _ ]), do: true
+  def blank_line_in?([ _ | rest ]),          do: blank_line_in?(rest)
+
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/link_parser.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/link_parser.ex
new file mode 100644
index 00000000..6c242866
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/link_parser.ex
@@ -0,0 +1,111 @@
+defmodule Earmark.Helpers.LinkParser do
+
+  import Earmark.Helpers.LeexHelpers, only: [tokenize: 2]
+  import Earmark.Helpers.YeccHelpers, only: [parse!: 2]
+  import Earmark.Helpers.StringHelpers, only: [behead: 2]
+
+  # Hopfully this will go away in v1.3
+  # **********************************
+  #
+  # Right now it needs to parse the url part of strings according to the following grammar
+  #
+  #      url -> ( inner_url )
+  #      url -> ( inner_url title )
+  #
+  #      inner_url   -> ( inner_url )
+  #      inner_url   -> [ inner_url ]
+  #      inner_url   ->  url_char*
+  #
+  #      url_char -> . - quote - ( - ) - [ - ]
+  #
+  #      title -> quote .* quote  ;;   not LALR-k here
+  #
+  #      quote ->  "
+  #      quote ->  '              ;;  yep allowing '...." for now
+  #
+  #      non_quote -> . - quote
+
+  @doc false
+  def parse_link( src, lnb ) do
+    with {link_text, parsed_text} <- parse!(src, lexer: :link_text_lexer, parser: :link_text_parser),
+         beheaded                 <- behead(src, to_string(parsed_text)),
+         tokens                   <- tokenize(beheaded, with: :link_text_lexer) do
+       p_url(tokens, lnb) |> make_result(to_string(link_text), to_string(parsed_text))
+     end
+  end
+
+  defp p_url([{:open_paren, _}|ts], lnb), do: url(ts, {[], [], nil}, [:close_paren], lnb)
+  defp p_url(_, _), do: nil
+
+
+  # push one level
+  defp url([{:open_paren, text}|ts], result, needed, lnb), do: url(ts, add(result, text), [:close_paren|needed], lnb)
+  # pop last level
+  defp url([{:close_paren, _}|_], result, [:close_paren], _lnb), do: result
+  # pop inner level
+  defp url([{:close_paren, text}|ts], result, [:close_paren|needed], lnb), do: url(ts, add(result, text), needed, lnb)
+  # A quote on level 0 -> bailing out if there is a matching quote
+  defp url(ts_all = [{:open_title, text}|ts], result, [:close_paren], lnb) do
+    case bail_out_to_title(ts_all, result, lnb) do
+      nil -> url(ts, add(result, text), [:close_paren], lnb)
+      res -> res
+    end
+  end
+  # All these are just added to the url
+  defp url([{:open_bracket, text}|ts], result, needed, lnb), do: url(ts, add(result, text), needed, lnb)
+  defp url([{:close_bracket, text}|ts], result, needed, lnb), do: url(ts, add(result, text), needed, lnb)
+  defp url([{:any_quote, text}|ts], result, needed, lnb), do: url(ts, add(result, text), needed, lnb)
+  defp url([{:verbatim, text}|ts], result, needed, lnb), do: url(ts, add(result, text), needed, lnb)
+  defp url([{:escaped, text}|ts], result, needed, lnb), do: url(ts, add(result, text), needed, lnb)
+  # That is not good, actually this is not a legal url part of a link
+  defp url(_, _, _, _), do: nil
+
+  defp bail_out_to_title(ts, result, lnb) do
+    with remaining_text <- ts |> Enum.map(&text_of_token/1) |> Enum.join("") do
+      case title(remaining_text, lnb) do
+        nil -> nil
+        {title_text, inner_title, messages} -> add_title( result, {title_text, inner_title, messages} )
+      end
+    end
+  end
+
+  defp text_of_token(token)
+  defp text_of_token({:escaped, text}), do: "\\#{text}"
+  defp text_of_token({_, text}), do: text
+
+  # sic!!! Greedy and not context aware, matching '..." and "...' for backward comp
+  @title_end_rgx ~r{\s+['"](.*)['"](?=\))}
+  defp title(remaining_text, lnb) do
+    case Regex.run(@title_end_rgx, remaining_text) do
+      nil             -> nil
+      [parsed, inner] -> {parsed, inner, deprecations(parsed, lnb)}
+    end
+  end
+
+  defp deprecations(string, lnb) do
+   with stripped <- String.trim(string),
+        opening  <- String.first(stripped),
+        closing  <- String.last(stripped), do: _deprecations(opening, closing, lnb)
+  end
+
+  defp _deprecations(opening, closing, _lnb) when opening == closing, do: []
+  defp _deprecations(_opening, _closing, lnb) do
+    [ {:warning, lnb, "deprecated, mismatching quotes will not be parsed as matching in v1.3"} ]
+  end
+
+  defp make_result(nil, _, _), do: nil
+  defp make_result({parsed, url, title}, text, img), do: make_result({parsed, url, title, []}, text, img)
+  defp make_result({parsed, url, title, messages}, link_text, "!" <> _) do
+    { "![#{link_text}](#{list_to_text(parsed)})", link_text, list_to_text(url), title, messages }
+  end
+  defp make_result({parsed, url, title, messages}, link_text, _) do
+    { "[#{link_text}](#{list_to_text(parsed)})", link_text, list_to_text(url), title, messages }
+  end
+
+  defp add({parsed_text, url_text, nil}, text), do: {[text|parsed_text], [text|url_text], nil}
+  defp add_title({parsed_text, url_text, _}, {parsed,inner,messages}), do: {[parsed|parsed_text], url_text, inner, messages}
+
+  defp list_to_text(lst), do: lst |> Enum.reverse() |> Enum.join("")
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/lookahead_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/lookahead_helpers.ex
new file mode 100644
index 00000000..71f47c46
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/lookahead_helpers.ex
@@ -0,0 +1,171 @@
+defmodule Earmark.Helpers.LookaheadHelpers do
+
+  use Earmark.Types
+
+  alias Earmark.Line
+  import Earmark.Helpers.LineHelpers
+  import Earmark.Helpers.LeexHelpers
+
+  @doc """
+  Indicates if the _numbered_line_ passed in leaves an inline code block open.
+
+  If so returns a tuple whre the first element is the opening sequence of backticks,
+  and the second the linenumber of the _numbered_line_
+
+  Otherwise `{nil, 0}` is returned
+  """
+  def opens_inline_code( %{line: line, lnb: lnb} ) do
+    case tokenize(line, with: :string_lexer) |> has_still_opening_backtix(nil) do
+      nil      -> {nil, 0}
+      {_, btx} -> {btx, lnb}
+    end
+  end
+
+  @doc """
+  returns false if and only if the line closes a pending inline code
+  *without* opening a new one.
+  The opening backtix are passed in as second parameter.
+  If the function does not return false it returns the (new or original)
+  opening backtix
+  """
+  # (#{},{_,_}) -> {_,_}
+  def still_inline_code( %{line: line, lnb: lnb}, old = {pending, _pending_lnb} ) do
+    case tokenize(line, with: :string_lexer) |> has_still_opening_backtix({:old, pending}) do
+      nil -> {nil, 0}
+      {:new, btx} -> {btx, lnb}
+      {:old, _  } -> old
+    end
+  end
+
+  # A tokenized line {:verabtim, text} | {:backtix, ['``+]} is analyzed for
+  # if it is closed (-> nil), not closed (-> {:old, btx}) or reopened (-> {:new, btx})
+  # concerning backtix
+  defp has_still_opening_backtix(tokens, opened_so_far)
+
+  defp has_still_opening_backtix([], opened_so_far), do: opened_so_far
+  defp has_still_opening_backtix([{:verbatim,_}|rest], opened_so_far), do: has_still_opening_backtix(rest, opened_so_far)
+  defp has_still_opening_backtix([{:backtix,btx}|rest], nil), do: has_still_opening_backtix(rest, {:new, btx})
+  defp has_still_opening_backtix([{:backtix,btx}|rest], opened_so_far={_, pending}) do
+    if btx == pending do
+      has_still_opening_backtix(rest, nil)
+    else
+      has_still_opening_backtix(rest, opened_so_far)
+    end
+  end
+
+  #######################################################################################
+  # read_list_lines
+  #######################################################################################
+  @doc """
+  Called to slurp in the lines for a list item.
+  basically, we allow indents and blank lines, and
+  we allow text lines only after an indent (and initially)
+  We also slurp in lines that are inside a multiline inline
+  code block as indicated by `pending`.
+  """
+  def read_list_lines( lines, {pending, pending_lnb}, initial_indent ) do
+    _read_list_lines(lines, [], %{pending: pending, pending_lnb: pending_lnb, min_indent: nil, initial_indent: initial_indent})
+  end
+
+  @type read_list_info :: %{pending: maybe(String.t), pending_lnb: number, initial_indent: number, min_indent: maybe(number)}
+
+  # List items with initial_indent + 2
+  defp _read_list_lines([ line = %Line.ListItem{initial_indent: li_indent} | rest ], result,
+    params=%{pending: nil, initial_indent: initial_indent, min_indent: min_indent})
+  when li_indent > initial_indent + 1 do
+    with {pending1, pending_lnb1} = opens_inline_code(line),
+         min_indent1 = new_min_indent(min_indent, 2), do:
+    _read_list_lines(rest, [ line | result ], %{params | pending: pending1, pending_lnb: pending_lnb1, min_indent: min_indent1})
+  end
+  # List items with same indent than last one
+  defp _read_list_lines([ line = %Line.ListItem{initial_indent: li_indent} | rest ], res=[%Line.ListItem{initial_indent: old_indent} | _],
+    params=%{pending: nil})
+  when li_indent == old_indent do
+    with {pending1, pending_lnb1} = opens_inline_code(line), do:
+    _read_list_lines(rest, [ line | res ], %{params | pending: pending1, pending_lnb: pending_lnb1, min_indent: li_indent})
+  end
+  # text immediately after the start
+  defp _read_list_lines([ line = %Line.Text{} | rest ], [], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line ], _opens_inline_code(line, params))
+  end
+  # table line immediately after the start
+  defp _read_list_lines([ line = %Line.TableLine{} | rest ], [], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line ], _opens_inline_code(line, params))
+  end
+
+  # text immediately after another text line
+  defp _read_list_lines([ line = %Line.Text{} | rest ], result =[ %Line.Text{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+  # table line immediately after another text line
+  defp _read_list_lines([ line = %Line.TableLine{} | rest ], result =[ %Line.Text{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+
+  # text immediately after a table line
+  defp _read_list_lines([ line = %Line.Text{} | rest ], result =[ %Line.TableLine{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+  # table line immediately after another table line
+  defp _read_list_lines([ line = %Line.TableLine{} | rest ], result =[ %Line.TableLine{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+
+  # text immediately after an indent
+  defp _read_list_lines([ line = %Line.Text{} | rest ], result =[ %Line.Indent{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+  # table line immediately after an indent
+  defp _read_list_lines([ line = %Line.TableLine{} | rest ], result =[ %Line.Indent{} | _], params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+
+  # Always allow blank lines and indents, and text or table lines with at least
+  # two spaces
+  defp _read_list_lines([ line = %Line.Blank{} | rest ], result, params=%{pending: nil}) do
+    _read_list_lines(rest, [ line | result ], params)
+  end
+
+  defp _read_list_lines([ line = %Line.Indent{level: indent_level} | rest ], result,
+    params=%{pending: nil, min_indent: min_indent}) do
+    with min_indent1 = new_min_indent(min_indent, indent_level * 4), do:
+    _read_list_lines(rest, [ line | result ], %{params | min_indent: min_indent1})
+  end
+
+  defp _read_list_lines([ line = %Line.Text{line: <<"  ", _ :: binary>>} | rest ],
+    result, params=%{pending: nil})
+  do
+    _read_list_lines(rest, [ line | result ], _opens_inline_code(line, params))
+  end
+
+  # no match, must be done
+  defp _read_list_lines(lines, result, %{pending: nil, min_indent: min_indent}) do
+    { trailing_blanks, rest } = Enum.split_while(result, &blank?/1)
+    spaced = length(trailing_blanks) > 0
+    { spaced, Enum.reverse(rest), lines, 0, min_indent }
+  end
+
+  # Only now we match for list lines inside an open multiline inline code block
+  defp _read_list_lines([line|rest], result, params = %{pending: pending, pending_lnb: pending_lnb}) do
+    with {pending1, pending_lnb1} = still_inline_code(line, {pending, pending_lnb}), do:
+    _read_list_lines(rest, [%{line|inside_code: true} | result], %{params | pending: pending1, pending_lnb: pending_lnb1})
+  end
+
+  # Running into EOI insise an open multiline inline code block
+  defp _read_list_lines([], result, params = %{pending_lnb: pending_lnb, min_indent: min_indent}) do
+    { spaced, rest, lines, _, _ } =_read_list_lines( [], result, %{params | pending: nil} )
+    { spaced, rest, lines, pending_lnb, min_indent }
+  end
+
+  defp new_min_indent(nil,            new_min_indent),                                       do: new_min_indent
+  defp new_min_indent(old_min_indent, new_min_indent) when old_min_indent <= new_min_indent, do: old_min_indent
+  defp new_min_indent(_,              new_min_indent),                                       do: new_min_indent
+
+  # Convenience wrapper around `opens_inline_code` into a map
+  defp _opens_inline_code( line, params ) do
+    with {pending, pending_lnb} = opens_inline_code(line), do:
+      %{ params | pending: pending, pending_lnb: pending_lnb }
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/reparse_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/reparse_helpers.ex
new file mode 100644
index 00000000..8f3f7942
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/reparse_helpers.ex
@@ -0,0 +1,55 @@
+defmodule Earmark.Helpers.ReparseHelpers do
+
+  alias Earmark.Line
+  
+  @doc """
+    Extract the verbatim text of `%Earmark.Line.t` elements with less alignment so that
+    it can be reparsed (as elements of list items).
+  """
+  # In case we are inside a code block we return the verbatim text
+  def indent_list_item_body(%{inside_code: true, line: line}, _level) do
+    line
+  end
+  # Sublistitems are **always** 2 spaces relative to the main list
+  def indent_list_item_body(%Line.ListItem{line: line}, _target_level) do
+    String.slice(line, 2..-1)
+  end
+  # Add additional spaces for any indentation past level 1
+  def indent_list_item_body(%Line.Indent{level: level, content: content}, target_level)
+  when level * 4 == target_level do
+    content
+  end
+
+  def indent_list_item_body(%Line.Indent{level: level, content: content}, target_level)
+  when level * 4  > target_level do
+    String.duplicate(" ", level *4 - target_level) <> content
+  end
+
+  def indent_list_item_body(line, _) do
+    line.content
+  end
+
+
+  @doc """
+    Extract the verbatim text of `%Earmark.Line.t` elements with less alignment so that
+    it can be reparsed (as elements of footnotes or indented code)
+  """
+  # In case we are inside a code block we return the verbatim text
+  def properly_indent(%{inside_code: true, line: line}, _level) do
+    line
+  end
+  # Add additional spaces for any indentation past level 1
+  def properly_indent(%Line.Indent{level: level, content: content}, target_level)
+  when level == target_level do
+    content
+  end
+  def properly_indent(%Line.Indent{level: level, content: content}, target_level)
+  when level > target_level do
+    String.duplicate("    ", level-target_level) <> content
+  end
+  def properly_indent(line, _) do
+    line.content
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/string_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/string_helpers.ex
new file mode 100644
index 00000000..900bca17
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/string_helpers.ex
@@ -0,0 +1,25 @@
+defmodule Earmark.Helpers.StringHelpers do
+
+  @doc """
+  Remove the leading part of a string
+  """
+  def behead(str, ignore) when is_integer(ignore) do
+    String.slice(str, ignore..-1)
+  end
+
+  def behead(str, leading_string) do
+    behead(str, String.length(leading_string))
+  end
+
+  @doc """
+    Returns a tuple with the prefix and the beheaded string
+
+        iex> behead_tuple("prefixpostfix", "prefix")
+        {"prefix", "postfix"}
+  """
+  def behead_tuple(str, lead) do
+    {lead, behead(str, lead)}
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/yecc_helpers.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/yecc_helpers.ex
new file mode 100644
index 00000000..565f451d
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/helpers/yecc_helpers.ex
@@ -0,0 +1,18 @@
+defmodule Earmark.Helpers.YeccHelpers do
+  import Earmark.Helpers.LeexHelpers, only: [lex: 2]
+
+  def parse!( text, lexer: lexer, parser: parser ) do
+    case parse(text, lexer: lexer, parser: parser) do
+        {:ok, ast}  -> ast
+        {:error, _} -> nil
+    end
+  end
+
+  def parse( text, lexer: lexer, parser: parser ) do
+    with tokens <- lex(text, with: lexer) do
+      parser.parse(tokens)
+    end
+  end
+end
+
+# SPDX-License-Identifier: Apache-2.0
diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/html_renderer.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/html_renderer.ex
new file mode 100644
index 00000000..fbda8e69
--- /dev/null
+++ b/spec/fixtures/mix/deps/earmark/lib/earmark/html_renderer.ex
@@ -0,0 +1,264 @@
+defmodule Earmark.HtmlRenderer do
+
+  alias  Earmark.Block
+  alias  Earmark.Context
+  alias  Earmark.Options
+  import Earmark.Inline,  only: [ convert: 3 ]
+  import Earmark.Helpers, only: [ escape: 2 ]
+  import Earmark.Helpers.HtmlHelpers
+  import Earmark.Message, only: [ add_messages_from: 2, add_messages: 2, get_messages: 1 ]
+  import Earmark.Context, only: [ append: 2, set_value: 2 ]
+
+  def render(blocks, context=%Context{options: %Options{mapper: mapper}}) do
+    messages = get_messages(context)
+
+    {contexts, html} =
+    mapper.(blocks, &(render_block(&1, put_in(context.options.messages, [])))) |> Enum.unzip()
+
+    all_messages = 
+      contexts 
+      |> Enum.reduce( messages, fn (ctx, messages1) ->  messages1 ++ get_messages(ctx) end) 
+
+    {put_in(context.options.messages, all_messages), html |> IO.iodata_to_binary()}
+  end
+
+  #############
+  # Paragraph #
+  #############
+  defp render_block(%Block.Para{lnb: lnb, lines: lines, attrs: attrs}, context) do
+    lines = convert(lines, lnb, context)
+    add_attrs!(lines, "

#{lines.value}

\n", attrs, [], lnb) + end + + ######## + # Html # + ######## + defp render_block(%Block.Html{html: html}, context) do + {context, Enum.intersperse(html, ?\n)} + end + + defp render_block(%Block.HtmlOther{html: html}, context) do + {context, Enum.intersperse(html, ?\n)} + end + + ######### + # Ruler # + ######### + defp render_block(%Block.Ruler{lnb: lnb, type: "-", attrs: attrs}, context) do + add_attrs!(context, "
\n", attrs, [{"class", ["thin"]}], lnb) + end + + defp render_block(%Block.Ruler{lnb: lnb, type: "_", attrs: attrs}, context) do + add_attrs!(context, "
\n", attrs, [{"class", ["medium"]}], lnb) + end + + defp render_block(%Block.Ruler{lnb: lnb, type: "*", attrs: attrs}, context) do + add_attrs!(context, "
\n", attrs, [{"class", ["thick"]}], lnb) + end + + ########### + # Heading # + ########### + defp render_block(%Block.Heading{lnb: lnb, level: level, content: content, attrs: attrs}, context) do + converted = convert(content, lnb, context) + html = "#{converted.value}\n" + add_attrs!(converted, html, attrs, [], lnb) + end + + ############## + # Blockquote # + ############## + + defp render_block(%Block.BlockQuote{lnb: lnb, blocks: blocks, attrs: attrs}, context) do + {context1, body} = render(blocks, context) + html = "
#{body}
\n" + add_attrs!(context1, html, attrs, [], lnb) + end + + ######### + # Table # + ######### + + defp render_block(%Block.Table{lnb: lnb, header: header, rows: rows, alignments: aligns, attrs: attrs}, context) do + cols = for _align <- aligns, do: "\n" + {context1, html} = add_attrs!(context, "\n", attrs, [], lnb) + html = [ html , "\n", cols, "\n" ] + context2 = set_value( context1, html ) + + context3 = if header do + append( add_trs(append(context2, "\n"), [header], "th", aligns, lnb), "\n" ) + else + # Maybe an error, needed append(context, html) + context2 + end + + context4 = add_trs(context3, rows, "td", aligns, lnb) + + {context4, [ context4.value, "
\n" ]} + end + + ######## + # Code # + ######## + + defp render_block(%Block.Code{lnb: lnb, language: language, attrs: attrs} = block, context = %Context{options: options}) do + class = if language, do: ~s{ class="#{code_classes( language, options.code_class_prefix)}"}, else: "" + tag = ~s[
]
+    lines = options.render_code.(block)
+    html = ~s[#{tag}#{lines}
\n] + add_attrs!(context, html, attrs, [], lnb) + end + + ######### + # Lists # + ######### + + defp render_block(%Block.List{lnb: lnb, type: type, blocks: items, attrs: attrs, start: start}, context) do + {context1, content} = render(items, context) + html = "<#{type}#{start}>\n#{content}\n" + add_attrs!(context1, html, attrs, [], lnb) + end + + # format a single paragraph list item, and remove the para tags + defp render_block(%Block.ListItem{lnb: lnb, blocks: blocks, spaced: false, attrs: attrs}, context) + when length(blocks) == 1 do + {context1, content} = render(blocks, context) + content = Regex.replace(~r{}, content, "") + html = "
  • #{content}
  • \n" + add_attrs!(context1, html, attrs, [], lnb) + end + + # format a spaced list item + defp render_block(%Block.ListItem{lnb: lnb, blocks: blocks, attrs: attrs}, context) do + {context1, content} = render(blocks, context) + html = "
  • #{content}
  • \n" + add_attrs!(context1, html, attrs, [], lnb) + end + + ################## + # Footnote Block # + ################## + + defp render_block(%Block.FnList{blocks: footnotes}, context) do + items = Enum.map(footnotes, fn(note) -> + blocks = append_footnote_link(note) + %Block.ListItem{attrs: "#fn:#{note.number}", type: :ol, blocks: blocks} + end) + {context1, html} = render_block(%Block.List{type: :ol, blocks: items}, context) + {context1, Enum.join([~s[
    ], "
    ", html, "
    "], "\n")} + end + + ####################################### + # Isolated IALs are rendered as paras # + ####################################### + + defp render_block(%Block.Ial{verbatim: verbatim}, context) do + {context, "

    {:#{verbatim}}

    \n"} + end + + #################### + # IDDef is ignored # + #################### + + defp render_block(%Block.IdDef{}, context), do: {context, ""} + + ########### + # Plugins # + ########### + + defp render_block(%Block.Plugin{lines: lines, handler: handler}, context) do + case handler.as_html(lines) do + html when is_list(html) -> {context, html} + {html, errors} -> {add_messages(context, errors), html} + html -> {context, [html]} + end + end + + ##################################### + # And here are the inline renderers # + ##################################### + + def br, do: "
    " + def codespan(text), do: ~s[#{text}] + def em(text), do: "#{text}" + def strong(text), do: "#{text}" + def strikethrough(text), do: "#{text}" + + def link(url, text), do: ~s[
    #{text}] + def link(url, text, nil), do: ~s[#{text}] + def link(url, text, title), do: ~s[#{text}] + + def image(path, alt, nil) do + ~s[#{alt}] + end + + def image(path, alt, title) do + ~s[#{alt}] + end + + def footnote_link(ref, backref, number), do: ~s[#{number}] + + # Table rows + def add_trs(context, rows, tag, aligns, lnb) do + numbered_rows = rows + |> Enum.zip(Stream.iterate(lnb, &(&1 + 1))) + # for {row, lnb1} <- numbered_rows, do: "\n#{add_tds(context, row, tag, aligns, lnb1)}\n\n" + numbered_rows + |> Enum.reduce(context, fn {row, lnb}, ctx -> + append( add_tds(append(ctx, "\n"), row, tag, aligns, lnb), "\n\n" ) + end) + end + + defp add_tds(context, row, tag, aligns, lnb) do + Enum.reduce(1..length(row), context, add_td_fn(row, tag, aligns, lnb)) + end + + defp add_td_fn(row, tag, aligns, lnb) do + fn n, ctx -> + style = + case Enum.at(aligns, n - 1, :default) do + :default -> "" + align -> " style=\"text-align: #{align}\"" + end + col = Enum.at(row, n - 1) + converted = convert(col, lnb, ctx) + append(add_messages_from(ctx, converted), "<#{tag}#{style}>#{converted.value}") + end + end + + + ############################### + # Append Footnote Return Link # + ############################### + + def append_footnote_link(note=%Block.FnDef{}) do + fnlink = ~s[] + [ last_block | blocks ] = Enum.reverse(note.blocks) + last_block = append_footnote_link(last_block, fnlink) + Enum.reverse([last_block | blocks]) + |> List.flatten + end + + def append_footnote_link(block=%Block.Para{lines: lines}, fnlink) do + [ last_line | lines ] = Enum.reverse(lines) + last_line = "#{last_line} #{fnlink}" + [put_in(block.lines, Enum.reverse([last_line | lines]))] + end + + def append_footnote_link(block, fnlink) do + [block, %Block.Para{lines: fnlink}] + end + + def render_code(%Block.Code{lines: lines}) do + lines |> Enum.join("\n") |> escape(true) + end + + defp code_classes(language, prefix) do + ["" | String.split( prefix || "" )] + |> Enum.map( fn pfx -> "#{pfx}#{language}" end ) + |> Enum.join(" ") + end + +end + +# SPDX-License-Identifier: Apache-2.0 diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/inline.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/inline.ex new file mode 100644 index 00000000..d8d723c9 --- /dev/null +++ b/spec/fixtures/mix/deps/earmark/lib/earmark/inline.ex @@ -0,0 +1,319 @@ + defmodule Earmark.Inline do + + @moduledoc """ + Match and render inline sequences, passing each to the + renderer. + """ + + alias Earmark.Error + alias Earmark.Helpers.LinkParser + import Earmark.Helpers + import Earmark.Helpers.StringHelpers, only: [behead: 2] + import Earmark.Helpers.HtmlHelpers, only: [augment_tag_with_ial: 4] + import Earmark.Context, only: [prepend: 2, set_value: 2] + import Earmark.Message, only: [add_messages: 2] + + @doc false + def convert(src, lnb, context) + def convert(list, lnb, context) when is_list(list), do: _convert(Enum.join(list, "\n"), lnb, context) + def convert(src, lnb, context), do: _convert(src, lnb, context) + + defp _convert(src, current_lnb, context) do + convert_each({src, context, %{context | value: []}, current_lnb}, all_converters()) + end + + @linky_converter_names [:converter_for_link, :converter_for_reflink, :converter_for_footnote, :converter_for_nolink] + + defp all_converters do + [ + converter_for_escape: &converter_for_escape/2, + converter_for_autolink: &converter_for_autolink/2, + converter_for_tag: &converter_for_tag/2, + converter_for_link: &converter_for_link/2, + converter_for_img: &converter_for_img/2, + converter_for_reflink: &converter_for_reflink/2, + converter_for_footnote: &converter_for_footnote/2, + converter_for_nolink: &converter_for_nolink/2, + converter_for_strikethrough_gfm: &converter_for_strikethrough_gfm/2, + converter_for_strong: &converter_for_strong/2, + converter_for_em: &converter_for_em/2, + converter_for_code: &converter_for_code/2, + converter_for_br: &converter_for_br/2, + converter_for_inline_ial: &converter_for_inline_ial/2, + converter_for_text: &converter_for_text/2 + ] + end + + + defp convert_each(data, converters) + + defp convert_each({"", context, result, _lnb}, _converters) do + with result1 <- result.value + |> Enum.reverse() + |> IO.iodata_to_binary + |> replace(~r{(]*>)‘}, "\\1’") + |> replace(~r{(]*>)“}, "\\1”"), do: set_value(context, result1) + end + + defp convert_each(data, converters) do + walk_converters(converters, data, converters) + end + + + defp walk_converters(converters, data, all_converters) + + defp walk_converters([], _, _) do + # This should never happen + raise Error, "Illegal State" + end + defp walk_converters([{_converter_name, converter}|rest], data = { _src, context, _result, _lnb}, all_converters) do + case converter.(data, context.options.renderer) do + # This has not been the correct converter, move on + nil -> walk_converters(rest, data, all_converters) + nd -> + convert_each(update_lnb(nd), all_converters) + end + end + + + defp converter_for_escape({src, context, result, lnb}, _renderer) do + if match = Regex.run(context.rules.escape, src) do + [ match, escaped ] = match + {behead(src, match), context, prepend(result, escaped), lnb} + end + end + + defp converter_for_autolink({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.autolink, src) do + [ match, link, protocol ] = match + { href, text } = convert_autolink(link, protocol) + out = renderer.link(href, text) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp converter_for_tag({src, context, result, lnb}, _renderer) do + case Regex.run(context.rules.tag, src) do + [ match ] -> + out = context.options.do_sanitize.(match) + { behead(src, match), context, prepend(result, out), lnb } + _ -> nil + end + end + + # TODO: v1.3 Fix this `mess` where mess in + # as we need to parse the url part for nested (), and [] expressions (from issues #88 and #70, as well as #89 and #90, but + # the later two are _home made_) + # a regex will not do. As however we have to accept the following title strings (for backwards compatibility before v1.3) + # [...](url "title")and still title") --> title = ~s + # yecc will not do (we are not LALR-1 not even LALR-k or LR-k :@ !!!!) + # therefor this complicated recursive descent bailing out parser I did not want to write in the first place... + # Oh yes and of course I cannot even preparse the url part because of this e.g. + # [...](url "((((((") + defp converter_for_link({src, context, result, lnb}, _renderer) do + if match = LinkParser.parse_link(src, lnb) do + unless is_image?(match) do + {match, text, href, title, messages} = match + out = output_link(context, text, href, title, lnb) + { behead(src, match), add_messages(context, messages), prepend(result, out), lnb } + end + end + end + + defp converter_for_img({src, context, result, lnb}, _renderer) do + if match = LinkParser.parse_link(src, lnb) do + if is_image?(match) do + {match, text, href, title, messages} = match + out = output_image(context.options.renderer, text, href, title) + { behead(src, match), add_messages(context, messages), prepend(result, out), lnb } + end + end + end + + defp converter_for_reflink({src, context, result, lnb}, _renderer) do + if match = Regex.run(context.rules.reflink, src) do + { match, alt_text, id } = case match do + [ match, id, "" ] -> { match, id, id } + [ match, alt_text, id ] -> { match, alt_text, id } + end + case reference_link(context, match, alt_text, id, lnb) do + {:ok, out} -> { behead(src, match), context, prepend(result, out), lnb } + _ -> nil + end + end + end + + defp converter_for_footnote({src, context, result, lnb}, _renderer) do + case Regex.run(context.rules.footnote, src) do + [match, id] -> + case footnote_link(context, match, id) do + {:ok, out} -> { behead(src, match), context, prepend(result, out), lnb } + _ -> nil + end + _ -> nil + end + end + + defp converter_for_nolink({src, context, result, lnb}, _renderer) do + case Regex.run(context.rules.nolink, src) do + [ match, id ] -> + case reference_link(context, match, id, id, lnb) do + {:ok, out} -> { behead(src, match), context, prepend(result, out), lnb } + _ -> nil + end + _ -> nil + end + end + + defp converter_for_strikethrough_gfm({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.strikethrough, src) do + [ match, content ] = match + out = renderer.strikethrough(convert(content, lnb, context).value) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp converter_for_strong({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.strong, src) do + { match, content } = case match do + [ m, _, c ] -> {m, c} + [ m, c ] -> {m, c} + end + out = renderer.strong(convert(content, lnb, context).value) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp converter_for_em({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.em, src) do + { match, content } = case match do + [ m, _, c ] -> {m, c} + [ m, c ] -> {m, c} + end + out = renderer.em(convert(content, lnb, context).value) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp converter_for_code({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.code, src) do + [match, _, content] = match + content = String.trim(content) # this from Gruber + out = renderer.codespan(escape(content, true)) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp converter_for_inline_ial(conv_data, renderer) + defp converter_for_inline_ial({src, context, %{value: [maybe_tag|result]}=result_ctx, lnb}, _renderer) do + if match = Regex.run(context.rules.inline_ial, src) do + [match, ial] = match + case augment_tag_with_ial(context, maybe_tag, ial, lnb) do + nil -> nil + {context1, new_tag} -> + { behead(src, match), context1, set_value(result_ctx, [new_tag|result]), lnb } + end + end + end + defp converter_for_inline_ial(_conv_data, _renderer), do: nil + + defp converter_for_br({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.br, src, return: :index) do + out = renderer.br() + [ {0, match_len} ] = match + { behead(src, match_len), context, prepend(result, out), lnb } + end + end + + defp converter_for_text({src, context, result, lnb}, renderer) do + if match = Regex.run(context.rules.text, src) do + [ match ] = match + out = escape(context.options.do_smartypants.(match)) + |> hard_line_breaks(context.options.gfm, renderer) + { behead(src, match), context, prepend(result, out), lnb } + end + end + + defp convert_autolink(link, _separator = "@") do + link = (if String.at(link, 6) == ":", do: behead(link, 7), else: link) + text = mangle_link(link) + href = mangle_link("mailto:") <> text + { encode(href), escape(text) } + end + + defp convert_autolink(link, _separator) do + link = encode(link) + { link, link } + end + + @gfm_hard_line_break ~r{\\\n} + defp hard_line_breaks(text, gfm, renderer) + defp hard_line_breaks(text, false, _renderer), do: text + defp hard_line_breaks(text, nil, _renderer), do: text + defp hard_line_breaks(text, _, renderer) do + with br = renderer.br(), do: Regex.replace(@gfm_hard_line_break, text, br <> "\n") + end + + + @doc false + def mangle_link(link) do + link + end + + defp output_image_or_link(context, "!" <> _, text, href, title, _lnb) do + output_image(context.options.renderer, text, href, title) + end + + defp output_image_or_link(context, _, text, href, title, lnb) do + output_link(context, text, href, title, lnb) + end + + defp output_link(context, text, href, title, lnb) do + href = encode(href) + title = if title, do: escape(title), else: nil + link = convert_each({text, context, set_value(context, []), lnb}, + Keyword.drop(all_converters(), @linky_converter_names)) + context.options.renderer.link(href, link.value, title) + end + + defp output_footnote_link(context, ref, back_ref, number) do + ref = encode(ref) + back_ref = encode(back_ref) + context.options.renderer.footnote_link(ref, back_ref, number) + end + + defp output_image(renderer, text, href, title) do + href = encode(href) + title = if title, do: escape(title), else: nil + renderer.image(href, escape(text), title) + end + + defp reference_link(context, match, alt_text, id, lnb) do + id = id |> replace(~r{\s+}, " ") |> String.downcase + + case Map.fetch(context.links, id) do + {:ok, link } -> {:ok, output_image_or_link(context, match, alt_text, link.url, link.title, lnb)} + _ -> nil + end + end + + defp footnote_link(context, _match, id) do + case Map.fetch(context.footnotes, id) do + {:ok, %{number: number}} -> {:ok, output_footnote_link(context, "fn:#{number}", "fnref:#{number}", number)} + _ -> nil + end + end + + + defp is_image?( {match_text, _, _, _} ), do: String.starts_with?(match_text, "!") + defp is_image?( {match_text, _, _, _, _} ), do: String.starts_with?(match_text, "!") + @trailing_newlines ~r{\n*\z} + + defp update_lnb(data = {_, _, %{value: []}, _}), do: data + defp update_lnb({rest, context, result = %{value: [head|_]}, lnb}) do + [suffix] = Regex.run(@trailing_newlines, head) + { rest, context, result, lnb + String.length(suffix) } + end +end + +# SPDX-License-Identifier: Apache-2.0 diff --git a/spec/fixtures/mix/deps/earmark/lib/earmark/line.ex b/spec/fixtures/mix/deps/earmark/lib/earmark/line.ex new file mode 100644 index 00000000..3b2ed97d --- /dev/null +++ b/spec/fixtures/mix/deps/earmark/lib/earmark/line.ex @@ -0,0 +1,252 @@ +defmodule Earmark.Line do + + alias Earmark.Helpers + + @moduledoc """ + Give a line of text, return its context-free type. Not for external consumption + """ + + # This is the re that matches the ridiculous "[id]: url title" syntax + + @id_title_part ~S""" + (?| + " (.*) " # in quotes + | ' (.*) ' # + | \( (.*) \) # in parens + ) + """ + + @id_title_part_re ~r[^\s*#{@id_title_part}\s*$]x + + @id_re ~r''' + ^\s{0,3} # leading spaces + \[([^\]]*)\]: # [someid]: + \s+ + (?| + < (\S+) > # url in <>s + | (\S+) # or without + ) + (?: + \s+ # optional title + #{@id_title_part} + )? + \s* + $ + '''x + + @void_tags ~w{area br hr img wbr} + @void_tag_rgx ~r''' + ^<( #{Enum.join(@void_tags, "|")} ) + .*? + > + '''x +#' + + + defmodule Blank, do: defstruct lnb: 0, line: "", content: "", inside_code: false + defmodule Ruler, do: defstruct lnb: 0, line: "", type: "- or * or _", inside_code: false + defmodule Heading, do: defstruct lnb: 0, line: "", level: 1, content: "inline text", inside_code: false + defmodule BlockQuote, do: defstruct lnb: 0, line: "", content: "text", inside_code: false + defmodule Indent, do: defstruct lnb: 0, line: "", level: 0, content: "text", inside_code: false + defmodule Fence, do: defstruct lnb: 0, line: "", delimiter: "~ or `", language: nil , inside_code: false + defmodule HtmlOpenTag, do: defstruct lnb: 0, line: "", tag: "", content: "", inside_code: false + defmodule HtmlCloseTag, do: defstruct lnb: 0, line: "", tag: "<... to eol", inside_code: false + defmodule HtmlComment, do: defstruct lnb: 0, line: "", complete: true, inside_code: false + defmodule HtmlOneLine, do: defstruct lnb: 0, line: "", tag: "", content: "", inside_code: false + defmodule IdDef, do: defstruct lnb: 0, line: "", id: nil, url: nil, title: nil, inside_code: false + defmodule FnDef, do: defstruct lnb: 0, line: "", id: nil, content: "text", inside_code: false + defmodule ListItem, do: defstruct lnb: 0, type: :ul, line: "", + bullet: "* or -", content: "text", + initial_indent: 0, inside_code: false + defmodule SetextUnderlineHeading, + do: defstruct lnb: 0, line: "", level: 1, inside_code: false, inside_code: false + defmodule TableLine, do: defstruct lnb: 0, line: "", content: "", columns: 0, inside_code: false + defmodule Ial, do: defstruct lnb: 0, line: "", attrs: "", inside_code: false, verbatim: "" + defmodule Text, do: defstruct lnb: 0, line: "", content: "", inside_code: false + + defmodule Plugin, do: defstruct lnb: 0, line: "", content: "", prefix: "$$" + + @type t :: %Blank{} | %Ruler{} | %Heading{} | %BlockQuote{} | %Indent{} | %Fence{} | %HtmlOpenTag{} | %HtmlCloseTag{} | %HtmlComment{} | %HtmlOneLine{} | %IdDef{} | %FnDef{} | %ListItem{} | %SetextUnderlineHeading{} | %TableLine{} | %Ial{} | %Text{} | %Plugin{} + + @type ts :: list(t) + @doc false + # We want to add the original source line into every + # line we generate. We also need to expand tabs before + # proceeding + + # (_,atom() | tuple() | #{},_) -> ['Elixir.B'] + def scan_lines lines, options \\ %Earmark.Options{}, recursive \\ false + def scan_lines lines, options, recursive do + lines_with_count( lines, options.line - 1) + |> Earmark.pmap( fn (line) -> type_of(line, options, recursive) end) + end + + defp lines_with_count lines, offset do + Enum.zip lines, offset..(offset+Enum.count(lines)) + end + + def type_of(line, recursive) + when is_boolean(recursive), do: type_of(line, %Earmark.Options{}, recursive) + + def type_of({line, lnb}, options = %Earmark.Options{}, recursive) do + line = line |> Helpers.expand_tabs |> Helpers.remove_line_ending + %{ _type_of(line, options, recursive) | line: line, lnb: lnb } + end + + @doc false + # Used by the block parser to test if a line following an IdDef + # is a possible title + def matches_id_title(content) do + case Regex.run(@id_title_part_re, content) do + [ _, title ] -> title + _ -> nil + end + end + + defp _type_of(line, options=%Earmark.Options{}, recursive) do + cond do + line =~ ~r/^\s*$/ -> + %Blank{} + + line =~ ~r/^ \s{0,3} ( ) $/x && !recursive -> + %HtmlComment{complete: true} + + line =~ ~r/^ \s{0,3} ( + + # Typical calling sequence + + + + Run this task, and the README will be updated with the appropriate + documentation. Markers are also added, so running it again + will update the doc in place. + """ + + def run([]) do + Mix.Task.run "compile", [] + File.read!("README.md") + |> remove_old_doc + |> add_updated_doc + |> write_back + end + + @new_doc ~R/(\s* ).*\n/x + + @existing_doc ~R/ + (?:^|\n+)(\s* ).*\n + (?: .*?\n )+? + \s* \s*? + /x + + defp remove_old_doc(readme) do + Regex.replace(@existing_doc, readme, fn (_, hdr, _, _) -> + hdr + end) + end + + defp add_updated_doc(readme) do + Regex.replace(@new_doc, readme, fn (_, hdr, type, name) -> + "\n" <> hdr <> "\n" <> + doc_for(type, name) <> + Regex.replace(~r/!-- /, hdr, "!-- end") <> "\n" + end) + end + + defp doc_for("module", name) do + module = String.to_atom("Elixir." <> name) + + A + docs = case Code.ensure_loaded(module) do + {:module, _} -> + if function_exported?(module, :__info__, 1) do + case Code.get_docs(module, :moduledoc) do + {_, docs} when is_binary(docs) -> + docs + _ -> nil + end + else + nil + end + _ -> nil + end + + docs # || "No module documentation available for #{name}\n" + end + + defp doc_for("", name) do + names = String.split(name, ".") + [ func | modules ] = Enum.reverse(names) + module = Enum.reverse(modules) |> Enum.join(".") + module = String.to_atom("Elixir." <> module) + func = String.to_atom(func) + + markdown = case Code.ensure_loaded(module) do + {:module, _} -> + if function_exported?(module, :__info__, 1) do + docs = Code.get_docs(module, :docs) + Enum.find_value(docs, fn ({{fun, _}, _line, _kind, _args, doc}) -> + fun == func && doc + end) + else + nil + end + _ -> nil + end + + markdown || "No function documentation available for #{name}\n" + end + + + defp write_back(readme) do + IO.puts :stderr, + (case File.write("README.md", readme) do + :ok -> "README.md updated" + {:error, reason} -> + "README.md: #{:file.format_error(reason)}" + end) + end +end + + +# SPDX-License-Identifier: Apache-2.0 diff --git a/spec/fixtures/manual/random/LICENSE b/spec/fixtures/mix/deps/ex_doc/.fetch similarity index 100% rename from spec/fixtures/manual/random/LICENSE rename to spec/fixtures/mix/deps/ex_doc/.fetch diff --git a/spec/fixtures/mix/deps/ex_doc/.hex b/spec/fixtures/mix/deps/ex_doc/.hex new file mode 100644 index 00000000..23be065d --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/.hex @@ -0,0 +1,2 @@ +ex_doc,0.18.3,f4b0e4a2ec6f333dccf761838a4b253d75e11f714b85ae271c9ae361367897b7,hexpm +mix \ No newline at end of file diff --git a/spec/fixtures/mix/deps/ex_doc/CHANGELOG.md b/spec/fixtures/mix/deps/ex_doc/CHANGELOG.md new file mode 100644 index 00000000..91d5bc03 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/CHANGELOG.md @@ -0,0 +1,390 @@ +# Changelog + +## v0.18.3 + + * Bug fix + * Fix formatting of typespecs causing errors + * Update jQuery + * Properly remove underscore from typespec links + +## v0.18.2 + + * Enhancements + * Improve documentation pages for printing + * Autolink Kernel, Kernel.SpecialForms, and built-in types + * Annotate opaque types + * Add vertical-align:top to tables + * Allow module-function-arity references in links, for example: [some code](`MyMod.fun/2`) + * Remove underscore from view source link + * Run code formatter on typespecs (if one is available) + * Make night mode switch link more obvious + +## v0.18.1 + + * Bug fixes + * Include missing formatter files + +## v0.18.0 + + * Enhancements + * No longer strip empty parens from types + * Provide more extension point for markdown processors + * Remove assets from priv since they are now embedded at compile time + + * Backwards incompatible changes + * Remove built-in support for hoedown markdown processor + * No longer add favicon when logo option is present (this was added in 0.17.0 but it was reported the logo almost never fits as a favicon) + +## v0.17.1 + + * Bug fixes + * Fix broken search caused by outdated JavaScript files + +## v0.17.0 + + * Enhancements + * Allow modules to be grouped on the sidebar with the `:groups_for_modules` option + * Allow extras to be grouped on the sidebar with the `:groups_for_extras` option + + * Backwards incompatible changes + * The previous `:group` option that could be specified for each entry in `:extras` is no longer supported + * No longer add a specific section for "Protocols". If you would like to segregate the protocols in your application, use the new `:groups_for_modules` functionality + +## v0.16.4 + + * Enhancements + * Generate favicon link if a logo is available + + * Bug fixes + * Do not version epub filename as the doc directory is likely already versioned + +## v0.16.3 + + * Enhancements + * Make sure its own search.html page and provide history + * Generate source maps only if the `--debug` flag is given + * Users can now add custom HTML before the closing head tag and the closing body tag + * Highlight the target function/macro/type/callback when clicked + + * Bug fixes + * Remove extra `term()` argument at start of macro spec + * Add unencoded link target for functions with special chars to cope with different behaviour in browsers + +## v0.16.2 + + * Enhancements + * Link `

    ` headers as well + * Add border to code tag + * Bug fixes + * Fix sidebar on mobile devices + +## v0.16.1 + + * Bug fixes + * Fix hover icons coloring + +## v0.16.0 + + * Enhancements + * Separate tasks into "Mix Tasks" in sidebar + * Add types to the search results + * Improve accessibility + + * Bug fixes + * Strip nesting HTML tags in h2 headers + * Remove the old search results after every new search attempt + +## v0.15.1 + + * Bug fixes + * Improve project name wrapping on HTML + * Properly set link in types with parameter + * Fix ExDoc.CLI.main/2 to keep --source-ref on Elixir v1.4 + * Do not fail if localStorage is not available + +## v0.15.0 + + * Enhancements + * Closing the search takes you to where you were in the previous page + * Handle `__struct__/0` by displaying the struct instead + * Warn when redirecting to a non-existent file + * List both functions and macros under "Functions" + * Automatically detect GitLab source URL patterns + + * Bug fixes + * Break long specs into lines + * Fix the initial state of the sidebar hamburger + * Do not error when abstract code is missing + * Properly link to erlang lib dirs + + * Backwards incompatible changes + * No longer support Pandoc + * Require Earmark 1.1 + +## v0.14.5 + + * Enhancements + * Allow ExDoc to work as an escript + +## v0.14.4 + + * Enhancements + * Point to Elixir docs on hexdocs.pm + * Many improvements to layout and styling of EPUB formatter + * Support multiple formatters to be configured on `mix.exs` + * Also digest `sidebar_items.js` + * Force parentheses on type signature to remove ambiguity + * Generate top-level docs for an umbrella project + * Searching on mobile closes menu when the Enter key is hit + +## v0.14.3 + + * Enhancements + * Support the `:assets` option that automatically copies all entries in the given directory to `doc/assets` + * Remove numbering on Extras subheaders from sidebar + * Pass file and line information to markdown formatters for better warnings + * Allow extra pages to be grouped together under a given heading + * Generate ids for default name/arity pairs so they can be linked (both remotely and locally) + + * Bug fixes + * Fix autolink for functions containing `%`, `{`, `}` or uppercase characters in the name + +## v0.14.2 + + * Enhancements + * Automatically generate documentations links to any of your dependencies (by default links to hexdocs.pm but allows the URL to be configured) + * Allow documentation to be generated to Erlang modules + + * Bug fixes + * Make sure "Top" is not included twice on pages + +## v0.14.1 + + * Bug fixes + * Include "Top" link in pages with no headings + * Include "Top" link in modules with no docs + +## v0.14.0 + + * Enhancements + * Add support for the epub formatter + * Support extraction from `

    ` headers out of the settext format + + * Layout changes + * Indent documentation inside the function/macro/type/callback header + * Style types the same way as function/macro/callback and include a link to the source + * Increase font-sizes in the sidebar and code snippets + * Move the specs definition inside the function/macro/type/callback header and make better use of vertical space + * Use a gradient on the sidebar to avoid sudden cut-off when scrolling the modules list + * Fix the use of the back-button in some browsers + * Allow the whole sidebar to be navigated without moving away from the current page. Expand (+) and collapse (-) buttons have been added to aid exploration + * Numerically order pages/guides headers + +## v0.13.2 + + * Bug fixes + * Avoid scrollbar from appearing on all code snippets + +## v0.13.1 + + * Enhancements + * Autolink Elixir's stdlib modules and functions + * Show callbacks in search results + * Reduce size taken by font-sizes + * Increase size for headings in the moduledoc + + * Bug fixes + * Fix opened sidebar on small screens + * Allow horizontal scrolling for code snippets on small screens + +## v0.13.0 + + * Bug fixes + * Fix issue where docs would fail when being built on Erlang 19 + * Store templates in `priv` rather than in `lib` + + * Backwards incompatible changes + * Require Elixir ~> v1.2 + +## v0.12.0 + + * Enhancements + * Remove warnings when running on Elixir v1.3 + * Support for `@optional_callbacks` + * Improve styling for nested lists + * Include earmark as a default dependency + + * Bug fixes + * Fix many styling and performance front-end related bugs + +## v0.11.5 + + * Enhancements + * Support canonical URLs + + * Bug fixes + * Autolink now allows digits in function names + * Sort specs by line to preserve ordering + * Focus on content element on document ready + * Remove ligature fix on Firefox and Safari as Google Fonts have been updated + +## v0.11.4 + + * Bug fixes + * Fix ligature issues in recent browsers + * HTML escape headers + * Avoid warning on Elixir master (v1.3) + +## v0.11.3 + + * Bug fixes + * Fix a regression where the sidebar wouldn't stick on small screens + +## v0.11.2 + + * Enhancements + * Include night mode for docs + * Take advantage of extra space on large screens by widening sidebar + + * Bug fixes + * Do not attempt to retrieve docs from Erlang modules + +## v0.11.1 + + * Bug fixes + * Include callbacks even if a module defines a struct + +## v0.11.0 + + * Enhancements + * From now on it's possible to set the title in the sidebar area for + additional content, *default:* "Pages" + * Set the path and title of each additional page in `mix.exs` file + * Use the first `h1` as menu title if title is not configured + * Include the project name as part of the header in small devices + + * Bug fixes + * Increase the visual separation between functions + * Remove the `extra-` prefix for the additional documentation files + * Extra large images do not create an overflow in the content + +## v0.10.0 + + * Enhancements + * Many improvements and bug fixes in new layout + * Reduced build size + * Overview has been renamed to API Reference + * All extra content, including API Reference, has been moved to inside + "Pages" + * Extra files are now downcased and prefixed by `extra-` + +## v0.9.0 + + * Enhancements + * Whole new clean, readable, usable, responsive layout + * Support for adding logo to generated docs (must be 64x64 pixels) + * Support for adding extra pages to generated docs + * Improve formatting of typespecs and callbacks + + * Backwards incompatible changes + * `--readme` option and `:readme` configuration have been removed. Use + `:extras` in your `mix.exs` file or pass `--extra` / `-e` in the + command-line (may be given multiple times) + +## v0.8.4 + + * Bug fixes + * Generate `README.html` file instead of `readme.html` as in previous + releases + * Style fixes in the new layout + +## v0.8.3 + + * Bug fixes + * Style fixes in the new layout + +## v0.8.2 + + * Enhancements + * Uglify and minify JS and CSS code + * Performance improvements when building sidebar + * Redirect from index.html to proper page + + * Bug fixes + * Style fixes in the new layout + +## v0.8.1 + + * Bug fixes + * Style fixes in the new layout + +## v0.8.0 + + * Enhancements + * New and responsive layout without frames + +## v0.7.3 + + * Bug fixes + * Update [highlight.js][] with fixes some inlining issues + * Require latest [Earmark][] + +## v0.7.2 + + * Bug fixes + * Support Elixir master + * Fix error reporting when modules are compiled without docs + +## v0.7.1 + + * Enhancements + * Use `type=search` for search input + * Update [highlight.js][] dependency + * Properly tag code comments as coming from Elixir/IEx unless noted otherwise + * Add support for hash redirection + +## v0.7.0 + + * Enhancements + * Documentation is now generated at `doc` to follow OTP "standard" + +## v0.6.2 + + * Enhancements + * Improvements to the document structure + * Add syntax highlight + +## v0.6.1 + + * Enhancements + * Autolink modules and functions in the README + * Generate ids for callbacks starting with "c:" + * Ensure group ordering is consistent: TYPES > FUNCTIONS > MACROS > CALLBACKS + * Allow users to search by Module.function + +## v0.6.0 + + * Enhancements + * Support Elixir v1.0.0-rc1 + +## v0.5.2 + + * Bug fixes + * Use proper ANSI escape sequence on Mix success messages + +## v0.5.1 + + * Enhancements + * Support Elixir v0.15.0 + * Add support for [Earmark][] - no need for external processors + +## v0.5.0 + + * Enhancements + * First public release + * Support [pandoc][] and [devinus/markdown][markdown] as markdown processors + +[pandoc]: http://pandoc.org/ +[markdown]: https://github.com/devinus/markdown +[earmark]: https://github.com/pragdave/earmark +[highlight.js]: https://highlightjs.org/ diff --git a/spec/fixtures/mix/deps/ex_doc/LICENSE b/spec/fixtures/mix/deps/ex_doc/LICENSE new file mode 100644 index 00000000..bc7ed080 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/LICENSE @@ -0,0 +1,118 @@ +ExDoc +Copyright (c) 2012 Plataformatec +https://github.com/elixir-lang/ex_doc/ + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +========================================================================== + +highlight.js +Copyright (c) 2006, Ivan Sagalaev +https://highlightjs.org/ + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * 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. + * Neither the name of highlight.js nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS AND 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. + +========================================================================== + +jQuery JavaScript Library +Copyright jQuery Foundation and other contributors +http://jquery.org + + Released under the MIT license. + https://github.com/jquery/jquery/blob/master/LICENSE.txt + + +Includes Sizzle.js +Copyright jQuery Foundation and other contributors + + Released under the MIT license. + https://github.com/jquery/sizzle/blob/master/LICENSE.txt + +========================================================================== + +normalize.css +Copyright (c) Nicolas Gallagher and Jonathan Neal +https://necolas.github.io/normalize.css/ + + Released under the MIT License. + https://github.com/necolas/normalize.css/blob/master/LICENSE.md + +========================================================================== + +Tomorrow theme for highlight.js +By Yoshihide Jimbo +http://jmblog.github.io/color-themes-for-highlightjs/tomorrow/ + +Based on "Tomorrow Theme" by Chris Kempson. +https://github.com/chriskempson/tomorrow-theme + + Released under the MIT License. + https://github.com/chriskempson/tomorrow-theme/blob/master/LICENSE.md + +========================================================================== + +webpack +Copyright (c) 2012, Tobias Koppers +https://github.com/webpack/webpack + + Released under the MIT License. + http://www.opensource.org/licenses/mit-license.php + +========================================================================== + +lodash +https://lodash.com/ +Copyright 2012, The Dojo Foundation +http://dojofoundation.org/ + + Available under MIT license + https://github.com/lodash/lodash/blob/master/LICENSE + +Based on Underscore.js +Copyright 2009, Jeremy Ashkenas, DocumentCloud and +Investigative Reporters & Editors + + http://underscorejs.org/LICENSE + +========================================================================== + +IcoMoon +https://icomoon.io/ + + Released under the GPL version 3 and the Creative Commons Attribution 4.0 licenses. + https://www.gnu.org/licenses/gpl.html + https://creativecommons.org/licenses/by/4.0/ + +========================================================================== diff --git a/spec/fixtures/mix/deps/ex_doc/README.md b/spec/fixtures/mix/deps/ex_doc/README.md new file mode 100644 index 00000000..e1c2cb4c --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/README.md @@ -0,0 +1,122 @@ +# ExDoc + +[![Build Status](https://secure.travis-ci.org/elixir-lang/ex_doc.svg?branch=master "Build Status")](http://travis-ci.org/elixir-lang/ex_doc) +[![Coverage Status](https://coveralls.io/repos/github/elixir-lang/ex_doc/badge.svg?branch=master)](https://coveralls.io/github/elixir-lang/ex_doc?branch=master) +[![Ebert](https://ebertapp.io/github/elixir-lang/ex_doc.svg)](https://ebertapp.io/github/elixir-lang/ex_doc) + +ExDoc is a tool to generate documentation for your Elixir projects. In case you are looking for documentation for Elixir itself, [check out Elixir's website][elixir-lang]. + +To learn about how to document your projects check out [Elixir's writing documentation page][hex-writing-docs]. + +## Using ExDoc with Mix + +To use ExDoc in your Mix projects, first add ExDoc as a dependency: + +```elixir +def deps do + [{:ex_doc, "~> 0.16", only: :dev, runtime: false}] +end +``` + +After adding ExDoc as a dependency, run `mix deps.get` to install it. + +ExDoc will automatically pull in information from your projects, like the application and version. However, you may want to set `:name`, `:source_url` and `:homepage_url` to have a nicer output from ExDoc, such as: + +```elixir +def project do + [app: :my_app, + version: "0.1.0-dev", + deps: deps(), + + # Docs + name: "MyApp", + source_url: "https://github.com/USER/PROJECT", + homepage_url: "http://YOUR_PROJECT_HOMEPAGE", + docs: [main: "MyApp", # The main page in the docs + logo: "path/to/logo.png", + extras: ["README.md"]]] +end +``` + +Now you are ready to generate your project documentation with `mix docs`. + +To see all options available when generating docs, run `mix help docs`. You may have to run `mix docs` or `mix compile` first. + +## Using ExDoc via command line + +You can ExDoc via the command line as follows: + +1. Install ExDoc as an escript: + + ```console + $ mix escript.install hex ex_doc + ``` + +2. Then you are ready to use it in your projects. First, move into your project directory and make sure it is already compiled: + + ```console + $ cd PATH_TO_YOUR_PROJECT + $ mix compile + ``` + +3. Next invoke the ex_doc executable from your project: + + ```console + $ ex_doc "PROJECT_NAME" "PROJECT_VERSION" path/to/project/ebin -m "PROJECT_MODULE" -u "https://github.com/GITHUB_USER/GITHUB_REPO" -l path/to/logo.png + ``` + +4. By default, ex_doc produces HTML files, but, you can also create a EPUB document passing the option `--formatter epub`: + + ```console + $ PATH_TO_YOUR_EXDOC/bin/ex_doc "PROJECT_NAME" "PROJECT_VERSION" path/to/project/ebin -m "PROJECT_MODULE" -u "https://github.com/GITHUB_USER/GITHUB_REPO" -l path/to/logo.png -f epub + ``` + +For example, here are some acceptable values: + + PROJECT_NAME => Ecto + PROJECT_VERSION => 0.1.0 + PROJECT_MODULE => Ecto (the main module provided by the library) + GITHUB_USER => elixir-lang + GITHUB_REPO => ecto + +## Auto-linking + +ExDoc will automatically generate links across modules and functions if you enclose them in backticks: + + * By referring to a module, function, type or callback from your project, such as `` `MyModule` ``, ExDoc will automatically link to those + * By referring to a module, function, type or callback from Elixir, such as `` `String` ``, ExDoc will automatically link to Elixir's stable documentation + * By referring to a module or function from erlang, such as (`` `:erlang` ``), ExDoc will automatically link to the Erlang documentation + * By referring to a module, function, type or callback from any of your dependencies, such as `` `MyDep` ``, ExDoc will automatically link to that dependency documentation on [hexdocs.pm](http://hexdocs.pm/) (the link can be configured by setting `docs: [deps: [my_dep: "https://path/to/docs/"]]` in your `mix.exs`) + +ExDoc supports linking to modules (`` `MyModule` ``), functions (`` `MyModule.function/1` ``), types (`` `t:MyModule.type/2` ``) and callbacks (`` `c:MyModule.callback/3` ``). If you want to link a function, type or callback in the current module, you may skip the module name, such as `` `function/1` ``. + +## Changing the Markdown tool + +In the examples above, we have used [Earmark][] to convert Markdown to HTML. If you prefer, you can also use cmark (in C). + +### Cmark + +[Cmark][cmark] is a CommonMark parser written in C. To use cmark add the elixir NIF wrapper [cmark.ex][cmark.ex] as a dependency to your project: + +```elixir +{:cmark, "~> 0.6", only: :dev} +``` + +Update your project configuration to use Cmark: + +```elixir +docs: [markdown_processor: ExDoc.Markdown.Cmark] +``` + +# License + +ExDoc source code is released under Apache 2 License. The generated contents, however, are under different licenses based on projects used to help render HTML, including CSS, JS, and other assets. + +Check the [LICENSE](LICENSE) file for more information. + +[earmark]: http://github.com/pragdave/earmark +[elixir-lang]: http://elixir-lang.org/ +[cmark]: https://github.com/jgm/cmark +[cmark.ex]: https://github.com/asaaki/cmark.ex +[devinus/markdown]: http://github.com/devinus/markdown +[hex-writing-docs]: https://hexdocs.pm/elixir/writing-documentation.html diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/app-bbb6f0765d.js b/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/app-bbb6f0765d.js new file mode 100644 index 00000000..0efad953 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/app-bbb6f0765d.js @@ -0,0 +1,2 @@ +!function(e){function n(t){if(a[t])return a[t].exports;var i=a[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var a={};return n.m=e,n.c=a,n.p="",n(0)}([function(e,n,a){"use strict";var t=a(1)["default"],i=a(2),r=t(i);r["default"].initHighlightingOnLoad()},function(e,n){"use strict";n["default"]=function(e){return e&&e.__esModule?e:{"default":e}},n.__esModule=!0},function(e,n,a){!function(e){"object"==typeof window&&window||"object"==typeof self&&self;e(n)}(function(e){function n(e){return e.replace(/&/g,"&").replace(//g,">")}function a(e){return e.nodeName.toLowerCase()}function t(e,n){var a=e&&e.exec(n);return a&&0===a.index}function i(e){return M.test(e)}function r(e){var n,a,t,r,s=e.className+" ";if(s+=e.parentNode?e.parentNode.className:"",a=O.exec(s))return y(a[1])?a[1]:"no-highlight";for(s=s.split(/\s+/),n=0,t=s.length;n"}function o(e){d+=""}function l(e){("start"===e.event?s:o)(e.node)}for(var c=0,d="",u=[];e.length||t.length;){var g=r();if(d+=n(i.substring(c,g[0].offset)),c=g[0].offset,g===e){u.reverse().forEach(o);do l(g.splice(0,1)[0]),g=r();while(g===e&&g.length&&g[0].offset===c);u.reverse().forEach(s)}else"start"===g[0].event?u.push(g[0].node):u.pop(),l(g.splice(0,1)[0])}return d+n(i.substr(c))}function c(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(n){return s(e,{variants:null},n)})),e.cached_variants||e.endsWithParent&&[s(e)]||[e]}function d(e){function n(e){return e&&e.source||e}function a(a,t){return new RegExp(n(a),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}function t(i,r){if(!i.compiled){if(i.compiled=!0,i.keywords=i.keywords||i.beginKeywords,i.keywords){var s={},o=function(n,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");s[a[0]]=[n,a[1]?Number(a[1]):1]})};"string"==typeof i.keywords?o("keyword",i.keywords):x(i.keywords).forEach(function(e){o(e,i.keywords[e])}),i.keywords=s}i.lexemesRe=a(i.lexemes||/\w+/,!0),r&&(i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")\\b"),i.begin||(i.begin=/\B|\b/),i.beginRe=a(i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(i.endRe=a(i.end)),i.terminator_end=n(i.end)||"",i.endsWithParent&&r.terminator_end&&(i.terminator_end+=(i.end?"|":"")+r.terminator_end)),i.illegal&&(i.illegalRe=a(i.illegal)),null==i.relevance&&(i.relevance=1),i.contains||(i.contains=[]),i.contains=Array.prototype.concat.apply([],i.contains.map(function(e){return c("self"===e?i:e)})),i.contains.forEach(function(e){t(e,i)}),i.starts&&t(i.starts,r);var l=i.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([i.terminator_end,i.illegal]).map(n).filter(Boolean);i.terminators=l.length?a(l.join("|"),!0):{exec:function(){return null}}}}t(e)}function u(e,a,i,r){function s(e,n){var a,i;for(a=0,i=n.contains.length;a',r+n+s}function b(){var e,a,t,i;if(!w.keywords)return n(M);for(i="",a=0,w.lexemesRe.lastIndex=0,t=w.lexemesRe.exec(M);t;)i+=n(M.substring(a,t.index)),e=c(w,t),e?(O+=e[1],i+=m(e[0],n(t[0]))):i+=n(t[0]),a=w.lexemesRe.lastIndex,t=w.lexemesRe.exec(M);return i+n(M.substr(a))}function _(){var e="string"==typeof w.subLanguage;if(e&&!N[w.subLanguage])return n(M);var a=e?u(w.subLanguage,M,!0,x[w.subLanguage]):g(M,w.subLanguage.length?w.subLanguage:void 0);return w.relevance>0&&(O+=a.relevance),e&&(x[w.subLanguage]=a.top),m(a.language,a.value,!1,!0)}function p(){k+=null!=w.subLanguage?_():b(),M=""}function f(e){k+=e.className?m(e.className,"",!0):"",w=Object.create(e,{parent:{value:w}})}function h(e,n){if(M+=e,null==n)return p(),0;var a=s(n,w);if(a)return a.skip?M+=n:(a.excludeBegin&&(M+=n),p(),a.returnBegin||a.excludeBegin||(M=n)),f(a,n),a.returnBegin?0:n.length;var t=o(w,n);if(t){var i=w;i.skip?M+=n:(i.returnEnd||i.excludeEnd||(M+=n),p(),i.excludeEnd&&(M=n));do w.className&&(k+=A),w.skip||(O+=w.relevance),w=w.parent;while(w!==t.parent);return t.starts&&f(t.starts,""),i.returnEnd?0:n.length}if(l(n,w))throw new Error('Illegal lexeme "'+n+'" for mode "'+(w.className||"")+'"');return M+=n,n.length||1}var v=y(e);if(!v)throw new Error('Unknown language: "'+e+'"');d(v);var E,w=r||v,x={},k="";for(E=w;E!==v;E=E.parent)E.className&&(k=m(E.className,"",!0)+k);var M="",O=0;try{for(var R,C,T=0;;){if(w.terminators.lastIndex=T,R=w.terminators.exec(a),!R)break;C=h(a.substring(T,R.index),R[0]),T=R.index+C}for(h(a.substr(T)),E=w;E.parent;E=E.parent)E.className&&(k+=A);return{relevance:O,value:k,language:e,top:w}}catch(D){if(D.message&&D.message.indexOf("Illegal")!==-1)return{relevance:0,value:n(a)};throw D}}function g(e,a){a=a||S.languages||x(N);var t={relevance:0,value:n(e)},i=t;return a.filter(y).forEach(function(n){var a=u(n,e,!1);a.language=n,a.relevance>i.relevance&&(i=a),a.relevance>t.relevance&&(i=t,t=a)}),i.language&&(t.second_best=i),t}function m(e){return S.tabReplace||S.useBR?e.replace(R,function(e,n){return S.useBR&&"\n"===e?"
    ":S.tabReplace?n.replace(/\t/g,S.tabReplace):""}):e}function b(e,n,a){var t=n?k[n]:a,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),e.indexOf(t)===-1&&i.push(t),i.join(" ").trim()}function _(e){var n,a,t,s,c,d=r(e);i(d)||(S.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,c=n.textContent,t=d?u(d,c,!0):g(c),a=o(n),a.length&&(s=document.createElementNS("http://www.w3.org/1999/xhtml","div"),s.innerHTML=t.value,t.value=l(a,o(s),c)),t.value=m(t.value),e.innerHTML=t.value,e.className=b(e.className,d,t.language),e.result={language:t.language,re:t.relevance},t.second_best&&(e.second_best={language:t.second_best.language,re:t.second_best.relevance}))}function p(e){S=s(S,e)}function f(){if(!f.called){f.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,_)}}function h(){addEventListener("DOMContentLoaded",f,!1),addEventListener("load",f,!1)}function v(n,a){var t=N[n]=a(e);t.aliases&&t.aliases.forEach(function(e){k[e]=n})}function E(){return x(N)}function y(e){return e=(e||"").toLowerCase(),N[e]||N[k[e]]}var w=[],x=Object.keys,N={},k={},M=/^(no-?highlight|plain|text)$/i,O=/\blang(?:uage)?-([\w-]+)\b/i,R=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,A="",S={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=u,e.highlightAuto=g,e.fixMarkup=m,e.highlightBlock=_,e.configure=p,e.initHighlighting=f,e.initHighlightingOnLoad=h,e.registerLanguage=v,e.listLanguages=E,e.getLanguage=y,e.inherit=s,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(n,a,t){var i=e.inherit({className:"comment",begin:n,end:a,contains:[]},t||{});return i.contains.push(e.PHRASAL_WORDS_MODE),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),i},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e.registerLanguage("bash",function(e){var n={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},t={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,t,n]}}),e.registerLanguage("css",function(e){var n="[a-zA-Z-][a-zA-Z0-9_-]*",a={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:n,relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,a]}]}}),e.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}),e.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",t="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",i={className:"subst",begin:"#\\{",end:"}",lexemes:n,keywords:t},r={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},s={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},o=e.inherit(s,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),l=[r,e.HASH_COMMENT_MODE,o,s,{className:"symbol",begin:":(?!\\s)",contains:[r,{begin:a}],relevance:0},{className:"symbol",begin:n+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return i.contains=l,{lexemes:n,keywords:t,contains:l}}),e.registerLanguage("erlang-repl",function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),e.registerLanguage("erlang",function(e){var n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",t={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:t};g.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];var m=[i,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=m,l.contains=m,u.contains[1].contains=m;var b={className:"params",begin:"\\(",end:"\\)",contains:m};return{aliases:["erl"],keywords:t,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[b,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:t,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[b]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}),e.registerLanguage("http",function(e){var n="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),e.registerLanguage("javascript",function(e){var n="[A-Za-z$_][0-9A-Za-z$_]*",a={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,t,e.REGEXP_MODE];var s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:a,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:s}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}),e.registerLanguage("json",function(e){var n={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],t={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:n},i={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(t,{begin:/:/})],illegal:"\\S"},r={begin:"\\[",end:"\\]",contains:[e.inherit(t)],illegal:"\\S"};return a.splice(a.length,0,i,r),{contains:a,keywords:n,illegal:"\\S"}}),e.registerLanguage("xml",function(e){var n="[A-Za-z0-9\\._:-]+",a={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[a],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[a],starts:{end:"",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},a]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("sql",function(e){var n=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek", +literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n]},e.C_BLOCK_COMMENT_MODE,n]}}),e})}]); \ No newline at end of file diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/epub-612b95d9a4.css b/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/epub-612b95d9a4.css new file mode 100644 index 00000000..b92b5c81 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/epub/dist/epub-612b95d9a4.css @@ -0,0 +1 @@ +.hljs,body{display:block}.hljs-comment,.hljs-quote{color:#8e908c}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#c82829}.hljs-built_in,.hljs-builtin-name,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5871f}.hljs-attribute{color:#eab700}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#718c00}.hljs-section,.hljs-title{color:#4271ae}.hljs-keyword,.hljs-selector-tag{color:#8959a8}.hljs{overflow-x:auto;background:#fff;color:#4d4d4c;padding:.5em}code,pre code.hljs{background-color:#f7f9fc}a.no-underline,a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a.no-underline:visited,pre a,pre a:active,pre a:focus,pre a:hover,pre a:visited{color:#9768d1;text-decoration:none}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}body{font-size:1em;line-height:1.2;padding-left:0;padding-right:0;margin:0 5pt}nav>ol{list-style-type:square}nav>ol ol{list-style-type:disc}.title-container{text-align:center}a.no-underline,pre a{text-shadow:none;background-image:none}code{font-family:Inconsolata,Menlo,Courier,monospace;font-style:normal;line-height:24px;font-weight:400;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee}pre{margin:1.5em 0}pre.spec{margin:0}pre.spec code{padding:0}pre code.hljs{white-space:inherit;padding:.5em 1em} \ No newline at end of file diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/com.apple.ibooks.display-options.xml b/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/com.apple.ibooks.display-options.xml new file mode 100644 index 00000000..d9f042ab --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/com.apple.ibooks.display-options.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/container.xml b/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/container.xml new file mode 100644 index 00000000..8b80cd07 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/epub/metainfo/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-480ffdc169.css b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-480ffdc169.css new file mode 100644 index 00000000..c30bd32c --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-480ffdc169.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css?family=Lato:300,700|Merriweather:300italic,300|Inconsolata:400,700);.hljs,article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}.hljs-strong,b,optgroup,strong{font-weight:700}.hljs-emphasis,dfn{font-style:italic}img,legend{border:0}#search ul,.sidebar ul{list-style:none}.night-mode-toggle:focus,.sidebar .sidebar-search .search-input:focus,.sidebar .sidebar-search .search-input:hover,.sidebar-button:active,.sidebar-button:focus,.sidebar-button:hover,a:active,a:hover{outline:0}.content-inner .footer a,.content-inner a,body.night-mode .content-inner a{-webkit-text-decoration-skip:ink;text-decoration-skip:ink}.hljs-comment,.hljs-quote{color:#8e908c}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#c82829}.hljs-built_in,.hljs-builtin-name,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5871f}.hljs-attribute{color:#eab700}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#718c00}.hljs-section,.hljs-title{color:#4271ae}.hljs-keyword,.hljs-selector-tag{color:#8959a8}.hljs{overflow-x:auto;background:#fff;color:#4d4d4c;padding:.5em}legend,td,th{padding:0}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}abbr[title]{border-bottom:1px dotted}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}.content-outer,body{background-color:#fff}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.content,.main,.sidebar,body,html{height:100%}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:icomoon;src:url(../fonts/icomoon.eot?h5z89e);src:url(../fonts/icomoon.eot?#iefixh5z89e) format('embedded-opentype'),url(../fonts/icomoon.ttf?h5z89e) format('truetype'),url(../fonts/icomoon.woff?h5z89e) format('woff'),url(../fonts/icomoon.svg?h5z89e#icomoon) format('svg');font-weight:400;font-style:normal}.icon-elem,[class*=" icon-"],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar,body{font-family:Lato,sans-serif}.icon-link:before{content:"\e005"}.icon-search:before{content:"\e036"}.icon-cross:before{content:"\e117"}@media screen and (max-width:768px){.icon-menu{font-size:1em}}@media screen and (min-width:769px){.icon-menu{font-size:1.25em}}@media screen and (min-width:1281px){.icon-menu{font-size:1.5em}}.icon-menu:before{content:"\e120"}.icon-angle-right:before{content:"\f105"}.icon-code:before{content:"\f121"}body,html{box-sizing:border-box;width:100%}body{margin:0;font-size:16px;line-height:1.6875em}*,:after,:before{box-sizing:inherit}.main{display:-ms-flexbox;display:-ms-flex;display:flex;-ms-flex-pack:end;justify-content:flex-end}.sidebar{display:-ms-flexbox;display:-ms-flex;display:flex;min-height:0;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:300px;position:fixed;top:0;left:0;z-index:4}.content{width:100%;padding-left:300px;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;z-index:3}@media screen and (max-width:768px){body .content{z-index:0;padding-left:0}body .sidebar{z-index:3;transform:translateX(-102%);will-change:transform}}body.sidebar-closed .sidebar,body.sidebar-closing .sidebar,body.sidebar-opening .sidebar{z-index:0}body.sidebar-opened .sidebar-button,body.sidebar-opening .sidebar-button{transform:translateX(250px)}@media screen and (max-width:768px){body.sidebar-opened .sidebar,body.sidebar-opening .sidebar{transform:translateX(0)}}body.sidebar-closed .content,body.sidebar-closing .content{padding-left:0}body.sidebar-closed .sidebar-button,body.sidebar-closing .sidebar-button{transform:none}body.sidebar-closed .sidebar-button{color:#000}body.sidebar-opening .sidebar-button{transition:transform .3s ease-in-out}body.sidebar-opening .content{padding-left:300px;transition:padding-left .3s ease-in-out}@media screen and (max-width:768px){body.sidebar-opening .content{padding-left:0}body.sidebar-opening .sidebar{transition:transform .3s ease-in-out;z-index:3}}body.sidebar-closing .sidebar-button{transition:transform .3s ease-in-out}body.sidebar-closing .content{transition:padding-left .3s ease-in-out}@media screen and (max-width:768px){body.sidebar-closing .sidebar{z-index:3;transition:transform .3s ease-in-out;transform:translateX(-102%)}}.sidebar a,.sidebar-button{transition:color .3s ease-in-out}body.sidebar-closed .sidebar{visibility:hidden}.content-inner{max-width:949px;margin:0 auto;padding:3px 60px}.content-outer{min-height:100%}@media screen and (max-width:768px){.content-inner{padding:27px 20px 27px 40px}}.sidebar-button{position:fixed;z-index:99;left:18px;color:#e1e1e1;background-color:transparent;border:none;padding:0;font-size:16px;will-change:transform;transform:translateX(250px)}.sidebar-button:hover{color:#e1e1e1}.sidebar-button .sidebar-toggle{top:8px}@media screen and (max-width:768px){.sidebar-button{transform:translateX(0);left:5px;top:5px}.sidebar-opened .sidebar-button{left:18px}}.sidebar{font-size:15px;line-height:18px;background:#373f52;color:#d5dae6;overflow:hidden}.sidebar .gradient{background:linear-gradient(#373f52,rgba(55,63,82,0));height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:#d5dae6;text-decoration:none}.sidebar a:hover{color:#fff}.sidebar .sidebar-projectLink{margin:18px 30px 0}.sidebar .sidebar-projectDetails{display:inline-block;text-align:right;vertical-align:top;margin-top:6px}.sidebar .sidebar-projectImage{display:inline-block;max-width:64px;max-height:64px;margin-left:15px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:24px;line-height:30px;color:#fff;margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{margin:0;padding:0;font-weight:300;font-size:16px;line-height:20px;color:#fff}.sidebar .sidebar-listNav{padding:10px 30px 20px;margin:0}.sidebar .sidebar-listNav li,.sidebar .sidebar-listNav li a{text-transform:uppercase;font-weight:300;font-size:14px}.sidebar .sidebar-listNav li{padding-left:17px;border-left:3px solid transparent;transition:all .3s linear;line-height:27px}.sidebar .sidebar-listNav li.selected,.sidebar .sidebar-listNav li.selected a,.sidebar .sidebar-listNav li:hover,.sidebar .sidebar-listNav li:hover a{border-color:#9768d1;color:#fff}.sidebar .sidebar-search{margin:18px 30px;display:-ms-flexbox;display:-ms-flex;display:flex}.sidebar .sidebar-search .search-button:hover,.sidebar .sidebar-search.selected .search-button{color:#9768d1}.sidebar .sidebar-search .search-button{font-size:14px;color:#d5dae6;background-color:transparent;border:none;padding:2px 0 0;margin:0}.sidebar .sidebar-search .search-input{background-color:transparent;border:none;border-radius:0;border-bottom:1px solid #959595;margin-left:5px;height:20px}.sidebar .sidebar-search .icon-search{font-weight:700}.sidebar #full-list{margin:0 0 0 30px;padding:10px 20px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch;-moz-flex:1 1 .01%;-ms-flex:1 1 .01%;flex:1 1 .01%;-ms-flex-positive:1;-ms-flex-negative:1;-ms-flex-preferred-size:.01%}.sidebar #full-list ul{display:none;margin:9px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:18px;padding:2px 10px}.sidebar #full-list ul li a.expand:before{content:"+";font-family:monospaced;font-size:15px;float:left;width:13px;margin-left:-13px}.sidebar #full-list ul li.open a.expand:before{content:"−"}.sidebar #full-list ul li ul{display:none;margin:9px 6px}.sidebar #full-list li.open>ul,.sidebar #full-list ul li.open>ul{display:block}.sidebar #full-list ul li ul li{border-left:1px solid #959595;padding:0 10px}.sidebar #full-list ul li ul li.active:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f105";margin-left:-10px;font-size:16px;margin-right:5px}.sidebar #full-list li{padding:0;line-height:27px}.sidebar #full-list li.active{border-left:none}.sidebar #full-list li.active>a,.sidebar #full-list li.clicked>a{color:#fff}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:2em 0 0;line-height:1.8em;color:#ddd}@media screen and (max-height:500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:Merriweather,'Book Antiqua',Georgia,'Century Schoolbook',serif;font-size:1em;line-height:1.6875em}.content-inner h1,.content-inner h2,.content-inner h3,.content-inner h4,.content-inner h5,.content-inner h6{font-family:Lato,sans-serif;font-weight:700;line-height:1.5em;word-wrap:break-word}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 a.view-source{font-size:1.2rem}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner a{color:#000;text-decoration:underline}.content-inner a:visited{color:#000}.content-inner ul li{line-height:1.5em}.content-inner ul li>p{margin:0}.content-inner a.view-source{float:right;color:#959595;text-decoration:none;border:none;transition:color .3s ease-in-out;margin-top:1px}.content-inner a.view-source:hover{color:#373f52}.content-inner .note{color:#959595;margin:0 5px;font-size:14px;font-weight:400}.content-inner blockquote{font-style:italic;margin:.5em 0;padding:.25em 1.5em;border-left:3px solid #e1e1e1;display:inline-block}.content-inner blockquote :first-child{padding-top:0;margin-top:0}.content-inner blockquote :last-child{padding-bottom:0;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:Lato,sans-serif;text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid #d5dae6;vertical-align:bottom;height:2.5em}.content-inner .summary .summary-row .summary-signature a,.content-inner .summary h2 a{border:none;text-decoration:none}.content-inner td,.content-inner th{padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .6em .6em;line-height:1em;margin-left:-2.7em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}.content-inner .detail h2.section-heading{margin-left:.3em}.content-inner .visible-xs{display:none!important}@media screen and (max-width:768px){.content-inner .visible-xs{display:block!important}}.content-inner img{max-width:100%}.content-inner .summary h2{font-weight:700}.content-inner .summary .summary-row .summary-signature{font-family:Inconsolata,Menlo,Courier,monospace;font-weight:700}.content-inner .summary .summary-row .summary-synopsis{font-family:Merriweather,'Book Antiqua',Georgia,'Century Schoolbook',serif;font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@keyframes blink-background{from{background-color:#f7f7f7}to{background-color:#ff9}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background:#f7f7f7;border-left:3px solid #9768d1;font-size:1em;font-family:Inconsolata,Menlo,Courier,monospace;position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}#search h1,.content-inner .footer .line{display:inline-block}.content-inner .specs pre,.content-inner code{font-family:Inconsolata,Menlo,Courier,monospace;font-style:normal;line-height:24px}.content-inner .specs{opacity:.7;padding-bottom:.05em}.content-inner .specs pre{font-size:.9em;white-space:pre-wrap;margin:0;padding:0}.content-inner .docstring{margin:1.2em 0 2.1em 1.2em}.content-inner .docstring h2,.content-inner .docstring h3,.content-inner .docstring h4,.content-inner .docstring h5{font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner a.no-underline,.content-inner pre a{color:#9768d1;text-shadow:none;text-decoration:none;background-image:none}.content-inner a.no-underline:active,.content-inner a.no-underline:focus,.content-inner a.no-underline:hover,.content-inner a.no-underline:visited,.content-inner pre a:active,.content-inner pre a:focus,.content-inner pre a:hover,.content-inner pre a:visited{color:#9768d1;text-decoration:none}.content-inner code{font-weight:400;background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee}.content-inner pre{margin:1.5em 0}.content-inner pre.spec{margin:0}.content-inner pre.spec code{padding:0}.content-inner pre code.hljs{white-space:inherit;padding:.5em 1em;background-color:#f7f9fc}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px;color:#959595}.content-inner .footer a{color:#959595;text-decoration:underline}.content-inner .footer a:visited{color:#959595}#search{min-height:200px}#search .result-id{font-size:1.2em}#search .result-id a{text-decoration:none;transition:color .3s ease-in-out}#search .result-id a:active,#search .result-id a:focus,#search .result-id a:visited{color:#000}#search .result-id a:hover{color:#9768d1}#search .result-elem em,#search .result-id em{font-style:normal;color:#9768d1}#search ul{margin:0;padding:0}.night-mode-toggle{top:1.5em}.night-mode-toggle .icon-theme::before{content:"\e900"}@media screen and (max-width:768px){.night-mode-toggle .icon-theme::before{font-size:1em}.night-mode-toggle{transform:translateX(0);left:5px;top:1.5em}.sidebar-opened .night-mode-toggle{left:18px}}@media screen and (min-width:769px){.night-mode-toggle .icon-theme::before{font-size:1.25em}}@media screen and (min-width:1281px){.night-mode-toggle .icon-theme::before{font-size:1.5em}}body.night-mode{background:#212127}body.night-mode .hljs-comment,body.night-mode .hljs-quote{color:#969896}body.night-mode .hljs-deletion,body.night-mode .hljs-name,body.night-mode .hljs-regexp,body.night-mode .hljs-selector-class,body.night-mode .hljs-selector-id,body.night-mode .hljs-tag,body.night-mode .hljs-template-variable,body.night-mode .hljs-variable{color:#c66}body.night-mode .hljs-built_in,body.night-mode .hljs-builtin-name,body.night-mode .hljs-link,body.night-mode .hljs-literal,body.night-mode .hljs-meta,body.night-mode .hljs-number,body.night-mode .hljs-params,body.night-mode .hljs-type{color:#de935f}body.night-mode .hljs-attribute{color:#f0c674}body.night-mode .hljs-addition,body.night-mode .hljs-bullet,body.night-mode .hljs-string,body.night-mode .hljs-symbol{color:#b5bd68}body.night-mode .hljs-section,body.night-mode .hljs-title{color:#81a2be}body.night-mode .hljs-keyword,body.night-mode .hljs-selector-tag{color:#b294bb}body.night-mode .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:.5em}body.night-mode .hljs-emphasis{font-style:italic}body.night-mode .hljs-strong{font-weight:700}body.night-mode .content-outer{background:#212127}body.night-mode .night-mode-toggle .icon-theme::before{content:"\e901"}body.night-mode #search .result-id a:active,body.night-mode #search .result-id a:focus,body.night-mode #search .result-id a:visited{color:#D2D2D2}body.night-mode #search .result-id a:hover{color:#9768d1}body.night-mode .content-inner{color:#B4B4B4}body.night-mode .content-inner a:visited,body.night-mode .content-inner h1,body.night-mode .content-inner h2,body.night-mode .content-inner h3,body.night-mode .content-inner h4,body.night-mode .content-inner h5,body.night-mode .content-inner h6{color:#D2D2D2}body.night-mode .content-inner a{color:#D2D2D2;text-decoration:underline}body.night-mode .content-inner .summary h2 a,body.night-mode .content-inner a.no-underline,body.night-mode .content-inner a.view-source,body.night-mode .content-inner pre a{text-decoration:none}body.night-mode .content-inner a.view-source:hover{color:#fff}@keyframes night-blink-background{from{background-color:#3A4152}to{background-color:#660}}body.night-mode .content-inner .detail:target .detail-header{animation-name:night-blink-background}body.night-mode .content-inner .detail-header{background:#3A4152;color:#D2D2D2}body.night-mode .content-inner .footer,body.night-mode .content-inner .footer a{color:#959595}body.night-mode .content-inner code{background-color:#2C2C31;border-color:#44444c}body.night-mode .content-inner pre code.hljs{background-color:#2C2C31}body.night-mode .content-inner .footer .line{display:inline-block}body.night-mode .sidebar-button,body.night-mode .sidebar-closed .sidebar-button{color:#d5dae6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible}.summary-row{page-break-inside:avoid}} \ No newline at end of file diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js new file mode 100644 index 00000000..e4a0ccfd --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js @@ -0,0 +1,8 @@ +!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var r=n(1)["default"],i=n(2),o=r(i),a=n(3),u=r(a),s=n(4),l=n(86),c=n(89);window.$=o["default"],(0,o["default"])(function(){u["default"].configure({tabReplace:" ",languages:[]}),(0,c.initialize)(),(0,l.initialize)(),(0,s.initialize)(),u["default"].initHighlighting()})},function(e,t){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){var r,i;!function(t,n){"use strict";"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(n,o){"use strict";function a(e,t,n){t=t||ce;var r,i=t.createElement("script");if(i.text=e,n)for(r in ke)n[r]&&(i[r]=n[r]);t.head.appendChild(i).parentNode.removeChild(i)}function u(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ve[me.call(e)]||"object":typeof e}function s(e){var t=!!e&&"length"in e&&e.length,n=u(e);return!we(e)&&!Ee(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function l(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function c(e,t,n){return we(t)?Ne.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?Ne.grep(e,function(e){return e===t!==n}):"string"!=typeof t?Ne.grep(e,function(e){return ge.call(t,e)>-1!==n}):Ne.filter(t,e,n)}function f(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function p(e){var t={};return Ne.each(e.match(qe)||[],function(e,n){t[n]=!0}),t}function d(e){return e}function h(e){throw e}function g(e,t,n,r){var i;try{e&&we(i=e.promise)?i.call(e).done(t).fail(n):e&&we(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}function v(){ce.removeEventListener("DOMContentLoaded",v),n.removeEventListener("load",v),Ne.ready()}function m(e,t){return t.toUpperCase()}function y(e){return e.replace(ze,"ms-").replace(Fe,m)}function b(){this.expando=Ne.expando+b.uid++}function _(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Ge.test(e)?JSON.parse(e):e)}function x(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Ve,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n=_(n)}catch(i){}Ke.set(e,t,n)}else n=void 0;return n}function w(e,t,n,r){var i,o,a=20,u=r?function(){return r.cur()}:function(){return Ne.css(e,t,"")},s=u(),l=n&&n[3]||(Ne.cssNumber[t]?"":"px"),c=(Ne.cssNumber[t]||"px"!==l&&+s)&&Ze.exec(Ne.css(e,t));if(c&&c[3]!==l){for(s/=2,l=l||c[3],c=+s||1;a--;)Ne.style(e,t,c+l),(1-o)*(1-(o=u()/s||.5))<=0&&(a=0),c/=o;c=2*c,Ne.style(e,t,c+l),n=n||[]}return n&&(c=+c||+s||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function E(e){var t,n=e.ownerDocument,r=e.nodeName,i=et[r];return i?i:(t=n.body.appendChild(n.createElement(r)),i=Ne.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),et[r]=i,i)}function k(e,t){for(var n,r,i=[],o=0,a=e.length;o-1)i&&i.push(o);else if(c=Ne.contains(o.ownerDocument,o),a=C(p.appendChild(o),"script"),c&&N(a),n)for(f=0;o=a[f++];)rt.test(o.type||"")&&n.push(o);return p}function A(){return!0}function S(){return!1}function j(){try{return ce.activeElement}catch(e){}}function O(e,t,n,r,i,o){var a,u;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(u in t)O(e,u,n,r,t[u],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=S;else if(!i)return e;return 1===o&&(a=i,i=function(e){return Ne().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=Ne.guid++)),e.each(function(){Ne.event.add(this,t,i,r,n)})}function M(e,t){return l(e,"table")&&l(11!==t.nodeType?t:t.firstChild,"tr")?Ne(e).children("tbody")[0]||e:e}function D(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function R(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function P(e,t){var n,r,i,o,a,u,s,l;if(1===t.nodeType){if(Ue.hasData(e)&&(o=Ue.access(e),a=Ue.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof h&&!xe.checkClone&&pt.test(h))return e.each(function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),I(o,t,n,r)});if(p&&(i=T(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=Ne.map(C(i,"script"),D),s=u.length;f=0&&(s+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-s-u-.5))),s}function U(e,t,n){var r=gt(e),i=H(e,t,r),o="border-box"===Ne.css(e,"boxSizing",!1,r),a=o;if(ht.test(i)){if(!n)return i;i="auto"}return a=a&&(xe.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===Ne.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),i=parseFloat(i)||0,i+W(e,t,n||(o?"border":"content"),a,r,i)+"px"}function K(e,t,n,r,i){return new K.prototype.init(e,t,n,r,i)}function G(){kt&&(ce.hidden===!1&&n.requestAnimationFrame?n.requestAnimationFrame(G):n.setTimeout(G,Ne.fx.interval),Ne.fx.tick())}function V(){return n.setTimeout(function(){Et=void 0}),Et=Date.now()}function X(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)n=Qe[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function Z(e,t,n){for(var r,i=(J.tweeners[t]||[]).concat(J.tweeners["*"]),o=0,a=i.length;o=0&&nE.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[B]=!0,e}function i(e){var t=D.createElement("fieldset");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)E.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function u(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function s(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return function(t){return"form"in t?t.parentNode&&t.disabled===!1?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ke(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function v(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else b=m(b===a?b.splice(h,b.length):b),o?o(null,a,b,s):Y.apply(a,b)})}function b(e){for(var t,n,r,i=e.length,o=E.relative[e[0].type],a=o||E.relative[" "],u=o?1:0,s=h(function(e){return e===t},a,!0),l=h(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==S)||((t=n).nodeType?s(e,n,r):l(e,n,r));return t=null,i}];u1&&g(c),u>1&&d(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(ue,"$1"),n,u0,o=e.length>0,a=function(r,a,u,s,l){var c,f,p,d=0,h="0",g=r&&[],v=[],y=S,b=r||o&&E.find.TAG("*",l),_=z+=null==y?1:Math.random()||.1,x=b.length;for(l&&(S=a===D||a||l);h!==x&&null!=(c=b[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===D||(M(c),u=!P);p=e[f++];)if(p(c,a||D,u)){s.push(c);break}l&&(z=_)}i&&((c=!p&&c)&&d--,r&&g.push(c))}if(d+=h,i&&h!==d){for(f=0;p=n[f++];)p(g,v,a,u);if(r){if(d>0)for(;h--;)g[h]||v[h]||(v[h]=Z.call(s));v=m(v)}Y.apply(s,v),l&&!r&&v.length>0&&d+n.length>1&&t.uniqueSort(s)}return l&&(z=_,S=y),g};return i?r(a):a}var x,w,E,k,C,N,T,A,S,j,O,M,D,R,P,L,I,q,H,B="sizzle"+1*new Date,$=e.document,z=0,F=0,W=n(),U=n(),K=n(),G=function(e,t){return e===t&&(O=!0),0},V={}.hasOwnProperty,X=[],Z=X.pop,Q=X.push,Y=X.push,J=X.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),pe=new RegExp("^"+re+"$"),de={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,me=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),_e=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,we=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ee=function(){M()},ke=h(function(e){return e.disabled===!0&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{Y.apply(X=J.call($.childNodes),$.childNodes),X[$.childNodes.length].nodeType}catch(Ce){Y={apply:X.length?function(e,t){Q.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},M=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:$;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,R=D.documentElement,P=!C(D),$!==D&&(n=D.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ee,!1):n.attachEvent&&n.attachEvent("onunload",Ee)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(D.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ve.test(D.getElementsByClassName),w.getById=i(function(e){return R.appendChild(e).id=B,!D.getElementsByName||!D.getElementsByName(B).length}),w.getById?(E.filter.ID=function(e){var t=e.replace(be,_e);return function(e){return e.getAttribute("id")===t}},E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&P){var n=t.getElementById(e);return n?[n]:[]}}):(E.filter.ID=function(e){var t=e.replace(be,_e);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&P){var n,r,i,o=t.getElementById(e);if(o){if(n=o.getAttributeNode("id"),n&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if(n=o.getAttributeNode("id"),n&&n.value===e)return[o]}return[]}}),E.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},E.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&P)return t.getElementsByClassName(e)},I=[],L=[],(w.qsa=ve.test(D.querySelectorAll))&&(i(function(e){R.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&L.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||L.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+B+"-]").length||L.push("~="),e.querySelectorAll(":checked").length||L.push(":checked"),e.querySelectorAll("a#"+B+"+*").length||L.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=D.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&L.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&L.push(":enabled",":disabled"),R.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&L.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),L.push(",.*:")})),(w.matchesSelector=ve.test(q=R.matches||R.webkitMatchesSelector||R.mozMatchesSelector||R.oMatchesSelector||R.msMatchesSelector))&&i(function(e){w.disconnectedMatch=q.call(e,"*"),q.call(e,"[s!='']:x"),I.push("!=",oe)}),L=L.length&&new RegExp(L.join("|")),I=I.length&&new RegExp(I.join("|")),t=ve.test(R.compareDocumentPosition),H=t||ve.test(R.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=t?function(e,t){if(e===t)return O=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===D||e.ownerDocument===$&&H($,e)?-1:t===D||t.ownerDocument===$&&H($,t)?1:j?ee(j,e)-ee(j,t):0:4&n?-1:1)}:function(e,t){if(e===t)return O=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,u=[e],s=[t];if(!i||!o)return e===D?-1:t===D?1:i?-1:o?1:j?ee(j,e)-ee(j,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;u[r]===s[r];)r++;return r?a(u[r],s[r]):u[r]===$?-1:s[r]===$?1:0},D):D},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==D&&M(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&P&&!K[n+" "]&&(!I||!I.test(n))&&(!L||!L.test(n)))try{var r=q.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,D,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==D&&M(e),H(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==D&&M(e);var n=E.attrHandle[t.toLowerCase()],r=n&&V.call(E.attrHandle,t.toLowerCase())?n(e,t,!P):void 0;return void 0!==r?r:w.attributes||!P?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(xe,we)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(O=!w.detectDuplicates,j=!w.sortStable&&e.slice(0),e.sort(G),O){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return j=null,e},k=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=k(t);return n},E=t.selectors={cacheLength:50,createPseudo:r,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,_e),e[3]=(e[3]||e[4]||e[5]||"").replace(be,_e),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,_e).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),u="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,s){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,m=u&&t.nodeName.toLowerCase(),y=!s&&!u,b=!1;if(v){if(o){for(;g;){for(p=t;p=p[g];)if(u?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(p=v,f=p[B]||(p[B]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),l=c[e]||[],d=l[0]===z&&l[1],b=d&&l[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||h.pop();)if(1===p.nodeType&&++b&&p===t){c[e]=[z,d,b];break}}else if(y&&(p=t,f=p[B]||(p[B]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),l=c[e]||[],d=l[0]===z&&l[1],b=d),b===!1)for(;(p=++d&&p&&p[g]||(b=d=0)||h.pop())&&((u?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++b||(y&&(f=p[B]||(p[B]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),c[e]=[z,b]),p!==t)););return b-=i,b===r||b%r===0&&b/r>=0}}},PSEUDO:function(e,n){var i,o=E.pseudos[e]||E.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[B]?o(n):o.length>1?(i=[e,e,"",n],E.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=T(e.replace(ue,"$1"));return i[B]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),u=e.length;u--;)(o=a[u])&&(e[u]=!(t[u]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n), +t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,_e),function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:r(function(e){return pe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,_e).toLowerCase(),function(t){var n;do if(n=P?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===R},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:l(!1),disabled:l(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!E.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[n<0?n+t:n]}),even:c(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&9===t.nodeType&&P&&E.relative[o[1].type]){if(t=(E.find.ID(a.matches[0].replace(be,_e),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=de.needsContext.test(e)?0:o.length;i--&&(a=o[i],!E.relative[u=a.type]);)if((s=E.find[u])&&(r=s(a.matches[0].replace(be,_e),ye.test(o[0].type)&&f(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Y.apply(n,r),n;break}}return(l||T(e,c))(r,t,!P,n,!t||ye.test(e)&&f(t.parentNode)||t),n},w.sortStable=B.split("").sort(G).join("")===B,w.detectDuplicates=!!O,M(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(n);Ne.find=Ae,Ne.expr=Ae.selectors,Ne.expr[":"]=Ne.expr.pseudos,Ne.uniqueSort=Ne.unique=Ae.uniqueSort,Ne.text=Ae.getText,Ne.isXMLDoc=Ae.isXML,Ne.contains=Ae.contains,Ne.escapeSelector=Ae.escape;var Se=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&Ne(e).is(n))break;r.push(e)}return r},je=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Oe=Ne.expr.match.needsContext,Me=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;Ne.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Ne.find.matchesSelector(r,e)?[r]:[]:Ne.find.matches(e,Ne.grep(t,function(e){return 1===e.nodeType}))},Ne.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(Ne(e).filter(function(){for(t=0;t1?Ne.uniqueSort(n):n},filter:function(e){return this.pushStack(c(this,e||[],!1))},not:function(e){return this.pushStack(c(this,e||[],!0))},is:function(e){return!!c(this,"string"==typeof e&&Oe.test(e)?Ne(e):e||[],!1).length}});var De,Re=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Pe=Ne.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||De,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Re.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof Ne?t[0]:t,Ne.merge(this,Ne.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:ce,!0)),Me.test(r[1])&&Ne.isPlainObject(t))for(r in t)we(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=ce.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):we(e)?void 0!==n.ready?n.ready(e):e(Ne):Ne.makeArray(e,this)};Pe.prototype=Ne.fn,De=Ne(ce);var Le=/^(?:parents|prev(?:Until|All))/,Ie={children:!0,contents:!0,next:!0,prev:!0};Ne.fn.extend({has:function(e){var t=Ne(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&Ne.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?Ne.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ge.call(Ne(e),this[0]):ge.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Ne.uniqueSort(Ne.merge(this.get(),Ne(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Ne.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Se(e,"parentNode")},parentsUntil:function(e,t,n){return Se(e,"parentNode",n)},next:function(e){return f(e,"nextSibling")},prev:function(e){return f(e,"previousSibling")},nextAll:function(e){return Se(e,"nextSibling")},prevAll:function(e){return Se(e,"previousSibling")},nextUntil:function(e,t,n){return Se(e,"nextSibling",n)},prevUntil:function(e,t,n){return Se(e,"previousSibling",n)},siblings:function(e){return je((e.parentNode||{}).firstChild,e)},children:function(e){return je(e.firstChild)},contents:function(e){return l(e,"iframe")?e.contentDocument:(l(e,"template")&&(e=e.content||e),Ne.merge([],e.childNodes))}},function(e,t){Ne.fn[e]=function(n,r){var i=Ne.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=Ne.filter(r,i)),this.length>1&&(Ie[e]||Ne.uniqueSort(i),Le.test(e)&&i.reverse()),this.pushStack(i)}});var qe=/[^\x20\t\r\n\f]+/g;Ne.Callbacks=function(e){e="string"==typeof e?p(e):Ne.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?Ne.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},Ne.extend({Deferred:function(e){var t=[["notify","progress",Ne.Callbacks("memory"),Ne.Callbacks("memory"),2],["resolve","done",Ne.Callbacks("once memory"),Ne.Callbacks("once memory"),0,"resolved"],["reject","fail",Ne.Callbacks("once memory"),Ne.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return Ne.Deferred(function(n){Ne.each(t,function(t,r){var i=we(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&we(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(e,r,i){function o(e,t,r,i){return function(){var u=this,s=arguments,l=function(){var n,l;if(!(e=a&&(r!==h&&(u=void 0,s=[n]),t.rejectWith(u,s))}};e?c():(Ne.Deferred.getStackHook&&(c.stackTrace=Ne.Deferred.getStackHook()),n.setTimeout(c))}}var a=0;return Ne.Deferred(function(n){t[0][3].add(o(0,n,we(i)?i:d,n.notifyWith)),t[1][3].add(o(0,n,we(e)?e:d)),t[2][3].add(o(0,n,we(r)?r:h))}).promise()},promise:function(e){return null!=e?Ne.extend(e,i):i}},o={};return Ne.each(t,function(e,n){var a=n[2],u=n[5];i[n[1]]=a.add,u&&a.add(function(){r=u},t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(n[3].fire),o[n[0]]=function(){return o[n[0]+"With"](this===o?void 0:this,arguments),this},o[n[0]+"With"]=a.fireWith}),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=pe.call(arguments),o=Ne.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?pe.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(g(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||we(i[n]&&i[n].then)))return o.then();for(;n--;)g(i[n],a(n),o.reject);return o.promise()}});var He=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;Ne.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&He.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},Ne.readyException=function(e){n.setTimeout(function(){throw e})};var Be=Ne.Deferred();Ne.fn.ready=function(e){return Be.then(e)["catch"](function(e){Ne.readyException(e)}),this},Ne.extend({isReady:!1,readyWait:1,ready:function(e){(e===!0?--Ne.readyWait:Ne.isReady)||(Ne.isReady=!0,e!==!0&&--Ne.readyWait>0||Be.resolveWith(ce,[Ne]))}}),Ne.ready.then=Be.then,"complete"===ce.readyState||"loading"!==ce.readyState&&!ce.documentElement.doScroll?n.setTimeout(Ne.ready):(ce.addEventListener("DOMContentLoaded",v),n.addEventListener("load",v));var $e=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===u(n)){i=!0;for(s in n)$e(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,we(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(Ne(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){Ke.remove(this,e)})}}),Ne.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Ue.get(e,t),n&&(!r||Array.isArray(n)?r=Ue.access(e,t,Ne.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=Ne.queue(e,t),r=n.length,i=n.shift(),o=Ne._queueHooks(e,t),a=function(){Ne.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Ue.get(e,n)||Ue.access(e,n,{empty:Ne.Callbacks("once memory").add(function(){Ue.remove(e,[t+"queue",n])})})}}),Ne.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,rt=/^$|^module$|\/(?:java|ecma)script/i,it={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};it.optgroup=it.option,it.tbody=it.tfoot=it.colgroup=it.caption=it.thead,it.th=it.td;var ot=/<|&#?\w+;/;!function(){var e=ce.createDocumentFragment(),t=e.appendChild(ce.createElement("div")),n=ce.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),xe.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",xe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var at=ce.documentElement,ut=/^key/,st=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,lt=/^([^.]*)(?:\.(.+)|)/;Ne.event={global:{},add:function(e,t,n,r,i){var o,a,u,s,l,c,f,p,d,h,g,v=Ue.get(e);if(v)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&Ne.find.matchesSelector(at,i),n.guid||(n.guid=Ne.guid++),(s=v.events)||(s=v.events={}),(a=v.handle)||(a=v.handle=function(t){return"undefined"!=typeof Ne&&Ne.event.triggered!==t.type?Ne.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(qe)||[""],l=t.length;l--;)u=lt.exec(t[l])||[],d=g=u[1],h=(u[2]||"").split(".").sort(),d&&(f=Ne.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=Ne.event.special[d]||{},c=Ne.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&Ne.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=s[d])||(p=s[d]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,h,a)!==!1||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),Ne.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,u,s,l,c,f,p,d,h,g,v=Ue.hasData(e)&&Ue.get(e);if(v&&(s=v.events)){for(t=(t||"").match(qe)||[""],l=t.length;l--;)if(u=lt.exec(t[l])||[],d=g=u[1],h=(u[2]||"").split(".").sort(),d){for(f=Ne.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=s[d]||[],u=u[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||u&&!u.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,v.handle)!==!1||Ne.removeEvent(e,d,v.handle),delete s[d])}else for(d in s)Ne.event.remove(e,d+t[l],n,r,!0);Ne.isEmptyObject(s)&&Ue.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,u=Ne.event.fix(e),s=new Array(arguments.length),l=(Ue.get(this,"events")||{})[u.type]||[],c=Ne.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||l.disabled!==!0)){for(o=[],a={},n=0;n-1:Ne.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&u.push({elem:l,handlers:o})}return l=this,s\x20\t\r\n\f]*)[^>]*)\/>/gi,ft=/\s*$/g;Ne.extend({htmlPrefilter:function(e){return e.replace(ct,"<$1>")},clone:function(e,t,n){var r,i,o,a,u=e.cloneNode(!0),s=Ne.contains(e.ownerDocument,e);if(!(xe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Ne.isXMLDoc(e)))for(a=C(u),o=C(e),r=0,i=o.length;r0&&N(a,!s&&C(e,"script")),u},cleanData:function(e){for(var t,n,r,i=Ne.event.special,o=0;void 0!==(n=e[o]);o++)if(We(n)){if(t=n[Ue.expando]){if(t.events)for(r in t.events)i[r]?Ne.event.remove(n,r):Ne.removeEvent(n,r,t.handle);n[Ue.expando]=void 0}n[Ke.expando]&&(n[Ke.expando]=void 0)}}}),Ne.fn.extend({detach:function(e){return q(this,e,!0)},remove:function(e){return q(this,e)},text:function(e){return $e(this,function(e){return void 0===e?Ne.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return I(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=M(this,e);t.appendChild(e)}})},prepend:function(){return I(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=M(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(Ne.cleanData(C(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return Ne.clone(this,e,t)})},html:function(e){return $e(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ft.test(e)&&!it[(nt.exec(e)||["",""])[1].toLowerCase()]){e=Ne.htmlPrefilter(e);try{for(;n1)}}),Ne.Tween=K,K.prototype={constructor:K,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||Ne.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Ne.cssNumber[n]?"":"px")},cur:function(){var e=K.propHooks[this.prop];return e&&e.get?e.get(this):K.propHooks._default.get(this)},run:function(e){var t,n=K.propHooks[this.prop];return this.options.duration?this.pos=t=Ne.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):K.propHooks._default.set(this),this}},K.prototype.init.prototype=K.prototype,K.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=Ne.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){Ne.fx.step[e.prop]?Ne.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[Ne.cssProps[e.prop]]&&!Ne.cssHooks[e.prop]?e.elem[e.prop]=e.now:Ne.style(e.elem,e.prop,e.now+e.unit)}}},K.propHooks.scrollTop=K.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Ne.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},Ne.fx=K.prototype.init,Ne.fx.step={};var Et,kt,Ct=/^(?:toggle|show|hide)$/,Nt=/queueHooks$/;Ne.Animation=Ne.extend(J,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return w(n.elem,e,Ze.exec(t),n),n}]},tweener:function(e,t){we(e)?(t=e,e=["*"]):e=e.match(qe);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){Ne.removeAttr(this,e)})}}),Ne.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?Ne.prop(e,t,n):(1===o&&Ne.isXMLDoc(e)||(i=Ne.attrHooks[t.toLowerCase()]||(Ne.expr.match.bool.test(t)?Tt:void 0)),void 0!==n?null===n?void Ne.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=Ne.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!xe.radioValue&&"radio"===t&&l(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(qe);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Tt={set:function(e,t,n){return t===!1?Ne.removeAttr(e,n):e.setAttribute(n,n),n}},Ne.each(Ne.expr.match.bool.source.match(/\w+/g),function(e,t){var n=At[t]||Ne.find.attr;At[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=At[a],At[a]=i,i=null!=n(e,t,r)?a:null,At[a]=o),i}});var St=/^(?:input|select|textarea|button)$/i,jt=/^(?:a|area)$/i;Ne.fn.extend({prop:function(e,t){return $e(this,Ne.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[Ne.propFix[e]||e]})}}),Ne.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&Ne.isXMLDoc(e)||(t=Ne.propFix[t]||t,i=Ne.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=Ne.find.attr(e,"tabindex");return t?parseInt(t,10):St.test(e.nodeName)||jt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),xe.optSelected||(Ne.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),Ne.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Ne.propFix[this.toLowerCase()]=this}),Ne.fn.extend({addClass:function(e){var t,n,r,i,o,a,u,s=0;if(we(e))return this.each(function(t){Ne(this).addClass(e.call(this,t,te(this)))});if(t=ne(e),t.length)for(;n=this[s++];)if(i=te(n),r=1===n.nodeType&&" "+ee(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");u=ee(r),i!==u&&n.setAttribute("class",u)}return this},removeClass:function(e){var t,n,r,i,o,a,u,s=0;if(we(e))return this.each(function(t){Ne(this).removeClass(e.call(this,t,te(this)))});if(!arguments.length)return this.attr("class","");if(t=ne(e),t.length)for(;n=this[s++];)if(i=te(n),r=1===n.nodeType&&" "+ee(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");u=ee(r),i!==u&&n.setAttribute("class",u)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):we(e)?this.each(function(n){Ne(this).toggleClass(e.call(this,n,te(this),t),t)}):this.each(function(){var t,i,o,a;if(r)for(i=0,o=Ne(this),a=ne(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||(t=te(this),t&&Ue.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Ue.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+ee(te(n))+" ").indexOf(t)>-1)return!0;return!1}});var Ot=/\r/g;Ne.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=we(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,Ne(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=Ne.map(i,function(e){return null==e?"":e+""})),t=Ne.valHooks[this.type]||Ne.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=Ne.valHooks[i.type]||Ne.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Ot,""):null==n?"":n)}}}),Ne.extend({valHooks:{option:{get:function(e){var t=Ne.find.attr(e,"value");return null!=t?t:ee(Ne.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,u=a?null:[],s=a?o+1:i.length;for(r=o<0?s:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),Ne.each(["radio","checkbox"],function(){Ne.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=Ne.inArray(Ne(e).val(),t)>-1}},xe.checkOn||(Ne.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),xe.focusin="onfocusin"in n;var Mt=/^(?:focusinfocus|focusoutblur)$/,Dt=function(e){e.stopPropagation()};Ne.extend(Ne.event,{trigger:function(e,t,r,i){var o,a,u,s,l,c,f,p,d=[r||ce],h=ye.call(e,"type")?e.type:e,g=ye.call(e,"namespace")?e.namespace.split("."):[];if(a=p=u=r=r||ce,3!==r.nodeType&&8!==r.nodeType&&!Mt.test(h+Ne.event.triggered)&&(h.indexOf(".")>-1&&(g=h.split("."),h=g.shift(),g.sort()),l=h.indexOf(":")<0&&"on"+h,e=e[Ne.expando]?e:new Ne.Event(h,"object"==typeof e&&e),e.isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:Ne.makeArray(t,[e]),f=Ne.event.special[h]||{},i||!f.trigger||f.trigger.apply(r,t)!==!1)){if(!i&&!f.noBubble&&!Ee(r)){for(s=f.delegateType||h,Mt.test(s+h)||(a=a.parentNode);a;a=a.parentNode)d.push(a),u=a;u===(r.ownerDocument||ce)&&d.push(u.defaultView||u.parentWindow||n)}for(o=0;(a=d[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?s:f.bindType||h,c=(Ue.get(a,"events")||{})[e.type]&&Ue.get(a,"handle"),c&&c.apply(a,t),c=l&&a[l],c&&c.apply&&We(a)&&(e.result=c.apply(a,t),e.result===!1&&e.preventDefault());return e.type=h,i||e.isDefaultPrevented()||f._default&&f._default.apply(d.pop(),t)!==!1||!We(r)||l&&we(r[h])&&!Ee(r)&&(u=r[l],u&&(r[l]=null),Ne.event.triggered=h,e.isPropagationStopped()&&p.addEventListener(h,Dt),r[h](),e.isPropagationStopped()&&p.removeEventListener(h,Dt),Ne.event.triggered=void 0,u&&(r[l]=u)),e.result}},simulate:function(e,t,n){var r=Ne.extend(new Ne.Event,n,{type:e,isSimulated:!0});Ne.event.trigger(r,null,t)}}),Ne.fn.extend({trigger:function(e,t){return this.each(function(){Ne.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return Ne.event.trigger(e,t,n,!0)}}),xe.focusin||Ne.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){Ne.event.simulate(t,e.target,Ne.event.fix(e))};Ne.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Ue.access(r,t);i||r.addEventListener(e,n,!0),Ue.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Ue.access(r,t)-1;i?Ue.access(r,t,i):(r.removeEventListener(e,n,!0),Ue.remove(r,t))}}});var Rt=n.location,Pt=Date.now(),Lt=/\?/;Ne.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(r){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||Ne.error("Invalid XML: "+e),t};var It=/\[\]$/,qt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Bt=/^(?:input|select|textarea|keygen)/i;Ne.param=function(e,t){var n,r=[],i=function(e,t){var n=we(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!Ne.isPlainObject(e))Ne.each(e,function(){i(this.name,this.value)});else for(n in e)re(n,e[n],t,i);return r.join("&")},Ne.fn.extend({serialize:function(){return Ne.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=Ne.prop(this,"elements");return e?Ne.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!Ne(this).is(":disabled")&&Bt.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!tt.test(e))}).map(function(e,t){var n=Ne(this).val();return null==n?null:Array.isArray(n)?Ne.map(n,function(e){return{name:t.name,value:e.replace(qt,"\r\n")}}):{name:t.name,value:n.replace(qt,"\r\n")}}).get()}});var $t=/%20/g,zt=/#.*$/,Ft=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ut=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Kt=/^(?:GET|HEAD)$/,Gt=/^\/\//,Vt={},Xt={},Zt="*/".concat("*"),Qt=ce.createElement("a");Qt.href=Rt.href,Ne.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rt.href,type:"GET",isLocal:Ut.test(Rt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":Ne.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?ae(ae(e,Ne.ajaxSettings),t):ae(Ne.ajaxSettings,e)},ajaxPrefilter:ie(Vt),ajaxTransport:ie(Xt),ajax:function(e,t){function r(e,t,r,u){var l,p,d,_,x,w=t;c||(c=!0,s&&n.clearTimeout(s),i=void 0,a=u||"",E.readyState=e>0?4:0,l=e>=200&&e<300||304===e,r&&(_=ue(h,E,r)),_=se(h,_,E,l),l?(h.ifModified&&(x=E.getResponseHeader("Last-Modified"),x&&(Ne.lastModified[o]=x),x=E.getResponseHeader("etag"),x&&(Ne.etag[o]=x)),204===e||"HEAD"===h.type?w="nocontent":304===e?w="notmodified":(w=_.state,p=_.data,d=_.error,l=!d)):(d=w,!e&&w||(w="error",e<0&&(e=0))),E.status=e,E.statusText=(t||w)+"",l?m.resolveWith(g,[p,w,E]):m.rejectWith(g,[E,w,d]),E.statusCode(b),b=void 0,f&&v.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),y.fireWith(g,[E,w]),f&&(v.trigger("ajaxComplete",[E,h]),--Ne.active||Ne.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var i,o,a,u,s,l,c,f,p,d,h=Ne.ajaxSetup({},t),g=h.context||h,v=h.context&&(g.nodeType||g.jquery)?Ne(g):Ne.event,m=Ne.Deferred(),y=Ne.Callbacks("once memory"),b=h.statusCode||{},_={},x={},w="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!u)for(u={};t=Wt.exec(a);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||w;return i&&i.abort(t),r(0,t),this}};if(m.promise(E),h.url=((e||h.url||Rt.href)+"").replace(Gt,Rt.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(qe)||[""],null==h.crossDomain){l=ce.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Qt.protocol+"//"+Qt.host!=l.protocol+"//"+l.host}catch(k){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Ne.param(h.data,h.traditional)),oe(Vt,h,t,E),c)return E;f=Ne.event&&h.global,f&&0===Ne.active++&&Ne.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Kt.test(h.type),o=h.url.replace(zt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace($t,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(Lt.test(o)?"&":"?")+h.data,delete h.data),h.cache===!1&&(o=o.replace(Ft,"$1"),d=(Lt.test(o)?"&":"?")+"_="+Pt++ +d),h.url=o+d),h.ifModified&&(Ne.lastModified[o]&&E.setRequestHeader("If-Modified-Since",Ne.lastModified[o]),Ne.etag[o]&&E.setRequestHeader("If-None-Match",Ne.etag[o])),(h.data&&h.hasContent&&h.contentType!==!1||t.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Zt+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(h.beforeSend.call(g,E,h)===!1||c))return E.abort();if(w="abort",y.add(h.complete),E.done(h.success),E.fail(h.error),i=oe(Xt,h,t,E)){if(E.readyState=1,f&&v.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(s=n.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(_,r)}catch(k){if(c)throw k;r(-1,k)}}else r(-1,"No Transport");return E},getJSON:function(e,t,n){return Ne.get(e,t,n,"json")},getScript:function(e,t){return Ne.get(e,void 0,t,"script")}}),Ne.each(["get","post"],function(e,t){Ne[t]=function(e,n,r,i){return we(n)&&(i=i||r,r=n,n=void 0),Ne.ajax(Ne.extend({url:e,type:t,dataType:i,data:n,success:r},Ne.isPlainObject(e)&&e))}}),Ne._evalUrl=function(e){return Ne.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},Ne.fn.extend({wrapAll:function(e){var t;return this[0]&&(we(e)&&(e=e.call(this[0])),t=Ne(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return we(e)?this.each(function(t){Ne(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Ne(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=we(e);return this.each(function(n){Ne(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){Ne(this).replaceWith(this.childNodes)}),this}}),Ne.expr.pseudos.hidden=function(e){return!Ne.expr.pseudos.visible(e)},Ne.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},Ne.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Jt=Ne.ajaxSettings.xhr();xe.cors=!!Jt&&"withCredentials"in Jt,xe.ajax=Jt=!!Jt,Ne.ajaxTransport(function(e){var t,r;if(xe.cors||Jt&&!e.crossDomain)return{send:function(i,o){var a,u=e.xhr();if(u.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)u[a]=e.xhrFields[a];e.mimeType&&u.overrideMimeType&&u.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)u.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=u.onload=u.onerror=u.onabort=u.ontimeout=u.onreadystatechange=null,"abort"===e?u.abort():"error"===e?"number"!=typeof u.status?o(0,"error"):o(u.status,u.statusText):o(Yt[u.status]||u.status,u.statusText,"text"!==(u.responseType||"text")||"string"!=typeof u.responseText?{binary:u.response}:{text:u.responseText},u.getAllResponseHeaders()))}},u.onload=t(),r=u.onerror=u.ontimeout=t("error"),void 0!==u.onabort?u.onabort=r:u.onreadystatechange=function(){4===u.readyState&&n.setTimeout(function(){t&&r()})},t=t("abort");try{u.send(e.hasContent&&e.data||null)}catch(s){if(t)throw s}},abort:function(){t&&t()}}}),Ne.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),Ne.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return Ne.globalEval(e),e}}}),Ne.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),Ne.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=Ne("",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("sql",function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}}),e})},function(e,t,n){"use strict";function r(e){w.forEach(function(t){t===e?(0,v["default"])(t).parent().addClass("selected"):(0,v["default"])(t).parent().removeClass("selected")})}function i(){var e=(0,v["default"])("#full-list"),t=(0,v["default"])("#full-list .clicked");t.length>0&&e.scrollTop(t.offset().top-e.offset().top-40)}function o(e,t){var n=b.getModuleType();t=t||n;var i=e[t]||[],o=(0,v["default"])("#full-list");o.replaceWith((0,x["default"])({nodes:i,group:""})),r(["#",t,"-list"].join("")),(0,v["default"])("#full-list li a").on("click",function(e){var t=(0,v["default"])(e.target);t.hasClass("expand")?(e.preventDefault(),(0,v["default"])(e.target).closest("li").toggleClass("open")):((0,v["default"])("#full-list .clicked li.active").removeClass("active"),(0,v["default"])(e.target).closest("li").addClass("active"))})}function a(e){return function(t){t.preventDefault(),o(sidebarNodes,e),i()}}function u(){E.on("click","#extras-list",a("extras")),E.on("click","#modules-list",a("modules")),E.on("click","#exceptions-list",a("exceptions")),E.on("click","#tasks-list",a("tasks")),(0,v["default"])(".sidebar-search input").on("keydown",function(e){27===e.keyCode?(0,v["default"])(this).val(""):(event.metaKey||event.ctrlKey)&&13===e.keyCode&&((0,v["default"])(this).parent().attr("target","_blank").submit().removeAttr(""),e.preventDefault())});var e=window.location.pathname;"search.html"===e.substr(e.lastIndexOf("/")+1)&&(0,m.search)(s("q"))}function s(e){var t=window.location.href,n=e.replace(/[\[\]]/g,"\\$&"),r=new RegExp("[?&]"+n+"(=([^&#]*)|&|#|$)"),i=r.exec(t);return i&&i[2]?decodeURIComponent(i[2].replace(/\+/g," ")):""}function l(){var e=b.getLocationHash()||"content",t=sidebarNodes[b.getModuleType()],n=b.findSidebarCategory(t,e);(0,v["default"])('#full-list .clicked a.expand[href$="#'+n+'"]').closest("li").addClass("open"),(0,v["default"])('#full-list .clicked a[href$="#'+e+'"]').closest("li").addClass("active")}function c(){k.find("a").has("code").addClass("no-underline"),k.find("a").has("img").addClass("no-underline")}function f(){k.attr("tabindex",-1).focus()}function p(){o(sidebarNodes),u(),i(),l(),c(),f()}var d=n(1)["default"],h=n(5)["default"];Object.defineProperty(t,"__esModule",{value:!0}),t.initialize=p;var g=n(2),v=d(g),m=n(6),y=n(7),b=h(y),_=n(81),x=d(_),w=["#extras-list","#modules-list","#exceptions-list","#tasks-list","#search-list"],E=(0,v["default"])(".sidebar-listNav"),k=(0,v["default"])(".content")},function(e,t){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t,n){"use strict";function r(e){var t=e.index,n=e.index+e[0].length,r=e.input,i=""+e[0]+"";return r.slice(0,t)+i+r.slice(n)}function i(e){return!!e}function o(e,t,n){return(e||[]).map(function(e){var i=(t+"."+e.id).match(n),o=e.id&&e.id.match(n);if(i||o){var a=JSON.parse(JSON.stringify(e));return a.match=o?r(o):e.id,a}}).filter(i)}function a(e,t,n){t.length>0&&e.push({name:n,results:t})}function u(e,t){return e.map(function(e){var n=e.title,i=n&&n.match(t),a=o(e.functions,n,t),u=o(e.macros,n,t),s=o(e.callbacks,n,t),l=o(e.types,n,t),c={id:e.id,match:i?r(i):e.title};if(a.length>0&&(c.functions=a),u.length>0&&(c.macros=u),s.length>0&&(c.callbacks=s),l.length>0&&(c.types=l),i||a.length>0||u.length>0||s.length>0||l.length>0)return c}).filter(i)}function s(e){var t=sidebarNodes;if(""!==e.replace(/\s/,"")){var n=new RegExp(h.escapeText(e),"i"),r=[],i=u(t.modules,n),o=u(t.exceptions,n),s=u(t.tasks,n);a(r,i,"Modules"),a(r,o,"Exceptions"),a(r,s,"Mix Tasks");var l=(0,v["default"])({value:e,levels:r,empty:0===r.length});y.val(e),m.html(l)}}var l=n(1)["default"],c=n(5)["default"];Object.defineProperty(t,"__esModule",{value:!0}),t.findIn=u,t.search=s;var f=n(2),p=l(f),d=n(7),h=c(d),g=n(61),v=l(g),m=(0,p["default"])("#search"),y=(0,p["default"])(".sidebar-search input")},function(e,t,n){"use strict";function r(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function i(){return(0,c["default"])("body").data("type")}function o(e,t){var n=!0,r=!1,i=void 0;try{for(var o,a=u(e);!(n=(o=a.next()).done);n=!0){var s=o.value,l=(0,h["default"])(s,function(e,n){var r=(0,p["default"])(e,function(e){var n=e.anchor;return n===t});return r});if(l)return l}}catch(c){r=!0,i=c}finally{try{!n&&a["return"]&&a["return"]()}finally{if(r)throw i}}}function a(){return window.location.hash.replace(/^#/,"")}var u=n(8)["default"],s=n(1)["default"];Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=r,t.getModuleType=i,t.findSidebarCategory=o,t.getLocationHash=a;var l=n(2),c=s(l),f=n(46),p=s(f),d=n(59),h=s(d)},function(e,t,n){e.exports={"default":n(9),__esModule:!0}},function(e,t,n){n(10),n(38),e.exports=n(41)},function(e,t,n){n(11);var r=n(14);r.NodeList=r.HTMLCollection=r.Array},function(e,t,n){"use strict";var r=n(12),i=n(13),o=n(14),a=n(15);e.exports=n(19)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports={}},function(e,t,n){var r=n(16),i=n(18);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(17);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){ +var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(20),i=n(21),o=n(26),a=n(27),u=n(32),s=n(14),l=n(33),c=n(34),f=n(28).getProto,p=n(35)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",g="keys",v="values",m=function(){return this};e.exports=function(e,t,n,y,b,_,x){l(n,t,y);var w,E,k=function(e){if(!d&&e in A)return A[e];switch(e){case g:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",N=b==v,T=!1,A=e.prototype,S=A[p]||A[h]||b&&A[b],j=S||k(b);if(S){var O=f(j.call(new e));c(O,C,!0),!r&&u(A,h)&&a(O,p,m),N&&S.name!==v&&(T=!0,j=function(){return S.call(this)})}if(r&&!x||!d&&!T&&A[p]||a(A,p,j),s[t]=j,s[C]=m,b)if(w={values:N?j:k(v),keys:_?j:k(g),entries:N?k("entries"):j},x)for(E in w)E in A||o(A,E,w[E]);else i(i.P+i.F*(d||T),t,w);return w}},function(e,t){e.exports=!0},function(e,t,n){var r=n(22),i=n(23),o=n(24),a="prototype",u=function(e,t,n){var s,l,c,f=e&u.F,p=e&u.G,d=e&u.S,h=e&u.P,g=e&u.B,v=e&u.W,m=p?i:i[t]||(i[t]={}),y=p?r:d?r[t]:(r[t]||{})[a];p&&(n=t);for(s in n)l=!f&&y&&s in y,l&&s in m||(c=l?y[s]:n[s],m[s]=p&&"function"!=typeof y[s]?n[s]:g&&l?o(c,r):v&&y[s]==c?function(e){var t=function(t){return this instanceof e?new e(t):e(t)};return t[a]=e[a],t}(c):h&&"function"==typeof c?o(Function.call,c):c,h&&((m[a]||(m[a]={}))[s]=c))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,e.exports=u},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(25);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){e.exports=n(27)},function(e,t,n){var r=n(28),i=n(29);e.exports=n(30)?function(e,t,n){return r.setDesc(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports=!n(31)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){"use strict";var r=n(28),i=n(29),o=n(34),a={};n(27)(a,n(35)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(28).setDesc,i=n(32),o=n(35)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(36)("wks"),i=n(37),o=n(22).Symbol;e.exports=function(e){return r[e]||(r[e]=o&&o[e]||(o||i)("Symbol."+e))}},function(e,t,n){var r=n(22),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){"use strict";var r=n(39)(!0);n(19)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(40),i=n(18);e.exports=function(e){return function(t,n){var o,a,u=String(i(t)),s=r(n),l=u.length;return s<0||s>=l?e?"":void 0:(o=u.charCodeAt(s),o<55296||o>56319||s+1===l||(a=u.charCodeAt(s+1))<56320||a>57343?e?u.charAt(s):o:e?u.slice(s,s+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(42),i=n(44);e.exports=n(23).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){var r=n(43);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(45),i=n(35)("iterator"),o=n(14);e.exports=n(23).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(17),i=n(35)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=(t=Object(e))[i])?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){function r(e,t){return function(n,r,o){if(r=i(r,o,3),s(n)){var l=u(n,r,t);return l>-1?n[l]:void 0}return a(n,r,e)}}var i=n(47),o=n(56),a=n(57),u=n(58),s=n(49),l=r(o);e.exports=l},function(e,t,n){function r(e){return null==e?"":e+""}function i(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:w(e,t,n):null==e?b:"object"==r?u(e):void 0===t?_(e):s(e,t)}function o(e,t,n){if(null!=e){void 0!==n&&n in g(e)&&(t=[n]);for(var r=0,i=t.length;null!=e&&ri?0:i+t),n=void 0===n||n>i?i:+n||0,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++rl))return!1;for(;++s-1&&e%1==0&&e<=m}function o(e){return a(e)&&h.call(e)==l}function a(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function u(e){return null!=e&&(o(e)?g.test(p.call(e)):n(e)&&c.test(e))}var s="[object Array]",l="[object Function]",c=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,d=f.hasOwnProperty,h=f.toString,g=RegExp("^"+p.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=r(Array,"isArray"),m=9007199254740991,y=v||function(e){return n(e)&&i(e.length)&&h.call(e)==s};e.exports=y},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function r(e){return!!e&&"object"==typeof e}function i(e){return r(e)&&n(e.length)&&!!j[M.call(e)]}var o=9007199254740991,a="[object Arguments]",u="[object Array]",s="[object Boolean]",l="[object Date]",c="[object Error]",f="[object Function]",p="[object Map]",d="[object Number]",h="[object Object]",g="[object RegExp]",v="[object Set]",m="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",_="[object DataView]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",k="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",T="[object Uint8ClampedArray]",A="[object Uint16Array]",S="[object Uint32Array]",j={};j[x]=j[w]=j[E]=j[k]=j[C]=j[N]=j[T]=j[A]=j[S]=!0,j[a]=j[u]=j[b]=j[s]=j[_]=j[l]=j[c]=j[f]=j[p]=j[d]=j[h]=j[g]=j[v]=j[m]=j[y]=!1;var O=Object.prototype,M=O.toString;e.exports=i},function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}function i(e){return null!=e&&a(y(e))}function o(e,t){return e="number"==typeof e||d.test(e)?+e:-1,t=null==t?m:t,e>-1&&e%1==0&&e-1&&e%1==0&&e<=m}function u(e){for(var t=l(e),n=t.length,r=n&&e.length,i=!!r&&a(r)&&(p(e)||f(e)),u=-1,s=[];++u0;++r-1&&e%1==0&&e<=l}function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function s(e){return!!e&&"object"==typeof e}var l=9007199254740991,c="[object Arguments]",f="[object Function]",p="[object GeneratorFunction]",d=Object.prototype,h=d.hasOwnProperty,g=d.toString,v=d.propertyIsEnumerable;e.exports=n},function(e,t){function n(e,t,n){if("function"!=typeof e)return r;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}function r(e){return e}e.exports=n},function(e,t,n){function r(e){return i(e)?e:Object(e)}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function o(e){e=r(e);for(var t=-1,n=a(e),i=n.length,o=Array(i);++t-1&&e%1==0&&e<=f}function s(e){return l(e)?e:Object(e)}function l(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var c=n(51),f=9007199254740991,p=o(r),d=a(),h=i("length");e.exports=p},function(e,t){function n(e,t,n,r){var i;return n(e,function(e,n,o){if(t(e,n,o))return i=r?n:e,!1}),i}e.exports=n},function(e,t){function n(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++iSorry, we couldn't find anything for "+e.escapeExpression((o=null!=(o=n.value||(null!=t?t.value:t))?o:n.helperMissing,"function"==typeof o?o.call(null!=t?t:e.nullContext||{},{name:"value",hash:{},data:i}):o))+".

    \n"},3:function(e,t,n,r,i,o,a){var u;return null!=(u=n.each.call(null!=t?t:e.nullContext||{},null!=t?t.levels:t,{name:"each",hash:{},fn:e.program(4,i,0,o,a),inverse:e.noop,data:i}))?u:""},4:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{};return'

    '+e.escapeExpression((s=null!=(s=n.name||(null!=t?t.name:t))?s:n.helperMissing,"function"==typeof s?s.call(l,{name:"name",hash:{},data:i}):s))+"

    \n"+(null!=(u=n.each.call(l,null!=t?t.results:t,{name:"each",hash:{},fn:e.program(5,i,0,o,a),inverse:e.noop,data:i}))?u:"")},5:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{},c=n.helperMissing,f="function";return'
    \n

    \n '+(null!=(s=null!=(s=n.match||(null!=t?t.match:t))?s:c,u=typeof s===f?s.call(l,{name:"match",hash:{},data:i}):s)?u:"")+'\n

    \n
      \n'+(null!=(u=n.each.call(l,null!=t?t.functions:t,{name:"each",hash:{},fn:e.program(6,i,0,o,a),inverse:e.noop,data:i}))?u:"")+'
    \n
      \n'+(null!=(u=n.each.call(l,null!=t?t.macros:t,{name:"each",hash:{},fn:e.program(6,i,0,o,a),inverse:e.noop,data:i}))?u:"")+'
    \n
      \n'+(null!=(u=n.each.call(l,null!=t?t.callbacks:t,{name:"each",hash:{},fn:e.program(8,i,0,o,a),inverse:e.noop,data:i}))?u:"")+'
    \n
      \n'+(null!=(u=n.each.call(l,null!=t?t.types:t,{name:"each",hash:{},fn:e.program(10,i,0,o,a),inverse:e.noop,data:i}))?u:"")+"
    \n
    \n"},6:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{},c=n.helperMissing,f="function";return'
  • '+(null!=(s=null!=(s=n.match||(null!=t?t.match:t))?s:c,u=typeof s===f?s.call(l,{name:"match",hash:{},data:i}):s)?u:"")+"
  • \n"},8:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{},c=n.helperMissing,f="function";return'
  • '+(null!=(s=null!=(s=n.match||(null!=t?t.match:t))?s:c,u=typeof s===f?s.call(l,{name:"match",hash:{},data:i}):s)?u:"")+" (callback)
  • \n"},10:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{},c=n.helperMissing,f="function";return'
  • '+(null!=(s=null!=(s=n.match||(null!=t?t.match:t))?s:c,u=typeof s===f?s.call(l,{name:"match",hash:{},data:i}):s)?u:"")+" (type)
  • \n"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i,o,a){var u,s,l=null!=t?t:e.nullContext||{};return"

    Search Results for "+e.escapeExpression((s=null!=(s=n.value||(null!=t?t.value:t))?s:n.helperMissing,"function"==typeof s?s.call(l,{name:"value",hash:{},data:i}):s))+"

    \n\n"+(null!=(u=n["if"].call(l,null!=t?t.empty:t,{name:"if",hash:{},fn:e.program(1,i,0,o,a),inverse:e.program(3,i,0,o,a),data:i}))?u:"")},useData:!0,useDepths:!0})},function(e,t,n){e.exports=n(63)["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(){var e=new u.HandlebarsEnvironment;return d.extend(e,u),e.SafeString=l["default"],e.Exception=f["default"],e.Utils=d,e.escapeExpression=d.escapeExpression,e.VM=g,e.template=function(t){return g.template(t,e)},e}t.__esModule=!0;var a=n(64),u=i(a),s=n(78),l=r(s),c=n(66),f=r(c),p=n(65),d=i(p),h=n(79),g=i(h),v=n(80),m=r(v),y=o();y.create=o,m["default"](y),y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},s.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}t.__esModule=!0,t.HandlebarsEnvironment=i;var o=n(65),a=n(66),u=r(a),s=n(67),l=n(75),c=n(77),f=r(c),p="4.0.10";t.VERSION=p;var d=7;t.COMPILER_REVISION=d;var h={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};t.REVISION_CHANGES=h;var g="[object Object]";i.prototype={constructor:i,logger:f["default"],log:f["default"].log,registerHelper:function(e,t){if(o.toString.call(e)===g){if(t)throw new u["default"]("Arg not supported with multiple helpers");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(o.toString.call(e)===g)o.extend(this.partials,e);else{if("undefined"==typeof t)throw new u["default"]('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(o.toString.call(e)===g){if(t)throw new u["default"]("Arg not supported with multiple decorators");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var v=f["default"].log;t.log=v,t.createFrame=o.createFrame,t.logger=f["default"]},function(e,t){"use strict";function n(e){return c[e]}function r(e){for(var t=1;t":">",'"':""","'":"'","`":"`","=":"="},f=/[&<>"'`=]/g,p=/[&<>"'`=]/,d=Object.prototype.toString;t.toString=d;var h=function(e){return"function"==typeof e};h(/x/)&&(t.isFunction=h=function(e){return"function"==typeof e&&"[object Function]"===d.call(e)}),t.isFunction=h;var g=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===d.call(e)};t.isArray=g},function(e,t){"use strict";function n(e,t){var i=t&&t.loc,o=void 0,a=void 0;i&&(o=i.start.line,a=i.start.column,e+=" - "+o+":"+a);for(var u=Error.prototype.constructor.call(this,e),s=0;s0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):i(this);if(n.data&&n.ids){var a=r.createFrame(n.data);a.contextPath=r.appendContextPath(n.data.contextPath,n.name),n={data:a}}return o(t,n)})},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var i=n(65),o=n(66),a=r(o);t["default"]=function(e){e.registerHelper("each",function(e,t){function n(t,n,o){l&&(l.key=t,l.index=n,l.first=0===n,l.last=!!o,c&&(l.contextPath=c+t)),s+=r(e[t],{data:l,blockParams:i.blockParams([e[t],t],[c+t,null])})}if(!t)throw new a["default"]("Must pass iterator to #each");var r=t.fn,o=t.inverse,u=0,s="",l=void 0,c=void 0;if(t.data&&t.ids&&(c=i.appendContextPath(t.data.contextPath,t.ids[0])+"."),i.isFunction(e)&&(e=e.call(this)),t.data&&(l=i.createFrame(t.data)),e&&"object"==typeof e)if(i.isArray(e))for(var f=e.length;u=0?t:parseInt(e,10)}return e},log:function(e){if(e=i.lookupLevel(e),"undefined"!=typeof console&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];console[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o\n\n\n '+p(f(null!=(l=u[0][0])?l.title:l,t))+'\n\n
      \n
    • \n Top\n
    • \n\n'+(null!=(l=r(n(84)).call(c,null!=(l=u[0][0])?l.headers:l,{name:"isArray",hash:{},fn:e.program(6,a,0,u,s),inverse:e.program(9,a,0,u,s),data:a,blockParams:u}))?l:"")+"
    \n \n"},2:function(e,t,n,r,i,o){var a;return'
  • '+e.escapeExpression(e.lambda(null!=(a=o[1][0])?a.group:a,t))+"
  • \n"},4:function(e,t,n,r,i){return"clicked open"},6:function(e,t,n,r,i,o){var a;return null!=(a=n.each.call(null!=t?t:e.nullContext||{},null!=(a=o[1][0])?a.headers:a,{name:"each",hash:{},fn:e.program(7,i,0,o),inverse:e.noop,data:i,blockParams:o}))?a:""},7:function(e,t,n,r,i,o){var a,u=e.lambda,s=e.escapeExpression;return'
  • \n '+s(u(null!=t?t.id:t,t))+"\n
  • \n"},9:function(e,t,i,o,a,u){var s,l=null!=t?t:e.nullContext||{};return(null!=(s=r(n(85)).call(l,u[1][0],{name:"showSummary",hash:{},fn:e.program(10,a,0,u),inverse:e.noop,data:a,blockParams:u}))?s:"")+(null!=(s=i["if"].call(l,null!=(s=u[1][0])?s.types:s,{name:"if",hash:{},fn:e.program(12,a,0,u),inverse:e.noop,data:a,blockParams:u}))?s:"")+(null!=(s=i["if"].call(l,null!=(s=u[1][0])?s.functions:s,{name:"if",hash:{},fn:e.program(15,a,0,u),inverse:e.noop,data:a,blockParams:u}))?s:"")+(null!=(s=i["if"].call(l,null!=(s=u[1][0])?s.macros:s,{name:"if",hash:{},fn:e.program(17,a,0,u),inverse:e.noop,data:a,blockParams:u}))?s:"")+(null!=(s=i["if"].call(l,null!=(s=u[1][0])?s.callbacks:s,{name:"if",hash:{},fn:e.program(20,a,0,u),inverse:e.noop,data:a,blockParams:u}))?s:"")},10:function(e,t,n,r,i,o){var a;return'
  • \n Summary\n
  • \n'},12:function(e,t,n,r,i,o){var a;return'
  • \n Types\n
      \n'+(null!=(a=n.each.call(null!=t?t:e.nullContext||{},null!=(a=o[2][0])?a.types:a,{name:"each",hash:{},fn:e.program(13,i,0,o),inverse:e.noop,data:i,blockParams:o}))?a:"")+"
    \n
  • \n"},13:function(e,t,n,r,i,o){var a,u=e.lambda,s=e.escapeExpression;return'
  • \n '+s(u(null!=t?t.id:t,t))+"\n
  • \n"},15:function(e,t,n,r,i,o){var a;return'
  • \n Functions\n
      \n'+(null!=(a=n.each.call(null!=t?t:e.nullContext||{},null!=(a=o[2][0])?a.functions:a,{name:"each",hash:{},fn:e.program(13,i,0,o),inverse:e.noop,data:i,blockParams:o}))?a:"")+"
    \n
  • \n"},17:function(e,t,n,r,i,o){var a;return'
  • \n Macros\n
      \n'+(null!=(a=n.each.call(null!=t?t:e.nullContext||{},null!=(a=o[2][0])?a.macros:a,{name:"each",hash:{},fn:e.program(18,i,0,o),inverse:e.noop,data:i,blockParams:o}))?a:"")+"
    \n
  • \n"},18:function(e,t,n,r,i,o){var a,u=e.lambda,s=e.escapeExpression;return'
  • \n '+s(u(null!=t?t.id:t,t))+"\n
  • \n"},20:function(e,t,n,r,i,o){var a;return'
  • \n Callbacks\n
      \n'+(null!=(a=n.each.call(null!=t?t:e.nullContext||{},null!=(a=o[2][0])?a.callbacks:a,{name:"each",hash:{},fn:e.program(18,i,0,o),inverse:e.noop,data:i,blockParams:o}))?a:"")+"
    \n
  • \n"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i,o,a){var u;return'
      \n'+(null!=(u=n.each.call(null!=t?t:e.nullContext||{},null!=t?t.nodes:t,{name:"each",hash:{},fn:e.program(1,i,2,o,a),inverse:e.noop,data:i,blockParams:o}))?u:"")+"
    \n"},useData:!0,useDepths:!0,useBlockParams:!0})},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=function(e,t,n){var r=t||"";if(e.group!==r)return e.group=r,n.fn(this)},e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=function(e,t){var n=window.location.pathname.split("/");return e+=".html",e===n[n.length-1]?t.fn(this):t.inverse(this)},e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=function(e,t){return Array.isArray(e)?t.fn(this):t.inverse(this)},e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=function(e,t){if(e.types||e.functions||e.macros||e.callbacks)return t.fn(this)},e.exports=t["default"]},function(e,t,n){"use strict";function r(){p.addClass(y).removeClass(g).removeClass(v),_=setTimeout(function(){return p.addClass(m).removeClass(y)},h)}function i(){p.addClass(v).removeClass(m).removeClass(y),_=setTimeout(function(){return p.addClass(g).removeClass(v)},h)}function o(){var e=p.attr("class")||"";clearTimeout(_),e.includes(m)||e.includes(y)?i():r()}function a(){p.removeClass(b),p.addClass(window.innerWidth>d?g:m)}function u(){a();var e=window.innerWidth;(0,c["default"])(window).resize((0,f.throttle)(function(){e!==window.innerWidth&&(e=window.innerWidth,a())},100)),(0,c["default"])(".sidebar-toggle").click(function(){o()})}var s=n(1)["default"];Object.defineProperty(t,"__esModule",{value:!0}),t.initialize=u;var l=n(2),c=s(l),f=n(87),p=(0,c["default"])("body"),d=768,h=300,g="sidebar-opened",v="sidebar-opening",m="sidebar-closed",y="sidebar-closing",b=[g,v,m,y].join(" "),_=void 0;t.breakpoint=d,t.closeSidebar=r},function(e,t,n){var r;(function(e,i){(function(){function o(e,t){if(e!==t){var n=null===e,r=e===T,i=e===e,o=null===t,a=t===T,u=t===t;if(e>t&&!o||!i||n&&!a&&u||r&&u)return 1;if(e-1;);return n}function f(e,t){for(var n=e.length;n--&&t.indexOf(e.charAt(n))>-1;);return n}function p(e,t){return o(e.criteria,t.criteria)||e.index-t.index}function d(e,t,n){for(var r=-1,i=e.criteria,a=t.criteria,u=i.length,s=n.length;++r=s)return l;var c=n[r];return l*("asc"===c||c===!0?1:-1)}}return e.index-t.index}function h(e){return Ke[e]}function g(e){return Ge[e]}function v(e,t,n){return t?e=Ze[e]:n&&(e=Qe[e]),"\\"+e}function m(e){return"\\"+Qe[e]}function y(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i=9&&e<=13||32==e||160==e||5760==e||6158==e||e>=8192&&(e<=8202||8232==e||8233==e||8239==e||8287==e||12288==e||65279==e)}function x(e,t){for(var n=-1,r=e.length,i=-1,o=[];++n=z?gn(t):null,l=t.length;s&&(o=Qe,a=!1,t=s);e:for(;++ii?0:i+n),r=r===T||r>i?i:+r||0,r<0&&(r+=i),i=n>r?0:r>>>0,n>>>=0;ni?0:i+t),n=n===T||n>i?i:+n||0,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=$o(i);++r=z,s=a?gn():null,l=[];s?(r=Qe,o=!1):(a=!1,s=t?[]:l);e:for(;++n>>1,a=e[o];(n?a<=t:a2?n[i-2]:T,a=i>2?n[2]:T,u=i>1?n[i-1]:T;for("function"==typeof o?(o=an(o,u,5),i-=2):(o="function"==typeof u?u:T,i-=o?1:0),a&&Jn(n[0],n[1],a)&&(o=i<3?T:o,i=1);++r-1?n[o]:T}return At(n,r,e)}}function wn(e){return function(t,n,r){return t&&t.length?(n=$n(n,r,3),a(t,n,e)):-1}}function En(e){return function(t,n,r){return n=$n(n,r,3),At(t,n,e,!0)}}function kn(e){return function(){for(var t,n=arguments.length,i=e?n:-1,o=0,a=$o(n);e?i--:++i=z)return t.plant(r).value();for(var i=0,o=n?a[i].apply(this,e):r;++i=t||!_a(t))return"";var i=t-r;return n=null==n?" ":n+"",mo(n,va(i/n.length)).slice(0,i)}function Rn(e,t,n,r){function i(){for(var t=-1,u=arguments.length,s=-1,l=r.length,c=$o(l+u);++ss))return!1;for(;++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ma}function rr(e){return e===e&&!Ri(e)}function ir(e,t){var n=e[1],r=t[1],i=n|r,o=i-1;)da.call(t,o,1);return t}function Sr(e,t,n){var r=[];if(!e||!e.length)return r;var i=-1,o=[],a=e.length;for(t=$n(t,n,3);++i-1:!!i&&Fn(e,t,n)>-1}function ei(e,t,n){var r=Su(e)?st:qt;return t=$n(t,n,3),r(e,t)}function ti(e,t){return ei(e,Ro(t))}function ni(e,t,n){var r=Su(e)?ut:Tt;return t=$n(t,n,3),r(e,function(e,n,r){return!t(e,n,r)})}function ri(e,t,n){if(n?Jn(e,t,n):null==t){e=cr(e);var r=e.length;return r>0?e[Kt(0,r-1)]:T}var i=-1,o=Gi(e),r=o.length,a=r-1;for(t=Ea(t<0?0:+t||0,r);++i0&&(n=t.apply(this,arguments)),e<=1&&(t=T),n}}function di(e,t,n){function r(){d&&ua(d),l&&ua(l),g=0,l=d=h=T}function i(t,n){n&&ua(n),l=d=h=T,t&&(g=gu(),c=e.apply(p,s),d||l||(s=p=T))}function o(){var e=t-(gu()-f);e<=0||e>t?i(h,l):d=pa(o,e)}function a(){i(m,d)}function u(){if(s=arguments,f=gu(),p=this,h=m&&(d||!y),v===!1)var n=y&&!d;else{l||y||(g=f);var r=v-(f-g),i=r<=0||r>v;i?(l&&(l=ua(l)),g=f,c=e.apply(p,s)):l||(l=pa(a,r))}return i&&d?d=ua(d):d||t===v||(d=pa(o,t)),n&&(i=!0,c=e.apply(p,s)),!i||d||l||(s=p=T),c}var s,l,c,f,p,d,h,g=0,v=!1,m=!0;if("function"!=typeof e)throw new Zo(U);if(t=t<0?0:+t||0,n===!0){var y=!0;m=!1}else Ri(n)&&(y=!!n.leading,v="maxWait"in n&&wa(+n.maxWait||0,t),m="trailing"in n?!!n.trailing:m);return u.cancel=r,u}function hi(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new Zo(U);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a),a};return n.cache=new hi.Cache,n}function gi(e){if("function"!=typeof e)throw new Zo(U);return function(){return!e.apply(this,arguments)}}function vi(e){return pi(2,e)}function mi(e,t){if("function"!=typeof e)throw new Zo(U);return t=wa(t===T?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,i=wa(n.length-t,0),o=$o(i);++rt}function ki(e,t){return e>=t}function Ci(e){return b(e)&&Qn(e)&&ta.call(e,"callee")&&!ca.call(e,"callee")}function Ni(e){return e===!0||e===!1||b(e)&&ra.call(e)==X}function Ti(e){return b(e)&&ra.call(e)==Z}function Ai(e){return!!e&&1===e.nodeType&&b(e)&&!Bi(e)}function Si(e){return null==e||(Qn(e)&&(Su(e)||zi(e)||Ci(e)||b(e)&&Di(e.splice))?!e.length:!Bu(e).length)}function ji(e,t,n,r){n="function"==typeof n?an(n,r,3):T;var i=n?n(e,t):T;return i===T?Pt(e,t,n):!!i}function Oi(e){return b(e)&&"string"==typeof e.message&&ra.call(e)==Q}function Mi(e){return"number"==typeof e&&_a(e)}function Di(e){return Ri(e)&&ra.call(e)==Y}function Ri(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Pi(e,t,n,r){return n="function"==typeof n?an(n,r,3):T,It(e,Wn(t),n)}function Li(e){return Hi(e)&&e!=+e}function Ii(e){return null!=e&&(Di(e)?oa.test(ea.call(e)):b(e)&&Le.test(e))}function qi(e){return null===e}function Hi(e){return"number"==typeof e||b(e)&&ra.call(e)==ee}function Bi(e){var t;if(!b(e)||ra.call(e)!=te||Ci(e)||!ta.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return jt(e,function(e,t){n=t}),n===T||ta.call(e,n)}function $i(e){return Ri(e)&&ra.call(e)==ne}function zi(e){return"string"==typeof e||b(e)&&ra.call(e)==ie}function Fi(e){return b(e)&&nr(e.length)&&!!We[ra.call(e)]}function Wi(e){return e===T}function Ui(e,t){return e0;++r=Ea(t,n)&&e=0&&e.indexOf(t,n)==n}function po(e){return e=l(e),e&&we.test(e)?e.replace(_e,g):e}function ho(e){return e=l(e),e&&je.test(e)?e.replace(Se,v):e||"(?:)"}function go(e,t,n){e=l(e),t=+t;var r=e.length;if(r>=t||!_a(t))return e;var i=(t-r)/2,o=ya(i),a=va(i);return n=Dn("",a,n),n.slice(0,o)+e+n}function vo(e,t,n){return(n?Jn(e,t,n):null==t)?t=0:t&&(t=+t),e=_o(e),Ca(e,t||(Pe.test(e)?16:10))}function mo(e,t){var n="";if(e=l(e),t=+t,t<1||!e||!_a(t))return n;do t%2&&(n+=e),t=ya(t/2),e+=e;while(t);return n}function yo(e,t,n){return e=l(e),n=null==n?0:Ea(n<0?0:+n||0,e.length),e.lastIndexOf(t,n)==n}function bo(e,n,r){var i=t.templateSettings;r&&Jn(e,n,r)&&(n=r=T),e=l(e),n=vt(mt({},r||n),i,gt);var o,a,u=vt(mt({},n.imports),i.imports,gt),s=Bu(u),c=en(u,s),f=0,p=n.interpolate||He,d="__p += '",h=Vo((n.escape||He).source+"|"+p.source+"|"+(p===Ce?De:He).source+"|"+(n.evaluate||He).source+"|$","g"),g="//# sourceURL="+("sourceURL"in n?n.sourceURL:"lodash.templateSources["+ ++Fe+"]")+"\n";e.replace(h,function(t,n,r,i,u,s){return r||(r=i),d+=e.slice(f,s).replace(Be,m),n&&(o=!0,d+="' +\n__e("+n+") +\n'"),u&&(a=!0,d+="';\n"+u+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),f=s+t.length,t}),d+="';\n";var v=n.variable;v||(d="with (obj) {\n"+d+"\n}\n"),d=(a?d.replace(ve,""):d).replace(me,"$1").replace(ye,"$1;"),d="function("+(v||"obj")+") {\n"+(v?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var y=Qu(function(){return Wo(s,g+"return "+d).apply(T,c)});if(y.source=d,Oi(y))throw y;return y}function _o(e,t,n){var r=e;return(e=l(e))?(n?Jn(r,t,n):null==t)?e.slice(E(e),k(e)+1):(t+="",e.slice(c(e,t),f(e,t)+1)):e}function xo(e,t,n){var r=e;return e=l(e),e?(n?Jn(r,t,n):null==t)?e.slice(E(e)):e.slice(c(e,t+"")):e}function wo(e,t,n){var r=e;return e=l(e),e?(n?Jn(r,t,n):null==t)?e.slice(0,k(e)+1):e.slice(0,f(e,t+"")+1):e}function Eo(e,t,n){n&&Jn(e,t,n)&&(t=T);var r=q,i=H;if(null!=t)if(Ri(t)){var o="separator"in t?t.separator:o;r="length"in t?+t.length||0:r,i="omission"in t?l(t.omission):i}else r=+t||0;if(e=l(e),r>=e.length)return e;var a=r-i.length;if(a<1)return i;var u=e.slice(0,a);if(null==o)return u+i;if($i(o)){if(e.slice(a).search(o)){var s,c,f=e.slice(0,a);for(o.global||(o=Vo(o.source,(Re.exec(o)||"")+"g")),o.lastIndex=0;s=o.exec(f);)c=s.index;u=u.slice(0,null==c?a:c)}}else if(e.indexOf(o,a)!=a){var p=u.lastIndexOf(o);p>-1&&(u=u.slice(0,p))}return u+i}function ko(e){return e=l(e),e&&xe.test(e)?e.replace(be,C):e}function Co(e,t,n){return n&&Jn(e,t,n)&&(t=T),e=l(e),e.match(t||$e)||[]}function No(e,t,n){return n&&Jn(e,t,n)&&(t=T),b(e)?So(e):_t(e,t)}function To(e){return function(){return e}}function Ao(e){return e}function So(e){return Ht(xt(e,!0))}function jo(e,t){return Bt(e,xt(t,!0))}function Oo(e,t,n){if(null==n){var r=Ri(t),i=r?Bu(t):T,o=i&&i.length?Dt(t,i):T;(o?o.length:r)||(o=!1,n=t,t=e,e=this)}o||(o=Dt(t,Bu(t)));var a=!0,u=-1,s=Di(e),l=o.length;n===!1?a=!1:Ri(n)&&"chain"in n&&(a=n.chain);for(;++u>>1,Ma=9007199254740991,Da=ga&&new ga,Ra={};t.support={};t.templateSettings={escape:Ee,evaluate:ke,interpolate:Ce,variable:"",imports:{_:t}};var Pa=function(){function e(){}return function(t){if(Ri(t)){e.prototype=t;var n=new e;e.prototype=T}return n||{}}}(),La=pn(Ot),Ia=pn(Mt,!0),qa=dn(),Ha=dn(!0),Ba=Da?function(e,t){return Da.set(e,t),e}:Ao,$a=Da?function(e){return Da.get(e)}:Do,za=Ft("length"),Fa=function(){var e=0,t=0;return function(n,r){var i=gu(),o=$-(i-t);if(t=i,o>0){if(++e>=B)return n}else e=0;return Ba(n,r)}}(),Wa=mi(function(e,t){return b(e)&&Qn(e)?Et(e,St(t,!1,!0)):[]}),Ua=wn(),Ka=wn(!0),Ga=mi(function(e){for(var t=e.length,n=t,r=$o(f),i=Fn(),o=i==u,a=[];n--;){var s=e[n]=Qn(s=e[n])?s:[];r[n]=o&&s.length>=120?gn(n&&s):null}var l=e[0],c=-1,f=l?l.length:0,p=r[0];e:for(;++c2?e[t-2]:T,r=t>1?e[t-1]:T;return t>2&&"function"==typeof n?t-=2:(n=t>1&&"function"==typeof r?(--t,r):T,r=T),e.length=t,qr(e,n,r)}),tu=mi(function(e){return e=St(e),this.thru(function(t){return Je(Su(t)?t:[fr(t)],e)})}),nu=mi(function(e,t){return yt(e,St(t))}),ru=cn(function(e,t,n){ta.call(e,n)?++e[n]:e[n]=1}),iu=xn(La),ou=xn(Ia,!0),au=Cn(tt,La),uu=Cn(nt,Ia),su=cn(function(e,t,n){ta.call(e,n)?e[n].push(t):e[n]=[t]}),lu=cn(function(e,t,n){e[n]=t}),cu=mi(function(e,t,n){var r=-1,i="function"==typeof t,o=er(t),a=Qn(e)?$o(e.length):[];return La(e,function(e){var u=i?t:o&&null!=e?e[t]:T;a[++r]=u?u.apply(e,n):Zn(e,t,n)}),a}),fu=cn(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),pu=On(ct,La),du=On(ft,Ia),hu=mi(function(e,t){if(null==e)return[];var n=t[2];return n&&Jn(t[0],t[1],n)&&(t.length=1),Qt(e,St(t),[])}),gu=ka||function(){return(new zo).getTime()},vu=mi(function(e,t,n){var r=S;if(n.length){var i=x(n,vu.placeholder);r|=R}return In(e,r,t,n,i)}),mu=mi(function(e,t){t=t.length?St(t):Zi(e);for(var n=-1,r=t.length;++n0||t<0)?new i(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==T&&(t=+t||0,n=t<0?n.dropRight(-t):n.take(t-e)),n)},i.prototype.takeRightWhile=function(e,t){return this.reverse().takeWhile(e,t).reverse()},i.prototype.toArray=function(){return this.take(Aa)},Ot(i.prototype,function(e,n){var o=/^(?:filter|map|reject)|While$/.test(n),a=/^(?:first|last)$/.test(n),u=t[a?"take"+("last"==n?"Right":""):n];u&&(t.prototype[n]=function(){var t=a?[1]:arguments,n=this.__chain__,s=this.__wrapped__,l=!!this.__actions__.length,c=s instanceof i,f=t[0],p=c||Su(s);p&&o&&"function"==typeof f&&1!=f.length&&(c=p=!1);var d=function(e){return a&&n?u(e,1)[0]:u.apply(T,lt([e],t))},h={func:Fr,args:[d],thisArg:T},g=c&&!l;if(a&&!n)return g?(s=s.clone(),s.__actions__.push(h),e.call(s)):u.call(T,this.value())[0];if(!a&&p){s=g?s:new i(this);var v=e.apply(s,t);return v.__actions__.push(h),new r(v,n)}return this.thru(d)})}),tt(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(e){var n=(/^(?:replace|split)$/.test(e)?Jo:Qo)[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:join|pop|replace|shift)$/.test(e);t.prototype[e]=function(){var e=arguments;return i&&!this.__chain__?n.apply(this.value(),e):this[r](function(t){return n.apply(t,e)})}}),Ot(i.prototype,function(e,n){var r=t[n];if(r){var i=r.name,o=Ra[i]||(Ra[i]=[]);o.push({name:n,func:r})}}),Ra[Mn(T,j).name]=[{name:"wrapper",func:T}],i.prototype.clone=_,i.prototype.reverse=J,i.prototype.value=re,t.prototype.chain=Wr,t.prototype.commit=Ur,t.prototype.concat=tu,t.prototype.plant=Kr,t.prototype.reverse=Gr,t.prototype.toString=Vr,t.prototype.run=t.prototype.toJSON=t.prototype.valueOf=t.prototype.value=Xr,t.prototype.collect=t.prototype.map,t.prototype.head=t.prototype.first,t.prototype.select=t.prototype.filter,t.prototype.tail=t.prototype.rest,t}var T,A="3.10.1",S=1,j=2,O=4,M=8,D=16,R=32,P=64,L=128,I=256,q=30,H="...",B=150,$=16,z=200,F=1,W=2,U="Expected a function",K="__lodash_placeholder__",G="[object Arguments]",V="[object Array]",X="[object Boolean]",Z="[object Date]",Q="[object Error]",Y="[object Function]",J="[object Map]",ee="[object Number]",te="[object Object]",ne="[object RegExp]",re="[object Set]",ie="[object String]",oe="[object WeakMap]",ae="[object ArrayBuffer]",ue="[object Float32Array]",se="[object Float64Array]",le="[object Int8Array]",ce="[object Int16Array]",fe="[object Int32Array]",pe="[object Uint8Array]",de="[object Uint8ClampedArray]",he="[object Uint16Array]",ge="[object Uint32Array]",ve=/\b__p \+= '';/g,me=/\b(__p \+=) '' \+/g,ye=/(__e\(.*?\)|\b__t\)) \+\n'';/g,be=/&(?:amp|lt|gt|quot|#39|#96);/g,_e=/[&<>"'`]/g,xe=RegExp(be.source),we=RegExp(_e.source),Ee=/<%-([\s\S]+?)%>/g,ke=/<%([\s\S]+?)%>/g,Ce=/<%=([\s\S]+?)%>/g,Ne=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,Te=/^\w*$/,Ae=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Se=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,je=RegExp(Se.source),Oe=/[\u0300-\u036f\ufe20-\ufe23]/g,Me=/\\(\\)?/g,De=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Re=/\w*$/,Pe=/^0[xX]/,Le=/^\[object .+?Constructor\]$/,Ie=/^\d+$/,qe=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,He=/($^)/,Be=/['\n\r\u2028\u2029\\]/g,$e=function(){var e="[A-Z\\xc0-\\xd6\\xd8-\\xde]",t="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(e+"+(?="+e+t+")|"+e+"?"+t+"|"+e+"+|[0-9]+","g")}(),ze=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],Fe=-1,We={};We[ue]=We[se]=We[le]=We[ce]=We[fe]=We[pe]=We[de]=We[he]=We[ge]=!0,We[G]=We[V]=We[ae]=We[X]=We[Z]=We[Q]=We[Y]=We[J]=We[ee]=We[te]=We[ne]=We[re]=We[ie]=We[oe]=!1;var Ue={};Ue[G]=Ue[V]=Ue[ae]=Ue[X]=Ue[Z]=Ue[ue]=Ue[se]=Ue[le]=Ue[ce]=Ue[fe]=Ue[ee]=Ue[te]=Ue[ne]=Ue[ie]=Ue[pe]=Ue[de]=Ue[he]=Ue[ge]=!0,Ue[Q]=Ue[Y]=Ue[J]=Ue[re]=Ue[oe]=!1;var Ke={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Ge={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Ve={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Xe={"function":!0,object:!0},Ze={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Qe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ye=Xe[typeof t]&&t&&!t.nodeType&&t,Je=Xe[typeof e]&&e&&!e.nodeType&&e,et=Ye&&Je&&"object"==typeof i&&i&&i.Object&&i,tt=Xe[typeof self]&&self&&self.Object&&self,nt=Xe[typeof window]&&window&&window.Object&&window,rt=(Je&&Je.exports===Ye&&Ye,et||nt!==(this&&this.window)&&nt||tt||this),it=N();rt._=it,r=function(){return it}.call(t,n,t,e),!(r!==T&&(e.exports=r))}).call(this)}).call(t,n(88)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,n){"use strict";function r(){f.addClass(p);try{localStorage.setItem(p,!0)}catch(e){}}function i(){f.removeClass(p);try{localStorage.removeItem(p)}catch(e){}}function o(){try{localStorage.getItem(p)&&r()}catch(e){}}function a(){f.hasClass(p)?i():r()}function u(){o(),d.click(function(){a()})}var s=n(1)["default"];Object.defineProperty(t,"__esModule",{value:!0}),t.initialize=u;var l=n(2),c=s(l),f=(0,c["default"])("body"),p="night-mode",d=(0,c["default"])(".night-mode-toggle")}]); +//# sourceMappingURL=app-9bd040e5e5.js.map diff --git a/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js.map b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js.map new file mode 100644 index 00000000..f7d199c6 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/formatters/html/dist/app-9bd040e5e5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","_jquery","_jquery2","_highlightJsBuildHighlightPack","_highlightJsBuildHighlightPack2","_events","_sidebar","_night","window","$","configure","tabReplace","languages","initialize","initHighlighting","obj","__esModule","default","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","global","factory","document","w","Error","this","noGlobal","DOMEval","code","doc","node","i","script","createElement","text","preservedScriptAttributes","head","appendChild","parentNode","removeChild","toType","class2type","toString","isArrayLike","length","type","isFunction","isWindow","nodeName","elem","name","toLowerCase","winnow","elements","qualifier","not","jQuery","grep","nodeType","indexOf","filter","sibling","cur","dir","createOptions","options","object","each","match","rnothtmlwhite","_","flag","Identity","v","Thrower","ex","adoptValue","value","resolve","reject","noValue","method","promise","done","fail","then","apply","undefined","slice","completed","removeEventListener","ready","fcamelCase","all","letter","toUpperCase","camelCase","string","replace","rmsPrefix","rdashAlpha","Data","expando","uid","getData","data","rbrace","test","JSON","parse","dataAttr","key","rmultiDash","getAttribute","e","dataUser","set","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","css","initial","unit","cssNumber","initialInUnit","rcssNum","exec","style","start","end","getDefaultDisplay","temp","ownerDocument","display","defaultDisplayMap","body","showHide","show","values","index","dataPriv","get","isHiddenWithinTree","getAll","context","tag","ret","getElementsByTagName","querySelectorAll","merge","setGlobalEval","elems","refElements","l","buildFragment","scripts","selection","ignored","tmp","wrap","contains","j","fragment","createDocumentFragment","nodes","rhtml","rtagName","wrapMap","_default","innerHTML","htmlPrefilter","lastChild","childNodes","firstChild","textContent","push","createTextNode","inArray","rscriptType","returnTrue","returnFalse","safeActiveElement","activeElement","err","on","types","selector","fn","one","origFn","event","off","arguments","guid","add","manipulationTarget","content","children","disableScript","restoreScript","removeAttribute","cloneCopyEvent","src","dest","pdataOld","pdataCur","udataOld","udataCur","events","hasData","access","handle","extend","fixInput","rcheckableType","checked","defaultValue","domManip","collection","args","callback","concat","first","hasScripts","iNoClone","valueIsFunction","support","checkClone","rchecked","self","eq","html","map","clone","_evalUrl","rcleanScript","remove","keepData","cleanData","curCSS","computed","width","minWidth","maxWidth","getStyles","getPropertyValue","pixelBoxStyles","rnumnonpx","rboxStyle","addGetHookIf","conditionFn","hookFn","vendorPropName","emptyStyle","capName","cssPrefixes","finalPropName","cssProps","setPositiveNumber","subtract","matches","Math","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","cssExpand","ceil","getWidthOrHeight","val","valueIsBorderBox","boxSizingReliable","parseFloat","Tween","easing","prototype","init","schedule","inProgress","hidden","requestAnimationFrame","setTimeout","fx","interval","tick","createFxNow","fxNow","Date","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","Animation","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","propTween","restoreDisplay","isBox","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","rfxtypes","isEmptyObject","overflow","overflowX","overflowY","propFilter","specialEasing","Array","isArray","cssHooks","expand","properties","result","stopped","prefilters","deferred","Deferred","currentTime","remaining","startTime","duration","percent","tweens","run","notifyWith","resolveWith","originalProperties","originalOptions","stop","gotoEnd","rejectWith","bind","progress","complete","timer","stripAndCollapse","tokens","join","getClass","classesToArray","buildParams","prefix","traditional","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","selected","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","prev","responseFields","dataFilter","split","state","error","arr","getProto","Object","getPrototypeOf","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","noModule","version","rtrim","jquery","constructor","toArray","num","pushStack","prevObject","last","len","sort","splice","copy","copyIsArray","isPlainObject","random","isReady","msg","noop","proto","Ctor","globalEval","trim","makeArray","results","second","invert","callbackInverse","callbackExpect","arg","Symbol","iterator","Sizzle","seed","nid","groups","newSelector","newContext","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","getElementsByClassName","qsa","compilerCache","rbuggyQSA","rcssescape","fcssescape","setAttribute","tokenize","toSelector","rsibling","testContext","qsaError","select","createCache","cache","keys","Expr","cacheLength","markFunction","assert","el","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","disabled","isDisabled","disabledAncestor","createPositionalPseudo","argument","matchIndexes","setFilters","addCombinator","matcher","combinator","base","skip","next","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","find","dirrunsUnique","pop","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","sortOrder","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","ch","asCodePoint","charCodeAt","unloadHandler","els","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","attr","specified","escape","sel","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","parent","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","Callbacks","firing","memory","fired","locked","firingIndex","once","stopOnFalse","disable","lock","fireWith","tuples","catch","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","depth","special","that","mightThrow","maxDepth","TypeError","process","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","readyState","doScroll","chainable","emptyGet","raw","bulk","acceptData","owner","defineProperty","configurable","removeData","_data","_removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","swap","old","hide","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","div","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","t","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","related","rxhtmlTag","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","opener","getComputedStyle","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","scrollboxSize","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","suffix","expanded","parts","propHooks","eased","pos","step","scrollTop","scrollLeft","linear","swing","cos","PI","rrun","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","isTrigger","parentWindow","simulate","triggerHandler","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","host","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","noConflict","hljs","testRe","re","lexeme","isNotHighlighted","language","noHighlightRe","blockLanguage","block","_class","languagePrefixRe","getLanguage","inherit","objects","forEach","nodeStream","_nodeStream","child","mergeStreams","highlighted","selectStream","attr_str","ArrayProto","close","render","processed","nodeStack","stream","substring","substr","expand_mode","mode","variants","cached_variants","variant","endsWithParent","compileLanguage","reStr","langRe","case_insensitive","compileMode","keywords","beginKeywords","compiled_keywords","flatten","str","kw","pair","Number","objectKeys","lexemesRe","lexemes","begin","beginRe","endRe","terminator_end","illegal","illegalRe","relevance","starts","terminators","Boolean","highlight","ignore_illegals","continuation","subMode","endOfMode","endsParent","isIllegal","keywordMatch","match_str","buildSpan","classname","insideSpan","leaveOpen","noPrefix","classPrefix","openSpan","closeSpan","spanEndTag","processKeywords","keyword_match","last_index","mode_buffer","lastIndex","processSubLanguage","explicit","subLanguage","continuations","highlightAuto","processBuffer","startNewMode","create","processLexeme","buffer","new_mode","excludeBegin","returnBegin","end_mode","origin","returnEnd","excludeEnd","languageSubset","second_best","fixMarkup","useBR","fixMarkupRe","p1","buildClassName","prevClassName","currentLang","resultLang","aliases","highlightBlock","originalStream","resultNode","createElementNS","user_options","called","blocks","initHighlightingOnLoad","registerLanguage","alias","listLanguages","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","inherits","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","VAR","QUOTE_STRING","APOS_STRING","keyword","literal","built_in","RULE","ELIXIR_IDENT_RE","ELIXIR_METHOD_RE","ELIXIR_KEYWORDS","SUBST","STRING","FUNCTION","ELIXIR_DEFAULT_CONTAINS","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NUMBER","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","BLOCK_STATEMENTS","BASIC_MODES","PARAMS","VERSION","KEYWORDS","TEMPLATE_STRING","PARAMS_CONTAINS","LITERALS","TYPES","VALUE_CONTAINER","OBJECT","ARRAY","XML_IDENT_RE","TAG_INTERNALS","COMMENT_MODE","setupSelected","SIDEBAR_TYPES","element","collapse","$fullList","$clicked","fillSidebarWithNodes","moduleType","helpers","getModuleType","filtered","fullList","_templatesSidebarItemsHandlebars2","group","$target","createHandler","sidebarNodes","addEventListeners","SIDEBAR_NAV","pathname","lastIndexOf","_search","search","getParameterByName","regex","decodeURIComponent","identifyCurrentHash","getLocationHash","category","findSidebarCategory","fixLinks","CONTENT","fixSpacebar","_interopRequireWildcard","_helpers","_templatesSidebarItemsHandlebars","newObj","cleaner","findNested","parentId","parentMatch","stringify","pushLevel","levels","searchEntity","findIn","title","titleMatch","functionMatches","functions","macroMatches","macros","callbackMatches","callbacks","typeMatches","safeVal","escapeText","exceptions","tasks","_templatesSearchResultsHandlebars2","$input","$search","_templatesSearchResultsHandlebars","items","query","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_getIterator","item","res","_lodashFindkey2","_lodashFind2","_ref","anchor","_lodashFind","_lodashFindkey","Iterators","NodeList","HTMLCollection","addToUnscopables","toIObject","iterated","kind","_t","_i","_k","O","Arguments","IObject","defined","it","cof","propertyIsEnumerable","LIBRARY","$export","redefine","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","entries","P","F","core","ctx","PROTOTYPE","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","C","Function","__g","__e","aFunction","createDesc","setDesc","$Object","isEnum","getDesc","getOwnPropertyDescriptor","setDescs","defineProperties","getKeys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","bitmap","descriptor","def","stat","store","SHARED","px","$at","point","toInteger","TO_STRING","charAt","floor","anObject","getIterator","iterFn","isObject","classof","getIteratorMethod","ARG","T","callee","createFind","eachFunc","fromRight","predicate","thisArg","baseCallback","baseFindIndex","baseFind","baseEach","baseToString","argCount","bindCallback","identity","baseMatches","property","baseMatchesProperty","baseGet","path","pathKey","toObject","baseIsMatch","matchData","customizer","noCustomizer","objValue","srcValue","baseIsEqual","getMatchData","isArr","isCommon","isKey","isStrictComparable","toPath","baseSlice","baseProperty","basePropertyDeep","array","pairs","reIsPlainProp","reIsDeepProp","rePropName","number","quote","reEscapeChar","isObjectLike","arraySome","other","isLoose","stackA","stackB","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","arrayTag","othTag","objToString","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","equalArrays","equalObjects","arrLength","othLength","arrValue","othValue","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","objProps","objLength","othProps","skipCtor","objCtor","othCtor","objectProto","getNative","isNative","isLength","MAX_SAFE_INTEGER","funcTag","reIsNative","reIsHostCtor","nativeIsArray","typedArrayTags","objectToString","mapTag","setTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","getLength","isIndex","reIsUint","shimKeys","keysIn","propsLength","allowIndexes","isArguments","isProto","skipIndexes","nativeKeys","isArrayLikeObject","genTag","accumulator","baseForOwn","iteratee","baseFor","createBaseEach","iterable","createBaseFor","keysFunc","retKey","createFindKey","objectFunc","findKey","Handlebars","template","1","depth0","partials","helper","escapeExpression","helperMissing","nullContext","3","blockParams","depths","stack1","program","inverse","4","alias1","5","alias2","alias3","6","lambda","8","10","compiler","main","useData","useDepths","hb","HandlebarsEnvironment","Utils","SafeString","_handlebarsSafeString2","Exception","_handlebarsException2","VM","runtime","spec","_handlebarsBase","_handlebarsSafeString","_handlebarsException","_handlebarsUtils","_handlebarsRuntime","_handlebarsNoConflict","_handlebarsNoConflict2","inst","decorators","registerDefaultHelpers","_decorators","registerDefaultDecorators","_utils","_exception","_exception2","_logger","_logger2","COMPILER_REVISION","REVISION_CHANGES","2","7","objectType","logger","log","registerHelper","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","createFrame","escapeChar","chr","toHTML","possible","badChars","isEmpty","frame","_parent","ids","appendContextPath","contextPath","&","<","\"","'","`","=","loc","line","column","errorProps","captureStackTrace","lineNumber","nop","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","_helpersBlockHelperMissing","_helpersEach","_helpersHelperMissing","_helpersIf","_helpersLog","_helpersLookup","_helpersWith","execIteration","field","priorKey","conditional","includeZero","level","_decoratorsInline2","_decoratorsInline","methodMap","lookupLevel","levelMap","_len","_key","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","invokePartialWrapper","resolvePartial","invokePartial","compilerOptions","indent","lines","_setup","initData","useBlockParams","executeDecorators","decorator","main_d","strict","lookup","programs","declaredBlockParams","programWrapper","wrapProgram","common","seal","isTop","usePartial","useDecorators","_child","prog","currentDepths","currentPartialBlock","partialBlock","$Handlebars","__default","9","12","13","15","17","18","20","nodeGroup","nodeId","currentPath","entry","closeSidebar","sidebarClosingClass","sidebarOpenedClass","sidebarOpeningClass","toggling","sidebarClosedClass","animationDuration","openSidebar","toggleSidebar","bodyClass","includes","setDefaultSidebarState","sidebarClasses","innerWidth","breakpoint","lastWindowWidth","resize","_lodash","throttle","baseCompareAscending","valIsNull","valIsUndef","valIsReflexive","othIsNull","othIsUndef","othIsReflexive","baseIndexOf","fromIndex","indexOfNaN","baseIsFunction","charsLeftIndex","chars","charsRightIndex","compareAscending","criteria","compareMultiple","orders","objCriteria","othCriteria","ordersLength","deburrLetter","deburredLetters","escapeHtmlChar","htmlEscapes","escapeRegExpChar","leadingChar","whitespaceChar","regexpEscapes","stringEscapes","escapeStringChar","isSpace","replaceHolders","placeholder","resIndex","PLACEHOLDER","sortedUniq","seen","trimmedLeftIndex","trimmedRightIndex","unescapeHtmlChar","htmlUnescapes","runInContext","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseLodash","chainAll","actions","__wrapped__","__actions__","__chain__","__dir__","__filtered__","__iteratees__","__takeCount__","POSITIVE_INFINITY","__views__","lazyClone","arrayCopy","lazyReverse","lazyValue","isRight","getView","iteratees","iterLength","takeCount","nativeMin","LARGE_ARRAY_SIZE","baseWrapperValue","outer","iterIndex","LAZY_MAP_FLAG","LAZY_FILTER_FLAG","MapCache","__data__","mapDelete","mapGet","mapHas","mapSet","SetCache","nativeCreate","Set","cacheIndexOf","cachePush","arrayConcat","othIndex","arrayEach","arrayEachRight","arrayEvery","arrayExtremum","comparator","exValue","arrayFilter","arrayMap","arrayPush","arrayReduce","initFromArray","arrayReduceRight","arraySum","assignDefaults","objectValue","sourceValue","assignOwnDefaults","assignWith","baseAssign","baseCopy","baseAt","isNil","baseClone","isDeep","initCloneArray","isFunc","cloneableTags","initCloneByTag","initCloneObject","subValue","baseDelay","FUNC_ERROR_TEXT","baseDifference","getIndexOf","valuesLength","valuesIndex","baseEvery","baseExtremum","baseFill","baseFilter","baseFlatten","isStrict","baseForIn","baseForOwnRight","baseForRight","baseFunctions","baseMap","baseMerge","isSrcArr","baseMergeDeep","mergeFunc","toPlainObject","basePullAt","indexes","previous","baseRandom","min","nativeFloor","nativeRandom","baseReduce","initFromCollection","baseSome","baseSortBy","comparer","baseSortByOrder","getCallback","baseSum","baseUniq","isLarge","seenIndex","baseValues","baseWhile","isDrop","action","binaryIndex","retHighest","low","HALF_MAX_ARRAY_LENGTH","mid","binaryIndexBy","valIsNaN","isDef","isReflexive","setLow","MAX_ARRAY_INDEX","bufferClone","ArrayBuffer","byteLength","Uint8Array","composeArgs","holders","holdersLength","argsIndex","argsLength","nativeMax","leftIndex","leftLength","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","createAssigner","assigner","restParam","sources","guard","isIterateeCall","createBindWrapper","wrapper","createCtorWrapper","createCompounder","words","deburr","thisBinding","baseCreate","createCurry","curryFunc","arity","createWrapper","createDefaults","createExtremum","toIterable","createFindIndex","createFlow","funcs","thru","getFuncName","isLaziable","ARY_FLAG","CURRY_FLAG","PARTIAL_FLAG","REARG_FLAG","plant","createForEach","arrayFunc","createForIn","createForOwn","createObjectMapper","isMapKeys","createPadDir","createPadding","createPartial","partialFunc","createReduce","createHybridWrapper","bitmask","partialsRight","holdersRight","argPos","ary","isCurry","isCurryRight","argsHolders","newArgPos","newArity","newsHolders","newHoldersRight","newPartials","newPartialsRight","PARTIAL_RIGHT_FLAG","isCurryBound","BIND_FLAG","BIND_KEY_FLAG","newData","setData","isBind","isBindKey","reorder","isAry","CURRY_BOUND_FLAG","CURRY_RIGHT_FLAG","strLength","nativeIsFinite","padLength","repeat","nativeCeil","createPartialWrapper","createRound","methodName","precision","pow","createSortedIndex","mergeData","baseSetData","realNames","otherFunc","transforms","size","byteOffset","reFlags","invokePath","srcBitmask","newBitmask","isCombo","mergeDefaults","pickByArray","pickByCallback","oldArray","chunk","compact","drop","dropRight","dropRightWhile","dropWhile","fill","flattenDeep","pull","rest","take","takeRight","takeRightWhile","takeWhile","uniq","isSorted","unzip","unzipWith","xor","zipObject","chain","tap","interceptor","wrapperChain","wrapperCommit","wrapperPlant","wrapperReverse","wrapped","wrapperToString","wrapperValue","every","findWhere","isString","pluck","sample","rand","shuffle","some","sortBy","sortByOrder","where","debounce","cancel","timeoutId","maxTimeoutId","lastCalled","trailingCall","isCalled","delayed","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","memoize","resolver","memoized","Cache","negate","otherArgs","spread","cloneDeep","gte","isBoolean","isDate","isElement","isEqual","isError","isMatch","isNumber","isNull","isRegExp","isUndefined","lte","multiValue","nested","transform","valuesIn","inRange","floating","noMin","noMax","capitalize","reLatin1","reComboMark","endsWith","reHasUnescapedHtml","reUnescapedHtml","escapeRegExp","reHasRegExpChars","reRegExpChars","pad","radix","nativeParseInt","reHasHexPrefix","startsWith","otherOptions","templateSettings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reNoMatch","reDelimiters","reInterpolate","reEsTemplate","evaluate","sourceURL","templateCounter","escapeValue","interpolateValue","esTemplateValue","evaluateValue","reUnescapedString","variable","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","attempt","trimLeft","trimRight","trunc","DEFAULT_TRUNC_LENGTH","omission","DEFAULT_TRUNC_OMISSION","separator","newEnd","unescape","reHasEscapedHtml","reEscapedHtml","reWords","constant","matchesProperty","mixin","isObj","methodNames","oldDash","propertyOf","range","times","MAX_ARRAY_LENGTH","uniqueId","idCounter","augend","addend","sum","defaults","pick","contextProps","arrayProto","stringProto","WeakMap","nativeNow","NEGATIVE_INFINITY","metaMap","reEscape","reEvaluate","baseEachRight","HOT_SPAN","HOT_COUNT","difference","findIndex","findLastIndex","intersection","arrays","caches","pullAt","sortedIndex","sortedLastIndex","union","without","zip","zipWith","wrapperConcat","at","countBy","findLast","forEachRight","groupBy","indexBy","invoke","isProp","partition","reduce","reduceRight","sortByAll","getTime","bindAll","bindKey","curry","curryRight","flow","flowRight","modArgs","partialRight","rearg","assign","defaultsDeep","findLastKey","forIn","forInRight","forOwn","forOwnRight","mapKeys","mapValues","omit","word","kebabCase","padLeft","padRight","snakeCase","startCase","methodOf","backflow","collect","compose","eachRight","tail","any","detect","foldl","foldr","include","inject","isFilter","takeName","dropName","operationName","createCallback","checkIteratee","retUnwrapped","lodashFunc","isHybrid","isLazy","useLazy","onlyLazy","chainName","names","commit","toJSON","valueOf","upper","lower","À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ç","ç","Ð","ð","È","É","Ê","Ë","è","é","ê","ë","Ì","Í","Î","Ï","ì","í","î","ï","Ñ","ñ","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","Ù","Ú","Û","Ü","ù","ú","û","ü","Ý","ý","ÿ","Æ","æ","Þ","þ","ß","&","<",">",""","'","`","objectTypes","function","A","D","E","d","f","r","u","x","\\","\n","\r","
","
","freeExports","freeModule","freeGlobal","freeSelf","freeWindow","webpackPolyfill","deprecate","paths","activateNightMode","nightMode","localStorage","setItem","deactivateNightMode","removeItem","checkForNightMode","getItem","toggleNightMode","nightModeToggle"],"mappings":"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","file":"app-9bd040e5e5.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// Dependencies\n\t// ------------\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(1)['default'];\n\n\tvar _jquery = __webpack_require__(2);\n\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\n\tvar _highlightJsBuildHighlightPack = __webpack_require__(3);\n\n\tvar _highlightJsBuildHighlightPack2 = _interopRequireDefault(_highlightJsBuildHighlightPack);\n\n\tvar _events = __webpack_require__(4);\n\n\tvar _sidebar = __webpack_require__(86);\n\n\tvar _night = __webpack_require__(89);\n\n\twindow.$ = _jquery2['default'];\n\n\t(0, _jquery2['default'])(function () {\n\t // Setup Highlight.js\n\t _highlightJsBuildHighlightPack2['default'].configure({\n\t tabReplace: ' ', // 4 spaces\n\t languages: [] // disable auto-detect\n\t });\n\n\t (0, _night.initialize)();\n\t (0, _sidebar.initialize)();\n\t (0, _events.initialize)();\n\t _highlightJsBuildHighlightPack2['default'].initHighlighting();\n\t});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\texports[\"default\"] = function (obj) {\n\t return obj && obj.__esModule ? obj : {\n\t \"default\": obj\n\t };\n\t};\n\n\texports.__esModule = true;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * jQuery JavaScript Library v3.3.1\n\t * https://jquery.com/\n\t *\n\t * Includes Sizzle.js\n\t * https://sizzlejs.com/\n\t *\n\t * Copyright JS Foundation and other contributors\n\t * Released under the MIT license\n\t * https://jquery.org/license\n\t *\n\t * Date: 2018-01-20T17:24Z\n\t */\n\t( function( global, factory ) {\n\n\t\t\"use strict\";\n\n\t\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t\t// is present, execute the factory and get jQuery.\n\t\t\t// For environments that do not have a `window` with a `document`\n\t\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t\t// This accentuates the need for the creation of a real `window`.\n\t\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t\t// See ticket #14549 for more info.\n\t\t\tmodule.exports = global.document ?\n\t\t\t\tfactory( global, true ) :\n\t\t\t\tfunction( w ) {\n\t\t\t\t\tif ( !w.document ) {\n\t\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t\t}\n\t\t\t\t\treturn factory( w );\n\t\t\t\t};\n\t\t} else {\n\t\t\tfactory( global );\n\t\t}\n\n\t// Pass this if window is not defined yet\n\t} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n\t// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n\t// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n\t// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n\t// enough that all such attempts are guarded in a try block.\n\t\"use strict\";\n\n\tvar arr = [];\n\n\tvar document = window.document;\n\n\tvar getProto = Object.getPrototypeOf;\n\n\tvar slice = arr.slice;\n\n\tvar concat = arr.concat;\n\n\tvar push = arr.push;\n\n\tvar indexOf = arr.indexOf;\n\n\tvar class2type = {};\n\n\tvar toString = class2type.toString;\n\n\tvar hasOwn = class2type.hasOwnProperty;\n\n\tvar fnToString = hasOwn.toString;\n\n\tvar ObjectFunctionString = fnToString.call( Object );\n\n\tvar support = {};\n\n\tvar isFunction = function isFunction( obj ) {\n\n\t // Support: Chrome <=57, Firefox <=52\n\t // In some browsers, typeof returns \"function\" for HTML elements\n\t // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t // We don't want to classify *any* DOM node as a function.\n\t return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n\t };\n\n\n\tvar isWindow = function isWindow( obj ) {\n\t\t\treturn obj != null && obj === obj.window;\n\t\t};\n\n\n\n\n\t\tvar preservedScriptAttributes = {\n\t\t\ttype: true,\n\t\t\tsrc: true,\n\t\t\tnoModule: true\n\t\t};\n\n\t\tfunction DOMEval( code, doc, node ) {\n\t\t\tdoc = doc || document;\n\n\t\t\tvar i,\n\t\t\t\tscript = doc.createElement( \"script\" );\n\n\t\t\tscript.text = code;\n\t\t\tif ( node ) {\n\t\t\t\tfor ( i in preservedScriptAttributes ) {\n\t\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\t\tscript[ i ] = node[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t\t}\n\n\n\tfunction toType( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android <=2.3 only (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t}\n\t/* global Symbol */\n\t// Defining this global in .eslintrc.json would create a danger of using the global\n\t// unguarded in another place, it seems safer to define global only for this module\n\n\n\n\tvar\n\t\tversion = \"3.3.1\",\n\n\t\t// Define a local copy of jQuery\n\t\tjQuery = function( selector, context ) {\n\n\t\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\t\treturn new jQuery.fn.init( selector, context );\n\t\t},\n\n\t\t// Support: Android <=4.0 only\n\t\t// Make sure we trim BOM and NBSP\n\t\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n\tjQuery.fn = jQuery.prototype = {\n\n\t\t// The current version of jQuery being used\n\t\tjquery: version,\n\n\t\tconstructor: jQuery,\n\n\t\t// The default length of a jQuery object is 0\n\t\tlength: 0,\n\n\t\ttoArray: function() {\n\t\t\treturn slice.call( this );\n\t\t},\n\n\t\t// Get the Nth element in the matched element set OR\n\t\t// Get the whole matched element set as a clean array\n\t\tget: function( num ) {\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tif ( num == null ) {\n\t\t\t\treturn slice.call( this );\n\t\t\t}\n\n\t\t\t// Return just the one element from the set\n\t\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t\t},\n\n\t\t// Take an array of elements and push it onto the stack\n\t\t// (returning the new matched element set)\n\t\tpushStack: function( elems ) {\n\n\t\t\t// Build a new jQuery matched element set\n\t\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t\t// Add the old object onto the stack (as a reference)\n\t\t\tret.prevObject = this;\n\n\t\t\t// Return the newly-formed element set\n\t\t\treturn ret;\n\t\t},\n\n\t\t// Execute a callback for every element in the matched set.\n\t\teach: function( callback ) {\n\t\t\treturn jQuery.each( this, callback );\n\t\t},\n\n\t\tmap: function( callback ) {\n\t\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\t\treturn callback.call( elem, i, elem );\n\t\t\t} ) );\n\t\t},\n\n\t\tslice: function() {\n\t\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t\t},\n\n\t\tfirst: function() {\n\t\t\treturn this.eq( 0 );\n\t\t},\n\n\t\tlast: function() {\n\t\t\treturn this.eq( -1 );\n\t\t},\n\n\t\teq: function( i ) {\n\t\t\tvar len = this.length,\n\t\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t\t},\n\n\t\tend: function() {\n\t\t\treturn this.prevObject || this.constructor();\n\t\t},\n\n\t\t// For internal use only.\n\t\t// Behaves like an Array's method, not like a jQuery method.\n\t\tpush: push,\n\t\tsort: arr.sort,\n\t\tsplice: arr.splice\n\t};\n\n\tjQuery.extend = jQuery.fn.extend = function() {\n\t\tvar options, name, src, copy, copyIsArray, clone,\n\t\t\ttarget = arguments[ 0 ] || {},\n\t\t\ti = 1,\n\t\t\tlength = arguments.length,\n\t\t\tdeep = false;\n\n\t\t// Handle a deep copy situation\n\t\tif ( typeof target === \"boolean\" ) {\n\t\t\tdeep = target;\n\n\t\t\t// Skip the boolean and the target\n\t\t\ttarget = arguments[ i ] || {};\n\t\t\ti++;\n\t\t}\n\n\t\t// Handle case when target is a string or something (possible in deep copy)\n\t\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\t\ttarget = {};\n\t\t}\n\n\t\t// Extend jQuery itself if only one argument is passed\n\t\tif ( i === length ) {\n\t\t\ttarget = this;\n\t\t\ti--;\n\t\t}\n\n\t\tfor ( ; i < length; i++ ) {\n\n\t\t\t// Only deal with non-null/undefined values\n\t\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t\t// Extend the base object\n\t\t\t\tfor ( name in options ) {\n\t\t\t\t\tsrc = target[ name ];\n\t\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t\t// Prevent never-ending loop\n\t\t\t\t\tif ( target === copy ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Return the modified object\n\t\treturn target;\n\t};\n\n\tjQuery.extend( {\n\n\t\t// Unique for each copy of jQuery on the page\n\t\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t\t// Assume jQuery is ready without the ready module\n\t\tisReady: true,\n\n\t\terror: function( msg ) {\n\t\t\tthrow new Error( msg );\n\t\t},\n\n\t\tnoop: function() {},\n\n\t\tisPlainObject: function( obj ) {\n\t\t\tvar proto, Ctor;\n\n\t\t\t// Detect obvious negatives\n\t\t\t// Use toString instead of jQuery.type to catch host objects\n\t\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tproto = getProto( obj );\n\n\t\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\t\tif ( !proto ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t\t},\n\n\t\tisEmptyObject: function( obj ) {\n\n\t\t\t/* eslint-disable no-unused-vars */\n\t\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\t\tvar name;\n\n\t\t\tfor ( name in obj ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Evaluates a script in a global context\n\t\tglobalEval: function( code ) {\n\t\t\tDOMEval( code );\n\t\t},\n\n\t\teach: function( obj, callback ) {\n\t\t\tvar length, i = 0;\n\n\t\t\tif ( isArrayLike( obj ) ) {\n\t\t\t\tlength = obj.length;\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t},\n\n\t\t// Support: Android <=4.0 only\n\t\ttrim: function( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t\t},\n\n\t\t// results is for internal usage only\n\t\tmakeArray: function( arr, results ) {\n\t\t\tvar ret = results || [];\n\n\t\t\tif ( arr != null ) {\n\t\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tpush.call( ret, arr );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t},\n\n\t\tinArray: function( elem, arr, i ) {\n\t\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t\t},\n\n\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\tmerge: function( first, second ) {\n\t\t\tvar len = +second.length,\n\t\t\t\tj = 0,\n\t\t\t\ti = first.length;\n\n\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\n\t\t\tfirst.length = i;\n\n\t\t\treturn first;\n\t\t},\n\n\t\tgrep: function( elems, callback, invert ) {\n\t\t\tvar callbackInverse,\n\t\t\t\tmatches = [],\n\t\t\t\ti = 0,\n\t\t\t\tlength = elems.length,\n\t\t\t\tcallbackExpect = !invert;\n\n\t\t\t// Go through the array, only saving the items\n\t\t\t// that pass the validator function\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn matches;\n\t\t},\n\n\t\t// arg is for internal usage only\n\t\tmap: function( elems, callback, arg ) {\n\t\t\tvar length, value,\n\t\t\t\ti = 0,\n\t\t\t\tret = [];\n\n\t\t\t// Go through the array, translating each of the items to their new values\n\t\t\tif ( isArrayLike( elems ) ) {\n\t\t\t\tlength = elems.length;\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\t\tif ( value != null ) {\n\t\t\t\t\t\tret.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Go through every key on the object,\n\t\t\t} else {\n\t\t\t\tfor ( i in elems ) {\n\t\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\t\tif ( value != null ) {\n\t\t\t\t\t\tret.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Flatten any nested arrays\n\t\t\treturn concat.apply( [], ret );\n\t\t},\n\n\t\t// A global GUID counter for objects\n\t\tguid: 1,\n\n\t\t// jQuery.support is not used in Core but other projects attach their\n\t\t// properties to it so it needs to exist.\n\t\tsupport: support\n\t} );\n\n\tif ( typeof Symbol === \"function\" ) {\n\t\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n\t}\n\n\t// Populate the class2type map\n\tjQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\n\tfunction isArrayLike( obj ) {\n\n\t\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t\t// `in` check used to prevent JIT error (gh-2145)\n\t\t// hasOwn isn't used here due to false negatives\n\t\t// regarding Nodelist length in IE\n\t\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\t\ttype = toType( obj );\n\n\t\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn type === \"array\" || length === 0 ||\n\t\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n\t}\n\tvar Sizzle =\n\t/*!\n\t * Sizzle CSS Selector Engine v2.3.3\n\t * https://sizzlejs.com/\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license\n\t * http://jquery.org/license\n\t *\n\t * Date: 2016-08-08\n\t */\n\t(function( window ) {\n\n\tvar i,\n\t\tsupport,\n\t\tExpr,\n\t\tgetText,\n\t\tisXML,\n\t\ttokenize,\n\t\tcompile,\n\t\tselect,\n\t\toutermostContext,\n\t\tsortInput,\n\t\thasDuplicate,\n\n\t\t// Local document vars\n\t\tsetDocument,\n\t\tdocument,\n\t\tdocElem,\n\t\tdocumentIsHTML,\n\t\trbuggyQSA,\n\t\trbuggyMatches,\n\t\tmatches,\n\t\tcontains,\n\n\t\t// Instance-specific data\n\t\texpando = \"sizzle\" + 1 * new Date(),\n\t\tpreferredDoc = window.document,\n\t\tdirruns = 0,\n\t\tdone = 0,\n\t\tclassCache = createCache(),\n\t\ttokenCache = createCache(),\n\t\tcompilerCache = createCache(),\n\t\tsortOrder = function( a, b ) {\n\t\t\tif ( a === b ) {\n\t\t\t\thasDuplicate = true;\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\n\t\t// Instance methods\n\t\thasOwn = ({}).hasOwnProperty,\n\t\tarr = [],\n\t\tpop = arr.pop,\n\t\tpush_native = arr.push,\n\t\tpush = arr.push,\n\t\tslice = arr.slice,\n\t\t// Use a stripped-down indexOf as it's faster than native\n\t\t// https://jsperf.com/thor-indexof-vs-for/5\n\t\tindexOf = function( list, elem ) {\n\t\t\tvar i = 0,\n\t\t\t\tlen = list.length;\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tif ( list[i] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t},\n\n\t\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t\t// Regular expressions\n\n\t\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\t\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\t\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\t\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t\t// Operator (capture 2)\n\t\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\t\"*\\\\]\",\n\n\t\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t\t// 2. simple (capture 6)\n\t\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t\t// 3. anything else (capture 2)\n\t\t\t\".*\" +\n\t\t\t\")\\\\)|)\",\n\n\t\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\t\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\t\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\t\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\t\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\t\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\t\trpseudo = new RegExp( pseudos ),\n\t\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\t\tmatchExpr = {\n\t\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t\t// For use in libraries implementing .is()\n\t\t\t// We use this for POS matching in `select`\n\t\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t\t},\n\n\t\trinputs = /^(?:input|select|textarea|button)$/i,\n\t\trheader = /^h\\d$/i,\n\n\t\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\t\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\t\trsibling = /[+~]/,\n\n\t\t// CSS escapes\n\t\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\t\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\t\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t\t// NaN means non-codepoint\n\t\t\t// Support: Firefox<24\n\t\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\t\treturn high !== high || escapedWhitespace ?\n\t\t\t\tescaped :\n\t\t\t\thigh < 0 ?\n\t\t\t\t\t// BMP codepoint\n\t\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t\t},\n\n\t\t// CSS string/identifier serialization\n\t\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\t\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\t\tfcssescape = function( ch, asCodePoint ) {\n\t\t\tif ( asCodePoint ) {\n\n\t\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\t\treturn \"\\uFFFD\";\n\t\t\t\t}\n\n\t\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t\t}\n\n\t\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\t\treturn \"\\\\\" + ch;\n\t\t},\n\n\t\t// Used for iframes\n\t\t// See setDocument()\n\t\t// Removing the function wrapper causes a \"Permission Denied\"\n\t\t// error in IE\n\t\tunloadHandler = function() {\n\t\t\tsetDocument();\n\t\t},\n\n\t\tdisabledAncestor = addCombinator(\n\t\t\tfunction( elem ) {\n\t\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t\t},\n\t\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t\t);\n\n\t// Optimize for push.apply( _, NodeList )\n\ttry {\n\t\tpush.apply(\n\t\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\t\tpreferredDoc.childNodes\n\t\t);\n\t\t// Support: Android<4.0\n\t\t// Detect silently failing push.apply\n\t\tarr[ preferredDoc.childNodes.length ].nodeType;\n\t} catch ( e ) {\n\t\tpush = { apply: arr.length ?\n\n\t\t\t// Leverage slice if possible\n\t\t\tfunction( target, els ) {\n\t\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t\t} :\n\n\t\t\t// Support: IE<9\n\t\t\t// Otherwise append directly\n\t\t\tfunction( target, els ) {\n\t\t\t\tvar j = target.length,\n\t\t\t\t\ti = 0;\n\t\t\t\t// Can't trust NodeList.length\n\t\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\t\ttarget.length = j - 1;\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction Sizzle( selector, context, results, seed ) {\n\t\tvar m, i, elem, nid, match, groups, newSelector,\n\t\t\tnewContext = context && context.ownerDocument,\n\n\t\t\t// nodeType defaults to 9, since context defaults to document\n\t\t\tnodeType = context ? context.nodeType : 9;\n\n\t\tresults = results || [];\n\n\t\t// Return early from calls with invalid selector or context\n\t\tif ( typeof selector !== \"string\" || !selector ||\n\t\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\t\treturn results;\n\t\t}\n\n\t\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\t\tif ( !seed ) {\n\n\t\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\t\tsetDocument( context );\n\t\t\t}\n\t\t\tcontext = context || document;\n\n\t\t\tif ( documentIsHTML ) {\n\n\t\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t\t// ID selector\n\t\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t\t// Document context\n\t\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Element context\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Type selector\n\t\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\t\treturn results;\n\n\t\t\t\t\t// Class selector\n\t\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Take advantage of querySelectorAll\n\t\t\t\tif ( support.qsa &&\n\t\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\t\tnewContext = context;\n\t\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t\t// Support: IE <=8\n\t\t\t\t\t// Exclude object elements\n\t\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\t\ti = groups.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\t\tcontext;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( newSelector ) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// All others\n\t\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n\t}\n\n\t/**\n\t * Create key-value caches of limited size\n\t * @returns {function(string, object)} Returns the Object data after storing it on itself with\n\t *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n\t *\tdeleting the oldest entry\n\t */\n\tfunction createCache() {\n\t\tvar keys = [];\n\n\t\tfunction cache( key, value ) {\n\t\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t\t// Only keep the most recent entries\n\t\t\t\tdelete cache[ keys.shift() ];\n\t\t\t}\n\t\t\treturn (cache[ key + \" \" ] = value);\n\t\t}\n\t\treturn cache;\n\t}\n\n\t/**\n\t * Mark a function for special use by Sizzle\n\t * @param {Function} fn The function to mark\n\t */\n\tfunction markFunction( fn ) {\n\t\tfn[ expando ] = true;\n\t\treturn fn;\n\t}\n\n\t/**\n\t * Support testing using an element\n\t * @param {Function} fn Passed the created element and returns a boolean result\n\t */\n\tfunction assert( fn ) {\n\t\tvar el = document.createElement(\"fieldset\");\n\n\t\ttry {\n\t\t\treturn !!fn( el );\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t} finally {\n\t\t\t// Remove from its parent by default\n\t\t\tif ( el.parentNode ) {\n\t\t\t\tel.parentNode.removeChild( el );\n\t\t\t}\n\t\t\t// release memory in IE\n\t\t\tel = null;\n\t\t}\n\t}\n\n\t/**\n\t * Adds the same handler for all of the specified attrs\n\t * @param {String} attrs Pipe-separated list of attributes\n\t * @param {Function} handler The method that will be applied\n\t */\n\tfunction addHandle( attrs, handler ) {\n\t\tvar arr = attrs.split(\"|\"),\n\t\t\ti = arr.length;\n\n\t\twhile ( i-- ) {\n\t\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t\t}\n\t}\n\n\t/**\n\t * Checks document order of two siblings\n\t * @param {Element} a\n\t * @param {Element} b\n\t * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n\t */\n\tfunction siblingCheck( a, b ) {\n\t\tvar cur = b && a,\n\t\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t\t// Use IE sourceIndex if available on both nodes\n\t\tif ( diff ) {\n\t\t\treturn diff;\n\t\t}\n\n\t\t// Check if b follows a\n\t\tif ( cur ) {\n\t\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\t\tif ( cur === b ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn a ? 1 : -1;\n\t}\n\n\t/**\n\t * Returns a function to use in pseudos for input types\n\t * @param {String} type\n\t */\n\tfunction createInputPseudo( type ) {\n\t\treturn function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === type;\n\t\t};\n\t}\n\n\t/**\n\t * Returns a function to use in pseudos for buttons\n\t * @param {String} type\n\t */\n\tfunction createButtonPseudo( type ) {\n\t\treturn function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t\t};\n\t}\n\n\t/**\n\t * Returns a function to use in pseudos for :enabled/:disabled\n\t * @param {Boolean} disabled true for :disabled; false for :enabled\n\t */\n\tfunction createDisabledPseudo( disabled ) {\n\n\t\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\t\treturn function( elem ) {\n\n\t\t\t// Only certain elements can match :enabled or :disabled\n\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\t\tif ( \"form\" in elem ) {\n\n\t\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t\t// * option elements in a disabled optgroup\n\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t\t// All such elements have a \"form\" property.\n\t\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t\t}\n\n\t\t\t\treturn elem.disabled === disabled;\n\n\t\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t\t// even exist on them, let alone have a boolean value.\n\t\t\t} else if ( \"label\" in elem ) {\n\t\t\t\treturn elem.disabled === disabled;\n\t\t\t}\n\n\t\t\t// Remaining elements are neither :enabled nor :disabled\n\t\t\treturn false;\n\t\t};\n\t}\n\n\t/**\n\t * Returns a function to use in pseudos for positionals\n\t * @param {Function} fn\n\t */\n\tfunction createPositionalPseudo( fn ) {\n\t\treturn markFunction(function( argument ) {\n\t\t\targument = +argument;\n\t\t\treturn markFunction(function( seed, matches ) {\n\t\t\t\tvar j,\n\t\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\t\ti = matchIndexes.length;\n\n\t\t\t\t// Match elements found at the specified indexes\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Checks a node for validity as a Sizzle context\n\t * @param {Element|Object=} context\n\t * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n\t */\n\tfunction testContext( context ) {\n\t\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n\t}\n\n\t// Expose support vars for convenience\n\tsupport = Sizzle.support = {};\n\n\t/**\n\t * Detects XML nodes\n\t * @param {Element|Object} elem An element or a document\n\t * @returns {Boolean} True iff elem is a non-HTML XML node\n\t */\n\tisXML = Sizzle.isXML = function( elem ) {\n\t\t// documentElement is verified for cases where it doesn't yet exist\n\t\t// (such as loading iframes in IE - #4833)\n\t\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\t\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n\t};\n\n\t/**\n\t * Sets document-related variables once based on the current document\n\t * @param {Element|Object} [doc] An element or document object to use to set the document\n\t * @returns {Object} Returns the current document\n\t */\n\tsetDocument = Sizzle.setDocument = function( node ) {\n\t\tvar hasCompare, subWindow,\n\t\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t\t// Return early if doc is invalid or already selected\n\t\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\t\treturn document;\n\t\t}\n\n\t\t// Update global variables\n\t\tdocument = doc;\n\t\tdocElem = document.documentElement;\n\t\tdocumentIsHTML = !isXML( document );\n\n\t\t// Support: IE 9-11, Edge\n\t\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t\tif ( preferredDoc !== document &&\n\t\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t\t// Support: IE 11, Edge\n\t\t\tif ( subWindow.addEventListener ) {\n\t\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t\t// Support: IE 9 - 10 only\n\t\t\t} else if ( subWindow.attachEvent ) {\n\t\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t\t}\n\t\t}\n\n\t\t/* Attributes\n\t\t---------------------------------------------------------------------- */\n\n\t\t// Support: IE<8\n\t\t// Verify that getAttribute really returns attributes and not properties\n\t\t// (excepting IE8 booleans)\n\t\tsupport.attributes = assert(function( el ) {\n\t\t\tel.className = \"i\";\n\t\t\treturn !el.getAttribute(\"className\");\n\t\t});\n\n\t\t/* getElement(s)By*\n\t\t---------------------------------------------------------------------- */\n\n\t\t// Check if getElementsByTagName(\"*\") returns only elements\n\t\tsupport.getElementsByTagName = assert(function( el ) {\n\t\t\tel.appendChild( document.createComment(\"\") );\n\t\t\treturn !el.getElementsByTagName(\"*\").length;\n\t\t});\n\n\t\t// Support: IE<9\n\t\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t\t// Support: IE<10\n\t\t// Check if getElementById returns elements by name\n\t\t// The broken getElementById methods don't pick up programmatically-set names,\n\t\t// so use a roundabout getElementsByName test\n\t\tsupport.getById = assert(function( el ) {\n\t\t\tdocElem.appendChild( el ).id = expando;\n\t\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t\t});\n\n\t\t// ID filter and find\n\t\tif ( support.getById ) {\n\t\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t\t};\n\t\t\t};\n\t\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\t\treturn node && node.value === attrId;\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t// Support: IE 6 - 7 only\n\t\t\t// getElementById is not reliable as a find shortcut\n\t\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\t\tvar node, i, elems,\n\t\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Tag\n\t\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\t\tfunction( tag, context ) {\n\t\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t\t} else if ( support.qsa ) {\n\t\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t\t}\n\t\t\t} :\n\n\t\t\tfunction( tag, context ) {\n\t\t\t\tvar elem,\n\t\t\t\t\ttmp = [],\n\t\t\t\t\ti = 0,\n\t\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t\t// Filter out possible comments\n\t\t\t\tif ( tag === \"*\" ) {\n\t\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tmp;\n\t\t\t\t}\n\t\t\t\treturn results;\n\t\t\t};\n\n\t\t// Class\n\t\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\t\treturn context.getElementsByClassName( className );\n\t\t\t}\n\t\t};\n\n\t\t/* QSA/matchesSelector\n\t\t---------------------------------------------------------------------- */\n\n\t\t// QSA and matchesSelector support\n\n\t\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\t\trbuggyMatches = [];\n\n\t\t// qSa(:focus) reports false when true (Chrome 21)\n\t\t// We allow this because of a bug in IE8/9 that throws an error\n\t\t// whenever `document.activeElement` is accessed on an iframe\n\t\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t\t// See https://bugs.jquery.com/ticket/13378\n\t\trbuggyQSA = [];\n\n\t\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t\t// Build QSA regex\n\t\t\t// Regex strategy adopted from Diego Perini\n\t\t\tassert(function( el ) {\n\t\t\t\t// Select is set to empty string on purpose\n\t\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t\t// setting a boolean content attribute,\n\t\t\t\t// since its presence should be enough\n\t\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\t\"\";\n\n\t\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t\t}\n\n\t\t\t\t// Support: IE8\n\t\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t\t}\n\n\t\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t\t}\n\n\t\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t\t// IE8 throws error here and will not see later tests\n\t\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t\t}\n\n\t\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tassert(function( el ) {\n\t\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\t\"\";\n\n\t\t\t\t// Support: Windows 8 Native Apps\n\t\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\t\tvar input = document.createElement(\"input\");\n\t\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t\t// Support: IE8\n\t\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t\t}\n\n\t\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t\t// IE8 throws error here and will not see later tests\n\t\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t\t}\n\n\t\t\t\t// Support: IE9-11+\n\t\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t\t}\n\n\t\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\t\trbuggyQSA.push(\",.*:\");\n\t\t\t});\n\t\t}\n\n\t\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\t\tdocElem.webkitMatchesSelector ||\n\t\t\tdocElem.mozMatchesSelector ||\n\t\t\tdocElem.oMatchesSelector ||\n\t\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\t\tassert(function( el ) {\n\t\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t\t// on a disconnected node (IE 9)\n\t\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t\t// This should fail with an exception\n\t\t\t\t// Gecko does not error, returns false instead\n\t\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t\t});\n\t\t}\n\n\t\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\t\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t\t/* Contains\n\t\t---------------------------------------------------------------------- */\n\t\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t\t// Element contains another\n\t\t// Purposefully self-exclusive\n\t\t// As in, an element does not contain itself\n\t\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\t\tfunction( a, b ) {\n\t\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\t\tbup = b && b.parentNode;\n\t\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\t\tadown.contains ?\n\t\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t\t));\n\t\t\t} :\n\t\t\tfunction( a, b ) {\n\t\t\t\tif ( b ) {\n\t\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t/* Sorting\n\t\t---------------------------------------------------------------------- */\n\n\t\t// Document order sorting\n\t\tsortOrder = hasCompare ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Flag for duplicate removal\n\t\t\tif ( a === b ) {\n\t\t\t\thasDuplicate = true;\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\t\tif ( compare ) {\n\t\t\t\treturn compare;\n\t\t\t}\n\n\t\t\t// Calculate position if both inputs belong to the same document\n\t\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t\t// Otherwise we know they are disconnected\n\t\t\t\t1;\n\n\t\t\t// Disconnected nodes\n\t\t\tif ( compare & 1 ||\n\t\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\t// Maintain original order\n\t\t\t\treturn sortInput ?\n\t\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t\t0;\n\t\t\t}\n\n\t\t\treturn compare & 4 ? -1 : 1;\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\t// Exit early if the nodes are identical\n\t\t\tif ( a === b ) {\n\t\t\t\thasDuplicate = true;\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tvar cur,\n\t\t\t\ti = 0,\n\t\t\t\taup = a.parentNode,\n\t\t\t\tbup = b.parentNode,\n\t\t\t\tap = [ a ],\n\t\t\t\tbp = [ b ];\n\n\t\t\t// Parentless nodes are either documents or disconnected\n\t\t\tif ( !aup || !bup ) {\n\t\t\t\treturn a === document ? -1 :\n\t\t\t\t\tb === document ? 1 :\n\t\t\t\t\taup ? -1 :\n\t\t\t\t\tbup ? 1 :\n\t\t\t\t\tsortInput ?\n\t\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t\t0;\n\n\t\t\t// If the nodes are siblings, we can do a quick check\n\t\t\t} else if ( aup === bup ) {\n\t\t\t\treturn siblingCheck( a, b );\n\t\t\t}\n\n\t\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\t\tcur = a;\n\t\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\t\tap.unshift( cur );\n\t\t\t}\n\t\t\tcur = b;\n\t\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\t\tbp.unshift( cur );\n\t\t\t}\n\n\t\t\t// Walk down the tree looking for a discrepancy\n\t\t\twhile ( ap[i] === bp[i] ) {\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\treturn i ?\n\t\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t\t// Otherwise nodes in our document sort first\n\t\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t\t0;\n\t\t};\n\n\t\treturn document;\n\t};\n\n\tSizzle.matches = function( expr, elements ) {\n\t\treturn Sizzle( expr, null, null, elements );\n\t};\n\n\tSizzle.matchesSelector = function( elem, expr ) {\n\t\t// Set document vars if needed\n\t\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\t\tsetDocument( elem );\n\t\t}\n\n\t\t// Make sure that attribute selectors are quoted\n\t\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\t\tif ( support.matchesSelector && documentIsHTML &&\n\t\t\t!compilerCache[ expr + \" \" ] &&\n\t\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\t\ttry {\n\t\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n\t};\n\n\tSizzle.contains = function( context, elem ) {\n\t\t// Set document vars if needed\n\t\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\treturn contains( context, elem );\n\t};\n\n\tSizzle.attr = function( elem, name ) {\n\t\t// Set document vars if needed\n\t\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\t\tsetDocument( elem );\n\t\t}\n\n\t\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\t\tundefined;\n\n\t\treturn val !== undefined ?\n\t\t\tval :\n\t\t\tsupport.attributes || !documentIsHTML ?\n\t\t\t\telem.getAttribute( name ) :\n\t\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t};\n\n\tSizzle.escape = function( sel ) {\n\t\treturn (sel + \"\").replace( rcssescape, fcssescape );\n\t};\n\n\tSizzle.error = function( msg ) {\n\t\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n\t};\n\n\t/**\n\t * Document sorting and removing duplicates\n\t * @param {ArrayLike} results\n\t */\n\tSizzle.uniqueSort = function( results ) {\n\t\tvar elem,\n\t\t\tduplicates = [],\n\t\t\tj = 0,\n\t\t\ti = 0;\n\n\t\t// Unless we *know* we can detect duplicates, assume their presence\n\t\thasDuplicate = !support.detectDuplicates;\n\t\tsortInput = !support.sortStable && results.slice( 0 );\n\t\tresults.sort( sortOrder );\n\n\t\tif ( hasDuplicate ) {\n\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\t\tj = duplicates.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile ( j-- ) {\n\t\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t\t}\n\t\t}\n\n\t\t// Clear input after sorting to release objects\n\t\t// See https://github.com/jquery/sizzle/pull/225\n\t\tsortInput = null;\n\n\t\treturn results;\n\t};\n\n\t/**\n\t * Utility function for retrieving the text value of an array of DOM nodes\n\t * @param {Array|Element} elem\n\t */\n\tgetText = Sizzle.getText = function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( (node = elem[i++]) ) {\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += getText( node );\n\t\t\t}\n\t\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t\t// Use textContent for elements\n\t\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\t\treturn elem.textContent;\n\t\t\t} else {\n\t\t\t\t// Traverse its children\n\t\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\t\tret += getText( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t};\n\n\tExpr = Sizzle.selectors = {\n\n\t\t// Can be adjusted by the user\n\t\tcacheLength: 50,\n\n\t\tcreatePseudo: markFunction,\n\n\t\tmatch: matchExpr,\n\n\t\tattrHandle: {},\n\n\t\tfind: {},\n\n\t\trelative: {\n\t\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\t\" \": { dir: \"parentNode\" },\n\t\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\t\"~\": { dir: \"previousSibling\" }\n\t\t},\n\n\t\tpreFilter: {\n\t\t\t\"ATTR\": function( match ) {\n\t\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t\t}\n\n\t\t\t\treturn match.slice( 0, 4 );\n\t\t\t},\n\n\t\t\t\"CHILD\": function( match ) {\n\t\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t\t1 type (only|nth|...)\n\t\t\t\t\t2 what (child|of-type)\n\t\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t\t5 sign of xn-component\n\t\t\t\t\t6 x of xn-component\n\t\t\t\t\t7 sign of y-component\n\t\t\t\t\t8 y of y-component\n\t\t\t\t*/\n\t\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t\t// nth-* requires argument\n\t\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t\t}\n\n\t\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t\t} else if ( match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\treturn match;\n\t\t\t},\n\n\t\t\t\"PSEUDO\": function( match ) {\n\t\t\t\tvar excess,\n\t\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Accept quoted arguments as-is\n\t\t\t\tif ( match[3] ) {\n\t\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t\t// excess is a negative index\n\t\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t\t}\n\n\t\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\t\treturn match.slice( 0, 3 );\n\t\t\t}\n\t\t},\n\n\t\tfilter: {\n\n\t\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\t\tfunction() { return true; } :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t\t};\n\t\t\t},\n\n\t\t\t\"CLASS\": function( className ) {\n\t\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\t\treturn pattern ||\n\t\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t\t});\n\t\t\t},\n\n\t\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\t\tif ( result == null ) {\n\t\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t\t}\n\t\t\t\t\tif ( !operator ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tresult += \"\";\n\n\t\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\t\tfalse;\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\t\tofType = what === \"of-type\";\n\n\t\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t\t} :\n\n\t\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t},\n\n\t\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t\t// pseudo-class names are case-insensitive\n\t\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\t\tvar args,\n\t\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t\t// The user may use createPseudo to indicate that\n\t\t\t\t// arguments are needed to create the filter function\n\t\t\t\t// just as Sizzle does\n\t\t\t\tif ( fn[ expando ] ) {\n\t\t\t\t\treturn fn( argument );\n\t\t\t\t}\n\n\t\t\t\t// But maintain support for old signatures\n\t\t\t\tif ( fn.length > 1 ) {\n\t\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}) :\n\t\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn fn;\n\t\t\t}\n\t\t},\n\n\t\tpseudos: {\n\t\t\t// Potentially complex pseudos\n\t\t\t\"not\": markFunction(function( selector ) {\n\t\t\t\t// Trim the selector passed to compile\n\t\t\t\t// to avoid treating leading and trailing\n\t\t\t\t// spaces as combinators\n\t\t\t\tvar input = [],\n\t\t\t\t\tresults = [],\n\t\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\t\treturn matcher[ expando ] ?\n\t\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\t\tvar elem,\n\t\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\t\tinput[0] = null;\n\t\t\t\t\t\treturn !results.pop();\n\t\t\t\t\t};\n\t\t\t}),\n\n\t\t\t\"has\": markFunction(function( selector ) {\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t\t};\n\t\t\t}),\n\n\t\t\t\"contains\": markFunction(function( text ) {\n\t\t\t\ttext = text.replace( runescape, funescape );\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t\t};\n\t\t\t}),\n\n\t\t\t// \"Whether an element is represented by a :lang() selector\n\t\t\t// is based solely on the element's language value\n\t\t\t// being equal to the identifier C,\n\t\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t\t// The identifier C does not have to be a valid language name.\"\n\t\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t\t// lang value must be a valid identifier\n\t\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t\t}\n\t\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\t\treturn function( elem ) {\n\t\t\t\t\tvar elemLang;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\t\t\t}),\n\n\t\t\t// Miscellaneous\n\t\t\t\"target\": function( elem ) {\n\t\t\t\tvar hash = window.location && window.location.hash;\n\t\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t\t},\n\n\t\t\t\"root\": function( elem ) {\n\t\t\t\treturn elem === docElem;\n\t\t\t},\n\n\t\t\t\"focus\": function( elem ) {\n\t\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t\t},\n\n\t\t\t// Boolean properties\n\t\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\t\"checked\": function( elem ) {\n\t\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t\t},\n\n\t\t\t\"selected\": function( elem ) {\n\t\t\t\t// Accessing this property makes selected-by-default\n\t\t\t\t// options in Safari work properly\n\t\t\t\tif ( elem.parentNode ) {\n\t\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t\t}\n\n\t\t\t\treturn elem.selected === true;\n\t\t\t},\n\n\t\t\t// Contents\n\t\t\t\"empty\": function( elem ) {\n\t\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t\"parent\": function( elem ) {\n\t\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t\t},\n\n\t\t\t// Element/input types\n\t\t\t\"header\": function( elem ) {\n\t\t\t\treturn rheader.test( elem.nodeName );\n\t\t\t},\n\n\t\t\t\"input\": function( elem ) {\n\t\t\t\treturn rinputs.test( elem.nodeName );\n\t\t\t},\n\n\t\t\t\"button\": function( elem ) {\n\t\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t\t},\n\n\t\t\t\"text\": function( elem ) {\n\t\t\t\tvar attr;\n\t\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t\t// Support: IE<8\n\t\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t\t},\n\n\t\t\t// Position-in-collection\n\t\t\t\"first\": createPositionalPseudo(function() {\n\t\t\t\treturn [ 0 ];\n\t\t\t}),\n\n\t\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\t\treturn [ length - 1 ];\n\t\t\t}),\n\n\t\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t\t}),\n\n\t\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\t\tvar i = 0;\n\t\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\t\tmatchIndexes.push( i );\n\t\t\t\t}\n\t\t\t\treturn matchIndexes;\n\t\t\t}),\n\n\t\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\t\tvar i = 1;\n\t\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\t\tmatchIndexes.push( i );\n\t\t\t\t}\n\t\t\t\treturn matchIndexes;\n\t\t\t}),\n\n\t\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\t\tmatchIndexes.push( i );\n\t\t\t\t}\n\t\t\t\treturn matchIndexes;\n\t\t\t}),\n\n\t\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\t\tmatchIndexes.push( i );\n\t\t\t\t}\n\t\t\t\treturn matchIndexes;\n\t\t\t})\n\t\t}\n\t};\n\n\tExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n\t// Add button/input type pseudos\n\tfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\t\tExpr.pseudos[ i ] = createInputPseudo( i );\n\t}\n\tfor ( i in { submit: true, reset: true } ) {\n\t\tExpr.pseudos[ i ] = createButtonPseudo( i );\n\t}\n\n\t// Easy API for creating new setFilters\n\tfunction setFilters() {}\n\tsetFilters.prototype = Expr.filters = Expr.pseudos;\n\tExpr.setFilters = new setFilters();\n\n\ttokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\t\tvar matched, match, tokens, type,\n\t\t\tsoFar, groups, preFilters,\n\t\t\tcached = tokenCache[ selector + \" \" ];\n\n\t\tif ( cached ) {\n\t\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t\t}\n\n\t\tsoFar = selector;\n\t\tgroups = [];\n\t\tpreFilters = Expr.preFilter;\n\n\t\twhile ( soFar ) {\n\n\t\t\t// Comma and first run\n\t\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\t\tif ( match ) {\n\t\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t\t}\n\t\t\t\tgroups.push( (tokens = []) );\n\t\t\t}\n\n\t\t\tmatched = false;\n\n\t\t\t// Combinators\n\t\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\t// Cast descendant combinators to space\n\t\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\n\t\t\t// Filters\n\t\t\tfor ( type in Expr.filter ) {\n\t\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\t\tmatched = match.shift();\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\tvalue: matched,\n\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\tmatches: match\n\t\t\t\t\t});\n\t\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !matched ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Return the length of the invalid excess\n\t\t// if we're just parsing\n\t\t// Otherwise, throw an error or return tokens\n\t\treturn parseOnly ?\n\t\t\tsoFar.length :\n\t\t\tsoFar ?\n\t\t\t\tSizzle.error( selector ) :\n\t\t\t\t// Cache the tokens\n\t\t\t\ttokenCache( selector, groups ).slice( 0 );\n\t};\n\n\tfunction toSelector( tokens ) {\n\t\tvar i = 0,\n\t\t\tlen = tokens.length,\n\t\t\tselector = \"\";\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tselector += tokens[i].value;\n\t\t}\n\t\treturn selector;\n\t}\n\n\tfunction addCombinator( matcher, combinator, base ) {\n\t\tvar dir = combinator.dir,\n\t\t\tskip = combinator.next,\n\t\t\tkey = skip || dir,\n\t\t\tcheckNonElements = base && key === \"parentNode\",\n\t\t\tdoneName = done++;\n\n\t\treturn combinator.first ?\n\t\t\t// Check against closest ancestor/preceding element\n\t\t\tfunction( elem, context, xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} :\n\n\t\t\t// Check against all ancestor/preceding elements\n\t\t\tfunction( elem, context, xml ) {\n\t\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\t\tif ( xml ) {\n\t\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\t}\n\n\tfunction elementMatcher( matchers ) {\n\t\treturn matchers.length > 1 ?\n\t\t\tfunction( elem, context, xml ) {\n\t\t\t\tvar i = matchers.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} :\n\t\t\tmatchers[0];\n\t}\n\n\tfunction multipleContexts( selector, contexts, results ) {\n\t\tvar i = 0,\n\t\t\tlen = contexts.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tSizzle( selector, contexts[i], results );\n\t\t}\n\t\treturn results;\n\t}\n\n\tfunction condense( unmatched, map, filter, context, xml ) {\n\t\tvar elem,\n\t\t\tnewUnmatched = [],\n\t\t\ti = 0,\n\t\t\tlen = unmatched.length,\n\t\t\tmapped = map != null;\n\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\t\tif ( mapped ) {\n\t\t\t\t\t\tmap.push( i );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn newUnmatched;\n\t}\n\n\tfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\t\tif ( postFilter && !postFilter[ expando ] ) {\n\t\t\tpostFilter = setMatcher( postFilter );\n\t\t}\n\t\tif ( postFinder && !postFinder[ expando ] ) {\n\t\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t\t}\n\t\treturn markFunction(function( seed, results, context, xml ) {\n\t\t\tvar temp, i, elem,\n\t\t\t\tpreMap = [],\n\t\t\t\tpostMap = [],\n\t\t\t\tpreexisting = results.length,\n\n\t\t\t\t// Get initial elements from seed or context\n\t\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\t\telems,\n\n\t\t\t\tmatcherOut = matcher ?\n\t\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t\t[] :\n\n\t\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\t\tresults :\n\t\t\t\t\tmatcherIn;\n\n\t\t\t// Find primary matches\n\t\t\tif ( matcher ) {\n\t\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t\t}\n\n\t\t\t// Apply postFilter\n\t\t\tif ( postFilter ) {\n\t\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\t\ti = temp.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( seed ) {\n\t\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\t\ttemp = [];\n\t\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Add elements to results, through postFinder if defined\n\t\t\t} else {\n\t\t\t\tmatcherOut = condense(\n\t\t\t\t\tmatcherOut === results ?\n\t\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\t\tmatcherOut\n\t\t\t\t);\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t\t} else {\n\t\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction matcherFromTokens( tokens ) {\n\t\tvar checkContext, matcher, j,\n\t\t\tlen = tokens.length,\n\t\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\t\ti = leadingRelative ? 1 : 0,\n\n\t\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\t\treturn elem === checkContext;\n\t\t\t}, implicitRelative, true ),\n\t\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t\t}, implicitRelative, true ),\n\t\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\t\tcheckContext = null;\n\t\t\t\treturn ret;\n\t\t\t} ];\n\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t\t} else {\n\t\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t\t// Return special upon seeing a positional matcher\n\t\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\t\tj = ++i;\n\t\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn setMatcher(\n\t\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\t\tmatcher,\n\t\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmatchers.push( matcher );\n\t\t\t}\n\t\t}\n\n\t\treturn elementMatcher( matchers );\n\t}\n\n\tfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\t\tvar bySet = setMatchers.length > 0,\n\t\t\tbyElement = elementMatchers.length > 0,\n\t\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\t\tvar elem, j, matcher,\n\t\t\t\t\tmatchedCount = 0,\n\t\t\t\t\ti = \"0\",\n\t\t\t\t\tunmatched = seed && [],\n\t\t\t\t\tsetMatched = [],\n\t\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\t\tlen = elems.length;\n\n\t\t\t\tif ( outermost ) {\n\t\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t\t}\n\n\t\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t\t// Support: IE<9, Safari\n\t\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\t\tj = 0;\n\t\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t\t}\n\t\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\t\tif ( bySet ) {\n\t\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t\t// makes the latter nonnegative.\n\t\t\t\tmatchedCount += i;\n\n\t\t\t\t// Apply set filters to unmatched elements\n\t\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t\t// no element matchers and no seed.\n\t\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t\t// numerically zero.\n\t\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add matches to results\n\t\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override manipulation of globals by nested matchers\n\t\t\t\tif ( outermost ) {\n\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\toutermostContext = contextBackup;\n\t\t\t\t}\n\n\t\t\t\treturn unmatched;\n\t\t\t};\n\n\t\treturn bySet ?\n\t\t\tmarkFunction( superMatcher ) :\n\t\t\tsuperMatcher;\n\t}\n\n\tcompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\t\tvar i,\n\t\t\tsetMatchers = [],\n\t\t\telementMatchers = [],\n\t\t\tcached = compilerCache[ selector + \" \" ];\n\n\t\tif ( !cached ) {\n\t\t\t// Generate a function of recursive functions that can be used to check each element\n\t\t\tif ( !match ) {\n\t\t\t\tmatch = tokenize( selector );\n\t\t\t}\n\t\t\ti = match.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\t\tif ( cached[ expando ] ) {\n\t\t\t\t\tsetMatchers.push( cached );\n\t\t\t\t} else {\n\t\t\t\t\telementMatchers.push( cached );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Cache the compiled function\n\t\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t\t// Save selector and tokenization\n\t\t\tcached.selector = selector;\n\t\t}\n\t\treturn cached;\n\t};\n\n\t/**\n\t * A low-level selection function that works with Sizzle's compiled\n\t * selector functions\n\t * @param {String|Function} selector A selector or a pre-compiled\n\t * selector function built with Sizzle.compile\n\t * @param {Element} context\n\t * @param {Array} [results]\n\t * @param {Array} [seed] A set of elements to match against\n\t */\n\tselect = Sizzle.select = function( selector, context, results, seed ) {\n\t\tvar i, tokens, token, type, find,\n\t\t\tcompiled = typeof selector === \"function\" && selector,\n\t\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\t\tresults = results || [];\n\n\t\t// Try to minimize operations if there is only one selector in the list and no seed\n\t\t// (the latter of which guarantees us context)\n\t\tif ( match.length === 1 ) {\n\n\t\t\t// Reduce context if the leading compound selector is an ID\n\t\t\ttokens = match[0] = match[0].slice( 0 );\n\t\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t\t} else if ( compiled ) {\n\t\t\t\t\tcontext = context.parentNode;\n\t\t\t\t}\n\n\t\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t\t}\n\n\t\t\t// Fetch a seed set for right-to-left matching\n\t\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\ttoken = tokens[i];\n\n\t\t\t\t// Abort if we hit a combinator\n\t\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\t\tif ( (seed = find(\n\t\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t\t)) ) {\n\n\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Compile and execute a filtering function if one is not provided\n\t\t// Provide `match` to avoid retokenization if we modified the selector above\n\t\t( compiled || compile( selector, match ) )(\n\t\t\tseed,\n\t\t\tcontext,\n\t\t\t!documentIsHTML,\n\t\t\tresults,\n\t\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t\t);\n\t\treturn results;\n\t};\n\n\t// One-time assignments\n\n\t// Sort stability\n\tsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n\t// Support: Chrome 14-35+\n\t// Always assume duplicates if they aren't passed to the comparison function\n\tsupport.detectDuplicates = !!hasDuplicate;\n\n\t// Initialize against the default document\n\tsetDocument();\n\n\t// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n\t// Detached nodes confoundingly follow *each other*\n\tsupport.sortDetached = assert(function( el ) {\n\t\t// Should return 1, but returns 4 (following)\n\t\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n\t});\n\n\t// Support: IE<8\n\t// Prevent attribute/property \"interpolation\"\n\t// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\tif ( !assert(function( el ) {\n\t\tel.innerHTML = \"\";\n\t\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n\t}) ) {\n\t\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t\t}\n\t\t});\n\t}\n\n\t// Support: IE<9\n\t// Use defaultValue in place of getAttribute(\"value\")\n\tif ( !support.attributes || !assert(function( el ) {\n\t\tel.innerHTML = \"\";\n\t\tel.firstChild.setAttribute( \"value\", \"\" );\n\t\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n\t}) ) {\n\t\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\t\treturn elem.defaultValue;\n\t\t\t}\n\t\t});\n\t}\n\n\t// Support: IE<9\n\t// Use getAttributeNode to fetch booleans when getAttribute lies\n\tif ( !assert(function( el ) {\n\t\treturn el.getAttribute(\"disabled\") == null;\n\t}) ) {\n\t\taddHandle( booleans, function( elem, name, isXML ) {\n\t\t\tvar val;\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Sizzle;\n\n\t})( window );\n\n\n\n\tjQuery.find = Sizzle;\n\tjQuery.expr = Sizzle.selectors;\n\n\t// Deprecated\n\tjQuery.expr[ \":\" ] = jQuery.expr.pseudos;\n\tjQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n\tjQuery.text = Sizzle.getText;\n\tjQuery.isXMLDoc = Sizzle.isXML;\n\tjQuery.contains = Sizzle.contains;\n\tjQuery.escapeSelector = Sizzle.escape;\n\n\n\n\n\tvar dir = function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t};\n\n\n\tvar siblings = function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t};\n\n\n\tvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\n\tfunction nodeName( elem, name ) {\n\n\t return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n\t};\n\tvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n\t// Implement the identical functionality for filter and not\n\tfunction winnow( elements, qualifier, not ) {\n\t\tif ( isFunction( qualifier ) ) {\n\t\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t\t} );\n\t\t}\n\n\t\t// Single element\n\t\tif ( qualifier.nodeType ) {\n\t\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\t\treturn ( elem === qualifier ) !== not;\n\t\t\t} );\n\t\t}\n\n\t\t// Arraylike of elements (jQuery, arguments, Array)\n\t\tif ( typeof qualifier !== \"string\" ) {\n\t\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t\t} );\n\t\t}\n\n\t\t// Filtered directly for both simple and complex selectors\n\t\treturn jQuery.filter( qualifier, elements, not );\n\t}\n\n\tjQuery.filter = function( expr, elems, not ) {\n\t\tvar elem = elems[ 0 ];\n\n\t\tif ( not ) {\n\t\t\texpr = \":not(\" + expr + \")\";\n\t\t}\n\n\t\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t\t}\n\n\t\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n\t};\n\n\tjQuery.fn.extend( {\n\t\tfind: function( selector ) {\n\t\t\tvar i, ret,\n\t\t\t\tlen = this.length,\n\t\t\t\tself = this;\n\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\n\t\t\tret = this.pushStack( [] );\n\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t\t}\n\n\t\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t\t},\n\t\tfilter: function( selector ) {\n\t\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t\t},\n\t\tnot: function( selector ) {\n\t\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t\t},\n\t\tis: function( selector ) {\n\t\t\treturn !!winnow(\n\t\t\t\tthis,\n\n\t\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\t\tjQuery( selector ) :\n\t\t\t\t\tselector || [],\n\t\t\t\tfalse\n\t\t\t).length;\n\t\t}\n\t} );\n\n\n\t// Initialize a jQuery object\n\n\n\t// A central reference to the root jQuery(document)\n\tvar rootjQuery,\n\n\t\t// A simple way to check for HTML strings\n\t\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t\t// Strict HTML recognition (#11290: must start with <)\n\t\t// Shortcut simple #id case for speed\n\t\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\t\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\t\tvar match, elem;\n\n\t\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\t\tif ( !selector ) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// Method init() accepts an alternate rootjQuery\n\t\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\t\troot = root || rootjQuery;\n\n\t\t\t// Handle HTML strings\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t\t} else {\n\t\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t\t}\n\n\t\t\t\t// Match html or make sure no context is specified for #id\n\t\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) );\n\n\t\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\n\t\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t\t// HANDLE: $(expr, context)\n\t\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t\t} else {\n\t\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(DOMElement)\n\t\t\t} else if ( selector.nodeType ) {\n\t\t\t\tthis[ 0 ] = selector;\n\t\t\t\tthis.length = 1;\n\t\t\t\treturn this;\n\n\t\t\t// HANDLE: $(function)\n\t\t\t// Shortcut for document ready\n\t\t\t} else if ( isFunction( selector ) ) {\n\t\t\t\treturn root.ready !== undefined ?\n\t\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\t\tselector( jQuery );\n\t\t\t}\n\n\t\t\treturn jQuery.makeArray( selector, this );\n\t\t};\n\n\t// Give the init function the jQuery prototype for later instantiation\n\tinit.prototype = jQuery.fn;\n\n\t// Initialize central reference\n\trootjQuery = jQuery( document );\n\n\n\tvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t\t// Methods guaranteed to produce a unique set when starting from a unique set\n\t\tguaranteedUnique = {\n\t\t\tchildren: true,\n\t\t\tcontents: true,\n\t\t\tnext: true,\n\t\t\tprev: true\n\t\t};\n\n\tjQuery.fn.extend( {\n\t\thas: function( target ) {\n\t\t\tvar targets = jQuery( target, this ),\n\t\t\t\tl = targets.length;\n\n\t\t\treturn this.filter( function() {\n\t\t\t\tvar i = 0;\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tclosest: function( selectors, context ) {\n\t\t\tvar cur,\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length,\n\t\t\t\tmatched = [],\n\t\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t\t// Positional selectors never match, since there's no _selection_ context\n\t\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t\t},\n\n\t\t// Determine the position of an element within the set\n\t\tindex: function( elem ) {\n\n\t\t\t// No argument, return index in parent\n\t\t\tif ( !elem ) {\n\t\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t\t}\n\n\t\t\t// Index in selector\n\t\t\tif ( typeof elem === \"string\" ) {\n\t\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t\t}\n\n\t\t\t// Locate the position of the desired element\n\t\t\treturn indexOf.call( this,\n\n\t\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t\t);\n\t\t},\n\n\t\tadd: function( selector, context ) {\n\t\t\treturn this.pushStack(\n\t\t\t\tjQuery.uniqueSort(\n\t\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\n\t\taddBack: function( selector ) {\n\t\t\treturn this.add( selector == null ?\n\t\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t\t);\n\t\t}\n\t} );\n\n\tfunction sibling( cur, dir ) {\n\t\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\t\treturn cur;\n\t}\n\n\tjQuery.each( {\n\t\tparent: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t\t},\n\t\tparents: function( elem ) {\n\t\t\treturn dir( elem, \"parentNode\" );\n\t\t},\n\t\tparentsUntil: function( elem, i, until ) {\n\t\t\treturn dir( elem, \"parentNode\", until );\n\t\t},\n\t\tnext: function( elem ) {\n\t\t\treturn sibling( elem, \"nextSibling\" );\n\t\t},\n\t\tprev: function( elem ) {\n\t\t\treturn sibling( elem, \"previousSibling\" );\n\t\t},\n\t\tnextAll: function( elem ) {\n\t\t\treturn dir( elem, \"nextSibling\" );\n\t\t},\n\t\tprevAll: function( elem ) {\n\t\t\treturn dir( elem, \"previousSibling\" );\n\t\t},\n\t\tnextUntil: function( elem, i, until ) {\n\t\t\treturn dir( elem, \"nextSibling\", until );\n\t\t},\n\t\tprevUntil: function( elem, i, until ) {\n\t\t\treturn dir( elem, \"previousSibling\", until );\n\t\t},\n\t\tsiblings: function( elem ) {\n\t\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t\t},\n\t\tchildren: function( elem ) {\n\t\t\treturn siblings( elem.firstChild );\n\t\t},\n\t\tcontents: function( elem ) {\n\t if ( nodeName( elem, \"iframe\" ) ) {\n\t return elem.contentDocument;\n\t }\n\n\t // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t // Treat the template element as a regular one in browsers that\n\t // don't support it.\n\t if ( nodeName( elem, \"template\" ) ) {\n\t elem = elem.content || elem;\n\t }\n\n\t return jQuery.merge( [], elem.childNodes );\n\t\t}\n\t}, function( name, fn ) {\n\t\tjQuery.fn[ name ] = function( until, selector ) {\n\t\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\t\tselector = until;\n\t\t\t}\n\n\t\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t\t}\n\n\t\t\tif ( this.length > 1 ) {\n\n\t\t\t\t// Remove duplicates\n\t\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t\t}\n\n\t\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\t\tmatched.reverse();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.pushStack( matched );\n\t\t};\n\t} );\n\tvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n\t// Convert String-formatted options into Object-formatted ones\n\tfunction createOptions( options ) {\n\t\tvar object = {};\n\t\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\t\tobject[ flag ] = true;\n\t\t} );\n\t\treturn object;\n\t}\n\n\t/*\n\t * Create a callback list using the following parameters:\n\t *\n\t *\toptions: an optional list of space-separated options that will change how\n\t *\t\t\tthe callback list behaves or a more traditional option object\n\t *\n\t * By default a callback list will act like an event callback list and can be\n\t * \"fired\" multiple times.\n\t *\n\t * Possible options:\n\t *\n\t *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n\t *\n\t *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n\t *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n\t *\t\t\t\t\tvalues (like a Deferred)\n\t *\n\t *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n\t *\n\t *\tstopOnFalse:\tinterrupt callings when a callback returns false\n\t *\n\t */\n\tjQuery.Callbacks = function( options ) {\n\n\t\t// Convert options from String-formatted to Object-formatted if needed\n\t\t// (we check in cache first)\n\t\toptions = typeof options === \"string\" ?\n\t\t\tcreateOptions( options ) :\n\t\t\tjQuery.extend( {}, options );\n\n\t\tvar // Flag to know if list is currently firing\n\t\t\tfiring,\n\n\t\t\t// Last fire value for non-forgettable lists\n\t\t\tmemory,\n\n\t\t\t// Flag to know if list was already fired\n\t\t\tfired,\n\n\t\t\t// Flag to prevent firing\n\t\t\tlocked,\n\n\t\t\t// Actual callback list\n\t\t\tlist = [],\n\n\t\t\t// Queue of execution data for repeatable lists\n\t\t\tqueue = [],\n\n\t\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\t\tfiringIndex = -1,\n\n\t\t\t// Fire callbacks\n\t\t\tfire = function() {\n\n\t\t\t\t// Enforce single-firing\n\t\t\t\tlocked = locked || options.once;\n\n\t\t\t\t// Execute callbacks for all pending executions,\n\t\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\t\tfired = firing = true;\n\t\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\t\tmemory = queue.shift();\n\t\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Forget the data if we're done with it\n\t\t\t\tif ( !options.memory ) {\n\t\t\t\t\tmemory = false;\n\t\t\t\t}\n\n\t\t\t\tfiring = false;\n\n\t\t\t\t// Clean up if we're done firing for good\n\t\t\t\tif ( locked ) {\n\n\t\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\t\tif ( memory ) {\n\t\t\t\t\t\tlist = [];\n\n\t\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlist = \"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Actual Callbacks object\n\t\t\tself = {\n\n\t\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\t\tadd: function() {\n\t\t\t\t\tif ( list ) {\n\n\t\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\t\tfire();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Remove a callback from the list\n\t\t\t\tremove: function() {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Check if a given callback is in the list.\n\t\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\t\thas: function( fn ) {\n\t\t\t\t\treturn fn ?\n\t\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\t\tlist.length > 0;\n\t\t\t\t},\n\n\t\t\t\t// Remove all callbacks from the list\n\t\t\t\tempty: function() {\n\t\t\t\t\tif ( list ) {\n\t\t\t\t\t\tlist = [];\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Disable .fire and .add\n\t\t\t\t// Abort any current/pending executions\n\t\t\t\t// Clear all callbacks and values\n\t\t\t\tdisable: function() {\n\t\t\t\t\tlocked = queue = [];\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tdisabled: function() {\n\t\t\t\t\treturn !list;\n\t\t\t\t},\n\n\t\t\t\t// Disable .fire\n\t\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t\t// Abort any pending executions\n\t\t\t\tlock: function() {\n\t\t\t\t\tlocked = queue = [];\n\t\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tlocked: function() {\n\t\t\t\t\treturn !!locked;\n\t\t\t\t},\n\n\t\t\t\t// Call all callbacks with the given context and arguments\n\t\t\t\tfireWith: function( context, args ) {\n\t\t\t\t\tif ( !locked ) {\n\t\t\t\t\t\targs = args || [];\n\t\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\t\tqueue.push( args );\n\t\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\t\tfire();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Call all the callbacks with the given arguments\n\t\t\t\tfire: function() {\n\t\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// To know if the callbacks have already been called at least once\n\t\t\t\tfired: function() {\n\t\t\t\t\treturn !!fired;\n\t\t\t\t}\n\t\t\t};\n\n\t\treturn self;\n\t};\n\n\n\tfunction Identity( v ) {\n\t\treturn v;\n\t}\n\tfunction Thrower( ex ) {\n\t\tthrow ex;\n\t}\n\n\tfunction adoptValue( value, resolve, reject, noValue ) {\n\t\tvar method;\n\n\t\ttry {\n\n\t\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t\t// Other thenables\n\t\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\t\tmethod.call( value, resolve, reject );\n\n\t\t\t// Other non-thenables\n\t\t\t} else {\n\n\t\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t\t}\n\n\t\t// For Promises/A+, convert exceptions into rejections\n\t\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t\t// Deferred#then to conditionally suppress rejection.\n\t\t} catch ( value ) {\n\n\t\t\t// Support: Android 4.0 only\n\t\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\t\treject.apply( undefined, [ value ] );\n\t\t}\n\t}\n\n\tjQuery.extend( {\n\n\t\tDeferred: function( func ) {\n\t\t\tvar tuples = [\n\n\t\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t\t],\n\t\t\t\tstate = \"pending\",\n\t\t\t\tpromise = {\n\t\t\t\t\tstate: function() {\n\t\t\t\t\t\treturn state;\n\t\t\t\t\t},\n\t\t\t\t\talways: function() {\n\t\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t},\n\t\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t\t},\n\n\t\t\t\t\t// Keep pipe for back-compat\n\t\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tfns = null;\n\t\t\t\t\t\t} ).promise();\n\t\t\t\t\t},\n\t\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ).promise();\n\t\t\t\t\t},\n\n\t\t\t\t\t// Get a promise for this deferred\n\t\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tdeferred = {};\n\n\t\t\t// Add list-specific methods\n\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\tvar list = tuple[ 2 ],\n\t\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t\t// promise.progress = list.add\n\t\t\t\t// promise.done = list.add\n\t\t\t\t// promise.fail = list.add\n\t\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t\t// Handle state\n\t\t\t\tif ( stateString ) {\n\t\t\t\t\tlist.add(\n\t\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// progress_handlers.fire\n\t\t\t\t// fulfilled_handlers.fire\n\t\t\t\t// rejected_handlers.fire\n\t\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t};\n\n\t\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t\t} );\n\n\t\t\t// Make the deferred a promise\n\t\t\tpromise.promise( deferred );\n\n\t\t\t// Call given func if any\n\t\t\tif ( func ) {\n\t\t\t\tfunc.call( deferred, deferred );\n\t\t\t}\n\n\t\t\t// All done!\n\t\t\treturn deferred;\n\t\t},\n\n\t\t// Deferred helper\n\t\twhen: function( singleValue ) {\n\t\t\tvar\n\n\t\t\t\t// count of uncompleted subordinates\n\t\t\t\tremaining = arguments.length,\n\n\t\t\t\t// count of unprocessed arguments\n\t\t\t\ti = remaining,\n\n\t\t\t\t// subordinate fulfillment data\n\t\t\t\tresolveContexts = Array( i ),\n\t\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t\t// the master Deferred\n\t\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t\t// subordinate callback factory\n\t\t\t\tupdateFunc = function( i ) {\n\t\t\t\t\treturn function( value ) {\n\t\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\t\tif ( remaining <= 1 ) {\n\t\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t\t!remaining );\n\n\t\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\t\treturn master.then();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\t\twhile ( i-- ) {\n\t\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t\t}\n\n\t\t\treturn master.promise();\n\t\t}\n\t} );\n\n\n\t// These usually indicate a programmer mistake during development,\n\t// warn about them ASAP rather than swallowing them by default.\n\tvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n\tjQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t\t// Support: IE 8 - 9 only\n\t\t// Console exists when dev tools are open, which can happen at any time\n\t\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t\t}\n\t};\n\n\n\n\n\tjQuery.readyException = function( error ) {\n\t\twindow.setTimeout( function() {\n\t\t\tthrow error;\n\t\t} );\n\t};\n\n\n\n\n\t// The deferred used on DOM ready\n\tvar readyList = jQuery.Deferred();\n\n\tjQuery.fn.ready = function( fn ) {\n\n\t\treadyList\n\t\t\t.then( fn )\n\n\t\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t\t// happens at the time of error handling instead of callback\n\t\t\t// registration.\n\t\t\t.catch( function( error ) {\n\t\t\t\tjQuery.readyException( error );\n\t\t\t} );\n\n\t\treturn this;\n\t};\n\n\tjQuery.extend( {\n\n\t\t// Is the DOM ready to be used? Set to true once it occurs.\n\t\tisReady: false,\n\n\t\t// A counter to track how many items to wait for before\n\t\t// the ready event fires. See #6781\n\t\treadyWait: 1,\n\n\t\t// Handle when the DOM is ready\n\t\tready: function( wait ) {\n\n\t\t\t// Abort if there are pending holds or we're already ready\n\t\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Remember that the DOM is ready\n\t\t\tjQuery.isReady = true;\n\n\t\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there are functions bound, to execute\n\t\t\treadyList.resolveWith( document, [ jQuery ] );\n\t\t}\n\t} );\n\n\tjQuery.ready.then = readyList.then;\n\n\t// The ready event handler and self cleanup method\n\tfunction completed() {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\t\twindow.removeEventListener( \"load\", completed );\n\t\tjQuery.ready();\n\t}\n\n\t// Catch cases where $(document).ready() is called\n\t// after the browser event has already occurred.\n\t// Support: IE <=9 - 10 only\n\t// Older IE sometimes signals \"interactive\" too soon\n\tif ( document.readyState === \"complete\" ||\n\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\twindow.setTimeout( jQuery.ready );\n\n\t} else {\n\n\t\t// Use the handy event callback\n\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t// A fallback to window.onload, that will always work\n\t\twindow.addEventListener( \"load\", completed );\n\t}\n\n\n\n\n\t// Multifunctional method to get and set values of a collection\n\t// The value/s can optionally be executed if it's a function\n\tvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\t\tvar i = 0,\n\t\t\tlen = elems.length,\n\t\t\tbulk = key == null;\n\n\t\t// Sets many values\n\t\tif ( toType( key ) === \"object\" ) {\n\t\t\tchainable = true;\n\t\t\tfor ( i in key ) {\n\t\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t\t}\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\tchainable = true;\n\n\t\t\tif ( !isFunction( value ) ) {\n\t\t\t\traw = true;\n\t\t\t}\n\n\t\t\tif ( bulk ) {\n\n\t\t\t\t// Bulk operations run against the entire set\n\t\t\t\tif ( raw ) {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\n\t\t\t\t// ...except when executing function values\n\t\t\t\t} else {\n\t\t\t\t\tbulk = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tfn(\n\t\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( chainable ) {\n\t\t\treturn elems;\n\t\t}\n\n\t\t// Gets\n\t\tif ( bulk ) {\n\t\t\treturn fn.call( elems );\n\t\t}\n\n\t\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n\t};\n\n\n\t// Matches dashed string for camelizing\n\tvar rmsPrefix = /^-ms-/,\n\t\trdashAlpha = /-([a-z])/g;\n\n\t// Used by camelCase as callback to replace()\n\tfunction fcamelCase( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t}\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE <=9 - 11, Edge 12 - 15\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tfunction camelCase( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t}\n\tvar acceptData = function( owner ) {\n\n\t\t// Accepts only:\n\t\t// - Node\n\t\t// - Node.ELEMENT_NODE\n\t\t// - Node.DOCUMENT_NODE\n\t\t// - Object\n\t\t// - Any\n\t\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n\t};\n\n\n\n\n\tfunction Data() {\n\t\tthis.expando = jQuery.expando + Data.uid++;\n\t}\n\n\tData.uid = 1;\n\n\tData.prototype = {\n\n\t\tcache: function( owner ) {\n\n\t\t\t// Check if the owner object already has a cache\n\t\t\tvar value = owner[ this.expando ];\n\n\t\t\t// If not, create one\n\t\t\tif ( !value ) {\n\t\t\t\tvalue = {};\n\n\t\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t\t// but we should not, see #8335.\n\t\t\t\t// Always return an empty object.\n\t\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t\t// use plain assignment\n\t\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t\t// deleted when data is removed\n\t\t\t\t\t} else {\n\t\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tset: function( owner, data, value ) {\n\t\t\tvar prop,\n\t\t\t\tcache = this.cache( owner );\n\n\t\t\t// Handle: [ owner, key, value ] args\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\tif ( typeof data === \"string\" ) {\n\t\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t\t// Handle: [ owner, { properties } ] args\n\t\t\t} else {\n\n\t\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cache;\n\t\t},\n\t\tget: function( owner, key ) {\n\t\t\treturn key === undefined ?\n\t\t\t\tthis.cache( owner ) :\n\n\t\t\t\t// Always use camelCase key (gh-2257)\n\t\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t\t},\n\t\taccess: function( owner, key, value ) {\n\n\t\t\t// In cases where either:\n\t\t\t//\n\t\t\t// 1. No key was specified\n\t\t\t// 2. A string key was specified, but no value provided\n\t\t\t//\n\t\t\t// Take the \"read\" path and allow the get method to determine\n\t\t\t// which value to return, respectively either:\n\t\t\t//\n\t\t\t// 1. The entire cache object\n\t\t\t// 2. The data stored at the key\n\t\t\t//\n\t\t\tif ( key === undefined ||\n\t\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\t\treturn this.get( owner, key );\n\t\t\t}\n\n\t\t\t// When the key is not a string, or both a key and value\n\t\t\t// are specified, set or extend (existing objects) with either:\n\t\t\t//\n\t\t\t// 1. An object of properties\n\t\t\t// 2. A key and value\n\t\t\t//\n\t\t\tthis.set( owner, key, value );\n\n\t\t\t// Since the \"set\" path can have two possible entry points\n\t\t\t// return the expected data based on which path was taken[*]\n\t\t\treturn value !== undefined ? value : key;\n\t\t},\n\t\tremove: function( owner, key ) {\n\t\t\tvar i,\n\t\t\t\tcache = owner[ this.expando ];\n\n\t\t\tif ( cache === undefined ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( key !== undefined ) {\n\n\t\t\t\t// Support array or space separated string of keys\n\t\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t\t// If key is an array of keys...\n\t\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\t\tkey = key.map( camelCase );\n\t\t\t\t} else {\n\t\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tkey = key in cache ?\n\t\t\t\t\t\t[ key ] :\n\t\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t\t}\n\n\t\t\t\ti = key.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the expando if there's no more data\n\t\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t\t// Support: Chrome <=35 - 45\n\t\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\tdelete owner[ this.expando ];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thasData: function( owner ) {\n\t\t\tvar cache = owner[ this.expando ];\n\t\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t\t}\n\t};\n\tvar dataPriv = new Data();\n\n\tvar dataUser = new Data();\n\n\n\n\t//\tImplementation Summary\n\t//\n\t//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n\t//\t2. Improve the module's maintainability by reducing the storage\n\t//\t\tpaths to a single mechanism.\n\t//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n\t//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n\t//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n\t//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n\tvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\t\trmultiDash = /[A-Z]/g;\n\n\tfunction getData( data ) {\n\t\tif ( data === \"true\" ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( data === \"false\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( data === \"null\" ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Only convert to a number if it doesn't change the string\n\t\tif ( data === +data + \"\" ) {\n\t\t\treturn +data;\n\t\t}\n\n\t\tif ( rbrace.test( data ) ) {\n\t\t\treturn JSON.parse( data );\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tfunction dataAttr( elem, key, data ) {\n\t\tvar name;\n\n\t\t// If nothing was found internally, try to fetch any\n\t\t// data from the HTML5 data-* attribute\n\t\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\t\tdata = elem.getAttribute( name );\n\n\t\t\tif ( typeof data === \"string\" ) {\n\t\t\t\ttry {\n\t\t\t\t\tdata = getData( data );\n\t\t\t\t} catch ( e ) {}\n\n\t\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\t\tdataUser.set( elem, key, data );\n\t\t\t} else {\n\t\t\t\tdata = undefined;\n\t\t\t}\n\t\t}\n\t\treturn data;\n\t}\n\n\tjQuery.extend( {\n\t\thasData: function( elem ) {\n\t\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t\t},\n\n\t\tdata: function( elem, name, data ) {\n\t\t\treturn dataUser.access( elem, name, data );\n\t\t},\n\n\t\tremoveData: function( elem, name ) {\n\t\t\tdataUser.remove( elem, name );\n\t\t},\n\n\t\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t\t// with direct calls to dataPriv methods, these can be deprecated.\n\t\t_data: function( elem, name, data ) {\n\t\t\treturn dataPriv.access( elem, name, data );\n\t\t},\n\n\t\t_removeData: function( elem, name ) {\n\t\t\tdataPriv.remove( elem, name );\n\t\t}\n\t} );\n\n\tjQuery.fn.extend( {\n\t\tdata: function( key, value ) {\n\t\t\tvar i, name, data,\n\t\t\t\telem = this[ 0 ],\n\t\t\t\tattrs = elem && elem.attributes;\n\n\t\t\t// Gets all values\n\t\t\tif ( key === undefined ) {\n\t\t\t\tif ( this.length ) {\n\t\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\t\ti = attrs.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\t// Sets multiple values\n\t\t\tif ( typeof key === \"object\" ) {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tdataUser.set( this, key );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn access( this, function( value ) {\n\t\t\t\tvar data;\n\n\t\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t}\n\n\t\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Set the data...\n\t\t\t\tthis.each( function() {\n\n\t\t\t\t\t// We always store the camelCased key\n\t\t\t\t\tdataUser.set( this, key, value );\n\t\t\t\t} );\n\t\t\t}, null, value, arguments.length > 1, null, true );\n\t\t},\n\n\t\tremoveData: function( key ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.remove( this, key );\n\t\t\t} );\n\t\t}\n\t} );\n\n\n\tjQuery.extend( {\n\t\tqueue: function( elem, type, data ) {\n\t\t\tvar queue;\n\n\t\t\tif ( elem ) {\n\t\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tqueue.push( data );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn queue || [];\n\t\t\t}\n\t\t},\n\n\t\tdequeue: function( elem, type ) {\n\t\t\ttype = type || \"fx\";\n\n\t\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\t\tstartLength = queue.length,\n\t\t\t\tfn = queue.shift(),\n\t\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\t\tnext = function() {\n\t\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t\t};\n\n\t\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\t\tif ( fn === \"inprogress\" ) {\n\t\t\t\tfn = queue.shift();\n\t\t\t\tstartLength--;\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\n\t\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t\t// automatically dequeued\n\t\t\t\tif ( type === \"fx\" ) {\n\t\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t\t}\n\n\t\t\t\t// Clear up the last queue stop function\n\t\t\t\tdelete hooks.stop;\n\t\t\t\tfn.call( elem, next, hooks );\n\t\t\t}\n\n\t\t\tif ( !startLength && hooks ) {\n\t\t\t\thooks.empty.fire();\n\t\t\t}\n\t\t},\n\n\t\t// Not public - generate a queueHooks object, or return the current one\n\t\t_queueHooks: function( elem, type ) {\n\t\t\tvar key = type + \"queueHooks\";\n\t\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t\t} )\n\t\t\t} );\n\t\t}\n\t} );\n\n\tjQuery.fn.extend( {\n\t\tqueue: function( type, data ) {\n\t\t\tvar setter = 2;\n\n\t\t\tif ( typeof type !== \"string\" ) {\n\t\t\t\tdata = type;\n\t\t\t\ttype = \"fx\";\n\t\t\t\tsetter--;\n\t\t\t}\n\n\t\t\tif ( arguments.length < setter ) {\n\t\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t\t}\n\n\t\t\treturn data === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\t\tdequeue: function( type ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t} );\n\t\t},\n\t\tclearQueue: function( type ) {\n\t\t\treturn this.queue( type || \"fx\", [] );\n\t\t},\n\n\t\t// Get a promise resolved when queues of a certain type\n\t\t// are emptied (fx is the type by default)\n\t\tpromise: function( type, obj ) {\n\t\t\tvar tmp,\n\t\t\t\tcount = 1,\n\t\t\t\tdefer = jQuery.Deferred(),\n\t\t\t\telements = this,\n\t\t\t\ti = this.length,\n\t\t\t\tresolve = function() {\n\t\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\tif ( typeof type !== \"string\" ) {\n\t\t\t\tobj = type;\n\t\t\t\ttype = undefined;\n\t\t\t}\n\t\t\ttype = type || \"fx\";\n\n\t\t\twhile ( i-- ) {\n\t\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\t\tcount++;\n\t\t\t\t\ttmp.empty.add( resolve );\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolve();\n\t\t\treturn defer.promise( obj );\n\t\t}\n\t} );\n\tvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\n\tvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\n\tvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\n\tvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t\t// in that case, element will be second argument\n\t\t\telem = el || elem;\n\n\t\t\t// Inline style trumps all\n\t\t\treturn elem.style.display === \"none\" ||\n\t\t\t\telem.style.display === \"\" &&\n\n\t\t\t\t// Otherwise, check computed style\n\t\t\t\t// Support: Firefox <=43 - 45\n\t\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t\t// in the document.\n\t\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t\t};\n\n\tvar swap = function( elem, options, callback, args ) {\n\t\tvar ret, name,\n\t\t\told = {};\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor ( name in options ) {\n\t\t\told[ name ] = elem.style[ name ];\n\t\t\telem.style[ name ] = options[ name ];\n\t\t}\n\n\t\tret = callback.apply( elem, args || [] );\n\n\t\t// Revert the old values\n\t\tfor ( name in options ) {\n\t\t\telem.style[ name ] = old[ name ];\n\t\t}\n\n\t\treturn ret;\n\t};\n\n\n\n\n\tfunction adjustCSS( elem, prop, valueParts, tween ) {\n\t\tvar adjusted, scale,\n\t\t\tmaxIterations = 20,\n\t\t\tcurrentValue = tween ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn tween.cur();\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t\t},\n\t\t\tinitial = currentValue(),\n\t\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\t\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t\t// Support: Firefox <=54\n\t\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\t\tinitial = initial / 2;\n\n\t\t\t// Trust units reported by jQuery.css\n\t\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\tinitialInUnit = +initial || 1;\n\n\t\t\twhile ( maxIterations-- ) {\n\n\t\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\t\tmaxIterations = 0;\n\t\t\t\t}\n\t\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t\t}\n\n\t\t\tinitialInUnit = initialInUnit * 2;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t\t// Make sure we update the tween properties later on\n\t\t\tvalueParts = valueParts || [];\n\t\t}\n\n\t\tif ( valueParts ) {\n\t\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t\t// Apply relative offset (+=/-=) if specified\n\t\t\tadjusted = valueParts[ 1 ] ?\n\t\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t\t+valueParts[ 2 ];\n\t\t\tif ( tween ) {\n\t\t\t\ttween.unit = unit;\n\t\t\t\ttween.start = initialInUnit;\n\t\t\t\ttween.end = adjusted;\n\t\t\t}\n\t\t}\n\t\treturn adjusted;\n\t}\n\n\n\tvar defaultDisplayMap = {};\n\n\tfunction getDefaultDisplay( elem ) {\n\t\tvar temp,\n\t\t\tdoc = elem.ownerDocument,\n\t\t\tnodeName = elem.nodeName,\n\t\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\t\tif ( display ) {\n\t\t\treturn display;\n\t\t}\n\n\t\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\t\tdisplay = jQuery.css( temp, \"display\" );\n\n\t\ttemp.parentNode.removeChild( temp );\n\n\t\tif ( display === \"none\" ) {\n\t\t\tdisplay = \"block\";\n\t\t}\n\t\tdefaultDisplayMap[ nodeName ] = display;\n\n\t\treturn display;\n\t}\n\n\tfunction showHide( elements, show ) {\n\t\tvar display, elem,\n\t\t\tvalues = [],\n\t\t\tindex = 0,\n\t\t\tlength = elements.length;\n\n\t\t// Determine new display value for elements that need to change\n\t\tfor ( ; index < length; index++ ) {\n\t\t\telem = elements[ index ];\n\t\t\tif ( !elem.style ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tdisplay = elem.style.display;\n\t\t\tif ( show ) {\n\n\t\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t\t// inline or about-to-be-restored)\n\t\t\t\tif ( display === \"none\" ) {\n\t\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( display !== \"none\" ) {\n\t\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t\t// Remember what we're overwriting\n\t\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Set the display of the elements in a second loop to avoid constant reflow\n\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\tif ( values[ index ] != null ) {\n\t\t\t\telements[ index ].style.display = values[ index ];\n\t\t\t}\n\t\t}\n\n\t\treturn elements;\n\t}\n\n\tjQuery.fn.extend( {\n\t\tshow: function() {\n\t\t\treturn showHide( this, true );\n\t\t},\n\t\thide: function() {\n\t\t\treturn showHide( this );\n\t\t},\n\t\ttoggle: function( state ) {\n\t\t\tif ( typeof state === \"boolean\" ) {\n\t\t\t\treturn state ? this.show() : this.hide();\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\t\tjQuery( this ).show();\n\t\t\t\t} else {\n\t\t\t\t\tjQuery( this ).hide();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\tvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\n\tvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\n\tvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n\t// We have to close these tags to support XHTML (#13200)\n\tvar wrapMap = {\n\n\t\t// Support: IE <=9 only\n\t\toption: [ 1, \"\" ],\n\n\t\t// XHTML parsers do not magically insert elements in the\n\t\t// same way that tag soup parsers do. So we cannot shorten\n\t\t// this by omitting or other required elements.\n\t\tthead: [ 1, \"\", \"
    \" ],\n\t\tcol: [ 2, \"\", \"
    \" ],\n\t\ttr: [ 2, \"\", \"
    \" ],\n\t\ttd: [ 3, \"\", \"
    \" ],\n\n\t\t_default: [ 0, \"\", \"\" ]\n\t};\n\n\t// Support: IE <=9 only\n\twrapMap.optgroup = wrapMap.option;\n\n\twrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n\twrapMap.th = wrapMap.td;\n\n\n\tfunction getAll( context, tag ) {\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\t\tvar ret;\n\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t\t} else {\n\t\t\tret = [];\n\t\t}\n\n\t\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\t\treturn jQuery.merge( [ context ], ret );\n\t\t}\n\n\t\treturn ret;\n\t}\n\n\n\t// Mark scripts as having already been evaluated\n\tfunction setGlobalEval( elems, refElements ) {\n\t\tvar i = 0,\n\t\t\tl = elems.length;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tdataPriv.set(\n\t\t\t\telems[ i ],\n\t\t\t\t\"globalEval\",\n\t\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t\t);\n\t\t}\n\t}\n\n\n\tvar rhtml = /<|&#?\\w+;/;\n\n\tfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\t\tvar elem, tmp, tag, wrap, contains, j,\n\t\t\tfragment = context.createDocumentFragment(),\n\t\t\tnodes = [],\n\t\t\ti = 0,\n\t\t\tl = elems.length;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[ 0 ];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Remember the top-level container\n\t\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\t\ttmp.textContent = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Remove wrapper from fragment\n\t\tfragment.textContent = \"\";\n\n\t\ti = 0;\n\t\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t\t// Skip elements already in the context collection (trac-4087)\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\t\tif ( ignored ) {\n\t\t\t\t\tignored.push( elem );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fragment;\n\t}\n\n\n\t( function() {\n\t\tvar fragment = document.createDocumentFragment(),\n\t\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\t\tinput = document.createElement( \"input\" );\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Check state lost if the name is set (#11217)\n\t\t// Support: Windows Web Apps (WWA)\n\t\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\t\tinput.setAttribute( \"type\", \"radio\" );\n\t\tinput.setAttribute( \"checked\", \"checked\" );\n\t\tinput.setAttribute( \"name\", \"t\" );\n\n\t\tdiv.appendChild( input );\n\n\t\t// Support: Android <=4.1 only\n\t\t// Older WebKit doesn't clone checked state correctly in fragments\n\t\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t\t// Support: IE <=11 only\n\t\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t\tdiv.innerHTML = \"\";\n\t\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\t} )();\n\tvar documentElement = document.documentElement;\n\n\n\n\tvar\n\t\trkeyEvent = /^key/,\n\t\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\t\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n\tfunction returnTrue() {\n\t\treturn true;\n\t}\n\n\tfunction returnFalse() {\n\t\treturn false;\n\t}\n\n\t// Support: IE <=9 only\n\t// See #13393 for more info\n\tfunction safeActiveElement() {\n\t\ttry {\n\t\t\treturn document.activeElement;\n\t\t} catch ( err ) { }\n\t}\n\n\tfunction on( elem, types, selector, data, fn, one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn elem;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn elem;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn elem.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t} );\n\t}\n\n\t/*\n\t * Helper functions for managing events -- not part of the public interface.\n\t * Props to Dean Edwards' addEvent library for many of the ideas.\n\t */\n\tjQuery.event = {\n\n\t\tglobal: {},\n\n\t\tadd: function( elem, types, handler, data, selector ) {\n\n\t\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\t\tevents, t, handleObj,\n\t\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\t\telemData = dataPriv.get( elem );\n\n\t\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\t\tif ( !elemData ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\t\tif ( handler.handler ) {\n\t\t\t\thandleObjIn = handler;\n\t\t\t\thandler = handleObjIn.handler;\n\t\t\t\tselector = handleObjIn.selector;\n\t\t\t}\n\n\t\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\t\tif ( selector ) {\n\t\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t\t}\n\n\t\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\t\tif ( !handler.guid ) {\n\t\t\t\thandler.guid = jQuery.guid++;\n\t\t\t}\n\n\t\t\t// Init the element's event structure and main handler, if this is the first\n\t\t\tif ( !( events = elemData.events ) ) {\n\t\t\t\tevents = elemData.events = {};\n\t\t\t}\n\t\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Handle multiple events separated by a space\n\t\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\t\tt = types.length;\n\t\t\twhile ( t-- ) {\n\t\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\t\ttype = origType = tmp[ 1 ];\n\t\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\t\tif ( !type ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t\t// Update special based on newly reset type\n\t\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t\t// handleObj is passed to all event handlers\n\t\t\t\thandleObj = jQuery.extend( {\n\t\t\t\t\ttype: type,\n\t\t\t\t\torigType: origType,\n\t\t\t\t\tdata: data,\n\t\t\t\t\thandler: handler,\n\t\t\t\t\tguid: handler.guid,\n\t\t\t\t\tselector: selector,\n\t\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t\t}, handleObjIn );\n\n\t\t\t\t// Init the event handler queue if we're the first\n\t\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\t\tif ( !special.setup ||\n\t\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( special.add ) {\n\t\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Add to the element's handler list, delegates in front\n\t\t\t\tif ( selector ) {\n\t\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t\t} else {\n\t\t\t\t\thandlers.push( handleObj );\n\t\t\t\t}\n\n\t\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\t\tjQuery.event.global[ type ] = true;\n\t\t\t}\n\n\t\t},\n\n\t\t// Detach an event or set of events from an element\n\t\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\t\tvar j, origCount, tmp,\n\t\t\t\tevents, t, handleObj,\n\t\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Once for each type.namespace in types; type may be omitted\n\t\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\t\tt = types.length;\n\t\t\twhile ( t-- ) {\n\t\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\t\ttype = origType = tmp[ 1 ];\n\t\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\t\tif ( !type ) {\n\t\t\t\t\tfor ( type in events ) {\n\t\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\t\thandlers = events[ type ] || [];\n\t\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t\t// Remove matching events\n\t\t\t\torigCount = j = handlers.length;\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete events[ type ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove data and the expando if it's no longer used\n\t\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t\t}\n\t\t},\n\n\t\tdispatch: function( nativeEvent ) {\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\t\targs = new Array( arguments.length ),\n\t\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\t\targs[ 0 ] = event;\n\n\t\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\t\targs[ i ] = arguments[ i ];\n\t\t\t}\n\n\t\t\tevent.delegateTarget = this;\n\n\t\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Determine handlers\n\t\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\t\ti = 0;\n\t\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Call the postDispatch hook for the mapped type\n\t\t\tif ( special.postDispatch ) {\n\t\t\t\tspecial.postDispatch.call( this, event );\n\t\t\t}\n\n\t\t\treturn event.result;\n\t\t},\n\n\t\thandlers: function( event, handlers ) {\n\t\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\t\thandlerQueue = [],\n\t\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\t\tcur = event.target;\n\n\t\t\t// Find delegate handlers\n\t\t\tif ( delegateCount &&\n\n\t\t\t\t// Support: IE <=9\n\t\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\t\tcur.nodeType &&\n\n\t\t\t\t// Support: Firefox <=42\n\t\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t\t// Support: IE 11 only\n\t\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add the remaining (directly-bound) handlers\n\t\t\tcur = this;\n\t\t\tif ( delegateCount < handlers.length ) {\n\t\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t\t}\n\n\t\t\treturn handlerQueue;\n\t\t},\n\n\t\taddProp: function( name, hook ) {\n\t\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\n\t\t\t\tget: isFunction( hook ) ?\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t\t}\n\t\t\t\t\t} :\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\tset: function( value ) {\n\t\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tfix: function( originalEvent ) {\n\t\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\t\toriginalEvent :\n\t\t\t\tnew jQuery.Event( originalEvent );\n\t\t},\n\n\t\tspecial: {\n\t\t\tload: {\n\n\t\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\t\tnoBubble: true\n\t\t\t},\n\t\t\tfocus: {\n\n\t\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\t\ttrigger: function() {\n\t\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tdelegateType: \"focusin\"\n\t\t\t},\n\t\t\tblur: {\n\t\t\t\ttrigger: function() {\n\t\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\t\tthis.blur();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tdelegateType: \"focusout\"\n\t\t\t},\n\t\t\tclick: {\n\n\t\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\t\ttrigger: function() {\n\t\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\t\tthis.click();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t\t_default: function( event ) {\n\t\t\t\t\treturn nodeName( event.target, \"a\" );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tbeforeunload: {\n\t\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t\t// Support: Firefox 20+\n\t\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tjQuery.removeEvent = function( elem, type, handle ) {\n\n\t\t// This \"if\" is needed for plain objects\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle );\n\t\t}\n\t};\n\n\tjQuery.Event = function( src, props ) {\n\n\t\t// Allow instantiation without the 'new' keyword\n\t\tif ( !( this instanceof jQuery.Event ) ) {\n\t\t\treturn new jQuery.Event( src, props );\n\t\t}\n\n\t\t// Event object\n\t\tif ( src && src.type ) {\n\t\t\tthis.originalEvent = src;\n\t\t\tthis.type = src.type;\n\n\t\t\t// Events bubbling up the document may have been marked as prevented\n\t\t\t// by a handler lower down the tree; reflect the correct value.\n\t\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\t\tsrc.returnValue === false ?\n\t\t\t\treturnTrue :\n\t\t\t\treturnFalse;\n\n\t\t\t// Create target properties\n\t\t\t// Support: Safari <=6 - 7 only\n\t\t\t// Target should not be a text node (#504, #13143)\n\t\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\t\tsrc.target.parentNode :\n\t\t\t\tsrc.target;\n\n\t\t\tthis.currentTarget = src.currentTarget;\n\t\t\tthis.relatedTarget = src.relatedTarget;\n\n\t\t// Event type\n\t\t} else {\n\t\t\tthis.type = src;\n\t\t}\n\n\t\t// Put explicitly provided properties onto the event object\n\t\tif ( props ) {\n\t\t\tjQuery.extend( this, props );\n\t\t}\n\n\t\t// Create a timestamp if incoming event doesn't have one\n\t\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t\t// Mark it as fixed\n\t\tthis[ jQuery.expando ] = true;\n\t};\n\n\t// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n\t// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\tjQuery.Event.prototype = {\n\t\tconstructor: jQuery.Event,\n\t\tisDefaultPrevented: returnFalse,\n\t\tisPropagationStopped: returnFalse,\n\t\tisImmediatePropagationStopped: returnFalse,\n\t\tisSimulated: false,\n\n\t\tpreventDefault: function() {\n\t\t\tvar e = this.originalEvent;\n\n\t\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\t\tif ( e && !this.isSimulated ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t},\n\t\tstopPropagation: function() {\n\t\t\tvar e = this.originalEvent;\n\n\t\t\tthis.isPropagationStopped = returnTrue;\n\n\t\t\tif ( e && !this.isSimulated ) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t},\n\t\tstopImmediatePropagation: function() {\n\t\t\tvar e = this.originalEvent;\n\n\t\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\t\tif ( e && !this.isSimulated ) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\n\t\t\tthis.stopPropagation();\n\t\t}\n\t};\n\n\t// Includes all common event props including KeyEvent and MouseEvent specific props\n\tjQuery.each( {\n\t\taltKey: true,\n\t\tbubbles: true,\n\t\tcancelable: true,\n\t\tchangedTouches: true,\n\t\tctrlKey: true,\n\t\tdetail: true,\n\t\teventPhase: true,\n\t\tmetaKey: true,\n\t\tpageX: true,\n\t\tpageY: true,\n\t\tshiftKey: true,\n\t\tview: true,\n\t\t\"char\": true,\n\t\tcharCode: true,\n\t\tkey: true,\n\t\tkeyCode: true,\n\t\tbutton: true,\n\t\tbuttons: true,\n\t\tclientX: true,\n\t\tclientY: true,\n\t\toffsetX: true,\n\t\toffsetY: true,\n\t\tpointerId: true,\n\t\tpointerType: true,\n\t\tscreenX: true,\n\t\tscreenY: true,\n\t\ttargetTouches: true,\n\t\ttoElement: true,\n\t\ttouches: true,\n\n\t\twhich: function( event ) {\n\t\t\tvar button = event.button;\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\t\tif ( button & 1 ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\tif ( button & 2 ) {\n\t\t\t\t\treturn 3;\n\t\t\t\t}\n\n\t\t\t\tif ( button & 4 ) {\n\t\t\t\t\treturn 2;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\treturn event.which;\n\t\t}\n\t}, jQuery.event.addProp );\n\n\t// Create mouseenter/leave events using mouseover/out and event-time checks\n\t// so that event delegation works in jQuery.\n\t// Do the same for pointerenter/pointerleave and pointerover/pointerout\n\t//\n\t// Support: Safari 7 only\n\t// Safari sends mouseenter too often; see:\n\t// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n\t// for the description of the bug (it existed in older Chrome versions as well).\n\tjQuery.each( {\n\t\tmouseenter: \"mouseover\",\n\t\tmouseleave: \"mouseout\",\n\t\tpointerenter: \"pointerover\",\n\t\tpointerleave: \"pointerout\"\n\t}, function( orig, fix ) {\n\t\tjQuery.event.special[ orig ] = {\n\t\t\tdelegateType: fix,\n\t\t\tbindType: fix,\n\n\t\t\thandle: function( event ) {\n\t\t\t\tvar ret,\n\t\t\t\t\ttarget = this,\n\t\t\t\t\trelated = event.relatedTarget,\n\t\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\t\tevent.type = fix;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t};\n\t} );\n\n\tjQuery.fn.extend( {\n\n\t\ton: function( types, selector, data, fn ) {\n\t\t\treturn on( this, types, selector, data, fn );\n\t\t},\n\t\tone: function( types, selector, data, fn ) {\n\t\t\treturn on( this, types, selector, data, fn, 1 );\n\t\t},\n\t\toff: function( types, selector, fn ) {\n\t\t\tvar handleObj, type;\n\t\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\t\thandleObj = types.handleObj;\n\t\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\t\thandleObj.namespace ?\n\t\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\t\thandleObj.origType,\n\t\t\t\t\thandleObj.selector,\n\t\t\t\t\thandleObj.handler\n\t\t\t\t);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t\t// ( types-object [, selector] )\n\t\t\t\tfor ( type in types ) {\n\t\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t\t// ( types [, fn] )\n\t\t\t\tfn = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tif ( fn === false ) {\n\t\t\t\tfn = returnFalse;\n\t\t\t}\n\t\t\treturn this.each( function() {\n\t\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t\t} );\n\t\t}\n\t} );\n\n\n\tvar\n\n\t\t/* eslint-disable max-len */\n\n\t\t// See https://github.com/eslint/eslint/issues/3229\n\t\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t\t/* eslint-enable */\n\n\t\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\t\trnoInnerhtml = /\\s*$/g;\n\n\t// Prefer a tbody over its parent table for containing new rows\n\tfunction manipulationTarget( elem, content ) {\n\t\tif ( nodeName( elem, \"table\" ) &&\n\t\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t\t}\n\n\t\treturn elem;\n\t}\n\n\t// Replace/restore the type attribute of script elements for safe DOM manipulation\n\tfunction disableScript( elem ) {\n\t\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\t\treturn elem;\n\t}\n\tfunction restoreScript( elem ) {\n\t\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\t\telem.type = elem.type.slice( 5 );\n\t\t} else {\n\t\t\telem.removeAttribute( \"type\" );\n\t\t}\n\n\t\treturn elem;\n\t}\n\n\tfunction cloneCopyEvent( src, dest ) {\n\t\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\t\tif ( dest.nodeType !== 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// 1. Copy private data: events, handlers, etc.\n\t\tif ( dataPriv.hasData( src ) ) {\n\t\t\tpdataOld = dataPriv.access( src );\n\t\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\t\tevents = pdataOld.events;\n\n\t\t\tif ( events ) {\n\t\t\t\tdelete pdataCur.handle;\n\t\t\t\tpdataCur.events = {};\n\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// 2. Copy user data\n\t\tif ( dataUser.hasData( src ) ) {\n\t\t\tudataOld = dataUser.access( src );\n\t\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\t\tdataUser.set( dest, udataCur );\n\t\t}\n\t}\n\n\t// Fix IE bugs, see support tests\n\tfunction fixInput( src, dest ) {\n\t\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\t\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t\tdest.checked = src.checked;\n\n\t\t// Fails to return the selected option to the default selected state when cloning options\n\t\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\t\tdest.defaultValue = src.defaultValue;\n\t\t}\n\t}\n\n\tfunction domManip( collection, args, callback, ignored ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\t\ti = 0,\n\t\t\tl = collection.length,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[ 0 ],\n\t\t\tvalueIsFunction = isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( valueIsFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn collection.each( function( index ) {\n\t\t\t\tvar self = collection.eq( index );\n\t\t\t\tif ( valueIsFunction ) {\n\t\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tdomManip( self, args, callback, ignored );\n\t\t\t} );\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\t\tif ( first || ignored ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item\n\t\t\t\t// instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc, node );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn collection;\n\t}\n\n\tfunction remove( elem, selector, keepData ) {\n\t\tvar node,\n\t\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t\t}\n\n\t\t\tif ( node.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t\t}\n\t\t\t\tnode.parentNode.removeChild( node );\n\t\t\t}\n\t\t}\n\n\t\treturn elem;\n\t}\n\n\tjQuery.extend( {\n\t\thtmlPrefilter: function( html ) {\n\t\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t\t},\n\n\t\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\t\tvar i, l, srcElements, destElements,\n\t\t\t\tclone = elem.cloneNode( true ),\n\t\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Fix IE cloning issues\n\t\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\t\tdestElements = getAll( clone );\n\t\t\t\tsrcElements = getAll( elem );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the events from the original to the clone\n\t\t\tif ( dataAndEvents ) {\n\t\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Preserve script evaluation history\n\t\t\tdestElements = getAll( clone, \"script\" );\n\t\t\tif ( destElements.length > 0 ) {\n\t\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t\t}\n\n\t\t\t// Return the cloned set\n\t\t\treturn clone;\n\t\t},\n\n\t\tcleanData: function( elems ) {\n\t\t\tvar data, elem, type,\n\t\t\t\tspecial = jQuery.event.special,\n\t\t\t\ti = 0;\n\n\t\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\tjQuery.fn.extend( {\n\t\tdetach: function( selector ) {\n\t\t\treturn remove( this, selector, true );\n\t\t},\n\n\t\tremove: function( selector ) {\n\t\t\treturn remove( this, selector );\n\t\t},\n\n\t\ttext: function( value ) {\n\t\t\treturn access( this, function( value ) {\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\tjQuery.text( this ) :\n\t\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t}, null, value, arguments.length );\n\t\t},\n\n\t\tappend: function() {\n\t\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\t\ttarget.appendChild( elem );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tprepend: function() {\n\t\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tbefore: function() {\n\t\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\t\tif ( this.parentNode ) {\n\t\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tafter: function() {\n\t\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\t\tif ( this.parentNode ) {\n\t\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tempty: function() {\n\t\t\tvar elem,\n\t\t\t\ti = 0;\n\n\t\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t\t// Prevent memory leaks\n\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t\t// Remove any remaining nodes\n\t\t\t\t\telem.textContent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\t\treturn this.map( function() {\n\t\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t\t} );\n\t\t},\n\n\t\thtml: function( value ) {\n\t\t\treturn access( this, function( value ) {\n\t\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\t\ti = 0,\n\t\t\t\t\tl = this.length;\n\n\t\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\t\treturn elem.innerHTML;\n\t\t\t\t}\n\n\t\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\telem = 0;\n\n\t\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t\t} catch ( e ) {}\n\t\t\t\t}\n\n\t\t\t\tif ( elem ) {\n\t\t\t\t\tthis.empty().append( value );\n\t\t\t\t}\n\t\t\t}, null, value, arguments.length );\n\t\t},\n\n\t\treplaceWith: function() {\n\t\t\tvar ignored = [];\n\n\t\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\t\tvar parent = this.parentNode;\n\n\t\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\t\tif ( parent ) {\n\t\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Force callback invocation\n\t\t\t}, ignored );\n\t\t}\n\t} );\n\n\tjQuery.each( {\n\t\tappendTo: \"append\",\n\t\tprependTo: \"prepend\",\n\t\tinsertBefore: \"before\",\n\t\tinsertAfter: \"after\",\n\t\treplaceAll: \"replaceWith\"\n\t}, function( name, original ) {\n\t\tjQuery.fn[ name ] = function( selector ) {\n\t\t\tvar elems,\n\t\t\t\tret = [],\n\t\t\t\tinsert = jQuery( selector ),\n\t\t\t\tlast = insert.length - 1,\n\t\t\t\ti = 0;\n\n\t\t\tfor ( ; i <= last; i++ ) {\n\t\t\t\telems = i === last ? this : this.clone( true );\n\t\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tpush.apply( ret, elems.get() );\n\t\t\t}\n\n\t\t\treturn this.pushStack( ret );\n\t\t};\n\t} );\n\tvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\n\tvar getStyles = function( elem ) {\n\n\t\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t\t// IE throws on elements created in popups\n\t\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\t\tif ( !view || !view.opener ) {\n\t\t\t\tview = window;\n\t\t\t}\n\n\t\t\treturn view.getComputedStyle( elem );\n\t\t};\n\n\tvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n\t( function() {\n\n\t\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t\t// so they're executed at the same time to save the second computation.\n\t\tfunction computeStyleTests() {\n\n\t\t\t// This is a singleton, we need to execute it only once\n\t\t\tif ( !div ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\t\tdiv.style.cssText =\n\t\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\t\"width:60%;top:1%\";\n\t\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\t\tvar divStyle = window.getComputedStyle( div );\n\t\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\t\tdiv.style.right = \"60%\";\n\t\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t\t// Support: IE 9 - 11 only\n\t\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t\t// Support: IE 9 only\n\t\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t\tdiv.style.position = \"absolute\";\n\t\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\n\n\t\t\tdocumentElement.removeChild( container );\n\n\t\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t\t// it will also be a sign that checks already performed\n\t\t\tdiv = null;\n\t\t}\n\n\t\tfunction roundPixelMeasures( measure ) {\n\t\t\treturn Math.round( parseFloat( measure ) );\n\t\t}\n\n\t\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\t\treliableMarginLeftVal,\n\t\t\tcontainer = document.createElement( \"div\" ),\n\t\t\tdiv = document.createElement( \"div\" );\n\n\t\t// Finish early in limited (non-browser) environments\n\t\tif ( !div.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// Style of cloned element affects source element cloned (#8908)\n\t\tdiv.style.backgroundClip = \"content-box\";\n\t\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\t\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t\tjQuery.extend( support, {\n\t\t\tboxSizingReliable: function() {\n\t\t\t\tcomputeStyleTests();\n\t\t\t\treturn boxSizingReliableVal;\n\t\t\t},\n\t\t\tpixelBoxStyles: function() {\n\t\t\t\tcomputeStyleTests();\n\t\t\t\treturn pixelBoxStylesVal;\n\t\t\t},\n\t\t\tpixelPosition: function() {\n\t\t\t\tcomputeStyleTests();\n\t\t\t\treturn pixelPositionVal;\n\t\t\t},\n\t\t\treliableMarginLeft: function() {\n\t\t\t\tcomputeStyleTests();\n\t\t\t\treturn reliableMarginLeftVal;\n\t\t\t},\n\t\t\tscrollboxSize: function() {\n\t\t\t\tcomputeStyleTests();\n\t\t\t\treturn scrollboxSizeVal;\n\t\t\t}\n\t\t} );\n\t} )();\n\n\n\tfunction curCSS( elem, name, computed ) {\n\t\tvar width, minWidth, maxWidth, ret,\n\n\t\t\t// Support: Firefox 51+\n\t\t\t// Retrieving style before computed somehow\n\t\t\t// fixes an issue with getting wrong values\n\t\t\t// on detached elements\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\n\t\t// getPropertyValue is needed for:\n\t\t// .css('filter') (IE 9 only, #12537)\n\t\t// .css('--customProperty) (#3144)\n\t\tif ( computed ) {\n\t\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Android Browser returns percentage for some values,\n\t\t\t// but width seems to be reliably pixels.\n\t\t\t// This is against the CSSOM draft spec:\n\t\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn ret !== undefined ?\n\n\t\t\t// Support: IE <=9 - 11 only\n\t\t\t// IE returns zIndex value as an integer.\n\t\t\tret + \"\" :\n\t\t\tret;\n\t}\n\n\n\tfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t\t// Define the hook, we'll check on the first run if it's really needed.\n\t\treturn {\n\t\t\tget: function() {\n\t\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t\t// to missing dependency), remove it.\n\t\t\t\t\tdelete this.get;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t\t}\n\t\t};\n\t}\n\n\n\tvar\n\n\t\t// Swappable if display is none or starts with table\n\t\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\t\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\t\trcustomProp = /^--/,\n\t\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\t\tcssNormalTransform = {\n\t\t\tletterSpacing: \"0\",\n\t\t\tfontWeight: \"400\"\n\t\t},\n\n\t\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\t\temptyStyle = document.createElement( \"div\" ).style;\n\n\t// Return a css property mapped to a potentially vendor prefixed property\n\tfunction vendorPropName( name ) {\n\n\t\t// Shortcut for names that are not vendor prefixed\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\n\t\t// Check for vendor prefixed names\n\t\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\t\ti = cssPrefixes.length;\n\n\t\twhile ( i-- ) {\n\t\t\tname = cssPrefixes[ i ] + capName;\n\t\t\tif ( name in emptyStyle ) {\n\t\t\t\treturn name;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return a property mapped along what jQuery.cssProps suggests or to\n\t// a vendor prefixed property.\n\tfunction finalPropName( name ) {\n\t\tvar ret = jQuery.cssProps[ name ];\n\t\tif ( !ret ) {\n\t\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction setPositiveNumber( elem, value, subtract ) {\n\n\t\t// Any relative (+/-) values have already been\n\t\t// normalized at this point\n\t\tvar matches = rcssNum.exec( value );\n\t\treturn matches ?\n\n\t\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\t\tvalue;\n\t}\n\n\tfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\t\tvar i = dimension === \"width\" ? 1 : 0,\n\t\t\textra = 0,\n\t\t\tdelta = 0;\n\n\t\t// Adjustment may not be necessary\n\t\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor ( ; i < 4; i += 2 ) {\n\n\t\t\t// Both box models exclude margin\n\t\t\tif ( box === \"margin\" ) {\n\t\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\t\tif ( !isBorderBox ) {\n\n\t\t\t\t// Add padding\n\t\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t\t// For \"border\" or \"margin\", add border\n\t\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t\t// But still keep track of it otherwise\n\t\t\t\t} else {\n\t\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t\t}\n\n\t\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t\t// \"padding\" or \"margin\"\n\t\t\t} else {\n\n\t\t\t\t// For \"content\", subtract padding\n\t\t\t\tif ( box === \"content\" ) {\n\t\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t\t}\n\n\t\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\t\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\tcomputedVal -\n\t\t\t\tdelta -\n\t\t\t\textra -\n\t\t\t\t0.5\n\t\t\t) );\n\t\t}\n\n\t\treturn delta;\n\t}\n\n\tfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t\t// Start with computed style\n\t\tvar styles = getStyles( elem ),\n\t\t\tval = curCSS( elem, dimension, styles ),\n\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\tvalueIsBorderBox = isBorderBox;\n\n\t\t// Support: Firefox <=54\n\t\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\tif ( !extra ) {\n\t\t\t\treturn val;\n\t\t\t}\n\t\t\tval = \"auto\";\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\tif ( val === \"auto\" ||\n\t\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t\t// offsetWidth/offsetHeight provide border-box values\n\t\t\tvalueIsBorderBox = true;\n\t\t}\n\n\t\t// Normalize \"\" and auto\n\t\tval = parseFloat( val ) || 0;\n\n\t\t// Adjust for the element's box model\n\t\treturn ( val +\n\t\t\tboxModelAdjustment(\n\t\t\t\telem,\n\t\t\t\tdimension,\n\t\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\t\tvalueIsBorderBox,\n\t\t\t\tstyles,\n\n\t\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\t\tval\n\t\t\t)\n\t\t) + \"px\";\n\t}\n\n\tjQuery.extend( {\n\n\t\t// Add in style property hooks for overriding the default\n\t\t// behavior of getting and setting a style property\n\t\tcssHooks: {\n\t\t\topacity: {\n\t\t\t\tget: function( elem, computed ) {\n\t\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Don't automatically add \"px\" to these possibly-unitless properties\n\t\tcssNumber: {\n\t\t\t\"animationIterationCount\": true,\n\t\t\t\"columnCount\": true,\n\t\t\t\"fillOpacity\": true,\n\t\t\t\"flexGrow\": true,\n\t\t\t\"flexShrink\": true,\n\t\t\t\"fontWeight\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"opacity\": true,\n\t\t\t\"order\": true,\n\t\t\t\"orphans\": true,\n\t\t\t\"widows\": true,\n\t\t\t\"zIndex\": true,\n\t\t\t\"zoom\": true\n\t\t},\n\n\t\t// Add in properties whose names you wish to fix before\n\t\t// setting or getting the value\n\t\tcssProps: {},\n\n\t\t// Get and set the style property on a DOM Node\n\t\tstyle: function( elem, name, value, extra ) {\n\n\t\t\t// Don't set styles on text and comment nodes\n\t\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Make sure that we're working with the right name\n\t\t\tvar ret, type, hooks,\n\t\t\t\torigName = camelCase( name ),\n\t\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\t\tstyle = elem.style;\n\n\t\t\t// Make sure that we're working with the right name. We don't\n\t\t\t// want to query the value if it is a CSS custom property\n\t\t\t// since they are user-defined.\n\t\t\tif ( !isCustomProp ) {\n\t\t\t\tname = finalPropName( origName );\n\t\t\t}\n\n\t\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t\t// Check if we're setting a value\n\t\t\tif ( value !== undefined ) {\n\t\t\t\ttype = typeof value;\n\n\t\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t\t// Fixes bug #9237\n\t\t\t\t\ttype = \"number\";\n\t\t\t\t}\n\n\t\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\t\tif ( value == null || value !== value ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t\tif ( type === \"number\" ) {\n\t\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t\t}\n\n\t\t\t\t// background-* props affect original clone's values\n\t\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t\t}\n\n\t\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise just get the value from the style object\n\t\t\t\treturn style[ name ];\n\t\t\t}\n\t\t},\n\n\t\tcss: function( elem, name, extra, styles ) {\n\t\t\tvar val, num, hooks,\n\t\t\t\torigName = camelCase( name ),\n\t\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t\t// Make sure that we're working with the right name. We don't\n\t\t\t// want to modify the value if it is a CSS custom property\n\t\t\t// since they are user-defined.\n\t\t\tif ( !isCustomProp ) {\n\t\t\t\tname = finalPropName( origName );\n\t\t\t}\n\n\t\t\t// Try prefixed name followed by the unprefixed name\n\t\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t\t// If a hook was provided get the computed value from there\n\t\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\t\tval = hooks.get( elem, true, extra );\n\t\t\t}\n\n\t\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\t\tif ( val === undefined ) {\n\t\t\t\tval = curCSS( elem, name, styles );\n\t\t\t}\n\n\t\t\t// Convert \"normal\" to computed value\n\t\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\t\tval = cssNormalTransform[ name ];\n\t\t\t}\n\n\t\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\t\tif ( extra === \"\" || extra ) {\n\t\t\t\tnum = parseFloat( val );\n\t\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t\t}\n\n\t\t\treturn val;\n\t\t}\n\t} );\n\n\tjQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\t\tjQuery.cssHooks[ dimension ] = {\n\t\t\tget: function( elem, computed, extra ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t\t} ) :\n\t\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset: function( elem, value, extra ) {\n\t\t\t\tvar matches,\n\t\t\t\t\tstyles = getStyles( elem ),\n\t\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t);\n\n\t\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\t\tif ( isBorderBox && support.scrollboxSize() === styles.position ) {\n\t\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t\t0.5\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t\t}\n\n\t\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t\t}\n\t\t};\n\t} );\n\n\tjQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t\t} )\n\t\t\t\t\t) + \"px\";\n\t\t\t}\n\t\t}\n\t);\n\n\t// These hooks are used by animate to expand properties\n\tjQuery.each( {\n\t\tmargin: \"\",\n\t\tpadding: \"\",\n\t\tborder: \"Width\"\n\t}, function( prefix, suffix ) {\n\t\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\t\texpand: function( value ) {\n\t\t\t\tvar i = 0,\n\t\t\t\t\texpanded = {},\n\n\t\t\t\t\t// Assumes a single number if not a string\n\t\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t\t}\n\n\t\t\t\treturn expanded;\n\t\t\t}\n\t\t};\n\n\t\tif ( prefix !== \"margin\" ) {\n\t\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t\t}\n\t} );\n\n\tjQuery.fn.extend( {\n\t\tcss: function( name, value ) {\n\t\t\treturn access( this, function( elem, name, value ) {\n\t\t\t\tvar styles, len,\n\t\t\t\t\tmap = {},\n\t\t\t\t\ti = 0;\n\n\t\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\t\tstyles = getStyles( elem );\n\t\t\t\t\tlen = name.length;\n\n\t\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn map;\n\t\t\t\t}\n\n\t\t\t\treturn value !== undefined ?\n\t\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\t\tjQuery.css( elem, name );\n\t\t\t}, name, value, arguments.length > 1 );\n\t\t}\n\t} );\n\n\n\tfunction Tween( elem, options, prop, end, easing ) {\n\t\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n\t}\n\tjQuery.Tween = Tween;\n\n\tTween.prototype = {\n\t\tconstructor: Tween,\n\t\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\t\tthis.elem = elem;\n\t\t\tthis.prop = prop;\n\t\t\tthis.easing = easing || jQuery.easing._default;\n\t\t\tthis.options = options;\n\t\t\tthis.start = this.now = this.cur();\n\t\t\tthis.end = end;\n\t\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t\t},\n\t\tcur: function() {\n\t\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\t\treturn hooks && hooks.get ?\n\t\t\t\thooks.get( this ) :\n\t\t\t\tTween.propHooks._default.get( this );\n\t\t},\n\t\trun: function( percent ) {\n\t\t\tvar eased,\n\t\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\t\tif ( this.options.duration ) {\n\t\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.pos = eased = percent;\n\t\t\t}\n\t\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\t\tif ( this.options.step ) {\n\t\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t\t}\n\n\t\t\tif ( hooks && hooks.set ) {\n\t\t\t\thooks.set( this );\n\t\t\t} else {\n\t\t\t\tTween.propHooks._default.set( this );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t};\n\n\tTween.prototype.init.prototype = Tween.prototype;\n\n\tTween.propHooks = {\n\t\t_default: {\n\t\t\tget: function( tween ) {\n\t\t\t\tvar result;\n\n\t\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t\t// or when there is no matching style property that exists.\n\t\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t\t}\n\n\t\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t\t},\n\t\t\tset: function( tween ) {\n\n\t\t\t\t// Use step hook for back compat.\n\t\t\t\t// Use cssHook if its there.\n\t\t\t\t// Use .style if available and use plain properties where available.\n\t\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t\t} else {\n\t\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Support: IE <=9 only\n\t// Panic based approach to setting things on disconnected nodes\n\tTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\t\tset: function( tween ) {\n\t\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t};\n\n\tjQuery.easing = {\n\t\tlinear: function( p ) {\n\t\t\treturn p;\n\t\t},\n\t\tswing: function( p ) {\n\t\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t\t},\n\t\t_default: \"swing\"\n\t};\n\n\tjQuery.fx = Tween.prototype.init;\n\n\t// Back compat <1.8 extension point\n\tjQuery.fx.step = {};\n\n\n\n\n\tvar\n\t\tfxNow, inProgress,\n\t\trfxtypes = /^(?:toggle|show|hide)$/,\n\t\trrun = /queueHooks$/;\n\n\tfunction schedule() {\n\t\tif ( inProgress ) {\n\t\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\t\twindow.requestAnimationFrame( schedule );\n\t\t\t} else {\n\t\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t\t}\n\n\t\t\tjQuery.fx.tick();\n\t\t}\n\t}\n\n\t// Animations created synchronously will run synchronously\n\tfunction createFxNow() {\n\t\twindow.setTimeout( function() {\n\t\t\tfxNow = undefined;\n\t\t} );\n\t\treturn ( fxNow = Date.now() );\n\t}\n\n\t// Generate parameters to create a standard animation\n\tfunction genFx( type, includeWidth ) {\n\t\tvar which,\n\t\t\ti = 0,\n\t\t\tattrs = { height: type };\n\n\t\t// If we include width, step value is 1 to do all cssExpand values,\n\t\t// otherwise step value is 2 to skip over Left and Right\n\t\tincludeWidth = includeWidth ? 1 : 0;\n\t\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\t\twhich = cssExpand[ i ];\n\t\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t\t}\n\n\t\tif ( includeWidth ) {\n\t\t\tattrs.opacity = attrs.width = type;\n\t\t}\n\n\t\treturn attrs;\n\t}\n\n\tfunction createTween( value, prop, animation ) {\n\t\tvar tween,\n\t\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\t\tindex = 0,\n\t\t\tlength = collection.length;\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t\t// We're done with this property\n\t\t\t\treturn tween;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction defaultPrefilter( elem, props, opts ) {\n\t\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\t\tisBox = \"width\" in props || \"height\" in props,\n\t\t\tanim = this,\n\t\t\torig = {},\n\t\t\tstyle = elem.style,\n\t\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t\t// Queue-skipping animations hijack the fx hooks\n\t\tif ( !opts.queue ) {\n\t\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\t\tif ( hooks.unqueued == null ) {\n\t\t\t\thooks.unqueued = 0;\n\t\t\t\toldfire = hooks.empty.fire;\n\t\t\t\thooks.empty.fire = function() {\n\t\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\t\toldfire();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\thooks.unqueued++;\n\n\t\t\tanim.always( function() {\n\n\t\t\t\t// Ensure the complete handler is called before this completes\n\t\t\t\tanim.always( function() {\n\t\t\t\t\thooks.unqueued--;\n\t\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\t\thooks.empty.fire();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\n\t\t// Detect show/hide animations\n\t\tfor ( prop in props ) {\n\t\t\tvalue = props[ prop ];\n\t\t\tif ( rfxtypes.test( value ) ) {\n\t\t\t\tdelete props[ prop ];\n\t\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\t\thidden = true;\n\n\t\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t\t}\n\t\t}\n\n\t\t// Bail out if this is a no-op like .hide().hide()\n\t\tpropTween = !jQuery.isEmptyObject( props );\n\t\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Restrict \"overflow\" and \"display\" styles during box animations\n\t\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t\t// the overflowX value there.\n\t\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\t\trestoreDisplay = dataShow && dataShow.display;\n\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t\t}\n\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tif ( restoreDisplay ) {\n\t\t\t\t\tdisplay = restoreDisplay;\n\t\t\t\t} else {\n\n\t\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Animate inline elements as inline-block\n\t\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\t\tif ( !propTween ) {\n\t\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( opts.overflow ) {\n\t\t\tstyle.overflow = \"hidden\";\n\t\t\tanim.always( function() {\n\t\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t\t} );\n\t\t}\n\n\t\t// Implement show/hide animations\n\t\tpropTween = false;\n\t\tfor ( prop in orig ) {\n\n\t\t\t// General show/hide setup for this element animation\n\t\t\tif ( !propTween ) {\n\t\t\t\tif ( dataShow ) {\n\t\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t\t}\n\n\t\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\t\tif ( toggle ) {\n\t\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t\t}\n\n\t\t\t\t// Show elements before animating them\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\t}\n\n\t\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\t\tif ( !hidden ) {\n\t\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Per-property setup\n\t\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\t\tpropTween.start = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction propFilter( props, specialEasing ) {\n\t\tvar index, name, easing, value, hooks;\n\n\t\t// camelCase, specialEasing and expand cssHook pass\n\t\tfor ( index in props ) {\n\t\t\tname = camelCase( index );\n\t\t\teasing = specialEasing[ name ];\n\t\t\tvalue = props[ index ];\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\teasing = value[ 1 ];\n\t\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t\t}\n\n\t\t\tif ( index !== name ) {\n\t\t\t\tprops[ name ] = value;\n\t\t\t\tdelete props[ index ];\n\t\t\t}\n\n\t\t\thooks = jQuery.cssHooks[ name ];\n\t\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\t\tvalue = hooks.expand( value );\n\t\t\t\tdelete props[ name ];\n\n\t\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\t\tfor ( index in value ) {\n\t\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tspecialEasing[ name ] = easing;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction Animation( elem, properties, options ) {\n\t\tvar result,\n\t\t\tstopped,\n\t\t\tindex = 0,\n\t\t\tlength = Animation.prefilters.length,\n\t\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t\t// Don't match elem in the :animated selector\n\t\t\t\tdelete tick.elem;\n\t\t\t} ),\n\t\t\ttick = function() {\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\t\tpercent = 1 - temp,\n\t\t\t\t\tindex = 0,\n\t\t\t\t\tlength = animation.tweens.length;\n\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t\t}\n\n\t\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t\t// If there's more to do, yield\n\t\t\t\tif ( percent < 1 && length ) {\n\t\t\t\t\treturn remaining;\n\t\t\t\t}\n\n\t\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\t\tif ( !length ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// Resolve the animation and report its conclusion\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tanimation = deferred.promise( {\n\t\t\t\telem: elem,\n\t\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\t\topts: jQuery.extend( true, {\n\t\t\t\t\tspecialEasing: {},\n\t\t\t\t\teasing: jQuery.easing._default\n\t\t\t\t}, options ),\n\t\t\t\toriginalProperties: properties,\n\t\t\t\toriginalOptions: options,\n\t\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\t\tduration: options.duration,\n\t\t\t\ttweens: [],\n\t\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\t\treturn tween;\n\t\t\t\t},\n\t\t\t\tstop: function( gotoEnd ) {\n\t\t\t\t\tvar index = 0,\n\n\t\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\t\tif ( stopped ) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t\tstopped = true;\n\t\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t} ),\n\t\t\tprops = animation.props;\n\n\t\tpropFilter( props, animation.opts.specialEasing );\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\t\tif ( result ) {\n\t\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\t\tresult.stop.bind( result );\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\tjQuery.map( props, createTween, animation );\n\n\t\tif ( isFunction( animation.opts.start ) ) {\n\t\t\tanimation.opts.start.call( elem, animation );\n\t\t}\n\n\t\t// Attach callbacks from options\n\t\tanimation\n\t\t\t.progress( animation.opts.progress )\n\t\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t\t.fail( animation.opts.fail )\n\t\t\t.always( animation.opts.always );\n\n\t\tjQuery.fx.timer(\n\t\t\tjQuery.extend( tick, {\n\t\t\t\telem: elem,\n\t\t\t\tanim: animation,\n\t\t\t\tqueue: animation.opts.queue\n\t\t\t} )\n\t\t);\n\n\t\treturn animation;\n\t}\n\n\tjQuery.Animation = jQuery.extend( Animation, {\n\n\t\ttweeners: {\n\t\t\t\"*\": [ function( prop, value ) {\n\t\t\t\tvar tween = this.createTween( prop, value );\n\t\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\t\treturn tween;\n\t\t\t} ]\n\t\t},\n\n\t\ttweener: function( props, callback ) {\n\t\t\tif ( isFunction( props ) ) {\n\t\t\t\tcallback = props;\n\t\t\t\tprops = [ \"*\" ];\n\t\t\t} else {\n\t\t\t\tprops = props.match( rnothtmlwhite );\n\t\t\t}\n\n\t\t\tvar prop,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = props.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tprop = props[ index ];\n\t\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t\t}\n\t\t},\n\n\t\tprefilters: [ defaultPrefilter ],\n\n\t\tprefilter: function( callback, prepend ) {\n\t\t\tif ( prepend ) {\n\t\t\t\tAnimation.prefilters.unshift( callback );\n\t\t\t} else {\n\t\t\t\tAnimation.prefilters.push( callback );\n\t\t\t}\n\t\t}\n\t} );\n\n\tjQuery.speed = function( speed, easing, fn ) {\n\t\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\t\tcomplete: fn || !fn && easing ||\n\t\t\t\tisFunction( speed ) && speed,\n\t\t\tduration: speed,\n\t\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t\t};\n\n\t\t// Go to the end state if fx are off\n\t\tif ( jQuery.fx.off ) {\n\t\t\topt.duration = 0;\n\n\t\t} else {\n\t\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t\t} else {\n\t\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\t\tif ( opt.queue == null || opt.queue === true ) {\n\t\t\topt.queue = \"fx\";\n\t\t}\n\n\t\t// Queueing\n\t\topt.old = opt.complete;\n\n\t\topt.complete = function() {\n\t\t\tif ( isFunction( opt.old ) ) {\n\t\t\t\topt.old.call( this );\n\t\t\t}\n\n\t\t\tif ( opt.queue ) {\n\t\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t\t}\n\t\t};\n\n\t\treturn opt;\n\t};\n\n\tjQuery.fn.extend( {\n\t\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t\t// Show any hidden elements after setting opacity to 0\n\t\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t\t// Animate to the value specified\n\t\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t\t},\n\t\tanimate: function( prop, speed, easing, callback ) {\n\t\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\t\tdoAnimation = function() {\n\n\t\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\t\tanim.stop( true );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdoAnimation.finish = doAnimation;\n\n\t\t\treturn empty || optall.queue === false ?\n\t\t\t\tthis.each( doAnimation ) :\n\t\t\t\tthis.queue( optall.queue, doAnimation );\n\t\t},\n\t\tstop: function( type, clearQueue, gotoEnd ) {\n\t\t\tvar stopQueue = function( hooks ) {\n\t\t\t\tvar stop = hooks.stop;\n\t\t\t\tdelete hooks.stop;\n\t\t\t\tstop( gotoEnd );\n\t\t\t};\n\n\t\t\tif ( typeof type !== \"string\" ) {\n\t\t\t\tgotoEnd = clearQueue;\n\t\t\t\tclearQueue = type;\n\t\t\t\ttype = undefined;\n\t\t\t}\n\t\t\tif ( clearQueue && type !== false ) {\n\t\t\t\tthis.queue( type || \"fx\", [] );\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\tvar dequeue = true,\n\t\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\t\ttimers = jQuery.timers,\n\t\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\t\tif ( index ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor ( index in data ) {\n\t\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\t\tdequeue = false;\n\t\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\tfinish: function( type ) {\n\t\t\tif ( type !== false ) {\n\t\t\t\ttype = type || \"fx\";\n\t\t\t}\n\t\t\treturn this.each( function() {\n\t\t\t\tvar index,\n\t\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\t\ttimers = jQuery.timers,\n\t\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t\t// Enable finishing flag on private data\n\t\t\t\tdata.finish = true;\n\n\t\t\t\t// Empty the queue first\n\t\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\t\thooks.stop.call( this, true );\n\t\t\t\t}\n\n\t\t\t\t// Look for any active animations, and finish them\n\t\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Look for any animations in the old queue and finish them\n\t\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Turn off finishing flag\n\t\t\t\tdelete data.finish;\n\t\t\t} );\n\t\t}\n\t} );\n\n\tjQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\t\tvar cssFn = jQuery.fn[ name ];\n\t\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\t\tcssFn.apply( this, arguments ) :\n\t\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t\t};\n\t} );\n\n\t// Generate shortcuts for custom animations\n\tjQuery.each( {\n\t\tslideDown: genFx( \"show\" ),\n\t\tslideUp: genFx( \"hide\" ),\n\t\tslideToggle: genFx( \"toggle\" ),\n\t\tfadeIn: { opacity: \"show\" },\n\t\tfadeOut: { opacity: \"hide\" },\n\t\tfadeToggle: { opacity: \"toggle\" }\n\t}, function( name, props ) {\n\t\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\t\treturn this.animate( props, speed, easing, callback );\n\t\t};\n\t} );\n\n\tjQuery.timers = [];\n\tjQuery.fx.tick = function() {\n\t\tvar timer,\n\t\t\ti = 0,\n\t\t\ttimers = jQuery.timers;\n\n\t\tfxNow = Date.now();\n\n\t\tfor ( ; i < timers.length; i++ ) {\n\t\t\ttimer = timers[ i ];\n\n\t\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\t\ttimers.splice( i--, 1 );\n\t\t\t}\n\t\t}\n\n\t\tif ( !timers.length ) {\n\t\t\tjQuery.fx.stop();\n\t\t}\n\t\tfxNow = undefined;\n\t};\n\n\tjQuery.fx.timer = function( timer ) {\n\t\tjQuery.timers.push( timer );\n\t\tjQuery.fx.start();\n\t};\n\n\tjQuery.fx.interval = 13;\n\tjQuery.fx.start = function() {\n\t\tif ( inProgress ) {\n\t\t\treturn;\n\t\t}\n\n\t\tinProgress = true;\n\t\tschedule();\n\t};\n\n\tjQuery.fx.stop = function() {\n\t\tinProgress = null;\n\t};\n\n\tjQuery.fx.speeds = {\n\t\tslow: 600,\n\t\tfast: 200,\n\n\t\t// Default speed\n\t\t_default: 400\n\t};\n\n\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\tjQuery.fn.delay = function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || \"fx\";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = window.setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\twindow.clearTimeout( timeout );\n\t\t\t};\n\t\t} );\n\t};\n\n\n\t( function() {\n\t\tvar input = document.createElement( \"input\" ),\n\t\t\tselect = document.createElement( \"select\" ),\n\t\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\t\tinput.type = \"checkbox\";\n\n\t\t// Support: Android <=4.3 only\n\t\t// Default value for a checkbox should be \"on\"\n\t\tsupport.checkOn = input.value !== \"\";\n\n\t\t// Support: IE <=11 only\n\t\t// Must access selectedIndex to make default options select\n\t\tsupport.optSelected = opt.selected;\n\n\t\t// Support: IE <=11 only\n\t\t// An input loses its value after becoming a radio\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.value = \"t\";\n\t\tinput.type = \"radio\";\n\t\tsupport.radioValue = input.value === \"t\";\n\t} )();\n\n\n\tvar boolHook,\n\t\tattrHandle = jQuery.expr.attrHandle;\n\n\tjQuery.fn.extend( {\n\t\tattr: function( name, value ) {\n\t\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t\t},\n\n\t\tremoveAttr: function( name ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tjQuery.removeAttr( this, name );\n\t\t\t} );\n\t\t}\n\t} );\n\n\tjQuery.extend( {\n\t\tattr: function( elem, name, value ) {\n\t\t\tvar ret, hooks,\n\t\t\t\tnType = elem.nodeType;\n\n\t\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Fallback to prop when attributes are not supported\n\t\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\t\treturn jQuery.prop( elem, name, value );\n\t\t\t}\n\n\t\t\t// Attribute hooks are determined by the lowercase version\n\t\t\t// Grab necessary hook if one is defined\n\t\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t\t}\n\n\t\t\tif ( value !== undefined ) {\n\t\t\t\tif ( value === null ) {\n\t\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ? undefined : ret;\n\t\t},\n\n\t\tattrHooks: {\n\t\t\ttype: {\n\t\t\t\tset: function( elem, value ) {\n\t\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tremoveAttr: function( elem, value ) {\n\t\t\tvar name,\n\t\t\t\ti = 0,\n\n\t\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\t\telem.removeAttribute( name );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\t// Hooks for boolean attributes\n\tboolHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( value === false ) {\n\n\t\t\t\t// Remove boolean attributes when set to false\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, name );\n\t\t\t}\n\t\t\treturn name;\n\t\t}\n\t};\n\n\tjQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\t\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\t\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\t\tvar ret, handle,\n\t\t\t\tlowercaseName = name.toLowerCase();\n\n\t\t\tif ( !isXML ) {\n\n\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\t\tlowercaseName :\n\t\t\t\t\tnull;\n\t\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t\t}\n\t\t\treturn ret;\n\t\t};\n\t} );\n\n\n\n\n\tvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\t\trclickable = /^(?:a|area)$/i;\n\n\tjQuery.fn.extend( {\n\t\tprop: function( name, value ) {\n\t\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t\t},\n\n\t\tremoveProp: function( name ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t\t} );\n\t\t}\n\t} );\n\n\tjQuery.extend( {\n\t\tprop: function( elem, name, value ) {\n\t\t\tvar ret, hooks,\n\t\t\t\tnType = elem.nodeType;\n\n\t\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t\t// Fix name and attach hooks\n\t\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\t\thooks = jQuery.propHooks[ name ];\n\t\t\t}\n\n\t\t\tif ( value !== undefined ) {\n\t\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\treturn ( elem[ name ] = value );\n\t\t\t}\n\n\t\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn elem[ name ];\n\t\t},\n\n\t\tpropHooks: {\n\t\t\ttabIndex: {\n\t\t\t\tget: function( elem ) {\n\n\t\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\t\tif ( tabindex ) {\n\t\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\t\telem.href\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tpropFix: {\n\t\t\t\"for\": \"htmlFor\",\n\t\t\t\"class\": \"className\"\n\t\t}\n\t} );\n\n\t// Support: IE <=11 only\n\t// Accessing the selectedIndex property\n\t// forces the browser to respect setting selected\n\t// on the option\n\t// The getter ensures a default option is selected\n\t// when in an optgroup\n\t// eslint rule \"no-unused-expressions\" is disabled for this code\n\t// since it considers such accessions noop\n\tif ( !support.optSelected ) {\n\t\tjQuery.propHooks.selected = {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\t\tvar parent = elem.parentNode;\n\t\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tset: function( elem ) {\n\n\t\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\t\tvar parent = elem.parentNode;\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tjQuery.each( [\n\t\t\"tabIndex\",\n\t\t\"readOnly\",\n\t\t\"maxLength\",\n\t\t\"cellSpacing\",\n\t\t\"cellPadding\",\n\t\t\"rowSpan\",\n\t\t\"colSpan\",\n\t\t\"useMap\",\n\t\t\"frameBorder\",\n\t\t\"contentEditable\"\n\t], function() {\n\t\tjQuery.propFix[ this.toLowerCase() ] = this;\n\t} );\n\n\n\n\n\t\t// Strip and collapse whitespace according to HTML spec\n\t\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\t\tfunction stripAndCollapse( value ) {\n\t\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\t\treturn tokens.join( \" \" );\n\t\t}\n\n\n\tfunction getClass( elem ) {\n\t\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n\t}\n\n\tfunction classesToArray( value ) {\n\t\tif ( Array.isArray( value ) ) {\n\t\t\treturn value;\n\t\t}\n\t\tif ( typeof value === \"string\" ) {\n\t\t\treturn value.match( rnothtmlwhite ) || [];\n\t\t}\n\t\treturn [];\n\t}\n\n\tjQuery.fn.extend( {\n\t\taddClass: function( value ) {\n\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\t\ti = 0;\n\n\t\t\tif ( isFunction( value ) ) {\n\t\t\t\treturn this.each( function( j ) {\n\t\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tclasses = classesToArray( value );\n\n\t\t\tif ( classes.length ) {\n\t\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\t\tcurValue = getClass( elem );\n\t\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\t\tif ( cur ) {\n\t\t\t\t\t\tj = 0;\n\t\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremoveClass: function( value ) {\n\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\t\ti = 0;\n\n\t\t\tif ( isFunction( value ) ) {\n\t\t\t\treturn this.each( function( j ) {\n\t\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( !arguments.length ) {\n\t\t\t\treturn this.attr( \"class\", \"\" );\n\t\t\t}\n\n\t\t\tclasses = classesToArray( value );\n\n\t\t\tif ( classes.length ) {\n\t\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\t\tif ( cur ) {\n\t\t\t\t\t\tj = 0;\n\t\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\ttoggleClass: function( value, stateVal ) {\n\t\t\tvar type = typeof value,\n\t\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t\t}\n\n\t\t\tif ( isFunction( value ) ) {\n\t\t\t\treturn this.each( function( i ) {\n\t\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\t\tstateVal\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\tvar className, i, self, classNames;\n\n\t\t\t\tif ( isValidValue ) {\n\n\t\t\t\t\t// Toggle individual class names\n\t\t\t\t\ti = 0;\n\t\t\t\t\tself = jQuery( this );\n\t\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Toggle whole class name\n\t\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\t\tclassName = getClass( this );\n\t\t\t\t\tif ( className ) {\n\n\t\t\t\t\t\t// Store className if set\n\t\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\thasClass: function( selector ) {\n\t\t\tvar className, elem,\n\t\t\t\ti = 0;\n\n\t\t\tclassName = \" \" + selector + \" \";\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\t} );\n\n\n\n\n\tvar rreturn = /\\r/g;\n\n\tjQuery.fn.extend( {\n\t\tval: function( value ) {\n\t\t\tvar hooks, ret, valueIsFunction,\n\t\t\t\telem = this[ 0 ];\n\n\t\t\tif ( !arguments.length ) {\n\t\t\t\tif ( elem ) {\n\t\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\t\tif ( hooks &&\n\t\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\n\t\t\t\t\tret = elem.value;\n\n\t\t\t\t\t// Handle most common string cases\n\t\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvalueIsFunction = isFunction( value );\n\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tvar val;\n\n\t\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( valueIsFunction ) {\n\t\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t\t} else {\n\t\t\t\t\tval = value;\n\t\t\t\t}\n\n\t\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\t\tif ( val == null ) {\n\t\t\t\t\tval = \"\";\n\n\t\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\t\tval += \"\";\n\n\t\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\t\tthis.value = val;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\n\tjQuery.extend( {\n\t\tvalHooks: {\n\t\t\toption: {\n\t\t\t\tget: function( elem ) {\n\n\t\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\t\treturn val != null ?\n\t\t\t\t\t\tval :\n\n\t\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t\t}\n\t\t\t},\n\t\t\tselect: {\n\t\t\t\tget: function( elem ) {\n\t\t\t\t\tvar value, option, i,\n\t\t\t\t\t\toptions = elem.options,\n\t\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\t\ti = max;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Loop through all the selected options\n\t\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn values;\n\t\t\t\t},\n\n\t\t\t\tset: function( elem, value ) {\n\t\t\t\t\tvar optionSet, option,\n\t\t\t\t\t\toptions = elem.options,\n\t\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\t\ti = options.length;\n\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t\t}\n\n\t\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t\t}\n\t\t\t\t\treturn values;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\t// Radios and checkboxes getter/setter\n\tjQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\t\tjQuery.valHooks[ this ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif ( !support.checkOn ) {\n\t\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t\t};\n\t\t}\n\t} );\n\n\n\n\n\t// Return jQuery for attributes-only inclusion\n\n\n\tsupport.focusin = \"onfocusin\" in window;\n\n\n\tvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\t\tstopPropagationCallback = function( e ) {\n\t\t\te.stopPropagation();\n\t\t};\n\n\tjQuery.extend( jQuery.event, {\n\n\t\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\t\teventPath = [ elem || document ],\n\t\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t\t// Don't do events on text and comment nodes\n\t\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\t\tnamespaces = type.split( \".\" );\n\t\t\t\ttype = namespaces.shift();\n\t\t\t\tnamespaces.sort();\n\t\t\t}\n\t\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\t\tevent = event[ jQuery.expando ] ?\n\t\t\t\tevent :\n\t\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\t\tevent.namespace = namespaces.join( \".\" );\n\t\t\tevent.rnamespace = event.namespace ?\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\t\tnull;\n\n\t\t\t// Clean up the event in case it is being reused\n\t\t\tevent.result = undefined;\n\t\t\tif ( !event.target ) {\n\t\t\t\tevent.target = elem;\n\t\t\t}\n\n\t\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\t\tdata = data == null ?\n\t\t\t\t[ event ] :\n\t\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t\t// Allow special events to draw outside the lines\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\t\tbubbleType = special.delegateType || type;\n\t\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\t\tcur = cur.parentNode;\n\t\t\t\t}\n\t\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\t\teventPath.push( cur );\n\t\t\t\t\ttmp = cur;\n\t\t\t\t}\n\n\t\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fire handlers on the event path\n\t\t\ti = 0;\n\t\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\t\tlastElement = cur;\n\t\t\t\tevent.type = i > 1 ?\n\t\t\t\t\tbubbleType :\n\t\t\t\t\tspecial.bindType || type;\n\n\t\t\t\t// jQuery handler\n\t\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\t\tif ( handle ) {\n\t\t\t\t\thandle.apply( cur, data );\n\t\t\t\t}\n\n\t\t\t\t// Native handler\n\t\t\t\thandle = ontype && cur[ ontype ];\n\t\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tevent.type = type;\n\n\t\t\t// If nobody prevented the default action, do it now\n\t\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\t\tif ( ( !special._default ||\n\t\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn event.result;\n\t\t},\n\n\t\t// Piggyback on a donor event to simulate a different one\n\t\t// Used only for `focus(in | out)` events\n\t\tsimulate: function( type, elem, event ) {\n\t\t\tvar e = jQuery.extend(\n\t\t\t\tnew jQuery.Event(),\n\t\t\t\tevent,\n\t\t\t\t{\n\t\t\t\t\ttype: type,\n\t\t\t\t\tisSimulated: true\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t}\n\n\t} );\n\n\tjQuery.fn.extend( {\n\n\t\ttrigger: function( type, data ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tjQuery.event.trigger( type, data, this );\n\t\t\t} );\n\t\t},\n\t\ttriggerHandler: function( type, data ) {\n\t\t\tvar elem = this[ 0 ];\n\t\t\tif ( elem ) {\n\t\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t\t}\n\t\t}\n\t} );\n\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\tif ( !support.focusin ) {\n\t\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t\t};\n\n\t\t\tjQuery.event.special[ fix ] = {\n\t\t\t\tsetup: function() {\n\t\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\t\tif ( !attaches ) {\n\t\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t\t},\n\t\t\t\tteardown: function() {\n\t\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\t\tif ( !attaches ) {\n\t\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t} );\n\t}\n\tvar location = window.location;\n\n\tvar nonce = Date.now();\n\n\tvar rquery = ( /\\?/ );\n\n\n\n\t// Cross-browser xml parsing\n\tjQuery.parseXML = function( data ) {\n\t\tvar xml;\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only\n\t\t// IE throws on parseFromString with invalid input.\n\t\ttry {\n\t\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t\t} catch ( e ) {\n\t\t\txml = undefined;\n\t\t}\n\n\t\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\t\tjQuery.error( \"Invalid XML: \" + data );\n\t\t}\n\t\treturn xml;\n\t};\n\n\n\tvar\n\t\trbracket = /\\[\\]$/,\n\t\trCRLF = /\\r?\\n/g,\n\t\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\t\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n\tfunction buildParams( prefix, obj, traditional, add ) {\n\t\tvar name;\n\n\t\tif ( Array.isArray( obj ) ) {\n\n\t\t\t// Serialize array item.\n\t\t\tjQuery.each( obj, function( i, v ) {\n\t\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\t\tadd( prefix, v );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\t\tbuildParams(\n\t\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\t\tv,\n\t\t\t\t\t\ttraditional,\n\t\t\t\t\t\tadd\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t\t// Serialize object item.\n\t\t\tfor ( name in obj ) {\n\t\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Serialize scalar item.\n\t\t\tadd( prefix, obj );\n\t\t}\n\t}\n\n\t// Serialize an array of form elements or a set of\n\t// key/values into a query string\n\tjQuery.param = function( a, traditional ) {\n\t\tvar prefix,\n\t\t\ts = [],\n\t\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t\t// If value is a function, invoke it and use its return value\n\t\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\t\tvalueOrFunction() :\n\t\t\t\t\tvalueOrFunction;\n\n\t\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t\t};\n\n\t\t// If an array was passed in, assume that it is an array of form elements.\n\t\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t\t// Serialize the form elements\n\t\t\tjQuery.each( a, function() {\n\t\t\t\tadd( this.name, this.value );\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t\t// did it), otherwise encode params recursively.\n\t\t\tfor ( prefix in a ) {\n\t\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t\t}\n\t\t}\n\n\t\t// Return the resulting serialization\n\t\treturn s.join( \"&\" );\n\t};\n\n\tjQuery.fn.extend( {\n\t\tserialize: function() {\n\t\t\treturn jQuery.param( this.serializeArray() );\n\t\t},\n\t\tserializeArray: function() {\n\t\t\treturn this.map( function() {\n\n\t\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t\t} )\n\t\t\t.filter( function() {\n\t\t\t\tvar type = this.type;\n\n\t\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t\t} )\n\t\t\t.map( function( i, elem ) {\n\t\t\t\tvar val = jQuery( this ).val();\n\n\t\t\t\tif ( val == null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t} ).get();\n\t\t}\n\t} );\n\n\n\tvar\n\t\tr20 = /%20/g,\n\t\trhash = /#.*$/,\n\t\trantiCache = /([?&])_=[^&]*/,\n\t\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t\t// #7653, #8125, #8152: local protocol detection\n\t\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\t\trnoContent = /^(?:GET|HEAD)$/,\n\t\trprotocol = /^\\/\\//,\n\n\t\t/* Prefilters\n\t\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t\t * 2) These are called:\n\t\t * - BEFORE asking for a transport\n\t\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t\t * 3) key is the dataType\n\t\t * 4) the catchall symbol \"*\" can be used\n\t\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t\t */\n\t\tprefilters = {},\n\n\t\t/* Transports bindings\n\t\t * 1) key is the dataType\n\t\t * 2) the catchall symbol \"*\" can be used\n\t\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t\t */\n\t\ttransports = {},\n\n\t\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\t\tallTypes = \"*/\".concat( \"*\" ),\n\n\t\t// Anchor tag for parsing the document origin\n\t\toriginAnchor = document.createElement( \"a\" );\n\t\toriginAnchor.href = location.href;\n\n\t// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\tfunction addToPrefiltersOrTransports( structure ) {\n\n\t\t// dataTypeExpression is optional and defaults to \"*\"\n\t\treturn function( dataTypeExpression, func ) {\n\n\t\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\t\tfunc = dataTypeExpression;\n\t\t\t\tdataTypeExpression = \"*\";\n\t\t\t}\n\n\t\t\tvar dataType,\n\t\t\t\ti = 0,\n\t\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\t\tif ( isFunction( func ) ) {\n\n\t\t\t\t// For each dataType in the dataTypeExpression\n\t\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t\t// Prepend if requested\n\t\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t\t// Otherwise append\n\t\t\t\t\t} else {\n\t\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t// Base inspection function for prefilters and transports\n\tfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\t\tvar inspected = {},\n\t\t\tseekingTransport = ( structure === transports );\n\n\t\tfunction inspect( dataType ) {\n\t\t\tvar selected;\n\t\t\tinspected[ dataType ] = true;\n\t\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\t\treturn false;\n\t\t\t\t} else if ( seekingTransport ) {\n\t\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn selected;\n\t\t}\n\n\t\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n\t}\n\n\t// A special extend for ajax options\n\t// that takes \"flat\" options (not to be deep extended)\n\t// Fixes #9887\n\tfunction ajaxExtend( target, src ) {\n\t\tvar key, deep,\n\t\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\t\tfor ( key in src ) {\n\t\t\tif ( src[ key ] !== undefined ) {\n\t\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t\t}\n\t\t}\n\t\tif ( deep ) {\n\t\t\tjQuery.extend( true, target, deep );\n\t\t}\n\n\t\treturn target;\n\t}\n\n\t/* Handles responses to an ajax request:\n\t * - finds the right dataType (mediates between content-type and expected dataType)\n\t * - returns the corresponding response\n\t */\n\tfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\t\tvar ct, type, finalDataType, firstDataType,\n\t\t\tcontents = s.contents,\n\t\t\tdataTypes = s.dataTypes;\n\n\t\t// Remove auto dataType and get content-type in the process\n\t\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\t\tdataTypes.shift();\n\t\t\tif ( ct === undefined ) {\n\t\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t\t}\n\t\t}\n\n\t\t// Check if we're dealing with a known content-type\n\t\tif ( ct ) {\n\t\t\tfor ( type in contents ) {\n\t\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\t\tdataTypes.unshift( type );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check to see if we have a response for the expected dataType\n\t\tif ( dataTypes[ 0 ] in responses ) {\n\t\t\tfinalDataType = dataTypes[ 0 ];\n\t\t} else {\n\n\t\t\t// Try convertible dataTypes\n\t\t\tfor ( type in responses ) {\n\t\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\t\tfinalDataType = type;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( !firstDataType ) {\n\t\t\t\t\tfirstDataType = type;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Or just use first one\n\t\t\tfinalDataType = finalDataType || firstDataType;\n\t\t}\n\n\t\t// If we found a dataType\n\t\t// We add the dataType to the list if needed\n\t\t// and return the corresponding response\n\t\tif ( finalDataType ) {\n\t\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\t\tdataTypes.unshift( finalDataType );\n\t\t\t}\n\t\t\treturn responses[ finalDataType ];\n\t\t}\n\t}\n\n\t/* Chain conversions given the request and the original response\n\t * Also sets the responseXXX fields on the jqXHR instance\n\t */\n\tfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\t\tvar conv2, current, conv, tmp, prev,\n\t\t\tconverters = {},\n\n\t\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\t\tdataTypes = s.dataTypes.slice();\n\n\t\t// Create converters map with lowercased keys\n\t\tif ( dataTypes[ 1 ] ) {\n\t\t\tfor ( conv in s.converters ) {\n\t\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t\t}\n\t\t}\n\n\t\tcurrent = dataTypes.shift();\n\n\t\t// Convert to each sequential dataType\n\t\twhile ( current ) {\n\n\t\t\tif ( s.responseFields[ current ] ) {\n\t\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t\t}\n\n\t\t\t// Apply the dataFilter if provided\n\t\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t\t}\n\n\t\t\tprev = current;\n\t\t\tcurrent = dataTypes.shift();\n\n\t\t\tif ( current ) {\n\n\t\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\t\tcurrent = prev;\n\n\t\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t\t// Seek a direct converter\n\t\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t\t// If none found, seek a pair\n\t\t\t\t\tif ( !conv ) {\n\t\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { state: \"success\", data: response };\n\t}\n\n\tjQuery.extend( {\n\n\t\t// Counter for holding the number of active queries\n\t\tactive: 0,\n\n\t\t// Last-Modified header cache for next request\n\t\tlastModified: {},\n\t\tetag: {},\n\n\t\tajaxSettings: {\n\t\t\turl: location.href,\n\t\t\ttype: \"GET\",\n\t\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\t\tglobal: true,\n\t\t\tprocessData: true,\n\t\t\tasync: true,\n\t\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t\t/*\n\t\t\ttimeout: 0,\n\t\t\tdata: null,\n\t\t\tdataType: null,\n\t\t\tusername: null,\n\t\t\tpassword: null,\n\t\t\tcache: null,\n\t\t\tthrows: false,\n\t\t\ttraditional: false,\n\t\t\theaders: {},\n\t\t\t*/\n\n\t\t\taccepts: {\n\t\t\t\t\"*\": allTypes,\n\t\t\t\ttext: \"text/plain\",\n\t\t\t\thtml: \"text/html\",\n\t\t\t\txml: \"application/xml, text/xml\",\n\t\t\t\tjson: \"application/json, text/javascript\"\n\t\t\t},\n\n\t\t\tcontents: {\n\t\t\t\txml: /\\bxml\\b/,\n\t\t\t\thtml: /\\bhtml/,\n\t\t\t\tjson: /\\bjson\\b/\n\t\t\t},\n\n\t\t\tresponseFields: {\n\t\t\t\txml: \"responseXML\",\n\t\t\t\ttext: \"responseText\",\n\t\t\t\tjson: \"responseJSON\"\n\t\t\t},\n\n\t\t\t// Data converters\n\t\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\t\tconverters: {\n\n\t\t\t\t// Convert anything to text\n\t\t\t\t\"* text\": String,\n\n\t\t\t\t// Text to html (true = no transformation)\n\t\t\t\t\"text html\": true,\n\n\t\t\t\t// Evaluate text as a json expression\n\t\t\t\t\"text json\": JSON.parse,\n\n\t\t\t\t// Parse text as xml\n\t\t\t\t\"text xml\": jQuery.parseXML\n\t\t\t},\n\n\t\t\t// For options that shouldn't be deep extended:\n\t\t\t// you can add your own custom options here if\n\t\t\t// and when you create one that shouldn't be\n\t\t\t// deep extended (see ajaxExtend)\n\t\t\tflatOptions: {\n\t\t\t\turl: true,\n\t\t\t\tcontext: true\n\t\t\t}\n\t\t},\n\n\t\t// Creates a full fledged settings object into target\n\t\t// with both ajaxSettings and settings fields.\n\t\t// If target is omitted, writes into ajaxSettings.\n\t\tajaxSetup: function( target, settings ) {\n\t\t\treturn settings ?\n\n\t\t\t\t// Building a settings object\n\t\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t\t// Extending ajaxSettings\n\t\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t\t},\n\n\t\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\t\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t\t// Main method\n\t\tajax: function( url, options ) {\n\n\t\t\t// If url is an object, simulate pre-1.5 signature\n\t\t\tif ( typeof url === \"object\" ) {\n\t\t\t\toptions = url;\n\t\t\t\turl = undefined;\n\t\t\t}\n\n\t\t\t// Force options to be an object\n\t\t\toptions = options || {};\n\n\t\t\tvar transport,\n\n\t\t\t\t// URL without anti-cache param\n\t\t\t\tcacheURL,\n\n\t\t\t\t// Response headers\n\t\t\t\tresponseHeadersString,\n\t\t\t\tresponseHeaders,\n\n\t\t\t\t// timeout handle\n\t\t\t\ttimeoutTimer,\n\n\t\t\t\t// Url cleanup var\n\t\t\t\turlAnchor,\n\n\t\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\t\tcompleted,\n\n\t\t\t\t// To know if global events are to be dispatched\n\t\t\t\tfireGlobals,\n\n\t\t\t\t// Loop variable\n\t\t\t\ti,\n\n\t\t\t\t// uncached part of the url\n\t\t\t\tuncached,\n\n\t\t\t\t// Create the final options object\n\t\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t\t// Callbacks context\n\t\t\t\tcallbackContext = s.context || s,\n\n\t\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\t\tglobalEventContext = s.context &&\n\t\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\t\tjQuery.event,\n\n\t\t\t\t// Deferreds\n\t\t\t\tdeferred = jQuery.Deferred(),\n\t\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t\t// Headers (they are sent all at once)\n\t\t\t\trequestHeaders = {},\n\t\t\t\trequestHeadersNames = {},\n\n\t\t\t\t// Default abort message\n\t\t\t\tstrAbort = \"canceled\",\n\n\t\t\t\t// Fake xhr\n\t\t\t\tjqXHR = {\n\t\t\t\t\treadyState: 0,\n\n\t\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\t\tvar match;\n\t\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Raw string\n\t\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Caches the header\n\t\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Overrides response content-type header\n\t\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Status-dependent callbacks\n\t\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\t\tvar code;\n\t\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Cancel the request\n\t\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t// Attach deferreds\n\t\t\tdeferred.promise( jqXHR );\n\n\t\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t\t// We also use the url parameter if available\n\t\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t\t// Alias method option to type as per ticket #12004\n\t\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t\t// Extract dataTypes list\n\t\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\t\tif ( s.crossDomain == null ) {\n\t\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t\t// e.g. http://example.com:80x/\n\t\t\t\ttry {\n\t\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\t\ts.crossDomain = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Convert data if not already a string\n\t\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t\t}\n\n\t\t\t// Apply prefilters\n\t\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t\t// If request was aborted inside a prefilter, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// We can fire global events as of now if asked to\n\t\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t\t// Watch for a new set of requests\n\t\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t\t}\n\n\t\t\t// Uppercase the type\n\t\t\ts.type = s.type.toUpperCase();\n\n\t\t\t// Determine if request has content\n\t\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t\t// and/or If-None-Match header later on\n\t\t\t// Remove hash to simplify url manipulation\n\t\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t\t// More options handling for requests with no content\n\t\t\tif ( !s.hasContent ) {\n\n\t\t\t\t// Remember the hash so we can put it back\n\t\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t\t// If data is available and should be processed, append data to url\n\t\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\t\tdelete s.data;\n\t\t\t\t}\n\n\t\t\t\t// Add or update anti-cache param if needed\n\t\t\t\tif ( s.cache === false ) {\n\t\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t\t}\n\n\t\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\t\ts.url = cacheURL + uncached;\n\n\t\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t\t} else if ( s.data && s.processData &&\n\t\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t\t}\n\n\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\tif ( s.ifModified ) {\n\t\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t\t}\n\t\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set the correct header, if data is being sent\n\t\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t\t}\n\n\t\t\t// Set the Accepts header for the server, depending on the dataType\n\t\t\tjqXHR.setRequestHeader(\n\t\t\t\t\"Accept\",\n\t\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\t\ts.accepts[ \"*\" ]\n\t\t\t);\n\n\t\t\t// Check for headers option\n\t\t\tfor ( i in s.headers ) {\n\t\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t\t}\n\n\t\t\t// Allow custom headers/mimetypes and early abort\n\t\t\tif ( s.beforeSend &&\n\t\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t\t// Abort if not done already and return\n\t\t\t\treturn jqXHR.abort();\n\t\t\t}\n\n\t\t\t// Aborting is no longer a cancellation\n\t\t\tstrAbort = \"abort\";\n\n\t\t\t// Install callbacks on deferreds\n\t\t\tcompleteDeferred.add( s.complete );\n\t\t\tjqXHR.done( s.success );\n\t\t\tjqXHR.fail( s.error );\n\n\t\t\t// Get transport\n\t\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t\t// If no transport, we auto-abort\n\t\t\tif ( !transport ) {\n\t\t\t\tdone( -1, \"No Transport\" );\n\t\t\t} else {\n\t\t\t\tjqXHR.readyState = 1;\n\n\t\t\t\t// Send global event\n\t\t\t\tif ( fireGlobals ) {\n\t\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t\t}\n\n\t\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\t\tif ( completed ) {\n\t\t\t\t\treturn jqXHR;\n\t\t\t\t}\n\n\t\t\t\t// Timeout\n\t\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t\t}, s.timeout );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tcompleted = false;\n\t\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Propagate others as results\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Callback for when everything is done\n\t\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t\t// Ignore repeat invocations\n\t\t\t\tif ( completed ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcompleted = true;\n\n\t\t\t\t// Clear timeout if it exists\n\t\t\t\tif ( timeoutTimer ) {\n\t\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t\t}\n\n\t\t\t\t// Dereference transport for early garbage collection\n\t\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\t\ttransport = undefined;\n\n\t\t\t\t// Cache response headers\n\t\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t\t// Set readyState\n\t\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t\t// Determine if successful\n\t\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t\t// Get response data\n\t\t\t\tif ( responses ) {\n\t\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t\t}\n\n\t\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t\t// If successful, handle type chaining\n\t\t\t\tif ( isSuccess ) {\n\n\t\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// if no content\n\t\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t\t// if not modified\n\t\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t\t// If we have data, let's convert it\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\t\terror = response.error;\n\t\t\t\t\t\tisSuccess = !error;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\n\t\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\t\terror = statusText;\n\t\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Set data for the fake xhr object\n\t\t\t\tjqXHR.status = status;\n\t\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t\t// Success/Error\n\t\t\t\tif ( isSuccess ) {\n\t\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t\t}\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tjqXHR.statusCode( statusCode );\n\t\t\t\tstatusCode = undefined;\n\n\t\t\t\tif ( fireGlobals ) {\n\t\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t\t}\n\n\t\t\t\t// Complete\n\t\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\t\tif ( fireGlobals ) {\n\t\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t\t// Handle the global AJAX counter\n\t\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn jqXHR;\n\t\t},\n\n\t\tgetJSON: function( url, data, callback ) {\n\t\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t\t},\n\n\t\tgetScript: function( url, callback ) {\n\t\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t\t}\n\t} );\n\n\tjQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\t\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t\t// Shift arguments if data argument was omitted\n\t\t\tif ( isFunction( data ) ) {\n\t\t\t\ttype = type || callback;\n\t\t\t\tcallback = data;\n\t\t\t\tdata = undefined;\n\t\t\t}\n\n\t\t\t// The url can be an options object (which then must have .url)\n\t\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\t\turl: url,\n\t\t\t\ttype: method,\n\t\t\t\tdataType: type,\n\t\t\t\tdata: data,\n\t\t\t\tsuccess: callback\n\t\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t\t};\n\t} );\n\n\n\tjQuery._evalUrl = function( url ) {\n\t\treturn jQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\t\ttype: \"GET\",\n\t\t\tdataType: \"script\",\n\t\t\tcache: true,\n\t\t\tasync: false,\n\t\t\tglobal: false,\n\t\t\t\"throws\": true\n\t\t} );\n\t};\n\n\n\tjQuery.fn.extend( {\n\t\twrapAll: function( html ) {\n\t\t\tvar wrap;\n\n\t\t\tif ( this[ 0 ] ) {\n\t\t\t\tif ( isFunction( html ) ) {\n\t\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// The elements to wrap the target around\n\t\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\twrap.map( function() {\n\t\t\t\t\tvar elem = this;\n\n\t\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn elem;\n\t\t\t\t} ).append( this );\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\twrapInner: function( html ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\treturn this.each( function( i ) {\n\t\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\tvar self = jQuery( this ),\n\t\t\t\t\tcontents = self.contents();\n\n\t\t\t\tif ( contents.length ) {\n\t\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t\t} else {\n\t\t\t\t\tself.append( html );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\twrap: function( html ) {\n\t\t\tvar htmlIsFunction = isFunction( html );\n\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t\t} );\n\t\t},\n\n\t\tunwrap: function( selector ) {\n\t\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t} );\n\t\t\treturn this;\n\t\t}\n\t} );\n\n\n\tjQuery.expr.pseudos.hidden = function( elem ) {\n\t\treturn !jQuery.expr.pseudos.visible( elem );\n\t};\n\tjQuery.expr.pseudos.visible = function( elem ) {\n\t\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n\t};\n\n\n\n\n\tjQuery.ajaxSettings.xhr = function() {\n\t\ttry {\n\t\t\treturn new window.XMLHttpRequest();\n\t\t} catch ( e ) {}\n\t};\n\n\tvar xhrSuccessStatus = {\n\n\t\t\t// File protocol always yields status code 0, assume 200\n\t\t\t0: 200,\n\n\t\t\t// Support: IE <=9 only\n\t\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t\t1223: 204\n\t\t},\n\t\txhrSupported = jQuery.ajaxSettings.xhr();\n\n\tsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\n\tsupport.ajax = xhrSupported = !!xhrSupported;\n\n\tjQuery.ajaxTransport( function( options ) {\n\t\tvar callback, errorCallback;\n\n\t\t// Cross domain only allowed if supported through XMLHttpRequest\n\t\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\t\treturn {\n\t\t\t\tsend: function( headers, complete ) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\t\txhr.open(\n\t\t\t\t\t\toptions.type,\n\t\t\t\t\t\toptions.url,\n\t\t\t\t\t\toptions.async,\n\t\t\t\t\t\toptions.username,\n\t\t\t\t\t\toptions.password\n\t\t\t\t\t);\n\n\t\t\t\t\t// Apply custom fields if provided\n\t\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mime type if needed\n\t\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t\t}\n\n\t\t\t\t\t// X-Requested-With header\n\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set headers\n\t\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Callback\n\t\t\t\t\tcallback = function( type ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\n\t\t\t\t\t// Listen to events\n\t\t\t\t\txhr.onload = callback();\n\t\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t\t// to handle uncaught aborts\n\t\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t\t} else {\n\t\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create the abort callback\n\t\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tabort: function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} );\n\n\n\n\n\t// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\tjQuery.ajaxPrefilter( function( s ) {\n\t\tif ( s.crossDomain ) {\n\t\t\ts.contents.script = false;\n\t\t}\n\t} );\n\n\t// Install script dataType\n\tjQuery.ajaxSetup( {\n\t\taccepts: {\n\t\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t\t},\n\t\tcontents: {\n\t\t\tscript: /\\b(?:java|ecma)script\\b/\n\t\t},\n\t\tconverters: {\n\t\t\t\"text script\": function( text ) {\n\t\t\t\tjQuery.globalEval( text );\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t} );\n\n\t// Handle cache's special case and crossDomain\n\tjQuery.ajaxPrefilter( \"script\", function( s ) {\n\t\tif ( s.cache === undefined ) {\n\t\t\ts.cache = false;\n\t\t}\n\t\tif ( s.crossDomain ) {\n\t\t\ts.type = \"GET\";\n\t\t}\n\t} );\n\n\t// Bind script tag hack transport\n\tjQuery.ajaxTransport( \"script\", function( s ) {\n\n\t\t// This transport only deals with cross domain requests\n\t\tif ( s.crossDomain ) {\n\t\t\tvar script, callback;\n\t\t\treturn {\n\t\t\t\tsend: function( _, complete ) {\n\t\t\t\t\tscript = jQuery( \" + <%# Extra content needed by the current markdown processor (e.g. custom CSS) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_head_tag(:epub) %> + <%# Extra content specified by the user (e.g. custom CSS) %> + <%= config.before_closing_head_tag.(:epub) %> + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/media-types.txt b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/media-types.txt new file mode 100644 index 00000000..33a88f8d --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/media-types.txt @@ -0,0 +1,18 @@ +gif,image/gif +jpg,image/jpeg +jpeg,image/jpeg +png,image/png +svg,image/svg+xml +xhtml,application/xhtml+xml +html,application/xhtml+xml +ncx,application/x-dtbncx+xml +otf,application/vnd.ms-opentype +ttf,application/vnd.ms-opentype +ttc,application/vnd.ms-opentype +eot,application/vnd.ms-opentype +woff,application/font-woff +opf,application/oebps-package+xml +mp3,audio/mpeg +mp4,video/mp4 +css,text/css +js,text/javascript diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/module_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/module_template.eex new file mode 100644 index 00000000..b6d4d98c --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -0,0 +1,78 @@ +<%= head_template(config, %{title: module.title}) %> +

    + <%= H.module_title(module) %> +

    + + <%= if module.doc do %> +
    + <%= H.to_html(module.doc, module) %> +
    + <% end %> + + <%= if Enum.any?(summary_map, fn {_, v} -> v != [] end) do %> +
    +

    + + + Anchor for this section + + Summary +

    + <%= H.summary_template "types", summary_map.types %> + <%= H.summary_template "functions", summary_map.functions %> + <%= H.summary_template "callbacks", summary_map.callbacks %> +
    + <% end %> + + <%= if summary_map.types != [] do %> +
    +

    + + + Anchor for this section + + Types +

    +
    + <%= for type_node <- summary_map.types do + H.detail_template(type_node, module) + end %> +
    +
    + <% end %> + + <%= if summary_map.functions != [] do %> +
    +

    + + + Anchor for this section + + Functions +

    + <%= for function_node <- summary_map.functions do + H.detail_template(function_node, module) + end %> +
    + <% end %> + + <%= if summary_map.callbacks != [] do %> +
    +

    + + + Anchor for this section + + Callbacks +

    + <%= for callback_node <- summary_map.callbacks do + H.detail_template(callback_node, module) + end %> +
    + <% end %> + <%# Extra content needed by the current markdown processor (e.g. custom Javascript) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_body_tag(:epub) %> + <%# Extra content specified by the user (e.g. custom Javascript) %> + <%= config.before_closing_body_tag.(:epub) %> + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_item_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_item_template.eex new file mode 100644 index 00000000..17c00fc0 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_item_template.eex @@ -0,0 +1,9 @@ +<%= unless Enum.empty?(nodes) do %> +
  • <%= name %> +
      + <%= for node <- nodes do %> +
    1. <%= node.title %>
    2. + <% end %> +
    +
  • +<% end %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_template.eex new file mode 100644 index 00000000..f8c192e0 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/nav_template.eex @@ -0,0 +1,25 @@ +<%= head_template(config, %{title: "Table Of Contents"}) %> +

    Table of contents

    + + <%# Extra content needed by the current markdown processor (e.g. custom Javascript) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_body_tag(:epub) %> + <%# Extra content specified by the user (e.g. custom Javascript) %> + <%= config.before_closing_body_tag.(:epub) %> + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/title_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/title_template.eex new file mode 100644 index 00000000..36c73646 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/title_template.eex @@ -0,0 +1,14 @@ +<%= head_template(config, %{title: "Cover"}) %> +
    +

    <%= config.project %>

    +

    v<%= config.version %>

    + <%= if logo = config.logo do %> +
    Logo
    + <% end %> +
    + <%# Extra content needed by the current markdown processor (e.g. custom Javascipt) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_body_tag(:epub) %> + <%# Extra content specified by the user (e.g. custom Javascipt) %> + <%= config.before_closing_body_tag.(:epub) %> + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/toc_item_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/toc_item_template.eex new file mode 100644 index 00000000..232ec598 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/epub/templates/toc_item_template.eex @@ -0,0 +1,8 @@ +<%= for node <- nodes do %> + + + <%= node.id %> + + + +<% end %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html.ex new file mode 100644 index 00000000..b6bbfc08 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html.ex @@ -0,0 +1,326 @@ +defmodule ExDoc.Formatter.HTML do + @moduledoc """ + Generates HTML documentation for Elixir projects. + """ + + alias __MODULE__.{Assets, Autolink, Templates} + alias ExDoc.{Markdown, GroupMatcher} + + @main "api-reference" + + @doc """ + Generate HTML documentation for the given modules. + """ + @spec run(list, ExDoc.Config.t) :: String.t + def run(project_nodes, config) when is_map(config) do + config = normalize_config(config) + config = %{config | output: Path.expand(config.output)} + + build = Path.join(config.output, ".build") + output_setup(build, config) + linked = Autolink.all(project_nodes, ".html", config.deps) + + nodes_map = %{ + modules: filter_list(:module, linked), + exceptions: filter_list(:exception, linked), + tasks: filter_list(:task, linked) + } + + extras = + [build_api_reference(nodes_map, config) | + build_extras(project_nodes, config, ".html")] + + assets_dir = "assets" + static_files = generate_assets(config, assets_dir, default_assets(config)) + + generated_files = + generate_sidebar_items(nodes_map, extras, config) ++ + generate_extras(nodes_map, extras, config) ++ + generate_logo(assets_dir, config) ++ + generate_search(nodes_map, config) ++ + generate_not_found(nodes_map, config) ++ + generate_list(nodes_map.modules, nodes_map, config) ++ + generate_list(nodes_map.exceptions, nodes_map, config) ++ + generate_list(nodes_map.tasks, nodes_map, config) ++ + generate_index(config) + + generate_build(static_files ++ generated_files, build) + config.output |> Path.join("index.html") |> Path.relative_to_cwd() + end + + defp normalize_config(%{main: "index"}) do + raise ArgumentError, message: ~S("main" cannot be set to "index", otherwise it will recursively link to itself) + end + defp normalize_config(%{main: main} = config) do + %{config | main: main || @main} + end + + defp output_setup(build, config) do + if File.exists? build do + build + |> File.read! + |> String.split("\n", trim: true) + |> Enum.map(&Path.join(config.output, &1)) + |> Enum.each(&File.rm/1) + File.rm build + else + File.rm_rf! config.output + File.mkdir_p! config.output + end + end + + defp generate_build(files, build) do + entries = Enum.map(files, &[&1, "\n"]) + File.write!(build, entries) + end + + defp generate_index(config) do + index_file = "index.html" + main_file = "#{config.main}.html" + generate_redirect(index_file, config, main_file) + [index_file] + end + + defp generate_not_found(nodes_map, config) do + filename = "404.html" + config = set_canonical_url(config, filename) + content = Templates.not_found_template(config, nodes_map) + File.write!("#{config.output}/#{filename}", content) + [filename] + end + + defp generate_search(nodes_map, config) do + filename = "search.html" + config = set_canonical_url(config, filename) + content = Templates.search_template(config, nodes_map) + File.write!("#{config.output}/#{filename}", content) + [filename] + end + + defp generate_sidebar_items(nodes_map, extras, config) do + content = Templates.create_sidebar_items(nodes_map, extras) + + digest = + content + |> :erlang.md5 + |> Base.encode16(case: :lower) + |> binary_part(0, 10) + + sidebar_items = "dist/sidebar_items-#{digest}.js" + File.write!(Path.join(config.output, sidebar_items), content) + [sidebar_items] + end + + defp generate_extras(nodes_map, extras, config) do + Enum.map(extras, fn %{id: id, title: title, content: content} -> + filename = "#{id}.html" + output = "#{config.output}/#{filename}" + config = set_canonical_url(config, filename) + html = Templates.extra_template(config, title, nodes_map, content) + + if File.regular?(output) do + IO.puts :stderr, "warning: file #{Path.relative_to_cwd output} already exists" + end + File.write!(output, html) + filename + end) + end + + @doc false + def generate_assets(config, assets_dir, defaults) do + write_default_assets(config, defaults) ++ copy_assets(config, assets_dir) + end + + defp copy_assets(config, assets_dir) do + if path = config.assets do + path + |> Path.join("**/*") + |> Path.wildcard() + |> Enum.map(fn source -> + filename = Path.join(assets_dir, Path.relative_to(source, path)) + target = Path.join(config.output, filename) + File.mkdir(Path.dirname(target)) + File.copy(source, target) + filename + end) + else + [] + end + end + + defp write_default_assets(config, sources) do + Enum.flat_map(sources, fn {files, dir} -> + target_dir = Path.join(config.output, dir) + File.mkdir(target_dir) + Enum.map(files, fn {name, content} -> + target = Path.join(target_dir, name) + File.write(target, content) + Path.relative_to(target, config.output) + end) + end) + end + + defp default_assets(config) do + debug = if config.debug, do: [{Assets.debug(), "dist"}], else: [] + [{Assets.dist(), "dist"}, + {Assets.fonts(), "fonts"}, + {Assets.markdown_processor_assets(), ""} | debug] + end + + defp build_api_reference(nodes_map, config) do + api_reference = Templates.api_reference_template(config, nodes_map) + %{id: "api-reference", title: "API Reference", group: "", content: api_reference} + end + + @doc """ + Builds extra nodes by normalizing the config entries. + """ + def build_extras(project_nodes, config, extension) do + groups = config.groups_for_extras + + config.extras + |> Enum.map(&Task.async(fn -> + build_extra(&1, project_nodes, extension, groups) + end)) + |> Enum.map(&Task.await(&1, :infinity)) + |> Enum.sort_by(fn extra -> GroupMatcher.group_index(groups, extra.group) end) + end + + defp build_extra({input, options}, project_nodes, extension, groups) do + input = to_string(input) + id = options[:filename] || input |> input_to_title() |> title_to_id() + build_extra(input, id, options[:title], project_nodes, extension, groups) + end + + defp build_extra(input, project_nodes, extension, groups) do + id = input |> input_to_title() |> title_to_id() + build_extra(input, id, nil, project_nodes, extension, groups) + end + + defp build_extra(input, id, title, project_nodes, extension, groups) do + if valid_extension_name?(input) do + content = + input + |> File.read!() + |> Autolink.project_doc(project_nodes, nil, extension) + + group = GroupMatcher.match_extra groups, input + html_content = Markdown.to_html(content, file: input, line: 1) + + title = title || extract_title(html_content) || input_to_title(input) + %{id: id, title: title, group: group, content: html_content} + else + raise ArgumentError, "file format not recognized, allowed format is: .md" + end + end + + def valid_extension_name?(input) do + file_ext = + input + |> Path.extname() + |> String.downcase() + + if file_ext in [".md"] do + true + else + false + end + end + + @tag_regex ~r/<[^>]*>/m + defp strip_html(header) do + Regex.replace(@tag_regex, header, "") + end + + @h1_regex ~r/(.+)<\/h1>/m + defp extract_title(content) do + title = Regex.run(@h1_regex, content, capture: :all_but_first) + + if title do + title |> List.first() |> strip_html() |> String.trim() + end + end + + @doc """ + Convert the input file name into a title_to_filename/1 + """ + def input_to_title(input) do + input |> Path.basename() |> Path.rootname() + end + + @doc """ + Creates an ID from a given title + """ + def title_to_id(title) do + title |> String.replace(" ", "-") |> String.downcase() + end + + @doc """ + Generates the logo from config into the given directory + and adjusts the logo config key. + """ + def generate_logo(_dir, %{logo: nil}) do + [] + end + def generate_logo(dir, %{output: output, logo: logo}) do + extname = + logo + |> Path.extname() + |> String.downcase() + + if extname in ~w(.png .jpg) do + filename = Path.join(dir, "logo#{extname}") + target = Path.join(output, filename) + File.mkdir_p!(Path.dirname(target)) + File.copy!(logo, target) + [filename] + else + raise ArgumentError, "image format not recognized, allowed formats are: .jpg, .png" + end + end + + defp generate_redirect(filename, config, redirect_to) do + unless File.regular?("#{config.output}/#{redirect_to}") do + IO.puts :stderr, "warning: #{filename} redirects to #{redirect_to}, which does not exist" + end + content = Templates.redirect_template(config, redirect_to) + File.write!("#{config.output}/#{filename}", content) + end + + def filter_list(:module, nodes) do + Enum.filter(nodes, ¬(&1.type in [:exception, :impl, :task])) + end + + def filter_list(type, nodes) do + Enum.filter(nodes, &(&1.type == type)) + end + + defp generate_list(nodes, nodes_map, config) do + nodes + |> Enum.map(&Task.async(fn -> + generate_module_page(&1, nodes_map, config) + end)) + |> Enum.map(&Task.await(&1, :infinity)) + end + + defp generate_module_page(module_node, nodes_map, config) do + filename = "#{module_node.id}.html" + config = set_canonical_url(config, filename) + content = Templates.module_page(module_node, nodes_map, config) + File.write!("#{config.output}/#{filename}", content) + filename + end + + defp set_canonical_url(config, filename) do + if config.canonical do + canonical_url = + config.canonical + |> String.trim_trailing("/") + |> Path.join(filename) + + Map.put(config, :canonical, canonical_url) + else + config + end + end +end diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/assets.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/assets.ex new file mode 100644 index 00000000..db3f4ec9 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/assets.ex @@ -0,0 +1,26 @@ +defmodule ExDoc.Formatter.HTML.Assets do + @moduledoc false + + defmacrop embed_pattern(pattern) do + ["formatters/html", pattern] + |> Path.join() + |> Path.wildcard() + |> Enum.map(&{Path.basename(&1), File.read!(&1)}) + end + + def debug do + embed_pattern("dist/*.map") + end + + def dist do + embed_pattern("dist/*.{css,js}") + end + + def fonts do + embed_pattern("fonts/*") + end + + def markdown_processor_assets do + ExDoc.Markdown.get_markdown_processor().assets(:html) + end +end diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/autolink.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/autolink.ex new file mode 100644 index 00000000..8790eb3a --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/autolink.ex @@ -0,0 +1,601 @@ +defmodule ExDoc.Formatter.HTML.Autolink do + @moduledoc """ + Conveniences for autolinking locals, types and more. + """ + + import ExDoc.Formatter.HTML.Templates, only: [h: 1, enc_h: 1] + + @elixir_docs "https://hexdocs.pm/" + @erlang_docs "http://www.erlang.org/doc/man/" + @basic_types_page "typespecs.html#basic-types" + @built_in_types_page "typespecs.html#built-in-types" + + @basic_types [ + any: 0, + none: 0, + atom: 0, + map: 0, + pid: 0, + port: 0, + reference: 0, + struct: 0, + tuple: 0, + integer: 0, + float: 0, + neg_integer: 0, + non_neg_integer: 0, + pos_integer: 0, + list: 1, + nonempty_list: 1, + improper_list: 2, + maybe_improper_list: 2, + ] + + @built_in_types [ + term: 0, + arity: 0, + as_boolean: 1, + binary: 0, + bitstring: 0, + boolean: 0, + byte: 0, + char: 0, + charlist: 0, + nonempty_charlist: 0, + fun: 0, + function: 0, + identifier: 0, + iodata: 0, + iolist: 0, + keyword: 0, + keyword: 1, + list: 0, + nonempty_list: 0, + maybe_improper_list: 0, + nonempty_maybe_improper_list: 0, + mfa: 0, + module: 0, + no_return: 0, + node: 0, + number: 0, + struct: 0, + timeout: 0 + ] + + kernel_exports = Kernel.__info__(:functions) ++ Kernel.__info__(:macros) + special_form_exports = Kernel.SpecialForms.__info__(:macros) + + @basic_type_strings (for {f, a} <- @basic_types, do: "t:#{f}/#{a}") + @built_in_type_strings (for {f, a} <- @built_in_types, do: "t:#{f}/#{a}") + @kernel_function_strings (for {f, a} <- kernel_exports, do: "#{f}/#{a}") + @special_form_strings (for {f, a} <- special_form_exports, do: "#{f}/#{a}") + + @doc """ + Receives a list of module nodes and autolink all docs and typespecs. + """ + def all(modules, extension, extra_lib_dirs) do + aliases = Enum.map modules, &(&1.module) + lib_dirs = extra_lib_dirs ++ elixir_lib_dirs() ++ erlang_lib_dirs() + modules + |> Enum.map(&Task.async(fn -> process_module(&1, modules, aliases, extension, lib_dirs) end)) + |> Enum.map(&Task.await(&1, :infinity)) + end + + defp process_module(module, modules, aliases, extension, lib_dirs) do + module + |> all_docs(modules, aliases, extension, lib_dirs) + |> all_typespecs(aliases, lib_dirs) + end + + defp module_to_string(module) do + inspect module.module + end + + defp all_docs(module, modules, aliases, extension, lib_dirs) do + locals = + for doc <- module.docs, + prefix = doc_prefix(doc), + entry <- [doc.id | doc.defaults], + do: prefix <> entry, + into: Enum.map(module.typespecs, &("t:" <> &1.id)) + + moduledoc = + if module.doc do + module.doc + |> local_doc(locals, aliases, extension, lib_dirs) + |> project_doc(modules, module.id, extension, lib_dirs) + end + + docs = for module_node <- module.docs do + doc = + if module_node.doc do + module_node.doc + |> local_doc(locals, aliases, extension, lib_dirs) + |> project_doc(modules, module.id, extension, lib_dirs) + end + %{module_node | doc: doc} + end + + typedocs = for module_node <- module.typespecs do + doc = + if module_node.doc do + module_node.doc + |> local_doc(locals, aliases, extension, lib_dirs) + |> project_doc(modules, module.id, extension, lib_dirs) + end + %{module_node | doc: doc} + end + + %{module | doc: moduledoc, docs: docs, typespecs: typedocs} + end + + defp all_typespecs(module, aliases, lib_dirs) do + locals = Enum.map module.typespecs, fn + %ExDoc.TypeNode{name: name, arity: arity} -> {name, arity} + end + + typespecs = for typespec <- module.typespecs do + %{typespec | spec: typespec(typespec.spec, locals, aliases, lib_dirs)} + end + + docs = for module_node <- module.docs do + %{module_node | specs: Enum.map(module_node.specs, &typespec(&1, locals, aliases, lib_dirs))} + end + + %{module | typespecs: typespecs, docs: docs} + end + + @doc """ + Converts the given `ast` to string while linking the locals + given by `typespecs` as HTML. + """ + def typespec(ast, typespecs, aliases, lib_dirs \\ elixir_lib_dirs() ++ erlang_lib_dirs()) do + if formatter_available?() do + format_typespec(ast, typespecs, aliases, lib_dirs) + else + typespec_to_string(ast, typespecs, aliases, lib_dirs) + end + end + + defp typespec_to_string({:when, _, [{:::, _, [left, {:|, _, _} = center]}, right]} = ast, typespecs, aliases, lib_dirs) do + if short_typespec?(ast) do + normalize_left(ast, typespecs, aliases, lib_dirs) + else + normalize_left(left, typespecs, aliases, lib_dirs) <> + " ::\n " <> typespec_with_new_line(center, typespecs, aliases, lib_dirs) <> + " when " <> String.slice(format_typespec(right, typespecs, aliases, lib_dirs), 1..-2) + end + end + + defp typespec_to_string({:::, _, [left, {:|, _, _} = center]} = ast, typespecs, aliases, lib_dirs) do + if short_typespec?(ast) do + normalize_left(ast, typespecs, aliases, lib_dirs) + else + normalize_left(left, typespecs, aliases, lib_dirs) <> + " ::\n " <> typespec_with_new_line(center, typespecs, aliases, lib_dirs) + end + end + + defp typespec_to_string(other, typespecs, aliases, lib_dirs) do + normalize_left(other, typespecs, aliases, lib_dirs) + end + + defp short_typespec?(ast) do + byte_size(Macro.to_string(ast)) <= 70 + end + + defp typespec_with_new_line({:|, _, [left, right]}, typespecs, aliases, lib_dirs) do + format_typespec(left, typespecs, aliases, lib_dirs) <> + " |\n " <> typespec_with_new_line(right, typespecs, aliases, lib_dirs) + end + + defp typespec_with_new_line(other, typespecs, aliases, lib_dirs) do + format_typespec(other, typespecs, aliases, lib_dirs) + end + + defp normalize_left({:::, _, [{name, meta, args}, right]}, typespecs, aliases, lib_dirs) do + new_args = + Enum.map(args, &[self(), format_typespec(&1, typespecs, aliases, lib_dirs)]) + new_left = + Macro.to_string {name, meta, new_args}, fn + [pid, string], _ when pid == self() -> string + _, string -> string + end + new_left <> " :: " <> format_typespec(right, typespecs, aliases, lib_dirs) + end + + defp normalize_left({:when, _, [{:::, _, _} = left, right]}, typespecs, aliases, lib_dirs) do + normalize_left(left, typespecs, aliases, lib_dirs) <> + " when " <> String.slice(format_typespec(right, typespecs, aliases, lib_dirs), 1..-2) + end + + defp normalize_left(ast, typespecs, aliases, lib_dirs) do + format_typespec(ast, typespecs, aliases, lib_dirs) + end + + defp format_typespec(ast, typespecs, aliases, lib_dirs) do + {formatted, placeholders} = format_and_extract_typespec_placeholders(ast, typespecs, aliases, lib_dirs) + replace_placeholders(formatted, placeholders) + end + + @doc false + def format_and_extract_typespec_placeholders(ast, typespecs, aliases, lib_dirs) do + ref = make_ref() + elixir_source = get_source(Kernel, aliases, lib_dirs) + + {formatted_ast, placeholders} = + Macro.prewalk(ast, %{}, fn + {:::, _, [{name, meta, args}, right]}, placeholders when is_atom(name) and is_list(args) -> + {{:::, [], [{{ref, name}, meta, args}, right]}, placeholders} + + # Consume this form so that we don't autolink `foo` in `foo :: bar` + {{^ref, name}, _, args}, placeholders when is_atom(name) and is_list(args) -> + {{name, [], args}, placeholders} + + {name, _, args} = form, placeholders when is_atom(name) and is_list(args) -> + arity = length(args) + + cond do + {name, arity} in @basic_types -> + url = elixir_source <> @basic_types_page + put_placeholder(form, url, placeholders) + + {name, arity} in @built_in_types -> + url = elixir_source <> @built_in_types_page + put_placeholder(form, url, placeholders) + + {name, arity} in typespecs -> + n = enc_h("#{name}") + url = "#t:#{n}/#{arity}" + put_placeholder(form, url, placeholders) + + true -> + {form, placeholders} + end + + {{:., _, [alias, name]}, _, args} = form, placeholders when is_atom(name) and is_list(args) -> + alias = expand_alias(alias) + + if source = get_source(alias, aliases, lib_dirs) do + url = type_remote_url(source, alias, name, args) + put_placeholder(form, url, placeholders) + else + {form, placeholders} + end + + form, placeholders -> + {form, placeholders} + end) + + {format_ast(formatted_ast), placeholders} + end + + defp type_remote_url(@erlang_docs = source, module, name, _args) do + module = enc_h("#{module}") + name = enc_h("#{name}") + "#{source}#{module}.html#type-#{name}" + end + defp type_remote_url(source, alias, name, args) do + name = enc_h("#{name}") + "#{source}#{enc_h(inspect alias)}.html#t:#{name}/#{length(args)}" + end + + defp typespec_string_to_link(string, url) do + {string_to_link, _string_with_parens} = split_string_to_link(string) + ~s[#{h(string_to_link)}] + end + + defp put_placeholder(form, url, placeholders) do + string = Macro.to_string(form) + link = typespec_string_to_link(string, url) + + case Enum.find(placeholders, fn {_key, value} -> value == link end) do + {placeholder, _} -> + form = put_elem(form, 0, placeholder) + {form, placeholders} + + nil -> + count = map_size(placeholders) + 1 + placeholder = placeholder(string, count) + form = put_elem(form, 0, placeholder) + {form, Map.put(placeholders, placeholder, link)} + end + end + + defp placeholder(string, count) do + [name | _] = String.split(string, "(", trim: true) + name_size = String.length(name) + int_size = count |> Integer.digits() |> length() + underscores_size = 2 + pad = String.duplicate("p", max(name_size - int_size - underscores_size, 1)) + :"_#{pad}#{count}_" + end + + defp replace_placeholders(string, placeholders) do + Regex.replace(~r"_p+\d+_", string, &Map.fetch!(placeholders, String.to_atom(&1))) + end + + defp format_ast(ast) do + string = Macro.to_string(ast) + + if formatter_available?() do + string + |> Code.format_string!(line_length: 80) + |> IO.iodata_to_binary() + else + string + end + end + + @doc """ + Create links to locally defined functions, specified in `locals` + as a list of `fun/arity` strings. + + Ignores functions which are already wrapped in markdown url syntax, + e.g. `[test/1](url)`. If the function doesn't touch the leading + or trailing `]`, e.g. `[my link link/1 is here](url)`, the fun/arity + will get translated to the new href of the function. + """ + def local_doc(bin, locals, aliases \\ [], extension \\ ".html", lib_dirs \\ elixir_lib_dirs()) when is_binary(bin) do + fun_re = Regex.source(~r{(([ct]:)?([a-z_]+[A-Za-z_\d]*[\\?\\!]?|[\{\}=&\\|\\.<>~*^@\\+\\%\\!-]+)/\d+)}) + regex = ~r{(? + {prefix, _, function, arity} = split_function(match) + text = "`#{function}/#{arity}`" + + cond do + match in locals -> + "[#{text}](##{prefix}#{enc_h function}/#{arity})" + + match in @basic_type_strings -> + "[#{text}](#{elixir_doc}#{@basic_types_page})" + + match in @built_in_type_strings -> + "[#{text}](#{elixir_doc}#{@built_in_types_page})" + + match in @kernel_function_strings -> + "[#{text}](#{elixir_doc}Kernel#{extension}##{prefix}#{enc_h function}/#{arity})" + + match in @special_form_strings -> + "[#{text}](#{elixir_doc}Kernel.SpecialForms#{extension}##{prefix}#{enc_h function}/#{arity})" + + true -> + all + end + end) + end + + @doc """ + Creates links to modules and functions defined in the project. + """ + def project_doc(bin, modules, module_id \\ nil, + extension \\ ".html", lib_dirs \\ elixir_lib_dirs()) when is_binary(bin) do + project_types = + for module <- modules, + type <- module.typespecs, + do: "t:" <> module.id <> "." <> type.id + + project_docs = + for module <- modules, + doc <- module.docs, + prefix = doc_prefix(doc), + entry <- [doc.id | doc.defaults], + do: prefix <> module.id <> "." <> entry, + into: project_types + + project_modules = + modules + |> Enum.map(&module_to_string/1) + |> Enum.uniq() + + bin + |> local_doc(project_docs, [], extension, lib_dirs) + |> elixir_functions(project_docs, extension, lib_dirs) + |> elixir_modules(project_modules, module_id, extension, lib_dirs) + |> erlang_functions() + end + + defp doc_prefix(%{type: c}) when c in [:callback, :macrocallback], do: "c:" + defp doc_prefix(%{type: _}), do: "" + + @doc """ + Create links to elixir functions defined in the project and Elixir itself. + + Project functions are specified in `project_funs` as a list of + `Module.fun/arity` tuples. + + Functions wrapped in markdown url syntax can link to other docs if + the url is wrapped in backticks, otherwise the url is used as is. + If the function doesn't touch the leading or trailing `]`, e.g. + `[my link Module.link/1 is here](url)`, the Module.fun/arity + will get translated to the new href of the function. + """ + def elixir_functions(bin, project_funs, extension \\ ".html", lib_dirs \\ elixir_lib_dirs()) when is_binary(bin) do + bin + |> replace_custom_links(project_funs, extension, lib_dirs) + |> replace_normal_links(project_funs, extension, lib_dirs) + end + + module_re = Regex.source(~r{(([A-Z][A-Za-z_\d]+)\.)+}) + fun_re = Regex.source(~r{([ct]:)?(#{module_re}([a-z_]+[A-Za-z_\d]*[\\?\\!]?|[\{\}=&\\|\\.<>~*^@\\+\\%\\!-]+)/\d+)}) + @custom_re ~r{\[(.*?)\]\(`(#{fun_re})`\)} + @normal_re ~r{(? + replacement(all, match, project_funs, extension, lib_dirs, text) + end) + end + + defp replace_normal_links(bin, project_funs, extension, lib_dirs) do + Regex.replace(@normal_re, bin, fn all, match -> + replacement(all, match, project_funs, extension, lib_dirs) + end) + end + + defp replacement(all, match, project_funs, extension, lib_dirs, text \\ nil) do + {prefix, module, function, arity} = split_function(match) + text = text || "`#{module}.#{function}/#{arity}`" + + cond do + match in project_funs -> + "[#{text}](#{module}#{extension}##{prefix}#{enc_h function}/#{arity})" + + doc = lib_dirs_to_doc("Elixir." <> module, lib_dirs) -> + "[#{text}](#{doc}#{module}.html##{prefix}#{enc_h function}/#{arity})" + + true -> + all + end + end + + @doc """ + Create links to elixir modules defined in the project and + in Elixir itself. + + Ignores modules which are already wrapped in markdown url syntax, + e.g. `[Module](url)`. If the module name doesn't touch the leading + or trailing `]`, e.g. `[my link Module is here](url)`, the Module + will get translated to the new href of the module. + """ + def elixir_modules(bin, modules, module_id \\ nil, + extension \\ ".html", lib_dirs \\ elixir_lib_dirs()) when is_binary(bin) do + regex = ~r{(? + cond do + match == module_id -> + "[`#{match}`](#{match}#{extension}#content)" + + match in modules -> + "[`#{match}`](#{match}#{extension})" + + doc = lib_dirs_to_doc("Elixir." <> match, lib_dirs) -> + "[`#{match}`](#{doc}#{match}.html)" + + true -> + all + end + end) + end + + defp split_function("c:" <> bin) do + {_, mod, fun, arity} = split_function(bin) + {"c:", mod, fun, arity} + end + defp split_function("t:" <> bin) do + {_, mod, fun, arity} = split_function(bin) + {"t:", mod, fun, arity} + end + defp split_function(bin) do + [modules, arity] = String.split(bin, "/") + {mod, name} = + modules + |> String.replace(~r{([^\.])\.}, "\\1 ") # this handles the case of the ".." function + |> String.split(" ") + |> Enum.split(-1) + {"", Enum.join(mod, "."), hd(name), arity} + end + + @doc """ + Create links to Erlang functions in code blocks. + + Only links modules that are in the Erlang distribution `lib_dir` + and only link functions in those modules that export a function of the + same name and arity. + + Ignores functions which are already wrapped in markdown url syntax, + e.g. `[:module.test/1](url)`. If the function doesn't touch the leading + or trailing `]`, e.g. `[my link :module.link/1 is here](url)`, the :module.fun/arity + will get translated to the new href of the function. + """ + def erlang_functions(bin) when is_binary(bin) do + lib_dirs = erlang_lib_dirs() + regex = ~r{(? + {_, module, function, arity} = split_function(match) + if doc = lib_dirs_to_doc(module, lib_dirs) do + "[`:#{match}`](#{doc}#{module}.html##{function}-#{arity})" + else + all + end + end) + end + + ## Helpers + + defp lib_dirs_to_doc(module, lib_dirs) do + case :code.where_is_file('#{module}.beam') do + :non_existing -> + nil + path -> + path = List.to_string(path) + Enum.find_value(lib_dirs, fn {lib_dir, doc} -> + String.starts_with?(path, lib_dir) and doc + end) + end + end + + defp elixir_lib_dirs do + case Application.fetch_env(:ex_doc, :elixir_lib_dirs) do + {:ok, lib_dirs} -> + lib_dirs + :error -> + lib_dir = + case :code.where_is_file('Elixir.Kernel.beam') do + :non_existing -> + [0] + path -> + path + |> Path.dirname() + |> Path.dirname() + |> Path.dirname() + end + + lib_dirs = + for app <- ~w(elixir eex iex logger mix ex_unit) do + {lib_dir <> "/" <> app <> "/ebin", @elixir_docs <> app <> "/"} + end + Application.put_env(:ex_doc, :elixir_lib_dirs, lib_dirs) + lib_dirs + end + end + + defp erlang_lib_dirs do + case Application.fetch_env(:ex_doc, :erlang_lib_dirs) do + {:ok, lib_dirs} -> + lib_dirs + :error -> + lib_dirs = [{Path.expand(:code.lib_dir), @erlang_docs}] + Application.put_env(:ex_doc, :erlang_lib_dirs, lib_dirs) + lib_dirs + end + end + + defp split_string_to_link(string) do + case :binary.split(string, "(") do + [head, tail] -> {head, "(" <> tail} + [head] -> {head, ""} + end + end + + defp expand_alias({:__aliases__, _, [h|t]}) when is_atom(h), do: Module.concat([h|t]) + defp expand_alias(atom) when is_atom(atom), do: atom + defp expand_alias(_), do: nil + + defp get_source(alias, aliases, lib_dirs) do + cond do + is_nil(alias) -> nil + alias in aliases -> "" + doc = lib_dirs_to_doc(alias, lib_dirs) -> doc + true -> nil + end + end + + # TODO: remove when we require Elixir v1.6+ + defp formatter_available? do + function_exported?(Code, :format_string!, 2) + end +end diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates.ex new file mode 100644 index 00000000..9515903c --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates.ex @@ -0,0 +1,292 @@ +defmodule ExDoc.Formatter.HTML.Templates do + @moduledoc false + require EEx + + @doc """ + Generate content from the module template for a given `node` + """ + def module_page(module_node, nodes_map, config) do + summary_map = group_summary(module_node) + module_template(config, module_node, summary_map, nodes_map) + end + + @doc """ + Get the full specs from a function, already in HTML form. + """ + def get_specs(%ExDoc.TypeNode{spec: spec}) do + [spec] + end + def get_specs(%ExDoc.FunctionNode{specs: specs}) when is_list(specs) do + presence specs + end + def get_specs(_node) do + nil + end + + @doc """ + Get defaults clauses. + """ + def get_defaults(%{defaults: defaults}) do + defaults + end + def get_defaults(_) do + [] + end + + @doc """ + Converts markdown to HTML using the given node file+line. + """ + def to_html(nil, %{source_path: _, doc_line: _}) do + nil + end + def to_html(doc, %{source_path: file, doc_line: line}) when is_binary(doc) do + ExDoc.Markdown.to_html(doc, file: file, line: line + 1) + end + + @doc """ + Get the pretty name of a function node + """ + def pretty_type(%ExDoc.TypeNode{type: t}) do + Atom.to_string(t) + end + def pretty_type(%ExDoc.FunctionNode{type: t}) do + case t do + :def -> "function" + :defmacro -> "macro" + :callback -> "callback" + :macrocallback -> "macro callback" + end + end + + @doc """ + Generate a link id + """ + def link_id(module_node), do: link_id(module_node.id, module_node.type) + def link_id(id, type) do + case type do + :macrocallback -> "c:#{id}" + :callback -> "c:#{id}" + :type -> "t:#{id}" + :opaque -> "t:#{id}" + _ -> "#{id}" + end + end + + @doc """ + Returns the HTML formatted title for the module page. + """ + def module_title(%{type: :task, title: title}), + do: "mix " <> title + def module_title(%{type: :module, title: title}), + do: title + def module_title(%{type: type, title: title}), + do: title <> " #{type}" + + @doc """ + Gets the first paragraph of the documentation of a node. It strips + surrounding spaces and strips traling `:` and `.`. + + If `doc` is `nil`, it returns `nil`. + """ + @spec synopsis(String.t) :: String.t + @spec synopsis(nil) :: nil + + def synopsis(nil), do: nil + def synopsis(""), do: "" + def synopsis(doc) when is_binary(doc) do + doc + |> String.split(~r/\n\s*\n/) + |> hd() + |> String.trim() + |> String.replace(~r{[.:\s]+$}, "") + |> String.trim_trailing() + end + + defp presence([]), do: nil + defp presence(other), do: other + + @doc false + def h(binary) do + escape_map = [{"&", "&"}, {"<", "<"}, {">", ">"}, {~S("), """}] + Enum.reduce escape_map, binary, fn({pattern, escape}, acc) -> + String.replace(acc, pattern, escape) + end + end + + @doc false + def enc_h(binary) do + binary + |> URI.encode() + |> h() + end + + defp is_enc?(binary) do + h(binary) != enc_h(binary) + end + + @doc """ + Create a JS object which holds all the items displayed in the sidebar area + """ + def create_sidebar_items(nodes_map, extras) do + nodes_map = + [sidebar_items_extras(extras) | Enum.map(nodes_map, &sidebar_items_keys/1)] + "sidebarNodes={#{Enum.join(nodes_map, ",")}}" + end + + defp sidebar_items_extras(extras) do + keys = + extras + |> Enum.map(&sidebar_items_extra/1) + |> Enum.join(",") + ~s/"extras":[#{keys}]/ + end + + defp sidebar_items_keys({id, value}) do + keys = + value + |> Enum.map(&sidebar_items_node/1) + |> Enum.join(",") + ~s/"#{id}":[#{keys}]/ + end + + defp sidebar_items_extra(%{id: id, title: title, group: group, content: content}) do + headers = + content + |> extract_headers + |> Enum.map_join(",", fn {header, anchor} -> sidebar_items_object(header, anchor) end) + ~s/{"id":"#{id}","title":"#{title}","group":"#{group}","headers":[#{headers}]}/ + end + + @h2_regex ~r/(.*?)<\/h2>/m + @clean_html_regex ~r/<(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*>/ + defp extract_headers(content) do + @h2_regex + |> Regex.scan(content, capture: :all_but_first) + |> List.flatten() + |> Enum.filter(&(&1 != "")) + |> Enum.map(&(String.replace(&1, @clean_html_regex, ""))) + |> Enum.map(&{&1, header_to_id(&1)}) + end + + defp sidebar_items_node(module_node) do + items = + module_node + |> group_summary() + |> Enum.reject(fn {_type, nodes_map} -> nodes_map == [] end) + |> Enum.map_join(",", &sidebar_items_by_type/1) + + if items == "" do + ~s/{"id":"#{module_node.id}","title":"#{module_node.title}","group":"#{module_node.group}"}/ + else + ~s/{"id":"#{module_node.id}","title":"#{module_node.title}","group":"#{module_node.group}",#{items}}/ + end + end + + defp sidebar_items_by_type({type, docs}) do + objects = Enum.map_join(docs, ",", fn doc -> + sidebar_items_object(doc.id, link_id(doc)) + end) + ~s/"#{type}":[#{objects}]/ + end + + defp sidebar_items_object(id, anchor) do + ~s/{"id":"#{id}","anchor":"#{URI.encode(anchor)}"}/ + end + + def group_summary(module_node) do + %{types: module_node.typespecs, + functions: Enum.filter(module_node.docs, & &1.type in [:def, :defmacro]), + callbacks: Enum.filter(module_node.docs, & &1.type in [:callback, :macrocallback])} + end + + defp logo_path(%{logo: nil}), do: nil + defp logo_path(%{logo: logo}), do: "assets/logo#{Path.extname(logo)}" + + defp sidebar_type(:exception), do: "exceptions" + defp sidebar_type(:extra), do: "extras" + defp sidebar_type(:module), do: "modules" + defp sidebar_type(:behaviour), do: "modules" + defp sidebar_type(:protocol), do: "modules" + defp sidebar_type(:task), do: "tasks" + defp sidebar_type(:search), do: "search" + + def asset_rev(output, pattern) do + output = Path.expand(output) + + output + |> Path.join(pattern) + |> Path.wildcard() + |> relative_asset(output, pattern) + end + + defp relative_asset([], output, pattern), do: raise "could not find matching #{output}/#{pattern}" + defp relative_asset([h|_], output, _pattern), do: Path.relative_to(h, output) + + @doc """ + Extract a linkable ID from a heading + """ + @spec header_to_id(String.t) :: String.t + def header_to_id(header) do + header + |> String.replace(@clean_html_regex, "") + |> String.replace(~r/&#\d+;/, "") + |> String.replace(~r/&[A-Za-z0-9]+;/, "") + |> String.replace(~r/\W+/u, "-") + |> String.trim("-") + |> String.downcase() + end + + @doc """ + Link headings found with `regex` with in the given `content`. IDs are + prefixed with `prefix`. + """ + @heading_regex ~r/<(h[23]).*?>(.*?)<\/\1>/m + @spec link_headings(String.t, Regex.t, String.t) :: String.t + def link_headings(content, regex \\ @heading_regex, prefix \\ "") + def link_headings(nil, _, _), do: nil + def link_headings(content, regex, prefix) do + Regex.replace(regex, content, fn match, tag, title -> + link_heading(match, tag, title, header_to_id(title), prefix) + end) + end + + defp link_heading(match, _tag, _title, "", _prefix), do: match + defp link_heading(_match, tag, title, id, prefix) do + """ + <#{tag} id="#{prefix}#{id}" class="section-heading"> + + #{title} + + """ + end + + defp link_moduledoc_headings(content) do + link_headings(content, @heading_regex, "module-") + end + + defp link_detail_headings(content, prefix) do + link_headings(content, @heading_regex, prefix <> "-") + end + + templates = [ + detail_template: [:module_node, :_module], + footer_template: [:config], + head_template: [:config, :page], + module_template: [:config, :module, :summary_map, :nodes_map], + not_found_template: [:config, :nodes_map], + api_reference_entry_template: [:module_node], + api_reference_template: [:config, :nodes_map], + extra_template: [:config, :title, :nodes_map, :content], + search_template: [:config, :nodes_map], + sidebar_template: [:config, :nodes_map], + summary_template: [:name, :nodes], + summary_item_template: [:module_node], + redirect_template: [:config, :redirect_to], + ] + + Enum.each templates, fn({name, args}) -> + filename = Path.expand("templates/#{name}.eex", __DIR__) + @doc false + EEx.function_from_file :def, name, filename, args + end +end diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_entry_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_entry_template.eex new file mode 100644 index 00000000..02f5db63 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_entry_template.eex @@ -0,0 +1,6 @@ +
    + + <%= if module_node.doc do %> +
    <%= to_html(synopsis(module_node.doc), module_node) %>
    + <% end %> +
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_template.eex new file mode 100644 index 00000000..d135c66a --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/api_reference_template.eex @@ -0,0 +1,37 @@ +

    + <%= config.project %> v<%= config.version %> + API Reference +

    + +<%= if nodes_map.modules != [] do %> +
    +

    Modules

    +
    + <%= for module_node <- Enum.sort_by(nodes_map.modules, & &1.id) do + api_reference_entry_template(module_node) + end %> +
    +
    +<% end %> + +<%= if nodes_map.exceptions != [] do %> +
    +

    Exceptions

    +
    + <%= for exception_node <- nodes_map.exceptions do + api_reference_entry_template(exception_node) + end %> +
    +
    +<% end %> + +<%= if nodes_map.tasks != [] do %> +
    +

    Mix Tasks

    +
    + <%= for task_node <- nodes_map.tasks do + api_reference_entry_template(task_node) + end %> +
    +
    +<% end %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/detail_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/detail_template.eex new file mode 100644 index 00000000..ec5b77b7 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/detail_template.eex @@ -0,0 +1,34 @@ + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex new file mode 100644 index 00000000..eb03f6cd --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex @@ -0,0 +1,5 @@ +<%= head_template(config, %{title: title, type: :extra}) %> +<%= sidebar_template(config, nodes_map) %> + +<%= link_headings(content) %> +<%= footer_template(config) %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex new file mode 100644 index 00000000..ad983825 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex @@ -0,0 +1,23 @@ + + + + + + + <%# Extra content needed by the current markdown processor (e.g. custom Javascript) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_body_tag(:html) %> + <%# Extra content specified by the user (e.g. custom Javascript) %> + <%= config.before_closing_body_tag.(:html) %> + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex new file mode 100644 index 00000000..95875149 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex @@ -0,0 +1,20 @@ + + + + + + + + <%= page.title %> – <%= config.project %> v<%= config.version %> + " /> + <%= if config.canonical do %> + + <% end %> + + <%# Extra content needed by the current markdown processor (e.g. custom CSS) %> + <%= ExDoc.Markdown.get_markdown_processor().before_closing_head_tag(:html) %> + <%# Extra content specified by the user (e.g. custom CSS) %> + <%= config.before_closing_head_tag.(:html) %> + + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/module_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/module_template.eex new file mode 100644 index 00000000..34cfd2d6 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/module_template.eex @@ -0,0 +1,82 @@ + <%= head_template(config, %{title: module.title, type: module.type}) %> + <%= sidebar_template(config, nodes_map) %> + +

    + <%= config.project %> v<%= config.version %> + <%= module_title(module) %> + <%= if module.source_url do %> + + + View Source + + <% end %> +

    + + <%= if module.doc do %> +
    + <%= module.doc |> to_html(module) |> link_moduledoc_headings() %> +
    + <% end %> + + <%= if Enum.any?(summary_map, fn {_, v} -> v != [] end) do %> +
    +

    + + + Link to this section + + Summary +

    + <%= summary_template "types", summary_map.types %> + <%= summary_template "functions", summary_map.functions %> + <%= summary_template "callbacks", summary_map.callbacks %> +
    + <% end %> + + <%= if summary_map.types != [] do %> +
    +

    + + + Link to this section + + Types +

    +
    + <%= for type_node <- summary_map.types do + detail_template(type_node, module) + end %> +
    +
    + <% end %> + + <%= if summary_map.functions != [] do %> +
    +

    + + + Link to this section + + Functions +

    + <%= for function_node <- summary_map.functions do + detail_template(function_node, module) + end %> +
    + <% end %> + + <%= if summary_map.callbacks != [] do %> +
    +

    + + + Link to this section + + Callbacks +

    + <%= for callback_node <- summary_map.callbacks do + detail_template(callback_node, module) + end %> +
    + <% end %> + <%= footer_template(config) %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/not_found_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/not_found_template.eex new file mode 100644 index 00000000..2dd60ec9 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/not_found_template.eex @@ -0,0 +1,11 @@ +<%= head_template(config, %{title: "404", type: :extra}) %> +<%= sidebar_template(config, nodes_map) %> + +

    Page not found

    + +

    Sorry, but the page you were trying to get to, does not exist. You +may want to try searching this site using the sidebar or using our +API Reference page to find what +you were looking for.

    + +<%= footer_template(config) %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/redirect_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/redirect_template.eex new file mode 100644 index 00000000..aec7172b --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/redirect_template.eex @@ -0,0 +1,11 @@ + + + + + <%= config.project %> v<%= config.version %> – Documentation + + + + + + diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/search_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/search_template.eex new file mode 100644 index 00000000..b991386a --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/search_template.eex @@ -0,0 +1,6 @@ +<%= head_template(config, %{title: "Search", type: :search}) %> +<%= sidebar_template(config, nodes_map) %> + +<%= footer_template(config) %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex new file mode 100644 index 00000000..49bd0cce --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex @@ -0,0 +1,55 @@ +
    + + + + +
    +
    +
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_item_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_item_template.eex new file mode 100644 index 00000000..c45b79e8 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_item_template.eex @@ -0,0 +1,8 @@ +
    + + <%= if module_node.doc do %> +
    <%= to_html(synopsis(module_node.doc), module_node) %>
    + <% end %> +
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_template.eex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_template.eex new file mode 100644 index 00000000..34cac557 --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/formatter/html/templates/summary_template.eex @@ -0,0 +1,8 @@ +<%= unless Enum.empty?(nodes) do %> +
    +

    + <%= String.capitalize name %> +

    + <%= for module_node <- nodes, do: summary_item_template(module_node) %> +
    +<% end %> diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/group_matcher.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/group_matcher.ex new file mode 100644 index 00000000..10ca93ea --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/group_matcher.ex @@ -0,0 +1,48 @@ +defmodule ExDoc.GroupMatcher do + @moduledoc false + + @type pattern :: Regex.t | module() | String.t + @type patterns :: pattern | [pattern] + @type group_patterns :: keyword(patterns) + + @doc """ + Finds the index of a given group. + """ + def group_index(groups, group) do + Enum.find_index(groups, fn {k, _v} -> k == group end) || -1 + end + + @doc """ + Finds a matching group for the given module name or id. + """ + @spec match_module(group_patterns, module(), String.t) :: atom() | nil + def match_module(group_patterns, module, id) do + match_group_patterns(group_patterns, fn pattern -> + case pattern do + %Regex{} = regex -> Regex.match?(regex, id) + string when is_binary(string) -> id == string + atom -> atom == module + end + end) + end + + @doc """ + Finds a matching group for the given extra filename + """ + @spec match_extra(group_patterns, String.t) :: atom() | nil + def match_extra(group_patterns, filename) do + match_group_patterns(group_patterns, fn pattern -> + case pattern do + %Regex{} = regex -> Regex.match?(regex, filename) + string when is_binary(string) -> filename == string + end + end) + end + + defp match_group_patterns(group_patterns, matcher) do + Enum.find_value(group_patterns, fn {group, patterns} -> + patterns = List.wrap patterns + Enum.any?(patterns, matcher) && group + end) + end +end diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown.ex new file mode 100644 index 00000000..c1fc018f --- /dev/null +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown.ex @@ -0,0 +1,184 @@ +defmodule ExDoc.Markdown do + @moduledoc """ + Adapter behaviour and conveniences for converting Markdown to HTML. + + ExDoc is compatible with any markdown processor that implements the + functions defined in this module. The markdown processor can be changed + via the `:markdown_processor` option in your `mix.exs` or via the + `:markdown_processor` configuration in the `:ex_doc` configuration. + + ExDoc supports the following Markdown parsers out of the box: + + * [Earmark](http://github.com/pragdave/earmark) + * [Cmark](https://github.com/asaaki/cmark.ex) + + ExDoc uses Earmark by default. + """ + + @doc """ + Converts markdown into HTML. + """ + @callback to_html(String.t, Keyword.t) :: String.t + + @doc """ + Assets specific to the markdown implementation. + + This callback takes the documentation format (`:html` or `:epub`) as an argument + and must return a list of pairs of the form `{basename, content}` where: + + * `basename` - relative path that will be written inside the `doc/` directory. + * `content` - is a binary with the full contents of the file that will be written to `basename`. + + ## EPUB Documentation Gotchas + + Generating HTML documentation is simple, and it works exacly as you would expect + for a webpage. The EPUB file format, on the other hand, may cause some surprise. + + Apparently, an EPUB file expects all assets to have a unique name *when + discarding the file extension*. + + This creates problems if you include, for example, the files `custom.js` + and `custom.css`. Because the filename without the extension is equal (`custom`), + you will get an unreadable EPUB. It's possible to go around this limitation by simply + giving the files unique names: + + * `custom.js` becomes `custom-js.js` *and* + * `custom.css` becomes `custom-css.css` + + ## Example + + def callback assets(_) do + [{"dist/custom-css.css", custom_css_content()}, + {"dist/custom-js.js", custom_js_content()}] + end + + """ + @callback assets(atom) :: [{String.t, String.t}] + + @doc """ + Literal content to be written to the file just before the closing head tag. + + This callback takes the documentation format (`:html` or `:epub`) as an argument + and returns a literal string. It is useful when the markdown processor needs to + a include extra CSS. + + ## Example + + def callback before_closing_head_tag(_) do + # Include the CSS specified in the assets/1 callback + ~S() + end + + """ + @callback before_closing_head_tag(atom) :: String.t + + @doc """ + Literal content to be written to the file just before the closing body tag. + + This callback takes the documentation format (`:html` or `:epub`) as an argument + and returns a literal string. It is useful when the markdown processor needs to + a include extra JavaScript. + + ## Example + + def callback before_closing_body_tag(_) do + # Include the Javascript specified in the assets/1 callback + ~S() + end + + """ + @callback before_closing_body_tag(atom) :: String.t + + @doc """ + A function that accepts configuration options and configures the markdown processor. + + It is run once when `:ex_doc` is loaded, and the return value is discarded. + Modules that implement this behaviour will probably store the options somewhere + so that they can be accessed when needed. + + The format of the options as well as what the function does with them is + completely up to the module that implements the behaviour. + """ + @callback configure(any) :: :ok + + @markdown_processors [ + ExDoc.Markdown.Hoedown, + ExDoc.Markdown.Earmark, + ExDoc.Markdown.Cmark + ] + + @markdown_processor_key :markdown_processor + + @doc """ + Converts the given markdown document to HTML. + """ + def to_html(text, opts \\ []) when is_binary(text) do + get_markdown_processor().to_html(text, opts) + end + + @doc """ + Helper to handle plain code blocks (```...```) with and without + language specification and indentation code blocks. + """ + def pretty_codeblocks(bin) do + bin = Regex.replace(~r/
    \s*iex>/,
    +                        # Add "elixir" class for now, until we have support for
    +                        # "iex" in highlight.js
    +                        bin, ~S(
    iex>))
    +    bin = Regex.replace(~r/
    /,
    +                        bin, ~S(
    ))
    +
    +    bin
    +  end
    +
    +  @doc """
    +  Gets the current markdown processor set globally.
    +  """
    +  def get_markdown_processor do
    +    case Application.fetch_env(:ex_doc, @markdown_processor_key) do
    +      {:ok, processor} ->
    +        processor
    +      :error ->
    +        processor = find_markdown_processor() || raise_no_markdown_processor()
    +        put_markdown_processor(processor)
    +        processor
    +    end
    +  end
    +
    +  @doc """
    +  Changes the markdown processor globally.
    +  """
    +  def put_markdown_processor(processor) do
    +    Application.put_env(:ex_doc, @markdown_processor_key, processor)
    +  end
    +
    +  @doc false
    +  def configure_processor(options) do
    +    # This function configures the markdown processor with the given options.
    +    # It's called exactly once when ExDoc reads its own configuration options.
    +    # It's supposed to be called for its side-effects.
    +    get_markdown_processor().configure(options)
    +  end
    +
    +  defp find_markdown_processor do
    +    Enum.find @markdown_processors, fn module ->
    +      Code.ensure_loaded?(module) && module.available?
    +    end
    +  end
    +
    +  defp raise_no_markdown_processor do
    +    raise """
    +    Could not find a markdown processor to be used by ex_doc.
    +    You can either:
    +
    +    * Add {:earmark, ">= 0.0.0"} to your mix.exs deps
    +      to use an Elixir-based markdown processor
    +
    +    * Add {:markdown, github: "devinus/markdown"} to your mix.exs deps
    +      to use a C-based markdown processor
    +
    +    * Add {:cmark, ">= 0.5"} to your mix.exs deps
    +      to use another C-based markdown processor
    +    """
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/cmark.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/cmark.ex
    new file mode 100644
    index 00000000..cbc3e873
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/cmark.ex
    @@ -0,0 +1,29 @@
    +defmodule ExDoc.Markdown.Cmark do
    +  @moduledoc """
    +  ExDoc extension for the Cmark Markdown parser.
    +  """
    +
    +  @behaviour ExDoc.Markdown
    +
    +  def assets(_), do: []
    +
    +  def before_closing_head_tag(_), do: ""
    +
    +  def before_closing_body_tag(_), do: ""
    +
    +  def configure(_), do: :ok
    +
    +  @doc """
    +  Check if the Cmark Markdown parser module is available.
    +  """
    +  def available? do
    +    Code.ensure_loaded?(Cmark)
    +  end
    +
    +  @doc """
    +  Generate HTML output. Cmark takes no options.
    +  """
    +  def to_html(text, _opts) do
    +    text |> Cmark.to_html()  |> ExDoc.Markdown.pretty_codeblocks()
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/earmark.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/earmark.ex
    new file mode 100644
    index 00000000..d107be01
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/markdown/earmark.ex
    @@ -0,0 +1,46 @@
    +defmodule ExDoc.Markdown.Earmark do
    +  @moduledoc """
    +  ExDoc extension for the Earmark MarkDown parser.
    +  """
    +
    +  @behaviour ExDoc.Markdown
    +
    +  def assets(_), do: []
    +
    +  def before_closing_head_tag(_), do: ""
    +
    +  def before_closing_body_tag(_), do: ""
    +
    +  def configure(_), do: :ok
    +
    +  @doc """
    +  Check if the Earmark Markdown parser module is available.
    +  """
    +  def available? do
    +    match?({:ok, _}, Application.ensure_all_started(:earmark)) and
    +      Code.ensure_loaded?(Earmark)
    +  end
    +
    +  @doc """
    +  Earmark specific options:
    +
    +    * `:gfm` - boolean. Turns on Github Flavored Markdown extensions. True by default
    +
    +    * `:breaks` - boolean. Only applicable if `gfm` is enabled. Makes all line
    +      breaks significant (so every line in the input is a new line in the output)
    +
    +    * `:smartypants` - boolean. Turns on smartypants processing, so quotes become curly,
    +      two or three hyphens become en and em dashes, and so on. True by default
    +
    +  """
    +  def to_html(text, opts) do
    +    options =
    +      struct(Earmark.Options,
    +             gfm: Keyword.get(opts, :gfm, true),
    +             line: Keyword.get(opts, :line, 1),
    +             file: Keyword.get(opts, :file),
    +             breaks: Keyword.get(opts, :breaks, false),
    +             smartypants: Keyword.get(opts, :smartypants, true))
    +    text |> Earmark.as_html!(options) |> ExDoc.Markdown.pretty_codeblocks()
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/retriever.ex b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/retriever.ex
    new file mode 100644
    index 00000000..eef741ab
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/ex_doc/lib/ex_doc/retriever.ex
    @@ -0,0 +1,562 @@
    +defmodule ExDoc.ModuleNode do
    +  @moduledoc """
    +  Structure that represents a module.
    +  """
    +
    +  defstruct id: nil, title: nil, module: nil, group: nil, doc: nil,
    +    doc_line: nil, docs: [], typespecs: [], source_path: nil,
    +    source_url: nil, type: nil
    +
    +  @type t :: %__MODULE__{
    +    id: nil | String.t,
    +    title: nil | String.t,
    +    module: nil | String.t,
    +    group: nil | String.t,
    +    docs: list(),
    +    doc: nil | String.t,
    +    doc_line: non_neg_integer(),
    +    typespecs: list(),
    +    source_path: nil | String.t,
    +    source_url: nil | String.t,
    +    type: nil | :module | :exception | :protocol | :impl | :behaviour | :task
    +  }
    +end
    +
    +defmodule ExDoc.FunctionNode do
    +  @moduledoc """
    +  Structure that represents an individual function.
    +  """
    +
    +  defstruct id: nil, name: nil, arity: 0, defaults: [], doc: [],
    +    type: nil, signature: nil, specs: [], annotations: [],
    +    doc_line: nil, source_path: nil, source_url: nil
    +
    +  @type t :: %__MODULE__{
    +    id: nil | String.t,
    +    name: nil | String.t,
    +    arity: non_neg_integer,
    +    defaults: non_neg_integer,
    +    doc: String.t,
    +    doc_line: non_neg_integer,
    +    source_path: nil | String.t,
    +    source_url: nil | String.t,
    +    type: nil | String.t,
    +    signature: nil | String.t,
    +    specs: list(),
    +    annotations: list()
    +  }
    +end
    +
    +defmodule ExDoc.TypeNode do
    +  @moduledoc """
    +  Structure that represents an individual type.
    +  """
    +
    +  defstruct id: nil, name: nil, arity: 0, type: nil, doc_line: nil,
    +    source_path: nil, source_url: nil, spec: nil, doc: nil,
    +    signature: nil, annotations: []
    +
    +  @type t :: %__MODULE__{
    +    id: nil | String.t,
    +    name: nil | String.t,
    +    arity: non_neg_integer,
    +    type: nil | String.t,
    +    spec: nil | String.t,
    +    doc: nil | String.t,
    +    doc_line: non_neg_integer,
    +    signature: nil | String.t,
    +    source_url: nil | String.t,
    +    source_path: nil | String.t,
    +    annotations: list()
    +  }
    +end
    +
    +defmodule ExDoc.Retriever do
    +  # Functions to extract documentation information from modules.
    +  @moduledoc false
    +
    +  defmodule Error do
    +    @moduledoc false
    +    defexception [:message]
    +  end
    +
    +  alias ExDoc.GroupMatcher
    +  alias ExDoc.Retriever.Error
    +  alias Kernel.Typespec
    +
    +  @doc """
    +  Extract documentation from all modules in the specified directory or directories.
    +  """
    +  @spec docs_from_dir(Path.t | [Path.t], ExDoc.Config.t) :: [ExDoc.ModuleNode.t]
    +  def docs_from_dir(dir, config) when is_binary(dir) do
    +    pattern = if config.filter_prefix, do: "Elixir.#{config.filter_prefix}*.beam", else: "*.beam"
    +    files = Path.wildcard Path.expand(pattern, dir)
    +    docs_from_files(files, config)
    +  end
    +  def docs_from_dir(dirs, config) when is_list(dirs) do
    +    Enum.flat_map(dirs, &docs_from_dir(&1, config))
    +  end
    +
    +  @doc """
    +  Extract documentation from all modules in the specified list of files
    +  """
    +  @spec docs_from_files([Path.t], ExDoc.Config.t) :: [ExDoc.ModuleNode.t]
    +  def docs_from_files(files, config) when is_list(files) do
    +    files
    +    |> Enum.map(&filename_to_module(&1))
    +    |> docs_from_modules(config)
    +  end
    +
    +  @doc """
    +  Extract documentation from all modules in the list `modules`
    +  """
    +  @spec docs_from_modules([atom], ExDoc.Config.t) :: [ExDoc.ModuleNode.t]
    +  def docs_from_modules(modules, config) when is_list(modules) do
    +    modules
    +    |> Enum.map(&get_module(&1, config))
    +    |> Enum.filter(&(&1))
    +    |> Enum.sort_by(fn module ->
    +      {GroupMatcher.group_index(config.groups_for_modules, module.group), module.id}
    +    end)
    +  end
    +
    +  defp filename_to_module(name) do
    +    name = Path.basename name, ".beam"
    +    String.to_atom name
    +  end
    +
    +  # Get all the information from the module and compile
    +  # it. If there is an error while retrieving the information (like
    +  # the module is not available or it was not compiled
    +  # with --docs flag), we raise an exception.
    +  defp get_module(module, config) do
    +    unless Code.ensure_loaded?(module), do:
    +      raise(Error, message: "module #{inspect module} is not defined/available")
    +
    +    type = detect_type(module)
    +
    +    if export_docs?(module) do
    +      generate_node(module, type, config)
    +    end
    +  end
    +
    +  # Special case required for Elixir
    +  defp export_docs?(:elixir_bootstrap), do: false
    +
    +  defp export_docs?(module) do
    +    if function_exported?(module, :__info__, 1) do
    +      case Code.get_docs(module, :moduledoc) do
    +        {_line, false} ->
    +          false
    +        {_, _} ->
    +          true
    +        nil ->
    +          raise("module #{inspect module} was not compiled with flag --docs")
    +      end
    +    else
    +      false
    +    end
    +  end
    +
    +  defp generate_node(module, type, config) do
    +    source_url  = config.source_url_pattern
    +    source_path = source_path(module, config)
    +    source = %{url: source_url, path: source_path}
    +
    +    module_info = get_module_info(module, type)
    +
    +    {doc_line, moduledoc} = Code.get_docs(module_info.name, :moduledoc)
    +    line = find_actual_line(module_info.abst_code, module_info.name, :module) || doc_line
    +
    +    docs = get_docs(module_info, source) ++
    +           get_callbacks(module_info, source)
    +
    +    {title, id} = module_title_and_id(module, type)
    +
    +    module_group = GroupMatcher.match_module config.groups_for_modules, module, id
    +
    +    %ExDoc.ModuleNode{
    +      id: id,
    +      title: title,
    +      module: module_info.name,
    +      group: module_group,
    +      type: type,
    +      docs: docs,
    +      doc: moduledoc,
    +      doc_line: doc_line,
    +      typespecs: get_types(module_info, source),
    +      source_path: source_path,
    +      source_url: source_link(source, line)
    +    }
    +  end
    +
    +  # Helpers
    +  defp get_module_info(module, type) do
    +    specs = get_specs(module)
    +    impls = get_impls(module)
    +    abst_code = get_abstract_code(module)
    +    %{name: module, type: type, specs: specs, impls: impls, abst_code: abst_code}
    +  end
    +
    +  defp get_abstract_code(module) do
    +    {^module, binary, _file} = :code.get_object_code(module)
    +    case :beam_lib.chunks(binary, [:abstract_code]) do
    +      {:ok, {_, [{:abstract_code, {_vsn, abstract_code}}]}} ->
    +        abstract_code
    +      _otherwise -> []
    +    end
    +  end
    +
    +  defp get_docs(module_info, source) do
    +    docs = Enum.sort_by Code.get_docs(module_info.name, :docs), &elem(&1, 0)
    +    for doc <- docs, doc?(doc, module_info.type) do
    +      get_function(doc, source, module_info)
    +    end
    +  end
    +
    +  # Skip impl_for and impl_for! for protocols
    +  defp doc?({{name, _}, _, _, _, nil}, :protocol) when name in [:impl_for, :impl_for!] do
    +    false
    +  end
    +
    +  # Skip docs explicitly marked as false
    +  defp doc?({_, _, _, _, false}, _) do
    +    false
    +  end
    +
    +  # Skip default docs if starting with _
    +  defp doc?({{name, _}, _, _, _, nil}, _type) do
    +    hd(Atom.to_charlist(name)) != ?_
    +  end
    +
    +  # Everything else is ok
    +  defp doc?(_, _) do
    +    true
    +  end
    +
    +  defp get_function(function, source, module_info) do
    +    {{name, arity}, doc_line, type, signature, doc} = function
    +    function = actual_def(name, arity, type)
    +    line = find_actual_line(module_info.abst_code, function, :function) || doc_line
    +
    +    doc = docstring(doc, name, arity, Map.fetch(module_info.impls, {name, arity}))
    +
    +    specs = module_info.specs
    +            |> Map.get(function, [])
    +            |> Enum.map(&Typespec.spec_to_ast(name, &1))
    +
    +    specs =
    +      if type == :defmacro do
    +        Enum.map(specs, &remove_first_macro_arg/1)
    +      else
    +        specs
    +      end
    +
    +    annotations =
    +      case {type, name, arity} do
    +        {:defmacro, _, _} ->
    +          ["macro"]
    +        {_, :__struct__, 0} ->
    +          ["struct"]
    +        _ ->
    +          []
    +      end
    +
    +    node_signature =
    +      case {name, arity} do
    +        {:__struct__, 0} ->
    +          "%" <> inspect(module_info.name) <> "{}"
    +        _other ->
    +          get_call_signature(name, signature)
    +      end
    +
    +    %ExDoc.FunctionNode{
    +      id: "#{name}/#{arity}",
    +      name: name,
    +      arity: arity,
    +      doc: doc,
    +      doc_line: doc_line,
    +      defaults: get_defaults(signature, name, arity),
    +      signature: node_signature,
    +      specs: specs,
    +      source_path: source.path,
    +      source_url: source_link(source, line),
    +      type: type,
    +      annotations: annotations
    +    }
    +  end
    +
    +  defp remove_first_macro_arg({:::, info, [{name, info2, [_term_arg | rest_args]}, return]}) do
    +    {:::, info, [{name, info2, rest_args}, return]}
    +  end
    +
    +  defp get_defaults(signature, name, arity) do
    +    case Enum.count(signature, &match?({:\\, _, [_, _]}, &1)) do
    +      0 -> []
    +      defaults -> for default <- (arity - defaults)..(arity - 1), do: "#{name}/#{default}"
    +    end
    +  end
    +
    +  defp docstring(nil, name, arity, {:ok, behaviour}) do
    +    info = "Callback implementation for `c:#{inspect behaviour}.#{name}/#{arity}`."
    +    callback_docs = Code.get_docs(behaviour, :callback_docs) || []
    +    case List.keyfind(callback_docs, {name, arity}, 0) do
    +      {{^name, ^arity}, _, :callback, callback_docs} when is_binary(callback_docs) ->
    +        "#{callback_docs}\n\n#{info}"
    +      _ ->
    +        info
    +    end
    +  end
    +
    +  defp docstring(doc, _name, _arity, _behaviour) do
    +    doc
    +  end
    +
    +  defp get_callbacks(%{type: :behaviour, name: name, abst_code: abst_code}, source) do
    +    optional_callbacks = name.behaviour_info(:optional_callbacks)
    +    (Code.get_docs(name, :callback_docs) || [])
    +    |> Enum.sort_by(&elem(&1, 0))
    +    |> Enum.map(&get_callback(&1, source, optional_callbacks, abst_code))
    +  end
    +
    +  defp get_callbacks(_, _), do: []
    +  defp get_callback(callback, source, optional_callbacks, abst_code) do
    +    {{name, arity}, doc_line, kind, doc} = callback
    +    function = actual_def(name, arity, kind)
    +
    +    {:attribute, anno, :callback, {^function, specs}} =
    +      Enum.find(abst_code, &match?({:attribute, _, :callback, {^function, _}}, &1))
    +    line  = anno_line(anno) || doc_line
    +    specs = Enum.map(specs, &Typespec.spec_to_ast(name, &1))
    +
    +    name_and_arity =
    +      case kind do
    +        :callback -> {name, arity}
    +        :macrocallback -> {:"MACRO-#{name}", arity + 1}
    +      end
    +
    +    annotations =
    +      if name_and_arity in optional_callbacks do
    +        ["optional"]
    +      else
    +        []
    +      end
    +
    +    %ExDoc.FunctionNode{
    +      id: "#{name}/#{arity}",
    +      name: name,
    +      arity: arity,
    +      doc: doc || nil,
    +      doc_line: doc_line,
    +      signature: get_typespec_signature(hd(specs), arity),
    +      specs: specs,
    +      source_path: source.path,
    +      source_url: source_link(source, line),
    +      type: kind,
    +      annotations: annotations,
    +    }
    +  end
    +
    +  defp get_typespec_signature({:when, _, [{:::, _, [{name, meta, args}, _]}, _]}, arity) do
    +    Macro.to_string {name, meta, strip_types(args, arity)}
    +  end
    +
    +  defp get_typespec_signature({:::, _, [{name, meta, args}, _]}, arity) do
    +    Macro.to_string {name, meta, strip_types(args, arity)}
    +  end
    +
    +  defp get_typespec_signature({name, meta, args}, arity) do
    +    Macro.to_string {name, meta, strip_types(args, arity)}
    +  end
    +
    +  defp strip_types(args, arity) do
    +    args
    +    |> Enum.take(-arity)
    +    |> Enum.with_index()
    +    |> Enum.map(fn
    +      {{:::, _, [left, _]}, i} -> to_var(left, i)
    +      {{:|, _, _}, i}          -> to_var({}, i)
    +      {left, i}                -> to_var(left, i)
    +    end)
    +  end
    +
    +  defp to_var({name, meta, _}, _) when is_atom(name),
    +    do: {name, meta, nil}
    +  defp to_var([{:->, _, _} | _], _),
    +    do: {:function, [], nil}
    +  defp to_var({:<<>>, _, _}, _),
    +    do: {:binary, [], nil}
    +  defp to_var({:%{}, _, _}, _),
    +    do: {:map, [], nil}
    +  defp to_var({:{}, _, _}, _),
    +    do: {:tuple, [], nil}
    +  defp to_var({_, _}, _),
    +    do: {:tuple, [], nil}
    +  defp to_var(integer, _) when is_integer(integer),
    +    do: {:integer, [], nil}
    +  defp to_var(float, _) when is_integer(float),
    +    do: {:float, [], nil}
    +  defp to_var(list, _) when is_list(list),
    +    do: {:list, [], nil}
    +  defp to_var(atom, _) when is_atom(atom),
    +    do: {:atom, [], nil}
    +  defp to_var(_, i),
    +    do: {:"arg#{i}", [], nil}
    +
    +  defp get_call_signature(name, args) do
    +    cond do
    +      name in [:__aliases__, :__block__] ->
    +        "#{name}(args)"
    +      name in [:__ENV__, :__MODULE__, :__DIR__, :__CALLER__, :"%", :"%{}"] ->
    +        "#{name}"
    +      true ->
    +        Macro.to_string {name, [], args}
    +    end
    +  end
    +
    +  defp actual_def(name, arity, :macrocallback) do
    +    actual_def(name, arity, :defmacro)
    +  end
    +  defp actual_def(name, arity, :defmacro) do
    +    {String.to_atom("MACRO-" <> to_string(name)), arity + 1}
    +  end
    +  defp actual_def(name, arity, _), do: {name, arity}
    +
    +  defp find_actual_line([], _name, :module), do: false
    +  defp find_actual_line(abst_code, name, :module) do
    +    abst_code
    +    |> Enum.find(&match?({:attribute, _, :module, ^name}, &1))
    +    |> elem(1)
    +    |> anno_line()
    +  end
    +
    +  defp find_actual_line(abst_code, {name, arity}, :function) do
    +    case Enum.find(abst_code, &match?({:function, _, ^name, ^arity, _}, &1)) do
    +      nil -> nil
    +      tuple -> tuple |> elem(1) |> anno_line()
    +    end
    +  end
    +
    +  defp anno_line(line) when is_integer(line), do: abs(line)
    +  defp anno_line(anno), do: anno |> :erl_anno.line() |> abs()
    +
    +  # Detect if a module is an exception, struct,
    +  # protocol, implementation or simply a module
    +  defp detect_type(module) do
    +    cond do
    +      function_exported?(module, :__struct__, 0) and
    +        match?(%{__exception__: true}, module.__struct__) -> :exception
    +      function_exported?(module, :__protocol__, 1) -> :protocol
    +      function_exported?(module, :__impl__, 1) -> :impl
    +      function_exported?(module, :behaviour_info, 1) -> :behaviour
    +      match?("Elixir.Mix.Tasks." <> _, Atom.to_string(module)) -> :task
    +      true -> :module
    +    end
    +  end
    +
    +  defp module_title_and_id(module, :task) do
    +    {task_name(module), module_id(module)}
    +  end
    +  defp module_title_and_id(module, _type) do
    +    id = module_id(module)
    +    {id, id}
    +  end
    +
    +  defp module_id(module) do
    +    case inspect(module) do
    +      ":" <> inspected -> inspected
    +      inspected -> inspected
    +    end
    +  end
    +
    +  defp task_name(module) do
    +    "Elixir.Mix.Tasks." <> name = Atom.to_string(module)
    +    name
    +    |> String.split(".")
    +    |> Enum.map_join(".", &Macro.underscore/1)
    +  end
    +
    +  # Returns a dict of {name, arity} -> spec.
    +  defp get_specs(module) do
    +    Enum.into(Typespec.beam_specs(module) || [], %{})
    +  end
    +
    +  # Returns a dict of {name, arity} -> behaviour.
    +  defp get_impls(module) do
    +    for behaviour <- behaviours_implemented_by(module),
    +        callback <- callbacks_defined_by(behaviour),
    +        do: {callback, behaviour},
    +        into: %{}
    +  end
    +
    +  defp callbacks_defined_by(module) do
    +    module
    +    |> Kernel.Typespec.beam_callbacks()
    +    |> Kernel.||([]) # In case the module source is not available
    +    |> Keyword.keys
    +  end
    +
    +  defp behaviours_implemented_by(module) do
    +    for {:behaviour, list} <- module.module_info(:attributes),
    +        behaviour <- list,
    +        do: behaviour
    +  end
    +
    +  defp get_types(module_info, source) do
    +    exported = for {:attribute, _, :export_type, types} <- module_info.abst_code, do: types
    +    exported = :lists.flatten(exported)
    +
    +    (Code.get_docs(module_info.name, :type_docs) || [])
    +    |> Enum.filter(&elem(&1, 0) in exported)
    +    |> Enum.sort_by(&elem(&1, 0))
    +    |> Enum.map(&get_type(&1, source, module_info.abst_code))
    +  end
    +
    +  defp get_type(type, source, abst_code) do
    +    {{name, arity}, doc_line, _, doc} = type
    +
    +    {:attribute, anno, type, spec} =
    +      Enum.find(abst_code, &match?({:attribute, _, type, {^name, _, args}}
    +                                     when type in [:opaque, :type] and length(args) == arity, &1))
    +
    +    spec = process_type_ast(Typespec.type_to_ast(spec), type)
    +    line = anno_line(anno) || doc_line
    +
    +    annotations = if type == :opaque, do: ["opaque"], else: []
    +
    +    %ExDoc.TypeNode{
    +      id: "#{name}/#{arity}",
    +      name: name,
    +      arity: arity,
    +      type: type,
    +      spec: spec,
    +      doc: doc || nil,
    +      doc_line: doc_line,
    +      signature: get_typespec_signature(spec, arity),
    +      source_path: source.path,
    +      source_url: source_link(source, line),
    +      annotations: annotations
    +    }
    +  end
    +
    +  defp source_link(%{path: _, url: nil}, _line), do: nil
    +
    +  defp source_link(source, line) do
    +    source_url = Regex.replace(~r/%{path}/, source.url, source.path)
    +    Regex.replace(~r/%{line}/, source_url, to_string(line))
    +  end
    +
    +  defp source_path(module, config) do
    +    source = String.Chars.to_string(module.__info__(:compile)[:source])
    +
    +    if root = config.source_root do
    +      Path.relative_to(source, root)
    +    else
    +      source
    +    end
    +  end
    +
    +  # Cut off the body of an opaque type while leaving it on a normal type.
    +  defp process_type_ast({:::, _, [d|_]}, :opaque), do: d
    +  defp process_type_ast(ast, _), do: ast
    +end
    diff --git a/spec/fixtures/mix/deps/ex_doc/lib/mix/tasks/docs.ex b/spec/fixtures/mix/deps/ex_doc/lib/mix/tasks/docs.ex
    new file mode 100644
    index 00000000..9156b349
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/ex_doc/lib/mix/tasks/docs.ex
    @@ -0,0 +1,302 @@
    +defmodule Mix.Tasks.Docs do
    +  use Mix.Task
    +
    +  @shortdoc "Generate documentation for the project"
    +
    +  @moduledoc ~S"""
    +  Uses ExDoc to generate a static web page from the project documentation.
    +
    +  ## Command line options
    +
    +    * `--canonical`, `-n` - Indicate the preferred URL with
    +      rel="canonical" link element, defaults to no canonical path
    +
    +    * `--formatter`, `-f` - Which formatters to use, "html" or
    +      "epub", default: "html" (may be given more than once)
    +
    +    * `--output`, `-o` - Output directory for the generated
    +      docs, default: `"doc"`
    +
    +    * `--debug` - When given, output source maps and other debug files,
    +      default: `false`
    +
    +  The command line options have higher precedence than the options
    +  specified in your `mix.exs` file below.
    +
    +  ## Configuration
    +
    +  ExDoc will automatically pull in information from your project,
    +  like the application and version. However, you may want to set
    +  `:name`, `:source_url` and `:homepage_url` to have a nicer output
    +  from ExDoc, for example:
    +
    +      def project do
    +        [app: :my_app,
    +         version: "0.1.0-dev",
    +         deps: deps(),
    +
    +         # Docs
    +         name: "My App",
    +         source_url: "https://github.com/USER/PROJECT",
    +         homepage_url: "http://YOUR_PROJECT_HOMEPAGE",
    +         docs: [main: "MyApp", # The main page in the docs
    +                logo: "path/to/logo.png",
    +                extras: ["README.md"]]]
    +      end
    +
    +  ExDoc also allows configuration specific to the documentation to
    +  be set. The following options should be put under the `:docs` key
    +  in your project's main configuration. The `:docs` options should
    +  be a keyword list or a function returning a keyword list that will
    +  be lazily executed.
    +
    +    * `:assets` - Path to a directory that will be copied as is to the "assets"
    +      directory in the output path. Its entries may be referenced in your docs
    +      under "assets/ASSET.EXTENSION"; defaults to no assets directory.
    +
    +    * `:before_closing_body_tag` - a function that takes as argument an atom specifying
    +      the formatter being used (`:html` or `:epub`) and returns a literal HTML string
    +      to be included just before the closing body tag (``).
    +      The atom given as argument can be used to include different content in both formats.
    +      Useful to inject custom assets, such as Javascript.
    +
    +    * `:before_closing_head_tag` - a function that takes as argument an atom specifying
    +      the formatter being used (`:html` or `:epub`) and returns a literal HTML string
    +      to be included just before the closing head tag (``).
    +      The atom given as argument can be used to include different content in both formats.
    +      Useful to inject custom assets, such as CSS stylesheets.
    +
    +    * `:canonical` - String that defines the preferred URL with the rel="canonical"
    +      element; defaults to no canonical path.
    +
    +    * `:deps` - A keyword list application names and their documentation URL.
    +      ExDoc will by default include all dependencies and assume they are hosted on
    +      HexDocs. This can be overridden by your own values. Example: `[plug: "https://myserver/plug/"]`
    +
    +    * `:extra_section` - String that defines the section title of the additional
    +      Markdown pages; default: "PAGES". Example: "GUIDES"
    +
    +    * `:extras` - List of keywords, each key must indicate the path to additional
    +      Markdown pages, the value for each keyword (optional) gives you more control
    +      about the PATH and the title of the output files; default: `[]`. Example:
    +      `["README.md", "CONTRIBUTING.md": [filename: "contributing", title: "Contributing"]]`
    +
    +    * `:filter_prefix` - Include only modules that match the given prefix in
    +      the generated documentation. Example: "MyApp.Core"
    +
    +    * `:formatters` - Formatter to use; default: ["html"], options: "html", "epub".
    +
    +    * `:groups_for_extras`, `:groups_for_modules` - See next section
    +
    +    * `:language` - Identify the primary language of the documents, its value must be
    +      a valid [BCP 47](https://tools.ietf.org/html/bcp47) language tag; default: "en"
    +
    +    * `:logo` - Path to the image logo of the project (only PNG or JPEG accepted)
    +      The image size will be 64x64. When specified, the logo will be placed under
    +      the "assets" directory in the output path under the name "logo" and the
    +      appropriate extension.
    +
    +    * `:main` - Main page of the documentation. It may be a module or a
    +      generated page, like "Plug" or "api-reference"; default: "api-reference".
    +
    +    * `:markdown_processor` - The markdown processor to use;
    +
    +    * `:markdown_processor_options` - Configuration options for the markdown processor;
    +
    +    * `:source_beam` - Path to the beam directory; default: mix's compile path.
    +
    +    * `:source_ref` - The branch/commit/tag used for source link inference;
    +      default: "master".
    +
    +    * `:source_url_pattern` - Public URL of the project. Derived from
    +      project's `:source_url` and `:source_ref`. Example:
    +      "https://github.com/USER/APP/blob/master/%{path}#L%{line}"
    +
    +    * `:output` - Output directory for the generated docs; default: "doc".
    +      May be overridden by command line argument.
    +
    +  ## Groups
    +
    +  ExDoc content can be organized in groups. This is done via the `:groups_for_extras`
    +  and `:groups_for_modules`. For example, imagine you are storing extra guides in
    +  your documentation which are organized per directory. In the extras section you
    +  have:
    +
    +      extras: [
    +        "guides/introduction/foo.md",
    +        "guides/introduction/bar.md",
    +
    +        ...
    +
    +        "guides/advanced/baz.md",
    +        "guides/advanced/bat.md",
    +      ]
    +
    +  You can have those grouped as follows:
    +
    +      groups_for_extras: [
    +        "Introduction": Path.wildcard("guides/introduction/*.md"),
    +        "Advanced": Path.wildcard("guides/advanced/*.md")
    +      ]
    +
    +  Or via a regex:
    +
    +      groups_for_extras: [
    +        "Introduction": ~r"/introduction/"
    +        "Advanced": ~r"/advanced/"
    +      ]
    +
    +  Similar can be done for modules:
    +
    +      groups_for_modules: [
    +        "Data types": [Atom, Regex, URI],
    +        "Collections": [Enum, MapSet, Stream],
    +      ]
    +
    +  A regex or the string name of the module is also supported.
    +
    +  ## Umbrella project
    +
    +  ExDoc can be used in an umbrella project and generates a single documentation
    +  for all child apps.
    +
    +  Generating documentation per each child app can be achieved by running:
    +
    +      mix cmd mix docs
    +
    +  See `mix help cmd` for more information.
    +  """
    +
    +  @switches [
    +    canonical: :string,
    +    debug: :boolean,
    +    formatter: :keep,
    +    language: :string,
    +    output: :string
    +  ]
    +
    +  @aliases [n: :canonical, f: :formatter, o: :output]
    +
    +  @doc false
    +  def run(args, config \\ Mix.Project.config, generator \\ &ExDoc.generate_docs/3) do
    +    Mix.Task.run "compile"
    +    {cli_opts, args, _} = OptionParser.parse(args, aliases: @aliases, switches: @switches)
    +
    +    if args != [] do
    +      Mix.raise "Extraneous arguments on the command line"
    +    end
    +
    +    project = to_string(config[:name] || config[:app])
    +    version = config[:version] || "dev"
    +    options =
    +      config
    +      |> get_docs_opts()
    +      |> Keyword.merge(cli_opts)
    +      |> normalize_source_url(config)   # accepted at root level config
    +      |> normalize_homepage_url(config) # accepted at root level config
    +      |> normalize_source_beam(config)
    +      |> normalize_main()
    +      |> normalize_deps()
    +
    +    for formatter <- get_formatters(options) do
    +      index = generator.(project, version, Keyword.put(options, :formatter, formatter))
    +      log(index)
    +      index
    +    end
    +  end
    +
    +  defp get_formatters(options) do
    +    case Keyword.get_values(options, :formatter) do
    +      [] -> options[:formatters] || [ExDoc.Config.default(:formatter)]
    +      values -> values
    +    end
    +  end
    +
    +  defp get_docs_opts(config) do
    +    docs = config[:docs]
    +    cond do
    +      is_function(docs, 0) -> docs.()
    +      is_nil(docs) -> []
    +      true -> docs
    +    end
    +  end
    +
    +  defp log(index) do
    +    Mix.shell.info [:green, "Docs successfully generated."]
    +    Mix.shell.info [:green, "View them at #{inspect index}."]
    +  end
    +
    +  defp normalize_source_url(options, config) do
    +    if source_url = config[:source_url] do
    +      Keyword.put(options, :source_url, source_url)
    +    else
    +      options
    +    end
    +  end
    +
    +  defp normalize_homepage_url(options, config) do
    +    if homepage_url = config[:homepage_url] do
    +      Keyword.put(options, :homepage_url, homepage_url)
    +    else
    +      options
    +    end
    +  end
    +
    +  defp normalize_source_beam(options, config) do
    +    compile_path =
    +      if Mix.Project.umbrella?(config) do
    +        umbrella_compile_paths()
    +      else
    +        Mix.Project.compile_path
    +      end
    +
    +    Keyword.put_new(options, :source_beam, compile_path)
    +  end
    +
    +  defp umbrella_compile_paths do
    +    # TODO: Use Mix.Project.apps_path when we require Elixir v1.4+
    +    build = Mix.Project.build_path()
    +    for %{app: app} <- Mix.Dep.Umbrella.unloaded do
    +      Path.join([build, "lib", Atom.to_string(app), "ebin"])
    +    end
    +  end
    +
    +  defp normalize_main(options) do
    +    main = options[:main]
    +    cond do
    +      is_nil(main) ->
    +        Keyword.delete(options, :main)
    +
    +      is_atom(main) ->
    +        Keyword.put(options, :main, inspect(main))
    +
    +      is_binary(main) ->
    +        options
    +    end
    +  end
    +
    +  defp normalize_deps(options) do
    +    deps =
    +      if deps = options[:deps] do
    +        Keyword.merge(get_deps(), deps)
    +      else
    +        get_deps()
    +      end
    +
    +    deps =
    +      for {app, doc} <- deps,
    +          lib_dir = :code.lib_dir(app),
    +          is_list(lib_dir),
    +          do: {List.to_string(lib_dir), doc}
    +
    +    Keyword.put(options, :deps, deps)
    +  end
    +
    +  defp get_deps do
    +    for {key, _} <- Mix.Project.deps_paths,
    +        _ = Application.load(key), # :ok | {:error, _}
    +        vsn = Application.spec(key, :vsn) do
    +      {key, "https://hexdocs.pm/#{key}/#{vsn}/"}
    +    end
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/ex_doc/mix.exs b/spec/fixtures/mix/deps/ex_doc/mix.exs
    new file mode 100644
    index 00000000..cc28cc73
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/ex_doc/mix.exs
    @@ -0,0 +1,90 @@
    +defmodule ExDoc.Mixfile do
    +  use Mix.Project
    +
    +  @version "0.18.3"
    +
    +  def project do
    +    [
    +      app: :ex_doc,
    +      version: @version,
    +      elixir: "~> 1.3",
    +      deps: deps(),
    +      aliases: aliases(),
    +      package: package(),
    +      escript: escript(),
    +      source_url: "https://github.com/elixir-lang/ex_doc/",
    +      test_coverage: [tool: ExCoveralls],
    +      preferred_cli_env: [coveralls: :test],
    +      description: "ExDoc is a documentation generation tool for Elixir",
    +      xref: [exclude: [Cmark, Markdown]],
    +      docs: docs()
    +   ]
    +  end
    +
    +  def application do
    +    []
    +  end
    +
    +  defp deps do
    +    [
    +      {:earmark, "~> 1.1"},
    +      {:cmark, "~> 0.5", only: :test},
    +      {:excoveralls, "~> 0.3", only: :test}
    +    ]
    +  end
    +
    +  defp aliases do
    +    [
    +      clean: [&clean_test_fixtures/1, "clean"]
    +    ]
    +  end
    +
    +  defp package do
    +   [
    +      licenses: ["Apache 2.0"],
    +      maintainers: ["José Valim", "Eksperimental", "Milton Mazzarri", "Friedel Ziegelmayer"],
    +      files: ["formatters", "lib", "mix.exs", "LICENSE", "CHANGELOG.md", "README.md"],
    +      links: %{
    +        "GitHub" => "https://github.com/elixir-lang/ex_doc",
    +        "Writing documentation" => "https://hexdocs.pm/elixir/writing-documentation.html"
    +      }
    +    ]
    +  end
    +
    +  defp escript do
    +    [
    +      main_module: ExDoc.CLI
    +    ]
    +  end
    +
    +  defp docs do
    +    [
    +      main: "readme",
    +      extras: ["README.md"],
    +      source_ref: "v#{@version}",
    +      source_url: "https://github.com/elixir-lang/ex_doc",
    +      groups_for_modules: [
    +        "Markdown": [
    +          ExDoc.Markdown,
    +          ExDoc.Markdown.Cmark,
    +          ExDoc.Markdown.Earmark,
    +          ExDoc.Markdown.Hoedown
    +        ],
    +
    +        "Formatter API": [
    +          ExDoc.Config,
    +          ExDoc.Formatter.EPUB,
    +          ExDoc.Formatter.HTML,
    +          ExDoc.Formatter.HTML.Autolink,
    +          ExDoc.FunctionNode,
    +          ExDoc.ModuleNode,
    +          ExDoc.TypeNode,
    +        ]
    +      ]
    +    ]
    +  end
    +
    +  defp clean_test_fixtures(_args) do
    +    File.rm_rf "test/tmp"
    +  end
    +end
    diff --git a/spec/fixtures/test_licenses/BSD-LICENSE b/spec/fixtures/mix/deps/inch_ex/.fetch
    similarity index 100%
    rename from spec/fixtures/test_licenses/BSD-LICENSE
    rename to spec/fixtures/mix/deps/inch_ex/.fetch
    diff --git a/spec/fixtures/mix/deps/inch_ex/.hex b/spec/fixtures/mix/deps/inch_ex/.hex
    new file mode 100644
    index 00000000..c8e39450
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/.hex
    @@ -0,0 +1,2 @@
    +inch_ex,0.4.0-dev,95f4d801cbba2aa19224100bf2c80622baa1be839a1274f2c915e4fc36cab498,hexpm
    +mix
    \ No newline at end of file
    diff --git a/spec/fixtures/mix/deps/inch_ex/CHANGELOG.md b/spec/fixtures/mix/deps/inch_ex/CHANGELOG.md
    new file mode 100644
    index 00000000..f73364a7
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/CHANGELOG.md
    @@ -0,0 +1,9 @@
    +# Changelog
    +
    +## 0.2.1
    +
    +- Added more specific console output in case `mix inch.report` fails
    +
    +## 0.2.0
    +
    +- Initial release
    diff --git a/spec/fixtures/output_metadata_errors/ruby_bundler-bundler-1.12.5-LICENSE.md b/spec/fixtures/mix/deps/inch_ex/LICENSE
    similarity index 91%
    rename from spec/fixtures/output_metadata_errors/ruby_bundler-bundler-1.12.5-LICENSE.md
    rename to spec/fixtures/mix/deps/inch_ex/LICENSE
    index e356f59f..3211d61e 100644
    --- a/spec/fixtures/output_metadata_errors/ruby_bundler-bundler-1.12.5-LICENSE.md
    +++ b/spec/fixtures/mix/deps/inch_ex/LICENSE
    @@ -1,7 +1,4 @@
    -Portions copyright (c) 2010 Andre Arko  
    -Portions copyright (c) 2009 Engine Yard
    -
    -MIT License
    +Copyright (c) 2014 René Föhring
     
     Permission is hereby granted, free of charge, to any person obtaining
     a copy of this software and associated documentation files (the
    diff --git a/spec/fixtures/mix/deps/inch_ex/README.md b/spec/fixtures/mix/deps/inch_ex/README.md
    new file mode 100644
    index 00000000..1250fede
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/README.md
    @@ -0,0 +1,196 @@
    +# InchEx [![Inline docs](http://inch-ci.org/github/rrrene/inch_ex.svg?branch=master)](http://inch-ci.org/github/rrrene/inch_ex)
    +
    +InchEx provides a Mix task to give you hints where to improve your inline docs. One Inch at a time.
    +
    +[Inch CI](http://inch-ci.org) is the corresponding web service that provides continuous coverage analysis for open source projects.
    +
    +
    +
    +## What can it do?
    +
    +InchEx is a utility that suggests places in your codebase where documentation can be improved.
    +
    +If there are no inline-docs yet, InchEx can tell you where to start.
    +
    +
    +
    +## Installation
    +
    +Add InchEx as a dependency in your `mix.exs` file.
    +
    +```elixir
    +defp deps do
    +  [{:inch_ex, only: :docs}]
    +end
    +```
    +
    +After you are done, run this in your shell to fetch the new dependency:
    +
    +    $ MIX_ENV=docs mix deps.get
    +
    +
    +## Usage
    +
    +To run Inch, simply type
    +
    +    $ MIX_ENV=docs mix inch
    +
    +and you will get something like the following:
    +
    +```bash
    +    $ MIX_ENV=docs mix inch
    +
    +    # Properly documented, could be improved:
    +
    +    ┃  B  ↑  Foo.complicated/5
    +
    +    # Undocumented:
    +
    +    ┃  U  ↑  Foo
    +    ┃  U  ↗  Foo.filename/1
    +
    +    Grade distribution (undocumented, C, B, A):  █  ▁ ▄ ▄
    +```
    +
    +If you have Inch installed it will run locally. If not, it will use the API of [inch-ci.org](http://inch-ci.org/) to display results. If you want to specify a certain Inch version you have installed (e.g. for testing), you can set the `INCH_PATH` environment variable.
    +
    +
    +
    +## Adding a project to Inch CI
    +
    +[Inch CI](https://inch-ci.org/) is a web service based on Inch, that provides an evaluation of a project's docs and a corresponding badge:
    +
    +> [![Inline docs](http://inch-ci.org/github/rrrene/inch_ex.svg?branch=master)](http://inch-ci.org/github/rrrene/inch_ex)
    +
    +Adding your project to [Inch CI](https://inch-ci.org/) and getting a badge is easy:
    +
    +```bash
    +    $ MIX_ENV=docs mix inchci.add
    +
    +                             Adding project to Inch CI ...
    +
    +    Successfully created build #1
    +    URL: http://inch-ci.org/github/rrrene/inch_ex
    +
    +    [ snip ]
    +```
    +
    +There is a blog post for [a screenshot and more information](http://trivelop.de/2015/05/19/elixir-inchci-add/).
    +
    +
    +
    +## Philosophy
    +
    +Inch was created to help people document their code, therefore it may be more important to look at **what it does not** do than at what it does.
    +
    +* It does not aim for "fully documented" or "100% documentation coverage".
    +* It does not tell you to document all your code (neither does it tell you not to).
    +* It does not impose rules on how your documentation should look like.
    +* It does not require that, e.g."every method's documentation should be a single line under 80 characters not ending in a period" or that "every class and module should provide a code example of their usage".
    +
    +Inch takes a more relaxed approach towards documentation measurement and tries to show you places where your codebase *could* use more documentation.
    +
    +
    +
    +### The Grade System
    +
    +Inch assigns grades to each module, function, macro or callback in a codebase, based on how complete the docs are.
    +
    +The grades are:
    +
    +* `A` - Seems really good
    +* `B` - Properly documented, but could be improved
    +* `C` - Needs work
    +* `U` - Undocumented
    +
    +Using this system has some advantages compared to plain coverage scores:
    +
    +* You can get an `A` even if you "only" get 90 out of 100 possible points.
    +* Getting a `B` is basically good enough.
    +* Undocumented objects are assigned a special grade, instead of scoring 0%.
    +
    +The last point might be the most important one: If objects are undocumented, there is nothing to evaluate. Therefore you can not simply give them a bad rating, because they might be left undocumented intentionally.
    +
    +
    +
    +### Priorities ↑ ↓
    +
    +Every class, module, constant and method in a codebase is assigned a priority which reflects how important Inch thinks it is to be documented.
    +
    +This process follows some reasonable rules, like
    +
    +* it is more important to document public methods than private ones
    +* it is more important to document methods with many parameters than methods without parameters
    +* it is not important to document objects marked as `@doc false`
    +
    +Priorities are displayed as arrows. Arrows pointing north mark high priority objects, arrows pointing south mark low priority objects.
    +
    +
    +
    +### No overall scores or grades
    +
    +Inch does not give you a grade for your whole codebase.
    +
    +"Why?" you might ask. Look at the example below:
    +
    +    Grade distribution (undocumented, C, B, A):  ▄  ▁ ▄ █
    +
    +In this example there is a part of code that is still undocumented, but
    +the vast majority of code is rated A or B.
    +
    +This tells you three things:
    +
    +* There is a significant amount of documentation present.
    +* The present documentation seems good.
    +* There are still undocumented methods.
    +
    +Inch does not really tell you what to do from here. It suggests objects and
    +files that could be improved to get a better rating, but that is all. This
    +way, it is perfectly reasonable to leave parts of your codebase
    +undocumented.
    +
    +Instead of reporting
    +
    +    coverage: 67.1%  46 ouf of 140 checks failed
    +
    +and leaving you with a bad feeling, Inch tells you there are still
    +undocumented objects without judging.
    +
    +This provides a lot more insight than an overall grade could, because an overall grade for the above example would either be an `A` (if the evaluation ignores undocumented objects) or a weak `C` (if the evaluation includes them).
    +
    +The grade distribution does a much better job of painting the bigger picture.
    +
    +
    +
    +## Further information
    +
    +I will point you to the [original Inch README](https://github.com/rrrene/inch#philosophy) for more information about the Inch project.
    +
    +
    +
    +## Contributing
    +
    +1. [Fork it!](http://github.com/rrrene/inch_ex/fork)
    +2. Create your feature branch (`git checkout -b my-new-feature`)
    +3. Commit your changes (`git commit -am 'Add some feature'`)
    +4. Push to the branch (`git push origin my-new-feature`)
    +5. Create new Pull Request
    +
    +
    +
    +## Author
    +
    +René Föhring (@rrrene)
    +
    +
    +
    +## Credits
    +
    +InchEx ows its existence to the extensive study and "code borrowing" from ExDoc.
    +
    +
    +
    +## License
    +
    +InchEx is released under the MIT License. See the LICENSE file for further
    +details.
    diff --git a/spec/fixtures/mix/deps/inch_ex/hex_metadata.config b/spec/fixtures/mix/deps/inch_ex/hex_metadata.config
    new file mode 100644
    index 00000000..fed71db7
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/hex_metadata.config
    @@ -0,0 +1,24 @@
    +{<<"app">>,<<"inch_ex">>}.
    +{<<"build_tools">>,[<<"mix">>]}.
    +{<<"contributors">>,[<<"René Föhring">>]}.
    +{<<"description">>,<<"Elixir wrapper for Inch">>}.
    +{<<"elixir">>,<<"~> 1.0">>}.
    +{<<"files">>,
    + [<<"lib/inch_ex.ex">>,<<"lib/inch_ex/docs/formatter.ex">>,
    +  <<"lib/inch_ex/docs/retriever.ex">>,<<"lib/inch_ex/env.ex">>,
    +  <<"lib/inch_ex/git.ex">>,<<"lib/inch_ex/git_hub.ex">>,
    +  <<"lib/inch_ex/reporter.ex">>,<<"lib/inch_ex/reporter/local.ex">>,
    +  <<"lib/inch_ex/reporter/remote.ex">>,<<"lib/inch_ex/setup.ex">>,
    +  <<"lib/inch_ex/setup/readme_badge.ex">>,
    +  <<"lib/inch_ex/setup/travis_after_script.ex">>,<<"lib/mix/tasks/inch.ex">>,
    +  <<"lib/mix/tasks/inch_report.ex">>,<<"lib/mix/tasks/inchci_add.ex">>,
    +  <<"mix.exs">>,<<"README.md">>,<<"LICENSE">>,<<"CHANGELOG.md">>]}.
    +{<<"licenses">>,[<<"MIT">>]}.
    +{<<"links">>,[{<<"GitHub">>,<<"https://github.com/rrrene/inch_ex">>}]}.
    +{<<"name">>,<<"inch_ex">>}.
    +{<<"requirements">>,
    + [{<<"poison">>,
    +   [{<<"app">>,<<"poison">>},
    +    {<<"optional">>,false},
    +    {<<"requirement">>,<<"~> 1.2">>}]}]}.
    +{<<"version">>,<<"0.4.0-dev">>}.
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex.ex
    new file mode 100644
    index 00000000..cdeaa396
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex.ex
    @@ -0,0 +1,77 @@
    +# Original code adapted from ExDoc
    +
    +defmodule InchEx do
    +  defmodule Config do
    +    defstruct [
    +      output: "docs", source_root: nil, source_url: nil, source_url_pattern: nil,
    +      homepage_url: nil, source_beam: nil, retriever: InchEx.Docs.Retriever,
    +      formatter: InchEx.Docs.Formatter, project: nil, version: nil, main: nil,
    +      readme: false, formatter_opts: []
    +    ]
    +  end
    +
    +  defmodule Helper do
    +    def map_tuple_to_list(tuple) when is_tuple(tuple) do
    +      map_tuple_to_list Tuple.to_list(tuple)
    +    end
    +
    +    def map_tuple_to_list([head | tail]) when is_tuple(head) do
    +      [map_tuple_to_list(head)] ++ map_tuple_to_list(tail)
    +    end
    +
    +    def map_tuple_to_list([head | tail]) when is_list(head) do
    +      list = Enum.map(head, fn x -> map_tuple_to_list(x) end)
    +      [list] ++ map_tuple_to_list(tail)
    +    end
    +
    +    def map_tuple_to_list([head | tail]) do
    +      [head] ++ map_tuple_to_list(tail)
    +    end
    +
    +    def map_tuple_to_list(value) do
    +      value
    +    end
    +  end
    +
    +  @doc false
    +  def generate_docs(project, version, args, options) when is_binary(project) and is_binary(version) and is_list(options) do
    +    config = build_config(project, version, options)
    +    docs = config.retriever.docs_from_dir(config.source_beam, config)
    +    config.formatter.run(docs, args, config)
    +  end
    +
    +  defp build_config(project, version, options) do
    +    options = normalize_options(options)
    +    preconfig = %Config{
    +      project: project,
    +      version: version,
    +      main: options[:main] || project,
    +      homepage_url: options[:homepage_url],
    +      source_root: options[:source_root] || File.cwd!,
    +    }
    +    struct(preconfig, options)
    +  end
    +
    +  # Helpers
    +
    +  defp normalize_options(options) do
    +    pattern = options[:source_url_pattern] || guess_url(options[:source_url], options[:source_ref] || "master")
    +    Keyword.put(options, :source_url_pattern, pattern)
    +  end
    +
    +  defp guess_url(url = <<"https://github.com/", _ :: binary>>, ref) do
    +    append_slash(url) <> "blob/#{ref}/%{path}#L%{line}"
    +  end
    +
    +  defp guess_url(url = <<"https://bitbucket.org/", _ :: binary>>, ref) do
    +    append_slash(url) <> "src/#{ref}/%{path}#cl-%{line}"
    +  end
    +
    +  defp guess_url(other, _) do
    +    other
    +  end
    +
    +  defp append_slash(url) do
    +    if :binary.last(url) == ?/, do: url, else: url <> "/"
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/formatter.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/formatter.ex
    new file mode 100644
    index 00000000..aae376da
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/formatter.ex
    @@ -0,0 +1,78 @@
    +defmodule InchEx.Docs.Formatter do
    +  @version Mix.Project.config[:version]
    +
    +  @moduledoc """
    +  Provide JSON-formatted documentation
    +  """
    +
    +  @doc """
    +  Generate JSON documentation for the given modules.
    +
    +  Returns the path of the generated JSON file.
    +  """
    +  def run(modules, args, config)  do
    +    output = Path.expand(config.output)
    +    :ok = File.mkdir_p output
    +
    +    list = all(modules) # |> Enum.map(fn(x) -> Map.to_list(x) end)
    +    data = %{:language => "elixir", :client_name => "inch_ex", :args => args}
    +    data = Map.put(data, :client_version, @version)
    +    data = Map.put(data, :git_repo_url, InchEx.Git.repo_https_url)
    +    data = Map.put(data, :revision, InchEx.Git.revision)
    +    data = Map.put(data, :objects, list)
    +
    +    cond do
    +      InchEx.Env.travis? ->
    +        data = Map.put(data, :travis, true)
    +        data = Map.put(data, :travis_job_id, System.get_env("TRAVIS_JOB_ID"))
    +        data = Map.put(data, :branch_name, System.get_env("TRAVIS_BRANCH"))
    +
    +      InchEx.Env.circleci? ->
    +        data = Map.put(data, :circleci, true)
    +        data = Map.put(data, :branch_name, System.get_env("CIRCLE_BRANCH"))
    +
    +      InchEx.Env.unknown_ci? ->
    +        data = Map.put(data, :ci, true)
    +        data = Map.put(data, :branch_name, InchEx.Git.branch_name)
    +
    +      true ->
    +        data = Map.put(data, :shell, true)
    +        data = Map.put(data, :branch_name, InchEx.Git.branch_name)
    +    end
    +
    +    save_as_json(output, data)
    +    Path.join(config.output, "all.json")
    +  end
    +
    +  defp all(modules) do
    +    project_funs = for m <- modules, d <- m.docs, do: fun(m, d)
    +    project_modules = for m <- modules, do: mod(m)
    +    Enum.concat(project_modules, project_funs)
    +  end
    +
    +  defp fun(module, func) do
    +    o_type = Map.get(func, :__struct__) |> inspect |> object_type
    +    list = Map.delete(func, :__struct__)
    +    list = Map.put(list, :module_id, inspect(module.module))
    +    list = Map.put(list, :object_type, o_type)
    +    list = Map.delete(list, :docs)
    +    list
    +  end
    +
    +  defp mod(module) do
    +    o_type = Map.get(module, :__struct__) |> inspect |> object_type
    +    list = Map.delete(module, :__struct__)
    +    list = Map.put(list, :object_type, o_type)
    +    list = Map.delete(list, :docs)
    +    list
    +  end
    +
    +  defp save_as_json(output, data) do
    +    json = Poison.Encoder.encode(data, [])
    +    :ok = File.write("#{output}/all.json", json)
    +  end
    +
    +  defp object_type(str) do
    +    String.replace(str, "InchEx.", "")
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/retriever.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/retriever.ex
    new file mode 100644
    index 00000000..4784b45f
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/docs/retriever.ex
    @@ -0,0 +1,223 @@
    +# Original code adapted from ExDoc
    +
    +defmodule InchEx.ModuleObject do
    +  defstruct id: nil, module: nil, moduledoc: nil,
    +    docs: [], source: nil, type: nil
    +end
    +
    +defmodule InchEx.FunctionObject do
    +  defstruct id: nil, name: nil, arity: 0, doc: [],
    +    source: nil, type: nil, signature: nil
    +end
    +
    +defmodule InchEx.TypeObject do
    +  defstruct id: nil, name: nil, arity: 0, type: nil,
    +    doc: nil
    +end
    +
    +defmodule InchEx.Docs.Retriever.Error do
    +  defexception [:message]
    +end
    +
    +defmodule InchEx.Docs.Retriever do
    +  @moduledoc """
    +  Functions to extract documentation information from modules.
    +  """
    +
    +  alias InchEx.Docs.Retriever.Error
    +
    +  @doc """
    +  Extract documentation from all modules in the specified directory
    +  """
    +  def docs_from_dir(dir, config) do
    +    files = Path.wildcard Path.expand("Elixir.*.beam", dir)
    +    docs_from_files(files, config)
    +  end
    +
    +  @doc """
    +  Extract documentation from all modules in the specified list of files
    +  """
    +  def docs_from_files(files, config) when is_list(files) do
    +    files
    +    |> Enum.map(&filename_to_module(&1))
    +    |> docs_from_modules(config)
    +  end
    +
    +  @doc """
    +  Extract documentation from all modules in the list `modules`
    +  """
    +  def docs_from_modules(modules, config) when is_list(modules) do
    +    modules
    +    |> Enum.map(&get_module(&1, config))
    +    |> Enum.filter(fn(x) -> x end)
    +    |> Enum.sort(&(&1.id <= &2.id))
    +  end
    +
    +  defp filename_to_module(name) do
    +    name = Path.basename name, ".beam"
    +    String.to_atom name
    +  end
    +
    +  # Get all the information from the module and compile
    +  # it. If there is an error while retrieving the information (like
    +  # the module is not available or it was not compiled
    +  # with --docs flag), we raise an exception.
    +  defp get_module(module, config) do
    +    unless Code.ensure_loaded?(module), do:
    +      raise(Error, message: "module #{inspect module} is not defined/available")
    +
    +    type = detect_type(module)
    +
    +    module
    +    |> verify_module()
    +    |> generate_node(type, config)
    +  end
    +
    +  defp verify_module(module) do
    +    case Code.get_docs(module, :moduledoc) do
    +      {_line, false} ->
    +        nil
    +      {_, _} ->
    +        module
    +      nil ->
    +        raise(Error, message: "module #{inspect module} was not compiled with flag --docs")
    +    end
    +  end
    +
    +  defp generate_node(nil, _, _), do: nil
    +
    +  defp generate_node(module, type, config) do
    +    source_url  = config.source_url_pattern
    +    source_path = source_path(module, config)
    +
    +    specs = Enum.into(Kernel.Typespec.beam_specs(module) || [], %{})
    +    callbacks = callbacks_implemented_by(module)
    +
    +    docs = Enum.filter_map Code.get_docs(module, :docs), &has_doc?(&1, type),
    +                           &get_function(&1, source_path, source_url, specs, callbacks)
    +
    +    if type == :behaviour do
    +      callbacks = Enum.into(Kernel.Typespec.beam_callbacks(module) || [], %{})
    +      docs = Enum.map(Enum.sort(module.__behaviour__(:docs)),
    +                      &get_callback(&1, source_path, source_url, callbacks)) ++ docs
    +    end
    +
    +    { line, moduledoc } = Code.get_docs(module, :moduledoc)
    +
    +    %InchEx.ModuleObject{
    +      id: inspect(module),
    +      module: module,
    +      type: type,
    +      moduledoc: moduledoc,
    +      docs: docs,
    +      source: source_link(source_path, source_url, line),
    +    }
    +  end
    +
    +  # Helpers
    +
    +  # Skip impl_for and impl_for! for protocols
    +  defp has_doc?({{name, _}, _, _, _, nil}, :protocol) when name in [:impl_for, :impl_for!] do
    +    false
    +  end
    +
    +  # Skip docs explicitly marked as false
    +  #defp has_doc?({_, _, _, _, false}, _) do
    +  #  false
    +  #end
    +
    +  # Skip default docs if starting with _
    +  defp has_doc?({{name, _}, _, _, _, nil}, _type) do
    +    hd(Atom.to_char_list(name)) != ?_
    +  end
    +
    +  # Everything else is ok
    +  defp has_doc?(_, _) do
    +    true
    +  end
    +
    +  defp get_function(function, source_path, source_url, _all_specs, cb_impls) do
    +    { { name, arity }, line, type, signature, doc } = function
    +    behaviour = Dict.get(cb_impls, { name, arity })
    +
    +    doc =
    +      if is_nil(doc) && behaviour do
    +        false
    +      else
    +        doc
    +      end
    +
    +    %InchEx.FunctionObject{
    +      id: "#{name}/#{arity}",
    +      name: name,
    +      arity: arity,
    +      doc: doc,
    +      signature: InchEx.Helper.map_tuple_to_list(signature),
    +      source: source_link(source_path, source_url, line),
    +      type: type
    +    }
    +  end
    +
    +  defp get_callback(callback, source_path, source_url, _callbacks) do
    +    { { name, arity }, line, _kind, doc } = callback
    +
    +    %InchEx.FunctionObject{
    +      id: "#{name}/#{arity}",
    +      name: name,
    +      arity: arity,
    +      doc: doc,
    +      signature: nil,
    +      source: source_link(source_path, source_url, line),
    +      type: :defcallback
    +    }
    +  end
    +
    +  # Detect if a module is an exception, struct,
    +  # protocol, implementation or simply a module
    +  defp detect_type(module) do
    +    cond do
    +      function_exported?(module, :__struct__, 0) ->
    +        case module.__struct__ do
    +          %{__exception__: true} -> :exception
    +          _ -> nil
    +        end
    +      function_exported?(module, :__protocol__, 1) -> :protocol
    +      function_exported?(module, :__impl__, 1) -> :impl
    +      function_exported?(module, :__behaviour__, 1) -> :behaviour
    +      true -> nil
    +    end
    +  end
    +
    +  # Returns a dict of { name, arity } -> [ behaviour_module ].
    +  defp callbacks_implemented_by(module) do
    +    behaviours_implemented_by(module)
    +    |> Enum.map(fn behaviour -> Enum.map(callbacks_of(behaviour), &{ &1, behaviour }) end)
    +    |> Enum.reduce(%{}, &Enum.into/2)
    +  end
    +
    +  defp callbacks_of(module) do
    +    module.module_info(:attributes)
    +    |> Enum.filter_map(&match?({ :callback, _ }, &1), fn {_, [{t,_}|_]} -> t end)
    +  end
    +
    +  defp behaviours_implemented_by(module) do
    +    module.module_info(:attributes)
    +    |> Stream.filter(&match?({ :behaviour, _ }, &1))
    +    |> Stream.map(fn {_, l} -> l end)
    +    |> Enum.concat()
    +  end
    +
    +  defp source_link(source_path, _source_url, line) do
    +    "#{source_path}:#{line}"
    +  end
    +
    +  defp source_path(module, config) do
    +    source = module.__info__(:compile)[:source]
    +
    +    if root = config.source_root do
    +      Path.relative_to(source, root)
    +    else
    +      source
    +    end
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/env.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/env.ex
    new file mode 100644
    index 00000000..e5b917e8
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/env.ex
    @@ -0,0 +1,21 @@
    +defmodule InchEx.Env do
    +  @doc "Returns true if run on arbitrary machine."
    +  def unknown? do
    +    !circleci? && !travis? && !unknown_ci?
    +  end
    +
    +  @doc "Returns true if not run on any known CI, but seems to be on CI."
    +  def unknown_ci? do
    +    !circleci? && !travis? && System.get_env("CI") == "true"
    +  end
    +
    +  @doc "Returns true if run on CircleCI."
    +  def circleci? do
    +    System.get_env("CIRCLECI") == "true"
    +  end
    +
    +  @doc "Returns true if run on Travis."
    +  def travis? do
    +    System.get_env("TRAVIS") == "true"
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git.ex
    new file mode 100644
    index 00000000..e02b9bff
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git.ex
    @@ -0,0 +1,44 @@
    +defmodule InchEx.Git do
    +  @moduledoc """
    +    Provide information about the Git repo in the cwd.
    +  """
    +
    +  @doc """
    +    Returns true if there are any modified or untracked files in the
    +    working dir.
    +  """
    +  def dirty? do
    +    git_output(["status", "--porcelain"]) != ""
    +  end
    +
    +  @doc "Returns the https git URL of the repo."
    +  def repo_https_url do
    +    origin_url |> rewrite_git_ssh_url_to_https
    +  end
    +
    +  @doc "Returns the git URL of the repo."
    +  def origin_url do
    +    git_output(["ls-remote", "--get-url", "origin"])
    +  end
    +
    +  @doc "Returns the name of the current branch."
    +  def branch_name do
    +    git_output(["rev-parse", "--abbrev-ref", "HEAD"])
    +  end
    +
    +  @doc "Returns the SHA1 of the current revision."
    +  def revision do
    +    git_output(["rev-parse", "HEAD"])
    +  end
    +
    +  defp git_output(args) do
    +    case System.cmd("git", args) do
    +      {output, 0} -> String.strip(output)
    +      {output, _} -> String.strip(output)
    +    end
    +  end
    +
    +  defp rewrite_git_ssh_url_to_https(url) do
    +    String.replace(url, "git@github.com:", "https://github.com/")
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git_hub.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git_hub.ex
    new file mode 100644
    index 00000000..ed340c4c
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/git_hub.ex
    @@ -0,0 +1,21 @@
    +defmodule InchEx.GitHub do
    +  def open_source?("https://github.com/" <> slug) do
    +    nwo = String.replace(slug, ~r/\.git$/, "")
    +    case github_repo_info(nwo) do
    +      {:ok, json} -> json["private"] == false
    +      _ -> false
    +    end
    +  end
    +
    +  def open_source?(_) do
    +    false
    +  end
    +
    +  defp github_repo_info(nwo) do
    +    case :httpc.request(:get, {'https://api.github.com/repos/#{nwo}', [{'User-Agent', 'inch_ex'}]}, [], []) do
    +      {:ok, {_, _, body}} ->
    +        {:ok, Poison.decode!(body)}
    +      _ -> {:error}
    +    end
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter.ex
    new file mode 100644
    index 00000000..91bce7cd
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter.ex
    @@ -0,0 +1,17 @@
    +defmodule InchEx.Reporter do
    +
    +  def handle_success(output) do
    +    # is this really the only way to binwrite to stdout?
    +    {:ok, pid} = StringIO.open("")
    +    IO.binwrite pid, output
    +    {_, contents} = StringIO.contents(pid)
    +    StringIO.close pid
    +    IO.write contents
    +    {:ok, contents}
    +  end
    +
    +  def handle_error(output) do
    +    IO.puts output
    +    {:error, output}
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/local.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/local.ex
    new file mode 100644
    index 00000000..c3c2e6ea
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/local.ex
    @@ -0,0 +1,54 @@
    +defmodule InchEx.Reporter.Local do
    +  @cli_api_end_point 'http://inch-ci.org/api/v1/cli'
    +
    +  @doc """
    +    Runs inch locally, if installed. If you want to force usage of a particular
    +    inch installation, set INCH_PATH environment variable:
    +
    +      export INCH_PATH=/home/rrrene/projects/inch
    +
    +    Otherwise, InchEx will take whatever `inch` command it finds. If it does
    +    not find any, it sends the data to the open API at inch-ci.org (or the
    +    endpoint defined in the INCH_CLI_API environment variable) to perform
    +    the analysis and reports the findings back.
    +
    +    Returns a tuple `{:ok, _}` if successful, `{:error, _}` otherwise.
    +  """
    +  def run(filename, args \\ []) do
    +    if local_inch? do
    +      local_inch(args ++ ["--language=elixir", "--read-from-dump=#{filename}"])
    +    else
    +      data = File.read!(filename)
    +      case :httpc.request(:post, {inch_cli_api_endpoint, [], 'application/json', data}, [], []) do
    +        {:ok, {_, _, body}} -> InchEx.Reporter.handle_success(body)
    +        {:error, {:failed_connect, _, _}} -> InchEx.Reporter.handle_error "Connect failed."
    +        _ -> InchEx.Reporter.handle_error "InchEx failed."
    +      end
    +    end
    +  end
    +
    +  defp inch_cli_api_endpoint do
    +    case System.get_env("INCH_CLI_API") do
    +      nil -> @cli_api_end_point
    +      url -> to_char_list url
    +    end
    +  end
    +
    +  defp inch_cmd do
    +    case System.get_env("INCH_PATH") do
    +      nil -> System.find_executable("inch")
    +      dir -> Path.join([dir, "bin", "inch"])
    +    end
    +  end
    +
    +  defp local_inch? do
    +    !is_nil(inch_cmd)
    +  end
    +
    +  defp local_inch(args) do
    +    case System.cmd(inch_cmd, args) do
    +      {output, 0} -> InchEx.Reporter.handle_success(output)
    +      {output, _} -> InchEx.Reporter.handle_error(output)
    +    end
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/remote.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/remote.ex
    new file mode 100644
    index 00000000..922469f6
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/reporter/remote.ex
    @@ -0,0 +1,47 @@
    +defmodule InchEx.Reporter.Remote do
    +  @build_api_end_point 'http://inch-ci.org/api/v1/builds'
    +
    +  @doc """
    +    Runs inch remotely, if already invented.
    +
    +    Returns a tuple `{:ok, _}` if successful, `{:error, _}` otherwise.
    +  """
    +  def run(filename, _) do
    +    if valid? do
    +      data = File.read!(filename)
    +      case :httpc.request(:post, {inch_build_api_endpoint, [], 'application/json', data}, [], []) do
    +        {:ok, {_, _, body}} -> InchEx.Reporter.handle_success(body)
    +        {:error, {:failed_connect, _, _}} -> InchEx.Reporter.handle_error "InchEx failed to connect."
    +        _ -> InchEx.Reporter.handle_error "InchEx failed."
    +      end
    +    else
    +      InchEx.Reporter.handle_error "InchEx skipped."
    +    end
    +  end
    +
    +  defp inch_build_api_endpoint do
    +    case System.get_env("INCH_BUILD_API") do
    +      nil -> @build_api_end_point
    +      url -> url |> String.to_char_list
    +    end
    +  end
    +
    +  # We do not want data from builds which only validate PRs
    +  defp valid? do
    +    cond do
    +      InchEx.Env.circleci? -> valid?(:circleci)
    +      InchEx.Env.travis? -> valid?(:travis)
    +      true -> true
    +    end
    +  end
    +
    +  # We do not want data from builds which only validate PRs
    +  defp valid?(:travis) do
    +    System.get_env("TRAVIS_PULL_REQUEST") == "false"
    +  end
    +
    +  # We do not want data from builds which only validate PRs
    +  defp valid?(:circleci) do
    +    is_nil(System.get_env("CI_PULL_REQUEST"))
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup.ex
    new file mode 100644
    index 00000000..99210c19
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup.ex
    @@ -0,0 +1,14 @@
    +defmodule InchEx.Setup do
    +  def print(text, options \\ []) do
    +     IO.ANSI.Docs.print(text, options)
    +  end
    +
    +  def print_heading(heading, options \\ []) do
    +     IO.ANSI.Docs.print_heading(heading, options)
    +  end
    +
    +  def run(output) do
    +    InchEx.Setup.ReadmeBadge.run(output)
    +    InchEx.Setup.TravisAfterScript.run(output)
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/readme_badge.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/readme_badge.ex
    new file mode 100644
    index 00000000..2252cfbd
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/readme_badge.ex
    @@ -0,0 +1,33 @@
    +defmodule InchEx.Setup.ReadmeBadge do
    +  @readme_filename "README.md"
    +
    +  def run? do
    +    File.exists?(@readme_filename)
    +  end
    +
    +  def run(output) do
    +    if run? do
    +      IO.puts ""
    +      extract_url(output) |> get_badge_url |> textify |> InchEx.Setup.print
    +    end
    +  end
    +
    +  defp textify(badge_url) do
    +    """
    +    ## Documentation as first-class citizen
    +
    +    You can now add this badge to your #{@readme_filename}:
    +
    +        #{badge_url}
    +    """
    +  end
    +
    +  defp extract_url(text) do
    +    [_, url] = Regex.run(~r/URL:\ (.+)$/, text)
    +    url
    +  end
    +
    +  defp get_badge_url(project_url) do
    +    "[![Inline docs](#{project_url}.svg)](#{project_url})"
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/travis_after_script.ex b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/travis_after_script.ex
    new file mode 100644
    index 00000000..19f41e9f
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/inch_ex/setup/travis_after_script.ex
    @@ -0,0 +1,37 @@
    +defmodule InchEx.Setup.TravisAfterScript do
    +  @travis_filename ".travis.yml"
    +  @sample_project "https://github.com/inch-ci/Hello-World-Elixir"
    +
    +  def run? do
    +    File.exists?(@travis_filename)
    +  end
    +
    +  def run(_) do
    +    if run? do
    +      textify |> InchEx.Setup.print
    +    end
    +  end
    +
    +  defp textify() do
    +    """
    +    ## Run InchEx automatically via Travis
    +
    +    To run InchEx every time your tests run, configure InchEx as a dependency only loaded in the `docs` environment. Update the `:inch_ex` dependency with the `:only` option:
    +
    +        defp deps do
    +          [
    +            ...
    +            {:inch_ex, only: :docs}
    +          ]
    +        end
    +
    +    Then, add the following `after_script` to your #{@travis_filename}:
    +
    +        after_script:
    +          - mix deps.get --only docs
    +          - MIX_ENV=docs mix inch.report
    +
    +    Example on GitHub: #{@sample_project}
    +    """
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch.ex b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch.ex
    new file mode 100644
    index 00000000..6118b22a
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch.ex
    @@ -0,0 +1,60 @@
    +# Original code adapted from ExDoc
    +
    +defmodule Mix.Tasks.Inch do
    +  use Mix.Task
    +
    +  @shortdoc "Show documentation evaluation for the project"
    +  @version Mix.Project.config[:version]
    +  @recursive true
    +
    +  @doc false
    +  def run(args, config \\ Mix.Project.config, generator \\ &InchEx.generate_docs/4, reporter \\ InchEx.Reporter.Local) do
    +    Mix.Task.run "compile"
    +
    +    case args do
    +      ["-v"] -> print_version
    +      ["--version"] -> print_version
    +      _ -> nil
    +    end
    +
    +    project = (config[:name] || config[:app]) |> to_string
    +    version = config[:version] || "dev"
    +    options = get_docs_opts(config)
    +
    +    if source_url = config[:source_url] do
    +      options = Keyword.put(options, :source_url, source_url)
    +    end
    +
    +    cond do
    +      is_nil(options[:main]) ->
    +        # Try generating main module's name from the app name
    +        options = Keyword.put(options, :main, (config[:app] |> Atom.to_string |> Mix.Utils.camelize))
    +
    +      is_atom(options[:main]) ->
    +        options = Keyword.update!(options, :main, &inspect/1)
    +
    +      is_binary(options[:main]) ->
    +        options
    +    end
    +
    +    options = Keyword.put_new(options, :source_beam, Mix.Project.compile_path)
    +    options = Keyword.put_new(options, :retriever, InchEx.Docs.Retriever)
    +    options = Keyword.put_new(options, :formatter, InchEx.Docs.Formatter)
    +
    +    json_filename = generator.(project, version, args, options)
    +    reporter.run(json_filename, args)
    +  end
    +
    +  defp get_docs_opts(config) do
    +    docs = config[:docs]
    +    cond do
    +      is_function(docs, 0) -> docs.()
    +      is_nil(docs) -> []
    +      true -> docs
    +    end
    +  end
    +
    +  defp print_version do
    +    IO.puts "inch_ex #{@version}"
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch_report.ex b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch_report.ex
    new file mode 100644
    index 00000000..82d54947
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inch_report.ex
    @@ -0,0 +1,10 @@
    +defmodule Mix.Tasks.Inch.Report do
    +  use Mix.Task
    +
    +  @recursive true
    +
    +  @doc false
    +  def run(_, config \\ Mix.Project.config, generator \\ &InchEx.generate_docs/4, reporter \\ InchEx.Reporter.Remote) do
    +    Mix.Tasks.Inch.run([], config, generator, reporter)
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inchci_add.ex b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inchci_add.ex
    new file mode 100644
    index 00000000..b8a11b5e
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/lib/mix/tasks/inchci_add.ex
    @@ -0,0 +1,33 @@
    +defmodule Mix.Tasks.Inchci.Add do
    +  use Mix.Task
    +
    +  @shortdoc "Add the project to inch-ci.org"
    +  @recursive true
    +
    +  @inch_ex_github_url Mix.Project.config[:source_url]
    +  @not_github_error """
    +  Currently, only open source projects hosted on GitHub can be added to
    +  https://inch-ci.org
    +
    +  If your project is actually hosted on GitHub and this is an error or
    +  if you want to propose another hosting service to be added, please open
    +  an issue: #{@inch_ex_github_url}
    +  """
    +
    +  @doc false
    +  def run(_) do
    +    InchEx.Setup.print_heading "Adding project to Inch CI ..."
    +    if InchEx.GitHub.open_source?(InchEx.Git.repo_https_url) do
    +      add_to_inch_ci
    +    else
    +      InchEx.Setup.print @not_github_error
    +    end
    +  end
    +
    +  defp add_to_inch_ci do
    +    case Mix.Tasks.Inch.Report.run([]) do
    +      {:ok, output} -> InchEx.Setup.run(output)
    +      {:error} -> nil
    +    end
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/inch_ex/mix.exs b/spec/fixtures/mix/deps/inch_ex/mix.exs
    new file mode 100644
    index 00000000..9f7a1e60
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/inch_ex/mix.exs
    @@ -0,0 +1,43 @@
    +defmodule InchEx.Mixfile do
    +  use Mix.Project
    +
    +  def project do
    +    [
    +      app: :inch_ex,
    +      version: "0.4.0-dev",
    +      elixir: "~> 1.0",
    +      description: "Elixir wrapper for Inch",
    +      source_url: "https://github.com/rrrene/inch_ex",
    +      package: [
    +        contributors: ["René Föhring"],
    +        licenses: ["MIT"],
    +        links: %{
    +         "GitHub" => "https://github.com/rrrene/inch_ex",
    +        }
    +      ],
    +      deps: deps
    +    ]
    +  end
    +
    +  # Configuration for the OTP application
    +  #
    +  # Type `mix help compile.app` for more information
    +  def application do
    +    [applications: [:logger]]
    +  end
    +
    +  # Dependencies can be Hex packages:
    +  #
    +  #   {:mydep, "~> 0.3.0"}
    +  #
    +  # Or git/path repositories:
    +  #
    +  #   {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
    +  #
    +  # Type `mix help deps` for more examples and options
    +  defp deps do
    +    [
    +      {:poison, "~> 1.2"}
    +    ]
    +  end
    +end
    diff --git a/spec/fixtures/test_licenses/COPYING b/spec/fixtures/mix/deps/poison/.fetch
    similarity index 100%
    rename from spec/fixtures/test_licenses/COPYING
    rename to spec/fixtures/mix/deps/poison/.fetch
    diff --git a/spec/fixtures/mix/deps/poison/.hex b/spec/fixtures/mix/deps/poison/.hex
    new file mode 100644
    index 00000000..46288229
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/.hex
    @@ -0,0 +1,2 @@
    +poison,1.5.2,560bdfb7449e3ddd23a096929fb9fc2122f709bcc758b2d5d5a5c7d0ea848910,hexpm
    +mix
    \ No newline at end of file
    diff --git a/spec/fixtures/mix/deps/poison/LICENSE b/spec/fixtures/mix/deps/poison/LICENSE
    new file mode 100644
    index 00000000..a28a3fc9
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/LICENSE
    @@ -0,0 +1,13 @@
    +Copyright (c) 2014, Devin Alexander Torres 
    +
    +Permission to use, copy, modify, and/or distribute this software for any
    +purpose with or without fee is hereby granted, provided that the above
    +copyright notice and this permission notice appear in all copies.
    +
    +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    diff --git a/spec/fixtures/mix/deps/poison/README.md b/spec/fixtures/mix/deps/poison/README.md
    new file mode 100644
    index 00000000..32bcee24
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/README.md
    @@ -0,0 +1,121 @@
    +# Poison
    +
    +[![Travis](https://img.shields.io/travis/devinus/poison.svg?style=flat-square)](https://travis-ci.org/devinus/poison)
    +[![Hex.pm](https://img.shields.io/hexpm/v/poison.svg?style=flat-square)](https://hex.pm/packages/poison)
    +[![Hex.pm](https://img.shields.io/hexpm/dt/poison.svg?style=flat-square)](https://hex.pm/packages/poison)
    +[![Gratipay](https://img.shields.io/gratipay/devinus.svg?style=flat-square)](https://gratipay.com/devinus)
    +
    +Poison is a new JSON library for Elixir focusing on wicked-fast **speed**
    +without sacrificing **simplicity**, **completeness**, or **correctness**.
    +
    +Poison takes several approaches to be the fastest JSON library for Elixir.
    +
    +Poison uses extensive [sub binary matching][1], a **hand-rolled parser** using
    +several techniques that are [known to benefit HiPE][2] for native compilation,
    +[IO list][3] encoding and **single-pass** decoding.
    +
    +Preliminary benchmarking has sometimes put Poison's performance closer to
    +`jiffy`, and almost always faster than existing Elixir libraries.
    +
    +## Installation
    +
    +First, add Poison to your `mix.exs` dependencies:
    +
    +```elixir
    +def deps do
    +  [{:poison, "~> 1.5"}]
    +end
    +```
    +
    +Then, update your dependencies:
    +
    +```sh-session
    +$ mix deps.get
    +```
    +
    +## Usage
    +
    +```elixir
    +defmodule Person do
    +  @derive [Poison.Encoder]
    +  defstruct [:name, :age]
    +end
    +
    +Poison.encode!(%Person{name: "Devin Torres", age: 27})
    +#=> "{\"name\":\"Devin Torres\",\"age\":27}"
    +
    +Poison.decode!(~s({"name": "Devin Torres", "age": 27}), as: Person)
    +#=> %Person{name: "Devin Torres", age: 27}
    +
    +Poison.decode!(~s({"people": [{"name": "Devin Torres", "age": 27}]}),
    +  as: %{"people" => [Person]})
    +#=> %{"people" => [%Person{age: 27, name: "Devin Torres"}]}
    +```
    +
    +Every component of Poison -- the encoder, decoder, and parser -- are all usable
    +on their own without buying into other functionality. For example, if you were
    +interested purely in the speed of parsing JSON without a decoding step, you
    +could simply call `Poison.Parser.parse`.
    +
    +## Parser
    +
    +```iex
    +iex> Poison.Parser.parse!(~s({"name": "Devin Torres", "age": 27}))
    +%{"name" => "Devin Torres", "age" => 27}
    +iex> Poison.Parser.parse!(~s({"name": "Devin Torres", "age": 27}), keys: :atoms!)
    +%{name: "Devin Torres", age: 27}
    +```
    +
    +Note that `keys: :atoms!` reuses existing atoms, i.e. if `:name` was not
    +allocated before the call, you will encounter an `argument error` message.
    +
    +You can use the `keys: :atoms` variant to make sure all atoms are created as
    +needed.  However, unless you absolutely know what you're doing, do **not** do
    +it.  Atoms are not garbage-collected, see
    +[Erlang Efficiency Guide](http://www.erlang.org/doc/efficiency_guide/commoncaveats.html)
    +for more info:
    +
    +> Atoms are not garbage-collected. Once an atom is created, it will never be
    +> removed. The emulator will terminate if the limit for the number of atoms
    +> (1048576 by default) is reached.
    +
    +## Encoder
    +
    +```iex
    +iex> IO.puts Poison.Encoder.encode([1, 2, 3], [])
    +"[1,2,3]"
    +```
    +
    +Anything implementing the Encoder protocol is expected to return an
    +[IO list][4] to be embedded within any other Encoder's implementation and
    +passable to any IO subsystem without conversion.
    +
    +```elixir
    +defimpl Poison.Encoder, for: Person do
    +  def encode(%{name: name, age: age}, options) do
    +    Poison.Encoder.BitString.encode("#{name} (#{age})", options)
    +  end
    +end
    +```
    +
    +For maximum performance, make sure you `@derive [Poison.Encoder]` for any struct
    +you plan on encoding.
    +
    +## Benchmarking
    +
    +```sh-session
    +$ mix deps.get
    +$ MIX_ENV=bench mix compile.protocols
    +$ MIX_ENV=bench elixir -pa _build/bench/lib/\*/ebin -pa _build/bench/consolidated -S mix bench
    +```
    +
    +## License
    +
    +Poison is released into the public domain (see `UNLICENSE`).
    +Poison is also optionally available under the ISC License (see `LICENSE`),
    +meant especially for jurisdictions that do not recognize public domain works.
    +
    +[1]: http://www.erlang.org/euc/07/papers/1700Gustafsson.pdf
    +[2]: http://www.erlang.org/workshop/2003/paper/p36-sagonas.pdf
    +[3]: http://jlouisramblings.blogspot.com/2013/07/problematic-traits-in-erlang.html
    +[4]: http://prog21.dadgum.com/70.html
    diff --git a/spec/fixtures/mix/deps/poison/UNLICENSE b/spec/fixtures/mix/deps/poison/UNLICENSE
    new file mode 100644
    index 00000000..68a49daa
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/UNLICENSE
    @@ -0,0 +1,24 @@
    +This is free and unencumbered software released into the public domain.
    +
    +Anyone is free to copy, modify, publish, use, compile, sell, or
    +distribute this software, either in source code form or as a compiled
    +binary, for any purpose, commercial or non-commercial, and by any
    +means.
    +
    +In jurisdictions that recognize copyright laws, the author or authors
    +of this software dedicate any and all copyright interest in the
    +software to the public domain. We make this dedication for the benefit
    +of the public at large and to the detriment of our heirs and
    +successors. We intend this dedication to be an overt act of
    +relinquishment in perpetuity of all present and future rights to this
    +software under copyright law.
    +
    +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 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.
    +
    +For more information, please refer to 
    diff --git a/spec/fixtures/mix/deps/poison/VERSION b/spec/fixtures/mix/deps/poison/VERSION
    new file mode 100644
    index 00000000..4cda8f19
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/VERSION
    @@ -0,0 +1 @@
    +1.5.2
    diff --git a/spec/fixtures/mix/deps/poison/hex_metadata.config b/spec/fixtures/mix/deps/poison/hex_metadata.config
    new file mode 100644
    index 00000000..64646837
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/hex_metadata.config
    @@ -0,0 +1,14 @@
    +{<<"app">>,<<"poison">>}.
    +{<<"build_tools">>,[<<"mix">>]}.
    +{<<"description">>,<<"The fastest JSON library for Elixir">>}.
    +{<<"elixir">>,<<"~> 1.0">>}.
    +{<<"files">>,
    + [<<"lib/poison.ex">>,<<"lib/poison/decoder.ex">>,<<"lib/poison/encoder.ex">>,
    +  <<"lib/poison/parser.ex">>,<<"mix.exs">>,<<"README.md">>,<<"LICENSE">>,
    +  <<"UNLICENSE">>,<<"VERSION">>]}.
    +{<<"licenses">>,[<<"Unlicense">>]}.
    +{<<"links">>,[{<<"GitHub">>,<<"https://github.com/devinus/poison">>}]}.
    +{<<"maintainers">>,[<<"Devin Torres">>]}.
    +{<<"name">>,<<"poison">>}.
    +{<<"requirements">>,[]}.
    +{<<"version">>,<<"1.5.2">>}.
    diff --git a/spec/fixtures/mix/deps/poison/lib/poison.ex b/spec/fixtures/mix/deps/poison/lib/poison.ex
    new file mode 100644
    index 00000000..2d918681
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/lib/poison.ex
    @@ -0,0 +1,85 @@
    +defmodule Poison do
    +  alias Poison.Encoder
    +  alias Poison.Decode
    +  alias Poison.Parser
    +
    +  @doc """
    +  Encode a value to JSON.
    +
    +      iex> Poison.encode([1, 2, 3])
    +      {:ok, "[1,2,3]"}
    +  """
    +  @spec encode(Encoder.t, Keyword.t) :: {:ok, iodata} | {:ok, String.t}
    +    | {:error, {:invalid, any}}
    +  def encode(value, options \\ []) do
    +    {:ok, encode!(value, options)}
    +  rescue
    +    exception in [Poison.EncodeError] ->
    +      {:error, {:invalid, exception.value}}
    +  end
    +
    +  @doc """
    +  Encode a value to JSON as iodata.
    +
    +      iex> Poison.encode_to_iodata([1, 2, 3])
    +      {:ok, [91, ["1", 44, "2", 44, "3"], 93]}
    +  """
    +  @spec encode_to_iodata(Encoder.t, Keyword.t) :: {:ok, iodata}
    +    | {:error, {:invalid, any}}
    +  def encode_to_iodata(value, options \\ []) do
    +    encode(value, [iodata: true] ++ options)
    +  end
    +
    +  @doc """
    +  Encode a value to JSON, raises an exception on error.
    +
    +      iex> Poison.encode!([1, 2, 3])
    +      "[1,2,3]"
    +  """
    +  @spec encode!(Encoder.t, Keyword.t) :: iodata | no_return
    +  def encode!(value, options \\ []) do
    +    iodata = Encoder.encode(value, options)
    +    unless options[:iodata] do
    +      iodata |> IO.iodata_to_binary
    +    else
    +      iodata
    +    end
    +  end
    +
    +  @doc """
    +  Encode a value to JSON as iodata, raises an exception on error.
    +
    +      iex> Poison.encode_to_iodata!([1, 2, 3])
    +      [91, ["1", 44, "2", 44, "3"], 93]
    +  """
    +  @spec encode_to_iodata!(Encoder.t, Keyword.t) :: iodata | no_return
    +  def encode_to_iodata!(value, options \\ []) do
    +    encode!(value, [iodata: true] ++ options)
    +  end
    +
    +  @doc """
    +  Decode JSON to a value.
    +
    +      iex> Poison.decode("[1,2,3]")
    +      {:ok, [1, 2, 3]}
    +  """
    +  @spec decode(iodata, Keyword.t) :: {:ok, Parser.t} | {:error, :invalid}
    +    | {:error, {:invalid, String.t}}
    +  def decode(iodata, options \\ []) do
    +    case Parser.parse(iodata, options) do
    +      {:ok, value} -> {:ok, Decode.decode(value, options)}
    +      error -> error
    +    end
    +  end
    +
    +  @doc """
    +  Decode JSON to a value, raises an exception on error.
    +
    +      iex> Poison.decode!("[1,2,3]")
    +      [1, 2, 3]
    +  """
    +  @spec decode!(iodata, Keyword.t) :: Parser.t | no_return
    +  def decode!(iodata, options \\ []) do
    +    Decode.decode(Parser.parse!(iodata, options), options)
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/poison/lib/poison/decoder.ex b/spec/fixtures/mix/deps/poison/lib/poison/decoder.ex
    new file mode 100644
    index 00000000..80f5296b
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/lib/poison/decoder.ex
    @@ -0,0 +1,62 @@
    +defmodule Poison.Decode do
    +  def decode(value, options) when is_map(value) or is_list(value) do
    +    case options[:as] do
    +      nil -> value
    +      as -> transform(value, options[:keys], as, options)
    +    end
    +  end
    +
    +  def decode(value, _options) do
    +    value
    +  end
    +
    +  defp transform(value, keys, as, options) when is_map(as) do
    +    transform_map(value, keys, as, options)
    +  end
    +
    +  defp transform(value, keys, as, options) when is_atom(as) do
    +    transform_struct(value, keys, as, options)
    +  end
    +
    +  defp transform(value, keys, [as], options) do
    +    for v <- value, do: transform(v, keys, as, options)
    +  end
    +
    +  defp transform(value, _keys, _as, _options) do
    +    value
    +  end
    +
    +  defp transform_map(value, keys, as, options) do
    +    Enum.reduce(as, value, fn {key, as}, acc ->
    +      case Map.get(acc, key) do
    +        nil -> acc
    +        value -> Map.put(acc, key, transform(value, keys, as, options))
    +      end
    +    end)
    +  end
    +
    +  defp transform_struct(value, keys, as, options) when keys in [:atoms, :atoms!] do
    +    Poison.Decoder.decode(struct(as, value), options)
    +  end
    +
    +  defp transform_struct(value, _keys, as, options) do
    +    struct = as.__struct__
    +    Enum.into(Map.from_struct(struct), %{}, fn {key, default} ->
    +      {key, Map.get(value, Atom.to_string(key), default)}
    +    end)
    +    |> Map.put(:__struct__, struct.__struct__)
    +    |> Poison.Decoder.decode(options)
    +  end
    +end
    +
    +defprotocol Poison.Decoder do
    +  @fallback_to_any true
    +
    +  def decode(value, options)
    +end
    +
    +defimpl Poison.Decoder, for: Any do
    +  def decode(value, _options) do
    +    value
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/poison/lib/poison/encoder.ex b/spec/fixtures/mix/deps/poison/lib/poison/encoder.ex
    new file mode 100644
    index 00000000..614817d6
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/lib/poison/encoder.ex
    @@ -0,0 +1,341 @@
    +defmodule Poison.EncodeError do
    +  defexception value: nil, message: nil
    +
    +  def message(%{value: value, message: nil}) do
    +    "unable to encode value: #{inspect value}"
    +  end
    +
    +  def message(%{message: message}) do
    +    message
    +  end
    +end
    +
    +defmodule Poison.Encode do
    +  defmacro __using__(_) do
    +    quote do
    +      defp encode_name(value) do
    +        cond do
    +          is_binary(value) ->
    +            value
    +          is_atom(value) ->
    +            Atom.to_string(value)
    +          true ->
    +            raise Poison.EncodeError, value: value,
    +              message: "expected string or atom key, got: #{inspect value}"
    +        end
    +      end
    +    end
    +  end
    +end
    +
    +defmodule Poison.Pretty do
    +  defmacro __using__(_) do
    +    quote do
    +      @default_indent 2
    +      @default_offset 0
    +
    +      @compile {:inline, pretty: 1, indent: 1, offset: 1, offset: 2, spaces: 1}
    +
    +      defp pretty(options) do
    +        !!Keyword.get(options, :pretty)
    +      end
    +
    +      defp indent(options) do
    +        Keyword.get(options, :indent, @default_indent)
    +      end
    +
    +      defp offset(options) do
    +        Keyword.get(options, :offset, @default_offset)
    +      end
    +
    +      defp offset(options, value) do
    +        Keyword.put(options, :offset, value)
    +      end
    +
    +      defp spaces(count) do
    +        :binary.copy(" ", count)
    +      end
    +    end
    +  end
    +end
    +
    +defprotocol Poison.Encoder do
    +  @fallback_to_any true
    +
    +  def encode(value, options)
    +end
    +
    +defimpl Poison.Encoder, for: Atom do
    +  def encode(nil, _),   do: "null"
    +  def encode(true, _),  do: "true"
    +  def encode(false, _), do: "false"
    +
    +  def encode(atom, options) do
    +    Poison.Encoder.BitString.encode(Atom.to_string(atom), options)
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: BitString do
    +  use Bitwise
    +
    +  def encode("", _), do: "\"\""
    +
    +  def encode(string, options) do
    +    [?", escape(string, options[:escape]), ?"]
    +  end
    +
    +  defp escape("", _), do: []
    +
    +  for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do
    +    defp escape(<> <> rest, mode) do
    +      [unquote("\\" <> <>) | escape(rest, mode)]
    +    end
    +  end
    +
    +  # http://en.wikipedia.org/wiki/Unicode_control_characters
    +  defp escape(<> <> rest, mode) when char <= 0x1F or char == 0x7F do
    +    [seq(char) | escape(rest, mode)]
    +  end
    +
    +  defp escape(<> <> rest, mode) when char in 0x80..0x9F do
    +    [seq(char) | escape(rest, mode)]
    +  end
    +
    +  defp escape(<> <> rest, :unicode) when char in 0xA0..0xFFFF do
    +    [seq(char) | escape(rest, :unicode)]
    +  end
    +
    +  # http://en.wikipedia.org/wiki/UTF-16#Example_UTF-16_encoding_procedure
    +  # http://unicodebook.readthedocs.org/unicode_encodings.html#utf-16-surrogate-pairs
    +  defp escape(<> <> rest, :unicode) when char > 0xFFFF do
    +    code = char - 0x10000
    +    [seq(0xD800 ||| (code >>> 10)),
    +     seq(0xDC00 ||| (code &&& 0x3FF))
    +     | escape(rest, :unicode)]
    +  end
    +
    +  defp escape(<> <> rest, :javascript) when char in [0x2028, 0x2029] do
    +    [seq(char) | escape(rest, :javascript)]
    +  end
    +
    +  defp escape(string, mode) do
    +    size = chunk_size(string, mode, 0)
    +    <> = string
    +    [chunk | escape(rest, mode)]
    +  end
    +
    +  defp chunk_size(<> <> _, _mode, acc) when char <= 0x1F or char in '"\\' do
    +    acc
    +  end
    +
    +  defp chunk_size(<> <> rest, mode, acc) when char < 0x80 do
    +    chunk_size(rest, mode, acc + 1)
    +  end
    +
    +  defp chunk_size(<<_ :: utf8>> <> _, :unicode, acc) do
    +    acc
    +  end
    +
    +  defp chunk_size(<> <> _, :javascript, acc) when char in [0x2028, 0x2029] do
    +    acc
    +  end
    +
    +  defp chunk_size(<> <> rest, mode, acc) do
    +    size = cond do
    +      codepoint < 0x800   -> 2
    +      codepoint < 0x10000 -> 3
    +      true                -> 4
    +    end
    +
    +    chunk_size(rest, mode, acc + size)
    +  end
    +
    +  defp chunk_size(<>, _, _) do
    +    raise Poison.EncodeError, value: <>
    +  end
    +
    +  defp chunk_size("", _, acc), do: acc
    +
    +  @compile {:inline, seq: 1}
    +  defp seq(char) do
    +    case Integer.to_char_list(char, 16) do
    +      s when length(s) < 2 -> ["\\u000" | s]
    +      s when length(s) < 3 -> ["\\u00" | s]
    +      s when length(s) < 4 -> ["\\u0" | s]
    +      s -> ["\\u" | s]
    +    end
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: Integer do
    +  def encode(integer, _options) do
    +    Integer.to_string(integer)
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: Float do
    +  def encode(float, _options) do
    +    :io_lib_format.fwrite_g(float)
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: Map do
    +  alias Poison.Encoder
    +
    +  @compile :inline_list_funcs
    +
    +  use Poison.Pretty
    +  use Poison.Encode
    +
    +  # TODO: Remove once we require Elixir 1.1+
    +  defmacro __deriving__(module, struct, options) do
    +    Poison.Encoder.Any.deriving(module, struct, options)
    +  end
    +
    +  def encode(map, _) when map_size(map) < 1, do: "{}"
    +
    +  def encode(map, options) do
    +    encode(map, pretty(options), options)
    +  end
    +
    +  def encode(map, true, options) do
    +    indent = indent(options)
    +    offset = offset(options) + indent
    +    options = offset(options, offset)
    +
    +    fun = &[",\n", spaces(offset), Encoder.BitString.encode(encode_name(&1), options), ": ",
    +                                   Encoder.encode(:maps.get(&1, map), options) | &2]
    +    ["{\n", tl(:lists.foldl(fun, [], :maps.keys(map))), ?\n, spaces(offset - indent), ?}]
    +  end
    +
    +  def encode(map, _, options) do
    +    fun = &[?,, Encoder.BitString.encode(encode_name(&1), options), ?:,
    +                Encoder.encode(:maps.get(&1, map), options) | &2]
    +    [?{, tl(:lists.foldl(fun, [], :maps.keys(map))), ?}]
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: List do
    +  alias Poison.Encoder
    +
    +  use Poison.Pretty
    +
    +  @compile :inline_list_funcs
    +
    +  def encode([], _), do: "[]"
    +
    +  def encode(list, options) do
    +    encode(list, pretty(options), options)
    +  end
    +
    +  def encode(list, false, options) do
    +    fun = &[?,, Encoder.encode(&1, options) | &2]
    +    [?[, tl(:lists.foldr(fun, [], list)), ?]]
    +  end
    +
    +  def encode(list, true, options) do
    +    indent = indent(options)
    +    offset = offset(options) + indent
    +    options = offset(options, offset)
    +
    +    fun = &[",\n", spaces(offset), Encoder.encode(&1, options) | &2]
    +    ["[\n", tl(:lists.foldr(fun, [], list)), ?\n, spaces(offset - indent), ?]]
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: [Range, Stream, HashSet] do
    +  use Poison.Pretty
    +
    +  def encode(collection, options) do
    +    encode(collection, pretty(options), options)
    +  end
    +
    +  def encode(collection, false, options) do
    +    fun = &[?,, Poison.Encoder.encode(&1, options)]
    +
    +    case Enum.flat_map(collection, fun) do
    +      [] -> "[]"
    +      [_ | tail] -> [?[, tail, ?]]
    +    end
    +  end
    +
    +  def encode(collection, true, options) do
    +    indent = indent(options)
    +    offset = offset(options) + indent
    +    options = offset(options, offset)
    +
    +    fun = &[",\n", spaces(offset), Poison.Encoder.encode(&1, options)]
    +
    +    case Enum.flat_map(collection, fun) do
    +      [] -> "[]"
    +      [_ | tail] -> ["[\n", tail, ?\n, spaces(offset - indent), ?]]
    +    end
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: HashDict do
    +  alias Poison.Encoder
    +
    +  use Poison.Pretty
    +  use Poison.Encode
    +
    +  def encode(dict, options) do
    +    if HashDict.size(dict) < 1 do
    +      "{}"
    +    else
    +      encode(dict, pretty(options), options)
    +    end
    +  end
    +
    +  def encode(dict, false, options) do
    +    fun = fn {key, value} ->
    +      [?,, Encoder.BitString.encode(encode_name(key), options), ?:,
    +           Encoder.encode(value, options)]
    +    end
    +
    +    [?{, tl(Enum.flat_map(dict, fun)), ?}]
    +  end
    +
    +  def encode(dict, true, options) do
    +    indent = indent(options)
    +    offset = offset(options) + indent
    +    options = offset(options, offset)
    +
    +    fun = fn {key, value} ->
    +      [",\n", spaces(offset), Encoder.BitString.encode(encode_name(key), options), ": ",
    +                              Encoder.encode(value, options)]
    +    end
    +
    +    ["{\n", tl(Enum.flat_map(dict, fun)), ?\n, spaces(offset - indent), ?}]
    +  end
    +end
    +
    +defimpl Poison.Encoder, for: Any do
    +  defmacro __deriving__(module, struct, options) do
    +    deriving(module, struct, options)
    +  end
    +
    +  def deriving(module, _struct, options) do
    +    extractor = if only = options[:only] do
    +      quote(do: Map.take(struct, unquote(only)))
    +    else
    +      quote(do: :maps.remove(:__struct__, struct))
    +    end
    +
    +    quote do
    +      defimpl Poison.Encoder, for: unquote(module) do
    +        def encode(struct, options) do
    +          Poison.Encoder.Map.encode(unquote(extractor), options)
    +        end
    +      end
    +    end
    +  end
    +
    +  def encode(%{__struct__: _} = struct, options) do
    +    Poison.Encoder.Map.encode(Map.from_struct(struct), options)
    +  end
    +
    +  def encode(value, _options) do
    +    raise Poison.EncodeError, value: value
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/poison/lib/poison/parser.ex b/spec/fixtures/mix/deps/poison/lib/poison/parser.ex
    new file mode 100644
    index 00000000..8ad13cf1
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/lib/poison/parser.ex
    @@ -0,0 +1,268 @@
    +defmodule Poison.SyntaxError do
    +  defexception [:message, :token]
    +
    +  def exception(opts) do
    +    message = if token = opts[:token] do
    +      "Unexpected token: #{token}"
    +    else
    +      "Unexpected end of input"
    +    end
    +
    +    %Poison.SyntaxError{message: message, token: token}
    +  end
    +end
    +
    +defmodule Poison.Parser do
    +  @moduledoc """
    +  An ECMA 404 conforming JSON parser.
    +
    +  See: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
    +  """
    +
    +  if Application.get_env(:poison, :native) do
    +    @compile :native
    +  end
    +
    +  use Bitwise
    +
    +  alias Poison.SyntaxError
    +
    +  @type t :: nil | true | false | list | float | integer | String.t | map
    +
    +  @spec parse(iodata, Keyword.t) :: {:ok, t} | {:error, :invalid}
    +    | {:error, {:invalid, String.t}}
    +  def parse(iodata, options \\ []) do
    +    string = IO.iodata_to_binary(iodata)
    +    {value, rest} = value(skip_whitespace(string), options[:keys])
    +    case skip_whitespace(rest) do
    +      "" -> {:ok, value}
    +      other -> syntax_error(other)
    +    end
    +  catch
    +    :invalid ->
    +      {:error, :invalid}
    +    {:invalid, token} ->
    +      {:error, {:invalid, token}}
    +  end
    +
    +  @spec parse!(iodata, Keyword.t) :: t
    +  def parse!(iodata, options \\ []) do
    +    case parse(iodata, options) do
    +      {:ok, value} ->
    +        value
    +      {:error, :invalid} ->
    +        raise SyntaxError
    +      {:error, {:invalid, token}} ->
    +        raise SyntaxError, token: token
    +    end
    +  end
    +
    +  defp value("\"" <> rest, _keys),    do: string_continue(rest, [])
    +  defp value("{" <> rest, keys),      do: object_pairs(skip_whitespace(rest), keys, [])
    +  defp value("[" <> rest, keys),      do: array_values(skip_whitespace(rest), keys, [])
    +  defp value("null" <> rest, _keys),  do: {nil, rest}
    +  defp value("true" <> rest, _keys),  do: {true, rest}
    +  defp value("false" <> rest, _keys), do: {false, rest}
    +
    +  defp value(<> = string, _keys) when char in '-0123456789' do
    +    number_start(string)
    +  end
    +
    +  defp value(other, _keys), do: syntax_error(other)
    +
    +  ## Objects
    +
    +  defp object_pairs("\"" <> rest, keys, acc) do
    +    {name, rest} = string_continue(rest, [])
    +    {value, rest} = case skip_whitespace(rest) do
    +      ":" <> rest -> value(skip_whitespace(rest), keys)
    +      other -> syntax_error(other)
    +    end
    +
    +    acc = [{object_name(name, keys), value} | acc]
    +    case skip_whitespace(rest) do
    +      "," <> rest -> object_pairs(skip_whitespace(rest), keys, acc)
    +      "}" <> rest -> {:maps.from_list(acc), rest}
    +      other -> syntax_error(other)
    +    end
    +  end
    +
    +  defp object_pairs("}" <> rest, _, []) do
    +    {:maps.new, rest}
    +  end
    +
    +  defp object_pairs(other, _, _), do: syntax_error(other)
    +
    +  defp object_name(name, :atoms),  do: String.to_atom(name)
    +  defp object_name(name, :atoms!), do: String.to_existing_atom(name)
    +  defp object_name(name, _keys),   do: name
    +
    +  ## Arrays
    +
    +  defp array_values("]" <> rest, _, []) do
    +    {[], rest}
    +  end
    +
    +  defp array_values(string, keys, acc) do
    +    {value, rest} = value(string, keys)
    +
    +    acc = [value | acc]
    +    case skip_whitespace(rest) do
    +      "," <> rest -> array_values(skip_whitespace(rest), keys, acc)
    +      "]" <> rest -> {:lists.reverse(acc), rest}
    +      other -> syntax_error(other)
    +    end
    +  end
    +
    +  ## Numbers
    +
    +  defp number_start("-" <> rest) do
    +    case rest do
    +      "0" <> rest -> number_frac(rest, ["-0"])
    +      rest -> number_int(rest, [?-])
    +    end
    +  end
    +
    +  defp number_start("0" <> rest) do
    +    number_frac(rest, [?0])
    +  end
    +
    +  defp number_start(string) do
    +    number_int(string, [])
    +  end
    +
    +  defp number_int(<> = string, acc) when char in '123456789' do
    +    {digits, rest} = number_digits(string)
    +    number_frac(rest, [acc, digits])
    +  end
    +
    +  defp number_int(other, _), do: syntax_error(other)
    +
    +  defp number_frac("." <> rest, acc) do
    +    {digits, rest} = number_digits(rest)
    +    number_exp(rest, true, [acc, ?., digits])
    +  end
    +
    +  defp number_frac(string, acc) do
    +    number_exp(string, false, acc)
    +  end
    +
    +  defp number_exp(<> <> rest, frac, acc) when e in 'eE' do
    +    e = if frac, do: ?e, else: ".0e"
    +    case rest do
    +      "-" <> rest -> number_exp_continue(rest, [acc, e, ?-])
    +      "+" <> rest -> number_exp_continue(rest, [acc, e])
    +      rest -> number_exp_continue(rest, [acc, e])
    +    end
    +  end
    +
    +  defp number_exp(string, frac, acc) do
    +    {number_complete(acc, frac), string}
    +  end
    +
    +  defp number_exp_continue(rest, acc) do
    +    {digits, rest} = number_digits(rest)
    +    {number_complete([acc, digits], true), rest}
    +  end
    +
    +  defp number_complete(iolist, false) do
    +    IO.iodata_to_binary(iolist) |> String.to_integer
    +  end
    +
    +  defp number_complete(iolist, true) do
    +    IO.iodata_to_binary(iolist) |> String.to_float
    +  end
    +
    +  defp number_digits(<> <> rest = string) when char in '0123456789' do
    +    count = number_digits_count(rest, 1)
    +    <> = string
    +    {digits, rest}
    +  end
    +
    +  defp number_digits(other), do: syntax_error(other)
    +
    +  defp number_digits_count(<> <> rest, acc) when char in '0123456789' do
    +    number_digits_count(rest, acc + 1)
    +  end
    +
    +  defp number_digits_count(_, acc), do: acc
    +
    +  ## Strings
    +
    +  defp string_continue("\"" <> rest, acc) do
    +    {IO.iodata_to_binary(acc), rest}
    +  end
    +
    +  defp string_continue("\\" <> rest, acc) do
    +    string_escape(rest, acc)
    +  end
    +
    +  defp string_continue("", _), do: throw(:invalid)
    +
    +  defp string_continue(string, acc) do
    +    n = string_chunk_size(string, 0)
    +    <> = string
    +    string_continue(rest, [acc, chunk])
    +  end
    +
    +  for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do
    +    defp string_escape(<> <> rest, acc) do
    +      string_continue(rest, [acc, unquote(char)])
    +    end
    +  end
    +
    +  # http://www.ietf.org/rfc/rfc2781.txt
    +  # http://perldoc.perl.org/Encode/Unicode.html#Surrogate-Pairs
    +  # http://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs
    +  defp string_escape(<> <> rest, acc)
    +    when a1 in 'dD' and a2 in 'dD'
    +    and (b1 in '89abAB')
    +    and (b2 in ?c..?f or b2 in ?C..?F) \
    +  do
    +    hi = List.to_integer([a1, b1, c1, d1], 16)
    +    lo = List.to_integer([a2, b2, c2, d2], 16)
    +    codepoint = 0x10000 + ((hi &&& 0x03FF) <<< 10) + (lo &&& 0x03FF)
    +    string_continue(rest, [acc, <>])
    +  end
    +
    +  defp string_escape(<> <> rest, acc) do
    +    string_continue(rest, [acc, <> ])
    +  end
    +
    +  defp string_escape(other, _), do: syntax_error(other)
    +
    +  defp string_chunk_size("\"" <> _, acc), do: acc
    +  defp string_chunk_size("\\" <> _, acc), do: acc
    +
    +  defp string_chunk_size(<> <> rest, acc) when char < 0x80 do
    +    string_chunk_size(rest, acc + 1)
    +  end
    +
    +  defp string_chunk_size(<> <> rest, acc) do
    +    string_chunk_size(rest, acc + string_codepoint_size(codepoint))
    +  end
    +
    +  defp string_chunk_size(other, _), do: syntax_error(other)
    +
    +  defp string_codepoint_size(codepoint) when codepoint < 0x800,   do: 2
    +  defp string_codepoint_size(codepoint) when codepoint < 0x10000, do: 3
    +  defp string_codepoint_size(_),                                  do: 4
    +
    +  ## Whitespace
    +
    +  defp skip_whitespace(<> <> rest) when char in '\s\n\t\r' do
    +    skip_whitespace(rest)
    +  end
    +
    +  defp skip_whitespace(string), do: string
    +
    +  ## Errors
    +
    +  defp syntax_error(<> <> _) do
    +    throw({:invalid, <>})
    +  end
    +
    +  defp syntax_error(_) do
    +    throw(:invalid)
    +  end
    +end
    diff --git a/spec/fixtures/mix/deps/poison/mix.exs b/spec/fixtures/mix/deps/poison/mix.exs
    new file mode 100644
    index 00000000..ff91d3bc
    --- /dev/null
    +++ b/spec/fixtures/mix/deps/poison/mix.exs
    @@ -0,0 +1,47 @@
    +defmodule Poison.Mixfile do
    +  use Mix.Project
    +
    +  @version File.read!("VERSION") |> String.strip
    +
    +  def project do
    +    [app: :poison,
    +     version: @version,
    +     elixir: "~> 1.0",
    +     description: "The fastest JSON library for Elixir",
    +     deps: deps,
    +     package: package,
    +     consolidate_protocols: Mix.env != :test]
    +  end
    +
    +  # Configuration for the OTP application
    +  #
    +  # Type `mix help compile.app` for more information
    +  def application do
    +    [applications: []]
    +  end
    +
    +  # Dependencies can be hex.pm packages:
    +  #
    +  #   {:mydep, "~> 0.3.0"}
    +  #
    +  # Or git/path repositories:
    +  #
    +  #   {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1"}
    +  #
    +  # Type `mix help deps` for more examples and options
    +  defp deps do
    +    [{:earmark, "~> 0.2", only: :docs},
    +     {:ex_doc, "~> 0.11", only: :docs},
    +     {:benchfella, "~> 0.3", only: :bench},
    +     {:jiffy, github: "davisp/jiffy", only: :bench},
    +     {:exjsx, github: "talentdeficit/exjsx", only: :bench},
    +     {:jazz, github: "meh/jazz", only: :bench}]
    +  end
    +
    +  defp package do
    +    [files: ~w(lib mix.exs README.md LICENSE UNLICENSE VERSION),
    +     maintainers: ["Devin Torres"],
    +     licenses: ["Unlicense"],
    +     links: %{"GitHub" => "https://github.com/devinus/poison"}]
    +  end
    +end
    diff --git a/spec/fixtures/mix/mix.exs b/spec/fixtures/mix/mix.exs
    new file mode 100644
    index 00000000..b551fafa
    --- /dev/null
    +++ b/spec/fixtures/mix/mix.exs
    @@ -0,0 +1,33 @@
    +defmodule InchTest.Mixfile do
    +  use Mix.Project
    +
    +  def project do
    +    [app: :inch_test,
    +     version: "0.0.1",
    +     elixir: "~> 1.0-dev",
    +     docs: [main: "README", readme: true],
    +     deps: deps()]
    +  end
    +
    +  # Configuration for the OTP application
    +  #
    +  # Type `mix help compile.app` for more information
    +  def application do
    +    [applications: [:logger]]
    +  end
    +
    +  # Dependencies can be Hex packages:
    +  #
    +  #   {:mydep, "~> 0.3.0"}
    +  #
    +  # Or git/path repositories:
    +  #
    +  #   {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
    +  #
    +  # Type `mix help deps` for more examples and options
    +  defp deps do
    +    [{:ex_doc, "~> 0.6"},
    +     {:earmark, ">= 0.0.0"},
    +     {:inch_ex, "0.4.0-dev", only: :docs}]
    +  end
    +end
    diff --git a/spec/fixtures/mix/mix.lock b/spec/fixtures/mix/mix.lock
    new file mode 100644
    index 00000000..bbad61a0
    --- /dev/null
    +++ b/spec/fixtures/mix/mix.lock
    @@ -0,0 +1,6 @@
    +%{
    +  "earmark": {:hex, :earmark, "1.2.5", "4d21980d5d2862a2e13ec3c49ad9ad783ffc7ca5769cf6ff891a4553fbaae761", [:mix], [], "hexpm"},
    +  "ex_doc": {:hex, :ex_doc, "0.18.3", "f4b0e4a2ec6f333dccf761838a4b253d75e11f714b85ae271c9ae361367897b7", [:mix], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"},
    +  "inch_ex": {:hex, :inch_ex, "0.4.0-dev", "95f4d801cbba2aa19224100bf2c80622baa1be839a1274f2c915e4fc36cab498", [:mix], [{:poison, "~> 1.2", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
    +  "poison": {:hex, :poison, "1.5.2", "560bdfb7449e3ddd23a096929fb9fc2122f709bcc758b2d5d5a5c7d0ea848910", [:mix], [], "hexpm"},
    +}
    diff --git a/spec/fixtures/nested_hab/habitat/plan.sh b/spec/fixtures/nested_hab/habitat/plan.sh
    new file mode 100644
    index 00000000..5e2c4174
    --- /dev/null
    +++ b/spec/fixtures/nested_hab/habitat/plan.sh
    @@ -0,0 +1,10 @@
    +pkg_name=fixture
    +pkg_origin=chef
    +pkg_version="0.1.0"
    +pkg_maintainer="The Habitat Maintainers "
    +pkg_license=("Apache-2.0")
    +pkg_deps=(
    +  core/glibc
    +)
    +pkg_build_deps=(core/make core/gcc)
    +
    diff --git a/spec/fixtures/output_metadata_errors/appbundler-dependency-licenses.json b/spec/fixtures/output_metadata_errors/appbundler-dependency-licenses.json
    deleted file mode 100644
    index 904d87de..00000000
    --- a/spec/fixtures/output_metadata_errors/appbundler-dependency-licenses.json
    +++ /dev/null
    @@ -1,39 +0,0 @@
    -{
    -  "license_manifest_version": 1,
    -  "project_name": "appbundler",
    -  "dependency_managers": {
    -    "ruby_bundler": [
    -      {
    -        "name": "",
    -        "version": "1.7.0",
    -        "license": "Apache-2.0",
    -        "license_files": [
    -          "ruby_bundler-mixlib-cli-1.7.0-LICENSE"
    -        ]
    -      },
    -      {
    -        "name": "appbundler",
    -        "version": "",
    -        "license": "Apache2",
    -        "license_files": [
    -          "ruby_bundler-appbundler-0.9.0-LICENSE.txt"
    -        ]
    -      },
    -      {
    -        "name": "bundler",
    -        "version": "1.12.5",
    -        "license": null,
    -        "license_files": [
    -          "ruby_bundler-bundler-1.12.5-LICENSE.md"
    -        ]
    -      },
    -      {
    -        "name": "pry",
    -        "version": "0.12.2",
    -        "license": "MIT",
    -        "license_files": [
    -        ]
    -      }
    -    ]
    -  }
    -}
    diff --git a/spec/fixtures/output_metadata_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt b/spec/fixtures/output_metadata_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt
    deleted file mode 100644
    index d6456956..00000000
    --- a/spec/fixtures/output_metadata_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt
    +++ /dev/null
    @@ -1,202 +0,0 @@
    -
    -                                 Apache License
    -                           Version 2.0, January 2004
    -                        http://www.apache.org/licenses/
    -
    -   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    -
    -   1. Definitions.
    -
    -      "License" shall mean the terms and conditions for use, reproduction,
    -      and distribution as defined by Sections 1 through 9 of this document.
    -
    -      "Licensor" shall mean the copyright owner or entity authorized by
    -      the copyright owner that is granting the License.
    -
    -      "Legal Entity" shall mean the union of the acting entity and all
    -      other entities that control, are controlled by, or are under common
    -      control with that entity. For the purposes of this definition,
    -      "control" means (i) the power, direct or indirect, to cause the
    -      direction or management of such entity, whether by contract or
    -      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    -      outstanding shares, or (iii) beneficial ownership of such entity.
    -
    -      "You" (or "Your") shall mean an individual or Legal Entity
    -      exercising permissions granted by this License.
    -
    -      "Source" form shall mean the preferred form for making modifications,
    -      including but not limited to software source code, documentation
    -      source, and configuration files.
    -
    -      "Object" form shall mean any form resulting from mechanical
    -      transformation or translation of a Source form, including but
    -      not limited to compiled object code, generated documentation,
    -      and conversions to other media types.
    -
    -      "Work" shall mean the work of authorship, whether in Source or
    -      Object form, made available under the License, as indicated by a
    -      copyright notice that is included in or attached to the work
    -      (an example is provided in the Appendix below).
    -
    -      "Derivative Works" shall mean any work, whether in Source or Object
    -      form, that is based on (or derived from) the Work and for which the
    -      editorial revisions, annotations, elaborations, or other modifications
    -      represent, as a whole, an original work of authorship. For the purposes
    -      of this License, Derivative Works shall not include works that remain
    -      separable from, or merely link (or bind by name) to the interfaces of,
    -      the Work and Derivative Works thereof.
    -
    -      "Contribution" shall mean any work of authorship, including
    -      the original version of the Work and any modifications or additions
    -      to that Work or Derivative Works thereof, that is intentionally
    -      submitted to Licensor for inclusion in the Work by the copyright owner
    -      or by an individual or Legal Entity authorized to submit on behalf of
    -      the copyright owner. For the purposes of this definition, "submitted"
    -      means any form of electronic, verbal, or written communication sent
    -      to the Licensor or its representatives, including but not limited to
    -      communication on electronic mailing lists, source code control systems,
    -      and issue tracking systems that are managed by, or on behalf of, the
    -      Licensor for the purpose of discussing and improving the Work, but
    -      excluding communication that is conspicuously marked or otherwise
    -      designated in writing by the copyright owner as "Not a Contribution."
    -
    -      "Contributor" shall mean Licensor and any individual or Legal Entity
    -      on behalf of whom a Contribution has been received by Licensor and
    -      subsequently incorporated within the Work.
    -
    -   2. Grant of Copyright License. Subject to the terms and conditions of
    -      this License, each Contributor hereby grants to You a perpetual,
    -      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -      copyright license to reproduce, prepare Derivative Works of,
    -      publicly display, publicly perform, sublicense, and distribute the
    -      Work and such Derivative Works in Source or Object form.
    -
    -   3. Grant of Patent License. Subject to the terms and conditions of
    -      this License, each Contributor hereby grants to You a perpetual,
    -      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -      (except as stated in this section) patent license to make, have made,
    -      use, offer to sell, sell, import, and otherwise transfer the Work,
    -      where such license applies only to those patent claims licensable
    -      by such Contributor that are necessarily infringed by their
    -      Contribution(s) alone or by combination of their Contribution(s)
    -      with the Work to which such Contribution(s) was submitted. If You
    -      institute patent litigation against any entity (including a
    -      cross-claim or counterclaim in a lawsuit) alleging that the Work
    -      or a Contribution incorporated within the Work constitutes direct
    -      or contributory patent infringement, then any patent licenses
    -      granted to You under this License for that Work shall terminate
    -      as of the date such litigation is filed.
    -
    -   4. Redistribution. You may reproduce and distribute copies of the
    -      Work or Derivative Works thereof in any medium, with or without
    -      modifications, and in Source or Object form, provided that You
    -      meet the following conditions:
    -
    -      (a) You must give any other recipients of the Work or
    -          Derivative Works a copy of this License; and
    -
    -      (b) You must cause any modified files to carry prominent notices
    -          stating that You changed the files; and
    -
    -      (c) You must retain, in the Source form of any Derivative Works
    -          that You distribute, all copyright, patent, trademark, and
    -          attribution notices from the Source form of the Work,
    -          excluding those notices that do not pertain to any part of
    -          the Derivative Works; and
    -
    -      (d) If the Work includes a "NOTICE" text file as part of its
    -          distribution, then any Derivative Works that You distribute must
    -          include a readable copy of the attribution notices contained
    -          within such NOTICE file, excluding those notices that do not
    -          pertain to any part of the Derivative Works, in at least one
    -          of the following places: within a NOTICE text file distributed
    -          as part of the Derivative Works; within the Source form or
    -          documentation, if provided along with the Derivative Works; or,
    -          within a display generated by the Derivative Works, if and
    -          wherever such third-party notices normally appear. The contents
    -          of the NOTICE file are for informational purposes only and
    -          do not modify the License. You may add Your own attribution
    -          notices within Derivative Works that You distribute, alongside
    -          or as an addendum to the NOTICE text from the Work, provided
    -          that such additional attribution notices cannot be construed
    -          as modifying the License.
    -
    -      You may add Your own copyright statement to Your modifications and
    -      may provide additional or different license terms and conditions
    -      for use, reproduction, or distribution of Your modifications, or
    -      for any such Derivative Works as a whole, provided Your use,
    -      reproduction, and distribution of the Work otherwise complies with
    -      the conditions stated in this License.
    -
    -   5. Submission of Contributions. Unless You explicitly state otherwise,
    -      any Contribution intentionally submitted for inclusion in the Work
    -      by You to the Licensor shall be under the terms and conditions of
    -      this License, without any additional terms or conditions.
    -      Notwithstanding the above, nothing herein shall supersede or modify
    -      the terms of any separate license agreement you may have executed
    -      with Licensor regarding such Contributions.
    -
    -   6. Trademarks. This License does not grant permission to use the trade
    -      names, trademarks, service marks, or product names of the Licensor,
    -      except as required for reasonable and customary use in describing the
    -      origin of the Work and reproducing the content of the NOTICE file.
    -
    -   7. Disclaimer of Warranty. Unless required by applicable law or
    -      agreed to in writing, Licensor provides the Work (and each
    -      Contributor provides its Contributions) on an "AS IS" BASIS,
    -      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    -      implied, including, without limitation, any warranties or conditions
    -      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    -      PARTICULAR PURPOSE. You are solely responsible for determining the
    -      appropriateness of using or redistributing the Work and assume any
    -      risks associated with Your exercise of permissions under this License.
    -
    -   8. Limitation of Liability. In no event and under no legal theory,
    -      whether in tort (including negligence), contract, or otherwise,
    -      unless required by applicable law (such as deliberate and grossly
    -      negligent acts) or agreed to in writing, shall any Contributor be
    -      liable to You for damages, including any direct, indirect, special,
    -      incidental, or consequential damages of any character arising as a
    -      result of this License or out of the use or inability to use the
    -      Work (including but not limited to damages for loss of goodwill,
    -      work stoppage, computer failure or malfunction, or any and all
    -      other commercial damages or losses), even if such Contributor
    -      has been advised of the possibility of such damages.
    -
    -   9. Accepting Warranty or Additional Liability. While redistributing
    -      the Work or Derivative Works thereof, You may choose to offer,
    -      and charge a fee for, acceptance of support, warranty, indemnity,
    -      or other liability obligations and/or rights consistent with this
    -      License. However, in accepting such obligations, You may act only
    -      on Your own behalf and on Your sole responsibility, not on behalf
    -      of any other Contributor, and only if You agree to indemnify,
    -      defend, and hold each Contributor harmless for any liability
    -      incurred by, or claims asserted against, such Contributor by reason
    -      of your accepting any such warranty or additional liability.
    -
    -   END OF TERMS AND CONDITIONS
    -
    -   APPENDIX: How to apply the Apache License to your work.
    -
    -      To apply the Apache License to your work, attach the following
    -      boilerplate notice, with the fields enclosed by brackets "[]"
    -      replaced with your own identifying information. (Don't include
    -      the brackets!)  The text should be enclosed in the appropriate
    -      comment syntax for the file format. We also recommend that a
    -      file or class name and description of purpose be included on the
    -      same "printed page" as the copyright notice for easier
    -      identification within third-party archives.
    -
    -   Copyright [yyyy] [name of copyright owner]
    -
    -   Licensed under the Apache License, Version 2.0 (the "License");
    -   you may not use this file except in compliance with the License.
    -   You may obtain a copy of the License at
    -
    -       http://www.apache.org/licenses/LICENSE-2.0
    -
    -   Unless required by applicable law or agreed to in writing, software
    -   distributed under the License is distributed on an "AS IS" BASIS,
    -   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -   See the License for the specific language governing permissions and
    -   limitations under the License.
    diff --git a/spec/fixtures/output_metadata_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE b/spec/fixtures/output_metadata_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE
    deleted file mode 100644
    index 11069edd..00000000
    --- a/spec/fixtures/output_metadata_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -                              Apache License
    -                        Version 2.0, January 2004
    -                     http://www.apache.org/licenses/
    -
    -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    -
    -1. Definitions.
    -
    -   "License" shall mean the terms and conditions for use, reproduction,
    -   and distribution as defined by Sections 1 through 9 of this document.
    -
    -   "Licensor" shall mean the copyright owner or entity authorized by
    -   the copyright owner that is granting the License.
    -
    -   "Legal Entity" shall mean the union of the acting entity and all
    -   other entities that control, are controlled by, or are under common
    -   control with that entity. For the purposes of this definition,
    -   "control" means (i) the power, direct or indirect, to cause the
    -   direction or management of such entity, whether by contract or
    -   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    -   outstanding shares, or (iii) beneficial ownership of such entity.
    -
    -   "You" (or "Your") shall mean an individual or Legal Entity
    -   exercising permissions granted by this License.
    -
    -   "Source" form shall mean the preferred form for making modifications,
    -   including but not limited to software source code, documentation
    -   source, and configuration files.
    -
    -   "Object" form shall mean any form resulting from mechanical
    -   transformation or translation of a Source form, including but
    -   not limited to compiled object code, generated documentation,
    -   and conversions to other media types.
    -
    -   "Work" shall mean the work of authorship, whether in Source or
    -   Object form, made available under the License, as indicated by a
    -   copyright notice that is included in or attached to the work
    -   (an example is provided in the Appendix below).
    -
    -   "Derivative Works" shall mean any work, whether in Source or Object
    -   form, that is based on (or derived from) the Work and for which the
    -   editorial revisions, annotations, elaborations, or other modifications
    -   represent, as a whole, an original work of authorship. For the purposes
    -   of this License, Derivative Works shall not include works that remain
    -   separable from, or merely link (or bind by name) to the interfaces of,
    -   the Work and Derivative Works thereof.
    -
    -   "Contribution" shall mean any work of authorship, including
    -   the original version of the Work and any modifications or additions
    -   to that Work or Derivative Works thereof, that is intentionally
    -   submitted to Licensor for inclusion in the Work by the copyright owner
    -   or by an individual or Legal Entity authorized to submit on behalf of
    -   the copyright owner. For the purposes of this definition, "submitted"
    -   means any form of electronic, verbal, or written communication sent
    -   to the Licensor or its representatives, including but not limited to
    -   communication on electronic mailing lists, source code control systems,
    -   and issue tracking systems that are managed by, or on behalf of, the
    -   Licensor for the purpose of discussing and improving the Work, but
    -   excluding communication that is conspicuously marked or otherwise
    -   designated in writing by the copyright owner as "Not a Contribution."
    -
    -   "Contributor" shall mean Licensor and any individual or Legal Entity
    -   on behalf of whom a Contribution has been received by Licensor and
    -   subsequently incorporated within the Work.
    -
    -2. Grant of Copyright License. Subject to the terms and conditions of
    -   this License, each Contributor hereby grants to You a perpetual,
    -   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -   copyright license to reproduce, prepare Derivative Works of,
    -   publicly display, publicly perform, sublicense, and distribute the
    -   Work and such Derivative Works in Source or Object form.
    -
    -3. Grant of Patent License. Subject to the terms and conditions of
    -   this License, each Contributor hereby grants to You a perpetual,
    -   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -   (except as stated in this section) patent license to make, have made,
    -   use, offer to sell, sell, import, and otherwise transfer the Work,
    -   where such license applies only to those patent claims licensable
    -   by such Contributor that are necessarily infringed by their
    -   Contribution(s) alone or by combination of their Contribution(s)
    -   with the Work to which such Contribution(s) was submitted. If You
    -   institute patent litigation against any entity (including a
    -   cross-claim or counterclaim in a lawsuit) alleging that the Work
    -   or a Contribution incorporated within the Work constitutes direct
    -   or contributory patent infringement, then any patent licenses
    -   granted to You under this License for that Work shall terminate
    -   as of the date such litigation is filed.
    -
    -4. Redistribution. You may reproduce and distribute copies of the
    -   Work or Derivative Works thereof in any medium, with or without
    -   modifications, and in Source or Object form, provided that You
    -   meet the following conditions:
    -
    -   (a) You must give any other recipients of the Work or
    -       Derivative Works a copy of this License; and
    -
    -   (b) You must cause any modified files to carry prominent notices
    -       stating that You changed the files; and
    -
    -   (c) You must retain, in the Source form of any Derivative Works
    -       that You distribute, all copyright, patent, trademark, and
    -       attribution notices from the Source form of the Work,
    -       excluding those notices that do not pertain to any part of
    -       the Derivative Works; and
    -
    -   (d) If the Work includes a "NOTICE" text file as part of its
    -       distribution, then any Derivative Works that You distribute must
    -       include a readable copy of the attribution notices contained
    -       within such NOTICE file, excluding those notices that do not
    -       pertain to any part of the Derivative Works, in at least one
    -       of the following places: within a NOTICE text file distributed
    -       as part of the Derivative Works; within the Source form or
    -       documentation, if provided along with the Derivative Works; or,
    -       within a display generated by the Derivative Works, if and
    -       wherever such third-party notices normally appear. The contents
    -       of the NOTICE file are for informational purposes only and
    -       do not modify the License. You may add Your own attribution
    -       notices within Derivative Works that You distribute, alongside
    -       or as an addendum to the NOTICE text from the Work, provided
    -       that such additional attribution notices cannot be construed
    -       as modifying the License.
    -
    -   You may add Your own copyright statement to Your modifications and
    -   may provide additional or different license terms and conditions
    -   for use, reproduction, or distribution of Your modifications, or
    -   for any such Derivative Works as a whole, provided Your use,
    -   reproduction, and distribution of the Work otherwise complies with
    -   the conditions stated in this License.
    -
    -5. Submission of Contributions. Unless You explicitly state otherwise,
    -   any Contribution intentionally submitted for inclusion in the Work
    -   by You to the Licensor shall be under the terms and conditions of
    -   this License, without any additional terms or conditions.
    -   Notwithstanding the above, nothing herein shall supersede or modify
    -   the terms of any separate license agreement you may have executed
    -   with Licensor regarding such Contributions.
    -
    -6. Trademarks. This License does not grant permission to use the trade
    -   names, trademarks, service marks, or product names of the Licensor,
    -   except as required for reasonable and customary use in describing the
    -   origin of the Work and reproducing the content of the NOTICE file.
    -
    -7. Disclaimer of Warranty. Unless required by applicable law or
    -   agreed to in writing, Licensor provides the Work (and each
    -   Contributor provides its Contributions) on an "AS IS" BASIS,
    -   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    -   implied, including, without limitation, any warranties or conditions
    -   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    -   PARTICULAR PURPOSE. You are solely responsible for determining the
    -   appropriateness of using or redistributing the Work and assume any
    -   risks associated with Your exercise of permissions under this License.
    -
    -8. Limitation of Liability. In no event and under no legal theory,
    -   whether in tort (including negligence), contract, or otherwise,
    -   unless required by applicable law (such as deliberate and grossly
    -   negligent acts) or agreed to in writing, shall any Contributor be
    -   liable to You for damages, including any direct, indirect, special,
    -   incidental, or consequential damages of any character arising as a
    -   result of this License or out of the use or inability to use the
    -   Work (including but not limited to damages for loss of goodwill,
    -   work stoppage, computer failure or malfunction, or any and all
    -   other commercial damages or losses), even if such Contributor
    -   has been advised of the possibility of such damages.
    -
    -9. Accepting Warranty or Additional Liability. While redistributing
    -   the Work or Derivative Works thereof, You may choose to offer,
    -   and charge a fee for, acceptance of support, warranty, indemnity,
    -   or other liability obligations and/or rights consistent with this
    -   License. However, in accepting such obligations, You may act only
    -   on Your own behalf and on Your sole responsibility, not on behalf
    -   of any other Contributor, and only if You agree to indemnify,
    -   defend, and hold each Contributor harmless for any liability
    -   incurred by, or claims asserted against, such Contributor by reason
    -   of your accepting any such warranty or additional liability.
    -
    -END OF TERMS AND CONDITIONS
    -
    -APPENDIX: How to apply the Apache License to your work.
    -
    -   To apply the Apache License to your work, attach the following
    -   boilerplate notice, with the fields enclosed by brackets "[]"
    -   replaced with your own identifying information. (Don't include
    -   the brackets!)  The text should be enclosed in the appropriate
    -   comment syntax for the file format. We also recommend that a
    -   file or class name and description of purpose be included on the
    -   same "printed page" as the copyright notice for easier
    -   identification within third-party archives.
    -
    -Copyright [yyyy] [name of copyright owner]
    -
    -Licensed under the Apache License, Version 2.0 (the "License");
    -you may not use this file except in compliance with the License.
    -You may obtain a copy of the License at
    -
    -    http://www.apache.org/licenses/LICENSE-2.0
    -
    -Unless required by applicable law or agreed to in writing, software
    -distributed under the License is distributed on an "AS IS" BASIS,
    -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -See the License for the specific language governing permissions and
    -limitations under the License.
    diff --git a/spec/fixtures/output_missing_files/appbundler-dependency-licenses.json b/spec/fixtures/output_missing_files/appbundler-dependency-licenses.json
    deleted file mode 100644
    index 0b9653e5..00000000
    --- a/spec/fixtures/output_missing_files/appbundler-dependency-licenses.json
    +++ /dev/null
    @@ -1,32 +0,0 @@
    -{
    -  "license_manifest_version": 1,
    -  "project_name": "chef-server",
    -  "dependency_managers": {
    -    "ruby_bundler": [
    -      {
    -        "name": "mixlib-cli",
    -        "version": "1.7.0",
    -        "license": "Apache-2.0",
    -        "license_files": [
    -          "ruby_bundler-mixlib-cli-1.7.0-LICENSE"
    -        ]
    -      },
    -      {
    -        "name": "appbundler",
    -        "version": "0.9.0",
    -        "license": "Apache2",
    -        "license_files": [
    -          "ruby_bundler-appbundler-0.9.0-LICENSE.txt"
    -        ]
    -      },
    -      {
    -        "name": "bundler",
    -        "version": "1.12.5",
    -        "license": "MIT",
    -        "license_files": [
    -          "ruby_bundler-bundler-1.12.5-LICENSE.md"
    -        ]
    -      }
    -    ]
    -  }
    -}
    diff --git a/spec/fixtures/output_missing_files/ruby_bundler-bundler-1.12.5-LICENSE.md b/spec/fixtures/output_missing_files/ruby_bundler-bundler-1.12.5-LICENSE.md
    deleted file mode 100644
    index e356f59f..00000000
    --- a/spec/fixtures/output_missing_files/ruby_bundler-bundler-1.12.5-LICENSE.md
    +++ /dev/null
    @@ -1,23 +0,0 @@
    -Portions copyright (c) 2010 Andre Arko  
    -Portions copyright (c) 2009 Engine Yard
    -
    -MIT License
    -
    -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/spec/fixtures/output_multiple_manifests/appbundler-dependency-licenses.json b/spec/fixtures/output_multiple_manifests/appbundler-dependency-licenses.json
    deleted file mode 100644
    index 001def63..00000000
    --- a/spec/fixtures/output_multiple_manifests/appbundler-dependency-licenses.json
    +++ /dev/null
    @@ -1,32 +0,0 @@
    -{
    -  "license_manifest_version": 1,
    -  "project_name": "appbundler",
    -  "dependency_managers": {
    -    "ruby_bundler": [
    -      {
    -        "name": "mixlib-cli",
    -        "version": "1.7.0",
    -        "license": "Apache-2.0",
    -        "license_files": [
    -          "ruby_bundler-mixlib-cli-1.7.0-LICENSE"
    -        ]
    -      },
    -      {
    -        "name": "appbundler",
    -        "version": "0.9.0",
    -        "license": "Apache2",
    -        "license_files": [
    -          "ruby_bundler-appbundler-0.9.0-LICENSE.txt"
    -        ]
    -      },
    -      {
    -        "name": "bundler",
    -        "version": "1.12.5",
    -        "license": "MIT",
    -        "license_files": [
    -          "ruby_bundler-bundler-1.12.5-LICENSE.md"
    -        ]
    -      }
    -    ]
    -  }
    -}
    diff --git a/spec/fixtures/output_multiple_manifests/knife-opc-dependency-licenses.json b/spec/fixtures/output_multiple_manifests/knife-opc-dependency-licenses.json
    deleted file mode 100644
    index 42c147ae..00000000
    --- a/spec/fixtures/output_multiple_manifests/knife-opc-dependency-licenses.json
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -{
    -  "license_manifest_version": 1,
    -  "project_name": "knife-opc",
    -  "dependency_managers": {
    -    "ruby_bundler": [
    -      {
    -        "name": "bundler",
    -        "version": "1.12.5",
    -        "license": "MIT",
    -        "license_files": [
    -          "ruby_bundler-bundler-1.12.5-LICENSE.md"
    -        ]
    -      },
    -      {
    -        "name": "knife-opc",
    -        "version": "0.3.2",
    -        "license": "Apache-2.0",
    -        "license_files": [
    -          "ruby_bundler-knife-opc-0.3.2-LICENSE"
    -        ]
    -      }
    -    ]
    -  }
    -}
    diff --git a/spec/fixtures/output_no_errors/appbundler-dependency-licenses.json b/spec/fixtures/output_no_errors/appbundler-dependency-licenses.json
    deleted file mode 100644
    index 001def63..00000000
    --- a/spec/fixtures/output_no_errors/appbundler-dependency-licenses.json
    +++ /dev/null
    @@ -1,32 +0,0 @@
    -{
    -  "license_manifest_version": 1,
    -  "project_name": "appbundler",
    -  "dependency_managers": {
    -    "ruby_bundler": [
    -      {
    -        "name": "mixlib-cli",
    -        "version": "1.7.0",
    -        "license": "Apache-2.0",
    -        "license_files": [
    -          "ruby_bundler-mixlib-cli-1.7.0-LICENSE"
    -        ]
    -      },
    -      {
    -        "name": "appbundler",
    -        "version": "0.9.0",
    -        "license": "Apache2",
    -        "license_files": [
    -          "ruby_bundler-appbundler-0.9.0-LICENSE.txt"
    -        ]
    -      },
    -      {
    -        "name": "bundler",
    -        "version": "1.12.5",
    -        "license": "MIT",
    -        "license_files": [
    -          "ruby_bundler-bundler-1.12.5-LICENSE.md"
    -        ]
    -      }
    -    ]
    -  }
    -}
    diff --git a/spec/fixtures/output_no_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt b/spec/fixtures/output_no_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt
    deleted file mode 100644
    index d6456956..00000000
    --- a/spec/fixtures/output_no_errors/ruby_bundler-appbundler-0.9.0-LICENSE.txt
    +++ /dev/null
    @@ -1,202 +0,0 @@
    -
    -                                 Apache License
    -                           Version 2.0, January 2004
    -                        http://www.apache.org/licenses/
    -
    -   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    -
    -   1. Definitions.
    -
    -      "License" shall mean the terms and conditions for use, reproduction,
    -      and distribution as defined by Sections 1 through 9 of this document.
    -
    -      "Licensor" shall mean the copyright owner or entity authorized by
    -      the copyright owner that is granting the License.
    -
    -      "Legal Entity" shall mean the union of the acting entity and all
    -      other entities that control, are controlled by, or are under common
    -      control with that entity. For the purposes of this definition,
    -      "control" means (i) the power, direct or indirect, to cause the
    -      direction or management of such entity, whether by contract or
    -      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    -      outstanding shares, or (iii) beneficial ownership of such entity.
    -
    -      "You" (or "Your") shall mean an individual or Legal Entity
    -      exercising permissions granted by this License.
    -
    -      "Source" form shall mean the preferred form for making modifications,
    -      including but not limited to software source code, documentation
    -      source, and configuration files.
    -
    -      "Object" form shall mean any form resulting from mechanical
    -      transformation or translation of a Source form, including but
    -      not limited to compiled object code, generated documentation,
    -      and conversions to other media types.
    -
    -      "Work" shall mean the work of authorship, whether in Source or
    -      Object form, made available under the License, as indicated by a
    -      copyright notice that is included in or attached to the work
    -      (an example is provided in the Appendix below).
    -
    -      "Derivative Works" shall mean any work, whether in Source or Object
    -      form, that is based on (or derived from) the Work and for which the
    -      editorial revisions, annotations, elaborations, or other modifications
    -      represent, as a whole, an original work of authorship. For the purposes
    -      of this License, Derivative Works shall not include works that remain
    -      separable from, or merely link (or bind by name) to the interfaces of,
    -      the Work and Derivative Works thereof.
    -
    -      "Contribution" shall mean any work of authorship, including
    -      the original version of the Work and any modifications or additions
    -      to that Work or Derivative Works thereof, that is intentionally
    -      submitted to Licensor for inclusion in the Work by the copyright owner
    -      or by an individual or Legal Entity authorized to submit on behalf of
    -      the copyright owner. For the purposes of this definition, "submitted"
    -      means any form of electronic, verbal, or written communication sent
    -      to the Licensor or its representatives, including but not limited to
    -      communication on electronic mailing lists, source code control systems,
    -      and issue tracking systems that are managed by, or on behalf of, the
    -      Licensor for the purpose of discussing and improving the Work, but
    -      excluding communication that is conspicuously marked or otherwise
    -      designated in writing by the copyright owner as "Not a Contribution."
    -
    -      "Contributor" shall mean Licensor and any individual or Legal Entity
    -      on behalf of whom a Contribution has been received by Licensor and
    -      subsequently incorporated within the Work.
    -
    -   2. Grant of Copyright License. Subject to the terms and conditions of
    -      this License, each Contributor hereby grants to You a perpetual,
    -      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -      copyright license to reproduce, prepare Derivative Works of,
    -      publicly display, publicly perform, sublicense, and distribute the
    -      Work and such Derivative Works in Source or Object form.
    -
    -   3. Grant of Patent License. Subject to the terms and conditions of
    -      this License, each Contributor hereby grants to You a perpetual,
    -      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -      (except as stated in this section) patent license to make, have made,
    -      use, offer to sell, sell, import, and otherwise transfer the Work,
    -      where such license applies only to those patent claims licensable
    -      by such Contributor that are necessarily infringed by their
    -      Contribution(s) alone or by combination of their Contribution(s)
    -      with the Work to which such Contribution(s) was submitted. If You
    -      institute patent litigation against any entity (including a
    -      cross-claim or counterclaim in a lawsuit) alleging that the Work
    -      or a Contribution incorporated within the Work constitutes direct
    -      or contributory patent infringement, then any patent licenses
    -      granted to You under this License for that Work shall terminate
    -      as of the date such litigation is filed.
    -
    -   4. Redistribution. You may reproduce and distribute copies of the
    -      Work or Derivative Works thereof in any medium, with or without
    -      modifications, and in Source or Object form, provided that You
    -      meet the following conditions:
    -
    -      (a) You must give any other recipients of the Work or
    -          Derivative Works a copy of this License; and
    -
    -      (b) You must cause any modified files to carry prominent notices
    -          stating that You changed the files; and
    -
    -      (c) You must retain, in the Source form of any Derivative Works
    -          that You distribute, all copyright, patent, trademark, and
    -          attribution notices from the Source form of the Work,
    -          excluding those notices that do not pertain to any part of
    -          the Derivative Works; and
    -
    -      (d) If the Work includes a "NOTICE" text file as part of its
    -          distribution, then any Derivative Works that You distribute must
    -          include a readable copy of the attribution notices contained
    -          within such NOTICE file, excluding those notices that do not
    -          pertain to any part of the Derivative Works, in at least one
    -          of the following places: within a NOTICE text file distributed
    -          as part of the Derivative Works; within the Source form or
    -          documentation, if provided along with the Derivative Works; or,
    -          within a display generated by the Derivative Works, if and
    -          wherever such third-party notices normally appear. The contents
    -          of the NOTICE file are for informational purposes only and
    -          do not modify the License. You may add Your own attribution
    -          notices within Derivative Works that You distribute, alongside
    -          or as an addendum to the NOTICE text from the Work, provided
    -          that such additional attribution notices cannot be construed
    -          as modifying the License.
    -
    -      You may add Your own copyright statement to Your modifications and
    -      may provide additional or different license terms and conditions
    -      for use, reproduction, or distribution of Your modifications, or
    -      for any such Derivative Works as a whole, provided Your use,
    -      reproduction, and distribution of the Work otherwise complies with
    -      the conditions stated in this License.
    -
    -   5. Submission of Contributions. Unless You explicitly state otherwise,
    -      any Contribution intentionally submitted for inclusion in the Work
    -      by You to the Licensor shall be under the terms and conditions of
    -      this License, without any additional terms or conditions.
    -      Notwithstanding the above, nothing herein shall supersede or modify
    -      the terms of any separate license agreement you may have executed
    -      with Licensor regarding such Contributions.
    -
    -   6. Trademarks. This License does not grant permission to use the trade
    -      names, trademarks, service marks, or product names of the Licensor,
    -      except as required for reasonable and customary use in describing the
    -      origin of the Work and reproducing the content of the NOTICE file.
    -
    -   7. Disclaimer of Warranty. Unless required by applicable law or
    -      agreed to in writing, Licensor provides the Work (and each
    -      Contributor provides its Contributions) on an "AS IS" BASIS,
    -      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    -      implied, including, without limitation, any warranties or conditions
    -      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    -      PARTICULAR PURPOSE. You are solely responsible for determining the
    -      appropriateness of using or redistributing the Work and assume any
    -      risks associated with Your exercise of permissions under this License.
    -
    -   8. Limitation of Liability. In no event and under no legal theory,
    -      whether in tort (including negligence), contract, or otherwise,
    -      unless required by applicable law (such as deliberate and grossly
    -      negligent acts) or agreed to in writing, shall any Contributor be
    -      liable to You for damages, including any direct, indirect, special,
    -      incidental, or consequential damages of any character arising as a
    -      result of this License or out of the use or inability to use the
    -      Work (including but not limited to damages for loss of goodwill,
    -      work stoppage, computer failure or malfunction, or any and all
    -      other commercial damages or losses), even if such Contributor
    -      has been advised of the possibility of such damages.
    -
    -   9. Accepting Warranty or Additional Liability. While redistributing
    -      the Work or Derivative Works thereof, You may choose to offer,
    -      and charge a fee for, acceptance of support, warranty, indemnity,
    -      or other liability obligations and/or rights consistent with this
    -      License. However, in accepting such obligations, You may act only
    -      on Your own behalf and on Your sole responsibility, not on behalf
    -      of any other Contributor, and only if You agree to indemnify,
    -      defend, and hold each Contributor harmless for any liability
    -      incurred by, or claims asserted against, such Contributor by reason
    -      of your accepting any such warranty or additional liability.
    -
    -   END OF TERMS AND CONDITIONS
    -
    -   APPENDIX: How to apply the Apache License to your work.
    -
    -      To apply the Apache License to your work, attach the following
    -      boilerplate notice, with the fields enclosed by brackets "[]"
    -      replaced with your own identifying information. (Don't include
    -      the brackets!)  The text should be enclosed in the appropriate
    -      comment syntax for the file format. We also recommend that a
    -      file or class name and description of purpose be included on the
    -      same "printed page" as the copyright notice for easier
    -      identification within third-party archives.
    -
    -   Copyright [yyyy] [name of copyright owner]
    -
    -   Licensed under the Apache License, Version 2.0 (the "License");
    -   you may not use this file except in compliance with the License.
    -   You may obtain a copy of the License at
    -
    -       http://www.apache.org/licenses/LICENSE-2.0
    -
    -   Unless required by applicable law or agreed to in writing, software
    -   distributed under the License is distributed on an "AS IS" BASIS,
    -   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -   See the License for the specific language governing permissions and
    -   limitations under the License.
    diff --git a/spec/fixtures/output_no_errors/ruby_bundler-bundler-1.12.5-LICENSE.md b/spec/fixtures/output_no_errors/ruby_bundler-bundler-1.12.5-LICENSE.md
    deleted file mode 100644
    index e356f59f..00000000
    --- a/spec/fixtures/output_no_errors/ruby_bundler-bundler-1.12.5-LICENSE.md
    +++ /dev/null
    @@ -1,23 +0,0 @@
    -Portions copyright (c) 2010 Andre Arko  
    -Portions copyright (c) 2009 Engine Yard
    -
    -MIT License
    -
    -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/spec/fixtures/output_no_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE b/spec/fixtures/output_no_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE
    deleted file mode 100644
    index 11069edd..00000000
    --- a/spec/fixtures/output_no_errors/ruby_bundler-mixlib-cli-1.7.0-LICENSE
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -                              Apache License
    -                        Version 2.0, January 2004
    -                     http://www.apache.org/licenses/
    -
    -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    -
    -1. Definitions.
    -
    -   "License" shall mean the terms and conditions for use, reproduction,
    -   and distribution as defined by Sections 1 through 9 of this document.
    -
    -   "Licensor" shall mean the copyright owner or entity authorized by
    -   the copyright owner that is granting the License.
    -
    -   "Legal Entity" shall mean the union of the acting entity and all
    -   other entities that control, are controlled by, or are under common
    -   control with that entity. For the purposes of this definition,
    -   "control" means (i) the power, direct or indirect, to cause the
    -   direction or management of such entity, whether by contract or
    -   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    -   outstanding shares, or (iii) beneficial ownership of such entity.
    -
    -   "You" (or "Your") shall mean an individual or Legal Entity
    -   exercising permissions granted by this License.
    -
    -   "Source" form shall mean the preferred form for making modifications,
    -   including but not limited to software source code, documentation
    -   source, and configuration files.
    -
    -   "Object" form shall mean any form resulting from mechanical
    -   transformation or translation of a Source form, including but
    -   not limited to compiled object code, generated documentation,
    -   and conversions to other media types.
    -
    -   "Work" shall mean the work of authorship, whether in Source or
    -   Object form, made available under the License, as indicated by a
    -   copyright notice that is included in or attached to the work
    -   (an example is provided in the Appendix below).
    -
    -   "Derivative Works" shall mean any work, whether in Source or Object
    -   form, that is based on (or derived from) the Work and for which the
    -   editorial revisions, annotations, elaborations, or other modifications
    -   represent, as a whole, an original work of authorship. For the purposes
    -   of this License, Derivative Works shall not include works that remain
    -   separable from, or merely link (or bind by name) to the interfaces of,
    -   the Work and Derivative Works thereof.
    -
    -   "Contribution" shall mean any work of authorship, including
    -   the original version of the Work and any modifications or additions
    -   to that Work or Derivative Works thereof, that is intentionally
    -   submitted to Licensor for inclusion in the Work by the copyright owner
    -   or by an individual or Legal Entity authorized to submit on behalf of
    -   the copyright owner. For the purposes of this definition, "submitted"
    -   means any form of electronic, verbal, or written communication sent
    -   to the Licensor or its representatives, including but not limited to
    -   communication on electronic mailing lists, source code control systems,
    -   and issue tracking systems that are managed by, or on behalf of, the
    -   Licensor for the purpose of discussing and improving the Work, but
    -   excluding communication that is conspicuously marked or otherwise
    -   designated in writing by the copyright owner as "Not a Contribution."
    -
    -   "Contributor" shall mean Licensor and any individual or Legal Entity
    -   on behalf of whom a Contribution has been received by Licensor and
    -   subsequently incorporated within the Work.
    -
    -2. Grant of Copyright License. Subject to the terms and conditions of
    -   this License, each Contributor hereby grants to You a perpetual,
    -   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -   copyright license to reproduce, prepare Derivative Works of,
    -   publicly display, publicly perform, sublicense, and distribute the
    -   Work and such Derivative Works in Source or Object form.
    -
    -3. Grant of Patent License. Subject to the terms and conditions of
    -   this License, each Contributor hereby grants to You a perpetual,
    -   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    -   (except as stated in this section) patent license to make, have made,
    -   use, offer to sell, sell, import, and otherwise transfer the Work,
    -   where such license applies only to those patent claims licensable
    -   by such Contributor that are necessarily infringed by their
    -   Contribution(s) alone or by combination of their Contribution(s)
    -   with the Work to which such Contribution(s) was submitted. If You
    -   institute patent litigation against any entity (including a
    -   cross-claim or counterclaim in a lawsuit) alleging that the Work
    -   or a Contribution incorporated within the Work constitutes direct
    -   or contributory patent infringement, then any patent licenses
    -   granted to You under this License for that Work shall terminate
    -   as of the date such litigation is filed.
    -
    -4. Redistribution. You may reproduce and distribute copies of the
    -   Work or Derivative Works thereof in any medium, with or without
    -   modifications, and in Source or Object form, provided that You
    -   meet the following conditions:
    -
    -   (a) You must give any other recipients of the Work or
    -       Derivative Works a copy of this License; and
    -
    -   (b) You must cause any modified files to carry prominent notices
    -       stating that You changed the files; and
    -
    -   (c) You must retain, in the Source form of any Derivative Works
    -       that You distribute, all copyright, patent, trademark, and
    -       attribution notices from the Source form of the Work,
    -       excluding those notices that do not pertain to any part of
    -       the Derivative Works; and
    -
    -   (d) If the Work includes a "NOTICE" text file as part of its
    -       distribution, then any Derivative Works that You distribute must
    -       include a readable copy of the attribution notices contained
    -       within such NOTICE file, excluding those notices that do not
    -       pertain to any part of the Derivative Works, in at least one
    -       of the following places: within a NOTICE text file distributed
    -       as part of the Derivative Works; within the Source form or
    -       documentation, if provided along with the Derivative Works; or,
    -       within a display generated by the Derivative Works, if and
    -       wherever such third-party notices normally appear. The contents
    -       of the NOTICE file are for informational purposes only and
    -       do not modify the License. You may add Your own attribution
    -       notices within Derivative Works that You distribute, alongside
    -       or as an addendum to the NOTICE text from the Work, provided
    -       that such additional attribution notices cannot be construed
    -       as modifying the License.
    -
    -   You may add Your own copyright statement to Your modifications and
    -   may provide additional or different license terms and conditions
    -   for use, reproduction, or distribution of Your modifications, or
    -   for any such Derivative Works as a whole, provided Your use,
    -   reproduction, and distribution of the Work otherwise complies with
    -   the conditions stated in this License.
    -
    -5. Submission of Contributions. Unless You explicitly state otherwise,
    -   any Contribution intentionally submitted for inclusion in the Work
    -   by You to the Licensor shall be under the terms and conditions of
    -   this License, without any additional terms or conditions.
    -   Notwithstanding the above, nothing herein shall supersede or modify
    -   the terms of any separate license agreement you may have executed
    -   with Licensor regarding such Contributions.
    -
    -6. Trademarks. This License does not grant permission to use the trade
    -   names, trademarks, service marks, or product names of the Licensor,
    -   except as required for reasonable and customary use in describing the
    -   origin of the Work and reproducing the content of the NOTICE file.
    -
    -7. Disclaimer of Warranty. Unless required by applicable law or
    -   agreed to in writing, Licensor provides the Work (and each
    -   Contributor provides its Contributions) on an "AS IS" BASIS,
    -   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    -   implied, including, without limitation, any warranties or conditions
    -   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    -   PARTICULAR PURPOSE. You are solely responsible for determining the
    -   appropriateness of using or redistributing the Work and assume any
    -   risks associated with Your exercise of permissions under this License.
    -
    -8. Limitation of Liability. In no event and under no legal theory,
    -   whether in tort (including negligence), contract, or otherwise,
    -   unless required by applicable law (such as deliberate and grossly
    -   negligent acts) or agreed to in writing, shall any Contributor be
    -   liable to You for damages, including any direct, indirect, special,
    -   incidental, or consequential damages of any character arising as a
    -   result of this License or out of the use or inability to use the
    -   Work (including but not limited to damages for loss of goodwill,
    -   work stoppage, computer failure or malfunction, or any and all
    -   other commercial damages or losses), even if such Contributor
    -   has been advised of the possibility of such damages.
    -
    -9. Accepting Warranty or Additional Liability. While redistributing
    -   the Work or Derivative Works thereof, You may choose to offer,
    -   and charge a fee for, acceptance of support, warranty, indemnity,
    -   or other liability obligations and/or rights consistent with this
    -   License. However, in accepting such obligations, You may act only
    -   on Your own behalf and on Your sole responsibility, not on behalf
    -   of any other Contributor, and only if You agree to indemnify,
    -   defend, and hold each Contributor harmless for any liability
    -   incurred by, or claims asserted against, such Contributor by reason
    -   of your accepting any such warranty or additional liability.
    -
    -END OF TERMS AND CONDITIONS
    -
    -APPENDIX: How to apply the Apache License to your work.
    -
    -   To apply the Apache License to your work, attach the following
    -   boilerplate notice, with the fields enclosed by brackets "[]"
    -   replaced with your own identifying information. (Don't include
    -   the brackets!)  The text should be enclosed in the appropriate
    -   comment syntax for the file format. We also recommend that a
    -   file or class name and description of purpose be included on the
    -   same "printed page" as the copyright notice for easier
    -   identification within third-party archives.
    -
    -Copyright [yyyy] [name of copyright owner]
    -
    -Licensed under the Apache License, Version 2.0 (the "License");
    -you may not use this file except in compliance with the License.
    -You may obtain a copy of the License at
    -
    -    http://www.apache.org/licenses/LICENSE-2.0
    -
    -Unless required by applicable law or agreed to in writing, software
    -distributed under the License is distributed on an "AS IS" BASIS,
    -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -See the License for the specific language governing permissions and
    -limitations under the License.
    diff --git a/spec/fixtures/output_no_manifest/README b/spec/fixtures/output_no_manifest/README
    deleted file mode 100644
    index 6c94315c..00000000
    --- a/spec/fixtures/output_no_manifest/README
    +++ /dev/null
    @@ -1 +0,0 @@
    -This folder intentionally does not contain a "*-dependency-licenses.json" file.
    diff --git a/spec/fixtures/test_licenses/LICENSE b/spec/fixtures/test_licenses/LICENSE
    deleted file mode 100644
    index e69de29b..00000000
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_Collector/_collect/when_one_or_more_valid_directories_are_specified/collects_all_of_the_dependencies_for_all_the_supported_implementations.yml b/spec/fixtures/vcr_cassettes/LicenseScout_Collector/_collect/when_one_or_more_valid_directories_are_specified/collects_all_of_the_dependencies_for_all_the_supported_implementations.yml
    new file mode 100644
    index 00000000..2c8f9525
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_Collector/_collect/when_one_or_more_valid_directories_are_specified/collects_all_of_the_dependencies_for_all_the_supported_implementations.yml
    @@ -0,0 +1,786 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/latest
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Cache-Control:
    +      - private, no-cache, no-store, private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:28 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1034-SEA, cache-dfw18646-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:28 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/musl/latest
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Cache-Control:
    +      - private, no-cache, no-store, private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1632'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:29 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1027-SEA, cache-dfw18620-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["bldr-934274506564550656","stable","unstable"],"checksum":"65280111617075be6ba2c645641b1a90bbfcbd08041bbe9b827e69236f140ea1","config":"","deps":[],"exposes":[],"ident":{"name":"musl","origin":"core","release":"20180310000919","version":"1.1.18"},"is_a_service":false,"manifest":"#
    +        core / musl\nmusl is a new standard library to power a new generation of Linux-based
    +        devices. musl is lightweight, fast, simple, free, and strives to be correct
    +        in the sense of standards-conformance and safety.\n\n* __Maintainer__: The
    +        Habitat Maintainers \n* __Version__: 1.1.18\n* __Release__:
    +        20180310000919\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.musl-libc.org/](https://www.musl-libc.org/)\n*
    +        __License__: MIT \n* __Source__: [http://www.musl-libc.org/releases/musl-1.1.18.tar.gz](http://www.musl-libc.org/releases/musl-1.1.18.tar.gz)\n*
    +        __SHA__: `d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118`\n*
    +        __Path__: `/hab/pkgs/core/musl/1.1.18/20180310000919`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/gcc core/make core/patch core/sed `\n*
    +        __Dependencies__: no runtime dependencies or undefined\n* __Interpreters__:
    +        no interpreters or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCPPFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCXXFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nLDFLAGS:
    +        -L/hab/pkgs/core/gcc/5.2.0/20170513202244/lib\nLD_RUN_PATH: /hab/pkgs/core/musl/1.1.18/20180310000919/lib\n```\n\n##
    +        Plan Source\n\n```bash\npkg_name=musl\npkg_origin=core\npkg_version=1.1.18\npkg_license=(''MIT'')\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_description=\"musl is a new
    +        standard library to power a new generation of Linux-based devices. musl is
    +        lightweight, fast, simple, free, and strives to be correct in the sense of
    +        standards-conformance and safety.\"\npkg_upstream_url=\"https://www.musl-libc.org/\"\npkg_source=\"http://www.musl-libc.org/releases/${pkg_name}-${pkg_version}.tar.gz\"\npkg_shasum=\"d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118\"\npkg_deps=()\npkg_build_deps=(\n  core/coreutils\n  core/diffutils\n  core/gcc\n  core/make\n  core/patch\n  core/sed\n)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  stack_size=\"2097152\"\n  build_line \"Setting default stack size to
    +        ''$stack_size'' from default of ''81920''\"\n  sed -i \"s/#define DEFAULT_STACK_SIZE
    +        .*/#define DEFAULT_STACK_SIZE $stack_size/\" \\\n    src/internal/pthread_impl.h\n}\n\ndo_build()
    +        {\n  ./configure \\\n    --prefix=\"$pkg_prefix\" \\\n    --syslibdir=\"$pkg_prefix/lib\"\n  make
    +        -j \"$(nproc)\"\n}\n\ndo_install() {\n  do_default_install\n\n  # Install
    +        license\n  install -Dm0644 COPYRIGHT \"$pkg_prefix/share/licenses/COPYRIGHT\"\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=(core/gcc core/coreutils
    +        core/sed core/diffutils core/make core/patch)\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:29 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/2.22/20170513201042
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:31 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1046-SEA, cache-dfw18625-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:31 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/musl/1.1.18/20180310000919
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1632'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:31 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1043-SEA, cache-dfw18627-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["bldr-934274506564550656","stable","unstable"],"checksum":"65280111617075be6ba2c645641b1a90bbfcbd08041bbe9b827e69236f140ea1","config":"","deps":[],"exposes":[],"ident":{"name":"musl","origin":"core","release":"20180310000919","version":"1.1.18"},"is_a_service":false,"manifest":"#
    +        core / musl\nmusl is a new standard library to power a new generation of Linux-based
    +        devices. musl is lightweight, fast, simple, free, and strives to be correct
    +        in the sense of standards-conformance and safety.\n\n* __Maintainer__: The
    +        Habitat Maintainers \n* __Version__: 1.1.18\n* __Release__:
    +        20180310000919\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.musl-libc.org/](https://www.musl-libc.org/)\n*
    +        __License__: MIT \n* __Source__: [http://www.musl-libc.org/releases/musl-1.1.18.tar.gz](http://www.musl-libc.org/releases/musl-1.1.18.tar.gz)\n*
    +        __SHA__: `d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118`\n*
    +        __Path__: `/hab/pkgs/core/musl/1.1.18/20180310000919`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/gcc core/make core/patch core/sed `\n*
    +        __Dependencies__: no runtime dependencies or undefined\n* __Interpreters__:
    +        no interpreters or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCPPFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCXXFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nLDFLAGS:
    +        -L/hab/pkgs/core/gcc/5.2.0/20170513202244/lib\nLD_RUN_PATH: /hab/pkgs/core/musl/1.1.18/20180310000919/lib\n```\n\n##
    +        Plan Source\n\n```bash\npkg_name=musl\npkg_origin=core\npkg_version=1.1.18\npkg_license=(''MIT'')\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_description=\"musl is a new
    +        standard library to power a new generation of Linux-based devices. musl is
    +        lightweight, fast, simple, free, and strives to be correct in the sense of
    +        standards-conformance and safety.\"\npkg_upstream_url=\"https://www.musl-libc.org/\"\npkg_source=\"http://www.musl-libc.org/releases/${pkg_name}-${pkg_version}.tar.gz\"\npkg_shasum=\"d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118\"\npkg_deps=()\npkg_build_deps=(\n  core/coreutils\n  core/diffutils\n  core/gcc\n  core/make\n  core/patch\n  core/sed\n)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  stack_size=\"2097152\"\n  build_line \"Setting default stack size to
    +        ''$stack_size'' from default of ''81920''\"\n  sed -i \"s/#define DEFAULT_STACK_SIZE
    +        .*/#define DEFAULT_STACK_SIZE $stack_size/\" \\\n    src/internal/pthread_impl.h\n}\n\ndo_build()
    +        {\n  ./configure \\\n    --prefix=\"$pkg_prefix\" \\\n    --syslibdir=\"$pkg_prefix/lib\"\n  make
    +        -j \"$(nproc)\"\n}\n\ndo_install() {\n  do_default_install\n\n  # Install
    +        license\n  install -Dm0644 COPYRIGHT \"$pkg_prefix/share/licenses/COPYRIGHT\"\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=(core/gcc core/coreutils
    +        core/sed core/diffutils core/make core/patch)\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:31 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/linux-headers/4.3/20170513200956
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1302'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:31 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1042-SEA, cache-dfw18638-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"8f5d28dbe6e77d01f859eba9300df981f758312724f5d25925f1f22c0cc8ff77","config":"","deps":[],"exposes":[],"ident":{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"},"is_a_service":false,"manifest":"#
    +        core / linux-headers\n\n\n* __Maintainer__: The Habitat Maintainers \n*
    +        __Version__: 4.3\n* __Release__: 20170513200956\n* __Architecture__: x86_64\n*
    +        __System__: linux\n* __Target__: x86_64-linux\n* __Upstream URL__: upstream
    +        project''s website or home page is not defined\n* __License__: gplv2 \n* __Source__:
    +        [https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz](https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz)\n*
    +        __SHA__: `4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae`\n*
    +        __Path__: `/hab/pkgs/core/linux-headers/4.3/20170513200956`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc `\n* __Dependencies__:
    +        no runtime dependencies or undefined\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCPPFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS: -L/hab/pkgs/core/gcc/5.2.0/20161208212815/lib\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=linux-headers\npkg_origin=core\npkg_version=4.3\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'')\npkg_source=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${pkg_version}.tar.xz\npkg_shasum=4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae\npkg_dirname=linux-$pkg_version\npkg_deps=()\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc)\npkg_include_dirs=(include)\n\ndo_build()
    +        {\n  make headers_install ARCH=x86 INSTALL_HDR_PATH=\"$pkg_prefix\"\n}\n\ndo_install()
    +        {\n  find \"$pkg_prefix/include\" \\( -name ..install.cmd -o -name .install
    +        \\) -print0 | xargs -0 rm -v\n}\n\n\n# ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:31 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Bundler/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Bundler/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml
    new file mode 100644
    index 00000000..2a643083
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Bundler/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml
    @@ -0,0 +1,234 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://api.github.com/repos/bundler/bundler/contents/
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept:
    +      - application/vnd.github.v3+json
    +      User-Agent:
    +      - Octokit Ruby Gem 4.8.0
    +      Content-Type:
    +      - application/json
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:48 GMT
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Transfer-Encoding:
    +      - chunked
    +      Status:
    +      - 200 OK
    +      X-Ratelimit-Limit:
    +      - '60'
    +      X-Ratelimit-Remaining:
    +      - '59'
    +      X-Ratelimit-Reset:
    +      - '1523549868'
    +      Cache-Control:
    +      - public, max-age=60, s-maxage=60
    +      Vary:
    +      - Accept
    +      Etag:
    +      - W/"907a8ba32f96465e9bc2f8abc89955d8baa540d5"
    +      Last-Modified:
    +      - Mon, 09 Apr 2018 04:23:16 GMT
    +      X-Github-Media-Type:
    +      - github.v3; format=json
    +      Access-Control-Expose-Headers:
    +      - ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
    +        X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Referrer-Policy:
    +      - origin-when-cross-origin, strict-origin-when-cross-origin
    +      Content-Security-Policy:
    +      - default-src 'none'
    +      X-Runtime-Rack:
    +      - '0.040765'
    +      X-Github-Request-Id:
    +      - DB00:0B83:5A7933:DBE849:5ACF789C
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '[{"name":".codeclimate.yml","path":".codeclimate.yml","sha":"b8d91f14c4e1d56161ca46ec58c6fe08bd1cbac6","size":360,"url":"https://api.github.com/repos/bundler/bundler/contents/.codeclimate.yml?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.codeclimate.yml","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/b8d91f14c4e1d56161ca46ec58c6fe08bd1cbac6","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.codeclimate.yml","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.codeclimate.yml?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/b8d91f14c4e1d56161ca46ec58c6fe08bd1cbac6","html":"https://github.com/bundler/bundler/blob/master/.codeclimate.yml"}},{"name":".github","path":".github","sha":"3f7c4e001044cec8bb07b3c503ecf15c5035ca79","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/.github?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/.github","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/3f7c4e001044cec8bb07b3c503ecf15c5035ca79","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.github?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/3f7c4e001044cec8bb07b3c503ecf15c5035ca79","html":"https://github.com/bundler/bundler/tree/master/.github"}},{"name":".gitignore","path":".gitignore","sha":"6230ec1c991028d86dff2d0facdb8315f2ed42bb","size":496,"url":"https://api.github.com/repos/bundler/bundler/contents/.gitignore?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.gitignore","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/6230ec1c991028d86dff2d0facdb8315f2ed42bb","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.gitignore","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.gitignore?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/6230ec1c991028d86dff2d0facdb8315f2ed42bb","html":"https://github.com/bundler/bundler/blob/master/.gitignore"}},{"name":".rspec","path":".rspec","sha":"146d6154883c505922b51b2d62bb9ed6938440b1","size":64,"url":"https://api.github.com/repos/bundler/bundler/contents/.rspec?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.rspec","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/146d6154883c505922b51b2d62bb9ed6938440b1","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.rspec","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.rspec?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/146d6154883c505922b51b2d62bb9ed6938440b1","html":"https://github.com/bundler/bundler/blob/master/.rspec"}},{"name":".rubocop.yml","path":".rubocop.yml","sha":"a6412ecb135223e1517972786d866d10e67be50d","size":2458,"url":"https://api.github.com/repos/bundler/bundler/contents/.rubocop.yml?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.rubocop.yml","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/a6412ecb135223e1517972786d866d10e67be50d","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.rubocop.yml","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.rubocop.yml?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/a6412ecb135223e1517972786d866d10e67be50d","html":"https://github.com/bundler/bundler/blob/master/.rubocop.yml"}},{"name":".rubocop_todo.yml","path":".rubocop_todo.yml","sha":"6658ae4bb90feb95765393dd27f6532321a232c4","size":10944,"url":"https://api.github.com/repos/bundler/bundler/contents/.rubocop_todo.yml?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.rubocop_todo.yml","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/6658ae4bb90feb95765393dd27f6532321a232c4","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.rubocop_todo.yml","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.rubocop_todo.yml?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/6658ae4bb90feb95765393dd27f6532321a232c4","html":"https://github.com/bundler/bundler/blob/master/.rubocop_todo.yml"}},{"name":".travis.yml","path":".travis.yml","sha":"543df2bcda5f275e6f4a83e5f3b4941d422d6957","size":1767,"url":"https://api.github.com/repos/bundler/bundler/contents/.travis.yml?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/.travis.yml","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/543df2bcda5f275e6f4a83e5f3b4941d422d6957","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/.travis.yml","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/.travis.yml?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/543df2bcda5f275e6f4a83e5f3b4941d422d6957","html":"https://github.com/bundler/bundler/blob/master/.travis.yml"}},{"name":"CHANGELOG.md","path":"CHANGELOG.md","sha":"22dd5f53db796d57c2d392462ff760717d533889","size":142201,"url":"https://api.github.com/repos/bundler/bundler/contents/CHANGELOG.md?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/CHANGELOG.md","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/22dd5f53db796d57c2d392462ff760717d533889","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/CHANGELOG.md","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/CHANGELOG.md?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/22dd5f53db796d57c2d392462ff760717d533889","html":"https://github.com/bundler/bundler/blob/master/CHANGELOG.md"}},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","sha":"fc4d57388d241269f4c79190c809d951af836b87","size":9763,"url":"https://api.github.com/repos/bundler/bundler/contents/CODE_OF_CONDUCT.md?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/CODE_OF_CONDUCT.md","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/fc4d57388d241269f4c79190c809d951af836b87","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/CODE_OF_CONDUCT.md","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/CODE_OF_CONDUCT.md?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/fc4d57388d241269f4c79190c809d951af836b87","html":"https://github.com/bundler/bundler/blob/master/CODE_OF_CONDUCT.md"}},{"name":"LICENSE.md","path":"LICENSE.md","sha":"e356f59f949264bff1600af3476d5e37147957cc","size":1118,"url":"https://api.github.com/repos/bundler/bundler/contents/LICENSE.md?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/LICENSE.md","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/e356f59f949264bff1600af3476d5e37147957cc","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/LICENSE.md","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/LICENSE.md?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/e356f59f949264bff1600af3476d5e37147957cc","html":"https://github.com/bundler/bundler/blob/master/LICENSE.md"}},{"name":"README.md","path":"README.md","sha":"3e00dfd24af1779e39778692cf1845d3669b76b7","size":3748,"url":"https://api.github.com/repos/bundler/bundler/contents/README.md?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/README.md","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/3e00dfd24af1779e39778692cf1845d3669b76b7","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/README.md","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/README.md?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/3e00dfd24af1779e39778692cf1845d3669b76b7","html":"https://github.com/bundler/bundler/blob/master/README.md"}},{"name":"Rakefile","path":"Rakefile","sha":"dcecf91165a218b205a7768fd278dcde12fe015c","size":12361,"url":"https://api.github.com/repos/bundler/bundler/contents/Rakefile?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/Rakefile","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/dcecf91165a218b205a7768fd278dcde12fe015c","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/Rakefile","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/Rakefile?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/dcecf91165a218b205a7768fd278dcde12fe015c","html":"https://github.com/bundler/bundler/blob/master/Rakefile"}},{"name":"bin","path":"bin","sha":"d9c3ef4b1227e2efa93a805d4a04b01dda4ece56","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/bin?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/bin","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/d9c3ef4b1227e2efa93a805d4a04b01dda4ece56","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/bin?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/d9c3ef4b1227e2efa93a805d4a04b01dda4ece56","html":"https://github.com/bundler/bundler/tree/master/bin"}},{"name":"bundler.gemspec","path":"bundler.gemspec","sha":"cb1cb7fff396c83dd298f271e4b2bf86061f414d","size":2280,"url":"https://api.github.com/repos/bundler/bundler/contents/bundler.gemspec?ref=master","html_url":"https://github.com/bundler/bundler/blob/master/bundler.gemspec","git_url":"https://api.github.com/repos/bundler/bundler/git/blobs/cb1cb7fff396c83dd298f271e4b2bf86061f414d","download_url":"https://raw.githubusercontent.com/bundler/bundler/master/bundler.gemspec","type":"file","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/bundler.gemspec?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/blobs/cb1cb7fff396c83dd298f271e4b2bf86061f414d","html":"https://github.com/bundler/bundler/blob/master/bundler.gemspec"}},{"name":"doc","path":"doc","sha":"258c8ec45c800f858de571769cd5385547ac90ab","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/doc?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/doc","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/258c8ec45c800f858de571769cd5385547ac90ab","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/doc?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/258c8ec45c800f858de571769cd5385547ac90ab","html":"https://github.com/bundler/bundler/tree/master/doc"}},{"name":"exe","path":"exe","sha":"72bcdfb18493703d42f90f3c1ea21fcf5778f2f4","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/exe?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/exe","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/72bcdfb18493703d42f90f3c1ea21fcf5778f2f4","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/exe?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/72bcdfb18493703d42f90f3c1ea21fcf5778f2f4","html":"https://github.com/bundler/bundler/tree/master/exe"}},{"name":"lib","path":"lib","sha":"a1eb881a9aa33fb0ad4dcaf262a2ef27e6a36427","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/lib?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/lib","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/a1eb881a9aa33fb0ad4dcaf262a2ef27e6a36427","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/lib?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/a1eb881a9aa33fb0ad4dcaf262a2ef27e6a36427","html":"https://github.com/bundler/bundler/tree/master/lib"}},{"name":"man","path":"man","sha":"330c94af815ca5e95b78d56df51e4ab5d995dc97","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/man?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/man","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/330c94af815ca5e95b78d56df51e4ab5d995dc97","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/man?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/330c94af815ca5e95b78d56df51e4ab5d995dc97","html":"https://github.com/bundler/bundler/tree/master/man"}},{"name":"spec","path":"spec","sha":"4570f6dbc0bd514ed2138d6e9ef2c67ac350303e","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/spec?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/spec","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/4570f6dbc0bd514ed2138d6e9ef2c67ac350303e","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/spec?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/4570f6dbc0bd514ed2138d6e9ef2c67ac350303e","html":"https://github.com/bundler/bundler/tree/master/spec"}},{"name":"task","path":"task","sha":"4170fa8bb297259c01580dc8b1d13e0ae1648c57","size":0,"url":"https://api.github.com/repos/bundler/bundler/contents/task?ref=master","html_url":"https://github.com/bundler/bundler/tree/master/task","git_url":"https://api.github.com/repos/bundler/bundler/git/trees/4170fa8bb297259c01580dc8b1d13e0ae1648c57","download_url":null,"type":"dir","_links":{"self":"https://api.github.com/repos/bundler/bundler/contents/task?ref=master","git":"https://api.github.com/repos/bundler/bundler/git/trees/4170fa8bb297259c01580dc8b1d13e0ae1648c57","html":"https://github.com/bundler/bundler/tree/master/task"}}]'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:48 GMT
    +- request:
    +    method: get
    +    uri: https://api.github.com/repos/bundler/bundler/contents/LICENSE.md
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept:
    +      - application/vnd.github.v3.raw
    +      User-Agent:
    +      - Octokit Ruby Gem 4.8.0
    +      Content-Type:
    +      - application/json
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:49 GMT
    +      Content-Type:
    +      - application/vnd.github.v3.raw; charset=utf-8
    +      Content-Length:
    +      - '1118'
    +      Status:
    +      - 200 OK
    +      X-Ratelimit-Limit:
    +      - '60'
    +      X-Ratelimit-Remaining:
    +      - '58'
    +      X-Ratelimit-Reset:
    +      - '1523549868'
    +      Cache-Control:
    +      - public, max-age=60, s-maxage=60
    +      Vary:
    +      - Accept
    +      Etag:
    +      - '"e356f59f949264bff1600af3476d5e37147957cc"'
    +      Last-Modified:
    +      - Sun, 08 Apr 2018 20:07:53 GMT
    +      X-Github-Media-Type:
    +      - github.v3; param=raw
    +      Access-Control-Expose-Headers:
    +      - ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
    +        X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Referrer-Policy:
    +      - origin-when-cross-origin, strict-origin-when-cross-origin
    +      Content-Security-Policy:
    +      - default-src 'none'
    +      X-Runtime-Rack:
    +      - '0.043568'
    +      X-Github-Request-Id:
    +      - DB01:0B85:B273B0:17442AD:5ACF789C
    +    body:
    +      encoding: UTF-8
    +      string: "Portions copyright (c) 2010 Andre Arko  \nPortions copyright (c) 2009
    +        Engine Yard\n\nMIT License\n\nPermission is hereby granted, free of charge,
    +        to any person obtaining\na copy of this software and associated documentation
    +        files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout
    +        limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense,
    +        and/or sell copies of the Software, and to\npermit persons to whom the Software
    +        is furnished to do so, subject to\nthe following conditions:\n\nThe above
    +        copyright notice and this permission notice shall be\nincluded in all copies
    +        or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS
    +        IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT
    +        LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
    +        AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE
    +        FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT,
    +        TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE
    +        OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:49 GMT
    +- request:
    +    method: get
    +    uri: https://api.github.com/repos/bundler/bundler/contents/README.md
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept:
    +      - application/vnd.github.v3.raw
    +      User-Agent:
    +      - Octokit Ruby Gem 4.8.0
    +      Content-Type:
    +      - application/json
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:49 GMT
    +      Content-Type:
    +      - application/vnd.github.v3.raw; charset=utf-8
    +      Content-Length:
    +      - '3748'
    +      Status:
    +      - 200 OK
    +      X-Ratelimit-Limit:
    +      - '60'
    +      X-Ratelimit-Remaining:
    +      - '57'
    +      X-Ratelimit-Reset:
    +      - '1523549868'
    +      Cache-Control:
    +      - public, max-age=60, s-maxage=60
    +      Vary:
    +      - Accept
    +      Etag:
    +      - '"3e00dfd24af1779e39778692cf1845d3669b76b7"'
    +      Last-Modified:
    +      - Sun, 08 Apr 2018 20:07:53 GMT
    +      X-Github-Media-Type:
    +      - github.v3; param=raw
    +      Access-Control-Expose-Headers:
    +      - ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
    +        X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Referrer-Policy:
    +      - origin-when-cross-origin, strict-origin-when-cross-origin
    +      Content-Security-Policy:
    +      - default-src 'none'
    +      X-Runtime-Rack:
    +      - '0.060902'
    +      X-Github-Request-Id:
    +      - DB02:0B84:854A8A:1327AA0:5ACF789D
    +    body:
    +      encoding: ASCII-8BIT
    +      string: !binary |-
    +        WyFbVmVyc2lvbiAgICAgXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dlbS92L2J1bmRsZXIuc3ZnP3N0eWxlPWZsYXQpXShodHRwczovL3J1YnlnZW1zLm9yZy9nZW1zL2J1bmRsZXIpClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvYnVuZGxlci9idW5kbGVyL21hc3Rlci5zdmc/c3R5bGU9ZmxhdCldKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9idW5kbGVyL2J1bmRsZXIpClshW0NvZGUgQ2xpbWF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY2xpbWF0ZS9tYWludGFpbmFiaWxpdHkvYnVuZGxlci9idW5kbGVyLnN2Zz9zdHlsZT1mbGF0KV0oaHR0cHM6Ly9jb2RlY2xpbWF0ZS5jb20vZ2l0aHViL2J1bmRsZXIvYnVuZGxlcikKWyFbSW5saW5lIGRvY3MgXShodHRwOi8vaW5jaC1jaS5vcmcvZ2l0aHViL2J1bmRsZXIvYnVuZGxlci5zdmc/c3R5bGU9ZmxhdCldKGh0dHA6Ly9pbmNoLWNpLm9yZy9naXRodWIvYnVuZGxlci9idW5kbGVyKQpbIVtTbGFjayAgICAgICBdKGh0dHA6Ly9idW5kbGVyLXNsYWNraW4uaGVyb2t1YXBwLmNvbS9iYWRnZS5zdmcpXShodHRwOi8vYnVuZGxlci1zbGFja2luLmhlcm9rdWFwcC5jb20pCgojIEJ1bmRsZXI6IGEgZ2VtIHRvIGJ1bmRsZSBnZW1zCgpCdW5kbGVyIG1ha2VzIHN1cmUgUnVieSBhcHBsaWNhdGlvbnMgcnVuIHRoZSBzYW1lIGNvZGUgb24gZXZlcnkgbWFjaGluZS4KCkl0IGRvZXMgdGhpcyBieSBtYW5hZ2luZyB0aGUgZ2VtcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBkZXBlbmRzIG9uLiBHaXZlbiBhIGxpc3Qgb2YgZ2VtcywgaXQgY2FuIGF1dG9tYXRpY2FsbHkgZG93bmxvYWQgYW5kIGluc3RhbGwgdGhvc2UgZ2VtcywgYXMgd2VsbCBhcyBhbnkgb3RoZXIgZ2VtcyBuZWVkZWQgYnkgdGhlIGdlbXMgdGhhdCBhcmUgbGlzdGVkLiBCZWZvcmUgaW5zdGFsbGluZyBnZW1zLCBpdCBjaGVja3MgdGhlIHZlcnNpb25zIG9mIGV2ZXJ5IGdlbSB0byBtYWtlIHN1cmUgdGhhdCB0aGV5IGFyZSBjb21wYXRpYmxlLCBhbmQgY2FuIGFsbCBiZSBsb2FkZWQgYXQgdGhlIHNhbWUgdGltZS4gQWZ0ZXIgdGhlIGdlbXMgaGF2ZSBiZWVuIGluc3RhbGxlZCwgQnVuZGxlciBjYW4gaGVscCB5b3UgdXBkYXRlIHNvbWUgb3IgYWxsIG9mIHRoZW0gd2hlbiBuZXcgdmVyc2lvbnMgYmVjb21lIGF2YWlsYWJsZS4gRmluYWxseSwgaXQgcmVjb3JkcyB0aGUgZXhhY3QgdmVyc2lvbnMgdGhhdCBoYXZlIGJlZW4gaW5zdGFsbGVkLCBzbyB0aGF0IG90aGVycyBjYW4gaW5zdGFsbCB0aGUgZXhhY3Qgc2FtZSBnZW1zLgoKIyMjIEluc3RhbGxhdGlvbiBhbmQgdXNhZ2UKClRvIGluc3RhbGwgKG9yIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24pOgoKYGBgCmdlbSBpbnN0YWxsIGJ1bmRsZXIKYGBgCgpUbyBpbnN0YWxsIGEgcHJlcmVsZWFzZSB2ZXJzaW9uIChpZiBvbmUgaXMgYXZhaWxhYmxlKSwgcnVuIGBnZW0gaW5zdGFsbCBidW5kbGVyIC0tcHJlYC4gVG8gdW5pbnN0YWxsIEJ1bmRsZXIsIHJ1biBgZ2VtIHVuaW5zdGFsbCBidW5kbGVyYC4KCkJ1bmRsZXIgaXMgbW9zdCBjb21tb25seSB1c2VkIHRvIG1hbmFnZSB5b3VyIGFwcGxpY2F0aW9uJ3MgZGVwZW5kZW5jaWVzLiBGb3IgZXhhbXBsZSwgdGhlc2UgY29tbWFuZHMgd2lsbCBhbGxvdyB5b3UgdG8gdXNlIEJ1bmRsZXIgdG8gbWFuYWdlIHRoZSBgcnNwZWNgIGdlbSBmb3IgeW91ciBhcHBsaWNhdGlvbjoKCmBgYApidW5kbGUgaW5pdAplY2hvICdnZW0gInJzcGVjIicgPj4gR2VtZmlsZQpidW5kbGUgaW5zdGFsbApidW5kbGUgZXhlYyByc3BlYwpgYGAKClNlZSBbYnVuZGxlci5pb10oaHR0cDovL2J1bmRsZXIuaW8pIGZvciB0aGUgZnVsbCBkb2N1bWVudGF0aW9uLgoKIyMjIFRyb3VibGVzaG9vdGluZwoKRm9yIGhlbHAgd2l0aCBjb21tb24gcHJvYmxlbXMsIHNlZSBbVFJPVUJMRVNIT09USU5HXShkb2MvVFJPVUJMRVNIT09USU5HLm1kKS4KClN0aWxsIHN0dWNrPyBUcnkgW2ZpbGluZyBhbiBpc3N1ZV0oZG9jL2NvbnRyaWJ1dGluZy9JU1NVRVMubWQpLgoKIyMjIE90aGVyIHF1ZXN0aW9ucwoKVG8gc2VlIHdoYXQgaGFzIGNoYW5nZWQgaW4gcmVjZW50IHZlcnNpb25zIG9mIEJ1bmRsZXIsIHNlZSB0aGUgW0NIQU5HRUxPR10oQ0hBTkdFTE9HLm1kKS4KClRvIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBCdW5kbGVyIGNvcmUgdGVhbSBhbmQgb3RoZXIgQnVuZGxlciB1c2VycywgcGxlYXNlIHNlZSBbZ2V0dGluZyBoZWxwXShkb2MvY29udHJpYnV0aW5nL0dFVFRJTkdfSEVMUC5tZCkuCgojIyMgQ29udHJpYnV0aW5nCgpJZiB5b3UnZCBsaWtlIHRvIGNvbnRyaWJ1dGUgdG8gQnVuZGxlciwgdGhhdCdzIGF3ZXNvbWUsIGFuZCB3ZSA8MyB5b3UuIFdlJ3ZlIHB1dCB0b2dldGhlciBbdGhlIEJ1bmRsZXIgY29udHJpYnV0b3IgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9idW5kbGVyL2J1bmRsZXIvYmxvYi9tYXN0ZXIvZG9jL2NvbnRyaWJ1dGluZy9SRUFETUUubWQpIHdpdGggYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiB5b3UgbmVlZCB0byBnZXQgc3RhcnRlZC4KCgpXaGlsZSBzb21lIEJ1bmRsZXIgY29udHJpYnV0b3JzIGFyZSBjb21wZW5zYXRlZCBieSBSdWJ5IFRvZ2V0aGVyLCB0aGUgcHJvamVjdCBtYWludGFpbmVycyBtYWtlIGRlY2lzaW9ucyBpbmRlcGVuZGVudCBvZiBSdWJ5IFRvZ2V0aGVyLiBBcyBhIHByb2plY3QsIHdlIHdlbGNvbWUgY29udHJpYnV0aW9ucyByZWdhcmRsZXNzIG9mIHRoZSBhdXRob3LigJlzIGFmZmlsaWF0aW9uIHdpdGggUnVieSBUb2dldGhlci4KCiMjIyBTdXBwb3J0aW5nCgo8YSBocmVmPSJodHRwczovL3J1Ynl0b2dldGhlci5vcmcvIj48aW1nIHNyYz0iaHR0cHM6Ly9ydWJ5dG9nZXRoZXIub3JnL2ltYWdlcy9ydWJpZXMuc3ZnIiB3aWR0aD0iMTUwIj48L2E+PGJyPgo8YSBocmVmPSJodHRwczovL3J1Ynl0b2dldGhlci5vcmcvIj5SdWJ5IFRvZ2V0aGVyPC9hPiBwYXlzIHNvbWUgQnVuZGxlciBtYWludGFpbmVycyBmb3IgdGhlaXIgb25nb2luZyB3b3JrLiBBcyBhIGdyYXNzcm9vdHMgaW5pdGlhdGl2ZSBjb21taXR0ZWQgdG8gc3VwcG9ydGluZyB0aGUgY3JpdGljYWwgUnVieSBpbmZyYXN0cnVjdHVyZSB5b3UgcmVseSBvbiwgUnVieSBUb2dldGhlciBpcyBmdW5kZWQgZW50aXJlbHkgYnkgdGhlIFJ1YnkgY29tbXVuaXR5LiBDb250cmlidXRlIHRvZGF5IDxhIGhyZWY9Imh0dHBzOi8vcnVieXRvZ2V0aGVyLm9yZy9kZXZlbG9wZXJzIj5hcyBhbiBpbmRpdmlkdWFsPC9hPiBvciAoYmV0dGVyIHlldCkgPGEgaHJlZj0iaHR0cHM6Ly9ydWJ5dG9nZXRoZXIub3JnL2NvbXBhbmllcyI+YXMgYSBjb21wYW55PC9hPiB0byBlbnN1cmUgdGhhdCBCdW5kbGVyLCBSdWJ5R2VtcywgYW5kIG90aGVyIHNoYXJlZCB0b29saW5nIGlzIGFyb3VuZCBmb3IgeWVhcnMgdG8gY29tZS4KCiMjIyBDb2RlIG9mIENvbmR1Y3QKCkV2ZXJ5b25lIGludGVyYWN0aW5nIGluIHRoZSBCdW5kbGVyIHByb2plY3TigJlzIGNvZGViYXNlcywgaXNzdWUgdHJhY2tlcnMsIGNoYXQgcm9vbXMsIGFuZCBtYWlsaW5nIGxpc3RzIGlzIGV4cGVjdGVkIHRvIGZvbGxvdyB0aGUgW0J1bmRsZXIgY29kZSBvZiBjb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vYnVuZGxlci9idW5kbGVyL2Jsb2IvbWFzdGVyL0NPREVfT0ZfQ09ORFVDVC5tZCkuCgojIyMgTGljZW5zZQoKW01JVCBMaWNlbnNlXShodHRwczovL2dpdGh1Yi5jb20vYnVuZGxlci9idW5kbGVyL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpCg==
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:49 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_habitat/plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_habitat/plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml
    new file mode 100644
    index 00000000..c18f51c7
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_habitat/plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml
    @@ -0,0 +1,584 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/latest
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Cache-Control:
    +      - private, no-cache, no-store, private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 17:23:48 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1030-SEA, cache-dfw18633-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 17:23:48 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/2.22/20170513201042
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 17:23:50 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1030-SEA, cache-dfw18639-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 17:23:50 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/linux-headers/4.3/20170513200956
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1302'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 17:23:50 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1026-SEA, cache-dfw18636-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"8f5d28dbe6e77d01f859eba9300df981f758312724f5d25925f1f22c0cc8ff77","config":"","deps":[],"exposes":[],"ident":{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"},"is_a_service":false,"manifest":"#
    +        core / linux-headers\n\n\n* __Maintainer__: The Habitat Maintainers \n*
    +        __Version__: 4.3\n* __Release__: 20170513200956\n* __Architecture__: x86_64\n*
    +        __System__: linux\n* __Target__: x86_64-linux\n* __Upstream URL__: upstream
    +        project''s website or home page is not defined\n* __License__: gplv2 \n* __Source__:
    +        [https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz](https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz)\n*
    +        __SHA__: `4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae`\n*
    +        __Path__: `/hab/pkgs/core/linux-headers/4.3/20170513200956`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc `\n* __Dependencies__:
    +        no runtime dependencies or undefined\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCPPFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS: -L/hab/pkgs/core/gcc/5.2.0/20161208212815/lib\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=linux-headers\npkg_origin=core\npkg_version=4.3\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'')\npkg_source=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${pkg_version}.tar.xz\npkg_shasum=4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae\npkg_dirname=linux-$pkg_version\npkg_deps=()\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc)\npkg_include_dirs=(include)\n\ndo_build()
    +        {\n  make headers_install ARCH=x86 INSTALL_HDR_PATH=\"$pkg_prefix\"\n}\n\ndo_install()
    +        {\n  find \"$pkg_prefix/include\" \\( -name ..install.cmd -o -name .install
    +        \\) -print0 | xargs -0 rm -v\n}\n\n\n# ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 17:23:50 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml
    new file mode 100644
    index 00000000..466c6027
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Habitat/_dependencies/when_a_plan_sh_is_found/returns_an_array_of_Dependencies_found_in_the_directory.yml
    @@ -0,0 +1,786 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/latest
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Cache-Control:
    +      - private, no-cache, no-store, private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:56:02 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1049-SEA, cache-dfw18650-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:56:02 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/musl/latest
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Cache-Control:
    +      - private, no-cache, no-store, private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1632'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:56:02 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1045-SEA, cache-dfw18640-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["bldr-934274506564550656","stable","unstable"],"checksum":"65280111617075be6ba2c645641b1a90bbfcbd08041bbe9b827e69236f140ea1","config":"","deps":[],"exposes":[],"ident":{"name":"musl","origin":"core","release":"20180310000919","version":"1.1.18"},"is_a_service":false,"manifest":"#
    +        core / musl\nmusl is a new standard library to power a new generation of Linux-based
    +        devices. musl is lightweight, fast, simple, free, and strives to be correct
    +        in the sense of standards-conformance and safety.\n\n* __Maintainer__: The
    +        Habitat Maintainers \n* __Version__: 1.1.18\n* __Release__:
    +        20180310000919\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.musl-libc.org/](https://www.musl-libc.org/)\n*
    +        __License__: MIT \n* __Source__: [http://www.musl-libc.org/releases/musl-1.1.18.tar.gz](http://www.musl-libc.org/releases/musl-1.1.18.tar.gz)\n*
    +        __SHA__: `d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118`\n*
    +        __Path__: `/hab/pkgs/core/musl/1.1.18/20180310000919`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/gcc core/make core/patch core/sed `\n*
    +        __Dependencies__: no runtime dependencies or undefined\n* __Interpreters__:
    +        no interpreters or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCPPFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCXXFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nLDFLAGS:
    +        -L/hab/pkgs/core/gcc/5.2.0/20170513202244/lib\nLD_RUN_PATH: /hab/pkgs/core/musl/1.1.18/20180310000919/lib\n```\n\n##
    +        Plan Source\n\n```bash\npkg_name=musl\npkg_origin=core\npkg_version=1.1.18\npkg_license=(''MIT'')\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_description=\"musl is a new
    +        standard library to power a new generation of Linux-based devices. musl is
    +        lightweight, fast, simple, free, and strives to be correct in the sense of
    +        standards-conformance and safety.\"\npkg_upstream_url=\"https://www.musl-libc.org/\"\npkg_source=\"http://www.musl-libc.org/releases/${pkg_name}-${pkg_version}.tar.gz\"\npkg_shasum=\"d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118\"\npkg_deps=()\npkg_build_deps=(\n  core/coreutils\n  core/diffutils\n  core/gcc\n  core/make\n  core/patch\n  core/sed\n)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  stack_size=\"2097152\"\n  build_line \"Setting default stack size to
    +        ''$stack_size'' from default of ''81920''\"\n  sed -i \"s/#define DEFAULT_STACK_SIZE
    +        .*/#define DEFAULT_STACK_SIZE $stack_size/\" \\\n    src/internal/pthread_impl.h\n}\n\ndo_build()
    +        {\n  ./configure \\\n    --prefix=\"$pkg_prefix\" \\\n    --syslibdir=\"$pkg_prefix/lib\"\n  make
    +        -j \"$(nproc)\"\n}\n\ndo_install() {\n  do_default_install\n\n  # Install
    +        license\n  install -Dm0644 COPYRIGHT \"$pkg_prefix/share/licenses/COPYRIGHT\"\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=(core/gcc core/coreutils
    +        core/sed core/diffutils core/make core/patch)\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:56:02 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/2.22/20170513201042
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '6382'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:56:04 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1036-SEA, cache-dfw18637-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"1929b3c8d6ea5cabb81f0e32cf814608f7c6e4232a22cef5d71d0671b48b2c45","config":"","deps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"exposes":[],"ident":{"name":"glibc","origin":"core","release":"20170513201042","version":"2.22"},"is_a_service":false,"manifest":"#
    +        core / glibc\n  The GNU C Library project provides the core libraries for
    +        the GNU system and GNU/Linux systems,\n  as well as many other systems that
    +        use Linux as the kernel. These libraries provide critical\n  APIs including
    +        ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include
    +        such\n  foundational facilities as open, read, write, malloc, printf, getaddrinfo,
    +        dlopen,\n  pthread_create, crypt, login, exit and more.\n\n* __Maintainer__:
    +        The Habitat Maintainers \n* __Version__: 2.22\n* __Release__:
    +        20170513201042\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.gnu.org/software/libc](https://www.gnu.org/software/libc)\n*
    +        __License__: gplv2 lgplv2 \n* __Source__: [http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz](http://ftp.gnu.org/gnu/glibc/glibc-2.22.tar.xz)\n*
    +        __SHA__: `eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948`\n*
    +        __Path__: `/hab/pkgs/core/glibc/2.22/20170513201042`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc core/sed core/perl
    +        `\n* __Dependencies__: `core/linux-headers `\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: no CFLAGS\nCPPFLAGS:
    +        -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/linux-headers/4.3/20170513200956/include
    +        -I/hab/pkgs/core/make/4.2.1/20161214000256/include -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS:
    +        -Wl,--dynamic-linker=/hab/pkgs/core/glibc/2.22/20170513201042/lib/ld-linux-x86-64.so.2\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=glibc\npkg_origin=core\npkg_version=2.22\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'' ''lgplv2'')\npkg_description=\"$(cat
    +        << EOF\n  The GNU C Library project provides the core libraries for the GNU
    +        system and GNU/Linux systems,\n  as well as many other systems that use Linux
    +        as the kernel. These libraries provide critical\n  APIs including ISO C11,
    +        POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such\n  foundational
    +        facilities as open, read, write, malloc, printf, getaddrinfo, dlopen,\n  pthread_create,
    +        crypt, login, exit and more.\nEOF\n)\"\npkg_source=http://ftp.gnu.org/gnu/$pkg_name/${pkg_name}-${pkg_version}.tar.xz\npkg_shasum=eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948\npkg_upstream_url=https://www.gnu.org/software/libc\npkg_deps=(core/linux-headers)\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc core/sed core/perl)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  # The `/bin/pwd` path is hardcoded, so we''ll add a symlink if needed.\n  if
    +        [[ ! -r /bin/pwd ]]; then\n    ln -sv \"$(pkg_path_for coreutils)/bin/pwd\"
    +        /bin/pwd\n    _clean_pwd=true\n  fi\n\n  # Determine the full path to the
    +        linker which will be produced.\n  dynamic_linker=\"$pkg_prefix/lib/ld-linux-x86-64.so.2\"\n\n  #
    +        We don''t want glibc to try and reference itself before it''s installed,\n  #
    +        no `$LD_RUN_PATH`s here\n  unset LD_RUN_PATH\n  build_line \"Overriding LD_RUN_PATH=$LD_RUN_PATH\"\n\n  unset
    +        CFLAGS\n  build_line \"Overriding CFLAGS=$CFLAGS\"\n\n  # Add a dynamic-linker
    +        option to `$LDFLAGS` so that every dynamic ELF binary\n  # will use our own
    +        dynamic linker and not a previously built version.\n  LDFLAGS=\"-Wl,--dynamic-linker=$dynamic_linker\"\n  build_line
    +        \"Setting LDFLAGS=$LDFLAGS\"\n\n  # Don''t depend on dynamically linked libgcc
    +        for nscd, as we don''t want it\n  # depending on any bootstrapped version.\n  echo
    +        \"LDFLAGS-nscd += -static-libgcc\" >> nscd/Makefile\n\n  # Have `rpcgen(1)`
    +        look for `cpp(1)` in `$PATH`.\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/1b55b07/pkgs/development/libraries/glibc/rpcgen-path.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/rpcgen-path.patch\"\n\n  # Don''t use the system''s
    +        `/etc/ld.so.cache` and `/etc/ld.so.preload`, but\n  # rather the version under
    +        `$pkg_prefix/etc`.\n  #\n  # Thanks to https://github.com/NixOS/nixpkgs/blob/54fc2db/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch\n  #
    +        and to https://github.com/NixOS/nixpkgs/blob/dac591a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch\n  #
    +        shellcheck disable=SC2002\n  cat \"$PLAN_CONTEXT/dont-use-system-ld-so.patch\"
    +        \\\n    | sed \"s,@prefix@,$pkg_prefix,g\" \\\n    | patch -p1\n\n  # Fix
    +        for the scanf15 and scanf17 tests for arches that need\n  # misc/bits/syscall.h.
    +        This problem is present once a custom location is used\n  # for the Linux
    +        Kernel headers.\n  #\n  # Source: https://lists.debian.org/debian-glibc/2013/11/msg00116.html\n  patch
    +        -p1 < \"$PLAN_CONTEXT/testsuite-fix.patch\"\n\n  # Fix for CVE-2015-7547 and
    +        more\n  #\n  # Source: http://www.linuxfromscratch.org/patches/downloads/glibc/glibc-2.22-upstream_fixes-1.patch\n  patch
    +        -p1 < \"$PLAN_CONTEXT/glibc-2.22-upstream_fixes-1.patch\"\n\n  # Adjust `scripts/test-installation.pl`
    +        to use our new dynamic linker\n  sed -i \"s|libs -o|libs -L${pkg_prefix}/lib
    +        -Wl,-dynamic-linker=${dynamic_linker} -o|\" \\\n    scripts/test-installation.pl\n}\n\ndo_build()
    +        {\n  rm -rf ../${pkg_name}-build\n  mkdir ../${pkg_name}-build\n  pushd ../${pkg_name}-build
    +        > /dev/null\n    # Configure Glibc to install its libraries into `$pkg_prefix/lib`\n    echo
    +        \"libc_cv_slibdir=$pkg_prefix/lib\" >> config.cache\n    echo \"libc_cv_ssp=no\"
    +        >> config.cache\n\n    \"../$pkg_dirname/configure\" \\\n      --prefix=\"$pkg_prefix\"
    +        \\\n      --sbindir=\"$pkg_prefix/bin\" \\\n      --with-headers=\"$(pkg_path_for
    +        linux-headers)/include\" \\\n      --libdir=\"$pkg_prefix/lib\" \\\n      --libexecdir=\"$pkg_prefix/lib/glibc\"
    +        \\\n      --sysconfdir=\"$pkg_prefix/etc\" \\\n      --enable-obsolete-rpc
    +        \\\n      --disable-profile \\\n      --enable-kernel=2.6.32 \\\n      --cache-file=config.cache\n\n    make\n  popd
    +        > /dev/null\n}\n\n# Running a `make check` is considered one critical test
    +        of the correctness of\n# the resulting glibc build. Unfortunetly, the time
    +        to complete the test suite\n# rougly triples the build time of this Plan and
    +        there are at least 4 known\n# failures which means that `make check` certainly
    +        returns a non-zero exit\n# code. Despite these downsides, it is still worth
    +        the pain when building the\n# first time in a new environment, or when a new
    +        upstream version is attempted.\n#\n# There are known failures in `make check`,
    +        but most likely known ones, given a\n# build on a full virtual machine or
    +        physical server. Here are the known\n# failures and why:\n#\n# ## FAIL: elf/check-abi-libc\n#\n#
    +        \"You might see a check failure due to a different size for\n# `_nl_default_dirname`
    +        if you build for a different prefix using the\n# `--prefix` configure option.
    +        The size of `_nl_default_dirname` depends on the\n# prefix and `/usr/share/locale`
    +        is considered the default and hence the value\n# 0x12. If you see such a difference,
    +        you should check that the size\n# corresponds to your prefix, i.e. `(length
    +        of prefix path + 1)` to ensure that\n# you haven''t really broken abi with
    +        your change.\"\n#\n# Source: https://sourceware.org/glibc/wiki/Testing/Testsuite#Known_testsuite_failures\n#\n#
    +        ## FAIL: elf/tst-protected1a\n#\n# \"The elf/tst-protected1a and elf/tst-protected1b
    +        tests are known to fail with\n# the current stable version of binutils.\"\n#\n#
    +        Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n#\n# ## FAIL: elf/tst-protected1b\n#\n#
    +        Same as above.\n#\n# ## FAIL: posix/tst-getaddrinfo4\n#\n# \"This test will
    +        always fail due to not having the necessary networking\n# applications when
    +        the tests are run.\"\n#\n# Source: http://www.linuxfromscratch.org/lfs/view/stable/chapter06/glibc.html\n#\ndo_check()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # One of the tests uses the
    +        hardcoded `bin/cat` path, so we''ll add it, if\n    # it doesn''t exist.\n    if
    +        [[ ! -r /bin/cat ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/cat\"
    +        /bin/cat\n      _clean_cat=true\n    fi\n    # One of the tests uses the hardcoded
    +        `bin/echo` path, so we''ll add it, if\n    # it doesn''t exist.\n    if [[
    +        ! -r /bin/echo ]]; then\n      ln -sv \"$(pkg_path_for coreutils)/bin/echo\"
    +        /bin/echo\n      _clean_echo=true\n    fi\n\n    # \"If the test system does
    +        not have suitable copies of libgcc_s.so and\n    # libstdc++.so installed
    +        in system library directories, it is necessary to\n    # copy or symlink them
    +        into the build directory before testing (see\n    # https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html
    +        regarding the\n    # use of system library directories here).\"\n    #\n    #
    +        Source: https://sourceware.org/glibc/wiki/Release/2.22\n    # Source: http://www0.cs.ucl.ac.uk/staff/ucacbbl/glibc/index.html#bug-atexit3\n    if
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n      ln -sv /tools/lib/libgcc_s.so.1
    +        .\n      ln -sv /tools/lib/libstdc++.so.6 .\n    else\n      ln -sv \"$(pkg_path_for
    +        gcc)/lib/libgcc_s.so.1\" .\n      ln -sv \"$(pkg_path_for gcc)/lib/libstdc++.so.6\"
    +        .\n    fi\n\n    # It appears as though some tests *always* fail, but since
    +        the output (and\n    # passing tests) is of value, we will run the anyway.
    +        Expect ignore the\n    # exit code. I am sad.\n    make check || true\n\n    rm
    +        -fv ./libgcc_s.so.1 ./libstdc++.so.6\n\n    # Clean up the symlinks if we
    +        set it up.\n    if [[ -n \"$_clean_echo\" ]]; then\n      rm -fv /bin/echo\n    fi\n    if
    +        [[ -n \"$_clean_cat\" ]]; then\n      rm -fv /bin/cat\n    fi\n  popd > /dev/null\n}\n\ndo_install()
    +        {\n  pushd ../${pkg_name}-build > /dev/null\n    # Prevent a `make install`
    +        warning of a missing `ld.so.conf`.\n    mkdir -p \"$pkg_prefix/etc\"\n    touch
    +        \"$pkg_prefix/etc/ld.so.conf\"\n\n    # To ensure the `make install` checks
    +        at the end succeed. Unfortunately,\n    # a multilib installation is assumed
    +        (i.e. 32-bit and 64-bit). We will\n    # fool this check by symlinking a \"32-bit\"
    +        file to the real loader.\n    mkdir -p \"$pkg_prefix/lib\"\n    ln -sv ld-2.22.so
    +        \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    # Add a `lib64` -> `lib` symlink
    +        for `bin/ldd` to work correctly.\n    #\n    # Thanks to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L43-L47\n    ln
    +        -sv lib \"$pkg_prefix/lib64\"\n\n    if [[ \"$STUDIO_TYPE\" = \"stage1\" ]];
    +        then\n      # When building glibc using a build toolchain, we need libgcc_s
    +        at\n      # `$RPATH` which gets us by until we can link against this for real\n      if
    +        [ -f /tools/lib/libgcc_s.so.1 ]; then\n        cp -v /tools/lib/libgcc_s.so.1
    +        \"$pkg_prefix/lib/\"\n        # the .so file used to be a symlink, but now
    +        it is a script\n        cp -av /tools/lib/libgcc_s.so \"$pkg_prefix/lib/\"\n      fi\n    fi\n\n    make
    +        install sysconfdir=\"$pkg_prefix/etc\" sbindir=\"$pkg_prefix/bin\"\n\n    #
    +        Move all remaining binaries in `sbin/` into `bin/`, namely `ldconfig`\n    mv
    +        \"$pkg_prefix/sbin\"/* \"$pkg_prefix/bin/\"\n    rm -rf \"$pkg_prefix/sbin\"\n\n    #
    +        Remove unneeded files from `include/rpcsvc`\n    rm -fv \"$pkg_prefix/include/rpcsvc\"/*.x\n\n    #
    +        Remove the `make install` check symlink\n    rm -fv \"$pkg_prefix/lib/ld-linux.so.2\"\n\n    #
    +        Remove `sln` (statically built ln)--not needed\n    rm -f \"$pkg_prefix/bin/sln\"\n\n    #
    +        Update the shebangs of a few shell scripts that have a fully-qualified\n    #
    +        path to `/bin/sh` so they will work in a minimal busybox\n    for b in ldd
    +        sotruss tzselect xtrace; do\n      sed -e ''s,^#!.*$,#! /bin/sh,'' -i \"$pkg_prefix/bin/$b\"\n    done\n\n    #
    +        Include the Linux kernel headers in Glibc, except the `scsi/` directory,\n    #
    +        which Glibc provides itself.\n    #\n    # We can thank GCC for this requirement;
    +        we must provide a single path\n    # value for the `--with-native-system-header-dir`
    +        configure option and this\n    # path must contain libc and kernel headers
    +        (the assumption is we are\n    # running a common operating system with everything
    +        under `/usr/include`).\n    # GCC then bakes this path in when it builds itself,
    +        thus it''s pretty\n    # important for any future GCC-built packages. If there
    +        is an alternate way\n    # we can make GCC happy, then we''ll change this
    +        up. This is the best of a\n    # sad, sad situation.\n    #\n    # Thanks
    +        to: https://github.com/NixOS/nixpkgs/blob/55b03266cfc25ae019af3cdd2cfcad0facdc68f2/pkgs/development/libraries/glibc/builder.sh#L25-L32\n    pushd
    +        \"$pkg_prefix/include\" > /dev/null\n      # shellcheck disable=SC2010,SC2046\n      ln
    +        -sv $(ls -d $(pkg_path_for linux-headers)/include/* | grep -v ''scsi$'') .\n    popd
    +        > /dev/null\n\n    mkdir -pv \"$pkg_prefix/lib/locale\"\n    localedef -i
    +        cs_CZ -f UTF-8 cs_CZ.UTF-8\n    localedef -i de_DE -f ISO-8859-1 de_DE\n    localedef
    +        -i de_DE@euro -f ISO-8859-15 de_DE@euro\n    localedef -i en_HK -f ISO-8859-1
    +        en_HK\n    localedef -i en_PH -f ISO-8859-1 en_PH\n    localedef -i en_US
    +        -f ISO-8859-1 en_US\n    localedef -i en_US -f UTF-8 en_US\n    localedef
    +        -i es_MX -f ISO-8859-1 es_MX\n    localedef -i fa_IR -f UTF-8 fa_IR\n    localedef
    +        -i fr_FR -f ISO-8859-1 fr_FR\n    localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro\n    localedef
    +        -i it_IT -f ISO-8859-1 it_IT\n    localedef -i ja_JP -f EUC-JP ja_JP\n\n    cp
    +        -v \"../$pkg_dirname/nscd/nscd.conf\" \"$pkg_prefix/etc/\"\n\n    cat > \"$pkg_prefix/etc/nsswitch.conf\"
    +        << \"EOF\"\npasswd: files\ngroup: files\nshadow: files\n\nhosts: files dns\nnetworks:
    +        files\n\nprotocols: files\nservices: files\nethers: files\nrpc: files\nEOF\n\n    extract_src
    +        tzdata\n    pushd ./tzdata > /dev/null\n      ZONEINFO=\"$pkg_prefix/share/zoneinfo\"\n      mkdir
    +        -p \"$ZONEINFO\"/{posix,right}\n      for tz in etcetera southamerica northamerica
    +        europe africa antarctica \\\n          asia australasia backward pacificnew
    +        systemv; do\n        zic -L /dev/null -d \"$ZONEINFO\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L /dev/null -d \"$ZONEINFO/posix\" -y \"sh yearistype.sh\"
    +        ${tz}\n        zic -L leapseconds -d \"$ZONEINFO/right\" -y \"sh yearistype.sh\"
    +        ${tz}\n      done\n      cp -v zone.tab zone1970.tab iso3166.tab \"$ZONEINFO\"\n      zic
    +        -d \"$ZONEINFO\" -p America/New_York\n      unset ZONEINFO\n    popd > /dev/null\n    cp
    +        -v \"$pkg_prefix/share/zoneinfo/UTC\" \"$pkg_prefix/etc/localtime\"\n  popd
    +        > /dev/null\n}\n\ndo_end() {\n  # Clean up the `pwd` link, if we set it up.\n  if
    +        [[ -n \"$_clean_pwd\" ]]; then\n    rm -fv /bin/pwd\n  fi\n}\n\nextract_src()
    +        {\n  build_dirname=$pkg_dirname/../${pkg_name}-build\n  plan=$1\n\n  (source
    +        \"$PLAN_CONTEXT/../$plan/plan.sh\"\n    # Re-override the defaults as this
    +        plan is sourced externally\n    pkg_filename=\"$(basename $pkg_source)\"\n    pkg_dirname=\"${pkg_name}-${pkg_version}\"\n    CACHE_PATH=\"$HAB_CACHE_SRC_PATH/$pkg_dirname\"\n\n    build_line
    +        \"Downloading $pkg_source\"\n    do_download\n    build_line \"Verifying $pkg_filename\"\n    do_verify\n    build_line
    +        \"Clean the cache\"\n    do_clean\n    build_line \"Unpacking $pkg_filename\"\n    do_unpack\n    mv
    +        -v \"$HAB_CACHE_SRC_PATH/$pkg_dirname\" \"$HAB_CACHE_SRC_PATH/$build_dirname/$plan\"\n  )\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"}],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:56:04 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/musl/1.1.18/20180310000919
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1632'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:56:04 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1038-SEA, cache-dfw18630-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["bldr-934274506564550656","stable","unstable"],"checksum":"65280111617075be6ba2c645641b1a90bbfcbd08041bbe9b827e69236f140ea1","config":"","deps":[],"exposes":[],"ident":{"name":"musl","origin":"core","release":"20180310000919","version":"1.1.18"},"is_a_service":false,"manifest":"#
    +        core / musl\nmusl is a new standard library to power a new generation of Linux-based
    +        devices. musl is lightweight, fast, simple, free, and strives to be correct
    +        in the sense of standards-conformance and safety.\n\n* __Maintainer__: The
    +        Habitat Maintainers \n* __Version__: 1.1.18\n* __Release__:
    +        20180310000919\n* __Architecture__: x86_64\n* __System__: linux\n* __Target__:
    +        x86_64-linux\n* __Upstream URL__: [https://www.musl-libc.org/](https://www.musl-libc.org/)\n*
    +        __License__: MIT \n* __Source__: [http://www.musl-libc.org/releases/musl-1.1.18.tar.gz](http://www.musl-libc.org/releases/musl-1.1.18.tar.gz)\n*
    +        __SHA__: `d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118`\n*
    +        __Path__: `/hab/pkgs/core/musl/1.1.18/20180310000919`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/gcc core/make core/patch core/sed `\n*
    +        __Dependencies__: no runtime dependencies or undefined\n* __Interpreters__:
    +        no interpreters or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCPPFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nCXXFLAGS:
    +        -I/hab/pkgs/core/gcc/5.2.0/20170513202244/include -I/hab/pkgs/core/make/4.2.1/20170513214620/include\nLDFLAGS:
    +        -L/hab/pkgs/core/gcc/5.2.0/20170513202244/lib\nLD_RUN_PATH: /hab/pkgs/core/musl/1.1.18/20180310000919/lib\n```\n\n##
    +        Plan Source\n\n```bash\npkg_name=musl\npkg_origin=core\npkg_version=1.1.18\npkg_license=(''MIT'')\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_description=\"musl is a new
    +        standard library to power a new generation of Linux-based devices. musl is
    +        lightweight, fast, simple, free, and strives to be correct in the sense of
    +        standards-conformance and safety.\"\npkg_upstream_url=\"https://www.musl-libc.org/\"\npkg_source=\"http://www.musl-libc.org/releases/${pkg_name}-${pkg_version}.tar.gz\"\npkg_shasum=\"d017ee5d01aec0c522a1330fdff06b1e428cb409e1db819cc4935d5da4a5a118\"\npkg_deps=()\npkg_build_deps=(\n  core/coreutils\n  core/diffutils\n  core/gcc\n  core/make\n  core/patch\n  core/sed\n)\npkg_bin_dirs=(bin)\npkg_include_dirs=(include)\npkg_lib_dirs=(lib)\n\ndo_prepare()
    +        {\n  stack_size=\"2097152\"\n  build_line \"Setting default stack size to
    +        ''$stack_size'' from default of ''81920''\"\n  sed -i \"s/#define DEFAULT_STACK_SIZE
    +        .*/#define DEFAULT_STACK_SIZE $stack_size/\" \\\n    src/internal/pthread_impl.h\n}\n\ndo_build()
    +        {\n  ./configure \\\n    --prefix=\"$pkg_prefix\" \\\n    --syslibdir=\"$pkg_prefix/lib\"\n  make
    +        -j \"$(nproc)\"\n}\n\ndo_install() {\n  do_default_install\n\n  # Install
    +        license\n  install -Dm0644 COPYRIGHT \"$pkg_prefix/share/licenses/COPYRIGHT\"\n}\n\n\n#
    +        ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=(core/gcc core/coreutils
    +        core/sed core/diffutils core/make core/patch)\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:56:04 GMT
    +- request:
    +    method: get
    +    uri: https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/linux-headers/4.3/20170513200956
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Access-Control-Allow-Headers:
    +      - authorization, range
    +      Access-Control-Allow-Methods:
    +      - PUT, DELETE, PATCH
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      Access-Control-Expose-Headers:
    +      - content-disposition
    +      Alternate-Protocol:
    +      - 443:npn-spdy/3
    +      Cache-Control:
    +      - private, no-cache, no-store
    +      Content-Type:
    +      - application/json; charset=utf-8
    +      Server:
    +      - nginx/1.13.10
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Ua-Compatible:
    +      - IE=Edge
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Via:
    +      - 1.1 varnish
    +      - 1.1 varnish
    +      Content-Length:
    +      - '1302'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:56:05 GMT
    +      Age:
    +      - '0'
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-sea1026-SEA, cache-dfw18650-DFW
    +      X-Cache:
    +      - MISS, MISS
    +      X-Cache-Hits:
    +      - 0, 0
    +      Vary:
    +      - Accept-Encoding
    +      Strict-Transport-Security:
    +      - max-age= 7776000; includeSubDomains
    +      X-Frame-Options:
    +      - SAMEORIGIN
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"channels":["stable","unstable"],"checksum":"8f5d28dbe6e77d01f859eba9300df981f758312724f5d25925f1f22c0cc8ff77","config":"","deps":[],"exposes":[],"ident":{"name":"linux-headers","origin":"core","release":"20170513200956","version":"4.3"},"is_a_service":false,"manifest":"#
    +        core / linux-headers\n\n\n* __Maintainer__: The Habitat Maintainers \n*
    +        __Version__: 4.3\n* __Release__: 20170513200956\n* __Architecture__: x86_64\n*
    +        __System__: linux\n* __Target__: x86_64-linux\n* __Upstream URL__: upstream
    +        project''s website or home page is not defined\n* __License__: gplv2 \n* __Source__:
    +        [https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz](https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz)\n*
    +        __SHA__: `4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae`\n*
    +        __Path__: `/hab/pkgs/core/linux-headers/4.3/20170513200956`\n* __Build Dependencies__:
    +        `core/coreutils core/diffutils core/patch core/make core/gcc `\n* __Dependencies__:
    +        no runtime dependencies or undefined\n* __Interpreters__: no interpreters
    +        or undefined\n\n# Plan\n\n## Build Flags\n\n```bash\nCFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCPPFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nCXXFLAGS: -I/hab/pkgs/core/make/4.2.1/20161214000256/include
    +        -I/hab/pkgs/core/gcc/5.2.0/20161208212815/include\nLDFLAGS: -L/hab/pkgs/core/gcc/5.2.0/20161208212815/lib\nLD_RUN_PATH:
    +        no LD_RUN_PATH\n```\n\n## Plan Source\n\n```bash\npkg_name=linux-headers\npkg_origin=core\npkg_version=4.3\npkg_maintainer=\"The
    +        Habitat Maintainers \"\npkg_license=(''gplv2'')\npkg_source=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${pkg_version}.tar.xz\npkg_shasum=4a622cc84b8a3c38d39bc17195b0c064d2b46945dfde0dae18f77b120bc9f3ae\npkg_dirname=linux-$pkg_version\npkg_deps=()\npkg_build_deps=(core/coreutils
    +        core/diffutils core/patch core/make core/gcc)\npkg_include_dirs=(include)\n\ndo_build()
    +        {\n  make headers_install ARCH=x86 INSTALL_HDR_PATH=\"$pkg_prefix\"\n}\n\ndo_install()
    +        {\n  find \"$pkg_prefix/include\" \\( -name ..install.cmd -o -name .install
    +        \\) -print0 | xargs -0 rm -v\n}\n\n\n# ----------------------------------------------------------------------------\n#
    +        **NOTICE:** What follows are implementation details required for building
    +        a\n# first-pass, \"stage1\" toolchain and environment. It is only used when
    +        running\n# in a \"stage1\" Studio and can be safely ignored by almost everyone.
    +        Having\n# said that, it performs a vital bootstrapping process and cannot
    +        be removed or\n# significantly altered. Thank you!\n# ----------------------------------------------------------------------------\nif
    +        [[ \"$STUDIO_TYPE\" = \"stage1\" ]]; then\n  pkg_build_deps=()\nfi\n```","target":"x86_64-linux","tdeps":[],"visibility":"public"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:56:05 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Mix/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Mix/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml
    new file mode 100644
    index 00000000..681c84b3
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Mix/_dependencies/returns_an_array_of_Dependencies_found_in_the_directory.yml
    @@ -0,0 +1,216 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://hex.pm/api/packages/poison
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Connection:
    +      - keep-alive
    +      Server:
    +      - Cowboy
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:33 GMT
    +      Content-Length:
    +      - '545'
    +      Content-Type:
    +      - application/vnd.hex+json; charset=utf-8
    +      Cache-Control:
    +      - public, max-age=60
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '99'
    +      X-Ratelimit-Reset:
    +      - '1523546280'
    +      Etag:
    +      - 37b4cbe2b2f9a19e0e4a65501126b48a
    +      Last-Modified:
    +      - Sun, 15 Jan 2017 01:34:31 GMT
    +      Vary:
    +      - accept, accept-encoding, accept-encoding
    +      Via:
    +      - 1.1 vegur
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"url":"https://hex.pm/api/packages/poison","updated_at":"2017-01-15T01:34:31.327060Z","retirements":{},"repository":"hexpm","releases":[{"version":"3.1.0","url":"https://hex.pm/api/packages/poison/releases/3.1.0"},{"version":"3.0.0","url":"https://hex.pm/api/packages/poison/releases/3.0.0"},{"version":"2.2.0","url":"https://hex.pm/api/packages/poison/releases/2.2.0"},{"version":"2.1.0","url":"https://hex.pm/api/packages/poison/releases/2.1.0"},{"version":"2.0.1","url":"https://hex.pm/api/packages/poison/releases/2.0.1"},{"version":"2.0.0","url":"https://hex.pm/api/packages/poison/releases/2.0.0"},{"version":"1.5.2","url":"https://hex.pm/api/packages/poison/releases/1.5.2"},{"version":"1.5.1","url":"https://hex.pm/api/packages/poison/releases/1.5.1"},{"version":"1.5.0","url":"https://hex.pm/api/packages/poison/releases/1.5.0"},{"version":"1.4.0","url":"https://hex.pm/api/packages/poison/releases/1.4.0"},{"version":"1.3.1","url":"https://hex.pm/api/packages/poison/releases/1.3.1"},{"version":"1.3.0","url":"https://hex.pm/api/packages/poison/releases/1.3.0"},{"version":"1.2.1","url":"https://hex.pm/api/packages/poison/releases/1.2.1"},{"version":"1.2.0","url":"https://hex.pm/api/packages/poison/releases/1.2.0"},{"version":"1.1.1","url":"https://hex.pm/api/packages/poison/releases/1.1.1"},{"version":"1.1.0","url":"https://hex.pm/api/packages/poison/releases/1.1.0"},{"version":"1.0.3","url":"https://hex.pm/api/packages/poison/releases/1.0.3"},{"version":"1.0.2","url":"https://hex.pm/api/packages/poison/releases/1.0.2"},{"version":"1.0.1","url":"https://hex.pm/api/packages/poison/releases/1.0.1"},{"version":"1.0.0","url":"https://hex.pm/api/packages/poison/releases/1.0.0"}],"owners":[{"username":"devinus","url":"https://hex.pm/api/users/devinus","email":"devin@devintorr.es"}],"name":"poison","meta":{"maintainers":["Devin
    +        Torres"],"links":{"GitHub":"https://github.com/devinus/poison"},"licenses":["CC0-1.0"],"description":"An
    +        incredibly fast, pure Elixir JSON library"},"inserted_at":"2014-08-20T04:43:51.000000Z","html_url":"https://hex.pm/packages/poison","downloads":{"week":74432,"recent":901816,"day":14684,"all":5463149},"docs_html_url":"https://hexdocs.pm/poison/"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:33 GMT
    +- request:
    +    method: get
    +    uri: https://hex.pm/api/packages/inch_ex
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Connection:
    +      - keep-alive
    +      Server:
    +      - Cowboy
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:33 GMT
    +      Content-Length:
    +      - '565'
    +      Content-Type:
    +      - application/vnd.hex+json; charset=utf-8
    +      Cache-Control:
    +      - public, max-age=60
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '98'
    +      X-Ratelimit-Reset:
    +      - '1523546280'
    +      Etag:
    +      - 9de669774e9ce51c164f4b70a95bfd01
    +      Last-Modified:
    +      - Thu, 02 Feb 2017 12:30:59 GMT
    +      Vary:
    +      - accept, accept-encoding, accept-encoding
    +      Via:
    +      - 1.1 vegur
    +    body:
    +      encoding: ASCII-8BIT
    +      string: !binary |-
    +        eyJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leCIsInVwZGF0ZWRfYXQiOiIyMDE3LTAyLTAyVDEyOjMwOjU5LjgwMTU1M1oiLCJyZXRpcmVtZW50cyI6e30sInJlcG9zaXRvcnkiOiJoZXhwbSIsInJlbGVhc2VzIjpbeyJ2ZXJzaW9uIjoiMC41LjYiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjUuNiJ9LHsidmVyc2lvbiI6IjAuNS41IiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC41LjUifSx7InZlcnNpb24iOiIwLjUuNCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuNS40In0seyJ2ZXJzaW9uIjoiMC41LjMiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjUuMyJ9LHsidmVyc2lvbiI6IjAuNS4yIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC41LjIifSx7InZlcnNpb24iOiIwLjUuMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuNS4xIn0seyJ2ZXJzaW9uIjoiMC41LjAiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjUuMCJ9LHsidmVyc2lvbiI6IjAuNC4wIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC40LjAifSx7InZlcnNpb24iOiIwLjQuMC1kZXYiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjQuMC1kZXYifSx7InZlcnNpb24iOiIwLjMuMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuMy4zIn0seyJ2ZXJzaW9uIjoiMC4zLjIiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjMuMiJ9LHsidmVyc2lvbiI6IjAuMy4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC4zLjEifSx7InZlcnNpb24iOiIwLjMuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuMy4wIn0seyJ2ZXJzaW9uIjoiMC4yLjUiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjIuNSJ9LHsidmVyc2lvbiI6IjAuMi40IiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC4yLjQifSx7InZlcnNpb24iOiIwLjIuMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuMi4zIn0seyJ2ZXJzaW9uIjoiMC4yLjIiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjIuMiJ9LHsidmVyc2lvbiI6IjAuMi4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC4yLjEifSx7InZlcnNpb24iOiIwLjIuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuMi4wIn0seyJ2ZXJzaW9uIjoiMC4xLjIiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvaW5jaF9leC9yZWxlYXNlcy8wLjEuMiJ9LHsidmVyc2lvbiI6IjAuMS4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2luY2hfZXgvcmVsZWFzZXMvMC4xLjEifSx7InZlcnNpb24iOiIwLjEuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9pbmNoX2V4L3JlbGVhc2VzLzAuMS4wIn1dLCJvd25lcnMiOlt7InVzZXJuYW1lIjoicnJyZW5lIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3VzZXJzL3JycmVuZSIsImVtYWlsIjoicmZAYmFtYXJ1LmRlIn1dLCJuYW1lIjoiaW5jaF9leCIsIm1ldGEiOnsibWFpbnRhaW5lcnMiOlsiUmVuw6kgRsO2aHJpbmciXSwibGlua3MiOnsiR2l0SHViIjoiaHR0cHM6Ly9naXRodWIuY29tL3JycmVuZS9pbmNoX2V4In0sImxpY2Vuc2VzIjpbIk1JVCJdLCJkZXNjcmlwdGlvbiI6IlByb3ZpZGVzIGEgTWl4IHRhc2sgdGhhdCBnaXZlcyB5b3UgaGludHMgd2hlcmUgdG8gaW1wcm92ZSB5b3VyIGlubGluZSBkb2NzIn0sImluc2VydGVkX2F0IjoiMjAxNC0wOS0wNVQxODoxMjoxNS4wMDAwMDBaIiwiaHRtbF91cmwiOiJodHRwczovL2hleC5wbS9wYWNrYWdlcy9pbmNoX2V4IiwiZG93bmxvYWRzIjp7IndlZWsiOjIzMzAsInJlY2VudCI6MzQwNjAsImRheSI6NDQ3LCJhbGwiOjI1NzQ3MH0sImRvY3NfaHRtbF91cmwiOm51bGx9
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:33 GMT
    +- request:
    +    method: get
    +    uri: https://hex.pm/api/packages/ex_doc
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Connection:
    +      - keep-alive
    +      Server:
    +      - Cowboy
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:33 GMT
    +      Content-Length:
    +      - '851'
    +      Content-Type:
    +      - application/vnd.hex+json; charset=utf-8
    +      Cache-Control:
    +      - public, max-age=60
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '97'
    +      X-Ratelimit-Reset:
    +      - '1523546280'
    +      Etag:
    +      - 671c36aaeffebfb3874dcca4d9b5eb0d
    +      Last-Modified:
    +      - Wed, 14 Feb 2018 11:48:54 GMT
    +      Vary:
    +      - accept, accept-encoding, accept-encoding
    +      Via:
    +      - 1.1 vegur
    +    body:
    +      encoding: ASCII-8BIT
    +      string: !binary |-
    +        eyJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDItMTRUMTE6NDg6NTQuNzE4OTQxWiIsInJldGlyZW1lbnRzIjp7IjAuMTguMCI6eyJyZWFzb24iOiJpbnZhbGlkIiwibWVzc2FnZSI6IlRoZSBwYWNrYWdlIGRvZXMgbm90IGNvbXBpbGUifSwiMC4xNy4wIjp7InJlYXNvbiI6ImludmFsaWQiLCJtZXNzYWdlIjoiU2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2FzIGJyb2tlbiJ9fSwicmVwb3NpdG9yeSI6ImhleHBtIiwicmVsZWFzZXMiOlt7InZlcnNpb24iOiIwLjE4LjMiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTguMyJ9LHsidmVyc2lvbiI6IjAuMTguMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xOC4yIn0seyJ2ZXJzaW9uIjoiMC4xOC4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE4LjEifSx7InZlcnNpb24iOiIwLjE4LjAiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTguMCJ9LHsidmVyc2lvbiI6IjAuMTcuMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xNy4xIn0seyJ2ZXJzaW9uIjoiMC4xNy4wIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE3LjAifSx7InZlcnNpb24iOiIwLjE2LjQiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTYuNCJ9LHsidmVyc2lvbiI6IjAuMTYuMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xNi4zIn0seyJ2ZXJzaW9uIjoiMC4xNi4yIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE2LjIifSx7InZlcnNpb24iOiIwLjE2LjEiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTYuMSJ9LHsidmVyc2lvbiI6IjAuMTYuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xNi4wIn0seyJ2ZXJzaW9uIjoiMC4xNS4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE1LjEifSx7InZlcnNpb24iOiIwLjE1LjAiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTUuMCJ9LHsidmVyc2lvbiI6IjAuMTQuNSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xNC41In0seyJ2ZXJzaW9uIjoiMC4xNC40IiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE0LjQifSx7InZlcnNpb24iOiIwLjE0LjMiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTQuMyJ9LHsidmVyc2lvbiI6IjAuMTQuMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xNC4yIn0seyJ2ZXJzaW9uIjoiMC4xNC4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjE0LjEifSx7InZlcnNpb24iOiIwLjE0LjAiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTQuMCJ9LHsidmVyc2lvbiI6IjAuMTMuMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xMy4yIn0seyJ2ZXJzaW9uIjoiMC4xMy4xIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjEzLjEifSx7InZlcnNpb24iOiIwLjEzLjAiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTMuMCJ9LHsidmVyc2lvbiI6IjAuMTIuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xMi4wIn0seyJ2ZXJzaW9uIjoiMC4xMS41IiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjExLjUifSx7InZlcnNpb24iOiIwLjExLjQiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTEuNCJ9LHsidmVyc2lvbiI6IjAuMTEuMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xMS4zIn0seyJ2ZXJzaW9uIjoiMC4xMS4yIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjExLjIifSx7InZlcnNpb24iOiIwLjExLjEiLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvcGFja2FnZXMvZXhfZG9jL3JlbGVhc2VzLzAuMTEuMSJ9LHsidmVyc2lvbiI6IjAuMTEuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC4xMS4wIn0seyJ2ZXJzaW9uIjoiMC4xMC4wIiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3BhY2thZ2VzL2V4X2RvYy9yZWxlYXNlcy8wLjEwLjAifSx7InZlcnNpb24iOiIwLjkuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC45LjAifSx7InZlcnNpb24iOiIwLjguNCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC44LjQifSx7InZlcnNpb24iOiIwLjguMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC44LjMifSx7InZlcnNpb24iOiIwLjguMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC44LjIifSx7InZlcnNpb24iOiIwLjguMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC44LjEifSx7InZlcnNpb24iOiIwLjguMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC44LjAifSx7InZlcnNpb24iOiIwLjcuMyIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC43LjMifSx7InZlcnNpb24iOiIwLjcuMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC43LjIifSx7InZlcnNpb24iOiIwLjcuMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC43LjEifSx7InZlcnNpb24iOiIwLjcuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC43LjAifSx7InZlcnNpb24iOiIwLjYuMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC42LjIifSx7InZlcnNpb24iOiIwLjYuMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC42LjEifSx7InZlcnNpb24iOiIwLjYuMCIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC42LjAifSx7InZlcnNpb24iOiIwLjUuMiIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC41LjIifSx7InZlcnNpb24iOiIwLjUuMSIsInVybCI6Imh0dHBzOi8vaGV4LnBtL2FwaS9wYWNrYWdlcy9leF9kb2MvcmVsZWFzZXMvMC41LjEifV0sIm93bmVycyI6W3sidXNlcm5hbWUiOiJqb3NldmFsaW0iLCJ1cmwiOiJodHRwczovL2hleC5wbS9hcGkvdXNlcnMvam9zZXZhbGltIiwiZW1haWwiOiJqb3NlLnZhbGltQGdtYWlsLmNvbSJ9LHsidXNlcm5hbWUiOiJtaWxtYXp6IiwidXJsIjoiaHR0cHM6Ly9oZXgucG0vYXBpL3VzZXJzL21pbG1henoiLCJlbWFpbCI6Im1lQG1pbG1henoudW5vIn1dLCJuYW1lIjoiZXhfZG9jIiwibWV0YSI6eyJtYWludGFpbmVycyI6WyJKb3PDqSBWYWxpbSIsIkVrc3BlcmltZW50YWwiLCJNaWx0b24gTWF6emFycmkiLCJGcmllZGVsIFppZWdlbG1heWVyIl0sImxpbmtzIjp7IldyaXRpbmcgZG9jdW1lbnRhdGlvbiI6Imh0dHBzOi8vaGV4ZG9jcy5wbS9lbGl4aXIvd3JpdGluZy1kb2N1bWVudGF0aW9uLmh0bWwiLCJHaXRIdWIiOiJodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWxhbmcvZXhfZG9jIn0sImxpY2Vuc2VzIjpbIkFwYWNoZSAyLjAiXSwiZGVzY3JpcHRpb24iOiJFeERvYyBpcyBhIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiB0b29sIGZvciBFbGl4aXIifSwiaW5zZXJ0ZWRfYXQiOiIyMDE0LTA4LTAyVDIwOjE0OjQxLjAwMDAwMFoiLCJodG1sX3VybCI6Imh0dHBzOi8vaGV4LnBtL3BhY2thZ2VzL2V4X2RvYyIsImRvd25sb2FkcyI6eyJ3ZWVrIjoyMzcwMCwicmVjZW50IjozMDQ2NDEsImRheSI6NDc0MiwiYWxsIjoxNTk3NjU4fSwiZG9jc19odG1sX3VybCI6Imh0dHBzOi8vaGV4ZG9jcy5wbS9leF9kb2MvIn0=
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:33 GMT
    +- request:
    +    method: get
    +    uri: https://hex.pm/api/packages/earmark
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Connection:
    +      - keep-alive
    +      Server:
    +      - Cowboy
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:33 GMT
    +      Content-Length:
    +      - '774'
    +      Content-Type:
    +      - application/vnd.hex+json; charset=utf-8
    +      Cache-Control:
    +      - public, max-age=60
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '96'
    +      X-Ratelimit-Reset:
    +      - '1523546280'
    +      Etag:
    +      - 8c0b328a744d9ba10f1a35332afa80fb
    +      Last-Modified:
    +      - Mon, 02 Apr 2018 20:47:08 GMT
    +      Vary:
    +      - accept, accept-encoding, accept-encoding
    +      Via:
    +      - 1.1 vegur
    +    body:
    +      encoding: ASCII-8BIT
    +      string: '{"url":"https://hex.pm/api/packages/earmark","updated_at":"2018-04-02T20:47:08.861649Z","retirements":{},"repository":"hexpm","releases":[{"version":"1.2.5","url":"https://hex.pm/api/packages/earmark/releases/1.2.5"},{"version":"1.2.4","url":"https://hex.pm/api/packages/earmark/releases/1.2.4"},{"version":"1.2.3","url":"https://hex.pm/api/packages/earmark/releases/1.2.3"},{"version":"1.2.2","url":"https://hex.pm/api/packages/earmark/releases/1.2.2"},{"version":"1.2.1","url":"https://hex.pm/api/packages/earmark/releases/1.2.1"},{"version":"1.2.0","url":"https://hex.pm/api/packages/earmark/releases/1.2.0"},{"version":"1.1.1","url":"https://hex.pm/api/packages/earmark/releases/1.1.1"},{"version":"1.1.0","url":"https://hex.pm/api/packages/earmark/releases/1.1.0"},{"version":"1.0.3","url":"https://hex.pm/api/packages/earmark/releases/1.0.3"},{"version":"1.0.2","url":"https://hex.pm/api/packages/earmark/releases/1.0.2"},{"version":"1.0.1","url":"https://hex.pm/api/packages/earmark/releases/1.0.1"},{"version":"1.0.0","url":"https://hex.pm/api/packages/earmark/releases/1.0.0"},{"version":"0.2.1","url":"https://hex.pm/api/packages/earmark/releases/0.2.1"},{"version":"0.2.0","url":"https://hex.pm/api/packages/earmark/releases/0.2.0"},{"version":"0.1.19","url":"https://hex.pm/api/packages/earmark/releases/0.1.19"},{"version":"0.1.18","url":"https://hex.pm/api/packages/earmark/releases/0.1.18"},{"version":"0.1.17","url":"https://hex.pm/api/packages/earmark/releases/0.1.17"},{"version":"0.1.16","url":"https://hex.pm/api/packages/earmark/releases/0.1.16"},{"version":"0.1.15","url":"https://hex.pm/api/packages/earmark/releases/0.1.15"},{"version":"0.1.14","url":"https://hex.pm/api/packages/earmark/releases/0.1.14"},{"version":"0.1.13","url":"https://hex.pm/api/packages/earmark/releases/0.1.13"},{"version":"0.1.12","url":"https://hex.pm/api/packages/earmark/releases/0.1.12"},{"version":"0.1.10","url":"https://hex.pm/api/packages/earmark/releases/0.1.10"},{"version":"0.1.9","url":"https://hex.pm/api/packages/earmark/releases/0.1.9"},{"version":"0.1.8","url":"https://hex.pm/api/packages/earmark/releases/0.1.8"},{"version":"0.1.7","url":"https://hex.pm/api/packages/earmark/releases/0.1.7"},{"version":"0.1.6","url":"https://hex.pm/api/packages/earmark/releases/0.1.6"},{"version":"0.1.5","url":"https://hex.pm/api/packages/earmark/releases/0.1.5"},{"version":"0.1.4","url":"https://hex.pm/api/packages/earmark/releases/0.1.4"},{"version":"0.1.3","url":"https://hex.pm/api/packages/earmark/releases/0.1.3"},{"version":"0.1.2","url":"https://hex.pm/api/packages/earmark/releases/0.1.2"},{"version":"0.1.1","url":"https://hex.pm/api/packages/earmark/releases/0.1.1"},{"version":"0.1.0","url":"https://hex.pm/api/packages/earmark/releases/0.1.0"}],"owners":[{"username":"pragdave","url":"https://hex.pm/api/users/pragdave","email":"dave@pragdave.me"}],"name":"earmark","meta":{"maintainers":["Robert
    +        Dober ","Dave Thomas "],"links":{"GitHub":"https://github.com/pragdave/earmark"},"licenses":["Apache
    +        2 (see the file LICENSE for details)"],"description":"Earmark is a pure-Elixir
    +        Markdown converter.\n\nIt is intended to be used as a library (just call Earmark.as_html),\nbut
    +        can also be used as a command-line tool (run mix escript.build\nfirst).\n\nOutput
    +        generation is pluggable."},"inserted_at":"2014-07-09T16:15:39.000000Z","html_url":"https://hex.pm/packages/earmark","downloads":{"week":26795,"recent":336833,"day":5363,"all":1782506},"docs_html_url":"https://hexdocs.pm/earmark/"}'
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:34 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/dedups_dependencies_only_if_they_are_the_same_version.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/dedups_dependencies_only_if_they_are_the_same_version.yml
    new file mode 100644
    index 00000000..b780a877
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/dedups_dependencies_only_if_they_are_the_same_version.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:38 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18647-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546259.746572,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 70ccf2d9344eb1e8b64e47ffa89e2aaf514915ee
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:38 GMT
    +      Source-Age:
    +      - '3'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:38 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:39 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:36 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.074084'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.082005'
    +      Age:
    +      - '4'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAEA:4382:605518:B8FC8C:5ACF7893
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:40 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:40 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18646-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546260.229444,VS0,VE60
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - f0049ff2cd03f656d82c7565778f6635ecdb43ea
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:40 GMT
    +      Source-Age:
    +      - '4'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:40 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_all_transitive_dependencies.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_all_transitive_dependencies.yml
    new file mode 100644
    index 00000000..450be5be
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_all_transitive_dependencies.yml
    @@ -0,0 +1,557 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:44 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18626-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '2'
    +      X-Timer:
    +      - S1523546264.169708,VS0,VE0
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - c10bb729648bace46461f6f6fcf1b622520949d9
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:44 GMT
    +      Source-Age:
    +      - '9'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:44 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:44 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:37 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.044812'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.050032'
    +      Age:
    +      - '7'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAF6:4385:CFA613:174E8D5:5ACF7898
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:44 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:44 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18637-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546265.935342,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 56e0fe664c8ee7224d2c8acd57c52a5be1f4502a
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:44 GMT
    +      Source-Age:
    +      - '8'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:44 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:45 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18635-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546266.746240,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - ec37ddbba023bc69a82ee5790adff5e2f8fca451
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:45 GMT
    +      Source-Age:
    +      - '10'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:45 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:45 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:36 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.074084'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.082005'
    +      Age:
    +      - '10'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAFA:4382:6058B3:B90498:5ACF7899
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:46 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:46 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18643-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546266.216132,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 60a9c335d09588fe7f4e10f7c81a50071f5e1e5c
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:46 GMT
    +      Source-Age:
    +      - '10'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:46 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_and_license_metadata.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_and_license_metadata.yml
    new file mode 100644
    index 00000000..292d2b3a
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_and_license_metadata.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:47 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18633-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546267.024172,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 10877d3bf54d0226466148fe3cccbce6433745d8
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:47 GMT
    +      Source-Age:
    +      - '11'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:47 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:47 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:37 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.044812'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.050032'
    +      Age:
    +      - '10'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAFE:4382:60594E:B905C5:5ACF789B
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:47 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:47 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18647-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546268.661445,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 3bc4a2e6675ceeeb51172eec4068f249cdb89130
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:47 GMT
    +      Source-Age:
    +      - '11'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:47 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_but_no_metadata.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_but_no_metadata.yml
    new file mode 100644
    index 00000000..9ba6b1a1
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_files_but_no_metadata.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:42 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18626-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546263.601154,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 0d3e85a915ce385dcb101bb1eb7869eb8435399e
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:42 GMT
    +      Source-Age:
    +      - '7'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:42 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:42 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:43 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.070108'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.077969'
    +      Age:
    +      - '0'
    +      Transfer-Encoding:
    +      - chunked
    +      X-Github-Request-Id:
    +      - DAF2:4385:CFA514:174E6E3:5ACF7896
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:43 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:43 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18630-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '2'
    +      X-Timer:
    +      - S1523546263.308386,VS0,VE0
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 3471a899d0589b4d421b88b7de5d11fb00082768
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:43 GMT
    +      Source-Age:
    +      - '6'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:43 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_metadata_but_no_license_files.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_metadata_but_no_license_files.yml
    new file mode 100644
    index 00000000..7a18fcf2
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_license_metadata_but_no_license_files.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:41 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18640-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546261.122211,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 80f1b526524d680d89043f674ecee5bc9ad429e9
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:41 GMT
    +      Source-Age:
    +      - '5'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:41 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:41 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:36 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.074084'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.082005'
    +      Age:
    +      - '5'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAEE:4383:8347AB:F8A910:5ACF7895
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:41 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:41 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18638-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546262.780622,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 4d428c54615a8685d420ccd7fe4d4d3fb76336bc
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:41 GMT
    +      Source-Age:
    +      - '5'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:41 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_no_license_info.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_no_license_info.yml
    new file mode 100644
    index 00000000..b093263d
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/detects_dependencies_with_no_license_info.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:37 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18628-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546257.432656,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 2c816fc54132eb1e376a5dcc917e4da0ef3bcbda
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:37 GMT
    +      Source-Age:
    +      - '2'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:37 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:37 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:37 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.044812'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.050032'
    +      Age:
    +      - '0'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAE6:4384:B05810:143686B:5ACF7891
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:37 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:37 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18630-DFW
    +      X-Cache:
    +      - HIT
    +      X-Cache-Hits:
    +      - '1'
    +      X-Timer:
    +      - S1523546258.941170,VS0,VE1
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - e341ed778626d0a4b585687ace9cff821cbdbd1b
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:37 GMT
    +      Source-Age:
    +      - '1'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:37 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/handles_licenses_with_multiple_combined_license_terms.yml b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/handles_licenses_with_multiple_combined_license_terms.yml
    new file mode 100644
    index 00000000..0bd63756
    --- /dev/null
    +++ b/spec/fixtures/vcr_cassettes/LicenseScout_DependencyManager_Npm/_dependencies/handles_licenses_with_multiple_combined_license_terms.yml
    @@ -0,0 +1,280 @@
    +---
    +http_interactions:
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/3rd-Eden/useragent/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"a4d6a95fd3b64ebbcbbfad981808c188e58d73a9"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - D5D8:2D30:551C1:5A111:5ACF788E
    +      Content-Length:
    +      - '680'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:35 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18636-DFW
    +      X-Cache:
    +      - MISS
    +      X-Cache-Hits:
    +      - '0'
    +      X-Timer:
    +      - S1523546256.835057,VS0,VE86
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - cc0787b0c7f903b5634e57bb679367587321693a
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:35 GMT
    +      Source-Age:
    +      - '0'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        # MIT LICENSED Copyright (c) 2013 Arnout Kazemier (http://3rd-Eden.com)
    +        #
    +        # 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.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:35 GMT
    +- request:
    +    method: get
    +    uri: http://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 301
    +      message: Moved Permanently
    +    headers:
    +      Content-Length:
    +      - '0'
    +      Location:
    +      - https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: UTF-8
    +      string: ''
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:36 GMT
    +- request:
    +    method: get
    +    uri: https://github.com/isaacs/node-lru-cache/raw/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 302
    +      message: Found
    +    headers:
    +      Server:
    +      - GitHub.com
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:36 GMT
    +      Content-Type:
    +      - text/html; charset=utf-8
    +      Status:
    +      - 302 Found
    +      Cache-Control:
    +      - no-cache
    +      Vary:
    +      - X-PJAX
    +      X-Ratelimit-Limit:
    +      - '100'
    +      X-Ratelimit-Remaining:
    +      - '100'
    +      Access-Control-Allow-Origin:
    +      - https://render.githubusercontent.com
    +      Location:
    +      - https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +      X-Runtime:
    +      - '0.074084'
    +      Strict-Transport-Security:
    +      - max-age=31536000; includeSubdomains; preload
    +      X-Frame-Options:
    +      - deny
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Expect-Ct:
    +      - max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
    +      Content-Security-Policy:
    +      - 'default-src ''none''; base-uri ''self''; block-all-mixed-content; child-src
    +        render.githubusercontent.com; connect-src ''self'' uploads.github.com status.github.com
    +        collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com
    +        github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com
    +        github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com;
    +        font-src assets-cdn.github.com; form-action ''self'' github.com gist.github.com;
    +        frame-ancestors ''none''; img-src ''self'' data: assets-cdn.github.com identicons.github.com
    +        collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com;
    +        manifest-src ''self''; media-src ''none''; script-src assets-cdn.github.com;
    +        style-src ''unsafe-inline'' assets-cdn.github.com; worker-src ''self'''
    +      X-Runtime-Rack:
    +      - '0.082005'
    +      Age:
    +      - '0'
    +      Content-Length:
    +      - '136'
    +      X-Github-Request-Id:
    +      - DAE1:4385:CF9FBF:174DBA6:5ACF7890
    +    body:
    +      encoding: UTF-8
    +      string: You are being redirected.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:36 GMT
    +- request:
    +    method: get
    +    uri: https://raw.githubusercontent.com/isaacs/node-lru-cache/master/LICENSE
    +    body:
    +      encoding: US-ASCII
    +      string: ''
    +    headers:
    +      Accept-Encoding:
    +      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
    +      Accept:
    +      - "*/*"
    +      User-Agent:
    +      - Ruby
    +  response:
    +    status:
    +      code: 200
    +      message: OK
    +    headers:
    +      Content-Security-Policy:
    +      - default-src 'none'; style-src 'unsafe-inline'; sandbox
    +      Strict-Transport-Security:
    +      - max-age=31536000
    +      X-Content-Type-Options:
    +      - nosniff
    +      X-Frame-Options:
    +      - deny
    +      X-Xss-Protection:
    +      - 1; mode=block
    +      Etag:
    +      - '"19129e315fe593965a2fdd50ec0d1253bcbd2ece"'
    +      Content-Type:
    +      - text/plain; charset=utf-8
    +      Cache-Control:
    +      - max-age=300
    +      X-Geo-Block-List:
    +      - ''
    +      X-Github-Request-Id:
    +      - BB04:0496:28209:2A70A:5ACF788F
    +      Content-Length:
    +      - '490'
    +      Accept-Ranges:
    +      - bytes
    +      Date:
    +      - Thu, 12 Apr 2018 15:17:36 GMT
    +      Via:
    +      - 1.1 varnish
    +      Connection:
    +      - keep-alive
    +      X-Served-By:
    +      - cache-dfw18624-DFW
    +      X-Cache:
    +      - MISS
    +      X-Cache-Hits:
    +      - '0'
    +      X-Timer:
    +      - S1523546257.508770,VS0,VE67
    +      Vary:
    +      - Authorization,Accept-Encoding
    +      Access-Control-Allow-Origin:
    +      - "*"
    +      X-Fastly-Request-Id:
    +      - 07a0cfbe0c08dea934b43f5fe05e6f007a717946
    +      Expires:
    +      - Thu, 12 Apr 2018 15:22:36 GMT
    +      Source-Age:
    +      - '0'
    +    body:
    +      encoding: ASCII-8BIT
    +      string: |
    +        The ISC License
    +
    +        Copyright (c) Isaac Z. Schlueter and Contributors
    +
    +        Permission to use, copy, modify, and/or distribute this software for any
    +        purpose with or without fee is hereby granted, provided that the above
    +        copyright notice and this permission notice appear in all copies.
    +
    +        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +        WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +        MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +        ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +        WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +        ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    +        IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +    http_version: 
    +  recorded_at: Thu, 12 Apr 2018 15:17:36 GMT
    +recorded_with: VCR 4.0.0
    diff --git a/spec/license_scout/collector_spec.rb b/spec/license_scout/collector_spec.rb
    index 47ba41fe..212dc0c4 100644
    --- a/spec/license_scout/collector_spec.rb
    +++ b/spec/license_scout/collector_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,332 +15,40 @@
     # limitations under the License.
     #
     
    -require "license_scout/collector"
    -require "license_scout/options"
    -require "license_scout/dependency_manager/base"
    +RSpec.describe LicenseScout::Collector do
    +  let(:subject) { described_class.new }
     
    -module LicenseScout
    -  module DependencyManager
    -
    -    class TestDepManager < Base
    -
    -      def name
    -        "test_dep_manager"
    -      end
    -
    -      def detected?
    -        true
    -      end
    -
    -      def dependencies
    -        license = File.join(SPEC_FIXTURES_DIR, "test_licenses/LICENSE")
    -        copying = File.join(SPEC_FIXTURES_DIR, "test_licenses/COPYING")
    -        [
    -          create_dependency("example1", "1.0.0", "MIT", [license, copying]),
    -          create_dependency("example2", "1.2.3", "Apache-2", [copying]),
    -        ]
    -      end
    -    end
    -
    -    class MissingLicenseDepManager < Base
    -
    -      def name
    -        "missing_license_dep_manager"
    -      end
    -
    -      def detected?
    -        true
    +  describe "#collect" do
    +    context "when there are no dependency managers detected" do
    +      before do
    +        LicenseScout::Config.directories = [ File.join(SPEC_FIXTURES_DIR, "empty_project") ]
           end
     
    -      def dependencies
    -        license = File.join(SPEC_FIXTURES_DIR, "test_licenses/LICENSE")
    -        copying = File.join(SPEC_FIXTURES_DIR, "test_licenses/COPYING")
    -        [
    -          { name: "example1", version: "1.0.0", license: "MIT", files: [license, copying] },
    -          { name: "example2", version: "1.2.3", license: nil, files: [] },
    -        ].map do |dependency|
    -          license = options.overrides.license_for(name, dependency[:name], dependency[:version]) || dependency[:license]
    -          license_files = []
    -
    -          override_files = options.overrides.license_files_for(name, dependency[:name], dependency[:version])
    -          if !override_files.empty?
    -            #license_files = override_files.map { |f| File.join(SPEC_FIXTURES_DIR, "test_licenses/#{f}") }
    -            license_files = override_files.resolve_locations(File.join(SPEC_FIXTURES_DIR, "test_licenses"))
    -          else
    -            license_files = dependency[:files]
    -          end
    -
    -          create_dependency(dependency[:name], dependency[:version], license, license_files)
    -        end
    +      it "raises an error" do
    +        expect { subject.collect }.to raise_error(LicenseScout::Exceptions::Error, /Failed to find any files associated with known dependency managers/)
           end
         end
     
    -    class UnsupportedProjectTypeDepManager < Base
    -
    -      def name
    -        "unsupported_dep_manager"
    -      end
    -
    -      def detected?
    -        false
    -      end
    -
    -      def dependencies
    -        []
    +    context "when one of the dependencies is missing a source directory" do
    +      before do
    +        LicenseScout::Config.directories = [ File.join(SPEC_FIXTURES_DIR, "godep") ]
           end
    -    end
    -
    -  end
    -end
    -
    -require "tmpdir"
    -require "fileutils"
    -
    -RSpec.describe(LicenseScout::Collector) do
    -
    -  let(:tmpdir) { Dir.mktmpdir }
    -
    -  let(:project_dir) { File.join(tmpdir, "project_dir") }
    -  let(:output_dir) { File.join(tmpdir, "output_dir") }
    -  let(:project_name) { "example-project" }
    -  let(:overrides) { LicenseScout::Overrides.new }
    -
    -  subject(:collector) do
    -    described_class.new(project_name, project_dir, output_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    -
    -  after do
    -    FileUtils.rm_rf(tmpdir)
    -  end
    -
    -  it "has a project name" do
    -    expect(collector.project_name).to eq(project_name)
    -  end
    -
    -  it "has a project directory where it looks for dependencies" do
    -    expect(collector.project_dir).to eq(project_dir)
    -  end
    -
    -  it "has an output directory where it copies licenses" do
    -    expect(collector.output_dir).to eq(output_dir)
    -  end
    -
    -  context "when the project directory doesn't exist" do
    -
    -    let(:project_dir) { File.join(tmpdir, "nope") }
     
    -    it "fails" do
    -      expect { collector.run }.to raise_error(LicenseScout::Exceptions::ProjectDirectoryMissing)
    -    end
    -  end
    -
    -  describe "when run on a supported project type" do
    -
    -    before do
    -      allow(LicenseScout::DependencyManager).to receive(:implementations).
    -        and_return([LicenseScout::DependencyManager::TestDepManager])
    -      Dir.mkdir(project_dir)
    -    end
    -
    -    let(:expected_license_file_names) do
    -      %w{
    -        test_dep_manager-example1-1.0.0-LICENSE
    -        test_dep_manager-example1-1.0.0-COPYING
    -        test_dep_manager-example2-1.2.3-COPYING
    -      }
    -    end
    -
    -    let(:expected_license_file_paths) do
    -      expected_license_file_names.map { |f| File.join(output_dir, f) }
    -    end
    -
    -    let(:expected_machine_readable_licenses_file) do
    -      File.join(output_dir, "example-project-dependency-licenses.json")
    -    end
    -
    -    let(:expected_machine_readable_licenses_content) do
    -      {
    -        "license_manifest_version" => 1,
    -        "project_name" => "example-project",
    -        "dependency_managers" => {
    -          "test_dep_manager" => [
    -            {
    -              "name" => "example1",
    -              "version" => "1.0.0",
    -              "license" => "MIT",
    -              "license_files" => [
    -                "test_dep_manager-example1-1.0.0-LICENSE",
    -                "test_dep_manager-example1-1.0.0-COPYING",
    -               ],
    -            },
    -            {
    -              "name" => "example2",
    -              "version" => "1.2.3",
    -              "license" => "Apache-2",
    -              "license_files" => [
    -                "test_dep_manager-example2-1.2.3-COPYING",
    -               ],
    -            },
    -
    -          ],
    -        },
    -      }
    -    end
    -
    -    it "detects the dependency manager(s) the project uses" do
    -      expect(collector.dependency_managers.size).to eq(1)
    -      expect(collector.dependency_managers.first).to be_a(LicenseScout::DependencyManager::TestDepManager)
    -    end
    -
    -    it "collects license files from dependencies and copies them to an output dir" do
    -      collector.run
    -      expected_license_file_paths.each do |path|
    -        expect(File).to exist(path)
    +      it "raises an error" do
    +        expect { subject.collect }.to raise_error(LicenseScout::Exceptions::Error, /Please try running `godep restore`/)
           end
         end
     
    -    it "emits a JSON file with a list of dependencies and relative paths to the license files" do
    -      collector.run
    -      expect(File).to exist(expected_machine_readable_licenses_file)
    -      content = FFI_Yajl::Parser.parse(File.read(expected_machine_readable_licenses_file))
    -      expect(content).to eq(expected_machine_readable_licenses_content)
    -    end
    -
    -    it "does not report any missing license information" do
    -      collector.run
    -      expect(collector.issue_report).to be_empty
    -    end
    -
    -    context "when a dependency's license cannot be detected" do
    -
    +    context "when one or more valid directories are specified", :vcr do
           before do
    -        allow(LicenseScout::DependencyManager).to receive(:implementations).
    -          and_return([LicenseScout::DependencyManager::MissingLicenseDepManager])
    -      end
    -
    -      context "and the dependency's license is not manually specified" do
    -
    -        let(:expected_machine_readable_licenses_content) do
    -          {
    -            "license_manifest_version" => 1,
    -            "project_name" => "example-project",
    -            "dependency_managers" => {
    -              "missing_license_dep_manager" => [
    -                {
    -                  "name" => "example1",
    -                  "version" => "1.0.0",
    -                  "license" => "MIT",
    -                  "license_files" => [
    -                    "missing_license_dep_manager-example1-1.0.0-LICENSE",
    -                    "missing_license_dep_manager-example1-1.0.0-COPYING",
    -                   ],
    -                },
    -                {
    -                  "name" => "example2",
    -                  "version" => "1.2.3",
    -                  "license" => nil,
    -                  "license_files" => [
    -                   ],
    -                },
    -
    -              ],
    -            },
    -          }
    -        end
    -
    -        # This ensures that re-running a build with invalid dependencies still
    -        # fails even if the softwares are restored from git cache.
    -        it "embeds information about invalid dependencies in the license manifest" do
    -          collector.run
    -          expect(File).to exist(expected_machine_readable_licenses_file)
    -          content = FFI_Yajl::Parser.parse(File.read(expected_machine_readable_licenses_file))
    -          expect(content).to eq(expected_machine_readable_licenses_content)
    -        end
    -
    -        it "reports missing licenses and license files" do
    -          collector.run
    -          report = collector.issue_report
    -          expect(report).to include("Dependency 'example2' version '1.2.3' under 'missing_license_dep_manager' is missing license information.")
    -          expect(report).to include("Dependency 'example2' version '1.2.3' under 'missing_license_dep_manager' is missing license files information.")
    -        end
    +        LicenseScout::Config.directories = [ File.join(SPEC_FIXTURES_DIR, "habitat"), File.join(SPEC_FIXTURES_DIR, "empty_project") ]
           end
     
    -      context "and the dependency's license is manually specified" do
    -        let(:overrides) do
    -          LicenseScout::Overrides.new() do
    -            override_license "missing_license_dep_manager", "example1" do |version|
    -              {
    -                license: "BSD",
    -                license_files: [ "BSD-LICENSE" ],
    -              }
    -            end
    -          end
    -        end
    -
    -        let(:expected_license_file_names) do
    -          %w{
    -            missing_license_dep_manager-example1-1.0.0-BSD-LICENSE
    -          }
    -        end
    -
    -        let(:expected_machine_readable_licenses_content) do
    -          {
    -            "license_manifest_version" => 1,
    -            "project_name" => "example-project",
    -            "dependency_managers" => {
    -              "missing_license_dep_manager" => [
    -                {
    -                  "name" => "example1",
    -                  "version" => "1.0.0",
    -                  "license" => "BSD",
    -                  "license_files" => [
    -                    "missing_license_dep_manager-example1-1.0.0-BSD-LICENSE",
    -                   ],
    -                },
    -                {
    -                  "name" => "example2",
    -                  "version" => "1.2.3",
    -                  "license" => nil,
    -                  "license_files" => [
    -                   ],
    -                },
    -
    -              ],
    -            },
    -          }
    -        end
    -
    -        it "copies the license info specified in the override" do
    -          collector.run
    -          expected_license_file_paths.each do |path|
    -            expect(File).to exist(path)
    -          end
    -        end
    -
    -        it "includes the info specified in the override file, in the license manifest file" do
    -          collector.run
    -          expect(File).to exist(expected_machine_readable_licenses_file)
    -          content = FFI_Yajl::Parser.parse(File.read(expected_machine_readable_licenses_file))
    -          expect(content).to eq(expected_machine_readable_licenses_content)
    -        end
    +      it "collects all of the dependencies for all the supported implementations" do
    +        subject.collect
    +        expect(subject.dependencies.length).to eql(3)
    +        expect(subject.dependencies.map(&:name)).to eql(["core/glibc", "core/linux-headers", "core/musl"])
           end
    -
    -    end
    -  end
    -
    -  describe "when run on an unsupported project type" do
    -
    -    before do
    -      allow(LicenseScout::DependencyManager).to receive(:implementations).
    -        and_return([LicenseScout::DependencyManager::UnsupportedProjectTypeDepManager])
    -      Dir.mkdir(project_dir)
    -    end
    -
    -    it "fails when it cannot find a supported dependency manager" do
    -      expect { collector.run }.to raise_error(LicenseScout::Exceptions::UnsupportedProjectType)
         end
       end
    -
     end
    diff --git a/spec/license_scout/config_spec.rb b/spec/license_scout/config_spec.rb
    new file mode 100644
    index 00000000..6a4b26c6
    --- /dev/null
    +++ b/spec/license_scout/config_spec.rb
    @@ -0,0 +1,102 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::Config do
    +
    +  describe "merging config" do
    +    let(:initial_config) do
    +      {
    +        :blacklist => [
    +          "Apache-2.0"
    +        ],
    +        :fallbacks => {
    +          :habitat => {
    +            :name => "core/foo",
    +            :license_id => "Apache-2.0",
    +            :license_content => "http://example.com"
    +          }
    +        }
    +      }
    +    end
    +
    +    let(:supplemental_config) do
    +      {
    +        :blacklist => [
    +          "MIT"
    +        ],
    +        :fallbacks => {
    +          :habitat => [
    +            {
    +              :name => "core/foo",
    +              :license_id => "Apache-2.0",
    +              :license_content => "http://example.com/apache.license",
    +            },
    +          ],
    +          :ruby => [
    +            {
    +              :name => "foo",
    +              :license_id => "MIT",
    +              :license_content => "http://example.com/mit.license",
    +            },
    +          ],
    +        },
    +      }
    +    end
    +
    +    it "defers to the most recently merged configuration" do
    +      LicenseScout::Config.merge!(initial_config)
    +      LicenseScout::Config.merge!(supplemental_config)
    +
    +      expect(LicenseScout::Config.blacklist).to eql(["MIT"])
    +      expect(LicenseScout::Config.fallbacks.habitat).to eql([{
    +        :name => "core/foo",
    +        :license_id => "Apache-2.0",
    +        :license_content => "http://example.com/apache.license",
    +      }])
    +      expect(LicenseScout::Config.fallbacks.ruby).to eql([{
    +        :name => "foo",
    +        :license_id => "MIT",
    +        :license_content => "http://example.com/mit.license",
    +      }])
    +    end
    +  end
    +
    +  describe ".validate!" do
    +    context "when both an allowed and flagged list are specified" do
    +      before do
    +        LicenseScout::Config.allowed_licenses = ["Apache-2.0"]
    +        LicenseScout::Config.flagged_licenses = ["MIT"]
    +      end
    +
    +      it "raises an error" do
    +        expect { described_class.validate! }.to raise_error(LicenseScout::Exceptions::ConfigError, "You may specify a list of licenses to allow or flag. You may not specify both.")
    +      end
    +    end
    +
    +    context "if one of the directories could not be found" do
    +      let(:dir) { "/does/not/exist" }
    +
    +      before do
    +        LicenseScout::Config.directories = [File.join(SPEC_FIXTURES_DIR, "berkshelf"), dir]
    +      end
    +
    +      it "raises an error" do
    +        expect { described_class.validate! }.to raise_error(LicenseScout::Exceptions::ConfigError, "The '#{dir}' directory could not be found.")
    +      end
    +    end
    +  end
    +end
    diff --git a/spec/license_scout/dependency_manager/base_spec.rb b/spec/license_scout/dependency_manager/base_spec.rb
    new file mode 100644
    index 00000000..1028d3e7
    --- /dev/null
    +++ b/spec/license_scout/dependency_manager/base_spec.rb
    @@ -0,0 +1,64 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::DependencyManager::Base do
    +
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
    +
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
    +  end
    +
    +  describe "#name" do
    +    it "raises an error" do
    +      expect { subject.name }.to raise_error(LicenseScout::Exceptions::Error, "All DependencyManagers must have a `#name` method")
    +    end
    +  end
    +
    +  describe "#type" do
    +    it "raises an error" do
    +      expect { subject.type }.to raise_error(LicenseScout::Exceptions::Error, "All DependencyManagers must have a `#type` method")
    +    end
    +  end
    +
    +  describe "#signature" do
    +    it "raises an error" do
    +      expect { subject.signature }.to raise_error(LicenseScout::Exceptions::Error, "All DependencyManagers must have a `#signature` method")
    +    end
    +  end
    +
    +  describe "#install_command" do
    +    it "raises an error" do
    +      expect { subject.install_command }.to raise_error(LicenseScout::Exceptions::Error, "All DependencyManagers must have a `#install_command` method")
    +    end
    +  end
    +
    +  describe "#detected?" do
    +    it "raises an error" do
    +      expect { subject.detected? }.to raise_error(LicenseScout::Exceptions::Error, "All DependencyManagers must have a `#detected?` method")
    +    end
    +  end
    +
    +  describe "#dependencies" do
    +    it "returns an empty array" do
    +      expect(subject.dependencies).to eql([])
    +    end
    +  end
    +end
    diff --git a/spec/license_scout/dependency_manager/berkshelf_spec.rb b/spec/license_scout/dependency_manager/berkshelf_spec.rb
    index eff6edda..d933aa62 100644
    --- a/spec/license_scout/dependency_manager/berkshelf_spec.rb
    +++ b/spec/license_scout/dependency_manager/berkshelf_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,194 +15,116 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/berkshelf"
    -require "license_scout/options"
    +RSpec.describe LicenseScout::DependencyManager::Berkshelf do
     
    -RSpec.describe(LicenseScout::DependencyManager::Berkshelf) do
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  subject(:berkshelf) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    -
    -  let(:tmpdir) { Dir.mktmpdir }
    +  let(:berksfile_path) { File.join(directory, "Berksfile") }
    +  let(:berksfile_lock_path) { File.join(directory, "Berksfile.lock") }
     
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    -  let(:project_dir) { File.join(tmpdir, "berkshelf_project") }
    -
    -  before do
    -    ENV["BERKSHELF_PATH"] = File.join(SPEC_FIXTURES_DIR, "berkshelf_cache_dir" )
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  after do
    -    ENV.delete("BERKSHELF_PATH")
    +  describe "#name" do
    +    it "equals 'chef_berkshelf'" do
    +      expect(subject.name).to eql("chef_berkshelf")
    +    end
       end
     
    -  it "has a name" do
    -    expect(berkshelf.name).to eq("chef_berkshelf")
    +  describe "#type" do
    +    it "equals 'chef_cookbook'" do
    +      expect(subject.type).to eql("chef_cookbook")
    +    end
       end
     
    -  it "does not detect berkshelf when both berksfile and lockfile are missing" do
    -    expect(berkshelf.detected?).to eq(false)
    +  describe "#signature" do
    +    it "equals 'Berksfile and Berksfile.lock files'" do
    +      expect(subject.signature).to eql("Berksfile and Berksfile.lock files")
    +    end
       end
     
    -  describe "when only Berksfile exists" do
    +  describe "#detected?" do
    +    let(:berksfile_exists) { true }
    +    let(:berksfile_lock_exists) { true }
     
         before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "Berksfile"))
    +      expect(File).to receive(:exist?).with(berksfile_path).and_return(berksfile_exists)
    +      expect(File).to receive(:exist?).with(berksfile_lock_path).and_return(berksfile_lock_exists)
         end
     
    -    it "does not detect" do
    -      expect(berkshelf.detected?).to eq(false)
    +    context "when Berksfile and Berksfile.lock exist" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
     
    +    context "when either Berksfile or Berksfile.lock is missing" do
    +      let(:berksfile_exists) { true }
    +      let(:berksfile_lock_exists) { false }
    +
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
    +    end
       end
     
    -  describe "when only Berksfile.lock exists" do
    +  describe "#install_command" do
    +    it "returns 'berks install'" do
    +      expect(subject.install_command).to eql("berks install")
    +    end
    +  end
     
    +  describe "#dependencies" do
         before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "Berksfile.lock"))
    +      ENV["BERKSHELF_PATH"] = File.join(SPEC_FIXTURES_DIR, "berkshelf_cache_dir" )
         end
     
    -    it "does not detect" do
    -      expect(berkshelf.detected?).to eq(false)
    +    after do
    +      ENV.delete("BERKSHELF_PATH")
         end
     
    -  end
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "berkshelf") }
     
    -  describe "with a full berkshelf project" do
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "berkshelf") }
    +    context "when the 'berkshelf' gem is unavailable" do
    +      before do
    +        expect(subject).to receive(:require).with("berkshelf") do
    +          raise LoadError
    +        end
    +      end
     
    -    it "detects berkshelf correctly" do
    -      expect(berkshelf.detected?).to eq(true)
    +      it "raises an error" do
    +        expect { subject.dependencies }.to raise_error(LicenseScout::Exceptions::Error, /berkshelf gem is not available/)
    +      end
         end
     
    -    it "detects the dependencies and their details correctly" do
    -      dependencies = berkshelf.dependencies
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
     
           # Make sure we have the right count
           expect(dependencies.length).to eq(20)
     
           # Spot check a few of the dependencies
    -
           omnibus = dependencies.select { |d| d.name == "omnibus" }
           git = dependencies.select { |d| d.name == "git" }
           windows = dependencies.select { |d| d.name == "windows" }
     
           expect(omnibus.length).to be(1)
           expect(omnibus.first.version).to eq("4.2.4")
    -      expect(omnibus.first.license).to eq("Apache 2.0")
    -      expect(omnibus.first.license_files.length).to be(1)
    -      expect(omnibus.first.license_files.first).to end_with("fixtures/berkshelf_cache_dir/cookbooks/omnibus-4.2.4/LICENSE")
    +      expect(omnibus.first.license.records.length).to be(1)
    +      expect(omnibus.first.license.records.first.id).to eq("Apache-2.0")
    +      expect(omnibus.first.license.records.first.source).to eql("LICENSE")
     
           expect(git.length).to be(1)
           expect(git.first.version).to eq("4.6.0")
    -      expect(git.first.license).to eq("Apache 2.0")
    -      expect(git.first.license_files).to be_empty
    +      expect(git.first.license.records.length).to eql(0)
     
           expect(windows.length).to be(1)
           expect(windows.first.version).to eq("1.44.3")
    -      expect(windows.first.license).to eq("Apache 2.0")
    -      expect(windows.first.license_files).to be_empty
    -
    -    end
    -
    -    describe "when berkshelf is not available" do
    -      before do
    -        expect(berkshelf).to receive(:require).with("berkshelf") do
    -          raise LoadError
    -        end
    -      end
    -
    -      it "raises an error" do
    -        expect { berkshelf.dependencies }.to raise_error(LicenseScout::Exceptions::Error, /berkshelf gem is not available/)
    -      end
    +      expect(git.first.license.records.length).to eql(0)
         end
    -
    -    describe "when given license overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "chef_berkshelf", "windows" do |version|
    -            {
    -              license: "MIT",
    -            }
    -          end
    -        end
    -      end
    -
    -      it "takes overrides into account" do
    -        dependencies = berkshelf.dependencies
    -        expect(dependencies.length).to eq(20)
    -
    -        windows = dependencies.select { |d| d.name == "windows" }
    -
    -        expect(windows.length).to be(1)
    -        expect(windows.first.version).to eq("1.44.3")
    -        expect(windows.first.license).to eq("MIT")
    -        expect(windows.first.license_files).to be_empty
    -      end
    -
    -    end
    -
    -    describe "when given license file overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "chef_berkshelf", "git" do |version|
    -            {
    -              license_files: ["README.md", "CHANGELOG.md"],
    -            }
    -          end
    -
    -        end
    -      end
    -
    -      it "takes overrides into account" do
    -        dependencies = berkshelf.dependencies
    -        expect(dependencies.length).to eq(20)
    -
    -        git = dependencies.select { |d| d.name == "git" }
    -
    -        expect(git.length).to be(1)
    -        expect(git.first.version).to eq("4.6.0")
    -        expect(git.first.license).to eq("Apache 2.0")
    -        expect(git.first.license_files.length).to eq(2)
    -        expect(git.first.license_files.first).to end_with("fixtures/berkshelf_cache_dir/cookbooks/git-4.6.0/README.md")
    -        expect(git.first.license_files[1]).to end_with("fixtures/berkshelf_cache_dir/cookbooks/git-4.6.0/CHANGELOG.md")
    -      end
    -
    -    end
    -
    -    describe "when given both license and license file overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "chef_berkshelf", "omnibus" do |version|
    -            {
    -              license: "MIT",
    -              license_files: ["TESTING.md"],
    -            }
    -          end
    -
    -        end
    -      end
    -
    -      it "takes overrides into account" do
    -        dependencies = berkshelf.dependencies
    -        expect(dependencies.length).to eq(20)
    -
    -        omnibus = dependencies.select { |d| d.name == "omnibus" }
    -
    -        expect(omnibus.length).to be(1)
    -        expect(omnibus.first.version).to eq("4.2.4")
    -        expect(omnibus.first.license).to eq("MIT")
    -        expect(omnibus.first.license_files.length).to be(1)
    -        expect(omnibus.first.license_files.first).to end_with("fixtures/berkshelf_cache_dir/cookbooks/omnibus-4.2.4/TESTING.md")
    -      end
    -
    -    end
    -
       end
    -
     end
    diff --git a/spec/license_scout/dependency_manager/bundler_spec.rb b/spec/license_scout/dependency_manager/bundler_spec.rb
    index d7288354..61971a64 100644
    --- a/spec/license_scout/dependency_manager/bundler_spec.rb
    +++ b/spec/license_scout/dependency_manager/bundler_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,193 +15,106 @@
     # limitations under the License.
     #
     
    -require "tmpdir"
    -require "fileutils"
    +RSpec.describe LicenseScout::DependencyManager::Bundler do
     
    -# Gem.ruby_api_version
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -require "license_scout/dependency_manager/bundler"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +  let(:gemfile_path) { File.join(directory, "Gemfile") }
    +  let(:gemfile_lock_path) { File.join(directory, "Gemfile.lock") }
     
    -RSpec.describe(LicenseScout::DependencyManager::Bundler) do
    -  subject(:bundler) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    -
    -  let(:tmpdir) { Dir.mktmpdir }
    -
    -  let(:overrides) { LicenseScout::Overrides.new }
    -  let(:project_dir) { File.join(tmpdir, "bundler_project") }
    -
    -  after do
    -    FileUtils.rm_rf(tmpdir)
    -  end
    -
    -  it "has a name" do
    -    expect(bundler.name).to eq("ruby_bundler")
    -  end
    -
    -  it "has a project directory" do
    -    expect(bundler.project_dir).to eq(project_dir)
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  describe "when provided a bundler project" do
    -    before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "Gemfile"))
    -      FileUtils.touch(File.join(project_dir, "Gemfile.lock"))
    +  describe "#name" do
    +    it "equals 'ruby_bundler'" do
    +      expect(subject.name).to eql("ruby_bundler")
         end
    +  end
     
    -    it "detects a bundler project correctly" do
    -      expect(bundler.detected?).to eq(true)
    +  describe "#type" do
    +    it "equals 'ruby'" do
    +      expect(subject.type).to eql("ruby")
         end
       end
     
    -  describe "when provided a non-bundler project" do
    -    before do
    -      Dir.mkdir(project_dir)
    +  describe "#signature" do
    +    it "equals 'Gemfile and Gemfile.lock files'" do
    +      expect(subject.signature).to eql("Gemfile and Gemfile.lock files")
         end
    +  end
     
    -    it "does not detect the project" do
    -      expect(bundler.detected?).to eq(false)
    +  describe "#install_command" do
    +    it "returns 'bundle install'" do
    +      expect(subject.install_command).to eql("bundle install")
         end
       end
     
    -  describe "when provided a bundler project without lock file" do
    +  describe "#detected?" do
    +    let(:gemfile_exists) { true }
    +    let(:gemfile_lock_exists) { true }
     
         before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "Gemfile"))
    +      expect(File).to receive(:exist?).with(gemfile_path).and_return(gemfile_exists)
    +      expect(File).to receive(:exist?).with(gemfile_lock_path).and_return(gemfile_lock_exists)
         end
     
    -    it "does not detect the project as a bundler project" do
    -      expect(bundler.detected?).to eq(false)
    +    context "when Gemfile and Gemfile.lock exist" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
     
    -  end
    -
    -  describe "when provided a bundler project without gemfile" do
    +    context "when either Gemfile or Gemfile.lock is missing" do
    +      let(:gemfile_exists) { true }
    +      let(:gemfile_lock_exists) { false }
     
    -    before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "Gemfile.lock"))
    -    end
    -
    -    it "does not detect the project as a bundler project" do
    -      expect(bundler.detected?).to eq(false)
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
         end
    -
       end
     
    -  describe "when provided a real bundler project" do
    -
    -    # We want to use a "real" bundler project for the tests to get deeper
    -    # coverage and avoid mocks. However, gem paths include the ruby api version
    -    # in them. So we construct a vendored bundler project from a dir containing
    -    # the Gemfiles and bundler config and another dir with the gems (which are
    -    # stripped of content).
    +  describe "#dependencies", :vcr do
    +    let(:tmpdir) { Dir.mktmpdir }
    +    let(:directory) { File.join(tmpdir, "bundler_project") }
     
         let(:bundler_project_fixture) { File.join(SPEC_FIXTURES_DIR, "bundler_top_level_project") }
         let(:bundler_gems_fixture) { File.join(SPEC_FIXTURES_DIR, "bundler_gems_dir") }
    -    let(:bundler_gems_dir) { File.expand_path("vendor/bundle/ruby/#{Gem.ruby_api_version}/", project_dir) }
    +    let(:bundler_gems_dir) { File.expand_path("vendor/bundle/ruby/#{Gem.ruby_api_version}/", directory) }
     
         before do
    -      FileUtils.cp_r(bundler_project_fixture, project_dir)
    +      FileUtils.cp_r(bundler_project_fixture, directory)
           FileUtils.mkdir_p(bundler_gems_dir)
           FileUtils.cp_r("#{bundler_gems_fixture}/.", bundler_gems_dir)
         end
     
    +    # tmpdir when running as non-root on OS X is a symlink which we have to resolve
         def gem_rel_path(path)
    -      # tmpdir when running as non-root on OS X is a symlink which we have to
    -      # resolve
           Pathname(File.join(bundler_gems_dir, path)).realpath.to_s
         end
     
    -    it "detects the licenses of the transitive dependencies correctly" do
    -      dependencies = bundler.dependencies
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
     
    +      # Make sure we have the right count
           expect(dependencies.length).to eq(10)
     
    -      # We check the bundler intentionally because we are munging with its
    -      # license information in the code.
    +      # We check the bundler intentionally because we are ;pruy;handling it differently
           bundler_info = dependencies.find { |d| d.name == "bundler" }
    -      expect(bundler_info.license).to eq("MIT")
    -      expect(bundler_info.license_files.length).to eq(1)
    -      expect(bundler_info.license_files.first).to end_with("/LICENSE.md")
    +      expect(bundler_info.license.records.length).to eq(2)
    +      expect(bundler_info.license.records.first.id).to eq("MIT")
    +      expect(bundler_info.license.records.first.source).to eql("README.md")
     
           # We check mixlib-install an example out of 10 dependencies.
           mixlib_install_info = dependencies.find { |d| d.name == "mixlib-install" }
           expect(mixlib_install_info.version).to eq("1.1.0")
    -      expect(mixlib_install_info.license).to eq("Apache-2.0")
    -      expect(mixlib_install_info.license_files.length).to eq(1)
    -      expect(mixlib_install_info.license_files.first).to eq(gem_rel_path("/gems/mixlib-install-1.1.0/LICENSE"))
    -    end
    -
    -    describe "when only license files are overridden." do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new() do
    -          override_license "ruby_bundler", "mixlib-install" do |version|
    -            {
    -              license_files: [ "CHANGELOG.md" ], # pick any file from mixlib-install
    -            }
    -          end
    -        end
    -      end
    -
    -      it "only uses license file overrides and reports the original license" do
    -        dependencies = bundler.dependencies
    -        expect(dependencies.length).to eq(10)
    -
    -        mixlib_install_info = dependencies.find { |d| d.name == "mixlib-install" }
    -        expect(mixlib_install_info.version).to eq("1.1.0")
    -        expect(mixlib_install_info.license).to eq("Apache-2.0")
    -        expect(mixlib_install_info.license_files.length).to eq(1)
    -        expect(mixlib_install_info.license_files.first).to eq(gem_rel_path("gems/mixlib-install-1.1.0/CHANGELOG.md"))
    -      end
    -    end
    -
    -    describe "when correct overrides are provided." do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new() do
    -          override_license "ruby_bundler", "mixlib-install" do |version|
    -            {
    -              license: "Apache",
    -              license_files: [ "README.md" ],
    -            }
    -          end
    -        end
    -      end
    -
    -      it "uses the given overrides" do
    -        dependencies = bundler.dependencies
    -        expect(dependencies.length).to eq(10)
    -
    -        mixlib_install_info = dependencies.find { |d| d.name == "mixlib-install" }
    -        expect(mixlib_install_info.version).to eq("1.1.0")
    -        expect(mixlib_install_info.license).to eq("Apache")
    -        expect(mixlib_install_info.license_files.length).to eq(1)
    -        expect(mixlib_install_info.license_files.first).to eq(gem_rel_path("gems/mixlib-install-1.1.0/README.md"))
    -      end
    -    end
    -
    -    describe "when overrides with missing license file paths are provided" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new() do
    -          override_license "ruby_bundler", "mixlib-install" do |version|
    -            {
    -              license: "Apache",
    -              license_files: [ "NOPE-LICENSE" ],
    -            }
    -          end
    -        end
    -      end
    -
    -      it "raises an error" do
    -        expect { bundler.dependencies }.to raise_error(LicenseScout::Exceptions::InvalidOverride)
    -      end
    +      expect(mixlib_install_info.license.records.length).to eq(1)
    +      expect(mixlib_install_info.license.records.first.id).to eq("Apache-2.0")
    +      expect(mixlib_install_info.license.records.first.source).to eq("LICENSE")
         end
       end
     end
    diff --git a/spec/license_scout/dependency_manager/cpanm_spec.rb b/spec/license_scout/dependency_manager/cpanm_spec.rb
    index 806b6407..c1e5257a 100644
    --- a/spec/license_scout/dependency_manager/cpanm_spec.rb
    +++ b/spec/license_scout/dependency_manager/cpanm_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,125 +15,120 @@
     # limitations under the License.
     #
     
    -require "tmpdir"
    -require "fileutils"
    +RSpec.describe LicenseScout::DependencyManager::Cpanm do
     
    -require "license_scout/dependency_manager/cpanm"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +  let(:directory) { "/some/random/directory" }
    +  let(:subject) { described_class.new(directory) }
     
    -RSpec.describe(LicenseScout::DependencyManager::Cpanm) do
    +  let(:meta_json_path) { File.join(directory, "META.json") }
    +  let(:meta_yaml_path) { File.join(directory, "META.yml") }
     
    -  subject(:cpanm) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    +  let(:meta_json_exists) { true }
    +  let(:meta_yaml_exists) { false }
     
    -  let(:tmpdir) { Dir.mktmpdir }
    -  let(:project_dir) { File.join(tmpdir, "App-Example-1.0.0") }
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
    +  end
     
    -  after do
    -    FileUtils.rm_rf(tmpdir)
    +  describe "#name" do
    +    it "equals 'perl_cpanm'" do
    +      expect(subject.name).to eql("perl_cpanm")
    +    end
       end
     
    -  it "has a name" do
    -    expect(cpanm.name).to eq("perl_cpanm")
    +  describe "#type" do
    +    it "equals 'perl'" do
    +      expect(subject.type).to eql("perl")
    +    end
       end
     
    -  describe "when provided a perl project with META.yml" do
    +  describe "#signature" do
         before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "META.yml"))
    +      allow(File).to receive(:exist?).with(meta_json_path).and_return(meta_json_exists)
    +      allow(File).to receive(:exist?).with(meta_yaml_path).and_return(meta_yaml_exists)
         end
     
    -    it "detects a perl project correctly" do
    -      expect(cpanm.detected?).to eq(true)
    +    context "when a META.yml exists" do
    +      let(:meta_yaml_exists) { true }
    +      let(:meta_json_exists) { false }
    +
    +      it "equals 'META.yml file'" do
    +        expect(subject.signature).to eql("META.yml file")
    +      end
         end
    -  end
     
    -  describe "when provided a perl project with META.json" do
    -    before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "META.json"))
    +    context "when a META.json exists" do
    +      it "equals 'META.json file'" do
    +        expect(subject.signature).to eql("META.json file")
    +      end
         end
    +  end
     
    -    it "detects a perl project correctly" do
    -      expect(cpanm.detected?).to eq(true)
    +  describe "#install_command" do
    +    it "returns 'cpanm --installdeps .'" do
    +      expect(subject.install_command).to eql("cpanm --installdeps .")
         end
       end
     
    -  describe "when provided a non-perl project" do
    +  describe "#detected?" do
         before do
    -      Dir.mkdir(project_dir)
    +      allow(File).to receive(:exist?).with(meta_json_path).and_return(meta_json_exists)
    +      allow(File).to receive(:exist?).with(meta_yaml_path).and_return(meta_yaml_exists)
         end
     
    -    it "does not detect the project" do
    -      expect(cpanm.detected?).to eq(false)
    +    context "when META.json or META.yml exist" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
    -  end
     
    -  describe "when given a real cpan project", :no_windows do
    +    context "when META.json or META.yml are missing" do
    +      let(:meta_json_exists) { false }
    +      let(:meta_yaml_exists) { false }
     
    -    let(:project_dir) { File.join(tmpdir, "App-Sqitch-0.973") }
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
    +    end
    +  end
    +
    +  describe "#dependencies", :no_windows do
    +    let(:tmpdir) { Dir.mktmpdir }
    +    let(:directory) { File.join(tmpdir, "App-Sqitch-0.973") }
     
         before do
    -      allow(cpanm).to receive(:cpanm_root).and_return(File.join(SPEC_FIXTURES_DIR, "cpanm"))
    +      LicenseScout::Config.cpanm_root = File.join(SPEC_FIXTURES_DIR, "cpanm")
    +    end
    +
    +    after do
    +      FileUtils.rm_rf(tmpdir)
         end
     
    -    it "fetches the dependencies" do
    -      deps = cpanm.dependencies
    -      expect(deps.length).to eq(84)
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
    +      expect(dependencies.length).to eq(84)
     
           # Has everything
    -      any_moose = deps.select { |d| d.name == "Any-Moose" }
    -      expect(any_moose.length).to eq(1)
    -      expect(any_moose.first.license).to eq("Perl-5")
    -      expect(any_moose.first.version).to eq("0.26")
    -      expect(any_moose.first.license_files.length).to eq(1)
    -      expect(any_moose.first.license_files.first).to end_with("latest-build/Any-Moose-0.26/LICENSE")
    -
    -      # Check one missing #license
    -      io_pager = deps.select { |d| d.name == "IO-Pager" }
    -      expect(io_pager.length).to eq(1)
    -      expect(io_pager.first.license).to eq(nil)
    -      expect(io_pager.first.version).to eq("0.36")
    -      expect(io_pager.first.license_files).to be_empty
    +      any_moose = dependencies.find { |d| d.name == "Any-Moose" }
    +      expect(any_moose.version).to eq("0.26")
    +      expect(any_moose.license.records.length).to eq(2)
    +      expect(any_moose.license.records.map(&:id)).to include("Artistic-1.0-Perl")
    +      expect(any_moose.license.records[0].source).to eql("LICENSE")
    +      expect(any_moose.license.records[1].source).to eql("META.json")
    +
    +      # Check one missing license
    +      io_pager = dependencies.find { |d| d.name == "IO-Pager" }
    +      expect(io_pager.version).to eq("0.36")
    +      expect(io_pager.license.records.length).to eq(0)
     
           # Missing META.json
    -      class_load = deps.select { |d| d.name == "Class-Load" }
    -      expect(class_load.length).to eq(1)
    -      expect(class_load.first.license).to eq("Perl-5")
    -      expect(class_load.first.version).to eq("0.23")
    -      expect(class_load.first.license_files.length).to eq(1)
    -      expect(class_load.first.license_files.first).to end_with("latest-build/Class-Load-0.23/LICENSE")
    +      class_load = dependencies.find { |d| d.name == "Class-Load" }
    +      expect(class_load.version).to eq("0.23")
    +      expect(class_load.license.records.map(&:id)).to include("Artistic-1.0-Perl")
    +      expect(any_moose.license.records[0].source).to eql("LICENSE")
    +      expect(any_moose.license.records[1].source).to eql("META.json")
         end
    -    # Make sure it happens when META.yml or META.json does not exist.
    -    describe "with overrides" do
    -
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "perl_cpanm", "Any-Moose" do |version|
    -            {
    -              license: "MIT",
    -              license_files: ["README"] # any file in Capture-Tiny there
    -            }
    -          end
    -        end
    -      end
    -
    -      it "detects the licenses of the transitive dependencies correctly" do
    -        expect(cpanm.dependencies.size).to eq(84)
    -
    -        any_moose = cpanm.dependencies.select { |d| d.name == "Any-Moose" }
    -        expect(any_moose.length).to eq(1)
    -        expect(any_moose.first.license).to eq("MIT")
    -        expect(any_moose.first.version).to eq("0.26")
    -        expect(any_moose.first.license_files.length).to eq(1)
    -        expect(any_moose.first.license_files.first).to end_with("latest-build/Any-Moose-0.26/README")
    -      end
    -    end
    -
       end
     end
    diff --git a/spec/license_scout/dependency_manager/dep_spec.rb b/spec/license_scout/dependency_manager/dep_spec.rb
    index c5248fa5..2de373ca 100644
    --- a/spec/license_scout/dependency_manager/dep_spec.rb
    +++ b/spec/license_scout/dependency_manager/dep_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,122 +15,103 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/dep"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +RSpec.describe LicenseScout::DependencyManager::Dep do
     
    -RSpec.describe(LicenseScout::DependencyManager::Dep) do
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  subject(:dep) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    +  let(:gopkg_lock_path) { File.join(directory, "Gopkg.lock") }
    +
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    +  describe "#name" do
    +    it "equals 'golang_dep'" do
    +      expect(subject.name).to eql("golang_dep")
    +    end
    +  end
     
    -  let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "dep") }
    +  describe "#type" do
    +    it "equals 'golang'" do
    +      expect(subject.type).to eql("golang")
    +    end
    +  end
     
    -  it "has a name" do
    -    expect(dep.name).to eq("go_dep")
    +  describe "#signature" do
    +    it "equals 'Gopkg.lock file'" do
    +      expect(subject.signature).to eql("Gopkg.lock file")
    +    end
       end
     
    -  it "has a project directory" do
    -    expect(dep.project_dir).to eq(project_dir)
    +  describe "#install_command" do
    +    it "returns 'dep ensure'" do
    +      expect(subject.install_command).to eql("dep ensure")
    +    end
       end
     
    -  describe "when run in a non-dep project dir" do
    +  describe "#detected?" do
    +    let(:gopkg_lock_exists) { true }
     
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "no_dependency_manager") }
    +    before do
    +      expect(File).to receive(:exist?).with(gopkg_lock_path).and_return(gopkg_lock_exists)
    +    end
     
    -    it "does not detect the project" do
    -      expect(dep.detected?).to eq(false)
    +    context "when Gopkg.lock exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
     
    +    context "when Gopkg.lock is missing" do
    +      let(:gopkg_lock_exists) { false }
    +
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
    +    end
       end
     
    -  describe "when run in a dep project dir" do
    +  describe "#dependencies" do
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "dep") }
    +    let(:gopath) { File.join(SPEC_FIXTURES_DIR, "deps_gopath") }
    +
         before do
    -      ENV["GOPATH"] = File.join(SPEC_FIXTURES_DIR, "deps_gopath" )
    +      ENV["GOPATH"] = gopath
         end
     
    -    it "does detects the project" do
    -      expect(dep.detected?).to eq(true)
    +    after do
    +      ENV.delete("GOPATH")
         end
     
    -    it "detects the dependencies, finds license files, and scans license files for license type" do
    -      dependencies = dep.dependencies
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
    +
           # Make sure we have the right count
           expect(dependencies.length).to eq(3)
     
    -      dep_a = dependencies.select { |d| d.name == "github.com_foo_bar" }
    -      dep_b = dependencies.select { |d| d.name == "gopkg.in_foo_baz" }
    +      dep_a = dependencies.find { |d| d.name == "github.com/foo/bar" }
    +      dep_b = dependencies.find { |d| d.name == "gopkg.in/foo/baz" }
     
    -      expect(dep_a.length).to be(1)
    -      expect(dep_a.first.version).to eq("a4973d9a4225417aecf5d450a9522f00c1f7130f")
    -      expect(dep_a.first.license).to eq("Apache-2.0")
    -      expect(dep_a.first.license_files.first).to end_with("fixtures/deps_gopath/src/github.com/foo/bar/LICENSE")
    +      expect(dep_a.version).to eql("a4973d9a4225417aecf5d450a9522f00c1f7130f")
    +      expect(dep_a.license.records.first.id).to eql("Apache-2.0")
    +      expect(dep_a.license.records.first.source).to eql("LICENSE")
     
    -      expect(dep_b.length).to be(1)
    -      expect(dep_b.first.version).to eq("v5.0.45")
    -      expect(dep_b.first.license).to eq(nil)
    -      expect(dep_b.first.license_files.first).to end_with("fixtures/deps_gopath/src/gopkg.in/foo/baz/LICENSE")
    +      expect(dep_b.version).to eql("v5.0.45")
    +      expect(dep_b.license.records.first.id).to be_nil
    +      expect(dep_b.license.records.first.source).to eql("LICENSE")
         end
     
         it "also checks vendor/ for license files" do
    -      dependencies = dep.dependencies
    +      dependencies = subject.dependencies
           expect(dependencies.length).to eq(3)
     
    -      dep_c = dependencies.select { |d| d.name == "github.com_f00_b4r" }
    -      puts dep_c
    -      expect(dep_c.length).to be(1)
    -      expect(dep_c.first.version).to eq("v0.0.1")
    -      expect(dep_c.first.license).to eq("MIT")
    -      expect(dep_c.first.license_files.first).to end_with("fixtures/dep/vendor/github.com/f00/b4r/LICENSE")
    -    end
    -
    -    describe "when given license overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "gopkg.in/foo/baz" do |version|
    -            {
    -              license: "APACHE2",
    -            }
    -          end
    -        end
    -      end
    -
    -      it "takes overrides into account" do
    -        dependencies = dep.dependencies
    -        expect(dependencies.length).to eq(3)
    -
    -        dep_b = dependencies.find { |d| d.name == "gopkg.in_foo_baz" }
    -        expect(dep_b.license).to eq("APACHE2")
    -      end
    -
    -    end
    -
    -    describe "when given license file overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "gopkg.in/foo/baz" do |version|
    -            {
    -              license_files: %w{README LICENSE},
    -            }
    -          end
    -
    -        end
    -      end
    -
    -      it "takes overrides into account" do
    -        dependencies = dep.dependencies
    -        expect(dependencies.length).to eq(3)
    -
    -        dep_b = dependencies.find { |d| d.name == "gopkg.in_foo_baz" }
    -        expect(dep_b.license_files[0]).to end_with("fixtures/deps_gopath/src/gopkg.in/foo/baz/README")
    -        expect(dep_b.license_files[1]).to end_with("fixtures/deps_gopath/src/gopkg.in/foo/baz/LICENSE")
    -      end
    -
    +      dep_c = dependencies.find { |d| d.name == "github.com/f00/b4r" }
    +      expect(dep_c.version).to eq("v0.0.1")
    +      expect(dep_c.license.records.first.id).to eql("MIT")
    +      expect(dep_c.license.records.first.source).to eql("LICENSE")
         end
       end
     end
    diff --git a/spec/license_scout/dependency_manager/glide_spec.rb b/spec/license_scout/dependency_manager/glide_spec.rb
    index 1df0fb8e..69994a0c 100644
    --- a/spec/license_scout/dependency_manager/glide_spec.rb
    +++ b/spec/license_scout/dependency_manager/glide_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2017, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,123 +15,97 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/glide"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +RSpec.describe LicenseScout::DependencyManager::Glide do
     
    -RSpec.describe(LicenseScout::DependencyManager::Glide) do
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  subject(:glide) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    -
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    +  let(:glide_lock_path) { File.join(directory, "glide.lock") }
     
    -  let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "glide") }
    -
    -  it "has a name" do
    -    expect(glide.name).to eq("go_glide")
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  it "has a project directory" do
    -    expect(glide.project_dir).to eq(project_dir)
    +  describe "#name" do
    +    it "equals 'golang_glide'" do
    +      expect(subject.name).to eql("golang_glide")
    +    end
       end
     
    -  describe "when run in a non-glide project dir" do
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "no_dependency_manager") }
    -
    -    it "does not detect the project" do
    -      expect(glide.detected?).to eq(false)
    +  describe "#type" do
    +    it "equals 'golang'" do
    +      expect(subject.type).to eql("golang")
         end
       end
     
    -  describe "when run in a glide-only project dir" do
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "godep") }
    +  describe "#signature" do
    +    it "equals 'glide.lock file'" do
    +      expect(subject.signature).to eql("glide.lock file")
    +    end
    +  end
     
    -    it "does not detect the project" do
    -      expect(glide.detected?).to eq(false)
    +  describe "#install_command" do
    +    it "returns 'glide install'" do
    +      expect(subject.install_command).to eql("glide install")
         end
       end
     
    -  describe "when run in a glide project dir" do
    +  describe "#detected?" do
    +    let(:glide_lock_exists) { true }
    +
         before do
    -      ENV["GOPATH"] = File.join(SPEC_FIXTURES_DIR, "godeps_gopath" )
    +      expect(File).to receive(:exist?).with(glide_lock_path).and_return(glide_lock_exists)
         end
     
    -    it "does detects the project" do
    -      expect(glide.detected?).to eq(true)
    +    context "when glide.lock exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
     
    -    it "detects the dependencies and their details correctly" do
    -      dependencies = glide.dependencies
    -
    -      # Make sure we have the right count
    -      expect(dependencies.length).to eq(3)
    -
    -      dep_a = dependencies.select { |d| d.name == "github.com_dep_a" }
    -      dep_b = dependencies.select { |d| d.name == "github.com_dep_b" }
    -      dep_c = dependencies.select { |d| d.name == "github.com_dep_c_subdir" }
    +    context "when glide.lock is missing" do
    +      let(:glide_lock_exists) { false }
     
    -      expect(dep_a.length).to be(1)
    -      expect(dep_a.first.version).to eq("rev0")
    -      expect(dep_a.first.license).to eq(nil)
    -      expect(dep_a.first.license_files.first).to end_with("fixtures/godeps_gopath/src/github.com/dep/a/LICENSE.txt")
    -
    -      expect(dep_b.length).to be(1)
    -      expect(dep_b.first.version).to eq("rev1")
    -      expect(dep_b.first.license).to eq(nil)
    -      expect(dep_b.first.license_files).to eq([])
    -
    -      expect(dep_c.length).to be(1)
    -      expect(dep_c.first.version).to eq("rev2")
    -      expect(dep_c.first.license).to eq(nil)
    -      expect(dep_c.first.license_files.first).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/LICENSE")
    -    end
    -
    -    describe "when given license overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "github.com/dep/c/subdir" do |version|
    -            {
    -              license: "MIT",
    -            }
    -          end
    -        end
    +      it "returns false" do
    +        expect(subject.detected?).to be false
           end
    +    end
    +  end
     
    -      it "takes overrides into account" do
    -        dependencies = glide.dependencies
    -        expect(dependencies.length).to eq(3)
    +  describe "#dependencies" do
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "glide") }
    +    let(:gopath) { File.join(SPEC_FIXTURES_DIR, "godeps_gopath") }
     
    -        dep_c = dependencies.find { |d| d.name == "github.com_dep_c_subdir" }
    -        expect(dep_c.license).to eq("MIT")
    -      end
    +    before do
    +      ENV["GOPATH"] = gopath
    +    end
     
    +    after do
    +      ENV.delete("GOPATH")
         end
     
    -    describe "when given license file overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "github.com/dep/c/subdir" do |_version|
    -            {
    -              license_files: %w{README LICENSE},
    -            }
    -          end
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
     
    -        end
    -      end
    +      # Make sure we have the right count
    +      expect(dependencies.length).to eq(3)
     
    -      it "takes overrides into account" do
    -        dependencies = glide.dependencies
    -        expect(dependencies.length).to eq(3)
    +      dep_a = dependencies.find { |d| d.name == "github.com/dep/a" }
    +      dep_b = dependencies.find { |d| d.name == "github.com/dep/b" }
    +      dep_c = dependencies.find { |d| d.name == "github.com/dep/c/subdir" }
     
    -        dep_c = dependencies.find { |d| d.name == "github.com_dep_c_subdir" }
    -        expect(dep_c.license_files[0]).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/README")
    -        expect(dep_c.license_files[1]).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/LICENSE")
    -      end
    +      expect(dep_a.version).to eq("rev0")
    +      expect(dep_a.license.records.first.id).to be_nil
    +      expect(dep_a.license.records.first.source).to eql("LICENSE.txt")
    +
    +      expect(dep_b.version).to eq("rev1")
    +      expect(dep_b.license.records).to be_empty
     
    +      expect(dep_c.version).to eq("rev2")
    +      expect(dep_c.license.records.first.id).to be_nil
    +      expect(dep_c.license.records.first.source).to eql("LICENSE")
         end
       end
     end
    diff --git a/spec/license_scout/dependency_manager/godep_spec.rb b/spec/license_scout/dependency_manager/godep_spec.rb
    index af63a607..c2929e0c 100644
    --- a/spec/license_scout/dependency_manager/godep_spec.rb
    +++ b/spec/license_scout/dependency_manager/godep_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,117 +15,97 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/godep"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +RSpec.describe LicenseScout::DependencyManager::Godep do
     
    -RSpec.describe(LicenseScout::DependencyManager::Godep) do
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  subject(:godep) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    -
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    +  let(:godeps_json_path) { File.join(directory, "Godeps/Godeps.json") }
     
    -  let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "godep") }
    -
    -  it "has a name" do
    -    expect(godep.name).to eq("go_godep")
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  it "has a project directory" do
    -    expect(godep.project_dir).to eq(project_dir)
    +  describe "#name" do
    +    it "equals 'golang_godep'" do
    +      expect(subject.name).to eql("golang_godep")
    +    end
       end
     
    -  describe "when run in a non-godep project dir" do
    -
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "no_dependency_manager") }
    -
    -    it "does not detect the project" do
    -      expect(godep.detected?).to eq(false)
    +  describe "#type" do
    +    it "equals 'golang'" do
    +      expect(subject.type).to eql("golang")
         end
    -
       end
     
    -  describe "when run in a godep project dir" do
    -    before do
    -      ENV["GOPATH"] = File.join(SPEC_FIXTURES_DIR, "godeps_gopath" )
    +  describe "#signature" do
    +    it "equals 'Godeps/Godeps.json file'" do
    +      expect(subject.signature).to eql("Godeps/Godeps.json file")
         end
    +  end
     
    -    it "does detects the project" do
    -      expect(godep.detected?).to eq(true)
    +  describe "#install_command" do
    +    it "returns 'godep restore'" do
    +      expect(subject.install_command).to eql("godep restore")
         end
    +  end
     
    -    it "detects the dependencies and their details correctly" do
    -      dependencies = godep.dependencies
    -
    -      # Make sure we have the right count
    -      expect(dependencies.length).to eq(3)
    -
    -      dep_a = dependencies.select { |d| d.name == "github.com_dep_a" }
    -      dep_b = dependencies.select { |d| d.name == "github.com_dep_b" }
    -      dep_c = dependencies.select { |d| d.name == "github.com_dep_c_subdir" }
    -
    -      expect(dep_a.length).to be(1)
    -      expect(dep_a.first.version).to eq("rev0")
    -      expect(dep_a.first.license).to eq(nil)
    -      expect(dep_a.first.license_files.first).to end_with("fixtures/godeps_gopath/src/github.com/dep/a/LICENSE.txt")
    -
    -      expect(dep_b.length).to be(1)
    -      expect(dep_b.first.version).to eq("v1.0.0")
    -      expect(dep_b.first.license).to eq(nil)
    -      expect(dep_b.first.license_files).to eq([])
    +  describe "#detected?" do
    +    let(:godeps_json_exists) { true }
     
    -      expect(dep_c.length).to be(1)
    -      expect(dep_c.first.version).to eq("rev2")
    -      expect(dep_c.first.license).to eq(nil)
    -      expect(dep_c.first.license_files.first).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/LICENSE")
    +    before do
    +      expect(File).to receive(:exist?).with(godeps_json_path).and_return(godeps_json_exists)
         end
     
    -    describe "when given license overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "github.com/dep/c/subdir" do |version|
    -            {
    -              license: "MIT",
    -            }
    -          end
    -        end
    +    context "when glide.lock exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
           end
    +    end
     
    -      it "takes overrides into account" do
    -        dependencies = godep.dependencies
    -        expect(dependencies.length).to eq(3)
    +    context "when glide.lock is missing" do
    +      let(:godeps_json_exists) { false }
     
    -        dep_c = dependencies.find { |d| d.name == "github.com_dep_c_subdir" }
    -        expect(dep_c.license).to eq("MIT")
    +      it "returns false" do
    +        expect(subject.detected?).to be false
           end
    +    end
    +  end
     
    +  describe "#dependencies" do
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "godep") }
    +    let(:gopath) { File.join(SPEC_FIXTURES_DIR, "godeps_gopath") }
    +
    +    before do
    +      ENV["GOPATH"] = gopath
         end
     
    -    describe "when given license file overrides" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new do
    -          override_license "go", "github.com/dep/c/subdir" do |_version|
    -            {
    -              license_files: %w{README LICENSE},
    -            }
    -          end
    +    after do
    +      ENV.delete("GOPATH")
    +    end
     
    -        end
    -      end
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
     
    -      it "takes overrides into account" do
    -        dependencies = godep.dependencies
    -        expect(dependencies.length).to eq(3)
    +      # Make sure we have the right count
    +      expect(dependencies.length).to eq(3)
     
    -        dep_c = dependencies.find { |d| d.name == "github.com_dep_c_subdir" }
    -        expect(dep_c.license_files[0]).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/README")
    -        expect(dep_c.license_files[1]).to end_with("fixtures/godeps_gopath/src/github.com/dep/c/subdir/LICENSE")
    -      end
    +      dep_a = dependencies.find { |d| d.name == "github.com/dep/a" }
    +      dep_b = dependencies.find { |d| d.name == "github.com/dep/b" }
    +      dep_c = dependencies.find { |d| d.name == "github.com/dep/c/subdir" }
    +
    +      expect(dep_a.version).to eq("rev0")
    +      expect(dep_a.license.records.first.id).to be_nil
    +      expect(dep_a.license.records.first.source).to eql("LICENSE.txt")
    +
    +      expect(dep_b.version).to eq("v1.0.0")
    +      expect(dep_b.license.records).to be_empty
     
    +      expect(dep_c.version).to eq("rev2")
    +      expect(dep_c.license.records.first.id).to be_nil
    +      expect(dep_c.license.records.first.source).to eql("LICENSE")
         end
       end
     end
    diff --git a/spec/license_scout/dependency_manager/habitat_spec.rb b/spec/license_scout/dependency_manager/habitat_spec.rb
    new file mode 100644
    index 00000000..e8ecadb2
    --- /dev/null
    +++ b/spec/license_scout/dependency_manager/habitat_spec.rb
    @@ -0,0 +1,151 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::DependencyManager::Habitat do
    +
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
    +
    +  let(:plan_sh_path) { File.join(directory, "plan.sh") }
    +  let(:habitat_plan_sh_path) { File.join(directory, "habitat", "plan.sh") }
    +
    +  let(:plan_sh_exists) { true }
    +  let(:habitat_plan_sh_exists) { false }
    +
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
    +  end
    +
    +  describe "#name" do
    +    it "equals 'habitat'" do
    +      expect(subject.name).to eql("habitat")
    +    end
    +  end
    +
    +  describe "#type" do
    +    it "equals 'habitat'" do
    +      expect(subject.type).to eql("habitat")
    +    end
    +  end
    +
    +  describe "#signature" do
    +    before do
    +      allow(File).to receive(:exist?).with(plan_sh_path).and_return(plan_sh_exists)
    +      allow(File).to receive(:exist?).with(habitat_plan_sh_path).and_return(habitat_plan_sh_exists)
    +    end
    +
    +    context "when plan.sh file exists" do
    +      it "equals 'plan.sh file'" do
    +        expect(subject.signature).to eql("plan.sh file")
    +      end
    +    end
    +
    +    context "when habitat/plan.sh file exists" do
    +      let(:plan_sh_exists) { false }
    +      let(:habitat_plan_sh_exists) { true }
    +
    +      it "equals 'plan.sh file'" do
    +        expect(subject.signature).to eql("habitat/plan.sh file")
    +      end
    +    end
    +  end
    +
    +  describe "#install_command" do
    +    it "returns ''" do
    +      expect(subject.install_command).to eql("")
    +    end
    +  end
    +
    +  describe "#detected?" do
    +    before do
    +      allow(File).to receive(:exist?).with(plan_sh_path).and_return(plan_sh_exists)
    +      allow(File).to receive(:exist?).with(habitat_plan_sh_path).and_return(habitat_plan_sh_exists)
    +    end
    +
    +    context "when plan.sh exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
    +    end
    +
    +    context "when a habitat/plan.sh exists" do
    +      let(:plan_sh_exists) { false }
    +      let(:habitat_plan_sh_exists) { true }
    +
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
    +    end
    +
    +    context "when plan.sh is missing" do
    +      let(:plan_sh_exists) { false }
    +
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
    +    end
    +  end
    +
    +  describe "#dependencies", :vcr do
    +
    +    context "when a plan.sh is found" do
    +      let(:directory) { File.join(SPEC_FIXTURES_DIR, "habitat") }
    +
    +      it "returns an array of Dependencies found in the directory" do
    +        dependencies = subject.dependencies
    +
    +        # Make sure we have the right count
    +        expect(dependencies.length).to eq(3)
    +
    +        glibc = dependencies.find { |d| d.name == "core/glibc" }
    +        linux_headers = dependencies.find { |d| d.name == "core/linux-headers" }
    +
    +        expect(glibc.version).to eq("2.22-20170513201042")
    +        expect(glibc.license.records.first.id).to eql("GPL-2.0")
    +        expect(glibc.license.records.first.source).to eql("https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/2.22/20170513201042")
    +
    +        expect(linux_headers.version).to eq("4.3-20170513200956")
    +        expect(linux_headers.license.records.first.id).to eql("GPL-2.0")
    +        expect(linux_headers.license.records.first.source).to eql("https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/linux-headers/4.3/20170513200956")
    +      end
    +    end
    +
    +    context "when a habitat/plan.sh is found" do
    +      let(:directory) { File.join(SPEC_FIXTURES_DIR, "nested_hab") }
    +
    +      it "returns an array of Dependencies found in the directory" do
    +        dependencies = subject.dependencies
    +
    +        # Make sure we have the right count
    +        expect(dependencies.length).to eq(2)
    +
    +        glibc = dependencies.find { |d| d.name == "core/glibc" }
    +        linux_headers = dependencies.find { |d| d.name == "core/linux-headers" }
    +
    +        expect(glibc.version).to eq("2.22-20170513201042")
    +        expect(glibc.license.records.first.id).to eql("GPL-2.0")
    +        expect(glibc.license.records.first.source).to eql("https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/glibc/2.22/20170513201042")
    +
    +        expect(linux_headers.version).to eq("4.3-20170513200956")
    +        expect(linux_headers.license.records.first.id).to eql("GPL-2.0")
    +        expect(linux_headers.license.records.first.source).to eql("https://bldr.habitat.sh/v1/depot/channels/core/stable/pkgs/linux-headers/4.3/20170513200956")
    +      end
    +    end
    +  end
    +end
    diff --git a/spec/license_scout/dependency_manager/manual_spec.rb b/spec/license_scout/dependency_manager/manual_spec.rb
    deleted file mode 100644
    index a27b650e..00000000
    --- a/spec/license_scout/dependency_manager/manual_spec.rb
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "tmpdir"
    -require "fileutils"
    -
    -require "license_scout/dependency_manager/manual"
    -require "license_scout/options"
    -require "license_scout/exceptions"
    -
    -RSpec.describe(LicenseScout::DependencyManager::Manual) do
    -  subject(:manual) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      manual_licenses: manual_licenses
    -    ))
    -  end
    -
    -  let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "manual") }
    -  let(:manual_licenses) { nil }
    -
    -  it "has a name" do
    -    expect(manual.name).to eq("manual")
    -  end
    -
    -  describe "without manual license information" do
    -    it "does not report detected" do
    -      expect(manual.detected?).to eq(false)
    -    end
    -  end
    -
    -  describe "given dependencies in the options" do
    -    let(:manual_licenses) do
    -      [
    -        {
    -          name: "logstash-websocket-plugin",
    -          version: "1.1.1",
    -          license: "MIT",
    -          license_files: ["random/LICENSE"],
    -          dependency_manager: "logstash_plugin",
    -        },
    -        {
    -          name: "elasticsearch",
    -          version: "2.1.3",
    -          license: "Apache-2.0",
    -          license_files: ["random/COPYING"],
    -          dependency_manager: "ruby_bundler",
    -        },
    -      ]
    -    end
    -
    -    it "reports detected" do
    -      expect(manual.detected?).to eq(true)
    -    end
    -
    -    it "lists the given dependencies" do
    -      deps = manual.dependencies
    -      expect(deps.length).to eq(2)
    -      expect(deps.first.name).to eq("logstash-websocket-plugin")
    -      expect(deps.first.license).to eq("MIT")
    -      expect(deps.first.version).to eq("1.1.1")
    -      expect(deps.first.dep_mgr_name).to eq("logstash_plugin")
    -      expect(deps.first.license_files.first).to end_with("fixtures/manual/random/LICENSE")
    -      expect(deps.last.name).to eq("elasticsearch")
    -      expect(deps.last.license_files.first).to end_with("fixtures/manual/random/COPYING")
    -      expect(deps.last.dep_mgr_name).to eq("ruby_bundler")
    -    end
    -  end
    -
    -  describe "given dependencies in non-array form" do
    -    let(:manual_licenses) do
    -      {
    -        name: "logstash-websocket-plugin",
    -        version: "1.1.1",
    -        license: "MIT",
    -        license_files: ["LICENSE"],
    -      }
    -    end
    -
    -    it "reports detected" do
    -      expect(manual.detected?).to eq(true)
    -    end
    -
    -    it "raises error while listing dependencies" do
    -      expect { manual.dependencies }.to raise_error(LicenseScout::Exceptions::InvalidManualDependency, /should be an Array/)
    -    end
    -  end
    -
    -  describe "given dependencies that contain unknown keys" do
    -    let(:manual_licenses) do
    -      [
    -        {
    -          name: "logstash-websocket-plugin",
    -          version: "1.1.1",
    -          license: "MIT",
    -          license_files: ["LICENSE"],
    -          unknown: "foo",
    -        },
    -      ]
    -    end
    -
    -    it "reports detected" do
    -      expect(manual.detected?).to eq(true)
    -    end
    -
    -    it "raises error while listing dependencies" do
    -      expect { manual.dependencies }.to raise_error(LicenseScout::Exceptions::InvalidManualDependency, /Key 'unknown' is not supported/)
    -    end
    -  end
    -
    -end
    diff --git a/spec/license_scout/dependency_manager/mix_spec.rb b/spec/license_scout/dependency_manager/mix_spec.rb
    new file mode 100644
    index 00000000..87b6568f
    --- /dev/null
    +++ b/spec/license_scout/dependency_manager/mix_spec.rb
    @@ -0,0 +1,100 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::DependencyManager::Mix do
    +
    +  let(:directory) { "/some/random/directory" }
    +  let(:subject) { described_class.new(directory) }
    +
    +  let(:mix_lock_path) { File.join(directory, "mix.lock") }
    +
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
    +  end
    +
    +  describe "#name" do
    +    it "equals 'elixir_mix'" do
    +      expect(subject.name).to eql("elixir_mix")
    +    end
    +  end
    +
    +  describe "#type" do
    +    it "equals 'elixir'" do
    +      expect(subject.type).to eql("elixir")
    +    end
    +  end
    +
    +  describe "#signature" do
    +    it "equals 'mix.lock file'" do
    +      expect(subject.signature).to eql("mix.lock file")
    +    end
    +  end
    +
    +  describe "#install_command" do
    +    it "returns 'mix deps'" do
    +      expect(subject.install_command).to eql("mix deps.get")
    +    end
    +  end
    +
    +  describe "#detected?" do
    +    let(:mix_lock_exists) { true }
    +
    +    before do
    +      expect(File).to receive(:exist?).with(mix_lock_path).and_return(mix_lock_exists)
    +    end
    +
    +    context "when mix.lock exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
    +    end
    +
    +    context "when mix.lock is missing" do
    +      let(:mix_lock_exists) { false }
    +
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
    +    end
    +  end
    +
    +  describe "#dependencies", :vcr do
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "mix") }
    +
    +    it "returns an array of Dependencies found in the directory" do
    +      dependencies = subject.dependencies
    +
    +      # Make sure we have the right count
    +      expect(dependencies.length).to eq(4)
    +
    +      earmark = dependencies.find { |d| d.name == "earmark" }
    +      ex_doc = dependencies.find { |d| d.name == "ex_doc" }
    +
    +      expect(earmark.version).to eq("1.2.5")
    +      expect(earmark.license.records.first.id).to eql("Apache-2.0")
    +      expect(earmark.license.records.first.source).to eql("README.md")
    +
    +      expect(ex_doc.version).to eq("0.18.3")
    +      expect(ex_doc.license.records.first.id).to be_nil
    +      expect(ex_doc.license.records.first.source).to eql("LICENSE")
    +      expect(ex_doc.license.records[1].id).to eql("Apache-2.0")
    +      expect(ex_doc.license.records[1].source).to eql("https://hex.pm/api/packages/ex_doc")
    +    end
    +  end
    +end
    diff --git a/spec/license_scout/dependency_manager/npm_spec.rb b/spec/license_scout/dependency_manager/npm_spec.rb
    index ade65724..a2fc1f78 100644
    --- a/spec/license_scout/dependency_manager/npm_spec.rb
    +++ b/spec/license_scout/dependency_manager/npm_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,87 +15,98 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/npm"
    -require "license_scout/overrides"
    -require "license_scout/options"
    +RSpec.describe LicenseScout::DependencyManager::Npm do
     
    -RSpec.describe(LicenseScout::DependencyManager::NPM) do
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  subject(:npm) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    +  let(:node_modules_path) { File.join(directory, "node_modules") }
     
    -  let(:overrides) { LicenseScout::Overrides.new(exclude_default: true) }
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
    +  end
     
    -  let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "npm") }
    +  describe "#name" do
    +    it "equals 'nodejs_npm'" do
    +      expect(subject.name).to eql("nodejs_npm")
    +    end
    +  end
     
    -  it "has a name" do
    -    expect(npm.name).to eq("js_npm")
    +  describe "#type" do
    +    it "equals 'nodejs'" do
    +      expect(subject.type).to eql("nodejs")
    +    end
       end
     
    -  it "has a project directory" do
    -    expect(npm.project_dir).to eq(project_dir)
    +  describe "#signature" do
    +    it "equals 'node_modules directory'" do
    +      expect(subject.signature).to eql("node_modules directory")
    +    end
       end
     
    -  describe "when run in a non-npm project dir" do
    +  describe "#install_command" do
    +    it "returns 'npm install'" do
    +      expect(subject.install_command).to eql("npm install")
    +    end
    +  end
     
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "no_dependency_manager") }
    +  describe "#detected?" do
    +    let(:node_modules_exists) { true }
     
    -    it "does not detect the project" do
    -      expect(npm.detected?).to eq(false)
    +    before do
    +      expect(File).to receive(:exist?).with(node_modules_path).and_return(node_modules_exists)
         end
     
    -  end
    +    context "when node_modules exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
    +    end
     
    -  describe "when run in a npm project dir" do
    +    context "when node_modules is missing" do
    +      let(:node_modules_exists) { false }
     
    -    it "does detects the project" do
    -      expect(npm.detected?).to eq(true)
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
         end
    +  end
    +
    +  describe "#dependencies", :vcr do
    +    let(:directory) { File.join(SPEC_FIXTURES_DIR, "npm") }
     
         # npm recursively nests dependencies, make sure we find them.
         it "detects all transitive dependencies" do
    -      expect(npm.dependencies.size).to eq(102)
    +      expect(subject.dependencies.size).to eql(102)
     
           # spec/fixtures/npm/node_modules/node-sass/node_modules/meow/package.json
    -      meow = npm.dependencies.find { |d| d.name == "meow" }
    +      meow = subject.dependencies.find { |d| d.name == "meow" }
           expect(meow).to_not be_nil
         end
     
         it "dedups dependencies only if they are the same version" do
    -      dependencies = npm.dependencies
    +      dependencies = subject.dependencies
           minimist_info = dependencies.select { |d| d.name == "minimist" }
           minimist_info.sort! { |a, b| a.version <=> b.version }
     
           # There are 4 copies of minimist at different versions, after de-dup
           # on version there should only be 3. (`find spec/fixtures/npm -name minimist`)
    -      expect(minimist_info.size).to eq(3)
    -      expect(minimist_info[0].version).to eq("0.0.10")
    -      expect(minimist_info[1].version).to eq("0.0.8")
    -      expect(minimist_info[2].version).to eq("1.2.0")
    +      expect(minimist_info.size).to eql(3)
    +      expect(minimist_info[0].version).to eql("0.0.10")
    +      expect(minimist_info[1].version).to eql("0.0.8")
    +      expect(minimist_info[2].version).to eql("1.2.0")
         end
     
         it "detects dependencies with license files and license metadata" do
    -      angular = npm.dependencies.find { |d| d.name == "angular" }
    -      expect(angular.version).to eq("1.4.12")
    -      expect(angular.license).to eq("MIT")
    -      expected_license_path = File.join(SPEC_FIXTURES_DIR, "npm/node_modules/angular/LICENSE.md")
    -      expect(angular.license_files).to eq([expected_license_path])
    -    end
    +      angular = subject.dependencies.find { |d| d.name == "angular" }
     
    -    # rc 1.1.6
    -    it "handles licenses with multiple license options" do
    -      rc_1_1_6 = npm.dependencies.find do |d|
    -        d.name == "rc" && d.version == "1.1.6"
    -      end
    -
    -      # RC lets you pick any of these:
    -      # BSD-2-Clause OR MIT OR Apache-2.0
    -      #
    -      # We choose Apache 2.0 because it's what we use for our own stuff.
    -      expect(rc_1_1_6.license).to eq("Apache-2.0")
    +      expect(angular.version).to eql("1.4.12")
    +      expect(angular.license.records.first.id).to eql("MIT")
    +      expect(angular.license.records.first.parsed_expression).to eql(["MIT"])
    +      expect(angular.license.records[0].source).to eql("LICENSE.md")
    +      expect(angular.license.records[1].source).to eql("package.json")
         end
     
         # The SPDX license format that npm uses allows packages to specify multiple
    @@ -103,137 +114,43 @@
         # standard syntax, we just pass it through, and let higher level tooling
         # (like omnibus) decide how to handle it.
         it "handles licenses with multiple combined license terms" do
    -      spdx_expression_parse = npm.dependencies.find do |d|
    +      spdx_expression_parse = subject.dependencies.find do |d|
             d.name == "spdx-expression-parse"
           end
    -      expect(spdx_expression_parse.version).to eq("1.0.3")
    -      expect(spdx_expression_parse.license).to eq("MIT AND CC-BY-3.0")
    -    end
    -
    -    it "detects dependencies with license metadata but no license files" do
    -      assert_plus_1_0_0 = npm.dependencies.find do |d|
    -        d.name == "assert-plus" && d.version = "1.0.0"
    -      end
    -      expect(assert_plus_1_0_0.license).to eq("MIT")
    -      expect(assert_plus_1_0_0.license_files).to eq([])
    -    end
     
    -    it "detects dependencies with license files but no metadata" do
    -      asn1 = npm.dependencies.find do |d|
    -        d.name == "asn1" && d.version == "0.1.11"
    -      end
    -      rel_path = "npm/node_modules/node-sass/node_modules/asn1/LICENSE"
    -      expected_path = File.join(SPEC_FIXTURES_DIR, rel_path)
    -      expect(asn1.version).to eq("0.1.11")
    -      expect(asn1.license).to be_nil
    -      expect(asn1.license_files).to eq([expected_path])
    -    end
    +      expect(spdx_expression_parse.version).to eql("1.0.3")
    +      expect(spdx_expression_parse.license.records.map(&:id)).to eq(["MIT", "(MIT AND CC-BY-3.0)"])
    +      expect(spdx_expression_parse.license.records[1].parsed_expression).to eql(["MIT", "CC-BY-3.0"])
    +      expect(spdx_expression_parse.license.records[0].source).to eql("LICENSE")
    +      expect(spdx_expression_parse.license.records[1].source).to eql("package.json")
     
    -    it "detects dependencies with no license info" do
    -      ansi = npm.dependencies.find { |d| d.name == "ansi" }
    -      expect(ansi.version).to eq("0.3.0")
    -      expect(ansi.license).to be_nil
    -      expect(ansi.license_files).to eq([])
         end
     
    -    describe "with default overrides enabled" do
    -
    -      let(:overrides) { LicenseScout::Overrides.new() }
    -
    -      before do
    -        allow(LicenseScout::NetFetcher).to receive(:new).and_call_original
    -        allow(LicenseScout::NetFetcher).to receive(:cache) do |url|
    -          LicenseScout::NetFetcher.new(url).cache_path
    -        end
    -      end
    -
    -      it "fixes up dependencies with license metadata but no license files" do
    -        assert_plus_1_0_0 = npm.dependencies.find do |d|
    -          d.name == "assert-plus" && d.version = "1.0.0"
    -        end
    -        expect(assert_plus_1_0_0.license).to eq("MIT")
    -
    -        rel_path = "npm/node_modules/assert-plus/README.md"
    -        expected_path = File.join(SPEC_FIXTURES_DIR, rel_path)
    -        expect(assert_plus_1_0_0.license_files).to eq([expected_path])
    -      end
    -
    -      it "fixes up dependencies with license files but no metadata" do
    -        asn1 = npm.dependencies.find do |d|
    -          d.name == "asn1" && d.version == "0.1.11"
    -        end
    -        rel_path = "npm/node_modules/node-sass/node_modules/asn1/LICENSE"
    -        expected_path = File.join(SPEC_FIXTURES_DIR, rel_path)
    -        expect(asn1.version).to eq("0.1.11")
    -        expect(asn1.license).to eq("MIT")
    -        expect(asn1.license_files).to eq([expected_path])
    +    it "detects dependencies with license metadata but no license files" do
    +      assert_plus_1_0_0 = subject.dependencies.find do |d|
    +        d.name == "assert-plus" && d.version == "0.2.0"
           end
     
    +      expect(assert_plus_1_0_0.license.records.first.id).to eql("MIT")
    +      expect(assert_plus_1_0_0.license.records.first.source).to eql("package.json")
         end
     
    -    describe "when only license files are overridden." do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "js_npm", "assert-plus" do |version|
    -            {
    -              license_files: [ "package.json" ], # this is the only file we have in all versions
    -            }
    -          end
    -        end
    -      end
    -
    -      it "only uses license file overrides and reports the original license" do
    -        assert_plus_1_0_0 = npm.dependencies.find do |d|
    -          d.name == "assert-plus" && d.version = "0.2.0"
    -        end
    -        expect(assert_plus_1_0_0.license).to eq("MIT")
    -
    -        rel_path = "npm/node_modules/assert-plus/package.json"
    -        expected_path = File.join(SPEC_FIXTURES_DIR, rel_path)
    -        expect(assert_plus_1_0_0.license_files).to eq([ expected_path ])
    +    it "detects dependencies with license files but no metadata" do
    +      asn1 = subject.dependencies.find do |d|
    +        d.name == "asn1" && d.version == "0.1.11"
           end
     
    +      expect(asn1.version).to eql("0.1.11")
    +      expect(asn1.license.records.first.id).to eql("MIT")
    +      expect(asn1.license.records.first.source).to eql("LICENSE")
         end
     
    -    describe "when correct overrides are provided." do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "js_npm", "assert-plus" do |version|
    -            {
    -              license: "Apache",
    -              license_files: [ "package.json" ], # this is the only file we have in all versions
    -            }
    -          end
    -        end
    -      end
    -
    -      it "uses the given overrides" do
    -        assert_plus_1_0_0 = npm.dependencies.find do |d|
    -          d.name == "assert-plus" && d.version = "1.0.0"
    -        end
    -        expect(assert_plus_1_0_0.license).to eq("Apache")
    -
    -        rel_path = "npm/node_modules/assert-plus/package.json"
    -        expected_path = File.join(SPEC_FIXTURES_DIR, rel_path)
    -        expect(assert_plus_1_0_0.license_files).to eq([ expected_path ])
    -      end
    +    it "detects dependencies with no license info" do
    +      ansi = subject.dependencies.find { |d| d.name == "ansi" }
     
    +      expect(ansi.version).to eql("0.3.0")
    +      expect(ansi.license.records).to be_empty
         end
     
    -    describe "when overrides with missing license file paths are provided" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "js_npm", "assert-plus" do |version|
    -            {
    -              license_files: [ "this-file-isnt-here" ],
    -            }
    -          end
    -        end
    -      end
    -
    -      it "raises an error" do
    -        expect { npm.dependencies }.to raise_error(LicenseScout::Exceptions::InvalidOverride)
    -      end
    -    end
       end
     end
    diff --git a/spec/license_scout/dependency_manager/rebar_spec.rb b/spec/license_scout/dependency_manager/rebar_spec.rb
    index 38f6fe86..8bb14a7c 100644
    --- a/spec/license_scout/dependency_manager/rebar_spec.rb
    +++ b/spec/license_scout/dependency_manager/rebar_spec.rb
    @@ -1,12 +1,12 @@
     #
    -# Copyright:: Copyright 2016, Chef Software Inc.
    +# Copyright:: Copyright 2018 Chef Software, Inc.
     # License:: Apache License, Version 2.0
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
     # you may not use this file except in compliance with the License.
     # You may obtain a copy of the License at
     #
    -#     http://www.apache.org/licenses/LICENSE-2.0
    +#     http://www.apache.org/licenses/LICENSE-2.0
     #
     # Unless required by applicable law or agreed to in writing, software
     # distributed under the License is distributed on an "AS IS" BASIS,
    @@ -15,110 +15,111 @@
     # limitations under the License.
     #
     
    -require "license_scout/dependency_manager/rebar"
    -require "license_scout/overrides"
    -require "license_scout/options"
    -
    -RSpec.describe(LicenseScout::DependencyManager::Rebar) do
    -
    -  let(:dependency_git_shas) do
    -    {
    -      "amqp_client"             => "7622ad8093a41b7288a1aa44dd16d3e92ce8f833",
    -      "automeck"                => "363657b4dff5ef5561e77a7d44348abf11405d09",
    -      "bcrypt"                  => "820283b0d329368f298afd22038340c888689a39",
    -      "bear"                    => "119234548783af19b8ec75c879c5062676b92571",
    -      "chef_authn"              => "e7850d0925b01761d8085ee8b44dafbbe1b297a4",
    -      "darklaunch"              => "05881cb04e9393ab42b6fac3b22803130ef2701c",
    -      "edown"                   => "30a9f7867d615af45783235faa52742d11a9348e",
    -      "ej"                      => "132a9a3c0662a2377eaf7ebee694a496a0957160",
    -      "envy"                    => "e6ba39664a1016ed309ea44269247943de2eb16b",
    -      "eper"                    => "80e7cd6446d26d2423f2acd37253826bb3152964",
    -      "epgsql"                  => "cdb859d0d54fc4bed2107fd3d197bc7ea815958f",
    -      "erlware_commons"         => "2e23e43079686ddb68bfca772d37f78dfe4dd95e",
    -      "folsom"                  => "38e2cce7c64ce1f0a3a918d90394cfc0a940b1ba",
    -      "folsom_graphite"         => "d4ce9bf02c025ca559d18abc084c367bf4deaf3f",
    -      "gen_bunny"               => "fe10af39cd4ad8de7a8d6a0d90f79ea73e788761",
    -      "gen_server2"             => "992650004c81ee921183488cb8115de4777e7bd9",
    -      "goldrush"                => "71e63212f12c25827e0c1b4198d37d5d018a7fec",
    -      "ibrowse"                 => "8f3f6a3a30730b193cc340a8885a960586dc98de",
    -      "jiffy"                   => "2f405e2b9ae3c2a9cf59ab10179c3262cf4aff03",
    -      "lager"                   => "d33ccf3b69de09a628fe38b4d7981bb8671b8a4f",
    -      "meck"                    => "8de4a66bfd33d05f090b930b4e90d64b89b6e9cb",
    -      "mini_s3"                 => "1cf296868077caefa6791f4996145a369c49091b",
    -      "mixer"                   => "58ded93d5c47675899d8e5e1589270f340ea66c5",
    -      "mochiweb"                => "ade2a9b29a11034eb550c1d79b4f991bf5ca05ba",
    -      "neotoma"                 => "760928ec8870da02eb11bccb501e2700925d06c6",
    -      "opscoderl_folsom"        => "d493429f895a904e9fd86d12a68f7075dfa8e227",
    -      "opscoderl_httpc"         => "2f0e99cadbe80b5c728109ff669a5efb164ab79e",
    -      "opscoderl_wm"            => "64db62e070da58cf7bb0caebde7a3f11c2e3cbbb",
    -      "pooler"                  => "7bb8ab83c6f60475e6ef8867d3d5afa0b1dd4013",
    -      "quickrand"               => "0395a10b94472ccbe38b62bbfa9d0fc1ddac1dd7",
    -      "rabbit_common"           => "4388fe57cb63872f5fcf3a2670b4f05de657a64b",
    -      "rebar_lock_deps_plugin"  => "7a5835029c42b8138325405237ea7e8516a84800",
    -      "rebar_vsn_plugin"        => "fd40c960c7912193631d948fe962e1162a8d1334",
    -      "sqerl"                   => "17d8d95dbb644d20af3ab7dc19d04dab14e4bed5",
    -      "stats_hero"              => "ff000415e5ca71d7ffcfea15153bd696a386455a",
    -      "sync"                    => "ae7dbd4e6e2c08d77d96fc4c2bc2b6a3b266492b",
    -      "uuid"                    => "f7c141c8359cd690faba0d2684b449a07db8e915",
    -      "webmachine"              => "7677c240f4a7ed020f4bab48278224966bb42311",
    -    }
    -  end
    +RSpec.describe LicenseScout::DependencyManager::Rebar do
     
    -  subject(:rebar) do
    -    described_class.new(project_dir, LicenseScout::Options.new(
    -      overrides: overrides
    -    ))
    -  end
    +  let(:subject) { described_class.new(directory) }
    +  let(:directory) { "/some/random/directory" }
     
    -  let(:tmpdir) { Dir.mktmpdir }
    +  let(:rebar_config_path) { File.join(directory, "rebar.config") }
     
    -  let(:overrides) do
    -    o = LicenseScout::Overrides.new(exclude_default: true)
    -    # delete the default erlang overrides
    -    o.override_rules.delete("erlang_rebar")
    -    o
    +  describe ".new" do
    +    it "creates new instance of a dependency manager" do
    +      expect(subject.directory).to eql(directory)
    +    end
       end
     
    -  let(:project_dir) { File.join(tmpdir, "rebar_project") }
    +  describe "#name" do
    +    it "equals 'erlang_rebar'" do
    +      expect(subject.name).to eql("erlang_rebar")
    +    end
    +  end
     
    -  after do
    -    FileUtils.rm_rf(tmpdir)
    +  describe "#type" do
    +    it "equals 'erlang'" do
    +      expect(subject.type).to eql("erlang")
    +    end
       end
     
    -  it "has a name" do
    -    expect(rebar.name).to eq("erlang_rebar")
    +  describe "#signature" do
    +    it "equals 'rebar.config file'" do
    +      expect(subject.signature).to eql("rebar.config file")
    +    end
       end
     
    -  it "has a project directory" do
    -    expect(rebar.project_dir).to eq(project_dir)
    +  describe "#install_command" do
    +    it "returns 'rebar get-deps'" do
    +      expect(subject.install_command).to eql("rebar get-deps")
    +    end
       end
     
    -  describe "when provided a rebar project" do
    +  describe "#detected?" do
    +    let(:rebar_config_exists) { true }
    +
         before do
    -      Dir.mkdir(project_dir)
    -      FileUtils.touch(File.join(project_dir, "rebar.config"))
    +      expect(File).to receive(:exist?).with(rebar_config_path).and_return(rebar_config_exists)
         end
     
    -    it "detects a rebar project correctly" do
    -      expect(rebar.detected?).to eq(true)
    +    context "when rebar.config exists" do
    +      it "returns true" do
    +        expect(subject.detected?).to be true
    +      end
         end
    -  end
     
    -  describe "when provided a non-rebar project" do
    -    before do
    -      Dir.mkdir(project_dir)
    -    end
    +    context "when rebar.config is missing" do
    +      let(:rebar_config_exists) { false }
     
    -    it "does not detect the project" do
    -      expect(rebar.detected?).to eq(false)
    +      it "returns false" do
    +        expect(subject.detected?).to be false
    +      end
         end
       end
     
    -  describe "when provided a real rebar project" do
    -
    -    let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "rebar") }
    +  describe "#dependencies" do
    +
    +    let(:dependency_git_shas) do
    +      {
    +        "amqp_client"             => "7622ad8093a41b7288a1aa44dd16d3e92ce8f833",
    +        "automeck"                => "363657b4dff5ef5561e77a7d44348abf11405d09",
    +        "bcrypt"                  => "820283b0d329368f298afd22038340c888689a39",
    +        "bear"                    => "119234548783af19b8ec75c879c5062676b92571",
    +        "chef_authn"              => "e7850d0925b01761d8085ee8b44dafbbe1b297a4",
    +        "darklaunch"              => "05881cb04e9393ab42b6fac3b22803130ef2701c",
    +        "edown"                   => "30a9f7867d615af45783235faa52742d11a9348e",
    +        "ej"                      => "132a9a3c0662a2377eaf7ebee694a496a0957160",
    +        "envy"                    => "e6ba39664a1016ed309ea44269247943de2eb16b",
    +        "eper"                    => "80e7cd6446d26d2423f2acd37253826bb3152964",
    +        "epgsql"                  => "cdb859d0d54fc4bed2107fd3d197bc7ea815958f",
    +        "erlware_commons"         => "2e23e43079686ddb68bfca772d37f78dfe4dd95e",
    +        "folsom"                  => "38e2cce7c64ce1f0a3a918d90394cfc0a940b1ba",
    +        "folsom_graphite"         => "d4ce9bf02c025ca559d18abc084c367bf4deaf3f",
    +        "gen_bunny"               => "fe10af39cd4ad8de7a8d6a0d90f79ea73e788761",
    +        "gen_server2"             => "992650004c81ee921183488cb8115de4777e7bd9",
    +        "goldrush"                => "71e63212f12c25827e0c1b4198d37d5d018a7fec",
    +        "ibrowse"                 => "8f3f6a3a30730b193cc340a8885a960586dc98de",
    +        "jiffy"                   => "2f405e2b9ae3c2a9cf59ab10179c3262cf4aff03",
    +        "lager"                   => "d33ccf3b69de09a628fe38b4d7981bb8671b8a4f",
    +        "meck"                    => "8de4a66bfd33d05f090b930b4e90d64b89b6e9cb",
    +        "mini_s3"                 => "1cf296868077caefa6791f4996145a369c49091b",
    +        "mixer"                   => "58ded93d5c47675899d8e5e1589270f340ea66c5",
    +        "mochiweb"                => "ade2a9b29a11034eb550c1d79b4f991bf5ca05ba",
    +        "neotoma"                 => "760928ec8870da02eb11bccb501e2700925d06c6",
    +        "opscoderl_folsom"        => "d493429f895a904e9fd86d12a68f7075dfa8e227",
    +        "opscoderl_httpc"         => "2f0e99cadbe80b5c728109ff669a5efb164ab79e",
    +        "opscoderl_wm"            => "64db62e070da58cf7bb0caebde7a3f11c2e3cbbb",
    +        "pooler"                  => "7bb8ab83c6f60475e6ef8867d3d5afa0b1dd4013",
    +        "quickrand"               => "0395a10b94472ccbe38b62bbfa9d0fc1ddac1dd7",
    +        "rabbit_common"           => "4388fe57cb63872f5fcf3a2670b4f05de657a64b",
    +        "rebar_lock_deps_plugin"  => "7a5835029c42b8138325405237ea7e8516a84800",
    +        "rebar_vsn_plugin"        => "fd40c960c7912193631d948fe962e1162a8d1334",
    +        "sqerl"                   => "17d8d95dbb644d20af3ab7dc19d04dab14e4bed5",
    +        "stats_hero"              => "ff000415e5ca71d7ffcfea15153bd696a386455a",
    +        "sync"                    => "ae7dbd4e6e2c08d77d96fc4c2bc2b6a3b266492b",
    +        "uuid"                    => "f7c141c8359cd690faba0d2684b449a07db8e915",
    +        "webmachine"              => "7677c240f4a7ed020f4bab48278224966bb42311",
    +      }
    +    end
     
    -    def mock_git_rev_parse_for(name, sha, cwd: File.join(project_dir, "deps", name))
    +    def mock_git_rev_parse_for(name, sha, cwd: File.join(directory, "deps", name))
           mock = instance_double("Mixlib::ShellOut")
     
           allow(Mixlib::ShellOut).to receive(:new).
    @@ -130,131 +131,62 @@ def mock_git_rev_parse_for(name, sha, cwd: File.join(project_dir, "deps", name))
           allow(mock).to receive(:stdout).and_return("#{sha}\n")
         end
     
    -    def expand_fixture_path(relpath)
    -      File.join(project_dir, relpath)
    -    end
    -
         before do
           dependency_git_shas.each do |name, sha|
             mock_git_rev_parse_for(name, sha)
           end
         end
     
    -    it "detects the licenses of the transitive dependencies correctly" do
    -      deps = rebar.dependencies
    -      expect(deps.size).to eq(dependency_git_shas.size)
    -
    -      expected_names = dependency_git_shas.keys
    -
    -      expect(deps.map(&:name)).to match_array(expected_names)
    -
    -      deps.each do |dep|
    -        expect(dep.version).to eq(dependency_git_shas[dep.name])
    -      end
    -
    -      # Make sure we detected all of the license types, except for bcrypt,
    -      # bcrypt's license file is non-standard:
    -      deps_with_license_files = deps.select { |d| !d.license_files.empty? }
    -      expect(deps_with_license_files.size).to eq(29)
    -
    -      undetected_licenses = deps_with_license_files.select { |d| d.license.nil? }
    -      expect(undetected_licenses.size).to eq(1)
    -      expect(undetected_licenses.first.name).to eq("bcrypt")
    +    context "when given a real rebar project" do
    +      let(:directory) { File.join(SPEC_FIXTURES_DIR, "rebar") }
     
    -      # Spot check some licenses:
    -      ej = deps.find { |d| d.name == "ej" }
    -      expect(ej.license_files).to eq([expand_fixture_path("deps/ej/LICENSE")])
    -      expect(ej.license).to eq("Apache-2.0")
    +      it "returns an array of Dependencies found in the directory" do
    +        deps = subject.dependencies
    +        expect(deps.size).to eq(dependency_git_shas.size)
     
    -      gen_bunny = deps.find { |d| d.name == "gen_bunny" }
    -      expect(gen_bunny.license_files).to eq([expand_fixture_path("deps/gen_bunny/LICENSE")])
    -      expect(gen_bunny.license).to eq("MIT")
    +        expected_names = dependency_git_shas.keys
     
    -      bcrypt = deps.find { |d| d.name == "bcrypt" }
    -      expect(bcrypt.license_files).to eq([expand_fixture_path("deps/bcrypt/LICENSE")])
    -      expect(bcrypt.license).to be_nil
    -    end
    +        expect(deps.map(&:name)).to match_array(expected_names)
     
    -    describe "when only license files are overridden." do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "erlang_rebar", "ej" do |version|
    -            {
    -              license_files: [ "Makefile" ], # pick any file from ej
    -            }
    -          end
    +        deps.each do |dep|
    +          expect(dep.version).to eql(dependency_git_shas[dep.name])
             end
    -      end
     
    -      it "only uses license file overrides and reports the original license" do
    -        dependencies = rebar.dependencies
    -        expect(dependencies.length).to eq(38)
    +        # Make sure we detected all of the license types, except for bcrypt,
    +        # bcrypt's license file is non-standard:
    +        deps_with_license_files = deps.select { |d| !d.license.records.empty? }
    +        expect(deps_with_license_files.size).to eql(31)
     
    -        ej = dependencies.find { |d| d.name == "ej" }
    -        expect(ej.version).to eq("132a9a3c0662a2377eaf7ebee694a496a0957160")
    +        undetected_licenses = deps_with_license_files.select { |d| d.license.records.first.id.nil? }
    +        expect(undetected_licenses.size).to eql(6)
    +        expect(undetected_licenses.map(&:name)).to include("bcrypt")
     
    -        # We detect license type from the license file. This is applied before
    -        # we scan the licenses. Since we set the license file to a file that's
    -        # not a license in this test, we should not detect its type
    -        expect(ej.license).to be_nil
    -        expect(ej.license_files.length).to eq(1)
    -        expect(ej.license_files.first).to eq(expand_fixture_path("deps/ej/Makefile"))
    -      end
    -    end
    +        # Spot check some licenses:
    +        ej = deps.find { |d| d.name == "ej" }
    +        expect(ej.license.records.first.id).to eql("Apache-2.0")
    +        expect(ej.license.records.first.source).to eql("LICENSE")
     
    -    describe "when overrides for both license file and type are given" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "erlang_rebar", "ej" do |version|
    -            {
    -              license: "example-license",
    -              license_files: [ "Makefile" ],
    -            }
    -          end
    -        end
    -      end
    +        gen_bunny = deps.find { |d| d.name == "gen_bunny" }
    +        expect(gen_bunny.license.records.first.id).to eql("MIT")
    +        expect(gen_bunny.license.records.first.source).to eql("LICENSE")
     
    -      it "uses the given overrides" do
    -        dependencies = rebar.dependencies
    -        expect(dependencies.length).to eq(38)
    -
    -        ej = dependencies.find { |d| d.name == "ej" }
    -        expect(ej.version).to eq("132a9a3c0662a2377eaf7ebee694a496a0957160")
    -        expect(ej.license).to eq("example-license")
    -        expect(ej.license_files.length).to eq(1)
    -        expect(ej.license_files.first).to eq(expand_fixture_path("deps/ej/Makefile"))
    +        bcrypt = deps.find { |d| d.name == "bcrypt" }
    +        expect(bcrypt.license.records.first.id).to be_nil
    +        expect(bcrypt.license.records.first.source).to eql("LICENSE")
           end
         end
     
    -    describe "when overrides with missing license file paths are provided" do
    -      let(:overrides) do
    -        LicenseScout::Overrides.new(exclude_default: true) do
    -          override_license "erlang_rebar", "ej" do |version|
    -            {
    -              license: "Apache",
    -              license_files: [ "NOPE-LICENSE" ],
    -            }
    -          end
    -        end
    -      end
    -
    -      it "raises an error" do
    -        expect { rebar.dependencies }.to raise_error(LicenseScout::Exceptions::InvalidOverride)
    -      end
    -    end
    -
    -    describe "as in an automated build" do
    -
    -      let(:project_dir) { File.join(SPEC_FIXTURES_DIR, "rebar_from_build") }
    +    context "when given a build directory" do
    +      let(:directory) { File.join(SPEC_FIXTURES_DIR, "rebar_from_build") }
           let(:expected_rebar_lock_json_output) { '{"bifrost":{"type":"git","level":0,"git_url":"https:\/\/github.com\/chef\/bifrost-yeah-not-really","git_ref":"9e47ba9fc8a31aa2a4f9317de69b677fa34eb17e"},"edown":{"type":"git","level":0,"git_url":"https:\/\/github.com\/uwiger\/edown.git","git_ref":"754be25f71a04099c83f3ffdff268e70beeb0021"},"mochiweb":{"type":"pkg","level":0,"pkg_name":"mochiweb","pkg_version":"2.12.2","pkg_hash":"087467DE5833C0BB5B3CCDD387F9E9C1FB816A75B7A709629BF24B5ED3246C51"}}' }
     
           def mock_rebar_lock_json
             rebar_lock_json_path = File.expand_path("../../../bin/rebar_lock_json", File.dirname(__FILE__))
    -        rebar_lock_path = File.join(project_dir, "rebar.lock")
    +        rebar_lock_path = File.join(directory, "rebar.lock")
             mock = instance_double("Mixlib::ShellOut")
     
             allow(Mixlib::ShellOut).to receive(:new).
    -          with("#{rebar_lock_json_path} #{rebar_lock_path}", environment: {}).
    +          with("#{LicenseScout::Config.escript_bin} #{rebar_lock_json_path} #{rebar_lock_path}", environment: {}).
               and_return(mock)
     
             allow(mock).to receive(:run_command)
    @@ -266,43 +198,36 @@ def mock_rebar_lock_json
             mock_rebar_lock_json
             mock_git_rev_parse_for(
               "edown", "30a9f7867d615af45783235faa52742d11a9348e",
    -          cwd: File.join(project_dir, "_build/default/lib/edown")
    +          cwd: File.join(directory, "_build/default/lib/edown")
             )
             mock_git_rev_parse_for(
               "eper",
               "43e0442863df9f713a5c88c9b43062b806d96adb",
    -          cwd: File.join(project_dir, "_build/default/lib/eper")
    +          cwd: File.join(directory, "_build/default/lib/eper")
             )
           end
     
    -      it "discovers the license information correctly" do
    -        dependencies = rebar.dependencies
    -        expect(dependencies.length).to eq(3)
    +      it "returns an array of Dependencies found in the directory" do
    +        dependencies = subject.dependencies
    +        expect(dependencies.length).to eql(3)
     
             bifrost = dependencies.find { |d| d.name == "bifrost" }
             expect(bifrost).to be_nil
     
             mochiweb = dependencies.find { |d| d.name == "mochiweb" }
    -        expect(mochiweb.license).to eq("MIT")
    -        expect(mochiweb.version).to eq("2.12.2")
    -        expect(mochiweb.license_files.length).to eq(1)
    -        expect(mochiweb.license_files.first).to end_with("_build/default/lib/mochiweb/LICENSE")
    +        expect(mochiweb.version).to eql("2.12.2")
    +        expect(mochiweb.license.records.first.id).to be_nil
    +        expect(mochiweb.license.records.first.source).to eql("LICENSE")
     
             eper = dependencies.find { |d| d.name == "eper" }
    -        expect(eper.license).to eq("MIT")
             expect(eper.version).to eq("43e0442863df9f713a5c88c9b43062b806d96adb")
    -        expect(eper.license_files.length).to eq(1)
    -        expect(eper.license_files.first).to end_with("_build/default/lib/eper/COPYING")
    +        expect(eper.license.records.first.id).to eql("MIT")
    +        expect(eper.license.records.first.source).to eql("COPYING")
     
             edown = dependencies.find { |d| d.name == "edown" }
    -        expect(edown.license).to be_nil
             expect(edown.version).to eq("30a9f7867d615af45783235faa52742d11a9348e")
    -        expect(edown.license_files).to be_empty
    -
    +        expect(edown.license.records).to be_empty
           end
    -
         end
    -
       end
    -
     end
    diff --git a/spec/license_scout/dependency_manager_spec.rb b/spec/license_scout/dependency_manager_spec.rb
    new file mode 100644
    index 00000000..fe593d55
    --- /dev/null
    +++ b/spec/license_scout/dependency_manager_spec.rb
    @@ -0,0 +1,39 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::DependencyManager do
    +
    +  describe ".implementations" do
    +    let(:subject) { described_class.implementations }
    +    let(:expected_implementations) do
    +      [
    +        described_class::Berkshelf,
    +        described_class::Bundler,
    +        described_class::Cpanm,
    +        described_class::Dep,
    +        described_class::Glide,
    +        described_class::Godep,
    +        described_class::Habitat,
    +        described_class::Mix,
    +        described_class::Rebar,
    +        described_class::Npm,
    +      ]
    +    end
    +
    +    it { is_expected.to eql(expected_implementations) }
    +  end
    +end
    diff --git a/spec/license_scout/dependency_spec.rb b/spec/license_scout/dependency_spec.rb
    new file mode 100644
    index 00000000..14556d2e
    --- /dev/null
    +++ b/spec/license_scout/dependency_spec.rb
    @@ -0,0 +1,161 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::Dependency do
    +
    +  let(:name) { "artifactory" }
    +  let(:version) { "2.3.3" }
    +  let(:type) { "ruby" }
    +  let(:path) { File.join(SPEC_FIXTURES_DIR, "bundler_gems_dir", "gems", "#{name}-#{version}") }
    +
    +  let(:license) { LicenseScout::License.new }
    +
    +  let(:subject) { described_class.new(name, version, path, type) }
    +
    +  describe ".new" do
    +    context "when path is nil" do
    +      let(:path) { nil }
    +
    +      it "returns an empty license" do
    +        expect(LicenseScout::License).to receive(:new).and_return(license)
    +        expect(subject.name).to eql(name)
    +        expect(subject.version).to eql(version)
    +        expect(subject.type).to eql(type)
    +        expect(subject.path).to eql(path)
    +        expect(subject.license).to eql(license)
    +      end
    +    end
    +
    +    context "when path is an HTTP url" do
    +      let(:name) { "bundler" }
    +      let(:version) { "1.16.0" }
    +      let(:path) { "https://github.com/bundler/bundler" }
    +
    +      it "returns a complete license" do
    +        expect(LicenseScout::License).to receive(:new).with(path).and_return(license)
    +        expect(subject.name).to eql(name)
    +        expect(subject.version).to eql(version)
    +        expect(subject.type).to eql(type)
    +        expect(subject.path).to eql(path)
    +        expect(subject.license).to eql(license)
    +      end
    +    end
    +
    +    context "when path is a valid directory path" do
    +      it "returns a complete license" do
    +        expect(LicenseScout::License).to receive(:new).with(path).and_return(license)
    +        expect(subject.name).to eql(name)
    +        expect(subject.version).to eql(version)
    +        expect(subject.type).to eql(type)
    +        expect(subject.path).to eql(path)
    +        expect(subject.license).to eql(license)
    +      end
    +    end
    +
    +    context "when path is an invalid directory path" do
    +      let(:path) { "invalid-path" }
    +
    +      it "raises an error" do
    +        expect { subject }.to raise_error(LicenseScout::Exceptions::MissingSourceDirectory, /Could not find the source for '#{name}'/)
    +      end
    +    end
    +
    +    context "when there is a fallback license specified for the dependency", :vcr do
    +      let(:license_file) { "https://raw.githubusercontent.com/bundler/bundler/master/LICENSE.md" }
    +
    +      before do
    +        LicenseScout::Config.fallbacks.ruby = [{
    +          "name" => name,
    +          "license_id" => "MIT",
    +          "license_file" => license_file,
    +        }]
    +      end
    +
    +      it "includes that license" do
    +        expect(LicenseScout::License).to receive(:new).with(path).and_return(license)
    +        expect(license).to receive(:add_license).with("MIT", "license_scout fallback", license_file, force: true)
    +        expect(subject.name).to eql(name)
    +        expect(subject.version).to eql(version)
    +        expect(subject.type).to eql(type)
    +        expect(subject.path).to eql(path)
    +        expect(subject.license).to eql(license)
    +      end
    +    end
    +  end
    +
    +  describe "#uid" do
    +    it "returns the identifying string" do
    +      expect(subject.uid).to eql("#{name} (#{version})")
    +    end
    +  end
    +
    +  describe "#uid_regexp" do
    +    it "matches the various forms of the UID" do
    +      expect(subject.uid_regexp.match?("#{name}")).to be true
    +      expect(subject.uid_regexp.match?("#{name} (#{version})")).to be true
    +      expect(subject.uid_regexp.match?("other-dep (other-version)")).to be false
    +    end
    +  end
    +
    +  describe "#has_exception?" do
    +    context "when dependency has exceptions" do
    +      before do
    +        LicenseScout::Config.exceptions.ruby = [{ "name" => name }]
    +      end
    +
    +      it "returns true" do
    +        expect(subject.has_exception?).to be true
    +      end
    +    end
    +
    +    context "when dependency has no exceptions" do
    +      it "returns false" do
    +        expect(subject.has_exception?).to be false
    +      end
    +    end
    +  end
    +
    +  describe "#exception_reason" do
    +    context "when there is no exception" do
    +      it "returns nil" do
    +        expect(subject.exception_reason).to be_nil
    +      end
    +    end
    +
    +    context "when there is an exception but no reason" do
    +      before do
    +        LicenseScout::Config.exceptions.ruby = [{ "name" => name }]
    +      end
    +
    +      it "returns nil" do
    +        expect(subject.exception_reason).to be_nil
    +      end
    +    end
    +
    +    context "when there is an exception with a reason" do
    +      let(:reason) { "Reason why there is an exception" }
    +      before do
    +        LicenseScout::Config.exceptions.ruby = [{ "name" => name, "reason" => reason }]
    +      end
    +
    +      it "returns the reason" do
    +        expect(subject.exception_reason).to eql(reason)
    +      end
    +    end
    +  end
    +
    +end
    diff --git a/spec/license_scout/exceptions_spec.rb b/spec/license_scout/exceptions_spec.rb
    deleted file mode 100644
    index 47157550..00000000
    --- a/spec/license_scout/exceptions_spec.rb
    +++ /dev/null
    @@ -1,38 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "license_scout/exceptions"
    -
    -RSpec.describe(LicenseScout::Exceptions) do
    -
    -  it "ProjectDirectoryMissing is raiseable" do
    -    expect(LicenseScout::Exceptions::ProjectDirectoryMissing.new("/path/to/project").to_s).to be_a(String)
    -  end
    -
    -  it "UnsupportedProjectType is raiseable" do
    -    expect(LicenseScout::Exceptions::UnsupportedProjectType.new("/path/to/project").to_s).to be_a(String)
    -  end
    -
    -  it "UnsupportedProjectType is raiseable" do
    -    expect(LicenseScout::Exceptions::UnsupportedProjectType.new("/path/to/project").to_s).to be_a(String)
    -  end
    -
    -  it "NetworkError is raiseable" do
    -    expect(LicenseScout::Exceptions::NetworkError.new("http://problematic.url.com/", StandardError.new).to_s).to be_a(String)
    -  end
    -
    -end
    diff --git a/spec/license_scout/license_file_analyzer_spec.rb b/spec/license_scout/license_file_analyzer_spec.rb
    deleted file mode 100644
    index d03869b1..00000000
    --- a/spec/license_scout/license_file_analyzer_spec.rb
    +++ /dev/null
    @@ -1,66 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "license_scout/license_file_analyzer"
    -
    -RSpec.describe(LicenseScout::LicenseFileAnalyzer) do
    -
    -  def license_file(basename)
    -    IO.read(File.join(SPEC_FIXTURES_DIR, "license_analyzer_licenses", basename))
    -  end
    -
    -  it "detects an unmodified Apache 2.0 License" do
    -    expect(described_class.find_by_text(license_file("ej-apache2-license")).short_name).to eq("Apache-2.0")
    -  end
    -
    -  it "detects the short version of the Apache 2.o License" do
    -    expect(described_class.find_by_text(license_file("hoax-apache2-short")).short_name).to eq("Apache-2.0")
    -  end
    -
    -  # This one is missing the last 2 lines of the standard file
    -  it "detects the Apache 2.0 license in spf13/afero" do
    -    expect(described_class.find_by_text(license_file("spf13-afero-apache2")).short_name).to eq("Apache-2.0")
    -  end
    -
    -  it "detects a MIT license with copyright holder filled in" do
    -    expect(described_class.find_by_text(license_file("eper-mit")).short_name).to eq("MIT")
    -  end
    -
    -  it "detects a BSD 3 clause license with copyright holder filled in and possessive changed" do
    -    # This is the line that is tricky to match:
    -    # > Neither the name of Will Glozer nor the names of his contributors may be
    -    # > used to endorse or promote products derived from this software without
    -    # > specific prior written permission.
    -    expect(described_class.find_by_text(license_file("epgsql-bsd-3-clause")).short_name).to eq("BSD-3-Clause")
    -  end
    -
    -  it "detects a BSD 3 clause license with the 3 clauses as paragraphs w/o bullet points" do
    -    expect(described_class.find_by_text(license_file("recon-bsd-3-clause-alt-format")).short_name).to eq("BSD-3-Clause")
    -  end
    -
    -  it "detects a BSD 2 clause license which is the 3 clause version with the third clause deleted" do
    -    expect(described_class.find_by_text(license_file("esaml-bsd-2-clause")).short_name).to eq("BSD-2-Clause")
    -  end
    -
    -  it "detects gen_smtp's 2 clause BSD" do
    -    expect(described_class.find_by_text(license_file("gen_smtp-BSD-2-clause")).short_name).to eq("BSD-2-Clause")
    -  end
    -
    -  it "detects an Erlang Public License" do
    -    expect(described_class.find_by_text(license_file("gproc-eplicense")).short_name).to eq("Erlang-Public")
    -  end
    -end
    diff --git a/spec/license_scout/license_spec.rb b/spec/license_scout/license_spec.rb
    new file mode 100644
    index 00000000..b0a180a9
    --- /dev/null
    +++ b/spec/license_scout/license_spec.rb
    @@ -0,0 +1,94 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +# A good portion of this module is tested by the DependencyManager tests. These
    +# tests just cover the condition cases.
    +
    +RSpec.describe LicenseScout::License do
    +
    +  let(:spdx) { "Apache-2.0" }
    +  let(:source) { "LICENSE" }
    +
    +  let(:dependency_path) { File.join(SPEC_FIXTURES_DIR, "empty_project") }
    +  let(:apache_license_content) { File.read(File.join(SPEC_FIXTURES_DIR, "empty_project", "LICENSE")) }
    +  let(:record) { described_class::Record.new(spdx, source, apache_license_content) }
    +
    +  before do
    +    allow(described_class::Record).to receive(:new).with(spdx, source, apache_license_content).and_return(record)
    +  end
    +
    +  describe ".new" do
    +    let(:subject) { described_class.new(dependency_path) }
    +
    +    context "when path is nil" do
    +      let(:dependency_path) { nil }
    +
    +      it "returns an empty License record" do
    +        expect(subject.project).to be_nil
    +        expect(subject.records).to be_empty
    +      end
    +    end
    +
    +    context "when path is a URL or directory path" do
    +      it "returns a hydrated License record" do
    +        expect(subject.project).to be_a(Licensee::Projects::FSProject)
    +        expect(subject.records).to eql([record])
    +      end
    +    end
    +  end
    +
    +  describe "#is_allowed?" do
    +    let(:subject) { described_class.new(dependency_path).is_allowed? }
    +    let(:allowed_licenses) { [] }
    +
    +    before do
    +      LicenseScout::Config.allowed_licenses = allowed_licenses
    +    end
    +
    +    context "when all of the licenses is allowed" do
    +      let(:allowed_licenses) { [spdx, "MIT"] }
    +      it { is_expected.to be true }
    +    end
    +
    +    context "when at least one of the licenses is not allowed" do
    +      let(:allowed_licenses) { ["MIT"] }
    +
    +      it { is_expected.to be false }
    +    end
    +  end
    +
    +  describe "#is_flagged?" do
    +    let(:subject) { described_class.new(dependency_path).is_flagged? }
    +    let(:flagged_licenses) { [] }
    +
    +    before do
    +      LicenseScout::Config.flagged_licenses = flagged_licenses
    +    end
    +
    +    context "when at least one of the licenses is flagged" do
    +      let(:flagged_licenses) { [spdx] }
    +
    +      it { is_expected.to be true }
    +    end
    +
    +    context "when all of the licenses are not flagged" do
    +      let(:flagged_licenses) { ["MIT"] }
    +
    +      it { is_expected.to be false }
    +    end
    +  end
    +end
    diff --git a/spec/license_scout/net_fetcher_spec.rb b/spec/license_scout/net_fetcher_spec.rb
    deleted file mode 100644
    index 362f7370..00000000
    --- a/spec/license_scout/net_fetcher_spec.rb
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "tmpdir"
    -require "fileutils"
    -
    -require "license_scout/net_fetcher"
    -
    -RSpec.describe(LicenseScout::NetFetcher) do
    -
    -  let(:tmpdir) { Dir.mktmpdir }
    -
    -  before do
    -    allow(described_class).to receive(:new).and_call_original
    -    FileUtils.rm_rf(fetcher.cache_dir)
    -  end
    -
    -  after do
    -    FileUtils.rm_rf(tmpdir)
    -  end
    -
    -  subject(:fetcher) { described_class.new(url) }
    -
    -  let(:url) { "https://chef-license-spec.s3.amazonaws.com/README" }
    -  let(:expected_download_content) do
    -    <<-EOS
    -This folder and file is being used for testing by the following project:
    -
    -https://github.com/chef/license_scout
    -
    -Please do not delete!
    -EOS
    -  end
    -
    -  let(:expected_cache_path) { fetcher.cache_path }
    -
    -  it "has a cache directory and cache path" do
    -    expect(fetcher.cache_dir).to be_a(String)
    -    expect(fetcher.cache_path).to end_with(File.basename(url))
    -  end
    -
    -  describe "static methods" do
    -
    -    it "detects whether a String is a URI or not" do
    -      expect(described_class.remote?("https://foo.example/path/to/License.txt")).to be(true)
    -      expect(described_class.remote?("License.txt")).to be(false)
    -      expect(described_class.remote?("/full/path/to/License.txt")).to be(false)
    -      expect(described_class.remote?("relative/path/to/License.txt")).to be(false)
    -    end
    -
    -  end
    -
    -  describe "when the file on the internet is accessible" do
    -
    -    it "puts the file in the cache" do
    -      fetcher.fetch!
    -      expect(File).to exist(expected_cache_path)
    -      expect(File.read(expected_cache_path)).to eq(expected_download_content)
    -    end
    -
    -    describe "convenience method for fetching and returning the cache path" do
    -
    -      it "fetches the file and returns the path" do
    -        returned_cache_path = described_class.cache(url)
    -        expect(returned_cache_path).to eq(expected_cache_path)
    -        expect(File.read(returned_cache_path)).to eq(expected_download_content)
    -      end
    -
    -    end
    -
    -    context "when the cache already contains the file" do
    -
    -      before do
    -        FileUtils.mkdir_p(File.dirname(fetcher.cache_path))
    -        FileUtils.touch(fetcher.cache_path)
    -      end
    -
    -      it "picks the cache from the file" do
    -        expect(fetcher).not_to receive(:open)
    -        fetcher.fetch!
    -      end
    -    end
    -
    -  end
    -
    -  describe "when the file on the internet is not accessible" do
    -
    -    let(:success_after_count) { 5 }
    -
    -    before do
    -      @call_count = 0
    -      original_open = fetcher.method(:open)
    -
    -      allow(fetcher).to receive(:open) do |url, options, &block|
    -        if @call_count == success_after_count
    -          original_open.call(url, options, &block)
    -        else
    -          @call_count += 1
    -          raise Errno::ENETUNREACH.new
    -        end
    -      end
    -    end
    -
    -    it "raises an error after 3 retries" do
    -      expect { fetcher.fetch! }.to raise_error(LicenseScout::Exceptions::NetworkError)
    -      # open will be called 4 times in total, first call + 3 retries
    -      expect(@call_count).to eq(4)
    -    end
    -
    -    context "when the error is temporary" do
    -      let(:success_after_count) { 2 }
    -
    -      it "fetches the file" do
    -        fetcher.fetch!
    -        expect(File).to exist(expected_cache_path)
    -        expect(File.read(expected_cache_path)).to eq(expected_download_content)
    -      end
    -    end
    -  end
    -
    -end
    diff --git a/spec/license_scout/options_spec.rb b/spec/license_scout/options_spec.rb
    deleted file mode 100644
    index 82f206e8..00000000
    --- a/spec/license_scout/options_spec.rb
    +++ /dev/null
    @@ -1,102 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "license_scout/options"
    -
    -RSpec.describe(LicenseScout::Options) do
    -
    -  subject(:options) do
    -    described_class.new(input_parameters)
    -  end
    -
    -  let(:input_parameters) { {} }
    -
    -  it "has an option for overrides with default of an Overrides class" do
    -    o = options.overrides
    -    expect(o).to be_a(LicenseScout::Overrides)
    -    expect(o.license_for("ruby_bundler", "sfl", "1.0.0")).to eq("Ruby")
    -  end
    -
    -  it "has an option for environment with default of empty hash" do
    -    expect(options.environment).to eq({})
    -  end
    -
    -  it "has an option for ruby_bin with default of nil" do
    -    expect(options.ruby_bin).to eq(nil)
    -  end
    -
    -  context "with :overrides input" do
    -    let(:input_parameters) do
    -      {
    -        overrides: LicenseScout::Overrides.new do
    -          override_license "special_packager", "chef" do |version|
    -            {
    -              license: "CUSTOM",
    -            }
    -          end
    -        end,
    -      }
    -    end
    -
    -    it "can set the overrides" do
    -      expect(options.overrides.license_for("special_packager", "chef", "1.0.0")).to eq("CUSTOM")
    -    end
    -  end
    -
    -  context "with :environment input" do
    -    let(:input_parameters) do
    -      {
    -        environment: {
    -          "PATH" => "/path/to/happiness",
    -        },
    -      }
    -    end
    -
    -    it "can set the environment" do
    -      expect(options.environment["PATH"]).to eq("/path/to/happiness")
    -    end
    -  end
    -
    -  context "with :ruby_bin input" do
    -    let(:input_parameters) do
    -      {
    -        ruby_bin: "c:/opscode/chef/embedded/bin/ruby",
    -      }
    -    end
    -
    -    it "can set the ruby_bin" do
    -      expect(options.ruby_bin).to eq("c:/opscode/chef/embedded/bin/ruby")
    -    end
    -  end
    -
    -  context "with :manual_licenses input" do
    -    let(:input_parameters) do
    -      {
    -        manual_licenses: [
    -          {
    -            license: "MIT",
    -          },
    -        ],
    -      }
    -    end
    -
    -    it "can set the manual_licenses" do
    -      expect(options.manual_licenses.first[:license]).to eq("MIT")
    -    end
    -  end
    -
    -end
    diff --git a/spec/license_scout/overrides_spec.rb b/spec/license_scout/overrides_spec.rb
    deleted file mode 100644
    index 8499c534..00000000
    --- a/spec/license_scout/overrides_spec.rb
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "license_scout/overrides"
    -
    -RSpec.describe(LicenseScout::Overrides::OverrideLicenseSet) do
    -
    -  let(:override_license_set) { described_class.new(license_locations) }
    -
    -  let(:dep_dir) { File.join(SPEC_FIXTURES_DIR, "test_licenses") }
    -
    -  context "when created with an empty array" do
    -
    -    let(:license_locations) { [] }
    -
    -    it "has no license locations" do
    -      expect(override_license_set.license_locations).to eq([])
    -    end
    -
    -    it "resolves the license locations to an empty array" do
    -      expect(override_license_set.resolve_locations(dep_dir)).to eq([])
    -    end
    -
    -    it "is empty" do
    -      expect(override_license_set).to be_empty
    -    end
    -  end
    -
    -  context "when created with nil" do
    -
    -    let(:license_locations) { nil }
    -
    -    it "has no license locations" do
    -      expect(override_license_set.license_locations).to eq([])
    -    end
    -
    -    it "resolves the license locations to an empty array" do
    -      expect(override_license_set.resolve_locations(dep_dir)).to eq([])
    -    end
    -
    -    it "is empty" do
    -      expect(override_license_set).to be_empty
    -    end
    -  end
    -
    -  context "when created with a license location" do
    -
    -    context "when override license files are relative paths" do
    -
    -      context "and the license exists" do
    -
    -        let(:license_locations) { [ "BSD-LICENSE" ] }
    -
    -        it "resolves the full path to the license" do
    -          expected_path = File.join(dep_dir, "BSD-LICENSE")
    -          expect(override_license_set.resolve_locations(dep_dir)).to eq( [ expected_path ] )
    -        end
    -
    -      end
    -
    -      context "and the license file doesn't exist" do
    -
    -        let(:license_locations) { [ "NOPE-LICENSE" ] }
    -
    -        it "raises InvalidOverride" do
    -          expect { override_license_set.resolve_locations(dep_dir) }.
    -            to raise_error(LicenseScout::Exceptions::InvalidOverride)
    -        end
    -
    -      end
    -
    -    end
    -
    -    context "when override license files are remote" do
    -
    -      let(:url) { "https://content.example/project/LICENSE.txt" }
    -
    -      let(:cache_path) { "/var/cache/licenses/foo/LICENSE.txt" }
    -
    -      let(:license_locations) { [ url ] }
    -
    -      it "fetches the license file from the web and gives the cached path" do
    -        expect(LicenseScout::NetFetcher).to receive(:cache).with(url).and_return(cache_path)
    -        expect(override_license_set.resolve_locations(dep_dir)).to eq([cache_path])
    -      end
    -
    -    end
    -  end
    -end
    -
    -RSpec.describe(LicenseScout::Overrides) do
    -
    -  subject(:overrides) do
    -    LicenseScout::Overrides.new() do
    -      override_license "test_dep_manager", "example1" do |version|
    -        {
    -          license: "BSD",
    -          license_files: [ "BSD-LICENSE" ],
    -        }
    -      end
    -    end
    -  end
    -
    -  it "contains default overrides for ruby_bundler" do
    -    expect(overrides.license_for("ruby_bundler", "pry-remote", "1.0.0")).to eq("MIT")
    -  end
    -
    -  context "when an override exists for a dependency" do
    -    it "finds the license for a given dependency manager, dep name, and dep version" do
    -      expect(overrides.license_for("test_dep_manager", "example1", "1.0.0")).to eq("BSD")
    -    end
    -
    -    it "finds the license files for a given dep manager name, dep name and dep version" do
    -      set = overrides.license_files_for("test_dep_manager", "example1", "1.0.0")
    -      expect(set.license_locations).to eq(["BSD-LICENSE"])
    -    end
    -
    -  end
    -
    -  context "when an override doesn't exist for a dependency" do
    -    it "returns nil for the dependency's license" do
    -      expect(overrides.license_for("test_dep_manager", "example99", "1.0.0")).to eq(nil)
    -    end
    -
    -    it "returns an empty license set" do
    -      expect(overrides.license_files_for("test_dep_manager", "example99", "1.0.0")).to be_empty
    -    end
    -  end
    -
    -  context "when no overrides exist for the given dependency manager" do
    -    it "returns nil for the dependency's license" do
    -      expect(overrides.license_for("nope_dep_manager", "example99", "1.0.0")).to eq(nil)
    -    end
    -
    -    it "return an empty array for the dependency's license files" do
    -      expect(overrides.license_files_for("nope_dep_manager", "example99", "1.0.0")).to be_empty
    -    end
    -  end
    -
    -  describe "#default_overrides" do
    -    let(:overrides) { LicenseScout::Overrides.new() }
    -
    -    it "doesn't pull license info from non-raw github URLs" do
    -      overrides.override_rules.each do |dep_manager, library_map|
    -        library_map.each_key do |library_name|
    -          license_files = overrides.license_files_for(dep_manager, library_name, nil)
    -          if license_files.license_locations.any? { |location| location.include?("(\/\/|www\.)github.com") }
    -            fail "You must use raw.githubusercontent.com instead of github.com for overrides. \n" +
    -                 "Dependency type: #{dep_manager}\nDependency name: #{library_name}\nLicense location: #{license_files.license_locations}"
    -          end
    -        end
    -      end
    -    end
    -  end
    -end
    diff --git a/spec/license_scout/reporter_spec.rb b/spec/license_scout/reporter_spec.rb
    deleted file mode 100644
    index dbb044ec..00000000
    --- a/spec/license_scout/reporter_spec.rb
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -#
    -# Copyright:: Copyright 2016, Chef Software Inc.
    -# License:: Apache License, Version 2.0
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -#
    -
    -require "license_scout/reporter"
    -
    -RSpec.describe(LicenseScout::Reporter) do
    -  subject(:reporter) do
    -    described_class.new(output_directory)
    -  end
    -
    -  describe "with a non-existing output directory" do
    -    let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "not_exists") }
    -
    -    it "raises reporting error" do
    -      expect { reporter.report }.to raise_error(LicenseScout::Exceptions::InvalidOutputReport, /does not exist/)
    -    end
    -  end
    -
    -  describe "with an invalid output directory" do
    -    describe "no manifest" do
    -
    -      let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "output_no_manifest") }
    -
    -      it "raises reporting error" do
    -        expect { reporter.report }.to raise_error(LicenseScout::Exceptions::InvalidOutputReport, /Can not find a dependency license manifest/)
    -      end
    -    end
    -
    -    describe "multiple manifests" do
    -      let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "output_multiple_manifests") }
    -
    -      it "raises reporting error" do
    -        expect { reporter.report }.to raise_error(LicenseScout::Exceptions::InvalidOutputReport, /Found multiple manifests/)
    -      end
    -    end
    -
    -  end
    -
    -  describe "with a licensing report without errors" do
    -    let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "output_no_errors") }
    -
    -    it "reports no issues" do
    -      expect(reporter.report).to be_empty
    -    end
    -  end
    -
    -  describe "with a licensing file with metadata errors" do
    -    let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "output_metadata_errors") }
    -    let(:expected_errors) do
    -      [
    -        "There is a dependency with a missing name in 'ruby_bundler'.",
    -        "Dependency 'appbundler' under 'ruby_bundler' is missing version information.",
    -        "Dependency 'bundler' version '1.12.5' under 'ruby_bundler' is missing license information.",
    -        "Dependency 'pry' version '0.12.2' under 'ruby_bundler' is missing license files information.",
    -      ]
    -    end
    -
    -    let(:expected_summary) do
    -      ">> Found 4 dependencies for ruby_bundler. 0 OK, 4 with problems"
    -    end
    -
    -    let(:expected_report) do
    -      expected_errors + [ expected_summary ]
    -    end
    -
    -    it "reports the errors" do
    -      report = reporter.report
    -
    -      expect(report.length).to eq(expected_report.length)
    -      expected_errors.each do |error|
    -        expect(report).to include(error)
    -      end
    -      expect(report.last).to eq(expected_summary)
    -    end
    -  end
    -
    -  describe "with a licensing file with missing license files" do
    -    let(:output_directory) { File.join(SPEC_FIXTURES_DIR, "output_missing_files") }
    -    let(:expected_errors) do
    -      [
    -        "License file 'ruby_bundler-mixlib-cli-1.7.0-LICENSE' for the dependency 'mixlib-cli' version '1.7.0' under 'ruby_bundler' is missing.",
    -        "License file 'ruby_bundler-appbundler-0.9.0-LICENSE.txt' for the dependency 'appbundler' version '0.9.0' under 'ruby_bundler' is missing.",
    -      ]
    -    end
    -
    -    let(:expected_summary) do
    -      ">> Found 3 dependencies for ruby_bundler. 1 OK, 2 with problems"
    -    end
    -
    -    let(:expected_report) do
    -      expected_errors + [ expected_summary ]
    -    end
    -
    -    it "reports the errors" do
    -      report = reporter.report
    -
    -      expect(report.length).to eq(expected_report.length)
    -      expected_errors.each do |error|
    -        expect(report).to include(error)
    -      end
    -      expect(report.last).to eq(expected_summary)
    -    end
    -  end
    -
    -end
    diff --git a/spec/license_scout/spdx_spec.rb b/spec/license_scout/spdx_spec.rb
    new file mode 100644
    index 00000000..8bef92ca
    --- /dev/null
    +++ b/spec/license_scout/spdx_spec.rb
    @@ -0,0 +1,63 @@
    +#
    +# Copyright:: Copyright 2018 Chef Software, Inc.
    +# License:: Apache License, Version 2.0
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +
    +RSpec.describe LicenseScout::SPDX do
    +
    +  describe ".find" do
    +
    +    context "for special cases" do
    +      it "handles the special cases" do
    +        described_class.send(:special_cases).each do |input, spdx|
    +          expect(described_class.find(input)).to eql(spdx)
    +        end
    +      end
    +    end
    +
    +    context "for valid SPDX IDs" do
    +      it "passes them right through" do
    +        described_class.known_ids.each do |spdx|
    +          expect(described_class.find(spdx)).to eql(spdx)
    +        end
    +      end
    +    end
    +
    +    context "for valid SPDX names" do
    +      it "returns the corresponding SPDX ID" do
    +        described_class.send(:licenses).reject { |l| l["isDeprecatedLicenseId"] }.each do |l|
    +          expect(described_class.find(l["name"])).to eql(l["licenseId"])
    +        end
    +      end
    +    end
    +
    +    context "when force is passed" do
    +      let(:license_id) { "Some custom license, probably specified as a fallback" }
    +
    +      it "returns the license ID as is" do
    +        expect(described_class.find(license_id, force: true)).to eql(license_id)
    +      end
    +    end
    +  end
    +
    +  describe ".parse" do
    +    it "breaks up mutli-license strings into individual licenses" do
    +      expect(described_class.parse("(MIT AND Apache-2.0)")).to eql(["MIT", "Apache-2.0"])
    +      expect(described_class.parse("MIT")).to eql(["MIT"])
    +      expect(described_class.parse("FOO AND BAR")).to eql(%w{FOO BAR})
    +    end
    +  end
    +
    +end
    diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
    index 47580fa6..b4fc93ab 100644
    --- a/spec/spec_helper.rb
    +++ b/spec/spec_helper.rb
    @@ -17,7 +17,16 @@
     #
     # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
     
    -require "license_scout/net_fetcher"
    +require "vcr"
    +require "license_scout"
    +
    +SPEC_FIXTURES_DIR = File.expand_path("fixtures", File.dirname(__FILE__))
    +
    +VCR.configure do |config|
    +  config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
    +  config.hook_into :webmock
    +  config.configure_rspec_metadata!
    +end
     
     RSpec.configure do |config|
       # rspec-expectations config goes here. You can use an alternate
    @@ -50,38 +59,6 @@
       # triggering implicit auto-inclusion in groups with matching metadata.
       config.shared_context_metadata_behavior = :apply_to_host_groups
     
    -
    -  # Global before each: prevent network calls via NetFetcher
    -  # By default LicenseScout::Overrides contains the default set of overrides,
    -  # any of which can configure the system to fetch a license file from the
    -  # Internet (usually github) for a particular dependency. When real project
    -  # names are used as test data/fixtures for dependency manager unit tests,
    -  # this can result in license files being grabbed from the Internet and stored
    -  # in the license scout cache. In addition to being bad hygiene for unit
    -  # tests, this can make the code behave differently than test authors
    -  # expected. Therefore, we block all attempts to create a NetFetcher at the
    -  # suite level.
    -  #
    -  # In general, when testing a dependency manager, the right thing to do is to
    -  # disable the default overrides when creating the `LicenseScout::Overrides`
    -  # object, like so:
    -  #
    -  # ```
    -  # LicenseScout::Overrides.new(exclude_default: true)
    -  # ```
    -  #
    -  # This can be disabled for a particular test or set of tests
    -  # with code like:
    -  #
    -  # ```
    -  # allow(LicenseScout::NetFetcher).to receive(:new).and_call_original
    -  # ```
    -  #
    -  config.before do
    -    allow(LicenseScout::NetFetcher).to receive(:new).
    -      and_raise("Network calls should be avoided. Maybe you forgot to pass `exclude_default: true` when creating the Overrides object?")
    -  end
    -
       # This allows you to limit a spec run to individual examples or groups
       # you care about by tagging them with `:focus` metadata. When nothing
       # is tagged with `:focus`, all examples get run. RSpec also provides
    @@ -112,7 +89,7 @@
         # Use the documentation formatter for detailed output,
         # unless a formatter has already been configured
         # (e.g. via a command-line flag).
    -    config.default_formatter = 'doc'
    +    config.default_formatter = "doc"
       end
     
       # Print the 10 slowest examples and example groups at the
    @@ -131,6 +108,8 @@
       # test failures related to randomization by passing the same `--seed` value
       # as the one that triggered the failure.
       Kernel.srand config.seed
    -end
     
    -SPEC_FIXTURES_DIR = File.expand_path("fixtures", File.dirname(__FILE__))
    +  config.after(:example) do
    +    LicenseScout::Config.reset
    +  end
    +end
    

    KT{}U9O&Kv9rfw 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ⅇX+54nh$z~IL%8Fw8$xOWOEW?~B&~mJ7=17xqAJ%7l?O%~cL8Jqq z4A4;MZ}XEZv*<@k*bC6O4zSP!Z1hnsX-bsC#yS~lrG;y>hm>&SZ*0qHQ{ii@f?8}u zvM>bRPk^|#679L#N^q;FhYBzYEf>Na#dBD#K!{S9b(K!x6`6|&PKp&E7qf79`+o*$*RKt zs@y4g+&+oFB@j=54W1b#{+y#@(c(eMl4BlXE)>laMY##fN`M=Jz<#OxtKbM;B+Sk| zpVT%Y=z-+b8IQUfye8+FWBnpxme$dH9?WeR+a4X{{tv}|C##Krj%Cb*8F=LAEDKou zt;Zinl+=$^y}qgru1GiT3ybbZHm!0+2^|RM8AxY{MFyCj0V}xA%PcNp@ue<5GMpPD+M4!)LJc*BBvi+rRSP0i#F!BX4!JRS!9R&CF#EwIT zuFs^~@*?l`?%!^sN^s)`Q^%YJq&A1FV+?6a_`Z~d=XX|a+yjFxNM^dUfXKHR)Bpv` z7mMK3jkujKEF9fhSvMa+M{yxbI|kAO?&({1Vz7IuM1H|Q{$fBU0>swaaZNae+lUHS zUsrh*b&~;MUdxg29Ln;g!MOyvSp_0+vHx@ig(_fu={dfos2!OSOSHMz-d@(@ggZ!e3YZ ziWuJ2}nWQ4Os^buQA1lx?-J9y>hs#8Gk=&Th1yKz>0v*xLZ&hUUpQeBa{< zI$cczo;h+84lNpTC%DH2hii#*+ZuY;!}HWn)yO&S9eOp!KAr@i8^D&wYY@haUU%ai zDMOfh0Qv>KYEN7KuFN7e{K!|SFSGIjAa=`|rk;b0&q8p=+I!Cm=$?+?o^E$s>GWL@ z(VnS~`P@=;SP|*j>jZ;SgSFcVXDj76v9EFlT!`YOe~3$LIX48({{_&(*vLoLn|OLC zk#UsB4!b2qr@H6FSQ99d{&r{CL*q(wv+Q@eu2<5OE#8$aUPDju#B}Q8-*UeLEfm$w z^w!>64c+)Ga7crxTfv|&>i+yrm{n`fyKw^838eU_5g!PAml6@q$^+8urk{k{;tbgY z*Zj7llG<#2U{nCq3v$IjV&5pwfb-oF6$##f<;^Z-8mp@cGkPl2zOPd}WTMU`U*0s% zYLc@B&!cmio1CjgM~7a{Pgnkv1cX6t3)FeME|TRl^;8&AMeRq(lm^F^rPjf9pv^w8 z;dAYL_y4@?XT=5S0R-@ZN}8FqWZ8+p3EkW4^_mr*PaHr_PKK(sjjVEB^%VcSLf>B_MV0<>bW=HyEd!0!7p$Q>WhfK z-fkjQ9Pe+xb+WV@C|-*GTr=%;sosRXV4dXeVMFpDJK!OD{LsQdw@_otg*O5P zy4qSqd#{mw5(+ggX~v!*eE0_pVz;SYNJ>?*!#@E1-xHL|)kA%$RS$o^sJ5iFwb@-A zl=fMQ?0bH*eBQx6NmgDrZeNUlc143~;{D#jN!jMQuiqQ3{=V0I2fuwkZGH#u`W=js z==0sm`!V$0@G|u+|BmOi`X+F3e5UcZFm#r#Yw`NX`*}du&HWuY;;Qpjp7Px7TmJ2N zK3d!T_;J!GMgFb0ZQAt_-g^ADZT3Ca`~4oB-Em)B?F2tOTAyc7LmTD%!2VzTo`aytw`G5}C{y{e9IFzPYWe)4Jtxuwhz1dHuos ziT*v;`H1HY%yf_ap=;{>%uiD+rf1?DskdaxTA%FGP<1Ep_t+3IR5>VJ@wIlW49a(J?sGL zbETV*^vy%FM+PqDmqG9?f=e15L(ecuk4cnGluf2ftV=)_qZ=a|BOAv{dL6?{!20TV z$97JCwND6$8<+?_j~|;@J=kz6l-V%EFPnH z!2Da37AgE8j;BwIjA6v2F1R5+@PJD^_Oc+bgI{FC#@w2RZFclqJg!V_k$Xv5{LObV zH4YmD>;JBw1!&xos{d5glz!Gf9&A;N9URSVZT>aWpafC=kMT%r6;CT1QOxblA8N$9 zTW0IJ^TkRO_Y+5SxUOaPuVI;dt1Am#K^%tzjX(G&UR|1;$s6VEp6)pk&f;Hx`0xca z8YKga!|=^DW=kyGl*K6WZpaXkgn^XQXCR2b{^o$n6YQjSnma@~%&|RBvTc8K9Zy_r z%o-ZvEIUvzc;1ZgH)|ZR_wKUW=$>1Zx>cD)do9&v8Z;6b*AI>lx43X$o7AUcELaulz^$p|W;LUba#;OLA)-*K zWTYj!_J<#9Q=Ox98|7-17BFN6J~?z+DQ~E+SFP!vYi*UuzXOI(3BFpiCe_m*TB%cJ zqVxi;d$j2^(6mu$O|`zpqjcTJBSzwQ<^)kM|9uNnFH1FMM|!6l3ARYWM5-tbj-#S( z=hyxAljH8(C)g28WNKBYoe8>b$5k6k#G!(TRh~AnY+Cf-1wWovxdaLTX<~iVTc$Gm zKKY8V{2il41~Bxi{E|S?oU#Gcm&UV*Kq%2boJ*NT1t|Q{pcH`|ol37GgHyQ?F$EOA z2JxZ!;gNUEne}lqin%9U0n4e(nbWqhWwGMg)~43T+Jdr^^&{sg->`p%zJI7jZE7(? zuTy2Db!ixuLDy+Rua{E2YLKKHG<-im*MF;DYrh$c8MYzy2Y4>@&LA66Jj3&#)c%_% zHRTYNX^a3M zqmcApie90%(%e57{);jG#kRSrntzB9ib)Zc$hwNtDZ`Kwb-}TVWD@Cf(O8ViB2z=9 zb-YRWU47nnM6nD z!`YpIG&fjORq}qW5f5edo$r^$|7sEqD#0Q6$V9UfN0t6v<`E*6AdiJCC56a^#)~#< z?njO|Ve3X}rNrQSeWu;ug5H?kL~D7rqpfX|FDDk1(&+?2=XOd3h`8&bcomah7m}xT zNOD2b^Hdp>OgIlE!o+7jk_`76Mus3x8WZaeii)=IU{Y5XBiHIBFeoEHf{s*X?>@yx z!Hp_Qatyrx4owGd@LUovGBefYwhx3lIeV zHy^g1(!khG<1~oe6W3`lXD)w?y9kbAaS{*(fEeHegdvXMylBL)8MlvxqrkoNylgJF z3b2uG1+$fi!t$2Ckcg-mQ$o~1SK-tTMKsYSm3-Z;v^_Yb0m32M;tT@KiK)t+O>jse zKP;L4$!0#!Aiy-%PfETs==ZhDp9&kOia`7^{)TnjzYfR9kBWbiJvw2{`2V^+<9l;5&^=01f;6VB#ODax%2ELXG<0H`aRNwF ztve%}p9W10B6G-)I>m{fi16g5N2Q`qMwpO-PrMA|%w0nibzonrI_aFTDGIUtIuMUV zXziD5BNOgM6~mlKZ9XJ05M9ZDaT0rZ={(^9h0t67= zz7*F4;D$R1j32vtKe;6Evem!@y4f|k(Fb@gfa4|2_Xd^0j%C?QT0ek9#1?VnTKGb^ z$hnpC!Qd+$M3h~FLLsal#@AlZ2>$K;NM2`rC79-f*0J7pCc`LStVdZ9r%UU=r zE*+PhXJ5&c89sfaz20>*&$ACUgk)r0jR9&dezi$1I5+ziOBPHJ;%EA#UWI9_|ojT3umX@Uz6>7ukXH1 ziN)N@Y8X*S`k|W!P^9Xk_YY7B9vVGfh!4^;^yJY-Y+DbEWq| zmy5V8{DNV8bwegy{LA)=VDzE$B%-Lv^w1uAmC1cP{LU4w4?n-z|L2P|?WUxYVd&aO z=#?kO8pe}q9~7;A%&Ei|kyO=BKnmA{YxoP46#eK7^-Pm3UADHd^9Mbp`+2>698SCF z{!0mLO8awfd0WNDreOm2_s3#nVmMtTNEB}|+)`JPTEyp0y6x9XqVC5<1A`MerW@Hq zsIKorKk$a-$I!vG?%VA1^@ft}*2jvo!|mSp)>h?3tNgdi?(1su{ip54*@>_r6W+t; z<-!#7J{_F)>y+19CcG!yhTEZEqwCj^VYj!Jd#Uk-Yx-X1_s7O=zVBP;UA*P>*IA`6 z_w!o&X>?Tex-H7L_sgegH6BlWgXcEgx104tJ9-=MN6sa;)8z^Po9-m(&Y`k5~ItW^dI6b{F}(uX*x8k-~*K7-& z9lTG&mbQ~1vlrLL@y&bfuwngfcTjbxZICW(H}04DOXW@at|kKy>A-**{?e~?wDZWw z!68HBS~3GsgX~=m$-zPSr$Y{d%>6HTj=32Am>;F!e|GYc9#T1jerOK9Ka1?&C3bNe z#~*gE6YYQBNd6DF!P?ly>0h@KUm(AKph3L<8x3MON8IGxMnDr5I)hK1h!Ke^6e~?4 zfp1}62~KfUlrG+`?@E@LnV<$5zQ=zf2Zb9@_(u(~Lo65kmhcMzvC|{w3n<^WC)H@N zY|!8KXwq{#{dwy~yM@sm2cS9v9Xc5*z#ZU5TmX-zO=f&|H4cxtgr;tp93JP$l|i>rZOY{&I@>kfroC8Y7laXV|1VLg7Z`i{txI2|c%pbz8%@5~NN)i?o&@7bT_E z(2wdAq(0RXpSnddx0l!R)X~GVj~Tc(y@`I(tS4=w=yo+dAkDvC$bQiI`HCF&SUqv9 zwTT4cVX18(MhGO9)$EO&|8#?yC$LyF0=al7oZM6kBts}9chtMDM_h2&x+Me5sPS)+ zV*u7~%2%g>Hc#Kj*?HIoD=Ue!umh4=VSBVac&-|8uZ>6U@m0I-bXP5GfYM%;v|VY__DzuxD&~0=r|EwPuc(j zBT+{TJ&BughpOEPT3`1k9KKP@k{5l*ilgK|5@xxTU*MNF`3B|VYy#Q1L*i!TEaVIb zU9)tv=niiJ*>#O|L<^i`BvDOER^xSLNi4e^qUDF5heV&?oS9GOBd0RQz5Py4Dwjh7 zxl@w)iv2ftj)cl4O=Fw+VW>encW(C6%E%Lz%01!!)wCmIHBKYmicWWroZFgz@Ai+3 zv=R5}ox18y#1fs%m0u(kwdZQ(Z>(UZcW) zc7`}v%5DkBX*Pv29$nj=p;2hP5{)W-h zWcv0*N9s>LX}jVTnv6c;=GaMBQZw9G2xG`4Qy-&srZ~7w@Q6JdH(F28dYQhOoS?H` z4nvc^7Sk=E9ixV7&lVQJxfoiNMNfqNq_~Xjxmm ze>-MDK5i=PhC~iCc7AIDY-CJBSzRtarizgzj93#Fc4wxmIO_^lnEIfg37b$%z1g{) zhnS-gYddAJ;GzM0vE<_3ieMz#%o1j^5d2l!4dT2B1 zm>vo7p`(f0*#Yr+?}~^Im}3LPx?WGfJ*|;Zl2mt{5N}F~)r_J65o4IQ zl}?wvkgUq;3-?d_cC=TL85#U;^pH(6-i~Mg%y90EhqVk*lBaSnae)l((?-d>Pr8;JjdW$7AIrhoF#JfC7Ir!xE+CJN}CQs9~w+PHk#uMM&)paaW__vo8z+4UWbZ~5+3)6D$ zg~d6v>B-TI7)^MW{E-}^>daA$7s}ZruJ^L;qRz+SbU-DjV*RTC_JlRy&$z-o$=9fb zRGGkEA9c|}j|NngJjk&kR0~J=i;NXwe^4aJmd{7%&O+*vo0qbXhKZV&V-pyu1tT6U zAiM~$vzK46*R?5yc_l+EA>tW$)!)I-!QYB6k}uy+jS`RBkBpo+}kd99v#zX zhHy+1tIwj>FT^@>s4JG49s)FQANMBE#Z@n*&)2Knv|hH0g`v0^rde$*CDxJG&orOL z@fDBYouZ6`|9zz6)(LA8e$r zpQM+cDmYkA%`RiFUv94(aMoV#p(|C7GfFl%9yQ#?p7L2Fx&OA|xZk&izc_8&Kl*ph zM{_l~t<;?rcE3(tJSc0Ky*nJ|0Vfl6CSynYR^Y_IFZsTm6dlw4=u_r^vr)A#$0cnf zADAjd^cXe;f6OIPCH(158z`HeT>L7*?ClI6c6H7uq5DclS)b-u2l0=T2RIJtAA2vv$vpDZ-j4L-BsiFZ%U7*urZ}iM% zv_hG9Eg``WsBjnUuyz6DchBNQtcJpRcN?%nLXf4N8!VZDJaPYK*{X z(hM-e%BsO+OVkKpd4MNOwpKdX1i1+Q-0KS3Fk>v;h z{vYZNZX02grE>}A=qo$)n$>2bvzFrMG%z`)*N<*bISsPC@4`C z##w$?zM!ZwI5`5J&ys)NPV-z3XXWz{SV6Jc?Fkt{onk6(IT?79llNPJQ@L8vezkSaNPBh^m{oZ6W zq#KxGMH{i2{&=G@JNLarKSdi+s0>QkK6|oD@fZ5Vo?QrW)1Qv`&R;+@J%D)(@l|9L z%_mTYC@u1ud0Ew?nn{a47%2>pTj3EH)RG1ddBJu>MGCA1EryOe_X7KO@5{WecdT0m zy1UD_E%c24 zERsV|thNA3xMNd=n5@DyVYRlz=d#92Qkxc7aog&XpxXkL15|u8=zs_c3${=Mrk7Qs zj~|bD)b=do@l>RF08;fY=wvjDNpq`|2Z-_Khl3ZXE9(d+%(}0aloGML;t3Acw~3pG zw{lb-^WiU}s{#2h1!ZX}h_aOTYk*N9@7AV;S9j|Djq4*3*Ge;e!1>+Qc@5u`yf`Z; zXy`3CJTO@{jHn_4XA{j>5rIogp)wS;Rp!9e1^Q~w{=rU_m@1D{ZX5?DUxyN0{U`hA z)kQP{CPpF#OicU(0{}P#V3n9|Z5!7uisSs^c% z%!_6s6=Yaxkoa(5yC8*-}LZ<&qPmIW*FP{gqK6F}E@PRmUI zdvi0gTUz@1%IBt*#hJlt*xPaEY?{s1%f;{=_Bb5xaQo`Wc6*iQb#ZjQ`~~}QBC$OC zYSYv9NWbZQ7ip^{zB_zIV20xX|8rQ7;O~9CJW8M2eHa;|WnAEh$TB+eg(CC&PW!RQ zh$z$cx0CJr^E=s>8hVhwao5s@U7*fN@$Zva(uL#G(9g2%F%VUx)9&?^Z|e(ezog?F zB551%UsHQ;T&>Ujq8p)hn&97RhkjUx+Ntc{XIPgSMbtc^6xC#~bf>}FE8 zlidLNUI=0>Kf(C_yp>jl8<&v%5Nim37XH6C4{2K?=O5Fdl&zt@m7|h_zM-YD!@sr= zLio*_f5w@-tu&XNePyE=uM1xj$hgPqNLJmS;(5)~m*T~JN9yt|6_7p&BpXP4hggN> zr;)6~3SM{FOXn#mBTCfJF;>?uVMWqg#nXy@oFYs$(LmC(htX&!F@&0RRU^MG>CR1`Hs`izn?b@-OV1{qKPZJkTJRJ9{4EOsKm2sh{gXl^-8^I zwAFl?*_36}Hp3q)j7r&e#7Jp3K@-P{nbI90L3-3?NGHy-#6 zG-yjqw8haD^ZsT@OsS(I9Zyx51tylg*$tbaj8pY{ExNSIGefUh1C^yzr)GiZbz+^I ze0ixpUG=Jx%fp$pt3KPDPAuI>$P}CGY12+_?;uSaH@Z*~w?juR)p{}@&7?%_R6IQu zVB`hvCeyH@#5j)KsWDjgT!7{^O8L zmOj2l1xlixLd!~&Mp1Bs90zbL@x)RYk{bugzf zFIh1d$CmDBE-~A+N0H?4ii$r$%2c*fN^CEDSWY3ID7# zx+cp!T~rTw0A-vS6m$Y0TPoLdO1P>yM&dT*9iH%oTK{xWpnW4lT1@KL8UYme=#m>l z#Y|1nt~N4hkr+plnv-#6K{R-01bL}ZMrRt!3{Mv{7AO^vU98W&tG=(M9ePQX6c>yH z5?dRm?YBM}*9jDLIImcC`Sj<+bX%z|K`Nnz0rb&oI{7EcdYd~{sXgA0fWxhw?P281;<|`Z;~6TsdHZ)EOSV8muB$^EJ$j-_wv#uU zi_)Tf;Z0tPS6pFx=whZ|EE@QQOYcX}uAn^+Ce2!bERpSy7ks&biJ3ry7LTHBQURB3 zUvyF-ZeM^X7)ORvSykF|;FWFDJTbZL_BC{gUA-N1+`x`)FsnvTG(4g9N7#87gMsP*^@tsQHX}V_G)~;Gy6hA{F$JW& z<~3k^^TQp#{pH=H@?5=fqn^9bcsK+U?xqKYw{pD+pqihP5a5W^5*SmK$|`mh&*D16M5 z%;Rjrg()%@V$qZU6gG5?8MtB}ocS%*E03`Da-UaG+mdOCrE#4~I|Z!zh>0jQ&iM{5 zn88@im3$h;LZu;)yHoudWib}%U1u5Q8Z zrQc&-=~60A+HzniJXbL+SuI$nO0a{?r;4z$Jz2A*RX;Jb7i;h0Hh#>RBjV<(bi>`l z3+#sUwV1+oQwHM^diyf?w7mru5GxygR<@^83(+4p;aSo0qIC1(nI^*hIjPp!0>RW)%xB$3vq5i2n z?Jv7vPAz>qYv(_J{xUh4ooB2Gj^zeQ5T8z6$8;p5LYsOEhJ9^K`v?S8LEX;_{d*OG+emF5OuC5e})USh37(|@c98A(Y94>b^~YDYj_ zmd04>A+MFYw))c-u_qhTG`Bjs%OM8u=DDPHxwyp#uu=5$#zq$q%MurYx}g}h zd3yFyGxsFinp@i2un^YJ)b#$i0ac4q*&)ay&7$#nPi9vAR#*HLL#+-ASIVxS;O%^3 z`e|F^i*-obH+EU{Xa`ta^{jzk7aWdV`{f7G9YR@0FoyJ97q0BZ(6LNSwMaX^+_Va) z&h!aD{1BOTVlGcSU{s%Julh(Hb`+RBRsf`&!=Yz;xer0Y*SCtUVBe*#DC4;NVzBxn zXXg8-jp~wL>8bZ?HjiU|)pTM@w^zRbJhbRsx{5)NdD`8nRk!JG|NM9%h_i)!Ld!87 zH+7}BLrTjjO$P;nE=WXhpr3H7pxT`nozxXiRIq6S23TI3my25(UJy?$fxX@!ICJAf zXpjrSK=ABFbPEpz^072$IeF#w(5m`=vSRgt(~yJxpaLWCTat63y;h}yZmWv~Fs6c$ zZ%?JbjDInxJ}5Fh@{^wWw_z9;S5505(&(BD@KTqVup9- ze1u$P=yEOJlSzXA7Ecj?zi=MMK+In4CUPCbkb}IZO2KKK5&R0gmxE4MjowfRHFg;I z6$(rwqC?v66L{NhrUJH{v+Slh9o8da#b2 z_#AnF#SG-T4~H254!pyC#1?U;7vWAaH{wiTz?BWqZy$;SV#|p{e`IPuo56ML_6>I% z(+Fuz4##=e)*_fKLg@D~6i_dd^VaqP@IlV6hW)_z;{-`ahchk2TLnChNBr~8~qU{Ma9<>oHLQtrbYGT2Uj z*tp=c$T2)-h-7iaV`ttL?&RBe6Q2=cI%clh1QbsALJ*7$#Ar;eb2}sG@Ej0dFn)Q5 zRD}$eamxfTNAC6FGEOSfO36RAEiC`CYukmhj z87AL!5itA7zV*6BO>le!V^N-ydl+GFM z%f;sjFxv8vom_+b)aL6WZ>hgx5*VU&q=Njk#xbg&QJ<29{o1e*%Mr_^dDDJ?HuLqn zUB6EP7j8Abac*a@QDA9qcNP1VS`T5x{obxI5c87--nLV<_XpqWpI=}7d&E9cOLQvI z`yQSjotb{zFSYAg-E_T=&375|KUZqu3EcGjkImfgA^jgO!gD!(o;AK#>rGSF)Gxh0 zlUMt{OSM01I$GYLZd zeXmL{Zy9j?Zu>XmcE0{`iL-HaI0(LX2kAeA4=2{QeIM;OySLw;`d>z;()RxMufzTK zez%ib-HQ(Ne~iBw7ARVut7|oFbFHkEwc|Ii|DN=+uO0^3fr^PT$bcZgeoze*47}%J z|KfhfyT1N7OTHTfXeB5~%+UxMwBJGi6cQKrJY@jt!8l~4bbm7H8Q zO8X%;XFK2Rds`T*_TO-xE!L;!^!ohKIe>Fn%#+lUJ)Hzkx0R}Tw|*;?CWJ3tD)W@-Mla_b<9#q{J%`VHHDMTs_nM;N}w!KPOl`J)?|WGJfL3D?S`t z8e|!4W|gEk|9tXe{4Kx0@Mvehu@~%Qv^WJn1zwvf%(6S?0Wdg&GvujT+_dW@t-1F#NNi{ABSmZ^smzX zFYc!aO!j}kbGc}?7C5GFy*i6Jb-gdPi|k)^AB~eLT{UWxvB3p`8et(F#ObWIWD<1g(v8@FzEd7I`8{X`6wdoNPcJ zZTxmE^~xyPP?eZXeAds-B!Zs4U~^_gTfm~6mOCsOT|r|2eLbc>@N+^|Qxyz`X2lTy za*#$9|LjH8$@-Z=GYz>l)j?KLE9*L?(MaC!u?l=LCRK`s1WW9)a2Xm>$?$XH6!)qw z)0DVGXiq7&MKiZJe9@H_CQYua2W(Ac&181bKc1lB;Y;?vp@pZz1&va8%7NQ}9pGjO z!`s1G0{194hvPo}%yxeY%P7PUu8c(#f%cIQU!wHdKx`8TPLp6=-DPD+LO`#f{K%X} zuAj>FwfLlEB9UO$<``&`-+5Bw%45`#rql13u&?DT47HHP0f`<4Id}C7 z@5F#u(h(y7WdK|OY!Ao+1PX|;t%obVj9tcp`x2+rKJW%pd)I8~sRgKI<3TLD+@%*j zr4E9!(GqyTcFC?AL5e3#CHlk*XD#kLH2gGN+B}%^%5U{PejZO}*VX4ed3$%ZN!MKe zJcf>Ij!XbsN7s>0ciY$M`F%RBeqIJE3pelM@iVZslVu8H_|LF&a{Z0DQ60-EkJp8L zPp9Ac5C+QSEBOb#?&sx0u|7H)1OMGn#JkZ`Y*pZ}fM?0@K8dcp?e6;;P`ih`!SNU0 z?e_7y_a@*1zm&Mg?OAvelI&Ce`(6wX9?j;SgD9u9o5T4H`EkAV(*Czs)c6flFru}mQtnu>+g}6=Lv0ijjA)ht8g~0z*Jc}Z7rOs0fU1B;$DWps0;&nP-_O64= z>vYTx{swHm<(k!!477!yaflD%a-!H= zi0x=`QZ}z6u3?sc9Bb0Re89g*$0?S69&pkUC#JT;eeS;;YCyTdPcy#T;{KXKA z*z%kL`M+b`M)bfv=0BJb<=;a4Pptbd%Q0ma!~gEiKmot{AJQALs`~$=H!$;iJG*ye ze`M|3ehLQC&=jmUgNYY|9J|L{2i0onelew9y4ri`{-e3wU!@lKS*e)%G%I*>hzrWc zQ36@-41^aQUjC4mG(HrNZj@Fr5s=TiO7+|plmiiTrP%&GO8 zl)E1`<<~sg>-Q~U+FzL_D+nh|l_etiHvRI=xdu@ee+vmmm4NrUM`y8vTOAV%h4|yY2q}d8vG*u%kRlG$eUMSf@K@ff*K9OV-FHHCISL6y1Wh9TZ0|-O2O^WV zTwq4!Ho=UYP{2+x?57?!)DBy>#FCqtbSNVno^odH(M#C}G{L2-X`@3$9Tn$;qXP3+ zA+ixQMZKA-@I+r2sevtHC=TOV(H6ijSro@+skB)Bvb_=1{ykKCM5Y!T&?$~_GaUU& zq-|SU)MeUI8NohFq$K#_0ofNWr5BtDfL*THX2m}dPGqAv5jOFK4DooKT~G^zU3OD@ zXow!{m2;!+2Qe0oh)-zAWX{>_D=DN*WieGmL|xMAXa!Y1nt?fC z={0HE2o%n&$sw0UH2uo}iurBp`_+dQM-c89E@!Or?uk0=!qu-w4$-S?{4NK>Jo~e( z^ZpQ}wC9#Fg^AT$=ivON!tfWbf2(=7S803L;|0y*o2lM*-R^2K%hsE0Uhi^t^>fF- z>+o~8Z`Prc9ix=b!H{?UliGHq8g7LR-;e#-mvjI7OV3}bd)Te{&b>DF-P%otG&Xs> z-}(7pho>|BL4J(>m#OU->NrW8h;TpO!nr=Dtznyw$%y?Gd^-<&j#rbrr_+h0L&4S2 z>2bN8uTzWf6Pq)k{p`;#I$vG|Q~oE_wo41mzT)map9`(MZ!le&rurWb`SR||c-zkH zfbx&Px`Umu<=#(fJ5;J(z<%C@FCurJ_u5;>+o?a#i}UXAVYtSEZ<&|Jwx__he*2-u z)hD3kW;W(s2`Fw;Y=V&y(;{i~7O(1H3?`Z`I#xVBmvf;U>*@>idT+hL{H`08c>imE zb-33M%Rm>$(w*ShE&D5I;|%PLK%9_{x#9mzm#+k*q@$<-16kbw1O56>C>1tz{{R0) z7k5aNWZCvQ6<8$@r4(W|!oc~`VAjMsO1^)kR_Kms0(R75Xn+LdIUX{1AR@8qzu#|4 z0NAetdXJ)A?$^4XJm==7-Avt;>Dj9<-p3Pqz(#66LDTnqHE?@O+%WT*6IMZ2*~xZ2 zKGfEYufwT`z9Nj|Xl~Rf$I-#Iy^5qhs58|X6_CAk+k!lP z^Dyg$AbymVu{MUI!g_#drnyjK$@DM5KrDrV_?M?Mx z4LL=%8T$q#>RztCwfPK8n<^?*W-IX8CwD&eP-q;WQsB(>^`+pyaO=vpK}r!=&*NhP zAMG9#Q9%SYn|Rse65Z-B)KL?mN1w9^z{`gqmuNtgTPgM(syyfsoxe_XXr8Eoabda9 zhGQwAtjST9K1K$g`N+l8rhv4v2|+J*mImfh>BOW&zelA+7n$@wqy8ojF=xPCJ#dwZ z4jiBG)we@j-Mvgts0_V^AjP5RO5wBPhJqnf-j=LUgjQv_GIQ^2AfnJDnW6d_z#8T? z^zc+=m>W~?>JT0-*UeHhx-S^6X321GG~6dQ>kSbftxK%+dI#vgd-o03YN4JDiJdGw)SjD3l?ac2GRSsCT*wEP5_RZWL`b6O})-e!$ii`y-X>{Ean3#zc|dJXH-Xi z$2?E>N%$ASTYl7uEIvy#XjZ>?5+lDR?)3{_B#M}Oj?+4ES1$a?=$yRe+c*4c={`v6 zw*43p|75PNu!YtH(*k_Q+-D}3)+w^LD%lP(&OYeh-y`haxYp!L!u`*)rPAuu7wT|Y2(?|Um9 z4I!sgspNh7MyTh?P2#?zg)uG;#UgMIN%jWe94A!Sla|#1QK$~7)vl7A=y?|`UYbac z=t!(g#cK9G6B}I8Cu%2SO4vRM86_8qx;4zJzY|dgFCnqfnay9<3%;;Uv8s8Ytl`a5 zj8(h*XjolBw_DafJ9Q=k0mD5QvWeAUDB+9S zAu0~t^FkAkUGKAOn5QU6&E%P97#<-Gm?{f9ZoyLfr)B*}?k>(3dYXw4wy$XacIc>m z8DYQG+Emq693*PPqoa?u5tIJHakf#pf#JgUOmN5UDJ^dQx!h?>DoV}1)5(`2*p8!8 zyrNN^5?yEJnJ?+L*77T)?-pRyh-q+K#sF*iF=#A?a^hgM0SQ<;qW$GM6RI9Kwmg}+ z{sJ;93fs_Vbn3(`5KgtC3|VCfHfhvIMHvyswmAmnd2Pyy=*L76$XyewxkBY7K(}cA z6cS5+j20$^Z_BEKuO%k^bWd~m2{B7K`7TTN_+OSvZh!@(j z7n((Hl&fw%#vk);8_EmCyk+9|31K_kj4OkzFG3P}Ml_fOFwY~kBA@Kn@`Yh^a>Dph zDOAVj6l#@5%L2J2zp$^YyTt}k7q6+f`z8-Gt8ovmajQ-(S0;wyR!|TuZy?ydyEB1l zOj?WMj^)KB!<^+RcyLgugj2*FB2ky#c#l8$@ zzaO#x+8;)pO3+V0GfYI%d2;V3bKi&nyNM@Ks3n~^R8=URmxi|YAYEY@PM)X|6&v|H zVOC?evUfu4bA|G^TGM2TvSg|De~H8NvQr)Bt|9JwUV_NDI)3jJ)%w-UJXv?(IeitH z0z!o5#42az=8DV@pbeckddKiB;zIn_JlhrTozJ{8)gy9 zEZs{Rt%osu^lp2dYWA878XB|Hb5caS8ztCoq*L`#rpZnRpHaw*yl8P7dxCe)#QdN6 z2;!ACG`#T(5s6fF7BeOOzW;Le+cjT~ML93DY?67L&E;;_`SX+EYpk+^@^^Fqf8=&H z9*ber<06CXTqGGitPp2OLLQ@8U2HlsAwlN8kn5wxYfKXBh$Ppdxqu{U_%Gmgo0 zBY8@h?f4gna+PL zD}?IE4V#nSl2#u&TDLUkkkwDAtN3N^oDJOk5j^{FMGy9GihVJa;^At-IlGL$l!npM z4b&({2I;eALx;tyu2fY^Wr@v8=TC%6bst)RmRS6DS4y1Cm}BM`n$k2 zQCfEM&*QL$?p14y=a z{z%eU+_!WqWqO_^|3x+QYxZ&%1gm^LNZY)0%P_e6ys{YloB5mG9Y~pYxGbss)y^di zy3pTm_*>cdj!+7GrYyf2Y-~$&f8`M?DqR=x7#gZKDjnKIJL)|CX7^K`Bk zzASHszod@;8*8Ar81)>F=JMeO=s4({U)Z0MXg(J^y(QKt_{eK=!;-R4uzLW_b0TP@ z$Wcqk4ABkSsl9LU%IP`M>RQGM@y<_NBj~zX0+^Swu#mZY#XNH^nC@|-ryh$iUWx_e zcJbQB{IuJs-io>{)+;07WD&l9U#_{WKK9zEH2bLBMJOLOEftApe7uX=+*Je`&w0yV zo!hpfMB<5t-+MsL?KU|GfP36^L>wlRp6YgHn1yDr|2b-d6}xp_c_#Uh-*j(APx+&z zmo!hhc;D`ftzLJSWEPK_ixJnn)j%^-2+=H#@i^1HI8&%AyE&LV)BQbD=mnd*7Fryg zce3pbn_FsknjQx`2FQ>zjV2M@>^z*r(2y>C?12!zd+-s_SW+ZwQ*xZzHNC2_@7r&> zuV|Wbq|GZ6L}IN+vbiE*+g13biC=1`M9n2~T#JNaeVE(Wr-$X5+(-U^c5?@xpMD1V z0H0`~ddxQoKmX9G;Ch}fL%&a6aVg}uawu;<>acd!yHL;?Z9gfV)fDwQ)e9^yF1g}} z`UiB!L4Is)Iq_}Y^EZLxlHIF#|9&sQg3a(0PX2i50d^zS<|RqwOXAZ?gA3&e7c5Al zJmF$8t~CYl)$H%wqzdV5`_T_gn^84w6nMd+!3~YNg8E5u-!ez!23-#50HYQ*->nD) zec+-k<9trixPX?DSe7CMWU_DzWy%xFQ(~Bc3~_o>bfBuTv41`=w<0~n)BQa9ikZ=?wfnQ~dyvE?GW5G=8?m0^y^0l<5yM=#RPGo!Rw-SoVl0e5SoMZcg4x7Mk^b>krY;vIQndyj7P!RN zw&<~Grr|7m1VFg>KzEZskfuO-(0c`712iDGsK6fJ0l^?Z42TX1kbB2K2u?sfv;#uu z0qMY;<3M+dK#-O|-~0pn{6Gxg4hbN8WWWeXjQr$1MN|iC5N)`@?9#%J)GYfGGDrm0 zrZ+E#!gYg)HKAht8N@mfUWoKZ=m0?(ipLTuTZ<0i&kUAXSC zBKd26(K|^2v3^K7HyUd6vKkyT0z$cfZ(T6%trk2 z5rVS{BnU`kCT~6)K&J$0i4}nl5)Y09ZLHIi$kZ*$4mryc$v+W6Y8eUC*o;@@jG!aQ z8^bI+nvQ5^3sdFzLomQU*;60;I?E=EnNcji6!S}4wIjh(=!9q!JV8&VPu6d}}3e&n@cXAHCUB z*WCBTZhsowB5)0)v==Si^30NWgpGjjj*V@F(I>a{%*NKDS9svcq%&~|e7=^0;~TXq zFRTLYc9@RSiUA$C>ZhHxCGoe^P5LfFd@GZ}AKK(`>Fgjbs_adMF4t3)!7!h`gzAXh zH>WB+G(jD{X#m-TE2;cMb!o^#GS$7l`E-S+PcDGhAN)#lXkxgfHgH3H4$i)VsqnLM z+wI1XPXzkl_!`g?)<4b{M>)4plZYhBWAD8}yThbuF<8Bl;Js9m+r}jujlPVtsOmA- zhEB9^+Tc{fRoELbAtJoS5GwhNx^&bK4^QHZeF4r_gH$RfllvN>BIxAIGyM=#Qx0ewovG!xRs;(51XgBp{&3?>C~ zxhxcCgf*qhr#T~auWA^)h;h*R7heh+)S~{B%f^hyg6H6-XQff2yJ0CxZ%bIm1<$8a z^tOD^*BPB`gIbJ{B7wLhLAacZxT1a@lAPt_26N5{KvAZ`P6o1hu13;Re;WIDM?|$IG=&WybTtIZdsm4Dc^G05ru1AE@uAQeWg*9_^ilh z?{hr{tL09g_fmuPq$AL=NdD2&%ba+*Tq^Ls61+)Y78B^*tKutGQgL7-SwV9cPbhCj zTY*$)*ZE2TgsPq8Lt|Owd0QSne~!eCK#uVopzf4uOIYAn7CnvVK(pNv$uYP#8g48B zQc>*=6r0q`LxdS@#P~ah$NmTcz(}X3yl-n=*tNst>E#n6tV=5* z=}^z!B^HR!VcJn{Y#=G8hCE#xjIKxtwzqV!3%Lt)7PNfkL516rcec1|J()1gATNzJ zk8}5BCw%FI!EcL?wMi$hJ?nb{X2F<>A#s4Q@xGt92+vNf zi3Tmr;PY1?@2}XO)Xn*c<6l<5(;{r_XW8+2s`6R2Ki~5PaQ8WW?tk_VR#qqH3=ujx zc*`w^afRK#%Hw5wVsc|_mSPcOb7E*0V|^osm!70Cf)#>$nh`lBHln0j1+vsx)ljYc zdz9}VZ_ZC@mt^zZDMIt%qhj0gbKkr3dvyWtPumkh_lt93t;mrs?p&UU@lffa_;82d zVnPp!Rd(YDztgy=TbNpqUC==upvX|8`1-{T&1|Y~sd=2GHGBui{8ZAwjmCl_J2Jh4 z!_a$Hdv^5&na0vnv4!T6h<|$voU*^R@l)tUYYGj-dQqH2(iPH`KDAn-lV~rhv|-X< zws0i8aNkqXjjKhdZc%Hr*i0Ik?K2pTx)F7yL*}6*sND0R6dXQZuA>(#1tV2V zlX00vfgS_P9OEc9C{(ZYg?o33-u`80QO@ciy{%{zn0fV`-!O|dgg4WVo1PVCX5Igt zJbI9lwnEx@p?hZlAWc5L+SCjDo)TyPx3h1O+}?pUR%D5|IE4%~KyWtP&Tjw|AYN1<8X%0iwZ}xubSVI^kAQ*M>>MOgh=2;Wa5q z#h&DvOErUB^uD5stxHEBfR2eN#q^J@hb`s>+1-gk!vohK@$dp=)xRavH8ubRk_853 zFGC?+5!1capQ9YVXMYHLkv+iggNR2dF)hLAC8z*8W`4qEd7=*eK8Ix5SdXSJJVLLa z8LaPiSApNfn_}DKy@)gKQ&cZa`zu3|JrpK|_7fqc-`cDDBOyiA*hc5|)?K(;+7mg!u01*T! zusJ%pnxuSWYac7|Xm6_3QmP*G8zbtOp@o%#GUY%|9O%*@X> zb6rvB1Psi2G^EL7~Kmie8&4F`JnAz2OefAth%6}de%3FE)(z@|`v|e^rZ$+%v zw(jQx2()Pndgp?+yRm2r=<=U;iIYP8)SHz(*EL3Aux0k1FfYRR)`iymZ^opwQe9!$ z{_(H|j!hfmk`4Uv*{NFohmS&C0*64btRoWjEk5C`Eje8S*Orq$PUb!wd))$7maDzZaM|?E5O_*Ecj`ayZm{(Xe<{XvD_wD+ULbish8Pod;^+=`v5BGb31GDe{w z621mpr!(R#w{3b;+`Y;}aI5UtYvmW+HOOWJ@)HQi9Jd+Q2;HG9dv54;zwmdVcYu&P z;;3=S-a|4hUfGx5Z2Gd*CVtBl+NRf63x)ulrI1D{1Or`v3Nx!oKZZB;Y+N6wZg?d#z}^m$w4$n>6h)ii_Ep8w@fGQG^#yAtOKMH2(nw7;9t zt3F7mTO)r5(C`nCKogv_EZq4h?hmw~-_t2MsT&C_;Ow|eK$9zN!_1XOri-9k`n@IE zb@yjC7T`zRU2g&K9z<%!dxLGt6PR8nlYjdm5%_4F#d~~?qip}ne;4;d12>QRxYZv0 zT|6hLa{>#q78tLhj>0&l*R7tvr;IUM1!h09Cz-LER+b~NjO z<>)5r1|!GALq!07Im=9Zt-g!5&5e8femOUg@%^i98`PM$pdqC>5dp{uk`eSjj8g-J5Rkuu>_mJ6)hWA@^~Hi z`>Bjg=81BN(T^*?57Dk`+5E=Upk2b}ZgFws*3%pOta_1kAaTa$b)kS(GDSm3TsB7( zrb-@hSUqC@OmUE zoRSK1qHE2B9;zv(v2~3ovgTx6V=URa(Ur+9T@zbcWDSYgxJDS(t~b9w;M+?-|MK%o zclA=|)i?in)_wo|M7j74als2h+T&M6lcrk3v7<#?qCFGSQ1{&=!e z9vnq9#zD7Fm+?fpX&y~CbZ+Yu_B5?7ulGLtD7&hFrg%OO8eiFyX)+|~bk~nvT>a9JB zw+Az6!Di%c$01EsAnh}bWq|_;s|dBv_gB}2mb6q$QP&oFM#ZKEx6+75CIlm@J)dWz zn@B`yEp+80?P>>pih|RZaWg?h{QZ54f-3Q1c&^5+!-5`N0eMv!7nA_aQWj5kXFL7^ z`t0`oFA5ailN)>Pbc=MW5miEb>uZxF4Q@KF9l#=)yxq-KweJ!Tqc=OT5x_| zsNx@s!n0@nHirSm-v^o)&aJ+y;PQ}lXzCNp>_%f}ylV)@`gd$IKaI#=-|)uM>)@GR zUtZNd^>!VIvBAb4W%|Olb=G{{RPRJtf0KZn=o3W$Pw&6kE%nK&yT}hLxv9T| z!V_a{s|e9cF?@H*#MYy1hXgr!tFOtZRsGfi);3iHaBez1=;Hz}f30eeu3PoK5MF%T zKo3m2&$zt>E7Nt;n*MbQ59@obV)LfADgM1kYOT)(woZ$iX(I|{gDc^b=`w4U?TRD# zDNY)Pi)my2Rup0ZGa11(f=D!61`QNJXQ?ygyJfsDVeqq5EmFgwKJ5Rz?%sEUCp7yR z^pixqq^5qv2ohY!Xu^wNBv|`8T>{yqk;05X+vw(-3-EOgH64$5(&>HJ_=y~UsCU^d z4`-Y%_!XfKfDNn<+WO%L;?K2IS4{a*N`(QoeiHv<1Q=$p-UV!|H^QUY&$Sek4F*g6 zv>*#O9J6hOMNPPeUPKKBhu>ZmQ{hB6z@0mNmL~amb3~=3&7EKGoYp1S|B5;o#=Y1m z!jpG<(l%`^%&JY}F$}j(;!*bQ9SM~&+YPX=cOc}{PAtQNS=RP#+jq2#@th~PGR2)FQfzp$!bH8cbpx1>0mH$B z^o_ckt$(o)TPP^~ihMjtf3~LT@4w~_%J!*%A}jj4#Bwai{86`M0lAz&c}uouo9Izh zxT>G6ju@TS`_@50(}oaNX-E^nFS}3-nI)>=UvVOg%88#!_OI>*(t{Va5lb%8%FY)Z z0V`kJ;tZJH*7|6pqapY4b2(kTI5Bu9Ycl01dlw`#4UT~=jdTE$cL<1&8|#H58gYS) zsp?{ByHQ>#-woU1s!IG6yjmY!zh>a{t1B|xvBKK3;i)PU{ExEw{r$>}K5Hy+*? z>&e4$7CVpLjhGO5oi8j+NqF+Egd34;Kh3oHF;krkk z=B=eRzigc%H{RKuR`${wb*{M8sRY8FUi8hHRey zmAffGInlAwL?VFSFz%VAh^8mW?gdc5UJRM{s33LPjG$jhBCwTdI$LxHiIUpbB(zvdn3plvi%x-Xw^aL7p6$wE-F6z3+AMk2 zXT~qr=(a@&@6TzUK89wGi~BtvB(iuP=eVmT)N3eBDDqQ7&1J{+;gklde;Eo#bt#9Q-{hnmebx0&|@`aA6V zMOfAekI?mGp0A}S^XojuRb~ku({4+5Jb`!(P&F%-bfcD~Z%f>AgmIZ$%v~^J`=D=3 z+Xw8}_AAgBDRga42p6GLRCoa6nYzhQI6ME7LC7EWhE7raeYQ`QA|v7<5dXp%%JGo6 z5c$DPx`O5cjvOTajR0?GJv6MY@Jr4%n&s}G@QxYE8zRrLbciA;xWsXZnnEnq1yB}h zOv)hnP*zH^REss5saUP!Qfy%Cc+B>CdNntVn^=Euz56VT*wsbVTWfXEI2yWZht&Iq>GQT-qyvA;yn&94&{-rN{?M2Aft@(*4go(D zXI$6^j)OX7!Go2lzDiNXCuaXs7N%Ii62aG$GMSrOJU?(mPX}vqGPs?YZNbcwzs%mM zVn&gN+|a6IhFl66vp2uu2V8EKNy{>5G%}-g7S%)^BWz_?Ih%5nN-MOqxY=}CW@~|) z=ftp`ZdflHu~G{`v{<`8=0hFso9!~I#>=GJT}wWt@L8w+k^!?AV$3iE1yUrVV`%}c zmrOiuLT!+=aoj-)c&-oRkYFriXY$NJifzu1CjyFsE3c3zB5`f;^c%H|$j>G9UVip+ zM@@0>aBI=P=V)QfN0HaDIsQ^?a|eW;*QdEYHT=e%c@PMf!o{+0{H}N0*__Ckwvl`^ zMwjp3cEP#}iXpN&;dE<@D|VoEW{u4E+O(cDWMnvZcm$c}DV8jahRH|%xr<&Hs)QVP zG_y)gG1}!FC6vNaMaaL7Pw+MPVag(VMCuz5^ylGvE^v>`h1z9gOpwJvrc#NP-VRDR2>r zlOI$ZqHAV(b>ACNXwiI!)EEqKr5V9)F&;?9o=7l)JoMW3?1E(St2_Xex?`CsVN|Z2 z3KOSq3|Pwq1Z5twkhl4A`Z1mJj2%Z1TBrc4zB-x_$P=896E3S$M!+9>s~BQPP6<3>GE?giknSAH)1KcDAp?TJUTm2@a5OL-);(_=P7zQB za0Z<5Y7>5g^FWRev&W#7!y}=XLC?TIf{kDidPOlBQlENRee}2-k^mNm2}067;Y4!d z)URn$9M(K|{7dGJ2F8p*<}(+p8i2tuq&2q2(ts7*qRC9%lKnT>swGIf2N*J5Ko#h( zOmNT|(DrcqwYDfr>7s6j~dHE+`w}DWIyPw7d z(QCl6V8IShP-8$WU@M@ss88N8e&6>0yl9C)K)ON$hJGn@fTP+0_b;N~k#GTHM*xTN z2!S9;xt1N5ZHU49!qY$IvKesZP%93-ZwU)pcSr*y+fn#>F%Q|oFtYCrIg~#D@ z(I(o!VBA&8+bbS(FZMXrT>0Z6>g7)F(1}bwkn)`s;~j7H9BD=rJ)Hg%b=}vQUwOt1 z0^t=3-b^aa&bNIW;&I{k^$vZ9kgcI3RgMVb)EZgUrdxe>6-e?!ZkSM)K5J}vG``W zKfkO_v*`Q_?y+%NM#D9zmv6`!&KPY@QgSBC&aNeWvb}^Cq!ZqZ05UHjlR06IE~xKtx*Xtm}`cgw5D<{Vg3?AOQQKfz_zmfaMWmO? zhhM~AyD-M57gr}B! zn_j=h(D~Dj0LRF9hwl2*-jVEZI_%YzN^Mq3O;K)TohaGEMBmq#xpIeNdn7w58_Tqk z_n6Tp_=HOBavo-f{-KBBwZ@&3A3YWIOY2z8YOK!MOmV#3k$Lu`PSTPuv_0xc0)5ZWF7?UDV88g;nq3(WHM~TVQIa$y8hW+tf&tPITS7xFm#O4qMM%n59)7 z0=s!>*8}JKBXqJj%eElPp@MS7>Y(K2fd*9bhl%EgGRn!KEbp=`u8Gj+o~;dAPw{=d zPMQpNwFOr>evKw4bsq!U5*EZ2(!-BR;pQex2fIIMhfkdSG2k?n`~P|PcnJc@gpUY{ ziQUy+jZfq%%6>MFG&i}r*?FXnN+ zhMoK0W9MlDc}pwWN5dY{Fclh>LBsCQFsc77_6UFOU(MxDL~oi4*Yy^=;ImtcKN*sI z%e1-oyTL{gCmM@*Njppd?+dV*9Mwnso4s6*=vDs-XvrPj1=(6=aU3rYGp21+!R8%J zwGrgIO)?}U8f$mO{EN9~17L|(DFSTxuwau!+W^myJ7|w44fO(>DbR3Fq3C?)znFg- zNU;P}2tJ^0c@1bl8{}aoKySOCi^^%*21pXfoD;b?P*f&y8fXR#0PSgwDup+p+q z2XGzQGsJ_!|IkLmPs^iCEC_5Uv;sIkf)Op<$!KE!qkc+9c2J8dLJ>SRO z@!1$hbn6Rmrn#vjnPpW3G*M}y@oW+^|B1VM)jrw^H&=5pDLZgARF-Jj`PH#^b@14? z#g0YiS0-dPuNHN!=62!pZVOYGP_>~2;&>m_I|u!^VP7*_yz|T47};UCF)C`~-ut!M z6gT)|REdLO+{l`Y@izRni}tm+(KXqbZKm5+6gSkXe`K>r(YK|WlSb|(-WT8QzOCIH zXJ(aXhF>v$hlO84rOw)IuE?jnhu55}V85L{Yu0cp@t)U8Id8p!j5@yjo$&VM+r^^j zaM7YC@Fu_J>|DDdX_<3yD5^30Bjeh7iWfZiD+*@%V*B-NiRR=HQ$iUL&cEo^j2_V? z6pl_v?l)!2<@_*TaNNGXUzRPEGyG#Qhs3cj-HbUb$iA2}?z*2ct54Mly_;JR*Tl|>O;j(qkahQqAvYoUT&Y}Z`V0DG)BRk?9ja05 z4XU}A!cku0o3IJP{?^rk1xM2GmNdK$p(`dqnDAdnB-!mtXq!+?#bgOTdisJ%h@ixZ zUJPk-iN2Q*22TPK>Y&sL=M`>vTU)Nhw; zeITm_eQ=QS9V;4eT)niQNXppaC(G^ohtwTrgrW~iAcmnga%6o+mirXf{w}6%AK!XK zzP5inB+2ecz<52)pJ`Gn=f#92`Ejo>d%mOyOTq?E6bfTMQyg1yxXAY8m3>bjn&~ zbUykfiH$lYTdh_OaIN_E?yf->RYE>!8Hbr?m$pip4C7LbNb7!aE&ADIgp^k#wuYNw zh6Z;gM}(`j9)f2DH9zgx4d$& zs7$8QfF4~JEf15ym4-zwBr<{ChfB(}~{inUC2 zq}*3~7U{^W4XxDLX_F&^4Ro07?yyOJGl}r9(x<<9o3NNo=JMmBq{yumE#9FRHejg9 znR!QYMQiR0s+6+K(j)PrmF0zplqR{=*8YNR+(HtWu*E{*3i?7VLcF4;X$`Wx)f7-@ zXufCcw zHAt5enDeW-XYS)1xUgg(-;i++>f<$(k` zWGmvdx#GIb9jXLp!wEMt{vfj91e>Fh4aDZ41(n2vVUs=Viejb`6H8Bm++4b{=@l=I zldlDkQJvk~b8nRIU-95LMOE?Pp{ho+hY3hT;u4ZNe7i5qS-I2@l)70C5=7=) zB&_y&drv`ByV(xnpLRG%I8M4;=({#2t>;?x!*Y%Ab7k3V~|IDeee8z zfv+8RT|R&6yuec@jOv)`=ADywDJ2#v8&A5WutF17JFL1n=8RkliBZZ%d(-Li2)Ah& zgx4UCgYpvFhxnk5fo{Z{q)P-bzsfYQ-TJ(iuN+_YB}9jTOWdb+YZ)!?X(=t2X@!+& zDXquT=gQPKc(YYfSxtlnqMmo#cbw{Gn|u1($GN=9EO79PVc_T&tH7==Ce|(~?C6Ap zDD`;e$cY4t4)1Pc2jA~=a~8jyovW*CFQ|{R>l~LZi9ArEor&S+5CKhiY)92 z{87idjXDs&U7fS5Zl!xSi4Q7YX6F*FWaAQqMlvT%L|SyObue@bcTl=5^9CoS?p&JX zEfn%)HIJ{4GIPP0KKR2eC9E0spy1jCm02FP1XvWkOPW$&pouA`e!54K;vFRjcegO+ z_}58^1>xYRr`-_evdz3V?uhdXLSp{|00960)R*~RlG*?F6Bk@lb6;{ROHtEYLIuSo zQ;X6D%dxby#U%|xawl?0&6>1D3YQQYmrTx~y07{jIkrQgG4XnJYroxkxFjpAeNr@cEKRvXeM*Y1f;JgD`)l;v|hEFv~OU$Jm9*(WExQzJ3Sr$Wi6 z(E#yid!ojna-{N|DcwV*E*JF0TdHadwkSq3G)}+OK14OCVutOBjee_JR+fChs-=nB z*SOVr$EFJbEnVE91hca)iMnmn4(>>T)mcX)rHw-Y<~<3vubs*jlZULTibg{2p5CE# zs&q)cc*N&!+%A=|TC)qKc6sH4`c?TOyU�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