From 41128177d253ea990170f1a4875431ac839ea303 Mon Sep 17 00:00:00 2001 From: Eli Peter <54954007+elicpeter@users.noreply.github.com> Date: Sat, 25 Apr 2026 17:59:11 -0400 Subject: [PATCH] Release/0.5.0 (#35) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Introduce function-scoped variable interning for state analysis with new tests and fixtures * feat: Add Phase 26 symbolic execution enhancements with bitwise operator support, abstract interpretation refinements, and new taint analysis tests * feat: Refine state analysis to handle factory-pattern resource returns with mixed-path tests and leak detection enhancements * feat: Add Phase 27 debug views with symbolic execution, abstract interpretation, SSA, and call graph viewers; integrate with debug layout and styles * feat: Add Phase 31 type-qualified symbolic resolution with receiver-based callee disambiguation and testing * feat: Extend symbolic execution with state iteration, enhanced debug views, and debounced input handling * feat: Add Phase 13 resource and auth pattern extensions with new tests and fixtures * feat: Introduce CFG debug graph renderer with compact mode, toolbar, and DAG layout integration * feat: Add Phase 28 encoding and decoding transform modeling with structural symex enhancements and new taint analysis tests * feat: Extend abstract interpretation with type facts and constant value tracking in debug views and server logic * feat: Add linear path handling and witness extraction to symbolic execution with Phase 28 transform mismatch detection * feat: Refine Go auth and sanitizer handling with enhanced rules, state updates, and benchmark improvements * feat: Enable auth-state analysis by default and update relevant tests in benchmark config * test: Update state_tests to reflect default enablement of auth-state analysis and add auth suppression test * docs: update CHANGELOG.md * feat: Introduce per-index taint tracking in `HeapState` with `HeapSlot`, overflow handling, and revised SSA transfers * feat: Introduce C/C++ language labels and refine heap state tracking in SSA transfers * feat: Implement per-index array slot tracking in symbolic heap with overflow collapse * feat: Add implicit definition handling for uninitialized declarations in SSA value allocation * feat: Refactor function parameters and constants for improved clarity and maintainability * refactor: Reorder module imports and improve formatting for consistency * refactor: Fix formatting erorrs * refactor: Fix clippy warnings * refactor: Fix fmt warnings (again) * chore: Update dependencies and improve feature configuration * Add comprehensive tests for undertested modules (#36) (COPILOT) * Add comprehensive tests for undertested modules Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/f3fc877e-f386-49ba-9793-fc93d3805083 * Add comprehensive tests for ext, project, walk, and errors modules Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/f3fc877e-f386-49ba-9793-fc93d3805083 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * chore: Update dependencies and improve feature configuration * fix: formatting errors in new tests * chore: Update license list in about.toml * chore: made functions input inline * chore: updated cfg graph to take up the full page * chore: add Prettier configuration and update code formatting * Add frontend test suite with Vitest (111 tests) (#37) * Add Vitest test suite for frontend - 111 tests across utils, components, hooks, and graph utilities Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/7cf0dba2-ecff-4740-ba4d-92717e74a0b7 * ci: add frontend test step to CI workflow Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/5bc0ac9f-0a32-4d03-9cb7-7a15aea53fca --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * chore: simplify array initialization in test files for consistency * ran typecheck * feat: add AnalysisWorkspace component and integrate it into CfgViewerPage * feat: update routing in AppLayout and improve empty state message in ExplorerPage * feat: enhance scan progress tracking with additional metrics and stages * feat: update license information and add license check script * feat: implement cross-file symbolic execution with callee body persistence * feat: replace dagre graphs with Graphology + ELK + Sigma for more advanced call stack and cfg rendering * feat: ensure CFG function view is scoped to the selected function, preventing bleed into sibling functions * feat: enhance resource tracking with proxy method summaries and improve finding extraction * feat: add terminal function exit detection for accurate resource leak analysis * feat: add warnings for loops and functions without bodies to improve error recovery * feat: update lambda expression handling to ensure proper function classification and control flow * feat: remove bounded formatting/string ops and add JSON.parse sanitizer for improved data handling * feat: add inline return taint analysis and regression tests for improved security checks * feat: add engine version management and migration handling for database schema updates * feat: enhance first_call_ident to skip nested function bodies and add regression tests * feat: enhance callee name resolution with two-segment normalization and disambiguation * feat: add cross-file context flags and debug assertions for taint analysis * feat: refactor taint analysis structure to unify context handling and improve clarity * feat: enhance dead code elimination to preserve Sink, Source, and Sanitizer labels with new tests * docs: updated CHANGELOG.md * fmt: formatting fixes * fix: fixed frontend formatting and lint warnings * fix: optimized ci * fix: optimized ci * Add comprehensive multi-file test coverage to Nyx (#38) * Initial checklist for multi-file test suite expansion Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/e550cb88-9767-4442-94d4-101bf5bb0e23 Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * Add 12 new multi-file test fixtures with TP/TN/near-miss coverage Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/e550cb88-9767-4442-94d4-101bf5bb0e23 Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * deleted root repo * rebuilt to test for regressions --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Co-authored-by: elipeter * feat: enhance import alias resolution and taint tracking * feat: implement security hardening with CSRF protection and path validation * feat: add support for import alias bindings in Python, PHP, and Rust * feat: enhance CFG analysis modes and improve code readability * feat: add detection for parameterized SQL queries to enhance security * feat: add safe internal redirect handling and enhance session destroy validation * feat: implement security improvements by addressing vulnerabilities in execAsync, session management, and file downloads * feat: enhance taint detection by adding support for inline source member expressions in call arguments * feat: implement pre-emission of Source nodes for inline source member expressions in call arguments * feat: add support for Throw statement in control flow and error handling * feat: add debug and echo endpoints with potential information leakage * feat: implement internal redirect suppression and enhance taint detection * feat: implement module alias tracking for dynamic dispatch in JS/TS * feat: add authorization analysis module with Express support * feat: add authorization analysis module with Express support * feat: add tests for admin guard requirements and clean checks in authorization analysis * feat: integrate Koa and Fastify frameworks into authorization analysis * feat: add Flask and Django support to authorization analysis module * feat: add support for Rails and Sinatra frameworks in authorization analysis * feat: add support for Axum, ActixWeb, and Rocket frameworks in authorization analysis * feat: add support for ActixWeb, Axum, and Rocket frameworks in authorization analysis * feat: add support for Rails and Sinatra in authorization analysis * chore: add .DS_Store to .gitignore * refactor: simplify conditional checks and improve readability in multiple files * refactor: update usage of Option methods for improved clarity and consistency * refactor: improve code readability by simplifying conditional checks and formatting * refactor: improve code formatting and readability by simplifying conditional checks * refactor: simplify conditional checks and improve readability in multiple files * refactor: simplify conditional checks in axum.rs for improved readability * feat: add CodeQL analysis configuration for enhanced security scanning * test: add comprehensive tests for `src/output.rs` SARIF builder (#39) * chore: start test coverage improvement work Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/cd7ff398-134e-4728-a5e7-0353a0744423 Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * test: add comprehensive tests for src/output.rs SARIF builder Agent-Logs-Url: https://github.com/elicpeter/nyx/sessions/cd7ff398-134e-4728-a5e7-0353a0744423 Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> * refactor: improve code formatting and readability in output.rs --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: elicpeter <54954007+elicpeter@users.noreply.github.com> Co-authored-by: elipeter * refactor: improve code formatting and readability in output.rs * Potential fix for code scanning alert no. 210: Uncontrolled data used in path expression Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Potential fix for code scanning alert no. 211: Uncontrolled data used in path expression Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * refactor: enhance triage file path handling with improved error management and validation * refactor: updated func summaries for richer detail * refactor: update SSA summary extraction to use canonical FuncKey for distinct entries * refactor: enhance callee metadata structure to support arity, receiver, and qualifier for better overload resolution * refactor: add support for keyword arguments in function calls and enhance receiver extraction for method-style calls * refactor: implement new Flask routes for safe and unsafe shell command execution * refactor: separate receiver handling in SSA operations and enhance taint propagation * refactor: improve arity handling by using arg_uses for positional argument count and enhance witness scoring for tainted arguments * refactor: implement auth decorator extraction and classification for multiple languages * refactor: enhance Rust module path resolution and use map handling for cross-file disambiguation * refactor: introduce CalleeQuery struct for structured callee resolution and enhance resolver logic * refactor: implement same-file identity collision handling for `runTask` to ensure correct resolver behavior * refactor: standardize default struct initialization across multiple files * feat: add scripts for formatting checks and auto-fixes with test summaries * refactor: simplify character splitting and enhance namespace qualifier handling * refactor: improve documentation clarity and enhance code readability in resolver logic * refactor: replace default struct initialization with explicit field assignments for clarity * feat: enhance anonymous function naming by deriving context-based bindings * refactor: streamline match expressions for improved readability and performance * refactor: streamline match expressions for improved readability and performance * refactor: replace loop with while let for improved clarity and performance * feat: add SSA constant propagation support to analysis context for improved accuracy * feat: add SSA constant propagation support to analysis context for improved accuracy * feat: implement shell metacharacter validation and bounded-length checks in Rust analysis * feat: add static map analysis for command injection suppression and type safety * refactor: simplify match statements and reduce line breaks for improved readability * feat(summary): phase 1/5 SinkSite data model for primary sink-location attribution Introduce SinkSite (file_rel, line, col, snippet, cap) carrying the primary sink source-location through function summaries. Swap SsaFuncSummary.param_to_sink and FuncSummary.param_to_sink from a coarse Cap map to a deduped SmallVec<[SinkSite; 1]> per parameter, with a backward-compatible cap_sites() helper and serde defaults so pre-phase-1 on-disk rows continue to deserialise cleanly. Extraction: SinkSiteLocator bundles the tree/bytes/file_rel needed by extract_ssa_func_summary; ParsedFile::extract_ssa_artifacts wires the locator in for the persisted pass-1 path, while pass-2 intra-file transient summaries fall back to cap-only sites (behavior unchanged). Merge: GlobalSummaries::insert now unions sink sites with (file_rel, line, col, cap) dedup via shared union_param_sink_sites helper. Database: JSON-serialised summary columns carry the new shape automatically; no schema change needed. Phase 2 will consume SinkSite in build_taint_diag() to overwrite the caller-site Finding.line with the callee's sink line when resolved via summary. Phase 1 keeps behavior unchanged: scanning tests/benchmark/corpus/rust/cmdi/cmdi_indirect.rs still produces the same (wrong) line 10 finding. Adds round-trip tests covering SinkSite solo, SsaFuncSummary with sink sites, legacy-JSON default handling for both summary types, and merge dedup. Co-Authored-By: Claude Opus 4.7 * feat(taint): phase 2/5 thread SinkSite into SsaTaintEvent and Finding Plumb Phase 1's SinkSite through the event pipeline into Findings, no output change yet. SsaTaintEvent gains `primary_sink_site: Option`; when the main or callback sink-emission path has non-empty `param_to_sink_sites`, filter to sites whose `(line != 0) && (cap ∩ sink_caps != ∅)` and emit one event per distinct site — the multi-primary collapse keeps each downstream Finding single-primary. Resolution: ResolvedSummary and SinkInfo gain mirror `param_to_sink_sites` fields, populated from `SsaFuncSummary.param_to_sink` (SSA + callback paths) and `FuncSummary.param_to_sink` (global paths). Label, local-summary, and interop resolution paths leave the field empty — they only ever had cap-level info to begin with. Finding: new `primary_location: Option` with `file_rel/line/col`. `ssa_events_to_findings` maps `event.primary_sink_site` → `Finding.primary_location`, filtering cap-only sites (`line == 0`) to `None` so the (0,0) sentinel never leaks to formatters. Dedup key extended with the primary location so multi-site events aren't collapsed back together. Invariants (debug_assert!): * every SinkSite reaching emission has `line != 0 && cap ∩ sink_caps != ∅` — enforced by the pick_primary_sink_sites* filters; * every populated Finding.primary_location has `line != 0` AND non-empty `file_rel` — the cap-only → None translation upstream guarantees this. Deliberately independent of `uses_summary`: that flag tracks whether the *taint chain* used a summary, whereas primary attribution requires only that the *sink* itself was summary-resolved. A local source reaching a cross-file sink produces `uses_summary=false` alongside a populated primary_location — documented on Finding.primary_location, covered by `cross_file_sink_finding_carries_primary_location`. build_taint_diag, SARIF/JSON/explanation formatters, and the benchmark scorer remain untouched: finding.line still comes from `cfg_graph[finding.sink]`, so cmdi_indirect.rs still reports line 10 and the benchmark's rs-cmdi-003 row still shows FN in the LOC column. Tests: `cross_file_sink_finding_carries_primary_location` (proves plumbing via a synthetic FuncSummary carrying a SinkSite at 42:5) and `cross_file_sink_cap_only_site_leaves_primary_location_none` (regression guard against cap-only sites surfacing). All 1566 lib tests + integration tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) * feat(output): phase 3/5 consume primary sink location in diag + SARIF When a finding's primary_location (populated in phase 2 from a callee summary's SinkSite) names the dangerous instruction inside a callee body, attribute the diagnostic line to that location instead of the caller's call site. The call site is demoted to a Call step in flow_steps, and a synthetic Sink step at the primary location is appended so analysts still see the full trace. Changes: - Add scan_root parameter to build_taint_diag so file_rel can be resolved back to an absolute path via a shared resolve_file_rel helper. Empty file_rel (single-file scans where namespace == "") resolves to the file under analysis. - Extend SinkLocation with snippet, carried from the upstream SinkSite so the formatter needs no second file read. - Relax the ssa_events_to_findings debug_assert to allow empty file_rel, which is valid when scan root equals the file itself. - SARIF: emit data-flow as codeFlows[0].threadFlows[0].locations[]; locations[0] already reflects the primary sink position via the updated diag line/col. Acceptance: scan on tests/benchmark/corpus/rust/cmdi/cmdi_indirect.rs now reports line 5 (Command::new) as the primary sink, with the call site at line 10 visible in flow_steps. Two expect.json fixtures updated (must_match line_range widened): - javascript/taint/context_sensitive_call: 12-14 -> 7-14 (line 8 is the real sink inside run()). - rust/cfg/closure_async: 10-10 -> 10-11 (line 11 is Command::new inside the closure). Co-Authored-By: Claude Opus 4.7 (1M context) * feat(bench): phase 4/5 validate primary sink attribution across corpus Extend the benchmark scorer and ground truth to lock in phase 3's primary-location behavior, and add fixtures that exercise the new capability end-to-end. Scorer (tests/benchmark_test.rs): - Add optional `expected_call_site_lines: Option>` on Case. When present, score_location_level additionally requires at least one flow_step in the finding's evidence trace to fall within ±2 of the call-site range. When absent, the check is skipped — fully forward-compatible with existing fixtures. - Retain ±2 tolerance on expected_sink_lines (compared against the now-primary Diag.line post-phase-3). Ground truth edits: - rs-cmdi-cross-001: expected_sink_lines [8,8] -> [9,9]. Line 8 is the transform::wrap call site (a cross-file propagator, not a sink); line 9 is Command::new, the real sink. The ±2 tolerance happened to mask this stale attribution but it was semantically wrong — phase 4 is the right time to correct it. Also adds expected_call_site_lines [8,8] so the new field is exercised on an existing cross-file case. - rs-cmdi-003: adds expected_call_site_lines [10,10] (run_cmd call). This fixture's sink (Command::new inside run_cmd at line 5) was the motivating case for phases 1-3; adding the call-site assertion guards against regression to caller-line attribution. New fixtures: - rust/cmdi/cmdi_indirect_multisink.rs (rs-cmdi-009): helper run_both takes two tainted params and invokes two Command sinks on consecutive lines. Locks in that primary line lands inside the helper (lines 5-6), not at the caller (line 12). Notes document that SinkSite is currently one-per-callee so both findings today collapse onto the first sink; expected_sink_lines=[5,6] and expected_call_site_lines=[12,12] stay valid either way. - python/cmdi/cross_indirect_sink/{app.py,helper.py} (py-cmdi-cross- 004): sink os.system lives in helper.py (cross-file), caller in app.py reads env source and calls run_cmd. Verifies phase 3's cross-file primary attribution: Diag.path = helper.py, Diag.line = 5, with app.py:7 recorded in flow_steps as a Call step. Acceptance: - `cargo test --test benchmark_test -- --ignored --nocapture` passes. - rs-cmdi-003 is TP/TP/TP (the target flip FN->TP at LOC). All pre-existing TP/TP/TP fixtures remain TP/TP/TP; 2 new fixtures are TP/TP/TP. - Aggregate rule-level: TP=158 FP=10 FN=1 TN=97, P=0.940 R=0.994 F1=0.966 on the 266-case corpus (was TP=156 FP=10 FN=1 TN=97 on 264 pre-phase-4, delta is the +2 new cases both resolving TP). - Full `cargo test` green (1566 lib tests + all integration tests). Co-Authored-By: Claude Opus 4.7 (1M context) * feat(taint): phase 5/5 lock Finding.primary_location contract via regression test Add a regression test in src/taint/ssa_transfer.rs that wires up a synthetic SsaFuncSummary with a SinkSite at other.rs:42:10 and drives the three emission stages (pick_primary_sink_sites → emit_ssa_taint_events → ssa_events_to_findings) against a minimal caller SSA body. Asserts the resulting Finding.primary_location is exactly that triple. The existing integration tests in src/taint/tests.rs cover the coarse FuncSummary path end-to-end through analyse_file. This test locks in the lower-level SSA-side plumbing so a future refactor that silently drops the site between pick → emit → findings fails here rather than only at the benchmark layer. Also refreshes tests/benchmark/results/latest.json (timestamp only; rs-cmdi-003 remains TP/TP/TP and the aggregate P/R/F1 are unchanged from phase 4). Closes the primary sink-location attribution feature (phases 1-5/5): * Phase 1 — SinkSite data model on summaries. * Phase 2 — SinkSite threaded into SsaTaintEvent and Finding. * Phase 3 — diag + SARIF consume primary_location. * Phase 4 — benchmark validates primary_call_site_lines across corpus. * Phase 5 — regression test locks the event→finding contract. Co-Authored-By: Claude Opus 4.7 (1M context) * refactor: clean up formatting and improve readability in multiple files * refactor: simplify type definition for deduplication key in findings * test(harness): add must_not_match expectation for FP regression guards Extends ExpectedFinding with must_not_match field that asserts a diagnostic must NOT fire — presence is a hard failure. Non-consuming scan so it coexists with must_match entries on the same rule_id. Adds forbidden_violations accumulator and updates summary line. Co-Authored-By: Claude Opus 4.7 (1M context) * feat(regression): update expectations to ensure must_not_match for various taint and resource leak rules * feat: implement auto-seeding for JS/TS handler parameters to enhance taint tracking * feat: update switch statement handling to improve control flow analysis * feat: implement promisify alias handling for JS/TS to enhance taint tracking * feat: enhance taint tracking by refining expectation handling and adding mode filtering * feat: refine SQL handling in stream processing and enhance auto-seeding for handler parameters * feat: update taint tracking rules to enforce full mode matching and improve flow analysis * feat: enhance Ruby subshell handling to improve taint tracking and flow analysis * feat: update xss_response expectations to refine taint flow analysis and enhance regression guarding * feat: refine framework detection and update expectation handling for Echo and Sinatra * feat: implement max_count for taint tracking expectations and deduplicate findings * feat: add strict_unexpected handling for taint-unsanitised-flow in expectation files * feat: enhance deduplication of taint-unsanitised-flow findings by collapsing based on line and severity * feat: add strict_unexpected handling for taint-unsanitised-flow in multiple expectation files * feat: add structural invariant checks for SSA bodies * feat: ensure deterministic phi emission order using BTreeSet * feat: enhance handling of terminators to ensure authoritative flow through successor edges * feat: enhance Goto terminator handling to ensure all successors are marked executable * feat: refactor code for improved readability and organization * feat: simplify predicate checks and enhance readability in SSA handling * feat: implement per-file parse timeout and enhance file size handling * feat: migrate analysis engine toggles from environment variables to configuration file * feat: remove unnecessary whitespace in hostile_input_tests.rs * feat: remove unnecessary whitespace in hostile_input_tests.rs * feat: update dependencies and enhance documentation on language maturity * feat: enhance security headers and improve request body limits * feat: implement sink capability bits for deduplication and enhance evidence tagging * feat: implement dynamic activation handling for gated sinks and enhance validation logic * feat: enhance configuration documentation and clarify inline analysis cache behavior * feat: implement panic recovery during analysis to continue scans past errors * feat: add expectations configuration for taint analysis and performance metrics * feat: enhance error handling and logging during file reading and mutex locking * feat: add cross-file body loading tests and plumbing for CF-1 phase * feat: implement cross-file k=1 context-sensitive inline taint analysis with new tests and fixtures * feat: implement indexed-scan parity in cross-file inline analysis with new dropdown and copy functionality * feat: enhance classification span handling in CFG and AST for improved source attribution * feat: add new Express routes for handling user input and telemetry data * feat: implement ternary expression handling in CFG with diamond structure for JS/TS * feat: implement Phase CF-3 abstract-domain transfer channels in summaries * feat: add support for string-prefix transfer in cross-file calls and update tests * docs: reduce RESULTS.md doc size * feat: implement Phase CF-4 per-return-path summary decomposition with tests * feat: update parameter handling in pass1 and refactor SsaFuncSummary initialization * feat: implement Phase CF-5 for cross-file SCC joint fixed-point convergence with new flags and tests * feat: implement Phase CF-6 with parameter-granularity points-to summaries and associated tests * refactor: update comments and documentation for clarity and consistency * style: format code for consistency and readability * refactor: simplify verdict handling and improve edge checking logic * refactor: optimize path and identifier collection by avoiding unnecessary cloning * chore: update Cargo.toml for Rust version 1.85 and add ignored files; modify CHANGELOG and README for clarity on state analysis defaults * refactor: update documentation and improve clarity in configuration files * refactor: update documentation and improve clarity in configuration files * feat: add JS/TS pass-2 convergence tests and expectations configuration * feat: add Phase 5 regression tests for inline cache origin attribution and update related logic * feat: implement Phase 7 deduplication and alternative path linking for taint findings * feat: implement structural DFS index for anonymous functions and update naming conventions * feat: add Phase 8 regression tests for container-element taint in JS and Python * feat: add engine-depth profiles and explain-engine option for CLI * feat: update expectations and add new README fixtures for multi-file scan regression * feat: implement Phase 11 callback-alias and factory patterns with regression tests * feat: implement Terminator::Switch for multi-way dispatch and add regression tests * feat: add real-CVE benchmark fixtures for CVE-2023-48022, CVE-2019-14939, and CVE-2023-26159 with corresponding patched variants * refactor: extract cfg and ssa_transfer to submodules * refactor: cargo fmt * refactor: remove unnecessary blank line in cfg_tests.rs * refactor: remove unnecessary planning file * chore: update Rust version to 1.88 and bump dependencies in Cargo files * feat: enhance triage UI with new layout and controls, update README for clarity * feat: enhance triage UI with new layout and controls, update README for clarity * chore: remove outdated section from README for version 0.5.0 * docs: improve clarity and consistency in README content * chore: add "GPL-3.0-or-later" to license options in about.toml * chore: update license handling in about.toml and check-licenses.mjs * style: format code for improved readability in TriagePage component * style: format code for improved readability in TriagePage component * chore: enhance license handling and improve body_id scoping in seed lookup * feat: introduce owner and parent body IDs for enhanced seed scoping * feat: implement direction-aware engine provenance with new CLI flag for strict CI gating * feat: add Undef SSA operation for improved control-flow handling * style: improve code formatting for consistency and readability in multiple files * feat: add 16-function chain SCC across multiple files for enhanced analysis * style: simplify code formatting for improved readability in multiple files * fix: update CapHitReason default implementation and improve README clarity * docs: enhance README with detailed explanations of taint analysis and limitations * docs: refine README for clarity and consistency in taint analysis section * style: improve code formatting for better readability in NewScanModal and scans * fix: update cargo-about command to use --offline for deterministic license generation * fix: update cargo-about command to use --offline for deterministic license generation * ci: add step to prime cargo registry cache for deterministic license generation * feat: add support for non-sink collections in authorization analysis * feat: enhance authorization checks with row-level ownership equality and binding tracking * feat: implement self-scoped user handling and enhance ownership checks * refactor: simplify assertions and formatting in authorization analysis tests * fix: normalize line endings in THIRDPARTY-LICENSES.html generation and update README with AI disclosure * docs: update AI disclosure section for clarity and conciseness * feat: add AI Contribution Policy and update contributing guidelines for AI assistance disclosure * feat: enhance authorization analysis with SSA-derived variable type classification * feat: implement auth_finding_to_diag function for enhanced security diagnostics * feat: add args_value_refs to CallSite struct for enhanced argument tracking * feat: add args_value_refs to CallSite struct for enhanced argument tracking * feat: add direction-aware engine provenance with LossDirection classification and new CLI flag * feat: simplify strip_cap_from_call_args call by removing unnecessary line breaks * feat: enhance error message handling in cli_validation_tests for better Windows compatibility * feat: optimize release profile settings in Cargo.toml and update CodeQL configuration * feat: enhance release build process with SBOM generation and SLSA provenance * feat: update actions/checkout and actions/setup-node to v6, enhance CLI options, and improve auth-check summaries * feat: introduce PathFact handling for path safety checks and rejection logic * feat: introduce PathFact handling for path safety checks and rejection logic * feat: update benchmark data and enhance path sanitization logic with new safety checks * feat: document AI assistance in frontend UI development and human review process * feat: add return path facts for enhanced path safety checks and update documentation * chore: update release date for version 0.5.0 in CHANGELOG.md * chore: clean up ci.yml by removing outdated comments and clarifying steps * feat: implement cross-language path sanitizers and validators for enhanced security * feat: enhance SSA value usage tracking by including block terminators and improve path safety checks * feat: enhance switch statement handling by adding per-case path constraints and support for exclusive cases * refactor: simplify conditional formatting and improve code readability in executor and lower modules * feat: add vulnerable examples for various languages demonstrating authentication and sanitization issues * feat: enhance actor context recognition for self-actor identifiers and add support for global non-sink receivers * feat: enhance actor context recognition for self-actor identifiers and add support for global non-sink receivers * feat: add transform classifiers for Java, Go, and Ruby with corresponding tests * refactor: clarify comments on reassign-to-constant idiom and sink behavior in guards.rs --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 --- .github/codeql/codeql-config.yml | 6 + .github/workflows/ci.yml | 230 +- .github/workflows/codeql.yml | 45 + .github/workflows/docs.yml | 50 + .github/workflows/release-build.yml | 178 +- .gitignore | 5 + .nyx/triage.json | 5 + AI-POLICY.md | 36 + CHANGELOG.md | 485 +- CLA.md | 73 + CONTRIBUTING.md | 24 +- Cargo.lock | 921 +- Cargo.toml | 58 +- README.md | 497 +- ROADMAP.md | 22 + SECURITY.md | 6 +- THIRDPARTY-LICENSES.html | 6671 +++++++++ about.toml | 76 +- action-scripts/download.sh | 148 + action-scripts/run.sh | 87 + action.yml | 68 + assets/nyx-logo-text.png | Bin 0 -> 331782 bytes assets/nyx-logo.png | Bin 0 -> 532820 bytes assets/nyx-wordmark.svg | 10 + assets/screenshots/cli-scan.png | Bin 0 -> 455156 bytes assets/screenshots/demo.gif | Bin 0 -> 7472129 bytes assets/screenshots/docs/cli-configshow.png | Bin 0 -> 209672 bytes .../screenshots/docs/cli-explain-engine.png | Bin 0 -> 417126 bytes assets/screenshots/docs/cli-failon.png | Bin 0 -> 311733 bytes assets/screenshots/docs/cli-idxstatus.png | Bin 0 -> 161376 bytes assets/screenshots/docs/cli-rollup-tail.png | Bin 0 -> 303008 bytes .../screenshots/docs/cli-scan-quickstart.png | Bin 0 -> 316797 bytes assets/screenshots/docs/serve-config.png | Bin 0 -> 322156 bytes assets/screenshots/docs/serve-explorer.png | Bin 0 -> 168461 bytes .../screenshots/docs/serve-finding-detail.png | Bin 0 -> 240066 bytes .../screenshots/docs/serve-findings-list.png | Bin 0 -> 347616 bytes assets/screenshots/docs/serve-overview.png | Bin 0 -> 201258 bytes assets/screenshots/docs/serve-rules.png | Bin 0 -> 274139 bytes assets/screenshots/docs/serve-scan-detail.png | Bin 0 -> 162819 bytes assets/screenshots/docs/serve-scans.png | Bin 0 -> 115848 bytes assets/screenshots/docs/serve-triage.png | Bin 0 -> 305614 bytes assets/screenshots/explorer.png | Bin 0 -> 365180 bytes assets/screenshots/finding-detail.png | Bin 0 -> 425900 bytes assets/screenshots/overview.png | Bin 0 -> 397658 bytes assets/screenshots/triage.png | Bin 0 -> 363196 bytes benches/fixtures/state_bench.c | 61 + benches/scan_bench.rs | 77 + book.toml | 20 + build.rs | 72 + default-nyx.conf | 211 +- deny.toml | 59 +- docs/SUMMARY.md | 29 + docs/advanced-analysis.md | 221 + docs/assets | 1 + docs/auth.md | 91 + docs/changelog.md | 1 + docs/cli.md | 104 +- docs/configuration.md | 254 +- docs/detectors.md | 103 +- docs/detectors/cfg.md | 175 +- docs/detectors/patterns.md | 161 +- docs/detectors/state.md | 238 +- docs/detectors/taint.md | 234 +- docs/how-it-works.md | 46 + docs/index.md | 32 - docs/installation.md | 97 +- docs/language-maturity.md | 266 + docs/output.md | 36 +- docs/quickstart.md | 136 +- docs/roadmap.md | 1 + docs/rules.md | 258 + docs/rules/c.md | 89 - docs/rules/cpp.md | 66 - docs/rules/go.md | 148 - docs/rules/index.md | 79 - docs/rules/java.md | 135 - docs/rules/javascript.md | 138 - docs/rules/php.md | 138 - docs/rules/python.md | 142 - docs/rules/ruby.md | 132 - docs/rules/rust.md | 105 - docs/rules/typescript.md | 81 - docs/serve.md | 124 + examples/cfg_analysis/example.js | 74 - examples/cfg_analysis/example.rs | 99 - examples/cross-file/config.rs | 36 - examples/cross-file/exec.rs | 41 - examples/cross-file/main.rs | 148 - examples/cross-file/sanitize.rs | 30 - examples/sanatize/example.rs | 96 - examples/single-func/example.rs | 8 - examples/standard/test.rs | 30 - frontend/.prettierignore | 4 + frontend/.prettierrc.json | 4 + frontend/eslint.config.js | 38 + frontend/index.html | 13 + frontend/package-lock.json | 5485 ++++++++ frontend/package.json | 50 + frontend/scripts/check-licenses.mjs | 81 + frontend/src/App.tsx | 17 + frontend/src/api/client.ts | 104 + frontend/src/api/mutations/config.ts | 157 + frontend/src/api/mutations/rules.ts | 24 + frontend/src/api/mutations/scans.ts | 34 + frontend/src/api/mutations/triage.ts | 86 + frontend/src/api/queries/config.ts | 48 + frontend/src/api/queries/debug.ts | 111 + frontend/src/api/queries/explorer.ts | 37 + frontend/src/api/queries/findings.ts | 63 + frontend/src/api/queries/health.ts | 11 + frontend/src/api/queries/overview.ts | 17 + frontend/src/api/queries/rules.ts | 18 + frontend/src/api/queries/scans.ts | 89 + frontend/src/api/queries/triage.ts | 67 + frontend/src/api/queryClient.ts | 11 + frontend/src/api/types.ts | 593 + .../src/components/CopyMarkdownButton.tsx | 171 + .../components/charts/HorizontalBarChart.tsx | 84 + frontend/src/components/charts/LineChart.tsx | 139 + .../components/data-display/CodeViewer.tsx | 185 + .../src/components/data-display/FileTree.tsx | 155 + .../components/explorer/AnalysisWorkspace.tsx | 35 + frontend/src/components/icons/Icons.tsx | 170 + frontend/src/components/layout/AppLayout.tsx | 67 + frontend/src/components/layout/HeaderBar.tsx | 90 + frontend/src/components/layout/Sidebar.tsx | 178 + frontend/src/components/ui/Dropdown.tsx | 103 + frontend/src/components/ui/EmptyState.tsx | 17 + frontend/src/components/ui/ErrorState.tsx | 13 + frontend/src/components/ui/LoadingState.tsx | 7 + frontend/src/components/ui/Modal.tsx | 38 + frontend/src/components/ui/Pagination.tsx | 75 + frontend/src/components/ui/StatCard.tsx | 32 + frontend/src/contexts/SSEContext.tsx | 109 + frontend/src/graph/adapters/callgraph.ts | 57 + frontend/src/graph/adapters/cfg.ts | 85 + .../src/graph/components/CallGraphCanvas.tsx | 125 + .../src/graph/components/CfgGraphCanvas.tsx | 204 + .../src/graph/components/GraphToolbar.tsx | 88 + frontend/src/graph/hooks/useElkLayout.ts | 99 + frontend/src/graph/layout/elk.ts | 288 + frontend/src/graph/layout/text.ts | 119 + frontend/src/graph/reduction/cfgCompaction.ts | 165 + frontend/src/graph/reduction/neighborhood.ts | 66 + .../src/graph/rendering/sigma/SigmaGraph.tsx | 332 + .../src/graph/rendering/sigma/buildGraph.ts | 53 + .../src/graph/rendering/sigma/edgeOverlay.ts | 656 + frontend/src/graph/styles.ts | 258 + frontend/src/graph/types.ts | 111 + frontend/src/hooks/useDebounce.ts | 16 + frontend/src/hooks/useFileTree.ts | 129 + frontend/src/hooks/useFindingsURLState.ts | 117 + frontend/src/main.tsx | 10 + frontend/src/modals/CodeViewerModal.tsx | 42 + frontend/src/modals/NewScanModal.tsx | 114 + frontend/src/pages/ConfigPage.tsx | 519 + frontend/src/pages/ExplorerPage.tsx | 878 ++ frontend/src/pages/FindingDetailPage.tsx | 1024 ++ frontend/src/pages/FindingsPage.tsx | 729 + frontend/src/pages/OverviewPage.tsx | 341 + frontend/src/pages/RulesPage.tsx | 360 + frontend/src/pages/ScanComparePage.tsx | 414 + frontend/src/pages/ScanDetailPage.tsx | 467 + frontend/src/pages/ScansPage.tsx | 297 + frontend/src/pages/StubPage.tsx | 56 + frontend/src/pages/TriagePage.tsx | 1305 ++ .../src/pages/debug/AbstractInterpPage.tsx | 170 + frontend/src/pages/debug/CallGraphPage.tsx | 63 + frontend/src/pages/debug/CfgViewerPage.tsx | 37 + frontend/src/pages/debug/DebugLayout.tsx | 31 + frontend/src/pages/debug/FunctionSelector.tsx | 56 + frontend/src/pages/debug/SsaViewerPage.tsx | 112 + .../src/pages/debug/SummaryExplorerPage.tsx | 230 + frontend/src/pages/debug/SymexPage.tsx | 90 + frontend/src/pages/debug/TaintViewerPage.tsx | 126 + frontend/src/styles/global.css | 5144 +++++++ frontend/src/test/api/client.test.ts | 38 + .../src/test/components/Pagination.test.tsx | 95 + .../src/test/components/StatCard.test.tsx | 65 + .../test/components/stateComponents.test.tsx | 66 + frontend/src/test/graph/cfgAdapter.test.ts | 91 + frontend/src/test/graph/compactGraph.test.ts | 139 + frontend/src/test/graph/nodeStyles.test.ts | 93 + frontend/src/test/hooks/useDebounce.test.ts | 85 + frontend/src/test/setup.ts | 1 + .../src/test/utils/findingMarkdown.test.ts | 188 + frontend/src/test/utils/formatDate.test.ts | 136 + .../src/test/utils/syntaxHighlight.test.ts | 116 + frontend/src/test/utils/truncPath.test.ts | 47 + frontend/src/utils/findingMarkdown.ts | 205 + frontend/src/utils/formatDate.ts | 47 + frontend/src/utils/parseNote.ts | 23 + frontend/src/utils/syntaxHighlight.ts | 145 + frontend/src/utils/truncPath.ts | 8 + frontend/src/vite-env.d.ts | 1 + frontend/tsconfig.json | 25 + frontend/tsconfig.tsbuildinfo | 1 + frontend/vite.config.ts | 49 + scripts/README.md | 27 + scripts/check.sh | 108 + scripts/fix.sh | 133 + src/abstract_interp/bit_domain.rs | 573 + src/abstract_interp/interval.rs | 1035 ++ src/abstract_interp/mod.rs | 712 + src/abstract_interp/path_domain.rs | 1859 +++ src/abstract_interp/string_domain.rs | 678 + src/ast.rs | 2392 +++- src/auth_analysis/checks.rs | 719 + src/auth_analysis/config.rs | 1617 +++ src/auth_analysis/extract/actix_web.rs | 273 + src/auth_analysis/extract/axum.rs | 617 + src/auth_analysis/extract/common.rs | 2480 ++++ src/auth_analysis/extract/django.rs | 449 + src/auth_analysis/extract/echo.rs | 209 + src/auth_analysis/extract/express.rs | 109 + src/auth_analysis/extract/fastify.rs | 191 + src/auth_analysis/extract/flask.rs | 237 + src/auth_analysis/extract/gin.rs | 211 + src/auth_analysis/extract/koa.rs | 109 + src/auth_analysis/extract/mod.rs | 65 + src/auth_analysis/extract/rails.rs | 335 + src/auth_analysis/extract/rocket.rs | 145 + src/auth_analysis/extract/sinatra.rs | 157 + src/auth_analysis/extract/spring.rs | 326 + src/auth_analysis/mod.rs | 780 ++ src/auth_analysis/model.rs | 277 + src/auth_analysis/sql_semantics.rs | 334 + src/callgraph.rs | 1043 +- src/cfg.rs | 1919 --- src/cfg/blocks.rs | 1038 ++ src/cfg/cfg_tests.rs | 2043 +++ src/cfg/conditions.rs | 505 + src/cfg/decorators.rs | 556 + src/cfg/helpers.rs | 702 + src/cfg/imports.rs | 365 + src/cfg/literals.rs | 1180 ++ src/cfg/mod.rs | 3672 +++++ src/cfg/params.rs | 409 + src/cfg_analysis/auth.rs | 32 +- src/cfg_analysis/dominators.rs | 10 +- src/cfg_analysis/error_handling.rs | 140 +- src/cfg_analysis/guards.rs | 820 +- src/cfg_analysis/mod.rs | 63 +- src/cfg_analysis/resources.rs | 135 +- src/cfg_analysis/rules.rs | 497 +- src/cfg_analysis/tests.rs | 624 +- src/cfg_analysis/unreachable.rs | 75 +- src/cli.rs | 253 +- src/commands/config.rs | 46 +- src/commands/index.rs | 205 +- src/commands/mod.rs | 279 +- src/commands/scan.rs | 2765 +++- src/commands/serve.rs | 159 + src/constraint/domain.rs | 1464 ++ src/constraint/lower.rs | 686 + src/constraint/mod.rs | 59 + src/constraint/solver.rs | 422 + src/constraint/tests.rs | 1086 ++ src/convergence_telemetry.rs | 352 + src/database.rs | 2925 +++- src/engine_notes.rs | 622 + src/errors.rs | 121 + src/evidence.rs | 1047 +- src/fmt.rs | 408 +- src/interop.rs | 6 - src/labels/c.rs | 59 +- src/labels/cpp.rs | 93 +- src/labels/go.rs | 118 +- src/labels/java.rs | 165 +- src/labels/javascript.rs | 552 +- src/labels/mod.rs | 1498 +- src/labels/php.rs | 106 +- src/labels/python.rs | 297 +- src/labels/ruby.rs | 173 +- src/labels/rust.rs | 273 +- src/labels/typescript.rs | 513 +- src/lib.rs | 12 +- src/main.rs | 42 +- src/output.rs | 459 +- src/patterns/ejs.rs | 191 + src/patterns/javascript.rs | 129 + src/patterns/mod.rs | 8 +- src/patterns/typescript.rs | 143 + src/rank.rs | 416 +- src/rust_resolve.rs | 614 + src/server/app.rs | 324 + src/server/assets.rs | 39 + src/server/assets/favicon.svg | 4 + src/server/debug.rs | 1376 ++ src/server/jobs.rs | 642 + src/server/mod.rs | 12 + src/server/models.rs | 727 + src/server/progress.rs | 272 + src/server/routes/config.rs | 547 + src/server/routes/debug.rs | 625 + src/server/routes/events.rs | 37 + src/server/routes/explorer.rs | 355 + src/server/routes/files.rs | 77 + src/server/routes/findings.rs | 206 + src/server/routes/health.rs | 24 + src/server/routes/mod.rs | 30 + src/server/routes/overview.rs | 437 + src/server/routes/rules.rs | 316 + src/server/routes/scans.rs | 658 + src/server/routes/triage.rs | 424 + src/server/scan_log.rs | 131 + src/server/security.rs | 145 + src/server/triage_sync.rs | 388 + src/ssa/alias.rs | 321 + src/ssa/const_prop.rs | 754 + src/ssa/copy_prop.rs | 228 + src/ssa/dce.rs | 449 + src/ssa/display.rs | 147 + src/ssa/heap.rs | 1350 ++ src/ssa/invariants.rs | 915 ++ src/ssa/ir.rs | 213 + src/ssa/lower.rs | 2864 ++++ src/ssa/mod.rs | 90 + src/ssa/param_points_to.rs | 649 + src/ssa/pointsto.rs | 314 + src/ssa/static_map.rs | 446 + src/ssa/type_facts.rs | 1487 ++ src/state/domain.rs | 19 + src/state/engine.rs | 293 +- src/state/facts.rs | 610 +- src/state/lattice.rs | 24 + src/state/mod.rs | 139 +- src/state/symbol.rs | 183 +- src/state/transfer.rs | 891 +- src/summary/mod.rs | 1422 +- src/summary/points_to.rs | 338 + src/summary/ssa_summary.rs | 455 + src/summary/tests.rs | 3413 ++++- src/suppress/mod.rs | 4 +- src/symbol/mod.rs | 166 +- src/symbol/tests.rs | 155 +- src/symex/executor.rs | 2159 +++ src/symex/heap.rs | 777 ++ src/symex/interproc.rs | 1589 +++ src/symex/loops.rs | 996 ++ src/symex/mod.rs | 624 + src/symex/smt.rs | 1059 ++ src/symex/state.rs | 551 + src/symex/strings.rs | 1661 +++ src/symex/transfer.rs | 2427 ++++ src/symex/value.rs | 1268 ++ src/symex/witness.rs | 1209 ++ src/taint/backwards.rs | 1119 ++ src/taint/domain.rs | 537 +- src/taint/mod.rs | 1561 ++- src/taint/path_state.rs | 1195 +- src/taint/ssa_transfer/events.rs | 433 + src/taint/ssa_transfer/inline.rs | 367 + src/taint/ssa_transfer/mod.rs | 7336 ++++++++++ src/taint/ssa_transfer/state.rs | 758 + src/taint/ssa_transfer/summary_extract.rs | 992 ++ src/taint/ssa_transfer/tests.rs | 1314 ++ src/taint/tests.rs | 3584 ++++- src/taint/transfer.rs | 458 - src/utils/analysis_options.rs | 272 + src/utils/config.rs | 1134 +- src/utils/ext.rs | 75 + src/utils/mod.rs | 5 +- src/utils/path.rs | 235 + src/utils/project.rs | 461 + src/utils/query_cache.rs | 12 +- src/walk.rs | 176 +- tests/abstract_transfer_tests.rs | 408 + tests/auth_analysis_tests.rs | 1051 ++ tests/backwards_analysis_tests.rs | 117 + tests/benchmark/README.md | 121 + tests/benchmark/RESULTS.md | 552 + .../corpus/c/buffer_overflow/buffer_sprintf.c | 10 + .../corpus/c/buffer_overflow/buffer_strcat.c | 9 + .../corpus/c/buffer_overflow/buffer_strcpy.c | 9 + tests/benchmark/corpus/c/cmdi/cmdi_exec.c | 8 + tests/benchmark/corpus/c/cmdi/cmdi_fgets.c | 9 + tests/benchmark/corpus/c/cmdi/cmdi_popen.c | 9 + tests/benchmark/corpus/c/cmdi/cmdi_system.c | 8 + .../corpus/c/fmt_string/fmt_fprintf.c | 8 + .../corpus/c/fmt_string/fmt_printf.c | 8 + .../c/path_traversal/path_traversal_fopen.c | 9 + .../c/path_traversal/path_traversal_open.c | 9 + tests/benchmark/corpus/c/safe/safe_atoi.c | 9 + tests/benchmark/corpus/c/safe/safe_constant.c | 7 + .../c/safe/safe_cross_function_dotdot.c | 16 + .../c/safe/safe_direct_path_sanitizer.c | 17 + .../benchmark/corpus/c/safe/safe_reassigned.c | 9 + .../corpus/c/safe/safe_sanitize_func.c | 11 + .../corpus/c/safe/safe_sanitized_snprintf.c | 9 + .../c/safe/safe_status_code_sanitizer.c | 21 + tests/benchmark/corpus/c/safe/safe_strncpy.c | 10 + tests/benchmark/corpus/c/safe/safe_strtol.c | 9 + .../benchmark/corpus/c/safe/safe_validated.c | 13 + tests/benchmark/corpus/c/ssrf/ssrf_curl.c | 11 + .../cpp/buffer_overflow/buffer_sprintf.cpp | 10 + .../cpp/buffer_overflow/buffer_strcpy.cpp | 9 + tests/benchmark/corpus/cpp/cmdi/cmdi_exec.cpp | 8 + .../corpus/cpp/cmdi/cmdi_getline.cpp | 10 + .../benchmark/corpus/cpp/cmdi/cmdi_popen.cpp | 9 + .../benchmark/corpus/cpp/cmdi/cmdi_system.cpp | 8 + .../corpus/cpp/fmt_string/fmt_fprintf.cpp | 8 + .../corpus/cpp/fmt_string/fmt_printf.cpp | 8 + .../path_traversal/path_traversal_fopen.cpp | 9 + .../path_traversal/path_traversal_open.cpp | 10 + .../corpus/cpp/safe/safe_constant.cpp | 6 + .../cpp/safe/safe_cross_function_dotdot.cpp | 13 + .../cpp/safe/safe_direct_path_sanitizer.cpp | 16 + .../cpp/safe/safe_optional_path_sanitizer.cpp | 18 + .../corpus/cpp/safe/safe_reassigned.cpp | 8 + .../corpus/cpp/safe/safe_sanitize_func.cpp | 12 + .../corpus/cpp/safe/safe_snprintf.cpp | 9 + tests/benchmark/corpus/cpp/safe/safe_stoi.cpp | 10 + .../corpus/cpp/safe/safe_strncpy.cpp | 10 + .../benchmark/corpus/cpp/safe/safe_strtol.cpp | 9 + .../corpus/cpp/safe/safe_validated.cpp | 13 + .../corpus/cpp/ssrf/ssrf_connect.cpp | 15 + tests/benchmark/corpus/cpp/ssrf/ssrf_curl.cpp | 11 + tests/benchmark/corpus/go/cmdi/cmdi_direct.go | 11 + .../benchmark/corpus/go/cmdi/cmdi_indirect.go | 12 + .../corpus/go/cmdi/cross_source/handler.go | 11 + .../corpus/go/cmdi/cross_source/input.go | 7 + .../benchmark/corpus/go/cmdi_env/cmdi_env.go | 11 + .../corpus/go/fmt_string/fmt_injection.go | 11 + .../interproc_sanitizer_wrap.go | 16 + .../interproc_taint_propagation.go | 17 + .../go/path_pruning/safe_early_return.go | 17 + .../path_traversal/cross_sanitizer/handler.go | 12 + .../cross_sanitizer/sanitize.go | 7 + .../go/path_traversal/path_traversal.go | 12 + .../benchmark/corpus/go/safe/safe_constant.go | 7 + .../go/safe/safe_cross_function_dotdot.go | 20 + .../go/safe/safe_direct_path_sanitizer.go | 21 + .../corpus/go/safe/safe_dominated.go | 17 + .../corpus/go/safe/safe_interprocedural.go | 25 + .../corpus/go/safe/safe_non_security_sink.go | 13 + .../corpus/go/safe/safe_reassigned.go | 12 + .../corpus/go/safe/safe_sanitized.go | 22 + .../corpus/go/safe/safe_strconv_atoi.go | 17 + .../go/safe/safe_tuple_path_sanitizer.go | 25 + .../corpus/go/safe/safe_type_check.go | 19 + .../corpus/go/safe/safe_validated.go | 17 + tests/benchmark/corpus/go/sqli/sqli_concat.go | 12 + .../benchmark/corpus/go/sqli/sqli_queryrow.go | 13 + .../benchmark/corpus/go/sqli/sqli_sprintf.go | 13 + .../corpus/go/ssrf/safe_ssrf_hardcoded.go | 7 + .../benchmark/corpus/go/ssrf/ssrf_http_get.go | 10 + .../corpus/go/ssrf/ssrf_new_request.go | 11 + tests/benchmark/corpus/go/xss/xss_fprintf.go | 11 + .../benchmark/corpus/go/xss/xss_gin_source.go | 11 + .../corpus/go/xss/xss_template_html.go | 12 + .../corpus/java/auth/SafePreAuthorize.java | 21 + .../corpus/java/auth/VulnNoPreAuthorize.java | 16 + .../corpus/java/cmdi/CmdiDirect.java | 8 + .../corpus/java/cmdi/CmdiIndirect.java | 8 + .../java/code_injection/CodeInjection.java | 8 + .../benchmark/corpus/java/deser/DeserOis.java | 10 + .../corpus/java/deser/DeserSource.java | 10 + .../InterprocSanitizerWrap.java | 14 + .../InterprocTaintPropagation.java | 14 + .../java/path_traversal/PathTraversal.java | 11 + .../corpus/java/safe/SafeConstant.java | 11 + .../java/safe/SafeCrossFunctionDotdot.java | 17 + .../java/safe/SafeDirectPathSanitizer.java | 18 + .../corpus/java/safe/SafeDominated.java | 12 + .../corpus/java/safe/SafeInterprocedural.java | 14 + .../corpus/java/safe/SafeNonSecuritySink.java | 12 + .../java/safe/SafeOptionalPathSanitizer.java | 20 + .../corpus/java/safe/SafeReassigned.java | 10 + .../corpus/java/safe/SafeSanitized.java | 11 + .../corpus/java/safe/SafeTypeCheck.java | 17 + .../corpus/java/safe/SafeValidated.java | 12 + .../java/safe/safe_prepared_statement.java | 18 + .../corpus/java/sqli/SqliConcat.java | 11 + .../corpus/java/sqli/SqliFormat.java | 11 + .../java/sqli/sqli_statement_vs_prepared.java | 14 + .../corpus/java/ssrf/SsrfHttpClient.java | 12 + .../corpus/java/ssrf/SsrfRequest.java | 11 + .../corpus/java/xss/XssReflected.java | 10 + .../corpus/javascript/cmdi/cmdi_direct.js | 7 + .../corpus/javascript/cmdi/cmdi_indirect.js | 7 + .../code_injection/code_injection.js | 7 + .../code_injection/code_injection_indirect.js | 8 + .../interproc_sanitizer_wrap.js | 12 + .../interproc_taint_propagation.js | 13 + .../path_pruning/safe_early_return.js | 13 + .../path_traversal/path_traversal.js | 7 + .../corpus/javascript/safe/safe_constant.js | 5 + .../safe/safe_cross_function_dotdot.js | 12 + .../safe/safe_direct_path_sanitizer.js | 15 + .../safe/safe_dom_globals_and_methods.js | 37 + .../corpus/javascript/safe/safe_dominated.js | 9 + .../safe/safe_happy_path_error_check.js | 25 + .../javascript/safe/safe_interprocedural.js | 10 + .../javascript/safe/safe_non_security_sink.js | 7 + .../safe/safe_null_path_sanitizer.js | 16 + .../safe/safe_object_destructure_sanitize.js | 13 + .../corpus/javascript/safe/safe_parseInt.js | 7 + .../corpus/javascript/safe/safe_reassigned.js | 7 + .../corpus/javascript/safe/safe_sanitized.js | 8 + .../javascript/safe/safe_switch_dispatch.js | 16 + .../corpus/javascript/safe/safe_type_check.js | 7 + .../corpus/javascript/safe/safe_validated.js | 9 + .../corpus/javascript/sqli/sqli_concat.js | 6 + .../corpus/javascript/sqli/sqli_template.js | 6 + .../javascript/ssrf/safe_ssrf_hardcoded.js | 5 + .../corpus/javascript/ssrf/ssrf_axios.js | 7 + .../corpus/javascript/ssrf/ssrf_fetch.js | 6 + .../javascript/xss/cross_propagation/app.js | 7 + .../xss/cross_propagation/transform.js | 4 + .../vuln_object_destructure_no_sanitize.js | 11 + .../javascript/xss/xss_document_write.js | 6 + .../corpus/javascript/xss/xss_location.js | 6 + .../javascript/xss/xss_react_dangerously.js | 7 + .../corpus/javascript/xss/xss_reflected.js | 6 + .../corpus/php/auth/safe_isgranted.php | 18 + .../corpus/php/auth/vuln_no_isgranted.php | 7 + .../benchmark/corpus/php/cmdi/cmdi_direct.php | 3 + .../corpus/php/cmdi/cmdi_indirect.php | 3 + .../php/code_injection/code_injection.php | 3 + .../code_injection/code_injection_assert.php | 3 + .../corpus/php/deser/deser_unserialize.php | 4 + .../interproc_sanitizer_wrap.php | 9 + .../interproc_taint_propagation.php | 9 + .../php/path_traversal/path_traversal.php | 3 + .../path_traversal/path_traversal_copy.php | 4 + .../corpus/php/safe/safe_constant.php | 2 + .../php/safe/safe_cross_function_dotdot.php | 14 + .../php/safe/safe_direct_path_sanitizer.php | 15 + .../corpus/php/safe/safe_dominated.php | 5 + .../corpus/php/safe/safe_filter_input.php | 4 + .../corpus/php/safe/safe_interprocedural.php | 6 + .../php/safe/safe_non_security_sink.php | 4 + .../php/safe/safe_nullable_path_sanitizer.php | 18 + .../corpus/php/safe/safe_reassigned.php | 4 + .../corpus/php/safe/safe_sanitized.php | 4 + .../corpus/php/safe/safe_type_check.php | 6 + .../corpus/php/safe/safe_validated.php | 5 + .../benchmark/corpus/php/sqli/sqli_concat.php | 4 + .../corpus/php/sqli/sqli_pdo_raw.php | 7 + .../corpus/php/sqli/sqli_sprintf.php | 4 + .../corpus/php/ssrf/safe_ssrf_hardcoded.php | 3 + tests/benchmark/corpus/php/ssrf/ssrf_curl.php | 4 + .../corpus/php/xss/xss_reflected.php | 3 + .../python/auth/vuln_no_auth_decorator.py | 12 + .../corpus/python/cmdi/cmdi_direct.py | 6 + .../corpus/python/cmdi/cmdi_indirect.py | 7 + .../corpus/python/cmdi/cmdi_popen_shell.py | 8 + .../python/cmdi/cross_indirect_sink/app.py | 11 + .../python/cmdi/cross_indirect_sink/helper.py | 5 + .../python/cmdi/cross_propagation/app.py | 6 + .../python/cmdi/cross_propagation/wrapper.py | 2 + .../corpus/python/cmdi/cross_sanitizer/app.py | 6 + .../python/cmdi/cross_sanitizer/sanitizer.py | 4 + .../python/cmdi/cross_source/handler.py | 5 + .../corpus/python/cmdi/cross_source/reader.py | 4 + .../python/code_injection/code_injection.py | 6 + .../code_injection/code_injection_exec.py | 5 + .../corpus/python/deser/deser_pickle.py | 7 + .../interproc_sanitizer_wrap.py | 10 + .../interproc_taint_propagation.py | 10 + .../python/path_pruning/safe_early_return.py | 10 + .../python/path_traversal/path_traversal.py | 5 + .../corpus/python/safe/safe_constant.py | 6 + .../python/safe/safe_cross_function_dotdot.py | 14 + .../python/safe/safe_direct_path_sanitizer.py | 17 + .../corpus/python/safe/safe_dominated.py | 10 + .../corpus/python/safe/safe_int_cast.py | 6 + .../python/safe/safe_interprocedural.py | 10 + .../safe/safe_login_required_decorator.py | 16 + .../python/safe/safe_non_security_sink.py | 8 + .../safe/safe_optional_path_sanitizer.py | 19 + .../corpus/python/safe/safe_reassigned.py | 7 + .../corpus/python/safe/safe_sanitized.py | 8 + .../corpus/python/safe/safe_type_check.py | 14 + .../corpus/python/safe/safe_validated.py | 10 + .../python/safe/safe_validator_sentinel.py | 22 + .../python/safe/safe_with_context_sanitize.py | 16 + .../corpus/python/sqli/sqli_concat.py | 9 + .../corpus/python/sqli/sqli_format.py | 9 + .../sqli/vuln_validator_sentinel_bypass.py | 22 + .../corpus/python/ssrf/safe_ssrf_constant.py | 5 + .../corpus/python/ssrf/ssrf_httpx_post.py | 7 + .../corpus/python/ssrf/ssrf_requests.py | 7 + .../corpus/python/xss/xss_reflected.py | 5 + .../corpus/python/xss/xss_template_string.py | 6 + .../corpus/ruby/auth/safe_before_action.rb | 15 + .../corpus/ruby/cmdi/cmdi_backtick.rb | 4 + .../benchmark/corpus/ruby/cmdi/cmdi_system.rb | 4 + .../code_injection/code_injection_eval.rb | 5 + .../corpus/ruby/deser/deser_marshal.rb | 5 + .../benchmark/corpus/ruby/deser/deser_yaml.rb | 7 + .../interproc_sanitizer_wrap.rb | 12 + .../interproc_taint_propagation.rb | 12 + .../path_traversal_send_file.rb | 4 + .../corpus/ruby/safe/safe_constant.rb | 4 + .../ruby/safe/safe_cross_function_dotdot.rb | 9 + .../ruby/safe/safe_direct_path_sanitizer.rb | 10 + .../corpus/ruby/safe/safe_dominated.rb | 9 + .../corpus/ruby/safe/safe_interprocedural.rb | 10 + .../ruby/safe/safe_nil_path_sanitizer.rb | 11 + .../ruby/safe/safe_non_security_sink.rb | 7 + .../corpus/ruby/safe/safe_reassigned.rb | 5 + .../corpus/ruby/safe/safe_sanitized.rb | 7 + .../corpus/ruby/safe/safe_strong_params.rb | 13 + .../corpus/ruby/safe/safe_type_check.rb | 7 + .../corpus/ruby/safe/safe_validated.rb | 9 + .../corpus/ruby/sqli/sqli_execute.rb | 4 + .../corpus/ruby/sqli/sqli_find_by_sql.rb | 4 + .../corpus/ruby/sqli/sqli_raw_connection.rb | 9 + .../corpus/ruby/ssrf/safe_ssrf_hardcoded.rb | 5 + .../corpus/ruby/ssrf/ssrf_httparty.rb | 6 + .../corpus/ruby/ssrf/ssrf_net_http.rb | 6 + .../corpus/ruby/xss/xss_html_safe.rb | 4 + tests/benchmark/corpus/ruby/xss/xss_raw.rb | 4 + .../rust/auth/actix_scoped_write_missing.rs | 28 + .../rust/auth/db_connection_type_inferred.rs | 45 + .../corpus/rust/auth/hashmap_local_noise.rs | 31 + .../corpus/rust/auth/helper_scoped_params.rs | 18 + .../rust/auth/require_resource_role_helper.rs | 57 + .../rust/auth/row_ownership_equality.rs | 48 + .../rust/auth/row_ownership_no_early_exit.rs | 42 + .../corpus/rust/auth/self_actor_uid_copy.rs | 49 + .../corpus/rust/auth/self_publish_email.rs | 56 + .../corpus/rust/auth/self_scoped_user.rs | 21 + .../corpus/rust/auth/sql_join_acl.rs | 63 + .../corpus/rust/auth/transitive_helper.rs | 59 + .../rust/auth/true_positive_missing_check.rs | 15 + tests/benchmark/corpus/rust/cmdi/cmdi_args.rs | 7 + .../corpus/rust/cmdi/cmdi_command.rs | 7 + .../corpus/rust/cmdi/cmdi_command_output.rs | 8 + .../corpus/rust/cmdi/cmdi_format_macro.rs | 8 + .../corpus/rust/cmdi/cmdi_indirect.rs | 11 + .../rust/cmdi/cmdi_indirect_multisink.rs | 13 + .../corpus/rust/cmdi/cmdi_match_source.rs | 10 + .../rust/cmdi/cmdi_static_map_dangerous.rs | 15 + .../corpus/rust/cmdi/cmdi_string_concat.rs | 8 + .../rust/cmdi/cross_propagation/main.rs | 10 + .../rust/cmdi/cross_propagation/transform.rs | 3 + .../corpus/rust/cmdi/cross_sanitizer/main.rs | 10 + .../rust/cmdi/cross_sanitizer/sanitizer.rs | 3 + .../corpus/rust/deser/deser_serde_yaml.rs | 10 + .../rust/path_traversal/path_file_create.rs | 7 + .../rust/path_traversal/path_file_open.rs | 7 + .../corpus/rust/path_traversal/path_read.rs | 8 + .../corpus/rust/path_traversal/path_remove.rs | 7 + .../corpus/rust/path_traversal/path_write.rs | 7 + .../corpus/rust/safe/safe_constant.rs | 5 + .../rust/safe/safe_cross_function_dotdot.rs | 23 + .../corpus/rust/safe/safe_direct_sanitizer.rs | 21 + .../corpus/rust/safe/safe_dominated.rs | 10 + .../corpus/rust/safe/safe_hardcoded_url.rs | 4 + .../corpus/rust/safe/safe_interprocedural.rs | 17 + .../corpus/rust/safe/safe_match_guard.rs | 11 + .../corpus/rust/safe/safe_option_sanitizer.rs | 26 + .../corpus/rust/safe/safe_parsed_port.rs | 8 + .../rust/safe/safe_path_contains_dotdot.rs | 17 + .../corpus/rust/safe/safe_path_is_absolute.rs | 20 + .../corpus/rust/safe/safe_reassigned.rs | 8 + .../corpus/rust/safe/safe_sanitized_shell.rs | 12 + .../corpus/rust/safe/safe_shell_metachar.rs | 10 + .../rust/safe/safe_static_map_lookup.rs | 12 + .../corpus/rust/safe/safe_type_check.rs | 10 + .../corpus/rust/safe/safe_validated.rs | 11 + .../sqli/sqli_metachar_gate_wrong_sink.rs | 14 + .../corpus/rust/sqli/sqli_rusqlite_format.rs | 9 + .../corpus/rust/ssrf/ssrf_client_builder.rs | 7 + .../corpus/rust/ssrf/ssrf_indirect.rs | 10 + .../corpus/rust/ssrf/ssrf_reqwest.rs | 6 + .../rust/traversal/traversal_no_sanitizer.rs | 13 + .../corpus/rust/xss/axum_html/Cargo.toml | 8 + .../corpus/rust/xss/axum_html/main.rs | 11 + .../typescript/cmdi/cmdi_async_wrapper.ts | 12 + .../typescript/cmdi/cmdi_exec_template.ts | 9 + .../code_injection/code_exec_eval.ts | 8 + .../code_injection/code_exec_new_function.ts | 8 + .../corpus/typescript/crypto/weak_hash_md5.ts | 5 + .../insecure_config/cookie_httponly.ts | 12 + .../insecure_config/reject_unauthorized.ts | 6 + .../interprocedural/interproc_class_method.ts | 17 + .../typescript/open_redirect/location_href.ts | 7 + .../path_traversal/path_traversal_sendfile.ts | 7 + .../typescript/prototype/proto_assignment.ts | 6 + .../typescript/safe/safe_constant_query.ts | 8 + .../safe/safe_cross_function_dotdot.ts | 12 + .../safe/safe_direct_path_sanitizer.ts | 15 + .../corpus/typescript/safe/safe_dompurify.ts | 10 + .../corpus/typescript/safe/safe_encode_uri.ts | 11 + .../typescript/safe/safe_hardcoded_url.ts | 8 + .../safe/safe_iife_closure_sanitizer.ts | 22 + .../safe/safe_interproc_sanitizer.ts | 13 + .../corpus/typescript/safe/safe_jsx_text.tsx | 10 + .../safe/safe_null_path_sanitizer.ts | 16 + .../typescript/safe/safe_number_coerce.ts | 14 + .../typescript/safe/safe_parameterized.ts | 11 + .../typescript/safe/safe_typeof_guard.ts | 14 + .../typescript/safe/safe_validator_escape.ts | 10 + .../typescript/secrets/fallback_secret.ts | 7 + .../corpus/typescript/sqli/sqli_prisma_raw.ts | 11 + .../typescript/sqli/sqli_template_literal.ts | 10 + .../typescript/ssrf/ssrf_axios_user_url.ts | 10 + .../typescript/ssrf/ssrf_encoded_host.ts | 11 + .../typescript/ssrf/ssrf_fastify_fetch.ts | 12 + .../type_system/decorator_passthrough.ts | 23 + .../type_system/discriminated_union_narrow.ts | 17 + .../type_system/interface_dispatch.ts | 20 + .../xss/vuln_iife_closure_no_sanitizer.ts | 18 + .../corpus/typescript/xss/xss_as_any_cast.ts | 8 + .../xss/xss_dangerously_set_inner_html.tsx | 11 + .../typescript/xss/xss_generic_identity.ts | 12 + .../xss/xss_optional_chain_source.ts | 9 + .../typescript/xss/xss_typed_innerhtml.ts | 7 + .../cve_corpus/c/CVE-2016-3714/patched.c | 33 + .../cve_corpus/c/CVE-2016-3714/vulnerable.c | 40 + .../cve_corpus/c/CVE-2019-18634/patched.c | 39 + .../cve_corpus/c/CVE-2019-18634/vulnerable.c | 43 + .../cve_corpus/cpp/CVE-2019-13132/patched.cpp | 35 + .../cpp/CVE-2019-13132/vulnerable.cpp | 41 + .../cve_corpus/cpp/CVE-2022-1941/patched.cpp | 39 + .../cpp/CVE-2022-1941/vulnerable.cpp | 47 + .../cve_corpus/go/CVE-2022-30323/patched.go | 54 + .../go/CVE-2022-30323/vulnerable.go | 45 + .../java/CVE-2015-7501/patched.java | 31 + .../java/CVE-2015-7501/vulnerable.java | 38 + .../java/CVE-2017-12629/patched.java | 39 + .../java/CVE-2017-12629/vulnerable.java | 37 + .../javascript/CVE-2019-14939/patched.js | 30 + .../javascript/CVE-2019-14939/vulnerable.js | 31 + .../cve_corpus/php/CVE-2017-9841/patched.php | 21 + .../php/CVE-2017-9841/vulnerable.php | 22 + .../cve_corpus/php/CVE-2018-15133/patched.php | 28 + .../php/CVE-2018-15133/vulnerable.php | 28 + .../python/CVE-2017-18342/patched.py | 24 + .../python/CVE-2017-18342/vulnerable.py | 31 + .../python/CVE-2023-48022/patched.py | 28 + .../python/CVE-2023-48022/vulnerable.py | 32 + .../cve_corpus/ruby/CVE-2013-0156/patched.rb | 24 + .../ruby/CVE-2013-0156/vulnerable.rb | 32 + .../cve_corpus/rust/CVE-2018-20997/patched.rs | 40 + .../rust/CVE-2018-20997/vulnerable.rs | 36 + .../cve_corpus/rust/CVE-2022-36113/patched.rs | 51 + .../rust/CVE-2022-36113/vulnerable.rs | 38 + .../cve_corpus/rust/CVE-2024-24576/patched.rs | 37 + .../rust/CVE-2024-24576/vulnerable.rs | 32 + .../typescript/CVE-2023-26159/patched.ts | 38 + .../typescript/CVE-2023-26159/vulnerable.ts | 34 + tests/benchmark/ground_truth.json | 11570 ++++++++++++++++ tests/benchmark/results/latest.json | 6838 +++++++++ tests/benchmark_test.rs | 813 ++ tests/cli_validation_tests.rs | 284 + tests/common/mod.rs | 14 +- tests/concurrent_scan_tests.rs | 172 + tests/cross_file_abstract_tests.rs | 60 + tests/cross_file_alias_tests.rs | 98 + tests/cross_file_body_loading_tests.rs | 166 + tests/cross_file_context_off_tests.rs | 106 + tests/cross_file_context_tests.rs | 239 + tests/cross_file_phi_tests.rs | 60 + tests/db_corruption_tests.rs | 194 + tests/dedup_alternative_paths_tests.rs | 112 + tests/determinism_threads_tests.rs | 129 + tests/engine_notes_rank_tests.rs | 469 + tests/engine_notes_tests.rs | 131 + .../fixtures/async_promise_chain_js/README.md | 19 + .../fixtures/async_promise_chain_js/chain.js | 14 + .../async_promise_chain_js/expectations.json | 14 + tests/fixtures/async_python/README.md | 12 + tests/fixtures/async_python/chain.py | 19 + tests/fixtures/async_python/expectations.json | 16 + tests/fixtures/async_rust/README.md | 14 + tests/fixtures/async_rust/expectations.json | 16 + tests/fixtures/async_rust/main.rs | 25 + .../auth_analysis/actix_admin_route_clean.rs | 19 + .../actix_scoped_write_missing.rs | 28 + .../auth_analysis/admin_route_clean.js | 7 + .../auth_analysis/admin_route_missing.js | 8 + .../auth_analysis/axum_admin_route_clean.rs | 19 + .../auth_analysis/axum_admin_route_missing.rs | 19 + .../auth_analysis/axum_partial_batch.rs | 25 + .../auth_analysis/cross_file_helper_authz.rs | 33 + .../cross_file_helper_handler.rs | 52 + .../auth_analysis/dashboard_self_listing.js | 8 + .../db_connection_type_inferred.rs | 45 + .../auth_analysis/debug_session_missing.js | 7 + .../auth_analysis/delegated_service_read.js | 11 + .../auth_analysis/django_cbv_admin_clean.py | 36 + .../django_cbv_scoped_write_missing.py | 26 + .../auth_analysis/django_partial_batch.py | 25 + .../django_scoped_read_missing.py | 18 + .../django_stale_session_mutation.py | 22 + .../django_token_missing_expiry.py | 27 + .../django_token_missing_recipient.py | 31 + .../auth_analysis/django_view_admin_clean.py | 27 + .../django_view_admin_missing.py | 24 + .../auth_analysis/echo_admin_route_clean.go | 11 + .../auth_analysis/echo_partial_batch.go | 11 + .../echo_token_missing_recipient.go | 9 + .../fastify_admin_route_clean.js | 12 + .../fastify_admin_route_missing.js | 13 + .../fastify_route_registration_noise.js | 19 + .../fastify_scoped_write_clean.js | 22 + .../fastify_scoped_write_missing.js | 16 + .../auth_analysis/flask_admin_route_clean.py | 22 + .../flask_admin_route_missing.py | 22 + .../flask_scoped_write_missing.py | 17 + .../auth_analysis/flask_token_clean.py | 28 + .../auth_analysis/gin_admin_route_missing.go | 10 + .../auth_analysis/gin_scoped_write_clean.go | 11 + .../gin_stale_session_mutation.go | 6 + .../auth_analysis/hashmap_local_noise.rs | 31 + .../auth_analysis/helper_no_auth_lift.rs | 43 + .../auth_analysis/helper_scoped_params.rs | 18 + .../auth_analysis/koa_admin_route_clean.js | 9 + .../auth_analysis/koa_admin_route_missing.js | 10 + .../koa_route_registration_noise.js | 13 + .../auth_analysis/koa_scoped_read_clean.js | 17 + .../auth_analysis/koa_scoped_read_missing.js | 12 + .../auth_analysis/membership_helper.js | 6 + tests/fixtures/auth_analysis/partial_batch.js | 6 + .../partial_batch_full_check_clean.js | 5 + .../auth_analysis/rails_admin_route_clean.rb | 9 + .../rails_admin_route_missing.rb | 9 + .../rails_clean_before_action.rb | 8 + .../auth_analysis/rails_partial_batch.rb | 7 + .../rails_scoped_write_missing.rb | 8 + .../rails_stale_session_mutation.rb | 5 + .../auth_analysis/rails_token_clean.rb | 13 + .../rails_token_missing_expiry.rb | 11 + .../auth_analysis/related_membership_check.js | 10 + .../auth_analysis/rocket_admin_route_clean.rs | 10 + .../rocket_stale_session_mutation.rs | 12 + .../rocket_token_missing_recipient.rs | 27 + .../auth_analysis/row_ownership_equality.rs | 48 + .../row_ownership_no_early_exit.rs | 42 + .../auth_analysis/scoped_read_missing.js | 8 + .../auth_analysis/scoped_write_missing.js | 8 + .../auth_analysis/self_profile_read.js | 8 + .../auth_analysis/self_profile_update.js | 11 + .../auth_analysis/self_scoped_user.rs | 21 + .../auth_analysis/service_missing_context.js | 5 + .../auth_analysis/service_with_check.js | 6 + .../sinatra_admin_route_clean.rb | 7 + .../sinatra_admin_route_missing.rb | 7 + .../sinatra_scoped_read_clean.rb | 8 + .../sinatra_scoped_read_missing.rb | 7 + .../sinatra_token_missing_recipient.rb | 12 + .../spring_admin_route_clean.java | 9 + .../spring_admin_route_missing.java | 9 + .../spring_scoped_read_missing.java | 8 + tests/fixtures/auth_analysis/sql_join_acl.rs | 63 + .../auth_analysis/sql_no_acl_join_flags.rs | 61 + .../auth_analysis/stale_session_mutation.js | 7 + .../support_impersonation_missing.js | 8 + tests/fixtures/auth_analysis/token_clean.js | 8 + .../auth_analysis/token_missing_expiry.js | 8 + .../auth_analysis/token_missing_recipient.js | 8 + .../auth_analysis/token_role_override.js | 8 + .../auth_analysis/token_workspace_override.js | 8 + .../auth_analysis/transitive_helper.rs | 59 + .../true_positive_missing_check.rs | 15 + .../typed_admin_route_missing.ts | 8 + .../auth_analysis/workspace_job_missing.js | 8 + .../AdminProjectsController.java | 9 + .../Cargo.toml | 7 + .../Gemfile | 3 + .../README.md | 12 + .../admin_app.rb | 7 + .../admin_routes.js | 8 + .../axum_admin.rs | 19 + .../expectations.json | 21 + .../flask_admin.py | 22 + .../gin_admin.go | 10 + .../go.mod | 5 + .../package.json | 7 + .../pom.xml | 18 + .../requirements.txt | 1 + .../README.md | 12 + .../expectations.json | 19 + .../package.json | 9 + .../routes.js | 37 + .../ProjectsController.java | 8 + .../README.md | 12 + .../echo_routes.go | 11 + .../expectations.json | 18 + .../gin_routes.go | 10 + .../go.mod | 8 + .../pom.xml | 18 + .../auth_analysis_integration/README.md | 12 + .../expectations.json | 19 + .../auth_analysis_integration/routes.js | 29 + .../expectations.json | 14 + .../package.json | 9 + .../auth_analysis_noise_frameworks/routes.js | 24 + .../Cargo.toml | 7 + .../Gemfile | 3 + .../ProjectsController.java | 8 + .../README.md | 12 + .../actix_projects.rs | 28 + .../django_views.py | 18 + .../expectations.json | 21 + .../gin_projects.go | 9 + .../go.mod | 5 + .../package.json | 7 + .../pom.xml | 13 + .../project_routes.js | 8 + .../projects_controller.rb | 8 + .../requirements.txt | 1 + .../README.md | 12 + .../django_views.py | 71 + .../expectations.json | 20 + .../flask_app.py | 34 + .../requirements.txt | 2 + .../Gemfile | 4 + .../README.md | 12 + .../expectations.json | 20 + .../rails_admin_controller.rb | 9 + .../rails_invitations_controller.rb | 11 + .../rails_projects_controller.rb | 12 + .../sinatra_app.rb | 7 + .../Cargo.toml | 9 + .../README.md | 12 + .../actix_routes.rs | 28 + .../axum_routes.rs | 38 + .../expectations.json | 22 + .../rocket_routes.rs | 51 + tests/fixtures/c_utils/README.md | 12 + tests/fixtures/c_utils/expectations.json | 2 +- tests/fixtures/closure_capture_js/README.md | 24 + .../closure_capture_js/expectations.json | 14 + tests/fixtures/closure_capture_js/handler.js | 17 + tests/fixtures/closure_capture_py/README.md | 12 + .../closure_capture_py/expectations.json | 16 + tests/fixtures/closure_capture_py/handler.py | 21 + tests/fixtures/closure_capture_ts/README.md | 22 + .../closure_capture_ts/expectations.json | 14 + tests/fixtures/closure_capture_ts/handler.ts | 17 + tests/fixtures/container_taint_js/README.md | 14 + .../container_taint_js/expectations.json | 16 + tests/fixtures/container_taint_js/main.js | 6 + tests/fixtures/container_taint_py/README.md | 16 + .../container_taint_py/expectations.json | 16 + tests/fixtures/container_taint_py/main.py | 12 + .../expectations.json | 19 + .../helper.py | 12 + .../cross_file_abstract_bounded_index/main.py | 18 + .../expectations.json | 19 + .../cross_file_abstract_port_range/helper.py | 14 + .../cross_file_abstract_port_range/main.py | 21 + .../expectations.json | 19 + .../helper.js | 2 + .../main.js | 8 + .../cross_file_alias_bounded_graph/README.md | 22 + .../cross_file_alias_bounded_graph/app.py | 30 + .../expectations.json | 14 + .../cross_file_alias_bounded_graph/helper.py | 34 + .../README.md | 12 + .../cross_file_alias_mutating_helper/app.py | 22 + .../expectations.json | 16 + .../helper.py | 12 + .../cross_file_alias_returned_alias/README.md | 12 + .../cross_file_alias_returned_alias/app.js | 15 + .../expectations.json | 16 + .../cross_file_alias_returned_alias/helper.js | 12 + .../cross_file_callback_alias/README.md | 31 + .../fixtures/cross_file_callback_alias/app.js | 14 + .../expectations.json | 14 + .../cross_file_callback_alias/helpers.js | 12 + .../cross_file_container_factory/README.md | 28 + .../cross_file_container_factory/app.js | 13 + .../expectations.json | 16 + .../cross_file_container_factory/factory.js | 17 + .../cross_file_context_callback/README.md | 12 + .../cross_file_context_callback/apply.js | 12 + .../expectations.json | 16 + .../cross_file_context_callback/main.js | 17 + .../cross_file_context_deep_chain/README.md | 12 + .../expectations.json | 16 + .../cross_file_context_deep_chain/main.py | 16 + .../cross_file_context_deep_chain/middle.py | 10 + .../cross_file_context_deep_chain/sinks.py | 7 + .../cross_file_context_sanitizer/app.js | 14 + .../expectations.json | 14 + .../cross_file_context_sanitizer/security.js | 13 + .../README.md | 12 + .../expectations.json | 16 + .../helper.py | 8 + .../cross_file_context_two_call_sites/main.py | 21 + .../cross_file_go_handler_exec/README.md | 12 + .../cross_file_go_handler_exec/executor.go | 11 + .../expectations.json | 16 + .../cross_file_go_handler_exec/handler.go | 18 + .../expectations.json | 14 + .../cross_file_go_int_validated/handler.go | 24 + .../cross_file_go_int_validated/validation.go | 19 + tests/fixtures/cross_file_info_leak/README.md | 12 + .../cross_file_info_leak/expectations.json | 16 + tests/fixtures/cross_file_info_leak/route.js | 11 + .../fixtures/cross_file_info_leak/service.js | 16 + tests/fixtures/cross_file_java_sqli/README.md | 12 + .../cross_file_java_sqli/UserController.java | 23 + .../cross_file_java_sqli/UserRepository.java | 27 + .../cross_file_java_sqli/expectations.json | 16 + .../cross_file_js_aliased_import/README.md | 12 + .../cross_file_js_aliased_import/app.js | 14 + .../expectations.json | 16 + .../cross_file_js_aliased_import/source.js | 10 + .../cross_file_js_html_sanitized/app.js | 14 + .../expectations.json | 14 + .../cross_file_js_html_sanitized/security.js | 14 + .../fixtures/cross_file_js_redirect/README.md | 12 + .../cross_file_js_redirect/expectations.json | 16 + .../fixtures/cross_file_js_redirect/helper.js | 9 + .../fixtures/cross_file_js_redirect/routes.js | 11 + tests/fixtures/cross_file_js_sqli/README.md | 12 + .../cross_file_js_sqli/expectations.json | 16 + tests/fixtures/cross_file_js_sqli/route.js | 12 + tests/fixtures/cross_file_js_sqli/search.js | 11 + .../cross_file_mixed_cap_sink/README.md | 12 + .../cross_file_mixed_cap_sink/caller.js | 11 + .../cross_file_mixed_cap_sink/dispatch.js | 8 + .../expectations.json | 16 + .../app.js | 26 + .../expectations.json | 14 + .../session.js | 30 + .../README.md | 12 + .../app.py | 28 + .../expectations.json | 16 + .../html_guard.py | 14 + .../cross_file_param_sink_precision/README.md | 12 + .../cross_file_param_sink_precision/app.py | 7 + .../expectations.json | 16 + .../helpers.py | 7 + .../expectations.json | 19 + .../handler.go | 25 + .../validator.go | 39 + .../.z3-trace | 0 .../README.md | 12 + .../expectations.json | 16 + .../helper.js | 22 + .../cross_file_phi_partial_sanitiser/main.js | 20 + .../cross_file_phi_validated_branch/README.md | 12 + .../expectations.json | 16 + .../cross_file_phi_validated_branch/helper.py | 25 + .../cross_file_phi_validated_branch/main.py | 20 + .../constants.py | 17 + .../expectations.json | 14 + .../cross_file_py_const_passthrough/runner.py | 14 + .../cross_file_py_nested_chain/README.md | 12 + .../cross_file_py_nested_chain/executor.py | 13 + .../expectations.json | 16 + .../input_reader.py | 10 + .../cross_file_py_nested_chain/transform.py | 12 + .../cross_file_py_object_field/README.md | 12 + .../expectations.json | 16 + .../cross_file_py_object_field/handler.py | 16 + .../cross_file_py_object_field/models.py | 13 + .../expectations.json | 14 + .../cross_file_py_shlex_sanitizer/handler.py | 17 + .../shell_utils.py | 10 + .../fixtures/cross_file_scc_16cycle/README.md | 34 + .../cross_file_scc_16cycle/expectations.json | 16 + .../fixtures/cross_file_scc_16cycle/server.py | 9 + .../fixtures/cross_file_scc_16cycle/step_a.py | 6 + .../fixtures/cross_file_scc_16cycle/step_b.py | 6 + .../fixtures/cross_file_scc_16cycle/step_c.py | 6 + .../fixtures/cross_file_scc_16cycle/step_d.py | 6 + .../fixtures/cross_file_scc_16cycle/step_e.py | 6 + .../fixtures/cross_file_scc_16cycle/step_f.py | 6 + .../fixtures/cross_file_scc_16cycle/step_g.py | 6 + .../fixtures/cross_file_scc_16cycle/step_h.py | 6 + .../fixtures/cross_file_scc_16cycle/step_i.py | 6 + .../fixtures/cross_file_scc_16cycle/step_j.py | 6 + .../fixtures/cross_file_scc_16cycle/step_k.py | 6 + .../fixtures/cross_file_scc_16cycle/step_l.py | 6 + .../fixtures/cross_file_scc_16cycle/step_m.py | 6 + .../fixtures/cross_file_scc_16cycle/step_n.py | 6 + .../fixtures/cross_file_scc_16cycle/step_o.py | 6 + .../fixtures/cross_file_scc_16cycle/step_p.py | 11 + .../fixtures/cross_file_scc_8cycle/README.md | 36 + .../cross_file_scc_8cycle/expectations.json | 16 + .../fixtures/cross_file_scc_8cycle/server.py | 10 + .../fixtures/cross_file_scc_8cycle/step_a.py | 6 + .../fixtures/cross_file_scc_8cycle/step_b.py | 6 + .../fixtures/cross_file_scc_8cycle/step_c.py | 6 + .../fixtures/cross_file_scc_8cycle/step_d.py | 6 + .../fixtures/cross_file_scc_8cycle/step_e.py | 6 + .../fixtures/cross_file_scc_8cycle/step_f.py | 6 + .../fixtures/cross_file_scc_8cycle/step_g.py | 6 + .../fixtures/cross_file_scc_8cycle/step_h.py | 12 + .../cross_file_scc_convergence/README.md | 12 + .../cross_file_scc_convergence/executor.py | 8 + .../expectations.json | 16 + .../cross_file_scc_convergence/source.py | 6 + .../cross_file_scc_convergence/transform.py | 6 + .../cross_file_scc_deep_cycle/README.md | 12 + .../expectations.json | 16 + .../cross_file_scc_deep_cycle/server.py | 10 + .../cross_file_scc_deep_cycle/step_a.py | 9 + .../cross_file_scc_deep_cycle/step_b.py | 6 + .../cross_file_scc_deep_cycle/step_c.py | 6 + .../cross_file_scc_deep_cycle/step_d.py | 12 + .../cross_file_scc_mutual_recursion/README.md | 12 + .../expectations.json | 16 + .../module_a.py | 15 + .../module_b.py | 11 + .../cross_file_scc_mutual_recursion/server.py | 11 + .../driver.py | 11 + .../expectations.json | 15 + .../stage_a.py | 12 + .../stage_b.py | 11 + tests/fixtures/cross_file_scc_ssa/caller.py | 7 + .../cross_file_scc_ssa/expectations.json | 15 + tests/fixtures/cross_file_scc_ssa/mutual_a.py | 9 + tests/fixtures/cross_file_scc_ssa/mutual_b.py | 6 + .../cross_file_scc_three_way_cycle/README.md | 12 + .../cross_file_scc_three_way_cycle/entry.py | 10 + .../expectations.json | 16 + .../cross_file_scc_three_way_cycle/node_a.py | 7 + .../cross_file_scc_three_way_cycle/node_b.py | 5 + .../cross_file_scc_three_way_cycle/node_c.py | 13 + .../cross_file_ssa_propagation/README.md | 12 + .../cross_file_ssa_propagation/app.py | 8 + .../expectations.json | 16 + .../cross_file_ssa_propagation/wrapper.py | 2 + .../cross_file_ssa_sanitizer/README.md | 12 + .../fixtures/cross_file_ssa_sanitizer/app.py | 8 + .../expectations.json | 16 + .../cross_file_ssa_sanitizer/sanitizer.py | 4 + .../fixtures/cross_file_ssa_source/README.md | 12 + .../cross_file_ssa_source/expectations.json | 16 + .../fixtures/cross_file_ssa_source/handler.py | 6 + .../fixtures/cross_file_ssa_source/reader.py | 4 + .../fixtures/cross_file_symex_body/README.md | 12 + tests/fixtures/cross_file_symex_body/app.py | 7 + .../cross_file_symex_body/expectations.json | 16 + .../fixtures/cross_file_symex_body/helper.py | 14 + tests/fixtures/cross_file_symex_js/README.md | 12 + tests/fixtures/cross_file_symex_js/app.js | 5 + .../cross_file_symex_js/expectations.json | 16 + tests/fixtures/cross_file_symex_js/utils.js | 10 + tests/fixtures/cross_file_taint/README.md | 12 + .../cross_file_taint/expectations.json | 16 + tests/fixtures/cross_file_taint/sink.py | 6 + tests/fixtures/cross_file_taint/source.py | 4 + tests/fixtures/cross_file_ts_ssrf/README.md | 12 + .../cross_file_ts_ssrf/expectations.json | 16 + .../fixtures/cross_file_ts_ssrf/httpClient.ts | 12 + tests/fixtures/cross_file_ts_ssrf/router.ts | 19 + tests/fixtures/debug_endpoint/README.md | 12 + tests/fixtures/debug_endpoint/app.js | 14 + .../fixtures/debug_endpoint/expectations.json | 16 + .../dedup_alternative_paths/README.md | 12 + tests/fixtures/dedup_alternative_paths/app.js | 29 + .../dedup_alternative_paths/expectations.json | 16 + .../dedup_same_line_different_sinks/README.md | 12 + .../dedup_same_line_different_sinks/app.py | 10 + .../expectations.json | 16 + .../demand_driven_catch_new_fn/README.md | 12 + .../demand_driven_catch_new_fn/app.py | 27 + .../expectations.json | 16 + tests/fixtures/demand_driven_no_source/app.py | 16 + .../demand_driven_no_source/expectations.json | 14 + .../demand_driven_prove_infeasible/README.md | 12 + .../demand_driven_prove_infeasible/app.py | 25 + .../expectations.json | 16 + .../demand_driven_reach_source/README.md | 12 + .../demand_driven_reach_source/app.py | 20 + .../expectations.json | 16 + .../fixtures/dynamic_dispatch_ssrf/README.md | 12 + .../dynamic_dispatch_ssrf/expectations.json | 16 + .../dynamic_dispatch_ssrf/previewService.js | 10 + .../fixtures/dynamic_dispatch_ssrf/routes.js | 12 + tests/fixtures/ejs_xss/README.md | 12 + tests/fixtures/ejs_xss/expectations.json | 16 + tests/fixtures/ejs_xss/safe.ejs | 9 + tests/fixtures/ejs_xss/search.ejs | 11 + tests/fixtures/error_throw_terminates/app.js | 7 + .../error_throw_terminates/expectations.json | 14 + tests/fixtures/exec_async_wrapper/README.md | 12 + tests/fixtures/exec_async_wrapper/app.js | 21 + .../exec_async_wrapper/expectations.json | 16 + tests/fixtures/express_app/README.md | 12 + tests/fixtures/fastify_app/README.md | 12 + tests/fixtures/fastify_app/expectations.json | 16 + tests/fixtures/fastify_app/package.json | 7 + tests/fixtures/fastify_app/routes.js | 11 + tests/fixtures/flask_app/README.md | 12 + .../fp_guards/call_site_polymorphic_py/app.py | 22 + .../expectations.json | 16 + .../call_site_sanitized_caller_py/app.py | 23 + .../expectations.json | 16 + .../call_site_specialization_js/app.js | 21 + .../expectations.json | 16 + .../call_site_specialization_py/app.py | 20 + .../expectations.json | 16 + .../fp_guards/fields_class_attr_py/app.py | 24 + .../fields_class_attr_py/expectations.json | 16 + .../fp_guards/fields_dict_key_py/app.py | 18 + .../fields_dict_key_py/expectations.json | 16 + .../fp_guards/fields_nested_object_js/app.js | 22 + .../fields_nested_object_js/expectations.json | 16 + .../fields_object_isolation_js/app.js | 18 + .../expectations.json | 16 + .../framework_express_res_json/app.js | 21 + .../expectations.json | 16 + .../fp_guards/framework_flask_escape/app.py | 22 + .../framework_flask_escape/expectations.json | 16 + .../framework_prepared_stmt_java/App.java | 23 + .../expectations.json | 16 + .../fp_guards/framework_rails_sanitize/app.rb | 16 + .../expectations.json | 16 + .../fp_guards/sanitizer_html_escape_js/app.js | 18 + .../expectations.json | 16 + .../fp_guards/sanitizer_multi_step_py/app.py | 18 + .../sanitizer_multi_step_py/expectations.json | 16 + .../fp_guards/sanitizer_shlex_quote_py/app.py | 19 + .../expectations.json | 16 + .../fp_guards/sanitizer_url_encode_js/app.js | 18 + .../sanitizer_url_encode_js/expectations.json | 16 + .../fp_guards/types_bool_flag_py/app.py | 19 + .../types_bool_flag_py/expectations.json | 16 + .../fp_guards/types_int_id_sql_py/app.py | 16 + .../types_int_id_sql_py/expectations.json | 16 + .../fp_guards/types_int_port_py/app.py | 19 + .../types_int_port_py/expectations.json | 16 + .../types_parse_int_go/expectations.json | 16 + .../fp_guards/types_parse_int_go/main.go | 27 + .../gated_sink_dynamic_activation/README.md | 12 + .../gated_sink_dynamic_activation/app.js | 24 + .../expectations.json | 16 + tests/fixtures/go_server/README.md | 12 + tests/fixtures/hardcoded_secret/README.md | 12 + tests/fixtures/hardcoded_secret/app.js | 15 + .../hardcoded_secret/expectations.json | 16 + .../inline_cache_origin_attribution/README.md | 12 + .../inline_cache_origin_attribution/app.js | 23 + .../expectations.json | 16 + .../insecure_session_config/README.md | 12 + tests/fixtures/insecure_session_config/app.js | 17 + .../insecure_session_config/expectations.json | 17 + .../internal_redirect_taint/README.md | 12 + tests/fixtures/internal_redirect_taint/app.js | 17 + .../internal_redirect_taint/expectations.json | 16 + tests/fixtures/java_service/README.md | 12 + .../fixtures/js_ts_pass2_deep_chain/README.md | 12 + .../js_ts_pass2_deep_chain/expectations.json | 16 + tests/fixtures/js_ts_pass2_deep_chain/main.js | 37 + tests/fixtures/koa_app/README.md | 12 + tests/fixtures/koa_app/expectations.json | 16 + tests/fixtures/koa_app/package.json | 8 + tests/fixtures/koa_app/routes.js | 17 + tests/fixtures/large_switch_go/README.md | 20 + .../large_switch_go/expectations.json | 16 + tests/fixtures/large_switch_go/handler.go | 57 + .../migration_script_sql/expectations.json | 8 + .../fixtures/migration_script_sql/migrate.js | 12 + tests/fixtures/mixed_project/README.md | 12 + .../fixtures/mixed_project/expectations.json | 3 +- .../path_traversal_download/README.md | 12 + tests/fixtures/path_traversal_download/app.js | 5 + .../path_traversal_download/expectations.json | 16 + .../fixtures/patterns/javascript/positive.js | 30 + .../fixtures/patterns/typescript/positive.ts | 30 + tests/fixtures/phase_c_auth_taint/Cargo.toml | 7 + .../phase_c_auth_taint/handler_sanitized.rs | 33 + .../phase_c_auth_taint/handler_unsanitized.rs | 14 + .../app.py | 22 + .../expectations.json | 14 + .../README.md | 12 + .../app.py | 26 + .../expectations.json | 16 + .../app.py | 11 + .../expectations.json | 14 + .../python_subprocess_shell_false_safe/app.py | 11 + .../expectations.json | 14 + .../python_subprocess_shell_true/README.md | 12 + .../python_subprocess_shell_true/app.py | 11 + .../expectations.json | 16 + .../real_world/c/cfg/double_free.expect.json | 22 + .../c/cfg/malloc_branches.expect.json | 22 + .../c/cfg/resource_leak_branches.expect.json | 22 + .../c/cfg/switch_fallthrough.expect.json | 67 +- .../c/mixed/cmdi_and_leak.expect.json | 29 +- .../c/mixed/taint_plus_leak.expect.json | 18 +- .../real_world/c/state/loop_state.expect.json | 17 +- .../c/state/malloc_lifecycle.expect.json | 33 + .../c/taint/buffer_overflow.expect.json | 22 +- .../c/taint/cmdi_getenv.expect.json | 21 +- .../real_world/c/taint/cmdi_popen.expect.json | 11 + .../c/taint/env_to_file.expect.json | 15 +- .../real_world/c/taint/safe_constant_args.c | 11 + .../c/taint/safe_constant_args.expect.json | 46 + .../real_world/c/taint/safe_no_source.c | 13 + .../c/taint/safe_no_source.expect.json | 46 + .../c/taint/safe_reassigned_const.c | 7 + .../c/taint/safe_reassigned_const.expect.json | 6 + .../real_world/c/taint/safe_sanitized_flow.c | 26 + .../c/taint/safe_sanitized_flow.expect.json | 25 + .../c/taint/scanf_overflow.expect.json | 11 - tests/fixtures/real_world/c/taint/ssrf_curl.c | 10 + .../real_world/c/taint/ssrf_curl.expect.json | 24 + .../cpp/cfg/lambda_capture.expect.json | 11 + .../real_world/cpp/cfg/lambda_taint.cpp | 14 + .../cpp/cfg/lambda_taint.expect.json | 35 + .../real_world/cpp/cfg/namespace_scope.cpp | 3 +- .../cpp/cfg/namespace_scope.expect.json | 10 +- .../cpp/cfg/raii_vs_manual.expect.json | 11 + .../real_world/cpp/cfg/try_catch.expect.json | 11 + .../cpp/mixed/cmdi_format.expect.json | 22 + .../cpp/state/malloc_branches.expect.json | 11 + .../cpp/state/new_delete.expect.json | 30 +- .../cpp/state/smart_ptr_vs_raw.expect.json | 16 +- .../real_world/cpp/taint/cmdi_execl.cpp | 7 + .../cpp/taint/cmdi_execl.expect.json | 15 + .../cpp/taint/cmdi_system.expect.json | 15 + .../cpp/taint/popen_cmd.expect.json | 11 + .../cpp/taint/safe_constant_args.cpp | 11 + .../cpp/taint/safe_constant_args.expect.json | 24 + .../real_world/cpp/taint/safe_no_source.cpp | 11 + .../cpp/taint/safe_no_source.expect.json | 12 + .../cpp/taint/safe_reassigned_const.cpp | 7 + .../taint/safe_reassigned_const.expect.json | 6 + .../cpp/taint/safe_sanitized_flow.cpp | 25 + .../cpp/taint/safe_sanitized_flow.expect.json | 13 + .../real_world/cpp/taint/ssrf_curl.cpp | 10 + .../cpp/taint/ssrf_curl.expect.json | 24 + .../go/cfg/error_handling.expect.json | 22 + .../go/cfg/panic_recover.expect.json | 10 + .../go/cfg/select_goroutine.expect.json | 9 +- .../go/mixed/http_handler_full.expect.json | 11 + .../go/mixed/taint_through_error.expect.json | 11 + .../safe/safe_parameterized_query.expect.json | 39 + .../go/safe/safe_parameterized_query.go | 41 + .../go/state/branch_close.expect.json | 2 +- .../go/state/double_close.expect.json | 4 +- .../go/state/file_lifecycle.expect.json | 2 +- .../real_world/go/state/http_body.expect.json | 2 +- .../real_world/go/taint/cmdi_http.expect.json | 45 +- .../go/taint/crypto_taint.expect.json | 31 + .../real_world/go/taint/crypto_taint.go | 17 + .../real_world/go/taint/echo_xss.expect.json | 15 + .../fixtures/real_world/go/taint/echo_xss.go | 12 + .../go/taint/func_literal_capture.expect.json | 22 + .../go/taint/func_literal_capture.go | 15 + .../go/taint/go_sql_db_not_xss.expect.json | 6 + .../real_world/go/taint/go_sql_db_not_xss.go | 15 + .../real_world/go/taint/http_sqli.expect.json | 25 + .../fixtures/real_world/go/taint/http_sqli.go | 12 + .../go/taint/infeasible_nil_check.expect.json | 15 + .../go/taint/infeasible_nil_check.go | 17 + .../taint/reassignment_compound.expect.json | 15 + .../go/taint/reassignment_compound.go | 12 + .../go/taint/safe_constant_args.expect.json | 33 + .../real_world/go/taint/safe_constant_args.go | 18 + .../go/taint/safe_no_source.expect.json | 23 + .../real_world/go/taint/safe_no_source.go | 20 + .../taint/safe_reassigned_const.expect.json | 6 + .../go/taint/safe_reassigned_const.go | 12 + .../go/taint/safe_sanitized_flow.expect.json | 24 + .../go/taint/safe_sanitized_flow.go | 22 + .../go/taint/safe_ssrf_hardcoded.expect.json | 6 + .../go/taint/safe_ssrf_hardcoded.go | 7 + .../taint/safe_ssrf_scheme_check.expect.json | 15 + .../go/taint/safe_ssrf_scheme_check.go | 17 + .../go/taint/sqli_sprintf.expect.json | 24 +- .../go/taint/ssrf_concat.expect.json | 24 + .../real_world/go/taint/ssrf_concat.go | 12 + .../go/taint/ssrf_http_get.expect.json | 15 + .../real_world/go/taint/ssrf_http_get.go | 11 + .../go/taint/ssrf_net_dial.expect.json | 15 + .../real_world/go/taint/ssrf_net_dial.go | 11 + .../go/taint/ssrf_new_request_ctx.expect.json | 15 + .../go/taint/ssrf_new_request_ctx.go | 13 + .../java/cfg/catch_finally.expect.json | 10 + .../java/cfg/lambda_streams.expect.json | 39 +- .../real_world/java/cfg/lambda_streams.java | 11 +- .../java/cfg/lambda_taint.expect.json | 39 + .../real_world/java/cfg/lambda_taint.java | 14 + .../java/cfg/switch_expressions.expect.json | 33 +- .../java/mixed/deser_cmdi.expect.json | 32 + .../java/mixed/servlet_full.expect.json | 32 + .../java/state/branch_close.expect.json | 2 +- .../state/connection_lifecycle.expect.json | 2 +- .../java/state/double_close.expect.json | 4 +- .../java/state/stream_lifecycle.expect.json | 2 +- .../cast_to_string_still_tainted.expect.json | 15 + .../taint/cast_to_string_still_tainted.java | 12 + .../java/taint/catch_param_sink.expect.json | 23 + .../java/taint/catch_param_sink.java | 13 + .../taint/cmdi_processbuilder.expect.json | 14 +- .../java/taint/cmdi_runtime.expect.json | 13 +- .../taint/collection_add_sqli.expect.json | 26 + .../java/taint/collection_add_sqli.java | 15 + .../java/taint/deser_ois.expect.json | 17 +- .../taint/deser_readobject_dual.expect.json | 31 + .../java/taint/deser_readobject_dual.java | 8 + .../taint/heap_collection_alias.expect.json | 28 + .../java/taint/heap_collection_alias.java | 14 + .../taint/infeasible_equality.expect.json | 15 + .../java/taint/infeasible_equality.java | 16 + .../taint/instanceof_guard_sqli.expect.json | 6 + .../java/taint/instanceof_guard_sqli.java | 15 + .../taint/instanceof_wrong_branch.expect.json | 15 + .../java/taint/instanceof_wrong_branch.java | 15 + .../java/taint/jackson_deser.expect.json | 15 + .../real_world/java/taint/jackson_deser.java | 12 + .../java/taint/jndi_injection.expect.json | 15 + .../real_world/java/taint/jndi_injection.java | 12 + .../java/taint/multi_method_xss.expect.json | 25 + .../java/taint/multi_method_xss.java | 15 + .../taint/reassignment_compound.expect.json | 15 + .../java/taint/reassignment_compound.java | 9 + .../java/taint/reflection.expect.json | 11 + .../taint/response_entity_xss.expect.json | 15 + .../java/taint/response_entity_xss.java | 10 + .../java/taint/safe_constant_args.expect.json | 6 + .../java/taint/safe_constant_args.java | 7 + .../taint/safe_esapi_sanitized.expect.json | 6 + .../java/taint/safe_esapi_sanitized.java | 18 + .../java/taint/safe_no_source.expect.json | 12 + .../real_world/java/taint/safe_no_source.java | 8 + .../safe_parameterized_query.expect.json | 14 + .../java/taint/safe_parameterized_query.java | 15 + .../taint/safe_reassigned_const.expect.json | 6 + .../java/taint/safe_reassigned_const.java | 9 + .../taint/safe_sanitized_flow.expect.json | 6 + .../java/taint/safe_sanitized_flow.java | 11 + .../taint/safe_spring_patterns.expect.json | 6 + .../java/taint/safe_spring_patterns.java | 19 + .../taint/safe_ssrf_hardcoded.expect.json | 6 + .../java/taint/safe_ssrf_hardcoded.java | 11 + .../java/taint/safe_system_out.expect.json | 6 + .../java/taint/safe_system_out.java | 9 + .../java/taint/spring_sqli.expect.json | 23 + .../real_world/java/taint/spring_sqli.java | 21 + .../java/taint/sqli_concat.expect.json | 11 + .../java/taint/ssrf_url_connect.expect.json | 23 + .../java/taint/ssrf_url_connect.java | 12 + .../java/taint/try_catch_sqli.expect.json | 39 + .../real_world/java/taint/try_catch_sqli.java | 15 + .../java/taint/type_receiver_ssrf.expect.json | 15 + .../java/taint/type_receiver_ssrf.java | 11 + .../taint/unsafe_response_print.expect.json | 15 + .../java/taint/unsafe_response_print.java | 11 + .../java/taint/xss_response.expect.json | 22 + .../cfg/async_await_flow.expect.json | 17 +- .../cfg/callback_nesting.expect.json | 11 + .../cfg/switch_fallthrough.expect.json | 18 +- .../cfg/try_catch_finally.expect.json | 21 + .../mixed/express_auth_cmdi.expect.json | 11 + .../mixed/taint_through_state.expect.json | 11 + .../safe/safe_parameterized_pg.expect.json | 23 + .../javascript/safe/safe_parameterized_pg.js | 9 + .../safe/safe_parameterized_query.expect.json | 15 + .../safe/safe_parameterized_query.js | 9 + .../safe_parameterized_variants.expect.json | 63 + .../safe/safe_parameterized_variants.js | 43 + .../state/db_connection.expect.json | 4 +- .../state/event_listener_leak.expect.json | 14 +- .../javascript/state/fd_leak.expect.json | 4 +- .../javascript/state/handle_reuse.expect.json | 4 +- .../alias_no_sanitize_unsafe.expect.json | 15 + .../taint/alias_no_sanitize_unsafe.js | 9 + .../alias_sanitize_propagation.expect.json | 13 + .../taint/alias_sanitize_propagation.js | 10 + .../taint/array_push_safe.expect.json | 15 + .../javascript/taint/array_push_safe.js | 9 + .../taint/array_push_taint.expect.json | 26 + .../javascript/taint/array_push_taint.js | 8 + .../taint/axios_post_body_safe.expect.json | 13 + .../javascript/taint/axios_post_body_safe.js | 11 + .../taint/axios_post_url_fires.expect.json | 15 + .../javascript/taint/axios_post_url_fires.js | 11 + .../taint/callback_return_taint.expect.json | 26 + .../javascript/taint/callback_return_taint.js | 10 + .../taint/callback_sink_tracking.expect.json | 36 + .../taint/callback_sink_tracking.js | 15 + .../taint/catch_param_sink.expect.json | 15 + .../javascript/taint/catch_param_sink.js | 10 + .../taint/chained_promise_xss.expect.json | 15 + .../javascript/taint/chained_promise_xss.js | 11 + .../taint/closure_captured_var.expect.json | 22 + .../javascript/taint/closure_captured_var.js | 11 + .../closure_member_assignment.expect.json | 22 + .../taint/closure_member_assignment.js | 12 + .../javascript/taint/cmdi_express.expect.json | 22 + .../taint/container_direct_sink.expect.json | 26 + .../javascript/taint/container_direct_sink.js | 9 + ...ntainer_index_dynamic_fallback.expect.json | 28 + .../taint/container_index_dynamic_fallback.js | 12 + ...container_index_load_precision.expect.json | 27 + .../taint/container_index_load_precision.js | 12 + ...ontainer_index_store_isolation.expect.json | 16 + .../taint/container_index_store_isolation.js | 11 + .../taint/context_sensitive_call.expect.json | 24 + .../taint/context_sensitive_call.js | 15 + .../taint/deep_nested_closure.expect.json | 14 + .../javascript/taint/deep_nested_closure.js | 15 + .../destructure_object_taint.expect.json | 15 + .../taint/destructure_object_taint.js | 7 + .../destructure_sanitized_safe.expect.json | 13 + .../taint/destructure_sanitized_safe.js | 9 + .../taint/destructuring_taint.expect.json | 15 + .../javascript/taint/destructuring_taint.js | 9 + .../javascript/taint/dom_xss.expect.json | 37 + .../real_world/javascript/taint/dom_xss.js | 7 + .../equality_narrowing_propagates.expect.json | 15 + .../taint/equality_narrowing_propagates.js | 8 + .../taint/equality_narrowing_safe.expect.json | 15 + .../taint/equality_narrowing_safe.js | 12 + .../taint/eval_user_input.expect.json | 37 + .../taint/express_redirect.expect.json | 23 + .../javascript/taint/express_redirect.js | 13 + .../javascript/taint/express_xss.expect.json | 21 + .../javascript/taint/express_xss.js | 13 + .../taint/feasible_range_check.expect.json | 15 + .../javascript/taint/feasible_range_check.js | 13 + ...fetch_object_url_tainted_fires.expect.json | 15 + .../taint/fetch_object_url_tainted_fires.js | 15 + .../taint/fetch_tainted_body_safe.expect.json | 13 + .../taint/fetch_tainted_body_safe.js | 15 + .../taint/field_overwrite_safe.expect.json | 13 + .../javascript/taint/field_overwrite_safe.js | 9 + .../taint/field_partial_taint.expect.json | 15 + .../javascript/taint/field_partial_taint.js | 9 + ...ld_safe_overwrite_base_tainted.expect.json | 13 + .../field_safe_overwrite_base_tainted.js | 8 + .../taint/field_taint_propagation.expect.json | 15 + .../taint/field_taint_propagation.js | 8 + .../taint/field_write_base_sink.expect.json | 15 + .../javascript/taint/field_write_base_sink.js | 8 + .../taint/global_var_taint.expect.json | 26 + .../javascript/taint/global_var_taint.js | 12 + .../taint/got_post_body_safe.expect.json | 13 + .../javascript/taint/got_post_body_safe.js | 17 + .../taint/got_tainted_url_fires.expect.json | 15 + .../javascript/taint/got_tainted_url_fires.js | 13 + .../taint/header_extract_shift.expect.json | 6 + .../javascript/taint/header_extract_shift.js | 11 + .../taint/heap_alias_taint.expect.json | 28 + .../javascript/taint/heap_alias_taint.js | 9 + .../taint/heap_reassign_safe.expect.json | 17 + .../javascript/taint/heap_reassign_safe.js | 10 + ...ttp_request_tainted_host_fires.expect.json | 13 + .../taint/http_request_tainted_host_fires.js | 17 + .../javascript/taint/iife_tainted.expect.json | 14 + .../javascript/taint/iife_tainted.js | 9 + .../infeasible_equality_check.expect.json | 15 + .../taint/infeasible_equality_check.js | 13 + .../taint/infeasible_range_check.expect.json | 15 + .../taint/infeasible_range_check.js | 14 + .../infeasible_relational_check.expect.json | 15 + .../taint/infeasible_relational_check.js | 15 + .../taint/inline_return_mixed.expect.json | 25 + .../javascript/taint/inline_return_mixed.js | 18 + .../taint/inline_return_no_leak.expect.json | 14 + .../javascript/taint/inline_return_no_leak.js | 15 + .../inline_return_passthrough.expect.json | 26 + .../taint/inline_return_passthrough.js | 13 + .../taint/internal_redirect_safe.expect.json | 13 + .../taint/internal_redirect_safe.js | 7 + .../interproc_container_return.expect.json | 28 + .../taint/interproc_container_return.js | 13 + .../interproc_container_store.expect.json | 28 + .../taint/interproc_container_store.js | 12 + .../interproc_new_container_safe.expect.json | 17 + .../taint/interproc_new_container_safe.js | 15 + .../taint/length_in_template_safe.expect.json | 13 + .../taint/length_in_template_safe.js | 9 + .../taint/local_escape_html_safe.expect.json | 13 + .../taint/local_escape_html_safe.js | 18 + .../taint/loop_counter_widening.expect.json | 15 + .../javascript/taint/loop_counter_widening.js | 11 + .../taint/method_chain_taint.expect.json | 25 + .../javascript/taint/method_chain_taint.js | 8 + .../multi_source_single_sink.expect.json | 15 + .../taint/multi_source_single_sink.js | 9 + .../taint/nested_callback_taint.expect.json | 15 + .../javascript/taint/nested_callback_taint.js | 16 + .../taint/numeric_attr_safe.expect.json | 13 + .../javascript/taint/numeric_attr_safe.js | 9 + .../taint/open_redirect.expect.json | 23 + .../javascript/taint/open_redirect.js | 6 + .../taint/open_redirect_unsafe.expect.json | 15 + .../javascript/taint/open_redirect_unsafe.js | 7 + .../taint/parse_from_string_xss.expect.json | 49 + .../javascript/taint/parse_from_string_xss.js | 21 + .../taint/path_traversal_fs.expect.json | 31 +- .../taint/permission_mask_gate.expect.json | 6 + .../javascript/taint/permission_mask_gate.js | 10 + ...phi_must_validation_regression.expect.json | 26 + .../taint/phi_must_validation_regression.js | 15 + .../taint/reassignment_compound.expect.json | 15 + .../javascript/taint/reassignment_compound.js | 7 + .../reassignment_conditional.expect.json | 15 + .../taint/reassignment_conditional.js | 9 + .../taint/reassignment_taint.expect.json | 15 + .../javascript/taint/reassignment_taint.js | 9 + .../taint/receiver_taint_resolved.expect.json | 34 + .../taint/receiver_taint_resolved.js | 25 + .../relational_feasible_check.expect.json | 15 + .../taint/relational_feasible_check.js | 14 + .../taint/safe_constant_args.expect.json | 6 + .../javascript/taint/safe_constant_args.js | 4 + .../taint/safe_hardcoded_exec.expect.json | 6 + .../javascript/taint/safe_hardcoded_exec.js | 5 + .../taint/safe_he_encode.expect.json | 6 + .../javascript/taint/safe_he_encode.js | 9 + .../taint/safe_int_bounded.expect.json | 6 + .../javascript/taint/safe_int_bounded.js | 10 + .../taint/safe_no_source.expect.json | 6 + .../javascript/taint/safe_no_source.js | 6 + .../taint/safe_reassigned_const.expect.json | 6 + .../javascript/taint/safe_reassigned_const.js | 7 + .../taint/safe_sanitized_flow.expect.json | 6 + .../javascript/taint/safe_sanitized_flow.js | 11 + .../taint/safe_ssrf_allowlist.expect.json | 24 + .../javascript/taint/safe_ssrf_allowlist.js | 17 + .../safe_ssrf_axios_hardcoded.expect.json | 6 + .../taint/safe_ssrf_axios_hardcoded.js | 7 + .../taint/safe_ssrf_hardcoded.expect.json | 12 + .../javascript/taint/safe_ssrf_hardcoded.js | 5 + .../taint/safe_ssrf_prefix.expect.json | 15 + .../javascript/taint/safe_ssrf_prefix.js | 10 + .../taint/safe_validated_input.expect.json | 13 + .../javascript/taint/safe_validated_input.js | 11 + .../taint/scope_shadow_precision.expect.json | 24 + .../taint/scope_shadow_precision.js | 17 + .../taint/session_destroy_safe.expect.json | 13 + .../javascript/taint/session_destroy_safe.js | 8 + .../session_destroy_with_query.expect.json | 13 + .../taint/session_destroy_with_query.js | 9 + .../taint/set_attribute_xss.expect.json | 49 + .../javascript/taint/set_attribute_xss.js | 26 + .../javascript/taint/sqli_concat.expect.json | 6 +- .../sqli_mixed_parameterized.expect.json | 29 + .../taint/sqli_mixed_parameterized.js | 14 + .../taint/sqli_mysql_query.expect.json | 15 + .../javascript/taint/sqli_mysql_query.js | 10 + .../sqli_parameterized_edge_cases.expect.json | 55 + .../taint/sqli_parameterized_edge_cases.js | 41 + .../taint/sqli_pg_client.expect.json | 15 + .../javascript/taint/sqli_pg_client.js | 9 + .../taint/sqli_sequelize_raw.expect.json | 24 + .../javascript/taint/sqli_sequelize_raw.js | 8 + .../taint/ssrf_axios_bare.expect.json | 15 + .../javascript/taint/ssrf_axios_bare.js | 10 + .../javascript/taint/ssrf_fetch.expect.json | 24 + .../real_world/javascript/taint/ssrf_fetch.js | 11 + .../javascript/taint/ssrf_got.expect.json | 15 + .../real_world/javascript/taint/ssrf_got.js | 10 + .../taint/ssrf_multihop.expect.json | 24 + .../javascript/taint/ssrf_multihop.js | 13 + .../javascript/taint/ssrf_undici.expect.json | 15 + .../javascript/taint/ssrf_undici.js | 10 + .../taint/string_concat_sink.expect.json | 15 + .../javascript/taint/string_concat_sink.js | 11 + .../taint/symex_encoding_html_xss.expect.json | 13 + .../taint/symex_encoding_html_xss.js | 18 + .../symex_encoding_wrong_type.expect.json | 28 + .../taint/symex_encoding_wrong_type.js | 20 + .../symex_exception_catch_taint.expect.json | 15 + .../taint/symex_exception_catch_taint.js | 11 + .../symex_exception_finally_safe.expect.json | 13 + .../taint/symex_exception_finally_safe.js | 12 + .../symex_exception_scope_taint.expect.json | 15 + .../taint/symex_exception_scope_taint.js | 12 + .../taint/symex_expression_tree.expect.json | 36 + .../javascript/taint/symex_expression_tree.js | 9 + .../taint/symex_field_nested.expect.json | 15 + .../javascript/taint/symex_field_nested.js | 8 + ...x_field_propagation_regression.expect.json | 15 + .../symex_field_propagation_regression.js | 10 + .../taint/symex_field_taint.expect.json | 15 + .../javascript/taint/symex_field_taint.js | 10 + ...ex_interproc_budget_exhaustion.expect.json | 25 + .../symex_interproc_budget_exhaustion.js | 15 + ...interproc_callee_internal_sink.expect.json | 39 + .../symex_interproc_callee_internal_sink.js | 13 + ...ymex_interproc_callee_sanitize.expect.json | 25 + .../taint/symex_interproc_callee_sanitize.js | 13 + .../symex_interproc_heap_mutation.expect.json | 26 + .../taint/symex_interproc_heap_mutation.js | 13 + .../symex_interproc_multi_return.expect.json | 25 + .../taint/symex_interproc_multi_return.js | 16 + ...mex_interproc_mutual_recursion.expect.json | 25 + .../taint/symex_interproc_mutual_recursion.js | 18 + .../symex_interproc_nested_depth3.expect.json | 25 + .../taint/symex_interproc_nested_depth3.js | 21 + .../symex_interproc_passthrough.expect.json | 36 + .../taint/symex_interproc_passthrough.js | 13 + .../symex_interproc_recursive.expect.json | 25 + .../taint/symex_interproc_recursive.js | 15 + .../taint/symex_loop_exit_correct.expect.json | 26 + .../taint/symex_loop_exit_correct.js | 13 + .../taint/symex_loop_infinite.expect.json | 26 + .../javascript/taint/symex_loop_infinite.js | 12 + .../taint/symex_loop_inner_sink.expect.json | 25 + .../javascript/taint/symex_loop_inner_sink.js | 9 + .../taint/symex_loop_multi_exit.expect.json | 26 + .../javascript/taint/symex_loop_multi_exit.js | 14 + .../taint/symex_loop_nested.expect.json | 26 + .../javascript/taint/symex_loop_nested.js | 13 + .../taint/symex_loop_post_sink.expect.json | 25 + .../javascript/taint/symex_loop_post_sink.js | 11 + .../symex_loop_taint_survives.expect.json | 26 + .../taint/symex_loop_taint_survives.js | 11 + .../taint/symex_multipath.expect.json | 25 + .../javascript/taint/symex_multipath.js | 13 + .../taint/symex_nested_expr.expect.json | 36 + .../javascript/taint/symex_nested_expr.js | 11 + .../taint/symex_phi_merge.expect.json | 36 + .../javascript/taint/symex_phi_merge.js | 14 + .../taint/symex_smt_infeasible.expect.json | 25 + .../javascript/taint/symex_smt_infeasible.js | 15 + .../taint/symex_string_chain.expect.json | 36 + .../javascript/taint/symex_string_chain.js | 10 + .../symex_string_replace_xss.expect.json | 26 + .../taint/symex_string_replace_xss.js | 8 + .../taint/symex_witness_cmdi.expect.json | 25 + .../javascript/taint/symex_witness_cmdi.js | 8 + .../taint/symex_witness_sqli.expect.json | 25 + .../javascript/taint/symex_witness_sqli.js | 9 + .../taint/symex_witness_xss.expect.json | 25 + .../javascript/taint/symex_witness_xss.js | 8 + .../taint/telemetry_user_agent_fp.expect.json | 13 + .../taint/telemetry_user_agent_fp.js | 16 + .../taint/template_literal_xss.expect.json | 15 + .../javascript/taint/template_literal_xss.js | 7 + ...y_both_branches_sanitized_safe.expect.json | 15 + .../ternary_both_branches_sanitized_safe.js | 15 + .../ternary_literal_branches_safe.expect.json | 15 + .../taint/ternary_literal_branches_safe.js | 13 + .../ternary_one_branch_tainted.expect.json | 15 + .../taint/ternary_one_branch_tainted.js | 14 + .../taint/ternary_taint.expect.json | 25 + .../javascript/taint/ternary_taint.js | 8 + .../taint/try_catch_taint.expect.json | 21 + .../javascript/taint/try_catch_taint.js | 21 + .../taint/typeof_guard_eval.expect.json | 6 + .../javascript/taint/typeof_guard_eval.js | 9 + .../taint/unsafe_bitwise_or.expect.json | 11 + .../javascript/taint/unsafe_bitwise_or.js | 10 + .../taint/unsafe_he_no_encode.expect.json | 15 + .../javascript/taint/unsafe_he_no_encode.js | 7 + .../taint/unsafe_ssrf_scheme_only.expect.json | 15 + .../taint/unsafe_ssrf_scheme_only.js | 10 + .../taint/unsafe_string_bounded.expect.json | 15 + .../javascript/taint/unsafe_string_bounded.js | 9 + .../javascript/taint/xss_res_send.expect.json | 6 +- .../php/cfg/curl_lifecycle.expect.json | 11 + .../php/cfg/error_fallthrough.expect.json | 11 + .../php/cfg/switch_case.expect.json | 10 + .../php/cfg/try_catch_finally.expect.json | 22 + .../php/mixed/upload_cmdi.expect.json | 38 +- .../php/mixed/web_handler.expect.json | 11 + .../php/state/branch_leak.expect.json | 2 +- .../php/state/curl_state.expect.json | 2 +- .../php/state/db_connection.expect.json | 2 +- .../php/state/file_handle.expect.json | 4 +- .../php/taint/closure_taint.expect.json | 26 + .../real_world/php/taint/closure_taint.php | 7 + .../php/taint/cmdi_shell_exec.expect.json | 46 + .../php/taint/deser_unserialize.expect.json | 25 + .../php/taint/eval_input.expect.json | 14 + .../php/taint/file_upload.expect.json | 25 + .../php/taint/include_rfi.expect.json | 14 + .../infeasible_equality_check.expect.json | 15 + .../php/taint/infeasible_equality_check.php | 10 + .../taint/laravel_eloquent_raw.expect.json | 23 + .../php/taint/laravel_eloquent_raw.php | 8 + .../taint/reassignment_compound.expect.json | 15 + .../php/taint/reassignment_compound.php | 4 + .../php/taint/safe_constant_args.expect.json | 33 + .../php/taint/safe_constant_args.php | 5 + .../php/taint/safe_no_source.expect.json | 34 + .../real_world/php/taint/safe_no_source.php | 6 + .../taint/safe_reassigned_const.expect.json | 6 + .../php/taint/safe_reassigned_const.php | 4 + .../php/taint/safe_sanitized_flow.expect.json | 24 + .../php/taint/safe_sanitized_flow.php | 5 + .../php/taint/safe_ssrf_hardcoded.expect.json | 6 + .../php/taint/safe_ssrf_hardcoded.php | 8 + .../php/taint/sqli_pdo_query.expect.json | 15 + .../real_world/php/taint/sqli_pdo_query.php | 8 + .../php/taint/ssrf_curl.expect.json | 24 + .../real_world/php/taint/ssrf_curl.php | 9 + .../taint/ssrf_file_get_contents.expect.json | 24 + .../php/taint/ssrf_file_get_contents.php | 6 + .../php/taint/throw_in_try.expect.json | 48 + .../real_world/php/taint/throw_in_try.php | 7 + .../php/taint/type_curl_init.expect.json | 15 + .../real_world/php/taint/type_curl_init.php | 6 + .../python/cfg/context_manager.expect.json | 41 + .../python/cfg/early_return.expect.json | 11 + .../python/cfg/raise_terminator.expect.json | 8 +- .../cfg/try_except_resource.expect.json | 33 + .../python/mixed/flask_full_stack.expect.json | 11 + .../safe/safe_parameterized_query.expect.json | 23 + .../python/safe/safe_parameterized_query.py | 9 + .../safe_parameterized_variants.expect.json | 63 + .../safe/safe_parameterized_variants.py | 33 + .../python/state/branch_leak.expect.json | 2 +- .../python/state/file_lifecycle.expect.json | 6 +- .../python/state/socket_lifecycle.expect.json | 35 +- .../python/state/with_statement.expect.json | 11 + .../python/taint/attribute_taint.expect.json | 15 + .../python/taint/attribute_taint.py | 8 + .../taint/callback_sink_tracking.expect.json | 25 + .../python/taint/callback_sink_tracking.py | 9 + .../taint/closure_captured_var.expect.json | 14 + .../python/taint/closure_captured_var.py | 13 + .../python/taint/cmdi_subprocess.expect.json | 25 + .../taint/destructuring_taint.expect.json | 15 + .../python/taint/destructuring_taint.py | 6 + .../python/taint/django_orm_raw.expect.json | 24 + .../real_world/python/taint/django_orm_raw.py | 6 + .../python/taint/django_sqli.expect.json | 43 + .../real_world/python/taint/django_sqli.py | 9 + .../python/taint/flask_ssti.expect.json | 25 + .../real_world/python/taint/flask_ssti.py | 8 + .../python/taint/flask_xss_render.expect.json | 24 + .../python/taint/flask_xss_render.py | 10 + .../python/taint/heap_alias_cmdi.expect.json | 28 + .../python/taint/heap_alias_cmdi.py | 12 + .../taint/infeasible_null_eq.expect.json | 15 + .../python/taint/infeasible_null_eq.py | 10 + .../interproc_list_passthrough.expect.json | 28 + .../taint/interproc_list_passthrough.py | 14 + .../taint/isinstance_db_conn_sqli.expect.json | 15 + .../python/taint/isinstance_db_conn_sqli.py | 7 + .../taint/isinstance_guard_sqli.expect.json | 6 + .../python/taint/isinstance_guard_sqli.py | 11 + .../python/taint/lambda_closure.expect.json | 22 + .../real_world/python/taint/lambda_closure.py | 12 + .../python/taint/lambda_taint.expect.json | 25 + .../real_world/python/taint/lambda_taint.py | 6 + .../python/taint/list_append_cmdi.expect.json | 26 + .../python/taint/list_append_cmdi.py | 11 + .../python/taint/os_system_cmdi.expect.json | 25 + .../real_world/python/taint/os_system_cmdi.py | 10 + .../python/taint/pickle_deser.expect.json | 13 +- .../python/taint/raise_in_try.expect.json | 47 + .../real_world/python/taint/raise_in_try.py | 8 + .../taint/reassignment_compound.expect.json | 15 + .../python/taint/reassignment_compound.py | 6 + .../taint/safe_constant_args.expect.json | 33 + .../python/taint/safe_constant_args.py | 6 + .../python/taint/safe_no_source.expect.json | 23 + .../real_world/python/taint/safe_no_source.py | 7 + .../python/taint/safe_ord_bounded.expect.json | 6 + .../python/taint/safe_ord_bounded.py | 9 + .../taint/safe_reassigned_const.expect.json | 6 + .../python/taint/safe_reassigned_const.py | 6 + .../taint/safe_sanitized_flow.expect.json | 6 + .../python/taint/safe_sanitized_flow.py | 12 + .../taint/safe_shlex_sanitized.expect.json | 24 + .../python/taint/safe_shlex_sanitized.py | 12 + .../taint/safe_ssrf_allowlist.expect.json | 24 + .../python/taint/safe_ssrf_allowlist.py | 15 + .../taint/safe_ssrf_constant.expect.json | 6 + .../python/taint/safe_ssrf_constant.py | 6 + .../python/taint/safe_ssrf_prefix.expect.json | 15 + .../python/taint/safe_ssrf_prefix.py | 9 + .../python/taint/sqli_concat.expect.json | 70 +- .../taint/sqli_conn_execute.expect.json | 15 + .../python/taint/sqli_conn_execute.py | 8 + .../sqli_mixed_parameterized.expect.json | 45 + .../python/taint/sqli_mixed_parameterized.py | 16 + .../taint/sqli_session_execute.expect.json | 15 + .../python/taint/sqli_session_execute.py | 10 + .../python/taint/ssrf_httpx_post.expect.json | 15 + .../python/taint/ssrf_httpx_post.py | 10 + .../python/taint/ssrf_requests.expect.json | 15 + .../real_world/python/taint/ssrf_requests.py | 10 + .../python/taint/try_except_taint.expect.json | 35 + .../python/taint/try_except_taint.py | 6 + .../taint/tuple_unpack_taint.expect.json | 15 + .../python/taint/tuple_unpack_taint.py | 8 + .../python/taint/yaml_deser.expect.json | 13 +- .../ruby/cfg/begin_rescue_ensure.expect.json | 48 +- .../ruby/cfg/block_form.expect.json | 21 + .../real_world/ruby/cfg/case_when.expect.json | 22 + .../ruby/mixed/file_taint.expect.json | 4 +- .../ruby/state/block_vs_manual.expect.json | 29 +- .../ruby/state/conditional_close.expect.json | 15 +- .../ruby/state/file_lifecycle.expect.json | 50 +- .../ruby/state/socket_lifecycle.expect.json | 2 +- .../ruby/taint/cmdi_backticks.expect.json | 5 +- .../ruby/taint/cmdi_system.expect.json | 22 + .../ruby/taint/constantize.expect.json | 5 +- .../infeasible_equality_check.expect.json | 15 + .../ruby/taint/infeasible_equality_check.rb | 12 + .../ruby/taint/marshal_deser.expect.json | 5 +- .../ruby/taint/rails_redirect.expect.json | 25 + .../real_world/ruby/taint/rails_redirect.rb | 10 + .../ruby/taint/rails_sqli.expect.json | 15 + .../real_world/ruby/taint/rails_sqli.rb | 11 + .../ruby/taint/rails_where_sqli.expect.json | 15 + .../real_world/ruby/taint/rails_where_sqli.rb | 11 + .../taint/reassignment_compound.expect.json | 15 + .../ruby/taint/reassignment_compound.rb | 5 + .../ruby/taint/rescue_safe.expect.json | 6 + .../real_world/ruby/taint/rescue_safe.rb | 11 + .../ruby/taint/rescue_taint.expect.json | 15 + .../real_world/ruby/taint/rescue_taint.rb | 8 + .../ruby/taint/safe_constant_args.expect.json | 33 + .../ruby/taint/safe_constant_args.rb | 3 + .../ruby/taint/safe_no_source.expect.json | 34 + .../real_world/ruby/taint/safe_no_source.rb | 4 + .../taint/safe_reassigned_const.expect.json | 6 + .../ruby/taint/safe_reassigned_const.rb | 5 + .../taint/safe_sanitized_flow.expect.json | 24 + .../ruby/taint/safe_sanitized_flow.rb | 5 + .../taint/safe_ssrf_hardcoded.expect.json | 6 + .../ruby/taint/safe_ssrf_hardcoded.rb | 7 + .../ruby/taint/sinatra_erb_xss.expect.json | 15 + .../real_world/ruby/taint/sinatra_erb_xss.rb | 6 + .../ruby/taint/ssrf_httparty_post.expect.json | 15 + .../ruby/taint/ssrf_httparty_post.rb | 6 + .../ruby/taint/ssrf_net_http.expect.json | 15 + .../real_world/ruby/taint/ssrf_net_http.rb | 8 + .../taint/type_aware_http_client.expect.json | 15 + .../ruby/taint/type_aware_http_client.rb | 7 + .../ruby/taint/yaml_deser.expect.json | 2 +- .../rust/cfg/closure_async.expect.json | 11 + .../rust/mixed/web_handler.expect.json | 33 + .../rust/state/early_return.expect.json | 10 +- .../rust/state/unsafe_resource.expect.json | 35 +- .../rust/taint/actix_xss.expect.json | 6 + .../real_world/rust/taint/actix_xss.rs | 7 + .../rust/taint/command_env_args.expect.json | 11 + .../rust/taint/env_to_command.expect.json | 41 +- .../rust/taint/safe_constant_args.expect.json | 23 + .../rust/taint/safe_constant_args.rs | 8 + .../rust/taint/safe_no_source.expect.json | 23 + .../real_world/rust/taint/safe_no_source.rs | 11 + .../taint/safe_reassigned_const.expect.json | 6 + .../rust/taint/safe_reassigned_const.rs | 8 + ...e_replace_chain_path_traversal.expect.json | 15 + .../safe_replace_chain_path_traversal.rs | 16 + .../taint/safe_sanitized_flow.expect.json | 6 + .../rust/taint/safe_sanitized_flow.rs | 19 + .../rust/taint/ssrf_reqwest.expect.json | 23 + .../real_world/rust/taint/ssrf_reqwest.rs | 6 + .../rust/taint/transmute_unsafe.expect.json | 11 + ...unsafe_replace_chain_no_credit.expect.json | 15 + .../taint/unsafe_replace_chain_no_credit.rs | 15 + ...e_replace_reintroduces_pattern.expect.json | 15 + .../unsafe_replace_reintroduces_pattern.rs | 15 + .../cfg/interface_guard.expect.json | 11 + .../typescript/cfg/promise_chain.expect.json | 29 +- .../cfg/try_catch_typed.expect.json | 33 +- .../mixed/auth_taint_cfg.expect.json | 121 + .../mixed/taint_state_interaction.expect.json | 42 +- .../typescript/state/double_close.expect.json | 20 + .../state/resource_class.expect.json | 11 + .../state/stream_lifecycle.expect.json | 54 +- .../taint/async_await_taint.expect.json | 24 + .../typescript/taint/async_await_taint.ts | 9 + .../taint/decorator_handler.expect.json | 15 +- .../taint/destructured_params.expect.json | 26 + .../typescript/taint/destructured_params.ts | 7 + .../typescript/taint/enum_switch.expect.json | 4 +- .../taint/express_redirect.expect.json | 55 + .../typescript/taint/express_redirect.ts | 13 + .../taint/express_typed.expect.json | 110 + .../typescript/taint/express_xss.expect.json | 53 + .../typescript/taint/express_xss.ts | 13 + .../taint/generic_handler.expect.json | 15 +- .../infeasible_equality_check.expect.json | 15 + .../taint/infeasible_equality_check.ts | 13 + .../taint/interface_param_taint.expect.json | 15 + .../typescript/taint/interface_param_taint.ts | 10 + .../taint/optional_chain.expect.json | 55 + .../taint/safe_constant_args.expect.json | 6 + .../typescript/taint/safe_constant_args.ts | 4 + .../taint/safe_no_source.expect.json | 6 + .../typescript/taint/safe_no_source.ts | 6 + .../taint/safe_reassigned_const.expect.json | 6 + .../typescript/taint/safe_reassigned_const.ts | 5 + .../taint/safe_sanitized_flow.expect.json | 6 + .../typescript/taint/safe_sanitized_flow.ts | 13 + .../taint/safe_ssrf_hardcoded.expect.json | 6 + .../typescript/taint/safe_ssrf_hardcoded.ts | 4 + .../typescript/taint/ssrf_fetch.expect.json | 24 + .../real_world/typescript/taint/ssrf_fetch.ts | 11 + .../ts_as_string_still_tainted.expect.json | 15 + .../taint/ts_as_string_still_tainted.ts | 7 + .../taint/type_assertion_bypass.expect.json | 36 +- .../receiver_chain_taint_java/Main.java | 17 + .../receiver_chain_taint_java/README.md | 17 + .../expectations.json | 16 + .../expectations.json | 14 + .../route_registration_noise/routes.js | 10 + .../expectations.json | 14 + .../package.json | 9 + .../routes.js | 21 + .../fixtures/rust_framework_rules/Cargo.toml | 9 + tests/fixtures/rust_framework_rules/README.md | 12 + .../rust_framework_rules/actix_handlers.rs | 5 + .../rust_framework_rules/axum_handlers.rs | 10 + .../rust_framework_rules/expectations.json | 16 + .../rust_framework_rules/rocket_handlers.rs | 10 + .../expectations.json | 15 + .../src/auth/session.rs | 12 + .../src/auth/token.rs | 5 + .../rust_module_path_resolution/src/main.rs | 11 + tests/fixtures/rust_web_app/README.md | 12 + tests/fixtures/rust_web_app/expectations.json | 2 +- .../same_name_collisions_js/README.md | 12 + tests/fixtures/same_name_collisions_js/app.js | 66 + .../same_name_collisions_js/expectations.json | 16 + .../state/auth_api_version_not_handler.js | 5 + .../state/auth_decode_token_not_auth.js | 7 + .../auth_decorator_cpp_authenticated.cpp | 6 + .../state/auth_decorator_java_non_auth.java | 9 + .../auth_decorator_java_preauthorize.java | 8 + .../state/auth_decorator_js_non_auth.ts | 10 + .../state/auth_decorator_js_use_guards.ts | 8 + .../state/auth_decorator_php_is_granted.php | 8 + .../state/auth_decorator_python_admin.py | 8 + .../auth_decorator_python_login_required.py | 7 + .../state/auth_decorator_python_non_auth.py | 9 + ...th_decorator_python_permission_required.py | 6 + .../auth_decorator_ruby_before_action.rb | 13 + ...uth_decorator_ruby_before_action_except.rb | 10 + ...corator_ruby_before_action_except_other.rb | 10 + .../auth_decorator_ruby_before_action_only.rb | 10 + ...decorator_ruby_before_action_only_match.rb | 10 + .../state/auth_decorator_ruby_no_filter.rb | 6 + .../state/auth_decorator_rust_non_auth.rs | 7 + .../state/auth_decorator_rust_require_auth.rs | 6 + .../state/auth_ensure_authenticated.js | 6 + .../state/auth_false_positive_token.js | 7 + .../state/auth_jwt_verify_protected.js | 7 + tests/fixtures/state/auth_main_not_handler.js | 5 + .../fixtures/state/auth_negated_condition.js | 9 + tests/fixtures/state/auth_not_a_handler.py | 4 + .../fixtures/state/auth_protected_handler.js | 7 + .../state/auth_require_role_protected.js | 6 + .../state/auth_substring_false_match.js | 9 + .../state/auth_unprotected_handler.js | 6 + .../state/cpp_alias_before_delete.cpp | 6 + tests/fixtures/state/cpp_new_delete_clean.cpp | 4 + tests/fixtures/state/cpp_new_delete_leak.cpp | 4 + .../fixtures/state/cpp_new_double_delete.cpp | 5 + .../fixtures/state/cpp_smart_ptr_no_leak.cpp | 6 + .../state/cpp_smart_ptr_scope_exit.cpp | 7 + .../state/cpp_unique_ptr_from_raw.cpp | 6 + .../state/factory_leak_not_returned.c | 8 + tests/fixtures/state/go_defer_close.go | 10 + tests/fixtures/state/go_defer_missing.go | 9 + .../state/go_no_defer_manual_close.go | 10 + tests/fixtures/state/go_sql_open_clean.go | 9 + tests/fixtures/state/go_sql_open_leak.go | 9 + .../state/java_db_connection_leak.java | 10 + tests/fixtures/state/java_double_close.java | 9 + .../state/java_file_stream_clean.java | 11 + .../fixtures/state/java_file_stream_leak.java | 11 + .../state/java_prepared_stmt_clean.java | 11 + .../state/java_prepared_stmt_leak.java | 10 + .../state/java_server_socket_leak.java | 9 + .../state/java_try_with_resources.java | 14 + tests/fixtures/state/js_fs_open_close.js | 4 + tests/fixtures/state/js_fs_open_no_close.js | 4 + tests/fixtures/state/js_fs_use_after_close.js | 8 + .../state/js_mysql_connection_clean.js | 7 + .../state/js_mysql_connection_leak.js | 7 + tests/fixtures/state/js_websocket_leak.js | 5 + tests/fixtures/state/loop_reopen.c | 11 + .../fixtures/state/multi_function_isolation.c | 11 + .../state/multi_function_isolation.rb | 9 + .../state/php_curl_use_after_close.php | 9 + tests/fixtures/state/php_fopen_close.php | 7 + tests/fixtures/state/php_fopen_no_close.php | 6 + tests/fixtures/state/php_fsockopen_leak.php | 6 + tests/fixtures/state/php_mysqli_clean.php | 8 + tests/fixtures/state/php_mysqli_leak.php | 8 + tests/fixtures/state/php_pg_connect_leak.php | 6 + tests/fixtures/state/python_double_close.py | 4 + .../fixtures/state/python_file_open_close.py | 4 + .../state/python_file_open_no_close.py | 4 + tests/fixtures/state/python_sqlite_clean.py | 6 + tests/fixtures/state/python_sqlite_leak.py | 6 + .../fixtures/state/python_use_after_close.py | 4 + tests/fixtures/state/python_with_nested.py | 9 + tests/fixtures/state/python_with_statement.py | 3 + tests/fixtures/state/resource_as_arg.c | 12 + tests/fixtures/state/resource_returned.c | 6 + .../return_null_after_open_without_close.c | 6 + .../state/returned_on_all_success_paths.c | 11 + .../returned_on_one_path_leaked_on_another.c | 9 + tests/fixtures/state/ruby_double_close.rb | 5 + tests/fixtures/state/ruby_file_open_close.rb | 6 + .../fixtures/state/ruby_file_open_no_close.rb | 5 + .../fixtures/state/ruby_pg_connection_leak.rb | 4 + tests/fixtures/state/ruby_tempfile_leak.rb | 7 + tests/fixtures/state/ruby_use_after_close.rb | 6 + tests/fixtures/state/rust_box_owned.rs | 5 + tests/fixtures/state/rust_explicit_drop.rs | 6 + .../fixtures/state/rust_raii_file_no_leak.rs | 9 + .../fixtures/state/rust_unsafe_alloc_clean.rs | 7 + .../fixtures/state/rust_unsafe_alloc_leak.rs | 7 + tests/fixtures/state/ts_fs_open_close.ts | 6 + tests/fixtures/state/ts_fs_open_no_close.ts | 5 + .../state/ts_stream_use_after_destroy.ts | 7 + tests/fixtures/state/variable_shadowing.c | 10 + .../fixtures/switch_fall_through_c/README.md | 20 + .../switch_fall_through_c/expectations.json | 16 + .../fixtures/switch_fall_through_c/handler.c | 44 + .../symex/match_suppresses_safe_arm.rs | 38 + tests/fixtures/symex/switch_go.go | 42 + tests/fixtures/symex/switch_java.java | 34 + tests/fixtures/symex/symex_cgi_escape_ruby.rb | 22 + tests/fixtures/symex/symex_query_escape_go.go | 24 + .../symex/symex_url_encoder_java.java | 29 + tests/fixtures/weak_hash_password/README.md | 12 + tests/fixtures/weak_hash_password/app.js | 12 + .../weak_hash_password/expectations.json | 16 + tests/gauss_seidel_tests.rs | 162 + tests/hostile_input_tests.rs | 530 + tests/incremental_index_tests.rs | 254 + tests/indexed_parity_tests.rs | 544 + tests/inline_cache_origin_tests.rs | 151 + tests/integration_tests.rs | 740 + tests/js_ts_pass2_convergence_tests.rs | 180 + tests/malformed_config_tests.rs | 192 + tests/panic_recovery_tests.rs | 259 + tests/parse_timeout_test.rs | 96 + tests/pattern_tests.rs | 14 + tests/perf_tests.rs | 65 +- tests/phase12_switch_tests.rs | 37 + tests/phase8_fragility_tests.rs | 113 + tests/phase_c_auth_taint_tests.rs | 93 + tests/real_world_tests.rs | 367 +- tests/scc_convergence_tests.rs | 374 + tests/scc_cross_file_tests.rs | 113 + tests/ssa_equivalence_tests.rs | 883 ++ tests/state_tests.rs | 801 +- tests/symex_switch_tests.rs | 108 + tests/symex_transform_tests.rs | 129 + tests/taint_termination_test.rs | 2 +- tools/docgen/main.rs | 153 + 2144 files changed, 201812 insertions(+), 8927 deletions(-) create mode 100644 .github/codeql/codeql-config.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .nyx/triage.json create mode 100644 AI-POLICY.md create mode 100644 CLA.md create mode 100644 ROADMAP.md create mode 100644 THIRDPARTY-LICENSES.html create mode 100755 action-scripts/download.sh create mode 100755 action-scripts/run.sh create mode 100644 action.yml create mode 100644 assets/nyx-logo-text.png create mode 100644 assets/nyx-logo.png create mode 100644 assets/nyx-wordmark.svg create mode 100644 assets/screenshots/cli-scan.png create mode 100644 assets/screenshots/demo.gif create mode 100644 assets/screenshots/docs/cli-configshow.png create mode 100644 assets/screenshots/docs/cli-explain-engine.png create mode 100644 assets/screenshots/docs/cli-failon.png create mode 100644 assets/screenshots/docs/cli-idxstatus.png create mode 100644 assets/screenshots/docs/cli-rollup-tail.png create mode 100644 assets/screenshots/docs/cli-scan-quickstart.png create mode 100644 assets/screenshots/docs/serve-config.png create mode 100644 assets/screenshots/docs/serve-explorer.png create mode 100644 assets/screenshots/docs/serve-finding-detail.png create mode 100644 assets/screenshots/docs/serve-findings-list.png create mode 100644 assets/screenshots/docs/serve-overview.png create mode 100644 assets/screenshots/docs/serve-rules.png create mode 100644 assets/screenshots/docs/serve-scan-detail.png create mode 100644 assets/screenshots/docs/serve-scans.png create mode 100644 assets/screenshots/docs/serve-triage.png create mode 100644 assets/screenshots/explorer.png create mode 100644 assets/screenshots/finding-detail.png create mode 100644 assets/screenshots/overview.png create mode 100644 assets/screenshots/triage.png create mode 100644 benches/fixtures/state_bench.c create mode 100644 book.toml create mode 100644 build.rs create mode 100644 docs/SUMMARY.md create mode 100644 docs/advanced-analysis.md create mode 120000 docs/assets create mode 100644 docs/auth.md create mode 100644 docs/changelog.md create mode 100644 docs/how-it-works.md delete mode 100644 docs/index.md create mode 100644 docs/language-maturity.md create mode 100644 docs/roadmap.md create mode 100644 docs/rules.md delete mode 100644 docs/rules/c.md delete mode 100644 docs/rules/cpp.md delete mode 100644 docs/rules/go.md delete mode 100644 docs/rules/index.md delete mode 100644 docs/rules/java.md delete mode 100644 docs/rules/javascript.md delete mode 100644 docs/rules/php.md delete mode 100644 docs/rules/python.md delete mode 100644 docs/rules/ruby.md delete mode 100644 docs/rules/rust.md delete mode 100644 docs/rules/typescript.md create mode 100644 docs/serve.md delete mode 100644 examples/cfg_analysis/example.js delete mode 100644 examples/cfg_analysis/example.rs delete mode 100644 examples/cross-file/config.rs delete mode 100644 examples/cross-file/exec.rs delete mode 100644 examples/cross-file/main.rs delete mode 100644 examples/cross-file/sanitize.rs delete mode 100644 examples/sanatize/example.rs delete mode 100644 examples/single-func/example.rs delete mode 100644 examples/standard/test.rs create mode 100644 frontend/.prettierignore create mode 100644 frontend/.prettierrc.json create mode 100644 frontend/eslint.config.js create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/scripts/check-licenses.mjs create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/api/client.ts create mode 100644 frontend/src/api/mutations/config.ts create mode 100644 frontend/src/api/mutations/rules.ts create mode 100644 frontend/src/api/mutations/scans.ts create mode 100644 frontend/src/api/mutations/triage.ts create mode 100644 frontend/src/api/queries/config.ts create mode 100644 frontend/src/api/queries/debug.ts create mode 100644 frontend/src/api/queries/explorer.ts create mode 100644 frontend/src/api/queries/findings.ts create mode 100644 frontend/src/api/queries/health.ts create mode 100644 frontend/src/api/queries/overview.ts create mode 100644 frontend/src/api/queries/rules.ts create mode 100644 frontend/src/api/queries/scans.ts create mode 100644 frontend/src/api/queries/triage.ts create mode 100644 frontend/src/api/queryClient.ts create mode 100644 frontend/src/api/types.ts create mode 100644 frontend/src/components/CopyMarkdownButton.tsx create mode 100644 frontend/src/components/charts/HorizontalBarChart.tsx create mode 100644 frontend/src/components/charts/LineChart.tsx create mode 100644 frontend/src/components/data-display/CodeViewer.tsx create mode 100644 frontend/src/components/data-display/FileTree.tsx create mode 100644 frontend/src/components/explorer/AnalysisWorkspace.tsx create mode 100644 frontend/src/components/icons/Icons.tsx create mode 100644 frontend/src/components/layout/AppLayout.tsx create mode 100644 frontend/src/components/layout/HeaderBar.tsx create mode 100644 frontend/src/components/layout/Sidebar.tsx create mode 100644 frontend/src/components/ui/Dropdown.tsx create mode 100644 frontend/src/components/ui/EmptyState.tsx create mode 100644 frontend/src/components/ui/ErrorState.tsx create mode 100644 frontend/src/components/ui/LoadingState.tsx create mode 100644 frontend/src/components/ui/Modal.tsx create mode 100644 frontend/src/components/ui/Pagination.tsx create mode 100644 frontend/src/components/ui/StatCard.tsx create mode 100644 frontend/src/contexts/SSEContext.tsx create mode 100644 frontend/src/graph/adapters/callgraph.ts create mode 100644 frontend/src/graph/adapters/cfg.ts create mode 100644 frontend/src/graph/components/CallGraphCanvas.tsx create mode 100644 frontend/src/graph/components/CfgGraphCanvas.tsx create mode 100644 frontend/src/graph/components/GraphToolbar.tsx create mode 100644 frontend/src/graph/hooks/useElkLayout.ts create mode 100644 frontend/src/graph/layout/elk.ts create mode 100644 frontend/src/graph/layout/text.ts create mode 100644 frontend/src/graph/reduction/cfgCompaction.ts create mode 100644 frontend/src/graph/reduction/neighborhood.ts create mode 100644 frontend/src/graph/rendering/sigma/SigmaGraph.tsx create mode 100644 frontend/src/graph/rendering/sigma/buildGraph.ts create mode 100644 frontend/src/graph/rendering/sigma/edgeOverlay.ts create mode 100644 frontend/src/graph/styles.ts create mode 100644 frontend/src/graph/types.ts create mode 100644 frontend/src/hooks/useDebounce.ts create mode 100644 frontend/src/hooks/useFileTree.ts create mode 100644 frontend/src/hooks/useFindingsURLState.ts create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/modals/CodeViewerModal.tsx create mode 100644 frontend/src/modals/NewScanModal.tsx create mode 100644 frontend/src/pages/ConfigPage.tsx create mode 100644 frontend/src/pages/ExplorerPage.tsx create mode 100644 frontend/src/pages/FindingDetailPage.tsx create mode 100644 frontend/src/pages/FindingsPage.tsx create mode 100644 frontend/src/pages/OverviewPage.tsx create mode 100644 frontend/src/pages/RulesPage.tsx create mode 100644 frontend/src/pages/ScanComparePage.tsx create mode 100644 frontend/src/pages/ScanDetailPage.tsx create mode 100644 frontend/src/pages/ScansPage.tsx create mode 100644 frontend/src/pages/StubPage.tsx create mode 100644 frontend/src/pages/TriagePage.tsx create mode 100644 frontend/src/pages/debug/AbstractInterpPage.tsx create mode 100644 frontend/src/pages/debug/CallGraphPage.tsx create mode 100644 frontend/src/pages/debug/CfgViewerPage.tsx create mode 100644 frontend/src/pages/debug/DebugLayout.tsx create mode 100644 frontend/src/pages/debug/FunctionSelector.tsx create mode 100644 frontend/src/pages/debug/SsaViewerPage.tsx create mode 100644 frontend/src/pages/debug/SummaryExplorerPage.tsx create mode 100644 frontend/src/pages/debug/SymexPage.tsx create mode 100644 frontend/src/pages/debug/TaintViewerPage.tsx create mode 100644 frontend/src/styles/global.css create mode 100644 frontend/src/test/api/client.test.ts create mode 100644 frontend/src/test/components/Pagination.test.tsx create mode 100644 frontend/src/test/components/StatCard.test.tsx create mode 100644 frontend/src/test/components/stateComponents.test.tsx create mode 100644 frontend/src/test/graph/cfgAdapter.test.ts create mode 100644 frontend/src/test/graph/compactGraph.test.ts create mode 100644 frontend/src/test/graph/nodeStyles.test.ts create mode 100644 frontend/src/test/hooks/useDebounce.test.ts create mode 100644 frontend/src/test/setup.ts create mode 100644 frontend/src/test/utils/findingMarkdown.test.ts create mode 100644 frontend/src/test/utils/formatDate.test.ts create mode 100644 frontend/src/test/utils/syntaxHighlight.test.ts create mode 100644 frontend/src/test/utils/truncPath.test.ts create mode 100644 frontend/src/utils/findingMarkdown.ts create mode 100644 frontend/src/utils/formatDate.ts create mode 100644 frontend/src/utils/parseNote.ts create mode 100644 frontend/src/utils/syntaxHighlight.ts create mode 100644 frontend/src/utils/truncPath.ts create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.tsbuildinfo create mode 100644 frontend/vite.config.ts create mode 100644 scripts/README.md create mode 100755 scripts/check.sh create mode 100755 scripts/fix.sh create mode 100644 src/abstract_interp/bit_domain.rs create mode 100644 src/abstract_interp/interval.rs create mode 100644 src/abstract_interp/mod.rs create mode 100644 src/abstract_interp/path_domain.rs create mode 100644 src/abstract_interp/string_domain.rs create mode 100644 src/auth_analysis/checks.rs create mode 100644 src/auth_analysis/config.rs create mode 100644 src/auth_analysis/extract/actix_web.rs create mode 100644 src/auth_analysis/extract/axum.rs create mode 100644 src/auth_analysis/extract/common.rs create mode 100644 src/auth_analysis/extract/django.rs create mode 100644 src/auth_analysis/extract/echo.rs create mode 100644 src/auth_analysis/extract/express.rs create mode 100644 src/auth_analysis/extract/fastify.rs create mode 100644 src/auth_analysis/extract/flask.rs create mode 100644 src/auth_analysis/extract/gin.rs create mode 100644 src/auth_analysis/extract/koa.rs create mode 100644 src/auth_analysis/extract/mod.rs create mode 100644 src/auth_analysis/extract/rails.rs create mode 100644 src/auth_analysis/extract/rocket.rs create mode 100644 src/auth_analysis/extract/sinatra.rs create mode 100644 src/auth_analysis/extract/spring.rs create mode 100644 src/auth_analysis/mod.rs create mode 100644 src/auth_analysis/model.rs create mode 100644 src/auth_analysis/sql_semantics.rs delete mode 100644 src/cfg.rs create mode 100644 src/cfg/blocks.rs create mode 100644 src/cfg/cfg_tests.rs create mode 100644 src/cfg/conditions.rs create mode 100644 src/cfg/decorators.rs create mode 100644 src/cfg/helpers.rs create mode 100644 src/cfg/imports.rs create mode 100644 src/cfg/literals.rs create mode 100644 src/cfg/mod.rs create mode 100644 src/cfg/params.rs create mode 100644 src/commands/serve.rs create mode 100644 src/constraint/domain.rs create mode 100644 src/constraint/lower.rs create mode 100644 src/constraint/mod.rs create mode 100644 src/constraint/solver.rs create mode 100644 src/constraint/tests.rs create mode 100644 src/convergence_telemetry.rs create mode 100644 src/engine_notes.rs create mode 100644 src/patterns/ejs.rs create mode 100644 src/rust_resolve.rs create mode 100644 src/server/app.rs create mode 100644 src/server/assets.rs create mode 100644 src/server/assets/favicon.svg create mode 100644 src/server/debug.rs create mode 100644 src/server/jobs.rs create mode 100644 src/server/mod.rs create mode 100644 src/server/models.rs create mode 100644 src/server/progress.rs create mode 100644 src/server/routes/config.rs create mode 100644 src/server/routes/debug.rs create mode 100644 src/server/routes/events.rs create mode 100644 src/server/routes/explorer.rs create mode 100644 src/server/routes/files.rs create mode 100644 src/server/routes/findings.rs create mode 100644 src/server/routes/health.rs create mode 100644 src/server/routes/mod.rs create mode 100644 src/server/routes/overview.rs create mode 100644 src/server/routes/rules.rs create mode 100644 src/server/routes/scans.rs create mode 100644 src/server/routes/triage.rs create mode 100644 src/server/scan_log.rs create mode 100644 src/server/security.rs create mode 100644 src/server/triage_sync.rs create mode 100644 src/ssa/alias.rs create mode 100644 src/ssa/const_prop.rs create mode 100644 src/ssa/copy_prop.rs create mode 100644 src/ssa/dce.rs create mode 100644 src/ssa/display.rs create mode 100644 src/ssa/heap.rs create mode 100644 src/ssa/invariants.rs create mode 100644 src/ssa/ir.rs create mode 100644 src/ssa/lower.rs create mode 100644 src/ssa/mod.rs create mode 100644 src/ssa/param_points_to.rs create mode 100644 src/ssa/pointsto.rs create mode 100644 src/ssa/static_map.rs create mode 100644 src/ssa/type_facts.rs create mode 100644 src/summary/points_to.rs create mode 100644 src/summary/ssa_summary.rs create mode 100644 src/symex/executor.rs create mode 100644 src/symex/heap.rs create mode 100644 src/symex/interproc.rs create mode 100644 src/symex/loops.rs create mode 100644 src/symex/mod.rs create mode 100644 src/symex/smt.rs create mode 100644 src/symex/state.rs create mode 100644 src/symex/strings.rs create mode 100644 src/symex/transfer.rs create mode 100644 src/symex/value.rs create mode 100644 src/symex/witness.rs create mode 100644 src/taint/backwards.rs create mode 100644 src/taint/ssa_transfer/events.rs create mode 100644 src/taint/ssa_transfer/inline.rs create mode 100644 src/taint/ssa_transfer/mod.rs create mode 100644 src/taint/ssa_transfer/state.rs create mode 100644 src/taint/ssa_transfer/summary_extract.rs create mode 100644 src/taint/ssa_transfer/tests.rs delete mode 100644 src/taint/transfer.rs create mode 100644 src/utils/analysis_options.rs create mode 100644 src/utils/path.rs create mode 100644 tests/abstract_transfer_tests.rs create mode 100644 tests/auth_analysis_tests.rs create mode 100644 tests/backwards_analysis_tests.rs create mode 100644 tests/benchmark/README.md create mode 100644 tests/benchmark/RESULTS.md create mode 100644 tests/benchmark/corpus/c/buffer_overflow/buffer_sprintf.c create mode 100644 tests/benchmark/corpus/c/buffer_overflow/buffer_strcat.c create mode 100644 tests/benchmark/corpus/c/buffer_overflow/buffer_strcpy.c create mode 100644 tests/benchmark/corpus/c/cmdi/cmdi_exec.c create mode 100644 tests/benchmark/corpus/c/cmdi/cmdi_fgets.c create mode 100644 tests/benchmark/corpus/c/cmdi/cmdi_popen.c create mode 100644 tests/benchmark/corpus/c/cmdi/cmdi_system.c create mode 100644 tests/benchmark/corpus/c/fmt_string/fmt_fprintf.c create mode 100644 tests/benchmark/corpus/c/fmt_string/fmt_printf.c create mode 100644 tests/benchmark/corpus/c/path_traversal/path_traversal_fopen.c create mode 100644 tests/benchmark/corpus/c/path_traversal/path_traversal_open.c create mode 100644 tests/benchmark/corpus/c/safe/safe_atoi.c create mode 100644 tests/benchmark/corpus/c/safe/safe_constant.c create mode 100644 tests/benchmark/corpus/c/safe/safe_cross_function_dotdot.c create mode 100644 tests/benchmark/corpus/c/safe/safe_direct_path_sanitizer.c create mode 100644 tests/benchmark/corpus/c/safe/safe_reassigned.c create mode 100644 tests/benchmark/corpus/c/safe/safe_sanitize_func.c create mode 100644 tests/benchmark/corpus/c/safe/safe_sanitized_snprintf.c create mode 100644 tests/benchmark/corpus/c/safe/safe_status_code_sanitizer.c create mode 100644 tests/benchmark/corpus/c/safe/safe_strncpy.c create mode 100644 tests/benchmark/corpus/c/safe/safe_strtol.c create mode 100644 tests/benchmark/corpus/c/safe/safe_validated.c create mode 100644 tests/benchmark/corpus/c/ssrf/ssrf_curl.c create mode 100644 tests/benchmark/corpus/cpp/buffer_overflow/buffer_sprintf.cpp create mode 100644 tests/benchmark/corpus/cpp/buffer_overflow/buffer_strcpy.cpp create mode 100644 tests/benchmark/corpus/cpp/cmdi/cmdi_exec.cpp create mode 100644 tests/benchmark/corpus/cpp/cmdi/cmdi_getline.cpp create mode 100644 tests/benchmark/corpus/cpp/cmdi/cmdi_popen.cpp create mode 100644 tests/benchmark/corpus/cpp/cmdi/cmdi_system.cpp create mode 100644 tests/benchmark/corpus/cpp/fmt_string/fmt_fprintf.cpp create mode 100644 tests/benchmark/corpus/cpp/fmt_string/fmt_printf.cpp create mode 100644 tests/benchmark/corpus/cpp/path_traversal/path_traversal_fopen.cpp create mode 100644 tests/benchmark/corpus/cpp/path_traversal/path_traversal_open.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_constant.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_cross_function_dotdot.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_direct_path_sanitizer.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_optional_path_sanitizer.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_reassigned.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_sanitize_func.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_snprintf.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_stoi.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_strncpy.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_strtol.cpp create mode 100644 tests/benchmark/corpus/cpp/safe/safe_validated.cpp create mode 100644 tests/benchmark/corpus/cpp/ssrf/ssrf_connect.cpp create mode 100644 tests/benchmark/corpus/cpp/ssrf/ssrf_curl.cpp create mode 100644 tests/benchmark/corpus/go/cmdi/cmdi_direct.go create mode 100644 tests/benchmark/corpus/go/cmdi/cmdi_indirect.go create mode 100644 tests/benchmark/corpus/go/cmdi/cross_source/handler.go create mode 100644 tests/benchmark/corpus/go/cmdi/cross_source/input.go create mode 100644 tests/benchmark/corpus/go/cmdi_env/cmdi_env.go create mode 100644 tests/benchmark/corpus/go/fmt_string/fmt_injection.go create mode 100644 tests/benchmark/corpus/go/interprocedural/interproc_sanitizer_wrap.go create mode 100644 tests/benchmark/corpus/go/interprocedural/interproc_taint_propagation.go create mode 100644 tests/benchmark/corpus/go/path_pruning/safe_early_return.go create mode 100644 tests/benchmark/corpus/go/path_traversal/cross_sanitizer/handler.go create mode 100644 tests/benchmark/corpus/go/path_traversal/cross_sanitizer/sanitize.go create mode 100644 tests/benchmark/corpus/go/path_traversal/path_traversal.go create mode 100644 tests/benchmark/corpus/go/safe/safe_constant.go create mode 100644 tests/benchmark/corpus/go/safe/safe_cross_function_dotdot.go create mode 100644 tests/benchmark/corpus/go/safe/safe_direct_path_sanitizer.go create mode 100644 tests/benchmark/corpus/go/safe/safe_dominated.go create mode 100644 tests/benchmark/corpus/go/safe/safe_interprocedural.go create mode 100644 tests/benchmark/corpus/go/safe/safe_non_security_sink.go create mode 100644 tests/benchmark/corpus/go/safe/safe_reassigned.go create mode 100644 tests/benchmark/corpus/go/safe/safe_sanitized.go create mode 100644 tests/benchmark/corpus/go/safe/safe_strconv_atoi.go create mode 100644 tests/benchmark/corpus/go/safe/safe_tuple_path_sanitizer.go create mode 100644 tests/benchmark/corpus/go/safe/safe_type_check.go create mode 100644 tests/benchmark/corpus/go/safe/safe_validated.go create mode 100644 tests/benchmark/corpus/go/sqli/sqli_concat.go create mode 100644 tests/benchmark/corpus/go/sqli/sqli_queryrow.go create mode 100644 tests/benchmark/corpus/go/sqli/sqli_sprintf.go create mode 100644 tests/benchmark/corpus/go/ssrf/safe_ssrf_hardcoded.go create mode 100644 tests/benchmark/corpus/go/ssrf/ssrf_http_get.go create mode 100644 tests/benchmark/corpus/go/ssrf/ssrf_new_request.go create mode 100644 tests/benchmark/corpus/go/xss/xss_fprintf.go create mode 100644 tests/benchmark/corpus/go/xss/xss_gin_source.go create mode 100644 tests/benchmark/corpus/go/xss/xss_template_html.go create mode 100644 tests/benchmark/corpus/java/auth/SafePreAuthorize.java create mode 100644 tests/benchmark/corpus/java/auth/VulnNoPreAuthorize.java create mode 100644 tests/benchmark/corpus/java/cmdi/CmdiDirect.java create mode 100644 tests/benchmark/corpus/java/cmdi/CmdiIndirect.java create mode 100644 tests/benchmark/corpus/java/code_injection/CodeInjection.java create mode 100644 tests/benchmark/corpus/java/deser/DeserOis.java create mode 100644 tests/benchmark/corpus/java/deser/DeserSource.java create mode 100644 tests/benchmark/corpus/java/interprocedural/InterprocSanitizerWrap.java create mode 100644 tests/benchmark/corpus/java/interprocedural/InterprocTaintPropagation.java create mode 100644 tests/benchmark/corpus/java/path_traversal/PathTraversal.java create mode 100644 tests/benchmark/corpus/java/safe/SafeConstant.java create mode 100644 tests/benchmark/corpus/java/safe/SafeCrossFunctionDotdot.java create mode 100644 tests/benchmark/corpus/java/safe/SafeDirectPathSanitizer.java create mode 100644 tests/benchmark/corpus/java/safe/SafeDominated.java create mode 100644 tests/benchmark/corpus/java/safe/SafeInterprocedural.java create mode 100644 tests/benchmark/corpus/java/safe/SafeNonSecuritySink.java create mode 100644 tests/benchmark/corpus/java/safe/SafeOptionalPathSanitizer.java create mode 100644 tests/benchmark/corpus/java/safe/SafeReassigned.java create mode 100644 tests/benchmark/corpus/java/safe/SafeSanitized.java create mode 100644 tests/benchmark/corpus/java/safe/SafeTypeCheck.java create mode 100644 tests/benchmark/corpus/java/safe/SafeValidated.java create mode 100644 tests/benchmark/corpus/java/safe/safe_prepared_statement.java create mode 100644 tests/benchmark/corpus/java/sqli/SqliConcat.java create mode 100644 tests/benchmark/corpus/java/sqli/SqliFormat.java create mode 100644 tests/benchmark/corpus/java/sqli/sqli_statement_vs_prepared.java create mode 100644 tests/benchmark/corpus/java/ssrf/SsrfHttpClient.java create mode 100644 tests/benchmark/corpus/java/ssrf/SsrfRequest.java create mode 100644 tests/benchmark/corpus/java/xss/XssReflected.java create mode 100644 tests/benchmark/corpus/javascript/cmdi/cmdi_direct.js create mode 100644 tests/benchmark/corpus/javascript/cmdi/cmdi_indirect.js create mode 100644 tests/benchmark/corpus/javascript/code_injection/code_injection.js create mode 100644 tests/benchmark/corpus/javascript/code_injection/code_injection_indirect.js create mode 100644 tests/benchmark/corpus/javascript/interprocedural/interproc_sanitizer_wrap.js create mode 100644 tests/benchmark/corpus/javascript/interprocedural/interproc_taint_propagation.js create mode 100644 tests/benchmark/corpus/javascript/path_pruning/safe_early_return.js create mode 100644 tests/benchmark/corpus/javascript/path_traversal/path_traversal.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_constant.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_cross_function_dotdot.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_direct_path_sanitizer.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_dom_globals_and_methods.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_dominated.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_happy_path_error_check.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_interprocedural.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_non_security_sink.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_null_path_sanitizer.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_object_destructure_sanitize.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_parseInt.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_reassigned.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_sanitized.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_switch_dispatch.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_type_check.js create mode 100644 tests/benchmark/corpus/javascript/safe/safe_validated.js create mode 100644 tests/benchmark/corpus/javascript/sqli/sqli_concat.js create mode 100644 tests/benchmark/corpus/javascript/sqli/sqli_template.js create mode 100644 tests/benchmark/corpus/javascript/ssrf/safe_ssrf_hardcoded.js create mode 100644 tests/benchmark/corpus/javascript/ssrf/ssrf_axios.js create mode 100644 tests/benchmark/corpus/javascript/ssrf/ssrf_fetch.js create mode 100644 tests/benchmark/corpus/javascript/xss/cross_propagation/app.js create mode 100644 tests/benchmark/corpus/javascript/xss/cross_propagation/transform.js create mode 100644 tests/benchmark/corpus/javascript/xss/vuln_object_destructure_no_sanitize.js create mode 100644 tests/benchmark/corpus/javascript/xss/xss_document_write.js create mode 100644 tests/benchmark/corpus/javascript/xss/xss_location.js create mode 100644 tests/benchmark/corpus/javascript/xss/xss_react_dangerously.js create mode 100644 tests/benchmark/corpus/javascript/xss/xss_reflected.js create mode 100644 tests/benchmark/corpus/php/auth/safe_isgranted.php create mode 100644 tests/benchmark/corpus/php/auth/vuln_no_isgranted.php create mode 100644 tests/benchmark/corpus/php/cmdi/cmdi_direct.php create mode 100644 tests/benchmark/corpus/php/cmdi/cmdi_indirect.php create mode 100644 tests/benchmark/corpus/php/code_injection/code_injection.php create mode 100644 tests/benchmark/corpus/php/code_injection/code_injection_assert.php create mode 100644 tests/benchmark/corpus/php/deser/deser_unserialize.php create mode 100644 tests/benchmark/corpus/php/interprocedural/interproc_sanitizer_wrap.php create mode 100644 tests/benchmark/corpus/php/interprocedural/interproc_taint_propagation.php create mode 100644 tests/benchmark/corpus/php/path_traversal/path_traversal.php create mode 100644 tests/benchmark/corpus/php/path_traversal/path_traversal_copy.php create mode 100644 tests/benchmark/corpus/php/safe/safe_constant.php create mode 100644 tests/benchmark/corpus/php/safe/safe_cross_function_dotdot.php create mode 100644 tests/benchmark/corpus/php/safe/safe_direct_path_sanitizer.php create mode 100644 tests/benchmark/corpus/php/safe/safe_dominated.php create mode 100644 tests/benchmark/corpus/php/safe/safe_filter_input.php create mode 100644 tests/benchmark/corpus/php/safe/safe_interprocedural.php create mode 100644 tests/benchmark/corpus/php/safe/safe_non_security_sink.php create mode 100644 tests/benchmark/corpus/php/safe/safe_nullable_path_sanitizer.php create mode 100644 tests/benchmark/corpus/php/safe/safe_reassigned.php create mode 100644 tests/benchmark/corpus/php/safe/safe_sanitized.php create mode 100644 tests/benchmark/corpus/php/safe/safe_type_check.php create mode 100644 tests/benchmark/corpus/php/safe/safe_validated.php create mode 100644 tests/benchmark/corpus/php/sqli/sqli_concat.php create mode 100644 tests/benchmark/corpus/php/sqli/sqli_pdo_raw.php create mode 100644 tests/benchmark/corpus/php/sqli/sqli_sprintf.php create mode 100644 tests/benchmark/corpus/php/ssrf/safe_ssrf_hardcoded.php create mode 100644 tests/benchmark/corpus/php/ssrf/ssrf_curl.php create mode 100644 tests/benchmark/corpus/php/xss/xss_reflected.php create mode 100644 tests/benchmark/corpus/python/auth/vuln_no_auth_decorator.py create mode 100644 tests/benchmark/corpus/python/cmdi/cmdi_direct.py create mode 100644 tests/benchmark/corpus/python/cmdi/cmdi_indirect.py create mode 100644 tests/benchmark/corpus/python/cmdi/cmdi_popen_shell.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_indirect_sink/app.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_indirect_sink/helper.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_propagation/app.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_propagation/wrapper.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_sanitizer/app.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_sanitizer/sanitizer.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_source/handler.py create mode 100644 tests/benchmark/corpus/python/cmdi/cross_source/reader.py create mode 100644 tests/benchmark/corpus/python/code_injection/code_injection.py create mode 100644 tests/benchmark/corpus/python/code_injection/code_injection_exec.py create mode 100644 tests/benchmark/corpus/python/deser/deser_pickle.py create mode 100644 tests/benchmark/corpus/python/interprocedural/interproc_sanitizer_wrap.py create mode 100644 tests/benchmark/corpus/python/interprocedural/interproc_taint_propagation.py create mode 100644 tests/benchmark/corpus/python/path_pruning/safe_early_return.py create mode 100644 tests/benchmark/corpus/python/path_traversal/path_traversal.py create mode 100644 tests/benchmark/corpus/python/safe/safe_constant.py create mode 100644 tests/benchmark/corpus/python/safe/safe_cross_function_dotdot.py create mode 100644 tests/benchmark/corpus/python/safe/safe_direct_path_sanitizer.py create mode 100644 tests/benchmark/corpus/python/safe/safe_dominated.py create mode 100644 tests/benchmark/corpus/python/safe/safe_int_cast.py create mode 100644 tests/benchmark/corpus/python/safe/safe_interprocedural.py create mode 100644 tests/benchmark/corpus/python/safe/safe_login_required_decorator.py create mode 100644 tests/benchmark/corpus/python/safe/safe_non_security_sink.py create mode 100644 tests/benchmark/corpus/python/safe/safe_optional_path_sanitizer.py create mode 100644 tests/benchmark/corpus/python/safe/safe_reassigned.py create mode 100644 tests/benchmark/corpus/python/safe/safe_sanitized.py create mode 100644 tests/benchmark/corpus/python/safe/safe_type_check.py create mode 100644 tests/benchmark/corpus/python/safe/safe_validated.py create mode 100644 tests/benchmark/corpus/python/safe/safe_validator_sentinel.py create mode 100644 tests/benchmark/corpus/python/safe/safe_with_context_sanitize.py create mode 100644 tests/benchmark/corpus/python/sqli/sqli_concat.py create mode 100644 tests/benchmark/corpus/python/sqli/sqli_format.py create mode 100644 tests/benchmark/corpus/python/sqli/vuln_validator_sentinel_bypass.py create mode 100644 tests/benchmark/corpus/python/ssrf/safe_ssrf_constant.py create mode 100644 tests/benchmark/corpus/python/ssrf/ssrf_httpx_post.py create mode 100644 tests/benchmark/corpus/python/ssrf/ssrf_requests.py create mode 100644 tests/benchmark/corpus/python/xss/xss_reflected.py create mode 100644 tests/benchmark/corpus/python/xss/xss_template_string.py create mode 100644 tests/benchmark/corpus/ruby/auth/safe_before_action.rb create mode 100644 tests/benchmark/corpus/ruby/cmdi/cmdi_backtick.rb create mode 100644 tests/benchmark/corpus/ruby/cmdi/cmdi_system.rb create mode 100644 tests/benchmark/corpus/ruby/code_injection/code_injection_eval.rb create mode 100644 tests/benchmark/corpus/ruby/deser/deser_marshal.rb create mode 100644 tests/benchmark/corpus/ruby/deser/deser_yaml.rb create mode 100644 tests/benchmark/corpus/ruby/interprocedural/interproc_sanitizer_wrap.rb create mode 100644 tests/benchmark/corpus/ruby/interprocedural/interproc_taint_propagation.rb create mode 100644 tests/benchmark/corpus/ruby/path_traversal/path_traversal_send_file.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_constant.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_cross_function_dotdot.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_direct_path_sanitizer.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_dominated.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_interprocedural.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_nil_path_sanitizer.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_non_security_sink.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_reassigned.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_sanitized.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_strong_params.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_type_check.rb create mode 100644 tests/benchmark/corpus/ruby/safe/safe_validated.rb create mode 100644 tests/benchmark/corpus/ruby/sqli/sqli_execute.rb create mode 100644 tests/benchmark/corpus/ruby/sqli/sqli_find_by_sql.rb create mode 100644 tests/benchmark/corpus/ruby/sqli/sqli_raw_connection.rb create mode 100644 tests/benchmark/corpus/ruby/ssrf/safe_ssrf_hardcoded.rb create mode 100644 tests/benchmark/corpus/ruby/ssrf/ssrf_httparty.rb create mode 100644 tests/benchmark/corpus/ruby/ssrf/ssrf_net_http.rb create mode 100644 tests/benchmark/corpus/ruby/xss/xss_html_safe.rb create mode 100644 tests/benchmark/corpus/ruby/xss/xss_raw.rb create mode 100644 tests/benchmark/corpus/rust/auth/actix_scoped_write_missing.rs create mode 100644 tests/benchmark/corpus/rust/auth/db_connection_type_inferred.rs create mode 100644 tests/benchmark/corpus/rust/auth/hashmap_local_noise.rs create mode 100644 tests/benchmark/corpus/rust/auth/helper_scoped_params.rs create mode 100644 tests/benchmark/corpus/rust/auth/require_resource_role_helper.rs create mode 100644 tests/benchmark/corpus/rust/auth/row_ownership_equality.rs create mode 100644 tests/benchmark/corpus/rust/auth/row_ownership_no_early_exit.rs create mode 100644 tests/benchmark/corpus/rust/auth/self_actor_uid_copy.rs create mode 100644 tests/benchmark/corpus/rust/auth/self_publish_email.rs create mode 100644 tests/benchmark/corpus/rust/auth/self_scoped_user.rs create mode 100644 tests/benchmark/corpus/rust/auth/sql_join_acl.rs create mode 100644 tests/benchmark/corpus/rust/auth/transitive_helper.rs create mode 100644 tests/benchmark/corpus/rust/auth/true_positive_missing_check.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_args.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_command.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_command_output.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_format_macro.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_indirect.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_indirect_multisink.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_match_source.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_static_map_dangerous.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cmdi_string_concat.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cross_propagation/main.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cross_propagation/transform.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cross_sanitizer/main.rs create mode 100644 tests/benchmark/corpus/rust/cmdi/cross_sanitizer/sanitizer.rs create mode 100644 tests/benchmark/corpus/rust/deser/deser_serde_yaml.rs create mode 100644 tests/benchmark/corpus/rust/path_traversal/path_file_create.rs create mode 100644 tests/benchmark/corpus/rust/path_traversal/path_file_open.rs create mode 100644 tests/benchmark/corpus/rust/path_traversal/path_read.rs create mode 100644 tests/benchmark/corpus/rust/path_traversal/path_remove.rs create mode 100644 tests/benchmark/corpus/rust/path_traversal/path_write.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_constant.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_cross_function_dotdot.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_direct_sanitizer.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_dominated.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_hardcoded_url.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_interprocedural.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_match_guard.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_option_sanitizer.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_parsed_port.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_path_contains_dotdot.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_path_is_absolute.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_reassigned.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_sanitized_shell.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_shell_metachar.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_static_map_lookup.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_type_check.rs create mode 100644 tests/benchmark/corpus/rust/safe/safe_validated.rs create mode 100644 tests/benchmark/corpus/rust/sqli/sqli_metachar_gate_wrong_sink.rs create mode 100644 tests/benchmark/corpus/rust/sqli/sqli_rusqlite_format.rs create mode 100644 tests/benchmark/corpus/rust/ssrf/ssrf_client_builder.rs create mode 100644 tests/benchmark/corpus/rust/ssrf/ssrf_indirect.rs create mode 100644 tests/benchmark/corpus/rust/ssrf/ssrf_reqwest.rs create mode 100644 tests/benchmark/corpus/rust/traversal/traversal_no_sanitizer.rs create mode 100644 tests/benchmark/corpus/rust/xss/axum_html/Cargo.toml create mode 100644 tests/benchmark/corpus/rust/xss/axum_html/main.rs create mode 100644 tests/benchmark/corpus/typescript/cmdi/cmdi_async_wrapper.ts create mode 100644 tests/benchmark/corpus/typescript/cmdi/cmdi_exec_template.ts create mode 100644 tests/benchmark/corpus/typescript/code_injection/code_exec_eval.ts create mode 100644 tests/benchmark/corpus/typescript/code_injection/code_exec_new_function.ts create mode 100644 tests/benchmark/corpus/typescript/crypto/weak_hash_md5.ts create mode 100644 tests/benchmark/corpus/typescript/insecure_config/cookie_httponly.ts create mode 100644 tests/benchmark/corpus/typescript/insecure_config/reject_unauthorized.ts create mode 100644 tests/benchmark/corpus/typescript/interprocedural/interproc_class_method.ts create mode 100644 tests/benchmark/corpus/typescript/open_redirect/location_href.ts create mode 100644 tests/benchmark/corpus/typescript/path_traversal/path_traversal_sendfile.ts create mode 100644 tests/benchmark/corpus/typescript/prototype/proto_assignment.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_constant_query.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_cross_function_dotdot.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_direct_path_sanitizer.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_dompurify.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_encode_uri.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_hardcoded_url.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_iife_closure_sanitizer.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_interproc_sanitizer.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_jsx_text.tsx create mode 100644 tests/benchmark/corpus/typescript/safe/safe_null_path_sanitizer.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_number_coerce.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_parameterized.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_typeof_guard.ts create mode 100644 tests/benchmark/corpus/typescript/safe/safe_validator_escape.ts create mode 100644 tests/benchmark/corpus/typescript/secrets/fallback_secret.ts create mode 100644 tests/benchmark/corpus/typescript/sqli/sqli_prisma_raw.ts create mode 100644 tests/benchmark/corpus/typescript/sqli/sqli_template_literal.ts create mode 100644 tests/benchmark/corpus/typescript/ssrf/ssrf_axios_user_url.ts create mode 100644 tests/benchmark/corpus/typescript/ssrf/ssrf_encoded_host.ts create mode 100644 tests/benchmark/corpus/typescript/ssrf/ssrf_fastify_fetch.ts create mode 100644 tests/benchmark/corpus/typescript/type_system/decorator_passthrough.ts create mode 100644 tests/benchmark/corpus/typescript/type_system/discriminated_union_narrow.ts create mode 100644 tests/benchmark/corpus/typescript/type_system/interface_dispatch.ts create mode 100644 tests/benchmark/corpus/typescript/xss/vuln_iife_closure_no_sanitizer.ts create mode 100644 tests/benchmark/corpus/typescript/xss/xss_as_any_cast.ts create mode 100644 tests/benchmark/corpus/typescript/xss/xss_dangerously_set_inner_html.tsx create mode 100644 tests/benchmark/corpus/typescript/xss/xss_generic_identity.ts create mode 100644 tests/benchmark/corpus/typescript/xss/xss_optional_chain_source.ts create mode 100644 tests/benchmark/corpus/typescript/xss/xss_typed_innerhtml.ts create mode 100644 tests/benchmark/cve_corpus/c/CVE-2016-3714/patched.c create mode 100644 tests/benchmark/cve_corpus/c/CVE-2016-3714/vulnerable.c create mode 100644 tests/benchmark/cve_corpus/c/CVE-2019-18634/patched.c create mode 100644 tests/benchmark/cve_corpus/c/CVE-2019-18634/vulnerable.c create mode 100644 tests/benchmark/cve_corpus/cpp/CVE-2019-13132/patched.cpp create mode 100644 tests/benchmark/cve_corpus/cpp/CVE-2019-13132/vulnerable.cpp create mode 100644 tests/benchmark/cve_corpus/cpp/CVE-2022-1941/patched.cpp create mode 100644 tests/benchmark/cve_corpus/cpp/CVE-2022-1941/vulnerable.cpp create mode 100644 tests/benchmark/cve_corpus/go/CVE-2022-30323/patched.go create mode 100644 tests/benchmark/cve_corpus/go/CVE-2022-30323/vulnerable.go create mode 100644 tests/benchmark/cve_corpus/java/CVE-2015-7501/patched.java create mode 100644 tests/benchmark/cve_corpus/java/CVE-2015-7501/vulnerable.java create mode 100644 tests/benchmark/cve_corpus/java/CVE-2017-12629/patched.java create mode 100644 tests/benchmark/cve_corpus/java/CVE-2017-12629/vulnerable.java create mode 100644 tests/benchmark/cve_corpus/javascript/CVE-2019-14939/patched.js create mode 100644 tests/benchmark/cve_corpus/javascript/CVE-2019-14939/vulnerable.js create mode 100644 tests/benchmark/cve_corpus/php/CVE-2017-9841/patched.php create mode 100644 tests/benchmark/cve_corpus/php/CVE-2017-9841/vulnerable.php create mode 100644 tests/benchmark/cve_corpus/php/CVE-2018-15133/patched.php create mode 100644 tests/benchmark/cve_corpus/php/CVE-2018-15133/vulnerable.php create mode 100644 tests/benchmark/cve_corpus/python/CVE-2017-18342/patched.py create mode 100644 tests/benchmark/cve_corpus/python/CVE-2017-18342/vulnerable.py create mode 100644 tests/benchmark/cve_corpus/python/CVE-2023-48022/patched.py create mode 100644 tests/benchmark/cve_corpus/python/CVE-2023-48022/vulnerable.py create mode 100644 tests/benchmark/cve_corpus/ruby/CVE-2013-0156/patched.rb create mode 100644 tests/benchmark/cve_corpus/ruby/CVE-2013-0156/vulnerable.rb create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2018-20997/patched.rs create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2018-20997/vulnerable.rs create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2022-36113/patched.rs create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2022-36113/vulnerable.rs create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2024-24576/patched.rs create mode 100644 tests/benchmark/cve_corpus/rust/CVE-2024-24576/vulnerable.rs create mode 100644 tests/benchmark/cve_corpus/typescript/CVE-2023-26159/patched.ts create mode 100644 tests/benchmark/cve_corpus/typescript/CVE-2023-26159/vulnerable.ts create mode 100644 tests/benchmark/ground_truth.json create mode 100644 tests/benchmark/results/latest.json create mode 100644 tests/benchmark_test.rs create mode 100644 tests/cli_validation_tests.rs create mode 100644 tests/concurrent_scan_tests.rs create mode 100644 tests/cross_file_abstract_tests.rs create mode 100644 tests/cross_file_alias_tests.rs create mode 100644 tests/cross_file_body_loading_tests.rs create mode 100644 tests/cross_file_context_off_tests.rs create mode 100644 tests/cross_file_context_tests.rs create mode 100644 tests/cross_file_phi_tests.rs create mode 100644 tests/db_corruption_tests.rs create mode 100644 tests/dedup_alternative_paths_tests.rs create mode 100644 tests/determinism_threads_tests.rs create mode 100644 tests/engine_notes_rank_tests.rs create mode 100644 tests/engine_notes_tests.rs create mode 100644 tests/fixtures/async_promise_chain_js/README.md create mode 100644 tests/fixtures/async_promise_chain_js/chain.js create mode 100644 tests/fixtures/async_promise_chain_js/expectations.json create mode 100644 tests/fixtures/async_python/README.md create mode 100644 tests/fixtures/async_python/chain.py create mode 100644 tests/fixtures/async_python/expectations.json create mode 100644 tests/fixtures/async_rust/README.md create mode 100644 tests/fixtures/async_rust/expectations.json create mode 100644 tests/fixtures/async_rust/main.rs create mode 100644 tests/fixtures/auth_analysis/actix_admin_route_clean.rs create mode 100644 tests/fixtures/auth_analysis/actix_scoped_write_missing.rs create mode 100644 tests/fixtures/auth_analysis/admin_route_clean.js create mode 100644 tests/fixtures/auth_analysis/admin_route_missing.js create mode 100644 tests/fixtures/auth_analysis/axum_admin_route_clean.rs create mode 100644 tests/fixtures/auth_analysis/axum_admin_route_missing.rs create mode 100644 tests/fixtures/auth_analysis/axum_partial_batch.rs create mode 100644 tests/fixtures/auth_analysis/cross_file_helper_authz.rs create mode 100644 tests/fixtures/auth_analysis/cross_file_helper_handler.rs create mode 100644 tests/fixtures/auth_analysis/dashboard_self_listing.js create mode 100644 tests/fixtures/auth_analysis/db_connection_type_inferred.rs create mode 100644 tests/fixtures/auth_analysis/debug_session_missing.js create mode 100644 tests/fixtures/auth_analysis/delegated_service_read.js create mode 100644 tests/fixtures/auth_analysis/django_cbv_admin_clean.py create mode 100644 tests/fixtures/auth_analysis/django_cbv_scoped_write_missing.py create mode 100644 tests/fixtures/auth_analysis/django_partial_batch.py create mode 100644 tests/fixtures/auth_analysis/django_scoped_read_missing.py create mode 100644 tests/fixtures/auth_analysis/django_stale_session_mutation.py create mode 100644 tests/fixtures/auth_analysis/django_token_missing_expiry.py create mode 100644 tests/fixtures/auth_analysis/django_token_missing_recipient.py create mode 100644 tests/fixtures/auth_analysis/django_view_admin_clean.py create mode 100644 tests/fixtures/auth_analysis/django_view_admin_missing.py create mode 100644 tests/fixtures/auth_analysis/echo_admin_route_clean.go create mode 100644 tests/fixtures/auth_analysis/echo_partial_batch.go create mode 100644 tests/fixtures/auth_analysis/echo_token_missing_recipient.go create mode 100644 tests/fixtures/auth_analysis/fastify_admin_route_clean.js create mode 100644 tests/fixtures/auth_analysis/fastify_admin_route_missing.js create mode 100644 tests/fixtures/auth_analysis/fastify_route_registration_noise.js create mode 100644 tests/fixtures/auth_analysis/fastify_scoped_write_clean.js create mode 100644 tests/fixtures/auth_analysis/fastify_scoped_write_missing.js create mode 100644 tests/fixtures/auth_analysis/flask_admin_route_clean.py create mode 100644 tests/fixtures/auth_analysis/flask_admin_route_missing.py create mode 100644 tests/fixtures/auth_analysis/flask_scoped_write_missing.py create mode 100644 tests/fixtures/auth_analysis/flask_token_clean.py create mode 100644 tests/fixtures/auth_analysis/gin_admin_route_missing.go create mode 100644 tests/fixtures/auth_analysis/gin_scoped_write_clean.go create mode 100644 tests/fixtures/auth_analysis/gin_stale_session_mutation.go create mode 100644 tests/fixtures/auth_analysis/hashmap_local_noise.rs create mode 100644 tests/fixtures/auth_analysis/helper_no_auth_lift.rs create mode 100644 tests/fixtures/auth_analysis/helper_scoped_params.rs create mode 100644 tests/fixtures/auth_analysis/koa_admin_route_clean.js create mode 100644 tests/fixtures/auth_analysis/koa_admin_route_missing.js create mode 100644 tests/fixtures/auth_analysis/koa_route_registration_noise.js create mode 100644 tests/fixtures/auth_analysis/koa_scoped_read_clean.js create mode 100644 tests/fixtures/auth_analysis/koa_scoped_read_missing.js create mode 100644 tests/fixtures/auth_analysis/membership_helper.js create mode 100644 tests/fixtures/auth_analysis/partial_batch.js create mode 100644 tests/fixtures/auth_analysis/partial_batch_full_check_clean.js create mode 100644 tests/fixtures/auth_analysis/rails_admin_route_clean.rb create mode 100644 tests/fixtures/auth_analysis/rails_admin_route_missing.rb create mode 100644 tests/fixtures/auth_analysis/rails_clean_before_action.rb create mode 100644 tests/fixtures/auth_analysis/rails_partial_batch.rb create mode 100644 tests/fixtures/auth_analysis/rails_scoped_write_missing.rb create mode 100644 tests/fixtures/auth_analysis/rails_stale_session_mutation.rb create mode 100644 tests/fixtures/auth_analysis/rails_token_clean.rb create mode 100644 tests/fixtures/auth_analysis/rails_token_missing_expiry.rb create mode 100644 tests/fixtures/auth_analysis/related_membership_check.js create mode 100644 tests/fixtures/auth_analysis/rocket_admin_route_clean.rs create mode 100644 tests/fixtures/auth_analysis/rocket_stale_session_mutation.rs create mode 100644 tests/fixtures/auth_analysis/rocket_token_missing_recipient.rs create mode 100644 tests/fixtures/auth_analysis/row_ownership_equality.rs create mode 100644 tests/fixtures/auth_analysis/row_ownership_no_early_exit.rs create mode 100644 tests/fixtures/auth_analysis/scoped_read_missing.js create mode 100644 tests/fixtures/auth_analysis/scoped_write_missing.js create mode 100644 tests/fixtures/auth_analysis/self_profile_read.js create mode 100644 tests/fixtures/auth_analysis/self_profile_update.js create mode 100644 tests/fixtures/auth_analysis/self_scoped_user.rs create mode 100644 tests/fixtures/auth_analysis/service_missing_context.js create mode 100644 tests/fixtures/auth_analysis/service_with_check.js create mode 100644 tests/fixtures/auth_analysis/sinatra_admin_route_clean.rb create mode 100644 tests/fixtures/auth_analysis/sinatra_admin_route_missing.rb create mode 100644 tests/fixtures/auth_analysis/sinatra_scoped_read_clean.rb create mode 100644 tests/fixtures/auth_analysis/sinatra_scoped_read_missing.rb create mode 100644 tests/fixtures/auth_analysis/sinatra_token_missing_recipient.rb create mode 100644 tests/fixtures/auth_analysis/spring_admin_route_clean.java create mode 100644 tests/fixtures/auth_analysis/spring_admin_route_missing.java create mode 100644 tests/fixtures/auth_analysis/spring_scoped_read_missing.java create mode 100644 tests/fixtures/auth_analysis/sql_join_acl.rs create mode 100644 tests/fixtures/auth_analysis/sql_no_acl_join_flags.rs create mode 100644 tests/fixtures/auth_analysis/stale_session_mutation.js create mode 100644 tests/fixtures/auth_analysis/support_impersonation_missing.js create mode 100644 tests/fixtures/auth_analysis/token_clean.js create mode 100644 tests/fixtures/auth_analysis/token_missing_expiry.js create mode 100644 tests/fixtures/auth_analysis/token_missing_recipient.js create mode 100644 tests/fixtures/auth_analysis/token_role_override.js create mode 100644 tests/fixtures/auth_analysis/token_workspace_override.js create mode 100644 tests/fixtures/auth_analysis/transitive_helper.rs create mode 100644 tests/fixtures/auth_analysis/true_positive_missing_check.rs create mode 100644 tests/fixtures/auth_analysis/typed_admin_route_missing.ts create mode 100644 tests/fixtures/auth_analysis/workspace_job_missing.js create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/AdminProjectsController.java create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/Cargo.toml create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/Gemfile create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/README.md create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/admin_app.rb create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/admin_routes.js create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/axum_admin.rs create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/flask_admin.py create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/gin_admin.go create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/go.mod create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/package.json create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/pom.xml create mode 100644 tests/fixtures/auth_analysis_admin_multilang_integration/requirements.txt create mode 100644 tests/fixtures/auth_analysis_frameworks_integration/README.md create mode 100644 tests/fixtures/auth_analysis_frameworks_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_frameworks_integration/package.json create mode 100644 tests/fixtures/auth_analysis_frameworks_integration/routes.js create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/ProjectsController.java create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/README.md create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/echo_routes.go create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/gin_routes.go create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/go.mod create mode 100644 tests/fixtures/auth_analysis_go_java_frameworks_integration/pom.xml create mode 100644 tests/fixtures/auth_analysis_integration/README.md create mode 100644 tests/fixtures/auth_analysis_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_integration/routes.js create mode 100644 tests/fixtures/auth_analysis_noise_frameworks/expectations.json create mode 100644 tests/fixtures/auth_analysis_noise_frameworks/package.json create mode 100644 tests/fixtures/auth_analysis_noise_frameworks/routes.js create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/Cargo.toml create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/Gemfile create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/ProjectsController.java create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/README.md create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/actix_projects.rs create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/django_views.py create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/gin_projects.go create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/go.mod create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/package.json create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/pom.xml create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/project_routes.js create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/projects_controller.rb create mode 100644 tests/fixtures/auth_analysis_ownership_multilang_integration/requirements.txt create mode 100644 tests/fixtures/auth_analysis_python_frameworks_integration/README.md create mode 100644 tests/fixtures/auth_analysis_python_frameworks_integration/django_views.py create mode 100644 tests/fixtures/auth_analysis_python_frameworks_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_python_frameworks_integration/flask_app.py create mode 100644 tests/fixtures/auth_analysis_python_frameworks_integration/requirements.txt create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/Gemfile create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/README.md create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/rails_admin_controller.rb create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/rails_invitations_controller.rb create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/rails_projects_controller.rb create mode 100644 tests/fixtures/auth_analysis_ruby_frameworks_integration/sinatra_app.rb create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/Cargo.toml create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/README.md create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/actix_routes.rs create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/axum_routes.rs create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/expectations.json create mode 100644 tests/fixtures/auth_analysis_rust_frameworks_integration/rocket_routes.rs create mode 100644 tests/fixtures/c_utils/README.md create mode 100644 tests/fixtures/closure_capture_js/README.md create mode 100644 tests/fixtures/closure_capture_js/expectations.json create mode 100644 tests/fixtures/closure_capture_js/handler.js create mode 100644 tests/fixtures/closure_capture_py/README.md create mode 100644 tests/fixtures/closure_capture_py/expectations.json create mode 100644 tests/fixtures/closure_capture_py/handler.py create mode 100644 tests/fixtures/closure_capture_ts/README.md create mode 100644 tests/fixtures/closure_capture_ts/expectations.json create mode 100644 tests/fixtures/closure_capture_ts/handler.ts create mode 100644 tests/fixtures/container_taint_js/README.md create mode 100644 tests/fixtures/container_taint_js/expectations.json create mode 100644 tests/fixtures/container_taint_js/main.js create mode 100644 tests/fixtures/container_taint_py/README.md create mode 100644 tests/fixtures/container_taint_py/expectations.json create mode 100644 tests/fixtures/container_taint_py/main.py create mode 100644 tests/fixtures/cross_file_abstract_bounded_index/expectations.json create mode 100644 tests/fixtures/cross_file_abstract_bounded_index/helper.py create mode 100644 tests/fixtures/cross_file_abstract_bounded_index/main.py create mode 100644 tests/fixtures/cross_file_abstract_port_range/expectations.json create mode 100644 tests/fixtures/cross_file_abstract_port_range/helper.py create mode 100644 tests/fixtures/cross_file_abstract_port_range/main.py create mode 100644 tests/fixtures/cross_file_abstract_url_prefix_lock/expectations.json create mode 100644 tests/fixtures/cross_file_abstract_url_prefix_lock/helper.js create mode 100644 tests/fixtures/cross_file_abstract_url_prefix_lock/main.js create mode 100644 tests/fixtures/cross_file_alias_bounded_graph/README.md create mode 100644 tests/fixtures/cross_file_alias_bounded_graph/app.py create mode 100644 tests/fixtures/cross_file_alias_bounded_graph/expectations.json create mode 100644 tests/fixtures/cross_file_alias_bounded_graph/helper.py create mode 100644 tests/fixtures/cross_file_alias_mutating_helper/README.md create mode 100644 tests/fixtures/cross_file_alias_mutating_helper/app.py create mode 100644 tests/fixtures/cross_file_alias_mutating_helper/expectations.json create mode 100644 tests/fixtures/cross_file_alias_mutating_helper/helper.py create mode 100644 tests/fixtures/cross_file_alias_returned_alias/README.md create mode 100644 tests/fixtures/cross_file_alias_returned_alias/app.js create mode 100644 tests/fixtures/cross_file_alias_returned_alias/expectations.json create mode 100644 tests/fixtures/cross_file_alias_returned_alias/helper.js create mode 100644 tests/fixtures/cross_file_callback_alias/README.md create mode 100644 tests/fixtures/cross_file_callback_alias/app.js create mode 100644 tests/fixtures/cross_file_callback_alias/expectations.json create mode 100644 tests/fixtures/cross_file_callback_alias/helpers.js create mode 100644 tests/fixtures/cross_file_container_factory/README.md create mode 100644 tests/fixtures/cross_file_container_factory/app.js create mode 100644 tests/fixtures/cross_file_container_factory/expectations.json create mode 100644 tests/fixtures/cross_file_container_factory/factory.js create mode 100644 tests/fixtures/cross_file_context_callback/README.md create mode 100644 tests/fixtures/cross_file_context_callback/apply.js create mode 100644 tests/fixtures/cross_file_context_callback/expectations.json create mode 100644 tests/fixtures/cross_file_context_callback/main.js create mode 100644 tests/fixtures/cross_file_context_deep_chain/README.md create mode 100644 tests/fixtures/cross_file_context_deep_chain/expectations.json create mode 100644 tests/fixtures/cross_file_context_deep_chain/main.py create mode 100644 tests/fixtures/cross_file_context_deep_chain/middle.py create mode 100644 tests/fixtures/cross_file_context_deep_chain/sinks.py create mode 100644 tests/fixtures/cross_file_context_sanitizer/app.js create mode 100644 tests/fixtures/cross_file_context_sanitizer/expectations.json create mode 100644 tests/fixtures/cross_file_context_sanitizer/security.js create mode 100644 tests/fixtures/cross_file_context_two_call_sites/README.md create mode 100644 tests/fixtures/cross_file_context_two_call_sites/expectations.json create mode 100644 tests/fixtures/cross_file_context_two_call_sites/helper.py create mode 100644 tests/fixtures/cross_file_context_two_call_sites/main.py create mode 100644 tests/fixtures/cross_file_go_handler_exec/README.md create mode 100644 tests/fixtures/cross_file_go_handler_exec/executor.go create mode 100644 tests/fixtures/cross_file_go_handler_exec/expectations.json create mode 100644 tests/fixtures/cross_file_go_handler_exec/handler.go create mode 100644 tests/fixtures/cross_file_go_int_validated/expectations.json create mode 100644 tests/fixtures/cross_file_go_int_validated/handler.go create mode 100644 tests/fixtures/cross_file_go_int_validated/validation.go create mode 100644 tests/fixtures/cross_file_info_leak/README.md create mode 100644 tests/fixtures/cross_file_info_leak/expectations.json create mode 100644 tests/fixtures/cross_file_info_leak/route.js create mode 100644 tests/fixtures/cross_file_info_leak/service.js create mode 100644 tests/fixtures/cross_file_java_sqli/README.md create mode 100644 tests/fixtures/cross_file_java_sqli/UserController.java create mode 100644 tests/fixtures/cross_file_java_sqli/UserRepository.java create mode 100644 tests/fixtures/cross_file_java_sqli/expectations.json create mode 100644 tests/fixtures/cross_file_js_aliased_import/README.md create mode 100644 tests/fixtures/cross_file_js_aliased_import/app.js create mode 100644 tests/fixtures/cross_file_js_aliased_import/expectations.json create mode 100644 tests/fixtures/cross_file_js_aliased_import/source.js create mode 100644 tests/fixtures/cross_file_js_html_sanitized/app.js create mode 100644 tests/fixtures/cross_file_js_html_sanitized/expectations.json create mode 100644 tests/fixtures/cross_file_js_html_sanitized/security.js create mode 100644 tests/fixtures/cross_file_js_redirect/README.md create mode 100644 tests/fixtures/cross_file_js_redirect/expectations.json create mode 100644 tests/fixtures/cross_file_js_redirect/helper.js create mode 100644 tests/fixtures/cross_file_js_redirect/routes.js create mode 100644 tests/fixtures/cross_file_js_sqli/README.md create mode 100644 tests/fixtures/cross_file_js_sqli/expectations.json create mode 100644 tests/fixtures/cross_file_js_sqli/route.js create mode 100644 tests/fixtures/cross_file_js_sqli/search.js create mode 100644 tests/fixtures/cross_file_mixed_cap_sink/README.md create mode 100644 tests/fixtures/cross_file_mixed_cap_sink/caller.js create mode 100644 tests/fixtures/cross_file_mixed_cap_sink/dispatch.js create mode 100644 tests/fixtures/cross_file_mixed_cap_sink/expectations.json create mode 100644 tests/fixtures/cross_file_near_miss_field_isolation/app.js create mode 100644 tests/fixtures/cross_file_near_miss_field_isolation/expectations.json create mode 100644 tests/fixtures/cross_file_near_miss_field_isolation/session.js create mode 100644 tests/fixtures/cross_file_near_miss_wrong_sanitizer/README.md create mode 100644 tests/fixtures/cross_file_near_miss_wrong_sanitizer/app.py create mode 100644 tests/fixtures/cross_file_near_miss_wrong_sanitizer/expectations.json create mode 100644 tests/fixtures/cross_file_near_miss_wrong_sanitizer/html_guard.py create mode 100644 tests/fixtures/cross_file_param_sink_precision/README.md create mode 100644 tests/fixtures/cross_file_param_sink_precision/app.py create mode 100644 tests/fixtures/cross_file_param_sink_precision/expectations.json create mode 100644 tests/fixtures/cross_file_param_sink_precision/helpers.py create mode 100644 tests/fixtures/cross_file_phi_both_branches_safe/expectations.json create mode 100644 tests/fixtures/cross_file_phi_both_branches_safe/handler.go create mode 100644 tests/fixtures/cross_file_phi_both_branches_safe/validator.go create mode 100644 tests/fixtures/cross_file_phi_partial_sanitiser/.z3-trace create mode 100644 tests/fixtures/cross_file_phi_partial_sanitiser/README.md create mode 100644 tests/fixtures/cross_file_phi_partial_sanitiser/expectations.json create mode 100644 tests/fixtures/cross_file_phi_partial_sanitiser/helper.js create mode 100644 tests/fixtures/cross_file_phi_partial_sanitiser/main.js create mode 100644 tests/fixtures/cross_file_phi_validated_branch/README.md create mode 100644 tests/fixtures/cross_file_phi_validated_branch/expectations.json create mode 100644 tests/fixtures/cross_file_phi_validated_branch/helper.py create mode 100644 tests/fixtures/cross_file_phi_validated_branch/main.py create mode 100644 tests/fixtures/cross_file_py_const_passthrough/constants.py create mode 100644 tests/fixtures/cross_file_py_const_passthrough/expectations.json create mode 100644 tests/fixtures/cross_file_py_const_passthrough/runner.py create mode 100644 tests/fixtures/cross_file_py_nested_chain/README.md create mode 100644 tests/fixtures/cross_file_py_nested_chain/executor.py create mode 100644 tests/fixtures/cross_file_py_nested_chain/expectations.json create mode 100644 tests/fixtures/cross_file_py_nested_chain/input_reader.py create mode 100644 tests/fixtures/cross_file_py_nested_chain/transform.py create mode 100644 tests/fixtures/cross_file_py_object_field/README.md create mode 100644 tests/fixtures/cross_file_py_object_field/expectations.json create mode 100644 tests/fixtures/cross_file_py_object_field/handler.py create mode 100644 tests/fixtures/cross_file_py_object_field/models.py create mode 100644 tests/fixtures/cross_file_py_shlex_sanitizer/expectations.json create mode 100644 tests/fixtures/cross_file_py_shlex_sanitizer/handler.py create mode 100644 tests/fixtures/cross_file_py_shlex_sanitizer/shell_utils.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/README.md create mode 100644 tests/fixtures/cross_file_scc_16cycle/expectations.json create mode 100644 tests/fixtures/cross_file_scc_16cycle/server.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_a.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_b.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_c.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_d.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_e.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_f.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_g.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_h.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_i.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_j.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_k.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_l.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_m.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_n.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_o.py create mode 100644 tests/fixtures/cross_file_scc_16cycle/step_p.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/README.md create mode 100644 tests/fixtures/cross_file_scc_8cycle/expectations.json create mode 100644 tests/fixtures/cross_file_scc_8cycle/server.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_a.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_b.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_c.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_d.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_e.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_f.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_g.py create mode 100644 tests/fixtures/cross_file_scc_8cycle/step_h.py create mode 100644 tests/fixtures/cross_file_scc_convergence/README.md create mode 100644 tests/fixtures/cross_file_scc_convergence/executor.py create mode 100644 tests/fixtures/cross_file_scc_convergence/expectations.json create mode 100644 tests/fixtures/cross_file_scc_convergence/source.py create mode 100644 tests/fixtures/cross_file_scc_convergence/transform.py create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/README.md create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/expectations.json create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/server.py create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/step_a.py create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/step_b.py create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/step_c.py create mode 100644 tests/fixtures/cross_file_scc_deep_cycle/step_d.py create mode 100644 tests/fixtures/cross_file_scc_mutual_recursion/README.md create mode 100644 tests/fixtures/cross_file_scc_mutual_recursion/expectations.json create mode 100644 tests/fixtures/cross_file_scc_mutual_recursion/module_a.py create mode 100644 tests/fixtures/cross_file_scc_mutual_recursion/module_b.py create mode 100644 tests/fixtures/cross_file_scc_mutual_recursion/server.py create mode 100644 tests/fixtures/cross_file_scc_recursive_with_sanitiser/driver.py create mode 100644 tests/fixtures/cross_file_scc_recursive_with_sanitiser/expectations.json create mode 100644 tests/fixtures/cross_file_scc_recursive_with_sanitiser/stage_a.py create mode 100644 tests/fixtures/cross_file_scc_recursive_with_sanitiser/stage_b.py create mode 100644 tests/fixtures/cross_file_scc_ssa/caller.py create mode 100644 tests/fixtures/cross_file_scc_ssa/expectations.json create mode 100644 tests/fixtures/cross_file_scc_ssa/mutual_a.py create mode 100644 tests/fixtures/cross_file_scc_ssa/mutual_b.py create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/README.md create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/entry.py create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/expectations.json create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/node_a.py create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/node_b.py create mode 100644 tests/fixtures/cross_file_scc_three_way_cycle/node_c.py create mode 100644 tests/fixtures/cross_file_ssa_propagation/README.md create mode 100644 tests/fixtures/cross_file_ssa_propagation/app.py create mode 100644 tests/fixtures/cross_file_ssa_propagation/expectations.json create mode 100644 tests/fixtures/cross_file_ssa_propagation/wrapper.py create mode 100644 tests/fixtures/cross_file_ssa_sanitizer/README.md create mode 100644 tests/fixtures/cross_file_ssa_sanitizer/app.py create mode 100644 tests/fixtures/cross_file_ssa_sanitizer/expectations.json create mode 100644 tests/fixtures/cross_file_ssa_sanitizer/sanitizer.py create mode 100644 tests/fixtures/cross_file_ssa_source/README.md create mode 100644 tests/fixtures/cross_file_ssa_source/expectations.json create mode 100644 tests/fixtures/cross_file_ssa_source/handler.py create mode 100644 tests/fixtures/cross_file_ssa_source/reader.py create mode 100644 tests/fixtures/cross_file_symex_body/README.md create mode 100644 tests/fixtures/cross_file_symex_body/app.py create mode 100644 tests/fixtures/cross_file_symex_body/expectations.json create mode 100644 tests/fixtures/cross_file_symex_body/helper.py create mode 100644 tests/fixtures/cross_file_symex_js/README.md create mode 100644 tests/fixtures/cross_file_symex_js/app.js create mode 100644 tests/fixtures/cross_file_symex_js/expectations.json create mode 100644 tests/fixtures/cross_file_symex_js/utils.js create mode 100644 tests/fixtures/cross_file_taint/README.md create mode 100644 tests/fixtures/cross_file_taint/expectations.json create mode 100644 tests/fixtures/cross_file_taint/sink.py create mode 100644 tests/fixtures/cross_file_taint/source.py create mode 100644 tests/fixtures/cross_file_ts_ssrf/README.md create mode 100644 tests/fixtures/cross_file_ts_ssrf/expectations.json create mode 100644 tests/fixtures/cross_file_ts_ssrf/httpClient.ts create mode 100644 tests/fixtures/cross_file_ts_ssrf/router.ts create mode 100644 tests/fixtures/debug_endpoint/README.md create mode 100644 tests/fixtures/debug_endpoint/app.js create mode 100644 tests/fixtures/debug_endpoint/expectations.json create mode 100644 tests/fixtures/dedup_alternative_paths/README.md create mode 100644 tests/fixtures/dedup_alternative_paths/app.js create mode 100644 tests/fixtures/dedup_alternative_paths/expectations.json create mode 100644 tests/fixtures/dedup_same_line_different_sinks/README.md create mode 100644 tests/fixtures/dedup_same_line_different_sinks/app.py create mode 100644 tests/fixtures/dedup_same_line_different_sinks/expectations.json create mode 100644 tests/fixtures/demand_driven_catch_new_fn/README.md create mode 100644 tests/fixtures/demand_driven_catch_new_fn/app.py create mode 100644 tests/fixtures/demand_driven_catch_new_fn/expectations.json create mode 100644 tests/fixtures/demand_driven_no_source/app.py create mode 100644 tests/fixtures/demand_driven_no_source/expectations.json create mode 100644 tests/fixtures/demand_driven_prove_infeasible/README.md create mode 100644 tests/fixtures/demand_driven_prove_infeasible/app.py create mode 100644 tests/fixtures/demand_driven_prove_infeasible/expectations.json create mode 100644 tests/fixtures/demand_driven_reach_source/README.md create mode 100644 tests/fixtures/demand_driven_reach_source/app.py create mode 100644 tests/fixtures/demand_driven_reach_source/expectations.json create mode 100644 tests/fixtures/dynamic_dispatch_ssrf/README.md create mode 100644 tests/fixtures/dynamic_dispatch_ssrf/expectations.json create mode 100644 tests/fixtures/dynamic_dispatch_ssrf/previewService.js create mode 100644 tests/fixtures/dynamic_dispatch_ssrf/routes.js create mode 100644 tests/fixtures/ejs_xss/README.md create mode 100644 tests/fixtures/ejs_xss/expectations.json create mode 100644 tests/fixtures/ejs_xss/safe.ejs create mode 100644 tests/fixtures/ejs_xss/search.ejs create mode 100644 tests/fixtures/error_throw_terminates/app.js create mode 100644 tests/fixtures/error_throw_terminates/expectations.json create mode 100644 tests/fixtures/exec_async_wrapper/README.md create mode 100644 tests/fixtures/exec_async_wrapper/app.js create mode 100644 tests/fixtures/exec_async_wrapper/expectations.json create mode 100644 tests/fixtures/express_app/README.md create mode 100644 tests/fixtures/fastify_app/README.md create mode 100644 tests/fixtures/fastify_app/expectations.json create mode 100644 tests/fixtures/fastify_app/package.json create mode 100644 tests/fixtures/fastify_app/routes.js create mode 100644 tests/fixtures/flask_app/README.md create mode 100644 tests/fixtures/fp_guards/call_site_polymorphic_py/app.py create mode 100644 tests/fixtures/fp_guards/call_site_polymorphic_py/expectations.json create mode 100644 tests/fixtures/fp_guards/call_site_sanitized_caller_py/app.py create mode 100644 tests/fixtures/fp_guards/call_site_sanitized_caller_py/expectations.json create mode 100644 tests/fixtures/fp_guards/call_site_specialization_js/app.js create mode 100644 tests/fixtures/fp_guards/call_site_specialization_js/expectations.json create mode 100644 tests/fixtures/fp_guards/call_site_specialization_py/app.py create mode 100644 tests/fixtures/fp_guards/call_site_specialization_py/expectations.json create mode 100644 tests/fixtures/fp_guards/fields_class_attr_py/app.py create mode 100644 tests/fixtures/fp_guards/fields_class_attr_py/expectations.json create mode 100644 tests/fixtures/fp_guards/fields_dict_key_py/app.py create mode 100644 tests/fixtures/fp_guards/fields_dict_key_py/expectations.json create mode 100644 tests/fixtures/fp_guards/fields_nested_object_js/app.js create mode 100644 tests/fixtures/fp_guards/fields_nested_object_js/expectations.json create mode 100644 tests/fixtures/fp_guards/fields_object_isolation_js/app.js create mode 100644 tests/fixtures/fp_guards/fields_object_isolation_js/expectations.json create mode 100644 tests/fixtures/fp_guards/framework_express_res_json/app.js create mode 100644 tests/fixtures/fp_guards/framework_express_res_json/expectations.json create mode 100644 tests/fixtures/fp_guards/framework_flask_escape/app.py create mode 100644 tests/fixtures/fp_guards/framework_flask_escape/expectations.json create mode 100644 tests/fixtures/fp_guards/framework_prepared_stmt_java/App.java create mode 100644 tests/fixtures/fp_guards/framework_prepared_stmt_java/expectations.json create mode 100644 tests/fixtures/fp_guards/framework_rails_sanitize/app.rb create mode 100644 tests/fixtures/fp_guards/framework_rails_sanitize/expectations.json create mode 100644 tests/fixtures/fp_guards/sanitizer_html_escape_js/app.js create mode 100644 tests/fixtures/fp_guards/sanitizer_html_escape_js/expectations.json create mode 100644 tests/fixtures/fp_guards/sanitizer_multi_step_py/app.py create mode 100644 tests/fixtures/fp_guards/sanitizer_multi_step_py/expectations.json create mode 100644 tests/fixtures/fp_guards/sanitizer_shlex_quote_py/app.py create mode 100644 tests/fixtures/fp_guards/sanitizer_shlex_quote_py/expectations.json create mode 100644 tests/fixtures/fp_guards/sanitizer_url_encode_js/app.js create mode 100644 tests/fixtures/fp_guards/sanitizer_url_encode_js/expectations.json create mode 100644 tests/fixtures/fp_guards/types_bool_flag_py/app.py create mode 100644 tests/fixtures/fp_guards/types_bool_flag_py/expectations.json create mode 100644 tests/fixtures/fp_guards/types_int_id_sql_py/app.py create mode 100644 tests/fixtures/fp_guards/types_int_id_sql_py/expectations.json create mode 100644 tests/fixtures/fp_guards/types_int_port_py/app.py create mode 100644 tests/fixtures/fp_guards/types_int_port_py/expectations.json create mode 100644 tests/fixtures/fp_guards/types_parse_int_go/expectations.json create mode 100644 tests/fixtures/fp_guards/types_parse_int_go/main.go create mode 100644 tests/fixtures/gated_sink_dynamic_activation/README.md create mode 100644 tests/fixtures/gated_sink_dynamic_activation/app.js create mode 100644 tests/fixtures/gated_sink_dynamic_activation/expectations.json create mode 100644 tests/fixtures/go_server/README.md create mode 100644 tests/fixtures/hardcoded_secret/README.md create mode 100644 tests/fixtures/hardcoded_secret/app.js create mode 100644 tests/fixtures/hardcoded_secret/expectations.json create mode 100644 tests/fixtures/inline_cache_origin_attribution/README.md create mode 100644 tests/fixtures/inline_cache_origin_attribution/app.js create mode 100644 tests/fixtures/inline_cache_origin_attribution/expectations.json create mode 100644 tests/fixtures/insecure_session_config/README.md create mode 100644 tests/fixtures/insecure_session_config/app.js create mode 100644 tests/fixtures/insecure_session_config/expectations.json create mode 100644 tests/fixtures/internal_redirect_taint/README.md create mode 100644 tests/fixtures/internal_redirect_taint/app.js create mode 100644 tests/fixtures/internal_redirect_taint/expectations.json create mode 100644 tests/fixtures/java_service/README.md create mode 100644 tests/fixtures/js_ts_pass2_deep_chain/README.md create mode 100644 tests/fixtures/js_ts_pass2_deep_chain/expectations.json create mode 100644 tests/fixtures/js_ts_pass2_deep_chain/main.js create mode 100644 tests/fixtures/koa_app/README.md create mode 100644 tests/fixtures/koa_app/expectations.json create mode 100644 tests/fixtures/koa_app/package.json create mode 100644 tests/fixtures/koa_app/routes.js create mode 100644 tests/fixtures/large_switch_go/README.md create mode 100644 tests/fixtures/large_switch_go/expectations.json create mode 100644 tests/fixtures/large_switch_go/handler.go create mode 100644 tests/fixtures/migration_script_sql/expectations.json create mode 100644 tests/fixtures/migration_script_sql/migrate.js create mode 100644 tests/fixtures/mixed_project/README.md create mode 100644 tests/fixtures/path_traversal_download/README.md create mode 100644 tests/fixtures/path_traversal_download/app.js create mode 100644 tests/fixtures/path_traversal_download/expectations.json create mode 100644 tests/fixtures/phase_c_auth_taint/Cargo.toml create mode 100644 tests/fixtures/phase_c_auth_taint/handler_sanitized.rs create mode 100644 tests/fixtures/phase_c_auth_taint/handler_unsanitized.rs create mode 100644 tests/fixtures/predicate_multi_arg_validator_tainted/app.py create mode 100644 tests/fixtures/predicate_multi_arg_validator_tainted/expectations.json create mode 100644 tests/fixtures/predicate_multi_arg_validator_wrong/README.md create mode 100644 tests/fixtures/predicate_multi_arg_validator_wrong/app.py create mode 100644 tests/fixtures/predicate_multi_arg_validator_wrong/expectations.json create mode 100644 tests/fixtures/python_subprocess_shell_default_safe/app.py create mode 100644 tests/fixtures/python_subprocess_shell_default_safe/expectations.json create mode 100644 tests/fixtures/python_subprocess_shell_false_safe/app.py create mode 100644 tests/fixtures/python_subprocess_shell_false_safe/expectations.json create mode 100644 tests/fixtures/python_subprocess_shell_true/README.md create mode 100644 tests/fixtures/python_subprocess_shell_true/app.py create mode 100644 tests/fixtures/python_subprocess_shell_true/expectations.json create mode 100644 tests/fixtures/real_world/c/taint/safe_constant_args.c create mode 100644 tests/fixtures/real_world/c/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/c/taint/safe_no_source.c create mode 100644 tests/fixtures/real_world/c/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/c/taint/safe_reassigned_const.c create mode 100644 tests/fixtures/real_world/c/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/c/taint/safe_sanitized_flow.c create mode 100644 tests/fixtures/real_world/c/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/c/taint/ssrf_curl.c create mode 100644 tests/fixtures/real_world/c/taint/ssrf_curl.expect.json create mode 100644 tests/fixtures/real_world/cpp/cfg/lambda_taint.cpp create mode 100644 tests/fixtures/real_world/cpp/cfg/lambda_taint.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/cmdi_execl.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/cmdi_execl.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/safe_constant_args.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/safe_no_source.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/safe_reassigned_const.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/safe_sanitized_flow.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/cpp/taint/ssrf_curl.cpp create mode 100644 tests/fixtures/real_world/cpp/taint/ssrf_curl.expect.json create mode 100644 tests/fixtures/real_world/go/safe/safe_parameterized_query.expect.json create mode 100644 tests/fixtures/real_world/go/safe/safe_parameterized_query.go create mode 100644 tests/fixtures/real_world/go/taint/crypto_taint.expect.json create mode 100644 tests/fixtures/real_world/go/taint/crypto_taint.go create mode 100644 tests/fixtures/real_world/go/taint/echo_xss.expect.json create mode 100644 tests/fixtures/real_world/go/taint/echo_xss.go create mode 100644 tests/fixtures/real_world/go/taint/func_literal_capture.expect.json create mode 100644 tests/fixtures/real_world/go/taint/func_literal_capture.go create mode 100644 tests/fixtures/real_world/go/taint/go_sql_db_not_xss.expect.json create mode 100644 tests/fixtures/real_world/go/taint/go_sql_db_not_xss.go create mode 100644 tests/fixtures/real_world/go/taint/http_sqli.expect.json create mode 100644 tests/fixtures/real_world/go/taint/http_sqli.go create mode 100644 tests/fixtures/real_world/go/taint/infeasible_nil_check.expect.json create mode 100644 tests/fixtures/real_world/go/taint/infeasible_nil_check.go create mode 100644 tests/fixtures/real_world/go/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/go/taint/reassignment_compound.go create mode 100644 tests/fixtures/real_world/go/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_constant_args.go create mode 100644 tests/fixtures/real_world/go/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_no_source.go create mode 100644 tests/fixtures/real_world/go/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_reassigned_const.go create mode 100644 tests/fixtures/real_world/go/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_sanitized_flow.go create mode 100644 tests/fixtures/real_world/go/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_ssrf_hardcoded.go create mode 100644 tests/fixtures/real_world/go/taint/safe_ssrf_scheme_check.expect.json create mode 100644 tests/fixtures/real_world/go/taint/safe_ssrf_scheme_check.go create mode 100644 tests/fixtures/real_world/go/taint/ssrf_concat.expect.json create mode 100644 tests/fixtures/real_world/go/taint/ssrf_concat.go create mode 100644 tests/fixtures/real_world/go/taint/ssrf_http_get.expect.json create mode 100644 tests/fixtures/real_world/go/taint/ssrf_http_get.go create mode 100644 tests/fixtures/real_world/go/taint/ssrf_net_dial.expect.json create mode 100644 tests/fixtures/real_world/go/taint/ssrf_net_dial.go create mode 100644 tests/fixtures/real_world/go/taint/ssrf_new_request_ctx.expect.json create mode 100644 tests/fixtures/real_world/go/taint/ssrf_new_request_ctx.go create mode 100644 tests/fixtures/real_world/java/cfg/lambda_taint.expect.json create mode 100644 tests/fixtures/real_world/java/cfg/lambda_taint.java create mode 100644 tests/fixtures/real_world/java/taint/cast_to_string_still_tainted.expect.json create mode 100644 tests/fixtures/real_world/java/taint/cast_to_string_still_tainted.java create mode 100644 tests/fixtures/real_world/java/taint/catch_param_sink.expect.json create mode 100644 tests/fixtures/real_world/java/taint/catch_param_sink.java create mode 100644 tests/fixtures/real_world/java/taint/collection_add_sqli.expect.json create mode 100644 tests/fixtures/real_world/java/taint/collection_add_sqli.java create mode 100644 tests/fixtures/real_world/java/taint/deser_readobject_dual.expect.json create mode 100644 tests/fixtures/real_world/java/taint/deser_readobject_dual.java create mode 100644 tests/fixtures/real_world/java/taint/heap_collection_alias.expect.json create mode 100644 tests/fixtures/real_world/java/taint/heap_collection_alias.java create mode 100644 tests/fixtures/real_world/java/taint/infeasible_equality.expect.json create mode 100644 tests/fixtures/real_world/java/taint/infeasible_equality.java create mode 100644 tests/fixtures/real_world/java/taint/instanceof_guard_sqli.expect.json create mode 100644 tests/fixtures/real_world/java/taint/instanceof_guard_sqli.java create mode 100644 tests/fixtures/real_world/java/taint/instanceof_wrong_branch.expect.json create mode 100644 tests/fixtures/real_world/java/taint/instanceof_wrong_branch.java create mode 100644 tests/fixtures/real_world/java/taint/jackson_deser.expect.json create mode 100644 tests/fixtures/real_world/java/taint/jackson_deser.java create mode 100644 tests/fixtures/real_world/java/taint/jndi_injection.expect.json create mode 100644 tests/fixtures/real_world/java/taint/jndi_injection.java create mode 100644 tests/fixtures/real_world/java/taint/multi_method_xss.expect.json create mode 100644 tests/fixtures/real_world/java/taint/multi_method_xss.java create mode 100644 tests/fixtures/real_world/java/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/java/taint/reassignment_compound.java create mode 100644 tests/fixtures/real_world/java/taint/response_entity_xss.expect.json create mode 100644 tests/fixtures/real_world/java/taint/response_entity_xss.java create mode 100644 tests/fixtures/real_world/java/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_constant_args.java create mode 100644 tests/fixtures/real_world/java/taint/safe_esapi_sanitized.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_esapi_sanitized.java create mode 100644 tests/fixtures/real_world/java/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_no_source.java create mode 100644 tests/fixtures/real_world/java/taint/safe_parameterized_query.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_parameterized_query.java create mode 100644 tests/fixtures/real_world/java/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_reassigned_const.java create mode 100644 tests/fixtures/real_world/java/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_sanitized_flow.java create mode 100644 tests/fixtures/real_world/java/taint/safe_spring_patterns.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_spring_patterns.java create mode 100644 tests/fixtures/real_world/java/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_ssrf_hardcoded.java create mode 100644 tests/fixtures/real_world/java/taint/safe_system_out.expect.json create mode 100644 tests/fixtures/real_world/java/taint/safe_system_out.java create mode 100644 tests/fixtures/real_world/java/taint/spring_sqli.expect.json create mode 100644 tests/fixtures/real_world/java/taint/spring_sqli.java create mode 100644 tests/fixtures/real_world/java/taint/ssrf_url_connect.expect.json create mode 100644 tests/fixtures/real_world/java/taint/ssrf_url_connect.java create mode 100644 tests/fixtures/real_world/java/taint/try_catch_sqli.expect.json create mode 100644 tests/fixtures/real_world/java/taint/try_catch_sqli.java create mode 100644 tests/fixtures/real_world/java/taint/type_receiver_ssrf.expect.json create mode 100644 tests/fixtures/real_world/java/taint/type_receiver_ssrf.java create mode 100644 tests/fixtures/real_world/java/taint/unsafe_response_print.expect.json create mode 100644 tests/fixtures/real_world/java/taint/unsafe_response_print.java create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_pg.expect.json create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_pg.js create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_query.expect.json create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_query.js create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_variants.expect.json create mode 100644 tests/fixtures/real_world/javascript/safe/safe_parameterized_variants.js create mode 100644 tests/fixtures/real_world/javascript/taint/alias_no_sanitize_unsafe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/alias_no_sanitize_unsafe.js create mode 100644 tests/fixtures/real_world/javascript/taint/alias_sanitize_propagation.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/alias_sanitize_propagation.js create mode 100644 tests/fixtures/real_world/javascript/taint/array_push_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/array_push_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/array_push_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/array_push_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/axios_post_body_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/axios_post_body_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/axios_post_url_fires.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/axios_post_url_fires.js create mode 100644 tests/fixtures/real_world/javascript/taint/callback_return_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/callback_return_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/callback_sink_tracking.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/callback_sink_tracking.js create mode 100644 tests/fixtures/real_world/javascript/taint/catch_param_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/catch_param_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/chained_promise_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/chained_promise_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/closure_captured_var.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/closure_captured_var.js create mode 100644 tests/fixtures/real_world/javascript/taint/closure_member_assignment.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/closure_member_assignment.js create mode 100644 tests/fixtures/real_world/javascript/taint/container_direct_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/container_direct_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_dynamic_fallback.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_dynamic_fallback.js create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_load_precision.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_load_precision.js create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_store_isolation.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/container_index_store_isolation.js create mode 100644 tests/fixtures/real_world/javascript/taint/context_sensitive_call.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/context_sensitive_call.js create mode 100644 tests/fixtures/real_world/javascript/taint/deep_nested_closure.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/deep_nested_closure.js create mode 100644 tests/fixtures/real_world/javascript/taint/destructure_object_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/destructure_object_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/destructure_sanitized_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/destructure_sanitized_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/destructuring_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/destructuring_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/dom_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/dom_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/equality_narrowing_propagates.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/equality_narrowing_propagates.js create mode 100644 tests/fixtures/real_world/javascript/taint/equality_narrowing_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/equality_narrowing_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/express_redirect.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/express_redirect.js create mode 100644 tests/fixtures/real_world/javascript/taint/express_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/express_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/feasible_range_check.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/feasible_range_check.js create mode 100644 tests/fixtures/real_world/javascript/taint/fetch_object_url_tainted_fires.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/fetch_object_url_tainted_fires.js create mode 100644 tests/fixtures/real_world/javascript/taint/fetch_tainted_body_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/fetch_tainted_body_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/field_overwrite_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/field_overwrite_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/field_partial_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/field_partial_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/field_safe_overwrite_base_tainted.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/field_safe_overwrite_base_tainted.js create mode 100644 tests/fixtures/real_world/javascript/taint/field_taint_propagation.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/field_taint_propagation.js create mode 100644 tests/fixtures/real_world/javascript/taint/field_write_base_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/field_write_base_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/global_var_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/global_var_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/got_post_body_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/got_post_body_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/got_tainted_url_fires.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/got_tainted_url_fires.js create mode 100644 tests/fixtures/real_world/javascript/taint/header_extract_shift.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/header_extract_shift.js create mode 100644 tests/fixtures/real_world/javascript/taint/heap_alias_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/heap_alias_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/heap_reassign_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/heap_reassign_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/http_request_tainted_host_fires.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/http_request_tainted_host_fires.js create mode 100644 tests/fixtures/real_world/javascript/taint/iife_tainted.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/iife_tainted.js create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_equality_check.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_equality_check.js create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_range_check.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_range_check.js create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_relational_check.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/infeasible_relational_check.js create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_mixed.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_mixed.js create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_no_leak.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_no_leak.js create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_passthrough.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/inline_return_passthrough.js create mode 100644 tests/fixtures/real_world/javascript/taint/internal_redirect_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/internal_redirect_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_container_return.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_container_return.js create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_container_store.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_container_store.js create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_new_container_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/interproc_new_container_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/length_in_template_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/length_in_template_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/local_escape_html_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/local_escape_html_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/loop_counter_widening.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/loop_counter_widening.js create mode 100644 tests/fixtures/real_world/javascript/taint/method_chain_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/method_chain_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/multi_source_single_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/multi_source_single_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/nested_callback_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/nested_callback_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/numeric_attr_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/numeric_attr_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/open_redirect.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/open_redirect.js create mode 100644 tests/fixtures/real_world/javascript/taint/open_redirect_unsafe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/open_redirect_unsafe.js create mode 100644 tests/fixtures/real_world/javascript/taint/parse_from_string_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/parse_from_string_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/permission_mask_gate.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/permission_mask_gate.js create mode 100644 tests/fixtures/real_world/javascript/taint/phi_must_validation_regression.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/phi_must_validation_regression.js create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_compound.js create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_conditional.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_conditional.js create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/reassignment_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/receiver_taint_resolved.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/receiver_taint_resolved.js create mode 100644 tests/fixtures/real_world/javascript/taint/relational_feasible_check.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/relational_feasible_check.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_constant_args.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_hardcoded_exec.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_hardcoded_exec.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_he_encode.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_he_encode.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_int_bounded.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_int_bounded.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_no_source.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_reassigned_const.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_sanitized_flow.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_allowlist.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_allowlist.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_axios_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_axios_hardcoded.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_hardcoded.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_prefix.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_ssrf_prefix.js create mode 100644 tests/fixtures/real_world/javascript/taint/safe_validated_input.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/safe_validated_input.js create mode 100644 tests/fixtures/real_world/javascript/taint/scope_shadow_precision.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/scope_shadow_precision.js create mode 100644 tests/fixtures/real_world/javascript/taint/session_destroy_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/session_destroy_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/session_destroy_with_query.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/session_destroy_with_query.js create mode 100644 tests/fixtures/real_world/javascript/taint/set_attribute_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/set_attribute_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_mixed_parameterized.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_mixed_parameterized.js create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_mysql_query.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_mysql_query.js create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_parameterized_edge_cases.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_parameterized_edge_cases.js create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_pg_client.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_pg_client.js create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_sequelize_raw.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/sqli_sequelize_raw.js create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_axios_bare.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_axios_bare.js create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_fetch.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_fetch.js create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_got.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_got.js create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_multihop.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_multihop.js create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_undici.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ssrf_undici.js create mode 100644 tests/fixtures/real_world/javascript/taint/string_concat_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/string_concat_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_encoding_html_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_encoding_html_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_encoding_wrong_type.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_encoding_wrong_type.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_catch_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_catch_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_finally_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_finally_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_scope_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_exception_scope_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_expression_tree.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_expression_tree.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_nested.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_nested.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_propagation_regression.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_propagation_regression.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_field_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_budget_exhaustion.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_budget_exhaustion.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_callee_internal_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_callee_internal_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_callee_sanitize.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_callee_sanitize.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_heap_mutation.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_heap_mutation.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_multi_return.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_multi_return.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_mutual_recursion.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_mutual_recursion.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_nested_depth3.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_nested_depth3.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_passthrough.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_passthrough.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_recursive.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_interproc_recursive.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_exit_correct.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_exit_correct.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_infinite.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_infinite.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_inner_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_inner_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_multi_exit.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_multi_exit.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_nested.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_nested.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_post_sink.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_post_sink.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_taint_survives.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_loop_taint_survives.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_multipath.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_multipath.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_nested_expr.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_nested_expr.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_phi_merge.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_phi_merge.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_smt_infeasible.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_smt_infeasible.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_string_chain.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_string_chain.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_string_replace_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_string_replace_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_cmdi.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_cmdi.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_sqli.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_sqli.js create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/symex_witness_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/telemetry_user_agent_fp.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/telemetry_user_agent_fp.js create mode 100644 tests/fixtures/real_world/javascript/taint/template_literal_xss.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/template_literal_xss.js create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_both_branches_sanitized_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_both_branches_sanitized_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_literal_branches_safe.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_literal_branches_safe.js create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_one_branch_tainted.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_one_branch_tainted.js create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/ternary_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/try_catch_taint.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/try_catch_taint.js create mode 100644 tests/fixtures/real_world/javascript/taint/typeof_guard_eval.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/typeof_guard_eval.js create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_bitwise_or.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_bitwise_or.js create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_he_no_encode.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_he_no_encode.js create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_ssrf_scheme_only.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_ssrf_scheme_only.js create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_string_bounded.expect.json create mode 100644 tests/fixtures/real_world/javascript/taint/unsafe_string_bounded.js create mode 100644 tests/fixtures/real_world/php/taint/closure_taint.expect.json create mode 100644 tests/fixtures/real_world/php/taint/closure_taint.php create mode 100644 tests/fixtures/real_world/php/taint/infeasible_equality_check.expect.json create mode 100644 tests/fixtures/real_world/php/taint/infeasible_equality_check.php create mode 100644 tests/fixtures/real_world/php/taint/laravel_eloquent_raw.expect.json create mode 100644 tests/fixtures/real_world/php/taint/laravel_eloquent_raw.php create mode 100644 tests/fixtures/real_world/php/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/php/taint/reassignment_compound.php create mode 100644 tests/fixtures/real_world/php/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/php/taint/safe_constant_args.php create mode 100644 tests/fixtures/real_world/php/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/php/taint/safe_no_source.php create mode 100644 tests/fixtures/real_world/php/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/php/taint/safe_reassigned_const.php create mode 100644 tests/fixtures/real_world/php/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/php/taint/safe_sanitized_flow.php create mode 100644 tests/fixtures/real_world/php/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/php/taint/safe_ssrf_hardcoded.php create mode 100644 tests/fixtures/real_world/php/taint/sqli_pdo_query.expect.json create mode 100644 tests/fixtures/real_world/php/taint/sqli_pdo_query.php create mode 100644 tests/fixtures/real_world/php/taint/ssrf_curl.expect.json create mode 100644 tests/fixtures/real_world/php/taint/ssrf_curl.php create mode 100644 tests/fixtures/real_world/php/taint/ssrf_file_get_contents.expect.json create mode 100644 tests/fixtures/real_world/php/taint/ssrf_file_get_contents.php create mode 100644 tests/fixtures/real_world/php/taint/throw_in_try.expect.json create mode 100644 tests/fixtures/real_world/php/taint/throw_in_try.php create mode 100644 tests/fixtures/real_world/php/taint/type_curl_init.expect.json create mode 100644 tests/fixtures/real_world/php/taint/type_curl_init.php create mode 100644 tests/fixtures/real_world/python/safe/safe_parameterized_query.expect.json create mode 100644 tests/fixtures/real_world/python/safe/safe_parameterized_query.py create mode 100644 tests/fixtures/real_world/python/safe/safe_parameterized_variants.expect.json create mode 100644 tests/fixtures/real_world/python/safe/safe_parameterized_variants.py create mode 100644 tests/fixtures/real_world/python/taint/attribute_taint.expect.json create mode 100644 tests/fixtures/real_world/python/taint/attribute_taint.py create mode 100644 tests/fixtures/real_world/python/taint/callback_sink_tracking.expect.json create mode 100644 tests/fixtures/real_world/python/taint/callback_sink_tracking.py create mode 100644 tests/fixtures/real_world/python/taint/closure_captured_var.expect.json create mode 100644 tests/fixtures/real_world/python/taint/closure_captured_var.py create mode 100644 tests/fixtures/real_world/python/taint/destructuring_taint.expect.json create mode 100644 tests/fixtures/real_world/python/taint/destructuring_taint.py create mode 100644 tests/fixtures/real_world/python/taint/django_orm_raw.expect.json create mode 100644 tests/fixtures/real_world/python/taint/django_orm_raw.py create mode 100644 tests/fixtures/real_world/python/taint/django_sqli.expect.json create mode 100644 tests/fixtures/real_world/python/taint/django_sqli.py create mode 100644 tests/fixtures/real_world/python/taint/flask_ssti.expect.json create mode 100644 tests/fixtures/real_world/python/taint/flask_ssti.py create mode 100644 tests/fixtures/real_world/python/taint/flask_xss_render.expect.json create mode 100644 tests/fixtures/real_world/python/taint/flask_xss_render.py create mode 100644 tests/fixtures/real_world/python/taint/heap_alias_cmdi.expect.json create mode 100644 tests/fixtures/real_world/python/taint/heap_alias_cmdi.py create mode 100644 tests/fixtures/real_world/python/taint/infeasible_null_eq.expect.json create mode 100644 tests/fixtures/real_world/python/taint/infeasible_null_eq.py create mode 100644 tests/fixtures/real_world/python/taint/interproc_list_passthrough.expect.json create mode 100644 tests/fixtures/real_world/python/taint/interproc_list_passthrough.py create mode 100644 tests/fixtures/real_world/python/taint/isinstance_db_conn_sqli.expect.json create mode 100644 tests/fixtures/real_world/python/taint/isinstance_db_conn_sqli.py create mode 100644 tests/fixtures/real_world/python/taint/isinstance_guard_sqli.expect.json create mode 100644 tests/fixtures/real_world/python/taint/isinstance_guard_sqli.py create mode 100644 tests/fixtures/real_world/python/taint/lambda_closure.expect.json create mode 100644 tests/fixtures/real_world/python/taint/lambda_closure.py create mode 100644 tests/fixtures/real_world/python/taint/lambda_taint.expect.json create mode 100644 tests/fixtures/real_world/python/taint/lambda_taint.py create mode 100644 tests/fixtures/real_world/python/taint/list_append_cmdi.expect.json create mode 100644 tests/fixtures/real_world/python/taint/list_append_cmdi.py create mode 100644 tests/fixtures/real_world/python/taint/os_system_cmdi.expect.json create mode 100644 tests/fixtures/real_world/python/taint/os_system_cmdi.py create mode 100644 tests/fixtures/real_world/python/taint/raise_in_try.expect.json create mode 100644 tests/fixtures/real_world/python/taint/raise_in_try.py create mode 100644 tests/fixtures/real_world/python/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/python/taint/reassignment_compound.py create mode 100644 tests/fixtures/real_world/python/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_constant_args.py create mode 100644 tests/fixtures/real_world/python/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_no_source.py create mode 100644 tests/fixtures/real_world/python/taint/safe_ord_bounded.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_ord_bounded.py create mode 100644 tests/fixtures/real_world/python/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_reassigned_const.py create mode 100644 tests/fixtures/real_world/python/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_sanitized_flow.py create mode 100644 tests/fixtures/real_world/python/taint/safe_shlex_sanitized.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_shlex_sanitized.py create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_allowlist.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_allowlist.py create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_constant.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_constant.py create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_prefix.expect.json create mode 100644 tests/fixtures/real_world/python/taint/safe_ssrf_prefix.py create mode 100644 tests/fixtures/real_world/python/taint/sqli_conn_execute.expect.json create mode 100644 tests/fixtures/real_world/python/taint/sqli_conn_execute.py create mode 100644 tests/fixtures/real_world/python/taint/sqli_mixed_parameterized.expect.json create mode 100644 tests/fixtures/real_world/python/taint/sqli_mixed_parameterized.py create mode 100644 tests/fixtures/real_world/python/taint/sqli_session_execute.expect.json create mode 100644 tests/fixtures/real_world/python/taint/sqli_session_execute.py create mode 100644 tests/fixtures/real_world/python/taint/ssrf_httpx_post.expect.json create mode 100644 tests/fixtures/real_world/python/taint/ssrf_httpx_post.py create mode 100644 tests/fixtures/real_world/python/taint/ssrf_requests.expect.json create mode 100644 tests/fixtures/real_world/python/taint/ssrf_requests.py create mode 100644 tests/fixtures/real_world/python/taint/try_except_taint.expect.json create mode 100644 tests/fixtures/real_world/python/taint/try_except_taint.py create mode 100644 tests/fixtures/real_world/python/taint/tuple_unpack_taint.expect.json create mode 100644 tests/fixtures/real_world/python/taint/tuple_unpack_taint.py create mode 100644 tests/fixtures/real_world/ruby/taint/infeasible_equality_check.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/infeasible_equality_check.rb create mode 100644 tests/fixtures/real_world/ruby/taint/rails_redirect.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/rails_redirect.rb create mode 100644 tests/fixtures/real_world/ruby/taint/rails_sqli.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/rails_sqli.rb create mode 100644 tests/fixtures/real_world/ruby/taint/rails_where_sqli.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/rails_where_sqli.rb create mode 100644 tests/fixtures/real_world/ruby/taint/reassignment_compound.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/reassignment_compound.rb create mode 100644 tests/fixtures/real_world/ruby/taint/rescue_safe.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/rescue_safe.rb create mode 100644 tests/fixtures/real_world/ruby/taint/rescue_taint.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/rescue_taint.rb create mode 100644 tests/fixtures/real_world/ruby/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/safe_constant_args.rb create mode 100644 tests/fixtures/real_world/ruby/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/safe_no_source.rb create mode 100644 tests/fixtures/real_world/ruby/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/safe_reassigned_const.rb create mode 100644 tests/fixtures/real_world/ruby/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/safe_sanitized_flow.rb create mode 100644 tests/fixtures/real_world/ruby/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/safe_ssrf_hardcoded.rb create mode 100644 tests/fixtures/real_world/ruby/taint/sinatra_erb_xss.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/sinatra_erb_xss.rb create mode 100644 tests/fixtures/real_world/ruby/taint/ssrf_httparty_post.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/ssrf_httparty_post.rb create mode 100644 tests/fixtures/real_world/ruby/taint/ssrf_net_http.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/ssrf_net_http.rb create mode 100644 tests/fixtures/real_world/ruby/taint/type_aware_http_client.expect.json create mode 100644 tests/fixtures/real_world/ruby/taint/type_aware_http_client.rb create mode 100644 tests/fixtures/real_world/rust/taint/actix_xss.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/actix_xss.rs create mode 100644 tests/fixtures/real_world/rust/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/safe_constant_args.rs create mode 100644 tests/fixtures/real_world/rust/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/safe_no_source.rs create mode 100644 tests/fixtures/real_world/rust/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/safe_reassigned_const.rs create mode 100644 tests/fixtures/real_world/rust/taint/safe_replace_chain_path_traversal.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/safe_replace_chain_path_traversal.rs create mode 100644 tests/fixtures/real_world/rust/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/safe_sanitized_flow.rs create mode 100644 tests/fixtures/real_world/rust/taint/ssrf_reqwest.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/ssrf_reqwest.rs create mode 100644 tests/fixtures/real_world/rust/taint/unsafe_replace_chain_no_credit.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/unsafe_replace_chain_no_credit.rs create mode 100644 tests/fixtures/real_world/rust/taint/unsafe_replace_reintroduces_pattern.expect.json create mode 100644 tests/fixtures/real_world/rust/taint/unsafe_replace_reintroduces_pattern.rs create mode 100644 tests/fixtures/real_world/typescript/taint/async_await_taint.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/async_await_taint.ts create mode 100644 tests/fixtures/real_world/typescript/taint/destructured_params.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/destructured_params.ts create mode 100644 tests/fixtures/real_world/typescript/taint/express_redirect.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/express_redirect.ts create mode 100644 tests/fixtures/real_world/typescript/taint/express_xss.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/express_xss.ts create mode 100644 tests/fixtures/real_world/typescript/taint/infeasible_equality_check.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/infeasible_equality_check.ts create mode 100644 tests/fixtures/real_world/typescript/taint/interface_param_taint.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/interface_param_taint.ts create mode 100644 tests/fixtures/real_world/typescript/taint/safe_constant_args.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/safe_constant_args.ts create mode 100644 tests/fixtures/real_world/typescript/taint/safe_no_source.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/safe_no_source.ts create mode 100644 tests/fixtures/real_world/typescript/taint/safe_reassigned_const.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/safe_reassigned_const.ts create mode 100644 tests/fixtures/real_world/typescript/taint/safe_sanitized_flow.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/safe_sanitized_flow.ts create mode 100644 tests/fixtures/real_world/typescript/taint/safe_ssrf_hardcoded.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/safe_ssrf_hardcoded.ts create mode 100644 tests/fixtures/real_world/typescript/taint/ssrf_fetch.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/ssrf_fetch.ts create mode 100644 tests/fixtures/real_world/typescript/taint/ts_as_string_still_tainted.expect.json create mode 100644 tests/fixtures/real_world/typescript/taint/ts_as_string_still_tainted.ts create mode 100644 tests/fixtures/receiver_chain_taint_java/Main.java create mode 100644 tests/fixtures/receiver_chain_taint_java/README.md create mode 100644 tests/fixtures/receiver_chain_taint_java/expectations.json create mode 100644 tests/fixtures/route_registration_noise/expectations.json create mode 100644 tests/fixtures/route_registration_noise/routes.js create mode 100644 tests/fixtures/route_registration_noise_frameworks/expectations.json create mode 100644 tests/fixtures/route_registration_noise_frameworks/package.json create mode 100644 tests/fixtures/route_registration_noise_frameworks/routes.js create mode 100644 tests/fixtures/rust_framework_rules/Cargo.toml create mode 100644 tests/fixtures/rust_framework_rules/README.md create mode 100644 tests/fixtures/rust_framework_rules/actix_handlers.rs create mode 100644 tests/fixtures/rust_framework_rules/axum_handlers.rs create mode 100644 tests/fixtures/rust_framework_rules/expectations.json create mode 100644 tests/fixtures/rust_framework_rules/rocket_handlers.rs create mode 100644 tests/fixtures/rust_module_path_resolution/expectations.json create mode 100644 tests/fixtures/rust_module_path_resolution/src/auth/session.rs create mode 100644 tests/fixtures/rust_module_path_resolution/src/auth/token.rs create mode 100644 tests/fixtures/rust_module_path_resolution/src/main.rs create mode 100644 tests/fixtures/rust_web_app/README.md create mode 100644 tests/fixtures/same_name_collisions_js/README.md create mode 100644 tests/fixtures/same_name_collisions_js/app.js create mode 100644 tests/fixtures/same_name_collisions_js/expectations.json create mode 100644 tests/fixtures/state/auth_api_version_not_handler.js create mode 100644 tests/fixtures/state/auth_decode_token_not_auth.js create mode 100644 tests/fixtures/state/auth_decorator_cpp_authenticated.cpp create mode 100644 tests/fixtures/state/auth_decorator_java_non_auth.java create mode 100644 tests/fixtures/state/auth_decorator_java_preauthorize.java create mode 100644 tests/fixtures/state/auth_decorator_js_non_auth.ts create mode 100644 tests/fixtures/state/auth_decorator_js_use_guards.ts create mode 100644 tests/fixtures/state/auth_decorator_php_is_granted.php create mode 100644 tests/fixtures/state/auth_decorator_python_admin.py create mode 100644 tests/fixtures/state/auth_decorator_python_login_required.py create mode 100644 tests/fixtures/state/auth_decorator_python_non_auth.py create mode 100644 tests/fixtures/state/auth_decorator_python_permission_required.py create mode 100644 tests/fixtures/state/auth_decorator_ruby_before_action.rb create mode 100644 tests/fixtures/state/auth_decorator_ruby_before_action_except.rb create mode 100644 tests/fixtures/state/auth_decorator_ruby_before_action_except_other.rb create mode 100644 tests/fixtures/state/auth_decorator_ruby_before_action_only.rb create mode 100644 tests/fixtures/state/auth_decorator_ruby_before_action_only_match.rb create mode 100644 tests/fixtures/state/auth_decorator_ruby_no_filter.rb create mode 100644 tests/fixtures/state/auth_decorator_rust_non_auth.rs create mode 100644 tests/fixtures/state/auth_decorator_rust_require_auth.rs create mode 100644 tests/fixtures/state/auth_ensure_authenticated.js create mode 100644 tests/fixtures/state/auth_false_positive_token.js create mode 100644 tests/fixtures/state/auth_jwt_verify_protected.js create mode 100644 tests/fixtures/state/auth_main_not_handler.js create mode 100644 tests/fixtures/state/auth_negated_condition.js create mode 100644 tests/fixtures/state/auth_not_a_handler.py create mode 100644 tests/fixtures/state/auth_protected_handler.js create mode 100644 tests/fixtures/state/auth_require_role_protected.js create mode 100644 tests/fixtures/state/auth_substring_false_match.js create mode 100644 tests/fixtures/state/auth_unprotected_handler.js create mode 100644 tests/fixtures/state/cpp_alias_before_delete.cpp create mode 100644 tests/fixtures/state/cpp_new_delete_clean.cpp create mode 100644 tests/fixtures/state/cpp_new_delete_leak.cpp create mode 100644 tests/fixtures/state/cpp_new_double_delete.cpp create mode 100644 tests/fixtures/state/cpp_smart_ptr_no_leak.cpp create mode 100644 tests/fixtures/state/cpp_smart_ptr_scope_exit.cpp create mode 100644 tests/fixtures/state/cpp_unique_ptr_from_raw.cpp create mode 100644 tests/fixtures/state/factory_leak_not_returned.c create mode 100644 tests/fixtures/state/go_defer_close.go create mode 100644 tests/fixtures/state/go_defer_missing.go create mode 100644 tests/fixtures/state/go_no_defer_manual_close.go create mode 100644 tests/fixtures/state/go_sql_open_clean.go create mode 100644 tests/fixtures/state/go_sql_open_leak.go create mode 100644 tests/fixtures/state/java_db_connection_leak.java create mode 100644 tests/fixtures/state/java_double_close.java create mode 100644 tests/fixtures/state/java_file_stream_clean.java create mode 100644 tests/fixtures/state/java_file_stream_leak.java create mode 100644 tests/fixtures/state/java_prepared_stmt_clean.java create mode 100644 tests/fixtures/state/java_prepared_stmt_leak.java create mode 100644 tests/fixtures/state/java_server_socket_leak.java create mode 100644 tests/fixtures/state/java_try_with_resources.java create mode 100644 tests/fixtures/state/js_fs_open_close.js create mode 100644 tests/fixtures/state/js_fs_open_no_close.js create mode 100644 tests/fixtures/state/js_fs_use_after_close.js create mode 100644 tests/fixtures/state/js_mysql_connection_clean.js create mode 100644 tests/fixtures/state/js_mysql_connection_leak.js create mode 100644 tests/fixtures/state/js_websocket_leak.js create mode 100644 tests/fixtures/state/loop_reopen.c create mode 100644 tests/fixtures/state/multi_function_isolation.c create mode 100644 tests/fixtures/state/multi_function_isolation.rb create mode 100644 tests/fixtures/state/php_curl_use_after_close.php create mode 100644 tests/fixtures/state/php_fopen_close.php create mode 100644 tests/fixtures/state/php_fopen_no_close.php create mode 100644 tests/fixtures/state/php_fsockopen_leak.php create mode 100644 tests/fixtures/state/php_mysqli_clean.php create mode 100644 tests/fixtures/state/php_mysqli_leak.php create mode 100644 tests/fixtures/state/php_pg_connect_leak.php create mode 100644 tests/fixtures/state/python_double_close.py create mode 100644 tests/fixtures/state/python_file_open_close.py create mode 100644 tests/fixtures/state/python_file_open_no_close.py create mode 100644 tests/fixtures/state/python_sqlite_clean.py create mode 100644 tests/fixtures/state/python_sqlite_leak.py create mode 100644 tests/fixtures/state/python_use_after_close.py create mode 100644 tests/fixtures/state/python_with_nested.py create mode 100644 tests/fixtures/state/python_with_statement.py create mode 100644 tests/fixtures/state/resource_as_arg.c create mode 100644 tests/fixtures/state/resource_returned.c create mode 100644 tests/fixtures/state/return_null_after_open_without_close.c create mode 100644 tests/fixtures/state/returned_on_all_success_paths.c create mode 100644 tests/fixtures/state/returned_on_one_path_leaked_on_another.c create mode 100644 tests/fixtures/state/ruby_double_close.rb create mode 100644 tests/fixtures/state/ruby_file_open_close.rb create mode 100644 tests/fixtures/state/ruby_file_open_no_close.rb create mode 100644 tests/fixtures/state/ruby_pg_connection_leak.rb create mode 100644 tests/fixtures/state/ruby_tempfile_leak.rb create mode 100644 tests/fixtures/state/ruby_use_after_close.rb create mode 100644 tests/fixtures/state/rust_box_owned.rs create mode 100644 tests/fixtures/state/rust_explicit_drop.rs create mode 100644 tests/fixtures/state/rust_raii_file_no_leak.rs create mode 100644 tests/fixtures/state/rust_unsafe_alloc_clean.rs create mode 100644 tests/fixtures/state/rust_unsafe_alloc_leak.rs create mode 100644 tests/fixtures/state/ts_fs_open_close.ts create mode 100644 tests/fixtures/state/ts_fs_open_no_close.ts create mode 100644 tests/fixtures/state/ts_stream_use_after_destroy.ts create mode 100644 tests/fixtures/state/variable_shadowing.c create mode 100644 tests/fixtures/switch_fall_through_c/README.md create mode 100644 tests/fixtures/switch_fall_through_c/expectations.json create mode 100644 tests/fixtures/switch_fall_through_c/handler.c create mode 100644 tests/fixtures/symex/match_suppresses_safe_arm.rs create mode 100644 tests/fixtures/symex/switch_go.go create mode 100644 tests/fixtures/symex/switch_java.java create mode 100644 tests/fixtures/symex/symex_cgi_escape_ruby.rb create mode 100644 tests/fixtures/symex/symex_query_escape_go.go create mode 100644 tests/fixtures/symex/symex_url_encoder_java.java create mode 100644 tests/fixtures/weak_hash_password/README.md create mode 100644 tests/fixtures/weak_hash_password/app.js create mode 100644 tests/fixtures/weak_hash_password/expectations.json create mode 100644 tests/gauss_seidel_tests.rs create mode 100644 tests/hostile_input_tests.rs create mode 100644 tests/incremental_index_tests.rs create mode 100644 tests/indexed_parity_tests.rs create mode 100644 tests/inline_cache_origin_tests.rs create mode 100644 tests/js_ts_pass2_convergence_tests.rs create mode 100644 tests/malformed_config_tests.rs create mode 100644 tests/panic_recovery_tests.rs create mode 100644 tests/parse_timeout_test.rs create mode 100644 tests/phase12_switch_tests.rs create mode 100644 tests/phase8_fragility_tests.rs create mode 100644 tests/phase_c_auth_taint_tests.rs create mode 100644 tests/scc_convergence_tests.rs create mode 100644 tests/scc_cross_file_tests.rs create mode 100644 tests/ssa_equivalence_tests.rs create mode 100644 tests/symex_switch_tests.rs create mode 100644 tests/symex_transform_tests.rs create mode 100644 tools/docgen/main.rs diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml new file mode 100644 index 00000000..193e4576 --- /dev/null +++ b/.github/codeql/codeql-config.yml @@ -0,0 +1,6 @@ +name: "CodeQL Config" + +paths-ignore: + - examples + - tests + - benches diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a2d2bda1..607f5d87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,5 @@ name: CI + permissions: contents: read @@ -8,33 +9,232 @@ on: pull_request: branches: ["master"] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: - test: + frontend: + name: frontend runs-on: ubuntu-latest - strategy: - matrix: - rust: [stable, beta] steps: - - uses: actions/checkout@v4 - - uses: actions-rs/toolchain@v1 + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 with: - toolchain: ${{ matrix.rust }} - components: clippy, rustfmt - - uses: Swatinem/rust-cache@v2 + node-version: 20 + cache: npm + cache-dependency-path: frontend/package-lock.json + + - name: Install frontend dependencies + working-directory: frontend + run: npm ci + + - name: Frontend license check + working-directory: frontend + run: npm run license:check + + - name: Frontend format check + working-directory: frontend + run: npm run format:check + + - name: Frontend lint + working-directory: frontend + run: npm run lint + + - name: Frontend type check + working-directory: frontend + run: npm run typecheck + + - name: Frontend tests + working-directory: frontend + run: npm test + + rustfmt: + name: rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + components: rustfmt + cache: true - name: Format check run: cargo fmt --all -- --check + clippy-stable: + name: clippy-stable + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + components: clippy + cache: true + - name: Lint (Clippy) run: cargo clippy --all-targets --all-features -- -D warnings - - name: Build & Test - run: cargo test --all-features --verbose + cargo-deny: + name: cargo-deny + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 - - name: Security audit - uses: actions-rs/audit-check@v1 + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - token: ${{ secrets.GITHUB_TOKEN }} + toolchain: stable + cache: true + + - uses: taiki-e/install-action@cargo-deny - name: License & advisory checks - uses: EmbarkStudios/cargo-deny-action@v2 + run: cargo deny check advisories licenses bans sources + + third-party-licenses: + name: third-party-licenses + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + cache: true + + - uses: taiki-e/install-action@v2 + with: + tool: cargo-about@0.7.1 + + - name: Prime cargo registry cache + run: cargo fetch --locked + + - name: Regenerate license attribution + run: cargo about generate --offline about.hbs | tr -d '\r' > /tmp/THIRDPARTY-LICENSES.html + + - name: Diff against committed file + run: diff -u --strip-trailing-cr THIRDPARTY-LICENSES.html /tmp/THIRDPARTY-LICENSES.html + + docs-fresh: + name: docs-fresh + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + cache: true + + - name: Regenerate rule reference + run: cargo run --features docgen --bin nyx-docgen + + - name: Verify docs/rules.md is fresh + run: | + if ! git diff --exit-code docs/rules.md; then + echo "::error::docs/rules.md is stale. Run 'cargo run --features docgen --bin nyx-docgen' and commit the result." + exit 1 + fi + + rust-beta-build: + name: rust-beta-build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: beta + cache: true + + - name: Beta compile compatibility check + run: cargo check --all-features --tests + + rust-stable-test: + name: rust-stable-test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + cache: true + + - uses: taiki-e/install-action@nextest + + - name: Rust tests (stable) + run: cargo nextest run --all-features + + cross-platform-smoke: + name: cross-platform-smoke + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + cache: true + + - uses: taiki-e/install-action@nextest + + - name: Build + run: cargo build --release --all-features + + - name: Smoke tests + run: cargo nextest run --all-features --test integration_tests --test pattern_tests --test cli_validation_tests + + rust-beta-test: + name: rust-beta-test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: beta + cache: true + + - uses: taiki-e/install-action@nextest + + - name: Rust tests (beta) + run: cargo nextest run --all-features + + benchmark-gate: + name: benchmark-gate + runs-on: ubuntu-latest + timeout-minutes: 25 + steps: + - uses: actions/checkout@v6 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + cache: true + cache-key: benchmark-gate-release + + - name: Accuracy regression gate (P/R/F1) + run: cargo test --release --all-features --test benchmark_test -- --ignored --nocapture benchmark_evaluation + + - name: Performance regression gate + env: + NYX_CI_BENCH: "1" + run: cargo test --release --all-features --test perf_tests -- --nocapture + + - name: Upload benchmark results + if: always() + uses: actions/upload-artifact@v7 + with: + name: benchmark-results + path: tests/benchmark/results/latest.json + if-no-files-found: warn diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..4810eac3 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,45 @@ +name: "CodeQL Advanced" + +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + schedule: + - cron: "28 20 * * 2" + +jobs: + analyze: + name: Analyze (${{ matrix.language }}) + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + permissions: + security-events: write + packages: read + actions: read + contents: read + strategy: + fail-fast: false + matrix: + include: + - language: actions + build-mode: none + - language: javascript-typescript + build-mode: none + - language: rust + build-mode: none + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + config-file: ./.github/codeql/codeql-config.yml + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 + with: + category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..60cbcbd9 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,50 @@ +name: docs + +on: + push: + branches: [master] + paths: + - "docs/**" + - "book.toml" + - ".github/workflows/docs.yml" + - "assets/screenshots/**" + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build-deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Cache mdbook + id: cache-mdbook + uses: actions/cache@v4 + with: + path: ~/.cargo/bin/mdbook + key: mdbook-0.5.2-${{ runner.os }} + + - name: Install mdbook + if: steps.cache-mdbook.outputs.cache-hit != 'true' + run: cargo install mdbook --version 0.5.2 --locked + + # mdbook follows the committed docs/assets symlink (→ ../assets) so + # image references in docs resolve both in `mdbook serve` and in CI. + - name: Build + run: mdbook build + + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: book + + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 3d76a73b..f6ecc322 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -11,12 +11,14 @@ env: BIN_NAME: nyx jobs: - build-and-upload: + build: strategy: matrix: include: - target: x86_64-unknown-linux-gnu os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest - target: x86_64-pc-windows-msvc os: windows-latest - target: x86_64-apple-darwin @@ -27,7 +29,7 @@ jobs: steps: - name: Check out sources - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 @@ -36,17 +38,25 @@ jobs: target: ${{ matrix.target }} cache: true + - name: Install cross-compilation tools (ARM Linux) + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config.toml + echo 'linker = "aarch64-linux-gnu-gcc"' >> ~/.cargo/config.toml + - name: Install target run: rustup target add ${{ matrix.target }} - name: Build run: cargo build --release --bin ${{ env.BIN_NAME }} --target ${{ matrix.target }} - - name: Install cargo-about - run: cargo install cargo-about --locked - - - name: Generate license bundle - run: cargo about generate about.hbs -o THIRDPARTY-LICENSES.html + # THIRDPARTY-LICENSES.html is committed at the repo root and kept in + # sync with the dependency graph by the `third-party-licenses` CI + # job. Release builds ship the committed copy directly — no + # regeneration (and no per-runner cargo-about install) on the + # release hot path. - name: Package (Linux & macOS) if: runner.os != 'Windows' @@ -81,9 +91,157 @@ jobs: Add-Content -Path $env:GITHUB_ENV -Value "ASSET=$Archive" - - name: Upload to the release - uses: softprops/action-gh-release@v2 + - name: Upload build artifact + uses: actions/upload-artifact@v7 with: - files: dist/${{ env.ASSET }} + name: release-${{ matrix.target }} + path: dist/${{ env.ASSET }} + if-no-files-found: error + retention-days: 1 + + reproducibility: + # Supply-chain smoke test: build the release binary twice with pinned + # SOURCE_DATE_EPOCH and path remapping, then diff the SHA256 hashes. + # Gates `publish` so non-reproducible builds cannot ship. Scoped to + # x86_64-linux — the most tractable target for byte-for-byte + # determinism; failures on other targets would be investigated + # separately. + name: reproducibility-check + runs-on: ubuntu-latest + steps: + - name: Check out sources + uses: actions/checkout@v6 + + - name: Install Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + target: x86_64-unknown-linux-gnu + cache: true + + - name: Build twice and diff hashes + shell: bash + env: + RUSTFLAGS: "--remap-path-prefix=${{ github.workspace }}=/build" + run: | + set -euo pipefail + TARGET=x86_64-unknown-linux-gnu + BIN=${{ env.BIN_NAME }} + BIN_PATH="target/$TARGET/release/$BIN" + + SOURCE_DATE_EPOCH=$(git log -1 --format=%ct HEAD) + export SOURCE_DATE_EPOCH + echo "SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH" + + cargo build --release --bin "$BIN" --target "$TARGET" + HASH1=$(sha256sum "$BIN_PATH" | awk '{print $1}') + echo "first build: $HASH1" + + cargo clean --release --target "$TARGET" + cargo build --release --bin "$BIN" --target "$TARGET" + HASH2=$(sha256sum "$BIN_PATH" | awk '{print $1}') + echo "second build: $HASH2" + + if [ "$HASH1" != "$HASH2" ]; then + echo "::error::Reproducibility check failed: builds are not bit-identical" + echo " first: $HASH1" + echo " second: $HASH2" + exit 1 + fi + echo "::notice::Reproducible build verified (sha256=$HASH1)" + + publish: + # Collect all matrix build outputs, generate a single SHA256SUMS file, + # then push everything to the GitHub release in one shot. Doing this + # centrally (rather than per-matrix job) is the only way to produce a + # checksum file that covers every published artifact. + name: publish-release + runs-on: ubuntu-latest + needs: [build, reproducibility] + permissions: + contents: write + id-token: write + attestations: write + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + steps: + - name: Check out sources + uses: actions/checkout@v6 + + # Generate the SBOM from the source tree BEFORE downloading + # artifacts. Syft scans `path: .` recursively; if release-artifacts/ + # exists at scan time, it would walk into the zipped binaries and + # produce a polluted manifest. + - name: Generate CycloneDX SBOM + uses: anchore/sbom-action@v0 + with: + path: . + format: cyclonedx-json + output-file: nyx-${{ github.event.release.tag_name }}.cdx.json + upload-artifact: false + upload-release-assets: false + + - name: Download all build artifacts + uses: actions/download-artifact@v8 + with: + path: release-artifacts + pattern: release-* + merge-multiple: true + + - name: Generate SHA256SUMS + run: | + set -euo pipefail + cd release-artifacts + ls -lh + sha256sum *.zip > SHA256SUMS + cat SHA256SUMS + + - name: Import GPG signing key + if: env.GPG_PRIVATE_KEY != '' + run: | + set -euo pipefail + printf '%s' "$GPG_PRIVATE_KEY" | gpg --batch --import + gpg --list-secret-keys --keyid-format=long + + - name: Sign SHA256SUMS + if: env.GPG_PRIVATE_KEY != '' + run: | + set -euo pipefail + cd release-artifacts + if [ -n "${GPG_PASSPHRASE:-}" ]; then + printf '%s' "$GPG_PASSPHRASE" \ + | gpg --batch --yes --pinentry-mode loopback \ + --passphrase-fd 0 --armor --detach-sign SHA256SUMS + else + gpg --batch --yes --armor --detach-sign SHA256SUMS + fi + ls -l SHA256SUMS.asc + + - name: Warn if GPG signing was skipped + if: env.GPG_PRIVATE_KEY == '' + run: | + echo "::warning::GPG_PRIVATE_KEY secret not configured; SHA256SUMS will ship unsigned. Add GPG_PRIVATE_KEY (ASCII-armored) and optional GPG_PASSPHRASE to repository secrets to enable signed checksums." + + # SLSA v1 build provenance: signed attestation that these exact + # bytes were produced by this workflow run from this commit. + # Attestations are stored in the GitHub attestations API and can + # be verified with `gh attestation verify --repo `. + - name: Generate SLSA build provenance + uses: actions/attest-build-provenance@v4 + with: + subject-path: | + release-artifacts/*.zip + release-artifacts/SHA256SUMS + nyx-${{ github.event.release.tag_name }}.cdx.json + + - name: Upload to the release + uses: softprops/action-gh-release@v3 + with: + files: | + release-artifacts/*.zip + release-artifacts/SHA256SUMS + release-artifacts/SHA256SUMS.asc + nyx-${{ github.event.release.tag_name }}.cdx.json env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index d81f12ed..c7f2d98e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ /target /.idea +/frontend/node_modules +/src/server/assets/dist +/.nyx +/book +.DS_Store diff --git a/.nyx/triage.json b/.nyx/triage.json new file mode 100644 index 00000000..e63bca2a --- /dev/null +++ b/.nyx/triage.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "decisions": [], + "suppression_rules": [] +} \ No newline at end of file diff --git a/AI-POLICY.md b/AI-POLICY.md new file mode 100644 index 00000000..1ac2c275 --- /dev/null +++ b/AI-POLICY.md @@ -0,0 +1,36 @@ +# AI Contribution Policy + +Nyx accepts contributions that were drafted, refactored, or reviewed with the help of AI tools (LLMs, code assistants, agent systems). We care about the contribution, not the keystrokes. AI changes the failure modes though, so we ask contributors to follow a few rules. + +## What we ask of contributors + +By opening a pull request you affirm that: + +1. **You have read and understood every line you are submitting.** If you cannot explain a change under review, it is not ready to merge. "The model wrote it" is not an answer we will accept for a bug or a regression. +2. **You have the right to submit the code.** AI-generated code is only as license-clean as its training data and its prompt. Do not paste proprietary, GPL-incompatible, or confidential code into an AI tool and then submit the output here. If a model reproduced a substantial verbatim snippet from an identifiable source, disclose it. +3. **You take responsibility for the change.** The DCO `Signed-off-by:` trailer applies the same way to AI-assisted code as it does to hand-written code. You are certifying origin and right-to-submit. +4. **You disclose material AI use in the PR description.** A one-line note is enough. For example, "Drafted with an AI assistant; reviewed and tested by me." Trivial uses like tab-completion, renames, or formatting do not need to be called out. New analysis passes, rule logic, or security-relevant code do. + +## What we look for in review + +AI-assisted PRs face the same bar as any other PR, but reviewers will pay extra attention to: + +- **Tests that exercise the new behavior.** Not just "it compiles." Fixtures under `tests/fixtures/` and assertions in `expected.yaml` are how we verify security logic. +- **Consistency with the existing engine.** Drive-by refactors, speculative abstractions, or parallel implementations of existing passes will usually be rejected, even if they look clean in isolation. +- **Fabricated references.** AI tools sometimes invent function names, crate APIs, CVE IDs, or citations. Every symbol referenced in a PR must exist, and every external claim must be verifiable. +- **Rule metadata honesty.** Rule descriptions, CWE mappings, and severity ratings are part of how downstream users triage. Do not inflate severity or cite CWEs the rule does not actually detect. + +## What we will not accept + +- PRs that are clearly unreviewed agent output, such as changes in the wrong file, nonsense tests, hallucinated APIs, or code that does not compile. +- PRs that add "AI-generated" boilerplate, marketing copy, or filler documentation to pad scope. +- Mass-generated PRs across many unrelated areas in a single change. +- Code that was generated by pasting another project's proprietary source into an AI tool. + +## Project's own use of AI + +For transparency, the README includes an [AI Disclosure](README.md#ai-disclosure) describing where AI was used in Nyx itself. The short version: the analysis engine is predominantly human-written and human-reviewed, while documentation, fixtures, and rule metadata were drafted with AI assistance and audited before landing. We hold outside contributions to the same standard. + +## Questions + +If you are unsure whether a contribution falls inside this policy, open a draft PR or an issue and ask before investing time. We would rather have the conversation early than reject work at review. diff --git a/CHANGELOG.md b/CHANGELOG.md index d042bc9d..34ace941 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,320 +1,217 @@ # Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +All notable changes to Nyx are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). For where Nyx is going, see the [Roadmap](ROADMAP.md). ## [Unreleased] -## [0.4.0] - 2025-02-25 +_No changes yet._ -### Added -- **Low-noise prioritization system** — post-analysis pipeline that reduces noise from high-frequency LOW/Quality findings without hiding security signal. Three-stage process: category filtering, rollup grouping, and LOW budgets. - - **`FindingCategory` enum** (`Security`, `Reliability`, `Quality`) — every `Diag` now carries a `category` field. AST pattern findings derive their category from `PatternCategory` metadata (`CodeQuality` → `Quality`, all others → `Security`). Taint, CFG, and state findings are always `Security`. - - **Category filtering** — Quality-category findings (e.g. `rs.quality.unwrap`, `rs.quality.expect`) are excluded by default. Use `--include-quality` to include them. - - **Rollup grouping** — eligible HIGH-frequency rules (`rs.quality.unwrap`, `rs.quality.expect`, `rs.quality.panic_macro`) are grouped by `(file, rule)` into a single rollup finding with occurrence count and example locations. Canonical location is the first sorted occurrence. Example count controlled by `--rollup-examples` (default 5). - - **LOW budgets** — three configurable limits enforce noise caps: `--max-low` (default 20, total), `--max-low-per-file` (default 1), `--max-low-per-rule` (default 10). Rollups count as one finding for all budgets. High/Medium findings are never dropped. - - **`--all` CLI flag** — disables all prioritization (no category filtering, no rollups, no budgets). - - **`--show-instances `** — bypasses rollup for a specific rule, expanding all individual occurrences. - - **Console suppression footer** — when findings are suppressed, a footer displays the count and active filter values with adjustment hints. - - **`rollup` field on `Diag`** — optional `RollupData` with `count` and `occurrences` (example `Location`s). Serializes to JSON automatically; omitted when not a rollup. - - **SARIF rollup support** — `category` in result properties, rollup count in `properties.rollup.count`, example locations in `relatedLocations`. - - **`max_results` severity stability** — when `max_results` truncation is needed, High findings are kept first, then Medium, then Low. Low findings never displace higher-severity ones. - - New config fields in `[output]`: `include_quality`, `show_all`, `max_low`, `max_low_per_file`, `max_low_per_rule`, `rollup_examples`. - - 14 new unit tests covering category filtering, rollup grouping/examples/canonical, LOW budgets (per-file/per-rule/total), High/Medium immunity, rollup-counts-as-one, show_instances bypass, JSON serialization, and determinism. -- **Pattern-level confidence for AST rules** — each AST pattern in `src/patterns/` now carries an explicit `confidence: Confidence` field (High, Medium, or Low). Confidence is set at the pattern definition site and flows directly into emitted `Diag`s, replacing the old heuristic that inferred AST confidence from severity alone. `compute_confidence()` is retained as a fallback for detectors that don't set confidence (taint, state, legacy). - - Tier A patterns with High/Medium severity → `Confidence::High` (deterministic structural match). - - Tier A patterns with Low severity → `Confidence::Medium` (quality/crypto signals). - - Tier B patterns (heuristic-guarded) → `Confidence::Medium`. - - Example: `rs.quality.expect` now produces `Confidence: High` regardless of its Low severity. -- **Inline per-finding suppressions** — suppress specific findings directly in source code using `nyx:ignore` comments. Two directive forms: `nyx:ignore ` (same line) and `nyx:ignore-next-line ` (next line). Supports comma-separated IDs, wildcard suffixes (`rs.quality.*`), and automatic canonicalization of taint rule IDs (parenthetical suffixes stripped). Comment detection covers all 10 languages with string/raw-string/template-literal guards to avoid false positives. - - **`--show-suppressed` CLI flag** — reveal suppressed findings in output, dimmed with `[SUPPRESSED]` tag. Summary shows `"N issues (M suppressed)"`. In JSON/SARIF mode, suppressed findings include `"suppressed": true` and `"suppression": {...}` metadata fields. - - **`suppressed` and `suppression` fields on `Diag`** — conditionally serialized; JSON output is unchanged when no suppressions are active. - - Suppressed findings are excluded from `--fail-on` exit-code checks and severity counts. - - New module `src/suppress/mod.rs` with 22 unit tests covering all comment styles, string guards, wildcard matching, canonicalization, CRLF, and edge cases. -- **`--min-score ` CLI flag and `output.min_score` config option** — filter out findings whose attack-surface rank score falls below the given threshold. Applied after ranking and severity filtering, before `max_results` truncation. Has no effect when `--no-rank` is used. CLI value overrides config. -- **Attack surface ranking** — deterministic post-analysis scoring layer that prioritizes findings by exploitability. Each `Diag` receives an `f64` score computed from five components: severity base (High=60, Medium=30, Low=10), analysis kind bonus (taint +10 > state +8 > cfg +3/5 > ast 0), evidence strength (+1 per item, +2–6 for source-kind priority), state rule type bonus (+1–6), and a path-validation penalty (−5 for guarded paths). Findings are sorted by descending score before truncation so `max_results` keeps the most important results. Tie-breaking is deterministic by severity, rule ID, file path, line, column, and message hash. - - **`rank_score` and `rank_reason` fields on `Diag`** — optional fields with `#[serde(skip_serializing_if = "Option::is_none")]`; JSON output is unchanged when ranking is disabled. - - **`--no-rank` CLI flag** — disables attack-surface ranking (enabled by default). - - **`output.attack_surface_ranking` config key** — boolean (default `true`) to control ranking via config file. - - **Console score display** — dim `Score: N` appended to each finding's header line when ranking is enabled. - - **New module `src/rank.rs`** — `compute_attack_rank()`, `rank_diags()`, and `sort_key()` functions. Scoring uses only in-memory data; no extra file I/O or graph recomputation. - - 10 new unit tests: ordering correctness (high taint > medium file-io, must-leak > may-leak, taint > cfg-only, state rules, AST lowest at same severity), determinism (input-order-independent), path-validation penalty, and JSON serialization (rank fields omitted when None, present when set). -- **State-model dataflow analysis** — new `src/state/` module implementing a forward worklist dataflow engine over the existing CFG. Tracks per-variable resource lifecycle (`UNINIT`, `OPEN`, `CLOSED`, `MOVED`) via bitset lattice and per-path authentication level (`Unauthed`, `Authed`, `Admin`) as a composable product domain. Detects: - - **Use-after-close** (`state-use-after-close`, High) — variable read/written after its resource handle was closed. - - **Double-close** (`state-double-close`, Medium) — resource handle closed more than once. - - **Must-leak** (`state-resource-leak`, High) — resource acquired but never closed on any exit path. - - **May-leak** (`state-resource-leak-possible`, Medium) — resource open on some but not all exit paths (branch-aware via lattice join). - - **Unauthenticated access** (`state-unauthed-access`, High) — sensitive sink reached without a preceding auth/admin check. -- **State analysis architecture** — six-module design: - - `lattice.rs` — `Lattice` trait (`bot`, `join`, `leq`) for generic fixed-point computation. - - `domain.rs` — `ResourceLifecycle` (bitflag), `ResourceDomainState`, `AuthLevel`, `AuthDomainState`, `ProductState` with lattice impls. - - `symbol.rs` — `SymbolInterner` that builds a string-interning table from CFG node defines/uses; `SymbolId` newtype. - - `transfer.rs` — `DefaultTransfer` function: maps CFG node kinds (Call, Assignment, If, Return) to state transitions using the existing `ResourcePair` definitions from `cfg_analysis::rules`. Emits `TransferEvent` for illegal transitions. - - `engine.rs` — two-phase forward worklist solver: Phase 1 iterates to a fixed point (no events collected to avoid spurious reports from intermediate states); Phase 2 re-applies transfer once over converged states to collect events. Bounded by `MAX_TRACKED_VARS` (64) with guarded degradation. - - `facts.rs` — post-analysis pass: extracts `StateFinding`s from transfer events (use-after-close, double-close) and exit-node state inspection (must-leak, may-leak, unauthed access). -- **`scanner.enable_state_analysis` config option** — opt-in boolean (default `false`) in `ScannerConfig` and `default-nyx.conf`. Requires CFG mode (`full` or `taint`). -- **`Diag.message` field** — optional human-readable message on diagnostic output. State findings carry variable-specific context (e.g. "variable `f` used after close"). Surfaced in console output (dimmed line below the finding), JSON, and SARIF (`message.text` prefers per-finding message over generic rule description). -- **State finding dedup** — when state analysis produces findings on a line, overlapping `cfg-resource-leak` and `cfg-auth-gap` findings on the same line are suppressed (state analysis is more precise). -- **SARIF rule descriptions** for all five state rule IDs. -- 21 integration tests (`tests/state_tests.rs`) with 19 C fixture files covering: use-after-close, double-close, resource leak, clean usage, opt-in gating, may-leak vs must-leak branch semantics, early return, nested branches, both-branches-close, loop convergence, loop use-after-close, handle overwrite, reopen-after-close, multiple handles, conservative join masking, chain operations, malloc/free pairs, straight-line double-close, and message field population. -- 30+ unit tests across state modules: lattice properties, lifecycle join/leq, domain merging, auth-level join, product state composition, may/must leak semantics, symbol interning, and transfer event generation. -- **`--severity ` filter** — replaces `--high-only` with a flexible severity expression supporting single levels (`HIGH`), comma lists (`HIGH,MEDIUM`), and thresholds (`>=MEDIUM`). Parsing is case-insensitive with whitespace tolerance. `SeverityFilter` type with `parse()` and `matches()` in `patterns/mod.rs`. -- **`--mode `** — replaces `--ast-only` and `--cfg-only` with a single canonical analysis mode flag. Enforces mutual exclusivity via clap `ValueEnum`. -- **`--index `** — replaces `--no-index` and `--rebuild-index` with a single flag (default `auto`). -- **`--fail-on `** — CI ergonomics: exit code 1 if any emitted finding meets or exceeds the threshold severity. Example: `--fail-on HIGH`. -- **`--quiet`** — CLI flag to suppress all human-readable status output (equivalent to `output.quiet = true` in config). -- **`--keep-nonprod-severity`** — renamed from `--include-nonprod` for clarity; old name kept as hidden alias. -- **`OutputFormat` enum** — `--format` now uses clap `ValueEnum` with typed `Console`, `Json`, `Sarif` variants (default `Console`). No more empty-string default. -- 10 new unit tests: `SeverityFilter` parsing (single, comma list, threshold, case-insensitive, whitespace, empty rejection, invalid level rejection), `Severity::from_str` rejection of unknown values, and `severity_filter_applied_at_output_stage` integration test verifying that downgraded findings are correctly filtered. -- **AST pattern overhaul** -- all 10 language pattern files (`src/patterns/*.rs`) rewritten with consistent conventions, structured metadata, and validated tree-sitter queries. - - **Pattern schema extensions** -- `PatternTier` (A = structural, B = heuristic-guarded), `PatternCategory` (13 vulnerability classes), and `Hash` on `Severity`. Module-level docs explain conventions and how to add new patterns. - - **Namespaced IDs** -- all pattern IDs follow `..` format (e.g. `java.deser.readobject`, `py.cmdi.os_system`, `js.xss.document_write`). - - **New vulnerability coverage** -- 30+ new patterns across languages: Python deserialization (`pickle.loads`, `yaml.load`, `shelve.open`), Python command injection (`os.system`, `os.popen`), Python weak crypto (`hashlib.md5/sha1`), Java reflection (`Method.invoke`), Java weak digest (`MessageDigest.getInstance("MD5")`), Java XSS (`getWriter().println`), Go TLS misconfiguration (`InsecureSkipVerify: true`), Go SQL concat, Go hardcoded secrets, Go gob deserialization, PHP `assert()` code exec, PHP `include $var` path traversal, PHP weak crypto (`md5`/`sha1`/`rand`), C/C++ `popen()`, C/C++ format-string with variable first arg, C++ `const_cast`, Ruby `Digest::MD5`. - - **Query fixes** -- fixed 11 broken tree-sitter queries: Java `object_creation_expression` used wrong type node (`identifier` → `type_identifier`), C++ `reinterpret_cast`/`const_cast` used non-existent node types (→ `template_function` match), Ruby backtick used `shell_command` (→ `subshell`), Python SQL used `binary_expression` (→ `binary_operator`), TypeScript `as any` used inaccessible field (→ positional child), PHP patterns missing `argument` wrapper nodes, Rust `unsafe fn` regex used unsupported `\b`. - - **No-duplicate rule** -- patterns that overlap with taint sinks use distinct ID namespaces and are documented; dedup in `ast.rs` prevents duplicate findings at the same location. - - **Severity recalibration** -- `unwrap`/`expect`/`panic!`/`todo!` moved to Low (filtered by default `min_severity`). Security patterns remain High/Medium. -- **Pattern test suite** (`tests/pattern_tests.rs`, 26 tests) -- sanity checks (unique IDs, query compilation, non-empty descriptions, naming convention, severity distribution), positive fixture tests (10 languages), and negative fixture tests (10 languages verifying no false positives on safe code). -- **Pattern test fixtures** -- positive and negative fixture files for all 10 languages under `tests/fixtures/patterns//`. -- **Real world test suite** — comprehensive fixture-based test suite (`tests/real_world_tests.rs`) with ~180 test fixtures across all 10 supported languages (C, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, TypeScript). Each fixture has an `.expect.json` file declaring expected findings (with `must_match` for hard requirements and soft expectations for aspirational coverage). Fixtures are organized by analysis type (`taint/`, `state/`, `cfg/`, `mixed/`) under `tests/fixtures/real_world//`. A single parameterized test runner validates all fixtures in both `full` and `ast` modes, with verbose output via `NYX_TEST_VERBOSE=1`. +## [0.5.0] — 2026-04-24 +The biggest release since launch. The taint engine was rebuilt on top of an SSA IR, cross-file analysis was deepened across the board, and Nyx now ships a local web UI for triaging findings without leaving your machine. -### Changed -- **Console header line now includes confidence** — the finding header shows score and confidence together as a parenthesized suffix: `(Score: 36, Confidence: Medium)`. The previous standalone `Confidence: ...` body line is removed. All four combinations are handled (both, score-only, confidence-only, neither). -- **Confidence display uses Title Case** — `Confidence::Display` now renders as `Low`, `Medium`, `High` (previously lowercase). -- **Breaking**: Config and data directory changed from `dev.ecpeter23.nyx` to `nyx` (e.g. `~/Library/Application Support/nyx/` on macOS). Existing config files (`nyx.conf`, `nyx.local`) and SQLite indexes at the old path will not be picked up automatically — copy them to the new location or re-run `nyx scan` to regenerate. -- **Improved diagnostic output formatting** — overhauled console renderer for a professional, security-tool-grade look: - - Severity is now the strongest visual anchor: HIGH (bold red with ✖), MEDIUM (bold orange ⚠), LOW (muted blue-gray ●). Fewer colors, clearer hierarchy. - - File paths rendered dim blue (never brighter than severity). - - Taint flow messages now use `→` arrow between shortened source/sink instead of backtick-wrapped text. - - Evidence values (Source, Sink) no longer wrapped in backticks — cleaner rendering with no risk of broken backtick spans across wrapped lines. -- **Fixed taint expression rendering** — multi-line sink/source call chains are now normalised before display: - - Whitespace collapsed (`foo() .bar()` → `foo().bar()`). - - Newlines joined into single-line canonical form. - - Spacing artefacts between `)` and `.` in method chains cleaned up. - - Long chains truncated with `…` ellipsis. -- Added `terminal_size` dependency for terminal-width-aware line wrapping. -- **Monotone forward dataflow taint analysis** — replaced the BFS taint engine in `taint/mod.rs` with a proper worklist-based forward dataflow analysis where termination is guaranteed by lattice finiteness. The generic `Transfer` trait in `state/engine.rs` now powers both the resource lifecycle/auth analysis and taint analysis. - - **`TaintState` lattice** (`taint/domain.rs`) — bounded abstract state with per-variable `VarTaint` (Cap bitflags + multi-origin tracking via `SmallVec<[TaintOrigin; 2]>`), dual validation bitsets (`validated_must` for intersection/all-paths, `validated_may` for union/any-path), and monotone `PredicateSummary` for contradiction pruning. Variables stored in sorted `SmallVec` keyed by `SymbolId` for O(n) merge-join. Lattice height bounded at ~8700 (7-bit Cap × 64 vars + validation bits + predicate bits). - - **`TaintTransfer`** (`taint/transfer.rs`) — implements `Transfer` with identical taint logic to the old BFS (source → propagation → sanitization → sink check). Callee resolution unchanged (local → global same-lang → interop edges). Emits `TaintEvent::SinkReached` events during Phase 2 of the engine. - - **JS/TS two-level solve** — prevents cross-function taint leakage (the main source of state explosion in the old BFS) while preserving global-to-function flows. Level 1 solves top-level code; Level 2 solves each function seeded with read-only top-level taint via `global_seed`. - - **Monotone predicate tracking** — path-sensitivity predicates moved from per-BFS-item `PathState` (which duplicated state exponentially) to monotone `PredicateSummary` in the lattice. Contradiction pruning uses `known_true & known_false` bit intersection (NullCheck/EmptyCheck/ErrorCheck only), which is both more precise and guaranteed monotone. - - **Multi-origin tracking** — each tainted variable tracks up to 4 `TaintOrigin` (node + `SourceKind`), enabling multiple findings when distinct sources flow to the same sink. - - **Guaranteed termination** — no more `MAX_BFS_ITERATIONS`/`MAX_SEEN_STATES` safety nets needed (though a 100K worklist iteration budget remains as defense-in-depth). Convergence follows from finite lattice height × finite CFG edges. - - **`analyse_file()` signature unchanged** — `Finding` struct, `Diag` conversion, and all callers are unaffected. -- **Generic dataflow engine** (`state/engine.rs`) — `run_forward()` and `DataflowResult` are now generic over any `S: Lattice` + `T: Transfer`. `DefaultTransfer` (resource lifecycle) implements `Transfer`; `TaintTransfer` implements `Transfer`. Per-domain iteration budget and `on_budget_exceeded` hooks added. -- **`path_state.rs` simplified** — removed `PathState`, `Predicate`, `MAX_PATH_PREDICATES`, `state_hash()`, `priority()` structs/methods. Kept `PredicateKind` enum and `classify_condition()` function (used by the new transfer for predicate classification). -- **Removed BFS infrastructure** — `taint_hash()`, BFS `Item` struct, `pred` predecessor map, two-tier seen-state map, and all bail-out constants (`MAX_BFS_ITERATIONS=200K`, `MAX_SEEN_STATES=100K`, `PATH_SENSITIVITY_NODE_LIMIT=500`, `PATH_SENSITIVITY_QUEUE_LIMIT=10K`, `MAX_PATH_VARIANTS_PER_KEY=4`) are no longer needed and have been removed. -- **Severity filtering applied at output stage** — `--severity` (and legacy `--high-only`) filtering is now applied ONCE in `scan::handle()` after all severity normalization (nonprod downgrades, dedup, truncation). Previously `--high-only` only filtered AST patterns during analysis; taint and CFG findings bypassed the filter entirely. -- **`--format` default is `console`** — previously defaulted to empty string, requiring fallback logic. -- **All status/progress output goes to stderr** — "Checking...", "Finished in...", config notes, and progress bars now use `eprintln!`/stderr exclusively. JSON and SARIF output is stdout-only. -- **`Severity::from_str` returns `Err` for unknown values** — previously returned `Ok(Severity::Low)` for any unrecognized input. -- **Deprecated CLI flags preserved as hidden aliases** — `--high-only`, `--no-index`, `--rebuild-index`, `--ast-only`, `--cfg-only`, and `--include-nonprod` are hidden from help but still functional, mapping to their canonical replacements. -- **Path-sensitive taint analysis** -- the BFS taint engine now carries a `PathState` (bounded set of branch predicates) alongside the taint map. When the BFS traverses a True or False edge from an `If` node, it records a `Predicate` with the condition's variables, kind, and polarity. This enables two new capabilities: - - **Infeasible path pruning** -- paths with contradictory predicates (e.g. `if x.is_none() { return; } if x.is_none() { sink }`) are detected and pruned, eliminating false positives on code guarded by redundant null/empty/error checks. Contradiction detection is conservative: only whitelisted kinds (`NullCheck`, `EmptyCheck`, `ErrorCheck`) with single-variable predicates are pruned. - - **Validation guard annotation** -- when all tainted variables reaching a sink are guarded by a `ValidationCall` predicate (e.g. `if validate(&x) { sink }` or `if !validate(&x) { return; } sink`), the finding is annotated with `path_validated: true` and `guard_kind: ValidationCall`. This metadata is surfaced in JSON and console output without changing severity. -- **Condition metadata on CFG nodes** -- `NodeInfo` now carries `condition_text`, `condition_vars`, and `condition_negated` for `If` nodes, extracted during CFG construction. Negation detection handles `!expr`, `not expr`, and Ruby `unless`. Classification of condition text into `PredicateKind` (NullCheck, EmptyCheck, ErrorCheck, ValidationCall, SanitizerCall, Comparison, Unknown) is conservative: call-based kinds require `(` in the text and a matching callee token. -- **`path_validated` and `guard_kind` fields on `Diag`** -- taint findings carry path-sensitivity metadata in JSON output (fields omitted when not set) and console output (suffix line `Path guard: ValidationCall` when present). Finding IDs are unchanged for dedup stability. -- **`smallvec` dependency** -- used for inline-allocated predicate storage in `PathState` (avoids heap allocation for the common case of ≤4 predicates per path). -- **Interprocedural call graph** -- a whole-program `CallGraph` (`petgraph::DiGraph`) is now built between Pass 1 and Pass 2 of every taint-enabled scan. Each function definition is a node; resolved callee relationships are edges. The graph is constructed from the merged `GlobalSummaries` and is available in both the filesystem and indexed scan paths. -- **Three-valued callee resolution** -- `CalleeResolution` enum distinguishes `Resolved(FuncKey)`, `NotFound`, and `Ambiguous(Vec)`. Ambiguous callees (same name in multiple namespaces, caller in a third namespace) are tracked separately from missing callees for diagnostics. -- **Shared resolution helper** -- `GlobalSummaries::resolve_callee_key()` centralizes same-language callee resolution with arity-aware filtering and namespace disambiguation. Both the call graph builder and the taint engine now use the same resolution logic. -- **Callee-name normalization** -- `normalize_callee_name()` extracts the last segment from qualified callee text (`"env::var"` → `"var"`, `"obj.method"` → `"method"`) before resolution. The raw call-site text is preserved on graph edges for diagnostics. -- **SCC / topological analysis** -- `CallGraphAnalysis` computes strongly connected components via Tarjan's algorithm and exposes a callee-first (leaves-first) topological ordering of SCC indices, ready for future bottom-up taint propagation. -- **Call graph tracing** -- `tracing::info!` log with node count, edge count, unresolved-not-found count, unresolved-ambiguous count, and SCC count is emitted after every call graph build. -- 8 new path-sensitivity integration tests: early-return validation guard, failed-validation branch, contradictory null-check pruning, if/else validation annotation, sanitize-one-branch regression, path-state budget graceful degradation, unknown-predicate non-pruning, multi-var non-pruning. -- 35 new unit tests in `taint::path_state`: classify_condition variants, PathState push/truncation, contradiction detection (whitelisted kinds, single-var only), has_validation_for semantics, state_hash determinism, priority ordering. -- 11 new unit tests: callee normalization, same-name-different-namespaces resolution, cross-language isolation, arity separation, recursive SCC detection, not-found vs ambiguous diagnostics, diamond topo ordering, interop edge resolution, namespace normalization consistency, and raw call-site preservation. -- **Edge-aware taint traversal** -- `analyse_file()` now uses `cfg.edges(node)` instead of `cfg.neighbors(node)`, inspecting `EdgeKind` on each edge. This is required for predicate recording but also makes the taint engine aware of the CFG's branch structure for the first time. -- **Two-tier seen-state deduplication** -- the BFS seen-state map changed from `HashSet<(NodeIndex, u64)>` to a `HashMap` keyed by `(NodeIndex, taint_hash)` mapping to a bounded list of `(path_hash, priority)` pairs. At most `MAX_PATH_VARIANTS_PER_KEY` (4) path variants are tracked per taint state, with deterministic eviction preferring non-truncated states with fewer predicates. -- **Finding deduplication** -- taint findings are now deduplicated by `(sink, source)` pair after analysis, preferring findings with `path_validated = true` (most informative metadata). -- **`taint::Finding` struct** -- added `path_validated: bool` and `guard_kind: Option` fields. Code that constructs `Finding` directly must include these fields. -- **`Diag` struct** -- added `path_validated: bool` and `guard_kind: Option` fields. Both use `#[serde(skip_serializing_if)]` to omit from JSON when not set. -- **`taint::resolve_callee()` refactored** -- the global resolution step now delegates to `GlobalSummaries::resolve_callee_key()` and applies `normalize_callee_name()` before lookup, unifying resolution logic with the call graph builder. -- **Label rules expanded across 8 languages:** - - **Go** — added `r.URL.Query`, `r.URL.Query.Get`, `Request.FormValue`, `Request.URL` sources; `filepath.Clean`/`filepath.Base` sanitizers; `fmt.Fprintf`/`fmt.Sprintf`/`fmt.Printf` format-string sinks; `os.Open`/`os.OpenFile`/`os.Create`/`ioutil.ReadFile`/`os.ReadFile` FILE_IO sinks; `template.HTML` HTML sink; `db.QueryRow`/`db.Prepare` SQL sinks. - - **PHP** — sources now match both `$_GET` and `_GET` (without `$` prefix, matching collect_idents stripping); added `$_FILES`/`_FILES`, `$_SERVER`/`_SERVER`, `$_ENV`/`_ENV` sources; `eval`/`assert` shell sinks; `include`/`include_once`/`require`/`require_once` FILE_IO sinks; `unserialize` sink; `move_uploaded_file`/`copy`/`file_put_contents`/`fwrite` FILE_IO sinks; `basename` FILE_IO sanitizer; `query` SQL sink. - - **Java** — added `readObject`/`readLine` sources; `ProcessBuilder` shell sink; `Class.forName` reflection sink; `println`/`print`/`write` HTML sinks. - - **Python** — added `send_file`/`send_from_directory` FILE_IO sinks; `os.path.realpath` FILE_IO sanitizer; `open` changed from source to FILE_IO sink (fixes source/sink conflict for path traversal detection). - - **Ruby** — `params` source detection now works via subscript handling. - - **Rust** — added `fs::read_to_string`/`fs::write`/`fs::read`/`File::open`/`File::create` as FILE_IO sinks; `fs::read_to_string` removed from sources (was source/sink conflict). - - **C/C++** — added `fopen`/`open` as FILE_IO sinks. -- **Ruby `rb.cmdi.system_interp` pattern broadened** — no longer requires string interpolation in arguments; now matches any `system`/`exec` call, promoted from Tier B to Tier A. -- **C++ `cpp.cmdi.popen` pattern added** — `popen()` command execution detection for C++, using the language-namespaced ID (the C pattern retains `c.cmdi.popen`). -- **Test config enables state analysis** — `test_config()` now sets `enable_state_analysis = true`. +> Heads-up: false positives or regressions on cross-file flows are possible. Please open an issue with a minimal reproduction if you hit one. +### Highlights -### Fixed -- **Taint source kind misclassified as "unknown" for non-call sources** — source-bearing nodes with `CallWrapper` or `Assignment` kind (e.g. `userInput = req.query.data`) had their `callee` field set to `None` because the CFG builder only populated `callee` for `StmtKind::Call` nodes. This caused `infer_source_kind()` to receive an empty string, failing to match any keyword pattern and defaulting to `SourceKind::Unknown`. Fixed by also setting `callee` when a label (Source/Sink/Sanitizer) is detected, so the extracted member text (e.g. "req.query") flows through to source kind inference. Affects severity classification and diagnostic output for property-access sources across all languages. -- **Full KINDS map audit across all 10 languages** — 89 missing tree-sitter node types added to KINDS maps so the CFG builder no longer silently drops code inside switch/case, try/catch/finally, class bodies, closures/lambdas, and other container nodes. Previously, any node not in a language's KINDS map hit the `build_sub` fallback which created a terminal Seq node without recursing into children, effectively making all wrapped code invisible to analysis. - - **C** (+3): `switch_statement`, `case_statement`, `labeled_statement` - - **C++** (+7, 1 fix): `switch_statement`, `case_statement`, `labeled_statement`, `throw_statement` (Return), `try_statement`, `catch_clause`, `lambda_expression`; **critical fix**: `namespace_definition` changed from `Trivia` to `Block` (all function definitions inside namespaces were silently dropped) - - **Java** (+11): `do_statement` (While), `throw_statement` (Return), `switch_expression`, `switch_block`, `switch_block_statement_group`, `try_statement`, `catch_clause`, `finally_clause`, `lambda_expression`, `constructor_body`, `static_initializer` - - **JavaScript** (+11): `switch_statement`, `switch_body`, `switch_case`, `switch_default`, `try_statement`, `catch_clause`, `finally_clause`, `class_declaration`, `class` (expression), `class_body`, `export_statement` - - **TypeScript** (+13): all JS switch/try/class entries plus `abstract_class_declaration`, `export_statement`, `enum_declaration` (Trivia) - - **PHP** (+11): `do_statement` (While), `throw_expression` (Return), `switch_statement`, `switch_block`, `case_statement`, `default_statement`, `try_statement`, `catch_clause`, `finally_clause`, `colon_block`, `class_declaration` - - **Python** (+7): `try_statement`, `except_clause`, `finally_clause`, `class_definition`, `decorated_definition`, `match_statement`, `case_clause` - - **Ruby** (+11): `until` (While), `begin`, `rescue`, `ensure`, `case`, `when`, `class`, `module`, `singleton_method` (Function), `do`, `block` - - **Go** (+10): `expression_switch_statement`, `type_switch_statement`, `expression_case`, `type_case`, `default_case`, `select_statement`, `communication_case`, `go_statement`, `defer_statement`, `func_literal` (Function) - - **Rust** (+5, 1 removal): `closure_expression`, `async_block`, `impl_item`, `trait_item`, `declaration_list`; removed dead `loop_statement` entry (node doesn't exist in tree-sitter-rust 0.24.0) -- Removed unused `Kind::LoopBody` enum variant from `labels/mod.rs` (no arm in `build_sub`, last reference was the dead Rust `loop_statement` entry) -- **CFG: `else_clause` not recursed into for C/C++** — tree-sitter's C and C++ grammars wrap else bodies in an `else_clause` node. This node was missing from both languages' `KINDS` maps, so the CFG builder's fallback arm treated it as a terminal `Seq` node without descending into children. All statements inside else blocks (e.g. `fclose(f)`) were silently dropped from the CFG, causing false-positive resource leak and incorrect branch analysis. Fixed by mapping `"else_clause" => Kind::Block` in `src/labels/c.rs` and `src/labels/cpp.rs`. -- **CFG: `else_clause` missing from Rust, JavaScript, TypeScript, Python, PHP KINDS maps** — same bug class as C/C++: tree-sitter wraps else bodies in an `else_clause` node that was not in KINDS, silently dropping all code inside else blocks from the CFG. Fixed by mapping `"else_clause" => Kind::Block` in all five languages. Also added `"elif_clause" => Kind::Block` (Python), `"else_if_clause" => Kind::Block` (PHP), and `"elsif" => Kind::If` (Ruby) to handle chained elif/elsif nodes. -- **Rust KINDS using wrong tree-sitter node names** — tree-sitter-rust uses `_expression` suffixes (not `_statement`) for `while`, `for`, and `return` nodes. The existing `while_statement`, `for_statement`, and `return_statement` entries were dead code (0 grammar matches). Added `while_expression`, `for_expression`, and `return_expression` mappings. -- **Rust `match_expression`, `match_block`, `match_arm`, `unsafe_block` missing from KINDS** — these wrapper nodes were not mapped, causing all code inside match arms and unsafe blocks to be silently dropped from the CFG. Mapped to `Kind::Block` for sequential traversal. -- **TypeScript missing `throw_statement` and `do_statement`** — `throw` was mapped in JavaScript but not TypeScript; `do_statement` (do-while loops) was missing from both JS and TS. Added `"throw_statement" => Kind::Return` and `"do_statement" => Kind::While` to both languages. -- **Python `raise_statement` and `with_statement` missing from KINDS** — `raise` terminates the current path (mapped to `Kind::Return`); `with` wraps code in a context manager (mapped to `Kind::Block`). Both were silently dropping enclosed code. -- **Dead KINDS entries removed** — `"for_of_statement"` in TypeScript (0 grammar matches; TS inherits `for_in_statement` from JS) and `"method_call"` in Ruby (0 grammar matches; Ruby only has `call`). -- **`--high-only` emitting Low/Medium taint and CFG findings** — severity filter was only applied to AST pattern queries during analysis. Taint findings (whose severity derives from `SourceKind`) and CFG structural findings passed through unfiltered. The filter is now applied at the final output stage after all severity normalization, ensuring `--severity HIGH` never emits downgraded Medium/Low findings. -- **JSON/SARIF output contaminated with status messages on stdout** — status messages ("Checking...", "Finished in...") used `println!` and appeared in stdout alongside machine output. Now all status goes to stderr. -- **CFG: False edge to then-block exits in no-else if statements** -- previously, `if (cond) { body }` without an else block created a `False` edge from the condition node directly to the then-block's exit nodes. This made the false path appear to traverse the then-block, causing incorrect predicate polarity in path-sensitive analysis and duplicate taint findings with contradictory metadata. The CFG now creates a synthetic pass-through `Seq` node for the false path with an explicit `False` edge from the condition, correctly modeling "skip the then-block." This also fixes the frontier: previously, the no-else non-terminating case duplicated `then_exits` in the frontier (`then_exits ++ then_exits.clone()`); it now correctly produces `then_exits ∪ [pass_through]`. -- **Taint BFS non-termination on large JS files** — the BFS taint engine in `taint/mod.rs` had no global iteration bound. The seen-state deduplication keyed on `(node, taint_hash)`, so every distinct taint map at a CFG node was treated as a novel state. In files with loops and many tainted variables (e.g. a 2,200-line JS file with 18+ top-level variables tainted via `window.location.search`), each loop iteration produced a slightly different taint map, causing the BFS to revisit loop bodies indefinitely. Both `--no-index` and `--rebuild-index` scans hung near completion (progress showed e.g. 87/88 files). Fixed by adding two hard bounds: `MAX_BFS_ITERATIONS` (200,000 queue pops) and `MAX_SEEN_STATES` (100,000 unique `(node, taint_hash)` entries in the seen-state map). When either limit is reached the analysis bails out gracefully and returns all findings collected so far. A `tracing::warn!` is emitted on iteration-limit bail-out. Normal files are unaffected (typical BFS uses <1,000 iterations). -- **Rust `if let` / `while let` taint propagation** — the CFG builder now extracts pattern bindings from `let_condition` nodes as variable definitions in `def_use()`, and classifies the value expression (e.g. `env::var("CMD")`) for source/sink labels in `push_node()`. Previously, `if let Ok(cmd) = env::var("CMD") { Command::new("sh").arg(&cmd) }` produced no taint finding because `cmd` was never recognized as a tainted definition. Now correctly detects taint flow through `if let` and `while let` bindings. -- **C++ `popen` pattern ID collision** — renamed `c.cmdi.popen` to `cpp.cmdi.popen` in C++ patterns to fix a cross-language duplicate ID that caused `all_pattern_ids_are_globally_unique` test failure. -- **State analysis early-return leak duplication** — `extract_findings` in `state/facts.rs` now skips early-return nodes when checking for resource leaks, only inspecting the synthesized function exit node. Previously, early-return nodes with path-specific state (OPEN only) emitted `state-resource-leak` alongside the correct `state-resource-leak-possible` from the merged exit state. -- **Severity filter bug** — `min_severity` comparison in `ast.rs` was inverted (`<=` instead of `>`), causing all AST patterns at the minimum severity level to be silently dropped. With the default `min_severity = Low`, all Low-severity patterns (`.unwrap()`, `.expect()`, `panic!`, `todo!`, `mem::forget`, Go crypto patterns, narrow casts) were never reported. Fixed 29 test cases. -- **Nested function analysis** — CFG builder now recurses into function expressions passed as call arguments (e.g., Express `app.get('/path', function(req, res) { ... })`, Sinatra `get '/path' do...end`). Added `collect_nested_function_nodes()` to discover `Kind::Function` nodes inside `CallWrapper`/`CallFn` AST subtrees. Also added `function_expression` to JS/TS KINDS maps, and `do_block`/`block` as `Kind::Function` in Ruby for Sinatra/Rails blocks. Anonymous functions now get unique names (``) to prevent scope collisions in JS two-level taint solve. -- **Chained method call classification** — `classify()` now normalizes chained calls like `r.URL.Query().Get` by stripping internal `()` between `.` segments, producing `r.URL.Query.Get`. Suffix matching is attempted against both the original head and the normalized form, fixing Go HTTP handler source detection and similar patterns. -- **Subscript access source detection** — `first_member_label` and `first_member_text` now handle `subscript_expression`, `subscript`, and `element_reference` nodes, enabling source classification for PHP `$_GET['cmd']`, Ruby `params[:cmd]`, and Python `os.environ['KEY']`. -- **Return-statement call extraction** — `Kind::Return` added to the node types that extract inner call identifiers via `first_call_ident`, fixing cases like `return send_file(path)` where the sink was not classified. -- **Nested call classification** — new `find_classifiable_inner_call()` tries all nested calls when the outermost one doesn't classify, fixing `str(eval(expr))` where `eval` is a sink wrapped in a non-sink call. -- **Java `new` expression text extraction** — added `type` field fallback in `push_node` and `first_call_ident` for `CallFn` nodes, fixing `new ProcessBuilder(...)` not matching as a sink. -- **Function body lookup for anonymous functions** — `Kind::Function` handler now falls back to finding a `Kind::Block` child when `child_by_field_name("body")` returns None, supporting JS/TS anonymous function expressions and Ruby blocks. -- **Function-level resource leak detection** — `extract_findings` in `state/facts.rs` now inspects per-function Return nodes for leaked resources, not just the file-level Exit node. Previously, variables from one function could be overwritten by same-named variables in subsequent functions, masking leaks. -- **Use-after-free for memory functions** — added `strcpy`, `strncpy`, `memcpy`, `memmove`, `memset`, `memcmp`, `strcmp`, `strncmp`, `strlen`, `sprintf`, `snprintf` to `RESOURCE_USE_PATTERNS` in state analysis, enabling use-after-free detection for common C/C++ string and memory functions. +- **New SSA-based taint engine.** Block-level worklist analysis over a pruned SSA IR, replacing the legacy BFS engine across all 10 languages. More precise, easier to extend, and the foundation for everything else in this release. +- **Cross-file analysis.** Function summaries (including the new SSA summaries) flow across files via SQLite-backed persistence. Callee bodies can be inlined for context-sensitive analysis (k=1) and walked symbolically across file boundaries. +- **Symbolic execution layer.** Candidate findings are walked symbolically from source to sink, producing concrete attack witnesses, pruning infeasible paths, and (optionally) handing constraints off to Z3. +- **Local web UI (`nyx serve`).** React + Vite frontend for browsing findings, viewing flow paths, and triaging results. Triage decisions persist to `.nyx/triage.json` so they version with your code. +- **Hostile-repo hardening.** Path containment, loopback-only serving, CSRF tokens, bounded artifact reads. Safe to run on untrusted code. +- **Tighter false-positive controls.** Type-aware sink suppression, abstract interpretation (intervals + string prefixes), constraint solving, allowlist and type-check guard recognition, and confidence scoring on every finding. -## [0.3.0] - 2026-02-25 +### Engine -### Added -- **Configurable analysis rules** -- users can define custom sources, sanitizers, and sinks per language via TOML config (`nyx.local`) or the new `nyx config` CLI. Config rules take priority over built-in rules, so project-specific sanitizers like `escapeHtml()` are recognized without code changes. -- **`nyx config` CLI subcommand** with four actions: - - `show` -- print effective merged configuration as TOML - - `path` -- print config directory path - - `add-rule --lang --matcher --kind --cap ` -- append a label rule to `nyx.local` - - `add-terminator --lang --name ` -- append a terminator function to `nyx.local` -- **`--include-nonprod` CLI flag** -- by default, findings in non-production paths (tests, vendor, benchmarks, examples, fixtures, build scripts, `*.min.js`) are now downgraded by one severity tier (High→Medium, Medium→Low). Pass `--include-nonprod` to restore original severity. Controlled by `scanner.include_nonprod` config key. -- **`SourceKind` enum** in the taint engine -- taint findings now carry a `source_kind` field (`UserInput`, `EnvironmentConfig`, `FileSystem`, `Database`, `Unknown`) inferred from the source callee name and capabilities. Severity is based on source kind rather than hardcoded to High: filesystem and database sources produce Medium, user input and environment sources produce High. -- **Configurable terminators** -- functions like `process.exit()` can be declared as terminators per language; the CFG treats them as dead ends, preventing false positives on code after termination calls. -- **Event handler callback suppression** -- functions passed as arguments to configured event handler calls (e.g. `addEventListener`) are no longer flagged as unreachable code. -- **Exec-path guard rules** -- calls to `which`, `resolve_binary`, `find_program`, `lookup_path`, and `shutil.which` are recognized as guards for `SHELL_ESCAPE` sinks. If such a guard dominates a shell-exec sink, the `cfg-unguarded-sink` finding is suppressed. -- **One-hop constant binding trace** -- the constant-arg sink suppression now traces one hop through the CFG. If a sink's variable was defined by a node with no uses and no Source label, it is treated as constant. Fixes false positives on patterns like `cmd = "git"; subprocess.run([cmd, "status"])`. -- **Evidence-based severity in cfg-only mode** -- when taint analysis is not active (no global summaries and no taint findings), structural `cfg-unguarded-sink` findings without source-derived evidence are downgraded from Medium to Low. -- **FileResponse ownership transfer** -- file handles passed to consuming sinks (`FileResponse`, `StreamingHttpResponse`, `send_file`, `make_response`) are no longer flagged as resource leaks. -- **Lock-not-released refinement** -- mutex findings now require an explicit `.acquire()` or `.lock()` call on the acquired variable. Constructor-only patterns like `lock = threading.Lock()` without acquire no longer produce `cfg-lock-not-released`. -- **Python `connect`/`cursor` exclusions** -- `signal.connect`, `event.connect`, and `.register` are excluded from the Python db-connection acquire pattern, preventing false `cfg-resource-leak` findings on Django signal handlers and event registrations. -- **`location.href` sink rules** for JavaScript -- `location.href`, `window.location.href`, and `document.location.href` assignments are classified as `Sink(URL_ENCODE)`. -- **`throw_statement` as terminator** in JavaScript -- `throw` now terminates the current block in the CFG (mapped to `Kind::Return`), preventing false `cfg-error-fallthrough` findings after throw statements. -- **`Cap::FMT_STRING` capability bit** -- new bitflag (`0b0100_0000`) for format-string vulnerabilities, distinct from HTML injection. Sources using `Cap::all()` automatically match. -- **Python taint sources** -- `open`, `argparse.parse_args`, `urllib.request.urlopen`, `requests.get`, `requests.post` added as `Cap::all()` sources for broader attack-surface coverage. -- **SARIF 2.1.0 output format** (`-f sarif`) -- produces spec-compliant Static Analysis Results Interchange Format JSON on stdout. Includes tool metadata, deduplicated rule definitions with descriptions, severity-to-level mapping (`High→error`, `Medium→warning`, `Low→note`), and physical locations with relative paths. Suitable for GitHub Code Scanning, Azure DevOps, and other SARIF-consuming CI tools. -- **Progress bars** via `indicatif` -- file discovery, Pass 1, and Pass 2 each display a progress bar on stderr with file counts and ETA. Bars are automatically hidden when output format is `json`/`sarif` or quiet mode is enabled. Index building also shows progress. -- **Quiet mode** (`output.quiet = true`) -- suppresses all status messages (config notes, "Checking...", "Finished in...") on stderr. Useful for CI pipelines and scripted invocations. -- **Resource leak detection for Python, Ruby, PHP, JavaScript, and TypeScript** -- new acquire/release pairs: Python (`open`/`.close`, `socket`/`.close`, `connect`/`.close`, `threading.Lock`/`.release`), Ruby (`File.open`/`.close`, `TCPSocket.new`/`.close`, `.lock`/`.unlock`), PHP (`fopen`/`fclose`, `mysqli_connect`/`mysqli_close`, `curl_init`/`curl_close`), JS/TS (`fs.open`/`fs.close`, `createReadStream`/`.close`). -- **Walker config wired up** -- `performance.max_depth`, `scanner.one_file_system`, `scanner.require_git_to_read_vcsignore`, and `scanner.excluded_files` are now enforced during directory walking (previously parsed but ignored). -- **`database.vacuum_on_startup`** -- when enabled, runs SQLite VACUUM before indexed scans to reclaim space. -- 31 new unit tests covering config round-trip, rule merging, classify extension, href classification, throw termination, terminator detection, config sanitizer suppression, Python/C++ precision, unreachable+unguarded dedup, resource leak detection, one-hop constant binding, exec-path guards, cfg-only severity downgrade, FileResponse ownership, lock constructor suppression, signal.connect exclusion, nonprod path detection, and severity downgrade. +- SSA IR with dominance-frontier phi insertion. The optimization pipeline runs constant propagation, branch pruning, copy propagation, alias analysis, DCE, type facts, and points-to in sequence. +- Multi-label classification — a single API can carry both Source and Sink labels (e.g. PHP `file_get_contents`, Java `readObject`). +- Gated sinks — `setAttribute`, `parseFromString`, etc. only activate when the constant attribute argument is dangerous, and only the payload argument is treated as taint-bearing. +- Container taint with per-index precision and bounded points-to. Aliased containers share heap identity correctly. +- Loop-aware analysis: induction-variable pruning, widening at loop heads, bounded unrolling in symex. +- Path-sensitive phi evaluation propagates validation when all tainted predecessors are guarded. +- Per-return-path summaries decompose function effects when paths produce different taint behavior. +- Cross-file SCC fixed-point — mutually recursive functions across files now reach a joint convergence. +- Demand-driven backwards analysis (off by default) annotates findings with cutoff diagnostics. +- Direction-aware engine notes (`UnderReport`, `OverReport`, `Bail`) flow into confidence scoring, ranking, and the new `--require-converged` strict mode. -### Changed -- **`taint::Finding` struct** -- added `source_kind: SourceKind` field. Code that constructs `Finding` directly must include this field. -- **`AnalysisContext` struct** -- added `taint_active: bool` and `analysis_rules` fields. Code that constructs `AnalysisContext` directly must include these fields. -- **`ScannerConfig` struct** -- added `include_nonprod: bool` field (default `false`). Deserialization is unaffected due to `#[serde(default)]`. -- **`proto_pollution` AST pattern severity** -- downgraded from High to Low. The AST-only pattern is a structural indicator; the taint engine separately produces High findings when attacker-controlled data flows to `__proto__`. -- **`location_href_assignment` AST pattern** -- constrained to require a known browser global object (`window`, `location`, `document`, `self`, `top`, `parent`, `frames`). Prevents `el.href = val` from matching; only `window.location.href = val` and similar patterns trigger the finding. -- **Taint finding severity** -- no longer hardcoded to High. Severity is now derived from `SourceKind`: UserInput/EnvironmentConfig/Unknown → High, FileSystem/Database → Medium. -- **C/C++ sink reclassification** -- `printf`/`fprintf` moved from `Sink(HTML_ESCAPE)` to `Sink(FMT_STRING)`. `std::cout`, `std::cerr`, `std::clog` removed from sinks entirely (output/logging, not injection vectors). `sprintf`/`strcpy`/`strcat` remain `Sink(HTML_ESCAPE)`. -- `classify()` now accepts an optional `extra: Option<&[RuntimeLabelRule]>` parameter; config-defined rules are checked first (higher priority) before built-in static rules. -- `build_cfg()`, `build_sub()`, and `push_node()` accept optional `LangAnalysisRules` for config-driven label classification, terminator detection, and event handler awareness. -- `find_guard_nodes()` and `is_guard_call()` now recognize config-defined sanitizers as guards with matching capability bits. -- `merge_configs()` union-merges analysis rules, terminators, and event handlers per language key with dedup. -- Assignment LHS classification now tries the full member expression text (e.g. `location.href`) before falling back to property-only (e.g. `innerHTML`), fixing false positives on `a.href` assignments. -- `handle_command()` now receives `config_dir` to support the `config` subcommand. -- **Fused single-pass analysis** -- AST-only mode now runs a single fused pass (`analyse_file_fused`) that parses each file and builds the CFG once, producing both function summaries and diagnostics. Previously every file was parsed twice (once for summary extraction, once for analysis). Taint mode uses the fused pass for Pass 1, eliminating redundant CFG construction during summary extraction. -- **O(N²) → O(N) function-level dataflow sweep in CFG builder** -- the light-weight dataflow sweep and return-node wiring in `build_sub` for `Kind::Function` now iterate only over nodes created within the current function scope (tracked via a snapshot of the node count) instead of scanning the entire graph. Eliminates quadratic scaling in files with many functions. -- **Parallel summary merging** -- `scan_filesystem` now uses rayon `fold`/`reduce` to build per-thread `GlobalSummaries` maps in parallel, then merges them in a binary reduce tree. Eliminates the serial `merge_summaries` bottleneck. Added `GlobalSummaries::merge()`. -- **Redundant file I/O eliminated in indexed path** -- files are now read once and hashed once per scan. Added `Indexer::should_scan_with_hash()` and `Indexer::upsert_file_with_hash()` to accept pre-computed hashes. Pass 2 uses `run_rules_on_bytes` with already-read bytes instead of re-reading from disk. Previously files could be read up to 4 times and hashed up to 3 times per indexed scan. -- **SQLite mutex mode relaxed** -- switched from `SQLITE_OPEN_FULL_MUTEX` (global serialization) to `SQLITE_OPEN_NO_MUTEX`. The r2d2 connection pool guarantees one-connection-per-thread safety; combined with WAL mode this allows concurrent readers without a global lock. -- **Parallel JSON deserialization in `load_all_summaries`** -- for large result sets (>256 summaries), JSON deserialization is now parallelized with rayon. -- **Zero-allocation taint hashing** -- `taint_hash()` replaced sorted-`Vec` + blake3 with an order-independent XOR-of-FNV scheme. Eliminates a heap allocation and sort per BFS edge in the taint engine. -- **In-place taint transfer** -- `apply_taint()` now mutates the taint map in place instead of cloning and returning a new `HashMap` per node visit. The BFS loop caches hash values and uses `std::mem::take` for the last successor to avoid unnecessary clones. +### Symbolic Execution -### Fixed -- **False positives on one-hop constant bindings** -- `cmd = "git"; Command::new(cmd)` no longer triggers `cfg-unguarded-sink` because the variable is traced back to a constant definition. -- **False positives from exec-path guards** -- `resolve_binary(&bin); Command::new(bin)` is now recognized as guarded. -- **False `cfg-resource-leak` on Django signal handlers** -- `signal.connect(handler)` no longer matches the Python db-connection acquire pattern. -- **False `cfg-lock-not-released` on Lock constructors** -- `threading.Lock()` without `.acquire()` no longer produces a finding. -- **False `cfg-resource-leak` on FileResponse** -- `f = open(...); return FileResponse(f)` is recognized as ownership transfer. -- **Inflated severity in cfg-only mode** -- structural findings without taint evidence now correctly produce Low severity instead of Medium. -- **`el.href = val` false positive in AST patterns** -- the `location_href_assignment` pattern now requires a known browser global, eliminating matches on DOM element `.href` assignments. -- **Structured output modes (`-f json`, `-f sarif`) now produce zero stderr noise** -- config notes, "Checking …", and "Finished in …" messages are fully suppressed (not just redirected to stderr) so that `nyx scan -f json | jq` and CI SARIF upload work without extraneous output. Human-readable console format continues to show status messages. -- **Console output column alignment** -- severity tags are now bracketed and padded to a fixed display width (`[HIGH]`, `[MEDIUM]`, `[LOW]`) so that rule IDs align consistently regardless of severity. ANSI color codes are applied after width calculation, not before. -- **`.href` false positives** -- `el.href = "/about"` no longer triggers `location_href_assignment` or sink classification; only `location.href` (and `window.location.href`, `document.location.href`) match. -- **Constant-arg sink false positives** -- sinks whose arguments are all constants (no variable uses beyond the callee name) with no taint confirmation are now suppressed. Fixes false positives on patterns like `subprocess.run(["make","clean"])` and `printf("hello\n")`. -- **Unreachable + unguarded dedup** -- when both `cfg-unreachable-sink` and `cfg-unguarded-sink` fire on the same span, the unguarded finding is suppressed (unreachable is more specific). -- **`std::cout` false positives** -- `std::cout` no longer classified as a sink, eliminating spurious findings on every C++ iostream print. -- **Break/continue scope correctness** -- `break` and `continue` inside loops now correctly wire to their enclosing loop header/exit. Previously, `break` in a `while`/`for` body created a dead-end node that left post-loop code unreachable, producing false `cfg-unreachable-*` findings. The If handler's no-else case also now correctly flows the false branch to subsequent code when the then-branch terminates (return/break/continue). True/False edge labels are applied to branch entry nodes rather than exit nodes, fixing `cfg-error-fallthrough` false positives on `if (err) { return; }` patterns. -- **Preprocessor dangling-else CFG recovery** -- `#ifdef`/`#endif` blocks that split an `if/else` across preprocessor boundaries no longer orphan subsequent code. The CFG block handler now recovers the frontier after preprocessor nodes, preventing false unreachable-code findings on code following `#ifdef ... #endif` blocks. -- **Wrapper resource function recognition** -- `curlx_fopen`, `curlx_fdopen`, `fdopen`, and `curlx_fclose` are now recognized as acquire/release functions for C file handles, eliminating false `cfg-resource-leak` findings on codebases (e.g. curl) that use wrapper functions around standard I/O. -- **`freopen` false positive** -- `freopen()` (and `curlx_freopen`) no longer triggers `cfg-resource-leak` findings. Previously `freopen` matched the `fopen` acquire pattern via `ends_with`; a new `exclude_acquire` field on `ResourcePair` filters out these false matches for both the file handle and file descriptor resource pairs. -- **Struct field ownership transfer** -- resource leak detection now recognizes ownership transfer via struct field assignment (`s->stream = fp`, `obj.field = ptr`). When an acquired resource is stored into a struct field downstream, the finding is suppressed since the receiving struct assumes lifetime responsibility. -- **Linked-list/global insertion** -- resource leak detection now recognizes linked-list insertion patterns (`p->next = list; list = p`) and global variable assignment as ownership transfers, eliminating false `cfg-resource-leak` findings on common C allocation-and-insert idioms. -- Removed incorrect `value_enum` attribute from CLI `--format` argument. -- Benchmark compilation error: `classify()` calls in `benches/scan_bench.rs` were missing the third `extra` parameter. +- Expression trees (`SymbolicValue`) preserve computation structure through the path walk: integers, strings, binary ops, concatenations, calls, phi merges. +- Witness strings reconstruct concrete attack payloads at sink nodes. +- Bounded multi-path forking with reachability pruning. +- Cross-file: callee summaries are modeled directly, and pre-lowered callee bodies are loaded from SQLite so witnesses can keep walking across files. +- Interprocedural mode: nested frames with full state propagation, transitive descent up to 3 levels, structured cutoff tracking. +- Field-sensitive symbolic heap with bounded fields per object. +- Symbolic string theory: `Substr`, `Replace`, `ToLower`, `ToUpper`, `Trim`, `StrLen` modeled with concrete folding and sanitizer pattern detection. +- Optional Z3 integration (compile-time `smt` feature) for cross-variable constraint solving. -## [0.2.0] - 2026-02-24 +### Security & Coverage -### Added -- **Cross-file taint analysis** -- two-pass architecture: Pass 1 extracts `FuncSummary` per function (source/sanitizer/sink capabilities, taint propagation, callees), Pass 2 runs BFS taint propagation with cross-file callee resolution. -- **CFG analysis engine** with five detectors: unguarded sinks (`cfg-unguarded-sink`), auth gaps in web handlers (`cfg-auth-gap`), unreachable security code (`cfg-unreachable-*`), error fallthrough (`cfg-error-fallthrough`), and resource leaks (`cfg-resource-leak`). -- **Cross-language interop** -- taint flows across language boundaries via explicit `InteropEdge` structs without false-positive name collisions. -- **Function summaries** persisted to SQLite (`function_summaries` table) with arity, parameter names, capability bitflags, and callee lists. -- **Multi-language CFG + taint support** -- all 10 languages (Rust, C, C++, Java, Go, PHP, Python, Ruby, TypeScript, JavaScript) now have `KINDS` maps, `RULES`, and `PARAM_CONFIG` for full CFG construction and taint analysis. -- **Resource leak detection** for C/C++ (malloc/free, fopen/fclose), Go (os.Open/Close, Lock/Unlock), Rust (alloc/dealloc), and Java (streams, connections). -- **Finding scoring system** -- numeric scores based on severity, proximity to entry point, path complexity, taint confirmation, and confidence multiplier. -- **Analysis modes** -- `Full` (default), `Ast` (`--ast-only`), and `Taint` (`--cfg-only`) selectable via CLI flags or `scanner.mode` config. -- **`GlobalSummaries`** with conservative merge: union caps, OR booleans, union param/callee lists on name collisions across files. -- **Performance optimizations** -- `_from_bytes` variants to read-once/hash-once, lock-free rayon parallelism, SQLite WAL + 8 MB cache + 256 MB mmap. -- **Tracing instrumentation** -- `tracing` spans on all pipeline phases (walk, pass1, merge, pass2, per-file ops, db_init). -- **Benchmark suite** -- criterion benchmarks in `benches/scan_bench.rs` with fixtures. -- 107 unit tests covering taint propagation, cross-file resolution, cross-language interop, CFG analysis, and summaries. +- Vulnerability classes added: SSRF (10 languages), deserialization (Python, Ruby, Java, PHP), and `Cap::UNAUTHORIZED_ID` for auth-as-taint (off by default behind config flag). +- Auth analysis: receiver-type sink gating, row-level ownership-equality detection, self-actor recognition (`let user = require_auth()`), sink classification (in-memory vs realtime vs outbound), helper-summary lifting, and SQL JOIN-through-ACL recognition. +- State analysis (resource lifecycle, use-after-close, leaks, unauthed access) is now on by default. RAII-aware for Rust and C++; recognizes Python `with`, Go `defer`, Java try-with-resources. +- Framework rule packs: Express, Flask/Django, Spring/JNDI, Rails. Per-language label depth significantly expanded. +- C/C++ taint depth: output-parameter source propagation, implicit definitions for uninitialized declarations. +- Negative test corpus (30 fixtures) and a 262-case benchmark with CI gates on rule-level Precision/Recall/F1. -### Changed -- Bumped all dependencies to latest compatible versions. -- `Cap` bitflags expanded: `ENV_VAR`, `HTML_ESCAPE`, `SHELL_ESCAPE`, `URL_ENCODE`, `JSON_PARSE`, `FILE_IO`. -- `classify()` in labels uses zero-allocation byte-level case-insensitive comparisons. -- Indexed scans now always re-analyze all files in Pass 2 when taint is enabled (conservative: global summaries may have changed even if a file didn't). +### CLI & Output -### Fixed -- Clippy `ptr_arg` lint in perf tests (`&PathBuf` -> `&Path`). +- `nyx serve` — local web UI on `localhost` only (refuses non-loopback binds). +- `--require-converged` filters out findings where the engine bailed early. +- Analysis-engine toggles graduated from `NYX_*` env vars to first-class flags and `[analysis.engine]` config: `--constraint-solving`, `--abstract-interp`, `--context-sensitive`, `--symex`, `--cross-file-symex`, `--symex-interproc`, `--smt`, `--parse-timeout-ms`. Old env vars still work when Nyx is consumed as a library. +- Confidence (`High`/`Medium`/`Low`) shown on every finding, including console headers. +- Engine notes surfaced in console (`[capped: N notes — over-report]`), JSON (`engine_notes`, `confidence_capped`), and SARIF (`result.properties.loss_direction`). +- Flow paths reconstructed step-by-step with file/line/snippet for each hop. +- Concrete attack witness strings synthesized by the symbolic executor. +- Primary sink locations now point at the callee's real sink line; caller call sites are preserved as flow steps. +- Richer scan progress: explicit stages, timing breakdowns, language counters, skipped/reused file counts. +- Tighter taint-finding deduplication. -## [0.2.0-alpha] - 2025-06-28 +### Hardening -### Added -- Experimental intra‑procedural CFG + taint analysis for Rust. Nyx now builds a control‑flow graph, applies data‑flow rules, and flags unsanitised Source → Sink paths (e.g. env::var → Command::new). -- O(1) node‑kind lookup via per‑language PHF tables for zero‑cost dispatch. -- Six unit tests covering conditionals, loops, sanitizers, and multiple sources. -- Debug channel target=cfg (use RUST_LOG=nyx::cfg=debug) to inspect generated graphs. +- Centralized path containment rejects traversal, symlink escapes, and oversized reads across UI, debug, and triage routes. +- `nyx serve` validates `Host` headers, requires per-session CSRF tokens for mutations, and refuses scans outside the original repo root. +- Walker re-validates symlink targets against the scan root. +- Bounded reads on framework manifests and `.nyx/triage.json` imports. +- UI falls back to plain text on pathologically long lines to defeat regex-DoS in syntax highlighting. +- Parser timeout is now configuration-backed with hostile-input regression coverage. -### Fixed -- Fixed a bug in the release pipeline where Windows was trying to call the zip, PowerShell doesn't have a zip command +### Persistence -## [0.1.1-alpha] - 2025-06-25 +- SQLite schema bumped to v2. Anonymous-function identity is now a structural DFS index instead of a byte offset, so inserting a line above an unchanged function no longer invalidates its `FuncKey`. Pre-0.5.0 caches are silently cleared on open; triage data and scan history are preserved. +- Engine-version metadata; persisted summaries and file hashes invalidate on mismatch. +- Stale SSA tables recreate when required columns are missing; deserialization failures log instead of silently dropping rows. -### Fixed -- Fixed a bug where the `scan --no-index` command would not respect the `max_results` config setting (#1) +### Frontend -### Added -- Integration tests covering indexing and scanning pipelines (#3, #4, #5, #8) +- Replaced the legacy `app.js` with a React + Vite + TypeScript SPA. +- Interactive graph workspace for CFG and call-graph views (Graphology + ELK + Sigma) with neighborhood reduction and a full-page inspector. +- Triage UI with database-backed decisions (true positive, false positive, deferred, suppressed) and `.nyx/triage.json` round-trip. +- Scan history, rules management, and finding detail panels with evidence and flow visualization. +- Vitest browser-side test suite wired into CI. -## [0.1.0-alpha] - 2025-06-25 +### Removed -### Added -- Initial alpha release of **Nyx** CLI tool -- Multi-language AST pattern scanning via `tree-sitter` for Rust, C/C++, Java, Go, PHP, Python, Ruby, TypeScript, JavaScript -- `scan` command: filesystem walker, pattern execution, console output -- `index` command: build, rebuild, and status reporting of SQLite-backed index -- `list` command: list indexed projects with optional verbosity -- `clean` command: remove one or all project indexes -- Configuration system with `nyx.conf` (generated) and `nyx.local` (user overrides) -- Default severity levels: High, Medium, Low -- Unit tests for core modules (config, ext, project utils) +- Legacy BFS taint engine, `TaintTransfer`, `TaintState`, and the `NYX_LEGACY` fallback. +- Legacy vanilla-JS frontend (`app.js`). + +## [0.4.0] — 2025-02-25 + +A precision and ergonomics release. Findings are now ranked, lower-noise by default, and easier to triage in CI. + +### Highlights + +- **Attack-surface ranking.** Every finding gets an exploitability score combining severity, analysis kind, evidence strength, and path-validation. Console output shows the score in the header line; `--no-rank` opts out. +- **Low-noise prioritization.** Quality-category findings are excluded by default (`--include-quality` brings them back). High-frequency Quality rules are rolled up per `(file, rule)` with example occurrences. LOW budgets cap noise without ever displacing High/Medium findings. +- **State-model dataflow analysis.** New per-variable resource-lifecycle and auth-level analysis catches use-after-close, double-close, must-leak, may-leak (branch-aware), and unauthenticated-sink access. Opt-in via `scanner.enable_state_analysis`. +- **Inline `nyx:ignore` suppressions** with same-line and next-line directives, comma lists, wildcard suffixes, and string-literal guards across all 10 languages. +- **AST pattern overhaul.** All 10 language pattern files rewritten with consistent metadata, namespaced IDs (`..`), and 30+ new patterns. 11 broken tree-sitter queries fixed. +- **Monotone forward-dataflow taint engine.** Replaced the BFS engine with a proper worklist over a finite lattice. Termination is now guaranteed by lattice height, eliminating BFS-budget bailouts on large files. +- **Path-sensitive taint analysis.** Branch predicates flow with the analysis. Contradictory guards prune infeasible paths; validation calls produce annotated findings without changing severity. +- **Interprocedural call graph.** Whole-program graph with three-valued callee resolution (`Resolved`/`NotFound`/`Ambiguous`), SCC analysis, and topo ordering ready for bottom-up taint propagation. + +### CLI & Output + +- `--severity ` replaces `--high-only`. Supports `HIGH`, `HIGH,MEDIUM`, `>=MEDIUM`. Filtering is now applied at the output stage so taint and CFG findings are correctly downgraded too. +- `--mode ` replaces `--ast-only` and `--cfg-only`. +- `--index ` replaces `--no-index` and `--rebuild-index`. +- `--fail-on ` for CI exit-code gating. +- `--min-score ` for ranking-aware filtering. +- `--show-suppressed` reveals suppressed findings dimmed with `[SUPPRESSED]`. +- `--keep-nonprod-severity` (renamed from `--include-nonprod`). +- `--quiet` mirrors `output.quiet`. +- Console renderer overhauled: severity is the strongest visual anchor, file paths are dim blue, taint flows use `→` arrows, multi-line call chains are normalized. +- Confidence shown alongside score in the header line. +- Pattern-level confidence is now set at the pattern definition site, not heuristically inferred from severity. + +### Breaking + +- Config and data directory renamed from `dev.ecpeter23.nyx` to `nyx`. Existing config and SQLite indexes at the old path won't be picked up — copy them across or re-run `nyx scan`. +- `Severity::from_str` now returns `Err` for unknown values instead of silently defaulting to Low. + +### Notable Fixes + +- KINDS-map audit across all 10 languages: 89 missing tree-sitter node types added. Switch/case, try/catch/finally, class bodies, lambdas, closures, and namespaces are no longer silently dropped. +- `else_clause` mapping fixed for C, C++, Rust, JS, TS, Python, PHP — code inside else blocks was being dropped from the CFG. +- Rust `if let` / `while let` taint propagation now works. +- Taint BFS non-termination on large JS files (the BFS engine has since been replaced). +- C++ `popen` pattern ID collision with C. +- Constant-arg sink suppression for AST patterns. + +## [0.3.0] — 2026-02-25 + +Configurability, SARIF, and an aggressive false-positive purge. + +### Highlights + +- **Configurable analysis rules.** Sources, sanitizers, sinks, terminators, and event handlers can be defined per language in `nyx.local` or via `nyx config add-rule`/`add-terminator`. Config rules take priority over built-in rules. +- **`nyx config` CLI subcommand** with `show`, `path`, `add-rule`, `add-terminator`. +- **SARIF 2.1.0 output (`-f sarif`).** Spec-compliant for GitHub Code Scanning, Azure DevOps, and other SARIF consumers. +- **`SourceKind` taint classification.** Findings carry an inferred source kind (`UserInput`, `EnvironmentConfig`, `FileSystem`, `Database`, `Unknown`) and severity is now derived from it instead of being hardcoded to High. +- **Non-prod severity downgrade by default.** Findings in tests, vendor, benchmarks, examples, fixtures, build scripts, and `*.min.js` are downgraded one tier. `--include-nonprod` restores original severity. +- **Resource leak detection** for Python, Ruby, PHP, JavaScript, and TypeScript (file handles, sockets, locks, mysqli, curl, fs streams). +- **Progress bars and quiet mode.** Indicatif-driven progress for discovery, Pass 1, and Pass 2 (auto-hidden in JSON/SARIF/quiet modes). + +### Performance + +- Single fused parse+CFG pass replaces the previous two-parse summary extraction. +- Light-weight dataflow sweep in CFG builder is now O(N) per function instead of O(N²) over the whole file. +- Parallel summary merging via rayon fold/reduce. +- Indexed scans now read and hash each file once instead of up to 4 times. +- SQLite mutex mode relaxed (r2d2 + WAL provides safety without global lock). +- Zero-allocation taint hashing and in-place taint transfer. + +### Notable Fixes + +- One-hop constant-binding suppression: `cmd = "git"; subprocess.run([cmd, ...])` no longer flags. +- Exec-path guards (`which`, `resolve_binary`, `shutil.which`) recognized. +- `signal.connect` / `event.connect` no longer match Python db-connection acquire patterns. +- `threading.Lock()` without `.acquire()` no longer flags as unreleased. +- `FileResponse(f)` / `send_file(f)` recognized as ownership transfer. +- `el.href` no longer matches `location.href` patterns. +- Constant-only sink calls (`subprocess.run(["make","clean"])`) suppressed. +- `std::cout` no longer treated as a sink. +- Break/continue inside loops correctly wires into the loop header/exit, fixing false unreachable-code findings. +- Preprocessor `#ifdef`/`#endif` blocks no longer orphan subsequent code in C/C++. +- `freopen` no longer matches `fopen` acquire patterns. +- Struct-field, linked-list, and global assignment recognized as ownership transfers. + +## [0.2.0] — 2026-02-24 + +The cross-file release. + +- **Two-pass cross-file taint analysis.** Pass 1 extracts `FuncSummary` per function (caps, propagation, callees), Pass 2 runs BFS taint propagation with cross-file callee resolution. +- **CFG analysis engine** with five detectors: unguarded sinks, auth gaps in web handlers, unreachable security code, error fallthrough, resource leaks. +- **Cross-language interop** via explicit `InteropEdge` structs (no false-positive name collisions). +- **Function summaries persisted to SQLite** (`function_summaries` table). +- **Multi-language CFG + taint support** for all 10 languages. +- **Resource leak detection** for C/C++, Go, Rust, and Java. +- **Finding scoring system** combining severity, entry-point proximity, path complexity, taint confirmation, and confidence. +- **Analysis modes**: `Full` (default), `Ast` (`--ast-only`), `Taint` (`--cfg-only`). +- **Cap bitflags expanded**: `ENV_VAR`, `HTML_ESCAPE`, `SHELL_ESCAPE`, `URL_ENCODE`, `JSON_PARSE`, `FILE_IO`. +- Performance: read-once/hash-once via `_from_bytes` variants, lock-free rayon, SQLite WAL + 8 MB cache + 256 MB mmap. +- Tracing instrumentation on all pipeline stages; criterion benchmark suite. + +## [0.2.0-alpha] — 2025-06-28 + +- Experimental intra-procedural CFG + taint analysis for Rust. Builds a CFG, applies dataflow, and flags unsanitised Source → Sink paths (e.g. `env::var` → `Command::new`). +- O(1) node-kind lookup via per-language PHF tables. +- Debug channel `target=cfg` (`RUST_LOG=nyx::cfg=debug`) to inspect generated graphs. +- Fixed Windows release pipeline (PowerShell has no `zip` command). + +## [0.1.1-alpha] — 2025-06-25 + +- Fixed `scan --no-index` not respecting the `max_results` config setting (#1). +- Integration tests covering indexing and scanning pipelines (#3, #4, #5, #8). + +## [0.1.0-alpha] — 2025-06-25 + +Initial alpha release. + +- Multi-language AST pattern scanning via `tree-sitter` for Rust, C/C++, Java, Go, PHP, Python, Ruby, TypeScript, JavaScript. +- `scan` command: filesystem walker, pattern execution, console output. +- `index` command: build, rebuild, and status reporting of SQLite-backed index. +- `list` command: list indexed projects with optional verbosity. +- `clean` command: remove one or all project indexes. +- Configuration system with `nyx.conf` (generated) and `nyx.local` (user overrides). +- Default severity levels: High, Medium, Low. diff --git a/CLA.md b/CLA.md new file mode 100644 index 00000000..eb0f9f73 --- /dev/null +++ b/CLA.md @@ -0,0 +1,73 @@ +# Nyx Contributor License Agreement + +## Why this exists + +Nyx is an open source project and will always have a fully open-source core available to the community. + +This Contributor License Agreement (CLA) exists to ensure the long-term sustainability of the project. It allows Nyx to evolve over time, including improving, distributing, and potentially offering commercial versions or services that support continued development. + +**You retain ownership of your contributions.** This agreement simply grants the project the rights needed to use and evolve them. + +--- + +Thank you for your interest in contributing to Nyx (the "Project"). This Contributor License Agreement ("Agreement") clarifies the intellectual property rights granted with each Contribution from any person or entity. It is for Your protection as a contributor as well as the protection of the Project and its users. + +By submitting a Contribution to the Project, You accept and agree to the terms below. If You do not agree to these terms, please do not submit Contributions. + +## 1. Definitions + +**"You"** (or **"Your"**) means the individual or legal entity making a Contribution to the Project. For a legal entity, "You" includes the entity and any entity that controls, is controlled by, or is under common control with that entity. + +**"Contribution"** means any work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the Project for inclusion in, or documentation of, the Project. "Submitted" means any form of electronic, verbal, or written communication sent to the Project — including but not limited to pull requests, patches, and issue comments — but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution." + +## 2. Copyright License Grant + +Subject to the terms of this Agreement, You hereby grant to the Project, to any entity that maintains or succeeds it, and to recipients of software distributed by the Project a perpetual, worldwide, non-exclusive, royalty-free, irrevocable copyright license, with the right to sublicense through multiple tiers of sublicensees, to reproduce, prepare derivative works of, publicly display, publicly perform, distribute, and sublicense Your Contribution and such derivative works. + +## 3. Patent License Grant + +Subject to the terms of this Agreement, You hereby grant to the Project, to any entity that maintains or succeeds it, and to recipients of software distributed by the Project a perpetual, worldwide, non-exclusive, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer Your Contribution and any combination of Your Contribution with the Project to which it was submitted. This patent license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution alone or by combination of Your Contribution with the Project. + +If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that Your Contribution, or the Project to which You have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Project shall terminate as of the date such litigation is filed. + +## 4. Relicensing Right + +In addition to the licenses granted in Sections 2 and 3, You grant the Project and any entity that maintains or succeeds it the right to relicense Your Contribution, in whole or in part, under terms other than the Project's current license (currently GPL-3.0-or-later), where necessary to support the long-term sustainability, distribution, and evolution of the Project. + +This may include, without limitation: + +1. Dual-licensing the Project under a commercial license; +2. Combining Your Contribution with proprietary components; or +3. Moving the Project to a different open source license. + +This right is irrevocable and may be exercised by the Project's maintainers as part of maintaining and evolving the Project. + +## 5. Moral Rights Waiver + +To the maximum extent permitted by applicable law, You waive, and agree not to assert, any moral rights or similar rights of attribution and integrity that You may have in Your Contribution against the Project, its successors, and recipients of software distributed by the Project. To the extent such rights cannot be waived under applicable law, You agree not to enforce them in a manner that would limit the rights granted under this Agreement. + +## 6. Representations + +You represent that: + +1. Each of Your Contributions is Your original creation, or You otherwise have the legal right to submit it under the terms of this Agreement; +2. To the best of Your knowledge, Your Contribution does not infringe any third party's copyright, patent, trade secret, or other intellectual property rights; and +3. You have the legal authority to enter into this Agreement and to grant the licenses set forth above. + +If any portion of Your Contribution is not Your original creation, You will identify the source and any license or other restriction applicable to that material as part of Your submission. + +## 7. Employer Authorization + +If You are submitting a Contribution on behalf of Your employer, or the Contribution was made within the scope of Your employment, You represent that Your employer has authorized You to make the Contribution and to grant the licenses set forth in this Agreement. If You are unsure, please confirm with Your employer before submitting. + +## 8. No Warranty + +You provide Your Contributions on an "AS IS" basis, without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties of title, non-infringement, merchantability, or fitness for a particular purpose. You are not required to provide support for Your Contributions, except to the extent You desire to provide such support. + +## 9. Copyright Retained + +You retain copyright to Your Contribution. This Agreement grants the licenses set forth above; it does not transfer ownership. Its purpose is to give the Project flexibility to evolve and to relicense the codebase over time without needing to obtain permission from each past contributor on a case-by-case basis. + +## 10. Notice of Changes + +If You become aware of any facts or circumstances that would make any representation in this Agreement inaccurate in any respect, You agree to notify the Project promptly. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0c6b2cf0..81645a9d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before participating. ### Prerequisites -- **Rust 1.85+** (edition 2024) +- **Rust 1.88+** (edition 2024) - Git ### Building @@ -284,6 +284,8 @@ cargo clippy --all -- -D warnings ## Pull Request Guidelines +First-time contributors are welcome. If you are unsure where to start, open an issue and we can help identify a focused starter task. + 1. **Branch from `master`**. Use descriptive branch names: `feat/add-kotlin-support`, `fix/false-positive-sql-concat`, `docs/update-rule-reference`. 2. **Keep PRs focused**. One logical change per PR. @@ -306,6 +308,8 @@ cargo clippy --all -- -D warnings 6. **Include test cases** for any new detection rules. +7. **Disclose material AI assistance** in the PR description if the change was drafted, generated, or substantially refactored by an AI tool. One line is enough. See [AI-POLICY.md](AI-POLICY.md) for the full policy and the bar we hold AI-assisted contributions to. + --- ## Bug Reports @@ -348,4 +352,20 @@ Please do **not** open public issues for security-sensitive bugs. See [SECURITY. ## License -By contributing to Nyx, you agree that your contributions will be licensed under the [GPL-3.0](./LICENSE). +### Contributions are released under GPL-3.0-or-later + +By submitting a pull request, patch, or other contribution to Nyx, you agree that your contribution will be released under the [GPL-3.0-or-later](./LICENSE), the same license as the project. + +### Developer Certificate of Origin + +We use the Developer Certificate of Origin (DCO) as a lightweight baseline for contributions. All commits must include a `Signed-off-by:` trailer, which certifies that you wrote the code yourself or otherwise have the right to submit it under the project license. + +Use `git commit -s` to add this automatically. + +### Contributor License Agreement + +Before your first contribution can be merged, you must sign the Nyx [Contributor License Agreement](./CLA.md). + +The CLA does not transfer ownership of your work. You retain copyright to your contributions. It grants Nyx the rights needed to maintain, distribute, and evolve the project over time, including the flexibility to support long-term sustainability through future licensing or commercial offerings. + +If you do not agree to these terms, please do not submit contributions to Nyx. diff --git a/Cargo.lock b/Cargo.lock index 0ddb894b..c3d1dba9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + [[package]] name = "aho-corasick" version = "1.1.4" @@ -37,9 +43,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -52,15 +58,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -71,7 +77,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -82,7 +88,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -105,9 +111,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "assert_cmd" -version = "2.1.2" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5bcfa8749ac45dd12cb11055aeeb6b27a3895560d60d71e3c23bf979e60514" +checksum = "39bae1d3fa576f7c6519514180a72559268dd7d1fe104070956cb687bc6673bd" dependencies = [ "anstyle", "bstr", @@ -118,6 +124,24 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "async-compression" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" +dependencies = [ + "compression-codecs", + "compression-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.5.0" @@ -125,16 +149,68 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] -name = "bitflags" -version = "2.11.0" +name = "axum" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +dependencies = [ + "axum-core", + "bytes", + "form_urlencoded", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "bitflags" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "blake3" -version = "1.8.3" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" +checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" dependencies = [ "arrayref", "arrayvec", @@ -161,6 +237,12 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + [[package]] name = "bytesize" version = "2.3.1" @@ -175,9 +257,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "shlex", @@ -189,6 +271,17 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures", + "rand_core", +] + [[package]] name = "chrono" version = "0.4.44" @@ -197,6 +290,7 @@ checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "num-traits", + "serde", "windows-link", ] @@ -229,9 +323,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.60" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -239,9 +333,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -251,9 +345,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -263,27 +357,52 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "compression-codecs" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" +dependencies = [ + "compression-core", + "flate2", + "memchr", +] + +[[package]] +name = "compression-core" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" [[package]] name = "console" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" dependencies = [ "encode_unicode", "libc", - "once_cell", "unicode-width", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -300,13 +419,22 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "criterion" version = "0.8.2" @@ -384,15 +512,15 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "dashmap" -version = "7.0.0-rc2" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a1e35a65fe0538a60167f0ada6e195ad5d477f6ddae273943596d4a1a5730b" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", "crossbeam-utils", - "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.14.5", "lock_api", + "once_cell", "parking_lot_core", ] @@ -429,7 +557,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -457,7 +585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -474,9 +602,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "find-msvc-tools" @@ -490,6 +618,16 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "float-cmp" version = "0.10.0" @@ -511,6 +649,54 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + [[package]] name = "getrandom" version = "0.2.17" @@ -524,25 +710,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasip2", -] - -[[package]] -name = "getrandom" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", + "rand_core", "wasip2", "wasip3", ] @@ -577,6 +752,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.5" @@ -595,6 +776,12 @@ dependencies = [ "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hashlink" version = "0.11.0" @@ -616,6 +803,86 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "bytes", + "http", + "http-body", + "hyper", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "iana-time-zone" version = "0.1.65" @@ -664,12 +931,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -704,15 +971,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.90" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ "once_cell", "wasm-bindgen", @@ -732,25 +999,24 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags", "libc", ] [[package]] name = "libsqlite3-sys" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b4103cffefa72eb8428cb6b47d6627161e51c2739fc5e3b734584157bc642a" +checksum = "b1f111c8c41e7c61a49cd34e44c7619462967221a6443b0ec299e0ac30cfb9b1" dependencies = [ "cc", "pkg-config", @@ -787,12 +1053,45 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + [[package]] name = "memchr" version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -805,14 +1104,14 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-traits" @@ -835,9 +1134,10 @@ dependencies = [ [[package]] name = "nyx-scanner" -version = "0.4.0" +version = "0.5.0" dependencies = [ "assert_cmd", + "axum", "bitflags", "blake3", "bytesize", @@ -853,6 +1153,7 @@ dependencies = [ "indicatif", "num_cpus", "once_cell", + "parking_lot", "petgraph", "phf", "predicates", @@ -866,7 +1167,11 @@ dependencies = [ "tempfile", "terminal_size", "thiserror", + "tokio", + "tokio-stream", "toml", + "tower", + "tower-http", "tracing", "tracing-subscriber", "tree-sitter", @@ -880,13 +1185,15 @@ dependencies = [ "tree-sitter-ruby", "tree-sitter-rust", "tree-sitter-typescript", + "uuid", + "z3", ] [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -939,6 +1246,12 @@ dependencies = [ "windows-link", ] +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + [[package]] name = "petgraph" version = "0.8.3" @@ -949,6 +1262,7 @@ dependencies = [ "hashbrown 0.15.5", "indexmap", "serde", + "serde_derive", ] [[package]] @@ -996,15 +1310,15 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plotters" @@ -1046,15 +1360,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - [[package]] name = "predicates" version = "3.1.4" @@ -1106,18 +1411,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "r2d2" @@ -1132,9 +1437,9 @@ dependencies = [ [[package]] name = "r2d2_sqlite" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ebd03c29250cdf191da93a35118b4567c2ef0eacab54f65e058d6f4c9965f6" +checksum = "5576df16239e4e422c4835c8ed00be806d4491855c7847dba60b7aa8408b469b" dependencies = [ "r2d2", "rusqlite", @@ -1143,38 +1448,26 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", + "chacha20", + "getrandom 0.4.2", "rand_core", ] [[package]] name = "rand_core" -version = "0.9.5" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -1251,9 +1544,9 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c93dd1c9683b438c392c492109cb702b8090b2bfc8fed6f6e4eb4523f17af3" +checksum = "a0d2b0146dd9661bf67bb107c0bb2a55064d556eeb3fc314151b957f313bcd4e" dependencies = [ "bitflags", "fallible-iterator", @@ -1274,7 +1567,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1283,6 +1576,12 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + [[package]] name = "same-file" version = "1.0.6" @@ -1309,9 +1608,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -1358,14 +1657,37 @@ dependencies = [ ] [[package]] -name = "serde_spanned" -version = "1.0.4" +name = "serde_path_to_error" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -1381,23 +1703,58 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + [[package]] name = "siphasher" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys", +] [[package]] name = "sqlite-wasm-rs" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4206ed3a67690b9c29b77d728f6acc3ce78f16bf846d83c94f76400320181b" +checksum = "1b2c760607300407ddeaee518acf28c795661b7108c75421303dbefb237d3a36" dependencies = [ "cc", "js-sys", @@ -1429,26 +1786,32 @@ dependencies = [ ] [[package]] -name = "tempfile" -version = "3.26.0" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.1", + "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys", ] [[package]] @@ -1528,10 +1891,61 @@ dependencies = [ ] [[package]] -name = "toml" -version = "1.0.3+spec-1.1.0" +name = "tokio" +version = "1.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7614eaf19ad818347db24addfa201729cf2a9b6fdfd9eb0ab870fcacc606c0c" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" +dependencies = [ + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", @@ -1544,27 +1958,76 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.0.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.6+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "async-compression", + "bitflags", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -1572,6 +2035,7 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1621,9 +2085,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -1643,9 +2107,9 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.26.6" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f456d2108c3fef07342ba4689a8503ec1fb5beed245e2b9be93096ef394848" +checksum = "887bd495d0582c5e3e0d8ece2233666169fa56a9644d172fc22ad179ab2d0538" dependencies = [ "cc", "regex", @@ -1657,9 +2121,9 @@ dependencies = [ [[package]] name = "tree-sitter-c" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3aad8f0129083a59fe8596157552d2bb7148c492d44c21558d68ca1c722707" +checksum = "a9b2eb57a55fed6b00812912e730b7a275cf4fe98bfd6a5d76263d4438371728" dependencies = [ "cc", "tree-sitter-language", @@ -1743,9 +2207,9 @@ dependencies = [ [[package]] name = "tree-sitter-rust" -version = "0.24.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b18034c684a2420722be8b2a91c9c44f2546b631c039edf575ccba8c61be1" +checksum = "439e577dbe07423ec2582ac62c7531120dbfccfa6e5f92406f93dd271a120e45" dependencies = [ "cc", "tree-sitter-language", @@ -1793,11 +2257,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.21.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ - "getrandom 0.4.1", + "getrandom 0.4.2", "js-sys", "rand", "wasm-bindgen", @@ -1842,11 +2306,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -1855,14 +2319,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.113" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -1873,9 +2337,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.113" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1883,9 +2347,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.113" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -1896,9 +2360,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.113" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -1939,9 +2403,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.90" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -1979,7 +2443,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2047,15 +2511,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -2065,76 +2520,11 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" [[package]] name = "wit-bindgen" @@ -2145,6 +2535,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -2225,19 +2621,48 @@ dependencies = [ ] [[package]] -name = "zerocopy" -version = "0.8.39" +name = "z3" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "c9fc44c9d6bb9fe84c03dfff211cf4c9c8cfefa2de8b803facf7305067d21a23" +dependencies = [ + "log", + "z3-sys", +] + +[[package]] +name = "z3-src" +version = "416.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2af0c6527de39877cf55cb87f233016573eeeb7cf77afdc1469e4b32faef832" +dependencies = [ + "cmake", +] + +[[package]] +name = "z3-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c18b0a91a13522d21b3414847667de2b2056a721a3edcb5b6ee6858352d58db4" +dependencies = [ + "pkg-config", + "z3-src", +] + +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d0636c99..0faa126d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,11 @@ [package] name = "nyx-scanner" -version = "0.4.0" +version = "0.5.0" edition = "2024" -description = "A CLI security scanner for automating vulnerability checks" -license = "GPL-3.0" -authors = ["Eli Peter "] +rust-version = "1.88" +description = "A multi-language static analysis tool for detecting security vulnerabilities" +license = "GPL-3.0-or-later" +authors = ["Eli Peter "] homepage = "https://github.com/elicpeter/nyx" repository = "https://github.com/elicpeter/nyx" documentation = "https://github.com/elicpeter/nyx/tree/master/docs" @@ -14,18 +15,34 @@ readme = "README.md" default-run = "nyx" exclude = [ "assets/", + "frontend/node_modules/", ".github/", "CLAUDE.md", ".claude/", ".idea/", "tests/", "benches/", - "examples/", "docs/", + ".DS_Store", + ".nyx/", + ".z3-trace", + "target/", + "book/", ] autoexamples = false +[features] +default = ["serve"] +serve = ["dep:axum", "dep:tokio", "dep:tokio-stream", "dep:tower-http"] +smt = ["dep:z3", "z3/bundled"] +smt-system-z3 = ["dep:z3"] +# Build switch for the internal `nyx-docgen` tool. Empty on purpose: it +# only gates the [[bin]] target so consumers of `cargo install nyx-scanner` +# don't pick up the docgen binary. Maintainers run it via +# `cargo run --features docgen --bin nyx-docgen`. +docgen = [] + [lib] name = "nyx_scanner" path = "src/lib.rs" @@ -34,6 +51,11 @@ path = "src/lib.rs" name = "nyx" path = "src/main.rs" +[[bin]] +name = "nyx-docgen" +path = "tools/docgen/main.rs" +required-features = ["docgen"] + [[bench]] name = "scan_bench" harness = false @@ -44,6 +66,7 @@ criterion = { version = "0.8", features = ["html_reports"] } assert_cmd = "2" predicates = "3" glob = "0.3" +tower = { version = "0.5", features = ["util"] } [dependencies] directories = "6.0.0" @@ -54,8 +77,8 @@ toml = "1.0.3" tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json", "ansi","time"] } tracing = "0.1.44" num_cpus = "1.17.0" -rusqlite = { version = "0.38.0", features = ["bundled"] } -r2d2_sqlite = { version = "0.32.0", features = ["bundled"] } +rusqlite = { version = "0.39.0", features = ["bundled"] } +r2d2_sqlite = { version = "0.33.0", features = ["bundled"] } ignore = "0.4.25" tree-sitter = "0.26.6" tree-sitter-rust = "0.24.0" @@ -76,11 +99,24 @@ terminal_size = "0.4" rayon = "1.11.0" r2d2 = "0.8.10" bytesize = "2.3.1" -chrono = { version = "0.4.44", default-features = false, features = ["std", "clock"] } +chrono = { version = "0.4.44", default-features = false, features = ["std", "clock", "serde"] } thiserror = "2.0.18" -dashmap = "7.0.0-rc2" -petgraph = "0.8.3" +dashmap = "6.1.0" +parking_lot = "0.12" +petgraph = { version = "0.8.3", features = ["serde-1"] } bitflags = "2.11.0" phf = { version = "0.13.1", features = ["macros"] } indicatif = "0.18.4" -smallvec = "1.15" +smallvec = { version = "1.15", features = ["serde"] } +uuid = { version = "1", features = ["v4"] } +axum = { version = "0.8", optional = true } +tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal", "sync"], optional = true } +tokio-stream = { version = "0.1", features = ["sync"], optional = true } +tower-http = { version = "0.6", features = ["cors", "compression-gzip", "trace", "set-header", "limit"], optional = true } +z3 = { version = "0.20.0", optional = true} + +[profile.release] +lto = true +codegen-units = 1 +debug = 1 +strip = "none" diff --git a/README.md b/README.md index 062f42d9..1a05a787 100644 --- a/README.md +++ b/README.md @@ -1,405 +1,238 @@
- nyx logo + nyx -**Fast, cross-language cli vulnerability scanner.** +**A local-first security scanner with a browser UI. Scan your repo and triage in your browser, with no cloud and no account.** [![crates.io](https://img.shields.io/crates/v/nyx-scanner.svg)](https://crates.io/crates/nyx-scanner) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -[![Rust 1.85+](https://img.shields.io/badge/rust-1.85%2B-orange)](https://www.rust-lang.org) +[![Rust 1.88+](https://img.shields.io/badge/rust-1.88%2B-orange)](https://www.rust-lang.org) [![CI](https://img.shields.io/github/actions/workflow/status/elicpeter/nyx/ci.yml?branch=master)](https://github.com/elicpeter/nyx/actions)
---- - -## What is Nyx? - -**Nyx** is a lightweight, lightning-fast Rust-native command-line tool that detects security vulnerabilities across 10 programming languages. It combines [`tree-sitter`](https://tree-sitter.github.io/) parsing, intra-procedural control-flow graphs, and cross-file taint analysis with an optional SQLite-backed index to deliver deep, repeatable scans on projects of any size. +

Nyx UI walkthrough: scan, browse findings, inspect flow path, triage

--- -## Key Capabilities +## Scan locally, browse locally -| Capability | Description | +Nyx runs a cross-language taint analysis on your repository, then serves the results to a React UI bound to `127.0.0.1`. You get a finding list with severity, evidence, and a step-by-step **flow visualiser** that walks the dataflow from source → sanitizer → sink. Triage decisions persist to `.nyx/triage.json`, which commits alongside your code so the team shares one triage state. + +```bash +cargo install nyx-scanner +nyx scan # runs the analyzer, caches findings in .nyx/ +nyx serve # opens http://localhost:9700 in your browser +``` + +Everything stays on your machine: loopback-only bind, host-header enforcement, CSRF on every mutation, no telemetry, no login. + +

Overview dashboard after two scans: 2 findings remaining (down from 5), 3 fixed, a findings-over-time line trending down, plus severity/language/category breakdowns and top affected files

+ +--- + +## What's in the UI + +| Page | What it shows | |---|---| -| Multi-language support | Rust, C, C++, Java, Go, PHP, Python, Ruby, TypeScript, JavaScript | -| AST-level pattern matching | Language-specific queries written against precise parse trees | -| Control-flow graph analysis | Auth gaps, unguarded sinks, unreachable security code, resource leaks, error fallthrough | -| Cross-file taint tracking | Monotone forward dataflow taint analysis from sources through sanitizers to sinks with function summaries | -| Cross-language interop | Taint flows across language boundaries via explicit interop edges | -| Two-pass architecture | Pass 1 extracts function summaries; Pass 2 runs taint with full cross-file context | -| Incremental indexing | SQLite database stores file hashes, summaries, and findings to skip unchanged files | -| Parallel execution | File walking and analysis run concurrently via Rayon; scales with available CPU cores | -| Configurable analysis rules | Define custom sources, sanitizers, sinks, terminators, and event handlers per language via TOML config or CLI | -| Configurable scan parameters | Exclude directories, set maximum file size, tune worker threads, limit output, and more | -| Multiple output formats | Console (default), JSON, and SARIF 2.1.0 for CI integration | -| Progress reporting | Real-time progress bars for file discovery and analysis passes | +| **Overview** | Dashboard: finding counts by severity, top offenders, engine profile summary | +| **Findings** | Browsable list with severity badges, triage status, rule filter, language filter | +| **Finding detail** | Flow-path visualiser with numbered steps (source → sanitizer → sink), code snippets, evidence, cross-file markers, triage dropdown | +| **Triage** | Bulk update states (open, investigating, fixed, false_positive, accepted_risk, suppressed), audit trail, import/export JSON | +| **Explorer** | File tree with per-file symbol list and finding overlay | +| **Scans** | Run history, metrics, diff two scans to see what changed | +| **Rules** | Built-in and custom rules per language; add rules from the UI | +| **Config** | Live config editor; reload without restart | + + +`nyx serve` flags: `--port ` (default `9700`), `--host ` (loopback only: `127.0.0.1`, `localhost`, or `::1`), `--no-browser`. See `[server]` in `nyx.conf` for persistent settings, and [`docs/serve.md`](docs/serve.md) for the page-by-page UI tour and security model. --- -## Why choose Nyx? +## CLI for CI -| Advantage | What it means for you | -|---|---| -| **Pure-Rust, single binary** | No JVM, Python, or server to install; drop the `nyx` executable into your `$PATH` and go. | -| **Massively parallel** | Uses Rayon and a thread-pool walker; scales to all CPU cores. Scanning the entire **rust-lang/rust** codebase (~53,000 files) on an M2 MacBook Pro takes **~1 s**. | -| **Deep analysis** | Real CFG construction and monotone dataflow taint analysis with guaranteed termination, not just regex matching. Cross-file function summaries, capability-based sanitizer tracking, and scored findings. | -| **Index-aware** | An optional SQLite index stores file hashes and findings; subsequent scans touch *only* changed files, slashing CI times. | -| **Offline & privacy-friendly** | Requires no login, cloud account, or telemetry. Perfect for air-gapped environments and strict compliance policies. | -| **Tree-sitter precision** | Parses real language grammars, not regexes, giving far fewer false positives than line-based scanners. | -| **Extensible** | Add new patterns with concise `tree-sitter` queries; no SaaS lock-in. | +The same engine runs headless for CI pipelines. SARIF output uploads directly to GitHub Code Scanning. + +

nyx scan console output: HIGH taint findings across a JS and Python file with source → sink arrows

+ +```bash +# Fail the job on medium or higher, emit SARIF +nyx scan --format sarif --fail-on MEDIUM > results.sarif + +# Ad-hoc JSON, no index +nyx scan ./server --format json --index off + +# AST patterns only (fastest; skips CFG + taint) +nyx scan --mode ast + +# Engine-depth shortcut: fast | balanced (default) | deep +# `deep` adds symex + demand-driven backwards taint for higher precision at ~2-3× cost +nyx scan --engine-profile deep +``` + +Forward cross-file taint runs in every profile. Symex and the demand-driven backwards walk are opt-in. Turn them on either via `--engine-profile deep`, or individually (`--symex`, `--backwards-analysis`). See [`docs/cli.md`](docs/cli.md#engine-depth-profile) for the full toggle matrix. + +### GitHub Action + +```yaml +- uses: elicpeter/nyx@v0.5.0 + with: + format: sarif + fail-on: MEDIUM +- uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: nyx-results.sarif +``` + +Inputs: `path`, `version`, `format` (`sarif`|`json`|`console`), `fail-on`, `args`, `token`. Outputs: `finding-count`, `sarif-file`, `exit-code`, `nyx-version`. Linux and macOS runners (x86_64, ARM64). --- -## Installation +## Install -### Install crate +**Cargo (recommended):** ```bash -$ cargo install nyx-scanner +cargo install nyx-scanner ``` -### Install Github release -1. Navigate to the [Releases](https://github.com/elicpeter/nyx/releases) page of the repository. -2. Download the appropriate binary for your system: - - ```nyx-x86_64-unknown-linux-gnu.zip``` for Linux - - ```nyx-x86_64-pc-windows-msvc.zip``` for Windows - - ```nyx-x86_64-apple-darwin.zip``` or ```nyx-aarch64-apple-darwin.zip``` for macOS (Intel or Apple Silicon) - -3. Unzip the file and move the executable to a directory in your system PATH: - ```bash - # Example for Unix systems - unzip nyx-x86_64-unknown-linux-gnu.zip - chmod +x nyx - sudo mv nyx /usr/local/bin/ - ``` - ```bash - # Example for Windows in PowerShell - Expand-Archive -Path nyx-x86_64-pc-windows-msvc.zip -DestinationPath . - Move-Item -Path .\nyx.exe -Destination "C:\Program Files\Nyx\" # Add to PATH manually if needed - ``` - -4. Verify the installation: - ```bash - nyx --version - ``` -### Build from source +**Pre-built binaries:** Grab the archive for your platform from [Releases](https://github.com/elicpeter/nyx/releases), verify against `SHA256SUMS` (and the detached `SHA256SUMS.asc` GPG signature, when present), unzip, and drop `nyx` on your `PATH`. ```bash -$ git clone https://github.com/elicpeter/nyx.git -$ cd nyx -$ cargo build --release -# optional – copy the binary into PATH -$ cargo install --path . +# Optional: verify the checksum file's GPG signature (when SHA256SUMS.asc is published) +gpg --verify SHA256SUMS.asc SHA256SUMS +sha256sum -c SHA256SUMS --ignore-missing +unzip nyx-x86_64-unknown-linux-gnu.zip && chmod +x nyx && sudo mv nyx /usr/local/bin/ ``` -Nyx targets **stable Rust 1.85 or later**. +**From source:** +```bash +git clone https://github.com/elicpeter/nyx.git +cd nyx && cargo build --release +``` + +Requires stable Rust 1.88+. The frontend is compiled and embedded in the binary at build time, so there is no separate install step for `nyx serve`. --- -## Quick Start +## Languages -```bash -# Scan the current directory (creates/uses an index automatically) -$ nyx scan +All 10 languages parse via tree-sitter and run through the full pipeline, but rule depth is uneven. Tiers reflect benchmark F1 on the 305-case corpus at [`tests/benchmark/ground_truth.json`](tests/benchmark/ground_truth.json): -# Scan a specific path and emit JSON -$ nyx scan ./server --format json - -# Emit SARIF 2.1.0 for CI integration (GitHub Code Scanning, etc.) -$ nyx scan --format sarif > results.sarif - -# Perform an ad-hoc scan without touching the index -$ nyx scan --index off - -# Restrict results to high-severity findings -$ nyx scan --severity HIGH - -# Filter by severity expression (high and medium) -$ nyx scan --severity ">=MEDIUM" - -# AST pattern matching only (fastest, no CFG/taint) -$ nyx scan --mode ast - -# CFG + taint analysis only (skip AST pattern rules) -$ nyx scan --mode cfg - -# CI gate: fail on medium+, SARIF output -$ nyx scan --format sarif --fail-on MEDIUM > results.sarif - -# Suppress status messages (for CI/scripting) -$ nyx scan --quiet --format json - -# Include test/vendor/benchmark paths at original severity -# (by default these are downgraded one tier) -$ nyx scan --keep-nonprod-severity -``` - -### Index Management - -```bash -# Create or rebuild an index -$ nyx index build [PATH] [--force] - -# Display index metadata (size, modified date, etc.) -$ nyx index status [PATH] - -# List all indexed projects (add -v for detailed view) -$ nyx list [-v] - -# Remove a single project or purge all indexes -$ nyx clean -$ nyx clean --all -``` - -### Configuration Management - -```bash -# Print the effective merged configuration -$ nyx config show - -# Print the config directory path -$ nyx config path - -# Add a custom sanitizer rule (written to nyx.local) -$ nyx config add-rule --lang javascript --matcher escapeHtml --kind sanitizer --cap html_escape - -# Add a terminator function -$ nyx config add-terminator --lang javascript --name process.exit -``` - ---- - -## Analysis Modes - -Nyx supports four analysis modes, selectable via `--mode` or the `scanner.mode` config option: - -| Mode | CLI flag | What runs | -|---|---|---| -| **Full** (default) | `--mode full` | AST pattern matching + CFG construction + taint analysis | -| **AST-only** | `--mode ast` | AST pattern matching only; skips CFG and taint entirely | -| **CFG** | `--mode cfg` | CFG + taint analysis only; filters out AST pattern findings | -| **Taint** | `--mode taint` | Alias for `cfg` (CFG + taint analysis) | - -### What the CFG + taint engine detects - -| Finding | Rule ID | Description | -|---|---|---| -| Tainted data flow | `taint-*` | Untrusted data (env vars, user input, file reads) flowing to dangerous sinks (shell exec, SQL, file write) without matching sanitization | -| Unguarded sink | `cfg-unguarded-sink` | Sink calls not dominated by a guard or sanitizer on the control-flow path | -| Auth gap | `cfg-auth-gap` | Web handler functions that reach privileged sinks without an auth check | -| Unreachable security code | `cfg-unreachable-*` | Sanitizers, guards, or sinks in dead code branches | -| Error fallthrough | `cfg-error-fallthrough` | Error-handling branches that don't terminate, allowing execution to fall through to dangerous operations | -| Resource leak | `cfg-resource-leak` | Resources acquired but not released on all exit paths (malloc/free, fopen/fclose, Lock/Unlock) | -| Use-after-close | `state-use-after-close` | Variable read/written after its resource handle was closed | -| Double-close | `state-double-close` | Resource handle closed more than once | -| Must-leak | `state-resource-leak` | Resource acquired but never closed on any exit path | -| May-leak | `state-resource-leak-possible` | Resource open on some but not all exit paths | -| Unauthenticated access | `state-unauthed-access` | Sensitive sink reached without a preceding auth/admin check | - -### Attack Surface Ranking - -Every finding is assigned a deterministic **attack-surface score** that estimates exploitability using only information already in memory — no extra source passes are needed. Findings are sorted by descending score before truncation, so `max_results` always keeps the most important results. - -The score is the sum of five components: - -| Component | Weight | Description | -|---|---|---| -| **Severity base** | High = 60, Medium = 30, Low = 10 | Primary ordering signal. Severity reflects source-kind exploitability and rule confidence. | -| **Analysis kind** | taint = +10, state = +8, cfg = +3/+5, ast = 0 | Taint-confirmed flows are the strongest signal; AST-only pattern matches rank lowest at equal severity. CFG findings with evidence get +5, without get +3. | -| **Evidence strength** | +1 per evidence item (max 4), +2–6 for source kind | More evidence increases confidence. Source-kind priority: user input (+6) > env/config (+5) > unknown (+4) > file system (+3) > database (+2). | -| **State rule type** | +1 to +6 | Use-after-close and unauthenticated access (+6) rank above double-close (+3), must-leak (+2), and may-leak (+1). | -| **Path validation** | −5 | Findings on paths guarded by a validation predicate receive a small exploitability penalty — the guard may prevent triggering. | - -**Score ranges** (approximate): - -| Finding type | Score | -|---|---| -| High taint + user input | ~78 | -| High state (use-after-close) | ~74 | -| High CFG structural | ~63 | -| Medium taint + env source | ~47 | -| Medium state (resource leak) | ~40 | -| Low AST-only pattern | ~10 | - -Tie-breaking is deterministic: severity → rule ID → file path → line → column → message hash. The same set of findings always produces the same ordering regardless of parallelism or input order. - -Ranking is enabled by default. Disable it with `--no-rank` or `output.attack_surface_ranking = false` in config. When disabled, `rank_score` is omitted from JSON/SARIF output. - ---- - -## Supported Languages - -All 10 languages have full AST pattern matching and CFG/taint analysis. Resource leak detection is available where language-specific acquire/release pairs are defined. - -| Language | AST Patterns | CFG + Taint | Resource Leaks | +| Tier | Languages | F1 | Use as a CI gate? | |---|---|---|---| -| Rust | Yes | Yes | Yes | -| C | Yes | Yes | Yes | -| C++ | Yes | Yes | Yes | -| Java | Yes | Yes | Yes | -| Go | Yes | Yes | Yes | -| PHP | Yes | Yes | Yes | -| Python | Yes | Yes | Yes | -| Ruby | Yes | Yes | Yes | -| TypeScript | Yes | Yes | Yes | -| JavaScript | Yes | Yes | Yes | +| **Stable** | Python, JavaScript, TypeScript | 96.8% to 100% | Yes | +| **Beta** | Go, Java, Ruby, PHP | 92.9% to 97.0% | Yes, with light FP triage | +| **Preview** | C, C++ | 88.9% to 92.3% | No. Pair with clang-tidy or Clang Static Analyzer | +| **Experimental** | Rust | 86.4% | Review findings, don't block merges | + +Per-dimension detail and known blind spots live in [`docs/language-maturity.md`](docs/language-maturity.md). + +### Validated against real CVEs + +The corpus also holds a small set of vulnerable/patched pairs extracted from published advisories, so the benchmark floor is defended by regression protection on demonstrably real bugs rather than just synthetic analogues. Nyx fires on the vulnerable file and emits zero findings on the patched file for each pair. + +| CVE | Project | Language | Class | +|---|---|---|---| +| [CVE-2023-48022](https://nvd.nist.gov/vuln/detail/CVE-2023-48022) | Ray | Python | Command injection | +| [CVE-2017-18342](https://nvd.nist.gov/vuln/detail/CVE-2017-18342) | PyYAML | Python | Deserialization | +| [CVE-2019-14939](https://nvd.nist.gov/vuln/detail/CVE-2019-14939) | mongo-express | JavaScript | Code execution (`eval`) | +| [CVE-2023-26159](https://nvd.nist.gov/vuln/detail/CVE-2023-26159) | follow-redirects | TypeScript | SSRF | +| [CVE-2022-30323](https://nvd.nist.gov/vuln/detail/CVE-2022-30323) | hashicorp/go-getter | Go | Command injection | +| [CVE-2015-7501](https://nvd.nist.gov/vuln/detail/CVE-2015-7501) | Apache Commons Collections | Java | Deserialization | +| [CVE-2013-0156](https://nvd.nist.gov/vuln/detail/CVE-2013-0156) | Ruby on Rails | Ruby | Deserialization | +| [CVE-2017-9841](https://nvd.nist.gov/vuln/detail/CVE-2017-9841) | PHPUnit | PHP | Code execution (`eval`) | +| [CVE-2018-15133](https://nvd.nist.gov/vuln/detail/CVE-2018-15133) | Laravel | PHP | Deserialization | +| [CVE-2016-3714](https://nvd.nist.gov/vuln/detail/CVE-2016-3714) | ImageMagick (ImageTragick) | C | Command injection | +| [CVE-2019-18634](https://nvd.nist.gov/vuln/detail/CVE-2019-18634) | sudo (pwfeedback) | C | Memory safety | +| [CVE-2019-13132](https://nvd.nist.gov/vuln/detail/CVE-2019-13132) | ZeroMQ libzmq | C++ | Memory safety | +| [CVE-2022-1941](https://nvd.nist.gov/vuln/detail/CVE-2022-1941) | Protocol Buffers | C++ | Memory safety | +| [CVE-2017-12629](https://nvd.nist.gov/vuln/detail/CVE-2017-12629) | Apache Solr | Java | Command injection | + +Fixtures live under [`tests/benchmark/cve_corpus/`](tests/benchmark/cve_corpus/) with upstream attribution headers. --- -## Configuration Overview +## How it works -Nyx merges a default configuration file (`nyx.conf`) with user overrides (`nyx.local`). Both live in the platform-specific configuration directory shown below. +Two passes over the filesystem, with an optional SQLite index to skip unchanged files: -| Platform | Directory | -|---|---| -| Linux | `~/.config/nyx/` | -| macOS | `~/Library/Application Support/nyx/` | -| Windows | `%APPDATA%\elicpeter\nyx\config\` | +1. **Pass 1**: parse each file via tree-sitter, build an intra-procedural CFG (petgraph), lower to pruned SSA (Cytron phi insertion over dominance frontiers), and export per-function summaries (source/sanitizer/sink caps, taint transforms, points-to, callees). +2. **Summary merge**: union all per-file summaries into a `GlobalSummaries` map. +3. **Pass 2**: re-analyze each file with cross-file context under bounded context sensitivity (k=1 inlining for intra-file callees, SCC fixpoint capped at 64 iterations, and summary fallback for callees above the inline body-size cap). A forward dataflow worklist propagates taint through the SSA lattice with guaranteed convergence. Call-graph SCCs iterate to fixed-point (within the cap) so mutually recursive functions get accurate summaries. +4. **Rank, dedupe, emit**: findings are scored by severity × evidence strength × source-kind exploitability, then emitted to console, JSON, or SARIF. -Minimal example (`nyx.local`): +Detector families: taint (cross-file source→sink), CFG structural (auth gaps, unguarded sinks, resource leaks), state model (use-after-close, double-close, must-leak, unauthed-access), AST patterns (tree-sitter structural match). Full detector docs: [`docs/detectors.md`](docs/detectors.md). + +--- + +## Configuration + +Config merges `nyx.conf` (defaults) and `nyx.local` (your overrides) from the platform config directory (`~/.config/nyx/` on Linux, `~/Library/Application Support/nyx/` on macOS, `%APPDATA%\elicpeter\nyx\config\` on Windows). ```toml [scanner] -mode = "full" # full | ast | taint -min_severity = "Medium" -follow_symlinks = true -excluded_extensions = ["mp3", "mp4"] +mode = "full" # full | ast | cfg | taint +min_severity = "Medium" -[output] -default_format = "json" -max_results = 200 -quiet = true # suppress status messages - -[performance] -worker_threads = 8 # 0 = auto-detect -batch_size = 200 -channel_multiplier = 2 -``` - -### Custom Analysis Rules - -You can define custom sources, sanitizers, sinks, terminators, and event handlers per language. These take priority over built-in rules, letting you teach Nyx about project-specific functions. - -```toml -[analysis.languages.javascript] -terminators = ["process.exit"] -event_handlers = ["addEventListener"] +[server] +host = "127.0.0.1" +port = 9700 +open_browser = true +# Project-specific sanitizer [[analysis.languages.javascript.rules]] matchers = ["escapeHtml"] -kind = "sanitizer" # "source" | "sanitizer" | "sink" -cap = "html_escape" # "env_var" | "html_escape" | "shell_escape" | - # "url_encode" | "json_parse" | "file_io" | "all" - -[[analysis.languages.javascript.rules]] -matchers = ["dangerouslySetHTML"] -kind = "sink" -cap = "html_escape" +kind = "sanitizer" +cap = "html_escape" ``` -Rules can also be added interactively via `nyx config add-rule` and `nyx config add-terminator`. - -A fully documented `nyx.conf` is generated automatically on first run. +Or add rules interactively: `nyx config add-rule --lang javascript --matcher escapeHtml --kind sanitizer --cap html_escape`. Caps: `env_var`, `html_escape`, `shell_escape`, `url_encode`, `json_parse`, `file_io`, `fmt_string`, `sql_query`, `deserialize`, `ssrf`, `code_exec`, `crypto`, `unauthorized_id`, `all`. Full schema: [`docs/configuration.md`](docs/configuration.md). --- -## Architecture in Brief +## Status -Nyx uses a **two-pass architecture** to enable cross-file analysis without sacrificing parallelism: +Under active development. APIs, detector behavior, and configuration options may change between releases. Rule-level F1 on the 305-case corpus is the CI regression floor; per-language detail lives in [`tests/benchmark/RESULTS.md`](tests/benchmark/RESULTS.md). -1. **File enumeration** -- A parallel walker (Rayon + `ignore` crate) applies gitignore rules, size limits, and user exclusions. -2. **Pass 1 -- Summary extraction** -- Each file is parsed via tree-sitter, an intra-procedural CFG is built (petgraph), and a `FuncSummary` is exported per function capturing source/sanitizer/sink capabilities (bitflags), taint propagation behavior, and callee lists. Summaries are persisted to SQLite. -3. **Summary merge** -- All per-file summaries are merged into a `GlobalSummaries` map with conservative conflict resolution (union caps, OR booleans). -4. **Pass 2 -- Analysis** -- Files are re-parsed and analyzed with the full cross-file context: a monotone forward dataflow engine resolves callees against local and global summaries and propagates taint through a bounded lattice with guaranteed convergence. CFG analysis checks for auth gaps, unguarded sinks, resource leaks, and more. -5. **Reporting** -- Findings are scored, ranked, deduplicated, and emitted to the console or serialized as JSON. +Taint analysis is interprocedural. Persisted per-function SSA summaries carry per-return-path transforms and parameter-granularity points-to, and call-graph SCCs (including SCCs that span files) iterate to a joint fixed-point. The default `balanced` profile also runs k=1 context-sensitive inlining for intra-file callees. Symex (with cross-file and interprocedural frames) and the demand-driven backwards walk are opt-in. Enable them individually with `--symex` and `--backwards-analysis`, or together with `--engine-profile deep`. -With indexing enabled, Pass 1 skips files whose blake3 content hash is unchanged, and cached findings are served directly for AST-only results. - ---- - -## Roadmap - -### Phase 1 -- Deep Static Engine (Complete) - -| Feature | Status | Description | -|---|--------|---| -| Interprocedural call graph | Done | Precise symbol resolution via `FuncKey`, language-scoped namespaces, cross-module linking. Full call graph with SCC and topological analysis. | -| Path-sensitive analysis | Done | Track path predicates and conditional constraints. Detect infeasible paths and validation-only-in-one-branch patterns. Monotone predicate summaries with contradiction pruning. | -| Dataflow & state modeling | Done | Resource state machines (init -> use -> close), auth state transitions, privilege level tracking. Generic `Transfer` trait over bounded lattices with guaranteed convergence. | -| Monotone taint analysis | Done | Replaced BFS taint engine with a forward worklist dataflow analysis over a finite `TaintState` lattice. Multi-origin tracking, dual validated-must/may sets, JS/TS two-level solve. Guaranteed termination via lattice finiteness. | -| Attack surface ranking | Done | Deterministic post-analysis scoring of findings by severity, analysis kind, evidence strength, source-kind exploitability, and validation state. Findings sorted by score before truncation so `max_results` keeps the most important results. | -| Inline suppressions | Done | `nyx:ignore` and `nyx:ignore-next-line` comments with wildcard matching, all 10 languages supported. `--show-suppressed` flag for visibility. | -| Low-noise prioritization | Done | Category filtering, rollup grouping for high-frequency rules, configurable LOW budgets. Quality-category findings hidden by default. | -| Pattern-level confidence | Done | Explicit High/Medium/Low confidence on every AST pattern. Confidence flows into output alongside severity and rank score. | -| AST pattern overhaul | Done | 30+ new patterns across all languages, 11 broken query fixes, namespaced IDs, severity recalibration. | - -### Phase 2 -- Dynamic Capability - -| Feature | Description | -|---|---| -| Controlled dynamic execution | Local sandbox: identify entry points, spin up test harnesses, inject payloads, detect runtime crashes and command execution. Deterministic automated exploit validation -- static finds `exec(user_input)`, dynamic confirms it with `; id`. | -| Fuzzing integration | libFuzzer (C/C++), cargo-fuzz (Rust), go-fuzz, HTTP fuzzing harness. Static engine identifies interesting functions, fuzzer targets only those. | - -### Phase 3 -- Intelligent Reasoning Layer - -| Feature | Description | -|---|---| -| Semantic similarity | Embeddings for finding similar vulnerability patterns across codebases. | -| LLM reasoning | AI-assisted detection of non-obvious logic bugs. | -| Exploit refinement | Automated loops to refine and validate exploit chains. | - -### Other planned improvements - -| Area | Details | -|---|---| -| Output formats | JUnit XML, HTML report generator | -| Language coverage | Expanded taint rules per language | -| Rule updates | Remote rule feed with signature verification | -| UX | Smart file-watch re-scan | - -Community feedback shapes priorities -- please [open an issue](https://github.com/elicpeter/nyx/issues) to discuss proposed changes. +Limitations: +- Interprocedural precision is bounded rather than unlimited. Context-sensitive inlining is k=1 with a callee body-size cap, and SCC fixed-point has an iteration cap. When the engine hits a bound it falls back to summaries and records an `engine_note` on the finding. +- Cross-language calls (FFI, subprocess, WASM) are not traversed. Each language is analysed independently. +- Several language features are not modeled: macros, most dynamic dispatch, aliased imports, reflection. +- Rust is experimental tier; C/C++ are preview tier. Pair them with a clang-based tool before using as a hard CI gate. +- Results may contain false positives or false negatives; manual review is expected. --- ## Documentation -Full documentation is available in the [`docs/`](docs/index.md) directory: - -- [Installation](docs/installation.md) — cargo, binaries, CI tips -- [Quick Start](docs/quickstart.md) — Your first scan in 60 seconds -- [CLI Reference](docs/cli.md) — Every flag and subcommand -- [Configuration](docs/configuration.md) — Config file schema, custom rules -- [Output Formats](docs/output.md) — Console, JSON, SARIF; exit codes -- [Detector Overview](docs/detectors.md) — How the four detector families work - - [Taint Analysis](docs/detectors/taint.md) — Cross-file source-to-sink dataflow - - [CFG Structural](docs/detectors/cfg.md) — Auth gaps, unguarded sinks, resource leaks - - [State Model](docs/detectors/state.md) — Resource lifecycle, authentication state - - [AST Patterns](docs/detectors/patterns.md) — Tree-sitter structural matching -- [Rule Reference](docs/rules/index.md) — Per-language rule listings with examples +- [Quick Start](docs/quickstart.md) · [CLI Reference](docs/cli.md) · [Installation](docs/installation.md) +- [`nyx serve`](docs/serve.md) · [Output Formats](docs/output.md) · [Configuration](docs/configuration.md) +- [How it works](docs/how-it-works.md) · [Detectors](docs/detectors.md) ([Taint](docs/detectors/taint.md), [CFG](docs/detectors/cfg.md), [State](docs/detectors/state.md), [AST Patterns](docs/detectors/patterns.md)) +- [Rule Reference](docs/rules.md) · [Language Maturity](docs/language-maturity.md) · [Advanced Analysis](docs/advanced-analysis.md) · [Auth Analysis](docs/auth.md) --- ## Contributing -Pull requests are welcome. To contribute: +Contributions are welcome. -1. Fork the repository and create a feature branch. -2. Adhere to `rustfmt` and ensure `cargo clippy --all -- -D warnings` passes. -3. Add unit and/or integration tests where applicable (`cargo test` should remain green). -4. Submit a concise, well-documented pull request. +Nyx is open source and will always have a fully open-source core. To support long-term development and keep the project sustainable, contributors may be asked to sign a Contributor License Agreement before their first merged contribution. -Please open an issue for any crash, panic, or suspicious result -- attach the minimal code snippet and mention the Nyx version. +Run `sh scripts/check.sh` before submitting. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the full guide, including how to add rules and support new languages. Open an issue for crashes, panics, or suspicious results; attach a minimal snippet and the Nyx version. -See [`CONTRIBUTING.md`](CONTRIBUTING.md) for full guidelines, including how to add new rules and support new languages. +--- + +## AI Disclosure + +- **Engine code** (taint, SSA, CFG, call graph, abstract interp, symbolic exec): predominantly human-written. AI was used selectively for refactors and boilerplate, with all merges human-reviewed. +- **Docs and most of this README**: AI-generated from the code and hand-edited. Report doc/code drift as a bug. +- **Test fixtures and `expected.yaml` files**: AI-assisted drafting, human-audited before landing. +- **Frontend UI** (React app): built with AI assistance, human-reviewed. + +As with any static analyzer, validate findings against your own corpus before using Nyx as a CI gate. --- ## License -Nyx is licensed under the **GNU General Public License v3.0 (GPL-3.0)**. - -This ensures that all modified versions of the scanner remain free and open-source, protecting the integrity and transparency of security tools. - -See [LICENSE](./LICENSE) for full details. +GNU General Public License v3.0 or later (GPL-3.0-or-later). The optional `smt` feature bundles Z3 (MIT-licensed); distributors of binaries built with `--features smt` should include Z3's license in their attribution. Full text in [LICENSE](./LICENSE); third-party dependencies in [THIRDPARTY-LICENSES.html](./THIRDPARTY-LICENSES.html). diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 00000000..94137664 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,22 @@ +# Roadmap + +Nyx today is a static-only multi-language vulnerability scanner. The roadmap below extends it into a hybrid scanner that combines static analysis with controlled execution and AI-assisted reasoning. + +## Phase 1 — Static Analysis (current) + +The shipped scanner. Multi-language taint tracking on a pruned SSA IR, cross-file function summaries, points-to and abstract interpretation, symbolic execution with an optional SMT backend, and a local web UI for triage. See the [Changelog](CHANGELOG.md) for the full breakdown of what's landed through 0.5.0. + +## Phase 2 — Dynamic Capability + +| Feature | Description | +| --- | --- | +| Controlled dynamic execution | Local sandbox: identify entry points, spin up test harnesses, inject payloads, detect runtime crashes and command execution. Deterministic automated exploit validation — static finds `exec(user_input)`, dynamic confirms it with `; id`. | +| Fuzzing integration | libFuzzer (C/C++), cargo-fuzz (Rust), go-fuzz, HTTP fuzzing harness. Static engine identifies interesting functions, fuzzer targets only those. | + +## Phase 3 — Intelligent Reasoning Layer + +| Feature | Description | +| --- | --- | +| Semantic similarity | Embeddings for finding similar vulnerability patterns across codebases. | +| LLM reasoning | AI-assisted detection of non-obvious logic bugs. | +| Exploit refinement | Automated loops to refine and validate exploit chains. | diff --git a/SECURITY.md b/SECURITY.md index 06c4ecc8..e730bacc 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,9 +4,9 @@ | Version | Supported | Notes | |---------|-----------|----------------------| -| 0.4.x | ✅ | Latest stable line | -| 0.3.x | ✅ | Critical fixes only | -| < 0.3 | ❌ | End-of-life | +| 0.5.x | ✅ | Latest stable line | +| 0.4.x | ✅ | Critical fixes only | +| < 0.4 | ❌ | End-of-life | We follow [Semantic Versioning] as soon as we hit **1.0.0**. Before that, breaking changes may land in any minor release. diff --git a/THIRDPARTY-LICENSES.html b/THIRDPARTY-LICENSES.html new file mode 100644 index 00000000..84ca7a8c --- /dev/null +++ b/THIRDPARTY-LICENSES.html @@ -0,0 +1,6671 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the projects used in cargo-about.

+
+ +

Overview of licenses:

+ + +

All license text:

+
    +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 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 2023 Jacob Pratt et al.
    +
    +   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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 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 2024 Jacob Pratt et al.
    +
    +   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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     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 (c) Microsoft Corporation.
    +
    +   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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     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 2023 The Fuchsia Authors
    +
    +   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.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     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.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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 (c) 2016 Alex Crichton
    +Copyright (c) 2017 The Tokio Authors
    +
    +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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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 2017 http-rs authors
    +
    +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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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 2020 Andrew Straw
    +
    +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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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.
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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.
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://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
    +
    +	https://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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://www.apache.org/licenses/LICENSE-2.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.
    +
    +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
    +
    +	https://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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  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.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    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.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Rust-chrono is dual-licensed under The MIT License [1] and
    +Apache 2.0 License [2]. Copyright (c) 2014--2026, Kang Seonghoon and
    +contributors.
    +
    +Nota Bene: This is same as the Rust Project's own license.
    +
    +
    +[1]: <http://opensource.org/licenses/MIT>, which is reproduced below:
    +
    +~~~~
    +The MIT License (MIT)
    +
    +Copyright (c) 2014, Kang Seonghoon.
    +
    +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.
    +~~~~
    +
    +
    +[2]: <http://www.apache.org/licenses/LICENSE-2.0>, which is reproduced below:
    +
    +~~~~
    +                              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.
    +~~~~
    +
    +
    +
  • +
  • +

    BSD 2-Clause "Simplified" License

    +

    Used by:

    + +
    Copyright (c) 2015 David Roundy <roundyd@physics.oregonstate.edu>
    +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 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.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    BSD 3-Clause License
    +
    +Copyright (c) 2013, Julien Schmidt
    +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.
    +
    +
  • +
  • +

    GNU General Public License v3.0 only

    +

    Used by:

    + +
    +GNU GENERAL PUBLIC LICENSE
    +
    +Version 3, 29 June 2007
    +
    +Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
    +
    +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.
    +
    +    <one line to give the program's name and a brief idea of what it does.>
    +    Copyright (C) <year>  <name of author>
    +
    +    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 <https://www.gnu.org/licenses/>.
    +
    +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:
    +
    +    <program>  Copyright (C) <year>  <name of author>
    +    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 <https://www.gnu.org/licenses/>.
    +
    +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 <https://www.gnu.org/licenses/why-not-lgpl.html>.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014 Carl Lerche and other MIO contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014 The rusqlite developers
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014-2020 Optimal Computing (NZ) Ltd
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014-2026 Sean McArthur
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2018 Carl Lerche
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Carl Lerche
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Eliza Weisman
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Eliza Weisman
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Tokio Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Tower Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 axum Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019-2021 Tower Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019-2024 Sean McArthur & Hyper Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019-2025 Sean McArthur & Hyper Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2023-2025 Sean McArthur
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) Individual contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Acrimon
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Yoshua Wuyts
    +Copyright (c) Tokio Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019–2025 axum Contributors
    +
    +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.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2021 Adel Prokurov
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2022 Ibraheem Ahmed
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2024 Benjamin Sago, Fabio Valentini
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) <year> <copyright holders>
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) Tokio Contributors
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) [2021] [Marvin Countryman]
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2014 Max Brunsfeld
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Andrew Gallant
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Danny Guo
    +Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>
    +Copyright (c) 2018 Akash Kurdekar
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2016 Max Brunsfeld
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017 Andrew Gallant
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017 Armin Ronacher <armin.ronacher@active-4.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.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017 Josh Vera, GitHub
    +Copyright (c) 2019 Max Brunsfeld, Amaan Qureshi, Christian Frøystad, Caleb White
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017 Maxim Sokolov
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2018 Max Brunsfeld
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2019 Simon Heath
    +
    +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.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2014 Benjamin Sago
    +Copyright (c) 2021-2022 The Nushell Project Developers
    +
    +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.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Jovansonlee Cesar
    +
    +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.
    +
    +
  • +
  • +

    Mozilla Public License 2.0

    +

    Used by:

    + +
    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 https://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.
    +
    +
  • +
  • +

    Unicode License v3

    +

    Used by:

    + +
    UNICODE LICENSE V3
    +
    +COPYRIGHT AND PERMISSION NOTICE
    +
    +Copyright © 1991-2023 Unicode, Inc.
    +
    +NOTICE TO USER: Carefully read the following legal agreement. BY
    +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
    +SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
    +TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
    +DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of data files and any associated documentation (the "Data Files") or
    +software and any associated documentation (the "Software") to deal in the
    +Data Files or Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, and/or sell
    +copies of the Data Files or Software, and to permit persons to whom the
    +Data Files or Software are furnished to do so, provided that either (a)
    +this copyright and permission notice appear with all copies of the Data
    +Files or Software, or (b) this copyright and permission notice appear in
    +associated Documentation.
    +
    +THE DATA FILES AND SOFTWARE ARE 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 OF
    +THIRD PARTY RIGHTS.
    +
    +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
    +BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 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 THE DATA
    +FILES OR SOFTWARE.
    +
    +Except as contained in this notice, the name of a copyright holder shall
    +not be used in advertising or otherwise to promote the sale, use or other
    +dealings in these Data Files or Software without prior written
    +authorization of the copyright holder.
    +
    +
  • +
  • +

    zlib License

    +

    Used by:

    + +
    Copyright (c) 2024 Orson Peters
    +
    +This software is provided 'as-is', without any express or implied warranty. In
    +no event will the authors be held liable for any damages arising from the use of
    +this software.
    +
    +Permission is granted to anyone to use this software for any purpose, including
    +commercial applications, and to alter it and redistribute it freely, subject to
    +the following restrictions:
    +
    +1. The origin of this software must not be misrepresented; you must not claim
    +    that you wrote the original software. If you use this software in a product,
    +    an acknowledgment in the product documentation would be appreciated but is
    +    not required.
    +
    +2. Altered source versions must be plainly marked as such, and must not be
    +    misrepresented as being the original software.
    +
    +3. This notice may not be removed or altered from any source distribution.
    +
  • +
+
+ + + + diff --git a/about.toml b/about.toml index e9e60887..4304a25b 100644 --- a/about.toml +++ b/about.toml @@ -1,12 +1,80 @@ +# Pin the target triples scanned so `cargo about generate` produces the +# same output regardless of host OS. Must match the release build matrix +# in .github/workflows/release-build.yml — otherwise the CI diff step +# (third-party-licenses) will fail on platform-specific crates like +# linux-raw-sys, android_system_properties, etc. +targets = [ + "x86_64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu", + "x86_64-pc-windows-msvc", + "x86_64-apple-darwin", + "aarch64-apple-darwin", +] + accepted = [ + # --- Apache / MIT / BSD / permissive --- "Apache-2.0", "MIT", "MIT-0", - "Unicode-3.0", "BSD-2-Clause", - "Unlicense", + "BSD-3-Clause", + "ISC", "Zlib", + "zlib-acknowledgement", + "BSL-1.0", + "NCSA", + "PostgreSQL", + "curl", + "BlueOak-1.0.0", + "X11", + "HPND", + "TCL", + "ICU", + "Info-ZIP", + + # --- Unicode / data / specs --- + "Unicode-DFS-2016", + "Unicode-3.0", + + # --- compression / libs --- + "bzip2-1.0.6", + "Libpng", + "libpng-2.0", + "IJG", + "FTL", + + # --- public domain style --- "CC0-1.0", + "Unlicense", + "0BSD", + + # --- weak copyleft (GPL-compatible) --- "MPL-2.0", - "GPL-3.0" -] + "LGPL-3.0", + "EPL-2.0", + + # --- GPL family --- + "GPL-3.0", + "GPL-2.0", + + # --- Python / PSF --- + "PSF-2.0", + "Python-2.0", + "Python-2.0.1", + + # --- Artistic / Perl --- + "Artistic-2.0", + + # --- LLVM / clang --- + "Apache-2.0 WITH LLVM-exception", + + # --- data / ML --- + "CDLA-Permissive-2.0", + + # --- fonts --- + "OFL-1.1", + + # --- Creative Commons (code-safe ones) --- + "CC-BY-3.0", + "CC-BY-4.0", +] \ No newline at end of file diff --git a/action-scripts/download.sh b/action-scripts/download.sh new file mode 100755 index 00000000..fb9c8d4a --- /dev/null +++ b/action-scripts/download.sh @@ -0,0 +1,148 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO="elicpeter/nyx" +VERSION="${NYX_VERSION:-latest}" +INSTALL_DIR="${RUNNER_TOOL_CACHE:-/tmp}/nyx" + +# Optional: pin a GPG key fingerprint here (40-char, no spaces) or set +# NYX_GPG_FINGERPRINT in the calling env to require GPG-signed SHA256SUMS. +# Empty ⇒ GPG verification is skipped (SHA256 + SLSA attestation still run). +PINNED_GPG_FINGERPRINT="${NYX_GPG_FINGERPRINT:-}" + +# ── Detect runner OS and architecture ───────────────────────────────────────── +OS="$(uname -s)" +ARCH="$(uname -m)" + +case "${OS}-${ARCH}" in + Linux-x86_64) TARGET="x86_64-unknown-linux-gnu" ;; + Linux-aarch64) TARGET="aarch64-unknown-linux-gnu" ;; + Darwin-x86_64) TARGET="x86_64-apple-darwin" ;; + Darwin-arm64) TARGET="aarch64-apple-darwin" ;; + *) + echo "::error::Unsupported platform: ${OS} ${ARCH}" + exit 1 + ;; +esac + +# ── Resolve "latest" to an actual release tag ──────────────────────────────── +if [[ "$VERSION" == "latest" ]]; then + echo "::warning::version: latest follows a mutable tag. Pin to a specific release (e.g. v0.5.0) for supply-chain safety." + API_URL="https://api.github.com/repos/${REPO}/releases/latest" + CURL_ARGS=(-fsSL) + if [[ -n "${GITHUB_TOKEN:-}" ]]; then + CURL_ARGS+=(-H "Authorization: token ${GITHUB_TOKEN}") + fi + RELEASE_JSON="$(curl "${CURL_ARGS[@]}" "$API_URL")" + VERSION="$(echo "$RELEASE_JSON" | grep -o '"tag_name":\s*"[^"]*"' | head -1 | cut -d'"' -f4)" + if [[ -z "$VERSION" ]]; then + echo "::error::Failed to resolve latest release tag from ${API_URL}" + exit 1 + fi + echo "Resolved latest version: ${VERSION}" +fi + +# ── Download the release asset into an isolated staging dir ────────────────── +ASSET_NAME="nyx-${TARGET}.zip" +RELEASE_BASE="https://github.com/${REPO}/releases/download/${VERSION}" +DOWNLOAD_URL="${RELEASE_BASE}/${ASSET_NAME}" +STAGING="$(mktemp -d)" +trap 'rm -rf "$STAGING"' EXIT + +CURL_COMMON=(-fsSL) +if [[ -n "${GITHUB_TOKEN:-}" ]]; then + CURL_COMMON+=(-H "Authorization: token ${GITHUB_TOKEN}") +fi + +echo "Downloading nyx ${VERSION} for ${TARGET}..." +curl "${CURL_COMMON[@]}" -o "${STAGING}/${ASSET_NAME}" "$DOWNLOAD_URL" + +# SHA256SUMS is required — the whole release signing chain hinges on it. +echo "Downloading SHA256SUMS..." +curl "${CURL_COMMON[@]}" -o "${STAGING}/SHA256SUMS" "${RELEASE_BASE}/SHA256SUMS" + +# SHA256SUMS.asc is optional (GPG signing was wired up mid-0.x); fetch it if +# present so we can attempt signature verification. +SIG_PATH="" +if curl "${CURL_COMMON[@]}" -o "${STAGING}/SHA256SUMS.asc" "${RELEASE_BASE}/SHA256SUMS.asc" 2>/dev/null; then + SIG_PATH="${STAGING}/SHA256SUMS.asc" +fi + +# ── Mandatory: verify the binary's SHA256 matches SHA256SUMS ───────────────── +( + cd "$STAGING" + # --ignore-missing: SHA256SUMS lists every platform archive; we only have one. + if ! sha256sum --ignore-missing -c SHA256SUMS >/dev/null 2>&1; then + echo "::error::SHA256 verification failed for ${ASSET_NAME}. Release may be tampered." + echo "Expected (from SHA256SUMS):" + grep -F "${ASSET_NAME}" SHA256SUMS || true + echo "Actual:" + sha256sum "${ASSET_NAME}" || true + exit 1 + fi +) +echo "::notice::SHA256 checksum verified for ${ASSET_NAME}." + +# ── Best-effort: GPG verify SHA256SUMS.asc against a pinned fingerprint ────── +# Trust model: only accept a signature from a fingerprint we have pinned. A +# signature from any other key is treated as a failure, not a success. If no +# fingerprint is pinned, GPG verification is skipped (SHA256+SLSA still run). +if [[ -n "$SIG_PATH" ]]; then + if [[ -z "$PINNED_GPG_FINGERPRINT" ]]; then + echo "::warning::SHA256SUMS.asc found but no GPG fingerprint pinned. Set NYX_GPG_FINGERPRINT (40-char, no spaces) to enforce GPG verification." + elif ! command -v gpg >/dev/null 2>&1; then + echo "::warning::gpg not installed on runner; skipping SHA256SUMS.asc verification." + else + # Fetch the pinned key from keys.openpgp.org into an ephemeral keyring. + GNUPGHOME="$(mktemp -d)" + export GNUPGHOME + chmod 700 "$GNUPGHOME" + trap 'rm -rf "$STAGING" "$GNUPGHOME"' EXIT + if ! gpg --batch --keyserver hkps://keys.openpgp.org \ + --recv-keys "$PINNED_GPG_FINGERPRINT" >/dev/null 2>&1; then + echo "::error::Failed to fetch GPG key ${PINNED_GPG_FINGERPRINT} from keys.openpgp.org." + exit 1 + fi + # --status-fd 1 gives machine-readable output; VALIDSIG + the pinned fpr + # is the only accept condition. + GPG_STATUS="$(gpg --batch --status-fd 1 --verify \ + "$SIG_PATH" "${STAGING}/SHA256SUMS" 2>/dev/null || true)" + if ! grep -q "^\[GNUPG:\] VALIDSIG ${PINNED_GPG_FINGERPRINT} " <<<"$GPG_STATUS"; then + echo "::error::GPG signature on SHA256SUMS does not match pinned fingerprint ${PINNED_GPG_FINGERPRINT}." + echo "$GPG_STATUS" + exit 1 + fi + echo "::notice::GPG signature verified against ${PINNED_GPG_FINGERPRINT}." + fi +else + echo "::warning::SHA256SUMS.asc not published for ${VERSION}; relying on SHA256 + SLSA only." +fi + +# ── Best-effort: SLSA build-provenance attestation (Sigstore) ──────────────── +# gh attestation verify ships with the gh CLI (preinstalled on GH-hosted +# runners) and validates attestations produced by actions/attest-build- +# provenance against the Sigstore public-good transparency log. Unlike GPG +# this requires no pre-shared key and is the preferred trust root. +if command -v gh >/dev/null 2>&1; then + if gh attestation verify "${STAGING}/${ASSET_NAME}" --repo "${REPO}" >/dev/null 2>&1; then + echo "::notice::SLSA build provenance verified for ${ASSET_NAME}." + else + echo "::warning::gh attestation verify failed or no attestation present for ${VERSION}. (Expected for releases predating attest-build-provenance.)" + fi +else + echo "::warning::gh CLI not available; skipping SLSA attestation verification." +fi + +# ── Extract and install ────────────────────────────────────────────────────── +mkdir -p "$INSTALL_DIR" +# The zip stores target/{TARGET}/release/nyx — use -j to flatten paths +unzip -o -j "${STAGING}/${ASSET_NAME}" "*/nyx" -d "$INSTALL_DIR" +chmod +x "${INSTALL_DIR}/nyx" + +# ── Add to PATH for subsequent steps ───────────────────────────────────────── +echo "${INSTALL_DIR}" >> "$GITHUB_PATH" + +# ── Verify and set output ──────────────────────────────────────────────────── +INSTALLED_VERSION="$("${INSTALL_DIR}/nyx" --version 2>&1 | head -1 || echo "unknown")" +echo "nyx-version=${INSTALLED_VERSION}" >> "$GITHUB_OUTPUT" +echo "Installed nyx: ${INSTALLED_VERSION} (${TARGET})" diff --git a/action-scripts/run.sh b/action-scripts/run.sh new file mode 100755 index 00000000..74a8c914 --- /dev/null +++ b/action-scripts/run.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash +set -uo pipefail +# Note: NOT -e — we capture nyx's exit code manually. + +# ── Build the nyx command ──────────────────────────────────────────────────── +FORMAT="${INPUT_FORMAT:-sarif}" +ARGS=("scan" "${INPUT_PATH:-.}" "--quiet" "--format" "$FORMAT") + +if [[ -n "${INPUT_FAIL_ON:-}" ]]; then + ARGS+=("--fail-on" "$INPUT_FAIL_ON") +fi + +# Append raw user args (word-split is intentional here) +if [[ -n "${INPUT_ARGS:-}" ]]; then + read -ra EXTRA <<< "$INPUT_ARGS" + ARGS+=("${EXTRA[@]}") +fi + +# ── Execute the scan ───────────────────────────────────────────────────────── +OUTDIR="${RUNNER_TEMP:-/tmp}" +SARIF_FILE="" +NYX_EXIT=0 + +echo "::group::nyx scan" +echo "Running: nyx ${ARGS[*]}" + +case "$FORMAT" in + sarif) + SARIF_FILE="${OUTDIR}/nyx-results.sarif" + nyx "${ARGS[@]}" > "$SARIF_FILE" || NYX_EXIT=$? + ;; + json) + nyx "${ARGS[@]}" > "${OUTDIR}/nyx-results.json" || NYX_EXIT=$? + ;; + *) + nyx "${ARGS[@]}" || NYX_EXIT=$? + ;; +esac + +echo "::endgroup::" + +# ── Count findings ─────────────────────────────────────────────────────────── +count_findings() { + python3 -c " +import json, sys +try: + data = json.load(open(sys.argv[1])) + fmt = sys.argv[2] + if fmt == 'sarif': + runs = data.get('runs', []) + print(len(runs[0].get('results', [])) if runs else 0) + else: + print(len(data) if isinstance(data, list) else 0) +except Exception: + print(0) +" "$1" "$2" 2>/dev/null || echo "0" +} + +FINDING_COUNT="unknown" +case "$FORMAT" in + sarif) + if [[ -f "$SARIF_FILE" ]]; then + FINDING_COUNT="$(count_findings "$SARIF_FILE" sarif)" + fi + ;; + json) + if [[ -f "${OUTDIR}/nyx-results.json" ]]; then + FINDING_COUNT="$(count_findings "${OUTDIR}/nyx-results.json" json)" + fi + ;; +esac + +# ── Set outputs ────────────────────────────────────────────────────────────── +echo "exit-code=${NYX_EXIT}" >> "$GITHUB_OUTPUT" +echo "finding-count=${FINDING_COUNT}" >> "$GITHUB_OUTPUT" +if [[ -n "$SARIF_FILE" ]]; then + echo "sarif-file=${SARIF_FILE}" >> "$GITHUB_OUTPUT" +fi + +# ── Summary ────────────────────────────────────────────────────────────────── +if [[ "$NYX_EXIT" -eq 0 ]]; then + echo "::notice::Nyx scan completed. Findings: ${FINDING_COUNT}" +else + echo "::warning::Nyx scan found issues meeting threshold. Findings: ${FINDING_COUNT}" +fi + +exit "$NYX_EXIT" diff --git a/action.yml b/action.yml new file mode 100644 index 00000000..17cee50c --- /dev/null +++ b/action.yml @@ -0,0 +1,68 @@ +name: 'Nyx Security Scanner' +description: 'Run the Nyx multi-language vulnerability scanner on your codebase. Supports Linux and macOS runners (x86_64 and ARM64).' +author: 'Eli Peter' + +branding: + icon: 'shield' + color: 'purple' + +inputs: + path: + description: 'Directory to scan' + required: false + default: '.' + version: + description: 'Nyx release tag (e.g. v0.5.0). "latest" is accepted but discouraged, pinning to a specific tag protects against upstream compromise.' + required: false + default: 'v0.5.0' + format: + description: 'Output format: sarif, json, or console' + required: false + default: 'sarif' + fail-on: + description: 'Exit non-zero if findings meet this severity threshold: HIGH, MEDIUM, or LOW' + required: false + default: '' + args: + description: 'Additional CLI arguments (e.g. "--severity >=MEDIUM --profile ci")' + required: false + default: '' + token: + description: 'GitHub token for release download (avoids rate limits)' + required: false + default: ${{ github.token }} + +outputs: + finding-count: + description: 'Number of findings detected' + value: ${{ steps.scan.outputs.finding-count }} + sarif-file: + description: 'Path to SARIF results file (empty if format is not sarif)' + value: ${{ steps.scan.outputs.sarif-file }} + exit-code: + description: 'Nyx exit code (0 = clean, 1 = threshold breached)' + value: ${{ steps.scan.outputs.exit-code }} + nyx-version: + description: 'Installed nyx version' + value: ${{ steps.install.outputs.nyx-version }} + +runs: + using: 'composite' + steps: + - name: Install nyx + id: install + shell: bash + env: + NYX_VERSION: ${{ inputs.version }} + GITHUB_TOKEN: ${{ inputs.token }} + run: ${{ github.action_path }}/action-scripts/download.sh + + - name: Run nyx scan + id: scan + shell: bash + env: + INPUT_PATH: ${{ inputs.path }} + INPUT_FORMAT: ${{ inputs.format }} + INPUT_FAIL_ON: ${{ inputs.fail-on }} + INPUT_ARGS: ${{ inputs.args }} + run: ${{ github.action_path }}/action-scripts/run.sh diff --git a/assets/nyx-logo-text.png b/assets/nyx-logo-text.png new file mode 100644 index 0000000000000000000000000000000000000000..e0fc04e25936c5b636b214fdab5200894673f502 GIT binary patch literal 331782 zcmeFZRX|+Jwl>;Ga3?r4jR&{j4M7704@rRF?lkTi9D+lD01XN5?(XjHP6v0l%i8;# z|Ln8Yf1mE_o&7LtmW`@0Yg7&SW``;(N@Jptq5%K^Oj#Mpj{pF|2><{$g@W{wllIt& z{BlDy6;luc0Lr7#AM{_nJcA5nJ}LkJ?(_hFZvX&r_mbuN2LN#5008#%006-x0D#Cg zwLt~^QlM1 zYbzTEL04hwf7K9tN&l72P7V536-P^9YIOx=kOaiu7{trQ!Nx%?f(8PC!1hKaf*&Q{ z|5x*uCt+$cM@L&hc6JvR7d97eHi*3`JEwqv06Pa4I~N!0OAS^BHycNNS5_Mbntyll z-~C7$I~dxV+d7&?3`>I z?EklBj^-x+FU|fc`FFE_&FkOfz<+fnsBG?PY^5P-Zf$Ji@G>+JP7bcO;D6EiN74U` z^xsV-AXX52Ra<>SV-e2(YVsdhf3N*7LhAoPh=-f^KMDOu(SJ1kYvh7T_U6VfO#O>> ze^L5J-hb5xv;W1{|KRh#U*f-VU*4h!8kqh6tOyY_br!R506-KVD=GHL74D!JwaRGz zGli?cox=mA&rrI9$>$#*=&0awrmGHZFbKzN_{K0gFyI%5=1h8iU=kZ`N>y@zP#1di zNUhp>P&nBFtoSY}0E;MytkD)FMFY2{Pi{cNz2@usYpI9V@Sim3rfpY7LtJ_tMwXAI zN*a&r{WY}wL_s(xi17da?f(l4PQ)cMF2vt5S)n27grU48B_d7Bztb&Hl=qgh_B@*z zKbl!YwkdiV-`Kc!(G5F{;C=OXYHbeTqBu7&!qI3#lnWYV(zHf?H6YpZes%IZ-{PN} z+kv&R>PGGO-K2FL{Ts9A@{yyNYhY2y)4N7BppG~_dKbYzUt$|4;6`vO+4dy5bj+JNY)-|Cf=gyLMLwm) z?9GPf3;46@hfr2DxPPpXlUPv@%7fen=X)BF0hIV)MIEpv8O3wQ-qeB159z(k?S+@U z4Mjl4BQcAD$XtlOfo<#0(Yv^*n z_#bQ1HJJ(r@yYnAEwg@<1b+Ly;ggoB{h8bVe&wo;`4EPt6HbTFjCu7Rn?%#J1<8d| zxyd27rw!sh7s9rL(B=u;;~#6u49TTmio{1Bo=PZ+*`L)dtq-MLAi|d%VWP7Cl!6m` z@t3I$?wU($9uxSTjXgZn`>pr0=PL|*HAX06Bq9az&_H#rY;svg>+zlM#?q1!2cEbc zN*j|r1|(1k4FqVzXK9piyo}?;c7_M4e%E##CV`0@Go!q${af;7W>If+bl zUo0-@Ox2{J;+HfV&^`)LD}C7!-Zj+lC%&6T*Tc7}$w{o=qqGkRxb`Jbly~R+5h9oX zSAj6e5UzM+5#8c%lM+g~#;nn|Gd&B7Df{8?>WGYVqI>_&jgyb!zD=ON1_+?rIXayV z4Q0=pVOZ4yLZ*tjXiICIqk1n~U*oPHAs0%1W35PIbf%ws%>GpUruQtKjv5-aP5FC^ zDgx?Z{be*(Hn`7&X_e-T#n)%MU}nft?Ot)R!J~0TOVi!M(hJk*Dfwi`bZG5 z!R>2Wms$$o5XNzxL5UB_9ZhAL-A~s|N%i6eA7XY29BOl!x-FC|k@pL9nHr?=jN^Jg zh<^ibGA7(6=P~E2`RP1h%??V)piZu5OTh0sDQ&wFjUHp-m|+U19S?Q(3g2K%zIQ*m z4Hi0kQ>*2NOlj0oS!;Y4;pDm_yAv$7Lm6s*)k~?<_4jRq=oNe@YttJmOd13~7(84$ za5d?{Gj;qaE#b~6Q@b%w@HHaSF)w`1S!E)I7dNh&$&>j#=aX<}5x z9Zs=yvR(b3UNF7Ug%<&?U5===(WY?KjlR7Y+93Qp|4?w0XP>3?Op}OFmeAq774J{x zh`x};t!j`0DOoXXX#{b!W1Quqlu~Dt*+0i%a?{fnm2HIFy}pTOh&^n9eAZ8`7`X7h z_iYF$}u-Fh-qTkM~?YdiA5?zEP?s`KXY*Zj5w!S~XC zih>w*bi)I?%wk8L=$a1Bo2XG}eJPmpvgd5;;2leZJci5qF48>@@Rt7gZPq?AXtug= z@7gyr8sBxxazSu|cKlX)b4sum>>tpIa63$MfP;PP?&R8*12Yj_P+I6(%EF9@FuT6v z1wRtV+p#AWI0MdF%A0HoYl*DA%%`vTYV#MErhiTc+17yj1gl>oAk!Y-ME4EqEc91- zZ_bhPmAz~G#BjzE)ee|pUN>tvS{HGyT6H&duzb9C`MG#pox;cY8|Uw0g@e)*jRRs2 zVa9RI2Pu=Jyt~#b=DauF?z!M|MwYhxk{|l#?7MS`CGz2C&9ob8^=JorhHq@t^5Urj z1wk<8JjW-;lm0FerZ8lSbB{`eON+X7tE#Zm-RvgJD*N{MxD0t@s0oA8wBO(n#1k~&AZ zD~}IM#{vTV#u*%k8RWN*Vmq2-`>jr8HD^ANZ~30@&(6*iRjB?h5~83J6$y~j^*f6@ z2|JK&6iSo3-qzGeFGi$-x3!z+ULlhqKL1fMM#m8MLc0xqC@YG?1U-Bd`0Np7n zEE7TW-A@X?p;9)M#g6Hen))gO)-GoCQr-7DP8nf$!uR&~XzlUKiAv$;+ZXS8U0no7 ziE(0J0_RB-09v8B;g;t5)8OIZ%j1<5ZSUIRV(ZJ<@3#Lq6+E|a{umNa3S|Fc#HnLI z97!bsGGn%489k;HM(mCTd62Gb7WgUoSKVLS9GLwuB^?MO(uTwPGNCR>e0;jrQun3L zgJkRewUe@z>#3&nNmVU&vEW<1%Vb8&)THwHTMaSeT z9-7oXZA!I+=tOcfThzU%=zyUYhPN`7<*mT^$wTMZRePjU4IfZwLH#jzyZUf-ZlR(6 z2VJ-DKQvLO58~0$_`7FP2?@{%3r^C{pQP`IZ9MTJJ?@>!udj#(J2U43uxRlEzOtyx z-}vjoOIQ7r3)7yg_8P?4yr8JH> zR%v;c*?MlY}S!prCa1Mm2xnyaP)gYfxrufJTX0X_4QHk{iMCfFin< z<{+cB+`YKEoz0)j%cGw`uz zcPn!;j`tP2&}_BR(Ay#{X3NY5LKz{{mc4Z$xhyOo1Au`Pz zke;cqFPB`|;qx1R$yw1YWVZ{70SM&a#{G72u%^BO%VRwm8AN@dKBZ`N<_pmLa9?Et z)FrjTas40#JpPn^_&NUl2Bj&w?H6&2mzlGgWjjS;6*V?jPw430L3i5k*pJv*mc$jn z8Fl}V-nDv3-=de}el75usGHeSNBzK`IWmjQxK$NWpk+J~k{IbAb^nnyQ7c{dRCnW_ z+>kfaQr}=6CTQ2jm0D1PBOUj?_6rZis9e5gtxKLmhLJRTrTYv15Kki2P0b|gD2kok z+gvcN&vjXNndzgl=#vhPS%rzV%qJx3x^R}*}wLvD9pYBhJ)k|1bOU5;OckZ7%_e=Ud#o z2x$F{vYXWgL~V~-S1n&@YHJipY{$-uy7A|aBl^8S1ta0*c$KC;d3oB(aE?iCStp%6 zI&Sk`MTeQ+xfIuXdeeK8m?;7RrrfzZWjS8(h{To)cC=b?T`dU5HBas}%2=TuVpTEh z)Jnt3e-><&x>8U-lVkJwR-ci-F*D#0twaS$ZxK7CW>lKgq%O^)^6^x<31S1`AksvL z6i~OmESHw>%WEP2Fq_?-Sk~nRLrrF~j4|s%y>#CJJxnK=CxJKO2-?#0hw+JPnICyR z(S;dcfYRJp`pyE=LKsGywhYvs*hYRridmo4JuEMKuWfXn0Zf##W}g4Fkb)z8ugBgU zSg26p)FC69nD+J{_2{Y~arJ zAxvQ3WMqRe-WSvy9vdoDmQdkipuMJ)ZFWjP<2TG*3*L~;wGYzPn%@#V&0OblMpMfW zWL4?eq`lRQL3;P%e1 zzo%BMCs$XMw4Kv3iEt&*v~F@IaxWv;D99j~1Nr)!65-5t{8og?YoO7!c%||{uY%;q zss&U&r?=~}$9lFIyj)vCy`7UH9`-#w^zW@ZZCKiY`>yl?1y#Zy|LnmA&4lJQOZ zupW1%{Rz&w9zr<$>mY0pVh7_C}r?o14qRCIW+4Sdad(FONyIdF(X12EhBl(EJA0mgdnB zE_-0@lTX&uFPipSerhi1QrlWNcA?L7;s;{0m|RNK8b#c*ntPH<{aH!+)QNa1wBcrP z5(a1@x!pqM!MR?p%2{4d4~!|vDb+D|9D9bDf;cA7X*PQ%kG$`QX{zhEuicEv^FtiG z1p7HjEa=M=XN6nkk6o;lSDYgetctA{igTgmi%MEG#f5xDjg1J@nw4i`W!O682mVVx ztZltl6op+|(>$gTcteNJTqP;2&v);o$KGe(Aob@^Q6IT!3s)q`37KU&XPRnAN*>Jv zKNV&i0cN`5rd+cN`r*a8 zq_(obDel;Qb$MWn^8J+Oyb8CH4eP23RmakB+anSS+xvFyDuFC-I|V~V^q(RPz?Bg` z0MOvLV&T-;>YFuvcDK$KxtyLp-7S5CsV^vqLY4a~PT8TD4>g^=k$!k{pP>OZfIm*N z-YMxa3hyu?sR4DymFkn>NeCi-^DBf}`0z!macNX2jKt7HF!I{DXd3o?9rfMs?Pk<1 z?RAxGfbNfIa#beQtYX?`z2*?hL^l)09|y8q1c55F3L2C^fI!K@&e;!bpR)(0lVjUMG@2PE=1C!v8aphWKJAQ6-Wemq;c7YojB4RZFgP_W?!qmG#=YjSV{DQ}BHF z+0c3Qv#Y%s`s_*KhqmTG)5^-_gQKFy@SUq3rQ;P+uc?C=bv|~)P3HflRIP1CivFf! zcOm}$IEv>tadVU0fAr}w&UR=qr3`mjmjyG*H?_S}(@I==qLfbd)d)1jdX!z+ot2L`9l8)JYVvwq9NkG~UhO*E~$|?CaqR zM1K0j5u)4^1EI45C3cnT2R>R6vDYLtt~p@)V)4~ffX>_B4(wd+2*K4$ zAti|7LZ2wRNe>}dgae^XJ{5FCoKoBA{NEQ4H++E_)HKFpGJg&9@`eSu@LR?k}iGCbnd675F+k2-$an`nP?VC!t4WF1|}H6@HUc}T1ck&N}O z&;F3^Z7mQSzo|G|lc`7i#vp>i#h_#}G3N0L9N$lkx@}kRYK0D|H%yV9#DEpog-{xo z+%?BjAp-W=UY;*_aIwdBY4IZ8Ev575^s?VB#u-lvIyr)EEJ)-i=61+Wz^|V}-zs@x z{^ng>ABtSj5P-=Rp>F*y1XJ(O-Q#$SP;>zz@|3mg{y-x1wP(eWnD$Ln8$R}gPS0z1 zT!USGFQUSn58eYAf?KkIAE=7pFiJFg9qrfXgakm}E_h9F9Iu=?WhN#7ViZPCOcVu)VI#lQ3m=rGKI|B_-V!E|d}NyGup|{W z`AmKQTo~A3a;|E%wmca+h8*UxxKx%J1V3^OL|YNrt2Q?MB8K@)%=p^xnp`poo_|tw#5Gjm z-RG*>h;4X^wTZxB=>DFx*v_%fp@cKs{!YE8ug4#Uu;!UN2LK=uJ3xj7`U~GR(za~3 zBF_}97u^<@VMQazAMIoa0m5)jx40?<2-WSixf(nhIyUSF*ljG_bInXwl1G?&2=*h% z(jk@jj=#IztL#SKLWH0jYP-Rx((4>Ve><6_9TvOr*7ACr*>27pmlo?cKK{dwN+gC4 zC1~pUN-*rki}I;gQRGC_t>6^Nb>UgeEl=mTBZWo$gFOaU|DY~0&XnYl%$Q`U%n**j z5{bTwx)YcF@Tc#Ak~qyjFUGi++CSMINMc2C_knUkCL6&nNGW6bG!5%2MGU?1x4Z}D zwI}O(;w^$>0FBoS?Xo391IF?B?6V38k_NJM>*l>b)%Df2KwXxW$R4AGUe%gLgI z&5>)5%znC)SU$)uFt@!&fD1)z{FHa3CPU4xD22wyJa(2{I#w@Yw1y)7)m@-s2TD)_N4zSKl@tE)TmL zvV*uGe{?OrF+c)e%zF*!UYDfZ+v(yA5DZ?kxnTT$s8H>bxzTPVsSCEz?= zbu)Lz#L6fY`pkA_OG};;bB=dP)32bv!l*fZe zjEAZq(dZthbCg6Ob$8pc*@FYC=ehB#v({ziTFUZ5HO_{A*w-f;5*f2(-ly|GLZ6%e zidj)uKV16d??O7OZYsfXsgf}(8Vuh<3D<|;pwM=_DxV^YL(L-Aj?!-jCS+>w4xeo( z7C5jWBQ2x?v48j58t3KYuU=H8^ScZLl{TJc>M)iSFvqCol)Uh;DK z{p%TbHyf*9o^!LZ1hP2Z>pe9CgeK&Ji$HGPZJ{?z1z7KzHUu(v9RV>^^S&Hp_-aHD+TLs!NY)Zu%GIohK_Z# zXJQ(UYzeFZ%jmVUnTa^tIb@9a|RQ(9Sli;&iw-~wT1 z(ZfgJ;Vg{s_`8&RlWOy5V^=@#DD!x~HkBW9I?-n-w;89aQ^MEso9iok?Qj(OU`o#T z;t}o8ZYjRZ2*2WK7v#Zs-R1WOTDK6BkKJVqV;1pZ-$Ho8JDV4g^dY?EUr6qP=zFa2 z8hhfZ_;N@=Q#2o7BWD*?gVbTRgP>t2Ldn#EkHG3}kU6QWkonuXydfOBphQ;`=#>i2 z`Nu-bTCq3jJwLAk8K5=(LUN!(P`9or&%R{nMMG0AJIIlacS1xbCd=Ydbw$~UbX?aX!Zr0tcp?7dIj@NxB zOB;~fdfYBI)ArL1V|lLqi3;gc87Db3qKeSo0|Bq1BxyqF@lBUKS~j4ggG^;Zw-X?P zsrpC5)(4^s8=mBDMH;%Esf`YEK}2BUIXD_ct4cWzh8ElYYMLr~-FNE!$njNWKBP1t zRV_>5=8u~JJ%DeaFoS}wDV*QI``*m@7TMb89_C`B+xY!sIWDj~>~Ge>t5DI>*~f2h z*}uCJqQpy^jHKuBl9u*p@|i+X~~iMp2P4s7Y+#8@|-}A0f#GJ zhS7A94qg9bDJ6ziY*9v+EW$Jxx;#j=7oH%lO|CrW6@G`l!EekXpSvS?MHotBwYdY) z0LuR4u7$$Bc73rpuApax(K`;Uw;{&W9sOK+fRpztZ6|BO!ak{%hL#QbT$CN^GdL+k z!32)ZsthN2YJ3l)DdzDYiB@8vFX!gG_SPW1fhdD5Nmji6kMr>1KiZ%68WO%BdTfVR z^fF(?{!*f*4O7A(YK@NsEOezk2&G<@jb82&m$i-D;wN$pKN;%i!)z(LZJsDF9LWt7 zgpj}1&H94p#izF?S(WhL;)qey&3&59HanKP6IM!DgA0ZOJB;}9FF-7$?_YdBR;c&r z2yn)5@XrbhNTJHi}jq$J+@KcPHcDr#*W& z7pv7&EVM9s%T!Lqi4pAnaPnp7 zn7gxL)Uj_;;`(Qb^yC_W1M*Rx!%Y0lxv?U6`;g2LWqPIM9P-k1`GBd8C99Yzy2ttN zZ=+J^$L*h{>u{G(q9c6kT(E>{D$30GfZj`lP|t;$lI04vrt$1wxP={?x;?7b~KCx`~EFhhje+Cx8zsF1)QhX?yF*r5hx+08{jpo9>iaYh25n z+LtwTj)Q+2 zM?hm+R%K)T)V$7p%hAkEsm)5ACjtD#A0p%Kzaug{w{VqpuV_kn->%TWXOGv1J7kZq zw|+F2e|og{I&;ci=Zt>s>MoWcyWlpI62eIk)67u-ko`On`8H6arq|v*8LgaJq&tBr zoR*5y%~`fX-Ad1~kKQE5>WCbC$Y5e!#EGO#iNztvZ49mQ?S?rnM zYC6CFIwM*NR-(@sSu#m{<5!|Q%Dh{D9|WGKNpYZGjP8ui1k>8iOX$4AUeQ7N1%VVd zXExWIWhPuM`r!0V84vv}%6}3gnenH=n>Hb+#MHknyM25zJ9uC-g1sn`uLaI>KDco~ zF9H_npJdm-ee@Lp>oo9LB^5D>L^8~0gW<&+%0^p8K6#Tcz!j0WXZ*t-9Lw@zIX2kI z*8>CiJoXTU4@HE%0r&u!lb_Z&BJNuP8Ex<0T)!*GV1>>IF_0&mU~72q9(s?i4e{8JFaWf%ymqysBQ z;!ECck3+EsRig>QF5at5m6uM$isDR8_)0U-P^@Q(N5^4yxA*M?QQ%$ zDt6u8+u^t@O#5&a4|DI-&ug8x4H!C+3A-$eyt_aXdJIG74aA3cWg+Jy&T?5nwyCR0 zhd`eRMtS#x^dH@q2uXe6$432LAtOpC>z(tsF72k3f*=r6O4WmMRAAFN`1cVCY_yW! zr4ojR>JEE6RVFUoJUp#xfzcdM`yS zli~G&`%RDbRs|?)jETBCtxMFEODvYNAdXVF?{mdTU6EvnZ6;fZA#BPeNEW&`=W2r| zouH5otq$D{GC7P3;S-zDRM%A?pcVl+3y2GEDD~ms#;$;;#u^(1Xr1HNtheHAkF-Pr z@=uMwW4*Xz=P(b*TTgCOYi=)i_N_|fsAe8F`}m41XM4;)$>7GHn`-rjaeNEQb78qn z3c*g>?9L*-w99=HYYax8h7Y2?sA689d|pyduRfPz22(OVlGKa(P@gmME>|Wn{^S@Y zP!(H`J2lmwooUB1m^P2l)};ZOJS!gqp2JfcrNH2qIJh@y;WE^w%8DWf9KW*DIULUkh_nL{n?V zwe92Ucul=qt8<46lbh=hC3!?iad}oLS@9F4R1Qx5z}tYddRIW`D>uooxGBj7bvD#> z(kntEbX0+u~&~Wp$b*UvVP>RFaE_%i{A9P>G#! z2NZo0+in4%!RHN875q?VtWn8zM~yL2@(Jzgs%WTNgr5#}an!q*9;i&(`zeUSLyt10 z-)wSR>KB`e$D{9Ipq4zAL=5ZC$?JlXKqL&=~3hB||KwJ=}Kg!4GEH7rDK^obO({ z|B>q%XeoOA$}0$f`)9*UFqJ0?R)~qpnE>tb^01aOdfKUe6~JdJNilQQX|pi0`TV-) zejPz<#e{J`Uw(nyutQZ#stdv0XOesTUhG~yiJwZVLsTL^;F|KLs+Je>wsyv+th)Yb zq%)gLO@*oHyo>2?PEL>aAg8or4Mh}J=NH}3lzm9U>!K9vWxvdR%X^DTP&9qic0c0atQz#`lFB_v+-Rh{(=)A^<88ZSbg=o)9;;B|0CZqx-wl{hI}L;b3%e z>~SeedlUU@WIEc#aQHxtNS6xfX;4BaN1ReGGPW5FD))>pP55!ZNJZ`=OP*vCbCUS# zIsmZ`+tJoVwUG!+^bR)@&XRuy&jOYWG~2f)fAHMd-TwR6WlH_{W8P@A~g*b=#X zr=|LX@cM6{rFpcfb(20!smLXEl3j&dp?71-^#=ST^t*)O$a!%G{ zH#G3~#yUr|3_@sX$m=FAjJWX-P%QY(k+DXq3MW*O)*;sD6use(hIPkeBudkq|CjXS zF83>q7n~42YN7rl#}U&g#b(NjZS_u&bXVX9_)qrfN3mHhHpT2wBX$V%$KX{Q*N>ek zGlhs;WC~QR^CsKNAIslzy-@cTu#Z^`gs-3p7XIo{!Z|dnJZ-vR;e%;9u$`ine{Cr3QIyg<6v4DGq=11fx)W7~3k(8)dQ2%#I0>V| zN(nZf-0N|t2GIk}*b}3pmmMgPHomm`qJ)BT7ag=c(Rl zeQ?NDUCYqo+Vr|AOYpG)YAA(~NHofi5LI`BmYTW2(?*c%5bRF-Arm=u_m&1* z;36ivw!Dyc5F;|eVD?5fMZgW-av|5smE3Yj47>m$U&@n5B&6n+{l&uYHV>nb|M6?e z6sLAz(h49N0w zB^HXp{)Tv}4*qa)`8>5obaAO2DM6iw%J=n3Uz??5$M|XYpENg<#V{FSBI`2PXcFKC|N_F%)ikRvIdPljt$5Q=zGjvsbeLZ>Vc(2aPVbPhZ zXn+8YzC~tRcnF+SC*k^*O=LY(*4E(W`sen^771DSq${lA%pu;J-YBgipg?xRoP1R} z;IgPc`PN(CPzu+5XsQjeZu{IfQ?BEU8sLp;39D6`<$Se@+*UA$5uUk-9pBs3C2i;Z<^dx;aWSNNk`SQJ$6l@m7I_Zi|dhC?6VtlsmY zV4IPtZt|(|9n7fCTCL{~*0krJrX*>|+xu&84$iR@e|H+87L1PXCv{m!ya^yv&<8K( zyxEi?#A1rxkiS3Iku9+b=D;(9pmX1qd}7O22}+O=o_2`RpglleWCs{rPK4l(;E!@1$KD3If42z5}n%vsB~Fz`ZrFaWP6h zLX&K}-uuyazgKLBu}0lr$uLH=Q2QNz-h6c-MOmSXG@G>^kCvx1*a2z@D4*_3pTmi)JvSw_-1(r@KLW*^BW~quHQQmiC1i(G8&#PnV0o>R8TJ z&GQ5DuV^opFt8Iokh2Ia&6^$Dw06I!Xy%7^YpNzuwifdLz`XkbJfiHDh2W>#D-%bs z73F>28yoCt${}=`?sDdIs>3QK2ca_WpI_S-TpkGtJ%;3+j|#zeOW9wwCwee7!-rz> zK?cn!@ED>mzu@;aiJhDnEt`x&+iXr%XMAhDaC)2U6gUQLP2CiuU{b^y|iZd}JV>!DXvt*AZ~nQAGa-u)u$ z(W)N>F@K1+$}tSoo6hs8?mPbE{c17q;<-6HfBksUT5;L@<8u&)-meA?U^<+wJnsuM zs+JA)FyVep`NJ-AVlktC(%HB`jt-u z#)$#Rl|gW69BR44xeR1a`piJe>#^!~Xy$X*;_xLsrDF{a*RvuYsfRIKIhbP8Ym8DD==K9AE*6;i9mQ zdXB^4k+{#7|46e8X9kTJa;pb_H(XIn6^LLw!*nAQplf+$zZ$?dC42}HPbLJ6eP2xCm&1o!T#5j3xhP5laV0`+%#i-a4^l9+qckHALE^b7nqOhUA$li zpZEs*_l(sFs2?$4f{e?Vz4-asj96J8YJ9z#mnza9%PDJ0eI`>52O{VSzegeTyk+(` zKEL-}ppLRahQ@8iy%u-o<;(q3viEc(^BRv1K?0HbB*b(=v&kVoK44sj^|LY_zBz)8 z7pBQ4f&P*2QIevJd@ZV&+qr(oGqM3d8)u9&Jx1iwpUBC_2B7@!n{d))-#3>eu-k-u z`stNM43v=>I7EZ`zysB%M;|MLAX(p4@GPEYPM!>ueS`YFNuvSLw=BUfO8(U3%AMUV z=__vTFD5)i?nS8qJ{T&{+EQoHIJXT=xx{5Sn#|Ck^3=r#k|3kTS$K~FvetIg(6R*O znJZ9P!toh$a>tw5o+NgI6;PqlZpdlrI?aauKS(>Hmpj z@KSu|+cPKFjm?Q{n32Fwz#;|S6~M%kLc+RxbGYI=)S#T$xUSgL0*^?cyB*qU#SQyJ z3OlEhc{{bl|uf2DY}9(cDEm zkv>2&EcP2!QA)aq&&-IhYkC@32!gMQFX;aWIBr4_Uhz4aTniJ}PIDl}(+RBa|M;_Q zm7X&rqW|Op>s;|{R0)$?wN4tL`NSjTegW}#WLUE%g5oIZ%GML;&9HWl#(T!HmpO^#tGTX zW9UFAoO!h{~Z9DPzLk^Uk8q4WN8*YYQTzi8mutM8S=actt*%ZbL?0 za_f&1%XfKVPDK{=kVFLg1GbO!<^3Wx@z3hg*2Z=|K&eL-Iq~}zbvhW;K}_n}wia9S zoT7~b$-JWGeW?*UA4`@Bxw62*Qkj~Lpz-nJu*(9G&-CnK>Enb?SHp>_q%Ke81KxXI zTCC5XH4*UGz@dk;Q|Of(Y`6;n+TJ_2x9;{#Z+7$A@(?HS5G(9^?mFVNwODdOT2%`W z1el->qN#3n8EuzL1+dQ4r4_57oNhy+TP#_oobgSbu3dyVGhCym2Y>9jdO4zEk>$1u zgeDKyRxdS=_-R1G{(3lV-|Zdu+Ve$<%z|+m_zap6l($?2-&vpz-{AnWB$n5^Yd`XH zuGH23TArX84!T}k82t6^fk~uEm1x?yiLv2kJKHfQe;F&b?ISpwTNmm4hYyY?5%D%9 zGNv!xHSrpxV5+CBcf|%-Xz_XRYG*+S^RToPVr=}X7w&H#ES`Ln1cXO!GU2rCI9%Q> z^?vT{X|4L0{tz}XhO%Tm#|cb3r0;{zog6?2LZb%$QO?vY8L2kfg1S=Spc>!_P!XMA z)icrmb}rh)uAmoZIL=av$n9;0hqzF{%9S=lYU{ZftS}H;FruhJ1!eDnDA?8s#|dek ziQ+XHIC%%MrUDG4=GTxKshZz}!$JK&EimD;^G{!tkSNR+CiTL`@&;=)pvQoX$W<1r zzVJP+3}&uaB9iEwO38PgL)t<`3&!xu*G-30zZgfW81*ICB)t0iLFmol=>kaN>fn-V8438mKyhU{-to5E znZ!kxwHjWh2^dSX?TV3?Us+NVA?K=9x53wJjCR+jKHYr?Rvt|ZGZJmV)m>vvmXUkq z!P7)OI3}_)Si%zL;u%uR8!J&ayo=EEhIzVQWyMVv3J)CNy2NAEztdhPA;EVCSBvSW4i{x}BqIro3<@w+M^&%JcK( z=)NDia+FK02Hc+lf4uJwhgAW&FW)pt{cI zTEEUplMD`c#G%A9#buMB;iT)uL%3xqojP=1P-|{e zWU?ONy|&95mA&a*NREl6Yk9SrGbx$la*IyYE`G7AN_>uy~CsgPy21RiZ}bsJ0g`uVimG^#UK7u-P_e+f6_@aKstH; zpv7*vd@sA%ZqFV5mL{QkDbhGikE?f{2NJ}u85f_=8luW65nGbNd`ZyfKC$*+m;%D% zX1@wD#%x7!*>1xQIO*4D8uMm5sYfwlX>-E@4`m}6R1MQnw#H3bOl993)uFYc2)!=( znB2@Bx^r&$(S0V6Jj=mfBF6Rg+IOr#mH1YMn!)Q&Z9_OS-Sqaxij2 zSaZ;f_VL8tyW_&*owT}s&v$%`-+@~(#oz#W88k$ylG7L8mzS1NSOwIUR|KUU9=FN0 zT6pmLLsPEo)(U%?fn)Ct+OJ1d{ID3EhqAXy*nhx24|ScGxrc?EP#98yGmmgZqG$cA zvj;*x=k$(zF;Q%(cDOq!p1i--^zhhEJDGT97W(QlIy0Oy7a|^^gtz&>KXp7Y5C>i3 z>&o-4h8Jg-<1?7ZNvQhNb8+5YZpYl^#s}MB@$rTmP(r(?uC3DoR0yc38L4BoC^%og z*PRd007CxzzW@*h6pUWII548o=xw62>d2j2l8e!|!g?F4T?5FPBDTNI2lez=-Cd*( zrwYQwauge`)NvAz4%z(rj)JYAuC6Xu4QhSL9+Kr$ zQlGkJQ$BXxN=+qOgoZ+AS7ebNY>|9frs1pG&;JSsGfjggl(BBJn z;M&!~k4PGilO}ok9$o9qW02|gT56qK)S&U4d(g!PD?SXnZL26A3w-p`Vw4256uy4Z zl-BX~9-TkO=ITI}EHCOSzFROq)6vNvKqcx;=lXs7^^DYRu5X5Kv`&KFw{xQcNsVcJ zkyC<`)U=5d3*ByR8z8UK&I5I1UZaCy`&C(|u+QR)$p>{CVbRmPd=iV?EGBgGpnBIl z&IpY!JT3DdCpU>E+Fp;U2)h>CU4wiw9p$D(z&U(8#AMmL`E@ii!+x}4C2a0Yvj2MH ze}h?F%Rw1OYvJ8mAD;d*Jto)7 z%0ND)(+-V2>f0nIWa^b$@28!R@4tG06w%Exr^w$Suaw1Ja8)j6?fFaobG}%bF7t%W zp}MYnVau*BXySVN&V|CliBJa^2ah+RKl)M~IwDJdg6TsYbw818jzBLP=^CQ{p&HMI zzYoS_TZcQH(ZOd#-F#5O`A3QwDN*yH2vN@ehpo44i!*Arbs@NWa0za~y>Urn0RjXG z)&%K<;0}!jg1ZC=(6|M6cY?cjT$Sm#{(?6uy#f57vto;gR2x@%04E}o%A;~6Cf z77eNj2S7qFx1~zi;1)9THP?(ng0YdW9llas$TwLNnFiRX{Ho~8-8b*4?NK#2L;I78 z&M_6--E3L%3CG0pWlQ+E8D}*8x37+lv=m16rc*BK2IJ>_KE>Wk$4%GmyWL)7t#m zh*WD@b<;v3bitCyQ!ubKwez~z>m6Mlz;iGMXR_b3MK3sqRJE@_QO<9V${O@Hf4n-< zQ_3)!GE|j#Rm^SRYjZr6lAMQ?)y9o1-&p#QXkMF`=yw*HSD(nldqB-d9E=pnn=b0x z!@qNbClLPY%A(Y|=R!6uY1y=PLF=}3n@)O3K{OCkTq7t|0N36~{P?|U`;HR!Q2p`z zc~`b;-Ht<8f>yU()Q=rOO8K>34ZjB#M#r(iI!Kk~W;c=X%$qGR`YT4ZZ(xd$&+^*bq@N|wOk|Cmwr8-3C zmyq0Hjn5wD*gxPN#^SFhdLi8#6xdhzsUKRIoqUif4`h+q<);~vMi7ic9 z{J$NZ8b3Zo%bBZ;CH&KnA^;NL%HE3ORCz`MYuSdQoa z@>mn5mRH>PqC2bjqV`jJJU!HEr9Ae23fik0d7y(w&4_yC4!K^%+g-AlVAM%4mz_c{ zYe5xuI3v+#P18UsBHvfI6>+s7FyolUvX*m2zgPQ#X`z$A<$-b@T^)FwXSOdAgZT4( z7Jj~^EEI}$Y#V1l2g$9iKu0+}DSH|Frgb74D6}yICR!C;Z{2JTNFsjVKcuOvoAcfL zW^)FHZ?fwtE1}A8qPj#aHsrW+-nfck@%CP^`%eSUUV^FU<#-W#l~c zcA5fsP5|gO7X^K=o54=+ABG<>iq&Ugw*iLnHT4a@jgWCXCop#4x`X}atZ{GGbo$kC zOy3AXw8de77uD72B?_VTVuw<}``raPoO);rW|t3aHlxupeMa!4Wv&8|dY1eG`;M^1 zWq((N3j+fU_glPgS_p51c~y8W{3uT+PIPGzG%Kgwz}lh8;*IU`ZjsLwlQ|22^D2!F z(+Q^V_^_4jRh8tZ-Q0m98QP-lNZo|=(bA9*AP*(H)%a>YB1sBnHm)D5{}5>V11 zqKmzjGtiWYY^qvnnIij=%j3i*+grF>$^Cncb_ff+=Ya4akaVo&~68Waxc~0iJeK%!$klbWs&|Mi`&l^$~8F|_;7nl#r z!S=0(XX0K_NwN3yOcF-lR+}-_QoH@t_Nh`uLJ){M3oKe`rK^@-_b0uf?1;e>!dGm$}{Dk`z;EkB%NhTJS0-CBh z6%_n6F_&0Z=TX>qnhsv8jcOvgL;l-gIO{8%J;+(mbAirT2IeMa9Fn(^-mE6yw`N40KI@E z>M$5FcBuvcV;fh^0bVjD=IG*NDB9Q#Qi1m!Cny!N`c-FI!Uyp$9(mv4*meHOFKzQ*0{pO@rW9#N?65!b zBAd!IkyxYkPb4cN8ZEbqZWl(Kl%7u!H%1lwc*a$)V+vDyn>S8tymBb*Q{8e0(-8O$`&GJ4KTm}wH;yUpql_BLi9E@&tF3ciaD9EG*?vXfuRthZf%f>Y zTkSYhh7XU@Ay~5&uWS@iV`qgUu5B-0->0Y_`x0#ZQK;^UGq5=V*?cvRi9wlo@ z;fpJwFE0X6{;1~`^lI_0L*5SM+6=rU6x<8oTY#8}^(Fluo(%Ues?~IkXudWEMwUY&sFIRqGA?J%LQp=6=rbiz% zOU)Fg?0-z?37a01ipxZFpD%vwfcR9@+7;KIbWA-92xT^Z4X(FMS+jPHpwYwVvrj~G zn5I;0hBJB4{Ta_nK~^*mFB0+%E#Zmut0uH#9iuzxX$Lb*$FO!v4vuRZktV>8-sCdW zlWu8DUZhuM2jzxW*eeSJi)m90Oz%m@Wbz#9o_XPa#?WRRWdFry$j7Ixw4xNK$T(T8 z>Z`^^l*hF4nPjD`x*+-;FgkF|!sXOQK(`FG;QPD+1AA}3U>-Y>=VAl%vJ$KL!Pce@ zGsaJ(lCVEQ=Cx-*b~UH~1^X=HW%HQ7K9I}JGx2k0kL|sbPCh#d4!-q#dVsJ#24{C4 z^Bc_d+0@StUZ8&{B2hJct&I^=&FR0^M}0#8l?r+vIu5XzYTDybtpjbULK87XE0o)H zLj(H&u{IP3*@|tA#E93OxPvmE@N!BtSWs&a&lA-j?zwz@KN03v8`Xr%ip;bj#o_i^ zTUaxT2uRtnR1hp<#N0Q&GR|+7OGA%_QloW@mbe|%6iy`Cdv&$~S``i{4{kV2D=8BD6$THHshpnUN)_BVR&%O(u;`O_l^tCv zxx-}U3wA6kE`8plYJIM_5FCq_By{Km=@>mU0VacH_Rzv?2grSV_6e@$zUL zXPGpv=haIQ00OtEWVLJ=zJJ*XK)xOTM&2Qlk}P!Sqp(Gxf-)V77J;`?USBNMA3v-> zR4tFa_y4v7`WZG}``%sBPs6Jfl3fznLrq))M4~KT6y=)dElbstmZF$!#(wmoeDuLB zq(6&0DRn5mlWd5RC7r3_nU^sO#S@?LPLn^INEs6GAcV6gO>YHSTs1J%Xmlr4Lrv0X;})W4~g5_QLiK{?Q1 zclwp6QxL6fV6Y4+CReojm-HVyCKs9My|9bOl%T{)Mik2hf|iTLkhq608k8;*mhfa7 zAm-$gO@7>>+7<(B+ClDjZmq|FxcV@@Y&*4oD5pU|BBw)nc_>QA=2 zGzlct#y(kxPZFCAT!TG*Kx4GTkSoPb=E^2P7F1_M0eMGN7qxT=@ zPpoa*OIu%~GUm9{B~7o7Mcklz|AVRSxbTxM555*h_pPI6dFeWk%Hi`~*Il!q$3gyt zh=J+=4o*P5X#s{5&JAleXzEcv%OlS0X@A^?v`3T{4-OsBte1wK*Uw zoak-%Xf}7dM^r5&D8bgH_6c}dlg+=fX*+K&sO=wNO%Iq!!M6Abq|e!F+@-sD)}C1i zqdQ{qAV+W@>tS}D;mTj56|mX6x1qWUs)kiMJ&qnRsX8qw$ix_X&ZE7~K+_@kihTh` zO31;;0ZH%-?A+M#cVCOWemg)E-hwj97Rhw3+3BN)%@)|l%fbJ)IWhtxs_ZQYs1Ra= z$B0B&yPNbgN5^|Xazx;fms<5Fa|7cqHB#;;kjn5|&Uqm?QXGqE42SqYej#=e9^Gv< zL)p28oX}A0X;?@m6rEQI56-@%FU2%)Y+kaS@R7V>?JI=uH)qN9r(kduGI%5h(^8Jp zq|WJd^ZD7X9jmURx~ZBig6A>IkE$z7s}*}_BfbyUU+6J>JRzjDG_MFfTEGY(TooCNyyrIO^j#zbe; z8>^Bv?^y&I`vJh*fqtf{Eh#U)zh$I(HB`_SY{k-B%M%H07`mShe2mhcSp528)f%B@mfd4bkAOW z4`G; z#S?JjbkRjDAD|0|sJf&l)A2HBTwZ@73(Q{n34TxT>s=a?#OstSmpYJorwT6;`}@r{ zgL8f(G<|EAH&23oa}uvJ?1IXkB}%EXI6-nY3&=s~?|5tGLioMRVu#m`k!#hbE}TE_ z#IW5|IK!O+dVSy;cvZES8%?vo7nRMC6VJ`v+>;k26j-zrGr&Q_*S?~_sogbzd~p#h z@0adMNZ>lJ@bpCXp-sg=Cz|g1n*msrW`k?)O%Jr-5ppMQ7 z3Tv9-c%?V{Y5q4-@uM z7tzSQCzLk(6u(G0ru|+z?sxKPnai_AmXP^^mc_m%b(@(i&WN#d^?Eg#9~y5W};%S-HYqut9AC5b!myBPpS9VVVcbl(9&4&Q9~5P$S} z!av~9O*$g-RV+oIsPcM|sGMLNi9qtNdoIk4L|e~jM~db0zm~|WFWH@)-K~^!&)aaw z%f%Sv*Ddb<7z{V)zGiy;St@SX$$dU7@HykVALBRr`0-;ptZnpbR_-o(4)z5BIL^&K zJ(Jji9MpEq+KuZ;ID*UC`Y65~nQnNDE9GBQwfNo#_W(vYMWhq3lbSj@(X6(vRt_SC zwipMCxQw&W*2R!1a+w#~g_o-mi$od;Wow;0El*njO;W*%czzL1NKM_C)zpuFK* zvXGfI|7W1@&X2>?wlxl(U+&$@7t6s%A72jNU+*%g>zAs1#Y(9$A+=%1_wi`H^D+&F z@}F>JxbjD8&Fe=sM;4c&&~W{-4DFZ{QYhrAW!Q6gRP@#h$)zH92Yy*R@;Zrnnwe`~ z_St4x`FeFmV9>+tN>Ks&o_IAIcUmpB(jI!xsJI{EJyq|W@znEjRnEHr>Olpoe`7}J zoEY83aH&NTnL-U)jX=#XT@~2`v!!z)d8Ku9e(2A}!4?UO%Hh;x2t&<=s$c0YSO6$P z!;u(ERzH7=itNZnTU;o8{{R>EseGC`x&1)d)$E15{s3L^oo_p&e2!hx{{pNI(ieb5 z?Q|iANwzNM2XeSrFcn3u20c+VjDN9b{5FfG+Fu(I{2MOKWkH07Tel^IDJ7|nDaXEo zxGuLesjf8MnX)4({ZnLxw|_l?N~kS>fwb0@Ccr!Iz9AAM{4iDCGBzq{pE0uff^)3o z5C~=*6CVxSdB`7%jA>i6h98anWX?hunN0K{WmRl;UK_RkYTQjnTL9NReNn)gdJ$et zZ};Aa>K8|Q6lkT5>_6CcQKg1+oGH;P$OFi>mNxWFd}*-GXjeq*hj6la6BHlf=pJeN zWd2=W2bDg~nOr25vQquWo(eb|p-#xB)98?CEW|q3m=h3@=6FbbuyO4Po&;nJe-h@q zVhE4hFRYRaBlep3v4r|=%ToLNIICJpK*;){VCy^SlQQQY0BlKD(;m7=alqfn%s(>*qO7}hWjtYef3^R#NvL`2?O<&O z%O@>~iB!O<3y!?;d^>!ecYI)yCpZ}vx;z)FXTh|+)8}IB;|#^VQNkXvmnsa5%r;!PlH)} zfjUg;`PkRicZWlY78rLlf0VaCua|Hr6f52Mk?Rj~RT#t8tc`We_m}ew-z4vSme$d> zjph|Ab*V=Y@f4S0LFQBOQ`}Y2-5L}P5K98xbw~MBHg+AUMlQJXCeAcY*TQ}3HgYI~ ze579&cN>iHi8zS6j<(Tjw1`KPncL%3KjG%@Td6mx%av4fqbHJ1-B7Rd zDv4i0QE3tZ->+{LV8O@Ly+xvwU37E;pa3y!gf5lQJRw73`JQjD3$cn0Oa+(7ey8jF zicIff+Z(y;P-keqcs+n{@IhA+=6x%kl^FC)UTMXvYedJ+_U`d3a4EJr7m=otF>Ox z9kCCbzsi5Xl+RV-NYfp@j}#A78qR+Lj91hF)U?L9X?tef)>s~=noL6raO1P z5oeCiW&On`jVkh#nA_TQwMTbEIdo8WJN(%l&fPuK_RYq*Mk!5Mug};&DIF|V?Nrt) z$Ayu0n5Aq)W6zfeSeBM{Z7`~t3hy!=dFU~a~kmRpvi3`yE}N61?JjlWVlm^J{FN?^|q+s#d<s-#)R3;wOy~ z3!=1A2S1$a8pxgh=V0KGV7YhRQ{>na=ffoTz0@J{p`n36$KCNm2eFwZozL+^-kNQ2 z+gYN^zy;>kJk79W{+M6#(L(!Oib*By%S}5-UD6ZwrCFpgoS#ejnuBaO%g{43^p`n; z#{MeJn_SgL9G+tw6&sM*v<9kV&#$`s3s)UA(Z_<$DD9;CW5L^Ya~~Q3+(yi^-4+X9W$jxqM8Wuq$V_dVKF3_Zf5!HiC{}PH4&1Hjg2JQ z$4TD8VvXh-ou;X-r5CkzwSbI3zs#D$#95Q{;-_zi5Pss~x#G{TP$Zs`QoPvAAk}y@21fc-^@L zAMJlG1N7fIZ6CpkkuoX3N{PKOVGM|zfJdS&h;1PFHK#N!%EO>H>I|)(ly{4Qay(0i zobu0So~s07SACfk67#r2D@-o2`KIX)^TBHM=#-b^xGo(^;(8&j6>?DxT-zIRjf>Xd zd+cM5iepe+ylUJ*vuf^G_dtC?vl2c=USnlf`zEf|WJbN3aMGjIYW!Gj%)Irkq#-8B znon=5Yn~fs|I`UZ^QgRm?)mQ#Epj11)g)DZJ3{3DGRAnev|77m$^Rn1sZ+r^|NQoQ z&7@ILQhjw3CpE$)Sv%cf}H zec;haX;&)l&)ktYkU)>vyCD0{bizXUtp1oQ^6*neG5J32m@hxnX$Uz_;e zyi`khzI0!cC250*s-H@!L6IM4zmZC$yMqVk@%(|DlOMzl`_dyB-kEO{snVTBNn7!M zRi2~6|0(?eS?`2rg^18_u{y15n{j#t&DWK9U}b~={VR#-sOuicFCTLOfqwct>4@}T z0QUn#Hj%md$~M#6Gg?1QGs|FNx?sT zsjIsZqWml?&)^4eA|33)9Lc4kl4x3B`P8y`P1YU=bzX3EWC^4rg&Gv z<-7Q#(S^qp4@xS^t_lBSZ@Clk-#hlw^g|9ZA&v+iZy64^8{bX;bN$P7m-233sVhvz zbMeQm{Rx6N{=yvm4ky;ba~H4f^+$Qe+dQWjMJ@X37aL&p=btpl{;vMZhrF-?GDjm* zUvgWa0euEw`wbwTl2TWgk+JQ6h7lZN_#3|*Kzqd95-CX~k7chq=M2{-Ol{NLFqF3C zX_Wku1J&}-3&hHICFvunkKUp~Aut0meh=cEDyI!m=*Y6)&JTBIMdZkxD%x!8wOU#5 zRCDHGSay8Il?*xHL7QRB%|uI3LVqh+Q4?KVYKS3{a{R0tXIBhJy#Sl9{8ub&eKz>n zpgqcL*`A6x^j*X>fgOphJW#ePN({#zn-DjSghf;}2Wp!ym}Ec_V$H$78=7-3K`LyA|lu(1`i= zCYP{^uovVeI9aM#sXpN~`7u6+NVVp~p#9vG@8#8L{^r&$-ZMkU93b+xC*EPc+i)%A zB2*YgI!R3wLtXRKa~LtA{t><@zm$KP(rq0ndKhkxi6jknFkii!a+>Yn3zxCxQ}m!> zg)b~A72tQM+0vj=!=)p+Sr&3A2`>~DT$W~NQjiuFhIhnvWGJb-&jRV>tUH&N+un1Q z&tFlB{94_nhM=BIO%e+6c6+P==&sy;>mI!>j_044RRjb^YUa|`o*jmD60ZOLc&gdz zsOYA*B(y%d(|sW;EQX$ZkR&T=(@9SV7X3U)sIBE6HbmZ6ITz;kK_CF`r=T4PZ+E75K zi?W{UaP5Qp$H$kR4fZR*kSyK8%ZeESt+BR@#JG`rFNvFVAl61<#|rrk+p008p_EBi z;k;!2rQO;RtRr)Ldq2pAs~q;u`cR;m{)zF$P_Eo*Enf0hkyLHu7@HKWa0L0Sue1Gp z-SW%I=`yofZAo#M^~0nsu>>c%83$E@@fp zyjKR|?~YS;if=}aII9Jo_kWbzp(Vqb&i9{e=9bfY`Z3~}HGeza{&21REd!+d4C>W+ikazvu8Qzk(XtmQ5w3WZp@z_(lXoh( zJ5w_4BD&`1T;9pA2s8yMbAj0scaX~~0{}9(L))=i$VYBrOk-e}LCXg^S0e92cz{X^ z8;D%{w;cbFXIvsN?jk2Q{(Lp*;%6k*wK-K=rz+ir+^{BkpUr}79zc0hb=!InfyDoov9@fstb5?#?` zKvl45%;}5IwF;IQEg#MsbL+pz4)ErS*zC?q1BSz5*?D=dq%z~q4M=r)0vUo*4@EWd z)PTNrOR(BZuc>4_%M;?`u%27%CS`3y!=El6^9jyz%ep0pAaP*PsfwO|w$ko*Jd%sJ3ffqr)yoFch zahC^&A4`R6B+$yNo5>ooC@mI(RE}_Vw^E>EGtX4sIcbi+#f|Cn@+;?a7i$85YKAR} zz83o4P%Y>7bNJJd6>44&U~Din=P=#(PiNLfTBpPHZKy^qH&=yN{|fzgt3UMAYSqo7 z41gjA9!^E!iIg5w@6gzJE}|&7{;NCyAh34niBQ1 z_8X8SqBPalTa84}JL6`rz6e9n?0}WtES=5`K6cuBYw1Npticv12}z#XJs4%lH4^fTF4>?t#=WB)A3P(PbCW`9wbGn zv58HKU0L9SLz**r9_jA z#={-k!?e>U)nX~kgcKjp;@9}?>bP!$Te0^C;bS?2PK7T;_?q%zB z((*K6gFiYq`pen_SRL8Zh`sQhELCyD=h?c5$ z%B8Bq-2cCq^D4|h`sT>39hT8&Ke&u;I!5Sw18)+OH9eBJJxU-12=$=rZ6h!avSgRqvXi~3$qL70vb(M|15Fp%{jPc6S} z?of;aiBX6R)`-zS8o=P9jfZA$#n$TSmMWu_PKf`veQTNWE->QVAH;Fyqj~i`GCKR9 zXZm7JuJoP5pMr2IW8p;~gNISOJNPyA%Grp`3v}s73D?oUNXn!xD9ZPW8(X${dNb9R zTrtZkG?5B&Lv78Xp8oCiT5^@TvwJpr$WiwRLQt1Pj#0rzt(-KE%DeK2q~j|vqHjO% z#dcvsU2@Kg_Oc96KsO)HU-tNDRKN?bO%=H9Hnu33lu_H>%xGQDd1Czt3GTqp_On6! zo=jgKhnhRZNZX7?PqNwaC$KX8Z>!}~vXwyuCLdB=#bzQ1<_L#fS1%!L=>jp{>uWHV zPS&H&OsXSLIl@T!{Fo&6EH&`{Tr!y|OM)0#eDC~oymH!5M;}Yse5f0A8hG66)&M&X zbdy4AEh_{5sdMLTcL(VEH}NK`!gwFiclG^y`fR8yXxztfC#R_LQ}j1Y6!=9GKFw3C zvNnHE-!#s(cT%w; zGYtOxIC)e#vE~3IEwKH5|L}zwyzp@=rl~}@F)B}M06I558Ty_@Yj}m<4g=CkWHE||8{S~N&az+Y*gz*az3aPG<3q`v0 zJ-I%o|AEuP}VPkADpp|starx=e<6hTJ#r%R2)GI7Om^=yw)uPXW3}4+dFja&lWw^ zCh&H-9Ow#i8@1YmDwFQk(_7}TAcS-^Sg;UD()#dbK`Ub%6t+kFsq+x)np78>9A?uw zcVQ7KaOB$&By@AFl|szM^_b`TB{(vcE&J2kdvfVIs-2l6xO#kH;rU!-fObr{9nUqj2Hdcb9i zNa~Y;*wuA}MV%ApyJ`bupPf0M0*R;T*t#mS;Bh7=$Cyq=TdmV0>>V1&Dn#9Tzx~lq zpy2;jry#KtkKfx#$LxKdNOhtK)nlxGYa5t%!33LoWi*P9fxV4_Gkls7K-Tk~clsbCt2ij<5@FurRsNhGY@Q)&F*ka&VVEN225(tmTPjCjS$ zHF+g*)(>^8)x`bjb~Ai~0BoHW6d=+ogd9=+R=d_?2(d$nk@Xfxo>rtNXK`8l6NX0D zpL9(smn@5?en(pRH)e6wX%_ynU_vykB2WdvD@Phvr8u^-O&9rSlJ;IkzufS%Nq85!$L-_b+kjsJZ>d*H-F0 zKq{m(2|nrnBkPDA*HZdBzt)?R!MO70qrb73lgh_6Zir~W#-mh{@yK0$$fRo>AOkr+ zVczh|V%27Y8%p;s3tYH$u}z7t;7i?w$fg57I@i16QcvRt64-hyWGEp^{(ak97l4-d z<^g`}OpDEzV2Rla;J*kpSVM?TYMgF8A$r3yZBM1$m*YBu`xqYOv=!p;qXRi<@IpX1 z$>CpSB`l=$@ub&R^8D}I%WT?J=0D!Yw)X4`od!LBVjPf-_gj+Nq@qj68akX4EjbuIBltL2 zY>^BLdbjD^hj{*ON^uWqYD0yLw%F{ho(uoPOFzV+*DyR6nd+PjRo$17O;ZE0&Se>y z|MmtHgqGV63M0c#JaU(AV%4`=5Bo&-AWx?RgQBOQt^eA5A-1G459qy_#ZK-18?+{$ z(Ih+XK}FV^&0vGOruQirt%X{)NStei(Dx0UerzfR@9CICLa5X7!hd@u`6uM~-5#I9 zdy|C_`&tnB$I(BXCm9h^g^IY_&lIWi(Een~crBAJmfU_#H?q>-BLx-0K6@g$(Eu0WOXJ+2mOB>y6<-sZ1Y&#SkzZ`?T zoK^)TKPDSA%6mVRfpKuMKUVZR^;;4g3~hV62UFT(x5F)?oo2WC|H|0;5nZLcLF#k- zvgsPYbT&4vX&%9cO0-Hr?sh`&Zn6w(J6mWketO8bQ?k^vv%WZ_)v4|eHr%c~LI3mD zyQkpIGKStB|MFkqUu>k(ckkov)^w#5AsBG2y&`SKs~S8<0-%>Vk9u%6&(k!B^cz~> zr24>IBifQ=mO%pvGAV-v$#Q$YTyRVQPb^8>L{j;rLW!+?*t`x$%_`bCj5U~@}h6u+fYtRrVLw@3$$4v;V(vrG*MZ&4g57K$cxbH z)~E~imWnnN4VKXV1b)qpl|$rNTiE&)Oa=bwr|1A*VzQJ?;i|r zWD((AM(R>r5b?70_w$D8vhAhK9;Q|L`G1gR4HCs|o+P*4f-Ve0MH$ll+NhjE9b#XQs(QN?SNx zmdzOK6lJ(SA=zYtK|(vfm{v$Hh0Bs)&3aXKHv5Pc>eGZdhF#33-}gp4FAEF7d5X*M%=c@lQzDn4wcpP* z{LZqe?sA_E8YlmwftdJW@bk;WVGP`-oBU?Hs}}{Ia)5&a8N0_Ux+=YQ=q-L3>PRIZ zWY4aDe+9jUfu*4mi$|ldPK#wy$0LW#V*S>~>158x(zZD)JfbpDC`L^oe$ziNxM}`3 z98p_F^LN1ZDmbGOzk;tkWO7S1gqo~^4@GQXH*wYh2U^Ye(0es4LHC!XrSKQ2gmkyS3Gv^kL5t670>@B_6;I2XgU+*-S6+*_sKLsdjUB z6Kyes*ZMg(4kK8fi?zGEolnjEcTxKPIs+C4t9NfZ#sFAhq%>e2_!`1K**f`sUTXgi z{fW~`(@mN9$KdhpW2(7 zbaD<qcTYi`Os-ZV`aLxD|a_ue7MhnRJRLK*WD z+Z+vZY;?rzWrv)^qxGd$jT|i;wHO}eg1*ElMB(n$GVjbw>Na4YfcS4VU$ZQBNp`=a zoQ~*@iBEGZn9HOwk~+-z*y01G_nn5+PkpRf3sW7bGqq*WVVoyNyeQw!1H{ezl1*&C zN)^96%eEEE&u`=phX7^1rVp@;`@QRX-Ib-bi*g?z>s>-7&&&f%`$D#V2#tQDSiL0MHCz4#pIC)Som}?6QUBnMxYY zP8J~)pY1=Q-cK}EWvSE+V%Mzk-e2hznVM+lvocw4b{I>dIY#QOHeU6n_Txo8(SMtH z8I(kkI*-+2-=BI=fZCl>^$a4=xWK^yHK7s3s0(DnwWh zov-|bnad%;;gSg5UJ7fryPZr-CK)so6Xci_wDZ?)5h*!aZZ$^>Z;$tatjToN1-;Fm zQofl=nSTnH(kF3;j7rTVMWH!5iMo#jZo8%ex3E70ZS{4PhmF7cnu5mf!r)nHu^RG>!li*zWuaz#yT z4{8E`1^e^4e?(s_A8i$vTYMfsG2iXXZxYedm?ZYyOb%WCkznNESe#ywBF%L`gSd_;j+Wc>87fj3}WP3}V`D zUtUHo$uZICFdj2IM6*DnA#4FilM;5wad-#T@#08e0S6PUGQ+%XF%@+T*oBMWBkP3P zEmC)?J!*q$aq8xMQEMnh4;M^ovF$yX|Co&1i>~U<>H?_eOcu%-H-5V=s2qROU9!gs z{%LEsBT{l9Zl|Yb)J!J`Qql29?pYe8+W||usy`g|NiDdZ_o57G7Tj0S>iTMVZ0)Sw zNOe5tMpqeHDgO_r^}lL1$;^Le2KzC^rrGUqd~Y#m;}5x-_7u2>fpadlgx_t^T}<4~ z=!V_t&4`#3;CFpJ7M1kP-pl=f>#h@C9hks)N5GDh}((?9YA4Ff{LT<@mxp1j^cDlu zrS2I(yHzJ~MG}QRTyT*4h?>zBHeLlIM>{{@nFxdgZ0(b-$IGJq9V|s~mB%!S^9pqv z8-qbA#x5el#pB>*R z>eaLt5_AL#WQ(_noGA;83~8g4qU$9pYdngfpaL-y<}q2wiM{ZSSO$ zPB%S;n7B3Ic(Cts?H$!SrDgyAjNol=Do)E#h?8f^FBp$4E?Y2^><3stc9)0E{I4tk zdcJe(!Llg1-2S300nVy#EK>>#M8uy9+mx2sC6So#=KG%yuJQNRG7#xZFBXZ7(2VKZ zk5rXS>Xv;C`D1o6sc-fF9EZ`PzjgM`kv}`-o00-$nOfZQTwTj;IlEU?92k(lr_JS4 z*dy(2h-5ffm%AXD)3oJh8 zEDQ0pcgWR8JMJWNB%Ghx%HBKlPl-bo&K!wU!x@UaBF?Z0yV_OF8V5QS)Xk@OX*~9= zdTT(JR&w#4;JIN+ar6wNBEK<2eT<}C-XA#X9j<-#;iUM!o8elC-_SobLeP*v5_rDAVA`+nY6a?8SA|6e%arF^8;~fC7R3o&yOrn<7UxM zeGet1M%ZIG;9_;o_`TP{-xtW+xjMGJ2MVq8FUdWI=D0Uid=;SvLr+AgO`kQMCaO|= zrW5MAki*IcgM)5;H1%(<&ss$3?62`2zK-+HuXV^!d+Fs88vbR;=*Ou1*f>}=$aT{p z5|Z=L&&i&1EUx8t9yM``hRKTdIVNigxUyb!7&oBn{y`a&s05D#9obj+czzVIKoNB? z)>T(*uW84~erT^cmWViMr&-LRZcgf!{)|Aq>U;1$KU=-3KEm11%Dack3ciVa%Xr$$ zY+paN6W2K09634HHGcOu?Gr3ae`JQ2n&E_YYI^gH&84(b6Eu$_E8kzXfIbc0r=-tv z#-yan=h$ZaiNs3?l3iAQ(1c|vE%*n~ij7g5W>?pkJ-+{=J0gGUZj5r8^ft)@k5r9c zlU$%zzb~NYUnCJFm=HX1Fp0^p51G*vaGRIKU>P!U|{$6Jte&5n?~~wyWNhEknRc=z7yFOgZX@m@e61dMDZa;;Mwha!D+`F z#CDygWk(Na8#HY-L4A8Va`==FR5wC_u9s8_f;QHz3}C)YxXqoeYf(Q!Gv9ovo6~3G zejyY{E^eyQwPjtUAUhc35;aQIyjl6HvN?=hS+RWa3-^5RBRWKmJ@Dtidl^oZV5h%Q zUL|Ed(iZNz4-3jUOH5i}mmEp^Qt9;-zc@FsxxWTlhG{_&X#5$fo19xhF!a(Je0llf zF}T3;$~tUU|A_Wz3Hb^Q7Tpv8chhD^t?j4A%NITt%zHOS%L_hNPqfwc=+8yay~=#2f3S z+)}K_sdPyM{o%m_GCKJ=>Z?;6e!j(VUrGyMJe=cty1xw*l3}({_OF$VR-2C?Q-T&| z|D>c1L=^bIv?4KrghRhlO@S+;sz6(M*{%2DP!)@PQy5)%@I{jrrkZ-P0i)SNTsbh* zI@~juw)_7J?ZPH&BK#AbH^ccS^gl#wymk7= zY3y>W8U9E%N&nHhxqdkgj4sYMvv;G^To=>*`D>4HEQX%7DbDd>M4EH}FPBDSP)#FP zzvP9g;c>J5!&mzdR2+Kc+v-2VLy4VJlIy(~*t8};EC0Dz_-}ws3M0K!zYs?)2;n!EH|5p>Z*8gnrN0v%{Z2y~}O@$? zLb$<1hF&sbo9X%(-zVAiY`Kp&Kdv6$&AOQC4r0&;Cr7U*zdzb%Dt1!k&0oU6_AjH> zvkz!|-}sf6mg|YN1Vl}`ZS2y~(flw2yR%Clv~++|&-eC-C*(a4A1fJ>WDm|BjTmPA zKDP;>@E>@2T@0F0FkEwBI|zV>K8)X5+u1RKXryP}Q{>8XA%$ujuQvFNk2EBXei#Xz z|AfEEmIbhu7I_tELvKNYYyq}EWRb_$;qi0zWe?dqVwdVGTT?_tvR?P)M#k{iUbRZX z0hh_Xa(#ToF8hY|Sk&qu>J^4-R#&|FE*~GrutdN+_%B7*gA%RAOVN^;aLIC4xL5D~ zmS;-Jb`_S&%c=C4G(?izIC^bT4Hl7&jQ1geDz0ir$k$?>4Tf>E9jR6Dk8osDRXGU4 z&kVa+N(B{@E_gC3^u%PRkxtYvS_-tYeg=VN!8+ss&aM4H0w(POV(p}Nq9Iy&cLU0^ zXG6$`(9Ev?%}M`%RmfqqK=O0DN#CPHYU-M~_ZO}s@%?Wsv3RWPBI|djFbWm%SCzbi zs+}6y3Hj5=JeRB0yH@ZHqPcOpKcSiUVMTRuDV`5c-Xm)DG7_irYt3Zvmi1}{&C>43 z4fbA5dP7+V6$B|Hu3siyI% zjHaz#R_t%@4HfwpFv|DQzhbH1QFjhxJQreurhtu@%Gde6lvQ4PzPm|ljV`~8I>S*# zxG!a`(IFpl1#Dw+NT!K;j9>$vW#*DTp>k^yP@kY-38*UId;vMQdR+zHPKtaHvamp9 zf@=ZC{915ZZga_kb2h$XOat^U%-|V!D&jVqP%ExLeyvSc3wN@BQR8eW`=sHHaZWg> z^8HbNk&33^;Z0bVT2#CEmZpG`CcmPC>bJ*C)eY@C-h&$i8m9T6W(LksM*Uenpob?e zyUaibFr|#_+j2q^4t)1NB**{k#AfN3xt6H+y;JYp{ec#|T})#|p*?ESaD2%tjgJ21 zIn}-e0j8G?YSKS~{{H>D*mu6eqM$=~wjJvubs^m)Dvm<1BPUowR1$FmR4CEp2#aq+ z#S^{r9`Pj(+bHDpo$!knmB;vEh&!mvv>Zak@Kt4Us-K~xbvzq%;x*6!qrWEWMv1U8 zX1UqrugR7E{Q3a#Wv;Wnb0cPTY8zbLSg0D`jK4DnUq~6Dw^s*Yyc9+QV&E@2&VvW& zRV~0GFTe?S#qF{U*eh15fi2}3kuZ*$m3mam4_MKjSXkfMIWwyCLrExw16c9F=_<%6 zQ=;5*r`PMEDCh-v-+8agX@=w*c#PLRr#YX}psM&fe-3SFB=1)K^GT-eHBP{Rosj0O znwN)(?{UUbzkM%8P^yN~Mt~FBVQp?ie0Wv%aj z_rn$xEg{-=s2wmAf6vma-;%3w^%ic9wN`DD!8)Zq>GkKz1GAw zY%K@aO;p1b7F0~*r_Y;8&UTsy>7Gu@Rx@Z%>f{m8{DP-f60SL`eg36kjG0X#mws~j z_mkES^l&#{D+W#Yn$G*Xu*TkuN>IAeVfXn>-en)FX#m5ht{~jSaZjcE|6D7+@w;VG zO|%EEuxs%J6~sdanU#Sb@?ILzo8?$dvx-8RB39Nol>=~v8s*(E<9$mQu(79y_3Mjp;y?8)PZ*r&2zB3;YAv>gc2se%wHk5 z5Gvn=aX!F+U8a~(Q*txW-CAb1aVDD*jlKz)FIGP<-bQRYD@tZQt$8X>X<=6-)tyfB z7++cSd~?IH+k;~Id7cpci7GEm3-+>Yc77FkQ6%)DLf4c+XHXRXzU}bus8upGabV}k zTM`l4S5+EoKM;M|H}>$DkGhP2B;waJ9aewaV<^6%HuC@nC9HT`a48}s4xM2)?ZG5r zOb?q(o@Cd1&~8n8{qXVHGPJnR^qwO7VvTweCU!~M2lO(ua;ixT)I-xIv|m=u*omYB z?KnBIQctHzPn8KDLNp!Otn2igxt+(cyPoG&CA>Rqrtq;5Lk-}cNLd~z@7dC<=mKWF z_}XWYH5<~dkay1>ts{@kW{J_Q^e+%bd=J9=tX`YYf5^yy`ID#NMG;ImryDyfxqqAtv>-f<=zQ zSFcYL;zr4A;iT*;XOMZ*o8NKE+)Oa8-m(mj7rtD_MnbD2I#`O{LXvihoNoKwYM@O$ zLV}tgc#B)E-Gvj4LM*6&rW|#*<^Jd2R_aH4y&l-R2k8Ke{81_@7j5wE_y31(`=4*3 zCRGbR{zcSoy@M=p0KQFqq>cihH?D4ykan@oHUVaPiRENgw|RtlQ~wj$NZVhl$+hew z-BBp7bQJ7w#89>a#%^?Ze9n!p^om6PuApjl4Rqx*v1Ce9K*0uFcV~zS1ecx;21f05 zyGn1Q&w1GCWH!+?Set*8x(r3lP{_()q&fYDIn3fAxy!A^(QpJDBYBbcsaf>jWAQ4I z5VSSaiHPoJa@`R!Q_#|KlfVh@#x!CkkQ;m}<~4eyFTSY~^w*~|;=J&1QfSt$aOAeQ z{vt{LS%^lH8NRFh5gC@WI-DLEQ-N`UK`@3wt53AJF$@T0+6oq#t#rW->#y~(?c-F6 ztPiI3QE9JedRw1Dtx8#Wb)el_ywoPJK@c=Vo@?q%zQQuIM}#JVE9B-d45BAM)@eVy ztYFh>T)jQ%H-3iEV;nl$IbDdLJbAU+pcUoyrOZZ1IJ)0G)!Vs0 zgG1;o(d6x3^6!&oW$EuFWGofvAHNzBrni1q@GJ7dr4b_Qu#^mDff-P#iw<_sAYz?~ zupCS)G~yH2E5bczsi>*bE%Z62ul~Qs_&@BWaXxFraKVY$h9Lh6>9`Q%$194+^NN&D zQg@-$CSBhZNQ7Q0ODFi>ntAVfPY988(@FYUj@gb1&pH>4@rAzB7#F3({1}G&VGrv*T1YgdtLu-8?kblAFgov@`jyeWwrpv+UlJ?4Kku@gM1nTqwU>wBAvTYzg zK>Fyc+zQok)<<&pJ-SNoRejsXhUC(rX~Alhc>+V`=PT%26XT;Az)psa?S1fh++31e zjCo~Y2RiZMM@$3fa;LR78fc#;R;LpO;TR;sjr?2ne5fC%8?9l~@?fejVqVaZHSTLu zD}3(N%VOpn?NdZwDsk&C2w3T$*j!mj{%P0Jb9fkWa%zLb0O0o6n0j24|nv)yVsgwFm5Yd;~l|I1@f zUASX;Wc7~NQ+?XyK7U|}Y`}QOc!-Cseb=u6X4mrkAaCz9#n*0U?P&51Q_rAW@hIb` z_Ug{Iz&@X+Ch#xnp!aY|&kl22SW9RZ?494(=qEO>%kSVz3n`D!E(B=w9yevvm#Q++ zrsKA|US^kbh8D$+I*cMjyvb*DsQjPaCkV*I?c(M>sQ8oNnD2jXSjyvZyfORhI;%{C zwl$k&V$RaxaGAv!oPsp5<h{+Pxl5)+*zlUZ60~-Y@7~!GKz+82 zd>-leSJY7>K%U$ENhQSBc8jI1P1CM25X{3;#{Zi8SvE9h2no>Q=oLaG_o%G5mBXB3 zF4H?SweUusNJm*^o?&nX{AxNZIwuUUZ7??dOjRGMD;m!l9Tzw$6VARwp5COImVb8 zIO&Ik13_20LC0%G863LXbz)gNCBr>~JMcm!^UXl{;jYi3;p=el;o{}XJdc-W9T?sX zFt;oP*~y?;p6-0*w`Y@sJ9+Y)@8GQ1u=fS@G*S84aT|yc-1LEzW_q6R6jX`D$G7P- zfWQl1$hpz;(U}|5uBK4|fyPU6dR9kBM9>~>7ZP|!)Rr2%s6j^nNp)Vy5}8l{cj!*6 z=He|@5PqJ_eRL_cTx(xG$gH=>)#axvk_(9r)oYMa;LI6FR}{GuYso!Uw3LMGk7(wK zX%iSHFIt>CZ<(yK-zJxoCV=stnA1Ao+Zok2vZ!tJ|3#V^w-4QUkMfj^iFWNF-MpJm z{4L`AMG0e+f8gZLUFkUYfjAVmwjFBfMV@r-e_LcB|E}%9mDyegmy>d0T02I0Gj~;Q zKe)%P+c9r;eQ5OyF&@na^`J^ryK{+TIRdw<>1{IlsKW`wzNvBwDZM)Xkr8A-O@T&m z)lt(><6I;7#GznSR4}p3+R*wm|bc|dXeV~?MPKS6{WrGy=cLCj?JX*u{> zWTD3@QQ6x!7eB_7735hAm1pHI*urfxG45*%cEut{Bcv-sg$K7DEI~^yUdO~jiXz@*J#rW|1 z$1n`xjQ6fp_j0Eew1Xv`EeFzHq=i4M0J}3k?*HOIm)A)HCZTOnjm_hzuRqwknW3W%nR|SoZXGBs z?D%o)U|GFrK?h==|0%TPH)%Ljvh<}0dAJ5xm2^ zmdS&uuL>_p`EECWM{3e7x@!KxasPzY*WgdUXgtjTZMSn@NJ=JJKzIf0wgRpJ+kJ=NLAJGH`1Y7w2`Y^e#JK7hK_$ZOY3Q9RgVF6aFUFbKrFEKK2{+MS48*mMy$#1lpdF8|)B%BzyDW>j zYS{WMlKQC^4)-%8^&K#F+hW15p8bM>k84(>9~#+_N}4#pdasslhfF}Lc=(#S#;zl> zhO4u{4q{YT^H(qkAl!H(xF5!CqR=c-^hVN=%NH&GkQd-*dnU z*^4I@i*r}@*2Rvm?Hsl?>Je1GeUDX>+~npQ^4$>{w>51iYSSjxPlL%-R<>g-_0eb7 zzAx4-VB1*kbVg6R*@k)y>hnS_ereuZ(WniQyp_q5`ZR_Jy4^$}-hRWleNsCvMv zG`R6Mgkbk1mPlq{?jzmHnY7@`C5pgG2ZYC!ageFo8Nq$9os%3j}(3pEICqx zyb*$hSAEmTNw8FeW|AU`UV+PYX9h940ix}|*cI@925@XchwDOE7SCC8vf!OI+s3T# z@4K&iwwyUDiZJ@dYBTa290NOQvP1Jq@*1#nIda`kS|y5eJ01_dd5bE{p)!P)#dj$h z(SzM8HFT6$^6j>N|H1vjId{Lue4xpeDQb1w{p#FAtJN2mRh@z~l(H>DRT?kV;5$Yb z9X+debl^YN>$V!u9Bg+Cyc^9`wvi|eq)STyOp1_?7%*Zvb_L&wX@m&nO2M~l4KRg< z36O6y{%J#l zF8~3qkoBDAI@&e2JIk(P*X9Z$i^(ziz+^>y%lEIw`A~bTKaO>PV-@xzWQm}*={c{D z4WM2;=7o{q7mD%M-9O`g6Th4+G8ID$J#=&hb#mAtrE3k0n}RenhSDUAMf&U;z}kwd z02gLT&=lh~P%*xcb=N-?xez7Sd30H zlRdchHE@aJOxbepjM}(0p9y5H(cH-=*~IAt5=;`BMaKCv9!ey&qEzJ++#KR$5cljQ z(m+E=IgkZ{q2-iyF_h}NpS#wb@D^-b%xRVU+TuhHG*`N4&GPnaD@I34LNs!H@b0G> ziM&z|t&RM!aD?2dBakEpEGm}eJ7di4^7x0S0LXR#BpY~MWqC(=7!xeYHRIWmqe+=7 zWI&5ZBfC^L?m57( zQjA`VJ^pnbg^`N z@40K*8nuwPmT!7Yyorl-8TB8El2rwT5=yi(HtIxSN_Bb$D`lP_N|gP3x{y%pC)W23 zko9P_KNLSl5_!U}a#VQz19^KB(9qWKR>qqof~O^*6|U`Na-O?7S(azsHistI><}xZ z7F%NTtrAV_r_D*5Y}8t+t}RWURzh`@YSfrdkE9_cKOgK_y-O^=ymH$8YaI3xNcmZp z=UMfXA|a`2N3yM$pdl%e;PAo$ES>cYS~OtqNag;DUpiE#`udmXEH8 z{e$XHz`TIQ9KZcKFjhAHnoH&R-;fc_9||Q|(YG%gcO52-LkC_stF=!ACA}~Eh@o76!fSn4X)%292k||MJ+pbJeC=M=#*}=w zFZ1GiL$yl2nO*!G`!K%Y-&aGhi}!VobCbvFEZv7z=!`EeN$iVG8WNIItp;)xEH~CI zdn%DX&%IWZAs1IYTt?AJpGf%El(HxCk~j+Gr=mJ1$_!sPFV=8BBU?fW`eIwFxMNVEYzjayV;MGf;%CF0X|rxm5c zyc|-`byGC&alG?#c5D%frAC1}LR+N6M45{F^o9QQygV&SPe5~|-E8w4Qfj)|xO`_v zCTL|clH`pEm88y$*r6^-K!$L=Rt^l&VP$<)8T6mfmn_LRhyf>zqbef@YV>ooGz%=&VO{qS%6c%llT+HaCwW2I>+W<6b~ zD)jow_j_S|U&n{=fF*Okl3o1U1nSYupAaRrMQnK+T~LSH7hC1^4j0)Zut>#ctl!E76cO zXA?~9wF(sQYwd%CWIOCN4sgNo#?Cw}ev6yKYlc<tI-|4MB}h-J8`E_Wj$U`XU~|t==29Z+^-3eSZa>w zI_1H1D04kdubk-ELM$HW(%-&f)zgyEUr}R=U978{5>KWebs|lOHDBTcMxVSY6RD_&7sxJCr zE0`IuKAc2g7*&a1zma;I;D26}{Jxz#Be4DOBLkT~OH%mb{+=EvXJ=wH+?%Lrc%R@x zp}6sL;`%3(;GYf;$cuuKMLyW3!20Ptw){L4u}DYTi>;Ko{S|gwCQ-85lLm0u(s^4G zV#guxr>uv(I2HWaNAtU0qYRKYF}%+d$1gLy%vhNFNZ;mBg5|5yZfHpu6Ht~?3xzK( zc&^i|@Cq)B!CVAiq95~Ita#%S{SEoRDsWo#vf0xe;6r?xIrSfUPeWt(IcEshylmnc zGm(|7{6p7ujJtSibhyR>ndoF8e?y97BqjY`kVwT4|FU1Y+ku?)d0PIg0<&W4iv72U zTQ}Rz54<@To*3%VzhC{r#y#=Q?`(^dX(%_#Ns6!dYGbCzE<8l;cUi5+u(-J~vQ0*V z!RsgJo`%Faw(RmcvW3jf1;1U8JNK6-#9dQ0UH_OnnZw2}1bmZdd zk61<=WpuSHd!1K-WR3#?KKqWy1N4e)k`O}CBOts9yV}X}lKM#&osbU!faNK{n$AzB zL21-3*j?w9AsC(A;z0_&2H8!Ql?*bcyULw|KZ;hWqv?w)NcLmyy^R@bH!CQ6P%K^m z_Q)UPA7VZsD*2HyilQJk^Qpg`zo&3y^D$Squ#a}@$n9*-lGP)VxJ)8!=%CL5%i%8` zHzmO>AM=g9FO!TinMDrRruIBso1%+6wIA{wGiB8QH!t2S!g!8D%O2WxyN%_SM0E?S z_V9`9-zv#*@B6v5<^O9%6>Ztm{*j;JIPmdiVnO;Xi%GlJqZb?oF&Z|-CFNg!Z+24* zFl0*CiomgWkqCDl{-GLutJr_H`}$AE!@CXW!s02pNnicH?ljN?E4l_M^kEok%>sH% zHCX;3d$*G(b>Y>1hj85@h!REYt={RFwrrFS(93|~aCs!G(S%e({vX@C#FTfq3kY8^ z&2yI_C&`)ssV0Q{BS?f3*Mo_jwM|{l^p-6kloH@qy&srFiRp)oKAcMo4g^u|bGkKU zj;iZg-o@5j(2E7|MU-_(i2jh&sjIE^?Y`yt4+~Kif-mce=8J5y)bNr#f7~D`ocrl% z9AAOD=|Q~KE`+PEc#sNd^ICa_XwS@9j@2`{#2sm!yP6x0C3jupk7Z)e&o&M`WtV%; z@KI2D|0hN*#z43W{WW937fNCGAO8Z-|AzBLf6?CW49{S{jN+I(70eCzx%@ch1I@yX zAZGYD-mWE26o{z6rc(8lT&*XmLnCwj76|0L@4Y!kERkyc1`l?|2VlM2%)Dmru|<3B z_OG$9nFtCN?IzCu9h=(rXi@x1v)HVw{kBX=b@5+Ts-;I8E9o@?>xf;hM~M+O|bpk=7Xf9!D1CsXJ& zMyOL(I+R8+3dPdGv3}=BpST1m@A7xdQ;5)1EY49;_#`JrrXO?kB9v*P8)FHpwD0?Y zeF&RFvUey?{zWFm!cR(eM^$vrV<*mBu+GK_);xIYW8mA}ck_KjSoM^~3&-Yux~L5b z`4>T-yV=!}3A(>3+~VIfzVrpZbbqb=ZA{o}O>`=xhEXW~LZ32XjbzE@pC20dVCk1D zK#O-G6`#rMQxjy6h(g>`d0-dv%*dS$WrF|2Z}8Hh)+L-$cRhL|GJ-C{5eY|rA?WlO zi^_)?Mz7RSO};)Ghl<`mod*A%yFAeb%3=TZX3=+@NId31n`29mTLD`_C|~WCIWMwB z(*;YUPKvlbsOx@d1@F&KKF;Cnr+eJ(*kt!0GjgVss)uXh)^*C(QHEf6JFP1orGo@d0gh z!DQ9`rhqdq_*HU7<6Or>6+*bd_s4A-V3RQ3BP-0XrFY9lSYgd~W1tS&!?RdNe!|9W zAOYOb0G56V6YhbI{En$;$er7EXAmtiStPs~5OH4K`fk&0zR(G+9TO9*OTZke&@>>G`QAiOzn`CbQ)q=4X@&mbqn-2Zn^(sA zN|J?OL_?d~8`&*Z!zpj@P>>%g4MA^;MfwO(8I=i{nM-U4s}l!KcPiA@m;xwDDFO7O84 zD_E{y!I0Lg<$NKQFk)vVN0j>8Xwa_=So>%ltz97#&dz$=J`HZ@Wr&pD7*qsiUNYGz!JlDuTRlv``ByDFuOC!k#@}(Ctdg$$ z{$sbl2aDxo3;HKIjv_U|Zc16ZMUcse!6wIg&oIz{C=u_d3caR~rnJ&C5q_U`w+QdL ztynxw>6cs^3Eb;mmp$0bNQqwxH%XNFd=z2Y^xJDoG(kS8o3mkof~W)_x?5^;#$sa+ zS3p~Rs2i$QstJ;ss7j%()@okq)n33gZnFK1J>w4Remp`LnJs{qyj1U&i39QV(tY+d6$#SiwRQ4upQ=+4xmB=wxwKQpdLGc z;&1fg|PG;pWHpy2#T!N9qN}l&+t#XGh`_K~t%@ zp!IG#Rx518XT(Sh+wyCJkb#exzGmt^sHu}kJe=!`g4Y+iV3Nw@%-g_In!HY|_W>#_ zhC*g)cUa&rdf)0tt@6gpCDxzkB!RH4Ahzk=4MgjIA>4ACFfR!6sQ0FNhw%R$>;-IG z?VV(9czH66RmE4>VJYLvqNz+o|1;IPF_Rg^UCr=7lX1hMoa#Yc$=7rX|0+2?!)`oh zg1Ne;B<~&-s`quoUzdqqqf$HZ4dY^FL4=m=^JmoRqZ>y8z1Poa%`V^4rL}_au>#wU zKM2;l0LzCo%Sl1Ox_cx=O>lU8(=uKGe#*wG1{)KY8{*YYdN22|_RIIL3zN>AbiQCo zFk48`ki~hlo4hlZL&V*0tsnqDASNZFrCOhf3nfOKU_q=xZ9srBTm^x~xdk?s+5Obt%s z<2%=f4P?UOeYU=(a5WNvIM+*OKnFQSO{ zZ0w~VWGi&W>dzQ8aQhNt6&J+j)vys-|hr&V8i2@&F8e_{9R>k z=ED&qNlMvt>*^tbFb_5d+X=>Eim6lq^!^41%cg3q=1&T5Ol5XS+Z*a_!+qKS=O;E8 zCmok)bZM_jkD$Znh3}MdYHY93COjo80X+w3t^s=ti1N9P@~XT|hEvjUq)lDdj!pK#f*nvli* zozO0D`s&nxDx#YsB>?#wT|9{Cb$*xpld131Hr0{-m;XA_u2snc$RKN$vF)_hUdYFb z-;9R9l8scn(3l}W;Mn)A%FHg$T!lR5G!uIuuXp;T2H}UB;lWb|9}Gk~modfbaie|P zRQCAt&q20-QM2c#${2d0wQ3q>aqZ2p1me11yiXSufJt6;ztzYTq?cK$_Mhd0kNR|S z->n2*dHSO0Hn_bCsU3rSlND3Hbss8lO-%o7m$@)N9+_~;D`6p}YH?%3hl(S%RP)^g z?i~?&RcW!1%4LP+M7hL;@{_;e)DVreb5izWgxtR0?3YK4{HVbULum7CYajCbX%8Lo z$JE7@cpL!cgj)mzuL2jy$mt0_BTW8k6Qhn*2vJ@M93MCjo(Wp3itt6|*Wov?zH5D%u z5;RVHD<{lpWMwQKCbc!XkGmQ7IW;T4de54to8u3?Z4XpuYH6h#cYB&uq3{jUF8EMlEE?-QGVeJvfrp7}?t1WpTCAl>wB zSMcND`0}cYU!OTm)Gl`pvca@mTrTKPjZk zM%-(Re%<~S?4#tAPxi6?B+i*c&W~?;-ZG5I_bGC>ZWf30#rmNa5fK|G=12{fT}Yk` zWiYD`VGcBfMM-Y-Y!v~sAy)%kx8s4h8aoL)6kvt}_Un-p%MTx1v;n8=T|p)s&o#y> z*Svsx*`?#UJH|~4h(mp9kmPoq@)`>_8g=;DJc*rpaC!be7GEsFpD%Tob1?pj&e!@zPN}648#R7N_A_5U@2e@VrQFHX;)eBb-)XKE$xe{nmROQZNhWL#RrmPy)ZJc|2mlD8j3=6{814^LD4 z&Xr$`IAnm%Ds{jSJD#CC_I0og!9Zh%x>ed5HM6DG!p_|)%K>$C!(8EzpPENkLb!Z7 zMvt-pEV#TXid`aRYrx~7c;`U~sH?fzZIgqR&aG;v-4OK}LY75W6j=?$P&;B~udxW= zhsJ(M_LB)bORdzkci+crbU@q5=cNqTCyQ9Z5N#eBBD>958u0zksN?t)+IR*^E@*8e zasMK7!_4rn>#(<9RSsA8h{xo0j6nmXHt?d?4+-;px7PL9klq6K!#1FLYry~D#p{l_ z>mQj-Gqb5>W0f}(yfmVaEisWG&-Cs7P)1!ez8`;Q75}(b=jYUq>3NWK`Xcq)AH8cF zhueM57`@P3(Rq3078b7Jj@M9HxSlhURUX`{W9BlV6%r|?tnSdjrfb&Win+xC$gz_r z2IJAYcdu0(X&quSy(Yh`kfz)wV|(nr43n~}?Xpm%wr7#D4{mycxoI24FQ$j~wveD( zB7lRk;UqFw>Tl4U5|ewh!Vn?S9*IL}hp5UH9}uX;@=I0H@C_#czADCNds(Pzdo@h# z#tCnz#t<@fENSc-!s;HJCVrcvl1N6w(`-M_2OaNpv%mJ;yY|i?(*QP`9`GgTJIYvX zk_P5S@0sc5<~z-3;C_>~t+n?V9zzOP$0W>+%Bn4nAn^mwp)no#pPkcHu@&3pfM{8` z{7AOarj;E>>nGH)Z&oxgvQgK1 zk+Y1YFT`}G6X^&!V2uLliYG<>D307?MH60v>Zp>&+Z-73HCrcnU{3;uPJ6aW~n)A}1 zpaUbvyF8y_X9i`~gge`S!SYyDcxKXu_~7@u{A#_ddDYN?@Vvlwvq0^$`!h5y@djs0 zdIr02LUih*Ew-Gs+JIM=nS(o*9~sS>eYD$SP#(oXUx!iTfP8735lc;cTtk5SOvvK9 z=9NW5Tr&-z?}gv%&)$9rJdJH)xeH^{z~rs-k@<>@__nt1e;3C0JGZ`z-ttvkJ*Mrp zQgdCIKh8UEmemTD0kPfnMp#1!3FH5rrFa{UXbIzrP%maiy0^k zbSm064zh4zCfxRq9}B8T&E!sYQwY2c)iO1kY}N$c@9e&|pe;}i*|8$@L;a)h)erb% zi|OGuALscm{?lt-we9aWUUJf{ym}%a2>W7RoDd;wU)e{~`Mx&ENGnBBu?C*XF|i(G znCoJc+G|FCc^Lf4#=H@+^ESuAp=hAXPT1uHA9R*P8fF3t>(nfGE^z1iuJH<-%E&w> zrXd(8C5iO|$*Yd87Z_1m>9U0>=V#`z;DePcdBOjt5pwz}im$yV0hX;3AKw6oh&Sht z)}27unadfw)W$^=-;O+1AGVi+MqFK2Z&x3~!4aMR02jH>A&%R)RfplZZ=5-ZuzQU)ishv4gO0rV1*Ht0r>B;x7~!dgykxD1x#Kt<$2BIC6f4) zV20S5_oScod)mj<4Y&1+Q}C#U}56bt=t($|N4*<)bL z1O2-BeAC#9TK3TQ4HgM{b#r;$4oD5giDbhc2`s@^4f66;vi8WN)||}4935=!LhL4~qsGQ7xJsC${8@jZMoasp z%i>xMB!JZ!z}4Lv`77W_>;;G}W2TyFHtBh~c`xISEMc}?g=}^wH07UXX*6zorV6PH zhd!?yY+5xd*Q;5FJ+8ItO9iac-)xNO2xzz%^R(tiXghu+}P9;bGTCyD{&+ zEYIoqrtCRH3T7CgBCVBiWkC~8e+Rcpei(wn=) zXn82{!|hc4-P(WBGAH~3CmlFz)KuWZKj;E5j~G_zg)M?~Bgfk2-U0*MTeRjq&<0z& zp4OjVQ&C~=&>ZE4j*7Qdye?#=e#b9E^_O&gGl%LVEXV4`fbxb!`W;hEo7DuzI1Kr5LjemdEJ3)pYOFVO0sW?l~TFJhvxX9DH<8rK7`cM`o6?z?8)7o6)joZFC#~w zVbkOS{3>()c|QKWrgx<-H6`D^;HfSN1&pFb0X@v^+;-5y4G;Kz#{38Z{gCq-OoXZJ z!*-U_e-RWN6TL6JH$FPg~sYtf=03E<3{&6o-2hzeGB7-Nf_Fma`>i%&(g6=Y)=X zrqSYKS591-d{|d?D$*)(0a1I*_ooIm)HgOC{XG8P`;-6gYFeO8sKEQ#2F2ibH>&iS zD9<=9GZ+3bJ9G7|>>ovFqdN zinQaoJmM6!1v3@1CP<#mDN2M;!~w$De~v!qkS}h*+h~du4SPF(g&K_>ZhRV7@1pYt z3oK1^$49C zSt}IhIaoe1zi379?jBf=fzyir1}w>FQRHo+0zD6TEEhZ5S5Tf^q!&@11UMHo zi6%c>a_b3N-iX`wjqx^Wg>89FT7VS2pP6yLFP*JR5#scD9Qp&> z8_E}7e^|7pH~t2Vk85);jkVZK$()ZbJi(+IEp+_9$a>45I)moT8+Ru-!QCMc+}$C# zySuwv&=cI<-QC@SI|p}n=Kycs+I^n=*Y1bAYQEl8GjsKHU;S$cF^DTxL^-4N3jHAU z8R0dl%mRomJ5H|0V?5seQu884afz21r-yKG!Zo?%B7T6v0&p$$&;RYu_W0cT8N7(7oxjNR*AIsM*=lYI5>tyc#@aVnd zDASfhYU}$O#Y^tb!0kDKhuWGGVkQ8T|ui;WdWj#jMdiyv0K=P(b`dM7sO4U9+F<2i@ z46tO(hE!yzx9#HgON}_-DbN4SBe}6??Yk!r%-wb;DL@TS+;;Gc^3K)q6Smju;6WT3 zI;~52Z8fSBC&_OFyysY3e7Es(07py>Y`kZuk`X4UzAU z?(d4H)-Xb%%A@p!h*144{QXHTFxhvU+mPH~eYmBFiM=hV%u=uRCamN!m5Ef)9bT$6 ztV0qljMPh~!ABAg`V76JkY*(qwbqpLT}4gjB*=F2X!b^NZz6miYV9};?>JCY-~DH+ zNjsyyk2tU=AOJY&d~Rm$qLEg-IrWj_=L27p??8g!YHr)P+HBGNkU0)?OAUbG*l899 z^U8U4&o%EHI4v9nj$6bv{g6zX6LhYsZX9~Ycsz&Fae2T(&7b`B_#0mGvp?vmUN97K zrQvrAt9U7sim>MI%NN<3xQn1h#an9iH@qOjxj%JvW)494G^na|de@<*KfLdxR{rmC z?$?k260%BMJ{I|ZbJ&~Z>5#d*Wt9-o-G(x59CykNqy*0zu*u)}pAt*hksg}M{o2g0 zwWxZYqgvi>J}!e4eLFUv)-{?ispF1SUj{T7ty4DHe$NNm`(Ryaj-6ZfIKlP7FR$IVe zHD|LPv%fO${n|S>)Pg52*?J+T?n7RczEcEg^*-Js_g|q1*)tAjPnWf*N{sniNRT(` zPIGi`XMlD_HxDxuqA`6@+vh8Q5lZ9BioK-a|GDtLJpSQ#{*`VTL3s*pAkpjzt+Tjh zaPUW-wT@?w{ex!S8=lm~&I>oJQV(Qm{95)P;Q??{#1Ne4o=MNYG-^A) zgv0%-`jdpi^F@M@gRgW9UZc2PuflR&eiFA~Ua0vU@@_5re*iwYVArQuc~cBk{dTZA zCPeyL{kA__+8XAWsv2-|CZeI{d_2uI=0;JP-~A6$*W+}qEMW~?c^j{1#1x!9qRHiL z^C5e#qv+Qo{ux>9F6&3v_tZ2Z>@~&fEr~kebwhC8?xuUx0uS#tpmI+vz>K$^M^_kp zxZj;#;LWX%6u!%#YUy^AfvW_z^ZHu?j3JP- zw*T6Zy1nZ-%yCs5(Bui;h~Dod0j!l%l@AzWh=3RjX2cA5;@)3b7>Kkib@yk~RzjX( zDZ-kg2~7C0K;?{;P(9O~u*ch`$sYHcLuOlzZFd*oR8R!{7mm+0`0<+Z=4;MXz;RA` zPS$;l^E6GM7`D_16lRRAQJ10NW%I|=n!^WZjbjEJXj9i6XJ~RyG;T^EMDiyT11?l4 zMFL-by4{E8xNdvZ(Y(@B4C$Jg_6HILibVtIwnxoS2Khlc{Yhz5DZ!#;V& z%O9cWI!favGMTj|W_e?r;AA|b&2q1-zg-qvtL<9= zdpcz%TK8z&Xgoh`fy?zL?uG}8L?`-5dG7?n3q?LreuJ&abY^r;a_W`+PK_(5W0IDz z*8Z^PF&G{jK~J#hJC39XdD~)yY^iq=DNh&y{O=6~HLAg2+)x=o+MZ18VhuzLK`{di z5-I2oJDMP3!n0=x)}#FXF%`GtJ+!>%NDjihQHZWTys(?&l1(-Z`F{QvT_2TOgEiHB z~Kv~aC9>p^ez7yMEL7W;>(qnz9CJ)Sply!&?=T?{bkn#ws36qR!x4BD39TGkI| zF4DCpIC=wO+k_XfvCMu(O>^N-*ZhIs!>O9kMrPme;u=}fo~x&HG`~}KQ}IYiCJg;+ zE+j`#5xjekb@ntKFxoRw?lsef9%muruXHE16`5HuXBR5KY|%Ra zb;K)hChvCO&xAoAD~qh#xyYroFBA*Of%4x4sFLfZ3T>zKj6g$6=_QWL^G_Lg;Q$Ah zxS>@7Prbwz=v$HOfOKHFqb~lt{kwPl0h7%mzF|q<4tpf66YZs3#LW%^`|4kcB4{B& z__nvfTD5wa(G5+PH(K1>!L}q=V38Tx=FCw4JY}@W?eOtv{5x@+cc^PT-B5=PS^^2g z-twzUHv-SFp)UQkd>I#Ke#v_*vwvLUuFw7h&KBArW|^q$?=ZOJsmgr}cM?+~deD38 zb=0827tFhr*5wMWHWaVurkE3UpSWW?#czu=Dqfk-ls^@a@Gsh=-=;9AoCVvcxSX*z zLtIlO>sVwQO&O2vkeI3lh7_UDcj+xAu^-T#Ll>Na)%ZNB#pnmP zur9j#6uaWeGKN@I#hHEJVeWbM(|vl;3;9FlewTzmp$BE~dzv2VajB*xz@|%rs~%jw z$;c!eHRKIZ3t;ZMlUlp>czlO}18OkGik~kJ4K!C8U+sy90>rm(uee(7(f(PchJS~) z?ksKL`tYm0L@)c-m6+HhugGN zY!cNjy9?yoi|(qt>7i$+;y84A9F3|3_Sq}-o{7$*3g1zNKN*1q9?w^}=ci5M>ixe;(Ksx3xEI{cS z-)tDBGac-mUhIfj(y~V~7kW?E@n(`97l~Z_tnVEL-%;k`lRT!TxkJi02mKwxmsG5g zdITWu-9$Ok88`Hi+r_PaBg;7;+ahYY2gg1!Y6t%{+o$wbe*+znse{Em;KQc=w&1=H zvia41areB$xxnTsxE;5CD2E`C>&oMS8*v3K&pEact00n*-GaQ#!`0_<4MSx?kN*h>v=Jss< zophjswY9teLeM-zXb^j4eT@AIvU6^OB127}J^mK5hYfR$t*r%}U6uJ;tMO>~ zDI)iG4mEMilNy2XDeXD#%`;^-Q#j01JC8u=_d;#R!P~K^Rx|)fwco;Cd>*Y_GlTdV zMZ8t9%0r}AhU*_CNXi|k9-7<}S`L^d;}SNl_dwT%1V!2@hFw~(QvMiqxF4?I)=SaffK!BlE{jJu%^*}ErN&e;f<%$T-EC2 z3f+sP$uCiBn|`|d-PuTMHWa9My*I(G1T`Leh|x>tEs>{nUX}Nf#_=chA{+S+&KEnK zg&hxrCF;GmUdC)H+QxnI`*c<4!uEz@!Xz@f75=PLD6PsLrEsE^)^HNbSudzD%TD*` zlV(xtEF&qh7Lhr{%r#s>X~wPg#!?snLyKW!VZeb;YLCd~BRs8oSl{9P$dMzDT~C0+ zAe!Yxh1<~@XraOCI#cqLor0t$m3<5f-VTfufWN6hWUFvxh}oUW+!J13b}Bjjzb=#d`whKLb6%n27#rQDyBypKS^ z3BT>Vpuas-9!drE2%YbSK;ao;x>81=;4iN41Ykw_Tj-2P1k7&2tQ=qmXA=f>VASQaFHrS|&5l7C_ z(r!-Bs`Jc>+}}5P=0VGpxH;pUnxJNlRxxOa^L3zK(V8AH$WzYM-Kfo8;DkNP+*5zH zQcW}!9<&#EvXG|>N?a&}!cE2My;AevT_Mq5tgw}-<-d~lA2^h$-&u9gM*?M|x|s&W zAW^{4#)jdW(Zz^VbXEHIlY)4W1ij$5+#>UNwX9MJkDi;T=@NfPc z^=(1c6X&-l^B=ABULKnqtLW_IGj9@+zk4*oc9Y{P`?b^+xr$u*Bv94@wS`4npq=Bv z3Z$~6lS`#Eyv2cBm1l}ue#|22iwofBUrkYQLb@~7?XO7HN0Crt5LPLWp|3M~#RtMz z#m;9;7DbEsp)#QLdjU!;3w2XTfUCsJ%a8h8KFSSF*S~S@RNt_x_3;oj7yz$jORYvX zjtQWMaEVoV0HsfLm9enzrkBO21QlN#F?W>k&}IGe_!Mi@t{4)dSTW!G#;XhK;P7+N zq{o@w6V5?vpnj65YUf{Z?&M`RTX3BZw)45eZ&gsL955UzXCqp>lvK3?HaREt2L^W% zI*h8d*7W6Wgi1}$OS|<)^y%cd9E|Rv| z?99_WM^UQ*hQx~pTfUFU;TOlcPR^W;;W8b3p|b&F*kyj(7QJocst2dzRZ8rPFnxVx92}k%#(vXtVCA z1ey7gOvMCJ*=uui%jlrNhjk3m2C=-X#?VBg0^pNq@m|gG!&UU;)NrW>UbofnCXuzl zMnm;z+9fF-F|f@0ni&DgA}rjxk?;5vL;+B&RmY1t>WMHt7e+hW9cwo+*)=8)Av zOh_nJCKg7Nh8-u%dww>#|MyszFv9&Rwv@<|0>=GA+GS}a9v}g&U;H-JaPdP%S+P(5;eog%F#2v337b3_!Q9X0=v-F9kcfouH zy$o#}p@&Md>Q@b4l0ndD7kRpNmHJEKC|RZ}pN2+LBJM&h|M{a!>hMu!FB+p=b^Yg_ z%ie6i=#DA@c06|^iK{H@&y~lQ{rb~sACuv?CEI|$Gd>B1_>Jsb&!V1CF$YnX1{)Su zcC^Xbe;ki{1R%i(+H`)HL5o@x+@A8&z|7G>aGcwD!Fhi~5H$0l^O_jFY1?n;O)Vn% zA==E)NIQf0Hdj!(K`v z!R|#vOtYZzZcA|4G50(rLw=e4$kKS~4@4vFvA%9v%t}^38`pt4O&n1ruksP>n)fm3dTAokMQ?S@ zlN)!$6DA+U+9)E}NXOd#n6vZk3xK28XwzWPZ5$~Fjq?4ph3V`ON)bt6Q$se@-z(pz zq`)j{*?kCh^s|Ik|D7&0>+i*`M&YYnC!t~tA>4gGURrp6OKptlvuRPQk99u7$FFWU znIE$BO8PInkVY817TEBx9;f z$j+Q0lFe7HkQwx!5sPcdoArB$Qwx=-XfM@!{_!XX12l|j{ZUPSRmqlxq@YI7^#psE zA@+dpNZ{o-<>ZenB}`Tjsf1d;XqBP@56JfU79ygd4Tlvs)7L_;)L-9XmKl(MDu-pnUr z%BVbfOyt7ggHsXLle5;#6UWA$-eoGsVJS5ec?OIbQ2bro(}FkoEU!v#hc*thsrk>t z;(xp_4u#@g{8v>4wLOcR;bXa<7Pw|iRPSc<>IolwW~+o51QFGTtlZYD^ZQaDAM%Cc zF6MKT21)zCN|Rsdh>+RBfGgKMG``-Z>5y7;Kf(^ZW{2iEDm8^tgIH?SC|S_o7S3`_ zuUN~o6D+^`#N_(k;UWH#8kzD2EQJq&|wkR zOF4TFrw~LunJCdTQcKCZLEuR~=R=09(l|js0yrM5-o>8lT3}eiSYZO)uVTc@mU{Oz zwlP`*Ku0H_rx4}-m)vPh9EAl+>jP#sr&}%v1?!vTf;?o3-Hj|VE2m8j6CtG}Ennr= zVVwPA;fC6*FmE;zZLK%5-YjUNtG(VqxtW-(Y@y##ixXnpa3}%g@q5EQ6$bA+^wn?= zmX2jiROrj^9#>JLIbKvbeSMn)Dx4#D7n=stx26~eo#-rpdj7)5NPt;ZXdUQ*>cL4`CBDR`K>BU!%1(zr~k)31?uLop!j>LDVD~M zEp(aE$gc9V@0kMc!?@yRpD{K$n4=vXX=26@=yGi4)Fy8CoK>-qI;|ti?>%_u)BJ-# z>@Gy8e!WLZ&FatSC#TRS=+)J^p^V%+*H%tSdF zZCs6Z;q*hgv2YpqV+0Q%3Gp-MMC}H2CZjT{nfCBb5~|sKXm(DJn;!;~CV%v&bFf5P z5@6si)v;VkMBq_iFFsf{{cCi+JcbakKExf62rA+6%#qw5+1ptpq-%lPnm*d(Ma-EZ zi!;!p->@F6CH5JHXpW*a4{%FW#(8F=n{v?YUQLFrDXa8Nb5h#`O)}Zkh0;46zC*=E z0!v3CYAIVhU6LJ}-vMcmiw=W_i_dKSgw2{WTbj#2I!RP(P71dh(^ctv%RIUTk;?pa1=(2zihTX+!Vmshr~Wq~@CApG z#QgE~yQ{~8h=B9wq8EqEoUhnJEvmvTfBYz<$UxJ&I#G~0*Wf{`xIS{A#@&=*nZf^$7dAvS8iA%+)fIy_@w%N=o(+;0 zkZN8HW1hHxhpDtYj@anZ+!j+NpB>CNwcnDV~+5xl!afXjw)6)J+V|G z+(2mD7ZI!=b5xaMGK2}tXG!u zL?e>VX(T8_2Lh$%TAncOdZr3sjIw?P65`fty&VwH4A$%X@rGRMziHF@U^Hl$1y6Y! zarXBoUAqp9;F7Z8KfRSU*HHa8jlK9%cA4uJPcPz>!XSO@T1C^%_O?VA*0r1oxa1SE zh6K85DApwo+G~u8+sHS&o`6$M6I=L<71rlr)XlHHh#vP*J3-W7E3pyvPEZ+_<9hpX zO~5^K&uh*OapI)y zZH=WyDxOV=(6EW6_jsJL0lcL0spc(^A}2GCuje~@ab^2|PqoFr@^1%NZ(Sz=qQQlY zq#rN@*Uu>mRmtCnuj|IJv1k6|BL%Z6^o+a+yi_BqJ=H!5kPAyDb5Z*%s2HRaqyvT* zn;UQ})CMym<5g-k8PZ*-+s8Q zl{P{z5<9hxGW=5i6jDJ1*+36w9e0`BAfUOQ9K6!+bk9=s!=DI3406=kF21AM)8f%f z2IX?EQ1FP3en9q)^dEZ<;uC2Lu9quOp^2sMK+*G%Is27*KFaViS$;Pa?8{~ct_c)Y zmkS8B`BO==1RjLnM6sD5rn*r@zZ7f85CawwUxhoUv|0}-$u(kU_R#px$^?W=<5K?q z_~_(HAhI;P(%q+n_q65YvFPTwK`b#Wl!;Qnpw!^pixT@=R{wFY?RY=egm>tN++H1x z2$8gFxogiC-+siU+)2^4m*O2Z zx!s=~B_2>Mh!3_VUNVJU92vv#`afYGh-ek%(d@WMq4Yvi?R0z>m%mjTWWNO;kDy6{ zJ$>h$9>?$_6kLrk>ho{eV_8$TG_Y*eyQcloz(970k=y)XT4AR^*zum}goDqP+I@C7 z*W)Sd>hU;4f=}3p!|*#Ld9v_&EPwTNhurC?7{?;F@OuUo7TCHeRQ-Umo9s$$6!>}$ z6?p|;D6!cWMy|^2-gJ@pXhZQ_>uGt6#t+pmbuI9NlsE>4rpoOds&tyPNZwN^qVkR` zbw9M;Cd7uF4bK$%TWS<2&u-3d8V5RI)Ism|WX)8=1vxn*g_cJIbAVH`?YQs2>E4?G zpn>bn%6*pF{>;mVHg zLLqRSj!8~3DkX|-z8G0|f8n91+59=kALC)xza9ne7dSzsoEN-ZKKClU`AXtT8-NtZ z86=b|?E&=?kFJmJbAzmfquy~YmXTWyXQy4I4@4o4)+h@cd2dTA+s$PN9)8D-dp#i% z&8Pznxl}~`a01(faF1dL7UUT|cB@J4*EzL%kzfG}9)=bC%m1l)WtpO6xq|z*8QIHL z3X1$vWXkU0!>9gcK!Pg3o+7b)EIIq|D5~~oR)kK z1V*)m$8GBW%0Vw+sm-cB0*#FHbZj!E19{{Os2N*;of%LuHx}I9B$NwLlNj_S_Q?QG za2~WW4K*;sJ0*@SRCEY$>97>(_LF+o7E(3jiQG=Hj39i1~6+ivmH4R`O#OpU@d0Xv!Z>6(*_cIa*d?>S`IX{ zMXC9pP%cW9CAkO7%4)gdT+hc-``^y;(Z3wH4(y4+p9YoT&h*ZYQC>$&2M41@iom~? z>$_^O%_B%694*X5D&7>jr)*d@j$Bw-0t6Mw%B~!IkR! z#m?11%_nplat=$mAPQlKa=5!_MK#U^17ugLO3RA=A4Z59N4cKVO?cNllwAzHH$^O! z#v-lI{K#m-#1E_%vWc7p7QnbRm-A&!-+peVwPxlhwaOGpjTI-T*C1TO1}oP0V}sAh zUfk`T$7!xWZBKrm{pRB>AiZU#H6^V-ZZ`9T57p9BqE$G30A@~|HRr#^=}l<*UER;D zw(;W&pisFyZB3xEO#WDl*f;<72D@=oE)fQ5*ax>!V|Fw394G4s@-9VERRD5a-scto zy>FVU!y$lBvT#rmd}0~m3Ht1$vskA0?&$#2YtiFxbWmx_Fn@#~;W6kT+Jx~ZP8{hh zfSh5*AVR6f%?By){G=yDU{tRK>Wl)^={LYhg=Ai>MG)(<&f2ni_*vS}Ni+sA{u{O=o7>AfT9 z?XgDz5A7T@VZCl{2Y33u z5Hkksd{gs(g==8}>k>@ZsgyVs{dWWSsA%Z91_7uE2+RR~w`T165@ocamP$HEL%2ob zN@_oXpNUkH9>L``XN@fFUfYj{l@uK=dX9I~^zk+HpV_Kro<}}%yE%y77msbF zyTE1dwRcULat;|oN9uQj(r{0rz2lN~oTk^Dwqy;y9qZnAY5F{+U*ziHs>mnfN(kW& z(5Mqv&hnsGFL3r?K}yE4N(X}dx*5)OK(Gl?^Hp7Y9PRFSixZrr1YkJF-zeXZXn4b$ zljKH6VvHHG>~tLLkS-*}xcLtyiKI9lDT!DmL`=wN73GzC68frTh)pGT#7{1X!|)yn zitqr@)U*65psVZA*O*DVVWuh26~2!POsoHPv&h1GPouyKVSb!i*Dvc(iqCm%I2-6n!cRBinUK1?}j&93E-BNShvxq8XLPnmYFVwK%_ zO|8#nH?A%8UUQVWeu2gO1t8GH1Ul8qz|>;#H6A z_R31<23dK>C_-NOAhJpXhbQL0CH`mZCX<^M| zJcEOEOyCZ^MOO;3q}T*S@}}Al*oRmDIpAV^JA!;6ls$EdIhfOTtB(6tpf(^b_HQZ& zSIHl>=Rp7;Ubn5{>R2Skl&$bA)K-3Vr%CVvIMv*qmau>3)kn$ELDcg%ZOF2z+R#!& zD+~Rg2;&8&3EJp3Yk6W0V{ZFBvSI+FqKQq&0&^EM7!jSqxT}ZVYHdV9@6hfB3bakm zL`Ii-XppkVC$(2V6O$h9`3w)E#0_F*U+e;&={B$Xjpjq+VZi|JOd@L>WW$c%kq+)R zzOHwN@b|dqz@yR4SclDrgZJK-VxWGj>v#b)j;?FHe*D~MJwWAcSxPViY)N=r@zL^8 zHiA~y-|$8Kc))wceHhgeo}fPQ z#@W87frBmIM~r5h=dNsz)65E|qI`_Qn^SFD;;)|aa)--}2A6wkfyXtMv>}6+EczP9 zTmmA3U5d3V26rE&?O#BeGs$o#wcLf?DhnI(b~{tQ)XTw3SvS<+d1g&UZ?v<5^Q5en zqvf{KADq?Ke6Bms3J8MM>HigYUxWW&;Ct8tb}Pc6C%1xBbBF;T|C^u*qk^7a_z?g$ z$16>ih{7}$vIsT1NxRSARxcG!N_tIo2yGvcQ*(gf3k1o=(~zH+cMC6Wei0mvCDN#iBUSfXY$FgIG>c858Jq(vLZS3YWO`oH-Trt%F1nf)w*DSR zol^i-h*W3Dd6*&QsM~PcwA$+?`*3OKmg9F<`_^m_%cOoT@SM{dS%@lt{W!bb7iB43 zd$o?n2~JG4+6WAey0V%H@Yi+Tlr>peE6rcu#D^pootvE4MN1i)B2R`@u=+Cl4zaxO zyaiiaM*d?A`vW`SoMI1Up!JvtEj%OK$=V}iZkXK7u#35D8_ahEav`_lek2{nkxm|y20L|z z?Yd4Fr94Np?96~a!r@njwn~4Jf=P=LfQNR48iXn;AdSi>z>v_z5ue9V zHQ`V9fD&+P9OCwMW^-o!?Ve^kH)K@pTqqq7#3a&um9{7irf^x~JU?Ewq%VfJb)6b} ze=jh4)qcjG>Ve}KDc#Dsa<>ab31>oNrRGV|dp}H$<1D5As;h|VhS~%ecYmhKXX5oS z#~s?JyXfMEPg$CL;5IGHS=w;b`d%-8XI&qs_{||Mm8&LlXBCW?d;aUOhUSn0Kj9e9 z{0zbWH})K(&~tOachfH{-xPz>%@nXDnZ}94E{2!F1e$8LX2JV{=)ABwMPi->Nk!}4 zhL+Ztf;F~TL9~yu2EhEb&e7i}v(l>AX59SqyzVi%%^mcr=|pVl$Z7Hx*rUfoFuJY_f*HRx=&Be0j3iOorCN`#m-b{&&A$a)Et8MR*%pUpqq%i$|Q- z1Y0`Q(Z{1BE;DlA`mQ&Pjl>K$9hi1uJ^P#L#W-6P^g-|#!&?OlUKhmS-f;!uUzoci z;qTsC9?zE^*^O?aH4DsrngdP;M6#edT1JKKFh ziA;U14BGzMW}gY1E3B4JsiiM{H(2G^vZCmhgIT?nL=~lz=y_&lImuifry(W%JR$Q` zFmpOYestlegulJjclgnM5h~OzFu^ur`@*RzZ2gECZMOz1X3ln`MRbi{zvcE-JVRAx zCgQ>^=zr0wL%At5pSb&30@&i#NvfFMP>EyBEV5vj3DCxx#32trKE&)^71Ic6nLWPDgekf!DW*%yDMomK4TwjcSV$ztF z)Ukf%+=-Il*GPgmv=bs1ox6$Zy?f%9e=M3qjrD6+1Q%0@KRpLF9I8aeI zvG!17SJgmV%K~$IvDqDCip?!%CSiil47s*wdBvSo#Sd*q( zt)|q+vJK`!J*1$LfNg#CP3}A7{BDKIK#(0Az+?6#p1l4%lG^0EHk(Tk_WMbq{kF9S zWHy6{?0Zmy7cWAhq=oJW;pN5+(PwZNQ(`py)H+Ih*h1_llr5xNn*(qf*8-x>m@y#+ z)1Z-YK_GuTuFlk7;O$=*VKe6ZsUm~`d%DF#{n6`pr}ePoj!TO@IU5ifmB0J#)>;3K zQP}v8xeN~7zFUfoff{$gWv>Hr^390n_9->mvAeREnGjye?T^BtFOZq#awN#?C5G2dHo)1M zoK0vQ5I=I9%2z2l#&v~u?K#`HG<>?=KU|0KvS z0BYwif7}oBMbLjO71TkH!(~?#2fF53R=P?tm=kDMZy5(uL44LMYky&fA*TsR&69dn z@J~wf*r+%Zk-L!h$Ha;)vIKrbEd;9P@b9`Bt2VjkRX=6`#q{cDpa&WW zme#JEf4by^l=xCC6!uBhAMoO*?cLhX!1#JPZY#{P2Oblh#>Yo&s=NK%$~l<(Vr%GL zZ6;5NoMMto9ydZraj3hImK4nfBfTc(bQ~9T#@OOA*4ka&3pcn(g4%YzWhdR0iAm;| z;p5z}!_VY7_R?5aa@J`u3yh##GkF^sIaiO7lG*@z^B*t$B|p3>Y8pO=3u*E03N|0= z=Q~hxe%1|CxwP3;6L`zvbUZ=oZO*Nx(RV#s3dh9B4SnkQlt(n~-w`+z#h9>e<%T0u z{?&W|ugyLu1*WL~(7~RL9%*khX?o_GTf}n=XP*(zly=Qps3ca^3sRX0c4@N~p6N)r z)v`cnQICXL!mHt7!9jts84>gD_wMa-ginUOm5H8$S@(yI4d;IrL~HGOCNA{Y4$=%U zYQbJt=L8Cv7M&k*_AoJdKGIu_>g8zC!pZ51l=JnKV@b**c@<}|v@*|?p3QC6Z48S- z45{=dxl!XT#lCl09#9MGDqOC3v{L&H(N@1#-~DP!{ki0_WKoPI`nB4ysiR*cV-1?l zcmmHpTUo!aX);~`3r7REJxYA9xJm8V8+JNm?xtN|u8ADKf~*>QHp?lBms(~IK>zTd zv44&36{T#ZRM&GVe_r#r;+Nxv95N&+&gNigr+WV;z^1$lQoU#pBv@XI6cLZkJ&S%+ zu<#tEkHx_M>w4~2>XGPa=8xym1N*^5!NftBAUUmpa}%>b{a}CFIe41X?tH8`!}pWT zY4?rhZYJxVP5`mw4FAlvXk9U*u!O3I#r0w~OYl8=yZ6cCb7p&;J+3+t}V2FN@COs_!t!#XYUzEBcn^t$WZ<7_3z zZ!1JB>j4_f^2N!mi-dX`G`rH{eotQ;z=7GzK*FGN`K;NTTaH=*nNo8$l~Oc%Z7&Rw zqmVj9nfqa{%5cryjrd^4yj7Z!UGqP3?dY%yZ?J7{;~B^5JVzf%swez`HKNBYI#I-d9d1rj$hFZN z7CBcR7d$l+jRyye3}htKC}SEB2nsL5oYi-WjkV9?yjS3H0JcO}+9vsX(HT0?_Op^E zZKw2+$wt-TFdZjtKaCbRV@%EInoLtQEniaoM3RZtGteKaWJOvEDVBsE+wF*d*)bU| zLyq;I8$7pc^zmd_pjy(Br?E=2@uTYl@;>_S>zR6?Al)XXS9dNUE75LnTvA?D34EHA z&xy`2nkwwc>GM8-xsh6x>Q4GkZ0ga8lb(KFG~FaA5b z5#3~ryDJcdY&#mu_0WIW63Li17X>y1C3KK9= z|0*hB^2A!RI*7-Vr^9Ql-@4L_tnm46r)br90WFBpHbJmopvyC52sRaJzIZ;<1}aDs z0v^4zRI{!DC$ZC-`bh^}k(*?#02iC}n2ZI(bI}#AQ23-r_4nvprg@2jQa502HiOl|g0ay|%ET60^XpCBRfS4*8=KMdd6(T=cuyI!{-`n>uy zKH~c_c!x3pBj(f3~-Opy@@#@pQk|@bzbh%5D3ZS~{#$ z500V;kp9UPil`E(_uFn^yzYKn=DpJHGTn{EF>uz}gaTH$Vu&mwHcJrv{KDIP{P+(G zKsCg(@{wx+_5NF`0+G165Jy`~%@(GD+P&W<`~1+cd4czlrz(|;HtT`s>tU*!?`aCq z!-(K$?mD^@`_|zwkn1bGXS(LxzWZbPkaOcE+|tBG4|SXMk=3IXkK4C5gBcjStJi8K z(_C@!E>h?bV|2QMu?3vt>3nU>jUMy?e9;ob-uZ6fy)OM9e=s!wlJ+vY3&h&8+@@+! za7Uh4Z|{HVk@WX!0;bh_ zJ5HYkn@v(*K;_4SP_2i@E|i0 z3nxz()%)4}Jzuv5R`M?xO_wn^eK|7)``npDg z9@%FnW3;$2i^5~6O-C1w@{fUr%`9Afv0O*`8_;CnlBzYfOtHIrDEvGJt{bS=|M=@u z$j{`y77Zk7SW!^r<)i_R{^P$%X1U$;BDjD?lo zeBWG3jt_f=q8a$jum$ODz`_*oHlI=XA5W$ywiAhDDRq2a$J>Y+5q{PSe{cZ^_w|em ziblP=3gH}_OfW6kKc`A zm%!Jc%S0c&Fp{5GLo{3w<^xUEXB{-_xveT_C72LzFr&t}0{V|7E0PiOuHW5(VHCVe_Dd>$ zG-Q?N(0`x1z!4SoYU5H3a`3p!`6kclq)19>j3}EbiD~E(17-V?DxK6NFWUB}UqIUd zBu9=ALl74~EFGSwyJ7b>jt$ULdv4tpncc@O6Nc!~1vQ=ElzJ{cB@kvvFKuyjl zrO`jjd|0KSnR;P`D0&cTL*2O%(?b!%28y{8+MLDp!<3$uHT#*9tY!bs4%;I=9$I@S zP?UWpDY_*HpEh+=$BYSi{br4|PJCd-bIyznpGDkqGWlyf^FCDn(Xv<5Aa5wWe*JIW zV;P|-QwjEiY-TapZWg#pGHO@$FhFA65LHBlSO<&lWf=2=nlwxU(r#`)7ygI;Z63ZZ zg(JTzI*t0;5tP)pMk?OA*bIf=gff1>8uv%KK z>x|U(a;@*(Lhqfy)*DJ|x7wsSOMJz($nMa>{8#pK6;DJ(?CEm|Pu`|uk3&Lw*#V9} zx=7~i*+mXy=ROa6k-p15a)6q__KT4)D9>wU$Da%3V!heM(|$Cgk?3or8}i!wnAhZR z{;(#bp|)JR!fwb-Tu6&xsdHT!TKxoE0k?SFRFiGnJJ)2}wr$%@m?qa`H`%sr z>}=cCj(5&;&b{}KSkJeRPeRlOBT{Nf`ZbO{SavYTB^_Eb&{(f=UZrKFT_~NP+qk29i$uUAgX!?uy#s3dN{bSYSwuC@sKF5Z6>+SL@SA-cTMx@xt_i5VxwVqPhzc`F*%+(u&S6BdMQj#^Z) zG+IjfT@K_9G6OHHM!3McfV}kvpUy9w&AG1GE+QDtldCp&ZgG8N|4pWCfH71@2?j%r(_k)F) z+U6ZD!)A2NQ8XWI#Mp<*g6IsNz#S4jBX-TKa@Ql~COnfl26*j#W;Ocko_GJWMFcpN-sr(Jzg!De( z1+i^`f^0}v>zM$<@e!y)HKHoQdur*GT{5BDcGO|V1Wd)@1&)lzg^z8E5CL?s{HVq~ zP4^#Dr&%+Nw0hHkpE?=r0=rPfPCCgR-c76#Jlm<)AdAjj>@8GDkLy?;wF=2PbtA94 zgha!#3a)6GLz;feVcMX`@7F`N@+<5>LxPa?r@`Z|mzurI+z*vWYnur332f8v*|Ya-2o9dP7&7p9J8f$#H~ds{tkLhSt=-(|HS3+3f* zIAg(Rs(uPz;7slnLcluC6+00|Y$vC1g~#(yK6*h_$7>EoXpF<=d~OLpg_=_DdTWx@ z&SL$QoUV8&$Lb3Ld^eI`k<cqND zhE(WN;)aPd_JF>9>UBrsvZe_3FoRNwMtly2BtJdPb)C{9-1OT?X%zWI(FI{oufAU7 zbNeyXvoXO_->RJG`u})0aH5wYA4KxE29bOrh?P^vzN)NBwkMGI55+Y%i0xBWB)|mB^t3}%izA?O3+Lc2LLlZ&QLAzqB8B9$I=im*Aj5F~t7su7>p!TF1f!g*wIhC(+ zd;=M_Kg~iDg{yLv&)oC*Sw5tGtv;#!8r$sD^tMymKHd{64^5vLekUYlo5%LH`~eLA z`{@mhV9HjAjhMOZ``lr&)nC+L3AWJrg+zcuz~^C9p67B#{Jur3i1dgkhQB^A?44>J zJ{>f7+;X3}7S$Ql8>z`hJlB2Fk9gapvgSdK5^$wLtZ@DRyMc z?FQUIE2J0SOUfDayXFgV5h!iFSLQv0P8(PPD?+D5JjRn5=X6G0S;G&sAp$H9C3Etu zZTv7qe($%zTmygt{79GU`+VmwLKAp?3-_WcNy_a6tCa5j`>c`DpQkCl+sOYGs4k)E zAN0c-=5<+h<9$L|eR)s|(lt3_66ok*v%d}go%54IASS$4YIbSp7mUSwGgahApPE?4 zmb9Xrwh0KswCB2^C{9Q_y;0GV;?ghb&N8<-OPerwYF_zF?%2Bze0siJ*hD4?RUFEv zgg1HG;MQoXF`^{0^)Ug>F8oT3>|3&_h@I2;;`|IrLTzth>yfN1sYj`2H>=kV|LZQ=4 z9peQh5$aweM{DAU%!W=i>>v|tlSlebJF1pD=(WPazB$z z{uAL`dm^DO3h*Tkf^+PbS_g)MrDc>?^#Tu6rwsoGSiy7so$VcSvr~4kdrJHJK7+CF zQumIgJ!dt6}b7Rq=$TGNbi6 zA3Kh*1*;YYKxn|HMxrplWYiB=FIpnj9!6()1w}_O-q1~+;_fKc!CkAnA>_%|{q~K# zA7=8otXS0y(6|^uS%Lg5ENkyR*H89l3bGwiTEPK$kFN(}ISEf~Hk_Ho1G-`AE-C^q z@R46e%i*vV`TTxD-vpRs0^b7TYx$l z{VC>o8f&UXMdVK)^^49ztmfw+Am4p9_jz)lA*{`nC501bz56D)_1saAVEgmJezwWq zQB4ar!8kXzjgSR7%>x05=qk4ik=sq_@EX-4A?i+#hs_WPS3Vm9pE88OMfA1vd;gpm zq{jXyPJ#2JH~jBn?W!fyw*a`P88YUv88|mej==psD{H$ty1MmLt73ky+#f#+vUIok zDj1F&w659Cn#yemY!Voin(^<`8ZnzFjU=EX@&nD7bDm#wBdFBKN8VyP-Wj{jdD;pq z)_Ypb7tAug)WK!}pA`a^z@IknusP|@cY(`n-^>a*0Kps6;~u11zoMX9X{!cJ$w|0O zuDg-_={=mbK;`DL1#eP{2uhz725<9?$jz-v*tA|!%#acF@$odDX_D<_{G)lKK{qGg zD8G#x20X$Kz)L-F(PHzSurm_1t{V;}IjN7<(+}Ey@A?M+hK>`t@p+&+J01GxOuAGp zVDoU?a$dMCt)I40Ky55ivns;n4D2w&fqu@=c@y6B(>!%J^i2I@@F#30*O0E&PWImp zXBceuvhaFHL9a@5F!@)d0Llc_!Y$+jZjQ;@^lIdh9qfTn&bJijapW4z91ogMmkfs{ z>w9=UMq;2em?Ulfrr9L~ID#lg&Lr)P=C&`H!l_(}S031}L!jHjVvUQ|O80mfyrQpzBx`Oaf*;iSgOPuA0ix4LHN?j7k%jsI1kE|*eN zf^NXG%=ILb)Nbkx$@ojHlz0PQ0-Ycip3;pb0;}o|?E)jj7uT$WkgRvQWQaKoI~ah| zac?2cfkxY3_Tbqb0Uta)*GBZ#uJ&R5X@Dyfcx2x*&DmSNs5d2|$WI@BYs?*3m^p7n zdMAO{n1@92E-jWo+_z??$d9*LgDDb1ckulhb~$lbSKY~+ADkS59|)gEX}p1qraV?N zJNkS|9PeV0P(GJhDuQl1MsEDKkdpILvOe?_eZ+13xf|w`;vqg+)RcVO-?GNRO!6?} zWIvO^1&T;5clYT?d*g$Lsb7B>?UW=7;PXQ$FxEU-ps6QBF!hgTPH6O36we#xy|W$^ znYQu}`;fI0`9_*n>*ObQ9Zx0cip=!Z?c*e#W3nm56brCR7LE}|YA?^>Ai`s_?)HyA zlgAC|-!z7po^Tkr1kfAQQRwg<4F<$k@z&a6Cvs>}Nd8?8_<{pm5Ab>pK1mYCA!6%? zM}Cr8$q1JOYlM2I4aNQX2OJ-VWK|c|M>zEpQs%J2U~5vo%b_S%aD>yRb57Ztp&eW9 zeFl2<#ITI>ydrqlM3ScqXO|KUF&&1W<1Z#usgrhVdS~8#$CNR8L1!eJ>C0y^O)_ZJ zi)++GT$w0zKpqO&n|PY-ZM#WCPxd-d%{9NX;#1f?8QO$?8fr(h-4E6@z()4Jqk`N5 zaclSII5u^{mZf&cQz7=ND;ag7(E~!glT$m^ywWY7z6q;tk*TNaF~dEx8EmR<3XpCp zM6sVO)9LY7+;sFjI%WAhX&d|^#O6r$}PD+RKMZN^7J|Ub=WgbL;Cu1N|c~5BR;*|A7Pt;1k zBW^4V-}mI`A#l)0@mgTJVds% z5O`En4ho614N=7J!zYqXwrp0Z@`uk^@AMzfKxZSPotv-M+(4JO7 zX*pUyjm>AH%=d1wkipVXD)miHapnypbvBLDlR z%Wc9h(AUeMm&JX`^OonjeFN2qQQU-vW|e4FB|hbL;wR|$50vto#Z4L#2}bbp#+RNFtDJ(k<1F%Sy9l7^bdBv? zZmtewo=H=E`r?4(RTnT3u32X)G{j3Qh3S{mZMZO>Ncx0X4kqCC$dYxup9DMvUZ^;l z__Fa?d)lv=*;v9{i^bLODAk&<2xF+G750bmr>i~&aEF<~*gO)0D(?>pZmO-&O0^MU zU?k>Cpa1WI^Rmm?2GbhghC?r%4+P!kV`X_iWvKIX`7yP+={2^+jCT4!fM?;W!v!SY z3+ETg^ZO$7-XGv5(fM*sj5fYD2#?@KEOI^Z&MqBO*Rcce8b=h<29NbKIXH^*ojRF5 zh170JG|e>}vOXBwoOIBa8?j_keZ0i}J^1|eD#CjLYxvIA;OB0qKy(9YUf}KbV?KgV zp&`iW6Cp*o#Yi^2T~sHk#_JA73Cm$iHIN?CCk9Uedbz(>TuY=*XeQOMHp0O#QFn0= zm?Xf|fbV@Z)AV{?*8~-vinsYXlC8!^fxai0{L?44y>p8wU-}!h`l*l!9$b%?8efMY zSV@Q4`ew^$Md1J!+!hs+9*wK^$0g*kUF02aWVew4oAO_EFAa=b@0YrhH1a95Z>>8P zWvaB{xm3pgx?n6_4*Q54QArb6x~gLA4C<5TfVi2FFi9@L5Sf52#F|JM=yf(`HEn;? zHV0v-4KClQDbe5N%{C?l1jL*X5>g?R3sGQ)*ZB6(2GIqJ%v;O3;GO-nQ7?NORG+sO zOA={YwtLwc^XOD8r~GLQ^`g~}Zq!0#naS#z0~8}5T8)XMN{Xe2Bags_3d zs03FOfxdFP4R5Th^^gA70YG5DktuQ1y@KEfdIVXkooOxqc`3cPhAgUv0E%@hq|4&J zEM|D9N;cN5_k9x{^7~}xMs;KoI0ip?r!F!vFG1i-$#rCMiJc#3AGNP@ulb8}ml~Zs zdhX|fW&ZumZW^0!Yzs2hq7Fve1#tDa{tI9uVY*}84#XaV%p3Q}PQ@9q0o=@Al!5+d z?6Uk0t#C$S1G?KsFz&NDYgIr>c-U-R)zga^D^voUX{Ba}lvKp#D8(1qT^O8mp zq4gWq-ntJlPu?NZIsNF`QwgYUlqo83>C`mPj=#o8DTKzMm{4i_#R2aSp&54i?@8!t zFtHMKrm7c+Eo|JmE&zfpUwG=+6(f{R{o4YQR{I=I?Bg6~C>l}7+YIT@rrdOUt+K`j z*+%OM+})O%nuCI68N*36Vw)mu^My<9l8G&ojj%*6b1r@JpCja9S}PyQoLn|0q+#zR z%WwvxQqf^Tus&%MbEb$9U*R{%e4+3P0N#~je!Xxj4-nbRVqVO>iB8Fk&a{6%O9n7& zEJyGSywvEdlsDlucEF^Rl4kN?(|w*yG*(Ksm@76t`FRNw5#}=DohXE*&d#i5el{)~ z4>AX1BofUoP*Jc1KMmyQ_TW7G?}*;`Mq}Qta+8K+&`27xX!ptp^v`h$Je~H+Xw!=^ zY(EH9tVNE~v|BiD`SHKqbQM9!BnWThnS*M*7nF(r4zB`>itb&%jSI_AQX z%H&+iztaS$lvV$`H*+?@?8jL-kF2IS4x_mtOZ2Mjo>ZszsKj?lg_Q~vPYR}=K{H^A z3ChpLfe%lvdw1%sG^unH*I&6H60f&_=JtxDcJ9e&Jt2;O{QWztgsc0Ho){+?l zz?iNo>cPkG&7{Iyxr**9$jWkDm!4ZkZ0RpAQ75t}NoP(!GlSg8S&HXR{ zx0C9p8qX;urbPZmOi*^7Q3BX~fA9}u?Sli_xZ!LVcs#d?1U7Pnzs|X#e=gOn*>dTa zB~O1iZEQyDztiiah=z})hn6eC-eROokeLQ_#m2;Nq22OQ6DzntmUS%74EN*$v+yl?g{gvKlJB(F>scf-iHj) zQcmY;&O8`gry8TJ6fRaMjV=xT+qo`qIn8k~-&cGQD-6yk!8eb-cul?p92oVJL(LZm z=NhrcH`Rt1oeFmeNW34O>5$=^Sq`Zg3|XT@-wPQUlIcb0l1wk>(g>bZnD5G-0$}VA zVGe_z;ktxydY{~go|TnFpmC>7^(wYziu*otF(+i`OsCh=Wk;${Jjhq6{E!WRm&&S;tl(X_6`bHhRsc)V4 zB&(1hsnJy_+PnqY$qwkr0s`TBp4~6ACP7zi((T zN-{qpm{_{LKw|18u^&1d%ioPSl%Oz+V7iz2P# zwQ}$Jbw*GeA3P^o?nyCv$a}df>63ks1144z{nw4Sd)DQkRvQX=XaAVKbJ(BU@Jic0 z5n^{ijul{G@88`dC1Z14RygvBMv)UiCr~y?HypZmDd7(zTNChoJ>-qsAH+i^e3P5` z7a}yjjRgAt@i~{*XXn*XRd$)J*C|Y7gG|Qw@WV*L05+I8JTP}RkH^8Vdtmr4O+7T# zE`1UyK1Td^+(Z(jZWnN+O%1@I|Hvv5_y_CWsfS5*5I)##>-`R@ZDc9EL&1>#?fAg8 z&|4(WB5%;~K>`2OR{&NniR^8+kP7bHHz6XEknKN>sPbrD`MrJ`ZLCbUtJOO_ zM3e$zfBn^61!17Mnw;;>18;l-Pa<|SnjzZA%H4O*#+x0wu|A*}Ek7ccVedoCQhK#p zw9Ut9oLg&Br6T{@JkCMkt*$j5&-7_^Im^Ev@dlpvEG~0?EuRjW_pg0O4g~2Bs3x~Z zb^DBLb{df_F!I47yDX+{L!4RrVBcgV2CPzTIK#@O@~io`t!Z8|?Yq}#=jD#YWc2)( zmiOXt+9@n=i}|tmgVUBo2?^?A*L9!)dPz*WbQX-giojNEGH2lwQk_Ufi_kp2Ot}H7 ziQ?a|6kv;G6f=>_K?+3H*rjW}-;A1@+^B()qP ziY7FMb4omG(cXj70*6;`^K-q;-ArbE5OyVrEl^J@Mll6MP*AzXEtUCvmP1&Ykp~Q9+rw3 z39Df)q8Gp|L^(;WxoaW0VudAU-T|Dd7#L`SYphc6OPFe<%3CEz`zU)Kx=~U#{>*(M z5%#eQm&P#BS*nUGD#^tnwAB~}v0(k$t@nrC@~D79W|#E8SXDGC*ouQ40H4VQT)tG)xM zli1VupY~bHl=5+YYl_hRoCOBFB;zj+HM>`sX6>)iWsxZv0%z?9L!_g_siLt7e-B4h z`+ECblAt3>#^$jom0n@H=L?Wnys!X3YT_UeZc-}^(Osvxd40I+V^)!0q1+|grVx%90);(K zzd1VOp;$G;E0#;)6ge#an@f#_`F9}K+UGBxHh@W|t=rEE5WsdLpz}sGS4sSRija>T z21V_^kRuO0H7LX^TH1v>JQ}w$VdQuPFvt*>EtMeM&c%^LAOjRZjaln)(iNt#Rdx zJH$r_Ti>u7Qz(fvooH-I8>L*Yx-lC5R<7R7Lt{gXz_ zTJujOH}Ge*RvQ8X^}gn7!bga`FBBa=ZzPvl-d=5grZ~2v&n**uA`;*b`uqHg%WO4x zK2KL*GiVb)BN4kXbY$pxYad@-iF4QxyR5$5znv&T7@KE(^P>fHTKo#gp#EX_zYXQZ zj!-O$A{xVJ?G!iojL_eAEiah8KIep?5($W;JwRbyuz)PqT`Rl}gf}CMHO$Q+G+dJj zY<`<2uk$e-RlqJvJ}x71U(o|!5>VxNp|`m^kK5<@VyHC@(hVU~xTfI;9%3;*_qk8J z|BWbu8OylhdOsQ&vb{A zg-`zr({~tiLzG^9w_D`RRgNSH2z9ut8%T9Ha&m=RvE9hVO262r$G@Mv7_JJdILF<) zkIt+30UZCZee1@_bYjzjteQ>1;GgUV+c!I0k3Z>{ec^bQYN8N$Y^Wc@)ioQqEgwT~rV}khF<5HhmcZO815lWj(<>CDEIZW#idDxN zQJ(o1W9(BR#W5?YB~jGYo#eM+b1uYPyF<{ijp{!$pirrbbOGkMMd&N)RYBt$VEbXX z^m?a_SJQnr$vf|r`p;_O%Md>It)%x}g0UBxLLS_>QQvLN_?^BH+=SNeR4Z1R{a>KrsQ9caV$60q9E?nL4_)7_)ooFI0ujKsx_fD3@ObA6YFJAF}kL0??HNPAYkv zj_;MSpd5wJy&~%K_q0nzV;AZ|w!7Cf!3_@;>bS)EuRy)G*R`-gjV|nQ9<0N1azz`g zAt?cP*6g)*I^94AgvE+}MYqpbw8D-#HNq|QwP5m}Ea6+Y!OPhd?;D`I;VaR%J{#pUKqX|5a4*WpX*Ge1CD~fU|W{LPB}?Mk`3>Cjlp5?evp}QN(%N0WBah z4#6|90>?`RB_m60^w7Z%p_!o*KTiU?O@sn48_d8)caKH%gW<<{Ad z`0Xjrs&B1LQ~AdZCOyCqQHM|z2iJnBJe29u)o~EqXW4i`H*W$kwL>IIVr$UEu3(<) ziVWdeRVwcU<;MoNmQAS&AGvz5;CuM`kf-Om=Dyv_^(6;*lrC!`-bZj9(q5|GLT?$x zwugKS4Z!3f`|mYO;`LHfA&E6ZN)CX63a)U##?u@63v$6Dy}V_Q?;vQt>4?Oh^`e6n z-WvU6SC9bTy)7@?ZNq3~uu>9$g&8h!vYKo7^_>~T4D-WdW9N=unCWGRak zmMu!Sy8++#SdWE#-ZV&`yQt^E7RS%XCaN>MBxrWy-@WgD<<*W%W{F5`CgfWN2?If& zUPqsjtKiDSK>s250^`HEv?Nl#8QHt)f*1ssoOhUtn>D6NkA1|0D76N8ODEP>NA5Op|=Yxx!Z?@j{tf_d`uo#Wp zeLN-wp6RK?!{m#dGTC?O?%cQTGMB`%*!yK4dA-V|>-m9p5rQuRf>B?$Z`Z~N_V}kP zcqOXjQu!Pe?Fkhr$e)n`&(aKnWzpk?mlM}ehoh+4atU&O)$f}W{aAP`jG6zqO*ZX5 ze9mNN&e0HWDMH9?$tx+=c)jW7_t%AbevWnQ<8yA~!OujWrm>~Mrq1G!>swkH+VOp5 zSqXfoHP11(m3YR)|7^V9A*CYrI@;X*l+cf@-8-AdPQ#gd>n}mSgR|5xEIx%rw`3PWJ0`LMs_%WWYabnzd5Q?sV3gqIHIrY#AhBEgTH9^jxT3mK*?}f zrn0Mn%m*)?9dXUt3y%I#u#-#hGk>>IRBn_WFP|NP1_Sm~j5KW%LcY`u!Fk$DWpIAY zd%(4(=fP!M39^|)Q*5)@h?;Np7dqy$|ACTt-B1e(grJjI$y^pWu0|4urejAh1o>?_AL6hvk);$>H-O;iTNYkf_~KmBQ5mGW|ty z@pH!{VilHflgFX7F7xuOFQrA5NyKd~z#j!V8lu#uKy;u{Z5i#NIBcR5yfghUhw+Xb z`|E1WnYu4>@Ogpl7wJtf{DuzV!q&EGu5a08Kf+@zbef;8_NIQTlQiGWP{)3mqCZWF z-b1I?ZVcMi+bVwCERT_zMzZks0e$jAH~HF{5h?kruiz^!NNN8)={3xPv@dRsw{I^gS1QALh=znEgAM_<;ah@Mz;HTQm>7)T zOuiv`u>SW9w`DO|@^unC?OD6r0q!dv)+-~;jjsr%p_KJ*RMQb?edxR@V+5!1tEh2TtNhfT26TUq~Q92^G;F2Ag?*XBhI3s)bB% zFm>skGo!Vb`n}b#$UyRxsS>5xC7IMvn#+G>#s>uBjO zQ!SY;^L5PT!AvoS=Af;;`k@+Bv+jsQqzvs`#&;ZIwsPE{ti68DrFxn=IO8uEo+YBH2OaZMt`u&ilS)0Xsk>FrrPfkz`h_79TI^eT$ut<&Bi&wYrC0)Ch5gPjWp2&d+!#vDLv?uhdUaMLDJBT}49NE7?xQ&pV~!ArRFU zQJ?hHaz}pZX^RHvM`?6kubkv4mY0`}Yx^6w^umO8c75x%IjzNug=x3=&2Tzs?2qTg zO7s5r4$rIb90d-AL;Q4=vDAc^LZ9w=-TuQWqfW!zjH91YmTjAjnRGYgUIXBy44!?9IfKj{E=wnUk z`umR2vtrnXcXZ9F%Glv#KmFjNGSkucqkdj?WJDtWcf+uzBhPpE3d`Yw&JasfnSO@c zcNe>l3rUl{dB#Y9!B+-X|H8FtZzGu#Sp^S2I4>%men4uTfyj(_CeR-&-EY4=3&jx zJ3{A=jxFqtt4>ZGtxx7Sq(idlXv0=JXZpJqH)VP={Zo+?l1U3Ai}3xEtJe$7{Uzi8 zvR9(D3^u_7!iksri%V%Jwc&JbmT9*~SPy-oYhE-{2ZK=wPiYTo+imXOpViO)6j$#@ z^7M&Z=^2UIm->>p>)ah%)(=Eo=2WW;9S;-apnN{Hy`w4}ZI6Z)g*&_n4S1K_E+Zni z5*bWB$Saij<__%Xs42k@pK`%0S$;T~@hT?(leZOfHsn6uF0MeAHZdQj7C4pv4s8gs z3Y@|rT|(t3yFfuw(d<$Q1f?4K6Mrs9CI_lE>BnbRNp|!F7e9DwXi2Phi{8!IxRG$* zp{v@CjB|5|heeGWo7TRM3&XB9iO{M8EuS@@6ed2JHObTYKJ`rpCf8io!Q0SGBI&l7 z5@7nw*^S!be|laQO37&7gof;&Kx0FUI&s^E-}~?0QKsLlZU7aQft&clw!5s~5%MS3 z>oZYwB8Q#PSJV^N_@8(Hhh6ma<2mlaemDmk8w^+b7uW<(THfv(l3u}NEzU^))};W9 z7Kf`)*lg75B>34sPeH7McOzaS09bR~;%AWHxiD{8Z}Rh*40*3K1TRopM56zev0~jY zS!n7269N{2&n&>ig6EtO!jF?zmQG&+%W%Vd{I|J_c8HU!GEel(eZJ#qEKQOp%-v1jp)xbs zswXU(v^L6`-zz%JAh2@zI~GI*ox?-Gm8V)jMaAor{h}Rcq6Ss2C^dXELfu15ljmmf zQD4f%g(#4`7QIU@emvjQZ0Z(ze{MRmpull!?O%>^_&kbsrhq(ST}AfKOclc>d;()x zLtr#9i9|;{S{LHGm&bc;OkRFG0+upBTUn>-=Cm%|;Og)8CH&_IhH~a{1TooTC-;ftq-N8c;a?hmF>=A z^G!{=HfNsLyCG9@N{ny*W(?q*mf3N50>*UX70vL@v87amvB(uvdy#Q0O>R_%k|AVM ztS%)364PZ|`kriJjc@t4Am()Ce7c+2W256&cBk@zJ)qH!lP!~gFd_*0Dhm3#hm*(z ztk`z7{zSi)rd^9|E0Xo{X5eL1Df%x3p(%>l1G6M)US(rFP#8aiS*KoqkGYR~gE^+@ zx}m`Ku>M4NSM$hWgL1oZIBtfBZ`>&>W|R-S`Z|`kAUhrNQcHrW32U8kmBGvFEp}yi zb@zOln<2I~$XG@=(M3HF#2Z9ELhE~#FjPnEO>KCPYM$4~snKmFCq8KU!86H{Cw;}*ely+8m0w|g(O{!zRdh|)e~ zWU9E-RMWu>p{UuAm~oC8hi~HPyd$VKROi^v=N||~$;}Nv;&DK{TiFo)3q7n+&5U-K zxiUtpk&Ni01bFEB{(#*R|1B|u_F6jp?jw;a6uKk?L7{}WNM7$BJ-5f3B~$yXYZ!(9 z`CfJVVEDeO<$IKV%f*+L&tL8P>V3-$A+JiqTSY&cHn`RuxIV2lauJFOWrf7X#Xj`< z$_RC=lTOJRE57CPFvoG-z3(uWmd6I%Kdg*;zXMInB)>|jU_N=LFNj$FGDDrte4O%_ z+tKxwOxucdHxx5P(EH~KLbK$)n|;ogLf~x>4_InNpZVz=oIXled9eX32A6*}D*s z4#tGJp7*B4SMP7D_mp3uv+cIc#CO-?_;Ic&AC2T+&RE>P()pq2WaMUbkwm=VPduV6 z&=6ka6Btn+Kwa2M*EWTsKQ4#!<$}Ue#AM`rTEMINJM){c+!V5P#96Uy?| zc?d}}5l(?ys?fpCgjW+)b-9`@Gqenym;=q)AG5fIhuzZ>=isb<#2Tl&(^cE9JrnUv zf+pR%eYt$1f3y*5`6%){BUE0Gm|SgqXQ?US>;@s{hKFo-u(WGt695DE&sPxsT_?D| z)VfqBO59M1c(5IN2rs9teEV1B(8^)W;=K5tMG1-^k31ESRR5)rcaokB*2!#-Q>Z zzMGatk(mW<+27?Cp@c~AMAS2jQ5)#gK9lPFZYN(>5ilUzWBKYrzC%kV>Rt6yBEBS3!b+wQI&EQMk9_`P z+LfPdt+GdYW7+R2R&=E(H%bK$N(d@{-?nG`NJ_lJlGK-n?OjcIp9q{!t^q2Ia|^R> z)|U|4C-_4=ZF{-e@t-HHcs*&~-VD35^q0XCB7|csSkN@$G;1;KJu+2|NF=8{EfUmM~+BN~V8!=AoX0j7TdN+}|k=M1Ihcouu5xQHS(_U-%+c+hzE`0&9w0gcv z*0(1a$t-H zumGj%jZ375FtIH4vsMo#y+yzLvsHnJk6~mgt}CTEuKg}}&4TNfNysqzc}j z_GA*^`@`QH4!G$JTkHg;K`^Ld^S|ssaMNs$wb({qhrPMWsa@tvg<&ZN8g?zq7u(RL zlr5;n7M~WI`-r?n{7O4&`p?__pL#Z;f|gPAw3z&o2%Ip}U3|;B<+n}(T9&-VuLvub zjWy*5_^JrgoaQ`VNRBj}DBM33?0W*L@)02)&@U?YimRmjs(V#EHRw(4z$VI6#o^7Q zYn;M?ckAuGrY6^0t^2l|gTWy96LM9e9))6y^RT+VF|6@3zgS(u_ubN-({A^*oKo$0 zFe@(Ud3G91VP&3|YjcP@FLh_T&D`}~!*XMtDo6p_|E9{mw?j^pCGwJBEAh` z!;kfI6SH-sB+s}gKxFr+$L3v5GP9xbMY)Xnd)`%gNv}?enhz_lv&zLU!#?gy&I=|Q z5+n2f>jFq7I#)0tQxTq~e~nNqG1Nqh$FY9sN654hco!!HLH zbTXNc_vXG%L6q_FGsl?{K%^y9BRK7^cO1*FHtewipM@g0k8Xlg4c>$-@EB3qld zvBz)pkeDSxw9Q;A053U}UiGgZWAr?7mJqI{F^P(pSSqXRao3K_OF|PJ`5%f_jFn=2 zgZ>8M=fKwrg4`7}{M@?q;|9AFEwCUptJYWCDX`SJzK3*X<<@eBqWB88Ahr&nq0Gnc z-P4A3^*)M9d@k-9kwEccN`XIW_F1*<&Tk1noKHGhhAp>W87mJV>azAT+iPnl;Bl)6 zri%R3s>AfIryBx4Ck!zf6nFuiQ$258*AZ`yuO9RVt*wk0H;7qMEI)ROeGdxvH%IDz z9ywY%9n-*d!uTrh3{_-KY{4LJ2Pn$r54Oyt&@kLv5bpeTdd;58c?+J2?MS<13y_0n z6d&dL^bd3W8N$U`J5PytM~hFHCI;16^1T)KE1)10ooXB6j;8ORrF(6+CPcd>0ob43 zHkT!0*l=ptO-(-HN*qka+dwmtq?t+0yrq@4(q5!2k3Ee(yS*gx+8O`4-~6Sbf; zF$3sF)#@~QDHEcRB6&#;8gwnb8gCTvqPn1;hOa+PiHA>*v+gbMo?QX-Q|n*!(8X(4 zeh+^nSK*7|zU{KE=)MT3vL|2A2?Mq&*|4BE{qxaPR0^^9UUOe$PUQ5Y!nE z)M`PN-1K;wkK#e-Y(2!3&3cz=NrbVoBl*U^NLG=e1Thyc8doNUH3!1`6l_jS(EiS+ zAF6>G8x@RbGaJm5?R=(-F66dG+^p$AI_AIX$S1nqC*w%%rh`}f=RNmsmM&T1*!qS} zXO*6AM)-LUD92H6{N)nui_jVQtGe{-uKtNYr}MwpMeCQ<{BzY8Twkr{yI<|K?wn~# zJm+(Jcc!EmF}%!GkufzXlw6scHvMwjBktPIYdz&(9)g53%Un{=mVsvEe67Gh;l0uJ zbTadAJFtV;87v3frpNDIyn}>+(Z!i5(uMQouO60sz3&$m8_Xc z-fdCa^+lqq3o@$xE7o8n&gz=JSmU(3zuZhpB;HIvWUHfdUz2lVpu0g`UhlS?^`FG> zMXd}}AmzmYmw3gzRF3>RS-oZ~FaDxMb=(Q2%4-iD>Jcc@t<{nt^PZ0su4i@4VMyCV zWTKOT5cW|u$8k%%dP;N2#nX$)6f4tmXMlY%rfnkr>a(k!mSE1|aTXpB)TTL9tf_~Y zZJSD_TkIp6tMMVa-SgwB=doI=-VOG!JXBP&EFdI~2yE@y+?Qv#3CnctJNBwGhiV_=53Mtde z!OU^96k{2ey7B=zu5(C*3Xx)!zzWLfB!!k#)>iddyY&W?xd|h1%RwgnbO>fc@AZy7 z1t{aA83C+XYT+Du62TWxw+uIV7OBN97y7|_;A6tc4i0}D`g`A7O%%g+58DyF7Ros{ zZJz&BMx#rE1NlF-pwK`2w*t?8&NsyYGekbqY^~Ab{+3TsNz>)$tMC+qSo$RPfVs5y z=Bl^K8LDhXLGKGGyY9Wav>rbe;FQ!IXN6pIzbWcYD<}t5^6qyy-4M*0BrZkyglw$2 zFTMBo>XLa*j2;T9gX9tw+CHg)!LU4q-)U zHja>(_sD^5XD>Mh8hGYYiNX!rp4|suS}nXobk&lhY_s(cUsZx5eRhE#SYL-#f#VlV z-a97V?d$t3xY&JG&*|A5(IcK?@IvN^|#-JLe^FpiUkAlEYePJuk1r z%P6(UHbYA-Q9G}K_a|oEUDBg7j;#ZcJanFpJhk!(v#JDVWKU)#qVeV1E3_c)vtQcg zQC`a?QWv2EgQfa4UDY4I%0uDwATXF0na=U3~27+BaI=yLg6l;z>!yb2d>VmCfu-;KxkQs9a0f z=hc1=dY|o@!{l0|#4mSWJCfIz>`CdacJ)~G!0WNgg+|zTj_`08`@OAgQRatS}Nwjg}`t^C@0<(}*5`S3k z{tr`U;TC1sb$bv62|*g9LAtwJx|^Xpq`QU^>6C7e?rw(envsz1Mqq%U`|w@wdC&R& zhi6~UzW4gAwQf#sv#axggw9{Ky!%#B-(@B(>?gsatNvjL3tn=c{-Ardrud8dc~g=fSR+g5LUHV7I8R|?3?lJYS!JcfD_K7hTc6l(&e0My z*riWIe4OBKGZpU7d;AQe3eU-(LTDRFgzVyxM6Z|bCiOS4^_^bDC$~r%K1&%z1HlFG zV9U=8bI(FOjp_F;%UU|SR_T4i;M=ExaC3|hpaP$*$%ha>dr>D=0bW_+LD>3Or+NAm z^4ev7&aIf>tocFx&x5#He@2@0`(Gg;4D$fv(P7rp`H5zjIYRjM6@E84*ym*rO(69X zOA@{^wk*1;=;g7BND9xdYc7Ke{h(FO0UphP9|gJ_3hO}Y(MJ@Obp>`jt?ZK&?F2=| zmK1sg553Em9e%bUoltQSGIUFm&SsMNn*GkBk#-#2$my(%59%##Aj$+vN6ClApNg|@ zn~INsuzBCKcK{ZVSg#=8_my)MTJ$`sl`}BHquEs0^~Kri-Rlc)HHl%5xNBlU(A0#= zWbnZAv!LhMB1sM!4MX<>e^OU$3q|E+1`9{c`c*6kcFlKuY4As0=JQW1+`|98VTT~l zY6m+#tL3!8g!3d&C(wh$MHryt2KwrD^M6U+3t~3UWURsWXjmy&YOACSI9~_P5R@)- z66G?B*czT}qwRk>$RU9QTpl0hpu0(P9_JkiRbE*x6;RB6)iYT5LG5yt+qv^w--%Vj z6n_$YU8aFuHDrBym0PW^2CEM+Q_9}ut4LxIV%4rS!siXVnyo)Q-WdIX?}~n73jwjA z7xXSts87#etprPOd#&47Ik@qq*06Rzm$MFj3cOrD>^y@{mIoJx;kUb!ADd9$Emkzc zE(^2C_A98QP*C9DFYZEwUe<$k6+Cxxvw3|z0HFQ1M( zd)%qAhGO>#mu!d9q5+uG+JSPahUi{La5}b}{l~Wl`_|a(WD19JSzrtL_gM+orkK*S znd9)d9mO!dl?30!h(T0HLoQ-3QWwc&hi<=mI5Jc5#`AgU&TQb5&c*bGpFVI;m~02_ zP8^X~HC?cNp0k*2R&({@1!F|S6J$Kleo@Bb9z-9F?kvc*L_+}gz3<1~Neok7TxTgs zx?_e1QZ=Paff>ON5Sn<;ev9MfuAm!dTgXHJ;}z$lkj)k z-DK2icrXJrr8z*D;+=?8yn@cmfQ#0~UPlEwrOwlk7cg7BYg(qz(Ud3Yc9<&xGavkU~?s#db6C_MUdU z@j5a|C<;g`-dj5W%!lYsUmE+sj;6NNO9&kv>Bce=PNm6m@=NUgbL7q>_Lg@c?=+x| zDoDKnuft69N_rvkYki}-g8o1)*N`H@!iS7_kxKs$hR}IOna&42%Wz>)9g|6VNN>6* zrzXjl-nD5xYSW`-E&CU&djH3DUGJIYw%yX&t*29Xfqq?Mx6Jx7g#+$|6v1Xf)PK); z_hvB-m-pM2j0IDT?ZN9^4t_%J6Nbe}H6D4NCc&LgGi|r~`a9h!uh{Nva6wWp236+I z_TKvsVjW=i=%;Aiw6##nfa5ic!G+hYor`L(XaAE&=xMuSM+nLBo>Yxb&EhUnD;+^G z^g7G~;BjvnpP`TL{METU#Jhot%rpM0I4SOMh7nu z90YyR=oV5$P7ayxh;p4wV|30+1!#MdF$Fq!dQ1?Brz572yv}^GwRYC-8w|2&B*(Ut z!uz;yta!0YRas|HWh3mW+Wymv*YInwiJ>gOup^Y=j z4Fylxgs*n~Owu*HGURTN9{U_v*`0o1-;QMT%UoxrDY;brH3>UnMvEDZPcXv_r?7i-() z+*jwjFObaaa(`?zq>;k)w5@Z5(YYw_{7TvAbWbV!Qk%h45LbI=-cHT4HMK(5+Tf|L z4O4$&tH`*iCBqERP&D? z>!Xv1j)~LeSc~`<*sXi4jF%AJ>%!T~W83-6#QN&|lG~Kxs?w`UZ*b&dTS!27$j*`u zmJ~I%rCMuB%#AwtPrW$$VQFBbl!a6cKkL-s{~GHG=gm9Pn^&s}-O|W+wUr_STK9YA z>i&8k?=I8`%d7(M=#oxlb&M$m<1(mrNH|$Y)CJ3jI1B{t?kPC)_?ktg<^EzVM}P4D zX}&HbU=OKzuD2MFa{*TxVPZc&y6u!}Vg%#ok*F?2dp08a+iyVcprt*Z838NH?e@qY zyasn}g$cqJHA}ku@SZPz>3a0}use-md1m*-p|^Kt-VV+h0WBSw_R`#ukI&MWS;r>~ zje97%AHZHC7$P?rha(ItKhzJUJ!&ZCBr zYg(oP1&&qu7t~nu4VxPrJM4X}CFH#3gR{&$@(FI3j7j6!o?S0&iMF>Fp3&N*)gxs- z*GU292d*F+>r zr$Ga0bZW>|E!+2L?D}S}%F5PT$_?e!VafF?s&g8dI4>&-Eba;4r-3A22Gcxgk+qCA zCmst)N7ac3BWWk(I?q>IKf}! zH4#J+p1)mXC+*Le7b$c6r_UYH)q=PYA2TK6Aij?Yy-BnksK z5Ai1+7wl))V?wD+<9;t{3yl*^g?xVbp(RFM!4s@<{9Rz#oCZ^tYi#2v2xNDBVxzZ- z+L}9;lFF}%sFK4^p~JX7F|ViXeKjw7Z||q9BSQmn{-$ZW=fmJEg3uwLk7#A2m>bNP zRN<*Q&d{dtfv|or z&2{}a%1jOTNk%ktSMX6s-(5lP2rJpn5>tY(wpq1WA|QhJf|c~4!=3FiK0s#p<^_!c};`ZYG^|AT! z{lTEzK_1bq$Q@gjDv4EB(>UBXM&~!t)2NB*V^FJG>+w8e_5>E!-oL}BMR z9!+^~YgVZyK8*?zh%2IdxB29bOdjv%$;a5Xmy^oNc#^BJoqTO70M_mKOqz9_EoCVW z$P3fPT@?bGmwZ$m_usd2$cbxiWum7Dq(q*4l3)##GalApx^LVGPL|G?U+a^0%F1;S zk73Js8qGy;xvC#=`&8%SZU!f=#S?{g+`h(lo{Y*nVrYEF(NylaV8B~NZ~tKw?$<_+ zBIY`zfyEaD7lPw|C&j4d`FTn+_KYdpnwK+%1D)yo`Idf%(+;CCmUP+NEW-CAn=_y! zWsG4$vjmcHq({#o*r&>!{)HaWy-NWe3u3Fy-@Ho6}!l(%6acrj< zGlSELmXyB4!^`{=`-2apzC{oojEZbM<5rC2xa+YcIJESlzk;Tb_)ems8 z+8kXh(lB_tZxN#gxt~ZI@=QJl?#oRGXnWKAyOlS!gMC}42@J~UcNN{H@y>yEQPg&^ zSCgv15J=k$#Kt4EaejPN+~Mbpd+#$j96zOW(y%79G=U@F1TadBsa`I5YMP=RaEL<0 zg(JN;7IkaU*wMgKp=$`sBg~<*lAe3{Cg1Dl(b)9P_#B(k06xKHNe)BJ1Av}OV)Ezv z>A2Q~&KdByKd@p>rgtPTs+}fR=1e_x#F4zX#VqAJJn}Vh z5gqjq#Iuv#*z4=$YF|JI13exSoQ;u;WN!CzSmVh@UumIuC6MK5w|NOYJXBrJZcby< z7Z+{0MuibQoFolC2#`A!O3!mPVLOZGl-qO;@Z1Wl|IVPo+$k?XaI9rvAzaB2(N%%b zEasvc!m$#}@ekAAk8EXl*{fu3KyomP&$Uk6fC2y9KdO0+ks5lua za;&XSIWv}>4plX_mt3t!fn zsi3|a;oHOUKn87=t+LLc=nAEGW0H?o1Oh1!4z~_tQ?PMzopRkNPe2yRm+RavZ_}1y z`51a4+|xsw*uBzh97*>Zp~7{~I%`O`Zk?4+_C-ZnwsN zjaLK>G8^z6?}<1UJc zG#u{42RuACltCvO2S|PLS#Wq)bdUbkAW~TBmkYpzhj`nngsS=7WXPKPe}?!?>r$ac zx8dM7jf*pBwTqwixi#NP>xMmI&g79u&!VL&^jmgpS~PIxqST(#nRu2dsYp>@ZtK)* z+<(y0dk?sB^yZQ2^g(wO-do@}Z4;DgciNN{iY~u0e$9G~laLJmQpqwFxe}kF4Q^R- zGq*TcZ^I9*DXrv199c?^gRLnA(9a)9>RQFy`%RKM+FLpN6RK*=yF2cQrMg|ipwtvf z!K-SYNxV)%O3ritDv72+mqVJ;;LcFNMgy>tS@*R@T2by2pJ6OD=KG$rXjK9T=g|MX zjqe@3*X4dFjIOX}wBA&F-IWOs*H52HY$JYT*=xG@Ps@c@rob{>OkL}X1`hRjz*J4w6 zOqs*g6W8(|R}pY`FNe?`EB$78lR=zS*1f}TVRP=tI~!cz(W&poX2*RWcPTDBd|8yp zjTQEh=DD()iOEuoJUwN$pk^T*K8mJBO|F1R(|`U*2%>sydr2B=v~@A)>?uzlwXY?s zPRTZUL~l0EWAA9RQ;cpz4y`W*vx2xPu3FicU*YCg%prWdzP;R%BB7RYx`d;3rPH?ity6Xj0Rj3r{Jx7X0`=kRPj!(79|VlmEWlx6u4+do^EYHG=F z$lw0OG&Bkm82_?Kyua*;Qh55qwuWAEtohIEivgFIpgi%za~>k|m6~R^B%C~7o;4D@ z<}P8nt$8_kciPD7~mzy(In zoS3^0hx*f@*AM20E|GCvssComt`MK)YxMkVV*tynH2+EXWX3q@) zFumGX-VFa#pmiOKo+m--3sL=Zn2g*Cf!#;fia!VEQMO$cJpJ8odOmGLO-DGe~~#N8M%)CjleK z&@AZx>eEW-LRx&z62_B?y_!@E8>ro+*S7^g_Xsg@X2V|%mCeFGeFqogr0+LzLOD}( z%oJ6Q9X%POP>OO8A4^x&>sx2#K!$RH3yu5_^vrjkVtV0cr4P30h&0-zpOX)Sc}btP z@sED8QvKo>OVgO3&Qx|I>XbO^etc<)+uwxC!LGJcP}akKRPCp^Ig9&XorgcMkc+eM zyc8I{MIyMUwjNv6p+HNJ&97=&T;W@ig3+-TJYOAIua10dRFwrcOF?Sh(Z<#6mYu03 zORB`lIWYV;M_Arwj;j=FAg?OShXl2bQ{~$dpQ>*ZR>|K%LO9R4=iOG0(?_PbSM^9? z1jenjcYFPD*?06Rs9gamS0J~G+~VTvrEe}A2>B%|=_ujXI!iW|%jYNeRXbJ>KCfGa zF7_MncazG{dE}q-!D93wPf3buxnBDv>7m!YSkd1Y)=#bsHX}&TiSo^iT|(zWc6lNKpM*RuxKdkXr4Pps^9`<) z>Pq4MXErGSzaxBXCuIlnIiSqhOelTO+V(%Vdfr^W>(4cGng0NZX|L2C`NfPe3`S}l z=1()k@~SJcuE?7@CYTeH_6yuB$;x0B?@q?xV;*ikW627V(+H6`QHCwL zP-PX?N8vx#nW%@w*pu;-S8}|gJ<_mYSI)RZb<;tHqi(;WZ+s&naiirEbWc>_Gs~X7 zL@b{$cT^Zxtg3X;(wiT<=?M3l3)!R3tk%$H{rh03^o3R(@~BiMQ~2$x`3h-N;3L_q z;c6hn|E%M+rqfy_4(&xMw%RAqm3ULwzwJ!cxF#5KhKn`Ur_q29)_FS6-qo{6buG7G zF$tDn@fg@Vz1*dLIhRicFcbhaI2Sc84AoGk$fU&ZJkbEBun1n@MeLACK+v-s0T7ABzlJ+21G*B^hAk+zUA$1>46O5^ z4*BPw$r=Q(TgMe@DzdE!BPqZs{HapW(%xsv;Xy)39DzeV$PZV*j*`k+`aFhUQtl-< z@6L;qd{c;&5f+fVbFaxZx9Qxk8xv8oYJ)1}xMy3sdlJFI6z70uk3*1#lCIRw30LTv zx<_?fl`4y+q}3h#&zcl;pTvVQ8CUfYm5@@Je|ezk2)uYTo;Fx4`uf(16J;%fuaWkM zBwY~S*c)#qC+ca>6$Wq<5#qy=3>k2VN&1MWv=Yb_cfNCYt2GEJ_M5>S% zpggJ98YO@>vfHbMh}6c})zR!_MBIHLcrl6)KPbebLS#)I871BTN#tZeIbFh(#B5x@ z2YJ&53Z_0*@t7PZ>&n zfZy0NgOM0-1%~23jjIvMbpTr?QNTYtG&0;jrlSMW>*2to8qM*8;*@OO@ot1XcGR<9 z#k{eDZV7tY?X$fvxOGNWXO}E62;&=Z`j>D!I#xSKKRs-=vRqijp3klm)47{em{W{E zuHy#{jqhF2T;zihe2~cei5Y#It{Sx0gt3V4Ty2MToqbyQCJMqxpH%R{TI!z^xQgttDTd;&Sx`Z8 z>X`@*cLU{joI4D1yt`Jz>PCBVcMODqJUNK{lq)}J`wl@U7K>RQFAGYWkawPIV%dls zO}xopu1Eq2QMH*~-6&PcT*ND0UiZV|V{@C_MrtT$5eN1-x#=;iw9C&|%V5eiRG+N< z(kTiPwa;Rbe(x9mm*d=|?+wO&{AF(|72^NH?ur0bsp0z>s5|o|n~dNAuAeLMe)rEb ziOPrUI2Jni39zK{CtBu(s-&T#P3mGGq{*UVcqz8~XU-D;-*lZ0iYvphc?jVyK4>@8 zWx#JeIx)%v4VCSST%XLkCLJ=MMW)?b`Kl^KL2bK}eBue zRG#bp_#rf#mdN72OqE*eIKE3SN@%2OVI3tTKx(6k#)0FyFZ7*1@mqE$c*;3!Xja4v z@I@iwL$vRX2F(TKMwp+GozQ%eX={3Mz8I3KBZhO7Z?cLNfBBP~u)THAX%!*f@VB%o zzL=;!xe>6{;zt%oBHG3}d;^7iqP;XsxJvWPJ+#kCWfH;k{jCllTM=~V2YkvFP7iUZ zX6hm|GwHn@Ziuxr+gxYv9T3EURax)XexD$aZAk)RG!M@jyK7xFPVex|9+Nmvevu8_ zL!(9hGdGm4D7v@6vhl081rXN&&$fZ@>&%}|GyMb{@pMU}ojt6!bm=a1Ap1eIlpvF0 z#LkD*?d@3ktnwxD%^h_Br(ZL7M!ll7RRXBcp5FA5C%XUpbn90%;k|coIn*_1g@rFE z^+K2wNnOL0`!2D%U_8CGVk%uGb1-uc=lq-9B9L1c@gL#4RC-dc64Ak`JY0p;k-%rC zSMGp&52uI1>EACK6y-;`Uy({^Mp##;Ug(!*670ibK{>}MX+l&iuk8yX?W}F@q`GNuNJOxZFm5?LI(1Jc?P!%~f$ayeA9rLS zevy@e?#*Ty#=f(hRB1&YUI@iUdb{A+Foz+a2TOagu^W3%mxSfY&VYETT z%i2|e#W)SUtP^;~^V#S>wVjWhN(bByiLT@W3(^0eDrAF&2IG!lhR5bJh7=2V4bs7R zp&w@H_sywvt9pgKj<%clR%}p=lhcIuY0OMqwL|zA+P~&m81~Oy$#?Qk#a~L3+QviY z`Cg}-A|^Iq!|5jY55X^e*(|J8B!|*OwDBZ`1$n8qW2e1de}b>+SWD+1R;sqb){U(H za)>rwCwaFS&wx(Ad#80W-oQQIII3*2<2)a=CXP;XEdD0X-|x|{Mwl1;nHGd^IfjUo zC5RjlVMV|M+ePJ2Wq~b!hPpr54hs)D9_mso0hFUc%2{p?&vGg~pI_J;C3N9rnLSi6 z@GUELj1Xn2So@N(16I)5G}lvF`Q)=?NUb0sqw@uhgWTeb(b_Fq-OC0w=;XIwoBwW1 z*LjRM_v>HejQ48c6f$rz|L!DO;_1$(H-58xeF+gVKgTS7jIkCKHabVGjZZSZd$QTN z&pJH5{O~^3^|P7lRj{9SO^3DVxEN_<_X8Dqpb&*ga`~yu4Qa$*B3>&hIU{OAKw%!)Oh~K<3f6 zxky}~VFc$)2frFs<42>3TEsFJ>WUwbvZoZ2;7O2{1hs~moPMfO{!i3?AWI^&BA>9W zD%t^jU~=~2f5Bx%{0z-|O$!|1yvXuE)~eY*9dQo2edzZ`V~FE?WJOxXflHk5GJdeO z(q?J?92Eltu&h`yI?+3s5S|zSs@&0$c{feYq^=_j?&TDz^pa`?D6nOLer|kGR z<|0J1_mJcGKqt@b^h#6kT|kzrj>pJH)vuGPUOY;*g2~FoG^zp@TF5@w@IEt{O10}G z5JO|ne{bKrTrPc$GVVe_36FF@j=ZG$@JK_-S}y))8f^a)h&5} z>g4@N@WK3E#24|1PFdiypn75gg z?+jjN(m4(-L9P0@HQStX?N<+HX^qdC(!rocc-Z41gynl z&VWMQ*HDaaDoC92K_p&Yen+9Njzu!?p?SC})u|B4CBv>79e8?=Aq))ZdXZWI56LFC zm^`9WHN7DOMs;V4oWU%ian4qLjsCA0D<4%Cdl7+=py`swz2v z*d7wK2SU~mSeD8j7#q$tsIi=X_AcMSDRpVso&fhtj^=SgPAP3jq+KFbgmrQ-8x8RBlY{PH!Fk+jYjBnJ35_&i=4A$Yx3=*sT^mg0=e(2@|3;P z5O{z^bP>A3RgaF|xoh2jMq_#5$ktV8u!#u~Qo$}eDmzLIvbAYUwuWole_Ln!X#ELU zne&|+M}O~5r5`CY1W2>(nLpYdkZh74!Sj@7uW$*6WPMRr9B)qM@K^f7 z&;{(b`4vga?pzK-pwey0nyjg9Q`f`&T=QMBC9ex4Y3y@dxx?J^V&}9saPOI4F|6Ci z>m-_qP|dvZs0%KM5j2nwQSiZ|;D#wGYugbRXNqr0D5+FWg1zC~ zL$4)(dY1a4ELfo@KGoIcU?Tyv}#kIVWsXqer+9$H@-blm%#`UkT9G~0%CBHldUmk z%^EU2wCI&U1%9{e?Hn_l4{s<*a6v^Gw~srNxBS^=de@YY@tH(-Yr^q(zFPOOx@C1V z+7jEie@5?6>FtmBbzS&9&7BV#F;@Xx=7@OyujlX`zqcUg?wh!tXqlepE*n#xZ>;l6 zxl2`jGVK%aA2W*t?|J_rvkGLSiiGEErWKGw`UN`nz)0JiZ)j-SF_}n=r5D>W9#hHV zzYfo+v)oX#R)TfclT}QC?{ujeXy=MP+3Qa!?66U)3#B;vLxz?cbs;>3gQu1zjtRjaB}g~9(H)UfWHW2qkAs9AxOfVs>^G?G zz(Fj8$!VOD&DY1&m-SM!UG&CK71b(%U=(0tlDrX&a>w5nm1P2aTgrD2AjECg%at!f zTePV7Jd{#^3hYb0P+e;3T@dnhy}igb)zrh}$7y)d5eYk=wD8B(e352!v)mZiTo-)( zS8Fc1QH-mQ24lG-Vari77~xOksOV6U#G{*7*n8whQ2C|`BhnwRLS#V(1gE)54fDpg z+>W-$Z1cXX^+Yln-!~XL*d9OeA=9?is%t#sbhkDIw#P4d=YF3tqCe;0_X#xEDf)ebUf9QJVQ5aANaS5j}e`-mDU}GjMTFhFVnU8o$I{qJdLA(B=+#dxgGTI-hLXSjKbj{s-lCa| z??G)RnL4}BX&Ll(AG|hIs20um2?7(NZuhV%ozNMG7+$BlyMiXv+A@1ED*5Vd-UA4A zKPw-1Xpe1|MTVfyC-5;B&u|5t*WcY6zubHC3+9paVQqi`+Z+H85(YG4+z8}?zCKL3?6ULVZb!5_Izz0wE?3u=>Vuk3 z74Yhm^SF;sv6<^1w@zJVX?qBaegB8=eQPI?uJ3P|G{#|`8zTJNexwV%=*2?dZTPXi zTRNWCgo%!bsE1!0HBI8TEgeTk%s+U9%tUSDGW=67fBv9KLkoYGJy@cq>6n2hF}4?% zJG~E2U@m&T%F21rW5#x&b|zS1aYj4lD!pg*5^j)R|DDK6&2AxADYkG=W-jFfj_0^I z!Hy=MyCs55!(BGEaz+F>a;w%~cbp7vXKQyk#=R9s`2e~4XB!`71rZal^ykv?vSyX0 zKWF=HBF2^s0V!l){(SCnjxYp!`K6J~rF+)4uep!MJp^mV^MiN6T|&1YGGK1QIu5y> z;}9WTTa_IwtQbe;7OJ3RISr%MToq499I^)>l`FKX3>_WhVN>l;Q5$SI=CdwdW_nQm z-u$d`vGBwyHoxJSvdSceh2~)C+#8(Uuv#3Z^72{MC!uz-BwbECRTl*Te5;1%NV;Fd zbwt0Y}N70tGBJcP$L=kK_Qj z2{X#y^CyRNf^=Mbv(o;*jR*}%*`0QLU=U`mE>OS6n7H91LRoTD8+cT%n?^?E!8Pz+ zTFt(RC2Aygs-aOX+?ekgUofqtJx*hf+2spZ8F)lM%~OTB7ytPPd19?eh!TzQjJTwg zMdY$+(eJqxfPL&MA^2A}tC4NI^pf4~V*7BHuT)$>0YG3ZUR`JFqL?_P@y{BGuYJ=n zvu@L))(8{gyA)mEH@3<*2tH0y%x?-Yv?&^QKbaMfA;rykDMTRl7y>U6yHKMuvIIb1dq8Q6WRLr4JY^FH=f?$oVUo}R|<6K1~Mxkq&qJyV4gRVmXrCYrM12p)%;eZOE&_CS(hx+FLl$#aD+)j#`r z4G#7?=W;s|wqFKnO&8z*x-U{EdOTJgnUd; zhJeIAC!mXx#p|^iA>S%wbv#|KEJIeo9PM&^!_xPA~z03EgpdT1=*ai`z_ly zR{75PEj%da5x(pWg?5Wxy{mb|ciil(1mBZZ2_}NnR;Dxa&8#JDQ0p9UJE@N{+V|sI z9w#SVy=EAlFyEzBwwF+9mQUps%1`~^YxElPQ8$+l`pE@9WXF>i2xNqy>u>gF*VV1) zz|&Zlk?U;q^LtkI$6)b9{!1~l=UoKcwnW!Uef8`H$I2w-X#Hch+hJ8h#gnshLU03c?=T_qENIAF80 zs_Ab=`|br=$&Q!RH;#^NADU7V+0DS0)uD@LqHesvm(o|}mw~g_M*@?`SX$jSwF-bj z3$QZzM+A-x)$}4m6%$e9r=EOnnqU`1kL#}C1-MEDX0}thd>KMEXbv~+%l2s?VQt{w z=7qO@zdM_48>1I~^ceITj1vJ*d*{9W_F2Dgc=rP~fTzOMm^(_|pzrrMci3wxPimUH zJO3A3d@bY`i$DJ+(9wU51iHY?fbv<4xbN$f!fQ+`F2*O37?kp?2$nHVT2+cl+nN^B zZK=bTxnOA{S1(vDOfOBS+I}V#@>JFMmH)mv$PwC{yE9wRBCC#MdctRklp}t0K`CU&1x!vzkO_T$y`)<$b~0#lCFi)`Vl7+sOp?$dJGw zKcgx#{BWAx+2WF)*`j{~M^0hOe9IL2FluLxg3(4x!Ua!Rji0g$ZT(W8&ll6U@;sVL zqC49w|N=$4$iYKi3yNW-rxe=D+}cx(#3P@<8l(H2^$AJ8evz zaoiq(ZyijMOZe~>OE7*Cp}C3L(bmC8w$Xdz>KHH?(=-6S)XS$I=8|>J)@ve;&SV zj4YP-cmbRxF03|(2-2Uqq(-3ijZjzWu;&kmA)j$?&;xQ$<3Sqc1NGZ6vxUXc8N6r= za&BNtd4a()Aj4z|?Y+tqK`Eg{d8pwB9-p+oawthioAzkLTHbCnGEy(@Bo%tP)GG;l zN;-@eWMnLAP0inN$_g5N-mJVP{V@>9(|{d@9nX$#{|U08GPw*Yb}HKLmcuh>&YIkn zWW|Q4O_pqbjW>LwLYJ?Pcf4K?Z;ihg8kQ2L{U*GlK#z$*3p^!g3_iieIUqs-gH60! zQV6%c$PMcR>*Z1x9-RMg!xQ{f%&9AK{GL%K&bx(dL*g9Y5vE^6X`MKF?Z@<*o%-wzWYa2yKh%b74beJFxmD* zp)SFL#W>E@?=!W7wqAaNjiAJ)E-2eU|o#SfxmP1ng zeRFL@tm5r@YoHfeW3+D;ipRSP!c^M*Unoxund;Peh>Ly8KTh4VXik-lOSg|`*)P5Z z&Zs2j1meCw9LvKq4s?eVTK>44^)tH+wI0a|eE8S4znmtmqN8&nTE|>!VZAgXR$AB6 zEslaB&6ou|jlEaI4BQahAnm!^Ul=y-KJ|Bb{dtF_)LckWT`r_; zy1R)MW#DFCiW|MN?jUG3MNd><2R$L!s?yIOXC-cv`=Xktm8c1-ZYkHpD-|Ll89HXO z8-}!Pf)-s?a;m0B{!MP8{={d8s0yiz%fFx5-GSdoDMvS2MqE|;-dCZONP=C(YhPSQ zkHPVyO-Q=#vn)TIzde)naB{SFq7$0ppA63+azWkitp#GXc|Z4EZgidN;3;HQK=n?gjafH5cHrZ|LqBIg$>!-=S@G4oOi ze4@EL!)URG4Zn8MmwV1Ga_TKkzaM&$a5rI9$DIYG*q7O+F64A|DK3TOsoVQwZUoogG*Ma<|@~YE-vaSj7C8Yk`Xl z$5Cl=36wu)m$Y^_4enOxA#$uw)yC1aug~G;n^3_*4^jjHaM))77da%4qEp|8ASq>z zMfYSv-e~W@Cf|Y}Kg07?rF-D{!DB_}C#;2>0C_Y)q9H=5&j>^JP=@)1sITW4BLY!9 zxB|4jX{D4A6StqeUT42M>Ax?TM66@^I;wMQ4T1!F(57vvd#PC{hQ(row$LK1_t%(| zd2KpgG11Q(l-0Oly?-gA8A_V+1=>-l&tf&`q)MuJRKG1P3En=mKCkB)HXg-j+}I23 z#CY4RXe;+r(MbPM)Ue1nzH?RY#&NuFuJb45$W}|4R1%Hre`o&klQ+b|QdecK*5-QY zY|}lgdZl&v()eY@`xztPd<_G%LsA)BAx*_8bIB2curn}ldv#5+=fnE0Y9ps53>Zfw zk@-t*e&Hg8H-!E$S>Y0p(^pf{`XBMto56YWXLtJ1ptTc^;E!vhBB*mRt1N7^Z2SDM zw)@(n>Nci<3Mxv7WqoZr-q;_i<|eBnkjD^^q-g2sZ%5ndD-%5)`SGxcCifjJ3+~VC zxVVOGM0+Tx`)V%9Os1Mi4ZCyEJbP$0tk|2BXz>#UTJeVlDaHoNLi`L!2q*Kt8p!QE8qobuftM~4((erp6?T-L`u z2HAh%dxFZtgW{ywIRW2EFYB;w6GuM12=!MXMQ?yUxS3HCRpbm{1uNvW^Yi5OL>9y8 z;_)B*pJ6f$&wWTqoVhor5z9TO#1XHCRoY4R5#%fDyDU~{--n6cR*TsGaEl2d zUredHLEjy+_L@VJ`}Pu0m(A?2;Ky;pgG6cM`P&Mex2x1&5NZ54b)5DUO% z8EaJ+Ur1sc!CamM4Mi7(T<(uxVC*kH(GyfR(1G=S%UO*+oYa4zG$Gnc6`ZTQQ%yjS z8Fw)=`)V!R)^4ycZdt$EG*$mHIcqKgt21K3QJq%ba@(ZDW!UzO&~JFF6#({SWOycU zFLiERRn%;H4`fbDmX!D2*!oRTi1C3agpvKgH*eS=N z<;kYjnn#nQv#M5+$^~sAknz;^bScX$f*OCP>XY%nuvdIGNF+|UJKXScDM&?u^;{%= zn-N5r9re}J$2?N%^H?j>nsdkG&v-#(k9!Z==Ah)JNwqy}mLW6YtIYHsc_ZAK_nd+~ zyUbq9X<%)Fn;6eKsLx+ZLd7+sA}YH?*`eypGkBs91R0IDSo&FRmz~o6;l8XMT;|5b zmEIfV^>R7XLg#E9BwiZ>_QeH=nyX!5QXyfu*BNc7IR3IBi=?Tc|3QJ&hKXA#9pKUK)v}BCIrdmR|rbi3O zZWC2IVSfSn?dW{oxp=8y^FXf%i==~W(ag1GW9he>o{y$r6oI#^mY&-KCV^~GfkoLz zC}iePJ5K?&$~PZ67}K5H8uW=fUeq@B%}_Rj60CPEd$@xC6MCsc2&_W@@hvu@PoQ^W zJ*ST$+dS{9cx$7-qpKbZM0o$Z*G}9b;2HKf?oFZ1dx54oj*gM+PYAj3sq*#X=ti_c zy?C2NYi{7_znJIK=szicc8O8l6;BuMu|8j2W^s1fZE>Qog@tOzo{ZJwBwf3IVq8Qr zrvGt(oTUL&?LJHMqqy9Y3AWV-axt2xJ`;0xtu=X5i{_KPHem%tgtr-T1kye$VpDq) zP8*U8pt~X=eqR+EmW=!|`F&>y{Vb|I2^&KgkxQZ1z&%y34ja;NmS1yI%JO*$0UrEy zuCqRv)A&L7Z~)}AhqBu32E{PM@@E!|{RmY3L7D&S1boU~R(lT29~Ol$OjCw@tM%gV z^3#j#b-R@wmUc5gy6eYw-*UaFC#cz59W+&96MMNz;Hmk^+kY0KWXG~gQ`ywP1=Gww z{!jYVXeA`k2w-{`Z$_i6i40<32!Vpd*_K9j92K^J3dWl1f|A?xQaf|I>OSiEG^Agv zk`3u`evQ+wVZ$nAg!S6jg|WdHMX7vZF_Zq&hu@6^IEu0J33Y$X2|Fl*Pf(&sPDs2b zE#Ak;hkCA+@n_KN9TS}H71Yv6)wg%a@>)!%*|);9MXK9-BUSrw;FSMU{xQmY3e`Rr zGKk2(_^@_;^VGfx?X+h(?IWJmPxYm|slH;i`V4(Ik4>p7KT4Z?@v8bwYK$#v9(BHo z2fOo0R?_i^VjtlzRa9fKT)-LEn#gpMm>Wo;*$w8A&cgf{rCeyWsl&;2CIQ31@+WVg z#GH@Kb}!1K!6dWp;wIHAyaO{1L}!!ISOKyf#L2;a&M>Nf1AGkMIiky8=;^x%UsLY> zQJIUTORxL^IoDgQkt11pv3t!8i{X5LXACm}HvwGL;9(gf)lE@8n9tow`quc&TJUk9 z$-?>vY-c&Y_31!;=usi-apR6*^%i6%tid>Kzgw20{)UWh;qO`^`nc|n)XSVHjB9c8 zZ#eySMZq3H%sL5=N3wJpXzJ4FJZvCPDomQWxzZq|okH{$G=Cy+k^u8=LVLeoVh=X{ zqFztyChbKAW)|h5VS?;-kYu_`hNM;dCaPDX$q1IN2JTVFqbedj^Y1|aADCxA|7XTZ zKj1-1kFvu{efgu5d7Q{D{)hWzswU~5;k2xMV+;q2*O;xB>a91fOV7vG&B@^m#9ijV zTHAnsg4zoTt&xq}Opa80zZ~37(FZM*k~PGnWhozJnEoCYzh9{zG4$el!~0mj{6jU$6y)5&>-2LW7f zE5cHdn-Ky&jKZmdk?#kOM3I;etkV%BljWg8cz&x877v`l{6t(%vi;hflF-fwFIMM+ z<(y12tmz`PCYo>z9&&;mmxN$F{Pyw_pJ|vQzs;G1mK2~L_<5i*L`wjGdDDJsgDa%CEBFN8o>~u|`8l-A zk6f}OwR~Brk&ULJ#l9a6_w&Sldr8Ry%jv!@TJ~BzcDSa@-1|E(53`_hw)e#2itDP? zGoBU*7TmJkNIx-XN&nOQcR{6-+@I_Qc9_tYUFF^h=d=A46M@Wf(_4S)f2l%ATS7$Zf2X78ReIJL zd)p)D*>+xEUU%y&_3`vSd^ZVkg*T%jSP-BC>8*P0exMM@CF>;3} z3d@i$D&T=x${U&SN2+t=Sc+fs zGi@XLY}V@EnMAx10`7Z+(8{-Ol*id)q(|ydM>5bTW zt_gzxz|)%(9@^5R7}M8I^hNy55qNZ*uBT^*+b0vkr>T|#?+0O2!Q$xxP+nIv1&KEB zIKUsm?CH-gMI`x+-)GS@nL7^sS}WBO%UbtsJd6Y^Bv*5}#ESOLKHK!@Lsp<-UMf>F zbn2g0YJbS^dh#_4OX4-?bg}NBcX?|0t0LU82@A&R@BO0);-IFqAna*@Qng~4AB(d! z;}Zo?nM=OukX1SMpYU!YL;CF|bY8vzgff*vbNc4nHCTEhexw9dq&0PYJw3N2nK{p; zpU<(IH?O`o)MpDUX}t5LAPmXAqAVx-ahdiCFiBLGl7=qMRk7^BuHH#&_{N<-Ur|SJ z1C&#hm-mooC=D*p<4=iSwL?x@Hz!NJJ| z*gvCKRveuY_Bg{h#3>7yL<-N(_oL{%?w!piHhH(dr>x}v>B6s~qHT=bv3;@D21xGL z5>mZ(mH0=Tw2_kxn8U9MNNtR_LmuxwP5g4a#aaDf2nW$|rX1hMWA!br=w4TGb*5xb zbnMZL`=qBamTQsZO?zA^kJ0|E5M6oZoT6ByEL6EL_I|=#Yz=~SOyDuifkG!i?zt-O z4a+TqKjG@*xpbg+9Z^t2HtO;;dF_6hI)5B`6}U-%ir#u2Xg#aQ4PVlEt#p8mI9XLC zC~Qg19?i}~L4Mw`Bb!hLrx`~Kopn%IHF81K!@PXmme_kU@1obcZP$-^?D^cg?ph-; zA>GDBfK!fNQzYZnY@g|CmtM-8e`Pv-`QD<|S!T|NVX*N=-m;!@pFQ+EbRm-~^ILBv zBH4W`^-WQ;usfJK0N*xR$V?Qe0e%^A^UlKsHa9uNZjUyO#H(q2{Fn(L_gU4kj0BS3 z`xUw5joOoEH|bD+YS=+0+3cht#W$@mXv|Ol<1m`{lTMo!a{gHs7$?%<_AsG`&*ZU} zS?JkU0Q9?G6)J43;ju6vLhoL$ms6G5CEF-TWkeK2-u{bls`U;IBlWTzYB-eu?Qm?R zhgqt7Pq?a!La;n5>B`4`L)iNHu{;3d>Gb<)v3~NfvOvJ{F+sVojo@+{{XpxEB4s6I zllTEz17<^vu??P#VACD>J>+(3m)p3j`5B#hxoyJnlr;CW7=zVAi&W{fzZIiJFM7#FdI0-pQouvZ>B`+%xTSW_{DM5BPLSH`^bc5R)B>uyjh7_l3-<`#Co=T3Ereh>Co2m>BY z0}6QT=GR)bGu#_4nU}3W%4&@y;H5$cIqX<}Xo`+){x`-4 zxbu}(j{wS6@%Wg}O@ZO6D7zv0uFz+)%9WX z5oIcoFm;ML-muuF;zcj_>(@heJt&u`pYPQ>?RbdK`Xt4@I5d~&BX}Y;rJ;>s2^rh% zkV#jj?M!f*amU4Lz8$9Y77{)hgO0lzqwaa3HtHhyw%`-aYVk?B{XCAkilU4nRqm^m zNv@q%TgSZ_^y_k?Ih%F)c+>5(b-F0gpj`$>Tq|5sO!OexqqVy^yL>yF(0zf=*WuS! zI`YQE;@}r(dz$02jXBhFcYYh$dWWPxkv8I798l2_OjuN_4!w~U1BW)h?lp&!~lh!Lp(7<+TwV(w?CRVc}#9*cq#_Ver(IWP-^ffTf*4E&RYV`Q^p`!-j)K6zco)7i|Y zlGqNSEcH<<_rKB7uh(0119F;XB|8`S4u@@Z7C2{`(yNcpW=IWdxADQfv3!Tg&!r^1 zG!b*=sO?V=)JMM2WS%Z!e^saL;f6o~s})l^sM-G!PetA&xdWd25ODpA9o6TE3)$*Z z`q^kZD^2HqcwiyB&F)<9qI8m%5Id9&gbQFj{Sy66+pe{Z@}ms>yg1m zzJGO1E|I+2JJp~hK>RMsMlgVaF9}VLHAvd9K7!%Ixh{FC-RfKmWt>t4(5?2#=f2bD zJ0}!qS8NFCg{=%WGso$;G2seE+qjEsZjR=XUt>7YG8<0qzPooD$lSD%9h#iPSeDYE zc_*(@Bv-PM)&@0uITQN4<&LPP>S0GK{}VS}!)*Sj7u$T2WKZ@>I{5B|wQ*qN>n*v> zVzwRMpEPaO!0@_xY8R0LZ!HkwBzEh_+oHH#8akG;juv+{iL#4@#d+1lsx$DsD?8(z zSHmOsJgP4`@ONxBGJ$o*k=bWbyCC$a*k*zod{9()AnnNG>{`Qp8j>YG8=Ihw)w)IG zAr{)#1z}!s4M;s%6rE0UONq-FJoE(D*~0;^Ou%=(w%eVnkFTEV>~qJQKHp!5aGgQ= zTkdCLRQK+6ST6n9SbU?3iymKynW-b)r8v8k{PxAe^%3gw)m44#P8H&AL9GwdMbGn8 z+Vpi;m!5}_$}vLQ3(IWF$yecVM5UrpS@lK%pd7JtZcn~)rAx_=n!kTiQiLFtT!J|x zKmY0Pof61`0Z*2T^DhVI@F4WMS{a&cO|0f+QfM|! z-Ra?t*6>F%)ctbbdg2D_UPF%D5i6bgfWBW(00%a(Sa!>8>=KKsy9O2^{l$rfv$DJm`a-SyT?`>9Exl81-WJtKG0CJ{s zXAs>=Qsi!?*Q1ZGDkH0{A?Pm+Gv-#X8WBu!d#G|6_ z7n8hPeIH%E%(XSX=LBcB)|{B4z;}C8Z__*7)q6f2t$&3(5lqvHY*POJGsDw7&^Zes z>2d*loil=6JzE2JqsZbHzvw%0`%4e)rwhWkIcYWr>hKiYQ27WoAW7g)weXmr!BLPK zg9-DcBMN__WzhfNnGA}yAXes<=tQ>JK;Kmwh2`(B8(xrQpedT;kVj{yG$E~GcgSt& ze>fBMqwdntRE9x=acM%*-rt|CBcLjc)ILD zLd`6$;NL8>8^^ZZ?MCiZ+r1+OZHHJ8&RhG-)=}WbT3ScAH2d}J{(a2UlVxkG%#cK* zeXl2F%vb17oB#6*WTD_lYC`y9`Jm9BZpTDkD8cDob~0<)i_pJ{%Z%^|!s5?%0;{SS zrd)usKnDT3*}pz+B{S%#J5#JKtJZ1n`Qe!5DYboN{bT#v-m-d+lsu7fQb`hl`oBl* z?33f@yKCmVZY;33x=kc?ZZ}8v z)?IrsZbyr}M!P01$zjxyjg9@%-^Fn-bTjhkvZ6!Bb-6GaaE8IDiEtP^=|_#x3rN%1NfdTenkjW|ZG^z) zAv?xvilQwTz}s>*7#F;=tG>!Gpxyp4kxROLV9J>qx(?7d(fCMy{;Y0q;Pa+D_Zt`K z(ASYicr#JY{!76_^Qx-G@TdVhmdu?S5dYpQ!4;1OFaP#nDgLZafYiIpc z7)U)Zn(Epa_Te#pwX1pE(~Xtga-Iaajqr7#*ub7l)bBnl2nV#QvMrHq;qJ69#;>7-5)2U=O9L%VdnF<2Z{A^evEY~G%acM#Lv1sscPw|Mj_WM)e1s$7$J*T-$Abz$LNNJ0 z<>z0_j{64q2ERxvN(P5n=_^u2Z!4U3{T1HEV!)DT78ZClOQ3A_XZxj^QB8YEf_&{L zn@0dWX{5eb%QZt7Z+(CPGa1d! zKLu6r=^A6zh(X=1`rwZZARrBj9FeLY-Zy5UzyaSMO!f&t;sv$iC)E90ER6$X@N=e+ zpv4cpeyQ zul}mLi?!Rma-NDSY)01>e?JJ;#YX?294v_b>~r!ZKE>ukXLHHLIn~@C6sGR4Bk^>V z0iD3rq>9v$0>*V3;(&CB9zlTTuVQ8N*&ka^f2|H-gddfTJSTg+d2K(hhw7f=4-_Y! zU*HMt(!vA7U)vs{TI=RmUCQ3Okb7z#zp!wd-3d)fv075s}%COgBqy68(@r@SEx zEkCiI@dujEC1sfHI}3vsZay-W2N?rw)vVIO$4YBx)pUKtKrfk|My!Cg_78=}SZSdx zWEYsbLK8&2fsn~s$XY#;}DxQ`)VW#TOK$+kBcsdJWri9&; zK3s?0R-+Tdp~U!^EzX0TkdLmq@eq>1Eb_vX3*57j5u`>L%^s=FqF(#qP$%I@P4~{$ z5$}i7;q&~j@Z%;N8BeNIKOdq9f0xNjMY?E$wU*)hlNcYrmwhXeg#9IE?dB$VSO1OA zb%X|J*ema>^lVe~;p*~h*kd)(V_ecyHlP=K+Q0PFWRNpP`pkEIc9z)+o83RPPtuSy zM1AWu?FatEzAP4o>=d)JAduaGH^@y-LRBS{qVx1>;LlHkeH0ybSG9Qa&W=rV4~~h|{h$is6kZjFjOr+f+4jgXYyja?_%S2q@fYd{!1P zjqCSsErjq22Fi~?R95^+h_js*^_@*`(FIVnz#6(Tz$T|o=)K8A`Dc8uDSXlmRO(>6 z?0GJ^m3w{l4cAmI6(jemt*;H4R>j#^;?bh)L({*)HcU?WmXZKKNbTo_gv(7(AJj&u zY#q2ZW$F)TsNz9To`^}SmT5))ZG3olnL`|nG0cby|LJahxz^_(aQ|+bE1l7%8<+xZ zDD@H%E2{sVd_eJPmu~Kv^`w0iH+G%~?KwWvQNtUt zrj9Ajp4`Yzgdb80hrt6*{6q`=YSfuPbkT891)4%50%d+tpsI@QP7#*NHz{W`72!_y z)L7G*b&#oJl`x_QIl!nm*I+SrC)0C_FTfmAKQ`bu4Ey+FetD-pLLroXHhC*jfkWqc zp11MKg;QI7WMy;Mr9UpV!f%)DW=UnEZ-5Q}&ISo={(%l)dG4M%i_pJ?M?;pd$^_uL z^>SY&bBgS_J&z_GR!b>|Knuj!?5_y&MPtUe7nCy`x98T@|Fu6@Xa8q=Jdh4?e6$f? z(5Tiblc?1DnBbZjzqZL#55h@VS$f@hx&U~Yl`FBK(kz{*Rnwj-`L9n{;Qp8diVR5&w9Fn`{79LfIb8Nhya z+N+rF!FWV9pRaDws58Whxc*rpbC?oHbsMT?7NXL<>x9W(0ZPvYXIgJG?Xb0`?>eg2 z_%->BC0q5r?#hX%@+A}PhbmP&kVAr+;Y)ID-8Yt)Z2I=( zzI}x@mh|GQkiQFfw=tk7tJUE_7fg^`1`q9tA}aSNRE9JfaU5++;Hz$uO$qIXl%Y!h zZ?bRpuR`|*uARqUa;!(+Z5xLybd$tIZw*O$@+)z__Q`^6t7%W z=8iU$7&J!%GgHvB(Y@{*IQxYg8m;y|XGce2SSTPFKC$f*Vo3}>>`_^_x#L7}*P4X2 z)4@V;BY>gC3)Wio5t+Rq4#jEiEuOYTZW~7O8Dj>yeWn2~x4w1YDN?;jf4im)d}fFXdkf}! zzu|f%gJycB+Do9`%ioicQM1*WX@1Ab*TjTn0+HiHgH8$gamV-jfC*uOY5Xb49@|q^FS~(9BYNnud&5qD`>Q8(y zb(wZm57PT%^lcN&k?T7n3ue|Fm#3<`-BAwgI#>-lKi@ad_xrumHa2VYo{yj;# zd^ee%lKR?4V~Ax*m8%*=HH1$`p8E*e$8uuT?q?DGgxmP1 zGJM~)%?q%6kQ||eg+-jaE(Lt?y?I~h*MC|yZI@95XYB%r2B4{GIHi<_@5lq@5>abd zwA#o{{?Nwt-_-httM?J1r434cSz>FT!qd2y34D0V3T}%?7`=WRVSug&&D7G0(?6M^ zxFq^vU_DDk92xsjQ%wJ@fZW8XW88fcitvKDi zaGHuG=gv8?W`{s`-3Kci3t>9C4hgb+sqb(dXsCLS?U1q|lg*=$vY)ByP3l zkcRpw=sKj^3OZFMkbXr+(*y9$64!0=D1(h@Kv?L=`HbhBzq&@VaUbeZ7 z`U%pZ9S*Ul1hn>996W$gK%T(=buySE-`KR#F7!G1yZqk!?zPn5l49{WqS8Ez!h-gX z9Zvry&Q0WA(lV_yi|QCsJyHB8;!CTh(MP{~o#h7kwc#D%U)1B&9-sjKeYw0s$r+EI zbe8kFsvW=!jvl^yH(cp^t|QqpMn6&MCv^uzRN){Q>6gAwjOGHL{1@P|ofboJi z%JAIQ`jA|*n*6UY;x?Z0m%(T_odz!Noh)27SL6 z@#AuyjQm0*eh-c`DUQUXO5};y$YgL2xHbW-=YrvxWJMwDCU=Xc8jRW)5zYEM$2+K= zv*fSKSjB*pySi9pt>{U!nWa@C{{ZeCpo36zycGFPYeGFYtgWXXeSKx_CzzMY+%@aEkyCKB3{5lj@T=v6_h7B3 zI(%C(U0NUIv{c*Y(6DF!lI9=eG0k?qVK2*2Z+Mre%N6a}*Aw7DC-EL2ocL03|Kqc|gDkr;Y2eYLWy7fPx-g8izssY;_bUxQ|&TWi)|hX0~oXkXDD9cr^g zI0plRN*N~kBQe3O_f<+H#sTS=23EM;_f?GL=Ji$@<%!dxJNhu9!WJ*W8U1uPFonM7wMT?xoADD3r!ur@sdG<4xCNpO3*B zjTUGaCeaR*=AXV^o6s|;_(I0h5&nVCy>4`X0R7Hnlw@ezHsNn}EPba}IMEcCJevvWk77L2~^>?Q123uojaV{j9>DZHr!>=_ig|c)nBm*(|lT|a9 z8ciYa;F#D6&1JNYl@UYeL zq8&iweJKSFsKa=7$=_vUXSB>zaUoDw0PUIJS+Qz-_xO2|E90k5YUbkcalS|LewR*k zs<=3IPT~#O{tkxH)K!#?GDG(eAT8Btfc(5dfgV6N;$$7S~^e3N%TV!M!0Aq`UOzFwRk+t_^`&8wQDDQeY;t$qErz@HL~V2 zG2GXyy=zf)h3Jzqy#J;Kz6M@^3;|U6%}M_;M(>^opSk1lH)Xjpg8zvTp?E-<2QI(k zj9$ouodkoL{XrsR6cXEwdO*mVSBhF?L2n|d$`E%?6AEZQ+0@d(H6xu+yU=r%b1S01 zwpqjDvFpqv*m}F5wG7+HetNtFigKIdH?)TKZO00~-T6{b16cpVQZSPjcp^9-e@Bg% z-c{bcW+xxad6Z?Q2fnkoqvg&qOE?rfc=-N~6f9TWV3*5pEi(g)zv*Zw z9fmYruNDw$Kj8p7KZIo^*%DC*O`)WT8jp+Y5E%#QgRrc+hjoSPWolMS4GM1?IN;og zP8UbI9tALsfv-N#3tW!!4<5PSxuRt?`u6bROOEN*p;CQQnJiNdn7sBGeUn>m1-tj{ zcuuNG#R%o4XpC8-WQxu69I@AIff#+yD!`9$y|kU!JEko7-=?>V7MIKDh{(J&a&Ozb z#y9y)qTt_G`xM=140Re)uU*{6o7IFbm&5CJ%@0Rl)V8Uc8wXjZC@+2I6j^L@`L+Qu zGC+qLMy&}(Xl~I$geaA0t#o;|_@vRJJhwC0M%3&n| z{9;65ghi=!_)8sy(wA*3ym>9V96}1J^JH^ct)OEXUN{>6+)*Agr9e`UCrNX5!;rQq z&ALaMl4687UD#yY4^h+^9+U?35-(=>^zuI7~ZxZJk9dd59f!nSo~#~Fq%Jnr0| z0GdjMhueq6=8?PZQ(6x@lBtVAZKI2(L@xcL6TrkMzwOFq$nJdcr!2F7rRR~wFuK8yVcWAOn5 z+$l{RxkN;jn0d#MR#)jO$k^aJj0^QxWS!fjkmNic2A~?wZ9PSx{0=Lz6m2skcELr{ zaGzgG0k2`l<&Y1AP?@5KjGvC$9W5vwC;Lu$V9G=|r>S_p>ylHinss7}d(p!w!n?-x zJ`&3RlzOyn5iPmbhMaJdB1yA*U`V=~89(fnEGJwbIJj&$-I68kgR$MuD2OaiQ&7?K zhZEZ8UNoDC4e9Om=w@U_=2OvDko(!IdB{6wxdUD3D(BU#EVX@8HnUvUo0Tm8$4-ld zc3kmIh?Hd6o3p)`B4JMxhsEFjI@bNya!-N*jT_DHSz?#hQ`;_H8GJ$&Q6uaf#(O>} zedye9+m|~lhzv(Z6bWgGHNnjKLmVoHv?6g_PJil`9{&2zxP0KrA5Iz)Qmj)cDL6sM}a6EJ3)oh31pK(~~w3B+Y z%JZD=FbnT+To}t!Ydlszt!LYQ!jP2T^C$>&67SS7*@AAXaM>)42%W|!3cH95rF{>2 zHOi>*I*A^4cuB&tBS~(ttt4^9)J9`q_)WL}6oe_fSjE-&`wBovA^QcD8ytdd2DCuY ze<)qaBT#Ly+Db}S@1DB#y=N`?a*)=TCo7uYJ7WV~iE-<%H;a*wlnz3J>lGABZ}?z> zm%ST>fLNwUPvFXlXxk+>4Z^}Z1RSy90v2Ytd_2ADK7V`OPMbp+&Z;nVtZ*fj3m zw~R;mHd~pCHc=sU_t*XEIfSPV%X}9-yQ@d092FrApZJRwlsbtp`1A{?H5ImI^sfiC zRok_;=vucsg~1X;#I7RLJKvx1KeWOQ7z+K%m8t!165anX?D|FSjWLpZI0-}PH1W`z z*n`FyylcBPhEBxC{?)W5B+fKQXcDa4qlO1i8>p zK#L@ejds!L*s{ksK_r$Bw?`D=^+3YD!C)!lZYPay*FaRo+UV?<7D9M44 zaIMQ)*r(MD(ai0W@pZ3_>j+{DFWu^EtLw_I)JFXzl2$vzx&6Gon5g@Sl;MrT_psYj zk}%p^^N|o)g3;3EJu4-_moMAkTz^}g%Ys&t@*HtMPfdIxm;j6bksfnRQ7t^ENq=s& zR&sy?h3|*1O;~vrWXgm4lDzEZcJ;y|5z(5_MxZn(e}@QSyrG^tLCE*^8wPSg{z?8- zJRddKD3k9`uC#|=E8+A~ffR(PO!2GY?3mR^J@y1XrZjtpV5-cA|AF#?=3YV;U3X!N z2Oo&bgz6X@}HBBTMqN`{IBJo?;*bL!qtOW>%Nlf?Q&jU++(=54o&%UI+3e133WR??7m1R{&3e}$z=SI$dtUV z2|LDSUcngM;a{g3zBv&)Jck=v2iz3EvNCG3~!U6N02~wm3_N8G;v^7`wMpv5*JK;h-!OUuZO3s_W`WUABPo;pm8^x#H zKY<+{8!LyJeSfd*yhMJX*Qz7bKrP85)Ql&x$GV;$g@@L*hb-tdPvP{3!mN>nSx|KJ zpUnEzV45xXr()n}nF7?;=`kndTcrePVPwb@bF3D7i3F*vg_LH+7_GT|x8sZJ&=@W} z)a%HOBoV(CGNZ~JBkze=rb4m~;TYN=_&E;z%puLPp97n+1EXX57bxsD?N1c112ahZ znGtuLY(l3#FE|qvXs|b(8+G=~dF;qc3w)y$4Yr*rB8Yw@KwTYiGF`vE^pcKRvqHff zwXuJO2nQ9%nfK|hooYVodQA|q5EH?yt+o{Sdm~67XSAjJNfKR+l5|OS2y{2j3OvOuA0AK-1-+w$>5aQB z1V*NT2}bhmc-yY0gL5A(mIM9;$qWhJva%t_YhblN3xv+Mxiz0FqnMqs!AHI~2rV+!`!C|ZWbPiV zV1*V@sEvv!I>+(+_KWuwO~oX`jRD&bovCv%KGW!?Kbhqhh{1XzZl09FW{oki0QG++bX>&x+>sqc z$Sje(RhP-TCuhGTj9|0ouHgT?&*==yvF38%Hkvkug4cKWCfKInj*vrmexalSW;(0K z=*WLw{n$HmgwT0(`*#vWGSMEb`gXEI^89Z!tOf>UqEz{| zLZK~3`=frw%bnK3=Kn+7<@J71`AbNuk7g2=7e#rY9muX%mM_@*{`Q091sX|pa<>p z^d}Qq#~ZTOeMl>C#zsgan{BHYmBG+|A5@lLU#p>4w|6e5%j`!fFuQd%`sp~e$lr^w zMFpk0fmQ3)511!M*5{r{svP!5uMduWyPAXx0dNJ!3&!_*BA^ARN_?DB0P*AvXu6AQ zphz`%q&NDXovP{09~|S1k_cr4=xjD2GB~>tc)d)3{j=TSOl^IIoXw8Ot8#O|2ie-l zf8Gxf{x&>oQ-iPpzl*dG-}hxR20S&&FU;$M=Sn(f8T@Ras@qc=nLnVB3mWXPZTRYp z2=jwj6%C9q>7EeY2Q$!x)?Va-9*_}S!>T`CN6;>PJv;A2F2e&Ai@0J=*V@xiS3BDR z8{RXG306;C>z#^1D@T4!b>cvKdcy_rExVE)x!7-dzpu*HSz@eRqz|s%9*OJ@y5``A zc0SrzRNF;N-CGGkdo`U70?fDJHnR!1^53$A8mX8?K?0IuvpUand`FnpFV}oUg}9S@ zirt*h)u%eeB|l!wFMEun(rkX>9ol>(1%XDnP(a%rLTU6CM#8aT^z*O(n+1@d!_7U= zauk_Y^_4YM!UEU58Zj;Ezgu2)jopJaHojmhm1)BK6oE7N=;hu5@k}6G_EiIF6L#+tP9#^+v|i@Hfnr5?(2OeJGo5EoW1d#V@l`+DPQ*;RoYMhBRh6TN}O;e*AB4OKhyiDoNx%(aO* zifL0~bY6f^l8P#N&zNI=&^K}_2qxbAmU1AqfA*0~hIVpwHSiMi7 zU7L7I5NS7k)pTg;psGCu5;tUwEgmq}Pr?A3gH?pVJ);bdKqNw)oo_17Bj>`%!J~Kc0blYuPAEd1vo_Stva)XlF*@C9wIt*SISN-lH zs61KK{oA;r=upKrurYGWV~nHjek#-GW=EpI#yr*7(`yk}#?wZSy;NlO?0TZ8lO4cIn z6ruiEyj>#QuGtu7ufMrnJSQdcw`5fy3M6D6jqKJ62 zoYw<-bKeX1wo#D}NerkM#g{)AVS{=doXiHhYrQqIo@O6M6zxD9tN+f4c{TfN>@Ed8 zz07}7sjEqYr`-hykbK)l@S@nagoPx3#oecrJv!wU{tXXgIO7NI1lmPgN|20Sqh17U zwGCVag`MbexkkCNaVv~0dYKPB0lw`-UchYft?T67ZuE0Jem6mlR{N*~1@%JM3U)Y2%g-ISPtU4RQ#}l{&y;PvL^7z!wGH zP!Ck)Gubn(Q}C}>zWa5ByS3z}7Ub5?FGON>_DQ>nB1#-I7<4p3_RurU{(&y&#P%;D zWL*oSNN%9>xDNYe+ClzmuX&UIAY#(TG9d#(E7U#`%P6&l5$h=eyj^+jmg^F7it#ZK z?icb4AJDLw{lRr+l^?M%J5J1f75Kbt^t@~Z{QE&IJ}Y0Y!oZOBBkM~%W4+J zcSF{Ja4n`OVRLH$&%F8Zr}XpRXD6c#J0A?`%XZiy#SRIQN;|FiMEkK=*xmZaM`p0n zH3Fmi2Inby{c6sz8RdzGZfy1@CWwy^tJ<((?%Ta9^(;c(V$x`kB<>v@v>oj``dLZ} ze4Wp6h1*d<%=DRr=Qihm^~ z*((M(G6h*w;~s#CO(ih_&2WR&$@;5*AfW^=%pz2$o%|T;tMw3D_gUobX8av8mMwJc z_kp%wL}QDZulQ(d)zscT+A)JBx+l1DZMjoNhAVVAZjy9`hJuG>+Sp6U!X_K)$KsjW zWqfHI8^frUy0%iVG4iv0Tgq)A=YmyD(rH$f`99lL3~r~!2s2?2-TP;{HM%bQchq|k zhpXH!iq%JLTvuH;=nmDzx&UMWscA?FX-@ubIx`Xv1B)vQsH~6*aaDFDTkU0AWRdic z98&PU>-EQ}F|2tt%byEBAPQOhs83d2sqCT9>?GF(`LW z7msx$%RJZpr%k6!V&9x%HlAoZz=#KX+MIRh+b&X$_Esl&Y)R8V=4N7Xb1RSV>ngvK z)=)XuU8q~oe+PnR(0-!t2KV$xl0PHW{%P&WmT$AqjwZJ4GCc{IDNMJ9E_hS zfIi%m6%AeB-}JqazPVh!^?aUslW@Nk=)b=eJ+rw)j;Jxkic?(##k?5SB|Zzqxs+Rl zX93Fuop3S(07l1`;fhOE*EsI>et#qkRiR3gw<6LBE51C(LkVtMu$$WNGl3`!?fdIa zhdcM3z-I7ro;2JnGd;9fnN~v{$v(?PS;b0wrf}O*L#@hc0*+}rp&)HW1>)v(&OY4PINvUWo>u`)h@z{JpnXTVyVt6072Wu;a^8i=Eaij$2f-ugV;RnCw6tN5G0VyVMl`_j04#meY@^#1tuSwD^wKkyzVeo(*#eOfr~kW7f8Ni<0h z&<-@P3&@2=MtuFBajJ?H_uX$AjNffmjOYCORkE)JrrV2Te% z)?0<8&16Pq)I1FeFh{B~6GaO%(q6h%-Wkp%pyE-{@TWG|yz6j{xc)(AsH>y>Ywv#3 zyHC3Ck_%!cS6Hs=Xy;tKg!n9Xy_KTNUGIVu#LFXc@Pvt1{EPhg8+hi~B8J>bl7Z*|tsX+t&K(uY2boUDX4(4kUKD^we< zyDBP^x+EUdk=4I0M}Iu+pO1g)Q^%k5vXl4Sv~lCaG0kIISVWjWv)|03KvQjPLlY&+ zeW-yXRaFm9Hqy2+jh%xu$Ap2E(iw&}=40HD}UM%w#+^i;12Y&}#iDTC%9ymKbXLMGr-KVLPdZJ+-#+<6>n&_ zo^aDs8pTN%Sb&!tB%48aoGRTsj5Ki^;wWMJ=0_fWS@!awYANd`8RXt@BXp5^XA2Zh4W+XoVhUx-9$Q4C^CuGg~j6~(Ocs)-SnmFgQed{ zS8?xT0dqU!=B+3JudAxwbj2lC{PfC8FZw8vpYv_<{}hWns{%Y#friyp#|%*Nfm~$D zw=8NrJP4%*W;h&WaUg^YgbNNzyVI7F2M(&ZuJCeErPep$>|aDT4`#z)HiRi_r3rdq zY%IF)QW$kgOqn(rA%1oAvZ~%Pxiy+*Op9$x9*q?bJRAoda}!H?3`Hed@f2uuS*ebF+pHM+KJkL%C) zQ4GTPb)12xClmTcUIQ8#317~ygc=$h(+7YOyd?BmxXHRkXe^|r@S>>)bhMIM#n-@2 zL#-6(2_<*(ltOgUNaZCQ)tgH2P~}~Zz@ioAQutL~M0XoLO8hD-_zvJeiMQ|oPYDj{ z0AzIDwiM!(Mg<&pMonRoZt8^W zQMlt=7^PL@L+{cmAe3t-SAflX!2z-H?t832PCF7{9x>i{iM>A`@N( z1y&012~>3Tzrv6&3%R^4G%39j6}=S@nC2ChTv0z~MP+xL|I3*Ag8gFeLl2HN(%as} zHh#33Q-aX1%v6@W2?~5TrXpwyZVK|^0VTu(PgJ9`Vca;K`RNMXUXO zha4QuW1Hil>#rjmXSr7`k5!A8#LWHnj;&l>mjXOm)>%Q{xNLRwvCY0l_ta;WorhYk zVaxJ0=NTV&uthcj%iZU-(apOcU!u+~2oLD1(EKlW}!>iaxx*qC^+j!u*U-hSaP;;6U&Ik!`Eps%16Wrs~@{ohRICjnkN z5VQhM;*^KlhnfbCtt?$0J60}dNK+qe3+8%Kq;H@X4fa*hI=&@t{Mn_f&To!-cBHr* zRX6z)FM8smpsn(sis{H1gwFa#IB+IK(j>pKh&I6RHGs<}9RUZ;Qi-w%1ysc*S-?W2od4%DI(Es%Mxy@m$2<&mVK z9+N-OC27OEpjq-ndWe=~T~#<66^b5ee>yz9-xcfDJu-XVylam+>X=x+c|E)JdO4Oj zmNrNW0}}Qq2Ecm)m+_JMGnHjo?k+6P%6 zxb(72WJlzinDDsny4z=Ub+xa~*w5+Tn)m+22RD7@@Bg-CB4f%ml#Ol=N;Av{9-kD{ z6D>UkH#-d1K?%8{XO;(b&fhw67SX_>MQc+_^+gw6cvXFU(}BIcJMP<+s$*u}bi?)6 zzwdqTj-8B$x1xYoNAS3u%KcsPN8+QRF3U3qnkBkMh?3-;*3zSR4>L)H4@!KC5aRJl zR9h5>bm@Oww>|dW_k7^^uFacQl~JE-Z^kJnj-Al*rK68O z?!XgHKB4-6{rB@iRWrMQH7?Ncq+aT=^zC@u4ZU(43nd_1DLaUwZeKKh)EJ4jSl?`c zhz4%bnb_PmX~pBqPq^~Z=XhKEKg=M1P{aI8;Z!|1&?Ozm`p+7qPPsItBW?;Jp@_m) zW8s0Qyk+FTIK2VoHE@b6T@?a{g!RfmoPnh}4A`daqHXrf*oF|ZZt)|r9bv^nkEK^JDFa~yN;ZxFmj(cV zrGXWD87Zy1<+7i14t8}k?YT$nbM)cd7rhl>ok6oZFX14eV<_6Dw8qBe>*Kbwe-eY7 zrLLm_Y2{tQq0$qb+!0c#G_ZG0)XAAl`oe&V!l-eU@T>;VLb}t!uHe`;;PPYub`9=C zJCRki5#4N;doe&)7z>X8AWE#}oU{v20c9M)80Z79oGi#I;#7tyBsgsv$;zr}5k(c< zWkPHT8H!(a5ZQHT+H2_)1>Td%AWSw`OJa*4R@yNB>w#{S> z0_#Q;JzjI~qL{Mp-Z5#x!q~KI87suKZ0-Ja%-MG@>xby$8b0klP~Cj&9{O$-r6;;b zT=Xo^aM@6Q^e%ZJ%Si!5prn)dN2|hpTv^w^*7F+h>)MEhb>2B}ASeYX`Y3~jt3)ua zo`Qv!wvf6^3%KynPnNvLg?R4cA>4>#n~(7IOvM9>*RQ+xmOZ2{0wLw{P^3 z5DD>h(4XGVcq@GlWW=(2?_@HC2|ZRmr|r2gb}+FhE&a1*&5HYPx+~VAxUNnUC4`s8 zdbe$SmAe!~7tz;(oU(>pc}kPC7LVE;+)F=AlBx}m5zRCyne@uI>d@^^uOb(qx-6hp zmIaYqABjiB9u?qC$*20mzR=$Znp95b;LgzKY!Z)`TKwR$GGQ_`=gh>NNK2^soE%Aw^!JPvB-psvBMFNfAO0lneQAV?FNK@ z_WR_UF;o57jxbDDDedeS0zV&VI z@TBe<`sez37T%d`Ono5~gxVgZEo2M4l$h`xY4VHTB3$OH2vG)gd_H&!q{7gGWgZ=d z9~$qHN0i34t=nQR`msF^*z=3`+;;O@MyB~3wGW)}-7}8=#if_t@ujbRvF@TJ?G`9(BUKixtf^bq=yZod7t0}$R9{VpxL zR{Zk9Uwre8Z}{{7^^I?T+kMztu7RvUugehQV6lbzS@jviZ31q%k2E9sr1Wyx6R7kn z(M+Z&c*8(4q<@DaIXxxhbm^~ZXwyzQ`K0-O^@)$IJnip3_X-BomyN{XxnM`J_Vm}h z@eNnM{he=*{SG?7^xw{P#GTu>$40KU?q!n8n_ZMyXqDuGBU~VqJw%q9e$`f2jKXT% z1Ra~|8e$5v)Zd==kMSR0Km8=altoqvK5BXD6!?Q0=BEz+$wLkeFg5Oi9$AJX3f|FG z`joN;j%EZL6^DNtNgWuid|Qw%0$Ip~Y0Oj#ua-c(QVcpZsI34g2CJ&D9*}y_I)LEa z!u463<4Vq}HnOtN)Y8N?HJ!2B9t)y|nagg@8!uh-0C#RPW2ix?;P6PG*6Nwy)lO(d zD>?U1Bg8*^+a0mxuDdyxIwAId`N`}ULOC9SzP8+F#bCgWaMZ@u?8Ud=AGdzzOoY?! zVc}gFHQwX{^vepP59LM;o#-TY=cAyRwz4Sea`T|t^ivFC0#9jcI3s@tlsjS6Skr_l zkeyWtoxhAqW6x?cGjdzl65|N~x$6-fc*&GF%B8I6PDfb~o^%)$e4&?wG+gawAjY-C zO39IC0o-@6Bj8sxa!>p5C&pH`(W?^@-4#s%Gargif`063chC5facf7%*8@+-DXN8{ zhyn$VDW)a^{3rND9vZbXf^X%eNWudYgcM*_AprNpEUs^>VfEFWk<%aoc-mkUo(5tk zJ2)>{CPgs9B#sIS7DYZ)=3bp;^I-#u(5ew8SKN4WT>bSkSmFIubaCC-cy0`6o!Am% z(U315(;0H-1(bEnqK>or4bXAi__5w8(oFcybscg4wYSGLXPh7RUvPO0Fp;FZ)}utN zk-AaSIw>|h@@TZv`PZ=3yN07D{Tt99an-dkX;K?PEy~o;zP|(Ib{&r_j%qZcm+V{S zJxOaWGYv$Cvdld3LNDIS>Ylc$s}q$O>g|dBjy^JuIpq{4GT8M9?@B0lTmXvCv|6Al zpY4EXn?~FF^Q+)T(sNxc!nzC;w1`r|)Z6ukw`s4p%263m{ozv+3RP?)zWv;v#e*oq zY~xzKv7F&oKIE^REE4Em&1G+T*F?JLXmKyB_LYohGRGQy7IW;mW3OUj;~9f6Gm#_;A`zrl{}S zJeUDSf1fG^Ov8etl!*VHIPP!>{I<>f>_}yaJTZi)=nCWa|IHcS`ra#le%|?Uz@Gb1 z53?^*x_*i}Te6E;N5HYz%~sh}kHjFVyMV>0?MxW*&zu;4yO(|rTKJa~D$^E7R(#mS zvU2r`*#89w#Xo)F^QYD|HvNED2{5BSr+%ScXQ_u|xUP!iWLf{FrRZ1E6}pM^#kb!6 zs!*udw)h87sbj;c`~Loa|KCGC_<;}6mW_$oyUmTAwBLQ|vkG`xohz@lRU6M1>UJwSS2$o8F7|$e%?6Gho$#_3 zzZsOWllcSk`ll78@7_(TRyM!??eAT5(@nR=^r zBWLQv#e%{~eQ)xKcE}cGSG==46G!1X5?_C_GgA3Uzsy&KPm~89@y;-hBp+$nW8T;_S zwTLHJ8a%TCIndk13f?xaOpDpdG{u}5m-vFgp9b8GoLS$oY-L>i!ym_Fwj~SpSO(^e z(`H(k)>`gA@8=x2;fR5i2L|aSzBOE5RnNAuPOe#dMJKvz< zx3D9g?0~RQ&NGS#h(ENmf5kV$<*(p7*l>I*qw?4fOdanZ?vBeCPM+|JO8`+cUw#{& z{FDz2=g~-Cb`2^LZ=I>P5a)2pPa$kMhJvzvo*fLck31rpI0w81MQ5eJ>+N2EQ$Fbl z1XbBAaFIpP@hu+*Q!el@q8Zj<6u$^69A$U>V$A8Xh7L}lz*YI`K~uOWvy-j%W6?O? zw&wyA-sNP6=|UK%r%);{8DNX=Wbw6S&{^rZ%#E55PqaN#Ud98Gz6UshpcV4Ew#l3< zY={ka-W#`m|LnN_%=6-*t8R&HE7nCd{Mra@8`*w8hHY+*)%8)&neE<=u2}oX%DDT= zo8qdoeik>Mb$%?p`iAI3>wYbQe=Pz&sl(n(P?4_cTpbfsqOR(Nj#1Q1m=x=NeS19g z>ziZBj43E!Y>wru)(wcB2lr1&UxH8^`KNLLw^1c_!(@6&wvv|Ow~;2fb)?Jhx4T^BO&L^v zZT)Zj4D?+3slWc~7v6E}&9V3Hd%At7v}a`^q$fQ6>-q%>iGy98H&qgc$Q+7We%rV` z#T2KYLBQ|KlHh2NmcGj?B+<&kXL+ZWz_^k|L(1 zJ}M+FDac!H_}S&R=$Iw(-=h#azwWyH!prBr`sJ_Mu>7&5aqzweczbp33e0w~NmE~OwUFGJ#{Lb*oxBhZsz;?o?kU?zvR81K85siqny|Xh;ddYFY zq$soT&l}Ur4y|)P{a2s%POWAXB=^EM5||+#2FgJkcX6Vo#v*o08p`faA|QODv6>z& z-fOaDfbsUPZ}|1EqQCnF2Ylimy2XK0?z;Jwt6%r(*U=yK#UAq*CutGQe}EprldkJe z04Fgq#>UZj6}aw#Cm!Y@*A4Pv{?U-Yox1(RTj{QTmvM;x2-nTTlg2Qg_{=B4tpAr! zfX1JsQ|si(lh6I>`3;93`J%YXR5kY#|nrB5pV;=FQwKzV`3mjPHNr>#t>Gcg>$9vHr-AE?U872dklhK5wH`L6;R! zmA3L>w5UY9Jpdiy;fgG#AqTExZ0}U%GUJ$Qu$4dsN39TybjT}T7Q4OhK(6`Xj4D^X zm5q{D$p|J~%2i?EqVub|25#GuWpUM+KVgQjCB`GjPuzVL0yf)=*$QdP|GX?w6{ zcB{Smu0iim)FYHPjcbW}5Z?ROvOS1xMf)FfM0BymO+v*W_g|}Vm^yVzbgpTSE5CJi zwBLG1)F6P>a96wr)fQ+7qiwpXL|P5g+k*dYDmVVrxLS}= zQtBXZuSWRnWyQS#A@K#r9TOW6f~1|lXzeR$RrpEi6~=DZm7Y^jIzB@-j%nE^i%I&|BLBh38H*kCP#ZMKp+gvF{OwB2?3{q4dxVoyyV?fk$}p zu^yKLaa6u`D-sr3Hqb%t8CBu2%P4Kd^JEAEIL?mOO+?wq_=(ZO@sE|)-w=15`_uUK z8Rx`}|9M{A^uwRTO&rm<@yv74vv5w_eC7}1zVm(>t5M3=wUWtE@T)~{LoIia3qP%l z>2Vq0C&hG{tnw-`4ZF^ashsM#UTyKkSHzN=?~FF$uUYyy(jWDM@<~Bo1BArcXEn78 z1Ng$zkJ4f2(|qbuW33p{s z^(ZG%dYSlYMCsmPuX;HZVKcDp zj+yPWI=cU+>0Z9-(IwMg^UBwK`n(_gC>GA0A59Ho^Bg>omArYg!sJdJA8@3-GVDHD>E#7t_4C^WvBzUbOkSw7M!1J(=Mq z=YQR@cJ04^@4Me)6`mbo(5IYe*7(`|J#V?I?N5#=$ev^cJmpjL6(%i()x_9!-MV#w z^0$u>fLZz{H7Fh&cG97jCzC~*YO(im?( z6hHHj@Z6RtH-JdK%kjFx7!H0}VH6oVMz;xV*t9-QKKaBr`o$-zPCNtk!l0kEA8nie z+PA*>)7=;D9`~b|dqCqZ`uc`C>6c`pi%MdWs2oH?Pv(n;e3+(*y1w0pL#r$^yWq(# zWX4x}&RZB~oOw=s<+RgYN9S>)WOPN&*pZP$}zcm;9}P zc@C6akqWe}{oS>Usw3P9V`^g8TUpcUp^SWFckseR_K~Dd*csjdiBo(Tf`bz&D|6Dx z=?YBIc)C$6a7ok>f>vfqAuDlJoJ`($D1X55?7ZQr2y?PRGkKXNE0id!V~H{jLyP~` zuI)bKEoQEykKG*+ZyBYPRMAJ`QsO1|!U>zaGi=f>!wQDNCC?Rhg(g3}Xqy*rN%uhk zzdB zXd+)GXE#Mn@`D%t68OBD&vyBm=H{r?q)-#9!Su|7+*99&^1)sd%k?274|JlSm-MQ+ zKion)d?|%#WjUIE3R0*HB)sSJgJ^(LvZfl zs0jhwRZ3$yXXLm0dN@iBoIKa9i2&?^)5vP}ip7tiY(NtplsSTY!<5M}9l>=A6KC6{ z8-g7!vkugR+&1T#{>S-t2?;f&BVbTUbQ3QbSAC1}{L9ae?1W9e%(6~e3$#5&RvXb) z^zy((R=zF7z(U1$5r1wH}3k?jWM312QBR0sX?Fa_ML1=s~H=69DgJ* zXt%hvV$tQ-#TZR=FtC-;UGTm(QT(rj5!{DZnJ2ZFy8qrWgF()!MN8tQ|M&rDv-^RL zS8b$m79IFg`3vQwX$>&Dqo4XR=dgq06g1#ZTR1nmJE5IIlLyBYkC7)&Y^YpR)=XCV zN(wc^-KD)5E;FZ{h*Zi@?KY+;Y@@5s45bpU*yW^P=07YMC1DoPi@@61#|}+&j=WO0 z0@YM6FTgz?UJ!rs-<*5axzVwSTa`F|RgSTeZb`!=gm?z}K~qyvW##YeGsRCDuWHQF z#P<2$FoE6K(Z2grB;o*9F28>By7ixV<;z|hx3Yt8!JN6Q+_K=I&dB^BTr&NUt8*^< zN`XE>Y9q?t;~7Q3&3Um^Op@{BR(MzVMW79yv~^p|W@Ltc_@{q}rU_F{euC8gRGcWT z>c9BQPk(aF;YS@l?x9B)N8K2X3uwW>IZ%DcTLwI)G7b2VrwNqrk{^;jcu`IY}Ssm4OMr!BT0@iA{FK-Ym`}m29}Cb z5y%K69+Fp%3v_2Xt52La%?@6E8eGCi)T@{indPr@OxtdGf(}j z##=y<=51zV)m>?D;P`y1ai?{O23F$RxxVSL@0}g9Svi|He=f?Twp(CP9BZ~FJQqsh zCOF)Y!s^z2S6+n{d9-pffZylnBM>%s`drpj&bsf|v^B2!-j8DSbvN6;mb3E8rz(%~ z;%nesVX_5N<0=`%XT41W4V>9-D~b?aIO|;wnzY>|gW-rN>7@!+Zh0~_<()y&Lck2G zSQtf+TVdB*!jM-tMd!j#v=+KDrXMl9txDfK7RG_4frIQy!#EosGFF6hU@}VvfIOMPN$@uK9mnX4p@no z^pv+C5{@{6udT;}XgV%e-AyOuk8_tjDE`>a`JsANMRnAmy}ct|c;YcJcH#W!-?~w9 zBzXd+R&|X7JXi3aXd-XK9pfatbi+W&n@$IR;p3Tn%&6)!w=#kFza*M1P~E7ow2 z`*_-g#%Skg!fyNR7xkQFXNfzuKKw|mS-h0;L186{YQjoM)zoYITH>eO6}4^SVy_n+ z5s%Xr-TWWlCmih!yClRb$){Pb)O$M5ut2gD=-M8V?Vk*giB%L+yC*cn6%rR_YGt4 zoU!fX+GW?fGVd+`vL~{L?lO9bo_?oOVK1qiVI26G{2Ayw`zv4gmv?*~KAE@M98}zM z9FI1FR!ayOKchGTC$}CY-Xm~PkdaRT!Y~xf<3HZ2HMSeR(vYv*GXD}>I#GuE!b1;^ z*?Y|Y3SQdI`8+Y}cWm9Xq3bquG)>TvP34+OYd$H7JAx8PJNy;QVMWg*sOVYG4m8I0 zaosi7-oe(cD@R2AudIWEyFDmb2i(!U0t9P8`Y}(Y>fUWEvyCwD}|Hl~&xd4vB_2 zA&AUmzd_gUJ8r)tKKbE~zh_{e=NCASnrDy#&nn~9^de2msC6v|dDvxj7h?DH*Lj-C zz{CFOu5b#k>kX}eojw`Q^Uw`KZoM}aqHcG!d0Z?3{W_XhDgf}a@UfmT; zp~U@E?8Noi);_MEk|3t)Jc6Bwcagc1lDHMpXO=whLocdk|z;q=X; z)+>bqs_%&S<)GY?Dui*k1Pvw_6-tqqSKJM!bV}HY=9yF_L&NWLlZs;xO-z8V(gY8+ z-xe6@h5NQ_j41~l61yLKP;6>%XU;{F6arF&mtFCARd#L2N%=8n6?xJpM&Zmy#4Gcq zu+E2YA%N*+m3q)@O* zN1Y#zkm2!?hJJXhW)Q))mlX;G>TXu+yPUDM;H%$mZg&509z~cKJjKMA2 zs5;P+l{393&zXr%fo?)5aQM#I#um2uv)Zj~;9hA~E?f_l!L%p8t8NxAUq|5ejD*0*paJ^>%j8iL?eDRx zf%9cdyeKWNPAF~CG%pAhaJ1(BZJT2{nq^=6(f7xM-Da=~xe+?{&~Boj2flMV0}M@+ z%81Y0?ulMSy&(m=^8#-E5zP5jdzay{$gMD0pMZ}^9#%lw>w%$BE%XJAp4uz5Lz~`3 zgrw?l?2+HUV=u}?WteStutfWe8|E|n-g(~l&-nTo-}+AMGk*cs2EnsJ+7Ic0m~b$D z!ih)r3ciH%ci~?8iwEVN{3JV^t$J$E`oVJ-Q-Nr&O8X5Q32UpFIGi|ra(w-pU;FZy zaT8y(OVmI4kE)%zb;L9;@*?t^BK(x3avjG*elok%)pX+5v9c4YxIF`wfq}EX{k3oW z)wjQPIxDTayM3qCGIGMl{gaVSgjIftXo>yr!QprEqTYmDIDP>_-^!Of%7^bAT|1+h zBabgRQ8+5LKE2{Ni>%L`XtBVWx`U1j#_zb|?-mj8*6dVtU)O zSn}v&@t(JT;G2CrI?sGUK%!)U}K{f@|zfXU$uKL-R@* zmba}%#Z;#(C0lO!aZ`mY|8h`GRuz^WU#pzj=DTBiSFGb~@Bt^H(fVy~WdeY0t86WH zJO6|VNjKmL(?Y)wUX6}t_0rnYr zREx@Rxk!`?2z>8={Kq>S|d5b!$;%5H!6?SkgnVa>ZTBR~T?Z3!P!r z3frEqet8`I)>DaJ2>BZ5fPl{N>x{NEcFLF@e5b%CKT!`_gRAJHG_^A3ygNc!4yLmG zk@6G?>8tNv#Pt$mOlt|J)y?C)qOJR3RhHu2K6N-u1dKz61dW6z zqm(C2N|mN8Kl75}VN^cJCngy`g?ssSn8Htd$%@uN?4CLCy>CN_-jo>F(&0(9@_f3= zLw{+?@_?rN`P@BaUx$|dnz7?!?Jal4)!+U>bZy=e<4_JbbH6>JnltibK6*Mh(xdtU z9a!u4+xOk`t(`UvDDIoJa6#Po{r_ZF54r)GxmOt)D5Xl;Lc=`5_CqE$22nNgg4ew! zPI%kvqn-NGPP%R*AfSaHw-I13o*=HH>s>s8T-HJJn%(u2VVo|3)kc?b5*OhiTjFLv zXh~M63xhsBRS7q0`7bHp36M%TD|nVc+C*p*d&IkR`K@qj6NZ9WsQ(eeIJ@sJ|K)R^ z|Kw%A_+{*kLMqkEv%DR`HtyB>=%Fs?tg7IhOB^QU|qW;k5wZa8KvgD8G7oIlEH zQTh;8P7UlrTE2Q^9LyD3pZd(FZ?36pd@s%;A{G(;G+*6Pf;lofNx#fYnMt>Qb{ejq zWp+(ce)Pr+H>PEPXW~8B_wQf${1?A|@dZDR-Dk~1$uKwa819I6NZ*OfE<7-te36?1 z(F&jV+k6fW744kbL;k_?3(#eyb36%sIhge z#~oYQO8>Y2@PA`m3yOaJbPU7j#&><@bANx)%(=5-8;cQYOKo_Sbga;+!UcpV!d2)Y znqn+dnYQ`O0lAnyX{vX|zT?gBime;gd|biOcl7s}q`?17!~7I6Z0PFk5yPYaBJL^6 zxO5YsbgKyPMRm#wnF*;aG1!AQ+!UKPZisrW)Dk?ez$twR(Fj}G zM>4P-fsIw#+DWakKijjmZD^0nPXBK7tlki{-1+R)Hdgl%Zstb=HJ{&C?v*wmy&6hG z)5~`8z8za*^1=JZi68$^?EBK=S&%0@c~!+y*QA+BZTnX~^)B^i~o|AArt>!mFdyTg9QUhNCc~ zp}aaxd&*zw14V%7d?f%f6&pvs`qi=h|Fd@<0Dcx_{-5pHWH-Ghq$l)V73m-#Aa)cL zQ2`578)4JM~b{!g*E%#DWE-_YTrK38eSF$?j%r{@>5{nfdLK^M5CIkOVKY z`+MJcXP$ZHd7gQuH(fQtJ?y|^EGNO4_MA@8?K1?ZkQBaRz=zR0xXkeg9&Dm6@agS= z0Rz*D$^PQqQ07OSYR#g8i_r%3HBOzRF`1s!r9qiZsubwNb!y8+rG?P09&Y=(25fM+Q@Y003G%M0lQh(i{ZSm>o? z6$5pMF(TJnI@+q``Xe=X^ePQh?5;*0ce{5hKN^k)@EGHjOwj{=`Xe_eM|v=@PRkU# zb$|WsI(TmV%2jEi(!X)~6c1|j>J;A1Y{`%=GFYhO$i!I+Y0{p1rU!4hHFYi0Z2|#f z`B4A>KmbWZK~&X)I-!Cngzfgx~YSx`hB=Rf= z#pAH(v=BMZWP4x!i*lprcH{y_YIyi0EGJ**5xDRS!U`bBMW5)EuGem2+0qX4d?Y}6 zS*;zYPv45#6erblgXfcmJ(L^!n#dB{zV6eZ_b`OJH7jT=cJQg zbL#iBPvnCBD2(tW`RHx;;h@kiUMn&&Fa5rdojxrR?D{~)Hu+UP!|?@w>KLH*4@*z( zo}-mV6Go5IUDL5Blb9d@U3Hq51lPNe7S!;SnZQAxRuNh3V=tAz;Bf%)2rm9{>!(lH z*Q-3AI%8UT*|A4FR#Ve>x`X^5c&OfAzJ{}KT!u@AZl}@qLr#|Pe<=mzD zaLoS$^RnZvlimR)5<`Zhg-3pgq=;MyNm3tG3oV-tw-rY{BA> z2~>w4?JzHf1h%QdwRcCtW|jH>@<+iM9r#k<3bdj{vZF_8kh9k~v=KKtm(h8Q5k&=H z=3Q{K-94kEZxGdKmT$3^x9V8b^qOw*tLG05tms(D=Ognh0==_%^EIvT=&3} zxxEBh1)dtG9`R*XON|8L(K^>O>41GxvktKO)wh16**hJ+HGG5>-i*MD`B5=cG753Y zc&1FVu0-0oPM!YYgVLezJ2M^mt~aM%?TuZwXsN~}kPAtf--@?%;ypW8!4<^2AQH`y zDe;tiHL%gCd+j?~)~SQI(E|uB7{y1BM#r>5rsd5l1{d_6c~ktE_J}hgW%Yv7PV~VW zxI8;5JAW1W1RlH>x&(*;CqL2K+uoA)Ipq`$m^A4w?RIrEBMzqtyhjKE`Olx|ff~LZ zyZ{fzuYR(|2|pP869zy2DkGI3K;ELMP9x6sT0y~qgYd=ZEV{q|4o!$U-9WJJkw?;; zdmqr<=(?l5nu9@l)2fwg)S+6OM$ej_j(Gd)(?M^4L)!IqC#A`{T5Qz8`=;T0@0y10 zIV%m{Yv(j#-(B?EH4WQ)RvNs^)HHC)c#n zh}S;yqcJV{pgXK$V8&hR;Zw)@)tcEIkY=2CY&uN3w#Nxaqz0`VVZZqr?b}|rW_{YA zyWQJ1sFSam@=dzeoL{?Ev~We*Dh*I9S+Y_UTuW*kH!>Zd{njUc{DW!INv}(73+AQP zrOSj*TSgRJl?L6qSFTLU7cBPjMP|mxw+kNB?E8R07PGe_AYW$e86dIz(WRVT!c))r z7w99*nLptsqbp5;LQf-q=qsl)vMRGPehbFIc^Hwt9S%C{G;22~wXAQ|DvFJ153Mjb za<#CnN}-oczRG;4v-(GcT^=EKg)0DIy18vfc1miuTOm^rEzQ zv5a;vR-N$P_kB32YSaOUO;J~u)KnTlBPQ!@<=c+-EQuYu<<6v_N_}1U^dy4{TYtlI zKej-FK2SHaP3f>BSrx7QWB*5t>dy6@S`CK`(1*w?Me+!tzrCMOOVEqp!X4su;OvwE)s5Bi~&03S(^?b!?+ zJ*xJjpZs{*s1=o6s;|pRT=<2j!fxRa7u@Wgv)OZC>_^%wx2W?zREL+2&|%5%dfU6x z>_;EDsJFYF^CWhd7fAx!w18^dl)8#Cl)~A$1Vs_UjCvJ!_P{fnTU3nvMuy^>1~83W z8kx+LIUM29s%&DWSVguvR_rIGaCc^=BdcG%?q6TJY(?s*uS%z!`<_&%J?Y(=1*HKC z8aE^yDId_45i1jWgikZq(8>s=XPNDpj2nZ>?J&NER|7Q|mN zj_e+E5O3yF9V#jrPF(NWpqV;VDsT9^kEzo)O;>F!QHQBDar8u;IyH1K%s0I84NmaT z02khv`4E1`seuJK$6ghUn(Dx@D#>lyp1Y-AUiAHR%Bd%$%{tZFjeY3LyufiO*nNkp zIi^c!-JAG8QUgb;@B_<@Qik)Ca%pBc2Y^ z09maDvO3nRmi&c7I>aG%b02!d*OxSlkHrfXrA}QzQ>85kBvPT<`s5g$bAv}kitcg1 zo|GxlA2-opop+k3OwgZKr5Kr0ICN9r7M0#~;+^j1F_45li42t+11Mhv*P{Wm<;zy3 z-rB14y7!)u_Is1s{5oK-SF0sLZ$e)}8nB>m(@1eE9n?4Zutp=*8=rV8-SVs7r5U^I ztQ9#Ub(Vn23&)`?F(eCl0G-m-3ihXOShUz%GvF2c&R^oq`C4={aKtu~+U9}jM0MU9 zM+`|TwBKFL4WgF6WCUWEMn-PL_VH@{rEtjc0>^C`)%6@=SMnVEfr9umD#3TD>_f5` z%ha~)j|?0iVKgAn(c3rGmf?21{yPaswjo}>ieuyc>(dW@`olDF`t%EpU<>>&tqh7WzAkz64xEPP0YEmyL)*GtD@MAyJJR`IIxjU1 z8Khaj?bfJSI^b;||I|l+F=_H-wK=to4pPMuY|&>4*#-Ts+cUpNBm4mF=kE{s$%%5k zS%(%+o-iqW^dp~6f4uqDf9E`uh#|u4c)suwARlZqvt*b~^~$Cc6XiQH3knkjZI2p} z-Rcmy-CDvpcj`lLW_p>ui&iRywK@lK!>{s_wN`HYFeRJPqG0)Zt!C7htyq!Tv@qag z?NP4RUe_*`$f`jb4RZpO?ux8vuIUpdHEz-5UKM~k;n8&ZwB_#3G-Bq=w0QRXH2b=n z)KOEXL?cxyQXs)$ctjx>Z_};@w{}A7z_xWdVY@aR@&0qt(QiM^8E?5deH!laKIJME zOz=~!+4u?`GM@gS+3YKGnttR&ocT?hkX;L$GT;Hb?3Ru{>frQ#9kMn?_fZe^vgDvM zFa=I8Cg$iKqSvi?Lfq5|x(xgx};V ztOp#>5knI#A!PJsN%okXCW;@)Niqq|5~RX;;6kBT`pp504_$smdi2KI(=hFY9;NFH z2Wq&9V(kAKNdd;#!8=C0OEi9XDhLy5itm5W0$Ibac7Aj2H9af#sF6rw^&E7Xo7?qAX z=kzrGsKZiKW4#uqwCfWS^Pq}w&`2S$PrlbTXDm3~&_{TdUz}ZmReRpGy`owJM91rjxSHlh z9rCzFyepGi9?+zQnNHGmo)mSixX}X$^pEHjCo?w&4w zVF{cLWjX^V(XAb#Wl1~C^O8Vcxl_a}`66&$Tblk}+3xfeT+SC;qXRFU*!0EwZ@=wZ zpZ&XkNE647_Yzp>pzaL4$n<0$P&tfO#E3C+taUZJ<0qH=SH22Qcmj{ROnKXq^B_uF z@lpd_y3XpIC8}3y8>-V!F8T4uq2sit<)v-3yNvBb{p8~O9|A#om{Ox5FH02X5KqWa zuI1AKUerhTM=!bf;#m*gdv6-A173;O=?HD6kGJR%Q=t$2bs+pQTTvIm3pn(1-Bgh9 z?eZPog1hnto`Ll?4d{#=Gd8{U^{=^Hcd4F?`~Lw`Lq6~xcn!WIGf%LHaf{CK40&bI zW|3q!IdXOlI(OYQH(af;yIWppnRRb!z5dL1o%Omu-gRf1G;V@vWdF76K{Qx|^0UG2 zI*ba8dQNZL443QYe!3K4O3;EQ;4J{Wz%BlWA*|efRj0e*SEN1n+ADqhuRr;?_LrX> zShllgb=`+ge&efu@}@Vwv3mI$O^zTB@y}n$4^Z4cf0+X_3%^Asa?K*9j7A=`Q5v<9 za^{q2>5E^yAYJ~`AAdxR;r9qq4T&A*#gqWrz3t3nyRrE@XF!pmSscFAN)9*MAx|Bp zE}eqy8Jl%FB zS9?`YI{xf;rn(Ws-6-Z-Crl|U!k(${D6ptu7K+2jO5>L$rD}rIYj*zOn{M&a>c}#H z22C`+X|Q|dT{Q6Nd%D#a?p(VhHBXzIUj4CiHS0bl&3)!s9kSA<4z~^(fqQixA+VVpO&v$t}DUi9$vy3SRIF;`{D@Nh!Qyw4=~Y@&-w#!3219H4Cura zc+$c!geOjn+)77}PYqkA(NiX9#l|Sjes6GRxTH%6#gfwiOM^S{&t7$Xy5W02O>5>Y zN~4AiO=ES?+t8syB!2m;Ll%UUg?@9a&} zbuPjyKX7Ime&BwoM}r>hE0<^^n8WiCvJM`FPZ2V++dOSrI`%#9O+z#~yG~2OJH!`- zHm69#hdbsDtsn&BPk!;1htdle8Zj6x?Mzyp8vP3iG#uG85T8qAQMFrZSUG7S1D7etQf4th|C zKD-FpaVRZ%w8cRUr*!lgr>A-i6mo4L(m`fc0}$ySJcKd-@?)^aG~q26cnn$So3d1m z+7V+$Nvz?HViFb@@Pdw#7`M;<(DuWOF@`o3__VP=AmS*Tq;2zbH)=241ANAJm&<(j- z=S6Sm7=&jY{C2>K8-9T*WV5BO6%?HM5xn>lNzwNP9XLC8$)YrL+?aIX_rCVvz<~qD z0say-9WpLIaz+)~l97cP99af>kS~jKf9WA@!-pp$fG@u3=o#~^Z+(4(QB`)lge`|GC%bVVEnrgmL9z4z7NaiMJeAq zH*C24%y*pg*YoGjOXEk6RZ}Y(gQ2T^x@^+)h?Le7qV=oj2jA$vbfLe2OJMl{YaId> zcl{jR_Q);9sdnq!h0msUo^@tA;<#hK0hoTwf9&43oc=73grIM07M37V%aOXiO{SEznH9X2zJAcXUur0TFL_iH=(?6x2!WZe5Wk9&toE`NL6UjqfINHGpCTt+Q?HW88W;_l3^_&sYF5SEwIK|vVZX3q`5+z~?i^uumrB*a0t zL#J@-u)ZdplzGsJC#03DSLwQoSfXowEV~HCH->Qh6$3p%liURFKg%K9V+BBg79Dg@ z{E4ir4gNA7*^FJNDloEliKfk(6`gt5%hmB}^=a~&&PE+9W2o_fghEx-)udWgl5JWB zeb0|BNmqa8N9n2C@6mnnYf_`qWU%&p4{2)BU95xCV9lgA>0r3QI*(zn4vA|T(wx+& z)QGRPfVkLHl`CE6kTdF_u8!{1vZh7$>U6xWMjUtK;i-2cCz?Yy#OsMAzx~Scsg;g) zsIzy~*T1P%BDbZ%8Xy{~E6%FjVN*S7f+B~5{S9gO_%TAM)ePt< zI7l<;caK)X^r-T2hn_gmCE?fDKx$)2m~=R3QkcveoAZzINkgML@e7|xJMXjS&~rcW$t9{2-%GFp`;vLrRp~4^?t!O` zUx)Rwlx4n3Sbyfm)qukX@uNnL*#? zfH!c#4sVyq3WD5dUre7cIo)~ZJ?RtYe&m>*p0+;(~|XI{ect+=?WeeLRXsbR>VbkG}K2Qn@9RfPy18OP6{0G&_aa(L0yrPIN&SL<|b zSgF$9QO|%eLmpIQcp)Jd(HRF2JD<7>x~pYHnsLkt>4-PKF0ELzDs9lR>KaZg6PSS@ z!ge*lwI7%J+})EA4#9#+|Ts&Tf3TlO#~XAP>uwQlV5p1k*-Y3S~I>r`^hd@D_q0LBy@Fhe_;30S9@=o(da9opwTTQl-^{rg4f zCjD;v{w3+&pZzvH@QdH4hktoxdi>W{rzd}ZV|wlFPS&490aa!z{e zH@{CefB$D`)#J~mq1v-LLS<-4^? z;ISL;OjmvT`{|Z%en&k2A+;}9m{w}JYh(jg}umG*tZsk-xiZQ`^xy8FcCjh6G zGum{k#<*d+iqTt+BCqvP8_X2tKo9XN)cecyivxMuNAKV%!Uk-?P~37na_*le2+wyZ z|5;_Tc0;2bob^LyhCgRm^D8Uu9~q>C3@nEt&+HR* ztpV)v;y-l%ch{zuU-Hw7)8IjaRUFcupwNl5a~fqL!X9aC-ZGiM1=9)lACZI9LsT&Fq~K8JQk7CsD4@x# z7~IHkjZJF!=Z-RUeCZ^DKW5H#=!EtegWH|hK<@D1;FFPm!ZKT5qmkIPI+=Z}PH~?3 z%42j;nU+Ya6KUAo0R=DNOqa;vdN15+8W^;tBhRdv#B97k2CU&lzwdZ=gyKOf47yuZ zrs>BXonH336Vj5UOSCjt%Ux73MM6bkVZI@h%;eZBk}!Ux5}h<`kqO=Zu)M$#6{BS! z+MvZt@Fhc*!XkiJ^h3;rMl&go^`HY%mCiM2<8)Lp;Ld^s!EA6Q#N0yyvDi3XqRy__**q#OTv*|!e{=@- z0_z5{JmRlEN*aif0vTPz1sa8Cd&OE^{dVXZUX$u4PSOeBEiU_!vvE6)LSe{&QOtT( znDxVkYgS&@u!*H^oz}cz!Q!;`>A7k36VIeok35x@X>as`Tkc9v{_g5@|HVH~xBu|s z^yoD=YM=Z1G)8xyYjjm|mn_whWfYtSXj^M%YH#mM2c3Mp29VV8)xed9Y|ul?$%I$< zrXXkbx_-#eR5xUpZaY|$9{lBR(v3g3G%fn$BdJQK%QtI#%3uvVG-^M8op6RYRH$nf zSh-VZB_qY(pxO3j(KJY%>5y6Xr+T216XS$pL#mGiVH7RB`lfqZ0gb8^STBO zT9YH8&};ol{&QJi-gCOkPbuMaB8~8mU(pfaP#pL<4MCc5I&TqA4i{*Fig6%NRPXgBIoTip<4sIR&|Ddu4 zM3R&2GNE^}Y|R%^7DF4>$3fMyqJ|GPnJ96b#t5&LgM%k8SQ{hv@ zBM-}~A5S=%FPMzBUC1j2aX7SYq}pp;8n}Pg8Rv9uSia=@+lIsc+p*F{+@?m2+XX=Y zjcE#A8NIO=_u|&czAibs(QB|!G8}u=fo!BR)9)^Ll#*6$MoVwi##LEtTVd|Duo4j2m)Wcp`HD*>ik!X++E}p zf4yUwx-wtxyhnzOnR?5K?FmEz|Dwq=b*>a64&xS{2uJ*U;D=oeer7_ULGrTP>>CeY zFkV_u=R_tByi$yYkI}tSpt72R&eN!g<8+{#_CvG606z5x+Xc>%=a5fe#KLtX1c?PCDG6`_${TY`%WP&{VGz?(0X4)XD9`J!{{q+3clv z+?#H{@cZe0b&8ucJ3c}kVQ4aG9w4bo>(;iU5#z_|D!SdIvl}hvpcsx6W!6@2oFYtwBP{v_RT@vqbDTklP+ip^v-H{*ApOEXl=|WfT+-7;h542e4z$-&O0*Bwq7ktD@0vr_ybQQj2ua-P|bogP7 zwpSebx>M4cmbGz4gg{YG=Qq8HLr;e#y!}K64K;4E*v$C>7{L)Y;H5nCTNOV8CHTQB z;lWt!yg8!;eeN>?f&pIH5Qd_zr=#PU;Y&`Y*^%3Za_R>U zm2wQ36y69YKRRylhaUhmvMVnB=8?T*i`d93H7bwRwYH`%(e>T$f2VrHxQVA$0=yI~ zRaIRbYU5Dnn{&%1^rXnuWnAWkJRTCNh`~PL7IN8|Y`3ji{*_C#pLV3KqjLIW;#^kB zA<8qQrFB4Ml1M}sN}JBS$qxf>Sb;4wir|cDAYcl<=kO@6R@FVDwcX>$qmFsFx~_rk z6o08kH?=k#K4$c2o$1qNnIR(v$eyDcP6r7F`3V5Ih8#DmerQU+(dxO*jq9gwB_XLg z>N)+!E3f+IKY!tiY3Ae^Y7(eEbo~XP(i8q*B!7|n&6izreh?D@i5g|z>~A)$Hw5Aj z9TJ3b7;B(5Ao0*aZqpXpw)WQa+4Db}hKw4f#?7`f%@Zb!`0PJ@wvkiv+4t`9&-~{4 z-MqkA-!~slTT4SL8Onf8W`lk~x3(;dP`huKI`HS7_5L*P>DliCMF!dN+KLj0-qco% zaLcGvL@aO#ERV<@1p>7~o8(SOAxjq>Z#&=yoFDe503VkoM#ogYZu{v9YfhVI zmQV^Gv<9xii*i#YUzpUY?a?e+omQ$EUpeGlZM3PtzcR zPcSX?2|i1vLUZ7>M_=VY9Fn8)P}!Phb)MB>;_9+`(XU!02SS!XmmRPZKQ!B(!DKf+ z;fApy4-aC<4OhbT$tCcE0!BmL(cxl=d#%(mRb5C}??+5QvOZ13$zAZIQ znUcCSEAO)tM1M3MjX{C(gpTk8KZ=u%olOj?MCV?7$xXu+8X!@csq*fZG9F^(^ z4M|J>_&~b)!XIeMMN1m4gYZaP20ob1XC%E%hoVi@l4`<}mM{*F=9_OCJx+7HLx%W! zYlU#tse@k6@^&?7TjwoI^RB%<-TRZDrCa~wr|H%oUzYB?_*dzkpZz-BbLr*j4t?ML zgNxFA7hRU--*8iE*SQbgS3P``PDO7fQq$oEL8iq6PYl+egUSQM%Sr&YaJ0;sod#(& zLzVJ0?ntLvTPnI%EKTdQ6pTC02M%veb0ve$CAykX9f5A0Q&A3bL@Rti95NMC(ZDPE z9{P+xtS9K522r@D+JhLhN}y4Obc4KJ?b+>NnI0dK5$RG4GA#MD$g@@hi7Rwl#LNTt zP5WyLPLH-$uqVE6b_4toNANFNB zJYjVdGDZ$IA}y>DUxBxOZ}&MnB`JA^fi}@=ugnCC*_j@M}CZNbe3 z#suoalfV10{z)CBEaXtTCCiqiu{vb)>)-nNFEvQ1gE?LrWd9r+R0?vlrgDf+{A ze|r{3$Vwmf<6Yn=ZnmyjaM4dL(blxpKG4pMmPl5YiG8F{#*4J<$3PIKbmVQ962z(^ z1}xzz_(I>bW=PMd1JDtdk?0G5(m@ocUALs1eCkPxr)Iv9{{=n<4<0;h!jwr3Q`G)! zR~<^8V(_=rnIW5gah~oJ7o_X1xazfPEnl$}MWl+l=R@DU;NL!S*-w9( zW=xr`s!{{VPDoK9!mS@z^@o9%uu5sdDZ9rmx(Z7URL~O6?LXtnNb;*rZM2nY zzt5a8GkxTfANjeK(w_+`&}>!H*f{YspZ=RWC+R|sRmw-@P{`8WFT9c0`?qCbqxeBD z=T;zqDIR=-bxo zj&o-00(-=5a-xv{URPpt9959f!EV#c=YSyt)6Aoe(2~68kNyq!Wshk2)9jjdglH|(h%+SuGdT}`y~llW-XDMW1$l& zyLpvMDWD47rjp2o-z4X7M3>2vd+v}M4#+IyAVe|?dI>|M#%*Lluj!DE(P>++{hb}E zM21qmFLFuu-W~SF_#tql=|??P;I}jl8l!cu6m=pW{^JD(x?4NoC1XW=sD3DFWlQ z3~{qOqgbF4*Sx$s)ODKW9h_=Lj`m)4R(o`5cD{A~!nA(&GpR+tHtj+0)fHw{8px>D zOgldgrn9^lKyX~5KzYf$mp80q5|#m`K%rU{hyy3}dE zKaCzSBDHFX{-Rs%&}tW5ou`rS8eN~(tW*6tKS5}S+PtAtbkKH`GR8aH~P`5LBDq001;bFj3&zpMEc1PpY=B)Ry=iSiB7iO{m7T4S<;1`^}1q? z6*Yn5&FcY6di@=+x|nbR5}$Q!kl5{GB>P z(W?dQAy55B+>t*WE`oq_G1eXCe;@%TPXBPZT*JM;Uw?alaFRwprSi7wz(b8HpzeS8 z)&*Zb@#hy`l6IT1Gm0;oLT>{A{R!SgZbfIUSbWpLl92}TWmvOp{lqnV3{;dc6w;x< z*=GnDWxm}7hu(8V)SP)wr^AmvGJW6^AAejx9MrMh8(k;a-Kq0KI8%mvj_JpGg?^Vo zg>S$lhKkfmfaeOT681&5w60t<|Ea70aD!&yM<(5g=dvl%IbwGC2EC$_U&Z9~FPs!V zN=)pf9g~@rYt#j}TT~Sp#9-t)Z717z|9#T5oo8L3I6~(-Mc+aiCcO6>aAzxm{+KY#zdcc3i7d`ofi7$U=8Q^LCDkzDQ`deY=FP@vuc*hy( z@MDkqf$pa~wqV&BZ>^>{;kBZtzd&A5{n%tNO!TbE|A>_Qb2p_RTqj#e^XS4R(Jq^^J_#Q1g1$&&*tcJg5J~b1iRRWY6jhZQSN2KU> zVX5+_>QDn&4d2bW5_#{}zc$r3H>DQsgZ5q(TKPG3N`u=(Aq@Bu9_S}tDr!~*=))kU zUAWm(3oT`DDjB)IoSCI1gVLetn}LI>z~CnliH9O9@F7b(%LiY}0r|N=S2K))40qsc z1150zG;=l7;K?01c)~w(9XP!w<+;e{#KYn}~sC4E2?C8Kpsvuh6D{y^-gE3kFaF6xwawbcK6I#-^$$yR!$+iAFYzCis-?el;Jpd}{Z%?U zGUCuSQtJsLDAuAytw z9{Jf<-*6 zflnSBfIf(fbnc}EAnBA)+=rHHhD*ovETf5_VE5;{{r(VgtFZI;j%LU?y~ zT=lmf{n*~O-+Xi0Wy%b%x}uozc@Q~oSZ7cjzD+sQONac_Lk7J=za2#1_!jUGi^4cS zd4nO9klOGlMHeD8*$^9>1DqB=+lo@zdw*@#n zR`|q8?#L<&CxD*wv?OsMS+=UFuBrd{&oBFx2C{2a_j9Ojv>!@4C9`Cj3Qtf=8w7sM zYxtVOKH@_cfOT0dkN&uF?g?;}RopT&K&vrMe(kGgYDD#=wUwfe>HpHkApKtZ?5TP# zBtf}v`B46ska!hEDz5rwB`a;->#n(8HGI7?;glK#-R#ECuu%?#9b{naYb(SzZeYSE{8&BLt`&P5bQaQipFckh zA3JKR=AWs%&AjYy|KV@b8eJvqL#d&!wEamtF%)TR(xc871JMQ+4~93h0+n1;=l7`X z-Jr5?rwNnNe|+yp=^J1A%89+*o6a-adh9UUMgm(^vHm2B-QCOFXhi*8wu&UZqu{7C zHXKwNyWEH;!;o2kcTQ7>k)<2yV)kBVL3EDt9v%YD0aVzas*X}6X1OCZqIdf9%Ku_Dj>W)OoFDQ+qW-x8=Rf=2u}oOIYaPThWs-JJg9`uds0o zy+=mzg(StrEMDnMdlpUcG7?8+hXHSykq;Upoc)M|A1_yqL?8!v5H0)}MBf1V54_MR zxR5(O$Pt17BfLOVL3*h;p&XuA-JKz0LWj@1C{Gdk~ zRH1deN~hDe3D+boqdxR)Z%hZC`IfZ%>rPG6k3Tj|IpP&*!odfovHR|mM(AvX5xeiI z`|fv1qooHEUv^NMpfCd_=!z8Wr*dbF!3+M}SdBaa-z*!f)75k>k3NwW&3RUb%*9@1 z*kS7j#13d49Q(%g zl=7K$x)(llwHj9gCUph}Owj)P-FHc2G`lfQ2L+8kc>gqPw_Q@Lwg+t1Y&ruS)w*_W zvkuVPq%$b$wW5U?c%O06xjD`G-IZyRuH&oGwQF5Emtx3Xd!(uR?VFZA^_2J3tCMJ& zJ##PmkQFpqN3tH9&&)^R-?t_pHgR9_hxI_^M$0Nr^v{E2^jd+*x@ypsT-mvNDvjcd|a zl^X-J|9w-NR(3cIl-HGBkq?BO&bVlFUMH+O0m$E+>4BT#-rUu>gs&auc}YOGI!3;~o1!3atG^Ok+=_|W+LEk*@I2A!4TGR6%s(jOsZ*-DrAM1shVK{j-3 zpa$BPYW3Z`InV6X)6;&jLAK4KXW9JuAN%NsK9)vnQelKvZqn(risZT$d+;Cvv+5Kb ziu~{=2p611U|}E=VaRS+!AICAQo~O9Ra4WD7HbR6q)C&~=gvRxG93~y{!d_k!JV2% zjM(M;FMUBb`VG{b@9QG}7hZ#r$RD(y6+7)!^X@Vi{%F7GkMz#GdNrcjDLaju=z*H^ zKXu+d48FeL#P2}(yd}VN(l#|Z0ePhhPf=lo>6gPo?^L8pk*J8+10M}dWfXD@3Wm`e z-DKozfc64!TC%h+qvpYBekA7)0yAIp&uv9ceQQM zfoCJq{;zyxTBpp`qc~`wGiZPXzD=1vUEmOp?PM|d79Q=5ZqqF8W*wkbt-%Yz;72Ex z&arClSS4T-YK$|eKmkl}F-d2bOw3GvbcCIKjT~4PPC{dPz@@)j4#=^eQKar5D0Vuq z$V?NBrrXpikUJEDtJXc^5I|?r6{tEL#1-M;UmX_xRcqv1iJDg2_h7nd?t(N*%Z0~G z-6=Jx!>YT+(k3lwcEv1Nl3qqCxkW|HCz0@SWcCIM1OL#4SI`pnkax(}yy6Xv-^do} z@)0k-+(^Zmp$b}b%sK%I!w&ei(|Ws{E(Nz07qA|Mtsz3 zN%=!J-PxJ16Fl~7FG2v9)8=+MzXmsFRkFKw-+T56` zx^+84qfXdY9M!r<{-C$MDJ__{D0S%yJr3ZrE{P80OrA7@;)8ejvyLJQ)1K27J8p{E z`YH={O*N$T>g@XLh!7U8=HC`j%VJ!FM+h{8gpUq#yULBB!~iqFx}l*}ctksSTJR1}ewKxA zSaw>9IJ746pw0`?Qn;t*KH?P*wZnB9xZ)>`k(blkg9he2)$1k*uL^=u@MK>7sW_OQ zqijZRirirf5fu3FjPIUJJjtWw#!O5LbCXSnszVY2}9Qdv?&ivuxIdjesM2@L{fNgKD zs;br5Q@YVcE3g`spDA0((~w(ucljTJtLR0z2`mc%`SRN~=CRJrRgEA2moIY8v)Jf<{k%MGf9;@sod&m8?j-+5wy9uxyZ`m}8?JxZ-+$^K-tdJlou68teOeQ4+5+a%Lkv+lny)kY^vr^}q9?crT7zd;fNqxr zdiT%s@CZAGw1xJgergL$8aqBMP`~LT=YH^{uC8?tz0kz(!1q6sK(q?~XJKEEP(5v} zYw1o}X?WO@QKM-UqYf`K@N`P$9EETcyl9;dpOSVC8ahnbBSxP~Xrsxvs#uDvnWu$w z=W8~XYit6Fg4`ps!olHJ9ooz8{i@3R^kWK+PVGN0p=kssRlimbS`Y zoe-{FVmUtzYa<|cV-%L<#2nJbHCa0!eT4Sza#flJC)6n-(}Bvg=v}K0EVF793jFL2 z!+bM)r}sK7gB6fv0u>m~+yO@X*)Us3#qQ1!ohSX#5u?#vI`5#SR^yC-=%mpB(N7*R zIvX@9T7T2|cY1)s_FM=+2&Dx--1QC_g}ZqX{d8iY(;K|u?nWEopim8vnjsoZ)yjsY zcix*GQe|=XWxq*_9(*D-Yi7Alv$PNZtsYI(7qaoo@%DY&(Fz7`nEy%cTmA5&s0C?i?OIA9} z803z>*zgaiphGtUtlOxSHoK;#S+i1)2HlXSWy%T}bT$AAP6JB1VN4LsF!tfoiK~yFU*U(dRNF^}A zc9`cS0TuN*4{s5yPsUq#gv6aFq5tw%n&o`IUCh7-#T~O3&w2WX?|J80X@t(s;Cdof zilJws)?8SJrCgbI>sf@|f_r_U?xCLHXFS$bYpd}-S5o0lM1vxJ zPIAlk+<4i_Ja$j`=G;df>A3#tYtu;1dr=!H5~%X35EOKVwqS>s_=)FIHsh8<1Y~>x zSHidqEiiIN@0fw?P?`IxQ%-zaL&K2il}P^rEHyRtrylz9Lw9CN=_b|5uJ1{IWThX* z@{v>2nZY#qvr+X-tG2%V=9ia~U$=)rStVEZX+OE}JKy~GfBSaYZQ4vVgd+`u>Ob+! z3So^eb{aI;?bt6&mWN$3EKVUG1Vmn=tdN_!Daew!jk$~FrO*81-=}>JJoqb`h&iVp z#uv=0)yL-@e)Q2le($;Ot6sEZ3CR~cy6~Uq7(KZiRkr&*ylOJt@(L;x) zjcRAS^|UiOT2`*S@&zM$2crMA1h!4V+@I{Oj%duG_0BM89#;M3f)`DUz1|v6Q^7&! z0a!!wMgiqO+kTL);35aP(^N14PD5SzygyfaJ{LbR+oP+@+B4&2gz{&PHdkV;S0{hf zvSn^a_sR|2)@s4FX*P|S;6XE|YKBou*Oe(8pW>jhokCDRntI$Vyg@CRM^BA>ocLIrI&#_1k!!9$@w8LJO z+LcFImoD+D7iN+1_n8>hy@;ohKNP3)2ZFMRO4lRS$VkSz4`UcP)#@O<4jpLJrg$2- z`p!6bAsgjI(L%mix@e)&L7jZjKt8sfAXed^?CMbGc(0=m)4p>$(Q1$?jv{xWw(bdE z{UEI}P?~u4fN4-X`m?+h*MvQHNt?Q~UB?x&=&V&>#aE~E07$oI9(_z(PKHTVq^n$3{x0`kTL!*}I`x`ne6VVJpc;_cqbkAY+ zZJjERe8_;?Z*>|5Zrt1&Upt=9M*^jh<-FZ5U>0q~Wy^0oB5m?JAh)9qyp*c9_pF<* zx#rGKf9#WKvSxb*Y4(aGu<*iamWuvh2}g7Br+9TeC7`0q02aHo(SeMlf&(os`deTF zg1GJLd^&%@{It8aIeq@i|Mczp`leltU^{#0oDLNmooR#WN#|k87%}5I2wo@$GEa~m z_7H1%;tsrJ&Brz|b2?O99Cg{xf1R2d2c>$|{bhg^(ri?|kUALBwy!M_v==^kTL^*? z_vSelO)l$Q?g}Jy2T)*OKiYO1v|@7)tsa}Q>-66djedU-rgqSPM_+#U%XMZf+pwbk zx2#}M0-&rx4*3y0OVHGHL$%WF?z`?uvmbv#jexFgJNw?38X6z&`OtZv`Nxl4`G?=9 zU8c?Q0lraYqATzcz(sHDklnD`z48s~`tUb(o0!Mm-@kka&af_Ikek}A8X(`G6&#(K zeE9k||0OjK8~#a!4nYSQFT}HY)P#wD^Dp1{s<-NG(j<-#MOLQ*Qk;g=~>t`L}SJoO(6`T2OUPP^O7Yp8h+|vIP(fEnU8Snt!|w+H?39Yc%YUw zg>!=$A)fMXS*8mITO(VQ=l|ROY_(0gy`jqm!`3rh2+3F zk!3g_7$~3<$gJ+B6|2=yXC^x6vju)KU&csBOL3F}hz2(}fQeaD`7!G%VE9LtK}p0# z*chG8t^gXJ;1w70p#mT*cr8XT2gH1+Wgz3Nh8X37$WZZ%=Y;PJeq$$n0>%R2(MHi>X ze*UX;`B%T0<~{U?uTW#Av_w+En-<|_B?!yW86~HqNaUn(#LMWAf=W;MHeC>oo8X~? z4lf-&^CGyif&*BC^3X@*C)|*uaH%54bZhj!OZ(evM-EN9zv&I>_`m*e+U3|I(nc*` zU!|qzn{+r`4Jf26j-RMCWDTB}2@=iB&C+OB8uyBpbuI0wRkR&++N;v2Lk<#;$~Vd@ z3>Nfo_@m++bI5)|s{2=0wWRii3pJ3T8E5fd^auR#=?=g3l6b-pf2>HMqK$zSQD=Qa zh8|59DEY%%8?<6z#iAvtfj!|M6>P{-U&7s}j`1K3x;^vM)A_6h@u56LnL)mQl-3Px zY23tdY4FZ7b!vYUeU_x+pp0_|T}W#+15X^RIGb)W7KiVfadtgquF%0_Et8AM6;KRnJNKG5+4Ue#eZn?Z8 zPHhKj)Zv5{qrP$KZ;%&dCM%N=24RZ{U5iXm?C9yrm5*to^A7WTC4g+L&pBX8i+GnW z(x}gFP$eGehqL{{Tcc>(m7%aY;?kd9bnlP8cVU_}ZH8}2sOXc+p&&doirmm=O5I@> z!1{Zd`GB?amj3d>sp4#T6)94GWxD{BGt#qjpH0V|ctSe!+_UagFpbi0Uq5&4I&osLj^YJT#s7>Q`yd zrg40@zT}_PBSwt<*^F7!wPH&LzuJVpV-0CI$EXepdEri;q#mi$WW;s4T2@z`ept?o zMsF`hI=0We%g!~>F+-Ksi~SR|J(jJ|F`zWrlvRj`}e+EJ#57Av~<~W z_Y2HSX2RrV0(rTu3$yyLJTd{!2eJdxrMBZBwL!*>8=wB_eIH4)AAR_nS^@df47%gB zok(Dtci@LrSGUs_M4wz3qjWZMbWXrM{OFKyDl?678(=Afa~ROnaSFW=;upXEMKiD* zcDGp_ia8HI;n_|)44c6TE;VA?)hQmRQ{*Sjn40E1@SvAzvu~L_sS#hb_q2}Fa=KdW z=hdN1Zb*x;Xl$#JsZ$&Sgu^t54_6i{H5mQnzUl!wS$*6t(^H3*(PL=j8(6)ZK?>KU z4$7l<+?A%xnxQMhG!v(efEg7Dh7>IgniXu(iRQfBcOuM4FshR#vN1p<&l2J1yUJsW?54a(CPHZ zZ*KR~(Q!nCfe4J^bD`<xZp+fXS<>zGCf3e(ItH{8n1w9^v=7cvp;u!I`R#tDQOzj zQCp#{A-Y;l0*FvbH^S>58m%WN72o0|($3hmdqv;18r;%g*bvPm4;ww!d8~@Y19YgP zU#nFxqj#H`nlvD{?D5A{>(F4umkzx6QP|P}u+BIxMW(o;Aq(x1rj#pm=J{Fw;1MHw zv6)tt4NJB4rdIM{@C>>w8}hy2h;!OZEp4Zfufe5e4Z=CJWd>Cmco6->v8xU#)L{rN zFDkkv88}L%;Q$Rvftz%JfS?)~b)|88=&-*5^@>mB3@bWVaUhxo>uiX5IyZn@4tCyq zPo09RLy59{!G$6Y=zQ%+6$AN_A38*g46Ia1cW4-RK*z37B9ct2 z2BjniI`ADTPm7L0tT{1gz=O|c9`tzPHwp@4+VS`^C7|^cVfrLmTyQV08R$Q~0yYMd zY~P+{;0v`~8sItfbN}%9hwjkH^gF8)Pd-Q0qHNfLM|~Cvgg#0NcFSc+mWg#g$6yQv z4R6DTr?Y8x!=-?QZR}a=Zd(D19{-zszcsRIr)S%WOVa(e-pu+0p7 zdHY-6-Md-!)5I|o)I3l--Q4B&h?zw<%(SVqPD#Jq$(3_yw*diIbbhhhrJ_m5thfQ_ z@(Mzd%8X(FKa?T?|5zx5-2^A zZAQzydGoqhf=+g@>8B#a>Oz-_Q=JR;rcMJ1!<)=j-s z=&09;=p$!L*ZypcUgD*2y*ja$E0tJMTc;WL%Iuj61xPVn-8u+wzr9uM>jZi2?WThR zFI-o~wH(bF>3!gq+qK+gXd0`TwpK0QGVO{)QOHE5Y|w1u@_7q17$KR^q1e(0Cx0$P zka7QlMKTJc(Lo_7GAJDz1lPY1LiX~ufu}gsBY(@?Zgdu8`VSPilNy{ydJ!*(^rOM= zefIFr9~}nLuF#5`87>ivCZ%aqG?Ibj*R18el^I;&#IJ(OiI1#^j&v8t+0EZ}x3m0- zBjO2r<^}h#2HkuFLRe4;(G-c2afCbpK~Iq0@LOgQhhpqWV-DU&hr2fG zO1|}J-tD)^pZ(mDGkEzEj^I;rw@lur~A?{_wYqSxzS1(m=tg zdGpdHonuh10VE)tz8RjompinqeNUZ+Kkv~e)8c2JP0fQtKgnCfjjpz83(iNj`*M(cQ*G)um5?S}O1 z%{Qf8UUrBMd93$V9-%g`-U=a}2I`iAryhJv2MemqP$eDl5r2*wzLB54IY3WJm6}!d zv8qUz%rkErXqM@aUx&&d`zw5*7eDxwFpUrJ?v73K^~xcE*kS%`2^6W7cfWwrE`9xH z59`$yZ~?ph9AejxJgi+^ZDSAq_{Tr}%<7fP(xmYdHF%^|cSYv}V4n2gjk*?twLib; zFs8p$ioIVj<1n7$No>~H2#uf10}2)y2Cdi%vq3k=od4x7?7!E+2Y*}6{ZSfjTRn8` znTi|Dz$;&>xRg=e&b0H1T(Yz4OQs{?&-H(Q0ah3YzAK+w+frM*>1UVzA}yFdSBKd( zc>vUDZ91^^l`n-f^u=Xbquh_2gF^ai}_M-Co%MALu}+viL?%_?B+axkEPiQZ|KSgKR|W7pTxI z1MhfjR}!F@+SW#gud9_@O3cuspegc+HHS_B3fZZ~dztBRCd=@2+@y(Vu$CZK)A&^d zW;kapWiR=Y$#~;etr4-FwQJH-k35l@@=Uoklz5Z@HmR}Pp(VR}yy6vU{=N6779BV? zScj%*jxuOdTr4vgqlUO=ku_7mL?p|6p^;gvhDHWz!5U$RzgvDax(;ppt}|1+ugsCZ zaIpuzO8Z!c4I7c>Jw7|Fo&9v${eb;^c!V>fU?KT`Skb$$(u9W??at9=B%;Oqi4Vd`SiO>Sjm|rmu**z!AQ(NC0A*A*+W;2@ zQ%J4Ej}`;~Vh_K*xbP`)02i=9bLG?g;)UGs3)$iie8DL@pLD$S!frTyi?Yl|h8GU@ zsgn&hNhf{cJYfjvW%GoQDTL;Dz*iYa5ncwA0+4>PLMS|)upuLKDm#0mi5CF;_~ge+ z--QPnJv30ApYT(XaApB-{|bBwt8c_eo~c&nzkTJ(^x$v)kgoXph3VldZ_?Fq8#Qw> zI1SNY)BxoNR(Zrqf-F1HRMH7aRY?v_Iy++GxY4P$t2f>9qf671KfBCXh->A@zYKKM z&zzJd?6*f6tig$guedgKX&XtcI=7^Mq=^W&jtM7n(hqmfw1gD=bh(n#&?C@P*w!WJ z6tW^K(N;sA)Ae>so}I4-4A&Vl28SRJK$JIhtOw}^ie2~LKRs~u^{HK*{egmwtuX>s ztep&ssIr~B_a6F`UBSya8Z^ACwd{2Od*F2_Mx5@hRR@ZUEfhnhOiE3ohIl&>ywuc3 zIWwTHG5ztkSEl+ABht)$_RtEUHs=ZSKqxJD21Hub$zOc`!`_lnkqgDI;P`f)7nSG$ zgDAB+D32>?tOJm5BN+j&A9}*_L{XDl-LWytb|Zw~}@cRi53cD$aS1f-tGwNIiB zPUe%@!c{KeZqNKsa@oYo1xtVL?Z`f-WByYs_xaHKKCz}jd2y_kPLtd+~hq_14?)w9P;n!+;T z?ZV8N(?Fr>_5n0wOh0db@f~h1E8#8sRs4YiXnQc-Gj3>EzIelxx;k{24%DKYQ3+(q z`loLp6*qK*@|-f#WuQFavcSWed4@-lT4gz9FQ0}pEMAm#(H3H6ze{bdlV0;Gjcabc zyu|lXeGeNy@#%wKcCZGbv=u8DM-={Cgs za?G$GlV4#sU$}@H8Zu&}@G@@X==6uHu1TN&+kf1rd&hNgme=!Z1PV{y z@(+?wFnvdX8;VBjoCY#5#jiBj(M~$F18MlGbM7$#fic5GAsp(71GAud%T(#E#zlAB zt44O4D`d6ZP@&qhpzZT8a-?0 zG-&ux?U`*g3d_ZWi&4!&4-k*b7w8}=4({?kx8RTh7FqZOJr2lsNWqOC?9e1$={#en zV6vEUV287mfJ0{L{IJAcjrHp8jx-T07iln8N(ZZ*dA=NV?ntM_BjRJVi^>^R3VCaRfUURW73@e$R!*Sb%%BAN07~lxk_0a6kgTSnyZb>o z?l8|^0{!Z0$rgo1#Mxl=XHoRxvE^Gp)?+2xmR{S}_sWfTTzC7fpZetA_j0fE@PQgU zrxVY;k(8O)nB9JIKs7B3c>qPeaXE%vKkQ+`9eb4H*~bWhiSGhm%4^(9m^yXhm#kQp zM(d24^S<=CuQd#8eziTf`QtHX>~0Nm7g{X~@mA_Tgi*vsJ`VT78-Rgvrao@W}5-Apm*L0bPh}&gg&L2T@q-C+2K>2fM-AHZ2 zoBiy(^x?D4)pc>L5B*uh>;T$k66n_`*k&|nIp_NOJW`xTiz}2^>7hla5<%URE!(J5s>puMv# z?S14Cscq4M^w@2G)NG;#%)qHeEeFdDPzSO}*IqFr>~cV1+B7oHoz9KA9?pDGNs#%e zbmTrxcgXi>=1oMIRc7DoG`ht9bX4f4!j>wy=iDG9c&Tm_4Gx%HOz&K8r)0Pee>**STzN>Rh!b z{osNxroH#rEp1vl+p~vM_RQY70yVx0(ulG=an3Tv$?2hRbcP(Bh@8H3-sP^iNf$a5 z1jD;qhov>?e1chr?5nK|nrY;ZV1ldAAlf~fD0h!A;w@u+5FA1&v=WrUx_t8$GKs?2 zb_0dnoNDH`2$sqKSw%Se120PjFENS-yJY?|cDpg-*`*a3y*jP5>_IlV3|sV;PY=R? zztCyG=w#Vy-tgBf3=?gdrQPj_S7>#J27}c3gIc47KGS4o2;h|*(B(p(bV2U+acp6e z1H1+vb7&aDsT0WZcJ|}fkJR9nmaVnVo1dQj)$h_>-}#Sp!w-I%?*7d+%1d|a+P6o& z+GOq{Pp2pEyg%J@`5)3%7koS2^_8!u<=0;?oYM7C<25M2UTyKMJjd*PjXJmM<}65e zU-;9s_?qi1j~WKCM3WnCD1!pP2eR}sZtM=9SuhX4$Yf!dCz#N$FKq%I7-qm(!oESv z=$9{C=#>JratTfcop?wm_U(6cwWmW)JT7fqI5$0X^PRdLOJ`;11bz0sqpU1j95PCK z`)5rRUUizGkGO@SK?52C1`kqORR>~fCLNvic8cc4G-k#ml^u#l@m1Gv_7;*gi&vz% z*ZejO-er%plg|I_*-ze383<`93zPNtKQu87!W(m^Ory=&q_$^u0NC( zdRz2<6bRmZQ1K;LGLyz?`a^A>_KhokdC4XJkG=N*@boCoynFJ@=A34uR;!#q$;v2; z3??I4CW8n*z+gChCivhC#w25WWDEkKjD&K|Ifqr+m3Fm3o73bx_xzsf{?9Df-)Dl* ztk|CUzi+?Y)zwwi)j7TNn_vA_TF|U5CtMvVox~K~gI&AukYoIXUiw>Z=wRe+L05z{ zB&dSRo^m$4(FJ_*=Z*2VMX3Ct^5D63tJ3i&o|HcD(T`kQ*VJ@qK)s+(i^QGWLUbl4 zKH)Iu-w;UnR`|;n!ThHFyl`A~Eqn03`@XvP(MQr`oyieo4@*~(>WKs~7-`L*1WUfD zkAS0%5akp87{6t=u+W_BE=vVJ@lgI@$bVg$z!zx6l&%@HiQuW|f!~Nh>^R9QWliV^{^)|k2#U6m+jOo(>F9?j2wzmm$n+g!jv-ejI##S* zo<8&0Po+H$*#BV79`5l7vwn@vIMPb$55PTw#x$j}a|_Xt}+>Bo21>KB8>oMqowZZ3#DL zEPeCGEM<&jWk29hS{jv%aH%82l5+M0$Hvf^rKszwu6-*%gp$m`Bz z%?`T5BUtWarf6!{OybxXlhgEr{vs{C=GwGHjb#e(KEkx^~Q7Rxs2yJwvGT)X>iOiZ}3zrMt*NRn{N3S_vs5d!Nr&fX%SN;Gs=sZM z@`hxQX+p0gEYJQz4{|bHR8)$K*#Ap|X9WO4^s_9{9i^Q-SrT8X+4h>rQ=Kn+pIetU z-*rz~b?H^?mi+vjwDcEerKiumAg#OM#?-x1D@ruuUN@~-o#nBn4WWDBL2=b7 zj}Gc|`jwYmpIRSyB(dv@tN9dTh=Oz=ZVi@UEPwfUTR=eMe1Xmd3`|tyr8vw#u(DGz zB5UU-eN(;+=-i6MTDjApK?CbH?gFRGh?(jt-_Jf~+QhW$k;kT|ue~O1*6H;VbQoWc z$|dmi309Nisd@L^6i$<&#HBny+B9m#Z#!xD}d%%u<%o?Ye*MQsS+d)3kD)+Ex) zb(mfKsG9e02eRXQR85&a<8KZ;SX(sJcFWvX^2snQw_D^V)h8OLr2|hp_UbFIVtdz( zI}Xcg%dg*X(|h0lq133=XH&;bcBhpDFFF%tM{tB&X?x;AzDGw4lfQ8X4qZVPi(hf) z?Rr!|gjV(GZ{Rz1NHx0j&42s4wx~^L2KK*Y>gohaxY0Zjf-eUv~x$`lSB`}owFCdjw zz1>SkYPO3A+H%v!f@tyd%XfHFcE2Z6DI zCG6#GH=Gr(XO!>|J?znT2Zm09(q`I?7(nxP1|&q_18)ST14H{7(N<7rJQla$vSt}K z;XRXXT$;(zp6K<N zfS--RLx9{_j$NZA^EDGErfMyVtyYKDKb`wfqf_Q#xd3) zJXLbD?3AB+#YeBU9dLLgok`sJ3%(RE(`fl+lH$Aw;el7viF`$(?V?leE-&=W8{^KC zV8{n7=ijt=aay}fv+x>_^US(nU8aCXf0P@Yy0?D!!w>SA7x!Fpr7Fn=we1@qQhV2H z-I<@UaGrP`rx5TN%G0E+Gjy^!gsM+EZsH`vDZ2HdMmT5)RO=r337XY^>h}9m_tHnw zq=OGjQy0$msvRMUK>_I1+2s?oEbif3?oRDbElt(Rvp$0WWhI}%Bed)1eedKom6!NI z)3|950oaLsD3vuoms3WG#oIOJw$$X|1^_=A*oi?^CB-@pbsCOlgF=KSi?Nd*s zyYIaFWHrWiFy8wwd+g3T&i~@)|96@-eWnj z;Q8aQP*5O&H#>T}NVnKEr=djESqnC`mnhMm{NA)_6{ z{QoJ;pN5T|j^%FT6B}AJ%%Gs2b<~@NW{(=|{dpD(P&Y<$5N3`rO*;8mJ!^;aEOgE^ z_(ex0l$XvB9k04^6H?1V52n>mJmI~$bR6h&xS=3Rr%sJ-oHQowcHD7l1V542HDY3c6jj;usng&8!JW?SVdF>n0Lk~ZdKKD=m zk}f*?C!Q@FWU99i0ls3-I9wPKo!lur_>OcHe%$GmC=R>J>e*2W8sL~o)EgOc-+k-4 zjXpq->j2f1(^Xl5QwIS&6kx!bXgw%kiO(eIftQ~6@UnwD#W))tIxsmDNDT{q=+l?p zr2!cun{t<|8EuWIgD0>Q-L)ND#Hn}S0vTgGY5?l2gVtrse1KV03W5VR;|#eFPtZ5v z2gWN;6bBBb9rqv;@BhRIAcQKvY&TH^6upEfe4~HlOTNL6pK%+?F62EbRi_(z3#8n- z+FNyFL%WW<)v5Y3r=|%9?vth;e?*#o%%N%2K8w;IXCY|6IQP*9VqxcB@gX}p!@k>{ zku|x~xP!lv4*n*el4nF;afd|9L4<@nHD0CF60DTC|Js{1u%KCZ^>>R7@n+^57AZGs z$26whk32fHsgwPz?KY5Y?h7Bv$q^GaDF;%Oa z5!+%&_%M1Q6YCVZqF*UbL$CYOWR+Kxp$zVO&?E;178(iPs)PE5bO4g?UNH6q{n{9PsBa!rBA6C_@dafmwP9lC1(KXNIS9rPtI4@N2JhoDBhZLodw`cIzm z{tsWeVa?h!YpU{#>RNamp6|?s_;bESK63CN-H^oOVgVS`Wp$}9>=HVT%p!Eins|!r z0SkGP3Me-YS{bBzX~VY7sYO>e{`9P$G)$b{e2;uoGQ3bmgNT&1`~|^2`OZ>xUeU%mC`Y6$*+ z4v37OGUcV;{=eUz*Qh?g#;sdYjSH}>n~E>UB?I_BQyMF==&6My{FE>yc?mbMgp z>GS`TuDIXpDPFtV`RR ziLz3%Ty)%2_DD&K{fk6EVWV^wF7OeSpBn6(Ze86tCM~|?s?^`!nd-S?Su6lS0|8%+;&w=f-F+E2lWS zQ$lW5hh&0AJ>f=?yLun1*|D`tw5RsYn^VKgxoOt}_toKeTGj-;3KO#>f)yR?lV|DJ zL)YG-&RVPY0%uIlkf5Y7PCRtRok{gcg+&I&kAj8)1cY4Vz#Dka+=CFKk$bEqe!i#- zN6(s_YQ{}TuQ>Ic>0Iq=9zAz&&lXy~4q?thzQ&W|ksTZbJzji34`~U%G0-4qfb@$( zM(*n1+Af+ox1dM&k3Mt%gK5UBnQ8Qdv7T}EV1+t&<{t!v2aS6yyd&=IX^4U>{BooU z<-e>irbT!xpZsA+=>!oVZsMVUF0yjuax=347(y|N7E@87Pjc6O=22SFuzu;XG^lj< zUTy~sN~1#wGN}v8(KSPl%wWqWgM$lN^s3Rl<>%?@X89Wu5jp#W~c%rl=p{go&1>jGt;719Fq=x@7vPhXPlN^a@uRsUavbb?e~UL z(qZp?V>;@?r>8w$|B6&MRZHWv%_1sHqC`-^Kk|qHJjF-aDQ$}GBPr7pY?vSh@ZcR8 z7~b+AjPy_k^=*Ch;k5L@N7DqYD2VeWlrHe5pC`WbW_Eh+zPqP}8S~PU*K3P_4)PnP z!9F_b?tBPl@|>AUD-AR#66hPF+ZCX#ze8shXck}0sC;VB>GP9PpU%$UoR6l4G3mj} zv?RV`OPYJs(P^ywxc42I(RoibI_OeiQtx28>!QnrM`fl46J6=&h6VZxy>!B%*~un( zSw@mol}_ECG-a{})9^)pz#CHXBd>7|NQYKHxTAz$B&|FVnSd0=j>wQZ;Mc8-r5};x zJD>l333&X(iR3WIdPv@qvSl4Po{yXm!(Nr7u|+Mp9m@=?Ui#GQ-}|039?*KaG-m8!%HSv~VbRr)6Lnum02vVm^~4Xow!G|b?H-OTR}bxiufPk*qmwxQ{TI+-5MRBT8%CT}S32CczwkUor;%v;C{e$B0MjGRZ`P1js? z-E~_xZT4(1{1lycnG5H+TsQCH0e{L`(!cy6AO86FB!D|%;f8da*!e|ryB+{sAC%3l zZQIf@M<0N#Qd6VhJ*k#UIQf6kMGzY_-cMwsq+c z>HF@!SM^J^PB+~l4I^7;edh1}{%wyv_NcE*b2*ZEuB5wkCS)<3$07MxOxeqA&H^UU zAvb;@+mNRvn&pYzb+6uolK-=-pH2VpkDpD8_TKliax!Q^H|#y;%m4B(SMIytzUuU^ zQeQxIJ8g6b(U10N&_pU0gDt+OpE*;f!jph|be;9Q=6UI+>u*ly{P2e_*X+&zRsgGi z!Lai^vL&Ea)eCRh8~U~l=wx$L2koh7P_|G2qx&rFqAwjY8tVL^n1FL%^B65b z#l-A;D7U}eAkQ6JA*65a&aFIawcoaX^QLt71sA6#HFO)8(G(1O-KhwfP1AH++T+CI zlv(=IBNwZ)FFLpyORIO&1a&4o123FC+giMLev}T5YSc`xy{SwYR#`e3qtH4qxK zlwN7#Q9a8aC>iJ?99FsW=P$WKbOmqrHzU9Zh@U&Uz(KDJPxyCQ$&G95p1JaxbnDN~ zOD)S*r#i`hyaqx>s{>oD4sOi&IcU%#45lZ?9r5M3=vaVX5eJ zP+{t>^V4yE^|th?54<}atPXm!I>V#1MW&`l$XdE}2xVL9UdI^>RcVn1zm9w7ThsId z_LDqfq}gexbWu$HccgltOQaogb9~UIpUV^85S*DAY6#0o@Hofm?2YO~>k2y!`Zeh= zD;k2n;!yrRTR?1d>fDHW9Y{Clz(Z2+=5^`5E3VUC`0;{N97+oY2}ZGchjfBY@!hCF zKXj*Kn+8@i+cT*0pjLT*P*=ruYG82c^y%rzTklS-kKM09zXdv=@Nl1ePshDaG6au? zUcANSj!Uji-78jVa7U|>M7YZn$s1nzcAUKVK~rAsVt3`UdNtbUq+<*tIE*kb2H}Cq zUhzo&C}~X^7Q0~;gd`p4>0$PLN9#Dk!bmWZAX4WyWJr!EV05ly9fyDVW1o1IC9qA(59}j_FZgqwEgaz>6a1s+F1h6r5<(vhqK88xFYshs z4ovuLi5R5U#SJ-DKEh5Mjg3ud>GEai;6n~cU--)Z`C4^#-5K)TKGEdx{F^9S%##R3 zM_kr9Vwe~4a)U3}DD{!Ohw~MLMqwTH7y8-v>=RFY^v3IM(!rdRn@V@d-6j~x>5|># z0Suk@(1qZYy1W?Djm{QuNCR0|C=RPKQy%uu@c`GN&Tq3OGydY}BYvgU_l~%wHMxst*qvMGL6tuD7k^l zUSm39`J0Yao%Y{$EPX27b-}OGp>KMf!mBf$8wfSR*Rpk+XVaeEXP>n7-h0x0mtT{P zdh=f@19t16I~~$Rhe&rYLt|8)z9gug~J`%PRqr-nAPGjq4}HeIi! z>z^8$7o_?7?WKVNU6ZFjDvW;d>ZRdo^Kt;zmNgsF(^p@urLa2WO0#1zvrl=zOd5rV z%Ldq0jYTI<4vO0|+;XJOLMG7(L@dY+H$v#=QXvW#K^d0&sXa4keBq{})wgHifsUr>KeQw;ZPs zp|^aS7COMlQ=fK`Ke7Zz$LiJTmh&!5N4(*6UID^2G0+6KjxaZ^vPWKI002M$Nklj!_(+WiIr=J7$^e?>8`G^g;|aR*YmF8|d9`+jTp-JkjBr$0L7F?A>?70H~I zPnHo3y7bJl;#JDAkRoynm-0;*>#JaKbNfL73lx4Cok52SH{yyiqCuVb$DUrCPCxzh z^u%LN{QH^T|KUCo_eT^cD#r-@d_UVozeWPZiHR<6Twp}eXPE^d_-B%M=P-uTsUz8E zM7(+idYjKb|5xdRSDu(gYtXv0TdS00NHfR}pXZhyx99!^>j7V?u zjWelEFr4_rfD0TlOj=MD9)H5I>B{piTEl^(JA!GPFsl8vuYawV&oeMvqk1j!4Z4eZ z=6ocsbM)gx3w>|Jc zx<~gnkJVm!4xQ=~faBExVcl9LzlZkTRyU1H>+ifLEfMU*$>UR_8oSlZl0lX_8JpLv z*9?2Tu8Nu>{Gvkx6YNvw6m1T$8>7OoXIn>l=Ehr8>C~kKhaIL9@f%Z@_VChq@u~9^ z1gi7L3RV%PyU+cVPm$JDHEw`ATjtKl5P!i_2r)7+MEM?i;qxr9`0=QmXr&TTB%Yb0 z)bY%v;&g_WADto!8O|LrbCQ)$+tvskGzLDH)<1k=rK4acbz&5@xIt4XY|5y)VT-$A zDFh=7^stASE)#$5z%s+g%%x;3LQ=I>BGgI7ZCf^{CAZ$HJ>ZL#X7wr*8Jo%-4m#QT z3YiFx@P{F;=)45)>ihsHZ(v*y=Wnqj6JhZy^asvNFCcE(fIT~oy77*Ql5HruhTN*?} zWH}7INk0yWL{=76g>k`{cwnJBe#pbRC6{Q<%3Wd1?{NNPuTo{Y?YZ^o+1u_-D{j3f zt-t#r-MsL$20PZKehrXSX*RlA+X8BI2tsv__-gA)TOWHWJ*`_MIK7=gACur&X~=;F zMJJlA_ogXWf>(T@4}TlWS>cq&EN9Va{UyBMRrqLTds5nb&mHNe^Dgt2jv958ebtq8 zuAhDAg5{L7lquDkqoZ;ydVJnzRruX8jx40>nxr$T<5+F+n)FfW%!tLdleZBffU5XX`h={GHt{ zI`3DVyDwOvrf#qjJWCVJqjXh&eDGJy_AUX7w_$k)fMkZQBfEkJ4B#0GV;4Cg-^dq1 z2X#obwz@5Oc1iljFa2XW>ckU1s50`b2u!FyiD`8`1osd)jGrP8xG_r=3(VtY2Q2;^ zagV<4s~)`L&i!t`^$wp!Acldh?p=Nm52rE)quBB^AB z%q-;ux=`GQ+W{$qMfh8maJUFd)IFN+%gp+^hqVa;5e?2PnWqXFB+$XM1T~$0u6Et0VpZ1p1+qbQM z?plHDG&`sSMoI@>%PYGt=TI_feMRxDj|eu`s=VlUcI#j#G79@Sabr};Bcm>0`_+MO z)M?AH_uQFCKvr(O>1>c$JS&Z>l$u#?d8kpZxY%bracbIf|Gnw%^Dp-O@SHf`uRl(P z-lXNnGqtRDk`B=t)UyA@7hje(>R_EI({wnU;M78PX4$(a{^1Wyp$zMR4u2u%AytV& zKGG@Tli*ZBU>BB510ABE30ewm_BT%80yc2tlZ~tnqwu6Fg9>y^;04;f99-ngd)3R+ z%Rl|Gbn+SRN+-SV-RYS3yfe+;XJ6f?-Y59zbdcT{7iS7<8llsKh(f*T^dcMcZg&MR zfP?bka0W6iuoc>o72laxzd;iIArSdNhG@=^pw!;?CS6OoCbj7B#9DRGNY^4yc!dT~ zLkcnitL;uBVhH(2iJ?$`iU(JGlh+N;9-9tww`K(pbR?Fa)LVl;)_jT|a4h+WN#(Y1QJ#Rc1_4 zJi0hPD$fsSV4`!=CMZd|uP%+(0d|wsF@NCKm!-C6q%Wf>f@my_4Ty9)njyi!>wxY% zR@qe}+RO$41BEPD!=c^FFe6O<6~T_i5r~T44)@-+<)a?}Xh4_0`5$}VapP@i&xN~tMUHugE9h#f9>Wq>AOGtZd$PS zUT@Lb*EgG>KgFY}s@1F8hzq*(&!DBPJR~QRE2}>;7+>&VIC#QA?8Iy2JbMPZr=IoG zvs_McurD-wP*(YYKNyJg7)~?wB_}A*4j9J2?U_@(O2#0=4aX7g#_qxQ&YrF`L0ckE zekCjDV*p`zY$MLzRMm6JD^AfsaAWGwY_s`Oxr~9UkVzIy76*Q`xyGqZeQdGnl_wti z+y0);^KgF=7>&pDzT5NOG3$UGxjd*5_6}&82 z0XK@zC@M3`Q51vTS<2Y+B>FVt+b`I*)~>Yg2}gVO zw{P>dbn7q9)hwWvs_Ss6Xy9wPJtw8>K4zU9>C+|$)Jdq(>=!4dbLd^m+Kp)~Gp{ub zY1RSzssq=g`$c1x8yZBZI(TDz>gV-mo|oF6d0LHsod_-ZVJb#~VGjB!2*U2!Qgb3_ zfienjApj=6!A%&y5su_(*~uB4co%~^Vs&Ryjxn<=sYPIeseA~00u1*^!$4H*ft6sk zDO#IwcDR^f4qOlih-VccfKYbOTYiJRooU{&$E3Yq_Oi4^%fL5nZcSTSJ5)fGfeoc6 z@Wvl>A)nAK9Fbq9*C->tqC@zzYJx@;?kdIZB2*1%!i_u zfma5fSpK*8rkg=(9dQ(bGj7Alp3{}c@P{$epbzuIJL3!?fesj*v7kXL^2qY*Z%o(y z;HT-~Yi>#%8#Ze7M`IeV&U}-$d@w*#qk*$}tqf_`vij$qTa)%V@?dr1bxRD(qx1D_ zRssxEOpri3!Ae?K7a4d79>GQcIPBNp2K&VL z@yA*ZMy@q+oqy4QbN-+st{*g&(Qo1oxq;G1!EQr*j=PZwHTeNgP^<*#|7lAfe=IGWGe7m@vlv2GqYNn=4oQgeHJc)VkcY$) z4(PT;=I_ww-xil31P&yj(0h!(38!+cMrTND)9oU?1HI|2bAHa2y6+mqkk9+0jV)fK z-l>#>&@1}j5t56YZ_0)3WfMFZ@OdZqcZ{H~@A`Z1ylubx?z%^31L;f=${Bv}m)~H7 zFL;df2|G+uZ<9goLowOv`dvVlkK}3mgq4;0r$Yya9((*TY24(=>r2p)`kpj# zV%4FC9Gp6|T->+K!2eK+59vb@gXDrv)TxeZ)YYyx-f&B2`^Js`I#T)jJ?YXS&z^HX z`LVxy>jT;ryKv5exZ#4NmO&InEqIqQqU0R|>46^MhP*I*M%ys#Zr`GXLQ?u5CGWWo zmaLg1*tmJKZ>ssgM?SFU+fP6B&O?qoWbAXAxMR!c&`LN*QK6+mUr?K4hgQ*Inzd?K z2m6jwyKlE$c1s`s@F&yayYBsW@%`(-wDY;6N=-0g&L6f@xzq;OLVqkW)1hK)NFHsuGv4$ z#BaO*p>)G{ew?b+0G}kBHFZ^KvpVe)X3a^n4?kEqQ|efSiPd1$eXLdn&#Q}|PQ4U`*S}eOp@}S9`Zslx7PlLB`BRqbd5zF$x zj(gb;Yk0v#5>V+y!319v_`rGaM3^xJ9}yS)#9JB7{p=@;JHh6` z=>3TFRXWodQ2O+#V@YSEO|!;ag~ApE4kYQ}`Z zUh>TPXh7`336J(go{l318E|tRApzlED_k&^yL3~6(FYMmr0A(-WCrjet+ShGjz7SI zCkL~9LnlZ_%R1u&9s_p!kspXpzd8-d)lQt5mR$Plbj=Tbo~Di&pC&lpGt{6zl~+{4 zv-jIws|K1|iYDbSvU7Om{gJ+$i zEi~<^R{Ps`KlaG9Vf_X*Hgu(t(yn>V?DX(;x2H$Xxlpt2>bz?;f^`&X;m`UatMEBr zhKS@FdBAV^c}tRHP^FpsNjleqva*EdZFGbZK32wXJBL@fgqI|PvLGc)w(DE_-&5_D z?h)U}4Z26<(;fKGK$1jhz%L6sCrzYJMgBu@1|yA>#{6V*6Lm!L`rjt1t7XeCPe1+r z-F+S1Y1+gosYi!VSqRcS=gq?Sb{MmO^m18K5gr;#13Pj$;azkfH(-o25E%mhjCUxm zh@FC*{LEpvEPtIed2;&MnLnB^e#*?3Zb!=V^)Wcu=IwB1K#@Sc=#3W)@fkW)NN_y} zfK2#VPr_jYK6|>mr(SgNrCQ!yuMTDd?3q9KD0a6;^iiX-AHz3gn*DjmRML)5iY&SF zi?q%9K$++=6hFbZs?lVQZVFkjaF=w@K?gA_JsEr>($v--bI`#Dub8D3T5TG1U=>zq z1N=sP#<$(z4_U}i|BcsV*v7Tbr8{o9{bO>Xf%T#@oo(CB`|ueb8`!4pXwxT6la7c@ z(mdz+&=IkXT(WF<(^aVG4^pw)P`kVU1LKan^pCQmv`NXH4wiL`_UOu$E7M`RA?WmX zoR(HSx7r73*Sg)Jy8AciiEpJ^NiY#$tLSiBS;%|(d(v1<3M`txD1H26pG=ouaN&>p z`+GT)BgbwMc0P7M35=K$x}~dSZNECPG|actt5N}>YO+%}vxL4&d!Vt?7W zn(R^IbDDbU>e#uNLSqvI;6}k+`U)MDtem9BF>)6AOd(I!B_q^NP@`bQs&v!0zLz%W z>bPlhXX((W`t;oT^=Y3Ij#p!Ps)E;~wdx%8)0ovvCMQvAML}xQp?71o#Hw+U4xrK~ zyeoA1x2)fkHfgW6dLU{1f_Z7o^hr8Iqsxu>0X1}I%$T8udVjj&J3mSt%brb*Ix*Cw z)0l=@(`|w1BMJ-iCxR;-4hg}Hb+Z%=5tuD98=CP(26ES62yRqT$i%b9j!XCz2TP8l z;V*y5v?5Q0BzQ-oM+HAPwI7&oe4S1Lje;y@Pbqw0%mW8RYLnmk#tC@RD`vAvKkZUz z7@eNG?T)nR*;Q$_4y{w_I{l17@Vuc9Xu=Q4%P#%~XK^=H_}C6U^Mo@bWjxu{jXY@Q z=Xjx2KkVSeoxdV8!iUkB2AUaf-LNS=e#MpAcA?I@XbD(t)X=sJtEzDf;Q|kTprL_T z3>`_+WH)3Me)+TVt&>bsowjY%j?rxkIv8&GO}FV3|6iu9I`D41u029dbl~BY>*iY9 z+tUH+Bv#9>UjrnT7leUWun~)*&T^y!ilg13sRA%$C63|_zsv};ZKhE-2_1ZERAa^&J(k(GP_6Y%HRHyDy( zwGi75xXzCIwvi7%!UTxYLiT>~(5Gz{kq!VkRRRXtnknG}R!jXiZ(gcv4tAQ~QvzA^ zA?JbvT@HbVcS#}qb8=co6&F4Bb|*i845R+ zQTfojl#vxDi?B#5T#Fp7!*X(cCp~sqqVMpJ@&h|{qG5qC3S23-bg-y8n9Ei@n|9lK z&-9Id``R6ijg9jS^87wJJOi&d*wgEJS$VR^!ZOG#Zzm5C5B-&2F!TIU`uk$nEc^{u zUAN!kk3O0vs!XMW6f>Qf0lgyqR7RJwKD$XG29mQ<2}d5;6rSxDXdnJncJyeiu>4km8)@&ls;aFgo_wNLt97dFZ2hh1^Kj-xIeOyu2J)-X^7--U&b#hS zOIEM^g zNR+x2-3n)EU2f~ql)?~B$q+c@M!m{XcP8|D)!y%topz;Rg~jDi4u>21ZJLZni1g1Y zMZNIVRdG6ST5Xm^yDUmy{L+`xSwH^q|52OcJ@OP`JI#(Rf!v}S0c>pC*sh*}I^T>k z$)MGKV-G8D4*Fuol}@}zMCowao2Pz)p)opf`V_Uohj7>?oDRbqwE0aA9kSytv4Drn zs=xXP+Q+VT?1Nf{eAl^`q-isz=qjtG)T0jS!dILS@oJk`m+siEXIZiu(A?qNx_N7A zRADe~x|Y5xzw|3JHmC!?^1(;afI3LbsL$GWPZbpQRlNOa?!0+v^QyJ!ns5By)VpD` zX5ObmP*hCA=&#W1$|O3=h=JwP?hq^U`*d!2u}AP_-uM=-Sdt@IAaj){tVXaLh=(|f zT;$Kz1Z3v{0=W|hje;ymhbIhzi+7|0bOI~KiXZ-UIuylsnhQq^o+upnpoMs4r!XTF z=^7m{eaVkK#?bn}Ip?P}TAeUOXixzR#)Y%s&99sZY2$eL($Dtnsgjrzifh#gyXV47eAr<%`}d%ShJZ#% zXYRI09V6*><~-g(Q&164XvJn(=^YJBxzNE>TH=d;ktcHFN3c4bEZ!iU?$iF|dv)W& z*0me7Rii^@YWLxCV;aDaEDgh z?ddQBnk}0+XRdDz2$~~3A}m4lEj_?QMHu{g79B+JX?#IP5Fxu)p@ig+lh3=5GkKYI zTcmN|4|;MM%9}Wet6zsSLT~6`;3{Q@lwES-5KNF3oOFVfM>HGWG;MZjeRg>|?y?2^-(EdI_cH#W_sj9U*UH9!Dr_FcYs{xuR8bIU>4h19;#T?}&GIHL+ zMIU@acCiNl4hE2)&g;+&{#edsP+1zfCcg-z@0h9YQ#s6S01Pc-~IgG ze=hAdZx@{;9ao#8ldv46(=a}>9C#s@5K)u?NX}(|#Z%;$-CW+Ne8{3JuwVuUgL zNMWT}%#u>p;f{;~XC%KPa6Ft~{uhTGlBPG$W>4|A(ENSp#!s z&2hcPz`P4e#3Z>`Y9X?aUA9{!Qof>d)-{4SZ{aI_%HabB2+AD%FpkBxNR!Y(>t5Dj zUM0N%1W&yEVLJ~`nh72EzH=VZu5%ZrpP%{5^u2F<^9=2K`(FYXimVc9r)5W!K& zJBQ%asB=nVd+XYDZs?Dn8J%$MOYYs$p4LD9lrXAeF=mwSxo*=*&e{y1dqtbmGxsk} zw|?gbx?owIJ!bCJ>2qf(!~#iXr4$V20hzErO9cp(S2x#&sjb|oYwG$`xiEsKx=C)C zXW*GylqvGCujPXqab(6tmmBeUhSi;Z3MI)EcXzB50C;~3hwYYc$dVb{z|RP|I^Y=> zZa$DswEJ{T;@2Mx0vDCBzB4`08U?DZ-q1iu65a>S{J9PTyi5DKbuzzvy=;&G#8`OD z_EK@fS`>1ML-InF7&^hhH|~KWsyXDEaRO*Nl$tQZ0$;)af+^qj6KxzGH%80R?!Dxi z)cx$Usdn5%ci!16+1u8Vc02gMG;25QkyiR4gGxNYP5SZesFfznuE>FCoR$>qmKi)d zsQfZbQR#%g;pL8=aM;_RI_eMVWLePH>2Spu#8KfdS#Tr5oIMuFLo?BNMmN%2^f(ft zKxTR?US!ALaK7zHq&7h>ji`R*QD&^C%$}3FwC{@`tAD#4nKEY3svCjWGB z0zGt9079M_m=B^bJ%inymuDqz@eSpoK&VA1<54 z0cBg^t1wYXEBMwQWf(BQuTo#%v_qe~aqt=DG9J;YS}W$HwLo$4Gf= zxpdWuC!LTcX)7I9%0{O!G$Yh6%9WDluJ0gT{EgL$y(No+y_7yzs*J22c z0l#IgxAjf#B@O%*GQ$i7wSS>2;tu@lsw*WaG*`_WG|>!y>pb;uaii90Hy!6R>wD168umg1-(t=wQ(e} zQK$+6g497Bue&!Nz53R)^?|!m%_Pm13J>>=_IG#dB=a$8&m#^?Yqg}kN>_=2vqBFR zqvVYx;)_8T={)kq%~T_!@Q=YC!5bCw4V@2Oao1pqD(J42E7Nn&JnMU2VGTH7dYJK5 zhq7M!8y$Fgf-53(Bv_GOCcu8k>^F_m5nxftlk3!`F4)Bfw6PkcTKU6x%^p0!jXpB& zk`9F@!#Wc3#!z||_s}UY=uf(etV`@A9yH#ks}F4t8bg2P6ZsKPh8L@9 zT691cI#}@7GeXFUObH+Pez2?aw(#Hi{5>TgH6v~OuUDi8DZ+2K3Ab>yT@TU-Jp~7K zh73vbVlo4&m)`Wb&wk;;tFE{rEu1@Fb&xV7Jfp(qJ<26nvk4LKZ8yEG@93@|ij1*^ zxH3H7hW$-EF}qvZ5T%nCc_=Wl+HS+f_33M0|5}=}+peFiuOG8_!SY9bxBE&g(@MGr z3q!mI&!&opOn%80d{$h_r=dpPqoZYW!)2FUr4>VLKN?D7bUwmDrKQ>0p2t8E z^`(BL-h|M|A3?J7i#Tr3%`TklbnC5mrnS#Ld)J6z=y@hY_o6@g(T{$jokKCFXr*GL zf9Ooespypy1RYVH_MhyA#aX}KGIop1j*1G*bQ%7FhkG zpYo^N>D6`DbEh?@_3DFs;Pemtptrl@d&6SbX?>AMAWFLt!pvZI#~l@ggeEI%wkVTG zJ%dsWgmtL#NT(ZxRjxtT4Nu3I*}YL}AagqOpk|1`<2|58#mH=AIOCIDp2kbu_}Jh~ z#?+78LI1v=pZx1}2wj8rx~|q9)=U5S-%_m##iLJsv-ZPJNWFBRp;ZC4u3oFtr`ysb zEupVcXR}{3ZYv&Itj>$}`fDHWv^^H42Hh7sO;>*1bgcCa@c`Sw%OZ3_(Bdt@(Oo%o8;#^r1hrpkDO(tAMN;T=OMr7a0;&sg$>5EC=U3c zGNhwMB@=RwcnIgtcLXtA!bq~K1Eax`+6L_zUS(VqUW{`>glQL$S%C%_+Y7#MGORuI zaJ(g~-er)&A#v9qG+Pz~QaT6f=&XdSLS~|lE)_s&vd&6)?7G|1bJt&^GZZGca|TYf zJoI+7q=m;Ho4T}&eTz=i=PJUWLqR1Qf%!W+ONvMGp`r)_J<)MPehi$DZVnHfgcpGx zkntN&oN{`|e^9GERxe#nGy(4*46! z8y&MU;L~Twfxt4R5BiNqen5z>85&sYYphMjy#0-7`oRaKp3Un*7A9T+out4Lr^4eT zIvt#N(OpdGcrlt2iBm`BdNjFw- zU;O5E>r-EA3t7gUuI{ZH(%8LsPseDW@WD&3O}GE#KhidJ{5fQ^R$DUQ-TGkhg{;+^ zFIP@%*0DCAr~1VGqbJyrxgIK1kfg8ovN%uK;cb(gmz=ky?z?5kw@EFRNfdT z5HbkD&{%M@gVRwRcpdt&)BGV4AZt|0oq~u2vaG`)r-UVsojkN%c_lY*DGBfw+jF3= zv+Yf1eCXrnJoV(0X>N0~^SuiJ%L#TRl~Bvz9ryfQbUmEH5xWPJ6%H5Dz(yZK)_^S? zcb7c^A}ofN%O5$AcQ~1zn%)=dG zGjq0!YQGB;&jX2nER?lXjhz?$>eAG@b&GD?Y>2X$^fJQ{OR$DRmSF|IPie9+ir{Aoue2TuiDyE_TPX13l}V0sGE8;P)xF$FG`ZE z)0tA*1Q_$FI&rjC$hGL)m78z8Srt_3u;-u0WAK?rAOFPPee}~hh<02Wr88*aYB_|b z|ETIM3FoJ*C)g<~LU)GB2g101)*A_j{B5y45cz2xbR5E2OjyCI&{pK|a|)WI0taTl%Vuz)($ zS)~D5!!pyHX#gh!G4foi#^^Zq!E>4|8sz+`Fi@*G;)O9j#aoOV z>qBg_OrCwq+%ezZ#Q}OL9eMhxY0CWOw0y;iG+N8G=_r^lp`e2DjJ@zigB-r-h6i2> znfPhuJHt3)H}UvjL}+B@ zN=^ZrEBE{jw&F)jeDv!~11OrVnfJw4T%T56bCnK-o1k>kA!AyBfW&&*H>U|N*{({S-{c#Q=d9ajc`ZwJFeHh2mLmkrQcXvQ6U@NN)M8kX!PN3ZzM z9`Z@rqrO=k=q)-U;Be*XS=u|;yKRkcIjF8yIQS~KiQh7yg7t^^A#+Bj8s2NQa;I+W z#Pra47pBMWd_cEZ=nRc!9aKp=@KUu4KG{Z<4;POiG!CAF&N^Uan>a!}~O=Vnfrv^)qgMNrB z9{J6;aF{0P`Gl!jJ)pl*P9Q77pdZ!BpXgdgTZa#D!q2ROBM^hkf5^g(ny#+pa@=Wt ze+ei#DQ|}(kksW+oZ?-c_yugGoYpsKQLn8LFJd#$xpD2=-*MXeez{F&(9D}PM@4Oq z`9>V2Oek;UXH6yl2mopFjz>tzgU7NWyNW4R!pNOplz%{E-3Pve$?%jxwHg#%y>3;S zqpdVQ`tc9WNmHkeso?#iSq3^N&oIyyW|&UkBzOLP%M6Fd^FIOktuQa3Lto$g>sK#* zqV@W#uh*?AICjPj2k)Wp=yc%+cYRq_v@^J#Z}B6K zrX`O)_Kgw2%%6~m-rkPyUw!e#KmOX6zn&J%o}YZglJkKiWStT*)}PP`sg7iu+rvoF zu$kau&*39nmb=_sZs=Xoflz=}ei>P$PxzvHIU%ioz>=2TYBx+)n}5`p3F)1uzE2Zd zD~?IJ?3GYE&5KV0lu#qa)NkrqUF}MT+00N-)vIKOP*y%!*< zc==+GUlAXDGSBLgHu{+!#p&4xg(Z!^>zP!^4O)qhz3vo%z!Ng?=^I!E5Y+i2ZqgN) ze$thSRBrAVIt(%q{pv{#Xta?Ed)oYY8mLfs!2|0;5k$z%abd~sL@T!#VK)^SH>s{~ z{X+{r3Q{rVSB`XmaJL__Bp!@jw#%PuNNPp*G#x^C-=$ZjRX5+DyTZq%Ds|qOf#!7A zUX6%1%$T0`fB6ZiWov7y7EObk7a%;)FVtBcfxjY8dDulT@PWX*@<4CsF2*tlvV+&QVZsH13+6|p((``B!GPbiT^4BdkOujlTPr{9kym(5pr10M zIo)#ZMd>-N{?oYyKL5cyK_hXB2iTC^D|4h<)hMaFC>wgT3MgryZ;zvoN^|$xBd!L_ zbVDP&@FVYV&Oo)c0FBjY_?#u;G6Go&q;z0drpf_!U92`DZw@!$vWYMPkX(CH%c{lO zhJ)?2|IQLn!ATfD^hVBMx2-q>fD6imabs!%LAq%w~z-sBNq&Mj!4O`n3AvUqWo*|4wqO37N009fsOK)@+A_a;4d&y zKlbZn`bM2hzdRlBvZJPa^|PN_sgo=hI^sXxqtkUflxMn&E}$62Ug(2bcsAAWmSO&Q z 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

}rcEFZo6vNB`V)cH01`1|q0fyYG$e#iay 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 z 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 ^aL}GcR$bVs`$X>x>XM~A{3Gj!| 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

      LskBqSU2dnws{Jem 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 z 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

      b&=Z`c<&%ssre%u=K9Ehb`Cf~}G!M2S+gjOt|E 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 dy=Y(H&SB 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 (x_Ej*Ty%yx8PZJ_%k&$A^g);G(R&W(KfEg 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�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�wXJKN+^&yg1_k*pEb#bxq|;0_ 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 TI63FY&VJ9-be@zywt4%1-?j~G literal 0 HcmV?d00001 diff --git a/assets/nyx-wordmark.svg b/assets/nyx-wordmark.svg new file mode 100644 index 00000000..b989eb3c --- /dev/null +++ b/assets/nyx-wordmark.svg @@ -0,0 +1,10 @@ + + nyx + diff --git a/assets/screenshots/cli-scan.png b/assets/screenshots/cli-scan.png new file mode 100644 index 0000000000000000000000000000000000000000..0c030d6f2936bcbc7154fb447022614ec4724fc2 GIT binary patch literal 455156 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

      ;89!g;~m>a3oZG{xs>42Rlq2{M;#vH?FIAMCn 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